summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore23
-rw-r--r--.gitreview6
-rw-r--r--README.md104
-rw-r--r--rba.model.core.edit/.classpath7
-rw-r--r--rba.model.core.edit/.project28
-rw-r--r--rba.model.core.edit/META-INF/MANIFEST.MF15
-rw-r--r--rba.model.core.edit/build.properties10
-rw-r--r--rba.model.core.edit/icons/full/obj16/ActivateContent.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/ActivateContentStateOperator.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/ActiveContents.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/ActiveState.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/AllocatedContent.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/AndOperator.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/ArbitrationPolicyExpression.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/ComparisonAnd.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/ComplexExpression.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/Constraint.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/ContentValue.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/DeactivateContent.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/DeactivateContentStateOperator.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/Defeats.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/Displayed.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/EqualToOperator.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/Event.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/EventProcessing.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/ExclusiveOrOperator.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/ExistsOperator.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/FindStateMachine.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/ForAllOperator.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/GetAllocatables.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/GetContentsList.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/GetProperty.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/GetState.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/GreaterThanOperator.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/Handler.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/HasBeenDisplayed.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/HasComeEarlierThan.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/HasComeLaterThan.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/IfActionOperator.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/IfStatement.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/ImpliesOperator.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/IntegerProperty.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/IntegerValue.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/IsActive.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/IsAllocatedTo.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/IsCanceled.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/IsChanged.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/IsDefeatedBy.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/IsDisappeared.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/IsEqualToOperator.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/IsGreaterThanEqualOperator.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/IsGreaterThanOperator.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/IsLowerThanEqualOperator.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/IsLowerThanOperator.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/IsOn.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/IsRunningOperator.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/IsStateOf.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/IsTranslatedTo.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/IsTypeOf.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/LambdaExpression.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/LetStatement.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/LoserTypeExpression.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/LowerThanOperator.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/MaxOperator.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/MaxValue.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/MinOperator.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/MinValue.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/MuchGreaterThanOperator.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/NoneValue.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/NotOperator.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/NullExpression.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/ObjectCompare.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/ObjectCompareNot.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/ObjectReference.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/OffScene.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/OnScene.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/OpaqueAction.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/OrOperator.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/Package.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/PlusOperator.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/PostConstraint.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/PreviousModifier.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/Project.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/Rule.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/Scene.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/SelectOperator.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/SetOfOperator.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/SetProperty.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/SetState.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/SizeOperator.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/StandardValue.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/State.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/StateMachine.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/StateValue.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/Stereotype.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/Tag.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/ThatOfOperator.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/Transition.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/Undisplayed.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/icons/full/obj16/Variable.gifbin0 -> 129 bytes
-rw-r--r--rba.model.core.edit/plugin.properties227
-rw-r--r--rba.model.core.edit/plugin.xml22
-rw-r--r--rba.model.core.edit/src/rba/core/provider/AbstractAllocatableItemProvider.java121
-rw-r--r--rba.model.core.edit/src/rba/core/provider/AbstractConstraintItemProvider.java292
-rw-r--r--rba.model.core.edit/src/rba/core/provider/AbstractContentItemProvider.java120
-rw-r--r--rba.model.core.edit/src/rba/core/provider/AbstractPropertyItemProvider.java105
-rw-r--r--rba.model.core.edit/src/rba/core/provider/AbstractSceneItemProvider.java88
-rw-r--r--rba.model.core.edit/src/rba/core/provider/ActionOperatorItemProvider.java90
-rw-r--r--rba.model.core.edit/src/rba/core/provider/ActiveContentsItemProvider.java100
-rw-r--r--rba.model.core.edit/src/rba/core/provider/ActiveStateItemProvider.java100
-rw-r--r--rba.model.core.edit/src/rba/core/provider/AllocatableItemProvider.java311
-rw-r--r--rba.model.core.edit/src/rba/core/provider/AllocatableOperatorItemProvider.java91
-rw-r--r--rba.model.core.edit/src/rba/core/provider/AllocatableSetItemProvider.java105
-rw-r--r--rba.model.core.edit/src/rba/core/provider/AllocatedContentItemProvider.java100
-rw-r--r--rba.model.core.edit/src/rba/core/provider/AndOperatorItemProvider.java100
-rw-r--r--rba.model.core.edit/src/rba/core/provider/ArbitrationPolicyExpressionItemProvider.java127
-rw-r--r--rba.model.core.edit/src/rba/core/provider/ArithmeticOperatorItemProvider.java90
-rw-r--r--rba.model.core.edit/src/rba/core/provider/ComparisonAndItemProvider.java100
-rw-r--r--rba.model.core.edit/src/rba/core/provider/ComparisonOperatorItemProvider.java90
-rw-r--r--rba.model.core.edit/src/rba/core/provider/ComplexExpressionItemProvider.java304
-rw-r--r--rba.model.core.edit/src/rba/core/provider/ConstraintItemProvider.java124
-rw-r--r--rba.model.core.edit/src/rba/core/provider/ContentItemProvider.java147
-rw-r--r--rba.model.core.edit/src/rba/core/provider/ContentOperatorItemProvider.java90
-rw-r--r--rba.model.core.edit/src/rba/core/provider/ContentSetItemProvider.java105
-rw-r--r--rba.model.core.edit/src/rba/core/provider/ContentStateItemProvider.java291
-rw-r--r--rba.model.core.edit/src/rba/core/provider/ContentStateOperatorItemProvider.java91
-rw-r--r--rba.model.core.edit/src/rba/core/provider/ContentValueItemProvider.java100
-rw-r--r--rba.model.core.edit/src/rba/core/provider/EnumExpressionItemProvider.java90
-rw-r--r--rba.model.core.edit/src/rba/core/provider/EqualToOperatorItemProvider.java100
-rw-r--r--rba.model.core.edit/src/rba/core/provider/ExistsOperatorItemProvider.java122
-rw-r--r--rba.model.core.edit/src/rba/core/provider/ExpressionItemProvider.java167
-rw-r--r--rba.model.core.edit/src/rba/core/provider/ForAllOperatorItemProvider.java122
-rw-r--r--rba.model.core.edit/src/rba/core/provider/GetAllocatablesItemProvider.java100
-rw-r--r--rba.model.core.edit/src/rba/core/provider/GetContentsListItemProvider.java100
-rw-r--r--rba.model.core.edit/src/rba/core/provider/GetPropertyItemProvider.java100
-rw-r--r--rba.model.core.edit/src/rba/core/provider/GetStateItemProvider.java114
-rw-r--r--rba.model.core.edit/src/rba/core/provider/GreaterThanOperatorItemProvider.java101
-rw-r--r--rba.model.core.edit/src/rba/core/provider/HasBeenDisplayedItemProvider.java100
-rw-r--r--rba.model.core.edit/src/rba/core/provider/HasComeEarlierThanItemProvider.java100
-rw-r--r--rba.model.core.edit/src/rba/core/provider/HasComeLaterThanItemProvider.java100
-rw-r--r--rba.model.core.edit/src/rba/core/provider/IfActionOperatorItemProvider.java98
-rw-r--r--rba.model.core.edit/src/rba/core/provider/IfStatementItemProvider.java660
-rw-r--r--rba.model.core.edit/src/rba/core/provider/ImpliesOperatorItemProvider.java100
-rw-r--r--rba.model.core.edit/src/rba/core/provider/IntegerPropertyItemProvider.java302
-rw-r--r--rba.model.core.edit/src/rba/core/provider/IntegerValueItemProvider.java126
-rw-r--r--rba.model.core.edit/src/rba/core/provider/IsActiveItemProvider.java100
-rw-r--r--rba.model.core.edit/src/rba/core/provider/IsAllocatedToItemProvider.java100
-rw-r--r--rba.model.core.edit/src/rba/core/provider/IsCanceledItemProvider.java100
-rw-r--r--rba.model.core.edit/src/rba/core/provider/IsChangedItemProvider.java100
-rw-r--r--rba.model.core.edit/src/rba/core/provider/IsDisappearedItemProvider.java100
-rw-r--r--rba.model.core.edit/src/rba/core/provider/IsEqualToOperatorItemProvider.java100
-rw-r--r--rba.model.core.edit/src/rba/core/provider/IsGreaterThanEqualOperatorItemProvider.java101
-rw-r--r--rba.model.core.edit/src/rba/core/provider/IsGreaterThanOperatorItemProvider.java101
-rw-r--r--rba.model.core.edit/src/rba/core/provider/IsLowerThanEqualOperatorItemProvider.java101
-rw-r--r--rba.model.core.edit/src/rba/core/provider/IsLowerThanOperatorItemProvider.java101
-rw-r--r--rba.model.core.edit/src/rba/core/provider/IsOnItemProvider.java100
-rw-r--r--rba.model.core.edit/src/rba/core/provider/IsTranslatedToItemProvider.java100
-rw-r--r--rba.model.core.edit/src/rba/core/provider/IsTypeOfItemProvider.java124
-rw-r--r--rba.model.core.edit/src/rba/core/provider/LambdaContextItemProvider.java153
-rw-r--r--rba.model.core.edit/src/rba/core/provider/LambdaExpressionItemProvider.java309
-rw-r--r--rba.model.core.edit/src/rba/core/provider/LetStatementItemProvider.java130
-rw-r--r--rba.model.core.edit/src/rba/core/provider/LogicalOperatorItemProvider.java90
-rw-r--r--rba.model.core.edit/src/rba/core/provider/LoserTypeExpressionItemProvider.java127
-rw-r--r--rba.model.core.edit/src/rba/core/provider/LowerThanOperatorItemProvider.java100
-rw-r--r--rba.model.core.edit/src/rba/core/provider/MaxOperatorItemProvider.java122
-rw-r--r--rba.model.core.edit/src/rba/core/provider/MaxValueItemProvider.java100
-rw-r--r--rba.model.core.edit/src/rba/core/provider/MinOperatorItemProvider.java122
-rw-r--r--rba.model.core.edit/src/rba/core/provider/MinValueItemProvider.java100
-rw-r--r--rba.model.core.edit/src/rba/core/provider/ModelElementItemProvider.java133
-rw-r--r--rba.model.core.edit/src/rba/core/provider/MuchGreaterThanOperatorItemProvider.java101
-rw-r--r--rba.model.core.edit/src/rba/core/provider/NamedElementItemProvider.java114
-rw-r--r--rba.model.core.edit/src/rba/core/provider/NoneValueItemProvider.java100
-rw-r--r--rba.model.core.edit/src/rba/core/provider/NotOperatorItemProvider.java100
-rw-r--r--rba.model.core.edit/src/rba/core/provider/NullExpressionItemProvider.java108
-rw-r--r--rba.model.core.edit/src/rba/core/provider/ObjectCompareItemProvider.java100
-rw-r--r--rba.model.core.edit/src/rba/core/provider/ObjectCompareNotItemProvider.java100
-rw-r--r--rba.model.core.edit/src/rba/core/provider/ObjectReferenceItemProvider.java117
-rw-r--r--rba.model.core.edit/src/rba/core/provider/OffSceneItemProvider.java100
-rw-r--r--rba.model.core.edit/src/rba/core/provider/OnSceneItemProvider.java100
-rw-r--r--rba.model.core.edit/src/rba/core/provider/OperatorItemProvider.java294
-rw-r--r--rba.model.core.edit/src/rba/core/provider/OrOperatorItemProvider.java100
-rw-r--r--rba.model.core.edit/src/rba/core/provider/PackagableElementItemProvider.java88
-rw-r--r--rba.model.core.edit/src/rba/core/provider/PackageItemProvider.java157
-rw-r--r--rba.model.core.edit/src/rba/core/provider/PlusOperatorItemProvider.java100
-rw-r--r--rba.model.core.edit/src/rba/core/provider/PreviousModifierItemProvider.java142
-rw-r--r--rba.model.core.edit/src/rba/core/provider/ProjectItemProvider.java143
-rw-r--r--rba.model.core.edit/src/rba/core/provider/PropertyOperatorItemProvider.java90
-rw-r--r--rba.model.core.edit/src/rba/core/provider/RBACoreItemProviderAdapterFactory.java1726
-rw-r--r--rba.model.core.edit/src/rba/core/provider/RbaCoreEditPlugin.java79
-rw-r--r--rba.model.core.edit/src/rba/core/provider/RuleObjectItemProvider.java129
-rw-r--r--rba.model.core.edit/src/rba/core/provider/SceneItemProvider.java160
-rw-r--r--rba.model.core.edit/src/rba/core/provider/SceneOperatorItemProvider.java90
-rw-r--r--rba.model.core.edit/src/rba/core/provider/SelectOperatorItemProvider.java122
-rw-r--r--rba.model.core.edit/src/rba/core/provider/SetExpressionItemProvider.java90
-rw-r--r--rba.model.core.edit/src/rba/core/provider/SetOfOperatorItemProvider.java100
-rw-r--r--rba.model.core.edit/src/rba/core/provider/SetOperatorItemProvider.java90
-rw-r--r--rba.model.core.edit/src/rba/core/provider/SetPropertyItemProvider.java100
-rw-r--r--rba.model.core.edit/src/rba/core/provider/SizeOperatorItemProvider.java100
-rw-r--r--rba.model.core.edit/src/rba/core/provider/StandardValueItemProvider.java100
-rw-r--r--rba.model.core.edit/src/rba/core/provider/StateItemProvider.java96
-rw-r--r--rba.model.core.edit/src/rba/core/provider/StateValueItemProvider.java100
-rw-r--r--rba.model.core.edit/src/rba/core/provider/StereotypeItemProvider.java178
-rw-r--r--rba.model.core.edit/src/rba/core/provider/TagItemProvider.java132
-rw-r--r--rba.model.core.edit/src/rba/core/provider/ThatOfOperatorItemProvider.java100
-rw-r--r--rba.model.core.edit/src/rba/core/provider/ValueExpressionItemProvider.java90
-rw-r--r--rba.model.core.edit/src/rba/core/provider/VariableItemProvider.java96
-rw-r--r--rba.model.core/.classpath7
-rw-r--r--rba.model.core/.project35
-rw-r--r--rba.model.core/META-INF/MANIFEST.MF16
-rw-r--r--rba.model.core/build.properties10
-rw-r--r--rba.model.core/model/rbacore.aird5347
-rw-r--r--rba.model.core/model/rbacore.ecore1669
-rw-r--r--rba.model.core/model/rbacore.genmodel435
-rw-r--r--rba.model.core/plugin.properties4
-rw-r--r--rba.model.core/plugin.xml25
-rw-r--r--rba.model.core/src/rba/core/AbstractAllocatable.java86
-rw-r--r--rba.model.core/src/rba/core/AbstractConstraint.java51
-rw-r--r--rba.model.core/src/rba/core/AbstractContent.java87
-rw-r--r--rba.model.core/src/rba/core/AbstractProperty.java65
-rw-r--r--rba.model.core/src/rba/core/AbstractScene.java20
-rw-r--r--rba.model.core/src/rba/core/ActionOperator.java21
-rw-r--r--rba.model.core/src/rba/core/ActiveContents.java44
-rw-r--r--rba.model.core/src/rba/core/ActiveState.java44
-rw-r--r--rba.model.core/src/rba/core/Allocatable.java91
-rw-r--r--rba.model.core/src/rba/core/AllocatableOperator.java29
-rw-r--r--rba.model.core/src/rba/core/AllocatableSet.java54
-rw-r--r--rba.model.core/src/rba/core/AllocatedContent.java41
-rw-r--r--rba.model.core/src/rba/core/AndOperator.java32
-rw-r--r--rba.model.core/src/rba/core/ArbitrationPolicy.java292
-rw-r--r--rba.model.core/src/rba/core/ArbitrationPolicyExpression.java80
-rw-r--r--rba.model.core/src/rba/core/ArithmeticOperator.java44
-rw-r--r--rba.model.core/src/rba/core/ComparisonAnd.java44
-rw-r--r--rba.model.core/src/rba/core/ComparisonOperator.java44
-rw-r--r--rba.model.core/src/rba/core/ComplexExpression.java87
-rw-r--r--rba.model.core/src/rba/core/Constraint.java79
-rw-r--r--rba.model.core/src/rba/core/Content.java85
-rw-r--r--rba.model.core/src/rba/core/ContentOperator.java32
-rw-r--r--rba.model.core/src/rba/core/ContentSet.java55
-rw-r--r--rba.model.core/src/rba/core/ContentState.java79
-rw-r--r--rba.model.core/src/rba/core/ContentStateOperator.java32
-rw-r--r--rba.model.core/src/rba/core/ContentValue.java44
-rw-r--r--rba.model.core/src/rba/core/EnumExpression.java57
-rw-r--r--rba.model.core/src/rba/core/EqualToOperator.java32
-rw-r--r--rba.model.core/src/rba/core/ExistsOperator.java56
-rw-r--r--rba.model.core/src/rba/core/Expression.java149
-rw-r--r--rba.model.core/src/rba/core/ExpressionType.java595
-rw-r--r--rba.model.core/src/rba/core/ForAllOperator.java56
-rw-r--r--rba.model.core/src/rba/core/GetAllocatables.java44
-rw-r--r--rba.model.core/src/rba/core/GetContentsList.java44
-rw-r--r--rba.model.core/src/rba/core/GetProperty.java44
-rw-r--r--rba.model.core/src/rba/core/GetState.java34
-rw-r--r--rba.model.core/src/rba/core/GreaterThanOperator.java32
-rw-r--r--rba.model.core/src/rba/core/HasBeenDisplayed.java44
-rw-r--r--rba.model.core/src/rba/core/HasComeEarlierThan.java50
-rw-r--r--rba.model.core/src/rba/core/HasComeLaterThan.java50
-rw-r--r--rba.model.core/src/rba/core/IfActionOperator.java44
-rw-r--r--rba.model.core/src/rba/core/IfStatement.java127
-rw-r--r--rba.model.core/src/rba/core/ImpliesOperator.java32
-rw-r--r--rba.model.core/src/rba/core/IntegerProperty.java52
-rw-r--r--rba.model.core/src/rba/core/IntegerValue.java75
-rw-r--r--rba.model.core/src/rba/core/IsActive.java44
-rw-r--r--rba.model.core/src/rba/core/IsAllocatedTo.java43
-rw-r--r--rba.model.core/src/rba/core/IsCanceled.java44
-rw-r--r--rba.model.core/src/rba/core/IsChanged.java34
-rw-r--r--rba.model.core/src/rba/core/IsDisappeared.java44
-rw-r--r--rba.model.core/src/rba/core/IsEqualToOperator.java32
-rw-r--r--rba.model.core/src/rba/core/IsGreaterThanEqualOperator.java32
-rw-r--r--rba.model.core/src/rba/core/IsGreaterThanOperator.java32
-rw-r--r--rba.model.core/src/rba/core/IsLowerThanEqualOperator.java32
-rw-r--r--rba.model.core/src/rba/core/IsLowerThanOperator.java32
-rw-r--r--rba.model.core/src/rba/core/IsOn.java44
-rw-r--r--rba.model.core/src/rba/core/IsTranslatedTo.java43
-rw-r--r--rba.model.core/src/rba/core/IsTypeOf.java88
-rw-r--r--rba.model.core/src/rba/core/LambdaContext.java65
-rw-r--r--rba.model.core/src/rba/core/LambdaExpression.java129
-rw-r--r--rba.model.core/src/rba/core/LetStatement.java84
-rw-r--r--rba.model.core/src/rba/core/LogicalOperator.java44
-rw-r--r--rba.model.core/src/rba/core/LoserType.java236
-rw-r--r--rba.model.core/src/rba/core/LoserTypeExpression.java80
-rw-r--r--rba.model.core/src/rba/core/LowerThanOperator.java32
-rw-r--r--rba.model.core/src/rba/core/MaxOperator.java56
-rw-r--r--rba.model.core/src/rba/core/MaxValue.java44
-rw-r--r--rba.model.core/src/rba/core/MinOperator.java56
-rw-r--r--rba.model.core/src/rba/core/MinValue.java44
-rw-r--r--rba.model.core/src/rba/core/ModelElement.java53
-rw-r--r--rba.model.core/src/rba/core/MuchGreaterThanOperator.java32
-rw-r--r--rba.model.core/src/rba/core/NamedElement.java51
-rw-r--r--rba.model.core/src/rba/core/NoneValue.java44
-rw-r--r--rba.model.core/src/rba/core/NotOperator.java44
-rw-r--r--rba.model.core/src/rba/core/NullExpression.java44
-rw-r--r--rba.model.core/src/rba/core/ObjectCompare.java56
-rw-r--r--rba.model.core/src/rba/core/ObjectCompareNot.java43
-rw-r--r--rba.model.core/src/rba/core/ObjectReference.java75
-rw-r--r--rba.model.core/src/rba/core/OffScene.java32
-rw-r--r--rba.model.core/src/rba/core/OnScene.java32
-rw-r--r--rba.model.core/src/rba/core/Operator.java54
-rw-r--r--rba.model.core/src/rba/core/OrOperator.java32
-rw-r--r--rba.model.core/src/rba/core/PackagableElement.java20
-rw-r--r--rba.model.core/src/rba/core/Package.java43
-rw-r--r--rba.model.core/src/rba/core/PlusOperator.java32
-rw-r--r--rba.model.core/src/rba/core/PreviousModifier.java88
-rw-r--r--rba.model.core/src/rba/core/Project.java91
-rw-r--r--rba.model.core/src/rba/core/PropertyOperator.java44
-rw-r--r--rba.model.core/src/rba/core/RBACoreFactory.java618
-rw-r--r--rba.model.core/src/rba/core/RBACorePackage.java14216
-rw-r--r--rba.model.core/src/rba/core/RuleObject.java54
-rw-r--r--rba.model.core/src/rba/core/Scene.java84
-rw-r--r--rba.model.core/src/rba/core/SceneOperator.java32
-rw-r--r--rba.model.core/src/rba/core/SelectOperator.java56
-rw-r--r--rba.model.core/src/rba/core/SetExpression.java20
-rw-r--r--rba.model.core/src/rba/core/SetOfOperator.java56
-rw-r--r--rba.model.core/src/rba/core/SetOperator.java20
-rw-r--r--rba.model.core/src/rba/core/SetProperty.java44
-rw-r--r--rba.model.core/src/rba/core/SizeOperator.java56
-rw-r--r--rba.model.core/src/rba/core/StandardValue.java44
-rw-r--r--rba.model.core/src/rba/core/State.java21
-rw-r--r--rba.model.core/src/rba/core/StateValue.java38
-rw-r--r--rba.model.core/src/rba/core/Stereotype.java95
-rw-r--r--rba.model.core/src/rba/core/SugarExpression.java40
-rw-r--r--rba.model.core/src/rba/core/SugarExpressionBase.java25
-rw-r--r--rba.model.core/src/rba/core/Tag.java43
-rw-r--r--rba.model.core/src/rba/core/ThatOfOperator.java56
-rw-r--r--rba.model.core/src/rba/core/ValueExpression.java55
-rw-r--r--rba.model.core/src/rba/core/Variable.java32
-rw-r--r--rba.model.core/src/rba/core/generator/util/EObjectDecorator.java118
-rw-r--r--rba.model.core/src/rba/core/generator/util/value/ComparisonAndEvaluator.java49
-rw-r--r--rba.model.core/src/rba/core/generator/util/value/ComparisonOperatorEvaluator.java48
-rw-r--r--rba.model.core/src/rba/core/generator/util/value/EqualToOperatorEvaluator.java51
-rw-r--r--rba.model.core/src/rba/core/generator/util/value/ExpressionEvaluator.java56
-rw-r--r--rba.model.core/src/rba/core/generator/util/value/GreaterThanOperatorEvaluator.java62
-rw-r--r--rba.model.core/src/rba/core/generator/util/value/MuchGreaterThanOperatorEvaluator.java65
-rw-r--r--rba.model.core/src/rba/core/generator/util/value/ValueGroup.java35
-rw-r--r--rba.model.core/src/rba/core/generator/util/value/ValueSortedList.java155
-rw-r--r--rba.model.core/src/rba/core/impl/AbstractAllocatableImpl.java235
-rw-r--r--rba.model.core/src/rba/core/impl/AbstractConstraintImpl.java170
-rw-r--r--rba.model.core/src/rba/core/impl/AbstractContentImpl.java230
-rw-r--r--rba.model.core/src/rba/core/impl/AbstractPropertyImpl.java208
-rw-r--r--rba.model.core/src/rba/core/impl/AbstractSceneImpl.java33
-rw-r--r--rba.model.core/src/rba/core/impl/ActiveContentsImpl.java85
-rw-r--r--rba.model.core/src/rba/core/impl/ActiveStateImpl.java69
-rw-r--r--rba.model.core/src/rba/core/impl/AllocatableImpl.java261
-rw-r--r--rba.model.core/src/rba/core/impl/AllocatableOperatorImpl.java62
-rw-r--r--rba.model.core/src/rba/core/impl/AllocatableSetImpl.java181
-rw-r--r--rba.model.core/src/rba/core/impl/AllocatedContentImpl.java78
-rw-r--r--rba.model.core/src/rba/core/impl/AndOperatorImpl.java58
-rw-r--r--rba.model.core/src/rba/core/impl/ArbitrationPolicyExpressionImpl.java193
-rw-r--r--rba.model.core/src/rba/core/impl/ArithmeticOperatorImpl.java83
-rw-r--r--rba.model.core/src/rba/core/impl/ComparisonAndImpl.java118
-rw-r--r--rba.model.core/src/rba/core/impl/ComparisonOperatorImpl.java73
-rw-r--r--rba.model.core/src/rba/core/impl/ComplexExpressionImpl.java279
-rw-r--r--rba.model.core/src/rba/core/impl/ConstraintImpl.java186
-rw-r--r--rba.model.core/src/rba/core/impl/ContentImpl.java248
-rw-r--r--rba.model.core/src/rba/core/impl/ContentOperatorImpl.java62
-rw-r--r--rba.model.core/src/rba/core/impl/ContentSetImpl.java177
-rw-r--r--rba.model.core/src/rba/core/impl/ContentStateImpl.java256
-rw-r--r--rba.model.core/src/rba/core/impl/ContentStateOperatorImpl.java62
-rw-r--r--rba.model.core/src/rba/core/impl/ContentValueImpl.java69
-rw-r--r--rba.model.core/src/rba/core/impl/EnumExpressionImpl.java82
-rw-r--r--rba.model.core/src/rba/core/impl/EqualToOperatorImpl.java58
-rw-r--r--rba.model.core/src/rba/core/impl/ExistsOperatorImpl.java87
-rw-r--r--rba.model.core/src/rba/core/impl/ExpressionImpl.java264
-rw-r--r--rba.model.core/src/rba/core/impl/ForAllOperatorImpl.java91
-rw-r--r--rba.model.core/src/rba/core/impl/GetAllocatablesImpl.java77
-rw-r--r--rba.model.core/src/rba/core/impl/GetContentsListImpl.java77
-rw-r--r--rba.model.core/src/rba/core/impl/GetPropertyImpl.java105
-rw-r--r--rba.model.core/src/rba/core/impl/GetStateImpl.java59
-rw-r--r--rba.model.core/src/rba/core/impl/GreaterThanOperatorImpl.java58
-rw-r--r--rba.model.core/src/rba/core/impl/HasBeenDisplayedImpl.java69
-rw-r--r--rba.model.core/src/rba/core/impl/HasComeEarlierThanImpl.java124
-rw-r--r--rba.model.core/src/rba/core/impl/HasComeLaterThanImpl.java124
-rw-r--r--rba.model.core/src/rba/core/impl/IfStatementImpl.java354
-rw-r--r--rba.model.core/src/rba/core/impl/ImpliesOperatorImpl.java58
-rw-r--r--rba.model.core/src/rba/core/impl/IntegerPropertyImpl.java170
-rw-r--r--rba.model.core/src/rba/core/impl/IntegerValueImpl.java186
-rw-r--r--rba.model.core/src/rba/core/impl/IsActiveImpl.java69
-rw-r--r--rba.model.core/src/rba/core/impl/IsAllocatedToImpl.java171
-rw-r--r--rba.model.core/src/rba/core/impl/IsChangedImpl.java156
-rw-r--r--rba.model.core/src/rba/core/impl/IsEqualToOperatorImpl.java58
-rw-r--r--rba.model.core/src/rba/core/impl/IsGreaterThanEqualOperatorImpl.java59
-rw-r--r--rba.model.core/src/rba/core/impl/IsGreaterThanOperatorImpl.java58
-rw-r--r--rba.model.core/src/rba/core/impl/IsLowerThanEqualOperatorImpl.java59
-rw-r--r--rba.model.core/src/rba/core/impl/IsLowerThanOperatorImpl.java58
-rw-r--r--rba.model.core/src/rba/core/impl/IsOnImpl.java69
-rw-r--r--rba.model.core/src/rba/core/impl/IsTranslatedToImpl.java191
-rw-r--r--rba.model.core/src/rba/core/impl/IsTypeOfImpl.java202
-rw-r--r--rba.model.core/src/rba/core/impl/LambdaContextImpl.java224
-rw-r--r--rba.model.core/src/rba/core/impl/LambdaExpressionImpl.java370
-rw-r--r--rba.model.core/src/rba/core/impl/LetStatementImpl.java268
-rw-r--r--rba.model.core/src/rba/core/impl/LogicalOperatorImpl.java83
-rw-r--r--rba.model.core/src/rba/core/impl/LoserTypeExpressionImpl.java192
-rw-r--r--rba.model.core/src/rba/core/impl/LowerThanOperatorImpl.java58
-rw-r--r--rba.model.core/src/rba/core/impl/MaxOperatorImpl.java87
-rw-r--r--rba.model.core/src/rba/core/impl/MaxValueImpl.java68
-rw-r--r--rba.model.core/src/rba/core/impl/MinOperatorImpl.java87
-rw-r--r--rba.model.core/src/rba/core/impl/MinValueImpl.java68
-rw-r--r--rba.model.core/src/rba/core/impl/ModelElementImpl.java154
-rw-r--r--rba.model.core/src/rba/core/impl/MuchGreaterThanOperatorImpl.java58
-rw-r--r--rba.model.core/src/rba/core/impl/NamedElementImpl.java150
-rw-r--r--rba.model.core/src/rba/core/impl/NoneValueImpl.java68
-rw-r--r--rba.model.core/src/rba/core/impl/NotOperatorImpl.java110
-rw-r--r--rba.model.core/src/rba/core/impl/NullExpressionImpl.java76
-rw-r--r--rba.model.core/src/rba/core/impl/ObjectCompareImpl.java86
-rw-r--r--rba.model.core/src/rba/core/impl/ObjectCompareNotImpl.java160
-rw-r--r--rba.model.core/src/rba/core/impl/ObjectReferenceImpl.java202
-rw-r--r--rba.model.core/src/rba/core/impl/OperatorImpl.java165
-rw-r--r--rba.model.core/src/rba/core/impl/OrOperatorImpl.java58
-rw-r--r--rba.model.core/src/rba/core/impl/PackagableElementImpl.java33
-rw-r--r--rba.model.core/src/rba/core/impl/PackageImpl.java139
-rw-r--r--rba.model.core/src/rba/core/impl/PlusOperatorImpl.java58
-rw-r--r--rba.model.core/src/rba/core/impl/PreviousModifierImpl.java229
-rw-r--r--rba.model.core/src/rba/core/impl/ProjectImpl.java233
-rw-r--r--rba.model.core/src/rba/core/impl/PropertyOperatorImpl.java73
-rw-r--r--rba.model.core/src/rba/core/impl/RBACoreFactoryImpl.java958
-rw-r--r--rba.model.core/src/rba/core/impl/RBACorePackageImpl.java4565
-rw-r--r--rba.model.core/src/rba/core/impl/RuleObjectImpl.java167
-rw-r--r--rba.model.core/src/rba/core/impl/SceneImpl.java245
-rw-r--r--rba.model.core/src/rba/core/impl/SceneOperatorImpl.java62
-rw-r--r--rba.model.core/src/rba/core/impl/SelectOperatorImpl.java92
-rw-r--r--rba.model.core/src/rba/core/impl/SetExpressionImpl.java33
-rw-r--r--rba.model.core/src/rba/core/impl/SetOfOperatorImpl.java106
-rw-r--r--rba.model.core/src/rba/core/impl/SetOperatorImpl.java33
-rw-r--r--rba.model.core/src/rba/core/impl/SizeOperatorImpl.java83
-rw-r--r--rba.model.core/src/rba/core/impl/StandardValueImpl.java68
-rw-r--r--rba.model.core/src/rba/core/impl/StateValueImpl.java69
-rw-r--r--rba.model.core/src/rba/core/impl/StereotypeImpl.java263
-rw-r--r--rba.model.core/src/rba/core/impl/TagImpl.java148
-rw-r--r--rba.model.core/src/rba/core/impl/ThatOfOperatorImpl.java83
-rw-r--r--rba.model.core/src/rba/core/impl/ValueExpressionImpl.java81
-rw-r--r--rba.model.core/src/rba/core/impl/VariableImpl.java103
-rw-r--r--rba.model.core/src/rba/core/util/RBACoreAdapterFactory.java1861
-rw-r--r--rba.model.core/src/rba/core/util/RBACoreSwitch.java2622
-rw-r--r--rba.model.sound.edit/.classpath7
-rw-r--r--rba.model.sound.edit/.project28
-rw-r--r--rba.model.sound.edit/META-INF/MANIFEST.MF17
-rw-r--r--rba.model.sound.edit/build.properties10
-rw-r--r--rba.model.sound.edit/icons/full/obj16/AllInstanceOfSoundContent.gifbin0 -> 129 bytes
-rw-r--r--rba.model.sound.edit/icons/full/obj16/AllInstanceOfZone.gifbin0 -> 129 bytes
-rw-r--r--rba.model.sound.edit/icons/full/obj16/IsAttenuated.gifbin0 -> 129 bytes
-rw-r--r--rba.model.sound.edit/icons/full/obj16/IsChangedOutput.gifbin0 -> 129 bytes
-rw-r--r--rba.model.sound.edit/icons/full/obj16/IsMuted.gifbin0 -> 129 bytes
-rw-r--r--rba.model.sound.edit/icons/full/obj16/IsOutputted.gifbin0 -> 129 bytes
-rw-r--r--rba.model.sound.edit/icons/full/obj16/IsOutputtedOn.gifbin0 -> 129 bytes
-rw-r--r--rba.model.sound.edit/icons/full/obj16/IsSounding.gifbin0 -> 129 bytes
-rw-r--r--rba.model.sound.edit/icons/full/obj16/IsTranslatedSoundTo.gifbin0 -> 129 bytes
-rw-r--r--rba.model.sound.edit/icons/full/obj16/MuteLowerPriority.gifbin0 -> 129 bytes
-rw-r--r--rba.model.sound.edit/icons/full/obj16/OutputtingSound.gifbin0 -> 129 bytes
-rw-r--r--rba.model.sound.edit/icons/full/obj16/SoundContent.gifbin0 -> 129 bytes
-rw-r--r--rba.model.sound.edit/icons/full/obj16/SoundContentSet.gifbin0 -> 129 bytes
-rw-r--r--rba.model.sound.edit/icons/full/obj16/SoundContentState.gifbin0 -> 129 bytes
-rw-r--r--rba.model.sound.edit/icons/full/obj16/Zone.gifbin0 -> 129 bytes
-rw-r--r--rba.model.sound.edit/icons/full/obj16/ZoneSet.gifbin0 -> 129 bytes
-rw-r--r--rba.model.sound.edit/plugin.properties49
-rw-r--r--rba.model.sound.edit/plugin.xml22
-rw-r--r--rba.model.sound.edit/src/rba/sound/provider/AllInstanceOfSoundContentItemProvider.java116
-rw-r--r--rba.model.sound.edit/src/rba/sound/provider/AllInstanceOfZoneItemProvider.java115
-rw-r--r--rba.model.sound.edit/src/rba/sound/provider/IsAttenuatedItemProvider.java101
-rw-r--r--rba.model.sound.edit/src/rba/sound/provider/IsChangedOutputItemProvider.java101
-rw-r--r--rba.model.sound.edit/src/rba/sound/provider/IsMutedItemProvider.java101
-rw-r--r--rba.model.sound.edit/src/rba/sound/provider/IsOutputtedItemProvider.java101
-rw-r--r--rba.model.sound.edit/src/rba/sound/provider/IsOutputtedOnItemProvider.java101
-rw-r--r--rba.model.sound.edit/src/rba/sound/provider/IsSoundingItemProvider.java101
-rw-r--r--rba.model.sound.edit/src/rba/sound/provider/IsTranslatedSoundToItemProvider.java102
-rw-r--r--rba.model.sound.edit/src/rba/sound/provider/MuteLowerPriorityItemProvider.java150
-rw-r--r--rba.model.sound.edit/src/rba/sound/provider/OutputtingSoundItemProvider.java101
-rw-r--r--rba.model.sound.edit/src/rba/sound/provider/RBASoundItemProviderAdapterFactory.java549
-rw-r--r--rba.model.sound.edit/src/rba/sound/provider/RbaSoundEditPlugin.java81
-rw-r--r--rba.model.sound.edit/src/rba/sound/provider/SoundContentItemProvider.java125
-rw-r--r--rba.model.sound.edit/src/rba/sound/provider/SoundContentOperatorItemProvider.java141
-rw-r--r--rba.model.sound.edit/src/rba/sound/provider/SoundContentSetItemProvider.java112
-rw-r--r--rba.model.sound.edit/src/rba/sound/provider/SoundContentStateItemProvider.java148
-rw-r--r--rba.model.sound.edit/src/rba/sound/provider/ZoneItemProvider.java402
-rw-r--r--rba.model.sound.edit/src/rba/sound/provider/ZoneOperatorItemProvider.java140
-rw-r--r--rba.model.sound.edit/src/rba/sound/provider/ZoneSetItemProvider.java110
-rw-r--r--rba.model.sound/.classpath7
-rw-r--r--rba.model.sound/.project35
-rw-r--r--rba.model.sound/META-INF/MANIFEST.MF16
-rw-r--r--rba.model.sound/build.properties10
-rw-r--r--rba.model.sound/model/rbasound.aird983
-rw-r--r--rba.model.sound/model/rbasound.ecore267
-rw-r--r--rba.model.sound/model/rbasound.genmodel83
-rw-r--r--rba.model.sound/plugin.properties4
-rw-r--r--rba.model.sound/plugin.xml17
-rw-r--r--rba.model.sound/src/rba/sound/AllInstanceOfSoundContent.java47
-rw-r--r--rba.model.sound/src/rba/sound/AllInstanceOfZone.java47
-rw-r--r--rba.model.sound/src/rba/sound/IsAttenuated.java46
-rw-r--r--rba.model.sound/src/rba/sound/IsChangedOutput.java37
-rw-r--r--rba.model.sound/src/rba/sound/IsMuted.java46
-rw-r--r--rba.model.sound/src/rba/sound/IsOutputted.java46
-rw-r--r--rba.model.sound/src/rba/sound/IsOutputtedOn.java46
-rw-r--r--rba.model.sound/src/rba/sound/IsSounding.java32
-rw-r--r--rba.model.sound/src/rba/sound/IsTranslatedSoundTo.java46
-rw-r--r--rba.model.sound/src/rba/sound/MuteLowerPriority.java47
-rw-r--r--rba.model.sound/src/rba/sound/OutputtingSound.java46
-rw-r--r--rba.model.sound/src/rba/sound/RBASoundFactory.java177
-rw-r--r--rba.model.sound/src/rba/sound/RBASoundPackage.java2791
-rw-r--r--rba.model.sound/src/rba/sound/SoundContent.java35
-rw-r--r--rba.model.sound/src/rba/sound/SoundContentOperator.java35
-rw-r--r--rba.model.sound/src/rba/sound/SoundContentSet.java35
-rw-r--r--rba.model.sound/src/rba/sound/SoundContentState.java35
-rw-r--r--rba.model.sound/src/rba/sound/Zone.java67
-rw-r--r--rba.model.sound/src/rba/sound/ZoneOperator.java34
-rw-r--r--rba.model.sound/src/rba/sound/ZoneSet.java35
-rw-r--r--rba.model.sound/src/rba/sound/impl/AllInstanceOfSoundContentImpl.java73
-rw-r--r--rba.model.sound/src/rba/sound/impl/AllInstanceOfZoneImpl.java72
-rw-r--r--rba.model.sound/src/rba/sound/impl/IsAttenuatedImpl.java70
-rw-r--r--rba.model.sound/src/rba/sound/impl/IsChangedOutputImpl.java186
-rw-r--r--rba.model.sound/src/rba/sound/impl/IsMutedImpl.java70
-rw-r--r--rba.model.sound/src/rba/sound/impl/IsOutputtedImpl.java70
-rw-r--r--rba.model.sound/src/rba/sound/impl/IsOutputtedOnImpl.java193
-rw-r--r--rba.model.sound/src/rba/sound/impl/IsSoundingImpl.java58
-rw-r--r--rba.model.sound/src/rba/sound/impl/IsTranslatedSoundToImpl.java205
-rw-r--r--rba.model.sound/src/rba/sound/impl/MuteLowerPriorityImpl.java192
-rw-r--r--rba.model.sound/src/rba/sound/impl/OutputtingSoundImpl.java70
-rw-r--r--rba.model.sound/src/rba/sound/impl/RBASoundFactoryImpl.java253
-rw-r--r--rba.model.sound/src/rba/sound/impl/RBASoundPackageImpl.java925
-rw-r--r--rba.model.sound/src/rba/sound/impl/SoundContentImpl.java60
-rw-r--r--rba.model.sound/src/rba/sound/impl/SoundContentOperatorImpl.java62
-rw-r--r--rba.model.sound/src/rba/sound/impl/SoundContentSetImpl.java62
-rw-r--r--rba.model.sound/src/rba/sound/impl/SoundContentStateImpl.java62
-rw-r--r--rba.model.sound/src/rba/sound/impl/ZoneImpl.java196
-rw-r--r--rba.model.sound/src/rba/sound/impl/ZoneOperatorImpl.java64
-rw-r--r--rba.model.sound/src/rba/sound/impl/ZoneSetImpl.java59
-rw-r--r--rba.model.sound/src/rba/sound/util/RBASoundAdapterFactory.java723
-rw-r--r--rba.model.sound/src/rba/sound/util/RBASoundSwitch.java827
-rw-r--r--rba.model.view.edit/.classpath7
-rw-r--r--rba.model.view.edit/.project28
-rw-r--r--rba.model.view.edit/META-INF/MANIFEST.MF17
-rw-r--r--rba.model.view.edit/build.properties10
-rw-r--r--rba.model.view.edit/icons/full/obj16/AllInstanceOfArea.gifbin0 -> 129 bytes
-rw-r--r--rba.model.view.edit/icons/full/obj16/AllInstanceOfViewContent.gifbin0 -> 129 bytes
-rw-r--r--rba.model.view.edit/icons/full/obj16/Area.gifbin0 -> 129 bytes
-rw-r--r--rba.model.view.edit/icons/full/obj16/AreaSet.gifbin0 -> 129 bytes
-rw-r--r--rba.model.view.edit/icons/full/obj16/CompositeArea.gifbin0 -> 129 bytes
-rw-r--r--rba.model.view.edit/icons/full/obj16/CyclicContent.gifbin0 -> 129 bytes
-rw-r--r--rba.model.view.edit/icons/full/obj16/Display.gifbin0 -> 129 bytes
-rw-r--r--rba.model.view.edit/icons/full/obj16/DisplayingContent.gifbin0 -> 129 bytes
-rw-r--r--rba.model.view.edit/icons/full/obj16/FixedPositionLayout.gifbin0 -> 129 bytes
-rw-r--r--rba.model.view.edit/icons/full/obj16/HideLowerPriority.gifbin0 -> 129 bytes
-rw-r--r--rba.model.view.edit/icons/full/obj16/HorizontalLayout.gifbin0 -> 129 bytes
-rw-r--r--rba.model.view.edit/icons/full/obj16/IsChangedDisplay.gifbin0 -> 129 bytes
-rw-r--r--rba.model.view.edit/icons/full/obj16/IsDisplayed.gifbin0 -> 129 bytes
-rw-r--r--rba.model.view.edit/icons/full/obj16/IsDisplayedOn.gifbin0 -> 129 bytes
-rw-r--r--rba.model.view.edit/icons/full/obj16/IsHidden.gifbin0 -> 129 bytes
-rw-r--r--rba.model.view.edit/icons/full/obj16/IsTranslatedViewTo.gifbin0 -> 129 bytes
-rw-r--r--rba.model.view.edit/icons/full/obj16/IsVisible.gifbin0 -> 129 bytes
-rw-r--r--rba.model.view.edit/icons/full/obj16/MessageApp.gifbin0 -> 129 bytes
-rw-r--r--rba.model.view.edit/icons/full/obj16/MessageContent.gifbin0 -> 129 bytes
-rw-r--r--rba.model.view.edit/icons/full/obj16/Offset.gifbin0 -> 129 bytes
-rw-r--r--rba.model.view.edit/icons/full/obj16/PositionContainer.gifbin0 -> 129 bytes
-rw-r--r--rba.model.view.edit/icons/full/obj16/Size.gifbin0 -> 129 bytes
-rw-r--r--rba.model.view.edit/icons/full/obj16/SizeReference.gifbin0 -> 129 bytes
-rw-r--r--rba.model.view.edit/icons/full/obj16/VerticalLayout.gifbin0 -> 129 bytes
-rw-r--r--rba.model.view.edit/icons/full/obj16/ViewContent.gifbin0 -> 129 bytes
-rw-r--r--rba.model.view.edit/icons/full/obj16/ViewContentSet.gifbin0 -> 129 bytes
-rw-r--r--rba.model.view.edit/icons/full/obj16/ViewContentState.gifbin0 -> 129 bytes
-rw-r--r--rba.model.view.edit/plugin.xml22
-rw-r--r--rba.model.view.edit/src/rba/view/provider/AlignedLayoutItemProvider.java131
-rw-r--r--rba.model.view.edit/src/rba/view/provider/AllInstanceOfAreaItemProvider.java115
-rw-r--r--rba.model.view.edit/src/rba/view/provider/AllInstanceOfViewContentItemProvider.java116
-rw-r--r--rba.model.view.edit/src/rba/view/provider/AreaItemProvider.java404
-rw-r--r--rba.model.view.edit/src/rba/view/provider/AreaOperatorItemProvider.java136
-rw-r--r--rba.model.view.edit/src/rba/view/provider/AreaSetItemProvider.java109
-rw-r--r--rba.model.view.edit/src/rba/view/provider/CompositeAreaItemProvider.java158
-rw-r--r--rba.model.view.edit/src/rba/view/provider/DisplayItemProvider.java162
-rw-r--r--rba.model.view.edit/src/rba/view/provider/DisplayingContentItemProvider.java101
-rw-r--r--rba.model.view.edit/src/rba/view/provider/FixedPositionLayoutItemProvider.java139
-rw-r--r--rba.model.view.edit/src/rba/view/provider/HideLowerPriorityItemProvider.java147
-rw-r--r--rba.model.view.edit/src/rba/view/provider/HorizontalLayoutItemProvider.java100
-rw-r--r--rba.model.view.edit/src/rba/view/provider/IsChangedDisplayItemProvider.java101
-rw-r--r--rba.model.view.edit/src/rba/view/provider/IsDisplayedItemProvider.java101
-rw-r--r--rba.model.view.edit/src/rba/view/provider/IsDisplayedOnItemProvider.java101
-rw-r--r--rba.model.view.edit/src/rba/view/provider/IsHiddenItemProvider.java101
-rw-r--r--rba.model.view.edit/src/rba/view/provider/IsTranslatedViewToItemProvider.java101
-rw-r--r--rba.model.view.edit/src/rba/view/provider/IsVisibleItemProvider.java101
-rw-r--r--rba.model.view.edit/src/rba/view/provider/LayoutManagerItemProvider.java103
-rw-r--r--rba.model.view.edit/src/rba/view/provider/OffsetItemProvider.java190
-rw-r--r--rba.model.view.edit/src/rba/view/provider/PositionContainerItemProvider.java228
-rw-r--r--rba.model.view.edit/src/rba/view/provider/RBAViewItemProviderAdapterFactory.java742
-rw-r--r--rba.model.view.edit/src/rba/view/provider/RbaViewEditPlugin.java81
-rw-r--r--rba.model.view.edit/src/rba/view/provider/SizeIdentifierItemProvider.java103
-rw-r--r--rba.model.view.edit/src/rba/view/provider/SizeItemProvider.java153
-rw-r--r--rba.model.view.edit/src/rba/view/provider/SizeReferenceItemProvider.java112
-rw-r--r--rba.model.view.edit/src/rba/view/provider/VerticalLayoutItemProvider.java100
-rw-r--r--rba.model.view.edit/src/rba/view/provider/ViewContentItemProvider.java161
-rw-r--r--rba.model.view.edit/src/rba/view/provider/ViewContentOperatorItemProvider.java138
-rw-r--r--rba.model.view.edit/src/rba/view/provider/ViewContentSetItemProvider.java112
-rw-r--r--rba.model.view.edit/src/rba/view/provider/ViewContentStateItemProvider.java145
-rw-r--r--rba.model.view/.classpath7
-rw-r--r--rba.model.view/.project35
-rw-r--r--rba.model.view/META-INF/MANIFEST.MF16
-rw-r--r--rba.model.view/build.properties10
-rw-r--r--rba.model.view/model/rbaview.aird1977
-rw-r--r--rba.model.view/model/rbaview.ecore441
-rw-r--r--rba.model.view/model/rbaview.genmodel133
-rw-r--r--rba.model.view/plugin.properties4
-rw-r--r--rba.model.view/plugin.xml17
-rw-r--r--rba.model.view/src/rba/view/AlignedLayout.java81
-rw-r--r--rba.model.view/src/rba/view/AllInstanceOfArea.java47
-rw-r--r--rba.model.view/src/rba/view/AllInstanceOfViewContent.java47
-rw-r--r--rba.model.view/src/rba/view/Area.java85
-rw-r--r--rba.model.view/src/rba/view/AreaOperator.java22
-rw-r--r--rba.model.view/src/rba/view/AreaSet.java35
-rw-r--r--rba.model.view/src/rba/view/BasePoint.java405
-rw-r--r--rba.model.view/src/rba/view/CompositeArea.java80
-rw-r--r--rba.model.view/src/rba/view/Display.java79
-rw-r--r--rba.model.view/src/rba/view/DisplayingContent.java46
-rw-r--r--rba.model.view/src/rba/view/FixedPositionLayout.java52
-rw-r--r--rba.model.view/src/rba/view/HideLowerPriority.java47
-rw-r--r--rba.model.view/src/rba/view/HorizontalLayout.java20
-rw-r--r--rba.model.view/src/rba/view/IsChangedDisplay.java37
-rw-r--r--rba.model.view/src/rba/view/IsDisplayed.java46
-rw-r--r--rba.model.view/src/rba/view/IsDisplayedOn.java46
-rw-r--r--rba.model.view/src/rba/view/IsHidden.java46
-rw-r--r--rba.model.view/src/rba/view/IsTranslatedViewTo.java46
-rw-r--r--rba.model.view/src/rba/view/IsVisible.java32
-rw-r--r--rba.model.view/src/rba/view/LayoutManager.java35
-rw-r--r--rba.model.view/src/rba/view/Offset.java159
-rw-r--r--rba.model.view/src/rba/view/PositionContainer.java207
-rw-r--r--rba.model.view/src/rba/view/RBAViewFactory.java249
-rw-r--r--rba.model.view/src/rba/view/RBAViewPackage.java4026
-rw-r--r--rba.model.view/src/rba/view/Size.java133
-rw-r--r--rba.model.view/src/rba/view/SizeIdentifier.java18
-rw-r--r--rba.model.view/src/rba/view/SizeReference.java48
-rw-r--r--rba.model.view/src/rba/view/VerticalLayout.java20
-rw-r--r--rba.model.view/src/rba/view/ViewContent.java58
-rw-r--r--rba.model.view/src/rba/view/ViewContentOperator.java35
-rw-r--r--rba.model.view/src/rba/view/ViewContentSet.java35
-rw-r--r--rba.model.view/src/rba/view/ViewContentState.java35
-rw-r--r--rba.model.view/src/rba/view/impl/AlignedLayoutImpl.java221
-rw-r--r--rba.model.view/src/rba/view/impl/AllInstanceOfAreaImpl.java72
-rw-r--r--rba.model.view/src/rba/view/impl/AllInstanceOfViewContentImpl.java73
-rw-r--r--rba.model.view/src/rba/view/impl/AreaImpl.java232
-rw-r--r--rba.model.view/src/rba/view/impl/AreaOperatorImpl.java34
-rw-r--r--rba.model.view/src/rba/view/impl/AreaSetImpl.java57
-rw-r--r--rba.model.view/src/rba/view/impl/CompositeAreaImpl.java214
-rw-r--r--rba.model.view/src/rba/view/impl/DisplayImpl.java240
-rw-r--r--rba.model.view/src/rba/view/impl/DisplayingContentImpl.java70
-rw-r--r--rba.model.view/src/rba/view/impl/FixedPositionLayoutImpl.java169
-rw-r--r--rba.model.view/src/rba/view/impl/HideLowerPriorityImpl.java192
-rw-r--r--rba.model.view/src/rba/view/impl/HorizontalLayoutImpl.java33
-rw-r--r--rba.model.view/src/rba/view/impl/IsChangedDisplayImpl.java186
-rw-r--r--rba.model.view/src/rba/view/impl/IsDisplayedImpl.java70
-rw-r--r--rba.model.view/src/rba/view/impl/IsDisplayedOnImpl.java191
-rw-r--r--rba.model.view/src/rba/view/impl/IsHiddenImpl.java70
-rw-r--r--rba.model.view/src/rba/view/impl/IsTranslatedViewToImpl.java205
-rw-r--r--rba.model.view/src/rba/view/impl/IsVisibleImpl.java58
-rw-r--r--rba.model.view/src/rba/view/impl/LayoutManagerImpl.java63
-rw-r--r--rba.model.view/src/rba/view/impl/OffsetImpl.java355
-rw-r--r--rba.model.view/src/rba/view/impl/PositionContainerImpl.java443
-rw-r--r--rba.model.view/src/rba/view/impl/RBAViewFactoryImpl.java390
-rw-r--r--rba.model.view/src/rba/view/impl/RBAViewPackageImpl.java1430
-rw-r--r--rba.model.view/src/rba/view/impl/SizeIdentifierImpl.java35
-rw-r--r--rba.model.view/src/rba/view/impl/SizeImpl.java274
-rw-r--r--rba.model.view/src/rba/view/impl/SizeReferenceImpl.java146
-rw-r--r--rba.model.view/src/rba/view/impl/VerticalLayoutImpl.java33
-rw-r--r--rba.model.view/src/rba/view/impl/ViewContentImpl.java160
-rw-r--r--rba.model.view/src/rba/view/impl/ViewContentOperatorImpl.java62
-rw-r--r--rba.model.view/src/rba/view/impl/ViewContentSetImpl.java62
-rw-r--r--rba.model.view/src/rba/view/impl/ViewContentStateImpl.java62
-rw-r--r--rba.model.view/src/rba/view/util/RBAViewAdapterFactory.java930
-rw-r--r--rba.model.view/src/rba/view/util/RBAViewSwitch.java1107
-rw-r--r--rba.tool.core/.classpath16
-rw-r--r--rba.tool.core/.project28
-rw-r--r--rba.tool.core/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--rba.tool.core/META-INF/MANIFEST.MF36
-rw-r--r--rba.tool.core/build.properties11
-rw-r--r--rba.tool.core/icons/info.pngbin0 -> 3071 bytes
-rw-r--r--rba.tool.core/icons/rba.gifbin0 -> 960 bytes
-rw-r--r--rba.tool.core/icons/rbaSim.gifbin0 -> 1021 bytes
-rw-r--r--rba.tool.core/lib/groovy-all-2.4.12-indy.jarbin0 -> 6834923 bytes
-rw-r--r--rba.tool.core/lib/z3/JavaExample.java2400
-rw-r--r--rba.tool.core/lib/z3/Microsoft.Z3.dllbin0 -> 203776 bytes
-rw-r--r--rba.tool.core/lib/z3/Microsoft.Z3.xml6648
-rw-r--r--rba.tool.core/lib/z3/com.microsoft.z3.jarbin0 -> 168237 bytes
-rw-r--r--rba.tool.core/lib/z3/libz3.dllbin0 -> 11362816 bytes
-rw-r--r--rba.tool.core/lib/z3/libz3.libbin0 -> 138220 bytes
-rw-r--r--rba.tool.core/lib/z3/libz3java.dllbin0 -> 89088 bytes
-rw-r--r--rba.tool.core/lib/z3/libz3java.libbin0 -> 239520 bytes
-rw-r--r--rba.tool.core/lib/z3/msvcp110.dllbin0 -> 661448 bytes
-rw-r--r--rba.tool.core/lib/z3/msvcr110.dllbin0 -> 828872 bytes
-rw-r--r--rba.tool.core/lib/z3/python/example.py36
-rw-r--r--rba.tool.core/lib/z3/python/z3/__init__.py12
-rw-r--r--rba.tool.core/lib/z3/python/z3/z3.py9670
-rw-r--r--rba.tool.core/lib/z3/python/z3/z3consts.py314
-rw-r--r--rba.tool.core/lib/z3/python/z3/z3core.py5459
-rw-r--r--rba.tool.core/lib/z3/python/z3/z3num.py577
-rw-r--r--rba.tool.core/lib/z3/python/z3/z3poly.py35
-rw-r--r--rba.tool.core/lib/z3/python/z3/z3printer.py1253
-rw-r--r--rba.tool.core/lib/z3/python/z3/z3rcf.py163
-rw-r--r--rba.tool.core/lib/z3/python/z3/z3types.py123
-rw-r--r--rba.tool.core/lib/z3/python/z3/z3util.py508
-rw-r--r--rba.tool.core/lib/z3/vcomp110.dllbin0 -> 124360 bytes
-rw-r--r--rba.tool.core/lib/z3/z3.exebin0 -> 11519488 bytes
-rw-r--r--rba.tool.core/lib32/z3/LICENSE.txt10
-rw-r--r--rba.tool.core/lib32/z3/Microsoft.Z3.dllbin0 -> 214528 bytes
-rw-r--r--rba.tool.core/lib32/z3/Microsoft.Z3.xml6921
-rw-r--r--rba.tool.core/lib32/z3/com.microsoft.z3.jarbin0 -> 173416 bytes
-rw-r--r--rba.tool.core/lib32/z3/libz3.dllbin0 -> 10121728 bytes
-rw-r--r--rba.tool.core/lib32/z3/libz3.libbin0 -> 149322 bytes
-rw-r--r--rba.tool.core/lib32/z3/libz3java.dllbin0 -> 98816 bytes
-rw-r--r--rba.tool.core/lib32/z3/libz3java.libbin0 -> 265978 bytes
-rw-r--r--rba.tool.core/lib32/z3/msvcp110.dllbin0 -> 534480 bytes
-rw-r--r--rba.tool.core/lib32/z3/msvcr110.dllbin0 -> 862664 bytes
-rw-r--r--rba.tool.core/lib32/z3/python/example.py36
-rw-r--r--rba.tool.core/lib32/z3/python/z3/__init__.py12
-rw-r--r--rba.tool.core/lib32/z3/python/z3/__init__.pycbin0 -> 470 bytes
-rw-r--r--rba.tool.core/lib32/z3/python/z3/z3.py10025
-rw-r--r--rba.tool.core/lib32/z3/python/z3/z3.pycbin0 -> 352623 bytes
-rw-r--r--rba.tool.core/lib32/z3/python/z3/z3consts.py323
-rw-r--r--rba.tool.core/lib32/z3/python/z3/z3consts.pycbin0 -> 9751 bytes
-rw-r--r--rba.tool.core/lib32/z3/python/z3/z3core.py4532
-rw-r--r--rba.tool.core/lib32/z3/python/z3/z3core.pycbin0 -> 172650 bytes
-rw-r--r--rba.tool.core/lib32/z3/python/z3/z3num.py577
-rw-r--r--rba.tool.core/lib32/z3/python/z3/z3num.pycbin0 -> 19823 bytes
-rw-r--r--rba.tool.core/lib32/z3/python/z3/z3poly.py35
-rw-r--r--rba.tool.core/lib32/z3/python/z3/z3poly.pycbin0 -> 1209 bytes
-rw-r--r--rba.tool.core/lib32/z3/python/z3/z3printer.py1253
-rw-r--r--rba.tool.core/lib32/z3/python/z3/z3printer.pycbin0 -> 48645 bytes
-rw-r--r--rba.tool.core/lib32/z3/python/z3/z3rcf.py163
-rw-r--r--rba.tool.core/lib32/z3/python/z3/z3rcf.pycbin0 -> 7800 bytes
-rw-r--r--rba.tool.core/lib32/z3/python/z3/z3types.py123
-rw-r--r--rba.tool.core/lib32/z3/python/z3/z3types.pycbin0 -> 12097 bytes
-rw-r--r--rba.tool.core/lib32/z3/python/z3/z3util.py508
-rw-r--r--rba.tool.core/lib32/z3/python/z3/z3util.pycbin0 -> 12502 bytes
-rw-r--r--rba.tool.core/lib32/z3/vcomp110.dllbin0 -> 115656 bytes
-rw-r--r--rba.tool.core/lib32/z3/z3.exebin0 -> 10316800 bytes
-rw-r--r--rba.tool.core/plugin.properties2
-rw-r--r--rba.tool.core/plugin.xml173
-rw-r--r--rba.tool.core/src/rba/tool/core/Activator.java49
-rw-r--r--rba.tool.core/src/rba/tool/core/console/ConsoleManager.java96
-rw-r--r--rba.tool.core/src/rba/tool/core/console/IConsoleHook.java8
-rw-r--r--rba.tool.core/src/rba/tool/core/console/IConsoleManager.java14
-rw-r--r--rba.tool.core/src/rba/tool/core/constraint/IConstraintCalculation.java14
-rw-r--r--rba.tool.core/src/rba/tool/core/marker/MarkerManager.java142
-rw-r--r--rba.tool.core/src/rba/tool/core/sort/ComparisonAndEvaluator.java49
-rw-r--r--rba.tool.core/src/rba/tool/core/sort/ComparisonOperatorEvaluator.java49
-rw-r--r--rba.tool.core/src/rba/tool/core/sort/EObjectDecorator.java118
-rw-r--r--rba.tool.core/src/rba/tool/core/sort/EqualToOperatorEvaluator.java52
-rw-r--r--rba.tool.core/src/rba/tool/core/sort/ExpressionEvaluator.java55
-rw-r--r--rba.tool.core/src/rba/tool/core/sort/GreaterThanOperatorEvaluator.java64
-rw-r--r--rba.tool.core/src/rba/tool/core/sort/ISortValueCalculation.java15
-rw-r--r--rba.tool.core/src/rba/tool/core/sort/MuchGreaterThanOperatorEvaluator.java67
-rw-r--r--rba.tool.core/src/rba/tool/core/sort/SortValue.java45
-rw-r--r--rba.tool.core/src/rba/tool/core/sort/SortValueManager.java56
-rw-r--r--rba.tool.core/src/rba/tool/core/sort/ValueGroup.java35
-rw-r--r--rba.tool.core/src/rba/tool/core/sort/ValueSortedList.java168
-rw-r--r--rba.tool.core/src/rba/tool/core/ui/BasicTableViewerColumnFilter.java72
-rw-r--r--rba.tool.core/src/rba/tool/core/ui/CommonValueValidator.java51
-rw-r--r--rba.tool.core/src/rba/tool/core/util/EmptyToolLogger.java20
-rw-r--r--rba.tool.core/src/rba/tool/core/util/IToolLogger.java8
-rw-r--r--rba.tool.core/src/rba/tool/core/util/ModelUtil.java29
-rw-r--r--rba.tool.core/src/rba/tool/core/util/ResourceUtil.java72
-rw-r--r--rba.tool.core/src/rba/tool/core/util/SelectionTester.java53
-rw-r--r--rba.tool.core/src/rba/tool/core/util/SelectionUtil.java167
-rw-r--r--rba.tool.core/src/rba/tool/core/util/SortResult.java38
-rw-r--r--rba.tool.core/src/rba/tool/core/util/SortResultSet.java25
-rw-r--r--rba.tool.core/src/rba/tool/core/util/ToolLogger.java79
-rw-r--r--rba.tool.core/src/rba/tool/core/util/ValueSort.java152
-rw-r--r--rba.tool.core/src/rba/tool/core/util/data/ExCommentInfo.java32
-rw-r--r--rba.tool.core/src/rba/tool/core/util/data/ExCommentLabel.java21
-rw-r--r--rba.tool.core/src/rba/tool/core/z3/Z3CodeManager.java360
-rw-r--r--rba.tool.core/src/rba/tool/core/z3/Z3Constants.java18
-rw-r--r--rba.tool.editor.endpoint/.classpath139
-rw-r--r--rba.tool.editor.endpoint/.gitignore4
-rw-r--r--rba.tool.editor.endpoint/.project36
-rw-r--r--rba.tool.editor.endpoint/.settings/org.eclipse.core.resources.prefs3
-rw-r--r--rba.tool.editor.endpoint/.settings/org.eclipse.jdt.core.prefs13
-rw-r--r--rba.tool.editor.endpoint/.settings/org.eclipse.m2e.core.prefs4
-rw-r--r--rba.tool.editor.endpoint/.settings/org.eclipse.xtend.core.Xtend.prefs7
-rw-r--r--rba.tool.editor.endpoint/lib/windows/z3/Microsoft.Z3.dllbin0 -> 203776 bytes
-rw-r--r--rba.tool.editor.endpoint/lib/windows/z3/Microsoft.Z3.xml6648
-rw-r--r--rba.tool.editor.endpoint/lib/windows/z3/libz3.dllbin0 -> 11362816 bytes
-rw-r--r--rba.tool.editor.endpoint/lib/windows/z3/libz3.libbin0 -> 138220 bytes
-rw-r--r--rba.tool.editor.endpoint/lib/windows/z3/libz3java.dllbin0 -> 89088 bytes
-rw-r--r--rba.tool.editor.endpoint/lib/windows/z3/libz3java.libbin0 -> 239520 bytes
-rw-r--r--rba.tool.editor.endpoint/lib/windows/z3/msvcp110.dllbin0 -> 661448 bytes
-rw-r--r--rba.tool.editor.endpoint/lib/windows/z3/msvcr110.dllbin0 -> 828872 bytes
-rw-r--r--rba.tool.editor.endpoint/lib/windows/z3/python/example.py36
-rw-r--r--rba.tool.editor.endpoint/lib/windows/z3/python/z3/__init__.py12
-rw-r--r--rba.tool.editor.endpoint/lib/windows/z3/python/z3/z3.py9670
-rw-r--r--rba.tool.editor.endpoint/lib/windows/z3/python/z3/z3consts.py314
-rw-r--r--rba.tool.editor.endpoint/lib/windows/z3/python/z3/z3core.py5459
-rw-r--r--rba.tool.editor.endpoint/lib/windows/z3/python/z3/z3num.py577
-rw-r--r--rba.tool.editor.endpoint/lib/windows/z3/python/z3/z3poly.py35
-rw-r--r--rba.tool.editor.endpoint/lib/windows/z3/python/z3/z3printer.py1253
-rw-r--r--rba.tool.editor.endpoint/lib/windows/z3/python/z3/z3rcf.py163
-rw-r--r--rba.tool.editor.endpoint/lib/windows/z3/python/z3/z3types.py123
-rw-r--r--rba.tool.editor.endpoint/lib/windows/z3/python/z3/z3util.py508
-rw-r--r--rba.tool.editor.endpoint/lib/windows/z3/vcomp110.dllbin0 -> 124360 bytes
-rw-r--r--rba.tool.editor.endpoint/lib/windows/z3/z3.exebin0 -> 11519488 bytes
-rw-r--r--rba.tool.editor.endpoint/model/all.rba145
-rw-r--r--rba.tool.editor.endpoint/pom.xml324
-rw-r--r--rba.tool.editor.endpoint/release_note.md4
-rw-r--r--rba.tool.editor.endpoint/script/TemplateGenerator.groovy1797
-rw-r--r--rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/RBAModelServiceDispatcher.xtend37
-rw-r--r--rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/RBAModelServlet.xtend68
-rw-r--r--rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/RBAModelWebModule.xtend57
-rw-r--r--rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/RBAModelWebSetup.xtend48
-rw-r--r--rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/ServerLauncher.xtend213
-rw-r--r--rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/generator/RBAModelWebGenerator.xtend400
-rw-r--r--rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/resource/RBAModelContentTypeProvider.xtend15
-rw-r--r--rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/resource/RBAModelResourceSetProvider.xtend23
-rw-r--r--rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/resource/RBAModelWebEncodingProvider.xtend16
-rw-r--r--rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/server/persistence/RBAModelResourceBaseProviderImpl.xtend27
-rw-r--r--rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/server/persistence/RBAModelServerResourceHandler.xtend287
-rw-r--r--rba.tool.editor.endpoint/template/RBAModel.jsontemplate568
-rw-r--r--rba.tool.editor.endpoint/xtend-gen/rba/tool/editor/endpoint/.gitignore12
-rw-r--r--rba.tool.editor.endpoint/xtend-gen/rba/tool/editor/endpoint/generator/.gitignore6
-rw-r--r--rba.tool.editor.endpoint/xtend-gen/rba/tool/editor/endpoint/resource/.gitignore6
-rw-r--r--rba.tool.editor.endpoint/xtend-gen/rba/tool/editor/endpoint/server/persistence/.gitignore4
-rw-r--r--rba.tool.editor.ide/.classpath9
-rw-r--r--rba.tool.editor.ide/.project34
-rw-r--r--rba.tool.editor.ide/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--rba.tool.editor.ide/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--rba.tool.editor.ide/META-INF/MANIFEST.MF16
-rw-r--r--rba.tool.editor.ide/build.properties7
-rw-r--r--rba.tool.editor.ide/plugin.properties2
-rw-r--r--rba.tool.editor.ide/src-gen/META-INF/services/org.eclipse.xtext.ISetup1
-rw-r--r--rba.tool.editor.ide/src-gen/rba/tool/editor/ide/AbstractRBAModelIdeModule.java60
-rw-r--r--rba.tool.editor.ide/src-gen/rba/tool/editor/ide/contentassist/antlr/PartialRBAModelContentAssistParser.java34
-rw-r--r--rba.tool.editor.ide/src-gen/rba/tool/editor/ide/contentassist/antlr/RBAModelParser.java508
-rw-r--r--rba.tool.editor.ide/src-gen/rba/tool/editor/ide/contentassist/antlr/internal/InternalRBAModel.g26662
-rw-r--r--rba.tool.editor.ide/src-gen/rba/tool/editor/ide/contentassist/antlr/internal/InternalRBAModel.tokens314
-rw-r--r--rba.tool.editor.ide/src-gen/rba/tool/editor/ide/contentassist/antlr/internal/InternalRBAModelLexer.java6319
-rw-r--r--rba.tool.editor.ide/src-gen/rba/tool/editor/ide/contentassist/antlr/internal/InternalRBAModelParser.java94035
-rw-r--r--rba.tool.editor.ide/src/rba/tool/editor/ide/RBAModelIdeModule.xtend11
-rw-r--r--rba.tool.editor.ide/src/rba/tool/editor/ide/RBAModelIdeSetup.xtend20
-rw-r--r--rba.tool.editor.ide/xtend-gen/rba/tool/editor/ide/.gitignore10
-rw-r--r--rba.tool.editor.ui/.classpath9
-rw-r--r--rba.tool.editor.ui/.project34
-rw-r--r--rba.tool.editor.ui/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--rba.tool.editor.ui/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--rba.tool.editor.ui/META-INF/MANIFEST.MF37
-rw-r--r--rba.tool.editor.ui/build.properties10
-rw-r--r--rba.tool.editor.ui/icons/newProject.gifbin0 -> 960 bytes
-rw-r--r--rba.tool.editor.ui/plugin.properties2
-rw-r--r--rba.tool.editor.ui/plugin.xml500
-rw-r--r--rba.tool.editor.ui/plugin.xml_gen429
-rw-r--r--rba.tool.editor.ui/src-gen/rba/tool/editor/ui/AbstractRBAModelUiModule.java300
-rw-r--r--rba.tool.editor.ui/src-gen/rba/tool/editor/ui/RBAModelExecutableExtensionFactory.java29
-rw-r--r--rba.tool.editor.ui/src-gen/rba/tool/editor/ui/contentassist/AbstractRBAModelProposalProvider.java943
-rw-r--r--rba.tool.editor.ui/src-gen/rba/tool/editor/ui/internal/EditorActivator.java95
-rw-r--r--rba.tool.editor.ui/src-gen/rba/tool/editor/ui/wizard/RBAModelNewProjectWizard.java55
-rw-r--r--rba.tool.editor.ui/src-gen/rba/tool/editor/ui/wizard/RBAModelProjectCreator.java93
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/RBAModelUiModule.xtend101
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/activator/ExtensionEditorActivator.xtend41
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/builder/RBAModelBuilderParticipant.xtend253
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/builder/resourceloader/RBAModelResourceLoader.xtend183
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/contentassist/RBAModelExpressionScopeCreator.xtend74
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/contentassist/RBAModelLastSegmentFinder.xtend31
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/contentassist/RBAModelProposalProvider.xtend250
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/coverage/TCLogFormatPreferencePage.java83
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/coverage/TCLogFormatSettingManager.java42
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/editor/model/edit/processor/RBAModelProcessorUtil.xtend177
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/editor/model/edit/refactoring/RBAModelRenameElementUtil.java143
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/editor/model/edit/refactoring/RBAModelRenameRefactoringController.xtend24
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/editor/model/edit/refactoring/RBAModelSyncUtil.java175
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/editor/model/manager/ResourceManagerUI.xtend428
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/editor/templates/RBAModelTemplateRegistry.xtend99
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/editor/templates/RBAModelTemplateStore.xtend30
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/editor/templates/TemplateRegistry.xtend23
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/labeling/RBAModelDescriptionLabelProvider.xtend24
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/labeling/RBAModelLabelProvider.xtend31
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/labeling/RBATemplateModelDescriptionLabelProvider.xtend24
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/labeling/RBATemplateModelLabelProvider.xtend31
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/marker/PositionInfo.xtend76
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/marker/RBAModelMarkerCreator.xtend34
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/marker/RBAModelResourceUIValidatorExtension.xtend67
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/messages/Messages.java29
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/messages/messages.properties9
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/opener/RBAModelURIEditorOpener.xtend129
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/outline/RBAModelOutlineTreeProvider.xtend15
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/outline/RBATemplateModelOutlineTreeProvider.xtend15
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/properties/RBAServerPropertySettingPage.java219
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/quickfix/RBAModelQuickfixProvider.xtend24
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/quickfix/RBATemplateModelQuickfixProvider.xtend23
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/recordandplay/RBASimulationRecordPage.java50
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/recordandplay/RBASimulationRecordSettingManager.java71
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/resource/RBADocumentResourceSetProvider.xtend27
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/resource/RBAModelResourceSetProvider.xtend37
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/resource/RBAModelResourceUIServiceProvider.xtend36
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/syntaxcoloring/RBAModelAntlrTokenToAttributeIdMapper.xtend14
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/syntaxcoloring/RBAModelHighlightingConfiguration.xtend27
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/template/RBATemplateApplyModule.xtend13
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/template/RBATemplateApplyToBeBuiltComputer.xtend23
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/util/CharacterUtil.xtend10
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/util/UnitOfProgressUtil.java84
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/util/concurrent/AbstractSwitchProjectProgress.java40
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/util/concurrent/IUnitOfProgress.java18
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/ExtendRBAModelProjectCreator.xtend12
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAEmptyModelNewProjectWizardEx.java48
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAModelNewProjectWizardEx.java115
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAModelNewProjectWizardInitialContents.xtend12
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAModelProjectInfo.java10
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAModelWizardNewProjectCreationPage.java14
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBATemplateModelNewProjectWizardInitialContents.xtend26
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBATemplateModelProjectInfo.java10
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBATemplateModelWizardNewProjectCreationPage.java14
-rw-r--r--rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/.gitignore6
-rw-r--r--rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/activator/.gitignore2
-rw-r--r--rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/builder/.gitignore4
-rw-r--r--rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/builder/resourceloader/.gitignore2
-rw-r--r--rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/compare/.gitignore2
-rw-r--r--rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/contentassist/.gitignore11
-rw-r--r--rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/.gitignore3
-rw-r--r--rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/model/.gitignore6
-rw-r--r--rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/model/edit/.gitignore3
-rw-r--r--rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/model/edit/processor/.gitignore3
-rw-r--r--rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/model/edit/refactoring/.gitignore7
-rw-r--r--rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/model/manager/.gitignore3
-rw-r--r--rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/reconciler/.gitignore3
-rw-r--r--rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/templates/.gitignore10
-rw-r--r--rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/labeling/.gitignore10
-rw-r--r--rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/marker/.gitignore6
-rw-r--r--rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/opener/.gitignore2
-rw-r--r--rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/outline/.gitignore5
-rw-r--r--rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/quickfix/.gitignore5
-rw-r--r--rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/resource/.gitignore9
-rw-r--r--rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/syntaxcoloring/.gitignore4
-rw-r--r--rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/template/.gitignore9
-rw-r--r--rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/util/.gitignore2
-rw-r--r--rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/wizard/.gitignore7
-rw-r--r--rba.tool.editor/.antlr-generator-3.2.0-patch.jarbin0 -> 1484649 bytes
-rw-r--r--rba.tool.editor/.classpath9
-rw-r--r--rba.tool.editor/.launch/Generate RBAModel (rba) Language Infrastructure.launch18
-rw-r--r--rba.tool.editor/.launch/Launch Runtime Eclipse.launch35
-rw-r--r--rba.tool.editor/.project34
-rw-r--r--rba.tool.editor/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--rba.tool.editor/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--rba.tool.editor/META-INF/MANIFEST.MF51
-rw-r--r--rba.tool.editor/build.properties25
-rw-r--r--rba.tool.editor/model/generated/RBAModel.ecore24
-rw-r--r--rba.tool.editor/model/generated/RBAModel.genmodel22
-rw-r--r--rba.tool.editor/plugin.properties2
-rw-r--r--rba.tool.editor/plugin.xml11
-rw-r--r--rba.tool.editor/plugin.xml_gen10
-rw-r--r--rba.tool.editor/schema/rbaToolEditorExtensionModule.exsd99
-rw-r--r--rba.tool.editor/src-gen/rba/tool/editor/AbstractRBAModelRuntimeModule.java209
-rw-r--r--rba.tool.editor/src-gen/rba/tool/editor/RBAModel.xtextbinbin0 -> 36017 bytes
-rw-r--r--rba.tool.editor/src-gen/rba/tool/editor/RBAModelStandaloneSetupGenerated.java56
-rw-r--r--rba.tool.editor/src-gen/rba/tool/editor/parser/antlr/RBAModelAntlrTokenFileProvider.java16
-rw-r--r--rba.tool.editor/src-gen/rba/tool/editor/parser/antlr/RBAModelParser.java40
-rw-r--r--rba.tool.editor/src-gen/rba/tool/editor/parser/antlr/internal/InternalRBAModel.g10307
-rw-r--r--rba.tool.editor/src-gen/rba/tool/editor/parser/antlr/internal/InternalRBAModel.tokens314
-rw-r--r--rba.tool.editor/src-gen/rba/tool/editor/parser/antlr/internal/InternalRBAModelLexer.java6319
-rw-r--r--rba.tool.editor/src-gen/rba/tool/editor/parser/antlr/internal/InternalRBAModelParser.java31671
-rw-r--r--rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/CTag.java20
-rw-r--r--rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/Import.java52
-rw-r--r--rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/MemberFeatureReference.java44
-rw-r--r--rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/RbaEditorModelFactory.java71
-rw-r--r--rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/RbaEditorModelPackage.java447
-rw-r--r--rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/TopLevel.java80
-rw-r--r--rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/impl/CTagImpl.java43
-rw-r--r--rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/impl/ImportImpl.java178
-rw-r--r--rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/impl/MemberFeatureReferenceImpl.java169
-rw-r--r--rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/impl/RbaEditorModelFactoryImpl.java143
-rw-r--r--rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/impl/RbaEditorModelPackageImpl.java311
-rw-r--r--rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/impl/TopLevelImpl.java246
-rw-r--r--rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/util/RbaEditorModelAdapterFactory.java299
-rw-r--r--rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/util/RbaEditorModelSwitch.java280
-rw-r--r--rba.tool.editor/src-gen/rba/tool/editor/scoping/AbstractRBAModelScopeProvider.java9
-rw-r--r--rba.tool.editor/src-gen/rba/tool/editor/serializer/RBAModelSemanticSequencer.java5542
-rw-r--r--rba.tool.editor/src-gen/rba/tool/editor/serializer/RBAModelSyntacticSequencer.java1786
-rw-r--r--rba.tool.editor/src-gen/rba/tool/editor/services/RBAModelGrammarAccess.java9097
-rw-r--r--rba.tool.editor/src-gen/rba/tool/editor/validation/AbstractRBAModelValidator.java23
-rw-r--r--rba.tool.editor/src/rba/tool/editor/GenerateRBAModel.mwe274
-rw-r--r--rba.tool.editor/src/rba/tool/editor/RBAModel.xtext1196
-rw-r--r--rba.tool.editor/src/rba/tool/editor/RBAModelRuntimeModule.xtend88
-rw-r--r--rba.tool.editor/src/rba/tool/editor/RBAModelStandaloneSetup.xtend15
-rw-r--r--rba.tool.editor/src/rba/tool/editor/formatting2/RBAModelFormatter.xtend132
-rw-r--r--rba.tool.editor/src/rba/tool/editor/generator/RBAModelGeneratorDelegate.xtend184
-rw-r--r--rba.tool.editor/src/rba/tool/editor/generator/RBAModelGeneratorExtensions.xtend680
-rw-r--r--rba.tool.editor/src/rba/tool/editor/generator/json/AbstractJSONGenerator.xtend52
-rw-r--r--rba.tool.editor/src/rba/tool/editor/generator/json/IJSONGenerator.xtend18
-rw-r--r--rba.tool.editor/src/rba/tool/editor/generator/json/JSONGeneratorOutputConfiguration.xtend18
-rw-r--r--rba.tool.editor/src/rba/tool/editor/generator/rtmodel/AbstractRTModelUpdater.xtend23
-rw-r--r--rba.tool.editor/src/rba/tool/editor/generator/rtmodel/IRTModelUpdater.xtend15
-rw-r--r--rba.tool.editor/src/rba/tool/editor/generator/z3/ConstraintCodeGenerationSupporter.java1599
-rw-r--r--rba.tool.editor/src/rba/tool/editor/generator/z3/ConstraintCodeTemplate.java315
-rw-r--r--rba.tool.editor/src/rba/tool/editor/generator/z3/ConstraintGeneratorImpl.xtend48
-rw-r--r--rba.tool.editor/src/rba/tool/editor/generator/z3/GeneratorConstants.java320
-rw-r--r--rba.tool.editor/src/rba/tool/editor/generator/z3/IConstraintGenerator.xtend15
-rw-r--r--rba.tool.editor/src/rba/tool/editor/generator/z3/ISortValueGenerator.xtend15
-rw-r--r--rba.tool.editor/src/rba/tool/editor/generator/z3/SortValueCodeGenerationSupporter.java555
-rw-r--r--rba.tool.editor/src/rba/tool/editor/generator/z3/SortValueCodeTemplate.java148
-rw-r--r--rba.tool.editor/src/rba/tool/editor/generator/z3/SortValueGeneratorImpl.xtend46
-rw-r--r--rba.tool.editor/src/rba/tool/editor/linking/RBAModelLinker.xtend87
-rw-r--r--rba.tool.editor/src/rba/tool/editor/linking/RBAModelLinkingService.xtend66
-rw-r--r--rba.tool.editor/src/rba/tool/editor/messages/Messages.java415
-rw-r--r--rba.tool.editor/src/rba/tool/editor/messages/messages.properties201
-rw-r--r--rba.tool.editor/src/rba/tool/editor/model/manager/GlobalIndexResourceSorter.java36
-rw-r--r--rba.tool.editor/src/rba/tool/editor/model/manager/ResourceManager.xtend209
-rw-r--r--rba.tool.editor/src/rba/tool/editor/naming/RBAModelSimpleNameProvider.xtend62
-rw-r--r--rba.tool.editor/src/rba/tool/editor/resource/IRBAModelResourceLoader.xtend11
-rw-r--r--rba.tool.editor/src/rba/tool/editor/resource/RBAModelEObjectDescription.xtend24
-rw-r--r--rba.tool.editor/src/rba/tool/editor/resource/RBAModelLocationInFileProvider.xtend17
-rw-r--r--rba.tool.editor/src/rba/tool/editor/scoping/IExpressionScope.xtend22
-rw-r--r--rba.tool.editor/src/rba/tool/editor/scoping/RBAModelExpressionScope.xtend22
-rw-r--r--rba.tool.editor/src/rba/tool/editor/scoping/RBAModelImportedNamespaceAwareLocalScopeProvider.xtend42
-rw-r--r--rba.tool.editor/src/rba/tool/editor/scoping/RBAModelScopeProvider.xtend85
-rw-r--r--rba.tool.editor/src/rba/tool/editor/scoping/internal/IMemberFeatureScopes.xtend12
-rw-r--r--rba.tool.editor/src/rba/tool/editor/scoping/internal/RBAModelMemberFieldScopes.xtend31
-rw-r--r--rba.tool.editor/src/rba/tool/editor/scoping/internal/RBAModelMemberOperationRegistry.xtend68
-rw-r--r--rba.tool.editor/src/rba/tool/editor/scoping/internal/RBAModelMemberOperationScopes.xtend27
-rw-r--r--rba.tool.editor/src/rba/tool/editor/util/ExtensionModuleManager.java63
-rw-r--r--rba.tool.editor/src/rba/tool/editor/util/RBAModelEditorNameUtil.xtend11
-rw-r--r--rba.tool.editor/src/rba/tool/editor/util/RBAModelEditorToolUtil.xtend40
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/CircularContainmentValidationHelper.xtend294
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/ContentAllocatableListValidationHelper.xtend105
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/RBADiagnostician.java22
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/RBAModelCompositeEValidator.xtend39
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/RBAModelCompositeEValidatorProvider.xtend25
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/RBAModelValidator.xtend194
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/UniqueNameValidationHelper.xtend211
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/AbstractContentOperatorValidator.xtend7
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/AbstractContentValidator.xtend59
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/ActiveContentsValidator.xtend33
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/ActiveStateValidator.xtend32
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/AllocatableSetValidator.xtend59
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/AllocatedContentValidator.xtend36
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/AndOperatorValidator.xtend35
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/AreaSetValidator.xtend47
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/AreaValidator.xtend74
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/ComparisonAndOperatorValidator.xtend39
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/CompositeAreaValidator.xtend26
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/ConstraintValidator.xtend27
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/ContentSetValidator.xtend59
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/ContentStateValidator.xtend26
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/ContentValidator.xtend20
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/ContentValueValidator.xtend34
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/DisplayValidator.xtend91
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/DisplayingContentValidator.xtend34
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/EqualToOperatorValidatior.xtend42
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/ExistsOperatorValidator.xtend48
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/FixedPositionLayoutValidator.xtend25
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/ForAllOperatorValidator.xtend58
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/GetAllocatablesValidator.xtend34
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/GetContentsListValidator.xtend34
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/GetPropertyValidator.xtend60
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/GreaterThanOperatorValidator.xtend40
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/HasComeEarlierThanValidator.xtend51
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/HasComeLaterThanValidator.xtend51
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/HideLowerPriorityValidator.xtend39
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/HorizontalLayoutValidator.xtend25
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/IfStatementValidator.xtend44
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/ImpliesOperatorValidator.xtend35
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/IntegerPropertyValidator.xtend17
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/IsActiveValidator.xtend34
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/IsAllocatedToValidator.xtend48
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/IsAttenuatedValidator.xtend34
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/IsCanceledValidator.xtend37
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/IsChangedDisplayValidator.xtend32
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/IsChangedOutputValidator.xtend32
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/IsChangedValidator.xtend31
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/IsDisappearedValidator.xtend37
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/IsDisplayedOnValidator.xtend39
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/IsEqualToOperatorValidator.xtend36
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/IsGreaterThanEqualOperatorValidator.xtend36
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/IsGreaterThanOperatorValidator.xtend36
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/IsHiddenValidator.xtend34
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/IsLowerThanEqualOperatorValidator.xtend36
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/IsLowerThanOperatorValidator.xtend36
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/IsMutedValidator.xtend34
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/IsOnValidator.xtend32
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/IsOutputtedOnValidator.xtend39
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/IsOutputtedValidator.xtend34
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/IsSoundingValidator.xtend34
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/IsTranslatedSoundToValidator.xtend39
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/IsTranslatedToValidator.xtend48
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/IsTranslatedViewToValidator.xtend39
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/IsTypeOfValidator.xtend33
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/IsVisibleValidator.xtend34
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/LambdaExpressionValidator.xtend25
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/LetStatementValidator.xtend35
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/LowerThanOperatorValidator.xtend40
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/MaxOperatorValidator.xtend33
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/MinOperatorValidator.xtend33
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/MuchGreaterThanOperatorValidator.xtend40
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/MuteLowerPriorityValidator.xtend39
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/NamedElementValidator.xtend60
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/NotOperatorValidator.xtend34
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/ObjectCompareNotValidator.xtend15
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/ObjectCompareValidator.xtend71
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/OffSceneValidator.xtend33
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/OffsetValidator.xtend64
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/OnSceneValidator.xtend33
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/OrOperatorValidator.xtend35
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/OutputtingSoundValidator.xtend34
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/PackageValidator.xtend31
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/PlusOperatorValidator.xtend47
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/PositionContainerValidator.xtend74
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/ProjectValidator.xtend34
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/SceneValidator.xtend40
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/SelectOperatorValidator.xtend33
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/SetOfOperatorValidator.xtend106
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/SetPropertyValidator.xtend83
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/SizeOperatorValidator.xtend37
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/SizeValidator.xtend28
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/SoundContentSetValidator.xtend70
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/SoundContentValidator.xtend86
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/StateValueValidator.xtend28
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/ThatOfOperatorValidator.xtend69
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/ValidatorUtils.xtend109
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/VerticalLayoutValidator.xtend25
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/ViewContentSetValidator.xtend70
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/ViewContentValidator.xtend91
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/ZoneSetValidator.xtend47
-rw-r--r--rba.tool.editor/src/rba/tool/editor/validation/validators/ZoneValidator.xtend69
-rw-r--r--rba.tool.editor/xtend-gen/rba/tool/editor/.gitignore10
-rw-r--r--rba.tool.editor/xtend-gen/rba/tool/editor/formatting2/.gitignore5
-rw-r--r--rba.tool.editor/xtend-gen/rba/tool/editor/generator/.gitignore11
-rw-r--r--rba.tool.editor/xtend-gen/rba/tool/editor/generator/java/.gitignore7
-rw-r--r--rba.tool.editor/xtend-gen/rba/tool/editor/generator/json/.gitignore7
-rw-r--r--rba.tool.editor/xtend-gen/rba/tool/editor/generator/rtmodel/.gitignore6
-rw-r--r--rba.tool.editor/xtend-gen/rba/tool/editor/generator/rule/.gitignore6
-rw-r--r--rba.tool.editor/xtend-gen/rba/tool/editor/generator/z3/.gitignore13
-rw-r--r--rba.tool.editor/xtend-gen/rba/tool/editor/linking/.gitignore4
-rw-r--r--rba.tool.editor/xtend-gen/rba/tool/editor/model/manager/.gitignore3
-rw-r--r--rba.tool.editor/xtend-gen/rba/tool/editor/naming/.gitignore4
-rw-r--r--rba.tool.editor/xtend-gen/rba/tool/editor/resource/.gitignore6
-rw-r--r--rba.tool.editor/xtend-gen/rba/tool/editor/scoping/.gitignore16
-rw-r--r--rba.tool.editor/xtend-gen/rba/tool/editor/scoping/internal/.gitignore8
-rw-r--r--rba.tool.editor/xtend-gen/rba/tool/editor/util/.gitignore4
-rw-r--r--rba.tool.editor/xtend-gen/rba/tool/editor/validation/.gitignore20
-rw-r--r--rba.tool.editor/xtend-gen/rba/tool/editor/validation/validators/.gitignore3
-rw-r--r--rba.tool.lib.groovy/.classpath7
-rw-r--r--rba.tool.lib.groovy/.project28
-rw-r--r--rba.tool.lib.groovy/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--rba.tool.lib.groovy/META-INF/MANIFEST.MF126
-rw-r--r--rba.tool.lib.groovy/build.properties4
-rw-r--r--rba.tool.lib.groovy/lib/groovy-all-2.4.12-indy.jarbin0 -> 6834923 bytes
-rw-r--r--rba.tool.lib.groovy/plugin.properties2
-rw-r--r--rba.tool.lib.json/.classpath7
-rw-r--r--rba.tool.lib.json/.project28
-rw-r--r--rba.tool.lib.json/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--rba.tool.lib.json/META-INF/MANIFEST.MF11
-rw-r--r--rba.tool.lib.json/build.properties4
-rw-r--r--rba.tool.lib.json/lib/java-json.jarbin0 -> 84697 bytes
-rw-r--r--rba.tool.lib.json/plugin.properties2
1139 files changed, 399393 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..61b9a68
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,23 @@
+target/classes/
+classes/
+Thumbs.db
+.DS_Store
+*.class
+*.xtendbin
+/demo
+/research
+/samples
+bin/
+!/rba.tool.editor.endpoint/lib/linux/z3/bin/
+target/
+plugins/
+features/
+artifacts.jar
+content.jar
+.svn
+output/
+
+RBAArbitratorForCplus/arbitrator/*/*test/
+RBAArbitratorForCplus/arbitrator/rba/build*/
+RBAArbitratorForCplus/arbitrator/rba/simulator/
+RBAArbitratorForCplus/arbitrator/rba_model/
diff --git a/.gitreview b/.gitreview
new file mode 100644
index 0000000..38ce836
--- /dev/null
+++ b/.gitreview
@@ -0,0 +1,6 @@
+[gerrit]
+host=gerrit.automotivelinux.org
+port=29418
+project=staging/rba-tool
+defaultbranch=master
+
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..af05d90
--- /dev/null
+++ b/README.md
@@ -0,0 +1,104 @@
+### 1. Requirement
+Supported version is as followings.
+- Eclipse: Oxygen.3a Release (4.7.3a)
+- Xtend: 2.13.0.v20171020-0920
+- Xtext: 2.13.0.v20171020-0920
+- java: openjdk-8-jre-headless
+
+### 2. How to prepare Eclipse
+#### 2-1. Download Eclipse Modeling Tools x86_64
+ https://www.eclipse.org/downloads/packages/release/oxygen/3a/eclipse-modeling-tools
+
+#### 2-2. Prepare the source code
+ git clone https://git.automotivelinux.org/staging/rba-tool
+
+#### 2-3. Boot Eclipse
+- Extract the zip, then boot eclipse.
+
+
+### 3. How to prepare Eclipse plugin
+
+#### 3-1. Download tmf-xtext-2.13
+- Download Xtext 2.13.0 (2017/10/20) from the following site.
+ https://www.eclipse.org/modeling/tmf/downloads/index.php?showAll=1&hlbuild=R201710200920&project=xtext#R201710200920
+- Extract the downloaded zip.
+
+#### 3-2. Install tmf-xtext-2.13
+- Eclipse -> Help -> install new software -> Add -> Local
+- Select the folder extracted from the zip on the step 2-1.
+- Set 'Local' to 'Name:' of 'Add Repository' dialog. Any name is OK. Then, push 'OK'.
+- After that, follow the sequence of the wizard, as for settings designated as bellow.
+ - For 'Install Remediation Page' dialog, select the following.
+ - 'Update my installation to be compatible with the items being installed.'
+ - For, the license term agreement, select the following.
+ - 'I accept the terms of the license agreement'.
+
+#### 3-3. Check the installed plugins
+- Eclipse -> Help -> About Eclipse -> Installation Details
+- Check that followings are present.
+ - Xtend IDE 2.13.0.v20171020-0920 org.eclipse.xtend.sdk.feature.group Eclipse Xtend
+ - Xtext Complete SDK 2.13.0.v20171020-0920 org.eclipse.xtext.sdk.feature.group Eclipse Xtext
+
+### 4. How to build
+#### 4-1. Prepare to import
+- File -> Import -> General -> 'Existing Projects into Workspace' -> Next
+
+#### 4-2. Designate the import target directory
+- Set the rba-tool on the step 1-2. for 'Select root directory'.
+- Check 'Copy projects into workspace', then push 'Finish'.
+
+#### 4-3. Right click the following, and select 'Debug As -> MWE2Workflow'
+- rba.tool.editor -> src -> rba.tool.editor -> GenerateRBAModel.mwe2
+
+#### 4-4. Clean the entire workspace
+- Eclipse -> Project -> Clean
+
+#### 4-5. Auto-Build begins
+- Wait until the processing messages disappears in the right bottom corner of Eclipse.
+
+### 5. How to export JSONGenerator.jar
+#### 5-1. Prepare the entry point
+- Right click rba.tool.editor.endpoint -> xtend-gen -> rba.tool.editor.endpoint -> ServerLauncher.java.
+- Click 'Run As' -> '1 Java Application'.
+
+#### 5-2. Begin the export settings
+- Right click 'rba.tool.editor.endpoint'.
+- Export -> Java -> 'Runnable JAR file' -> Next
+
+#### 5-3. Fill out the export dialog
+- Set 'ServerLauncher - rba.tool.editor.endpoint' for 'Launch confinguration'.
+- Set 'any_folder\JSONGenerator.jar' for 'Export destination'.
+- Set 'Copy required libraries into a sub-folder next to the generated JAR' for 'Library handling'.
+
+#### 5-4. Push the 'finish' button
+- After 'finish' pushed, there is warning message as following, but ignore it.
+- 'JAR export finished with warnings. See details for additional information.'
+
+#### 5-5. Outputted file
+- 'JSONGenerator_lib' and 'JSONGenerator.jar' is outputted to the folder designated on the step 5-3.
+
+### 6. Preparing the environment for execution
+#### 6-1. lib
+- Copy rba.tool.editor.endpoint->lib to the folder in which 'JSONGenerator_lib' and 'JSONGenerator.jar' is contained.
+
+#### 6-2. script
+- Copy rba.tool.editor.endpoint->script to the folder in which 'JSONGenerator_lib' and 'JSONGenerator.jar' is contained.
+
+#### 6-3. template
+- Copy rba.tool.editor.endpoint->template to the folder in which 'JSONGenerator_lib' and 'JSONGenerator.jar' is contained.
+
+### 7. Usage
+- If some errors occur, RBAModel.json is not generated (exit code 1).
+````
+java -cp ./ -jar JSONGenerator.jar "[path to model directory]" "[path to output directory]"
+````
+
+### 8. Example
+- RBAModel.json file is generated in directory same as JSONGenerator.jar
+````
+java -cp ./ -jar JSONGenerator.jar "./model"
+````
+- RBAModel.json file is generated in ~/ directory
+````
+java -cp ./ -jar JSONGenerator.jar "./model" "~/"
+````
diff --git a/rba.model.core.edit/.classpath b/rba.model.core.edit/.classpath
new file mode 100644
index 0000000..22f3064
--- /dev/null
+++ b/rba.model.core.edit/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/rba.model.core.edit/.project b/rba.model.core.edit/.project
new file mode 100644
index 0000000..f5acd5a
--- /dev/null
+++ b/rba.model.core.edit/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>rba.model.core.edit</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>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/rba.model.core.edit/META-INF/MANIFEST.MF b/rba.model.core.edit/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..8a0c246
--- /dev/null
+++ b/rba.model.core.edit/META-INF/MANIFEST.MF
@@ -0,0 +1,15 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: rba.model.core.edit;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-ClassPath: .
+Bundle-Activator: rba.core.provider.RbaCoreEditPlugin$Implementation
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: rba.core.provider
+Require-Bundle: org.eclipse.core.runtime,
+ rba.model.core;visibility:=reexport,
+ org.eclipse.emf.edit;visibility:=reexport
+Bundle-ActivationPolicy: lazy
diff --git a/rba.model.core.edit/build.properties b/rba.model.core.edit/build.properties
new file mode 100644
index 0000000..6e3e902
--- /dev/null
+++ b/rba.model.core.edit/build.properties
@@ -0,0 +1,10 @@
+#
+
+bin.includes = .,\
+ icons/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties
+jars.compile.order = .
+source.. = src/
+output.. = bin/
diff --git a/rba.model.core.edit/icons/full/obj16/ActivateContent.gif b/rba.model.core.edit/icons/full/obj16/ActivateContent.gif
new file mode 100644
index 0000000..a3908bc
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/ActivateContent.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/ActivateContentStateOperator.gif b/rba.model.core.edit/icons/full/obj16/ActivateContentStateOperator.gif
new file mode 100644
index 0000000..53500da
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/ActivateContentStateOperator.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/ActiveContents.gif b/rba.model.core.edit/icons/full/obj16/ActiveContents.gif
new file mode 100644
index 0000000..89ad5da
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/ActiveContents.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/ActiveState.gif b/rba.model.core.edit/icons/full/obj16/ActiveState.gif
new file mode 100644
index 0000000..c00aedf
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/ActiveState.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/AllocatedContent.gif b/rba.model.core.edit/icons/full/obj16/AllocatedContent.gif
new file mode 100644
index 0000000..89ad5da
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/AllocatedContent.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/AndOperator.gif b/rba.model.core.edit/icons/full/obj16/AndOperator.gif
new file mode 100644
index 0000000..338fb8d
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/AndOperator.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/ArbitrationPolicyExpression.gif b/rba.model.core.edit/icons/full/obj16/ArbitrationPolicyExpression.gif
new file mode 100644
index 0000000..a3908bc
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/ArbitrationPolicyExpression.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/ComparisonAnd.gif b/rba.model.core.edit/icons/full/obj16/ComparisonAnd.gif
new file mode 100644
index 0000000..c414fe9
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/ComparisonAnd.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/ComplexExpression.gif b/rba.model.core.edit/icons/full/obj16/ComplexExpression.gif
new file mode 100644
index 0000000..cdd3b76
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/ComplexExpression.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/Constraint.gif b/rba.model.core.edit/icons/full/obj16/Constraint.gif
new file mode 100644
index 0000000..db7414e
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/Constraint.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/ContentValue.gif b/rba.model.core.edit/icons/full/obj16/ContentValue.gif
new file mode 100644
index 0000000..f8041d2
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/ContentValue.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/DeactivateContent.gif b/rba.model.core.edit/icons/full/obj16/DeactivateContent.gif
new file mode 100644
index 0000000..b1f8afa
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/DeactivateContent.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/DeactivateContentStateOperator.gif b/rba.model.core.edit/icons/full/obj16/DeactivateContentStateOperator.gif
new file mode 100644
index 0000000..498364f
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/DeactivateContentStateOperator.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/Defeats.gif b/rba.model.core.edit/icons/full/obj16/Defeats.gif
new file mode 100644
index 0000000..e4b530e
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/Defeats.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/Displayed.gif b/rba.model.core.edit/icons/full/obj16/Displayed.gif
new file mode 100644
index 0000000..badaab0
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/Displayed.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/EqualToOperator.gif b/rba.model.core.edit/icons/full/obj16/EqualToOperator.gif
new file mode 100644
index 0000000..89ad5da
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/EqualToOperator.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/Event.gif b/rba.model.core.edit/icons/full/obj16/Event.gif
new file mode 100644
index 0000000..e4b530e
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/Event.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/EventProcessing.gif b/rba.model.core.edit/icons/full/obj16/EventProcessing.gif
new file mode 100644
index 0000000..7b7c428
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/EventProcessing.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/ExclusiveOrOperator.gif b/rba.model.core.edit/icons/full/obj16/ExclusiveOrOperator.gif
new file mode 100644
index 0000000..7c2aaac
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/ExclusiveOrOperator.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/ExistsOperator.gif b/rba.model.core.edit/icons/full/obj16/ExistsOperator.gif
new file mode 100644
index 0000000..90d10f9
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/ExistsOperator.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/FindStateMachine.gif b/rba.model.core.edit/icons/full/obj16/FindStateMachine.gif
new file mode 100644
index 0000000..c4a8af4
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/FindStateMachine.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/ForAllOperator.gif b/rba.model.core.edit/icons/full/obj16/ForAllOperator.gif
new file mode 100644
index 0000000..53500da
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/ForAllOperator.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/GetAllocatables.gif b/rba.model.core.edit/icons/full/obj16/GetAllocatables.gif
new file mode 100644
index 0000000..c8d381f
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/GetAllocatables.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/GetContentsList.gif b/rba.model.core.edit/icons/full/obj16/GetContentsList.gif
new file mode 100644
index 0000000..badaab0
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/GetContentsList.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/GetProperty.gif b/rba.model.core.edit/icons/full/obj16/GetProperty.gif
new file mode 100644
index 0000000..ea58a65
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/GetProperty.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/GetState.gif b/rba.model.core.edit/icons/full/obj16/GetState.gif
new file mode 100644
index 0000000..53500da
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/GetState.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/GreaterThanOperator.gif b/rba.model.core.edit/icons/full/obj16/GreaterThanOperator.gif
new file mode 100644
index 0000000..136e3b2
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/GreaterThanOperator.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/Handler.gif b/rba.model.core.edit/icons/full/obj16/Handler.gif
new file mode 100644
index 0000000..134551b
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/Handler.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/HasBeenDisplayed.gif b/rba.model.core.edit/icons/full/obj16/HasBeenDisplayed.gif
new file mode 100644
index 0000000..35ef84e
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/HasBeenDisplayed.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/HasComeEarlierThan.gif b/rba.model.core.edit/icons/full/obj16/HasComeEarlierThan.gif
new file mode 100644
index 0000000..35ef84e
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/HasComeEarlierThan.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/HasComeLaterThan.gif b/rba.model.core.edit/icons/full/obj16/HasComeLaterThan.gif
new file mode 100644
index 0000000..14af8aa
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/HasComeLaterThan.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/IfActionOperator.gif b/rba.model.core.edit/icons/full/obj16/IfActionOperator.gif
new file mode 100644
index 0000000..7bac4fd
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/IfActionOperator.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/IfStatement.gif b/rba.model.core.edit/icons/full/obj16/IfStatement.gif
new file mode 100644
index 0000000..35ef84e
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/IfStatement.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/ImpliesOperator.gif b/rba.model.core.edit/icons/full/obj16/ImpliesOperator.gif
new file mode 100644
index 0000000..7b7c428
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/ImpliesOperator.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/IntegerProperty.gif b/rba.model.core.edit/icons/full/obj16/IntegerProperty.gif
new file mode 100644
index 0000000..db7414e
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/IntegerProperty.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/IntegerValue.gif b/rba.model.core.edit/icons/full/obj16/IntegerValue.gif
new file mode 100644
index 0000000..7b7c428
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/IntegerValue.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/IsActive.gif b/rba.model.core.edit/icons/full/obj16/IsActive.gif
new file mode 100644
index 0000000..cb1755a
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/IsActive.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/IsAllocatedTo.gif b/rba.model.core.edit/icons/full/obj16/IsAllocatedTo.gif
new file mode 100644
index 0000000..ef56c14
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/IsAllocatedTo.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/IsCanceled.gif b/rba.model.core.edit/icons/full/obj16/IsCanceled.gif
new file mode 100644
index 0000000..ed87474
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/IsCanceled.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/IsChanged.gif b/rba.model.core.edit/icons/full/obj16/IsChanged.gif
new file mode 100644
index 0000000..c00aedf
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/IsChanged.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/IsDefeatedBy.gif b/rba.model.core.edit/icons/full/obj16/IsDefeatedBy.gif
new file mode 100644
index 0000000..10d2229
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/IsDefeatedBy.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/IsDisappeared.gif b/rba.model.core.edit/icons/full/obj16/IsDisappeared.gif
new file mode 100644
index 0000000..35ef84e
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/IsDisappeared.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/IsEqualToOperator.gif b/rba.model.core.edit/icons/full/obj16/IsEqualToOperator.gif
new file mode 100644
index 0000000..2124f3e
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/IsEqualToOperator.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/IsGreaterThanEqualOperator.gif b/rba.model.core.edit/icons/full/obj16/IsGreaterThanEqualOperator.gif
new file mode 100644
index 0000000..45731fe
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/IsGreaterThanEqualOperator.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/IsGreaterThanOperator.gif b/rba.model.core.edit/icons/full/obj16/IsGreaterThanOperator.gif
new file mode 100644
index 0000000..d3dc5a9
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/IsGreaterThanOperator.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/IsLowerThanEqualOperator.gif b/rba.model.core.edit/icons/full/obj16/IsLowerThanEqualOperator.gif
new file mode 100644
index 0000000..a26660e
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/IsLowerThanEqualOperator.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/IsLowerThanOperator.gif b/rba.model.core.edit/icons/full/obj16/IsLowerThanOperator.gif
new file mode 100644
index 0000000..30f0c48
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/IsLowerThanOperator.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/IsOn.gif b/rba.model.core.edit/icons/full/obj16/IsOn.gif
new file mode 100644
index 0000000..d3dc5a9
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/IsOn.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/IsRunningOperator.gif b/rba.model.core.edit/icons/full/obj16/IsRunningOperator.gif
new file mode 100644
index 0000000..d3dc5a9
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/IsRunningOperator.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/IsStateOf.gif b/rba.model.core.edit/icons/full/obj16/IsStateOf.gif
new file mode 100644
index 0000000..10d2229
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/IsStateOf.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/IsTranslatedTo.gif b/rba.model.core.edit/icons/full/obj16/IsTranslatedTo.gif
new file mode 100644
index 0000000..83afb9b
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/IsTranslatedTo.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/IsTypeOf.gif b/rba.model.core.edit/icons/full/obj16/IsTypeOf.gif
new file mode 100644
index 0000000..48e3cf2
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/IsTypeOf.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/LambdaExpression.gif b/rba.model.core.edit/icons/full/obj16/LambdaExpression.gif
new file mode 100644
index 0000000..7c2aaac
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/LambdaExpression.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/LetStatement.gif b/rba.model.core.edit/icons/full/obj16/LetStatement.gif
new file mode 100644
index 0000000..b3643da
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/LetStatement.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/LoserTypeExpression.gif b/rba.model.core.edit/icons/full/obj16/LoserTypeExpression.gif
new file mode 100644
index 0000000..53500da
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/LoserTypeExpression.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/LowerThanOperator.gif b/rba.model.core.edit/icons/full/obj16/LowerThanOperator.gif
new file mode 100644
index 0000000..53500da
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/LowerThanOperator.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/MaxOperator.gif b/rba.model.core.edit/icons/full/obj16/MaxOperator.gif
new file mode 100644
index 0000000..4365960
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/MaxOperator.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/MaxValue.gif b/rba.model.core.edit/icons/full/obj16/MaxValue.gif
new file mode 100644
index 0000000..30f0c48
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/MaxValue.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/MinOperator.gif b/rba.model.core.edit/icons/full/obj16/MinOperator.gif
new file mode 100644
index 0000000..9041598
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/MinOperator.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/MinValue.gif b/rba.model.core.edit/icons/full/obj16/MinValue.gif
new file mode 100644
index 0000000..53500da
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/MinValue.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/MuchGreaterThanOperator.gif b/rba.model.core.edit/icons/full/obj16/MuchGreaterThanOperator.gif
new file mode 100644
index 0000000..2124f3e
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/MuchGreaterThanOperator.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/NoneValue.gif b/rba.model.core.edit/icons/full/obj16/NoneValue.gif
new file mode 100644
index 0000000..498364f
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/NoneValue.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/NotOperator.gif b/rba.model.core.edit/icons/full/obj16/NotOperator.gif
new file mode 100644
index 0000000..b3643da
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/NotOperator.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/NullExpression.gif b/rba.model.core.edit/icons/full/obj16/NullExpression.gif
new file mode 100644
index 0000000..30f0c48
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/NullExpression.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/ObjectCompare.gif b/rba.model.core.edit/icons/full/obj16/ObjectCompare.gif
new file mode 100644
index 0000000..35ef84e
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/ObjectCompare.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/ObjectCompareNot.gif b/rba.model.core.edit/icons/full/obj16/ObjectCompareNot.gif
new file mode 100644
index 0000000..d3dc5a9
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/ObjectCompareNot.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/ObjectReference.gif b/rba.model.core.edit/icons/full/obj16/ObjectReference.gif
new file mode 100644
index 0000000..4365960
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/ObjectReference.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/OffScene.gif b/rba.model.core.edit/icons/full/obj16/OffScene.gif
new file mode 100644
index 0000000..c00aedf
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/OffScene.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/OnScene.gif b/rba.model.core.edit/icons/full/obj16/OnScene.gif
new file mode 100644
index 0000000..33a997a
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/OnScene.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/OpaqueAction.gif b/rba.model.core.edit/icons/full/obj16/OpaqueAction.gif
new file mode 100644
index 0000000..cb1755a
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/OpaqueAction.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/OrOperator.gif b/rba.model.core.edit/icons/full/obj16/OrOperator.gif
new file mode 100644
index 0000000..b1f8afa
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/OrOperator.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/Package.gif b/rba.model.core.edit/icons/full/obj16/Package.gif
new file mode 100644
index 0000000..c00aedf
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/Package.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/PlusOperator.gif b/rba.model.core.edit/icons/full/obj16/PlusOperator.gif
new file mode 100644
index 0000000..89ad5da
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/PlusOperator.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/PostConstraint.gif b/rba.model.core.edit/icons/full/obj16/PostConstraint.gif
new file mode 100644
index 0000000..30f0c48
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/PostConstraint.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/PreviousModifier.gif b/rba.model.core.edit/icons/full/obj16/PreviousModifier.gif
new file mode 100644
index 0000000..d3dc5a9
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/PreviousModifier.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/Project.gif b/rba.model.core.edit/icons/full/obj16/Project.gif
new file mode 100644
index 0000000..7bac4fd
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/Project.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/Rule.gif b/rba.model.core.edit/icons/full/obj16/Rule.gif
new file mode 100644
index 0000000..cdd3b76
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/Rule.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/Scene.gif b/rba.model.core.edit/icons/full/obj16/Scene.gif
new file mode 100644
index 0000000..badaab0
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/Scene.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/SelectOperator.gif b/rba.model.core.edit/icons/full/obj16/SelectOperator.gif
new file mode 100644
index 0000000..2124f3e
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/SelectOperator.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/SetOfOperator.gif b/rba.model.core.edit/icons/full/obj16/SetOfOperator.gif
new file mode 100644
index 0000000..c8d381f
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/SetOfOperator.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/SetProperty.gif b/rba.model.core.edit/icons/full/obj16/SetProperty.gif
new file mode 100644
index 0000000..94c953e
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/SetProperty.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/SetState.gif b/rba.model.core.edit/icons/full/obj16/SetState.gif
new file mode 100644
index 0000000..d92f34c
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/SetState.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/SizeOperator.gif b/rba.model.core.edit/icons/full/obj16/SizeOperator.gif
new file mode 100644
index 0000000..33854e9
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/SizeOperator.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/StandardValue.gif b/rba.model.core.edit/icons/full/obj16/StandardValue.gif
new file mode 100644
index 0000000..c414fe9
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/StandardValue.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/State.gif b/rba.model.core.edit/icons/full/obj16/State.gif
new file mode 100644
index 0000000..cb1755a
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/State.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/StateMachine.gif b/rba.model.core.edit/icons/full/obj16/StateMachine.gif
new file mode 100644
index 0000000..badaab0
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/StateMachine.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/StateValue.gif b/rba.model.core.edit/icons/full/obj16/StateValue.gif
new file mode 100644
index 0000000..a3908bc
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/StateValue.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/Stereotype.gif b/rba.model.core.edit/icons/full/obj16/Stereotype.gif
new file mode 100644
index 0000000..94c953e
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/Stereotype.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/Tag.gif b/rba.model.core.edit/icons/full/obj16/Tag.gif
new file mode 100644
index 0000000..d3dc5a9
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/Tag.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/ThatOfOperator.gif b/rba.model.core.edit/icons/full/obj16/ThatOfOperator.gif
new file mode 100644
index 0000000..f8041d2
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/ThatOfOperator.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/Transition.gif b/rba.model.core.edit/icons/full/obj16/Transition.gif
new file mode 100644
index 0000000..7bac4fd
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/Transition.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/Undisplayed.gif b/rba.model.core.edit/icons/full/obj16/Undisplayed.gif
new file mode 100644
index 0000000..db7414e
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/Undisplayed.gif
Binary files differ
diff --git a/rba.model.core.edit/icons/full/obj16/Variable.gif b/rba.model.core.edit/icons/full/obj16/Variable.gif
new file mode 100644
index 0000000..83afb9b
--- /dev/null
+++ b/rba.model.core.edit/icons/full/obj16/Variable.gif
Binary files differ
diff --git a/rba.model.core.edit/plugin.properties b/rba.model.core.edit/plugin.properties
new file mode 100644
index 0000000..d2590ab
--- /dev/null
+++ b/rba.model.core.edit/plugin.properties
@@ -0,0 +1,227 @@
+#
+
+pluginName = RBA Tool RBACore Edit Support
+providerName =DENSO CORPORATION
+
+
+_UI_CreateChild_text = {0}
+_UI_CreateChild_text2 = {1} {0}
+_UI_CreateChild_text3 = {1}
+_UI_CreateChild_tooltip = Create New {0} Under {1} Feature
+_UI_CreateChild_description = Create a new child of type {0} for the {1} feature of the selected {2}.
+_UI_CreateSibling_description = Create a new sibling of type {0} for the selected {2}, under the {1} feature of their parent.
+
+_UI_PropertyDescriptor_description = The {0} of the {1}
+
+_UI_ModelElement_type = Model Element
+_UI_NamedElement_type = Named Element
+_UI_Allocatable_type = Allocatable
+_UI_Project_type = Project
+_UI_PackagableElement_type = Packagable Element
+_UI_Package_type = Package
+_UI_RuleObject_type = Rule Object
+_UI_AbstractContent_type = Abstract Content
+_UI_AbstractScene_type = Abstract Scene
+_UI_Scene_type = Scene
+_UI_Content_type = Content
+_UI_ContentSet_type = Content Set
+_UI_ContentState_type = Content State
+_UI_AbstractProperty_type = Abstract Property
+_UI_IntegerProperty_type = Integer Property
+_UI_AbstractConstraint_type = Abstract Constraint
+_UI_Constraint_type = Constraint
+_UI_Expression_type = Expression
+_UI_Operator_type = Operator
+_UI_ObjectReference_type = Object Reference
+_UI_PreviousModifier_type = Previous Modifier
+_UI_GreaterThanOperator_type = Greater Than Operator
+_UI_MuchGreaterThanOperator_type = Much Greater Than Operator
+_UI_LowerThanOperator_type = Lower Than Operator
+_UI_ComparisonOperator_type = Comparison Operator
+_UI_EqualToOperator_type = Equal To Operator
+_UI_ComparisonAnd_type = Comparison And
+_UI_LogicalOperator_type = Logical Operator
+_UI_AndOperator_type = And Operator
+_UI_OrOperator_type = Or Operator
+_UI_NotOperator_type = Not Operator
+_UI_ExclusiveOrOperator_type = Exclusive Or Operator
+_UI_IsEqualToOperator_type = Is Equal To Operator
+_UI_IsGreaterThanOperator_type = Is Greater Than Operator
+_UI_IsLowerThanOperator_type = Is Lower Than Operator
+_UI_IsGreaterThanEqualOperator_type = Is Greater Than Equal Operator
+_UI_IsLowerThanEqualOperator_type = Is Lower Than Equal Operator
+_UI_ArithmeticOperator_type = Arithmetic Operator
+_UI_PlusOperator_type = Plus Operator
+_UI_ImpliesOperator_type = Implies Operator
+_UI_ContentOperator_type = Content Operator
+_UI_IsActive_type = Is Active
+_UI_GetAllocatables_type = Get Allocatables
+_UI_IsDefeatedBy_type = Is Defeated By
+_UI_Defeats_type = Defeats
+_UI_IsDisappeared_type = Is Disappeared
+_UI_IsCanceled_type = Is Canceled
+_UI_ObjectCompare_type = Object Compare
+_UI_ThatOfOperator_type = That Of Operator
+_UI_ValueExpression_type = Value Expression
+_UI_MaxValue_type = Max Value
+_UI_MinValue_type = Min Value
+_UI_NoneValue_type = None Value
+_UI_StandardValue_type = Standard Value
+_UI_IntegerValue_type = Integer Value
+_UI_SetExpression_type = Set Expression
+_UI_SetOperator_type = Set Operator
+_UI_ExistsOperator_type = Exists Operator
+_UI_ForAllOperator_type = For All Operator
+_UI_SetOfOperator_type = Set Of Operator
+_UI_LambdaExpression_type = Lambda Expression
+_UI_Variable_type = Variable
+_UI_LambdaContext_type = Lambda Context
+_UI_IfStatement_type = If Statement
+_UI_SceneOperator_type = Scene Operator
+_UI_IsOn_type = Is On
+_UI_AllocatableOperator_type = Allocatable Operator
+_UI_ContentValue_type = Content Value
+_UI_GetContentsList_type = Get Contents List
+_UI_PropertyOperator_type = Property Operator
+_UI_SetSceneProperty_type = Set Scene Property
+_UI_GetSceneProperty_type = Get Scene Property
+_UI_OffScene_type = Off Scene
+_UI_OnScene_type = On Scene
+_UI_ActivateContent_type = Activate Content
+_UI_OpaqueAction_type = Opaque Action
+_UI_DeactivateContent_type = Deactivate Content
+_UI_Unknown_type = Object
+
+_UI_Unknown_datatype= Value
+
+_UI_ModelElement_description_feature = Description
+_UI_NamedElement_name_feature = Name
+_UI_Allocatable_contents_feature = Contents
+_UI_Package_packagableelement_feature = Packagableelement
+_UI_Scene_global_feature = Global
+_UI_Scene_properties_feature = Properties
+_UI_Content_loserType_feature = Loser Type
+_UI_Content_states_feature = States
+_UI_Content_allocatable_feature = Allocatable
+_UI_ContentSet_target_feature = Target
+_UI_ContentState_value_feature = Value
+_UI_ContentState_owner_feature = Owner
+_UI_ContentState_infoAmount_feature = Info Amount
+_UI_AbstractProperty_owner_feature = Owner
+_UI_IntegerProperty_value_feature = Value
+_UI_AbstractConstraint_expression_feature = Expression
+_UI_Constraint_runtime_feature = Runtime
+_UI_Expression_type_feature = Type
+_UI_Expression_expression_feature = Expression
+_UI_Operator_operand_feature = Operand
+_UI_ObjectReference_refObject_feature = Ref Object
+_UI_PreviousModifier_objReference_feature = Obj Reference
+_UI_IntegerValue_value_feature = Value
+_UI_LambdaExpression_context_feature = Context
+_UI_LambdaExpression_x_feature = X
+_UI_LambdaExpression_bodyText_feature = Body Text
+_UI_Variable_type_feature = Type
+_UI_LambdaContext_lambda_feature = Lambda
+_UI_IfStatement_condition_feature = Condition
+_UI_IfStatement_thenExpression_feature = Then Expression
+_UI_IfStatement_elseExpression_feature = Else Expression
+_UI_State_contentState_feature = Content State
+_UI_ActivateContent_target_feature = Target
+_UI_DeactivateContent_target_feature = Target
+_UI_Unknown_feature = Unspecified
+
+_UI_ArbitrationPolicy_DEFAULT_literal = DEFAULT
+_UI_ArbitrationPolicy_LAST_COME_FIRST_literal = LAST_COME_FIRST
+_UI_ArbitrationPolicy_FIRST_COME_FIRST_literal = FIRST_COME_FIRST
+_UI_InfoAmount_IN_A_BLINK_literal = IN_A_BLINK
+_UI_InfoAmount_A_NUMBER_literal = A_NUMBER
+_UI_InfoAmount_SIMPLE_PICTURE_literal = SIMPLE_PICTURE
+_UI_InfoAmount_SHORT_SENTENCE_literal = SHORT_SENTENCE
+_UI_InfoAmount_COMPLEX_PICTURE_literal = COMPLEX_PICTURE
+_UI_InfoAmount_LONG_SENTENCE_literal = LONG_SENTENCE
+_UI_ExpressionType_VALUE_literal = VALUE
+_UI_ExpressionType_BOOLEAN_literal = BOOLEAN
+_UI_ExpressionType_AREA_literal = AREA
+_UI_ExpressionType_CONTENT_literal = CONTENT
+_UI_ExpressionType_SET_OF_AREA_literal = SET_OF_AREA
+_UI_ExpressionType_SET_OF_CONTENT_literal = SET_OF_CONTENT
+_UI_ExpressionType_LAMBDA_literal = LAMBDA
+_UI_ExpressionType_SCENE_literal = SCENE
+_UI_ExpressionType_ZONE_literal = ZONE
+_UI_ExpressionType_SET_OF_ZONE_literal = SET_OF_ZONE
+_UI_ExpressionType_SOUND_literal = SOUND
+_UI_ExpressionType_SET_OF_SOUND_literal = SET_OF_SOUND
+_UI_ExpressionType_PROPERTY_literal = PROPERTY
+_UI_LoserType_NEVER_GIVEUP_literal = NEVER_GIVEUP
+_UI_LoserType_GOOD_LOSER_literal = GOOD_LOSER
+_UI_LoserType_DO_NOT_GIVEUP_UNTIL_WIN_literal = DO_NOT_GIVEUP_UNTIL_WIN
+_UI_State_children_feature = Children
+_UI_SetProperty_type = Set Property
+_UI_GetProperty_type = Get Property
+_UI_AbstractAllocatable_type = Abstract Allocatable
+_UI_AllocatableSet_type = Allocatable Set
+_UI_AllocatedContent_type = Allocated Content
+_UI_AbstractAllocatable_contents_feature = Contents
+_UI_AbstractAllocatable_group_feature = Group
+_UI_AllocatableSet_target_feature = Target
+_UI_Allocatable_arbitrationPolicy_feature = Arbitration Policy
+_UI_Allocatable_visibility_feature = Visibility
+_UI_Allocatable_visibilityValue_feature = Visibility Value
+_UI_ArbitrationPolicy_PRIORITY_FIRST_COME_FIRST_literal = PRIORITY_FIRST_COME_FIRST
+_UI_ArbitrationPolicy_PRIORITY_LAST_COME_FIRST_literal = PRIORITY_LAST_COME_FIRST
+_UI_AbstractContent_group_feature = Group
+_UI_AbstractContent_allocatable_feature = Allocatable
+_UI_Stereotype_type = Stereotype
+_UI_Tag_type = Tag
+_UI_ClosureExpression_type = Closure Expression
+_UI_VariableDeclaration_type = Variable Declaration
+_UI_IsTypeOf_type = Is Type Of
+_UI_HasBeenDisplayed_type = Has Been Displayed
+_UI_HasBeenCanceled_type = Has Been Canceled
+_UI_ActiveState_type = Active State
+_UI_EnumExpression_type = Enum Expression
+_UI_LoserTypeExpression_type = Loser Type Expression
+_UI_ArbitrationPolicyExpression_type = Arbitration Policy Expression
+_UI_SizeOperator_type = Size Operator
+_UI_MaxOperator_type = Max Operator
+_UI_MinOperator_type = Min Operator
+_UI_SelectOperator_type = Select Operator
+_UI_ActiveContents_type = Active Contents
+_UI_StateValue_type = State Value
+_UI_HasComeLaterThan_type = Has Come Later Than
+_UI_HasComeEarlierThan_type = Has Come Earlier Than
+_UI_SugarExpression_type = Sugar Expression
+_UI_SugarExpressionBase_type = Sugar Expression Base
+_UI_ObjectCompareNot_type = Object Compare Not
+_UI_IsAllocatedTo_type = Is Allocated To
+_UI_IsChanged_type = Is Changed
+_UI_IsTranslatedTo_type = Is Translated To
+_UI_GetState_type = Get State
+_UI_SetState_type = Set State
+_UI_AbstractAllocatable_allocatableGroup_feature = Allocatable Group
+_UI_Stereotype_targetModelName_feature = Target Model Name
+_UI_Stereotype_bodyText_feature = Body Text
+_UI_Stereotype_variables_feature = Variables
+_UI_Tag_stereotype_feature = Stereotype
+_UI_Tag_values_feature = Values
+_UI_RuleObject_tags_feature = Tags
+_UI_AbstractContent_contentGroup_feature = Content Group
+_UI_ClosureExpression_expressions_feature = Expressions
+_UI_VariableDeclaration_value_feature = Value
+_UI_LoserTypeExpression_value_feature = Value
+_UI_ArbitrationPolicyExpression_value_feature = Value
+_UI_ExpressionType_CONTENT_STATE_literal = CONTENT_STATE
+_UI_ExpressionType_ENUM_literal = ENUM
+_UI_ContentStateOperator_type = Content State Operator
+_UI_ExpressionType_TIMER_literal = TIMER
+_UI_LetStatement_type = Let Statement
+_UI_Expression_letStatements_feature = Let Statements
+_UI_LetStatement_variable_feature = Variable
+_UI_LetStatement_body_feature = Body
+_UI_ComplexExpression_type = Complex Expression
+_UI_ComplexExpression_otherExpression_feature = Other Expression
+_UI_IsTypeOf_tagName_feature = Tag Name
+_UI_NullExpression_type = Null Expression
+_UI_ExpressionType_NULL_literal = NULL
+_UI_Project_version_feature = Version
+_UI_Project_dummyName_feature = Dummy Name
diff --git a/rba.model.core.edit/plugin.xml b/rba.model.core.edit/plugin.xml
new file mode 100644
index 0000000..7e0655f
--- /dev/null
+++ b/rba.model.core.edit/plugin.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
+ <!-- @generated rbacore -->
+ <factory
+ uri="http://www.denso.com/ict/rba/core"
+ class="rba.core.provider.RBACoreItemProviderAdapterFactory"
+ supportedTypes=
+ "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
+ org.eclipse.emf.edit.provider.IStructuredItemContentProvider
+ org.eclipse.emf.edit.provider.ITreeItemContentProvider
+ org.eclipse.emf.edit.provider.IItemLabelProvider
+ org.eclipse.emf.edit.provider.IItemPropertySource"/>
+ </extension>
+
+</plugin>
diff --git a/rba.model.core.edit/src/rba/core/provider/AbstractAllocatableItemProvider.java b/rba.model.core.edit/src/rba/core/provider/AbstractAllocatableItemProvider.java
new file mode 100644
index 0000000..952b3cd
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/AbstractAllocatableItemProvider.java
@@ -0,0 +1,121 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.AbstractAllocatable;
+import rba.core.RBACorePackage;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.AbstractAllocatable} object.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+public class AbstractAllocatableItemProvider extends RuleObjectItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public AbstractAllocatableItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addContentsPropertyDescriptor(object);
+ addAllocatableGroupPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Contents feature.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addContentsPropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(), getString("_UI_AbstractAllocatable_contents_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_AbstractAllocatable_contents_feature",
+ "_UI_AbstractAllocatable_type"),
+ RBACorePackage.Literals.ABSTRACT_ALLOCATABLE__CONTENTS, true, false, true, null, null, null));
+ }
+
+ /**
+ * This adds a property descriptor for the Allocatable Group feature.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addAllocatableGroupPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(), getResourceLocator(),
+ getString("_UI_AbstractAllocatable_allocatableGroup_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_AbstractAllocatable_allocatableGroup_feature",
+ "_UI_AbstractAllocatable_type"),
+ RBACorePackage.Literals.ABSTRACT_ALLOCATABLE__ALLOCATABLE_GROUP, true, false, true, null, null, null));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((AbstractAllocatable) object).getName();
+ return label == null || label.length() == 0 ? getString("_UI_AbstractAllocatable_type")
+ : getString("_UI_AbstractAllocatable_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/AbstractConstraintItemProvider.java b/rba.model.core.edit/src/rba/core/provider/AbstractConstraintItemProvider.java
new file mode 100644
index 0000000..ccdac09
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/AbstractConstraintItemProvider.java
@@ -0,0 +1,292 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import rba.core.AbstractConstraint;
+import rba.core.RBACoreFactory;
+import rba.core.RBACorePackage;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.AbstractConstraint} object. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @generated
+ */
+public class AbstractConstraintItemProvider extends PackagableElementItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public AbstractConstraintItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((AbstractConstraint) object).getName();
+ return label == null || label.length() == 0 ? getString("_UI_AbstractConstraint_type")
+ : getString("_UI_AbstractConstraint_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(AbstractConstraint.class)) {
+ case RBACorePackage.ABSTRACT_CONSTRAINT__EXPRESSION:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createComplexExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIsTypeOf()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createObjectReference()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createPreviousModifier()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createGreaterThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createMuchGreaterThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createLowerThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createEqualToOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createComparisonAnd()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createAndOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createOrOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createNotOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIsEqualToOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIsGreaterThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIsLowerThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIsGreaterThanEqualOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIsLowerThanEqualOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createPlusOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createImpliesOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIsActive()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createGetAllocatables()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createHasBeenDisplayed()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createActiveState()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createObjectCompare()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createThatOfOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createMaxValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createMinValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createNoneValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createStandardValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIntegerValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createLoserTypeExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createArbitrationPolicyExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createSizeOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createExistsOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createForAllOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createMaxOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createMinOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createSelectOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createSetOfOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createLambdaExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIfStatement()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIsOn()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createAllocatedContent()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createContentValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createGetContentsList()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createActiveContents()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createGetProperty()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createStateValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createHasComeLaterThan()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createHasComeEarlierThan()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createObjectCompareNot()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIsAllocatedTo()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIsChanged()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIsTranslatedTo()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION,
+ RBACoreFactory.eINSTANCE.createNullExpression()));
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/AbstractContentItemProvider.java b/rba.model.core.edit/src/rba/core/provider/AbstractContentItemProvider.java
new file mode 100644
index 0000000..5300157
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/AbstractContentItemProvider.java
@@ -0,0 +1,120 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.AbstractContent;
+import rba.core.RBACorePackage;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.AbstractContent} object. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @generated
+ */
+public class AbstractContentItemProvider extends RuleObjectItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public AbstractContentItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addContentGroupPropertyDescriptor(object);
+ addAllocatablePropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Content Group feature.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addContentGroupPropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(), getString("_UI_AbstractContent_contentGroup_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_AbstractContent_contentGroup_feature",
+ "_UI_AbstractContent_type"),
+ RBACorePackage.Literals.ABSTRACT_CONTENT__CONTENT_GROUP, true, false, true, null, null, null));
+ }
+
+ /**
+ * This adds a property descriptor for the Allocatable feature.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addAllocatablePropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(), getString("_UI_AbstractContent_allocatable_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_AbstractContent_allocatable_feature",
+ "_UI_AbstractContent_type"),
+ RBACorePackage.Literals.ABSTRACT_CONTENT__ALLOCATABLE, true, false, true, null, null, null));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((AbstractContent) object).getName();
+ return label == null || label.length() == 0 ? getString("_UI_AbstractContent_type")
+ : getString("_UI_AbstractContent_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/AbstractPropertyItemProvider.java b/rba.model.core.edit/src/rba/core/provider/AbstractPropertyItemProvider.java
new file mode 100644
index 0000000..0392eb4
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/AbstractPropertyItemProvider.java
@@ -0,0 +1,105 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.AbstractProperty;
+import rba.core.RBACorePackage;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.AbstractProperty} object. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @generated
+ */
+public class AbstractPropertyItemProvider extends RuleObjectItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public AbstractPropertyItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addOwnerPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Owner feature.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addOwnerPropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(), getString("_UI_AbstractProperty_owner_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_AbstractProperty_owner_feature",
+ "_UI_AbstractProperty_type"),
+ RBACorePackage.Literals.ABSTRACT_PROPERTY__OWNER, true, false, true, null, null, null));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((AbstractProperty) object).getName();
+ return label == null || label.length() == 0 ? getString("_UI_AbstractProperty_type")
+ : getString("_UI_AbstractProperty_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/AbstractSceneItemProvider.java b/rba.model.core.edit/src/rba/core/provider/AbstractSceneItemProvider.java
new file mode 100644
index 0000000..cdba21d
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/AbstractSceneItemProvider.java
@@ -0,0 +1,88 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.AbstractScene;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.AbstractScene} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class AbstractSceneItemProvider extends RuleObjectItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public AbstractSceneItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((AbstractScene) object).getName();
+ return label == null || label.length() == 0 ? getString("_UI_AbstractScene_type")
+ : getString("_UI_AbstractScene_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/ActionOperatorItemProvider.java b/rba.model.core.edit/src/rba/core/provider/ActionOperatorItemProvider.java
new file mode 100644
index 0000000..c3ae25d
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/ActionOperatorItemProvider.java
@@ -0,0 +1,90 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ActionOperator;
+import rba.core.ExpressionType;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.ActionOperator} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class ActionOperatorItemProvider extends OperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ActionOperatorItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((ActionOperator) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_ActionOperator_type")
+ : getString("_UI_ActionOperator_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/ActiveContentsItemProvider.java b/rba.model.core.edit/src/rba/core/provider/ActiveContentsItemProvider.java
new file mode 100644
index 0000000..d8c7ee5
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/ActiveContentsItemProvider.java
@@ -0,0 +1,100 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ActiveContents;
+import rba.core.ExpressionType;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.ActiveContents} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class ActiveContentsItemProvider extends AllocatableOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ActiveContentsItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns ActiveContents.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/ActiveContents"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((ActiveContents) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_ActiveContents_type")
+ : getString("_UI_ActiveContents_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/ActiveStateItemProvider.java b/rba.model.core.edit/src/rba/core/provider/ActiveStateItemProvider.java
new file mode 100644
index 0000000..1b97f0d
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/ActiveStateItemProvider.java
@@ -0,0 +1,100 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ActiveState;
+import rba.core.ExpressionType;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.ActiveState} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class ActiveStateItemProvider extends ContentOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ActiveStateItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns ActiveState.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/ActiveState"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((ActiveState) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_ActiveState_type")
+ : getString("_UI_ActiveState_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/AllocatableItemProvider.java b/rba.model.core.edit/src/rba/core/provider/AllocatableItemProvider.java
new file mode 100644
index 0000000..7d40819
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/AllocatableItemProvider.java
@@ -0,0 +1,311 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import rba.core.Allocatable;
+import rba.core.RBACoreFactory;
+import rba.core.RBACorePackage;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.Allocatable} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class AllocatableItemProvider extends AbstractAllocatableItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public AllocatableItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addArbitrationPolicyPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Arbitration Policy feature.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addArbitrationPolicyPropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(), getString("_UI_Allocatable_arbitrationPolicy_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_Allocatable_arbitrationPolicy_feature",
+ "_UI_Allocatable_type"),
+ RBACorePackage.Literals.ALLOCATABLE__ARBITRATION_POLICY, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((Allocatable) object).getName();
+ return label == null || label.length() == 0 ? getString("_UI_Allocatable_type")
+ : getString("_UI_Allocatable_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(Allocatable.class)) {
+ case RBACorePackage.ALLOCATABLE__ARBITRATION_POLICY:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ case RBACorePackage.ALLOCATABLE__VISIBILITY:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createComplexExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createIsTypeOf()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createObjectReference()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createPreviousModifier()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createGreaterThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createMuchGreaterThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createLowerThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createEqualToOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createComparisonAnd()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createAndOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createOrOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createNotOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createIsEqualToOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createIsGreaterThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createIsLowerThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createIsGreaterThanEqualOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createIsLowerThanEqualOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createPlusOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createImpliesOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createIsActive()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createGetAllocatables()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createHasBeenDisplayed()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createActiveState()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createObjectCompare()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createThatOfOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createMaxValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createMinValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createNoneValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createStandardValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createIntegerValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createLoserTypeExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createArbitrationPolicyExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createSizeOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createExistsOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createForAllOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createMaxOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createMinOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createSelectOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createSetOfOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createLambdaExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createIfStatement()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createIsOn()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createAllocatedContent()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createContentValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createGetContentsList()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createActiveContents()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createGetProperty()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createStateValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createHasComeLaterThan()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createHasComeEarlierThan()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createObjectCompareNot()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createIsAllocatedTo()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createIsChanged()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createIsTranslatedTo()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBACoreFactory.eINSTANCE.createNullExpression()));
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/AllocatableOperatorItemProvider.java b/rba.model.core.edit/src/rba/core/provider/AllocatableOperatorItemProvider.java
new file mode 100644
index 0000000..a7e1082
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/AllocatableOperatorItemProvider.java
@@ -0,0 +1,91 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.AllocatableOperator;
+import rba.core.ExpressionType;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.AllocatableOperator} object.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+public class AllocatableOperatorItemProvider extends OperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public AllocatableOperatorItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((AllocatableOperator) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_AllocatableOperator_type")
+ : getString("_UI_AllocatableOperator_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/AllocatableSetItemProvider.java b/rba.model.core.edit/src/rba/core/provider/AllocatableSetItemProvider.java
new file mode 100644
index 0000000..9c01f4b
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/AllocatableSetItemProvider.java
@@ -0,0 +1,105 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.AllocatableSet;
+import rba.core.RBACorePackage;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.AllocatableSet} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class AllocatableSetItemProvider extends AbstractAllocatableItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public AllocatableSetItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addTargetPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Target feature.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addTargetPropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(), getString("_UI_AllocatableSet_target_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_AllocatableSet_target_feature",
+ "_UI_AllocatableSet_type"),
+ RBACorePackage.Literals.ALLOCATABLE_SET__TARGET, true, false, true, null, null, null));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((AllocatableSet) object).getName();
+ return label == null || label.length() == 0 ? getString("_UI_AllocatableSet_type")
+ : getString("_UI_AllocatableSet_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/AllocatedContentItemProvider.java b/rba.model.core.edit/src/rba/core/provider/AllocatedContentItemProvider.java
new file mode 100644
index 0000000..b06a025
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/AllocatedContentItemProvider.java
@@ -0,0 +1,100 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.AllocatedContent;
+import rba.core.ExpressionType;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.AllocatedContent} object. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @generated
+ */
+public class AllocatedContentItemProvider extends AllocatableOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public AllocatedContentItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns AllocatedContent.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/AllocatedContent"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((AllocatedContent) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_AllocatedContent_type")
+ : getString("_UI_AllocatedContent_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/AndOperatorItemProvider.java b/rba.model.core.edit/src/rba/core/provider/AndOperatorItemProvider.java
new file mode 100644
index 0000000..d76a288
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/AndOperatorItemProvider.java
@@ -0,0 +1,100 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.AndOperator;
+import rba.core.ExpressionType;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.AndOperator} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class AndOperatorItemProvider extends LogicalOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public AndOperatorItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns AndOperator.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/AndOperator"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((AndOperator) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_AndOperator_type")
+ : getString("_UI_AndOperator_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/ArbitrationPolicyExpressionItemProvider.java b/rba.model.core.edit/src/rba/core/provider/ArbitrationPolicyExpressionItemProvider.java
new file mode 100644
index 0000000..c39be72
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/ArbitrationPolicyExpressionItemProvider.java
@@ -0,0 +1,127 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import rba.core.ArbitrationPolicyExpression;
+import rba.core.ExpressionType;
+import rba.core.RBACorePackage;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.ArbitrationPolicyExpression} object.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+public class ArbitrationPolicyExpressionItemProvider extends EnumExpressionItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ArbitrationPolicyExpressionItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addValuePropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Value feature.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addValuePropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(), getString("_UI_ArbitrationPolicyExpression_value_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_ArbitrationPolicyExpression_value_feature",
+ "_UI_ArbitrationPolicyExpression_type"),
+ RBACorePackage.Literals.ARBITRATION_POLICY_EXPRESSION__VALUE, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This returns ArbitrationPolicyExpression.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/ArbitrationPolicyExpression"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((ArbitrationPolicyExpression) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_ArbitrationPolicyExpression_type")
+ : getString("_UI_ArbitrationPolicyExpression_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(ArbitrationPolicyExpression.class)) {
+ case RBACorePackage.ARBITRATION_POLICY_EXPRESSION__VALUE:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/ArithmeticOperatorItemProvider.java b/rba.model.core.edit/src/rba/core/provider/ArithmeticOperatorItemProvider.java
new file mode 100644
index 0000000..32403a0
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/ArithmeticOperatorItemProvider.java
@@ -0,0 +1,90 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ArithmeticOperator;
+import rba.core.ExpressionType;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.ArithmeticOperator} object. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @generated
+ */
+public class ArithmeticOperatorItemProvider extends OperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ArithmeticOperatorItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((ArithmeticOperator) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_ArithmeticOperator_type")
+ : getString("_UI_ArithmeticOperator_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/ComparisonAndItemProvider.java b/rba.model.core.edit/src/rba/core/provider/ComparisonAndItemProvider.java
new file mode 100644
index 0000000..7d92367
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/ComparisonAndItemProvider.java
@@ -0,0 +1,100 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ComparisonAnd;
+import rba.core.ExpressionType;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.ComparisonAnd} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class ComparisonAndItemProvider extends ComparisonOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ComparisonAndItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns ComparisonAnd.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/ComparisonAnd"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((ComparisonAnd) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_ComparisonAnd_type")
+ : getString("_UI_ComparisonAnd_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/ComparisonOperatorItemProvider.java b/rba.model.core.edit/src/rba/core/provider/ComparisonOperatorItemProvider.java
new file mode 100644
index 0000000..25307b2
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/ComparisonOperatorItemProvider.java
@@ -0,0 +1,90 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ComparisonOperator;
+import rba.core.ExpressionType;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.ComparisonOperator} object. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @generated
+ */
+public class ComparisonOperatorItemProvider extends OperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ComparisonOperatorItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((ComparisonOperator) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_ComparisonOperator_type")
+ : getString("_UI_ComparisonOperator_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/ComplexExpressionItemProvider.java b/rba.model.core.edit/src/rba/core/provider/ComplexExpressionItemProvider.java
new file mode 100644
index 0000000..2f7765c
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/ComplexExpressionItemProvider.java
@@ -0,0 +1,304 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import rba.core.ComplexExpression;
+import rba.core.ExpressionType;
+import rba.core.RBACoreFactory;
+import rba.core.RBACorePackage;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.ComplexExpression} object. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @generated
+ */
+public class ComplexExpressionItemProvider extends ExpressionItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ComplexExpressionItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns ComplexExpression.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/ComplexExpression"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((ComplexExpression) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_ComplexExpression_type")
+ : getString("_UI_ComplexExpression_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(ComplexExpression.class)) {
+ case RBACorePackage.COMPLEX_EXPRESSION__OTHER_EXPRESSION:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createComplexExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIsTypeOf()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createObjectReference()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createPreviousModifier()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createGreaterThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createMuchGreaterThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createLowerThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createEqualToOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createComparisonAnd()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createAndOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createOrOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createNotOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIsEqualToOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIsGreaterThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIsLowerThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIsGreaterThanEqualOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIsLowerThanEqualOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createPlusOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createImpliesOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIsActive()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createGetAllocatables()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createHasBeenDisplayed()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createActiveState()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createObjectCompare()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createThatOfOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createMaxValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createMinValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createNoneValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createStandardValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIntegerValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createLoserTypeExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createArbitrationPolicyExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createSizeOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createExistsOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createForAllOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createMaxOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createMinOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createSelectOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createSetOfOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createLambdaExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIfStatement()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIsOn()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createAllocatedContent()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createContentValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createGetContentsList()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createActiveContents()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createGetProperty()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createStateValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createHasComeLaterThan()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createHasComeEarlierThan()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createObjectCompareNot()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIsAllocatedTo()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIsChanged()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIsTranslatedTo()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createNullExpression()));
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/ConstraintItemProvider.java b/rba.model.core.edit/src/rba/core/provider/ConstraintItemProvider.java
new file mode 100644
index 0000000..3970918
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/ConstraintItemProvider.java
@@ -0,0 +1,124 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import rba.core.Constraint;
+import rba.core.RBACorePackage;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.Constraint} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class ConstraintItemProvider extends AbstractConstraintItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ConstraintItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addRuntimePropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Runtime feature.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addRuntimePropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(), getString("_UI_Constraint_runtime_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_Constraint_runtime_feature",
+ "_UI_Constraint_type"),
+ RBACorePackage.Literals.CONSTRAINT__RUNTIME, true, false, false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This returns Constraint.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/Constraint"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((Constraint) object).getName();
+ return label == null || label.length() == 0 ? getString("_UI_Constraint_type")
+ : getString("_UI_Constraint_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(Constraint.class)) {
+ case RBACorePackage.CONSTRAINT__RUNTIME:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/ContentItemProvider.java b/rba.model.core.edit/src/rba/core/provider/ContentItemProvider.java
new file mode 100644
index 0000000..76b20c3
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/ContentItemProvider.java
@@ -0,0 +1,147 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import rba.core.Content;
+import rba.core.RBACorePackage;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.Content} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class ContentItemProvider extends AbstractContentItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ContentItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addLoserTypePropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Loser Type feature.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addLoserTypePropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(), getString("_UI_Content_loserType_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_Content_loserType_feature",
+ "_UI_Content_type"),
+ RBACorePackage.Literals.CONTENT__LOSER_TYPE, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(RBACorePackage.Literals.CONTENT__STATES);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((Content) object).getName();
+ return label == null || label.length() == 0 ? getString("_UI_Content_type")
+ : getString("_UI_Content_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(Content.class)) {
+ case RBACorePackage.CONTENT__LOSER_TYPE:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ case RBACorePackage.CONTENT__STATES:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/ContentOperatorItemProvider.java b/rba.model.core.edit/src/rba/core/provider/ContentOperatorItemProvider.java
new file mode 100644
index 0000000..4fb121f
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/ContentOperatorItemProvider.java
@@ -0,0 +1,90 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ContentOperator;
+import rba.core.ExpressionType;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.ContentOperator} object. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @generated
+ */
+public class ContentOperatorItemProvider extends OperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ContentOperatorItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((ContentOperator) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_ContentOperator_type")
+ : getString("_UI_ContentOperator_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/ContentSetItemProvider.java b/rba.model.core.edit/src/rba/core/provider/ContentSetItemProvider.java
new file mode 100644
index 0000000..f28822a
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/ContentSetItemProvider.java
@@ -0,0 +1,105 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ContentSet;
+import rba.core.RBACorePackage;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.ContentSet} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class ContentSetItemProvider extends AbstractContentItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ContentSetItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addTargetPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Target feature.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addTargetPropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(), getString("_UI_ContentSet_target_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_ContentSet_target_feature",
+ "_UI_ContentSet_type"),
+ RBACorePackage.Literals.CONTENT_SET__TARGET, true, false, true, null, null, null));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((ContentSet) object).getName();
+ return label == null || label.length() == 0 ? getString("_UI_ContentSet_type")
+ : getString("_UI_ContentSet_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/ContentStateItemProvider.java b/rba.model.core.edit/src/rba/core/provider/ContentStateItemProvider.java
new file mode 100644
index 0000000..03f01cc
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/ContentStateItemProvider.java
@@ -0,0 +1,291 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import rba.core.ContentState;
+import rba.core.RBACoreFactory;
+import rba.core.RBACorePackage;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.ContentState} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class ContentStateItemProvider extends RuleObjectItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ContentStateItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(RBACorePackage.Literals.CONTENT_STATE__VALUE);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((ContentState) object).getName();
+ return label == null || label.length() == 0 ? getString("_UI_ContentState_type")
+ : getString("_UI_ContentState_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(ContentState.class)) {
+ case RBACorePackage.CONTENT_STATE__VALUE:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createComplexExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createIsTypeOf()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createObjectReference()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createPreviousModifier()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createGreaterThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createMuchGreaterThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createLowerThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createEqualToOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createComparisonAnd()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createAndOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createOrOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createNotOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createIsEqualToOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createIsGreaterThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createIsLowerThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createIsGreaterThanEqualOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createIsLowerThanEqualOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createPlusOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createImpliesOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createIsActive()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createGetAllocatables()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createHasBeenDisplayed()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createActiveState()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createObjectCompare()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createThatOfOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createMaxValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createMinValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createNoneValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createStandardValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createIntegerValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createLoserTypeExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createArbitrationPolicyExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createSizeOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createExistsOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createForAllOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createMaxOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createMinOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createSelectOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createSetOfOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createLambdaExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createIfStatement()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createIsOn()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createAllocatedContent()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createContentValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createGetContentsList()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createActiveContents()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createGetProperty()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createStateValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createHasComeLaterThan()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createHasComeEarlierThan()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createObjectCompareNot()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createIsAllocatedTo()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createIsChanged()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createIsTranslatedTo()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBACoreFactory.eINSTANCE.createNullExpression()));
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/ContentStateOperatorItemProvider.java b/rba.model.core.edit/src/rba/core/provider/ContentStateOperatorItemProvider.java
new file mode 100644
index 0000000..1cf7838
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/ContentStateOperatorItemProvider.java
@@ -0,0 +1,91 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ContentStateOperator;
+import rba.core.ExpressionType;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.ContentStateOperator} object.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+public class ContentStateOperatorItemProvider extends OperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ContentStateOperatorItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((ContentStateOperator) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_ContentStateOperator_type")
+ : getString("_UI_ContentStateOperator_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/ContentValueItemProvider.java b/rba.model.core.edit/src/rba/core/provider/ContentValueItemProvider.java
new file mode 100644
index 0000000..29c3e83
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/ContentValueItemProvider.java
@@ -0,0 +1,100 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ContentValue;
+import rba.core.ExpressionType;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.ContentValue} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class ContentValueItemProvider extends AllocatableOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ContentValueItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns ContentValue.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/ContentValue"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((ContentValue) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_ContentValue_type")
+ : getString("_UI_ContentValue_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/EnumExpressionItemProvider.java b/rba.model.core.edit/src/rba/core/provider/EnumExpressionItemProvider.java
new file mode 100644
index 0000000..70f5c1d
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/EnumExpressionItemProvider.java
@@ -0,0 +1,90 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.EnumExpression;
+import rba.core.ExpressionType;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.EnumExpression} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class EnumExpressionItemProvider extends ExpressionItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EnumExpressionItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((EnumExpression) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_EnumExpression_type")
+ : getString("_UI_EnumExpression_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/EqualToOperatorItemProvider.java b/rba.model.core.edit/src/rba/core/provider/EqualToOperatorItemProvider.java
new file mode 100644
index 0000000..146fada
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/EqualToOperatorItemProvider.java
@@ -0,0 +1,100 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.EqualToOperator;
+import rba.core.ExpressionType;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.EqualToOperator} object. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @generated
+ */
+public class EqualToOperatorItemProvider extends ComparisonOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EqualToOperatorItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns EqualToOperator.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/EqualToOperator"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((EqualToOperator) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_EqualToOperator_type")
+ : getString("_UI_EqualToOperator_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/ExistsOperatorItemProvider.java b/rba.model.core.edit/src/rba/core/provider/ExistsOperatorItemProvider.java
new file mode 100644
index 0000000..e17017d
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/ExistsOperatorItemProvider.java
@@ -0,0 +1,122 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExistsOperator;
+import rba.core.ExpressionType;
+import rba.core.RBACorePackage;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.ExistsOperator} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class ExistsOperatorItemProvider extends LambdaContextItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExistsOperatorItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns ExistsOperator.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/ExistsOperator"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((ExistsOperator) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_ExistsOperator_type")
+ : getString("_UI_ExistsOperator_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
+ Object childFeature = feature;
+ Object childObject = child;
+
+ boolean qualify = childFeature == RBACorePackage.Literals.OPERATOR__OPERAND
+ || childFeature == RBACorePackage.Literals.LAMBDA_CONTEXT__LAMBDA;
+
+ if (qualify) {
+ return getString("_UI_CreateChild_text2",
+ new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+ }
+ return super.getCreateChildText(owner, feature, child, selection);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/ExpressionItemProvider.java b/rba.model.core.edit/src/rba/core/provider/ExpressionItemProvider.java
new file mode 100644
index 0000000..66b2b4b
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/ExpressionItemProvider.java
@@ -0,0 +1,167 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import rba.core.Expression;
+import rba.core.ExpressionType;
+import rba.core.RBACorePackage;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.Expression} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class ExpressionItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider,
+ IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addTypePropertyDescriptor(object);
+ addExpressionPropertyDescriptor(object);
+ addLetStatementsPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Type feature.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addTypePropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(), getString("_UI_Expression_type_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_Expression_type_feature",
+ "_UI_Expression_type"),
+ RBACorePackage.Literals.EXPRESSION__TYPE, false, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This adds a property descriptor for the Expression feature.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addExpressionPropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(), getString("_UI_Expression_expression_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_Expression_expression_feature",
+ "_UI_Expression_type"),
+ RBACorePackage.Literals.EXPRESSION__EXPRESSION, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This adds a property descriptor for the Let Statements feature.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addLetStatementsPropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(), getString("_UI_Expression_letStatements_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_Expression_letStatements_feature",
+ "_UI_Expression_type"),
+ RBACorePackage.Literals.EXPRESSION__LET_STATEMENTS, true, false, true, null, null, null));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((Expression) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_Expression_type")
+ : getString("_UI_Expression_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(Expression.class)) {
+ case RBACorePackage.EXPRESSION__TYPE:
+ case RBACorePackage.EXPRESSION__EXPRESSION:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return RbaCoreEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/ForAllOperatorItemProvider.java b/rba.model.core.edit/src/rba/core/provider/ForAllOperatorItemProvider.java
new file mode 100644
index 0000000..cd9ce4d
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/ForAllOperatorItemProvider.java
@@ -0,0 +1,122 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.ForAllOperator;
+import rba.core.RBACorePackage;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.ForAllOperator} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class ForAllOperatorItemProvider extends LambdaContextItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ForAllOperatorItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns ForAllOperator.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/ForAllOperator"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((ForAllOperator) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_ForAllOperator_type")
+ : getString("_UI_ForAllOperator_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
+ Object childFeature = feature;
+ Object childObject = child;
+
+ boolean qualify = childFeature == RBACorePackage.Literals.OPERATOR__OPERAND
+ || childFeature == RBACorePackage.Literals.LAMBDA_CONTEXT__LAMBDA;
+
+ if (qualify) {
+ return getString("_UI_CreateChild_text2",
+ new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+ }
+ return super.getCreateChildText(owner, feature, child, selection);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/GetAllocatablesItemProvider.java b/rba.model.core.edit/src/rba/core/provider/GetAllocatablesItemProvider.java
new file mode 100644
index 0000000..c04eb0d
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/GetAllocatablesItemProvider.java
@@ -0,0 +1,100 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.GetAllocatables;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.GetAllocatables} object. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @generated
+ */
+public class GetAllocatablesItemProvider extends ContentOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public GetAllocatablesItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns GetAllocatables.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/GetAllocatables"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((GetAllocatables) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_GetAllocatables_type")
+ : getString("_UI_GetAllocatables_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/GetContentsListItemProvider.java b/rba.model.core.edit/src/rba/core/provider/GetContentsListItemProvider.java
new file mode 100644
index 0000000..2febb8e
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/GetContentsListItemProvider.java
@@ -0,0 +1,100 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.GetContentsList;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.GetContentsList} object. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @generated
+ */
+public class GetContentsListItemProvider extends AllocatableOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public GetContentsListItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns GetContentsList.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/GetContentsList"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((GetContentsList) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_GetContentsList_type")
+ : getString("_UI_GetContentsList_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/GetPropertyItemProvider.java b/rba.model.core.edit/src/rba/core/provider/GetPropertyItemProvider.java
new file mode 100644
index 0000000..9c5f5e3
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/GetPropertyItemProvider.java
@@ -0,0 +1,100 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.GetProperty;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.GetProperty} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class GetPropertyItemProvider extends PropertyOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public GetPropertyItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns GetProperty.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/GetProperty"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((GetProperty) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_GetProperty_type")
+ : getString("_UI_GetProperty_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/GetStateItemProvider.java b/rba.model.core.edit/src/rba/core/provider/GetStateItemProvider.java
new file mode 100644
index 0000000..747d55a
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/GetStateItemProvider.java
@@ -0,0 +1,114 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.GetState} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class GetStateItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider,
+ IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public GetStateItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns GetState.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/GetState"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ return getString("_UI_GetState_type");
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return RbaCoreEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/GreaterThanOperatorItemProvider.java b/rba.model.core.edit/src/rba/core/provider/GreaterThanOperatorItemProvider.java
new file mode 100644
index 0000000..c252e8a
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/GreaterThanOperatorItemProvider.java
@@ -0,0 +1,101 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.GreaterThanOperator;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.GreaterThanOperator} object.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+public class GreaterThanOperatorItemProvider extends ComparisonOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public GreaterThanOperatorItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns GreaterThanOperator.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/GreaterThanOperator"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((GreaterThanOperator) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_GreaterThanOperator_type")
+ : getString("_UI_GreaterThanOperator_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/HasBeenDisplayedItemProvider.java b/rba.model.core.edit/src/rba/core/provider/HasBeenDisplayedItemProvider.java
new file mode 100644
index 0000000..a71e1b5
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/HasBeenDisplayedItemProvider.java
@@ -0,0 +1,100 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.HasBeenDisplayed;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.HasBeenDisplayed} object. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @generated
+ */
+public class HasBeenDisplayedItemProvider extends ContentOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public HasBeenDisplayedItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns HasBeenDisplayed.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/HasBeenDisplayed"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((HasBeenDisplayed) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_HasBeenDisplayed_type")
+ : getString("_UI_HasBeenDisplayed_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/HasComeEarlierThanItemProvider.java b/rba.model.core.edit/src/rba/core/provider/HasComeEarlierThanItemProvider.java
new file mode 100644
index 0000000..1ef924f
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/HasComeEarlierThanItemProvider.java
@@ -0,0 +1,100 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.HasComeEarlierThan;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.HasComeEarlierThan} object. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @generated
+ */
+public class HasComeEarlierThanItemProvider extends ContentOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public HasComeEarlierThanItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns HasComeEarlierThan.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/HasComeEarlierThan"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((HasComeEarlierThan) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_HasComeEarlierThan_type")
+ : getString("_UI_HasComeEarlierThan_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/HasComeLaterThanItemProvider.java b/rba.model.core.edit/src/rba/core/provider/HasComeLaterThanItemProvider.java
new file mode 100644
index 0000000..a30e083
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/HasComeLaterThanItemProvider.java
@@ -0,0 +1,100 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.HasComeLaterThan;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.HasComeLaterThan} object. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @generated
+ */
+public class HasComeLaterThanItemProvider extends ContentOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public HasComeLaterThanItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns HasComeLaterThan.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/HasComeLaterThan"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((HasComeLaterThan) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_HasComeLaterThan_type")
+ : getString("_UI_HasComeLaterThan_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/IfActionOperatorItemProvider.java b/rba.model.core.edit/src/rba/core/provider/IfActionOperatorItemProvider.java
new file mode 100644
index 0000000..417c2a7
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/IfActionOperatorItemProvider.java
@@ -0,0 +1,98 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import rba.core.ExpressionType;
+import rba.core.IfActionOperator;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.IfActionOperator} object. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @generated
+ */
+public class IfActionOperatorItemProvider extends ActionOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IfActionOperatorItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns IfActionOperator.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/IfActionOperator"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((IfActionOperator) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_IfActionOperator_type")
+ : getString("_UI_IfActionOperator_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/IfStatementItemProvider.java b/rba.model.core.edit/src/rba/core/provider/IfStatementItemProvider.java
new file mode 100644
index 0000000..be514fe
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/IfStatementItemProvider.java
@@ -0,0 +1,660 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import rba.core.ExpressionType;
+import rba.core.IfStatement;
+import rba.core.RBACoreFactory;
+import rba.core.RBACorePackage;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.IfStatement} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class IfStatementItemProvider extends ExpressionItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IfStatementItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(RBACorePackage.Literals.IF_STATEMENT__CONDITION);
+ childrenFeatures.add(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION);
+ childrenFeatures.add(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns IfStatement.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/IfStatement"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((IfStatement) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_IfStatement_type")
+ : getString("_UI_IfStatement_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(IfStatement.class)) {
+ case RBACorePackage.IF_STATEMENT__CONDITION:
+ case RBACorePackage.IF_STATEMENT__THEN_EXPRESSION:
+ case RBACorePackage.IF_STATEMENT__ELSE_EXPRESSION:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createComplexExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createIsTypeOf()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createObjectReference()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createPreviousModifier()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createGreaterThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createMuchGreaterThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createLowerThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createEqualToOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createComparisonAnd()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createAndOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createOrOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createNotOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createIsEqualToOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createIsGreaterThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createIsLowerThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createIsGreaterThanEqualOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createIsLowerThanEqualOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createPlusOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createImpliesOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createIsActive()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createGetAllocatables()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createHasBeenDisplayed()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createActiveState()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createObjectCompare()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createThatOfOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createMaxValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createMinValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createNoneValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createStandardValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createIntegerValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createLoserTypeExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createArbitrationPolicyExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createSizeOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createExistsOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createForAllOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createMaxOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createMinOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createSelectOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createSetOfOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createLambdaExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createIfStatement()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createIsOn()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createAllocatedContent()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createContentValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createGetContentsList()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createActiveContents()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createGetProperty()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createStateValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createHasComeLaterThan()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createHasComeEarlierThan()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createObjectCompareNot()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createIsAllocatedTo()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createIsChanged()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createIsTranslatedTo()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__CONDITION,
+ RBACoreFactory.eINSTANCE.createNullExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createComplexExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIsTypeOf()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createObjectReference()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createPreviousModifier()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createGreaterThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createMuchGreaterThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createLowerThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createEqualToOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createComparisonAnd()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createAndOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createOrOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createNotOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIsEqualToOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIsGreaterThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIsLowerThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIsGreaterThanEqualOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIsLowerThanEqualOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createPlusOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createImpliesOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIsActive()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createGetAllocatables()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createHasBeenDisplayed()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createActiveState()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createObjectCompare()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createThatOfOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createMaxValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createMinValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createNoneValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createStandardValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIntegerValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createLoserTypeExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createArbitrationPolicyExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createSizeOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createExistsOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createForAllOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createMaxOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createMinOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createSelectOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createSetOfOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createLambdaExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIfStatement()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIsOn()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createAllocatedContent()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createContentValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createGetContentsList()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createActiveContents()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createGetProperty()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createStateValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createHasComeLaterThan()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createHasComeEarlierThan()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createObjectCompareNot()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIsAllocatedTo()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIsChanged()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIsTranslatedTo()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createNullExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createComplexExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIsTypeOf()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createObjectReference()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createPreviousModifier()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createGreaterThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createMuchGreaterThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createLowerThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createEqualToOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createComparisonAnd()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createAndOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createOrOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createNotOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIsEqualToOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIsGreaterThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIsLowerThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIsGreaterThanEqualOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIsLowerThanEqualOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createPlusOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createImpliesOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIsActive()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createGetAllocatables()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createHasBeenDisplayed()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createActiveState()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createObjectCompare()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createThatOfOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createMaxValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createMinValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createNoneValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createStandardValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIntegerValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createLoserTypeExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createArbitrationPolicyExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createSizeOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createExistsOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createForAllOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createMaxOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createMinOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createSelectOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createSetOfOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createLambdaExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIfStatement()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIsOn()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createAllocatedContent()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createContentValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createGetContentsList()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createActiveContents()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createGetProperty()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createStateValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createHasComeLaterThan()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createHasComeEarlierThan()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createObjectCompareNot()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIsAllocatedTo()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIsChanged()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createIsTranslatedTo()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION,
+ RBACoreFactory.eINSTANCE.createNullExpression()));
+ }
+
+ /**
+ * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
+ Object childFeature = feature;
+ Object childObject = child;
+
+ boolean qualify = childFeature == RBACorePackage.Literals.IF_STATEMENT__CONDITION
+ || childFeature == RBACorePackage.Literals.IF_STATEMENT__THEN_EXPRESSION
+ || childFeature == RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION;
+
+ if (qualify) {
+ return getString("_UI_CreateChild_text2",
+ new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+ }
+ return super.getCreateChildText(owner, feature, child, selection);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/ImpliesOperatorItemProvider.java b/rba.model.core.edit/src/rba/core/provider/ImpliesOperatorItemProvider.java
new file mode 100644
index 0000000..67b1f95
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/ImpliesOperatorItemProvider.java
@@ -0,0 +1,100 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.ImpliesOperator;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.ImpliesOperator} object. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @generated
+ */
+public class ImpliesOperatorItemProvider extends LogicalOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ImpliesOperatorItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns ImpliesOperator.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/ImpliesOperator"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((ImpliesOperator) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_ImpliesOperator_type")
+ : getString("_UI_ImpliesOperator_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/IntegerPropertyItemProvider.java b/rba.model.core.edit/src/rba/core/provider/IntegerPropertyItemProvider.java
new file mode 100644
index 0000000..9b1036a
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/IntegerPropertyItemProvider.java
@@ -0,0 +1,302 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import rba.core.IntegerProperty;
+import rba.core.RBACoreFactory;
+import rba.core.RBACorePackage;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.IntegerProperty} object. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @generated
+ */
+public class IntegerPropertyItemProvider extends AbstractPropertyItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IntegerPropertyItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns IntegerProperty.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/IntegerProperty"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((IntegerProperty) object).getName();
+ return label == null || label.length() == 0 ? getString("_UI_IntegerProperty_type")
+ : getString("_UI_IntegerProperty_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(IntegerProperty.class)) {
+ case RBACorePackage.INTEGER_PROPERTY__VALUE:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createComplexExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createIsTypeOf()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createObjectReference()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createPreviousModifier()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createGreaterThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createMuchGreaterThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createLowerThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createEqualToOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createComparisonAnd()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createAndOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createOrOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createNotOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createIsEqualToOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createIsGreaterThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createIsLowerThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createIsGreaterThanEqualOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createIsLowerThanEqualOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createPlusOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createImpliesOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createIsActive()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createGetAllocatables()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createHasBeenDisplayed()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createActiveState()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createObjectCompare()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createThatOfOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createMaxValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createMinValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createNoneValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createStandardValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createIntegerValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createLoserTypeExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createArbitrationPolicyExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createSizeOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createExistsOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createForAllOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createMaxOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createMinOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createSelectOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createSetOfOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createLambdaExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createIfStatement()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createIsOn()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createAllocatedContent()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createContentValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createGetContentsList()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createActiveContents()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createGetProperty()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createStateValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createHasComeLaterThan()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createHasComeEarlierThan()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createObjectCompareNot()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createIsAllocatedTo()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createIsChanged()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createIsTranslatedTo()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.INTEGER_PROPERTY__VALUE,
+ RBACoreFactory.eINSTANCE.createNullExpression()));
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/IntegerValueItemProvider.java b/rba.model.core.edit/src/rba/core/provider/IntegerValueItemProvider.java
new file mode 100644
index 0000000..4544ffd
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/IntegerValueItemProvider.java
@@ -0,0 +1,126 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import rba.core.ExpressionType;
+import rba.core.IntegerValue;
+import rba.core.RBACorePackage;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.IntegerValue} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class IntegerValueItemProvider extends ValueExpressionItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IntegerValueItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addValuePropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Value feature.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addValuePropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(), getString("_UI_IntegerValue_value_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_IntegerValue_value_feature",
+ "_UI_IntegerValue_type"),
+ RBACorePackage.Literals.INTEGER_VALUE__VALUE, true, false, false,
+ ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This returns IntegerValue.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/IntegerValue"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((IntegerValue) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_IntegerValue_type")
+ : getString("_UI_IntegerValue_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(IntegerValue.class)) {
+ case RBACorePackage.INTEGER_VALUE__VALUE:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/IsActiveItemProvider.java b/rba.model.core.edit/src/rba/core/provider/IsActiveItemProvider.java
new file mode 100644
index 0000000..3784293
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/IsActiveItemProvider.java
@@ -0,0 +1,100 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.IsActive;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.IsActive} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class IsActiveItemProvider extends ContentOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsActiveItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns IsActive.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/IsActive"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((IsActive) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_IsActive_type")
+ : getString("_UI_IsActive_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/IsAllocatedToItemProvider.java b/rba.model.core.edit/src/rba/core/provider/IsAllocatedToItemProvider.java
new file mode 100644
index 0000000..c533df5
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/IsAllocatedToItemProvider.java
@@ -0,0 +1,100 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.IsAllocatedTo;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.IsAllocatedTo} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class IsAllocatedToItemProvider extends ContentOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsAllocatedToItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns IsAllocatedTo.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/IsAllocatedTo"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((IsAllocatedTo) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_IsAllocatedTo_type")
+ : getString("_UI_IsAllocatedTo_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/IsCanceledItemProvider.java b/rba.model.core.edit/src/rba/core/provider/IsCanceledItemProvider.java
new file mode 100644
index 0000000..25ecd49
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/IsCanceledItemProvider.java
@@ -0,0 +1,100 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.IsCanceled;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.IsCanceled} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class IsCanceledItemProvider extends ContentOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsCanceledItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns IsCanceled.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/IsCanceled"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((IsCanceled) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_IsCanceled_type")
+ : getString("_UI_IsCanceled_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/IsChangedItemProvider.java b/rba.model.core.edit/src/rba/core/provider/IsChangedItemProvider.java
new file mode 100644
index 0000000..7601e1c
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/IsChangedItemProvider.java
@@ -0,0 +1,100 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.IsChanged;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.IsChanged} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class IsChangedItemProvider extends AllocatableOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsChangedItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns IsChanged.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/IsChanged"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((IsChanged) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_IsChanged_type")
+ : getString("_UI_IsChanged_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/IsDisappearedItemProvider.java b/rba.model.core.edit/src/rba/core/provider/IsDisappearedItemProvider.java
new file mode 100644
index 0000000..b971be0
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/IsDisappearedItemProvider.java
@@ -0,0 +1,100 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.IsDisappeared;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.IsDisappeared} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class IsDisappearedItemProvider extends ContentOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsDisappearedItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns IsDisappeared.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/IsDisappeared"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((IsDisappeared) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_IsDisappeared_type")
+ : getString("_UI_IsDisappeared_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/IsEqualToOperatorItemProvider.java b/rba.model.core.edit/src/rba/core/provider/IsEqualToOperatorItemProvider.java
new file mode 100644
index 0000000..2e524aa
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/IsEqualToOperatorItemProvider.java
@@ -0,0 +1,100 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.IsEqualToOperator;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.IsEqualToOperator} object. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @generated
+ */
+public class IsEqualToOperatorItemProvider extends LogicalOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsEqualToOperatorItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns IsEqualToOperator.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/IsEqualToOperator"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((IsEqualToOperator) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_IsEqualToOperator_type")
+ : getString("_UI_IsEqualToOperator_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/IsGreaterThanEqualOperatorItemProvider.java b/rba.model.core.edit/src/rba/core/provider/IsGreaterThanEqualOperatorItemProvider.java
new file mode 100644
index 0000000..bb8e456
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/IsGreaterThanEqualOperatorItemProvider.java
@@ -0,0 +1,101 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.IsGreaterThanEqualOperator;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.IsGreaterThanEqualOperator} object.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+public class IsGreaterThanEqualOperatorItemProvider extends LogicalOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsGreaterThanEqualOperatorItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns IsGreaterThanEqualOperator.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/IsGreaterThanEqualOperator"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((IsGreaterThanEqualOperator) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_IsGreaterThanEqualOperator_type")
+ : getString("_UI_IsGreaterThanEqualOperator_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/IsGreaterThanOperatorItemProvider.java b/rba.model.core.edit/src/rba/core/provider/IsGreaterThanOperatorItemProvider.java
new file mode 100644
index 0000000..eefe3cf
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/IsGreaterThanOperatorItemProvider.java
@@ -0,0 +1,101 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.IsGreaterThanOperator;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.IsGreaterThanOperator} object.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+public class IsGreaterThanOperatorItemProvider extends LogicalOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsGreaterThanOperatorItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns IsGreaterThanOperator.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/IsGreaterThanOperator"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((IsGreaterThanOperator) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_IsGreaterThanOperator_type")
+ : getString("_UI_IsGreaterThanOperator_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/IsLowerThanEqualOperatorItemProvider.java b/rba.model.core.edit/src/rba/core/provider/IsLowerThanEqualOperatorItemProvider.java
new file mode 100644
index 0000000..fcadce2
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/IsLowerThanEqualOperatorItemProvider.java
@@ -0,0 +1,101 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.IsLowerThanEqualOperator;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.IsLowerThanEqualOperator} object.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+public class IsLowerThanEqualOperatorItemProvider extends LogicalOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsLowerThanEqualOperatorItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns IsLowerThanEqualOperator.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/IsLowerThanEqualOperator"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((IsLowerThanEqualOperator) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_IsLowerThanEqualOperator_type")
+ : getString("_UI_IsLowerThanEqualOperator_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/IsLowerThanOperatorItemProvider.java b/rba.model.core.edit/src/rba/core/provider/IsLowerThanOperatorItemProvider.java
new file mode 100644
index 0000000..d6b9138
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/IsLowerThanOperatorItemProvider.java
@@ -0,0 +1,101 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.IsLowerThanOperator;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.IsLowerThanOperator} object.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+public class IsLowerThanOperatorItemProvider extends LogicalOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsLowerThanOperatorItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns IsLowerThanOperator.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/IsLowerThanOperator"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((IsLowerThanOperator) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_IsLowerThanOperator_type")
+ : getString("_UI_IsLowerThanOperator_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/IsOnItemProvider.java b/rba.model.core.edit/src/rba/core/provider/IsOnItemProvider.java
new file mode 100644
index 0000000..f704d56
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/IsOnItemProvider.java
@@ -0,0 +1,100 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.IsOn;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.IsOn} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class IsOnItemProvider extends SceneOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsOnItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns IsOn.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/IsOn"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((IsOn) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_IsOn_type")
+ : getString("_UI_IsOn_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/IsTranslatedToItemProvider.java b/rba.model.core.edit/src/rba/core/provider/IsTranslatedToItemProvider.java
new file mode 100644
index 0000000..c86d512
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/IsTranslatedToItemProvider.java
@@ -0,0 +1,100 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.IsTranslatedTo;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.IsTranslatedTo} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class IsTranslatedToItemProvider extends AllocatableOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsTranslatedToItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns IsTranslatedTo.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/IsTranslatedTo"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((IsTranslatedTo) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_IsTranslatedTo_type")
+ : getString("_UI_IsTranslatedTo_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/IsTypeOfItemProvider.java b/rba.model.core.edit/src/rba/core/provider/IsTypeOfItemProvider.java
new file mode 100644
index 0000000..902e71d
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/IsTypeOfItemProvider.java
@@ -0,0 +1,124 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import rba.core.IsTypeOf;
+import rba.core.RBACorePackage;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.IsTypeOf} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class IsTypeOfItemProvider extends OperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsTypeOfItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addTagNamePropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Tag Name feature.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addTagNamePropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(), getString("_UI_IsTypeOf_tagName_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_IsTypeOf_tagName_feature",
+ "_UI_IsTypeOf_type"),
+ RBACorePackage.Literals.IS_TYPE_OF__TAG_NAME, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This returns IsTypeOf.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/IsTypeOf"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((IsTypeOf) object).getTagName();
+ return label == null || label.length() == 0 ? getString("_UI_IsTypeOf_type")
+ : getString("_UI_IsTypeOf_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(IsTypeOf.class)) {
+ case RBACorePackage.IS_TYPE_OF__TAG_NAME:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/LambdaContextItemProvider.java b/rba.model.core.edit/src/rba/core/provider/LambdaContextItemProvider.java
new file mode 100644
index 0000000..62f6a6e
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/LambdaContextItemProvider.java
@@ -0,0 +1,153 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import rba.core.ExpressionType;
+import rba.core.LambdaContext;
+import rba.core.RBACoreFactory;
+import rba.core.RBACorePackage;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.LambdaContext} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class LambdaContextItemProvider extends SetOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public LambdaContextItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(RBACorePackage.Literals.LAMBDA_CONTEXT__LAMBDA);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((LambdaContext) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_LambdaContext_type")
+ : getString("_UI_LambdaContext_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(LambdaContext.class)) {
+ case RBACorePackage.LAMBDA_CONTEXT__LAMBDA:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_CONTEXT__LAMBDA,
+ RBACoreFactory.eINSTANCE.createLambdaExpression()));
+ }
+
+ /**
+ * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
+ Object childFeature = feature;
+ Object childObject = child;
+
+ boolean qualify = childFeature == RBACorePackage.Literals.OPERATOR__OPERAND
+ || childFeature == RBACorePackage.Literals.LAMBDA_CONTEXT__LAMBDA;
+
+ if (qualify) {
+ return getString("_UI_CreateChild_text2",
+ new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+ }
+ return super.getCreateChildText(owner, feature, child, selection);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/LambdaExpressionItemProvider.java b/rba.model.core.edit/src/rba/core/provider/LambdaExpressionItemProvider.java
new file mode 100644
index 0000000..fed0eee
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/LambdaExpressionItemProvider.java
@@ -0,0 +1,309 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import rba.core.ExpressionType;
+import rba.core.LambdaExpression;
+import rba.core.RBACoreFactory;
+import rba.core.RBACorePackage;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.LambdaExpression} object. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @generated
+ */
+public class LambdaExpressionItemProvider extends ExpressionItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public LambdaExpressionItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(RBACorePackage.Literals.LAMBDA_EXPRESSION__X);
+ childrenFeatures.add(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns LambdaExpression.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/LambdaExpression"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((LambdaExpression) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_LambdaExpression_type")
+ : getString("_UI_LambdaExpression_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(LambdaExpression.class)) {
+ case RBACorePackage.LAMBDA_EXPRESSION__X:
+ case RBACorePackage.LAMBDA_EXPRESSION__BODY_TEXT:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__X,
+ RBACoreFactory.eINSTANCE.createVariable()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createComplexExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createIsTypeOf()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createObjectReference()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createPreviousModifier()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createGreaterThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createMuchGreaterThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createLowerThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createEqualToOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createComparisonAnd()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createAndOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createOrOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createNotOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createIsEqualToOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createIsGreaterThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createIsLowerThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createIsGreaterThanEqualOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createIsLowerThanEqualOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createPlusOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createImpliesOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createIsActive()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createGetAllocatables()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createHasBeenDisplayed()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createActiveState()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createObjectCompare()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createThatOfOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createMaxValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createMinValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createNoneValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createStandardValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createIntegerValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createLoserTypeExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createArbitrationPolicyExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createSizeOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createExistsOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createForAllOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createMaxOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createMinOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createSelectOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createSetOfOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createLambdaExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createIfStatement()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createIsOn()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createAllocatedContent()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createContentValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createGetContentsList()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createActiveContents()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createGetProperty()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createStateValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createHasComeLaterThan()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createHasComeEarlierThan()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createObjectCompareNot()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createIsAllocatedTo()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createIsChanged()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createIsTranslatedTo()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT,
+ RBACoreFactory.eINSTANCE.createNullExpression()));
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/LetStatementItemProvider.java b/rba.model.core.edit/src/rba/core/provider/LetStatementItemProvider.java
new file mode 100644
index 0000000..d525d70
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/LetStatementItemProvider.java
@@ -0,0 +1,130 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.LetStatement;
+import rba.core.RBACorePackage;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.LetStatement} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class LetStatementItemProvider extends ModelElementItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public LetStatementItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addVariablePropertyDescriptor(object);
+ addBodyPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Variable feature.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addVariablePropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(), getString("_UI_LetStatement_variable_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_LetStatement_variable_feature",
+ "_UI_LetStatement_type"),
+ RBACorePackage.Literals.LET_STATEMENT__VARIABLE, true, false, true, null, null, null));
+ }
+
+ /**
+ * This adds a property descriptor for the Body feature.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addBodyPropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(), getString("_UI_LetStatement_body_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_LetStatement_body_feature",
+ "_UI_LetStatement_type"),
+ RBACorePackage.Literals.LET_STATEMENT__BODY, true, false, true, null, null, null));
+ }
+
+ /**
+ * This returns LetStatement.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/LetStatement"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((LetStatement) object).getDescription();
+ return label == null || label.length() == 0 ? getString("_UI_LetStatement_type")
+ : getString("_UI_LetStatement_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/LogicalOperatorItemProvider.java b/rba.model.core.edit/src/rba/core/provider/LogicalOperatorItemProvider.java
new file mode 100644
index 0000000..1efa485
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/LogicalOperatorItemProvider.java
@@ -0,0 +1,90 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.LogicalOperator;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.LogicalOperator} object. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @generated
+ */
+public class LogicalOperatorItemProvider extends OperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public LogicalOperatorItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((LogicalOperator) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_LogicalOperator_type")
+ : getString("_UI_LogicalOperator_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/LoserTypeExpressionItemProvider.java b/rba.model.core.edit/src/rba/core/provider/LoserTypeExpressionItemProvider.java
new file mode 100644
index 0000000..b5abed8
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/LoserTypeExpressionItemProvider.java
@@ -0,0 +1,127 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import rba.core.ExpressionType;
+import rba.core.LoserTypeExpression;
+import rba.core.RBACorePackage;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.LoserTypeExpression} object.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+public class LoserTypeExpressionItemProvider extends EnumExpressionItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public LoserTypeExpressionItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addValuePropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Value feature.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addValuePropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(), getString("_UI_LoserTypeExpression_value_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_LoserTypeExpression_value_feature",
+ "_UI_LoserTypeExpression_type"),
+ RBACorePackage.Literals.LOSER_TYPE_EXPRESSION__VALUE, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This returns LoserTypeExpression.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/LoserTypeExpression"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((LoserTypeExpression) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_LoserTypeExpression_type")
+ : getString("_UI_LoserTypeExpression_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(LoserTypeExpression.class)) {
+ case RBACorePackage.LOSER_TYPE_EXPRESSION__VALUE:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/LowerThanOperatorItemProvider.java b/rba.model.core.edit/src/rba/core/provider/LowerThanOperatorItemProvider.java
new file mode 100644
index 0000000..75b2de6
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/LowerThanOperatorItemProvider.java
@@ -0,0 +1,100 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.LowerThanOperator;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.LowerThanOperator} object. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @generated
+ */
+public class LowerThanOperatorItemProvider extends ComparisonOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public LowerThanOperatorItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns LowerThanOperator.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/LowerThanOperator"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((LowerThanOperator) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_LowerThanOperator_type")
+ : getString("_UI_LowerThanOperator_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/MaxOperatorItemProvider.java b/rba.model.core.edit/src/rba/core/provider/MaxOperatorItemProvider.java
new file mode 100644
index 0000000..815fa03
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/MaxOperatorItemProvider.java
@@ -0,0 +1,122 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.MaxOperator;
+import rba.core.RBACorePackage;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.MaxOperator} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class MaxOperatorItemProvider extends LambdaContextItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public MaxOperatorItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns MaxOperator.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/MaxOperator"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((MaxOperator) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_MaxOperator_type")
+ : getString("_UI_MaxOperator_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
+ Object childFeature = feature;
+ Object childObject = child;
+
+ boolean qualify = childFeature == RBACorePackage.Literals.OPERATOR__OPERAND
+ || childFeature == RBACorePackage.Literals.LAMBDA_CONTEXT__LAMBDA;
+
+ if (qualify) {
+ return getString("_UI_CreateChild_text2",
+ new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+ }
+ return super.getCreateChildText(owner, feature, child, selection);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/MaxValueItemProvider.java b/rba.model.core.edit/src/rba/core/provider/MaxValueItemProvider.java
new file mode 100644
index 0000000..fceb368
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/MaxValueItemProvider.java
@@ -0,0 +1,100 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.MaxValue;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.MaxValue} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class MaxValueItemProvider extends ValueExpressionItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public MaxValueItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns MaxValue.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/MaxValue"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((MaxValue) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_MaxValue_type")
+ : getString("_UI_MaxValue_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/MinOperatorItemProvider.java b/rba.model.core.edit/src/rba/core/provider/MinOperatorItemProvider.java
new file mode 100644
index 0000000..92db2fc
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/MinOperatorItemProvider.java
@@ -0,0 +1,122 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.MinOperator;
+import rba.core.RBACorePackage;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.MinOperator} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class MinOperatorItemProvider extends LambdaContextItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public MinOperatorItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns MinOperator.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/MinOperator"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((MinOperator) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_MinOperator_type")
+ : getString("_UI_MinOperator_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
+ Object childFeature = feature;
+ Object childObject = child;
+
+ boolean qualify = childFeature == RBACorePackage.Literals.OPERATOR__OPERAND
+ || childFeature == RBACorePackage.Literals.LAMBDA_CONTEXT__LAMBDA;
+
+ if (qualify) {
+ return getString("_UI_CreateChild_text2",
+ new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+ }
+ return super.getCreateChildText(owner, feature, child, selection);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/MinValueItemProvider.java b/rba.model.core.edit/src/rba/core/provider/MinValueItemProvider.java
new file mode 100644
index 0000000..3593355
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/MinValueItemProvider.java
@@ -0,0 +1,100 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.MinValue;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.MinValue} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class MinValueItemProvider extends ValueExpressionItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public MinValueItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns MinValue.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/MinValue"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((MinValue) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_MinValue_type")
+ : getString("_UI_MinValue_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/ModelElementItemProvider.java b/rba.model.core.edit/src/rba/core/provider/ModelElementItemProvider.java
new file mode 100644
index 0000000..f120720
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/ModelElementItemProvider.java
@@ -0,0 +1,133 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import rba.core.ModelElement;
+import rba.core.RBACorePackage;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.ModelElement} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class ModelElementItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider,
+ IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ModelElementItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addDescriptionPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Description feature.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addDescriptionPropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(), getString("_UI_ModelElement_description_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_ModelElement_description_feature",
+ "_UI_ModelElement_type"),
+ RBACorePackage.Literals.MODEL_ELEMENT__DESCRIPTION, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((ModelElement) object).getDescription();
+ return label == null || label.length() == 0 ? getString("_UI_ModelElement_type")
+ : getString("_UI_ModelElement_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(ModelElement.class)) {
+ case RBACorePackage.MODEL_ELEMENT__DESCRIPTION:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return RbaCoreEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/MuchGreaterThanOperatorItemProvider.java b/rba.model.core.edit/src/rba/core/provider/MuchGreaterThanOperatorItemProvider.java
new file mode 100644
index 0000000..3ba06a7
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/MuchGreaterThanOperatorItemProvider.java
@@ -0,0 +1,101 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.MuchGreaterThanOperator;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.MuchGreaterThanOperator} object.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+public class MuchGreaterThanOperatorItemProvider extends ComparisonOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public MuchGreaterThanOperatorItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns MuchGreaterThanOperator.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/MuchGreaterThanOperator"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((MuchGreaterThanOperator) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_MuchGreaterThanOperator_type")
+ : getString("_UI_MuchGreaterThanOperator_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/NamedElementItemProvider.java b/rba.model.core.edit/src/rba/core/provider/NamedElementItemProvider.java
new file mode 100644
index 0000000..3b38ec5
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/NamedElementItemProvider.java
@@ -0,0 +1,114 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import rba.core.NamedElement;
+import rba.core.RBACorePackage;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.NamedElement} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class NamedElementItemProvider extends ModelElementItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public NamedElementItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addNamePropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Name feature.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addNamePropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(), getString("_UI_NamedElement_name_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_name_feature",
+ "_UI_NamedElement_type"),
+ RBACorePackage.Literals.NAMED_ELEMENT__NAME, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((NamedElement) object).getName();
+ return label == null || label.length() == 0 ? getString("_UI_NamedElement_type")
+ : getString("_UI_NamedElement_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(NamedElement.class)) {
+ case RBACorePackage.NAMED_ELEMENT__NAME:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/NoneValueItemProvider.java b/rba.model.core.edit/src/rba/core/provider/NoneValueItemProvider.java
new file mode 100644
index 0000000..40aec45
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/NoneValueItemProvider.java
@@ -0,0 +1,100 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.NoneValue;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.NoneValue} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class NoneValueItemProvider extends ValueExpressionItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public NoneValueItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns NoneValue.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/NoneValue"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((NoneValue) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_NoneValue_type")
+ : getString("_UI_NoneValue_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/NotOperatorItemProvider.java b/rba.model.core.edit/src/rba/core/provider/NotOperatorItemProvider.java
new file mode 100644
index 0000000..fc4264b
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/NotOperatorItemProvider.java
@@ -0,0 +1,100 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.NotOperator;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.NotOperator} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class NotOperatorItemProvider extends LogicalOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public NotOperatorItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns NotOperator.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/NotOperator"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((NotOperator) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_NotOperator_type")
+ : getString("_UI_NotOperator_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/NullExpressionItemProvider.java b/rba.model.core.edit/src/rba/core/provider/NullExpressionItemProvider.java
new file mode 100644
index 0000000..c81faec
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/NullExpressionItemProvider.java
@@ -0,0 +1,108 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.NullExpression;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.NullExpression} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class NullExpressionItemProvider extends ExpressionItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NullExpressionItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns NullExpression.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/NullExpression"));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((NullExpression) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_NullExpression_type")
+ : getString("_UI_NullExpression_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/ObjectCompareItemProvider.java b/rba.model.core.edit/src/rba/core/provider/ObjectCompareItemProvider.java
new file mode 100644
index 0000000..0b1e9a4
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/ObjectCompareItemProvider.java
@@ -0,0 +1,100 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.ObjectCompare;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.ObjectCompare} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class ObjectCompareItemProvider extends OperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ObjectCompareItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns ObjectCompare.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/ObjectCompare"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((ObjectCompare) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_ObjectCompare_type")
+ : getString("_UI_ObjectCompare_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/ObjectCompareNotItemProvider.java b/rba.model.core.edit/src/rba/core/provider/ObjectCompareNotItemProvider.java
new file mode 100644
index 0000000..1bcc1c4
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/ObjectCompareNotItemProvider.java
@@ -0,0 +1,100 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.ObjectCompareNot;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.ObjectCompareNot} object. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @generated
+ */
+public class ObjectCompareNotItemProvider extends OperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ObjectCompareNotItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns ObjectCompareNot.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/ObjectCompareNot"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((ObjectCompareNot) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_ObjectCompareNot_type")
+ : getString("_UI_ObjectCompareNot_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/ObjectReferenceItemProvider.java b/rba.model.core.edit/src/rba/core/provider/ObjectReferenceItemProvider.java
new file mode 100644
index 0000000..8a9ec37
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/ObjectReferenceItemProvider.java
@@ -0,0 +1,117 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.ObjectReference;
+import rba.core.RBACorePackage;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.ObjectReference} object. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @generated
+ */
+public class ObjectReferenceItemProvider extends ExpressionItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ObjectReferenceItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addRefObjectPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Ref Object feature.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addRefObjectPropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(), getString("_UI_ObjectReference_refObject_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_ObjectReference_refObject_feature",
+ "_UI_ObjectReference_type"),
+ RBACorePackage.Literals.OBJECT_REFERENCE__REF_OBJECT, true, false, true, null, null, null));
+ }
+
+ /**
+ * This returns ObjectReference.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/ObjectReference"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((ObjectReference) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_ObjectReference_type")
+ : getString("_UI_ObjectReference_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/OffSceneItemProvider.java b/rba.model.core.edit/src/rba/core/provider/OffSceneItemProvider.java
new file mode 100644
index 0000000..3936e07
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/OffSceneItemProvider.java
@@ -0,0 +1,100 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.OffScene;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.OffScene} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class OffSceneItemProvider extends SceneOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public OffSceneItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns OffScene.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/OffScene"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((OffScene) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_OffScene_type")
+ : getString("_UI_OffScene_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/OnSceneItemProvider.java b/rba.model.core.edit/src/rba/core/provider/OnSceneItemProvider.java
new file mode 100644
index 0000000..f9a650d
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/OnSceneItemProvider.java
@@ -0,0 +1,100 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.OnScene;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.OnScene} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class OnSceneItemProvider extends SceneOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public OnSceneItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns OnScene.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/OnScene"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((OnScene) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_OnScene_type")
+ : getString("_UI_OnScene_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/OperatorItemProvider.java b/rba.model.core.edit/src/rba/core/provider/OperatorItemProvider.java
new file mode 100644
index 0000000..f660cd3
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/OperatorItemProvider.java
@@ -0,0 +1,294 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import rba.core.ExpressionType;
+import rba.core.Operator;
+import rba.core.RBACoreFactory;
+import rba.core.RBACorePackage;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.Operator} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class OperatorItemProvider extends ExpressionItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public OperatorItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(RBACorePackage.Literals.OPERATOR__OPERAND);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((Operator) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_Operator_type")
+ : getString("_UI_Operator_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(Operator.class)) {
+ case RBACorePackage.OPERATOR__OPERAND:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createComplexExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createIsTypeOf()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createObjectReference()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createPreviousModifier()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createGreaterThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createMuchGreaterThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createLowerThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createEqualToOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createComparisonAnd()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createAndOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createOrOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createNotOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createIsEqualToOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createIsGreaterThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createIsLowerThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createIsGreaterThanEqualOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createIsLowerThanEqualOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createPlusOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createImpliesOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createIsActive()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createGetAllocatables()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createHasBeenDisplayed()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createActiveState()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createObjectCompare()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createThatOfOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createMaxValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createMinValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createNoneValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createStandardValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createIntegerValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createLoserTypeExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createArbitrationPolicyExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createSizeOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createExistsOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createForAllOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createMaxOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createMinOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createSelectOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createSetOfOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createLambdaExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createIfStatement()));
+
+ newChildDescriptors.add(
+ createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND, RBACoreFactory.eINSTANCE.createIsOn()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createAllocatedContent()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createContentValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createGetContentsList()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createActiveContents()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createGetProperty()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createStateValue()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createHasComeLaterThan()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createHasComeEarlierThan()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createObjectCompareNot()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createIsAllocatedTo()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createIsChanged()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createIsTranslatedTo()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBACoreFactory.eINSTANCE.createNullExpression()));
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/OrOperatorItemProvider.java b/rba.model.core.edit/src/rba/core/provider/OrOperatorItemProvider.java
new file mode 100644
index 0000000..1bf98f4
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/OrOperatorItemProvider.java
@@ -0,0 +1,100 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.OrOperator;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.OrOperator} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class OrOperatorItemProvider extends LogicalOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public OrOperatorItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns OrOperator.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/OrOperator"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((OrOperator) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_OrOperator_type")
+ : getString("_UI_OrOperator_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/PackagableElementItemProvider.java b/rba.model.core.edit/src/rba/core/provider/PackagableElementItemProvider.java
new file mode 100644
index 0000000..a447297
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/PackagableElementItemProvider.java
@@ -0,0 +1,88 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.PackagableElement;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.PackagableElement} object. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @generated
+ */
+public class PackagableElementItemProvider extends NamedElementItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public PackagableElementItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((PackagableElement) object).getName();
+ return label == null || label.length() == 0 ? getString("_UI_PackagableElement_type")
+ : getString("_UI_PackagableElement_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/PackageItemProvider.java b/rba.model.core.edit/src/rba/core/provider/PackageItemProvider.java
new file mode 100644
index 0000000..0bf5eda
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/PackageItemProvider.java
@@ -0,0 +1,157 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import rba.core.RBACoreFactory;
+import rba.core.RBACorePackage;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.Package} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class PackageItemProvider extends PackagableElementItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public PackageItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(RBACorePackage.Literals.PACKAGE__PACKAGABLEELEMENT);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns Package.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/Package"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((rba.core.Package) object).getName();
+ return label == null || label.length() == 0 ? getString("_UI_Package_type")
+ : getString("_UI_Package_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(rba.core.Package.class)) {
+ case RBACorePackage.PACKAGE__PACKAGABLEELEMENT:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.PACKAGE__PACKAGABLEELEMENT,
+ RBACoreFactory.eINSTANCE.createPackage()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.PACKAGE__PACKAGABLEELEMENT,
+ RBACoreFactory.eINSTANCE.createProject()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.PACKAGE__PACKAGABLEELEMENT,
+ RBACoreFactory.eINSTANCE.createStereotype()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.PACKAGE__PACKAGABLEELEMENT,
+ RBACoreFactory.eINSTANCE.createScene()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.PACKAGE__PACKAGABLEELEMENT,
+ RBACoreFactory.eINSTANCE.createIntegerProperty()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.PACKAGE__PACKAGABLEELEMENT,
+ RBACoreFactory.eINSTANCE.createConstraint()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.PACKAGE__PACKAGABLEELEMENT,
+ RBACoreFactory.eINSTANCE.createVariable()));
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/PlusOperatorItemProvider.java b/rba.model.core.edit/src/rba/core/provider/PlusOperatorItemProvider.java
new file mode 100644
index 0000000..a02ec94
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/PlusOperatorItemProvider.java
@@ -0,0 +1,100 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.PlusOperator;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.PlusOperator} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class PlusOperatorItemProvider extends ArithmeticOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public PlusOperatorItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns PlusOperator.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/PlusOperator"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((PlusOperator) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_PlusOperator_type")
+ : getString("_UI_PlusOperator_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/PreviousModifierItemProvider.java b/rba.model.core.edit/src/rba/core/provider/PreviousModifierItemProvider.java
new file mode 100644
index 0000000..5611c47
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/PreviousModifierItemProvider.java
@@ -0,0 +1,142 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import rba.core.ExpressionType;
+import rba.core.PreviousModifier;
+import rba.core.RBACoreFactory;
+import rba.core.RBACorePackage;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.PreviousModifier} object. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @generated
+ */
+public class PreviousModifierItemProvider extends ExpressionItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public PreviousModifierItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(RBACorePackage.Literals.PREVIOUS_MODIFIER__OBJ_REFERENCE);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns PreviousModifier.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/PreviousModifier"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((PreviousModifier) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_PreviousModifier_type")
+ : getString("_UI_PreviousModifier_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(PreviousModifier.class)) {
+ case RBACorePackage.PREVIOUS_MODIFIER__OBJ_REFERENCE:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.PREVIOUS_MODIFIER__OBJ_REFERENCE,
+ RBACoreFactory.eINSTANCE.createObjectReference()));
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/ProjectItemProvider.java b/rba.model.core.edit/src/rba/core/provider/ProjectItemProvider.java
new file mode 100644
index 0000000..f17a09e
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/ProjectItemProvider.java
@@ -0,0 +1,143 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import rba.core.Project;
+import rba.core.RBACorePackage;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.Project} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class ProjectItemProvider extends PackageItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ProjectItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addVersionPropertyDescriptor(object);
+ addDummyNamePropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Version feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addVersionPropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(), getString("_UI_Project_version_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_Project_version_feature",
+ "_UI_Project_type"),
+ RBACorePackage.Literals.PROJECT__VERSION, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This adds a property descriptor for the Dummy Name feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addDummyNamePropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(), getString("_UI_Project_dummyName_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_Project_dummyName_feature",
+ "_UI_Project_type"),
+ RBACorePackage.Literals.PROJECT__DUMMY_NAME, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This returns Project.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/Project"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((Project) object).getName();
+ return label == null || label.length() == 0 ? getString("_UI_Project_type")
+ : getString("_UI_Project_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(Project.class)) {
+ case RBACorePackage.PROJECT__VERSION:
+ case RBACorePackage.PROJECT__DUMMY_NAME:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/PropertyOperatorItemProvider.java b/rba.model.core.edit/src/rba/core/provider/PropertyOperatorItemProvider.java
new file mode 100644
index 0000000..118c92b
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/PropertyOperatorItemProvider.java
@@ -0,0 +1,90 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.PropertyOperator;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.PropertyOperator} object. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @generated
+ */
+public class PropertyOperatorItemProvider extends OperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public PropertyOperatorItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((PropertyOperator) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_PropertyOperator_type")
+ : getString("_UI_PropertyOperator_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/RBACoreItemProviderAdapterFactory.java b/rba.model.core.edit/src/rba/core/provider/RBACoreItemProviderAdapterFactory.java
new file mode 100644
index 0000000..86f302d
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/RBACoreItemProviderAdapterFactory.java
@@ -0,0 +1,1726 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.edit.provider.ChangeNotifier;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.IChangeNotifier;
+import org.eclipse.emf.edit.provider.IDisposable;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.INotifyChangedListener;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+import rba.core.util.RBACoreAdapterFactory;
+
+/**
+ * This is the factory that is used to provide the interfaces needed to support Viewers.
+ * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
+ * The adapters also support Eclipse property sheets.
+ * Note that most of the adapters are shared among multiple instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+public class RBACoreItemProviderAdapterFactory extends RBACoreAdapterFactory
+ implements ComposeableAdapterFactory, IChangeNotifier, IDisposable {
+ /**
+ * This keeps track of the root adapter factory that delegates to this adapter factory.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected ComposedAdapterFactory parentAdapterFactory;
+
+ /**
+ * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected IChangeNotifier changeNotifier = new ChangeNotifier();
+
+ /**
+ * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
+ * <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<Object> supportedTypes = new ArrayList<Object>();
+
+ /**
+ * This constructs an instance.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public RBACoreItemProviderAdapterFactory() {
+ supportedTypes.add(IEditingDomainItemProvider.class);
+ supportedTypes.add(IStructuredItemContentProvider.class);
+ supportedTypes.add(ITreeItemContentProvider.class);
+ supportedTypes.add(IItemLabelProvider.class);
+ supportedTypes.add(IItemPropertySource.class);
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.Project} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected ProjectItemProvider projectItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.Project}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createProjectAdapter() {
+ if (projectItemProvider == null) {
+ projectItemProvider = new ProjectItemProvider(this);
+ }
+
+ return projectItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.Package} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected PackageItemProvider packageItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.Package}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createPackageAdapter() {
+ if (packageItemProvider == null) {
+ packageItemProvider = new PackageItemProvider(this);
+ }
+
+ return packageItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.Stereotype} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected StereotypeItemProvider stereotypeItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.Stereotype}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createStereotypeAdapter() {
+ if (stereotypeItemProvider == null) {
+ stereotypeItemProvider = new StereotypeItemProvider(this);
+ }
+
+ return stereotypeItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.Tag} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TagItemProvider tagItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.Tag}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createTagAdapter() {
+ if (tagItemProvider == null) {
+ tagItemProvider = new TagItemProvider(this);
+ }
+
+ return tagItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.Scene} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected SceneItemProvider sceneItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.Scene}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createSceneAdapter() {
+ if (sceneItemProvider == null) {
+ sceneItemProvider = new SceneItemProvider(this);
+ }
+
+ return sceneItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.IntegerProperty} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected IntegerPropertyItemProvider integerPropertyItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.IntegerProperty}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createIntegerPropertyAdapter() {
+ if (integerPropertyItemProvider == null) {
+ integerPropertyItemProvider = new IntegerPropertyItemProvider(this);
+ }
+
+ return integerPropertyItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.Constraint} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected ConstraintItemProvider constraintItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.Constraint}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createConstraintAdapter() {
+ if (constraintItemProvider == null) {
+ constraintItemProvider = new ConstraintItemProvider(this);
+ }
+
+ return constraintItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.LetStatement} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected LetStatementItemProvider letStatementItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.LetStatement}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createLetStatementAdapter() {
+ if (letStatementItemProvider == null) {
+ letStatementItemProvider = new LetStatementItemProvider(this);
+ }
+
+ return letStatementItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.ComplexExpression} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ComplexExpressionItemProvider complexExpressionItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.ComplexExpression}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createComplexExpressionAdapter() {
+ if (complexExpressionItemProvider == null) {
+ complexExpressionItemProvider = new ComplexExpressionItemProvider(this);
+ }
+
+ return complexExpressionItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.IsTypeOf} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected IsTypeOfItemProvider isTypeOfItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.IsTypeOf}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createIsTypeOfAdapter() {
+ if (isTypeOfItemProvider == null) {
+ isTypeOfItemProvider = new IsTypeOfItemProvider(this);
+ }
+
+ return isTypeOfItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.ObjectReference} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected ObjectReferenceItemProvider objectReferenceItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.ObjectReference}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createObjectReferenceAdapter() {
+ if (objectReferenceItemProvider == null) {
+ objectReferenceItemProvider = new ObjectReferenceItemProvider(this);
+ }
+
+ return objectReferenceItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.PreviousModifier} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PreviousModifierItemProvider previousModifierItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.PreviousModifier}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createPreviousModifierAdapter() {
+ if (previousModifierItemProvider == null) {
+ previousModifierItemProvider = new PreviousModifierItemProvider(this);
+ }
+
+ return previousModifierItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.GreaterThanOperator} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected GreaterThanOperatorItemProvider greaterThanOperatorItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.GreaterThanOperator}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createGreaterThanOperatorAdapter() {
+ if (greaterThanOperatorItemProvider == null) {
+ greaterThanOperatorItemProvider = new GreaterThanOperatorItemProvider(this);
+ }
+
+ return greaterThanOperatorItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.MuchGreaterThanOperator} instances.
+ * <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected MuchGreaterThanOperatorItemProvider muchGreaterThanOperatorItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.MuchGreaterThanOperator}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createMuchGreaterThanOperatorAdapter() {
+ if (muchGreaterThanOperatorItemProvider == null) {
+ muchGreaterThanOperatorItemProvider = new MuchGreaterThanOperatorItemProvider(this);
+ }
+
+ return muchGreaterThanOperatorItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.LowerThanOperator} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LowerThanOperatorItemProvider lowerThanOperatorItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.LowerThanOperator}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createLowerThanOperatorAdapter() {
+ if (lowerThanOperatorItemProvider == null) {
+ lowerThanOperatorItemProvider = new LowerThanOperatorItemProvider(this);
+ }
+
+ return lowerThanOperatorItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.EqualToOperator} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected EqualToOperatorItemProvider equalToOperatorItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.EqualToOperator}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createEqualToOperatorAdapter() {
+ if (equalToOperatorItemProvider == null) {
+ equalToOperatorItemProvider = new EqualToOperatorItemProvider(this);
+ }
+
+ return equalToOperatorItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.ComparisonAnd} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected ComparisonAndItemProvider comparisonAndItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.ComparisonAnd}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createComparisonAndAdapter() {
+ if (comparisonAndItemProvider == null) {
+ comparisonAndItemProvider = new ComparisonAndItemProvider(this);
+ }
+
+ return comparisonAndItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.AndOperator} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected AndOperatorItemProvider andOperatorItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.AndOperator}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createAndOperatorAdapter() {
+ if (andOperatorItemProvider == null) {
+ andOperatorItemProvider = new AndOperatorItemProvider(this);
+ }
+
+ return andOperatorItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.OrOperator} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected OrOperatorItemProvider orOperatorItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.OrOperator}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createOrOperatorAdapter() {
+ if (orOperatorItemProvider == null) {
+ orOperatorItemProvider = new OrOperatorItemProvider(this);
+ }
+
+ return orOperatorItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.NotOperator} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected NotOperatorItemProvider notOperatorItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.NotOperator}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createNotOperatorAdapter() {
+ if (notOperatorItemProvider == null) {
+ notOperatorItemProvider = new NotOperatorItemProvider(this);
+ }
+
+ return notOperatorItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.IsEqualToOperator} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IsEqualToOperatorItemProvider isEqualToOperatorItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.IsEqualToOperator}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createIsEqualToOperatorAdapter() {
+ if (isEqualToOperatorItemProvider == null) {
+ isEqualToOperatorItemProvider = new IsEqualToOperatorItemProvider(this);
+ }
+
+ return isEqualToOperatorItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.IsGreaterThanOperator} instances.
+ * <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected IsGreaterThanOperatorItemProvider isGreaterThanOperatorItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.IsGreaterThanOperator}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createIsGreaterThanOperatorAdapter() {
+ if (isGreaterThanOperatorItemProvider == null) {
+ isGreaterThanOperatorItemProvider = new IsGreaterThanOperatorItemProvider(this);
+ }
+
+ return isGreaterThanOperatorItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.IsLowerThanOperator} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IsLowerThanOperatorItemProvider isLowerThanOperatorItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.IsLowerThanOperator}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createIsLowerThanOperatorAdapter() {
+ if (isLowerThanOperatorItemProvider == null) {
+ isLowerThanOperatorItemProvider = new IsLowerThanOperatorItemProvider(this);
+ }
+
+ return isLowerThanOperatorItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.IsGreaterThanEqualOperator} instances. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected IsGreaterThanEqualOperatorItemProvider isGreaterThanEqualOperatorItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.IsGreaterThanEqualOperator}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createIsGreaterThanEqualOperatorAdapter() {
+ if (isGreaterThanEqualOperatorItemProvider == null) {
+ isGreaterThanEqualOperatorItemProvider = new IsGreaterThanEqualOperatorItemProvider(this);
+ }
+
+ return isGreaterThanEqualOperatorItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.IsLowerThanEqualOperator} instances.
+ * <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected IsLowerThanEqualOperatorItemProvider isLowerThanEqualOperatorItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.IsLowerThanEqualOperator}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createIsLowerThanEqualOperatorAdapter() {
+ if (isLowerThanEqualOperatorItemProvider == null) {
+ isLowerThanEqualOperatorItemProvider = new IsLowerThanEqualOperatorItemProvider(this);
+ }
+
+ return isLowerThanEqualOperatorItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.PlusOperator} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected PlusOperatorItemProvider plusOperatorItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.PlusOperator}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createPlusOperatorAdapter() {
+ if (plusOperatorItemProvider == null) {
+ plusOperatorItemProvider = new PlusOperatorItemProvider(this);
+ }
+
+ return plusOperatorItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.ImpliesOperator} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected ImpliesOperatorItemProvider impliesOperatorItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.ImpliesOperator}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createImpliesOperatorAdapter() {
+ if (impliesOperatorItemProvider == null) {
+ impliesOperatorItemProvider = new ImpliesOperatorItemProvider(this);
+ }
+
+ return impliesOperatorItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.IsActive} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected IsActiveItemProvider isActiveItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.IsActive}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createIsActiveAdapter() {
+ if (isActiveItemProvider == null) {
+ isActiveItemProvider = new IsActiveItemProvider(this);
+ }
+
+ return isActiveItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.GetAllocatables} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected GetAllocatablesItemProvider getAllocatablesItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.GetAllocatables}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createGetAllocatablesAdapter() {
+ if (getAllocatablesItemProvider == null) {
+ getAllocatablesItemProvider = new GetAllocatablesItemProvider(this);
+ }
+
+ return getAllocatablesItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.HasBeenDisplayed} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected HasBeenDisplayedItemProvider hasBeenDisplayedItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.HasBeenDisplayed}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createHasBeenDisplayedAdapter() {
+ if (hasBeenDisplayedItemProvider == null) {
+ hasBeenDisplayedItemProvider = new HasBeenDisplayedItemProvider(this);
+ }
+
+ return hasBeenDisplayedItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.ActiveState} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected ActiveStateItemProvider activeStateItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.ActiveState}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createActiveStateAdapter() {
+ if (activeStateItemProvider == null) {
+ activeStateItemProvider = new ActiveStateItemProvider(this);
+ }
+
+ return activeStateItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.ObjectCompare} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected ObjectCompareItemProvider objectCompareItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.ObjectCompare}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createObjectCompareAdapter() {
+ if (objectCompareItemProvider == null) {
+ objectCompareItemProvider = new ObjectCompareItemProvider(this);
+ }
+
+ return objectCompareItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.ThatOfOperator} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected ThatOfOperatorItemProvider thatOfOperatorItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.ThatOfOperator}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createThatOfOperatorAdapter() {
+ if (thatOfOperatorItemProvider == null) {
+ thatOfOperatorItemProvider = new ThatOfOperatorItemProvider(this);
+ }
+
+ return thatOfOperatorItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.MaxValue} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected MaxValueItemProvider maxValueItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.MaxValue}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createMaxValueAdapter() {
+ if (maxValueItemProvider == null) {
+ maxValueItemProvider = new MaxValueItemProvider(this);
+ }
+
+ return maxValueItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.MinValue} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected MinValueItemProvider minValueItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.MinValue}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createMinValueAdapter() {
+ if (minValueItemProvider == null) {
+ minValueItemProvider = new MinValueItemProvider(this);
+ }
+
+ return minValueItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.NoneValue} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected NoneValueItemProvider noneValueItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.NoneValue}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createNoneValueAdapter() {
+ if (noneValueItemProvider == null) {
+ noneValueItemProvider = new NoneValueItemProvider(this);
+ }
+
+ return noneValueItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.StandardValue} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected StandardValueItemProvider standardValueItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.StandardValue}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createStandardValueAdapter() {
+ if (standardValueItemProvider == null) {
+ standardValueItemProvider = new StandardValueItemProvider(this);
+ }
+
+ return standardValueItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.IntegerValue} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected IntegerValueItemProvider integerValueItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.IntegerValue}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createIntegerValueAdapter() {
+ if (integerValueItemProvider == null) {
+ integerValueItemProvider = new IntegerValueItemProvider(this);
+ }
+
+ return integerValueItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.LoserTypeExpression} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LoserTypeExpressionItemProvider loserTypeExpressionItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.LoserTypeExpression}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createLoserTypeExpressionAdapter() {
+ if (loserTypeExpressionItemProvider == null) {
+ loserTypeExpressionItemProvider = new LoserTypeExpressionItemProvider(this);
+ }
+
+ return loserTypeExpressionItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.ArbitrationPolicyExpression} instances. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected ArbitrationPolicyExpressionItemProvider arbitrationPolicyExpressionItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.ArbitrationPolicyExpression}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createArbitrationPolicyExpressionAdapter() {
+ if (arbitrationPolicyExpressionItemProvider == null) {
+ arbitrationPolicyExpressionItemProvider = new ArbitrationPolicyExpressionItemProvider(this);
+ }
+
+ return arbitrationPolicyExpressionItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.SizeOperator} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected SizeOperatorItemProvider sizeOperatorItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.SizeOperator}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createSizeOperatorAdapter() {
+ if (sizeOperatorItemProvider == null) {
+ sizeOperatorItemProvider = new SizeOperatorItemProvider(this);
+ }
+
+ return sizeOperatorItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.ExistsOperator} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected ExistsOperatorItemProvider existsOperatorItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.ExistsOperator}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createExistsOperatorAdapter() {
+ if (existsOperatorItemProvider == null) {
+ existsOperatorItemProvider = new ExistsOperatorItemProvider(this);
+ }
+
+ return existsOperatorItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.ForAllOperator} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected ForAllOperatorItemProvider forAllOperatorItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.ForAllOperator}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createForAllOperatorAdapter() {
+ if (forAllOperatorItemProvider == null) {
+ forAllOperatorItemProvider = new ForAllOperatorItemProvider(this);
+ }
+
+ return forAllOperatorItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.MaxOperator} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected MaxOperatorItemProvider maxOperatorItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.MaxOperator}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createMaxOperatorAdapter() {
+ if (maxOperatorItemProvider == null) {
+ maxOperatorItemProvider = new MaxOperatorItemProvider(this);
+ }
+
+ return maxOperatorItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.MinOperator} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected MinOperatorItemProvider minOperatorItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.MinOperator}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createMinOperatorAdapter() {
+ if (minOperatorItemProvider == null) {
+ minOperatorItemProvider = new MinOperatorItemProvider(this);
+ }
+
+ return minOperatorItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.SelectOperator} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected SelectOperatorItemProvider selectOperatorItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.SelectOperator}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createSelectOperatorAdapter() {
+ if (selectOperatorItemProvider == null) {
+ selectOperatorItemProvider = new SelectOperatorItemProvider(this);
+ }
+
+ return selectOperatorItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.SetOfOperator} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected SetOfOperatorItemProvider setOfOperatorItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.SetOfOperator}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createSetOfOperatorAdapter() {
+ if (setOfOperatorItemProvider == null) {
+ setOfOperatorItemProvider = new SetOfOperatorItemProvider(this);
+ }
+
+ return setOfOperatorItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.LambdaExpression} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LambdaExpressionItemProvider lambdaExpressionItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.LambdaExpression}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createLambdaExpressionAdapter() {
+ if (lambdaExpressionItemProvider == null) {
+ lambdaExpressionItemProvider = new LambdaExpressionItemProvider(this);
+ }
+
+ return lambdaExpressionItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.Variable} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected VariableItemProvider variableItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.Variable}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createVariableAdapter() {
+ if (variableItemProvider == null) {
+ variableItemProvider = new VariableItemProvider(this);
+ }
+
+ return variableItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.IfStatement} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected IfStatementItemProvider ifStatementItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.IfStatement}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createIfStatementAdapter() {
+ if (ifStatementItemProvider == null) {
+ ifStatementItemProvider = new IfStatementItemProvider(this);
+ }
+
+ return ifStatementItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.IsOn} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected IsOnItemProvider isOnItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.IsOn}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createIsOnAdapter() {
+ if (isOnItemProvider == null) {
+ isOnItemProvider = new IsOnItemProvider(this);
+ }
+
+ return isOnItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.AllocatedContent} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AllocatedContentItemProvider allocatedContentItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.AllocatedContent}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createAllocatedContentAdapter() {
+ if (allocatedContentItemProvider == null) {
+ allocatedContentItemProvider = new AllocatedContentItemProvider(this);
+ }
+
+ return allocatedContentItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.ContentValue} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected ContentValueItemProvider contentValueItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.ContentValue}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createContentValueAdapter() {
+ if (contentValueItemProvider == null) {
+ contentValueItemProvider = new ContentValueItemProvider(this);
+ }
+
+ return contentValueItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.GetContentsList} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected GetContentsListItemProvider getContentsListItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.GetContentsList}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createGetContentsListAdapter() {
+ if (getContentsListItemProvider == null) {
+ getContentsListItemProvider = new GetContentsListItemProvider(this);
+ }
+
+ return getContentsListItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.ActiveContents} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected ActiveContentsItemProvider activeContentsItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.ActiveContents}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createActiveContentsAdapter() {
+ if (activeContentsItemProvider == null) {
+ activeContentsItemProvider = new ActiveContentsItemProvider(this);
+ }
+
+ return activeContentsItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.GetProperty} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected GetPropertyItemProvider getPropertyItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.GetProperty}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createGetPropertyAdapter() {
+ if (getPropertyItemProvider == null) {
+ getPropertyItemProvider = new GetPropertyItemProvider(this);
+ }
+
+ return getPropertyItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.StateValue} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected StateValueItemProvider stateValueItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.StateValue}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createStateValueAdapter() {
+ if (stateValueItemProvider == null) {
+ stateValueItemProvider = new StateValueItemProvider(this);
+ }
+
+ return stateValueItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.HasComeLaterThan} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected HasComeLaterThanItemProvider hasComeLaterThanItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.HasComeLaterThan}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createHasComeLaterThanAdapter() {
+ if (hasComeLaterThanItemProvider == null) {
+ hasComeLaterThanItemProvider = new HasComeLaterThanItemProvider(this);
+ }
+
+ return hasComeLaterThanItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.HasComeEarlierThan} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected HasComeEarlierThanItemProvider hasComeEarlierThanItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.HasComeEarlierThan}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createHasComeEarlierThanAdapter() {
+ if (hasComeEarlierThanItemProvider == null) {
+ hasComeEarlierThanItemProvider = new HasComeEarlierThanItemProvider(this);
+ }
+
+ return hasComeEarlierThanItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.ObjectCompareNot} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ObjectCompareNotItemProvider objectCompareNotItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.ObjectCompareNot}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createObjectCompareNotAdapter() {
+ if (objectCompareNotItemProvider == null) {
+ objectCompareNotItemProvider = new ObjectCompareNotItemProvider(this);
+ }
+
+ return objectCompareNotItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.IsAllocatedTo} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected IsAllocatedToItemProvider isAllocatedToItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.IsAllocatedTo}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createIsAllocatedToAdapter() {
+ if (isAllocatedToItemProvider == null) {
+ isAllocatedToItemProvider = new IsAllocatedToItemProvider(this);
+ }
+
+ return isAllocatedToItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.IsChanged} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected IsChangedItemProvider isChangedItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.IsChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createIsChangedAdapter() {
+ if (isChangedItemProvider == null) {
+ isChangedItemProvider = new IsChangedItemProvider(this);
+ }
+
+ return isChangedItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.IsTranslatedTo} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected IsTranslatedToItemProvider isTranslatedToItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.IsTranslatedTo}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createIsTranslatedToAdapter() {
+ if (isTranslatedToItemProvider == null) {
+ isTranslatedToItemProvider = new IsTranslatedToItemProvider(this);
+ }
+
+ return isTranslatedToItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.GetState} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected GetStateItemProvider getStateItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.GetState}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createGetStateAdapter() {
+ if (getStateItemProvider == null) {
+ getStateItemProvider = new GetStateItemProvider(this);
+ }
+
+ return getStateItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.core.NullExpression} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected NullExpressionItemProvider nullExpressionItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.core.NullExpression}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createNullExpressionAdapter() {
+ if (nullExpressionItemProvider == null) {
+ nullExpressionItemProvider = new NullExpressionItemProvider(this);
+ }
+
+ return nullExpressionItemProvider;
+ }
+
+ /**
+ * This returns the root adapter factory that contains this factory.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ComposeableAdapterFactory getRootAdapterFactory() {
+ return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
+ }
+
+ /**
+ * This sets the composed adapter factory that contains this factory.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
+ this.parentAdapterFactory = parentAdapterFactory;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object type) {
+ return supportedTypes.contains(type) || super.isFactoryForType(type);
+ }
+
+ /**
+ * This implementation substitutes the factory itself as the key for the adapter. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @generated
+ */
+ @Override
+ public Adapter adapt(Notifier notifier, Object type) {
+ return super.adapt(notifier, this);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object adapt(Object object, Object type) {
+ if (isFactoryForType(type)) {
+ Object adapter = super.adapt(object, type);
+ if (!(type instanceof Class<?>) || (((Class<?>) type).isInstance(adapter))) {
+ return adapter;
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * This adds a listener.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void addListener(INotifyChangedListener notifyChangedListener) {
+ changeNotifier.addListener(notifyChangedListener);
+ }
+
+ /**
+ * This removes a listener.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void removeListener(INotifyChangedListener notifyChangedListener) {
+ changeNotifier.removeListener(notifyChangedListener);
+ }
+
+ /**
+ * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @generated
+ */
+ public void fireNotifyChanged(Notification notification) {
+ changeNotifier.fireNotifyChanged(notification);
+
+ if (parentAdapterFactory != null) {
+ parentAdapterFactory.fireNotifyChanged(notification);
+ }
+ }
+
+ /**
+ * This disposes all of the item providers created by this factory.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void dispose() {
+ if (projectItemProvider != null)
+ projectItemProvider.dispose();
+ if (packageItemProvider != null)
+ packageItemProvider.dispose();
+ if (stereotypeItemProvider != null)
+ stereotypeItemProvider.dispose();
+ if (tagItemProvider != null)
+ tagItemProvider.dispose();
+ if (sceneItemProvider != null)
+ sceneItemProvider.dispose();
+ if (integerPropertyItemProvider != null)
+ integerPropertyItemProvider.dispose();
+ if (constraintItemProvider != null)
+ constraintItemProvider.dispose();
+ if (letStatementItemProvider != null)
+ letStatementItemProvider.dispose();
+ if (complexExpressionItemProvider != null)
+ complexExpressionItemProvider.dispose();
+ if (isTypeOfItemProvider != null)
+ isTypeOfItemProvider.dispose();
+ if (objectReferenceItemProvider != null)
+ objectReferenceItemProvider.dispose();
+ if (previousModifierItemProvider != null)
+ previousModifierItemProvider.dispose();
+ if (greaterThanOperatorItemProvider != null)
+ greaterThanOperatorItemProvider.dispose();
+ if (muchGreaterThanOperatorItemProvider != null)
+ muchGreaterThanOperatorItemProvider.dispose();
+ if (lowerThanOperatorItemProvider != null)
+ lowerThanOperatorItemProvider.dispose();
+ if (equalToOperatorItemProvider != null)
+ equalToOperatorItemProvider.dispose();
+ if (comparisonAndItemProvider != null)
+ comparisonAndItemProvider.dispose();
+ if (andOperatorItemProvider != null)
+ andOperatorItemProvider.dispose();
+ if (orOperatorItemProvider != null)
+ orOperatorItemProvider.dispose();
+ if (notOperatorItemProvider != null)
+ notOperatorItemProvider.dispose();
+ if (isEqualToOperatorItemProvider != null)
+ isEqualToOperatorItemProvider.dispose();
+ if (isGreaterThanOperatorItemProvider != null)
+ isGreaterThanOperatorItemProvider.dispose();
+ if (isLowerThanOperatorItemProvider != null)
+ isLowerThanOperatorItemProvider.dispose();
+ if (isGreaterThanEqualOperatorItemProvider != null)
+ isGreaterThanEqualOperatorItemProvider.dispose();
+ if (isLowerThanEqualOperatorItemProvider != null)
+ isLowerThanEqualOperatorItemProvider.dispose();
+ if (plusOperatorItemProvider != null)
+ plusOperatorItemProvider.dispose();
+ if (impliesOperatorItemProvider != null)
+ impliesOperatorItemProvider.dispose();
+ if (isActiveItemProvider != null)
+ isActiveItemProvider.dispose();
+ if (getAllocatablesItemProvider != null)
+ getAllocatablesItemProvider.dispose();
+ if (hasBeenDisplayedItemProvider != null)
+ hasBeenDisplayedItemProvider.dispose();
+ if (activeStateItemProvider != null)
+ activeStateItemProvider.dispose();
+ if (objectCompareItemProvider != null)
+ objectCompareItemProvider.dispose();
+ if (thatOfOperatorItemProvider != null)
+ thatOfOperatorItemProvider.dispose();
+ if (maxValueItemProvider != null)
+ maxValueItemProvider.dispose();
+ if (minValueItemProvider != null)
+ minValueItemProvider.dispose();
+ if (noneValueItemProvider != null)
+ noneValueItemProvider.dispose();
+ if (standardValueItemProvider != null)
+ standardValueItemProvider.dispose();
+ if (integerValueItemProvider != null)
+ integerValueItemProvider.dispose();
+ if (loserTypeExpressionItemProvider != null)
+ loserTypeExpressionItemProvider.dispose();
+ if (arbitrationPolicyExpressionItemProvider != null)
+ arbitrationPolicyExpressionItemProvider.dispose();
+ if (sizeOperatorItemProvider != null)
+ sizeOperatorItemProvider.dispose();
+ if (existsOperatorItemProvider != null)
+ existsOperatorItemProvider.dispose();
+ if (forAllOperatorItemProvider != null)
+ forAllOperatorItemProvider.dispose();
+ if (maxOperatorItemProvider != null)
+ maxOperatorItemProvider.dispose();
+ if (minOperatorItemProvider != null)
+ minOperatorItemProvider.dispose();
+ if (selectOperatorItemProvider != null)
+ selectOperatorItemProvider.dispose();
+ if (setOfOperatorItemProvider != null)
+ setOfOperatorItemProvider.dispose();
+ if (lambdaExpressionItemProvider != null)
+ lambdaExpressionItemProvider.dispose();
+ if (variableItemProvider != null)
+ variableItemProvider.dispose();
+ if (ifStatementItemProvider != null)
+ ifStatementItemProvider.dispose();
+ if (isOnItemProvider != null)
+ isOnItemProvider.dispose();
+ if (allocatedContentItemProvider != null)
+ allocatedContentItemProvider.dispose();
+ if (contentValueItemProvider != null)
+ contentValueItemProvider.dispose();
+ if (getContentsListItemProvider != null)
+ getContentsListItemProvider.dispose();
+ if (activeContentsItemProvider != null)
+ activeContentsItemProvider.dispose();
+ if (getPropertyItemProvider != null)
+ getPropertyItemProvider.dispose();
+ if (stateValueItemProvider != null)
+ stateValueItemProvider.dispose();
+ if (hasComeLaterThanItemProvider != null)
+ hasComeLaterThanItemProvider.dispose();
+ if (hasComeEarlierThanItemProvider != null)
+ hasComeEarlierThanItemProvider.dispose();
+ if (objectCompareNotItemProvider != null)
+ objectCompareNotItemProvider.dispose();
+ if (isAllocatedToItemProvider != null)
+ isAllocatedToItemProvider.dispose();
+ if (isChangedItemProvider != null)
+ isChangedItemProvider.dispose();
+ if (isTranslatedToItemProvider != null)
+ isTranslatedToItemProvider.dispose();
+ if (getStateItemProvider != null)
+ getStateItemProvider.dispose();
+ if (nullExpressionItemProvider != null)
+ nullExpressionItemProvider.dispose();
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/RbaCoreEditPlugin.java b/rba.model.core.edit/src/rba/core/provider/RbaCoreEditPlugin.java
new file mode 100644
index 0000000..58c07cd
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/RbaCoreEditPlugin.java
@@ -0,0 +1,79 @@
+/**
+ */
+package rba.core.provider;
+
+import org.eclipse.emf.common.EMFPlugin;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+/**
+ * This is the central singleton for the RbaCore edit plugin.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public final class RbaCoreEditPlugin extends EMFPlugin {
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public static final RbaCoreEditPlugin INSTANCE = new RbaCoreEditPlugin();
+
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private static Implementation plugin;
+
+ /**
+ * Create the instance.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public RbaCoreEditPlugin() {
+ super(new ResourceLocator[] {});
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the singleton instance.
+ * @generated
+ */
+ @Override
+ public ResourceLocator getPluginResourceLocator() {
+ return plugin;
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the singleton instance.
+ * @generated
+ */
+ public static Implementation getPlugin() {
+ return plugin;
+ }
+
+ /**
+ * The actual implementation of the Eclipse <b>Plugin</b>.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public static class Implementation extends EclipsePlugin {
+ /**
+ * Creates an instance.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public Implementation() {
+ super();
+
+ // Remember the static instance.
+ //
+ plugin = this;
+ }
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/RuleObjectItemProvider.java b/rba.model.core.edit/src/rba/core/provider/RuleObjectItemProvider.java
new file mode 100644
index 0000000..7be6d62
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/RuleObjectItemProvider.java
@@ -0,0 +1,129 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import rba.core.RBACoreFactory;
+import rba.core.RBACorePackage;
+import rba.core.RuleObject;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.RuleObject} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class RuleObjectItemProvider extends PackagableElementItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public RuleObjectItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(RBACorePackage.Literals.RULE_OBJECT__TAGS);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((RuleObject) object).getName();
+ return label == null || label.length() == 0 ? getString("_UI_RuleObject_type")
+ : getString("_UI_RuleObject_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(RuleObject.class)) {
+ case RBACorePackage.RULE_OBJECT__TAGS:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add(
+ createChildParameter(RBACorePackage.Literals.RULE_OBJECT__TAGS, RBACoreFactory.eINSTANCE.createTag()));
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/SceneItemProvider.java b/rba.model.core.edit/src/rba/core/provider/SceneItemProvider.java
new file mode 100644
index 0000000..442315b
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/SceneItemProvider.java
@@ -0,0 +1,160 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import rba.core.RBACoreFactory;
+import rba.core.RBACorePackage;
+import rba.core.Scene;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.Scene} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class SceneItemProvider extends AbstractSceneItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public SceneItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addGlobalPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Global feature.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addGlobalPropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(), getString("_UI_Scene_global_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_Scene_global_feature", "_UI_Scene_type"),
+ RBACorePackage.Literals.SCENE__GLOBAL, true, false, false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(RBACorePackage.Literals.SCENE__PROPERTIES);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns Scene.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/Scene"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((Scene) object).getName();
+ return label == null || label.length() == 0 ? getString("_UI_Scene_type")
+ : getString("_UI_Scene_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(Scene.class)) {
+ case RBACorePackage.SCENE__GLOBAL:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ case RBACorePackage.SCENE__PROPERTIES:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.SCENE__PROPERTIES,
+ RBACoreFactory.eINSTANCE.createIntegerProperty()));
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/SceneOperatorItemProvider.java b/rba.model.core.edit/src/rba/core/provider/SceneOperatorItemProvider.java
new file mode 100644
index 0000000..1133d99
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/SceneOperatorItemProvider.java
@@ -0,0 +1,90 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.SceneOperator;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.SceneOperator} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class SceneOperatorItemProvider extends OperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public SceneOperatorItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((SceneOperator) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_SceneOperator_type")
+ : getString("_UI_SceneOperator_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/SelectOperatorItemProvider.java b/rba.model.core.edit/src/rba/core/provider/SelectOperatorItemProvider.java
new file mode 100644
index 0000000..b2ac4df
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/SelectOperatorItemProvider.java
@@ -0,0 +1,122 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.RBACorePackage;
+import rba.core.SelectOperator;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.SelectOperator} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class SelectOperatorItemProvider extends LambdaContextItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public SelectOperatorItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns SelectOperator.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/SelectOperator"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((SelectOperator) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_SelectOperator_type")
+ : getString("_UI_SelectOperator_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
+ Object childFeature = feature;
+ Object childObject = child;
+
+ boolean qualify = childFeature == RBACorePackage.Literals.OPERATOR__OPERAND
+ || childFeature == RBACorePackage.Literals.LAMBDA_CONTEXT__LAMBDA;
+
+ if (qualify) {
+ return getString("_UI_CreateChild_text2",
+ new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+ }
+ return super.getCreateChildText(owner, feature, child, selection);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/SetExpressionItemProvider.java b/rba.model.core.edit/src/rba/core/provider/SetExpressionItemProvider.java
new file mode 100644
index 0000000..cc3f5d8
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/SetExpressionItemProvider.java
@@ -0,0 +1,90 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.SetExpression;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.SetExpression} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class SetExpressionItemProvider extends ExpressionItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public SetExpressionItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((SetExpression) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_SetExpression_type")
+ : getString("_UI_SetExpression_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/SetOfOperatorItemProvider.java b/rba.model.core.edit/src/rba/core/provider/SetOfOperatorItemProvider.java
new file mode 100644
index 0000000..21daafc
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/SetOfOperatorItemProvider.java
@@ -0,0 +1,100 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.SetOfOperator;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.SetOfOperator} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class SetOfOperatorItemProvider extends OperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public SetOfOperatorItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns SetOfOperator.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/SetOfOperator"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((SetOfOperator) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_SetOfOperator_type")
+ : getString("_UI_SetOfOperator_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/SetOperatorItemProvider.java b/rba.model.core.edit/src/rba/core/provider/SetOperatorItemProvider.java
new file mode 100644
index 0000000..4411685
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/SetOperatorItemProvider.java
@@ -0,0 +1,90 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.SetOperator;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.SetOperator} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class SetOperatorItemProvider extends OperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public SetOperatorItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((SetOperator) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_SetOperator_type")
+ : getString("_UI_SetOperator_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/SetPropertyItemProvider.java b/rba.model.core.edit/src/rba/core/provider/SetPropertyItemProvider.java
new file mode 100644
index 0000000..3fb2d7b
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/SetPropertyItemProvider.java
@@ -0,0 +1,100 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.SetProperty;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.SetProperty} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class SetPropertyItemProvider extends PropertyOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public SetPropertyItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns SetProperty.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/SetProperty"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((SetProperty) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_SetProperty_type")
+ : getString("_UI_SetProperty_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/SizeOperatorItemProvider.java b/rba.model.core.edit/src/rba/core/provider/SizeOperatorItemProvider.java
new file mode 100644
index 0000000..352dd48
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/SizeOperatorItemProvider.java
@@ -0,0 +1,100 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.SizeOperator;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.SizeOperator} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class SizeOperatorItemProvider extends SetOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public SizeOperatorItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns SizeOperator.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/SizeOperator"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((SizeOperator) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_SizeOperator_type")
+ : getString("_UI_SizeOperator_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/StandardValueItemProvider.java b/rba.model.core.edit/src/rba/core/provider/StandardValueItemProvider.java
new file mode 100644
index 0000000..efa3229
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/StandardValueItemProvider.java
@@ -0,0 +1,100 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.StandardValue;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.StandardValue} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class StandardValueItemProvider extends ValueExpressionItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public StandardValueItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns StandardValue.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/StandardValue"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((StandardValue) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_StandardValue_type")
+ : getString("_UI_StandardValue_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/StateItemProvider.java b/rba.model.core.edit/src/rba/core/provider/StateItemProvider.java
new file mode 100644
index 0000000..f598d18
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/StateItemProvider.java
@@ -0,0 +1,96 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import rba.core.State;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.State} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class StateItemProvider extends RuleObjectItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public StateItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns State.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/State"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((State) object).getName();
+ return label == null || label.length() == 0 ? getString("_UI_State_type")
+ : getString("_UI_State_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/StateValueItemProvider.java b/rba.model.core.edit/src/rba/core/provider/StateValueItemProvider.java
new file mode 100644
index 0000000..2399bf5
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/StateValueItemProvider.java
@@ -0,0 +1,100 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.StateValue;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.StateValue} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class StateValueItemProvider extends ContentOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public StateValueItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns StateValue.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/StateValue"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((StateValue) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_StateValue_type")
+ : getString("_UI_StateValue_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/StereotypeItemProvider.java b/rba.model.core.edit/src/rba/core/provider/StereotypeItemProvider.java
new file mode 100644
index 0000000..8c45aee
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/StereotypeItemProvider.java
@@ -0,0 +1,178 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import rba.core.RBACoreFactory;
+import rba.core.RBACorePackage;
+import rba.core.Stereotype;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.Stereotype} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class StereotypeItemProvider extends PackagableElementItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public StereotypeItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addTargetModelNamePropertyDescriptor(object);
+ addBodyTextPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Target Model Name feature.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addTargetModelNamePropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(), getString("_UI_Stereotype_targetModelName_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_Stereotype_targetModelName_feature",
+ "_UI_Stereotype_type"),
+ RBACorePackage.Literals.STEREOTYPE__TARGET_MODEL_NAME, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This adds a property descriptor for the Body Text feature.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addBodyTextPropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(), getString("_UI_Stereotype_bodyText_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_Stereotype_bodyText_feature",
+ "_UI_Stereotype_type"),
+ RBACorePackage.Literals.STEREOTYPE__BODY_TEXT, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(RBACorePackage.Literals.STEREOTYPE__VARIABLES);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns Stereotype.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/Stereotype"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((Stereotype) object).getName();
+ return label == null || label.length() == 0 ? getString("_UI_Stereotype_type")
+ : getString("_UI_Stereotype_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(Stereotype.class)) {
+ case RBACorePackage.STEREOTYPE__TARGET_MODEL_NAME:
+ case RBACorePackage.STEREOTYPE__BODY_TEXT:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ case RBACorePackage.STEREOTYPE__VARIABLES:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.STEREOTYPE__VARIABLES,
+ RBACoreFactory.eINSTANCE.createVariable()));
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/TagItemProvider.java b/rba.model.core.edit/src/rba/core/provider/TagItemProvider.java
new file mode 100644
index 0000000..51eb7b8
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/TagItemProvider.java
@@ -0,0 +1,132 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import rba.core.RBACorePackage;
+import rba.core.Tag;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.Tag} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class TagItemProvider extends NamedElementItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TagItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addValuesPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Values feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addValuesPropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(), getString("_UI_Tag_values_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_Tag_values_feature", "_UI_Tag_type"),
+ RBACorePackage.Literals.TAG__VALUES, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This returns Tag.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/Tag"));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((Tag) object).getName();
+ return label == null || label.length() == 0 ? getString("_UI_Tag_type")
+ : getString("_UI_Tag_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(Tag.class)) {
+ case RBACorePackage.TAG__VALUES:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/ThatOfOperatorItemProvider.java b/rba.model.core.edit/src/rba/core/provider/ThatOfOperatorItemProvider.java
new file mode 100644
index 0000000..d42f7c5
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/ThatOfOperatorItemProvider.java
@@ -0,0 +1,100 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.ThatOfOperator;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.ThatOfOperator} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class ThatOfOperatorItemProvider extends OperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ThatOfOperatorItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns ThatOfOperator.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/ThatOfOperator"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((ThatOfOperator) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_ThatOfOperator_type")
+ : getString("_UI_ThatOfOperator_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/ValueExpressionItemProvider.java b/rba.model.core.edit/src/rba/core/provider/ValueExpressionItemProvider.java
new file mode 100644
index 0000000..32a08f6
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/ValueExpressionItemProvider.java
@@ -0,0 +1,90 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.ValueExpression;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.ValueExpression} object. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @generated
+ */
+public class ValueExpressionItemProvider extends ExpressionItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueExpressionItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((ValueExpression) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_ValueExpression_type")
+ : getString("_UI_ValueExpression_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core.edit/src/rba/core/provider/VariableItemProvider.java b/rba.model.core.edit/src/rba/core/provider/VariableItemProvider.java
new file mode 100644
index 0000000..0c81c3f
--- /dev/null
+++ b/rba.model.core.edit/src/rba/core/provider/VariableItemProvider.java
@@ -0,0 +1,96 @@
+/**
+ */
+package rba.core.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import rba.core.Variable;
+
+/**
+ * This is the item provider adapter for a {@link rba.core.Variable} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class VariableItemProvider extends RuleObjectItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public VariableItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns Variable.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/Variable"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((Variable) object).getName();
+ return label == null || label.length() == 0 ? getString("_UI_Variable_type")
+ : getString("_UI_Variable_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.core/.classpath b/rba.model.core/.classpath
new file mode 100644
index 0000000..22f3064
--- /dev/null
+++ b/rba.model.core/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/rba.model.core/.project b/rba.model.core/.project
new file mode 100644
index 0000000..8e896eb
--- /dev/null
+++ b/rba.model.core/.project
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>rba.model.core</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <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>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.sirius.nature.modelingproject</nature>
+ <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/rba.model.core/META-INF/MANIFEST.MF b/rba.model.core/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..d67b9a2
--- /dev/null
+++ b/rba.model.core/META-INF/MANIFEST.MF
@@ -0,0 +1,16 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: rba.model.core;singleton:=true
+Bundle-Version: 0.1.0.qualifier
+Bundle-ClassPath: .
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: rba.core,
+ rba.core.impl,
+ rba.core.util
+Require-Bundle: org.eclipse.emf.ecore;visibility:=reexport,
+ rba.model.core;visibility:=reexport,
+ org.eclipse.core.runtime;visibility:=reexport
+Bundle-ActivationPolicy: lazy
diff --git a/rba.model.core/build.properties b/rba.model.core/build.properties
new file mode 100644
index 0000000..4465407
--- /dev/null
+++ b/rba.model.core/build.properties
@@ -0,0 +1,10 @@
+#
+
+bin.includes = .,\
+ model/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties
+jars.compile.order = .
+source.. = src/
+output.. = bin/
diff --git a/rba.model.core/model/rbacore.aird b/rba.model.core/model/rbacore.aird
new file mode 100644
index 0000000..b4cb72a
--- /dev/null
+++ b/rba.model.core/model/rbacore.aird
@@ -0,0 +1,5347 @@
+<?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:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:diagram="http://www.eclipse.org/sirius/diagram/1.1.0" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:viewpoint="http://www.eclipse.org/sirius/1.1.0" xsi:schemaLocation="http://www.eclipse.org/sirius/description/1.1.0 http://www.eclipse.org/sirius/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/style/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description/style">
+ <viewpoint:DAnalysis xmi:id="_7eZmUFqFEei8Ja-whe6hFw" selectedViews="_7f7QUFqFEei8Ja-whe6hFw _X4A1EIDREeutB9ElOMNRZA" version="12.0.0.201704271200">
+ <semanticResources>rbacore.ecore</semanticResources>
+ <semanticResources>rbacore.genmodel</semanticResources>
+ <semanticResources>rbaext.ecore</semanticResources>
+ <semanticResources>http://www.eclipse.org/emf/2002/Ecore</semanticResources>
+ <semanticResources>rbaext.genmodel</semanticResources>
+ <ownedViews xmi:type="viewpoint:DView" xmi:id="_7f7QUFqFEei8Ja-whe6hFw">
+ <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']"/>
+ <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" xmi:id="_7gf4FVqFEei8Ja-whe6hFw" name="rbacore" repPath="#_7gf4EFqFEei8Ja-whe6hFw">
+ <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
+ <target xmi:type="ecore:EPackage" href="rbacore.ecore#/"/>
+ </ownedRepresentationDescriptors>
+ </ownedViews>
+ <ownedViews xmi:type="viewpoint:DView" xmi:id="_X4A1EIDREeutB9ElOMNRZA">
+ <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Archetype']"/>
+ </ownedViews>
+ </viewpoint:DAnalysis>
+ <diagram:DSemanticDiagram xmi:id="_7gf4EFqFEei8Ja-whe6hFw" name="rbacore">
+ <ownedAnnotationEntries xmi:type="description:AnnotationEntry" xmi:id="_7gf4EVqFEei8Ja-whe6hFw" source="DANNOTATION_CUSTOMIZATION_KEY">
+ <data xmi:type="diagram:ComputedStyleDescriptionRegistry" xmi:id="_7gf4ElqFEei8Ja-whe6hFw">
+ <computedStyleDescriptions xmi:type="style:BundledImageDescription" xmi:id="_5f-wRlySEei8Ja-whe6hFw" labelExpression="service:render" labelAlignment="LEFT" tooltipExpression="service:renderTooltip" sizeComputationExpression="1">
+ <borderColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ <labelFormat>bold</labelFormat>
+ <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ <color xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ </computedStyleDescriptions>
+ <computedStyleDescriptions xmi:type="style:BundledImageDescription" xmi:id="_5gE25VySEei8Ja-whe6hFw" labelExpression="service:render" labelAlignment="LEFT" tooltipExpression="service:renderTooltip" sizeComputationExpression="1">
+ <borderColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/>
+ <color xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ </computedStyleDescriptions>
+ <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_5hB5IFySEei8Ja-whe6hFw" sourceArrow="FillDiamond" routingStyle="manhattan">
+ <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_5hB5IVySEei8Ja-whe6hFw" showIcon="false" labelExpression="service:render">
+ <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ </centerLabelStyleDescription>
+ <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_5hB5IlySEei8Ja-whe6hFw" labelSize="6" showIcon="false" labelExpression="service:eKeysLabel">
+ <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/>
+ </endLabelStyleDescription>
+ </computedStyleDescriptions>
+ <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_5hB5M1ySEei8Ja-whe6hFw" sourceArrow="FillDiamond" routingStyle="manhattan">
+ <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_5hB5NFySEei8Ja-whe6hFw" showIcon="false" labelExpression="service:render">
+ <labelFormat>bold</labelFormat>
+ <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ </centerLabelStyleDescription>
+ <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_5hB5NVySEei8Ja-whe6hFw" labelSize="6" showIcon="false" labelExpression="service:eKeysLabel">
+ <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/>
+ </endLabelStyleDescription>
+ </computedStyleDescriptions>
+ <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_5h406FySEei8Ja-whe6hFw" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan">
+ <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ <beginLabelStyleDescription xmi:type="style:BeginLabelStyleDescription" xmi:id="_5h406VySEei8Ja-whe6hFw" showIcon="false" labelExpression="service:renderEOpposite">
+ <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ </beginLabelStyleDescription>
+ <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_5h406lySEei8Ja-whe6hFw" showIcon="false" labelExpression="service:render">
+ <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ </endLabelStyleDescription>
+ </computedStyleDescriptions>
+ <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_ZGFHYIsOEeiuX8plUFkEQQ" sourceArrow="FillDiamond" routingStyle="manhattan">
+ <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ <beginLabelStyleDescription xmi:type="style:BeginLabelStyleDescription" xmi:id="_ZGFHYYsOEeiuX8plUFkEQQ" showIcon="false" labelExpression="service:renderEOpposite">
+ <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ </beginLabelStyleDescription>
+ <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_ZGFHYosOEeiuX8plUFkEQQ" showIcon="false" labelExpression="service:render">
+ <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ </endLabelStyleDescription>
+ </computedStyleDescriptions>
+ </data>
+ </ownedAnnotationEntries>
+ <ownedAnnotationEntries xmi:type="description:AnnotationEntry" xmi:id="_7gf4FlqFEei8Ja-whe6hFw" source="GMF_DIAGRAMS">
+ <data xmi:type="notation:Diagram" xmi:id="_7gf4F1qFEei8Ja-whe6hFw" type="Sirius" element="_7gf4EFqFEei8Ja-whe6hFw" measurementUnit="Pixel">
+ <children xmi:type="notation:Node" xmi:id="_5iLIoFySEei8Ja-whe6hFw" type="2003" element="_5eQ5AFySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5iLIo1ySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5iLIpFySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5i13GVySEei8Ja-whe6hFw" type="3010" element="_5f4poFySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5i13GlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5i13G1ySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5iLIpVySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5iLIplySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5iLIoVySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5iLIolySEei8Ja-whe6hFw" x="1400" y="34"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5iRPQFySEei8Ja-whe6hFw" type="2003" element="_5edGQFySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5iRPQ1ySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5iRPRFySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5i13HFySEei8Ja-whe6hFw" type="3010" element="_5f-wQVySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5i13HVySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5i13HlySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5iRPRVySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5iRPRlySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5iRPQVySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5iRPQlySEei8Ja-whe6hFw" x="1409" y="187"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5iRPR1ySEei8Ja-whe6hFw" type="2003" element="_5edGQlySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5iRPSlySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5iRPS1ySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_ZGU_AIsOEeiuX8plUFkEQQ" type="3010" element="_ZD2SwIsOEeiuX8plUFkEQQ">
+ <styles xmi:type="notation:FontStyle" xmi:id="_ZGU_AYsOEeiuX8plUFkEQQ" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZGU_AosOEeiuX8plUFkEQQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ZGVmE4sOEeiuX8plUFkEQQ" type="3010" element="_ZD3g4YsOEeiuX8plUFkEQQ">
+ <styles xmi:type="notation:FontStyle" xmi:id="_ZGVmFIsOEeiuX8plUFkEQQ" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZGVmFYsOEeiuX8plUFkEQQ"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5iRPTFySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5iRPTVySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5iRPSFySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5iRPSVySEei8Ja-whe6hFw" x="1155" y="1300"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5iRPTlySEei8Ja-whe6hFw" type="2003" element="_5edGRFySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5iRPUVySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5iRPUlySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_CJy1IIDREeutB9ElOMNRZA" type="3010" element="_CHLmAIDREeutB9ElOMNRZA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_CJy1IYDREeutB9ElOMNRZA" fontName="Yu Gothic UI" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CJy1IoDREeutB9ElOMNRZA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_CJ6w8IDREeutB9ElOMNRZA" type="3010" element="_CHPQYIDREeutB9ElOMNRZA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_CJ6w8YDREeutB9ElOMNRZA" fontName="Yu Gothic UI" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CJ6w8oDREeutB9ElOMNRZA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_CJ6w84DREeutB9ElOMNRZA" type="3010" element="_CHQegIDREeutB9ElOMNRZA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_CJ6w9IDREeutB9ElOMNRZA" fontName="Yu Gothic UI" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CJ6w9YDREeutB9ElOMNRZA"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5iRPU1ySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5iRPVFySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5iRPT1ySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5iRPUFySEei8Ja-whe6hFw" x="1825" y="670"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5iRPVVySEei8Ja-whe6hFw" type="2003" element="_5edGRlySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5iRPWFySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5iRPWVySEei8Ja-whe6hFw" type="7004">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5iRPWlySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5iRPW1ySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5iRPVlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5iRPV1ySEei8Ja-whe6hFw" x="2530" y="350"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5iRPXFySEei8Ja-whe6hFw" type="2003" element="_5edGSFySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5iRPX1ySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5iRPYFySEei8Ja-whe6hFw" type="7004">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5iRPYVySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5iRPYlySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5iRPXVySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5iRPXlySEei8Ja-whe6hFw" x="2297" y="510"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5iRPY1ySEei8Ja-whe6hFw" type="2003" element="_5edGSlySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5iRPZlySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5iRPZ1ySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5i13H1ySEei8Ja-whe6hFw" type="3010" element="_5f-wQ1ySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5i13IFySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5i13IVySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_CKAQgIDREeutB9ElOMNRZA" type="3010" element="_CHS6wIDREeutB9ElOMNRZA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_CKAQgYDREeutB9ElOMNRZA" fontName="Yu Gothic UI" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CKAQgoDREeutB9ElOMNRZA"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5iRPaFySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5iRPaVySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5iRPZFySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5iRPZVySEei8Ja-whe6hFw" x="2477" y="510"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5iRPalySEei8Ja-whe6hFw" type="2003" element="_5edGTFySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5iRPbVySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5iRPblySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_dMmfMJlkEeijptRUADwljg" type="3010" element="_dLiIMJlkEeijptRUADwljg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_dMmfMZlkEeijptRUADwljg" fontName="Meiryo UI" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dMmfMplkEeijptRUADwljg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_fWRhcJlkEeijptRUADwljg" type="3010" element="_fVL8UJlkEeijptRUADwljg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_fWRhcZlkEeijptRUADwljg" fontName="Meiryo UI" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_fWRhcplkEeijptRUADwljg"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5iRPb1ySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5iRPcFySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5iRPa1ySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5iRPbFySEei8Ja-whe6hFw" x="1925" y="1090" width="223" height="100"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5iRPcVySEei8Ja-whe6hFw" type="2003" element="_5edGTlySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5iRPdFySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5iRPdVySEei8Ja-whe6hFw" type="7004">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5iRPdlySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5iRPd1ySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5iRPclySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5iRPc1ySEei8Ja-whe6hFw" x="2765" y="670"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5iRPeFySEei8Ja-whe6hFw" type="2003" element="_5ejM4FySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5iRPe1ySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5iRPfFySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5i13IlySEei8Ja-whe6hFw" type="3010" element="_5f-wRVySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5i13I1ySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8" bold="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5i13JFySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5i13JVySEei8Ja-whe6hFw" type="3010" element="_5f-wSFySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5i13JlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5i13J1ySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5iRPfVySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5iRPflySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5iRPeVySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5iRPelySEei8Ja-whe6hFw" x="3165" y="950"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5iRPf1ySEei8Ja-whe6hFw" type="2003" element="_5ejM4lySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5iRPglySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5iRPg1ySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5i13KFySEei8Ja-whe6hFw" type="3010" element="_5f-wSlySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5i13KVySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5i13KlySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_XuoaMJneEeijptRUADwljg" type="3010" element="_Xt5aYJneEeijptRUADwljg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_XuoaMZneEeijptRUADwljg" fontName="Meiryo UI" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XuoaMpneEeijptRUADwljg"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5iRPhFySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5iRPhVySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5iRPgFySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5iRPgVySEei8Ja-whe6hFw" x="1800" y="1300"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5iRPhlySEei8Ja-whe6hFw" type="2003" element="_5ejM5FySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5iRPiVySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5iRPilySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_XuoaM5neEeijptRUADwljg" type="3010" element="_XuOKgJneEeijptRUADwljg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_XuoaNJneEeijptRUADwljg" fontName="Meiryo UI" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XuoaNZneEeijptRUADwljg"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5iRPi1ySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5iRPjFySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5iRPh1ySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5iRPiFySEei8Ja-whe6hFw" x="2090" y="1300"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5iRPjVySEei8Ja-whe6hFw" type="2003" element="_5ejM5lySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5iRPkFySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5iRPkVySEei8Ja-whe6hFw" type="7004">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5iRPklySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5iRPk1ySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5iRPjlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5iRPj1ySEei8Ja-whe6hFw" x="2297" y="670"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5iRPlFySEei8Ja-whe6hFw" type="2003" element="_5ejM6FySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5iRPl1ySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5iRPmFySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_ZGYpYIsOEeiuX8plUFkEQQ" type="3010" element="_ZD-OkIsOEeiuX8plUFkEQQ">
+ <styles xmi:type="notation:FontStyle" xmi:id="_ZGYpYYsOEeiuX8plUFkEQQ" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZGYpYosOEeiuX8plUFkEQQ"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5iRPmVySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5iRPmlySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5iRPlVySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5iRPllySEei8Ja-whe6hFw" x="2945" y="670"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5iRPm1ySEei8Ja-whe6hFw" type="2003" element="_5ejM6lySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5iRPnlySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5iRPn1ySEei8Ja-whe6hFw" type="7004">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5iRPoFySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5iRPoVySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5iRPnFySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5iRPnVySEei8Ja-whe6hFw" x="4555" y="830"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5iXV4FySEei8Ja-whe6hFw" type="2003" element="_5ejM7FySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5iXV41ySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5iXV5FySEei8Ja-whe6hFw" type="7004">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5iXV5VySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5iXV5lySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5iXV4VySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5iXV4lySEei8Ja-whe6hFw" x="7699" y="670"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5iXV51ySEei8Ja-whe6hFw" type="2003" element="_5ejM7lySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5iXV6lySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5iXV61ySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5i13LlySEei8Ja-whe6hFw" type="3010" element="_5gE24lySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5i13L1ySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8" bold="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5i13MFySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5iXV7FySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5iXV7VySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5iXV6FySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5iXV6VySEei8Ja-whe6hFw" x="10381" y="830"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5iXV_FySEei8Ja-whe6hFw" type="2003" element="_5epTglySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5iXV_1ySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5iXWAFySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5i13MVySEei8Ja-whe6hFw" type="3010" element="_5gE25FySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5i13MlySEei8Ja-whe6hFw" fontColor="7490599" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5i13M1ySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5i13NFySEei8Ja-whe6hFw" type="3010" element="_5gE251ySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5i13NVySEei8Ja-whe6hFw" fontColor="7490599" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5i13NlySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5i13N1ySEei8Ja-whe6hFw" type="3010" element="_5gE26VySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5i13OFySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5i13OVySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5i13OlySEei8Ja-whe6hFw" type="3010" element="_5gE261ySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5i13O1ySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5i13PFySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_CKA3kIDREeutB9ElOMNRZA" type="3010" element="_CHqHIIDREeutB9ElOMNRZA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_CKA3kYDREeutB9ElOMNRZA" fontName="Yu Gothic UI" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CKA3koDREeutB9ElOMNRZA"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5iXWAVySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5iXWAlySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5iXV_VySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5iXV_lySEei8Ja-whe6hFw" x="4125" y="510"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5iXWA1ySEei8Ja-whe6hFw" type="2003" element="_5epThFySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5iXWBlySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5iXWB1ySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5i13PVySEei8Ja-whe6hFw" type="3010" element="_5gE27VySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5i13PlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5i13P1ySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5iXWCFySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5iXWCVySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5iXWBFySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5iXWBVySEei8Ja-whe6hFw" x="7190" y="670"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5iXWClySEei8Ja-whe6hFw" type="2003" element="_5epThlySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5iXWDVySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5iXWDlySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5i13QFySEei8Ja-whe6hFw" type="3010" element="_5gE271ySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5i13QVySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5i13QlySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5i13Q1ySEei8Ja-whe6hFw" type="3010" element="_5gE28VySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5i13RFySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5i13RVySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5iXWD1ySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5iXWEFySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5iXWC1ySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5iXWDFySEei8Ja-whe6hFw" x="7400" y="670"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5iXWEVySEei8Ja-whe6hFw" type="2003" element="_5epTiFySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5iXWFFySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5iXWFVySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5i79oFySEei8Ja-whe6hFw" type="3010" element="_5gE281ySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5i79oVySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5i79olySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5i79o1ySEei8Ja-whe6hFw" type="3010" element="_5gK9gVySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5i79pFySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5i79pVySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5i79plySEei8Ja-whe6hFw" type="3010" element="_5gK9g1ySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5i79p1ySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5i79qFySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5iXWFlySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5iXWF1ySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5iXWElySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5iXWE1ySEei8Ja-whe6hFw" x="10802" y="830"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5iXWGFySEei8Ja-whe6hFw" type="2003" element="_5epTilySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5iXWG1ySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5iXWHFySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5i79qVySEei8Ja-whe6hFw" type="3010" element="_5gK9hVySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5i79qlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5i79q1ySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5iXWHVySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5iXWHlySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5iXWGVySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5iXWGlySEei8Ja-whe6hFw" x="10525" y="990"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5iXWH1ySEei8Ja-whe6hFw" type="2003" element="_5epTjFySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5iXWIlySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5iXWI1ySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5i79rFySEei8Ja-whe6hFw" type="3010" element="_5gK9h1ySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5i79rVySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5i79rlySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5iXWJFySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5iXWJVySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5iXWIFySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5iXWIVySEei8Ja-whe6hFw" x="9837" y="990"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5iXWJlySEei8Ja-whe6hFw" type="2003" element="_5epTjlySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5iXWKVySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5iXWKlySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5i79r1ySEei8Ja-whe6hFw" type="3010" element="_5gK9iVySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5i79sFySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5i79sVySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5iXWK1ySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5iXWLFySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5iXWJ1ySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5iXWKFySEei8Ja-whe6hFw" x="10317" y="990"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5iXWLVySEei8Ja-whe6hFw" type="2003" element="_5epTkFySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5iXWMFySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5iXWMVySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5i79slySEei8Ja-whe6hFw" type="3010" element="_5gK9i1ySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5i79s1ySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5i79tFySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5i79tVySEei8Ja-whe6hFw" type="3010" element="_5gK9jVySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5i79tlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5i79t1ySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5iXWMlySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5iXWM1ySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5iXWLlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5iXWL1ySEei8Ja-whe6hFw" x="8335" y="830"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5iXWNFySEei8Ja-whe6hFw" type="2003" element="_5epTklySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5iXWN1ySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5iXWOFySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5i79uFySEei8Ja-whe6hFw" type="3010" element="_5gK9j1ySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5i79uVySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5i79ulySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5iXWOVySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5iXWOlySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5iXWNVySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5iXWNlySEei8Ja-whe6hFw" x="9623" y="990"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5iXWO1ySEei8Ja-whe6hFw" type="2003" element="_5epTlFySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5iXWPlySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5iXWP1ySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5i79u1ySEei8Ja-whe6hFw" type="3010" element="_5gK9kVySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5i79vFySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5i79vVySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5i79vlySEei8Ja-whe6hFw" type="3010" element="_5gK9k1ySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5i79v1ySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5i79wFySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5iXWQFySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5iXWQVySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5iXWPFySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5iXWPVySEei8Ja-whe6hFw" x="10065" y="990"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5iXWQlySEei8Ja-whe6hFw" type="2003" element="_5epTllySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5iXWRVySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5iXWRlySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5i79wVySEei8Ja-whe6hFw" type="3010" element="_5gK9lVySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5i79wlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5i79w1ySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5i79xFySEei8Ja-whe6hFw" type="3010" element="_5gK9l1ySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5i79xVySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5i79xlySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5iXWR1ySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5iXWSFySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5iXWQ1ySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5iXWRFySEei8Ja-whe6hFw" x="8040" y="830"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5iXWSVySEei8Ja-whe6hFw" type="2003" element="_5evaIFySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5iXWTFySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5iXWTVySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5i79x1ySEei8Ja-whe6hFw" type="3010" element="_5gK9mVySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5i79yFySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5i79yVySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5iXWTlySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5iXWT1ySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5iXWSlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5iXWS1ySEei8Ja-whe6hFw" x="9410" y="990"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5iXWUFySEei8Ja-whe6hFw" type="2003" element="_5evaIlySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5idcgFySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5idcgVySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5i79ylySEei8Ja-whe6hFw" type="3010" element="_5gK9m1ySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5i79y1ySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5i79zFySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5idcglySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5idcg1ySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5iXWUVySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5iXWUlySEei8Ja-whe6hFw" x="8990" y="990"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5idchFySEei8Ja-whe6hFw" type="2003" element="_5evaJFySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5idch1ySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5idciFySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5i79zVySEei8Ja-whe6hFw" type="3010" element="_5gK9nVySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5i79zlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5i79z1ySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5i790FySEei8Ja-whe6hFw" type="3010" element="_5gREIFySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5i790VySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5i790lySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5idciVySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5idcilySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5idchVySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5idchlySEei8Ja-whe6hFw" x="8509" y="990"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5idcklySEei8Ja-whe6hFw" type="2003" element="_5evaKFySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5idclVySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5idcllySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5i791lySEei8Ja-whe6hFw" type="3010" element="_5gREJFySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5i7911ySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5i792FySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5idcl1ySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5idcmFySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5idck1ySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5idclFySEei8Ja-whe6hFw" x="8297" y="990"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5idcmVySEei8Ja-whe6hFw" type="2003" element="_5evaKlySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5idcnFySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5idcnVySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5i792VySEei8Ja-whe6hFw" type="3010" element="_5gREJlySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5i792lySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5i7921ySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5idcnlySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5idcn1ySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5idcmlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5idcm1ySEei8Ja-whe6hFw" x="7636" y="990"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5idcoFySEei8Ja-whe6hFw" type="2003" element="_5evaLFySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5idco1ySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5idcpFySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5i793FySEei8Ja-whe6hFw" type="3010" element="_5gREKFySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5i793VySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5i793lySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5idcpVySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5idcplySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5idcoVySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5idcolySEei8Ja-whe6hFw" x="7425" y="990"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5idcp1ySEei8Ja-whe6hFw" type="2003" element="_5evaLlySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5idcqlySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5idcq1ySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5i7931ySEei8Ja-whe6hFw" type="3010" element="_5gREKlySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5i794FySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5i794VySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5idcrFySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5idcrVySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5idcqFySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5idcqVySEei8Ja-whe6hFw" x="7846" y="990"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5idcrlySEei8Ja-whe6hFw" type="2003" element="_5evaMFySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5idcsVySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5idcslySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5i794lySEei8Ja-whe6hFw" type="3010" element="_5gRELFySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5i7941ySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5i795FySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5idcs1ySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5idctFySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5idcr1ySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5idcsFySEei8Ja-whe6hFw" x="8760" y="990"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5idctVySEei8Ja-whe6hFw" type="2003" element="_5evaMlySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5idcuFySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5idcuVySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5i795VySEei8Ja-whe6hFw" type="3010" element="_5gRELlySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5i795lySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5i7951ySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5i796FySEei8Ja-whe6hFw" type="3010" element="_5gREMFySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5i796VySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5i796lySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5idculySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5idcu1ySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5idctlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5idct1ySEei8Ja-whe6hFw" x="8635" y="830"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5idcvFySEei8Ja-whe6hFw" type="2003" element="_5evaNFySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5idcv1ySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5idcwFySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5i7961ySEei8Ja-whe6hFw" type="3010" element="_5gREMlySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5i797FySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5i797VySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5idcwVySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5idcwlySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5idcvVySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5idcvlySEei8Ja-whe6hFw" x="10740" y="990"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5idcw1ySEei8Ja-whe6hFw" type="2003" element="_5e1gwFySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5idcxlySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5idcx1ySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5i797lySEei8Ja-whe6hFw" type="3010" element="_5gRENFySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5i7971ySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5i798FySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5idcyFySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5idcyVySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5idcxFySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5idcxVySEei8Ja-whe6hFw" x="9200" y="990"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5idcylySEei8Ja-whe6hFw" type="2003" element="_5e1gwlySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5idczVySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5idczlySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5i798VySEei8Ja-whe6hFw" type="3010" element="_5gRENlySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5i798lySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5i7981ySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5idcz1ySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5idc0FySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5idcy1ySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5idczFySEei8Ja-whe6hFw" x="6300" y="830"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5idc0VySEei8Ja-whe6hFw" type="2003" element="_5e1gxFySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5idc1FySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5idc1VySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5i799FySEei8Ja-whe6hFw" type="3010" element="_5gREOFySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5i799VySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5i799lySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5i7991ySEei8Ja-whe6hFw" type="3010" element="_5gREOlySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5i79-FySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5i79-VySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5idc1lySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5idc11ySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5idc0lySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5idc01ySEei8Ja-whe6hFw" x="5680" y="990"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5idc2FySEei8Ja-whe6hFw" type="2003" element="_5e1gxlySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5idc21ySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5idc3FySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5jCEQFySEei8Ja-whe6hFw" type="3010" element="_5gREPFySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jCEQVySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jCEQlySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5jCEQ1ySEei8Ja-whe6hFw" type="3010" element="_5gREPlySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jCERFySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jCERVySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5idc3VySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5idc3lySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5idc2VySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5idc2lySEei8Ja-whe6hFw" x="5385" y="990"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5ijjOFySEei8Ja-whe6hFw" type="2003" element="_5e1g0FySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5ijjO1ySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5ijjPFySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5jCEZFySEei8Ja-whe6hFw" type="3010" element="_5gXK0lySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jCEZVySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jCEZlySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5jCEZ1ySEei8Ja-whe6hFw" type="3010" element="_5gXK1FySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jCEaFySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jCEaVySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5jCEalySEei8Ja-whe6hFw" type="3010" element="_5gXK1lySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jCEa1ySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jCEbFySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5ijjPVySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5ijjPlySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5ijjOVySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5ijjOlySEei8Ja-whe6hFw" x="10075" y="830"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5ijjP1ySEei8Ja-whe6hFw" type="2003" element="_5e1g0lySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5ijjQlySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5ijjQ1ySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5jCEbVySEei8Ja-whe6hFw" type="3010" element="_5gXK2FySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jCEblySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jCEb1ySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5jCEcFySEei8Ja-whe6hFw" type="3010" element="_5gXK2lySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jCEcVySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jCEclySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5jCEc1ySEei8Ja-whe6hFw" type="3010" element="_5gXK3FySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jCEdFySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jCEdVySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5ijjRFySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5ijjRVySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5ijjQFySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5ijjQVySEei8Ja-whe6hFw" x="9778" y="830"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5ijjRlySEei8Ja-whe6hFw" type="2003" element="_5e7nYFySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5ijjSVySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5ijjSlySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5jCEdlySEei8Ja-whe6hFw" type="3010" element="_5gXK3lySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jCEd1ySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jCEeFySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5jCEeVySEei8Ja-whe6hFw" type="3010" element="_5gXK4FySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jCEelySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jCEe1ySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5jCEfFySEei8Ja-whe6hFw" type="3010" element="_5gXK4lySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jCEfVySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jCEflySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5ijjS1ySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5ijjTFySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5ijjR1ySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5ijjSFySEei8Ja-whe6hFw" x="11320" y="670"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5ijjTVySEei8Ja-whe6hFw" type="2003" element="_5e7nYlySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5ijjUFySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5ijjUVySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5jCEf1ySEei8Ja-whe6hFw" type="3010" element="_5gXK5FySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jCEgFySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jCEgVySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5jCEglySEei8Ja-whe6hFw" type="3010" element="_5gXK5lySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jCEg1ySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jCEhFySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5ijjUlySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5ijjU1ySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5ijjTlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5ijjT1ySEei8Ja-whe6hFw" x="11350" y="830"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5ijjVFySEei8Ja-whe6hFw" type="2003" element="_5e7nZFySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5ijjV1ySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5ijjWFySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5jCEhVySEei8Ja-whe6hFw" type="3010" element="_5gXK6FySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jCEhlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jCEh1ySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5jCEiFySEei8Ja-whe6hFw" type="3010" element="_5gdRYVySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jCEiVySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jCEilySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5ijjWVySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5ijjWlySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5ijjVVySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5ijjVlySEei8Ja-whe6hFw" x="11600" y="830"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5ijjW1ySEei8Ja-whe6hFw" type="2003" element="_5e7nZlySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5ijjXlySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5ijjX1ySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5jCEi1ySEei8Ja-whe6hFw" type="3010" element="_5gdRY1ySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jCEjFySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jCEjVySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5jCEjlySEei8Ja-whe6hFw" type="3010" element="_5gdRZVySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jCEj1ySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jCEkFySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5ijjYFySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5ijjYVySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5ijjXFySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5ijjXVySEei8Ja-whe6hFw" x="11850" y="830"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5ijjYlySEei8Ja-whe6hFw" type="2003" element="_5e7naFySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5ijjZVySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5ijjZlySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5jCEkVySEei8Ja-whe6hFw" type="3010" element="_5gdRZ1ySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jCEklySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jCEk1ySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5jCElFySEei8Ja-whe6hFw" type="3010" element="_5gdRaVySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jCElVySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jCEllySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5ijjZ1ySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5ijjaFySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5ijjY1ySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5ijjZFySEei8Ja-whe6hFw" x="12100" y="830"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5ijjaVySEei8Ja-whe6hFw" type="2003" element="_5e7nalySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5ijjbFySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5ijjbVySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5jCEl1ySEei8Ja-whe6hFw" type="3010" element="_5gdRa1ySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jCEmFySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8" bold="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jCEmVySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5jCEmlySEei8Ja-whe6hFw" type="3010" element="_5gdRbVySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jCEm1ySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jCEnFySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5jCEnVySEei8Ja-whe6hFw" type="3010" element="_5gdRb1ySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jCEnlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jCEn1ySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5ijjblySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5ijjb1ySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5ijjalySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5ijja1ySEei8Ja-whe6hFw" x="11095" y="830"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5ijjcFySEei8Ja-whe6hFw" type="2003" element="_5e7nbFySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5ijjc1ySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5ijjdFySEei8Ja-whe6hFw" type="7004">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5ijjdVySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5ijjdlySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5ijjcVySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5ijjclySEei8Ja-whe6hFw" x="3605" y="670"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5ijjd1ySEei8Ja-whe6hFw" type="2003" element="_5e7nblySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5ijjelySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5ijje1ySEei8Ja-whe6hFw" type="7004">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5ijjfFySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5ijjfVySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5ijjeFySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5ijjeVySEei8Ja-whe6hFw" x="4930" y="830"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5ijjflySEei8Ja-whe6hFw" type="2003" element="_5e7ncFySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5ijjgVySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5ijjglySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5jCEoFySEei8Ja-whe6hFw" type="3010" element="_5gdRcVySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jCEoVySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jCEolySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5jIK4FySEei8Ja-whe6hFw" type="3010" element="_5gdRc1ySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jIK4VySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jIK4lySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5jIK41ySEei8Ja-whe6hFw" type="3010" element="_5gdRdVySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jIK5FySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jIK5VySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5ijjg1ySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5ijjhFySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5ijjf1ySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5ijjgFySEei8Ja-whe6hFw" x="4535" y="1150"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5ippwFySEei8Ja-whe6hFw" type="2003" element="_5e7nclySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5ippw1ySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5ippxFySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5jIK5lySEei8Ja-whe6hFw" type="3010" element="_5gdRd1ySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jIK51ySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jIK6FySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5jIK6VySEei8Ja-whe6hFw" type="3010" element="_5gdReVySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jIK6lySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jIK61ySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5jIK7FySEei8Ja-whe6hFw" type="3010" element="_5gdRe1ySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jIK7VySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jIK7lySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5ippxVySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5ippxlySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5ippwVySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5ippwlySEei8Ja-whe6hFw" x="4240" y="1150"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5ippx1ySEei8Ja-whe6hFw" type="2003" element="_5e7ndFySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5ippylySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5ippy1ySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5jIK71ySEei8Ja-whe6hFw" type="3010" element="_5gdRfVySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jIK8FySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jIK8VySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5jIK8lySEei8Ja-whe6hFw" type="3010" element="_5gdRf1ySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jIK81ySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jIK9FySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5jIK9VySEei8Ja-whe6hFw" type="3010" element="_5gdRgVySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jIK9lySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jIK91ySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5ippzFySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5ippzVySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5ippyFySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5ippyVySEei8Ja-whe6hFw" x="9485" y="830"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5ippzlySEei8Ja-whe6hFw" type="2003" element="_5fBuAFySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5ipp0VySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5ipp0lySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5jIK-FySEei8Ja-whe6hFw" type="3010" element="_5gdRg1ySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jIK-VySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jIK-lySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5jIK-1ySEei8Ja-whe6hFw" type="3010" element="_5gdRhVySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jIK_FySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jIK_VySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5ipp01ySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5ipp1FySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5ippz1ySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5ipp0FySEei8Ja-whe6hFw" x="3939" y="1150"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5ipp1VySEei8Ja-whe6hFw" type="2003" element="_5fBuAlySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5ipp2FySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5ipp2VySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5jILAVySEei8Ja-whe6hFw" type="3010" element="_5gjYAlySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jILAlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jILA1ySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5ipp2lySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5ipp21ySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5ipp1lySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5ipp11ySEei8Ja-whe6hFw" x="2000" y="670"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5ipp3FySEei8Ja-whe6hFw" type="2003" element="_5fBuBFySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5ipp31ySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5ipp4FySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5jILBFySEei8Ja-whe6hFw" type="3010" element="_5gjYBFySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jILBVySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jILBlySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5ipp4VySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5ipp4lySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5ipp3VySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5ipp3lySEei8Ja-whe6hFw" x="4210" y="990"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5ipp41ySEei8Ja-whe6hFw" type="2003" element="_5fBuBlySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5ipp5lySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5ipp51ySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5jILB1ySEei8Ja-whe6hFw" type="3010" element="_5gjYBlySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jILCFySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jILCVySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5jILClySEei8Ja-whe6hFw" type="3010" element="_5gjYCFySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jILC1ySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jILDFySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5ipp6FySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5ipp6VySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5ipp5FySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5ipp5VySEei8Ja-whe6hFw" x="3780" y="670"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5ipp6lySEei8Ja-whe6hFw" type="2003" element="_5fBuCFySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5ipp7VySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5ipp7lySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5jILDVySEei8Ja-whe6hFw" type="3010" element="_5gjYClySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jILDlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jILD1ySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5ipp71ySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5ipp8FySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5ipp61ySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5ipp7FySEei8Ja-whe6hFw" x="8934" y="830"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5ipp8VySEei8Ja-whe6hFw" type="2003" element="_5fBuClySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5ipp9FySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5ipp9VySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5jILEFySEei8Ja-whe6hFw" type="3010" element="_5gjYDFySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jILEVySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jILElySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5jILE1ySEei8Ja-whe6hFw" type="3010" element="_5gjYDlySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jILFFySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jILFVySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5ipp9lySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5ipp91ySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5ipp8lySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5ipp81ySEei8Ja-whe6hFw" x="10950" y="990"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5ipp-FySEei8Ja-whe6hFw" type="2003" element="_5fBuDFySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5ipp-1ySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5ipp_FySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5jILFlySEei8Ja-whe6hFw" type="3010" element="_5gjYEFySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jILF1ySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jILGFySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5ipp_VySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5ipp_lySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5ipp-VySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5ipp-lySEei8Ja-whe6hFw" x="5110" y="830"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5ipp_1ySEei8Ja-whe6hFw" type="2003" element="_5fBuDlySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5ipqAlySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5ipqA1ySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5jILGVySEei8Ja-whe6hFw" type="3010" element="_5gjYElySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jILGlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jILG1ySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5jILHFySEei8Ja-whe6hFw" type="3010" element="_5gjYFFySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jILHVySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jILHlySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5ipqBFySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5ipqBVySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5ipqAFySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5ipqAVySEei8Ja-whe6hFw" x="5085" y="990"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5ipqBlySEei8Ja-whe6hFw" type="2003" element="_5fBuEFySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5ipqCVySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5ipqClySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5jILH1ySEei8Ja-whe6hFw" type="3010" element="_5gpeoFySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jILIFySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jILIVySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5jILIlySEei8Ja-whe6hFw" type="3010" element="_5gpeolySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jILI1ySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jILJFySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5ipqC1ySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5ipqDFySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5ipqB1ySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5ipqCFySEei8Ja-whe6hFw" x="4785" y="990"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5ipqDVySEei8Ja-whe6hFw" type="2003" element="_5fBuElySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5ipqEFySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5ipqEVySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5jILJVySEei8Ja-whe6hFw" type="3010" element="_5gpepFySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jILJlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jILJ1ySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5jILKFySEei8Ja-whe6hFw" type="3010" element="_5gpeplySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jILKVySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jILKlySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5ipqElySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5ipqE1ySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5ipqDlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5ipqD1ySEei8Ja-whe6hFw" x="9185" y="830"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5ivwgFySEei8Ja-whe6hFw" type="2003" element="_5fH0rFySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5ivwg1ySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5ivwhFySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5jORg1ySEei8Ja-whe6hFw" type="3010" element="_5gvlRVySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jORhFySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jORhVySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5jORj1ySEei8Ja-whe6hFw" type="3010" element="_5gvlTVySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jORkFySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jORkVySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_QCemoIsTEeiuX8plUFkEQQ" type="3010" element="_QBST0IsTEeiuX8plUFkEQQ">
+ <styles xmi:type="notation:FontStyle" xmi:id="_QCemoYsTEeiuX8plUFkEQQ" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QCemoosTEeiuX8plUFkEQQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ZGaekIsOEeiuX8plUFkEQQ" type="3010" element="_ZEkEcIsOEeiuX8plUFkEQQ">
+ <styles xmi:type="notation:FontStyle" xmi:id="_ZGaekYsOEeiuX8plUFkEQQ" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZGaekosOEeiuX8plUFkEQQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ZGbFoIsOEeiuX8plUFkEQQ" type="3010" element="_ZEkEcosOEeiuX8plUFkEQQ">
+ <styles xmi:type="notation:FontStyle" xmi:id="_ZGbFoYsOEeiuX8plUFkEQQ" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZGbFoosOEeiuX8plUFkEQQ"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5ivwhVySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5ivwhlySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5ivwgVySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5ivwglySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5ivwjlySEei8Ja-whe6hFw" type="2003" element="_5fH0sFySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5ivwkVySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5ivwklySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5jORpFySEei8Ja-whe6hFw" type="3010" element="_5g1r61ySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jORpVySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jORplySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5jORp1ySEei8Ja-whe6hFw" type="3010" element="_5g1r7VySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jORqFySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jORqVySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5jORqlySEei8Ja-whe6hFw" type="3010" element="_5g1r71ySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jORq1ySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jORrFySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5jORrVySEei8Ja-whe6hFw" type="3010" element="_5g1r8VySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jORrlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jORr1ySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5jORsFySEei8Ja-whe6hFw" type="3010" element="_5g1r81ySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jORsVySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jORslySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5jORs1ySEei8Ja-whe6hFw" type="3010" element="_5g1r9VySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jORtFySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jORtVySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5jORtlySEei8Ja-whe6hFw" type="3010" element="_5g1r91ySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jORt1ySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jORuFySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5jORuVySEei8Ja-whe6hFw" type="3010" element="_5g1r-VySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jORulySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jORu1ySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5jORvFySEei8Ja-whe6hFw" type="3010" element="_5g1r-1ySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jORvVySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jORvlySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5jORv1ySEei8Ja-whe6hFw" type="3010" element="_5g1r_VySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jORwFySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jORwVySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5jORwlySEei8Ja-whe6hFw" type="3010" element="_5g1r_1ySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jORw1ySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jORxFySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5jORxVySEei8Ja-whe6hFw" type="3010" element="_5g1sAVySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jORxlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jORx1ySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5jORzlySEei8Ja-whe6hFw" type="3010" element="_5g1sB1ySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jORz1ySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jOR0FySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_CKD64IDREeutB9ElOMNRZA" type="3010" element="_CIX40IDREeutB9ElOMNRZA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_CKD64YDREeutB9ElOMNRZA" fontName="Yu Gothic UI" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CKD64oDREeutB9ElOMNRZA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_CKEh8IDREeutB9ElOMNRZA" type="3010" element="_CIX40oDREeutB9ElOMNRZA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_CKEh8YDREeutB9ElOMNRZA" fontName="Yu Gothic UI" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CKEh8oDREeutB9ElOMNRZA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_CKFJAIDREeutB9ElOMNRZA" type="3010" element="_CIYf4YDREeutB9ElOMNRZA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_CKFJAYDREeutB9ElOMNRZA" fontName="Yu Gothic UI" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CKFJAoDREeutB9ElOMNRZA"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5ivwk1ySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5ivwlFySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5ivwj1ySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5ivwkFySEei8Ja-whe6hFw" x="260"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5ivwlVySEei8Ja-whe6hFw" type="2003" element="_5fH0slySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5ivwmFySEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_5ivwmVySEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_5jOR0VySEei8Ja-whe6hFw" type="3010" element="_5g1sCVySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jOR0lySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jOR01ySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5jOR1FySEei8Ja-whe6hFw" type="3010" element="_5g1sC1ySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jOR1VySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jOR1lySEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5jOR11ySEei8Ja-whe6hFw" type="3010" element="_5g1sDVySEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jOR2FySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5jOR2VySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5ivwmlySEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5ivwm1ySEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5ivwllySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5ivwl1ySEei8Ja-whe6hFw" x="450"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_sL1JgJliEeijptRUADwljg" type="2003" element="_sK3gMJliEeijptRUADwljg">
+ <children xmi:type="notation:Node" xmi:id="_sL2-sJliEeijptRUADwljg" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_sL2-sZliEeijptRUADwljg" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_sL4z4JliEeijptRUADwljg" type="3010" element="_sLPToJliEeijptRUADwljg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_sL4z4ZliEeijptRUADwljg" fontName="Meiryo UI" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_sL4z4pliEeijptRUADwljg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_sL5a8JliEeijptRUADwljg" type="3010" element="_sLPTopliEeijptRUADwljg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_sL5a8ZliEeijptRUADwljg" fontName="Meiryo UI" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_sL5a8pliEeijptRUADwljg"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_sL2-spliEeijptRUADwljg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_sL2-s5liEeijptRUADwljg"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_sL1JgZliEeijptRUADwljg" fontName="Meiryo UI" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sL1JgpliEeijptRUADwljg" x="1490" y="1090"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_3taWUJliEeijptRUADwljg" type="2003" element="_3s1ukJliEeijptRUADwljg">
+ <children xmi:type="notation:Node" xmi:id="_3taWU5liEeijptRUADwljg" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_3taWVJliEeijptRUADwljg" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_3ta9YJliEeijptRUADwljg" type="3010" element="_3tJ3oJliEeijptRUADwljg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_3ta9YZliEeijptRUADwljg" fontName="Meiryo UI" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3ta9YpliEeijptRUADwljg"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3taWVZliEeijptRUADwljg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3taWVpliEeijptRUADwljg"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_3taWUZliEeijptRUADwljg" fontName="Meiryo UI" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3taWUpliEeijptRUADwljg" x="1490" y="1300"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="__BhdIJliEeijptRUADwljg" type="2003" element="__A05kJliEeijptRUADwljg">
+ <children xmi:type="notation:Node" xmi:id="__BiEMJliEeijptRUADwljg" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="__BiEMZliEeijptRUADwljg" type="7004">
+ <children xmi:type="notation:Node" xmi:id="__BkgcJliEeijptRUADwljg" type="3010" element="__BNUEJliEeijptRUADwljg">
+ <styles xmi:type="notation:FontStyle" xmi:id="__BkgcZliEeijptRUADwljg" fontName="Meiryo UI" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__BkgcpliEeijptRUADwljg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="__Bkgc5liEeijptRUADwljg" type="3010" element="__BNUEpliEeijptRUADwljg">
+ <styles xmi:type="notation:FontStyle" xmi:id="__BkgdJliEeijptRUADwljg" fontName="Meiryo UI" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__BkgdZliEeijptRUADwljg"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__BiEMpliEeijptRUADwljg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__BiEM5liEeijptRUADwljg"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="__BhdIZliEeijptRUADwljg" fontName="Meiryo UI" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__BhdIpliEeijptRUADwljg" x="4490" y="990"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="__BiEO5liEeijptRUADwljg" type="2003" element="__A1gopliEeijptRUADwljg">
+ <children xmi:type="notation:Node" xmi:id="__BirQJliEeijptRUADwljg" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="__BirQZliEeijptRUADwljg" type="7004">
+ <children xmi:type="notation:Node" xmi:id="__BkgdpliEeijptRUADwljg" type="3010" element="__BNUFJliEeijptRUADwljg">
+ <styles xmi:type="notation:FontStyle" xmi:id="__Bkgd5liEeijptRUADwljg" fontName="Meiryo UI" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__BkgeJliEeijptRUADwljg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="__BkgeZliEeijptRUADwljg" type="3010" element="__BN7IZliEeijptRUADwljg">
+ <styles xmi:type="notation:FontStyle" xmi:id="__BkgepliEeijptRUADwljg" fontName="Meiryo UI" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__Bkge5liEeijptRUADwljg"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__BirQpliEeijptRUADwljg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__BirQ5liEeijptRUADwljg"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="__BiEPJliEeijptRUADwljg" fontName="Meiryo UI" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__BiEPZliEeijptRUADwljg" x="11845" y="990"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_7gf4GFqFEei8Ja-whe6hFw"/>
+ <edges xmi:type="notation:Edge" xmi:id="_5jglYFySEei8Ja-whe6hFw" type="4001" element="_5g7ygFySEei8Ja-whe6hFw" source="_5iRPXFySEei8Ja-whe6hFw" target="_5iRPVVySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5jglZFySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5jglZVySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5jglZlySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5jglZ1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5jglaFySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5jglaVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5jglYVySEei8Ja-whe6hFw" routing="Rectilinear"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5jglYlySEei8Ja-whe6hFw" fontColor="7490599" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5jglY1ySEei8Ja-whe6hFw" points="[0, -50, -238, 110]$[238, -110, 0, 50]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kXhAFySEei8Ja-whe6hFw" id="(0.5,0.5)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kXhAVySEei8Ja-whe6hFw" id="(0.5,0.5)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5kXhJlySEei8Ja-whe6hFw" type="4001" element="_5hB5MlySEei8Ja-whe6hFw" source="_5iRPjVySEei8Ja-whe6hFw" target="_5iXV_FySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5kXhKlySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kXhK1ySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kXhLFySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kXhLVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kXhLlySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kXhL1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5kXhJ1ySEei8Ja-whe6hFw" routing="Rectilinear"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5kXhKFySEei8Ja-whe6hFw" fontColor="7490599" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5kXhKVySEei8Ja-whe6hFw" points="[0, 0, -1888, 60]$[1888, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kXhMFySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kXhMVySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5kXhPlySEei8Ja-whe6hFw" type="4001" element="_5hB5PVySEei8Ja-whe6hFw" source="_5iRPm1ySEei8Ja-whe6hFw" target="_5iXV_FySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5kXhQlySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kXhQ1ySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kXhRFySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kXhRVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kXhRlySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kXhR1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5kXhP1ySEei8Ja-whe6hFw" routing="Rectilinear"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5kXhQFySEei8Ja-whe6hFw" fontColor="7490599" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5kXhQVySEei8Ja-whe6hFw" points="[0, 0, 370, 220]$[-84, -160, 286, 60]$[-370, -220, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kXhSFySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kXhSVySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5kXhSlySEei8Ja-whe6hFw" type="4001" element="_5hB5QVySEei8Ja-whe6hFw" source="_5iXV4FySEei8Ja-whe6hFw" target="_5iXV_FySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5kXhTlySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kXhT1ySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kXhUFySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kXhUVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kXhUlySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kXhU1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5kXhS1ySEei8Ja-whe6hFw" routing="Rectilinear"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5kXhTFySEei8Ja-whe6hFw" fontColor="7490599" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5kXhTVySEei8Ja-whe6hFw" points="[0, 0, 3514, 60]$[-3514, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kXhVFySEei8Ja-whe6hFw" id="(0.49586776859504134,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kXhVVySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5kXhYlySEei8Ja-whe6hFw" type="4001" element="_5hH_wFySEei8Ja-whe6hFw" source="_5iXWA1ySEei8Ja-whe6hFw" target="_5iXV_FySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5kXhZlySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kXhZ1ySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kXhaFySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kXhaVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kXhalySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kXha1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5kXhY1ySEei8Ja-whe6hFw" routing="Rectilinear"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5kXhZFySEei8Ja-whe6hFw" fontColor="7490599" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5kXhZVySEei8Ja-whe6hFw" points="[0, 0, 3020, 60]$[-3020, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kXhbFySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kXhbVySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5kXhblySEei8Ja-whe6hFw" type="4001" element="_5hH_xFySEei8Ja-whe6hFw" source="_5iXWClySEei8Ja-whe6hFw" target="_5iRPY1ySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5kXhclySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kXhc1ySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kdnoFySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kdnoVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kdnolySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kdno1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5kXhb1ySEei8Ja-whe6hFw" routing="Rectilinear"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5kXhcFySEei8Ja-whe6hFw" fontColor="7490599" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5kXhcVySEei8Ja-whe6hFw" points="[0, 0, 4930, 60]$[-4930, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kdnpFySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kdnpVySEei8Ja-whe6hFw" id="(0.4978902953586498,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5kdnplySEei8Ja-whe6hFw" type="4001" element="_5hH_yFySEei8Ja-whe6hFw" source="_5iXWEVySEei8Ja-whe6hFw" target="_5iXWClySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5kdnqlySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kdnq1ySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kdnrFySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kdnrVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kdnrlySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kdnr1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5kdnp1ySEei8Ja-whe6hFw" routing="Rectilinear"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5kdnqFySEei8Ja-whe6hFw" fontColor="7490599" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5kdnqVySEei8Ja-whe6hFw" points="[0, 0, 3397, 60]$[-3397, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kdnsFySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kdnsVySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5kdnslySEei8Ja-whe6hFw" type="4001" element="_5hH_zFySEei8Ja-whe6hFw" source="_5ippzlySEei8Ja-whe6hFw" target="_5ipp1VySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5kdntlySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kdnt1ySEei8Ja-whe6hFw" x="170" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kdnuFySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kdnuVySEei8Ja-whe6hFw" x="52" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kdnulySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kdnu1ySEei8Ja-whe6hFw" x="102" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5kdns1ySEei8Ja-whe6hFw" routing="Rectilinear"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5kdntFySEei8Ja-whe6hFw" fontColor="7490599" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5kdntVySEei8Ja-whe6hFw" points="[0, 0, 1940, 382]$[0, -223, 1940, 159]$[-1887, -223, 53, 159]$[-1887, -382, 53, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kdnvFySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kdnvVySEei8Ja-whe6hFw" id="(0.4978902953586498,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5kdnvlySEei8Ja-whe6hFw" type="4001" element="_5hH_0FySEei8Ja-whe6hFw" source="_5ippzlySEei8Ja-whe6hFw" target="_5iXV_FySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5kdnwlySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kdnw1ySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kdnxFySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kdnxVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kdnxlySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kdnx1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5kdnv1ySEei8Ja-whe6hFw" routing="Rectilinear"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5kdnwFySEei8Ja-whe6hFw" fontColor="7490599" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5kdnwVySEei8Ja-whe6hFw" points="[0, 0, -189, 540]$[1, -320, -188, 220]$[82, -381, -107, 159]$[84, -480, -105, 60]$[189, -540, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kdnyFySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kdnyVySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5kdnylySEei8Ja-whe6hFw" type="4001" element="_5hH_1FySEei8Ja-whe6hFw" source="_5ipp41ySEei8Ja-whe6hFw" target="_5iXV_FySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5kdnzlySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kdnz1ySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kdn0FySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kdn0VySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kdn0lySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kdn01ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5kdny1ySEei8Ja-whe6hFw" routing="Rectilinear"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5kdnzFySEei8Ja-whe6hFw" fontColor="7490599" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5kdnzVySEei8Ja-whe6hFw" points="[0, 0, -345, 60]$[345, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kdn1FySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kdn1VySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5kdn1lySEei8Ja-whe6hFw" type="4001" element="_5hH_2FySEei8Ja-whe6hFw" source="_5ipp41ySEei8Ja-whe6hFw" target="_5iXV_FySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5kdn2lySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kdn21ySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kdn3FySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kdn3VySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kdn3lySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kdn31ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5kdn11ySEei8Ja-whe6hFw" routing="Rectilinear"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5kdn2FySEei8Ja-whe6hFw" fontColor="7490599" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5kdn2VySEei8Ja-whe6hFw" points="[0, 0, -345, 60]$[345, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kdn4FySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kdn4VySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5kdn4lySEei8Ja-whe6hFw" type="4001" element="_5hH_3FySEei8Ja-whe6hFw" source="_5ipp41ySEei8Ja-whe6hFw" target="_5iXV_FySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5kdn5lySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kdn51ySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kdn6FySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kdn6VySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kdn6lySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kdn61ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5kdn41ySEei8Ja-whe6hFw" routing="Rectilinear"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5kdn5FySEei8Ja-whe6hFw" fontColor="7490599" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5kdn5VySEei8Ja-whe6hFw" points="[0, 0, -345, 60]$[345, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kdn7FySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kdn7VySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5kjuwFySEei8Ja-whe6hFw" type="4001" element="_5haToFySEei8Ja-whe6hFw" source="_5iRPQFySEei8Ja-whe6hFw" target="_5iLIoFySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5kjuxFySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kjuxVySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kjuxlySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kjux1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kjuyFySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kjuyVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5kjuwVySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5kjuwlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5kjuw1ySEei8Ja-whe6hFw" points="[0, 0, 0, 60]$[0, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kjuylySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kjuy1ySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5kju2FySEei8Ja-whe6hFw" type="4001" element="_5haTqFySEei8Ja-whe6hFw" source="_5iRPTlySEei8Ja-whe6hFw" target="_5iRPXFySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5kju3FySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kju3VySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kju3lySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kju31ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kp04FySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kp04VySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5kju2VySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5kju2lySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5kju21ySEei8Ja-whe6hFw" points="[0, 0, -472, 60]$[472, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kp04lySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kp041ySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5kp05FySEei8Ja-whe6hFw" type="4001" element="_5haTrFySEei8Ja-whe6hFw" source="_5iRPVVySEei8Ja-whe6hFw" target="_5iRPQFySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5kp06FySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kp06VySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kp06lySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kp061ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kp07FySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kp07VySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5kp05VySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5kp05lySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5kp051ySEei8Ja-whe6hFw" points="[0, 0, 1121, 60]$[-1121, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kp07lySEei8Ja-whe6hFw" id="(0.49606299212598426,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kp071ySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5kp08FySEei8Ja-whe6hFw" type="4001" element="_5hgaQFySEei8Ja-whe6hFw" source="_5iRPXFySEei8Ja-whe6hFw" target="_5iRPVVySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5kp09FySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kp09VySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kp09lySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kp091ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kp0-FySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kp0-VySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5kp08VySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5kp08lySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5kp081ySEei8Ja-whe6hFw" points="[0, 0, -238, 60]$[238, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kp0-lySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kp0-1ySEei8Ja-whe6hFw" id="(0.49606299212598426,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5kp0_FySEei8Ja-whe6hFw" type="4001" element="_5hgaRFySEei8Ja-whe6hFw" source="_5iRPY1ySEei8Ja-whe6hFw" target="_5iRPVVySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5kp1AFySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kp1AVySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kp1AlySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kp1A1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kp1BFySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kp1BVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5kp0_VySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5kp0_lySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5kp0_1ySEei8Ja-whe6hFw" points="[0, 0, 0, 60]$[0, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kp1BlySEei8Ja-whe6hFw" id="(0.4978902953586498,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kp1B1ySEei8Ja-whe6hFw" id="(0.49606299212598426,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5kp1CFySEei8Ja-whe6hFw" type="4001" element="_5hgaSFySEei8Ja-whe6hFw" source="_5iRPalySEei8Ja-whe6hFw" target="_5iRPY1ySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5kp1DFySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kp1DVySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kp1DlySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kp1D1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kp1EFySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kp1EVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5kp1CVySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5kp1ClySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5kp1C1ySEei8Ja-whe6hFw" points="[0, 0, -772, 220]$[-74, -61, -846, 159]$[-74, -160, -846, 60]$[772, -220, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kp1ElySEei8Ja-whe6hFw" id="(0.40271493212669685,0.061224489795918366)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kp1E1ySEei8Ja-whe6hFw" id="(0.4978902953586498,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5kp1FFySEei8Ja-whe6hFw" type="4001" element="_5hgaTFySEei8Ja-whe6hFw" source="_5iRPcVySEei8Ja-whe6hFw" target="_5iRPY1ySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5kp1GFySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kp1GVySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kp1GlySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kp1G1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kp1HFySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kp1HVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5kp1FVySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5kp1FlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5kp1F1ySEei8Ja-whe6hFw" points="[0, 0, 234, 60]$[-234, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kp1HlySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kp1H1ySEei8Ja-whe6hFw" id="(0.4978902953586498,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5kp1IFySEei8Ja-whe6hFw" type="4001" element="_5hgaUFySEei8Ja-whe6hFw" source="_5iRPeFySEei8Ja-whe6hFw" target="_5iRPcVySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5kp1JFySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kp1JVySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kp1JlySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kp1J1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kp1KFySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kp1KVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5kp1IVySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5kp1IlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5kp1I1ySEei8Ja-whe6hFw" points="[0, 0, 191, 60]$[-191, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kp1KlySEei8Ja-whe6hFw" id="(0.4978902953586498,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kp1K1ySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5kp1LFySEei8Ja-whe6hFw" type="4001" element="_5hgaVFySEei8Ja-whe6hFw" source="_5iRPf1ySEei8Ja-whe6hFw" target="_5iRPalySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5kp1MFySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kp1MVySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kp1MlySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kp1M1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kp1NFySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kp1NVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5kp1LVySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5kp1LlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5kp1L1ySEei8Ja-whe6hFw" points="[0, 0, -67, 60]$[67, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kp1NlySEei8Ja-whe6hFw" id="(0.4980237154150198,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kp1N1ySEei8Ja-whe6hFw" id="(0.40271493212669685,1.0612244897959184)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5kp1OFySEei8Ja-whe6hFw" type="4001" element="_5hgaWFySEei8Ja-whe6hFw" source="_5iRPhlySEei8Ja-whe6hFw" target="_5iRPalySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5kp1PFySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kp1PVySEei8Ja-whe6hFw" x="-48" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kp1PlySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kp1P1ySEei8Ja-whe6hFw" x="-79" y="-1"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kp1QFySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kp1QVySEei8Ja-whe6hFw" x="-14" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5kp1OVySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5kp1OlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5kp1O1ySEei8Ja-whe6hFw" points="[0, -98, 100, 204]$[0, -163, 100, 139]$[-63, -163, 37, 139]$[-63, -210, 37, 92]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kp1QlySEei8Ja-whe6hFw" id="(0.16666666666666666,0.02)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kp1Q1ySEei8Ja-whe6hFw" id="(0.40271493212669685,0.061224489795918366)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5kp1RFySEei8Ja-whe6hFw" type="4001" element="_5hgaXFySEei8Ja-whe6hFw" source="_5iRPjVySEei8Ja-whe6hFw" target="_5iRPY1ySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5kp1SFySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kp1SVySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kp1SlySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kp1S1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kp1TFySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kp1TVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5kp1RVySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5kp1RlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5kp1R1ySEei8Ja-whe6hFw" points="[0, 0, -233, 60]$[233, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kp1TlySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kp1T1ySEei8Ja-whe6hFw" id="(0.4978902953586498,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5kp1UFySEei8Ja-whe6hFw" type="4001" element="_5hgaYFySEei8Ja-whe6hFw" source="_5iRPlFySEei8Ja-whe6hFw" target="_5iRPY1ySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5kv7gFySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kv7gVySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kv7glySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kv7g1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kv7hFySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kv7hVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5kp1UVySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5kp1UlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5kp1U1ySEei8Ja-whe6hFw" points="[0, 0, 472, 60]$[-472, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kv7hlySEei8Ja-whe6hFw" id="(0.4978902953586498,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kv7h1ySEei8Ja-whe6hFw" id="(0.4978902953586498,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5kv7iFySEei8Ja-whe6hFw" type="4001" element="_5hgaZFySEei8Ja-whe6hFw" source="_5iRPm1ySEei8Ja-whe6hFw" target="_5iRPlFySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5kv7jFySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kv7jVySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kv7jlySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kv7j1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kv7kFySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kv7kVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5kv7iVySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5kv7ilySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5kv7i1ySEei8Ja-whe6hFw" points="[0, 0, 1553, 60]$[-1553, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kv7klySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kv7k1ySEei8Ja-whe6hFw" id="(0.4978902953586498,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5kv7lFySEei8Ja-whe6hFw" type="4001" element="_5hgaaFySEei8Ja-whe6hFw" source="_5iXV4FySEei8Ja-whe6hFw" target="_5iRPVVySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5kv7mFySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kv7mVySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kv7mlySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kv7m1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kv7nFySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kv7nVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5kv7lVySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5kv7llySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5kv7l1ySEei8Ja-whe6hFw" points="[0, 0, 5169, 220]$[-3351, -160, 1818, 60]$[-5169, -220, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kv7nlySEei8Ja-whe6hFw" id="(0.49586776859504134,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kv7n1ySEei8Ja-whe6hFw" id="(0.49606299212598426,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5kv7oFySEei8Ja-whe6hFw" type="4001" element="_5hgabFySEei8Ja-whe6hFw" source="_5iXV51ySEei8Ja-whe6hFw" target="_5iXV4FySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5kv7pFySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kv7pVySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kv7plySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kv7p1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kv7qFySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kv7qVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5kv7oVySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5kv7olySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5kv7o1ySEei8Ja-whe6hFw" points="[0, 0, 2708, 60]$[-2708, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kv7qlySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kv7q1ySEei8Ja-whe6hFw" id="(0.49586776859504134,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5kv7xFySEei8Ja-whe6hFw" type="4001" element="_5hmg4FySEei8Ja-whe6hFw" source="_5iXWA1ySEei8Ja-whe6hFw" target="_5iXV_FySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5kv7yFySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kv7yVySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kv7ylySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kv7y1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kv7zFySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kv7zVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5kv7xVySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5kv7xlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5kv7x1ySEei8Ja-whe6hFw" points="[0, 0, 3020, 60]$[-3020, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kv7zlySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kv7z1ySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5kv70FySEei8Ja-whe6hFw" type="4001" element="_5hmg5FySEei8Ja-whe6hFw" source="_5iXWClySEei8Ja-whe6hFw" target="_5iXV_FySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5kv71FySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kv71VySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kv71lySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kv711ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kv72FySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kv72VySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5kv70VySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5kv70lySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5kv701ySEei8Ja-whe6hFw" points="[0, 0, 3275, 60]$[-3275, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kv72lySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kv721ySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5kv73FySEei8Ja-whe6hFw" type="4001" element="_5hmg6FySEei8Ja-whe6hFw" source="_5iXWEVySEei8Ja-whe6hFw" target="_5iXV_FySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5kv74FySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kv74VySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kv74lySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kv741ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kv75FySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kv75VySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5kv73VySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5kv73lySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5kv731ySEei8Ja-whe6hFw" points="[0, 0, 6672, 220]$[-3053, -160, 3619, 60]$[-6672, -220, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kv75lySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kv751ySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5kv76FySEei8Ja-whe6hFw" type="4001" element="_5hmg7FySEei8Ja-whe6hFw" source="_5iXWGFySEei8Ja-whe6hFw" target="_5iXWLVySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5kv77FySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kv77VySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kv77lySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kv771ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5kv78FySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5kv78VySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5kv76VySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5kv76lySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5kv761ySEei8Ja-whe6hFw" points="[0, 0, 2145, 60]$[-2145, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kv78lySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5kv781ySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5k2CIFySEei8Ja-whe6hFw" type="4001" element="_5hmg8FySEei8Ja-whe6hFw" source="_5iXWH1ySEei8Ja-whe6hFw" target="_5iXWLVySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5k2CJFySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k2CJVySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5k2CJlySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k2CJ1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5k2CKFySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k2CKVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5k2CIVySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5k2CIlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5k2CI1ySEei8Ja-whe6hFw" points="[0, 0, 1462, 60]$[-1462, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5k2CKlySEei8Ja-whe6hFw" id="(0.497005988023952,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5k2CK1ySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5k2CLFySEei8Ja-whe6hFw" type="4001" element="_5hmg9FySEei8Ja-whe6hFw" source="_5iXWJlySEei8Ja-whe6hFw" target="_5iXWLVySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5k2CMFySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k2CMVySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5k2CMlySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k2CM1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5k2CNFySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k2CNVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5k2CLVySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5k2CLlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5k2CL1ySEei8Ja-whe6hFw" points="[0, 0, 1933, 60]$[-1933, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5k2CNlySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5k2CN1ySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5k2COFySEei8Ja-whe6hFw" type="4001" element="_5hmg-FySEei8Ja-whe6hFw" source="_5iXWLVySEei8Ja-whe6hFw" target="_5iXWA1ySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5k2CPFySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k2CPVySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5k2CPlySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k2CP1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5k2CQFySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k2CQVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5k2COVySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5k2COlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5k2CO1ySEei8Ja-whe6hFw" points="[0, 0, 1191, 60]$[-1191, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5k2CQlySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5k2CQ1ySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5k2CRFySEei8Ja-whe6hFw" type="4001" element="_5hmg_FySEei8Ja-whe6hFw" source="_5iXWNFySEei8Ja-whe6hFw" target="_5iXWLVySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5k2CSFySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k2CSVySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5k2CSlySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k2CS1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5k2CTFySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k2CTVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5k2CRVySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5k2CRlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5k2CR1ySEei8Ja-whe6hFw" points="[0, 0, 1243, 60]$[-1243, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5k2CTlySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5k2CT1ySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5k2CUFySEei8Ja-whe6hFw" type="4001" element="_5hmhAFySEei8Ja-whe6hFw" source="_5iXWO1ySEei8Ja-whe6hFw" target="_5iXWLVySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5k2CVFySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k2CVVySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5k2CVlySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k2CV1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5k2CWFySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k2CWVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5k2CUVySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5k2CUlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5k2CU1ySEei8Ja-whe6hFw" points="[0, 0, 1701, 60]$[-1701, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5k2CWlySEei8Ja-whe6hFw" id="(0.4973821989528796,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5k2CW1ySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5k2CXFySEei8Ja-whe6hFw" type="4001" element="_5hmhBFySEei8Ja-whe6hFw" source="_5iXWQlySEei8Ja-whe6hFw" target="_5iXWA1ySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5k2CYFySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k2CYVySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5k2CYlySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k2CY1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5k2CZFySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k2CZVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5k2CXVySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5k2CXlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5k2CX1ySEei8Ja-whe6hFw" points="[0, 0, 893, 60]$[-893, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5k2CZlySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5k2CZ1ySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5k2CaFySEei8Ja-whe6hFw" type="4001" element="_5hmhCFySEei8Ja-whe6hFw" source="_5iXWSVySEei8Ja-whe6hFw" target="_5iXWQlySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5k2CbFySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k2CbVySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5k2CblySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k2Cb1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5k2CcFySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k2CcVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5k2CaVySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5k2CalySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5k2Ca1ySEei8Ja-whe6hFw" points="[0, 0, 1329, 60]$[-1329, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5k2CclySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5k2Cc1ySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5k2CdFySEei8Ja-whe6hFw" type="4001" element="_5hmhDFySEei8Ja-whe6hFw" source="_5iXWUFySEei8Ja-whe6hFw" target="_5iXWQlySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5k2CeFySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k2CeVySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5k2CelySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k2Ce1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5k2CfFySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k2CfVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5k2CdVySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5k2CdlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5k2Cd1ySEei8Ja-whe6hFw" points="[0, 0, 905, 60]$[-905, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5k2CflySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5k2Cf1ySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5k2CgFySEei8Ja-whe6hFw" type="4001" element="_5hmhEFySEei8Ja-whe6hFw" source="_5idchFySEei8Ja-whe6hFw" target="_5iXWQlySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5k2ChFySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k2ChVySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5k2ChlySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k2Ch1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5k2CiFySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k2CiVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5k2CgVySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5k2CglySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5k2Cg1ySEei8Ja-whe6hFw" points="[0, 0, 443, 60]$[-443, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5k2CilySEei8Ja-whe6hFw" id="(0.4973821989528796,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5k2Ci1ySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5k2CmFySEei8Ja-whe6hFw" type="4001" element="_5hmhGFySEei8Ja-whe6hFw" source="_5idcklySEei8Ja-whe6hFw" target="_5iXWQlySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5k2CnFySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k2CnVySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5k2CnlySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k2Cn1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5k2CoFySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k2CoVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5k2CmVySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5k2CmlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5k2Cm1ySEei8Ja-whe6hFw" points="[0, 0, 212, 60]$[-212, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5k2ColySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5k2Co1ySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5k2CpFySEei8Ja-whe6hFw" type="4001" element="_5hmhHFySEei8Ja-whe6hFw" source="_5idcmVySEei8Ja-whe6hFw" target="_5iXWQlySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5k2CqFySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k2CqVySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5k2CqlySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k2Cq1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5k2CrFySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k2CrVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5k2CpVySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5k2CplySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5k2Cp1ySEei8Ja-whe6hFw" points="[0, 0, -449, 60]$[449, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5k2CrlySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5k2Cr1ySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5k2CsFySEei8Ja-whe6hFw" type="4001" element="_5hmhIFySEei8Ja-whe6hFw" source="_5idcoFySEei8Ja-whe6hFw" target="_5iXWQlySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5k2CtFySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k2CtVySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5k2CtlySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k2Ct1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5k2CuFySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k2CuVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5k2CsVySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5k2CslySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5k2Cs1ySEei8Ja-whe6hFw" points="[0, 0, -661, 60]$[661, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5k2CulySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5k2Cu1ySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5k2CvFySEei8Ja-whe6hFw" type="4001" element="_5hsng1ySEei8Ja-whe6hFw" source="_5idcp1ySEei8Ja-whe6hFw" target="_5iXWQlySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5k2CwFySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k2CwVySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5k2CwlySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k2Cw1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5k2CxFySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k2CxVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5k2CvVySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5k2CvlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5k2Cv1ySEei8Ja-whe6hFw" points="[0, 0, -225, 60]$[225, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5k2CxlySEei8Ja-whe6hFw" id="(0.4971751412429379,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5k2Cx1ySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5k2CyFySEei8Ja-whe6hFw" type="4001" element="_5hsnh1ySEei8Ja-whe6hFw" source="_5idcrlySEei8Ja-whe6hFw" target="_5iXWQlySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5k2CzFySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k2CzVySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5k2CzlySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k2Cz1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5k2C0FySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k2C0VySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5k2CyVySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5k2CylySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5k2Cy1ySEei8Ja-whe6hFw" points="[0, 0, 684, 60]$[-684, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5k2C0lySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5k2C01ySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5k2C1FySEei8Ja-whe6hFw" type="4001" element="_5hsni1ySEei8Ja-whe6hFw" source="_5idctVySEei8Ja-whe6hFw" target="_5iXWA1ySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5k2C2FySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k2C2VySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5k2C2lySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k2C21ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5k8IwFySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k8IwVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5k2C1VySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5k2C1lySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5k2C11ySEei8Ja-whe6hFw" points="[0, 0, 1489, 60]$[-1489, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5k8IwlySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5k8Iw1ySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5k8IxFySEei8Ja-whe6hFw" type="4001" element="_5hsnj1ySEei8Ja-whe6hFw" source="_5idcvFySEei8Ja-whe6hFw" target="_5idctVySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5k8IyFySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k8IyVySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5k8IylySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k8Iy1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5k8IzFySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k8IzVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5k8IxVySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5k8IxlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5k8Ix1ySEei8Ja-whe6hFw" points="[0, 0, 2059, 60]$[-2059, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5k8IzlySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5k8Iz1ySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5k8I0FySEei8Ja-whe6hFw" type="4001" element="_5hsnk1ySEei8Ja-whe6hFw" source="_5idcw1ySEei8Ja-whe6hFw" target="_5iXWQlySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5k8I1FySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k8I1VySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5k8I1lySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k8I11ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5k8I2FySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k8I2VySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5k8I0VySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5k8I0lySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5k8I01ySEei8Ja-whe6hFw" points="[0, 0, 1117, 60]$[-1117, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5k8I2lySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5k8I21ySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5k8I3FySEei8Ja-whe6hFw" type="4001" element="_5hsnl1ySEei8Ja-whe6hFw" source="_5idcylySEei8Ja-whe6hFw" target="_5iXWA1ySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5k8I4FySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k8I4VySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5k8I4lySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k8I41ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5k8I5FySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k8I5VySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5k8I3VySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5k8I3lySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5k8I31ySEei8Ja-whe6hFw" points="[0, 0, -870, 60]$[870, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5k8I5lySEei8Ja-whe6hFw" id="(0.4973821989528796,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5k8I51ySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5k8I6FySEei8Ja-whe6hFw" type="4001" element="_5hsnm1ySEei8Ja-whe6hFw" source="_5idc0VySEei8Ja-whe6hFw" target="_5idcylySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5k8I7FySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k8I7VySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5k8I7lySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k8I71ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5k8I8FySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k8I8VySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5k8I6VySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5k8I6lySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5k8I61ySEei8Ja-whe6hFw" points="[0, 0, -596, 60]$[596, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5k8I8lySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5k8I81ySEei8Ja-whe6hFw" id="(0.4973821989528796,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5k8I9FySEei8Ja-whe6hFw" type="4001" element="_5hsnn1ySEei8Ja-whe6hFw" source="_5idc2FySEei8Ja-whe6hFw" target="_5idcylySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5k8I-FySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k8I-VySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5k8I-lySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k8I-1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5k8I_FySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5k8I_VySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5k8I9VySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5k8I9lySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5k8I91ySEei8Ja-whe6hFw" points="[0, 0, -894, 60]$[894, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5k8I_lySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5k8I_1ySEei8Ja-whe6hFw" id="(0.4973821989528796,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5lCPalySEei8Ja-whe6hFw" type="4001" element="_5hsns1ySEei8Ja-whe6hFw" source="_5ijjOFySEei8Ja-whe6hFw" target="_5iXWA1ySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5lCPblySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lCPb1ySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lCPcFySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lCPcVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lCPclySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lCPc1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5lCPa1ySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5lCPbFySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5lCPbVySEei8Ja-whe6hFw" points="[0, 0, 2932, 60]$[-2932, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lCPdFySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lCPdVySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5lCPdlySEei8Ja-whe6hFw" type="4001" element="_5hsnt1ySEei8Ja-whe6hFw" source="_5ijjP1ySEei8Ja-whe6hFw" target="_5iXWA1ySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5lCPelySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lCPe1ySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lCPfFySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lCPfVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lCPflySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lCPf1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5lCPd1ySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5lCPeFySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5lCPeVySEei8Ja-whe6hFw" points="[0, 0, 2634, 60]$[-2634, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lCPgFySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lCPgVySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5lCPglySEei8Ja-whe6hFw" type="4001" element="_5hsnu1ySEei8Ja-whe6hFw" source="_5ijjRlySEei8Ja-whe6hFw" target="_5iXV_FySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5lCPhlySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lCPh1ySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lCPiFySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lCPiVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lCPilySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lCPi1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5lCPg1ySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5lCPhFySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5lCPhVySEei8Ja-whe6hFw" points="[0, 0, 7197, 60]$[-7197, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lCPjFySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lCPjVySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5lCPjlySEei8Ja-whe6hFw" type="4001" element="_5hsnv1ySEei8Ja-whe6hFw" source="_5ijjTVySEei8Ja-whe6hFw" target="_5ijjRlySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5lCPklySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lCPk1ySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lCPlFySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lCPlVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lCPllySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lCPl1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5lCPj1ySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5lCPkFySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5lCPkVySEei8Ja-whe6hFw" points="[0, 0, 0, 60]$[0, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lCPmFySEei8Ja-whe6hFw" id="(0.4973821989528796,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lCPmVySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5lCPmlySEei8Ja-whe6hFw" type="4001" element="_5hsnw1ySEei8Ja-whe6hFw" source="_5ijjVFySEei8Ja-whe6hFw" target="_5ijjRlySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5lCPnlySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lCPn1ySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lCPoFySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lCPoVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lCPolySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lCPo1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5lCPm1ySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5lCPnFySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5lCPnVySEei8Ja-whe6hFw" points="[0, 0, 251, 60]$[-251, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lCPpFySEei8Ja-whe6hFw" id="(0.4973821989528796,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lCPpVySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5lCPplySEei8Ja-whe6hFw" type="4001" element="_5hsnx1ySEei8Ja-whe6hFw" source="_5ijjW1ySEei8Ja-whe6hFw" target="_5ijjRlySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5lCPqlySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lCPq1ySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lCPrFySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lCPrVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lCPrlySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lCPr1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5lCPp1ySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5lCPqFySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5lCPqVySEei8Ja-whe6hFw" points="[0, 0, 502, 60]$[-502, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lCPsFySEei8Ja-whe6hFw" id="(0.4973821989528796,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lCPsVySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5lCPslySEei8Ja-whe6hFw" type="4001" element="_5hsny1ySEei8Ja-whe6hFw" source="_5ijjYlySEei8Ja-whe6hFw" target="_5ijjRlySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5lCPtlySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lCPt1ySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lCPuFySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lCPuVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lCPulySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lCPu1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5lCPs1ySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5lCPtFySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5lCPtVySEei8Ja-whe6hFw" points="[0, 0, 753, 60]$[-753, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lCPvFySEei8Ja-whe6hFw" id="(0.4973821989528796,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lCPvVySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5lCPvlySEei8Ja-whe6hFw" type="4001" element="_5hsnz1ySEei8Ja-whe6hFw" source="_5ijjaVySEei8Ja-whe6hFw" target="_5ijjRlySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5lCPwlySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lCPw1ySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lCPxFySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lCPxVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lCPxlySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lCPx1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5lCPv1ySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5lCPwFySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5lCPwVySEei8Ja-whe6hFw" points="[0, 0, -251, 60]$[251, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lCPyFySEei8Ja-whe6hFw" id="(0.4973821989528796,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lCPyVySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5lCPylySEei8Ja-whe6hFw" type="4001" element="_5hsn01ySEei8Ja-whe6hFw" source="_5ijjcFySEei8Ja-whe6hFw" target="_5iXV_FySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5lCPzlySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lCPz1ySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lCP0FySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lCP0VySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lCP0lySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lCP01ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5lCPy1ySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5lCPzFySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5lCPzVySEei8Ja-whe6hFw" points="[0, 0, -584, 60]$[584, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lCP1FySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lCP1VySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5lCP1lySEei8Ja-whe6hFw" type="4001" element="_5hsn11ySEei8Ja-whe6hFw" source="_5ijjd1ySEei8Ja-whe6hFw" target="_5iXWA1ySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5lCP2lySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lCP21ySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lCP3FySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lCP3VySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lCP3lySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lCP31ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5lCP11ySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5lCP2FySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5lCP2VySEei8Ja-whe6hFw" points="[0, 0, -2277, 60]$[2277, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lCP4FySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lCP4VySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5lCP4lySEei8Ja-whe6hFw" type="4001" element="_5hyuI1ySEei8Ja-whe6hFw" source="_5ijjflySEei8Ja-whe6hFw" target="_5ipp3FySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5lCP5lySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lCP51ySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lCP6FySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lCP6VySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lCP6lySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lCP61ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5lCP41ySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5lCP5FySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5lCP5VySEei8Ja-whe6hFw" points="[0, 0, 334, 60]$[-334, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lCP7FySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lCP7VySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5lCP7lySEei8Ja-whe6hFw" type="4001" element="_5hyuJ1ySEei8Ja-whe6hFw" source="_5ippwFySEei8Ja-whe6hFw" target="_5ipp3FySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5lCP8lySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lCP81ySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lCP9FySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lCP9VySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lCP9lySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lCP91ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5lCP71ySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5lCP8FySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5lCP8VySEei8Ja-whe6hFw" points="[0, 0, 36, 60]$[-36, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lCP-FySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lCP-VySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5lCP-lySEei8Ja-whe6hFw" type="4001" element="_5hyuK1ySEei8Ja-whe6hFw" source="_5ippx1ySEei8Ja-whe6hFw" target="_5iXWA1ySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5lIWAFySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lIWAVySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lIWAlySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lIWA1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lIWBFySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lIWBVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5lCP-1ySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5lCP_FySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5lCP_VySEei8Ja-whe6hFw" points="[0, 0, 2336, 60]$[-2336, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lIWBlySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lIWB1ySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5lIWCFySEei8Ja-whe6hFw" type="4001" element="_5hyuL1ySEei8Ja-whe6hFw" source="_5ippzlySEei8Ja-whe6hFw" target="_5iXV_FySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5lIWDFySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lIWDVySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lIWDlySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lIWD1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lIWEFySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lIWEVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5lIWCVySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5lIWClySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5lIWC1ySEei8Ja-whe6hFw" points="[0, 0, -189, 540]$[105, -61, -84, 479]$[107, -320, -82, 220]$[188, -381, -1, 159]$[189, -540, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lIWElySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lIWE1ySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5lIWFFySEei8Ja-whe6hFw" type="4001" element="_5hyuM1ySEei8Ja-whe6hFw" source="_5ipp1VySEei8Ja-whe6hFw" target="_5iRPY1ySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5lIWGFySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lIWGVySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lIWGlySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lIWG1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lIWHFySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lIWHVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5lIWFVySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5lIWFlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5lIWF1ySEei8Ja-whe6hFw" points="[0, 0, -472, 60]$[472, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lIWHlySEei8Ja-whe6hFw" id="(0.4978902953586498,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lIWH1ySEei8Ja-whe6hFw" id="(0.4978902953586498,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5lIWIFySEei8Ja-whe6hFw" type="4001" element="_5hyuN1ySEei8Ja-whe6hFw" source="_5ipp3FySEei8Ja-whe6hFw" target="_5ijjd1ySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5lIWJFySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lIWJVySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lIWJlySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lIWJ1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lIWKFySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lIWKVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5lIWIVySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5lIWIlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5lIWI1ySEei8Ja-whe6hFw" points="[0, 0, -670, 60]$[670, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lIWKlySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lIWK1ySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5lIWLFySEei8Ja-whe6hFw" type="4001" element="_5hyuO1ySEei8Ja-whe6hFw" source="_5ipp41ySEei8Ja-whe6hFw" target="_5iXV_FySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5lIWMFySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lIWMVySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lIWMlySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lIWM1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lIWNFySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lIWNVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5lIWLVySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5lIWLlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5lIWL1ySEei8Ja-whe6hFw" points="[0, 0, -345, 60]$[345, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lIWNlySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lIWN1ySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5lIWOFySEei8Ja-whe6hFw" type="4001" element="_5hyuP1ySEei8Ja-whe6hFw" source="_5ipp6lySEei8Ja-whe6hFw" target="_5iXWA1ySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5lIWPFySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lIWPVySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lIWPlySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lIWP1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lIWQFySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lIWQVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5lIWOVySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5lIWOlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5lIWO1ySEei8Ja-whe6hFw" points="[0, 0, 1763, 60]$[-1763, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lIWQlySEei8Ja-whe6hFw" id="(0.4973821989528796,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lIWQ1ySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5lIWRFySEei8Ja-whe6hFw" type="4001" element="_5hyuQ1ySEei8Ja-whe6hFw" source="_5ipp8VySEei8Ja-whe6hFw" target="_5ipp6lySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5lIWSFySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lIWSVySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lIWSlySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lIWS1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lIWTFySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lIWTVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5lIWRVySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5lIWRlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5lIWR1ySEei8Ja-whe6hFw" points="[0, 0, 2040, 60]$[-2040, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lIWTlySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lIWT1ySEei8Ja-whe6hFw" id="(0.4973821989528796,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5lIWUFySEei8Ja-whe6hFw" type="4001" element="_5hyuR1ySEei8Ja-whe6hFw" source="_5ipp-FySEei8Ja-whe6hFw" target="_5iXWA1ySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5lIWVFySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lIWVVySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lIWVlySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lIWV1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lIWWFySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lIWWVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5lIWUVySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5lIWUlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5lIWU1ySEei8Ja-whe6hFw" points="[0, 0, -2062, 60]$[2062, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lIWWlySEei8Ja-whe6hFw" id="(0.4973821989528796,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lIWW1ySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5lIWXFySEei8Ja-whe6hFw" type="4001" element="_5hyuS1ySEei8Ja-whe6hFw" source="_5ipp_1ySEei8Ja-whe6hFw" target="_5ipp-FySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5lIWYFySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lIWYVySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lIWYlySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lIWY1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lIWZFySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lIWZVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5lIWXVySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5lIWXlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5lIWX1ySEei8Ja-whe6hFw" points="[0, 0, 0, 60]$[0, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lIWZlySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lIWZ1ySEei8Ja-whe6hFw" id="(0.4973821989528796,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5lIWaFySEei8Ja-whe6hFw" type="4001" element="_5hyuT1ySEei8Ja-whe6hFw" source="_5ipqBlySEei8Ja-whe6hFw" target="_5ipp-FySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5lIWbFySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lIWbVySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lIWblySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lIWb1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lIWcFySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lIWcVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5lIWaVySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5lIWalySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5lIWa1ySEei8Ja-whe6hFw" points="[0, 0, -298, 60]$[298, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lIWclySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lIWc1ySEei8Ja-whe6hFw" id="(0.4973821989528796,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5lIWdFySEei8Ja-whe6hFw" type="4001" element="_5hyuU1ySEei8Ja-whe6hFw" source="_5ipqDVySEei8Ja-whe6hFw" target="_5iXWA1ySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5lIWeFySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lIWeVySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lIWelySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lIWe1ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lIWfFySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lIWfVySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5lIWdVySEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5lIWdlySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5lIWd1ySEei8Ja-whe6hFw" points="[0, 0, 2038, 60]$[-2038, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lIWflySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lIWf1ySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5lOc6lySEei8Ja-whe6hFw" type="4001" element="_5h4051ySEei8Ja-whe6hFw" source="_5ippzlySEei8Ja-whe6hFw" target="_5ipp3FySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5lOc7lySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lOc71ySEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lOc8FySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lOc8VySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lOc8lySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lOc81ySEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5lOc61ySEei8Ja-whe6hFw" routing="Rectilinear"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5lOc7FySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5lOc7VySEei8Ja-whe6hFw" points="[0, 0, -262, 60]$[262, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lOc9FySEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lOc9VySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5lOdAlySEei8Ja-whe6hFw" type="4001" element="_5h408lySEei8Ja-whe6hFw" source="_5iRPf1ySEei8Ja-whe6hFw" target="_5iRPjVySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_5lOdBlySEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lOdB1ySEei8Ja-whe6hFw" x="-132" y="-366"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lOdCFySEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lOdCVySEei8Ja-whe6hFw" x="-40" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5lOdClySEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5lOdC1ySEei8Ja-whe6hFw" x="-510" y="-97"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5lOdA1ySEei8Ja-whe6hFw" routing="Rectilinear"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5lOdBFySEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8" bold="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5lOdBVySEei8Ja-whe6hFw" points="[65, 98, -366, 630]$[65, 125, -366, 657]$[431, 125, 0, 657]$[431, -532, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lOdDFySEei8Ja-whe6hFw" id="(0.4980237154150198,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5lOdDVySEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_ZGewAIsOEeiuX8plUFkEQQ" type="4001" element="_ZE-UIIsOEeiuX8plUFkEQQ" source="_5iRPR1ySEei8Ja-whe6hFw" target="_5iXV_FySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_ZGfXEIsOEeiuX8plUFkEQQ" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZGfXEYsOEeiuX8plUFkEQQ" x="1597" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ZGfXEosOEeiuX8plUFkEQQ" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZGfXE4sOEeiuX8plUFkEQQ" x="2692" y="-34"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ZGfXFIsOEeiuX8plUFkEQQ" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZGfXFYsOEeiuX8plUFkEQQ" x="367" y="-123"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_ZGewAYsOEeiuX8plUFkEQQ" routing="Rectilinear"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_ZGewAosOEeiuX8plUFkEQQ" fontColor="7490599" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ZGewA4sOEeiuX8plUFkEQQ" points="[-3, 0, -2949, 692]$[-3, -503, -2949, 189]$[2946, -503, 0, 189]$[2946, -692, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ZGf-IIsOEeiuX8plUFkEQQ" id="(0.4982578397212544,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ZGf-IYsOEeiuX8plUFkEQQ" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_ZGglOIsOEeiuX8plUFkEQQ" type="4001" element="_ZGEgUIsOEeiuX8plUFkEQQ" source="_5iRPeFySEei8Ja-whe6hFw" target="_5iRPlFySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_ZGglPIsOEeiuX8plUFkEQQ" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZGglPYsOEeiuX8plUFkEQQ" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ZGglPosOEeiuX8plUFkEQQ" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZGglP4sOEeiuX8plUFkEQQ" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ZGglQIsOEeiuX8plUFkEQQ" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZGglQYsOEeiuX8plUFkEQQ" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_ZGglOYsOEeiuX8plUFkEQQ" routing="Rectilinear"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_ZGglOosOEeiuX8plUFkEQQ" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ZGglO4sOEeiuX8plUFkEQQ" points="[0, 0, -47, 60]$[47, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ZGhMQIsOEeiuX8plUFkEQQ" id="(0.4978902953586498,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ZGhMQYsOEeiuX8plUFkEQQ" id="(0.4978902953586498,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_sL8eQJliEeijptRUADwljg" type="4001" element="_sLd9IJliEeijptRUADwljg" source="_5iRPR1ySEei8Ja-whe6hFw" target="_sL1JgJliEeijptRUADwljg">
+ <children xmi:type="notation:Node" xmi:id="_sL8eRJliEeijptRUADwljg" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sL8eRZliEeijptRUADwljg" x="-41" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_sL8eRpliEeijptRUADwljg" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sL8eR5liEeijptRUADwljg" y="17"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_sL8eSJliEeijptRUADwljg" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sL8eSZliEeijptRUADwljg" x="-41" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_sL8eQZliEeijptRUADwljg" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_sL8eQpliEeijptRUADwljg" fontName="Meiryo UI" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_sL8eQ5liEeijptRUADwljg" points="[0, 0, -305, 112]$[0, -53, -305, 59]$[306, -53, 1, 59]$[306, -112, 1, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_sL9FUJliEeijptRUADwljg" id="(0.4982578397212544,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_sL9FUZliEeijptRUADwljg" id="(0.4977973568281938,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_sL9FUpliEeijptRUADwljg" type="4001" element="_sLd9JJliEeijptRUADwljg" source="_sL1JgJliEeijptRUADwljg" target="_5iRPY1ySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_sL9FVpliEeijptRUADwljg" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sL9FV5liEeijptRUADwljg" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_sL9FWJliEeijptRUADwljg" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sL9FWZliEeijptRUADwljg" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_sL9FWpliEeijptRUADwljg" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sL9FW5liEeijptRUADwljg" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_sL9FU5liEeijptRUADwljg" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_sL9FVJliEeijptRUADwljg" fontName="Meiryo UI" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_sL9FVZliEeijptRUADwljg" points="[0, 0, 0, 60]$[0, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_sL9sYJliEeijptRUADwljg" id="(0.4977973568281938,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_sL9sYZliEeijptRUADwljg" id="(0.4978902953586498,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_wrfywJliEeijptRUADwljg" type="4001" element="_wrYeAJliEeijptRUADwljg" source="_5iRPalySEei8Ja-whe6hFw" target="_sL1JgJliEeijptRUADwljg">
+ <children xmi:type="notation:Node" xmi:id="_wrfyxJliEeijptRUADwljg" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wrfyxZliEeijptRUADwljg" x="-18" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_wrfyxpliEeijptRUADwljg" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wrfyx5liEeijptRUADwljg" x="9" y="-12"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_wrgZ0JliEeijptRUADwljg" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wrgZ0ZliEeijptRUADwljg" x="-36" y="9"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_wrfywZliEeijptRUADwljg" routing="Rectilinear"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_wrfywpliEeijptRUADwljg" fontName="Meiryo UI" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wrfyw5liEeijptRUADwljg" points="[-89, 49, 323, -43]$[-289, 49, 123, -43]$[-289, 44, 123, -48]$[-299, 44, 113, -48]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7EN6EJliEeijptRUADwljg" id="(0.40271493212669685,0.061224489795918366)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wrgZ05liEeijptRUADwljg" id="(0.4977973568281938,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_3tdZoJliEeijptRUADwljg" type="4001" element="_3tWr8JliEeijptRUADwljg" source="_3taWUJliEeijptRUADwljg" target="_sL1JgJliEeijptRUADwljg">
+ <children xmi:type="notation:Node" xmi:id="_3tdZpJliEeijptRUADwljg" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3tdZpZliEeijptRUADwljg" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_3tdZppliEeijptRUADwljg" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3tdZp5liEeijptRUADwljg" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_3tdZqJliEeijptRUADwljg" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3tdZqZliEeijptRUADwljg" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_3tdZoZliEeijptRUADwljg" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3tdZopliEeijptRUADwljg" fontName="Meiryo UI" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3tdZo5liEeijptRUADwljg" points="[0, 0, 133, 60]$[-133, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3tdZqpliEeijptRUADwljg" id="(0.4977973568281938,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3teAsJliEeijptRUADwljg" id="(0.4977973568281938,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="__BoK0pliEeijptRUADwljg" type="4001" element="__BckoJliEeijptRUADwljg" source="__BhdIJliEeijptRUADwljg" target="_5ipp-FySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="__BoK1pliEeijptRUADwljg" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__BoK15liEeijptRUADwljg" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="__BoK2JliEeijptRUADwljg" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__BoK2ZliEeijptRUADwljg" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="__BoK2pliEeijptRUADwljg" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__BoK25liEeijptRUADwljg" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="__BoK05liEeijptRUADwljg" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="__BoK1JliEeijptRUADwljg" fontName="Meiryo UI" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__BoK1ZliEeijptRUADwljg" points="[0, 0, -596, 60]$[596, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__BoK3JliEeijptRUADwljg" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__BoK3ZliEeijptRUADwljg" id="(0.4973821989528796,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="__Box6JliEeijptRUADwljg" type="4001" element="__BckqJliEeijptRUADwljg" source="__BiEO5liEeijptRUADwljg" target="_5ipqDVySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="__BpY8JliEeijptRUADwljg" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__BpY8ZliEeijptRUADwljg" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="__BpY8pliEeijptRUADwljg" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__BpY85liEeijptRUADwljg" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="__BpY9JliEeijptRUADwljg" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__BpY9ZliEeijptRUADwljg" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="__Box6ZliEeijptRUADwljg" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="__Box6pliEeijptRUADwljg" fontName="Meiryo UI" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__Box65liEeijptRUADwljg" points="[0, 0, 2659, 60]$[-2659, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__BpY9pliEeijptRUADwljg" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__BpY95liEeijptRUADwljg" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_CKk4QIDREeutB9ElOMNRZA" type="4001" element="_CJU7EIDREeutB9ElOMNRZA" source="_5iRPalySEei8Ja-whe6hFw" target="_5iRPhlySEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_CKqX0IDREeutB9ElOMNRZA" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CKqX0YDREeutB9ElOMNRZA" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_CKrl8IDREeutB9ElOMNRZA" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CKrl8YDREeutB9ElOMNRZA" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_CKsNAIDREeutB9ElOMNRZA" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CKsNAYDREeutB9ElOMNRZA" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_CKk4QYDREeutB9ElOMNRZA" routing="Rectilinear"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_CKk4QoDREeutB9ElOMNRZA" fontName="Yu Gothic UI" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_CKk4Q4DREeutB9ElOMNRZA" points="[1925, 1090, 1925, 1090]$[2090, 1300, 2090, 1300]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CK8rsIDREeutB9ElOMNRZA" id="(0.5,0.5)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CK8rsYDREeutB9ElOMNRZA" id="(0.5,0.5)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_CK9SwIDREeutB9ElOMNRZA" type="4001" element="_CJWJMIDREeutB9ElOMNRZA" source="_sL1JgJliEeijptRUADwljg" target="_3taWUJliEeijptRUADwljg">
+ <children xmi:type="notation:Node" xmi:id="_CK9SxIDREeutB9ElOMNRZA" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CK9SxYDREeutB9ElOMNRZA" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_CK9SxoDREeutB9ElOMNRZA" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CK9Sx4DREeutB9ElOMNRZA" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_CK9SyIDREeutB9ElOMNRZA" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CK9SyYDREeutB9ElOMNRZA" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_CK9SwYDREeutB9ElOMNRZA" routing="Rectilinear"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_CK9SwoDREeutB9ElOMNRZA" fontName="Yu Gothic UI" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_CK9Sw4DREeutB9ElOMNRZA" points="[1490, 1090, 1490, 1090]$[1490, 1300, 1490, 1300]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CK950IDREeutB9ElOMNRZA" id="(0.5,0.5)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CK950YDREeutB9ElOMNRZA" id="(0.5,0.5)"/>
+ </edges>
+ </data>
+ </ownedAnnotationEntries>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5eQ5AFySEei8Ja-whe6hFw" name="ModelElement" tooltipText="" incomingEdges="_5haToFySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//ModelElement"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//ModelElement"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5eW_oFySEei8Ja-whe6hFw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5f4poFySEei8Ja-whe6hFw" name="description : EString" tooltipText="">
+ <target xmi:type="ecore:EAttribute" href="rbacore.ecore#//ModelElement/description"/>
+ <semanticElements xmi:type="ecore:EAttribute" href="rbacore.ecore#//ModelElement/description"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5f-wQFySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5edGQFySEei8Ja-whe6hFw" name="NamedElement" tooltipText="" outgoingEdges="_5haToFySEei8Ja-whe6hFw" incomingEdges="_5haTrFySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//NamedElement"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//NamedElement"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5edGQVySEei8Ja-whe6hFw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5f-wQVySEei8Ja-whe6hFw" name="name : EString" tooltipText="">
+ <target xmi:type="ecore:EAttribute" href="rbacore.ecore#//NamedElement/name"/>
+ <semanticElements xmi:type="ecore:EAttribute" href="rbacore.ecore#//NamedElement/name"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5f-wQlySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5edGQlySEei8Ja-whe6hFw" name="Allocatable" tooltipText="" outgoingEdges="_ZE-UIIsOEeiuX8plUFkEQQ _sLd9IJliEeijptRUADwljg" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//Allocatable"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//Allocatable"/>
+ <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+ <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+ <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5edGQ1ySEei8Ja-whe6hFw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_ZD2SwIsOEeiuX8plUFkEQQ" name="arbitrationPolicy : ArbitrationPolicy = DEFAULT" tooltipText="">
+ <target xmi:type="ecore:EAttribute" href="rbacore.ecore#//Allocatable/arbitrationPolicy"/>
+ <semanticElements xmi:type="ecore:EAttribute" href="rbacore.ecore#//Allocatable/arbitrationPolicy"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_ZD250IsOEeiuX8plUFkEQQ" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_ZD3g4YsOEeiuX8plUFkEQQ" name="collectLeafAllocatable() : Allocatable" tooltipText="collectLeafAllocatable() : Allocatable">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//Allocatable/collectLeafAllocatable"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//Allocatable/collectLeafAllocatable"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_ZD4H8IsOEeiuX8plUFkEQQ" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5edGRFySEei8Ja-whe6hFw" name="Project" tooltipText="" outgoingEdges="_5haTqFySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//Project"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//Project"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5edGRVySEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_CHLmAIDREeutB9ElOMNRZA" name="version : EString" tooltipText="">
+ <target xmi:type="ecore:EAttribute" href="rbacore.ecore#//Project/version"/>
+ <semanticElements xmi:type="ecore:EAttribute" href="rbacore.ecore#//Project/version"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_CHOCQIDREeutB9ElOMNRZA" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_CHPQYIDREeutB9ElOMNRZA" name="dummyName : EString" tooltipText="">
+ <target xmi:type="ecore:EAttribute" href="rbacore.ecore#//Project/dummyName"/>
+ <semanticElements xmi:type="ecore:EAttribute" href="rbacore.ecore#//Project/dummyName"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_CHP3cIDREeutB9ElOMNRZA" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_CHQegIDREeutB9ElOMNRZA" name="getName() : EString" tooltipText="getName() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//Project/getName"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//Project/getName"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_CHQegYDREeutB9ElOMNRZA" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5edGRlySEei8Ja-whe6hFw" name="PackagableElement" tooltipText="" outgoingEdges="_5haTrFySEei8Ja-whe6hFw" incomingEdges="_5g7ygFySEei8Ja-whe6hFw _5hgaQFySEei8Ja-whe6hFw _5hgaRFySEei8Ja-whe6hFw _5hgaaFySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//PackagableElement"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//PackagableElement"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5edGR1ySEei8Ja-whe6hFw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5edGSFySEei8Ja-whe6hFw" name="Package" tooltipText="" outgoingEdges="_5g7ygFySEei8Ja-whe6hFw _5hgaQFySEei8Ja-whe6hFw" incomingEdges="_5haTqFySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//Package"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//Package"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5edGSVySEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5edGSlySEei8Ja-whe6hFw" name="RuleObject" tooltipText="" outgoingEdges="_5hgaRFySEei8Ja-whe6hFw" incomingEdges="_5hH_xFySEei8Ja-whe6hFw _5hgaSFySEei8Ja-whe6hFw _5hgaTFySEei8Ja-whe6hFw _5hgaXFySEei8Ja-whe6hFw _5hgaYFySEei8Ja-whe6hFw _5hyuM1ySEei8Ja-whe6hFw _sLd9JJliEeijptRUADwljg" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//RuleObject"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//RuleObject"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5edGS1ySEei8Ja-whe6hFw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5f-wQ1ySEei8Ja-whe6hFw" name="getExpressionType() : ExpressionType" tooltipText="getExpressionType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//RuleObject/getExpressionType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//RuleObject/getExpressionType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5f-wRFySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_CHS6wIDREeutB9ElOMNRZA" name=" tags : Tag" tooltipText="">
+ <target xmi:type="ecore:EReference" href="rbacore.ecore#//RuleObject/tags"/>
+ <semanticElements xmi:type="ecore:EReference" href="rbacore.ecore#//RuleObject/tags"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_CHaPgIDREeutB9ElOMNRZA" labelAlignment="LEFT" color="114,159,207">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5edGTFySEei8Ja-whe6hFw" name="AbstractContent" tooltipText="" outgoingEdges="_5hgaSFySEei8Ja-whe6hFw _wrYeAJliEeijptRUADwljg _CJU7EIDREeutB9ElOMNRZA" incomingEdges="_5hgaVFySEei8Ja-whe6hFw _5hgaWFySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//AbstractContent"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//AbstractContent"/>
+ <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+ <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+ <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_Xt2-IJneEeijptRUADwljg" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_dLiIMJlkEeijptRUADwljg" name="getAllocatableList() : Allocatable" tooltipText="getAllocatableList() : Allocatable">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//AbstractContent/getAllocatableList"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//AbstractContent/getAllocatableList"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_dLiIMZlkEeijptRUADwljg" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_fVL8UJlkEeijptRUADwljg" name="collectLeafContents() : Content" tooltipText="collectLeafContents() : Content">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//AbstractContent/collectLeafContents"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//AbstractContent/collectLeafContents"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_fVL8UZlkEeijptRUADwljg" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5edGTlySEei8Ja-whe6hFw" name="AbstractScene" tooltipText="" outgoingEdges="_5hgaTFySEei8Ja-whe6hFw" incomingEdges="_5hgaUFySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//AbstractScene"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//AbstractScene"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5edGT1ySEei8Ja-whe6hFw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5ejM4FySEei8Ja-whe6hFw" name="Scene" tooltipText="" outgoingEdges="_5hgaUFySEei8Ja-whe6hFw _ZGEgUIsOEeiuX8plUFkEQQ" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//Scene"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//Scene"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5ejM4VySEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5f-wRVySEei8Ja-whe6hFw" name="global : EBoolean = false" tooltipText="">
+ <target xmi:type="ecore:EAttribute" href="rbacore.ecore#//Scene/global"/>
+ <semanticElements xmi:type="ecore:EAttribute" href="rbacore.ecore#//Scene/global"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5f-wR1ySEei8Ja-whe6hFw" labelAlignment="LEFT" description="_5f-wRlySEei8Ja-whe6hFw">
+ <labelFormat>bold</labelFormat>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5f-wSFySEei8Ja-whe6hFw" name="getExpressionType() : ExpressionType" tooltipText="getExpressionType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//Scene/getExpressionType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//Scene/getExpressionType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5f-wSVySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5ejM4lySEei8Ja-whe6hFw" name="Content" tooltipText="" outgoingEdges="_5hgaVFySEei8Ja-whe6hFw _5h408lySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//Content"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//Content"/>
+ <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+ <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+ <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5ejM41ySEei8Ja-whe6hFw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5f-wSlySEei8Ja-whe6hFw" name="loserType : LoserType = NEVER_GIVEUP" tooltipText="">
+ <target xmi:type="ecore:EAttribute" href="rbacore.ecore#//Content/loserType"/>
+ <semanticElements xmi:type="ecore:EAttribute" href="rbacore.ecore#//Content/loserType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5f-wS1ySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Xt5aYJneEeijptRUADwljg" name="collectLeafContents() : Content" tooltipText="collectLeafContents() : Content">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//Content/collectLeafContents"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//Content/collectLeafContents"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Xt5aYZneEeijptRUADwljg" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5ejM5FySEei8Ja-whe6hFw" name="ContentSet" tooltipText="" outgoingEdges="_5hgaWFySEei8Ja-whe6hFw" incomingEdges="_CJU7EIDREeutB9ElOMNRZA" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//ContentSet"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//ContentSet"/>
+ <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+ <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+ <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_ZhRH0JliEeijptRUADwljg" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_XuOKgJneEeijptRUADwljg" name="collectLeafContents() : Content" tooltipText="collectLeafContents() : Content">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//ContentSet/collectLeafContents"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//ContentSet/collectLeafContents"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_XuOxkJneEeijptRUADwljg" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5ejM5lySEei8Ja-whe6hFw" name="ContentState" tooltipText="" outgoingEdges="_5hB5MlySEei8Ja-whe6hFw _5hgaXFySEei8Ja-whe6hFw" incomingEdges="_5h408lySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//ContentState"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//ContentState"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5ejM51ySEei8Ja-whe6hFw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5ejM6FySEei8Ja-whe6hFw" name="AbstractProperty" tooltipText="" outgoingEdges="_5hgaYFySEei8Ja-whe6hFw" incomingEdges="_5hgaZFySEei8Ja-whe6hFw _ZGEgUIsOEeiuX8plUFkEQQ" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//AbstractProperty"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//AbstractProperty"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5ejM6VySEei8Ja-whe6hFw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_ZD-OkIsOEeiuX8plUFkEQQ" name="getExpressionType() : ExpressionType" tooltipText="getExpressionType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//AbstractProperty/getExpressionType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//AbstractProperty/getExpressionType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_ZD-1oIsOEeiuX8plUFkEQQ" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5ejM6lySEei8Ja-whe6hFw" name="IntegerProperty" tooltipText="" outgoingEdges="_5hB5PVySEei8Ja-whe6hFw _5hgaZFySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//IntegerProperty"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//IntegerProperty"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5ejM61ySEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5ejM7FySEei8Ja-whe6hFw" name="AbstractConstraint" tooltipText="" outgoingEdges="_5hB5QVySEei8Ja-whe6hFw _5hgaaFySEei8Ja-whe6hFw" incomingEdges="_5hgabFySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//AbstractConstraint"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//AbstractConstraint"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5ejM7VySEei8Ja-whe6hFw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5ejM7lySEei8Ja-whe6hFw" name="Constraint" tooltipText="" outgoingEdges="_5hgabFySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//Constraint"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//Constraint"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5ejM71ySEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gE24lySEei8Ja-whe6hFw" name="runtime : EBoolean = true" tooltipText="">
+ <target xmi:type="ecore:EAttribute" href="rbacore.ecore#//Constraint/runtime"/>
+ <semanticElements xmi:type="ecore:EAttribute" href="rbacore.ecore#//Constraint/runtime"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gE241ySEei8Ja-whe6hFw" labelAlignment="LEFT" description="_5f-wRlySEei8Ja-whe6hFw">
+ <labelFormat>bold</labelFormat>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5epTglySEei8Ja-whe6hFw" name="Expression" tooltipText="" incomingEdges="_5hB5MlySEei8Ja-whe6hFw _5hB5PVySEei8Ja-whe6hFw _5hB5QVySEei8Ja-whe6hFw _5hH_wFySEei8Ja-whe6hFw _5hH_0FySEei8Ja-whe6hFw _5hH_1FySEei8Ja-whe6hFw _5hH_2FySEei8Ja-whe6hFw _5hH_3FySEei8Ja-whe6hFw _5hmg4FySEei8Ja-whe6hFw _5hmg5FySEei8Ja-whe6hFw _5hmg6FySEei8Ja-whe6hFw _5hsnu1ySEei8Ja-whe6hFw _5hsn01ySEei8Ja-whe6hFw _5hyuL1ySEei8Ja-whe6hFw _5hyuO1ySEei8Ja-whe6hFw _ZE-UIIsOEeiuX8plUFkEQQ" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//Expression"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//Expression"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5epTg1ySEei8Ja-whe6hFw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gE25FySEei8Ja-whe6hFw" name="/type : ExpressionType = VALUE" tooltipText="">
+ <target xmi:type="ecore:EAttribute" href="rbacore.ecore#//Expression/type"/>
+ <semanticElements xmi:type="ecore:EAttribute" href="rbacore.ecore#//Expression/type"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gE25lySEei8Ja-whe6hFw" labelColor="39,76,114" labelAlignment="LEFT" description="_5gE25VySEei8Ja-whe6hFw"/>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gE251ySEei8Ja-whe6hFw" name="/expression : EString" tooltipText="">
+ <target xmi:type="ecore:EAttribute" href="rbacore.ecore#//Expression/expression"/>
+ <semanticElements xmi:type="ecore:EAttribute" href="rbacore.ecore#//Expression/expression"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gE26FySEei8Ja-whe6hFw" labelColor="39,76,114" labelAlignment="LEFT" description="_5gE25VySEei8Ja-whe6hFw"/>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gE26VySEei8Ja-whe6hFw" name="getUnderlyingType() : ExpressionType" tooltipText="getUnderlyingType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//Expression/getUnderlyingType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//Expression/getUnderlyingType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gE26lySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gE261ySEei8Ja-whe6hFw" name="getExpressionText() : EString" tooltipText="getExpressionText() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//Expression/getExpressionText"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//Expression/getExpressionText"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gE27FySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_CHqHIIDREeutB9ElOMNRZA" name=" letStatements : LetStatement" tooltipText="">
+ <target xmi:type="ecore:EReference" href="rbacore.ecore#//Expression/letStatements"/>
+ <semanticElements xmi:type="ecore:EReference" href="rbacore.ecore#//Expression/letStatements"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_CHquMIDREeutB9ElOMNRZA" labelAlignment="LEFT" color="114,159,207">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5epThFySEei8Ja-whe6hFw" name="Operator" tooltipText="" outgoingEdges="_5hH_wFySEei8Ja-whe6hFw _5hmg4FySEei8Ja-whe6hFw" incomingEdges="_5hmg-FySEei8Ja-whe6hFw _5hmhBFySEei8Ja-whe6hFw _5hsni1ySEei8Ja-whe6hFw _5hsnl1ySEei8Ja-whe6hFw _5hsns1ySEei8Ja-whe6hFw _5hsnt1ySEei8Ja-whe6hFw _5hsn11ySEei8Ja-whe6hFw _5hyuK1ySEei8Ja-whe6hFw _5hyuP1ySEei8Ja-whe6hFw _5hyuR1ySEei8Ja-whe6hFw _5hyuU1ySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//Operator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//Operator"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5epThVySEei8Ja-whe6hFw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gE27VySEei8Ja-whe6hFw" name="getSymbol() : EString" tooltipText="getSymbol() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//Operator/getSymbol"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//Operator/getSymbol"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gE27lySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5epThlySEei8Ja-whe6hFw" name="ObjectReference" tooltipText="" outgoingEdges="_5hH_xFySEei8Ja-whe6hFw _5hmg5FySEei8Ja-whe6hFw" incomingEdges="_5hH_yFySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//ObjectReference"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//ObjectReference"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5epTh1ySEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gE271ySEei8Ja-whe6hFw" name="getUnderlyingType() : ExpressionType" tooltipText="getUnderlyingType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//ObjectReference/getUnderlyingType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//ObjectReference/getUnderlyingType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gE28FySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gE28VySEei8Ja-whe6hFw" name="getExpressionText() : EString" tooltipText="getExpressionText() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//ObjectReference/getExpressionText"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//ObjectReference/getExpressionText"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gE28lySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5epTiFySEei8Ja-whe6hFw" name="PreviousModifier" tooltipText="" outgoingEdges="_5hH_yFySEei8Ja-whe6hFw _5hmg6FySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//PreviousModifier"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//PreviousModifier"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5epTiVySEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gE281ySEei8Ja-whe6hFw" name="getSymbol() : EString" tooltipText="getSymbol() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//PreviousModifier/getSymbol"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//PreviousModifier/getSymbol"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gK9gFySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gK9gVySEei8Ja-whe6hFw" name="getUnderlyingType() : ExpressionType" tooltipText="getUnderlyingType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//PreviousModifier/getUnderlyingType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//PreviousModifier/getUnderlyingType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gK9glySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gK9g1ySEei8Ja-whe6hFw" name="getExpressionText() : EString" tooltipText="getExpressionText() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//PreviousModifier/getExpressionText"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//PreviousModifier/getExpressionText"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gK9hFySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5epTilySEei8Ja-whe6hFw" name="GreaterThanOperator" tooltipText="" outgoingEdges="_5hmg7FySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//GreaterThanOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//GreaterThanOperator"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5epTi1ySEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gK9hVySEei8Ja-whe6hFw" name="getSymbol() : EString" tooltipText="getSymbol() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//GreaterThanOperator/getSymbol"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//GreaterThanOperator/getSymbol"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gK9hlySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5epTjFySEei8Ja-whe6hFw" name="MuchGreaterThanOperator" tooltipText="" outgoingEdges="_5hmg8FySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//MuchGreaterThanOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//MuchGreaterThanOperator"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5epTjVySEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gK9h1ySEei8Ja-whe6hFw" name="getSymbol() : EString" tooltipText="getSymbol() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//MuchGreaterThanOperator/getSymbol"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//MuchGreaterThanOperator/getSymbol"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gK9iFySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5epTjlySEei8Ja-whe6hFw" name="LowerThanOperator" tooltipText="" outgoingEdges="_5hmg9FySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//LowerThanOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//LowerThanOperator"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5epTj1ySEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gK9iVySEei8Ja-whe6hFw" name="getSymbol() : EString" tooltipText="getSymbol() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//LowerThanOperator/getSymbol"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//LowerThanOperator/getSymbol"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gK9ilySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5epTkFySEei8Ja-whe6hFw" name="ComparisonOperator" tooltipText="" outgoingEdges="_5hmg-FySEei8Ja-whe6hFw" incomingEdges="_5hmg7FySEei8Ja-whe6hFw _5hmg8FySEei8Ja-whe6hFw _5hmg9FySEei8Ja-whe6hFw _5hmg_FySEei8Ja-whe6hFw _5hmhAFySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//ComparisonOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//ComparisonOperator"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5epTkVySEei8Ja-whe6hFw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gK9i1ySEei8Ja-whe6hFw" name="getUnderlyingType() : ExpressionType" tooltipText="getUnderlyingType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//ComparisonOperator/getUnderlyingType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//ComparisonOperator/getUnderlyingType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gK9jFySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gK9jVySEei8Ja-whe6hFw" name="getExpressionText() : EString" tooltipText="getExpressionText() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//ComparisonOperator/getExpressionText"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//ComparisonOperator/getExpressionText"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gK9jlySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5epTklySEei8Ja-whe6hFw" name="EqualToOperator" tooltipText="" outgoingEdges="_5hmg_FySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//EqualToOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//EqualToOperator"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5epTk1ySEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gK9j1ySEei8Ja-whe6hFw" name="getSymbol() : EString" tooltipText="getSymbol() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//EqualToOperator/getSymbol"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//EqualToOperator/getSymbol"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gK9kFySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5epTlFySEei8Ja-whe6hFw" name="ComparisonAnd" tooltipText="" outgoingEdges="_5hmhAFySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//ComparisonAnd"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//ComparisonAnd"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5epTlVySEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gK9kVySEei8Ja-whe6hFw" name="getSymbol() : EString" tooltipText="getSymbol() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//ComparisonAnd/getSymbol"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//ComparisonAnd/getSymbol"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gK9klySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gK9k1ySEei8Ja-whe6hFw" name="getExpressionText() : EString" tooltipText="getExpressionText() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//ComparisonAnd/getExpressionText"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//ComparisonAnd/getExpressionText"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gK9lFySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5epTllySEei8Ja-whe6hFw" name="LogicalOperator" tooltipText="" outgoingEdges="_5hmhBFySEei8Ja-whe6hFw" incomingEdges="_5hmhCFySEei8Ja-whe6hFw _5hmhDFySEei8Ja-whe6hFw _5hmhEFySEei8Ja-whe6hFw _5hmhGFySEei8Ja-whe6hFw _5hmhHFySEei8Ja-whe6hFw _5hmhIFySEei8Ja-whe6hFw _5hsng1ySEei8Ja-whe6hFw _5hsnh1ySEei8Ja-whe6hFw _5hsnk1ySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//LogicalOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//LogicalOperator"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5epTl1ySEei8Ja-whe6hFw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gK9lVySEei8Ja-whe6hFw" name="getUnderlyingType() : ExpressionType" tooltipText="getUnderlyingType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//LogicalOperator/getUnderlyingType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//LogicalOperator/getUnderlyingType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gK9llySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gK9l1ySEei8Ja-whe6hFw" name="getExpressionText() : EString" tooltipText="getExpressionText() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//LogicalOperator/getExpressionText"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//LogicalOperator/getExpressionText"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gK9mFySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5evaIFySEei8Ja-whe6hFw" name="AndOperator" tooltipText="" outgoingEdges="_5hmhCFySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//AndOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//AndOperator"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5evaIVySEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gK9mVySEei8Ja-whe6hFw" name="getSymbol() : EString" tooltipText="getSymbol() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//AndOperator/getSymbol"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//AndOperator/getSymbol"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gK9mlySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5evaIlySEei8Ja-whe6hFw" name="OrOperator" tooltipText="" outgoingEdges="_5hmhDFySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//OrOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//OrOperator"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5evaI1ySEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gK9m1ySEei8Ja-whe6hFw" name="getSymbol() : EString" tooltipText="getSymbol() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//OrOperator/getSymbol"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//OrOperator/getSymbol"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gK9nFySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5evaJFySEei8Ja-whe6hFw" name="NotOperator" tooltipText="" outgoingEdges="_5hmhEFySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//NotOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//NotOperator"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5evaJVySEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gK9nVySEei8Ja-whe6hFw" name="getSymbol() : EString" tooltipText="getSymbol() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//NotOperator/getSymbol"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//NotOperator/getSymbol"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gK9nlySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gREIFySEei8Ja-whe6hFw" name="getExpressionText() : EString" tooltipText="getExpressionText() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//NotOperator/getExpressionText"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//NotOperator/getExpressionText"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gREIVySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5evaKFySEei8Ja-whe6hFw" name="IsEqualToOperator" tooltipText="" outgoingEdges="_5hmhGFySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//IsEqualToOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//IsEqualToOperator"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5evaKVySEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gREJFySEei8Ja-whe6hFw" name="getSymbol() : EString" tooltipText="getSymbol() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//IsEqualToOperator/getSymbol"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//IsEqualToOperator/getSymbol"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gREJVySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5evaKlySEei8Ja-whe6hFw" name="IsGreaterThanOperator" tooltipText="" outgoingEdges="_5hmhHFySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//IsGreaterThanOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//IsGreaterThanOperator"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5evaK1ySEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gREJlySEei8Ja-whe6hFw" name="getSymbol() : EString" tooltipText="getSymbol() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//IsGreaterThanOperator/getSymbol"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//IsGreaterThanOperator/getSymbol"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gREJ1ySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5evaLFySEei8Ja-whe6hFw" name="IsLowerThanOperator" tooltipText="" outgoingEdges="_5hmhIFySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//IsLowerThanOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//IsLowerThanOperator"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5evaLVySEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gREKFySEei8Ja-whe6hFw" name="getSymbol() : EString" tooltipText="getSymbol() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//IsLowerThanOperator/getSymbol"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//IsLowerThanOperator/getSymbol"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gREKVySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5evaLlySEei8Ja-whe6hFw" name="IsGreaterThanEqualOperator" tooltipText="" outgoingEdges="_5hsng1ySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//IsGreaterThanEqualOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//IsGreaterThanEqualOperator"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5evaL1ySEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gREKlySEei8Ja-whe6hFw" name="getSymbol() : EString" tooltipText="getSymbol() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//IsGreaterThanEqualOperator/getSymbol"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//IsGreaterThanEqualOperator/getSymbol"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gREK1ySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5evaMFySEei8Ja-whe6hFw" name="IsLowerThanEqualOperator" tooltipText="" outgoingEdges="_5hsnh1ySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//IsLowerThanEqualOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//IsLowerThanEqualOperator"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5evaMVySEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gRELFySEei8Ja-whe6hFw" name="getSymbol() : EString" tooltipText="getSymbol() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//IsLowerThanEqualOperator/getSymbol"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//IsLowerThanEqualOperator/getSymbol"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gRELVySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5evaMlySEei8Ja-whe6hFw" name="ArithmeticOperator" tooltipText="" outgoingEdges="_5hsni1ySEei8Ja-whe6hFw" incomingEdges="_5hsnj1ySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//ArithmeticOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//ArithmeticOperator"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5evaM1ySEei8Ja-whe6hFw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gRELlySEei8Ja-whe6hFw" name="getUnderlyingType() : ExpressionType" tooltipText="getUnderlyingType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//ArithmeticOperator/getUnderlyingType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//ArithmeticOperator/getUnderlyingType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gREL1ySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gREMFySEei8Ja-whe6hFw" name="getExpressionText() : EString" tooltipText="getExpressionText() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//ArithmeticOperator/getExpressionText"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//ArithmeticOperator/getExpressionText"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gREMVySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5evaNFySEei8Ja-whe6hFw" name="PlusOperator" tooltipText="" outgoingEdges="_5hsnj1ySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//PlusOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//PlusOperator"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5evaNVySEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gREMlySEei8Ja-whe6hFw" name="getSymbol() : EString" tooltipText="getSymbol() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//PlusOperator/getSymbol"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//PlusOperator/getSymbol"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gREM1ySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5e1gwFySEei8Ja-whe6hFw" name="ImpliesOperator" tooltipText="" outgoingEdges="_5hsnk1ySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//ImpliesOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//ImpliesOperator"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5e1gwVySEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gRENFySEei8Ja-whe6hFw" name="getSymbol() : EString" tooltipText="getSymbol() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//ImpliesOperator/getSymbol"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//ImpliesOperator/getSymbol"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gRENVySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5e1gwlySEei8Ja-whe6hFw" name="ContentOperator" tooltipText="" outgoingEdges="_5hsnl1ySEei8Ja-whe6hFw" incomingEdges="_5hsnm1ySEei8Ja-whe6hFw _5hsnn1ySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//ContentOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//ContentOperator"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5e1gw1ySEei8Ja-whe6hFw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gRENlySEei8Ja-whe6hFw" name="getExpressionText() : EString" tooltipText="getExpressionText() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//ContentOperator/getExpressionText"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//ContentOperator/getExpressionText"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gREN1ySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5e1gxFySEei8Ja-whe6hFw" name="IsActive" tooltipText="" outgoingEdges="_5hsnm1ySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//IsActive"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//IsActive"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5e1gxVySEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gREOFySEei8Ja-whe6hFw" name="getSymbol() : EString" tooltipText="getSymbol() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//IsActive/getSymbol"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//IsActive/getSymbol"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gREOVySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gREOlySEei8Ja-whe6hFw" name="getUnderlyingType() : ExpressionType" tooltipText="getUnderlyingType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//IsActive/getUnderlyingType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//IsActive/getUnderlyingType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gREO1ySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5e1gxlySEei8Ja-whe6hFw" name="GetAllocatables" tooltipText="" outgoingEdges="_5hsnn1ySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//GetAllocatables"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//GetAllocatables"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5e1gx1ySEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gREPFySEei8Ja-whe6hFw" name="getSymbol() : EString" tooltipText="getSymbol() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//GetAllocatables/getSymbol"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//GetAllocatables/getSymbol"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gREPVySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gREPlySEei8Ja-whe6hFw" name="getUnderlyingType() : ExpressionType" tooltipText="getUnderlyingType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//GetAllocatables/getUnderlyingType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//GetAllocatables/getUnderlyingType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gREP1ySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5e1g0FySEei8Ja-whe6hFw" name="ObjectCompare" tooltipText="" outgoingEdges="_5hsns1ySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//ObjectCompare"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//ObjectCompare"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5e1g0VySEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gXK0lySEei8Ja-whe6hFw" name="getSymbol() : EString" tooltipText="getSymbol() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//ObjectCompare/getSymbol"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//ObjectCompare/getSymbol"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gXK01ySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gXK1FySEei8Ja-whe6hFw" name="getUnderlyingType() : ExpressionType" tooltipText="getUnderlyingType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//ObjectCompare/getUnderlyingType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//ObjectCompare/getUnderlyingType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gXK1VySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gXK1lySEei8Ja-whe6hFw" name="getExpressionText() : EString" tooltipText="getExpressionText() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//ObjectCompare/getExpressionText"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//ObjectCompare/getExpressionText"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gXK11ySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5e1g0lySEei8Ja-whe6hFw" name="ThatOfOperator" tooltipText="" outgoingEdges="_5hsnt1ySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//ThatOfOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//ThatOfOperator"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5e1g01ySEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gXK2FySEei8Ja-whe6hFw" name="getExpressionText() : EString" tooltipText="getExpressionText() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//ThatOfOperator/getExpressionText"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//ThatOfOperator/getExpressionText"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gXK2VySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gXK2lySEei8Ja-whe6hFw" name="getSymbol() : EString" tooltipText="getSymbol() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//ThatOfOperator/getSymbol"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//ThatOfOperator/getSymbol"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gXK21ySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gXK3FySEei8Ja-whe6hFw" name="getUnderlyingType() : ExpressionType" tooltipText="getUnderlyingType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//ThatOfOperator/getUnderlyingType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//ThatOfOperator/getUnderlyingType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gXK3VySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5e7nYFySEei8Ja-whe6hFw" name="ValueExpression" tooltipText="" outgoingEdges="_5hsnu1ySEei8Ja-whe6hFw" incomingEdges="_5hsnv1ySEei8Ja-whe6hFw _5hsnw1ySEei8Ja-whe6hFw _5hsnx1ySEei8Ja-whe6hFw _5hsny1ySEei8Ja-whe6hFw _5hsnz1ySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//ValueExpression"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//ValueExpression"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5e7nYVySEei8Ja-whe6hFw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gXK3lySEei8Ja-whe6hFw" name="getUnderlyingType() : ExpressionType" tooltipText="getUnderlyingType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//ValueExpression/getUnderlyingType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//ValueExpression/getUnderlyingType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gXK31ySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gXK4FySEei8Ja-whe6hFw" name="getExpressionValue() : EInt" tooltipText="getExpressionValue() : EInt">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//ValueExpression/getExpressionValue"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//ValueExpression/getExpressionValue"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gXK4VySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gXK4lySEei8Ja-whe6hFw" name="getType() : ExpressionType" tooltipText="getType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//ValueExpression/getType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//ValueExpression/getType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gXK41ySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5e7nYlySEei8Ja-whe6hFw" name="MaxValue" tooltipText="" outgoingEdges="_5hsnv1ySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//MaxValue"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//MaxValue"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5e7nY1ySEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gXK5FySEei8Ja-whe6hFw" name="getExpressionText() : EString" tooltipText="getExpressionText() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//MaxValue/getExpressionText"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//MaxValue/getExpressionText"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gXK5VySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gXK5lySEei8Ja-whe6hFw" name="getExpressionValue() : EInt" tooltipText="getExpressionValue() : EInt">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//MaxValue/getExpressionValue"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//MaxValue/getExpressionValue"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gXK51ySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5e7nZFySEei8Ja-whe6hFw" name="MinValue" tooltipText="" outgoingEdges="_5hsnw1ySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//MinValue"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//MinValue"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5e7nZVySEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gXK6FySEei8Ja-whe6hFw" name="getExpressionText() : EString" tooltipText="getExpressionText() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//MinValue/getExpressionText"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//MinValue/getExpressionText"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gdRYFySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gdRYVySEei8Ja-whe6hFw" name="getExpressionValue() : EInt" tooltipText="getExpressionValue() : EInt">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//MinValue/getExpressionValue"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//MinValue/getExpressionValue"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gdRYlySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5e7nZlySEei8Ja-whe6hFw" name="NoneValue" tooltipText="" outgoingEdges="_5hsnx1ySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//NoneValue"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//NoneValue"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5e7nZ1ySEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gdRY1ySEei8Ja-whe6hFw" name="getExpressionText() : EString" tooltipText="getExpressionText() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//NoneValue/getExpressionText"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//NoneValue/getExpressionText"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gdRZFySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gdRZVySEei8Ja-whe6hFw" name="getExpressionValue() : EInt" tooltipText="getExpressionValue() : EInt">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//NoneValue/getExpressionValue"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//NoneValue/getExpressionValue"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gdRZlySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5e7naFySEei8Ja-whe6hFw" name="StandardValue" tooltipText="" outgoingEdges="_5hsny1ySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//StandardValue"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//StandardValue"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5e7naVySEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gdRZ1ySEei8Ja-whe6hFw" name="getExpressionText() : EString" tooltipText="getExpressionText() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//StandardValue/getExpressionText"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//StandardValue/getExpressionText"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gdRaFySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gdRaVySEei8Ja-whe6hFw" name="getExpressionValue() : EInt" tooltipText="getExpressionValue() : EInt">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//StandardValue/getExpressionValue"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//StandardValue/getExpressionValue"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gdRalySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5e7nalySEei8Ja-whe6hFw" name="IntegerValue" tooltipText="" outgoingEdges="_5hsnz1ySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//IntegerValue"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//IntegerValue"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5e7na1ySEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gdRa1ySEei8Ja-whe6hFw" name="value : EInt" tooltipText="">
+ <target xmi:type="ecore:EAttribute" href="rbacore.ecore#//IntegerValue/value"/>
+ <semanticElements xmi:type="ecore:EAttribute" href="rbacore.ecore#//IntegerValue/value"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gdRbFySEei8Ja-whe6hFw" labelAlignment="LEFT" description="_5f-wRlySEei8Ja-whe6hFw">
+ <labelFormat>bold</labelFormat>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gdRbVySEei8Ja-whe6hFw" name="getExpressionText() : EString" tooltipText="getExpressionText() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//IntegerValue/getExpressionText"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//IntegerValue/getExpressionText"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gdRblySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gdRb1ySEei8Ja-whe6hFw" name="getExpressionValue() : EInt" tooltipText="getExpressionValue() : EInt">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//IntegerValue/getExpressionValue"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//IntegerValue/getExpressionValue"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gdRcFySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5e7nbFySEei8Ja-whe6hFw" name="SetExpression" tooltipText="" outgoingEdges="_5hsn01ySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//SetExpression"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//SetExpression"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5e7nbVySEei8Ja-whe6hFw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5e7nblySEei8Ja-whe6hFw" name="SetOperator" tooltipText="" outgoingEdges="_5hsn11ySEei8Ja-whe6hFw" incomingEdges="_5hyuN1ySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//SetOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//SetOperator"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5e7nb1ySEei8Ja-whe6hFw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5e7ncFySEei8Ja-whe6hFw" name="ExistsOperator" tooltipText="" outgoingEdges="_5hyuI1ySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//ExistsOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//ExistsOperator"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5e7ncVySEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gdRcVySEei8Ja-whe6hFw" name="getExpressionText() : EString" tooltipText="getExpressionText() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//ExistsOperator/getExpressionText"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//ExistsOperator/getExpressionText"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gdRclySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gdRc1ySEei8Ja-whe6hFw" name="getSymbol() : EString" tooltipText="getSymbol() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//ExistsOperator/getSymbol"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//ExistsOperator/getSymbol"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gdRdFySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gdRdVySEei8Ja-whe6hFw" name="getUnderlyingType() : ExpressionType" tooltipText="getUnderlyingType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//ExistsOperator/getUnderlyingType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//ExistsOperator/getUnderlyingType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gdRdlySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5e7nclySEei8Ja-whe6hFw" name="ForAllOperator" tooltipText="" outgoingEdges="_5hyuJ1ySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//ForAllOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//ForAllOperator"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5e7nc1ySEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gdRd1ySEei8Ja-whe6hFw" name="getExpressionText() : EString" tooltipText="getExpressionText() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//ForAllOperator/getExpressionText"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//ForAllOperator/getExpressionText"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gdReFySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gdReVySEei8Ja-whe6hFw" name="getSymbol() : EString" tooltipText="getSymbol() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//ForAllOperator/getSymbol"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//ForAllOperator/getSymbol"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gdRelySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gdRe1ySEei8Ja-whe6hFw" name="getUnderlyingType() : ExpressionType" tooltipText="getUnderlyingType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//ForAllOperator/getUnderlyingType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//ForAllOperator/getUnderlyingType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gdRfFySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5e7ndFySEei8Ja-whe6hFw" name="SetOfOperator" tooltipText="" outgoingEdges="_5hyuK1ySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//SetOfOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//SetOfOperator"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5e7ndVySEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gdRfVySEei8Ja-whe6hFw" name="getExpressionText() : EString" tooltipText="getExpressionText() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//SetOfOperator/getExpressionText"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//SetOfOperator/getExpressionText"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gdRflySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gdRf1ySEei8Ja-whe6hFw" name="getSymbol() : EString" tooltipText="getSymbol() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//SetOfOperator/getSymbol"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//SetOfOperator/getSymbol"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gdRgFySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gdRgVySEei8Ja-whe6hFw" name="getUnderlyingType() : ExpressionType" tooltipText="getUnderlyingType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//SetOfOperator/getUnderlyingType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//SetOfOperator/getUnderlyingType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gdRglySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5fBuAFySEei8Ja-whe6hFw" name="LambdaExpression" tooltipText="" outgoingEdges="_5hH_zFySEei8Ja-whe6hFw _5hH_0FySEei8Ja-whe6hFw _5hyuL1ySEei8Ja-whe6hFw _5h4051ySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//LambdaExpression"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//LambdaExpression"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5fBuAVySEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gdRg1ySEei8Ja-whe6hFw" name="getExpressionText() : EString" tooltipText="getExpressionText() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//LambdaExpression/getExpressionText"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//LambdaExpression/getExpressionText"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gdRhFySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gdRhVySEei8Ja-whe6hFw" name="getUnderlyingType() : ExpressionType" tooltipText="getUnderlyingType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//LambdaExpression/getUnderlyingType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//LambdaExpression/getUnderlyingType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gdRhlySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5fBuAlySEei8Ja-whe6hFw" name="Variable" tooltipText="" outgoingEdges="_5hyuM1ySEei8Ja-whe6hFw" incomingEdges="_5hH_zFySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//Variable"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//Variable"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5fBuA1ySEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gjYAlySEei8Ja-whe6hFw" name="getExpressionType() : ExpressionType" tooltipText="getExpressionType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//Variable/getExpressionType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//Variable/getExpressionType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gjYA1ySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5fBuBFySEei8Ja-whe6hFw" name="LambdaContext" tooltipText="" outgoingEdges="_5hyuN1ySEei8Ja-whe6hFw" incomingEdges="_5hyuI1ySEei8Ja-whe6hFw _5hyuJ1ySEei8Ja-whe6hFw _5h4051ySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//LambdaContext"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//LambdaContext"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5fBuBVySEei8Ja-whe6hFw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gjYBFySEei8Ja-whe6hFw" name="getContextType() : ExpressionType" tooltipText="getContextType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//LambdaContext/getContextType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//LambdaContext/getContextType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gjYBVySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5fBuBlySEei8Ja-whe6hFw" name="IfStatement" tooltipText="" outgoingEdges="_5hH_1FySEei8Ja-whe6hFw _5hH_2FySEei8Ja-whe6hFw _5hH_3FySEei8Ja-whe6hFw _5hyuO1ySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//IfStatement"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//IfStatement"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5fBuB1ySEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gjYBlySEei8Ja-whe6hFw" name="getUnderlyingType() : ExpressionType" tooltipText="getUnderlyingType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//IfStatement/getUnderlyingType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//IfStatement/getUnderlyingType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gjYB1ySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gjYCFySEei8Ja-whe6hFw" name="getExpressionText() : EString" tooltipText="getExpressionText() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//IfStatement/getExpressionText"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//IfStatement/getExpressionText"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gjYCVySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5fBuCFySEei8Ja-whe6hFw" name="SceneOperator" tooltipText="" outgoingEdges="_5hyuP1ySEei8Ja-whe6hFw" incomingEdges="_5hyuQ1ySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//SceneOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//SceneOperator"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5fBuCVySEei8Ja-whe6hFw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gjYClySEei8Ja-whe6hFw" name="getExpressionText() : EString" tooltipText="getExpressionText() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//SceneOperator/getExpressionText"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//SceneOperator/getExpressionText"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gjYC1ySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5fBuClySEei8Ja-whe6hFw" name="IsOn" tooltipText="" outgoingEdges="_5hyuQ1ySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//IsOn"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//IsOn"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5fBuC1ySEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gjYDFySEei8Ja-whe6hFw" name="getSymbol() : EString" tooltipText="getSymbol() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//IsOn/getSymbol"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//IsOn/getSymbol"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gjYDVySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gjYDlySEei8Ja-whe6hFw" name="getUnderlyingType() : ExpressionType" tooltipText="getUnderlyingType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//IsOn/getUnderlyingType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//IsOn/getUnderlyingType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gjYD1ySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5fBuDFySEei8Ja-whe6hFw" name="AllocatableOperator" tooltipText="" outgoingEdges="_5hyuR1ySEei8Ja-whe6hFw" incomingEdges="_5hyuS1ySEei8Ja-whe6hFw _5hyuT1ySEei8Ja-whe6hFw __BckoJliEeijptRUADwljg" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//AllocatableOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//AllocatableOperator"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5fBuDVySEei8Ja-whe6hFw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gjYEFySEei8Ja-whe6hFw" name="getExpressionText() : EString" tooltipText="getExpressionText() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//AllocatableOperator/getExpressionText"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//AllocatableOperator/getExpressionText"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gjYEVySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5fBuDlySEei8Ja-whe6hFw" name="ContentValue" tooltipText="" outgoingEdges="_5hyuS1ySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//ContentValue"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//ContentValue"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5fBuD1ySEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gjYElySEei8Ja-whe6hFw" name="getSymbol() : EString" tooltipText="getSymbol() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//ContentValue/getSymbol"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//ContentValue/getSymbol"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gjYE1ySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gjYFFySEei8Ja-whe6hFw" name="getUnderlyingType() : ExpressionType" tooltipText="getUnderlyingType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//ContentValue/getUnderlyingType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//ContentValue/getUnderlyingType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gjYFVySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5fBuEFySEei8Ja-whe6hFw" name="GetContentsList" tooltipText="" outgoingEdges="_5hyuT1ySEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//GetContentsList"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//GetContentsList"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5fBuEVySEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gpeoFySEei8Ja-whe6hFw" name="getSymbol() : EString" tooltipText="getSymbol() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//GetContentsList/getSymbol"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//GetContentsList/getSymbol"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gpeoVySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gpeolySEei8Ja-whe6hFw" name="getUnderlyingType() : ExpressionType" tooltipText="getUnderlyingType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//GetContentsList/getUnderlyingType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//GetContentsList/getUnderlyingType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gpeo1ySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5fBuElySEei8Ja-whe6hFw" name="PropertyOperator" tooltipText="" outgoingEdges="_5hyuU1ySEei8Ja-whe6hFw" incomingEdges="__BckqJliEeijptRUADwljg" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//PropertyOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//PropertyOperator"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5fBuE1ySEei8Ja-whe6hFw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gpepFySEei8Ja-whe6hFw" name="getUnderlyingType() : ExpressionType" tooltipText="getUnderlyingType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//PropertyOperator/getUnderlyingType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//PropertyOperator/getUnderlyingType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gpepVySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gpeplySEei8Ja-whe6hFw" name="getExpressionText() : EString" tooltipText="getExpressionText() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//PropertyOperator/getExpressionText"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//PropertyOperator/getExpressionText"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gpep1ySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5fH0rFySEei8Ja-whe6hFw" name="ArbitrationPolicy" tooltipText="" width="12" height="10">
+ <target xmi:type="ecore:EEnum" href="rbacore.ecore#//ArbitrationPolicy"/>
+ <semanticElements xmi:type="ecore:EEnum" href="rbacore.ecore#//ArbitrationPolicy"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5fH0rVySEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="221,236,202">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gvlRVySEei8Ja-whe6hFw" name="DEFAULT" tooltipText="">
+ <target xmi:type="ecore:EEnumLiteral" href="rbacore.ecore#//ArbitrationPolicy/DEFAULT"/>
+ <semanticElements xmi:type="ecore:EEnumLiteral" href="rbacore.ecore#//ArbitrationPolicy/DEFAULT"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gvlRlySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5gvlTVySEei8Ja-whe6hFw" name="FIRST_COME_FIRST" tooltipText="">
+ <target xmi:type="ecore:EEnumLiteral" href="rbacore.ecore#//ArbitrationPolicy/FIRST_COME_FIRST"/>
+ <semanticElements xmi:type="ecore:EEnumLiteral" href="rbacore.ecore#//ArbitrationPolicy/FIRST_COME_FIRST"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5gvlTlySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_QBST0IsTEeiuX8plUFkEQQ" name="LAST_COME_FIRST" tooltipText="">
+ <target xmi:type="ecore:EEnumLiteral" href="rbacore.ecore#//ArbitrationPolicy/LAST_COME_FIRST"/>
+ <semanticElements xmi:type="ecore:EEnumLiteral" href="rbacore.ecore#//ArbitrationPolicy/LAST_COME_FIRST"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_QBST0YsTEeiuX8plUFkEQQ" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_ZEkEcIsOEeiuX8plUFkEQQ" name="PRIORITY_FIRST_COME_FIRST" tooltipText="">
+ <target xmi:type="ecore:EEnumLiteral" href="rbacore.ecore#//ArbitrationPolicy/PRIORITY_FIRST_COME_FIRST"/>
+ <semanticElements xmi:type="ecore:EEnumLiteral" href="rbacore.ecore#//ArbitrationPolicy/PRIORITY_FIRST_COME_FIRST"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_ZEkEcYsOEeiuX8plUFkEQQ" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_ZEkEcosOEeiuX8plUFkEQQ" name="PRIORITY_LAST_COME_FIRST" tooltipText="">
+ <target xmi:type="ecore:EEnumLiteral" href="rbacore.ecore#//ArbitrationPolicy/PRIORITY_LAST_COME_FIRST"/>
+ <semanticElements xmi:type="ecore:EEnumLiteral" href="rbacore.ecore#//ArbitrationPolicy/PRIORITY_LAST_COME_FIRST"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_ZEkEc4sOEeiuX8plUFkEQQ" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5fH0sFySEei8Ja-whe6hFw" name="ExpressionType" tooltipText="" width="12" height="10">
+ <target xmi:type="ecore:EEnum" href="rbacore.ecore#//ExpressionType"/>
+ <semanticElements xmi:type="ecore:EEnum" href="rbacore.ecore#//ExpressionType"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5fH0sVySEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="221,236,202">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5g1r61ySEei8Ja-whe6hFw" name="VALUE" tooltipText="">
+ <target xmi:type="ecore:EEnumLiteral" href="rbacore.ecore#//ExpressionType/VALUE"/>
+ <semanticElements xmi:type="ecore:EEnumLiteral" href="rbacore.ecore#//ExpressionType/VALUE"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5g1r7FySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5g1r7VySEei8Ja-whe6hFw" name="BOOLEAN" tooltipText="">
+ <target xmi:type="ecore:EEnumLiteral" href="rbacore.ecore#//ExpressionType/BOOLEAN"/>
+ <semanticElements xmi:type="ecore:EEnumLiteral" href="rbacore.ecore#//ExpressionType/BOOLEAN"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5g1r7lySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5g1r71ySEei8Ja-whe6hFw" name="AREA" tooltipText="">
+ <target xmi:type="ecore:EEnumLiteral" href="rbacore.ecore#//ExpressionType/AREA"/>
+ <semanticElements xmi:type="ecore:EEnumLiteral" href="rbacore.ecore#//ExpressionType/AREA"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5g1r8FySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5g1r8VySEei8Ja-whe6hFw" name="CONTENT" tooltipText="">
+ <target xmi:type="ecore:EEnumLiteral" href="rbacore.ecore#//ExpressionType/CONTENT"/>
+ <semanticElements xmi:type="ecore:EEnumLiteral" href="rbacore.ecore#//ExpressionType/CONTENT"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5g1r8lySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5g1r81ySEei8Ja-whe6hFw" name="SET_OF_AREA" tooltipText="">
+ <target xmi:type="ecore:EEnumLiteral" href="rbacore.ecore#//ExpressionType/SET_OF_AREA"/>
+ <semanticElements xmi:type="ecore:EEnumLiteral" href="rbacore.ecore#//ExpressionType/SET_OF_AREA"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5g1r9FySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5g1r9VySEei8Ja-whe6hFw" name="SET_OF_CONTENT" tooltipText="">
+ <target xmi:type="ecore:EEnumLiteral" href="rbacore.ecore#//ExpressionType/SET_OF_CONTENT"/>
+ <semanticElements xmi:type="ecore:EEnumLiteral" href="rbacore.ecore#//ExpressionType/SET_OF_CONTENT"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5g1r9lySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5g1r91ySEei8Ja-whe6hFw" name="LAMBDA" tooltipText="">
+ <target xmi:type="ecore:EEnumLiteral" href="rbacore.ecore#//ExpressionType/LAMBDA"/>
+ <semanticElements xmi:type="ecore:EEnumLiteral" href="rbacore.ecore#//ExpressionType/LAMBDA"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5g1r-FySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5g1r-VySEei8Ja-whe6hFw" name="SCENE" tooltipText="">
+ <target xmi:type="ecore:EEnumLiteral" href="rbacore.ecore#//ExpressionType/SCENE"/>
+ <semanticElements xmi:type="ecore:EEnumLiteral" href="rbacore.ecore#//ExpressionType/SCENE"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5g1r-lySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5g1r-1ySEei8Ja-whe6hFw" name="ZONE" tooltipText="">
+ <target xmi:type="ecore:EEnumLiteral" href="rbacore.ecore#//ExpressionType/ZONE"/>
+ <semanticElements xmi:type="ecore:EEnumLiteral" href="rbacore.ecore#//ExpressionType/ZONE"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5g1r_FySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5g1r_VySEei8Ja-whe6hFw" name="SET_OF_ZONE" tooltipText="">
+ <target xmi:type="ecore:EEnumLiteral" href="rbacore.ecore#//ExpressionType/SET_OF_ZONE"/>
+ <semanticElements xmi:type="ecore:EEnumLiteral" href="rbacore.ecore#//ExpressionType/SET_OF_ZONE"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5g1r_lySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5g1r_1ySEei8Ja-whe6hFw" name="SOUND" tooltipText="">
+ <target xmi:type="ecore:EEnumLiteral" href="rbacore.ecore#//ExpressionType/SOUND"/>
+ <semanticElements xmi:type="ecore:EEnumLiteral" href="rbacore.ecore#//ExpressionType/SOUND"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5g1sAFySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5g1sAVySEei8Ja-whe6hFw" name="SET_OF_SOUND" tooltipText="">
+ <target xmi:type="ecore:EEnumLiteral" href="rbacore.ecore#//ExpressionType/SET_OF_SOUND"/>
+ <semanticElements xmi:type="ecore:EEnumLiteral" href="rbacore.ecore#//ExpressionType/SET_OF_SOUND"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5g1sAlySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5g1sB1ySEei8Ja-whe6hFw" name="PROPERTY" tooltipText="">
+ <target xmi:type="ecore:EEnumLiteral" href="rbacore.ecore#//ExpressionType/PROPERTY"/>
+ <semanticElements xmi:type="ecore:EEnumLiteral" href="rbacore.ecore#//ExpressionType/PROPERTY"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5g1sCFySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_CIX40IDREeutB9ElOMNRZA" name="CONTENT_STATE" tooltipText="">
+ <target xmi:type="ecore:EEnumLiteral" href="rbacore.ecore#//ExpressionType/CONTENT_STATE"/>
+ <semanticElements xmi:type="ecore:EEnumLiteral" href="rbacore.ecore#//ExpressionType/CONTENT_STATE"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_CIX40YDREeutB9ElOMNRZA" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_CIX40oDREeutB9ElOMNRZA" name="ENUM" tooltipText="">
+ <target xmi:type="ecore:EEnumLiteral" href="rbacore.ecore#//ExpressionType/ENUM"/>
+ <semanticElements xmi:type="ecore:EEnumLiteral" href="rbacore.ecore#//ExpressionType/ENUM"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_CIYf4IDREeutB9ElOMNRZA" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_CIYf4YDREeutB9ElOMNRZA" name="NULL" tooltipText="">
+ <target xmi:type="ecore:EEnumLiteral" href="rbacore.ecore#//ExpressionType/NULL"/>
+ <semanticElements xmi:type="ecore:EEnumLiteral" href="rbacore.ecore#//ExpressionType/NULL"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_CIZG8IDREeutB9ElOMNRZA" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_5fH0slySEei8Ja-whe6hFw" name="LoserType" tooltipText="" width="12" height="10">
+ <target xmi:type="ecore:EEnum" href="rbacore.ecore#//LoserType"/>
+ <semanticElements xmi:type="ecore:EEnum" href="rbacore.ecore#//LoserType"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_5fH0s1ySEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="221,236,202">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5g1sCVySEei8Ja-whe6hFw" name="NEVER_GIVEUP" tooltipText="">
+ <target xmi:type="ecore:EEnumLiteral" href="rbacore.ecore#//LoserType/NEVER_GIVEUP"/>
+ <semanticElements xmi:type="ecore:EEnumLiteral" href="rbacore.ecore#//LoserType/NEVER_GIVEUP"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5g1sClySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5g1sC1ySEei8Ja-whe6hFw" name="GOOD_LOSER" tooltipText="">
+ <target xmi:type="ecore:EEnumLiteral" href="rbacore.ecore#//LoserType/GOOD_LOSER"/>
+ <semanticElements xmi:type="ecore:EEnumLiteral" href="rbacore.ecore#//LoserType/GOOD_LOSER"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5g1sDFySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_5g1sDVySEei8Ja-whe6hFw" name="DO_NOT_GIVEUP_UNTIL_WIN" tooltipText="">
+ <target xmi:type="ecore:EEnumLiteral" href="rbacore.ecore#//LoserType/DO_NOT_GIVEUP_UNTIL_WIN"/>
+ <semanticElements xmi:type="ecore:EEnumLiteral" href="rbacore.ecore#//LoserType/DO_NOT_GIVEUP_UNTIL_WIN"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_5g1sDlySEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5g7ygFySEei8Ja-whe6hFw" name="[0..*] packagableelement" sourceNode="_5edGSFySEei8Ja-whe6hFw" targetNode="_5edGRlySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EReference" href="rbacore.ecore#//Package/packagableelement"/>
+ <semanticElements xmi:type="ecore:EReference" href="rbacore.ecore#//Package/packagableelement"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hB5I1ySEei8Ja-whe6hFw" description="_5hB5IFySEei8Ja-whe6hFw" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hB5JFySEei8Ja-whe6hFw" showIcon="false">
+ <customFeatures>labelSize</customFeatures>
+ </centerLabelStyle>
+ <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_5hB5JVySEei8Ja-whe6hFw" showIcon="false" labelColor="39,76,114">
+ <customFeatures>labelSize</customFeatures>
+ </endLabelStyle>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hB5MlySEei8Ja-whe6hFw" name="[1..1] value" sourceNode="_5ejM5lySEei8Ja-whe6hFw" targetNode="_5epTglySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EReference" href="rbacore.ecore#//ContentState/value"/>
+ <semanticElements xmi:type="ecore:EReference" href="rbacore.ecore#//ContentState/value"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hB5NlySEei8Ja-whe6hFw" description="_5hB5M1ySEei8Ja-whe6hFw" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hB5N1ySEei8Ja-whe6hFw" showIcon="false">
+ <customFeatures>labelSize</customFeatures>
+ <labelFormat>bold</labelFormat>
+ </centerLabelStyle>
+ <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_5hB5OFySEei8Ja-whe6hFw" showIcon="false" labelColor="39,76,114">
+ <customFeatures>labelSize</customFeatures>
+ </endLabelStyle>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hB5PVySEei8Ja-whe6hFw" name="[1..1] value" sourceNode="_5ejM6lySEei8Ja-whe6hFw" targetNode="_5epTglySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EReference" href="rbacore.ecore#//IntegerProperty/value"/>
+ <semanticElements xmi:type="ecore:EReference" href="rbacore.ecore#//IntegerProperty/value"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_Vyp9gJlhEeijptRUADwljg" description="_5hB5M1ySEei8Ja-whe6hFw" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_Vyp9gZlhEeijptRUADwljg" showIcon="false">
+ <labelFormat>bold</labelFormat>
+ </centerLabelStyle>
+ <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_Vyp9gplhEeijptRUADwljg" labelSize="6" showIcon="false" labelColor="39,76,114"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hB5QVySEei8Ja-whe6hFw" name="[1..1] expression" sourceNode="_5ejM7FySEei8Ja-whe6hFw" targetNode="_5epTglySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EReference" href="rbacore.ecore#//AbstractConstraint/expression"/>
+ <semanticElements xmi:type="ecore:EReference" href="rbacore.ecore#//AbstractConstraint/expression"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_VzCYAJlhEeijptRUADwljg" description="_5hB5M1ySEei8Ja-whe6hFw" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_VzCYAZlhEeijptRUADwljg" showIcon="false">
+ <labelFormat>bold</labelFormat>
+ </centerLabelStyle>
+ <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_VzCYAplhEeijptRUADwljg" labelSize="6" showIcon="false" labelColor="39,76,114"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hH_wFySEei8Ja-whe6hFw" name="[1..*] operand" sourceNode="_5epThFySEei8Ja-whe6hFw" targetNode="_5epTglySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EReference" href="rbacore.ecore#//Operator/operand"/>
+ <semanticElements xmi:type="ecore:EReference" href="rbacore.ecore#//Operator/operand"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_VzDmIJlhEeijptRUADwljg" description="_5hB5M1ySEei8Ja-whe6hFw" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_VzDmIZlhEeijptRUADwljg" showIcon="false">
+ <labelFormat>bold</labelFormat>
+ </centerLabelStyle>
+ <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_VzDmIplhEeijptRUADwljg" labelSize="6" showIcon="false" labelColor="39,76,114"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hH_xFySEei8Ja-whe6hFw" name="[0..1] refObject" sourceNode="_5epThlySEei8Ja-whe6hFw" targetNode="_5edGSlySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EReference" href="rbacore.ecore#//ObjectReference/refObject"/>
+ <semanticElements xmi:type="ecore:EReference" href="rbacore.ecore#//ObjectReference/refObject"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hH_xVySEei8Ja-whe6hFw" routingStyle="manhattan" strokeColor="0,0,0">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hH_xlySEei8Ja-whe6hFw" showIcon="false">
+ <customFeatures>labelSize</customFeatures>
+ </centerLabelStyle>
+ <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_5hH_x1ySEei8Ja-whe6hFw" showIcon="false" labelColor="39,76,114">
+ <customFeatures>labelSize</customFeatures>
+ </endLabelStyle>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hH_yFySEei8Ja-whe6hFw" name="[0..1] objReference" sourceNode="_5epTiFySEei8Ja-whe6hFw" targetNode="_5epThlySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EReference" href="rbacore.ecore#//PreviousModifier/objReference"/>
+ <semanticElements xmi:type="ecore:EReference" href="rbacore.ecore#//PreviousModifier/objReference"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hH_yVySEei8Ja-whe6hFw" description="_5hB5IFySEei8Ja-whe6hFw" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hH_ylySEei8Ja-whe6hFw" showIcon="false">
+ <customFeatures>labelSize</customFeatures>
+ </centerLabelStyle>
+ <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_5hH_y1ySEei8Ja-whe6hFw" showIcon="false" labelColor="39,76,114">
+ <customFeatures>labelSize</customFeatures>
+ </endLabelStyle>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hH_zFySEei8Ja-whe6hFw" name="[1..1] x" sourceNode="_5fBuAFySEei8Ja-whe6hFw" targetNode="_5fBuAlySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EReference" href="rbacore.ecore#//LambdaExpression/x"/>
+ <semanticElements xmi:type="ecore:EReference" href="rbacore.ecore#//LambdaExpression/x"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hH_zVySEei8Ja-whe6hFw" description="_5hB5M1ySEei8Ja-whe6hFw" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hH_zlySEei8Ja-whe6hFw" showIcon="false">
+ <customFeatures>labelSize</customFeatures>
+ <labelFormat>bold</labelFormat>
+ </centerLabelStyle>
+ <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_5hH_z1ySEei8Ja-whe6hFw" showIcon="false" labelColor="39,76,114">
+ <customFeatures>labelSize</customFeatures>
+ </endLabelStyle>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hH_0FySEei8Ja-whe6hFw" name="[1..1] bodyText" sourceNode="_5fBuAFySEei8Ja-whe6hFw" targetNode="_5epTglySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EReference" href="rbacore.ecore#//LambdaExpression/bodyText"/>
+ <semanticElements xmi:type="ecore:EReference" href="rbacore.ecore#//LambdaExpression/bodyText"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hH_0VySEei8Ja-whe6hFw" description="_5hB5M1ySEei8Ja-whe6hFw" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hH_0lySEei8Ja-whe6hFw" showIcon="false">
+ <customFeatures>labelSize</customFeatures>
+ <labelFormat>bold</labelFormat>
+ </centerLabelStyle>
+ <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_5hH_01ySEei8Ja-whe6hFw" showIcon="false" labelColor="39,76,114">
+ <customFeatures>labelSize</customFeatures>
+ </endLabelStyle>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hH_1FySEei8Ja-whe6hFw" name="[1..1] condition" sourceNode="_5fBuBlySEei8Ja-whe6hFw" targetNode="_5epTglySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EReference" href="rbacore.ecore#//IfStatement/condition"/>
+ <semanticElements xmi:type="ecore:EReference" href="rbacore.ecore#//IfStatement/condition"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_VzH3kJlhEeijptRUADwljg" description="_5hB5M1ySEei8Ja-whe6hFw" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_VzH3kZlhEeijptRUADwljg" showIcon="false">
+ <labelFormat>bold</labelFormat>
+ </centerLabelStyle>
+ <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_VzH3kplhEeijptRUADwljg" labelSize="6" showIcon="false" labelColor="39,76,114"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hH_2FySEei8Ja-whe6hFw" name="[1..1] thenExpression" sourceNode="_5fBuBlySEei8Ja-whe6hFw" targetNode="_5epTglySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EReference" href="rbacore.ecore#//IfStatement/thenExpression"/>
+ <semanticElements xmi:type="ecore:EReference" href="rbacore.ecore#//IfStatement/thenExpression"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_VzIeoJlhEeijptRUADwljg" description="_5hB5M1ySEei8Ja-whe6hFw" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_VzIeoZlhEeijptRUADwljg" showIcon="false">
+ <labelFormat>bold</labelFormat>
+ </centerLabelStyle>
+ <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_VzIeoplhEeijptRUADwljg" labelSize="6" showIcon="false" labelColor="39,76,114"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hH_3FySEei8Ja-whe6hFw" name="[1..1] elseExpression" sourceNode="_5fBuBlySEei8Ja-whe6hFw" targetNode="_5epTglySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EReference" href="rbacore.ecore#//IfStatement/elseExpression"/>
+ <semanticElements xmi:type="ecore:EReference" href="rbacore.ecore#//IfStatement/elseExpression"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_VzJFsJlhEeijptRUADwljg" description="_5hB5M1ySEei8Ja-whe6hFw" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_VzJFsZlhEeijptRUADwljg" showIcon="false">
+ <labelFormat>bold</labelFormat>
+ </centerLabelStyle>
+ <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_VzJFsplhEeijptRUADwljg" labelSize="6" showIcon="false" labelColor="39,76,114"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5haToFySEei8Ja-whe6hFw" sourceNode="_5edGQFySEei8Ja-whe6hFw" targetNode="_5eQ5AFySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//NamedElement"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//NamedElement"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5haToVySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5haTolySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5haTo1ySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5haTqFySEei8Ja-whe6hFw" sourceNode="_5edGRFySEei8Ja-whe6hFw" targetNode="_5edGSFySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//Project"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//Project"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5haTqVySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5haTqlySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5haTq1ySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5haTrFySEei8Ja-whe6hFw" sourceNode="_5edGRlySEei8Ja-whe6hFw" targetNode="_5edGQFySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//PackagableElement"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//PackagableElement"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5haTrVySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5haTrlySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5haTr1ySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hgaQFySEei8Ja-whe6hFw" sourceNode="_5edGSFySEei8Ja-whe6hFw" targetNode="_5edGRlySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//Package"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//Package"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hgaQVySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hgaQlySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hgaQ1ySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hgaRFySEei8Ja-whe6hFw" sourceNode="_5edGSlySEei8Ja-whe6hFw" targetNode="_5edGRlySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//RuleObject"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//RuleObject"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hgaRVySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hgaRlySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hgaR1ySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hgaSFySEei8Ja-whe6hFw" sourceNode="_5edGTFySEei8Ja-whe6hFw" targetNode="_5edGSlySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//AbstractContent"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//AbstractContent"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_XuhsgJneEeijptRUADwljg" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_XuhsgZneEeijptRUADwljg" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_XuhsgpneEeijptRUADwljg" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hgaTFySEei8Ja-whe6hFw" sourceNode="_5edGTlySEei8Ja-whe6hFw" targetNode="_5edGSlySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//AbstractScene"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//AbstractScene"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hgaTVySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hgaTlySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hgaT1ySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hgaUFySEei8Ja-whe6hFw" sourceNode="_5ejM4FySEei8Ja-whe6hFw" targetNode="_5edGTlySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//Scene"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//Scene"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hgaUVySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hgaUlySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hgaU1ySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hgaVFySEei8Ja-whe6hFw" sourceNode="_5ejM4lySEei8Ja-whe6hFw" targetNode="_5edGTFySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//Content"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//Content"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hgaVVySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hgaVlySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hgaV1ySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hgaWFySEei8Ja-whe6hFw" sourceNode="_5ejM5FySEei8Ja-whe6hFw" targetNode="_5edGTFySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//ContentSet"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//ContentSet"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_ZhoUMJliEeijptRUADwljg" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_ZhoUMZliEeijptRUADwljg" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_ZhoUMpliEeijptRUADwljg" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hgaXFySEei8Ja-whe6hFw" sourceNode="_5ejM5lySEei8Ja-whe6hFw" targetNode="_5edGSlySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//ContentState"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//ContentState"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hgaXVySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hgaXlySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hgaX1ySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hgaYFySEei8Ja-whe6hFw" sourceNode="_5ejM6FySEei8Ja-whe6hFw" targetNode="_5edGSlySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//AbstractProperty"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//AbstractProperty"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hgaYVySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hgaYlySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hgaY1ySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hgaZFySEei8Ja-whe6hFw" sourceNode="_5ejM6lySEei8Ja-whe6hFw" targetNode="_5ejM6FySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//IntegerProperty"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//IntegerProperty"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hgaZVySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hgaZlySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hgaZ1ySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hgaaFySEei8Ja-whe6hFw" sourceNode="_5ejM7FySEei8Ja-whe6hFw" targetNode="_5edGRlySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//AbstractConstraint"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//AbstractConstraint"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hgaaVySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hgaalySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hgaa1ySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hgabFySEei8Ja-whe6hFw" sourceNode="_5ejM7lySEei8Ja-whe6hFw" targetNode="_5ejM7FySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//Constraint"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//Constraint"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hgabVySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hgablySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hgab1ySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hmg4FySEei8Ja-whe6hFw" sourceNode="_5epThFySEei8Ja-whe6hFw" targetNode="_5epTglySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//Operator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//Operator"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hmg4VySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hmg4lySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hmg41ySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hmg5FySEei8Ja-whe6hFw" sourceNode="_5epThlySEei8Ja-whe6hFw" targetNode="_5epTglySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//ObjectReference"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//ObjectReference"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hmg5VySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hmg5lySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hmg51ySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hmg6FySEei8Ja-whe6hFw" sourceNode="_5epTiFySEei8Ja-whe6hFw" targetNode="_5epTglySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//PreviousModifier"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//PreviousModifier"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hmg6VySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hmg6lySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hmg61ySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hmg7FySEei8Ja-whe6hFw" sourceNode="_5epTilySEei8Ja-whe6hFw" targetNode="_5epTkFySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//GreaterThanOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//GreaterThanOperator"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hmg7VySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hmg7lySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hmg71ySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hmg8FySEei8Ja-whe6hFw" sourceNode="_5epTjFySEei8Ja-whe6hFw" targetNode="_5epTkFySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//MuchGreaterThanOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//MuchGreaterThanOperator"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hmg8VySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hmg8lySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hmg81ySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hmg9FySEei8Ja-whe6hFw" sourceNode="_5epTjlySEei8Ja-whe6hFw" targetNode="_5epTkFySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//LowerThanOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//LowerThanOperator"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hmg9VySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hmg9lySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hmg91ySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hmg-FySEei8Ja-whe6hFw" sourceNode="_5epTkFySEei8Ja-whe6hFw" targetNode="_5epThFySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//ComparisonOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//ComparisonOperator"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hmg-VySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hmg-lySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hmg-1ySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hmg_FySEei8Ja-whe6hFw" sourceNode="_5epTklySEei8Ja-whe6hFw" targetNode="_5epTkFySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//EqualToOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//EqualToOperator"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hmg_VySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hmg_lySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hmg_1ySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hmhAFySEei8Ja-whe6hFw" sourceNode="_5epTlFySEei8Ja-whe6hFw" targetNode="_5epTkFySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//ComparisonAnd"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//ComparisonAnd"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hmhAVySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hmhAlySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hmhA1ySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hmhBFySEei8Ja-whe6hFw" sourceNode="_5epTllySEei8Ja-whe6hFw" targetNode="_5epThFySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//LogicalOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//LogicalOperator"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hmhBVySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hmhBlySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hmhB1ySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hmhCFySEei8Ja-whe6hFw" sourceNode="_5evaIFySEei8Ja-whe6hFw" targetNode="_5epTllySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//AndOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//AndOperator"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hmhCVySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hmhClySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hmhC1ySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hmhDFySEei8Ja-whe6hFw" sourceNode="_5evaIlySEei8Ja-whe6hFw" targetNode="_5epTllySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//OrOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//OrOperator"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hmhDVySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hmhDlySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hmhD1ySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hmhEFySEei8Ja-whe6hFw" sourceNode="_5evaJFySEei8Ja-whe6hFw" targetNode="_5epTllySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//NotOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//NotOperator"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hmhEVySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hmhElySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hmhE1ySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hmhGFySEei8Ja-whe6hFw" sourceNode="_5evaKFySEei8Ja-whe6hFw" targetNode="_5epTllySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//IsEqualToOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//IsEqualToOperator"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hmhGVySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hmhGlySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hmhG1ySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hmhHFySEei8Ja-whe6hFw" sourceNode="_5evaKlySEei8Ja-whe6hFw" targetNode="_5epTllySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//IsGreaterThanOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//IsGreaterThanOperator"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hmhHVySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hmhHlySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hmhH1ySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hmhIFySEei8Ja-whe6hFw" sourceNode="_5evaLFySEei8Ja-whe6hFw" targetNode="_5epTllySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//IsLowerThanOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//IsLowerThanOperator"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hsngFySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hsngVySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hsnglySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hsng1ySEei8Ja-whe6hFw" sourceNode="_5evaLlySEei8Ja-whe6hFw" targetNode="_5epTllySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//IsGreaterThanEqualOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//IsGreaterThanEqualOperator"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hsnhFySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hsnhVySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hsnhlySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hsnh1ySEei8Ja-whe6hFw" sourceNode="_5evaMFySEei8Ja-whe6hFw" targetNode="_5epTllySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//IsLowerThanEqualOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//IsLowerThanEqualOperator"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hsniFySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hsniVySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hsnilySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hsni1ySEei8Ja-whe6hFw" sourceNode="_5evaMlySEei8Ja-whe6hFw" targetNode="_5epThFySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//ArithmeticOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//ArithmeticOperator"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hsnjFySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hsnjVySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hsnjlySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hsnj1ySEei8Ja-whe6hFw" sourceNode="_5evaNFySEei8Ja-whe6hFw" targetNode="_5evaMlySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//PlusOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//PlusOperator"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hsnkFySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hsnkVySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hsnklySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hsnk1ySEei8Ja-whe6hFw" sourceNode="_5e1gwFySEei8Ja-whe6hFw" targetNode="_5epTllySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//ImpliesOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//ImpliesOperator"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hsnlFySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hsnlVySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hsnllySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hsnl1ySEei8Ja-whe6hFw" sourceNode="_5e1gwlySEei8Ja-whe6hFw" targetNode="_5epThFySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//ContentOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//ContentOperator"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hsnmFySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hsnmVySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hsnmlySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hsnm1ySEei8Ja-whe6hFw" sourceNode="_5e1gxFySEei8Ja-whe6hFw" targetNode="_5e1gwlySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//IsActive"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//IsActive"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hsnnFySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hsnnVySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hsnnlySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hsnn1ySEei8Ja-whe6hFw" sourceNode="_5e1gxlySEei8Ja-whe6hFw" targetNode="_5e1gwlySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//GetAllocatables"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//GetAllocatables"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hsnoFySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hsnoVySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hsnolySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hsns1ySEei8Ja-whe6hFw" sourceNode="_5e1g0FySEei8Ja-whe6hFw" targetNode="_5epThFySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//ObjectCompare"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//ObjectCompare"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hsntFySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hsntVySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hsntlySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hsnt1ySEei8Ja-whe6hFw" sourceNode="_5e1g0lySEei8Ja-whe6hFw" targetNode="_5epThFySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//ThatOfOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//ThatOfOperator"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hsnuFySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hsnuVySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hsnulySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hsnu1ySEei8Ja-whe6hFw" sourceNode="_5e7nYFySEei8Ja-whe6hFw" targetNode="_5epTglySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//ValueExpression"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//ValueExpression"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hsnvFySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hsnvVySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hsnvlySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hsnv1ySEei8Ja-whe6hFw" sourceNode="_5e7nYlySEei8Ja-whe6hFw" targetNode="_5e7nYFySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//MaxValue"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//MaxValue"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hsnwFySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hsnwVySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hsnwlySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hsnw1ySEei8Ja-whe6hFw" sourceNode="_5e7nZFySEei8Ja-whe6hFw" targetNode="_5e7nYFySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//MinValue"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//MinValue"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hsnxFySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hsnxVySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hsnxlySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hsnx1ySEei8Ja-whe6hFw" sourceNode="_5e7nZlySEei8Ja-whe6hFw" targetNode="_5e7nYFySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//NoneValue"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//NoneValue"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hsnyFySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hsnyVySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hsnylySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hsny1ySEei8Ja-whe6hFw" sourceNode="_5e7naFySEei8Ja-whe6hFw" targetNode="_5e7nYFySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//StandardValue"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//StandardValue"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hsnzFySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hsnzVySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hsnzlySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hsnz1ySEei8Ja-whe6hFw" sourceNode="_5e7nalySEei8Ja-whe6hFw" targetNode="_5e7nYFySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//IntegerValue"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//IntegerValue"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hsn0FySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hsn0VySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hsn0lySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hsn01ySEei8Ja-whe6hFw" sourceNode="_5e7nbFySEei8Ja-whe6hFw" targetNode="_5epTglySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//SetExpression"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//SetExpression"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hsn1FySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hsn1VySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hsn1lySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hsn11ySEei8Ja-whe6hFw" sourceNode="_5e7nblySEei8Ja-whe6hFw" targetNode="_5epThFySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//SetOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//SetOperator"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hyuIFySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hyuIVySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hyuIlySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hyuI1ySEei8Ja-whe6hFw" sourceNode="_5e7ncFySEei8Ja-whe6hFw" targetNode="_5fBuBFySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//ExistsOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//ExistsOperator"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hyuJFySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hyuJVySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hyuJlySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hyuJ1ySEei8Ja-whe6hFw" sourceNode="_5e7nclySEei8Ja-whe6hFw" targetNode="_5fBuBFySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//ForAllOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//ForAllOperator"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hyuKFySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hyuKVySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hyuKlySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hyuK1ySEei8Ja-whe6hFw" sourceNode="_5e7ndFySEei8Ja-whe6hFw" targetNode="_5epThFySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//SetOfOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//SetOfOperator"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hyuLFySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hyuLVySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hyuLlySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hyuL1ySEei8Ja-whe6hFw" sourceNode="_5fBuAFySEei8Ja-whe6hFw" targetNode="_5epTglySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//LambdaExpression"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//LambdaExpression"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hyuMFySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hyuMVySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hyuMlySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hyuM1ySEei8Ja-whe6hFw" sourceNode="_5fBuAlySEei8Ja-whe6hFw" targetNode="_5edGSlySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//Variable"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//Variable"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hyuNFySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hyuNVySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hyuNlySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hyuN1ySEei8Ja-whe6hFw" sourceNode="_5fBuBFySEei8Ja-whe6hFw" targetNode="_5e7nblySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//LambdaContext"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//LambdaContext"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hyuOFySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hyuOVySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hyuOlySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hyuO1ySEei8Ja-whe6hFw" sourceNode="_5fBuBlySEei8Ja-whe6hFw" targetNode="_5epTglySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//IfStatement"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//IfStatement"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hyuPFySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hyuPVySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hyuPlySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hyuP1ySEei8Ja-whe6hFw" sourceNode="_5fBuCFySEei8Ja-whe6hFw" targetNode="_5epThFySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//SceneOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//SceneOperator"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hyuQFySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hyuQVySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hyuQlySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hyuQ1ySEei8Ja-whe6hFw" sourceNode="_5fBuClySEei8Ja-whe6hFw" targetNode="_5fBuCFySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//IsOn"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//IsOn"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hyuRFySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hyuRVySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hyuRlySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hyuR1ySEei8Ja-whe6hFw" sourceNode="_5fBuDFySEei8Ja-whe6hFw" targetNode="_5epThFySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//AllocatableOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//AllocatableOperator"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hyuSFySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hyuSVySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hyuSlySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hyuS1ySEei8Ja-whe6hFw" sourceNode="_5fBuDlySEei8Ja-whe6hFw" targetNode="_5fBuDFySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//ContentValue"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//ContentValue"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hyuTFySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hyuTVySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hyuTlySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hyuT1ySEei8Ja-whe6hFw" sourceNode="_5fBuEFySEei8Ja-whe6hFw" targetNode="_5fBuDFySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//GetContentsList"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//GetContentsList"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hyuUFySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hyuUVySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hyuUlySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5hyuU1ySEei8Ja-whe6hFw" sourceNode="_5fBuElySEei8Ja-whe6hFw" targetNode="_5epThFySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//PropertyOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//PropertyOperator"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5hyuVFySEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5hyuVVySEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_5hyuVlySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5h4051ySEei8Ja-whe6hFw" sourceNode="_5fBuAFySEei8Ja-whe6hFw" targetNode="_5fBuBFySEei8Ja-whe6hFw" beginLabel="[0..1] lambda" endLabel="[0..1] context">
+ <target xmi:type="ecore:EReference" href="rbacore.ecore#//LambdaExpression/context"/>
+ <semanticElements xmi:type="ecore:EReference" href="rbacore.ecore#//LambdaExpression/context"/>
+ <semanticElements xmi:type="ecore:EReference" href="rbacore.ecore#//LambdaContext/lambda"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_5h4061ySEei8Ja-whe6hFw" description="_5h406FySEei8Ja-whe6hFw" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_5h407FySEei8Ja-whe6hFw" showIcon="false"/>
+ <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_5h407VySEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_5h408lySEei8Ja-whe6hFw" sourceNode="_5ejM4lySEei8Ja-whe6hFw" targetNode="_5ejM5lySEei8Ja-whe6hFw" beginLabel="[0..1] owner" endLabel="[0..*] states">
+ <target xmi:type="ecore:EReference" href="rbacore.ecore#//Content/states"/>
+ <semanticElements xmi:type="ecore:EReference" href="rbacore.ecore#//ContentState/owner"/>
+ <semanticElements xmi:type="ecore:EReference" href="rbacore.ecore#//Content/states"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_CJTs8IDREeutB9ElOMNRZA" description="_ZGFHYIsOEeiuX8plUFkEQQ" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_CJTs8YDREeutB9ElOMNRZA" showIcon="false"/>
+ <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_CJTs8oDREeutB9ElOMNRZA" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_ZE-UIIsOEeiuX8plUFkEQQ" name="[0..1] visibility" sourceNode="_5edGQlySEei8Ja-whe6hFw" targetNode="_5epTglySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EReference" href="rbacore.ecore#//Allocatable/visibility"/>
+ <semanticElements xmi:type="ecore:EReference" href="rbacore.ecore#//Allocatable/visibility"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_CIo-kIDREeutB9ElOMNRZA" description="_5hB5IFySEei8Ja-whe6hFw" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_CIo-kYDREeutB9ElOMNRZA" showIcon="false"/>
+ <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_CIo-koDREeutB9ElOMNRZA" labelSize="6" showIcon="false" labelColor="39,76,114"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_ZGEgUIsOEeiuX8plUFkEQQ" sourceNode="_5ejM4FySEei8Ja-whe6hFw" targetNode="_5ejM6FySEei8Ja-whe6hFw" beginLabel="[0..1] owner" endLabel="[0..*] properties">
+ <target xmi:type="ecore:EReference" href="rbacore.ecore#//Scene/properties"/>
+ <semanticElements xmi:type="ecore:EReference" href="rbacore.ecore#//AbstractProperty/owner"/>
+ <semanticElements xmi:type="ecore:EReference" href="rbacore.ecore#//Scene/properties"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_ZGFHY4sOEeiuX8plUFkEQQ" description="_ZGFHYIsOEeiuX8plUFkEQQ" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_ZGFHZIsOEeiuX8plUFkEQQ" showIcon="false"/>
+ <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_ZGFHZYsOEeiuX8plUFkEQQ" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_sK3gMJliEeijptRUADwljg" name="AbstractAllocatable" tooltipText="" outgoingEdges="_sLd9JJliEeijptRUADwljg _CJWJMIDREeutB9ElOMNRZA" incomingEdges="_sLd9IJliEeijptRUADwljg _wrYeAJliEeijptRUADwljg _3tWr8JliEeijptRUADwljg" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//AbstractAllocatable"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//AbstractAllocatable"/>
+ <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+ <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+ <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_sK4HQJliEeijptRUADwljg" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_sLPToJliEeijptRUADwljg" name="getContentsList() : Content" tooltipText="getContentsList() : Content">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//AbstractAllocatable/getContentsList"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//AbstractAllocatable/getContentsList"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_sLPToZliEeijptRUADwljg" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_sLPTopliEeijptRUADwljg" name="collectLeafAllocatable() : Allocatable" tooltipText="collectLeafAllocatable() : Allocatable">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//AbstractAllocatable/collectLeafAllocatable"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//AbstractAllocatable/collectLeafAllocatable"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_sLPTo5liEeijptRUADwljg" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_sLd9IJliEeijptRUADwljg" sourceNode="_5edGQlySEei8Ja-whe6hFw" targetNode="_sK3gMJliEeijptRUADwljg">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//Allocatable"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//Allocatable"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_sLd9IZliEeijptRUADwljg" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_sLd9IpliEeijptRUADwljg" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_sLd9I5liEeijptRUADwljg" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_sLd9JJliEeijptRUADwljg" sourceNode="_sK3gMJliEeijptRUADwljg" targetNode="_5edGSlySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//AbstractAllocatable"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//AbstractAllocatable"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_sLekMJliEeijptRUADwljg" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_sLekMZliEeijptRUADwljg" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_sLekMpliEeijptRUADwljg" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_wrYeAJliEeijptRUADwljg" sourceNode="_5edGTFySEei8Ja-whe6hFw" targetNode="_sK3gMJliEeijptRUADwljg" beginLabel="[0..*] contents" endLabel="[0..*] allocatable">
+ <target xmi:type="ecore:EReference" href="rbacore.ecore#//AbstractContent/allocatable"/>
+ <semanticElements xmi:type="ecore:EReference" href="rbacore.ecore#//AbstractContent/allocatable"/>
+ <semanticElements xmi:type="ecore:EReference" href="rbacore.ecore#//AbstractAllocatable/contents"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_wrYeAZliEeijptRUADwljg" sourceArrow="InputArrow" routingStyle="manhattan" strokeColor="0,0,0">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_wrYeApliEeijptRUADwljg" showIcon="false"/>
+ <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_wrYeA5liEeijptRUADwljg" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_3s1ukJliEeijptRUADwljg" name="AllocatableSet" tooltipText="" outgoingEdges="_3tWr8JliEeijptRUADwljg" incomingEdges="_CJWJMIDREeutB9ElOMNRZA" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//AllocatableSet"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//AllocatableSet"/>
+ <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+ <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+ <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_3s1ukZliEeijptRUADwljg" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_3tJ3oJliEeijptRUADwljg" name="collectLeafAllocatable() : Allocatable" tooltipText="collectLeafAllocatable() : Allocatable">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//AllocatableSet/collectLeafAllocatable"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//AllocatableSet/collectLeafAllocatable"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_3tJ3oZliEeijptRUADwljg" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_3tWr8JliEeijptRUADwljg" sourceNode="_3s1ukJliEeijptRUADwljg" targetNode="_sK3gMJliEeijptRUADwljg">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//AllocatableSet"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//AllocatableSet"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_3tWr8ZliEeijptRUADwljg" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_3tWr8pliEeijptRUADwljg" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_3tWr85liEeijptRUADwljg" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="__A05kJliEeijptRUADwljg" name="AllocatedContent" tooltipText="" outgoingEdges="__BckoJliEeijptRUADwljg" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//AllocatedContent"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//AllocatedContent"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="__A05kZliEeijptRUADwljg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="__BNUEJliEeijptRUADwljg" name="getSymbol() : EString" tooltipText="getSymbol() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//AllocatedContent/getSymbol"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//AllocatedContent/getSymbol"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="__BNUEZliEeijptRUADwljg" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="__BNUEpliEeijptRUADwljg" name="getUnderlyingType() : ExpressionType" tooltipText="getUnderlyingType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//AllocatedContent/getUnderlyingType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//AllocatedContent/getUnderlyingType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="__BNUE5liEeijptRUADwljg" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="__A1gopliEeijptRUADwljg" name="GetProperty" tooltipText="" outgoingEdges="__BckqJliEeijptRUADwljg" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//GetProperty"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//GetProperty"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="__A1go5liEeijptRUADwljg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="__BNUFJliEeijptRUADwljg" name="getSymbol() : EString" tooltipText="getSymbol() : EString">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//GetProperty/getSymbol"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//GetProperty/getSymbol"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="__BN7IJliEeijptRUADwljg" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="__BN7IZliEeijptRUADwljg" name="getUnderlyingType() : ExpressionType" tooltipText="getUnderlyingType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbacore.ecore#//GetProperty/getUnderlyingType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbacore.ecore#//GetProperty/getUnderlyingType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="__BN7IpliEeijptRUADwljg" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="__BckoJliEeijptRUADwljg" sourceNode="__A05kJliEeijptRUADwljg" targetNode="_5fBuDFySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//AllocatedContent"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//AllocatedContent"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="__BckoZliEeijptRUADwljg" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="__BckopliEeijptRUADwljg" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="__Bcko5liEeijptRUADwljg" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="__BckqJliEeijptRUADwljg" sourceNode="__A1gopliEeijptRUADwljg" targetNode="_5fBuElySEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbacore.ecore#//GetProperty"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbacore.ecore#//GetProperty"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="__BckqZliEeijptRUADwljg" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="__BckqpliEeijptRUADwljg" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="__Bckq5liEeijptRUADwljg" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_CJU7EIDREeutB9ElOMNRZA" sourceNode="_5edGTFySEei8Ja-whe6hFw" targetNode="_5ejM5FySEei8Ja-whe6hFw" beginLabel="[0..*] target" endLabel="[0..*] contentGroup">
+ <target xmi:type="ecore:EReference" href="rbacore.ecore#//AbstractContent/contentGroup"/>
+ <semanticElements xmi:type="ecore:EReference" href="rbacore.ecore#//AbstractContent/contentGroup"/>
+ <semanticElements xmi:type="ecore:EReference" href="rbacore.ecore#//ContentSet/target"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_CJViIIDREeutB9ElOMNRZA" sourceArrow="InputArrow" routingStyle="manhattan" strokeColor="0,0,0">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_CJViIYDREeutB9ElOMNRZA" showIcon="false"/>
+ <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_CJViIoDREeutB9ElOMNRZA" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_CJWJMIDREeutB9ElOMNRZA" sourceNode="_sK3gMJliEeijptRUADwljg" targetNode="_3s1ukJliEeijptRUADwljg" beginLabel="[0..*] target" endLabel="[0..*] allocatableGroup">
+ <target xmi:type="ecore:EReference" href="rbacore.ecore#//AbstractAllocatable/allocatableGroup"/>
+ <semanticElements xmi:type="ecore:EReference" href="rbacore.ecore#//AbstractAllocatable/allocatableGroup"/>
+ <semanticElements xmi:type="ecore:EReference" href="rbacore.ecore#//AllocatableSet/target"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_CJWwQIDREeutB9ElOMNRZA" sourceArrow="InputArrow" routingStyle="manhattan" strokeColor="0,0,0">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_CJWwQYDREeutB9ElOMNRZA" showIcon="false"/>
+ <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_CJWwQoDREeutB9ElOMNRZA" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+ </ownedDiagramElements>
+ <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
+ <filterVariableHistory xmi:type="diagram:FilterVariableHistory" xmi:id="_7gf4FFqFEei8Ja-whe6hFw"/>
+ <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/>
+ <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Package']"/>
+ <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Validation']"/>
+ <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Archetype']/@ownedRepresentationExtensions[name='Entities%20With%20Archetypes']/@layers[name='Archetypes']"/>
+ <target xmi:type="ecore:EPackage" href="rbacore.ecore#/"/>
+ </diagram:DSemanticDiagram>
+</xmi:XMI>
diff --git a/rba.model.core/model/rbacore.ecore b/rba.model.core/model/rbacore.ecore
new file mode 100644
index 0000000..8990369
--- /dev/null
+++ b/rba.model.core/model/rbacore.ecore
@@ -0,0 +1,1669 @@
+<?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="core" nsURI="http://www.denso.com/ict/rba/core" nsPrefix="RbaCore">
+ <eAnnotations source="http://www.eclipse.org/OCL/Import">
+ <details key="ecore" value="http://www.eclipse.org/emf/2002/Ecore"/>
+ </eAnnotations>
+ <eClassifiers xsi:type="ecore:EClass" name="ModelElement" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="NamedElement" abstract="true" eSuperTypes="#//ModelElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AbstractAllocatable" abstract="true"
+ eSuperTypes="#//RuleObject">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getContentsList" ordered="false" upperBound="-1" eType="#//Content">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="java.util.Set&lt;Content> contents = new java.util.LinkedHashSet&lt;Content>();&#xD;&#xA;getContents().forEach(content -> contents.addAll(content.collectLeafContents()));&#xD;&#xA;getAllocatableGroup().forEach(allocatableSet -> contents.addAll(allocatableSet.getContentsList()));&#xD;&#xA;return new org.eclipse.emf.common.util.BasicEList&lt;Content>(contents);"/>
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="collectLeafAllocatable" ordered="false" upperBound="-1" eType="#//Allocatable">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="contents" upperBound="-1"
+ eType="#//AbstractContent" eOpposite="#//AbstractContent/allocatable">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="allocatableGroup" upperBound="-1"
+ eType="#//AllocatableSet" eOpposite="#//AllocatableSet/target">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Allocatable" abstract="true" eSuperTypes="#//AbstractAllocatable">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="collectLeafAllocatable" ordered="false" upperBound="-1" eType="#//Allocatable">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="java.util.Set&lt;Allocatable> allocatables = new java.util.HashSet&lt;Allocatable>();&#xD;&#xA;allocatables.add(this);&#xD;&#xA;return new org.eclipse.emf.common.util.BasicEList&lt;Allocatable>(allocatables);"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="arbitrationPolicy" eType="#//ArbitrationPolicy">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="visibility" eType="#//Expression"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AllocatableSet" abstract="true" eSuperTypes="#//AbstractAllocatable">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="collectLeafAllocatable" ordered="false" upperBound="-1" eType="#//Allocatable">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="java.util.Set&lt;Allocatable> allocatables = new java.util.LinkedHashSet&lt;Allocatable>();&#xD;&#xA;getTarget().forEach(allocatable -> allocatables.addAll(allocatable.collectLeafAllocatable()));&#xD;&#xA;return new org.eclipse.emf.common.util.BasicEList&lt;Allocatable>(allocatables);"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="target" upperBound="-1"
+ eType="#//AbstractAllocatable" eOpposite="#//AbstractAllocatable/allocatableGroup">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Project" eSuperTypes="#//Package">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="if (this.eResource() != null) {&#xD;&#xA; String segments[] = this.eResource().getURI().toString().split(&quot;/&quot;);&#xD;&#xA; return segments[2];&#xD;&#xA;} else {&#xD;&#xA; return this.name;&#xD;&#xA;} "/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="version" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="dummyName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PackagableElement" abstract="true" eSuperTypes="#//NamedElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Package" eSuperTypes="#//PackagableElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="packagableelement" upperBound="-1"
+ eType="#//PackagableElement" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Stereotype" eSuperTypes="#//PackagableElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="targetModelName" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="variables" upperBound="-1"
+ eType="#//Variable" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="bodyText" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Tag" eSuperTypes="#//NamedElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="values" unique="false"
+ upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="RuleObject" abstract="true" eSuperTypes="#//PackagableElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getExpressionType" eType="#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="tags" upperBound="-1" eType="#//Tag"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AbstractContent" abstract="true" eSuperTypes="#//RuleObject">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getAllocatableList" ordered="false" upperBound="-1" eType="#//Allocatable">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="java.util.Set&lt;Allocatable> allocatables = new java.util.LinkedHashSet&lt;Allocatable>();&#xD;&#xA;getAllocatable().forEach(allocatable -> allocatables.addAll(allocatable.collectLeafAllocatable()));&#xD;&#xA;getContentGroup().forEach(contentSet -> allocatables.addAll(contentSet.getAllocatableList()));&#xD;&#xA;return new org.eclipse.emf.common.util.BasicEList&lt;Allocatable>(allocatables);"/>
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="collectLeafContents" ordered="false" upperBound="-1" eType="#//Content">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="contentGroup" upperBound="-1"
+ eType="#//ContentSet" eOpposite="#//ContentSet/target">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="allocatable" upperBound="-1"
+ eType="#//AbstractAllocatable" eOpposite="#//AbstractAllocatable/contents"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AbstractScene" abstract="true" eSuperTypes="#//RuleObject">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Scene" eSuperTypes="#//AbstractScene">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getExpressionType" eType="#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.SCENE;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="global" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="properties" upperBound="-1"
+ eType="#//AbstractProperty" containment="true" eOpposite="#//AbstractProperty/owner">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Content" abstract="true" eSuperTypes="#//AbstractContent">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="collectLeafContents" ordered="false" upperBound="-1" eType="#//Content">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="java.util.Set&lt;Content> contents = new java.util.HashSet&lt;Content>();&#xD;&#xA;contents.add(this);&#xD;&#xA;return new org.eclipse.emf.common.util.BasicEList&lt;Content>(contents);"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="loserType" eType="#//LoserType"
+ defaultValueLiteral="NEVER_GIVEUP"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="states" upperBound="-1"
+ eType="#//ContentState" containment="true" eOpposite="#//ContentState/owner">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ContentSet" abstract="true" eSuperTypes="#//AbstractContent">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="collectLeafContents" ordered="false" upperBound="-1" eType="#//Content">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="java.util.Set&lt;Content> contents = new java.util.LinkedHashSet&lt;Content>();&#xD;&#xA;getTarget().forEach(content -> contents.addAll(content.collectLeafContents()));&#xD;&#xA;return new org.eclipse.emf.common.util.BasicEList&lt;Content>(contents);"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="target" upperBound="-1"
+ eType="#//AbstractContent" eOpposite="#//AbstractContent/contentGroup"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ContentState" abstract="true" eSuperTypes="#//RuleObject">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="value" lowerBound="1" eType="#//Expression"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="owner" eType="#//Content"
+ eOpposite="#//Content/states">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AbstractProperty" abstract="true" eSuperTypes="#//RuleObject">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getExpressionType" eType="#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.PROPERTY;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="owner" eType="#//Scene"
+ eOpposite="#//Scene/properties">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="IntegerProperty" eSuperTypes="#//AbstractProperty">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="value" lowerBound="1" eType="#//Expression"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AbstractConstraint" abstract="true"
+ eSuperTypes="#//PackagableElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="expression" lowerBound="1"
+ eType="#//Expression" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Constraint" eSuperTypes="#//AbstractConstraint">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="runtime" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="true"
+ unsettable="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Expression" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getUnderlyingType" eType="#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="#//ExpressionType"
+ changeable="false" volatile="true" unsettable="true" derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="expression" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ volatile="true" unsettable="true" derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="letStatements" upperBound="-1"
+ eType="#//LetStatement" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LetStatement" eSuperTypes="#//ModelElement">
+ <eOperations name="toString" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="StringBuilder ret = new StringBuilder();&#xD;&#xA;ret.append(&quot;let &quot;); //$NON-NLS-1$&#xD;&#xA;ret.append(getVariable().getName());&#xD;&#xA;ret.append(&quot;= &quot;); //$NON-NLS-1$&#xD;&#xA;ret.append(getBody().getExpressionText());&#xD;&#xA;return ret.toString();"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="variable" lowerBound="1"
+ eType="#//Variable" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="body" lowerBound="1" eType="#//Expression"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ComplexExpression" eSuperTypes="#//Expression #//SugarExpressionBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return otherExpression != null ? otherExpression.getExpressionText() : &quot;[Invalid_Expression]&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="if (otherExpression != null) {&#xD;&#xA; return otherExpression.getType();&#xD;&#xA;} else {&#xD;&#xA; return ExpressionType.VALUE;&#xD;&#xA;}"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getType" eType="#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return getUnderlyingType();"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="otherExpression" lowerBound="1"
+ eType="#//Expression" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Operator" abstract="true" eSuperTypes="#//Expression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="operand" lowerBound="1"
+ upperBound="-1" eType="#//Expression" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="IsTypeOf" eSuperTypes="#//Operator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="StringBuffer expressionText = new StringBuffer();&#xD;&#xA;EList&lt;rba.core.Expression> expressions = getOperand();&#xD;&#xA;expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;expressionText.append(getSymbol());&#xD;&#xA;expressionText.append(&quot;(&quot;);&#xD;&#xA;expressionText.append(tagName != null ? tagName : &quot;&quot;);&#xD;&#xA;expressionText.append(&quot;)&quot;);&#xD;&#xA;return expressionText.toString();"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;.isTypeOf&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.BOOLEAN;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="tagName" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ObjectReference" eSuperTypes="#//Expression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getUnderlyingType" eType="#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="RuleObject obj = getRefObject();&#xD;&#xA;if (obj != null) {&#xD;&#xA; return obj.getExpressionType();&#xD;&#xA;} else {&#xD;&#xA; return ExpressionType.VALUE;&#xD;&#xA;}"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="StringBuffer expressionText = new StringBuffer();&#xD;&#xA;RuleObject obj = getRefObject();&#xD;&#xA;if (obj instanceof &lt;%rba.core.ContentState%>) {&#xD;&#xA; ContentState state = (ContentState) obj;&#xD;&#xA; expressionText.append(state.getOwner().getName() + &quot;.&quot; + state.getName());&#xD;&#xA;} else if (obj instanceof &lt;%rba.core.AbstractProperty%>) {&#xD;&#xA; AbstractProperty property = (AbstractProperty) obj;&#xD;&#xA; expressionText.append(property.getOwner().getName() + &quot;.&quot; + property.getName());&#xD;&#xA;} else {&#xD;&#xA; expressionText.append(obj != null ? obj.getName() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;}&#xD;&#xA;return expressionText.toString();"/>
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="refObject" eType="#//RuleObject">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PreviousModifier" eSuperTypes="#//Expression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;(pre)&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="ObjectReference objReference = getObjReference();&#xD;&#xA;if (objReference != null) {&#xD;&#xA; return objReference.getUnderlyingType();&#xD;&#xA;} else {&#xD;&#xA; return ExpressionType.VALUE;&#xD;&#xA;}"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="StringBuffer expressionText = new StringBuffer();&#xD;&#xA;if (getObjReference() != null &amp;&amp; getObjReference().getRefObject() != null) {&#xD;&#xA; ObjectReference reference = getObjReference();&#xD;&#xA; expressionText.append(getSymbol());&#xD;&#xA; expressionText.append(reference.getExpressionText());&#xD;&#xA;} else {&#xD;&#xA; expressionText.append(&quot;[Invalid_Expression]&quot;);&#xD;&#xA;}&#xD;&#xA;return expressionText.toString();"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="objReference" eType="#//ObjectReference"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GreaterThanOperator" eSuperTypes="#//ComparisonOperator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;>&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MuchGreaterThanOperator" eSuperTypes="#//ComparisonOperator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;>>&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LowerThanOperator" eSuperTypes="#//ComparisonOperator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;&lt;&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ComparisonOperator" abstract="true"
+ eSuperTypes="#//Operator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getUnderlyingType" eType="#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.VALUE;"/>
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="StringBuffer expressionText = new StringBuffer();&#xD;&#xA;EList&lt;rba.core.Expression> expressions = getOperand();&#xD;&#xA;expressionText.append(getSymbol());&#xD;&#xA;expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;return expressionText.toString();"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EqualToOperator" eSuperTypes="#//ComparisonOperator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;=&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ComparisonAnd" eSuperTypes="#//ComparisonOperator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;and&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="StringBuffer expressionText = new StringBuffer();&#xD;&#xA;EList&lt;rba.core.Expression> expressions = getOperand();&#xD;&#xA;expressionText.append(&quot;(&quot;);&#xD;&#xA;for (int i = 0; i &lt; expressions.size(); i++) {&#xD;&#xA; rba.core.Expression expression = expressions.get(i);&#xD;&#xA; expressionText.append(expression.getExpressionText());&#xD;&#xA; if (i == expressions.size() - 1) {&#xD;&#xA; expressionText.append(&quot;)&quot;);&#xD;&#xA; } else {&#xD;&#xA; expressionText.append(&quot; &quot;);&#xD;&#xA; expressionText.append(getSymbol());&#xD;&#xA; expressionText.append(&quot; &quot;);&#xD;&#xA; }&#xD;&#xA;}&#xD;&#xA;return expressionText.toString();"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LogicalOperator" abstract="true" eSuperTypes="#//Operator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getUnderlyingType" eType="#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.BOOLEAN;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="StringBuffer expressionText = new StringBuffer();&#xD;&#xA;EList&lt;rba.core.Expression> expressions = getOperand();&#xD;&#xA;expressionText.append(&quot;(&quot;);&#xD;&#xA;for (int i = 0; i &lt; expressions.size(); i++) {&#xD;&#xA; rba.core.Expression expression = expressions.get(i);&#xD;&#xA; expressionText.append(expression.getExpressionText());&#xD;&#xA; if (i == expressions.size() - 1) {&#xD;&#xA; expressionText.append(&quot;)&quot;);&#xD;&#xA; } else {&#xD;&#xA; expressionText.append(&quot; &quot;);&#xD;&#xA; expressionText.append(getSymbol());&#xD;&#xA; expressionText.append(&quot; &quot;);&#xD;&#xA; }&#xD;&#xA;}&#xD;&#xA;return expressionText.toString();"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AndOperator" eSuperTypes="#//LogicalOperator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;AND&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="OrOperator" eSuperTypes="#//LogicalOperator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;OR&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="NotOperator" eSuperTypes="#//LogicalOperator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;!&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="StringBuilder expressionText = new StringBuilder();&#xD;&#xA;EList&lt;rba.core.Expression> expressions = getOperand();&#xD;&#xA;expressionText.append(getSymbol());&#xD;&#xA;expressionText.append(&quot;(&quot;);&#xD;&#xA;expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;expressionText.append(&quot;)&quot;);&#xD;&#xA;return expressionText.toString();"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="IsEqualToOperator" eSuperTypes="#//LogicalOperator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;=&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="IsGreaterThanOperator" eSuperTypes="#//LogicalOperator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;>&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="IsLowerThanOperator" eSuperTypes="#//LogicalOperator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;&lt;&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="IsGreaterThanEqualOperator" eSuperTypes="#//LogicalOperator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;>=&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="IsLowerThanEqualOperator" eSuperTypes="#//LogicalOperator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;&lt;=&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ArithmeticOperator" abstract="true"
+ eSuperTypes="#//Operator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getUnderlyingType" eType="#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.VALUE;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="StringBuffer expressionText = new StringBuffer();&#xD;&#xA;EList&lt;rba.core.Expression> expressions = getOperand();&#xD;&#xA;expressionText.append(&quot;(&quot;);&#xD;&#xA;for (int i = 0; i &lt; expressions.size(); i++) {&#xD;&#xA; rba.core.Expression expression = expressions.get(i);&#xD;&#xA; expressionText.append(expression.getExpressionText());&#xD;&#xA; if (i == expressions.size() - 1) {&#xD;&#xA; expressionText.append(&quot;)&quot;);&#xD;&#xA; } else {&#xD;&#xA; expressionText.append(&quot; &quot;);&#xD;&#xA; expressionText.append(getSymbol());&#xD;&#xA; expressionText.append(&quot; &quot;);&#xD;&#xA; }&#xD;&#xA;}&#xD;&#xA;return expressionText.toString();"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PlusOperator" eSuperTypes="#//ArithmeticOperator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;+&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ImpliesOperator" eSuperTypes="#//LogicalOperator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;->&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ContentOperator" abstract="true" eSuperTypes="#//Operator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="StringBuffer expressionText = new StringBuffer();&#xD;&#xA;EList&lt;rba.core.Expression> expressions = getOperand();&#xD;&#xA;expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;expressionText.append(getSymbol());&#xD;&#xA;return expressionText.toString();"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="IsActive" eSuperTypes="#//ContentOperator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;.isActive()&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.BOOLEAN;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GetAllocatables" eSuperTypes="#//ContentOperator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;.allocatables()&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="EList&lt;rba.core.Expression> expressions = getOperand();&#xD;&#xA;if (!expressions.isEmpty() &amp;&amp; expressions.get(0) != null) {&#xD;&#xA; rba.core.Expression first = expressions.get(0);&#xD;&#xA; if (first.getType() == ExpressionType.CONTENT) {&#xD;&#xA; return ExpressionType.SET_OF_AREA;&#xD;&#xA; } else if (first.getType() == ExpressionType.SOUND) {&#xD;&#xA; return ExpressionType.SET_OF_ZONE;&#xD;&#xA; }&#xD;&#xA;}&#xD;&#xA;return ExpressionType.VALUE;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="HasBeenDisplayed" eSuperTypes="#//ContentOperator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;.hasBeenDisplayed()&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.BOOLEAN;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ActiveState" eSuperTypes="#//ContentOperator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;.activeState()&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.CONTENT_STATE;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ObjectCompare" eSuperTypes="#//Operator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;==&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.BOOLEAN;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="StringBuilder expressionText = new StringBuilder();&#xD;&#xA;EList&lt;rba.core.Expression> expressions = getOperand();&#xD;&#xA;expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;expressionText.append(&quot; &quot;);&#xD;&#xA;expressionText.append(getSymbol());&#xD;&#xA;expressionText.append(&quot; &quot;);&#xD;&#xA;expressionText.append(expressions.size() > 1 ? expressions.get(1).getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;return expressionText.toString();"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ThatOfOperator" eSuperTypes="#//Operator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="StringBuffer expressionText = new StringBuffer();&#xD;&#xA;EList&lt;rba.core.Expression> expressions = getOperand();&#xD;&#xA;expressionText.append(getSymbol());&#xD;&#xA;expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;return expressionText.toString();"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;That of &quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.VALUE;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ValueExpression" abstract="true" eSuperTypes="#//Expression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getUnderlyingType" eType="#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.VALUE;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getExpressionValue" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getType" eType="#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return getUnderlyingType();"/>
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MaxValue" eSuperTypes="#//ValueExpression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;MAX&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getExpressionValue" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return 9999;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MinValue" eSuperTypes="#//ValueExpression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;MIN&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getExpressionValue" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return 0;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="NoneValue" eSuperTypes="#//ValueExpression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;NONE&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getExpressionValue" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return -1;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="StandardValue" eSuperTypes="#//ValueExpression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;STANDARD&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getExpressionValue" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return 10;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="IntegerValue" eSuperTypes="#//ValueExpression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return String.valueOf(value);"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getExpressionValue" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return value;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EnumExpression" abstract="true" eSuperTypes="#//Expression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getUnderlyingType" eType="#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.ENUM;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getExpressionValue" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EEnumerator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getType" eType="#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return getUnderlyingType();"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LoserTypeExpression" eSuperTypes="#//EnumExpression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="if(value instanceof LoserType) {&#xD;&#xA; return value.getName();&#xD;&#xA;} else {&#xD;&#xA; return &quot;[Invalid_Expression]&quot;;&#xD;&#xA;}"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getExpressionValue" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EEnumerator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return value;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" lowerBound="1" eType="#//LoserType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ArbitrationPolicyExpression" eSuperTypes="#//EnumExpression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="if(value instanceof ArbitrationPolicy) {&#xD;&#xA; return value.getName();&#xD;&#xA;} else {&#xD;&#xA; return &quot;[Invalid_Expression]&quot;;&#xD;&#xA;}"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getExpressionValue" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EEnumerator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return value;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" lowerBound="1" eType="#//ArbitrationPolicy">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SetExpression" abstract="true" eSuperTypes="#//Expression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SetOperator" abstract="true" eSuperTypes="#//Operator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SizeOperator" eSuperTypes="#//SetOperator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="StringBuffer expressionText = new StringBuffer();&#xD;&#xA;EList&lt;rba.core.Expression> expressions = getOperand();&#xD;&#xA;expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;expressionText.append(getSymbol());&#xD;&#xA;return expressionText.toString();"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;.size()&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.VALUE;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ExistsOperator" eSuperTypes="#//LambdaContext">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="StringBuffer expressionText = new StringBuffer();&#xD;&#xA;EList&lt;rba.core.Expression> expressions = getOperand();&#xD;&#xA;rba.core.LambdaExpression lambda = getLambda();&#xD;&#xA;expressionText.append(getSymbol());&#xD;&#xA;expressionText.append(&quot; &quot;);&#xD;&#xA;expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;expressionText.append(&quot; &quot;);&#xD;&#xA;expressionText.append(lambda != null ? lambda.getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;return expressionText.toString();"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;Exists&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.BOOLEAN;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ForAllOperator" eSuperTypes="#//LambdaContext">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="StringBuffer expressionText = new StringBuffer();&#xD;&#xA;EList&lt;rba.core.Expression> expressions = getOperand();&#xD;&#xA;rba.core.LambdaExpression lambda = getLambda();&#xD;&#xA;expressionText.append(getSymbol());&#xD;&#xA;expressionText.append(&quot; &quot;);&#xD;&#xA;expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;expressionText.append(&quot; &quot;);&#xD;&#xA;expressionText.append(lambda != null ? lambda.getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;return expressionText.toString();"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;For All&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="rba.core.LambdaExpression lambda = getLambda();&#xD;&#xA;if (lambda != null &amp;&amp; lambda.getBodyText() != null) {&#xD;&#xA;return lambda.getBodyText().getUnderlyingType();&#xD;&#xA;}&#xD;&#xA;return ExpressionType.BOOLEAN;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MaxOperator" eSuperTypes="#//LambdaContext">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="StringBuffer expressionText = new StringBuffer();&#xD;&#xA;EList&lt;rba.core.Expression> expressions = getOperand();&#xD;&#xA;rba.core.LambdaExpression lambda = getLambda();&#xD;&#xA;expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;expressionText.append(getSymbol());&#xD;&#xA;expressionText.append(&quot;{ &quot;);&#xD;&#xA;expressionText.append(lambda != null ? lambda.getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;expressionText.append(&quot; }&quot;);&#xD;&#xA;return expressionText.toString();"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;.max&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return getContextType();"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MinOperator" eSuperTypes="#//LambdaContext">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="StringBuffer expressionText = new StringBuffer();&#xD;&#xA;EList&lt;rba.core.Expression> expressions = getOperand();&#xD;&#xA;rba.core.LambdaExpression lambda = getLambda();&#xD;&#xA;expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;expressionText.append(getSymbol());&#xD;&#xA;expressionText.append(&quot;{ &quot;);&#xD;&#xA;expressionText.append(lambda != null ? lambda.getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;expressionText.append(&quot; }&quot;);&#xD;&#xA;return expressionText.toString();"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;.min&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return getContextType();"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SelectOperator" eSuperTypes="#//LambdaContext">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="StringBuffer expressionText = new StringBuffer();&#xD;&#xA;EList&lt;rba.core.Expression> expressions = getOperand();&#xD;&#xA;rba.core.LambdaExpression lambda = getLambda();&#xD;&#xA;expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;expressionText.append(getSymbol());&#xD;&#xA;expressionText.append(&quot;{ &quot;);&#xD;&#xA;expressionText.append(lambda != null ? lambda.getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;expressionText.append(&quot; }&quot;);&#xD;&#xA;return expressionText.toString();"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;.select&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="if (!getOperand().isEmpty()) {&#xD;&#xA; &lt;%rba.core.Expression%> first = getOperand().get(0);&#xD;&#xA; return first.getType();&#xD;&#xA;}&#xD;&#xA;return ExpressionType.VALUE;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SetOfOperator" eSuperTypes="#//Operator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="StringBuffer expressionText = new StringBuffer();&#xD;&#xA;EList&lt;rba.core.Expression> expressions = getOperand();&#xD;&#xA;expressionText.append(&quot;{&quot;);&#xD;&#xA;for (int i = 0; i &lt; expressions.size(); i++) {&#xD;&#xA; rba.core.Expression expression = expressions.get(i);&#xD;&#xA; expressionText.append(expression.getExpressionText());&#xD;&#xA; if (i == expressions.size() - 1) {&#xD;&#xA; expressionText.append(&quot;}&quot;);&#xD;&#xA; } else {&#xD;&#xA; expressionText.append(&quot;, &quot;);&#xD;&#xA; }&#xD;&#xA;}&#xD;&#xA;return expressionText.toString();"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="EList&lt;rba.core.Expression> expressions = getOperand();&#xD;&#xA;if (!expressions.isEmpty() &amp;&amp; expressions.get(0) != null) {&#xD;&#xA; rba.core.Expression first = expressions.get(0);&#xD;&#xA; if ((first.getType() == ExpressionType.CONTENT) || (first.getType() == ExpressionType.SET_OF_CONTENT)) {&#xD;&#xA; return ExpressionType.SET_OF_CONTENT;&#xD;&#xA; } else if ((first.getType() == ExpressionType.AREA) || (first.getType() == ExpressionType.SET_OF_AREA)) {&#xD;&#xA; return ExpressionType.SET_OF_AREA;&#xD;&#xA; } else if ((first.getType() == ExpressionType.SOUND) || (first.getType() == ExpressionType.SET_OF_SOUND)) {&#xD;&#xA; return ExpressionType.SET_OF_SOUND;&#xD;&#xA; } else if ((first.getType() == ExpressionType.ZONE) || (first.getType() == ExpressionType.SET_OF_ZONE)) {&#xD;&#xA; return ExpressionType.SET_OF_ZONE;&#xD;&#xA; } else {&#xD;&#xA; return first.getType();&#xD;&#xA; }&#xD;&#xA;}&#xD;&#xA;return null;"/>
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LambdaExpression" eSuperTypes="#//Expression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="StringBuilder expressionText = new StringBuilder();&#xD;&#xA;expressionText.append(&quot;{ &quot;);&#xD;&#xA;expressionText.append(x != null ? x.getName() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;expressionText.append(&quot; | &quot;);&#xD;&#xA;getLetStatements().forEach(let -> expressionText.append(let));&#xD;&#xA;expressionText.append(bodyText != null ? bodyText.getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;expressionText.append(&quot; }&quot;);&#xD;&#xA;return expressionText.toString();"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.LAMBDA;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="context" eType="#//LambdaContext"
+ eOpposite="#//LambdaContext/lambda">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="x" lowerBound="1" eType="#//Variable"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="bodyText" lowerBound="1"
+ eType="#//Expression" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Variable" eSuperTypes="#//RuleObject">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getExpressionType" eType="#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.eclipse.emf.ecore.EObject%> container = eContainer();&#xD;&#xA;if(container instanceof &lt;%rba.core.LambdaExpression%>) {&#xD;&#xA; container = container.eContainer();&#xD;&#xA; if(container instanceof &lt;%rba.core.LambdaContext%>) {&#xD;&#xA; &lt;%java.util.List%>&lt;Expression> operands = ((LambdaContext) container).getOperand();&#xD;&#xA; if (operands.size() > 0) {&#xD;&#xA; switch (operands.get(0).getUnderlyingType()) {&#xD;&#xA; case AREA:&#xD;&#xA; case SET_OF_AREA:&#xD;&#xA; return ExpressionType.AREA;&#xD;&#xA; case CONTENT:&#xD;&#xA; case SET_OF_CONTENT:&#xD;&#xA; return ExpressionType.CONTENT;&#xD;&#xA; case SOUND:&#xD;&#xA; case SET_OF_SOUND:&#xD;&#xA; return ExpressionType.SOUND;&#xD;&#xA; case ZONE:&#xD;&#xA; case SET_OF_ZONE:&#xD;&#xA; return ExpressionType.ZONE;&#xD;&#xA; case SCENE:&#xD;&#xA; return ExpressionType.SCENE;&#xD;&#xA; case PROPERTY:&#xD;&#xA; return ExpressionType.PROPERTY;&#xD;&#xA; case BOOLEAN:&#xD;&#xA; return ExpressionType.BOOLEAN;&#xD;&#xA; case LAMBDA:&#xD;&#xA; return ExpressionType.LAMBDA;&#xD;&#xA; case VALUE:&#xD;&#xA; default:&#xD;&#xA; return ExpressionType.VALUE;&#xD;&#xA; }&#xD;&#xA; }&#xD;&#xA; }&#xD;&#xA;} else if (container instanceof &lt;%rba.core.LetStatement%>) {&#xD;&#xA; &lt;%rba.core.Expression%> body = ((LetStatement) container).getBody();&#xD;&#xA; if (body != null) {&#xD;&#xA; return body.getUnderlyingType();&#xD;&#xA; }&#xD;&#xA;}&#xD;&#xA;return ExpressionType.VALUE;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LambdaContext" abstract="true" eSuperTypes="#//SetOperator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getContextType" eType="#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="if (!getOperand().isEmpty()) {&#xD;&#xA; rba.core.Expression first = getOperand().get(0);&#xD;&#xA; if (first.getType() == ExpressionType.SET_OF_CONTENT) {&#xD;&#xA; return ExpressionType.CONTENT;&#xD;&#xA; } else if (first.getType() == ExpressionType.SET_OF_AREA) {&#xD;&#xA; return ExpressionType.AREA;&#xD;&#xA; } else if (first.getType() == ExpressionType.SET_OF_ZONE) {&#xD;&#xA; return ExpressionType.ZONE;&#xD;&#xA; } else if (first.getType() == ExpressionType.SET_OF_SOUND) {&#xD;&#xA; return ExpressionType.SOUND;&#xD;&#xA; } else {&#xD;&#xA; return first.getType();&#xD;&#xA; }&#xD;&#xA;}&#xD;&#xA;&#xD;&#xA;return ExpressionType.VALUE;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="lambda" eType="#//LambdaExpression"
+ containment="true" eOpposite="#//LambdaExpression/context">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="IfStatement" eSuperTypes="#//Expression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getUnderlyingType" eType="#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="if (thenExpression != null) {&#xD;&#xA; return thenExpression.getUnderlyingType();&#xD;&#xA;}&#xD;&#xA;return ExpressionType.VALUE;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="StringBuffer expressionText = new StringBuffer();&#xD;&#xA;expressionText.append(&quot;IF(&quot;);&#xD;&#xA;expressionText.append(condition != null ? condition.getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;expressionText.append(&quot;) THEN &quot;);&#xD;&#xA;expressionText.append(thenExpression != null ? thenExpression.getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;expressionText.append(&quot; ELSE &quot;);&#xD;&#xA;expressionText.append(elseExpression != null ? elseExpression.getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;return expressionText.toString();"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="condition" lowerBound="1"
+ eType="#//Expression" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="thenExpression" lowerBound="1"
+ eType="#//Expression" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="elseExpression" lowerBound="1"
+ eType="#//Expression" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SceneOperator" abstract="true" eSuperTypes="#//Operator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="StringBuffer expressionText = new StringBuffer();&#xD;&#xA;EList&lt;rba.core.Expression> expressions = getOperand();&#xD;&#xA;expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;expressionText.append(getSymbol());&#xD;&#xA;return expressionText.toString();"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="IsOn" eSuperTypes="#//SceneOperator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;.isOn()&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.BOOLEAN;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AllocatableOperator" abstract="true"
+ eSuperTypes="#//Operator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="StringBuffer expressionText = new StringBuffer();&#xD;&#xA;EList&lt;rba.core.Expression> expressions = getOperand();&#xD;&#xA;expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;expressionText.append(getSymbol());&#xD;&#xA;return expressionText.toString();"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AllocatedContent" eSuperTypes="#//AllocatableOperator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;.allocatedContent()&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="EList&lt;rba.core.Expression> expressions = getOperand();&#xD;&#xA;if (!expressions.isEmpty() &amp;&amp; expressions.get(0) != null) {&#xD;&#xA; rba.core.Expression first = expressions.get(0);&#xD;&#xA; if ((first.getType() == ExpressionType.AREA) || (first.getType() == ExpressionType.SET_OF_AREA)) {&#xD;&#xA; return ExpressionType.CONTENT;&#xD;&#xA; } else if ((first.getType() == ExpressionType.ZONE) || (first.getType() == ExpressionType.SET_OF_ZONE)) {&#xD;&#xA; return ExpressionType.SOUND;&#xD;&#xA; }&#xD;&#xA;}&#xD;&#xA;return ExpressionType.VALUE;"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ContentValue" eSuperTypes="#//AllocatableOperator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;.contentValue()&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.VALUE;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GetContentsList" eSuperTypes="#//AllocatableOperator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;.contentsList()&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="EList&lt;rba.core.Expression> expressions = getOperand();&#xD;&#xA;if (!expressions.isEmpty() &amp;&amp; expressions.get(0) != null) {&#xD;&#xA; rba.core.Expression first = expressions.get(0);&#xD;&#xA; if (first.getType() == ExpressionType.AREA) {&#xD;&#xA; return ExpressionType.SET_OF_CONTENT;&#xD;&#xA; } else if (first.getType() == ExpressionType.ZONE) {&#xD;&#xA; return ExpressionType.SET_OF_SOUND;&#xD;&#xA; }&#xD;&#xA;}&#xD;&#xA;return ExpressionType.VALUE;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ActiveContents" eSuperTypes="#//AllocatableOperator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;.activeContents()&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="EList&lt;rba.core.Expression> expressions = getOperand();&#xD;&#xA;if (!expressions.isEmpty() &amp;&amp; expressions.get(0) != null) {&#xD;&#xA; rba.core.Expression first = expressions.get(0);&#xD;&#xA; if (first.getType() == ExpressionType.AREA) {&#xD;&#xA; return ExpressionType.SET_OF_CONTENT;&#xD;&#xA; } else if (first.getType() == ExpressionType.ZONE) {&#xD;&#xA; return ExpressionType.SET_OF_SOUND;&#xD;&#xA; }&#xD;&#xA;}&#xD;&#xA;return ExpressionType.VALUE;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PropertyOperator" abstract="true" eSuperTypes="#//Operator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getUnderlyingType" eType="#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.PROPERTY;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="StringBuffer expressionText = new StringBuffer();&#xD;&#xA;EList&lt;rba.core.Expression> expressions = getOperand();&#xD;&#xA;expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;expressionText.append(getSymbol());&#xD;&#xA;return expressionText.toString();"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GetProperty" eSuperTypes="#//PropertyOperator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;.get()&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.VALUE;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ArbitrationPolicy">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eLiterals name="DEFAULT">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="FIRST_COME_FIRST" value="4">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="LAST_COME_FIRST" value="1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="PRIORITY_FIRST_COME_FIRST" value="5">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="PRIORITY_LAST_COME_FIRST" value="6">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eLiterals>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eLiterals name="VALUE"/>
+ <eLiterals name="BOOLEAN" value="1"/>
+ <eLiterals name="AREA" value="2"/>
+ <eLiterals name="CONTENT" value="3"/>
+ <eLiterals name="SET_OF_AREA" value="4"/>
+ <eLiterals name="SET_OF_CONTENT" value="5"/>
+ <eLiterals name="LAMBDA" value="6"/>
+ <eLiterals name="SCENE" value="7"/>
+ <eLiterals name="ZONE" value="8"/>
+ <eLiterals name="SET_OF_ZONE" value="9"/>
+ <eLiterals name="SOUND" value="10"/>
+ <eLiterals name="SET_OF_SOUND" value="11"/>
+ <eLiterals name="PROPERTY" value="14" literal="PROPERTY"/>
+ <eLiterals name="CONTENT_STATE" value="17"/>
+ <eLiterals name="ENUM" value="21" literal="ENUM"/>
+ <eLiterals name="NULL" value="23"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="LoserType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eLiterals name="NEVER_GIVEUP">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="GOOD_LOSER">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="DO_NOT_GIVEUP_UNTIL_WIN">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eLiterals>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="StateValue" eSuperTypes="#//ContentOperator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;.stateValue()&quot;; //$NON-NLS-1$"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.VALUE;"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="HasComeLaterThan" eSuperTypes="#//ContentOperator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;.hasComeLaterThan&quot;; //$NON-NLS-1$"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.BOOLEAN;"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="StringBuffer expressionText = new StringBuffer();&#xD;&#xA;EList&lt;rba.core.Expression> expressions = getOperand();&#xD;&#xA;expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;expressionText.append(getSymbol());&#xD;&#xA;expressionText.append(&quot;(&quot;);&#xD;&#xA;expressionText.append(expressions.size() > 1 ? expressions.get(1).getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;expressionText.append(&quot;)&quot;);&#xD;&#xA;return expressionText.toString();"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="HasComeEarlierThan" eSuperTypes="#//ContentOperator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;.hasComeEarlierThan&quot;; //$NON-NLS-1$"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.BOOLEAN;"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="StringBuffer expressionText = new StringBuffer();&#xD;&#xA;EList&lt;rba.core.Expression> expressions = getOperand();&#xD;&#xA;expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;expressionText.append(getSymbol());&#xD;&#xA;expressionText.append(&quot;(&quot;);&#xD;&#xA;expressionText.append(expressions.size() > 1 ? expressions.get(1).getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;expressionText.append(&quot;)&quot;);&#xD;&#xA;return expressionText.toString();"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SugarExpression" abstract="true" interface="true">
+ <eOperations name="canExpand" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getExpanded" eType="#//Expression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="@return Expression that expanded the syntax sugar expression."/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SugarExpressionBase" abstract="true"
+ interface="true" eSuperTypes="#//SugarExpression">
+ <eOperations name="canExpand" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return true;"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ObjectCompareNot" eSuperTypes="#//Operator #//SugarExpressionBase">
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;!=&quot;;"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.BOOLEAN;"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="StringBuilder expressionText = new StringBuilder();&#xD;&#xA;EList&lt;rba.core.Expression> expressions = getOperand();&#xD;&#xA;expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;expressionText.append(&quot; &quot;);&#xD;&#xA;expressionText.append(getSymbol());&#xD;&#xA;expressionText.append(&quot; &quot;);&#xD;&#xA;expressionText.append(expressions.size() > 1 ? expressions.get(1).getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;return expressionText.toString();"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="IsAllocatedTo" eSuperTypes="#//ContentOperator #//SugarExpressionBase">
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;.isAllocatedTo&quot;;"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.BOOLEAN;"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="StringBuilder expressionText = new StringBuilder();&#xD;&#xA;EList&lt;rba.core.Expression> expressions = getOperand();&#xD;&#xA;expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;expressionText.append(getSymbol());&#xD;&#xA;expressionText.append(&quot;(&quot;);&#xD;&#xA;expressionText.append(expressions.size() > 1 ? expressions.get(1).getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;expressionText.append(&quot;)&quot;);&#xD;&#xA;return expressionText.toString();"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="IsChanged" eSuperTypes="#//AllocatableOperator #//SugarExpressionBase">
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;.isChanged()&quot;;"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.BOOLEAN;"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="IsTranslatedTo" eSuperTypes="#//AllocatableOperator #//SugarExpressionBase">
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;.isTranslatedTo&quot;;"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.BOOLEAN;"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="StringBuilder expressionText = new StringBuilder();&#xD;&#xA;EList&lt;rba.core.Expression> expressions = getOperand();&#xD;&#xA;expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;expressionText.append(getSymbol());&#xD;&#xA;expressionText.append(&quot;(&quot;);&#xD;&#xA;expressionText.append(expressions.size() > 1 ? expressions.get(1).getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;expressionText.append(&quot;)&quot;);&#xD;&#xA;return expressionText.toString();"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GetState">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;.state()&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ContentStateOperator" abstract="true"
+ eSuperTypes="#//Operator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="StringBuffer expressionText = new StringBuffer();&#xD;&#xA;EList&lt;rba.core.Expression> expressions = getOperand();&#xD;&#xA;expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;expressionText.append(getSymbol());&#xD;&#xA;return expressionText.toString();"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="NullExpression" eSuperTypes="#//Expression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="NULL keyword"/>
+ </eAnnotations>
+ <eOperations name="getUnderlyingType" eType="#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.NULL;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;NULL&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/rba.model.core/model/rbacore.genmodel b/rba.model.core/model/rbacore.genmodel
new file mode 100644
index 0000000..a6ef1b4
--- /dev/null
+++ b/rba.model.core/model/rbacore.genmodel
@@ -0,0 +1,435 @@
+<?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="/rba.model.core/src" creationIcons="false" editDirectory="/rba.model.core.edit/src"
+ editorDirectory="/rba.model.core.editor/src" modelPluginID="rba.model.core" modelName="RbaCore"
+ editPluginClass="rba.core.provider.RbaCoreEditPlugin" editorPluginClass="rba.core.presentation.RbaCoreEditorPlugin"
+ rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container" codeFormatting="true"
+ testsDirectory="/rba.model.core.tests/src" testSuiteClass="rba.core.tests.RbaCoreAllTests"
+ importerID="org.eclipse.emf.importer.ecore" complianceLevel="8.0" copyrightFields="false"
+ operationReflection="true" importOrganizing="true">
+ <foreignModel>rbacore.ecore</foreignModel>
+ <genPackages prefix="RBACore" basePackage="rba" disposableProviderFactory="true"
+ ecorePackage="rbacore.ecore#/">
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="rbacore.ecore#//ArbitrationPolicy">
+ <genEnumLiterals ecoreEnumLiteral="rbacore.ecore#//ArbitrationPolicy/DEFAULT"/>
+ <genEnumLiterals ecoreEnumLiteral="rbacore.ecore#//ArbitrationPolicy/FIRST_COME_FIRST"/>
+ <genEnumLiterals ecoreEnumLiteral="rbacore.ecore#//ArbitrationPolicy/LAST_COME_FIRST"/>
+ <genEnumLiterals ecoreEnumLiteral="rbacore.ecore#//ArbitrationPolicy/PRIORITY_FIRST_COME_FIRST"/>
+ <genEnumLiterals ecoreEnumLiteral="rbacore.ecore#//ArbitrationPolicy/PRIORITY_LAST_COME_FIRST"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="rbacore.ecore#//ExpressionType">
+ <genEnumLiterals ecoreEnumLiteral="rbacore.ecore#//ExpressionType/VALUE"/>
+ <genEnumLiterals ecoreEnumLiteral="rbacore.ecore#//ExpressionType/BOOLEAN"/>
+ <genEnumLiterals ecoreEnumLiteral="rbacore.ecore#//ExpressionType/AREA"/>
+ <genEnumLiterals ecoreEnumLiteral="rbacore.ecore#//ExpressionType/CONTENT"/>
+ <genEnumLiterals ecoreEnumLiteral="rbacore.ecore#//ExpressionType/SET_OF_AREA"/>
+ <genEnumLiterals ecoreEnumLiteral="rbacore.ecore#//ExpressionType/SET_OF_CONTENT"/>
+ <genEnumLiterals ecoreEnumLiteral="rbacore.ecore#//ExpressionType/LAMBDA"/>
+ <genEnumLiterals ecoreEnumLiteral="rbacore.ecore#//ExpressionType/SCENE"/>
+ <genEnumLiterals ecoreEnumLiteral="rbacore.ecore#//ExpressionType/ZONE"/>
+ <genEnumLiterals ecoreEnumLiteral="rbacore.ecore#//ExpressionType/SET_OF_ZONE"/>
+ <genEnumLiterals ecoreEnumLiteral="rbacore.ecore#//ExpressionType/SOUND"/>
+ <genEnumLiterals ecoreEnumLiteral="rbacore.ecore#//ExpressionType/SET_OF_SOUND"/>
+ <genEnumLiterals ecoreEnumLiteral="rbacore.ecore#//ExpressionType/PROPERTY"/>
+ <genEnumLiterals ecoreEnumLiteral="rbacore.ecore#//ExpressionType/CONTENT_STATE"/>
+ <genEnumLiterals ecoreEnumLiteral="rbacore.ecore#//ExpressionType/ENUM"/>
+ <genEnumLiterals ecoreEnumLiteral="rbacore.ecore#//ExpressionType/NULL"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="rbacore.ecore#//LoserType">
+ <genEnumLiterals ecoreEnumLiteral="rbacore.ecore#//LoserType/NEVER_GIVEUP"/>
+ <genEnumLiterals ecoreEnumLiteral="rbacore.ecore#//LoserType/GOOD_LOSER"/>
+ <genEnumLiterals ecoreEnumLiteral="rbacore.ecore#//LoserType/DO_NOT_GIVEUP_UNTIL_WIN"/>
+ </genEnums>
+ <genClasses image="false" ecoreClass="rbacore.ecore#//ModelElement">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute rbacore.ecore#//ModelElement/description"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="rbacore.ecore#//NamedElement">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute rbacore.ecore#//NamedElement/name"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="rbacore.ecore#//AbstractAllocatable">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference rbacore.ecore#//AbstractAllocatable/contents"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference rbacore.ecore#//AbstractAllocatable/allocatableGroup"/>
+ <genOperations ecoreOperation="rbacore.ecore#//AbstractAllocatable/getContentsList"/>
+ <genOperations ecoreOperation="rbacore.ecore#//AbstractAllocatable/collectLeafAllocatable"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="rbacore.ecore#//Allocatable">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute rbacore.ecore#//Allocatable/arbitrationPolicy"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference rbacore.ecore#//Allocatable/visibility"/>
+ <genOperations ecoreOperation="rbacore.ecore#//Allocatable/collectLeafAllocatable"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="rbacore.ecore#//AllocatableSet">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference rbacore.ecore#//AllocatableSet/target"/>
+ <genOperations ecoreOperation="rbacore.ecore#//AllocatableSet/collectLeafAllocatable"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//Project">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute rbacore.ecore#//Project/version"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute rbacore.ecore#//Project/dummyName"/>
+ <genOperations ecoreOperation="rbacore.ecore#//Project/getName"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="rbacore.ecore#//PackagableElement"/>
+ <genClasses ecoreClass="rbacore.ecore#//Package">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference rbacore.ecore#//Package/packagableelement"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//Stereotype">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute rbacore.ecore#//Stereotype/targetModelName"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference rbacore.ecore#//Stereotype/variables"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute rbacore.ecore#//Stereotype/bodyText"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//Tag">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute rbacore.ecore#//Tag/values"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="rbacore.ecore#//RuleObject">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference rbacore.ecore#//RuleObject/tags"/>
+ <genOperations ecoreOperation="rbacore.ecore#//RuleObject/getExpressionType"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="rbacore.ecore#//AbstractContent">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference rbacore.ecore#//AbstractContent/contentGroup"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference rbacore.ecore#//AbstractContent/allocatable"/>
+ <genOperations ecoreOperation="rbacore.ecore#//AbstractContent/getAllocatableList"/>
+ <genOperations ecoreOperation="rbacore.ecore#//AbstractContent/collectLeafContents"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="rbacore.ecore#//AbstractScene"/>
+ <genClasses ecoreClass="rbacore.ecore#//Scene">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute rbacore.ecore#//Scene/global"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference rbacore.ecore#//Scene/properties"/>
+ <genOperations ecoreOperation="rbacore.ecore#//Scene/getExpressionType"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="rbacore.ecore#//Content">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute rbacore.ecore#//Content/loserType"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference rbacore.ecore#//Content/states"/>
+ <genOperations ecoreOperation="rbacore.ecore#//Content/collectLeafContents"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="rbacore.ecore#//ContentSet">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference rbacore.ecore#//ContentSet/target"/>
+ <genOperations ecoreOperation="rbacore.ecore#//ContentSet/collectLeafContents"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="rbacore.ecore#//ContentState">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference rbacore.ecore#//ContentState/value"/>
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference rbacore.ecore#//ContentState/owner"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="rbacore.ecore#//AbstractProperty">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference rbacore.ecore#//AbstractProperty/owner"/>
+ <genOperations ecoreOperation="rbacore.ecore#//AbstractProperty/getExpressionType"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//IntegerProperty">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference rbacore.ecore#//IntegerProperty/value"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="rbacore.ecore#//AbstractConstraint">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference rbacore.ecore#//AbstractConstraint/expression"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//Constraint">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute rbacore.ecore#//Constraint/runtime"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="rbacore.ecore#//Expression">
+ <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute rbacore.ecore#//Expression/type"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute rbacore.ecore#//Expression/expression"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference rbacore.ecore#//Expression/letStatements"/>
+ <genOperations ecoreOperation="rbacore.ecore#//Expression/getUnderlyingType"/>
+ <genOperations ecoreOperation="rbacore.ecore#//Expression/getExpressionText"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//LetStatement">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference rbacore.ecore#//LetStatement/variable"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference rbacore.ecore#//LetStatement/body"/>
+ <genOperations ecoreOperation="rbacore.ecore#//LetStatement/toString"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//ComplexExpression">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference rbacore.ecore#//ComplexExpression/otherExpression"/>
+ <genOperations ecoreOperation="rbacore.ecore#//ComplexExpression/getExpressionText"/>
+ <genOperations ecoreOperation="rbacore.ecore#//ComplexExpression/getUnderlyingType"/>
+ <genOperations ecoreOperation="rbacore.ecore#//ComplexExpression/getType"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="rbacore.ecore#//Operator">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference rbacore.ecore#//Operator/operand"/>
+ <genOperations ecoreOperation="rbacore.ecore#//Operator/getSymbol"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//IsTypeOf">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute rbacore.ecore#//IsTypeOf/tagName"/>
+ <genOperations ecoreOperation="rbacore.ecore#//IsTypeOf/getExpressionText"/>
+ <genOperations ecoreOperation="rbacore.ecore#//IsTypeOf/getSymbol"/>
+ <genOperations ecoreOperation="rbacore.ecore#//IsTypeOf/getUnderlyingType"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//ObjectReference">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference rbacore.ecore#//ObjectReference/refObject"/>
+ <genOperations ecoreOperation="rbacore.ecore#//ObjectReference/getUnderlyingType"/>
+ <genOperations ecoreOperation="rbacore.ecore#//ObjectReference/getExpressionText"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//PreviousModifier">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference rbacore.ecore#//PreviousModifier/objReference"/>
+ <genOperations ecoreOperation="rbacore.ecore#//PreviousModifier/getSymbol"/>
+ <genOperations ecoreOperation="rbacore.ecore#//PreviousModifier/getUnderlyingType"/>
+ <genOperations ecoreOperation="rbacore.ecore#//PreviousModifier/getExpressionText"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//GreaterThanOperator">
+ <genOperations ecoreOperation="rbacore.ecore#//GreaterThanOperator/getSymbol"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//MuchGreaterThanOperator">
+ <genOperations ecoreOperation="rbacore.ecore#//MuchGreaterThanOperator/getSymbol"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//LowerThanOperator">
+ <genOperations ecoreOperation="rbacore.ecore#//LowerThanOperator/getSymbol"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="rbacore.ecore#//ComparisonOperator">
+ <genOperations ecoreOperation="rbacore.ecore#//ComparisonOperator/getUnderlyingType"/>
+ <genOperations ecoreOperation="rbacore.ecore#//ComparisonOperator/getExpressionText"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//EqualToOperator">
+ <genOperations ecoreOperation="rbacore.ecore#//EqualToOperator/getSymbol"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//ComparisonAnd">
+ <genOperations ecoreOperation="rbacore.ecore#//ComparisonAnd/getSymbol"/>
+ <genOperations ecoreOperation="rbacore.ecore#//ComparisonAnd/getExpressionText"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="rbacore.ecore#//LogicalOperator">
+ <genOperations ecoreOperation="rbacore.ecore#//LogicalOperator/getUnderlyingType"/>
+ <genOperations ecoreOperation="rbacore.ecore#//LogicalOperator/getExpressionText"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//AndOperator">
+ <genOperations ecoreOperation="rbacore.ecore#//AndOperator/getSymbol"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//OrOperator">
+ <genOperations ecoreOperation="rbacore.ecore#//OrOperator/getSymbol"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//NotOperator">
+ <genOperations ecoreOperation="rbacore.ecore#//NotOperator/getSymbol"/>
+ <genOperations ecoreOperation="rbacore.ecore#//NotOperator/getExpressionText"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//IsEqualToOperator">
+ <genOperations ecoreOperation="rbacore.ecore#//IsEqualToOperator/getSymbol"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//IsGreaterThanOperator">
+ <genOperations ecoreOperation="rbacore.ecore#//IsGreaterThanOperator/getSymbol"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//IsLowerThanOperator">
+ <genOperations ecoreOperation="rbacore.ecore#//IsLowerThanOperator/getSymbol"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//IsGreaterThanEqualOperator">
+ <genOperations ecoreOperation="rbacore.ecore#//IsGreaterThanEqualOperator/getSymbol"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//IsLowerThanEqualOperator">
+ <genOperations ecoreOperation="rbacore.ecore#//IsLowerThanEqualOperator/getSymbol"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="rbacore.ecore#//ArithmeticOperator">
+ <genOperations ecoreOperation="rbacore.ecore#//ArithmeticOperator/getUnderlyingType"/>
+ <genOperations ecoreOperation="rbacore.ecore#//ArithmeticOperator/getExpressionText"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//PlusOperator">
+ <genOperations ecoreOperation="rbacore.ecore#//PlusOperator/getSymbol"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//ImpliesOperator">
+ <genOperations ecoreOperation="rbacore.ecore#//ImpliesOperator/getSymbol"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="rbacore.ecore#//ContentOperator">
+ <genOperations ecoreOperation="rbacore.ecore#//ContentOperator/getExpressionText"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//IsActive">
+ <genOperations ecoreOperation="rbacore.ecore#//IsActive/getSymbol"/>
+ <genOperations ecoreOperation="rbacore.ecore#//IsActive/getUnderlyingType"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//GetAllocatables">
+ <genOperations ecoreOperation="rbacore.ecore#//GetAllocatables/getSymbol"/>
+ <genOperations ecoreOperation="rbacore.ecore#//GetAllocatables/getUnderlyingType"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//HasBeenDisplayed">
+ <genOperations ecoreOperation="rbacore.ecore#//HasBeenDisplayed/getSymbol"/>
+ <genOperations ecoreOperation="rbacore.ecore#//HasBeenDisplayed/getUnderlyingType"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//ActiveState">
+ <genOperations ecoreOperation="rbacore.ecore#//ActiveState/getSymbol"/>
+ <genOperations ecoreOperation="rbacore.ecore#//ActiveState/getUnderlyingType"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//ObjectCompare">
+ <genOperations ecoreOperation="rbacore.ecore#//ObjectCompare/getSymbol"/>
+ <genOperations ecoreOperation="rbacore.ecore#//ObjectCompare/getUnderlyingType"/>
+ <genOperations ecoreOperation="rbacore.ecore#//ObjectCompare/getExpressionText"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//ThatOfOperator">
+ <genOperations ecoreOperation="rbacore.ecore#//ThatOfOperator/getExpressionText"/>
+ <genOperations ecoreOperation="rbacore.ecore#//ThatOfOperator/getSymbol"/>
+ <genOperations ecoreOperation="rbacore.ecore#//ThatOfOperator/getUnderlyingType"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="rbacore.ecore#//ValueExpression">
+ <genOperations ecoreOperation="rbacore.ecore#//ValueExpression/getUnderlyingType"/>
+ <genOperations ecoreOperation="rbacore.ecore#//ValueExpression/getExpressionValue"/>
+ <genOperations ecoreOperation="rbacore.ecore#//ValueExpression/getType"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//MaxValue">
+ <genOperations ecoreOperation="rbacore.ecore#//MaxValue/getExpressionText"/>
+ <genOperations ecoreOperation="rbacore.ecore#//MaxValue/getExpressionValue"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//MinValue">
+ <genOperations ecoreOperation="rbacore.ecore#//MinValue/getExpressionText"/>
+ <genOperations ecoreOperation="rbacore.ecore#//MinValue/getExpressionValue"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//NoneValue">
+ <genOperations ecoreOperation="rbacore.ecore#//NoneValue/getExpressionText"/>
+ <genOperations ecoreOperation="rbacore.ecore#//NoneValue/getExpressionValue"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//StandardValue">
+ <genOperations ecoreOperation="rbacore.ecore#//StandardValue/getExpressionText"/>
+ <genOperations ecoreOperation="rbacore.ecore#//StandardValue/getExpressionValue"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//IntegerValue">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute rbacore.ecore#//IntegerValue/value"/>
+ <genOperations ecoreOperation="rbacore.ecore#//IntegerValue/getExpressionText"/>
+ <genOperations ecoreOperation="rbacore.ecore#//IntegerValue/getExpressionValue"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="rbacore.ecore#//EnumExpression">
+ <genOperations ecoreOperation="rbacore.ecore#//EnumExpression/getUnderlyingType"/>
+ <genOperations ecoreOperation="rbacore.ecore#//EnumExpression/getExpressionValue"/>
+ <genOperations ecoreOperation="rbacore.ecore#//EnumExpression/getType"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//LoserTypeExpression">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute rbacore.ecore#//LoserTypeExpression/value"/>
+ <genOperations ecoreOperation="rbacore.ecore#//LoserTypeExpression/getExpressionText"/>
+ <genOperations ecoreOperation="rbacore.ecore#//LoserTypeExpression/getExpressionValue"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//ArbitrationPolicyExpression">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute rbacore.ecore#//ArbitrationPolicyExpression/value"/>
+ <genOperations ecoreOperation="rbacore.ecore#//ArbitrationPolicyExpression/getExpressionText"/>
+ <genOperations ecoreOperation="rbacore.ecore#//ArbitrationPolicyExpression/getExpressionValue"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="rbacore.ecore#//SetExpression"/>
+ <genClasses image="false" ecoreClass="rbacore.ecore#//SetOperator"/>
+ <genClasses ecoreClass="rbacore.ecore#//SizeOperator">
+ <genOperations ecoreOperation="rbacore.ecore#//SizeOperator/getExpressionText"/>
+ <genOperations ecoreOperation="rbacore.ecore#//SizeOperator/getSymbol"/>
+ <genOperations ecoreOperation="rbacore.ecore#//SizeOperator/getUnderlyingType"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//ExistsOperator">
+ <genOperations ecoreOperation="rbacore.ecore#//ExistsOperator/getExpressionText"/>
+ <genOperations ecoreOperation="rbacore.ecore#//ExistsOperator/getSymbol"/>
+ <genOperations ecoreOperation="rbacore.ecore#//ExistsOperator/getUnderlyingType"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//ForAllOperator">
+ <genOperations ecoreOperation="rbacore.ecore#//ForAllOperator/getExpressionText"/>
+ <genOperations ecoreOperation="rbacore.ecore#//ForAllOperator/getSymbol"/>
+ <genOperations ecoreOperation="rbacore.ecore#//ForAllOperator/getUnderlyingType"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//MaxOperator">
+ <genOperations ecoreOperation="rbacore.ecore#//MaxOperator/getExpressionText"/>
+ <genOperations ecoreOperation="rbacore.ecore#//MaxOperator/getSymbol"/>
+ <genOperations ecoreOperation="rbacore.ecore#//MaxOperator/getUnderlyingType"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//MinOperator">
+ <genOperations ecoreOperation="rbacore.ecore#//MinOperator/getExpressionText"/>
+ <genOperations ecoreOperation="rbacore.ecore#//MinOperator/getSymbol"/>
+ <genOperations ecoreOperation="rbacore.ecore#//MinOperator/getUnderlyingType"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//SelectOperator">
+ <genOperations ecoreOperation="rbacore.ecore#//SelectOperator/getExpressionText"/>
+ <genOperations ecoreOperation="rbacore.ecore#//SelectOperator/getSymbol"/>
+ <genOperations ecoreOperation="rbacore.ecore#//SelectOperator/getUnderlyingType"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//SetOfOperator">
+ <genOperations ecoreOperation="rbacore.ecore#//SetOfOperator/getExpressionText"/>
+ <genOperations ecoreOperation="rbacore.ecore#//SetOfOperator/getSymbol"/>
+ <genOperations ecoreOperation="rbacore.ecore#//SetOfOperator/getUnderlyingType"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//LambdaExpression">
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference rbacore.ecore#//LambdaExpression/context"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference rbacore.ecore#//LambdaExpression/x"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference rbacore.ecore#//LambdaExpression/bodyText"/>
+ <genOperations ecoreOperation="rbacore.ecore#//LambdaExpression/getExpressionText"/>
+ <genOperations ecoreOperation="rbacore.ecore#//LambdaExpression/getUnderlyingType"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//Variable">
+ <genOperations ecoreOperation="rbacore.ecore#//Variable/getExpressionType"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="rbacore.ecore#//LambdaContext">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference rbacore.ecore#//LambdaContext/lambda"/>
+ <genOperations ecoreOperation="rbacore.ecore#//LambdaContext/getContextType"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//IfStatement">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference rbacore.ecore#//IfStatement/condition"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference rbacore.ecore#//IfStatement/thenExpression"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference rbacore.ecore#//IfStatement/elseExpression"/>
+ <genOperations ecoreOperation="rbacore.ecore#//IfStatement/getUnderlyingType"/>
+ <genOperations ecoreOperation="rbacore.ecore#//IfStatement/getExpressionText"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="rbacore.ecore#//SceneOperator">
+ <genOperations ecoreOperation="rbacore.ecore#//SceneOperator/getExpressionText"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//IsOn">
+ <genOperations ecoreOperation="rbacore.ecore#//IsOn/getSymbol"/>
+ <genOperations ecoreOperation="rbacore.ecore#//IsOn/getUnderlyingType"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="rbacore.ecore#//AllocatableOperator">
+ <genOperations ecoreOperation="rbacore.ecore#//AllocatableOperator/getExpressionText"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//AllocatedContent">
+ <genOperations ecoreOperation="rbacore.ecore#//AllocatedContent/getSymbol"/>
+ <genOperations ecoreOperation="rbacore.ecore#//AllocatedContent/getUnderlyingType"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//ContentValue">
+ <genOperations ecoreOperation="rbacore.ecore#//ContentValue/getSymbol"/>
+ <genOperations ecoreOperation="rbacore.ecore#//ContentValue/getUnderlyingType"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//GetContentsList">
+ <genOperations ecoreOperation="rbacore.ecore#//GetContentsList/getSymbol"/>
+ <genOperations ecoreOperation="rbacore.ecore#//GetContentsList/getUnderlyingType"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//ActiveContents">
+ <genOperations ecoreOperation="rbacore.ecore#//ActiveContents/getSymbol"/>
+ <genOperations ecoreOperation="rbacore.ecore#//ActiveContents/getUnderlyingType"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="rbacore.ecore#//PropertyOperator">
+ <genOperations ecoreOperation="rbacore.ecore#//PropertyOperator/getUnderlyingType"/>
+ <genOperations ecoreOperation="rbacore.ecore#//PropertyOperator/getExpressionText"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//GetProperty">
+ <genOperations ecoreOperation="rbacore.ecore#//GetProperty/getSymbol"/>
+ <genOperations ecoreOperation="rbacore.ecore#//GetProperty/getUnderlyingType"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//StateValue">
+ <genOperations ecoreOperation="rbacore.ecore#//StateValue/getSymbol"/>
+ <genOperations ecoreOperation="rbacore.ecore#//StateValue/getUnderlyingType"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//HasComeLaterThan">
+ <genOperations ecoreOperation="rbacore.ecore#//HasComeLaterThan/getSymbol"/>
+ <genOperations ecoreOperation="rbacore.ecore#//HasComeLaterThan/getUnderlyingType"/>
+ <genOperations ecoreOperation="rbacore.ecore#//HasComeLaterThan/getExpressionText"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//HasComeEarlierThan">
+ <genOperations ecoreOperation="rbacore.ecore#//HasComeEarlierThan/getSymbol"/>
+ <genOperations ecoreOperation="rbacore.ecore#//HasComeEarlierThan/getUnderlyingType"/>
+ <genOperations ecoreOperation="rbacore.ecore#//HasComeEarlierThan/getExpressionText"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="rbacore.ecore#//SugarExpression">
+ <genOperations ecoreOperation="rbacore.ecore#//SugarExpression/canExpand"/>
+ <genOperations ecoreOperation="rbacore.ecore#//SugarExpression/getExpanded"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="rbacore.ecore#//SugarExpressionBase">
+ <genOperations ecoreOperation="rbacore.ecore#//SugarExpressionBase/canExpand"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//ObjectCompareNot">
+ <genOperations ecoreOperation="rbacore.ecore#//ObjectCompareNot/getSymbol"/>
+ <genOperations ecoreOperation="rbacore.ecore#//ObjectCompareNot/getUnderlyingType"/>
+ <genOperations ecoreOperation="rbacore.ecore#//ObjectCompareNot/getExpressionText"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//IsAllocatedTo">
+ <genOperations ecoreOperation="rbacore.ecore#//IsAllocatedTo/getSymbol"/>
+ <genOperations ecoreOperation="rbacore.ecore#//IsAllocatedTo/getUnderlyingType"/>
+ <genOperations ecoreOperation="rbacore.ecore#//IsAllocatedTo/getExpressionText"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//IsChanged">
+ <genOperations ecoreOperation="rbacore.ecore#//IsChanged/getSymbol"/>
+ <genOperations ecoreOperation="rbacore.ecore#//IsChanged/getUnderlyingType"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//IsTranslatedTo">
+ <genOperations ecoreOperation="rbacore.ecore#//IsTranslatedTo/getSymbol"/>
+ <genOperations ecoreOperation="rbacore.ecore#//IsTranslatedTo/getUnderlyingType"/>
+ <genOperations ecoreOperation="rbacore.ecore#//IsTranslatedTo/getExpressionText"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//GetState">
+ <genOperations ecoreOperation="rbacore.ecore#//GetState/getSymbol"/>
+ <genOperations ecoreOperation="rbacore.ecore#//GetState/getUnderlyingType"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="rbacore.ecore#//ContentStateOperator">
+ <genOperations ecoreOperation="rbacore.ecore#//ContentStateOperator/getExpressionText"/>
+ </genClasses>
+ <genClasses ecoreClass="rbacore.ecore#//NullExpression">
+ <genOperations ecoreOperation="rbacore.ecore#//NullExpression/getUnderlyingType"/>
+ <genOperations ecoreOperation="rbacore.ecore#//NullExpression/getExpressionText"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/rba.model.core/plugin.properties b/rba.model.core/plugin.properties
new file mode 100644
index 0000000..c5a8f9d
--- /dev/null
+++ b/rba.model.core/plugin.properties
@@ -0,0 +1,4 @@
+#
+
+pluginName = RBA Tool RBACore Model
+providerName =DENSO CORPORATION
diff --git a/rba.model.core/plugin.xml b/rba.model.core/plugin.xml
new file mode 100644
index 0000000..cd574a9
--- /dev/null
+++ b/rba.model.core/plugin.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated rbacore -->
+ <package
+ uri="http://www.denso.com/ict/rba/core"
+ class="rba.core.RBACorePackage"
+ genModel="model/rbacore.genmodel"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated rbaext -->
+ <package
+ uri="http://www.denso.com/ict/rba/extcore"
+ class="extcore.ExtcorePackage"
+ genModel="model/rbaext.genmodel"/>
+ </extension>
+
+</plugin>
diff --git a/rba.model.core/src/rba/core/AbstractAllocatable.java b/rba.model.core/src/rba/core/AbstractAllocatable.java
new file mode 100644
index 0000000..e3d9eac
--- /dev/null
+++ b/rba.model.core/src/rba/core/AbstractAllocatable.java
@@ -0,0 +1,86 @@
+/**
+ */
+package rba.core;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Abstract Allocatable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.AbstractAllocatable#getContents <em>Contents</em>}</li>
+ * <li>{@link rba.core.AbstractAllocatable#getAllocatableGroup <em>Allocatable Group</em>}</li>
+ * </ul>
+ *
+ * @see rba.core.RBACorePackage#getAbstractAllocatable()
+ * @model abstract="true"
+ * @generated
+ */
+public interface AbstractAllocatable extends RuleObject {
+ /**
+ * Returns the value of the '<em><b>Contents</b></em>' reference list.
+ * The list contents are of type {@link rba.core.AbstractContent}.
+ * It is bidirectional and its opposite is '{@link rba.core.AbstractContent#getAllocatable <em>Allocatable</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Contents</em>' reference list.
+ * @see rba.core.RBACorePackage#getAbstractAllocatable_Contents()
+ * @see rba.core.AbstractContent#getAllocatable
+ * @model opposite="allocatable"
+ * @generated
+ */
+ EList<AbstractContent> getContents();
+
+ /**
+ * Returns the value of the '<em><b>Allocatable Group</b></em>' reference list.
+ * The list contents are of type {@link rba.core.AllocatableSet}.
+ * It is bidirectional and its opposite is '{@link rba.core.AllocatableSet#getTarget <em>Target</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Allocatable Group</em>' reference list.
+ * @see rba.core.RBACorePackage#getAbstractAllocatable_AllocatableGroup()
+ * @see rba.core.AllocatableSet#getTarget
+ * @model opposite="target"
+ * @generated
+ */
+ EList<AllocatableSet> getAllocatableGroup();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @model kind="operation" ordered="false"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='java.util.Set&lt;Content&gt; contents = new java.util.LinkedHashSet&lt;Content&gt;();\r\ngetContents().forEach(content -&gt; contents.addAll(content.collectLeafContents()));\r\ngetAllocatableGroup().forEach(allocatableSet -&gt; contents.addAll(allocatableSet.getContentsList()));\r\nreturn new org.eclipse.emf.common.util.BasicEList&lt;Content&gt;(contents);'"
+ * @generated
+ */
+ EList<Content> getContentsList();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @model ordered="false"
+ * @generated
+ */
+ EList<Allocatable> collectLeafAllocatable();
+
+} // AbstractAllocatable
diff --git a/rba.model.core/src/rba/core/AbstractConstraint.java b/rba.model.core/src/rba/core/AbstractConstraint.java
new file mode 100644
index 0000000..e28c1c8
--- /dev/null
+++ b/rba.model.core/src/rba/core/AbstractConstraint.java
@@ -0,0 +1,51 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Abstract Constraint</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.AbstractConstraint#getExpression <em>Expression</em>}</li>
+ * </ul>
+ *
+ * @see rba.core.RBACorePackage#getAbstractConstraint()
+ * @model abstract="true"
+ * @generated
+ */
+public interface AbstractConstraint extends PackagableElement {
+ /**
+ * Returns the value of the '<em><b>Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Expression</em>' containment reference.
+ * @see #setExpression(Expression)
+ * @see rba.core.RBACorePackage#getAbstractConstraint_Expression()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ Expression getExpression();
+
+ /**
+ * Sets the value of the '{@link rba.core.AbstractConstraint#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);
+
+} // AbstractConstraint
diff --git a/rba.model.core/src/rba/core/AbstractContent.java b/rba.model.core/src/rba/core/AbstractContent.java
new file mode 100644
index 0000000..96b6043
--- /dev/null
+++ b/rba.model.core/src/rba/core/AbstractContent.java
@@ -0,0 +1,87 @@
+/**
+ */
+package rba.core;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Abstract Content</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.AbstractContent#getContentGroup <em>Content Group</em>}</li>
+ * <li>{@link rba.core.AbstractContent#getAllocatable <em>Allocatable</em>}</li>
+ * </ul>
+ *
+ * @see rba.core.RBACorePackage#getAbstractContent()
+ * @model abstract="true"
+ * @generated
+ */
+public interface AbstractContent extends RuleObject {
+ /**
+ * Returns the value of the '<em><b>Content Group</b></em>' reference list.
+ * The list contents are of type {@link rba.core.ContentSet}.
+ * It is bidirectional and its opposite is '{@link rba.core.ContentSet#getTarget <em>Target</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Content Group</em>' reference list.
+ * @see rba.core.RBACorePackage#getAbstractContent_ContentGroup()
+ * @see rba.core.ContentSet#getTarget
+ * @model opposite="target"
+ * @generated
+ */
+ EList<ContentSet> getContentGroup();
+
+ /**
+ * Returns the value of the '<em><b>Allocatable</b></em>' reference list.
+ * The list contents are of type {@link rba.core.AbstractAllocatable}.
+ * It is bidirectional and its opposite is '{@link rba.core.AbstractAllocatable#getContents <em>Contents</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Allocatable</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Allocatable</em>' reference list.
+ * @see rba.core.RBACorePackage#getAbstractContent_Allocatable()
+ * @see rba.core.AbstractAllocatable#getContents
+ * @model opposite="contents"
+ * @generated
+ */
+ EList<AbstractAllocatable> getAllocatable();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @model kind="operation" ordered="false"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='java.util.Set&lt;Allocatable&gt; allocatables = new java.util.LinkedHashSet&lt;Allocatable&gt;();\r\ngetAllocatable().forEach(allocatable -&gt; allocatables.addAll(allocatable.collectLeafAllocatable()));\r\ngetContentGroup().forEach(contentSet -&gt; allocatables.addAll(contentSet.getAllocatableList()));\r\nreturn new org.eclipse.emf.common.util.BasicEList&lt;Allocatable&gt;(allocatables);'"
+ * @generated
+ */
+ EList<Allocatable> getAllocatableList();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @model ordered="false"
+ * @generated
+ */
+ EList<Content> collectLeafContents();
+
+} // AbstractContent
diff --git a/rba.model.core/src/rba/core/AbstractProperty.java b/rba.model.core/src/rba/core/AbstractProperty.java
new file mode 100644
index 0000000..c63282a
--- /dev/null
+++ b/rba.model.core/src/rba/core/AbstractProperty.java
@@ -0,0 +1,65 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Abstract Property</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.AbstractProperty#getOwner <em>Owner</em>}</li>
+ * </ul>
+ *
+ * @see rba.core.RBACorePackage#getAbstractProperty()
+ * @model abstract="true"
+ * @generated
+ */
+public interface AbstractProperty extends RuleObject {
+ /**
+ * Returns the value of the '<em><b>Owner</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link rba.core.Scene#getProperties <em>Properties</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Owner</em>' container reference.
+ * @see #setOwner(Scene)
+ * @see rba.core.RBACorePackage#getAbstractProperty_Owner()
+ * @see rba.core.Scene#getProperties
+ * @model opposite="properties" transient="false"
+ * @generated
+ */
+ Scene getOwner();
+
+ /**
+ * Sets the value of the '{@link rba.core.AbstractProperty#getOwner <em>Owner</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Owner</em>' container reference.
+ * @see #getOwner()
+ * @generated
+ */
+ void setOwner(Scene value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.PROPERTY;'"
+ * @generated
+ */
+ ExpressionType getExpressionType();
+
+} // AbstractProperty
diff --git a/rba.model.core/src/rba/core/AbstractScene.java b/rba.model.core/src/rba/core/AbstractScene.java
new file mode 100644
index 0000000..cb8b898
--- /dev/null
+++ b/rba.model.core/src/rba/core/AbstractScene.java
@@ -0,0 +1,20 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Abstract Scene</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getAbstractScene()
+ * @model abstract="true"
+ * @generated
+ */
+public interface AbstractScene extends RuleObject {
+} // AbstractScene
diff --git a/rba.model.core/src/rba/core/ActionOperator.java b/rba.model.core/src/rba/core/ActionOperator.java
new file mode 100644
index 0000000..471ed78
--- /dev/null
+++ b/rba.model.core/src/rba/core/ActionOperator.java
@@ -0,0 +1,21 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Action Operator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getActionOperator()
+ * @model abstract="true"
+ * @generated
+ */
+public interface ActionOperator extends Operator {
+
+} // ActionOperator
diff --git a/rba.model.core/src/rba/core/ActiveContents.java b/rba.model.core/src/rba/core/ActiveContents.java
new file mode 100644
index 0000000..ca532fc
--- /dev/null
+++ b/rba.model.core/src/rba/core/ActiveContents.java
@@ -0,0 +1,44 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Active Contents</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getActiveContents()
+ * @model
+ * @generated
+ */
+public interface ActiveContents extends AllocatableOperator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".activeContents()\";'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='EList&lt;rba.core.Expression&gt; expressions = getOperand();\r\nif (!expressions.isEmpty() &amp;&amp; expressions.get(0) != null) {\r\n rba.core.Expression first = expressions.get(0);\r\n if (first.getType() == ExpressionType.AREA) {\r\n return ExpressionType.SET_OF_CONTENT;\r\n } else if (first.getType() == ExpressionType.ZONE) {\r\n return ExpressionType.SET_OF_SOUND;\r\n }\r\n}\r\nreturn ExpressionType.VALUE;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+} // ActiveContents
diff --git a/rba.model.core/src/rba/core/ActiveState.java b/rba.model.core/src/rba/core/ActiveState.java
new file mode 100644
index 0000000..1b81d93
--- /dev/null
+++ b/rba.model.core/src/rba/core/ActiveState.java
@@ -0,0 +1,44 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Active State</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getActiveState()
+ * @model
+ * @generated
+ */
+public interface ActiveState extends ContentOperator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".activeState()\";'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.CONTENT_STATE;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+} // ActiveState
diff --git a/rba.model.core/src/rba/core/Allocatable.java b/rba.model.core/src/rba/core/Allocatable.java
new file mode 100644
index 0000000..a7b585b
--- /dev/null
+++ b/rba.model.core/src/rba/core/Allocatable.java
@@ -0,0 +1,91 @@
+/**
+ */
+package rba.core;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Allocatable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.Allocatable#getArbitrationPolicy <em>Arbitration Policy</em>}</li>
+ * <li>{@link rba.core.Allocatable#getVisibility <em>Visibility</em>}</li>
+ * </ul>
+ *
+ * @see rba.core.RBACorePackage#getAllocatable()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Allocatable extends AbstractAllocatable {
+ /**
+ * Returns the value of the '<em><b>Arbitration Policy</b></em>' attribute.
+ * The literals are from the enumeration {@link rba.core.ArbitrationPolicy}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Arbitration Policy</em>' attribute.
+ * @see rba.core.ArbitrationPolicy
+ * @see #setArbitrationPolicy(ArbitrationPolicy)
+ * @see rba.core.RBACorePackage#getAllocatable_ArbitrationPolicy()
+ * @model
+ * @generated
+ */
+ ArbitrationPolicy getArbitrationPolicy();
+
+ /**
+ * Sets the value of the '{@link rba.core.Allocatable#getArbitrationPolicy <em>Arbitration Policy</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Arbitration Policy</em>' attribute.
+ * @see rba.core.ArbitrationPolicy
+ * @see #getArbitrationPolicy()
+ * @generated
+ */
+ void setArbitrationPolicy(ArbitrationPolicy value);
+
+ /**
+ * Returns the value of the '<em><b>Visibility</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Visibility</em>' containment reference.
+ * @see #setVisibility(Expression)
+ * @see rba.core.RBACorePackage#getAllocatable_Visibility()
+ * @model containment="true"
+ * @generated
+ */
+ Expression getVisibility();
+
+ /**
+ * Sets the value of the '{@link rba.core.Allocatable#getVisibility <em>Visibility</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Visibility</em>' containment reference.
+ * @see #getVisibility()
+ * @generated
+ */
+ void setVisibility(Expression value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model ordered="false"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='java.util.Set&lt;Allocatable&gt; allocatables = new java.util.HashSet&lt;Allocatable&gt;();\r\nallocatables.add(this);\r\nreturn new org.eclipse.emf.common.util.BasicEList&lt;Allocatable&gt;(allocatables);'"
+ * @generated
+ */
+ EList<Allocatable> collectLeafAllocatable();
+
+} // Allocatable
diff --git a/rba.model.core/src/rba/core/AllocatableOperator.java b/rba.model.core/src/rba/core/AllocatableOperator.java
new file mode 100644
index 0000000..7a23076
--- /dev/null
+++ b/rba.model.core/src/rba/core/AllocatableOperator.java
@@ -0,0 +1,29 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Allocatable Operator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getAllocatableOperator()
+ * @model abstract="true"
+ * @generated
+ */
+public interface AllocatableOperator extends Operator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nEList&lt;rba.core.Expression&gt; expressions = getOperand();\r\nexpressionText.append(expressions.size() &gt; 0 ? expressions.get(0).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(getSymbol());\r\nreturn expressionText.toString();'"
+ * @generated
+ */
+ String getExpressionText();
+
+} // AllocatableOperator
diff --git a/rba.model.core/src/rba/core/AllocatableSet.java b/rba.model.core/src/rba/core/AllocatableSet.java
new file mode 100644
index 0000000..2ccd65f
--- /dev/null
+++ b/rba.model.core/src/rba/core/AllocatableSet.java
@@ -0,0 +1,54 @@
+/**
+ */
+package rba.core;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Allocatable Set</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.AllocatableSet#getTarget <em>Target</em>}</li>
+ * </ul>
+ *
+ * @see rba.core.RBACorePackage#getAllocatableSet()
+ * @model abstract="true"
+ * @generated
+ */
+public interface AllocatableSet extends AbstractAllocatable {
+ /**
+ * Returns the value of the '<em><b>Target</b></em>' reference list.
+ * The list contents are of type {@link rba.core.AbstractAllocatable}.
+ * It is bidirectional and its opposite is '{@link rba.core.AbstractAllocatable#getAllocatableGroup <em>Allocatable Group</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Target</em>' reference list.
+ * @see rba.core.RBACorePackage#getAllocatableSet_Target()
+ * @see rba.core.AbstractAllocatable#getAllocatableGroup
+ * @model opposite="allocatableGroup"
+ * @generated
+ */
+ EList<AbstractAllocatable> getTarget();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model ordered="false"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='java.util.Set&lt;Allocatable&gt; allocatables = new java.util.LinkedHashSet&lt;Allocatable&gt;();\r\ngetTarget().forEach(allocatable -&gt; allocatables.addAll(allocatable.collectLeafAllocatable()));\r\nreturn new org.eclipse.emf.common.util.BasicEList&lt;Allocatable&gt;(allocatables);'"
+ * @generated
+ */
+ EList<Allocatable> collectLeafAllocatable();
+
+} // AllocatableSet
diff --git a/rba.model.core/src/rba/core/AllocatedContent.java b/rba.model.core/src/rba/core/AllocatedContent.java
new file mode 100644
index 0000000..6ed1413
--- /dev/null
+++ b/rba.model.core/src/rba/core/AllocatedContent.java
@@ -0,0 +1,41 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Allocated Content</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getAllocatedContent()
+ * @model
+ * @generated
+ */
+public interface AllocatedContent extends AllocatableOperator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".allocatedContent()\";'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='EList&lt;rba.core.Expression&gt; expressions = getOperand();\r\nif (!expressions.isEmpty() &amp;&amp; expressions.get(0) != null) {\r\n rba.core.Expression first = expressions.get(0);\r\n if ((first.getType() == ExpressionType.AREA) || (first.getType() == ExpressionType.SET_OF_AREA)) {\r\n return ExpressionType.CONTENT;\r\n } else if ((first.getType() == ExpressionType.ZONE) || (first.getType() == ExpressionType.SET_OF_ZONE)) {\r\n return ExpressionType.SOUND;\r\n }\r\n}\r\nreturn ExpressionType.VALUE;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+} // AllocatedContent
diff --git a/rba.model.core/src/rba/core/AndOperator.java b/rba.model.core/src/rba/core/AndOperator.java
new file mode 100644
index 0000000..26d4eb3
--- /dev/null
+++ b/rba.model.core/src/rba/core/AndOperator.java
@@ -0,0 +1,32 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>And Operator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getAndOperator()
+ * @model
+ * @generated
+ */
+public interface AndOperator extends LogicalOperator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"AND\";'"
+ * @generated
+ */
+ String getSymbol();
+
+} // AndOperator
diff --git a/rba.model.core/src/rba/core/ArbitrationPolicy.java b/rba.model.core/src/rba/core/ArbitrationPolicy.java
new file mode 100644
index 0000000..1add594
--- /dev/null
+++ b/rba.model.core/src/rba/core/ArbitrationPolicy.java
@@ -0,0 +1,292 @@
+/**
+ */
+package rba.core;
+
+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>Arbitration Policy</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @see rba.core.RBACorePackage#getArbitrationPolicy()
+ * @model
+ * @generated
+ */
+public enum ArbitrationPolicy implements Enumerator {
+ /**
+ * The '<em><b>DEFAULT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DEFAULT_VALUE
+ * @generated
+ * @ordered
+ */
+ DEFAULT(0, "DEFAULT", "DEFAULT"),
+
+ /**
+ * The '<em><b>FIRST COME FIRST</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FIRST_COME_FIRST_VALUE
+ * @generated
+ * @ordered
+ */
+ FIRST_COME_FIRST(4, "FIRST_COME_FIRST", "FIRST_COME_FIRST"),
+
+ /**
+ * The '<em><b>LAST COME FIRST</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LAST_COME_FIRST_VALUE
+ * @generated
+ * @ordered
+ */
+ LAST_COME_FIRST(1, "LAST_COME_FIRST", "LAST_COME_FIRST"),
+
+ /**
+ * The '<em><b>PRIORITY FIRST COME FIRST</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #PRIORITY_FIRST_COME_FIRST_VALUE
+ * @generated
+ * @ordered
+ */
+ PRIORITY_FIRST_COME_FIRST(5, "PRIORITY_FIRST_COME_FIRST", "PRIORITY_FIRST_COME_FIRST"),
+
+ /**
+ * The '<em><b>PRIORITY LAST COME FIRST</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #PRIORITY_LAST_COME_FIRST_VALUE
+ * @generated
+ * @ordered
+ */
+ PRIORITY_LAST_COME_FIRST(6, "PRIORITY_LAST_COME_FIRST", "PRIORITY_LAST_COME_FIRST");
+
+ /**
+ * The '<em><b>DEFAULT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @see #DEFAULT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DEFAULT_VALUE = 0;
+
+ /**
+ * The '<em><b>FIRST COME FIRST</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @see #FIRST_COME_FIRST
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int FIRST_COME_FIRST_VALUE = 4;
+
+ /**
+ * The '<em><b>LAST COME FIRST</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @see #LAST_COME_FIRST
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int LAST_COME_FIRST_VALUE = 1;
+
+ /**
+ * The '<em><b>PRIORITY FIRST COME FIRST</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @see #PRIORITY_FIRST_COME_FIRST
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int PRIORITY_FIRST_COME_FIRST_VALUE = 5;
+
+ /**
+ * The '<em><b>PRIORITY LAST COME FIRST</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @see #PRIORITY_LAST_COME_FIRST
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int PRIORITY_LAST_COME_FIRST_VALUE = 6;
+
+ /**
+ * An array of all the '<em><b>Arbitration Policy</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final ArbitrationPolicy[] VALUES_ARRAY = new ArbitrationPolicy[] { DEFAULT, FIRST_COME_FIRST,
+ LAST_COME_FIRST, PRIORITY_FIRST_COME_FIRST, PRIORITY_LAST_COME_FIRST, };
+
+ /**
+ * A public read-only list of all the '<em><b>Arbitration Policy</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<ArbitrationPolicy> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Arbitration Policy</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param literal the literal.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static ArbitrationPolicy get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ ArbitrationPolicy result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Arbitration Policy</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param name the name.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static ArbitrationPolicy getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ ArbitrationPolicy result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Arbitration Policy</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the integer value.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static ArbitrationPolicy get(int value) {
+ switch (value) {
+ case DEFAULT_VALUE:
+ return DEFAULT;
+ case FIRST_COME_FIRST_VALUE:
+ return FIRST_COME_FIRST;
+ case LAST_COME_FIRST_VALUE:
+ return LAST_COME_FIRST;
+ case PRIORITY_FIRST_COME_FIRST_VALUE:
+ return PRIORITY_FIRST_COME_FIRST;
+ case PRIORITY_LAST_COME_FIRST_VALUE:
+ return PRIORITY_LAST_COME_FIRST;
+ }
+ 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 ArbitrationPolicy(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;
+ }
+
+} //ArbitrationPolicy
diff --git a/rba.model.core/src/rba/core/ArbitrationPolicyExpression.java b/rba.model.core/src/rba/core/ArbitrationPolicyExpression.java
new file mode 100644
index 0000000..db3405b
--- /dev/null
+++ b/rba.model.core/src/rba/core/ArbitrationPolicyExpression.java
@@ -0,0 +1,80 @@
+/**
+ */
+package rba.core;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Arbitration Policy Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.ArbitrationPolicyExpression#getValue <em>Value</em>}</li>
+ * </ul>
+ *
+ * @see rba.core.RBACorePackage#getArbitrationPolicyExpression()
+ * @model
+ * @generated
+ */
+public interface ArbitrationPolicyExpression extends EnumExpression {
+ /**
+ * Returns the value of the '<em><b>Value</b></em>' attribute.
+ * The literals are from the enumeration {@link rba.core.ArbitrationPolicy}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Value</em>' attribute.
+ * @see rba.core.ArbitrationPolicy
+ * @see #setValue(ArbitrationPolicy)
+ * @see rba.core.RBACorePackage#getArbitrationPolicyExpression_Value()
+ * @model required="true"
+ * @generated
+ */
+ ArbitrationPolicy getValue();
+
+ /**
+ * Sets the value of the '{@link rba.core.ArbitrationPolicyExpression#getValue <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value</em>' attribute.
+ * @see rba.core.ArbitrationPolicy
+ * @see #getValue()
+ * @generated
+ */
+ void setValue(ArbitrationPolicy value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='if(value instanceof ArbitrationPolicy) {\r\n return value.getName();\r\n} else {\r\n return \"[Invalid_Expression]\";\r\n}'"
+ * @generated
+ */
+ String getExpressionText();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation" required="true"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return value;'"
+ * @generated
+ */
+ Enumerator getExpressionValue();
+
+} // ArbitrationPolicyExpression
diff --git a/rba.model.core/src/rba/core/ArithmeticOperator.java b/rba.model.core/src/rba/core/ArithmeticOperator.java
new file mode 100644
index 0000000..07fcfd3
--- /dev/null
+++ b/rba.model.core/src/rba/core/ArithmeticOperator.java
@@ -0,0 +1,44 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Arithmetic Operator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getArithmeticOperator()
+ * @model abstract="true"
+ * @generated
+ */
+public interface ArithmeticOperator extends Operator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.VALUE;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nEList&lt;rba.core.Expression&gt; expressions = getOperand();\r\nexpressionText.append(\"(\");\r\nfor (int i = 0; i &lt; expressions.size(); i++) {\r\n rba.core.Expression expression = expressions.get(i);\r\n expressionText.append(expression.getExpressionText());\r\n if (i == expressions.size() - 1) {\r\n expressionText.append(\")\");\r\n } else {\r\n expressionText.append(\" \");\r\n expressionText.append(getSymbol());\r\n expressionText.append(\" \");\r\n }\r\n}\r\nreturn expressionText.toString();'"
+ * @generated
+ */
+ String getExpressionText();
+
+} // ArithmeticOperator
diff --git a/rba.model.core/src/rba/core/ComparisonAnd.java b/rba.model.core/src/rba/core/ComparisonAnd.java
new file mode 100644
index 0000000..5719757
--- /dev/null
+++ b/rba.model.core/src/rba/core/ComparisonAnd.java
@@ -0,0 +1,44 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Comparison And</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getComparisonAnd()
+ * @model
+ * @generated
+ */
+public interface ComparisonAnd extends ComparisonOperator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"and\";'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nEList&lt;rba.core.Expression&gt; expressions = getOperand();\r\nexpressionText.append(\"(\");\r\nfor (int i = 0; i &lt; expressions.size(); i++) {\r\n rba.core.Expression expression = expressions.get(i);\r\n expressionText.append(expression.getExpressionText());\r\n if (i == expressions.size() - 1) {\r\n expressionText.append(\")\");\r\n } else {\r\n expressionText.append(\" \");\r\n expressionText.append(getSymbol());\r\n expressionText.append(\" \");\r\n }\r\n}\r\nreturn expressionText.toString();'"
+ * @generated
+ */
+ String getExpressionText();
+
+} // ComparisonAnd
diff --git a/rba.model.core/src/rba/core/ComparisonOperator.java b/rba.model.core/src/rba/core/ComparisonOperator.java
new file mode 100644
index 0000000..5c89597
--- /dev/null
+++ b/rba.model.core/src/rba/core/ComparisonOperator.java
@@ -0,0 +1,44 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Comparison Operator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getComparisonOperator()
+ * @model abstract="true"
+ * @generated
+ */
+public interface ComparisonOperator extends Operator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.VALUE;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nEList&lt;rba.core.Expression&gt; expressions = getOperand();\r\nexpressionText.append(getSymbol());\r\nexpressionText.append(expressions.size() &gt; 0 ? expressions.get(0).getExpressionText() : \"[Invalid_Expression]\");\r\nreturn expressionText.toString();'"
+ * @generated
+ */
+ String getExpressionText();
+
+} // ComparisonOperator
diff --git a/rba.model.core/src/rba/core/ComplexExpression.java b/rba.model.core/src/rba/core/ComplexExpression.java
new file mode 100644
index 0000000..77478ba
--- /dev/null
+++ b/rba.model.core/src/rba/core/ComplexExpression.java
@@ -0,0 +1,87 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Complex Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.ComplexExpression#getOtherExpression <em>Other Expression</em>}</li>
+ * </ul>
+ *
+ * @see rba.core.RBACorePackage#getComplexExpression()
+ * @model
+ * @generated
+ */
+public interface ComplexExpression extends Expression, SugarExpressionBase {
+ /**
+ * Returns the value of the '<em><b>Other Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Other Expression</em>' containment reference.
+ * @see #setOtherExpression(Expression)
+ * @see rba.core.RBACorePackage#getComplexExpression_OtherExpression()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ Expression getOtherExpression();
+
+ /**
+ * Sets the value of the '{@link rba.core.ComplexExpression#getOtherExpression <em>Other Expression</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Other Expression</em>' containment reference.
+ * @see #getOtherExpression()
+ * @generated
+ */
+ void setOtherExpression(Expression value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return otherExpression != null ? otherExpression.getExpressionText() : \"[Invalid_Expression]\";'"
+ * @generated
+ */
+ String getExpressionText();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='if (otherExpression != null) {\r\n return otherExpression.getType();\r\n} else {\r\n return ExpressionType.VALUE;\r\n}'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return getUnderlyingType();'"
+ * @generated
+ */
+ ExpressionType getType();
+
+} // ComplexExpression
diff --git a/rba.model.core/src/rba/core/Constraint.java b/rba.model.core/src/rba/core/Constraint.java
new file mode 100644
index 0000000..b58dc40
--- /dev/null
+++ b/rba.model.core/src/rba/core/Constraint.java
@@ -0,0 +1,79 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Constraint</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.Constraint#isRuntime <em>Runtime</em>}</li>
+ * </ul>
+ *
+ * @see rba.core.RBACorePackage#getConstraint()
+ * @model
+ * @generated
+ */
+public interface Constraint extends AbstractConstraint {
+ /**
+ * Returns the value of the '<em><b>Runtime</b></em>' attribute.
+ * The default value is <code>"true"</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Runtime</em>' attribute.
+ * @see #isSetRuntime()
+ * @see #unsetRuntime()
+ * @see #setRuntime(boolean)
+ * @see rba.core.RBACorePackage#getConstraint_Runtime()
+ * @model default="true" unsettable="true" required="true"
+ * @generated
+ */
+ boolean isRuntime();
+
+ /**
+ * Sets the value of the '{@link rba.core.Constraint#isRuntime <em>Runtime</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Runtime</em>' attribute.
+ * @see #isSetRuntime()
+ * @see #unsetRuntime()
+ * @see #isRuntime()
+ * @generated
+ */
+ void setRuntime(boolean value);
+
+ /**
+ * Unsets the value of the '{@link rba.core.Constraint#isRuntime <em>Runtime</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetRuntime()
+ * @see #isRuntime()
+ * @see #setRuntime(boolean)
+ * @generated
+ */
+ void unsetRuntime();
+
+ /**
+ * Returns whether the value of the '{@link rba.core.Constraint#isRuntime <em>Runtime</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Runtime</em>' attribute is set.
+ * @see #unsetRuntime()
+ * @see #isRuntime()
+ * @see #setRuntime(boolean)
+ * @generated
+ */
+ boolean isSetRuntime();
+
+} // Constraint
diff --git a/rba.model.core/src/rba/core/Content.java b/rba.model.core/src/rba/core/Content.java
new file mode 100644
index 0000000..e9591cb
--- /dev/null
+++ b/rba.model.core/src/rba/core/Content.java
@@ -0,0 +1,85 @@
+/**
+ */
+package rba.core;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Content</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.Content#getLoserType <em>Loser Type</em>}</li>
+ * <li>{@link rba.core.Content#getStates <em>States</em>}</li>
+ * </ul>
+ *
+ * @see rba.core.RBACorePackage#getContent()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Content extends AbstractContent {
+ /**
+ * Returns the value of the '<em><b>Loser Type</b></em>' attribute.
+ * The default value is <code>"NEVER_GIVEUP"</code>.
+ * The literals are from the enumeration {@link rba.core.LoserType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Loser Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Loser Type</em>' attribute.
+ * @see rba.core.LoserType
+ * @see #setLoserType(LoserType)
+ * @see rba.core.RBACorePackage#getContent_LoserType()
+ * @model default="NEVER_GIVEUP"
+ * @generated
+ */
+ LoserType getLoserType();
+
+ /**
+ * Sets the value of the '{@link rba.core.Content#getLoserType <em>Loser Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Loser Type</em>' attribute.
+ * @see rba.core.LoserType
+ * @see #getLoserType()
+ * @generated
+ */
+ void setLoserType(LoserType value);
+
+ /**
+ * Returns the value of the '<em><b>States</b></em>' containment reference list.
+ * The list contents are of type {@link rba.core.ContentState}.
+ * It is bidirectional and its opposite is '{@link rba.core.ContentState#getOwner <em>Owner</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>States</em>' containment reference list.
+ * @see rba.core.RBACorePackage#getContent_States()
+ * @see rba.core.ContentState#getOwner
+ * @model opposite="owner" containment="true"
+ * @generated
+ */
+ EList<ContentState> getStates();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model ordered="false"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='java.util.Set&lt;Content&gt; contents = new java.util.HashSet&lt;Content&gt;();\r\ncontents.add(this);\r\nreturn new org.eclipse.emf.common.util.BasicEList&lt;Content&gt;(contents);'"
+ * @generated
+ */
+ EList<Content> collectLeafContents();
+
+} // Content
diff --git a/rba.model.core/src/rba/core/ContentOperator.java b/rba.model.core/src/rba/core/ContentOperator.java
new file mode 100644
index 0000000..d731ee6
--- /dev/null
+++ b/rba.model.core/src/rba/core/ContentOperator.java
@@ -0,0 +1,32 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Content Operator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getContentOperator()
+ * @model abstract="true"
+ * @generated
+ */
+public interface ContentOperator extends Operator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nEList&lt;rba.core.Expression&gt; expressions = getOperand();\r\nexpressionText.append(expressions.size() &gt; 0 ? expressions.get(0).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(getSymbol());\r\nreturn expressionText.toString();'"
+ * @generated
+ */
+ String getExpressionText();
+
+} // ContentOperator
diff --git a/rba.model.core/src/rba/core/ContentSet.java b/rba.model.core/src/rba/core/ContentSet.java
new file mode 100644
index 0000000..ed23aa5
--- /dev/null
+++ b/rba.model.core/src/rba/core/ContentSet.java
@@ -0,0 +1,55 @@
+/**
+ */
+package rba.core;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Content Set</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.ContentSet#getTarget <em>Target</em>}</li>
+ * </ul>
+ *
+ * @see rba.core.RBACorePackage#getContentSet()
+ * @model abstract="true"
+ * @generated
+ */
+public interface ContentSet extends AbstractContent {
+ /**
+ * Returns the value of the '<em><b>Target</b></em>' reference list.
+ * The list contents are of type {@link rba.core.AbstractContent}.
+ * It is bidirectional and its opposite is '{@link rba.core.AbstractContent#getContentGroup <em>Content Group</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Target</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Target</em>' reference list.
+ * @see rba.core.RBACorePackage#getContentSet_Target()
+ * @see rba.core.AbstractContent#getContentGroup
+ * @model opposite="contentGroup"
+ * @generated
+ */
+ EList<AbstractContent> getTarget();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model ordered="false"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='java.util.Set&lt;Content&gt; contents = new java.util.LinkedHashSet&lt;Content&gt;();\r\ngetTarget().forEach(content -&gt; contents.addAll(content.collectLeafContents()));\r\nreturn new org.eclipse.emf.common.util.BasicEList&lt;Content&gt;(contents);'"
+ * @generated
+ */
+ EList<Content> collectLeafContents();
+
+} // ContentSet
diff --git a/rba.model.core/src/rba/core/ContentState.java b/rba.model.core/src/rba/core/ContentState.java
new file mode 100644
index 0000000..2cea042
--- /dev/null
+++ b/rba.model.core/src/rba/core/ContentState.java
@@ -0,0 +1,79 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Content State</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.ContentState#getValue <em>Value</em>}</li>
+ * <li>{@link rba.core.ContentState#getOwner <em>Owner</em>}</li>
+ * </ul>
+ *
+ * @see rba.core.RBACorePackage#getContentState()
+ * @model abstract="true"
+ * @generated
+ */
+public interface ContentState extends RuleObject {
+ /**
+ * Returns the value of the '<em><b>Value</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Value</em>' containment reference.
+ * @see #setValue(Expression)
+ * @see rba.core.RBACorePackage#getContentState_Value()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ Expression getValue();
+
+ /**
+ * Sets the value of the '{@link rba.core.ContentState#getValue <em>Value</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value</em>' containment reference.
+ * @see #getValue()
+ * @generated
+ */
+ void setValue(Expression value);
+
+ /**
+ * Returns the value of the '<em><b>Owner</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link rba.core.Content#getStates <em>States</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Owner</em>' container reference.
+ * @see #setOwner(Content)
+ * @see rba.core.RBACorePackage#getContentState_Owner()
+ * @see rba.core.Content#getStates
+ * @model opposite="states" transient="false"
+ * @generated
+ */
+ Content getOwner();
+
+ /**
+ * Sets the value of the '{@link rba.core.ContentState#getOwner <em>Owner</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Owner</em>' container reference.
+ * @see #getOwner()
+ * @generated
+ */
+ void setOwner(Content value);
+
+} // ContentState
diff --git a/rba.model.core/src/rba/core/ContentStateOperator.java b/rba.model.core/src/rba/core/ContentStateOperator.java
new file mode 100644
index 0000000..cbc84a5
--- /dev/null
+++ b/rba.model.core/src/rba/core/ContentStateOperator.java
@@ -0,0 +1,32 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Content State Operator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getContentStateOperator()
+ * @model abstract="true"
+ * @generated
+ */
+public interface ContentStateOperator extends Operator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nEList&lt;rba.core.Expression&gt; expressions = getOperand();\r\nexpressionText.append(expressions.size() &gt; 0 ? expressions.get(0).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(getSymbol());\r\nreturn expressionText.toString();'"
+ * @generated
+ */
+ String getExpressionText();
+
+} // ContentStateOperator
diff --git a/rba.model.core/src/rba/core/ContentValue.java b/rba.model.core/src/rba/core/ContentValue.java
new file mode 100644
index 0000000..9faaaa9
--- /dev/null
+++ b/rba.model.core/src/rba/core/ContentValue.java
@@ -0,0 +1,44 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Content Value</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getContentValue()
+ * @model
+ * @generated
+ */
+public interface ContentValue extends AllocatableOperator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".contentValue()\";'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.VALUE;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+} // ContentValue
diff --git a/rba.model.core/src/rba/core/EnumExpression.java b/rba.model.core/src/rba/core/EnumExpression.java
new file mode 100644
index 0000000..0b5a0c3
--- /dev/null
+++ b/rba.model.core/src/rba/core/EnumExpression.java
@@ -0,0 +1,57 @@
+/**
+ */
+package rba.core;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Enum Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getEnumExpression()
+ * @model abstract="true"
+ * @generated
+ */
+public interface EnumExpression extends Expression {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.ENUM;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @model kind="operation" required="true"
+ * @generated
+ */
+ Enumerator getExpressionValue();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return getUnderlyingType();'"
+ * @generated
+ */
+ ExpressionType getType();
+
+} // EnumExpression
diff --git a/rba.model.core/src/rba/core/EqualToOperator.java b/rba.model.core/src/rba/core/EqualToOperator.java
new file mode 100644
index 0000000..1aaf3c8
--- /dev/null
+++ b/rba.model.core/src/rba/core/EqualToOperator.java
@@ -0,0 +1,32 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Equal To Operator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getEqualToOperator()
+ * @model
+ * @generated
+ */
+public interface EqualToOperator extends ComparisonOperator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"=\";'"
+ * @generated
+ */
+ String getSymbol();
+
+} // EqualToOperator
diff --git a/rba.model.core/src/rba/core/ExistsOperator.java b/rba.model.core/src/rba/core/ExistsOperator.java
new file mode 100644
index 0000000..96bfe21
--- /dev/null
+++ b/rba.model.core/src/rba/core/ExistsOperator.java
@@ -0,0 +1,56 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Exists Operator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getExistsOperator()
+ * @model
+ * @generated
+ */
+public interface ExistsOperator extends LambdaContext {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nEList&lt;rba.core.Expression&gt; expressions = getOperand();\r\nrba.core.LambdaExpression lambda = getLambda();\r\nexpressionText.append(getSymbol());\r\nexpressionText.append(\" \");\r\nexpressionText.append(expressions.size() &gt; 0 ? expressions.get(0).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(\" \");\r\nexpressionText.append(lambda != null ? lambda.getExpressionText() : \"[Invalid_Expression]\");\r\nreturn expressionText.toString();'"
+ * @generated
+ */
+ String getExpressionText();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"Exists\";'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.BOOLEAN;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+} // ExistsOperator
diff --git a/rba.model.core/src/rba/core/Expression.java b/rba.model.core/src/rba/core/Expression.java
new file mode 100644
index 0000000..ab0731f
--- /dev/null
+++ b/rba.model.core/src/rba/core/Expression.java
@@ -0,0 +1,149 @@
+/**
+ */
+package rba.core;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.Expression#getType <em>Type</em>}</li>
+ * <li>{@link rba.core.Expression#getExpression <em>Expression</em>}</li>
+ * <li>{@link rba.core.Expression#getLetStatements <em>Let Statements</em>}</li>
+ * </ul>
+ *
+ * @see rba.core.RBACorePackage#getExpression()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Expression extends EObject {
+ /**
+ * Returns the value of the '<em><b>Type</b></em>' attribute.
+ * The literals are from the enumeration {@link rba.core.ExpressionType}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Type</em>' attribute.
+ * @see rba.core.ExpressionType
+ * @see #isSetType()
+ * @see rba.core.RBACorePackage#getExpression_Type()
+ * @model unsettable="true" changeable="false" volatile="true" derived="true"
+ * @generated
+ */
+ ExpressionType getType();
+
+ /**
+ * Returns whether the value of the '{@link rba.core.Expression#getType <em>Type</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Type</em>' attribute is set.
+ * @see #getType()
+ * @generated
+ */
+ boolean isSetType();
+
+ /**
+ * Returns the value of the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Expression</em>' attribute.
+ * @see #isSetExpression()
+ * @see #unsetExpression()
+ * @see #setExpression(String)
+ * @see rba.core.RBACorePackage#getExpression_Expression()
+ * @model unsettable="true" volatile="true" derived="true"
+ * @generated
+ */
+ String getExpression();
+
+ /**
+ * Sets the value of the '{@link rba.core.Expression#getExpression <em>Expression</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Expression</em>' attribute.
+ * @see #isSetExpression()
+ * @see #unsetExpression()
+ * @see #getExpression()
+ * @generated
+ */
+ void setExpression(String value);
+
+ /**
+ * Unsets the value of the '{@link rba.core.Expression#getExpression <em>Expression</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetExpression()
+ * @see #getExpression()
+ * @see #setExpression(String)
+ * @generated
+ */
+ void unsetExpression();
+
+ /**
+ * Returns whether the value of the '{@link rba.core.Expression#getExpression <em>Expression</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Expression</em>' attribute is set.
+ * @see #unsetExpression()
+ * @see #getExpression()
+ * @see #setExpression(String)
+ * @generated
+ */
+ boolean isSetExpression();
+
+ /**
+ * Returns the value of the '<em><b>Let Statements</b></em>' containment reference list.
+ * The list contents are of type {@link rba.core.LetStatement}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Let 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>Let Statements</em>' containment reference list.
+ * @see rba.core.RBACorePackage#getExpression_LetStatements()
+ * @model containment="true"
+ * @generated
+ */
+ EList<LetStatement> getLetStatements();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * @generated
+ */
+ String getExpressionText();
+
+} // Expression
diff --git a/rba.model.core/src/rba/core/ExpressionType.java b/rba.model.core/src/rba/core/ExpressionType.java
new file mode 100644
index 0000000..bfdbf9c
--- /dev/null
+++ b/rba.model.core/src/rba/core/ExpressionType.java
@@ -0,0 +1,595 @@
+/**
+ */
+package rba.core;
+
+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>Expression Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @see rba.core.RBACorePackage#getExpressionType()
+ * @model
+ * @generated
+ */
+public enum ExpressionType implements Enumerator {
+ /**
+ * The '<em><b>VALUE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #VALUE_VALUE
+ * @generated
+ * @ordered
+ */
+ VALUE(0, "VALUE", "VALUE"),
+
+ /**
+ * The '<em><b>BOOLEAN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #BOOLEAN_VALUE
+ * @generated
+ * @ordered
+ */
+ BOOLEAN(1, "BOOLEAN", "BOOLEAN"),
+
+ /**
+ * The '<em><b>AREA</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #AREA_VALUE
+ * @generated
+ * @ordered
+ */
+ AREA(2, "AREA", "AREA"),
+
+ /**
+ * The '<em><b>CONTENT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #CONTENT_VALUE
+ * @generated
+ * @ordered
+ */
+ CONTENT(3, "CONTENT", "CONTENT"),
+
+ /**
+ * The '<em><b>SET OF AREA</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SET_OF_AREA_VALUE
+ * @generated
+ * @ordered
+ */
+ SET_OF_AREA(4, "SET_OF_AREA", "SET_OF_AREA"),
+
+ /**
+ * The '<em><b>SET OF CONTENT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SET_OF_CONTENT_VALUE
+ * @generated
+ * @ordered
+ */
+ SET_OF_CONTENT(5, "SET_OF_CONTENT", "SET_OF_CONTENT"),
+
+ /**
+ * The '<em><b>LAMBDA</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LAMBDA_VALUE
+ * @generated
+ * @ordered
+ */
+ LAMBDA(6, "LAMBDA", "LAMBDA"),
+
+ /**
+ * The '<em><b>SCENE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SCENE_VALUE
+ * @generated
+ * @ordered
+ */
+ SCENE(7, "SCENE", "SCENE"),
+
+ /**
+ * The '<em><b>ZONE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ZONE_VALUE
+ * @generated
+ * @ordered
+ */
+ ZONE(8, "ZONE", "ZONE"),
+
+ /**
+ * The '<em><b>SET OF ZONE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SET_OF_ZONE_VALUE
+ * @generated
+ * @ordered
+ */
+ SET_OF_ZONE(9, "SET_OF_ZONE", "SET_OF_ZONE"),
+
+ /**
+ * The '<em><b>SOUND</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SOUND_VALUE
+ * @generated
+ * @ordered
+ */
+ SOUND(10, "SOUND", "SOUND"),
+
+ /**
+ * The '<em><b>SET OF SOUND</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SET_OF_SOUND_VALUE
+ * @generated
+ * @ordered
+ */
+ SET_OF_SOUND(11, "SET_OF_SOUND", "SET_OF_SOUND"),
+
+ /**
+ * The '<em><b>PROPERTY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #PROPERTY_VALUE
+ * @generated
+ * @ordered
+ */
+ PROPERTY(14, "PROPERTY", "PROPERTY"),
+
+ /**
+ * The '<em><b>CONTENT STATE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #CONTENT_STATE_VALUE
+ * @generated
+ * @ordered
+ */
+ CONTENT_STATE(17, "CONTENT_STATE", "CONTENT_STATE"),
+
+ /**
+ * The '<em><b>ENUM</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ENUM_VALUE
+ * @generated
+ * @ordered
+ */
+ ENUM(21, "ENUM", "ENUM"),
+
+ /**
+ * The '<em><b>NULL</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #NULL_VALUE
+ * @generated
+ * @ordered
+ */
+ NULL(23, "NULL", "NULL");
+
+ /**
+ * The '<em><b>VALUE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>VALUE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #VALUE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int VALUE_VALUE = 0;
+
+ /**
+ * The '<em><b>BOOLEAN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>BOOLEAN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #BOOLEAN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int BOOLEAN_VALUE = 1;
+
+ /**
+ * The '<em><b>AREA</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>AREA</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #AREA
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int AREA_VALUE = 2;
+
+ /**
+ * The '<em><b>CONTENT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>CONTENT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #CONTENT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int CONTENT_VALUE = 3;
+
+ /**
+ * The '<em><b>SET OF AREA</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SET OF AREA</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SET_OF_AREA
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SET_OF_AREA_VALUE = 4;
+
+ /**
+ * The '<em><b>SET OF CONTENT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SET OF CONTENT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SET_OF_CONTENT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SET_OF_CONTENT_VALUE = 5;
+
+ /**
+ * The '<em><b>LAMBDA</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>LAMBDA</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #LAMBDA
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int LAMBDA_VALUE = 6;
+
+ /**
+ * The '<em><b>SCENE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SCENE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SCENE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SCENE_VALUE = 7;
+
+ /**
+ * The '<em><b>ZONE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ZONE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ZONE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ZONE_VALUE = 8;
+
+ /**
+ * The '<em><b>SET OF ZONE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SET OF ZONE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SET_OF_ZONE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SET_OF_ZONE_VALUE = 9;
+
+ /**
+ * The '<em><b>SOUND</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SOUND</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SOUND
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SOUND_VALUE = 10;
+
+ /**
+ * The '<em><b>SET OF SOUND</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SET OF SOUND</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SET_OF_SOUND
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SET_OF_SOUND_VALUE = 11;
+
+ /**
+ * The '<em><b>PROPERTY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>PROPERTY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #PROPERTY
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int PROPERTY_VALUE = 14;
+
+ /**
+ * The '<em><b>CONTENT STATE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>CONTENT STATE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #CONTENT_STATE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int CONTENT_STATE_VALUE = 17;
+
+ /**
+ * The '<em><b>ENUM</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ENUM</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ENUM
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ENUM_VALUE = 21;
+
+ /**
+ * The '<em><b>NULL</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>NULL</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #NULL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int NULL_VALUE = 23;
+
+ /**
+ * An array of all the '<em><b>Expression Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final ExpressionType[] VALUES_ARRAY = new ExpressionType[] { VALUE, BOOLEAN, AREA, CONTENT,
+ SET_OF_AREA, SET_OF_CONTENT, LAMBDA, SCENE, ZONE, SET_OF_ZONE, SOUND, SET_OF_SOUND, PROPERTY, CONTENT_STATE,
+ ENUM, NULL, };
+
+ /**
+ * A public read-only list of all the '<em><b>Expression Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<ExpressionType> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Expression Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param literal the literal.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static ExpressionType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ ExpressionType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Expression Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param name the name.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static ExpressionType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ ExpressionType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Expression Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the integer value.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static ExpressionType get(int value) {
+ switch (value) {
+ case VALUE_VALUE:
+ return VALUE;
+ case BOOLEAN_VALUE:
+ return BOOLEAN;
+ case AREA_VALUE:
+ return AREA;
+ case CONTENT_VALUE:
+ return CONTENT;
+ case SET_OF_AREA_VALUE:
+ return SET_OF_AREA;
+ case SET_OF_CONTENT_VALUE:
+ return SET_OF_CONTENT;
+ case LAMBDA_VALUE:
+ return LAMBDA;
+ case SCENE_VALUE:
+ return SCENE;
+ case ZONE_VALUE:
+ return ZONE;
+ case SET_OF_ZONE_VALUE:
+ return SET_OF_ZONE;
+ case SOUND_VALUE:
+ return SOUND;
+ case SET_OF_SOUND_VALUE:
+ return SET_OF_SOUND;
+ case PROPERTY_VALUE:
+ return PROPERTY;
+ case CONTENT_STATE_VALUE:
+ return CONTENT_STATE;
+ case ENUM_VALUE:
+ return ENUM;
+ case NULL_VALUE:
+ return NULL;
+ }
+ 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 ExpressionType(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;
+ }
+
+} //ExpressionType
diff --git a/rba.model.core/src/rba/core/ForAllOperator.java b/rba.model.core/src/rba/core/ForAllOperator.java
new file mode 100644
index 0000000..e20e74b
--- /dev/null
+++ b/rba.model.core/src/rba/core/ForAllOperator.java
@@ -0,0 +1,56 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>For All Operator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getForAllOperator()
+ * @model
+ * @generated
+ */
+public interface ForAllOperator extends LambdaContext {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nEList&lt;rba.core.Expression&gt; expressions = getOperand();\r\nrba.core.LambdaExpression lambda = getLambda();\r\nexpressionText.append(getSymbol());\r\nexpressionText.append(\" \");\r\nexpressionText.append(expressions.size() &gt; 0 ? expressions.get(0).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(\" \");\r\nexpressionText.append(lambda != null ? lambda.getExpressionText() : \"[Invalid_Expression]\");\r\nreturn expressionText.toString();'"
+ * @generated
+ */
+ String getExpressionText();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"For All\";'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='rba.core.LambdaExpression lambda = getLambda();\r\nif (lambda != null &amp;&amp; lambda.getBodyText() != null) {\r\nreturn lambda.getBodyText().getUnderlyingType();\r\n}\r\nreturn ExpressionType.BOOLEAN;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+} // ForAllOperator
diff --git a/rba.model.core/src/rba/core/GetAllocatables.java b/rba.model.core/src/rba/core/GetAllocatables.java
new file mode 100644
index 0000000..d34d7ff
--- /dev/null
+++ b/rba.model.core/src/rba/core/GetAllocatables.java
@@ -0,0 +1,44 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Get Allocatables</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getGetAllocatables()
+ * @model
+ * @generated
+ */
+public interface GetAllocatables extends ContentOperator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".allocatables()\";'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='EList&lt;rba.core.Expression&gt; expressions = getOperand();\r\nif (!expressions.isEmpty() &amp;&amp; expressions.get(0) != null) {\r\n rba.core.Expression first = expressions.get(0);\r\n if (first.getType() == ExpressionType.CONTENT) {\r\n return ExpressionType.SET_OF_AREA;\r\n } else if (first.getType() == ExpressionType.SOUND) {\r\n return ExpressionType.SET_OF_ZONE;\r\n }\r\n}\r\nreturn ExpressionType.VALUE;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+} // GetAllocatables
diff --git a/rba.model.core/src/rba/core/GetContentsList.java b/rba.model.core/src/rba/core/GetContentsList.java
new file mode 100644
index 0000000..fe51b2c
--- /dev/null
+++ b/rba.model.core/src/rba/core/GetContentsList.java
@@ -0,0 +1,44 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Get Contents List</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getGetContentsList()
+ * @model
+ * @generated
+ */
+public interface GetContentsList extends AllocatableOperator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".contentsList()\";'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='EList&lt;rba.core.Expression&gt; expressions = getOperand();\r\nif (!expressions.isEmpty() &amp;&amp; expressions.get(0) != null) {\r\n rba.core.Expression first = expressions.get(0);\r\n if (first.getType() == ExpressionType.AREA) {\r\n return ExpressionType.SET_OF_CONTENT;\r\n } else if (first.getType() == ExpressionType.ZONE) {\r\n return ExpressionType.SET_OF_SOUND;\r\n }\r\n}\r\nreturn ExpressionType.VALUE;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+} // GetContentsList
diff --git a/rba.model.core/src/rba/core/GetProperty.java b/rba.model.core/src/rba/core/GetProperty.java
new file mode 100644
index 0000000..7ca52d0
--- /dev/null
+++ b/rba.model.core/src/rba/core/GetProperty.java
@@ -0,0 +1,44 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Get Property</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getGetProperty()
+ * @model
+ * @generated
+ */
+public interface GetProperty extends PropertyOperator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".get()\";'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.VALUE;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+} // GetProperty
diff --git a/rba.model.core/src/rba/core/GetState.java b/rba.model.core/src/rba/core/GetState.java
new file mode 100644
index 0000000..78899f4
--- /dev/null
+++ b/rba.model.core/src/rba/core/GetState.java
@@ -0,0 +1,34 @@
+/**
+ */
+package rba.core;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Get State</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getGetState()
+ * @model
+ * @generated
+ */
+public interface GetState extends EObject {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".state()\";'"
+ * @generated
+ */
+ String getSymbol();
+
+} // GetState
diff --git a/rba.model.core/src/rba/core/GreaterThanOperator.java b/rba.model.core/src/rba/core/GreaterThanOperator.java
new file mode 100644
index 0000000..eb265f9
--- /dev/null
+++ b/rba.model.core/src/rba/core/GreaterThanOperator.java
@@ -0,0 +1,32 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Greater Than Operator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getGreaterThanOperator()
+ * @model
+ * @generated
+ */
+public interface GreaterThanOperator extends ComparisonOperator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"&gt;\";'"
+ * @generated
+ */
+ String getSymbol();
+
+} // GreaterThanOperator
diff --git a/rba.model.core/src/rba/core/HasBeenDisplayed.java b/rba.model.core/src/rba/core/HasBeenDisplayed.java
new file mode 100644
index 0000000..8c4f036
--- /dev/null
+++ b/rba.model.core/src/rba/core/HasBeenDisplayed.java
@@ -0,0 +1,44 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Has Been Displayed</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getHasBeenDisplayed()
+ * @model
+ * @generated
+ */
+public interface HasBeenDisplayed extends ContentOperator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".hasBeenDisplayed()\";'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.BOOLEAN;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+} // HasBeenDisplayed
diff --git a/rba.model.core/src/rba/core/HasComeEarlierThan.java b/rba.model.core/src/rba/core/HasComeEarlierThan.java
new file mode 100644
index 0000000..5a3546d
--- /dev/null
+++ b/rba.model.core/src/rba/core/HasComeEarlierThan.java
@@ -0,0 +1,50 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Has Come Earlier Than</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getHasComeEarlierThan()
+ * @model
+ * @generated
+ */
+public interface HasComeEarlierThan extends ContentOperator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".hasComeEarlierThan\"; //$NON-NLS-1$'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.BOOLEAN;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nEList&lt;rba.core.Expression&gt; expressions = getOperand();\r\nexpressionText.append(expressions.size() &gt; 0 ? expressions.get(0).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(getSymbol());\r\nexpressionText.append(\"(\");\r\nexpressionText.append(expressions.size() &gt; 1 ? expressions.get(1).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(\")\");\r\nreturn expressionText.toString();'"
+ * @generated
+ */
+ String getExpressionText();
+
+} // HasComeEarlierThan
diff --git a/rba.model.core/src/rba/core/HasComeLaterThan.java b/rba.model.core/src/rba/core/HasComeLaterThan.java
new file mode 100644
index 0000000..4f5c19a
--- /dev/null
+++ b/rba.model.core/src/rba/core/HasComeLaterThan.java
@@ -0,0 +1,50 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Has Come Later Than</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getHasComeLaterThan()
+ * @model
+ * @generated
+ */
+public interface HasComeLaterThan extends ContentOperator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".hasComeLaterThan\"; //$NON-NLS-1$'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.BOOLEAN;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nEList&lt;rba.core.Expression&gt; expressions = getOperand();\r\nexpressionText.append(expressions.size() &gt; 0 ? expressions.get(0).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(getSymbol());\r\nexpressionText.append(\"(\");\r\nexpressionText.append(expressions.size() &gt; 1 ? expressions.get(1).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(\")\");\r\nreturn expressionText.toString();'"
+ * @generated
+ */
+ String getExpressionText();
+
+} // HasComeLaterThan
diff --git a/rba.model.core/src/rba/core/IfActionOperator.java b/rba.model.core/src/rba/core/IfActionOperator.java
new file mode 100644
index 0000000..346fd65
--- /dev/null
+++ b/rba.model.core/src/rba/core/IfActionOperator.java
@@ -0,0 +1,44 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>If Action Operator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getIfActionOperator()
+ * @model
+ * @generated
+ */
+public interface IfActionOperator extends ActionOperator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"=&gt;\";'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nEList&lt;rba.core.Expression&gt; expressions = getOperand();\r\nexpressionText.append(\"(\");\r\nfor (int i = 0; i &lt; expressions.size(); i++) {\r\n rba.core.Expression expression = expressions.get(i);\r\n expressionText.append(expression.getExpressionText());\r\n if (i == expressions.size() - 1) {\r\n expressionText.append(\")\");\r\n } else {\r\n expressionText.append(\" \");\r\n expressionText.append(getSymbol());\r\n expressionText.append(\" \");\r\n }\r\n}\r\nreturn expressionText.toString();'"
+ * @generated
+ */
+ String getExpressionText();
+
+} // IfActionOperator
diff --git a/rba.model.core/src/rba/core/IfStatement.java b/rba.model.core/src/rba/core/IfStatement.java
new file mode 100644
index 0000000..932f1e3
--- /dev/null
+++ b/rba.model.core/src/rba/core/IfStatement.java
@@ -0,0 +1,127 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>If Statement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.IfStatement#getCondition <em>Condition</em>}</li>
+ * <li>{@link rba.core.IfStatement#getThenExpression <em>Then Expression</em>}</li>
+ * <li>{@link rba.core.IfStatement#getElseExpression <em>Else Expression</em>}</li>
+ * </ul>
+ *
+ * @see rba.core.RBACorePackage#getIfStatement()
+ * @model
+ * @generated
+ */
+public interface IfStatement extends Expression {
+ /**
+ * Returns the value of the '<em><b>Condition</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Condition</em>' containment reference.
+ * @see #setCondition(Expression)
+ * @see rba.core.RBACorePackage#getIfStatement_Condition()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ Expression getCondition();
+
+ /**
+ * Sets the value of the '{@link rba.core.IfStatement#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>Then Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Then Expression</em>' containment reference.
+ * @see #setThenExpression(Expression)
+ * @see rba.core.RBACorePackage#getIfStatement_ThenExpression()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ Expression getThenExpression();
+
+ /**
+ * Sets the value of the '{@link rba.core.IfStatement#getThenExpression <em>Then Expression</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Then Expression</em>' containment reference.
+ * @see #getThenExpression()
+ * @generated
+ */
+ void setThenExpression(Expression value);
+
+ /**
+ * Returns the value of the '<em><b>Else Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Else Expression</em>' containment reference.
+ * @see #setElseExpression(Expression)
+ * @see rba.core.RBACorePackage#getIfStatement_ElseExpression()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ Expression getElseExpression();
+
+ /**
+ * Sets the value of the '{@link rba.core.IfStatement#getElseExpression <em>Else Expression</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Else Expression</em>' containment reference.
+ * @see #getElseExpression()
+ * @generated
+ */
+ void setElseExpression(Expression value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='if (thenExpression != null) {\r\n return thenExpression.getUnderlyingType();\r\n}\r\nreturn ExpressionType.VALUE;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nexpressionText.append(\"IF(\");\r\nexpressionText.append(condition != null ? condition.getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(\") THEN \");\r\nexpressionText.append(thenExpression != null ? thenExpression.getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(\" ELSE \");\r\nexpressionText.append(elseExpression != null ? elseExpression.getExpressionText() : \"[Invalid_Expression]\");\r\nreturn expressionText.toString();'"
+ * @generated
+ */
+ String getExpressionText();
+
+} // IfStatement
diff --git a/rba.model.core/src/rba/core/ImpliesOperator.java b/rba.model.core/src/rba/core/ImpliesOperator.java
new file mode 100644
index 0000000..2fba720
--- /dev/null
+++ b/rba.model.core/src/rba/core/ImpliesOperator.java
@@ -0,0 +1,32 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Implies Operator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getImpliesOperator()
+ * @model
+ * @generated
+ */
+public interface ImpliesOperator extends LogicalOperator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"-&gt;\";'"
+ * @generated
+ */
+ String getSymbol();
+
+} // ImpliesOperator
diff --git a/rba.model.core/src/rba/core/IntegerProperty.java b/rba.model.core/src/rba/core/IntegerProperty.java
new file mode 100644
index 0000000..b809411
--- /dev/null
+++ b/rba.model.core/src/rba/core/IntegerProperty.java
@@ -0,0 +1,52 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Integer Property</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.IntegerProperty#getValue <em>Value</em>}</li>
+ * </ul>
+ *
+ * @see rba.core.RBACorePackage#getIntegerProperty()
+ * @model
+ * @generated
+ */
+public interface IntegerProperty extends AbstractProperty {
+ /**
+ * Returns the value of the '<em><b>Value</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>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>Value</em>' containment reference.
+ * @see #setValue(Expression)
+ * @see rba.core.RBACorePackage#getIntegerProperty_Value()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ Expression getValue();
+
+ /**
+ * Sets the value of the '{@link rba.core.IntegerProperty#getValue <em>Value</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value</em>' containment reference.
+ * @see #getValue()
+ * @generated
+ */
+ void setValue(Expression value);
+
+} // IntegerProperty
diff --git a/rba.model.core/src/rba/core/IntegerValue.java b/rba.model.core/src/rba/core/IntegerValue.java
new file mode 100644
index 0000000..c68e264
--- /dev/null
+++ b/rba.model.core/src/rba/core/IntegerValue.java
@@ -0,0 +1,75 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Integer Value</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.IntegerValue#getValue <em>Value</em>}</li>
+ * </ul>
+ *
+ * @see rba.core.RBACorePackage#getIntegerValue()
+ * @model
+ * @generated
+ */
+public interface IntegerValue extends ValueExpression {
+ /**
+ * Returns the value of the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Value</em>' attribute.
+ * @see #setValue(int)
+ * @see rba.core.RBACorePackage#getIntegerValue_Value()
+ * @model required="true"
+ * @generated
+ */
+ int getValue();
+
+ /**
+ * Sets the value of the '{@link rba.core.IntegerValue#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(int value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return String.valueOf(value);'"
+ * @generated
+ */
+ String getExpressionText();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation" required="true"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return value;'"
+ * @generated
+ */
+ int getExpressionValue();
+
+} // IntegerValue
diff --git a/rba.model.core/src/rba/core/IsActive.java b/rba.model.core/src/rba/core/IsActive.java
new file mode 100644
index 0000000..ae804cf
--- /dev/null
+++ b/rba.model.core/src/rba/core/IsActive.java
@@ -0,0 +1,44 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Is Active</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getIsActive()
+ * @model
+ * @generated
+ */
+public interface IsActive extends ContentOperator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".isActive()\";'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.BOOLEAN;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+} // IsActive
diff --git a/rba.model.core/src/rba/core/IsAllocatedTo.java b/rba.model.core/src/rba/core/IsAllocatedTo.java
new file mode 100644
index 0000000..85f5bbc
--- /dev/null
+++ b/rba.model.core/src/rba/core/IsAllocatedTo.java
@@ -0,0 +1,43 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Is Allocated To</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getIsAllocatedTo()
+ * @model
+ * @generated
+ */
+public interface IsAllocatedTo extends ContentOperator, SugarExpressionBase {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".isAllocatedTo\";'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.BOOLEAN;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuilder expressionText = new StringBuilder();\r\nEList&lt;rba.core.Expression&gt; expressions = getOperand();\r\nexpressionText.append(expressions.size() &gt; 0 ? expressions.get(0).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(getSymbol());\r\nexpressionText.append(\"(\");\r\nexpressionText.append(expressions.size() &gt; 1 ? expressions.get(1).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(\")\");\r\nreturn expressionText.toString();'"
+ * @generated
+ */
+ String getExpressionText();
+
+} // IsAllocatedTo
diff --git a/rba.model.core/src/rba/core/IsCanceled.java b/rba.model.core/src/rba/core/IsCanceled.java
new file mode 100644
index 0000000..e0cf680
--- /dev/null
+++ b/rba.model.core/src/rba/core/IsCanceled.java
@@ -0,0 +1,44 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Is Canceled</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getIsCanceled()
+ * @model
+ * @generated
+ */
+public interface IsCanceled extends ContentOperator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".isCanceled()\";'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.BOOLEAN;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+} // IsCanceled
diff --git a/rba.model.core/src/rba/core/IsChanged.java b/rba.model.core/src/rba/core/IsChanged.java
new file mode 100644
index 0000000..36082cf
--- /dev/null
+++ b/rba.model.core/src/rba/core/IsChanged.java
@@ -0,0 +1,34 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Is Changed</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getIsChanged()
+ * @model
+ * @generated
+ */
+public interface IsChanged extends AllocatableOperator, SugarExpressionBase {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".isChanged()\";'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.BOOLEAN;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+} // IsChanged
diff --git a/rba.model.core/src/rba/core/IsDisappeared.java b/rba.model.core/src/rba/core/IsDisappeared.java
new file mode 100644
index 0000000..0088c17
--- /dev/null
+++ b/rba.model.core/src/rba/core/IsDisappeared.java
@@ -0,0 +1,44 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Is Disappeared</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getIsDisappeared()
+ * @model
+ * @generated
+ */
+public interface IsDisappeared extends ContentOperator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".isDisappeared()\";'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.BOOLEAN;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+} // IsDisappeared
diff --git a/rba.model.core/src/rba/core/IsEqualToOperator.java b/rba.model.core/src/rba/core/IsEqualToOperator.java
new file mode 100644
index 0000000..8806351
--- /dev/null
+++ b/rba.model.core/src/rba/core/IsEqualToOperator.java
@@ -0,0 +1,32 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Is Equal To Operator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getIsEqualToOperator()
+ * @model
+ * @generated
+ */
+public interface IsEqualToOperator extends LogicalOperator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"=\";'"
+ * @generated
+ */
+ String getSymbol();
+
+} // IsEqualToOperator
diff --git a/rba.model.core/src/rba/core/IsGreaterThanEqualOperator.java b/rba.model.core/src/rba/core/IsGreaterThanEqualOperator.java
new file mode 100644
index 0000000..674d364
--- /dev/null
+++ b/rba.model.core/src/rba/core/IsGreaterThanEqualOperator.java
@@ -0,0 +1,32 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Is Greater Than Equal Operator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getIsGreaterThanEqualOperator()
+ * @model
+ * @generated
+ */
+public interface IsGreaterThanEqualOperator extends LogicalOperator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"&gt;=\";'"
+ * @generated
+ */
+ String getSymbol();
+
+} // IsGreaterThanEqualOperator
diff --git a/rba.model.core/src/rba/core/IsGreaterThanOperator.java b/rba.model.core/src/rba/core/IsGreaterThanOperator.java
new file mode 100644
index 0000000..c391e9c
--- /dev/null
+++ b/rba.model.core/src/rba/core/IsGreaterThanOperator.java
@@ -0,0 +1,32 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Is Greater Than Operator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getIsGreaterThanOperator()
+ * @model
+ * @generated
+ */
+public interface IsGreaterThanOperator extends LogicalOperator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"&gt;\";'"
+ * @generated
+ */
+ String getSymbol();
+
+} // IsGreaterThanOperator
diff --git a/rba.model.core/src/rba/core/IsLowerThanEqualOperator.java b/rba.model.core/src/rba/core/IsLowerThanEqualOperator.java
new file mode 100644
index 0000000..ab27d20
--- /dev/null
+++ b/rba.model.core/src/rba/core/IsLowerThanEqualOperator.java
@@ -0,0 +1,32 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Is Lower Than Equal Operator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getIsLowerThanEqualOperator()
+ * @model
+ * @generated
+ */
+public interface IsLowerThanEqualOperator extends LogicalOperator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"&lt;=\";'"
+ * @generated
+ */
+ String getSymbol();
+
+} // IsLowerThanEqualOperator
diff --git a/rba.model.core/src/rba/core/IsLowerThanOperator.java b/rba.model.core/src/rba/core/IsLowerThanOperator.java
new file mode 100644
index 0000000..587aeb9
--- /dev/null
+++ b/rba.model.core/src/rba/core/IsLowerThanOperator.java
@@ -0,0 +1,32 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Is Lower Than Operator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getIsLowerThanOperator()
+ * @model
+ * @generated
+ */
+public interface IsLowerThanOperator extends LogicalOperator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"&lt;\";'"
+ * @generated
+ */
+ String getSymbol();
+
+} // IsLowerThanOperator
diff --git a/rba.model.core/src/rba/core/IsOn.java b/rba.model.core/src/rba/core/IsOn.java
new file mode 100644
index 0000000..5f80a92
--- /dev/null
+++ b/rba.model.core/src/rba/core/IsOn.java
@@ -0,0 +1,44 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Is On</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getIsOn()
+ * @model
+ * @generated
+ */
+public interface IsOn extends SceneOperator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".isOn()\";'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.BOOLEAN;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+} // IsOn
diff --git a/rba.model.core/src/rba/core/IsTranslatedTo.java b/rba.model.core/src/rba/core/IsTranslatedTo.java
new file mode 100644
index 0000000..401a0f8
--- /dev/null
+++ b/rba.model.core/src/rba/core/IsTranslatedTo.java
@@ -0,0 +1,43 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Is Translated To</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getIsTranslatedTo()
+ * @model
+ * @generated
+ */
+public interface IsTranslatedTo extends AllocatableOperator, SugarExpressionBase {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".isTranslatedTo\";'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.BOOLEAN;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuilder expressionText = new StringBuilder();\r\nEList&lt;rba.core.Expression&gt; expressions = getOperand();\r\nexpressionText.append(expressions.size() &gt; 0 ? expressions.get(0).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(getSymbol());\r\nexpressionText.append(\"(\");\r\nexpressionText.append(expressions.size() &gt; 1 ? expressions.get(1).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(\")\");\r\nreturn expressionText.toString();'"
+ * @generated
+ */
+ String getExpressionText();
+
+} // IsTranslatedTo
diff --git a/rba.model.core/src/rba/core/IsTypeOf.java b/rba.model.core/src/rba/core/IsTypeOf.java
new file mode 100644
index 0000000..4435f6f
--- /dev/null
+++ b/rba.model.core/src/rba/core/IsTypeOf.java
@@ -0,0 +1,88 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Is Type Of</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.IsTypeOf#getTagName <em>Tag Name</em>}</li>
+ * </ul>
+ *
+ * @see rba.core.RBACorePackage#getIsTypeOf()
+ * @model
+ * @generated
+ */
+public interface IsTypeOf extends Operator {
+ /**
+ * Returns the value of the '<em><b>Tag Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Tag 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>Tag Name</em>' attribute.
+ * @see #setTagName(String)
+ * @see rba.core.RBACorePackage#getIsTypeOf_TagName()
+ * @model required="true"
+ * @generated
+ */
+ String getTagName();
+
+ /**
+ * Sets the value of the '{@link rba.core.IsTypeOf#getTagName <em>Tag Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Tag Name</em>' attribute.
+ * @see #getTagName()
+ * @generated
+ */
+ void setTagName(String value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nEList&lt;rba.core.Expression&gt; expressions = getOperand();\r\nexpressionText.append(expressions.size() &gt; 0 ? expressions.get(0).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(getSymbol());\r\nexpressionText.append(\"(\");\r\nexpressionText.append(tagName != null ? tagName : \"\");\r\nexpressionText.append(\")\");\r\nreturn expressionText.toString();'"
+ * @generated
+ */
+ String getExpressionText();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".isTypeOf\";'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.BOOLEAN;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+} // IsTypeOf
diff --git a/rba.model.core/src/rba/core/LambdaContext.java b/rba.model.core/src/rba/core/LambdaContext.java
new file mode 100644
index 0000000..ccfe6ad
--- /dev/null
+++ b/rba.model.core/src/rba/core/LambdaContext.java
@@ -0,0 +1,65 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Lambda Context</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.LambdaContext#getLambda <em>Lambda</em>}</li>
+ * </ul>
+ *
+ * @see rba.core.RBACorePackage#getLambdaContext()
+ * @model abstract="true"
+ * @generated
+ */
+public interface LambdaContext extends SetOperator {
+ /**
+ * Returns the value of the '<em><b>Lambda</b></em>' containment reference.
+ * It is bidirectional and its opposite is '{@link rba.core.LambdaExpression#getContext <em>Context</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Lambda</em>' containment reference.
+ * @see #setLambda(LambdaExpression)
+ * @see rba.core.RBACorePackage#getLambdaContext_Lambda()
+ * @see rba.core.LambdaExpression#getContext
+ * @model opposite="context" containment="true"
+ * @generated
+ */
+ LambdaExpression getLambda();
+
+ /**
+ * Sets the value of the '{@link rba.core.LambdaContext#getLambda <em>Lambda</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Lambda</em>' containment reference.
+ * @see #getLambda()
+ * @generated
+ */
+ void setLambda(LambdaExpression value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='if (!getOperand().isEmpty()) {\r\n rba.core.Expression first = getOperand().get(0);\r\n if (first.getType() == ExpressionType.SET_OF_CONTENT) {\r\n return ExpressionType.CONTENT;\r\n } else if (first.getType() == ExpressionType.SET_OF_AREA) {\r\n return ExpressionType.AREA;\r\n } else if (first.getType() == ExpressionType.SET_OF_ZONE) {\r\n return ExpressionType.ZONE;\r\n } else if (first.getType() == ExpressionType.SET_OF_SOUND) {\r\n return ExpressionType.SOUND;\r\n } else {\r\n return first.getType();\r\n }\r\n}\r\n\r\nreturn ExpressionType.VALUE;'"
+ * @generated
+ */
+ ExpressionType getContextType();
+
+} // LambdaContext
diff --git a/rba.model.core/src/rba/core/LambdaExpression.java b/rba.model.core/src/rba/core/LambdaExpression.java
new file mode 100644
index 0000000..f8c3df3
--- /dev/null
+++ b/rba.model.core/src/rba/core/LambdaExpression.java
@@ -0,0 +1,129 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Lambda Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.LambdaExpression#getContext <em>Context</em>}</li>
+ * <li>{@link rba.core.LambdaExpression#getX <em>X</em>}</li>
+ * <li>{@link rba.core.LambdaExpression#getBodyText <em>Body Text</em>}</li>
+ * </ul>
+ *
+ * @see rba.core.RBACorePackage#getLambdaExpression()
+ * @model
+ * @generated
+ */
+public interface LambdaExpression extends Expression {
+ /**
+ * Returns the value of the '<em><b>Context</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link rba.core.LambdaContext#getLambda <em>Lambda</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Context</em>' container reference.
+ * @see #setContext(LambdaContext)
+ * @see rba.core.RBACorePackage#getLambdaExpression_Context()
+ * @see rba.core.LambdaContext#getLambda
+ * @model opposite="lambda" transient="false"
+ * @generated
+ */
+ LambdaContext getContext();
+
+ /**
+ * Sets the value of the '{@link rba.core.LambdaExpression#getContext <em>Context</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Context</em>' container reference.
+ * @see #getContext()
+ * @generated
+ */
+ void setContext(LambdaContext value);
+
+ /**
+ * Returns the value of the '<em><b>X</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>X</em>' containment reference.
+ * @see #setX(Variable)
+ * @see rba.core.RBACorePackage#getLambdaExpression_X()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ Variable getX();
+
+ /**
+ * Sets the value of the '{@link rba.core.LambdaExpression#getX <em>X</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>X</em>' containment reference.
+ * @see #getX()
+ * @generated
+ */
+ void setX(Variable value);
+
+ /**
+ * Returns the value of the '<em><b>Body Text</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Body Text</em>' containment reference.
+ * @see #setBodyText(Expression)
+ * @see rba.core.RBACorePackage#getLambdaExpression_BodyText()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ Expression getBodyText();
+
+ /**
+ * Sets the value of the '{@link rba.core.LambdaExpression#getBodyText <em>Body Text</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Body Text</em>' containment reference.
+ * @see #getBodyText()
+ * @generated
+ */
+ void setBodyText(Expression value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuilder expressionText = new StringBuilder();\r\nexpressionText.append(\"{ \");\r\nexpressionText.append(x != null ? x.getName() : \"[Invalid_Expression]\");\r\nexpressionText.append(\" | \");\r\ngetLetStatements().forEach(let -&gt; expressionText.append(let));\r\nexpressionText.append(bodyText != null ? bodyText.getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(\" }\");\r\nreturn expressionText.toString();'"
+ * @generated
+ */
+ String getExpressionText();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.LAMBDA;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+} // LambdaExpression
diff --git a/rba.model.core/src/rba/core/LetStatement.java b/rba.model.core/src/rba/core/LetStatement.java
new file mode 100644
index 0000000..56d26ab
--- /dev/null
+++ b/rba.model.core/src/rba/core/LetStatement.java
@@ -0,0 +1,84 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Let Statement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.LetStatement#getVariable <em>Variable</em>}</li>
+ * <li>{@link rba.core.LetStatement#getBody <em>Body</em>}</li>
+ * </ul>
+ *
+ * @see rba.core.RBACorePackage#getLetStatement()
+ * @model
+ * @generated
+ */
+public interface LetStatement extends ModelElement {
+ /**
+ * Returns the value of the '<em><b>Variable</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Variable</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</em>' containment reference.
+ * @see #setVariable(Variable)
+ * @see rba.core.RBACorePackage#getLetStatement_Variable()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ Variable getVariable();
+
+ /**
+ * Sets the value of the '{@link rba.core.LetStatement#getVariable <em>Variable</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Variable</em>' containment reference.
+ * @see #getVariable()
+ * @generated
+ */
+ void setVariable(Variable value);
+
+ /**
+ * Returns the value of the '<em><b>Body</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Body</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>Body</em>' containment reference.
+ * @see #setBody(Expression)
+ * @see rba.core.RBACorePackage#getLetStatement_Body()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ Expression getBody();
+
+ /**
+ * Sets the value of the '{@link rba.core.LetStatement#getBody <em>Body</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Body</em>' containment reference.
+ * @see #getBody()
+ * @generated
+ */
+ void setBody(Expression value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model required="true"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuilder ret = new StringBuilder();\r\nret.append(\"let \"); //$NON-NLS-1$\r\nret.append(getVariable().getName());\r\nret.append(\"= \"); //$NON-NLS-1$\r\nret.append(getBody().getExpressionText());\r\nreturn ret.toString();'"
+ * @generated
+ */
+ String toString();
+
+} // LetStatement
diff --git a/rba.model.core/src/rba/core/LogicalOperator.java b/rba.model.core/src/rba/core/LogicalOperator.java
new file mode 100644
index 0000000..de7bd79
--- /dev/null
+++ b/rba.model.core/src/rba/core/LogicalOperator.java
@@ -0,0 +1,44 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Logical Operator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getLogicalOperator()
+ * @model abstract="true"
+ * @generated
+ */
+public interface LogicalOperator extends Operator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.BOOLEAN;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nEList&lt;rba.core.Expression&gt; expressions = getOperand();\r\nexpressionText.append(\"(\");\r\nfor (int i = 0; i &lt; expressions.size(); i++) {\r\n rba.core.Expression expression = expressions.get(i);\r\n expressionText.append(expression.getExpressionText());\r\n if (i == expressions.size() - 1) {\r\n expressionText.append(\")\");\r\n } else {\r\n expressionText.append(\" \");\r\n expressionText.append(getSymbol());\r\n expressionText.append(\" \");\r\n }\r\n}\r\nreturn expressionText.toString();'"
+ * @generated
+ */
+ String getExpressionText();
+
+} // LogicalOperator
diff --git a/rba.model.core/src/rba/core/LoserType.java b/rba.model.core/src/rba/core/LoserType.java
new file mode 100644
index 0000000..997eea2
--- /dev/null
+++ b/rba.model.core/src/rba/core/LoserType.java
@@ -0,0 +1,236 @@
+/**
+ */
+package rba.core;
+
+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>Loser Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @see rba.core.RBACorePackage#getLoserType()
+ * @model
+ * @generated
+ */
+public enum LoserType implements Enumerator {
+ /**
+ * The '<em><b>NEVER GIVEUP</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #NEVER_GIVEUP_VALUE
+ * @generated
+ * @ordered
+ */
+ NEVER_GIVEUP(0, "NEVER_GIVEUP", "NEVER_GIVEUP"),
+
+ /**
+ * The '<em><b>GOOD LOSER</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #GOOD_LOSER_VALUE
+ * @generated
+ * @ordered
+ */
+ GOOD_LOSER(0, "GOOD_LOSER", "GOOD_LOSER"),
+
+ /**
+ * The '<em><b>DO NOT GIVEUP UNTIL WIN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DO_NOT_GIVEUP_UNTIL_WIN_VALUE
+ * @generated
+ * @ordered
+ */
+ DO_NOT_GIVEUP_UNTIL_WIN(0, "DO_NOT_GIVEUP_UNTIL_WIN", "DO_NOT_GIVEUP_UNTIL_WIN");
+
+ /**
+ * The '<em><b>NEVER GIVEUP</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @see #NEVER_GIVEUP
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int NEVER_GIVEUP_VALUE = 0;
+
+ /**
+ * The '<em><b>GOOD LOSER</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @see #GOOD_LOSER
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int GOOD_LOSER_VALUE = 0;
+
+ /**
+ * The '<em><b>DO NOT GIVEUP UNTIL WIN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @see #DO_NOT_GIVEUP_UNTIL_WIN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DO_NOT_GIVEUP_UNTIL_WIN_VALUE = 0;
+
+ /**
+ * An array of all the '<em><b>Loser Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final LoserType[] VALUES_ARRAY = new LoserType[] { NEVER_GIVEUP, GOOD_LOSER,
+ DO_NOT_GIVEUP_UNTIL_WIN, };
+
+ /**
+ * A public read-only list of all the '<em><b>Loser Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<LoserType> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Loser Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param literal the literal.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static LoserType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ LoserType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Loser Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param name the name.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static LoserType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ LoserType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Loser Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the integer value.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static LoserType get(int value) {
+ switch (value) {
+ case NEVER_GIVEUP_VALUE:
+ return NEVER_GIVEUP;
+ }
+ 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 LoserType(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;
+ }
+
+} //LoserType
diff --git a/rba.model.core/src/rba/core/LoserTypeExpression.java b/rba.model.core/src/rba/core/LoserTypeExpression.java
new file mode 100644
index 0000000..9ef3350
--- /dev/null
+++ b/rba.model.core/src/rba/core/LoserTypeExpression.java
@@ -0,0 +1,80 @@
+/**
+ */
+package rba.core;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Loser Type Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.LoserTypeExpression#getValue <em>Value</em>}</li>
+ * </ul>
+ *
+ * @see rba.core.RBACorePackage#getLoserTypeExpression()
+ * @model
+ * @generated
+ */
+public interface LoserTypeExpression extends EnumExpression {
+ /**
+ * Returns the value of the '<em><b>Value</b></em>' attribute.
+ * The literals are from the enumeration {@link rba.core.LoserType}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Value</em>' attribute.
+ * @see rba.core.LoserType
+ * @see #setValue(LoserType)
+ * @see rba.core.RBACorePackage#getLoserTypeExpression_Value()
+ * @model required="true"
+ * @generated
+ */
+ LoserType getValue();
+
+ /**
+ * Sets the value of the '{@link rba.core.LoserTypeExpression#getValue <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value</em>' attribute.
+ * @see rba.core.LoserType
+ * @see #getValue()
+ * @generated
+ */
+ void setValue(LoserType value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='if(value instanceof LoserType) {\r\n return value.getName();\r\n} else {\r\n return \"[Invalid_Expression]\";\r\n}'"
+ * @generated
+ */
+ String getExpressionText();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation" required="true"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return value;'"
+ * @generated
+ */
+ Enumerator getExpressionValue();
+
+} // LoserTypeExpression
diff --git a/rba.model.core/src/rba/core/LowerThanOperator.java b/rba.model.core/src/rba/core/LowerThanOperator.java
new file mode 100644
index 0000000..7423727
--- /dev/null
+++ b/rba.model.core/src/rba/core/LowerThanOperator.java
@@ -0,0 +1,32 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Lower Than Operator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getLowerThanOperator()
+ * @model
+ * @generated
+ */
+public interface LowerThanOperator extends ComparisonOperator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"&lt;\";'"
+ * @generated
+ */
+ String getSymbol();
+
+} // LowerThanOperator
diff --git a/rba.model.core/src/rba/core/MaxOperator.java b/rba.model.core/src/rba/core/MaxOperator.java
new file mode 100644
index 0000000..9cae0c1
--- /dev/null
+++ b/rba.model.core/src/rba/core/MaxOperator.java
@@ -0,0 +1,56 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Max Operator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getMaxOperator()
+ * @model
+ * @generated
+ */
+public interface MaxOperator extends LambdaContext {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nEList&lt;rba.core.Expression&gt; expressions = getOperand();\r\nrba.core.LambdaExpression lambda = getLambda();\r\nexpressionText.append(expressions.size() &gt; 0 ? expressions.get(0).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(getSymbol());\r\nexpressionText.append(\"{ \");\r\nexpressionText.append(lambda != null ? lambda.getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(\" }\");\r\nreturn expressionText.toString();'"
+ * @generated
+ */
+ String getExpressionText();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".max\";'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return getContextType();'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+} // MaxOperator
diff --git a/rba.model.core/src/rba/core/MaxValue.java b/rba.model.core/src/rba/core/MaxValue.java
new file mode 100644
index 0000000..67244c1
--- /dev/null
+++ b/rba.model.core/src/rba/core/MaxValue.java
@@ -0,0 +1,44 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Max Value</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getMaxValue()
+ * @model
+ * @generated
+ */
+public interface MaxValue extends ValueExpression {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"MAX\";'"
+ * @generated
+ */
+ String getExpressionText();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation" required="true"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return 9999;'"
+ * @generated
+ */
+ int getExpressionValue();
+
+} // MaxValue
diff --git a/rba.model.core/src/rba/core/MinOperator.java b/rba.model.core/src/rba/core/MinOperator.java
new file mode 100644
index 0000000..6c4f7f3
--- /dev/null
+++ b/rba.model.core/src/rba/core/MinOperator.java
@@ -0,0 +1,56 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Min Operator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getMinOperator()
+ * @model
+ * @generated
+ */
+public interface MinOperator extends LambdaContext {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nEList&lt;rba.core.Expression&gt; expressions = getOperand();\r\nrba.core.LambdaExpression lambda = getLambda();\r\nexpressionText.append(expressions.size() &gt; 0 ? expressions.get(0).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(getSymbol());\r\nexpressionText.append(\"{ \");\r\nexpressionText.append(lambda != null ? lambda.getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(\" }\");\r\nreturn expressionText.toString();'"
+ * @generated
+ */
+ String getExpressionText();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".min\";'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return getContextType();'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+} // MinOperator
diff --git a/rba.model.core/src/rba/core/MinValue.java b/rba.model.core/src/rba/core/MinValue.java
new file mode 100644
index 0000000..75d1974
--- /dev/null
+++ b/rba.model.core/src/rba/core/MinValue.java
@@ -0,0 +1,44 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Min Value</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getMinValue()
+ * @model
+ * @generated
+ */
+public interface MinValue extends ValueExpression {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"MIN\";'"
+ * @generated
+ */
+ String getExpressionText();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation" required="true"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return 0;'"
+ * @generated
+ */
+ int getExpressionValue();
+
+} // MinValue
diff --git a/rba.model.core/src/rba/core/ModelElement.java b/rba.model.core/src/rba/core/ModelElement.java
new file mode 100644
index 0000000..701b749
--- /dev/null
+++ b/rba.model.core/src/rba/core/ModelElement.java
@@ -0,0 +1,53 @@
+/**
+ */
+package rba.core;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Model Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.ModelElement#getDescription <em>Description</em>}</li>
+ * </ul>
+ *
+ * @see rba.core.RBACorePackage#getModelElement()
+ * @model abstract="true"
+ * @generated
+ */
+public interface ModelElement extends EObject {
+ /**
+ * Returns the value of the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Description</em>' attribute.
+ * @see #setDescription(String)
+ * @see rba.core.RBACorePackage#getModelElement_Description()
+ * @model
+ * @generated
+ */
+ String getDescription();
+
+ /**
+ * Sets the value of the '{@link rba.core.ModelElement#getDescription <em>Description</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Description</em>' attribute.
+ * @see #getDescription()
+ * @generated
+ */
+ void setDescription(String value);
+
+} // ModelElement
diff --git a/rba.model.core/src/rba/core/MuchGreaterThanOperator.java b/rba.model.core/src/rba/core/MuchGreaterThanOperator.java
new file mode 100644
index 0000000..5756f66
--- /dev/null
+++ b/rba.model.core/src/rba/core/MuchGreaterThanOperator.java
@@ -0,0 +1,32 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Much Greater Than Operator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getMuchGreaterThanOperator()
+ * @model
+ * @generated
+ */
+public interface MuchGreaterThanOperator extends ComparisonOperator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"&gt;&gt;\";'"
+ * @generated
+ */
+ String getSymbol();
+
+} // MuchGreaterThanOperator
diff --git a/rba.model.core/src/rba/core/NamedElement.java b/rba.model.core/src/rba/core/NamedElement.java
new file mode 100644
index 0000000..dadd005
--- /dev/null
+++ b/rba.model.core/src/rba/core/NamedElement.java
@@ -0,0 +1,51 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Named Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.NamedElement#getName <em>Name</em>}</li>
+ * </ul>
+ *
+ * @see rba.core.RBACorePackage#getNamedElement()
+ * @model abstract="true"
+ * @generated
+ */
+public interface NamedElement extends ModelElement {
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see rba.core.RBACorePackage#getNamedElement_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link rba.core.NamedElement#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);
+
+} // NamedElement
diff --git a/rba.model.core/src/rba/core/NoneValue.java b/rba.model.core/src/rba/core/NoneValue.java
new file mode 100644
index 0000000..375b468
--- /dev/null
+++ b/rba.model.core/src/rba/core/NoneValue.java
@@ -0,0 +1,44 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>None Value</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getNoneValue()
+ * @model
+ * @generated
+ */
+public interface NoneValue extends ValueExpression {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"NONE\";'"
+ * @generated
+ */
+ String getExpressionText();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation" required="true"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return -1;'"
+ * @generated
+ */
+ int getExpressionValue();
+
+} // NoneValue
diff --git a/rba.model.core/src/rba/core/NotOperator.java b/rba.model.core/src/rba/core/NotOperator.java
new file mode 100644
index 0000000..929a8f1
--- /dev/null
+++ b/rba.model.core/src/rba/core/NotOperator.java
@@ -0,0 +1,44 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Not Operator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getNotOperator()
+ * @model
+ * @generated
+ */
+public interface NotOperator extends LogicalOperator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"!\";'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuilder expressionText = new StringBuilder();\r\nEList&lt;rba.core.Expression&gt; expressions = getOperand();\r\nexpressionText.append(getSymbol());\r\nexpressionText.append(\"(\");\r\nexpressionText.append(expressions.size() &gt; 0 ? expressions.get(0).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(\")\");\r\nreturn expressionText.toString();'"
+ * @generated
+ */
+ String getExpressionText();
+
+} // NotOperator
diff --git a/rba.model.core/src/rba/core/NullExpression.java b/rba.model.core/src/rba/core/NullExpression.java
new file mode 100644
index 0000000..9fc39e3
--- /dev/null
+++ b/rba.model.core/src/rba/core/NullExpression.java
@@ -0,0 +1,44 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Null Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * NULL keyword
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getNullExpression()
+ * @model
+ * @generated
+ */
+public interface NullExpression extends Expression {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.NULL;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"NULL\";'"
+ * @generated
+ */
+ String getExpressionText();
+
+} // NullExpression
diff --git a/rba.model.core/src/rba/core/ObjectCompare.java b/rba.model.core/src/rba/core/ObjectCompare.java
new file mode 100644
index 0000000..7bab6f1
--- /dev/null
+++ b/rba.model.core/src/rba/core/ObjectCompare.java
@@ -0,0 +1,56 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Object Compare</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getObjectCompare()
+ * @model
+ * @generated
+ */
+public interface ObjectCompare extends Operator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"==\";'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.BOOLEAN;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuilder expressionText = new StringBuilder();\r\nEList&lt;rba.core.Expression&gt; expressions = getOperand();\r\nexpressionText.append(expressions.size() &gt; 0 ? expressions.get(0).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(\" \");\r\nexpressionText.append(getSymbol());\r\nexpressionText.append(\" \");\r\nexpressionText.append(expressions.size() &gt; 1 ? expressions.get(1).getExpressionText() : \"[Invalid_Expression]\");\r\nreturn expressionText.toString();'"
+ * @generated
+ */
+ String getExpressionText();
+
+} // ObjectCompare
diff --git a/rba.model.core/src/rba/core/ObjectCompareNot.java b/rba.model.core/src/rba/core/ObjectCompareNot.java
new file mode 100644
index 0000000..85817b6
--- /dev/null
+++ b/rba.model.core/src/rba/core/ObjectCompareNot.java
@@ -0,0 +1,43 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Object Compare Not</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getObjectCompareNot()
+ * @model
+ * @generated
+ */
+public interface ObjectCompareNot extends Operator, SugarExpressionBase {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"!=\";'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.BOOLEAN;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuilder expressionText = new StringBuilder();\r\nEList&lt;rba.core.Expression&gt; expressions = getOperand();\r\nexpressionText.append(expressions.size() &gt; 0 ? expressions.get(0).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(\" \");\r\nexpressionText.append(getSymbol());\r\nexpressionText.append(\" \");\r\nexpressionText.append(expressions.size() &gt; 1 ? expressions.get(1).getExpressionText() : \"[Invalid_Expression]\");\r\nreturn expressionText.toString();'"
+ * @generated
+ */
+ String getExpressionText();
+
+} // ObjectCompareNot
diff --git a/rba.model.core/src/rba/core/ObjectReference.java b/rba.model.core/src/rba/core/ObjectReference.java
new file mode 100644
index 0000000..d695a5c
--- /dev/null
+++ b/rba.model.core/src/rba/core/ObjectReference.java
@@ -0,0 +1,75 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Object Reference</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.ObjectReference#getRefObject <em>Ref Object</em>}</li>
+ * </ul>
+ *
+ * @see rba.core.RBACorePackage#getObjectReference()
+ * @model
+ * @generated
+ */
+public interface ObjectReference extends Expression {
+ /**
+ * Returns the value of the '<em><b>Ref Object</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Ref Object</em>' reference.
+ * @see #setRefObject(RuleObject)
+ * @see rba.core.RBACorePackage#getObjectReference_RefObject()
+ * @model
+ * @generated
+ */
+ RuleObject getRefObject();
+
+ /**
+ * Sets the value of the '{@link rba.core.ObjectReference#getRefObject <em>Ref Object</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Ref Object</em>' reference.
+ * @see #getRefObject()
+ * @generated
+ */
+ void setRefObject(RuleObject value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='RuleObject obj = getRefObject();\r\nif (obj != null) {\r\n return obj.getExpressionType();\r\n} else {\r\n return ExpressionType.VALUE;\r\n}'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nRuleObject obj = getRefObject();\r\nif (obj instanceof &lt;%rba.core.ContentState%&gt;) {\r\n ContentState state = (ContentState) obj;\r\n expressionText.append(state.getOwner().getName() + \".\" + state.getName());\r\n} else if (obj instanceof &lt;%rba.core.AbstractProperty%&gt;) {\r\n AbstractProperty property = (AbstractProperty) obj;\r\n expressionText.append(property.getOwner().getName() + \".\" + property.getName());\r\n} else {\r\n expressionText.append(obj != null ? obj.getName() : \"[Invalid_Expression]\");\r\n}\r\nreturn expressionText.toString();'"
+ * @generated
+ */
+ String getExpressionText();
+
+} // ObjectReference
diff --git a/rba.model.core/src/rba/core/OffScene.java b/rba.model.core/src/rba/core/OffScene.java
new file mode 100644
index 0000000..0403471
--- /dev/null
+++ b/rba.model.core/src/rba/core/OffScene.java
@@ -0,0 +1,32 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Off Scene</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getOffScene()
+ * @model
+ * @generated
+ */
+public interface OffScene extends SceneOperator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".off()\";'"
+ * @generated
+ */
+ String getSymbol();
+
+} // OffScene
diff --git a/rba.model.core/src/rba/core/OnScene.java b/rba.model.core/src/rba/core/OnScene.java
new file mode 100644
index 0000000..40ad6eb
--- /dev/null
+++ b/rba.model.core/src/rba/core/OnScene.java
@@ -0,0 +1,32 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>On Scene</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getOnScene()
+ * @model
+ * @generated
+ */
+public interface OnScene extends SceneOperator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".on()\";'"
+ * @generated
+ */
+ String getSymbol();
+
+} // OnScene
diff --git a/rba.model.core/src/rba/core/Operator.java b/rba.model.core/src/rba/core/Operator.java
new file mode 100644
index 0000000..e57c9fc
--- /dev/null
+++ b/rba.model.core/src/rba/core/Operator.java
@@ -0,0 +1,54 @@
+/**
+ */
+package rba.core;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Operator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.Operator#getOperand <em>Operand</em>}</li>
+ * </ul>
+ *
+ * @see rba.core.RBACorePackage#getOperator()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Operator extends Expression {
+ /**
+ * Returns the value of the '<em><b>Operand</b></em>' containment reference list.
+ * The list contents are of type {@link rba.core.Expression}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Operand</em>' containment reference list.
+ * @see rba.core.RBACorePackage#getOperator_Operand()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ EList<Expression> getOperand();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * @generated
+ */
+ String getSymbol();
+
+} // Operator
diff --git a/rba.model.core/src/rba/core/OrOperator.java b/rba.model.core/src/rba/core/OrOperator.java
new file mode 100644
index 0000000..b6586a2
--- /dev/null
+++ b/rba.model.core/src/rba/core/OrOperator.java
@@ -0,0 +1,32 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Or Operator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getOrOperator()
+ * @model
+ * @generated
+ */
+public interface OrOperator extends LogicalOperator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"OR\";'"
+ * @generated
+ */
+ String getSymbol();
+
+} // OrOperator
diff --git a/rba.model.core/src/rba/core/PackagableElement.java b/rba.model.core/src/rba/core/PackagableElement.java
new file mode 100644
index 0000000..4fdbc97
--- /dev/null
+++ b/rba.model.core/src/rba/core/PackagableElement.java
@@ -0,0 +1,20 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Packagable Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getPackagableElement()
+ * @model abstract="true"
+ * @generated
+ */
+public interface PackagableElement extends NamedElement {
+} // PackagableElement
diff --git a/rba.model.core/src/rba/core/Package.java b/rba.model.core/src/rba/core/Package.java
new file mode 100644
index 0000000..2e24b65
--- /dev/null
+++ b/rba.model.core/src/rba/core/Package.java
@@ -0,0 +1,43 @@
+/**
+ */
+package rba.core;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Package</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.Package#getPackagableelement <em>Packagableelement</em>}</li>
+ * </ul>
+ *
+ * @see rba.core.RBACorePackage#getPackage()
+ * @model
+ * @generated
+ */
+public interface Package extends PackagableElement {
+ /**
+ * Returns the value of the '<em><b>Packagableelement</b></em>' containment reference list.
+ * The list contents are of type {@link rba.core.PackagableElement}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Packagableelement</em>' containment reference list.
+ * @see rba.core.RBACorePackage#getPackage_Packagableelement()
+ * @model containment="true"
+ * @generated
+ */
+ EList<PackagableElement> getPackagableelement();
+
+} // Package
diff --git a/rba.model.core/src/rba/core/PlusOperator.java b/rba.model.core/src/rba/core/PlusOperator.java
new file mode 100644
index 0000000..fbaed51
--- /dev/null
+++ b/rba.model.core/src/rba/core/PlusOperator.java
@@ -0,0 +1,32 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Plus Operator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getPlusOperator()
+ * @model
+ * @generated
+ */
+public interface PlusOperator extends ArithmeticOperator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"+\";'"
+ * @generated
+ */
+ String getSymbol();
+
+} // PlusOperator
diff --git a/rba.model.core/src/rba/core/PreviousModifier.java b/rba.model.core/src/rba/core/PreviousModifier.java
new file mode 100644
index 0000000..d84d2c6
--- /dev/null
+++ b/rba.model.core/src/rba/core/PreviousModifier.java
@@ -0,0 +1,88 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Previous Modifier</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.PreviousModifier#getObjReference <em>Obj Reference</em>}</li>
+ * </ul>
+ *
+ * @see rba.core.RBACorePackage#getPreviousModifier()
+ * @model
+ * @generated
+ */
+public interface PreviousModifier extends Expression {
+ /**
+ * Returns the value of the '<em><b>Obj Reference</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Obj Reference</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>Obj Reference</em>' containment reference.
+ * @see #setObjReference(ObjectReference)
+ * @see rba.core.RBACorePackage#getPreviousModifier_ObjReference()
+ * @model containment="true"
+ * @generated
+ */
+ ObjectReference getObjReference();
+
+ /**
+ * Sets the value of the '{@link rba.core.PreviousModifier#getObjReference <em>Obj Reference</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Obj Reference</em>' containment reference.
+ * @see #getObjReference()
+ * @generated
+ */
+ void setObjReference(ObjectReference value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"(pre)\";'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='ObjectReference objReference = getObjReference();\r\nif (objReference != null) {\r\n return objReference.getUnderlyingType();\r\n} else {\r\n return ExpressionType.VALUE;\r\n}'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nif (getObjReference() != null &amp;&amp; getObjReference().getRefObject() != null) {\r\n ObjectReference reference = getObjReference();\r\n expressionText.append(getSymbol());\r\n expressionText.append(reference.getExpressionText());\r\n} else {\r\n expressionText.append(\"[Invalid_Expression]\");\r\n}\r\nreturn expressionText.toString();'"
+ * @generated
+ */
+ String getExpressionText();
+
+} // PreviousModifier
diff --git a/rba.model.core/src/rba/core/Project.java b/rba.model.core/src/rba/core/Project.java
new file mode 100644
index 0000000..1ece717
--- /dev/null
+++ b/rba.model.core/src/rba/core/Project.java
@@ -0,0 +1,91 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Project</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.Project#getVersion <em>Version</em>}</li>
+ * <li>{@link rba.core.Project#getDummyName <em>Dummy Name</em>}</li>
+ * </ul>
+ *
+ * @see rba.core.RBACorePackage#getProject()
+ * @model
+ * @generated
+ */
+public interface Project extends rba.core.Package {
+ /**
+ * Returns the value of the '<em><b>Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Version</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Version</em>' attribute.
+ * @see #setVersion(String)
+ * @see rba.core.RBACorePackage#getProject_Version()
+ * @model
+ * @generated
+ */
+ String getVersion();
+
+ /**
+ * Sets the value of the '{@link rba.core.Project#getVersion <em>Version</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Version</em>' attribute.
+ * @see #getVersion()
+ * @generated
+ */
+ void setVersion(String value);
+
+ /**
+ * Returns the value of the '<em><b>Dummy Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Dummy 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>Dummy Name</em>' attribute.
+ * @see #setDummyName(String)
+ * @see rba.core.RBACorePackage#getProject_DummyName()
+ * @model
+ * @generated
+ */
+ String getDummyName();
+
+ /**
+ * Sets the value of the '{@link rba.core.Project#getDummyName <em>Dummy Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Dummy Name</em>' attribute.
+ * @see #getDummyName()
+ * @generated
+ */
+ void setDummyName(String value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='if (this.eResource() != null) {\r\n String segments[] = this.eResource().getURI().toString().split(\"/\");\r\n return segments[2];\r\n} else {\r\n return this.name;\r\n} '"
+ * @generated
+ */
+ String getName();
+
+} // Project
diff --git a/rba.model.core/src/rba/core/PropertyOperator.java b/rba.model.core/src/rba/core/PropertyOperator.java
new file mode 100644
index 0000000..adf1521
--- /dev/null
+++ b/rba.model.core/src/rba/core/PropertyOperator.java
@@ -0,0 +1,44 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Property Operator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getPropertyOperator()
+ * @model abstract="true"
+ * @generated
+ */
+public interface PropertyOperator extends Operator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.PROPERTY;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nEList&lt;rba.core.Expression&gt; expressions = getOperand();\r\nexpressionText.append(expressions.size() &gt; 0 ? expressions.get(0).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(getSymbol());\r\nreturn expressionText.toString();'"
+ * @generated
+ */
+ String getExpressionText();
+
+} // PropertyOperator
diff --git a/rba.model.core/src/rba/core/RBACoreFactory.java b/rba.model.core/src/rba/core/RBACoreFactory.java
new file mode 100644
index 0000000..112361c
--- /dev/null
+++ b/rba.model.core/src/rba/core/RBACoreFactory.java
@@ -0,0 +1,618 @@
+/**
+ */
+package rba.core;
+
+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 rba.core.RBACorePackage
+ * @generated
+ */
+public interface RBACoreFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ RBACoreFactory eINSTANCE = rba.core.impl.RBACoreFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Project</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Project</em>'.
+ * @generated
+ */
+ Project createProject();
+
+ /**
+ * Returns a new object of class '<em>Package</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Package</em>'.
+ * @generated
+ */
+ Package createPackage();
+
+ /**
+ * Returns a new object of class '<em>Stereotype</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Stereotype</em>'.
+ * @generated
+ */
+ Stereotype createStereotype();
+
+ /**
+ * Returns a new object of class '<em>Tag</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Tag</em>'.
+ * @generated
+ */
+ Tag createTag();
+
+ /**
+ * Returns a new object of class '<em>Scene</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Scene</em>'.
+ * @generated
+ */
+ Scene createScene();
+
+ /**
+ * Returns a new object of class '<em>Integer Property</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Integer Property</em>'.
+ * @generated
+ */
+ IntegerProperty createIntegerProperty();
+
+ /**
+ * Returns a new object of class '<em>Constraint</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Constraint</em>'.
+ * @generated
+ */
+ Constraint createConstraint();
+
+ /**
+ * Returns a new object of class '<em>Let Statement</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Let Statement</em>'.
+ * @generated
+ */
+ LetStatement createLetStatement();
+
+ /**
+ * Returns a new object of class '<em>Complex Expression</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Complex Expression</em>'.
+ * @generated
+ */
+ ComplexExpression createComplexExpression();
+
+ /**
+ * Returns a new object of class '<em>Is Type Of</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Is Type Of</em>'.
+ * @generated
+ */
+ IsTypeOf createIsTypeOf();
+
+ /**
+ * Returns a new object of class '<em>Object Reference</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Object Reference</em>'.
+ * @generated
+ */
+ ObjectReference createObjectReference();
+
+ /**
+ * Returns a new object of class '<em>Previous Modifier</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Previous Modifier</em>'.
+ * @generated
+ */
+ PreviousModifier createPreviousModifier();
+
+ /**
+ * Returns a new object of class '<em>Greater Than Operator</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Greater Than Operator</em>'.
+ * @generated
+ */
+ GreaterThanOperator createGreaterThanOperator();
+
+ /**
+ * Returns a new object of class '<em>Much Greater Than Operator</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Much Greater Than Operator</em>'.
+ * @generated
+ */
+ MuchGreaterThanOperator createMuchGreaterThanOperator();
+
+ /**
+ * Returns a new object of class '<em>Lower Than Operator</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Lower Than Operator</em>'.
+ * @generated
+ */
+ LowerThanOperator createLowerThanOperator();
+
+ /**
+ * Returns a new object of class '<em>Equal To Operator</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Equal To Operator</em>'.
+ * @generated
+ */
+ EqualToOperator createEqualToOperator();
+
+ /**
+ * Returns a new object of class '<em>Comparison And</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Comparison And</em>'.
+ * @generated
+ */
+ ComparisonAnd createComparisonAnd();
+
+ /**
+ * Returns a new object of class '<em>And Operator</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>And Operator</em>'.
+ * @generated
+ */
+ AndOperator createAndOperator();
+
+ /**
+ * Returns a new object of class '<em>Or Operator</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Or Operator</em>'.
+ * @generated
+ */
+ OrOperator createOrOperator();
+
+ /**
+ * Returns a new object of class '<em>Not Operator</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Not Operator</em>'.
+ * @generated
+ */
+ NotOperator createNotOperator();
+
+ /**
+ * Returns a new object of class '<em>Is Equal To Operator</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Is Equal To Operator</em>'.
+ * @generated
+ */
+ IsEqualToOperator createIsEqualToOperator();
+
+ /**
+ * Returns a new object of class '<em>Is Greater Than Operator</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Is Greater Than Operator</em>'.
+ * @generated
+ */
+ IsGreaterThanOperator createIsGreaterThanOperator();
+
+ /**
+ * Returns a new object of class '<em>Is Lower Than Operator</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Is Lower Than Operator</em>'.
+ * @generated
+ */
+ IsLowerThanOperator createIsLowerThanOperator();
+
+ /**
+ * Returns a new object of class '<em>Is Greater Than Equal Operator</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Is Greater Than Equal Operator</em>'.
+ * @generated
+ */
+ IsGreaterThanEqualOperator createIsGreaterThanEqualOperator();
+
+ /**
+ * Returns a new object of class '<em>Is Lower Than Equal Operator</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Is Lower Than Equal Operator</em>'.
+ * @generated
+ */
+ IsLowerThanEqualOperator createIsLowerThanEqualOperator();
+
+ /**
+ * Returns a new object of class '<em>Plus Operator</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Plus Operator</em>'.
+ * @generated
+ */
+ PlusOperator createPlusOperator();
+
+ /**
+ * Returns a new object of class '<em>Implies Operator</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Implies Operator</em>'.
+ * @generated
+ */
+ ImpliesOperator createImpliesOperator();
+
+ /**
+ * Returns a new object of class '<em>Is Active</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Is Active</em>'.
+ * @generated
+ */
+ IsActive createIsActive();
+
+ /**
+ * Returns a new object of class '<em>Get Allocatables</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Get Allocatables</em>'.
+ * @generated
+ */
+ GetAllocatables createGetAllocatables();
+
+ /**
+ * Returns a new object of class '<em>Has Been Displayed</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Has Been Displayed</em>'.
+ * @generated
+ */
+ HasBeenDisplayed createHasBeenDisplayed();
+
+ /**
+ * Returns a new object of class '<em>Active State</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Active State</em>'.
+ * @generated
+ */
+ ActiveState createActiveState();
+
+ /**
+ * Returns a new object of class '<em>Object Compare</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Object Compare</em>'.
+ * @generated
+ */
+ ObjectCompare createObjectCompare();
+
+ /**
+ * Returns a new object of class '<em>That Of Operator</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>That Of Operator</em>'.
+ * @generated
+ */
+ ThatOfOperator createThatOfOperator();
+
+ /**
+ * Returns a new object of class '<em>Max Value</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Max Value</em>'.
+ * @generated
+ */
+ MaxValue createMaxValue();
+
+ /**
+ * Returns a new object of class '<em>Min Value</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Min Value</em>'.
+ * @generated
+ */
+ MinValue createMinValue();
+
+ /**
+ * Returns a new object of class '<em>None Value</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>None Value</em>'.
+ * @generated
+ */
+ NoneValue createNoneValue();
+
+ /**
+ * Returns a new object of class '<em>Standard Value</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Standard Value</em>'.
+ * @generated
+ */
+ StandardValue createStandardValue();
+
+ /**
+ * Returns a new object of class '<em>Integer Value</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Integer Value</em>'.
+ * @generated
+ */
+ IntegerValue createIntegerValue();
+
+ /**
+ * Returns a new object of class '<em>Loser Type Expression</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Loser Type Expression</em>'.
+ * @generated
+ */
+ LoserTypeExpression createLoserTypeExpression();
+
+ /**
+ * Returns a new object of class '<em>Arbitration Policy Expression</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Arbitration Policy Expression</em>'.
+ * @generated
+ */
+ ArbitrationPolicyExpression createArbitrationPolicyExpression();
+
+ /**
+ * Returns a new object of class '<em>Size Operator</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Size Operator</em>'.
+ * @generated
+ */
+ SizeOperator createSizeOperator();
+
+ /**
+ * Returns a new object of class '<em>Exists Operator</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Exists Operator</em>'.
+ * @generated
+ */
+ ExistsOperator createExistsOperator();
+
+ /**
+ * Returns a new object of class '<em>For All Operator</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>For All Operator</em>'.
+ * @generated
+ */
+ ForAllOperator createForAllOperator();
+
+ /**
+ * Returns a new object of class '<em>Max Operator</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Max Operator</em>'.
+ * @generated
+ */
+ MaxOperator createMaxOperator();
+
+ /**
+ * Returns a new object of class '<em>Min Operator</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Min Operator</em>'.
+ * @generated
+ */
+ MinOperator createMinOperator();
+
+ /**
+ * Returns a new object of class '<em>Select Operator</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Select Operator</em>'.
+ * @generated
+ */
+ SelectOperator createSelectOperator();
+
+ /**
+ * Returns a new object of class '<em>Set Of Operator</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Set Of Operator</em>'.
+ * @generated
+ */
+ SetOfOperator createSetOfOperator();
+
+ /**
+ * Returns a new object of class '<em>Lambda Expression</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Lambda Expression</em>'.
+ * @generated
+ */
+ LambdaExpression createLambdaExpression();
+
+ /**
+ * Returns a new object of class '<em>Variable</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Variable</em>'.
+ * @generated
+ */
+ Variable createVariable();
+
+ /**
+ * 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>Is On</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Is On</em>'.
+ * @generated
+ */
+ IsOn createIsOn();
+
+ /**
+ * Returns a new object of class '<em>Allocated Content</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Allocated Content</em>'.
+ * @generated
+ */
+ AllocatedContent createAllocatedContent();
+
+ /**
+ * Returns a new object of class '<em>Content Value</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Content Value</em>'.
+ * @generated
+ */
+ ContentValue createContentValue();
+
+ /**
+ * Returns a new object of class '<em>Get Contents List</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Get Contents List</em>'.
+ * @generated
+ */
+ GetContentsList createGetContentsList();
+
+ /**
+ * Returns a new object of class '<em>Active Contents</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Active Contents</em>'.
+ * @generated
+ */
+ ActiveContents createActiveContents();
+
+ /**
+ * Returns a new object of class '<em>Get Property</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Get Property</em>'.
+ * @generated
+ */
+ GetProperty createGetProperty();
+
+ /**
+ * Returns a new object of class '<em>State Value</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>State Value</em>'.
+ * @generated
+ */
+ StateValue createStateValue();
+
+ /**
+ * Returns a new object of class '<em>Has Come Later Than</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Has Come Later Than</em>'.
+ * @generated
+ */
+ HasComeLaterThan createHasComeLaterThan();
+
+ /**
+ * Returns a new object of class '<em>Has Come Earlier Than</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Has Come Earlier Than</em>'.
+ * @generated
+ */
+ HasComeEarlierThan createHasComeEarlierThan();
+
+ /**
+ * Returns a new object of class '<em>Object Compare Not</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Object Compare Not</em>'.
+ * @generated
+ */
+ ObjectCompareNot createObjectCompareNot();
+
+ /**
+ * Returns a new object of class '<em>Is Allocated To</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Is Allocated To</em>'.
+ * @generated
+ */
+ IsAllocatedTo createIsAllocatedTo();
+
+ /**
+ * Returns a new object of class '<em>Is Changed</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Is Changed</em>'.
+ * @generated
+ */
+ IsChanged createIsChanged();
+
+ /**
+ * Returns a new object of class '<em>Is Translated To</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Is Translated To</em>'.
+ * @generated
+ */
+ IsTranslatedTo createIsTranslatedTo();
+
+ /**
+ * Returns a new object of class '<em>Get State</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Get State</em>'.
+ * @generated
+ */
+ GetState createGetState();
+
+ /**
+ * 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 the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ RBACorePackage getRBACorePackage();
+
+} //RBACoreFactory
diff --git a/rba.model.core/src/rba/core/RBACorePackage.java b/rba.model.core/src/rba/core/RBACorePackage.java
new file mode 100644
index 0000000..478f129
--- /dev/null
+++ b/rba.model.core/src/rba/core/RBACorePackage.java
@@ -0,0 +1,14216 @@
+/**
+ */
+package rba.core;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EOperation;
+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 operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see rba.core.RBACoreFactory
+ * @model kind="package"
+ * annotation="http://www.eclipse.org/OCL/Import ecore='http://www.eclipse.org/emf/2002/Ecore'"
+ * @generated
+ */
+public interface RBACorePackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "core";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.denso.com/ict/rba/core";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "RbaCore";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ RBACorePackage eINSTANCE = rba.core.impl.RBACorePackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.ModelElementImpl <em>Model Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ModelElementImpl
+ * @see rba.core.impl.RBACorePackageImpl#getModelElement()
+ * @generated
+ */
+ int MODEL_ELEMENT = 0;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL_ELEMENT__DESCRIPTION = 0;
+
+ /**
+ * The number of structural features of the '<em>Model Element</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL_ELEMENT_FEATURE_COUNT = 1;
+
+ /**
+ * The number of operations of the '<em>Model Element</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL_ELEMENT_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.NamedElementImpl <em>Named Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.NamedElementImpl
+ * @see rba.core.impl.RBACorePackageImpl#getNamedElement()
+ * @generated
+ */
+ int NAMED_ELEMENT = 1;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NAMED_ELEMENT__DESCRIPTION = MODEL_ELEMENT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NAMED_ELEMENT__NAME = MODEL_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Named Element</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NAMED_ELEMENT_FEATURE_COUNT = MODEL_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Named Element</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NAMED_ELEMENT_OPERATION_COUNT = MODEL_ELEMENT_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.PackagableElementImpl <em>Packagable Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.PackagableElementImpl
+ * @see rba.core.impl.RBACorePackageImpl#getPackagableElement()
+ * @generated
+ */
+ int PACKAGABLE_ELEMENT = 6;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PACKAGABLE_ELEMENT__DESCRIPTION = NAMED_ELEMENT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PACKAGABLE_ELEMENT__NAME = NAMED_ELEMENT__NAME;
+
+ /**
+ * The number of structural features of the '<em>Packagable Element</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PACKAGABLE_ELEMENT_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Packagable Element</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PACKAGABLE_ELEMENT_OPERATION_COUNT = NAMED_ELEMENT_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.RuleObjectImpl <em>Rule Object</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.RuleObjectImpl
+ * @see rba.core.impl.RBACorePackageImpl#getRuleObject()
+ * @generated
+ */
+ int RULE_OBJECT = 10;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RULE_OBJECT__DESCRIPTION = PACKAGABLE_ELEMENT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RULE_OBJECT__NAME = PACKAGABLE_ELEMENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Tags</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RULE_OBJECT__TAGS = PACKAGABLE_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Rule Object</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RULE_OBJECT_FEATURE_COUNT = PACKAGABLE_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Get Expression Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RULE_OBJECT___GET_EXPRESSION_TYPE = PACKAGABLE_ELEMENT_OPERATION_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Rule Object</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RULE_OBJECT_OPERATION_COUNT = PACKAGABLE_ELEMENT_OPERATION_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.AbstractAllocatableImpl <em>Abstract Allocatable</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.AbstractAllocatableImpl
+ * @see rba.core.impl.RBACorePackageImpl#getAbstractAllocatable()
+ * @generated
+ */
+ int ABSTRACT_ALLOCATABLE = 2;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_ALLOCATABLE__DESCRIPTION = RULE_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_ALLOCATABLE__NAME = RULE_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Tags</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_ALLOCATABLE__TAGS = RULE_OBJECT__TAGS;
+
+ /**
+ * The feature id for the '<em><b>Contents</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_ALLOCATABLE__CONTENTS = RULE_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Allocatable Group</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_ALLOCATABLE__ALLOCATABLE_GROUP = RULE_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Abstract Allocatable</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_ALLOCATABLE_FEATURE_COUNT = RULE_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The operation id for the '<em>Get Expression Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_ALLOCATABLE___GET_EXPRESSION_TYPE = RULE_OBJECT___GET_EXPRESSION_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Contents List</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_ALLOCATABLE___GET_CONTENTS_LIST = RULE_OBJECT_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Collect Leaf Allocatable</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_ALLOCATABLE___COLLECT_LEAF_ALLOCATABLE = RULE_OBJECT_OPERATION_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Abstract Allocatable</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_ALLOCATABLE_OPERATION_COUNT = RULE_OBJECT_OPERATION_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.AllocatableImpl <em>Allocatable</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.AllocatableImpl
+ * @see rba.core.impl.RBACorePackageImpl#getAllocatable()
+ * @generated
+ */
+ int ALLOCATABLE = 3;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALLOCATABLE__DESCRIPTION = ABSTRACT_ALLOCATABLE__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALLOCATABLE__NAME = ABSTRACT_ALLOCATABLE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Tags</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALLOCATABLE__TAGS = ABSTRACT_ALLOCATABLE__TAGS;
+
+ /**
+ * The feature id for the '<em><b>Contents</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALLOCATABLE__CONTENTS = ABSTRACT_ALLOCATABLE__CONTENTS;
+
+ /**
+ * The feature id for the '<em><b>Allocatable Group</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALLOCATABLE__ALLOCATABLE_GROUP = ABSTRACT_ALLOCATABLE__ALLOCATABLE_GROUP;
+
+ /**
+ * The feature id for the '<em><b>Arbitration Policy</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALLOCATABLE__ARBITRATION_POLICY = ABSTRACT_ALLOCATABLE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Visibility</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALLOCATABLE__VISIBILITY = ABSTRACT_ALLOCATABLE_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Allocatable</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALLOCATABLE_FEATURE_COUNT = ABSTRACT_ALLOCATABLE_FEATURE_COUNT + 2;
+
+ /**
+ * The operation id for the '<em>Get Expression Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALLOCATABLE___GET_EXPRESSION_TYPE = ABSTRACT_ALLOCATABLE___GET_EXPRESSION_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Contents List</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALLOCATABLE___GET_CONTENTS_LIST = ABSTRACT_ALLOCATABLE___GET_CONTENTS_LIST;
+
+ /**
+ * The operation id for the '<em>Collect Leaf Allocatable</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALLOCATABLE___COLLECT_LEAF_ALLOCATABLE = ABSTRACT_ALLOCATABLE_OPERATION_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Allocatable</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALLOCATABLE_OPERATION_COUNT = ABSTRACT_ALLOCATABLE_OPERATION_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.AllocatableSetImpl <em>Allocatable Set</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.AllocatableSetImpl
+ * @see rba.core.impl.RBACorePackageImpl#getAllocatableSet()
+ * @generated
+ */
+ int ALLOCATABLE_SET = 4;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALLOCATABLE_SET__DESCRIPTION = ABSTRACT_ALLOCATABLE__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALLOCATABLE_SET__NAME = ABSTRACT_ALLOCATABLE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Tags</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALLOCATABLE_SET__TAGS = ABSTRACT_ALLOCATABLE__TAGS;
+
+ /**
+ * The feature id for the '<em><b>Contents</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALLOCATABLE_SET__CONTENTS = ABSTRACT_ALLOCATABLE__CONTENTS;
+
+ /**
+ * The feature id for the '<em><b>Allocatable Group</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALLOCATABLE_SET__ALLOCATABLE_GROUP = ABSTRACT_ALLOCATABLE__ALLOCATABLE_GROUP;
+
+ /**
+ * The feature id for the '<em><b>Target</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALLOCATABLE_SET__TARGET = ABSTRACT_ALLOCATABLE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Allocatable Set</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALLOCATABLE_SET_FEATURE_COUNT = ABSTRACT_ALLOCATABLE_FEATURE_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Get Expression Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALLOCATABLE_SET___GET_EXPRESSION_TYPE = ABSTRACT_ALLOCATABLE___GET_EXPRESSION_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Contents List</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALLOCATABLE_SET___GET_CONTENTS_LIST = ABSTRACT_ALLOCATABLE___GET_CONTENTS_LIST;
+
+ /**
+ * The operation id for the '<em>Collect Leaf Allocatable</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALLOCATABLE_SET___COLLECT_LEAF_ALLOCATABLE = ABSTRACT_ALLOCATABLE_OPERATION_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Allocatable Set</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALLOCATABLE_SET_OPERATION_COUNT = ABSTRACT_ALLOCATABLE_OPERATION_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.PackageImpl <em>Package</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.PackageImpl
+ * @see rba.core.impl.RBACorePackageImpl#getPackage()
+ * @generated
+ */
+ int PACKAGE = 7;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PACKAGE__DESCRIPTION = PACKAGABLE_ELEMENT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PACKAGE__NAME = PACKAGABLE_ELEMENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Packagableelement</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PACKAGE__PACKAGABLEELEMENT = PACKAGABLE_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Package</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PACKAGE_FEATURE_COUNT = PACKAGABLE_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Package</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PACKAGE_OPERATION_COUNT = PACKAGABLE_ELEMENT_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.ProjectImpl <em>Project</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ProjectImpl
+ * @see rba.core.impl.RBACorePackageImpl#getProject()
+ * @generated
+ */
+ int PROJECT = 5;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROJECT__DESCRIPTION = PACKAGE__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROJECT__NAME = PACKAGE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Packagableelement</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROJECT__PACKAGABLEELEMENT = PACKAGE__PACKAGABLEELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROJECT__VERSION = PACKAGE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Dummy Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROJECT__DUMMY_NAME = PACKAGE_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Project</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROJECT_FEATURE_COUNT = PACKAGE_FEATURE_COUNT + 2;
+
+ /**
+ * The operation id for the '<em>Get Name</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROJECT___GET_NAME = PACKAGE_OPERATION_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Project</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROJECT_OPERATION_COUNT = PACKAGE_OPERATION_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.StereotypeImpl <em>Stereotype</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.StereotypeImpl
+ * @see rba.core.impl.RBACorePackageImpl#getStereotype()
+ * @generated
+ */
+ int STEREOTYPE = 8;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STEREOTYPE__DESCRIPTION = PACKAGABLE_ELEMENT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STEREOTYPE__NAME = PACKAGABLE_ELEMENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Target Model Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STEREOTYPE__TARGET_MODEL_NAME = PACKAGABLE_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Variables</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STEREOTYPE__VARIABLES = PACKAGABLE_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Body Text</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STEREOTYPE__BODY_TEXT = PACKAGABLE_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Stereotype</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STEREOTYPE_FEATURE_COUNT = PACKAGABLE_ELEMENT_FEATURE_COUNT + 3;
+
+ /**
+ * The number of operations of the '<em>Stereotype</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STEREOTYPE_OPERATION_COUNT = PACKAGABLE_ELEMENT_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.TagImpl <em>Tag</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.TagImpl
+ * @see rba.core.impl.RBACorePackageImpl#getTag()
+ * @generated
+ */
+ int TAG = 9;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TAG__DESCRIPTION = NAMED_ELEMENT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TAG__NAME = NAMED_ELEMENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Values</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TAG__VALUES = NAMED_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Tag</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TAG_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Tag</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TAG_OPERATION_COUNT = NAMED_ELEMENT_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.AbstractContentImpl <em>Abstract Content</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.AbstractContentImpl
+ * @see rba.core.impl.RBACorePackageImpl#getAbstractContent()
+ * @generated
+ */
+ int ABSTRACT_CONTENT = 11;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_CONTENT__DESCRIPTION = RULE_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_CONTENT__NAME = RULE_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Tags</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_CONTENT__TAGS = RULE_OBJECT__TAGS;
+
+ /**
+ * The feature id for the '<em><b>Content Group</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_CONTENT__CONTENT_GROUP = RULE_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Allocatable</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_CONTENT__ALLOCATABLE = RULE_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Abstract Content</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_CONTENT_FEATURE_COUNT = RULE_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The operation id for the '<em>Get Expression Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_CONTENT___GET_EXPRESSION_TYPE = RULE_OBJECT___GET_EXPRESSION_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Allocatable List</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_CONTENT___GET_ALLOCATABLE_LIST = RULE_OBJECT_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Collect Leaf Contents</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_CONTENT___COLLECT_LEAF_CONTENTS = RULE_OBJECT_OPERATION_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Abstract Content</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_CONTENT_OPERATION_COUNT = RULE_OBJECT_OPERATION_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.AbstractSceneImpl <em>Abstract Scene</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.AbstractSceneImpl
+ * @see rba.core.impl.RBACorePackageImpl#getAbstractScene()
+ * @generated
+ */
+ int ABSTRACT_SCENE = 12;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_SCENE__DESCRIPTION = RULE_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_SCENE__NAME = RULE_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Tags</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_SCENE__TAGS = RULE_OBJECT__TAGS;
+
+ /**
+ * The number of structural features of the '<em>Abstract Scene</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_SCENE_FEATURE_COUNT = RULE_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_SCENE___GET_EXPRESSION_TYPE = RULE_OBJECT___GET_EXPRESSION_TYPE;
+
+ /**
+ * The number of operations of the '<em>Abstract Scene</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_SCENE_OPERATION_COUNT = RULE_OBJECT_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.SceneImpl <em>Scene</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.SceneImpl
+ * @see rba.core.impl.RBACorePackageImpl#getScene()
+ * @generated
+ */
+ int SCENE = 13;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SCENE__DESCRIPTION = ABSTRACT_SCENE__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SCENE__NAME = ABSTRACT_SCENE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Tags</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SCENE__TAGS = ABSTRACT_SCENE__TAGS;
+
+ /**
+ * The feature id for the '<em><b>Global</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SCENE__GLOBAL = ABSTRACT_SCENE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Properties</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SCENE__PROPERTIES = ABSTRACT_SCENE_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Scene</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SCENE_FEATURE_COUNT = ABSTRACT_SCENE_FEATURE_COUNT + 2;
+
+ /**
+ * The operation id for the '<em>Get Expression Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SCENE___GET_EXPRESSION_TYPE = ABSTRACT_SCENE_OPERATION_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Scene</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SCENE_OPERATION_COUNT = ABSTRACT_SCENE_OPERATION_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.ContentImpl <em>Content</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ContentImpl
+ * @see rba.core.impl.RBACorePackageImpl#getContent()
+ * @generated
+ */
+ int CONTENT = 14;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT__DESCRIPTION = ABSTRACT_CONTENT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT__NAME = ABSTRACT_CONTENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Tags</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT__TAGS = ABSTRACT_CONTENT__TAGS;
+
+ /**
+ * The feature id for the '<em><b>Content Group</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT__CONTENT_GROUP = ABSTRACT_CONTENT__CONTENT_GROUP;
+
+ /**
+ * The feature id for the '<em><b>Allocatable</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT__ALLOCATABLE = ABSTRACT_CONTENT__ALLOCATABLE;
+
+ /**
+ * The feature id for the '<em><b>Loser Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT__LOSER_TYPE = ABSTRACT_CONTENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>States</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT__STATES = ABSTRACT_CONTENT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Content</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT_FEATURE_COUNT = ABSTRACT_CONTENT_FEATURE_COUNT + 2;
+
+ /**
+ * The operation id for the '<em>Get Expression Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT___GET_EXPRESSION_TYPE = ABSTRACT_CONTENT___GET_EXPRESSION_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Allocatable List</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT___GET_ALLOCATABLE_LIST = ABSTRACT_CONTENT___GET_ALLOCATABLE_LIST;
+
+ /**
+ * The operation id for the '<em>Collect Leaf Contents</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT___COLLECT_LEAF_CONTENTS = ABSTRACT_CONTENT_OPERATION_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Content</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT_OPERATION_COUNT = ABSTRACT_CONTENT_OPERATION_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.ContentSetImpl <em>Content Set</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ContentSetImpl
+ * @see rba.core.impl.RBACorePackageImpl#getContentSet()
+ * @generated
+ */
+ int CONTENT_SET = 15;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT_SET__DESCRIPTION = ABSTRACT_CONTENT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT_SET__NAME = ABSTRACT_CONTENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Tags</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT_SET__TAGS = ABSTRACT_CONTENT__TAGS;
+
+ /**
+ * The feature id for the '<em><b>Content Group</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT_SET__CONTENT_GROUP = ABSTRACT_CONTENT__CONTENT_GROUP;
+
+ /**
+ * The feature id for the '<em><b>Allocatable</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT_SET__ALLOCATABLE = ABSTRACT_CONTENT__ALLOCATABLE;
+
+ /**
+ * The feature id for the '<em><b>Target</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT_SET__TARGET = ABSTRACT_CONTENT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Content Set</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT_SET_FEATURE_COUNT = ABSTRACT_CONTENT_FEATURE_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Get Expression Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT_SET___GET_EXPRESSION_TYPE = ABSTRACT_CONTENT___GET_EXPRESSION_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Allocatable List</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT_SET___GET_ALLOCATABLE_LIST = ABSTRACT_CONTENT___GET_ALLOCATABLE_LIST;
+
+ /**
+ * The operation id for the '<em>Collect Leaf Contents</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT_SET___COLLECT_LEAF_CONTENTS = ABSTRACT_CONTENT_OPERATION_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Content Set</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT_SET_OPERATION_COUNT = ABSTRACT_CONTENT_OPERATION_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.ContentStateImpl <em>Content State</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ContentStateImpl
+ * @see rba.core.impl.RBACorePackageImpl#getContentState()
+ * @generated
+ */
+ int CONTENT_STATE = 16;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT_STATE__DESCRIPTION = RULE_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT_STATE__NAME = RULE_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Tags</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT_STATE__TAGS = RULE_OBJECT__TAGS;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT_STATE__VALUE = RULE_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Owner</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT_STATE__OWNER = RULE_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Content State</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT_STATE_FEATURE_COUNT = RULE_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The operation id for the '<em>Get Expression Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT_STATE___GET_EXPRESSION_TYPE = RULE_OBJECT___GET_EXPRESSION_TYPE;
+
+ /**
+ * The number of operations of the '<em>Content State</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT_STATE_OPERATION_COUNT = RULE_OBJECT_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.AbstractPropertyImpl <em>Abstract Property</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.AbstractPropertyImpl
+ * @see rba.core.impl.RBACorePackageImpl#getAbstractProperty()
+ * @generated
+ */
+ int ABSTRACT_PROPERTY = 17;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_PROPERTY__DESCRIPTION = RULE_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_PROPERTY__NAME = RULE_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Tags</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_PROPERTY__TAGS = RULE_OBJECT__TAGS;
+
+ /**
+ * The feature id for the '<em><b>Owner</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_PROPERTY__OWNER = RULE_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Abstract Property</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_PROPERTY_FEATURE_COUNT = RULE_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Get Expression Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_PROPERTY___GET_EXPRESSION_TYPE = RULE_OBJECT_OPERATION_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Abstract Property</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_PROPERTY_OPERATION_COUNT = RULE_OBJECT_OPERATION_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.IntegerPropertyImpl <em>Integer Property</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.IntegerPropertyImpl
+ * @see rba.core.impl.RBACorePackageImpl#getIntegerProperty()
+ * @generated
+ */
+ int INTEGER_PROPERTY = 18;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INTEGER_PROPERTY__DESCRIPTION = ABSTRACT_PROPERTY__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INTEGER_PROPERTY__NAME = ABSTRACT_PROPERTY__NAME;
+
+ /**
+ * The feature id for the '<em><b>Tags</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INTEGER_PROPERTY__TAGS = ABSTRACT_PROPERTY__TAGS;
+
+ /**
+ * The feature id for the '<em><b>Owner</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INTEGER_PROPERTY__OWNER = ABSTRACT_PROPERTY__OWNER;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INTEGER_PROPERTY__VALUE = ABSTRACT_PROPERTY_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Integer Property</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INTEGER_PROPERTY_FEATURE_COUNT = ABSTRACT_PROPERTY_FEATURE_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Get Expression Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INTEGER_PROPERTY___GET_EXPRESSION_TYPE = ABSTRACT_PROPERTY___GET_EXPRESSION_TYPE;
+
+ /**
+ * The number of operations of the '<em>Integer Property</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INTEGER_PROPERTY_OPERATION_COUNT = ABSTRACT_PROPERTY_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.AbstractConstraintImpl <em>Abstract Constraint</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.AbstractConstraintImpl
+ * @see rba.core.impl.RBACorePackageImpl#getAbstractConstraint()
+ * @generated
+ */
+ int ABSTRACT_CONSTRAINT = 19;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_CONSTRAINT__DESCRIPTION = PACKAGABLE_ELEMENT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_CONSTRAINT__NAME = PACKAGABLE_ELEMENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_CONSTRAINT__EXPRESSION = PACKAGABLE_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Abstract Constraint</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_CONSTRAINT_FEATURE_COUNT = PACKAGABLE_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Abstract Constraint</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_CONSTRAINT_OPERATION_COUNT = PACKAGABLE_ELEMENT_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.ConstraintImpl <em>Constraint</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ConstraintImpl
+ * @see rba.core.impl.RBACorePackageImpl#getConstraint()
+ * @generated
+ */
+ int CONSTRAINT = 20;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTRAINT__DESCRIPTION = ABSTRACT_CONSTRAINT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTRAINT__NAME = ABSTRACT_CONSTRAINT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTRAINT__EXPRESSION = ABSTRACT_CONSTRAINT__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Runtime</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTRAINT__RUNTIME = ABSTRACT_CONSTRAINT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Constraint</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTRAINT_FEATURE_COUNT = ABSTRACT_CONSTRAINT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Constraint</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTRAINT_OPERATION_COUNT = ABSTRACT_CONSTRAINT_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.ExpressionImpl <em>Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ExpressionImpl
+ * @see rba.core.impl.RBACorePackageImpl#getExpression()
+ * @generated
+ */
+ int EXPRESSION = 21;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXPRESSION__TYPE = 0;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXPRESSION__EXPRESSION = 1;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXPRESSION__LET_STATEMENTS = 2;
+
+ /**
+ * The number of structural features of the '<em>Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXPRESSION_FEATURE_COUNT = 3;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXPRESSION___GET_UNDERLYING_TYPE = 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXPRESSION___GET_EXPRESSION_TEXT = 1;
+
+ /**
+ * The number of operations of the '<em>Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXPRESSION_OPERATION_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.LetStatementImpl <em>Let Statement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.LetStatementImpl
+ * @see rba.core.impl.RBACorePackageImpl#getLetStatement()
+ * @generated
+ */
+ int LET_STATEMENT = 22;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LET_STATEMENT__DESCRIPTION = MODEL_ELEMENT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Variable</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LET_STATEMENT__VARIABLE = MODEL_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Body</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LET_STATEMENT__BODY = MODEL_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Let Statement</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LET_STATEMENT_FEATURE_COUNT = MODEL_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The operation id for the '<em>To String</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LET_STATEMENT___TO_STRING = MODEL_ELEMENT_OPERATION_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Let Statement</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LET_STATEMENT_OPERATION_COUNT = MODEL_ELEMENT_OPERATION_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.ComplexExpressionImpl <em>Complex Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ComplexExpressionImpl
+ * @see rba.core.impl.RBACorePackageImpl#getComplexExpression()
+ * @generated
+ */
+ int COMPLEX_EXPRESSION = 23;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPLEX_EXPRESSION__TYPE = EXPRESSION__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPLEX_EXPRESSION__EXPRESSION = EXPRESSION__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPLEX_EXPRESSION__LET_STATEMENTS = EXPRESSION__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Other Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPLEX_EXPRESSION__OTHER_EXPRESSION = EXPRESSION_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Complex Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPLEX_EXPRESSION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Get Expanded</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPLEX_EXPRESSION___GET_EXPANDED = EXPRESSION_OPERATION_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Can Expand</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPLEX_EXPRESSION___CAN_EXPAND = EXPRESSION_OPERATION_COUNT + 2;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPLEX_EXPRESSION___GET_EXPRESSION_TEXT = EXPRESSION_OPERATION_COUNT + 3;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPLEX_EXPRESSION___GET_UNDERLYING_TYPE = EXPRESSION_OPERATION_COUNT + 4;
+
+ /**
+ * The operation id for the '<em>Get Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPLEX_EXPRESSION___GET_TYPE = EXPRESSION_OPERATION_COUNT + 5;
+
+ /**
+ * The number of operations of the '<em>Complex Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPLEX_EXPRESSION_OPERATION_COUNT = EXPRESSION_OPERATION_COUNT + 6;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.OperatorImpl <em>Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.OperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getOperator()
+ * @generated
+ */
+ int OPERATOR = 24;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OPERATOR__TYPE = EXPRESSION__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OPERATOR__EXPRESSION = EXPRESSION__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OPERATOR__LET_STATEMENTS = EXPRESSION__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OPERATOR__OPERAND = EXPRESSION_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OPERATOR_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OPERATOR___GET_UNDERLYING_TYPE = EXPRESSION___GET_UNDERLYING_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OPERATOR___GET_EXPRESSION_TEXT = EXPRESSION___GET_EXPRESSION_TEXT;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OPERATOR___GET_SYMBOL = EXPRESSION_OPERATION_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OPERATOR_OPERATION_COUNT = EXPRESSION_OPERATION_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.IsTypeOfImpl <em>Is Type Of</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.IsTypeOfImpl
+ * @see rba.core.impl.RBACorePackageImpl#getIsTypeOf()
+ * @generated
+ */
+ int IS_TYPE_OF = 25;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_TYPE_OF__TYPE = OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_TYPE_OF__EXPRESSION = OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_TYPE_OF__LET_STATEMENTS = OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_TYPE_OF__OPERAND = OPERATOR__OPERAND;
+
+ /**
+ * The feature id for the '<em><b>Tag Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_TYPE_OF__TAG_NAME = OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Is Type Of</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_TYPE_OF_FEATURE_COUNT = OPERATOR_FEATURE_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_TYPE_OF___GET_EXPRESSION_TEXT = OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_TYPE_OF___GET_SYMBOL = OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_TYPE_OF___GET_UNDERLYING_TYPE = OPERATOR_OPERATION_COUNT + 2;
+
+ /**
+ * The number of operations of the '<em>Is Type Of</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_TYPE_OF_OPERATION_COUNT = OPERATOR_OPERATION_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.ObjectReferenceImpl <em>Object Reference</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ObjectReferenceImpl
+ * @see rba.core.impl.RBACorePackageImpl#getObjectReference()
+ * @generated
+ */
+ int OBJECT_REFERENCE = 26;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OBJECT_REFERENCE__TYPE = EXPRESSION__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OBJECT_REFERENCE__EXPRESSION = EXPRESSION__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OBJECT_REFERENCE__LET_STATEMENTS = EXPRESSION__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Ref Object</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OBJECT_REFERENCE__REF_OBJECT = EXPRESSION_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Object Reference</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OBJECT_REFERENCE_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OBJECT_REFERENCE___GET_UNDERLYING_TYPE = EXPRESSION_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OBJECT_REFERENCE___GET_EXPRESSION_TEXT = EXPRESSION_OPERATION_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Object Reference</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OBJECT_REFERENCE_OPERATION_COUNT = EXPRESSION_OPERATION_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.PreviousModifierImpl <em>Previous Modifier</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.PreviousModifierImpl
+ * @see rba.core.impl.RBACorePackageImpl#getPreviousModifier()
+ * @generated
+ */
+ int PREVIOUS_MODIFIER = 27;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PREVIOUS_MODIFIER__TYPE = EXPRESSION__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PREVIOUS_MODIFIER__EXPRESSION = EXPRESSION__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PREVIOUS_MODIFIER__LET_STATEMENTS = EXPRESSION__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Obj Reference</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PREVIOUS_MODIFIER__OBJ_REFERENCE = EXPRESSION_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Previous Modifier</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PREVIOUS_MODIFIER_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PREVIOUS_MODIFIER___GET_SYMBOL = EXPRESSION_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PREVIOUS_MODIFIER___GET_UNDERLYING_TYPE = EXPRESSION_OPERATION_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PREVIOUS_MODIFIER___GET_EXPRESSION_TEXT = EXPRESSION_OPERATION_COUNT + 2;
+
+ /**
+ * The number of operations of the '<em>Previous Modifier</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PREVIOUS_MODIFIER_OPERATION_COUNT = EXPRESSION_OPERATION_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.ComparisonOperatorImpl <em>Comparison Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ComparisonOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getComparisonOperator()
+ * @generated
+ */
+ int COMPARISON_OPERATOR = 31;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPARISON_OPERATOR__TYPE = OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPARISON_OPERATOR__EXPRESSION = OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPARISON_OPERATOR__LET_STATEMENTS = OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPARISON_OPERATOR__OPERAND = OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Comparison Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPARISON_OPERATOR_FEATURE_COUNT = OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPARISON_OPERATOR___GET_SYMBOL = OPERATOR___GET_SYMBOL;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPARISON_OPERATOR___GET_UNDERLYING_TYPE = OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPARISON_OPERATOR___GET_EXPRESSION_TEXT = OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Comparison Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPARISON_OPERATOR_OPERATION_COUNT = OPERATOR_OPERATION_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.GreaterThanOperatorImpl <em>Greater Than Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.GreaterThanOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getGreaterThanOperator()
+ * @generated
+ */
+ int GREATER_THAN_OPERATOR = 28;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GREATER_THAN_OPERATOR__TYPE = COMPARISON_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GREATER_THAN_OPERATOR__EXPRESSION = COMPARISON_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GREATER_THAN_OPERATOR__LET_STATEMENTS = COMPARISON_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GREATER_THAN_OPERATOR__OPERAND = COMPARISON_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Greater Than Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GREATER_THAN_OPERATOR_FEATURE_COUNT = COMPARISON_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GREATER_THAN_OPERATOR___GET_UNDERLYING_TYPE = COMPARISON_OPERATOR___GET_UNDERLYING_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GREATER_THAN_OPERATOR___GET_EXPRESSION_TEXT = COMPARISON_OPERATOR___GET_EXPRESSION_TEXT;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GREATER_THAN_OPERATOR___GET_SYMBOL = COMPARISON_OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Greater Than Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GREATER_THAN_OPERATOR_OPERATION_COUNT = COMPARISON_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.MuchGreaterThanOperatorImpl <em>Much Greater Than Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.MuchGreaterThanOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getMuchGreaterThanOperator()
+ * @generated
+ */
+ int MUCH_GREATER_THAN_OPERATOR = 29;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MUCH_GREATER_THAN_OPERATOR__TYPE = COMPARISON_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MUCH_GREATER_THAN_OPERATOR__EXPRESSION = COMPARISON_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MUCH_GREATER_THAN_OPERATOR__LET_STATEMENTS = COMPARISON_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MUCH_GREATER_THAN_OPERATOR__OPERAND = COMPARISON_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Much Greater Than Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MUCH_GREATER_THAN_OPERATOR_FEATURE_COUNT = COMPARISON_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MUCH_GREATER_THAN_OPERATOR___GET_UNDERLYING_TYPE = COMPARISON_OPERATOR___GET_UNDERLYING_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MUCH_GREATER_THAN_OPERATOR___GET_EXPRESSION_TEXT = COMPARISON_OPERATOR___GET_EXPRESSION_TEXT;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MUCH_GREATER_THAN_OPERATOR___GET_SYMBOL = COMPARISON_OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Much Greater Than Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MUCH_GREATER_THAN_OPERATOR_OPERATION_COUNT = COMPARISON_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.LowerThanOperatorImpl <em>Lower Than Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.LowerThanOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getLowerThanOperator()
+ * @generated
+ */
+ int LOWER_THAN_OPERATOR = 30;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOWER_THAN_OPERATOR__TYPE = COMPARISON_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOWER_THAN_OPERATOR__EXPRESSION = COMPARISON_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOWER_THAN_OPERATOR__LET_STATEMENTS = COMPARISON_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOWER_THAN_OPERATOR__OPERAND = COMPARISON_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Lower Than Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOWER_THAN_OPERATOR_FEATURE_COUNT = COMPARISON_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOWER_THAN_OPERATOR___GET_UNDERLYING_TYPE = COMPARISON_OPERATOR___GET_UNDERLYING_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOWER_THAN_OPERATOR___GET_EXPRESSION_TEXT = COMPARISON_OPERATOR___GET_EXPRESSION_TEXT;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOWER_THAN_OPERATOR___GET_SYMBOL = COMPARISON_OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Lower Than Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOWER_THAN_OPERATOR_OPERATION_COUNT = COMPARISON_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.EqualToOperatorImpl <em>Equal To Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.EqualToOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getEqualToOperator()
+ * @generated
+ */
+ int EQUAL_TO_OPERATOR = 32;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EQUAL_TO_OPERATOR__TYPE = COMPARISON_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EQUAL_TO_OPERATOR__EXPRESSION = COMPARISON_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EQUAL_TO_OPERATOR__LET_STATEMENTS = COMPARISON_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EQUAL_TO_OPERATOR__OPERAND = COMPARISON_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Equal To Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EQUAL_TO_OPERATOR_FEATURE_COUNT = COMPARISON_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EQUAL_TO_OPERATOR___GET_UNDERLYING_TYPE = COMPARISON_OPERATOR___GET_UNDERLYING_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EQUAL_TO_OPERATOR___GET_EXPRESSION_TEXT = COMPARISON_OPERATOR___GET_EXPRESSION_TEXT;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EQUAL_TO_OPERATOR___GET_SYMBOL = COMPARISON_OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Equal To Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EQUAL_TO_OPERATOR_OPERATION_COUNT = COMPARISON_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.ComparisonAndImpl <em>Comparison And</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ComparisonAndImpl
+ * @see rba.core.impl.RBACorePackageImpl#getComparisonAnd()
+ * @generated
+ */
+ int COMPARISON_AND = 33;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPARISON_AND__TYPE = COMPARISON_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPARISON_AND__EXPRESSION = COMPARISON_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPARISON_AND__LET_STATEMENTS = COMPARISON_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPARISON_AND__OPERAND = COMPARISON_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Comparison And</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPARISON_AND_FEATURE_COUNT = COMPARISON_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPARISON_AND___GET_UNDERLYING_TYPE = COMPARISON_OPERATOR___GET_UNDERLYING_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPARISON_AND___GET_SYMBOL = COMPARISON_OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPARISON_AND___GET_EXPRESSION_TEXT = COMPARISON_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Comparison And</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPARISON_AND_OPERATION_COUNT = COMPARISON_OPERATOR_OPERATION_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.LogicalOperatorImpl <em>Logical Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.LogicalOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getLogicalOperator()
+ * @generated
+ */
+ int LOGICAL_OPERATOR = 34;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOGICAL_OPERATOR__TYPE = OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOGICAL_OPERATOR__EXPRESSION = OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOGICAL_OPERATOR__LET_STATEMENTS = OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOGICAL_OPERATOR__OPERAND = OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Logical Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOGICAL_OPERATOR_FEATURE_COUNT = OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOGICAL_OPERATOR___GET_SYMBOL = OPERATOR___GET_SYMBOL;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOGICAL_OPERATOR___GET_UNDERLYING_TYPE = OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOGICAL_OPERATOR___GET_EXPRESSION_TEXT = OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Logical Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOGICAL_OPERATOR_OPERATION_COUNT = OPERATOR_OPERATION_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.AndOperatorImpl <em>And Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.AndOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getAndOperator()
+ * @generated
+ */
+ int AND_OPERATOR = 35;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AND_OPERATOR__TYPE = LOGICAL_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AND_OPERATOR__EXPRESSION = LOGICAL_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AND_OPERATOR__LET_STATEMENTS = LOGICAL_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AND_OPERATOR__OPERAND = LOGICAL_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>And Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AND_OPERATOR_FEATURE_COUNT = LOGICAL_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AND_OPERATOR___GET_UNDERLYING_TYPE = LOGICAL_OPERATOR___GET_UNDERLYING_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AND_OPERATOR___GET_EXPRESSION_TEXT = LOGICAL_OPERATOR___GET_EXPRESSION_TEXT;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AND_OPERATOR___GET_SYMBOL = LOGICAL_OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>And Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AND_OPERATOR_OPERATION_COUNT = LOGICAL_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.OrOperatorImpl <em>Or Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.OrOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getOrOperator()
+ * @generated
+ */
+ int OR_OPERATOR = 36;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OR_OPERATOR__TYPE = LOGICAL_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OR_OPERATOR__EXPRESSION = LOGICAL_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OR_OPERATOR__LET_STATEMENTS = LOGICAL_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OR_OPERATOR__OPERAND = LOGICAL_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Or Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OR_OPERATOR_FEATURE_COUNT = LOGICAL_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OR_OPERATOR___GET_UNDERLYING_TYPE = LOGICAL_OPERATOR___GET_UNDERLYING_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OR_OPERATOR___GET_EXPRESSION_TEXT = LOGICAL_OPERATOR___GET_EXPRESSION_TEXT;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OR_OPERATOR___GET_SYMBOL = LOGICAL_OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Or Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OR_OPERATOR_OPERATION_COUNT = LOGICAL_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.NotOperatorImpl <em>Not Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.NotOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getNotOperator()
+ * @generated
+ */
+ int NOT_OPERATOR = 37;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NOT_OPERATOR__TYPE = LOGICAL_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NOT_OPERATOR__EXPRESSION = LOGICAL_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NOT_OPERATOR__LET_STATEMENTS = LOGICAL_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NOT_OPERATOR__OPERAND = LOGICAL_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Not Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NOT_OPERATOR_FEATURE_COUNT = LOGICAL_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NOT_OPERATOR___GET_UNDERLYING_TYPE = LOGICAL_OPERATOR___GET_UNDERLYING_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NOT_OPERATOR___GET_SYMBOL = LOGICAL_OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NOT_OPERATOR___GET_EXPRESSION_TEXT = LOGICAL_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Not Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NOT_OPERATOR_OPERATION_COUNT = LOGICAL_OPERATOR_OPERATION_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.IsEqualToOperatorImpl <em>Is Equal To Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.IsEqualToOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getIsEqualToOperator()
+ * @generated
+ */
+ int IS_EQUAL_TO_OPERATOR = 38;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_EQUAL_TO_OPERATOR__TYPE = LOGICAL_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_EQUAL_TO_OPERATOR__EXPRESSION = LOGICAL_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_EQUAL_TO_OPERATOR__LET_STATEMENTS = LOGICAL_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_EQUAL_TO_OPERATOR__OPERAND = LOGICAL_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Is Equal To Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_EQUAL_TO_OPERATOR_FEATURE_COUNT = LOGICAL_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_EQUAL_TO_OPERATOR___GET_UNDERLYING_TYPE = LOGICAL_OPERATOR___GET_UNDERLYING_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_EQUAL_TO_OPERATOR___GET_EXPRESSION_TEXT = LOGICAL_OPERATOR___GET_EXPRESSION_TEXT;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_EQUAL_TO_OPERATOR___GET_SYMBOL = LOGICAL_OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Is Equal To Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_EQUAL_TO_OPERATOR_OPERATION_COUNT = LOGICAL_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.IsGreaterThanOperatorImpl <em>Is Greater Than Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.IsGreaterThanOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getIsGreaterThanOperator()
+ * @generated
+ */
+ int IS_GREATER_THAN_OPERATOR = 39;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_GREATER_THAN_OPERATOR__TYPE = LOGICAL_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_GREATER_THAN_OPERATOR__EXPRESSION = LOGICAL_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_GREATER_THAN_OPERATOR__LET_STATEMENTS = LOGICAL_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_GREATER_THAN_OPERATOR__OPERAND = LOGICAL_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Is Greater Than Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_GREATER_THAN_OPERATOR_FEATURE_COUNT = LOGICAL_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_GREATER_THAN_OPERATOR___GET_UNDERLYING_TYPE = LOGICAL_OPERATOR___GET_UNDERLYING_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_GREATER_THAN_OPERATOR___GET_EXPRESSION_TEXT = LOGICAL_OPERATOR___GET_EXPRESSION_TEXT;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_GREATER_THAN_OPERATOR___GET_SYMBOL = LOGICAL_OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Is Greater Than Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_GREATER_THAN_OPERATOR_OPERATION_COUNT = LOGICAL_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.IsLowerThanOperatorImpl <em>Is Lower Than Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.IsLowerThanOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getIsLowerThanOperator()
+ * @generated
+ */
+ int IS_LOWER_THAN_OPERATOR = 40;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_LOWER_THAN_OPERATOR__TYPE = LOGICAL_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_LOWER_THAN_OPERATOR__EXPRESSION = LOGICAL_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_LOWER_THAN_OPERATOR__LET_STATEMENTS = LOGICAL_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_LOWER_THAN_OPERATOR__OPERAND = LOGICAL_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Is Lower Than Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_LOWER_THAN_OPERATOR_FEATURE_COUNT = LOGICAL_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_LOWER_THAN_OPERATOR___GET_UNDERLYING_TYPE = LOGICAL_OPERATOR___GET_UNDERLYING_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_LOWER_THAN_OPERATOR___GET_EXPRESSION_TEXT = LOGICAL_OPERATOR___GET_EXPRESSION_TEXT;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_LOWER_THAN_OPERATOR___GET_SYMBOL = LOGICAL_OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Is Lower Than Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_LOWER_THAN_OPERATOR_OPERATION_COUNT = LOGICAL_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.IsGreaterThanEqualOperatorImpl <em>Is Greater Than Equal Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.IsGreaterThanEqualOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getIsGreaterThanEqualOperator()
+ * @generated
+ */
+ int IS_GREATER_THAN_EQUAL_OPERATOR = 41;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_GREATER_THAN_EQUAL_OPERATOR__TYPE = LOGICAL_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_GREATER_THAN_EQUAL_OPERATOR__EXPRESSION = LOGICAL_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_GREATER_THAN_EQUAL_OPERATOR__LET_STATEMENTS = LOGICAL_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_GREATER_THAN_EQUAL_OPERATOR__OPERAND = LOGICAL_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Is Greater Than Equal Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_GREATER_THAN_EQUAL_OPERATOR_FEATURE_COUNT = LOGICAL_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_GREATER_THAN_EQUAL_OPERATOR___GET_UNDERLYING_TYPE = LOGICAL_OPERATOR___GET_UNDERLYING_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_GREATER_THAN_EQUAL_OPERATOR___GET_EXPRESSION_TEXT = LOGICAL_OPERATOR___GET_EXPRESSION_TEXT;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_GREATER_THAN_EQUAL_OPERATOR___GET_SYMBOL = LOGICAL_OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Is Greater Than Equal Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_GREATER_THAN_EQUAL_OPERATOR_OPERATION_COUNT = LOGICAL_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.IsLowerThanEqualOperatorImpl <em>Is Lower Than Equal Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.IsLowerThanEqualOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getIsLowerThanEqualOperator()
+ * @generated
+ */
+ int IS_LOWER_THAN_EQUAL_OPERATOR = 42;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_LOWER_THAN_EQUAL_OPERATOR__TYPE = LOGICAL_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_LOWER_THAN_EQUAL_OPERATOR__EXPRESSION = LOGICAL_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_LOWER_THAN_EQUAL_OPERATOR__LET_STATEMENTS = LOGICAL_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_LOWER_THAN_EQUAL_OPERATOR__OPERAND = LOGICAL_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Is Lower Than Equal Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_LOWER_THAN_EQUAL_OPERATOR_FEATURE_COUNT = LOGICAL_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_LOWER_THAN_EQUAL_OPERATOR___GET_UNDERLYING_TYPE = LOGICAL_OPERATOR___GET_UNDERLYING_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_LOWER_THAN_EQUAL_OPERATOR___GET_EXPRESSION_TEXT = LOGICAL_OPERATOR___GET_EXPRESSION_TEXT;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_LOWER_THAN_EQUAL_OPERATOR___GET_SYMBOL = LOGICAL_OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Is Lower Than Equal Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_LOWER_THAN_EQUAL_OPERATOR_OPERATION_COUNT = LOGICAL_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.ArithmeticOperatorImpl <em>Arithmetic Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ArithmeticOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getArithmeticOperator()
+ * @generated
+ */
+ int ARITHMETIC_OPERATOR = 43;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARITHMETIC_OPERATOR__TYPE = OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARITHMETIC_OPERATOR__EXPRESSION = OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARITHMETIC_OPERATOR__LET_STATEMENTS = OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARITHMETIC_OPERATOR__OPERAND = OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Arithmetic Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARITHMETIC_OPERATOR_FEATURE_COUNT = OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARITHMETIC_OPERATOR___GET_SYMBOL = OPERATOR___GET_SYMBOL;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARITHMETIC_OPERATOR___GET_UNDERLYING_TYPE = OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARITHMETIC_OPERATOR___GET_EXPRESSION_TEXT = OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Arithmetic Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARITHMETIC_OPERATOR_OPERATION_COUNT = OPERATOR_OPERATION_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.PlusOperatorImpl <em>Plus Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.PlusOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getPlusOperator()
+ * @generated
+ */
+ int PLUS_OPERATOR = 44;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLUS_OPERATOR__TYPE = ARITHMETIC_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLUS_OPERATOR__EXPRESSION = ARITHMETIC_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLUS_OPERATOR__LET_STATEMENTS = ARITHMETIC_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLUS_OPERATOR__OPERAND = ARITHMETIC_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Plus Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLUS_OPERATOR_FEATURE_COUNT = ARITHMETIC_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLUS_OPERATOR___GET_UNDERLYING_TYPE = ARITHMETIC_OPERATOR___GET_UNDERLYING_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLUS_OPERATOR___GET_EXPRESSION_TEXT = ARITHMETIC_OPERATOR___GET_EXPRESSION_TEXT;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLUS_OPERATOR___GET_SYMBOL = ARITHMETIC_OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Plus Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLUS_OPERATOR_OPERATION_COUNT = ARITHMETIC_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.ImpliesOperatorImpl <em>Implies Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ImpliesOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getImpliesOperator()
+ * @generated
+ */
+ int IMPLIES_OPERATOR = 45;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMPLIES_OPERATOR__TYPE = LOGICAL_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMPLIES_OPERATOR__EXPRESSION = LOGICAL_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMPLIES_OPERATOR__LET_STATEMENTS = LOGICAL_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMPLIES_OPERATOR__OPERAND = LOGICAL_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Implies Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMPLIES_OPERATOR_FEATURE_COUNT = LOGICAL_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMPLIES_OPERATOR___GET_UNDERLYING_TYPE = LOGICAL_OPERATOR___GET_UNDERLYING_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMPLIES_OPERATOR___GET_EXPRESSION_TEXT = LOGICAL_OPERATOR___GET_EXPRESSION_TEXT;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMPLIES_OPERATOR___GET_SYMBOL = LOGICAL_OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Implies Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMPLIES_OPERATOR_OPERATION_COUNT = LOGICAL_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.ContentOperatorImpl <em>Content Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ContentOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getContentOperator()
+ * @generated
+ */
+ int CONTENT_OPERATOR = 46;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT_OPERATOR__TYPE = OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT_OPERATOR__EXPRESSION = OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT_OPERATOR__LET_STATEMENTS = OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT_OPERATOR__OPERAND = OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Content Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT_OPERATOR_FEATURE_COUNT = OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT_OPERATOR___GET_UNDERLYING_TYPE = OPERATOR___GET_UNDERLYING_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT_OPERATOR___GET_SYMBOL = OPERATOR___GET_SYMBOL;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT_OPERATOR___GET_EXPRESSION_TEXT = OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Content Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT_OPERATOR_OPERATION_COUNT = OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.IsActiveImpl <em>Is Active</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.IsActiveImpl
+ * @see rba.core.impl.RBACorePackageImpl#getIsActive()
+ * @generated
+ */
+ int IS_ACTIVE = 47;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_ACTIVE__TYPE = CONTENT_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_ACTIVE__EXPRESSION = CONTENT_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_ACTIVE__LET_STATEMENTS = CONTENT_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_ACTIVE__OPERAND = CONTENT_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Is Active</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_ACTIVE_FEATURE_COUNT = CONTENT_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_ACTIVE___GET_EXPRESSION_TEXT = CONTENT_OPERATOR___GET_EXPRESSION_TEXT;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_ACTIVE___GET_SYMBOL = CONTENT_OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_ACTIVE___GET_UNDERLYING_TYPE = CONTENT_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Is Active</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_ACTIVE_OPERATION_COUNT = CONTENT_OPERATOR_OPERATION_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.GetAllocatablesImpl <em>Get Allocatables</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.GetAllocatablesImpl
+ * @see rba.core.impl.RBACorePackageImpl#getGetAllocatables()
+ * @generated
+ */
+ int GET_ALLOCATABLES = 48;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GET_ALLOCATABLES__TYPE = CONTENT_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GET_ALLOCATABLES__EXPRESSION = CONTENT_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GET_ALLOCATABLES__LET_STATEMENTS = CONTENT_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GET_ALLOCATABLES__OPERAND = CONTENT_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Get Allocatables</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GET_ALLOCATABLES_FEATURE_COUNT = CONTENT_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GET_ALLOCATABLES___GET_EXPRESSION_TEXT = CONTENT_OPERATOR___GET_EXPRESSION_TEXT;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GET_ALLOCATABLES___GET_SYMBOL = CONTENT_OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GET_ALLOCATABLES___GET_UNDERLYING_TYPE = CONTENT_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Get Allocatables</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GET_ALLOCATABLES_OPERATION_COUNT = CONTENT_OPERATOR_OPERATION_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.HasBeenDisplayedImpl <em>Has Been Displayed</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.HasBeenDisplayedImpl
+ * @see rba.core.impl.RBACorePackageImpl#getHasBeenDisplayed()
+ * @generated
+ */
+ int HAS_BEEN_DISPLAYED = 49;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HAS_BEEN_DISPLAYED__TYPE = CONTENT_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HAS_BEEN_DISPLAYED__EXPRESSION = CONTENT_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HAS_BEEN_DISPLAYED__LET_STATEMENTS = CONTENT_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HAS_BEEN_DISPLAYED__OPERAND = CONTENT_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Has Been Displayed</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HAS_BEEN_DISPLAYED_FEATURE_COUNT = CONTENT_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HAS_BEEN_DISPLAYED___GET_EXPRESSION_TEXT = CONTENT_OPERATOR___GET_EXPRESSION_TEXT;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HAS_BEEN_DISPLAYED___GET_SYMBOL = CONTENT_OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HAS_BEEN_DISPLAYED___GET_UNDERLYING_TYPE = CONTENT_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Has Been Displayed</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HAS_BEEN_DISPLAYED_OPERATION_COUNT = CONTENT_OPERATOR_OPERATION_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.ActiveStateImpl <em>Active State</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ActiveStateImpl
+ * @see rba.core.impl.RBACorePackageImpl#getActiveState()
+ * @generated
+ */
+ int ACTIVE_STATE = 50;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ACTIVE_STATE__TYPE = CONTENT_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ACTIVE_STATE__EXPRESSION = CONTENT_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ACTIVE_STATE__LET_STATEMENTS = CONTENT_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ACTIVE_STATE__OPERAND = CONTENT_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Active State</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ACTIVE_STATE_FEATURE_COUNT = CONTENT_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ACTIVE_STATE___GET_EXPRESSION_TEXT = CONTENT_OPERATOR___GET_EXPRESSION_TEXT;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ACTIVE_STATE___GET_SYMBOL = CONTENT_OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ACTIVE_STATE___GET_UNDERLYING_TYPE = CONTENT_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Active State</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ACTIVE_STATE_OPERATION_COUNT = CONTENT_OPERATOR_OPERATION_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.ObjectCompareImpl <em>Object Compare</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ObjectCompareImpl
+ * @see rba.core.impl.RBACorePackageImpl#getObjectCompare()
+ * @generated
+ */
+ int OBJECT_COMPARE = 51;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OBJECT_COMPARE__TYPE = OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OBJECT_COMPARE__EXPRESSION = OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OBJECT_COMPARE__LET_STATEMENTS = OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OBJECT_COMPARE__OPERAND = OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Object Compare</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OBJECT_COMPARE_FEATURE_COUNT = OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OBJECT_COMPARE___GET_SYMBOL = OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OBJECT_COMPARE___GET_UNDERLYING_TYPE = OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OBJECT_COMPARE___GET_EXPRESSION_TEXT = OPERATOR_OPERATION_COUNT + 2;
+
+ /**
+ * The number of operations of the '<em>Object Compare</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OBJECT_COMPARE_OPERATION_COUNT = OPERATOR_OPERATION_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.ThatOfOperatorImpl <em>That Of Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ThatOfOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getThatOfOperator()
+ * @generated
+ */
+ int THAT_OF_OPERATOR = 52;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int THAT_OF_OPERATOR__TYPE = OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int THAT_OF_OPERATOR__EXPRESSION = OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int THAT_OF_OPERATOR__LET_STATEMENTS = OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int THAT_OF_OPERATOR__OPERAND = OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>That Of Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int THAT_OF_OPERATOR_FEATURE_COUNT = OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int THAT_OF_OPERATOR___GET_EXPRESSION_TEXT = OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int THAT_OF_OPERATOR___GET_SYMBOL = OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int THAT_OF_OPERATOR___GET_UNDERLYING_TYPE = OPERATOR_OPERATION_COUNT + 2;
+
+ /**
+ * The number of operations of the '<em>That Of Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int THAT_OF_OPERATOR_OPERATION_COUNT = OPERATOR_OPERATION_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.ValueExpressionImpl <em>Value Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ValueExpressionImpl
+ * @see rba.core.impl.RBACorePackageImpl#getValueExpression()
+ * @generated
+ */
+ int VALUE_EXPRESSION = 53;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VALUE_EXPRESSION__TYPE = EXPRESSION__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VALUE_EXPRESSION__EXPRESSION = EXPRESSION__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VALUE_EXPRESSION__LET_STATEMENTS = EXPRESSION__LET_STATEMENTS;
+
+ /**
+ * The number of structural features of the '<em>Value Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VALUE_EXPRESSION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VALUE_EXPRESSION___GET_EXPRESSION_TEXT = EXPRESSION___GET_EXPRESSION_TEXT;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VALUE_EXPRESSION___GET_UNDERLYING_TYPE = EXPRESSION_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Value</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VALUE_EXPRESSION___GET_EXPRESSION_VALUE = EXPRESSION_OPERATION_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Get Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VALUE_EXPRESSION___GET_TYPE = EXPRESSION_OPERATION_COUNT + 2;
+
+ /**
+ * The number of operations of the '<em>Value Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VALUE_EXPRESSION_OPERATION_COUNT = EXPRESSION_OPERATION_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.MaxValueImpl <em>Max Value</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.MaxValueImpl
+ * @see rba.core.impl.RBACorePackageImpl#getMaxValue()
+ * @generated
+ */
+ int MAX_VALUE = 54;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_VALUE__TYPE = VALUE_EXPRESSION__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_VALUE__EXPRESSION = VALUE_EXPRESSION__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_VALUE__LET_STATEMENTS = VALUE_EXPRESSION__LET_STATEMENTS;
+
+ /**
+ * The number of structural features of the '<em>Max Value</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_VALUE_FEATURE_COUNT = VALUE_EXPRESSION_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_VALUE___GET_UNDERLYING_TYPE = VALUE_EXPRESSION___GET_UNDERLYING_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_VALUE___GET_TYPE = VALUE_EXPRESSION___GET_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_VALUE___GET_EXPRESSION_TEXT = VALUE_EXPRESSION_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Value</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_VALUE___GET_EXPRESSION_VALUE = VALUE_EXPRESSION_OPERATION_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Max Value</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_VALUE_OPERATION_COUNT = VALUE_EXPRESSION_OPERATION_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.MinValueImpl <em>Min Value</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.MinValueImpl
+ * @see rba.core.impl.RBACorePackageImpl#getMinValue()
+ * @generated
+ */
+ int MIN_VALUE = 55;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MIN_VALUE__TYPE = VALUE_EXPRESSION__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MIN_VALUE__EXPRESSION = VALUE_EXPRESSION__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MIN_VALUE__LET_STATEMENTS = VALUE_EXPRESSION__LET_STATEMENTS;
+
+ /**
+ * The number of structural features of the '<em>Min Value</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MIN_VALUE_FEATURE_COUNT = VALUE_EXPRESSION_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MIN_VALUE___GET_UNDERLYING_TYPE = VALUE_EXPRESSION___GET_UNDERLYING_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MIN_VALUE___GET_TYPE = VALUE_EXPRESSION___GET_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MIN_VALUE___GET_EXPRESSION_TEXT = VALUE_EXPRESSION_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Value</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MIN_VALUE___GET_EXPRESSION_VALUE = VALUE_EXPRESSION_OPERATION_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Min Value</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MIN_VALUE_OPERATION_COUNT = VALUE_EXPRESSION_OPERATION_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.NoneValueImpl <em>None Value</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.NoneValueImpl
+ * @see rba.core.impl.RBACorePackageImpl#getNoneValue()
+ * @generated
+ */
+ int NONE_VALUE = 56;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NONE_VALUE__TYPE = VALUE_EXPRESSION__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NONE_VALUE__EXPRESSION = VALUE_EXPRESSION__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NONE_VALUE__LET_STATEMENTS = VALUE_EXPRESSION__LET_STATEMENTS;
+
+ /**
+ * The number of structural features of the '<em>None Value</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NONE_VALUE_FEATURE_COUNT = VALUE_EXPRESSION_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NONE_VALUE___GET_UNDERLYING_TYPE = VALUE_EXPRESSION___GET_UNDERLYING_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NONE_VALUE___GET_TYPE = VALUE_EXPRESSION___GET_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NONE_VALUE___GET_EXPRESSION_TEXT = VALUE_EXPRESSION_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Value</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NONE_VALUE___GET_EXPRESSION_VALUE = VALUE_EXPRESSION_OPERATION_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>None Value</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NONE_VALUE_OPERATION_COUNT = VALUE_EXPRESSION_OPERATION_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.StandardValueImpl <em>Standard Value</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.StandardValueImpl
+ * @see rba.core.impl.RBACorePackageImpl#getStandardValue()
+ * @generated
+ */
+ int STANDARD_VALUE = 57;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STANDARD_VALUE__TYPE = VALUE_EXPRESSION__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STANDARD_VALUE__EXPRESSION = VALUE_EXPRESSION__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STANDARD_VALUE__LET_STATEMENTS = VALUE_EXPRESSION__LET_STATEMENTS;
+
+ /**
+ * The number of structural features of the '<em>Standard Value</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STANDARD_VALUE_FEATURE_COUNT = VALUE_EXPRESSION_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STANDARD_VALUE___GET_UNDERLYING_TYPE = VALUE_EXPRESSION___GET_UNDERLYING_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STANDARD_VALUE___GET_TYPE = VALUE_EXPRESSION___GET_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STANDARD_VALUE___GET_EXPRESSION_TEXT = VALUE_EXPRESSION_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Value</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STANDARD_VALUE___GET_EXPRESSION_VALUE = VALUE_EXPRESSION_OPERATION_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Standard Value</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STANDARD_VALUE_OPERATION_COUNT = VALUE_EXPRESSION_OPERATION_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.IntegerValueImpl <em>Integer Value</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.IntegerValueImpl
+ * @see rba.core.impl.RBACorePackageImpl#getIntegerValue()
+ * @generated
+ */
+ int INTEGER_VALUE = 58;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INTEGER_VALUE__TYPE = VALUE_EXPRESSION__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INTEGER_VALUE__EXPRESSION = VALUE_EXPRESSION__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INTEGER_VALUE__LET_STATEMENTS = VALUE_EXPRESSION__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INTEGER_VALUE__VALUE = VALUE_EXPRESSION_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Integer Value</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INTEGER_VALUE_FEATURE_COUNT = VALUE_EXPRESSION_FEATURE_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INTEGER_VALUE___GET_UNDERLYING_TYPE = VALUE_EXPRESSION___GET_UNDERLYING_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INTEGER_VALUE___GET_TYPE = VALUE_EXPRESSION___GET_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INTEGER_VALUE___GET_EXPRESSION_TEXT = VALUE_EXPRESSION_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Value</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INTEGER_VALUE___GET_EXPRESSION_VALUE = VALUE_EXPRESSION_OPERATION_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Integer Value</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INTEGER_VALUE_OPERATION_COUNT = VALUE_EXPRESSION_OPERATION_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.EnumExpressionImpl <em>Enum Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.EnumExpressionImpl
+ * @see rba.core.impl.RBACorePackageImpl#getEnumExpression()
+ * @generated
+ */
+ int ENUM_EXPRESSION = 59;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ENUM_EXPRESSION__TYPE = EXPRESSION__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ENUM_EXPRESSION__EXPRESSION = EXPRESSION__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ENUM_EXPRESSION__LET_STATEMENTS = EXPRESSION__LET_STATEMENTS;
+
+ /**
+ * The number of structural features of the '<em>Enum Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ENUM_EXPRESSION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ENUM_EXPRESSION___GET_EXPRESSION_TEXT = EXPRESSION___GET_EXPRESSION_TEXT;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ENUM_EXPRESSION___GET_UNDERLYING_TYPE = EXPRESSION_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Value</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ENUM_EXPRESSION___GET_EXPRESSION_VALUE = EXPRESSION_OPERATION_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Get Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ENUM_EXPRESSION___GET_TYPE = EXPRESSION_OPERATION_COUNT + 2;
+
+ /**
+ * The number of operations of the '<em>Enum Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ENUM_EXPRESSION_OPERATION_COUNT = EXPRESSION_OPERATION_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.LoserTypeExpressionImpl <em>Loser Type Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.LoserTypeExpressionImpl
+ * @see rba.core.impl.RBACorePackageImpl#getLoserTypeExpression()
+ * @generated
+ */
+ int LOSER_TYPE_EXPRESSION = 60;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSER_TYPE_EXPRESSION__TYPE = ENUM_EXPRESSION__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSER_TYPE_EXPRESSION__EXPRESSION = ENUM_EXPRESSION__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSER_TYPE_EXPRESSION__LET_STATEMENTS = ENUM_EXPRESSION__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSER_TYPE_EXPRESSION__VALUE = ENUM_EXPRESSION_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Loser Type Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSER_TYPE_EXPRESSION_FEATURE_COUNT = ENUM_EXPRESSION_FEATURE_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSER_TYPE_EXPRESSION___GET_UNDERLYING_TYPE = ENUM_EXPRESSION___GET_UNDERLYING_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSER_TYPE_EXPRESSION___GET_TYPE = ENUM_EXPRESSION___GET_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSER_TYPE_EXPRESSION___GET_EXPRESSION_TEXT = ENUM_EXPRESSION_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Value</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSER_TYPE_EXPRESSION___GET_EXPRESSION_VALUE = ENUM_EXPRESSION_OPERATION_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Loser Type Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSER_TYPE_EXPRESSION_OPERATION_COUNT = ENUM_EXPRESSION_OPERATION_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.ArbitrationPolicyExpressionImpl <em>Arbitration Policy Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ArbitrationPolicyExpressionImpl
+ * @see rba.core.impl.RBACorePackageImpl#getArbitrationPolicyExpression()
+ * @generated
+ */
+ int ARBITRATION_POLICY_EXPRESSION = 61;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARBITRATION_POLICY_EXPRESSION__TYPE = ENUM_EXPRESSION__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARBITRATION_POLICY_EXPRESSION__EXPRESSION = ENUM_EXPRESSION__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARBITRATION_POLICY_EXPRESSION__LET_STATEMENTS = ENUM_EXPRESSION__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARBITRATION_POLICY_EXPRESSION__VALUE = ENUM_EXPRESSION_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Arbitration Policy Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARBITRATION_POLICY_EXPRESSION_FEATURE_COUNT = ENUM_EXPRESSION_FEATURE_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARBITRATION_POLICY_EXPRESSION___GET_UNDERLYING_TYPE = ENUM_EXPRESSION___GET_UNDERLYING_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARBITRATION_POLICY_EXPRESSION___GET_TYPE = ENUM_EXPRESSION___GET_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARBITRATION_POLICY_EXPRESSION___GET_EXPRESSION_TEXT = ENUM_EXPRESSION_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Value</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARBITRATION_POLICY_EXPRESSION___GET_EXPRESSION_VALUE = ENUM_EXPRESSION_OPERATION_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Arbitration Policy Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARBITRATION_POLICY_EXPRESSION_OPERATION_COUNT = ENUM_EXPRESSION_OPERATION_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.SetExpressionImpl <em>Set Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.SetExpressionImpl
+ * @see rba.core.impl.RBACorePackageImpl#getSetExpression()
+ * @generated
+ */
+ int SET_EXPRESSION = 62;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SET_EXPRESSION__TYPE = EXPRESSION__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SET_EXPRESSION__EXPRESSION = EXPRESSION__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SET_EXPRESSION__LET_STATEMENTS = EXPRESSION__LET_STATEMENTS;
+
+ /**
+ * The number of structural features of the '<em>Set Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SET_EXPRESSION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SET_EXPRESSION___GET_UNDERLYING_TYPE = EXPRESSION___GET_UNDERLYING_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SET_EXPRESSION___GET_EXPRESSION_TEXT = EXPRESSION___GET_EXPRESSION_TEXT;
+
+ /**
+ * The number of operations of the '<em>Set Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SET_EXPRESSION_OPERATION_COUNT = EXPRESSION_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.SetOperatorImpl <em>Set Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.SetOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getSetOperator()
+ * @generated
+ */
+ int SET_OPERATOR = 63;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SET_OPERATOR__TYPE = OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SET_OPERATOR__EXPRESSION = OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SET_OPERATOR__LET_STATEMENTS = OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SET_OPERATOR__OPERAND = OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Set Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SET_OPERATOR_FEATURE_COUNT = OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SET_OPERATOR___GET_UNDERLYING_TYPE = OPERATOR___GET_UNDERLYING_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SET_OPERATOR___GET_EXPRESSION_TEXT = OPERATOR___GET_EXPRESSION_TEXT;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SET_OPERATOR___GET_SYMBOL = OPERATOR___GET_SYMBOL;
+
+ /**
+ * The number of operations of the '<em>Set Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SET_OPERATOR_OPERATION_COUNT = OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.SizeOperatorImpl <em>Size Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.SizeOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getSizeOperator()
+ * @generated
+ */
+ int SIZE_OPERATOR = 64;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIZE_OPERATOR__TYPE = SET_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIZE_OPERATOR__EXPRESSION = SET_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIZE_OPERATOR__LET_STATEMENTS = SET_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIZE_OPERATOR__OPERAND = SET_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Size Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIZE_OPERATOR_FEATURE_COUNT = SET_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIZE_OPERATOR___GET_EXPRESSION_TEXT = SET_OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIZE_OPERATOR___GET_SYMBOL = SET_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIZE_OPERATOR___GET_UNDERLYING_TYPE = SET_OPERATOR_OPERATION_COUNT + 2;
+
+ /**
+ * The number of operations of the '<em>Size Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIZE_OPERATOR_OPERATION_COUNT = SET_OPERATOR_OPERATION_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.LambdaContextImpl <em>Lambda Context</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.LambdaContextImpl
+ * @see rba.core.impl.RBACorePackageImpl#getLambdaContext()
+ * @generated
+ */
+ int LAMBDA_CONTEXT = 73;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAMBDA_CONTEXT__TYPE = SET_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAMBDA_CONTEXT__EXPRESSION = SET_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAMBDA_CONTEXT__LET_STATEMENTS = SET_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAMBDA_CONTEXT__OPERAND = SET_OPERATOR__OPERAND;
+
+ /**
+ * The feature id for the '<em><b>Lambda</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAMBDA_CONTEXT__LAMBDA = SET_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Lambda Context</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAMBDA_CONTEXT_FEATURE_COUNT = SET_OPERATOR_FEATURE_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAMBDA_CONTEXT___GET_UNDERLYING_TYPE = SET_OPERATOR___GET_UNDERLYING_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAMBDA_CONTEXT___GET_EXPRESSION_TEXT = SET_OPERATOR___GET_EXPRESSION_TEXT;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAMBDA_CONTEXT___GET_SYMBOL = SET_OPERATOR___GET_SYMBOL;
+
+ /**
+ * The operation id for the '<em>Get Context Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAMBDA_CONTEXT___GET_CONTEXT_TYPE = SET_OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Lambda Context</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAMBDA_CONTEXT_OPERATION_COUNT = SET_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.ExistsOperatorImpl <em>Exists Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ExistsOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getExistsOperator()
+ * @generated
+ */
+ int EXISTS_OPERATOR = 65;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXISTS_OPERATOR__TYPE = LAMBDA_CONTEXT__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXISTS_OPERATOR__EXPRESSION = LAMBDA_CONTEXT__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXISTS_OPERATOR__LET_STATEMENTS = LAMBDA_CONTEXT__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXISTS_OPERATOR__OPERAND = LAMBDA_CONTEXT__OPERAND;
+
+ /**
+ * The feature id for the '<em><b>Lambda</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXISTS_OPERATOR__LAMBDA = LAMBDA_CONTEXT__LAMBDA;
+
+ /**
+ * The number of structural features of the '<em>Exists Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXISTS_OPERATOR_FEATURE_COUNT = LAMBDA_CONTEXT_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Context Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXISTS_OPERATOR___GET_CONTEXT_TYPE = LAMBDA_CONTEXT___GET_CONTEXT_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXISTS_OPERATOR___GET_EXPRESSION_TEXT = LAMBDA_CONTEXT_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXISTS_OPERATOR___GET_SYMBOL = LAMBDA_CONTEXT_OPERATION_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXISTS_OPERATOR___GET_UNDERLYING_TYPE = LAMBDA_CONTEXT_OPERATION_COUNT + 2;
+
+ /**
+ * The number of operations of the '<em>Exists Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXISTS_OPERATOR_OPERATION_COUNT = LAMBDA_CONTEXT_OPERATION_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.ForAllOperatorImpl <em>For All Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ForAllOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getForAllOperator()
+ * @generated
+ */
+ int FOR_ALL_OPERATOR = 66;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FOR_ALL_OPERATOR__TYPE = LAMBDA_CONTEXT__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FOR_ALL_OPERATOR__EXPRESSION = LAMBDA_CONTEXT__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FOR_ALL_OPERATOR__LET_STATEMENTS = LAMBDA_CONTEXT__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FOR_ALL_OPERATOR__OPERAND = LAMBDA_CONTEXT__OPERAND;
+
+ /**
+ * The feature id for the '<em><b>Lambda</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FOR_ALL_OPERATOR__LAMBDA = LAMBDA_CONTEXT__LAMBDA;
+
+ /**
+ * The number of structural features of the '<em>For All Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FOR_ALL_OPERATOR_FEATURE_COUNT = LAMBDA_CONTEXT_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Context Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FOR_ALL_OPERATOR___GET_CONTEXT_TYPE = LAMBDA_CONTEXT___GET_CONTEXT_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FOR_ALL_OPERATOR___GET_EXPRESSION_TEXT = LAMBDA_CONTEXT_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FOR_ALL_OPERATOR___GET_SYMBOL = LAMBDA_CONTEXT_OPERATION_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FOR_ALL_OPERATOR___GET_UNDERLYING_TYPE = LAMBDA_CONTEXT_OPERATION_COUNT + 2;
+
+ /**
+ * The number of operations of the '<em>For All Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FOR_ALL_OPERATOR_OPERATION_COUNT = LAMBDA_CONTEXT_OPERATION_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.MaxOperatorImpl <em>Max Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.MaxOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getMaxOperator()
+ * @generated
+ */
+ int MAX_OPERATOR = 67;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_OPERATOR__TYPE = LAMBDA_CONTEXT__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_OPERATOR__EXPRESSION = LAMBDA_CONTEXT__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_OPERATOR__LET_STATEMENTS = LAMBDA_CONTEXT__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_OPERATOR__OPERAND = LAMBDA_CONTEXT__OPERAND;
+
+ /**
+ * The feature id for the '<em><b>Lambda</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_OPERATOR__LAMBDA = LAMBDA_CONTEXT__LAMBDA;
+
+ /**
+ * The number of structural features of the '<em>Max Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_OPERATOR_FEATURE_COUNT = LAMBDA_CONTEXT_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Context Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_OPERATOR___GET_CONTEXT_TYPE = LAMBDA_CONTEXT___GET_CONTEXT_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_OPERATOR___GET_EXPRESSION_TEXT = LAMBDA_CONTEXT_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_OPERATOR___GET_SYMBOL = LAMBDA_CONTEXT_OPERATION_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_OPERATOR___GET_UNDERLYING_TYPE = LAMBDA_CONTEXT_OPERATION_COUNT + 2;
+
+ /**
+ * The number of operations of the '<em>Max Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_OPERATOR_OPERATION_COUNT = LAMBDA_CONTEXT_OPERATION_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.MinOperatorImpl <em>Min Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.MinOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getMinOperator()
+ * @generated
+ */
+ int MIN_OPERATOR = 68;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MIN_OPERATOR__TYPE = LAMBDA_CONTEXT__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MIN_OPERATOR__EXPRESSION = LAMBDA_CONTEXT__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MIN_OPERATOR__LET_STATEMENTS = LAMBDA_CONTEXT__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MIN_OPERATOR__OPERAND = LAMBDA_CONTEXT__OPERAND;
+
+ /**
+ * The feature id for the '<em><b>Lambda</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MIN_OPERATOR__LAMBDA = LAMBDA_CONTEXT__LAMBDA;
+
+ /**
+ * The number of structural features of the '<em>Min Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MIN_OPERATOR_FEATURE_COUNT = LAMBDA_CONTEXT_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Context Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MIN_OPERATOR___GET_CONTEXT_TYPE = LAMBDA_CONTEXT___GET_CONTEXT_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MIN_OPERATOR___GET_EXPRESSION_TEXT = LAMBDA_CONTEXT_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MIN_OPERATOR___GET_SYMBOL = LAMBDA_CONTEXT_OPERATION_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MIN_OPERATOR___GET_UNDERLYING_TYPE = LAMBDA_CONTEXT_OPERATION_COUNT + 2;
+
+ /**
+ * The number of operations of the '<em>Min Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MIN_OPERATOR_OPERATION_COUNT = LAMBDA_CONTEXT_OPERATION_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.SelectOperatorImpl <em>Select Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.SelectOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getSelectOperator()
+ * @generated
+ */
+ int SELECT_OPERATOR = 69;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SELECT_OPERATOR__TYPE = LAMBDA_CONTEXT__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SELECT_OPERATOR__EXPRESSION = LAMBDA_CONTEXT__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SELECT_OPERATOR__LET_STATEMENTS = LAMBDA_CONTEXT__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SELECT_OPERATOR__OPERAND = LAMBDA_CONTEXT__OPERAND;
+
+ /**
+ * The feature id for the '<em><b>Lambda</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SELECT_OPERATOR__LAMBDA = LAMBDA_CONTEXT__LAMBDA;
+
+ /**
+ * The number of structural features of the '<em>Select Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SELECT_OPERATOR_FEATURE_COUNT = LAMBDA_CONTEXT_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Context Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SELECT_OPERATOR___GET_CONTEXT_TYPE = LAMBDA_CONTEXT___GET_CONTEXT_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SELECT_OPERATOR___GET_EXPRESSION_TEXT = LAMBDA_CONTEXT_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SELECT_OPERATOR___GET_SYMBOL = LAMBDA_CONTEXT_OPERATION_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SELECT_OPERATOR___GET_UNDERLYING_TYPE = LAMBDA_CONTEXT_OPERATION_COUNT + 2;
+
+ /**
+ * The number of operations of the '<em>Select Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SELECT_OPERATOR_OPERATION_COUNT = LAMBDA_CONTEXT_OPERATION_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.SetOfOperatorImpl <em>Set Of Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.SetOfOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getSetOfOperator()
+ * @generated
+ */
+ int SET_OF_OPERATOR = 70;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SET_OF_OPERATOR__TYPE = OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SET_OF_OPERATOR__EXPRESSION = OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SET_OF_OPERATOR__LET_STATEMENTS = OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SET_OF_OPERATOR__OPERAND = OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Set Of Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SET_OF_OPERATOR_FEATURE_COUNT = OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SET_OF_OPERATOR___GET_EXPRESSION_TEXT = OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SET_OF_OPERATOR___GET_SYMBOL = OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SET_OF_OPERATOR___GET_UNDERLYING_TYPE = OPERATOR_OPERATION_COUNT + 2;
+
+ /**
+ * The number of operations of the '<em>Set Of Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SET_OF_OPERATOR_OPERATION_COUNT = OPERATOR_OPERATION_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.LambdaExpressionImpl <em>Lambda Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.LambdaExpressionImpl
+ * @see rba.core.impl.RBACorePackageImpl#getLambdaExpression()
+ * @generated
+ */
+ int LAMBDA_EXPRESSION = 71;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAMBDA_EXPRESSION__TYPE = EXPRESSION__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAMBDA_EXPRESSION__EXPRESSION = EXPRESSION__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAMBDA_EXPRESSION__LET_STATEMENTS = EXPRESSION__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Context</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAMBDA_EXPRESSION__CONTEXT = EXPRESSION_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>X</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAMBDA_EXPRESSION__X = EXPRESSION_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Body Text</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAMBDA_EXPRESSION__BODY_TEXT = EXPRESSION_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Lambda Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAMBDA_EXPRESSION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 3;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAMBDA_EXPRESSION___GET_EXPRESSION_TEXT = EXPRESSION_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAMBDA_EXPRESSION___GET_UNDERLYING_TYPE = EXPRESSION_OPERATION_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Lambda Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAMBDA_EXPRESSION_OPERATION_COUNT = EXPRESSION_OPERATION_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.VariableImpl <em>Variable</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.VariableImpl
+ * @see rba.core.impl.RBACorePackageImpl#getVariable()
+ * @generated
+ */
+ int VARIABLE = 72;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE__DESCRIPTION = RULE_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE__NAME = RULE_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Tags</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE__TAGS = RULE_OBJECT__TAGS;
+
+ /**
+ * The number of structural features of the '<em>Variable</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_FEATURE_COUNT = RULE_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE___GET_EXPRESSION_TYPE = RULE_OBJECT_OPERATION_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Variable</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_OPERATION_COUNT = RULE_OBJECT_OPERATION_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.IfStatementImpl <em>If Statement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.IfStatementImpl
+ * @see rba.core.impl.RBACorePackageImpl#getIfStatement()
+ * @generated
+ */
+ int IF_STATEMENT = 74;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IF_STATEMENT__TYPE = EXPRESSION__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IF_STATEMENT__EXPRESSION = EXPRESSION__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IF_STATEMENT__LET_STATEMENTS = EXPRESSION__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Condition</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IF_STATEMENT__CONDITION = EXPRESSION_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Then Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IF_STATEMENT__THEN_EXPRESSION = EXPRESSION_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Else Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IF_STATEMENT__ELSE_EXPRESSION = EXPRESSION_FEATURE_COUNT + 2;
+
+ /**
+ * 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 = EXPRESSION_FEATURE_COUNT + 3;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IF_STATEMENT___GET_UNDERLYING_TYPE = EXPRESSION_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IF_STATEMENT___GET_EXPRESSION_TEXT = EXPRESSION_OPERATION_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>If Statement</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IF_STATEMENT_OPERATION_COUNT = EXPRESSION_OPERATION_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.SceneOperatorImpl <em>Scene Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.SceneOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getSceneOperator()
+ * @generated
+ */
+ int SCENE_OPERATOR = 75;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SCENE_OPERATOR__TYPE = OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SCENE_OPERATOR__EXPRESSION = OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SCENE_OPERATOR__LET_STATEMENTS = OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SCENE_OPERATOR__OPERAND = OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Scene Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SCENE_OPERATOR_FEATURE_COUNT = OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SCENE_OPERATOR___GET_UNDERLYING_TYPE = OPERATOR___GET_UNDERLYING_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SCENE_OPERATOR___GET_SYMBOL = OPERATOR___GET_SYMBOL;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SCENE_OPERATOR___GET_EXPRESSION_TEXT = OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Scene Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SCENE_OPERATOR_OPERATION_COUNT = OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.IsOnImpl <em>Is On</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.IsOnImpl
+ * @see rba.core.impl.RBACorePackageImpl#getIsOn()
+ * @generated
+ */
+ int IS_ON = 76;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_ON__TYPE = SCENE_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_ON__EXPRESSION = SCENE_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_ON__LET_STATEMENTS = SCENE_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_ON__OPERAND = SCENE_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Is On</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_ON_FEATURE_COUNT = SCENE_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_ON___GET_EXPRESSION_TEXT = SCENE_OPERATOR___GET_EXPRESSION_TEXT;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_ON___GET_SYMBOL = SCENE_OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_ON___GET_UNDERLYING_TYPE = SCENE_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Is On</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_ON_OPERATION_COUNT = SCENE_OPERATOR_OPERATION_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.AllocatableOperatorImpl <em>Allocatable Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.AllocatableOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getAllocatableOperator()
+ * @generated
+ */
+ int ALLOCATABLE_OPERATOR = 77;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALLOCATABLE_OPERATOR__TYPE = OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALLOCATABLE_OPERATOR__EXPRESSION = OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALLOCATABLE_OPERATOR__LET_STATEMENTS = OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALLOCATABLE_OPERATOR__OPERAND = OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Allocatable Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALLOCATABLE_OPERATOR_FEATURE_COUNT = OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALLOCATABLE_OPERATOR___GET_UNDERLYING_TYPE = OPERATOR___GET_UNDERLYING_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALLOCATABLE_OPERATOR___GET_SYMBOL = OPERATOR___GET_SYMBOL;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALLOCATABLE_OPERATOR___GET_EXPRESSION_TEXT = OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Allocatable Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALLOCATABLE_OPERATOR_OPERATION_COUNT = OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.AllocatedContentImpl <em>Allocated Content</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.AllocatedContentImpl
+ * @see rba.core.impl.RBACorePackageImpl#getAllocatedContent()
+ * @generated
+ */
+ int ALLOCATED_CONTENT = 78;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALLOCATED_CONTENT__TYPE = ALLOCATABLE_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALLOCATED_CONTENT__EXPRESSION = ALLOCATABLE_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALLOCATED_CONTENT__LET_STATEMENTS = ALLOCATABLE_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALLOCATED_CONTENT__OPERAND = ALLOCATABLE_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Allocated Content</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALLOCATED_CONTENT_FEATURE_COUNT = ALLOCATABLE_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALLOCATED_CONTENT___GET_EXPRESSION_TEXT = ALLOCATABLE_OPERATOR___GET_EXPRESSION_TEXT;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALLOCATED_CONTENT___GET_SYMBOL = ALLOCATABLE_OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALLOCATED_CONTENT___GET_UNDERLYING_TYPE = ALLOCATABLE_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Allocated Content</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALLOCATED_CONTENT_OPERATION_COUNT = ALLOCATABLE_OPERATOR_OPERATION_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.ContentValueImpl <em>Content Value</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ContentValueImpl
+ * @see rba.core.impl.RBACorePackageImpl#getContentValue()
+ * @generated
+ */
+ int CONTENT_VALUE = 79;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT_VALUE__TYPE = ALLOCATABLE_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT_VALUE__EXPRESSION = ALLOCATABLE_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT_VALUE__LET_STATEMENTS = ALLOCATABLE_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT_VALUE__OPERAND = ALLOCATABLE_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Content Value</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT_VALUE_FEATURE_COUNT = ALLOCATABLE_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT_VALUE___GET_EXPRESSION_TEXT = ALLOCATABLE_OPERATOR___GET_EXPRESSION_TEXT;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT_VALUE___GET_SYMBOL = ALLOCATABLE_OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT_VALUE___GET_UNDERLYING_TYPE = ALLOCATABLE_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Content Value</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT_VALUE_OPERATION_COUNT = ALLOCATABLE_OPERATOR_OPERATION_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.GetContentsListImpl <em>Get Contents List</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.GetContentsListImpl
+ * @see rba.core.impl.RBACorePackageImpl#getGetContentsList()
+ * @generated
+ */
+ int GET_CONTENTS_LIST = 80;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GET_CONTENTS_LIST__TYPE = ALLOCATABLE_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GET_CONTENTS_LIST__EXPRESSION = ALLOCATABLE_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GET_CONTENTS_LIST__LET_STATEMENTS = ALLOCATABLE_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GET_CONTENTS_LIST__OPERAND = ALLOCATABLE_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Get Contents List</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GET_CONTENTS_LIST_FEATURE_COUNT = ALLOCATABLE_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GET_CONTENTS_LIST___GET_EXPRESSION_TEXT = ALLOCATABLE_OPERATOR___GET_EXPRESSION_TEXT;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GET_CONTENTS_LIST___GET_SYMBOL = ALLOCATABLE_OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GET_CONTENTS_LIST___GET_UNDERLYING_TYPE = ALLOCATABLE_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Get Contents List</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GET_CONTENTS_LIST_OPERATION_COUNT = ALLOCATABLE_OPERATOR_OPERATION_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.ActiveContentsImpl <em>Active Contents</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ActiveContentsImpl
+ * @see rba.core.impl.RBACorePackageImpl#getActiveContents()
+ * @generated
+ */
+ int ACTIVE_CONTENTS = 81;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ACTIVE_CONTENTS__TYPE = ALLOCATABLE_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ACTIVE_CONTENTS__EXPRESSION = ALLOCATABLE_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ACTIVE_CONTENTS__LET_STATEMENTS = ALLOCATABLE_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ACTIVE_CONTENTS__OPERAND = ALLOCATABLE_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Active Contents</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ACTIVE_CONTENTS_FEATURE_COUNT = ALLOCATABLE_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ACTIVE_CONTENTS___GET_EXPRESSION_TEXT = ALLOCATABLE_OPERATOR___GET_EXPRESSION_TEXT;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ACTIVE_CONTENTS___GET_SYMBOL = ALLOCATABLE_OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ACTIVE_CONTENTS___GET_UNDERLYING_TYPE = ALLOCATABLE_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Active Contents</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ACTIVE_CONTENTS_OPERATION_COUNT = ALLOCATABLE_OPERATOR_OPERATION_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.PropertyOperatorImpl <em>Property Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.PropertyOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getPropertyOperator()
+ * @generated
+ */
+ int PROPERTY_OPERATOR = 82;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPERTY_OPERATOR__TYPE = OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPERTY_OPERATOR__EXPRESSION = OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPERTY_OPERATOR__LET_STATEMENTS = OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPERTY_OPERATOR__OPERAND = OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Property Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPERTY_OPERATOR_FEATURE_COUNT = OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPERTY_OPERATOR___GET_SYMBOL = OPERATOR___GET_SYMBOL;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPERTY_OPERATOR___GET_UNDERLYING_TYPE = OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPERTY_OPERATOR___GET_EXPRESSION_TEXT = OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Property Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPERTY_OPERATOR_OPERATION_COUNT = OPERATOR_OPERATION_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.GetPropertyImpl <em>Get Property</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.GetPropertyImpl
+ * @see rba.core.impl.RBACorePackageImpl#getGetProperty()
+ * @generated
+ */
+ int GET_PROPERTY = 83;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GET_PROPERTY__TYPE = PROPERTY_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GET_PROPERTY__EXPRESSION = PROPERTY_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GET_PROPERTY__LET_STATEMENTS = PROPERTY_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GET_PROPERTY__OPERAND = PROPERTY_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Get Property</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GET_PROPERTY_FEATURE_COUNT = PROPERTY_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GET_PROPERTY___GET_EXPRESSION_TEXT = PROPERTY_OPERATOR___GET_EXPRESSION_TEXT;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GET_PROPERTY___GET_SYMBOL = PROPERTY_OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GET_PROPERTY___GET_UNDERLYING_TYPE = PROPERTY_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Get Property</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GET_PROPERTY_OPERATION_COUNT = PROPERTY_OPERATOR_OPERATION_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.StateValueImpl <em>State Value</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.StateValueImpl
+ * @see rba.core.impl.RBACorePackageImpl#getStateValue()
+ * @generated
+ */
+ int STATE_VALUE = 84;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATE_VALUE__TYPE = CONTENT_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATE_VALUE__EXPRESSION = CONTENT_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATE_VALUE__LET_STATEMENTS = CONTENT_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATE_VALUE__OPERAND = CONTENT_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>State Value</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATE_VALUE_FEATURE_COUNT = CONTENT_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATE_VALUE___GET_EXPRESSION_TEXT = CONTENT_OPERATOR___GET_EXPRESSION_TEXT;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATE_VALUE___GET_SYMBOL = CONTENT_OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATE_VALUE___GET_UNDERLYING_TYPE = CONTENT_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>State Value</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATE_VALUE_OPERATION_COUNT = CONTENT_OPERATOR_OPERATION_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.HasComeLaterThanImpl <em>Has Come Later Than</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.HasComeLaterThanImpl
+ * @see rba.core.impl.RBACorePackageImpl#getHasComeLaterThan()
+ * @generated
+ */
+ int HAS_COME_LATER_THAN = 85;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HAS_COME_LATER_THAN__TYPE = CONTENT_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HAS_COME_LATER_THAN__EXPRESSION = CONTENT_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HAS_COME_LATER_THAN__LET_STATEMENTS = CONTENT_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HAS_COME_LATER_THAN__OPERAND = CONTENT_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Has Come Later Than</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HAS_COME_LATER_THAN_FEATURE_COUNT = CONTENT_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HAS_COME_LATER_THAN___GET_SYMBOL = CONTENT_OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HAS_COME_LATER_THAN___GET_UNDERLYING_TYPE = CONTENT_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HAS_COME_LATER_THAN___GET_EXPRESSION_TEXT = CONTENT_OPERATOR_OPERATION_COUNT + 2;
+
+ /**
+ * The number of operations of the '<em>Has Come Later Than</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HAS_COME_LATER_THAN_OPERATION_COUNT = CONTENT_OPERATOR_OPERATION_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.HasComeEarlierThanImpl <em>Has Come Earlier Than</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.HasComeEarlierThanImpl
+ * @see rba.core.impl.RBACorePackageImpl#getHasComeEarlierThan()
+ * @generated
+ */
+ int HAS_COME_EARLIER_THAN = 86;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HAS_COME_EARLIER_THAN__TYPE = CONTENT_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HAS_COME_EARLIER_THAN__EXPRESSION = CONTENT_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HAS_COME_EARLIER_THAN__LET_STATEMENTS = CONTENT_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HAS_COME_EARLIER_THAN__OPERAND = CONTENT_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Has Come Earlier Than</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HAS_COME_EARLIER_THAN_FEATURE_COUNT = CONTENT_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HAS_COME_EARLIER_THAN___GET_SYMBOL = CONTENT_OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HAS_COME_EARLIER_THAN___GET_UNDERLYING_TYPE = CONTENT_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HAS_COME_EARLIER_THAN___GET_EXPRESSION_TEXT = CONTENT_OPERATOR_OPERATION_COUNT + 2;
+
+ /**
+ * The number of operations of the '<em>Has Come Earlier Than</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HAS_COME_EARLIER_THAN_OPERATION_COUNT = CONTENT_OPERATOR_OPERATION_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link rba.core.SugarExpression <em>Sugar Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.SugarExpression
+ * @see rba.core.impl.RBACorePackageImpl#getSugarExpression()
+ * @generated
+ */
+ int SUGAR_EXPRESSION = 87;
+
+ /**
+ * The number of structural features of the '<em>Sugar Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SUGAR_EXPRESSION_FEATURE_COUNT = 0;
+
+ /**
+ * The operation id for the '<em>Can Expand</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SUGAR_EXPRESSION___CAN_EXPAND = 0;
+
+ /**
+ * The operation id for the '<em>Get Expanded</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SUGAR_EXPRESSION___GET_EXPANDED = 1;
+
+ /**
+ * The number of operations of the '<em>Sugar Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SUGAR_EXPRESSION_OPERATION_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link rba.core.SugarExpressionBase <em>Sugar Expression Base</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.SugarExpressionBase
+ * @see rba.core.impl.RBACorePackageImpl#getSugarExpressionBase()
+ * @generated
+ */
+ int SUGAR_EXPRESSION_BASE = 88;
+
+ /**
+ * The number of structural features of the '<em>Sugar Expression Base</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SUGAR_EXPRESSION_BASE_FEATURE_COUNT = SUGAR_EXPRESSION_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expanded</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SUGAR_EXPRESSION_BASE___GET_EXPANDED = SUGAR_EXPRESSION___GET_EXPANDED;
+
+ /**
+ * The operation id for the '<em>Can Expand</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SUGAR_EXPRESSION_BASE___CAN_EXPAND = SUGAR_EXPRESSION_OPERATION_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Sugar Expression Base</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SUGAR_EXPRESSION_BASE_OPERATION_COUNT = SUGAR_EXPRESSION_OPERATION_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.ObjectCompareNotImpl <em>Object Compare Not</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ObjectCompareNotImpl
+ * @see rba.core.impl.RBACorePackageImpl#getObjectCompareNot()
+ * @generated
+ */
+ int OBJECT_COMPARE_NOT = 89;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OBJECT_COMPARE_NOT__TYPE = OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OBJECT_COMPARE_NOT__EXPRESSION = OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OBJECT_COMPARE_NOT__LET_STATEMENTS = OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OBJECT_COMPARE_NOT__OPERAND = OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Object Compare Not</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OBJECT_COMPARE_NOT_FEATURE_COUNT = OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expanded</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OBJECT_COMPARE_NOT___GET_EXPANDED = OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Can Expand</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OBJECT_COMPARE_NOT___CAN_EXPAND = OPERATOR_OPERATION_COUNT + 2;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OBJECT_COMPARE_NOT___GET_SYMBOL = OPERATOR_OPERATION_COUNT + 3;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OBJECT_COMPARE_NOT___GET_UNDERLYING_TYPE = OPERATOR_OPERATION_COUNT + 4;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OBJECT_COMPARE_NOT___GET_EXPRESSION_TEXT = OPERATOR_OPERATION_COUNT + 5;
+
+ /**
+ * The number of operations of the '<em>Object Compare Not</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OBJECT_COMPARE_NOT_OPERATION_COUNT = OPERATOR_OPERATION_COUNT + 6;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.IsAllocatedToImpl <em>Is Allocated To</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.IsAllocatedToImpl
+ * @see rba.core.impl.RBACorePackageImpl#getIsAllocatedTo()
+ * @generated
+ */
+ int IS_ALLOCATED_TO = 90;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_ALLOCATED_TO__TYPE = CONTENT_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_ALLOCATED_TO__EXPRESSION = CONTENT_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_ALLOCATED_TO__LET_STATEMENTS = CONTENT_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_ALLOCATED_TO__OPERAND = CONTENT_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Is Allocated To</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_ALLOCATED_TO_FEATURE_COUNT = CONTENT_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expanded</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_ALLOCATED_TO___GET_EXPANDED = CONTENT_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Can Expand</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_ALLOCATED_TO___CAN_EXPAND = CONTENT_OPERATOR_OPERATION_COUNT + 2;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_ALLOCATED_TO___GET_SYMBOL = CONTENT_OPERATOR_OPERATION_COUNT + 3;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_ALLOCATED_TO___GET_UNDERLYING_TYPE = CONTENT_OPERATOR_OPERATION_COUNT + 4;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_ALLOCATED_TO___GET_EXPRESSION_TEXT = CONTENT_OPERATOR_OPERATION_COUNT + 5;
+
+ /**
+ * The number of operations of the '<em>Is Allocated To</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_ALLOCATED_TO_OPERATION_COUNT = CONTENT_OPERATOR_OPERATION_COUNT + 6;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.IsChangedImpl <em>Is Changed</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.IsChangedImpl
+ * @see rba.core.impl.RBACorePackageImpl#getIsChanged()
+ * @generated
+ */
+ int IS_CHANGED = 91;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_CHANGED__TYPE = ALLOCATABLE_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_CHANGED__EXPRESSION = ALLOCATABLE_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_CHANGED__LET_STATEMENTS = ALLOCATABLE_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_CHANGED__OPERAND = ALLOCATABLE_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Is Changed</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_CHANGED_FEATURE_COUNT = ALLOCATABLE_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_CHANGED___GET_EXPRESSION_TEXT = ALLOCATABLE_OPERATOR___GET_EXPRESSION_TEXT;
+
+ /**
+ * The operation id for the '<em>Get Expanded</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_CHANGED___GET_EXPANDED = ALLOCATABLE_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Can Expand</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_CHANGED___CAN_EXPAND = ALLOCATABLE_OPERATOR_OPERATION_COUNT + 2;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_CHANGED___GET_SYMBOL = ALLOCATABLE_OPERATOR_OPERATION_COUNT + 3;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_CHANGED___GET_UNDERLYING_TYPE = ALLOCATABLE_OPERATOR_OPERATION_COUNT + 4;
+
+ /**
+ * The number of operations of the '<em>Is Changed</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_CHANGED_OPERATION_COUNT = ALLOCATABLE_OPERATOR_OPERATION_COUNT + 5;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.IsTranslatedToImpl <em>Is Translated To</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.IsTranslatedToImpl
+ * @see rba.core.impl.RBACorePackageImpl#getIsTranslatedTo()
+ * @generated
+ */
+ int IS_TRANSLATED_TO = 92;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_TRANSLATED_TO__TYPE = ALLOCATABLE_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_TRANSLATED_TO__EXPRESSION = ALLOCATABLE_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_TRANSLATED_TO__LET_STATEMENTS = ALLOCATABLE_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_TRANSLATED_TO__OPERAND = ALLOCATABLE_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Is Translated To</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_TRANSLATED_TO_FEATURE_COUNT = ALLOCATABLE_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expanded</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_TRANSLATED_TO___GET_EXPANDED = ALLOCATABLE_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Can Expand</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_TRANSLATED_TO___CAN_EXPAND = ALLOCATABLE_OPERATOR_OPERATION_COUNT + 2;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_TRANSLATED_TO___GET_SYMBOL = ALLOCATABLE_OPERATOR_OPERATION_COUNT + 3;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_TRANSLATED_TO___GET_UNDERLYING_TYPE = ALLOCATABLE_OPERATOR_OPERATION_COUNT + 4;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_TRANSLATED_TO___GET_EXPRESSION_TEXT = ALLOCATABLE_OPERATOR_OPERATION_COUNT + 5;
+
+ /**
+ * The number of operations of the '<em>Is Translated To</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_TRANSLATED_TO_OPERATION_COUNT = ALLOCATABLE_OPERATOR_OPERATION_COUNT + 6;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.GetStateImpl <em>Get State</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.GetStateImpl
+ * @see rba.core.impl.RBACorePackageImpl#getGetState()
+ * @generated
+ */
+ int GET_STATE = 93;
+
+ /**
+ * The number of structural features of the '<em>Get State</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GET_STATE_FEATURE_COUNT = 0;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GET_STATE___GET_SYMBOL = 0;
+
+ /**
+ * The number of operations of the '<em>Get State</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GET_STATE_OPERATION_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.ContentStateOperatorImpl <em>Content State Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ContentStateOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getContentStateOperator()
+ * @generated
+ */
+ int CONTENT_STATE_OPERATOR = 94;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT_STATE_OPERATOR__TYPE = OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT_STATE_OPERATOR__EXPRESSION = OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT_STATE_OPERATOR__LET_STATEMENTS = OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT_STATE_OPERATOR__OPERAND = OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Content State Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT_STATE_OPERATOR_FEATURE_COUNT = OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT_STATE_OPERATOR___GET_UNDERLYING_TYPE = OPERATOR___GET_UNDERLYING_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT_STATE_OPERATOR___GET_SYMBOL = OPERATOR___GET_SYMBOL;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT_STATE_OPERATOR___GET_EXPRESSION_TEXT = OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Content State Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTENT_STATE_OPERATOR_OPERATION_COUNT = OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link rba.core.impl.NullExpressionImpl <em>Null Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.NullExpressionImpl
+ * @see rba.core.impl.RBACorePackageImpl#getNullExpression()
+ * @generated
+ */
+ int NULL_EXPRESSION = 95;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NULL_EXPRESSION__TYPE = EXPRESSION__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NULL_EXPRESSION__EXPRESSION = EXPRESSION__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NULL_EXPRESSION__LET_STATEMENTS = EXPRESSION__LET_STATEMENTS;
+
+ /**
+ * 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 = EXPRESSION_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NULL_EXPRESSION___GET_UNDERLYING_TYPE = EXPRESSION_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NULL_EXPRESSION___GET_EXPRESSION_TEXT = EXPRESSION_OPERATION_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Null Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NULL_EXPRESSION_OPERATION_COUNT = EXPRESSION_OPERATION_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link rba.core.ArbitrationPolicy <em>Arbitration Policy</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.ArbitrationPolicy
+ * @see rba.core.impl.RBACorePackageImpl#getArbitrationPolicy()
+ * @generated
+ */
+ int ARBITRATION_POLICY = 96;
+
+ /**
+ * The meta object id for the '{@link rba.core.ExpressionType <em>Expression Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.ExpressionType
+ * @see rba.core.impl.RBACorePackageImpl#getExpressionType()
+ * @generated
+ */
+ int EXPRESSION_TYPE = 97;
+
+ /**
+ * The meta object id for the '{@link rba.core.LoserType <em>Loser Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.LoserType
+ * @see rba.core.impl.RBACorePackageImpl#getLoserType()
+ * @generated
+ */
+ int LOSER_TYPE = 98;
+
+ /**
+ * Returns the meta object for class '{@link rba.core.ModelElement <em>Model Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Model Element</em>'.
+ * @see rba.core.ModelElement
+ * @generated
+ */
+ EClass getModelElement();
+
+ /**
+ * Returns the meta object for the attribute '{@link rba.core.ModelElement#getDescription <em>Description</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Description</em>'.
+ * @see rba.core.ModelElement#getDescription()
+ * @see #getModelElement()
+ * @generated
+ */
+ EAttribute getModelElement_Description();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.NamedElement <em>Named Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Named Element</em>'.
+ * @see rba.core.NamedElement
+ * @generated
+ */
+ EClass getNamedElement();
+
+ /**
+ * Returns the meta object for the attribute '{@link rba.core.NamedElement#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see rba.core.NamedElement#getName()
+ * @see #getNamedElement()
+ * @generated
+ */
+ EAttribute getNamedElement_Name();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.AbstractAllocatable <em>Abstract Allocatable</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Abstract Allocatable</em>'.
+ * @see rba.core.AbstractAllocatable
+ * @generated
+ */
+ EClass getAbstractAllocatable();
+
+ /**
+ * Returns the meta object for the reference list '{@link rba.core.AbstractAllocatable#getContents <em>Contents</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Contents</em>'.
+ * @see rba.core.AbstractAllocatable#getContents()
+ * @see #getAbstractAllocatable()
+ * @generated
+ */
+ EReference getAbstractAllocatable_Contents();
+
+ /**
+ * Returns the meta object for the reference list '{@link rba.core.AbstractAllocatable#getAllocatableGroup <em>Allocatable Group</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Allocatable Group</em>'.
+ * @see rba.core.AbstractAllocatable#getAllocatableGroup()
+ * @see #getAbstractAllocatable()
+ * @generated
+ */
+ EReference getAbstractAllocatable_AllocatableGroup();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.AbstractAllocatable#getContentsList() <em>Get Contents List</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Contents List</em>' operation.
+ * @see rba.core.AbstractAllocatable#getContentsList()
+ * @generated
+ */
+ EOperation getAbstractAllocatable__GetContentsList();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.AbstractAllocatable#collectLeafAllocatable() <em>Collect Leaf Allocatable</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Collect Leaf Allocatable</em>' operation.
+ * @see rba.core.AbstractAllocatable#collectLeafAllocatable()
+ * @generated
+ */
+ EOperation getAbstractAllocatable__CollectLeafAllocatable();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.Allocatable <em>Allocatable</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Allocatable</em>'.
+ * @see rba.core.Allocatable
+ * @generated
+ */
+ EClass getAllocatable();
+
+ /**
+ * Returns the meta object for the attribute '{@link rba.core.Allocatable#getArbitrationPolicy <em>Arbitration Policy</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Arbitration Policy</em>'.
+ * @see rba.core.Allocatable#getArbitrationPolicy()
+ * @see #getAllocatable()
+ * @generated
+ */
+ EAttribute getAllocatable_ArbitrationPolicy();
+
+ /**
+ * Returns the meta object for the containment reference '{@link rba.core.Allocatable#getVisibility <em>Visibility</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Visibility</em>'.
+ * @see rba.core.Allocatable#getVisibility()
+ * @see #getAllocatable()
+ * @generated
+ */
+ EReference getAllocatable_Visibility();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.Allocatable#collectLeafAllocatable() <em>Collect Leaf Allocatable</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Collect Leaf Allocatable</em>' operation.
+ * @see rba.core.Allocatable#collectLeafAllocatable()
+ * @generated
+ */
+ EOperation getAllocatable__CollectLeafAllocatable();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.AllocatableSet <em>Allocatable Set</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Allocatable Set</em>'.
+ * @see rba.core.AllocatableSet
+ * @generated
+ */
+ EClass getAllocatableSet();
+
+ /**
+ * Returns the meta object for the reference list '{@link rba.core.AllocatableSet#getTarget <em>Target</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Target</em>'.
+ * @see rba.core.AllocatableSet#getTarget()
+ * @see #getAllocatableSet()
+ * @generated
+ */
+ EReference getAllocatableSet_Target();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.AllocatableSet#collectLeafAllocatable() <em>Collect Leaf Allocatable</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Collect Leaf Allocatable</em>' operation.
+ * @see rba.core.AllocatableSet#collectLeafAllocatable()
+ * @generated
+ */
+ EOperation getAllocatableSet__CollectLeafAllocatable();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.Project <em>Project</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Project</em>'.
+ * @see rba.core.Project
+ * @generated
+ */
+ EClass getProject();
+
+ /**
+ * Returns the meta object for the attribute '{@link rba.core.Project#getVersion <em>Version</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Version</em>'.
+ * @see rba.core.Project#getVersion()
+ * @see #getProject()
+ * @generated
+ */
+ EAttribute getProject_Version();
+
+ /**
+ * Returns the meta object for the attribute '{@link rba.core.Project#getDummyName <em>Dummy Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Dummy Name</em>'.
+ * @see rba.core.Project#getDummyName()
+ * @see #getProject()
+ * @generated
+ */
+ EAttribute getProject_DummyName();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.Project#getName() <em>Get Name</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Name</em>' operation.
+ * @see rba.core.Project#getName()
+ * @generated
+ */
+ EOperation getProject__GetName();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.PackagableElement <em>Packagable Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Packagable Element</em>'.
+ * @see rba.core.PackagableElement
+ * @generated
+ */
+ EClass getPackagableElement();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.Package <em>Package</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Package</em>'.
+ * @see rba.core.Package
+ * @generated
+ */
+ EClass getPackage();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link rba.core.Package#getPackagableelement <em>Packagableelement</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Packagableelement</em>'.
+ * @see rba.core.Package#getPackagableelement()
+ * @see #getPackage()
+ * @generated
+ */
+ EReference getPackage_Packagableelement();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.Stereotype <em>Stereotype</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Stereotype</em>'.
+ * @see rba.core.Stereotype
+ * @generated
+ */
+ EClass getStereotype();
+
+ /**
+ * Returns the meta object for the attribute '{@link rba.core.Stereotype#getTargetModelName <em>Target Model Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Target Model Name</em>'.
+ * @see rba.core.Stereotype#getTargetModelName()
+ * @see #getStereotype()
+ * @generated
+ */
+ EAttribute getStereotype_TargetModelName();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link rba.core.Stereotype#getVariables <em>Variables</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Variables</em>'.
+ * @see rba.core.Stereotype#getVariables()
+ * @see #getStereotype()
+ * @generated
+ */
+ EReference getStereotype_Variables();
+
+ /**
+ * Returns the meta object for the attribute '{@link rba.core.Stereotype#getBodyText <em>Body Text</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Body Text</em>'.
+ * @see rba.core.Stereotype#getBodyText()
+ * @see #getStereotype()
+ * @generated
+ */
+ EAttribute getStereotype_BodyText();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.Tag <em>Tag</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Tag</em>'.
+ * @see rba.core.Tag
+ * @generated
+ */
+ EClass getTag();
+
+ /**
+ * Returns the meta object for the attribute list '{@link rba.core.Tag#getValues <em>Values</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Values</em>'.
+ * @see rba.core.Tag#getValues()
+ * @see #getTag()
+ * @generated
+ */
+ EAttribute getTag_Values();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.RuleObject <em>Rule Object</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Rule Object</em>'.
+ * @see rba.core.RuleObject
+ * @generated
+ */
+ EClass getRuleObject();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link rba.core.RuleObject#getTags <em>Tags</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Tags</em>'.
+ * @see rba.core.RuleObject#getTags()
+ * @see #getRuleObject()
+ * @generated
+ */
+ EReference getRuleObject_Tags();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.RuleObject#getExpressionType() <em>Get Expression Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Type</em>' operation.
+ * @see rba.core.RuleObject#getExpressionType()
+ * @generated
+ */
+ EOperation getRuleObject__GetExpressionType();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.AbstractContent <em>Abstract Content</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Abstract Content</em>'.
+ * @see rba.core.AbstractContent
+ * @generated
+ */
+ EClass getAbstractContent();
+
+ /**
+ * Returns the meta object for the reference list '{@link rba.core.AbstractContent#getContentGroup <em>Content Group</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Content Group</em>'.
+ * @see rba.core.AbstractContent#getContentGroup()
+ * @see #getAbstractContent()
+ * @generated
+ */
+ EReference getAbstractContent_ContentGroup();
+
+ /**
+ * Returns the meta object for the reference list '{@link rba.core.AbstractContent#getAllocatable <em>Allocatable</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Allocatable</em>'.
+ * @see rba.core.AbstractContent#getAllocatable()
+ * @see #getAbstractContent()
+ * @generated
+ */
+ EReference getAbstractContent_Allocatable();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.AbstractContent#getAllocatableList() <em>Get Allocatable List</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Allocatable List</em>' operation.
+ * @see rba.core.AbstractContent#getAllocatableList()
+ * @generated
+ */
+ EOperation getAbstractContent__GetAllocatableList();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.AbstractContent#collectLeafContents() <em>Collect Leaf Contents</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Collect Leaf Contents</em>' operation.
+ * @see rba.core.AbstractContent#collectLeafContents()
+ * @generated
+ */
+ EOperation getAbstractContent__CollectLeafContents();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.AbstractScene <em>Abstract Scene</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Abstract Scene</em>'.
+ * @see rba.core.AbstractScene
+ * @generated
+ */
+ EClass getAbstractScene();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.Scene <em>Scene</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Scene</em>'.
+ * @see rba.core.Scene
+ * @generated
+ */
+ EClass getScene();
+
+ /**
+ * Returns the meta object for the attribute '{@link rba.core.Scene#isGlobal <em>Global</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Global</em>'.
+ * @see rba.core.Scene#isGlobal()
+ * @see #getScene()
+ * @generated
+ */
+ EAttribute getScene_Global();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link rba.core.Scene#getProperties <em>Properties</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Properties</em>'.
+ * @see rba.core.Scene#getProperties()
+ * @see #getScene()
+ * @generated
+ */
+ EReference getScene_Properties();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.Scene#getExpressionType() <em>Get Expression Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Type</em>' operation.
+ * @see rba.core.Scene#getExpressionType()
+ * @generated
+ */
+ EOperation getScene__GetExpressionType();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.Content <em>Content</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Content</em>'.
+ * @see rba.core.Content
+ * @generated
+ */
+ EClass getContent();
+
+ /**
+ * Returns the meta object for the attribute '{@link rba.core.Content#getLoserType <em>Loser Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Loser Type</em>'.
+ * @see rba.core.Content#getLoserType()
+ * @see #getContent()
+ * @generated
+ */
+ EAttribute getContent_LoserType();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link rba.core.Content#getStates <em>States</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>States</em>'.
+ * @see rba.core.Content#getStates()
+ * @see #getContent()
+ * @generated
+ */
+ EReference getContent_States();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.Content#collectLeafContents() <em>Collect Leaf Contents</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Collect Leaf Contents</em>' operation.
+ * @see rba.core.Content#collectLeafContents()
+ * @generated
+ */
+ EOperation getContent__CollectLeafContents();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.ContentSet <em>Content Set</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Content Set</em>'.
+ * @see rba.core.ContentSet
+ * @generated
+ */
+ EClass getContentSet();
+
+ /**
+ * Returns the meta object for the reference list '{@link rba.core.ContentSet#getTarget <em>Target</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Target</em>'.
+ * @see rba.core.ContentSet#getTarget()
+ * @see #getContentSet()
+ * @generated
+ */
+ EReference getContentSet_Target();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.ContentSet#collectLeafContents() <em>Collect Leaf Contents</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Collect Leaf Contents</em>' operation.
+ * @see rba.core.ContentSet#collectLeafContents()
+ * @generated
+ */
+ EOperation getContentSet__CollectLeafContents();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.ContentState <em>Content State</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Content State</em>'.
+ * @see rba.core.ContentState
+ * @generated
+ */
+ EClass getContentState();
+
+ /**
+ * Returns the meta object for the containment reference '{@link rba.core.ContentState#getValue <em>Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Value</em>'.
+ * @see rba.core.ContentState#getValue()
+ * @see #getContentState()
+ * @generated
+ */
+ EReference getContentState_Value();
+
+ /**
+ * Returns the meta object for the container reference '{@link rba.core.ContentState#getOwner <em>Owner</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the container reference '<em>Owner</em>'.
+ * @see rba.core.ContentState#getOwner()
+ * @see #getContentState()
+ * @generated
+ */
+ EReference getContentState_Owner();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.AbstractProperty <em>Abstract Property</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Abstract Property</em>'.
+ * @see rba.core.AbstractProperty
+ * @generated
+ */
+ EClass getAbstractProperty();
+
+ /**
+ * Returns the meta object for the container reference '{@link rba.core.AbstractProperty#getOwner <em>Owner</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the container reference '<em>Owner</em>'.
+ * @see rba.core.AbstractProperty#getOwner()
+ * @see #getAbstractProperty()
+ * @generated
+ */
+ EReference getAbstractProperty_Owner();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.AbstractProperty#getExpressionType() <em>Get Expression Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Type</em>' operation.
+ * @see rba.core.AbstractProperty#getExpressionType()
+ * @generated
+ */
+ EOperation getAbstractProperty__GetExpressionType();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.IntegerProperty <em>Integer Property</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Integer Property</em>'.
+ * @see rba.core.IntegerProperty
+ * @generated
+ */
+ EClass getIntegerProperty();
+
+ /**
+ * Returns the meta object for the containment reference '{@link rba.core.IntegerProperty#getValue <em>Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Value</em>'.
+ * @see rba.core.IntegerProperty#getValue()
+ * @see #getIntegerProperty()
+ * @generated
+ */
+ EReference getIntegerProperty_Value();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.AbstractConstraint <em>Abstract Constraint</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Abstract Constraint</em>'.
+ * @see rba.core.AbstractConstraint
+ * @generated
+ */
+ EClass getAbstractConstraint();
+
+ /**
+ * Returns the meta object for the containment reference '{@link rba.core.AbstractConstraint#getExpression <em>Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Expression</em>'.
+ * @see rba.core.AbstractConstraint#getExpression()
+ * @see #getAbstractConstraint()
+ * @generated
+ */
+ EReference getAbstractConstraint_Expression();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.Constraint <em>Constraint</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Constraint</em>'.
+ * @see rba.core.Constraint
+ * @generated
+ */
+ EClass getConstraint();
+
+ /**
+ * Returns the meta object for the attribute '{@link rba.core.Constraint#isRuntime <em>Runtime</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Runtime</em>'.
+ * @see rba.core.Constraint#isRuntime()
+ * @see #getConstraint()
+ * @generated
+ */
+ EAttribute getConstraint_Runtime();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.Expression <em>Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Expression</em>'.
+ * @see rba.core.Expression
+ * @generated
+ */
+ EClass getExpression();
+
+ /**
+ * Returns the meta object for the attribute '{@link rba.core.Expression#getType <em>Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Type</em>'.
+ * @see rba.core.Expression#getType()
+ * @see #getExpression()
+ * @generated
+ */
+ EAttribute getExpression_Type();
+
+ /**
+ * Returns the meta object for the attribute '{@link rba.core.Expression#getExpression <em>Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Expression</em>'.
+ * @see rba.core.Expression#getExpression()
+ * @see #getExpression()
+ * @generated
+ */
+ EAttribute getExpression_Expression();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link rba.core.Expression#getLetStatements <em>Let Statements</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Let Statements</em>'.
+ * @see rba.core.Expression#getLetStatements()
+ * @see #getExpression()
+ * @generated
+ */
+ EReference getExpression_LetStatements();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.Expression#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.core.Expression#getUnderlyingType()
+ * @generated
+ */
+ EOperation getExpression__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.Expression#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.core.Expression#getExpressionText()
+ * @generated
+ */
+ EOperation getExpression__GetExpressionText();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.LetStatement <em>Let Statement</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Let Statement</em>'.
+ * @see rba.core.LetStatement
+ * @generated
+ */
+ EClass getLetStatement();
+
+ /**
+ * Returns the meta object for the containment reference '{@link rba.core.LetStatement#getVariable <em>Variable</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Variable</em>'.
+ * @see rba.core.LetStatement#getVariable()
+ * @see #getLetStatement()
+ * @generated
+ */
+ EReference getLetStatement_Variable();
+
+ /**
+ * Returns the meta object for the containment reference '{@link rba.core.LetStatement#getBody <em>Body</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Body</em>'.
+ * @see rba.core.LetStatement#getBody()
+ * @see #getLetStatement()
+ * @generated
+ */
+ EReference getLetStatement_Body();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.LetStatement#toString() <em>To String</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>To String</em>' operation.
+ * @see rba.core.LetStatement#toString()
+ * @generated
+ */
+ EOperation getLetStatement__ToString();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.ComplexExpression <em>Complex Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Complex Expression</em>'.
+ * @see rba.core.ComplexExpression
+ * @generated
+ */
+ EClass getComplexExpression();
+
+ /**
+ * Returns the meta object for the containment reference '{@link rba.core.ComplexExpression#getOtherExpression <em>Other Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Other Expression</em>'.
+ * @see rba.core.ComplexExpression#getOtherExpression()
+ * @see #getComplexExpression()
+ * @generated
+ */
+ EReference getComplexExpression_OtherExpression();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.ComplexExpression#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.core.ComplexExpression#getExpressionText()
+ * @generated
+ */
+ EOperation getComplexExpression__GetExpressionText();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.ComplexExpression#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.core.ComplexExpression#getUnderlyingType()
+ * @generated
+ */
+ EOperation getComplexExpression__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.ComplexExpression#getType() <em>Get Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Type</em>' operation.
+ * @see rba.core.ComplexExpression#getType()
+ * @generated
+ */
+ EOperation getComplexExpression__GetType();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.Operator <em>Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Operator</em>'.
+ * @see rba.core.Operator
+ * @generated
+ */
+ EClass getOperator();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link rba.core.Operator#getOperand <em>Operand</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Operand</em>'.
+ * @see rba.core.Operator#getOperand()
+ * @see #getOperator()
+ * @generated
+ */
+ EReference getOperator_Operand();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.Operator#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.core.Operator#getSymbol()
+ * @generated
+ */
+ EOperation getOperator__GetSymbol();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.IsTypeOf <em>Is Type Of</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Is Type Of</em>'.
+ * @see rba.core.IsTypeOf
+ * @generated
+ */
+ EClass getIsTypeOf();
+
+ /**
+ * Returns the meta object for the attribute '{@link rba.core.IsTypeOf#getTagName <em>Tag Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Tag Name</em>'.
+ * @see rba.core.IsTypeOf#getTagName()
+ * @see #getIsTypeOf()
+ * @generated
+ */
+ EAttribute getIsTypeOf_TagName();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.IsTypeOf#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.core.IsTypeOf#getExpressionText()
+ * @generated
+ */
+ EOperation getIsTypeOf__GetExpressionText();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.IsTypeOf#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.core.IsTypeOf#getSymbol()
+ * @generated
+ */
+ EOperation getIsTypeOf__GetSymbol();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.IsTypeOf#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.core.IsTypeOf#getUnderlyingType()
+ * @generated
+ */
+ EOperation getIsTypeOf__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.ObjectReference <em>Object Reference</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Object Reference</em>'.
+ * @see rba.core.ObjectReference
+ * @generated
+ */
+ EClass getObjectReference();
+
+ /**
+ * Returns the meta object for the reference '{@link rba.core.ObjectReference#getRefObject <em>Ref Object</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Ref Object</em>'.
+ * @see rba.core.ObjectReference#getRefObject()
+ * @see #getObjectReference()
+ * @generated
+ */
+ EReference getObjectReference_RefObject();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.ObjectReference#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.core.ObjectReference#getUnderlyingType()
+ * @generated
+ */
+ EOperation getObjectReference__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.ObjectReference#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.core.ObjectReference#getExpressionText()
+ * @generated
+ */
+ EOperation getObjectReference__GetExpressionText();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.PreviousModifier <em>Previous Modifier</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Previous Modifier</em>'.
+ * @see rba.core.PreviousModifier
+ * @generated
+ */
+ EClass getPreviousModifier();
+
+ /**
+ * Returns the meta object for the containment reference '{@link rba.core.PreviousModifier#getObjReference <em>Obj Reference</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Obj Reference</em>'.
+ * @see rba.core.PreviousModifier#getObjReference()
+ * @see #getPreviousModifier()
+ * @generated
+ */
+ EReference getPreviousModifier_ObjReference();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.PreviousModifier#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.core.PreviousModifier#getSymbol()
+ * @generated
+ */
+ EOperation getPreviousModifier__GetSymbol();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.PreviousModifier#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.core.PreviousModifier#getUnderlyingType()
+ * @generated
+ */
+ EOperation getPreviousModifier__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.PreviousModifier#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.core.PreviousModifier#getExpressionText()
+ * @generated
+ */
+ EOperation getPreviousModifier__GetExpressionText();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.GreaterThanOperator <em>Greater Than Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Greater Than Operator</em>'.
+ * @see rba.core.GreaterThanOperator
+ * @generated
+ */
+ EClass getGreaterThanOperator();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.GreaterThanOperator#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.core.GreaterThanOperator#getSymbol()
+ * @generated
+ */
+ EOperation getGreaterThanOperator__GetSymbol();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.MuchGreaterThanOperator <em>Much Greater Than Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Much Greater Than Operator</em>'.
+ * @see rba.core.MuchGreaterThanOperator
+ * @generated
+ */
+ EClass getMuchGreaterThanOperator();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.MuchGreaterThanOperator#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.core.MuchGreaterThanOperator#getSymbol()
+ * @generated
+ */
+ EOperation getMuchGreaterThanOperator__GetSymbol();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.LowerThanOperator <em>Lower Than Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Lower Than Operator</em>'.
+ * @see rba.core.LowerThanOperator
+ * @generated
+ */
+ EClass getLowerThanOperator();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.LowerThanOperator#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.core.LowerThanOperator#getSymbol()
+ * @generated
+ */
+ EOperation getLowerThanOperator__GetSymbol();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.ComparisonOperator <em>Comparison Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Comparison Operator</em>'.
+ * @see rba.core.ComparisonOperator
+ * @generated
+ */
+ EClass getComparisonOperator();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.ComparisonOperator#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.core.ComparisonOperator#getUnderlyingType()
+ * @generated
+ */
+ EOperation getComparisonOperator__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.ComparisonOperator#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.core.ComparisonOperator#getExpressionText()
+ * @generated
+ */
+ EOperation getComparisonOperator__GetExpressionText();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.EqualToOperator <em>Equal To Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Equal To Operator</em>'.
+ * @see rba.core.EqualToOperator
+ * @generated
+ */
+ EClass getEqualToOperator();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.EqualToOperator#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.core.EqualToOperator#getSymbol()
+ * @generated
+ */
+ EOperation getEqualToOperator__GetSymbol();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.ComparisonAnd <em>Comparison And</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Comparison And</em>'.
+ * @see rba.core.ComparisonAnd
+ * @generated
+ */
+ EClass getComparisonAnd();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.ComparisonAnd#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.core.ComparisonAnd#getSymbol()
+ * @generated
+ */
+ EOperation getComparisonAnd__GetSymbol();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.ComparisonAnd#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.core.ComparisonAnd#getExpressionText()
+ * @generated
+ */
+ EOperation getComparisonAnd__GetExpressionText();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.LogicalOperator <em>Logical Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Logical Operator</em>'.
+ * @see rba.core.LogicalOperator
+ * @generated
+ */
+ EClass getLogicalOperator();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.LogicalOperator#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.core.LogicalOperator#getUnderlyingType()
+ * @generated
+ */
+ EOperation getLogicalOperator__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.LogicalOperator#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.core.LogicalOperator#getExpressionText()
+ * @generated
+ */
+ EOperation getLogicalOperator__GetExpressionText();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.AndOperator <em>And Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>And Operator</em>'.
+ * @see rba.core.AndOperator
+ * @generated
+ */
+ EClass getAndOperator();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.AndOperator#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.core.AndOperator#getSymbol()
+ * @generated
+ */
+ EOperation getAndOperator__GetSymbol();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.OrOperator <em>Or Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Or Operator</em>'.
+ * @see rba.core.OrOperator
+ * @generated
+ */
+ EClass getOrOperator();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.OrOperator#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.core.OrOperator#getSymbol()
+ * @generated
+ */
+ EOperation getOrOperator__GetSymbol();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.NotOperator <em>Not Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Not Operator</em>'.
+ * @see rba.core.NotOperator
+ * @generated
+ */
+ EClass getNotOperator();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.NotOperator#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.core.NotOperator#getSymbol()
+ * @generated
+ */
+ EOperation getNotOperator__GetSymbol();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.NotOperator#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.core.NotOperator#getExpressionText()
+ * @generated
+ */
+ EOperation getNotOperator__GetExpressionText();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.IsEqualToOperator <em>Is Equal To Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Is Equal To Operator</em>'.
+ * @see rba.core.IsEqualToOperator
+ * @generated
+ */
+ EClass getIsEqualToOperator();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.IsEqualToOperator#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.core.IsEqualToOperator#getSymbol()
+ * @generated
+ */
+ EOperation getIsEqualToOperator__GetSymbol();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.IsGreaterThanOperator <em>Is Greater Than Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Is Greater Than Operator</em>'.
+ * @see rba.core.IsGreaterThanOperator
+ * @generated
+ */
+ EClass getIsGreaterThanOperator();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.IsGreaterThanOperator#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.core.IsGreaterThanOperator#getSymbol()
+ * @generated
+ */
+ EOperation getIsGreaterThanOperator__GetSymbol();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.IsLowerThanOperator <em>Is Lower Than Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Is Lower Than Operator</em>'.
+ * @see rba.core.IsLowerThanOperator
+ * @generated
+ */
+ EClass getIsLowerThanOperator();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.IsLowerThanOperator#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.core.IsLowerThanOperator#getSymbol()
+ * @generated
+ */
+ EOperation getIsLowerThanOperator__GetSymbol();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.IsGreaterThanEqualOperator <em>Is Greater Than Equal Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Is Greater Than Equal Operator</em>'.
+ * @see rba.core.IsGreaterThanEqualOperator
+ * @generated
+ */
+ EClass getIsGreaterThanEqualOperator();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.IsGreaterThanEqualOperator#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.core.IsGreaterThanEqualOperator#getSymbol()
+ * @generated
+ */
+ EOperation getIsGreaterThanEqualOperator__GetSymbol();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.IsLowerThanEqualOperator <em>Is Lower Than Equal Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Is Lower Than Equal Operator</em>'.
+ * @see rba.core.IsLowerThanEqualOperator
+ * @generated
+ */
+ EClass getIsLowerThanEqualOperator();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.IsLowerThanEqualOperator#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.core.IsLowerThanEqualOperator#getSymbol()
+ * @generated
+ */
+ EOperation getIsLowerThanEqualOperator__GetSymbol();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.ArithmeticOperator <em>Arithmetic Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Arithmetic Operator</em>'.
+ * @see rba.core.ArithmeticOperator
+ * @generated
+ */
+ EClass getArithmeticOperator();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.ArithmeticOperator#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.core.ArithmeticOperator#getUnderlyingType()
+ * @generated
+ */
+ EOperation getArithmeticOperator__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.ArithmeticOperator#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.core.ArithmeticOperator#getExpressionText()
+ * @generated
+ */
+ EOperation getArithmeticOperator__GetExpressionText();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.PlusOperator <em>Plus Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Plus Operator</em>'.
+ * @see rba.core.PlusOperator
+ * @generated
+ */
+ EClass getPlusOperator();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.PlusOperator#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.core.PlusOperator#getSymbol()
+ * @generated
+ */
+ EOperation getPlusOperator__GetSymbol();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.ImpliesOperator <em>Implies Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Implies Operator</em>'.
+ * @see rba.core.ImpliesOperator
+ * @generated
+ */
+ EClass getImpliesOperator();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.ImpliesOperator#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.core.ImpliesOperator#getSymbol()
+ * @generated
+ */
+ EOperation getImpliesOperator__GetSymbol();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.ContentOperator <em>Content Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Content Operator</em>'.
+ * @see rba.core.ContentOperator
+ * @generated
+ */
+ EClass getContentOperator();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.ContentOperator#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.core.ContentOperator#getExpressionText()
+ * @generated
+ */
+ EOperation getContentOperator__GetExpressionText();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.IsActive <em>Is Active</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Is Active</em>'.
+ * @see rba.core.IsActive
+ * @generated
+ */
+ EClass getIsActive();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.IsActive#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.core.IsActive#getSymbol()
+ * @generated
+ */
+ EOperation getIsActive__GetSymbol();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.IsActive#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.core.IsActive#getUnderlyingType()
+ * @generated
+ */
+ EOperation getIsActive__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.GetAllocatables <em>Get Allocatables</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Get Allocatables</em>'.
+ * @see rba.core.GetAllocatables
+ * @generated
+ */
+ EClass getGetAllocatables();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.GetAllocatables#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.core.GetAllocatables#getSymbol()
+ * @generated
+ */
+ EOperation getGetAllocatables__GetSymbol();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.GetAllocatables#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.core.GetAllocatables#getUnderlyingType()
+ * @generated
+ */
+ EOperation getGetAllocatables__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.HasBeenDisplayed <em>Has Been Displayed</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Has Been Displayed</em>'.
+ * @see rba.core.HasBeenDisplayed
+ * @generated
+ */
+ EClass getHasBeenDisplayed();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.HasBeenDisplayed#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.core.HasBeenDisplayed#getSymbol()
+ * @generated
+ */
+ EOperation getHasBeenDisplayed__GetSymbol();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.HasBeenDisplayed#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.core.HasBeenDisplayed#getUnderlyingType()
+ * @generated
+ */
+ EOperation getHasBeenDisplayed__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.ActiveState <em>Active State</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Active State</em>'.
+ * @see rba.core.ActiveState
+ * @generated
+ */
+ EClass getActiveState();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.ActiveState#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.core.ActiveState#getSymbol()
+ * @generated
+ */
+ EOperation getActiveState__GetSymbol();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.ActiveState#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.core.ActiveState#getUnderlyingType()
+ * @generated
+ */
+ EOperation getActiveState__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.ObjectCompare <em>Object Compare</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Object Compare</em>'.
+ * @see rba.core.ObjectCompare
+ * @generated
+ */
+ EClass getObjectCompare();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.ObjectCompare#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.core.ObjectCompare#getSymbol()
+ * @generated
+ */
+ EOperation getObjectCompare__GetSymbol();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.ObjectCompare#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.core.ObjectCompare#getUnderlyingType()
+ * @generated
+ */
+ EOperation getObjectCompare__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.ObjectCompare#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.core.ObjectCompare#getExpressionText()
+ * @generated
+ */
+ EOperation getObjectCompare__GetExpressionText();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.ThatOfOperator <em>That Of Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>That Of Operator</em>'.
+ * @see rba.core.ThatOfOperator
+ * @generated
+ */
+ EClass getThatOfOperator();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.ThatOfOperator#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.core.ThatOfOperator#getExpressionText()
+ * @generated
+ */
+ EOperation getThatOfOperator__GetExpressionText();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.ThatOfOperator#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.core.ThatOfOperator#getSymbol()
+ * @generated
+ */
+ EOperation getThatOfOperator__GetSymbol();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.ThatOfOperator#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.core.ThatOfOperator#getUnderlyingType()
+ * @generated
+ */
+ EOperation getThatOfOperator__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.ValueExpression <em>Value Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Value Expression</em>'.
+ * @see rba.core.ValueExpression
+ * @generated
+ */
+ EClass getValueExpression();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.ValueExpression#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.core.ValueExpression#getUnderlyingType()
+ * @generated
+ */
+ EOperation getValueExpression__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.ValueExpression#getExpressionValue() <em>Get Expression Value</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Value</em>' operation.
+ * @see rba.core.ValueExpression#getExpressionValue()
+ * @generated
+ */
+ EOperation getValueExpression__GetExpressionValue();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.ValueExpression#getType() <em>Get Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Type</em>' operation.
+ * @see rba.core.ValueExpression#getType()
+ * @generated
+ */
+ EOperation getValueExpression__GetType();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.MaxValue <em>Max Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Max Value</em>'.
+ * @see rba.core.MaxValue
+ * @generated
+ */
+ EClass getMaxValue();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.MaxValue#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.core.MaxValue#getExpressionText()
+ * @generated
+ */
+ EOperation getMaxValue__GetExpressionText();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.MaxValue#getExpressionValue() <em>Get Expression Value</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Value</em>' operation.
+ * @see rba.core.MaxValue#getExpressionValue()
+ * @generated
+ */
+ EOperation getMaxValue__GetExpressionValue();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.MinValue <em>Min Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Min Value</em>'.
+ * @see rba.core.MinValue
+ * @generated
+ */
+ EClass getMinValue();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.MinValue#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.core.MinValue#getExpressionText()
+ * @generated
+ */
+ EOperation getMinValue__GetExpressionText();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.MinValue#getExpressionValue() <em>Get Expression Value</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Value</em>' operation.
+ * @see rba.core.MinValue#getExpressionValue()
+ * @generated
+ */
+ EOperation getMinValue__GetExpressionValue();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.NoneValue <em>None Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>None Value</em>'.
+ * @see rba.core.NoneValue
+ * @generated
+ */
+ EClass getNoneValue();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.NoneValue#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.core.NoneValue#getExpressionText()
+ * @generated
+ */
+ EOperation getNoneValue__GetExpressionText();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.NoneValue#getExpressionValue() <em>Get Expression Value</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Value</em>' operation.
+ * @see rba.core.NoneValue#getExpressionValue()
+ * @generated
+ */
+ EOperation getNoneValue__GetExpressionValue();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.StandardValue <em>Standard Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Standard Value</em>'.
+ * @see rba.core.StandardValue
+ * @generated
+ */
+ EClass getStandardValue();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.StandardValue#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.core.StandardValue#getExpressionText()
+ * @generated
+ */
+ EOperation getStandardValue__GetExpressionText();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.StandardValue#getExpressionValue() <em>Get Expression Value</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Value</em>' operation.
+ * @see rba.core.StandardValue#getExpressionValue()
+ * @generated
+ */
+ EOperation getStandardValue__GetExpressionValue();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.IntegerValue <em>Integer Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Integer Value</em>'.
+ * @see rba.core.IntegerValue
+ * @generated
+ */
+ EClass getIntegerValue();
+
+ /**
+ * Returns the meta object for the attribute '{@link rba.core.IntegerValue#getValue <em>Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Value</em>'.
+ * @see rba.core.IntegerValue#getValue()
+ * @see #getIntegerValue()
+ * @generated
+ */
+ EAttribute getIntegerValue_Value();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.IntegerValue#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.core.IntegerValue#getExpressionText()
+ * @generated
+ */
+ EOperation getIntegerValue__GetExpressionText();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.IntegerValue#getExpressionValue() <em>Get Expression Value</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Value</em>' operation.
+ * @see rba.core.IntegerValue#getExpressionValue()
+ * @generated
+ */
+ EOperation getIntegerValue__GetExpressionValue();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.EnumExpression <em>Enum Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Enum Expression</em>'.
+ * @see rba.core.EnumExpression
+ * @generated
+ */
+ EClass getEnumExpression();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.EnumExpression#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.core.EnumExpression#getUnderlyingType()
+ * @generated
+ */
+ EOperation getEnumExpression__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.EnumExpression#getExpressionValue() <em>Get Expression Value</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Value</em>' operation.
+ * @see rba.core.EnumExpression#getExpressionValue()
+ * @generated
+ */
+ EOperation getEnumExpression__GetExpressionValue();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.EnumExpression#getType() <em>Get Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Type</em>' operation.
+ * @see rba.core.EnumExpression#getType()
+ * @generated
+ */
+ EOperation getEnumExpression__GetType();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.LoserTypeExpression <em>Loser Type Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Loser Type Expression</em>'.
+ * @see rba.core.LoserTypeExpression
+ * @generated
+ */
+ EClass getLoserTypeExpression();
+
+ /**
+ * Returns the meta object for the attribute '{@link rba.core.LoserTypeExpression#getValue <em>Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Value</em>'.
+ * @see rba.core.LoserTypeExpression#getValue()
+ * @see #getLoserTypeExpression()
+ * @generated
+ */
+ EAttribute getLoserTypeExpression_Value();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.LoserTypeExpression#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.core.LoserTypeExpression#getExpressionText()
+ * @generated
+ */
+ EOperation getLoserTypeExpression__GetExpressionText();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.LoserTypeExpression#getExpressionValue() <em>Get Expression Value</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Value</em>' operation.
+ * @see rba.core.LoserTypeExpression#getExpressionValue()
+ * @generated
+ */
+ EOperation getLoserTypeExpression__GetExpressionValue();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.ArbitrationPolicyExpression <em>Arbitration Policy Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Arbitration Policy Expression</em>'.
+ * @see rba.core.ArbitrationPolicyExpression
+ * @generated
+ */
+ EClass getArbitrationPolicyExpression();
+
+ /**
+ * Returns the meta object for the attribute '{@link rba.core.ArbitrationPolicyExpression#getValue <em>Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Value</em>'.
+ * @see rba.core.ArbitrationPolicyExpression#getValue()
+ * @see #getArbitrationPolicyExpression()
+ * @generated
+ */
+ EAttribute getArbitrationPolicyExpression_Value();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.ArbitrationPolicyExpression#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.core.ArbitrationPolicyExpression#getExpressionText()
+ * @generated
+ */
+ EOperation getArbitrationPolicyExpression__GetExpressionText();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.ArbitrationPolicyExpression#getExpressionValue() <em>Get Expression Value</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Value</em>' operation.
+ * @see rba.core.ArbitrationPolicyExpression#getExpressionValue()
+ * @generated
+ */
+ EOperation getArbitrationPolicyExpression__GetExpressionValue();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.SetExpression <em>Set Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Set Expression</em>'.
+ * @see rba.core.SetExpression
+ * @generated
+ */
+ EClass getSetExpression();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.SetOperator <em>Set Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Set Operator</em>'.
+ * @see rba.core.SetOperator
+ * @generated
+ */
+ EClass getSetOperator();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.SizeOperator <em>Size Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Size Operator</em>'.
+ * @see rba.core.SizeOperator
+ * @generated
+ */
+ EClass getSizeOperator();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.SizeOperator#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.core.SizeOperator#getExpressionText()
+ * @generated
+ */
+ EOperation getSizeOperator__GetExpressionText();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.SizeOperator#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.core.SizeOperator#getSymbol()
+ * @generated
+ */
+ EOperation getSizeOperator__GetSymbol();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.SizeOperator#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.core.SizeOperator#getUnderlyingType()
+ * @generated
+ */
+ EOperation getSizeOperator__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.ExistsOperator <em>Exists Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Exists Operator</em>'.
+ * @see rba.core.ExistsOperator
+ * @generated
+ */
+ EClass getExistsOperator();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.ExistsOperator#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.core.ExistsOperator#getExpressionText()
+ * @generated
+ */
+ EOperation getExistsOperator__GetExpressionText();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.ExistsOperator#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.core.ExistsOperator#getSymbol()
+ * @generated
+ */
+ EOperation getExistsOperator__GetSymbol();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.ExistsOperator#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.core.ExistsOperator#getUnderlyingType()
+ * @generated
+ */
+ EOperation getExistsOperator__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.ForAllOperator <em>For All Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>For All Operator</em>'.
+ * @see rba.core.ForAllOperator
+ * @generated
+ */
+ EClass getForAllOperator();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.ForAllOperator#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.core.ForAllOperator#getExpressionText()
+ * @generated
+ */
+ EOperation getForAllOperator__GetExpressionText();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.ForAllOperator#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.core.ForAllOperator#getSymbol()
+ * @generated
+ */
+ EOperation getForAllOperator__GetSymbol();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.ForAllOperator#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.core.ForAllOperator#getUnderlyingType()
+ * @generated
+ */
+ EOperation getForAllOperator__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.MaxOperator <em>Max Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Max Operator</em>'.
+ * @see rba.core.MaxOperator
+ * @generated
+ */
+ EClass getMaxOperator();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.MaxOperator#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.core.MaxOperator#getExpressionText()
+ * @generated
+ */
+ EOperation getMaxOperator__GetExpressionText();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.MaxOperator#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.core.MaxOperator#getSymbol()
+ * @generated
+ */
+ EOperation getMaxOperator__GetSymbol();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.MaxOperator#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.core.MaxOperator#getUnderlyingType()
+ * @generated
+ */
+ EOperation getMaxOperator__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.MinOperator <em>Min Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Min Operator</em>'.
+ * @see rba.core.MinOperator
+ * @generated
+ */
+ EClass getMinOperator();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.MinOperator#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.core.MinOperator#getExpressionText()
+ * @generated
+ */
+ EOperation getMinOperator__GetExpressionText();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.MinOperator#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.core.MinOperator#getSymbol()
+ * @generated
+ */
+ EOperation getMinOperator__GetSymbol();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.MinOperator#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.core.MinOperator#getUnderlyingType()
+ * @generated
+ */
+ EOperation getMinOperator__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.SelectOperator <em>Select Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Select Operator</em>'.
+ * @see rba.core.SelectOperator
+ * @generated
+ */
+ EClass getSelectOperator();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.SelectOperator#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.core.SelectOperator#getExpressionText()
+ * @generated
+ */
+ EOperation getSelectOperator__GetExpressionText();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.SelectOperator#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.core.SelectOperator#getSymbol()
+ * @generated
+ */
+ EOperation getSelectOperator__GetSymbol();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.SelectOperator#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.core.SelectOperator#getUnderlyingType()
+ * @generated
+ */
+ EOperation getSelectOperator__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.SetOfOperator <em>Set Of Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Set Of Operator</em>'.
+ * @see rba.core.SetOfOperator
+ * @generated
+ */
+ EClass getSetOfOperator();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.SetOfOperator#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.core.SetOfOperator#getExpressionText()
+ * @generated
+ */
+ EOperation getSetOfOperator__GetExpressionText();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.SetOfOperator#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.core.SetOfOperator#getSymbol()
+ * @generated
+ */
+ EOperation getSetOfOperator__GetSymbol();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.SetOfOperator#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.core.SetOfOperator#getUnderlyingType()
+ * @generated
+ */
+ EOperation getSetOfOperator__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.LambdaExpression <em>Lambda Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Lambda Expression</em>'.
+ * @see rba.core.LambdaExpression
+ * @generated
+ */
+ EClass getLambdaExpression();
+
+ /**
+ * Returns the meta object for the container reference '{@link rba.core.LambdaExpression#getContext <em>Context</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the container reference '<em>Context</em>'.
+ * @see rba.core.LambdaExpression#getContext()
+ * @see #getLambdaExpression()
+ * @generated
+ */
+ EReference getLambdaExpression_Context();
+
+ /**
+ * Returns the meta object for the containment reference '{@link rba.core.LambdaExpression#getX <em>X</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>X</em>'.
+ * @see rba.core.LambdaExpression#getX()
+ * @see #getLambdaExpression()
+ * @generated
+ */
+ EReference getLambdaExpression_X();
+
+ /**
+ * Returns the meta object for the containment reference '{@link rba.core.LambdaExpression#getBodyText <em>Body Text</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Body Text</em>'.
+ * @see rba.core.LambdaExpression#getBodyText()
+ * @see #getLambdaExpression()
+ * @generated
+ */
+ EReference getLambdaExpression_BodyText();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.LambdaExpression#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.core.LambdaExpression#getExpressionText()
+ * @generated
+ */
+ EOperation getLambdaExpression__GetExpressionText();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.LambdaExpression#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.core.LambdaExpression#getUnderlyingType()
+ * @generated
+ */
+ EOperation getLambdaExpression__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.Variable <em>Variable</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Variable</em>'.
+ * @see rba.core.Variable
+ * @generated
+ */
+ EClass getVariable();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.Variable#getExpressionType() <em>Get Expression Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Type</em>' operation.
+ * @see rba.core.Variable#getExpressionType()
+ * @generated
+ */
+ EOperation getVariable__GetExpressionType();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.LambdaContext <em>Lambda Context</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Lambda Context</em>'.
+ * @see rba.core.LambdaContext
+ * @generated
+ */
+ EClass getLambdaContext();
+
+ /**
+ * Returns the meta object for the containment reference '{@link rba.core.LambdaContext#getLambda <em>Lambda</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Lambda</em>'.
+ * @see rba.core.LambdaContext#getLambda()
+ * @see #getLambdaContext()
+ * @generated
+ */
+ EReference getLambdaContext_Lambda();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.LambdaContext#getContextType() <em>Get Context Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Context Type</em>' operation.
+ * @see rba.core.LambdaContext#getContextType()
+ * @generated
+ */
+ EOperation getLambdaContext__GetContextType();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.IfStatement <em>If Statement</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>If Statement</em>'.
+ * @see rba.core.IfStatement
+ * @generated
+ */
+ EClass getIfStatement();
+
+ /**
+ * Returns the meta object for the containment reference '{@link rba.core.IfStatement#getCondition <em>Condition</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Condition</em>'.
+ * @see rba.core.IfStatement#getCondition()
+ * @see #getIfStatement()
+ * @generated
+ */
+ EReference getIfStatement_Condition();
+
+ /**
+ * Returns the meta object for the containment reference '{@link rba.core.IfStatement#getThenExpression <em>Then Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Then Expression</em>'.
+ * @see rba.core.IfStatement#getThenExpression()
+ * @see #getIfStatement()
+ * @generated
+ */
+ EReference getIfStatement_ThenExpression();
+
+ /**
+ * Returns the meta object for the containment reference '{@link rba.core.IfStatement#getElseExpression <em>Else Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Else Expression</em>'.
+ * @see rba.core.IfStatement#getElseExpression()
+ * @see #getIfStatement()
+ * @generated
+ */
+ EReference getIfStatement_ElseExpression();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.IfStatement#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.core.IfStatement#getUnderlyingType()
+ * @generated
+ */
+ EOperation getIfStatement__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.IfStatement#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.core.IfStatement#getExpressionText()
+ * @generated
+ */
+ EOperation getIfStatement__GetExpressionText();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.SceneOperator <em>Scene Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Scene Operator</em>'.
+ * @see rba.core.SceneOperator
+ * @generated
+ */
+ EClass getSceneOperator();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.SceneOperator#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.core.SceneOperator#getExpressionText()
+ * @generated
+ */
+ EOperation getSceneOperator__GetExpressionText();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.IsOn <em>Is On</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Is On</em>'.
+ * @see rba.core.IsOn
+ * @generated
+ */
+ EClass getIsOn();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.IsOn#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.core.IsOn#getSymbol()
+ * @generated
+ */
+ EOperation getIsOn__GetSymbol();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.IsOn#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.core.IsOn#getUnderlyingType()
+ * @generated
+ */
+ EOperation getIsOn__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.AllocatableOperator <em>Allocatable Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Allocatable Operator</em>'.
+ * @see rba.core.AllocatableOperator
+ * @generated
+ */
+ EClass getAllocatableOperator();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.AllocatableOperator#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.core.AllocatableOperator#getExpressionText()
+ * @generated
+ */
+ EOperation getAllocatableOperator__GetExpressionText();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.AllocatedContent <em>Allocated Content</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Allocated Content</em>'.
+ * @see rba.core.AllocatedContent
+ * @generated
+ */
+ EClass getAllocatedContent();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.AllocatedContent#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.core.AllocatedContent#getSymbol()
+ * @generated
+ */
+ EOperation getAllocatedContent__GetSymbol();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.AllocatedContent#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.core.AllocatedContent#getUnderlyingType()
+ * @generated
+ */
+ EOperation getAllocatedContent__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.ContentValue <em>Content Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Content Value</em>'.
+ * @see rba.core.ContentValue
+ * @generated
+ */
+ EClass getContentValue();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.ContentValue#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.core.ContentValue#getSymbol()
+ * @generated
+ */
+ EOperation getContentValue__GetSymbol();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.ContentValue#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.core.ContentValue#getUnderlyingType()
+ * @generated
+ */
+ EOperation getContentValue__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.GetContentsList <em>Get Contents List</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Get Contents List</em>'.
+ * @see rba.core.GetContentsList
+ * @generated
+ */
+ EClass getGetContentsList();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.GetContentsList#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.core.GetContentsList#getSymbol()
+ * @generated
+ */
+ EOperation getGetContentsList__GetSymbol();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.GetContentsList#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.core.GetContentsList#getUnderlyingType()
+ * @generated
+ */
+ EOperation getGetContentsList__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.ActiveContents <em>Active Contents</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Active Contents</em>'.
+ * @see rba.core.ActiveContents
+ * @generated
+ */
+ EClass getActiveContents();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.ActiveContents#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.core.ActiveContents#getSymbol()
+ * @generated
+ */
+ EOperation getActiveContents__GetSymbol();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.ActiveContents#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.core.ActiveContents#getUnderlyingType()
+ * @generated
+ */
+ EOperation getActiveContents__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.PropertyOperator <em>Property Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Property Operator</em>'.
+ * @see rba.core.PropertyOperator
+ * @generated
+ */
+ EClass getPropertyOperator();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.PropertyOperator#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.core.PropertyOperator#getUnderlyingType()
+ * @generated
+ */
+ EOperation getPropertyOperator__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.PropertyOperator#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.core.PropertyOperator#getExpressionText()
+ * @generated
+ */
+ EOperation getPropertyOperator__GetExpressionText();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.GetProperty <em>Get Property</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Get Property</em>'.
+ * @see rba.core.GetProperty
+ * @generated
+ */
+ EClass getGetProperty();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.GetProperty#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.core.GetProperty#getSymbol()
+ * @generated
+ */
+ EOperation getGetProperty__GetSymbol();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.GetProperty#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.core.GetProperty#getUnderlyingType()
+ * @generated
+ */
+ EOperation getGetProperty__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.StateValue <em>State Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>State Value</em>'.
+ * @see rba.core.StateValue
+ * @generated
+ */
+ EClass getStateValue();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.StateValue#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.core.StateValue#getSymbol()
+ * @generated
+ */
+ EOperation getStateValue__GetSymbol();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.StateValue#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.core.StateValue#getUnderlyingType()
+ * @generated
+ */
+ EOperation getStateValue__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.HasComeLaterThan <em>Has Come Later Than</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Has Come Later Than</em>'.
+ * @see rba.core.HasComeLaterThan
+ * @generated
+ */
+ EClass getHasComeLaterThan();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.HasComeLaterThan#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.core.HasComeLaterThan#getSymbol()
+ * @generated
+ */
+ EOperation getHasComeLaterThan__GetSymbol();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.HasComeLaterThan#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.core.HasComeLaterThan#getUnderlyingType()
+ * @generated
+ */
+ EOperation getHasComeLaterThan__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.HasComeLaterThan#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.core.HasComeLaterThan#getExpressionText()
+ * @generated
+ */
+ EOperation getHasComeLaterThan__GetExpressionText();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.HasComeEarlierThan <em>Has Come Earlier Than</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Has Come Earlier Than</em>'.
+ * @see rba.core.HasComeEarlierThan
+ * @generated
+ */
+ EClass getHasComeEarlierThan();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.HasComeEarlierThan#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.core.HasComeEarlierThan#getSymbol()
+ * @generated
+ */
+ EOperation getHasComeEarlierThan__GetSymbol();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.HasComeEarlierThan#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.core.HasComeEarlierThan#getUnderlyingType()
+ * @generated
+ */
+ EOperation getHasComeEarlierThan__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.HasComeEarlierThan#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.core.HasComeEarlierThan#getExpressionText()
+ * @generated
+ */
+ EOperation getHasComeEarlierThan__GetExpressionText();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.SugarExpression <em>Sugar Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Sugar Expression</em>'.
+ * @see rba.core.SugarExpression
+ * @generated
+ */
+ EClass getSugarExpression();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.SugarExpression#canExpand() <em>Can Expand</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Can Expand</em>' operation.
+ * @see rba.core.SugarExpression#canExpand()
+ * @generated
+ */
+ EOperation getSugarExpression__CanExpand();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.SugarExpression#getExpanded() <em>Get Expanded</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expanded</em>' operation.
+ * @see rba.core.SugarExpression#getExpanded()
+ * @generated
+ */
+ EOperation getSugarExpression__GetExpanded();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.SugarExpressionBase <em>Sugar Expression Base</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Sugar Expression Base</em>'.
+ * @see rba.core.SugarExpressionBase
+ * @generated
+ */
+ EClass getSugarExpressionBase();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.SugarExpressionBase#canExpand() <em>Can Expand</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Can Expand</em>' operation.
+ * @see rba.core.SugarExpressionBase#canExpand()
+ * @generated
+ */
+ EOperation getSugarExpressionBase__CanExpand();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.ObjectCompareNot <em>Object Compare Not</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Object Compare Not</em>'.
+ * @see rba.core.ObjectCompareNot
+ * @generated
+ */
+ EClass getObjectCompareNot();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.ObjectCompareNot#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.core.ObjectCompareNot#getSymbol()
+ * @generated
+ */
+ EOperation getObjectCompareNot__GetSymbol();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.ObjectCompareNot#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.core.ObjectCompareNot#getUnderlyingType()
+ * @generated
+ */
+ EOperation getObjectCompareNot__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.ObjectCompareNot#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.core.ObjectCompareNot#getExpressionText()
+ * @generated
+ */
+ EOperation getObjectCompareNot__GetExpressionText();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.IsAllocatedTo <em>Is Allocated To</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Is Allocated To</em>'.
+ * @see rba.core.IsAllocatedTo
+ * @generated
+ */
+ EClass getIsAllocatedTo();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.IsAllocatedTo#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.core.IsAllocatedTo#getSymbol()
+ * @generated
+ */
+ EOperation getIsAllocatedTo__GetSymbol();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.IsAllocatedTo#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.core.IsAllocatedTo#getUnderlyingType()
+ * @generated
+ */
+ EOperation getIsAllocatedTo__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.IsAllocatedTo#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.core.IsAllocatedTo#getExpressionText()
+ * @generated
+ */
+ EOperation getIsAllocatedTo__GetExpressionText();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.IsChanged <em>Is Changed</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Is Changed</em>'.
+ * @see rba.core.IsChanged
+ * @generated
+ */
+ EClass getIsChanged();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.IsChanged#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.core.IsChanged#getSymbol()
+ * @generated
+ */
+ EOperation getIsChanged__GetSymbol();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.IsChanged#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.core.IsChanged#getUnderlyingType()
+ * @generated
+ */
+ EOperation getIsChanged__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.IsTranslatedTo <em>Is Translated To</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Is Translated To</em>'.
+ * @see rba.core.IsTranslatedTo
+ * @generated
+ */
+ EClass getIsTranslatedTo();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.IsTranslatedTo#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.core.IsTranslatedTo#getSymbol()
+ * @generated
+ */
+ EOperation getIsTranslatedTo__GetSymbol();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.IsTranslatedTo#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.core.IsTranslatedTo#getUnderlyingType()
+ * @generated
+ */
+ EOperation getIsTranslatedTo__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.IsTranslatedTo#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.core.IsTranslatedTo#getExpressionText()
+ * @generated
+ */
+ EOperation getIsTranslatedTo__GetExpressionText();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.GetState <em>Get State</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Get State</em>'.
+ * @see rba.core.GetState
+ * @generated
+ */
+ EClass getGetState();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.GetState#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.core.GetState#getSymbol()
+ * @generated
+ */
+ EOperation getGetState__GetSymbol();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.ContentStateOperator <em>Content State Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Content State Operator</em>'.
+ * @see rba.core.ContentStateOperator
+ * @generated
+ */
+ EClass getContentStateOperator();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.ContentStateOperator#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.core.ContentStateOperator#getExpressionText()
+ * @generated
+ */
+ EOperation getContentStateOperator__GetExpressionText();
+
+ /**
+ * Returns the meta object for class '{@link rba.core.NullExpression <em>Null Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Null Expression</em>'.
+ * @see rba.core.NullExpression
+ * @generated
+ */
+ EClass getNullExpression();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.NullExpression#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.core.NullExpression#getUnderlyingType()
+ * @generated
+ */
+ EOperation getNullExpression__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for the '{@link rba.core.NullExpression#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.core.NullExpression#getExpressionText()
+ * @generated
+ */
+ EOperation getNullExpression__GetExpressionText();
+
+ /**
+ * Returns the meta object for enum '{@link rba.core.ArbitrationPolicy <em>Arbitration Policy</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Arbitration Policy</em>'.
+ * @see rba.core.ArbitrationPolicy
+ * @generated
+ */
+ EEnum getArbitrationPolicy();
+
+ /**
+ * Returns the meta object for enum '{@link rba.core.ExpressionType <em>Expression Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Expression Type</em>'.
+ * @see rba.core.ExpressionType
+ * @generated
+ */
+ EEnum getExpressionType();
+
+ /**
+ * Returns the meta object for enum '{@link rba.core.LoserType <em>Loser Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Loser Type</em>'.
+ * @see rba.core.LoserType
+ * @generated
+ */
+ EEnum getLoserType();
+
+ /**
+ * 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
+ */
+ RBACoreFactory getRBACoreFactory();
+
+ /**
+ * <!-- 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 operation 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 rba.core.impl.ModelElementImpl <em>Model Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ModelElementImpl
+ * @see rba.core.impl.RBACorePackageImpl#getModelElement()
+ * @generated
+ */
+ EClass MODEL_ELEMENT = eINSTANCE.getModelElement();
+
+ /**
+ * The meta object literal for the '<em><b>Description</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MODEL_ELEMENT__DESCRIPTION = eINSTANCE.getModelElement_Description();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.NamedElementImpl <em>Named Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.NamedElementImpl
+ * @see rba.core.impl.RBACorePackageImpl#getNamedElement()
+ * @generated
+ */
+ EClass NAMED_ELEMENT = eINSTANCE.getNamedElement();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute NAMED_ELEMENT__NAME = eINSTANCE.getNamedElement_Name();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.AbstractAllocatableImpl <em>Abstract Allocatable</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.AbstractAllocatableImpl
+ * @see rba.core.impl.RBACorePackageImpl#getAbstractAllocatable()
+ * @generated
+ */
+ EClass ABSTRACT_ALLOCATABLE = eINSTANCE.getAbstractAllocatable();
+
+ /**
+ * The meta object literal for the '<em><b>Contents</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ABSTRACT_ALLOCATABLE__CONTENTS = eINSTANCE.getAbstractAllocatable_Contents();
+
+ /**
+ * The meta object literal for the '<em><b>Allocatable Group</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ABSTRACT_ALLOCATABLE__ALLOCATABLE_GROUP = eINSTANCE.getAbstractAllocatable_AllocatableGroup();
+
+ /**
+ * The meta object literal for the '<em><b>Get Contents List</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation ABSTRACT_ALLOCATABLE___GET_CONTENTS_LIST = eINSTANCE.getAbstractAllocatable__GetContentsList();
+
+ /**
+ * The meta object literal for the '<em><b>Collect Leaf Allocatable</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation ABSTRACT_ALLOCATABLE___COLLECT_LEAF_ALLOCATABLE = eINSTANCE
+ .getAbstractAllocatable__CollectLeafAllocatable();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.AllocatableImpl <em>Allocatable</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.AllocatableImpl
+ * @see rba.core.impl.RBACorePackageImpl#getAllocatable()
+ * @generated
+ */
+ EClass ALLOCATABLE = eINSTANCE.getAllocatable();
+
+ /**
+ * The meta object literal for the '<em><b>Arbitration Policy</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ALLOCATABLE__ARBITRATION_POLICY = eINSTANCE.getAllocatable_ArbitrationPolicy();
+
+ /**
+ * The meta object literal for the '<em><b>Visibility</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ALLOCATABLE__VISIBILITY = eINSTANCE.getAllocatable_Visibility();
+
+ /**
+ * The meta object literal for the '<em><b>Collect Leaf Allocatable</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation ALLOCATABLE___COLLECT_LEAF_ALLOCATABLE = eINSTANCE.getAllocatable__CollectLeafAllocatable();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.AllocatableSetImpl <em>Allocatable Set</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.AllocatableSetImpl
+ * @see rba.core.impl.RBACorePackageImpl#getAllocatableSet()
+ * @generated
+ */
+ EClass ALLOCATABLE_SET = eINSTANCE.getAllocatableSet();
+
+ /**
+ * The meta object literal for the '<em><b>Target</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ALLOCATABLE_SET__TARGET = eINSTANCE.getAllocatableSet_Target();
+
+ /**
+ * The meta object literal for the '<em><b>Collect Leaf Allocatable</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation ALLOCATABLE_SET___COLLECT_LEAF_ALLOCATABLE = eINSTANCE.getAllocatableSet__CollectLeafAllocatable();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.ProjectImpl <em>Project</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ProjectImpl
+ * @see rba.core.impl.RBACorePackageImpl#getProject()
+ * @generated
+ */
+ EClass PROJECT = eINSTANCE.getProject();
+
+ /**
+ * The meta object literal for the '<em><b>Version</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PROJECT__VERSION = eINSTANCE.getProject_Version();
+
+ /**
+ * The meta object literal for the '<em><b>Dummy Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PROJECT__DUMMY_NAME = eINSTANCE.getProject_DummyName();
+
+ /**
+ * The meta object literal for the '<em><b>Get Name</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation PROJECT___GET_NAME = eINSTANCE.getProject__GetName();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.PackagableElementImpl <em>Packagable Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.PackagableElementImpl
+ * @see rba.core.impl.RBACorePackageImpl#getPackagableElement()
+ * @generated
+ */
+ EClass PACKAGABLE_ELEMENT = eINSTANCE.getPackagableElement();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.PackageImpl <em>Package</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.PackageImpl
+ * @see rba.core.impl.RBACorePackageImpl#getPackage()
+ * @generated
+ */
+ EClass PACKAGE = eINSTANCE.getPackage();
+
+ /**
+ * The meta object literal for the '<em><b>Packagableelement</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PACKAGE__PACKAGABLEELEMENT = eINSTANCE.getPackage_Packagableelement();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.StereotypeImpl <em>Stereotype</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.StereotypeImpl
+ * @see rba.core.impl.RBACorePackageImpl#getStereotype()
+ * @generated
+ */
+ EClass STEREOTYPE = eINSTANCE.getStereotype();
+
+ /**
+ * The meta object literal for the '<em><b>Target Model Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute STEREOTYPE__TARGET_MODEL_NAME = eINSTANCE.getStereotype_TargetModelName();
+
+ /**
+ * The meta object literal for the '<em><b>Variables</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference STEREOTYPE__VARIABLES = eINSTANCE.getStereotype_Variables();
+
+ /**
+ * The meta object literal for the '<em><b>Body Text</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute STEREOTYPE__BODY_TEXT = eINSTANCE.getStereotype_BodyText();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.TagImpl <em>Tag</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.TagImpl
+ * @see rba.core.impl.RBACorePackageImpl#getTag()
+ * @generated
+ */
+ EClass TAG = eINSTANCE.getTag();
+
+ /**
+ * The meta object literal for the '<em><b>Values</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TAG__VALUES = eINSTANCE.getTag_Values();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.RuleObjectImpl <em>Rule Object</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.RuleObjectImpl
+ * @see rba.core.impl.RBACorePackageImpl#getRuleObject()
+ * @generated
+ */
+ EClass RULE_OBJECT = eINSTANCE.getRuleObject();
+
+ /**
+ * The meta object literal for the '<em><b>Tags</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference RULE_OBJECT__TAGS = eINSTANCE.getRuleObject_Tags();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation RULE_OBJECT___GET_EXPRESSION_TYPE = eINSTANCE.getRuleObject__GetExpressionType();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.AbstractContentImpl <em>Abstract Content</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.AbstractContentImpl
+ * @see rba.core.impl.RBACorePackageImpl#getAbstractContent()
+ * @generated
+ */
+ EClass ABSTRACT_CONTENT = eINSTANCE.getAbstractContent();
+
+ /**
+ * The meta object literal for the '<em><b>Content Group</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ABSTRACT_CONTENT__CONTENT_GROUP = eINSTANCE.getAbstractContent_ContentGroup();
+
+ /**
+ * The meta object literal for the '<em><b>Allocatable</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ABSTRACT_CONTENT__ALLOCATABLE = eINSTANCE.getAbstractContent_Allocatable();
+
+ /**
+ * The meta object literal for the '<em><b>Get Allocatable List</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation ABSTRACT_CONTENT___GET_ALLOCATABLE_LIST = eINSTANCE.getAbstractContent__GetAllocatableList();
+
+ /**
+ * The meta object literal for the '<em><b>Collect Leaf Contents</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation ABSTRACT_CONTENT___COLLECT_LEAF_CONTENTS = eINSTANCE.getAbstractContent__CollectLeafContents();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.AbstractSceneImpl <em>Abstract Scene</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.AbstractSceneImpl
+ * @see rba.core.impl.RBACorePackageImpl#getAbstractScene()
+ * @generated
+ */
+ EClass ABSTRACT_SCENE = eINSTANCE.getAbstractScene();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.SceneImpl <em>Scene</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.SceneImpl
+ * @see rba.core.impl.RBACorePackageImpl#getScene()
+ * @generated
+ */
+ EClass SCENE = eINSTANCE.getScene();
+
+ /**
+ * The meta object literal for the '<em><b>Global</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SCENE__GLOBAL = eINSTANCE.getScene_Global();
+
+ /**
+ * The meta object literal for the '<em><b>Properties</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SCENE__PROPERTIES = eINSTANCE.getScene_Properties();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation SCENE___GET_EXPRESSION_TYPE = eINSTANCE.getScene__GetExpressionType();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.ContentImpl <em>Content</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ContentImpl
+ * @see rba.core.impl.RBACorePackageImpl#getContent()
+ * @generated
+ */
+ EClass CONTENT = eINSTANCE.getContent();
+
+ /**
+ * The meta object literal for the '<em><b>Loser Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CONTENT__LOSER_TYPE = eINSTANCE.getContent_LoserType();
+
+ /**
+ * The meta object literal for the '<em><b>States</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONTENT__STATES = eINSTANCE.getContent_States();
+
+ /**
+ * The meta object literal for the '<em><b>Collect Leaf Contents</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation CONTENT___COLLECT_LEAF_CONTENTS = eINSTANCE.getContent__CollectLeafContents();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.ContentSetImpl <em>Content Set</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ContentSetImpl
+ * @see rba.core.impl.RBACorePackageImpl#getContentSet()
+ * @generated
+ */
+ EClass CONTENT_SET = eINSTANCE.getContentSet();
+
+ /**
+ * The meta object literal for the '<em><b>Target</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONTENT_SET__TARGET = eINSTANCE.getContentSet_Target();
+
+ /**
+ * The meta object literal for the '<em><b>Collect Leaf Contents</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation CONTENT_SET___COLLECT_LEAF_CONTENTS = eINSTANCE.getContentSet__CollectLeafContents();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.ContentStateImpl <em>Content State</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ContentStateImpl
+ * @see rba.core.impl.RBACorePackageImpl#getContentState()
+ * @generated
+ */
+ EClass CONTENT_STATE = eINSTANCE.getContentState();
+
+ /**
+ * The meta object literal for the '<em><b>Value</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONTENT_STATE__VALUE = eINSTANCE.getContentState_Value();
+
+ /**
+ * The meta object literal for the '<em><b>Owner</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONTENT_STATE__OWNER = eINSTANCE.getContentState_Owner();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.AbstractPropertyImpl <em>Abstract Property</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.AbstractPropertyImpl
+ * @see rba.core.impl.RBACorePackageImpl#getAbstractProperty()
+ * @generated
+ */
+ EClass ABSTRACT_PROPERTY = eINSTANCE.getAbstractProperty();
+
+ /**
+ * The meta object literal for the '<em><b>Owner</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ABSTRACT_PROPERTY__OWNER = eINSTANCE.getAbstractProperty_Owner();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation ABSTRACT_PROPERTY___GET_EXPRESSION_TYPE = eINSTANCE.getAbstractProperty__GetExpressionType();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.IntegerPropertyImpl <em>Integer Property</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.IntegerPropertyImpl
+ * @see rba.core.impl.RBACorePackageImpl#getIntegerProperty()
+ * @generated
+ */
+ EClass INTEGER_PROPERTY = eINSTANCE.getIntegerProperty();
+
+ /**
+ * The meta object literal for the '<em><b>Value</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference INTEGER_PROPERTY__VALUE = eINSTANCE.getIntegerProperty_Value();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.AbstractConstraintImpl <em>Abstract Constraint</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.AbstractConstraintImpl
+ * @see rba.core.impl.RBACorePackageImpl#getAbstractConstraint()
+ * @generated
+ */
+ EClass ABSTRACT_CONSTRAINT = eINSTANCE.getAbstractConstraint();
+
+ /**
+ * The meta object literal for the '<em><b>Expression</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ABSTRACT_CONSTRAINT__EXPRESSION = eINSTANCE.getAbstractConstraint_Expression();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.ConstraintImpl <em>Constraint</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ConstraintImpl
+ * @see rba.core.impl.RBACorePackageImpl#getConstraint()
+ * @generated
+ */
+ EClass CONSTRAINT = eINSTANCE.getConstraint();
+
+ /**
+ * The meta object literal for the '<em><b>Runtime</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CONSTRAINT__RUNTIME = eINSTANCE.getConstraint_Runtime();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.ExpressionImpl <em>Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ExpressionImpl
+ * @see rba.core.impl.RBACorePackageImpl#getExpression()
+ * @generated
+ */
+ EClass EXPRESSION = eINSTANCE.getExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EXPRESSION__TYPE = eINSTANCE.getExpression_Type();
+
+ /**
+ * The meta object literal for the '<em><b>Expression</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EXPRESSION__EXPRESSION = eINSTANCE.getExpression_Expression();
+
+ /**
+ * The meta object literal for the '<em><b>Let Statements</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference EXPRESSION__LET_STATEMENTS = eINSTANCE.getExpression_LetStatements();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation EXPRESSION___GET_UNDERLYING_TYPE = eINSTANCE.getExpression__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation EXPRESSION___GET_EXPRESSION_TEXT = eINSTANCE.getExpression__GetExpressionText();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.LetStatementImpl <em>Let Statement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.LetStatementImpl
+ * @see rba.core.impl.RBACorePackageImpl#getLetStatement()
+ * @generated
+ */
+ EClass LET_STATEMENT = eINSTANCE.getLetStatement();
+
+ /**
+ * The meta object literal for the '<em><b>Variable</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LET_STATEMENT__VARIABLE = eINSTANCE.getLetStatement_Variable();
+
+ /**
+ * The meta object literal for the '<em><b>Body</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LET_STATEMENT__BODY = eINSTANCE.getLetStatement_Body();
+
+ /**
+ * The meta object literal for the '<em><b>To String</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation LET_STATEMENT___TO_STRING = eINSTANCE.getLetStatement__ToString();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.ComplexExpressionImpl <em>Complex Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ComplexExpressionImpl
+ * @see rba.core.impl.RBACorePackageImpl#getComplexExpression()
+ * @generated
+ */
+ EClass COMPLEX_EXPRESSION = eINSTANCE.getComplexExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Other Expression</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference COMPLEX_EXPRESSION__OTHER_EXPRESSION = eINSTANCE.getComplexExpression_OtherExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation COMPLEX_EXPRESSION___GET_EXPRESSION_TEXT = eINSTANCE.getComplexExpression__GetExpressionText();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation COMPLEX_EXPRESSION___GET_UNDERLYING_TYPE = eINSTANCE.getComplexExpression__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '<em><b>Get Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation COMPLEX_EXPRESSION___GET_TYPE = eINSTANCE.getComplexExpression__GetType();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.OperatorImpl <em>Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.OperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getOperator()
+ * @generated
+ */
+ EClass OPERATOR = eINSTANCE.getOperator();
+
+ /**
+ * The meta object literal for the '<em><b>Operand</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference OPERATOR__OPERAND = eINSTANCE.getOperator_Operand();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation OPERATOR___GET_SYMBOL = eINSTANCE.getOperator__GetSymbol();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.IsTypeOfImpl <em>Is Type Of</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.IsTypeOfImpl
+ * @see rba.core.impl.RBACorePackageImpl#getIsTypeOf()
+ * @generated
+ */
+ EClass IS_TYPE_OF = eINSTANCE.getIsTypeOf();
+
+ /**
+ * The meta object literal for the '<em><b>Tag Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute IS_TYPE_OF__TAG_NAME = eINSTANCE.getIsTypeOf_TagName();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IS_TYPE_OF___GET_EXPRESSION_TEXT = eINSTANCE.getIsTypeOf__GetExpressionText();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IS_TYPE_OF___GET_SYMBOL = eINSTANCE.getIsTypeOf__GetSymbol();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IS_TYPE_OF___GET_UNDERLYING_TYPE = eINSTANCE.getIsTypeOf__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.ObjectReferenceImpl <em>Object Reference</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ObjectReferenceImpl
+ * @see rba.core.impl.RBACorePackageImpl#getObjectReference()
+ * @generated
+ */
+ EClass OBJECT_REFERENCE = eINSTANCE.getObjectReference();
+
+ /**
+ * The meta object literal for the '<em><b>Ref Object</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference OBJECT_REFERENCE__REF_OBJECT = eINSTANCE.getObjectReference_RefObject();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation OBJECT_REFERENCE___GET_UNDERLYING_TYPE = eINSTANCE.getObjectReference__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation OBJECT_REFERENCE___GET_EXPRESSION_TEXT = eINSTANCE.getObjectReference__GetExpressionText();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.PreviousModifierImpl <em>Previous Modifier</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.PreviousModifierImpl
+ * @see rba.core.impl.RBACorePackageImpl#getPreviousModifier()
+ * @generated
+ */
+ EClass PREVIOUS_MODIFIER = eINSTANCE.getPreviousModifier();
+
+ /**
+ * The meta object literal for the '<em><b>Obj Reference</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PREVIOUS_MODIFIER__OBJ_REFERENCE = eINSTANCE.getPreviousModifier_ObjReference();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation PREVIOUS_MODIFIER___GET_SYMBOL = eINSTANCE.getPreviousModifier__GetSymbol();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation PREVIOUS_MODIFIER___GET_UNDERLYING_TYPE = eINSTANCE.getPreviousModifier__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation PREVIOUS_MODIFIER___GET_EXPRESSION_TEXT = eINSTANCE.getPreviousModifier__GetExpressionText();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.GreaterThanOperatorImpl <em>Greater Than Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.GreaterThanOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getGreaterThanOperator()
+ * @generated
+ */
+ EClass GREATER_THAN_OPERATOR = eINSTANCE.getGreaterThanOperator();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation GREATER_THAN_OPERATOR___GET_SYMBOL = eINSTANCE.getGreaterThanOperator__GetSymbol();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.MuchGreaterThanOperatorImpl <em>Much Greater Than Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.MuchGreaterThanOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getMuchGreaterThanOperator()
+ * @generated
+ */
+ EClass MUCH_GREATER_THAN_OPERATOR = eINSTANCE.getMuchGreaterThanOperator();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation MUCH_GREATER_THAN_OPERATOR___GET_SYMBOL = eINSTANCE.getMuchGreaterThanOperator__GetSymbol();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.LowerThanOperatorImpl <em>Lower Than Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.LowerThanOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getLowerThanOperator()
+ * @generated
+ */
+ EClass LOWER_THAN_OPERATOR = eINSTANCE.getLowerThanOperator();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation LOWER_THAN_OPERATOR___GET_SYMBOL = eINSTANCE.getLowerThanOperator__GetSymbol();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.ComparisonOperatorImpl <em>Comparison Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ComparisonOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getComparisonOperator()
+ * @generated
+ */
+ EClass COMPARISON_OPERATOR = eINSTANCE.getComparisonOperator();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation COMPARISON_OPERATOR___GET_UNDERLYING_TYPE = eINSTANCE.getComparisonOperator__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation COMPARISON_OPERATOR___GET_EXPRESSION_TEXT = eINSTANCE.getComparisonOperator__GetExpressionText();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.EqualToOperatorImpl <em>Equal To Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.EqualToOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getEqualToOperator()
+ * @generated
+ */
+ EClass EQUAL_TO_OPERATOR = eINSTANCE.getEqualToOperator();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation EQUAL_TO_OPERATOR___GET_SYMBOL = eINSTANCE.getEqualToOperator__GetSymbol();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.ComparisonAndImpl <em>Comparison And</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ComparisonAndImpl
+ * @see rba.core.impl.RBACorePackageImpl#getComparisonAnd()
+ * @generated
+ */
+ EClass COMPARISON_AND = eINSTANCE.getComparisonAnd();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation COMPARISON_AND___GET_SYMBOL = eINSTANCE.getComparisonAnd__GetSymbol();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation COMPARISON_AND___GET_EXPRESSION_TEXT = eINSTANCE.getComparisonAnd__GetExpressionText();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.LogicalOperatorImpl <em>Logical Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.LogicalOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getLogicalOperator()
+ * @generated
+ */
+ EClass LOGICAL_OPERATOR = eINSTANCE.getLogicalOperator();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation LOGICAL_OPERATOR___GET_UNDERLYING_TYPE = eINSTANCE.getLogicalOperator__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation LOGICAL_OPERATOR___GET_EXPRESSION_TEXT = eINSTANCE.getLogicalOperator__GetExpressionText();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.AndOperatorImpl <em>And Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.AndOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getAndOperator()
+ * @generated
+ */
+ EClass AND_OPERATOR = eINSTANCE.getAndOperator();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation AND_OPERATOR___GET_SYMBOL = eINSTANCE.getAndOperator__GetSymbol();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.OrOperatorImpl <em>Or Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.OrOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getOrOperator()
+ * @generated
+ */
+ EClass OR_OPERATOR = eINSTANCE.getOrOperator();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation OR_OPERATOR___GET_SYMBOL = eINSTANCE.getOrOperator__GetSymbol();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.NotOperatorImpl <em>Not Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.NotOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getNotOperator()
+ * @generated
+ */
+ EClass NOT_OPERATOR = eINSTANCE.getNotOperator();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation NOT_OPERATOR___GET_SYMBOL = eINSTANCE.getNotOperator__GetSymbol();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation NOT_OPERATOR___GET_EXPRESSION_TEXT = eINSTANCE.getNotOperator__GetExpressionText();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.IsEqualToOperatorImpl <em>Is Equal To Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.IsEqualToOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getIsEqualToOperator()
+ * @generated
+ */
+ EClass IS_EQUAL_TO_OPERATOR = eINSTANCE.getIsEqualToOperator();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IS_EQUAL_TO_OPERATOR___GET_SYMBOL = eINSTANCE.getIsEqualToOperator__GetSymbol();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.IsGreaterThanOperatorImpl <em>Is Greater Than Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.IsGreaterThanOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getIsGreaterThanOperator()
+ * @generated
+ */
+ EClass IS_GREATER_THAN_OPERATOR = eINSTANCE.getIsGreaterThanOperator();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IS_GREATER_THAN_OPERATOR___GET_SYMBOL = eINSTANCE.getIsGreaterThanOperator__GetSymbol();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.IsLowerThanOperatorImpl <em>Is Lower Than Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.IsLowerThanOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getIsLowerThanOperator()
+ * @generated
+ */
+ EClass IS_LOWER_THAN_OPERATOR = eINSTANCE.getIsLowerThanOperator();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IS_LOWER_THAN_OPERATOR___GET_SYMBOL = eINSTANCE.getIsLowerThanOperator__GetSymbol();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.IsGreaterThanEqualOperatorImpl <em>Is Greater Than Equal Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.IsGreaterThanEqualOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getIsGreaterThanEqualOperator()
+ * @generated
+ */
+ EClass IS_GREATER_THAN_EQUAL_OPERATOR = eINSTANCE.getIsGreaterThanEqualOperator();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IS_GREATER_THAN_EQUAL_OPERATOR___GET_SYMBOL = eINSTANCE.getIsGreaterThanEqualOperator__GetSymbol();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.IsLowerThanEqualOperatorImpl <em>Is Lower Than Equal Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.IsLowerThanEqualOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getIsLowerThanEqualOperator()
+ * @generated
+ */
+ EClass IS_LOWER_THAN_EQUAL_OPERATOR = eINSTANCE.getIsLowerThanEqualOperator();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IS_LOWER_THAN_EQUAL_OPERATOR___GET_SYMBOL = eINSTANCE.getIsLowerThanEqualOperator__GetSymbol();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.ArithmeticOperatorImpl <em>Arithmetic Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ArithmeticOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getArithmeticOperator()
+ * @generated
+ */
+ EClass ARITHMETIC_OPERATOR = eINSTANCE.getArithmeticOperator();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation ARITHMETIC_OPERATOR___GET_UNDERLYING_TYPE = eINSTANCE.getArithmeticOperator__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation ARITHMETIC_OPERATOR___GET_EXPRESSION_TEXT = eINSTANCE.getArithmeticOperator__GetExpressionText();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.PlusOperatorImpl <em>Plus Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.PlusOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getPlusOperator()
+ * @generated
+ */
+ EClass PLUS_OPERATOR = eINSTANCE.getPlusOperator();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation PLUS_OPERATOR___GET_SYMBOL = eINSTANCE.getPlusOperator__GetSymbol();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.ImpliesOperatorImpl <em>Implies Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ImpliesOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getImpliesOperator()
+ * @generated
+ */
+ EClass IMPLIES_OPERATOR = eINSTANCE.getImpliesOperator();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IMPLIES_OPERATOR___GET_SYMBOL = eINSTANCE.getImpliesOperator__GetSymbol();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.ContentOperatorImpl <em>Content Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ContentOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getContentOperator()
+ * @generated
+ */
+ EClass CONTENT_OPERATOR = eINSTANCE.getContentOperator();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation CONTENT_OPERATOR___GET_EXPRESSION_TEXT = eINSTANCE.getContentOperator__GetExpressionText();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.IsActiveImpl <em>Is Active</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.IsActiveImpl
+ * @see rba.core.impl.RBACorePackageImpl#getIsActive()
+ * @generated
+ */
+ EClass IS_ACTIVE = eINSTANCE.getIsActive();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IS_ACTIVE___GET_SYMBOL = eINSTANCE.getIsActive__GetSymbol();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IS_ACTIVE___GET_UNDERLYING_TYPE = eINSTANCE.getIsActive__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.GetAllocatablesImpl <em>Get Allocatables</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.GetAllocatablesImpl
+ * @see rba.core.impl.RBACorePackageImpl#getGetAllocatables()
+ * @generated
+ */
+ EClass GET_ALLOCATABLES = eINSTANCE.getGetAllocatables();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation GET_ALLOCATABLES___GET_SYMBOL = eINSTANCE.getGetAllocatables__GetSymbol();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation GET_ALLOCATABLES___GET_UNDERLYING_TYPE = eINSTANCE.getGetAllocatables__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.HasBeenDisplayedImpl <em>Has Been Displayed</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.HasBeenDisplayedImpl
+ * @see rba.core.impl.RBACorePackageImpl#getHasBeenDisplayed()
+ * @generated
+ */
+ EClass HAS_BEEN_DISPLAYED = eINSTANCE.getHasBeenDisplayed();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation HAS_BEEN_DISPLAYED___GET_SYMBOL = eINSTANCE.getHasBeenDisplayed__GetSymbol();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation HAS_BEEN_DISPLAYED___GET_UNDERLYING_TYPE = eINSTANCE.getHasBeenDisplayed__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.ActiveStateImpl <em>Active State</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ActiveStateImpl
+ * @see rba.core.impl.RBACorePackageImpl#getActiveState()
+ * @generated
+ */
+ EClass ACTIVE_STATE = eINSTANCE.getActiveState();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation ACTIVE_STATE___GET_SYMBOL = eINSTANCE.getActiveState__GetSymbol();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation ACTIVE_STATE___GET_UNDERLYING_TYPE = eINSTANCE.getActiveState__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.ObjectCompareImpl <em>Object Compare</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ObjectCompareImpl
+ * @see rba.core.impl.RBACorePackageImpl#getObjectCompare()
+ * @generated
+ */
+ EClass OBJECT_COMPARE = eINSTANCE.getObjectCompare();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation OBJECT_COMPARE___GET_SYMBOL = eINSTANCE.getObjectCompare__GetSymbol();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation OBJECT_COMPARE___GET_UNDERLYING_TYPE = eINSTANCE.getObjectCompare__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation OBJECT_COMPARE___GET_EXPRESSION_TEXT = eINSTANCE.getObjectCompare__GetExpressionText();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.ThatOfOperatorImpl <em>That Of Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ThatOfOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getThatOfOperator()
+ * @generated
+ */
+ EClass THAT_OF_OPERATOR = eINSTANCE.getThatOfOperator();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation THAT_OF_OPERATOR___GET_EXPRESSION_TEXT = eINSTANCE.getThatOfOperator__GetExpressionText();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation THAT_OF_OPERATOR___GET_SYMBOL = eINSTANCE.getThatOfOperator__GetSymbol();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation THAT_OF_OPERATOR___GET_UNDERLYING_TYPE = eINSTANCE.getThatOfOperator__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.ValueExpressionImpl <em>Value Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ValueExpressionImpl
+ * @see rba.core.impl.RBACorePackageImpl#getValueExpression()
+ * @generated
+ */
+ EClass VALUE_EXPRESSION = eINSTANCE.getValueExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation VALUE_EXPRESSION___GET_UNDERLYING_TYPE = eINSTANCE.getValueExpression__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Value</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation VALUE_EXPRESSION___GET_EXPRESSION_VALUE = eINSTANCE.getValueExpression__GetExpressionValue();
+
+ /**
+ * The meta object literal for the '<em><b>Get Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation VALUE_EXPRESSION___GET_TYPE = eINSTANCE.getValueExpression__GetType();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.MaxValueImpl <em>Max Value</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.MaxValueImpl
+ * @see rba.core.impl.RBACorePackageImpl#getMaxValue()
+ * @generated
+ */
+ EClass MAX_VALUE = eINSTANCE.getMaxValue();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation MAX_VALUE___GET_EXPRESSION_TEXT = eINSTANCE.getMaxValue__GetExpressionText();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Value</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation MAX_VALUE___GET_EXPRESSION_VALUE = eINSTANCE.getMaxValue__GetExpressionValue();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.MinValueImpl <em>Min Value</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.MinValueImpl
+ * @see rba.core.impl.RBACorePackageImpl#getMinValue()
+ * @generated
+ */
+ EClass MIN_VALUE = eINSTANCE.getMinValue();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation MIN_VALUE___GET_EXPRESSION_TEXT = eINSTANCE.getMinValue__GetExpressionText();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Value</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation MIN_VALUE___GET_EXPRESSION_VALUE = eINSTANCE.getMinValue__GetExpressionValue();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.NoneValueImpl <em>None Value</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.NoneValueImpl
+ * @see rba.core.impl.RBACorePackageImpl#getNoneValue()
+ * @generated
+ */
+ EClass NONE_VALUE = eINSTANCE.getNoneValue();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation NONE_VALUE___GET_EXPRESSION_TEXT = eINSTANCE.getNoneValue__GetExpressionText();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Value</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation NONE_VALUE___GET_EXPRESSION_VALUE = eINSTANCE.getNoneValue__GetExpressionValue();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.StandardValueImpl <em>Standard Value</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.StandardValueImpl
+ * @see rba.core.impl.RBACorePackageImpl#getStandardValue()
+ * @generated
+ */
+ EClass STANDARD_VALUE = eINSTANCE.getStandardValue();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation STANDARD_VALUE___GET_EXPRESSION_TEXT = eINSTANCE.getStandardValue__GetExpressionText();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Value</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation STANDARD_VALUE___GET_EXPRESSION_VALUE = eINSTANCE.getStandardValue__GetExpressionValue();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.IntegerValueImpl <em>Integer Value</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.IntegerValueImpl
+ * @see rba.core.impl.RBACorePackageImpl#getIntegerValue()
+ * @generated
+ */
+ EClass INTEGER_VALUE = eINSTANCE.getIntegerValue();
+
+ /**
+ * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute INTEGER_VALUE__VALUE = eINSTANCE.getIntegerValue_Value();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation INTEGER_VALUE___GET_EXPRESSION_TEXT = eINSTANCE.getIntegerValue__GetExpressionText();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Value</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation INTEGER_VALUE___GET_EXPRESSION_VALUE = eINSTANCE.getIntegerValue__GetExpressionValue();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.EnumExpressionImpl <em>Enum Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.EnumExpressionImpl
+ * @see rba.core.impl.RBACorePackageImpl#getEnumExpression()
+ * @generated
+ */
+ EClass ENUM_EXPRESSION = eINSTANCE.getEnumExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation ENUM_EXPRESSION___GET_UNDERLYING_TYPE = eINSTANCE.getEnumExpression__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Value</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation ENUM_EXPRESSION___GET_EXPRESSION_VALUE = eINSTANCE.getEnumExpression__GetExpressionValue();
+
+ /**
+ * The meta object literal for the '<em><b>Get Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation ENUM_EXPRESSION___GET_TYPE = eINSTANCE.getEnumExpression__GetType();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.LoserTypeExpressionImpl <em>Loser Type Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.LoserTypeExpressionImpl
+ * @see rba.core.impl.RBACorePackageImpl#getLoserTypeExpression()
+ * @generated
+ */
+ EClass LOSER_TYPE_EXPRESSION = eINSTANCE.getLoserTypeExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LOSER_TYPE_EXPRESSION__VALUE = eINSTANCE.getLoserTypeExpression_Value();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation LOSER_TYPE_EXPRESSION___GET_EXPRESSION_TEXT = eINSTANCE.getLoserTypeExpression__GetExpressionText();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Value</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation LOSER_TYPE_EXPRESSION___GET_EXPRESSION_VALUE = eINSTANCE
+ .getLoserTypeExpression__GetExpressionValue();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.ArbitrationPolicyExpressionImpl <em>Arbitration Policy Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ArbitrationPolicyExpressionImpl
+ * @see rba.core.impl.RBACorePackageImpl#getArbitrationPolicyExpression()
+ * @generated
+ */
+ EClass ARBITRATION_POLICY_EXPRESSION = eINSTANCE.getArbitrationPolicyExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ARBITRATION_POLICY_EXPRESSION__VALUE = eINSTANCE.getArbitrationPolicyExpression_Value();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation ARBITRATION_POLICY_EXPRESSION___GET_EXPRESSION_TEXT = eINSTANCE
+ .getArbitrationPolicyExpression__GetExpressionText();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Value</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation ARBITRATION_POLICY_EXPRESSION___GET_EXPRESSION_VALUE = eINSTANCE
+ .getArbitrationPolicyExpression__GetExpressionValue();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.SetExpressionImpl <em>Set Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.SetExpressionImpl
+ * @see rba.core.impl.RBACorePackageImpl#getSetExpression()
+ * @generated
+ */
+ EClass SET_EXPRESSION = eINSTANCE.getSetExpression();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.SetOperatorImpl <em>Set Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.SetOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getSetOperator()
+ * @generated
+ */
+ EClass SET_OPERATOR = eINSTANCE.getSetOperator();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.SizeOperatorImpl <em>Size Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.SizeOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getSizeOperator()
+ * @generated
+ */
+ EClass SIZE_OPERATOR = eINSTANCE.getSizeOperator();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation SIZE_OPERATOR___GET_EXPRESSION_TEXT = eINSTANCE.getSizeOperator__GetExpressionText();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation SIZE_OPERATOR___GET_SYMBOL = eINSTANCE.getSizeOperator__GetSymbol();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation SIZE_OPERATOR___GET_UNDERLYING_TYPE = eINSTANCE.getSizeOperator__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.ExistsOperatorImpl <em>Exists Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ExistsOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getExistsOperator()
+ * @generated
+ */
+ EClass EXISTS_OPERATOR = eINSTANCE.getExistsOperator();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation EXISTS_OPERATOR___GET_EXPRESSION_TEXT = eINSTANCE.getExistsOperator__GetExpressionText();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation EXISTS_OPERATOR___GET_SYMBOL = eINSTANCE.getExistsOperator__GetSymbol();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation EXISTS_OPERATOR___GET_UNDERLYING_TYPE = eINSTANCE.getExistsOperator__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.ForAllOperatorImpl <em>For All Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ForAllOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getForAllOperator()
+ * @generated
+ */
+ EClass FOR_ALL_OPERATOR = eINSTANCE.getForAllOperator();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation FOR_ALL_OPERATOR___GET_EXPRESSION_TEXT = eINSTANCE.getForAllOperator__GetExpressionText();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation FOR_ALL_OPERATOR___GET_SYMBOL = eINSTANCE.getForAllOperator__GetSymbol();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation FOR_ALL_OPERATOR___GET_UNDERLYING_TYPE = eINSTANCE.getForAllOperator__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.MaxOperatorImpl <em>Max Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.MaxOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getMaxOperator()
+ * @generated
+ */
+ EClass MAX_OPERATOR = eINSTANCE.getMaxOperator();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation MAX_OPERATOR___GET_EXPRESSION_TEXT = eINSTANCE.getMaxOperator__GetExpressionText();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation MAX_OPERATOR___GET_SYMBOL = eINSTANCE.getMaxOperator__GetSymbol();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation MAX_OPERATOR___GET_UNDERLYING_TYPE = eINSTANCE.getMaxOperator__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.MinOperatorImpl <em>Min Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.MinOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getMinOperator()
+ * @generated
+ */
+ EClass MIN_OPERATOR = eINSTANCE.getMinOperator();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation MIN_OPERATOR___GET_EXPRESSION_TEXT = eINSTANCE.getMinOperator__GetExpressionText();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation MIN_OPERATOR___GET_SYMBOL = eINSTANCE.getMinOperator__GetSymbol();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation MIN_OPERATOR___GET_UNDERLYING_TYPE = eINSTANCE.getMinOperator__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.SelectOperatorImpl <em>Select Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.SelectOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getSelectOperator()
+ * @generated
+ */
+ EClass SELECT_OPERATOR = eINSTANCE.getSelectOperator();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation SELECT_OPERATOR___GET_EXPRESSION_TEXT = eINSTANCE.getSelectOperator__GetExpressionText();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation SELECT_OPERATOR___GET_SYMBOL = eINSTANCE.getSelectOperator__GetSymbol();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation SELECT_OPERATOR___GET_UNDERLYING_TYPE = eINSTANCE.getSelectOperator__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.SetOfOperatorImpl <em>Set Of Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.SetOfOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getSetOfOperator()
+ * @generated
+ */
+ EClass SET_OF_OPERATOR = eINSTANCE.getSetOfOperator();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation SET_OF_OPERATOR___GET_EXPRESSION_TEXT = eINSTANCE.getSetOfOperator__GetExpressionText();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation SET_OF_OPERATOR___GET_SYMBOL = eINSTANCE.getSetOfOperator__GetSymbol();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation SET_OF_OPERATOR___GET_UNDERLYING_TYPE = eINSTANCE.getSetOfOperator__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.LambdaExpressionImpl <em>Lambda Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.LambdaExpressionImpl
+ * @see rba.core.impl.RBACorePackageImpl#getLambdaExpression()
+ * @generated
+ */
+ EClass LAMBDA_EXPRESSION = eINSTANCE.getLambdaExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Context</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LAMBDA_EXPRESSION__CONTEXT = eINSTANCE.getLambdaExpression_Context();
+
+ /**
+ * The meta object literal for the '<em><b>X</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LAMBDA_EXPRESSION__X = eINSTANCE.getLambdaExpression_X();
+
+ /**
+ * The meta object literal for the '<em><b>Body Text</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LAMBDA_EXPRESSION__BODY_TEXT = eINSTANCE.getLambdaExpression_BodyText();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation LAMBDA_EXPRESSION___GET_EXPRESSION_TEXT = eINSTANCE.getLambdaExpression__GetExpressionText();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation LAMBDA_EXPRESSION___GET_UNDERLYING_TYPE = eINSTANCE.getLambdaExpression__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.VariableImpl <em>Variable</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.VariableImpl
+ * @see rba.core.impl.RBACorePackageImpl#getVariable()
+ * @generated
+ */
+ EClass VARIABLE = eINSTANCE.getVariable();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation VARIABLE___GET_EXPRESSION_TYPE = eINSTANCE.getVariable__GetExpressionType();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.LambdaContextImpl <em>Lambda Context</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.LambdaContextImpl
+ * @see rba.core.impl.RBACorePackageImpl#getLambdaContext()
+ * @generated
+ */
+ EClass LAMBDA_CONTEXT = eINSTANCE.getLambdaContext();
+
+ /**
+ * The meta object literal for the '<em><b>Lambda</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LAMBDA_CONTEXT__LAMBDA = eINSTANCE.getLambdaContext_Lambda();
+
+ /**
+ * The meta object literal for the '<em><b>Get Context Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation LAMBDA_CONTEXT___GET_CONTEXT_TYPE = eINSTANCE.getLambdaContext__GetContextType();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.IfStatementImpl <em>If Statement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.IfStatementImpl
+ * @see rba.core.impl.RBACorePackageImpl#getIfStatement()
+ * @generated
+ */
+ EClass IF_STATEMENT = eINSTANCE.getIfStatement();
+
+ /**
+ * The meta object literal for the '<em><b>Condition</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference IF_STATEMENT__CONDITION = eINSTANCE.getIfStatement_Condition();
+
+ /**
+ * The meta object literal for the '<em><b>Then Expression</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference IF_STATEMENT__THEN_EXPRESSION = eINSTANCE.getIfStatement_ThenExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Else Expression</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference IF_STATEMENT__ELSE_EXPRESSION = eINSTANCE.getIfStatement_ElseExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IF_STATEMENT___GET_UNDERLYING_TYPE = eINSTANCE.getIfStatement__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IF_STATEMENT___GET_EXPRESSION_TEXT = eINSTANCE.getIfStatement__GetExpressionText();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.SceneOperatorImpl <em>Scene Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.SceneOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getSceneOperator()
+ * @generated
+ */
+ EClass SCENE_OPERATOR = eINSTANCE.getSceneOperator();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation SCENE_OPERATOR___GET_EXPRESSION_TEXT = eINSTANCE.getSceneOperator__GetExpressionText();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.IsOnImpl <em>Is On</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.IsOnImpl
+ * @see rba.core.impl.RBACorePackageImpl#getIsOn()
+ * @generated
+ */
+ EClass IS_ON = eINSTANCE.getIsOn();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IS_ON___GET_SYMBOL = eINSTANCE.getIsOn__GetSymbol();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IS_ON___GET_UNDERLYING_TYPE = eINSTANCE.getIsOn__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.AllocatableOperatorImpl <em>Allocatable Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.AllocatableOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getAllocatableOperator()
+ * @generated
+ */
+ EClass ALLOCATABLE_OPERATOR = eINSTANCE.getAllocatableOperator();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation ALLOCATABLE_OPERATOR___GET_EXPRESSION_TEXT = eINSTANCE.getAllocatableOperator__GetExpressionText();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.AllocatedContentImpl <em>Allocated Content</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.AllocatedContentImpl
+ * @see rba.core.impl.RBACorePackageImpl#getAllocatedContent()
+ * @generated
+ */
+ EClass ALLOCATED_CONTENT = eINSTANCE.getAllocatedContent();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation ALLOCATED_CONTENT___GET_SYMBOL = eINSTANCE.getAllocatedContent__GetSymbol();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation ALLOCATED_CONTENT___GET_UNDERLYING_TYPE = eINSTANCE.getAllocatedContent__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.ContentValueImpl <em>Content Value</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ContentValueImpl
+ * @see rba.core.impl.RBACorePackageImpl#getContentValue()
+ * @generated
+ */
+ EClass CONTENT_VALUE = eINSTANCE.getContentValue();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation CONTENT_VALUE___GET_SYMBOL = eINSTANCE.getContentValue__GetSymbol();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation CONTENT_VALUE___GET_UNDERLYING_TYPE = eINSTANCE.getContentValue__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.GetContentsListImpl <em>Get Contents List</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.GetContentsListImpl
+ * @see rba.core.impl.RBACorePackageImpl#getGetContentsList()
+ * @generated
+ */
+ EClass GET_CONTENTS_LIST = eINSTANCE.getGetContentsList();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation GET_CONTENTS_LIST___GET_SYMBOL = eINSTANCE.getGetContentsList__GetSymbol();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation GET_CONTENTS_LIST___GET_UNDERLYING_TYPE = eINSTANCE.getGetContentsList__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.ActiveContentsImpl <em>Active Contents</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ActiveContentsImpl
+ * @see rba.core.impl.RBACorePackageImpl#getActiveContents()
+ * @generated
+ */
+ EClass ACTIVE_CONTENTS = eINSTANCE.getActiveContents();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation ACTIVE_CONTENTS___GET_SYMBOL = eINSTANCE.getActiveContents__GetSymbol();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation ACTIVE_CONTENTS___GET_UNDERLYING_TYPE = eINSTANCE.getActiveContents__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.PropertyOperatorImpl <em>Property Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.PropertyOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getPropertyOperator()
+ * @generated
+ */
+ EClass PROPERTY_OPERATOR = eINSTANCE.getPropertyOperator();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation PROPERTY_OPERATOR___GET_UNDERLYING_TYPE = eINSTANCE.getPropertyOperator__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation PROPERTY_OPERATOR___GET_EXPRESSION_TEXT = eINSTANCE.getPropertyOperator__GetExpressionText();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.GetPropertyImpl <em>Get Property</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.GetPropertyImpl
+ * @see rba.core.impl.RBACorePackageImpl#getGetProperty()
+ * @generated
+ */
+ EClass GET_PROPERTY = eINSTANCE.getGetProperty();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation GET_PROPERTY___GET_SYMBOL = eINSTANCE.getGetProperty__GetSymbol();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation GET_PROPERTY___GET_UNDERLYING_TYPE = eINSTANCE.getGetProperty__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.StateValueImpl <em>State Value</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.StateValueImpl
+ * @see rba.core.impl.RBACorePackageImpl#getStateValue()
+ * @generated
+ */
+ EClass STATE_VALUE = eINSTANCE.getStateValue();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation STATE_VALUE___GET_SYMBOL = eINSTANCE.getStateValue__GetSymbol();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation STATE_VALUE___GET_UNDERLYING_TYPE = eINSTANCE.getStateValue__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.HasComeLaterThanImpl <em>Has Come Later Than</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.HasComeLaterThanImpl
+ * @see rba.core.impl.RBACorePackageImpl#getHasComeLaterThan()
+ * @generated
+ */
+ EClass HAS_COME_LATER_THAN = eINSTANCE.getHasComeLaterThan();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation HAS_COME_LATER_THAN___GET_SYMBOL = eINSTANCE.getHasComeLaterThan__GetSymbol();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation HAS_COME_LATER_THAN___GET_UNDERLYING_TYPE = eINSTANCE.getHasComeLaterThan__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation HAS_COME_LATER_THAN___GET_EXPRESSION_TEXT = eINSTANCE.getHasComeLaterThan__GetExpressionText();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.HasComeEarlierThanImpl <em>Has Come Earlier Than</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.HasComeEarlierThanImpl
+ * @see rba.core.impl.RBACorePackageImpl#getHasComeEarlierThan()
+ * @generated
+ */
+ EClass HAS_COME_EARLIER_THAN = eINSTANCE.getHasComeEarlierThan();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation HAS_COME_EARLIER_THAN___GET_SYMBOL = eINSTANCE.getHasComeEarlierThan__GetSymbol();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation HAS_COME_EARLIER_THAN___GET_UNDERLYING_TYPE = eINSTANCE.getHasComeEarlierThan__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation HAS_COME_EARLIER_THAN___GET_EXPRESSION_TEXT = eINSTANCE.getHasComeEarlierThan__GetExpressionText();
+
+ /**
+ * The meta object literal for the '{@link rba.core.SugarExpression <em>Sugar Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.SugarExpression
+ * @see rba.core.impl.RBACorePackageImpl#getSugarExpression()
+ * @generated
+ */
+ EClass SUGAR_EXPRESSION = eINSTANCE.getSugarExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Can Expand</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation SUGAR_EXPRESSION___CAN_EXPAND = eINSTANCE.getSugarExpression__CanExpand();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expanded</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation SUGAR_EXPRESSION___GET_EXPANDED = eINSTANCE.getSugarExpression__GetExpanded();
+
+ /**
+ * The meta object literal for the '{@link rba.core.SugarExpressionBase <em>Sugar Expression Base</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.SugarExpressionBase
+ * @see rba.core.impl.RBACorePackageImpl#getSugarExpressionBase()
+ * @generated
+ */
+ EClass SUGAR_EXPRESSION_BASE = eINSTANCE.getSugarExpressionBase();
+
+ /**
+ * The meta object literal for the '<em><b>Can Expand</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation SUGAR_EXPRESSION_BASE___CAN_EXPAND = eINSTANCE.getSugarExpressionBase__CanExpand();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.ObjectCompareNotImpl <em>Object Compare Not</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ObjectCompareNotImpl
+ * @see rba.core.impl.RBACorePackageImpl#getObjectCompareNot()
+ * @generated
+ */
+ EClass OBJECT_COMPARE_NOT = eINSTANCE.getObjectCompareNot();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation OBJECT_COMPARE_NOT___GET_SYMBOL = eINSTANCE.getObjectCompareNot__GetSymbol();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation OBJECT_COMPARE_NOT___GET_UNDERLYING_TYPE = eINSTANCE.getObjectCompareNot__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation OBJECT_COMPARE_NOT___GET_EXPRESSION_TEXT = eINSTANCE.getObjectCompareNot__GetExpressionText();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.IsAllocatedToImpl <em>Is Allocated To</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.IsAllocatedToImpl
+ * @see rba.core.impl.RBACorePackageImpl#getIsAllocatedTo()
+ * @generated
+ */
+ EClass IS_ALLOCATED_TO = eINSTANCE.getIsAllocatedTo();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IS_ALLOCATED_TO___GET_SYMBOL = eINSTANCE.getIsAllocatedTo__GetSymbol();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IS_ALLOCATED_TO___GET_UNDERLYING_TYPE = eINSTANCE.getIsAllocatedTo__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IS_ALLOCATED_TO___GET_EXPRESSION_TEXT = eINSTANCE.getIsAllocatedTo__GetExpressionText();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.IsChangedImpl <em>Is Changed</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.IsChangedImpl
+ * @see rba.core.impl.RBACorePackageImpl#getIsChanged()
+ * @generated
+ */
+ EClass IS_CHANGED = eINSTANCE.getIsChanged();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IS_CHANGED___GET_SYMBOL = eINSTANCE.getIsChanged__GetSymbol();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IS_CHANGED___GET_UNDERLYING_TYPE = eINSTANCE.getIsChanged__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.IsTranslatedToImpl <em>Is Translated To</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.IsTranslatedToImpl
+ * @see rba.core.impl.RBACorePackageImpl#getIsTranslatedTo()
+ * @generated
+ */
+ EClass IS_TRANSLATED_TO = eINSTANCE.getIsTranslatedTo();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IS_TRANSLATED_TO___GET_SYMBOL = eINSTANCE.getIsTranslatedTo__GetSymbol();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IS_TRANSLATED_TO___GET_UNDERLYING_TYPE = eINSTANCE.getIsTranslatedTo__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IS_TRANSLATED_TO___GET_EXPRESSION_TEXT = eINSTANCE.getIsTranslatedTo__GetExpressionText();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.GetStateImpl <em>Get State</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.GetStateImpl
+ * @see rba.core.impl.RBACorePackageImpl#getGetState()
+ * @generated
+ */
+ EClass GET_STATE = eINSTANCE.getGetState();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation GET_STATE___GET_SYMBOL = eINSTANCE.getGetState__GetSymbol();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.ContentStateOperatorImpl <em>Content State Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.ContentStateOperatorImpl
+ * @see rba.core.impl.RBACorePackageImpl#getContentStateOperator()
+ * @generated
+ */
+ EClass CONTENT_STATE_OPERATOR = eINSTANCE.getContentStateOperator();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation CONTENT_STATE_OPERATOR___GET_EXPRESSION_TEXT = eINSTANCE
+ .getContentStateOperator__GetExpressionText();
+
+ /**
+ * The meta object literal for the '{@link rba.core.impl.NullExpressionImpl <em>Null Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.impl.NullExpressionImpl
+ * @see rba.core.impl.RBACorePackageImpl#getNullExpression()
+ * @generated
+ */
+ EClass NULL_EXPRESSION = eINSTANCE.getNullExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation NULL_EXPRESSION___GET_UNDERLYING_TYPE = eINSTANCE.getNullExpression__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation NULL_EXPRESSION___GET_EXPRESSION_TEXT = eINSTANCE.getNullExpression__GetExpressionText();
+
+ /**
+ * The meta object literal for the '{@link rba.core.ArbitrationPolicy <em>Arbitration Policy</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.ArbitrationPolicy
+ * @see rba.core.impl.RBACorePackageImpl#getArbitrationPolicy()
+ * @generated
+ */
+ EEnum ARBITRATION_POLICY = eINSTANCE.getArbitrationPolicy();
+
+ /**
+ * The meta object literal for the '{@link rba.core.ExpressionType <em>Expression Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.ExpressionType
+ * @see rba.core.impl.RBACorePackageImpl#getExpressionType()
+ * @generated
+ */
+ EEnum EXPRESSION_TYPE = eINSTANCE.getExpressionType();
+
+ /**
+ * The meta object literal for the '{@link rba.core.LoserType <em>Loser Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.core.LoserType
+ * @see rba.core.impl.RBACorePackageImpl#getLoserType()
+ * @generated
+ */
+ EEnum LOSER_TYPE = eINSTANCE.getLoserType();
+
+ }
+
+} //RBACorePackage
diff --git a/rba.model.core/src/rba/core/RuleObject.java b/rba.model.core/src/rba/core/RuleObject.java
new file mode 100644
index 0000000..ba1d0dc
--- /dev/null
+++ b/rba.model.core/src/rba/core/RuleObject.java
@@ -0,0 +1,54 @@
+/**
+ */
+package rba.core;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Rule Object</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.RuleObject#getTags <em>Tags</em>}</li>
+ * </ul>
+ *
+ * @see rba.core.RBACorePackage#getRuleObject()
+ * @model abstract="true"
+ * @generated
+ */
+public interface RuleObject extends PackagableElement {
+ /**
+ * Returns the value of the '<em><b>Tags</b></em>' containment reference list.
+ * The list contents are of type {@link rba.core.Tag}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Tags</em>' containment reference list.
+ * @see rba.core.RBACorePackage#getRuleObject_Tags()
+ * @model containment="true"
+ * @generated
+ */
+ EList<Tag> getTags();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * @generated
+ */
+ ExpressionType getExpressionType();
+
+} // RuleObject
diff --git a/rba.model.core/src/rba/core/Scene.java b/rba.model.core/src/rba/core/Scene.java
new file mode 100644
index 0000000..de08a5e
--- /dev/null
+++ b/rba.model.core/src/rba/core/Scene.java
@@ -0,0 +1,84 @@
+/**
+ */
+package rba.core;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Scene</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.Scene#isGlobal <em>Global</em>}</li>
+ * <li>{@link rba.core.Scene#getProperties <em>Properties</em>}</li>
+ * </ul>
+ *
+ * @see rba.core.RBACorePackage#getScene()
+ * @model
+ * @generated
+ */
+public interface Scene extends AbstractScene {
+ /**
+ * Returns the value of the '<em><b>Global</b></em>' attribute.
+ * The default value is <code>"false"</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Global</em>' attribute.
+ * @see #setGlobal(boolean)
+ * @see rba.core.RBACorePackage#getScene_Global()
+ * @model default="false" required="true"
+ * @generated
+ */
+ boolean isGlobal();
+
+ /**
+ * Sets the value of the '{@link rba.core.Scene#isGlobal <em>Global</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Global</em>' attribute.
+ * @see #isGlobal()
+ * @generated
+ */
+ void setGlobal(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Properties</b></em>' containment reference list.
+ * The list contents are of type {@link rba.core.AbstractProperty}.
+ * It is bidirectional and its opposite is '{@link rba.core.AbstractProperty#getOwner <em>Owner</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Properties</em>' containment reference list.
+ * @see rba.core.RBACorePackage#getScene_Properties()
+ * @see rba.core.AbstractProperty#getOwner
+ * @model opposite="owner" containment="true"
+ * @generated
+ */
+ EList<AbstractProperty> getProperties();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.SCENE;'"
+ * @generated
+ */
+ ExpressionType getExpressionType();
+
+} // Scene
diff --git a/rba.model.core/src/rba/core/SceneOperator.java b/rba.model.core/src/rba/core/SceneOperator.java
new file mode 100644
index 0000000..0531ea3
--- /dev/null
+++ b/rba.model.core/src/rba/core/SceneOperator.java
@@ -0,0 +1,32 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Scene Operator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getSceneOperator()
+ * @model abstract="true"
+ * @generated
+ */
+public interface SceneOperator extends Operator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nEList&lt;rba.core.Expression&gt; expressions = getOperand();\r\nexpressionText.append(expressions.size() &gt; 0 ? expressions.get(0).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(getSymbol());\r\nreturn expressionText.toString();'"
+ * @generated
+ */
+ String getExpressionText();
+
+} // SceneOperator
diff --git a/rba.model.core/src/rba/core/SelectOperator.java b/rba.model.core/src/rba/core/SelectOperator.java
new file mode 100644
index 0000000..59a6c40
--- /dev/null
+++ b/rba.model.core/src/rba/core/SelectOperator.java
@@ -0,0 +1,56 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Select Operator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getSelectOperator()
+ * @model
+ * @generated
+ */
+public interface SelectOperator extends LambdaContext {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nEList&lt;rba.core.Expression&gt; expressions = getOperand();\r\nrba.core.LambdaExpression lambda = getLambda();\r\nexpressionText.append(expressions.size() &gt; 0 ? expressions.get(0).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(getSymbol());\r\nexpressionText.append(\"{ \");\r\nexpressionText.append(lambda != null ? lambda.getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(\" }\");\r\nreturn expressionText.toString();'"
+ * @generated
+ */
+ String getExpressionText();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".select\";'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='if (!getOperand().isEmpty()) {\r\n &lt;%rba.core.Expression%&gt; first = getOperand().get(0);\r\n return first.getType();\r\n}\r\nreturn ExpressionType.VALUE;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+} // SelectOperator
diff --git a/rba.model.core/src/rba/core/SetExpression.java b/rba.model.core/src/rba/core/SetExpression.java
new file mode 100644
index 0000000..f68dada
--- /dev/null
+++ b/rba.model.core/src/rba/core/SetExpression.java
@@ -0,0 +1,20 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Set Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getSetExpression()
+ * @model abstract="true"
+ * @generated
+ */
+public interface SetExpression extends Expression {
+} // SetExpression
diff --git a/rba.model.core/src/rba/core/SetOfOperator.java b/rba.model.core/src/rba/core/SetOfOperator.java
new file mode 100644
index 0000000..70dcfff
--- /dev/null
+++ b/rba.model.core/src/rba/core/SetOfOperator.java
@@ -0,0 +1,56 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Set Of Operator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getSetOfOperator()
+ * @model
+ * @generated
+ */
+public interface SetOfOperator extends Operator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nEList&lt;rba.core.Expression&gt; expressions = getOperand();\r\nexpressionText.append(\"{\");\r\nfor (int i = 0; i &lt; expressions.size(); i++) {\r\n rba.core.Expression expression = expressions.get(i);\r\n expressionText.append(expression.getExpressionText());\r\n if (i == expressions.size() - 1) {\r\n expressionText.append(\"}\");\r\n } else {\r\n expressionText.append(\", \");\r\n }\r\n}\r\nreturn expressionText.toString();'"
+ * @generated
+ */
+ String getExpressionText();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"\";'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='EList&lt;rba.core.Expression&gt; expressions = getOperand();\r\nif (!expressions.isEmpty() &amp;&amp; expressions.get(0) != null) {\r\n rba.core.Expression first = expressions.get(0);\r\n if ((first.getType() == ExpressionType.CONTENT) || (first.getType() == ExpressionType.SET_OF_CONTENT)) {\r\n return ExpressionType.SET_OF_CONTENT;\r\n } else if ((first.getType() == ExpressionType.AREA) || (first.getType() == ExpressionType.SET_OF_AREA)) {\r\n return ExpressionType.SET_OF_AREA;\r\n } else if ((first.getType() == ExpressionType.SOUND) || (first.getType() == ExpressionType.SET_OF_SOUND)) {\r\n return ExpressionType.SET_OF_SOUND;\r\n } else if ((first.getType() == ExpressionType.ZONE) || (first.getType() == ExpressionType.SET_OF_ZONE)) {\r\n return ExpressionType.SET_OF_ZONE;\r\n } else {\r\n return first.getType();\r\n }\r\n}\r\nreturn null;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+} // SetOfOperator
diff --git a/rba.model.core/src/rba/core/SetOperator.java b/rba.model.core/src/rba/core/SetOperator.java
new file mode 100644
index 0000000..2e787be
--- /dev/null
+++ b/rba.model.core/src/rba/core/SetOperator.java
@@ -0,0 +1,20 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Set Operator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getSetOperator()
+ * @model abstract="true"
+ * @generated
+ */
+public interface SetOperator extends Operator {
+} // SetOperator
diff --git a/rba.model.core/src/rba/core/SetProperty.java b/rba.model.core/src/rba/core/SetProperty.java
new file mode 100644
index 0000000..595ae3c
--- /dev/null
+++ b/rba.model.core/src/rba/core/SetProperty.java
@@ -0,0 +1,44 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Set Property</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getSetProperty()
+ * @model
+ * @generated
+ */
+public interface SetProperty extends PropertyOperator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".set\";'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nEList&lt;rba.core.Expression&gt; expressions = getOperand();\r\nexpressionText.append(expressions.size() &gt; 0 ? expressions.get(0).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(getSymbol());\r\nexpressionText.append(\"(\");\r\nexpressionText.append(expressions.size() &gt; 1 ? expressions.get(1).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(\")\");\r\nreturn expressionText.toString();'"
+ * @generated
+ */
+ String getExpressionText();
+
+} // SetProperty
diff --git a/rba.model.core/src/rba/core/SizeOperator.java b/rba.model.core/src/rba/core/SizeOperator.java
new file mode 100644
index 0000000..9d9c6f1
--- /dev/null
+++ b/rba.model.core/src/rba/core/SizeOperator.java
@@ -0,0 +1,56 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Size Operator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getSizeOperator()
+ * @model
+ * @generated
+ */
+public interface SizeOperator extends SetOperator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nEList&lt;rba.core.Expression&gt; expressions = getOperand();\r\nexpressionText.append(expressions.size() &gt; 0 ? expressions.get(0).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(getSymbol());\r\nreturn expressionText.toString();'"
+ * @generated
+ */
+ String getExpressionText();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".size()\";'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.VALUE;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+} // SizeOperator
diff --git a/rba.model.core/src/rba/core/StandardValue.java b/rba.model.core/src/rba/core/StandardValue.java
new file mode 100644
index 0000000..bbc6c48
--- /dev/null
+++ b/rba.model.core/src/rba/core/StandardValue.java
@@ -0,0 +1,44 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Standard Value</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getStandardValue()
+ * @model
+ * @generated
+ */
+public interface StandardValue extends ValueExpression {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"STANDARD\";'"
+ * @generated
+ */
+ String getExpressionText();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation" required="true"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return 10;'"
+ * @generated
+ */
+ int getExpressionValue();
+
+} // StandardValue
diff --git a/rba.model.core/src/rba/core/State.java b/rba.model.core/src/rba/core/State.java
new file mode 100644
index 0000000..bfbf9ef
--- /dev/null
+++ b/rba.model.core/src/rba/core/State.java
@@ -0,0 +1,21 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>State</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getState()
+ * @model
+ * @generated
+ */
+public interface State extends RuleObject {
+
+} // State
diff --git a/rba.model.core/src/rba/core/StateValue.java b/rba.model.core/src/rba/core/StateValue.java
new file mode 100644
index 0000000..bb085f9
--- /dev/null
+++ b/rba.model.core/src/rba/core/StateValue.java
@@ -0,0 +1,38 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>State Value</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getStateValue()
+ * @model
+ * @generated
+ */
+public interface StateValue extends ContentOperator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".stateValue()\"; //$NON-NLS-1$'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.VALUE;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+} // StateValue
diff --git a/rba.model.core/src/rba/core/Stereotype.java b/rba.model.core/src/rba/core/Stereotype.java
new file mode 100644
index 0000000..8e53a91
--- /dev/null
+++ b/rba.model.core/src/rba/core/Stereotype.java
@@ -0,0 +1,95 @@
+/**
+ */
+package rba.core;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Stereotype</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.Stereotype#getTargetModelName <em>Target Model Name</em>}</li>
+ * <li>{@link rba.core.Stereotype#getVariables <em>Variables</em>}</li>
+ * <li>{@link rba.core.Stereotype#getBodyText <em>Body Text</em>}</li>
+ * </ul>
+ *
+ * @see rba.core.RBACorePackage#getStereotype()
+ * @model
+ * @generated
+ */
+public interface Stereotype extends PackagableElement {
+ /**
+ * Returns the value of the '<em><b>Target Model Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Target Model Name</em>' attribute.
+ * @see #setTargetModelName(String)
+ * @see rba.core.RBACorePackage#getStereotype_TargetModelName()
+ * @model required="true"
+ * @generated
+ */
+ String getTargetModelName();
+
+ /**
+ * Sets the value of the '{@link rba.core.Stereotype#getTargetModelName <em>Target Model Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Target Model Name</em>' attribute.
+ * @see #getTargetModelName()
+ * @generated
+ */
+ void setTargetModelName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Variables</b></em>' containment reference list.
+ * The list contents are of type {@link rba.core.Variable}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Variables</em>' containment reference list.
+ * @see rba.core.RBACorePackage#getStereotype_Variables()
+ * @model containment="true"
+ * @generated
+ */
+ EList<Variable> getVariables();
+
+ /**
+ * Returns the value of the '<em><b>Body Text</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Body Text</em>' attribute.
+ * @see #setBodyText(String)
+ * @see rba.core.RBACorePackage#getStereotype_BodyText()
+ * @model required="true"
+ * @generated
+ */
+ String getBodyText();
+
+ /**
+ * Sets the value of the '{@link rba.core.Stereotype#getBodyText <em>Body Text</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Body Text</em>' attribute.
+ * @see #getBodyText()
+ * @generated
+ */
+ void setBodyText(String value);
+
+} // Stereotype
diff --git a/rba.model.core/src/rba/core/SugarExpression.java b/rba.model.core/src/rba/core/SugarExpression.java
new file mode 100644
index 0000000..d676f02
--- /dev/null
+++ b/rba.model.core/src/rba/core/SugarExpression.java
@@ -0,0 +1,40 @@
+/**
+ */
+package rba.core;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Sugar Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getSugarExpression()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface SugarExpression extends EObject {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @model required="true"
+ * @generated
+ */
+ boolean canExpand();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @return Expression that expanded the syntax sugar expression.
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * @generated
+ */
+ Expression getExpanded();
+
+} // SugarExpression
diff --git a/rba.model.core/src/rba/core/SugarExpressionBase.java b/rba.model.core/src/rba/core/SugarExpressionBase.java
new file mode 100644
index 0000000..a885ea5
--- /dev/null
+++ b/rba.model.core/src/rba/core/SugarExpressionBase.java
@@ -0,0 +1,25 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Sugar Expression Base</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getSugarExpressionBase()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface SugarExpressionBase extends SugarExpression {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model required="true"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return true;'"
+ * @generated
+ */
+ boolean canExpand();
+
+} // SugarExpressionBase
diff --git a/rba.model.core/src/rba/core/Tag.java b/rba.model.core/src/rba/core/Tag.java
new file mode 100644
index 0000000..77de371
--- /dev/null
+++ b/rba.model.core/src/rba/core/Tag.java
@@ -0,0 +1,43 @@
+/**
+ */
+package rba.core;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Tag</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.Tag#getValues <em>Values</em>}</li>
+ * </ul>
+ *
+ * @see rba.core.RBACorePackage#getTag()
+ * @model
+ * @generated
+ */
+public interface Tag extends NamedElement {
+ /**
+ * Returns the value of the '<em><b>Values</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.String}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Values</em>' attribute list.
+ * @see rba.core.RBACorePackage#getTag_Values()
+ * @model unique="false"
+ * @generated
+ */
+ EList<String> getValues();
+
+} // Tag
diff --git a/rba.model.core/src/rba/core/ThatOfOperator.java b/rba.model.core/src/rba/core/ThatOfOperator.java
new file mode 100644
index 0000000..315a7d6
--- /dev/null
+++ b/rba.model.core/src/rba/core/ThatOfOperator.java
@@ -0,0 +1,56 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>That Of Operator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getThatOfOperator()
+ * @model
+ * @generated
+ */
+public interface ThatOfOperator extends Operator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nEList&lt;rba.core.Expression&gt; expressions = getOperand();\r\nexpressionText.append(getSymbol());\r\nexpressionText.append(expressions.size() &gt; 0 ? expressions.get(0).getExpressionText() : \"[Invalid_Expression]\");\r\nreturn expressionText.toString();'"
+ * @generated
+ */
+ String getExpressionText();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"That of \";'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.VALUE;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+} // ThatOfOperator
diff --git a/rba.model.core/src/rba/core/ValueExpression.java b/rba.model.core/src/rba/core/ValueExpression.java
new file mode 100644
index 0000000..ebd9690
--- /dev/null
+++ b/rba.model.core/src/rba/core/ValueExpression.java
@@ -0,0 +1,55 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Value Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getValueExpression()
+ * @model abstract="true"
+ * @generated
+ */
+public interface ValueExpression extends Expression {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.VALUE;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @model kind="operation" required="true"
+ * @generated
+ */
+ int getExpressionValue();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return getUnderlyingType();'"
+ * @generated
+ */
+ ExpressionType getType();
+
+} // ValueExpression
diff --git a/rba.model.core/src/rba/core/Variable.java b/rba.model.core/src/rba/core/Variable.java
new file mode 100644
index 0000000..1dbd3a0
--- /dev/null
+++ b/rba.model.core/src/rba/core/Variable.java
@@ -0,0 +1,32 @@
+/**
+ */
+package rba.core;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Variable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.core.RBACorePackage#getVariable()
+ * @model
+ * @generated
+ */
+public interface Variable extends RuleObject {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='&lt;%org.eclipse.emf.ecore.EObject%&gt; container = eContainer();\r\nif(container instanceof &lt;%rba.core.LambdaExpression%&gt;) {\r\n container = container.eContainer();\r\n if(container instanceof &lt;%rba.core.LambdaContext%&gt;) {\r\n &lt;%java.util.List%&gt;&lt;Expression&gt; operands = ((LambdaContext) container).getOperand();\r\n if (operands.size() &gt; 0) {\r\n switch (operands.get(0).getUnderlyingType()) {\r\n case AREA:\r\n case SET_OF_AREA:\r\n return ExpressionType.AREA;\r\n case CONTENT:\r\n case SET_OF_CONTENT:\r\n return ExpressionType.CONTENT;\r\n case SOUND:\r\n case SET_OF_SOUND:\r\n return ExpressionType.SOUND;\r\n case ZONE:\r\n case SET_OF_ZONE:\r\n return ExpressionType.ZONE;\r\n case SCENE:\r\n return ExpressionType.SCENE;\r\n case PROPERTY:\r\n return ExpressionType.PROPERTY;\r\n case BOOLEAN:\r\n return ExpressionType.BOOLEAN;\r\n case LAMBDA:\r\n return ExpressionType.LAMBDA;\r\n case VALUE:\r\n default:\r\n return ExpressionType.VALUE;\r\n }\r\n }\r\n }\r\n} else if (container instanceof &lt;%rba.core.LetStatement%&gt;) {\r\n &lt;%rba.core.Expression%&gt; body = ((LetStatement) container).getBody();\r\n if (body != null) {\r\n return body.getUnderlyingType();\r\n }\r\n}\r\nreturn ExpressionType.VALUE;'"
+ * @generated
+ */
+ ExpressionType getExpressionType();
+
+} // Variable
diff --git a/rba.model.core/src/rba/core/generator/util/EObjectDecorator.java b/rba.model.core/src/rba/core/generator/util/EObjectDecorator.java
new file mode 100644
index 0000000..86a20d7
--- /dev/null
+++ b/rba.model.core/src/rba/core/generator/util/EObjectDecorator.java
@@ -0,0 +1,118 @@
+package rba.core.generator.util;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.resource.Resource;
+
+abstract public class EObjectDecorator implements EObject {
+ private EObject object;
+
+ protected EObjectDecorator(EObject o) {
+ object = o;
+ }
+
+ @Override
+ public EList<Adapter> eAdapters() {
+ return object.eAdapters();
+ }
+
+ @Override
+ public boolean eDeliver() {
+ return object.eDeliver();
+ }
+
+ @Override
+ public void eSetDeliver(boolean deliver) {
+ object.eSetDeliver(deliver);
+ }
+
+ @Override
+ public void eNotify(Notification notification) {
+ object.eNotify(notification);
+ }
+
+ @Override
+ public EClass eClass() {
+ return object.eClass();
+ }
+
+ @Override
+ public Resource eResource() {
+ return object.eResource();
+ }
+
+ @Override
+ public EObject eContainer() {
+ return object.eContainer();
+ }
+
+ @Override
+ public EStructuralFeature eContainingFeature() {
+ return object.eContainingFeature();
+ }
+
+ @Override
+ public EReference eContainmentFeature() {
+ return object.eContainmentFeature();
+ }
+
+ @Override
+ public EList<EObject> eContents() {
+ return object.eContents();
+ }
+
+ @Override
+ public TreeIterator<EObject> eAllContents() {
+ return object.eAllContents();
+ }
+
+ @Override
+ public boolean eIsProxy() {
+ return object.eIsProxy();
+ }
+
+ @Override
+ public EList<EObject> eCrossReferences() {
+ return object.eCrossReferences();
+ }
+
+ @Override
+ public Object eGet(EStructuralFeature feature) {
+ return object.eGet(feature);
+ }
+
+ @Override
+ public Object eGet(EStructuralFeature feature, boolean resolve) {
+ return object.eGet(feature, resolve);
+ }
+
+ @Override
+ public void eSet(EStructuralFeature feature, Object newValue) {
+ object.eSet(feature, newValue);
+ }
+
+ @Override
+ public boolean eIsSet(EStructuralFeature feature) {
+ return object.eIsSet(feature);
+ }
+
+ @Override
+ public void eUnset(EStructuralFeature feature) {
+ object.eUnset(feature);
+ }
+
+ @Override
+ public Object eInvoke(EOperation operation, EList<?> arguments) throws InvocationTargetException {
+ return object.eInvoke(operation, arguments);
+ }
+
+}
diff --git a/rba.model.core/src/rba/core/generator/util/value/ComparisonAndEvaluator.java b/rba.model.core/src/rba/core/generator/util/value/ComparisonAndEvaluator.java
new file mode 100644
index 0000000..0973ab9
--- /dev/null
+++ b/rba.model.core/src/rba/core/generator/util/value/ComparisonAndEvaluator.java
@@ -0,0 +1,49 @@
+package rba.core.generator.util.value;
+
+import org.eclipse.emf.common.util.EList;
+
+import rba.core.ComparisonAnd;
+import rba.core.ComparisonOperator;
+import rba.core.Expression;
+import rba.core.GreaterThanOperator;
+import rba.core.LetStatement;
+import rba.core.MuchGreaterThanOperator;
+import rba.core.RuleObject;
+
+public class ComparisonAndEvaluator<T extends RuleObject> extends ComparisonOperatorEvaluator<T> implements ComparisonAnd {
+
+ public ComparisonAndEvaluator(ComparisonAnd o) {
+ super(o);
+ }
+
+ @Override
+ public boolean evaluate(ValueSortedList<T> list) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public int suggestIndex(ValueSortedList<T> list) {
+ int max = 9999;
+ int min = -1;
+
+ for (Expression operand : operator.getOperand()) {
+ if (operand instanceof GreaterThanOperator || operand instanceof MuchGreaterThanOperator) {
+ int i = list.createEvaluator((ComparisonOperator) operand).suggestIndex(list);
+ if (i > min && i >= 0) {
+ min = i;
+ }
+ } else {
+ throw new RuntimeException("Unsupported expression [" + operator.getExpression() + "]");
+ }
+ }
+ return Math.min(min, max);
+ }
+
+ @Override
+ public EList<LetStatement> getLetStatements() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
diff --git a/rba.model.core/src/rba/core/generator/util/value/ComparisonOperatorEvaluator.java b/rba.model.core/src/rba/core/generator/util/value/ComparisonOperatorEvaluator.java
new file mode 100644
index 0000000..548183f
--- /dev/null
+++ b/rba.model.core/src/rba/core/generator/util/value/ComparisonOperatorEvaluator.java
@@ -0,0 +1,48 @@
+package rba.core.generator.util.value;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+import rba.core.ComparisonOperator;
+import rba.core.Expression;
+import rba.core.RuleObject;
+
+public abstract class ComparisonOperatorEvaluator<T extends RuleObject> extends ExpressionEvaluator<T> implements ComparisonOperator {
+
+ protected ComparisonOperator operator;
+
+ protected T subject;
+
+ protected ComparisonOperatorEvaluator(ComparisonOperator o) {
+ super(o);
+ operator = o;
+ EObject container = o.eContainer();
+ while (!(container instanceof RuleObject)) {
+ container = container.eContainer();
+ if (container == null)
+ break;
+ }
+ if (container != null) {
+ subject = (T) container;
+ }
+ }
+
+ abstract public boolean evaluate(ValueSortedList<T> list);
+
+ /**
+ * @param list
+ * @return -1 if it has no suggestion 9999 implies MAX group (last index)
+ */
+ abstract public int suggestIndex(ValueSortedList<T> list);
+
+ @Override
+ public EList<Expression> getOperand() {
+ return operator.getOperand();
+ }
+
+ @Override
+ public String getSymbol() {
+ return operator.getSymbol();
+ }
+
+}
diff --git a/rba.model.core/src/rba/core/generator/util/value/EqualToOperatorEvaluator.java b/rba.model.core/src/rba/core/generator/util/value/EqualToOperatorEvaluator.java
new file mode 100644
index 0000000..bb20773
--- /dev/null
+++ b/rba.model.core/src/rba/core/generator/util/value/EqualToOperatorEvaluator.java
@@ -0,0 +1,51 @@
+package rba.core.generator.util.value;
+
+import org.eclipse.emf.common.util.EList;
+
+import rba.core.ComparisonOperator;
+import rba.core.EqualToOperator;
+import rba.core.Expression;
+import rba.core.LetStatement;
+import rba.core.ObjectReference;
+import rba.core.RuleObject;
+import rba.core.ThatOfOperator;
+import rba.core.ValueExpression;
+
+public class EqualToOperatorEvaluator<T extends RuleObject> extends ComparisonOperatorEvaluator<T> implements EqualToOperator {
+
+ protected EqualToOperatorEvaluator(ComparisonOperator o) {
+ super(o);
+ }
+
+ @Override
+ public boolean evaluate(ValueSortedList<T> list) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public int suggestIndex(ValueSortedList<T> list) {
+ Expression operand = operator.getOperand().get(0);
+ if (operand instanceof ThatOfOperator) {
+ Expression target = ((ThatOfOperator) operand).getOperand().get(0);
+
+ if (target instanceof ObjectReference) {
+ T object = (T) ((ObjectReference) target).getRefObject();
+ return list.getGroupIndexOf(object);
+ }
+
+ } else if (operand instanceof ValueExpression) {
+ int i = list.getGroupIndexOf(((ValueExpression) operand).getExpression());
+ return i;
+ }
+
+ throw new RuntimeException("Unsupported expression [" + operator.getExpression() + "]");
+ }
+
+ @Override
+ public EList<LetStatement> getLetStatements() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
diff --git a/rba.model.core/src/rba/core/generator/util/value/ExpressionEvaluator.java b/rba.model.core/src/rba/core/generator/util/value/ExpressionEvaluator.java
new file mode 100644
index 0000000..75bf881
--- /dev/null
+++ b/rba.model.core/src/rba/core/generator/util/value/ExpressionEvaluator.java
@@ -0,0 +1,56 @@
+package rba.core.generator.util.value;
+
+import rba.core.Expression;
+import rba.core.ExpressionType;
+import rba.core.generator.util.EObjectDecorator;
+
+abstract public class ExpressionEvaluator<T> extends EObjectDecorator implements Expression {
+
+ private Expression expression;
+
+ protected ExpressionEvaluator(Expression o) {
+ super(o);
+ expression = o;
+ }
+
+ @Override
+ public ExpressionType getType() {
+ return expression.getType();
+ }
+
+ @Override
+ public boolean isSetType() {
+ return expression.isSetType();
+ }
+
+ @Override
+ public String getExpression() {
+ return expression.getExpression();
+ }
+
+ @Override
+ public void setExpression(String value) {
+ expression.setExpression(value);
+ }
+
+ @Override
+ public void unsetExpression() {
+ expression.unsetExpression();
+ }
+
+ @Override
+ public boolean isSetExpression() {
+ return expression.isSetExpression();
+ }
+
+ @Override
+ public String getExpressionText() {
+ return expression.getExpressionText();
+ }
+
+ @Override
+ public ExpressionType getUnderlyingType() {
+ return expression.getUnderlyingType();
+ }
+
+}
diff --git a/rba.model.core/src/rba/core/generator/util/value/GreaterThanOperatorEvaluator.java b/rba.model.core/src/rba/core/generator/util/value/GreaterThanOperatorEvaluator.java
new file mode 100644
index 0000000..4b3506d
--- /dev/null
+++ b/rba.model.core/src/rba/core/generator/util/value/GreaterThanOperatorEvaluator.java
@@ -0,0 +1,62 @@
+package rba.core.generator.util.value;
+
+import org.eclipse.emf.common.util.EList;
+
+import rba.core.Expression;
+import rba.core.GreaterThanOperator;
+import rba.core.LetStatement;
+import rba.core.ObjectReference;
+import rba.core.RuleObject;
+import rba.core.ThatOfOperator;
+import rba.core.ValueExpression;
+
+public class GreaterThanOperatorEvaluator<T extends RuleObject> extends ComparisonOperatorEvaluator<T> implements GreaterThanOperator {
+
+ protected GreaterThanOperatorEvaluator(GreaterThanOperator o) {
+ super(o);
+ }
+
+ @Override
+ public boolean evaluate(ValueSortedList<T> list) {
+ Expression operand = operator.getOperand().get(0);
+ if (operand instanceof ObjectReference) {
+ T object = (T) ((ObjectReference) operand).getRefObject();
+ return (list.getGroupIndexOf(subject) > list.getGroupIndexOf(object));
+ }
+
+ return false;
+ }
+
+ @Override
+ public int suggestIndex(ValueSortedList<T> list) {
+ Expression operand = operator.getOperand().get(0);
+ if (operand instanceof ThatOfOperator) {
+ Expression target = ((ThatOfOperator) operand).getOperand().get(0);
+
+ if (target instanceof ObjectReference) {
+ T object = (T) ((ObjectReference) target).getRefObject();
+ if (list.getGroupIndexOf(subject) > list.getGroupIndexOf(object)) {
+ return -1;
+ } else {
+ return list.getGroupIndexOf(object) + 1;
+ }
+ }
+
+ } else if (operand instanceof ValueExpression) {
+ int i = ((ValueExpression) operand).getExpressionValue();
+ if (list.getGroupIndexOf(subject) > i) {
+ return -1;
+ } else {
+ return i + 1;
+ }
+ }
+
+ throw new RuntimeException("Unsupported expression [" + operator.getExpression() + "]");
+ }
+
+ @Override
+ public EList<LetStatement> getLetStatements() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+}
diff --git a/rba.model.core/src/rba/core/generator/util/value/MuchGreaterThanOperatorEvaluator.java b/rba.model.core/src/rba/core/generator/util/value/MuchGreaterThanOperatorEvaluator.java
new file mode 100644
index 0000000..2c222c2
--- /dev/null
+++ b/rba.model.core/src/rba/core/generator/util/value/MuchGreaterThanOperatorEvaluator.java
@@ -0,0 +1,65 @@
+package rba.core.generator.util.value;
+
+import org.eclipse.emf.common.util.EList;
+
+import rba.core.Expression;
+import rba.core.LetStatement;
+import rba.core.MuchGreaterThanOperator;
+import rba.core.ObjectReference;
+import rba.core.RuleObject;
+import rba.core.ThatOfOperator;
+import rba.core.ValueExpression;
+
+public class MuchGreaterThanOperatorEvaluator<T extends RuleObject> extends ComparisonOperatorEvaluator<T> implements MuchGreaterThanOperator {
+
+ static int MUCH_GAP = 10;
+
+ public MuchGreaterThanOperatorEvaluator(MuchGreaterThanOperator o) {
+ super(o);
+ }
+
+ @Override
+ public boolean evaluate(ValueSortedList<T> list) {
+ Expression operand = operator.getOperand().get(0);
+ if (operand instanceof ObjectReference) {
+ T object = (T) ((ObjectReference) operand).getRefObject();
+ return (list.getGroupIndexOf(subject) >= list.getGroupIndexOf(object) + MUCH_GAP);
+ }
+
+ return false;
+ }
+
+ @Override
+ public int suggestIndex(ValueSortedList<T> list) {
+ Expression operand = operator.getOperand().get(0);
+ if (operand instanceof ThatOfOperator) {
+ Expression target = ((ThatOfOperator) operand).getOperand().get(0);
+
+ if (target instanceof ObjectReference) {
+ T object = (T) ((ObjectReference) target).getRefObject();
+ if (list.getGroupIndexOf(subject) >= list.getGroupIndexOf(object) + MUCH_GAP) {
+ return -1;
+ } else {
+ return list.getGroupIndexOf(object) + MUCH_GAP;
+ }
+ }
+
+ } else if (operand instanceof ValueExpression) {
+ int i = ((ValueExpression) operand).getExpressionValue();
+ if (list.getGroupIndexOf(subject) > i) {
+ return -1;
+ } else {
+ return i + 1;
+ }
+ }
+
+ throw new RuntimeException("Unsupported expression [" + operator.getExpression() + "]");
+ }
+
+ @Override
+ public EList<LetStatement> getLetStatements() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
diff --git a/rba.model.core/src/rba/core/generator/util/value/ValueGroup.java b/rba.model.core/src/rba/core/generator/util/value/ValueGroup.java
new file mode 100644
index 0000000..de62c20
--- /dev/null
+++ b/rba.model.core/src/rba/core/generator/util/value/ValueGroup.java
@@ -0,0 +1,35 @@
+package rba.core.generator.util.value;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+public class ValueGroup<T> {
+ private String name;
+
+ private Collection<T> member;
+
+ public ValueGroup(String name) {
+ this.name = name;
+ member = new ArrayList<T>();
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void add(T e) {
+ member.add(e);
+ }
+
+ public void remove(T e) {
+ member.remove(e);
+ }
+
+ public Collection<T> getMember() {
+ return member;
+ }
+}
diff --git a/rba.model.core/src/rba/core/generator/util/value/ValueSortedList.java b/rba.model.core/src/rba/core/generator/util/value/ValueSortedList.java
new file mode 100644
index 0000000..f16f950
--- /dev/null
+++ b/rba.model.core/src/rba/core/generator/util/value/ValueSortedList.java
@@ -0,0 +1,155 @@
+package rba.core.generator.util.value;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import rba.core.ComparisonAnd;
+import rba.core.ComparisonOperator;
+import rba.core.EqualToOperator;
+import rba.core.Expression;
+import rba.core.GreaterThanOperator;
+import rba.core.MuchGreaterThanOperator;
+import rba.core.RuleObject;
+import rba.core.ValueExpression;
+
+abstract public class ValueSortedList<T extends RuleObject> {
+ private List<ValueGroup<T>> list;
+
+ private Collection<T> unsorted;
+
+ public ValueSortedList(Collection<T> originalList) {
+ list = new ArrayList<ValueGroup<T>>();
+ list.add(new ValueGroup<T>("MIN"));
+ list.add(new ValueGroup<T>("1"));
+ list.add(new ValueGroup<T>("MAX"));
+ unsorted = new ArrayList<T>(originalList);
+ sort();
+ }
+
+ public void add(T o) {
+ unsorted.add(o);
+ sort();
+ }
+
+ public void addAll(Collection<T> list) {
+ unsorted.addAll(list);
+ sort();
+ }
+
+ public void sort() {
+ list.get(0).getMember().addAll(unsorted);
+ unsorted.clear();
+ boolean trysort = true;
+ int retry = 0;
+ while (trysort) {
+ trysort = false;
+ retry = retry + 1;
+ if (retry > 100) {
+ throw new RuntimeException("Could not sort value [" + list + "]");
+ }
+ for (T i : sortedList()) {
+ int currentIndex = this.getGroupIndexOf(i);
+ Expression e = this.getValueExpression(i);
+ if (e == null)
+ continue;
+ if (e instanceof ValueExpression) {
+ int index = this.getGroupIndexOf(e.getExpression());
+ if (index == -1) {
+ index = ((ValueExpression) e).getExpressionValue();
+ if (index >= list.size() - 1) {
+ list.get(currentIndex).remove(i);
+ addGroupAt(index, i);
+ trysort = true;
+ continue;
+ }
+ }
+ if (index != currentIndex) {
+ list.get(currentIndex).remove(i);
+ list.get(index).add(i);
+ trysort = true;
+ } else {
+ }
+ } else if (e instanceof ComparisonOperator) {
+ ComparisonOperatorEvaluator<T> evaluator = createEvaluator((ComparisonOperator) e);
+ int index = evaluator.suggestIndex(this);
+ if (index < 0)
+ continue;
+ if (index >= list.size() - 1) {
+ list.get(currentIndex).remove(i);
+ addGroupAt(index, i);
+ trysort = true;
+ } else if (index != currentIndex) {
+ list.get(currentIndex).remove(i);
+ list.get(index).add(i);
+ trysort = true;
+ } else {
+ }
+ } else {
+ throw new RuntimeException("Unsupported expression [" + e.getExpression() + "]");
+ }
+ }
+ }
+ }
+
+ private void addGroupAt(int index, T e) {
+
+ if (index >= list.size() - 1) {
+ for (int i = list.size() - 1; i <= index; ++i) {
+ ValueGroup<T> newGroup = new ValueGroup<T>(Integer.toString(i));
+ list.add(i, newGroup);
+ }
+ }
+
+ list.get(index).add(e);
+
+ }
+
+ public List<T> sortedList() {
+ List<T> result = new ArrayList<T>();
+ for (ValueGroup<T> i : list) {
+ result.addAll(i.getMember());
+ }
+ return result;
+ }
+
+ public List<ValueGroup<T>> getGroupList() {
+ return list;
+ }
+
+ abstract protected Expression getValueExpression(T e);
+
+ public int getGroupIndexOf(T e) {
+ for (ValueGroup<T> i : list) {
+ if (i.getMember().contains(e)) {
+ return list.indexOf(i);
+ }
+ }
+ return -1;
+ }
+
+ public int getGroupIndexOf(String groupName) {
+ for (ValueGroup<T> i : list) {
+ if (i.getName().contentEquals(groupName)) {
+ return list.indexOf(i);
+ }
+ }
+ return -1;
+ }
+
+ public ComparisonOperatorEvaluator<T> createEvaluator(ComparisonOperator e) {
+ ComparisonOperatorEvaluator<T> evaluator;
+ if (e instanceof GreaterThanOperator) {
+ evaluator = new GreaterThanOperatorEvaluator<T>((GreaterThanOperator) e);
+ } else if (e instanceof MuchGreaterThanOperator) {
+ evaluator = new MuchGreaterThanOperatorEvaluator<T>((MuchGreaterThanOperator) e);
+ } else if (e instanceof ComparisonAnd) {
+ evaluator = new ComparisonAndEvaluator<T>((ComparisonAnd) e);
+ } else if (e instanceof EqualToOperator) {
+ evaluator = new EqualToOperatorEvaluator<T>((EqualToOperator) e);
+ } else {
+ throw new RuntimeException("Unsupported expression [" + e.getExpression() + "]");
+ }
+ return evaluator;
+ }
+}
diff --git a/rba.model.core/src/rba/core/impl/AbstractAllocatableImpl.java b/rba.model.core/src/rba/core/impl/AbstractAllocatableImpl.java
new file mode 100644
index 0000000..1f12cd5
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/AbstractAllocatableImpl.java
@@ -0,0 +1,235 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+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.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import rba.core.AbstractAllocatable;
+import rba.core.AbstractContent;
+import rba.core.Allocatable;
+import rba.core.AllocatableSet;
+import rba.core.Content;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Abstract Allocatable</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.impl.AbstractAllocatableImpl#getContents <em>Contents</em>}</li>
+ * <li>{@link rba.core.impl.AbstractAllocatableImpl#getAllocatableGroup <em>Allocatable Group</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class AbstractAllocatableImpl extends RuleObjectImpl implements AbstractAllocatable {
+ /**
+ * The cached value of the '{@link #getContents() <em>Contents</em>}' reference list.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @see #getContents()
+ * @generated
+ * @ordered
+ */
+ protected EList<AbstractContent> contents;
+
+ /**
+ * The cached value of the '{@link #getAllocatableGroup() <em>Allocatable Group</em>}' reference list.
+ * <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ * @see #getAllocatableGroup()
+ * @generated
+ * @ordered
+ */
+ protected EList<AllocatableSet> allocatableGroup;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected AbstractAllocatableImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.ABSTRACT_ALLOCATABLE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<AbstractContent> getContents() {
+ if (contents == null) {
+ contents = new EObjectWithInverseResolvingEList.ManyInverse<AbstractContent>(AbstractContent.class, this,
+ RBACorePackage.ABSTRACT_ALLOCATABLE__CONTENTS, RBACorePackage.ABSTRACT_CONTENT__ALLOCATABLE);
+ }
+ return contents;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<AllocatableSet> getAllocatableGroup() {
+ if (allocatableGroup == null) {
+ allocatableGroup = new EObjectWithInverseResolvingEList.ManyInverse<AllocatableSet>(AllocatableSet.class,
+ this, RBACorePackage.ABSTRACT_ALLOCATABLE__ALLOCATABLE_GROUP,
+ RBACorePackage.ALLOCATABLE_SET__TARGET);
+ }
+ return allocatableGroup;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Content> getContentsList() {
+ java.util.Set<Content> contents = new java.util.LinkedHashSet<Content>();
+ getContents().forEach(content -> contents.addAll(content.collectLeafContents()));
+ getAllocatableGroup().forEach(allocatableSet -> contents.addAll(allocatableSet.getContentsList()));
+ return new org.eclipse.emf.common.util.BasicEList<Content>(contents);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Allocatable> collectLeafAllocatable() {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case RBACorePackage.ABSTRACT_ALLOCATABLE__CONTENTS:
+ return ((InternalEList<InternalEObject>) (InternalEList<?>) getContents()).basicAdd(otherEnd, msgs);
+ case RBACorePackage.ABSTRACT_ALLOCATABLE__ALLOCATABLE_GROUP:
+ return ((InternalEList<InternalEObject>) (InternalEList<?>) getAllocatableGroup()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case RBACorePackage.ABSTRACT_ALLOCATABLE__CONTENTS:
+ return ((InternalEList<?>) getContents()).basicRemove(otherEnd, msgs);
+ case RBACorePackage.ABSTRACT_ALLOCATABLE__ALLOCATABLE_GROUP:
+ return ((InternalEList<?>) getAllocatableGroup()).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 RBACorePackage.ABSTRACT_ALLOCATABLE__CONTENTS:
+ return getContents();
+ case RBACorePackage.ABSTRACT_ALLOCATABLE__ALLOCATABLE_GROUP:
+ return getAllocatableGroup();
+ }
+ 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 RBACorePackage.ABSTRACT_ALLOCATABLE__CONTENTS:
+ getContents().clear();
+ getContents().addAll((Collection<? extends AbstractContent>) newValue);
+ return;
+ case RBACorePackage.ABSTRACT_ALLOCATABLE__ALLOCATABLE_GROUP:
+ getAllocatableGroup().clear();
+ getAllocatableGroup().addAll((Collection<? extends AllocatableSet>) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.ABSTRACT_ALLOCATABLE__CONTENTS:
+ getContents().clear();
+ return;
+ case RBACorePackage.ABSTRACT_ALLOCATABLE__ALLOCATABLE_GROUP:
+ getAllocatableGroup().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.ABSTRACT_ALLOCATABLE__CONTENTS:
+ return contents != null && !contents.isEmpty();
+ case RBACorePackage.ABSTRACT_ALLOCATABLE__ALLOCATABLE_GROUP:
+ return allocatableGroup != null && !allocatableGroup.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.ABSTRACT_ALLOCATABLE___GET_CONTENTS_LIST:
+ return getContentsList();
+ case RBACorePackage.ABSTRACT_ALLOCATABLE___COLLECT_LEAF_ALLOCATABLE:
+ return collectLeafAllocatable();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // AbstractAllocatableImpl
diff --git a/rba.model.core/src/rba/core/impl/AbstractConstraintImpl.java b/rba.model.core/src/rba/core/impl/AbstractConstraintImpl.java
new file mode 100644
index 0000000..3e8ab87
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/AbstractConstraintImpl.java
@@ -0,0 +1,170 @@
+/**
+ */
+package rba.core.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 rba.core.AbstractConstraint;
+import rba.core.Expression;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Abstract Constraint</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.impl.AbstractConstraintImpl#getExpression <em>Expression</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class AbstractConstraintImpl extends PackagableElementImpl implements AbstractConstraint {
+ /**
+ * 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 AbstractConstraintImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.ABSTRACT_CONSTRAINT;
+ }
+
+ /**
+ * <!-- 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,
+ RBACorePackage.ABSTRACT_CONSTRAINT__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 - RBACorePackage.ABSTRACT_CONSTRAINT__EXPRESSION, null, msgs);
+ if (newExpression != null)
+ msgs = ((InternalEObject) newExpression).eInverseAdd(this,
+ EOPPOSITE_FEATURE_BASE - RBACorePackage.ABSTRACT_CONSTRAINT__EXPRESSION, null, msgs);
+ msgs = basicSetExpression(newExpression, msgs);
+ if (msgs != null)
+ msgs.dispatch();
+ } else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RBACorePackage.ABSTRACT_CONSTRAINT__EXPRESSION,
+ newExpression, newExpression));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case RBACorePackage.ABSTRACT_CONSTRAINT__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 RBACorePackage.ABSTRACT_CONSTRAINT__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 RBACorePackage.ABSTRACT_CONSTRAINT__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 RBACorePackage.ABSTRACT_CONSTRAINT__EXPRESSION:
+ setExpression((Expression) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.ABSTRACT_CONSTRAINT__EXPRESSION:
+ return expression != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // AbstractConstraintImpl
diff --git a/rba.model.core/src/rba/core/impl/AbstractContentImpl.java b/rba.model.core/src/rba/core/impl/AbstractContentImpl.java
new file mode 100644
index 0000000..44c0c20
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/AbstractContentImpl.java
@@ -0,0 +1,230 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+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.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import rba.core.AbstractAllocatable;
+import rba.core.AbstractContent;
+import rba.core.Allocatable;
+import rba.core.Content;
+import rba.core.ContentSet;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Abstract Content</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.impl.AbstractContentImpl#getContentGroup <em>Content Group</em>}</li>
+ * <li>{@link rba.core.impl.AbstractContentImpl#getAllocatable <em>Allocatable</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class AbstractContentImpl extends RuleObjectImpl implements AbstractContent {
+ /**
+ * The cached value of the '{@link #getContentGroup() <em>Content Group</em>}' reference list.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @see #getContentGroup()
+ * @generated
+ * @ordered
+ */
+ protected EList<ContentSet> contentGroup;
+
+ /**
+ * The cached value of the '{@link #getAllocatable() <em>Allocatable</em>}' reference list.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @see #getAllocatable()
+ * @generated
+ * @ordered
+ */
+ protected EList<AbstractAllocatable> allocatable;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected AbstractContentImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.ABSTRACT_CONTENT;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<ContentSet> getContentGroup() {
+ if (contentGroup == null) {
+ contentGroup = new EObjectWithInverseResolvingEList.ManyInverse<ContentSet>(ContentSet.class, this,
+ RBACorePackage.ABSTRACT_CONTENT__CONTENT_GROUP, RBACorePackage.CONTENT_SET__TARGET);
+ }
+ return contentGroup;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<AbstractAllocatable> getAllocatable() {
+ if (allocatable == null) {
+ allocatable = new EObjectWithInverseResolvingEList.ManyInverse<AbstractAllocatable>(
+ AbstractAllocatable.class, this, RBACorePackage.ABSTRACT_CONTENT__ALLOCATABLE,
+ RBACorePackage.ABSTRACT_ALLOCATABLE__CONTENTS);
+ }
+ return allocatable;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Allocatable> getAllocatableList() {
+ java.util.Set<Allocatable> allocatables = new java.util.LinkedHashSet<Allocatable>();
+ getAllocatable().forEach(allocatable -> allocatables.addAll(allocatable.collectLeafAllocatable()));
+ getContentGroup().forEach(contentSet -> allocatables.addAll(contentSet.getAllocatableList()));
+ return new org.eclipse.emf.common.util.BasicEList<Allocatable>(allocatables);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Content> collectLeafContents() {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case RBACorePackage.ABSTRACT_CONTENT__CONTENT_GROUP:
+ return ((InternalEList<InternalEObject>) (InternalEList<?>) getContentGroup()).basicAdd(otherEnd, msgs);
+ case RBACorePackage.ABSTRACT_CONTENT__ALLOCATABLE:
+ return ((InternalEList<InternalEObject>) (InternalEList<?>) getAllocatable()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case RBACorePackage.ABSTRACT_CONTENT__CONTENT_GROUP:
+ return ((InternalEList<?>) getContentGroup()).basicRemove(otherEnd, msgs);
+ case RBACorePackage.ABSTRACT_CONTENT__ALLOCATABLE:
+ return ((InternalEList<?>) getAllocatable()).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 RBACorePackage.ABSTRACT_CONTENT__CONTENT_GROUP:
+ return getContentGroup();
+ case RBACorePackage.ABSTRACT_CONTENT__ALLOCATABLE:
+ return getAllocatable();
+ }
+ 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 RBACorePackage.ABSTRACT_CONTENT__CONTENT_GROUP:
+ getContentGroup().clear();
+ getContentGroup().addAll((Collection<? extends ContentSet>) newValue);
+ return;
+ case RBACorePackage.ABSTRACT_CONTENT__ALLOCATABLE:
+ getAllocatable().clear();
+ getAllocatable().addAll((Collection<? extends AbstractAllocatable>) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.ABSTRACT_CONTENT__CONTENT_GROUP:
+ getContentGroup().clear();
+ return;
+ case RBACorePackage.ABSTRACT_CONTENT__ALLOCATABLE:
+ getAllocatable().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.ABSTRACT_CONTENT__CONTENT_GROUP:
+ return contentGroup != null && !contentGroup.isEmpty();
+ case RBACorePackage.ABSTRACT_CONTENT__ALLOCATABLE:
+ return allocatable != null && !allocatable.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.ABSTRACT_CONTENT___GET_ALLOCATABLE_LIST:
+ return getAllocatableList();
+ case RBACorePackage.ABSTRACT_CONTENT___COLLECT_LEAF_CONTENTS:
+ return collectLeafContents();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // AbstractContentImpl
diff --git a/rba.model.core/src/rba/core/impl/AbstractPropertyImpl.java b/rba.model.core/src/rba/core/impl/AbstractPropertyImpl.java
new file mode 100644
index 0000000..243acad
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/AbstractPropertyImpl.java
@@ -0,0 +1,208 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+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.EcoreUtil;
+import rba.core.AbstractProperty;
+import rba.core.ExpressionType;
+import rba.core.RBACorePackage;
+import rba.core.Scene;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Abstract Property</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.impl.AbstractPropertyImpl#getOwner <em>Owner</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class AbstractPropertyImpl extends RuleObjectImpl implements AbstractProperty {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected AbstractPropertyImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.ABSTRACT_PROPERTY;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public Scene getOwner() {
+ if (eContainerFeatureID() != RBACorePackage.ABSTRACT_PROPERTY__OWNER)
+ return null;
+ return (Scene) eInternalContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetOwner(Scene newOwner, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject) newOwner, RBACorePackage.ABSTRACT_PROPERTY__OWNER, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOwner(Scene newOwner) {
+ if (newOwner != eInternalContainer()
+ || (eContainerFeatureID() != RBACorePackage.ABSTRACT_PROPERTY__OWNER && newOwner != null)) {
+ if (EcoreUtil.isAncestor(this, newOwner))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newOwner != null)
+ msgs = ((InternalEObject) newOwner).eInverseAdd(this, RBACorePackage.SCENE__PROPERTIES, Scene.class,
+ msgs);
+ msgs = basicSetOwner(newOwner, msgs);
+ if (msgs != null)
+ msgs.dispatch();
+ } else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RBACorePackage.ABSTRACT_PROPERTY__OWNER, newOwner,
+ newOwner));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getExpressionType() {
+ return ExpressionType.PROPERTY;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case RBACorePackage.ABSTRACT_PROPERTY__OWNER:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetOwner((Scene) otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case RBACorePackage.ABSTRACT_PROPERTY__OWNER:
+ return basicSetOwner(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case RBACorePackage.ABSTRACT_PROPERTY__OWNER:
+ return eInternalContainer().eInverseRemove(this, RBACorePackage.SCENE__PROPERTIES, Scene.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case RBACorePackage.ABSTRACT_PROPERTY__OWNER:
+ return getOwner();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case RBACorePackage.ABSTRACT_PROPERTY__OWNER:
+ setOwner((Scene) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.ABSTRACT_PROPERTY__OWNER:
+ setOwner((Scene) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.ABSTRACT_PROPERTY__OWNER:
+ return getOwner() != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.ABSTRACT_PROPERTY___GET_EXPRESSION_TYPE:
+ return getExpressionType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // AbstractPropertyImpl
diff --git a/rba.model.core/src/rba/core/impl/AbstractSceneImpl.java b/rba.model.core/src/rba/core/impl/AbstractSceneImpl.java
new file mode 100644
index 0000000..179f9f7
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/AbstractSceneImpl.java
@@ -0,0 +1,33 @@
+/**
+ */
+package rba.core.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.AbstractScene;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Abstract Scene</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public abstract class AbstractSceneImpl extends RuleObjectImpl implements AbstractScene {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected AbstractSceneImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.ABSTRACT_SCENE;
+ }
+
+} // AbstractSceneImpl
diff --git a/rba.model.core/src/rba/core/impl/ActiveContentsImpl.java b/rba.model.core/src/rba/core/impl/ActiveContentsImpl.java
new file mode 100644
index 0000000..4ce9df2
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/ActiveContentsImpl.java
@@ -0,0 +1,85 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.ActiveContents;
+import rba.core.ExpressionType;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Active Contents</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class ActiveContentsImpl extends AllocatableOperatorImpl implements ActiveContents {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ActiveContentsImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.ACTIVE_CONTENTS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return ".activeContents()";
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ EList<rba.core.Expression> expressions = getOperand();
+ if (!expressions.isEmpty() && expressions.get(0) != null) {
+ rba.core.Expression first = expressions.get(0);
+ if (first.getType() == ExpressionType.AREA) {
+ return ExpressionType.SET_OF_CONTENT;
+ } else if (first.getType() == ExpressionType.ZONE) {
+ return ExpressionType.SET_OF_SOUND;
+ }
+ }
+ return ExpressionType.VALUE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.ACTIVE_CONTENTS___GET_SYMBOL:
+ return getSymbol();
+ case RBACorePackage.ACTIVE_CONTENTS___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} //ActiveContentsImpl
diff --git a/rba.model.core/src/rba/core/impl/ActiveStateImpl.java b/rba.model.core/src/rba/core/impl/ActiveStateImpl.java
new file mode 100644
index 0000000..965181c
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/ActiveStateImpl.java
@@ -0,0 +1,69 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.ActiveState;
+import rba.core.ExpressionType;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Active State</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class ActiveStateImpl extends ContentOperatorImpl implements ActiveState {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected ActiveStateImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.ACTIVE_STATE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return ".activeState()";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return ExpressionType.CONTENT_STATE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.ACTIVE_STATE___GET_SYMBOL:
+ return getSymbol();
+ case RBACorePackage.ACTIVE_STATE___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // ActiveStateImpl
diff --git a/rba.model.core/src/rba/core/impl/AllocatableImpl.java b/rba.model.core/src/rba/core/impl/AllocatableImpl.java
new file mode 100644
index 0000000..d47a7dd
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/AllocatableImpl.java
@@ -0,0 +1,261 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+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 rba.core.Allocatable;
+import rba.core.ArbitrationPolicy;
+import rba.core.Expression;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Allocatable</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.impl.AllocatableImpl#getArbitrationPolicy <em>Arbitration Policy</em>}</li>
+ * <li>{@link rba.core.impl.AllocatableImpl#getVisibility <em>Visibility</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class AllocatableImpl extends AbstractAllocatableImpl implements Allocatable {
+ /**
+ * The default value of the '{@link #getArbitrationPolicy() <em>Arbitration Policy</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getArbitrationPolicy()
+ * @generated
+ * @ordered
+ */
+ protected static final ArbitrationPolicy ARBITRATION_POLICY_EDEFAULT = ArbitrationPolicy.DEFAULT;
+
+ /**
+ * The cached value of the '{@link #getArbitrationPolicy() <em>Arbitration Policy</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getArbitrationPolicy()
+ * @generated
+ * @ordered
+ */
+ protected ArbitrationPolicy arbitrationPolicy = ARBITRATION_POLICY_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getVisibility() <em>Visibility</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVisibility()
+ * @generated
+ * @ordered
+ */
+ protected Expression visibility;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected AllocatableImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.ALLOCATABLE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ArbitrationPolicy getArbitrationPolicy() {
+ return arbitrationPolicy;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setArbitrationPolicy(ArbitrationPolicy newArbitrationPolicy) {
+ ArbitrationPolicy oldArbitrationPolicy = arbitrationPolicy;
+ arbitrationPolicy = newArbitrationPolicy == null ? ARBITRATION_POLICY_EDEFAULT : newArbitrationPolicy;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RBACorePackage.ALLOCATABLE__ARBITRATION_POLICY,
+ oldArbitrationPolicy, arbitrationPolicy));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public Expression getVisibility() {
+ return visibility;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetVisibility(Expression newVisibility, NotificationChain msgs) {
+ Expression oldVisibility = visibility;
+ visibility = newVisibility;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
+ RBACorePackage.ALLOCATABLE__VISIBILITY, oldVisibility, newVisibility);
+ if (msgs == null)
+ msgs = notification;
+ else
+ msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setVisibility(Expression newVisibility) {
+ if (newVisibility != visibility) {
+ NotificationChain msgs = null;
+ if (visibility != null)
+ msgs = ((InternalEObject) visibility).eInverseRemove(this,
+ EOPPOSITE_FEATURE_BASE - RBACorePackage.ALLOCATABLE__VISIBILITY, null, msgs);
+ if (newVisibility != null)
+ msgs = ((InternalEObject) newVisibility).eInverseAdd(this,
+ EOPPOSITE_FEATURE_BASE - RBACorePackage.ALLOCATABLE__VISIBILITY, null, msgs);
+ msgs = basicSetVisibility(newVisibility, msgs);
+ if (msgs != null)
+ msgs.dispatch();
+ } else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RBACorePackage.ALLOCATABLE__VISIBILITY, newVisibility,
+ newVisibility));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Allocatable> collectLeafAllocatable() {
+ java.util.Set<Allocatable> allocatables = new java.util.HashSet<Allocatable>();
+ allocatables.add(this);
+ return new org.eclipse.emf.common.util.BasicEList<Allocatable>(allocatables);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case RBACorePackage.ALLOCATABLE__VISIBILITY:
+ return basicSetVisibility(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 RBACorePackage.ALLOCATABLE__ARBITRATION_POLICY:
+ return getArbitrationPolicy();
+ case RBACorePackage.ALLOCATABLE__VISIBILITY:
+ return getVisibility();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case RBACorePackage.ALLOCATABLE__ARBITRATION_POLICY:
+ setArbitrationPolicy((ArbitrationPolicy) newValue);
+ return;
+ case RBACorePackage.ALLOCATABLE__VISIBILITY:
+ setVisibility((Expression) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.ALLOCATABLE__ARBITRATION_POLICY:
+ setArbitrationPolicy(ARBITRATION_POLICY_EDEFAULT);
+ return;
+ case RBACorePackage.ALLOCATABLE__VISIBILITY:
+ setVisibility((Expression) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.ALLOCATABLE__ARBITRATION_POLICY:
+ return arbitrationPolicy != ARBITRATION_POLICY_EDEFAULT;
+ case RBACorePackage.ALLOCATABLE__VISIBILITY:
+ return visibility != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.ALLOCATABLE___COLLECT_LEAF_ALLOCATABLE:
+ return collectLeafAllocatable();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy())
+ return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (arbitrationPolicy: ");
+ result.append(arbitrationPolicy);
+ result.append(')');
+ return result.toString();
+ }
+
+} // AllocatableImpl
diff --git a/rba.model.core/src/rba/core/impl/AllocatableOperatorImpl.java b/rba.model.core/src/rba/core/impl/AllocatableOperatorImpl.java
new file mode 100644
index 0000000..9a034e7
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/AllocatableOperatorImpl.java
@@ -0,0 +1,62 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.AllocatableOperator;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Allocatable Operator</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public abstract class AllocatableOperatorImpl extends OperatorImpl implements AllocatableOperator {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected AllocatableOperatorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.ALLOCATABLE_OPERATOR;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ StringBuffer expressionText = new StringBuffer();
+ EList<rba.core.Expression> expressions = getOperand();
+ expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : "[Invalid_Expression]");
+ expressionText.append(getSymbol());
+ return expressionText.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.ALLOCATABLE_OPERATOR___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // AllocatableOperatorImpl
diff --git a/rba.model.core/src/rba/core/impl/AllocatableSetImpl.java b/rba.model.core/src/rba/core/impl/AllocatableSetImpl.java
new file mode 100644
index 0000000..0cf7052
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/AllocatableSetImpl.java
@@ -0,0 +1,181 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+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.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import rba.core.AbstractAllocatable;
+import rba.core.Allocatable;
+import rba.core.AllocatableSet;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Allocatable Set</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.impl.AllocatableSetImpl#getTarget <em>Target</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class AllocatableSetImpl extends AbstractAllocatableImpl implements AllocatableSet {
+ /**
+ * The cached value of the '{@link #getTarget() <em>Target</em>}' reference list. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @see #getTarget()
+ * @generated
+ * @ordered
+ */
+ protected EList<AbstractAllocatable> target;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected AllocatableSetImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.ALLOCATABLE_SET;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<AbstractAllocatable> getTarget() {
+ if (target == null) {
+ target = new EObjectWithInverseResolvingEList.ManyInverse<AbstractAllocatable>(AbstractAllocatable.class,
+ this, RBACorePackage.ALLOCATABLE_SET__TARGET,
+ RBACorePackage.ABSTRACT_ALLOCATABLE__ALLOCATABLE_GROUP);
+ }
+ return target;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Allocatable> collectLeafAllocatable() {
+ java.util.Set<Allocatable> allocatables = new java.util.LinkedHashSet<Allocatable>();
+ getTarget().forEach(allocatable -> allocatables.addAll(allocatable.collectLeafAllocatable()));
+ return new org.eclipse.emf.common.util.BasicEList<Allocatable>(allocatables);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case RBACorePackage.ALLOCATABLE_SET__TARGET:
+ return ((InternalEList<InternalEObject>) (InternalEList<?>) getTarget()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case RBACorePackage.ALLOCATABLE_SET__TARGET:
+ return ((InternalEList<?>) getTarget()).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 RBACorePackage.ALLOCATABLE_SET__TARGET:
+ return getTarget();
+ }
+ 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 RBACorePackage.ALLOCATABLE_SET__TARGET:
+ getTarget().clear();
+ getTarget().addAll((Collection<? extends AbstractAllocatable>) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.ALLOCATABLE_SET__TARGET:
+ getTarget().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.ALLOCATABLE_SET__TARGET:
+ return target != null && !target.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.ALLOCATABLE_SET___COLLECT_LEAF_ALLOCATABLE:
+ return collectLeafAllocatable();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // AllocatableSetImpl
diff --git a/rba.model.core/src/rba/core/impl/AllocatedContentImpl.java b/rba.model.core/src/rba/core/impl/AllocatedContentImpl.java
new file mode 100644
index 0000000..9d30cfa
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/AllocatedContentImpl.java
@@ -0,0 +1,78 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.AllocatedContent;
+import rba.core.ExpressionType;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Allocated Content</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class AllocatedContentImpl extends AllocatableOperatorImpl implements AllocatedContent {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected AllocatedContentImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.ALLOCATED_CONTENT;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return ".allocatedContent()";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ EList<rba.core.Expression> expressions = getOperand();
+ if (!expressions.isEmpty() && expressions.get(0) != null) {
+ rba.core.Expression first = expressions.get(0);
+ if ((first.getType() == ExpressionType.AREA) || (first.getType() == ExpressionType.SET_OF_AREA)) {
+ return ExpressionType.CONTENT;
+ } else if ((first.getType() == ExpressionType.ZONE) || (first.getType() == ExpressionType.SET_OF_ZONE)) {
+ return ExpressionType.SOUND;
+ }
+ }
+ return ExpressionType.VALUE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.ALLOCATED_CONTENT___GET_SYMBOL:
+ return getSymbol();
+ case RBACorePackage.ALLOCATED_CONTENT___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // AllocatedContentImpl
diff --git a/rba.model.core/src/rba/core/impl/AndOperatorImpl.java b/rba.model.core/src/rba/core/impl/AndOperatorImpl.java
new file mode 100644
index 0000000..8768fa1
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/AndOperatorImpl.java
@@ -0,0 +1,58 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.AndOperator;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>And Operator</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class AndOperatorImpl extends LogicalOperatorImpl implements AndOperator {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected AndOperatorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.AND_OPERATOR;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return "AND";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.AND_OPERATOR___GET_SYMBOL:
+ return getSymbol();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // AndOperatorImpl
diff --git a/rba.model.core/src/rba/core/impl/ArbitrationPolicyExpressionImpl.java b/rba.model.core/src/rba/core/impl/ArbitrationPolicyExpressionImpl.java
new file mode 100644
index 0000000..a9d7764
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/ArbitrationPolicyExpressionImpl.java
@@ -0,0 +1,193 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.Enumerator;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import rba.core.ArbitrationPolicy;
+import rba.core.ArbitrationPolicyExpression;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Arbitration Policy Expression</b></em>'. <!--
+ * end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.impl.ArbitrationPolicyExpressionImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ArbitrationPolicyExpressionImpl extends EnumExpressionImpl implements ArbitrationPolicyExpression {
+ /**
+ * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected static final ArbitrationPolicy VALUE_EDEFAULT = ArbitrationPolicy.DEFAULT;
+
+ /**
+ * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected ArbitrationPolicy value = VALUE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected ArbitrationPolicyExpressionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.ARBITRATION_POLICY_EXPRESSION;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ArbitrationPolicy getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setValue(ArbitrationPolicy newValue) {
+ ArbitrationPolicy oldValue = value;
+ value = newValue == null ? VALUE_EDEFAULT : newValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RBACorePackage.ARBITRATION_POLICY_EXPRESSION__VALUE,
+ oldValue, value));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ if (value instanceof ArbitrationPolicy) {
+ return value.getName();
+ } else {
+ return "[Invalid_Expression]";
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public Enumerator getExpressionValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case RBACorePackage.ARBITRATION_POLICY_EXPRESSION__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 RBACorePackage.ARBITRATION_POLICY_EXPRESSION__VALUE:
+ setValue((ArbitrationPolicy) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.ARBITRATION_POLICY_EXPRESSION__VALUE:
+ setValue(VALUE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.ARBITRATION_POLICY_EXPRESSION__VALUE:
+ return value != VALUE_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.ARBITRATION_POLICY_EXPRESSION___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ case RBACorePackage.ARBITRATION_POLICY_EXPRESSION___GET_EXPRESSION_VALUE:
+ return getExpressionValue();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+ /**
+ * <!-- 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();
+ }
+
+} // ArbitrationPolicyExpressionImpl
diff --git a/rba.model.core/src/rba/core/impl/ArithmeticOperatorImpl.java b/rba.model.core/src/rba/core/impl/ArithmeticOperatorImpl.java
new file mode 100644
index 0000000..35fb393
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/ArithmeticOperatorImpl.java
@@ -0,0 +1,83 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.ArithmeticOperator;
+import rba.core.ExpressionType;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Arithmetic Operator</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public abstract class ArithmeticOperatorImpl extends OperatorImpl implements ArithmeticOperator {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected ArithmeticOperatorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.ARITHMETIC_OPERATOR;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return ExpressionType.VALUE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ StringBuffer expressionText = new StringBuffer();
+ EList<rba.core.Expression> expressions = getOperand();
+ expressionText.append("(");
+ for (int i = 0; i < expressions.size(); i++) {
+ rba.core.Expression expression = expressions.get(i);
+ expressionText.append(expression.getExpressionText());
+ if (i == expressions.size() - 1) {
+ expressionText.append(")");
+ } else {
+ expressionText.append(" ");
+ expressionText.append(getSymbol());
+ expressionText.append(" ");
+ }
+ }
+ return expressionText.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.ARITHMETIC_OPERATOR___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ case RBACorePackage.ARITHMETIC_OPERATOR___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // ArithmeticOperatorImpl
diff --git a/rba.model.core/src/rba/core/impl/ComparisonAndImpl.java b/rba.model.core/src/rba/core/impl/ComparisonAndImpl.java
new file mode 100644
index 0000000..1d1dfa6
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/ComparisonAndImpl.java
@@ -0,0 +1,118 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.ComparisonAnd;
+import rba.core.ComparisonOperator;
+import rba.core.Expression;
+import rba.core.Operator;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Comparison And</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class ComparisonAndImpl extends ComparisonOperatorImpl implements ComparisonAnd {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected ComparisonAndImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.COMPARISON_AND;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return "and";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ StringBuffer expressionText = new StringBuffer();
+ EList<rba.core.Expression> expressions = getOperand();
+ expressionText.append("(");
+ for (int i = 0; i < expressions.size(); i++) {
+ rba.core.Expression expression = expressions.get(i);
+ expressionText.append(expression.getExpressionText());
+ if (i == expressions.size() - 1) {
+ expressionText.append(")");
+ } else {
+ expressionText.append(" ");
+ expressionText.append(getSymbol());
+ expressionText.append(" ");
+ }
+ }
+ return expressionText.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
+ if (baseClass == Expression.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.EXPRESSION___GET_EXPRESSION_TEXT:
+ return RBACorePackage.COMPARISON_AND___GET_EXPRESSION_TEXT;
+ default:
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+ }
+ if (baseClass == Operator.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.OPERATOR___GET_SYMBOL:
+ return RBACorePackage.COMPARISON_AND___GET_SYMBOL;
+ default:
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+ }
+ if (baseClass == ComparisonOperator.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.COMPARISON_OPERATOR___GET_EXPRESSION_TEXT:
+ return RBACorePackage.COMPARISON_AND___GET_EXPRESSION_TEXT;
+ default:
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+ }
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.COMPARISON_AND___GET_SYMBOL:
+ return getSymbol();
+ case RBACorePackage.COMPARISON_AND___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // ComparisonAndImpl
diff --git a/rba.model.core/src/rba/core/impl/ComparisonOperatorImpl.java b/rba.model.core/src/rba/core/impl/ComparisonOperatorImpl.java
new file mode 100644
index 0000000..536b758
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/ComparisonOperatorImpl.java
@@ -0,0 +1,73 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.ComparisonOperator;
+import rba.core.ExpressionType;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Comparison Operator</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public abstract class ComparisonOperatorImpl extends OperatorImpl implements ComparisonOperator {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected ComparisonOperatorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.COMPARISON_OPERATOR;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return ExpressionType.VALUE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ StringBuffer expressionText = new StringBuffer();
+ EList<rba.core.Expression> expressions = getOperand();
+ expressionText.append(getSymbol());
+ expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : "[Invalid_Expression]");
+ return expressionText.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.COMPARISON_OPERATOR___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ case RBACorePackage.COMPARISON_OPERATOR___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // ComparisonOperatorImpl
diff --git a/rba.model.core/src/rba/core/impl/ComplexExpressionImpl.java b/rba.model.core/src/rba/core/impl/ComplexExpressionImpl.java
new file mode 100644
index 0000000..7032eb5
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/ComplexExpressionImpl.java
@@ -0,0 +1,279 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+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 rba.core.ComplexExpression;
+import rba.core.Expression;
+import rba.core.ExpressionType;
+import rba.core.RBACorePackage;
+import rba.core.SugarExpression;
+import rba.core.SugarExpressionBase;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Complex Expression</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.impl.ComplexExpressionImpl#getOtherExpression <em>Other Expression</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ComplexExpressionImpl extends ExpressionImpl implements ComplexExpression {
+ /**
+ * The cached value of the '{@link #getOtherExpression() <em>Other Expression</em>}' containment reference. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ * @see #getOtherExpression()
+ * @generated
+ * @ordered
+ */
+ protected Expression otherExpression;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected ComplexExpressionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.COMPLEX_EXPRESSION;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public Expression getOtherExpression() {
+ return otherExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetOtherExpression(Expression newOtherExpression, NotificationChain msgs) {
+ Expression oldOtherExpression = otherExpression;
+ otherExpression = newOtherExpression;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
+ RBACorePackage.COMPLEX_EXPRESSION__OTHER_EXPRESSION, oldOtherExpression, newOtherExpression);
+ if (msgs == null)
+ msgs = notification;
+ else
+ msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOtherExpression(Expression newOtherExpression) {
+ if (newOtherExpression != otherExpression) {
+ NotificationChain msgs = null;
+ if (otherExpression != null)
+ msgs = ((InternalEObject) otherExpression).eInverseRemove(this,
+ EOPPOSITE_FEATURE_BASE - RBACorePackage.COMPLEX_EXPRESSION__OTHER_EXPRESSION, null, msgs);
+ if (newOtherExpression != null)
+ msgs = ((InternalEObject) newOtherExpression).eInverseAdd(this,
+ EOPPOSITE_FEATURE_BASE - RBACorePackage.COMPLEX_EXPRESSION__OTHER_EXPRESSION, null, msgs);
+ msgs = basicSetOtherExpression(newOtherExpression, msgs);
+ if (msgs != null)
+ msgs.dispatch();
+ } else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RBACorePackage.COMPLEX_EXPRESSION__OTHER_EXPRESSION,
+ newOtherExpression, newOtherExpression));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ return otherExpression != null ? otherExpression.getExpressionText() : "[Invalid_Expression]";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ if (otherExpression != null) {
+ return otherExpression.getType();
+ } else {
+ return ExpressionType.VALUE;
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getType() {
+ return getUnderlyingType();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean canExpand() {
+ return true;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Expression getExpanded() {
+ otherExpression.getLetStatements().addAll(getLetStatements());
+ return otherExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case RBACorePackage.COMPLEX_EXPRESSION__OTHER_EXPRESSION:
+ return basicSetOtherExpression(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 RBACorePackage.COMPLEX_EXPRESSION__OTHER_EXPRESSION:
+ return getOtherExpression();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case RBACorePackage.COMPLEX_EXPRESSION__OTHER_EXPRESSION:
+ setOtherExpression((Expression) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.COMPLEX_EXPRESSION__OTHER_EXPRESSION:
+ setOtherExpression((Expression) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.COMPLEX_EXPRESSION__OTHER_EXPRESSION:
+ return otherExpression != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
+ if (baseClass == Expression.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.EXPRESSION___GET_UNDERLYING_TYPE:
+ return RBACorePackage.COMPLEX_EXPRESSION___GET_UNDERLYING_TYPE;
+ case RBACorePackage.EXPRESSION___GET_EXPRESSION_TEXT:
+ return RBACorePackage.COMPLEX_EXPRESSION___GET_EXPRESSION_TEXT;
+ default:
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+ }
+ if (baseClass == SugarExpression.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.SUGAR_EXPRESSION___CAN_EXPAND:
+ return RBACorePackage.COMPLEX_EXPRESSION___CAN_EXPAND;
+ case RBACorePackage.SUGAR_EXPRESSION___GET_EXPANDED:
+ return RBACorePackage.COMPLEX_EXPRESSION___GET_EXPANDED;
+ default:
+ return -1;
+ }
+ }
+ if (baseClass == SugarExpressionBase.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.SUGAR_EXPRESSION_BASE___CAN_EXPAND:
+ return RBACorePackage.COMPLEX_EXPRESSION___CAN_EXPAND;
+ default:
+ return -1;
+ }
+ }
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.COMPLEX_EXPRESSION___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ case RBACorePackage.COMPLEX_EXPRESSION___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ case RBACorePackage.COMPLEX_EXPRESSION___GET_TYPE:
+ return getType();
+ case RBACorePackage.COMPLEX_EXPRESSION___CAN_EXPAND:
+ return canExpand();
+ case RBACorePackage.COMPLEX_EXPRESSION___GET_EXPANDED:
+ return getExpanded();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // ComplexExpressionImpl
diff --git a/rba.model.core/src/rba/core/impl/ConstraintImpl.java b/rba.model.core/src/rba/core/impl/ConstraintImpl.java
new file mode 100644
index 0000000..180c124
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/ConstraintImpl.java
@@ -0,0 +1,186 @@
+/**
+ */
+package rba.core.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import rba.core.Constraint;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Constraint</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.impl.ConstraintImpl#isRuntime <em>Runtime</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ConstraintImpl extends AbstractConstraintImpl implements Constraint {
+ /**
+ * The default value of the '{@link #isRuntime() <em>Runtime</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see #isRuntime()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean RUNTIME_EDEFAULT = true;
+
+ /**
+ * The cached value of the '{@link #isRuntime() <em>Runtime</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see #isRuntime()
+ * @generated
+ * @ordered
+ */
+ protected boolean runtime = RUNTIME_EDEFAULT;
+
+ /**
+ * This is true if the Runtime attribute has been set.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean runtimeESet;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConstraintImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.CONSTRAINT;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isRuntime() {
+ return runtime;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRuntime(boolean newRuntime) {
+ boolean oldRuntime = runtime;
+ runtime = newRuntime;
+ boolean oldRuntimeESet = runtimeESet;
+ runtimeESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RBACorePackage.CONSTRAINT__RUNTIME, oldRuntime,
+ runtime, !oldRuntimeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetRuntime() {
+ boolean oldRuntime = runtime;
+ boolean oldRuntimeESet = runtimeESet;
+ runtime = RUNTIME_EDEFAULT;
+ runtimeESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, RBACorePackage.CONSTRAINT__RUNTIME, oldRuntime,
+ RUNTIME_EDEFAULT, oldRuntimeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetRuntime() {
+ return runtimeESet;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case RBACorePackage.CONSTRAINT__RUNTIME:
+ return isRuntime();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case RBACorePackage.CONSTRAINT__RUNTIME:
+ setRuntime((Boolean) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.CONSTRAINT__RUNTIME:
+ unsetRuntime();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.CONSTRAINT__RUNTIME:
+ return isSetRuntime();
+ }
+ 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(" (runtime: ");
+ if (runtimeESet)
+ result.append(runtime);
+ else
+ result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} // ConstraintImpl
diff --git a/rba.model.core/src/rba/core/impl/ContentImpl.java b/rba.model.core/src/rba/core/impl/ContentImpl.java
new file mode 100644
index 0000000..7de022e
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/ContentImpl.java
@@ -0,0 +1,248 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+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.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import rba.core.Content;
+import rba.core.ContentState;
+import rba.core.LoserType;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Content</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.impl.ContentImpl#getLoserType <em>Loser Type</em>}</li>
+ * <li>{@link rba.core.impl.ContentImpl#getStates <em>States</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class ContentImpl extends AbstractContentImpl implements Content {
+ /**
+ * The default value of the '{@link #getLoserType() <em>Loser Type</em>}' attribute.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @see #getLoserType()
+ * @generated
+ * @ordered
+ */
+ protected static final LoserType LOSER_TYPE_EDEFAULT = LoserType.NEVER_GIVEUP;
+
+ /**
+ * The cached value of the '{@link #getLoserType() <em>Loser Type</em>}' attribute.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @see #getLoserType()
+ * @generated
+ * @ordered
+ */
+ protected LoserType loserType = LOSER_TYPE_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getStates() <em>States</em>}' containment reference list.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @see #getStates()
+ * @generated
+ * @ordered
+ */
+ protected EList<ContentState> states;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected ContentImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.CONTENT;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public LoserType getLoserType() {
+ return loserType;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLoserType(LoserType newLoserType) {
+ LoserType oldLoserType = loserType;
+ loserType = newLoserType == null ? LOSER_TYPE_EDEFAULT : newLoserType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RBACorePackage.CONTENT__LOSER_TYPE, oldLoserType,
+ loserType));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<ContentState> getStates() {
+ if (states == null) {
+ states = new EObjectContainmentWithInverseEList<ContentState>(ContentState.class, this,
+ RBACorePackage.CONTENT__STATES, RBACorePackage.CONTENT_STATE__OWNER);
+ }
+ return states;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Content> collectLeafContents() {
+ java.util.Set<Content> contents = new java.util.HashSet<Content>();
+ contents.add(this);
+ return new org.eclipse.emf.common.util.BasicEList<Content>(contents);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case RBACorePackage.CONTENT__STATES:
+ return ((InternalEList<InternalEObject>) (InternalEList<?>) getStates()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case RBACorePackage.CONTENT__STATES:
+ return ((InternalEList<?>) getStates()).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 RBACorePackage.CONTENT__LOSER_TYPE:
+ return getLoserType();
+ case RBACorePackage.CONTENT__STATES:
+ return getStates();
+ }
+ 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 RBACorePackage.CONTENT__LOSER_TYPE:
+ setLoserType((LoserType) newValue);
+ return;
+ case RBACorePackage.CONTENT__STATES:
+ getStates().clear();
+ getStates().addAll((Collection<? extends ContentState>) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.CONTENT__LOSER_TYPE:
+ setLoserType(LOSER_TYPE_EDEFAULT);
+ return;
+ case RBACorePackage.CONTENT__STATES:
+ getStates().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.CONTENT__LOSER_TYPE:
+ return loserType != LOSER_TYPE_EDEFAULT;
+ case RBACorePackage.CONTENT__STATES:
+ return states != null && !states.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.CONTENT___COLLECT_LEAF_CONTENTS:
+ return collectLeafContents();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy())
+ return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (loserType: ");
+ result.append(loserType);
+ result.append(')');
+ return result.toString();
+ }
+
+} // ContentImpl
diff --git a/rba.model.core/src/rba/core/impl/ContentOperatorImpl.java b/rba.model.core/src/rba/core/impl/ContentOperatorImpl.java
new file mode 100644
index 0000000..54d3eee
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/ContentOperatorImpl.java
@@ -0,0 +1,62 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.ContentOperator;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Content Operator</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public abstract class ContentOperatorImpl extends OperatorImpl implements ContentOperator {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected ContentOperatorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.CONTENT_OPERATOR;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ StringBuffer expressionText = new StringBuffer();
+ EList<rba.core.Expression> expressions = getOperand();
+ expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : "[Invalid_Expression]");
+ expressionText.append(getSymbol());
+ return expressionText.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.CONTENT_OPERATOR___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // ContentOperatorImpl
diff --git a/rba.model.core/src/rba/core/impl/ContentSetImpl.java b/rba.model.core/src/rba/core/impl/ContentSetImpl.java
new file mode 100644
index 0000000..48b49dc
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/ContentSetImpl.java
@@ -0,0 +1,177 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+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.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import rba.core.AbstractContent;
+import rba.core.Content;
+import rba.core.ContentSet;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Content Set</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.impl.ContentSetImpl#getTarget <em>Target</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class ContentSetImpl extends AbstractContentImpl implements ContentSet {
+ /**
+ * The cached value of the '{@link #getTarget() <em>Target</em>}' reference list. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @see #getTarget()
+ * @generated
+ * @ordered
+ */
+ protected EList<AbstractContent> target;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected ContentSetImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.CONTENT_SET;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<AbstractContent> getTarget() {
+ if (target == null) {
+ target = new EObjectWithInverseResolvingEList.ManyInverse<AbstractContent>(AbstractContent.class, this,
+ RBACorePackage.CONTENT_SET__TARGET, RBACorePackage.ABSTRACT_CONTENT__CONTENT_GROUP);
+ }
+ return target;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Content> collectLeafContents() {
+ java.util.Set<Content> contents = new java.util.LinkedHashSet<Content>();
+ getTarget().forEach(content -> contents.addAll(content.collectLeafContents()));
+ return new org.eclipse.emf.common.util.BasicEList<Content>(contents);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case RBACorePackage.CONTENT_SET__TARGET:
+ return ((InternalEList<InternalEObject>) (InternalEList<?>) getTarget()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case RBACorePackage.CONTENT_SET__TARGET:
+ return ((InternalEList<?>) getTarget()).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 RBACorePackage.CONTENT_SET__TARGET:
+ return getTarget();
+ }
+ 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 RBACorePackage.CONTENT_SET__TARGET:
+ getTarget().clear();
+ getTarget().addAll((Collection<? extends AbstractContent>) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.CONTENT_SET__TARGET:
+ getTarget().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.CONTENT_SET__TARGET:
+ return target != null && !target.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.CONTENT_SET___COLLECT_LEAF_CONTENTS:
+ return collectLeafContents();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // ContentSetImpl
diff --git a/rba.model.core/src/rba/core/impl/ContentStateImpl.java b/rba.model.core/src/rba/core/impl/ContentStateImpl.java
new file mode 100644
index 0000000..f744899
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/ContentStateImpl.java
@@ -0,0 +1,256 @@
+/**
+ */
+package rba.core.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.util.EcoreUtil;
+
+import rba.core.Content;
+import rba.core.ContentState;
+import rba.core.Expression;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Content State</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.impl.ContentStateImpl#getValue <em>Value</em>}</li>
+ * <li>{@link rba.core.impl.ContentStateImpl#getOwner <em>Owner</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class ContentStateImpl extends RuleObjectImpl implements ContentState {
+ /**
+ * The cached value of the '{@link #getValue() <em>Value</em>}' containment reference.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected Expression value;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected ContentStateImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.CONTENT_STATE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public Expression getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetValue(Expression newValue, NotificationChain msgs) {
+ Expression oldValue = value;
+ value = newValue;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
+ RBACorePackage.CONTENT_STATE__VALUE, oldValue, newValue);
+ if (msgs == null)
+ msgs = notification;
+ else
+ msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setValue(Expression newValue) {
+ if (newValue != value) {
+ NotificationChain msgs = null;
+ if (value != null)
+ msgs = ((InternalEObject) value).eInverseRemove(this,
+ EOPPOSITE_FEATURE_BASE - RBACorePackage.CONTENT_STATE__VALUE, null, msgs);
+ if (newValue != null)
+ msgs = ((InternalEObject) newValue).eInverseAdd(this,
+ EOPPOSITE_FEATURE_BASE - RBACorePackage.CONTENT_STATE__VALUE, null, msgs);
+ msgs = basicSetValue(newValue, msgs);
+ if (msgs != null)
+ msgs.dispatch();
+ } else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RBACorePackage.CONTENT_STATE__VALUE, newValue,
+ newValue));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public Content getOwner() {
+ if (eContainerFeatureID() != RBACorePackage.CONTENT_STATE__OWNER)
+ return null;
+ return (Content) eInternalContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetOwner(Content newOwner, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject) newOwner, RBACorePackage.CONTENT_STATE__OWNER, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOwner(Content newOwner) {
+ if (newOwner != eInternalContainer()
+ || (eContainerFeatureID() != RBACorePackage.CONTENT_STATE__OWNER && newOwner != null)) {
+ if (EcoreUtil.isAncestor(this, newOwner))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newOwner != null)
+ msgs = ((InternalEObject) newOwner).eInverseAdd(this, RBACorePackage.CONTENT__STATES, Content.class,
+ msgs);
+ msgs = basicSetOwner(newOwner, msgs);
+ if (msgs != null)
+ msgs.dispatch();
+ } else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RBACorePackage.CONTENT_STATE__OWNER, newOwner,
+ newOwner));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case RBACorePackage.CONTENT_STATE__OWNER:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetOwner((Content) otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case RBACorePackage.CONTENT_STATE__VALUE:
+ return basicSetValue(null, msgs);
+ case RBACorePackage.CONTENT_STATE__OWNER:
+ return basicSetOwner(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case RBACorePackage.CONTENT_STATE__OWNER:
+ return eInternalContainer().eInverseRemove(this, RBACorePackage.CONTENT__STATES, Content.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case RBACorePackage.CONTENT_STATE__VALUE:
+ return getValue();
+ case RBACorePackage.CONTENT_STATE__OWNER:
+ return getOwner();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case RBACorePackage.CONTENT_STATE__VALUE:
+ setValue((Expression) newValue);
+ return;
+ case RBACorePackage.CONTENT_STATE__OWNER:
+ setOwner((Content) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.CONTENT_STATE__VALUE:
+ setValue((Expression) null);
+ return;
+ case RBACorePackage.CONTENT_STATE__OWNER:
+ setOwner((Content) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.CONTENT_STATE__VALUE:
+ return value != null;
+ case RBACorePackage.CONTENT_STATE__OWNER:
+ return getOwner() != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // ContentStateImpl
diff --git a/rba.model.core/src/rba/core/impl/ContentStateOperatorImpl.java b/rba.model.core/src/rba/core/impl/ContentStateOperatorImpl.java
new file mode 100644
index 0000000..c8d9330
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/ContentStateOperatorImpl.java
@@ -0,0 +1,62 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.ContentStateOperator;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Content State Operator</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public abstract class ContentStateOperatorImpl extends OperatorImpl implements ContentStateOperator {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected ContentStateOperatorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.CONTENT_STATE_OPERATOR;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ StringBuffer expressionText = new StringBuffer();
+ EList<rba.core.Expression> expressions = getOperand();
+ expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : "[Invalid_Expression]");
+ expressionText.append(getSymbol());
+ return expressionText.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.CONTENT_STATE_OPERATOR___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // ContentStateOperatorImpl
diff --git a/rba.model.core/src/rba/core/impl/ContentValueImpl.java b/rba.model.core/src/rba/core/impl/ContentValueImpl.java
new file mode 100644
index 0000000..0feff1f
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/ContentValueImpl.java
@@ -0,0 +1,69 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.ContentValue;
+import rba.core.ExpressionType;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Content Value</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class ContentValueImpl extends AllocatableOperatorImpl implements ContentValue {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected ContentValueImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.CONTENT_VALUE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return ".contentValue()";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return ExpressionType.VALUE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.CONTENT_VALUE___GET_SYMBOL:
+ return getSymbol();
+ case RBACorePackage.CONTENT_VALUE___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // ContentValueImpl
diff --git a/rba.model.core/src/rba/core/impl/EnumExpressionImpl.java b/rba.model.core/src/rba/core/impl/EnumExpressionImpl.java
new file mode 100644
index 0000000..0c01946
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/EnumExpressionImpl.java
@@ -0,0 +1,82 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.Enumerator;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.EnumExpression;
+import rba.core.ExpressionType;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Enum Expression</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public abstract class EnumExpressionImpl extends ExpressionImpl implements EnumExpression {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected EnumExpressionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.ENUM_EXPRESSION;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return ExpressionType.ENUM;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public Enumerator getExpressionValue() {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getType() {
+ return getUnderlyingType();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.ENUM_EXPRESSION___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ case RBACorePackage.ENUM_EXPRESSION___GET_EXPRESSION_VALUE:
+ return getExpressionValue();
+ case RBACorePackage.ENUM_EXPRESSION___GET_TYPE:
+ return getType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // EnumExpressionImpl
diff --git a/rba.model.core/src/rba/core/impl/EqualToOperatorImpl.java b/rba.model.core/src/rba/core/impl/EqualToOperatorImpl.java
new file mode 100644
index 0000000..c88a227
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/EqualToOperatorImpl.java
@@ -0,0 +1,58 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.EqualToOperator;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Equal To Operator</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class EqualToOperatorImpl extends ComparisonOperatorImpl implements EqualToOperator {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected EqualToOperatorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.EQUAL_TO_OPERATOR;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return "=";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.EQUAL_TO_OPERATOR___GET_SYMBOL:
+ return getSymbol();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // EqualToOperatorImpl
diff --git a/rba.model.core/src/rba/core/impl/ExistsOperatorImpl.java b/rba.model.core/src/rba/core/impl/ExistsOperatorImpl.java
new file mode 100644
index 0000000..12fa012
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/ExistsOperatorImpl.java
@@ -0,0 +1,87 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.ExistsOperator;
+import rba.core.ExpressionType;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Exists Operator</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class ExistsOperatorImpl extends LambdaContextImpl implements ExistsOperator {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected ExistsOperatorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.EXISTS_OPERATOR;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ StringBuffer expressionText = new StringBuffer();
+ EList<rba.core.Expression> expressions = getOperand();
+ rba.core.LambdaExpression lambda = getLambda();
+ expressionText.append(getSymbol());
+ expressionText.append(" ");
+ expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : "[Invalid_Expression]");
+ expressionText.append(" ");
+ expressionText.append(lambda != null ? lambda.getExpressionText() : "[Invalid_Expression]");
+ return expressionText.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return "Exists";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return ExpressionType.BOOLEAN;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.EXISTS_OPERATOR___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ case RBACorePackage.EXISTS_OPERATOR___GET_SYMBOL:
+ return getSymbol();
+ case RBACorePackage.EXISTS_OPERATOR___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // ExistsOperatorImpl
diff --git a/rba.model.core/src/rba/core/impl/ExpressionImpl.java b/rba.model.core/src/rba/core/impl/ExpressionImpl.java
new file mode 100644
index 0000000..207158b
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/ExpressionImpl.java
@@ -0,0 +1,264 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+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 rba.core.Expression;
+import rba.core.ExpressionType;
+import rba.core.LetStatement;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Expression</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.impl.ExpressionImpl#getType <em>Type</em>}</li>
+ * <li>{@link rba.core.impl.ExpressionImpl#getExpression <em>Expression</em>}</li>
+ * <li>{@link rba.core.impl.ExpressionImpl#getLetStatements <em>Let Statements</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class ExpressionImpl extends MinimalEObjectImpl.Container implements Expression {
+ /**
+ * The default value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected static final ExpressionType TYPE_EDEFAULT = ExpressionType.VALUE;
+
+ /**
+ * The default value of the '{@link #getExpression() <em>Expression</em>}' attribute.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @see #getExpression()
+ * @generated
+ * @ordered
+ */
+ protected static final String EXPRESSION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getLetStatements() <em>Let Statements</em>}' containment reference list. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ * @see #getLetStatements()
+ * @generated
+ * @ordered
+ */
+ protected EList<LetStatement> letStatements;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected ExpressionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.EXPRESSION;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public ExpressionType getType() {
+ return getUnderlyingType();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean isSetType() {
+ return true;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String getExpression() {
+ return getExpressionText();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setExpression(String newExpression) {
+ // TODO: implement this method to set the 'Expression' attribute
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetExpression() {
+ // TODO: implement this method to unset the 'Expression' attribute
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean isSetExpression() {
+ return true;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<LetStatement> getLetStatements() {
+ if (letStatements == null) {
+ letStatements = new EObjectContainmentEList<LetStatement>(LetStatement.class, this,
+ RBACorePackage.EXPRESSION__LET_STATEMENTS);
+ }
+ return letStatements;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case RBACorePackage.EXPRESSION__LET_STATEMENTS:
+ return ((InternalEList<?>) getLetStatements()).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 RBACorePackage.EXPRESSION__TYPE:
+ return getType();
+ case RBACorePackage.EXPRESSION__EXPRESSION:
+ return getExpression();
+ case RBACorePackage.EXPRESSION__LET_STATEMENTS:
+ return getLetStatements();
+ }
+ 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 RBACorePackage.EXPRESSION__EXPRESSION:
+ setExpression((String) newValue);
+ return;
+ case RBACorePackage.EXPRESSION__LET_STATEMENTS:
+ getLetStatements().clear();
+ getLetStatements().addAll((Collection<? extends LetStatement>) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.EXPRESSION__EXPRESSION:
+ unsetExpression();
+ return;
+ case RBACorePackage.EXPRESSION__LET_STATEMENTS:
+ getLetStatements().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.EXPRESSION__TYPE:
+ return isSetType();
+ case RBACorePackage.EXPRESSION__EXPRESSION:
+ return isSetExpression();
+ case RBACorePackage.EXPRESSION__LET_STATEMENTS:
+ return letStatements != null && !letStatements.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.EXPRESSION___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ case RBACorePackage.EXPRESSION___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // ExpressionImpl
diff --git a/rba.model.core/src/rba/core/impl/ForAllOperatorImpl.java b/rba.model.core/src/rba/core/impl/ForAllOperatorImpl.java
new file mode 100644
index 0000000..dbcb8af
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/ForAllOperatorImpl.java
@@ -0,0 +1,91 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.ExpressionType;
+import rba.core.ForAllOperator;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>For All Operator</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class ForAllOperatorImpl extends LambdaContextImpl implements ForAllOperator {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected ForAllOperatorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.FOR_ALL_OPERATOR;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ StringBuffer expressionText = new StringBuffer();
+ EList<rba.core.Expression> expressions = getOperand();
+ rba.core.LambdaExpression lambda = getLambda();
+ expressionText.append(getSymbol());
+ expressionText.append(" ");
+ expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : "[Invalid_Expression]");
+ expressionText.append(" ");
+ expressionText.append(lambda != null ? lambda.getExpressionText() : "[Invalid_Expression]");
+ return expressionText.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return "For All";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ rba.core.LambdaExpression lambda = getLambda();
+ if (lambda != null && lambda.getBodyText() != null) {
+ return lambda.getBodyText().getUnderlyingType();
+ }
+ return ExpressionType.BOOLEAN;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.FOR_ALL_OPERATOR___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ case RBACorePackage.FOR_ALL_OPERATOR___GET_SYMBOL:
+ return getSymbol();
+ case RBACorePackage.FOR_ALL_OPERATOR___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // ForAllOperatorImpl
diff --git a/rba.model.core/src/rba/core/impl/GetAllocatablesImpl.java b/rba.model.core/src/rba/core/impl/GetAllocatablesImpl.java
new file mode 100644
index 0000000..f2a6e28
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/GetAllocatablesImpl.java
@@ -0,0 +1,77 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.ExpressionType;
+import rba.core.GetAllocatables;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Get Allocatables</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class GetAllocatablesImpl extends ContentOperatorImpl implements GetAllocatables {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected GetAllocatablesImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.GET_ALLOCATABLES;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return ".allocatables()";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ EList<rba.core.Expression> expressions = getOperand();
+ if (!expressions.isEmpty() && expressions.get(0) != null) {
+ rba.core.Expression first = expressions.get(0);
+ if (first.getType() == ExpressionType.CONTENT) {
+ return ExpressionType.SET_OF_AREA;
+ } else if (first.getType() == ExpressionType.SOUND) {
+ return ExpressionType.SET_OF_ZONE;
+ }
+ }
+ return ExpressionType.VALUE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.GET_ALLOCATABLES___GET_SYMBOL:
+ return getSymbol();
+ case RBACorePackage.GET_ALLOCATABLES___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // GetAllocatablesImpl
diff --git a/rba.model.core/src/rba/core/impl/GetContentsListImpl.java b/rba.model.core/src/rba/core/impl/GetContentsListImpl.java
new file mode 100644
index 0000000..899b468
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/GetContentsListImpl.java
@@ -0,0 +1,77 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.ExpressionType;
+import rba.core.GetContentsList;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Get Contents List</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class GetContentsListImpl extends AllocatableOperatorImpl implements GetContentsList {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected GetContentsListImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.GET_CONTENTS_LIST;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return ".contentsList()";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ EList<rba.core.Expression> expressions = getOperand();
+ if (!expressions.isEmpty() && expressions.get(0) != null) {
+ rba.core.Expression first = expressions.get(0);
+ if (first.getType() == ExpressionType.AREA) {
+ return ExpressionType.SET_OF_CONTENT;
+ } else if (first.getType() == ExpressionType.ZONE) {
+ return ExpressionType.SET_OF_SOUND;
+ }
+ }
+ return ExpressionType.VALUE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.GET_CONTENTS_LIST___GET_SYMBOL:
+ return getSymbol();
+ case RBACorePackage.GET_CONTENTS_LIST___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // GetContentsListImpl
diff --git a/rba.model.core/src/rba/core/impl/GetPropertyImpl.java b/rba.model.core/src/rba/core/impl/GetPropertyImpl.java
new file mode 100644
index 0000000..c3fc47d
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/GetPropertyImpl.java
@@ -0,0 +1,105 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.Expression;
+import rba.core.ExpressionType;
+import rba.core.GetProperty;
+import rba.core.Operator;
+import rba.core.PropertyOperator;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Get Property</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class GetPropertyImpl extends PropertyOperatorImpl implements GetProperty {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected GetPropertyImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.GET_PROPERTY;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return ".get()";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return ExpressionType.VALUE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
+ if (baseClass == Expression.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.EXPRESSION___GET_UNDERLYING_TYPE:
+ return RBACorePackage.GET_PROPERTY___GET_UNDERLYING_TYPE;
+ default:
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+ }
+ if (baseClass == Operator.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.OPERATOR___GET_SYMBOL:
+ return RBACorePackage.GET_PROPERTY___GET_SYMBOL;
+ default:
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+ }
+ if (baseClass == PropertyOperator.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.PROPERTY_OPERATOR___GET_UNDERLYING_TYPE:
+ return RBACorePackage.GET_PROPERTY___GET_UNDERLYING_TYPE;
+ default:
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+ }
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.GET_PROPERTY___GET_SYMBOL:
+ return getSymbol();
+ case RBACorePackage.GET_PROPERTY___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // GetPropertyImpl
diff --git a/rba.model.core/src/rba/core/impl/GetStateImpl.java b/rba.model.core/src/rba/core/impl/GetStateImpl.java
new file mode 100644
index 0000000..ed4be93
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/GetStateImpl.java
@@ -0,0 +1,59 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import rba.core.GetState;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Get State</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class GetStateImpl extends MinimalEObjectImpl.Container implements GetState {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected GetStateImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.GET_STATE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return ".state()";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.GET_STATE___GET_SYMBOL:
+ return getSymbol();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // GetStateImpl
diff --git a/rba.model.core/src/rba/core/impl/GreaterThanOperatorImpl.java b/rba.model.core/src/rba/core/impl/GreaterThanOperatorImpl.java
new file mode 100644
index 0000000..7da0250
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/GreaterThanOperatorImpl.java
@@ -0,0 +1,58 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.GreaterThanOperator;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Greater Than Operator</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class GreaterThanOperatorImpl extends ComparisonOperatorImpl implements GreaterThanOperator {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected GreaterThanOperatorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.GREATER_THAN_OPERATOR;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return ">";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.GREATER_THAN_OPERATOR___GET_SYMBOL:
+ return getSymbol();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // GreaterThanOperatorImpl
diff --git a/rba.model.core/src/rba/core/impl/HasBeenDisplayedImpl.java b/rba.model.core/src/rba/core/impl/HasBeenDisplayedImpl.java
new file mode 100644
index 0000000..aae7b82
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/HasBeenDisplayedImpl.java
@@ -0,0 +1,69 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.ExpressionType;
+import rba.core.HasBeenDisplayed;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Has Been Displayed</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class HasBeenDisplayedImpl extends ContentOperatorImpl implements HasBeenDisplayed {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected HasBeenDisplayedImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.HAS_BEEN_DISPLAYED;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return ".hasBeenDisplayed()";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return ExpressionType.BOOLEAN;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.HAS_BEEN_DISPLAYED___GET_SYMBOL:
+ return getSymbol();
+ case RBACorePackage.HAS_BEEN_DISPLAYED___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // HasBeenDisplayedImpl
diff --git a/rba.model.core/src/rba/core/impl/HasComeEarlierThanImpl.java b/rba.model.core/src/rba/core/impl/HasComeEarlierThanImpl.java
new file mode 100644
index 0000000..1b6aed1
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/HasComeEarlierThanImpl.java
@@ -0,0 +1,124 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.ContentOperator;
+import rba.core.Expression;
+import rba.core.ExpressionType;
+import rba.core.HasComeEarlierThan;
+import rba.core.Operator;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Has Come Earlier Than</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class HasComeEarlierThanImpl extends ContentOperatorImpl implements HasComeEarlierThan {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected HasComeEarlierThanImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.HAS_COME_EARLIER_THAN;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return ".hasComeEarlierThan"; //$NON-NLS-1$
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return ExpressionType.BOOLEAN;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ StringBuffer expressionText = new StringBuffer();
+ EList<rba.core.Expression> expressions = getOperand();
+ expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : "[Invalid_Expression]");
+ expressionText.append(getSymbol());
+ expressionText.append("(");
+ expressionText.append(expressions.size() > 1 ? expressions.get(1).getExpressionText() : "[Invalid_Expression]");
+ expressionText.append(")");
+ return expressionText.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
+ if (baseClass == Expression.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.EXPRESSION___GET_UNDERLYING_TYPE:
+ return RBACorePackage.HAS_COME_EARLIER_THAN___GET_UNDERLYING_TYPE;
+ case RBACorePackage.EXPRESSION___GET_EXPRESSION_TEXT:
+ return RBACorePackage.HAS_COME_EARLIER_THAN___GET_EXPRESSION_TEXT;
+ default:
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+ }
+ if (baseClass == Operator.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.OPERATOR___GET_SYMBOL:
+ return RBACorePackage.HAS_COME_EARLIER_THAN___GET_SYMBOL;
+ default:
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+ }
+ if (baseClass == ContentOperator.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.CONTENT_OPERATOR___GET_EXPRESSION_TEXT:
+ return RBACorePackage.HAS_COME_EARLIER_THAN___GET_EXPRESSION_TEXT;
+ default:
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+ }
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.HAS_COME_EARLIER_THAN___GET_SYMBOL:
+ return getSymbol();
+ case RBACorePackage.HAS_COME_EARLIER_THAN___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ case RBACorePackage.HAS_COME_EARLIER_THAN___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // HasComeEarlierThanImpl
diff --git a/rba.model.core/src/rba/core/impl/HasComeLaterThanImpl.java b/rba.model.core/src/rba/core/impl/HasComeLaterThanImpl.java
new file mode 100644
index 0000000..130a12a
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/HasComeLaterThanImpl.java
@@ -0,0 +1,124 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.ContentOperator;
+import rba.core.Expression;
+import rba.core.ExpressionType;
+import rba.core.HasComeLaterThan;
+import rba.core.Operator;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Has Come Later Than</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class HasComeLaterThanImpl extends ContentOperatorImpl implements HasComeLaterThan {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected HasComeLaterThanImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.HAS_COME_LATER_THAN;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return ".hasComeLaterThan"; //$NON-NLS-1$
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return ExpressionType.BOOLEAN;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ StringBuffer expressionText = new StringBuffer();
+ EList<rba.core.Expression> expressions = getOperand();
+ expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : "[Invalid_Expression]");
+ expressionText.append(getSymbol());
+ expressionText.append("(");
+ expressionText.append(expressions.size() > 1 ? expressions.get(1).getExpressionText() : "[Invalid_Expression]");
+ expressionText.append(")");
+ return expressionText.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
+ if (baseClass == Expression.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.EXPRESSION___GET_UNDERLYING_TYPE:
+ return RBACorePackage.HAS_COME_LATER_THAN___GET_UNDERLYING_TYPE;
+ case RBACorePackage.EXPRESSION___GET_EXPRESSION_TEXT:
+ return RBACorePackage.HAS_COME_LATER_THAN___GET_EXPRESSION_TEXT;
+ default:
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+ }
+ if (baseClass == Operator.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.OPERATOR___GET_SYMBOL:
+ return RBACorePackage.HAS_COME_LATER_THAN___GET_SYMBOL;
+ default:
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+ }
+ if (baseClass == ContentOperator.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.CONTENT_OPERATOR___GET_EXPRESSION_TEXT:
+ return RBACorePackage.HAS_COME_LATER_THAN___GET_EXPRESSION_TEXT;
+ default:
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+ }
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.HAS_COME_LATER_THAN___GET_SYMBOL:
+ return getSymbol();
+ case RBACorePackage.HAS_COME_LATER_THAN___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ case RBACorePackage.HAS_COME_LATER_THAN___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // HasComeLaterThanImpl
diff --git a/rba.model.core/src/rba/core/impl/IfStatementImpl.java b/rba.model.core/src/rba/core/impl/IfStatementImpl.java
new file mode 100644
index 0000000..60ab034
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/IfStatementImpl.java
@@ -0,0 +1,354 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+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 rba.core.Expression;
+import rba.core.ExpressionType;
+import rba.core.IfStatement;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>If Statement</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.impl.IfStatementImpl#getCondition <em>Condition</em>}</li>
+ * <li>{@link rba.core.impl.IfStatementImpl#getThenExpression <em>Then Expression</em>}</li>
+ * <li>{@link rba.core.impl.IfStatementImpl#getElseExpression <em>Else Expression</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class IfStatementImpl extends ExpressionImpl implements IfStatement {
+ /**
+ * 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 #getThenExpression() <em>Then Expression</em>}' containment reference. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ * @see #getThenExpression()
+ * @generated
+ * @ordered
+ */
+ protected Expression thenExpression;
+
+ /**
+ * The cached value of the '{@link #getElseExpression() <em>Else Expression</em>}' containment reference. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ * @see #getElseExpression()
+ * @generated
+ * @ordered
+ */
+ protected Expression elseExpression;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected IfStatementImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.IF_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,
+ RBACorePackage.IF_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 - RBACorePackage.IF_STATEMENT__CONDITION, null, msgs);
+ if (newCondition != null)
+ msgs = ((InternalEObject) newCondition).eInverseAdd(this,
+ EOPPOSITE_FEATURE_BASE - RBACorePackage.IF_STATEMENT__CONDITION, null, msgs);
+ msgs = basicSetCondition(newCondition, msgs);
+ if (msgs != null)
+ msgs.dispatch();
+ } else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RBACorePackage.IF_STATEMENT__CONDITION, newCondition,
+ newCondition));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public Expression getThenExpression() {
+ return thenExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetThenExpression(Expression newThenExpression, NotificationChain msgs) {
+ Expression oldThenExpression = thenExpression;
+ thenExpression = newThenExpression;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
+ RBACorePackage.IF_STATEMENT__THEN_EXPRESSION, oldThenExpression, newThenExpression);
+ if (msgs == null)
+ msgs = notification;
+ else
+ msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setThenExpression(Expression newThenExpression) {
+ if (newThenExpression != thenExpression) {
+ NotificationChain msgs = null;
+ if (thenExpression != null)
+ msgs = ((InternalEObject) thenExpression).eInverseRemove(this,
+ EOPPOSITE_FEATURE_BASE - RBACorePackage.IF_STATEMENT__THEN_EXPRESSION, null, msgs);
+ if (newThenExpression != null)
+ msgs = ((InternalEObject) newThenExpression).eInverseAdd(this,
+ EOPPOSITE_FEATURE_BASE - RBACorePackage.IF_STATEMENT__THEN_EXPRESSION, null, msgs);
+ msgs = basicSetThenExpression(newThenExpression, msgs);
+ if (msgs != null)
+ msgs.dispatch();
+ } else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RBACorePackage.IF_STATEMENT__THEN_EXPRESSION,
+ newThenExpression, newThenExpression));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public Expression getElseExpression() {
+ return elseExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetElseExpression(Expression newElseExpression, NotificationChain msgs) {
+ Expression oldElseExpression = elseExpression;
+ elseExpression = newElseExpression;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
+ RBACorePackage.IF_STATEMENT__ELSE_EXPRESSION, oldElseExpression, newElseExpression);
+ if (msgs == null)
+ msgs = notification;
+ else
+ msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setElseExpression(Expression newElseExpression) {
+ if (newElseExpression != elseExpression) {
+ NotificationChain msgs = null;
+ if (elseExpression != null)
+ msgs = ((InternalEObject) elseExpression).eInverseRemove(this,
+ EOPPOSITE_FEATURE_BASE - RBACorePackage.IF_STATEMENT__ELSE_EXPRESSION, null, msgs);
+ if (newElseExpression != null)
+ msgs = ((InternalEObject) newElseExpression).eInverseAdd(this,
+ EOPPOSITE_FEATURE_BASE - RBACorePackage.IF_STATEMENT__ELSE_EXPRESSION, null, msgs);
+ msgs = basicSetElseExpression(newElseExpression, msgs);
+ if (msgs != null)
+ msgs.dispatch();
+ } else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RBACorePackage.IF_STATEMENT__ELSE_EXPRESSION,
+ newElseExpression, newElseExpression));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ if (thenExpression != null) {
+ return thenExpression.getUnderlyingType();
+ }
+ return ExpressionType.VALUE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ StringBuffer expressionText = new StringBuffer();
+ expressionText.append("IF(");
+ expressionText.append(condition != null ? condition.getExpressionText() : "[Invalid_Expression]");
+ expressionText.append(") THEN ");
+ expressionText.append(thenExpression != null ? thenExpression.getExpressionText() : "[Invalid_Expression]");
+ expressionText.append(" ELSE ");
+ expressionText.append(elseExpression != null ? elseExpression.getExpressionText() : "[Invalid_Expression]");
+ return expressionText.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case RBACorePackage.IF_STATEMENT__CONDITION:
+ return basicSetCondition(null, msgs);
+ case RBACorePackage.IF_STATEMENT__THEN_EXPRESSION:
+ return basicSetThenExpression(null, msgs);
+ case RBACorePackage.IF_STATEMENT__ELSE_EXPRESSION:
+ return basicSetElseExpression(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 RBACorePackage.IF_STATEMENT__CONDITION:
+ return getCondition();
+ case RBACorePackage.IF_STATEMENT__THEN_EXPRESSION:
+ return getThenExpression();
+ case RBACorePackage.IF_STATEMENT__ELSE_EXPRESSION:
+ return getElseExpression();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case RBACorePackage.IF_STATEMENT__CONDITION:
+ setCondition((Expression) newValue);
+ return;
+ case RBACorePackage.IF_STATEMENT__THEN_EXPRESSION:
+ setThenExpression((Expression) newValue);
+ return;
+ case RBACorePackage.IF_STATEMENT__ELSE_EXPRESSION:
+ setElseExpression((Expression) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.IF_STATEMENT__CONDITION:
+ setCondition((Expression) null);
+ return;
+ case RBACorePackage.IF_STATEMENT__THEN_EXPRESSION:
+ setThenExpression((Expression) null);
+ return;
+ case RBACorePackage.IF_STATEMENT__ELSE_EXPRESSION:
+ setElseExpression((Expression) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.IF_STATEMENT__CONDITION:
+ return condition != null;
+ case RBACorePackage.IF_STATEMENT__THEN_EXPRESSION:
+ return thenExpression != null;
+ case RBACorePackage.IF_STATEMENT__ELSE_EXPRESSION:
+ return elseExpression != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.IF_STATEMENT___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ case RBACorePackage.IF_STATEMENT___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // IfStatementImpl
diff --git a/rba.model.core/src/rba/core/impl/ImpliesOperatorImpl.java b/rba.model.core/src/rba/core/impl/ImpliesOperatorImpl.java
new file mode 100644
index 0000000..d48ab99
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/ImpliesOperatorImpl.java
@@ -0,0 +1,58 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.ImpliesOperator;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Implies Operator</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class ImpliesOperatorImpl extends LogicalOperatorImpl implements ImpliesOperator {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected ImpliesOperatorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.IMPLIES_OPERATOR;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return "->";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.IMPLIES_OPERATOR___GET_SYMBOL:
+ return getSymbol();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // ImpliesOperatorImpl
diff --git a/rba.model.core/src/rba/core/impl/IntegerPropertyImpl.java b/rba.model.core/src/rba/core/impl/IntegerPropertyImpl.java
new file mode 100644
index 0000000..3b5b2e9
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/IntegerPropertyImpl.java
@@ -0,0 +1,170 @@
+/**
+ */
+package rba.core.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 rba.core.Expression;
+import rba.core.IntegerProperty;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Integer Property</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.impl.IntegerPropertyImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class IntegerPropertyImpl extends AbstractPropertyImpl implements IntegerProperty {
+ /**
+ * The cached value of the '{@link #getValue() <em>Value</em>}' containment reference.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected Expression value;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected IntegerPropertyImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.INTEGER_PROPERTY;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public Expression getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetValue(Expression newValue, NotificationChain msgs) {
+ Expression oldValue = value;
+ value = newValue;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
+ RBACorePackage.INTEGER_PROPERTY__VALUE, oldValue, newValue);
+ if (msgs == null)
+ msgs = notification;
+ else
+ msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setValue(Expression newValue) {
+ if (newValue != value) {
+ NotificationChain msgs = null;
+ if (value != null)
+ msgs = ((InternalEObject) value).eInverseRemove(this,
+ EOPPOSITE_FEATURE_BASE - RBACorePackage.INTEGER_PROPERTY__VALUE, null, msgs);
+ if (newValue != null)
+ msgs = ((InternalEObject) newValue).eInverseAdd(this,
+ EOPPOSITE_FEATURE_BASE - RBACorePackage.INTEGER_PROPERTY__VALUE, null, msgs);
+ msgs = basicSetValue(newValue, msgs);
+ if (msgs != null)
+ msgs.dispatch();
+ } else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RBACorePackage.INTEGER_PROPERTY__VALUE, newValue,
+ newValue));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case RBACorePackage.INTEGER_PROPERTY__VALUE:
+ return basicSetValue(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 RBACorePackage.INTEGER_PROPERTY__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 RBACorePackage.INTEGER_PROPERTY__VALUE:
+ setValue((Expression) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.INTEGER_PROPERTY__VALUE:
+ setValue((Expression) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.INTEGER_PROPERTY__VALUE:
+ return value != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // IntegerPropertyImpl
diff --git a/rba.model.core/src/rba/core/impl/IntegerValueImpl.java b/rba.model.core/src/rba/core/impl/IntegerValueImpl.java
new file mode 100644
index 0000000..e62d28e
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/IntegerValueImpl.java
@@ -0,0 +1,186 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+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 rba.core.IntegerValue;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Integer Value</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.impl.IntegerValueImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class IntegerValueImpl extends ValueExpressionImpl implements IntegerValue {
+ /**
+ * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected static final int VALUE_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected int value = VALUE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected IntegerValueImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.INTEGER_VALUE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setValue(int newValue) {
+ int oldValue = value;
+ value = newValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RBACorePackage.INTEGER_VALUE__VALUE, oldValue,
+ value));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ return String.valueOf(value);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public int getExpressionValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case RBACorePackage.INTEGER_VALUE__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 RBACorePackage.INTEGER_VALUE__VALUE:
+ setValue((Integer) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.INTEGER_VALUE__VALUE:
+ setValue(VALUE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.INTEGER_VALUE__VALUE:
+ return value != VALUE_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.INTEGER_VALUE___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ case RBACorePackage.INTEGER_VALUE___GET_EXPRESSION_VALUE:
+ return getExpressionValue();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+ /**
+ * <!-- 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();
+ }
+
+} // IntegerValueImpl
diff --git a/rba.model.core/src/rba/core/impl/IsActiveImpl.java b/rba.model.core/src/rba/core/impl/IsActiveImpl.java
new file mode 100644
index 0000000..23310da
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/IsActiveImpl.java
@@ -0,0 +1,69 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.ExpressionType;
+import rba.core.IsActive;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Is Active</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class IsActiveImpl extends ContentOperatorImpl implements IsActive {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected IsActiveImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.IS_ACTIVE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return ".isActive()";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return ExpressionType.BOOLEAN;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.IS_ACTIVE___GET_SYMBOL:
+ return getSymbol();
+ case RBACorePackage.IS_ACTIVE___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // IsActiveImpl
diff --git a/rba.model.core/src/rba/core/impl/IsAllocatedToImpl.java b/rba.model.core/src/rba/core/impl/IsAllocatedToImpl.java
new file mode 100644
index 0000000..901be5b
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/IsAllocatedToImpl.java
@@ -0,0 +1,171 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.AllocatedContent;
+import rba.core.ContentOperator;
+import rba.core.Expression;
+import rba.core.ExpressionType;
+import rba.core.IsAllocatedTo;
+import rba.core.ObjectCompare;
+import rba.core.Operator;
+import rba.core.RBACoreFactory;
+import rba.core.RBACorePackage;
+import rba.core.SugarExpression;
+import rba.core.SugarExpressionBase;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Is Allocated To</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class IsAllocatedToImpl extends ContentOperatorImpl implements IsAllocatedTo {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected IsAllocatedToImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.IS_ALLOCATED_TO;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return ".isAllocatedTo";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return ExpressionType.BOOLEAN;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ StringBuilder expressionText = new StringBuilder();
+ EList<rba.core.Expression> expressions = getOperand();
+ expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : "[Invalid_Expression]");
+ expressionText.append(getSymbol());
+ expressionText.append("(");
+ expressionText.append(expressions.size() > 1 ? expressions.get(1).getExpressionText() : "[Invalid_Expression]");
+ expressionText.append(")");
+ return expressionText.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean canExpand() {
+ return true;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Expression getExpanded() {
+ ObjectCompare compare = RBACoreFactory.eINSTANCE.createObjectCompare();
+ AllocatedContent content = RBACoreFactory.eINSTANCE.createAllocatedContent();
+ content.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(getOperand().get(1)));
+ compare.getOperand().add(content);
+ compare.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(getOperand().get(0)));
+ return compare;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
+ if (baseClass == Expression.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.EXPRESSION___GET_UNDERLYING_TYPE:
+ return RBACorePackage.IS_ALLOCATED_TO___GET_UNDERLYING_TYPE;
+ case RBACorePackage.EXPRESSION___GET_EXPRESSION_TEXT:
+ return RBACorePackage.IS_ALLOCATED_TO___GET_EXPRESSION_TEXT;
+ default:
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+ }
+ if (baseClass == Operator.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.OPERATOR___GET_SYMBOL:
+ return RBACorePackage.IS_ALLOCATED_TO___GET_SYMBOL;
+ default:
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+ }
+ if (baseClass == ContentOperator.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.CONTENT_OPERATOR___GET_EXPRESSION_TEXT:
+ return RBACorePackage.IS_ALLOCATED_TO___GET_EXPRESSION_TEXT;
+ default:
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+ }
+ if (baseClass == SugarExpression.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.SUGAR_EXPRESSION___CAN_EXPAND:
+ return RBACorePackage.IS_ALLOCATED_TO___CAN_EXPAND;
+ case RBACorePackage.SUGAR_EXPRESSION___GET_EXPANDED:
+ return RBACorePackage.IS_ALLOCATED_TO___GET_EXPANDED;
+ default:
+ return -1;
+ }
+ }
+ if (baseClass == SugarExpressionBase.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.SUGAR_EXPRESSION_BASE___CAN_EXPAND:
+ return RBACorePackage.IS_ALLOCATED_TO___CAN_EXPAND;
+ default:
+ return -1;
+ }
+ }
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.IS_ALLOCATED_TO___GET_SYMBOL:
+ return getSymbol();
+ case RBACorePackage.IS_ALLOCATED_TO___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ case RBACorePackage.IS_ALLOCATED_TO___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ case RBACorePackage.IS_ALLOCATED_TO___CAN_EXPAND:
+ return canExpand();
+ case RBACorePackage.IS_ALLOCATED_TO___GET_EXPANDED:
+ return getExpanded();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // IsAllocatedToImpl
diff --git a/rba.model.core/src/rba/core/impl/IsChangedImpl.java b/rba.model.core/src/rba/core/impl/IsChangedImpl.java
new file mode 100644
index 0000000..1ae8bdf
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/IsChangedImpl.java
@@ -0,0 +1,156 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.AllocatedContent;
+import rba.core.Expression;
+import rba.core.ExpressionType;
+import rba.core.IsChanged;
+import rba.core.NotOperator;
+import rba.core.ObjectCompare;
+import rba.core.ObjectReference;
+import rba.core.Operator;
+import rba.core.PreviousModifier;
+import rba.core.RBACoreFactory;
+import rba.core.RBACorePackage;
+import rba.core.SugarExpression;
+import rba.core.SugarExpressionBase;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Is Changed</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class IsChangedImpl extends AllocatableOperatorImpl implements IsChanged {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected IsChangedImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.IS_CHANGED;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return ".isChanged()";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return ExpressionType.BOOLEAN;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean canExpand() {
+ return true;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Expression getExpanded() {
+ NotOperator not = RBACoreFactory.eINSTANCE.createNotOperator();
+ ObjectCompare equal = RBACoreFactory.eINSTANCE.createObjectCompare();
+ AllocatedContent content = RBACoreFactory.eINSTANCE.createAllocatedContent();
+ PreviousModifier preModifier = RBACoreFactory.eINSTANCE.createPreviousModifier();
+
+ preModifier.setObjReference((ObjectReference) org.eclipse.emf.ecore.util.EcoreUtil.copy(getOperand().get(0)));
+ content.getOperand().add(preModifier);
+ equal.getOperand().add(content);
+
+ content = RBACoreFactory.eINSTANCE.createAllocatedContent();
+ content.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(getOperand().get(0)));
+
+ equal.getOperand().add(content);
+ not.getOperand().add(equal);
+ return not;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
+ if (baseClass == Expression.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.EXPRESSION___GET_UNDERLYING_TYPE:
+ return RBACorePackage.IS_CHANGED___GET_UNDERLYING_TYPE;
+ default:
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+ }
+ if (baseClass == Operator.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.OPERATOR___GET_SYMBOL:
+ return RBACorePackage.IS_CHANGED___GET_SYMBOL;
+ default:
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+ }
+ if (baseClass == SugarExpression.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.SUGAR_EXPRESSION___CAN_EXPAND:
+ return RBACorePackage.IS_CHANGED___CAN_EXPAND;
+ case RBACorePackage.SUGAR_EXPRESSION___GET_EXPANDED:
+ return RBACorePackage.IS_CHANGED___GET_EXPANDED;
+ default:
+ return -1;
+ }
+ }
+ if (baseClass == SugarExpressionBase.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.SUGAR_EXPRESSION_BASE___CAN_EXPAND:
+ return RBACorePackage.IS_CHANGED___CAN_EXPAND;
+ default:
+ return -1;
+ }
+ }
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.IS_CHANGED___GET_SYMBOL:
+ return getSymbol();
+ case RBACorePackage.IS_CHANGED___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ case RBACorePackage.IS_CHANGED___CAN_EXPAND:
+ return canExpand();
+ case RBACorePackage.IS_CHANGED___GET_EXPANDED:
+ return getExpanded();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // IsChangedImpl
diff --git a/rba.model.core/src/rba/core/impl/IsEqualToOperatorImpl.java b/rba.model.core/src/rba/core/impl/IsEqualToOperatorImpl.java
new file mode 100644
index 0000000..3b5869b
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/IsEqualToOperatorImpl.java
@@ -0,0 +1,58 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.IsEqualToOperator;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Is Equal To Operator</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class IsEqualToOperatorImpl extends LogicalOperatorImpl implements IsEqualToOperator {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected IsEqualToOperatorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.IS_EQUAL_TO_OPERATOR;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return "=";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.IS_EQUAL_TO_OPERATOR___GET_SYMBOL:
+ return getSymbol();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // IsEqualToOperatorImpl
diff --git a/rba.model.core/src/rba/core/impl/IsGreaterThanEqualOperatorImpl.java b/rba.model.core/src/rba/core/impl/IsGreaterThanEqualOperatorImpl.java
new file mode 100644
index 0000000..218422b
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/IsGreaterThanEqualOperatorImpl.java
@@ -0,0 +1,59 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.IsGreaterThanEqualOperator;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Is Greater Than Equal Operator</b></em>'. <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+public class IsGreaterThanEqualOperatorImpl extends LogicalOperatorImpl implements IsGreaterThanEqualOperator {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected IsGreaterThanEqualOperatorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.IS_GREATER_THAN_EQUAL_OPERATOR;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return ">=";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.IS_GREATER_THAN_EQUAL_OPERATOR___GET_SYMBOL:
+ return getSymbol();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // IsGreaterThanEqualOperatorImpl
diff --git a/rba.model.core/src/rba/core/impl/IsGreaterThanOperatorImpl.java b/rba.model.core/src/rba/core/impl/IsGreaterThanOperatorImpl.java
new file mode 100644
index 0000000..3746b0b
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/IsGreaterThanOperatorImpl.java
@@ -0,0 +1,58 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.IsGreaterThanOperator;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Is Greater Than Operator</b></em>'. <!-- end-user-doc
+ * -->
+ * @generated
+ */
+public class IsGreaterThanOperatorImpl extends LogicalOperatorImpl implements IsGreaterThanOperator {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected IsGreaterThanOperatorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.IS_GREATER_THAN_OPERATOR;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return ">";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.IS_GREATER_THAN_OPERATOR___GET_SYMBOL:
+ return getSymbol();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // IsGreaterThanOperatorImpl
diff --git a/rba.model.core/src/rba/core/impl/IsLowerThanEqualOperatorImpl.java b/rba.model.core/src/rba/core/impl/IsLowerThanEqualOperatorImpl.java
new file mode 100644
index 0000000..27d8d48
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/IsLowerThanEqualOperatorImpl.java
@@ -0,0 +1,59 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.IsLowerThanEqualOperator;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Is Lower Than Equal Operator</b></em>'. <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+public class IsLowerThanEqualOperatorImpl extends LogicalOperatorImpl implements IsLowerThanEqualOperator {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected IsLowerThanEqualOperatorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.IS_LOWER_THAN_EQUAL_OPERATOR;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return "<=";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.IS_LOWER_THAN_EQUAL_OPERATOR___GET_SYMBOL:
+ return getSymbol();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // IsLowerThanEqualOperatorImpl
diff --git a/rba.model.core/src/rba/core/impl/IsLowerThanOperatorImpl.java b/rba.model.core/src/rba/core/impl/IsLowerThanOperatorImpl.java
new file mode 100644
index 0000000..e4813ee
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/IsLowerThanOperatorImpl.java
@@ -0,0 +1,58 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.IsLowerThanOperator;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Is Lower Than Operator</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class IsLowerThanOperatorImpl extends LogicalOperatorImpl implements IsLowerThanOperator {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected IsLowerThanOperatorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.IS_LOWER_THAN_OPERATOR;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return "<";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.IS_LOWER_THAN_OPERATOR___GET_SYMBOL:
+ return getSymbol();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // IsLowerThanOperatorImpl
diff --git a/rba.model.core/src/rba/core/impl/IsOnImpl.java b/rba.model.core/src/rba/core/impl/IsOnImpl.java
new file mode 100644
index 0000000..2894799
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/IsOnImpl.java
@@ -0,0 +1,69 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.ExpressionType;
+import rba.core.IsOn;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Is On</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class IsOnImpl extends SceneOperatorImpl implements IsOn {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected IsOnImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.IS_ON;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return ".isOn()";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return ExpressionType.BOOLEAN;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.IS_ON___GET_SYMBOL:
+ return getSymbol();
+ case RBACorePackage.IS_ON___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // IsOnImpl
diff --git a/rba.model.core/src/rba/core/impl/IsTranslatedToImpl.java b/rba.model.core/src/rba/core/impl/IsTranslatedToImpl.java
new file mode 100644
index 0000000..fe93499
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/IsTranslatedToImpl.java
@@ -0,0 +1,191 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.AllocatableOperator;
+import rba.core.AllocatedContent;
+import rba.core.AndOperator;
+import rba.core.Expression;
+import rba.core.ExpressionType;
+import rba.core.IsTranslatedTo;
+import rba.core.NotOperator;
+import rba.core.ObjectCompare;
+import rba.core.ObjectReference;
+import rba.core.Operator;
+import rba.core.PreviousModifier;
+import rba.core.RBACoreFactory;
+import rba.core.RBACorePackage;
+import rba.core.SugarExpression;
+import rba.core.SugarExpressionBase;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Is Translated To</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class IsTranslatedToImpl extends AllocatableOperatorImpl implements IsTranslatedTo {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected IsTranslatedToImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.IS_TRANSLATED_TO;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return ".isTranslatedTo";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return ExpressionType.BOOLEAN;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ StringBuilder expressionText = new StringBuilder();
+ EList<rba.core.Expression> expressions = getOperand();
+ expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : "[Invalid_Expression]");
+ expressionText.append(getSymbol());
+ expressionText.append("(");
+ expressionText.append(expressions.size() > 1 ? expressions.get(1).getExpressionText() : "[Invalid_Expression]");
+ expressionText.append(")");
+ return expressionText.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean canExpand() {
+ return true;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Expression getExpanded() {
+ AndOperator AND = RBACoreFactory.eINSTANCE.createAndOperator();
+ NotOperator not = RBACoreFactory.eINSTANCE.createNotOperator();
+ ObjectCompare equal = RBACoreFactory.eINSTANCE.createObjectCompare();
+ AllocatedContent content = RBACoreFactory.eINSTANCE.createAllocatedContent();
+ PreviousModifier preModifier = RBACoreFactory.eINSTANCE.createPreviousModifier();
+
+ preModifier.setObjReference((ObjectReference) org.eclipse.emf.ecore.util.EcoreUtil.copy(getOperand().get(0)));
+ content.getOperand().add(preModifier);
+ equal.getOperand().add(content);
+ equal.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(getOperand().get(1)));
+ not.getOperand().add(equal);
+ AND.getOperand().add(not);
+
+ content = RBACoreFactory.eINSTANCE.createAllocatedContent();
+ equal = RBACoreFactory.eINSTANCE.createObjectCompare();
+
+ content.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(getOperand().get(0)));
+ equal.getOperand().add(content);
+ equal.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(getOperand().get(1)));
+
+ AND.getOperand().add(equal);
+ return AND;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
+ if (baseClass == Expression.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.EXPRESSION___GET_UNDERLYING_TYPE:
+ return RBACorePackage.IS_TRANSLATED_TO___GET_UNDERLYING_TYPE;
+ case RBACorePackage.EXPRESSION___GET_EXPRESSION_TEXT:
+ return RBACorePackage.IS_TRANSLATED_TO___GET_EXPRESSION_TEXT;
+ default:
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+ }
+ if (baseClass == Operator.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.OPERATOR___GET_SYMBOL:
+ return RBACorePackage.IS_TRANSLATED_TO___GET_SYMBOL;
+ default:
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+ }
+ if (baseClass == AllocatableOperator.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.ALLOCATABLE_OPERATOR___GET_EXPRESSION_TEXT:
+ return RBACorePackage.IS_TRANSLATED_TO___GET_EXPRESSION_TEXT;
+ default:
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+ }
+ if (baseClass == SugarExpression.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.SUGAR_EXPRESSION___CAN_EXPAND:
+ return RBACorePackage.IS_TRANSLATED_TO___CAN_EXPAND;
+ case RBACorePackage.SUGAR_EXPRESSION___GET_EXPANDED:
+ return RBACorePackage.IS_TRANSLATED_TO___GET_EXPANDED;
+ default:
+ return -1;
+ }
+ }
+ if (baseClass == SugarExpressionBase.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.SUGAR_EXPRESSION_BASE___CAN_EXPAND:
+ return RBACorePackage.IS_TRANSLATED_TO___CAN_EXPAND;
+ default:
+ return -1;
+ }
+ }
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.IS_TRANSLATED_TO___GET_SYMBOL:
+ return getSymbol();
+ case RBACorePackage.IS_TRANSLATED_TO___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ case RBACorePackage.IS_TRANSLATED_TO___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ case RBACorePackage.IS_TRANSLATED_TO___CAN_EXPAND:
+ return canExpand();
+ case RBACorePackage.IS_TRANSLATED_TO___GET_EXPANDED:
+ return getExpanded();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // IsTranslatedToImpl
diff --git a/rba.model.core/src/rba/core/impl/IsTypeOfImpl.java b/rba.model.core/src/rba/core/impl/IsTypeOfImpl.java
new file mode 100644
index 0000000..2174a0b
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/IsTypeOfImpl.java
@@ -0,0 +1,202 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+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 rba.core.ExpressionType;
+import rba.core.IsTypeOf;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Is Type Of</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.impl.IsTypeOfImpl#getTagName <em>Tag Name</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class IsTypeOfImpl extends OperatorImpl implements IsTypeOf {
+ /**
+ * The default value of the '{@link #getTagName() <em>Tag Name</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @see #getTagName()
+ * @generated
+ * @ordered
+ */
+ protected static final String TAG_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getTagName() <em>Tag Name</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @see #getTagName()
+ * @generated
+ * @ordered
+ */
+ protected String tagName = TAG_NAME_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected IsTypeOfImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.IS_TYPE_OF;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getTagName() {
+ return tagName;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTagName(String newTagName) {
+ String oldTagName = tagName;
+ tagName = newTagName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RBACorePackage.IS_TYPE_OF__TAG_NAME, oldTagName,
+ tagName));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ StringBuffer expressionText = new StringBuffer();
+ EList<rba.core.Expression> expressions = getOperand();
+ expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : "[Invalid_Expression]");
+ expressionText.append(getSymbol());
+ expressionText.append("(");
+ expressionText.append(tagName != null ? tagName : "");
+ expressionText.append(")");
+ return expressionText.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return ".isTypeOf";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return ExpressionType.BOOLEAN;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case RBACorePackage.IS_TYPE_OF__TAG_NAME:
+ return getTagName();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case RBACorePackage.IS_TYPE_OF__TAG_NAME:
+ setTagName((String) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.IS_TYPE_OF__TAG_NAME:
+ setTagName(TAG_NAME_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.IS_TYPE_OF__TAG_NAME:
+ return TAG_NAME_EDEFAULT == null ? tagName != null : !TAG_NAME_EDEFAULT.equals(tagName);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.IS_TYPE_OF___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ case RBACorePackage.IS_TYPE_OF___GET_SYMBOL:
+ return getSymbol();
+ case RBACorePackage.IS_TYPE_OF___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy())
+ return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (tagName: ");
+ result.append(tagName);
+ result.append(')');
+ return result.toString();
+ }
+
+} // IsTypeOfImpl
diff --git a/rba.model.core/src/rba/core/impl/LambdaContextImpl.java b/rba.model.core/src/rba/core/impl/LambdaContextImpl.java
new file mode 100644
index 0000000..49b5291
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/LambdaContextImpl.java
@@ -0,0 +1,224 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+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 rba.core.ExpressionType;
+import rba.core.LambdaContext;
+import rba.core.LambdaExpression;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Lambda Context</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.impl.LambdaContextImpl#getLambda <em>Lambda</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class LambdaContextImpl extends SetOperatorImpl implements LambdaContext {
+ /**
+ * The cached value of the '{@link #getLambda() <em>Lambda</em>}' containment reference.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @see #getLambda()
+ * @generated
+ * @ordered
+ */
+ protected LambdaExpression lambda;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected LambdaContextImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.LAMBDA_CONTEXT;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public LambdaExpression getLambda() {
+ return lambda;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetLambda(LambdaExpression newLambda, NotificationChain msgs) {
+ LambdaExpression oldLambda = lambda;
+ lambda = newLambda;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
+ RBACorePackage.LAMBDA_CONTEXT__LAMBDA, oldLambda, newLambda);
+ if (msgs == null)
+ msgs = notification;
+ else
+ msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLambda(LambdaExpression newLambda) {
+ if (newLambda != lambda) {
+ NotificationChain msgs = null;
+ if (lambda != null)
+ msgs = ((InternalEObject) lambda).eInverseRemove(this, RBACorePackage.LAMBDA_EXPRESSION__CONTEXT,
+ LambdaExpression.class, msgs);
+ if (newLambda != null)
+ msgs = ((InternalEObject) newLambda).eInverseAdd(this, RBACorePackage.LAMBDA_EXPRESSION__CONTEXT,
+ LambdaExpression.class, msgs);
+ msgs = basicSetLambda(newLambda, msgs);
+ if (msgs != null)
+ msgs.dispatch();
+ } else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RBACorePackage.LAMBDA_CONTEXT__LAMBDA, newLambda,
+ newLambda));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getContextType() {
+ if (!getOperand().isEmpty()) {
+ rba.core.Expression first = getOperand().get(0);
+ if (first.getType() == ExpressionType.SET_OF_CONTENT) {
+ return ExpressionType.CONTENT;
+ } else if (first.getType() == ExpressionType.SET_OF_AREA) {
+ return ExpressionType.AREA;
+ } else if (first.getType() == ExpressionType.SET_OF_ZONE) {
+ return ExpressionType.ZONE;
+ } else if (first.getType() == ExpressionType.SET_OF_SOUND) {
+ return ExpressionType.SOUND;
+ } else {
+ return first.getType();
+ }
+ }
+
+ return ExpressionType.VALUE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case RBACorePackage.LAMBDA_CONTEXT__LAMBDA:
+ if (lambda != null)
+ msgs = ((InternalEObject) lambda).eInverseRemove(this,
+ EOPPOSITE_FEATURE_BASE - RBACorePackage.LAMBDA_CONTEXT__LAMBDA, null, msgs);
+ return basicSetLambda((LambdaExpression) otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case RBACorePackage.LAMBDA_CONTEXT__LAMBDA:
+ return basicSetLambda(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 RBACorePackage.LAMBDA_CONTEXT__LAMBDA:
+ return getLambda();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case RBACorePackage.LAMBDA_CONTEXT__LAMBDA:
+ setLambda((LambdaExpression) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.LAMBDA_CONTEXT__LAMBDA:
+ setLambda((LambdaExpression) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.LAMBDA_CONTEXT__LAMBDA:
+ return lambda != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.LAMBDA_CONTEXT___GET_CONTEXT_TYPE:
+ return getContextType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // LambdaContextImpl
diff --git a/rba.model.core/src/rba/core/impl/LambdaExpressionImpl.java b/rba.model.core/src/rba/core/impl/LambdaExpressionImpl.java
new file mode 100644
index 0000000..7828524
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/LambdaExpressionImpl.java
@@ -0,0 +1,370 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+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.EcoreUtil;
+import rba.core.Expression;
+import rba.core.ExpressionType;
+import rba.core.LambdaContext;
+import rba.core.LambdaExpression;
+import rba.core.RBACorePackage;
+import rba.core.Variable;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Lambda Expression</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.impl.LambdaExpressionImpl#getContext <em>Context</em>}</li>
+ * <li>{@link rba.core.impl.LambdaExpressionImpl#getX <em>X</em>}</li>
+ * <li>{@link rba.core.impl.LambdaExpressionImpl#getBodyText <em>Body Text</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class LambdaExpressionImpl extends ExpressionImpl implements LambdaExpression {
+ /**
+ * The cached value of the '{@link #getX() <em>X</em>}' containment reference.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see #getX()
+ * @generated
+ * @ordered
+ */
+ protected Variable x;
+
+ /**
+ * The cached value of the '{@link #getBodyText() <em>Body Text</em>}' containment reference.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @see #getBodyText()
+ * @generated
+ * @ordered
+ */
+ protected Expression bodyText;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected LambdaExpressionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.LAMBDA_EXPRESSION;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public LambdaContext getContext() {
+ if (eContainerFeatureID() != RBACorePackage.LAMBDA_EXPRESSION__CONTEXT)
+ return null;
+ return (LambdaContext) eInternalContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetContext(LambdaContext newContext, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject) newContext, RBACorePackage.LAMBDA_EXPRESSION__CONTEXT, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setContext(LambdaContext newContext) {
+ if (newContext != eInternalContainer()
+ || (eContainerFeatureID() != RBACorePackage.LAMBDA_EXPRESSION__CONTEXT && newContext != null)) {
+ if (EcoreUtil.isAncestor(this, newContext))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newContext != null)
+ msgs = ((InternalEObject) newContext).eInverseAdd(this, RBACorePackage.LAMBDA_CONTEXT__LAMBDA,
+ LambdaContext.class, msgs);
+ msgs = basicSetContext(newContext, msgs);
+ if (msgs != null)
+ msgs.dispatch();
+ } else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RBACorePackage.LAMBDA_EXPRESSION__CONTEXT, newContext,
+ newContext));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public Variable getX() {
+ return x;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetX(Variable newX, NotificationChain msgs) {
+ Variable oldX = x;
+ x = newX;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
+ RBACorePackage.LAMBDA_EXPRESSION__X, oldX, newX);
+ if (msgs == null)
+ msgs = notification;
+ else
+ msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setX(Variable newX) {
+ if (newX != x) {
+ NotificationChain msgs = null;
+ if (x != null)
+ msgs = ((InternalEObject) x).eInverseRemove(this,
+ EOPPOSITE_FEATURE_BASE - RBACorePackage.LAMBDA_EXPRESSION__X, null, msgs);
+ if (newX != null)
+ msgs = ((InternalEObject) newX).eInverseAdd(this,
+ EOPPOSITE_FEATURE_BASE - RBACorePackage.LAMBDA_EXPRESSION__X, null, msgs);
+ msgs = basicSetX(newX, msgs);
+ if (msgs != null)
+ msgs.dispatch();
+ } else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RBACorePackage.LAMBDA_EXPRESSION__X, newX, newX));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Expression getBodyText() {
+ if (bodyText != null)
+ bodyText.getLetStatements().addAll(getLetStatements());
+ return bodyText;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetBodyText(Expression newBodyText, NotificationChain msgs) {
+ Expression oldBodyText = bodyText;
+ bodyText = newBodyText;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
+ RBACorePackage.LAMBDA_EXPRESSION__BODY_TEXT, oldBodyText, newBodyText);
+ if (msgs == null)
+ msgs = notification;
+ else
+ msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBodyText(Expression newBodyText) {
+ if (newBodyText != bodyText) {
+ NotificationChain msgs = null;
+ if (bodyText != null)
+ msgs = ((InternalEObject) bodyText).eInverseRemove(this,
+ EOPPOSITE_FEATURE_BASE - RBACorePackage.LAMBDA_EXPRESSION__BODY_TEXT, null, msgs);
+ if (newBodyText != null)
+ msgs = ((InternalEObject) newBodyText).eInverseAdd(this,
+ EOPPOSITE_FEATURE_BASE - RBACorePackage.LAMBDA_EXPRESSION__BODY_TEXT, null, msgs);
+ msgs = basicSetBodyText(newBodyText, msgs);
+ if (msgs != null)
+ msgs.dispatch();
+ } else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RBACorePackage.LAMBDA_EXPRESSION__BODY_TEXT,
+ newBodyText, newBodyText));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ StringBuilder expressionText = new StringBuilder();
+ expressionText.append("{ ");
+ expressionText.append(x != null ? x.getName() : "[Invalid_Expression]");
+ expressionText.append(" | ");
+ getLetStatements().forEach(let -> expressionText.append(let));
+ expressionText.append(bodyText != null ? bodyText.getExpressionText() : "[Invalid_Expression]");
+ expressionText.append(" }");
+ return expressionText.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return ExpressionType.LAMBDA;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case RBACorePackage.LAMBDA_EXPRESSION__CONTEXT:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetContext((LambdaContext) otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case RBACorePackage.LAMBDA_EXPRESSION__CONTEXT:
+ return basicSetContext(null, msgs);
+ case RBACorePackage.LAMBDA_EXPRESSION__X:
+ return basicSetX(null, msgs);
+ case RBACorePackage.LAMBDA_EXPRESSION__BODY_TEXT:
+ return basicSetBodyText(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case RBACorePackage.LAMBDA_EXPRESSION__CONTEXT:
+ return eInternalContainer().eInverseRemove(this, RBACorePackage.LAMBDA_CONTEXT__LAMBDA, LambdaContext.class,
+ msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case RBACorePackage.LAMBDA_EXPRESSION__CONTEXT:
+ return getContext();
+ case RBACorePackage.LAMBDA_EXPRESSION__X:
+ return getX();
+ case RBACorePackage.LAMBDA_EXPRESSION__BODY_TEXT:
+ return getBodyText();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case RBACorePackage.LAMBDA_EXPRESSION__CONTEXT:
+ setContext((LambdaContext) newValue);
+ return;
+ case RBACorePackage.LAMBDA_EXPRESSION__X:
+ setX((Variable) newValue);
+ return;
+ case RBACorePackage.LAMBDA_EXPRESSION__BODY_TEXT:
+ setBodyText((Expression) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.LAMBDA_EXPRESSION__CONTEXT:
+ setContext((LambdaContext) null);
+ return;
+ case RBACorePackage.LAMBDA_EXPRESSION__X:
+ setX((Variable) null);
+ return;
+ case RBACorePackage.LAMBDA_EXPRESSION__BODY_TEXT:
+ setBodyText((Expression) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.LAMBDA_EXPRESSION__CONTEXT:
+ return getContext() != null;
+ case RBACorePackage.LAMBDA_EXPRESSION__X:
+ return x != null;
+ case RBACorePackage.LAMBDA_EXPRESSION__BODY_TEXT:
+ return bodyText != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.LAMBDA_EXPRESSION___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ case RBACorePackage.LAMBDA_EXPRESSION___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // LambdaExpressionImpl
diff --git a/rba.model.core/src/rba/core/impl/LetStatementImpl.java b/rba.model.core/src/rba/core/impl/LetStatementImpl.java
new file mode 100644
index 0000000..53f62aa
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/LetStatementImpl.java
@@ -0,0 +1,268 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+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 rba.core.Expression;
+import rba.core.LetStatement;
+import rba.core.RBACorePackage;
+import rba.core.Variable;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Let Statement</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.impl.LetStatementImpl#getVariable <em>Variable</em>}</li>
+ * <li>{@link rba.core.impl.LetStatementImpl#getBody <em>Body</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class LetStatementImpl extends ModelElementImpl implements LetStatement {
+ /**
+ * The cached value of the '{@link #getVariable() <em>Variable</em>}' containment reference.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @see #getVariable()
+ * @generated
+ * @ordered
+ */
+ protected Variable variable;
+
+ /**
+ * The cached value of the '{@link #getBody() <em>Body</em>}' containment reference.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @see #getBody()
+ * @generated
+ * @ordered
+ */
+ protected Expression body;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected LetStatementImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.LET_STATEMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public Variable getVariable() {
+ return variable;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetVariable(Variable newVariable, NotificationChain msgs) {
+ Variable oldVariable = variable;
+ variable = newVariable;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
+ RBACorePackage.LET_STATEMENT__VARIABLE, oldVariable, newVariable);
+ if (msgs == null)
+ msgs = notification;
+ else
+ msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setVariable(Variable newVariable) {
+ if (newVariable != variable) {
+ NotificationChain msgs = null;
+ if (variable != null)
+ msgs = ((InternalEObject) variable).eInverseRemove(this,
+ EOPPOSITE_FEATURE_BASE - RBACorePackage.LET_STATEMENT__VARIABLE, null, msgs);
+ if (newVariable != null)
+ msgs = ((InternalEObject) newVariable).eInverseAdd(this,
+ EOPPOSITE_FEATURE_BASE - RBACorePackage.LET_STATEMENT__VARIABLE, null, msgs);
+ msgs = basicSetVariable(newVariable, msgs);
+ if (msgs != null)
+ msgs.dispatch();
+ } else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RBACorePackage.LET_STATEMENT__VARIABLE, newVariable,
+ newVariable));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public Expression getBody() {
+ return body;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetBody(Expression newBody, NotificationChain msgs) {
+ Expression oldBody = body;
+ body = newBody;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
+ RBACorePackage.LET_STATEMENT__BODY, oldBody, newBody);
+ if (msgs == null)
+ msgs = notification;
+ else
+ msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBody(Expression newBody) {
+ if (newBody != body) {
+ NotificationChain msgs = null;
+ if (body != null)
+ msgs = ((InternalEObject) body).eInverseRemove(this,
+ EOPPOSITE_FEATURE_BASE - RBACorePackage.LET_STATEMENT__BODY, null, msgs);
+ if (newBody != null)
+ msgs = ((InternalEObject) newBody).eInverseAdd(this,
+ EOPPOSITE_FEATURE_BASE - RBACorePackage.LET_STATEMENT__BODY, null, msgs);
+ msgs = basicSetBody(newBody, msgs);
+ if (msgs != null)
+ msgs.dispatch();
+ } else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RBACorePackage.LET_STATEMENT__BODY, newBody,
+ newBody));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ StringBuilder ret = new StringBuilder();
+ ret.append("let "); //$NON-NLS-1$
+ ret.append(getVariable().getName());
+ ret.append("= "); //$NON-NLS-1$
+ ret.append(getBody().getExpressionText());
+ return ret.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case RBACorePackage.LET_STATEMENT__VARIABLE:
+ return basicSetVariable(null, msgs);
+ case RBACorePackage.LET_STATEMENT__BODY:
+ return basicSetBody(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 RBACorePackage.LET_STATEMENT__VARIABLE:
+ return getVariable();
+ case RBACorePackage.LET_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 RBACorePackage.LET_STATEMENT__VARIABLE:
+ setVariable((Variable) newValue);
+ return;
+ case RBACorePackage.LET_STATEMENT__BODY:
+ setBody((Expression) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.LET_STATEMENT__VARIABLE:
+ setVariable((Variable) null);
+ return;
+ case RBACorePackage.LET_STATEMENT__BODY:
+ setBody((Expression) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.LET_STATEMENT__VARIABLE:
+ return variable != null;
+ case RBACorePackage.LET_STATEMENT__BODY:
+ return body != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.LET_STATEMENT___TO_STRING:
+ return toString();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // LetStatementImpl
diff --git a/rba.model.core/src/rba/core/impl/LogicalOperatorImpl.java b/rba.model.core/src/rba/core/impl/LogicalOperatorImpl.java
new file mode 100644
index 0000000..c919cba
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/LogicalOperatorImpl.java
@@ -0,0 +1,83 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.ExpressionType;
+import rba.core.LogicalOperator;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Logical Operator</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public abstract class LogicalOperatorImpl extends OperatorImpl implements LogicalOperator {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected LogicalOperatorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.LOGICAL_OPERATOR;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return ExpressionType.BOOLEAN;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ StringBuffer expressionText = new StringBuffer();
+ EList<rba.core.Expression> expressions = getOperand();
+ expressionText.append("(");
+ for (int i = 0; i < expressions.size(); i++) {
+ rba.core.Expression expression = expressions.get(i);
+ expressionText.append(expression.getExpressionText());
+ if (i == expressions.size() - 1) {
+ expressionText.append(")");
+ } else {
+ expressionText.append(" ");
+ expressionText.append(getSymbol());
+ expressionText.append(" ");
+ }
+ }
+ return expressionText.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.LOGICAL_OPERATOR___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ case RBACorePackage.LOGICAL_OPERATOR___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // LogicalOperatorImpl
diff --git a/rba.model.core/src/rba/core/impl/LoserTypeExpressionImpl.java b/rba.model.core/src/rba/core/impl/LoserTypeExpressionImpl.java
new file mode 100644
index 0000000..1e5234e
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/LoserTypeExpressionImpl.java
@@ -0,0 +1,192 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.Enumerator;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import rba.core.LoserType;
+import rba.core.LoserTypeExpression;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Loser Type Expression</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.impl.LoserTypeExpressionImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class LoserTypeExpressionImpl extends EnumExpressionImpl implements LoserTypeExpression {
+ /**
+ * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected static final LoserType VALUE_EDEFAULT = LoserType.NEVER_GIVEUP;
+
+ /**
+ * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected LoserType value = VALUE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected LoserTypeExpressionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.LOSER_TYPE_EXPRESSION;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public LoserType getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setValue(LoserType newValue) {
+ LoserType oldValue = value;
+ value = newValue == null ? VALUE_EDEFAULT : newValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RBACorePackage.LOSER_TYPE_EXPRESSION__VALUE, oldValue,
+ value));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ if (value instanceof LoserType) {
+ return value.getName();
+ } else {
+ return "[Invalid_Expression]";
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public Enumerator getExpressionValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case RBACorePackage.LOSER_TYPE_EXPRESSION__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 RBACorePackage.LOSER_TYPE_EXPRESSION__VALUE:
+ setValue((LoserType) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.LOSER_TYPE_EXPRESSION__VALUE:
+ setValue(VALUE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.LOSER_TYPE_EXPRESSION__VALUE:
+ return value != VALUE_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.LOSER_TYPE_EXPRESSION___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ case RBACorePackage.LOSER_TYPE_EXPRESSION___GET_EXPRESSION_VALUE:
+ return getExpressionValue();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+ /**
+ * <!-- 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();
+ }
+
+} // LoserTypeExpressionImpl
diff --git a/rba.model.core/src/rba/core/impl/LowerThanOperatorImpl.java b/rba.model.core/src/rba/core/impl/LowerThanOperatorImpl.java
new file mode 100644
index 0000000..ec69740
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/LowerThanOperatorImpl.java
@@ -0,0 +1,58 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.LowerThanOperator;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Lower Than Operator</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class LowerThanOperatorImpl extends ComparisonOperatorImpl implements LowerThanOperator {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected LowerThanOperatorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.LOWER_THAN_OPERATOR;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return "<";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.LOWER_THAN_OPERATOR___GET_SYMBOL:
+ return getSymbol();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // LowerThanOperatorImpl
diff --git a/rba.model.core/src/rba/core/impl/MaxOperatorImpl.java b/rba.model.core/src/rba/core/impl/MaxOperatorImpl.java
new file mode 100644
index 0000000..681b102
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/MaxOperatorImpl.java
@@ -0,0 +1,87 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.ExpressionType;
+import rba.core.MaxOperator;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Max Operator</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class MaxOperatorImpl extends LambdaContextImpl implements MaxOperator {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected MaxOperatorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.MAX_OPERATOR;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ StringBuffer expressionText = new StringBuffer();
+ EList<rba.core.Expression> expressions = getOperand();
+ rba.core.LambdaExpression lambda = getLambda();
+ expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : "[Invalid_Expression]");
+ expressionText.append(getSymbol());
+ expressionText.append("{ ");
+ expressionText.append(lambda != null ? lambda.getExpressionText() : "[Invalid_Expression]");
+ expressionText.append(" }");
+ return expressionText.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return ".max";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return getContextType();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.MAX_OPERATOR___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ case RBACorePackage.MAX_OPERATOR___GET_SYMBOL:
+ return getSymbol();
+ case RBACorePackage.MAX_OPERATOR___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // MaxOperatorImpl
diff --git a/rba.model.core/src/rba/core/impl/MaxValueImpl.java b/rba.model.core/src/rba/core/impl/MaxValueImpl.java
new file mode 100644
index 0000000..ec458be
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/MaxValueImpl.java
@@ -0,0 +1,68 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.MaxValue;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Max Value</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class MaxValueImpl extends ValueExpressionImpl implements MaxValue {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected MaxValueImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.MAX_VALUE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ return "MAX";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public int getExpressionValue() {
+ return 9999;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.MAX_VALUE___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ case RBACorePackage.MAX_VALUE___GET_EXPRESSION_VALUE:
+ return getExpressionValue();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // MaxValueImpl
diff --git a/rba.model.core/src/rba/core/impl/MinOperatorImpl.java b/rba.model.core/src/rba/core/impl/MinOperatorImpl.java
new file mode 100644
index 0000000..74f572b
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/MinOperatorImpl.java
@@ -0,0 +1,87 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.ExpressionType;
+import rba.core.MinOperator;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Min Operator</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class MinOperatorImpl extends LambdaContextImpl implements MinOperator {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected MinOperatorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.MIN_OPERATOR;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ StringBuffer expressionText = new StringBuffer();
+ EList<rba.core.Expression> expressions = getOperand();
+ rba.core.LambdaExpression lambda = getLambda();
+ expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : "[Invalid_Expression]");
+ expressionText.append(getSymbol());
+ expressionText.append("{ ");
+ expressionText.append(lambda != null ? lambda.getExpressionText() : "[Invalid_Expression]");
+ expressionText.append(" }");
+ return expressionText.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return ".min";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return getContextType();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.MIN_OPERATOR___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ case RBACorePackage.MIN_OPERATOR___GET_SYMBOL:
+ return getSymbol();
+ case RBACorePackage.MIN_OPERATOR___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // MinOperatorImpl
diff --git a/rba.model.core/src/rba/core/impl/MinValueImpl.java b/rba.model.core/src/rba/core/impl/MinValueImpl.java
new file mode 100644
index 0000000..ad28949
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/MinValueImpl.java
@@ -0,0 +1,68 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.MinValue;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Min Value</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class MinValueImpl extends ValueExpressionImpl implements MinValue {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected MinValueImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.MIN_VALUE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ return "MIN";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public int getExpressionValue() {
+ return 0;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.MIN_VALUE___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ case RBACorePackage.MIN_VALUE___GET_EXPRESSION_VALUE:
+ return getExpressionValue();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // MinValueImpl
diff --git a/rba.model.core/src/rba/core/impl/ModelElementImpl.java b/rba.model.core/src/rba/core/impl/ModelElementImpl.java
new file mode 100644
index 0000000..6e77878
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/ModelElementImpl.java
@@ -0,0 +1,154 @@
+/**
+ */
+package rba.core.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import rba.core.ModelElement;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Model Element</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.impl.ModelElementImpl#getDescription <em>Description</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class ModelElementImpl extends MinimalEObjectImpl.Container implements ModelElement {
+ /**
+ * The default value of the '{@link #getDescription() <em>Description</em>}' attribute.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @see #getDescription()
+ * @generated
+ * @ordered
+ */
+ protected static final String DESCRIPTION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @see #getDescription()
+ * @generated
+ * @ordered
+ */
+ protected String description = DESCRIPTION_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected ModelElementImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.MODEL_ELEMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getDescription() {
+ return description;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDescription(String newDescription) {
+ String oldDescription = description;
+ description = newDescription;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RBACorePackage.MODEL_ELEMENT__DESCRIPTION,
+ oldDescription, description));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case RBACorePackage.MODEL_ELEMENT__DESCRIPTION:
+ return getDescription();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case RBACorePackage.MODEL_ELEMENT__DESCRIPTION:
+ setDescription((String) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.MODEL_ELEMENT__DESCRIPTION:
+ setDescription(DESCRIPTION_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.MODEL_ELEMENT__DESCRIPTION:
+ return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
+ }
+ 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(" (description: ");
+ result.append(description);
+ result.append(')');
+ return result.toString();
+ }
+
+} // ModelElementImpl
diff --git a/rba.model.core/src/rba/core/impl/MuchGreaterThanOperatorImpl.java b/rba.model.core/src/rba/core/impl/MuchGreaterThanOperatorImpl.java
new file mode 100644
index 0000000..c6be637
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/MuchGreaterThanOperatorImpl.java
@@ -0,0 +1,58 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.MuchGreaterThanOperator;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Much Greater Than Operator</b></em>'. <!-- end-user-doc
+ * -->
+ * @generated
+ */
+public class MuchGreaterThanOperatorImpl extends ComparisonOperatorImpl implements MuchGreaterThanOperator {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected MuchGreaterThanOperatorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.MUCH_GREATER_THAN_OPERATOR;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return ">>";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.MUCH_GREATER_THAN_OPERATOR___GET_SYMBOL:
+ return getSymbol();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // MuchGreaterThanOperatorImpl
diff --git a/rba.model.core/src/rba/core/impl/NamedElementImpl.java b/rba.model.core/src/rba/core/impl/NamedElementImpl.java
new file mode 100644
index 0000000..d3b3041
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/NamedElementImpl.java
@@ -0,0 +1,150 @@
+/**
+ */
+package rba.core.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import rba.core.NamedElement;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Named Element</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.impl.NamedElementImpl#getName <em>Name</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class NamedElementImpl extends ModelElementImpl implements NamedElement {
+ /**
+ * 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;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected NamedElementImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.NAMED_ELEMENT;
+ }
+
+ /**
+ * <!-- 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, RBACorePackage.NAMED_ELEMENT__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case RBACorePackage.NAMED_ELEMENT__NAME:
+ return getName();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case RBACorePackage.NAMED_ELEMENT__NAME:
+ setName((String) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.NAMED_ELEMENT__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.NAMED_ELEMENT__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ }
+ 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();
+ }
+
+} // NamedElementImpl
diff --git a/rba.model.core/src/rba/core/impl/NoneValueImpl.java b/rba.model.core/src/rba/core/impl/NoneValueImpl.java
new file mode 100644
index 0000000..90783ba
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/NoneValueImpl.java
@@ -0,0 +1,68 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.NoneValue;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>None Value</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class NoneValueImpl extends ValueExpressionImpl implements NoneValue {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected NoneValueImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.NONE_VALUE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ return "NONE";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public int getExpressionValue() {
+ return -1;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.NONE_VALUE___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ case RBACorePackage.NONE_VALUE___GET_EXPRESSION_VALUE:
+ return getExpressionValue();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // NoneValueImpl
diff --git a/rba.model.core/src/rba/core/impl/NotOperatorImpl.java b/rba.model.core/src/rba/core/impl/NotOperatorImpl.java
new file mode 100644
index 0000000..a53a968
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/NotOperatorImpl.java
@@ -0,0 +1,110 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.Expression;
+import rba.core.LogicalOperator;
+import rba.core.NotOperator;
+import rba.core.Operator;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Not Operator</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class NotOperatorImpl extends LogicalOperatorImpl implements NotOperator {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected NotOperatorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.NOT_OPERATOR;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return "!";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ StringBuilder expressionText = new StringBuilder();
+ EList<rba.core.Expression> expressions = getOperand();
+ expressionText.append(getSymbol());
+ expressionText.append("(");
+ expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : "[Invalid_Expression]");
+ expressionText.append(")");
+ return expressionText.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
+ if (baseClass == Expression.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.EXPRESSION___GET_EXPRESSION_TEXT:
+ return RBACorePackage.NOT_OPERATOR___GET_EXPRESSION_TEXT;
+ default:
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+ }
+ if (baseClass == Operator.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.OPERATOR___GET_SYMBOL:
+ return RBACorePackage.NOT_OPERATOR___GET_SYMBOL;
+ default:
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+ }
+ if (baseClass == LogicalOperator.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.LOGICAL_OPERATOR___GET_EXPRESSION_TEXT:
+ return RBACorePackage.NOT_OPERATOR___GET_EXPRESSION_TEXT;
+ default:
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+ }
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.NOT_OPERATOR___GET_SYMBOL:
+ return getSymbol();
+ case RBACorePackage.NOT_OPERATOR___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // NotOperatorImpl
diff --git a/rba.model.core/src/rba/core/impl/NullExpressionImpl.java b/rba.model.core/src/rba/core/impl/NullExpressionImpl.java
new file mode 100644
index 0000000..81286db
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/NullExpressionImpl.java
@@ -0,0 +1,76 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.ExpressionType;
+import rba.core.NullExpression;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Null Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class NullExpressionImpl extends ExpressionImpl implements NullExpression {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected NullExpressionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.NULL_EXPRESSION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return ExpressionType.NULL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ return "NULL";
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.NULL_EXPRESSION___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ case RBACorePackage.NULL_EXPRESSION___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} //NullExpressionImpl
diff --git a/rba.model.core/src/rba/core/impl/ObjectCompareImpl.java b/rba.model.core/src/rba/core/impl/ObjectCompareImpl.java
new file mode 100644
index 0000000..cb440e7
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/ObjectCompareImpl.java
@@ -0,0 +1,86 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.ExpressionType;
+import rba.core.ObjectCompare;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Object Compare</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class ObjectCompareImpl extends OperatorImpl implements ObjectCompare {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected ObjectCompareImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.OBJECT_COMPARE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return "==";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return ExpressionType.BOOLEAN;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ StringBuilder expressionText = new StringBuilder();
+ EList<rba.core.Expression> expressions = getOperand();
+ expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : "[Invalid_Expression]");
+ expressionText.append(" ");
+ expressionText.append(getSymbol());
+ expressionText.append(" ");
+ expressionText.append(expressions.size() > 1 ? expressions.get(1).getExpressionText() : "[Invalid_Expression]");
+ return expressionText.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.OBJECT_COMPARE___GET_SYMBOL:
+ return getSymbol();
+ case RBACorePackage.OBJECT_COMPARE___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ case RBACorePackage.OBJECT_COMPARE___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // ObjectCompareImpl
diff --git a/rba.model.core/src/rba/core/impl/ObjectCompareNotImpl.java b/rba.model.core/src/rba/core/impl/ObjectCompareNotImpl.java
new file mode 100644
index 0000000..c974d58
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/ObjectCompareNotImpl.java
@@ -0,0 +1,160 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import rba.core.Expression;
+import rba.core.ExpressionType;
+import rba.core.NotOperator;
+import rba.core.ObjectCompare;
+import rba.core.ObjectCompareNot;
+import rba.core.Operator;
+import rba.core.RBACoreFactory;
+import rba.core.RBACorePackage;
+import rba.core.SugarExpression;
+import rba.core.SugarExpressionBase;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Object Compare Not</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class ObjectCompareNotImpl extends OperatorImpl implements ObjectCompareNot {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected ObjectCompareNotImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.OBJECT_COMPARE_NOT;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return "!=";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return ExpressionType.BOOLEAN;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ StringBuilder expressionText = new StringBuilder();
+ EList<rba.core.Expression> expressions = getOperand();
+ expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : "[Invalid_Expression]");
+ expressionText.append(" ");
+ expressionText.append(getSymbol());
+ expressionText.append(" ");
+ expressionText.append(expressions.size() > 1 ? expressions.get(1).getExpressionText() : "[Invalid_Expression]");
+ return expressionText.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean canExpand() {
+ return true;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Expression getExpanded() {
+ NotOperator not = RBACoreFactory.eINSTANCE.createNotOperator();
+ ObjectCompare equal = RBACoreFactory.eINSTANCE.createObjectCompare();
+ getOperand().forEach(o -> equal.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(o)));
+ not.getOperand().add(equal);
+ return not;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
+ if (baseClass == Expression.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.EXPRESSION___GET_UNDERLYING_TYPE:
+ return RBACorePackage.OBJECT_COMPARE_NOT___GET_UNDERLYING_TYPE;
+ case RBACorePackage.EXPRESSION___GET_EXPRESSION_TEXT:
+ return RBACorePackage.OBJECT_COMPARE_NOT___GET_EXPRESSION_TEXT;
+ default:
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+ }
+ if (baseClass == Operator.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.OPERATOR___GET_SYMBOL:
+ return RBACorePackage.OBJECT_COMPARE_NOT___GET_SYMBOL;
+ default:
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+ }
+ if (baseClass == SugarExpression.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.SUGAR_EXPRESSION___CAN_EXPAND:
+ return RBACorePackage.OBJECT_COMPARE_NOT___CAN_EXPAND;
+ case RBACorePackage.SUGAR_EXPRESSION___GET_EXPANDED:
+ return RBACorePackage.OBJECT_COMPARE_NOT___GET_EXPANDED;
+ default:
+ return -1;
+ }
+ }
+ if (baseClass == SugarExpressionBase.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.SUGAR_EXPRESSION_BASE___CAN_EXPAND:
+ return RBACorePackage.OBJECT_COMPARE_NOT___CAN_EXPAND;
+ default:
+ return -1;
+ }
+ }
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.OBJECT_COMPARE_NOT___GET_SYMBOL:
+ return getSymbol();
+ case RBACorePackage.OBJECT_COMPARE_NOT___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ case RBACorePackage.OBJECT_COMPARE_NOT___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ case RBACorePackage.OBJECT_COMPARE_NOT___CAN_EXPAND:
+ return canExpand();
+ case RBACorePackage.OBJECT_COMPARE_NOT___GET_EXPANDED:
+ return getExpanded();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // ObjectCompareNotImpl
diff --git a/rba.model.core/src/rba/core/impl/ObjectReferenceImpl.java b/rba.model.core/src/rba/core/impl/ObjectReferenceImpl.java
new file mode 100644
index 0000000..6d34cc5
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/ObjectReferenceImpl.java
@@ -0,0 +1,202 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+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.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import rba.core.AbstractProperty;
+import rba.core.ContentState;
+import rba.core.ExpressionType;
+import rba.core.ObjectReference;
+import rba.core.RBACorePackage;
+import rba.core.RuleObject;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Object Reference</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.impl.ObjectReferenceImpl#getRefObject <em>Ref Object</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ObjectReferenceImpl extends ExpressionImpl implements ObjectReference {
+ /**
+ * The cached value of the '{@link #getRefObject() <em>Ref Object</em>}' reference.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @see #getRefObject()
+ * @generated
+ * @ordered
+ */
+ protected RuleObject refObject;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected ObjectReferenceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.OBJECT_REFERENCE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public RuleObject getRefObject() {
+ if (refObject != null && refObject.eIsProxy()) {
+ InternalEObject oldRefObject = (InternalEObject) refObject;
+ refObject = (RuleObject) eResolveProxy(oldRefObject);
+ if (refObject != oldRefObject) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+ RBACorePackage.OBJECT_REFERENCE__REF_OBJECT, oldRefObject, refObject));
+ }
+ }
+ return refObject;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public RuleObject basicGetRefObject() {
+ return refObject;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRefObject(RuleObject newRefObject) {
+ RuleObject oldRefObject = refObject;
+ refObject = newRefObject;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RBACorePackage.OBJECT_REFERENCE__REF_OBJECT,
+ oldRefObject, refObject));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ RuleObject obj = getRefObject();
+ if (obj != null) {
+ return obj.getExpressionType();
+ } else {
+ return ExpressionType.VALUE;
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ StringBuffer expressionText = new StringBuffer();
+ RuleObject obj = getRefObject();
+ if (obj instanceof ContentState) {
+ ContentState state = (ContentState) obj;
+ expressionText.append(state.getOwner().getName() + "." + state.getName());
+ } else if (obj instanceof AbstractProperty) {
+ AbstractProperty property = (AbstractProperty) obj;
+ expressionText.append(property.getOwner().getName() + "." + property.getName());
+ } else {
+ expressionText.append(obj != null ? obj.getName() : "[Invalid_Expression]");
+ }
+ return expressionText.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case RBACorePackage.OBJECT_REFERENCE__REF_OBJECT:
+ if (resolve)
+ return getRefObject();
+ return basicGetRefObject();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case RBACorePackage.OBJECT_REFERENCE__REF_OBJECT:
+ setRefObject((RuleObject) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.OBJECT_REFERENCE__REF_OBJECT:
+ setRefObject((RuleObject) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.OBJECT_REFERENCE__REF_OBJECT:
+ return refObject != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.OBJECT_REFERENCE___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ case RBACorePackage.OBJECT_REFERENCE___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // ObjectReferenceImpl
diff --git a/rba.model.core/src/rba/core/impl/OperatorImpl.java b/rba.model.core/src/rba/core/impl/OperatorImpl.java
new file mode 100644
index 0000000..b57c3f0
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/OperatorImpl.java
@@ -0,0 +1,165 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+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.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import rba.core.Expression;
+import rba.core.Operator;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Operator</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.impl.OperatorImpl#getOperand <em>Operand</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class OperatorImpl extends ExpressionImpl implements Operator {
+ /**
+ * The cached value of the '{@link #getOperand() <em>Operand</em>}' containment reference list.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @see #getOperand()
+ * @generated
+ * @ordered
+ */
+ protected EList<Expression> operand;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected OperatorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.OPERATOR;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Expression> getOperand() {
+ if (operand == null) {
+ operand = new EObjectContainmentEList<Expression>(Expression.class, this, RBACorePackage.OPERATOR__OPERAND);
+ }
+ return operand;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case RBACorePackage.OPERATOR__OPERAND:
+ return ((InternalEList<?>) getOperand()).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 RBACorePackage.OPERATOR__OPERAND:
+ return getOperand();
+ }
+ 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 RBACorePackage.OPERATOR__OPERAND:
+ getOperand().clear();
+ getOperand().addAll((Collection<? extends Expression>) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.OPERATOR__OPERAND:
+ getOperand().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.OPERATOR__OPERAND:
+ return operand != null && !operand.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.OPERATOR___GET_SYMBOL:
+ return getSymbol();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // OperatorImpl
diff --git a/rba.model.core/src/rba/core/impl/OrOperatorImpl.java b/rba.model.core/src/rba/core/impl/OrOperatorImpl.java
new file mode 100644
index 0000000..f288df0
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/OrOperatorImpl.java
@@ -0,0 +1,58 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.OrOperator;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Or Operator</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class OrOperatorImpl extends LogicalOperatorImpl implements OrOperator {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected OrOperatorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.OR_OPERATOR;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return "OR";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.OR_OPERATOR___GET_SYMBOL:
+ return getSymbol();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // OrOperatorImpl
diff --git a/rba.model.core/src/rba/core/impl/PackagableElementImpl.java b/rba.model.core/src/rba/core/impl/PackagableElementImpl.java
new file mode 100644
index 0000000..de00f27
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/PackagableElementImpl.java
@@ -0,0 +1,33 @@
+/**
+ */
+package rba.core.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.PackagableElement;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Packagable Element</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public abstract class PackagableElementImpl extends NamedElementImpl implements PackagableElement {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected PackagableElementImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.PACKAGABLE_ELEMENT;
+ }
+
+} // PackagableElementImpl
diff --git a/rba.model.core/src/rba/core/impl/PackageImpl.java b/rba.model.core/src/rba/core/impl/PackageImpl.java
new file mode 100644
index 0000000..079ae9c
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/PackageImpl.java
@@ -0,0 +1,139 @@
+/**
+ */
+package rba.core.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.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import rba.core.PackagableElement;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Package</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.impl.PackageImpl#getPackagableelement <em>Packagableelement</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class PackageImpl extends PackagableElementImpl implements rba.core.Package {
+ /**
+ * The cached value of the '{@link #getPackagableelement() <em>Packagableelement</em>}' containment reference list. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ * @see #getPackagableelement()
+ * @generated
+ * @ordered
+ */
+ protected EList<PackagableElement> packagableelement;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected PackageImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.PACKAGE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<PackagableElement> getPackagableelement() {
+ if (packagableelement == null) {
+ packagableelement = new EObjectContainmentEList<PackagableElement>(PackagableElement.class, this,
+ RBACorePackage.PACKAGE__PACKAGABLEELEMENT);
+ }
+ return packagableelement;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case RBACorePackage.PACKAGE__PACKAGABLEELEMENT:
+ return ((InternalEList<?>) getPackagableelement()).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 RBACorePackage.PACKAGE__PACKAGABLEELEMENT:
+ return getPackagableelement();
+ }
+ 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 RBACorePackage.PACKAGE__PACKAGABLEELEMENT:
+ getPackagableelement().clear();
+ getPackagableelement().addAll((Collection<? extends PackagableElement>) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.PACKAGE__PACKAGABLEELEMENT:
+ getPackagableelement().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.PACKAGE__PACKAGABLEELEMENT:
+ return packagableelement != null && !packagableelement.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // PackageImpl
diff --git a/rba.model.core/src/rba/core/impl/PlusOperatorImpl.java b/rba.model.core/src/rba/core/impl/PlusOperatorImpl.java
new file mode 100644
index 0000000..ee73fb0
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/PlusOperatorImpl.java
@@ -0,0 +1,58 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.PlusOperator;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Plus Operator</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class PlusOperatorImpl extends ArithmeticOperatorImpl implements PlusOperator {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected PlusOperatorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.PLUS_OPERATOR;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return "+";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.PLUS_OPERATOR___GET_SYMBOL:
+ return getSymbol();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // PlusOperatorImpl
diff --git a/rba.model.core/src/rba/core/impl/PreviousModifierImpl.java b/rba.model.core/src/rba/core/impl/PreviousModifierImpl.java
new file mode 100644
index 0000000..c531187
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/PreviousModifierImpl.java
@@ -0,0 +1,229 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+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 rba.core.ExpressionType;
+import rba.core.ObjectReference;
+import rba.core.PreviousModifier;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Previous Modifier</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.impl.PreviousModifierImpl#getObjReference <em>Obj Reference</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class PreviousModifierImpl extends ExpressionImpl implements PreviousModifier {
+ /**
+ * The cached value of the '{@link #getObjReference() <em>Obj Reference</em>}' containment reference.
+ * <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ * @see #getObjReference()
+ * @generated
+ * @ordered
+ */
+ protected ObjectReference objReference;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected PreviousModifierImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.PREVIOUS_MODIFIER;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ObjectReference getObjReference() {
+ return objReference;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetObjReference(ObjectReference newObjReference, NotificationChain msgs) {
+ ObjectReference oldObjReference = objReference;
+ objReference = newObjReference;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
+ RBACorePackage.PREVIOUS_MODIFIER__OBJ_REFERENCE, oldObjReference, newObjReference);
+ if (msgs == null)
+ msgs = notification;
+ else
+ msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setObjReference(ObjectReference newObjReference) {
+ if (newObjReference != objReference) {
+ NotificationChain msgs = null;
+ if (objReference != null)
+ msgs = ((InternalEObject) objReference).eInverseRemove(this,
+ EOPPOSITE_FEATURE_BASE - RBACorePackage.PREVIOUS_MODIFIER__OBJ_REFERENCE, null, msgs);
+ if (newObjReference != null)
+ msgs = ((InternalEObject) newObjReference).eInverseAdd(this,
+ EOPPOSITE_FEATURE_BASE - RBACorePackage.PREVIOUS_MODIFIER__OBJ_REFERENCE, null, msgs);
+ msgs = basicSetObjReference(newObjReference, msgs);
+ if (msgs != null)
+ msgs.dispatch();
+ } else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RBACorePackage.PREVIOUS_MODIFIER__OBJ_REFERENCE,
+ newObjReference, newObjReference));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return "(pre)";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ ObjectReference objReference = getObjReference();
+ if (objReference != null) {
+ return objReference.getUnderlyingType();
+ } else {
+ return ExpressionType.VALUE;
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ StringBuffer expressionText = new StringBuffer();
+ if (getObjReference() != null && getObjReference().getRefObject() != null) {
+ ObjectReference reference = getObjReference();
+ expressionText.append(getSymbol());
+ expressionText.append(reference.getExpressionText());
+ } else {
+ expressionText.append("[Invalid_Expression]");
+ }
+ return expressionText.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case RBACorePackage.PREVIOUS_MODIFIER__OBJ_REFERENCE:
+ return basicSetObjReference(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 RBACorePackage.PREVIOUS_MODIFIER__OBJ_REFERENCE:
+ return getObjReference();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case RBACorePackage.PREVIOUS_MODIFIER__OBJ_REFERENCE:
+ setObjReference((ObjectReference) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.PREVIOUS_MODIFIER__OBJ_REFERENCE:
+ setObjReference((ObjectReference) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.PREVIOUS_MODIFIER__OBJ_REFERENCE:
+ return objReference != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.PREVIOUS_MODIFIER___GET_SYMBOL:
+ return getSymbol();
+ case RBACorePackage.PREVIOUS_MODIFIER___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ case RBACorePackage.PREVIOUS_MODIFIER___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // PreviousModifierImpl
diff --git a/rba.model.core/src/rba/core/impl/ProjectImpl.java b/rba.model.core/src/rba/core/impl/ProjectImpl.java
new file mode 100644
index 0000000..6e62c3e
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/ProjectImpl.java
@@ -0,0 +1,233 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+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 rba.core.Project;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Project</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.impl.ProjectImpl#getVersion <em>Version</em>}</li>
+ * <li>{@link rba.core.impl.ProjectImpl#getDummyName <em>Dummy Name</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ProjectImpl extends PackageImpl implements Project {
+ /**
+ * The default value of the '{@link #getVersion() <em>Version</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @see #getVersion()
+ * @generated
+ * @ordered
+ */
+ protected static final String VERSION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getVersion() <em>Version</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see #getVersion()
+ * @generated
+ * @ordered
+ */
+ protected String version = VERSION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDummyName() <em>Dummy Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDummyName()
+ * @generated
+ * @ordered
+ */
+ protected static final String DUMMY_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDummyName() <em>Dummy Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDummyName()
+ * @generated
+ * @ordered
+ */
+ protected String dummyName = DUMMY_NAME_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected ProjectImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.PROJECT;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getVersion() {
+ return version;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setVersion(String newVersion) {
+ String oldVersion = version;
+ version = newVersion;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RBACorePackage.PROJECT__VERSION, oldVersion,
+ version));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getDummyName() {
+ return dummyName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDummyName(String newDummyName) {
+ String oldDummyName = dummyName;
+ dummyName = newDummyName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RBACorePackage.PROJECT__DUMMY_NAME, oldDummyName,
+ dummyName));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ if (this.eResource() != null) {
+ String segments[] = this.eResource().getURI().toString().split("/");
+ return segments[2];
+ } else {
+ return this.name;
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case RBACorePackage.PROJECT__VERSION:
+ return getVersion();
+ case RBACorePackage.PROJECT__DUMMY_NAME:
+ return getDummyName();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case RBACorePackage.PROJECT__VERSION:
+ setVersion((String) newValue);
+ return;
+ case RBACorePackage.PROJECT__DUMMY_NAME:
+ setDummyName((String) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.PROJECT__VERSION:
+ setVersion(VERSION_EDEFAULT);
+ return;
+ case RBACorePackage.PROJECT__DUMMY_NAME:
+ setDummyName(DUMMY_NAME_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.PROJECT__VERSION:
+ return VERSION_EDEFAULT == null ? version != null : !VERSION_EDEFAULT.equals(version);
+ case RBACorePackage.PROJECT__DUMMY_NAME:
+ return DUMMY_NAME_EDEFAULT == null ? dummyName != null : !DUMMY_NAME_EDEFAULT.equals(dummyName);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.PROJECT___GET_NAME:
+ return getName();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy())
+ return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (version: ");
+ result.append(version);
+ result.append(", dummyName: ");
+ result.append(dummyName);
+ result.append(')');
+ return result.toString();
+ }
+
+} // ProjectImpl
diff --git a/rba.model.core/src/rba/core/impl/PropertyOperatorImpl.java b/rba.model.core/src/rba/core/impl/PropertyOperatorImpl.java
new file mode 100644
index 0000000..9f99cfb
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/PropertyOperatorImpl.java
@@ -0,0 +1,73 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.ExpressionType;
+import rba.core.PropertyOperator;
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Property Operator</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public abstract class PropertyOperatorImpl extends OperatorImpl implements PropertyOperator {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected PropertyOperatorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.PROPERTY_OPERATOR;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return ExpressionType.PROPERTY;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ StringBuffer expressionText = new StringBuffer();
+ EList<rba.core.Expression> expressions = getOperand();
+ expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : "[Invalid_Expression]");
+ expressionText.append(getSymbol());
+ return expressionText.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.PROPERTY_OPERATOR___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ case RBACorePackage.PROPERTY_OPERATOR___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // PropertyOperatorImpl
diff --git a/rba.model.core/src/rba/core/impl/RBACoreFactoryImpl.java b/rba.model.core/src/rba/core/impl/RBACoreFactoryImpl.java
new file mode 100644
index 0000000..49b69a2
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/RBACoreFactoryImpl.java
@@ -0,0 +1,958 @@
+/**
+ */
+package rba.core.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 rba.core.ActiveContents;
+import rba.core.ActiveState;
+import rba.core.AllocatedContent;
+import rba.core.AndOperator;
+import rba.core.ArbitrationPolicy;
+import rba.core.ArbitrationPolicyExpression;
+import rba.core.ComparisonAnd;
+import rba.core.ComplexExpression;
+import rba.core.Constraint;
+import rba.core.ContentValue;
+import rba.core.EqualToOperator;
+import rba.core.ExistsOperator;
+import rba.core.ExpressionType;
+import rba.core.ForAllOperator;
+import rba.core.GetAllocatables;
+import rba.core.GetContentsList;
+import rba.core.GetProperty;
+import rba.core.GetState;
+import rba.core.GreaterThanOperator;
+import rba.core.HasBeenDisplayed;
+import rba.core.HasComeEarlierThan;
+import rba.core.HasComeLaterThan;
+import rba.core.IfStatement;
+import rba.core.ImpliesOperator;
+import rba.core.IntegerProperty;
+import rba.core.IntegerValue;
+import rba.core.IsActive;
+import rba.core.IsAllocatedTo;
+import rba.core.IsChanged;
+import rba.core.IsEqualToOperator;
+import rba.core.IsGreaterThanEqualOperator;
+import rba.core.IsGreaterThanOperator;
+import rba.core.IsLowerThanEqualOperator;
+import rba.core.IsLowerThanOperator;
+import rba.core.IsOn;
+import rba.core.IsTranslatedTo;
+import rba.core.IsTypeOf;
+import rba.core.LambdaExpression;
+import rba.core.LetStatement;
+import rba.core.LoserType;
+import rba.core.LoserTypeExpression;
+import rba.core.LowerThanOperator;
+import rba.core.MaxOperator;
+import rba.core.MaxValue;
+import rba.core.MinOperator;
+import rba.core.MinValue;
+import rba.core.MuchGreaterThanOperator;
+import rba.core.NoneValue;
+import rba.core.NotOperator;
+import rba.core.NullExpression;
+import rba.core.ObjectCompare;
+import rba.core.ObjectCompareNot;
+import rba.core.ObjectReference;
+import rba.core.OrOperator;
+import rba.core.PlusOperator;
+import rba.core.PreviousModifier;
+import rba.core.Project;
+import rba.core.RBACoreFactory;
+import rba.core.RBACorePackage;
+import rba.core.Scene;
+import rba.core.SelectOperator;
+import rba.core.SetOfOperator;
+import rba.core.SizeOperator;
+import rba.core.StandardValue;
+import rba.core.StateValue;
+import rba.core.Stereotype;
+import rba.core.Tag;
+import rba.core.ThatOfOperator;
+import rba.core.Variable;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model <b>Factory</b>. <!-- end-user-doc -->
+ * @generated
+ */
+public class RBACoreFactoryImpl extends EFactoryImpl implements RBACoreFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public static RBACoreFactory init() {
+ try {
+ RBACoreFactory theRBACoreFactory = (RBACoreFactory) EPackage.Registry.INSTANCE
+ .getEFactory(RBACorePackage.eNS_URI);
+ if (theRBACoreFactory != null) {
+ return theRBACoreFactory;
+ }
+ } catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new RBACoreFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public RBACoreFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case RBACorePackage.PROJECT:
+ return createProject();
+ case RBACorePackage.PACKAGE:
+ return createPackage();
+ case RBACorePackage.STEREOTYPE:
+ return createStereotype();
+ case RBACorePackage.TAG:
+ return createTag();
+ case RBACorePackage.SCENE:
+ return createScene();
+ case RBACorePackage.INTEGER_PROPERTY:
+ return createIntegerProperty();
+ case RBACorePackage.CONSTRAINT:
+ return createConstraint();
+ case RBACorePackage.LET_STATEMENT:
+ return createLetStatement();
+ case RBACorePackage.COMPLEX_EXPRESSION:
+ return createComplexExpression();
+ case RBACorePackage.IS_TYPE_OF:
+ return createIsTypeOf();
+ case RBACorePackage.OBJECT_REFERENCE:
+ return createObjectReference();
+ case RBACorePackage.PREVIOUS_MODIFIER:
+ return createPreviousModifier();
+ case RBACorePackage.GREATER_THAN_OPERATOR:
+ return createGreaterThanOperator();
+ case RBACorePackage.MUCH_GREATER_THAN_OPERATOR:
+ return createMuchGreaterThanOperator();
+ case RBACorePackage.LOWER_THAN_OPERATOR:
+ return createLowerThanOperator();
+ case RBACorePackage.EQUAL_TO_OPERATOR:
+ return createEqualToOperator();
+ case RBACorePackage.COMPARISON_AND:
+ return createComparisonAnd();
+ case RBACorePackage.AND_OPERATOR:
+ return createAndOperator();
+ case RBACorePackage.OR_OPERATOR:
+ return createOrOperator();
+ case RBACorePackage.NOT_OPERATOR:
+ return createNotOperator();
+ case RBACorePackage.IS_EQUAL_TO_OPERATOR:
+ return createIsEqualToOperator();
+ case RBACorePackage.IS_GREATER_THAN_OPERATOR:
+ return createIsGreaterThanOperator();
+ case RBACorePackage.IS_LOWER_THAN_OPERATOR:
+ return createIsLowerThanOperator();
+ case RBACorePackage.IS_GREATER_THAN_EQUAL_OPERATOR:
+ return createIsGreaterThanEqualOperator();
+ case RBACorePackage.IS_LOWER_THAN_EQUAL_OPERATOR:
+ return createIsLowerThanEqualOperator();
+ case RBACorePackage.PLUS_OPERATOR:
+ return createPlusOperator();
+ case RBACorePackage.IMPLIES_OPERATOR:
+ return createImpliesOperator();
+ case RBACorePackage.IS_ACTIVE:
+ return createIsActive();
+ case RBACorePackage.GET_ALLOCATABLES:
+ return createGetAllocatables();
+ case RBACorePackage.HAS_BEEN_DISPLAYED:
+ return createHasBeenDisplayed();
+ case RBACorePackage.ACTIVE_STATE:
+ return createActiveState();
+ case RBACorePackage.OBJECT_COMPARE:
+ return createObjectCompare();
+ case RBACorePackage.THAT_OF_OPERATOR:
+ return createThatOfOperator();
+ case RBACorePackage.MAX_VALUE:
+ return createMaxValue();
+ case RBACorePackage.MIN_VALUE:
+ return createMinValue();
+ case RBACorePackage.NONE_VALUE:
+ return createNoneValue();
+ case RBACorePackage.STANDARD_VALUE:
+ return createStandardValue();
+ case RBACorePackage.INTEGER_VALUE:
+ return createIntegerValue();
+ case RBACorePackage.LOSER_TYPE_EXPRESSION:
+ return createLoserTypeExpression();
+ case RBACorePackage.ARBITRATION_POLICY_EXPRESSION:
+ return createArbitrationPolicyExpression();
+ case RBACorePackage.SIZE_OPERATOR:
+ return createSizeOperator();
+ case RBACorePackage.EXISTS_OPERATOR:
+ return createExistsOperator();
+ case RBACorePackage.FOR_ALL_OPERATOR:
+ return createForAllOperator();
+ case RBACorePackage.MAX_OPERATOR:
+ return createMaxOperator();
+ case RBACorePackage.MIN_OPERATOR:
+ return createMinOperator();
+ case RBACorePackage.SELECT_OPERATOR:
+ return createSelectOperator();
+ case RBACorePackage.SET_OF_OPERATOR:
+ return createSetOfOperator();
+ case RBACorePackage.LAMBDA_EXPRESSION:
+ return createLambdaExpression();
+ case RBACorePackage.VARIABLE:
+ return createVariable();
+ case RBACorePackage.IF_STATEMENT:
+ return createIfStatement();
+ case RBACorePackage.IS_ON:
+ return createIsOn();
+ case RBACorePackage.ALLOCATED_CONTENT:
+ return createAllocatedContent();
+ case RBACorePackage.CONTENT_VALUE:
+ return createContentValue();
+ case RBACorePackage.GET_CONTENTS_LIST:
+ return createGetContentsList();
+ case RBACorePackage.ACTIVE_CONTENTS:
+ return createActiveContents();
+ case RBACorePackage.GET_PROPERTY:
+ return createGetProperty();
+ case RBACorePackage.STATE_VALUE:
+ return createStateValue();
+ case RBACorePackage.HAS_COME_LATER_THAN:
+ return createHasComeLaterThan();
+ case RBACorePackage.HAS_COME_EARLIER_THAN:
+ return createHasComeEarlierThan();
+ case RBACorePackage.OBJECT_COMPARE_NOT:
+ return createObjectCompareNot();
+ case RBACorePackage.IS_ALLOCATED_TO:
+ return createIsAllocatedTo();
+ case RBACorePackage.IS_CHANGED:
+ return createIsChanged();
+ case RBACorePackage.IS_TRANSLATED_TO:
+ return createIsTranslatedTo();
+ case RBACorePackage.GET_STATE:
+ return createGetState();
+ case RBACorePackage.NULL_EXPRESSION:
+ return createNullExpression();
+ 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 RBACorePackage.ARBITRATION_POLICY:
+ return createArbitrationPolicyFromString(eDataType, initialValue);
+ case RBACorePackage.EXPRESSION_TYPE:
+ return createExpressionTypeFromString(eDataType, initialValue);
+ case RBACorePackage.LOSER_TYPE:
+ return createLoserTypeFromString(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 RBACorePackage.ARBITRATION_POLICY:
+ return convertArbitrationPolicyToString(eDataType, instanceValue);
+ case RBACorePackage.EXPRESSION_TYPE:
+ return convertExpressionTypeToString(eDataType, instanceValue);
+ case RBACorePackage.LOSER_TYPE:
+ return convertLoserTypeToString(eDataType, instanceValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public Project createProject() {
+ ProjectImpl project = new ProjectImpl();
+ return project;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public rba.core.Package createPackage() {
+ PackageImpl package_ = new PackageImpl();
+ return package_;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public Stereotype createStereotype() {
+ StereotypeImpl stereotype = new StereotypeImpl();
+ return stereotype;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Tag createTag() {
+ TagImpl tag = new TagImpl();
+ return tag;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public Scene createScene() {
+ SceneImpl scene = new SceneImpl();
+ return scene;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IntegerProperty createIntegerProperty() {
+ IntegerPropertyImpl integerProperty = new IntegerPropertyImpl();
+ return integerProperty;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public Constraint createConstraint() {
+ ConstraintImpl constraint = new ConstraintImpl();
+ return constraint;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public LetStatement createLetStatement() {
+ LetStatementImpl letStatement = new LetStatementImpl();
+ return letStatement;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ComplexExpression createComplexExpression() {
+ ComplexExpressionImpl complexExpression = new ComplexExpressionImpl();
+ return complexExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsTypeOf createIsTypeOf() {
+ IsTypeOfImpl isTypeOf = new IsTypeOfImpl();
+ return isTypeOf;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ObjectReference createObjectReference() {
+ ObjectReferenceImpl objectReference = new ObjectReferenceImpl();
+ return objectReference;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public PreviousModifier createPreviousModifier() {
+ PreviousModifierImpl previousModifier = new PreviousModifierImpl();
+ return previousModifier;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public GreaterThanOperator createGreaterThanOperator() {
+ GreaterThanOperatorImpl greaterThanOperator = new GreaterThanOperatorImpl();
+ return greaterThanOperator;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public MuchGreaterThanOperator createMuchGreaterThanOperator() {
+ MuchGreaterThanOperatorImpl muchGreaterThanOperator = new MuchGreaterThanOperatorImpl();
+ return muchGreaterThanOperator;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public LowerThanOperator createLowerThanOperator() {
+ LowerThanOperatorImpl lowerThanOperator = new LowerThanOperatorImpl();
+ return lowerThanOperator;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EqualToOperator createEqualToOperator() {
+ EqualToOperatorImpl equalToOperator = new EqualToOperatorImpl();
+ return equalToOperator;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ComparisonAnd createComparisonAnd() {
+ ComparisonAndImpl comparisonAnd = new ComparisonAndImpl();
+ return comparisonAnd;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public AndOperator createAndOperator() {
+ AndOperatorImpl andOperator = new AndOperatorImpl();
+ return andOperator;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public OrOperator createOrOperator() {
+ OrOperatorImpl orOperator = new OrOperatorImpl();
+ return orOperator;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public NotOperator createNotOperator() {
+ NotOperatorImpl notOperator = new NotOperatorImpl();
+ return notOperator;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsEqualToOperator createIsEqualToOperator() {
+ IsEqualToOperatorImpl isEqualToOperator = new IsEqualToOperatorImpl();
+ return isEqualToOperator;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsGreaterThanOperator createIsGreaterThanOperator() {
+ IsGreaterThanOperatorImpl isGreaterThanOperator = new IsGreaterThanOperatorImpl();
+ return isGreaterThanOperator;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsLowerThanOperator createIsLowerThanOperator() {
+ IsLowerThanOperatorImpl isLowerThanOperator = new IsLowerThanOperatorImpl();
+ return isLowerThanOperator;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsGreaterThanEqualOperator createIsGreaterThanEqualOperator() {
+ IsGreaterThanEqualOperatorImpl isGreaterThanEqualOperator = new IsGreaterThanEqualOperatorImpl();
+ return isGreaterThanEqualOperator;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsLowerThanEqualOperator createIsLowerThanEqualOperator() {
+ IsLowerThanEqualOperatorImpl isLowerThanEqualOperator = new IsLowerThanEqualOperatorImpl();
+ return isLowerThanEqualOperator;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public PlusOperator createPlusOperator() {
+ PlusOperatorImpl plusOperator = new PlusOperatorImpl();
+ return plusOperator;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ImpliesOperator createImpliesOperator() {
+ ImpliesOperatorImpl impliesOperator = new ImpliesOperatorImpl();
+ return impliesOperator;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsActive createIsActive() {
+ IsActiveImpl isActive = new IsActiveImpl();
+ return isActive;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public GetAllocatables createGetAllocatables() {
+ GetAllocatablesImpl getAllocatables = new GetAllocatablesImpl();
+ return getAllocatables;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public HasBeenDisplayed createHasBeenDisplayed() {
+ HasBeenDisplayedImpl hasBeenDisplayed = new HasBeenDisplayedImpl();
+ return hasBeenDisplayed;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ActiveState createActiveState() {
+ ActiveStateImpl activeState = new ActiveStateImpl();
+ return activeState;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ObjectCompare createObjectCompare() {
+ ObjectCompareImpl objectCompare = new ObjectCompareImpl();
+ return objectCompare;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ThatOfOperator createThatOfOperator() {
+ ThatOfOperatorImpl thatOfOperator = new ThatOfOperatorImpl();
+ return thatOfOperator;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public MaxValue createMaxValue() {
+ MaxValueImpl maxValue = new MaxValueImpl();
+ return maxValue;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public MinValue createMinValue() {
+ MinValueImpl minValue = new MinValueImpl();
+ return minValue;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public NoneValue createNoneValue() {
+ NoneValueImpl noneValue = new NoneValueImpl();
+ return noneValue;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public StandardValue createStandardValue() {
+ StandardValueImpl standardValue = new StandardValueImpl();
+ return standardValue;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IntegerValue createIntegerValue() {
+ IntegerValueImpl integerValue = new IntegerValueImpl();
+ return integerValue;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public LoserTypeExpression createLoserTypeExpression() {
+ LoserTypeExpressionImpl loserTypeExpression = new LoserTypeExpressionImpl();
+ return loserTypeExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ArbitrationPolicyExpression createArbitrationPolicyExpression() {
+ ArbitrationPolicyExpressionImpl arbitrationPolicyExpression = new ArbitrationPolicyExpressionImpl();
+ return arbitrationPolicyExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public SizeOperator createSizeOperator() {
+ SizeOperatorImpl sizeOperator = new SizeOperatorImpl();
+ return sizeOperator;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExistsOperator createExistsOperator() {
+ ExistsOperatorImpl existsOperator = new ExistsOperatorImpl();
+ return existsOperator;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ForAllOperator createForAllOperator() {
+ ForAllOperatorImpl forAllOperator = new ForAllOperatorImpl();
+ return forAllOperator;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public MaxOperator createMaxOperator() {
+ MaxOperatorImpl maxOperator = new MaxOperatorImpl();
+ return maxOperator;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public MinOperator createMinOperator() {
+ MinOperatorImpl minOperator = new MinOperatorImpl();
+ return minOperator;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public SelectOperator createSelectOperator() {
+ SelectOperatorImpl selectOperator = new SelectOperatorImpl();
+ return selectOperator;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public SetOfOperator createSetOfOperator() {
+ SetOfOperatorImpl setOfOperator = new SetOfOperatorImpl();
+ return setOfOperator;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public LambdaExpression createLambdaExpression() {
+ LambdaExpressionImpl lambdaExpression = new LambdaExpressionImpl();
+ return lambdaExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public Variable createVariable() {
+ VariableImpl variable = new VariableImpl();
+ return variable;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IfStatement createIfStatement() {
+ IfStatementImpl ifStatement = new IfStatementImpl();
+ return ifStatement;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsOn createIsOn() {
+ IsOnImpl isOn = new IsOnImpl();
+ return isOn;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public AllocatedContent createAllocatedContent() {
+ AllocatedContentImpl allocatedContent = new AllocatedContentImpl();
+ return allocatedContent;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ContentValue createContentValue() {
+ ContentValueImpl contentValue = new ContentValueImpl();
+ return contentValue;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public GetContentsList createGetContentsList() {
+ GetContentsListImpl getContentsList = new GetContentsListImpl();
+ return getContentsList;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ActiveContents createActiveContents() {
+ ActiveContentsImpl activeContents = new ActiveContentsImpl();
+ return activeContents;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public GetProperty createGetProperty() {
+ GetPropertyImpl getProperty = new GetPropertyImpl();
+ return getProperty;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public StateValue createStateValue() {
+ StateValueImpl stateValue = new StateValueImpl();
+ return stateValue;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public HasComeLaterThan createHasComeLaterThan() {
+ HasComeLaterThanImpl hasComeLaterThan = new HasComeLaterThanImpl();
+ return hasComeLaterThan;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public HasComeEarlierThan createHasComeEarlierThan() {
+ HasComeEarlierThanImpl hasComeEarlierThan = new HasComeEarlierThanImpl();
+ return hasComeEarlierThan;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ObjectCompareNot createObjectCompareNot() {
+ ObjectCompareNotImpl objectCompareNot = new ObjectCompareNotImpl();
+ return objectCompareNot;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsAllocatedTo createIsAllocatedTo() {
+ IsAllocatedToImpl isAllocatedTo = new IsAllocatedToImpl();
+ return isAllocatedTo;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsChanged createIsChanged() {
+ IsChangedImpl isChanged = new IsChangedImpl();
+ return isChanged;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsTranslatedTo createIsTranslatedTo() {
+ IsTranslatedToImpl isTranslatedTo = new IsTranslatedToImpl();
+ return isTranslatedTo;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public GetState createGetState() {
+ GetStateImpl getState = new GetStateImpl();
+ return getState;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NullExpression createNullExpression() {
+ NullExpressionImpl nullExpression = new NullExpressionImpl();
+ return nullExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ArbitrationPolicy createArbitrationPolicyFromString(EDataType eDataType, String initialValue) {
+ ArbitrationPolicy result = ArbitrationPolicy.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 convertArbitrationPolicyToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType createExpressionTypeFromString(EDataType eDataType, String initialValue) {
+ ExpressionType result = ExpressionType.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 convertExpressionTypeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public LoserType createLoserTypeFromString(EDataType eDataType, String initialValue) {
+ LoserType result = LoserType.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 convertLoserTypeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public RBACorePackage getRBACorePackage() {
+ return (RBACorePackage) getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static RBACorePackage getPackage() {
+ return RBACorePackage.eINSTANCE;
+ }
+
+} // RBACoreFactoryImpl
diff --git a/rba.model.core/src/rba/core/impl/RBACorePackageImpl.java b/rba.model.core/src/rba/core/impl/RBACorePackageImpl.java
new file mode 100644
index 0000000..ce9e33c
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/RBACorePackageImpl.java
@@ -0,0 +1,4565 @@
+/**
+ */
+package rba.core.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import rba.core.*;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model <b>Package</b>. <!-- end-user-doc -->
+ * @generated
+ */
+public class RBACorePackageImpl extends EPackageImpl implements RBACorePackage {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass modelElementEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass namedElementEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass abstractAllocatableEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass allocatableEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass allocatableSetEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass projectEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass packagableElementEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass packageEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass stereotypeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass tagEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass ruleObjectEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass abstractContentEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass abstractSceneEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass sceneEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass contentEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass contentSetEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass contentStateEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass abstractPropertyEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass integerPropertyEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass abstractConstraintEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass constraintEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass expressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass letStatementEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass complexExpressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass operatorEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass isTypeOfEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass objectReferenceEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass previousModifierEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass greaterThanOperatorEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass muchGreaterThanOperatorEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass lowerThanOperatorEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass comparisonOperatorEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass equalToOperatorEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass comparisonAndEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass logicalOperatorEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass andOperatorEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass orOperatorEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass notOperatorEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass isEqualToOperatorEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass isGreaterThanOperatorEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass isLowerThanOperatorEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass isGreaterThanEqualOperatorEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass isLowerThanEqualOperatorEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass arithmeticOperatorEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass plusOperatorEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass impliesOperatorEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass contentOperatorEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass isActiveEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass getAllocatablesEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass hasBeenDisplayedEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass activeStateEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass objectCompareEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass thatOfOperatorEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass valueExpressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass maxValueEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass minValueEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass noneValueEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass standardValueEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass integerValueEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass enumExpressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass loserTypeExpressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass arbitrationPolicyExpressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass setExpressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass setOperatorEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass sizeOperatorEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass existsOperatorEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass forAllOperatorEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass maxOperatorEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass minOperatorEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass selectOperatorEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass setOfOperatorEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass lambdaExpressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass variableEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass lambdaContextEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass ifStatementEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass sceneOperatorEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass isOnEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass allocatableOperatorEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass allocatedContentEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass contentValueEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass getContentsListEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass activeContentsEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass propertyOperatorEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass getPropertyEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass stateValueEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass hasComeLaterThanEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass hasComeEarlierThanEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass sugarExpressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass sugarExpressionBaseEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass objectCompareNotEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass isAllocatedToEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass isChangedEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass isTranslatedToEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass getStateEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass contentStateOperatorEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass nullExpressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum arbitrationPolicyEEnum = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum expressionTypeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum loserTypeEEnum = 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 rba.core.RBACorePackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private RBACorePackageImpl() {
+ super(eNS_URI, RBACoreFactory.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 RBACorePackage#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 RBACorePackage init() {
+ if (isInited)
+ return (RBACorePackage) EPackage.Registry.INSTANCE.getEPackage(RBACorePackage.eNS_URI);
+
+ // Obtain or create and register package
+ RBACorePackageImpl theRBACorePackage = (RBACorePackageImpl) (EPackage.Registry.INSTANCE
+ .get(eNS_URI) instanceof RBACorePackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI)
+ : new RBACorePackageImpl());
+
+ isInited = true;
+
+ // Create package meta-data objects
+ theRBACorePackage.createPackageContents();
+
+ // Initialize created meta-data
+ theRBACorePackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theRBACorePackage.freeze();
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(RBACorePackage.eNS_URI, theRBACorePackage);
+ return theRBACorePackage;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getModelElement() {
+ return modelElementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getModelElement_Description() {
+ return (EAttribute) modelElementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getNamedElement() {
+ return namedElementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getNamedElement_Name() {
+ return (EAttribute) namedElementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAbstractAllocatable() {
+ return abstractAllocatableEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAbstractAllocatable_Contents() {
+ return (EReference) abstractAllocatableEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAbstractAllocatable_AllocatableGroup() {
+ return (EReference) abstractAllocatableEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getAbstractAllocatable__GetContentsList() {
+ return abstractAllocatableEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getAbstractAllocatable__CollectLeafAllocatable() {
+ return abstractAllocatableEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAllocatable() {
+ return allocatableEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAllocatable_ArbitrationPolicy() {
+ return (EAttribute) allocatableEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAllocatable_Visibility() {
+ return (EReference) allocatableEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getAllocatable__CollectLeafAllocatable() {
+ return allocatableEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAllocatableSet() {
+ return allocatableSetEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAllocatableSet_Target() {
+ return (EReference) allocatableSetEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getAllocatableSet__CollectLeafAllocatable() {
+ return allocatableSetEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getProject() {
+ return projectEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getProject_Version() {
+ return (EAttribute) projectEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getProject_DummyName() {
+ return (EAttribute) projectEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getProject__GetName() {
+ return projectEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPackagableElement() {
+ return packagableElementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPackage() {
+ return packageEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPackage_Packagableelement() {
+ return (EReference) packageEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getStereotype() {
+ return stereotypeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getStereotype_TargetModelName() {
+ return (EAttribute) stereotypeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getStereotype_BodyText() {
+ return (EAttribute) stereotypeEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTag() {
+ return tagEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTag_Values() {
+ return (EAttribute) tagEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getStereotype_Variables() {
+ return (EReference) stereotypeEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getRuleObject() {
+ return ruleObjectEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getRuleObject_Tags() {
+ return (EReference) ruleObjectEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getRuleObject__GetExpressionType() {
+ return ruleObjectEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAbstractContent() {
+ return abstractContentEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAbstractContent_ContentGroup() {
+ return (EReference) abstractContentEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAbstractContent_Allocatable() {
+ return (EReference) abstractContentEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getAbstractContent__GetAllocatableList() {
+ return abstractContentEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getAbstractContent__CollectLeafContents() {
+ return abstractContentEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAbstractScene() {
+ return abstractSceneEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getScene() {
+ return sceneEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getScene_Global() {
+ return (EAttribute) sceneEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getScene_Properties() {
+ return (EReference) sceneEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getScene__GetExpressionType() {
+ return sceneEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getContent() {
+ return contentEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getContent_LoserType() {
+ return (EAttribute) contentEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getContent_States() {
+ return (EReference) contentEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getContent__CollectLeafContents() {
+ return contentEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getContentSet() {
+ return contentSetEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getContentSet_Target() {
+ return (EReference) contentSetEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getContentSet__CollectLeafContents() {
+ return contentSetEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getContentState() {
+ return contentStateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getContentState_Value() {
+ return (EReference) contentStateEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getContentState_Owner() {
+ return (EReference) contentStateEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAbstractProperty() {
+ return abstractPropertyEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAbstractProperty_Owner() {
+ return (EReference) abstractPropertyEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getAbstractProperty__GetExpressionType() {
+ return abstractPropertyEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getIntegerProperty() {
+ return integerPropertyEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getIntegerProperty_Value() {
+ return (EReference) integerPropertyEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAbstractConstraint() {
+ return abstractConstraintEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAbstractConstraint_Expression() {
+ return (EReference) abstractConstraintEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getConstraint() {
+ return constraintEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getConstraint_Runtime() {
+ return (EAttribute) constraintEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getExpression() {
+ return expressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getExpression_Type() {
+ return (EAttribute) expressionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getExpression_Expression() {
+ return (EAttribute) expressionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getExpression_LetStatements() {
+ return (EReference) expressionEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getExpression__GetUnderlyingType() {
+ return expressionEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getExpression__GetExpressionText() {
+ return expressionEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLetStatement() {
+ return letStatementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLetStatement_Variable() {
+ return (EReference) letStatementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLetStatement_Body() {
+ return (EReference) letStatementEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getLetStatement__ToString() {
+ return letStatementEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getComplexExpression() {
+ return complexExpressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getComplexExpression_OtherExpression() {
+ return (EReference) complexExpressionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getComplexExpression__GetExpressionText() {
+ return complexExpressionEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getComplexExpression__GetUnderlyingType() {
+ return complexExpressionEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getComplexExpression__GetType() {
+ return complexExpressionEClass.getEOperations().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getOperator() {
+ return operatorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getOperator_Operand() {
+ return (EReference) operatorEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getOperator__GetSymbol() {
+ return operatorEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getIsTypeOf() {
+ return isTypeOfEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getIsTypeOf_TagName() {
+ return (EAttribute) isTypeOfEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIsTypeOf__GetExpressionText() {
+ return isTypeOfEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIsTypeOf__GetSymbol() {
+ return isTypeOfEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIsTypeOf__GetUnderlyingType() {
+ return isTypeOfEClass.getEOperations().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getObjectReference() {
+ return objectReferenceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getObjectReference_RefObject() {
+ return (EReference) objectReferenceEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getObjectReference__GetUnderlyingType() {
+ return objectReferenceEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getObjectReference__GetExpressionText() {
+ return objectReferenceEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPreviousModifier() {
+ return previousModifierEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPreviousModifier_ObjReference() {
+ return (EReference) previousModifierEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getPreviousModifier__GetSymbol() {
+ return previousModifierEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getPreviousModifier__GetUnderlyingType() {
+ return previousModifierEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getPreviousModifier__GetExpressionText() {
+ return previousModifierEClass.getEOperations().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getGreaterThanOperator() {
+ return greaterThanOperatorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getGreaterThanOperator__GetSymbol() {
+ return greaterThanOperatorEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getMuchGreaterThanOperator() {
+ return muchGreaterThanOperatorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getMuchGreaterThanOperator__GetSymbol() {
+ return muchGreaterThanOperatorEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLowerThanOperator() {
+ return lowerThanOperatorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getLowerThanOperator__GetSymbol() {
+ return lowerThanOperatorEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getComparisonOperator() {
+ return comparisonOperatorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getComparisonOperator__GetUnderlyingType() {
+ return comparisonOperatorEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getComparisonOperator__GetExpressionText() {
+ return comparisonOperatorEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getEqualToOperator() {
+ return equalToOperatorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getEqualToOperator__GetSymbol() {
+ return equalToOperatorEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getComparisonAnd() {
+ return comparisonAndEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getComparisonAnd__GetSymbol() {
+ return comparisonAndEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getComparisonAnd__GetExpressionText() {
+ return comparisonAndEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLogicalOperator() {
+ return logicalOperatorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getLogicalOperator__GetUnderlyingType() {
+ return logicalOperatorEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getLogicalOperator__GetExpressionText() {
+ return logicalOperatorEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAndOperator() {
+ return andOperatorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getAndOperator__GetSymbol() {
+ return andOperatorEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getOrOperator() {
+ return orOperatorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getOrOperator__GetSymbol() {
+ return orOperatorEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getNotOperator() {
+ return notOperatorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getNotOperator__GetSymbol() {
+ return notOperatorEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getNotOperator__GetExpressionText() {
+ return notOperatorEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getIsEqualToOperator() {
+ return isEqualToOperatorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIsEqualToOperator__GetSymbol() {
+ return isEqualToOperatorEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getIsGreaterThanOperator() {
+ return isGreaterThanOperatorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIsGreaterThanOperator__GetSymbol() {
+ return isGreaterThanOperatorEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getIsLowerThanOperator() {
+ return isLowerThanOperatorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIsLowerThanOperator__GetSymbol() {
+ return isLowerThanOperatorEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getIsGreaterThanEqualOperator() {
+ return isGreaterThanEqualOperatorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIsGreaterThanEqualOperator__GetSymbol() {
+ return isGreaterThanEqualOperatorEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getIsLowerThanEqualOperator() {
+ return isLowerThanEqualOperatorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIsLowerThanEqualOperator__GetSymbol() {
+ return isLowerThanEqualOperatorEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getArithmeticOperator() {
+ return arithmeticOperatorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getArithmeticOperator__GetUnderlyingType() {
+ return arithmeticOperatorEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getArithmeticOperator__GetExpressionText() {
+ return arithmeticOperatorEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPlusOperator() {
+ return plusOperatorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getPlusOperator__GetSymbol() {
+ return plusOperatorEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getImpliesOperator() {
+ return impliesOperatorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getImpliesOperator__GetSymbol() {
+ return impliesOperatorEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getContentOperator() {
+ return contentOperatorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getContentOperator__GetExpressionText() {
+ return contentOperatorEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getIsActive() {
+ return isActiveEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIsActive__GetSymbol() {
+ return isActiveEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIsActive__GetUnderlyingType() {
+ return isActiveEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getGetAllocatables() {
+ return getAllocatablesEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getGetAllocatables__GetSymbol() {
+ return getAllocatablesEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getGetAllocatables__GetUnderlyingType() {
+ return getAllocatablesEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getHasBeenDisplayed() {
+ return hasBeenDisplayedEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getHasBeenDisplayed__GetSymbol() {
+ return hasBeenDisplayedEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getHasBeenDisplayed__GetUnderlyingType() {
+ return hasBeenDisplayedEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getActiveState() {
+ return activeStateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getActiveState__GetSymbol() {
+ return activeStateEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getActiveState__GetUnderlyingType() {
+ return activeStateEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getObjectCompare() {
+ return objectCompareEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getObjectCompare__GetSymbol() {
+ return objectCompareEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getObjectCompare__GetUnderlyingType() {
+ return objectCompareEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getObjectCompare__GetExpressionText() {
+ return objectCompareEClass.getEOperations().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getThatOfOperator() {
+ return thatOfOperatorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getThatOfOperator__GetExpressionText() {
+ return thatOfOperatorEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getThatOfOperator__GetSymbol() {
+ return thatOfOperatorEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getThatOfOperator__GetUnderlyingType() {
+ return thatOfOperatorEClass.getEOperations().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getValueExpression() {
+ return valueExpressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getValueExpression__GetUnderlyingType() {
+ return valueExpressionEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getValueExpression__GetExpressionValue() {
+ return valueExpressionEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getValueExpression__GetType() {
+ return valueExpressionEClass.getEOperations().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getMaxValue() {
+ return maxValueEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getMaxValue__GetExpressionText() {
+ return maxValueEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getMaxValue__GetExpressionValue() {
+ return maxValueEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getMinValue() {
+ return minValueEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getMinValue__GetExpressionText() {
+ return minValueEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getMinValue__GetExpressionValue() {
+ return minValueEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getNoneValue() {
+ return noneValueEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getNoneValue__GetExpressionText() {
+ return noneValueEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getNoneValue__GetExpressionValue() {
+ return noneValueEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getStandardValue() {
+ return standardValueEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getStandardValue__GetExpressionText() {
+ return standardValueEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getStandardValue__GetExpressionValue() {
+ return standardValueEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getIntegerValue() {
+ return integerValueEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getIntegerValue_Value() {
+ return (EAttribute) integerValueEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIntegerValue__GetExpressionText() {
+ return integerValueEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIntegerValue__GetExpressionValue() {
+ return integerValueEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getEnumExpression() {
+ return enumExpressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getEnumExpression__GetUnderlyingType() {
+ return enumExpressionEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getEnumExpression__GetExpressionValue() {
+ return enumExpressionEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getEnumExpression__GetType() {
+ return enumExpressionEClass.getEOperations().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLoserTypeExpression() {
+ return loserTypeExpressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLoserTypeExpression_Value() {
+ return (EAttribute) loserTypeExpressionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getLoserTypeExpression__GetExpressionText() {
+ return loserTypeExpressionEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getLoserTypeExpression__GetExpressionValue() {
+ return loserTypeExpressionEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getArbitrationPolicyExpression() {
+ return arbitrationPolicyExpressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getArbitrationPolicyExpression_Value() {
+ return (EAttribute) arbitrationPolicyExpressionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getArbitrationPolicyExpression__GetExpressionText() {
+ return arbitrationPolicyExpressionEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getArbitrationPolicyExpression__GetExpressionValue() {
+ return arbitrationPolicyExpressionEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSetExpression() {
+ return setExpressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSetOperator() {
+ return setOperatorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSizeOperator() {
+ return sizeOperatorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getSizeOperator__GetExpressionText() {
+ return sizeOperatorEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getSizeOperator__GetSymbol() {
+ return sizeOperatorEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getSizeOperator__GetUnderlyingType() {
+ return sizeOperatorEClass.getEOperations().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getExistsOperator() {
+ return existsOperatorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getExistsOperator__GetExpressionText() {
+ return existsOperatorEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getExistsOperator__GetSymbol() {
+ return existsOperatorEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getExistsOperator__GetUnderlyingType() {
+ return existsOperatorEClass.getEOperations().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getForAllOperator() {
+ return forAllOperatorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getForAllOperator__GetExpressionText() {
+ return forAllOperatorEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getForAllOperator__GetSymbol() {
+ return forAllOperatorEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getForAllOperator__GetUnderlyingType() {
+ return forAllOperatorEClass.getEOperations().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getMaxOperator() {
+ return maxOperatorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getMaxOperator__GetExpressionText() {
+ return maxOperatorEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getMaxOperator__GetSymbol() {
+ return maxOperatorEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getMaxOperator__GetUnderlyingType() {
+ return maxOperatorEClass.getEOperations().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getMinOperator() {
+ return minOperatorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getMinOperator__GetExpressionText() {
+ return minOperatorEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getMinOperator__GetSymbol() {
+ return minOperatorEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getMinOperator__GetUnderlyingType() {
+ return minOperatorEClass.getEOperations().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSelectOperator() {
+ return selectOperatorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getSelectOperator__GetExpressionText() {
+ return selectOperatorEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getSelectOperator__GetSymbol() {
+ return selectOperatorEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getSelectOperator__GetUnderlyingType() {
+ return selectOperatorEClass.getEOperations().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSetOfOperator() {
+ return setOfOperatorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getSetOfOperator__GetExpressionText() {
+ return setOfOperatorEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getSetOfOperator__GetSymbol() {
+ return setOfOperatorEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getSetOfOperator__GetUnderlyingType() {
+ return setOfOperatorEClass.getEOperations().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLambdaExpression() {
+ return lambdaExpressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLambdaExpression_Context() {
+ return (EReference) lambdaExpressionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLambdaExpression_X() {
+ return (EReference) lambdaExpressionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLambdaExpression_BodyText() {
+ return (EReference) lambdaExpressionEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getLambdaExpression__GetExpressionText() {
+ return lambdaExpressionEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getLambdaExpression__GetUnderlyingType() {
+ return lambdaExpressionEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getVariable() {
+ return variableEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getVariable__GetExpressionType() {
+ return variableEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLambdaContext() {
+ return lambdaContextEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLambdaContext_Lambda() {
+ return (EReference) lambdaContextEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getLambdaContext__GetContextType() {
+ return lambdaContextEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getIfStatement() {
+ return ifStatementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getIfStatement_Condition() {
+ return (EReference) ifStatementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getIfStatement_ThenExpression() {
+ return (EReference) ifStatementEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getIfStatement_ElseExpression() {
+ return (EReference) ifStatementEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIfStatement__GetUnderlyingType() {
+ return ifStatementEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIfStatement__GetExpressionText() {
+ return ifStatementEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSceneOperator() {
+ return sceneOperatorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getSceneOperator__GetExpressionText() {
+ return sceneOperatorEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getIsOn() {
+ return isOnEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIsOn__GetSymbol() {
+ return isOnEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIsOn__GetUnderlyingType() {
+ return isOnEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAllocatableOperator() {
+ return allocatableOperatorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getAllocatableOperator__GetExpressionText() {
+ return allocatableOperatorEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAllocatedContent() {
+ return allocatedContentEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getAllocatedContent__GetSymbol() {
+ return allocatedContentEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getAllocatedContent__GetUnderlyingType() {
+ return allocatedContentEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getContentValue() {
+ return contentValueEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getContentValue__GetSymbol() {
+ return contentValueEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getContentValue__GetUnderlyingType() {
+ return contentValueEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getGetContentsList() {
+ return getContentsListEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getGetContentsList__GetSymbol() {
+ return getContentsListEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getGetContentsList__GetUnderlyingType() {
+ return getContentsListEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getActiveContents() {
+ return activeContentsEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getActiveContents__GetSymbol() {
+ return activeContentsEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getActiveContents__GetUnderlyingType() {
+ return activeContentsEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPropertyOperator() {
+ return propertyOperatorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getPropertyOperator__GetUnderlyingType() {
+ return propertyOperatorEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getPropertyOperator__GetExpressionText() {
+ return propertyOperatorEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getGetProperty() {
+ return getPropertyEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getGetProperty__GetSymbol() {
+ return getPropertyEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getGetProperty__GetUnderlyingType() {
+ return getPropertyEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getStateValue() {
+ return stateValueEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getStateValue__GetSymbol() {
+ return stateValueEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getStateValue__GetUnderlyingType() {
+ return stateValueEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getHasComeLaterThan() {
+ return hasComeLaterThanEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getHasComeLaterThan__GetSymbol() {
+ return hasComeLaterThanEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getHasComeLaterThan__GetUnderlyingType() {
+ return hasComeLaterThanEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getHasComeLaterThan__GetExpressionText() {
+ return hasComeLaterThanEClass.getEOperations().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getHasComeEarlierThan() {
+ return hasComeEarlierThanEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getHasComeEarlierThan__GetSymbol() {
+ return hasComeEarlierThanEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getHasComeEarlierThan__GetUnderlyingType() {
+ return hasComeEarlierThanEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getHasComeEarlierThan__GetExpressionText() {
+ return hasComeEarlierThanEClass.getEOperations().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSugarExpression() {
+ return sugarExpressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getSugarExpression__CanExpand() {
+ return sugarExpressionEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getSugarExpression__GetExpanded() {
+ return sugarExpressionEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSugarExpressionBase() {
+ return sugarExpressionBaseEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getSugarExpressionBase__CanExpand() {
+ return sugarExpressionBaseEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getObjectCompareNot() {
+ return objectCompareNotEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getObjectCompareNot__GetSymbol() {
+ return objectCompareNotEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getObjectCompareNot__GetUnderlyingType() {
+ return objectCompareNotEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getObjectCompareNot__GetExpressionText() {
+ return objectCompareNotEClass.getEOperations().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getIsAllocatedTo() {
+ return isAllocatedToEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIsAllocatedTo__GetSymbol() {
+ return isAllocatedToEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIsAllocatedTo__GetUnderlyingType() {
+ return isAllocatedToEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIsAllocatedTo__GetExpressionText() {
+ return isAllocatedToEClass.getEOperations().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getIsChanged() {
+ return isChangedEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIsChanged__GetSymbol() {
+ return isChangedEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIsChanged__GetUnderlyingType() {
+ return isChangedEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getIsTranslatedTo() {
+ return isTranslatedToEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIsTranslatedTo__GetSymbol() {
+ return isTranslatedToEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIsTranslatedTo__GetUnderlyingType() {
+ return isTranslatedToEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIsTranslatedTo__GetExpressionText() {
+ return isTranslatedToEClass.getEOperations().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getGetState() {
+ return getStateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getGetState__GetSymbol() {
+ return getStateEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getContentStateOperator() {
+ return contentStateOperatorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getContentStateOperator__GetExpressionText() {
+ return contentStateOperatorEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getNullExpression() {
+ return nullExpressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getNullExpression__GetUnderlyingType() {
+ return nullExpressionEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getNullExpression__GetExpressionText() {
+ return nullExpressionEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getArbitrationPolicy() {
+ return arbitrationPolicyEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getExpressionType() {
+ return expressionTypeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getLoserType() {
+ return loserTypeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public RBACoreFactory getRBACoreFactory() {
+ return (RBACoreFactory) 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
+ modelElementEClass = createEClass(MODEL_ELEMENT);
+ createEAttribute(modelElementEClass, MODEL_ELEMENT__DESCRIPTION);
+
+ namedElementEClass = createEClass(NAMED_ELEMENT);
+ createEAttribute(namedElementEClass, NAMED_ELEMENT__NAME);
+
+ abstractAllocatableEClass = createEClass(ABSTRACT_ALLOCATABLE);
+ createEReference(abstractAllocatableEClass, ABSTRACT_ALLOCATABLE__CONTENTS);
+ createEReference(abstractAllocatableEClass, ABSTRACT_ALLOCATABLE__ALLOCATABLE_GROUP);
+ createEOperation(abstractAllocatableEClass, ABSTRACT_ALLOCATABLE___GET_CONTENTS_LIST);
+ createEOperation(abstractAllocatableEClass, ABSTRACT_ALLOCATABLE___COLLECT_LEAF_ALLOCATABLE);
+
+ allocatableEClass = createEClass(ALLOCATABLE);
+ createEAttribute(allocatableEClass, ALLOCATABLE__ARBITRATION_POLICY);
+ createEReference(allocatableEClass, ALLOCATABLE__VISIBILITY);
+ createEOperation(allocatableEClass, ALLOCATABLE___COLLECT_LEAF_ALLOCATABLE);
+
+ allocatableSetEClass = createEClass(ALLOCATABLE_SET);
+ createEReference(allocatableSetEClass, ALLOCATABLE_SET__TARGET);
+ createEOperation(allocatableSetEClass, ALLOCATABLE_SET___COLLECT_LEAF_ALLOCATABLE);
+
+ projectEClass = createEClass(PROJECT);
+ createEAttribute(projectEClass, PROJECT__VERSION);
+ createEAttribute(projectEClass, PROJECT__DUMMY_NAME);
+ createEOperation(projectEClass, PROJECT___GET_NAME);
+
+ packagableElementEClass = createEClass(PACKAGABLE_ELEMENT);
+
+ packageEClass = createEClass(PACKAGE);
+ createEReference(packageEClass, PACKAGE__PACKAGABLEELEMENT);
+
+ stereotypeEClass = createEClass(STEREOTYPE);
+ createEAttribute(stereotypeEClass, STEREOTYPE__TARGET_MODEL_NAME);
+ createEReference(stereotypeEClass, STEREOTYPE__VARIABLES);
+ createEAttribute(stereotypeEClass, STEREOTYPE__BODY_TEXT);
+
+ tagEClass = createEClass(TAG);
+ createEAttribute(tagEClass, TAG__VALUES);
+
+ ruleObjectEClass = createEClass(RULE_OBJECT);
+ createEReference(ruleObjectEClass, RULE_OBJECT__TAGS);
+ createEOperation(ruleObjectEClass, RULE_OBJECT___GET_EXPRESSION_TYPE);
+
+ abstractContentEClass = createEClass(ABSTRACT_CONTENT);
+ createEReference(abstractContentEClass, ABSTRACT_CONTENT__CONTENT_GROUP);
+ createEReference(abstractContentEClass, ABSTRACT_CONTENT__ALLOCATABLE);
+ createEOperation(abstractContentEClass, ABSTRACT_CONTENT___GET_ALLOCATABLE_LIST);
+ createEOperation(abstractContentEClass, ABSTRACT_CONTENT___COLLECT_LEAF_CONTENTS);
+
+ abstractSceneEClass = createEClass(ABSTRACT_SCENE);
+
+ sceneEClass = createEClass(SCENE);
+ createEAttribute(sceneEClass, SCENE__GLOBAL);
+ createEReference(sceneEClass, SCENE__PROPERTIES);
+ createEOperation(sceneEClass, SCENE___GET_EXPRESSION_TYPE);
+
+ contentEClass = createEClass(CONTENT);
+ createEAttribute(contentEClass, CONTENT__LOSER_TYPE);
+ createEReference(contentEClass, CONTENT__STATES);
+ createEOperation(contentEClass, CONTENT___COLLECT_LEAF_CONTENTS);
+
+ contentSetEClass = createEClass(CONTENT_SET);
+ createEReference(contentSetEClass, CONTENT_SET__TARGET);
+ createEOperation(contentSetEClass, CONTENT_SET___COLLECT_LEAF_CONTENTS);
+
+ contentStateEClass = createEClass(CONTENT_STATE);
+ createEReference(contentStateEClass, CONTENT_STATE__VALUE);
+ createEReference(contentStateEClass, CONTENT_STATE__OWNER);
+
+ abstractPropertyEClass = createEClass(ABSTRACT_PROPERTY);
+ createEReference(abstractPropertyEClass, ABSTRACT_PROPERTY__OWNER);
+ createEOperation(abstractPropertyEClass, ABSTRACT_PROPERTY___GET_EXPRESSION_TYPE);
+
+ integerPropertyEClass = createEClass(INTEGER_PROPERTY);
+ createEReference(integerPropertyEClass, INTEGER_PROPERTY__VALUE);
+
+ abstractConstraintEClass = createEClass(ABSTRACT_CONSTRAINT);
+ createEReference(abstractConstraintEClass, ABSTRACT_CONSTRAINT__EXPRESSION);
+
+ constraintEClass = createEClass(CONSTRAINT);
+ createEAttribute(constraintEClass, CONSTRAINT__RUNTIME);
+
+ expressionEClass = createEClass(EXPRESSION);
+ createEAttribute(expressionEClass, EXPRESSION__TYPE);
+ createEAttribute(expressionEClass, EXPRESSION__EXPRESSION);
+ createEReference(expressionEClass, EXPRESSION__LET_STATEMENTS);
+ createEOperation(expressionEClass, EXPRESSION___GET_UNDERLYING_TYPE);
+ createEOperation(expressionEClass, EXPRESSION___GET_EXPRESSION_TEXT);
+
+ letStatementEClass = createEClass(LET_STATEMENT);
+ createEReference(letStatementEClass, LET_STATEMENT__VARIABLE);
+ createEReference(letStatementEClass, LET_STATEMENT__BODY);
+ createEOperation(letStatementEClass, LET_STATEMENT___TO_STRING);
+
+ complexExpressionEClass = createEClass(COMPLEX_EXPRESSION);
+ createEReference(complexExpressionEClass, COMPLEX_EXPRESSION__OTHER_EXPRESSION);
+ createEOperation(complexExpressionEClass, COMPLEX_EXPRESSION___GET_EXPRESSION_TEXT);
+ createEOperation(complexExpressionEClass, COMPLEX_EXPRESSION___GET_UNDERLYING_TYPE);
+ createEOperation(complexExpressionEClass, COMPLEX_EXPRESSION___GET_TYPE);
+
+ operatorEClass = createEClass(OPERATOR);
+ createEReference(operatorEClass, OPERATOR__OPERAND);
+ createEOperation(operatorEClass, OPERATOR___GET_SYMBOL);
+
+ isTypeOfEClass = createEClass(IS_TYPE_OF);
+ createEAttribute(isTypeOfEClass, IS_TYPE_OF__TAG_NAME);
+ createEOperation(isTypeOfEClass, IS_TYPE_OF___GET_EXPRESSION_TEXT);
+ createEOperation(isTypeOfEClass, IS_TYPE_OF___GET_SYMBOL);
+ createEOperation(isTypeOfEClass, IS_TYPE_OF___GET_UNDERLYING_TYPE);
+
+ objectReferenceEClass = createEClass(OBJECT_REFERENCE);
+ createEReference(objectReferenceEClass, OBJECT_REFERENCE__REF_OBJECT);
+ createEOperation(objectReferenceEClass, OBJECT_REFERENCE___GET_UNDERLYING_TYPE);
+ createEOperation(objectReferenceEClass, OBJECT_REFERENCE___GET_EXPRESSION_TEXT);
+
+ previousModifierEClass = createEClass(PREVIOUS_MODIFIER);
+ createEReference(previousModifierEClass, PREVIOUS_MODIFIER__OBJ_REFERENCE);
+ createEOperation(previousModifierEClass, PREVIOUS_MODIFIER___GET_SYMBOL);
+ createEOperation(previousModifierEClass, PREVIOUS_MODIFIER___GET_UNDERLYING_TYPE);
+ createEOperation(previousModifierEClass, PREVIOUS_MODIFIER___GET_EXPRESSION_TEXT);
+
+ greaterThanOperatorEClass = createEClass(GREATER_THAN_OPERATOR);
+ createEOperation(greaterThanOperatorEClass, GREATER_THAN_OPERATOR___GET_SYMBOL);
+
+ muchGreaterThanOperatorEClass = createEClass(MUCH_GREATER_THAN_OPERATOR);
+ createEOperation(muchGreaterThanOperatorEClass, MUCH_GREATER_THAN_OPERATOR___GET_SYMBOL);
+
+ lowerThanOperatorEClass = createEClass(LOWER_THAN_OPERATOR);
+ createEOperation(lowerThanOperatorEClass, LOWER_THAN_OPERATOR___GET_SYMBOL);
+
+ comparisonOperatorEClass = createEClass(COMPARISON_OPERATOR);
+ createEOperation(comparisonOperatorEClass, COMPARISON_OPERATOR___GET_UNDERLYING_TYPE);
+ createEOperation(comparisonOperatorEClass, COMPARISON_OPERATOR___GET_EXPRESSION_TEXT);
+
+ equalToOperatorEClass = createEClass(EQUAL_TO_OPERATOR);
+ createEOperation(equalToOperatorEClass, EQUAL_TO_OPERATOR___GET_SYMBOL);
+
+ comparisonAndEClass = createEClass(COMPARISON_AND);
+ createEOperation(comparisonAndEClass, COMPARISON_AND___GET_SYMBOL);
+ createEOperation(comparisonAndEClass, COMPARISON_AND___GET_EXPRESSION_TEXT);
+
+ logicalOperatorEClass = createEClass(LOGICAL_OPERATOR);
+ createEOperation(logicalOperatorEClass, LOGICAL_OPERATOR___GET_UNDERLYING_TYPE);
+ createEOperation(logicalOperatorEClass, LOGICAL_OPERATOR___GET_EXPRESSION_TEXT);
+
+ andOperatorEClass = createEClass(AND_OPERATOR);
+ createEOperation(andOperatorEClass, AND_OPERATOR___GET_SYMBOL);
+
+ orOperatorEClass = createEClass(OR_OPERATOR);
+ createEOperation(orOperatorEClass, OR_OPERATOR___GET_SYMBOL);
+
+ notOperatorEClass = createEClass(NOT_OPERATOR);
+ createEOperation(notOperatorEClass, NOT_OPERATOR___GET_SYMBOL);
+ createEOperation(notOperatorEClass, NOT_OPERATOR___GET_EXPRESSION_TEXT);
+
+ isEqualToOperatorEClass = createEClass(IS_EQUAL_TO_OPERATOR);
+ createEOperation(isEqualToOperatorEClass, IS_EQUAL_TO_OPERATOR___GET_SYMBOL);
+
+ isGreaterThanOperatorEClass = createEClass(IS_GREATER_THAN_OPERATOR);
+ createEOperation(isGreaterThanOperatorEClass, IS_GREATER_THAN_OPERATOR___GET_SYMBOL);
+
+ isLowerThanOperatorEClass = createEClass(IS_LOWER_THAN_OPERATOR);
+ createEOperation(isLowerThanOperatorEClass, IS_LOWER_THAN_OPERATOR___GET_SYMBOL);
+
+ isGreaterThanEqualOperatorEClass = createEClass(IS_GREATER_THAN_EQUAL_OPERATOR);
+ createEOperation(isGreaterThanEqualOperatorEClass, IS_GREATER_THAN_EQUAL_OPERATOR___GET_SYMBOL);
+
+ isLowerThanEqualOperatorEClass = createEClass(IS_LOWER_THAN_EQUAL_OPERATOR);
+ createEOperation(isLowerThanEqualOperatorEClass, IS_LOWER_THAN_EQUAL_OPERATOR___GET_SYMBOL);
+
+ arithmeticOperatorEClass = createEClass(ARITHMETIC_OPERATOR);
+ createEOperation(arithmeticOperatorEClass, ARITHMETIC_OPERATOR___GET_UNDERLYING_TYPE);
+ createEOperation(arithmeticOperatorEClass, ARITHMETIC_OPERATOR___GET_EXPRESSION_TEXT);
+
+ plusOperatorEClass = createEClass(PLUS_OPERATOR);
+ createEOperation(plusOperatorEClass, PLUS_OPERATOR___GET_SYMBOL);
+
+ impliesOperatorEClass = createEClass(IMPLIES_OPERATOR);
+ createEOperation(impliesOperatorEClass, IMPLIES_OPERATOR___GET_SYMBOL);
+
+ contentOperatorEClass = createEClass(CONTENT_OPERATOR);
+ createEOperation(contentOperatorEClass, CONTENT_OPERATOR___GET_EXPRESSION_TEXT);
+
+ isActiveEClass = createEClass(IS_ACTIVE);
+ createEOperation(isActiveEClass, IS_ACTIVE___GET_SYMBOL);
+ createEOperation(isActiveEClass, IS_ACTIVE___GET_UNDERLYING_TYPE);
+
+ getAllocatablesEClass = createEClass(GET_ALLOCATABLES);
+ createEOperation(getAllocatablesEClass, GET_ALLOCATABLES___GET_SYMBOL);
+ createEOperation(getAllocatablesEClass, GET_ALLOCATABLES___GET_UNDERLYING_TYPE);
+
+ hasBeenDisplayedEClass = createEClass(HAS_BEEN_DISPLAYED);
+ createEOperation(hasBeenDisplayedEClass, HAS_BEEN_DISPLAYED___GET_SYMBOL);
+ createEOperation(hasBeenDisplayedEClass, HAS_BEEN_DISPLAYED___GET_UNDERLYING_TYPE);
+
+ activeStateEClass = createEClass(ACTIVE_STATE);
+ createEOperation(activeStateEClass, ACTIVE_STATE___GET_SYMBOL);
+ createEOperation(activeStateEClass, ACTIVE_STATE___GET_UNDERLYING_TYPE);
+
+ objectCompareEClass = createEClass(OBJECT_COMPARE);
+ createEOperation(objectCompareEClass, OBJECT_COMPARE___GET_SYMBOL);
+ createEOperation(objectCompareEClass, OBJECT_COMPARE___GET_UNDERLYING_TYPE);
+ createEOperation(objectCompareEClass, OBJECT_COMPARE___GET_EXPRESSION_TEXT);
+
+ thatOfOperatorEClass = createEClass(THAT_OF_OPERATOR);
+ createEOperation(thatOfOperatorEClass, THAT_OF_OPERATOR___GET_EXPRESSION_TEXT);
+ createEOperation(thatOfOperatorEClass, THAT_OF_OPERATOR___GET_SYMBOL);
+ createEOperation(thatOfOperatorEClass, THAT_OF_OPERATOR___GET_UNDERLYING_TYPE);
+
+ valueExpressionEClass = createEClass(VALUE_EXPRESSION);
+ createEOperation(valueExpressionEClass, VALUE_EXPRESSION___GET_UNDERLYING_TYPE);
+ createEOperation(valueExpressionEClass, VALUE_EXPRESSION___GET_EXPRESSION_VALUE);
+ createEOperation(valueExpressionEClass, VALUE_EXPRESSION___GET_TYPE);
+
+ maxValueEClass = createEClass(MAX_VALUE);
+ createEOperation(maxValueEClass, MAX_VALUE___GET_EXPRESSION_TEXT);
+ createEOperation(maxValueEClass, MAX_VALUE___GET_EXPRESSION_VALUE);
+
+ minValueEClass = createEClass(MIN_VALUE);
+ createEOperation(minValueEClass, MIN_VALUE___GET_EXPRESSION_TEXT);
+ createEOperation(minValueEClass, MIN_VALUE___GET_EXPRESSION_VALUE);
+
+ noneValueEClass = createEClass(NONE_VALUE);
+ createEOperation(noneValueEClass, NONE_VALUE___GET_EXPRESSION_TEXT);
+ createEOperation(noneValueEClass, NONE_VALUE___GET_EXPRESSION_VALUE);
+
+ standardValueEClass = createEClass(STANDARD_VALUE);
+ createEOperation(standardValueEClass, STANDARD_VALUE___GET_EXPRESSION_TEXT);
+ createEOperation(standardValueEClass, STANDARD_VALUE___GET_EXPRESSION_VALUE);
+
+ integerValueEClass = createEClass(INTEGER_VALUE);
+ createEAttribute(integerValueEClass, INTEGER_VALUE__VALUE);
+ createEOperation(integerValueEClass, INTEGER_VALUE___GET_EXPRESSION_TEXT);
+ createEOperation(integerValueEClass, INTEGER_VALUE___GET_EXPRESSION_VALUE);
+
+ enumExpressionEClass = createEClass(ENUM_EXPRESSION);
+ createEOperation(enumExpressionEClass, ENUM_EXPRESSION___GET_UNDERLYING_TYPE);
+ createEOperation(enumExpressionEClass, ENUM_EXPRESSION___GET_EXPRESSION_VALUE);
+ createEOperation(enumExpressionEClass, ENUM_EXPRESSION___GET_TYPE);
+
+ loserTypeExpressionEClass = createEClass(LOSER_TYPE_EXPRESSION);
+ createEAttribute(loserTypeExpressionEClass, LOSER_TYPE_EXPRESSION__VALUE);
+ createEOperation(loserTypeExpressionEClass, LOSER_TYPE_EXPRESSION___GET_EXPRESSION_TEXT);
+ createEOperation(loserTypeExpressionEClass, LOSER_TYPE_EXPRESSION___GET_EXPRESSION_VALUE);
+
+ arbitrationPolicyExpressionEClass = createEClass(ARBITRATION_POLICY_EXPRESSION);
+ createEAttribute(arbitrationPolicyExpressionEClass, ARBITRATION_POLICY_EXPRESSION__VALUE);
+ createEOperation(arbitrationPolicyExpressionEClass, ARBITRATION_POLICY_EXPRESSION___GET_EXPRESSION_TEXT);
+ createEOperation(arbitrationPolicyExpressionEClass, ARBITRATION_POLICY_EXPRESSION___GET_EXPRESSION_VALUE);
+
+ setExpressionEClass = createEClass(SET_EXPRESSION);
+
+ setOperatorEClass = createEClass(SET_OPERATOR);
+
+ sizeOperatorEClass = createEClass(SIZE_OPERATOR);
+ createEOperation(sizeOperatorEClass, SIZE_OPERATOR___GET_EXPRESSION_TEXT);
+ createEOperation(sizeOperatorEClass, SIZE_OPERATOR___GET_SYMBOL);
+ createEOperation(sizeOperatorEClass, SIZE_OPERATOR___GET_UNDERLYING_TYPE);
+
+ existsOperatorEClass = createEClass(EXISTS_OPERATOR);
+ createEOperation(existsOperatorEClass, EXISTS_OPERATOR___GET_EXPRESSION_TEXT);
+ createEOperation(existsOperatorEClass, EXISTS_OPERATOR___GET_SYMBOL);
+ createEOperation(existsOperatorEClass, EXISTS_OPERATOR___GET_UNDERLYING_TYPE);
+
+ forAllOperatorEClass = createEClass(FOR_ALL_OPERATOR);
+ createEOperation(forAllOperatorEClass, FOR_ALL_OPERATOR___GET_EXPRESSION_TEXT);
+ createEOperation(forAllOperatorEClass, FOR_ALL_OPERATOR___GET_SYMBOL);
+ createEOperation(forAllOperatorEClass, FOR_ALL_OPERATOR___GET_UNDERLYING_TYPE);
+
+ maxOperatorEClass = createEClass(MAX_OPERATOR);
+ createEOperation(maxOperatorEClass, MAX_OPERATOR___GET_EXPRESSION_TEXT);
+ createEOperation(maxOperatorEClass, MAX_OPERATOR___GET_SYMBOL);
+ createEOperation(maxOperatorEClass, MAX_OPERATOR___GET_UNDERLYING_TYPE);
+
+ minOperatorEClass = createEClass(MIN_OPERATOR);
+ createEOperation(minOperatorEClass, MIN_OPERATOR___GET_EXPRESSION_TEXT);
+ createEOperation(minOperatorEClass, MIN_OPERATOR___GET_SYMBOL);
+ createEOperation(minOperatorEClass, MIN_OPERATOR___GET_UNDERLYING_TYPE);
+
+ selectOperatorEClass = createEClass(SELECT_OPERATOR);
+ createEOperation(selectOperatorEClass, SELECT_OPERATOR___GET_EXPRESSION_TEXT);
+ createEOperation(selectOperatorEClass, SELECT_OPERATOR___GET_SYMBOL);
+ createEOperation(selectOperatorEClass, SELECT_OPERATOR___GET_UNDERLYING_TYPE);
+
+ setOfOperatorEClass = createEClass(SET_OF_OPERATOR);
+ createEOperation(setOfOperatorEClass, SET_OF_OPERATOR___GET_EXPRESSION_TEXT);
+ createEOperation(setOfOperatorEClass, SET_OF_OPERATOR___GET_SYMBOL);
+ createEOperation(setOfOperatorEClass, SET_OF_OPERATOR___GET_UNDERLYING_TYPE);
+
+ lambdaExpressionEClass = createEClass(LAMBDA_EXPRESSION);
+ createEReference(lambdaExpressionEClass, LAMBDA_EXPRESSION__CONTEXT);
+ createEReference(lambdaExpressionEClass, LAMBDA_EXPRESSION__X);
+ createEReference(lambdaExpressionEClass, LAMBDA_EXPRESSION__BODY_TEXT);
+ createEOperation(lambdaExpressionEClass, LAMBDA_EXPRESSION___GET_EXPRESSION_TEXT);
+ createEOperation(lambdaExpressionEClass, LAMBDA_EXPRESSION___GET_UNDERLYING_TYPE);
+
+ variableEClass = createEClass(VARIABLE);
+ createEOperation(variableEClass, VARIABLE___GET_EXPRESSION_TYPE);
+
+ lambdaContextEClass = createEClass(LAMBDA_CONTEXT);
+ createEReference(lambdaContextEClass, LAMBDA_CONTEXT__LAMBDA);
+ createEOperation(lambdaContextEClass, LAMBDA_CONTEXT___GET_CONTEXT_TYPE);
+
+ ifStatementEClass = createEClass(IF_STATEMENT);
+ createEReference(ifStatementEClass, IF_STATEMENT__CONDITION);
+ createEReference(ifStatementEClass, IF_STATEMENT__THEN_EXPRESSION);
+ createEReference(ifStatementEClass, IF_STATEMENT__ELSE_EXPRESSION);
+ createEOperation(ifStatementEClass, IF_STATEMENT___GET_UNDERLYING_TYPE);
+ createEOperation(ifStatementEClass, IF_STATEMENT___GET_EXPRESSION_TEXT);
+
+ sceneOperatorEClass = createEClass(SCENE_OPERATOR);
+ createEOperation(sceneOperatorEClass, SCENE_OPERATOR___GET_EXPRESSION_TEXT);
+
+ isOnEClass = createEClass(IS_ON);
+ createEOperation(isOnEClass, IS_ON___GET_SYMBOL);
+ createEOperation(isOnEClass, IS_ON___GET_UNDERLYING_TYPE);
+
+ allocatableOperatorEClass = createEClass(ALLOCATABLE_OPERATOR);
+ createEOperation(allocatableOperatorEClass, ALLOCATABLE_OPERATOR___GET_EXPRESSION_TEXT);
+
+ allocatedContentEClass = createEClass(ALLOCATED_CONTENT);
+ createEOperation(allocatedContentEClass, ALLOCATED_CONTENT___GET_SYMBOL);
+ createEOperation(allocatedContentEClass, ALLOCATED_CONTENT___GET_UNDERLYING_TYPE);
+
+ contentValueEClass = createEClass(CONTENT_VALUE);
+ createEOperation(contentValueEClass, CONTENT_VALUE___GET_SYMBOL);
+ createEOperation(contentValueEClass, CONTENT_VALUE___GET_UNDERLYING_TYPE);
+
+ getContentsListEClass = createEClass(GET_CONTENTS_LIST);
+ createEOperation(getContentsListEClass, GET_CONTENTS_LIST___GET_SYMBOL);
+ createEOperation(getContentsListEClass, GET_CONTENTS_LIST___GET_UNDERLYING_TYPE);
+
+ activeContentsEClass = createEClass(ACTIVE_CONTENTS);
+ createEOperation(activeContentsEClass, ACTIVE_CONTENTS___GET_SYMBOL);
+ createEOperation(activeContentsEClass, ACTIVE_CONTENTS___GET_UNDERLYING_TYPE);
+
+ propertyOperatorEClass = createEClass(PROPERTY_OPERATOR);
+ createEOperation(propertyOperatorEClass, PROPERTY_OPERATOR___GET_UNDERLYING_TYPE);
+ createEOperation(propertyOperatorEClass, PROPERTY_OPERATOR___GET_EXPRESSION_TEXT);
+
+ getPropertyEClass = createEClass(GET_PROPERTY);
+ createEOperation(getPropertyEClass, GET_PROPERTY___GET_SYMBOL);
+ createEOperation(getPropertyEClass, GET_PROPERTY___GET_UNDERLYING_TYPE);
+
+ stateValueEClass = createEClass(STATE_VALUE);
+ createEOperation(stateValueEClass, STATE_VALUE___GET_SYMBOL);
+ createEOperation(stateValueEClass, STATE_VALUE___GET_UNDERLYING_TYPE);
+
+ hasComeLaterThanEClass = createEClass(HAS_COME_LATER_THAN);
+ createEOperation(hasComeLaterThanEClass, HAS_COME_LATER_THAN___GET_SYMBOL);
+ createEOperation(hasComeLaterThanEClass, HAS_COME_LATER_THAN___GET_UNDERLYING_TYPE);
+ createEOperation(hasComeLaterThanEClass, HAS_COME_LATER_THAN___GET_EXPRESSION_TEXT);
+
+ hasComeEarlierThanEClass = createEClass(HAS_COME_EARLIER_THAN);
+ createEOperation(hasComeEarlierThanEClass, HAS_COME_EARLIER_THAN___GET_SYMBOL);
+ createEOperation(hasComeEarlierThanEClass, HAS_COME_EARLIER_THAN___GET_UNDERLYING_TYPE);
+ createEOperation(hasComeEarlierThanEClass, HAS_COME_EARLIER_THAN___GET_EXPRESSION_TEXT);
+
+ sugarExpressionEClass = createEClass(SUGAR_EXPRESSION);
+ createEOperation(sugarExpressionEClass, SUGAR_EXPRESSION___CAN_EXPAND);
+ createEOperation(sugarExpressionEClass, SUGAR_EXPRESSION___GET_EXPANDED);
+
+ sugarExpressionBaseEClass = createEClass(SUGAR_EXPRESSION_BASE);
+ createEOperation(sugarExpressionBaseEClass, SUGAR_EXPRESSION_BASE___CAN_EXPAND);
+
+ objectCompareNotEClass = createEClass(OBJECT_COMPARE_NOT);
+ createEOperation(objectCompareNotEClass, OBJECT_COMPARE_NOT___GET_SYMBOL);
+ createEOperation(objectCompareNotEClass, OBJECT_COMPARE_NOT___GET_UNDERLYING_TYPE);
+ createEOperation(objectCompareNotEClass, OBJECT_COMPARE_NOT___GET_EXPRESSION_TEXT);
+
+ isAllocatedToEClass = createEClass(IS_ALLOCATED_TO);
+ createEOperation(isAllocatedToEClass, IS_ALLOCATED_TO___GET_SYMBOL);
+ createEOperation(isAllocatedToEClass, IS_ALLOCATED_TO___GET_UNDERLYING_TYPE);
+ createEOperation(isAllocatedToEClass, IS_ALLOCATED_TO___GET_EXPRESSION_TEXT);
+
+ isChangedEClass = createEClass(IS_CHANGED);
+ createEOperation(isChangedEClass, IS_CHANGED___GET_SYMBOL);
+ createEOperation(isChangedEClass, IS_CHANGED___GET_UNDERLYING_TYPE);
+
+ isTranslatedToEClass = createEClass(IS_TRANSLATED_TO);
+ createEOperation(isTranslatedToEClass, IS_TRANSLATED_TO___GET_SYMBOL);
+ createEOperation(isTranslatedToEClass, IS_TRANSLATED_TO___GET_UNDERLYING_TYPE);
+ createEOperation(isTranslatedToEClass, IS_TRANSLATED_TO___GET_EXPRESSION_TEXT);
+
+ getStateEClass = createEClass(GET_STATE);
+ createEOperation(getStateEClass, GET_STATE___GET_SYMBOL);
+
+ contentStateOperatorEClass = createEClass(CONTENT_STATE_OPERATOR);
+ createEOperation(contentStateOperatorEClass, CONTENT_STATE_OPERATOR___GET_EXPRESSION_TEXT);
+
+ nullExpressionEClass = createEClass(NULL_EXPRESSION);
+ createEOperation(nullExpressionEClass, NULL_EXPRESSION___GET_UNDERLYING_TYPE);
+ createEOperation(nullExpressionEClass, NULL_EXPRESSION___GET_EXPRESSION_TEXT);
+
+ // Create enums
+ arbitrationPolicyEEnum = createEEnum(ARBITRATION_POLICY);
+ expressionTypeEEnum = createEEnum(EXPRESSION_TYPE);
+ loserTypeEEnum = createEEnum(LOSER_TYPE);
+ }
+
+ /**
+ * <!-- 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
+ namedElementEClass.getESuperTypes().add(this.getModelElement());
+ abstractAllocatableEClass.getESuperTypes().add(this.getRuleObject());
+ allocatableEClass.getESuperTypes().add(this.getAbstractAllocatable());
+ allocatableSetEClass.getESuperTypes().add(this.getAbstractAllocatable());
+ projectEClass.getESuperTypes().add(this.getPackage());
+ packagableElementEClass.getESuperTypes().add(this.getNamedElement());
+ packageEClass.getESuperTypes().add(this.getPackagableElement());
+ stereotypeEClass.getESuperTypes().add(this.getPackagableElement());
+ tagEClass.getESuperTypes().add(this.getNamedElement());
+ ruleObjectEClass.getESuperTypes().add(this.getPackagableElement());
+ abstractContentEClass.getESuperTypes().add(this.getRuleObject());
+ abstractSceneEClass.getESuperTypes().add(this.getRuleObject());
+ sceneEClass.getESuperTypes().add(this.getAbstractScene());
+ contentEClass.getESuperTypes().add(this.getAbstractContent());
+ contentSetEClass.getESuperTypes().add(this.getAbstractContent());
+ contentStateEClass.getESuperTypes().add(this.getRuleObject());
+ abstractPropertyEClass.getESuperTypes().add(this.getRuleObject());
+ integerPropertyEClass.getESuperTypes().add(this.getAbstractProperty());
+ abstractConstraintEClass.getESuperTypes().add(this.getPackagableElement());
+ constraintEClass.getESuperTypes().add(this.getAbstractConstraint());
+ letStatementEClass.getESuperTypes().add(this.getModelElement());
+ complexExpressionEClass.getESuperTypes().add(this.getExpression());
+ complexExpressionEClass.getESuperTypes().add(this.getSugarExpressionBase());
+ operatorEClass.getESuperTypes().add(this.getExpression());
+ isTypeOfEClass.getESuperTypes().add(this.getOperator());
+ objectReferenceEClass.getESuperTypes().add(this.getExpression());
+ previousModifierEClass.getESuperTypes().add(this.getExpression());
+ greaterThanOperatorEClass.getESuperTypes().add(this.getComparisonOperator());
+ muchGreaterThanOperatorEClass.getESuperTypes().add(this.getComparisonOperator());
+ lowerThanOperatorEClass.getESuperTypes().add(this.getComparisonOperator());
+ comparisonOperatorEClass.getESuperTypes().add(this.getOperator());
+ equalToOperatorEClass.getESuperTypes().add(this.getComparisonOperator());
+ comparisonAndEClass.getESuperTypes().add(this.getComparisonOperator());
+ logicalOperatorEClass.getESuperTypes().add(this.getOperator());
+ andOperatorEClass.getESuperTypes().add(this.getLogicalOperator());
+ orOperatorEClass.getESuperTypes().add(this.getLogicalOperator());
+ notOperatorEClass.getESuperTypes().add(this.getLogicalOperator());
+ isEqualToOperatorEClass.getESuperTypes().add(this.getLogicalOperator());
+ isGreaterThanOperatorEClass.getESuperTypes().add(this.getLogicalOperator());
+ isLowerThanOperatorEClass.getESuperTypes().add(this.getLogicalOperator());
+ isGreaterThanEqualOperatorEClass.getESuperTypes().add(this.getLogicalOperator());
+ isLowerThanEqualOperatorEClass.getESuperTypes().add(this.getLogicalOperator());
+ arithmeticOperatorEClass.getESuperTypes().add(this.getOperator());
+ plusOperatorEClass.getESuperTypes().add(this.getArithmeticOperator());
+ impliesOperatorEClass.getESuperTypes().add(this.getLogicalOperator());
+ contentOperatorEClass.getESuperTypes().add(this.getOperator());
+ isActiveEClass.getESuperTypes().add(this.getContentOperator());
+ getAllocatablesEClass.getESuperTypes().add(this.getContentOperator());
+ hasBeenDisplayedEClass.getESuperTypes().add(this.getContentOperator());
+ activeStateEClass.getESuperTypes().add(this.getContentOperator());
+ objectCompareEClass.getESuperTypes().add(this.getOperator());
+ thatOfOperatorEClass.getESuperTypes().add(this.getOperator());
+ valueExpressionEClass.getESuperTypes().add(this.getExpression());
+ maxValueEClass.getESuperTypes().add(this.getValueExpression());
+ minValueEClass.getESuperTypes().add(this.getValueExpression());
+ noneValueEClass.getESuperTypes().add(this.getValueExpression());
+ standardValueEClass.getESuperTypes().add(this.getValueExpression());
+ integerValueEClass.getESuperTypes().add(this.getValueExpression());
+ enumExpressionEClass.getESuperTypes().add(this.getExpression());
+ loserTypeExpressionEClass.getESuperTypes().add(this.getEnumExpression());
+ arbitrationPolicyExpressionEClass.getESuperTypes().add(this.getEnumExpression());
+ setExpressionEClass.getESuperTypes().add(this.getExpression());
+ setOperatorEClass.getESuperTypes().add(this.getOperator());
+ sizeOperatorEClass.getESuperTypes().add(this.getSetOperator());
+ existsOperatorEClass.getESuperTypes().add(this.getLambdaContext());
+ forAllOperatorEClass.getESuperTypes().add(this.getLambdaContext());
+ maxOperatorEClass.getESuperTypes().add(this.getLambdaContext());
+ minOperatorEClass.getESuperTypes().add(this.getLambdaContext());
+ selectOperatorEClass.getESuperTypes().add(this.getLambdaContext());
+ setOfOperatorEClass.getESuperTypes().add(this.getOperator());
+ lambdaExpressionEClass.getESuperTypes().add(this.getExpression());
+ variableEClass.getESuperTypes().add(this.getRuleObject());
+ lambdaContextEClass.getESuperTypes().add(this.getSetOperator());
+ ifStatementEClass.getESuperTypes().add(this.getExpression());
+ sceneOperatorEClass.getESuperTypes().add(this.getOperator());
+ isOnEClass.getESuperTypes().add(this.getSceneOperator());
+ allocatableOperatorEClass.getESuperTypes().add(this.getOperator());
+ allocatedContentEClass.getESuperTypes().add(this.getAllocatableOperator());
+ contentValueEClass.getESuperTypes().add(this.getAllocatableOperator());
+ getContentsListEClass.getESuperTypes().add(this.getAllocatableOperator());
+ activeContentsEClass.getESuperTypes().add(this.getAllocatableOperator());
+ propertyOperatorEClass.getESuperTypes().add(this.getOperator());
+ getPropertyEClass.getESuperTypes().add(this.getPropertyOperator());
+ stateValueEClass.getESuperTypes().add(this.getContentOperator());
+ hasComeLaterThanEClass.getESuperTypes().add(this.getContentOperator());
+ hasComeEarlierThanEClass.getESuperTypes().add(this.getContentOperator());
+ sugarExpressionBaseEClass.getESuperTypes().add(this.getSugarExpression());
+ objectCompareNotEClass.getESuperTypes().add(this.getOperator());
+ objectCompareNotEClass.getESuperTypes().add(this.getSugarExpressionBase());
+ isAllocatedToEClass.getESuperTypes().add(this.getContentOperator());
+ isAllocatedToEClass.getESuperTypes().add(this.getSugarExpressionBase());
+ isChangedEClass.getESuperTypes().add(this.getAllocatableOperator());
+ isChangedEClass.getESuperTypes().add(this.getSugarExpressionBase());
+ isTranslatedToEClass.getESuperTypes().add(this.getAllocatableOperator());
+ isTranslatedToEClass.getESuperTypes().add(this.getSugarExpressionBase());
+ contentStateOperatorEClass.getESuperTypes().add(this.getOperator());
+ nullExpressionEClass.getESuperTypes().add(this.getExpression());
+
+ // Initialize classes, features, and operations; add parameters
+ initEClass(modelElementEClass, ModelElement.class, "ModelElement", IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getModelElement_Description(), ecorePackage.getEString(), "description", null, 0, 1,
+ ModelElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+ !IS_DERIVED, IS_ORDERED);
+
+ initEClass(namedElementEClass, NamedElement.class, "NamedElement", IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getNamedElement_Name(), ecorePackage.getEString(), "name", null, 0, 1, NamedElement.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(abstractAllocatableEClass, AbstractAllocatable.class, "AbstractAllocatable", IS_ABSTRACT,
+ !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getAbstractAllocatable_Contents(), this.getAbstractContent(),
+ this.getAbstractContent_Allocatable(), "contents", null, 0, -1, AbstractAllocatable.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getAbstractAllocatable_AllocatableGroup(), this.getAllocatableSet(),
+ this.getAllocatableSet_Target(), "allocatableGroup", null, 0, -1, AbstractAllocatable.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEOperation(getAbstractAllocatable__GetContentsList(), this.getContent(), "getContentsList", 0, -1,
+ IS_UNIQUE, !IS_ORDERED);
+
+ initEOperation(getAbstractAllocatable__CollectLeafAllocatable(), this.getAllocatable(),
+ "collectLeafAllocatable", 0, -1, IS_UNIQUE, !IS_ORDERED);
+
+ initEClass(allocatableEClass, Allocatable.class, "Allocatable", IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getAllocatable_ArbitrationPolicy(), this.getArbitrationPolicy(), "arbitrationPolicy", null, 0, 1,
+ Allocatable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+ !IS_DERIVED, IS_ORDERED);
+ initEReference(getAllocatable_Visibility(), this.getExpression(), null, "visibility", null, 0, 1,
+ Allocatable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEOperation(getAllocatable__CollectLeafAllocatable(), this.getAllocatable(), "collectLeafAllocatable", 0, -1,
+ IS_UNIQUE, !IS_ORDERED);
+
+ initEClass(allocatableSetEClass, AllocatableSet.class, "AllocatableSet", IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getAllocatableSet_Target(), this.getAbstractAllocatable(),
+ this.getAbstractAllocatable_AllocatableGroup(), "target", null, 0, -1, AllocatableSet.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEOperation(getAllocatableSet__CollectLeafAllocatable(), this.getAllocatable(), "collectLeafAllocatable", 0,
+ -1, IS_UNIQUE, !IS_ORDERED);
+
+ initEClass(projectEClass, Project.class, "Project", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getProject_Version(), ecorePackage.getEString(), "version", null, 0, 1, Project.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getProject_DummyName(), ecorePackage.getEString(), "dummyName", null, 0, 1, Project.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEOperation(getProject__GetName(), ecorePackage.getEString(), "getName", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(packagableElementEClass, PackagableElement.class, "PackagableElement", IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(packageEClass, rba.core.Package.class, "Package", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getPackage_Packagableelement(), this.getPackagableElement(), null, "packagableelement", null, 0,
+ -1, rba.core.Package.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
+ !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(stereotypeEClass, Stereotype.class, "Stereotype", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getStereotype_TargetModelName(), ecorePackage.getEString(), "targetModelName", null, 1, 1,
+ Stereotype.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+ !IS_DERIVED, IS_ORDERED);
+ initEReference(getStereotype_Variables(), this.getVariable(), null, "variables", null, 0, -1, Stereotype.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getStereotype_BodyText(), ecorePackage.getEString(), "bodyText", null, 1, 1, Stereotype.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(tagEClass, Tag.class, "Tag", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getTag_Values(), ecorePackage.getEString(), "values", null, 0, -1, Tag.class, !IS_TRANSIENT,
+ !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(ruleObjectEClass, RuleObject.class, "RuleObject", IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getRuleObject_Tags(), this.getTag(), null, "tags", null, 0, -1, RuleObject.class, !IS_TRANSIENT,
+ !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
+ IS_ORDERED);
+
+ initEOperation(getRuleObject__GetExpressionType(), this.getExpressionType(), "getExpressionType", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(abstractContentEClass, AbstractContent.class, "AbstractContent", IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getAbstractContent_ContentGroup(), this.getContentSet(), this.getContentSet_Target(),
+ "contentGroup", null, 0, -1, AbstractContent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+ !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getAbstractContent_Allocatable(), this.getAbstractAllocatable(),
+ this.getAbstractAllocatable_Contents(), "allocatable", null, 0, -1, AbstractContent.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEOperation(getAbstractContent__GetAllocatableList(), this.getAllocatable(), "getAllocatableList", 0, -1,
+ IS_UNIQUE, !IS_ORDERED);
+
+ initEOperation(getAbstractContent__CollectLeafContents(), this.getContent(), "collectLeafContents", 0, -1,
+ IS_UNIQUE, !IS_ORDERED);
+
+ initEClass(abstractSceneEClass, AbstractScene.class, "AbstractScene", IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(sceneEClass, Scene.class, "Scene", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getScene_Global(), ecorePackage.getEBoolean(), "global", "false", 1, 1, Scene.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getScene_Properties(), this.getAbstractProperty(), this.getAbstractProperty_Owner(),
+ "properties", null, 0, -1, Scene.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
+ !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEOperation(getScene__GetExpressionType(), this.getExpressionType(), "getExpressionType", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEClass(contentEClass, Content.class, "Content", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getContent_LoserType(), this.getLoserType(), "loserType", "NEVER_GIVEUP", 0, 1, Content.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getContent_States(), this.getContentState(), this.getContentState_Owner(), "states", null, 0, -1,
+ Content.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEOperation(getContent__CollectLeafContents(), this.getContent(), "collectLeafContents", 0, -1, IS_UNIQUE,
+ !IS_ORDERED);
+
+ initEClass(contentSetEClass, ContentSet.class, "ContentSet", IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getContentSet_Target(), this.getAbstractContent(), this.getAbstractContent_ContentGroup(),
+ "target", null, 0, -1, ContentSet.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
+ IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEOperation(getContentSet__CollectLeafContents(), this.getContent(), "collectLeafContents", 0, -1, IS_UNIQUE,
+ !IS_ORDERED);
+
+ initEClass(contentStateEClass, ContentState.class, "ContentState", IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getContentState_Value(), this.getExpression(), null, "value", null, 1, 1, ContentState.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getContentState_Owner(), this.getContent(), this.getContent_States(), "owner", null, 0, 1,
+ ContentState.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(abstractPropertyEClass, AbstractProperty.class, "AbstractProperty", IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getAbstractProperty_Owner(), this.getScene(), this.getScene_Properties(), "owner", null, 0, 1,
+ AbstractProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEOperation(getAbstractProperty__GetExpressionType(), this.getExpressionType(), "getExpressionType", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(integerPropertyEClass, IntegerProperty.class, "IntegerProperty", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getIntegerProperty_Value(), this.getExpression(), null, "value", null, 1, 1,
+ IntegerProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(abstractConstraintEClass, AbstractConstraint.class, "AbstractConstraint", IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getAbstractConstraint_Expression(), this.getExpression(), null, "expression", null, 1, 1,
+ AbstractConstraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(constraintEClass, Constraint.class, "Constraint", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getConstraint_Runtime(), ecorePackage.getEBoolean(), "runtime", "true", 1, 1, Constraint.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(expressionEClass, Expression.class, "Expression", IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getExpression_Type(), this.getExpressionType(), "type", null, 0, 1, Expression.class,
+ !IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+ initEAttribute(getExpression_Expression(), ecorePackage.getEString(), "expression", null, 0, 1,
+ Expression.class, !IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+ IS_DERIVED, IS_ORDERED);
+ initEReference(getExpression_LetStatements(), this.getLetStatement(), null, "letStatements", null, 0, -1,
+ Expression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEOperation(getExpression__GetUnderlyingType(), this.getExpressionType(), "getUnderlyingType", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getExpression__GetExpressionText(), ecorePackage.getEString(), "getExpressionText", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(letStatementEClass, LetStatement.class, "LetStatement", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getLetStatement_Variable(), this.getVariable(), null, "variable", null, 1, 1, LetStatement.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getLetStatement_Body(), this.getExpression(), null, "body", null, 1, 1, LetStatement.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEOperation(getLetStatement__ToString(), ecorePackage.getEString(), "toString", 1, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(complexExpressionEClass, ComplexExpression.class, "ComplexExpression", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getComplexExpression_OtherExpression(), this.getExpression(), null, "otherExpression", null, 1,
+ 1, ComplexExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
+ !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEOperation(getComplexExpression__GetExpressionText(), ecorePackage.getEString(), "getExpressionText", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getComplexExpression__GetUnderlyingType(), this.getExpressionType(), "getUnderlyingType", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getComplexExpression__GetType(), this.getExpressionType(), "getType", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEClass(operatorEClass, Operator.class, "Operator", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getOperator_Operand(), this.getExpression(), null, "operand", null, 1, -1, Operator.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEOperation(getOperator__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(isTypeOfEClass, IsTypeOf.class, "IsTypeOf", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getIsTypeOf_TagName(), ecorePackage.getEString(), "tagName", null, 1, 1, IsTypeOf.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEOperation(getIsTypeOf__GetExpressionText(), ecorePackage.getEString(), "getExpressionText", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getIsTypeOf__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getIsTypeOf__GetUnderlyingType(), this.getExpressionType(), "getUnderlyingType", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEClass(objectReferenceEClass, ObjectReference.class, "ObjectReference", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getObjectReference_RefObject(), this.getRuleObject(), null, "refObject", null, 0, 1,
+ ObjectReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEOperation(getObjectReference__GetUnderlyingType(), this.getExpressionType(), "getUnderlyingType", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getObjectReference__GetExpressionText(), ecorePackage.getEString(), "getExpressionText", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(previousModifierEClass, PreviousModifier.class, "PreviousModifier", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getPreviousModifier_ObjReference(), this.getObjectReference(), null, "objReference", null, 0, 1,
+ PreviousModifier.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEOperation(getPreviousModifier__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEOperation(getPreviousModifier__GetUnderlyingType(), this.getExpressionType(), "getUnderlyingType", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getPreviousModifier__GetExpressionText(), ecorePackage.getEString(), "getExpressionText", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(greaterThanOperatorEClass, GreaterThanOperator.class, "GreaterThanOperator", !IS_ABSTRACT,
+ !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getGreaterThanOperator__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEClass(muchGreaterThanOperatorEClass, MuchGreaterThanOperator.class, "MuchGreaterThanOperator",
+ !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getMuchGreaterThanOperator__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEClass(lowerThanOperatorEClass, LowerThanOperator.class, "LowerThanOperator", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getLowerThanOperator__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEClass(comparisonOperatorEClass, ComparisonOperator.class, "ComparisonOperator", IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getComparisonOperator__GetUnderlyingType(), this.getExpressionType(), "getUnderlyingType", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getComparisonOperator__GetExpressionText(), ecorePackage.getEString(), "getExpressionText", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(equalToOperatorEClass, EqualToOperator.class, "EqualToOperator", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getEqualToOperator__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEClass(comparisonAndEClass, ComparisonAnd.class, "ComparisonAnd", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getComparisonAnd__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEOperation(getComparisonAnd__GetExpressionText(), ecorePackage.getEString(), "getExpressionText", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(logicalOperatorEClass, LogicalOperator.class, "LogicalOperator", IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getLogicalOperator__GetUnderlyingType(), this.getExpressionType(), "getUnderlyingType", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getLogicalOperator__GetExpressionText(), ecorePackage.getEString(), "getExpressionText", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(andOperatorEClass, AndOperator.class, "AndOperator", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getAndOperator__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEClass(orOperatorEClass, OrOperator.class, "OrOperator", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getOrOperator__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(notOperatorEClass, NotOperator.class, "NotOperator", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getNotOperator__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEOperation(getNotOperator__GetExpressionText(), ecorePackage.getEString(), "getExpressionText", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(isEqualToOperatorEClass, IsEqualToOperator.class, "IsEqualToOperator", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getIsEqualToOperator__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEClass(isGreaterThanOperatorEClass, IsGreaterThanOperator.class, "IsGreaterThanOperator", !IS_ABSTRACT,
+ !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getIsGreaterThanOperator__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEClass(isLowerThanOperatorEClass, IsLowerThanOperator.class, "IsLowerThanOperator", !IS_ABSTRACT,
+ !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getIsLowerThanOperator__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEClass(isGreaterThanEqualOperatorEClass, IsGreaterThanEqualOperator.class, "IsGreaterThanEqualOperator",
+ !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getIsGreaterThanEqualOperator__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(isLowerThanEqualOperatorEClass, IsLowerThanEqualOperator.class, "IsLowerThanEqualOperator",
+ !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getIsLowerThanEqualOperator__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(arithmeticOperatorEClass, ArithmeticOperator.class, "ArithmeticOperator", IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getArithmeticOperator__GetUnderlyingType(), this.getExpressionType(), "getUnderlyingType", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getArithmeticOperator__GetExpressionText(), ecorePackage.getEString(), "getExpressionText", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(plusOperatorEClass, PlusOperator.class, "PlusOperator", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getPlusOperator__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEClass(impliesOperatorEClass, ImpliesOperator.class, "ImpliesOperator", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getImpliesOperator__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEClass(contentOperatorEClass, ContentOperator.class, "ContentOperator", IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getContentOperator__GetExpressionText(), ecorePackage.getEString(), "getExpressionText", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(isActiveEClass, IsActive.class, "IsActive", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getIsActive__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getIsActive__GetUnderlyingType(), this.getExpressionType(), "getUnderlyingType", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEClass(getAllocatablesEClass, GetAllocatables.class, "GetAllocatables", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getGetAllocatables__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEOperation(getGetAllocatables__GetUnderlyingType(), this.getExpressionType(), "getUnderlyingType", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(hasBeenDisplayedEClass, HasBeenDisplayed.class, "HasBeenDisplayed", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getHasBeenDisplayed__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEOperation(getHasBeenDisplayed__GetUnderlyingType(), this.getExpressionType(), "getUnderlyingType", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(activeStateEClass, ActiveState.class, "ActiveState", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getActiveState__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEOperation(getActiveState__GetUnderlyingType(), this.getExpressionType(), "getUnderlyingType", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(objectCompareEClass, ObjectCompare.class, "ObjectCompare", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getObjectCompare__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEOperation(getObjectCompare__GetUnderlyingType(), this.getExpressionType(), "getUnderlyingType", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getObjectCompare__GetExpressionText(), ecorePackage.getEString(), "getExpressionText", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(thatOfOperatorEClass, ThatOfOperator.class, "ThatOfOperator", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getThatOfOperator__GetExpressionText(), ecorePackage.getEString(), "getExpressionText", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getThatOfOperator__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEOperation(getThatOfOperator__GetUnderlyingType(), this.getExpressionType(), "getUnderlyingType", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(valueExpressionEClass, ValueExpression.class, "ValueExpression", IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getValueExpression__GetUnderlyingType(), this.getExpressionType(), "getUnderlyingType", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getValueExpression__GetExpressionValue(), ecorePackage.getEInt(), "getExpressionValue", 1, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getValueExpression__GetType(), this.getExpressionType(), "getType", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(maxValueEClass, MaxValue.class, "MaxValue", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getMaxValue__GetExpressionText(), ecorePackage.getEString(), "getExpressionText", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getMaxValue__GetExpressionValue(), ecorePackage.getEInt(), "getExpressionValue", 1, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEClass(minValueEClass, MinValue.class, "MinValue", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getMinValue__GetExpressionText(), ecorePackage.getEString(), "getExpressionText", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getMinValue__GetExpressionValue(), ecorePackage.getEInt(), "getExpressionValue", 1, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEClass(noneValueEClass, NoneValue.class, "NoneValue", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getNoneValue__GetExpressionText(), ecorePackage.getEString(), "getExpressionText", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getNoneValue__GetExpressionValue(), ecorePackage.getEInt(), "getExpressionValue", 1, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(standardValueEClass, StandardValue.class, "StandardValue", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getStandardValue__GetExpressionText(), ecorePackage.getEString(), "getExpressionText", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getStandardValue__GetExpressionValue(), ecorePackage.getEInt(), "getExpressionValue", 1, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(integerValueEClass, IntegerValue.class, "IntegerValue", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getIntegerValue_Value(), ecorePackage.getEInt(), "value", null, 1, 1, IntegerValue.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEOperation(getIntegerValue__GetExpressionText(), ecorePackage.getEString(), "getExpressionText", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getIntegerValue__GetExpressionValue(), ecorePackage.getEInt(), "getExpressionValue", 1, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(enumExpressionEClass, EnumExpression.class, "EnumExpression", IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getEnumExpression__GetUnderlyingType(), this.getExpressionType(), "getUnderlyingType", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getEnumExpression__GetExpressionValue(), ecorePackage.getEEnumerator(), "getExpressionValue", 1,
+ 1, IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getEnumExpression__GetType(), this.getExpressionType(), "getType", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(loserTypeExpressionEClass, LoserTypeExpression.class, "LoserTypeExpression", !IS_ABSTRACT,
+ !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getLoserTypeExpression_Value(), this.getLoserType(), "value", null, 1, 1,
+ LoserTypeExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEOperation(getLoserTypeExpression__GetExpressionText(), ecorePackage.getEString(), "getExpressionText", 0,
+ 1, IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getLoserTypeExpression__GetExpressionValue(), ecorePackage.getEEnumerator(),
+ "getExpressionValue", 1, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(arbitrationPolicyExpressionEClass, ArbitrationPolicyExpression.class, "ArbitrationPolicyExpression",
+ !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getArbitrationPolicyExpression_Value(), this.getArbitrationPolicy(), "value", null, 1, 1,
+ ArbitrationPolicyExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEOperation(getArbitrationPolicyExpression__GetExpressionText(), ecorePackage.getEString(),
+ "getExpressionText", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getArbitrationPolicyExpression__GetExpressionValue(), ecorePackage.getEEnumerator(),
+ "getExpressionValue", 1, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(setExpressionEClass, SetExpression.class, "SetExpression", IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(setOperatorEClass, SetOperator.class, "SetOperator", IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(sizeOperatorEClass, SizeOperator.class, "SizeOperator", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getSizeOperator__GetExpressionText(), ecorePackage.getEString(), "getExpressionText", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getSizeOperator__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEOperation(getSizeOperator__GetUnderlyingType(), this.getExpressionType(), "getUnderlyingType", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(existsOperatorEClass, ExistsOperator.class, "ExistsOperator", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getExistsOperator__GetExpressionText(), ecorePackage.getEString(), "getExpressionText", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getExistsOperator__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEOperation(getExistsOperator__GetUnderlyingType(), this.getExpressionType(), "getUnderlyingType", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(forAllOperatorEClass, ForAllOperator.class, "ForAllOperator", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getForAllOperator__GetExpressionText(), ecorePackage.getEString(), "getExpressionText", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getForAllOperator__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEOperation(getForAllOperator__GetUnderlyingType(), this.getExpressionType(), "getUnderlyingType", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(maxOperatorEClass, MaxOperator.class, "MaxOperator", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getMaxOperator__GetExpressionText(), ecorePackage.getEString(), "getExpressionText", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getMaxOperator__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEOperation(getMaxOperator__GetUnderlyingType(), this.getExpressionType(), "getUnderlyingType", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(minOperatorEClass, MinOperator.class, "MinOperator", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getMinOperator__GetExpressionText(), ecorePackage.getEString(), "getExpressionText", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getMinOperator__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEOperation(getMinOperator__GetUnderlyingType(), this.getExpressionType(), "getUnderlyingType", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(selectOperatorEClass, SelectOperator.class, "SelectOperator", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getSelectOperator__GetExpressionText(), ecorePackage.getEString(), "getExpressionText", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getSelectOperator__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEOperation(getSelectOperator__GetUnderlyingType(), this.getExpressionType(), "getUnderlyingType", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(setOfOperatorEClass, SetOfOperator.class, "SetOfOperator", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getSetOfOperator__GetExpressionText(), ecorePackage.getEString(), "getExpressionText", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getSetOfOperator__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEOperation(getSetOfOperator__GetUnderlyingType(), this.getExpressionType(), "getUnderlyingType", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(lambdaExpressionEClass, LambdaExpression.class, "LambdaExpression", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getLambdaExpression_Context(), this.getLambdaContext(), this.getLambdaContext_Lambda(),
+ "context", null, 0, 1, LambdaExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+ !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getLambdaExpression_X(), this.getVariable(), null, "x", null, 1, 1, LambdaExpression.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getLambdaExpression_BodyText(), this.getExpression(), null, "bodyText", null, 1, 1,
+ LambdaExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEOperation(getLambdaExpression__GetExpressionText(), ecorePackage.getEString(), "getExpressionText", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getLambdaExpression__GetUnderlyingType(), this.getExpressionType(), "getUnderlyingType", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(variableEClass, Variable.class, "Variable", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getVariable__GetExpressionType(), this.getExpressionType(), "getExpressionType", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEClass(lambdaContextEClass, LambdaContext.class, "LambdaContext", IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getLambdaContext_Lambda(), this.getLambdaExpression(), this.getLambdaExpression_Context(),
+ "lambda", null, 0, 1, LambdaContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
+ !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEOperation(getLambdaContext__GetContextType(), this.getExpressionType(), "getContextType", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEClass(ifStatementEClass, IfStatement.class, "IfStatement", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getIfStatement_Condition(), this.getExpression(), null, "condition", null, 1, 1,
+ IfStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getIfStatement_ThenExpression(), this.getExpression(), null, "thenExpression", null, 1, 1,
+ IfStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getIfStatement_ElseExpression(), this.getExpression(), null, "elseExpression", null, 1, 1,
+ IfStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEOperation(getIfStatement__GetUnderlyingType(), this.getExpressionType(), "getUnderlyingType", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getIfStatement__GetExpressionText(), ecorePackage.getEString(), "getExpressionText", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(sceneOperatorEClass, SceneOperator.class, "SceneOperator", IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getSceneOperator__GetExpressionText(), ecorePackage.getEString(), "getExpressionText", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(isOnEClass, IsOn.class, "IsOn", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getIsOn__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getIsOn__GetUnderlyingType(), this.getExpressionType(), "getUnderlyingType", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEClass(allocatableOperatorEClass, AllocatableOperator.class, "AllocatableOperator", IS_ABSTRACT,
+ !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getAllocatableOperator__GetExpressionText(), ecorePackage.getEString(), "getExpressionText", 0,
+ 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(allocatedContentEClass, AllocatedContent.class, "AllocatedContent", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getAllocatedContent__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEOperation(getAllocatedContent__GetUnderlyingType(), this.getExpressionType(), "getUnderlyingType", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(contentValueEClass, ContentValue.class, "ContentValue", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getContentValue__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEOperation(getContentValue__GetUnderlyingType(), this.getExpressionType(), "getUnderlyingType", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(getContentsListEClass, GetContentsList.class, "GetContentsList", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getGetContentsList__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEOperation(getGetContentsList__GetUnderlyingType(), this.getExpressionType(), "getUnderlyingType", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(activeContentsEClass, ActiveContents.class, "ActiveContents", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getActiveContents__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEOperation(getActiveContents__GetUnderlyingType(), this.getExpressionType(), "getUnderlyingType", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(propertyOperatorEClass, PropertyOperator.class, "PropertyOperator", IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getPropertyOperator__GetUnderlyingType(), this.getExpressionType(), "getUnderlyingType", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getPropertyOperator__GetExpressionText(), ecorePackage.getEString(), "getExpressionText", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(getPropertyEClass, GetProperty.class, "GetProperty", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getGetProperty__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEOperation(getGetProperty__GetUnderlyingType(), this.getExpressionType(), "getUnderlyingType", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(stateValueEClass, StateValue.class, "StateValue", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getStateValue__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getStateValue__GetUnderlyingType(), this.getExpressionType(), "getUnderlyingType", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(hasComeLaterThanEClass, HasComeLaterThan.class, "HasComeLaterThan", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getHasComeLaterThan__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEOperation(getHasComeLaterThan__GetUnderlyingType(), this.getExpressionType(), "getUnderlyingType", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getHasComeLaterThan__GetExpressionText(), ecorePackage.getEString(), "getExpressionText", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(hasComeEarlierThanEClass, HasComeEarlierThan.class, "HasComeEarlierThan", !IS_ABSTRACT,
+ !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getHasComeEarlierThan__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEOperation(getHasComeEarlierThan__GetUnderlyingType(), this.getExpressionType(), "getUnderlyingType", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getHasComeEarlierThan__GetExpressionText(), ecorePackage.getEString(), "getExpressionText", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(sugarExpressionEClass, SugarExpression.class, "SugarExpression", IS_ABSTRACT, IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getSugarExpression__CanExpand(), ecorePackage.getEBoolean(), "canExpand", 1, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEOperation(getSugarExpression__GetExpanded(), this.getExpression(), "getExpanded", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEClass(sugarExpressionBaseEClass, SugarExpressionBase.class, "SugarExpressionBase", IS_ABSTRACT,
+ IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getSugarExpressionBase__CanExpand(), ecorePackage.getEBoolean(), "canExpand", 1, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEClass(objectCompareNotEClass, ObjectCompareNot.class, "ObjectCompareNot", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getObjectCompareNot__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEOperation(getObjectCompareNot__GetUnderlyingType(), this.getExpressionType(), "getUnderlyingType", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getObjectCompareNot__GetExpressionText(), ecorePackage.getEString(), "getExpressionText", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(isAllocatedToEClass, IsAllocatedTo.class, "IsAllocatedTo", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getIsAllocatedTo__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEOperation(getIsAllocatedTo__GetUnderlyingType(), this.getExpressionType(), "getUnderlyingType", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getIsAllocatedTo__GetExpressionText(), ecorePackage.getEString(), "getExpressionText", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(isChangedEClass, IsChanged.class, "IsChanged", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getIsChanged__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getIsChanged__GetUnderlyingType(), this.getExpressionType(), "getUnderlyingType", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(isTranslatedToEClass, IsTranslatedTo.class, "IsTranslatedTo", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getIsTranslatedTo__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEOperation(getIsTranslatedTo__GetUnderlyingType(), this.getExpressionType(), "getUnderlyingType", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getIsTranslatedTo__GetExpressionText(), ecorePackage.getEString(), "getExpressionText", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(getStateEClass, GetState.class, "GetState", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getGetState__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(contentStateOperatorEClass, ContentStateOperator.class, "ContentStateOperator", IS_ABSTRACT,
+ !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getContentStateOperator__GetExpressionText(), ecorePackage.getEString(), "getExpressionText", 0,
+ 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(nullExpressionEClass, NullExpression.class, "NullExpression", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getNullExpression__GetUnderlyingType(), this.getExpressionType(), "getUnderlyingType", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getNullExpression__GetExpressionText(), ecorePackage.getEString(), "getExpressionText", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ // Initialize enums and add enum literals
+ initEEnum(arbitrationPolicyEEnum, ArbitrationPolicy.class, "ArbitrationPolicy");
+ addEEnumLiteral(arbitrationPolicyEEnum, ArbitrationPolicy.DEFAULT);
+ addEEnumLiteral(arbitrationPolicyEEnum, ArbitrationPolicy.FIRST_COME_FIRST);
+ addEEnumLiteral(arbitrationPolicyEEnum, ArbitrationPolicy.LAST_COME_FIRST);
+ addEEnumLiteral(arbitrationPolicyEEnum, ArbitrationPolicy.PRIORITY_FIRST_COME_FIRST);
+ addEEnumLiteral(arbitrationPolicyEEnum, ArbitrationPolicy.PRIORITY_LAST_COME_FIRST);
+
+ initEEnum(expressionTypeEEnum, ExpressionType.class, "ExpressionType");
+ addEEnumLiteral(expressionTypeEEnum, ExpressionType.VALUE);
+ addEEnumLiteral(expressionTypeEEnum, ExpressionType.BOOLEAN);
+ addEEnumLiteral(expressionTypeEEnum, ExpressionType.AREA);
+ addEEnumLiteral(expressionTypeEEnum, ExpressionType.CONTENT);
+ addEEnumLiteral(expressionTypeEEnum, ExpressionType.SET_OF_AREA);
+ addEEnumLiteral(expressionTypeEEnum, ExpressionType.SET_OF_CONTENT);
+ addEEnumLiteral(expressionTypeEEnum, ExpressionType.LAMBDA);
+ addEEnumLiteral(expressionTypeEEnum, ExpressionType.SCENE);
+ addEEnumLiteral(expressionTypeEEnum, ExpressionType.ZONE);
+ addEEnumLiteral(expressionTypeEEnum, ExpressionType.SET_OF_ZONE);
+ addEEnumLiteral(expressionTypeEEnum, ExpressionType.SOUND);
+ addEEnumLiteral(expressionTypeEEnum, ExpressionType.SET_OF_SOUND);
+ addEEnumLiteral(expressionTypeEEnum, ExpressionType.PROPERTY);
+ addEEnumLiteral(expressionTypeEEnum, ExpressionType.CONTENT_STATE);
+ addEEnumLiteral(expressionTypeEEnum, ExpressionType.ENUM);
+ addEEnumLiteral(expressionTypeEEnum, ExpressionType.NULL);
+
+ initEEnum(loserTypeEEnum, LoserType.class, "LoserType");
+ addEEnumLiteral(loserTypeEEnum, LoserType.NEVER_GIVEUP);
+ addEEnumLiteral(loserTypeEEnum, LoserType.GOOD_LOSER);
+ addEEnumLiteral(loserTypeEEnum, LoserType.DO_NOT_GIVEUP_UNTIL_WIN);
+
+ // Create resource
+ createResource(eNS_URI);
+
+ // Create annotations
+ // http://www.eclipse.org/OCL/Import
+ createImportAnnotations();
+ }
+
+ /**
+ * Initializes the annotations for <b>http://www.eclipse.org/OCL/Import</b>.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createImportAnnotations() {
+ String source = "http://www.eclipse.org/OCL/Import";
+ addAnnotation(this, source, new String[] { "ecore", "http://www.eclipse.org/emf/2002/Ecore" });
+ }
+
+} // RBACorePackageImpl
diff --git a/rba.model.core/src/rba/core/impl/RuleObjectImpl.java b/rba.model.core/src/rba/core/impl/RuleObjectImpl.java
new file mode 100644
index 0000000..bd3687c
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/RuleObjectImpl.java
@@ -0,0 +1,167 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+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.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import rba.core.ExpressionType;
+import rba.core.RBACorePackage;
+import rba.core.RuleObject;
+import rba.core.Tag;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Rule Object</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.impl.RuleObjectImpl#getTags <em>Tags</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class RuleObjectImpl extends PackagableElementImpl implements RuleObject {
+ /**
+ * The cached value of the '{@link #getTags() <em>Tags</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTags()
+ * @generated
+ * @ordered
+ */
+ protected EList<Tag> tags;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected RuleObjectImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.RULE_OBJECT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Tag> getTags() {
+ if (tags == null) {
+ tags = new EObjectContainmentEList<Tag>(Tag.class, this, RBACorePackage.RULE_OBJECT__TAGS);
+ }
+ return tags;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getExpressionType() {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case RBACorePackage.RULE_OBJECT__TAGS:
+ return ((InternalEList<?>) getTags()).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 RBACorePackage.RULE_OBJECT__TAGS:
+ return getTags();
+ }
+ 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 RBACorePackage.RULE_OBJECT__TAGS:
+ getTags().clear();
+ getTags().addAll((Collection<? extends Tag>) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.RULE_OBJECT__TAGS:
+ getTags().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.RULE_OBJECT__TAGS:
+ return tags != null && !tags.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.RULE_OBJECT___GET_EXPRESSION_TYPE:
+ return getExpressionType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // RuleObjectImpl
diff --git a/rba.model.core/src/rba/core/impl/SceneImpl.java b/rba.model.core/src/rba/core/impl/SceneImpl.java
new file mode 100644
index 0000000..9cdd3a4
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/SceneImpl.java
@@ -0,0 +1,245 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+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.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import rba.core.AbstractProperty;
+import rba.core.ExpressionType;
+import rba.core.RBACorePackage;
+import rba.core.Scene;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Scene</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.impl.SceneImpl#isGlobal <em>Global</em>}</li>
+ * <li>{@link rba.core.impl.SceneImpl#getProperties <em>Properties</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class SceneImpl extends AbstractSceneImpl implements Scene {
+ /**
+ * The default value of the '{@link #isGlobal() <em>Global</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see #isGlobal()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean GLOBAL_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isGlobal() <em>Global</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see #isGlobal()
+ * @generated
+ * @ordered
+ */
+ protected boolean global = GLOBAL_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getProperties() <em>Properties</em>}' containment reference list.
+ * <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ * @see #getProperties()
+ * @generated
+ * @ordered
+ */
+ protected EList<AbstractProperty> properties;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected SceneImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.SCENE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isGlobal() {
+ return global;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setGlobal(boolean newGlobal) {
+ boolean oldGlobal = global;
+ global = newGlobal;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RBACorePackage.SCENE__GLOBAL, oldGlobal, global));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<AbstractProperty> getProperties() {
+ if (properties == null) {
+ properties = new EObjectContainmentWithInverseEList<AbstractProperty>(AbstractProperty.class, this,
+ RBACorePackage.SCENE__PROPERTIES, RBACorePackage.ABSTRACT_PROPERTY__OWNER);
+ }
+ return properties;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getExpressionType() {
+ return ExpressionType.SCENE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case RBACorePackage.SCENE__PROPERTIES:
+ return ((InternalEList<InternalEObject>) (InternalEList<?>) getProperties()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case RBACorePackage.SCENE__PROPERTIES:
+ return ((InternalEList<?>) getProperties()).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 RBACorePackage.SCENE__GLOBAL:
+ return isGlobal();
+ case RBACorePackage.SCENE__PROPERTIES:
+ return getProperties();
+ }
+ 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 RBACorePackage.SCENE__GLOBAL:
+ setGlobal((Boolean) newValue);
+ return;
+ case RBACorePackage.SCENE__PROPERTIES:
+ getProperties().clear();
+ getProperties().addAll((Collection<? extends AbstractProperty>) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.SCENE__GLOBAL:
+ setGlobal(GLOBAL_EDEFAULT);
+ return;
+ case RBACorePackage.SCENE__PROPERTIES:
+ getProperties().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.SCENE__GLOBAL:
+ return global != GLOBAL_EDEFAULT;
+ case RBACorePackage.SCENE__PROPERTIES:
+ return properties != null && !properties.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.SCENE___GET_EXPRESSION_TYPE:
+ return getExpressionType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy())
+ return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (global: ");
+ result.append(global);
+ result.append(')');
+ return result.toString();
+ }
+
+} // SceneImpl
diff --git a/rba.model.core/src/rba/core/impl/SceneOperatorImpl.java b/rba.model.core/src/rba/core/impl/SceneOperatorImpl.java
new file mode 100644
index 0000000..86fdfcf
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/SceneOperatorImpl.java
@@ -0,0 +1,62 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.RBACorePackage;
+import rba.core.SceneOperator;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Scene Operator</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public abstract class SceneOperatorImpl extends OperatorImpl implements SceneOperator {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected SceneOperatorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.SCENE_OPERATOR;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ StringBuffer expressionText = new StringBuffer();
+ EList<rba.core.Expression> expressions = getOperand();
+ expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : "[Invalid_Expression]");
+ expressionText.append(getSymbol());
+ return expressionText.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.SCENE_OPERATOR___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // SceneOperatorImpl
diff --git a/rba.model.core/src/rba/core/impl/SelectOperatorImpl.java b/rba.model.core/src/rba/core/impl/SelectOperatorImpl.java
new file mode 100644
index 0000000..9acb6d1
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/SelectOperatorImpl.java
@@ -0,0 +1,92 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.Expression;
+import rba.core.ExpressionType;
+import rba.core.RBACorePackage;
+import rba.core.SelectOperator;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Select Operator</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class SelectOperatorImpl extends LambdaContextImpl implements SelectOperator {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected SelectOperatorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.SELECT_OPERATOR;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ StringBuffer expressionText = new StringBuffer();
+ EList<rba.core.Expression> expressions = getOperand();
+ rba.core.LambdaExpression lambda = getLambda();
+ expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : "[Invalid_Expression]");
+ expressionText.append(getSymbol());
+ expressionText.append("{ ");
+ expressionText.append(lambda != null ? lambda.getExpressionText() : "[Invalid_Expression]");
+ expressionText.append(" }");
+ return expressionText.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return ".select";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ if (!getOperand().isEmpty()) {
+ Expression first = getOperand().get(0);
+ return first.getType();
+ }
+ return ExpressionType.VALUE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.SELECT_OPERATOR___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ case RBACorePackage.SELECT_OPERATOR___GET_SYMBOL:
+ return getSymbol();
+ case RBACorePackage.SELECT_OPERATOR___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // SelectOperatorImpl
diff --git a/rba.model.core/src/rba/core/impl/SetExpressionImpl.java b/rba.model.core/src/rba/core/impl/SetExpressionImpl.java
new file mode 100644
index 0000000..612a015
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/SetExpressionImpl.java
@@ -0,0 +1,33 @@
+/**
+ */
+package rba.core.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.RBACorePackage;
+import rba.core.SetExpression;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Set Expression</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public abstract class SetExpressionImpl extends ExpressionImpl implements SetExpression {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected SetExpressionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.SET_EXPRESSION;
+ }
+
+} // SetExpressionImpl
diff --git a/rba.model.core/src/rba/core/impl/SetOfOperatorImpl.java b/rba.model.core/src/rba/core/impl/SetOfOperatorImpl.java
new file mode 100644
index 0000000..4500364
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/SetOfOperatorImpl.java
@@ -0,0 +1,106 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.ExpressionType;
+import rba.core.RBACorePackage;
+import rba.core.SetOfOperator;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Set Of Operator</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class SetOfOperatorImpl extends OperatorImpl implements SetOfOperator {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected SetOfOperatorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.SET_OF_OPERATOR;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ StringBuffer expressionText = new StringBuffer();
+ EList<rba.core.Expression> expressions = getOperand();
+ expressionText.append("{");
+ for (int i = 0; i < expressions.size(); i++) {
+ rba.core.Expression expression = expressions.get(i);
+ expressionText.append(expression.getExpressionText());
+ if (i == expressions.size() - 1) {
+ expressionText.append("}");
+ } else {
+ expressionText.append(", ");
+ }
+ }
+ return expressionText.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return "";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ EList<rba.core.Expression> expressions = getOperand();
+ if (!expressions.isEmpty() && expressions.get(0) != null) {
+ rba.core.Expression first = expressions.get(0);
+ if ((first.getType() == ExpressionType.CONTENT) || (first.getType() == ExpressionType.SET_OF_CONTENT)) {
+ return ExpressionType.SET_OF_CONTENT;
+ } else if ((first.getType() == ExpressionType.AREA) || (first.getType() == ExpressionType.SET_OF_AREA)) {
+ return ExpressionType.SET_OF_AREA;
+ } else if ((first.getType() == ExpressionType.SOUND) || (first.getType() == ExpressionType.SET_OF_SOUND)) {
+ return ExpressionType.SET_OF_SOUND;
+ } else if ((first.getType() == ExpressionType.ZONE) || (first.getType() == ExpressionType.SET_OF_ZONE)) {
+ return ExpressionType.SET_OF_ZONE;
+ } else {
+ return first.getType();
+ }
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.SET_OF_OPERATOR___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ case RBACorePackage.SET_OF_OPERATOR___GET_SYMBOL:
+ return getSymbol();
+ case RBACorePackage.SET_OF_OPERATOR___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // SetOfOperatorImpl
diff --git a/rba.model.core/src/rba/core/impl/SetOperatorImpl.java b/rba.model.core/src/rba/core/impl/SetOperatorImpl.java
new file mode 100644
index 0000000..0614ac8
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/SetOperatorImpl.java
@@ -0,0 +1,33 @@
+/**
+ */
+package rba.core.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.RBACorePackage;
+import rba.core.SetOperator;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Set Operator</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public abstract class SetOperatorImpl extends OperatorImpl implements SetOperator {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected SetOperatorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.SET_OPERATOR;
+ }
+
+} // SetOperatorImpl
diff --git a/rba.model.core/src/rba/core/impl/SizeOperatorImpl.java b/rba.model.core/src/rba/core/impl/SizeOperatorImpl.java
new file mode 100644
index 0000000..df669e5
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/SizeOperatorImpl.java
@@ -0,0 +1,83 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.ExpressionType;
+import rba.core.RBACorePackage;
+import rba.core.SizeOperator;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Size Operator</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class SizeOperatorImpl extends SetOperatorImpl implements SizeOperator {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected SizeOperatorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.SIZE_OPERATOR;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ StringBuffer expressionText = new StringBuffer();
+ EList<rba.core.Expression> expressions = getOperand();
+ expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : "[Invalid_Expression]");
+ expressionText.append(getSymbol());
+ return expressionText.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return ".size()";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return ExpressionType.VALUE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.SIZE_OPERATOR___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ case RBACorePackage.SIZE_OPERATOR___GET_SYMBOL:
+ return getSymbol();
+ case RBACorePackage.SIZE_OPERATOR___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // SizeOperatorImpl
diff --git a/rba.model.core/src/rba/core/impl/StandardValueImpl.java b/rba.model.core/src/rba/core/impl/StandardValueImpl.java
new file mode 100644
index 0000000..177510a
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/StandardValueImpl.java
@@ -0,0 +1,68 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.RBACorePackage;
+import rba.core.StandardValue;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Standard Value</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class StandardValueImpl extends ValueExpressionImpl implements StandardValue {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected StandardValueImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.STANDARD_VALUE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ return "STANDARD";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public int getExpressionValue() {
+ return 10;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.STANDARD_VALUE___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ case RBACorePackage.STANDARD_VALUE___GET_EXPRESSION_VALUE:
+ return getExpressionValue();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // StandardValueImpl
diff --git a/rba.model.core/src/rba/core/impl/StateValueImpl.java b/rba.model.core/src/rba/core/impl/StateValueImpl.java
new file mode 100644
index 0000000..047682d
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/StateValueImpl.java
@@ -0,0 +1,69 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.ExpressionType;
+import rba.core.RBACorePackage;
+import rba.core.StateValue;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>State Value</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class StateValueImpl extends ContentOperatorImpl implements StateValue {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected StateValueImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.STATE_VALUE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return ".stateValue()"; //$NON-NLS-1$
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return ExpressionType.VALUE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.STATE_VALUE___GET_SYMBOL:
+ return getSymbol();
+ case RBACorePackage.STATE_VALUE___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // StateValueImpl
diff --git a/rba.model.core/src/rba/core/impl/StereotypeImpl.java b/rba.model.core/src/rba/core/impl/StereotypeImpl.java
new file mode 100644
index 0000000..d53306f
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/StereotypeImpl.java
@@ -0,0 +1,263 @@
+/**
+ */
+package rba.core.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 rba.core.RBACorePackage;
+import rba.core.Stereotype;
+import rba.core.Variable;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Stereotype</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.impl.StereotypeImpl#getTargetModelName <em>Target Model Name</em>}</li>
+ * <li>{@link rba.core.impl.StereotypeImpl#getVariables <em>Variables</em>}</li>
+ * <li>{@link rba.core.impl.StereotypeImpl#getBodyText <em>Body Text</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class StereotypeImpl extends PackagableElementImpl implements Stereotype {
+ /**
+ * The default value of the '{@link #getTargetModelName() <em>Target Model Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTargetModelName()
+ * @generated
+ * @ordered
+ */
+ protected static final String TARGET_MODEL_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getTargetModelName() <em>Target Model Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTargetModelName()
+ * @generated
+ * @ordered
+ */
+ protected String targetModelName = TARGET_MODEL_NAME_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getVariables() <em>Variables</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVariables()
+ * @generated
+ * @ordered
+ */
+ protected EList<Variable> variables;
+
+ /**
+ * The default value of the '{@link #getBodyText() <em>Body Text</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @see #getBodyText()
+ * @generated
+ * @ordered
+ */
+ protected static final String BODY_TEXT_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getBodyText() <em>Body Text</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @see #getBodyText()
+ * @generated
+ * @ordered
+ */
+ protected String bodyText = BODY_TEXT_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected StereotypeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.STEREOTYPE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getTargetModelName() {
+ return targetModelName;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTargetModelName(String newTargetModelName) {
+ String oldTargetModelName = targetModelName;
+ targetModelName = newTargetModelName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RBACorePackage.STEREOTYPE__TARGET_MODEL_NAME,
+ oldTargetModelName, targetModelName));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getBodyText() {
+ return bodyText;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBodyText(String newBodyText) {
+ String oldBodyText = bodyText;
+ bodyText = newBodyText;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RBACorePackage.STEREOTYPE__BODY_TEXT, oldBodyText,
+ bodyText));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Variable> getVariables() {
+ if (variables == null) {
+ variables = new EObjectContainmentEList<Variable>(Variable.class, this,
+ RBACorePackage.STEREOTYPE__VARIABLES);
+ }
+ return variables;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case RBACorePackage.STEREOTYPE__VARIABLES:
+ return ((InternalEList<?>) getVariables()).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 RBACorePackage.STEREOTYPE__TARGET_MODEL_NAME:
+ return getTargetModelName();
+ case RBACorePackage.STEREOTYPE__VARIABLES:
+ return getVariables();
+ case RBACorePackage.STEREOTYPE__BODY_TEXT:
+ return getBodyText();
+ }
+ 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 RBACorePackage.STEREOTYPE__TARGET_MODEL_NAME:
+ setTargetModelName((String) newValue);
+ return;
+ case RBACorePackage.STEREOTYPE__VARIABLES:
+ getVariables().clear();
+ getVariables().addAll((Collection<? extends Variable>) newValue);
+ return;
+ case RBACorePackage.STEREOTYPE__BODY_TEXT:
+ setBodyText((String) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.STEREOTYPE__TARGET_MODEL_NAME:
+ setTargetModelName(TARGET_MODEL_NAME_EDEFAULT);
+ return;
+ case RBACorePackage.STEREOTYPE__VARIABLES:
+ getVariables().clear();
+ return;
+ case RBACorePackage.STEREOTYPE__BODY_TEXT:
+ setBodyText(BODY_TEXT_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.STEREOTYPE__TARGET_MODEL_NAME:
+ return TARGET_MODEL_NAME_EDEFAULT == null ? targetModelName != null
+ : !TARGET_MODEL_NAME_EDEFAULT.equals(targetModelName);
+ case RBACorePackage.STEREOTYPE__VARIABLES:
+ return variables != null && !variables.isEmpty();
+ case RBACorePackage.STEREOTYPE__BODY_TEXT:
+ return BODY_TEXT_EDEFAULT == null ? bodyText != null : !BODY_TEXT_EDEFAULT.equals(bodyText);
+ }
+ 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(" (targetModelName: ");
+ result.append(targetModelName);
+ result.append(", bodyText: ");
+ result.append(bodyText);
+ result.append(')');
+ return result.toString();
+ }
+
+} // StereotypeImpl
diff --git a/rba.model.core/src/rba/core/impl/TagImpl.java b/rba.model.core/src/rba/core/impl/TagImpl.java
new file mode 100644
index 0000000..c94583c
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/TagImpl.java
@@ -0,0 +1,148 @@
+/**
+ */
+package rba.core.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.util.EDataTypeEList;
+
+import rba.core.RBACorePackage;
+import rba.core.Tag;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Tag</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link rba.core.impl.TagImpl#getValues <em>Values</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class TagImpl extends NamedElementImpl implements Tag {
+ /**
+ * The cached value of the '{@link #getValues() <em>Values</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValues()
+ * @generated
+ * @ordered
+ */
+ protected EList<String> values;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TagImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.TAG;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<String> getValues() {
+ if (values == null) {
+ values = new EDataTypeEList<String>(String.class, this, RBACorePackage.TAG__VALUES);
+ }
+ return values;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case RBACorePackage.TAG__VALUES:
+ return getValues();
+ }
+ 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 RBACorePackage.TAG__VALUES:
+ getValues().clear();
+ getValues().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 RBACorePackage.TAG__VALUES:
+ getValues().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case RBACorePackage.TAG__VALUES:
+ return values != null && !values.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(" (values: ");
+ result.append(values);
+ result.append(')');
+ return result.toString();
+ }
+
+} //TagImpl
diff --git a/rba.model.core/src/rba/core/impl/ThatOfOperatorImpl.java b/rba.model.core/src/rba/core/impl/ThatOfOperatorImpl.java
new file mode 100644
index 0000000..323fcad
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/ThatOfOperatorImpl.java
@@ -0,0 +1,83 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.ExpressionType;
+import rba.core.RBACorePackage;
+import rba.core.ThatOfOperator;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>That Of Operator</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class ThatOfOperatorImpl extends OperatorImpl implements ThatOfOperator {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected ThatOfOperatorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.THAT_OF_OPERATOR;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ StringBuffer expressionText = new StringBuffer();
+ EList<rba.core.Expression> expressions = getOperand();
+ expressionText.append(getSymbol());
+ expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : "[Invalid_Expression]");
+ return expressionText.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return "That of ";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return ExpressionType.VALUE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.THAT_OF_OPERATOR___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ case RBACorePackage.THAT_OF_OPERATOR___GET_SYMBOL:
+ return getSymbol();
+ case RBACorePackage.THAT_OF_OPERATOR___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // ThatOfOperatorImpl
diff --git a/rba.model.core/src/rba/core/impl/ValueExpressionImpl.java b/rba.model.core/src/rba/core/impl/ValueExpressionImpl.java
new file mode 100644
index 0000000..b46eb87
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/ValueExpressionImpl.java
@@ -0,0 +1,81 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.ExpressionType;
+import rba.core.RBACorePackage;
+import rba.core.ValueExpression;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Value Expression</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public abstract class ValueExpressionImpl extends ExpressionImpl implements ValueExpression {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected ValueExpressionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.VALUE_EXPRESSION;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return ExpressionType.VALUE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public int getExpressionValue() {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getType() {
+ return getUnderlyingType();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.VALUE_EXPRESSION___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ case RBACorePackage.VALUE_EXPRESSION___GET_EXPRESSION_VALUE:
+ return getExpressionValue();
+ case RBACorePackage.VALUE_EXPRESSION___GET_TYPE:
+ return getType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // ValueExpressionImpl
diff --git a/rba.model.core/src/rba/core/impl/VariableImpl.java b/rba.model.core/src/rba/core/impl/VariableImpl.java
new file mode 100644
index 0000000..3a16ec6
--- /dev/null
+++ b/rba.model.core/src/rba/core/impl/VariableImpl.java
@@ -0,0 +1,103 @@
+/**
+ */
+package rba.core.impl;
+
+import java.lang.reflect.InvocationTargetException;
+import java.util.List;
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.EObject;
+import rba.core.Expression;
+import rba.core.ExpressionType;
+import rba.core.LambdaContext;
+import rba.core.LambdaExpression;
+import rba.core.LetStatement;
+import rba.core.RBACorePackage;
+import rba.core.Variable;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Variable</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class VariableImpl extends RuleObjectImpl implements Variable {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected VariableImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBACorePackage.Literals.VARIABLE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getExpressionType() {
+ EObject container = eContainer();
+ if (container instanceof LambdaExpression) {
+ container = container.eContainer();
+ if (container instanceof LambdaContext) {
+ List<Expression> operands = ((LambdaContext) container).getOperand();
+ if (operands.size() > 0) {
+ switch (operands.get(0).getUnderlyingType()) {
+ case AREA:
+ case SET_OF_AREA:
+ return ExpressionType.AREA;
+ case CONTENT:
+ case SET_OF_CONTENT:
+ return ExpressionType.CONTENT;
+ case SOUND:
+ case SET_OF_SOUND:
+ return ExpressionType.SOUND;
+ case ZONE:
+ case SET_OF_ZONE:
+ return ExpressionType.ZONE;
+ case SCENE:
+ return ExpressionType.SCENE;
+ case PROPERTY:
+ return ExpressionType.PROPERTY;
+ case BOOLEAN:
+ return ExpressionType.BOOLEAN;
+ case LAMBDA:
+ return ExpressionType.LAMBDA;
+ case VALUE:
+ default:
+ return ExpressionType.VALUE;
+ }
+ }
+ }
+ } else if (container instanceof LetStatement) {
+ Expression body = ((LetStatement) container).getBody();
+ if (body != null) {
+ return body.getUnderlyingType();
+ }
+ }
+ return ExpressionType.VALUE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBACorePackage.VARIABLE___GET_EXPRESSION_TYPE:
+ return getExpressionType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // VariableImpl
diff --git a/rba.model.core/src/rba/core/util/RBACoreAdapterFactory.java b/rba.model.core/src/rba/core/util/RBACoreAdapterFactory.java
new file mode 100644
index 0000000..715cc9a
--- /dev/null
+++ b/rba.model.core/src/rba/core/util/RBACoreAdapterFactory.java
@@ -0,0 +1,1861 @@
+/**
+ */
+package rba.core.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 rba.core.AbstractAllocatable;
+import rba.core.AbstractConstraint;
+import rba.core.AbstractContent;
+import rba.core.AbstractProperty;
+import rba.core.AbstractScene;
+import rba.core.ActiveContents;
+import rba.core.ActiveState;
+import rba.core.Allocatable;
+import rba.core.AllocatableOperator;
+import rba.core.AllocatableSet;
+import rba.core.AllocatedContent;
+import rba.core.AndOperator;
+import rba.core.ArbitrationPolicyExpression;
+import rba.core.ArithmeticOperator;
+import rba.core.ComparisonAnd;
+import rba.core.ComparisonOperator;
+import rba.core.ComplexExpression;
+import rba.core.Constraint;
+import rba.core.Content;
+import rba.core.ContentOperator;
+import rba.core.ContentSet;
+import rba.core.ContentState;
+import rba.core.ContentStateOperator;
+import rba.core.ContentValue;
+import rba.core.EnumExpression;
+import rba.core.EqualToOperator;
+import rba.core.ExistsOperator;
+import rba.core.Expression;
+import rba.core.ForAllOperator;
+import rba.core.GetAllocatables;
+import rba.core.GetContentsList;
+import rba.core.GetProperty;
+import rba.core.GetState;
+import rba.core.GreaterThanOperator;
+import rba.core.HasBeenDisplayed;
+import rba.core.HasComeEarlierThan;
+import rba.core.HasComeLaterThan;
+import rba.core.IfStatement;
+import rba.core.ImpliesOperator;
+import rba.core.IntegerProperty;
+import rba.core.IntegerValue;
+import rba.core.IsActive;
+import rba.core.IsAllocatedTo;
+import rba.core.IsChanged;
+import rba.core.IsEqualToOperator;
+import rba.core.IsGreaterThanEqualOperator;
+import rba.core.IsGreaterThanOperator;
+import rba.core.IsLowerThanEqualOperator;
+import rba.core.IsLowerThanOperator;
+import rba.core.IsOn;
+import rba.core.IsTranslatedTo;
+import rba.core.IsTypeOf;
+import rba.core.LambdaContext;
+import rba.core.LambdaExpression;
+import rba.core.LetStatement;
+import rba.core.LogicalOperator;
+import rba.core.LoserTypeExpression;
+import rba.core.LowerThanOperator;
+import rba.core.MaxOperator;
+import rba.core.MaxValue;
+import rba.core.MinOperator;
+import rba.core.MinValue;
+import rba.core.ModelElement;
+import rba.core.MuchGreaterThanOperator;
+import rba.core.NamedElement;
+import rba.core.NoneValue;
+import rba.core.NotOperator;
+import rba.core.NullExpression;
+import rba.core.ObjectCompare;
+import rba.core.ObjectCompareNot;
+import rba.core.ObjectReference;
+import rba.core.Operator;
+import rba.core.OrOperator;
+import rba.core.PackagableElement;
+import rba.core.PlusOperator;
+import rba.core.PreviousModifier;
+import rba.core.Project;
+import rba.core.PropertyOperator;
+import rba.core.RBACorePackage;
+import rba.core.RuleObject;
+import rba.core.Scene;
+import rba.core.SceneOperator;
+import rba.core.SelectOperator;
+import rba.core.SetExpression;
+import rba.core.SetOfOperator;
+import rba.core.SetOperator;
+import rba.core.SizeOperator;
+import rba.core.StandardValue;
+import rba.core.StateValue;
+import rba.core.Stereotype;
+import rba.core.SugarExpression;
+import rba.core.SugarExpressionBase;
+import rba.core.Tag;
+import rba.core.ThatOfOperator;
+import rba.core.ValueExpression;
+import rba.core.Variable;
+
+/**
+ * <!-- 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 rba.core.RBACorePackage
+ * @generated
+ */
+public class RBACoreAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected static RBACorePackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public RBACoreAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = RBACorePackage.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 RBACoreSwitch<Adapter> modelSwitch = new RBACoreSwitch<Adapter>() {
+ @Override
+ public Adapter caseModelElement(ModelElement object) {
+ return createModelElementAdapter();
+ }
+
+ @Override
+ public Adapter caseNamedElement(NamedElement object) {
+ return createNamedElementAdapter();
+ }
+
+ @Override
+ public Adapter caseAbstractAllocatable(AbstractAllocatable object) {
+ return createAbstractAllocatableAdapter();
+ }
+
+ @Override
+ public Adapter caseAllocatable(Allocatable object) {
+ return createAllocatableAdapter();
+ }
+
+ @Override
+ public Adapter caseAllocatableSet(AllocatableSet object) {
+ return createAllocatableSetAdapter();
+ }
+
+ @Override
+ public Adapter caseProject(Project object) {
+ return createProjectAdapter();
+ }
+
+ @Override
+ public Adapter casePackagableElement(PackagableElement object) {
+ return createPackagableElementAdapter();
+ }
+
+ @Override
+ public Adapter casePackage(rba.core.Package object) {
+ return createPackageAdapter();
+ }
+
+ @Override
+ public Adapter caseStereotype(Stereotype object) {
+ return createStereotypeAdapter();
+ }
+
+ @Override
+ public Adapter caseTag(Tag object) {
+ return createTagAdapter();
+ }
+
+ @Override
+ public Adapter caseRuleObject(RuleObject object) {
+ return createRuleObjectAdapter();
+ }
+
+ @Override
+ public Adapter caseAbstractContent(AbstractContent object) {
+ return createAbstractContentAdapter();
+ }
+
+ @Override
+ public Adapter caseAbstractScene(AbstractScene object) {
+ return createAbstractSceneAdapter();
+ }
+
+ @Override
+ public Adapter caseScene(Scene object) {
+ return createSceneAdapter();
+ }
+
+ @Override
+ public Adapter caseContent(Content object) {
+ return createContentAdapter();
+ }
+
+ @Override
+ public Adapter caseContentSet(ContentSet object) {
+ return createContentSetAdapter();
+ }
+
+ @Override
+ public Adapter caseContentState(ContentState object) {
+ return createContentStateAdapter();
+ }
+
+ @Override
+ public Adapter caseAbstractProperty(AbstractProperty object) {
+ return createAbstractPropertyAdapter();
+ }
+
+ @Override
+ public Adapter caseIntegerProperty(IntegerProperty object) {
+ return createIntegerPropertyAdapter();
+ }
+
+ @Override
+ public Adapter caseAbstractConstraint(AbstractConstraint object) {
+ return createAbstractConstraintAdapter();
+ }
+
+ @Override
+ public Adapter caseConstraint(Constraint object) {
+ return createConstraintAdapter();
+ }
+
+ @Override
+ public Adapter caseExpression(Expression object) {
+ return createExpressionAdapter();
+ }
+
+ @Override
+ public Adapter caseLetStatement(LetStatement object) {
+ return createLetStatementAdapter();
+ }
+
+ @Override
+ public Adapter caseComplexExpression(ComplexExpression object) {
+ return createComplexExpressionAdapter();
+ }
+
+ @Override
+ public Adapter caseOperator(Operator object) {
+ return createOperatorAdapter();
+ }
+
+ @Override
+ public Adapter caseIsTypeOf(IsTypeOf object) {
+ return createIsTypeOfAdapter();
+ }
+
+ @Override
+ public Adapter caseObjectReference(ObjectReference object) {
+ return createObjectReferenceAdapter();
+ }
+
+ @Override
+ public Adapter casePreviousModifier(PreviousModifier object) {
+ return createPreviousModifierAdapter();
+ }
+
+ @Override
+ public Adapter caseGreaterThanOperator(GreaterThanOperator object) {
+ return createGreaterThanOperatorAdapter();
+ }
+
+ @Override
+ public Adapter caseMuchGreaterThanOperator(MuchGreaterThanOperator object) {
+ return createMuchGreaterThanOperatorAdapter();
+ }
+
+ @Override
+ public Adapter caseLowerThanOperator(LowerThanOperator object) {
+ return createLowerThanOperatorAdapter();
+ }
+
+ @Override
+ public Adapter caseComparisonOperator(ComparisonOperator object) {
+ return createComparisonOperatorAdapter();
+ }
+
+ @Override
+ public Adapter caseEqualToOperator(EqualToOperator object) {
+ return createEqualToOperatorAdapter();
+ }
+
+ @Override
+ public Adapter caseComparisonAnd(ComparisonAnd object) {
+ return createComparisonAndAdapter();
+ }
+
+ @Override
+ public Adapter caseLogicalOperator(LogicalOperator object) {
+ return createLogicalOperatorAdapter();
+ }
+
+ @Override
+ public Adapter caseAndOperator(AndOperator object) {
+ return createAndOperatorAdapter();
+ }
+
+ @Override
+ public Adapter caseOrOperator(OrOperator object) {
+ return createOrOperatorAdapter();
+ }
+
+ @Override
+ public Adapter caseNotOperator(NotOperator object) {
+ return createNotOperatorAdapter();
+ }
+
+ @Override
+ public Adapter caseIsEqualToOperator(IsEqualToOperator object) {
+ return createIsEqualToOperatorAdapter();
+ }
+
+ @Override
+ public Adapter caseIsGreaterThanOperator(IsGreaterThanOperator object) {
+ return createIsGreaterThanOperatorAdapter();
+ }
+
+ @Override
+ public Adapter caseIsLowerThanOperator(IsLowerThanOperator object) {
+ return createIsLowerThanOperatorAdapter();
+ }
+
+ @Override
+ public Adapter caseIsGreaterThanEqualOperator(IsGreaterThanEqualOperator object) {
+ return createIsGreaterThanEqualOperatorAdapter();
+ }
+
+ @Override
+ public Adapter caseIsLowerThanEqualOperator(IsLowerThanEqualOperator object) {
+ return createIsLowerThanEqualOperatorAdapter();
+ }
+
+ @Override
+ public Adapter caseArithmeticOperator(ArithmeticOperator object) {
+ return createArithmeticOperatorAdapter();
+ }
+
+ @Override
+ public Adapter casePlusOperator(PlusOperator object) {
+ return createPlusOperatorAdapter();
+ }
+
+ @Override
+ public Adapter caseImpliesOperator(ImpliesOperator object) {
+ return createImpliesOperatorAdapter();
+ }
+
+ @Override
+ public Adapter caseContentOperator(ContentOperator object) {
+ return createContentOperatorAdapter();
+ }
+
+ @Override
+ public Adapter caseIsActive(IsActive object) {
+ return createIsActiveAdapter();
+ }
+
+ @Override
+ public Adapter caseGetAllocatables(GetAllocatables object) {
+ return createGetAllocatablesAdapter();
+ }
+
+ @Override
+ public Adapter caseHasBeenDisplayed(HasBeenDisplayed object) {
+ return createHasBeenDisplayedAdapter();
+ }
+
+ @Override
+ public Adapter caseActiveState(ActiveState object) {
+ return createActiveStateAdapter();
+ }
+
+ @Override
+ public Adapter caseObjectCompare(ObjectCompare object) {
+ return createObjectCompareAdapter();
+ }
+
+ @Override
+ public Adapter caseThatOfOperator(ThatOfOperator object) {
+ return createThatOfOperatorAdapter();
+ }
+
+ @Override
+ public Adapter caseValueExpression(ValueExpression object) {
+ return createValueExpressionAdapter();
+ }
+
+ @Override
+ public Adapter caseMaxValue(MaxValue object) {
+ return createMaxValueAdapter();
+ }
+
+ @Override
+ public Adapter caseMinValue(MinValue object) {
+ return createMinValueAdapter();
+ }
+
+ @Override
+ public Adapter caseNoneValue(NoneValue object) {
+ return createNoneValueAdapter();
+ }
+
+ @Override
+ public Adapter caseStandardValue(StandardValue object) {
+ return createStandardValueAdapter();
+ }
+
+ @Override
+ public Adapter caseIntegerValue(IntegerValue object) {
+ return createIntegerValueAdapter();
+ }
+
+ @Override
+ public Adapter caseEnumExpression(EnumExpression object) {
+ return createEnumExpressionAdapter();
+ }
+
+ @Override
+ public Adapter caseLoserTypeExpression(LoserTypeExpression object) {
+ return createLoserTypeExpressionAdapter();
+ }
+
+ @Override
+ public Adapter caseArbitrationPolicyExpression(ArbitrationPolicyExpression object) {
+ return createArbitrationPolicyExpressionAdapter();
+ }
+
+ @Override
+ public Adapter caseSetExpression(SetExpression object) {
+ return createSetExpressionAdapter();
+ }
+
+ @Override
+ public Adapter caseSetOperator(SetOperator object) {
+ return createSetOperatorAdapter();
+ }
+
+ @Override
+ public Adapter caseSizeOperator(SizeOperator object) {
+ return createSizeOperatorAdapter();
+ }
+
+ @Override
+ public Adapter caseExistsOperator(ExistsOperator object) {
+ return createExistsOperatorAdapter();
+ }
+
+ @Override
+ public Adapter caseForAllOperator(ForAllOperator object) {
+ return createForAllOperatorAdapter();
+ }
+
+ @Override
+ public Adapter caseMaxOperator(MaxOperator object) {
+ return createMaxOperatorAdapter();
+ }
+
+ @Override
+ public Adapter caseMinOperator(MinOperator object) {
+ return createMinOperatorAdapter();
+ }
+
+ @Override
+ public Adapter caseSelectOperator(SelectOperator object) {
+ return createSelectOperatorAdapter();
+ }
+
+ @Override
+ public Adapter caseSetOfOperator(SetOfOperator object) {
+ return createSetOfOperatorAdapter();
+ }
+
+ @Override
+ public Adapter caseLambdaExpression(LambdaExpression object) {
+ return createLambdaExpressionAdapter();
+ }
+
+ @Override
+ public Adapter caseVariable(Variable object) {
+ return createVariableAdapter();
+ }
+
+ @Override
+ public Adapter caseLambdaContext(LambdaContext object) {
+ return createLambdaContextAdapter();
+ }
+
+ @Override
+ public Adapter caseIfStatement(IfStatement object) {
+ return createIfStatementAdapter();
+ }
+
+ @Override
+ public Adapter caseSceneOperator(SceneOperator object) {
+ return createSceneOperatorAdapter();
+ }
+
+ @Override
+ public Adapter caseIsOn(IsOn object) {
+ return createIsOnAdapter();
+ }
+
+ @Override
+ public Adapter caseAllocatableOperator(AllocatableOperator object) {
+ return createAllocatableOperatorAdapter();
+ }
+
+ @Override
+ public Adapter caseAllocatedContent(AllocatedContent object) {
+ return createAllocatedContentAdapter();
+ }
+
+ @Override
+ public Adapter caseContentValue(ContentValue object) {
+ return createContentValueAdapter();
+ }
+
+ @Override
+ public Adapter caseGetContentsList(GetContentsList object) {
+ return createGetContentsListAdapter();
+ }
+
+ @Override
+ public Adapter caseActiveContents(ActiveContents object) {
+ return createActiveContentsAdapter();
+ }
+
+ @Override
+ public Adapter casePropertyOperator(PropertyOperator object) {
+ return createPropertyOperatorAdapter();
+ }
+
+ @Override
+ public Adapter caseGetProperty(GetProperty object) {
+ return createGetPropertyAdapter();
+ }
+
+ @Override
+ public Adapter caseStateValue(StateValue object) {
+ return createStateValueAdapter();
+ }
+
+ @Override
+ public Adapter caseHasComeLaterThan(HasComeLaterThan object) {
+ return createHasComeLaterThanAdapter();
+ }
+
+ @Override
+ public Adapter caseHasComeEarlierThan(HasComeEarlierThan object) {
+ return createHasComeEarlierThanAdapter();
+ }
+
+ @Override
+ public Adapter caseSugarExpression(SugarExpression object) {
+ return createSugarExpressionAdapter();
+ }
+
+ @Override
+ public Adapter caseSugarExpressionBase(SugarExpressionBase object) {
+ return createSugarExpressionBaseAdapter();
+ }
+
+ @Override
+ public Adapter caseObjectCompareNot(ObjectCompareNot object) {
+ return createObjectCompareNotAdapter();
+ }
+
+ @Override
+ public Adapter caseIsAllocatedTo(IsAllocatedTo object) {
+ return createIsAllocatedToAdapter();
+ }
+
+ @Override
+ public Adapter caseIsChanged(IsChanged object) {
+ return createIsChangedAdapter();
+ }
+
+ @Override
+ public Adapter caseIsTranslatedTo(IsTranslatedTo object) {
+ return createIsTranslatedToAdapter();
+ }
+
+ @Override
+ public Adapter caseGetState(GetState object) {
+ return createGetStateAdapter();
+ }
+
+ @Override
+ public Adapter caseContentStateOperator(ContentStateOperator object) {
+ return createContentStateOperatorAdapter();
+ }
+
+ @Override
+ public Adapter caseNullExpression(NullExpression object) {
+ return createNullExpressionAdapter();
+ }
+
+ @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 rba.core.ModelElement <em>Model 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 rba.core.ModelElement
+ * @generated
+ */
+ public Adapter createModelElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.NamedElement <em>Named 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 rba.core.NamedElement
+ * @generated
+ */
+ public Adapter createNamedElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.AbstractAllocatable <em>Abstract Allocatable</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 rba.core.AbstractAllocatable
+ * @generated
+ */
+ public Adapter createAbstractAllocatableAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.Allocatable <em>Allocatable</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 rba.core.Allocatable
+ * @generated
+ */
+ public Adapter createAllocatableAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.AllocatableSet <em>Allocatable Set</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 rba.core.AllocatableSet
+ * @generated
+ */
+ public Adapter createAllocatableSetAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.Project <em>Project</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 rba.core.Project
+ * @generated
+ */
+ public Adapter createProjectAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.PackagableElement <em>Packagable 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 rba.core.PackagableElement
+ * @generated
+ */
+ public Adapter createPackagableElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.Package <em>Package</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 rba.core.Package
+ * @generated
+ */
+ public Adapter createPackageAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.Stereotype <em>Stereotype</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 rba.core.Stereotype
+ * @generated
+ */
+ public Adapter createStereotypeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.Tag <em>Tag</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 rba.core.Tag
+ * @generated
+ */
+ public Adapter createTagAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.RuleObject <em>Rule Object</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 rba.core.RuleObject
+ * @generated
+ */
+ public Adapter createRuleObjectAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.AbstractContent <em>Abstract Content</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 rba.core.AbstractContent
+ * @generated
+ */
+ public Adapter createAbstractContentAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.AbstractScene <em>Abstract Scene</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 rba.core.AbstractScene
+ * @generated
+ */
+ public Adapter createAbstractSceneAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.Scene <em>Scene</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 rba.core.Scene
+ * @generated
+ */
+ public Adapter createSceneAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.Content <em>Content</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 rba.core.Content
+ * @generated
+ */
+ public Adapter createContentAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.ContentSet <em>Content Set</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 rba.core.ContentSet
+ * @generated
+ */
+ public Adapter createContentSetAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.ContentState <em>Content State</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 rba.core.ContentState
+ * @generated
+ */
+ public Adapter createContentStateAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.AbstractProperty <em>Abstract Property</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 rba.core.AbstractProperty
+ * @generated
+ */
+ public Adapter createAbstractPropertyAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.IntegerProperty <em>Integer Property</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 rba.core.IntegerProperty
+ * @generated
+ */
+ public Adapter createIntegerPropertyAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.AbstractConstraint <em>Abstract Constraint</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 rba.core.AbstractConstraint
+ * @generated
+ */
+ public Adapter createAbstractConstraintAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.Constraint <em>Constraint</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 rba.core.Constraint
+ * @generated
+ */
+ public Adapter createConstraintAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.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 rba.core.Expression
+ * @generated
+ */
+ public Adapter createExpressionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.LetStatement <em>Let 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 rba.core.LetStatement
+ * @generated
+ */
+ public Adapter createLetStatementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.ComplexExpression <em>Complex 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 rba.core.ComplexExpression
+ * @generated
+ */
+ public Adapter createComplexExpressionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.Operator <em>Operator</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 rba.core.Operator
+ * @generated
+ */
+ public Adapter createOperatorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.IsTypeOf <em>Is Type Of</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 rba.core.IsTypeOf
+ * @generated
+ */
+ public Adapter createIsTypeOfAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.ObjectReference <em>Object Reference</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 rba.core.ObjectReference
+ * @generated
+ */
+ public Adapter createObjectReferenceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.PreviousModifier <em>Previous Modifier</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 rba.core.PreviousModifier
+ * @generated
+ */
+ public Adapter createPreviousModifierAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.GreaterThanOperator <em>Greater Than Operator</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 rba.core.GreaterThanOperator
+ * @generated
+ */
+ public Adapter createGreaterThanOperatorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.MuchGreaterThanOperator <em>Much Greater Than Operator</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 rba.core.MuchGreaterThanOperator
+ * @generated
+ */
+ public Adapter createMuchGreaterThanOperatorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.LowerThanOperator <em>Lower Than Operator</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 rba.core.LowerThanOperator
+ * @generated
+ */
+ public Adapter createLowerThanOperatorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.ComparisonOperator <em>Comparison Operator</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 rba.core.ComparisonOperator
+ * @generated
+ */
+ public Adapter createComparisonOperatorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.EqualToOperator <em>Equal To Operator</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 rba.core.EqualToOperator
+ * @generated
+ */
+ public Adapter createEqualToOperatorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.ComparisonAnd <em>Comparison And</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 rba.core.ComparisonAnd
+ * @generated
+ */
+ public Adapter createComparisonAndAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.LogicalOperator <em>Logical Operator</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 rba.core.LogicalOperator
+ * @generated
+ */
+ public Adapter createLogicalOperatorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.AndOperator <em>And Operator</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 rba.core.AndOperator
+ * @generated
+ */
+ public Adapter createAndOperatorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.OrOperator <em>Or Operator</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 rba.core.OrOperator
+ * @generated
+ */
+ public Adapter createOrOperatorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.NotOperator <em>Not Operator</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 rba.core.NotOperator
+ * @generated
+ */
+ public Adapter createNotOperatorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.IsEqualToOperator <em>Is Equal To Operator</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 rba.core.IsEqualToOperator
+ * @generated
+ */
+ public Adapter createIsEqualToOperatorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.IsGreaterThanOperator <em>Is Greater Than Operator</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 rba.core.IsGreaterThanOperator
+ * @generated
+ */
+ public Adapter createIsGreaterThanOperatorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.IsLowerThanOperator <em>Is Lower Than Operator</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 rba.core.IsLowerThanOperator
+ * @generated
+ */
+ public Adapter createIsLowerThanOperatorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.IsGreaterThanEqualOperator <em>Is Greater Than Equal Operator</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 rba.core.IsGreaterThanEqualOperator
+ * @generated
+ */
+ public Adapter createIsGreaterThanEqualOperatorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.IsLowerThanEqualOperator <em>Is Lower Than Equal Operator</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 rba.core.IsLowerThanEqualOperator
+ * @generated
+ */
+ public Adapter createIsLowerThanEqualOperatorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.ArithmeticOperator <em>Arithmetic Operator</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 rba.core.ArithmeticOperator
+ * @generated
+ */
+ public Adapter createArithmeticOperatorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.PlusOperator <em>Plus Operator</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 rba.core.PlusOperator
+ * @generated
+ */
+ public Adapter createPlusOperatorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.ImpliesOperator <em>Implies Operator</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 rba.core.ImpliesOperator
+ * @generated
+ */
+ public Adapter createImpliesOperatorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.ContentOperator <em>Content Operator</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 rba.core.ContentOperator
+ * @generated
+ */
+ public Adapter createContentOperatorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.IsActive <em>Is Active</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 rba.core.IsActive
+ * @generated
+ */
+ public Adapter createIsActiveAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.GetAllocatables <em>Get Allocatables</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 rba.core.GetAllocatables
+ * @generated
+ */
+ public Adapter createGetAllocatablesAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.HasBeenDisplayed <em>Has Been Displayed</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 rba.core.HasBeenDisplayed
+ * @generated
+ */
+ public Adapter createHasBeenDisplayedAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.ActiveState <em>Active State</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 rba.core.ActiveState
+ * @generated
+ */
+ public Adapter createActiveStateAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.ObjectCompare <em>Object Compare</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 rba.core.ObjectCompare
+ * @generated
+ */
+ public Adapter createObjectCompareAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.ThatOfOperator <em>That Of Operator</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 rba.core.ThatOfOperator
+ * @generated
+ */
+ public Adapter createThatOfOperatorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.ValueExpression <em>Value 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 rba.core.ValueExpression
+ * @generated
+ */
+ public Adapter createValueExpressionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.MaxValue <em>Max Value</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 rba.core.MaxValue
+ * @generated
+ */
+ public Adapter createMaxValueAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.MinValue <em>Min Value</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 rba.core.MinValue
+ * @generated
+ */
+ public Adapter createMinValueAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.NoneValue <em>None Value</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 rba.core.NoneValue
+ * @generated
+ */
+ public Adapter createNoneValueAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.StandardValue <em>Standard Value</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 rba.core.StandardValue
+ * @generated
+ */
+ public Adapter createStandardValueAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.IntegerValue <em>Integer Value</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 rba.core.IntegerValue
+ * @generated
+ */
+ public Adapter createIntegerValueAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.EnumExpression <em>Enum 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 rba.core.EnumExpression
+ * @generated
+ */
+ public Adapter createEnumExpressionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.LoserTypeExpression <em>Loser Type 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 rba.core.LoserTypeExpression
+ * @generated
+ */
+ public Adapter createLoserTypeExpressionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.ArbitrationPolicyExpression <em>Arbitration Policy 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 rba.core.ArbitrationPolicyExpression
+ * @generated
+ */
+ public Adapter createArbitrationPolicyExpressionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.SetExpression <em>Set 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 rba.core.SetExpression
+ * @generated
+ */
+ public Adapter createSetExpressionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.SetOperator <em>Set Operator</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 rba.core.SetOperator
+ * @generated
+ */
+ public Adapter createSetOperatorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.SizeOperator <em>Size Operator</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 rba.core.SizeOperator
+ * @generated
+ */
+ public Adapter createSizeOperatorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.ExistsOperator <em>Exists Operator</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 rba.core.ExistsOperator
+ * @generated
+ */
+ public Adapter createExistsOperatorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.ForAllOperator <em>For All Operator</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 rba.core.ForAllOperator
+ * @generated
+ */
+ public Adapter createForAllOperatorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.MaxOperator <em>Max Operator</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 rba.core.MaxOperator
+ * @generated
+ */
+ public Adapter createMaxOperatorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.MinOperator <em>Min Operator</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 rba.core.MinOperator
+ * @generated
+ */
+ public Adapter createMinOperatorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.SelectOperator <em>Select Operator</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 rba.core.SelectOperator
+ * @generated
+ */
+ public Adapter createSelectOperatorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.SetOfOperator <em>Set Of Operator</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 rba.core.SetOfOperator
+ * @generated
+ */
+ public Adapter createSetOfOperatorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.LambdaExpression <em>Lambda 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 rba.core.LambdaExpression
+ * @generated
+ */
+ public Adapter createLambdaExpressionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.Variable <em>Variable</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 rba.core.Variable
+ * @generated
+ */
+ public Adapter createVariableAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.LambdaContext <em>Lambda Context</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 rba.core.LambdaContext
+ * @generated
+ */
+ public Adapter createLambdaContextAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.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 rba.core.IfStatement
+ * @generated
+ */
+ public Adapter createIfStatementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.SceneOperator <em>Scene Operator</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 rba.core.SceneOperator
+ * @generated
+ */
+ public Adapter createSceneOperatorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.IsOn <em>Is On</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 rba.core.IsOn
+ * @generated
+ */
+ public Adapter createIsOnAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.AllocatableOperator <em>Allocatable Operator</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 rba.core.AllocatableOperator
+ * @generated
+ */
+ public Adapter createAllocatableOperatorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.AllocatedContent <em>Allocated Content</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 rba.core.AllocatedContent
+ * @generated
+ */
+ public Adapter createAllocatedContentAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.ContentValue <em>Content Value</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 rba.core.ContentValue
+ * @generated
+ */
+ public Adapter createContentValueAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.GetContentsList <em>Get Contents 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 rba.core.GetContentsList
+ * @generated
+ */
+ public Adapter createGetContentsListAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.ActiveContents <em>Active Contents</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 rba.core.ActiveContents
+ * @generated
+ */
+ public Adapter createActiveContentsAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.PropertyOperator <em>Property Operator</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 rba.core.PropertyOperator
+ * @generated
+ */
+ public Adapter createPropertyOperatorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.GetProperty <em>Get Property</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 rba.core.GetProperty
+ * @generated
+ */
+ public Adapter createGetPropertyAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.StateValue <em>State Value</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 rba.core.StateValue
+ * @generated
+ */
+ public Adapter createStateValueAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.HasComeLaterThan <em>Has Come Later Than</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 rba.core.HasComeLaterThan
+ * @generated
+ */
+ public Adapter createHasComeLaterThanAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.HasComeEarlierThan <em>Has Come Earlier Than</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 rba.core.HasComeEarlierThan
+ * @generated
+ */
+ public Adapter createHasComeEarlierThanAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.SugarExpression <em>Sugar 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 rba.core.SugarExpression
+ * @generated
+ */
+ public Adapter createSugarExpressionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.SugarExpressionBase <em>Sugar Expression Base</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 rba.core.SugarExpressionBase
+ * @generated
+ */
+ public Adapter createSugarExpressionBaseAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.ObjectCompareNot <em>Object Compare Not</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 rba.core.ObjectCompareNot
+ * @generated
+ */
+ public Adapter createObjectCompareNotAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.IsAllocatedTo <em>Is Allocated To</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 rba.core.IsAllocatedTo
+ * @generated
+ */
+ public Adapter createIsAllocatedToAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.IsChanged <em>Is Changed</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 rba.core.IsChanged
+ * @generated
+ */
+ public Adapter createIsChangedAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.IsTranslatedTo <em>Is Translated To</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 rba.core.IsTranslatedTo
+ * @generated
+ */
+ public Adapter createIsTranslatedToAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.GetState <em>Get State</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 rba.core.GetState
+ * @generated
+ */
+ public Adapter createGetStateAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.ContentStateOperator <em>Content State Operator</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 rba.core.ContentStateOperator
+ * @generated
+ */
+ public Adapter createContentStateOperatorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.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 rba.core.NullExpression
+ * @generated
+ */
+ public Adapter createNullExpressionAdapter() {
+ 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;
+ }
+
+} // RBACoreAdapterFactory
diff --git a/rba.model.core/src/rba/core/util/RBACoreSwitch.java b/rba.model.core/src/rba/core/util/RBACoreSwitch.java
new file mode 100644
index 0000000..2009df3
--- /dev/null
+++ b/rba.model.core/src/rba/core/util/RBACoreSwitch.java
@@ -0,0 +1,2622 @@
+/**
+ */
+package rba.core.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+import rba.core.AbstractAllocatable;
+import rba.core.AbstractConstraint;
+import rba.core.AbstractContent;
+import rba.core.AbstractProperty;
+import rba.core.AbstractScene;
+import rba.core.ActiveContents;
+import rba.core.ActiveState;
+import rba.core.Allocatable;
+import rba.core.AllocatableOperator;
+import rba.core.AllocatableSet;
+import rba.core.AllocatedContent;
+import rba.core.AndOperator;
+import rba.core.ArbitrationPolicyExpression;
+import rba.core.ArithmeticOperator;
+import rba.core.ComparisonAnd;
+import rba.core.ComparisonOperator;
+import rba.core.ComplexExpression;
+import rba.core.Constraint;
+import rba.core.Content;
+import rba.core.ContentOperator;
+import rba.core.ContentSet;
+import rba.core.ContentState;
+import rba.core.ContentStateOperator;
+import rba.core.ContentValue;
+import rba.core.EnumExpression;
+import rba.core.EqualToOperator;
+import rba.core.ExistsOperator;
+import rba.core.Expression;
+import rba.core.ForAllOperator;
+import rba.core.GetAllocatables;
+import rba.core.GetContentsList;
+import rba.core.GetProperty;
+import rba.core.GetState;
+import rba.core.GreaterThanOperator;
+import rba.core.HasBeenDisplayed;
+import rba.core.HasComeEarlierThan;
+import rba.core.HasComeLaterThan;
+import rba.core.IfStatement;
+import rba.core.ImpliesOperator;
+import rba.core.IntegerProperty;
+import rba.core.IntegerValue;
+import rba.core.IsActive;
+import rba.core.IsAllocatedTo;
+import rba.core.IsChanged;
+import rba.core.IsEqualToOperator;
+import rba.core.IsGreaterThanEqualOperator;
+import rba.core.IsGreaterThanOperator;
+import rba.core.IsLowerThanEqualOperator;
+import rba.core.IsLowerThanOperator;
+import rba.core.IsOn;
+import rba.core.IsTranslatedTo;
+import rba.core.IsTypeOf;
+import rba.core.LambdaContext;
+import rba.core.LambdaExpression;
+import rba.core.LetStatement;
+import rba.core.LogicalOperator;
+import rba.core.LoserTypeExpression;
+import rba.core.LowerThanOperator;
+import rba.core.MaxOperator;
+import rba.core.MaxValue;
+import rba.core.MinOperator;
+import rba.core.MinValue;
+import rba.core.ModelElement;
+import rba.core.MuchGreaterThanOperator;
+import rba.core.NamedElement;
+import rba.core.NoneValue;
+import rba.core.NotOperator;
+import rba.core.NullExpression;
+import rba.core.ObjectCompare;
+import rba.core.ObjectCompareNot;
+import rba.core.ObjectReference;
+import rba.core.Operator;
+import rba.core.OrOperator;
+import rba.core.PackagableElement;
+import rba.core.PlusOperator;
+import rba.core.PreviousModifier;
+import rba.core.Project;
+import rba.core.PropertyOperator;
+import rba.core.RBACorePackage;
+import rba.core.RuleObject;
+import rba.core.Scene;
+import rba.core.SceneOperator;
+import rba.core.SelectOperator;
+import rba.core.SetExpression;
+import rba.core.SetOfOperator;
+import rba.core.SetOperator;
+import rba.core.SizeOperator;
+import rba.core.StandardValue;
+import rba.core.StateValue;
+import rba.core.Stereotype;
+import rba.core.SugarExpression;
+import rba.core.SugarExpressionBase;
+import rba.core.Tag;
+import rba.core.ThatOfOperator;
+import rba.core.ValueExpression;
+import rba.core.Variable;
+
+/**
+ * <!-- 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 rba.core.RBACorePackage
+ * @generated
+ */
+public class RBACoreSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected static RBACorePackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public RBACoreSwitch() {
+ if (modelPackage == null) {
+ modelPackage = RBACorePackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @param 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 RBACorePackage.MODEL_ELEMENT: {
+ ModelElement modelElement = (ModelElement) theEObject;
+ T result = caseModelElement(modelElement);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.NAMED_ELEMENT: {
+ NamedElement namedElement = (NamedElement) theEObject;
+ T result = caseNamedElement(namedElement);
+ if (result == null)
+ result = caseModelElement(namedElement);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.ABSTRACT_ALLOCATABLE: {
+ AbstractAllocatable abstractAllocatable = (AbstractAllocatable) theEObject;
+ T result = caseAbstractAllocatable(abstractAllocatable);
+ if (result == null)
+ result = caseRuleObject(abstractAllocatable);
+ if (result == null)
+ result = casePackagableElement(abstractAllocatable);
+ if (result == null)
+ result = caseNamedElement(abstractAllocatable);
+ if (result == null)
+ result = caseModelElement(abstractAllocatable);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.ALLOCATABLE: {
+ Allocatable allocatable = (Allocatable) theEObject;
+ T result = caseAllocatable(allocatable);
+ if (result == null)
+ result = caseAbstractAllocatable(allocatable);
+ if (result == null)
+ result = caseRuleObject(allocatable);
+ if (result == null)
+ result = casePackagableElement(allocatable);
+ if (result == null)
+ result = caseNamedElement(allocatable);
+ if (result == null)
+ result = caseModelElement(allocatable);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.ALLOCATABLE_SET: {
+ AllocatableSet allocatableSet = (AllocatableSet) theEObject;
+ T result = caseAllocatableSet(allocatableSet);
+ if (result == null)
+ result = caseAbstractAllocatable(allocatableSet);
+ if (result == null)
+ result = caseRuleObject(allocatableSet);
+ if (result == null)
+ result = casePackagableElement(allocatableSet);
+ if (result == null)
+ result = caseNamedElement(allocatableSet);
+ if (result == null)
+ result = caseModelElement(allocatableSet);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.PROJECT: {
+ Project project = (Project) theEObject;
+ T result = caseProject(project);
+ if (result == null)
+ result = casePackage(project);
+ if (result == null)
+ result = casePackagableElement(project);
+ if (result == null)
+ result = caseNamedElement(project);
+ if (result == null)
+ result = caseModelElement(project);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.PACKAGABLE_ELEMENT: {
+ PackagableElement packagableElement = (PackagableElement) theEObject;
+ T result = casePackagableElement(packagableElement);
+ if (result == null)
+ result = caseNamedElement(packagableElement);
+ if (result == null)
+ result = caseModelElement(packagableElement);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.PACKAGE: {
+ rba.core.Package package_ = (rba.core.Package) theEObject;
+ T result = casePackage(package_);
+ if (result == null)
+ result = casePackagableElement(package_);
+ if (result == null)
+ result = caseNamedElement(package_);
+ if (result == null)
+ result = caseModelElement(package_);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.STEREOTYPE: {
+ Stereotype stereotype = (Stereotype) theEObject;
+ T result = caseStereotype(stereotype);
+ if (result == null)
+ result = casePackagableElement(stereotype);
+ if (result == null)
+ result = caseNamedElement(stereotype);
+ if (result == null)
+ result = caseModelElement(stereotype);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.TAG: {
+ Tag tag = (Tag) theEObject;
+ T result = caseTag(tag);
+ if (result == null)
+ result = caseNamedElement(tag);
+ if (result == null)
+ result = caseModelElement(tag);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.RULE_OBJECT: {
+ RuleObject ruleObject = (RuleObject) theEObject;
+ T result = caseRuleObject(ruleObject);
+ if (result == null)
+ result = casePackagableElement(ruleObject);
+ if (result == null)
+ result = caseNamedElement(ruleObject);
+ if (result == null)
+ result = caseModelElement(ruleObject);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.ABSTRACT_CONTENT: {
+ AbstractContent abstractContent = (AbstractContent) theEObject;
+ T result = caseAbstractContent(abstractContent);
+ if (result == null)
+ result = caseRuleObject(abstractContent);
+ if (result == null)
+ result = casePackagableElement(abstractContent);
+ if (result == null)
+ result = caseNamedElement(abstractContent);
+ if (result == null)
+ result = caseModelElement(abstractContent);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.ABSTRACT_SCENE: {
+ AbstractScene abstractScene = (AbstractScene) theEObject;
+ T result = caseAbstractScene(abstractScene);
+ if (result == null)
+ result = caseRuleObject(abstractScene);
+ if (result == null)
+ result = casePackagableElement(abstractScene);
+ if (result == null)
+ result = caseNamedElement(abstractScene);
+ if (result == null)
+ result = caseModelElement(abstractScene);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.SCENE: {
+ Scene scene = (Scene) theEObject;
+ T result = caseScene(scene);
+ if (result == null)
+ result = caseAbstractScene(scene);
+ if (result == null)
+ result = caseRuleObject(scene);
+ if (result == null)
+ result = casePackagableElement(scene);
+ if (result == null)
+ result = caseNamedElement(scene);
+ if (result == null)
+ result = caseModelElement(scene);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.CONTENT: {
+ Content content = (Content) theEObject;
+ T result = caseContent(content);
+ if (result == null)
+ result = caseAbstractContent(content);
+ if (result == null)
+ result = caseRuleObject(content);
+ if (result == null)
+ result = casePackagableElement(content);
+ if (result == null)
+ result = caseNamedElement(content);
+ if (result == null)
+ result = caseModelElement(content);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.CONTENT_SET: {
+ ContentSet contentSet = (ContentSet) theEObject;
+ T result = caseContentSet(contentSet);
+ if (result == null)
+ result = caseAbstractContent(contentSet);
+ if (result == null)
+ result = caseRuleObject(contentSet);
+ if (result == null)
+ result = casePackagableElement(contentSet);
+ if (result == null)
+ result = caseNamedElement(contentSet);
+ if (result == null)
+ result = caseModelElement(contentSet);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.CONTENT_STATE: {
+ ContentState contentState = (ContentState) theEObject;
+ T result = caseContentState(contentState);
+ if (result == null)
+ result = caseRuleObject(contentState);
+ if (result == null)
+ result = casePackagableElement(contentState);
+ if (result == null)
+ result = caseNamedElement(contentState);
+ if (result == null)
+ result = caseModelElement(contentState);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.ABSTRACT_PROPERTY: {
+ AbstractProperty abstractProperty = (AbstractProperty) theEObject;
+ T result = caseAbstractProperty(abstractProperty);
+ if (result == null)
+ result = caseRuleObject(abstractProperty);
+ if (result == null)
+ result = casePackagableElement(abstractProperty);
+ if (result == null)
+ result = caseNamedElement(abstractProperty);
+ if (result == null)
+ result = caseModelElement(abstractProperty);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.INTEGER_PROPERTY: {
+ IntegerProperty integerProperty = (IntegerProperty) theEObject;
+ T result = caseIntegerProperty(integerProperty);
+ if (result == null)
+ result = caseAbstractProperty(integerProperty);
+ if (result == null)
+ result = caseRuleObject(integerProperty);
+ if (result == null)
+ result = casePackagableElement(integerProperty);
+ if (result == null)
+ result = caseNamedElement(integerProperty);
+ if (result == null)
+ result = caseModelElement(integerProperty);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.ABSTRACT_CONSTRAINT: {
+ AbstractConstraint abstractConstraint = (AbstractConstraint) theEObject;
+ T result = caseAbstractConstraint(abstractConstraint);
+ if (result == null)
+ result = casePackagableElement(abstractConstraint);
+ if (result == null)
+ result = caseNamedElement(abstractConstraint);
+ if (result == null)
+ result = caseModelElement(abstractConstraint);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.CONSTRAINT: {
+ Constraint constraint = (Constraint) theEObject;
+ T result = caseConstraint(constraint);
+ if (result == null)
+ result = caseAbstractConstraint(constraint);
+ if (result == null)
+ result = casePackagableElement(constraint);
+ if (result == null)
+ result = caseNamedElement(constraint);
+ if (result == null)
+ result = caseModelElement(constraint);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.EXPRESSION: {
+ Expression expression = (Expression) theEObject;
+ T result = caseExpression(expression);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.LET_STATEMENT: {
+ LetStatement letStatement = (LetStatement) theEObject;
+ T result = caseLetStatement(letStatement);
+ if (result == null)
+ result = caseModelElement(letStatement);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.COMPLEX_EXPRESSION: {
+ ComplexExpression complexExpression = (ComplexExpression) theEObject;
+ T result = caseComplexExpression(complexExpression);
+ if (result == null)
+ result = caseExpression(complexExpression);
+ if (result == null)
+ result = caseSugarExpressionBase(complexExpression);
+ if (result == null)
+ result = caseSugarExpression(complexExpression);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.OPERATOR: {
+ Operator operator = (Operator) theEObject;
+ T result = caseOperator(operator);
+ if (result == null)
+ result = caseExpression(operator);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.IS_TYPE_OF: {
+ IsTypeOf isTypeOf = (IsTypeOf) theEObject;
+ T result = caseIsTypeOf(isTypeOf);
+ if (result == null)
+ result = caseOperator(isTypeOf);
+ if (result == null)
+ result = caseExpression(isTypeOf);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.OBJECT_REFERENCE: {
+ ObjectReference objectReference = (ObjectReference) theEObject;
+ T result = caseObjectReference(objectReference);
+ if (result == null)
+ result = caseExpression(objectReference);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.PREVIOUS_MODIFIER: {
+ PreviousModifier previousModifier = (PreviousModifier) theEObject;
+ T result = casePreviousModifier(previousModifier);
+ if (result == null)
+ result = caseExpression(previousModifier);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.GREATER_THAN_OPERATOR: {
+ GreaterThanOperator greaterThanOperator = (GreaterThanOperator) theEObject;
+ T result = caseGreaterThanOperator(greaterThanOperator);
+ if (result == null)
+ result = caseComparisonOperator(greaterThanOperator);
+ if (result == null)
+ result = caseOperator(greaterThanOperator);
+ if (result == null)
+ result = caseExpression(greaterThanOperator);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.MUCH_GREATER_THAN_OPERATOR: {
+ MuchGreaterThanOperator muchGreaterThanOperator = (MuchGreaterThanOperator) theEObject;
+ T result = caseMuchGreaterThanOperator(muchGreaterThanOperator);
+ if (result == null)
+ result = caseComparisonOperator(muchGreaterThanOperator);
+ if (result == null)
+ result = caseOperator(muchGreaterThanOperator);
+ if (result == null)
+ result = caseExpression(muchGreaterThanOperator);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.LOWER_THAN_OPERATOR: {
+ LowerThanOperator lowerThanOperator = (LowerThanOperator) theEObject;
+ T result = caseLowerThanOperator(lowerThanOperator);
+ if (result == null)
+ result = caseComparisonOperator(lowerThanOperator);
+ if (result == null)
+ result = caseOperator(lowerThanOperator);
+ if (result == null)
+ result = caseExpression(lowerThanOperator);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.COMPARISON_OPERATOR: {
+ ComparisonOperator comparisonOperator = (ComparisonOperator) theEObject;
+ T result = caseComparisonOperator(comparisonOperator);
+ if (result == null)
+ result = caseOperator(comparisonOperator);
+ if (result == null)
+ result = caseExpression(comparisonOperator);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.EQUAL_TO_OPERATOR: {
+ EqualToOperator equalToOperator = (EqualToOperator) theEObject;
+ T result = caseEqualToOperator(equalToOperator);
+ if (result == null)
+ result = caseComparisonOperator(equalToOperator);
+ if (result == null)
+ result = caseOperator(equalToOperator);
+ if (result == null)
+ result = caseExpression(equalToOperator);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.COMPARISON_AND: {
+ ComparisonAnd comparisonAnd = (ComparisonAnd) theEObject;
+ T result = caseComparisonAnd(comparisonAnd);
+ if (result == null)
+ result = caseComparisonOperator(comparisonAnd);
+ if (result == null)
+ result = caseOperator(comparisonAnd);
+ if (result == null)
+ result = caseExpression(comparisonAnd);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.LOGICAL_OPERATOR: {
+ LogicalOperator logicalOperator = (LogicalOperator) theEObject;
+ T result = caseLogicalOperator(logicalOperator);
+ if (result == null)
+ result = caseOperator(logicalOperator);
+ if (result == null)
+ result = caseExpression(logicalOperator);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.AND_OPERATOR: {
+ AndOperator andOperator = (AndOperator) theEObject;
+ T result = caseAndOperator(andOperator);
+ if (result == null)
+ result = caseLogicalOperator(andOperator);
+ if (result == null)
+ result = caseOperator(andOperator);
+ if (result == null)
+ result = caseExpression(andOperator);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.OR_OPERATOR: {
+ OrOperator orOperator = (OrOperator) theEObject;
+ T result = caseOrOperator(orOperator);
+ if (result == null)
+ result = caseLogicalOperator(orOperator);
+ if (result == null)
+ result = caseOperator(orOperator);
+ if (result == null)
+ result = caseExpression(orOperator);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.NOT_OPERATOR: {
+ NotOperator notOperator = (NotOperator) theEObject;
+ T result = caseNotOperator(notOperator);
+ if (result == null)
+ result = caseLogicalOperator(notOperator);
+ if (result == null)
+ result = caseOperator(notOperator);
+ if (result == null)
+ result = caseExpression(notOperator);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.IS_EQUAL_TO_OPERATOR: {
+ IsEqualToOperator isEqualToOperator = (IsEqualToOperator) theEObject;
+ T result = caseIsEqualToOperator(isEqualToOperator);
+ if (result == null)
+ result = caseLogicalOperator(isEqualToOperator);
+ if (result == null)
+ result = caseOperator(isEqualToOperator);
+ if (result == null)
+ result = caseExpression(isEqualToOperator);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.IS_GREATER_THAN_OPERATOR: {
+ IsGreaterThanOperator isGreaterThanOperator = (IsGreaterThanOperator) theEObject;
+ T result = caseIsGreaterThanOperator(isGreaterThanOperator);
+ if (result == null)
+ result = caseLogicalOperator(isGreaterThanOperator);
+ if (result == null)
+ result = caseOperator(isGreaterThanOperator);
+ if (result == null)
+ result = caseExpression(isGreaterThanOperator);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.IS_LOWER_THAN_OPERATOR: {
+ IsLowerThanOperator isLowerThanOperator = (IsLowerThanOperator) theEObject;
+ T result = caseIsLowerThanOperator(isLowerThanOperator);
+ if (result == null)
+ result = caseLogicalOperator(isLowerThanOperator);
+ if (result == null)
+ result = caseOperator(isLowerThanOperator);
+ if (result == null)
+ result = caseExpression(isLowerThanOperator);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.IS_GREATER_THAN_EQUAL_OPERATOR: {
+ IsGreaterThanEqualOperator isGreaterThanEqualOperator = (IsGreaterThanEqualOperator) theEObject;
+ T result = caseIsGreaterThanEqualOperator(isGreaterThanEqualOperator);
+ if (result == null)
+ result = caseLogicalOperator(isGreaterThanEqualOperator);
+ if (result == null)
+ result = caseOperator(isGreaterThanEqualOperator);
+ if (result == null)
+ result = caseExpression(isGreaterThanEqualOperator);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.IS_LOWER_THAN_EQUAL_OPERATOR: {
+ IsLowerThanEqualOperator isLowerThanEqualOperator = (IsLowerThanEqualOperator) theEObject;
+ T result = caseIsLowerThanEqualOperator(isLowerThanEqualOperator);
+ if (result == null)
+ result = caseLogicalOperator(isLowerThanEqualOperator);
+ if (result == null)
+ result = caseOperator(isLowerThanEqualOperator);
+ if (result == null)
+ result = caseExpression(isLowerThanEqualOperator);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.ARITHMETIC_OPERATOR: {
+ ArithmeticOperator arithmeticOperator = (ArithmeticOperator) theEObject;
+ T result = caseArithmeticOperator(arithmeticOperator);
+ if (result == null)
+ result = caseOperator(arithmeticOperator);
+ if (result == null)
+ result = caseExpression(arithmeticOperator);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.PLUS_OPERATOR: {
+ PlusOperator plusOperator = (PlusOperator) theEObject;
+ T result = casePlusOperator(plusOperator);
+ if (result == null)
+ result = caseArithmeticOperator(plusOperator);
+ if (result == null)
+ result = caseOperator(plusOperator);
+ if (result == null)
+ result = caseExpression(plusOperator);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.IMPLIES_OPERATOR: {
+ ImpliesOperator impliesOperator = (ImpliesOperator) theEObject;
+ T result = caseImpliesOperator(impliesOperator);
+ if (result == null)
+ result = caseLogicalOperator(impliesOperator);
+ if (result == null)
+ result = caseOperator(impliesOperator);
+ if (result == null)
+ result = caseExpression(impliesOperator);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.CONTENT_OPERATOR: {
+ ContentOperator contentOperator = (ContentOperator) theEObject;
+ T result = caseContentOperator(contentOperator);
+ if (result == null)
+ result = caseOperator(contentOperator);
+ if (result == null)
+ result = caseExpression(contentOperator);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.IS_ACTIVE: {
+ IsActive isActive = (IsActive) theEObject;
+ T result = caseIsActive(isActive);
+ if (result == null)
+ result = caseContentOperator(isActive);
+ if (result == null)
+ result = caseOperator(isActive);
+ if (result == null)
+ result = caseExpression(isActive);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.GET_ALLOCATABLES: {
+ GetAllocatables getAllocatables = (GetAllocatables) theEObject;
+ T result = caseGetAllocatables(getAllocatables);
+ if (result == null)
+ result = caseContentOperator(getAllocatables);
+ if (result == null)
+ result = caseOperator(getAllocatables);
+ if (result == null)
+ result = caseExpression(getAllocatables);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.HAS_BEEN_DISPLAYED: {
+ HasBeenDisplayed hasBeenDisplayed = (HasBeenDisplayed) theEObject;
+ T result = caseHasBeenDisplayed(hasBeenDisplayed);
+ if (result == null)
+ result = caseContentOperator(hasBeenDisplayed);
+ if (result == null)
+ result = caseOperator(hasBeenDisplayed);
+ if (result == null)
+ result = caseExpression(hasBeenDisplayed);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.ACTIVE_STATE: {
+ ActiveState activeState = (ActiveState) theEObject;
+ T result = caseActiveState(activeState);
+ if (result == null)
+ result = caseContentOperator(activeState);
+ if (result == null)
+ result = caseOperator(activeState);
+ if (result == null)
+ result = caseExpression(activeState);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.OBJECT_COMPARE: {
+ ObjectCompare objectCompare = (ObjectCompare) theEObject;
+ T result = caseObjectCompare(objectCompare);
+ if (result == null)
+ result = caseOperator(objectCompare);
+ if (result == null)
+ result = caseExpression(objectCompare);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.THAT_OF_OPERATOR: {
+ ThatOfOperator thatOfOperator = (ThatOfOperator) theEObject;
+ T result = caseThatOfOperator(thatOfOperator);
+ if (result == null)
+ result = caseOperator(thatOfOperator);
+ if (result == null)
+ result = caseExpression(thatOfOperator);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.VALUE_EXPRESSION: {
+ ValueExpression valueExpression = (ValueExpression) theEObject;
+ T result = caseValueExpression(valueExpression);
+ if (result == null)
+ result = caseExpression(valueExpression);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.MAX_VALUE: {
+ MaxValue maxValue = (MaxValue) theEObject;
+ T result = caseMaxValue(maxValue);
+ if (result == null)
+ result = caseValueExpression(maxValue);
+ if (result == null)
+ result = caseExpression(maxValue);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.MIN_VALUE: {
+ MinValue minValue = (MinValue) theEObject;
+ T result = caseMinValue(minValue);
+ if (result == null)
+ result = caseValueExpression(minValue);
+ if (result == null)
+ result = caseExpression(minValue);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.NONE_VALUE: {
+ NoneValue noneValue = (NoneValue) theEObject;
+ T result = caseNoneValue(noneValue);
+ if (result == null)
+ result = caseValueExpression(noneValue);
+ if (result == null)
+ result = caseExpression(noneValue);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.STANDARD_VALUE: {
+ StandardValue standardValue = (StandardValue) theEObject;
+ T result = caseStandardValue(standardValue);
+ if (result == null)
+ result = caseValueExpression(standardValue);
+ if (result == null)
+ result = caseExpression(standardValue);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.INTEGER_VALUE: {
+ IntegerValue integerValue = (IntegerValue) theEObject;
+ T result = caseIntegerValue(integerValue);
+ if (result == null)
+ result = caseValueExpression(integerValue);
+ if (result == null)
+ result = caseExpression(integerValue);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.ENUM_EXPRESSION: {
+ EnumExpression enumExpression = (EnumExpression) theEObject;
+ T result = caseEnumExpression(enumExpression);
+ if (result == null)
+ result = caseExpression(enumExpression);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.LOSER_TYPE_EXPRESSION: {
+ LoserTypeExpression loserTypeExpression = (LoserTypeExpression) theEObject;
+ T result = caseLoserTypeExpression(loserTypeExpression);
+ if (result == null)
+ result = caseEnumExpression(loserTypeExpression);
+ if (result == null)
+ result = caseExpression(loserTypeExpression);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.ARBITRATION_POLICY_EXPRESSION: {
+ ArbitrationPolicyExpression arbitrationPolicyExpression = (ArbitrationPolicyExpression) theEObject;
+ T result = caseArbitrationPolicyExpression(arbitrationPolicyExpression);
+ if (result == null)
+ result = caseEnumExpression(arbitrationPolicyExpression);
+ if (result == null)
+ result = caseExpression(arbitrationPolicyExpression);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.SET_EXPRESSION: {
+ SetExpression setExpression = (SetExpression) theEObject;
+ T result = caseSetExpression(setExpression);
+ if (result == null)
+ result = caseExpression(setExpression);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.SET_OPERATOR: {
+ SetOperator setOperator = (SetOperator) theEObject;
+ T result = caseSetOperator(setOperator);
+ if (result == null)
+ result = caseOperator(setOperator);
+ if (result == null)
+ result = caseExpression(setOperator);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.SIZE_OPERATOR: {
+ SizeOperator sizeOperator = (SizeOperator) theEObject;
+ T result = caseSizeOperator(sizeOperator);
+ if (result == null)
+ result = caseSetOperator(sizeOperator);
+ if (result == null)
+ result = caseOperator(sizeOperator);
+ if (result == null)
+ result = caseExpression(sizeOperator);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.EXISTS_OPERATOR: {
+ ExistsOperator existsOperator = (ExistsOperator) theEObject;
+ T result = caseExistsOperator(existsOperator);
+ if (result == null)
+ result = caseLambdaContext(existsOperator);
+ if (result == null)
+ result = caseSetOperator(existsOperator);
+ if (result == null)
+ result = caseOperator(existsOperator);
+ if (result == null)
+ result = caseExpression(existsOperator);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.FOR_ALL_OPERATOR: {
+ ForAllOperator forAllOperator = (ForAllOperator) theEObject;
+ T result = caseForAllOperator(forAllOperator);
+ if (result == null)
+ result = caseLambdaContext(forAllOperator);
+ if (result == null)
+ result = caseSetOperator(forAllOperator);
+ if (result == null)
+ result = caseOperator(forAllOperator);
+ if (result == null)
+ result = caseExpression(forAllOperator);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.MAX_OPERATOR: {
+ MaxOperator maxOperator = (MaxOperator) theEObject;
+ T result = caseMaxOperator(maxOperator);
+ if (result == null)
+ result = caseLambdaContext(maxOperator);
+ if (result == null)
+ result = caseSetOperator(maxOperator);
+ if (result == null)
+ result = caseOperator(maxOperator);
+ if (result == null)
+ result = caseExpression(maxOperator);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.MIN_OPERATOR: {
+ MinOperator minOperator = (MinOperator) theEObject;
+ T result = caseMinOperator(minOperator);
+ if (result == null)
+ result = caseLambdaContext(minOperator);
+ if (result == null)
+ result = caseSetOperator(minOperator);
+ if (result == null)
+ result = caseOperator(minOperator);
+ if (result == null)
+ result = caseExpression(minOperator);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.SELECT_OPERATOR: {
+ SelectOperator selectOperator = (SelectOperator) theEObject;
+ T result = caseSelectOperator(selectOperator);
+ if (result == null)
+ result = caseLambdaContext(selectOperator);
+ if (result == null)
+ result = caseSetOperator(selectOperator);
+ if (result == null)
+ result = caseOperator(selectOperator);
+ if (result == null)
+ result = caseExpression(selectOperator);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.SET_OF_OPERATOR: {
+ SetOfOperator setOfOperator = (SetOfOperator) theEObject;
+ T result = caseSetOfOperator(setOfOperator);
+ if (result == null)
+ result = caseOperator(setOfOperator);
+ if (result == null)
+ result = caseExpression(setOfOperator);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.LAMBDA_EXPRESSION: {
+ LambdaExpression lambdaExpression = (LambdaExpression) theEObject;
+ T result = caseLambdaExpression(lambdaExpression);
+ if (result == null)
+ result = caseExpression(lambdaExpression);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.VARIABLE: {
+ Variable variable = (Variable) theEObject;
+ T result = caseVariable(variable);
+ if (result == null)
+ result = caseRuleObject(variable);
+ if (result == null)
+ result = casePackagableElement(variable);
+ if (result == null)
+ result = caseNamedElement(variable);
+ if (result == null)
+ result = caseModelElement(variable);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.LAMBDA_CONTEXT: {
+ LambdaContext lambdaContext = (LambdaContext) theEObject;
+ T result = caseLambdaContext(lambdaContext);
+ if (result == null)
+ result = caseSetOperator(lambdaContext);
+ if (result == null)
+ result = caseOperator(lambdaContext);
+ if (result == null)
+ result = caseExpression(lambdaContext);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.IF_STATEMENT: {
+ IfStatement ifStatement = (IfStatement) theEObject;
+ T result = caseIfStatement(ifStatement);
+ if (result == null)
+ result = caseExpression(ifStatement);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.SCENE_OPERATOR: {
+ SceneOperator sceneOperator = (SceneOperator) theEObject;
+ T result = caseSceneOperator(sceneOperator);
+ if (result == null)
+ result = caseOperator(sceneOperator);
+ if (result == null)
+ result = caseExpression(sceneOperator);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.IS_ON: {
+ IsOn isOn = (IsOn) theEObject;
+ T result = caseIsOn(isOn);
+ if (result == null)
+ result = caseSceneOperator(isOn);
+ if (result == null)
+ result = caseOperator(isOn);
+ if (result == null)
+ result = caseExpression(isOn);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.ALLOCATABLE_OPERATOR: {
+ AllocatableOperator allocatableOperator = (AllocatableOperator) theEObject;
+ T result = caseAllocatableOperator(allocatableOperator);
+ if (result == null)
+ result = caseOperator(allocatableOperator);
+ if (result == null)
+ result = caseExpression(allocatableOperator);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.ALLOCATED_CONTENT: {
+ AllocatedContent allocatedContent = (AllocatedContent) theEObject;
+ T result = caseAllocatedContent(allocatedContent);
+ if (result == null)
+ result = caseAllocatableOperator(allocatedContent);
+ if (result == null)
+ result = caseOperator(allocatedContent);
+ if (result == null)
+ result = caseExpression(allocatedContent);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.CONTENT_VALUE: {
+ ContentValue contentValue = (ContentValue) theEObject;
+ T result = caseContentValue(contentValue);
+ if (result == null)
+ result = caseAllocatableOperator(contentValue);
+ if (result == null)
+ result = caseOperator(contentValue);
+ if (result == null)
+ result = caseExpression(contentValue);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.GET_CONTENTS_LIST: {
+ GetContentsList getContentsList = (GetContentsList) theEObject;
+ T result = caseGetContentsList(getContentsList);
+ if (result == null)
+ result = caseAllocatableOperator(getContentsList);
+ if (result == null)
+ result = caseOperator(getContentsList);
+ if (result == null)
+ result = caseExpression(getContentsList);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.ACTIVE_CONTENTS: {
+ ActiveContents activeContents = (ActiveContents) theEObject;
+ T result = caseActiveContents(activeContents);
+ if (result == null)
+ result = caseAllocatableOperator(activeContents);
+ if (result == null)
+ result = caseOperator(activeContents);
+ if (result == null)
+ result = caseExpression(activeContents);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.PROPERTY_OPERATOR: {
+ PropertyOperator propertyOperator = (PropertyOperator) theEObject;
+ T result = casePropertyOperator(propertyOperator);
+ if (result == null)
+ result = caseOperator(propertyOperator);
+ if (result == null)
+ result = caseExpression(propertyOperator);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.GET_PROPERTY: {
+ GetProperty getProperty = (GetProperty) theEObject;
+ T result = caseGetProperty(getProperty);
+ if (result == null)
+ result = casePropertyOperator(getProperty);
+ if (result == null)
+ result = caseOperator(getProperty);
+ if (result == null)
+ result = caseExpression(getProperty);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.STATE_VALUE: {
+ StateValue stateValue = (StateValue) theEObject;
+ T result = caseStateValue(stateValue);
+ if (result == null)
+ result = caseContentOperator(stateValue);
+ if (result == null)
+ result = caseOperator(stateValue);
+ if (result == null)
+ result = caseExpression(stateValue);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.HAS_COME_LATER_THAN: {
+ HasComeLaterThan hasComeLaterThan = (HasComeLaterThan) theEObject;
+ T result = caseHasComeLaterThan(hasComeLaterThan);
+ if (result == null)
+ result = caseContentOperator(hasComeLaterThan);
+ if (result == null)
+ result = caseOperator(hasComeLaterThan);
+ if (result == null)
+ result = caseExpression(hasComeLaterThan);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.HAS_COME_EARLIER_THAN: {
+ HasComeEarlierThan hasComeEarlierThan = (HasComeEarlierThan) theEObject;
+ T result = caseHasComeEarlierThan(hasComeEarlierThan);
+ if (result == null)
+ result = caseContentOperator(hasComeEarlierThan);
+ if (result == null)
+ result = caseOperator(hasComeEarlierThan);
+ if (result == null)
+ result = caseExpression(hasComeEarlierThan);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.SUGAR_EXPRESSION: {
+ SugarExpression sugarExpression = (SugarExpression) theEObject;
+ T result = caseSugarExpression(sugarExpression);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.SUGAR_EXPRESSION_BASE: {
+ SugarExpressionBase sugarExpressionBase = (SugarExpressionBase) theEObject;
+ T result = caseSugarExpressionBase(sugarExpressionBase);
+ if (result == null)
+ result = caseSugarExpression(sugarExpressionBase);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.OBJECT_COMPARE_NOT: {
+ ObjectCompareNot objectCompareNot = (ObjectCompareNot) theEObject;
+ T result = caseObjectCompareNot(objectCompareNot);
+ if (result == null)
+ result = caseOperator(objectCompareNot);
+ if (result == null)
+ result = caseSugarExpressionBase(objectCompareNot);
+ if (result == null)
+ result = caseExpression(objectCompareNot);
+ if (result == null)
+ result = caseSugarExpression(objectCompareNot);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.IS_ALLOCATED_TO: {
+ IsAllocatedTo isAllocatedTo = (IsAllocatedTo) theEObject;
+ T result = caseIsAllocatedTo(isAllocatedTo);
+ if (result == null)
+ result = caseContentOperator(isAllocatedTo);
+ if (result == null)
+ result = caseSugarExpressionBase(isAllocatedTo);
+ if (result == null)
+ result = caseOperator(isAllocatedTo);
+ if (result == null)
+ result = caseSugarExpression(isAllocatedTo);
+ if (result == null)
+ result = caseExpression(isAllocatedTo);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.IS_CHANGED: {
+ IsChanged isChanged = (IsChanged) theEObject;
+ T result = caseIsChanged(isChanged);
+ if (result == null)
+ result = caseAllocatableOperator(isChanged);
+ if (result == null)
+ result = caseSugarExpressionBase(isChanged);
+ if (result == null)
+ result = caseOperator(isChanged);
+ if (result == null)
+ result = caseSugarExpression(isChanged);
+ if (result == null)
+ result = caseExpression(isChanged);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.IS_TRANSLATED_TO: {
+ IsTranslatedTo isTranslatedTo = (IsTranslatedTo) theEObject;
+ T result = caseIsTranslatedTo(isTranslatedTo);
+ if (result == null)
+ result = caseAllocatableOperator(isTranslatedTo);
+ if (result == null)
+ result = caseSugarExpressionBase(isTranslatedTo);
+ if (result == null)
+ result = caseOperator(isTranslatedTo);
+ if (result == null)
+ result = caseSugarExpression(isTranslatedTo);
+ if (result == null)
+ result = caseExpression(isTranslatedTo);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.GET_STATE: {
+ GetState getState = (GetState) theEObject;
+ T result = caseGetState(getState);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.CONTENT_STATE_OPERATOR: {
+ ContentStateOperator contentStateOperator = (ContentStateOperator) theEObject;
+ T result = caseContentStateOperator(contentStateOperator);
+ if (result == null)
+ result = caseOperator(contentStateOperator);
+ if (result == null)
+ result = caseExpression(contentStateOperator);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBACorePackage.NULL_EXPRESSION: {
+ NullExpression nullExpression = (NullExpression) theEObject;
+ T result = caseNullExpression(nullExpression);
+ if (result == null)
+ result = caseExpression(nullExpression);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ default:
+ return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Model 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>Model Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseModelElement(ModelElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Named 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>Named Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseNamedElement(NamedElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Abstract Allocatable</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>Abstract Allocatable</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAbstractAllocatable(AbstractAllocatable object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Allocatable</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>Allocatable</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAllocatable(Allocatable object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Allocatable Set</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>Allocatable Set</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAllocatableSet(AllocatableSet object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Project</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>Project</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseProject(Project object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Packagable 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>Packagable Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePackagableElement(PackagableElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Package</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>Package</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePackage(rba.core.Package object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Stereotype</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>Stereotype</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseStereotype(Stereotype object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Tag</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>Tag</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTag(Tag object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Rule Object</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>Rule Object</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseRuleObject(RuleObject object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Abstract Content</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>Abstract Content</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAbstractContent(AbstractContent object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Abstract Scene</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>Abstract Scene</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAbstractScene(AbstractScene object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Scene</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>Scene</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseScene(Scene object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Content</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>Content</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseContent(Content object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Content Set</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>Content Set</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseContentSet(ContentSet object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Content State</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>Content State</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseContentState(ContentState object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Abstract Property</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>Abstract Property</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAbstractProperty(AbstractProperty object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Integer Property</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 Property</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIntegerProperty(IntegerProperty object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Abstract Constraint</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>Abstract Constraint</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAbstractConstraint(AbstractConstraint object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Constraint</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>Constraint</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseConstraint(Constraint 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>Let 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>Let Statement</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLetStatement(LetStatement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Complex 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>Complex Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseComplexExpression(ComplexExpression object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Operator</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>Operator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseOperator(Operator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Is Type Of</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 Type Of</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIsTypeOf(IsTypeOf object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Object Reference</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>Object Reference</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseObjectReference(ObjectReference object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Previous Modifier</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>Previous Modifier</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePreviousModifier(PreviousModifier object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Greater Than Operator</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>Greater Than Operator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseGreaterThanOperator(GreaterThanOperator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Much Greater Than Operator</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>Much Greater Than Operator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseMuchGreaterThanOperator(MuchGreaterThanOperator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Lower Than Operator</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>Lower Than Operator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLowerThanOperator(LowerThanOperator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Comparison Operator</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>Comparison Operator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseComparisonOperator(ComparisonOperator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Equal To Operator</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>Equal To Operator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseEqualToOperator(EqualToOperator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Comparison And</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>Comparison And</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseComparisonAnd(ComparisonAnd object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Logical Operator</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>Logical Operator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLogicalOperator(LogicalOperator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>And Operator</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 Operator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAndOperator(AndOperator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Or Operator</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>Or Operator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseOrOperator(OrOperator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Not Operator</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>Not Operator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseNotOperator(NotOperator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Is Equal To Operator</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 Equal To Operator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIsEqualToOperator(IsEqualToOperator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Is Greater Than Operator</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 Greater Than Operator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIsGreaterThanOperator(IsGreaterThanOperator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Is Lower Than Operator</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 Lower Than Operator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIsLowerThanOperator(IsLowerThanOperator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Is Greater Than Equal Operator</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 Greater Than Equal Operator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIsGreaterThanEqualOperator(IsGreaterThanEqualOperator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Is Lower Than Equal Operator</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 Lower Than Equal Operator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIsLowerThanEqualOperator(IsLowerThanEqualOperator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Arithmetic Operator</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>Arithmetic Operator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseArithmeticOperator(ArithmeticOperator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Plus Operator</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>Plus Operator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePlusOperator(PlusOperator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Implies Operator</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>Implies Operator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseImpliesOperator(ImpliesOperator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Content Operator</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>Content Operator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseContentOperator(ContentOperator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Is Active</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 Active</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIsActive(IsActive object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Get Allocatables</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>Get Allocatables</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseGetAllocatables(GetAllocatables object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Has Been Displayed</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>Has Been Displayed</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseHasBeenDisplayed(HasBeenDisplayed object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Active State</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>Active State</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseActiveState(ActiveState object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Object Compare</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>Object Compare</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseObjectCompare(ObjectCompare object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>That Of Operator</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>That Of Operator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseThatOfOperator(ThatOfOperator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Value 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>Value Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseValueExpression(ValueExpression object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Max Value</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>Max Value</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseMaxValue(MaxValue object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Min Value</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>Min Value</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseMinValue(MinValue object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>None Value</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>None Value</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseNoneValue(NoneValue object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Standard Value</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>Standard Value</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseStandardValue(StandardValue object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Integer Value</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 Value</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIntegerValue(IntegerValue object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Enum 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>Enum Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseEnumExpression(EnumExpression object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Loser Type 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>Loser Type Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLoserTypeExpression(LoserTypeExpression object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Arbitration Policy 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>Arbitration Policy Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseArbitrationPolicyExpression(ArbitrationPolicyExpression object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Set 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>Set Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSetExpression(SetExpression object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Set Operator</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>Set Operator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSetOperator(SetOperator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Size Operator</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>Size Operator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSizeOperator(SizeOperator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Exists Operator</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>Exists Operator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseExistsOperator(ExistsOperator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>For All Operator</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 Operator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseForAllOperator(ForAllOperator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Max Operator</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>Max Operator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseMaxOperator(MaxOperator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Min Operator</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>Min Operator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseMinOperator(MinOperator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Select Operator</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 Operator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSelectOperator(SelectOperator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Set Of Operator</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>Set Of Operator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSetOfOperator(SetOfOperator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Lambda 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>Lambda Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLambdaExpression(LambdaExpression object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Variable</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</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseVariable(Variable object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Lambda Context</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>Lambda Context</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLambdaContext(LambdaContext 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>Scene Operator</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>Scene Operator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSceneOperator(SceneOperator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Is On</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 On</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIsOn(IsOn object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Allocatable Operator</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>Allocatable Operator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAllocatableOperator(AllocatableOperator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Allocated Content</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>Allocated Content</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAllocatedContent(AllocatedContent object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Content Value</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>Content Value</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseContentValue(ContentValue object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Get Contents 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>Get Contents List</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseGetContentsList(GetContentsList object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Active Contents</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>Active Contents</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseActiveContents(ActiveContents object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Property Operator</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 Operator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePropertyOperator(PropertyOperator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Get Property</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>Get Property</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseGetProperty(GetProperty object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>State Value</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>State Value</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseStateValue(StateValue object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Has Come Later Than</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>Has Come Later Than</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseHasComeLaterThan(HasComeLaterThan object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Has Come Earlier Than</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>Has Come Earlier Than</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseHasComeEarlierThan(HasComeEarlierThan object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Sugar 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>Sugar Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSugarExpression(SugarExpression object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Sugar Expression Base</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>Sugar Expression Base</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSugarExpressionBase(SugarExpressionBase object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Object Compare Not</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>Object Compare Not</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseObjectCompareNot(ObjectCompareNot object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Is Allocated To</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 Allocated To</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIsAllocatedTo(IsAllocatedTo object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Is Changed</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 Changed</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIsChanged(IsChanged object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Is Translated To</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 Translated To</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIsTranslatedTo(IsTranslatedTo object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Get State</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>Get State</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseGetState(GetState object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Content State Operator</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>Content State Operator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseContentStateOperator(ContentStateOperator 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>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;
+ }
+
+} // RBACoreSwitch
diff --git a/rba.model.sound.edit/.classpath b/rba.model.sound.edit/.classpath
new file mode 100644
index 0000000..22f3064
--- /dev/null
+++ b/rba.model.sound.edit/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/rba.model.sound.edit/.project b/rba.model.sound.edit/.project
new file mode 100644
index 0000000..bc4e139
--- /dev/null
+++ b/rba.model.sound.edit/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>rba.model.sound.edit</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>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/rba.model.sound.edit/META-INF/MANIFEST.MF b/rba.model.sound.edit/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..019c2b8
--- /dev/null
+++ b/rba.model.sound.edit/META-INF/MANIFEST.MF
@@ -0,0 +1,17 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: rba.model.sound.edit;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-ClassPath: .
+Bundle-Activator: rba.sound.provider.RbaSoundEditPlugin$Implementation
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: rba.sound.provider
+Require-Bundle: org.eclipse.core.runtime,
+ rba.model.sound;visibility:=reexport,
+ org.eclipse.emf.edit;visibility:=reexport,
+ rba.model.core;visibility:=reexport,
+ rba.model.core.edit;visibility:=reexport
+Bundle-ActivationPolicy: lazy
diff --git a/rba.model.sound.edit/build.properties b/rba.model.sound.edit/build.properties
new file mode 100644
index 0000000..6e3e902
--- /dev/null
+++ b/rba.model.sound.edit/build.properties
@@ -0,0 +1,10 @@
+#
+
+bin.includes = .,\
+ icons/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties
+jars.compile.order = .
+source.. = src/
+output.. = bin/
diff --git a/rba.model.sound.edit/icons/full/obj16/AllInstanceOfSoundContent.gif b/rba.model.sound.edit/icons/full/obj16/AllInstanceOfSoundContent.gif
new file mode 100644
index 0000000..1e5345f
--- /dev/null
+++ b/rba.model.sound.edit/icons/full/obj16/AllInstanceOfSoundContent.gif
Binary files differ
diff --git a/rba.model.sound.edit/icons/full/obj16/AllInstanceOfZone.gif b/rba.model.sound.edit/icons/full/obj16/AllInstanceOfZone.gif
new file mode 100644
index 0000000..c4fb30e
--- /dev/null
+++ b/rba.model.sound.edit/icons/full/obj16/AllInstanceOfZone.gif
Binary files differ
diff --git a/rba.model.sound.edit/icons/full/obj16/IsAttenuated.gif b/rba.model.sound.edit/icons/full/obj16/IsAttenuated.gif
new file mode 100644
index 0000000..7b7c428
--- /dev/null
+++ b/rba.model.sound.edit/icons/full/obj16/IsAttenuated.gif
Binary files differ
diff --git a/rba.model.sound.edit/icons/full/obj16/IsChangedOutput.gif b/rba.model.sound.edit/icons/full/obj16/IsChangedOutput.gif
new file mode 100644
index 0000000..afb82ea
--- /dev/null
+++ b/rba.model.sound.edit/icons/full/obj16/IsChangedOutput.gif
Binary files differ
diff --git a/rba.model.sound.edit/icons/full/obj16/IsMuted.gif b/rba.model.sound.edit/icons/full/obj16/IsMuted.gif
new file mode 100644
index 0000000..cb1755a
--- /dev/null
+++ b/rba.model.sound.edit/icons/full/obj16/IsMuted.gif
Binary files differ
diff --git a/rba.model.sound.edit/icons/full/obj16/IsOutputted.gif b/rba.model.sound.edit/icons/full/obj16/IsOutputted.gif
new file mode 100644
index 0000000..33854e9
--- /dev/null
+++ b/rba.model.sound.edit/icons/full/obj16/IsOutputted.gif
Binary files differ
diff --git a/rba.model.sound.edit/icons/full/obj16/IsOutputtedOn.gif b/rba.model.sound.edit/icons/full/obj16/IsOutputtedOn.gif
new file mode 100644
index 0000000..e4bc22d
--- /dev/null
+++ b/rba.model.sound.edit/icons/full/obj16/IsOutputtedOn.gif
Binary files differ
diff --git a/rba.model.sound.edit/icons/full/obj16/IsSounding.gif b/rba.model.sound.edit/icons/full/obj16/IsSounding.gif
new file mode 100644
index 0000000..cdd3b76
--- /dev/null
+++ b/rba.model.sound.edit/icons/full/obj16/IsSounding.gif
Binary files differ
diff --git a/rba.model.sound.edit/icons/full/obj16/IsTranslatedSoundTo.gif b/rba.model.sound.edit/icons/full/obj16/IsTranslatedSoundTo.gif
new file mode 100644
index 0000000..53500da
--- /dev/null
+++ b/rba.model.sound.edit/icons/full/obj16/IsTranslatedSoundTo.gif
Binary files differ
diff --git a/rba.model.sound.edit/icons/full/obj16/MuteLowerPriority.gif b/rba.model.sound.edit/icons/full/obj16/MuteLowerPriority.gif
new file mode 100644
index 0000000..5a9bc75
--- /dev/null
+++ b/rba.model.sound.edit/icons/full/obj16/MuteLowerPriority.gif
Binary files differ
diff --git a/rba.model.sound.edit/icons/full/obj16/OutputtingSound.gif b/rba.model.sound.edit/icons/full/obj16/OutputtingSound.gif
new file mode 100644
index 0000000..5a9bc75
--- /dev/null
+++ b/rba.model.sound.edit/icons/full/obj16/OutputtingSound.gif
Binary files differ
diff --git a/rba.model.sound.edit/icons/full/obj16/SoundContent.gif b/rba.model.sound.edit/icons/full/obj16/SoundContent.gif
new file mode 100644
index 0000000..2b69256
--- /dev/null
+++ b/rba.model.sound.edit/icons/full/obj16/SoundContent.gif
Binary files differ
diff --git a/rba.model.sound.edit/icons/full/obj16/SoundContentSet.gif b/rba.model.sound.edit/icons/full/obj16/SoundContentSet.gif
new file mode 100644
index 0000000..338fb8d
--- /dev/null
+++ b/rba.model.sound.edit/icons/full/obj16/SoundContentSet.gif
Binary files differ
diff --git a/rba.model.sound.edit/icons/full/obj16/SoundContentState.gif b/rba.model.sound.edit/icons/full/obj16/SoundContentState.gif
new file mode 100644
index 0000000..83afb9b
--- /dev/null
+++ b/rba.model.sound.edit/icons/full/obj16/SoundContentState.gif
Binary files differ
diff --git a/rba.model.sound.edit/icons/full/obj16/Zone.gif b/rba.model.sound.edit/icons/full/obj16/Zone.gif
new file mode 100644
index 0000000..35ef84e
--- /dev/null
+++ b/rba.model.sound.edit/icons/full/obj16/Zone.gif
Binary files differ
diff --git a/rba.model.sound.edit/icons/full/obj16/ZoneSet.gif b/rba.model.sound.edit/icons/full/obj16/ZoneSet.gif
new file mode 100644
index 0000000..9250fec
--- /dev/null
+++ b/rba.model.sound.edit/icons/full/obj16/ZoneSet.gif
Binary files differ
diff --git a/rba.model.sound.edit/plugin.properties b/rba.model.sound.edit/plugin.properties
new file mode 100644
index 0000000..86d778f
--- /dev/null
+++ b/rba.model.sound.edit/plugin.properties
@@ -0,0 +1,49 @@
+#
+
+pluginName = RBA Tool RBASound Edit Support
+providerName =DENSO CORPORATION
+
+
+_UI_CreateChild_text = {0}
+_UI_CreateChild_text2 = {1} {0}
+_UI_CreateChild_text3 = {1}
+_UI_CreateChild_tooltip = Create New {0} Under {1} Feature
+_UI_CreateChild_description = Create a new child of type {0} for the {1} feature of the selected {2}.
+_UI_CreateSibling_description = Create a new sibling of type {0} for the selected {2}, under the {1} feature of their parent.
+
+_UI_PropertyDescriptor_description = The {0} of the {1}
+
+_UI_SoundContent_type = Sound Content
+_UI_SoundContentSet_type = Sound Content Set
+_UI_SoundContentState_type = Sound Content State
+_UI_AbstractZone_type = Abstract Zone
+_UI_Zone_type = Zone
+_UI_ZoneSet_type = Zone Set
+_UI_SoundContentOperator_type = Sound Content Operator
+_UI_IsSounding_type = Is Sounding
+_UI_ZoneOperator_type = Zone Operator
+_UI_IsOutputted_type = Is Outputted
+_UI_IsMuted_type = Is Muted
+_UI_IsAttenauted_type = Is Attenauted
+_UI_OutputtingSound_type = Outputting Sound
+_UI_AllInstanceOfZone_type = All Instance Of Zone
+_UI_AllInstanceOfSoundContent_type = All Instance Of Sound Content
+_UI_Unknown_type = Object
+
+_UI_Unknown_datatype= Value
+
+_UI_AbstractZone_group_feature = Group
+_UI_Zone_interrupt_feature = Interrupt
+_UI_Zone_arbitrationPolicy_feature = Arbitration Policy
+_UI_Zone_visibility_feature = Visibility
+_UI_Zone_attenuate_feature = Attenuate
+_UI_Zone_attenuateValue_feature = Attenuate Value
+_UI_Zone_visibilityValue_feature = Visibility Value
+_UI_ZoneSet_target_feature = Target
+_UI_Unknown_feature = Unspecified
+
+_UI_IsAttenuated_type = Is Attenuated
+_UI_IsOutputtedOn_type = Is Outputted On
+_UI_IsChangedOutput_type = Is Changed Output
+_UI_IsTranslatedSoundTo_type = Is Translated Sound To
+_UI_MuteLowerPriority_type = Mute Lower Priority
diff --git a/rba.model.sound.edit/plugin.xml b/rba.model.sound.edit/plugin.xml
new file mode 100644
index 0000000..28593ac
--- /dev/null
+++ b/rba.model.sound.edit/plugin.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
+ <!-- @generated rbasound -->
+ <factory
+ uri="http://www.denso.com/ict/rba/sound"
+ class="rba.sound.provider.RBASoundItemProviderAdapterFactory"
+ supportedTypes=
+ "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
+ org.eclipse.emf.edit.provider.IStructuredItemContentProvider
+ org.eclipse.emf.edit.provider.ITreeItemContentProvider
+ org.eclipse.emf.edit.provider.IItemLabelProvider
+ org.eclipse.emf.edit.provider.IItemPropertySource"/>
+ </extension>
+
+</plugin>
diff --git a/rba.model.sound.edit/src/rba/sound/provider/AllInstanceOfSoundContentItemProvider.java b/rba.model.sound.edit/src/rba/sound/provider/AllInstanceOfSoundContentItemProvider.java
new file mode 100644
index 0000000..ff97d3e
--- /dev/null
+++ b/rba.model.sound.edit/src/rba/sound/provider/AllInstanceOfSoundContentItemProvider.java
@@ -0,0 +1,116 @@
+/**
+ */
+package rba.sound.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+
+import rba.core.provider.SetExpressionItemProvider;
+
+import rba.sound.AllInstanceOfSoundContent;
+
+/**
+ * This is the item provider adapter for a {@link rba.sound.AllInstanceOfSoundContent} object.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+public class AllInstanceOfSoundContentItemProvider extends SetExpressionItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public AllInstanceOfSoundContentItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns AllInstanceOfSoundContent.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/AllInstanceOfSoundContent"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((AllInstanceOfSoundContent) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_AllInstanceOfSoundContent_type")
+ : getString("_UI_AllInstanceOfSoundContent_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return RbaSoundEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/rba.model.sound.edit/src/rba/sound/provider/AllInstanceOfZoneItemProvider.java b/rba.model.sound.edit/src/rba/sound/provider/AllInstanceOfZoneItemProvider.java
new file mode 100644
index 0000000..522563b
--- /dev/null
+++ b/rba.model.sound.edit/src/rba/sound/provider/AllInstanceOfZoneItemProvider.java
@@ -0,0 +1,115 @@
+/**
+ */
+package rba.sound.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+
+import rba.core.provider.SetExpressionItemProvider;
+
+import rba.sound.AllInstanceOfZone;
+
+/**
+ * This is the item provider adapter for a {@link rba.sound.AllInstanceOfZone} object. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @generated
+ */
+public class AllInstanceOfZoneItemProvider extends SetExpressionItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public AllInstanceOfZoneItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns AllInstanceOfZone.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/AllInstanceOfZone"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((AllInstanceOfZone) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_AllInstanceOfZone_type")
+ : getString("_UI_AllInstanceOfZone_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return RbaSoundEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/rba.model.sound.edit/src/rba/sound/provider/IsAttenuatedItemProvider.java b/rba.model.sound.edit/src/rba/sound/provider/IsAttenuatedItemProvider.java
new file mode 100644
index 0000000..147eda2
--- /dev/null
+++ b/rba.model.sound.edit/src/rba/sound/provider/IsAttenuatedItemProvider.java
@@ -0,0 +1,101 @@
+/**
+ */
+package rba.sound.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+
+import rba.sound.IsAttenuated;
+
+/**
+ * This is the item provider adapter for a {@link rba.sound.IsAttenuated} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class IsAttenuatedItemProvider extends ZoneOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsAttenuatedItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns IsAttenuated.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/IsAttenuated"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((IsAttenuated) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_IsAttenuated_type")
+ : getString("_UI_IsAttenuated_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.sound.edit/src/rba/sound/provider/IsChangedOutputItemProvider.java b/rba.model.sound.edit/src/rba/sound/provider/IsChangedOutputItemProvider.java
new file mode 100644
index 0000000..d2f90db
--- /dev/null
+++ b/rba.model.sound.edit/src/rba/sound/provider/IsChangedOutputItemProvider.java
@@ -0,0 +1,101 @@
+/**
+ */
+package rba.sound.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+
+import rba.sound.IsChangedOutput;
+
+/**
+ * This is the item provider adapter for a {@link rba.sound.IsChangedOutput} object. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @generated
+ */
+public class IsChangedOutputItemProvider extends ZoneOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsChangedOutputItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns IsChangedOutput.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/IsChangedOutput"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((IsChangedOutput) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_IsChangedOutput_type")
+ : getString("_UI_IsChangedOutput_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.sound.edit/src/rba/sound/provider/IsMutedItemProvider.java b/rba.model.sound.edit/src/rba/sound/provider/IsMutedItemProvider.java
new file mode 100644
index 0000000..3c99cb9
--- /dev/null
+++ b/rba.model.sound.edit/src/rba/sound/provider/IsMutedItemProvider.java
@@ -0,0 +1,101 @@
+/**
+ */
+package rba.sound.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+
+import rba.sound.IsMuted;
+
+/**
+ * This is the item provider adapter for a {@link rba.sound.IsMuted} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class IsMutedItemProvider extends ZoneOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsMutedItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns IsMuted.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/IsMuted"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((IsMuted) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_IsMuted_type")
+ : getString("_UI_IsMuted_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.sound.edit/src/rba/sound/provider/IsOutputtedItemProvider.java b/rba.model.sound.edit/src/rba/sound/provider/IsOutputtedItemProvider.java
new file mode 100644
index 0000000..cd7ebd1
--- /dev/null
+++ b/rba.model.sound.edit/src/rba/sound/provider/IsOutputtedItemProvider.java
@@ -0,0 +1,101 @@
+/**
+ */
+package rba.sound.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+
+import rba.sound.IsOutputted;
+
+/**
+ * This is the item provider adapter for a {@link rba.sound.IsOutputted} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class IsOutputtedItemProvider extends ZoneOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsOutputtedItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns IsOutputted.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/IsOutputted"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((IsOutputted) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_IsOutputted_type")
+ : getString("_UI_IsOutputted_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.sound.edit/src/rba/sound/provider/IsOutputtedOnItemProvider.java b/rba.model.sound.edit/src/rba/sound/provider/IsOutputtedOnItemProvider.java
new file mode 100644
index 0000000..ead55ca
--- /dev/null
+++ b/rba.model.sound.edit/src/rba/sound/provider/IsOutputtedOnItemProvider.java
@@ -0,0 +1,101 @@
+/**
+ */
+package rba.sound.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+
+import rba.sound.IsOutputtedOn;
+
+/**
+ * This is the item provider adapter for a {@link rba.sound.IsOutputtedOn} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class IsOutputtedOnItemProvider extends SoundContentOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsOutputtedOnItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns IsOutputtedOn.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/IsOutputtedOn"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((IsOutputtedOn) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_IsOutputtedOn_type")
+ : getString("_UI_IsOutputtedOn_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.sound.edit/src/rba/sound/provider/IsSoundingItemProvider.java b/rba.model.sound.edit/src/rba/sound/provider/IsSoundingItemProvider.java
new file mode 100644
index 0000000..7239c8b
--- /dev/null
+++ b/rba.model.sound.edit/src/rba/sound/provider/IsSoundingItemProvider.java
@@ -0,0 +1,101 @@
+/**
+ */
+package rba.sound.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+
+import rba.sound.IsSounding;
+
+/**
+ * This is the item provider adapter for a {@link rba.sound.IsSounding} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class IsSoundingItemProvider extends SoundContentOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsSoundingItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns IsSounding.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/IsSounding"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((IsSounding) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_IsSounding_type")
+ : getString("_UI_IsSounding_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.sound.edit/src/rba/sound/provider/IsTranslatedSoundToItemProvider.java b/rba.model.sound.edit/src/rba/sound/provider/IsTranslatedSoundToItemProvider.java
new file mode 100644
index 0000000..86e30e4
--- /dev/null
+++ b/rba.model.sound.edit/src/rba/sound/provider/IsTranslatedSoundToItemProvider.java
@@ -0,0 +1,102 @@
+/**
+ */
+package rba.sound.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+
+import rba.sound.IsTranslatedSoundTo;
+
+/**
+ * This is the item provider adapter for a {@link rba.sound.IsTranslatedSoundTo} object.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+public class IsTranslatedSoundToItemProvider extends ZoneOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsTranslatedSoundToItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns IsTranslatedSoundTo.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/IsTranslatedSoundTo"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((IsTranslatedSoundTo) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_IsTranslatedSoundTo_type")
+ : getString("_UI_IsTranslatedSoundTo_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.sound.edit/src/rba/sound/provider/MuteLowerPriorityItemProvider.java b/rba.model.sound.edit/src/rba/sound/provider/MuteLowerPriorityItemProvider.java
new file mode 100644
index 0000000..a6299c6
--- /dev/null
+++ b/rba.model.sound.edit/src/rba/sound/provider/MuteLowerPriorityItemProvider.java
@@ -0,0 +1,150 @@
+/**
+ */
+package rba.sound.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.RBACorePackage;
+
+import rba.core.provider.OperatorItemProvider;
+
+import rba.sound.MuteLowerPriority;
+import rba.sound.RBASoundFactory;
+
+/**
+ * This is the item provider adapter for a {@link rba.sound.MuteLowerPriority} object. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @generated
+ */
+public class MuteLowerPriorityItemProvider extends OperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public MuteLowerPriorityItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns MuteLowerPriority.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/MuteLowerPriority"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((MuteLowerPriority) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_MuteLowerPriority_type")
+ : getString("_UI_MuteLowerPriority_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBASoundFactory.eINSTANCE.createIsSounding()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBASoundFactory.eINSTANCE.createIsOutputted()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBASoundFactory.eINSTANCE.createIsMuted()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBASoundFactory.eINSTANCE.createIsAttenuated()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBASoundFactory.eINSTANCE.createOutputtingSound()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBASoundFactory.eINSTANCE.createAllInstanceOfZone()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBASoundFactory.eINSTANCE.createAllInstanceOfSoundContent()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBASoundFactory.eINSTANCE.createIsOutputtedOn()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBASoundFactory.eINSTANCE.createIsChangedOutput()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBASoundFactory.eINSTANCE.createIsTranslatedSoundTo()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBASoundFactory.eINSTANCE.createMuteLowerPriority()));
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return RbaSoundEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/rba.model.sound.edit/src/rba/sound/provider/OutputtingSoundItemProvider.java b/rba.model.sound.edit/src/rba/sound/provider/OutputtingSoundItemProvider.java
new file mode 100644
index 0000000..c452908
--- /dev/null
+++ b/rba.model.sound.edit/src/rba/sound/provider/OutputtingSoundItemProvider.java
@@ -0,0 +1,101 @@
+/**
+ */
+package rba.sound.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+
+import rba.sound.OutputtingSound;
+
+/**
+ * This is the item provider adapter for a {@link rba.sound.OutputtingSound} object. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @generated
+ */
+public class OutputtingSoundItemProvider extends ZoneOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public OutputtingSoundItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns OutputtingSound.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/OutputtingSound"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((OutputtingSound) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_OutputtingSound_type")
+ : getString("_UI_OutputtingSound_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.sound.edit/src/rba/sound/provider/RBASoundItemProviderAdapterFactory.java b/rba.model.sound.edit/src/rba/sound/provider/RBASoundItemProviderAdapterFactory.java
new file mode 100644
index 0000000..8390846
--- /dev/null
+++ b/rba.model.sound.edit/src/rba/sound/provider/RBASoundItemProviderAdapterFactory.java
@@ -0,0 +1,549 @@
+/**
+ */
+package rba.sound.provider;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.edit.provider.ChangeNotifier;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.IChangeNotifier;
+import org.eclipse.emf.edit.provider.IDisposable;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.INotifyChangedListener;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+import rba.sound.util.RBASoundAdapterFactory;
+
+/**
+ * This is the factory that is used to provide the interfaces needed to support Viewers.
+ * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
+ * The adapters also support Eclipse property sheets.
+ * Note that most of the adapters are shared among multiple instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+public class RBASoundItemProviderAdapterFactory extends RBASoundAdapterFactory
+ implements ComposeableAdapterFactory, IChangeNotifier, IDisposable {
+ /**
+ * This keeps track of the root adapter factory that delegates to this adapter factory.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected ComposedAdapterFactory parentAdapterFactory;
+
+ /**
+ * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected IChangeNotifier changeNotifier = new ChangeNotifier();
+
+ /**
+ * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
+ * <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<Object> supportedTypes = new ArrayList<Object>();
+
+ /**
+ * This constructs an instance.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public RBASoundItemProviderAdapterFactory() {
+ supportedTypes.add(IEditingDomainItemProvider.class);
+ supportedTypes.add(IStructuredItemContentProvider.class);
+ supportedTypes.add(ITreeItemContentProvider.class);
+ supportedTypes.add(IItemLabelProvider.class);
+ supportedTypes.add(IItemPropertySource.class);
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.sound.SoundContent} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected SoundContentItemProvider soundContentItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.sound.SoundContent}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createSoundContentAdapter() {
+ if (soundContentItemProvider == null) {
+ soundContentItemProvider = new SoundContentItemProvider(this);
+ }
+
+ return soundContentItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.sound.SoundContentSet} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SoundContentSetItemProvider soundContentSetItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.sound.SoundContentSet}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createSoundContentSetAdapter() {
+ if (soundContentSetItemProvider == null) {
+ soundContentSetItemProvider = new SoundContentSetItemProvider(this);
+ }
+
+ return soundContentSetItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.sound.SoundContentState} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SoundContentStateItemProvider soundContentStateItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.sound.SoundContentState}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createSoundContentStateAdapter() {
+ if (soundContentStateItemProvider == null) {
+ soundContentStateItemProvider = new SoundContentStateItemProvider(this);
+ }
+
+ return soundContentStateItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.sound.Zone} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected ZoneItemProvider zoneItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.sound.Zone}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createZoneAdapter() {
+ if (zoneItemProvider == null) {
+ zoneItemProvider = new ZoneItemProvider(this);
+ }
+
+ return zoneItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.sound.ZoneSet} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected ZoneSetItemProvider zoneSetItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.sound.ZoneSet}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createZoneSetAdapter() {
+ if (zoneSetItemProvider == null) {
+ zoneSetItemProvider = new ZoneSetItemProvider(this);
+ }
+
+ return zoneSetItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.sound.IsSounding} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected IsSoundingItemProvider isSoundingItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.sound.IsSounding}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createIsSoundingAdapter() {
+ if (isSoundingItemProvider == null) {
+ isSoundingItemProvider = new IsSoundingItemProvider(this);
+ }
+
+ return isSoundingItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.sound.IsOutputted} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected IsOutputtedItemProvider isOutputtedItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.sound.IsOutputted}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createIsOutputtedAdapter() {
+ if (isOutputtedItemProvider == null) {
+ isOutputtedItemProvider = new IsOutputtedItemProvider(this);
+ }
+
+ return isOutputtedItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.sound.IsMuted} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected IsMutedItemProvider isMutedItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.sound.IsMuted}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createIsMutedAdapter() {
+ if (isMutedItemProvider == null) {
+ isMutedItemProvider = new IsMutedItemProvider(this);
+ }
+
+ return isMutedItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.sound.IsAttenuated} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected IsAttenuatedItemProvider isAttenuatedItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.sound.IsAttenuated}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createIsAttenuatedAdapter() {
+ if (isAttenuatedItemProvider == null) {
+ isAttenuatedItemProvider = new IsAttenuatedItemProvider(this);
+ }
+
+ return isAttenuatedItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.sound.OutputtingSound} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected OutputtingSoundItemProvider outputtingSoundItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.sound.OutputtingSound}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createOutputtingSoundAdapter() {
+ if (outputtingSoundItemProvider == null) {
+ outputtingSoundItemProvider = new OutputtingSoundItemProvider(this);
+ }
+
+ return outputtingSoundItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.sound.AllInstanceOfZone} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AllInstanceOfZoneItemProvider allInstanceOfZoneItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.sound.AllInstanceOfZone}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createAllInstanceOfZoneAdapter() {
+ if (allInstanceOfZoneItemProvider == null) {
+ allInstanceOfZoneItemProvider = new AllInstanceOfZoneItemProvider(this);
+ }
+
+ return allInstanceOfZoneItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.sound.AllInstanceOfSoundContent} instances. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected AllInstanceOfSoundContentItemProvider allInstanceOfSoundContentItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.sound.AllInstanceOfSoundContent}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createAllInstanceOfSoundContentAdapter() {
+ if (allInstanceOfSoundContentItemProvider == null) {
+ allInstanceOfSoundContentItemProvider = new AllInstanceOfSoundContentItemProvider(this);
+ }
+
+ return allInstanceOfSoundContentItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.sound.IsOutputtedOn} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected IsOutputtedOnItemProvider isOutputtedOnItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.sound.IsOutputtedOn}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createIsOutputtedOnAdapter() {
+ if (isOutputtedOnItemProvider == null) {
+ isOutputtedOnItemProvider = new IsOutputtedOnItemProvider(this);
+ }
+
+ return isOutputtedOnItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.sound.IsChangedOutput} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IsChangedOutputItemProvider isChangedOutputItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.sound.IsChangedOutput}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createIsChangedOutputAdapter() {
+ if (isChangedOutputItemProvider == null) {
+ isChangedOutputItemProvider = new IsChangedOutputItemProvider(this);
+ }
+
+ return isChangedOutputItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.sound.IsTranslatedSoundTo} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IsTranslatedSoundToItemProvider isTranslatedSoundToItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.sound.IsTranslatedSoundTo}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createIsTranslatedSoundToAdapter() {
+ if (isTranslatedSoundToItemProvider == null) {
+ isTranslatedSoundToItemProvider = new IsTranslatedSoundToItemProvider(this);
+ }
+
+ return isTranslatedSoundToItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.sound.MuteLowerPriority} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MuteLowerPriorityItemProvider muteLowerPriorityItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.sound.MuteLowerPriority}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createMuteLowerPriorityAdapter() {
+ if (muteLowerPriorityItemProvider == null) {
+ muteLowerPriorityItemProvider = new MuteLowerPriorityItemProvider(this);
+ }
+
+ return muteLowerPriorityItemProvider;
+ }
+
+ /**
+ * This returns the root adapter factory that contains this factory.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ComposeableAdapterFactory getRootAdapterFactory() {
+ return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
+ }
+
+ /**
+ * This sets the composed adapter factory that contains this factory.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
+ this.parentAdapterFactory = parentAdapterFactory;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object type) {
+ return supportedTypes.contains(type) || super.isFactoryForType(type);
+ }
+
+ /**
+ * This implementation substitutes the factory itself as the key for the adapter. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @generated
+ */
+ @Override
+ public Adapter adapt(Notifier notifier, Object type) {
+ return super.adapt(notifier, this);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object adapt(Object object, Object type) {
+ if (isFactoryForType(type)) {
+ Object adapter = super.adapt(object, type);
+ if (!(type instanceof Class<?>) || (((Class<?>) type).isInstance(adapter))) {
+ return adapter;
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * This adds a listener.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void addListener(INotifyChangedListener notifyChangedListener) {
+ changeNotifier.addListener(notifyChangedListener);
+ }
+
+ /**
+ * This removes a listener.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void removeListener(INotifyChangedListener notifyChangedListener) {
+ changeNotifier.removeListener(notifyChangedListener);
+ }
+
+ /**
+ * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @generated
+ */
+ public void fireNotifyChanged(Notification notification) {
+ changeNotifier.fireNotifyChanged(notification);
+
+ if (parentAdapterFactory != null) {
+ parentAdapterFactory.fireNotifyChanged(notification);
+ }
+ }
+
+ /**
+ * This disposes all of the item providers created by this factory.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void dispose() {
+ if (soundContentItemProvider != null)
+ soundContentItemProvider.dispose();
+ if (soundContentSetItemProvider != null)
+ soundContentSetItemProvider.dispose();
+ if (soundContentStateItemProvider != null)
+ soundContentStateItemProvider.dispose();
+ if (zoneItemProvider != null)
+ zoneItemProvider.dispose();
+ if (zoneSetItemProvider != null)
+ zoneSetItemProvider.dispose();
+ if (isSoundingItemProvider != null)
+ isSoundingItemProvider.dispose();
+ if (isOutputtedItemProvider != null)
+ isOutputtedItemProvider.dispose();
+ if (isMutedItemProvider != null)
+ isMutedItemProvider.dispose();
+ if (isAttenuatedItemProvider != null)
+ isAttenuatedItemProvider.dispose();
+ if (outputtingSoundItemProvider != null)
+ outputtingSoundItemProvider.dispose();
+ if (allInstanceOfZoneItemProvider != null)
+ allInstanceOfZoneItemProvider.dispose();
+ if (allInstanceOfSoundContentItemProvider != null)
+ allInstanceOfSoundContentItemProvider.dispose();
+ if (isOutputtedOnItemProvider != null)
+ isOutputtedOnItemProvider.dispose();
+ if (isChangedOutputItemProvider != null)
+ isChangedOutputItemProvider.dispose();
+ if (isTranslatedSoundToItemProvider != null)
+ isTranslatedSoundToItemProvider.dispose();
+ if (muteLowerPriorityItemProvider != null)
+ muteLowerPriorityItemProvider.dispose();
+ }
+
+}
diff --git a/rba.model.sound.edit/src/rba/sound/provider/RbaSoundEditPlugin.java b/rba.model.sound.edit/src/rba/sound/provider/RbaSoundEditPlugin.java
new file mode 100644
index 0000000..1b28f2c
--- /dev/null
+++ b/rba.model.sound.edit/src/rba/sound/provider/RbaSoundEditPlugin.java
@@ -0,0 +1,81 @@
+/**
+ */
+package rba.sound.provider;
+
+import org.eclipse.emf.common.EMFPlugin;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import rba.core.provider.RbaCoreEditPlugin;
+
+/**
+ * This is the central singleton for the RbaSound edit plugin.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public final class RbaSoundEditPlugin extends EMFPlugin {
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public static final RbaSoundEditPlugin INSTANCE = new RbaSoundEditPlugin();
+
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private static Implementation plugin;
+
+ /**
+ * Create the instance.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public RbaSoundEditPlugin() {
+ super(new ResourceLocator[] { RbaCoreEditPlugin.INSTANCE, });
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the singleton instance.
+ * @generated
+ */
+ @Override
+ public ResourceLocator getPluginResourceLocator() {
+ return plugin;
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the singleton instance.
+ * @generated
+ */
+ public static Implementation getPlugin() {
+ return plugin;
+ }
+
+ /**
+ * The actual implementation of the Eclipse <b>Plugin</b>.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public static class Implementation extends EclipsePlugin {
+ /**
+ * Creates an instance.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public Implementation() {
+ super();
+
+ // Remember the static instance.
+ //
+ plugin = this;
+ }
+ }
+
+}
diff --git a/rba.model.sound.edit/src/rba/sound/provider/SoundContentItemProvider.java b/rba.model.sound.edit/src/rba/sound/provider/SoundContentItemProvider.java
new file mode 100644
index 0000000..7ea448a
--- /dev/null
+++ b/rba.model.sound.edit/src/rba/sound/provider/SoundContentItemProvider.java
@@ -0,0 +1,125 @@
+/**
+ */
+package rba.sound.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import rba.core.RBACorePackage;
+
+import rba.core.provider.ContentItemProvider;
+
+import rba.sound.RBASoundFactory;
+import rba.sound.SoundContent;
+
+/**
+ * This is the item provider adapter for a {@link rba.sound.SoundContent} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SoundContentItemProvider extends ContentItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SoundContentItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns SoundContent.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/SoundContent"));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((SoundContent) object).getName();
+ return label == null || label.length() == 0 ? getString("_UI_SoundContent_type")
+ : getString("_UI_SoundContent_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT__STATES,
+ RBASoundFactory.eINSTANCE.createSoundContentState()));
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return RbaSoundEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/rba.model.sound.edit/src/rba/sound/provider/SoundContentOperatorItemProvider.java b/rba.model.sound.edit/src/rba/sound/provider/SoundContentOperatorItemProvider.java
new file mode 100644
index 0000000..fac62d9
--- /dev/null
+++ b/rba.model.sound.edit/src/rba/sound/provider/SoundContentOperatorItemProvider.java
@@ -0,0 +1,141 @@
+/**
+ */
+package rba.sound.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.RBACorePackage;
+
+import rba.core.provider.ContentOperatorItemProvider;
+
+import rba.sound.RBASoundFactory;
+import rba.sound.SoundContentOperator;
+
+/**
+ * This is the item provider adapter for a {@link rba.sound.SoundContentOperator} object.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+public class SoundContentOperatorItemProvider extends ContentOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public SoundContentOperatorItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((SoundContentOperator) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_SoundContentOperator_type")
+ : getString("_UI_SoundContentOperator_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBASoundFactory.eINSTANCE.createIsSounding()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBASoundFactory.eINSTANCE.createIsOutputted()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBASoundFactory.eINSTANCE.createIsMuted()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBASoundFactory.eINSTANCE.createIsAttenuated()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBASoundFactory.eINSTANCE.createOutputtingSound()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBASoundFactory.eINSTANCE.createAllInstanceOfZone()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBASoundFactory.eINSTANCE.createAllInstanceOfSoundContent()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBASoundFactory.eINSTANCE.createIsOutputtedOn()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBASoundFactory.eINSTANCE.createIsChangedOutput()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBASoundFactory.eINSTANCE.createIsTranslatedSoundTo()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBASoundFactory.eINSTANCE.createMuteLowerPriority()));
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return RbaSoundEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/rba.model.sound.edit/src/rba/sound/provider/SoundContentSetItemProvider.java b/rba.model.sound.edit/src/rba/sound/provider/SoundContentSetItemProvider.java
new file mode 100644
index 0000000..79eeff2
--- /dev/null
+++ b/rba.model.sound.edit/src/rba/sound/provider/SoundContentSetItemProvider.java
@@ -0,0 +1,112 @@
+/**
+ */
+package rba.sound.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.provider.ContentSetItemProvider;
+
+import rba.sound.SoundContentSet;
+
+/**
+ * This is the item provider adapter for a {@link rba.sound.SoundContentSet} object. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @generated
+ */
+public class SoundContentSetItemProvider extends ContentSetItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public SoundContentSetItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns SoundContentSet.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/SoundContentSet"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((SoundContentSet) object).getName();
+ return label == null || label.length() == 0 ? getString("_UI_SoundContentSet_type")
+ : getString("_UI_SoundContentSet_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return RbaSoundEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/rba.model.sound.edit/src/rba/sound/provider/SoundContentStateItemProvider.java b/rba.model.sound.edit/src/rba/sound/provider/SoundContentStateItemProvider.java
new file mode 100644
index 0000000..0bced94
--- /dev/null
+++ b/rba.model.sound.edit/src/rba/sound/provider/SoundContentStateItemProvider.java
@@ -0,0 +1,148 @@
+/**
+ */
+package rba.sound.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.RBACorePackage;
+
+import rba.core.provider.ContentStateItemProvider;
+
+import rba.sound.RBASoundFactory;
+import rba.sound.SoundContentState;
+
+/**
+ * This is the item provider adapter for a {@link rba.sound.SoundContentState} object. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @generated
+ */
+public class SoundContentStateItemProvider extends ContentStateItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public SoundContentStateItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns SoundContentState.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/SoundContentState"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((SoundContentState) object).getName();
+ return label == null || label.length() == 0 ? getString("_UI_SoundContentState_type")
+ : getString("_UI_SoundContentState_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBASoundFactory.eINSTANCE.createIsSounding()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBASoundFactory.eINSTANCE.createIsOutputted()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBASoundFactory.eINSTANCE.createIsMuted()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBASoundFactory.eINSTANCE.createIsAttenuated()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBASoundFactory.eINSTANCE.createOutputtingSound()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBASoundFactory.eINSTANCE.createAllInstanceOfZone()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBASoundFactory.eINSTANCE.createAllInstanceOfSoundContent()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBASoundFactory.eINSTANCE.createIsOutputtedOn()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBASoundFactory.eINSTANCE.createIsChangedOutput()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBASoundFactory.eINSTANCE.createIsTranslatedSoundTo()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBASoundFactory.eINSTANCE.createMuteLowerPriority()));
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return RbaSoundEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/rba.model.sound.edit/src/rba/sound/provider/ZoneItemProvider.java b/rba.model.sound.edit/src/rba/sound/provider/ZoneItemProvider.java
new file mode 100644
index 0000000..a0ea2bc
--- /dev/null
+++ b/rba.model.sound.edit/src/rba/sound/provider/ZoneItemProvider.java
@@ -0,0 +1,402 @@
+/**
+ */
+package rba.sound.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import rba.core.RBACoreFactory;
+import rba.core.RBACorePackage;
+import rba.core.provider.AllocatableItemProvider;
+import rba.sound.RBASoundFactory;
+import rba.sound.RBASoundPackage;
+import rba.sound.Zone;
+
+/**
+ * This is the item provider adapter for a {@link rba.sound.Zone} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class ZoneItemProvider extends AllocatableItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ZoneItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(RBASoundPackage.Literals.ZONE__ATTENUATE);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns Zone.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/Zone"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((Zone) object).getName();
+ return label == null || label.length() == 0 ? getString("_UI_Zone_type")
+ : getString("_UI_Zone_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(Zone.class)) {
+ case RBASoundPackage.ZONE__ATTENUATE:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBASoundFactory.eINSTANCE.createIsSounding()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBASoundFactory.eINSTANCE.createIsOutputted()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBASoundFactory.eINSTANCE.createIsMuted()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBASoundFactory.eINSTANCE.createIsAttenuated()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBASoundFactory.eINSTANCE.createOutputtingSound()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBASoundFactory.eINSTANCE.createAllInstanceOfZone()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBASoundFactory.eINSTANCE.createAllInstanceOfSoundContent()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBASoundFactory.eINSTANCE.createIsOutputtedOn()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBASoundFactory.eINSTANCE.createIsChangedOutput()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBASoundFactory.eINSTANCE.createIsTranslatedSoundTo()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBASoundFactory.eINSTANCE.createMuteLowerPriority()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBASoundFactory.eINSTANCE.createIsSounding()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBASoundFactory.eINSTANCE.createIsOutputted()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBASoundFactory.eINSTANCE.createIsMuted()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBASoundFactory.eINSTANCE.createIsAttenuated()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBASoundFactory.eINSTANCE.createOutputtingSound()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBASoundFactory.eINSTANCE.createAllInstanceOfZone()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBASoundFactory.eINSTANCE.createAllInstanceOfSoundContent()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBASoundFactory.eINSTANCE.createIsOutputtedOn()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBASoundFactory.eINSTANCE.createIsChangedOutput()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBASoundFactory.eINSTANCE.createIsTranslatedSoundTo()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBASoundFactory.eINSTANCE.createMuteLowerPriority()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createComplexExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createIsTypeOf()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createObjectReference()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createPreviousModifier()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createGreaterThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createMuchGreaterThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createLowerThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createEqualToOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createComparisonAnd()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createAndOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createOrOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createNotOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createIsEqualToOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createIsGreaterThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createIsLowerThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createIsGreaterThanEqualOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createIsLowerThanEqualOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createPlusOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createImpliesOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createIsActive()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createGetAllocatables()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createHasBeenDisplayed()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createActiveState()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createObjectCompare()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createThatOfOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createMaxValue()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createMinValue()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createNoneValue()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createStandardValue()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createIntegerValue()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createLoserTypeExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createArbitrationPolicyExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createSizeOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createExistsOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createForAllOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createMaxOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createMinOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createSelectOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createSetOfOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createLambdaExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createIfStatement()));
+
+ newChildDescriptors.add(
+ createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE, RBACoreFactory.eINSTANCE.createIsOn()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createAllocatedContent()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createContentValue()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createGetContentsList()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createActiveContents()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createGetProperty()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createStateValue()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createHasComeLaterThan()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createHasComeEarlierThan()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createObjectCompareNot()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createIsAllocatedTo()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createIsChanged()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createIsTranslatedTo()));
+
+ newChildDescriptors.add(createChildParameter(RBASoundPackage.Literals.ZONE__ATTENUATE,
+ RBACoreFactory.eINSTANCE.createNullExpression()));
+ }
+
+ /**
+ * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
+ Object childFeature = feature;
+ Object childObject = child;
+
+ boolean qualify = childFeature == RBACorePackage.Literals.ALLOCATABLE__VISIBILITY
+ || childFeature == RBASoundPackage.Literals.ZONE__ATTENUATE;
+
+ if (qualify) {
+ return getString("_UI_CreateChild_text2",
+ new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+ }
+ return super.getCreateChildText(owner, feature, child, selection);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return RbaSoundEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/rba.model.sound.edit/src/rba/sound/provider/ZoneOperatorItemProvider.java b/rba.model.sound.edit/src/rba/sound/provider/ZoneOperatorItemProvider.java
new file mode 100644
index 0000000..dcd729d
--- /dev/null
+++ b/rba.model.sound.edit/src/rba/sound/provider/ZoneOperatorItemProvider.java
@@ -0,0 +1,140 @@
+/**
+ */
+package rba.sound.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.RBACorePackage;
+
+import rba.core.provider.OperatorItemProvider;
+
+import rba.sound.RBASoundFactory;
+import rba.sound.ZoneOperator;
+
+/**
+ * This is the item provider adapter for a {@link rba.sound.ZoneOperator} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class ZoneOperatorItemProvider extends OperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ZoneOperatorItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((ZoneOperator) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_ZoneOperator_type")
+ : getString("_UI_ZoneOperator_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBASoundFactory.eINSTANCE.createIsSounding()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBASoundFactory.eINSTANCE.createIsOutputted()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBASoundFactory.eINSTANCE.createIsMuted()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBASoundFactory.eINSTANCE.createIsAttenuated()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBASoundFactory.eINSTANCE.createOutputtingSound()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBASoundFactory.eINSTANCE.createAllInstanceOfZone()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBASoundFactory.eINSTANCE.createAllInstanceOfSoundContent()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBASoundFactory.eINSTANCE.createIsOutputtedOn()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBASoundFactory.eINSTANCE.createIsChangedOutput()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBASoundFactory.eINSTANCE.createIsTranslatedSoundTo()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBASoundFactory.eINSTANCE.createMuteLowerPriority()));
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return RbaSoundEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/rba.model.sound.edit/src/rba/sound/provider/ZoneSetItemProvider.java b/rba.model.sound.edit/src/rba/sound/provider/ZoneSetItemProvider.java
new file mode 100644
index 0000000..8ee0b57
--- /dev/null
+++ b/rba.model.sound.edit/src/rba/sound/provider/ZoneSetItemProvider.java
@@ -0,0 +1,110 @@
+/**
+ */
+package rba.sound.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.provider.AllocatableSetItemProvider;
+import rba.sound.ZoneSet;
+
+/**
+ * This is the item provider adapter for a {@link rba.sound.ZoneSet} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class ZoneSetItemProvider extends AllocatableSetItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ZoneSetItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns ZoneSet.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/ZoneSet"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((ZoneSet) object).getName();
+ return label == null || label.length() == 0 ? getString("_UI_ZoneSet_type")
+ : getString("_UI_ZoneSet_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return RbaSoundEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/rba.model.sound/.classpath b/rba.model.sound/.classpath
new file mode 100644
index 0000000..22f3064
--- /dev/null
+++ b/rba.model.sound/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/rba.model.sound/.project b/rba.model.sound/.project
new file mode 100644
index 0000000..ce51245
--- /dev/null
+++ b/rba.model.sound/.project
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>rba.model.sound</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <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>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.sirius.nature.modelingproject</nature>
+ <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/rba.model.sound/META-INF/MANIFEST.MF b/rba.model.sound/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..77dc1f2
--- /dev/null
+++ b/rba.model.sound/META-INF/MANIFEST.MF
@@ -0,0 +1,16 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: rba.model.sound;singleton:=true
+Bundle-Version: 0.1.0.qualifier
+Bundle-ClassPath: .
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: rba.sound,
+ rba.sound.impl,
+ rba.sound.util
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.ecore;visibility:=reexport,
+ rba.model.core;visibility:=reexport
+Bundle-ActivationPolicy: lazy
diff --git a/rba.model.sound/build.properties b/rba.model.sound/build.properties
new file mode 100644
index 0000000..4465407
--- /dev/null
+++ b/rba.model.sound/build.properties
@@ -0,0 +1,10 @@
+#
+
+bin.includes = .,\
+ model/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties
+jars.compile.order = .
+source.. = src/
+output.. = bin/
diff --git a/rba.model.sound/model/rbasound.aird b/rba.model.sound/model/rbasound.aird
new file mode 100644
index 0000000..aca2aa2
--- /dev/null
+++ b/rba.model.sound/model/rbasound.aird
@@ -0,0 +1,983 @@
+<?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:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:diagram="http://www.eclipse.org/sirius/diagram/1.1.0" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:viewpoint="http://www.eclipse.org/sirius/1.1.0" xsi:schemaLocation="http://www.eclipse.org/sirius/description/1.1.0 http://www.eclipse.org/sirius/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/style/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description/style">
+ <viewpoint:DAnalysis xmi:id="_FJrY0FqGEei8Ja-whe6hFw" selectedViews="_FLA1kFqGEei8Ja-whe6hFw _cquMwIDqEeuMLsA3Cw6XYg" version="12.0.0.201704271200">
+ <semanticResources>rbasound.ecore</semanticResources>
+ <semanticResources>rbasound.genmodel</semanticResources>
+ <semanticResources>platform:/resource/rba.core/model/rbacore.ecore</semanticResources>
+ <semanticResources>http://www.eclipse.org/emf/2002/Ecore</semanticResources>
+ <semanticResources>platform:/resource/rba.core/model/rbacore.genmodel</semanticResources>
+ <semanticResources>platform:/resource/rba.model.core/model/rbacore.ecore</semanticResources>
+ <semanticResources>platform:/resource/rba.model.core/model/rbacore.genmodel</semanticResources>
+ <ownedViews xmi:type="viewpoint:DView" xmi:id="_FLA1kFqGEei8Ja-whe6hFw">
+ <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']"/>
+ <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" xmi:id="_FLTJdVqGEei8Ja-whe6hFw" name="rbasound" repPath="#_FLTJcFqGEei8Ja-whe6hFw">
+ <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
+ <target xmi:type="ecore:EPackage" href="rbasound.ecore#/"/>
+ </ownedRepresentationDescriptors>
+ </ownedViews>
+ <ownedViews xmi:type="viewpoint:DView" xmi:id="_cquMwIDqEeuMLsA3Cw6XYg">
+ <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Archetype']"/>
+ </ownedViews>
+ </viewpoint:DAnalysis>
+ <diagram:DSemanticDiagram xmi:id="_FLTJcFqGEei8Ja-whe6hFw" name="rbasound">
+ <ownedAnnotationEntries xmi:type="description:AnnotationEntry" xmi:id="_FLTJcVqGEei8Ja-whe6hFw" source="DANNOTATION_CUSTOMIZATION_KEY">
+ <data xmi:type="diagram:ComputedStyleDescriptionRegistry" xmi:id="_FLTJclqGEei8Ja-whe6hFw">
+ <computedStyleDescriptions xmi:type="style:BundledImageDescription" xmi:id="_A4o_4FyTEei8Ja-whe6hFw" labelExpression="service:renderAsNode" labelAlignment="LEFT" tooltipExpression="service:renderTooltip" sizeComputationExpression="1">
+ <borderColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ <labelFormat>bold</labelFormat>
+ <labelColor xmi:type="description:UserFixedColor" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@userColorsPalettes[name='Ecore%20Palette']/@entries[name='Inherited']"/>
+ <color xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ </computedStyleDescriptions>
+ </data>
+ </ownedAnnotationEntries>
+ <ownedAnnotationEntries xmi:type="description:AnnotationEntry" xmi:id="_FLTJdlqGEei8Ja-whe6hFw" source="GMF_DIAGRAMS">
+ <data xmi:type="notation:Diagram" xmi:id="_FLTJd1qGEei8Ja-whe6hFw" type="Sirius" element="_FLTJcFqGEei8Ja-whe6hFw" measurementUnit="Pixel">
+ <children xmi:type="notation:Node" xmi:id="_A47TwFyTEei8Ja-whe6hFw" type="2003" element="_A4QlYFyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_A47Tw1yTEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_A47TxFyTEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_A47UKVyTEei8Ja-whe6hFw" type="3010" element="_A4i5QFyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_A47UKlyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_A47UK1yTEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_NkGAMJnbEeijptRUADwljg" type="3010">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NkGAMZnbEeijptRUADwljg" fontColor="8224125" fontName="Meiryo UI" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NkGAMpnbEeijptRUADwljg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_NkGAM5nbEeijptRUADwljg" type="3010" element="_Nj82QpnbEeijptRUADwljg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NkGANJnbEeijptRUADwljg" fontColor="8224125" fontName="Meiryo UI" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NkGANZnbEeijptRUADwljg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_NkGANpnbEeijptRUADwljg" type="3010" element="_Nj82RJnbEeijptRUADwljg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NkGAN5nbEeijptRUADwljg" fontColor="8224125" fontName="Meiryo UI" fontHeight="8" bold="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NkGAOJnbEeijptRUADwljg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_NkGAOZnbEeijptRUADwljg" type="3010">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NkGAOpnbEeijptRUADwljg" fontColor="8224125" fontName="Meiryo UI" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NkGAO5nbEeijptRUADwljg"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_A47TxVyTEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_A47TxlyTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_A47TwVyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A47TwlyTEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_A47Tx1yTEei8Ja-whe6hFw" type="2003" element="_A4QlYlyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_A47TylyTEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_A47Ty1yTEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_A47UNVyTEei8Ja-whe6hFw" type="3010" element="_A4o_5lyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_A47UNlyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_A47UN1yTEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_NkGAPJnbEeijptRUADwljg" type="3010">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NkGAPZnbEeijptRUADwljg" fontColor="8224125" fontName="Meiryo UI" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NkGAPpnbEeijptRUADwljg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_NkGnQJnbEeijptRUADwljg" type="3010" element="_Nj9dVZnbEeijptRUADwljg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NkGnQZnbEeijptRUADwljg" fontColor="8224125" fontName="Meiryo UI" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NkGnQpnbEeijptRUADwljg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_NkGnQ5nbEeijptRUADwljg" type="3010" element="_Nj9dV5nbEeijptRUADwljg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NkGnRJnbEeijptRUADwljg" fontColor="8224125" fontName="Meiryo UI" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NkGnRZnbEeijptRUADwljg"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_A47TzFyTEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_A47TzVyTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_A47TyFyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A47TyVyTEei8Ja-whe6hFw" x="295"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_A47TzlyTEei8Ja-whe6hFw" type="2003" element="_A4WsAFyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_A47T0VyTEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_A47T0lyTEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_A47UO1yTEei8Ja-whe6hFw" type="3010" element="_A4o_6lyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_A47UPFyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_A47UPVyTEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_NkGnRpnbEeijptRUADwljg" type="3010" element="_Nj-EYJnbEeijptRUADwljg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NkGnR5nbEeijptRUADwljg" fontColor="8224125" fontName="Meiryo UI" fontHeight="8" bold="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NkGnSJnbEeijptRUADwljg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_NkGnSZnbEeijptRUADwljg" type="3010" element="_Nj-EYpnbEeijptRUADwljg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NkGnSpnbEeijptRUADwljg" fontColor="8224125" fontName="Meiryo UI" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NkGnS5nbEeijptRUADwljg"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_A47T01yTEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_A47T1FyTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_A47Tz1yTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A47T0FyTEei8Ja-whe6hFw" x="595"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_A47T3FyTEei8Ja-whe6hFw" type="2003" element="_A4WsBFyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_A47T31yTEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_A47T4FyTEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_A47UVlyTEei8Ja-whe6hFw" type="3010" element="_A4o__lyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_A47UV1yTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_A47UWFyTEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_NkGnTJnbEeijptRUADwljg" type="3010" element="_Nj-rcJnbEeijptRUADwljg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NkGnTZnbEeijptRUADwljg" fontColor="8224125" fontName="Meiryo UI" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NkGnTpnbEeijptRUADwljg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_NkHOUJnbEeijptRUADwljg" type="3010">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NkHOUZnbEeijptRUADwljg" fontColor="8224125" fontName="Meiryo UI" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NkHOUpnbEeijptRUADwljg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_NkHOU5nbEeijptRUADwljg" type="3010" element="_Nj-rdJnbEeijptRUADwljg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NkHOVJnbEeijptRUADwljg" fontColor="8224125" fontName="Meiryo UI" fontHeight="8" bold="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NkHOVZnbEeijptRUADwljg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_A5BaZlyTEei8Ja-whe6hFw" type="3010" element="_A4pAB1yTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_A5BaZ1yTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8" bold="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_A5BaaFyTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_A47T4VyTEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_A47T4lyTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_A47T3VyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A47T3lyTEei8Ja-whe6hFw" x="1460" y="320"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_A47T41yTEei8Ja-whe6hFw" type="2003" element="_A4WsBlyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_A47T5lyTEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_A47T51yTEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_A5BaaVyTEei8Ja-whe6hFw" type="3010" element="_A4vGgFyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_A5BaalyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_A5Baa1yTEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_NkHOVpnbEeijptRUADwljg" type="3010" element="_Nj_SgJnbEeijptRUADwljg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NkHOV5nbEeijptRUADwljg" fontColor="8224125" fontName="Meiryo UI" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NkHOWJnbEeijptRUADwljg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_NkHOWZnbEeijptRUADwljg" type="3010">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NkHOWpnbEeijptRUADwljg" fontColor="8224125" fontName="Meiryo UI" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NkHOW5nbEeijptRUADwljg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_NkHOXJnbEeijptRUADwljg" type="3010" element="_Nj_ShJnbEeijptRUADwljg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NkHOXZnbEeijptRUADwljg" fontColor="8224125" fontName="Meiryo UI" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NkHOXpnbEeijptRUADwljg"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_A47T6FyTEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_A47T6VyTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_A47T5FyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A47T5VyTEei8Ja-whe6hFw" x="1514"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_A47T6lyTEei8Ja-whe6hFw" type="2003" element="_A4WsCFyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_A47T7VyTEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_A47T7lyTEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_A5BabFyTEei8Ja-whe6hFw" type="3010" element="_A4vGglyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_A5BabVyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_A5BablyTEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_NkHOX5nbEeijptRUADwljg" type="3010" element="_Nj_5kZnbEeijptRUADwljg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NkHOYJnbEeijptRUADwljg" fontColor="8224125" fontName="Meiryo UI" fontHeight="8" bold="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NkHOYZnbEeijptRUADwljg"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_A47T71yTEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_A47T8FyTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_A47T61yTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A47T7FyTEei8Ja-whe6hFw" x="1805"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_A47T8VyTEei8Ja-whe6hFw" type="2003" element="_A4WsClyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_A47T9FyTEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_A47T9VyTEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_A5BaclyTEei8Ja-whe6hFw" type="3010" element="_A4vGhlyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_A5Bac1yTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_A5BadFyTEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_NkH1YJnbEeijptRUADwljg" type="3010" element="_NkAgoZnbEeijptRUADwljg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NkH1YZnbEeijptRUADwljg" fontColor="8224125" fontName="Meiryo UI" fontHeight="8" bold="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NkH1YpnbEeijptRUADwljg"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_A47T9lyTEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_A47T91yTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_A47T8lyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A47T81yTEei8Ja-whe6hFw" x="1875" y="160"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_A47T-FyTEei8Ja-whe6hFw" type="2003" element="_A4WsDFyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_A47T-1yTEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_A47T_FyTEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_A5BaeFyTEei8Ja-whe6hFw" type="3010" element="_A4vGilyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_A5BaeVyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_A5BaelyTEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_NkH1Y5nbEeijptRUADwljg" type="3010" element="_NkAgo5nbEeijptRUADwljg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NkH1ZJnbEeijptRUADwljg" fontColor="8224125" fontName="Meiryo UI" fontHeight="8" bold="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NkH1ZZnbEeijptRUADwljg"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_A47T_VyTEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_A47T_lyTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_A47T-VyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A47T-lyTEei8Ja-whe6hFw" x="2605"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_A47T_1yTEei8Ja-whe6hFw" type="2003" element="_A4cyoVyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_A47UAlyTEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_A47UA1yTEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_A5BaflyTEei8Ja-whe6hFw" type="3010" element="_A4vGjlyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_A5Baf1yTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_A5BagFyTEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_A5BagVyTEei8Ja-whe6hFw" type="3010" element="_A4vGkFyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_A5BaglyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_A5Bag1yTEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_NkH1ZpnbEeijptRUADwljg" type="3010" element="_NkBHsJnbEeijptRUADwljg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NkH1Z5nbEeijptRUADwljg" fontColor="8224125" fontName="Meiryo UI" fontHeight="8" bold="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NkH1aJnbEeijptRUADwljg"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_A47UBFyTEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_A47UBVyTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_A47UAFyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A47UAVyTEei8Ja-whe6hFw" x="2730" y="160"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_A47UBlyTEei8Ja-whe6hFw" type="2003" element="_A4cyo1yTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_A47UCVyTEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_A47UClyTEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_A5Bah1yTEei8Ja-whe6hFw" type="3010" element="_A4vGlFyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_A5BaiFyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_A5BaiVyTEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_A5BailyTEei8Ja-whe6hFw" type="3010" element="_A4vGllyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_A5Bai1yTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_A5BajFyTEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_NkH1aZnbEeijptRUADwljg" type="3010" element="_NkBuwJnbEeijptRUADwljg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NkH1apnbEeijptRUADwljg" fontColor="8224125" fontName="Meiryo UI" fontHeight="8" bold="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NkH1a5nbEeijptRUADwljg"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_A47UC1yTEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_A47UDFyTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_A47UB1yTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A47UCFyTEei8Ja-whe6hFw" x="2100" y="160"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_A47UFFyTEei8Ja-whe6hFw" type="2003" element="_A4cyp1yTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_A47UF1yTEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_A47UGFyTEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_A5BamVyTEei8Ja-whe6hFw" type="3010" element="_A4vGoFyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_A5BamlyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_A5Bam1yTEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_A5BanFyTEei8Ja-whe6hFw" type="3010" element="_A4vGolyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_A5BanVyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_A5BanlyTEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_NkH1bJnbEeijptRUADwljg" type="3010" element="_NkBuwpnbEeijptRUADwljg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NkH1bZnbEeijptRUADwljg" fontColor="8224125" fontName="Meiryo UI" fontHeight="8" bold="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NkH1bpnbEeijptRUADwljg"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_A47UGVyTEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_A47UGlyTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_A47UFVyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A47UFlyTEei8Ja-whe6hFw" x="2430" y="160"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_A47UG1yTEei8Ja-whe6hFw" type="2003" element="_A4cyqVyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_A47UHlyTEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_A47UH1yTEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_A5BaolyTEei8Ja-whe6hFw" type="3010" element="_A4vGplyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_A5Bao1yTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_A5BapFyTEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_A5BapVyTEei8Ja-whe6hFw" type="3010" element="_A4vGqFyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_A5BaplyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_A5Bap1yTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_A47UIFyTEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_A47UIVyTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_A47UHFyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A47UHVyTEei8Ja-whe6hFw" x="890"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_A47UIlyTEei8Ja-whe6hFw" type="2003" element="_A4cyq1yTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_A47UJVyTEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_A47UJlyTEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_A5BaqFyTEei8Ja-whe6hFw" type="3010" element="_A4vGqlyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_A5BaqVyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_A5BaqlyTEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_A5Baq1yTEei8Ja-whe6hFw" type="3010" element="_A4vGrFyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_A5BarFyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_A5BarVyTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_A47UJ1yTEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_A47UKFyTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_A47UI1yTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A47UJFyTEei8Ja-whe6hFw" x="1190"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_FLTJeFqGEei8Ja-whe6hFw"/>
+ <edges xmi:type="notation:Edge" xmi:id="_A5BaxlyTEei8Ja-whe6hFw" type="4001" element="_A41NKVyTEei8Ja-whe6hFw" source="_A47T8VyTEei8Ja-whe6hFw" target="_A47T6lyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_A5BaylyTEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A5Bay1yTEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_A5BazFyTEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A5BazVyTEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_A5BazlyTEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A5Baz1yTEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_A5Bax1yTEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_A5BayFyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_A5BayVyTEei8Ja-whe6hFw" points="[0, 0, 0, 60]$[0, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_A5Ba0FyTEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_A5Ba0VyTEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_A5Ba0lyTEei8Ja-whe6hFw" type="4001" element="_A41NLVyTEei8Ja-whe6hFw" source="_A47T_1yTEei8Ja-whe6hFw" target="_A47T-FyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_A5Ba1lyTEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A5Ba11yTEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_A5Ba2FyTEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A5Ba2VyTEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_A5Ba2lyTEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A5Ba21yTEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_A5Ba01yTEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_A5Ba1FyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_A5Ba1VyTEei8Ja-whe6hFw" points="[0, 0, 149, 60]$[-149, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_A5Ba3FyTEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_A5Ba3VyTEei8Ja-whe6hFw" id="(0.4973821989528796,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_A5Ba3lyTEei8Ja-whe6hFw" type="4001" element="_A41NMVyTEei8Ja-whe6hFw" source="_A47UBlyTEei8Ja-whe6hFw" target="_A47T-FyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_A5Ba4lyTEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A5Ba41yTEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_A5Ba5FyTEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A5Ba5VyTEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_A5Ba5lyTEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A5Ba51yTEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_A5Ba31yTEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_A5Ba4FyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_A5Ba4VyTEei8Ja-whe6hFw" points="[0, 0, -447, 60]$[447, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_A5Ba6FyTEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_A5Ba6VyTEei8Ja-whe6hFw" id="(0.4973821989528796,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_A5Ba9lyTEei8Ja-whe6hFw" type="4001" element="_A41NOVyTEei8Ja-whe6hFw" source="_A47UFFyTEei8Ja-whe6hFw" target="_A47T-FyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_A5Ba-lyTEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A5Ba-1yTEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_A5Ba_FyTEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A5Ba_VyTEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_A5Ba_lyTEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A5Ba_1yTEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_A5Ba91yTEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_A5Ba-FyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_A5Ba-VyTEei8Ja-whe6hFw" points="[0, 0, -149, 60]$[149, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_A5BbAFyTEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_A5BbAVyTEei8Ja-whe6hFw" id="(0.4973821989528796,1.0)"/>
+ </edges>
+ </data>
+ </ownedAnnotationEntries>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_A4QlYFyTEei8Ja-whe6hFw" name="SoundContent" tooltipText="" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbasound.ecore#//SoundContent"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbasound.ecore#//SoundContent"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_A4QlYVyTEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_A4i5QFyTEei8Ja-whe6hFw" name="getExpressionType() : ExpressionType" tooltipText="getExpressionType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbasound.ecore#//SoundContent/getExpressionType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbasound.ecore#//SoundContent/getExpressionType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_A4i5QVyTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_cs2TsIDqEeuMLsA3Cw6XYg" name=" tags : Tag" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//RuleObject/tags"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//RuleObject/tags"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_cs26wIDqEeuMLsA3Cw6XYg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_cs3h0IDqEeuMLsA3Cw6XYg" name=" contentGroup : ContentSet" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//AbstractContent/contentGroup"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//AbstractContent/contentGroup"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_cs3h0YDqEeuMLsA3Cw6XYg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Nj82QpnbEeijptRUADwljg" name=" allocatable : AbstractAllocatable" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//AbstractContent/allocatable"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//AbstractContent/allocatable"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Nj82Q5nbEeijptRUADwljg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Nj82RJnbEeijptRUADwljg" name=" states : ContentState" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Content/states"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Content/states"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_cs4v8IDqEeuMLsA3Cw6XYg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_A4QlYlyTEei8Ja-whe6hFw" name="SoundContentSet" tooltipText="" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbasound.ecore#//SoundContentSet"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbasound.ecore#//SoundContentSet"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_A4QlY1yTEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_A4o_5lyTEei8Ja-whe6hFw" name="getExpressionType() : ExpressionType" tooltipText="getExpressionType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbasound.ecore#//SoundContentSet/getExpressionType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbasound.ecore#//SoundContentSet/getExpressionType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_A4o_51yTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_cs5-EIDqEeuMLsA3Cw6XYg" name=" tags : Tag" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//RuleObject/tags"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//RuleObject/tags"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_cs5-EYDqEeuMLsA3Cw6XYg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_cs6lIIDqEeuMLsA3Cw6XYg" name=" contentGroup : ContentSet" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//AbstractContent/contentGroup"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//AbstractContent/contentGroup"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_cs6lIYDqEeuMLsA3Cw6XYg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Nj9dVZnbEeijptRUADwljg" name=" allocatable : AbstractAllocatable" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//AbstractContent/allocatable"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//AbstractContent/allocatable"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Nj9dVpnbEeijptRUADwljg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Nj9dV5nbEeijptRUADwljg" name=" target : AbstractContent" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//ContentSet/target"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//ContentSet/target"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Nj9dWJnbEeijptRUADwljg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_A4WsAFyTEei8Ja-whe6hFw" name="SoundContentState" tooltipText="" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbasound.ecore#//SoundContentState"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbasound.ecore#//SoundContentState"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_A4WsAVyTEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_A4o_6lyTEei8Ja-whe6hFw" name="getExpressionType() : ExpressionType" tooltipText="getExpressionType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbasound.ecore#//SoundContentState/getExpressionType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbasound.ecore#//SoundContentState/getExpressionType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_A4o_61yTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_cs7zQIDqEeuMLsA3Cw6XYg" name=" tags : Tag" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//RuleObject/tags"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//RuleObject/tags"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_cs7zQYDqEeuMLsA3Cw6XYg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Nj-EYJnbEeijptRUADwljg" name=" value : Expression" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//ContentState/value"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//ContentState/value"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Nj-EYZnbEeijptRUADwljg" labelColor="125,125,125" labelAlignment="LEFT" description="_A4o_4FyTEei8Ja-whe6hFw">
+ <labelFormat>bold</labelFormat>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Nj-EYpnbEeijptRUADwljg" name=" owner : Content" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//ContentState/owner"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//ContentState/owner"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Nj-EY5nbEeijptRUADwljg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_A4WsBFyTEei8Ja-whe6hFw" name="Zone" tooltipText="" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbasound.ecore#//Zone"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbasound.ecore#//Zone"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_A4WsBVyTEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_A4o__lyTEei8Ja-whe6hFw" name="getExpressionType() : ExpressionType" tooltipText="getExpressionType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbasound.ecore#//Zone/getExpressionType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbasound.ecore#//Zone/getExpressionType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_A4o__1yTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_cs9ocIDqEeuMLsA3Cw6XYg" name=" tags : Tag" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//RuleObject/tags"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//RuleObject/tags"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_cs9ocYDqEeuMLsA3Cw6XYg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Nj-rcJnbEeijptRUADwljg" name=" contents : AbstractContent" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//AbstractAllocatable/contents"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//AbstractAllocatable/contents"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Nj-rcZnbEeijptRUADwljg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_cs-PgIDqEeuMLsA3Cw6XYg" name=" allocatableGroup : AllocatableSet" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//AbstractAllocatable/allocatableGroup"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//AbstractAllocatable/allocatableGroup"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_cs-PgYDqEeuMLsA3Cw6XYg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Nj-rdJnbEeijptRUADwljg" name=" visibility : Expression" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Allocatable/visibility"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Allocatable/visibility"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_cs-2kIDqEeuMLsA3Cw6XYg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_A4pAB1yTEei8Ja-whe6hFw" name=" attenuate : Expression" tooltipText="">
+ <target xmi:type="ecore:EReference" href="rbasound.ecore#//Zone/attenuate"/>
+ <semanticElements xmi:type="ecore:EReference" href="rbasound.ecore#//Zone/attenuate"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Nj-rdpnbEeijptRUADwljg" labelAlignment="LEFT" color="114,159,207">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_A4WsBlyTEei8Ja-whe6hFw" name="ZoneSet" tooltipText="" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbasound.ecore#//ZoneSet"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbasound.ecore#//ZoneSet"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_A4WsB1yTEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_A4vGgFyTEei8Ja-whe6hFw" name="getExpressionType() : ExpressionType" tooltipText="getExpressionType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbasound.ecore#//ZoneSet/getExpressionType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbasound.ecore#//ZoneSet/getExpressionType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_A4vGgVyTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_cs_doIDqEeuMLsA3Cw6XYg" name=" tags : Tag" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//RuleObject/tags"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//RuleObject/tags"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_cs_doYDqEeuMLsA3Cw6XYg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Nj_SgJnbEeijptRUADwljg" name=" contents : AbstractContent" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//AbstractAllocatable/contents"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//AbstractAllocatable/contents"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Nj_SgZnbEeijptRUADwljg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_cs_dooDqEeuMLsA3Cw6XYg" name=" allocatableGroup : AllocatableSet" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//AbstractAllocatable/allocatableGroup"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//AbstractAllocatable/allocatableGroup"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_ctAEsIDqEeuMLsA3Cw6XYg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Nj_ShJnbEeijptRUADwljg" name=" target : AbstractAllocatable" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//AllocatableSet/target"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//AllocatableSet/target"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Nj_5kJnbEeijptRUADwljg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_A4WsCFyTEei8Ja-whe6hFw" name="SoundContentOperator" tooltipText="" incomingEdges="_A41NKVyTEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbasound.ecore#//SoundContentOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbasound.ecore#//SoundContentOperator"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_A4WsCVyTEei8Ja-whe6hFw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_A4vGglyTEei8Ja-whe6hFw" name="getUnderlyingType() : ExpressionType" tooltipText="getUnderlyingType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbasound.ecore#//SoundContentOperator/getUnderlyingType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbasound.ecore#//SoundContentOperator/getUnderlyingType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_A4vGg1yTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_ctArwIDqEeuMLsA3Cw6XYg" name=" letStatements : LetStatement" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Expression/letStatements"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Expression/letStatements"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_ctArwYDqEeuMLsA3Cw6XYg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Nj_5kZnbEeijptRUADwljg" name=" operand : Expression" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Operator/operand"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Operator/operand"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_NkAgoJnbEeijptRUADwljg" labelColor="125,125,125" labelAlignment="LEFT" description="_A4o_4FyTEei8Ja-whe6hFw">
+ <labelFormat>bold</labelFormat>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_A4WsClyTEei8Ja-whe6hFw" name="IsSounding" tooltipText="" outgoingEdges="_A41NKVyTEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbasound.ecore#//IsSounding"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbasound.ecore#//IsSounding"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_A4WsC1yTEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_A4vGhlyTEei8Ja-whe6hFw" name="getSymbol() : EString" tooltipText="getSymbol() : EString">
+ <target xmi:type="ecore:EOperation" href="rbasound.ecore#//IsSounding/getSymbol"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbasound.ecore#//IsSounding/getSymbol"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_A4vGh1yTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_ctBS0IDqEeuMLsA3Cw6XYg" name=" letStatements : LetStatement" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Expression/letStatements"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Expression/letStatements"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_ctB54IDqEeuMLsA3Cw6XYg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_NkAgoZnbEeijptRUADwljg" name=" operand : Expression" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Operator/operand"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Operator/operand"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_NkAgopnbEeijptRUADwljg" labelColor="125,125,125" labelAlignment="LEFT" description="_A4o_4FyTEei8Ja-whe6hFw">
+ <labelFormat>bold</labelFormat>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_A4WsDFyTEei8Ja-whe6hFw" name="ZoneOperator" tooltipText="" incomingEdges="_A41NLVyTEei8Ja-whe6hFw _A41NMVyTEei8Ja-whe6hFw _A41NOVyTEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbasound.ecore#//ZoneOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbasound.ecore#//ZoneOperator"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_A4cyoFyTEei8Ja-whe6hFw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_A4vGilyTEei8Ja-whe6hFw" name="getExpressionText() : EString" tooltipText="getExpressionText() : EString">
+ <target xmi:type="ecore:EOperation" href="rbasound.ecore#//ZoneOperator/getExpressionText"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbasound.ecore#//ZoneOperator/getExpressionText"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_A4vGi1yTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_ctCg8IDqEeuMLsA3Cw6XYg" name=" letStatements : LetStatement" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Expression/letStatements"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Expression/letStatements"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_ctDIAIDqEeuMLsA3Cw6XYg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_NkAgo5nbEeijptRUADwljg" name=" operand : Expression" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Operator/operand"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Operator/operand"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_NkAgpJnbEeijptRUADwljg" labelColor="125,125,125" labelAlignment="LEFT" description="_A4o_4FyTEei8Ja-whe6hFw">
+ <labelFormat>bold</labelFormat>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_A4cyoVyTEei8Ja-whe6hFw" name="IsOutputted" tooltipText="" outgoingEdges="_A41NLVyTEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbasound.ecore#//IsOutputted"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbasound.ecore#//IsOutputted"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_A4cyolyTEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_A4vGjlyTEei8Ja-whe6hFw" name="getSymbol() : EString" tooltipText="getSymbol() : EString">
+ <target xmi:type="ecore:EOperation" href="rbasound.ecore#//IsOutputted/getSymbol"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbasound.ecore#//IsOutputted/getSymbol"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_A4vGj1yTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_A4vGkFyTEei8Ja-whe6hFw" name="getUnderlyingType() : ExpressionType" tooltipText="getUnderlyingType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbasound.ecore#//IsOutputted/getUnderlyingType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbasound.ecore#//IsOutputted/getUnderlyingType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_A4vGkVyTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_ctDvEIDqEeuMLsA3Cw6XYg" name=" letStatements : LetStatement" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Expression/letStatements"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Expression/letStatements"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_ctDvEYDqEeuMLsA3Cw6XYg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_NkBHsJnbEeijptRUADwljg" name=" operand : Expression" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Operator/operand"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Operator/operand"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_NkBHsZnbEeijptRUADwljg" labelColor="125,125,125" labelAlignment="LEFT" description="_A4o_4FyTEei8Ja-whe6hFw">
+ <labelFormat>bold</labelFormat>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_A4cyo1yTEei8Ja-whe6hFw" name="IsMuted" tooltipText="" outgoingEdges="_A41NMVyTEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbasound.ecore#//IsMuted"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbasound.ecore#//IsMuted"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_A4cypFyTEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_A4vGlFyTEei8Ja-whe6hFw" name="getSymbol() : EString" tooltipText="getSymbol() : EString">
+ <target xmi:type="ecore:EOperation" href="rbasound.ecore#//IsMuted/getSymbol"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbasound.ecore#//IsMuted/getSymbol"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_A4vGlVyTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_A4vGllyTEei8Ja-whe6hFw" name="getUnderlyingType() : ExpressionType" tooltipText="getUnderlyingType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbasound.ecore#//IsMuted/getUnderlyingType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbasound.ecore#//IsMuted/getUnderlyingType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_A4vGl1yTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_ctEWIIDqEeuMLsA3Cw6XYg" name=" letStatements : LetStatement" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Expression/letStatements"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Expression/letStatements"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_ctEWIYDqEeuMLsA3Cw6XYg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_NkBuwJnbEeijptRUADwljg" name=" operand : Expression" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Operator/operand"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Operator/operand"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_NkBuwZnbEeijptRUADwljg" labelColor="125,125,125" labelAlignment="LEFT" description="_A4o_4FyTEei8Ja-whe6hFw">
+ <labelFormat>bold</labelFormat>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_A4cyp1yTEei8Ja-whe6hFw" name="OutputtingSound" tooltipText="" outgoingEdges="_A41NOVyTEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbasound.ecore#//OutputtingSound"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbasound.ecore#//OutputtingSound"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_A4cyqFyTEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_A4vGoFyTEei8Ja-whe6hFw" name="getSymbol() : EString" tooltipText="getSymbol() : EString">
+ <target xmi:type="ecore:EOperation" href="rbasound.ecore#//OutputtingSound/getSymbol"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbasound.ecore#//OutputtingSound/getSymbol"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_A4vGoVyTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_A4vGolyTEei8Ja-whe6hFw" name="getUnderlyingType() : ExpressionType" tooltipText="getUnderlyingType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbasound.ecore#//OutputtingSound/getUnderlyingType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbasound.ecore#//OutputtingSound/getUnderlyingType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_A4vGo1yTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_ctFkQIDqEeuMLsA3Cw6XYg" name=" letStatements : LetStatement" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Expression/letStatements"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Expression/letStatements"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_ctFkQYDqEeuMLsA3Cw6XYg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_NkBuwpnbEeijptRUADwljg" name=" operand : Expression" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Operator/operand"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Operator/operand"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_NkBuw5nbEeijptRUADwljg" labelColor="125,125,125" labelAlignment="LEFT" description="_A4o_4FyTEei8Ja-whe6hFw">
+ <labelFormat>bold</labelFormat>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_A4cyqVyTEei8Ja-whe6hFw" name="AllInstanceOfZone" tooltipText="" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbasound.ecore#//AllInstanceOfZone"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbasound.ecore#//AllInstanceOfZone"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_A4cyqlyTEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_A4vGplyTEei8Ja-whe6hFw" name="getExpressionText() : EString" tooltipText="getExpressionText() : EString">
+ <target xmi:type="ecore:EOperation" href="rbasound.ecore#//AllInstanceOfZone/getExpressionText"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbasound.ecore#//AllInstanceOfZone/getExpressionText"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_A4vGp1yTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_A4vGqFyTEei8Ja-whe6hFw" name="getUnderlyingType() : ExpressionType" tooltipText="getUnderlyingType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbasound.ecore#//AllInstanceOfZone/getUnderlyingType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbasound.ecore#//AllInstanceOfZone/getUnderlyingType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_A4vGqVyTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_ctGLUIDqEeuMLsA3Cw6XYg" name=" letStatements : LetStatement" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Expression/letStatements"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Expression/letStatements"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_ctGLUYDqEeuMLsA3Cw6XYg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_A4cyq1yTEei8Ja-whe6hFw" name="AllInstanceOfSoundContent" tooltipText="" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbasound.ecore#//AllInstanceOfSoundContent"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbasound.ecore#//AllInstanceOfSoundContent"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_A4cyrFyTEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_A4vGqlyTEei8Ja-whe6hFw" name="getExpressionText() : EString" tooltipText="getExpressionText() : EString">
+ <target xmi:type="ecore:EOperation" href="rbasound.ecore#//AllInstanceOfSoundContent/getExpressionText"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbasound.ecore#//AllInstanceOfSoundContent/getExpressionText"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_A4vGq1yTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_A4vGrFyTEei8Ja-whe6hFw" name="getUnderlyingType() : ExpressionType" tooltipText="getUnderlyingType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbasound.ecore#//AllInstanceOfSoundContent/getUnderlyingType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbasound.ecore#//AllInstanceOfSoundContent/getUnderlyingType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_A41NIFyTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_ctGyYIDqEeuMLsA3Cw6XYg" name=" letStatements : LetStatement" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Expression/letStatements"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Expression/letStatements"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_ctGyYYDqEeuMLsA3Cw6XYg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_A41NKVyTEei8Ja-whe6hFw" sourceNode="_A4WsClyTEei8Ja-whe6hFw" targetNode="_A4WsCFyTEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbasound.ecore#//IsSounding"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbasound.ecore#//IsSounding"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_A41NKlyTEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_A41NK1yTEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_A41NLFyTEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_A41NLVyTEei8Ja-whe6hFw" sourceNode="_A4cyoVyTEei8Ja-whe6hFw" targetNode="_A4WsDFyTEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbasound.ecore#//IsOutputted"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbasound.ecore#//IsOutputted"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_A41NLlyTEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_A41NL1yTEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_A41NMFyTEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_A41NMVyTEei8Ja-whe6hFw" sourceNode="_A4cyo1yTEei8Ja-whe6hFw" targetNode="_A4WsDFyTEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbasound.ecore#//IsMuted"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbasound.ecore#//IsMuted"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_A41NMlyTEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_A41NM1yTEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_A41NNFyTEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_A41NOVyTEei8Ja-whe6hFw" sourceNode="_A4cyp1yTEei8Ja-whe6hFw" targetNode="_A4WsDFyTEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbasound.ecore#//OutputtingSound"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbasound.ecore#//OutputtingSound"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_A41NOlyTEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_A41NO1yTEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_A41NPFyTEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
+ <filterVariableHistory xmi:type="diagram:FilterVariableHistory" xmi:id="_FLTJdFqGEei8Ja-whe6hFw"/>
+ <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/>
+ <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Package']"/>
+ <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Validation']"/>
+ <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Archetype']/@ownedRepresentationExtensions[name='Entities%20With%20Archetypes']/@layers[name='Archetypes']"/>
+ <target xmi:type="ecore:EPackage" href="rbasound.ecore#/"/>
+ </diagram:DSemanticDiagram>
+</xmi:XMI>
diff --git a/rba.model.sound/model/rbasound.ecore b/rba.model.sound/model/rbasound.ecore
new file mode 100644
index 0000000..0adaeed
--- /dev/null
+++ b/rba.model.sound/model/rbasound.ecore
@@ -0,0 +1,267 @@
+<?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="sound" nsURI="http://www.denso.com/ict/rba/sound" nsPrefix="RbaSound">
+ <eAnnotations source="http://www.eclipse.org/OCL/Import">
+ <details key="RbaCore" value="../../rba.model.core/model/rbacore.ecore#/"/>
+ </eAnnotations>
+ <eClassifiers xsi:type="ecore:EClass" name="SoundContent" eSuperTypes="../../rba.model.core/model/rbacore.ecore#//Content">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getExpressionType" eType="ecore:EEnum ../../rba.model.core/model/rbacore.ecore#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.SOUND;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SoundContentSet" eSuperTypes="../../rba.model.core/model/rbacore.ecore#//ContentSet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getExpressionType" eType="ecore:EEnum ../../rba.model.core/model/rbacore.ecore#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.SET_OF_SOUND;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SoundContentState" eSuperTypes="../../rba.model.core/model/rbacore.ecore#//ContentState">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getExpressionType" eType="ecore:EEnum ../../rba.model.core/model/rbacore.ecore#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.CONTENT_STATE;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Zone" eSuperTypes="../../rba.model.core/model/rbacore.ecore#//Allocatable">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getExpressionType" eType="ecore:EEnum ../../rba.model.core/model/rbacore.ecore#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.ZONE;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="attenuate" eType="ecore:EClass ../../rba.model.core/model/rbacore.ecore#//Expression"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ZoneSet" eSuperTypes="../../rba.model.core/model/rbacore.ecore#//AllocatableSet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getExpressionType" eType="ecore:EEnum ../../rba.model.core/model/rbacore.ecore#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.SET_OF_ZONE;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SoundContentOperator" abstract="true"
+ eSuperTypes="../../rba.model.core/model/rbacore.ecore#//ContentOperator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getUnderlyingType" eType="ecore:EEnum ../../rba.model.core/model/rbacore.ecore#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.BOOLEAN;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="IsSounding" eSuperTypes="#//SoundContentOperator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;.isSounding()&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ZoneOperator" abstract="true" eSuperTypes="../../rba.model.core/model/rbacore.ecore#//Operator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="StringBuffer expressionText = new StringBuffer();&#xD;&#xA;EList&lt;rba.core.Expression> expressions = getOperand();&#xD;&#xA;expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;expressionText.append(getSymbol());&#xD;&#xA;return expressionText.toString();"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="IsOutputted" eSuperTypes="#//ZoneOperator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;.isOutputted()&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="ecore:EEnum ../../rba.model.core/model/rbacore.ecore#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.BOOLEAN;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="IsMuted" eSuperTypes="#//ZoneOperator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;.isMuted()&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="ecore:EEnum ../../rba.model.core/model/rbacore.ecore#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.BOOLEAN;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="IsAttenuated" eSuperTypes="#//ZoneOperator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;.isAttenauted()&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="ecore:EEnum ../../rba.model.core/model/rbacore.ecore#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.BOOLEAN;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="OutputtingSound" eSuperTypes="#//ZoneOperator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;.outputtingSound()&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="ecore:EEnum ../../rba.model.core/model/rbacore.ecore#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.SOUND;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AllInstanceOfZone" eSuperTypes="../../rba.model.core/model/rbacore.ecore#//SetExpression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;ALL_ZONES&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="ecore:EEnum ../../rba.model.core/model/rbacore.ecore#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.SET_OF_ZONE;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AllInstanceOfSoundContent" eSuperTypes="../../rba.model.core/model/rbacore.ecore#//SetExpression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;ALL_SOUNDCONTENTS&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="ecore:EEnum ../../rba.model.core/model/rbacore.ecore#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.SET_OF_SOUND;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="IsOutputtedOn" eSuperTypes="#//SoundContentOperator ../../rba.model.core/model/rbacore.ecore#//SugarExpressionBase">
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;.isOutputtedOn&quot;;"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="ecore:EEnum ../../rba.model.core/model/rbacore.ecore#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.BOOLEAN;"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="StringBuilder expressionText = new StringBuilder();&#xD;&#xA;EList&lt;rba.core.Expression> expressions = getOperand();&#xD;&#xA;expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;expressionText.append(getSymbol());&#xD;&#xA;expressionText.append(&quot;(&quot;);&#xD;&#xA;expressionText.append(expressions.size() > 1 ? expressions.get(1).getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;expressionText.append(&quot;)&quot;);&#xD;&#xA;return expressionText.toString();"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="IsChangedOutput" eSuperTypes="#//ZoneOperator ../../rba.model.core/model/rbacore.ecore#//SugarExpressionBase">
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;.isChangedOutput()&quot;;"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="ecore:EEnum ../../rba.model.core/model/rbacore.ecore#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.BOOLEAN;"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="IsTranslatedSoundTo" eSuperTypes="#//ZoneOperator ../../rba.model.core/model/rbacore.ecore#//SugarExpressionBase">
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;.isTranslatedSoundTo&quot;;"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="ecore:EEnum ../../rba.model.core/model/rbacore.ecore#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.BOOLEAN;"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="StringBuilder expressionText = new StringBuilder();&#xD;&#xA;EList&lt;rba.core.Expression> expressions = getOperand();&#xD;&#xA;expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;expressionText.append(getSymbol());&#xD;&#xA;expressionText.append(&quot;(&quot;);&#xD;&#xA;expressionText.append(expressions.size() > 1 ? expressions.get(1).getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;expressionText.append(&quot;)&quot;);&#xD;&#xA;return expressionText.toString();"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MuteLowerPriority" eSuperTypes="../../rba.model.core/model/rbacore.ecore#//Operator ../../rba.model.core/model/rbacore.ecore#//SugarExpressionBase">
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;MuteLowerPriority&quot;;"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="ecore:EEnum ../../rba.model.core/model/rbacore.ecore#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.BOOLEAN;"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="StringBuilder expressionText = new StringBuilder();&#xD;&#xA;EList&lt;rba.core.Expression> expressions = getOperand();&#xD;&#xA;expressionText.append(getSymbol());&#xD;&#xA;expressionText.append(&quot;(&quot;);&#xD;&#xA;expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;expressionText.append(&quot;,&quot;);&#xD;&#xA;expressionText.append(expressions.size() > 1 ? expressions.get(1).getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;expressionText.append(&quot;)&quot;);&#xD;&#xA;return expressionText.toString();"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/rba.model.sound/model/rbasound.genmodel b/rba.model.sound/model/rbasound.genmodel
new file mode 100644
index 0000000..75c0ea3
--- /dev/null
+++ b/rba.model.sound/model/rbasound.genmodel
@@ -0,0 +1,83 @@
+<?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="/rba.model.sound/src" creationIcons="false" editDirectory="/rba.model.sound.edit/src"
+ editorDirectory="/rba.model.sound.editor/src" modelPluginID="rba.model.sound"
+ modelName="RbaSound" editPluginClass="rba.sound.provider.RbaSoundEditPlugin" editorPluginClass="rba.sound.presentation.RbaSoundEditorPlugin"
+ rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container" codeFormatting="true"
+ testsDirectory="/rba.model.sound.tests/src" testSuiteClass="rba.sound.tests.RbaSoundAllTests"
+ importerID="org.eclipse.emf.importer.ecore" complianceLevel="8.0" copyrightFields="false"
+ editPluginID="rba.model.sound.edit" editorPluginID="rba.model.sound.editor" usedGenPackages="../../rba.model.core/model/rbacore.genmodel#//core"
+ operationReflection="true" importOrganizing="true">
+ <foreignModel>rbasound.ecore</foreignModel>
+ <genPackages prefix="RBASound" basePackage="rba" disposableProviderFactory="true"
+ ecorePackage="rbasound.ecore#/">
+ <genClasses ecoreClass="rbasound.ecore#//SoundContent">
+ <genOperations ecoreOperation="rbasound.ecore#//SoundContent/getExpressionType"/>
+ </genClasses>
+ <genClasses ecoreClass="rbasound.ecore#//SoundContentSet">
+ <genOperations ecoreOperation="rbasound.ecore#//SoundContentSet/getExpressionType"/>
+ </genClasses>
+ <genClasses ecoreClass="rbasound.ecore#//SoundContentState">
+ <genOperations ecoreOperation="rbasound.ecore#//SoundContentState/getExpressionType"/>
+ </genClasses>
+ <genClasses ecoreClass="rbasound.ecore#//Zone">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference rbasound.ecore#//Zone/attenuate"/>
+ <genOperations ecoreOperation="rbasound.ecore#//Zone/getExpressionType"/>
+ </genClasses>
+ <genClasses ecoreClass="rbasound.ecore#//ZoneSet">
+ <genOperations ecoreOperation="rbasound.ecore#//ZoneSet/getExpressionType"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="rbasound.ecore#//SoundContentOperator">
+ <genOperations ecoreOperation="rbasound.ecore#//SoundContentOperator/getUnderlyingType"/>
+ </genClasses>
+ <genClasses ecoreClass="rbasound.ecore#//IsSounding">
+ <genOperations ecoreOperation="rbasound.ecore#//IsSounding/getSymbol"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="rbasound.ecore#//ZoneOperator">
+ <genOperations ecoreOperation="rbasound.ecore#//ZoneOperator/getExpressionText"/>
+ </genClasses>
+ <genClasses ecoreClass="rbasound.ecore#//IsOutputted">
+ <genOperations ecoreOperation="rbasound.ecore#//IsOutputted/getSymbol"/>
+ <genOperations ecoreOperation="rbasound.ecore#//IsOutputted/getUnderlyingType"/>
+ </genClasses>
+ <genClasses ecoreClass="rbasound.ecore#//IsMuted">
+ <genOperations ecoreOperation="rbasound.ecore#//IsMuted/getSymbol"/>
+ <genOperations ecoreOperation="rbasound.ecore#//IsMuted/getUnderlyingType"/>
+ </genClasses>
+ <genClasses ecoreClass="rbasound.ecore#//IsAttenuated">
+ <genOperations ecoreOperation="rbasound.ecore#//IsAttenuated/getSymbol"/>
+ <genOperations ecoreOperation="rbasound.ecore#//IsAttenuated/getUnderlyingType"/>
+ </genClasses>
+ <genClasses ecoreClass="rbasound.ecore#//OutputtingSound">
+ <genOperations ecoreOperation="rbasound.ecore#//OutputtingSound/getSymbol"/>
+ <genOperations ecoreOperation="rbasound.ecore#//OutputtingSound/getUnderlyingType"/>
+ </genClasses>
+ <genClasses ecoreClass="rbasound.ecore#//AllInstanceOfZone">
+ <genOperations ecoreOperation="rbasound.ecore#//AllInstanceOfZone/getExpressionText"/>
+ <genOperations ecoreOperation="rbasound.ecore#//AllInstanceOfZone/getUnderlyingType"/>
+ </genClasses>
+ <genClasses ecoreClass="rbasound.ecore#//AllInstanceOfSoundContent">
+ <genOperations ecoreOperation="rbasound.ecore#//AllInstanceOfSoundContent/getExpressionText"/>
+ <genOperations ecoreOperation="rbasound.ecore#//AllInstanceOfSoundContent/getUnderlyingType"/>
+ </genClasses>
+ <genClasses ecoreClass="rbasound.ecore#//IsOutputtedOn">
+ <genOperations ecoreOperation="rbasound.ecore#//IsOutputtedOn/getSymbol"/>
+ <genOperations ecoreOperation="rbasound.ecore#//IsOutputtedOn/getUnderlyingType"/>
+ <genOperations ecoreOperation="rbasound.ecore#//IsOutputtedOn/getExpressionText"/>
+ </genClasses>
+ <genClasses ecoreClass="rbasound.ecore#//IsChangedOutput">
+ <genOperations ecoreOperation="rbasound.ecore#//IsChangedOutput/getSymbol"/>
+ <genOperations ecoreOperation="rbasound.ecore#//IsChangedOutput/getUnderlyingType"/>
+ </genClasses>
+ <genClasses ecoreClass="rbasound.ecore#//IsTranslatedSoundTo">
+ <genOperations ecoreOperation="rbasound.ecore#//IsTranslatedSoundTo/getSymbol"/>
+ <genOperations ecoreOperation="rbasound.ecore#//IsTranslatedSoundTo/getUnderlyingType"/>
+ <genOperations ecoreOperation="rbasound.ecore#//IsTranslatedSoundTo/getExpressionText"/>
+ </genClasses>
+ <genClasses ecoreClass="rbasound.ecore#//MuteLowerPriority">
+ <genOperations ecoreOperation="rbasound.ecore#//MuteLowerPriority/getSymbol"/>
+ <genOperations ecoreOperation="rbasound.ecore#//MuteLowerPriority/getUnderlyingType"/>
+ <genOperations ecoreOperation="rbasound.ecore#//MuteLowerPriority/getExpressionText"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/rba.model.sound/plugin.properties b/rba.model.sound/plugin.properties
new file mode 100644
index 0000000..1c6a3a4
--- /dev/null
+++ b/rba.model.sound/plugin.properties
@@ -0,0 +1,4 @@
+#
+
+pluginName = RBA Tool RBASound Model
+providerName =DENSO CORPORATION
diff --git a/rba.model.sound/plugin.xml b/rba.model.sound/plugin.xml
new file mode 100644
index 0000000..cf4ba2a
--- /dev/null
+++ b/rba.model.sound/plugin.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated rbasound -->
+ <package
+ uri="http://www.denso.com/ict/rba/sound"
+ class="rba.sound.RBASoundPackage"
+ genModel="model/rbasound.genmodel"/>
+ </extension>
+
+</plugin>
diff --git a/rba.model.sound/src/rba/sound/AllInstanceOfSoundContent.java b/rba.model.sound/src/rba/sound/AllInstanceOfSoundContent.java
new file mode 100644
index 0000000..75091bb
--- /dev/null
+++ b/rba.model.sound/src/rba/sound/AllInstanceOfSoundContent.java
@@ -0,0 +1,47 @@
+/**
+ */
+package rba.sound;
+
+import rba.core.ExpressionType;
+import rba.core.SetExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>All Instance Of Sound Content</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.sound.RBASoundPackage#getAllInstanceOfSoundContent()
+ * @model
+ * @generated
+ */
+public interface AllInstanceOfSoundContent extends SetExpression {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"ALL_SOUNDCONTENTS\";'"
+ * @generated
+ */
+ String getExpressionText();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.SET_OF_SOUND;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+} // AllInstanceOfSoundContent
diff --git a/rba.model.sound/src/rba/sound/AllInstanceOfZone.java b/rba.model.sound/src/rba/sound/AllInstanceOfZone.java
new file mode 100644
index 0000000..2b97bb5
--- /dev/null
+++ b/rba.model.sound/src/rba/sound/AllInstanceOfZone.java
@@ -0,0 +1,47 @@
+/**
+ */
+package rba.sound;
+
+import rba.core.ExpressionType;
+import rba.core.SetExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>All Instance Of Zone</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.sound.RBASoundPackage#getAllInstanceOfZone()
+ * @model
+ * @generated
+ */
+public interface AllInstanceOfZone extends SetExpression {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"ALL_ZONES\";'"
+ * @generated
+ */
+ String getExpressionText();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.SET_OF_ZONE;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+} // AllInstanceOfZone
diff --git a/rba.model.sound/src/rba/sound/IsAttenuated.java b/rba.model.sound/src/rba/sound/IsAttenuated.java
new file mode 100644
index 0000000..dde2390
--- /dev/null
+++ b/rba.model.sound/src/rba/sound/IsAttenuated.java
@@ -0,0 +1,46 @@
+/**
+ */
+package rba.sound;
+
+import rba.core.ExpressionType;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Is Attenuated</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.sound.RBASoundPackage#getIsAttenuated()
+ * @model
+ * @generated
+ */
+public interface IsAttenuated extends ZoneOperator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".isAttenauted()\";'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.BOOLEAN;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+} // IsAttenuated
diff --git a/rba.model.sound/src/rba/sound/IsChangedOutput.java b/rba.model.sound/src/rba/sound/IsChangedOutput.java
new file mode 100644
index 0000000..877988a
--- /dev/null
+++ b/rba.model.sound/src/rba/sound/IsChangedOutput.java
@@ -0,0 +1,37 @@
+/**
+ */
+package rba.sound;
+
+import rba.core.ExpressionType;
+import rba.core.SugarExpressionBase;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Is Changed Output</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see rba.sound.RBASoundPackage#getIsChangedOutput()
+ * @model
+ * @generated
+ */
+public interface IsChangedOutput extends ZoneOperator, SugarExpressionBase {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".isChangedOutput()\";'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.BOOLEAN;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+} // IsChangedOutput
diff --git a/rba.model.sound/src/rba/sound/IsMuted.java b/rba.model.sound/src/rba/sound/IsMuted.java
new file mode 100644
index 0000000..491b686
--- /dev/null
+++ b/rba.model.sound/src/rba/sound/IsMuted.java
@@ -0,0 +1,46 @@
+/**
+ */
+package rba.sound;
+
+import rba.core.ExpressionType;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Is Muted</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.sound.RBASoundPackage#getIsMuted()
+ * @model
+ * @generated
+ */
+public interface IsMuted extends ZoneOperator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".isMuted()\";'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.BOOLEAN;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+} // IsMuted
diff --git a/rba.model.sound/src/rba/sound/IsOutputted.java b/rba.model.sound/src/rba/sound/IsOutputted.java
new file mode 100644
index 0000000..9b1d89d
--- /dev/null
+++ b/rba.model.sound/src/rba/sound/IsOutputted.java
@@ -0,0 +1,46 @@
+/**
+ */
+package rba.sound;
+
+import rba.core.ExpressionType;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Is Outputted</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.sound.RBASoundPackage#getIsOutputted()
+ * @model
+ * @generated
+ */
+public interface IsOutputted extends ZoneOperator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".isOutputted()\";'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.BOOLEAN;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+} // IsOutputted
diff --git a/rba.model.sound/src/rba/sound/IsOutputtedOn.java b/rba.model.sound/src/rba/sound/IsOutputtedOn.java
new file mode 100644
index 0000000..154a975
--- /dev/null
+++ b/rba.model.sound/src/rba/sound/IsOutputtedOn.java
@@ -0,0 +1,46 @@
+/**
+ */
+package rba.sound;
+
+import rba.core.ExpressionType;
+import rba.core.SugarExpressionBase;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Is Outputted On</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see rba.sound.RBASoundPackage#getIsOutputtedOn()
+ * @model
+ * @generated
+ */
+public interface IsOutputtedOn extends SoundContentOperator, SugarExpressionBase {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".isOutputtedOn\";'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.BOOLEAN;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuilder expressionText = new StringBuilder();\r\nEList&lt;rba.core.Expression&gt; expressions = getOperand();\r\nexpressionText.append(expressions.size() &gt; 0 ? expressions.get(0).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(getSymbol());\r\nexpressionText.append(\"(\");\r\nexpressionText.append(expressions.size() &gt; 1 ? expressions.get(1).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(\")\");\r\nreturn expressionText.toString();'"
+ * @generated
+ */
+ String getExpressionText();
+
+} // IsOutputtedOn
diff --git a/rba.model.sound/src/rba/sound/IsSounding.java b/rba.model.sound/src/rba/sound/IsSounding.java
new file mode 100644
index 0000000..e5d5c3d
--- /dev/null
+++ b/rba.model.sound/src/rba/sound/IsSounding.java
@@ -0,0 +1,32 @@
+/**
+ */
+package rba.sound;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Is Sounding</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.sound.RBASoundPackage#getIsSounding()
+ * @model
+ * @generated
+ */
+public interface IsSounding extends SoundContentOperator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".isSounding()\";'"
+ * @generated
+ */
+ String getSymbol();
+
+} // IsSounding
diff --git a/rba.model.sound/src/rba/sound/IsTranslatedSoundTo.java b/rba.model.sound/src/rba/sound/IsTranslatedSoundTo.java
new file mode 100644
index 0000000..4c2dce4
--- /dev/null
+++ b/rba.model.sound/src/rba/sound/IsTranslatedSoundTo.java
@@ -0,0 +1,46 @@
+/**
+ */
+package rba.sound;
+
+import rba.core.ExpressionType;
+import rba.core.SugarExpressionBase;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Is Translated Sound To</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see rba.sound.RBASoundPackage#getIsTranslatedSoundTo()
+ * @model
+ * @generated
+ */
+public interface IsTranslatedSoundTo extends ZoneOperator, SugarExpressionBase {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".isTranslatedSoundTo\";'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.BOOLEAN;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuilder expressionText = new StringBuilder();\r\nEList&lt;rba.core.Expression&gt; expressions = getOperand();\r\nexpressionText.append(expressions.size() &gt; 0 ? expressions.get(0).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(getSymbol());\r\nexpressionText.append(\"(\");\r\nexpressionText.append(expressions.size() &gt; 1 ? expressions.get(1).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(\")\");\r\nreturn expressionText.toString();'"
+ * @generated
+ */
+ String getExpressionText();
+
+} // IsTranslatedSoundTo
diff --git a/rba.model.sound/src/rba/sound/MuteLowerPriority.java b/rba.model.sound/src/rba/sound/MuteLowerPriority.java
new file mode 100644
index 0000000..dab992d
--- /dev/null
+++ b/rba.model.sound/src/rba/sound/MuteLowerPriority.java
@@ -0,0 +1,47 @@
+/**
+ */
+package rba.sound;
+
+import rba.core.ExpressionType;
+import rba.core.Operator;
+import rba.core.SugarExpressionBase;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Mute Lower Priority</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see rba.sound.RBASoundPackage#getMuteLowerPriority()
+ * @model
+ * @generated
+ */
+public interface MuteLowerPriority extends Operator, SugarExpressionBase {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"MuteLowerPriority\";'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.BOOLEAN;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuilder expressionText = new StringBuilder();\r\nEList&lt;rba.core.Expression&gt; expressions = getOperand();\r\nexpressionText.append(getSymbol());\r\nexpressionText.append(\"(\");\r\nexpressionText.append(expressions.size() &gt; 0 ? expressions.get(0).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(\",\");\r\nexpressionText.append(expressions.size() &gt; 1 ? expressions.get(1).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(\")\");\r\nreturn expressionText.toString();'"
+ * @generated
+ */
+ String getExpressionText();
+
+} // MuteLowerPriority
diff --git a/rba.model.sound/src/rba/sound/OutputtingSound.java b/rba.model.sound/src/rba/sound/OutputtingSound.java
new file mode 100644
index 0000000..421a8fe
--- /dev/null
+++ b/rba.model.sound/src/rba/sound/OutputtingSound.java
@@ -0,0 +1,46 @@
+/**
+ */
+package rba.sound;
+
+import rba.core.ExpressionType;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Outputting Sound</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.sound.RBASoundPackage#getOutputtingSound()
+ * @model
+ * @generated
+ */
+public interface OutputtingSound extends ZoneOperator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".outputtingSound()\";'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.SOUND;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+} // OutputtingSound
diff --git a/rba.model.sound/src/rba/sound/RBASoundFactory.java b/rba.model.sound/src/rba/sound/RBASoundFactory.java
new file mode 100644
index 0000000..5220504
--- /dev/null
+++ b/rba.model.sound/src/rba/sound/RBASoundFactory.java
@@ -0,0 +1,177 @@
+/**
+ */
+package rba.sound;
+
+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 rba.sound.RBASoundPackage
+ * @generated
+ */
+public interface RBASoundFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ RBASoundFactory eINSTANCE = rba.sound.impl.RBASoundFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Sound Content</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Sound Content</em>'.
+ * @generated
+ */
+ SoundContent createSoundContent();
+
+ /**
+ * Returns a new object of class '<em>Sound Content Set</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Sound Content Set</em>'.
+ * @generated
+ */
+ SoundContentSet createSoundContentSet();
+
+ /**
+ * Returns a new object of class '<em>Sound Content State</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Sound Content State</em>'.
+ * @generated
+ */
+ SoundContentState createSoundContentState();
+
+ /**
+ * Returns a new object of class '<em>Zone</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Zone</em>'.
+ * @generated
+ */
+ Zone createZone();
+
+ /**
+ * Returns a new object of class '<em>Zone Set</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Zone Set</em>'.
+ * @generated
+ */
+ ZoneSet createZoneSet();
+
+ /**
+ * Returns a new object of class '<em>Is Sounding</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Is Sounding</em>'.
+ * @generated
+ */
+ IsSounding createIsSounding();
+
+ /**
+ * Returns a new object of class '<em>Is Outputted</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Is Outputted</em>'.
+ * @generated
+ */
+ IsOutputted createIsOutputted();
+
+ /**
+ * Returns a new object of class '<em>Is Muted</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Is Muted</em>'.
+ * @generated
+ */
+ IsMuted createIsMuted();
+
+ /**
+ * Returns a new object of class '<em>Is Attenuated</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Is Attenuated</em>'.
+ * @generated
+ */
+ IsAttenuated createIsAttenuated();
+
+ /**
+ * Returns a new object of class '<em>Outputting Sound</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Outputting Sound</em>'.
+ * @generated
+ */
+ OutputtingSound createOutputtingSound();
+
+ /**
+ * Returns a new object of class '<em>All Instance Of Zone</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>All Instance Of Zone</em>'.
+ * @generated
+ */
+ AllInstanceOfZone createAllInstanceOfZone();
+
+ /**
+ * Returns a new object of class '<em>All Instance Of Sound Content</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>All Instance Of Sound Content</em>'.
+ * @generated
+ */
+ AllInstanceOfSoundContent createAllInstanceOfSoundContent();
+
+ /**
+ * Returns a new object of class '<em>Is Outputted On</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Is Outputted On</em>'.
+ * @generated
+ */
+ IsOutputtedOn createIsOutputtedOn();
+
+ /**
+ * Returns a new object of class '<em>Is Changed Output</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Is Changed Output</em>'.
+ * @generated
+ */
+ IsChangedOutput createIsChangedOutput();
+
+ /**
+ * Returns a new object of class '<em>Is Translated Sound To</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Is Translated Sound To</em>'.
+ * @generated
+ */
+ IsTranslatedSoundTo createIsTranslatedSoundTo();
+
+ /**
+ * Returns a new object of class '<em>Mute Lower Priority</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Mute Lower Priority</em>'.
+ * @generated
+ */
+ MuteLowerPriority createMuteLowerPriority();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ RBASoundPackage getRBASoundPackage();
+
+} //RBASoundFactory
diff --git a/rba.model.sound/src/rba/sound/RBASoundPackage.java b/rba.model.sound/src/rba/sound/RBASoundPackage.java
new file mode 100644
index 0000000..c864d43
--- /dev/null
+++ b/rba.model.sound/src/rba/sound/RBASoundPackage.java
@@ -0,0 +1,2791 @@
+/**
+ */
+package rba.sound;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- 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 operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see rba.sound.RBASoundFactory
+ * @model kind="package"
+ * annotation="http://www.eclipse.org/OCL/Import RbaCore='../../rba.model.core/model/rbacore.ecore#/'"
+ * @generated
+ */
+public interface RBASoundPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "sound";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.denso.com/ict/rba/sound";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "RbaSound";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ RBASoundPackage eINSTANCE = rba.sound.impl.RBASoundPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link rba.sound.impl.SoundContentImpl <em>Sound Content</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.sound.impl.SoundContentImpl
+ * @see rba.sound.impl.RBASoundPackageImpl#getSoundContent()
+ * @generated
+ */
+ int SOUND_CONTENT = 0;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOUND_CONTENT__DESCRIPTION = RBACorePackage.CONTENT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOUND_CONTENT__NAME = RBACorePackage.CONTENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Tags</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOUND_CONTENT__TAGS = RBACorePackage.CONTENT__TAGS;
+
+ /**
+ * The feature id for the '<em><b>Content Group</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOUND_CONTENT__CONTENT_GROUP = RBACorePackage.CONTENT__CONTENT_GROUP;
+
+ /**
+ * The feature id for the '<em><b>Allocatable</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOUND_CONTENT__ALLOCATABLE = RBACorePackage.CONTENT__ALLOCATABLE;
+
+ /**
+ * The feature id for the '<em><b>Loser Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOUND_CONTENT__LOSER_TYPE = RBACorePackage.CONTENT__LOSER_TYPE;
+
+ /**
+ * The feature id for the '<em><b>States</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOUND_CONTENT__STATES = RBACorePackage.CONTENT__STATES;
+
+ /**
+ * The number of structural features of the '<em>Sound Content</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOUND_CONTENT_FEATURE_COUNT = RBACorePackage.CONTENT_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Allocatable List</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOUND_CONTENT___GET_ALLOCATABLE_LIST = RBACorePackage.CONTENT___GET_ALLOCATABLE_LIST;
+
+ /**
+ * The operation id for the '<em>Collect Leaf Contents</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOUND_CONTENT___COLLECT_LEAF_CONTENTS = RBACorePackage.CONTENT___COLLECT_LEAF_CONTENTS;
+
+ /**
+ * The operation id for the '<em>Get Expression Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOUND_CONTENT___GET_EXPRESSION_TYPE = RBACorePackage.CONTENT_OPERATION_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Sound Content</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOUND_CONTENT_OPERATION_COUNT = RBACorePackage.CONTENT_OPERATION_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link rba.sound.impl.SoundContentSetImpl <em>Sound Content Set</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.sound.impl.SoundContentSetImpl
+ * @see rba.sound.impl.RBASoundPackageImpl#getSoundContentSet()
+ * @generated
+ */
+ int SOUND_CONTENT_SET = 1;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOUND_CONTENT_SET__DESCRIPTION = RBACorePackage.CONTENT_SET__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOUND_CONTENT_SET__NAME = RBACorePackage.CONTENT_SET__NAME;
+
+ /**
+ * The feature id for the '<em><b>Tags</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOUND_CONTENT_SET__TAGS = RBACorePackage.CONTENT_SET__TAGS;
+
+ /**
+ * The feature id for the '<em><b>Content Group</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOUND_CONTENT_SET__CONTENT_GROUP = RBACorePackage.CONTENT_SET__CONTENT_GROUP;
+
+ /**
+ * The feature id for the '<em><b>Allocatable</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOUND_CONTENT_SET__ALLOCATABLE = RBACorePackage.CONTENT_SET__ALLOCATABLE;
+
+ /**
+ * The feature id for the '<em><b>Target</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOUND_CONTENT_SET__TARGET = RBACorePackage.CONTENT_SET__TARGET;
+
+ /**
+ * The number of structural features of the '<em>Sound Content Set</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOUND_CONTENT_SET_FEATURE_COUNT = RBACorePackage.CONTENT_SET_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Allocatable List</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOUND_CONTENT_SET___GET_ALLOCATABLE_LIST = RBACorePackage.CONTENT_SET___GET_ALLOCATABLE_LIST;
+
+ /**
+ * The operation id for the '<em>Collect Leaf Contents</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOUND_CONTENT_SET___COLLECT_LEAF_CONTENTS = RBACorePackage.CONTENT_SET___COLLECT_LEAF_CONTENTS;
+
+ /**
+ * The operation id for the '<em>Get Expression Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOUND_CONTENT_SET___GET_EXPRESSION_TYPE = RBACorePackage.CONTENT_SET_OPERATION_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Sound Content Set</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOUND_CONTENT_SET_OPERATION_COUNT = RBACorePackage.CONTENT_SET_OPERATION_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link rba.sound.impl.SoundContentStateImpl <em>Sound Content State</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.sound.impl.SoundContentStateImpl
+ * @see rba.sound.impl.RBASoundPackageImpl#getSoundContentState()
+ * @generated
+ */
+ int SOUND_CONTENT_STATE = 2;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOUND_CONTENT_STATE__DESCRIPTION = RBACorePackage.CONTENT_STATE__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOUND_CONTENT_STATE__NAME = RBACorePackage.CONTENT_STATE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Tags</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOUND_CONTENT_STATE__TAGS = RBACorePackage.CONTENT_STATE__TAGS;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOUND_CONTENT_STATE__VALUE = RBACorePackage.CONTENT_STATE__VALUE;
+
+ /**
+ * The feature id for the '<em><b>Owner</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOUND_CONTENT_STATE__OWNER = RBACorePackage.CONTENT_STATE__OWNER;
+
+ /**
+ * The number of structural features of the '<em>Sound Content State</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOUND_CONTENT_STATE_FEATURE_COUNT = RBACorePackage.CONTENT_STATE_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOUND_CONTENT_STATE___GET_EXPRESSION_TYPE = RBACorePackage.CONTENT_STATE_OPERATION_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Sound Content State</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOUND_CONTENT_STATE_OPERATION_COUNT = RBACorePackage.CONTENT_STATE_OPERATION_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link rba.sound.impl.ZoneImpl <em>Zone</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.sound.impl.ZoneImpl
+ * @see rba.sound.impl.RBASoundPackageImpl#getZone()
+ * @generated
+ */
+ int ZONE = 3;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ZONE__DESCRIPTION = RBACorePackage.ALLOCATABLE__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ZONE__NAME = RBACorePackage.ALLOCATABLE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Tags</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ZONE__TAGS = RBACorePackage.ALLOCATABLE__TAGS;
+
+ /**
+ * The feature id for the '<em><b>Contents</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ZONE__CONTENTS = RBACorePackage.ALLOCATABLE__CONTENTS;
+
+ /**
+ * The feature id for the '<em><b>Allocatable Group</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ZONE__ALLOCATABLE_GROUP = RBACorePackage.ALLOCATABLE__ALLOCATABLE_GROUP;
+
+ /**
+ * The feature id for the '<em><b>Arbitration Policy</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ZONE__ARBITRATION_POLICY = RBACorePackage.ALLOCATABLE__ARBITRATION_POLICY;
+
+ /**
+ * The feature id for the '<em><b>Visibility</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ZONE__VISIBILITY = RBACorePackage.ALLOCATABLE__VISIBILITY;
+
+ /**
+ * The feature id for the '<em><b>Attenuate</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ZONE__ATTENUATE = RBACorePackage.ALLOCATABLE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Zone</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ZONE_FEATURE_COUNT = RBACorePackage.ALLOCATABLE_FEATURE_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Get Contents List</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ZONE___GET_CONTENTS_LIST = RBACorePackage.ALLOCATABLE___GET_CONTENTS_LIST;
+
+ /**
+ * The operation id for the '<em>Collect Leaf Allocatable</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ZONE___COLLECT_LEAF_ALLOCATABLE = RBACorePackage.ALLOCATABLE___COLLECT_LEAF_ALLOCATABLE;
+
+ /**
+ * The operation id for the '<em>Get Expression Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ZONE___GET_EXPRESSION_TYPE = RBACorePackage.ALLOCATABLE_OPERATION_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Zone</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ZONE_OPERATION_COUNT = RBACorePackage.ALLOCATABLE_OPERATION_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link rba.sound.impl.ZoneSetImpl <em>Zone Set</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.sound.impl.ZoneSetImpl
+ * @see rba.sound.impl.RBASoundPackageImpl#getZoneSet()
+ * @generated
+ */
+ int ZONE_SET = 4;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ZONE_SET__DESCRIPTION = RBACorePackage.ALLOCATABLE_SET__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ZONE_SET__NAME = RBACorePackage.ALLOCATABLE_SET__NAME;
+
+ /**
+ * The feature id for the '<em><b>Tags</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ZONE_SET__TAGS = RBACorePackage.ALLOCATABLE_SET__TAGS;
+
+ /**
+ * The feature id for the '<em><b>Contents</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ZONE_SET__CONTENTS = RBACorePackage.ALLOCATABLE_SET__CONTENTS;
+
+ /**
+ * The feature id for the '<em><b>Allocatable Group</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ZONE_SET__ALLOCATABLE_GROUP = RBACorePackage.ALLOCATABLE_SET__ALLOCATABLE_GROUP;
+
+ /**
+ * The feature id for the '<em><b>Target</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ZONE_SET__TARGET = RBACorePackage.ALLOCATABLE_SET__TARGET;
+
+ /**
+ * The number of structural features of the '<em>Zone Set</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ZONE_SET_FEATURE_COUNT = RBACorePackage.ALLOCATABLE_SET_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Contents List</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ZONE_SET___GET_CONTENTS_LIST = RBACorePackage.ALLOCATABLE_SET___GET_CONTENTS_LIST;
+
+ /**
+ * The operation id for the '<em>Collect Leaf Allocatable</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ZONE_SET___COLLECT_LEAF_ALLOCATABLE = RBACorePackage.ALLOCATABLE_SET___COLLECT_LEAF_ALLOCATABLE;
+
+ /**
+ * The operation id for the '<em>Get Expression Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ZONE_SET___GET_EXPRESSION_TYPE = RBACorePackage.ALLOCATABLE_SET_OPERATION_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Zone Set</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ZONE_SET_OPERATION_COUNT = RBACorePackage.ALLOCATABLE_SET_OPERATION_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link rba.sound.impl.SoundContentOperatorImpl <em>Sound Content Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.sound.impl.SoundContentOperatorImpl
+ * @see rba.sound.impl.RBASoundPackageImpl#getSoundContentOperator()
+ * @generated
+ */
+ int SOUND_CONTENT_OPERATOR = 5;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOUND_CONTENT_OPERATOR__TYPE = RBACorePackage.CONTENT_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOUND_CONTENT_OPERATOR__EXPRESSION = RBACorePackage.CONTENT_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOUND_CONTENT_OPERATOR__LET_STATEMENTS = RBACorePackage.CONTENT_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOUND_CONTENT_OPERATOR__OPERAND = RBACorePackage.CONTENT_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Sound Content Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOUND_CONTENT_OPERATOR_FEATURE_COUNT = RBACorePackage.CONTENT_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOUND_CONTENT_OPERATOR___GET_SYMBOL = RBACorePackage.CONTENT_OPERATOR___GET_SYMBOL;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOUND_CONTENT_OPERATOR___GET_EXPRESSION_TEXT = RBACorePackage.CONTENT_OPERATOR___GET_EXPRESSION_TEXT;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOUND_CONTENT_OPERATOR___GET_UNDERLYING_TYPE = RBACorePackage.CONTENT_OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Sound Content Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOUND_CONTENT_OPERATOR_OPERATION_COUNT = RBACorePackage.CONTENT_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link rba.sound.impl.IsSoundingImpl <em>Is Sounding</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.sound.impl.IsSoundingImpl
+ * @see rba.sound.impl.RBASoundPackageImpl#getIsSounding()
+ * @generated
+ */
+ int IS_SOUNDING = 6;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_SOUNDING__TYPE = SOUND_CONTENT_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_SOUNDING__EXPRESSION = SOUND_CONTENT_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_SOUNDING__LET_STATEMENTS = SOUND_CONTENT_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_SOUNDING__OPERAND = SOUND_CONTENT_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Is Sounding</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_SOUNDING_FEATURE_COUNT = SOUND_CONTENT_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_SOUNDING___GET_EXPRESSION_TEXT = SOUND_CONTENT_OPERATOR___GET_EXPRESSION_TEXT;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_SOUNDING___GET_UNDERLYING_TYPE = SOUND_CONTENT_OPERATOR___GET_UNDERLYING_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_SOUNDING___GET_SYMBOL = SOUND_CONTENT_OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Is Sounding</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_SOUNDING_OPERATION_COUNT = SOUND_CONTENT_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link rba.sound.impl.ZoneOperatorImpl <em>Zone Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.sound.impl.ZoneOperatorImpl
+ * @see rba.sound.impl.RBASoundPackageImpl#getZoneOperator()
+ * @generated
+ */
+ int ZONE_OPERATOR = 7;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ZONE_OPERATOR__TYPE = RBACorePackage.OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ZONE_OPERATOR__EXPRESSION = RBACorePackage.OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ZONE_OPERATOR__LET_STATEMENTS = RBACorePackage.OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ZONE_OPERATOR__OPERAND = RBACorePackage.OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Zone Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ZONE_OPERATOR_FEATURE_COUNT = RBACorePackage.OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ZONE_OPERATOR___GET_UNDERLYING_TYPE = RBACorePackage.OPERATOR___GET_UNDERLYING_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ZONE_OPERATOR___GET_SYMBOL = RBACorePackage.OPERATOR___GET_SYMBOL;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ZONE_OPERATOR___GET_EXPRESSION_TEXT = RBACorePackage.OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Zone Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ZONE_OPERATOR_OPERATION_COUNT = RBACorePackage.OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link rba.sound.impl.IsOutputtedImpl <em>Is Outputted</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.sound.impl.IsOutputtedImpl
+ * @see rba.sound.impl.RBASoundPackageImpl#getIsOutputted()
+ * @generated
+ */
+ int IS_OUTPUTTED = 8;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_OUTPUTTED__TYPE = ZONE_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_OUTPUTTED__EXPRESSION = ZONE_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_OUTPUTTED__LET_STATEMENTS = ZONE_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_OUTPUTTED__OPERAND = ZONE_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Is Outputted</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_OUTPUTTED_FEATURE_COUNT = ZONE_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_OUTPUTTED___GET_EXPRESSION_TEXT = ZONE_OPERATOR___GET_EXPRESSION_TEXT;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_OUTPUTTED___GET_SYMBOL = ZONE_OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_OUTPUTTED___GET_UNDERLYING_TYPE = ZONE_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Is Outputted</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_OUTPUTTED_OPERATION_COUNT = ZONE_OPERATOR_OPERATION_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link rba.sound.impl.IsMutedImpl <em>Is Muted</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.sound.impl.IsMutedImpl
+ * @see rba.sound.impl.RBASoundPackageImpl#getIsMuted()
+ * @generated
+ */
+ int IS_MUTED = 9;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_MUTED__TYPE = ZONE_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_MUTED__EXPRESSION = ZONE_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_MUTED__LET_STATEMENTS = ZONE_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_MUTED__OPERAND = ZONE_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Is Muted</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_MUTED_FEATURE_COUNT = ZONE_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_MUTED___GET_EXPRESSION_TEXT = ZONE_OPERATOR___GET_EXPRESSION_TEXT;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_MUTED___GET_SYMBOL = ZONE_OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_MUTED___GET_UNDERLYING_TYPE = ZONE_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Is Muted</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_MUTED_OPERATION_COUNT = ZONE_OPERATOR_OPERATION_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link rba.sound.impl.IsAttenuatedImpl <em>Is Attenuated</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.sound.impl.IsAttenuatedImpl
+ * @see rba.sound.impl.RBASoundPackageImpl#getIsAttenuated()
+ * @generated
+ */
+ int IS_ATTENUATED = 10;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_ATTENUATED__TYPE = ZONE_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_ATTENUATED__EXPRESSION = ZONE_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_ATTENUATED__LET_STATEMENTS = ZONE_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_ATTENUATED__OPERAND = ZONE_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Is Attenuated</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_ATTENUATED_FEATURE_COUNT = ZONE_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_ATTENUATED___GET_EXPRESSION_TEXT = ZONE_OPERATOR___GET_EXPRESSION_TEXT;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_ATTENUATED___GET_SYMBOL = ZONE_OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_ATTENUATED___GET_UNDERLYING_TYPE = ZONE_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Is Attenuated</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_ATTENUATED_OPERATION_COUNT = ZONE_OPERATOR_OPERATION_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link rba.sound.impl.OutputtingSoundImpl <em>Outputting Sound</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.sound.impl.OutputtingSoundImpl
+ * @see rba.sound.impl.RBASoundPackageImpl#getOutputtingSound()
+ * @generated
+ */
+ int OUTPUTTING_SOUND = 11;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OUTPUTTING_SOUND__TYPE = ZONE_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OUTPUTTING_SOUND__EXPRESSION = ZONE_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OUTPUTTING_SOUND__LET_STATEMENTS = ZONE_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OUTPUTTING_SOUND__OPERAND = ZONE_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Outputting Sound</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OUTPUTTING_SOUND_FEATURE_COUNT = ZONE_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OUTPUTTING_SOUND___GET_EXPRESSION_TEXT = ZONE_OPERATOR___GET_EXPRESSION_TEXT;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OUTPUTTING_SOUND___GET_SYMBOL = ZONE_OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OUTPUTTING_SOUND___GET_UNDERLYING_TYPE = ZONE_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Outputting Sound</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OUTPUTTING_SOUND_OPERATION_COUNT = ZONE_OPERATOR_OPERATION_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link rba.sound.impl.AllInstanceOfZoneImpl <em>All Instance Of Zone</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.sound.impl.AllInstanceOfZoneImpl
+ * @see rba.sound.impl.RBASoundPackageImpl#getAllInstanceOfZone()
+ * @generated
+ */
+ int ALL_INSTANCE_OF_ZONE = 12;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALL_INSTANCE_OF_ZONE__TYPE = RBACorePackage.SET_EXPRESSION__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALL_INSTANCE_OF_ZONE__EXPRESSION = RBACorePackage.SET_EXPRESSION__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALL_INSTANCE_OF_ZONE__LET_STATEMENTS = RBACorePackage.SET_EXPRESSION__LET_STATEMENTS;
+
+ /**
+ * The number of structural features of the '<em>All Instance Of Zone</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALL_INSTANCE_OF_ZONE_FEATURE_COUNT = RBACorePackage.SET_EXPRESSION_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALL_INSTANCE_OF_ZONE___GET_EXPRESSION_TEXT = RBACorePackage.SET_EXPRESSION_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALL_INSTANCE_OF_ZONE___GET_UNDERLYING_TYPE = RBACorePackage.SET_EXPRESSION_OPERATION_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>All Instance Of Zone</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALL_INSTANCE_OF_ZONE_OPERATION_COUNT = RBACorePackage.SET_EXPRESSION_OPERATION_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link rba.sound.impl.AllInstanceOfSoundContentImpl <em>All Instance Of Sound Content</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.sound.impl.AllInstanceOfSoundContentImpl
+ * @see rba.sound.impl.RBASoundPackageImpl#getAllInstanceOfSoundContent()
+ * @generated
+ */
+ int ALL_INSTANCE_OF_SOUND_CONTENT = 13;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALL_INSTANCE_OF_SOUND_CONTENT__TYPE = RBACorePackage.SET_EXPRESSION__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALL_INSTANCE_OF_SOUND_CONTENT__EXPRESSION = RBACorePackage.SET_EXPRESSION__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALL_INSTANCE_OF_SOUND_CONTENT__LET_STATEMENTS = RBACorePackage.SET_EXPRESSION__LET_STATEMENTS;
+
+ /**
+ * The number of structural features of the '<em>All Instance Of Sound Content</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALL_INSTANCE_OF_SOUND_CONTENT_FEATURE_COUNT = RBACorePackage.SET_EXPRESSION_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALL_INSTANCE_OF_SOUND_CONTENT___GET_EXPRESSION_TEXT = RBACorePackage.SET_EXPRESSION_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALL_INSTANCE_OF_SOUND_CONTENT___GET_UNDERLYING_TYPE = RBACorePackage.SET_EXPRESSION_OPERATION_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>All Instance Of Sound Content</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALL_INSTANCE_OF_SOUND_CONTENT_OPERATION_COUNT = RBACorePackage.SET_EXPRESSION_OPERATION_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link rba.sound.impl.IsOutputtedOnImpl <em>Is Outputted On</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.sound.impl.IsOutputtedOnImpl
+ * @see rba.sound.impl.RBASoundPackageImpl#getIsOutputtedOn()
+ * @generated
+ */
+ int IS_OUTPUTTED_ON = 14;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_OUTPUTTED_ON__TYPE = SOUND_CONTENT_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_OUTPUTTED_ON__EXPRESSION = SOUND_CONTENT_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_OUTPUTTED_ON__LET_STATEMENTS = SOUND_CONTENT_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_OUTPUTTED_ON__OPERAND = SOUND_CONTENT_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Is Outputted On</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_OUTPUTTED_ON_FEATURE_COUNT = SOUND_CONTENT_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expanded</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_OUTPUTTED_ON___GET_EXPANDED = SOUND_CONTENT_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Can Expand</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_OUTPUTTED_ON___CAN_EXPAND = SOUND_CONTENT_OPERATOR_OPERATION_COUNT + 2;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_OUTPUTTED_ON___GET_SYMBOL = SOUND_CONTENT_OPERATOR_OPERATION_COUNT + 3;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_OUTPUTTED_ON___GET_UNDERLYING_TYPE = SOUND_CONTENT_OPERATOR_OPERATION_COUNT + 4;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_OUTPUTTED_ON___GET_EXPRESSION_TEXT = SOUND_CONTENT_OPERATOR_OPERATION_COUNT + 5;
+
+ /**
+ * The number of operations of the '<em>Is Outputted On</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_OUTPUTTED_ON_OPERATION_COUNT = SOUND_CONTENT_OPERATOR_OPERATION_COUNT + 6;
+
+ /**
+ * The meta object id for the '{@link rba.sound.impl.IsChangedOutputImpl <em>Is Changed Output</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.sound.impl.IsChangedOutputImpl
+ * @see rba.sound.impl.RBASoundPackageImpl#getIsChangedOutput()
+ * @generated
+ */
+ int IS_CHANGED_OUTPUT = 15;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_CHANGED_OUTPUT__TYPE = ZONE_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_CHANGED_OUTPUT__EXPRESSION = ZONE_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_CHANGED_OUTPUT__LET_STATEMENTS = ZONE_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_CHANGED_OUTPUT__OPERAND = ZONE_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Is Changed Output</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_CHANGED_OUTPUT_FEATURE_COUNT = ZONE_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_CHANGED_OUTPUT___GET_EXPRESSION_TEXT = ZONE_OPERATOR___GET_EXPRESSION_TEXT;
+
+ /**
+ * The operation id for the '<em>Get Expanded</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_CHANGED_OUTPUT___GET_EXPANDED = ZONE_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Can Expand</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_CHANGED_OUTPUT___CAN_EXPAND = ZONE_OPERATOR_OPERATION_COUNT + 2;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_CHANGED_OUTPUT___GET_SYMBOL = ZONE_OPERATOR_OPERATION_COUNT + 3;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_CHANGED_OUTPUT___GET_UNDERLYING_TYPE = ZONE_OPERATOR_OPERATION_COUNT + 4;
+
+ /**
+ * The number of operations of the '<em>Is Changed Output</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_CHANGED_OUTPUT_OPERATION_COUNT = ZONE_OPERATOR_OPERATION_COUNT + 5;
+
+ /**
+ * The meta object id for the '{@link rba.sound.impl.IsTranslatedSoundToImpl <em>Is Translated Sound To</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.sound.impl.IsTranslatedSoundToImpl
+ * @see rba.sound.impl.RBASoundPackageImpl#getIsTranslatedSoundTo()
+ * @generated
+ */
+ int IS_TRANSLATED_SOUND_TO = 16;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_TRANSLATED_SOUND_TO__TYPE = ZONE_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_TRANSLATED_SOUND_TO__EXPRESSION = ZONE_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_TRANSLATED_SOUND_TO__LET_STATEMENTS = ZONE_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_TRANSLATED_SOUND_TO__OPERAND = ZONE_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Is Translated Sound To</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_TRANSLATED_SOUND_TO_FEATURE_COUNT = ZONE_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expanded</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_TRANSLATED_SOUND_TO___GET_EXPANDED = ZONE_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Can Expand</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_TRANSLATED_SOUND_TO___CAN_EXPAND = ZONE_OPERATOR_OPERATION_COUNT + 2;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_TRANSLATED_SOUND_TO___GET_SYMBOL = ZONE_OPERATOR_OPERATION_COUNT + 3;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_TRANSLATED_SOUND_TO___GET_UNDERLYING_TYPE = ZONE_OPERATOR_OPERATION_COUNT + 4;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_TRANSLATED_SOUND_TO___GET_EXPRESSION_TEXT = ZONE_OPERATOR_OPERATION_COUNT + 5;
+
+ /**
+ * The number of operations of the '<em>Is Translated Sound To</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_TRANSLATED_SOUND_TO_OPERATION_COUNT = ZONE_OPERATOR_OPERATION_COUNT + 6;
+
+ /**
+ * The meta object id for the '{@link rba.sound.impl.MuteLowerPriorityImpl <em>Mute Lower Priority</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.sound.impl.MuteLowerPriorityImpl
+ * @see rba.sound.impl.RBASoundPackageImpl#getMuteLowerPriority()
+ * @generated
+ */
+ int MUTE_LOWER_PRIORITY = 17;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MUTE_LOWER_PRIORITY__TYPE = RBACorePackage.OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MUTE_LOWER_PRIORITY__EXPRESSION = RBACorePackage.OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MUTE_LOWER_PRIORITY__LET_STATEMENTS = RBACorePackage.OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MUTE_LOWER_PRIORITY__OPERAND = RBACorePackage.OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Mute Lower Priority</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MUTE_LOWER_PRIORITY_FEATURE_COUNT = RBACorePackage.OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expanded</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MUTE_LOWER_PRIORITY___GET_EXPANDED = RBACorePackage.OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Can Expand</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MUTE_LOWER_PRIORITY___CAN_EXPAND = RBACorePackage.OPERATOR_OPERATION_COUNT + 2;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MUTE_LOWER_PRIORITY___GET_SYMBOL = RBACorePackage.OPERATOR_OPERATION_COUNT + 3;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MUTE_LOWER_PRIORITY___GET_UNDERLYING_TYPE = RBACorePackage.OPERATOR_OPERATION_COUNT + 4;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MUTE_LOWER_PRIORITY___GET_EXPRESSION_TEXT = RBACorePackage.OPERATOR_OPERATION_COUNT + 5;
+
+ /**
+ * The number of operations of the '<em>Mute Lower Priority</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MUTE_LOWER_PRIORITY_OPERATION_COUNT = RBACorePackage.OPERATOR_OPERATION_COUNT + 6;
+
+ /**
+ * Returns the meta object for class '{@link rba.sound.SoundContent <em>Sound Content</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Sound Content</em>'.
+ * @see rba.sound.SoundContent
+ * @generated
+ */
+ EClass getSoundContent();
+
+ /**
+ * Returns the meta object for the '{@link rba.sound.SoundContent#getExpressionType() <em>Get Expression Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Type</em>' operation.
+ * @see rba.sound.SoundContent#getExpressionType()
+ * @generated
+ */
+ EOperation getSoundContent__GetExpressionType();
+
+ /**
+ * Returns the meta object for class '{@link rba.sound.SoundContentSet <em>Sound Content Set</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Sound Content Set</em>'.
+ * @see rba.sound.SoundContentSet
+ * @generated
+ */
+ EClass getSoundContentSet();
+
+ /**
+ * Returns the meta object for the '{@link rba.sound.SoundContentSet#getExpressionType() <em>Get Expression Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Type</em>' operation.
+ * @see rba.sound.SoundContentSet#getExpressionType()
+ * @generated
+ */
+ EOperation getSoundContentSet__GetExpressionType();
+
+ /**
+ * Returns the meta object for class '{@link rba.sound.SoundContentState <em>Sound Content State</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Sound Content State</em>'.
+ * @see rba.sound.SoundContentState
+ * @generated
+ */
+ EClass getSoundContentState();
+
+ /**
+ * Returns the meta object for the '{@link rba.sound.SoundContentState#getExpressionType() <em>Get Expression Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Type</em>' operation.
+ * @see rba.sound.SoundContentState#getExpressionType()
+ * @generated
+ */
+ EOperation getSoundContentState__GetExpressionType();
+
+ /**
+ * Returns the meta object for class '{@link rba.sound.Zone <em>Zone</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Zone</em>'.
+ * @see rba.sound.Zone
+ * @generated
+ */
+ EClass getZone();
+
+ /**
+ * Returns the meta object for the containment reference '{@link rba.sound.Zone#getAttenuate <em>Attenuate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Attenuate</em>'.
+ * @see rba.sound.Zone#getAttenuate()
+ * @see #getZone()
+ * @generated
+ */
+ EReference getZone_Attenuate();
+
+ /**
+ * Returns the meta object for the '{@link rba.sound.Zone#getExpressionType() <em>Get Expression Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Type</em>' operation.
+ * @see rba.sound.Zone#getExpressionType()
+ * @generated
+ */
+ EOperation getZone__GetExpressionType();
+
+ /**
+ * Returns the meta object for class '{@link rba.sound.ZoneSet <em>Zone Set</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Zone Set</em>'.
+ * @see rba.sound.ZoneSet
+ * @generated
+ */
+ EClass getZoneSet();
+
+ /**
+ * Returns the meta object for the '{@link rba.sound.ZoneSet#getExpressionType() <em>Get Expression Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Type</em>' operation.
+ * @see rba.sound.ZoneSet#getExpressionType()
+ * @generated
+ */
+ EOperation getZoneSet__GetExpressionType();
+
+ /**
+ * Returns the meta object for class '{@link rba.sound.SoundContentOperator <em>Sound Content Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Sound Content Operator</em>'.
+ * @see rba.sound.SoundContentOperator
+ * @generated
+ */
+ EClass getSoundContentOperator();
+
+ /**
+ * Returns the meta object for the '{@link rba.sound.SoundContentOperator#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.sound.SoundContentOperator#getUnderlyingType()
+ * @generated
+ */
+ EOperation getSoundContentOperator__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for class '{@link rba.sound.IsSounding <em>Is Sounding</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Is Sounding</em>'.
+ * @see rba.sound.IsSounding
+ * @generated
+ */
+ EClass getIsSounding();
+
+ /**
+ * Returns the meta object for the '{@link rba.sound.IsSounding#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.sound.IsSounding#getSymbol()
+ * @generated
+ */
+ EOperation getIsSounding__GetSymbol();
+
+ /**
+ * Returns the meta object for class '{@link rba.sound.ZoneOperator <em>Zone Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Zone Operator</em>'.
+ * @see rba.sound.ZoneOperator
+ * @generated
+ */
+ EClass getZoneOperator();
+
+ /**
+ * Returns the meta object for the '{@link rba.sound.ZoneOperator#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.sound.ZoneOperator#getExpressionText()
+ * @generated
+ */
+ EOperation getZoneOperator__GetExpressionText();
+
+ /**
+ * Returns the meta object for class '{@link rba.sound.IsOutputted <em>Is Outputted</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Is Outputted</em>'.
+ * @see rba.sound.IsOutputted
+ * @generated
+ */
+ EClass getIsOutputted();
+
+ /**
+ * Returns the meta object for the '{@link rba.sound.IsOutputted#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.sound.IsOutputted#getSymbol()
+ * @generated
+ */
+ EOperation getIsOutputted__GetSymbol();
+
+ /**
+ * Returns the meta object for the '{@link rba.sound.IsOutputted#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.sound.IsOutputted#getUnderlyingType()
+ * @generated
+ */
+ EOperation getIsOutputted__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for class '{@link rba.sound.IsMuted <em>Is Muted</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Is Muted</em>'.
+ * @see rba.sound.IsMuted
+ * @generated
+ */
+ EClass getIsMuted();
+
+ /**
+ * Returns the meta object for the '{@link rba.sound.IsMuted#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.sound.IsMuted#getSymbol()
+ * @generated
+ */
+ EOperation getIsMuted__GetSymbol();
+
+ /**
+ * Returns the meta object for the '{@link rba.sound.IsMuted#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.sound.IsMuted#getUnderlyingType()
+ * @generated
+ */
+ EOperation getIsMuted__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for class '{@link rba.sound.IsAttenuated <em>Is Attenuated</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Is Attenuated</em>'.
+ * @see rba.sound.IsAttenuated
+ * @generated
+ */
+ EClass getIsAttenuated();
+
+ /**
+ * Returns the meta object for the '{@link rba.sound.IsAttenuated#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.sound.IsAttenuated#getSymbol()
+ * @generated
+ */
+ EOperation getIsAttenuated__GetSymbol();
+
+ /**
+ * Returns the meta object for the '{@link rba.sound.IsAttenuated#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.sound.IsAttenuated#getUnderlyingType()
+ * @generated
+ */
+ EOperation getIsAttenuated__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for class '{@link rba.sound.OutputtingSound <em>Outputting Sound</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Outputting Sound</em>'.
+ * @see rba.sound.OutputtingSound
+ * @generated
+ */
+ EClass getOutputtingSound();
+
+ /**
+ * Returns the meta object for the '{@link rba.sound.OutputtingSound#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.sound.OutputtingSound#getSymbol()
+ * @generated
+ */
+ EOperation getOutputtingSound__GetSymbol();
+
+ /**
+ * Returns the meta object for the '{@link rba.sound.OutputtingSound#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.sound.OutputtingSound#getUnderlyingType()
+ * @generated
+ */
+ EOperation getOutputtingSound__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for class '{@link rba.sound.AllInstanceOfZone <em>All Instance Of Zone</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>All Instance Of Zone</em>'.
+ * @see rba.sound.AllInstanceOfZone
+ * @generated
+ */
+ EClass getAllInstanceOfZone();
+
+ /**
+ * Returns the meta object for the '{@link rba.sound.AllInstanceOfZone#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.sound.AllInstanceOfZone#getExpressionText()
+ * @generated
+ */
+ EOperation getAllInstanceOfZone__GetExpressionText();
+
+ /**
+ * Returns the meta object for the '{@link rba.sound.AllInstanceOfZone#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.sound.AllInstanceOfZone#getUnderlyingType()
+ * @generated
+ */
+ EOperation getAllInstanceOfZone__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for class '{@link rba.sound.AllInstanceOfSoundContent <em>All Instance Of Sound Content</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>All Instance Of Sound Content</em>'.
+ * @see rba.sound.AllInstanceOfSoundContent
+ * @generated
+ */
+ EClass getAllInstanceOfSoundContent();
+
+ /**
+ * Returns the meta object for the '{@link rba.sound.AllInstanceOfSoundContent#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.sound.AllInstanceOfSoundContent#getExpressionText()
+ * @generated
+ */
+ EOperation getAllInstanceOfSoundContent__GetExpressionText();
+
+ /**
+ * Returns the meta object for the '{@link rba.sound.AllInstanceOfSoundContent#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.sound.AllInstanceOfSoundContent#getUnderlyingType()
+ * @generated
+ */
+ EOperation getAllInstanceOfSoundContent__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for class '{@link rba.sound.IsOutputtedOn <em>Is Outputted On</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Is Outputted On</em>'.
+ * @see rba.sound.IsOutputtedOn
+ * @generated
+ */
+ EClass getIsOutputtedOn();
+
+ /**
+ * Returns the meta object for the '{@link rba.sound.IsOutputtedOn#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.sound.IsOutputtedOn#getSymbol()
+ * @generated
+ */
+ EOperation getIsOutputtedOn__GetSymbol();
+
+ /**
+ * Returns the meta object for the '{@link rba.sound.IsOutputtedOn#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.sound.IsOutputtedOn#getUnderlyingType()
+ * @generated
+ */
+ EOperation getIsOutputtedOn__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for the '{@link rba.sound.IsOutputtedOn#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.sound.IsOutputtedOn#getExpressionText()
+ * @generated
+ */
+ EOperation getIsOutputtedOn__GetExpressionText();
+
+ /**
+ * Returns the meta object for class '{@link rba.sound.IsChangedOutput <em>Is Changed Output</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Is Changed Output</em>'.
+ * @see rba.sound.IsChangedOutput
+ * @generated
+ */
+ EClass getIsChangedOutput();
+
+ /**
+ * Returns the meta object for the '{@link rba.sound.IsChangedOutput#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.sound.IsChangedOutput#getSymbol()
+ * @generated
+ */
+ EOperation getIsChangedOutput__GetSymbol();
+
+ /**
+ * Returns the meta object for the '{@link rba.sound.IsChangedOutput#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.sound.IsChangedOutput#getUnderlyingType()
+ * @generated
+ */
+ EOperation getIsChangedOutput__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for class '{@link rba.sound.IsTranslatedSoundTo <em>Is Translated Sound To</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Is Translated Sound To</em>'.
+ * @see rba.sound.IsTranslatedSoundTo
+ * @generated
+ */
+ EClass getIsTranslatedSoundTo();
+
+ /**
+ * Returns the meta object for the '{@link rba.sound.IsTranslatedSoundTo#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.sound.IsTranslatedSoundTo#getSymbol()
+ * @generated
+ */
+ EOperation getIsTranslatedSoundTo__GetSymbol();
+
+ /**
+ * Returns the meta object for the '{@link rba.sound.IsTranslatedSoundTo#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.sound.IsTranslatedSoundTo#getUnderlyingType()
+ * @generated
+ */
+ EOperation getIsTranslatedSoundTo__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for the '{@link rba.sound.IsTranslatedSoundTo#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.sound.IsTranslatedSoundTo#getExpressionText()
+ * @generated
+ */
+ EOperation getIsTranslatedSoundTo__GetExpressionText();
+
+ /**
+ * Returns the meta object for class '{@link rba.sound.MuteLowerPriority <em>Mute Lower Priority</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Mute Lower Priority</em>'.
+ * @see rba.sound.MuteLowerPriority
+ * @generated
+ */
+ EClass getMuteLowerPriority();
+
+ /**
+ * Returns the meta object for the '{@link rba.sound.MuteLowerPriority#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.sound.MuteLowerPriority#getSymbol()
+ * @generated
+ */
+ EOperation getMuteLowerPriority__GetSymbol();
+
+ /**
+ * Returns the meta object for the '{@link rba.sound.MuteLowerPriority#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.sound.MuteLowerPriority#getUnderlyingType()
+ * @generated
+ */
+ EOperation getMuteLowerPriority__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for the '{@link rba.sound.MuteLowerPriority#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.sound.MuteLowerPriority#getExpressionText()
+ * @generated
+ */
+ EOperation getMuteLowerPriority__GetExpressionText();
+
+ /**
+ * 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
+ */
+ RBASoundFactory getRBASoundFactory();
+
+ /**
+ * <!-- 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 operation 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 rba.sound.impl.SoundContentImpl <em>Sound Content</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.sound.impl.SoundContentImpl
+ * @see rba.sound.impl.RBASoundPackageImpl#getSoundContent()
+ * @generated
+ */
+ EClass SOUND_CONTENT = eINSTANCE.getSoundContent();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation SOUND_CONTENT___GET_EXPRESSION_TYPE = eINSTANCE.getSoundContent__GetExpressionType();
+
+ /**
+ * The meta object literal for the '{@link rba.sound.impl.SoundContentSetImpl <em>Sound Content Set</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.sound.impl.SoundContentSetImpl
+ * @see rba.sound.impl.RBASoundPackageImpl#getSoundContentSet()
+ * @generated
+ */
+ EClass SOUND_CONTENT_SET = eINSTANCE.getSoundContentSet();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation SOUND_CONTENT_SET___GET_EXPRESSION_TYPE = eINSTANCE.getSoundContentSet__GetExpressionType();
+
+ /**
+ * The meta object literal for the '{@link rba.sound.impl.SoundContentStateImpl <em>Sound Content State</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.sound.impl.SoundContentStateImpl
+ * @see rba.sound.impl.RBASoundPackageImpl#getSoundContentState()
+ * @generated
+ */
+ EClass SOUND_CONTENT_STATE = eINSTANCE.getSoundContentState();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation SOUND_CONTENT_STATE___GET_EXPRESSION_TYPE = eINSTANCE.getSoundContentState__GetExpressionType();
+
+ /**
+ * The meta object literal for the '{@link rba.sound.impl.ZoneImpl <em>Zone</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.sound.impl.ZoneImpl
+ * @see rba.sound.impl.RBASoundPackageImpl#getZone()
+ * @generated
+ */
+ EClass ZONE = eINSTANCE.getZone();
+
+ /**
+ * The meta object literal for the '<em><b>Attenuate</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ZONE__ATTENUATE = eINSTANCE.getZone_Attenuate();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation ZONE___GET_EXPRESSION_TYPE = eINSTANCE.getZone__GetExpressionType();
+
+ /**
+ * The meta object literal for the '{@link rba.sound.impl.ZoneSetImpl <em>Zone Set</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.sound.impl.ZoneSetImpl
+ * @see rba.sound.impl.RBASoundPackageImpl#getZoneSet()
+ * @generated
+ */
+ EClass ZONE_SET = eINSTANCE.getZoneSet();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation ZONE_SET___GET_EXPRESSION_TYPE = eINSTANCE.getZoneSet__GetExpressionType();
+
+ /**
+ * The meta object literal for the '{@link rba.sound.impl.SoundContentOperatorImpl <em>Sound Content Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.sound.impl.SoundContentOperatorImpl
+ * @see rba.sound.impl.RBASoundPackageImpl#getSoundContentOperator()
+ * @generated
+ */
+ EClass SOUND_CONTENT_OPERATOR = eINSTANCE.getSoundContentOperator();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation SOUND_CONTENT_OPERATOR___GET_UNDERLYING_TYPE = eINSTANCE
+ .getSoundContentOperator__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '{@link rba.sound.impl.IsSoundingImpl <em>Is Sounding</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.sound.impl.IsSoundingImpl
+ * @see rba.sound.impl.RBASoundPackageImpl#getIsSounding()
+ * @generated
+ */
+ EClass IS_SOUNDING = eINSTANCE.getIsSounding();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IS_SOUNDING___GET_SYMBOL = eINSTANCE.getIsSounding__GetSymbol();
+
+ /**
+ * The meta object literal for the '{@link rba.sound.impl.ZoneOperatorImpl <em>Zone Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.sound.impl.ZoneOperatorImpl
+ * @see rba.sound.impl.RBASoundPackageImpl#getZoneOperator()
+ * @generated
+ */
+ EClass ZONE_OPERATOR = eINSTANCE.getZoneOperator();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation ZONE_OPERATOR___GET_EXPRESSION_TEXT = eINSTANCE.getZoneOperator__GetExpressionText();
+
+ /**
+ * The meta object literal for the '{@link rba.sound.impl.IsOutputtedImpl <em>Is Outputted</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.sound.impl.IsOutputtedImpl
+ * @see rba.sound.impl.RBASoundPackageImpl#getIsOutputted()
+ * @generated
+ */
+ EClass IS_OUTPUTTED = eINSTANCE.getIsOutputted();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IS_OUTPUTTED___GET_SYMBOL = eINSTANCE.getIsOutputted__GetSymbol();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IS_OUTPUTTED___GET_UNDERLYING_TYPE = eINSTANCE.getIsOutputted__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '{@link rba.sound.impl.IsMutedImpl <em>Is Muted</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.sound.impl.IsMutedImpl
+ * @see rba.sound.impl.RBASoundPackageImpl#getIsMuted()
+ * @generated
+ */
+ EClass IS_MUTED = eINSTANCE.getIsMuted();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IS_MUTED___GET_SYMBOL = eINSTANCE.getIsMuted__GetSymbol();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IS_MUTED___GET_UNDERLYING_TYPE = eINSTANCE.getIsMuted__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '{@link rba.sound.impl.IsAttenuatedImpl <em>Is Attenuated</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.sound.impl.IsAttenuatedImpl
+ * @see rba.sound.impl.RBASoundPackageImpl#getIsAttenuated()
+ * @generated
+ */
+ EClass IS_ATTENUATED = eINSTANCE.getIsAttenuated();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IS_ATTENUATED___GET_SYMBOL = eINSTANCE.getIsAttenuated__GetSymbol();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IS_ATTENUATED___GET_UNDERLYING_TYPE = eINSTANCE.getIsAttenuated__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '{@link rba.sound.impl.OutputtingSoundImpl <em>Outputting Sound</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.sound.impl.OutputtingSoundImpl
+ * @see rba.sound.impl.RBASoundPackageImpl#getOutputtingSound()
+ * @generated
+ */
+ EClass OUTPUTTING_SOUND = eINSTANCE.getOutputtingSound();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation OUTPUTTING_SOUND___GET_SYMBOL = eINSTANCE.getOutputtingSound__GetSymbol();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation OUTPUTTING_SOUND___GET_UNDERLYING_TYPE = eINSTANCE.getOutputtingSound__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '{@link rba.sound.impl.AllInstanceOfZoneImpl <em>All Instance Of Zone</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.sound.impl.AllInstanceOfZoneImpl
+ * @see rba.sound.impl.RBASoundPackageImpl#getAllInstanceOfZone()
+ * @generated
+ */
+ EClass ALL_INSTANCE_OF_ZONE = eINSTANCE.getAllInstanceOfZone();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation ALL_INSTANCE_OF_ZONE___GET_EXPRESSION_TEXT = eINSTANCE.getAllInstanceOfZone__GetExpressionText();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation ALL_INSTANCE_OF_ZONE___GET_UNDERLYING_TYPE = eINSTANCE.getAllInstanceOfZone__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '{@link rba.sound.impl.AllInstanceOfSoundContentImpl <em>All Instance Of Sound Content</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.sound.impl.AllInstanceOfSoundContentImpl
+ * @see rba.sound.impl.RBASoundPackageImpl#getAllInstanceOfSoundContent()
+ * @generated
+ */
+ EClass ALL_INSTANCE_OF_SOUND_CONTENT = eINSTANCE.getAllInstanceOfSoundContent();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation ALL_INSTANCE_OF_SOUND_CONTENT___GET_EXPRESSION_TEXT = eINSTANCE
+ .getAllInstanceOfSoundContent__GetExpressionText();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation ALL_INSTANCE_OF_SOUND_CONTENT___GET_UNDERLYING_TYPE = eINSTANCE
+ .getAllInstanceOfSoundContent__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '{@link rba.sound.impl.IsOutputtedOnImpl <em>Is Outputted On</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.sound.impl.IsOutputtedOnImpl
+ * @see rba.sound.impl.RBASoundPackageImpl#getIsOutputtedOn()
+ * @generated
+ */
+ EClass IS_OUTPUTTED_ON = eINSTANCE.getIsOutputtedOn();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IS_OUTPUTTED_ON___GET_SYMBOL = eINSTANCE.getIsOutputtedOn__GetSymbol();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IS_OUTPUTTED_ON___GET_UNDERLYING_TYPE = eINSTANCE.getIsOutputtedOn__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IS_OUTPUTTED_ON___GET_EXPRESSION_TEXT = eINSTANCE.getIsOutputtedOn__GetExpressionText();
+
+ /**
+ * The meta object literal for the '{@link rba.sound.impl.IsChangedOutputImpl <em>Is Changed Output</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.sound.impl.IsChangedOutputImpl
+ * @see rba.sound.impl.RBASoundPackageImpl#getIsChangedOutput()
+ * @generated
+ */
+ EClass IS_CHANGED_OUTPUT = eINSTANCE.getIsChangedOutput();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IS_CHANGED_OUTPUT___GET_SYMBOL = eINSTANCE.getIsChangedOutput__GetSymbol();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IS_CHANGED_OUTPUT___GET_UNDERLYING_TYPE = eINSTANCE.getIsChangedOutput__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '{@link rba.sound.impl.IsTranslatedSoundToImpl <em>Is Translated Sound To</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.sound.impl.IsTranslatedSoundToImpl
+ * @see rba.sound.impl.RBASoundPackageImpl#getIsTranslatedSoundTo()
+ * @generated
+ */
+ EClass IS_TRANSLATED_SOUND_TO = eINSTANCE.getIsTranslatedSoundTo();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IS_TRANSLATED_SOUND_TO___GET_SYMBOL = eINSTANCE.getIsTranslatedSoundTo__GetSymbol();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IS_TRANSLATED_SOUND_TO___GET_UNDERLYING_TYPE = eINSTANCE.getIsTranslatedSoundTo__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IS_TRANSLATED_SOUND_TO___GET_EXPRESSION_TEXT = eINSTANCE.getIsTranslatedSoundTo__GetExpressionText();
+
+ /**
+ * The meta object literal for the '{@link rba.sound.impl.MuteLowerPriorityImpl <em>Mute Lower Priority</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.sound.impl.MuteLowerPriorityImpl
+ * @see rba.sound.impl.RBASoundPackageImpl#getMuteLowerPriority()
+ * @generated
+ */
+ EClass MUTE_LOWER_PRIORITY = eINSTANCE.getMuteLowerPriority();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation MUTE_LOWER_PRIORITY___GET_SYMBOL = eINSTANCE.getMuteLowerPriority__GetSymbol();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation MUTE_LOWER_PRIORITY___GET_UNDERLYING_TYPE = eINSTANCE.getMuteLowerPriority__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation MUTE_LOWER_PRIORITY___GET_EXPRESSION_TEXT = eINSTANCE.getMuteLowerPriority__GetExpressionText();
+
+ }
+
+} //RBASoundPackage
diff --git a/rba.model.sound/src/rba/sound/SoundContent.java b/rba.model.sound/src/rba/sound/SoundContent.java
new file mode 100644
index 0000000..80e1bed
--- /dev/null
+++ b/rba.model.sound/src/rba/sound/SoundContent.java
@@ -0,0 +1,35 @@
+/**
+ */
+package rba.sound;
+
+import rba.core.Content;
+import rba.core.ExpressionType;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Sound Content</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.sound.RBASoundPackage#getSoundContent()
+ * @model
+ * @generated
+ */
+public interface SoundContent extends Content {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.SOUND;'"
+ * @generated
+ */
+ ExpressionType getExpressionType();
+
+} // SoundContent
diff --git a/rba.model.sound/src/rba/sound/SoundContentOperator.java b/rba.model.sound/src/rba/sound/SoundContentOperator.java
new file mode 100644
index 0000000..f2909f5
--- /dev/null
+++ b/rba.model.sound/src/rba/sound/SoundContentOperator.java
@@ -0,0 +1,35 @@
+/**
+ */
+package rba.sound;
+
+import rba.core.ContentOperator;
+import rba.core.ExpressionType;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Sound Content Operator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.sound.RBASoundPackage#getSoundContentOperator()
+ * @model abstract="true"
+ * @generated
+ */
+public interface SoundContentOperator extends ContentOperator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.BOOLEAN;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+} // SoundContentOperator
diff --git a/rba.model.sound/src/rba/sound/SoundContentSet.java b/rba.model.sound/src/rba/sound/SoundContentSet.java
new file mode 100644
index 0000000..0ace62f
--- /dev/null
+++ b/rba.model.sound/src/rba/sound/SoundContentSet.java
@@ -0,0 +1,35 @@
+/**
+ */
+package rba.sound;
+
+import rba.core.ContentSet;
+import rba.core.ExpressionType;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Sound Content Set</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.sound.RBASoundPackage#getSoundContentSet()
+ * @model
+ * @generated
+ */
+public interface SoundContentSet extends ContentSet {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.SET_OF_SOUND;'"
+ * @generated
+ */
+ ExpressionType getExpressionType();
+
+} // SoundContentSet
diff --git a/rba.model.sound/src/rba/sound/SoundContentState.java b/rba.model.sound/src/rba/sound/SoundContentState.java
new file mode 100644
index 0000000..d56e205
--- /dev/null
+++ b/rba.model.sound/src/rba/sound/SoundContentState.java
@@ -0,0 +1,35 @@
+/**
+ */
+package rba.sound;
+
+import rba.core.ContentState;
+import rba.core.ExpressionType;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Sound Content State</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.sound.RBASoundPackage#getSoundContentState()
+ * @model
+ * @generated
+ */
+public interface SoundContentState extends ContentState {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.CONTENT_STATE;'"
+ * @generated
+ */
+ ExpressionType getExpressionType();
+
+} // SoundContentState
diff --git a/rba.model.sound/src/rba/sound/Zone.java b/rba.model.sound/src/rba/sound/Zone.java
new file mode 100644
index 0000000..3b887b8
--- /dev/null
+++ b/rba.model.sound/src/rba/sound/Zone.java
@@ -0,0 +1,67 @@
+/**
+ */
+package rba.sound;
+
+import rba.core.Allocatable;
+import rba.core.Expression;
+import rba.core.ExpressionType;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Zone</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link rba.sound.Zone#getAttenuate <em>Attenuate</em>}</li>
+ * </ul>
+ *
+ * @see rba.sound.RBASoundPackage#getZone()
+ * @model
+ * @generated
+ */
+public interface Zone extends Allocatable {
+ /**
+ * Returns the value of the '<em><b>Attenuate</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Attenuate</em>' containment reference.
+ * @see #setAttenuate(Expression)
+ * @see rba.sound.RBASoundPackage#getZone_Attenuate()
+ * @model containment="true"
+ * @generated
+ */
+ Expression getAttenuate();
+
+ /**
+ * Sets the value of the '{@link rba.sound.Zone#getAttenuate <em>Attenuate</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Attenuate</em>' containment reference.
+ * @see #getAttenuate()
+ * @generated
+ */
+ void setAttenuate(Expression value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.ZONE;'"
+ * @generated
+ */
+ ExpressionType getExpressionType();
+
+} // Zone
diff --git a/rba.model.sound/src/rba/sound/ZoneOperator.java b/rba.model.sound/src/rba/sound/ZoneOperator.java
new file mode 100644
index 0000000..5c84963
--- /dev/null
+++ b/rba.model.sound/src/rba/sound/ZoneOperator.java
@@ -0,0 +1,34 @@
+/**
+ */
+package rba.sound;
+
+import rba.core.Operator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Zone Operator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.sound.RBASoundPackage#getZoneOperator()
+ * @model abstract="true"
+ * @generated
+ */
+public interface ZoneOperator extends Operator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuffer expressionText = new StringBuffer();\r\nEList&lt;rba.core.Expression&gt; expressions = getOperand();\r\nexpressionText.append(expressions.size() &gt; 0 ? expressions.get(0).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(getSymbol());\r\nreturn expressionText.toString();'"
+ * @generated
+ */
+ String getExpressionText();
+
+} // ZoneOperator
diff --git a/rba.model.sound/src/rba/sound/ZoneSet.java b/rba.model.sound/src/rba/sound/ZoneSet.java
new file mode 100644
index 0000000..5386768
--- /dev/null
+++ b/rba.model.sound/src/rba/sound/ZoneSet.java
@@ -0,0 +1,35 @@
+/**
+ */
+package rba.sound;
+
+import rba.core.AllocatableSet;
+import rba.core.ExpressionType;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Zone Set</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.sound.RBASoundPackage#getZoneSet()
+ * @model
+ * @generated
+ */
+public interface ZoneSet extends AllocatableSet {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.SET_OF_ZONE;'"
+ * @generated
+ */
+ ExpressionType getExpressionType();
+
+} // ZoneSet
diff --git a/rba.model.sound/src/rba/sound/impl/AllInstanceOfSoundContentImpl.java b/rba.model.sound/src/rba/sound/impl/AllInstanceOfSoundContentImpl.java
new file mode 100644
index 0000000..8bd0e80
--- /dev/null
+++ b/rba.model.sound/src/rba/sound/impl/AllInstanceOfSoundContentImpl.java
@@ -0,0 +1,73 @@
+/**
+ */
+package rba.sound.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.ExpressionType;
+
+import rba.core.impl.SetExpressionImpl;
+
+import rba.sound.AllInstanceOfSoundContent;
+import rba.sound.RBASoundPackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>All Instance Of Sound Content</b></em>'. <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+public class AllInstanceOfSoundContentImpl extends SetExpressionImpl implements AllInstanceOfSoundContent {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected AllInstanceOfSoundContentImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBASoundPackage.Literals.ALL_INSTANCE_OF_SOUND_CONTENT;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ return "ALL_SOUNDCONTENTS";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return ExpressionType.SET_OF_SOUND;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBASoundPackage.ALL_INSTANCE_OF_SOUND_CONTENT___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ case RBASoundPackage.ALL_INSTANCE_OF_SOUND_CONTENT___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // AllInstanceOfSoundContentImpl
diff --git a/rba.model.sound/src/rba/sound/impl/AllInstanceOfZoneImpl.java b/rba.model.sound/src/rba/sound/impl/AllInstanceOfZoneImpl.java
new file mode 100644
index 0000000..ee87353
--- /dev/null
+++ b/rba.model.sound/src/rba/sound/impl/AllInstanceOfZoneImpl.java
@@ -0,0 +1,72 @@
+/**
+ */
+package rba.sound.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.ExpressionType;
+
+import rba.core.impl.SetExpressionImpl;
+
+import rba.sound.AllInstanceOfZone;
+import rba.sound.RBASoundPackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>All Instance Of Zone</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class AllInstanceOfZoneImpl extends SetExpressionImpl implements AllInstanceOfZone {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected AllInstanceOfZoneImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBASoundPackage.Literals.ALL_INSTANCE_OF_ZONE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ return "ALL_ZONES";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return ExpressionType.SET_OF_ZONE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBASoundPackage.ALL_INSTANCE_OF_ZONE___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ case RBASoundPackage.ALL_INSTANCE_OF_ZONE___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // AllInstanceOfZoneImpl
diff --git a/rba.model.sound/src/rba/sound/impl/IsAttenuatedImpl.java b/rba.model.sound/src/rba/sound/impl/IsAttenuatedImpl.java
new file mode 100644
index 0000000..31b670b
--- /dev/null
+++ b/rba.model.sound/src/rba/sound/impl/IsAttenuatedImpl.java
@@ -0,0 +1,70 @@
+/**
+ */
+package rba.sound.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.ExpressionType;
+
+import rba.sound.IsAttenuated;
+import rba.sound.RBASoundPackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Is Attenuated</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class IsAttenuatedImpl extends ZoneOperatorImpl implements IsAttenuated {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected IsAttenuatedImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBASoundPackage.Literals.IS_ATTENUATED;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return ".isAttenauted()";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return ExpressionType.BOOLEAN;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBASoundPackage.IS_ATTENUATED___GET_SYMBOL:
+ return getSymbol();
+ case RBASoundPackage.IS_ATTENUATED___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // IsAttenuatedImpl
diff --git a/rba.model.sound/src/rba/sound/impl/IsChangedOutputImpl.java b/rba.model.sound/src/rba/sound/impl/IsChangedOutputImpl.java
new file mode 100644
index 0000000..72e29f0
--- /dev/null
+++ b/rba.model.sound/src/rba/sound/impl/IsChangedOutputImpl.java
@@ -0,0 +1,186 @@
+/**
+ */
+package rba.sound.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.AndOperator;
+import rba.core.Expression;
+import rba.core.ExpressionType;
+import rba.core.NotOperator;
+import rba.core.ObjectCompare;
+import rba.core.ObjectReference;
+import rba.core.Operator;
+import rba.core.OrOperator;
+import rba.core.PreviousModifier;
+import rba.core.RBACoreFactory;
+import rba.core.RBACorePackage;
+import rba.core.SugarExpression;
+import rba.core.SugarExpressionBase;
+import rba.sound.IsChangedOutput;
+import rba.sound.IsOutputted;
+import rba.sound.OutputtingSound;
+import rba.sound.RBASoundFactory;
+import rba.sound.RBASoundPackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Is Changed Output</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class IsChangedOutputImpl extends ZoneOperatorImpl implements IsChangedOutput {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected IsChangedOutputImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBASoundPackage.Literals.IS_CHANGED_OUTPUT;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return ".isChangedOutput()";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return ExpressionType.BOOLEAN;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean canExpand() {
+ return true;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Expression getExpanded() {
+ OrOperator or = RBACoreFactory.eINSTANCE.createOrOperator();
+ NotOperator not = RBACoreFactory.eINSTANCE.createNotOperator();
+ ObjectCompare equal = RBACoreFactory.eINSTANCE.createObjectCompare();
+ OutputtingSound outSound = RBASoundFactory.eINSTANCE.createOutputtingSound();
+ PreviousModifier pre = RBACoreFactory.eINSTANCE.createPreviousModifier();
+ OrOperator leftOr = RBACoreFactory.eINSTANCE.createOrOperator();
+ NotOperator leftnot = RBACoreFactory.eINSTANCE.createNotOperator();
+ AndOperator and = RBACoreFactory.eINSTANCE.createAndOperator();
+ IsOutputted outputted = RBASoundFactory.eINSTANCE.createIsOutputted();
+
+ pre.setObjReference((ObjectReference) org.eclipse.emf.ecore.util.EcoreUtil.copy(getOperand().get(0)));
+ outSound.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(pre));
+ equal.getOperand().add(outSound);
+ outSound = RBASoundFactory.eINSTANCE.createOutputtingSound();
+ outSound.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(getOperand().get(0)));
+ equal.getOperand().add(outSound);
+ not.getOperand().add(equal);
+
+ outputted.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(pre));
+ and.getOperand().add(outputted);
+ outputted = RBASoundFactory.eINSTANCE.createIsOutputted();
+ outputted.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(getOperand().get(0)));
+ leftnot.getOperand().add(outputted);
+ and.getOperand().add(leftnot);
+ leftOr.getOperand().add(and);
+
+ leftnot = RBACoreFactory.eINSTANCE.createNotOperator();
+ outputted = RBASoundFactory.eINSTANCE.createIsOutputted();
+ outputted.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(pre));
+ leftnot.getOperand().add(outputted);
+ outputted = RBASoundFactory.eINSTANCE.createIsOutputted();
+ outputted.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(getOperand().get(0)));
+ and = RBACoreFactory.eINSTANCE.createAndOperator();
+ and.getOperand().add(leftnot);
+ and.getOperand().add(outputted);
+ leftOr.getOperand().add(and);
+
+ or.getOperand().add(not);
+ or.getOperand().add(leftOr);
+
+ return or;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
+ if (baseClass == Expression.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.EXPRESSION___GET_UNDERLYING_TYPE:
+ return RBASoundPackage.IS_CHANGED_OUTPUT___GET_UNDERLYING_TYPE;
+ default:
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+ }
+ if (baseClass == Operator.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.OPERATOR___GET_SYMBOL:
+ return RBASoundPackage.IS_CHANGED_OUTPUT___GET_SYMBOL;
+ default:
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+ }
+ if (baseClass == SugarExpression.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.SUGAR_EXPRESSION___CAN_EXPAND:
+ return RBASoundPackage.IS_CHANGED_OUTPUT___CAN_EXPAND;
+ case RBACorePackage.SUGAR_EXPRESSION___GET_EXPANDED:
+ return RBASoundPackage.IS_CHANGED_OUTPUT___GET_EXPANDED;
+ default:
+ return -1;
+ }
+ }
+ if (baseClass == SugarExpressionBase.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.SUGAR_EXPRESSION_BASE___CAN_EXPAND:
+ return RBASoundPackage.IS_CHANGED_OUTPUT___CAN_EXPAND;
+ default:
+ return -1;
+ }
+ }
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBASoundPackage.IS_CHANGED_OUTPUT___GET_SYMBOL:
+ return getSymbol();
+ case RBASoundPackage.IS_CHANGED_OUTPUT___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ case RBASoundPackage.IS_CHANGED_OUTPUT___CAN_EXPAND:
+ return canExpand();
+ case RBASoundPackage.IS_CHANGED_OUTPUT___GET_EXPANDED:
+ return getExpanded();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // IsChangedOutputImpl
diff --git a/rba.model.sound/src/rba/sound/impl/IsMutedImpl.java b/rba.model.sound/src/rba/sound/impl/IsMutedImpl.java
new file mode 100644
index 0000000..4233619
--- /dev/null
+++ b/rba.model.sound/src/rba/sound/impl/IsMutedImpl.java
@@ -0,0 +1,70 @@
+/**
+ */
+package rba.sound.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.ExpressionType;
+
+import rba.sound.IsMuted;
+import rba.sound.RBASoundPackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Is Muted</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class IsMutedImpl extends ZoneOperatorImpl implements IsMuted {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected IsMutedImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBASoundPackage.Literals.IS_MUTED;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return ".isMuted()";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return ExpressionType.BOOLEAN;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBASoundPackage.IS_MUTED___GET_SYMBOL:
+ return getSymbol();
+ case RBASoundPackage.IS_MUTED___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // IsMutedImpl
diff --git a/rba.model.sound/src/rba/sound/impl/IsOutputtedImpl.java b/rba.model.sound/src/rba/sound/impl/IsOutputtedImpl.java
new file mode 100644
index 0000000..6662b1b
--- /dev/null
+++ b/rba.model.sound/src/rba/sound/impl/IsOutputtedImpl.java
@@ -0,0 +1,70 @@
+/**
+ */
+package rba.sound.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.ExpressionType;
+
+import rba.sound.IsOutputted;
+import rba.sound.RBASoundPackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Is Outputted</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class IsOutputtedImpl extends ZoneOperatorImpl implements IsOutputted {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected IsOutputtedImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBASoundPackage.Literals.IS_OUTPUTTED;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return ".isOutputted()";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return ExpressionType.BOOLEAN;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBASoundPackage.IS_OUTPUTTED___GET_SYMBOL:
+ return getSymbol();
+ case RBASoundPackage.IS_OUTPUTTED___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // IsOutputtedImpl
diff --git a/rba.model.sound/src/rba/sound/impl/IsOutputtedOnImpl.java b/rba.model.sound/src/rba/sound/impl/IsOutputtedOnImpl.java
new file mode 100644
index 0000000..3fd64c0
--- /dev/null
+++ b/rba.model.sound/src/rba/sound/impl/IsOutputtedOnImpl.java
@@ -0,0 +1,193 @@
+/**
+ */
+package rba.sound.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.AndOperator;
+import rba.core.ContentOperator;
+import rba.core.Expression;
+import rba.core.ExpressionType;
+import rba.core.ObjectCompare;
+import rba.core.Operator;
+import rba.core.RBACoreFactory;
+import rba.core.RBACorePackage;
+import rba.core.SugarExpression;
+import rba.core.SugarExpressionBase;
+import rba.sound.IsOutputted;
+import rba.sound.IsOutputtedOn;
+import rba.sound.OutputtingSound;
+import rba.sound.RBASoundFactory;
+import rba.sound.RBASoundPackage;
+import rba.sound.SoundContentOperator;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Is Outputted On</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class IsOutputtedOnImpl extends SoundContentOperatorImpl implements IsOutputtedOn {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected IsOutputtedOnImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBASoundPackage.Literals.IS_OUTPUTTED_ON;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return ".isOutputtedOn";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return ExpressionType.BOOLEAN;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ StringBuilder expressionText = new StringBuilder();
+ EList<rba.core.Expression> expressions = getOperand();
+ expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : "[Invalid_Expression]");
+ expressionText.append(getSymbol());
+ expressionText.append("(");
+ expressionText.append(expressions.size() > 1 ? expressions.get(1).getExpressionText() : "[Invalid_Expression]");
+ expressionText.append(")");
+ return expressionText.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean canExpand() {
+ return true;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Expression getExpanded() {
+ AndOperator AND = RBACoreFactory.eINSTANCE.createAndOperator();
+ IsOutputted isOutputted = RBASoundFactory.eINSTANCE.createIsOutputted();
+ ObjectCompare equal = RBACoreFactory.eINSTANCE.createObjectCompare();
+ OutputtingSound outputtingSound = RBASoundFactory.eINSTANCE.createOutputtingSound();
+
+ isOutputted.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(getOperand().get(1)));
+ AND.getOperand().add(isOutputted);
+
+ outputtingSound.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(getOperand().get(1)));
+ equal.getOperand().add(outputtingSound);
+ equal.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(getOperand().get(0)));
+ AND.getOperand().add(equal);
+
+ return AND;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
+ if (baseClass == Expression.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.EXPRESSION___GET_UNDERLYING_TYPE:
+ return RBASoundPackage.IS_OUTPUTTED_ON___GET_UNDERLYING_TYPE;
+ case RBACorePackage.EXPRESSION___GET_EXPRESSION_TEXT:
+ return RBASoundPackage.IS_OUTPUTTED_ON___GET_EXPRESSION_TEXT;
+ default:
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+ }
+ if (baseClass == Operator.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.OPERATOR___GET_SYMBOL:
+ return RBASoundPackage.IS_OUTPUTTED_ON___GET_SYMBOL;
+ default:
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+ }
+ if (baseClass == ContentOperator.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.CONTENT_OPERATOR___GET_EXPRESSION_TEXT:
+ return RBASoundPackage.IS_OUTPUTTED_ON___GET_EXPRESSION_TEXT;
+ default:
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+ }
+ if (baseClass == SoundContentOperator.class) {
+ switch (baseOperationID) {
+ case RBASoundPackage.SOUND_CONTENT_OPERATOR___GET_UNDERLYING_TYPE:
+ return RBASoundPackage.IS_OUTPUTTED_ON___GET_UNDERLYING_TYPE;
+ default:
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+ }
+ if (baseClass == SugarExpression.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.SUGAR_EXPRESSION___CAN_EXPAND:
+ return RBASoundPackage.IS_OUTPUTTED_ON___CAN_EXPAND;
+ case RBACorePackage.SUGAR_EXPRESSION___GET_EXPANDED:
+ return RBASoundPackage.IS_OUTPUTTED_ON___GET_EXPANDED;
+ default:
+ return -1;
+ }
+ }
+ if (baseClass == SugarExpressionBase.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.SUGAR_EXPRESSION_BASE___CAN_EXPAND:
+ return RBASoundPackage.IS_OUTPUTTED_ON___CAN_EXPAND;
+ default:
+ return -1;
+ }
+ }
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBASoundPackage.IS_OUTPUTTED_ON___GET_SYMBOL:
+ return getSymbol();
+ case RBASoundPackage.IS_OUTPUTTED_ON___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ case RBASoundPackage.IS_OUTPUTTED_ON___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ case RBASoundPackage.IS_OUTPUTTED_ON___CAN_EXPAND:
+ return canExpand();
+ case RBASoundPackage.IS_OUTPUTTED_ON___GET_EXPANDED:
+ return getExpanded();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // IsOutputtedOnImpl
diff --git a/rba.model.sound/src/rba/sound/impl/IsSoundingImpl.java b/rba.model.sound/src/rba/sound/impl/IsSoundingImpl.java
new file mode 100644
index 0000000..af0cf9d
--- /dev/null
+++ b/rba.model.sound/src/rba/sound/impl/IsSoundingImpl.java
@@ -0,0 +1,58 @@
+/**
+ */
+package rba.sound.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.sound.IsSounding;
+import rba.sound.RBASoundPackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Is Sounding</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class IsSoundingImpl extends SoundContentOperatorImpl implements IsSounding {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected IsSoundingImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBASoundPackage.Literals.IS_SOUNDING;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return ".isSounding()";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBASoundPackage.IS_SOUNDING___GET_SYMBOL:
+ return getSymbol();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // IsSoundingImpl
diff --git a/rba.model.sound/src/rba/sound/impl/IsTranslatedSoundToImpl.java b/rba.model.sound/src/rba/sound/impl/IsTranslatedSoundToImpl.java
new file mode 100644
index 0000000..6a01be5
--- /dev/null
+++ b/rba.model.sound/src/rba/sound/impl/IsTranslatedSoundToImpl.java
@@ -0,0 +1,205 @@
+/**
+ */
+package rba.sound.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.AndOperator;
+import rba.core.Expression;
+import rba.core.ExpressionType;
+import rba.core.NotOperator;
+import rba.core.ObjectCompare;
+import rba.core.ObjectReference;
+import rba.core.Operator;
+import rba.core.OrOperator;
+import rba.core.PreviousModifier;
+import rba.core.RBACoreFactory;
+import rba.core.RBACorePackage;
+import rba.core.SugarExpression;
+import rba.core.SugarExpressionBase;
+import rba.sound.IsOutputted;
+import rba.sound.IsTranslatedSoundTo;
+import rba.sound.OutputtingSound;
+import rba.sound.RBASoundFactory;
+import rba.sound.RBASoundPackage;
+import rba.sound.ZoneOperator;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Is Translated Sound To</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class IsTranslatedSoundToImpl extends ZoneOperatorImpl implements IsTranslatedSoundTo {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected IsTranslatedSoundToImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBASoundPackage.Literals.IS_TRANSLATED_SOUND_TO;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return ".isTranslatedSoundTo";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return ExpressionType.BOOLEAN;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ StringBuilder expressionText = new StringBuilder();
+ EList<rba.core.Expression> expressions = getOperand();
+ expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : "[Invalid_Expression]");
+ expressionText.append(getSymbol());
+ expressionText.append("(");
+ expressionText.append(expressions.size() > 1 ? expressions.get(1).getExpressionText() : "[Invalid_Expression]");
+ expressionText.append(")");
+ return expressionText.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean canExpand() {
+ return true;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Expression getExpanded() {
+ AndOperator AND = RBACoreFactory.eINSTANCE.createAndOperator();
+ IsOutputted isOutputted = RBASoundFactory.eINSTANCE.createIsOutputted();
+ ObjectCompare equal = RBACoreFactory.eINSTANCE.createObjectCompare();
+ OutputtingSound outSound = RBASoundFactory.eINSTANCE.createOutputtingSound();
+ PreviousModifier pre = RBACoreFactory.eINSTANCE.createPreviousModifier();
+ OrOperator or = RBACoreFactory.eINSTANCE.createOrOperator();
+ NotOperator not = RBACoreFactory.eINSTANCE.createNotOperator();
+
+ isOutputted.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(getOperand().get(0)));
+ AND.getOperand().add(isOutputted);
+
+ outSound.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(getOperand().get(0)));
+ equal.getOperand().add(outSound);
+ equal.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(getOperand().get(1)));
+ AND.getOperand().add(equal);
+
+ pre.setObjReference((ObjectReference) org.eclipse.emf.ecore.util.EcoreUtil.copy(getOperand().get(0)));
+ outSound = RBASoundFactory.eINSTANCE.createOutputtingSound();
+ outSound.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(pre));
+ equal = RBACoreFactory.eINSTANCE.createObjectCompare();
+ equal.getOperand().add(outSound);
+ equal.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(getOperand().get(1)));
+ not.getOperand().add(equal);
+ or.getOperand().add(not);
+
+ isOutputted = RBASoundFactory.eINSTANCE.createIsOutputted();
+ isOutputted.getOperand().add(pre);
+ not = RBACoreFactory.eINSTANCE.createNotOperator();
+ not.getOperand().add(isOutputted);
+ or.getOperand().add(not);
+ AND.getOperand().add(or);
+ return AND;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
+ if (baseClass == Expression.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.EXPRESSION___GET_UNDERLYING_TYPE:
+ return RBASoundPackage.IS_TRANSLATED_SOUND_TO___GET_UNDERLYING_TYPE;
+ case RBACorePackage.EXPRESSION___GET_EXPRESSION_TEXT:
+ return RBASoundPackage.IS_TRANSLATED_SOUND_TO___GET_EXPRESSION_TEXT;
+ default:
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+ }
+ if (baseClass == Operator.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.OPERATOR___GET_SYMBOL:
+ return RBASoundPackage.IS_TRANSLATED_SOUND_TO___GET_SYMBOL;
+ default:
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+ }
+ if (baseClass == ZoneOperator.class) {
+ switch (baseOperationID) {
+ case RBASoundPackage.ZONE_OPERATOR___GET_EXPRESSION_TEXT:
+ return RBASoundPackage.IS_TRANSLATED_SOUND_TO___GET_EXPRESSION_TEXT;
+ default:
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+ }
+ if (baseClass == SugarExpression.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.SUGAR_EXPRESSION___CAN_EXPAND:
+ return RBASoundPackage.IS_TRANSLATED_SOUND_TO___CAN_EXPAND;
+ case RBACorePackage.SUGAR_EXPRESSION___GET_EXPANDED:
+ return RBASoundPackage.IS_TRANSLATED_SOUND_TO___GET_EXPANDED;
+ default:
+ return -1;
+ }
+ }
+ if (baseClass == SugarExpressionBase.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.SUGAR_EXPRESSION_BASE___CAN_EXPAND:
+ return RBASoundPackage.IS_TRANSLATED_SOUND_TO___CAN_EXPAND;
+ default:
+ return -1;
+ }
+ }
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBASoundPackage.IS_TRANSLATED_SOUND_TO___GET_SYMBOL:
+ return getSymbol();
+ case RBASoundPackage.IS_TRANSLATED_SOUND_TO___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ case RBASoundPackage.IS_TRANSLATED_SOUND_TO___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ case RBASoundPackage.IS_TRANSLATED_SOUND_TO___CAN_EXPAND:
+ return canExpand();
+ case RBASoundPackage.IS_TRANSLATED_SOUND_TO___GET_EXPANDED:
+ return getExpanded();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // IsTranslatedSoundToImpl
diff --git a/rba.model.sound/src/rba/sound/impl/MuteLowerPriorityImpl.java b/rba.model.sound/src/rba/sound/impl/MuteLowerPriorityImpl.java
new file mode 100644
index 0000000..6c7079c
--- /dev/null
+++ b/rba.model.sound/src/rba/sound/impl/MuteLowerPriorityImpl.java
@@ -0,0 +1,192 @@
+/**
+ */
+package rba.sound.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.AndOperator;
+import rba.core.ContentValue;
+import rba.core.Expression;
+import rba.core.ExpressionType;
+import rba.core.ImpliesOperator;
+import rba.core.IsGreaterThanOperator;
+import rba.core.IsLowerThanOperator;
+import rba.core.Operator;
+import rba.core.RBACoreFactory;
+import rba.core.RBACorePackage;
+import rba.core.SugarExpression;
+import rba.core.SugarExpressionBase;
+import rba.core.impl.OperatorImpl;
+import rba.sound.IsMuted;
+import rba.sound.MuteLowerPriority;
+import rba.sound.RBASoundFactory;
+import rba.sound.RBASoundPackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Mute Lower Priority</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class MuteLowerPriorityImpl extends OperatorImpl implements MuteLowerPriority {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected MuteLowerPriorityImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBASoundPackage.Literals.MUTE_LOWER_PRIORITY;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return "MuteLowerPriority";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return ExpressionType.BOOLEAN;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ StringBuilder expressionText = new StringBuilder();
+ EList<rba.core.Expression> expressions = getOperand();
+ expressionText.append(getSymbol());
+ expressionText.append("(");
+ expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : "[Invalid_Expression]");
+ expressionText.append(",");
+ expressionText.append(expressions.size() > 1 ? expressions.get(1).getExpressionText() : "[Invalid_Expression]");
+ expressionText.append(")");
+ return expressionText.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean canExpand() {
+ return true;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Expression getExpanded() {
+ AndOperator AND = RBACoreFactory.eINSTANCE.createAndOperator();
+ ImpliesOperator implies = RBACoreFactory.eINSTANCE.createImpliesOperator();
+ IsLowerThanOperator lowerThan = RBACoreFactory.eINSTANCE.createIsLowerThanOperator();
+ ContentValue contentValue1 = RBACoreFactory.eINSTANCE.createContentValue();
+ ContentValue contentValue2 = RBACoreFactory.eINSTANCE.createContentValue();
+ IsMuted muted = RBASoundFactory.eINSTANCE.createIsMuted();
+ IsGreaterThanOperator greaterThan = RBACoreFactory.eINSTANCE.createIsGreaterThanOperator();
+
+ contentValue1.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(getOperand().get(0)));
+ contentValue2.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(getOperand().get(1)));
+ lowerThan.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(contentValue1));
+ lowerThan.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(contentValue2));
+ implies.getOperand().add(lowerThan);
+ muted.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(getOperand().get(0)));
+ implies.getOperand().add(muted);
+ AND.getOperand().add(implies);
+
+ implies = RBACoreFactory.eINSTANCE.createImpliesOperator();
+ greaterThan.getOperand().add(contentValue1);
+ greaterThan.getOperand().add(contentValue2);
+ implies.getOperand().add(greaterThan);
+
+ muted = RBASoundFactory.eINSTANCE.createIsMuted();
+ muted.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(getOperand().get(1)));
+ implies.getOperand().add(muted);
+ AND.getOperand().add(implies);
+
+ return AND;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
+ if (baseClass == Expression.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.EXPRESSION___GET_UNDERLYING_TYPE:
+ return RBASoundPackage.MUTE_LOWER_PRIORITY___GET_UNDERLYING_TYPE;
+ case RBACorePackage.EXPRESSION___GET_EXPRESSION_TEXT:
+ return RBASoundPackage.MUTE_LOWER_PRIORITY___GET_EXPRESSION_TEXT;
+ default:
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+ }
+ if (baseClass == Operator.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.OPERATOR___GET_SYMBOL:
+ return RBASoundPackage.MUTE_LOWER_PRIORITY___GET_SYMBOL;
+ default:
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+ }
+ if (baseClass == SugarExpression.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.SUGAR_EXPRESSION___CAN_EXPAND:
+ return RBASoundPackage.MUTE_LOWER_PRIORITY___CAN_EXPAND;
+ case RBACorePackage.SUGAR_EXPRESSION___GET_EXPANDED:
+ return RBASoundPackage.MUTE_LOWER_PRIORITY___GET_EXPANDED;
+ default:
+ return -1;
+ }
+ }
+ if (baseClass == SugarExpressionBase.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.SUGAR_EXPRESSION_BASE___CAN_EXPAND:
+ return RBASoundPackage.MUTE_LOWER_PRIORITY___CAN_EXPAND;
+ default:
+ return -1;
+ }
+ }
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBASoundPackage.MUTE_LOWER_PRIORITY___GET_SYMBOL:
+ return getSymbol();
+ case RBASoundPackage.MUTE_LOWER_PRIORITY___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ case RBASoundPackage.MUTE_LOWER_PRIORITY___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ case RBASoundPackage.MUTE_LOWER_PRIORITY___CAN_EXPAND:
+ return canExpand();
+ case RBASoundPackage.MUTE_LOWER_PRIORITY___GET_EXPANDED:
+ return getExpanded();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // MuteLowerPriorityImpl
diff --git a/rba.model.sound/src/rba/sound/impl/OutputtingSoundImpl.java b/rba.model.sound/src/rba/sound/impl/OutputtingSoundImpl.java
new file mode 100644
index 0000000..f26c66c
--- /dev/null
+++ b/rba.model.sound/src/rba/sound/impl/OutputtingSoundImpl.java
@@ -0,0 +1,70 @@
+/**
+ */
+package rba.sound.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.ExpressionType;
+
+import rba.sound.OutputtingSound;
+import rba.sound.RBASoundPackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Outputting Sound</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class OutputtingSoundImpl extends ZoneOperatorImpl implements OutputtingSound {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected OutputtingSoundImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBASoundPackage.Literals.OUTPUTTING_SOUND;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return ".outputtingSound()";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return ExpressionType.SOUND;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBASoundPackage.OUTPUTTING_SOUND___GET_SYMBOL:
+ return getSymbol();
+ case RBASoundPackage.OUTPUTTING_SOUND___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // OutputtingSoundImpl
diff --git a/rba.model.sound/src/rba/sound/impl/RBASoundFactoryImpl.java b/rba.model.sound/src/rba/sound/impl/RBASoundFactoryImpl.java
new file mode 100644
index 0000000..b92d85d
--- /dev/null
+++ b/rba.model.sound/src/rba/sound/impl/RBASoundFactoryImpl.java
@@ -0,0 +1,253 @@
+/**
+ */
+package rba.sound.impl;
+
+import org.eclipse.emf.ecore.EClass;
+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 rba.sound.*;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model <b>Factory</b>. <!-- end-user-doc -->
+ * @generated
+ */
+public class RBASoundFactoryImpl extends EFactoryImpl implements RBASoundFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public static RBASoundFactory init() {
+ try {
+ RBASoundFactory theRBASoundFactory = (RBASoundFactory) EPackage.Registry.INSTANCE
+ .getEFactory(RBASoundPackage.eNS_URI);
+ if (theRBASoundFactory != null) {
+ return theRBASoundFactory;
+ }
+ } catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new RBASoundFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public RBASoundFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case RBASoundPackage.SOUND_CONTENT:
+ return createSoundContent();
+ case RBASoundPackage.SOUND_CONTENT_SET:
+ return createSoundContentSet();
+ case RBASoundPackage.SOUND_CONTENT_STATE:
+ return createSoundContentState();
+ case RBASoundPackage.ZONE:
+ return createZone();
+ case RBASoundPackage.ZONE_SET:
+ return createZoneSet();
+ case RBASoundPackage.IS_SOUNDING:
+ return createIsSounding();
+ case RBASoundPackage.IS_OUTPUTTED:
+ return createIsOutputted();
+ case RBASoundPackage.IS_MUTED:
+ return createIsMuted();
+ case RBASoundPackage.IS_ATTENUATED:
+ return createIsAttenuated();
+ case RBASoundPackage.OUTPUTTING_SOUND:
+ return createOutputtingSound();
+ case RBASoundPackage.ALL_INSTANCE_OF_ZONE:
+ return createAllInstanceOfZone();
+ case RBASoundPackage.ALL_INSTANCE_OF_SOUND_CONTENT:
+ return createAllInstanceOfSoundContent();
+ case RBASoundPackage.IS_OUTPUTTED_ON:
+ return createIsOutputtedOn();
+ case RBASoundPackage.IS_CHANGED_OUTPUT:
+ return createIsChangedOutput();
+ case RBASoundPackage.IS_TRANSLATED_SOUND_TO:
+ return createIsTranslatedSoundTo();
+ case RBASoundPackage.MUTE_LOWER_PRIORITY:
+ return createMuteLowerPriority();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public SoundContent createSoundContent() {
+ SoundContentImpl soundContent = new SoundContentImpl();
+ return soundContent;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public SoundContentSet createSoundContentSet() {
+ SoundContentSetImpl soundContentSet = new SoundContentSetImpl();
+ return soundContentSet;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public SoundContentState createSoundContentState() {
+ SoundContentStateImpl soundContentState = new SoundContentStateImpl();
+ return soundContentState;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public Zone createZone() {
+ ZoneImpl zone = new ZoneImpl();
+ return zone;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ZoneSet createZoneSet() {
+ ZoneSetImpl zoneSet = new ZoneSetImpl();
+ return zoneSet;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsSounding createIsSounding() {
+ IsSoundingImpl isSounding = new IsSoundingImpl();
+ return isSounding;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsOutputted createIsOutputted() {
+ IsOutputtedImpl isOutputted = new IsOutputtedImpl();
+ return isOutputted;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsMuted createIsMuted() {
+ IsMutedImpl isMuted = new IsMutedImpl();
+ return isMuted;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsAttenuated createIsAttenuated() {
+ IsAttenuatedImpl isAttenuated = new IsAttenuatedImpl();
+ return isAttenuated;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public OutputtingSound createOutputtingSound() {
+ OutputtingSoundImpl outputtingSound = new OutputtingSoundImpl();
+ return outputtingSound;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public AllInstanceOfZone createAllInstanceOfZone() {
+ AllInstanceOfZoneImpl allInstanceOfZone = new AllInstanceOfZoneImpl();
+ return allInstanceOfZone;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public AllInstanceOfSoundContent createAllInstanceOfSoundContent() {
+ AllInstanceOfSoundContentImpl allInstanceOfSoundContent = new AllInstanceOfSoundContentImpl();
+ return allInstanceOfSoundContent;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsOutputtedOn createIsOutputtedOn() {
+ IsOutputtedOnImpl isOutputtedOn = new IsOutputtedOnImpl();
+ return isOutputtedOn;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsChangedOutput createIsChangedOutput() {
+ IsChangedOutputImpl isChangedOutput = new IsChangedOutputImpl();
+ return isChangedOutput;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsTranslatedSoundTo createIsTranslatedSoundTo() {
+ IsTranslatedSoundToImpl isTranslatedSoundTo = new IsTranslatedSoundToImpl();
+ return isTranslatedSoundTo;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public MuteLowerPriority createMuteLowerPriority() {
+ MuteLowerPriorityImpl muteLowerPriority = new MuteLowerPriorityImpl();
+ return muteLowerPriority;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public RBASoundPackage getRBASoundPackage() {
+ return (RBASoundPackage) getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static RBASoundPackage getPackage() {
+ return RBASoundPackage.eINSTANCE;
+ }
+
+} // RBASoundFactoryImpl
diff --git a/rba.model.sound/src/rba/sound/impl/RBASoundPackageImpl.java b/rba.model.sound/src/rba/sound/impl/RBASoundPackageImpl.java
new file mode 100644
index 0000000..b33cb64
--- /dev/null
+++ b/rba.model.sound/src/rba/sound/impl/RBASoundPackageImpl.java
@@ -0,0 +1,925 @@
+/**
+ */
+package rba.sound.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import rba.core.RBACorePackage;
+import rba.sound.AllInstanceOfSoundContent;
+import rba.sound.AllInstanceOfZone;
+import rba.sound.IsAttenuated;
+import rba.sound.IsChangedOutput;
+import rba.sound.IsMuted;
+import rba.sound.IsOutputted;
+import rba.sound.IsOutputtedOn;
+import rba.sound.IsSounding;
+import rba.sound.IsTranslatedSoundTo;
+import rba.sound.MuteLowerPriority;
+import rba.sound.OutputtingSound;
+import rba.sound.RBASoundFactory;
+import rba.sound.RBASoundPackage;
+import rba.sound.SoundContent;
+import rba.sound.SoundContentOperator;
+import rba.sound.SoundContentSet;
+import rba.sound.SoundContentState;
+import rba.sound.Zone;
+import rba.sound.ZoneOperator;
+import rba.sound.ZoneSet;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model <b>Package</b>. <!-- end-user-doc -->
+ * @generated
+ */
+public class RBASoundPackageImpl extends EPackageImpl implements RBASoundPackage {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass soundContentEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass soundContentSetEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass soundContentStateEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass zoneEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass zoneSetEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass soundContentOperatorEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass isSoundingEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass zoneOperatorEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass isOutputtedEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass isMutedEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass isAttenuatedEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass outputtingSoundEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass allInstanceOfZoneEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass allInstanceOfSoundContentEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass isOutputtedOnEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass isChangedOutputEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass isTranslatedSoundToEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass muteLowerPriorityEClass = 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 rba.sound.RBASoundPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private RBASoundPackageImpl() {
+ super(eNS_URI, RBASoundFactory.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 RBASoundPackage#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 RBASoundPackage init() {
+ if (isInited)
+ return (RBASoundPackage) EPackage.Registry.INSTANCE.getEPackage(RBASoundPackage.eNS_URI);
+
+ // Obtain or create and register package
+ RBASoundPackageImpl theRBASoundPackage = (RBASoundPackageImpl) (EPackage.Registry.INSTANCE
+ .get(eNS_URI) instanceof RBASoundPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI)
+ : new RBASoundPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ RBACorePackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ theRBASoundPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theRBASoundPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theRBASoundPackage.freeze();
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(RBASoundPackage.eNS_URI, theRBASoundPackage);
+ return theRBASoundPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSoundContent() {
+ return soundContentEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getSoundContent__GetExpressionType() {
+ return soundContentEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSoundContentSet() {
+ return soundContentSetEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getSoundContentSet__GetExpressionType() {
+ return soundContentSetEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSoundContentState() {
+ return soundContentStateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getSoundContentState__GetExpressionType() {
+ return soundContentStateEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getZone() {
+ return zoneEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getZone_Attenuate() {
+ return (EReference) zoneEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getZone__GetExpressionType() {
+ return zoneEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getZoneSet() {
+ return zoneSetEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getZoneSet__GetExpressionType() {
+ return zoneSetEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSoundContentOperator() {
+ return soundContentOperatorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getSoundContentOperator__GetUnderlyingType() {
+ return soundContentOperatorEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getIsSounding() {
+ return isSoundingEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIsSounding__GetSymbol() {
+ return isSoundingEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getZoneOperator() {
+ return zoneOperatorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getZoneOperator__GetExpressionText() {
+ return zoneOperatorEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getIsOutputted() {
+ return isOutputtedEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIsOutputted__GetSymbol() {
+ return isOutputtedEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIsOutputted__GetUnderlyingType() {
+ return isOutputtedEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getIsMuted() {
+ return isMutedEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIsMuted__GetSymbol() {
+ return isMutedEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIsMuted__GetUnderlyingType() {
+ return isMutedEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getIsAttenuated() {
+ return isAttenuatedEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIsAttenuated__GetSymbol() {
+ return isAttenuatedEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIsAttenuated__GetUnderlyingType() {
+ return isAttenuatedEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getOutputtingSound() {
+ return outputtingSoundEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getOutputtingSound__GetSymbol() {
+ return outputtingSoundEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getOutputtingSound__GetUnderlyingType() {
+ return outputtingSoundEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAllInstanceOfZone() {
+ return allInstanceOfZoneEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getAllInstanceOfZone__GetExpressionText() {
+ return allInstanceOfZoneEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getAllInstanceOfZone__GetUnderlyingType() {
+ return allInstanceOfZoneEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAllInstanceOfSoundContent() {
+ return allInstanceOfSoundContentEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getAllInstanceOfSoundContent__GetExpressionText() {
+ return allInstanceOfSoundContentEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getAllInstanceOfSoundContent__GetUnderlyingType() {
+ return allInstanceOfSoundContentEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getIsOutputtedOn() {
+ return isOutputtedOnEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIsOutputtedOn__GetSymbol() {
+ return isOutputtedOnEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIsOutputtedOn__GetUnderlyingType() {
+ return isOutputtedOnEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIsOutputtedOn__GetExpressionText() {
+ return isOutputtedOnEClass.getEOperations().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getIsChangedOutput() {
+ return isChangedOutputEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIsChangedOutput__GetSymbol() {
+ return isChangedOutputEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIsChangedOutput__GetUnderlyingType() {
+ return isChangedOutputEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getIsTranslatedSoundTo() {
+ return isTranslatedSoundToEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIsTranslatedSoundTo__GetSymbol() {
+ return isTranslatedSoundToEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIsTranslatedSoundTo__GetUnderlyingType() {
+ return isTranslatedSoundToEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIsTranslatedSoundTo__GetExpressionText() {
+ return isTranslatedSoundToEClass.getEOperations().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getMuteLowerPriority() {
+ return muteLowerPriorityEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getMuteLowerPriority__GetSymbol() {
+ return muteLowerPriorityEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getMuteLowerPriority__GetUnderlyingType() {
+ return muteLowerPriorityEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getMuteLowerPriority__GetExpressionText() {
+ return muteLowerPriorityEClass.getEOperations().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public RBASoundFactory getRBASoundFactory() {
+ return (RBASoundFactory) 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
+ soundContentEClass = createEClass(SOUND_CONTENT);
+ createEOperation(soundContentEClass, SOUND_CONTENT___GET_EXPRESSION_TYPE);
+
+ soundContentSetEClass = createEClass(SOUND_CONTENT_SET);
+ createEOperation(soundContentSetEClass, SOUND_CONTENT_SET___GET_EXPRESSION_TYPE);
+
+ soundContentStateEClass = createEClass(SOUND_CONTENT_STATE);
+ createEOperation(soundContentStateEClass, SOUND_CONTENT_STATE___GET_EXPRESSION_TYPE);
+
+ zoneEClass = createEClass(ZONE);
+ createEReference(zoneEClass, ZONE__ATTENUATE);
+ createEOperation(zoneEClass, ZONE___GET_EXPRESSION_TYPE);
+
+ zoneSetEClass = createEClass(ZONE_SET);
+ createEOperation(zoneSetEClass, ZONE_SET___GET_EXPRESSION_TYPE);
+
+ soundContentOperatorEClass = createEClass(SOUND_CONTENT_OPERATOR);
+ createEOperation(soundContentOperatorEClass, SOUND_CONTENT_OPERATOR___GET_UNDERLYING_TYPE);
+
+ isSoundingEClass = createEClass(IS_SOUNDING);
+ createEOperation(isSoundingEClass, IS_SOUNDING___GET_SYMBOL);
+
+ zoneOperatorEClass = createEClass(ZONE_OPERATOR);
+ createEOperation(zoneOperatorEClass, ZONE_OPERATOR___GET_EXPRESSION_TEXT);
+
+ isOutputtedEClass = createEClass(IS_OUTPUTTED);
+ createEOperation(isOutputtedEClass, IS_OUTPUTTED___GET_SYMBOL);
+ createEOperation(isOutputtedEClass, IS_OUTPUTTED___GET_UNDERLYING_TYPE);
+
+ isMutedEClass = createEClass(IS_MUTED);
+ createEOperation(isMutedEClass, IS_MUTED___GET_SYMBOL);
+ createEOperation(isMutedEClass, IS_MUTED___GET_UNDERLYING_TYPE);
+
+ isAttenuatedEClass = createEClass(IS_ATTENUATED);
+ createEOperation(isAttenuatedEClass, IS_ATTENUATED___GET_SYMBOL);
+ createEOperation(isAttenuatedEClass, IS_ATTENUATED___GET_UNDERLYING_TYPE);
+
+ outputtingSoundEClass = createEClass(OUTPUTTING_SOUND);
+ createEOperation(outputtingSoundEClass, OUTPUTTING_SOUND___GET_SYMBOL);
+ createEOperation(outputtingSoundEClass, OUTPUTTING_SOUND___GET_UNDERLYING_TYPE);
+
+ allInstanceOfZoneEClass = createEClass(ALL_INSTANCE_OF_ZONE);
+ createEOperation(allInstanceOfZoneEClass, ALL_INSTANCE_OF_ZONE___GET_EXPRESSION_TEXT);
+ createEOperation(allInstanceOfZoneEClass, ALL_INSTANCE_OF_ZONE___GET_UNDERLYING_TYPE);
+
+ allInstanceOfSoundContentEClass = createEClass(ALL_INSTANCE_OF_SOUND_CONTENT);
+ createEOperation(allInstanceOfSoundContentEClass, ALL_INSTANCE_OF_SOUND_CONTENT___GET_EXPRESSION_TEXT);
+ createEOperation(allInstanceOfSoundContentEClass, ALL_INSTANCE_OF_SOUND_CONTENT___GET_UNDERLYING_TYPE);
+
+ isOutputtedOnEClass = createEClass(IS_OUTPUTTED_ON);
+ createEOperation(isOutputtedOnEClass, IS_OUTPUTTED_ON___GET_SYMBOL);
+ createEOperation(isOutputtedOnEClass, IS_OUTPUTTED_ON___GET_UNDERLYING_TYPE);
+ createEOperation(isOutputtedOnEClass, IS_OUTPUTTED_ON___GET_EXPRESSION_TEXT);
+
+ isChangedOutputEClass = createEClass(IS_CHANGED_OUTPUT);
+ createEOperation(isChangedOutputEClass, IS_CHANGED_OUTPUT___GET_SYMBOL);
+ createEOperation(isChangedOutputEClass, IS_CHANGED_OUTPUT___GET_UNDERLYING_TYPE);
+
+ isTranslatedSoundToEClass = createEClass(IS_TRANSLATED_SOUND_TO);
+ createEOperation(isTranslatedSoundToEClass, IS_TRANSLATED_SOUND_TO___GET_SYMBOL);
+ createEOperation(isTranslatedSoundToEClass, IS_TRANSLATED_SOUND_TO___GET_UNDERLYING_TYPE);
+ createEOperation(isTranslatedSoundToEClass, IS_TRANSLATED_SOUND_TO___GET_EXPRESSION_TEXT);
+
+ muteLowerPriorityEClass = createEClass(MUTE_LOWER_PRIORITY);
+ createEOperation(muteLowerPriorityEClass, MUTE_LOWER_PRIORITY___GET_SYMBOL);
+ createEOperation(muteLowerPriorityEClass, MUTE_LOWER_PRIORITY___GET_UNDERLYING_TYPE);
+ createEOperation(muteLowerPriorityEClass, MUTE_LOWER_PRIORITY___GET_EXPRESSION_TEXT);
+ }
+
+ /**
+ * <!-- 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);
+
+ // Obtain other dependent packages
+ RBACorePackage theRBACorePackage = (RBACorePackage) EPackage.Registry.INSTANCE
+ .getEPackage(RBACorePackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ soundContentEClass.getESuperTypes().add(theRBACorePackage.getContent());
+ soundContentSetEClass.getESuperTypes().add(theRBACorePackage.getContentSet());
+ soundContentStateEClass.getESuperTypes().add(theRBACorePackage.getContentState());
+ zoneEClass.getESuperTypes().add(theRBACorePackage.getAllocatable());
+ zoneSetEClass.getESuperTypes().add(theRBACorePackage.getAllocatableSet());
+ soundContentOperatorEClass.getESuperTypes().add(theRBACorePackage.getContentOperator());
+ isSoundingEClass.getESuperTypes().add(this.getSoundContentOperator());
+ zoneOperatorEClass.getESuperTypes().add(theRBACorePackage.getOperator());
+ isOutputtedEClass.getESuperTypes().add(this.getZoneOperator());
+ isMutedEClass.getESuperTypes().add(this.getZoneOperator());
+ isAttenuatedEClass.getESuperTypes().add(this.getZoneOperator());
+ outputtingSoundEClass.getESuperTypes().add(this.getZoneOperator());
+ allInstanceOfZoneEClass.getESuperTypes().add(theRBACorePackage.getSetExpression());
+ allInstanceOfSoundContentEClass.getESuperTypes().add(theRBACorePackage.getSetExpression());
+ isOutputtedOnEClass.getESuperTypes().add(this.getSoundContentOperator());
+ isOutputtedOnEClass.getESuperTypes().add(theRBACorePackage.getSugarExpressionBase());
+ isChangedOutputEClass.getESuperTypes().add(this.getZoneOperator());
+ isChangedOutputEClass.getESuperTypes().add(theRBACorePackage.getSugarExpressionBase());
+ isTranslatedSoundToEClass.getESuperTypes().add(this.getZoneOperator());
+ isTranslatedSoundToEClass.getESuperTypes().add(theRBACorePackage.getSugarExpressionBase());
+ muteLowerPriorityEClass.getESuperTypes().add(theRBACorePackage.getOperator());
+ muteLowerPriorityEClass.getESuperTypes().add(theRBACorePackage.getSugarExpressionBase());
+
+ // Initialize classes, features, and operations; add parameters
+ initEClass(soundContentEClass, SoundContent.class, "SoundContent", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getSoundContent__GetExpressionType(), theRBACorePackage.getExpressionType(), "getExpressionType",
+ 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(soundContentSetEClass, SoundContentSet.class, "SoundContentSet", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getSoundContentSet__GetExpressionType(), theRBACorePackage.getExpressionType(),
+ "getExpressionType", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(soundContentStateEClass, SoundContentState.class, "SoundContentState", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getSoundContentState__GetExpressionType(), theRBACorePackage.getExpressionType(),
+ "getExpressionType", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(zoneEClass, Zone.class, "Zone", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getZone_Attenuate(), theRBACorePackage.getExpression(), null, "attenuate", null, 0, 1,
+ Zone.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEOperation(getZone__GetExpressionType(), theRBACorePackage.getExpressionType(), "getExpressionType", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(zoneSetEClass, ZoneSet.class, "ZoneSet", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getZoneSet__GetExpressionType(), theRBACorePackage.getExpressionType(), "getExpressionType", 0,
+ 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(soundContentOperatorEClass, SoundContentOperator.class, "SoundContentOperator", IS_ABSTRACT,
+ !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getSoundContentOperator__GetUnderlyingType(), theRBACorePackage.getExpressionType(),
+ "getUnderlyingType", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(isSoundingEClass, IsSounding.class, "IsSounding", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getIsSounding__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(zoneOperatorEClass, ZoneOperator.class, "ZoneOperator", IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getZoneOperator__GetExpressionText(), ecorePackage.getEString(), "getExpressionText", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(isOutputtedEClass, IsOutputted.class, "IsOutputted", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getIsOutputted__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEOperation(getIsOutputted__GetUnderlyingType(), theRBACorePackage.getExpressionType(), "getUnderlyingType",
+ 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(isMutedEClass, IsMuted.class, "IsMuted", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getIsMuted__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getIsMuted__GetUnderlyingType(), theRBACorePackage.getExpressionType(), "getUnderlyingType", 0,
+ 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(isAttenuatedEClass, IsAttenuated.class, "IsAttenuated", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getIsAttenuated__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEOperation(getIsAttenuated__GetUnderlyingType(), theRBACorePackage.getExpressionType(), "getUnderlyingType",
+ 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(outputtingSoundEClass, OutputtingSound.class, "OutputtingSound", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getOutputtingSound__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEOperation(getOutputtingSound__GetUnderlyingType(), theRBACorePackage.getExpressionType(),
+ "getUnderlyingType", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(allInstanceOfZoneEClass, AllInstanceOfZone.class, "AllInstanceOfZone", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getAllInstanceOfZone__GetExpressionText(), ecorePackage.getEString(), "getExpressionText", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getAllInstanceOfZone__GetUnderlyingType(), theRBACorePackage.getExpressionType(),
+ "getUnderlyingType", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(allInstanceOfSoundContentEClass, AllInstanceOfSoundContent.class, "AllInstanceOfSoundContent",
+ !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getAllInstanceOfSoundContent__GetExpressionText(), ecorePackage.getEString(),
+ "getExpressionText", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getAllInstanceOfSoundContent__GetUnderlyingType(), theRBACorePackage.getExpressionType(),
+ "getUnderlyingType", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(isOutputtedOnEClass, IsOutputtedOn.class, "IsOutputtedOn", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getIsOutputtedOn__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEOperation(getIsOutputtedOn__GetUnderlyingType(), theRBACorePackage.getExpressionType(),
+ "getUnderlyingType", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getIsOutputtedOn__GetExpressionText(), ecorePackage.getEString(), "getExpressionText", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(isChangedOutputEClass, IsChangedOutput.class, "IsChangedOutput", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getIsChangedOutput__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEOperation(getIsChangedOutput__GetUnderlyingType(), theRBACorePackage.getExpressionType(),
+ "getUnderlyingType", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(isTranslatedSoundToEClass, IsTranslatedSoundTo.class, "IsTranslatedSoundTo", !IS_ABSTRACT,
+ !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getIsTranslatedSoundTo__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEOperation(getIsTranslatedSoundTo__GetUnderlyingType(), theRBACorePackage.getExpressionType(),
+ "getUnderlyingType", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getIsTranslatedSoundTo__GetExpressionText(), ecorePackage.getEString(), "getExpressionText", 0,
+ 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(muteLowerPriorityEClass, MuteLowerPriority.class, "MuteLowerPriority", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getMuteLowerPriority__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEOperation(getMuteLowerPriority__GetUnderlyingType(), theRBACorePackage.getExpressionType(),
+ "getUnderlyingType", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getMuteLowerPriority__GetExpressionText(), ecorePackage.getEString(), "getExpressionText", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ // Create resource
+ createResource(eNS_URI);
+
+ // Create annotations
+ // http://www.eclipse.org/OCL/Import
+ createImportAnnotations();
+ }
+
+ /**
+ * Initializes the annotations for <b>http://www.eclipse.org/OCL/Import</b>.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createImportAnnotations() {
+ String source = "http://www.eclipse.org/OCL/Import";
+ addAnnotation(this, source, new String[] { "RbaCore", "../../rba.model.core/model/rbacore.ecore#/" });
+ }
+
+} // RBASoundPackageImpl
diff --git a/rba.model.sound/src/rba/sound/impl/SoundContentImpl.java b/rba.model.sound/src/rba/sound/impl/SoundContentImpl.java
new file mode 100644
index 0000000..4c8a4bb
--- /dev/null
+++ b/rba.model.sound/src/rba/sound/impl/SoundContentImpl.java
@@ -0,0 +1,60 @@
+/**
+ */
+package rba.sound.impl;
+
+import java.lang.reflect.InvocationTargetException;
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import rba.core.ExpressionType;
+
+import rba.core.impl.ContentImpl;
+
+import rba.sound.RBASoundPackage;
+import rba.sound.SoundContent;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Sound Content</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class SoundContentImpl extends ContentImpl implements SoundContent {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected SoundContentImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBASoundPackage.Literals.SOUND_CONTENT;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getExpressionType() {
+ return ExpressionType.SOUND;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBASoundPackage.SOUND_CONTENT___GET_EXPRESSION_TYPE:
+ return getExpressionType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // SoundContentImpl
diff --git a/rba.model.sound/src/rba/sound/impl/SoundContentOperatorImpl.java b/rba.model.sound/src/rba/sound/impl/SoundContentOperatorImpl.java
new file mode 100644
index 0000000..77b78d3
--- /dev/null
+++ b/rba.model.sound/src/rba/sound/impl/SoundContentOperatorImpl.java
@@ -0,0 +1,62 @@
+/**
+ */
+package rba.sound.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.ExpressionType;
+
+import rba.core.impl.ContentOperatorImpl;
+
+import rba.sound.RBASoundPackage;
+import rba.sound.SoundContentOperator;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Sound Content Operator</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public abstract class SoundContentOperatorImpl extends ContentOperatorImpl implements SoundContentOperator {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected SoundContentOperatorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBASoundPackage.Literals.SOUND_CONTENT_OPERATOR;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return ExpressionType.BOOLEAN;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBASoundPackage.SOUND_CONTENT_OPERATOR___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // SoundContentOperatorImpl
diff --git a/rba.model.sound/src/rba/sound/impl/SoundContentSetImpl.java b/rba.model.sound/src/rba/sound/impl/SoundContentSetImpl.java
new file mode 100644
index 0000000..a366e54
--- /dev/null
+++ b/rba.model.sound/src/rba/sound/impl/SoundContentSetImpl.java
@@ -0,0 +1,62 @@
+/**
+ */
+package rba.sound.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.ExpressionType;
+
+import rba.core.impl.ContentSetImpl;
+
+import rba.sound.RBASoundPackage;
+import rba.sound.SoundContentSet;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Sound Content Set</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class SoundContentSetImpl extends ContentSetImpl implements SoundContentSet {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected SoundContentSetImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBASoundPackage.Literals.SOUND_CONTENT_SET;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getExpressionType() {
+ return ExpressionType.SET_OF_SOUND;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBASoundPackage.SOUND_CONTENT_SET___GET_EXPRESSION_TYPE:
+ return getExpressionType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // SoundContentSetImpl
diff --git a/rba.model.sound/src/rba/sound/impl/SoundContentStateImpl.java b/rba.model.sound/src/rba/sound/impl/SoundContentStateImpl.java
new file mode 100644
index 0000000..44d5ea4
--- /dev/null
+++ b/rba.model.sound/src/rba/sound/impl/SoundContentStateImpl.java
@@ -0,0 +1,62 @@
+/**
+ */
+package rba.sound.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.ExpressionType;
+
+import rba.core.impl.ContentStateImpl;
+
+import rba.sound.RBASoundPackage;
+import rba.sound.SoundContentState;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Sound Content State</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class SoundContentStateImpl extends ContentStateImpl implements SoundContentState {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected SoundContentStateImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBASoundPackage.Literals.SOUND_CONTENT_STATE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getExpressionType() {
+ return ExpressionType.CONTENT_STATE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBASoundPackage.SOUND_CONTENT_STATE___GET_EXPRESSION_TYPE:
+ return getExpressionType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // SoundContentStateImpl
diff --git a/rba.model.sound/src/rba/sound/impl/ZoneImpl.java b/rba.model.sound/src/rba/sound/impl/ZoneImpl.java
new file mode 100644
index 0000000..b86ec92
--- /dev/null
+++ b/rba.model.sound/src/rba/sound/impl/ZoneImpl.java
@@ -0,0 +1,196 @@
+/**
+ */
+package rba.sound.impl;
+
+import java.lang.reflect.InvocationTargetException;
+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 rba.core.Expression;
+import rba.core.ExpressionType;
+import rba.core.impl.AllocatableImpl;
+import rba.sound.RBASoundPackage;
+import rba.sound.Zone;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Zone</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link rba.sound.impl.ZoneImpl#getAttenuate <em>Attenuate</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ZoneImpl extends AllocatableImpl implements Zone {
+ /**
+ * The cached value of the '{@link #getAttenuate() <em>Attenuate</em>}' containment reference.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @see #getAttenuate()
+ * @generated
+ * @ordered
+ */
+ protected Expression attenuate;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected ZoneImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBASoundPackage.Literals.ZONE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public Expression getAttenuate() {
+ return attenuate;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetAttenuate(Expression newAttenuate, NotificationChain msgs) {
+ Expression oldAttenuate = attenuate;
+ attenuate = newAttenuate;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
+ RBASoundPackage.ZONE__ATTENUATE, oldAttenuate, newAttenuate);
+ if (msgs == null)
+ msgs = notification;
+ else
+ msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAttenuate(Expression newAttenuate) {
+ if (newAttenuate != attenuate) {
+ NotificationChain msgs = null;
+ if (attenuate != null)
+ msgs = ((InternalEObject) attenuate).eInverseRemove(this,
+ EOPPOSITE_FEATURE_BASE - RBASoundPackage.ZONE__ATTENUATE, null, msgs);
+ if (newAttenuate != null)
+ msgs = ((InternalEObject) newAttenuate).eInverseAdd(this,
+ EOPPOSITE_FEATURE_BASE - RBASoundPackage.ZONE__ATTENUATE, null, msgs);
+ msgs = basicSetAttenuate(newAttenuate, msgs);
+ if (msgs != null)
+ msgs.dispatch();
+ } else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RBASoundPackage.ZONE__ATTENUATE, newAttenuate,
+ newAttenuate));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getExpressionType() {
+ return ExpressionType.ZONE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case RBASoundPackage.ZONE__ATTENUATE:
+ return basicSetAttenuate(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 RBASoundPackage.ZONE__ATTENUATE:
+ return getAttenuate();
+ }
+ 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 RBASoundPackage.ZONE__ATTENUATE:
+ setAttenuate((Expression) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case RBASoundPackage.ZONE__ATTENUATE:
+ setAttenuate((Expression) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case RBASoundPackage.ZONE__ATTENUATE:
+ return attenuate != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBASoundPackage.ZONE___GET_EXPRESSION_TYPE:
+ return getExpressionType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // ZoneImpl
diff --git a/rba.model.sound/src/rba/sound/impl/ZoneOperatorImpl.java b/rba.model.sound/src/rba/sound/impl/ZoneOperatorImpl.java
new file mode 100644
index 0000000..4afd759
--- /dev/null
+++ b/rba.model.sound/src/rba/sound/impl/ZoneOperatorImpl.java
@@ -0,0 +1,64 @@
+/**
+ */
+package rba.sound.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.impl.OperatorImpl;
+
+import rba.sound.RBASoundPackage;
+import rba.sound.ZoneOperator;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Zone Operator</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public abstract class ZoneOperatorImpl extends OperatorImpl implements ZoneOperator {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected ZoneOperatorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBASoundPackage.Literals.ZONE_OPERATOR;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ StringBuffer expressionText = new StringBuffer();
+ EList<rba.core.Expression> expressions = getOperand();
+ expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : "[Invalid_Expression]");
+ expressionText.append(getSymbol());
+ return expressionText.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBASoundPackage.ZONE_OPERATOR___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // ZoneOperatorImpl
diff --git a/rba.model.sound/src/rba/sound/impl/ZoneSetImpl.java b/rba.model.sound/src/rba/sound/impl/ZoneSetImpl.java
new file mode 100644
index 0000000..35180ed
--- /dev/null
+++ b/rba.model.sound/src/rba/sound/impl/ZoneSetImpl.java
@@ -0,0 +1,59 @@
+/**
+ */
+package rba.sound.impl;
+
+import java.lang.reflect.InvocationTargetException;
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import rba.core.ExpressionType;
+
+import rba.core.impl.AllocatableSetImpl;
+import rba.sound.RBASoundPackage;
+import rba.sound.ZoneSet;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Zone Set</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class ZoneSetImpl extends AllocatableSetImpl implements ZoneSet {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected ZoneSetImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBASoundPackage.Literals.ZONE_SET;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getExpressionType() {
+ return ExpressionType.SET_OF_ZONE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBASoundPackage.ZONE_SET___GET_EXPRESSION_TYPE:
+ return getExpressionType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // ZoneSetImpl
diff --git a/rba.model.sound/src/rba/sound/util/RBASoundAdapterFactory.java b/rba.model.sound/src/rba/sound/util/RBASoundAdapterFactory.java
new file mode 100644
index 0000000..d5954cc
--- /dev/null
+++ b/rba.model.sound/src/rba/sound/util/RBASoundAdapterFactory.java
@@ -0,0 +1,723 @@
+/**
+ */
+package rba.sound.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 rba.core.AbstractAllocatable;
+import rba.core.AbstractContent;
+import rba.core.Allocatable;
+import rba.core.AllocatableSet;
+import rba.core.Content;
+import rba.core.ContentOperator;
+import rba.core.ContentSet;
+import rba.core.ContentState;
+import rba.core.Expression;
+import rba.core.ModelElement;
+import rba.core.NamedElement;
+import rba.core.Operator;
+import rba.core.PackagableElement;
+import rba.core.RuleObject;
+import rba.core.SetExpression;
+
+import rba.core.SugarExpression;
+import rba.core.SugarExpressionBase;
+import rba.sound.*;
+
+/**
+ * <!-- 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 rba.sound.RBASoundPackage
+ * @generated
+ */
+public class RBASoundAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected static RBASoundPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public RBASoundAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = RBASoundPackage.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 RBASoundSwitch<Adapter> modelSwitch = new RBASoundSwitch<Adapter>() {
+ @Override
+ public Adapter caseSoundContent(SoundContent object) {
+ return createSoundContentAdapter();
+ }
+
+ @Override
+ public Adapter caseSoundContentSet(SoundContentSet object) {
+ return createSoundContentSetAdapter();
+ }
+
+ @Override
+ public Adapter caseSoundContentState(SoundContentState object) {
+ return createSoundContentStateAdapter();
+ }
+
+ @Override
+ public Adapter caseZone(Zone object) {
+ return createZoneAdapter();
+ }
+
+ @Override
+ public Adapter caseZoneSet(ZoneSet object) {
+ return createZoneSetAdapter();
+ }
+
+ @Override
+ public Adapter caseSoundContentOperator(SoundContentOperator object) {
+ return createSoundContentOperatorAdapter();
+ }
+
+ @Override
+ public Adapter caseIsSounding(IsSounding object) {
+ return createIsSoundingAdapter();
+ }
+
+ @Override
+ public Adapter caseZoneOperator(ZoneOperator object) {
+ return createZoneOperatorAdapter();
+ }
+
+ @Override
+ public Adapter caseIsOutputted(IsOutputted object) {
+ return createIsOutputtedAdapter();
+ }
+
+ @Override
+ public Adapter caseIsMuted(IsMuted object) {
+ return createIsMutedAdapter();
+ }
+
+ @Override
+ public Adapter caseIsAttenuated(IsAttenuated object) {
+ return createIsAttenuatedAdapter();
+ }
+
+ @Override
+ public Adapter caseOutputtingSound(OutputtingSound object) {
+ return createOutputtingSoundAdapter();
+ }
+
+ @Override
+ public Adapter caseAllInstanceOfZone(AllInstanceOfZone object) {
+ return createAllInstanceOfZoneAdapter();
+ }
+
+ @Override
+ public Adapter caseAllInstanceOfSoundContent(AllInstanceOfSoundContent object) {
+ return createAllInstanceOfSoundContentAdapter();
+ }
+
+ @Override
+ public Adapter caseIsOutputtedOn(IsOutputtedOn object) {
+ return createIsOutputtedOnAdapter();
+ }
+
+ @Override
+ public Adapter caseIsChangedOutput(IsChangedOutput object) {
+ return createIsChangedOutputAdapter();
+ }
+
+ @Override
+ public Adapter caseIsTranslatedSoundTo(IsTranslatedSoundTo object) {
+ return createIsTranslatedSoundToAdapter();
+ }
+
+ @Override
+ public Adapter caseMuteLowerPriority(MuteLowerPriority object) {
+ return createMuteLowerPriorityAdapter();
+ }
+
+ @Override
+ public Adapter caseModelElement(ModelElement object) {
+ return createModelElementAdapter();
+ }
+
+ @Override
+ public Adapter caseNamedElement(NamedElement object) {
+ return createNamedElementAdapter();
+ }
+
+ @Override
+ public Adapter casePackagableElement(PackagableElement object) {
+ return createPackagableElementAdapter();
+ }
+
+ @Override
+ public Adapter caseRuleObject(RuleObject object) {
+ return createRuleObjectAdapter();
+ }
+
+ @Override
+ public Adapter caseAbstractContent(AbstractContent object) {
+ return createAbstractContentAdapter();
+ }
+
+ @Override
+ public Adapter caseContent(Content object) {
+ return createContentAdapter();
+ }
+
+ @Override
+ public Adapter caseContentSet(ContentSet object) {
+ return createContentSetAdapter();
+ }
+
+ @Override
+ public Adapter caseContentState(ContentState object) {
+ return createContentStateAdapter();
+ }
+
+ @Override
+ public Adapter caseAbstractAllocatable(AbstractAllocatable object) {
+ return createAbstractAllocatableAdapter();
+ }
+
+ @Override
+ public Adapter caseAllocatable(Allocatable object) {
+ return createAllocatableAdapter();
+ }
+
+ @Override
+ public Adapter caseAllocatableSet(AllocatableSet object) {
+ return createAllocatableSetAdapter();
+ }
+
+ @Override
+ public Adapter caseExpression(Expression object) {
+ return createExpressionAdapter();
+ }
+
+ @Override
+ public Adapter caseOperator(Operator object) {
+ return createOperatorAdapter();
+ }
+
+ @Override
+ public Adapter caseContentOperator(ContentOperator object) {
+ return createContentOperatorAdapter();
+ }
+
+ @Override
+ public Adapter caseSetExpression(SetExpression object) {
+ return createSetExpressionAdapter();
+ }
+
+ @Override
+ public Adapter caseSugarExpression(SugarExpression object) {
+ return createSugarExpressionAdapter();
+ }
+
+ @Override
+ public Adapter caseSugarExpressionBase(SugarExpressionBase object) {
+ return createSugarExpressionBaseAdapter();
+ }
+
+ @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 rba.sound.SoundContent <em>Sound Content</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 rba.sound.SoundContent
+ * @generated
+ */
+ public Adapter createSoundContentAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.sound.SoundContentSet <em>Sound Content Set</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 rba.sound.SoundContentSet
+ * @generated
+ */
+ public Adapter createSoundContentSetAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.sound.SoundContentState <em>Sound Content State</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 rba.sound.SoundContentState
+ * @generated
+ */
+ public Adapter createSoundContentStateAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.sound.Zone <em>Zone</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 rba.sound.Zone
+ * @generated
+ */
+ public Adapter createZoneAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.sound.ZoneSet <em>Zone Set</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 rba.sound.ZoneSet
+ * @generated
+ */
+ public Adapter createZoneSetAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.sound.SoundContentOperator <em>Sound Content Operator</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 rba.sound.SoundContentOperator
+ * @generated
+ */
+ public Adapter createSoundContentOperatorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.sound.IsSounding <em>Is Sounding</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 rba.sound.IsSounding
+ * @generated
+ */
+ public Adapter createIsSoundingAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.sound.ZoneOperator <em>Zone Operator</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 rba.sound.ZoneOperator
+ * @generated
+ */
+ public Adapter createZoneOperatorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.sound.IsOutputted <em>Is Outputted</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 rba.sound.IsOutputted
+ * @generated
+ */
+ public Adapter createIsOutputtedAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.sound.IsMuted <em>Is Muted</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 rba.sound.IsMuted
+ * @generated
+ */
+ public Adapter createIsMutedAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.sound.IsAttenuated <em>Is Attenuated</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 rba.sound.IsAttenuated
+ * @generated
+ */
+ public Adapter createIsAttenuatedAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.sound.OutputtingSound <em>Outputting Sound</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 rba.sound.OutputtingSound
+ * @generated
+ */
+ public Adapter createOutputtingSoundAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.sound.AllInstanceOfZone <em>All Instance Of Zone</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 rba.sound.AllInstanceOfZone
+ * @generated
+ */
+ public Adapter createAllInstanceOfZoneAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.sound.AllInstanceOfSoundContent <em>All Instance Of Sound Content</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 rba.sound.AllInstanceOfSoundContent
+ * @generated
+ */
+ public Adapter createAllInstanceOfSoundContentAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.sound.IsOutputtedOn <em>Is Outputted On</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 rba.sound.IsOutputtedOn
+ * @generated
+ */
+ public Adapter createIsOutputtedOnAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.sound.IsChangedOutput <em>Is Changed Output</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 rba.sound.IsChangedOutput
+ * @generated
+ */
+ public Adapter createIsChangedOutputAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.sound.IsTranslatedSoundTo <em>Is Translated Sound To</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 rba.sound.IsTranslatedSoundTo
+ * @generated
+ */
+ public Adapter createIsTranslatedSoundToAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.sound.MuteLowerPriority <em>Mute Lower Priority</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 rba.sound.MuteLowerPriority
+ * @generated
+ */
+ public Adapter createMuteLowerPriorityAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.ModelElement <em>Model 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 rba.core.ModelElement
+ * @generated
+ */
+ public Adapter createModelElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.NamedElement <em>Named 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 rba.core.NamedElement
+ * @generated
+ */
+ public Adapter createNamedElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.PackagableElement <em>Packagable 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 rba.core.PackagableElement
+ * @generated
+ */
+ public Adapter createPackagableElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.RuleObject <em>Rule Object</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 rba.core.RuleObject
+ * @generated
+ */
+ public Adapter createRuleObjectAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.AbstractContent <em>Abstract Content</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 rba.core.AbstractContent
+ * @generated
+ */
+ public Adapter createAbstractContentAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.Content <em>Content</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 rba.core.Content
+ * @generated
+ */
+ public Adapter createContentAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.ContentSet <em>Content Set</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 rba.core.ContentSet
+ * @generated
+ */
+ public Adapter createContentSetAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.ContentState <em>Content State</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 rba.core.ContentState
+ * @generated
+ */
+ public Adapter createContentStateAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.AbstractAllocatable <em>Abstract Allocatable</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 rba.core.AbstractAllocatable
+ * @generated
+ */
+ public Adapter createAbstractAllocatableAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.Allocatable <em>Allocatable</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 rba.core.Allocatable
+ * @generated
+ */
+ public Adapter createAllocatableAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.AllocatableSet <em>Allocatable Set</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 rba.core.AllocatableSet
+ * @generated
+ */
+ public Adapter createAllocatableSetAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.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 rba.core.Expression
+ * @generated
+ */
+ public Adapter createExpressionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.Operator <em>Operator</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 rba.core.Operator
+ * @generated
+ */
+ public Adapter createOperatorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.ContentOperator <em>Content Operator</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 rba.core.ContentOperator
+ * @generated
+ */
+ public Adapter createContentOperatorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.SetExpression <em>Set 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 rba.core.SetExpression
+ * @generated
+ */
+ public Adapter createSetExpressionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.SugarExpression <em>Sugar 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 rba.core.SugarExpression
+ * @generated
+ */
+ public Adapter createSugarExpressionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.SugarExpressionBase <em>Sugar Expression Base</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 rba.core.SugarExpressionBase
+ * @generated
+ */
+ public Adapter createSugarExpressionBaseAdapter() {
+ 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;
+ }
+
+} // RBASoundAdapterFactory
diff --git a/rba.model.sound/src/rba/sound/util/RBASoundSwitch.java b/rba.model.sound/src/rba/sound/util/RBASoundSwitch.java
new file mode 100644
index 0000000..7ffb514
--- /dev/null
+++ b/rba.model.sound/src/rba/sound/util/RBASoundSwitch.java
@@ -0,0 +1,827 @@
+/**
+ */
+package rba.sound.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import rba.core.AbstractAllocatable;
+import rba.core.AbstractContent;
+import rba.core.Allocatable;
+import rba.core.AllocatableSet;
+import rba.core.Content;
+import rba.core.ContentOperator;
+import rba.core.ContentSet;
+import rba.core.ContentState;
+import rba.core.Expression;
+import rba.core.ModelElement;
+import rba.core.NamedElement;
+import rba.core.Operator;
+import rba.core.PackagableElement;
+import rba.core.RuleObject;
+import rba.core.SetExpression;
+
+import rba.core.SugarExpression;
+import rba.core.SugarExpressionBase;
+import rba.sound.*;
+
+/**
+ * <!-- 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 rba.sound.RBASoundPackage
+ * @generated
+ */
+public class RBASoundSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected static RBASoundPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public RBASoundSwitch() {
+ if (modelPackage == null) {
+ modelPackage = RBASoundPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @param 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 RBASoundPackage.SOUND_CONTENT: {
+ SoundContent soundContent = (SoundContent) theEObject;
+ T result = caseSoundContent(soundContent);
+ if (result == null)
+ result = caseContent(soundContent);
+ if (result == null)
+ result = caseAbstractContent(soundContent);
+ if (result == null)
+ result = caseRuleObject(soundContent);
+ if (result == null)
+ result = casePackagableElement(soundContent);
+ if (result == null)
+ result = caseNamedElement(soundContent);
+ if (result == null)
+ result = caseModelElement(soundContent);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBASoundPackage.SOUND_CONTENT_SET: {
+ SoundContentSet soundContentSet = (SoundContentSet) theEObject;
+ T result = caseSoundContentSet(soundContentSet);
+ if (result == null)
+ result = caseContentSet(soundContentSet);
+ if (result == null)
+ result = caseAbstractContent(soundContentSet);
+ if (result == null)
+ result = caseRuleObject(soundContentSet);
+ if (result == null)
+ result = casePackagableElement(soundContentSet);
+ if (result == null)
+ result = caseNamedElement(soundContentSet);
+ if (result == null)
+ result = caseModelElement(soundContentSet);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBASoundPackage.SOUND_CONTENT_STATE: {
+ SoundContentState soundContentState = (SoundContentState) theEObject;
+ T result = caseSoundContentState(soundContentState);
+ if (result == null)
+ result = caseContentState(soundContentState);
+ if (result == null)
+ result = caseRuleObject(soundContentState);
+ if (result == null)
+ result = casePackagableElement(soundContentState);
+ if (result == null)
+ result = caseNamedElement(soundContentState);
+ if (result == null)
+ result = caseModelElement(soundContentState);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBASoundPackage.ZONE: {
+ Zone zone = (Zone) theEObject;
+ T result = caseZone(zone);
+ if (result == null)
+ result = caseAllocatable(zone);
+ if (result == null)
+ result = caseAbstractAllocatable(zone);
+ if (result == null)
+ result = caseRuleObject(zone);
+ if (result == null)
+ result = casePackagableElement(zone);
+ if (result == null)
+ result = caseNamedElement(zone);
+ if (result == null)
+ result = caseModelElement(zone);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBASoundPackage.ZONE_SET: {
+ ZoneSet zoneSet = (ZoneSet) theEObject;
+ T result = caseZoneSet(zoneSet);
+ if (result == null)
+ result = caseAllocatableSet(zoneSet);
+ if (result == null)
+ result = caseAbstractAllocatable(zoneSet);
+ if (result == null)
+ result = caseRuleObject(zoneSet);
+ if (result == null)
+ result = casePackagableElement(zoneSet);
+ if (result == null)
+ result = caseNamedElement(zoneSet);
+ if (result == null)
+ result = caseModelElement(zoneSet);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBASoundPackage.SOUND_CONTENT_OPERATOR: {
+ SoundContentOperator soundContentOperator = (SoundContentOperator) theEObject;
+ T result = caseSoundContentOperator(soundContentOperator);
+ if (result == null)
+ result = caseContentOperator(soundContentOperator);
+ if (result == null)
+ result = caseOperator(soundContentOperator);
+ if (result == null)
+ result = caseExpression(soundContentOperator);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBASoundPackage.IS_SOUNDING: {
+ IsSounding isSounding = (IsSounding) theEObject;
+ T result = caseIsSounding(isSounding);
+ if (result == null)
+ result = caseSoundContentOperator(isSounding);
+ if (result == null)
+ result = caseContentOperator(isSounding);
+ if (result == null)
+ result = caseOperator(isSounding);
+ if (result == null)
+ result = caseExpression(isSounding);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBASoundPackage.ZONE_OPERATOR: {
+ ZoneOperator zoneOperator = (ZoneOperator) theEObject;
+ T result = caseZoneOperator(zoneOperator);
+ if (result == null)
+ result = caseOperator(zoneOperator);
+ if (result == null)
+ result = caseExpression(zoneOperator);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBASoundPackage.IS_OUTPUTTED: {
+ IsOutputted isOutputted = (IsOutputted) theEObject;
+ T result = caseIsOutputted(isOutputted);
+ if (result == null)
+ result = caseZoneOperator(isOutputted);
+ if (result == null)
+ result = caseOperator(isOutputted);
+ if (result == null)
+ result = caseExpression(isOutputted);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBASoundPackage.IS_MUTED: {
+ IsMuted isMuted = (IsMuted) theEObject;
+ T result = caseIsMuted(isMuted);
+ if (result == null)
+ result = caseZoneOperator(isMuted);
+ if (result == null)
+ result = caseOperator(isMuted);
+ if (result == null)
+ result = caseExpression(isMuted);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBASoundPackage.IS_ATTENUATED: {
+ IsAttenuated isAttenuated = (IsAttenuated) theEObject;
+ T result = caseIsAttenuated(isAttenuated);
+ if (result == null)
+ result = caseZoneOperator(isAttenuated);
+ if (result == null)
+ result = caseOperator(isAttenuated);
+ if (result == null)
+ result = caseExpression(isAttenuated);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBASoundPackage.OUTPUTTING_SOUND: {
+ OutputtingSound outputtingSound = (OutputtingSound) theEObject;
+ T result = caseOutputtingSound(outputtingSound);
+ if (result == null)
+ result = caseZoneOperator(outputtingSound);
+ if (result == null)
+ result = caseOperator(outputtingSound);
+ if (result == null)
+ result = caseExpression(outputtingSound);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBASoundPackage.ALL_INSTANCE_OF_ZONE: {
+ AllInstanceOfZone allInstanceOfZone = (AllInstanceOfZone) theEObject;
+ T result = caseAllInstanceOfZone(allInstanceOfZone);
+ if (result == null)
+ result = caseSetExpression(allInstanceOfZone);
+ if (result == null)
+ result = caseExpression(allInstanceOfZone);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBASoundPackage.ALL_INSTANCE_OF_SOUND_CONTENT: {
+ AllInstanceOfSoundContent allInstanceOfSoundContent = (AllInstanceOfSoundContent) theEObject;
+ T result = caseAllInstanceOfSoundContent(allInstanceOfSoundContent);
+ if (result == null)
+ result = caseSetExpression(allInstanceOfSoundContent);
+ if (result == null)
+ result = caseExpression(allInstanceOfSoundContent);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBASoundPackage.IS_OUTPUTTED_ON: {
+ IsOutputtedOn isOutputtedOn = (IsOutputtedOn) theEObject;
+ T result = caseIsOutputtedOn(isOutputtedOn);
+ if (result == null)
+ result = caseSoundContentOperator(isOutputtedOn);
+ if (result == null)
+ result = caseSugarExpressionBase(isOutputtedOn);
+ if (result == null)
+ result = caseContentOperator(isOutputtedOn);
+ if (result == null)
+ result = caseSugarExpression(isOutputtedOn);
+ if (result == null)
+ result = caseOperator(isOutputtedOn);
+ if (result == null)
+ result = caseExpression(isOutputtedOn);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBASoundPackage.IS_CHANGED_OUTPUT: {
+ IsChangedOutput isChangedOutput = (IsChangedOutput) theEObject;
+ T result = caseIsChangedOutput(isChangedOutput);
+ if (result == null)
+ result = caseZoneOperator(isChangedOutput);
+ if (result == null)
+ result = caseSugarExpressionBase(isChangedOutput);
+ if (result == null)
+ result = caseOperator(isChangedOutput);
+ if (result == null)
+ result = caseSugarExpression(isChangedOutput);
+ if (result == null)
+ result = caseExpression(isChangedOutput);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBASoundPackage.IS_TRANSLATED_SOUND_TO: {
+ IsTranslatedSoundTo isTranslatedSoundTo = (IsTranslatedSoundTo) theEObject;
+ T result = caseIsTranslatedSoundTo(isTranslatedSoundTo);
+ if (result == null)
+ result = caseZoneOperator(isTranslatedSoundTo);
+ if (result == null)
+ result = caseSugarExpressionBase(isTranslatedSoundTo);
+ if (result == null)
+ result = caseOperator(isTranslatedSoundTo);
+ if (result == null)
+ result = caseSugarExpression(isTranslatedSoundTo);
+ if (result == null)
+ result = caseExpression(isTranslatedSoundTo);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBASoundPackage.MUTE_LOWER_PRIORITY: {
+ MuteLowerPriority muteLowerPriority = (MuteLowerPriority) theEObject;
+ T result = caseMuteLowerPriority(muteLowerPriority);
+ if (result == null)
+ result = caseOperator(muteLowerPriority);
+ if (result == null)
+ result = caseSugarExpressionBase(muteLowerPriority);
+ if (result == null)
+ result = caseExpression(muteLowerPriority);
+ if (result == null)
+ result = caseSugarExpression(muteLowerPriority);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ default:
+ return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Sound Content</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>Sound Content</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSoundContent(SoundContent object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Sound Content Set</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>Sound Content Set</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSoundContentSet(SoundContentSet object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Sound Content State</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>Sound Content State</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSoundContentState(SoundContentState object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Zone</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>Zone</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseZone(Zone object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Zone Set</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>Zone Set</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseZoneSet(ZoneSet object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Sound Content Operator</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>Sound Content Operator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSoundContentOperator(SoundContentOperator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Is Sounding</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 Sounding</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIsSounding(IsSounding object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Zone Operator</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>Zone Operator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseZoneOperator(ZoneOperator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Is Outputted</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 Outputted</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIsOutputted(IsOutputted object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Is Muted</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 Muted</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIsMuted(IsMuted object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Is Attenuated</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 Attenuated</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIsAttenuated(IsAttenuated object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Outputting Sound</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>Outputting Sound</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseOutputtingSound(OutputtingSound object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>All Instance Of Zone</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>All Instance Of Zone</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAllInstanceOfZone(AllInstanceOfZone object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>All Instance Of Sound Content</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>All Instance Of Sound Content</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAllInstanceOfSoundContent(AllInstanceOfSoundContent object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Is Outputted On</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 Outputted On</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIsOutputtedOn(IsOutputtedOn object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Is Changed Output</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 Changed Output</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIsChangedOutput(IsChangedOutput object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Is Translated Sound To</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 Translated Sound To</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIsTranslatedSoundTo(IsTranslatedSoundTo object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Mute Lower Priority</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>Mute Lower Priority</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseMuteLowerPriority(MuteLowerPriority object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Model 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>Model Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseModelElement(ModelElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Named 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>Named Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseNamedElement(NamedElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Packagable 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>Packagable Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePackagableElement(PackagableElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Rule Object</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>Rule Object</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseRuleObject(RuleObject object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Abstract Content</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>Abstract Content</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAbstractContent(AbstractContent object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Content</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>Content</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseContent(Content object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Content Set</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>Content Set</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseContentSet(ContentSet object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Content State</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>Content State</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseContentState(ContentState object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Abstract Allocatable</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>Abstract Allocatable</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAbstractAllocatable(AbstractAllocatable object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Allocatable</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>Allocatable</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAllocatable(Allocatable object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Allocatable Set</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>Allocatable Set</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAllocatableSet(AllocatableSet 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>Operator</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>Operator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseOperator(Operator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Content Operator</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>Content Operator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseContentOperator(ContentOperator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Set 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>Set Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSetExpression(SetExpression object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Sugar 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>Sugar Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSugarExpression(SugarExpression object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Sugar Expression Base</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>Sugar Expression Base</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSugarExpressionBase(SugarExpressionBase 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;
+ }
+
+} // RBASoundSwitch
diff --git a/rba.model.view.edit/.classpath b/rba.model.view.edit/.classpath
new file mode 100644
index 0000000..22f3064
--- /dev/null
+++ b/rba.model.view.edit/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/rba.model.view.edit/.project b/rba.model.view.edit/.project
new file mode 100644
index 0000000..8418c6a
--- /dev/null
+++ b/rba.model.view.edit/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>rba.model.view.edit</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>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/rba.model.view.edit/META-INF/MANIFEST.MF b/rba.model.view.edit/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..4bb5f1d
--- /dev/null
+++ b/rba.model.view.edit/META-INF/MANIFEST.MF
@@ -0,0 +1,17 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: rba.model.view.edit;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-ClassPath: .
+Bundle-Activator: rba.view.provider.RbaViewEditPlugin$Implementation
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: rba.view.provider
+Require-Bundle: org.eclipse.core.runtime,
+ rba.model.view;visibility:=reexport,
+ org.eclipse.emf.edit;visibility:=reexport,
+ rba.model.core;visibility:=reexport,
+ rba.model.core.edit;visibility:=reexport
+Bundle-ActivationPolicy: lazy
diff --git a/rba.model.view.edit/build.properties b/rba.model.view.edit/build.properties
new file mode 100644
index 0000000..6e3e902
--- /dev/null
+++ b/rba.model.view.edit/build.properties
@@ -0,0 +1,10 @@
+#
+
+bin.includes = .,\
+ icons/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties
+jars.compile.order = .
+source.. = src/
+output.. = bin/
diff --git a/rba.model.view.edit/icons/full/obj16/AllInstanceOfArea.gif b/rba.model.view.edit/icons/full/obj16/AllInstanceOfArea.gif
new file mode 100644
index 0000000..ef56c14
--- /dev/null
+++ b/rba.model.view.edit/icons/full/obj16/AllInstanceOfArea.gif
Binary files differ
diff --git a/rba.model.view.edit/icons/full/obj16/AllInstanceOfViewContent.gif b/rba.model.view.edit/icons/full/obj16/AllInstanceOfViewContent.gif
new file mode 100644
index 0000000..afb82ea
--- /dev/null
+++ b/rba.model.view.edit/icons/full/obj16/AllInstanceOfViewContent.gif
Binary files differ
diff --git a/rba.model.view.edit/icons/full/obj16/Area.gif b/rba.model.view.edit/icons/full/obj16/Area.gif
new file mode 100644
index 0000000..d3dc5a9
--- /dev/null
+++ b/rba.model.view.edit/icons/full/obj16/Area.gif
Binary files differ
diff --git a/rba.model.view.edit/icons/full/obj16/AreaSet.gif b/rba.model.view.edit/icons/full/obj16/AreaSet.gif
new file mode 100644
index 0000000..89ad5da
--- /dev/null
+++ b/rba.model.view.edit/icons/full/obj16/AreaSet.gif
Binary files differ
diff --git a/rba.model.view.edit/icons/full/obj16/CompositeArea.gif b/rba.model.view.edit/icons/full/obj16/CompositeArea.gif
new file mode 100644
index 0000000..4365960
--- /dev/null
+++ b/rba.model.view.edit/icons/full/obj16/CompositeArea.gif
Binary files differ
diff --git a/rba.model.view.edit/icons/full/obj16/CyclicContent.gif b/rba.model.view.edit/icons/full/obj16/CyclicContent.gif
new file mode 100644
index 0000000..90d10f9
--- /dev/null
+++ b/rba.model.view.edit/icons/full/obj16/CyclicContent.gif
Binary files differ
diff --git a/rba.model.view.edit/icons/full/obj16/Display.gif b/rba.model.view.edit/icons/full/obj16/Display.gif
new file mode 100644
index 0000000..2b69256
--- /dev/null
+++ b/rba.model.view.edit/icons/full/obj16/Display.gif
Binary files differ
diff --git a/rba.model.view.edit/icons/full/obj16/DisplayingContent.gif b/rba.model.view.edit/icons/full/obj16/DisplayingContent.gif
new file mode 100644
index 0000000..498364f
--- /dev/null
+++ b/rba.model.view.edit/icons/full/obj16/DisplayingContent.gif
Binary files differ
diff --git a/rba.model.view.edit/icons/full/obj16/FixedPositionLayout.gif b/rba.model.view.edit/icons/full/obj16/FixedPositionLayout.gif
new file mode 100644
index 0000000..a26660e
--- /dev/null
+++ b/rba.model.view.edit/icons/full/obj16/FixedPositionLayout.gif
Binary files differ
diff --git a/rba.model.view.edit/icons/full/obj16/HideLowerPriority.gif b/rba.model.view.edit/icons/full/obj16/HideLowerPriority.gif
new file mode 100644
index 0000000..83afb9b
--- /dev/null
+++ b/rba.model.view.edit/icons/full/obj16/HideLowerPriority.gif
Binary files differ
diff --git a/rba.model.view.edit/icons/full/obj16/HorizontalLayout.gif b/rba.model.view.edit/icons/full/obj16/HorizontalLayout.gif
new file mode 100644
index 0000000..c00aedf
--- /dev/null
+++ b/rba.model.view.edit/icons/full/obj16/HorizontalLayout.gif
Binary files differ
diff --git a/rba.model.view.edit/icons/full/obj16/IsChangedDisplay.gif b/rba.model.view.edit/icons/full/obj16/IsChangedDisplay.gif
new file mode 100644
index 0000000..420eee1
--- /dev/null
+++ b/rba.model.view.edit/icons/full/obj16/IsChangedDisplay.gif
Binary files differ
diff --git a/rba.model.view.edit/icons/full/obj16/IsDisplayed.gif b/rba.model.view.edit/icons/full/obj16/IsDisplayed.gif
new file mode 100644
index 0000000..a3908bc
--- /dev/null
+++ b/rba.model.view.edit/icons/full/obj16/IsDisplayed.gif
Binary files differ
diff --git a/rba.model.view.edit/icons/full/obj16/IsDisplayedOn.gif b/rba.model.view.edit/icons/full/obj16/IsDisplayedOn.gif
new file mode 100644
index 0000000..5a9bc75
--- /dev/null
+++ b/rba.model.view.edit/icons/full/obj16/IsDisplayedOn.gif
Binary files differ
diff --git a/rba.model.view.edit/icons/full/obj16/IsHidden.gif b/rba.model.view.edit/icons/full/obj16/IsHidden.gif
new file mode 100644
index 0000000..33a997a
--- /dev/null
+++ b/rba.model.view.edit/icons/full/obj16/IsHidden.gif
Binary files differ
diff --git a/rba.model.view.edit/icons/full/obj16/IsTranslatedViewTo.gif b/rba.model.view.edit/icons/full/obj16/IsTranslatedViewTo.gif
new file mode 100644
index 0000000..35ef84e
--- /dev/null
+++ b/rba.model.view.edit/icons/full/obj16/IsTranslatedViewTo.gif
Binary files differ
diff --git a/rba.model.view.edit/icons/full/obj16/IsVisible.gif b/rba.model.view.edit/icons/full/obj16/IsVisible.gif
new file mode 100644
index 0000000..d92f34c
--- /dev/null
+++ b/rba.model.view.edit/icons/full/obj16/IsVisible.gif
Binary files differ
diff --git a/rba.model.view.edit/icons/full/obj16/MessageApp.gif b/rba.model.view.edit/icons/full/obj16/MessageApp.gif
new file mode 100644
index 0000000..c673a52
--- /dev/null
+++ b/rba.model.view.edit/icons/full/obj16/MessageApp.gif
Binary files differ
diff --git a/rba.model.view.edit/icons/full/obj16/MessageContent.gif b/rba.model.view.edit/icons/full/obj16/MessageContent.gif
new file mode 100644
index 0000000..98b351f
--- /dev/null
+++ b/rba.model.view.edit/icons/full/obj16/MessageContent.gif
Binary files differ
diff --git a/rba.model.view.edit/icons/full/obj16/Offset.gif b/rba.model.view.edit/icons/full/obj16/Offset.gif
new file mode 100644
index 0000000..53500da
--- /dev/null
+++ b/rba.model.view.edit/icons/full/obj16/Offset.gif
Binary files differ
diff --git a/rba.model.view.edit/icons/full/obj16/PositionContainer.gif b/rba.model.view.edit/icons/full/obj16/PositionContainer.gif
new file mode 100644
index 0000000..e4bc22d
--- /dev/null
+++ b/rba.model.view.edit/icons/full/obj16/PositionContainer.gif
Binary files differ
diff --git a/rba.model.view.edit/icons/full/obj16/Size.gif b/rba.model.view.edit/icons/full/obj16/Size.gif
new file mode 100644
index 0000000..7c2aaac
--- /dev/null
+++ b/rba.model.view.edit/icons/full/obj16/Size.gif
Binary files differ
diff --git a/rba.model.view.edit/icons/full/obj16/SizeReference.gif b/rba.model.view.edit/icons/full/obj16/SizeReference.gif
new file mode 100644
index 0000000..9041598
--- /dev/null
+++ b/rba.model.view.edit/icons/full/obj16/SizeReference.gif
Binary files differ
diff --git a/rba.model.view.edit/icons/full/obj16/VerticalLayout.gif b/rba.model.view.edit/icons/full/obj16/VerticalLayout.gif
new file mode 100644
index 0000000..35ef84e
--- /dev/null
+++ b/rba.model.view.edit/icons/full/obj16/VerticalLayout.gif
Binary files differ
diff --git a/rba.model.view.edit/icons/full/obj16/ViewContent.gif b/rba.model.view.edit/icons/full/obj16/ViewContent.gif
new file mode 100644
index 0000000..05dc74a
--- /dev/null
+++ b/rba.model.view.edit/icons/full/obj16/ViewContent.gif
Binary files differ
diff --git a/rba.model.view.edit/icons/full/obj16/ViewContentSet.gif b/rba.model.view.edit/icons/full/obj16/ViewContentSet.gif
new file mode 100644
index 0000000..ef56c14
--- /dev/null
+++ b/rba.model.view.edit/icons/full/obj16/ViewContentSet.gif
Binary files differ
diff --git a/rba.model.view.edit/icons/full/obj16/ViewContentState.gif b/rba.model.view.edit/icons/full/obj16/ViewContentState.gif
new file mode 100644
index 0000000..10d2229
--- /dev/null
+++ b/rba.model.view.edit/icons/full/obj16/ViewContentState.gif
Binary files differ
diff --git a/rba.model.view.edit/plugin.xml b/rba.model.view.edit/plugin.xml
new file mode 100644
index 0000000..95079bc
--- /dev/null
+++ b/rba.model.view.edit/plugin.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
+ <!-- @generated rbaview -->
+ <factory
+ uri="http://www.denso.com/ict/rba/view"
+ class="rba.view.provider.RBAViewItemProviderAdapterFactory"
+ supportedTypes=
+ "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
+ org.eclipse.emf.edit.provider.IStructuredItemContentProvider
+ org.eclipse.emf.edit.provider.ITreeItemContentProvider
+ org.eclipse.emf.edit.provider.IItemLabelProvider
+ org.eclipse.emf.edit.provider.IItemPropertySource"/>
+ </extension>
+
+</plugin>
diff --git a/rba.model.view.edit/src/rba/view/provider/AlignedLayoutItemProvider.java b/rba.model.view.edit/src/rba/view/provider/AlignedLayoutItemProvider.java
new file mode 100644
index 0000000..c322558
--- /dev/null
+++ b/rba.model.view.edit/src/rba/view/provider/AlignedLayoutItemProvider.java
@@ -0,0 +1,131 @@
+/**
+ */
+package rba.view.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import rba.view.AlignedLayout;
+import rba.view.BasePoint;
+import rba.view.RBAViewPackage;
+
+/**
+ * This is the item provider adapter for a {@link rba.view.AlignedLayout} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class AlignedLayoutItemProvider extends LayoutManagerItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public AlignedLayoutItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addSubareaPropertyDescriptor(object);
+ addBasePointPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Subarea feature.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addSubareaPropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(), getString("_UI_AlignedLayout_subarea_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_AlignedLayout_subarea_feature",
+ "_UI_AlignedLayout_type"),
+ RBAViewPackage.Literals.ALIGNED_LAYOUT__SUBAREA, true, false, true, null, null, null));
+ }
+
+ /**
+ * This adds a property descriptor for the Base Point feature.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addBasePointPropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(), getString("_UI_AlignedLayout_basePoint_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_AlignedLayout_basePoint_feature",
+ "_UI_AlignedLayout_type"),
+ RBAViewPackage.Literals.ALIGNED_LAYOUT__BASE_POINT, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ BasePoint labelValue = ((AlignedLayout) object).getBasePoint();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_AlignedLayout_type")
+ : getString("_UI_AlignedLayout_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(AlignedLayout.class)) {
+ case RBAViewPackage.ALIGNED_LAYOUT__BASE_POINT:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.view.edit/src/rba/view/provider/AllInstanceOfAreaItemProvider.java b/rba.model.view.edit/src/rba/view/provider/AllInstanceOfAreaItemProvider.java
new file mode 100644
index 0000000..be663b5
--- /dev/null
+++ b/rba.model.view.edit/src/rba/view/provider/AllInstanceOfAreaItemProvider.java
@@ -0,0 +1,115 @@
+/**
+ */
+package rba.view.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+
+import rba.core.provider.SetExpressionItemProvider;
+
+import rba.view.AllInstanceOfArea;
+
+/**
+ * This is the item provider adapter for a {@link rba.view.AllInstanceOfArea} object. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @generated
+ */
+public class AllInstanceOfAreaItemProvider extends SetExpressionItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public AllInstanceOfAreaItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns AllInstanceOfArea.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/AllInstanceOfArea"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((AllInstanceOfArea) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_AllInstanceOfArea_type")
+ : getString("_UI_AllInstanceOfArea_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return RbaViewEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/rba.model.view.edit/src/rba/view/provider/AllInstanceOfViewContentItemProvider.java b/rba.model.view.edit/src/rba/view/provider/AllInstanceOfViewContentItemProvider.java
new file mode 100644
index 0000000..67d4c62
--- /dev/null
+++ b/rba.model.view.edit/src/rba/view/provider/AllInstanceOfViewContentItemProvider.java
@@ -0,0 +1,116 @@
+/**
+ */
+package rba.view.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+
+import rba.core.provider.SetExpressionItemProvider;
+
+import rba.view.AllInstanceOfViewContent;
+
+/**
+ * This is the item provider adapter for a {@link rba.view.AllInstanceOfViewContent} object.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+public class AllInstanceOfViewContentItemProvider extends SetExpressionItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public AllInstanceOfViewContentItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns AllInstanceOfViewContent.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/AllInstanceOfViewContent"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((AllInstanceOfViewContent) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_AllInstanceOfViewContent_type")
+ : getString("_UI_AllInstanceOfViewContent_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return RbaViewEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/rba.model.view.edit/src/rba/view/provider/AreaItemProvider.java b/rba.model.view.edit/src/rba/view/provider/AreaItemProvider.java
new file mode 100644
index 0000000..366c97d
--- /dev/null
+++ b/rba.model.view.edit/src/rba/view/provider/AreaItemProvider.java
@@ -0,0 +1,404 @@
+/**
+ */
+package rba.view.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import rba.core.RBACoreFactory;
+import rba.core.RBACorePackage;
+import rba.core.provider.AllocatableItemProvider;
+import rba.view.Area;
+import rba.view.RBAViewFactory;
+import rba.view.RBAViewPackage;
+
+/**
+ * This is the item provider adapter for a {@link rba.view.Area} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class AreaItemProvider extends AllocatableItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public AreaItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(RBAViewPackage.Literals.AREA__ZORDER);
+ childrenFeatures.add(RBAViewPackage.Literals.AREA__SIZE);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns Area.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/Area"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((Area) object).getName();
+ return label == null || label.length() == 0 ? getString("_UI_Area_type")
+ : getString("_UI_Area_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(Area.class)) {
+ case RBAViewPackage.AREA__ZORDER:
+ case RBAViewPackage.AREA__SIZE:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBAViewFactory.eINSTANCE.createIsDisplayed()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBAViewFactory.eINSTANCE.createDisplayingContent()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBAViewFactory.eINSTANCE.createIsHidden()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBAViewFactory.eINSTANCE.createIsVisible()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBAViewFactory.eINSTANCE.createAllInstanceOfArea()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBAViewFactory.eINSTANCE.createAllInstanceOfViewContent()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBAViewFactory.eINSTANCE.createIsDisplayedOn()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBAViewFactory.eINSTANCE.createIsChangedDisplay()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBAViewFactory.eINSTANCE.createIsTranslatedViewTo()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.ALLOCATABLE__VISIBILITY,
+ RBAViewFactory.eINSTANCE.createHideLowerPriority()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBAViewFactory.eINSTANCE.createIsDisplayed()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBAViewFactory.eINSTANCE.createDisplayingContent()));
+
+ newChildDescriptors.add(
+ createChildParameter(RBAViewPackage.Literals.AREA__ZORDER, RBAViewFactory.eINSTANCE.createIsHidden()));
+
+ newChildDescriptors.add(
+ createChildParameter(RBAViewPackage.Literals.AREA__ZORDER, RBAViewFactory.eINSTANCE.createIsVisible()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBAViewFactory.eINSTANCE.createAllInstanceOfArea()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBAViewFactory.eINSTANCE.createAllInstanceOfViewContent()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBAViewFactory.eINSTANCE.createIsDisplayedOn()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBAViewFactory.eINSTANCE.createIsChangedDisplay()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBAViewFactory.eINSTANCE.createIsTranslatedViewTo()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBAViewFactory.eINSTANCE.createHideLowerPriority()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBACoreFactory.eINSTANCE.createComplexExpression()));
+
+ newChildDescriptors.add(
+ createChildParameter(RBAViewPackage.Literals.AREA__ZORDER, RBACoreFactory.eINSTANCE.createIsTypeOf()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBACoreFactory.eINSTANCE.createObjectReference()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBACoreFactory.eINSTANCE.createPreviousModifier()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBACoreFactory.eINSTANCE.createGreaterThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBACoreFactory.eINSTANCE.createMuchGreaterThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBACoreFactory.eINSTANCE.createLowerThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBACoreFactory.eINSTANCE.createEqualToOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBACoreFactory.eINSTANCE.createComparisonAnd()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBACoreFactory.eINSTANCE.createAndOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBACoreFactory.eINSTANCE.createOrOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBACoreFactory.eINSTANCE.createNotOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBACoreFactory.eINSTANCE.createIsEqualToOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBACoreFactory.eINSTANCE.createIsGreaterThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBACoreFactory.eINSTANCE.createIsLowerThanOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBACoreFactory.eINSTANCE.createIsGreaterThanEqualOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBACoreFactory.eINSTANCE.createIsLowerThanEqualOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBACoreFactory.eINSTANCE.createPlusOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBACoreFactory.eINSTANCE.createImpliesOperator()));
+
+ newChildDescriptors.add(
+ createChildParameter(RBAViewPackage.Literals.AREA__ZORDER, RBACoreFactory.eINSTANCE.createIsActive()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBACoreFactory.eINSTANCE.createGetAllocatables()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBACoreFactory.eINSTANCE.createHasBeenDisplayed()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBACoreFactory.eINSTANCE.createActiveState()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBACoreFactory.eINSTANCE.createObjectCompare()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBACoreFactory.eINSTANCE.createThatOfOperator()));
+
+ newChildDescriptors.add(
+ createChildParameter(RBAViewPackage.Literals.AREA__ZORDER, RBACoreFactory.eINSTANCE.createMaxValue()));
+
+ newChildDescriptors.add(
+ createChildParameter(RBAViewPackage.Literals.AREA__ZORDER, RBACoreFactory.eINSTANCE.createMinValue()));
+
+ newChildDescriptors.add(
+ createChildParameter(RBAViewPackage.Literals.AREA__ZORDER, RBACoreFactory.eINSTANCE.createNoneValue()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBACoreFactory.eINSTANCE.createStandardValue()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBACoreFactory.eINSTANCE.createIntegerValue()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBACoreFactory.eINSTANCE.createLoserTypeExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBACoreFactory.eINSTANCE.createArbitrationPolicyExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBACoreFactory.eINSTANCE.createSizeOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBACoreFactory.eINSTANCE.createExistsOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBACoreFactory.eINSTANCE.createForAllOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBACoreFactory.eINSTANCE.createMaxOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBACoreFactory.eINSTANCE.createMinOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBACoreFactory.eINSTANCE.createSelectOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBACoreFactory.eINSTANCE.createSetOfOperator()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBACoreFactory.eINSTANCE.createLambdaExpression()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBACoreFactory.eINSTANCE.createIfStatement()));
+
+ newChildDescriptors
+ .add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER, RBACoreFactory.eINSTANCE.createIsOn()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBACoreFactory.eINSTANCE.createAllocatedContent()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBACoreFactory.eINSTANCE.createContentValue()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBACoreFactory.eINSTANCE.createGetContentsList()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBACoreFactory.eINSTANCE.createActiveContents()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBACoreFactory.eINSTANCE.createGetProperty()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBACoreFactory.eINSTANCE.createStateValue()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBACoreFactory.eINSTANCE.createHasComeLaterThan()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBACoreFactory.eINSTANCE.createHasComeEarlierThan()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBACoreFactory.eINSTANCE.createObjectCompareNot()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBACoreFactory.eINSTANCE.createIsAllocatedTo()));
+
+ newChildDescriptors.add(
+ createChildParameter(RBAViewPackage.Literals.AREA__ZORDER, RBACoreFactory.eINSTANCE.createIsChanged()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBACoreFactory.eINSTANCE.createIsTranslatedTo()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__ZORDER,
+ RBACoreFactory.eINSTANCE.createNullExpression()));
+
+ newChildDescriptors
+ .add(createChildParameter(RBAViewPackage.Literals.AREA__SIZE, RBAViewFactory.eINSTANCE.createSize()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.AREA__SIZE,
+ RBAViewFactory.eINSTANCE.createSizeReference()));
+ }
+
+ /**
+ * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
+ Object childFeature = feature;
+ Object childObject = child;
+
+ boolean qualify = childFeature == RBACorePackage.Literals.ALLOCATABLE__VISIBILITY
+ || childFeature == RBAViewPackage.Literals.AREA__ZORDER;
+
+ if (qualify) {
+ return getString("_UI_CreateChild_text2",
+ new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+ }
+ return super.getCreateChildText(owner, feature, child, selection);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return RbaViewEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/rba.model.view.edit/src/rba/view/provider/AreaOperatorItemProvider.java b/rba.model.view.edit/src/rba/view/provider/AreaOperatorItemProvider.java
new file mode 100644
index 0000000..f74deaa
--- /dev/null
+++ b/rba.model.view.edit/src/rba/view/provider/AreaOperatorItemProvider.java
@@ -0,0 +1,136 @@
+/**
+ */
+package rba.view.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.RBACorePackage;
+
+import rba.core.provider.AllocatableOperatorItemProvider;
+import rba.view.AreaOperator;
+import rba.view.RBAViewFactory;
+
+/**
+ * This is the item provider adapter for a {@link rba.view.AreaOperator} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class AreaOperatorItemProvider extends AllocatableOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public AreaOperatorItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((AreaOperator) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_AreaOperator_type")
+ : getString("_UI_AreaOperator_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBAViewFactory.eINSTANCE.createIsDisplayed()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBAViewFactory.eINSTANCE.createDisplayingContent()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBAViewFactory.eINSTANCE.createIsHidden()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBAViewFactory.eINSTANCE.createIsVisible()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBAViewFactory.eINSTANCE.createAllInstanceOfArea()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBAViewFactory.eINSTANCE.createAllInstanceOfViewContent()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBAViewFactory.eINSTANCE.createIsDisplayedOn()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBAViewFactory.eINSTANCE.createIsChangedDisplay()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBAViewFactory.eINSTANCE.createIsTranslatedViewTo()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBAViewFactory.eINSTANCE.createHideLowerPriority()));
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return RbaViewEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/rba.model.view.edit/src/rba/view/provider/AreaSetItemProvider.java b/rba.model.view.edit/src/rba/view/provider/AreaSetItemProvider.java
new file mode 100644
index 0000000..e9ec0e1
--- /dev/null
+++ b/rba.model.view.edit/src/rba/view/provider/AreaSetItemProvider.java
@@ -0,0 +1,109 @@
+/**
+ */
+package rba.view.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import rba.core.provider.AllocatableSetItemProvider;
+import rba.view.AreaSet;
+
+/**
+ * This is the item provider adapter for a {@link rba.view.AreaSet} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class AreaSetItemProvider extends AllocatableSetItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public AreaSetItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns AreaSet.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/AreaSet"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((AreaSet) object).getName();
+ return label == null || label.length() == 0 ? getString("_UI_AreaSet_type")
+ : getString("_UI_AreaSet_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return RbaViewEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/rba.model.view.edit/src/rba/view/provider/CompositeAreaItemProvider.java b/rba.model.view.edit/src/rba/view/provider/CompositeAreaItemProvider.java
new file mode 100644
index 0000000..35c4ad3
--- /dev/null
+++ b/rba.model.view.edit/src/rba/view/provider/CompositeAreaItemProvider.java
@@ -0,0 +1,158 @@
+/**
+ */
+package rba.view.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import rba.core.provider.PackagableElementItemProvider;
+import rba.view.CompositeArea;
+import rba.view.RBAViewFactory;
+import rba.view.RBAViewPackage;
+
+/**
+ * This is the item provider adapter for a {@link rba.view.CompositeArea} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class CompositeAreaItemProvider extends PackagableElementItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public CompositeAreaItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(RBAViewPackage.Literals.COMPOSITE_AREA__LAYOUT);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns CompositeArea.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/CompositeArea"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((CompositeArea) object).getName();
+ return label == null || label.length() == 0 ? getString("_UI_CompositeArea_type")
+ : getString("_UI_CompositeArea_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(CompositeArea.class)) {
+ case RBAViewPackage.COMPOSITE_AREA__LAYOUT:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.COMPOSITE_AREA__LAYOUT,
+ RBAViewFactory.eINSTANCE.createVerticalLayout()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.COMPOSITE_AREA__LAYOUT,
+ RBAViewFactory.eINSTANCE.createHorizontalLayout()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.COMPOSITE_AREA__LAYOUT,
+ RBAViewFactory.eINSTANCE.createFixedPositionLayout()));
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return RbaViewEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/rba.model.view.edit/src/rba/view/provider/DisplayItemProvider.java b/rba.model.view.edit/src/rba/view/provider/DisplayItemProvider.java
new file mode 100644
index 0000000..0ed76ac
--- /dev/null
+++ b/rba.model.view.edit/src/rba/view/provider/DisplayItemProvider.java
@@ -0,0 +1,162 @@
+/**
+ */
+package rba.view.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import rba.core.provider.PackagableElementItemProvider;
+
+import rba.view.Display;
+import rba.view.RBAViewFactory;
+import rba.view.RBAViewPackage;
+
+/**
+ * This is the item provider adapter for a {@link rba.view.Display} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class DisplayItemProvider extends PackagableElementItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public DisplayItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(RBAViewPackage.Literals.DISPLAY__ROOT);
+ childrenFeatures.add(RBAViewPackage.Literals.DISPLAY__SIZE);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns Display.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/Display"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((Display) object).getName();
+ return label == null || label.length() == 0 ? getString("_UI_Display_type")
+ : getString("_UI_Display_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(Display.class)) {
+ case RBAViewPackage.DISPLAY__ROOT:
+ case RBAViewPackage.DISPLAY__SIZE:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.DISPLAY__ROOT,
+ RBAViewFactory.eINSTANCE.createCompositeArea()));
+
+ newChildDescriptors.add(
+ createChildParameter(RBAViewPackage.Literals.DISPLAY__SIZE, RBAViewFactory.eINSTANCE.createSize()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.DISPLAY__SIZE,
+ RBAViewFactory.eINSTANCE.createSizeReference()));
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return RbaViewEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/rba.model.view.edit/src/rba/view/provider/DisplayingContentItemProvider.java b/rba.model.view.edit/src/rba/view/provider/DisplayingContentItemProvider.java
new file mode 100644
index 0000000..e3a3f0b
--- /dev/null
+++ b/rba.model.view.edit/src/rba/view/provider/DisplayingContentItemProvider.java
@@ -0,0 +1,101 @@
+/**
+ */
+package rba.view.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+
+import rba.view.DisplayingContent;
+
+/**
+ * This is the item provider adapter for a {@link rba.view.DisplayingContent} object. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @generated
+ */
+public class DisplayingContentItemProvider extends AreaOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public DisplayingContentItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns DisplayingContent.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/DisplayingContent"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((DisplayingContent) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_DisplayingContent_type")
+ : getString("_UI_DisplayingContent_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.view.edit/src/rba/view/provider/FixedPositionLayoutItemProvider.java b/rba.model.view.edit/src/rba/view/provider/FixedPositionLayoutItemProvider.java
new file mode 100644
index 0000000..d46cf53
--- /dev/null
+++ b/rba.model.view.edit/src/rba/view/provider/FixedPositionLayoutItemProvider.java
@@ -0,0 +1,139 @@
+/**
+ */
+package rba.view.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import rba.view.FixedPositionLayout;
+import rba.view.RBAViewFactory;
+import rba.view.RBAViewPackage;
+
+/**
+ * This is the item provider adapter for a {@link rba.view.FixedPositionLayout} object.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+public class FixedPositionLayoutItemProvider extends LayoutManagerItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public FixedPositionLayoutItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(RBAViewPackage.Literals.FIXED_POSITION_LAYOUT__SUB_AREA_POSITION);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns FixedPositionLayout.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/FixedPositionLayout"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ return getString("_UI_FixedPositionLayout_type");
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(FixedPositionLayout.class)) {
+ case RBAViewPackage.FIXED_POSITION_LAYOUT__SUB_AREA_POSITION:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.FIXED_POSITION_LAYOUT__SUB_AREA_POSITION,
+ RBAViewFactory.eINSTANCE.createPositionContainer()));
+ }
+
+}
diff --git a/rba.model.view.edit/src/rba/view/provider/HideLowerPriorityItemProvider.java b/rba.model.view.edit/src/rba/view/provider/HideLowerPriorityItemProvider.java
new file mode 100644
index 0000000..8e587d2
--- /dev/null
+++ b/rba.model.view.edit/src/rba/view/provider/HideLowerPriorityItemProvider.java
@@ -0,0 +1,147 @@
+/**
+ */
+package rba.view.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.RBACorePackage;
+
+import rba.core.provider.OperatorItemProvider;
+
+import rba.view.HideLowerPriority;
+import rba.view.RBAViewFactory;
+
+/**
+ * This is the item provider adapter for a {@link rba.view.HideLowerPriority} object. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @generated
+ */
+public class HideLowerPriorityItemProvider extends OperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public HideLowerPriorityItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns HideLowerPriority.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/HideLowerPriority"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((HideLowerPriority) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_HideLowerPriority_type")
+ : getString("_UI_HideLowerPriority_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBAViewFactory.eINSTANCE.createIsDisplayed()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBAViewFactory.eINSTANCE.createDisplayingContent()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBAViewFactory.eINSTANCE.createIsHidden()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBAViewFactory.eINSTANCE.createIsVisible()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBAViewFactory.eINSTANCE.createAllInstanceOfArea()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBAViewFactory.eINSTANCE.createAllInstanceOfViewContent()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBAViewFactory.eINSTANCE.createIsDisplayedOn()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBAViewFactory.eINSTANCE.createIsChangedDisplay()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBAViewFactory.eINSTANCE.createIsTranslatedViewTo()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBAViewFactory.eINSTANCE.createHideLowerPriority()));
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return RbaViewEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/rba.model.view.edit/src/rba/view/provider/HorizontalLayoutItemProvider.java b/rba.model.view.edit/src/rba/view/provider/HorizontalLayoutItemProvider.java
new file mode 100644
index 0000000..370304f
--- /dev/null
+++ b/rba.model.view.edit/src/rba/view/provider/HorizontalLayoutItemProvider.java
@@ -0,0 +1,100 @@
+/**
+ */
+package rba.view.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.view.BasePoint;
+import rba.view.HorizontalLayout;
+
+/**
+ * This is the item provider adapter for a {@link rba.view.HorizontalLayout} object. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @generated
+ */
+public class HorizontalLayoutItemProvider extends AlignedLayoutItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public HorizontalLayoutItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns HorizontalLayout.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/HorizontalLayout"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ BasePoint labelValue = ((HorizontalLayout) object).getBasePoint();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_HorizontalLayout_type")
+ : getString("_UI_HorizontalLayout_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.view.edit/src/rba/view/provider/IsChangedDisplayItemProvider.java b/rba.model.view.edit/src/rba/view/provider/IsChangedDisplayItemProvider.java
new file mode 100644
index 0000000..ef9a487
--- /dev/null
+++ b/rba.model.view.edit/src/rba/view/provider/IsChangedDisplayItemProvider.java
@@ -0,0 +1,101 @@
+/**
+ */
+package rba.view.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+
+import rba.view.IsChangedDisplay;
+
+/**
+ * This is the item provider adapter for a {@link rba.view.IsChangedDisplay} object. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @generated
+ */
+public class IsChangedDisplayItemProvider extends AreaOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsChangedDisplayItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns IsChangedDisplay.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/IsChangedDisplay"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((IsChangedDisplay) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_IsChangedDisplay_type")
+ : getString("_UI_IsChangedDisplay_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.view.edit/src/rba/view/provider/IsDisplayedItemProvider.java b/rba.model.view.edit/src/rba/view/provider/IsDisplayedItemProvider.java
new file mode 100644
index 0000000..ed8769f
--- /dev/null
+++ b/rba.model.view.edit/src/rba/view/provider/IsDisplayedItemProvider.java
@@ -0,0 +1,101 @@
+/**
+ */
+package rba.view.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+
+import rba.view.IsDisplayed;
+
+/**
+ * This is the item provider adapter for a {@link rba.view.IsDisplayed} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class IsDisplayedItemProvider extends AreaOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsDisplayedItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns IsDisplayed.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/IsDisplayed"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((IsDisplayed) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_IsDisplayed_type")
+ : getString("_UI_IsDisplayed_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.view.edit/src/rba/view/provider/IsDisplayedOnItemProvider.java b/rba.model.view.edit/src/rba/view/provider/IsDisplayedOnItemProvider.java
new file mode 100644
index 0000000..d64db04
--- /dev/null
+++ b/rba.model.view.edit/src/rba/view/provider/IsDisplayedOnItemProvider.java
@@ -0,0 +1,101 @@
+/**
+ */
+package rba.view.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+
+import rba.view.IsDisplayedOn;
+
+/**
+ * This is the item provider adapter for a {@link rba.view.IsDisplayedOn} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class IsDisplayedOnItemProvider extends ViewContentOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsDisplayedOnItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns IsDisplayedOn.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/IsDisplayedOn"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((IsDisplayedOn) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_IsDisplayedOn_type")
+ : getString("_UI_IsDisplayedOn_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.view.edit/src/rba/view/provider/IsHiddenItemProvider.java b/rba.model.view.edit/src/rba/view/provider/IsHiddenItemProvider.java
new file mode 100644
index 0000000..dc31c21
--- /dev/null
+++ b/rba.model.view.edit/src/rba/view/provider/IsHiddenItemProvider.java
@@ -0,0 +1,101 @@
+/**
+ */
+package rba.view.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+
+import rba.view.IsHidden;
+
+/**
+ * This is the item provider adapter for a {@link rba.view.IsHidden} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class IsHiddenItemProvider extends AreaOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsHiddenItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns IsHidden.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/IsHidden"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((IsHidden) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_IsHidden_type")
+ : getString("_UI_IsHidden_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.view.edit/src/rba/view/provider/IsTranslatedViewToItemProvider.java b/rba.model.view.edit/src/rba/view/provider/IsTranslatedViewToItemProvider.java
new file mode 100644
index 0000000..5a650ed
--- /dev/null
+++ b/rba.model.view.edit/src/rba/view/provider/IsTranslatedViewToItemProvider.java
@@ -0,0 +1,101 @@
+/**
+ */
+package rba.view.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+
+import rba.view.IsTranslatedViewTo;
+
+/**
+ * This is the item provider adapter for a {@link rba.view.IsTranslatedViewTo} object. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @generated
+ */
+public class IsTranslatedViewToItemProvider extends AreaOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsTranslatedViewToItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns IsTranslatedViewTo.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/IsTranslatedViewTo"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((IsTranslatedViewTo) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_IsTranslatedViewTo_type")
+ : getString("_UI_IsTranslatedViewTo_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.view.edit/src/rba/view/provider/IsVisibleItemProvider.java b/rba.model.view.edit/src/rba/view/provider/IsVisibleItemProvider.java
new file mode 100644
index 0000000..df20f9a
--- /dev/null
+++ b/rba.model.view.edit/src/rba/view/provider/IsVisibleItemProvider.java
@@ -0,0 +1,101 @@
+/**
+ */
+package rba.view.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+
+import rba.view.IsVisible;
+
+/**
+ * This is the item provider adapter for a {@link rba.view.IsVisible} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class IsVisibleItemProvider extends ViewContentOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsVisibleItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns IsVisible.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/IsVisible"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((IsVisible) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_IsVisible_type")
+ : getString("_UI_IsVisible_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.view.edit/src/rba/view/provider/LayoutManagerItemProvider.java b/rba.model.view.edit/src/rba/view/provider/LayoutManagerItemProvider.java
new file mode 100644
index 0000000..7dc8dd7
--- /dev/null
+++ b/rba.model.view.edit/src/rba/view/provider/LayoutManagerItemProvider.java
@@ -0,0 +1,103 @@
+/**
+ */
+package rba.view.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+
+/**
+ * This is the item provider adapter for a {@link rba.view.LayoutManager} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class LayoutManagerItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider,
+ IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public LayoutManagerItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ return getString("_UI_LayoutManager_type");
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return RbaViewEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/rba.model.view.edit/src/rba/view/provider/OffsetItemProvider.java b/rba.model.view.edit/src/rba/view/provider/OffsetItemProvider.java
new file mode 100644
index 0000000..b5fe55e
--- /dev/null
+++ b/rba.model.view.edit/src/rba/view/provider/OffsetItemProvider.java
@@ -0,0 +1,190 @@
+/**
+ */
+package rba.view.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import rba.core.provider.PackagableElementItemProvider;
+
+import rba.view.Offset;
+import rba.view.RBAViewFactory;
+import rba.view.RBAViewPackage;
+
+/**
+ * This is the item provider adapter for a {@link rba.view.Offset} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class OffsetItemProvider extends PackagableElementItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public OffsetItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addXPropertyDescriptor(object);
+ addYPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the X feature.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addXPropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(), getString("_UI_Offset_x_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_Offset_x_feature", "_UI_Offset_type"),
+ RBAViewPackage.Literals.OFFSET__X, true, false, false,
+ ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This adds a property descriptor for the Y feature.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addYPropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(), getString("_UI_Offset_y_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_Offset_y_feature", "_UI_Offset_type"),
+ RBAViewPackage.Literals.OFFSET__Y, true, false, false,
+ ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(RBAViewPackage.Literals.OFFSET__SIZE);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns Offset.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/Offset"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((Offset) object).getName();
+ return label == null || label.length() == 0 ? getString("_UI_Offset_type")
+ : getString("_UI_Offset_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(Offset.class)) {
+ case RBAViewPackage.OFFSET__X:
+ case RBAViewPackage.OFFSET__Y:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ case RBAViewPackage.OFFSET__SIZE:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.OFFSET__SIZE,
+ RBAViewFactory.eINSTANCE.createSizeReference()));
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return RbaViewEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/rba.model.view.edit/src/rba/view/provider/PositionContainerItemProvider.java b/rba.model.view.edit/src/rba/view/provider/PositionContainerItemProvider.java
new file mode 100644
index 0000000..fea6194
--- /dev/null
+++ b/rba.model.view.edit/src/rba/view/provider/PositionContainerItemProvider.java
@@ -0,0 +1,228 @@
+/**
+ */
+package rba.view.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import rba.view.PositionContainer;
+import rba.view.RBAViewFactory;
+import rba.view.RBAViewPackage;
+
+/**
+ * This is the item provider adapter for a {@link rba.view.PositionContainer} object. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @generated
+ */
+public class PositionContainerItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider,
+ IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public PositionContainerItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addXPropertyDescriptor(object);
+ addYPropertyDescriptor(object);
+ addBasePointPropertyDescriptor(object);
+ addAreaPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the X feature.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addXPropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(), getString("_UI_PositionContainer_x_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_PositionContainer_x_feature",
+ "_UI_PositionContainer_type"),
+ RBAViewPackage.Literals.POSITION_CONTAINER__X, true, false, false,
+ ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This adds a property descriptor for the Y feature.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addYPropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(), getString("_UI_PositionContainer_y_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_PositionContainer_y_feature",
+ "_UI_PositionContainer_type"),
+ RBAViewPackage.Literals.POSITION_CONTAINER__Y, true, false, false,
+ ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This adds a property descriptor for the Base Point feature.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addBasePointPropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(), getString("_UI_PositionContainer_basePoint_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_PositionContainer_basePoint_feature",
+ "_UI_PositionContainer_type"),
+ RBAViewPackage.Literals.POSITION_CONTAINER__BASE_POINT, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This adds a property descriptor for the Area feature.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addAreaPropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(), getString("_UI_PositionContainer_area_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_PositionContainer_area_feature",
+ "_UI_PositionContainer_type"),
+ RBAViewPackage.Literals.POSITION_CONTAINER__AREA, true, false, true, null, null, null));
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(RBAViewPackage.Literals.POSITION_CONTAINER__OFFSET);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns PositionContainer.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/PositionContainer"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ PositionContainer positionContainer = (PositionContainer) object;
+ return getString("_UI_PositionContainer_type") + " " + positionContainer.getX();
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(PositionContainer.class)) {
+ case RBAViewPackage.POSITION_CONTAINER__X:
+ case RBAViewPackage.POSITION_CONTAINER__Y:
+ case RBAViewPackage.POSITION_CONTAINER__BASE_POINT:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ case RBAViewPackage.POSITION_CONTAINER__OFFSET:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.POSITION_CONTAINER__OFFSET,
+ RBAViewFactory.eINSTANCE.createOffset()));
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return RbaViewEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/rba.model.view.edit/src/rba/view/provider/RBAViewItemProviderAdapterFactory.java b/rba.model.view.edit/src/rba/view/provider/RBAViewItemProviderAdapterFactory.java
new file mode 100644
index 0000000..c23c07e
--- /dev/null
+++ b/rba.model.view.edit/src/rba/view/provider/RBAViewItemProviderAdapterFactory.java
@@ -0,0 +1,742 @@
+/**
+ */
+package rba.view.provider;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.edit.provider.ChangeNotifier;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.IChangeNotifier;
+import org.eclipse.emf.edit.provider.IDisposable;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.INotifyChangedListener;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+import rba.view.util.RBAViewAdapterFactory;
+
+/**
+ * This is the factory that is used to provide the interfaces needed to support Viewers.
+ * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
+ * The adapters also support Eclipse property sheets.
+ * Note that most of the adapters are shared among multiple instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+public class RBAViewItemProviderAdapterFactory extends RBAViewAdapterFactory
+ implements ComposeableAdapterFactory, IChangeNotifier, IDisposable {
+ /**
+ * This keeps track of the root adapter factory that delegates to this adapter factory.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected ComposedAdapterFactory parentAdapterFactory;
+
+ /**
+ * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected IChangeNotifier changeNotifier = new ChangeNotifier();
+
+ /**
+ * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
+ * <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<Object> supportedTypes = new ArrayList<Object>();
+
+ /**
+ * This constructs an instance.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public RBAViewItemProviderAdapterFactory() {
+ supportedTypes.add(IEditingDomainItemProvider.class);
+ supportedTypes.add(IStructuredItemContentProvider.class);
+ supportedTypes.add(ITreeItemContentProvider.class);
+ supportedTypes.add(IItemLabelProvider.class);
+ supportedTypes.add(IItemPropertySource.class);
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.view.ViewContent} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected ViewContentItemProvider viewContentItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.view.ViewContent}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createViewContentAdapter() {
+ if (viewContentItemProvider == null) {
+ viewContentItemProvider = new ViewContentItemProvider(this);
+ }
+
+ return viewContentItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.view.ViewContentSet} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected ViewContentSetItemProvider viewContentSetItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.view.ViewContentSet}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createViewContentSetAdapter() {
+ if (viewContentSetItemProvider == null) {
+ viewContentSetItemProvider = new ViewContentSetItemProvider(this);
+ }
+
+ return viewContentSetItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.view.ViewContentState} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ViewContentStateItemProvider viewContentStateItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.view.ViewContentState}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createViewContentStateAdapter() {
+ if (viewContentStateItemProvider == null) {
+ viewContentStateItemProvider = new ViewContentStateItemProvider(this);
+ }
+
+ return viewContentStateItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.view.VerticalLayout} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected VerticalLayoutItemProvider verticalLayoutItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.view.VerticalLayout}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createVerticalLayoutAdapter() {
+ if (verticalLayoutItemProvider == null) {
+ verticalLayoutItemProvider = new VerticalLayoutItemProvider(this);
+ }
+
+ return verticalLayoutItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.view.HorizontalLayout} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected HorizontalLayoutItemProvider horizontalLayoutItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.view.HorizontalLayout}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createHorizontalLayoutAdapter() {
+ if (horizontalLayoutItemProvider == null) {
+ horizontalLayoutItemProvider = new HorizontalLayoutItemProvider(this);
+ }
+
+ return horizontalLayoutItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.view.FixedPositionLayout} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FixedPositionLayoutItemProvider fixedPositionLayoutItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.view.FixedPositionLayout}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createFixedPositionLayoutAdapter() {
+ if (fixedPositionLayoutItemProvider == null) {
+ fixedPositionLayoutItemProvider = new FixedPositionLayoutItemProvider(this);
+ }
+
+ return fixedPositionLayoutItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.view.PositionContainer} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PositionContainerItemProvider positionContainerItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.view.PositionContainer}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createPositionContainerAdapter() {
+ if (positionContainerItemProvider == null) {
+ positionContainerItemProvider = new PositionContainerItemProvider(this);
+ }
+
+ return positionContainerItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.view.Display} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected DisplayItemProvider displayItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.view.Display}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createDisplayAdapter() {
+ if (displayItemProvider == null) {
+ displayItemProvider = new DisplayItemProvider(this);
+ }
+
+ return displayItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.view.CompositeArea} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected CompositeAreaItemProvider compositeAreaItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.view.CompositeArea}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createCompositeAreaAdapter() {
+ if (compositeAreaItemProvider == null) {
+ compositeAreaItemProvider = new CompositeAreaItemProvider(this);
+ }
+
+ return compositeAreaItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.view.Area} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected AreaItemProvider areaItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.view.Area}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createAreaAdapter() {
+ if (areaItemProvider == null) {
+ areaItemProvider = new AreaItemProvider(this);
+ }
+
+ return areaItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.view.AreaSet} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected AreaSetItemProvider areaSetItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.view.AreaSet}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createAreaSetAdapter() {
+ if (areaSetItemProvider == null) {
+ areaSetItemProvider = new AreaSetItemProvider(this);
+ }
+
+ return areaSetItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.view.Size} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected SizeItemProvider sizeItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.view.Size}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createSizeAdapter() {
+ if (sizeItemProvider == null) {
+ sizeItemProvider = new SizeItemProvider(this);
+ }
+
+ return sizeItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.view.SizeReference} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected SizeReferenceItemProvider sizeReferenceItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.view.SizeReference}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createSizeReferenceAdapter() {
+ if (sizeReferenceItemProvider == null) {
+ sizeReferenceItemProvider = new SizeReferenceItemProvider(this);
+ }
+
+ return sizeReferenceItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.view.Offset} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected OffsetItemProvider offsetItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.view.Offset}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createOffsetAdapter() {
+ if (offsetItemProvider == null) {
+ offsetItemProvider = new OffsetItemProvider(this);
+ }
+
+ return offsetItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.view.IsDisplayed} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected IsDisplayedItemProvider isDisplayedItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.view.IsDisplayed}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createIsDisplayedAdapter() {
+ if (isDisplayedItemProvider == null) {
+ isDisplayedItemProvider = new IsDisplayedItemProvider(this);
+ }
+
+ return isDisplayedItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.view.DisplayingContent} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DisplayingContentItemProvider displayingContentItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.view.DisplayingContent}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createDisplayingContentAdapter() {
+ if (displayingContentItemProvider == null) {
+ displayingContentItemProvider = new DisplayingContentItemProvider(this);
+ }
+
+ return displayingContentItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.view.IsHidden} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected IsHiddenItemProvider isHiddenItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.view.IsHidden}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createIsHiddenAdapter() {
+ if (isHiddenItemProvider == null) {
+ isHiddenItemProvider = new IsHiddenItemProvider(this);
+ }
+
+ return isHiddenItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.view.IsVisible} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected IsVisibleItemProvider isVisibleItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.view.IsVisible}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createIsVisibleAdapter() {
+ if (isVisibleItemProvider == null) {
+ isVisibleItemProvider = new IsVisibleItemProvider(this);
+ }
+
+ return isVisibleItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.view.AllInstanceOfArea} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AllInstanceOfAreaItemProvider allInstanceOfAreaItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.view.AllInstanceOfArea}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createAllInstanceOfAreaAdapter() {
+ if (allInstanceOfAreaItemProvider == null) {
+ allInstanceOfAreaItemProvider = new AllInstanceOfAreaItemProvider(this);
+ }
+
+ return allInstanceOfAreaItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.view.AllInstanceOfViewContent} instances.
+ * <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected AllInstanceOfViewContentItemProvider allInstanceOfViewContentItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.view.AllInstanceOfViewContent}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createAllInstanceOfViewContentAdapter() {
+ if (allInstanceOfViewContentItemProvider == null) {
+ allInstanceOfViewContentItemProvider = new AllInstanceOfViewContentItemProvider(this);
+ }
+
+ return allInstanceOfViewContentItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.view.IsDisplayedOn} instances.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+ protected IsDisplayedOnItemProvider isDisplayedOnItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.view.IsDisplayedOn}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createIsDisplayedOnAdapter() {
+ if (isDisplayedOnItemProvider == null) {
+ isDisplayedOnItemProvider = new IsDisplayedOnItemProvider(this);
+ }
+
+ return isDisplayedOnItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.view.IsChangedDisplay} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IsChangedDisplayItemProvider isChangedDisplayItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.view.IsChangedDisplay}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createIsChangedDisplayAdapter() {
+ if (isChangedDisplayItemProvider == null) {
+ isChangedDisplayItemProvider = new IsChangedDisplayItemProvider(this);
+ }
+
+ return isChangedDisplayItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.view.IsTranslatedViewTo} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IsTranslatedViewToItemProvider isTranslatedViewToItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.view.IsTranslatedViewTo}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createIsTranslatedViewToAdapter() {
+ if (isTranslatedViewToItemProvider == null) {
+ isTranslatedViewToItemProvider = new IsTranslatedViewToItemProvider(this);
+ }
+
+ return isTranslatedViewToItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link rba.view.HideLowerPriority} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected HideLowerPriorityItemProvider hideLowerPriorityItemProvider;
+
+ /**
+ * This creates an adapter for a {@link rba.view.HideLowerPriority}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createHideLowerPriorityAdapter() {
+ if (hideLowerPriorityItemProvider == null) {
+ hideLowerPriorityItemProvider = new HideLowerPriorityItemProvider(this);
+ }
+
+ return hideLowerPriorityItemProvider;
+ }
+
+ /**
+ * This returns the root adapter factory that contains this factory.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ComposeableAdapterFactory getRootAdapterFactory() {
+ return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
+ }
+
+ /**
+ * This sets the composed adapter factory that contains this factory.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
+ this.parentAdapterFactory = parentAdapterFactory;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object type) {
+ return supportedTypes.contains(type) || super.isFactoryForType(type);
+ }
+
+ /**
+ * This implementation substitutes the factory itself as the key for the adapter. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @generated
+ */
+ @Override
+ public Adapter adapt(Notifier notifier, Object type) {
+ return super.adapt(notifier, this);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object adapt(Object object, Object type) {
+ if (isFactoryForType(type)) {
+ Object adapter = super.adapt(object, type);
+ if (!(type instanceof Class<?>) || (((Class<?>) type).isInstance(adapter))) {
+ return adapter;
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * This adds a listener.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void addListener(INotifyChangedListener notifyChangedListener) {
+ changeNotifier.addListener(notifyChangedListener);
+ }
+
+ /**
+ * This removes a listener.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void removeListener(INotifyChangedListener notifyChangedListener) {
+ changeNotifier.removeListener(notifyChangedListener);
+ }
+
+ /**
+ * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @generated
+ */
+ public void fireNotifyChanged(Notification notification) {
+ changeNotifier.fireNotifyChanged(notification);
+
+ if (parentAdapterFactory != null) {
+ parentAdapterFactory.fireNotifyChanged(notification);
+ }
+ }
+
+ /**
+ * This disposes all of the item providers created by this factory.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void dispose() {
+ if (viewContentItemProvider != null)
+ viewContentItemProvider.dispose();
+ if (viewContentSetItemProvider != null)
+ viewContentSetItemProvider.dispose();
+ if (viewContentStateItemProvider != null)
+ viewContentStateItemProvider.dispose();
+ if (verticalLayoutItemProvider != null)
+ verticalLayoutItemProvider.dispose();
+ if (horizontalLayoutItemProvider != null)
+ horizontalLayoutItemProvider.dispose();
+ if (fixedPositionLayoutItemProvider != null)
+ fixedPositionLayoutItemProvider.dispose();
+ if (positionContainerItemProvider != null)
+ positionContainerItemProvider.dispose();
+ if (displayItemProvider != null)
+ displayItemProvider.dispose();
+ if (compositeAreaItemProvider != null)
+ compositeAreaItemProvider.dispose();
+ if (areaItemProvider != null)
+ areaItemProvider.dispose();
+ if (areaSetItemProvider != null)
+ areaSetItemProvider.dispose();
+ if (sizeItemProvider != null)
+ sizeItemProvider.dispose();
+ if (sizeReferenceItemProvider != null)
+ sizeReferenceItemProvider.dispose();
+ if (offsetItemProvider != null)
+ offsetItemProvider.dispose();
+ if (isDisplayedItemProvider != null)
+ isDisplayedItemProvider.dispose();
+ if (displayingContentItemProvider != null)
+ displayingContentItemProvider.dispose();
+ if (isHiddenItemProvider != null)
+ isHiddenItemProvider.dispose();
+ if (isVisibleItemProvider != null)
+ isVisibleItemProvider.dispose();
+ if (allInstanceOfAreaItemProvider != null)
+ allInstanceOfAreaItemProvider.dispose();
+ if (allInstanceOfViewContentItemProvider != null)
+ allInstanceOfViewContentItemProvider.dispose();
+ if (isDisplayedOnItemProvider != null)
+ isDisplayedOnItemProvider.dispose();
+ if (isChangedDisplayItemProvider != null)
+ isChangedDisplayItemProvider.dispose();
+ if (isTranslatedViewToItemProvider != null)
+ isTranslatedViewToItemProvider.dispose();
+ if (hideLowerPriorityItemProvider != null)
+ hideLowerPriorityItemProvider.dispose();
+ }
+
+}
diff --git a/rba.model.view.edit/src/rba/view/provider/RbaViewEditPlugin.java b/rba.model.view.edit/src/rba/view/provider/RbaViewEditPlugin.java
new file mode 100644
index 0000000..cd8be48
--- /dev/null
+++ b/rba.model.view.edit/src/rba/view/provider/RbaViewEditPlugin.java
@@ -0,0 +1,81 @@
+/**
+ */
+package rba.view.provider;
+
+import org.eclipse.emf.common.EMFPlugin;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import rba.core.provider.RbaCoreEditPlugin;
+
+/**
+ * This is the central singleton for the RbaView edit plugin.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public final class RbaViewEditPlugin extends EMFPlugin {
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public static final RbaViewEditPlugin INSTANCE = new RbaViewEditPlugin();
+
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private static Implementation plugin;
+
+ /**
+ * Create the instance.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public RbaViewEditPlugin() {
+ super(new ResourceLocator[] { RbaCoreEditPlugin.INSTANCE, });
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the singleton instance.
+ * @generated
+ */
+ @Override
+ public ResourceLocator getPluginResourceLocator() {
+ return plugin;
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @return the singleton instance.
+ * @generated
+ */
+ public static Implementation getPlugin() {
+ return plugin;
+ }
+
+ /**
+ * The actual implementation of the Eclipse <b>Plugin</b>.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public static class Implementation extends EclipsePlugin {
+ /**
+ * Creates an instance.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public Implementation() {
+ super();
+
+ // Remember the static instance.
+ //
+ plugin = this;
+ }
+ }
+
+}
diff --git a/rba.model.view.edit/src/rba/view/provider/SizeIdentifierItemProvider.java b/rba.model.view.edit/src/rba/view/provider/SizeIdentifierItemProvider.java
new file mode 100644
index 0000000..6738220
--- /dev/null
+++ b/rba.model.view.edit/src/rba/view/provider/SizeIdentifierItemProvider.java
@@ -0,0 +1,103 @@
+/**
+ */
+package rba.view.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+
+/**
+ * This is the item provider adapter for a {@link rba.view.SizeIdentifier} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class SizeIdentifierItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider,
+ IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public SizeIdentifierItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ return getString("_UI_SizeIdentifier_type");
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return RbaViewEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/rba.model.view.edit/src/rba/view/provider/SizeItemProvider.java b/rba.model.view.edit/src/rba/view/provider/SizeItemProvider.java
new file mode 100644
index 0000000..b48bf7e
--- /dev/null
+++ b/rba.model.view.edit/src/rba/view/provider/SizeItemProvider.java
@@ -0,0 +1,153 @@
+/**
+ */
+package rba.view.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import rba.core.provider.PackagableElementItemProvider;
+
+import rba.view.RBAViewPackage;
+import rba.view.Size;
+
+/**
+ * This is the item provider adapter for a {@link rba.view.Size} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class SizeItemProvider extends PackagableElementItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public SizeItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addWidthPropertyDescriptor(object);
+ addHeightPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Width feature.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addWidthPropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(), getString("_UI_Size_width_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_Size_width_feature", "_UI_Size_type"),
+ RBAViewPackage.Literals.SIZE__WIDTH, true, false, false,
+ ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This adds a property descriptor for the Height feature.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addHeightPropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(), getString("_UI_Size_height_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_Size_height_feature", "_UI_Size_type"),
+ RBAViewPackage.Literals.SIZE__HEIGHT, true, false, false,
+ ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This returns Size.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/Size"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((Size) object).getName();
+ return label == null || label.length() == 0 ? getString("_UI_Size_type")
+ : getString("_UI_Size_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(Size.class)) {
+ case RBAViewPackage.SIZE__WIDTH:
+ case RBAViewPackage.SIZE__HEIGHT:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return RbaViewEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/rba.model.view.edit/src/rba/view/provider/SizeReferenceItemProvider.java b/rba.model.view.edit/src/rba/view/provider/SizeReferenceItemProvider.java
new file mode 100644
index 0000000..26de1c8
--- /dev/null
+++ b/rba.model.view.edit/src/rba/view/provider/SizeReferenceItemProvider.java
@@ -0,0 +1,112 @@
+/**
+ */
+package rba.view.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.view.RBAViewPackage;
+
+/**
+ * This is the item provider adapter for a {@link rba.view.SizeReference} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class SizeReferenceItemProvider extends SizeIdentifierItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public SizeReferenceItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addSizePropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Size feature.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addSizePropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(), getString("_UI_SizeReference_size_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_SizeReference_size_feature",
+ "_UI_SizeReference_type"),
+ RBAViewPackage.Literals.SIZE_REFERENCE__SIZE, true, false, true, null, null, null));
+ }
+
+ /**
+ * This returns SizeReference.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/SizeReference"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ return getString("_UI_SizeReference_type");
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.view.edit/src/rba/view/provider/VerticalLayoutItemProvider.java b/rba.model.view.edit/src/rba/view/provider/VerticalLayoutItemProvider.java
new file mode 100644
index 0000000..4a9bdac
--- /dev/null
+++ b/rba.model.view.edit/src/rba/view/provider/VerticalLayoutItemProvider.java
@@ -0,0 +1,100 @@
+/**
+ */
+package rba.view.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.view.BasePoint;
+import rba.view.VerticalLayout;
+
+/**
+ * This is the item provider adapter for a {@link rba.view.VerticalLayout} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class VerticalLayoutItemProvider extends AlignedLayoutItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public VerticalLayoutItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns VerticalLayout.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/VerticalLayout"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ BasePoint labelValue = ((VerticalLayout) object).getBasePoint();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_VerticalLayout_type")
+ : getString("_UI_VerticalLayout_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/rba.model.view.edit/src/rba/view/provider/ViewContentItemProvider.java b/rba.model.view.edit/src/rba/view/provider/ViewContentItemProvider.java
new file mode 100644
index 0000000..99d05bc
--- /dev/null
+++ b/rba.model.view.edit/src/rba/view/provider/ViewContentItemProvider.java
@@ -0,0 +1,161 @@
+/**
+ */
+package rba.view.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import rba.core.RBACorePackage;
+
+import rba.core.provider.ContentItemProvider;
+
+import rba.view.RBAViewFactory;
+import rba.view.RBAViewPackage;
+import rba.view.ViewContent;
+
+/**
+ * This is the item provider adapter for a {@link rba.view.ViewContent} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class ViewContentItemProvider extends ContentItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ViewContentItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(RBAViewPackage.Literals.VIEW_CONTENT__SIZE);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns ViewContent.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/ViewContent"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((ViewContent) object).getName();
+ return label == null || label.length() == 0 ? getString("_UI_ViewContent_type")
+ : getString("_UI_ViewContent_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(ViewContent.class)) {
+ case RBAViewPackage.VIEW_CONTENT__SIZE:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT__STATES,
+ RBAViewFactory.eINSTANCE.createViewContentState()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.VIEW_CONTENT__SIZE,
+ RBAViewFactory.eINSTANCE.createSize()));
+
+ newChildDescriptors.add(createChildParameter(RBAViewPackage.Literals.VIEW_CONTENT__SIZE,
+ RBAViewFactory.eINSTANCE.createSizeReference()));
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return RbaViewEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/rba.model.view.edit/src/rba/view/provider/ViewContentOperatorItemProvider.java b/rba.model.view.edit/src/rba/view/provider/ViewContentOperatorItemProvider.java
new file mode 100644
index 0000000..6fecd97
--- /dev/null
+++ b/rba.model.view.edit/src/rba/view/provider/ViewContentOperatorItemProvider.java
@@ -0,0 +1,138 @@
+/**
+ */
+package rba.view.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.ExpressionType;
+import rba.core.RBACorePackage;
+
+import rba.core.provider.ContentOperatorItemProvider;
+
+import rba.view.RBAViewFactory;
+import rba.view.ViewContentOperator;
+
+/**
+ * This is the item provider adapter for a {@link rba.view.ViewContentOperator} object.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @generated
+ */
+public class ViewContentOperatorItemProvider extends ContentOperatorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ViewContentOperatorItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ ExpressionType labelValue = ((ViewContentOperator) object).getType();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_ViewContentOperator_type")
+ : getString("_UI_ViewContentOperator_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBAViewFactory.eINSTANCE.createIsDisplayed()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBAViewFactory.eINSTANCE.createDisplayingContent()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBAViewFactory.eINSTANCE.createIsHidden()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBAViewFactory.eINSTANCE.createIsVisible()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBAViewFactory.eINSTANCE.createAllInstanceOfArea()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBAViewFactory.eINSTANCE.createAllInstanceOfViewContent()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBAViewFactory.eINSTANCE.createIsDisplayedOn()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBAViewFactory.eINSTANCE.createIsChangedDisplay()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBAViewFactory.eINSTANCE.createIsTranslatedViewTo()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.OPERATOR__OPERAND,
+ RBAViewFactory.eINSTANCE.createHideLowerPriority()));
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return RbaViewEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/rba.model.view.edit/src/rba/view/provider/ViewContentSetItemProvider.java b/rba.model.view.edit/src/rba/view/provider/ViewContentSetItemProvider.java
new file mode 100644
index 0000000..df1de3a
--- /dev/null
+++ b/rba.model.view.edit/src/rba/view/provider/ViewContentSetItemProvider.java
@@ -0,0 +1,112 @@
+/**
+ */
+package rba.view.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.provider.ContentSetItemProvider;
+
+import rba.view.ViewContentSet;
+
+/**
+ * This is the item provider adapter for a {@link rba.view.ViewContentSet} object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+public class ViewContentSetItemProvider extends ContentSetItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ViewContentSetItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns ViewContentSet.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/ViewContentSet"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((ViewContentSet) object).getName();
+ return label == null || label.length() == 0 ? getString("_UI_ViewContentSet_type")
+ : getString("_UI_ViewContentSet_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return RbaViewEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/rba.model.view.edit/src/rba/view/provider/ViewContentStateItemProvider.java b/rba.model.view.edit/src/rba/view/provider/ViewContentStateItemProvider.java
new file mode 100644
index 0000000..6b4c0de
--- /dev/null
+++ b/rba.model.view.edit/src/rba/view/provider/ViewContentStateItemProvider.java
@@ -0,0 +1,145 @@
+/**
+ */
+package rba.view.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import rba.core.RBACorePackage;
+
+import rba.core.provider.ContentStateItemProvider;
+
+import rba.view.RBAViewFactory;
+import rba.view.ViewContentState;
+
+/**
+ * This is the item provider adapter for a {@link rba.view.ViewContentState} object. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ * @generated
+ */
+public class ViewContentStateItemProvider extends ContentStateItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ViewContentStateItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns ViewContentState.gif.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/ViewContentState"));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((ViewContentState) object).getName();
+ return label == null || label.length() == 0 ? getString("_UI_ViewContentState_type")
+ : getString("_UI_ViewContentState_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBAViewFactory.eINSTANCE.createIsDisplayed()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBAViewFactory.eINSTANCE.createDisplayingContent()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBAViewFactory.eINSTANCE.createIsHidden()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBAViewFactory.eINSTANCE.createIsVisible()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBAViewFactory.eINSTANCE.createAllInstanceOfArea()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBAViewFactory.eINSTANCE.createAllInstanceOfViewContent()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBAViewFactory.eINSTANCE.createIsDisplayedOn()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBAViewFactory.eINSTANCE.createIsChangedDisplay()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBAViewFactory.eINSTANCE.createIsTranslatedViewTo()));
+
+ newChildDescriptors.add(createChildParameter(RBACorePackage.Literals.CONTENT_STATE__VALUE,
+ RBAViewFactory.eINSTANCE.createHideLowerPriority()));
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return RbaViewEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/rba.model.view/.classpath b/rba.model.view/.classpath
new file mode 100644
index 0000000..22f3064
--- /dev/null
+++ b/rba.model.view/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/rba.model.view/.project b/rba.model.view/.project
new file mode 100644
index 0000000..5a3c85f
--- /dev/null
+++ b/rba.model.view/.project
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>rba.model.view</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <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>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.sirius.nature.modelingproject</nature>
+ <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/rba.model.view/META-INF/MANIFEST.MF b/rba.model.view/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..98c20a2
--- /dev/null
+++ b/rba.model.view/META-INF/MANIFEST.MF
@@ -0,0 +1,16 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: rba.model.view;singleton:=true
+Bundle-Version: 0.1.0.qualifier
+Bundle-ClassPath: .
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: rba.view,
+ rba.view.impl,
+ rba.view.util
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.ecore;visibility:=reexport,
+ rba.model.core;visibility:=reexport
+Bundle-ActivationPolicy: lazy
diff --git a/rba.model.view/build.properties b/rba.model.view/build.properties
new file mode 100644
index 0000000..4465407
--- /dev/null
+++ b/rba.model.view/build.properties
@@ -0,0 +1,10 @@
+#
+
+bin.includes = .,\
+ model/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties
+jars.compile.order = .
+source.. = src/
+output.. = bin/
diff --git a/rba.model.view/model/rbaview.aird b/rba.model.view/model/rbaview.aird
new file mode 100644
index 0000000..5dec045
--- /dev/null
+++ b/rba.model.view/model/rbaview.aird
@@ -0,0 +1,1977 @@
+<?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:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:diagram="http://www.eclipse.org/sirius/diagram/1.1.0" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:viewpoint="http://www.eclipse.org/sirius/1.1.0" xsi:schemaLocation="http://www.eclipse.org/sirius/description/1.1.0 http://www.eclipse.org/sirius/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/style/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description/style">
+ <viewpoint:DAnalysis xmi:id="_e9wlcFqHEei8Ja-whe6hFw" selectedViews="_e_Mv4FqHEei8Ja-whe6hFw" version="12.0.0.201704271200">
+ <semanticResources>rbaview.ecore</semanticResources>
+ <semanticResources>rbaview.genmodel</semanticResources>
+ <semanticResources>platform:/resource/rba.core/model/rbacore.ecore</semanticResources>
+ <semanticResources>http://www.eclipse.org/emf/2002/Ecore</semanticResources>
+ <semanticResources>platform:/resource/rba.core/model/rbacore.genmodel</semanticResources>
+ <semanticResources>platform:/resource/rba.model.core/model/rbacore.genmodel</semanticResources>
+ <semanticResources>platform:/resource/rba.model.core/model/rbacore.ecore</semanticResources>
+ <ownedViews xmi:type="viewpoint:DView" xmi:id="_e_Mv4FqHEei8Ja-whe6hFw">
+ <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']"/>
+ <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" xmi:id="_e_fDxVqHEei8Ja-whe6hFw" name="rbaview" repPath="#_e_fDwFqHEei8Ja-whe6hFw">
+ <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
+ <target xmi:type="ecore:EPackage" href="rbaview.ecore#/"/>
+ </ownedRepresentationDescriptors>
+ </ownedViews>
+ <ownedViews xmi:type="viewpoint:DView" xmi:id="_IcupcIDqEeuMLsA3Cw6XYg">
+ <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Archetype']"/>
+ </ownedViews>
+ </viewpoint:DAnalysis>
+ <diagram:DSemanticDiagram xmi:id="_e_fDwFqHEei8Ja-whe6hFw" name="rbaview">
+ <ownedAnnotationEntries xmi:type="description:AnnotationEntry" xmi:id="_e_fDwVqHEei8Ja-whe6hFw" source="DANNOTATION_CUSTOMIZATION_KEY">
+ <data xmi:type="diagram:ComputedStyleDescriptionRegistry" xmi:id="_e_fDwlqHEei8Ja-whe6hFw">
+ <computedStyleDescriptions xmi:type="style:BundledImageDescription" xmi:id="_FyxXk1yTEei8Ja-whe6hFw" labelExpression="service:renderAsNode" labelAlignment="LEFT" tooltipExpression="service:renderTooltip" sizeComputationExpression="1">
+ <borderColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ <labelFormat>bold</labelFormat>
+ <labelColor xmi:type="description:UserFixedColor" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@userColorsPalettes[name='Ecore%20Palette']/@entries[name='Inherited']"/>
+ <color xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ </computedStyleDescriptions>
+ <computedStyleDescriptions xmi:type="style:BundledImageDescription" xmi:id="_FyxXrlyTEei8Ja-whe6hFw" labelExpression="service:render" labelAlignment="LEFT" tooltipExpression="service:renderTooltip" sizeComputationExpression="1">
+ <borderColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ <labelFormat>bold</labelFormat>
+ <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ <color xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ </computedStyleDescriptions>
+ <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_FzDrcVyTEei8Ja-whe6hFw" sourceArrow="FillDiamond" routingStyle="manhattan">
+ <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_FzDrclyTEei8Ja-whe6hFw" showIcon="false" labelExpression="service:render">
+ <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ </centerLabelStyleDescription>
+ <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_FzDrc1yTEei8Ja-whe6hFw" labelSize="6" showIcon="false" labelExpression="service:eKeysLabel">
+ <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/>
+ </endLabelStyleDescription>
+ </computedStyleDescriptions>
+ <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_FzDrgFyTEei8Ja-whe6hFw" routingStyle="manhattan">
+ <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_FzDrgVyTEei8Ja-whe6hFw" showIcon="false" labelExpression="service:render">
+ <labelFormat>bold</labelFormat>
+ <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ </centerLabelStyleDescription>
+ <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_FzDrglyTEei8Ja-whe6hFw" labelSize="6" showIcon="false" labelExpression="service:eKeysLabel">
+ <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/>
+ </endLabelStyleDescription>
+ </computedStyleDescriptions>
+ <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_FzDrj1yTEei8Ja-whe6hFw" sourceArrow="FillDiamond" routingStyle="manhattan">
+ <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_FzDrkFyTEei8Ja-whe6hFw" showIcon="false" labelExpression="service:render">
+ <labelFormat>bold</labelFormat>
+ <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ </centerLabelStyleDescription>
+ <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_FzDrkVyTEei8Ja-whe6hFw" labelSize="6" showIcon="false" labelExpression="service:eKeysLabel">
+ <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/>
+ </endLabelStyleDescription>
+ </computedStyleDescriptions>
+ </data>
+ </ownedAnnotationEntries>
+ <ownedAnnotationEntries xmi:type="description:AnnotationEntry" xmi:id="_e_fDxlqHEei8Ja-whe6hFw" source="GMF_DIAGRAMS">
+ <data xmi:type="notation:Diagram" xmi:id="_e_fDx1qHEei8Ja-whe6hFw" type="Sirius" element="_e_fDwFqHEei8Ja-whe6hFw" measurementUnit="Pixel">
+ <children xmi:type="notation:Node" xmi:id="_FzP4sFyTEei8Ja-whe6hFw" type="2003" element="_FyY9EFyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_FzP4s1yTEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_FzP4tFyTEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_FzV_hVyTEei8Ja-whe6hFw" type="3010" element="_FyxXkFyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_FzV_hlyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FzV_h1yTEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_U7UFYJnbEeijptRUADwljg" type="3010">
+ <styles xmi:type="notation:FontStyle" xmi:id="_U7UFYZnbEeijptRUADwljg" fontColor="8224125" fontName="Meiryo UI" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_U7UFYpnbEeijptRUADwljg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_U7UFY5nbEeijptRUADwljg" type="3010" element="_U7GqApnbEeijptRUADwljg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_U7UscJnbEeijptRUADwljg" fontColor="8224125" fontName="Meiryo UI" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_U7UscZnbEeijptRUADwljg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_80_K0GVyEeioJ4YlFk6YwA" type="3010" element="_80teAGVyEeioJ4YlFk6YwA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_80_K0WVyEeioJ4YlFk6YwA" fontColor="8224125" fontName="Meiryo UI" fontHeight="8" bold="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_80_K0mVyEeioJ4YlFk6YwA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_80_x42VyEeioJ4YlFk6YwA" type="3010">
+ <styles xmi:type="notation:FontStyle" xmi:id="_80_x5GVyEeioJ4YlFk6YwA" fontColor="8224125" fontName="Meiryo UI" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_80_x5WVyEeioJ4YlFk6YwA"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FzP4tVyTEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FzP4tlyTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_FzP4sVyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzP4slyTEei8Ja-whe6hFw" x="1586" y="320"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzP4t1yTEei8Ja-whe6hFw" type="2003" element="_FyY9ElyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_FzP4ulyTEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_FzP4u1yTEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_FzV_kVyTEei8Ja-whe6hFw" type="3010" element="_FyxXmVyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_FzV_klyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FzV_k1yTEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_U7UscpnbEeijptRUADwljg" type="3010">
+ <styles xmi:type="notation:FontStyle" xmi:id="_U7Usc5nbEeijptRUADwljg" fontColor="8224125" fontName="Meiryo UI" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_U7UsdJnbEeijptRUADwljg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_U7UsdZnbEeijptRUADwljg" type="3010" element="_U7HREpnbEeijptRUADwljg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_U7UsdpnbEeijptRUADwljg" fontColor="8224125" fontName="Meiryo UI" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_U7Usd5nbEeijptRUADwljg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_80_x5mVyEeioJ4YlFk6YwA" type="3010" element="_80uFFGVyEeioJ4YlFk6YwA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_80_x52VyEeioJ4YlFk6YwA" fontColor="8224125" fontName="Meiryo UI" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_80_x6GVyEeioJ4YlFk6YwA"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FzP4vFyTEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FzP4vVyTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_FzP4uFyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzP4uVyTEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzP4vlyTEei8Ja-whe6hFw" type="2003" element="_FyY9FFyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_FzP4wVyTEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_FzP4wlyTEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_FzV_l1yTEei8Ja-whe6hFw" type="3010" element="_FyxXnVyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_FzV_mFyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FzV_mVyTEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_80_x6WVyEeioJ4YlFk6YwA" type="3010" element="_80usIGVyEeioJ4YlFk6YwA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_80_x6mVyEeioJ4YlFk6YwA" fontColor="8224125" fontName="Meiryo UI" fontHeight="8" bold="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_80_x62VyEeioJ4YlFk6YwA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_80_x7GVyEeioJ4YlFk6YwA" type="3010" element="_80usImVyEeioJ4YlFk6YwA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_80_x7WVyEeioJ4YlFk6YwA" fontColor="8224125" fontName="Meiryo UI" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_80_x7mVyEeioJ4YlFk6YwA"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FzP4w1yTEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FzP4xFyTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_FzP4v1yTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzP4wFyTEei8Ja-whe6hFw" x="295"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzP4zFyTEei8Ja-whe6hFw" type="2003" element="_FyY9GFyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_FzP4z1yTEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_FzP40FyTEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_FzV_o1yTEei8Ja-whe6hFw" type="3010" element="_FyxXpVyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_FzV_pFyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FzV_pVyTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FzP40VyTEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FzP40lyTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_FzP4zVyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzP4zlyTEei8Ja-whe6hFw" x="2975" y="160"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzP401yTEei8Ja-whe6hFw" type="2003" element="_FyY9GlyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_FzP41lyTEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_FzP411yTEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_FzV_plyTEei8Ja-whe6hFw" type="3010" element="_FyxXp1yTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_FzV_p1yTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FzV_qFyTEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzV_qVyTEei8Ja-whe6hFw" type="3010" element="_FyxXqVyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_FzV_qlyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FzV_q1yTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FzP42FyTEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FzP42VyTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_FzP41FyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzP41VyTEei8Ja-whe6hFw" x="3100" y="320"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzP42lyTEei8Ja-whe6hFw" type="2003" element="_FyY9HFyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_FzP43VyTEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_FzP43lyTEei8Ja-whe6hFw" type="7004">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FzP431yTEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FzP44FyTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_FzP421yTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzP43FyTEei8Ja-whe6hFw" x="3280" y="580"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzP44VyTEei8Ja-whe6hFw" type="2003" element="_FyfDsVyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_FzP45FyTEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_FzP45VyTEei8Ja-whe6hFw" type="7004">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FzP45lyTEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FzP451yTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_FzP44lyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzP441yTEei8Ja-whe6hFw" x="3100" y="580"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzP46FyTEei8Ja-whe6hFw" type="2003" element="_FyfDs1yTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_FzP461yTEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_FzP47FyTEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_FzV_rFyTEei8Ja-whe6hFw" type="3010" element="_FyxXq1yTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_FzV_rVyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FzV_rlyTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FzP47VyTEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FzP47lyTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_FzP46VyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzP46lyTEei8Ja-whe6hFw" x="2975" y="1115"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzP471yTEei8Ja-whe6hFw" type="2003" element="_FyfDtVyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_FzP48lyTEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_FzP481yTEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_FzV_r1yTEei8Ja-whe6hFw" type="3010" element="_FyxXrVyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_FzV_sFyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8" bold="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FzV_sVyTEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzV_slyTEei8Ja-whe6hFw" type="3010" element="_Fy3eMVyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_FzV_s1yTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8" bold="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FzV_tFyTEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzV_tVyTEei8Ja-whe6hFw" type="3010" element="_Fy3eM1yTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_FzV_tlyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FzV_t1yTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FzP49FyTEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FzP49VyTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_FzP48FyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzP48VyTEei8Ja-whe6hFw" x="2015" y="955"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzP49lyTEei8Ja-whe6hFw" type="2003" element="_FyfDt1yTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_FzP4-VyTEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_FzP4-lyTEei8Ja-whe6hFw" type="7004">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FzP4-1yTEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FzP4_FyTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_FzP491yTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzP4-FyTEei8Ja-whe6hFw" x="1885" y="320"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzP4_VyTEei8Ja-whe6hFw" type="2003" element="_FyfDuVyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_FzP5AFyTEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_FzP5AVyTEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_FzV_uFyTEei8Ja-whe6hFw" type="3010" element="_Fy3eNVyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_FzV_uVyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FzV_ulyTEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzV_u1yTEei8Ja-whe6hFw" type="3010" element="_Fy3eN1yTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_FzV_vFyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FzV_vVyTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FzP5AlyTEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FzP5A1yTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_FzP4_lyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzP4_1yTEei8Ja-whe6hFw" x="2770" y="320"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzP5BFyTEei8Ja-whe6hFw" type="2003" element="_FyfDu1yTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_FzP5B1yTEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_FzP5CFyTEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_FzV_zVyTEei8Ja-whe6hFw" type="3010" element="_Fy3eRFyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_FzV_zlyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FzV_z1yTEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_U7UseJnbEeijptRUADwljg" type="3010" element="_U7JGQJnbEeijptRUADwljg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_U7UseZnbEeijptRUADwljg" fontColor="8224125" fontName="Meiryo UI" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_U7UsepnbEeijptRUADwljg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_U7Use5nbEeijptRUADwljg" type="3010">
+ <styles xmi:type="notation:FontStyle" xmi:id="_U7UsfJnbEeijptRUADwljg" fontColor="8224125" fontName="Meiryo UI" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_U7UsfZnbEeijptRUADwljg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_U7VTgJnbEeijptRUADwljg" type="3010" element="_U7JGRJnbEeijptRUADwljg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_U7VTgZnbEeijptRUADwljg" fontColor="8224125" fontName="Meiryo UI" fontHeight="8" bold="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_U7VTgpnbEeijptRUADwljg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzV_2VyTEei8Ja-whe6hFw" type="3010" element="_Fy3eTVyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_FzV_2lyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8" bold="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FzV_21yTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FzP5CVyTEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FzP5ClyTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_FzP5BVyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzP5BlyTEei8Ja-whe6hFw" x="2245" y="320"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzP5C1yTEei8Ja-whe6hFw" type="2003" element="_FyfDvVyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_FzP5DlyTEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_FzP5D1yTEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_FzV_3FyTEei8Ja-whe6hFw" type="3010" element="_Fy3eT1yTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_FzV_3VyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FzV_3lyTEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_U7VTg5nbEeijptRUADwljg" type="3010" element="_U7JtUJnbEeijptRUADwljg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_U7VThJnbEeijptRUADwljg" fontColor="8224125" fontName="Meiryo UI" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_U7VThZnbEeijptRUADwljg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_U7VThpnbEeijptRUADwljg" type="3010">
+ <styles xmi:type="notation:FontStyle" xmi:id="_U7VTh5nbEeijptRUADwljg" fontColor="8224125" fontName="Meiryo UI" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_U7VTiJnbEeijptRUADwljg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_U7VTiZnbEeijptRUADwljg" type="3010" element="_U7JtVJnbEeijptRUADwljg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_U7VTipnbEeijptRUADwljg" fontColor="8224125" fontName="Meiryo UI" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_U7VTi5nbEeijptRUADwljg"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FzP5EFyTEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FzP5EVyTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_FzP5DFyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzP5DVyTEei8Ja-whe6hFw" x="2270"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzP5ElyTEei8Ja-whe6hFw" type="2003" element="_FylKUFyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_FzP5FVyTEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_FzP5FlyTEei8Ja-whe6hFw" type="7004">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FzP5F1yTEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FzP5GFyTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_FzP5E1yTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzP5FFyTEei8Ja-whe6hFw" x="1649" y="160"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzP5GVyTEei8Ja-whe6hFw" type="2003" element="_FylKUlyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_FzP5HFyTEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_FzP5HVyTEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_FzV_31yTEei8Ja-whe6hFw" type="3010" element="_Fy3eUVyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_FzV_4FyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8" bold="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FzV_4VyTEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzV_4lyTEei8Ja-whe6hFw" type="3010" element="_Fy3eU1yTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_FzV_41yTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8" bold="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FzV_5FyTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FzP5HlyTEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FzP5H1yTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_FzP5GlyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzP5G1yTEei8Ja-whe6hFw" x="1350" y="320"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzP5IFyTEei8Ja-whe6hFw" type="2003" element="_FylKVFyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_FzP5I1yTEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_FzP5JFyTEei8Ja-whe6hFw" type="7004">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FzP5JVyTEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FzP5JlyTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_FzP5IVyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzP5IlyTEei8Ja-whe6hFw" x="1485" y="580"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzP5J1yTEei8Ja-whe6hFw" type="2003" element="_FylKVlyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_FzP5KlyTEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_FzP5K1yTEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_FzV_5VyTEei8Ja-whe6hFw" type="3010" element="_Fy3eVVyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_FzV_5lyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8" bold="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FzV_51yTEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzV_6FyTEei8Ja-whe6hFw" type="3010" element="_Fy3eV1yTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_FzV_6VyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8" bold="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FzV_6lyTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FzP5LFyTEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FzP5LVyTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_FzP5KFyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzP5KVyTEei8Ja-whe6hFw" x="1775" y="795"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzP5PFyTEei8Ja-whe6hFw" type="2003" element="_FylKXFyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_FzP5P1yTEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_FzP5QFyTEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_81BAA2VyEeioJ4YlFk6YwA" type="3010" element="_80y9lGVyEeioJ4YlFk6YwA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_81BABGVyEeioJ4YlFk6YwA" fontColor="8224125" fontName="Meiryo UI" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_81BABWVyEeioJ4YlFk6YwA"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FzP5QVyTEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FzP5QlyTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_FzP5PVyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzP5PlyTEei8Ja-whe6hFw" x="3783"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzP5Q1yTEei8Ja-whe6hFw" type="2003" element="_FylKXlyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_FzV_UFyTEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_FzV_UVyTEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_FzWABlyTEei8Ja-whe6hFw" type="3010" element="_Fy9k2FyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_FzWAB1yTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FzWACFyTEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzWACVyTEei8Ja-whe6hFw" type="3010" element="_Fy9k2lyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_FzWAClyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FzWAC1yTEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_81BABmVyEeioJ4YlFk6YwA" type="3010" element="_80zkoWVyEeioJ4YlFk6YwA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_81BAB2VyEeioJ4YlFk6YwA" fontColor="8224125" fontName="Meiryo UI" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_81BACGVyEeioJ4YlFk6YwA"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FzV_UlyTEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FzV_U1yTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_FzP5RFyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzP5RVyTEei8Ja-whe6hFw" x="3757" y="160"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzV_VFyTEei8Ja-whe6hFw" type="2003" element="_FylKYFyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_FzV_V1yTEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_FzV_WFyTEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_FzWAD1yTEei8Ja-whe6hFw" type="3010" element="_Fy9k3lyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_FzWAEFyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FzWAEVyTEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzcF8FyTEei8Ja-whe6hFw" type="3010" element="_Fy9k4FyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_FzcF8VyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FzcF8lyTEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_81BACWVyEeioJ4YlFk6YwA" type="3010" element="_800LsGVyEeioJ4YlFk6YwA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_81BACmVyEeioJ4YlFk6YwA" fontColor="8224125" fontName="Meiryo UI" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_81BAC2VyEeioJ4YlFk6YwA"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FzV_WVyTEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FzV_WlyTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_FzV_VVyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzV_VlyTEei8Ja-whe6hFw" x="3490" y="160"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzV_W1yTEei8Ja-whe6hFw" type="2003" element="_FylKYlyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_FzV_XlyTEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_FzV_X1yTEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_FzcF9lyTEei8Ja-whe6hFw" type="3010" element="_Fy9k5FyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_FzcF91yTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FzcF-FyTEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzcF-VyTEei8Ja-whe6hFw" type="3010" element="_Fy9k5lyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_FzcF-lyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FzcF-1yTEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_81BADGVyEeioJ4YlFk6YwA" type="3010" element="_800LsmVyEeioJ4YlFk6YwA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_81BADWVyEeioJ4YlFk6YwA" fontColor="8224125" fontName="Meiryo UI" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_81BADmVyEeioJ4YlFk6YwA"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FzV_YFyTEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FzV_YVyTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_FzV_XFyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzV_XVyTEei8Ja-whe6hFw" x="4055" y="160"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzV_YlyTEei8Ja-whe6hFw" type="2003" element="_FylKZFyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_FzV_ZVyTEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_FzV_ZlyTEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_FzcF_1yTEei8Ja-whe6hFw" type="3010" element="_Fy9k6lyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_FzcGAFyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FzcGAVyTEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_81BnEGVyEeioJ4YlFk6YwA" type="3010" element="_800ywGVyEeioJ4YlFk6YwA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_81BnEWVyEeioJ4YlFk6YwA" fontColor="8224125" fontName="Meiryo UI" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_81BnEmVyEeioJ4YlFk6YwA"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FzV_Z1yTEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FzV_aFyTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_FzV_Y1yTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzV_ZFyTEei8Ja-whe6hFw" x="4325"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzV_aVyTEei8Ja-whe6hFw" type="2003" element="_FylKZlyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_FzV_bFyTEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_FzV_bVyTEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_FzcGBVyTEei8Ja-whe6hFw" type="3010" element="_Fy9k7lyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_FzcGBlyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FzcGB1yTEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_81BnE2VyEeioJ4YlFk6YwA" type="3010" element="_800ywmVyEeioJ4YlFk6YwA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_81BnFGVyEeioJ4YlFk6YwA" fontColor="8224125" fontName="Meiryo UI" fontHeight="8" italic="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_81BnFWVyEeioJ4YlFk6YwA"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FzV_blyTEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FzV_b1yTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_FzV_alyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzV_a1yTEei8Ja-whe6hFw" x="4395" y="160"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzV_cFyTEei8Ja-whe6hFw" type="2003" element="_FylKaFyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_FzV_c1yTEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_FzV_dFyTEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_FzcGC1yTEei8Ja-whe6hFw" type="3010" element="_Fy9k8lyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_FzcGDFyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FzcGDVyTEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzcGDlyTEei8Ja-whe6hFw" type="3010" element="_Fy9k9FyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_FzcGD1yTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FzcGEFyTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FzV_dVyTEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FzV_dlyTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_FzV_cVyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzV_clyTEei8Ja-whe6hFw" x="595"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzV_d1yTEei8Ja-whe6hFw" type="2003" element="_FylKalyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_FzV_elyTEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_FzV_e1yTEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_FzcGEVyTEei8Ja-whe6hFw" type="3010" element="_Fy9k9lyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_FzcGElyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FzcGE1yTEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzcGFFyTEei8Ja-whe6hFw" type="3010" element="_Fy9k-FyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_FzcGFVyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FzcGFlyTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FzV_fFyTEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FzV_fVyTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_FzV_eFyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzV_eVyTEei8Ja-whe6hFw" x="890"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzV_flyTEei8Ja-whe6hFw" type="2003" element="_FylKbFyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_FzV_gVyTEei8Ja-whe6hFw" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_FzV_glyTEei8Ja-whe6hFw" type="7004">
+ <children xmi:type="notation:Node" xmi:id="_FzcGF1yTEei8Ja-whe6hFw" type="3010" element="_Fy9k-lyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_FzcGGFyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FzcGGVyTEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzcGGlyTEei8Ja-whe6hFw" type="3010" element="_Fy9k_FyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_FzcGG1yTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FzcGHFyTEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzcGHVyTEei8Ja-whe6hFw" type="3010" element="_Fy9k_lyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_FzcGHlyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FzcGH1yTEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzcGIFyTEei8Ja-whe6hFw" type="3010" element="_Fy9lAFyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_FzcGIVyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FzcGIlyTEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzcGI1yTEei8Ja-whe6hFw" type="3010" element="_Fy9lAlyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_FzcGJFyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FzcGJVyTEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzcGJlyTEei8Ja-whe6hFw" type="3010" element="_Fy9lBFyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_FzcGJ1yTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FzcGKFyTEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzcGKVyTEei8Ja-whe6hFw" type="3010" element="_Fy9lBlyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_FzcGKlyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FzcGK1yTEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzcGLFyTEei8Ja-whe6hFw" type="3010" element="_Fy9lCFyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_FzcGLVyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FzcGLlyTEei8Ja-whe6hFw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzcGL1yTEei8Ja-whe6hFw" type="3010" element="_Fy9lClyTEei8Ja-whe6hFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_FzcGMFyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FzcGMVyTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FzV_g1yTEei8Ja-whe6hFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FzV_hFyTEei8Ja-whe6hFw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_FzV_f1yTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzV_gFyTEei8Ja-whe6hFw" x="1190"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_e_fDyFqHEei8Ja-whe6hFw"/>
+ <edges xmi:type="notation:Edge" xmi:id="_FzcGMlyTEei8Ja-whe6hFw" type="4001" element="_FzDrcFyTEei8Ja-whe6hFw" source="_FzP4sFyTEei8Ja-whe6hFw" target="_FzP5ElyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_FzcGNlyTEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzcGN1yTEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzcGOFyTEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzcGOVyTEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzcGOlyTEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzcGO1yTEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_FzcGM1yTEei8Ja-whe6hFw" routing="Rectilinear"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_FzcGNFyTEei8Ja-whe6hFw" fontColor="7490599" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_FzcGNVyTEei8Ja-whe6hFw" points="[0, -101, 0, 110]$[0, -161, 0, 50]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FzcGPFyTEei8Ja-whe6hFw" id="(0.5,0.5)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FzcGPVyTEei8Ja-whe6hFw" id="(0.5,0.5)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_FzcGSlyTEei8Ja-whe6hFw" type="4001" element="_FzDre1yTEei8Ja-whe6hFw" source="_FzP46FyTEei8Ja-whe6hFw" target="_FzP471yTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_FzcGTlyTEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzcGT1yTEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzcGUFyTEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzcGUVyTEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzcGUlyTEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzcGU1yTEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_FzcGS1yTEei8Ja-whe6hFw" routing="Rectilinear"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_FzcGTFyTEei8Ja-whe6hFw" fontColor="7490599" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_FzcGTVyTEei8Ja-whe6hFw" points="[0, 0, 929, 60]$[-929, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FzcGVFyTEei8Ja-whe6hFw" id="(0.49685534591194974,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FzcGVVyTEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_FzcGYlyTEei8Ja-whe6hFw" type="4001" element="_FzDrhlyTEei8Ja-whe6hFw" source="_FzP471yTEei8Ja-whe6hFw" target="_FzP5J1yTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_FzcGZlyTEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzcGZ1yTEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzcGaFyTEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzcGaVyTEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzcGalyTEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzcGa1yTEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_FzcGY1yTEei8Ja-whe6hFw" routing="Rectilinear"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_FzcGZFyTEei8Ja-whe6hFw" fontColor="7490599" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_FzcGZVyTEei8Ja-whe6hFw" points="[0, 0, 291, 60]$[-291, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FzcGbFyTEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FzcGbVyTEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_FzcGelyTEei8Ja-whe6hFw" type="4001" element="_FzDrjlyTEei8Ja-whe6hFw" source="_FzP49lyTEei8Ja-whe6hFw" target="_FzP5ElyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_FzcGflyTEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzcGf1yTEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzcGgFyTEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzcGgVyTEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzcGglyTEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzcGg1yTEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_FzcGe1yTEei8Ja-whe6hFw" routing="Rectilinear"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_FzcGfFyTEei8Ja-whe6hFw" fontColor="7490599" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_FzcGfVyTEei8Ja-whe6hFw" points="[0, 0, 239, 60]$[-239, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FzcGhFyTEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FzcGhVyTEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_FzcGhlyTEei8Ja-whe6hFw" type="4001" element="_FzDrlVyTEei8Ja-whe6hFw" source="_FzP4_VyTEei8Ja-whe6hFw" target="_FzP4zFyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_FzcGilyTEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzcGi1yTEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzcGjFyTEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzcGjVyTEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzcGjlyTEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzcGj1yTEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_FzcGh1yTEei8Ja-whe6hFw" routing="Rectilinear"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_FzcGiFyTEei8Ja-whe6hFw" fontColor="7490599" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_FzcGiVyTEei8Ja-whe6hFw" points="[0, 0, -164, 60]$[164, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FzcGkFyTEei8Ja-whe6hFw" id="(0.4978902953586498,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FzcGkVyTEei8Ja-whe6hFw" id="(0.49685534591194974,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_FzcGklyTEei8Ja-whe6hFw" type="4001" element="_FzDrmVyTEei8Ja-whe6hFw" source="_FzP5BFyTEei8Ja-whe6hFw" target="_FzP5ElyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_FzcGllyTEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzcGl1yTEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzcGmFyTEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzcGmVyTEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzcGmlyTEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzcGm1yTEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_FzcGk1yTEei8Ja-whe6hFw" routing="Rectilinear"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_FzcGlFyTEei8Ja-whe6hFw" fontColor="7490599" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_FzcGlVyTEei8Ja-whe6hFw" points="[0, 0, 681, 60]$[-681, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FzcGnFyTEei8Ja-whe6hFw" id="(0.4982578397212544,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FzcGnVyTEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_FzcGnlyTEei8Ja-whe6hFw" type="4001" element="_FzDrnVyTEei8Ja-whe6hFw" source="_FzP5IFyTEei8Ja-whe6hFw" target="_FzP5GVyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_FzcGolyTEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzcGo1yTEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzcGpFyTEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzcGpVyTEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzcGplyTEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzcGp1yTEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_FzcGn1yTEei8Ja-whe6hFw" routing="Rectilinear"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_FzcGoFyTEei8Ja-whe6hFw" fontColor="7490599" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_FzcGoVyTEei8Ja-whe6hFw" points="[0, 0, 105, 60]$[-105, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FzcGqFyTEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FzcGqVyTEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_FzcGqlyTEei8Ja-whe6hFw" type="4001" element="_FzDroVyTEei8Ja-whe6hFw" source="_FzP5J1yTEei8Ja-whe6hFw" target="_FzP5IFyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_FzcGrlyTEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzcGr1yTEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzcGsFyTEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzcGsVyTEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FzcGslyTEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzcGs1yTEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_FzcGq1yTEei8Ja-whe6hFw" routing="Rectilinear"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_FzcGrFyTEei8Ja-whe6hFw" fontColor="7490599" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_FzcGrVyTEei8Ja-whe6hFw" points="[0, 0, 291, 60]$[-291, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FzcGtFyTEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FzcGtVyTEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_FziMlFyTEei8Ja-whe6hFw" type="4001" element="_FzJyEFyTEei8Ja-whe6hFw" source="_FzP401yTEei8Ja-whe6hFw" target="_FzP4zFyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_FziMmFyTEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FziMmVyTEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FziMmlyTEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FziMm1yTEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FziMnFyTEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FziMnVyTEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_FziMlVyTEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_FziMllyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_FziMl1yTEei8Ja-whe6hFw" points="[0, 0, 156, 60]$[-156, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FziMnlyTEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FziMn1yTEei8Ja-whe6hFw" id="(0.49685534591194974,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_FziMoFyTEei8Ja-whe6hFw" type="4001" element="_FzJyFFyTEei8Ja-whe6hFw" source="_FzP42lyTEei8Ja-whe6hFw" target="_FzP401yTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_FziMpFyTEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FziMpVyTEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FziMplyTEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FziMp1yTEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FziMqFyTEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FziMqVyTEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_FziMoVyTEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_FziMolyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_FziMo1yTEei8Ja-whe6hFw" points="[0, 0, 130, 60]$[-130, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FziMqlyTEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FziMq1yTEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_FziMrFyTEei8Ja-whe6hFw" type="4001" element="_FzJyGFyTEei8Ja-whe6hFw" source="_FzP44VyTEei8Ja-whe6hFw" target="_FzP401yTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_FziMsFyTEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FziMsVyTEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FziMslyTEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FziMs1yTEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FziMtFyTEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FziMtVyTEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_FziMrVyTEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_FziMrlyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_FziMr1yTEei8Ja-whe6hFw" points="[0, 0, -50, 60]$[50, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FziMtlyTEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FziMt1yTEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_FziMuFyTEei8Ja-whe6hFw" type="4001" element="_FzJyHFyTEei8Ja-whe6hFw" source="_FzP46FyTEei8Ja-whe6hFw" target="_FzP4zFyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_FziMvFyTEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FziMvVyTEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FziMvlyTEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FziMv1yTEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FziMwFyTEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FziMwVyTEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_FziMuVyTEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_FziMulyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_FziMu1yTEei8Ja-whe6hFw" points="[0, 0, 0, 853]$[0, -853, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FziMwlyTEei8Ja-whe6hFw" id="(0.49685534591194974,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FziMw1yTEei8Ja-whe6hFw" id="(0.49685534591194974,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_FziM6FyTEei8Ja-whe6hFw" type="4001" element="_FzJyLFyTEei8Ja-whe6hFw" source="_FzP5GVyTEei8Ja-whe6hFw" target="_FzP5ElyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_FziM7FyTEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FziM7VyTEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FziM7lyTEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FziM71yTEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FziM8FyTEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FziM8VyTEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_FziM6VyTEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_FziM6lyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_FziM61yTEei8Ja-whe6hFw" points="[0, 0, -269, 60]$[269, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FziM8lyTEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FziM81yTEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_FziM9FyTEei8Ja-whe6hFw" type="4001" element="_FzJyMFyTEei8Ja-whe6hFw" source="_FzP5IFyTEei8Ja-whe6hFw" target="_FzP5ElyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_FziM-FyTEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FziM-VyTEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FziM-lyTEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FziM-1yTEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FziM_FyTEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FziM_VyTEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_FziM9VyTEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_FziM9lyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_FziM91yTEei8Ja-whe6hFw" points="[0, 0, -164, 322]$[1, -262, -163, 60]$[164, -322, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FziM_lyTEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FziM_1yTEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_FziNDFyTEei8Ja-whe6hFw" type="4001" element="_FzJyOFyTEei8Ja-whe6hFw" source="_FzP5Q1yTEei8Ja-whe6hFw" target="_FzP5PFyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_FziNEFyTEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FziNEVyTEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FziNElyTEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FziNE1yTEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FziNFFyTEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FziNFVyTEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_FziNDVyTEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_FziNDlyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_FziND1yTEei8Ja-whe6hFw" points="[0, 0, 0, 60]$[0, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FziNFlyTEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FziNF1yTEei8Ja-whe6hFw" id="(0.4973821989528796,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_FziNGFyTEei8Ja-whe6hFw" type="4001" element="_FzJyPFyTEei8Ja-whe6hFw" source="_FzV_VFyTEei8Ja-whe6hFw" target="_FzP5PFyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_FziNHFyTEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FziNHVyTEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FziNHlyTEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FziNH1yTEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FziNIFyTEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FziNIVyTEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_FziNGVyTEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_FziNGlyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_FziNG1yTEei8Ja-whe6hFw" points="[0, 0, -298, 60]$[298, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FziNIlyTEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FziNI1yTEei8Ja-whe6hFw" id="(0.4973821989528796,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_FziNJFyTEei8Ja-whe6hFw" type="4001" element="_FzJyQFyTEei8Ja-whe6hFw" source="_FzV_W1yTEei8Ja-whe6hFw" target="_FzP5PFyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_FziNKFyTEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FziNKVyTEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FziNKlyTEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FziNK1yTEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FziNLFyTEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FziNLVyTEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_FziNJVyTEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_FziNJlyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_FziNJ1yTEei8Ja-whe6hFw" points="[0, 0, 298, 60]$[-298, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FziNLlyTEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FziNL1yTEei8Ja-whe6hFw" id="(0.4973821989528796,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_FziNMFyTEei8Ja-whe6hFw" type="4001" element="_FzJyRFyTEei8Ja-whe6hFw" source="_FzV_aVyTEei8Ja-whe6hFw" target="_FzV_YlyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_FziNNFyTEei8Ja-whe6hFw" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FziNNVyTEei8Ja-whe6hFw" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FziNNlyTEei8Ja-whe6hFw" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FziNN1yTEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FziNOFyTEei8Ja-whe6hFw" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FziNOVyTEei8Ja-whe6hFw" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_FziNMVyTEei8Ja-whe6hFw" routing="Tree"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_FziNMlyTEei8Ja-whe6hFw" fontName="メイリオ" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_FziNM1yTEei8Ja-whe6hFw" points="[0, 0, 0, 60]$[0, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FziNOlyTEei8Ja-whe6hFw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FziNO1yTEei8Ja-whe6hFw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_U7V6kJnbEeijptRUADwljg" type="4001" element="_U7PM45nbEeijptRUADwljg" source="_FzP401yTEei8Ja-whe6hFw" target="_FzP5BFyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_U7V6lJnbEeijptRUADwljg" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_U7V6lZnbEeijptRUADwljg" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_U7V6lpnbEeijptRUADwljg" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_U7V6l5nbEeijptRUADwljg" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_U7WhoJnbEeijptRUADwljg" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_U7WhoZnbEeijptRUADwljg" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_U7V6kZnbEeijptRUADwljg" routing="Rectilinear"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_U7V6kpnbEeijptRUADwljg" fontColor="7490599" fontName="Meiryo UI" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_U7V6k5nbEeijptRUADwljg" points="[3100, 320, 3100, 320]$[2245, 320, 2245, 320]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_U7WhopnbEeijptRUADwljg" id="(0.5,0.5)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_U7Who5nbEeijptRUADwljg" id="(0.5,0.5)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_U7WhpJnbEeijptRUADwljg" type="4001" element="_U7PM55nbEeijptRUADwljg" source="_FzP471yTEei8Ja-whe6hFw" target="_FzP5BFyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_U7XIsJnbEeijptRUADwljg" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_U7XIsZnbEeijptRUADwljg" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_U7XIspnbEeijptRUADwljg" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_U7XIs5nbEeijptRUADwljg" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_U7XItJnbEeijptRUADwljg" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_U7XItZnbEeijptRUADwljg" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_U7WhpZnbEeijptRUADwljg" routing="Rectilinear"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_U7WhppnbEeijptRUADwljg" fontColor="7490599" fontName="Meiryo UI" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_U7Whp5nbEeijptRUADwljg" points="[2015, 955, 2015, 955]$[2245, 320, 2245, 320]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_U7XvwJnbEeijptRUADwljg" id="(0.5,0.5)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_U7XvwZnbEeijptRUADwljg" id="(0.5,0.5)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_U7XvwpnbEeijptRUADwljg" type="4001" element="_U7Pz85nbEeijptRUADwljg" source="_FzP49lyTEei8Ja-whe6hFw" target="_FzP4_VyTEei8Ja-whe6hFw">
+ <children xmi:type="notation:Node" xmi:id="_U7XvxpnbEeijptRUADwljg" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_U7Xvx5nbEeijptRUADwljg" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_U7XvyJnbEeijptRUADwljg" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_U7XvyZnbEeijptRUADwljg" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_U7XvypnbEeijptRUADwljg" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_U7Xvy5nbEeijptRUADwljg" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_U7Xvw5nbEeijptRUADwljg" routing="Rectilinear"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_U7XvxJnbEeijptRUADwljg" fontColor="7490599" fontName="Meiryo UI" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_U7XvxZnbEeijptRUADwljg" points="[1885, 320, 1885, 320]$[2770, 320, 2770, 320]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_U7XvzJnbEeijptRUADwljg" id="(0.5,0.5)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_U7XvzZnbEeijptRUADwljg" id="(0.5,0.5)"/>
+ </edges>
+ </data>
+ </ownedAnnotationEntries>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_FyY9EFyTEei8Ja-whe6hFw" name="ViewContent" tooltipText="" outgoingEdges="_FzDrcFyTEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbaview.ecore#//ViewContent"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbaview.ecore#//ViewContent"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_FyY9EVyTEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_FyxXkFyTEei8Ja-whe6hFw" name="getExpressionType() : ExpressionType" tooltipText="getExpressionType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbaview.ecore#//ViewContent/getExpressionType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbaview.ecore#//ViewContent/getExpressionType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_FyxXkVyTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Ih42QIDqEeuMLsA3Cw6XYg" name=" tags : Tag" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//RuleObject/tags"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//RuleObject/tags"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Ih9HsIDqEeuMLsA3Cw6XYg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_IiALAIDqEeuMLsA3Cw6XYg" name=" contentGroup : ContentSet" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//AbstractContent/contentGroup"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//AbstractContent/contentGroup"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_IiAyEIDqEeuMLsA3Cw6XYg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_U7GqApnbEeijptRUADwljg" name=" allocatable : AbstractAllocatable" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//AbstractContent/allocatable"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//AbstractContent/allocatable"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_U7GqA5nbEeijptRUADwljg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_80teAGVyEeioJ4YlFk6YwA" name=" states : ContentState" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Content/states"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Content/states"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_IiBZIIDqEeuMLsA3Cw6XYg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_FyY9ElyTEei8Ja-whe6hFw" name="ViewContentSet" tooltipText="" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbaview.ecore#//ViewContentSet"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbaview.ecore#//ViewContentSet"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_FyY9E1yTEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_FyxXmVyTEei8Ja-whe6hFw" name="getExpressionType() : ExpressionType" tooltipText="getExpressionType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbaview.ecore#//ViewContentSet/getExpressionType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbaview.ecore#//ViewContentSet/getExpressionType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_FyxXmlyTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_IiCAMIDqEeuMLsA3Cw6XYg" name=" tags : Tag" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//RuleObject/tags"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//RuleObject/tags"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_IiCnQIDqEeuMLsA3Cw6XYg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_IiCnQYDqEeuMLsA3Cw6XYg" name=" contentGroup : ContentSet" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//AbstractContent/contentGroup"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//AbstractContent/contentGroup"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_IiCnQoDqEeuMLsA3Cw6XYg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_U7HREpnbEeijptRUADwljg" name=" allocatable : AbstractAllocatable" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//AbstractContent/allocatable"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//AbstractContent/allocatable"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_U7HRE5nbEeijptRUADwljg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_80uFFGVyEeioJ4YlFk6YwA" name=" target : AbstractContent" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//ContentSet/target"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//ContentSet/target"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_80uFFWVyEeioJ4YlFk6YwA" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_FyY9FFyTEei8Ja-whe6hFw" name="ViewContentState" tooltipText="" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbaview.ecore#//ViewContentState"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbaview.ecore#//ViewContentState"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_FyY9FVyTEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_FyxXnVyTEei8Ja-whe6hFw" name="getExpressionType() : ExpressionType" tooltipText="getExpressionType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbaview.ecore#//ViewContentState/getExpressionType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbaview.ecore#//ViewContentState/getExpressionType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_FyxXnlyTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_IiD1YIDqEeuMLsA3Cw6XYg" name=" tags : Tag" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//RuleObject/tags"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//RuleObject/tags"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_IiEccIDqEeuMLsA3Cw6XYg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_80usIGVyEeioJ4YlFk6YwA" name=" value : Expression" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//ContentState/value"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//ContentState/value"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_80usIWVyEeioJ4YlFk6YwA" labelColor="125,125,125" labelAlignment="LEFT" description="_FyxXk1yTEei8Ja-whe6hFw">
+ <labelFormat>bold</labelFormat>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_80usImVyEeioJ4YlFk6YwA" name=" owner : Content" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//ContentState/owner"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//ContentState/owner"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_80usI2VyEeioJ4YlFk6YwA" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_FyY9GFyTEei8Ja-whe6hFw" name="LayoutManager" tooltipText="" incomingEdges="_FzDrlVyTEei8Ja-whe6hFw _FzJyEFyTEei8Ja-whe6hFw _FzJyHFyTEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbaview.ecore#//LayoutManager"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbaview.ecore#//LayoutManager"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_FyY9GVyTEei8Ja-whe6hFw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_FyxXpVyTEei8Ja-whe6hFw" name="collectLeafArea() : Area" tooltipText="collectLeafArea() : Area">
+ <target xmi:type="ecore:EOperation" href="rbaview.ecore#//LayoutManager/collectLeafArea"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbaview.ecore#//LayoutManager/collectLeafArea"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_FyxXplyTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_FyY9GlyTEei8Ja-whe6hFw" name="AlignedLayout" tooltipText="" outgoingEdges="_FzJyEFyTEei8Ja-whe6hFw _U7PM45nbEeijptRUADwljg" incomingEdges="_FzJyFFyTEei8Ja-whe6hFw _FzJyGFyTEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbaview.ecore#//AlignedLayout"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbaview.ecore#//AlignedLayout"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_FyY9G1yTEei8Ja-whe6hFw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_FyxXp1yTEei8Ja-whe6hFw" name="basePoint : BasePoint = LEFT_TOP" tooltipText="">
+ <target xmi:type="ecore:EAttribute" href="rbaview.ecore#//AlignedLayout/basePoint"/>
+ <semanticElements xmi:type="ecore:EAttribute" href="rbaview.ecore#//AlignedLayout/basePoint"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_FyxXqFyTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_FyxXqVyTEei8Ja-whe6hFw" name="collectLeafArea() : Area" tooltipText="collectLeafArea() : Area">
+ <target xmi:type="ecore:EOperation" href="rbaview.ecore#//AlignedLayout/collectLeafArea"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbaview.ecore#//AlignedLayout/collectLeafArea"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_FyxXqlyTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_FyY9HFyTEei8Ja-whe6hFw" name="VerticalLayout" tooltipText="" outgoingEdges="_FzJyFFyTEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbaview.ecore#//VerticalLayout"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbaview.ecore#//VerticalLayout"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_FyfDsFyTEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_FyfDsVyTEei8Ja-whe6hFw" name="HorizontalLayout" tooltipText="" outgoingEdges="_FzJyGFyTEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbaview.ecore#//HorizontalLayout"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbaview.ecore#//HorizontalLayout"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_FyfDslyTEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_FyfDs1yTEei8Ja-whe6hFw" name="FixedPositionLayout" tooltipText="" outgoingEdges="_FzDre1yTEei8Ja-whe6hFw _FzJyHFyTEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbaview.ecore#//FixedPositionLayout"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbaview.ecore#//FixedPositionLayout"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_FyfDtFyTEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_FyxXq1yTEei8Ja-whe6hFw" name="collectLeafArea() : Area" tooltipText="collectLeafArea() : Area">
+ <target xmi:type="ecore:EOperation" href="rbaview.ecore#//FixedPositionLayout/collectLeafArea"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbaview.ecore#//FixedPositionLayout/collectLeafArea"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_FyxXrFyTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_FyfDtVyTEei8Ja-whe6hFw" name="PositionContainer" tooltipText="" outgoingEdges="_FzDrhlyTEei8Ja-whe6hFw _U7PM55nbEeijptRUADwljg" incomingEdges="_FzDre1yTEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbaview.ecore#//PositionContainer"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbaview.ecore#//PositionContainer"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_FyfDtlyTEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_FyxXrVyTEei8Ja-whe6hFw" name="x : EInt" tooltipText="">
+ <target xmi:type="ecore:EAttribute" href="rbaview.ecore#//PositionContainer/x"/>
+ <semanticElements xmi:type="ecore:EAttribute" href="rbaview.ecore#//PositionContainer/x"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Fy3eMFyTEei8Ja-whe6hFw" labelAlignment="LEFT" description="_FyxXrlyTEei8Ja-whe6hFw">
+ <labelFormat>bold</labelFormat>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Fy3eMVyTEei8Ja-whe6hFw" name="y : EInt" tooltipText="">
+ <target xmi:type="ecore:EAttribute" href="rbaview.ecore#//PositionContainer/y"/>
+ <semanticElements xmi:type="ecore:EAttribute" href="rbaview.ecore#//PositionContainer/y"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Fy3eMlyTEei8Ja-whe6hFw" labelAlignment="LEFT" description="_FyxXrlyTEei8Ja-whe6hFw">
+ <labelFormat>bold</labelFormat>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Fy3eM1yTEei8Ja-whe6hFw" name="basePoint : BasePoint = LEFT_TOP" tooltipText="">
+ <target xmi:type="ecore:EAttribute" href="rbaview.ecore#//PositionContainer/basePoint"/>
+ <semanticElements xmi:type="ecore:EAttribute" href="rbaview.ecore#//PositionContainer/basePoint"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Fy3eNFyTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_FyfDt1yTEei8Ja-whe6hFw" name="Display" tooltipText="" outgoingEdges="_FzDrjlyTEei8Ja-whe6hFw _U7Pz85nbEeijptRUADwljg" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbaview.ecore#//Display"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbaview.ecore#//Display"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_FyfDuFyTEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_FyfDuVyTEei8Ja-whe6hFw" name="CompositeArea" tooltipText="" outgoingEdges="_FzDrlVyTEei8Ja-whe6hFw" incomingEdges="_U7Pz85nbEeijptRUADwljg" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbaview.ecore#//CompositeArea"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbaview.ecore#//CompositeArea"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_FyfDulyTEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Fy3eNVyTEei8Ja-whe6hFw" name="collectLeafArea() : Area" tooltipText="collectLeafArea() : Area">
+ <target xmi:type="ecore:EOperation" href="rbaview.ecore#//CompositeArea/collectLeafArea"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbaview.ecore#//CompositeArea/collectLeafArea"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Fy3eNlyTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Fy3eN1yTEei8Ja-whe6hFw" name="getExpressionType() : ExpressionType" tooltipText="getExpressionType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbaview.ecore#//CompositeArea/getExpressionType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbaview.ecore#//CompositeArea/getExpressionType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Fy3eOFyTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_FyfDu1yTEei8Ja-whe6hFw" name="Area" tooltipText="" outgoingEdges="_FzDrmVyTEei8Ja-whe6hFw" incomingEdges="_U7PM45nbEeijptRUADwljg _U7PM55nbEeijptRUADwljg" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbaview.ecore#//Area"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbaview.ecore#//Area"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_FyfDvFyTEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Fy3eRFyTEei8Ja-whe6hFw" name="getExpressionType() : ExpressionType" tooltipText="getExpressionType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbaview.ecore#//Area/getExpressionType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbaview.ecore#//Area/getExpressionType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Fy3eRVyTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_IiLxMIDqEeuMLsA3Cw6XYg" name=" tags : Tag" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//RuleObject/tags"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//RuleObject/tags"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_IiLxMYDqEeuMLsA3Cw6XYg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_U7JGQJnbEeijptRUADwljg" name=" contents : AbstractContent" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//AbstractAllocatable/contents"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//AbstractAllocatable/contents"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_U7JGQZnbEeijptRUADwljg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_IiMYQIDqEeuMLsA3Cw6XYg" name=" allocatableGroup : AllocatableSet" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//AbstractAllocatable/allocatableGroup"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//AbstractAllocatable/allocatableGroup"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_IiMYQYDqEeuMLsA3Cw6XYg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_U7JGRJnbEeijptRUADwljg" name=" visibility : Expression" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Allocatable/visibility"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Allocatable/visibility"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_IiM_UIDqEeuMLsA3Cw6XYg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Fy3eTVyTEei8Ja-whe6hFw" name=" zorder : Expression" tooltipText="">
+ <target xmi:type="ecore:EReference" href="rbaview.ecore#//Area/zorder"/>
+ <semanticElements xmi:type="ecore:EReference" href="rbaview.ecore#//Area/zorder"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_IiNmYIDqEeuMLsA3Cw6XYg" labelAlignment="LEFT" color="114,159,207">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_FyfDvVyTEei8Ja-whe6hFw" name="AreaSet" tooltipText="" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbaview.ecore#//AreaSet"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbaview.ecore#//AreaSet"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_E5zV0GVzEeioJ4YlFk6YwA" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Fy3eT1yTEei8Ja-whe6hFw" name="getExpressionType() : ExpressionType" tooltipText="getExpressionType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbaview.ecore#//AreaSet/getExpressionType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbaview.ecore#//AreaSet/getExpressionType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Fy3eUFyTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_IiONcIDqEeuMLsA3Cw6XYg" name=" tags : Tag" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//RuleObject/tags"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//RuleObject/tags"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_IiONcYDqEeuMLsA3Cw6XYg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_U7JtUJnbEeijptRUADwljg" name=" contents : AbstractContent" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//AbstractAllocatable/contents"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//AbstractAllocatable/contents"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_U7JtUZnbEeijptRUADwljg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_IiO0gIDqEeuMLsA3Cw6XYg" name=" allocatableGroup : AllocatableSet" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//AbstractAllocatable/allocatableGroup"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//AbstractAllocatable/allocatableGroup"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_IiPbkIDqEeuMLsA3Cw6XYg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_U7JtVJnbEeijptRUADwljg" name=" target : AbstractAllocatable" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//AllocatableSet/target"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//AllocatableSet/target"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_U7JtVZnbEeijptRUADwljg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_FylKUFyTEei8Ja-whe6hFw" name="SizeIdentifier" tooltipText="" incomingEdges="_FzDrcFyTEei8Ja-whe6hFw _FzDrjlyTEei8Ja-whe6hFw _FzDrmVyTEei8Ja-whe6hFw _FzJyLFyTEei8Ja-whe6hFw _FzJyMFyTEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbaview.ecore#//SizeIdentifier"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbaview.ecore#//SizeIdentifier"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_FylKUVyTEei8Ja-whe6hFw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_FylKUlyTEei8Ja-whe6hFw" name="Size" tooltipText="" outgoingEdges="_FzJyLFyTEei8Ja-whe6hFw" incomingEdges="_FzDrnVyTEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbaview.ecore#//Size"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbaview.ecore#//Size"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_FylKU1yTEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Fy3eUVyTEei8Ja-whe6hFw" name="width : EInt" tooltipText="">
+ <target xmi:type="ecore:EAttribute" href="rbaview.ecore#//Size/width"/>
+ <semanticElements xmi:type="ecore:EAttribute" href="rbaview.ecore#//Size/width"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Fy3eUlyTEei8Ja-whe6hFw" labelAlignment="LEFT" description="_FyxXrlyTEei8Ja-whe6hFw">
+ <labelFormat>bold</labelFormat>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Fy3eU1yTEei8Ja-whe6hFw" name="height : EInt" tooltipText="">
+ <target xmi:type="ecore:EAttribute" href="rbaview.ecore#//Size/height"/>
+ <semanticElements xmi:type="ecore:EAttribute" href="rbaview.ecore#//Size/height"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Fy3eVFyTEei8Ja-whe6hFw" labelAlignment="LEFT" description="_FyxXrlyTEei8Ja-whe6hFw">
+ <labelFormat>bold</labelFormat>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_FylKVFyTEei8Ja-whe6hFw" name="SizeReference" tooltipText="" outgoingEdges="_FzDrnVyTEei8Ja-whe6hFw _FzJyMFyTEei8Ja-whe6hFw" incomingEdges="_FzDroVyTEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbaview.ecore#//SizeReference"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbaview.ecore#//SizeReference"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_FylKVVyTEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_FylKVlyTEei8Ja-whe6hFw" name="Offset" tooltipText="" outgoingEdges="_FzDroVyTEei8Ja-whe6hFw" incomingEdges="_FzDrhlyTEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbaview.ecore#//Offset"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbaview.ecore#//Offset"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_FylKV1yTEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Fy3eVVyTEei8Ja-whe6hFw" name="x : EInt" tooltipText="">
+ <target xmi:type="ecore:EAttribute" href="rbaview.ecore#//Offset/x"/>
+ <semanticElements xmi:type="ecore:EAttribute" href="rbaview.ecore#//Offset/x"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Fy3eVlyTEei8Ja-whe6hFw" labelAlignment="LEFT" description="_FyxXrlyTEei8Ja-whe6hFw">
+ <labelFormat>bold</labelFormat>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Fy3eV1yTEei8Ja-whe6hFw" name="y : EInt" tooltipText="">
+ <target xmi:type="ecore:EAttribute" href="rbaview.ecore#//Offset/y"/>
+ <semanticElements xmi:type="ecore:EAttribute" href="rbaview.ecore#//Offset/y"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Fy3eWFyTEei8Ja-whe6hFw" labelAlignment="LEFT" description="_FyxXrlyTEei8Ja-whe6hFw">
+ <labelFormat>bold</labelFormat>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_FylKXFyTEei8Ja-whe6hFw" name="AreaOperator" tooltipText="" incomingEdges="_FzJyOFyTEei8Ja-whe6hFw _FzJyPFyTEei8Ja-whe6hFw _FzJyQFyTEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbaview.ecore#//AreaOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbaview.ecore#//AreaOperator"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_FylKXVyTEei8Ja-whe6hFw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_IiR30IDqEeuMLsA3Cw6XYg" name=" letStatements : LetStatement" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Expression/letStatements"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Expression/letStatements"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_IiSe4IDqEeuMLsA3Cw6XYg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_80y9lGVyEeioJ4YlFk6YwA" name=" operand : Expression" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Operator/operand"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Operator/operand"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_U7KUYJnbEeijptRUADwljg" labelColor="125,125,125" labelAlignment="LEFT" description="_FyxXk1yTEei8Ja-whe6hFw">
+ <labelFormat>bold</labelFormat>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_FylKXlyTEei8Ja-whe6hFw" name="IsDisplayed" tooltipText="" outgoingEdges="_FzJyOFyTEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbaview.ecore#//IsDisplayed"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbaview.ecore#//IsDisplayed"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_FylKX1yTEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Fy9k2FyTEei8Ja-whe6hFw" name="getSymbol() : EString" tooltipText="getSymbol() : EString">
+ <target xmi:type="ecore:EOperation" href="rbaview.ecore#//IsDisplayed/getSymbol"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbaview.ecore#//IsDisplayed/getSymbol"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Fy9k2VyTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Fy9k2lyTEei8Ja-whe6hFw" name="getUnderlyingType() : ExpressionType" tooltipText="getUnderlyingType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbaview.ecore#//IsDisplayed/getUnderlyingType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbaview.ecore#//IsDisplayed/getUnderlyingType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Fy9k21yTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_IiTtAIDqEeuMLsA3Cw6XYg" name=" letStatements : LetStatement" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Expression/letStatements"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Expression/letStatements"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_IiTtAYDqEeuMLsA3Cw6XYg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_80zkoWVyEeioJ4YlFk6YwA" name=" operand : Expression" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Operator/operand"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Operator/operand"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_U7K7cJnbEeijptRUADwljg" labelColor="125,125,125" labelAlignment="LEFT" description="_FyxXk1yTEei8Ja-whe6hFw">
+ <labelFormat>bold</labelFormat>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_FylKYFyTEei8Ja-whe6hFw" name="DisplayingContent" tooltipText="" outgoingEdges="_FzJyPFyTEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbaview.ecore#//DisplayingContent"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbaview.ecore#//DisplayingContent"/>
+ <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+ <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+ <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_FylKYVyTEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Fy9k3lyTEei8Ja-whe6hFw" name="getSymbol() : EString" tooltipText="getSymbol() : EString">
+ <target xmi:type="ecore:EOperation" href="rbaview.ecore#//DisplayingContent/getSymbol"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbaview.ecore#//DisplayingContent/getSymbol"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Fy9k31yTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Fy9k4FyTEei8Ja-whe6hFw" name="getUnderlyingType() : ExpressionType" tooltipText="getUnderlyingType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbaview.ecore#//DisplayingContent/getUnderlyingType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbaview.ecore#//DisplayingContent/getUnderlyingType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Fy9k4VyTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_IiU7IIDqEeuMLsA3Cw6XYg" name=" letStatements : LetStatement" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Expression/letStatements"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Expression/letStatements"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_IiViMIDqEeuMLsA3Cw6XYg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_800LsGVyEeioJ4YlFk6YwA" name=" operand : Expression" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Operator/operand"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Operator/operand"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_U7K7cZnbEeijptRUADwljg" labelColor="125,125,125" labelAlignment="LEFT" description="_FyxXk1yTEei8Ja-whe6hFw">
+ <labelFormat>bold</labelFormat>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_FylKYlyTEei8Ja-whe6hFw" name="IsHidden" tooltipText="" outgoingEdges="_FzJyQFyTEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbaview.ecore#//IsHidden"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbaview.ecore#//IsHidden"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_FylKY1yTEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Fy9k5FyTEei8Ja-whe6hFw" name="getSymbol() : EString" tooltipText="getSymbol() : EString">
+ <target xmi:type="ecore:EOperation" href="rbaview.ecore#//IsHidden/getSymbol"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbaview.ecore#//IsHidden/getSymbol"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Fy9k5VyTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Fy9k5lyTEei8Ja-whe6hFw" name="getUnderlyingType() : ExpressionType" tooltipText="getUnderlyingType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbaview.ecore#//IsHidden/getUnderlyingType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbaview.ecore#//IsHidden/getUnderlyingType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Fy9k51yTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_IiXXYIDqEeuMLsA3Cw6XYg" name=" letStatements : LetStatement" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Expression/letStatements"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Expression/letStatements"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_IiXXYYDqEeuMLsA3Cw6XYg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_800LsmVyEeioJ4YlFk6YwA" name=" operand : Expression" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Operator/operand"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Operator/operand"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_U7K7cpnbEeijptRUADwljg" labelColor="125,125,125" labelAlignment="LEFT" description="_FyxXk1yTEei8Ja-whe6hFw">
+ <labelFormat>bold</labelFormat>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_FylKZFyTEei8Ja-whe6hFw" name="ViewContentOperator" tooltipText="" incomingEdges="_FzJyRFyTEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbaview.ecore#//ViewContentOperator"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbaview.ecore#//ViewContentOperator"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_FylKZVyTEei8Ja-whe6hFw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Fy9k6lyTEei8Ja-whe6hFw" name="getUnderlyingType() : ExpressionType" tooltipText="getUnderlyingType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbaview.ecore#//ViewContentOperator/getUnderlyingType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbaview.ecore#//ViewContentOperator/getUnderlyingType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Fy9k61yTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_IiYlgIDqEeuMLsA3Cw6XYg" name=" letStatements : LetStatement" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Expression/letStatements"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Expression/letStatements"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_IiZMkIDqEeuMLsA3Cw6XYg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_800ywGVyEeioJ4YlFk6YwA" name=" operand : Expression" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Operator/operand"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Operator/operand"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_U7LigJnbEeijptRUADwljg" labelColor="125,125,125" labelAlignment="LEFT" description="_FyxXk1yTEei8Ja-whe6hFw">
+ <labelFormat>bold</labelFormat>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_FylKZlyTEei8Ja-whe6hFw" name="IsVisible" tooltipText="" outgoingEdges="_FzJyRFyTEei8Ja-whe6hFw" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbaview.ecore#//IsVisible"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbaview.ecore#//IsVisible"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_FylKZ1yTEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Fy9k7lyTEei8Ja-whe6hFw" name="getSymbol() : EString" tooltipText="getSymbol() : EString">
+ <target xmi:type="ecore:EOperation" href="rbaview.ecore#//IsVisible/getSymbol"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbaview.ecore#//IsVisible/getSymbol"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Fy9k71yTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_IiZzoIDqEeuMLsA3Cw6XYg" name=" letStatements : LetStatement" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Expression/letStatements"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Expression/letStatements"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_IiaasIDqEeuMLsA3Cw6XYg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_800ywmVyEeioJ4YlFk6YwA" name=" operand : Expression" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Operator/operand"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Operator/operand"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_U7MJkJnbEeijptRUADwljg" labelColor="125,125,125" labelAlignment="LEFT" description="_FyxXk1yTEei8Ja-whe6hFw">
+ <labelFormat>bold</labelFormat>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_FylKaFyTEei8Ja-whe6hFw" name="AllInstanceOfArea" tooltipText="" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbaview.ecore#//AllInstanceOfArea"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbaview.ecore#//AllInstanceOfArea"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_FylKaVyTEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Fy9k8lyTEei8Ja-whe6hFw" name="getExpressionText() : EString" tooltipText="getExpressionText() : EString">
+ <target xmi:type="ecore:EOperation" href="rbaview.ecore#//AllInstanceOfArea/getExpressionText"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbaview.ecore#//AllInstanceOfArea/getExpressionText"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Fy9k81yTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Fy9k9FyTEei8Ja-whe6hFw" name="getUnderlyingType() : ExpressionType" tooltipText="getUnderlyingType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbaview.ecore#//AllInstanceOfArea/getUnderlyingType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbaview.ecore#//AllInstanceOfArea/getUnderlyingType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Fy9k9VyTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Iibo0IDqEeuMLsA3Cw6XYg" name=" letStatements : LetStatement" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Expression/letStatements"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Expression/letStatements"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Iibo0YDqEeuMLsA3Cw6XYg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_FylKalyTEei8Ja-whe6hFw" name="AllInstanceOfViewContent" tooltipText="" width="12" height="10">
+ <target xmi:type="ecore:EClass" href="rbaview.ecore#//AllInstanceOfViewContent"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbaview.ecore#//AllInstanceOfViewContent"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_FylKa1yTEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Fy9k9lyTEei8Ja-whe6hFw" name="getExpressionText() : EString" tooltipText="getExpressionText() : EString">
+ <target xmi:type="ecore:EOperation" href="rbaview.ecore#//AllInstanceOfViewContent/getExpressionText"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbaview.ecore#//AllInstanceOfViewContent/getExpressionText"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Fy9k91yTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Fy9k-FyTEei8Ja-whe6hFw" name="getUnderlyingType() : ExpressionType" tooltipText="getUnderlyingType() : ExpressionType">
+ <target xmi:type="ecore:EOperation" href="rbaview.ecore#//AllInstanceOfViewContent/getUnderlyingType"/>
+ <semanticElements xmi:type="ecore:EOperation" href="rbaview.ecore#//AllInstanceOfViewContent/getUnderlyingType"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Fy9k-VyTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_IicP4IDqEeuMLsA3Cw6XYg" name=" letStatements : LetStatement" tooltipText="">
+ <target xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Expression/letStatements"/>
+ <semanticElements xmi:type="ecore:EReference" href="platform:/resource/rba.model.core/model/rbacore.ecore#//Expression/letStatements"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Iic28IDqEeuMLsA3Cw6XYg" labelColor="125,125,125" labelAlignment="LEFT">
+ <labelFormat>italic</labelFormat>
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_FylKbFyTEei8Ja-whe6hFw" name="BasePoint" tooltipText="" width="12" height="10">
+ <target xmi:type="ecore:EEnum" href="rbaview.ecore#//BasePoint"/>
+ <semanticElements xmi:type="ecore:EEnum" href="rbaview.ecore#//BasePoint"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_FylKbVyTEei8Ja-whe6hFw" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="221,236,202">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']"/>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Fy9k-lyTEei8Ja-whe6hFw" name="LEFT_TOP" tooltipText="">
+ <target xmi:type="ecore:EEnumLiteral" href="rbaview.ecore#//BasePoint/LEFT_TOP"/>
+ <semanticElements xmi:type="ecore:EEnumLiteral" href="rbaview.ecore#//BasePoint/LEFT_TOP"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Fy9k-1yTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Fy9k_FyTEei8Ja-whe6hFw" name="LEFT_MIDDLE" tooltipText="">
+ <target xmi:type="ecore:EEnumLiteral" href="rbaview.ecore#//BasePoint/LEFT_MIDDLE"/>
+ <semanticElements xmi:type="ecore:EEnumLiteral" href="rbaview.ecore#//BasePoint/LEFT_MIDDLE"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Fy9k_VyTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Fy9k_lyTEei8Ja-whe6hFw" name="LEFT_BOTTOM" tooltipText="">
+ <target xmi:type="ecore:EEnumLiteral" href="rbaview.ecore#//BasePoint/LEFT_BOTTOM"/>
+ <semanticElements xmi:type="ecore:EEnumLiteral" href="rbaview.ecore#//BasePoint/LEFT_BOTTOM"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Fy9k_1yTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Fy9lAFyTEei8Ja-whe6hFw" name="RIGHT_TOP" tooltipText="">
+ <target xmi:type="ecore:EEnumLiteral" href="rbaview.ecore#//BasePoint/RIGHT_TOP"/>
+ <semanticElements xmi:type="ecore:EEnumLiteral" href="rbaview.ecore#//BasePoint/RIGHT_TOP"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Fy9lAVyTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Fy9lAlyTEei8Ja-whe6hFw" name="RIGHT_MIDDLE" tooltipText="">
+ <target xmi:type="ecore:EEnumLiteral" href="rbaview.ecore#//BasePoint/RIGHT_MIDDLE"/>
+ <semanticElements xmi:type="ecore:EEnumLiteral" href="rbaview.ecore#//BasePoint/RIGHT_MIDDLE"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Fy9lA1yTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Fy9lBFyTEei8Ja-whe6hFw" name="RIGHT_BOTTOM" tooltipText="">
+ <target xmi:type="ecore:EEnumLiteral" href="rbaview.ecore#//BasePoint/RIGHT_BOTTOM"/>
+ <semanticElements xmi:type="ecore:EEnumLiteral" href="rbaview.ecore#//BasePoint/RIGHT_BOTTOM"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Fy9lBVyTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Fy9lBlyTEei8Ja-whe6hFw" name="CENTER_TOP" tooltipText="">
+ <target xmi:type="ecore:EEnumLiteral" href="rbaview.ecore#//BasePoint/CENTER_TOP"/>
+ <semanticElements xmi:type="ecore:EEnumLiteral" href="rbaview.ecore#//BasePoint/CENTER_TOP"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Fy9lB1yTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Fy9lCFyTEei8Ja-whe6hFw" name="CENTER_MIDDLE" tooltipText="">
+ <target xmi:type="ecore:EEnumLiteral" href="rbaview.ecore#//BasePoint/CENTER_MIDDLE"/>
+ <semanticElements xmi:type="ecore:EEnumLiteral" href="rbaview.ecore#//BasePoint/CENTER_MIDDLE"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Fy9lCVyTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
+ </ownedElements>
+ <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Fy9lClyTEei8Ja-whe6hFw" name="CENTER_BOTTOM" tooltipText="">
+ <target xmi:type="ecore:EEnumLiteral" href="rbaview.ecore#//BasePoint/CENTER_BOTTOM"/>
+ <semanticElements xmi:type="ecore:EEnumLiteral" href="rbaview.ecore#//BasePoint/CENTER_BOTTOM"/>
+ <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Fy9lC1yTEei8Ja-whe6hFw" labelAlignment="LEFT">
+ <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
+ </ownedElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_FzDrcFyTEei8Ja-whe6hFw" name="[0..*] size" sourceNode="_FyY9EFyTEei8Ja-whe6hFw" targetNode="_FylKUFyTEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EReference" href="rbaview.ecore#//ViewContent/size"/>
+ <semanticElements xmi:type="ecore:EReference" href="rbaview.ecore#//ViewContent/size"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_Iimn8IDqEeuMLsA3Cw6XYg" description="_FzDrcVyTEei8Ja-whe6hFw" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_Iimn8YDqEeuMLsA3Cw6XYg" showIcon="false"/>
+ <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_Iimn8oDqEeuMLsA3Cw6XYg" labelSize="6" showIcon="false" labelColor="39,76,114"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_FzDre1yTEei8Ja-whe6hFw" name="[0..*] subAreaPosition" sourceNode="_FyfDs1yTEei8Ja-whe6hFw" targetNode="_FyfDtVyTEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EReference" href="rbaview.ecore#//FixedPositionLayout/subAreaPosition"/>
+ <semanticElements xmi:type="ecore:EReference" href="rbaview.ecore#//FixedPositionLayout/subAreaPosition"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_FzDrfFyTEei8Ja-whe6hFw" description="_FzDrcVyTEei8Ja-whe6hFw" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_FzDrfVyTEei8Ja-whe6hFw" showIcon="false">
+ <customFeatures>labelSize</customFeatures>
+ </centerLabelStyle>
+ <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_FzDrflyTEei8Ja-whe6hFw" showIcon="false" labelColor="39,76,114">
+ <customFeatures>labelSize</customFeatures>
+ </endLabelStyle>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_FzDrhlyTEei8Ja-whe6hFw" name="[0..*] offset" sourceNode="_FyfDtVyTEei8Ja-whe6hFw" targetNode="_FylKVlyTEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EReference" href="rbaview.ecore#//PositionContainer/offset"/>
+ <semanticElements xmi:type="ecore:EReference" href="rbaview.ecore#//PositionContainer/offset"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_FzDrh1yTEei8Ja-whe6hFw" description="_FzDrcVyTEei8Ja-whe6hFw" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_FzDriFyTEei8Ja-whe6hFw" showIcon="false">
+ <customFeatures>labelSize</customFeatures>
+ </centerLabelStyle>
+ <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_FzDriVyTEei8Ja-whe6hFw" showIcon="false" labelColor="39,76,114">
+ <customFeatures>labelSize</customFeatures>
+ </endLabelStyle>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_FzDrjlyTEei8Ja-whe6hFw" name="[1..1] size" sourceNode="_FyfDt1yTEei8Ja-whe6hFw" targetNode="_FylKUFyTEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EReference" href="rbaview.ecore#//Display/size"/>
+ <semanticElements xmi:type="ecore:EReference" href="rbaview.ecore#//Display/size"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_FzDrklyTEei8Ja-whe6hFw" description="_FzDrj1yTEei8Ja-whe6hFw" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_FzDrk1yTEei8Ja-whe6hFw" showIcon="false">
+ <customFeatures>labelSize</customFeatures>
+ <labelFormat>bold</labelFormat>
+ </centerLabelStyle>
+ <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_FzDrlFyTEei8Ja-whe6hFw" showIcon="false" labelColor="39,76,114">
+ <customFeatures>labelSize</customFeatures>
+ </endLabelStyle>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_FzDrlVyTEei8Ja-whe6hFw" name="[0..1] layout" sourceNode="_FyfDuVyTEei8Ja-whe6hFw" targetNode="_FyY9GFyTEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EReference" href="rbaview.ecore#//CompositeArea/layout"/>
+ <semanticElements xmi:type="ecore:EReference" href="rbaview.ecore#//CompositeArea/layout"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_FzDrllyTEei8Ja-whe6hFw" description="_FzDrcVyTEei8Ja-whe6hFw" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_FzDrl1yTEei8Ja-whe6hFw" showIcon="false">
+ <customFeatures>labelSize</customFeatures>
+ </centerLabelStyle>
+ <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_FzDrmFyTEei8Ja-whe6hFw" showIcon="false" labelColor="39,76,114">
+ <customFeatures>labelSize</customFeatures>
+ </endLabelStyle>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_FzDrmVyTEei8Ja-whe6hFw" name="[0..*] size" sourceNode="_FyfDu1yTEei8Ja-whe6hFw" targetNode="_FylKUFyTEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EReference" href="rbaview.ecore#//Area/size"/>
+ <semanticElements xmi:type="ecore:EReference" href="rbaview.ecore#//Area/size"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_Iiq5YIDqEeuMLsA3Cw6XYg" description="_FzDrcVyTEei8Ja-whe6hFw" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_Iiq5YYDqEeuMLsA3Cw6XYg" showIcon="false"/>
+ <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_Iiq5YoDqEeuMLsA3Cw6XYg" labelSize="6" showIcon="false" labelColor="39,76,114"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_FzDrnVyTEei8Ja-whe6hFw" name="[0..1] size" sourceNode="_FylKVFyTEei8Ja-whe6hFw" targetNode="_FylKUlyTEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EReference" href="rbaview.ecore#//SizeReference/size"/>
+ <semanticElements xmi:type="ecore:EReference" href="rbaview.ecore#//SizeReference/size"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_FzDrnlyTEei8Ja-whe6hFw" routingStyle="manhattan" strokeColor="0,0,0">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_FzDrn1yTEei8Ja-whe6hFw" showIcon="false">
+ <customFeatures>labelSize</customFeatures>
+ </centerLabelStyle>
+ <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_FzDroFyTEei8Ja-whe6hFw" showIcon="false" labelColor="39,76,114">
+ <customFeatures>labelSize</customFeatures>
+ </endLabelStyle>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_FzDroVyTEei8Ja-whe6hFw" name="[1..1] size" sourceNode="_FylKVlyTEei8Ja-whe6hFw" targetNode="_FylKVFyTEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EReference" href="rbaview.ecore#//Offset/size"/>
+ <semanticElements xmi:type="ecore:EReference" href="rbaview.ecore#//Offset/size"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_U7PM4JnbEeijptRUADwljg" description="_FzDrj1yTEei8Ja-whe6hFw" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_U7PM4ZnbEeijptRUADwljg" showIcon="false">
+ <labelFormat>bold</labelFormat>
+ </centerLabelStyle>
+ <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_U7PM4pnbEeijptRUADwljg" labelSize="6" showIcon="false" labelColor="39,76,114"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_FzJyEFyTEei8Ja-whe6hFw" sourceNode="_FyY9GlyTEei8Ja-whe6hFw" targetNode="_FyY9GFyTEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbaview.ecore#//AlignedLayout"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbaview.ecore#//AlignedLayout"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_FzJyEVyTEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_FzJyElyTEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_FzJyE1yTEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_FzJyFFyTEei8Ja-whe6hFw" sourceNode="_FyY9HFyTEei8Ja-whe6hFw" targetNode="_FyY9GlyTEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbaview.ecore#//VerticalLayout"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbaview.ecore#//VerticalLayout"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_FzJyFVyTEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_FzJyFlyTEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_FzJyF1yTEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_FzJyGFyTEei8Ja-whe6hFw" sourceNode="_FyfDsVyTEei8Ja-whe6hFw" targetNode="_FyY9GlyTEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbaview.ecore#//HorizontalLayout"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbaview.ecore#//HorizontalLayout"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_FzJyGVyTEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_FzJyGlyTEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_FzJyG1yTEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_FzJyHFyTEei8Ja-whe6hFw" sourceNode="_FyfDs1yTEei8Ja-whe6hFw" targetNode="_FyY9GFyTEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbaview.ecore#//FixedPositionLayout"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbaview.ecore#//FixedPositionLayout"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_FzJyHVyTEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_FzJyHlyTEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_FzJyH1yTEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_FzJyLFyTEei8Ja-whe6hFw" sourceNode="_FylKUlyTEei8Ja-whe6hFw" targetNode="_FylKUFyTEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbaview.ecore#//Size"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbaview.ecore#//Size"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_FzJyLVyTEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_FzJyLlyTEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_FzJyL1yTEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_FzJyMFyTEei8Ja-whe6hFw" sourceNode="_FylKVFyTEei8Ja-whe6hFw" targetNode="_FylKUFyTEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbaview.ecore#//SizeReference"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbaview.ecore#//SizeReference"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_FzJyMVyTEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_FzJyMlyTEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_FzJyM1yTEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_FzJyOFyTEei8Ja-whe6hFw" sourceNode="_FylKXlyTEei8Ja-whe6hFw" targetNode="_FylKXFyTEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbaview.ecore#//IsDisplayed"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbaview.ecore#//IsDisplayed"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_FzJyOVyTEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_FzJyOlyTEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_FzJyO1yTEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_FzJyPFyTEei8Ja-whe6hFw" sourceNode="_FylKYFyTEei8Ja-whe6hFw" targetNode="_FylKXFyTEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbaview.ecore#//DisplayingContent"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbaview.ecore#//DisplayingContent"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_FzJyPVyTEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_FzJyPlyTEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_FzJyP1yTEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_FzJyQFyTEei8Ja-whe6hFw" sourceNode="_FylKYlyTEei8Ja-whe6hFw" targetNode="_FylKXFyTEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbaview.ecore#//IsHidden"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbaview.ecore#//IsHidden"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_FzJyQVyTEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_FzJyQlyTEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_FzJyQ1yTEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_FzJyRFyTEei8Ja-whe6hFw" sourceNode="_FylKZlyTEei8Ja-whe6hFw" targetNode="_FylKZFyTEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EClass" href="rbaview.ecore#//IsVisible"/>
+ <semanticElements xmi:type="ecore:EClass" href="rbaview.ecore#//IsVisible"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_FzJyRVyTEei8Ja-whe6hFw" targetArrow="InputClosedArrow" routingStyle="tree">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+ <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_FzJyRlyTEei8Ja-whe6hFw" showIcon="false">
+ <labelFormat>italic</labelFormat>
+ </beginLabelStyle>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_FzJyR1yTEei8Ja-whe6hFw" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_U7PM45nbEeijptRUADwljg" name="[0..*] subarea" sourceNode="_FyY9GlyTEei8Ja-whe6hFw" targetNode="_FyfDu1yTEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EReference" href="rbaview.ecore#//AlignedLayout/subarea"/>
+ <semanticElements xmi:type="ecore:EReference" href="rbaview.ecore#//AlignedLayout/subarea"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_U7PM5JnbEeijptRUADwljg" routingStyle="manhattan" strokeColor="0,0,0">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_U7PM5ZnbEeijptRUADwljg" showIcon="false">
+ <customFeatures>labelSize</customFeatures>
+ </centerLabelStyle>
+ <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_U7PM5pnbEeijptRUADwljg" showIcon="false" labelColor="39,76,114">
+ <customFeatures>labelSize</customFeatures>
+ </endLabelStyle>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_U7PM55nbEeijptRUADwljg" name="[1..1] area" sourceNode="_FyfDtVyTEei8Ja-whe6hFw" targetNode="_FyfDu1yTEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EReference" href="rbaview.ecore#//PositionContainer/area"/>
+ <semanticElements xmi:type="ecore:EReference" href="rbaview.ecore#//PositionContainer/area"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_U7Pz8JnbEeijptRUADwljg" description="_FzDrgFyTEei8Ja-whe6hFw" routingStyle="manhattan" strokeColor="0,0,0">
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_U7Pz8ZnbEeijptRUADwljg" showIcon="false">
+ <customFeatures>labelSize</customFeatures>
+ <labelFormat>bold</labelFormat>
+ </centerLabelStyle>
+ <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_U7Pz8pnbEeijptRUADwljg" showIcon="false" labelColor="39,76,114">
+ <customFeatures>labelSize</customFeatures>
+ </endLabelStyle>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_U7Pz85nbEeijptRUADwljg" name="[0..1] root" sourceNode="_FyfDt1yTEei8Ja-whe6hFw" targetNode="_FyfDuVyTEei8Ja-whe6hFw">
+ <target xmi:type="ecore:EReference" href="rbaview.ecore#//Display/root"/>
+ <semanticElements xmi:type="ecore:EReference" href="rbaview.ecore#//Display/root"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_U7Pz9JnbEeijptRUADwljg" description="_FzDrcVyTEei8Ja-whe6hFw" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_U7Pz9ZnbEeijptRUADwljg" showIcon="false">
+ <customFeatures>labelSize</customFeatures>
+ </centerLabelStyle>
+ <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_U7Pz9pnbEeijptRUADwljg" showIcon="false" labelColor="39,76,114">
+ <customFeatures>labelSize</customFeatures>
+ </endLabelStyle>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+ </ownedDiagramElements>
+ <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
+ <filterVariableHistory xmi:type="diagram:FilterVariableHistory" xmi:id="_e_fDxFqHEei8Ja-whe6hFw"/>
+ <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/>
+ <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Package']"/>
+ <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Validation']"/>
+ <target xmi:type="ecore:EPackage" href="rbaview.ecore#/"/>
+ </diagram:DSemanticDiagram>
+</xmi:XMI>
diff --git a/rba.model.view/model/rbaview.ecore b/rba.model.view/model/rbaview.ecore
new file mode 100644
index 0000000..ca5eb53
--- /dev/null
+++ b/rba.model.view/model/rbaview.ecore
@@ -0,0 +1,441 @@
+<?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="view" nsURI="http://www.denso.com/ict/rba/view" nsPrefix="RbaView">
+ <eAnnotations source="http://www.eclipse.org/OCL/Import">
+ <details key="RbaCore" value="../../rba.model.core/model/rbacore.ecore#/"/>
+ <details key="ecore" value="http://www.eclipse.org/emf/2002/Ecore"/>
+ </eAnnotations>
+ <eClassifiers xsi:type="ecore:EClass" name="ViewContent" eSuperTypes="../../rba.model.core/model/rbacore.ecore#//Content">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getExpressionType" eType="ecore:EEnum ../../rba.model.core/model/rbacore.ecore#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.CONTENT;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="size" upperBound="-1" eType="#//SizeIdentifier"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ViewContentSet" eSuperTypes="../../rba.model.core/model/rbacore.ecore#//ContentSet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getExpressionType" eType="ecore:EEnum ../../rba.model.core/model/rbacore.ecore#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.SET_OF_CONTENT;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ViewContentState" eSuperTypes="../../rba.model.core/model/rbacore.ecore#//ContentState">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getExpressionType" eType="ecore:EEnum ../../rba.model.core/model/rbacore.ecore#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.CONTENT_STATE;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LayoutManager" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="collectLeafArea" ordered="false" upperBound="-1" eType="#//Area">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AlignedLayout" abstract="true" eSuperTypes="#//LayoutManager">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="collectLeafArea" ordered="false" upperBound="-1" eType="#//Area">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="java.util.Set&lt;Area> areas = new java.util.HashSet&lt;Area>();&#xD;&#xA;for (Area area : getSubarea()) {&#xD;&#xA; areas.addAll(area.collectLeafAllocatable().stream().map(allocatable -> (Area) allocatable).collect(java.util.stream.Collectors.toList()));&#xD;&#xA;}&#xD;&#xA;return new org.eclipse.emf.common.util.BasicEList&lt;Area>(areas);"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="subarea" upperBound="-1"
+ eType="#//Area">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="basePoint" eType="#//BasePoint">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="VerticalLayout" eSuperTypes="#//AlignedLayout">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="HorizontalLayout" eSuperTypes="#//AlignedLayout">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FixedPositionLayout" eSuperTypes="#//LayoutManager">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="collectLeafArea" ordered="false" upperBound="-1" eType="#//Area">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="java.util.Set&lt;Area> areas = new java.util.HashSet&lt;Area>();&#xD;&#xA;for (PositionContainer pc : getSubAreaPosition()) {&#xD;&#xA; areas.addAll(pc.getArea().collectLeafAllocatable().stream().map(allocatable -> (Area) allocatable).collect(java.util.stream.Collectors.toList()));&#xD;&#xA;}&#xD;&#xA;return new org.eclipse.emf.common.util.BasicEList&lt;Area>(areas);"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="subAreaPosition" upperBound="-1"
+ eType="#//PositionContainer" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PositionContainer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="x" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ unsettable="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="y" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ unsettable="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="basePoint" eType="#//BasePoint">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="area" lowerBound="1" eType="#//Area"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="offset" upperBound="-1"
+ eType="#//Offset" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Display" eSuperTypes="../../rba.model.core/model/rbacore.ecore#//PackagableElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="root" eType="#//CompositeArea"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="size" lowerBound="1" eType="#//SizeIdentifier"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CompositeArea" eSuperTypes="../../rba.model.core/model/rbacore.ecore#//PackagableElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="collectLeafArea" ordered="false" upperBound="-1" eType="#//Area">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="java.util.Set&lt;Area> areas = new java.util.HashSet&lt;Area>();&#xD;&#xA;if (layout != null) {&#xD;&#xA; areas.addAll(layout.collectLeafArea());&#xD;&#xA;}&#xD;&#xA;&#xD;&#xA;return new org.eclipse.emf.common.util.BasicEList&lt;Area>(areas);"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getExpressionType" eType="ecore:EEnum ../../rba.model.core/model/rbacore.ecore#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.AREA;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="layout" eType="#//LayoutManager"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Area" eSuperTypes="../../rba.model.core/model/rbacore.ecore#//Allocatable">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getExpressionType" eType="ecore:EEnum ../../rba.model.core/model/rbacore.ecore#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.AREA;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="zorder" eType="ecore:EClass ../../rba.model.core/model/rbacore.ecore#//Expression"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="size" upperBound="-1" eType="#//SizeIdentifier"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AreaSet" eSuperTypes="../../rba.model.core/model/rbacore.ecore#//AllocatableSet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getExpressionType" eType="ecore:EEnum ../../rba.model.core/model/rbacore.ecore#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.SET_OF_AREA;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SizeIdentifier" abstract="true"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Size" eSuperTypes="../../rba.model.core/model/rbacore.ecore#//PackagableElement #//SizeIdentifier">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="width" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ unsettable="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="height" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" unsettable="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SizeReference" eSuperTypes="#//SizeIdentifier">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="size" eType="#//Size"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Offset" eSuperTypes="../../rba.model.core/model/rbacore.ecore#//PackagableElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="x" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ unsettable="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="y" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ unsettable="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="size" lowerBound="1" eType="#//SizeReference"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AreaOperator" abstract="true" eSuperTypes="../../rba.model.core/model/rbacore.ecore#//AllocatableOperator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="IsDisplayed" eSuperTypes="#//AreaOperator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;.isDisplayed()&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="ecore:EEnum ../../rba.model.core/model/rbacore.ecore#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.BOOLEAN;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DisplayingContent" eSuperTypes="#//AreaOperator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;.displayingContent()&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="ecore:EEnum ../../rba.model.core/model/rbacore.ecore#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.CONTENT;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="IsHidden" eSuperTypes="#//AreaOperator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;.isHidden()&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="ecore:EEnum ../../rba.model.core/model/rbacore.ecore#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.BOOLEAN;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ViewContentOperator" abstract="true"
+ eSuperTypes="../../rba.model.core/model/rbacore.ecore#//ContentOperator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getUnderlyingType" eType="ecore:EEnum ../../rba.model.core/model/rbacore.ecore#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.BOOLEAN;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="IsVisible" eSuperTypes="#//ViewContentOperator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;.isVisible()&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AllInstanceOfArea" eSuperTypes="../../rba.model.core/model/rbacore.ecore#//SetExpression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;AREA&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="ecore:EEnum ../../rba.model.core/model/rbacore.ecore#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.SET_OF_AREA;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AllInstanceOfViewContent" eSuperTypes="../../rba.model.core/model/rbacore.ecore#//SetExpression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;ALL_VIEWCONTENTS&quot;;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="ecore:EEnum ../../rba.model.core/model/rbacore.ecore#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.SET_OF_CONTENT;"/>
+ <details key="documentation" value="@Override"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="BasePoint">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=""/>
+ </eAnnotations>
+ <eLiterals name="LEFT_TOP"/>
+ <eLiterals name="LEFT_MIDDLE" value="1"/>
+ <eLiterals name="LEFT_BOTTOM" value="2"/>
+ <eLiterals name="RIGHT_TOP" value="3"/>
+ <eLiterals name="RIGHT_MIDDLE" value="4"/>
+ <eLiterals name="RIGHT_BOTTOM" value="5"/>
+ <eLiterals name="CENTER_TOP" value="6"/>
+ <eLiterals name="CENTER_MIDDLE" value="7"/>
+ <eLiterals name="CENTER_BOTTOM" value="8"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="IsDisplayedOn" eSuperTypes="#//ViewContentOperator ../../rba.model.core/model/rbacore.ecore#//SugarExpressionBase">
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;.isDisplayedOn&quot;;"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="ecore:EEnum ../../rba.model.core/model/rbacore.ecore#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.BOOLEAN;"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="StringBuilder expressionText = new StringBuilder();&#xD;&#xA;EList&lt;rba.core.Expression> expressions = getOperand();&#xD;&#xA;expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;expressionText.append(getSymbol());&#xD;&#xA;expressionText.append(&quot;(&quot;);&#xD;&#xA;expressionText.append(expressions.size() > 1 ? expressions.get(1).getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;expressionText.append(&quot;)&quot;);&#xD;&#xA;return expressionText.toString();"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="IsChangedDisplay" eSuperTypes="#//AreaOperator ../../rba.model.core/model/rbacore.ecore#//SugarExpressionBase">
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;.isChangedDisplay()&quot;;"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="ecore:EEnum ../../rba.model.core/model/rbacore.ecore#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.BOOLEAN;"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="IsTranslatedViewTo" eSuperTypes="#//AreaOperator ../../rba.model.core/model/rbacore.ecore#//SugarExpressionBase">
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;.isTranslatedViewTo&quot;;"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="ecore:EEnum ../../rba.model.core/model/rbacore.ecore#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.BOOLEAN;"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="StringBuilder expressionText = new StringBuilder();&#xD;&#xA;EList&lt;rba.core.Expression> expressions = getOperand();&#xD;&#xA;expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;expressionText.append(getSymbol());&#xD;&#xA;expressionText.append(&quot;(&quot;);&#xD;&#xA;expressionText.append(expressions.size() > 1 ? expressions.get(1).getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;expressionText.append(&quot;)&quot;);&#xD;&#xA;return expressionText.toString();"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="HideLowerPriority" eSuperTypes="../../rba.model.core/model/rbacore.ecore#//Operator ../../rba.model.core/model/rbacore.ecore#//SugarExpressionBase">
+ <eOperations name="getSymbol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &quot;HideLowerPriority&quot;;"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUnderlyingType" eType="ecore:EEnum ../../rba.model.core/model/rbacore.ecore#//ExpressionType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return ExpressionType.BOOLEAN;"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getExpressionText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="StringBuilder expressionText = new StringBuilder();&#xD;&#xA;EList&lt;rba.core.Expression> expressions = getOperand();&#xD;&#xA;expressionText.append(getSymbol());&#xD;&#xA;expressionText.append(&quot;(&quot;);&#xD;&#xA;expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;expressionText.append(&quot;,&quot;);&#xD;&#xA;expressionText.append(expressions.size() > 1 ? expressions.get(1).getExpressionText() : &quot;[Invalid_Expression]&quot;);&#xD;&#xA;expressionText.append(&quot;)&quot;);&#xD;&#xA;return expressionText.toString();"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/rba.model.view/model/rbaview.genmodel b/rba.model.view/model/rbaview.genmodel
new file mode 100644
index 0000000..7101678
--- /dev/null
+++ b/rba.model.view/model/rbaview.genmodel
@@ -0,0 +1,133 @@
+<?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="/rba.model.view/src" creationIcons="false" editDirectory="/rba.model.view.edit/src"
+ editorDirectory="/rba.model.view.editor/src" modelPluginID="rba.model.view" modelName="RbaView"
+ editPluginClass="rba.view.provider.RbaViewEditPlugin" editorPluginClass="rba.view.presentation.RbaViewEditorPlugin"
+ rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container" codeFormatting="true"
+ testsDirectory="/rba.model.view.tests/src" testSuiteClass="rba.view.tests.RbaViewAllTests"
+ importerID="org.eclipse.emf.importer.ecore" complianceLevel="8.0" copyrightFields="false"
+ editPluginID="rba.model.view.edit" editorPluginID="rba.model.view.editor" usedGenPackages="../../rba.model.core/model/rbacore.genmodel#//core"
+ operationReflection="true" importOrganizing="true">
+ <foreignModel>rbaview.ecore</foreignModel>
+ <genPackages prefix="RBAView" basePackage="rba" disposableProviderFactory="true"
+ ecorePackage="rbaview.ecore#/">
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="rbaview.ecore#//BasePoint">
+ <genEnumLiterals ecoreEnumLiteral="rbaview.ecore#//BasePoint/LEFT_TOP"/>
+ <genEnumLiterals ecoreEnumLiteral="rbaview.ecore#//BasePoint/LEFT_MIDDLE"/>
+ <genEnumLiterals ecoreEnumLiteral="rbaview.ecore#//BasePoint/LEFT_BOTTOM"/>
+ <genEnumLiterals ecoreEnumLiteral="rbaview.ecore#//BasePoint/RIGHT_TOP"/>
+ <genEnumLiterals ecoreEnumLiteral="rbaview.ecore#//BasePoint/RIGHT_MIDDLE"/>
+ <genEnumLiterals ecoreEnumLiteral="rbaview.ecore#//BasePoint/RIGHT_BOTTOM"/>
+ <genEnumLiterals ecoreEnumLiteral="rbaview.ecore#//BasePoint/CENTER_TOP"/>
+ <genEnumLiterals ecoreEnumLiteral="rbaview.ecore#//BasePoint/CENTER_MIDDLE"/>
+ <genEnumLiterals ecoreEnumLiteral="rbaview.ecore#//BasePoint/CENTER_BOTTOM"/>
+ </genEnums>
+ <genClasses ecoreClass="rbaview.ecore#//ViewContent">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference rbaview.ecore#//ViewContent/size"/>
+ <genOperations ecoreOperation="rbaview.ecore#//ViewContent/getExpressionType"/>
+ </genClasses>
+ <genClasses ecoreClass="rbaview.ecore#//ViewContentSet">
+ <genOperations ecoreOperation="rbaview.ecore#//ViewContentSet/getExpressionType"/>
+ </genClasses>
+ <genClasses ecoreClass="rbaview.ecore#//ViewContentState">
+ <genOperations ecoreOperation="rbaview.ecore#//ViewContentState/getExpressionType"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="rbaview.ecore#//LayoutManager">
+ <genOperations ecoreOperation="rbaview.ecore#//LayoutManager/collectLeafArea"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="rbaview.ecore#//AlignedLayout">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference rbaview.ecore#//AlignedLayout/subarea"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute rbaview.ecore#//AlignedLayout/basePoint"/>
+ <genOperations ecoreOperation="rbaview.ecore#//AlignedLayout/collectLeafArea"/>
+ </genClasses>
+ <genClasses ecoreClass="rbaview.ecore#//VerticalLayout"/>
+ <genClasses ecoreClass="rbaview.ecore#//HorizontalLayout"/>
+ <genClasses ecoreClass="rbaview.ecore#//FixedPositionLayout">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference rbaview.ecore#//FixedPositionLayout/subAreaPosition"/>
+ <genOperations ecoreOperation="rbaview.ecore#//FixedPositionLayout/collectLeafArea"/>
+ </genClasses>
+ <genClasses ecoreClass="rbaview.ecore#//PositionContainer">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute rbaview.ecore#//PositionContainer/x"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute rbaview.ecore#//PositionContainer/y"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute rbaview.ecore#//PositionContainer/basePoint"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference rbaview.ecore#//PositionContainer/area"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference rbaview.ecore#//PositionContainer/offset"/>
+ </genClasses>
+ <genClasses ecoreClass="rbaview.ecore#//Display">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference rbaview.ecore#//Display/root"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference rbaview.ecore#//Display/size"/>
+ </genClasses>
+ <genClasses ecoreClass="rbaview.ecore#//CompositeArea">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference rbaview.ecore#//CompositeArea/layout"/>
+ <genOperations ecoreOperation="rbaview.ecore#//CompositeArea/collectLeafArea"/>
+ <genOperations ecoreOperation="rbaview.ecore#//CompositeArea/getExpressionType"/>
+ </genClasses>
+ <genClasses ecoreClass="rbaview.ecore#//Area">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference rbaview.ecore#//Area/zorder"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference rbaview.ecore#//Area/size"/>
+ <genOperations ecoreOperation="rbaview.ecore#//Area/getExpressionType"/>
+ </genClasses>
+ <genClasses ecoreClass="rbaview.ecore#//AreaSet">
+ <genOperations ecoreOperation="rbaview.ecore#//AreaSet/getExpressionType"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="rbaview.ecore#//SizeIdentifier"/>
+ <genClasses ecoreClass="rbaview.ecore#//Size">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute rbaview.ecore#//Size/width"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute rbaview.ecore#//Size/height"/>
+ </genClasses>
+ <genClasses ecoreClass="rbaview.ecore#//SizeReference">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference rbaview.ecore#//SizeReference/size"/>
+ </genClasses>
+ <genClasses ecoreClass="rbaview.ecore#//Offset">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute rbaview.ecore#//Offset/x"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute rbaview.ecore#//Offset/y"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference rbaview.ecore#//Offset/size"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="rbaview.ecore#//AreaOperator"/>
+ <genClasses ecoreClass="rbaview.ecore#//IsDisplayed">
+ <genOperations ecoreOperation="rbaview.ecore#//IsDisplayed/getSymbol"/>
+ <genOperations ecoreOperation="rbaview.ecore#//IsDisplayed/getUnderlyingType"/>
+ </genClasses>
+ <genClasses ecoreClass="rbaview.ecore#//DisplayingContent">
+ <genOperations ecoreOperation="rbaview.ecore#//DisplayingContent/getSymbol"/>
+ <genOperations ecoreOperation="rbaview.ecore#//DisplayingContent/getUnderlyingType"/>
+ </genClasses>
+ <genClasses ecoreClass="rbaview.ecore#//IsHidden">
+ <genOperations ecoreOperation="rbaview.ecore#//IsHidden/getSymbol"/>
+ <genOperations ecoreOperation="rbaview.ecore#//IsHidden/getUnderlyingType"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="rbaview.ecore#//ViewContentOperator">
+ <genOperations ecoreOperation="rbaview.ecore#//ViewContentOperator/getUnderlyingType"/>
+ </genClasses>
+ <genClasses ecoreClass="rbaview.ecore#//IsVisible">
+ <genOperations ecoreOperation="rbaview.ecore#//IsVisible/getSymbol"/>
+ </genClasses>
+ <genClasses ecoreClass="rbaview.ecore#//AllInstanceOfArea">
+ <genOperations ecoreOperation="rbaview.ecore#//AllInstanceOfArea/getExpressionText"/>
+ <genOperations ecoreOperation="rbaview.ecore#//AllInstanceOfArea/getUnderlyingType"/>
+ </genClasses>
+ <genClasses ecoreClass="rbaview.ecore#//AllInstanceOfViewContent">
+ <genOperations ecoreOperation="rbaview.ecore#//AllInstanceOfViewContent/getExpressionText"/>
+ <genOperations ecoreOperation="rbaview.ecore#//AllInstanceOfViewContent/getUnderlyingType"/>
+ </genClasses>
+ <genClasses ecoreClass="rbaview.ecore#//IsDisplayedOn">
+ <genOperations ecoreOperation="rbaview.ecore#//IsDisplayedOn/getSymbol"/>
+ <genOperations ecoreOperation="rbaview.ecore#//IsDisplayedOn/getUnderlyingType"/>
+ <genOperations ecoreOperation="rbaview.ecore#//IsDisplayedOn/getExpressionText"/>
+ </genClasses>
+ <genClasses ecoreClass="rbaview.ecore#//IsChangedDisplay">
+ <genOperations ecoreOperation="rbaview.ecore#//IsChangedDisplay/getSymbol"/>
+ <genOperations ecoreOperation="rbaview.ecore#//IsChangedDisplay/getUnderlyingType"/>
+ </genClasses>
+ <genClasses ecoreClass="rbaview.ecore#//IsTranslatedViewTo">
+ <genOperations ecoreOperation="rbaview.ecore#//IsTranslatedViewTo/getSymbol"/>
+ <genOperations ecoreOperation="rbaview.ecore#//IsTranslatedViewTo/getUnderlyingType"/>
+ <genOperations ecoreOperation="rbaview.ecore#//IsTranslatedViewTo/getExpressionText"/>
+ </genClasses>
+ <genClasses ecoreClass="rbaview.ecore#//HideLowerPriority">
+ <genOperations ecoreOperation="rbaview.ecore#//HideLowerPriority/getSymbol"/>
+ <genOperations ecoreOperation="rbaview.ecore#//HideLowerPriority/getUnderlyingType"/>
+ <genOperations ecoreOperation="rbaview.ecore#//HideLowerPriority/getExpressionText"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/rba.model.view/plugin.properties b/rba.model.view/plugin.properties
new file mode 100644
index 0000000..7b37e19
--- /dev/null
+++ b/rba.model.view/plugin.properties
@@ -0,0 +1,4 @@
+#
+
+pluginName = RBA Tool RBAView Model
+providerName =DENSO CORPORATION
diff --git a/rba.model.view/plugin.xml b/rba.model.view/plugin.xml
new file mode 100644
index 0000000..bc579b9
--- /dev/null
+++ b/rba.model.view/plugin.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated rbaview -->
+ <package
+ uri="http://www.denso.com/ict/rba/view"
+ class="rba.view.RBAViewPackage"
+ genModel="model/rbaview.genmodel"/>
+ </extension>
+
+</plugin>
diff --git a/rba.model.view/src/rba/view/AlignedLayout.java b/rba.model.view/src/rba/view/AlignedLayout.java
new file mode 100644
index 0000000..2c5d5ce
--- /dev/null
+++ b/rba.model.view/src/rba/view/AlignedLayout.java
@@ -0,0 +1,81 @@
+/**
+ */
+package rba.view;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Aligned Layout</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link rba.view.AlignedLayout#getSubarea <em>Subarea</em>}</li>
+ * <li>{@link rba.view.AlignedLayout#getBasePoint <em>Base Point</em>}</li>
+ * </ul>
+ *
+ * @see rba.view.RBAViewPackage#getAlignedLayout()
+ * @model abstract="true"
+ * @generated
+ */
+public interface AlignedLayout extends LayoutManager {
+ /**
+ * Returns the value of the '<em><b>Subarea</b></em>' reference list.
+ * The list contents are of type {@link rba.view.Area}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Subarea</em>' reference list.
+ * @see rba.view.RBAViewPackage#getAlignedLayout_Subarea()
+ * @model
+ * @generated
+ */
+ EList<Area> getSubarea();
+
+ /**
+ * Returns the value of the '<em><b>Base Point</b></em>' attribute.
+ * The literals are from the enumeration {@link rba.view.BasePoint}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Base Point</em>' attribute.
+ * @see rba.view.BasePoint
+ * @see #setBasePoint(BasePoint)
+ * @see rba.view.RBAViewPackage#getAlignedLayout_BasePoint()
+ * @model
+ * @generated
+ */
+ BasePoint getBasePoint();
+
+ /**
+ * Sets the value of the '{@link rba.view.AlignedLayout#getBasePoint <em>Base Point</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Point</em>' attribute.
+ * @see rba.view.BasePoint
+ * @see #getBasePoint()
+ * @generated
+ */
+ void setBasePoint(BasePoint value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model ordered="false"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='java.util.Set&lt;Area&gt; areas = new java.util.HashSet&lt;Area&gt;();\r\nfor (Area area : getSubarea()) {\r\n areas.addAll(area.collectLeafAllocatable().stream().map(allocatable -&gt; (Area) allocatable).collect(java.util.stream.Collectors.toList()));\r\n}\r\nreturn new org.eclipse.emf.common.util.BasicEList&lt;Area&gt;(areas);'"
+ * @generated
+ */
+ EList<Area> collectLeafArea();
+
+} // AlignedLayout
diff --git a/rba.model.view/src/rba/view/AllInstanceOfArea.java b/rba.model.view/src/rba/view/AllInstanceOfArea.java
new file mode 100644
index 0000000..8074118
--- /dev/null
+++ b/rba.model.view/src/rba/view/AllInstanceOfArea.java
@@ -0,0 +1,47 @@
+/**
+ */
+package rba.view;
+
+import rba.core.ExpressionType;
+import rba.core.SetExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>All Instance Of Area</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.view.RBAViewPackage#getAllInstanceOfArea()
+ * @model
+ * @generated
+ */
+public interface AllInstanceOfArea extends SetExpression {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"AREA\";'"
+ * @generated
+ */
+ String getExpressionText();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.SET_OF_AREA;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+} // AllInstanceOfArea
diff --git a/rba.model.view/src/rba/view/AllInstanceOfViewContent.java b/rba.model.view/src/rba/view/AllInstanceOfViewContent.java
new file mode 100644
index 0000000..8eb093e
--- /dev/null
+++ b/rba.model.view/src/rba/view/AllInstanceOfViewContent.java
@@ -0,0 +1,47 @@
+/**
+ */
+package rba.view;
+
+import rba.core.ExpressionType;
+import rba.core.SetExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>All Instance Of View Content</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.view.RBAViewPackage#getAllInstanceOfViewContent()
+ * @model
+ * @generated
+ */
+public interface AllInstanceOfViewContent extends SetExpression {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"ALL_VIEWCONTENTS\";'"
+ * @generated
+ */
+ String getExpressionText();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.SET_OF_CONTENT;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+} // AllInstanceOfViewContent
diff --git a/rba.model.view/src/rba/view/Area.java b/rba.model.view/src/rba/view/Area.java
new file mode 100644
index 0000000..18f4532
--- /dev/null
+++ b/rba.model.view/src/rba/view/Area.java
@@ -0,0 +1,85 @@
+/**
+ */
+package rba.view;
+
+import org.eclipse.emf.common.util.EList;
+
+import rba.core.Allocatable;
+import rba.core.Expression;
+import rba.core.ExpressionType;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Area</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link rba.view.Area#getZorder <em>Zorder</em>}</li>
+ * <li>{@link rba.view.Area#getSize <em>Size</em>}</li>
+ * </ul>
+ *
+ * @see rba.view.RBAViewPackage#getArea()
+ * @model
+ * @generated
+ */
+public interface Area extends Allocatable {
+ /**
+ * Returns the value of the '<em><b>Zorder</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Zorder</em>' containment reference.
+ * @see #setZorder(Expression)
+ * @see rba.view.RBAViewPackage#getArea_Zorder()
+ * @model containment="true"
+ * @generated
+ */
+ Expression getZorder();
+
+ /**
+ * Sets the value of the '{@link rba.view.Area#getZorder <em>Zorder</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Zorder</em>' containment reference.
+ * @see #getZorder()
+ * @generated
+ */
+ void setZorder(Expression value);
+
+ /**
+ * Returns the value of the '<em><b>Size</b></em>' containment reference list.
+ * The list contents are of type {@link rba.view.SizeIdentifier}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Size</em>' containment reference list.
+ * @see rba.view.RBAViewPackage#getArea_Size()
+ * @model containment="true"
+ * @generated
+ */
+ EList<SizeIdentifier> getSize();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.AREA;'"
+ * @generated
+ */
+ ExpressionType getExpressionType();
+
+} // Area
diff --git a/rba.model.view/src/rba/view/AreaOperator.java b/rba.model.view/src/rba/view/AreaOperator.java
new file mode 100644
index 0000000..b627ba2
--- /dev/null
+++ b/rba.model.view/src/rba/view/AreaOperator.java
@@ -0,0 +1,22 @@
+/**
+ */
+package rba.view;
+
+import rba.core.AllocatableOperator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Area Operator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.view.RBAViewPackage#getAreaOperator()
+ * @model abstract="true"
+ * @generated
+ */
+public interface AreaOperator extends AllocatableOperator {
+} // AreaOperator
diff --git a/rba.model.view/src/rba/view/AreaSet.java b/rba.model.view/src/rba/view/AreaSet.java
new file mode 100644
index 0000000..cff465e
--- /dev/null
+++ b/rba.model.view/src/rba/view/AreaSet.java
@@ -0,0 +1,35 @@
+/**
+ */
+package rba.view;
+
+import rba.core.AllocatableSet;
+import rba.core.ExpressionType;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Area Set</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.view.RBAViewPackage#getAreaSet()
+ * @model
+ * @generated
+ */
+public interface AreaSet extends AllocatableSet {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.SET_OF_AREA;'"
+ * @generated
+ */
+ ExpressionType getExpressionType();
+
+} // AreaSet
diff --git a/rba.model.view/src/rba/view/BasePoint.java b/rba.model.view/src/rba/view/BasePoint.java
new file mode 100644
index 0000000..e57c829
--- /dev/null
+++ b/rba.model.view/src/rba/view/BasePoint.java
@@ -0,0 +1,405 @@
+/**
+ */
+package rba.view;
+
+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>Base Point</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @see rba.view.RBAViewPackage#getBasePoint()
+ * @model
+ * @generated
+ */
+public enum BasePoint implements Enumerator {
+ /**
+ * The '<em><b>LEFT TOP</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LEFT_TOP_VALUE
+ * @generated
+ * @ordered
+ */
+ LEFT_TOP(0, "LEFT_TOP", "LEFT_TOP"),
+
+ /**
+ * The '<em><b>LEFT MIDDLE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LEFT_MIDDLE_VALUE
+ * @generated
+ * @ordered
+ */
+ LEFT_MIDDLE(1, "LEFT_MIDDLE", "LEFT_MIDDLE"),
+
+ /**
+ * The '<em><b>LEFT BOTTOM</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LEFT_BOTTOM_VALUE
+ * @generated
+ * @ordered
+ */
+ LEFT_BOTTOM(2, "LEFT_BOTTOM", "LEFT_BOTTOM"),
+
+ /**
+ * The '<em><b>RIGHT TOP</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #RIGHT_TOP_VALUE
+ * @generated
+ * @ordered
+ */
+ RIGHT_TOP(3, "RIGHT_TOP", "RIGHT_TOP"),
+
+ /**
+ * The '<em><b>RIGHT MIDDLE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #RIGHT_MIDDLE_VALUE
+ * @generated
+ * @ordered
+ */
+ RIGHT_MIDDLE(4, "RIGHT_MIDDLE", "RIGHT_MIDDLE"),
+
+ /**
+ * The '<em><b>RIGHT BOTTOM</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #RIGHT_BOTTOM_VALUE
+ * @generated
+ * @ordered
+ */
+ RIGHT_BOTTOM(5, "RIGHT_BOTTOM", "RIGHT_BOTTOM"),
+
+ /**
+ * The '<em><b>CENTER TOP</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #CENTER_TOP_VALUE
+ * @generated
+ * @ordered
+ */
+ CENTER_TOP(6, "CENTER_TOP", "CENTER_TOP"),
+
+ /**
+ * The '<em><b>CENTER MIDDLE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #CENTER_MIDDLE_VALUE
+ * @generated
+ * @ordered
+ */
+ CENTER_MIDDLE(7, "CENTER_MIDDLE", "CENTER_MIDDLE"),
+
+ /**
+ * The '<em><b>CENTER BOTTOM</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #CENTER_BOTTOM_VALUE
+ * @generated
+ * @ordered
+ */
+ CENTER_BOTTOM(8, "CENTER_BOTTOM", "CENTER_BOTTOM");
+
+ /**
+ * The '<em><b>LEFT TOP</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>LEFT TOP</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #LEFT_TOP
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int LEFT_TOP_VALUE = 0;
+
+ /**
+ * The '<em><b>LEFT MIDDLE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>LEFT MIDDLE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #LEFT_MIDDLE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int LEFT_MIDDLE_VALUE = 1;
+
+ /**
+ * The '<em><b>LEFT BOTTOM</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>LEFT BOTTOM</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #LEFT_BOTTOM
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int LEFT_BOTTOM_VALUE = 2;
+
+ /**
+ * The '<em><b>RIGHT TOP</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>RIGHT TOP</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #RIGHT_TOP
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int RIGHT_TOP_VALUE = 3;
+
+ /**
+ * The '<em><b>RIGHT MIDDLE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>RIGHT MIDDLE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #RIGHT_MIDDLE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int RIGHT_MIDDLE_VALUE = 4;
+
+ /**
+ * The '<em><b>RIGHT BOTTOM</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>RIGHT BOTTOM</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #RIGHT_BOTTOM
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int RIGHT_BOTTOM_VALUE = 5;
+
+ /**
+ * The '<em><b>CENTER TOP</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>CENTER TOP</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #CENTER_TOP
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int CENTER_TOP_VALUE = 6;
+
+ /**
+ * The '<em><b>CENTER MIDDLE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>CENTER MIDDLE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #CENTER_MIDDLE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int CENTER_MIDDLE_VALUE = 7;
+
+ /**
+ * The '<em><b>CENTER BOTTOM</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>CENTER BOTTOM</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #CENTER_BOTTOM
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int CENTER_BOTTOM_VALUE = 8;
+
+ /**
+ * An array of all the '<em><b>Base Point</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final BasePoint[] VALUES_ARRAY = new BasePoint[] { LEFT_TOP, LEFT_MIDDLE, LEFT_BOTTOM, RIGHT_TOP,
+ RIGHT_MIDDLE, RIGHT_BOTTOM, CENTER_TOP, CENTER_MIDDLE, CENTER_BOTTOM, };
+
+ /**
+ * A public read-only list of all the '<em><b>Base Point</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<BasePoint> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Base Point</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param literal the literal.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static BasePoint get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ BasePoint result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Base Point</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param name the name.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static BasePoint getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ BasePoint result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Base Point</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the integer value.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static BasePoint get(int value) {
+ switch (value) {
+ case LEFT_TOP_VALUE:
+ return LEFT_TOP;
+ case LEFT_MIDDLE_VALUE:
+ return LEFT_MIDDLE;
+ case LEFT_BOTTOM_VALUE:
+ return LEFT_BOTTOM;
+ case RIGHT_TOP_VALUE:
+ return RIGHT_TOP;
+ case RIGHT_MIDDLE_VALUE:
+ return RIGHT_MIDDLE;
+ case RIGHT_BOTTOM_VALUE:
+ return RIGHT_BOTTOM;
+ case CENTER_TOP_VALUE:
+ return CENTER_TOP;
+ case CENTER_MIDDLE_VALUE:
+ return CENTER_MIDDLE;
+ case CENTER_BOTTOM_VALUE:
+ return CENTER_BOTTOM;
+ }
+ 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 BasePoint(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;
+ }
+
+} //BasePoint
diff --git a/rba.model.view/src/rba/view/CompositeArea.java b/rba.model.view/src/rba/view/CompositeArea.java
new file mode 100644
index 0000000..5c1a10a
--- /dev/null
+++ b/rba.model.view/src/rba/view/CompositeArea.java
@@ -0,0 +1,80 @@
+/**
+ */
+package rba.view;
+
+import org.eclipse.emf.common.util.EList;
+
+import rba.core.ExpressionType;
+import rba.core.PackagableElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Composite Area</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link rba.view.CompositeArea#getLayout <em>Layout</em>}</li>
+ * </ul>
+ *
+ * @see rba.view.RBAViewPackage#getCompositeArea()
+ * @model
+ * @generated
+ */
+public interface CompositeArea extends PackagableElement {
+ /**
+ * Returns the value of the '<em><b>Layout</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Layout</em>' containment reference.
+ * @see #setLayout(LayoutManager)
+ * @see rba.view.RBAViewPackage#getCompositeArea_Layout()
+ * @model containment="true"
+ * @generated
+ */
+ LayoutManager getLayout();
+
+ /**
+ * Sets the value of the '{@link rba.view.CompositeArea#getLayout <em>Layout</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Layout</em>' containment reference.
+ * @see #getLayout()
+ * @generated
+ */
+ void setLayout(LayoutManager value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model ordered="false"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='java.util.Set&lt;Area&gt; areas = new java.util.HashSet&lt;Area&gt;();\r\nif (layout != null) {\r\n areas.addAll(layout.collectLeafArea());\r\n}\r\n\r\nreturn new org.eclipse.emf.common.util.BasicEList&lt;Area&gt;(areas);'"
+ * @generated
+ */
+ EList<Area> collectLeafArea();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.AREA;'"
+ * @generated
+ */
+ ExpressionType getExpressionType();
+
+} // CompositeArea
diff --git a/rba.model.view/src/rba/view/Display.java b/rba.model.view/src/rba/view/Display.java
new file mode 100644
index 0000000..cb4ffbe
--- /dev/null
+++ b/rba.model.view/src/rba/view/Display.java
@@ -0,0 +1,79 @@
+/**
+ */
+package rba.view;
+
+import rba.core.PackagableElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Display</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link rba.view.Display#getRoot <em>Root</em>}</li>
+ * <li>{@link rba.view.Display#getSize <em>Size</em>}</li>
+ * </ul>
+ *
+ * @see rba.view.RBAViewPackage#getDisplay()
+ * @model
+ * @generated
+ */
+public interface Display extends PackagableElement {
+ /**
+ * Returns the value of the '<em><b>Root</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Root</em>' containment reference.
+ * @see #setRoot(CompositeArea)
+ * @see rba.view.RBAViewPackage#getDisplay_Root()
+ * @model containment="true"
+ * @generated
+ */
+ CompositeArea getRoot();
+
+ /**
+ * Sets the value of the '{@link rba.view.Display#getRoot <em>Root</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Root</em>' containment reference.
+ * @see #getRoot()
+ * @generated
+ */
+ void setRoot(CompositeArea value);
+
+ /**
+ * Returns the value of the '<em><b>Size</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Size</em>' containment reference.
+ * @see #setSize(SizeIdentifier)
+ * @see rba.view.RBAViewPackage#getDisplay_Size()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ SizeIdentifier getSize();
+
+ /**
+ * Sets the value of the '{@link rba.view.Display#getSize <em>Size</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Size</em>' containment reference.
+ * @see #getSize()
+ * @generated
+ */
+ void setSize(SizeIdentifier value);
+
+} // Display
diff --git a/rba.model.view/src/rba/view/DisplayingContent.java b/rba.model.view/src/rba/view/DisplayingContent.java
new file mode 100644
index 0000000..92268c3
--- /dev/null
+++ b/rba.model.view/src/rba/view/DisplayingContent.java
@@ -0,0 +1,46 @@
+/**
+ */
+package rba.view;
+
+import rba.core.ExpressionType;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Displaying Content</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.view.RBAViewPackage#getDisplayingContent()
+ * @model
+ * @generated
+ */
+public interface DisplayingContent extends AreaOperator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".displayingContent()\";'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.CONTENT;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+} // DisplayingContent
diff --git a/rba.model.view/src/rba/view/FixedPositionLayout.java b/rba.model.view/src/rba/view/FixedPositionLayout.java
new file mode 100644
index 0000000..a36b7c9
--- /dev/null
+++ b/rba.model.view/src/rba/view/FixedPositionLayout.java
@@ -0,0 +1,52 @@
+/**
+ */
+package rba.view;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Fixed Position Layout</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link rba.view.FixedPositionLayout#getSubAreaPosition <em>Sub Area Position</em>}</li>
+ * </ul>
+ *
+ * @see rba.view.RBAViewPackage#getFixedPositionLayout()
+ * @model
+ * @generated
+ */
+public interface FixedPositionLayout extends LayoutManager {
+ /**
+ * Returns the value of the '<em><b>Sub Area Position</b></em>' containment reference list.
+ * The list contents are of type {@link rba.view.PositionContainer}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Sub Area Position</em>' containment reference list.
+ * @see rba.view.RBAViewPackage#getFixedPositionLayout_SubAreaPosition()
+ * @model containment="true"
+ * @generated
+ */
+ EList<PositionContainer> getSubAreaPosition();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model ordered="false"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='java.util.Set&lt;Area&gt; areas = new java.util.HashSet&lt;Area&gt;();\r\nfor (PositionContainer pc : getSubAreaPosition()) {\r\n areas.addAll(pc.getArea().collectLeafAllocatable().stream().map(allocatable -&gt; (Area) allocatable).collect(java.util.stream.Collectors.toList()));\r\n}\r\nreturn new org.eclipse.emf.common.util.BasicEList&lt;Area&gt;(areas);'"
+ * @generated
+ */
+ EList<Area> collectLeafArea();
+
+} // FixedPositionLayout
diff --git a/rba.model.view/src/rba/view/HideLowerPriority.java b/rba.model.view/src/rba/view/HideLowerPriority.java
new file mode 100644
index 0000000..af57f7f
--- /dev/null
+++ b/rba.model.view/src/rba/view/HideLowerPriority.java
@@ -0,0 +1,47 @@
+/**
+ */
+package rba.view;
+
+import rba.core.ExpressionType;
+import rba.core.Operator;
+import rba.core.SugarExpressionBase;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Hide Lower Priority</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see rba.view.RBAViewPackage#getHideLowerPriority()
+ * @model
+ * @generated
+ */
+public interface HideLowerPriority extends Operator, SugarExpressionBase {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \"HideLowerPriority\";'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.BOOLEAN;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuilder expressionText = new StringBuilder();\r\nEList&lt;rba.core.Expression&gt; expressions = getOperand();\r\nexpressionText.append(getSymbol());\r\nexpressionText.append(\"(\");\r\nexpressionText.append(expressions.size() &gt; 0 ? expressions.get(0).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(\",\");\r\nexpressionText.append(expressions.size() &gt; 1 ? expressions.get(1).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(\")\");\r\nreturn expressionText.toString();'"
+ * @generated
+ */
+ String getExpressionText();
+
+} // HideLowerPriority
diff --git a/rba.model.view/src/rba/view/HorizontalLayout.java b/rba.model.view/src/rba/view/HorizontalLayout.java
new file mode 100644
index 0000000..b434aea
--- /dev/null
+++ b/rba.model.view/src/rba/view/HorizontalLayout.java
@@ -0,0 +1,20 @@
+/**
+ */
+package rba.view;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Horizontal Layout</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.view.RBAViewPackage#getHorizontalLayout()
+ * @model
+ * @generated
+ */
+public interface HorizontalLayout extends AlignedLayout {
+} // HorizontalLayout
diff --git a/rba.model.view/src/rba/view/IsChangedDisplay.java b/rba.model.view/src/rba/view/IsChangedDisplay.java
new file mode 100644
index 0000000..9063c8c
--- /dev/null
+++ b/rba.model.view/src/rba/view/IsChangedDisplay.java
@@ -0,0 +1,37 @@
+/**
+ */
+package rba.view;
+
+import rba.core.ExpressionType;
+import rba.core.SugarExpressionBase;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Is Changed Display</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see rba.view.RBAViewPackage#getIsChangedDisplay()
+ * @model
+ * @generated
+ */
+public interface IsChangedDisplay extends AreaOperator, SugarExpressionBase {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".isChangedDisplay()\";'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.BOOLEAN;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+} // IsChangedDisplay
diff --git a/rba.model.view/src/rba/view/IsDisplayed.java b/rba.model.view/src/rba/view/IsDisplayed.java
new file mode 100644
index 0000000..6eb1220
--- /dev/null
+++ b/rba.model.view/src/rba/view/IsDisplayed.java
@@ -0,0 +1,46 @@
+/**
+ */
+package rba.view;
+
+import rba.core.ExpressionType;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Is Displayed</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.view.RBAViewPackage#getIsDisplayed()
+ * @model
+ * @generated
+ */
+public interface IsDisplayed extends AreaOperator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".isDisplayed()\";'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.BOOLEAN;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+} // IsDisplayed
diff --git a/rba.model.view/src/rba/view/IsDisplayedOn.java b/rba.model.view/src/rba/view/IsDisplayedOn.java
new file mode 100644
index 0000000..afd36d5
--- /dev/null
+++ b/rba.model.view/src/rba/view/IsDisplayedOn.java
@@ -0,0 +1,46 @@
+/**
+ */
+package rba.view;
+
+import rba.core.ExpressionType;
+import rba.core.SugarExpressionBase;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Is Displayed On</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see rba.view.RBAViewPackage#getIsDisplayedOn()
+ * @model
+ * @generated
+ */
+public interface IsDisplayedOn extends ViewContentOperator, SugarExpressionBase {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".isDisplayedOn\";'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.BOOLEAN;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuilder expressionText = new StringBuilder();\r\nEList&lt;rba.core.Expression&gt; expressions = getOperand();\r\nexpressionText.append(expressions.size() &gt; 0 ? expressions.get(0).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(getSymbol());\r\nexpressionText.append(\"(\");\r\nexpressionText.append(expressions.size() &gt; 1 ? expressions.get(1).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(\")\");\r\nreturn expressionText.toString();'"
+ * @generated
+ */
+ String getExpressionText();
+
+} // IsDisplayedOn
diff --git a/rba.model.view/src/rba/view/IsHidden.java b/rba.model.view/src/rba/view/IsHidden.java
new file mode 100644
index 0000000..c6c2573
--- /dev/null
+++ b/rba.model.view/src/rba/view/IsHidden.java
@@ -0,0 +1,46 @@
+/**
+ */
+package rba.view;
+
+import rba.core.ExpressionType;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Is Hidden</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.view.RBAViewPackage#getIsHidden()
+ * @model
+ * @generated
+ */
+public interface IsHidden extends AreaOperator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".isHidden()\";'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.BOOLEAN;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+} // IsHidden
diff --git a/rba.model.view/src/rba/view/IsTranslatedViewTo.java b/rba.model.view/src/rba/view/IsTranslatedViewTo.java
new file mode 100644
index 0000000..175605d
--- /dev/null
+++ b/rba.model.view/src/rba/view/IsTranslatedViewTo.java
@@ -0,0 +1,46 @@
+/**
+ */
+package rba.view;
+
+import rba.core.ExpressionType;
+import rba.core.SugarExpressionBase;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Is Translated View To</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see rba.view.RBAViewPackage#getIsTranslatedViewTo()
+ * @model
+ * @generated
+ */
+public interface IsTranslatedViewTo extends AreaOperator, SugarExpressionBase {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".isTranslatedViewTo\";'"
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.BOOLEAN;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuilder expressionText = new StringBuilder();\r\nEList&lt;rba.core.Expression&gt; expressions = getOperand();\r\nexpressionText.append(expressions.size() &gt; 0 ? expressions.get(0).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(getSymbol());\r\nexpressionText.append(\"(\");\r\nexpressionText.append(expressions.size() &gt; 1 ? expressions.get(1).getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(\")\");\r\nreturn expressionText.toString();'"
+ * @generated
+ */
+ String getExpressionText();
+
+} // IsTranslatedViewTo
diff --git a/rba.model.view/src/rba/view/IsVisible.java b/rba.model.view/src/rba/view/IsVisible.java
new file mode 100644
index 0000000..65a3724
--- /dev/null
+++ b/rba.model.view/src/rba/view/IsVisible.java
@@ -0,0 +1,32 @@
+/**
+ */
+package rba.view;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Is Visible</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.view.RBAViewPackage#getIsVisible()
+ * @model
+ * @generated
+ */
+public interface IsVisible extends ViewContentOperator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return \".isVisible()\";'"
+ * @generated
+ */
+ String getSymbol();
+
+} // IsVisible
diff --git a/rba.model.view/src/rba/view/LayoutManager.java b/rba.model.view/src/rba/view/LayoutManager.java
new file mode 100644
index 0000000..0e41fb3
--- /dev/null
+++ b/rba.model.view/src/rba/view/LayoutManager.java
@@ -0,0 +1,35 @@
+/**
+ */
+package rba.view;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Layout Manager</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.view.RBAViewPackage#getLayoutManager()
+ * @model abstract="true"
+ * @generated
+ */
+public interface LayoutManager extends EObject {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @model ordered="false"
+ * @generated
+ */
+ EList<Area> collectLeafArea();
+
+} // LayoutManager
diff --git a/rba.model.view/src/rba/view/Offset.java b/rba.model.view/src/rba/view/Offset.java
new file mode 100644
index 0000000..d46b1c7
--- /dev/null
+++ b/rba.model.view/src/rba/view/Offset.java
@@ -0,0 +1,159 @@
+/**
+ */
+package rba.view;
+
+import rba.core.PackagableElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Offset</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link rba.view.Offset#getX <em>X</em>}</li>
+ * <li>{@link rba.view.Offset#getY <em>Y</em>}</li>
+ * <li>{@link rba.view.Offset#getSize <em>Size</em>}</li>
+ * </ul>
+ *
+ * @see rba.view.RBAViewPackage#getOffset()
+ * @model
+ * @generated
+ */
+public interface Offset extends PackagableElement {
+ /**
+ * Returns the value of the '<em><b>X</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>X</em>' attribute.
+ * @see #isSetX()
+ * @see #unsetX()
+ * @see #setX(int)
+ * @see rba.view.RBAViewPackage#getOffset_X()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ int getX();
+
+ /**
+ * Sets the value of the '{@link rba.view.Offset#getX <em>X</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>X</em>' attribute.
+ * @see #isSetX()
+ * @see #unsetX()
+ * @see #getX()
+ * @generated
+ */
+ void setX(int value);
+
+ /**
+ * Unsets the value of the '{@link rba.view.Offset#getX <em>X</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetX()
+ * @see #getX()
+ * @see #setX(int)
+ * @generated
+ */
+ void unsetX();
+
+ /**
+ * Returns whether the value of the '{@link rba.view.Offset#getX <em>X</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>X</em>' attribute is set.
+ * @see #unsetX()
+ * @see #getX()
+ * @see #setX(int)
+ * @generated
+ */
+ boolean isSetX();
+
+ /**
+ * Returns the value of the '<em><b>Y</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Y</em>' attribute.
+ * @see #isSetY()
+ * @see #unsetY()
+ * @see #setY(int)
+ * @see rba.view.RBAViewPackage#getOffset_Y()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ int getY();
+
+ /**
+ * Sets the value of the '{@link rba.view.Offset#getY <em>Y</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Y</em>' attribute.
+ * @see #isSetY()
+ * @see #unsetY()
+ * @see #getY()
+ * @generated
+ */
+ void setY(int value);
+
+ /**
+ * Unsets the value of the '{@link rba.view.Offset#getY <em>Y</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetY()
+ * @see #getY()
+ * @see #setY(int)
+ * @generated
+ */
+ void unsetY();
+
+ /**
+ * Returns whether the value of the '{@link rba.view.Offset#getY <em>Y</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Y</em>' attribute is set.
+ * @see #unsetY()
+ * @see #getY()
+ * @see #setY(int)
+ * @generated
+ */
+ boolean isSetY();
+
+ /**
+ * Returns the value of the '<em><b>Size</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Size</em>' containment reference.
+ * @see #setSize(SizeReference)
+ * @see rba.view.RBAViewPackage#getOffset_Size()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ SizeReference getSize();
+
+ /**
+ * Sets the value of the '{@link rba.view.Offset#getSize <em>Size</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Size</em>' containment reference.
+ * @see #getSize()
+ * @generated
+ */
+ void setSize(SizeReference value);
+
+} // Offset
diff --git a/rba.model.view/src/rba/view/PositionContainer.java b/rba.model.view/src/rba/view/PositionContainer.java
new file mode 100644
index 0000000..c6e7368
--- /dev/null
+++ b/rba.model.view/src/rba/view/PositionContainer.java
@@ -0,0 +1,207 @@
+/**
+ */
+package rba.view;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Position Container</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link rba.view.PositionContainer#getX <em>X</em>}</li>
+ * <li>{@link rba.view.PositionContainer#getY <em>Y</em>}</li>
+ * <li>{@link rba.view.PositionContainer#getBasePoint <em>Base Point</em>}</li>
+ * <li>{@link rba.view.PositionContainer#getArea <em>Area</em>}</li>
+ * <li>{@link rba.view.PositionContainer#getOffset <em>Offset</em>}</li>
+ * </ul>
+ *
+ * @see rba.view.RBAViewPackage#getPositionContainer()
+ * @model
+ * @generated
+ */
+public interface PositionContainer extends EObject {
+ /**
+ * Returns the value of the '<em><b>X</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>X</em>' attribute.
+ * @see #isSetX()
+ * @see #unsetX()
+ * @see #setX(int)
+ * @see rba.view.RBAViewPackage#getPositionContainer_X()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ int getX();
+
+ /**
+ * Sets the value of the '{@link rba.view.PositionContainer#getX <em>X</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>X</em>' attribute.
+ * @see #isSetX()
+ * @see #unsetX()
+ * @see #getX()
+ * @generated
+ */
+ void setX(int value);
+
+ /**
+ * Unsets the value of the '{@link rba.view.PositionContainer#getX <em>X</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetX()
+ * @see #getX()
+ * @see #setX(int)
+ * @generated
+ */
+ void unsetX();
+
+ /**
+ * Returns whether the value of the '{@link rba.view.PositionContainer#getX <em>X</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>X</em>' attribute is set.
+ * @see #unsetX()
+ * @see #getX()
+ * @see #setX(int)
+ * @generated
+ */
+ boolean isSetX();
+
+ /**
+ * Returns the value of the '<em><b>Y</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Y</em>' attribute.
+ * @see #isSetY()
+ * @see #unsetY()
+ * @see #setY(int)
+ * @see rba.view.RBAViewPackage#getPositionContainer_Y()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ int getY();
+
+ /**
+ * Sets the value of the '{@link rba.view.PositionContainer#getY <em>Y</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Y</em>' attribute.
+ * @see #isSetY()
+ * @see #unsetY()
+ * @see #getY()
+ * @generated
+ */
+ void setY(int value);
+
+ /**
+ * Unsets the value of the '{@link rba.view.PositionContainer#getY <em>Y</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetY()
+ * @see #getY()
+ * @see #setY(int)
+ * @generated
+ */
+ void unsetY();
+
+ /**
+ * Returns whether the value of the '{@link rba.view.PositionContainer#getY <em>Y</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Y</em>' attribute is set.
+ * @see #unsetY()
+ * @see #getY()
+ * @see #setY(int)
+ * @generated
+ */
+ boolean isSetY();
+
+ /**
+ * Returns the value of the '<em><b>Base Point</b></em>' attribute.
+ * The literals are from the enumeration {@link rba.view.BasePoint}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Base Point</em>' attribute.
+ * @see rba.view.BasePoint
+ * @see #setBasePoint(BasePoint)
+ * @see rba.view.RBAViewPackage#getPositionContainer_BasePoint()
+ * @model
+ * @generated
+ */
+ BasePoint getBasePoint();
+
+ /**
+ * Sets the value of the '{@link rba.view.PositionContainer#getBasePoint <em>Base Point</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Point</em>' attribute.
+ * @see rba.view.BasePoint
+ * @see #getBasePoint()
+ * @generated
+ */
+ void setBasePoint(BasePoint value);
+
+ /**
+ * Returns the value of the '<em><b>Area</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Area</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Area</em>' reference.
+ * @see #setArea(Area)
+ * @see rba.view.RBAViewPackage#getPositionContainer_Area()
+ * @model required="true"
+ * @generated
+ */
+ Area getArea();
+
+ /**
+ * Sets the value of the '{@link rba.view.PositionContainer#getArea <em>Area</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Area</em>' reference.
+ * @see #getArea()
+ * @generated
+ */
+ void setArea(Area value);
+
+ /**
+ * Returns the value of the '<em><b>Offset</b></em>' containment reference list.
+ * The list contents are of type {@link rba.view.Offset}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Offset</em>' containment reference list.
+ * @see rba.view.RBAViewPackage#getPositionContainer_Offset()
+ * @model containment="true"
+ * @generated
+ */
+ EList<Offset> getOffset();
+
+} // PositionContainer
diff --git a/rba.model.view/src/rba/view/RBAViewFactory.java b/rba.model.view/src/rba/view/RBAViewFactory.java
new file mode 100644
index 0000000..e5e893e
--- /dev/null
+++ b/rba.model.view/src/rba/view/RBAViewFactory.java
@@ -0,0 +1,249 @@
+/**
+ */
+package rba.view;
+
+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 rba.view.RBAViewPackage
+ * @generated
+ */
+public interface RBAViewFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ RBAViewFactory eINSTANCE = rba.view.impl.RBAViewFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>View Content</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>View Content</em>'.
+ * @generated
+ */
+ ViewContent createViewContent();
+
+ /**
+ * Returns a new object of class '<em>View Content Set</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>View Content Set</em>'.
+ * @generated
+ */
+ ViewContentSet createViewContentSet();
+
+ /**
+ * Returns a new object of class '<em>View Content State</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>View Content State</em>'.
+ * @generated
+ */
+ ViewContentState createViewContentState();
+
+ /**
+ * Returns a new object of class '<em>Vertical Layout</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Vertical Layout</em>'.
+ * @generated
+ */
+ VerticalLayout createVerticalLayout();
+
+ /**
+ * Returns a new object of class '<em>Horizontal Layout</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Horizontal Layout</em>'.
+ * @generated
+ */
+ HorizontalLayout createHorizontalLayout();
+
+ /**
+ * Returns a new object of class '<em>Fixed Position Layout</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Fixed Position Layout</em>'.
+ * @generated
+ */
+ FixedPositionLayout createFixedPositionLayout();
+
+ /**
+ * Returns a new object of class '<em>Position Container</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Position Container</em>'.
+ * @generated
+ */
+ PositionContainer createPositionContainer();
+
+ /**
+ * Returns a new object of class '<em>Display</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Display</em>'.
+ * @generated
+ */
+ Display createDisplay();
+
+ /**
+ * Returns a new object of class '<em>Composite Area</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Composite Area</em>'.
+ * @generated
+ */
+ CompositeArea createCompositeArea();
+
+ /**
+ * Returns a new object of class '<em>Area</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Area</em>'.
+ * @generated
+ */
+ Area createArea();
+
+ /**
+ * Returns a new object of class '<em>Area Set</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Area Set</em>'.
+ * @generated
+ */
+ AreaSet createAreaSet();
+
+ /**
+ * Returns a new object of class '<em>Size</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Size</em>'.
+ * @generated
+ */
+ Size createSize();
+
+ /**
+ * Returns a new object of class '<em>Size Reference</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Size Reference</em>'.
+ * @generated
+ */
+ SizeReference createSizeReference();
+
+ /**
+ * Returns a new object of class '<em>Offset</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Offset</em>'.
+ * @generated
+ */
+ Offset createOffset();
+
+ /**
+ * Returns a new object of class '<em>Is Displayed</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Is Displayed</em>'.
+ * @generated
+ */
+ IsDisplayed createIsDisplayed();
+
+ /**
+ * Returns a new object of class '<em>Displaying Content</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Displaying Content</em>'.
+ * @generated
+ */
+ DisplayingContent createDisplayingContent();
+
+ /**
+ * Returns a new object of class '<em>Is Hidden</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Is Hidden</em>'.
+ * @generated
+ */
+ IsHidden createIsHidden();
+
+ /**
+ * Returns a new object of class '<em>Is Visible</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Is Visible</em>'.
+ * @generated
+ */
+ IsVisible createIsVisible();
+
+ /**
+ * Returns a new object of class '<em>All Instance Of Area</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>All Instance Of Area</em>'.
+ * @generated
+ */
+ AllInstanceOfArea createAllInstanceOfArea();
+
+ /**
+ * Returns a new object of class '<em>All Instance Of View Content</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>All Instance Of View Content</em>'.
+ * @generated
+ */
+ AllInstanceOfViewContent createAllInstanceOfViewContent();
+
+ /**
+ * Returns a new object of class '<em>Is Displayed On</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Is Displayed On</em>'.
+ * @generated
+ */
+ IsDisplayedOn createIsDisplayedOn();
+
+ /**
+ * Returns a new object of class '<em>Is Changed Display</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Is Changed Display</em>'.
+ * @generated
+ */
+ IsChangedDisplay createIsChangedDisplay();
+
+ /**
+ * Returns a new object of class '<em>Is Translated View To</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Is Translated View To</em>'.
+ * @generated
+ */
+ IsTranslatedViewTo createIsTranslatedViewTo();
+
+ /**
+ * Returns a new object of class '<em>Hide Lower Priority</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Hide Lower Priority</em>'.
+ * @generated
+ */
+ HideLowerPriority createHideLowerPriority();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ RBAViewPackage getRBAViewPackage();
+
+} //RBAViewFactory
diff --git a/rba.model.view/src/rba/view/RBAViewPackage.java b/rba.model.view/src/rba/view/RBAViewPackage.java
new file mode 100644
index 0000000..5589731
--- /dev/null
+++ b/rba.model.view/src/rba/view/RBAViewPackage.java
@@ -0,0 +1,4026 @@
+/**
+ */
+package rba.view;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- 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 operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see rba.view.RBAViewFactory
+ * @model kind="package"
+ * annotation="http://www.eclipse.org/OCL/Import RbaCore='../../rba.model.core/model/rbacore.ecore#/' ecore='http://www.eclipse.org/emf/2002/Ecore'"
+ * @generated
+ */
+public interface RBAViewPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "view";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.denso.com/ict/rba/view";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "RbaView";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ RBAViewPackage eINSTANCE = rba.view.impl.RBAViewPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link rba.view.impl.ViewContentImpl <em>View Content</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.ViewContentImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getViewContent()
+ * @generated
+ */
+ int VIEW_CONTENT = 0;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEW_CONTENT__DESCRIPTION = RBACorePackage.CONTENT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEW_CONTENT__NAME = RBACorePackage.CONTENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Tags</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEW_CONTENT__TAGS = RBACorePackage.CONTENT__TAGS;
+
+ /**
+ * The feature id for the '<em><b>Content Group</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEW_CONTENT__CONTENT_GROUP = RBACorePackage.CONTENT__CONTENT_GROUP;
+
+ /**
+ * The feature id for the '<em><b>Allocatable</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEW_CONTENT__ALLOCATABLE = RBACorePackage.CONTENT__ALLOCATABLE;
+
+ /**
+ * The feature id for the '<em><b>Loser Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEW_CONTENT__LOSER_TYPE = RBACorePackage.CONTENT__LOSER_TYPE;
+
+ /**
+ * The feature id for the '<em><b>States</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEW_CONTENT__STATES = RBACorePackage.CONTENT__STATES;
+
+ /**
+ * The feature id for the '<em><b>Size</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEW_CONTENT__SIZE = RBACorePackage.CONTENT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>View Content</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEW_CONTENT_FEATURE_COUNT = RBACorePackage.CONTENT_FEATURE_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Get Allocatable List</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEW_CONTENT___GET_ALLOCATABLE_LIST = RBACorePackage.CONTENT___GET_ALLOCATABLE_LIST;
+
+ /**
+ * The operation id for the '<em>Collect Leaf Contents</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEW_CONTENT___COLLECT_LEAF_CONTENTS = RBACorePackage.CONTENT___COLLECT_LEAF_CONTENTS;
+
+ /**
+ * The operation id for the '<em>Get Expression Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEW_CONTENT___GET_EXPRESSION_TYPE = RBACorePackage.CONTENT_OPERATION_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>View Content</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEW_CONTENT_OPERATION_COUNT = RBACorePackage.CONTENT_OPERATION_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link rba.view.impl.ViewContentSetImpl <em>View Content Set</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.ViewContentSetImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getViewContentSet()
+ * @generated
+ */
+ int VIEW_CONTENT_SET = 1;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEW_CONTENT_SET__DESCRIPTION = RBACorePackage.CONTENT_SET__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEW_CONTENT_SET__NAME = RBACorePackage.CONTENT_SET__NAME;
+
+ /**
+ * The feature id for the '<em><b>Tags</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEW_CONTENT_SET__TAGS = RBACorePackage.CONTENT_SET__TAGS;
+
+ /**
+ * The feature id for the '<em><b>Content Group</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEW_CONTENT_SET__CONTENT_GROUP = RBACorePackage.CONTENT_SET__CONTENT_GROUP;
+
+ /**
+ * The feature id for the '<em><b>Allocatable</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEW_CONTENT_SET__ALLOCATABLE = RBACorePackage.CONTENT_SET__ALLOCATABLE;
+
+ /**
+ * The feature id for the '<em><b>Target</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEW_CONTENT_SET__TARGET = RBACorePackage.CONTENT_SET__TARGET;
+
+ /**
+ * The number of structural features of the '<em>View Content Set</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEW_CONTENT_SET_FEATURE_COUNT = RBACorePackage.CONTENT_SET_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Allocatable List</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEW_CONTENT_SET___GET_ALLOCATABLE_LIST = RBACorePackage.CONTENT_SET___GET_ALLOCATABLE_LIST;
+
+ /**
+ * The operation id for the '<em>Collect Leaf Contents</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEW_CONTENT_SET___COLLECT_LEAF_CONTENTS = RBACorePackage.CONTENT_SET___COLLECT_LEAF_CONTENTS;
+
+ /**
+ * The operation id for the '<em>Get Expression Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEW_CONTENT_SET___GET_EXPRESSION_TYPE = RBACorePackage.CONTENT_SET_OPERATION_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>View Content Set</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEW_CONTENT_SET_OPERATION_COUNT = RBACorePackage.CONTENT_SET_OPERATION_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link rba.view.impl.ViewContentStateImpl <em>View Content State</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.ViewContentStateImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getViewContentState()
+ * @generated
+ */
+ int VIEW_CONTENT_STATE = 2;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEW_CONTENT_STATE__DESCRIPTION = RBACorePackage.CONTENT_STATE__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEW_CONTENT_STATE__NAME = RBACorePackage.CONTENT_STATE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Tags</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEW_CONTENT_STATE__TAGS = RBACorePackage.CONTENT_STATE__TAGS;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEW_CONTENT_STATE__VALUE = RBACorePackage.CONTENT_STATE__VALUE;
+
+ /**
+ * The feature id for the '<em><b>Owner</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEW_CONTENT_STATE__OWNER = RBACorePackage.CONTENT_STATE__OWNER;
+
+ /**
+ * The number of structural features of the '<em>View Content State</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEW_CONTENT_STATE_FEATURE_COUNT = RBACorePackage.CONTENT_STATE_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEW_CONTENT_STATE___GET_EXPRESSION_TYPE = RBACorePackage.CONTENT_STATE_OPERATION_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>View Content State</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEW_CONTENT_STATE_OPERATION_COUNT = RBACorePackage.CONTENT_STATE_OPERATION_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link rba.view.impl.LayoutManagerImpl <em>Layout Manager</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.LayoutManagerImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getLayoutManager()
+ * @generated
+ */
+ int LAYOUT_MANAGER = 3;
+
+ /**
+ * The number of structural features of the '<em>Layout Manager</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAYOUT_MANAGER_FEATURE_COUNT = 0;
+
+ /**
+ * The operation id for the '<em>Collect Leaf Area</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAYOUT_MANAGER___COLLECT_LEAF_AREA = 0;
+
+ /**
+ * The number of operations of the '<em>Layout Manager</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAYOUT_MANAGER_OPERATION_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link rba.view.impl.AlignedLayoutImpl <em>Aligned Layout</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.AlignedLayoutImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getAlignedLayout()
+ * @generated
+ */
+ int ALIGNED_LAYOUT = 4;
+
+ /**
+ * The feature id for the '<em><b>Subarea</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALIGNED_LAYOUT__SUBAREA = LAYOUT_MANAGER_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Base Point</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALIGNED_LAYOUT__BASE_POINT = LAYOUT_MANAGER_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Aligned Layout</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALIGNED_LAYOUT_FEATURE_COUNT = LAYOUT_MANAGER_FEATURE_COUNT + 2;
+
+ /**
+ * The operation id for the '<em>Collect Leaf Area</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALIGNED_LAYOUT___COLLECT_LEAF_AREA = LAYOUT_MANAGER_OPERATION_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Aligned Layout</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALIGNED_LAYOUT_OPERATION_COUNT = LAYOUT_MANAGER_OPERATION_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link rba.view.impl.VerticalLayoutImpl <em>Vertical Layout</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.VerticalLayoutImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getVerticalLayout()
+ * @generated
+ */
+ int VERTICAL_LAYOUT = 5;
+
+ /**
+ * The feature id for the '<em><b>Subarea</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VERTICAL_LAYOUT__SUBAREA = ALIGNED_LAYOUT__SUBAREA;
+
+ /**
+ * The feature id for the '<em><b>Base Point</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VERTICAL_LAYOUT__BASE_POINT = ALIGNED_LAYOUT__BASE_POINT;
+
+ /**
+ * The number of structural features of the '<em>Vertical Layout</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VERTICAL_LAYOUT_FEATURE_COUNT = ALIGNED_LAYOUT_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Collect Leaf Area</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VERTICAL_LAYOUT___COLLECT_LEAF_AREA = ALIGNED_LAYOUT___COLLECT_LEAF_AREA;
+
+ /**
+ * The number of operations of the '<em>Vertical Layout</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VERTICAL_LAYOUT_OPERATION_COUNT = ALIGNED_LAYOUT_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link rba.view.impl.HorizontalLayoutImpl <em>Horizontal Layout</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.HorizontalLayoutImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getHorizontalLayout()
+ * @generated
+ */
+ int HORIZONTAL_LAYOUT = 6;
+
+ /**
+ * The feature id for the '<em><b>Subarea</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HORIZONTAL_LAYOUT__SUBAREA = ALIGNED_LAYOUT__SUBAREA;
+
+ /**
+ * The feature id for the '<em><b>Base Point</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HORIZONTAL_LAYOUT__BASE_POINT = ALIGNED_LAYOUT__BASE_POINT;
+
+ /**
+ * The number of structural features of the '<em>Horizontal Layout</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HORIZONTAL_LAYOUT_FEATURE_COUNT = ALIGNED_LAYOUT_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Collect Leaf Area</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HORIZONTAL_LAYOUT___COLLECT_LEAF_AREA = ALIGNED_LAYOUT___COLLECT_LEAF_AREA;
+
+ /**
+ * The number of operations of the '<em>Horizontal Layout</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HORIZONTAL_LAYOUT_OPERATION_COUNT = ALIGNED_LAYOUT_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link rba.view.impl.FixedPositionLayoutImpl <em>Fixed Position Layout</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.FixedPositionLayoutImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getFixedPositionLayout()
+ * @generated
+ */
+ int FIXED_POSITION_LAYOUT = 7;
+
+ /**
+ * The feature id for the '<em><b>Sub Area Position</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FIXED_POSITION_LAYOUT__SUB_AREA_POSITION = LAYOUT_MANAGER_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Fixed Position Layout</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FIXED_POSITION_LAYOUT_FEATURE_COUNT = LAYOUT_MANAGER_FEATURE_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Collect Leaf Area</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FIXED_POSITION_LAYOUT___COLLECT_LEAF_AREA = LAYOUT_MANAGER_OPERATION_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Fixed Position Layout</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FIXED_POSITION_LAYOUT_OPERATION_COUNT = LAYOUT_MANAGER_OPERATION_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link rba.view.impl.PositionContainerImpl <em>Position Container</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.PositionContainerImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getPositionContainer()
+ * @generated
+ */
+ int POSITION_CONTAINER = 8;
+
+ /**
+ * The feature id for the '<em><b>X</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POSITION_CONTAINER__X = 0;
+
+ /**
+ * The feature id for the '<em><b>Y</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POSITION_CONTAINER__Y = 1;
+
+ /**
+ * The feature id for the '<em><b>Base Point</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POSITION_CONTAINER__BASE_POINT = 2;
+
+ /**
+ * The feature id for the '<em><b>Area</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POSITION_CONTAINER__AREA = 3;
+
+ /**
+ * The feature id for the '<em><b>Offset</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POSITION_CONTAINER__OFFSET = 4;
+
+ /**
+ * The number of structural features of the '<em>Position Container</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POSITION_CONTAINER_FEATURE_COUNT = 5;
+
+ /**
+ * The number of operations of the '<em>Position Container</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POSITION_CONTAINER_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link rba.view.impl.DisplayImpl <em>Display</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.DisplayImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getDisplay()
+ * @generated
+ */
+ int DISPLAY = 9;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISPLAY__DESCRIPTION = RBACorePackage.PACKAGABLE_ELEMENT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISPLAY__NAME = RBACorePackage.PACKAGABLE_ELEMENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Root</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISPLAY__ROOT = RBACorePackage.PACKAGABLE_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Size</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISPLAY__SIZE = RBACorePackage.PACKAGABLE_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Display</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISPLAY_FEATURE_COUNT = RBACorePackage.PACKAGABLE_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The number of operations of the '<em>Display</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISPLAY_OPERATION_COUNT = RBACorePackage.PACKAGABLE_ELEMENT_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link rba.view.impl.CompositeAreaImpl <em>Composite Area</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.CompositeAreaImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getCompositeArea()
+ * @generated
+ */
+ int COMPOSITE_AREA = 10;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOSITE_AREA__DESCRIPTION = RBACorePackage.PACKAGABLE_ELEMENT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOSITE_AREA__NAME = RBACorePackage.PACKAGABLE_ELEMENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Layout</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOSITE_AREA__LAYOUT = RBACorePackage.PACKAGABLE_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Composite Area</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOSITE_AREA_FEATURE_COUNT = RBACorePackage.PACKAGABLE_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Collect Leaf Area</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOSITE_AREA___COLLECT_LEAF_AREA = RBACorePackage.PACKAGABLE_ELEMENT_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOSITE_AREA___GET_EXPRESSION_TYPE = RBACorePackage.PACKAGABLE_ELEMENT_OPERATION_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Composite Area</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOSITE_AREA_OPERATION_COUNT = RBACorePackage.PACKAGABLE_ELEMENT_OPERATION_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link rba.view.impl.AreaImpl <em>Area</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.AreaImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getArea()
+ * @generated
+ */
+ int AREA = 11;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AREA__DESCRIPTION = RBACorePackage.ALLOCATABLE__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AREA__NAME = RBACorePackage.ALLOCATABLE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Tags</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AREA__TAGS = RBACorePackage.ALLOCATABLE__TAGS;
+
+ /**
+ * The feature id for the '<em><b>Contents</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AREA__CONTENTS = RBACorePackage.ALLOCATABLE__CONTENTS;
+
+ /**
+ * The feature id for the '<em><b>Allocatable Group</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AREA__ALLOCATABLE_GROUP = RBACorePackage.ALLOCATABLE__ALLOCATABLE_GROUP;
+
+ /**
+ * The feature id for the '<em><b>Arbitration Policy</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AREA__ARBITRATION_POLICY = RBACorePackage.ALLOCATABLE__ARBITRATION_POLICY;
+
+ /**
+ * The feature id for the '<em><b>Visibility</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AREA__VISIBILITY = RBACorePackage.ALLOCATABLE__VISIBILITY;
+
+ /**
+ * The feature id for the '<em><b>Zorder</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AREA__ZORDER = RBACorePackage.ALLOCATABLE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Size</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AREA__SIZE = RBACorePackage.ALLOCATABLE_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Area</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AREA_FEATURE_COUNT = RBACorePackage.ALLOCATABLE_FEATURE_COUNT + 2;
+
+ /**
+ * The operation id for the '<em>Get Contents List</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AREA___GET_CONTENTS_LIST = RBACorePackage.ALLOCATABLE___GET_CONTENTS_LIST;
+
+ /**
+ * The operation id for the '<em>Collect Leaf Allocatable</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AREA___COLLECT_LEAF_ALLOCATABLE = RBACorePackage.ALLOCATABLE___COLLECT_LEAF_ALLOCATABLE;
+
+ /**
+ * The operation id for the '<em>Get Expression Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AREA___GET_EXPRESSION_TYPE = RBACorePackage.ALLOCATABLE_OPERATION_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Area</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AREA_OPERATION_COUNT = RBACorePackage.ALLOCATABLE_OPERATION_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link rba.view.impl.AreaSetImpl <em>Area Set</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.AreaSetImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getAreaSet()
+ * @generated
+ */
+ int AREA_SET = 12;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AREA_SET__DESCRIPTION = RBACorePackage.ALLOCATABLE_SET__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AREA_SET__NAME = RBACorePackage.ALLOCATABLE_SET__NAME;
+
+ /**
+ * The feature id for the '<em><b>Tags</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AREA_SET__TAGS = RBACorePackage.ALLOCATABLE_SET__TAGS;
+
+ /**
+ * The feature id for the '<em><b>Contents</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AREA_SET__CONTENTS = RBACorePackage.ALLOCATABLE_SET__CONTENTS;
+
+ /**
+ * The feature id for the '<em><b>Allocatable Group</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AREA_SET__ALLOCATABLE_GROUP = RBACorePackage.ALLOCATABLE_SET__ALLOCATABLE_GROUP;
+
+ /**
+ * The feature id for the '<em><b>Target</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AREA_SET__TARGET = RBACorePackage.ALLOCATABLE_SET__TARGET;
+
+ /**
+ * The number of structural features of the '<em>Area Set</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AREA_SET_FEATURE_COUNT = RBACorePackage.ALLOCATABLE_SET_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Contents List</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AREA_SET___GET_CONTENTS_LIST = RBACorePackage.ALLOCATABLE_SET___GET_CONTENTS_LIST;
+
+ /**
+ * The operation id for the '<em>Collect Leaf Allocatable</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AREA_SET___COLLECT_LEAF_ALLOCATABLE = RBACorePackage.ALLOCATABLE_SET___COLLECT_LEAF_ALLOCATABLE;
+
+ /**
+ * The operation id for the '<em>Get Expression Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AREA_SET___GET_EXPRESSION_TYPE = RBACorePackage.ALLOCATABLE_SET_OPERATION_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Area Set</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AREA_SET_OPERATION_COUNT = RBACorePackage.ALLOCATABLE_SET_OPERATION_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link rba.view.impl.SizeIdentifierImpl <em>Size Identifier</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.SizeIdentifierImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getSizeIdentifier()
+ * @generated
+ */
+ int SIZE_IDENTIFIER = 13;
+
+ /**
+ * The number of structural features of the '<em>Size Identifier</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIZE_IDENTIFIER_FEATURE_COUNT = 0;
+
+ /**
+ * The number of operations of the '<em>Size Identifier</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIZE_IDENTIFIER_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link rba.view.impl.SizeImpl <em>Size</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.SizeImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getSize()
+ * @generated
+ */
+ int SIZE = 14;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIZE__DESCRIPTION = RBACorePackage.PACKAGABLE_ELEMENT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIZE__NAME = RBACorePackage.PACKAGABLE_ELEMENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Width</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIZE__WIDTH = RBACorePackage.PACKAGABLE_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Height</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIZE__HEIGHT = RBACorePackage.PACKAGABLE_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Size</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIZE_FEATURE_COUNT = RBACorePackage.PACKAGABLE_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The number of operations of the '<em>Size</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIZE_OPERATION_COUNT = RBACorePackage.PACKAGABLE_ELEMENT_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link rba.view.impl.SizeReferenceImpl <em>Size Reference</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.SizeReferenceImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getSizeReference()
+ * @generated
+ */
+ int SIZE_REFERENCE = 15;
+
+ /**
+ * The feature id for the '<em><b>Size</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIZE_REFERENCE__SIZE = SIZE_IDENTIFIER_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Size Reference</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIZE_REFERENCE_FEATURE_COUNT = SIZE_IDENTIFIER_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Size Reference</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIZE_REFERENCE_OPERATION_COUNT = SIZE_IDENTIFIER_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link rba.view.impl.OffsetImpl <em>Offset</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.OffsetImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getOffset()
+ * @generated
+ */
+ int OFFSET = 16;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OFFSET__DESCRIPTION = RBACorePackage.PACKAGABLE_ELEMENT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OFFSET__NAME = RBACorePackage.PACKAGABLE_ELEMENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>X</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OFFSET__X = RBACorePackage.PACKAGABLE_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Y</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OFFSET__Y = RBACorePackage.PACKAGABLE_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Size</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OFFSET__SIZE = RBACorePackage.PACKAGABLE_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Offset</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OFFSET_FEATURE_COUNT = RBACorePackage.PACKAGABLE_ELEMENT_FEATURE_COUNT + 3;
+
+ /**
+ * The number of operations of the '<em>Offset</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OFFSET_OPERATION_COUNT = RBACorePackage.PACKAGABLE_ELEMENT_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link rba.view.impl.AreaOperatorImpl <em>Area Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.AreaOperatorImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getAreaOperator()
+ * @generated
+ */
+ int AREA_OPERATOR = 17;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AREA_OPERATOR__TYPE = RBACorePackage.ALLOCATABLE_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AREA_OPERATOR__EXPRESSION = RBACorePackage.ALLOCATABLE_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AREA_OPERATOR__LET_STATEMENTS = RBACorePackage.ALLOCATABLE_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AREA_OPERATOR__OPERAND = RBACorePackage.ALLOCATABLE_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Area Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AREA_OPERATOR_FEATURE_COUNT = RBACorePackage.ALLOCATABLE_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AREA_OPERATOR___GET_UNDERLYING_TYPE = RBACorePackage.ALLOCATABLE_OPERATOR___GET_UNDERLYING_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AREA_OPERATOR___GET_SYMBOL = RBACorePackage.ALLOCATABLE_OPERATOR___GET_SYMBOL;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AREA_OPERATOR___GET_EXPRESSION_TEXT = RBACorePackage.ALLOCATABLE_OPERATOR___GET_EXPRESSION_TEXT;
+
+ /**
+ * The number of operations of the '<em>Area Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AREA_OPERATOR_OPERATION_COUNT = RBACorePackage.ALLOCATABLE_OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link rba.view.impl.IsDisplayedImpl <em>Is Displayed</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.IsDisplayedImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getIsDisplayed()
+ * @generated
+ */
+ int IS_DISPLAYED = 18;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_DISPLAYED__TYPE = AREA_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_DISPLAYED__EXPRESSION = AREA_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_DISPLAYED__LET_STATEMENTS = AREA_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_DISPLAYED__OPERAND = AREA_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Is Displayed</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_DISPLAYED_FEATURE_COUNT = AREA_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_DISPLAYED___GET_EXPRESSION_TEXT = AREA_OPERATOR___GET_EXPRESSION_TEXT;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_DISPLAYED___GET_SYMBOL = AREA_OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_DISPLAYED___GET_UNDERLYING_TYPE = AREA_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Is Displayed</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_DISPLAYED_OPERATION_COUNT = AREA_OPERATOR_OPERATION_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link rba.view.impl.DisplayingContentImpl <em>Displaying Content</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.DisplayingContentImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getDisplayingContent()
+ * @generated
+ */
+ int DISPLAYING_CONTENT = 19;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISPLAYING_CONTENT__TYPE = AREA_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISPLAYING_CONTENT__EXPRESSION = AREA_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISPLAYING_CONTENT__LET_STATEMENTS = AREA_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISPLAYING_CONTENT__OPERAND = AREA_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Displaying Content</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISPLAYING_CONTENT_FEATURE_COUNT = AREA_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISPLAYING_CONTENT___GET_EXPRESSION_TEXT = AREA_OPERATOR___GET_EXPRESSION_TEXT;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISPLAYING_CONTENT___GET_SYMBOL = AREA_OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISPLAYING_CONTENT___GET_UNDERLYING_TYPE = AREA_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Displaying Content</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISPLAYING_CONTENT_OPERATION_COUNT = AREA_OPERATOR_OPERATION_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link rba.view.impl.IsHiddenImpl <em>Is Hidden</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.IsHiddenImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getIsHidden()
+ * @generated
+ */
+ int IS_HIDDEN = 20;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_HIDDEN__TYPE = AREA_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_HIDDEN__EXPRESSION = AREA_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_HIDDEN__LET_STATEMENTS = AREA_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_HIDDEN__OPERAND = AREA_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Is Hidden</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_HIDDEN_FEATURE_COUNT = AREA_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_HIDDEN___GET_EXPRESSION_TEXT = AREA_OPERATOR___GET_EXPRESSION_TEXT;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_HIDDEN___GET_SYMBOL = AREA_OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_HIDDEN___GET_UNDERLYING_TYPE = AREA_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Is Hidden</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_HIDDEN_OPERATION_COUNT = AREA_OPERATOR_OPERATION_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link rba.view.impl.ViewContentOperatorImpl <em>View Content Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.ViewContentOperatorImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getViewContentOperator()
+ * @generated
+ */
+ int VIEW_CONTENT_OPERATOR = 21;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEW_CONTENT_OPERATOR__TYPE = RBACorePackage.CONTENT_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEW_CONTENT_OPERATOR__EXPRESSION = RBACorePackage.CONTENT_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEW_CONTENT_OPERATOR__LET_STATEMENTS = RBACorePackage.CONTENT_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEW_CONTENT_OPERATOR__OPERAND = RBACorePackage.CONTENT_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>View Content Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEW_CONTENT_OPERATOR_FEATURE_COUNT = RBACorePackage.CONTENT_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEW_CONTENT_OPERATOR___GET_SYMBOL = RBACorePackage.CONTENT_OPERATOR___GET_SYMBOL;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEW_CONTENT_OPERATOR___GET_EXPRESSION_TEXT = RBACorePackage.CONTENT_OPERATOR___GET_EXPRESSION_TEXT;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEW_CONTENT_OPERATOR___GET_UNDERLYING_TYPE = RBACorePackage.CONTENT_OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>View Content Operator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEW_CONTENT_OPERATOR_OPERATION_COUNT = RBACorePackage.CONTENT_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link rba.view.impl.IsVisibleImpl <em>Is Visible</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.IsVisibleImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getIsVisible()
+ * @generated
+ */
+ int IS_VISIBLE = 22;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_VISIBLE__TYPE = VIEW_CONTENT_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_VISIBLE__EXPRESSION = VIEW_CONTENT_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_VISIBLE__LET_STATEMENTS = VIEW_CONTENT_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_VISIBLE__OPERAND = VIEW_CONTENT_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Is Visible</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_VISIBLE_FEATURE_COUNT = VIEW_CONTENT_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_VISIBLE___GET_EXPRESSION_TEXT = VIEW_CONTENT_OPERATOR___GET_EXPRESSION_TEXT;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_VISIBLE___GET_UNDERLYING_TYPE = VIEW_CONTENT_OPERATOR___GET_UNDERLYING_TYPE;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_VISIBLE___GET_SYMBOL = VIEW_CONTENT_OPERATOR_OPERATION_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Is Visible</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_VISIBLE_OPERATION_COUNT = VIEW_CONTENT_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link rba.view.impl.AllInstanceOfAreaImpl <em>All Instance Of Area</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.AllInstanceOfAreaImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getAllInstanceOfArea()
+ * @generated
+ */
+ int ALL_INSTANCE_OF_AREA = 23;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALL_INSTANCE_OF_AREA__TYPE = RBACorePackage.SET_EXPRESSION__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALL_INSTANCE_OF_AREA__EXPRESSION = RBACorePackage.SET_EXPRESSION__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALL_INSTANCE_OF_AREA__LET_STATEMENTS = RBACorePackage.SET_EXPRESSION__LET_STATEMENTS;
+
+ /**
+ * The number of structural features of the '<em>All Instance Of Area</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALL_INSTANCE_OF_AREA_FEATURE_COUNT = RBACorePackage.SET_EXPRESSION_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALL_INSTANCE_OF_AREA___GET_EXPRESSION_TEXT = RBACorePackage.SET_EXPRESSION_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALL_INSTANCE_OF_AREA___GET_UNDERLYING_TYPE = RBACorePackage.SET_EXPRESSION_OPERATION_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>All Instance Of Area</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALL_INSTANCE_OF_AREA_OPERATION_COUNT = RBACorePackage.SET_EXPRESSION_OPERATION_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link rba.view.impl.AllInstanceOfViewContentImpl <em>All Instance Of View Content</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.AllInstanceOfViewContentImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getAllInstanceOfViewContent()
+ * @generated
+ */
+ int ALL_INSTANCE_OF_VIEW_CONTENT = 24;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALL_INSTANCE_OF_VIEW_CONTENT__TYPE = RBACorePackage.SET_EXPRESSION__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALL_INSTANCE_OF_VIEW_CONTENT__EXPRESSION = RBACorePackage.SET_EXPRESSION__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALL_INSTANCE_OF_VIEW_CONTENT__LET_STATEMENTS = RBACorePackage.SET_EXPRESSION__LET_STATEMENTS;
+
+ /**
+ * The number of structural features of the '<em>All Instance Of View Content</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALL_INSTANCE_OF_VIEW_CONTENT_FEATURE_COUNT = RBACorePackage.SET_EXPRESSION_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALL_INSTANCE_OF_VIEW_CONTENT___GET_EXPRESSION_TEXT = RBACorePackage.SET_EXPRESSION_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALL_INSTANCE_OF_VIEW_CONTENT___GET_UNDERLYING_TYPE = RBACorePackage.SET_EXPRESSION_OPERATION_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>All Instance Of View Content</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALL_INSTANCE_OF_VIEW_CONTENT_OPERATION_COUNT = RBACorePackage.SET_EXPRESSION_OPERATION_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link rba.view.impl.IsDisplayedOnImpl <em>Is Displayed On</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.IsDisplayedOnImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getIsDisplayedOn()
+ * @generated
+ */
+ int IS_DISPLAYED_ON = 25;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_DISPLAYED_ON__TYPE = VIEW_CONTENT_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_DISPLAYED_ON__EXPRESSION = VIEW_CONTENT_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_DISPLAYED_ON__LET_STATEMENTS = VIEW_CONTENT_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_DISPLAYED_ON__OPERAND = VIEW_CONTENT_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Is Displayed On</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_DISPLAYED_ON_FEATURE_COUNT = VIEW_CONTENT_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expanded</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_DISPLAYED_ON___GET_EXPANDED = VIEW_CONTENT_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Can Expand</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_DISPLAYED_ON___CAN_EXPAND = VIEW_CONTENT_OPERATOR_OPERATION_COUNT + 2;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_DISPLAYED_ON___GET_SYMBOL = VIEW_CONTENT_OPERATOR_OPERATION_COUNT + 3;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_DISPLAYED_ON___GET_UNDERLYING_TYPE = VIEW_CONTENT_OPERATOR_OPERATION_COUNT + 4;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_DISPLAYED_ON___GET_EXPRESSION_TEXT = VIEW_CONTENT_OPERATOR_OPERATION_COUNT + 5;
+
+ /**
+ * The number of operations of the '<em>Is Displayed On</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_DISPLAYED_ON_OPERATION_COUNT = VIEW_CONTENT_OPERATOR_OPERATION_COUNT + 6;
+
+ /**
+ * The meta object id for the '{@link rba.view.impl.IsChangedDisplayImpl <em>Is Changed Display</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.IsChangedDisplayImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getIsChangedDisplay()
+ * @generated
+ */
+ int IS_CHANGED_DISPLAY = 26;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_CHANGED_DISPLAY__TYPE = AREA_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_CHANGED_DISPLAY__EXPRESSION = AREA_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_CHANGED_DISPLAY__LET_STATEMENTS = AREA_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_CHANGED_DISPLAY__OPERAND = AREA_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Is Changed Display</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_CHANGED_DISPLAY_FEATURE_COUNT = AREA_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_CHANGED_DISPLAY___GET_EXPRESSION_TEXT = AREA_OPERATOR___GET_EXPRESSION_TEXT;
+
+ /**
+ * The operation id for the '<em>Get Expanded</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_CHANGED_DISPLAY___GET_EXPANDED = AREA_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Can Expand</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_CHANGED_DISPLAY___CAN_EXPAND = AREA_OPERATOR_OPERATION_COUNT + 2;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_CHANGED_DISPLAY___GET_SYMBOL = AREA_OPERATOR_OPERATION_COUNT + 3;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_CHANGED_DISPLAY___GET_UNDERLYING_TYPE = AREA_OPERATOR_OPERATION_COUNT + 4;
+
+ /**
+ * The number of operations of the '<em>Is Changed Display</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_CHANGED_DISPLAY_OPERATION_COUNT = AREA_OPERATOR_OPERATION_COUNT + 5;
+
+ /**
+ * The meta object id for the '{@link rba.view.impl.IsTranslatedViewToImpl <em>Is Translated View To</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.IsTranslatedViewToImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getIsTranslatedViewTo()
+ * @generated
+ */
+ int IS_TRANSLATED_VIEW_TO = 27;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_TRANSLATED_VIEW_TO__TYPE = AREA_OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_TRANSLATED_VIEW_TO__EXPRESSION = AREA_OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_TRANSLATED_VIEW_TO__LET_STATEMENTS = AREA_OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_TRANSLATED_VIEW_TO__OPERAND = AREA_OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Is Translated View To</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_TRANSLATED_VIEW_TO_FEATURE_COUNT = AREA_OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expanded</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_TRANSLATED_VIEW_TO___GET_EXPANDED = AREA_OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Can Expand</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_TRANSLATED_VIEW_TO___CAN_EXPAND = AREA_OPERATOR_OPERATION_COUNT + 2;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_TRANSLATED_VIEW_TO___GET_SYMBOL = AREA_OPERATOR_OPERATION_COUNT + 3;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_TRANSLATED_VIEW_TO___GET_UNDERLYING_TYPE = AREA_OPERATOR_OPERATION_COUNT + 4;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_TRANSLATED_VIEW_TO___GET_EXPRESSION_TEXT = AREA_OPERATOR_OPERATION_COUNT + 5;
+
+ /**
+ * The number of operations of the '<em>Is Translated View To</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_TRANSLATED_VIEW_TO_OPERATION_COUNT = AREA_OPERATOR_OPERATION_COUNT + 6;
+
+ /**
+ * The meta object id for the '{@link rba.view.impl.HideLowerPriorityImpl <em>Hide Lower Priority</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.HideLowerPriorityImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getHideLowerPriority()
+ * @generated
+ */
+ int HIDE_LOWER_PRIORITY = 28;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HIDE_LOWER_PRIORITY__TYPE = RBACorePackage.OPERATOR__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HIDE_LOWER_PRIORITY__EXPRESSION = RBACorePackage.OPERATOR__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HIDE_LOWER_PRIORITY__LET_STATEMENTS = RBACorePackage.OPERATOR__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HIDE_LOWER_PRIORITY__OPERAND = RBACorePackage.OPERATOR__OPERAND;
+
+ /**
+ * The number of structural features of the '<em>Hide Lower Priority</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HIDE_LOWER_PRIORITY_FEATURE_COUNT = RBACorePackage.OPERATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Expanded</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HIDE_LOWER_PRIORITY___GET_EXPANDED = RBACorePackage.OPERATOR_OPERATION_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Can Expand</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HIDE_LOWER_PRIORITY___CAN_EXPAND = RBACorePackage.OPERATOR_OPERATION_COUNT + 2;
+
+ /**
+ * The operation id for the '<em>Get Symbol</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HIDE_LOWER_PRIORITY___GET_SYMBOL = RBACorePackage.OPERATOR_OPERATION_COUNT + 3;
+
+ /**
+ * The operation id for the '<em>Get Underlying Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HIDE_LOWER_PRIORITY___GET_UNDERLYING_TYPE = RBACorePackage.OPERATOR_OPERATION_COUNT + 4;
+
+ /**
+ * The operation id for the '<em>Get Expression Text</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HIDE_LOWER_PRIORITY___GET_EXPRESSION_TEXT = RBACorePackage.OPERATOR_OPERATION_COUNT + 5;
+
+ /**
+ * The number of operations of the '<em>Hide Lower Priority</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HIDE_LOWER_PRIORITY_OPERATION_COUNT = RBACorePackage.OPERATOR_OPERATION_COUNT + 6;
+
+ /**
+ * The meta object id for the '{@link rba.view.BasePoint <em>Base Point</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.BasePoint
+ * @see rba.view.impl.RBAViewPackageImpl#getBasePoint()
+ * @generated
+ */
+ int BASE_POINT = 29;
+
+ /**
+ * Returns the meta object for class '{@link rba.view.ViewContent <em>View Content</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>View Content</em>'.
+ * @see rba.view.ViewContent
+ * @generated
+ */
+ EClass getViewContent();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link rba.view.ViewContent#getSize <em>Size</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Size</em>'.
+ * @see rba.view.ViewContent#getSize()
+ * @see #getViewContent()
+ * @generated
+ */
+ EReference getViewContent_Size();
+
+ /**
+ * Returns the meta object for the '{@link rba.view.ViewContent#getExpressionType() <em>Get Expression Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Type</em>' operation.
+ * @see rba.view.ViewContent#getExpressionType()
+ * @generated
+ */
+ EOperation getViewContent__GetExpressionType();
+
+ /**
+ * Returns the meta object for class '{@link rba.view.ViewContentSet <em>View Content Set</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>View Content Set</em>'.
+ * @see rba.view.ViewContentSet
+ * @generated
+ */
+ EClass getViewContentSet();
+
+ /**
+ * Returns the meta object for the '{@link rba.view.ViewContentSet#getExpressionType() <em>Get Expression Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Type</em>' operation.
+ * @see rba.view.ViewContentSet#getExpressionType()
+ * @generated
+ */
+ EOperation getViewContentSet__GetExpressionType();
+
+ /**
+ * Returns the meta object for class '{@link rba.view.ViewContentState <em>View Content State</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>View Content State</em>'.
+ * @see rba.view.ViewContentState
+ * @generated
+ */
+ EClass getViewContentState();
+
+ /**
+ * Returns the meta object for the '{@link rba.view.ViewContentState#getExpressionType() <em>Get Expression Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Type</em>' operation.
+ * @see rba.view.ViewContentState#getExpressionType()
+ * @generated
+ */
+ EOperation getViewContentState__GetExpressionType();
+
+ /**
+ * Returns the meta object for class '{@link rba.view.LayoutManager <em>Layout Manager</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Layout Manager</em>'.
+ * @see rba.view.LayoutManager
+ * @generated
+ */
+ EClass getLayoutManager();
+
+ /**
+ * Returns the meta object for the '{@link rba.view.LayoutManager#collectLeafArea() <em>Collect Leaf Area</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Collect Leaf Area</em>' operation.
+ * @see rba.view.LayoutManager#collectLeafArea()
+ * @generated
+ */
+ EOperation getLayoutManager__CollectLeafArea();
+
+ /**
+ * Returns the meta object for class '{@link rba.view.AlignedLayout <em>Aligned Layout</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Aligned Layout</em>'.
+ * @see rba.view.AlignedLayout
+ * @generated
+ */
+ EClass getAlignedLayout();
+
+ /**
+ * Returns the meta object for the reference list '{@link rba.view.AlignedLayout#getSubarea <em>Subarea</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Subarea</em>'.
+ * @see rba.view.AlignedLayout#getSubarea()
+ * @see #getAlignedLayout()
+ * @generated
+ */
+ EReference getAlignedLayout_Subarea();
+
+ /**
+ * Returns the meta object for the attribute '{@link rba.view.AlignedLayout#getBasePoint <em>Base Point</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Base Point</em>'.
+ * @see rba.view.AlignedLayout#getBasePoint()
+ * @see #getAlignedLayout()
+ * @generated
+ */
+ EAttribute getAlignedLayout_BasePoint();
+
+ /**
+ * Returns the meta object for the '{@link rba.view.AlignedLayout#collectLeafArea() <em>Collect Leaf Area</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Collect Leaf Area</em>' operation.
+ * @see rba.view.AlignedLayout#collectLeafArea()
+ * @generated
+ */
+ EOperation getAlignedLayout__CollectLeafArea();
+
+ /**
+ * Returns the meta object for class '{@link rba.view.VerticalLayout <em>Vertical Layout</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Vertical Layout</em>'.
+ * @see rba.view.VerticalLayout
+ * @generated
+ */
+ EClass getVerticalLayout();
+
+ /**
+ * Returns the meta object for class '{@link rba.view.HorizontalLayout <em>Horizontal Layout</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Horizontal Layout</em>'.
+ * @see rba.view.HorizontalLayout
+ * @generated
+ */
+ EClass getHorizontalLayout();
+
+ /**
+ * Returns the meta object for class '{@link rba.view.FixedPositionLayout <em>Fixed Position Layout</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Fixed Position Layout</em>'.
+ * @see rba.view.FixedPositionLayout
+ * @generated
+ */
+ EClass getFixedPositionLayout();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link rba.view.FixedPositionLayout#getSubAreaPosition <em>Sub Area Position</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Sub Area Position</em>'.
+ * @see rba.view.FixedPositionLayout#getSubAreaPosition()
+ * @see #getFixedPositionLayout()
+ * @generated
+ */
+ EReference getFixedPositionLayout_SubAreaPosition();
+
+ /**
+ * Returns the meta object for the '{@link rba.view.FixedPositionLayout#collectLeafArea() <em>Collect Leaf Area</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Collect Leaf Area</em>' operation.
+ * @see rba.view.FixedPositionLayout#collectLeafArea()
+ * @generated
+ */
+ EOperation getFixedPositionLayout__CollectLeafArea();
+
+ /**
+ * Returns the meta object for class '{@link rba.view.PositionContainer <em>Position Container</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Position Container</em>'.
+ * @see rba.view.PositionContainer
+ * @generated
+ */
+ EClass getPositionContainer();
+
+ /**
+ * Returns the meta object for the attribute '{@link rba.view.PositionContainer#getX <em>X</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>X</em>'.
+ * @see rba.view.PositionContainer#getX()
+ * @see #getPositionContainer()
+ * @generated
+ */
+ EAttribute getPositionContainer_X();
+
+ /**
+ * Returns the meta object for the attribute '{@link rba.view.PositionContainer#getY <em>Y</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Y</em>'.
+ * @see rba.view.PositionContainer#getY()
+ * @see #getPositionContainer()
+ * @generated
+ */
+ EAttribute getPositionContainer_Y();
+
+ /**
+ * Returns the meta object for the attribute '{@link rba.view.PositionContainer#getBasePoint <em>Base Point</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Base Point</em>'.
+ * @see rba.view.PositionContainer#getBasePoint()
+ * @see #getPositionContainer()
+ * @generated
+ */
+ EAttribute getPositionContainer_BasePoint();
+
+ /**
+ * Returns the meta object for the reference '{@link rba.view.PositionContainer#getArea <em>Area</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Area</em>'.
+ * @see rba.view.PositionContainer#getArea()
+ * @see #getPositionContainer()
+ * @generated
+ */
+ EReference getPositionContainer_Area();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link rba.view.PositionContainer#getOffset <em>Offset</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Offset</em>'.
+ * @see rba.view.PositionContainer#getOffset()
+ * @see #getPositionContainer()
+ * @generated
+ */
+ EReference getPositionContainer_Offset();
+
+ /**
+ * Returns the meta object for class '{@link rba.view.Display <em>Display</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Display</em>'.
+ * @see rba.view.Display
+ * @generated
+ */
+ EClass getDisplay();
+
+ /**
+ * Returns the meta object for the containment reference '{@link rba.view.Display#getRoot <em>Root</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Root</em>'.
+ * @see rba.view.Display#getRoot()
+ * @see #getDisplay()
+ * @generated
+ */
+ EReference getDisplay_Root();
+
+ /**
+ * Returns the meta object for the containment reference '{@link rba.view.Display#getSize <em>Size</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Size</em>'.
+ * @see rba.view.Display#getSize()
+ * @see #getDisplay()
+ * @generated
+ */
+ EReference getDisplay_Size();
+
+ /**
+ * Returns the meta object for class '{@link rba.view.CompositeArea <em>Composite Area</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Composite Area</em>'.
+ * @see rba.view.CompositeArea
+ * @generated
+ */
+ EClass getCompositeArea();
+
+ /**
+ * Returns the meta object for the containment reference '{@link rba.view.CompositeArea#getLayout <em>Layout</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Layout</em>'.
+ * @see rba.view.CompositeArea#getLayout()
+ * @see #getCompositeArea()
+ * @generated
+ */
+ EReference getCompositeArea_Layout();
+
+ /**
+ * Returns the meta object for the '{@link rba.view.CompositeArea#collectLeafArea() <em>Collect Leaf Area</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Collect Leaf Area</em>' operation.
+ * @see rba.view.CompositeArea#collectLeafArea()
+ * @generated
+ */
+ EOperation getCompositeArea__CollectLeafArea();
+
+ /**
+ * Returns the meta object for the '{@link rba.view.CompositeArea#getExpressionType() <em>Get Expression Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Type</em>' operation.
+ * @see rba.view.CompositeArea#getExpressionType()
+ * @generated
+ */
+ EOperation getCompositeArea__GetExpressionType();
+
+ /**
+ * Returns the meta object for class '{@link rba.view.Area <em>Area</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Area</em>'.
+ * @see rba.view.Area
+ * @generated
+ */
+ EClass getArea();
+
+ /**
+ * Returns the meta object for the containment reference '{@link rba.view.Area#getZorder <em>Zorder</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Zorder</em>'.
+ * @see rba.view.Area#getZorder()
+ * @see #getArea()
+ * @generated
+ */
+ EReference getArea_Zorder();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link rba.view.Area#getSize <em>Size</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Size</em>'.
+ * @see rba.view.Area#getSize()
+ * @see #getArea()
+ * @generated
+ */
+ EReference getArea_Size();
+
+ /**
+ * Returns the meta object for the '{@link rba.view.Area#getExpressionType() <em>Get Expression Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Type</em>' operation.
+ * @see rba.view.Area#getExpressionType()
+ * @generated
+ */
+ EOperation getArea__GetExpressionType();
+
+ /**
+ * Returns the meta object for class '{@link rba.view.AreaSet <em>Area Set</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Area Set</em>'.
+ * @see rba.view.AreaSet
+ * @generated
+ */
+ EClass getAreaSet();
+
+ /**
+ * Returns the meta object for the '{@link rba.view.AreaSet#getExpressionType() <em>Get Expression Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Type</em>' operation.
+ * @see rba.view.AreaSet#getExpressionType()
+ * @generated
+ */
+ EOperation getAreaSet__GetExpressionType();
+
+ /**
+ * Returns the meta object for class '{@link rba.view.SizeIdentifier <em>Size Identifier</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Size Identifier</em>'.
+ * @see rba.view.SizeIdentifier
+ * @generated
+ */
+ EClass getSizeIdentifier();
+
+ /**
+ * Returns the meta object for class '{@link rba.view.Size <em>Size</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Size</em>'.
+ * @see rba.view.Size
+ * @generated
+ */
+ EClass getSize();
+
+ /**
+ * Returns the meta object for the attribute '{@link rba.view.Size#getWidth <em>Width</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Width</em>'.
+ * @see rba.view.Size#getWidth()
+ * @see #getSize()
+ * @generated
+ */
+ EAttribute getSize_Width();
+
+ /**
+ * Returns the meta object for the attribute '{@link rba.view.Size#getHeight <em>Height</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Height</em>'.
+ * @see rba.view.Size#getHeight()
+ * @see #getSize()
+ * @generated
+ */
+ EAttribute getSize_Height();
+
+ /**
+ * Returns the meta object for class '{@link rba.view.SizeReference <em>Size Reference</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Size Reference</em>'.
+ * @see rba.view.SizeReference
+ * @generated
+ */
+ EClass getSizeReference();
+
+ /**
+ * Returns the meta object for the reference '{@link rba.view.SizeReference#getSize <em>Size</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Size</em>'.
+ * @see rba.view.SizeReference#getSize()
+ * @see #getSizeReference()
+ * @generated
+ */
+ EReference getSizeReference_Size();
+
+ /**
+ * Returns the meta object for class '{@link rba.view.Offset <em>Offset</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Offset</em>'.
+ * @see rba.view.Offset
+ * @generated
+ */
+ EClass getOffset();
+
+ /**
+ * Returns the meta object for the attribute '{@link rba.view.Offset#getX <em>X</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>X</em>'.
+ * @see rba.view.Offset#getX()
+ * @see #getOffset()
+ * @generated
+ */
+ EAttribute getOffset_X();
+
+ /**
+ * Returns the meta object for the attribute '{@link rba.view.Offset#getY <em>Y</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Y</em>'.
+ * @see rba.view.Offset#getY()
+ * @see #getOffset()
+ * @generated
+ */
+ EAttribute getOffset_Y();
+
+ /**
+ * Returns the meta object for the containment reference '{@link rba.view.Offset#getSize <em>Size</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Size</em>'.
+ * @see rba.view.Offset#getSize()
+ * @see #getOffset()
+ * @generated
+ */
+ EReference getOffset_Size();
+
+ /**
+ * Returns the meta object for class '{@link rba.view.AreaOperator <em>Area Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Area Operator</em>'.
+ * @see rba.view.AreaOperator
+ * @generated
+ */
+ EClass getAreaOperator();
+
+ /**
+ * Returns the meta object for class '{@link rba.view.IsDisplayed <em>Is Displayed</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Is Displayed</em>'.
+ * @see rba.view.IsDisplayed
+ * @generated
+ */
+ EClass getIsDisplayed();
+
+ /**
+ * Returns the meta object for the '{@link rba.view.IsDisplayed#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.view.IsDisplayed#getSymbol()
+ * @generated
+ */
+ EOperation getIsDisplayed__GetSymbol();
+
+ /**
+ * Returns the meta object for the '{@link rba.view.IsDisplayed#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.view.IsDisplayed#getUnderlyingType()
+ * @generated
+ */
+ EOperation getIsDisplayed__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for class '{@link rba.view.DisplayingContent <em>Displaying Content</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Displaying Content</em>'.
+ * @see rba.view.DisplayingContent
+ * @generated
+ */
+ EClass getDisplayingContent();
+
+ /**
+ * Returns the meta object for the '{@link rba.view.DisplayingContent#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.view.DisplayingContent#getSymbol()
+ * @generated
+ */
+ EOperation getDisplayingContent__GetSymbol();
+
+ /**
+ * Returns the meta object for the '{@link rba.view.DisplayingContent#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.view.DisplayingContent#getUnderlyingType()
+ * @generated
+ */
+ EOperation getDisplayingContent__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for class '{@link rba.view.IsHidden <em>Is Hidden</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Is Hidden</em>'.
+ * @see rba.view.IsHidden
+ * @generated
+ */
+ EClass getIsHidden();
+
+ /**
+ * Returns the meta object for the '{@link rba.view.IsHidden#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.view.IsHidden#getSymbol()
+ * @generated
+ */
+ EOperation getIsHidden__GetSymbol();
+
+ /**
+ * Returns the meta object for the '{@link rba.view.IsHidden#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.view.IsHidden#getUnderlyingType()
+ * @generated
+ */
+ EOperation getIsHidden__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for class '{@link rba.view.ViewContentOperator <em>View Content Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>View Content Operator</em>'.
+ * @see rba.view.ViewContentOperator
+ * @generated
+ */
+ EClass getViewContentOperator();
+
+ /**
+ * Returns the meta object for the '{@link rba.view.ViewContentOperator#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.view.ViewContentOperator#getUnderlyingType()
+ * @generated
+ */
+ EOperation getViewContentOperator__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for class '{@link rba.view.IsVisible <em>Is Visible</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Is Visible</em>'.
+ * @see rba.view.IsVisible
+ * @generated
+ */
+ EClass getIsVisible();
+
+ /**
+ * Returns the meta object for the '{@link rba.view.IsVisible#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.view.IsVisible#getSymbol()
+ * @generated
+ */
+ EOperation getIsVisible__GetSymbol();
+
+ /**
+ * Returns the meta object for class '{@link rba.view.AllInstanceOfArea <em>All Instance Of Area</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>All Instance Of Area</em>'.
+ * @see rba.view.AllInstanceOfArea
+ * @generated
+ */
+ EClass getAllInstanceOfArea();
+
+ /**
+ * Returns the meta object for the '{@link rba.view.AllInstanceOfArea#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.view.AllInstanceOfArea#getExpressionText()
+ * @generated
+ */
+ EOperation getAllInstanceOfArea__GetExpressionText();
+
+ /**
+ * Returns the meta object for the '{@link rba.view.AllInstanceOfArea#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.view.AllInstanceOfArea#getUnderlyingType()
+ * @generated
+ */
+ EOperation getAllInstanceOfArea__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for class '{@link rba.view.AllInstanceOfViewContent <em>All Instance Of View Content</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>All Instance Of View Content</em>'.
+ * @see rba.view.AllInstanceOfViewContent
+ * @generated
+ */
+ EClass getAllInstanceOfViewContent();
+
+ /**
+ * Returns the meta object for the '{@link rba.view.AllInstanceOfViewContent#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.view.AllInstanceOfViewContent#getExpressionText()
+ * @generated
+ */
+ EOperation getAllInstanceOfViewContent__GetExpressionText();
+
+ /**
+ * Returns the meta object for the '{@link rba.view.AllInstanceOfViewContent#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.view.AllInstanceOfViewContent#getUnderlyingType()
+ * @generated
+ */
+ EOperation getAllInstanceOfViewContent__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for class '{@link rba.view.IsDisplayedOn <em>Is Displayed On</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Is Displayed On</em>'.
+ * @see rba.view.IsDisplayedOn
+ * @generated
+ */
+ EClass getIsDisplayedOn();
+
+ /**
+ * Returns the meta object for the '{@link rba.view.IsDisplayedOn#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.view.IsDisplayedOn#getSymbol()
+ * @generated
+ */
+ EOperation getIsDisplayedOn__GetSymbol();
+
+ /**
+ * Returns the meta object for the '{@link rba.view.IsDisplayedOn#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.view.IsDisplayedOn#getUnderlyingType()
+ * @generated
+ */
+ EOperation getIsDisplayedOn__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for the '{@link rba.view.IsDisplayedOn#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.view.IsDisplayedOn#getExpressionText()
+ * @generated
+ */
+ EOperation getIsDisplayedOn__GetExpressionText();
+
+ /**
+ * Returns the meta object for class '{@link rba.view.IsChangedDisplay <em>Is Changed Display</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Is Changed Display</em>'.
+ * @see rba.view.IsChangedDisplay
+ * @generated
+ */
+ EClass getIsChangedDisplay();
+
+ /**
+ * Returns the meta object for the '{@link rba.view.IsChangedDisplay#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.view.IsChangedDisplay#getSymbol()
+ * @generated
+ */
+ EOperation getIsChangedDisplay__GetSymbol();
+
+ /**
+ * Returns the meta object for the '{@link rba.view.IsChangedDisplay#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.view.IsChangedDisplay#getUnderlyingType()
+ * @generated
+ */
+ EOperation getIsChangedDisplay__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for class '{@link rba.view.IsTranslatedViewTo <em>Is Translated View To</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Is Translated View To</em>'.
+ * @see rba.view.IsTranslatedViewTo
+ * @generated
+ */
+ EClass getIsTranslatedViewTo();
+
+ /**
+ * Returns the meta object for the '{@link rba.view.IsTranslatedViewTo#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.view.IsTranslatedViewTo#getSymbol()
+ * @generated
+ */
+ EOperation getIsTranslatedViewTo__GetSymbol();
+
+ /**
+ * Returns the meta object for the '{@link rba.view.IsTranslatedViewTo#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.view.IsTranslatedViewTo#getUnderlyingType()
+ * @generated
+ */
+ EOperation getIsTranslatedViewTo__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for the '{@link rba.view.IsTranslatedViewTo#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.view.IsTranslatedViewTo#getExpressionText()
+ * @generated
+ */
+ EOperation getIsTranslatedViewTo__GetExpressionText();
+
+ /**
+ * Returns the meta object for class '{@link rba.view.HideLowerPriority <em>Hide Lower Priority</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Hide Lower Priority</em>'.
+ * @see rba.view.HideLowerPriority
+ * @generated
+ */
+ EClass getHideLowerPriority();
+
+ /**
+ * Returns the meta object for the '{@link rba.view.HideLowerPriority#getSymbol() <em>Get Symbol</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Symbol</em>' operation.
+ * @see rba.view.HideLowerPriority#getSymbol()
+ * @generated
+ */
+ EOperation getHideLowerPriority__GetSymbol();
+
+ /**
+ * Returns the meta object for the '{@link rba.view.HideLowerPriority#getUnderlyingType() <em>Get Underlying Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Underlying Type</em>' operation.
+ * @see rba.view.HideLowerPriority#getUnderlyingType()
+ * @generated
+ */
+ EOperation getHideLowerPriority__GetUnderlyingType();
+
+ /**
+ * Returns the meta object for the '{@link rba.view.HideLowerPriority#getExpressionText() <em>Get Expression Text</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Expression Text</em>' operation.
+ * @see rba.view.HideLowerPriority#getExpressionText()
+ * @generated
+ */
+ EOperation getHideLowerPriority__GetExpressionText();
+
+ /**
+ * Returns the meta object for enum '{@link rba.view.BasePoint <em>Base Point</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Base Point</em>'.
+ * @see rba.view.BasePoint
+ * @generated
+ */
+ EEnum getBasePoint();
+
+ /**
+ * 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
+ */
+ RBAViewFactory getRBAViewFactory();
+
+ /**
+ * <!-- 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 operation 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 rba.view.impl.ViewContentImpl <em>View Content</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.ViewContentImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getViewContent()
+ * @generated
+ */
+ EClass VIEW_CONTENT = eINSTANCE.getViewContent();
+
+ /**
+ * The meta object literal for the '<em><b>Size</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference VIEW_CONTENT__SIZE = eINSTANCE.getViewContent_Size();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation VIEW_CONTENT___GET_EXPRESSION_TYPE = eINSTANCE.getViewContent__GetExpressionType();
+
+ /**
+ * The meta object literal for the '{@link rba.view.impl.ViewContentSetImpl <em>View Content Set</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.ViewContentSetImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getViewContentSet()
+ * @generated
+ */
+ EClass VIEW_CONTENT_SET = eINSTANCE.getViewContentSet();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation VIEW_CONTENT_SET___GET_EXPRESSION_TYPE = eINSTANCE.getViewContentSet__GetExpressionType();
+
+ /**
+ * The meta object literal for the '{@link rba.view.impl.ViewContentStateImpl <em>View Content State</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.ViewContentStateImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getViewContentState()
+ * @generated
+ */
+ EClass VIEW_CONTENT_STATE = eINSTANCE.getViewContentState();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation VIEW_CONTENT_STATE___GET_EXPRESSION_TYPE = eINSTANCE.getViewContentState__GetExpressionType();
+
+ /**
+ * The meta object literal for the '{@link rba.view.impl.LayoutManagerImpl <em>Layout Manager</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.LayoutManagerImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getLayoutManager()
+ * @generated
+ */
+ EClass LAYOUT_MANAGER = eINSTANCE.getLayoutManager();
+
+ /**
+ * The meta object literal for the '<em><b>Collect Leaf Area</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation LAYOUT_MANAGER___COLLECT_LEAF_AREA = eINSTANCE.getLayoutManager__CollectLeafArea();
+
+ /**
+ * The meta object literal for the '{@link rba.view.impl.AlignedLayoutImpl <em>Aligned Layout</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.AlignedLayoutImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getAlignedLayout()
+ * @generated
+ */
+ EClass ALIGNED_LAYOUT = eINSTANCE.getAlignedLayout();
+
+ /**
+ * The meta object literal for the '<em><b>Subarea</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ALIGNED_LAYOUT__SUBAREA = eINSTANCE.getAlignedLayout_Subarea();
+
+ /**
+ * The meta object literal for the '<em><b>Base Point</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ALIGNED_LAYOUT__BASE_POINT = eINSTANCE.getAlignedLayout_BasePoint();
+
+ /**
+ * The meta object literal for the '<em><b>Collect Leaf Area</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation ALIGNED_LAYOUT___COLLECT_LEAF_AREA = eINSTANCE.getAlignedLayout__CollectLeafArea();
+
+ /**
+ * The meta object literal for the '{@link rba.view.impl.VerticalLayoutImpl <em>Vertical Layout</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.VerticalLayoutImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getVerticalLayout()
+ * @generated
+ */
+ EClass VERTICAL_LAYOUT = eINSTANCE.getVerticalLayout();
+
+ /**
+ * The meta object literal for the '{@link rba.view.impl.HorizontalLayoutImpl <em>Horizontal Layout</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.HorizontalLayoutImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getHorizontalLayout()
+ * @generated
+ */
+ EClass HORIZONTAL_LAYOUT = eINSTANCE.getHorizontalLayout();
+
+ /**
+ * The meta object literal for the '{@link rba.view.impl.FixedPositionLayoutImpl <em>Fixed Position Layout</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.FixedPositionLayoutImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getFixedPositionLayout()
+ * @generated
+ */
+ EClass FIXED_POSITION_LAYOUT = eINSTANCE.getFixedPositionLayout();
+
+ /**
+ * The meta object literal for the '<em><b>Sub Area Position</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference FIXED_POSITION_LAYOUT__SUB_AREA_POSITION = eINSTANCE.getFixedPositionLayout_SubAreaPosition();
+
+ /**
+ * The meta object literal for the '<em><b>Collect Leaf Area</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation FIXED_POSITION_LAYOUT___COLLECT_LEAF_AREA = eINSTANCE.getFixedPositionLayout__CollectLeafArea();
+
+ /**
+ * The meta object literal for the '{@link rba.view.impl.PositionContainerImpl <em>Position Container</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.PositionContainerImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getPositionContainer()
+ * @generated
+ */
+ EClass POSITION_CONTAINER = eINSTANCE.getPositionContainer();
+
+ /**
+ * The meta object literal for the '<em><b>X</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute POSITION_CONTAINER__X = eINSTANCE.getPositionContainer_X();
+
+ /**
+ * The meta object literal for the '<em><b>Y</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute POSITION_CONTAINER__Y = eINSTANCE.getPositionContainer_Y();
+
+ /**
+ * The meta object literal for the '<em><b>Base Point</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute POSITION_CONTAINER__BASE_POINT = eINSTANCE.getPositionContainer_BasePoint();
+
+ /**
+ * The meta object literal for the '<em><b>Area</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference POSITION_CONTAINER__AREA = eINSTANCE.getPositionContainer_Area();
+
+ /**
+ * The meta object literal for the '<em><b>Offset</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference POSITION_CONTAINER__OFFSET = eINSTANCE.getPositionContainer_Offset();
+
+ /**
+ * The meta object literal for the '{@link rba.view.impl.DisplayImpl <em>Display</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.DisplayImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getDisplay()
+ * @generated
+ */
+ EClass DISPLAY = eINSTANCE.getDisplay();
+
+ /**
+ * The meta object literal for the '<em><b>Root</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DISPLAY__ROOT = eINSTANCE.getDisplay_Root();
+
+ /**
+ * The meta object literal for the '<em><b>Size</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DISPLAY__SIZE = eINSTANCE.getDisplay_Size();
+
+ /**
+ * The meta object literal for the '{@link rba.view.impl.CompositeAreaImpl <em>Composite Area</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.CompositeAreaImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getCompositeArea()
+ * @generated
+ */
+ EClass COMPOSITE_AREA = eINSTANCE.getCompositeArea();
+
+ /**
+ * The meta object literal for the '<em><b>Layout</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference COMPOSITE_AREA__LAYOUT = eINSTANCE.getCompositeArea_Layout();
+
+ /**
+ * The meta object literal for the '<em><b>Collect Leaf Area</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation COMPOSITE_AREA___COLLECT_LEAF_AREA = eINSTANCE.getCompositeArea__CollectLeafArea();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation COMPOSITE_AREA___GET_EXPRESSION_TYPE = eINSTANCE.getCompositeArea__GetExpressionType();
+
+ /**
+ * The meta object literal for the '{@link rba.view.impl.AreaImpl <em>Area</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.AreaImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getArea()
+ * @generated
+ */
+ EClass AREA = eINSTANCE.getArea();
+
+ /**
+ * The meta object literal for the '<em><b>Zorder</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference AREA__ZORDER = eINSTANCE.getArea_Zorder();
+
+ /**
+ * The meta object literal for the '<em><b>Size</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference AREA__SIZE = eINSTANCE.getArea_Size();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation AREA___GET_EXPRESSION_TYPE = eINSTANCE.getArea__GetExpressionType();
+
+ /**
+ * The meta object literal for the '{@link rba.view.impl.AreaSetImpl <em>Area Set</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.AreaSetImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getAreaSet()
+ * @generated
+ */
+ EClass AREA_SET = eINSTANCE.getAreaSet();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation AREA_SET___GET_EXPRESSION_TYPE = eINSTANCE.getAreaSet__GetExpressionType();
+
+ /**
+ * The meta object literal for the '{@link rba.view.impl.SizeIdentifierImpl <em>Size Identifier</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.SizeIdentifierImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getSizeIdentifier()
+ * @generated
+ */
+ EClass SIZE_IDENTIFIER = eINSTANCE.getSizeIdentifier();
+
+ /**
+ * The meta object literal for the '{@link rba.view.impl.SizeImpl <em>Size</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.SizeImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getSize()
+ * @generated
+ */
+ EClass SIZE = eINSTANCE.getSize();
+
+ /**
+ * The meta object literal for the '<em><b>Width</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SIZE__WIDTH = eINSTANCE.getSize_Width();
+
+ /**
+ * The meta object literal for the '<em><b>Height</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SIZE__HEIGHT = eINSTANCE.getSize_Height();
+
+ /**
+ * The meta object literal for the '{@link rba.view.impl.SizeReferenceImpl <em>Size Reference</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.SizeReferenceImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getSizeReference()
+ * @generated
+ */
+ EClass SIZE_REFERENCE = eINSTANCE.getSizeReference();
+
+ /**
+ * The meta object literal for the '<em><b>Size</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SIZE_REFERENCE__SIZE = eINSTANCE.getSizeReference_Size();
+
+ /**
+ * The meta object literal for the '{@link rba.view.impl.OffsetImpl <em>Offset</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.OffsetImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getOffset()
+ * @generated
+ */
+ EClass OFFSET = eINSTANCE.getOffset();
+
+ /**
+ * The meta object literal for the '<em><b>X</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute OFFSET__X = eINSTANCE.getOffset_X();
+
+ /**
+ * The meta object literal for the '<em><b>Y</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute OFFSET__Y = eINSTANCE.getOffset_Y();
+
+ /**
+ * The meta object literal for the '<em><b>Size</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference OFFSET__SIZE = eINSTANCE.getOffset_Size();
+
+ /**
+ * The meta object literal for the '{@link rba.view.impl.AreaOperatorImpl <em>Area Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.AreaOperatorImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getAreaOperator()
+ * @generated
+ */
+ EClass AREA_OPERATOR = eINSTANCE.getAreaOperator();
+
+ /**
+ * The meta object literal for the '{@link rba.view.impl.IsDisplayedImpl <em>Is Displayed</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.IsDisplayedImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getIsDisplayed()
+ * @generated
+ */
+ EClass IS_DISPLAYED = eINSTANCE.getIsDisplayed();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IS_DISPLAYED___GET_SYMBOL = eINSTANCE.getIsDisplayed__GetSymbol();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IS_DISPLAYED___GET_UNDERLYING_TYPE = eINSTANCE.getIsDisplayed__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '{@link rba.view.impl.DisplayingContentImpl <em>Displaying Content</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.DisplayingContentImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getDisplayingContent()
+ * @generated
+ */
+ EClass DISPLAYING_CONTENT = eINSTANCE.getDisplayingContent();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation DISPLAYING_CONTENT___GET_SYMBOL = eINSTANCE.getDisplayingContent__GetSymbol();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation DISPLAYING_CONTENT___GET_UNDERLYING_TYPE = eINSTANCE.getDisplayingContent__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '{@link rba.view.impl.IsHiddenImpl <em>Is Hidden</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.IsHiddenImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getIsHidden()
+ * @generated
+ */
+ EClass IS_HIDDEN = eINSTANCE.getIsHidden();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IS_HIDDEN___GET_SYMBOL = eINSTANCE.getIsHidden__GetSymbol();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IS_HIDDEN___GET_UNDERLYING_TYPE = eINSTANCE.getIsHidden__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '{@link rba.view.impl.ViewContentOperatorImpl <em>View Content Operator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.ViewContentOperatorImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getViewContentOperator()
+ * @generated
+ */
+ EClass VIEW_CONTENT_OPERATOR = eINSTANCE.getViewContentOperator();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation VIEW_CONTENT_OPERATOR___GET_UNDERLYING_TYPE = eINSTANCE.getViewContentOperator__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '{@link rba.view.impl.IsVisibleImpl <em>Is Visible</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.IsVisibleImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getIsVisible()
+ * @generated
+ */
+ EClass IS_VISIBLE = eINSTANCE.getIsVisible();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IS_VISIBLE___GET_SYMBOL = eINSTANCE.getIsVisible__GetSymbol();
+
+ /**
+ * The meta object literal for the '{@link rba.view.impl.AllInstanceOfAreaImpl <em>All Instance Of Area</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.AllInstanceOfAreaImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getAllInstanceOfArea()
+ * @generated
+ */
+ EClass ALL_INSTANCE_OF_AREA = eINSTANCE.getAllInstanceOfArea();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation ALL_INSTANCE_OF_AREA___GET_EXPRESSION_TEXT = eINSTANCE.getAllInstanceOfArea__GetExpressionText();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation ALL_INSTANCE_OF_AREA___GET_UNDERLYING_TYPE = eINSTANCE.getAllInstanceOfArea__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '{@link rba.view.impl.AllInstanceOfViewContentImpl <em>All Instance Of View Content</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.AllInstanceOfViewContentImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getAllInstanceOfViewContent()
+ * @generated
+ */
+ EClass ALL_INSTANCE_OF_VIEW_CONTENT = eINSTANCE.getAllInstanceOfViewContent();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation ALL_INSTANCE_OF_VIEW_CONTENT___GET_EXPRESSION_TEXT = eINSTANCE
+ .getAllInstanceOfViewContent__GetExpressionText();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation ALL_INSTANCE_OF_VIEW_CONTENT___GET_UNDERLYING_TYPE = eINSTANCE
+ .getAllInstanceOfViewContent__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '{@link rba.view.impl.IsDisplayedOnImpl <em>Is Displayed On</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.IsDisplayedOnImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getIsDisplayedOn()
+ * @generated
+ */
+ EClass IS_DISPLAYED_ON = eINSTANCE.getIsDisplayedOn();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IS_DISPLAYED_ON___GET_SYMBOL = eINSTANCE.getIsDisplayedOn__GetSymbol();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IS_DISPLAYED_ON___GET_UNDERLYING_TYPE = eINSTANCE.getIsDisplayedOn__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IS_DISPLAYED_ON___GET_EXPRESSION_TEXT = eINSTANCE.getIsDisplayedOn__GetExpressionText();
+
+ /**
+ * The meta object literal for the '{@link rba.view.impl.IsChangedDisplayImpl <em>Is Changed Display</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.IsChangedDisplayImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getIsChangedDisplay()
+ * @generated
+ */
+ EClass IS_CHANGED_DISPLAY = eINSTANCE.getIsChangedDisplay();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IS_CHANGED_DISPLAY___GET_SYMBOL = eINSTANCE.getIsChangedDisplay__GetSymbol();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IS_CHANGED_DISPLAY___GET_UNDERLYING_TYPE = eINSTANCE.getIsChangedDisplay__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '{@link rba.view.impl.IsTranslatedViewToImpl <em>Is Translated View To</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.IsTranslatedViewToImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getIsTranslatedViewTo()
+ * @generated
+ */
+ EClass IS_TRANSLATED_VIEW_TO = eINSTANCE.getIsTranslatedViewTo();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IS_TRANSLATED_VIEW_TO___GET_SYMBOL = eINSTANCE.getIsTranslatedViewTo__GetSymbol();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IS_TRANSLATED_VIEW_TO___GET_UNDERLYING_TYPE = eINSTANCE.getIsTranslatedViewTo__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation IS_TRANSLATED_VIEW_TO___GET_EXPRESSION_TEXT = eINSTANCE.getIsTranslatedViewTo__GetExpressionText();
+
+ /**
+ * The meta object literal for the '{@link rba.view.impl.HideLowerPriorityImpl <em>Hide Lower Priority</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.impl.HideLowerPriorityImpl
+ * @see rba.view.impl.RBAViewPackageImpl#getHideLowerPriority()
+ * @generated
+ */
+ EClass HIDE_LOWER_PRIORITY = eINSTANCE.getHideLowerPriority();
+
+ /**
+ * The meta object literal for the '<em><b>Get Symbol</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation HIDE_LOWER_PRIORITY___GET_SYMBOL = eINSTANCE.getHideLowerPriority__GetSymbol();
+
+ /**
+ * The meta object literal for the '<em><b>Get Underlying Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation HIDE_LOWER_PRIORITY___GET_UNDERLYING_TYPE = eINSTANCE.getHideLowerPriority__GetUnderlyingType();
+
+ /**
+ * The meta object literal for the '<em><b>Get Expression Text</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation HIDE_LOWER_PRIORITY___GET_EXPRESSION_TEXT = eINSTANCE.getHideLowerPriority__GetExpressionText();
+
+ /**
+ * The meta object literal for the '{@link rba.view.BasePoint <em>Base Point</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.view.BasePoint
+ * @see rba.view.impl.RBAViewPackageImpl#getBasePoint()
+ * @generated
+ */
+ EEnum BASE_POINT = eINSTANCE.getBasePoint();
+
+ }
+
+} //RBAViewPackage
diff --git a/rba.model.view/src/rba/view/Size.java b/rba.model.view/src/rba/view/Size.java
new file mode 100644
index 0000000..e7bb341
--- /dev/null
+++ b/rba.model.view/src/rba/view/Size.java
@@ -0,0 +1,133 @@
+/**
+ */
+package rba.view;
+
+import rba.core.PackagableElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Size</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link rba.view.Size#getWidth <em>Width</em>}</li>
+ * <li>{@link rba.view.Size#getHeight <em>Height</em>}</li>
+ * </ul>
+ *
+ * @see rba.view.RBAViewPackage#getSize()
+ * @model
+ * @generated
+ */
+public interface Size extends PackagableElement, SizeIdentifier {
+ /**
+ * Returns the value of the '<em><b>Width</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Width</em>' attribute.
+ * @see #isSetWidth()
+ * @see #unsetWidth()
+ * @see #setWidth(int)
+ * @see rba.view.RBAViewPackage#getSize_Width()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ int getWidth();
+
+ /**
+ * Sets the value of the '{@link rba.view.Size#getWidth <em>Width</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Width</em>' attribute.
+ * @see #isSetWidth()
+ * @see #unsetWidth()
+ * @see #getWidth()
+ * @generated
+ */
+ void setWidth(int value);
+
+ /**
+ * Unsets the value of the '{@link rba.view.Size#getWidth <em>Width</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetWidth()
+ * @see #getWidth()
+ * @see #setWidth(int)
+ * @generated
+ */
+ void unsetWidth();
+
+ /**
+ * Returns whether the value of the '{@link rba.view.Size#getWidth <em>Width</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Width</em>' attribute is set.
+ * @see #unsetWidth()
+ * @see #getWidth()
+ * @see #setWidth(int)
+ * @generated
+ */
+ boolean isSetWidth();
+
+ /**
+ * Returns the value of the '<em><b>Height</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Height</em>' attribute.
+ * @see #isSetHeight()
+ * @see #unsetHeight()
+ * @see #setHeight(int)
+ * @see rba.view.RBAViewPackage#getSize_Height()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ int getHeight();
+
+ /**
+ * Sets the value of the '{@link rba.view.Size#getHeight <em>Height</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Height</em>' attribute.
+ * @see #isSetHeight()
+ * @see #unsetHeight()
+ * @see #getHeight()
+ * @generated
+ */
+ void setHeight(int value);
+
+ /**
+ * Unsets the value of the '{@link rba.view.Size#getHeight <em>Height</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetHeight()
+ * @see #getHeight()
+ * @see #setHeight(int)
+ * @generated
+ */
+ void unsetHeight();
+
+ /**
+ * Returns whether the value of the '{@link rba.view.Size#getHeight <em>Height</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Height</em>' attribute is set.
+ * @see #unsetHeight()
+ * @see #getHeight()
+ * @see #setHeight(int)
+ * @generated
+ */
+ boolean isSetHeight();
+
+} // Size
diff --git a/rba.model.view/src/rba/view/SizeIdentifier.java b/rba.model.view/src/rba/view/SizeIdentifier.java
new file mode 100644
index 0000000..3c98089
--- /dev/null
+++ b/rba.model.view/src/rba/view/SizeIdentifier.java
@@ -0,0 +1,18 @@
+/**
+ */
+package rba.view;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Size Identifier</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see rba.view.RBAViewPackage#getSizeIdentifier()
+ * @model abstract="true"
+ * @generated
+ */
+public interface SizeIdentifier extends EObject {
+} // SizeIdentifier
diff --git a/rba.model.view/src/rba/view/SizeReference.java b/rba.model.view/src/rba/view/SizeReference.java
new file mode 100644
index 0000000..9f10a16
--- /dev/null
+++ b/rba.model.view/src/rba/view/SizeReference.java
@@ -0,0 +1,48 @@
+/**
+ */
+package rba.view;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Size Reference</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link rba.view.SizeReference#getSize <em>Size</em>}</li>
+ * </ul>
+ *
+ * @see rba.view.RBAViewPackage#getSizeReference()
+ * @model
+ * @generated
+ */
+public interface SizeReference extends SizeIdentifier {
+ /**
+ * Returns the value of the '<em><b>Size</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Size</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Size</em>' reference.
+ * @see #setSize(Size)
+ * @see rba.view.RBAViewPackage#getSizeReference_Size()
+ * @model
+ * @generated
+ */
+ Size getSize();
+
+ /**
+ * Sets the value of the '{@link rba.view.SizeReference#getSize <em>Size</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Size</em>' reference.
+ * @see #getSize()
+ * @generated
+ */
+ void setSize(Size value);
+
+} // SizeReference
diff --git a/rba.model.view/src/rba/view/VerticalLayout.java b/rba.model.view/src/rba/view/VerticalLayout.java
new file mode 100644
index 0000000..7a6fbc1
--- /dev/null
+++ b/rba.model.view/src/rba/view/VerticalLayout.java
@@ -0,0 +1,20 @@
+/**
+ */
+package rba.view;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Vertical Layout</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.view.RBAViewPackage#getVerticalLayout()
+ * @model
+ * @generated
+ */
+public interface VerticalLayout extends AlignedLayout {
+} // VerticalLayout
diff --git a/rba.model.view/src/rba/view/ViewContent.java b/rba.model.view/src/rba/view/ViewContent.java
new file mode 100644
index 0000000..ded5378
--- /dev/null
+++ b/rba.model.view/src/rba/view/ViewContent.java
@@ -0,0 +1,58 @@
+/**
+ */
+package rba.view;
+
+import org.eclipse.emf.common.util.EList;
+
+import rba.core.Content;
+import rba.core.ExpressionType;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>View Content</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link rba.view.ViewContent#getSize <em>Size</em>}</li>
+ * </ul>
+ *
+ * @see rba.view.RBAViewPackage#getViewContent()
+ * @model
+ * @generated
+ */
+public interface ViewContent extends Content {
+ /**
+ * Returns the value of the '<em><b>Size</b></em>' containment reference list.
+ * The list contents are of type {@link rba.view.SizeIdentifier}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Size</em>' containment reference list.
+ * @see rba.view.RBAViewPackage#getViewContent_Size()
+ * @model containment="true"
+ * @generated
+ */
+ EList<SizeIdentifier> getSize();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.CONTENT;'"
+ * @generated
+ */
+ ExpressionType getExpressionType();
+
+} // ViewContent
diff --git a/rba.model.view/src/rba/view/ViewContentOperator.java b/rba.model.view/src/rba/view/ViewContentOperator.java
new file mode 100644
index 0000000..c6df3ab
--- /dev/null
+++ b/rba.model.view/src/rba/view/ViewContentOperator.java
@@ -0,0 +1,35 @@
+/**
+ */
+package rba.view;
+
+import rba.core.ContentOperator;
+import rba.core.ExpressionType;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>View Content Operator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.view.RBAViewPackage#getViewContentOperator()
+ * @model abstract="true"
+ * @generated
+ */
+public interface ViewContentOperator extends ContentOperator {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.BOOLEAN;'"
+ * @generated
+ */
+ ExpressionType getUnderlyingType();
+
+} // ViewContentOperator
diff --git a/rba.model.view/src/rba/view/ViewContentSet.java b/rba.model.view/src/rba/view/ViewContentSet.java
new file mode 100644
index 0000000..b0e6ddc
--- /dev/null
+++ b/rba.model.view/src/rba/view/ViewContentSet.java
@@ -0,0 +1,35 @@
+/**
+ */
+package rba.view;
+
+import rba.core.ContentSet;
+import rba.core.ExpressionType;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>View Content Set</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.view.RBAViewPackage#getViewContentSet()
+ * @model
+ * @generated
+ */
+public interface ViewContentSet extends ContentSet {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.SET_OF_CONTENT;'"
+ * @generated
+ */
+ ExpressionType getExpressionType();
+
+} // ViewContentSet
diff --git a/rba.model.view/src/rba/view/ViewContentState.java b/rba.model.view/src/rba/view/ViewContentState.java
new file mode 100644
index 0000000..c0ffb15
--- /dev/null
+++ b/rba.model.view/src/rba/view/ViewContentState.java
@@ -0,0 +1,35 @@
+/**
+ */
+package rba.view;
+
+import rba.core.ContentState;
+import rba.core.ExpressionType;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>View Content State</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see rba.view.RBAViewPackage#getViewContentState()
+ * @model
+ * @generated
+ */
+public interface ViewContentState extends ContentState {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * @Override
+ * <!-- end-model-doc -->
+ * @model kind="operation"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.CONTENT_STATE;'"
+ * @generated
+ */
+ ExpressionType getExpressionType();
+
+} // ViewContentState
diff --git a/rba.model.view/src/rba/view/impl/AlignedLayoutImpl.java b/rba.model.view/src/rba/view/impl/AlignedLayoutImpl.java
new file mode 100644
index 0000000..85ab299
--- /dev/null
+++ b/rba.model.view/src/rba/view/impl/AlignedLayoutImpl.java
@@ -0,0 +1,221 @@
+/**
+ */
+package rba.view.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+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.util.EObjectResolvingEList;
+import rba.view.AlignedLayout;
+import rba.view.Area;
+import rba.view.BasePoint;
+import rba.view.RBAViewPackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Aligned Layout</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link rba.view.impl.AlignedLayoutImpl#getSubarea <em>Subarea</em>}</li>
+ * <li>{@link rba.view.impl.AlignedLayoutImpl#getBasePoint <em>Base Point</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class AlignedLayoutImpl extends LayoutManagerImpl implements AlignedLayout {
+ /**
+ * The cached value of the '{@link #getSubarea() <em>Subarea</em>}' reference list.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @see #getSubarea()
+ * @generated
+ * @ordered
+ */
+ protected EList<Area> subarea;
+
+ /**
+ * The default value of the '{@link #getBasePoint() <em>Base Point</em>}' attribute.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @see #getBasePoint()
+ * @generated
+ * @ordered
+ */
+ protected static final BasePoint BASE_POINT_EDEFAULT = BasePoint.LEFT_TOP;
+
+ /**
+ * The cached value of the '{@link #getBasePoint() <em>Base Point</em>}' attribute.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @see #getBasePoint()
+ * @generated
+ * @ordered
+ */
+ protected BasePoint basePoint = BASE_POINT_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected AlignedLayoutImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBAViewPackage.Literals.ALIGNED_LAYOUT;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Area> getSubarea() {
+ if (subarea == null) {
+ subarea = new EObjectResolvingEList<Area>(Area.class, this, RBAViewPackage.ALIGNED_LAYOUT__SUBAREA);
+ }
+ return subarea;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public BasePoint getBasePoint() {
+ return basePoint;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBasePoint(BasePoint newBasePoint) {
+ BasePoint oldBasePoint = basePoint;
+ basePoint = newBasePoint == null ? BASE_POINT_EDEFAULT : newBasePoint;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RBAViewPackage.ALIGNED_LAYOUT__BASE_POINT,
+ oldBasePoint, basePoint));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ public EList<Area> collectLeafArea() {
+ java.util.Set<Area> areas = new java.util.HashSet<Area>();
+ for (Area area : getSubarea()) {
+ areas.addAll(area.collectLeafAllocatable().stream().map(allocatable -> (Area) allocatable)
+ .collect(java.util.stream.Collectors.toList()));
+ }
+ return new org.eclipse.emf.common.util.BasicEList<Area>(areas);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case RBAViewPackage.ALIGNED_LAYOUT__SUBAREA:
+ return getSubarea();
+ case RBAViewPackage.ALIGNED_LAYOUT__BASE_POINT:
+ return getBasePoint();
+ }
+ 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 RBAViewPackage.ALIGNED_LAYOUT__SUBAREA:
+ getSubarea().clear();
+ getSubarea().addAll((Collection<? extends Area>) newValue);
+ return;
+ case RBAViewPackage.ALIGNED_LAYOUT__BASE_POINT:
+ setBasePoint((BasePoint) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case RBAViewPackage.ALIGNED_LAYOUT__SUBAREA:
+ getSubarea().clear();
+ return;
+ case RBAViewPackage.ALIGNED_LAYOUT__BASE_POINT:
+ setBasePoint(BASE_POINT_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case RBAViewPackage.ALIGNED_LAYOUT__SUBAREA:
+ return subarea != null && !subarea.isEmpty();
+ case RBAViewPackage.ALIGNED_LAYOUT__BASE_POINT:
+ return basePoint != BASE_POINT_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBAViewPackage.ALIGNED_LAYOUT___COLLECT_LEAF_AREA:
+ return collectLeafArea();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy())
+ return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (basePoint: ");
+ result.append(basePoint);
+ result.append(')');
+ return result.toString();
+ }
+
+} // AlignedLayoutImpl
diff --git a/rba.model.view/src/rba/view/impl/AllInstanceOfAreaImpl.java b/rba.model.view/src/rba/view/impl/AllInstanceOfAreaImpl.java
new file mode 100644
index 0000000..e2f9da0
--- /dev/null
+++ b/rba.model.view/src/rba/view/impl/AllInstanceOfAreaImpl.java
@@ -0,0 +1,72 @@
+/**
+ */
+package rba.view.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.ExpressionType;
+
+import rba.core.impl.SetExpressionImpl;
+
+import rba.view.AllInstanceOfArea;
+import rba.view.RBAViewPackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>All Instance Of Area</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class AllInstanceOfAreaImpl extends SetExpressionImpl implements AllInstanceOfArea {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected AllInstanceOfAreaImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBAViewPackage.Literals.ALL_INSTANCE_OF_AREA;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ return "AREA";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return ExpressionType.SET_OF_AREA;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBAViewPackage.ALL_INSTANCE_OF_AREA___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ case RBAViewPackage.ALL_INSTANCE_OF_AREA___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // AllInstanceOfAreaImpl
diff --git a/rba.model.view/src/rba/view/impl/AllInstanceOfViewContentImpl.java b/rba.model.view/src/rba/view/impl/AllInstanceOfViewContentImpl.java
new file mode 100644
index 0000000..15b4e5b
--- /dev/null
+++ b/rba.model.view/src/rba/view/impl/AllInstanceOfViewContentImpl.java
@@ -0,0 +1,73 @@
+/**
+ */
+package rba.view.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.ExpressionType;
+
+import rba.core.impl.SetExpressionImpl;
+
+import rba.view.AllInstanceOfViewContent;
+import rba.view.RBAViewPackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>All Instance Of View Content</b></em>'. <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+public class AllInstanceOfViewContentImpl extends SetExpressionImpl implements AllInstanceOfViewContent {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected AllInstanceOfViewContentImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBAViewPackage.Literals.ALL_INSTANCE_OF_VIEW_CONTENT;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ return "ALL_VIEWCONTENTS";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return ExpressionType.SET_OF_CONTENT;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBAViewPackage.ALL_INSTANCE_OF_VIEW_CONTENT___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ case RBAViewPackage.ALL_INSTANCE_OF_VIEW_CONTENT___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // AllInstanceOfViewContentImpl
diff --git a/rba.model.view/src/rba/view/impl/AreaImpl.java b/rba.model.view/src/rba/view/impl/AreaImpl.java
new file mode 100644
index 0000000..d12a43a
--- /dev/null
+++ b/rba.model.view/src/rba/view/impl/AreaImpl.java
@@ -0,0 +1,232 @@
+/**
+ */
+package rba.view.impl;
+
+import java.lang.reflect.InvocationTargetException;
+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 rba.core.Expression;
+import rba.core.ExpressionType;
+import rba.core.impl.AllocatableImpl;
+import rba.view.Area;
+import rba.view.RBAViewPackage;
+import rba.view.SizeIdentifier;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Area</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link rba.view.impl.AreaImpl#getZorder <em>Zorder</em>}</li>
+ * <li>{@link rba.view.impl.AreaImpl#getSize <em>Size</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class AreaImpl extends AllocatableImpl implements Area {
+ /**
+ * The cached value of the '{@link #getZorder() <em>Zorder</em>}' containment reference.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @see #getZorder()
+ * @generated
+ * @ordered
+ */
+ protected Expression zorder;
+
+ /**
+ * The cached value of the '{@link #getSize() <em>Size</em>}' containment reference list.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @see #getSize()
+ * @generated
+ * @ordered
+ */
+ protected EList<SizeIdentifier> size;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected AreaImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBAViewPackage.Literals.AREA;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public Expression getZorder() {
+ return zorder;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetZorder(Expression newZorder, NotificationChain msgs) {
+ Expression oldZorder = zorder;
+ zorder = newZorder;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, RBAViewPackage.AREA__ZORDER,
+ oldZorder, newZorder);
+ if (msgs == null)
+ msgs = notification;
+ else
+ msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setZorder(Expression newZorder) {
+ if (newZorder != zorder) {
+ NotificationChain msgs = null;
+ if (zorder != null)
+ msgs = ((InternalEObject) zorder).eInverseRemove(this,
+ EOPPOSITE_FEATURE_BASE - RBAViewPackage.AREA__ZORDER, null, msgs);
+ if (newZorder != null)
+ msgs = ((InternalEObject) newZorder).eInverseAdd(this,
+ EOPPOSITE_FEATURE_BASE - RBAViewPackage.AREA__ZORDER, null, msgs);
+ msgs = basicSetZorder(newZorder, msgs);
+ if (msgs != null)
+ msgs.dispatch();
+ } else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RBAViewPackage.AREA__ZORDER, newZorder, newZorder));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<SizeIdentifier> getSize() {
+ if (size == null) {
+ size = new EObjectContainmentEList<SizeIdentifier>(SizeIdentifier.class, this, RBAViewPackage.AREA__SIZE);
+ }
+ return size;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getExpressionType() {
+ return ExpressionType.AREA;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case RBAViewPackage.AREA__ZORDER:
+ return basicSetZorder(null, msgs);
+ case RBAViewPackage.AREA__SIZE:
+ return ((InternalEList<?>) getSize()).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 RBAViewPackage.AREA__ZORDER:
+ return getZorder();
+ case RBAViewPackage.AREA__SIZE:
+ return getSize();
+ }
+ 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 RBAViewPackage.AREA__ZORDER:
+ setZorder((Expression) newValue);
+ return;
+ case RBAViewPackage.AREA__SIZE:
+ getSize().clear();
+ getSize().addAll((Collection<? extends SizeIdentifier>) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case RBAViewPackage.AREA__ZORDER:
+ setZorder((Expression) null);
+ return;
+ case RBAViewPackage.AREA__SIZE:
+ getSize().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case RBAViewPackage.AREA__ZORDER:
+ return zorder != null;
+ case RBAViewPackage.AREA__SIZE:
+ return size != null && !size.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBAViewPackage.AREA___GET_EXPRESSION_TYPE:
+ return getExpressionType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // AreaImpl
diff --git a/rba.model.view/src/rba/view/impl/AreaOperatorImpl.java b/rba.model.view/src/rba/view/impl/AreaOperatorImpl.java
new file mode 100644
index 0000000..054aca6
--- /dev/null
+++ b/rba.model.view/src/rba/view/impl/AreaOperatorImpl.java
@@ -0,0 +1,34 @@
+/**
+ */
+package rba.view.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.impl.AllocatableOperatorImpl;
+import rba.view.AreaOperator;
+import rba.view.RBAViewPackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Area Operator</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public abstract class AreaOperatorImpl extends AllocatableOperatorImpl implements AreaOperator {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected AreaOperatorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBAViewPackage.Literals.AREA_OPERATOR;
+ }
+
+} // AreaOperatorImpl
diff --git a/rba.model.view/src/rba/view/impl/AreaSetImpl.java b/rba.model.view/src/rba/view/impl/AreaSetImpl.java
new file mode 100644
index 0000000..5c9f99e
--- /dev/null
+++ b/rba.model.view/src/rba/view/impl/AreaSetImpl.java
@@ -0,0 +1,57 @@
+/**
+ */
+package rba.view.impl;
+
+import java.lang.reflect.InvocationTargetException;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import rba.core.ExpressionType;
+import rba.core.impl.AllocatableSetImpl;
+import rba.view.AreaSet;
+import rba.view.RBAViewPackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Area Set</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class AreaSetImpl extends AllocatableSetImpl implements AreaSet {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected AreaSetImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBAViewPackage.Literals.AREA_SET;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getExpressionType() {
+ return ExpressionType.SET_OF_AREA;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBAViewPackage.AREA_SET___GET_EXPRESSION_TYPE:
+ return getExpressionType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // AreaSetImpl
diff --git a/rba.model.view/src/rba/view/impl/CompositeAreaImpl.java b/rba.model.view/src/rba/view/impl/CompositeAreaImpl.java
new file mode 100644
index 0000000..a407823
--- /dev/null
+++ b/rba.model.view/src/rba/view/impl/CompositeAreaImpl.java
@@ -0,0 +1,214 @@
+/**
+ */
+package rba.view.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+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 rba.core.ExpressionType;
+
+import rba.core.impl.PackagableElementImpl;
+import rba.view.Area;
+import rba.view.CompositeArea;
+import rba.view.LayoutManager;
+import rba.view.RBAViewPackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Composite Area</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link rba.view.impl.CompositeAreaImpl#getLayout <em>Layout</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class CompositeAreaImpl extends PackagableElementImpl implements CompositeArea {
+ /**
+ * The cached value of the '{@link #getLayout() <em>Layout</em>}' containment reference.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @see #getLayout()
+ * @generated
+ * @ordered
+ */
+ protected LayoutManager layout;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected CompositeAreaImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBAViewPackage.Literals.COMPOSITE_AREA;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public LayoutManager getLayout() {
+ return layout;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetLayout(LayoutManager newLayout, NotificationChain msgs) {
+ LayoutManager oldLayout = layout;
+ layout = newLayout;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
+ RBAViewPackage.COMPOSITE_AREA__LAYOUT, oldLayout, newLayout);
+ if (msgs == null)
+ msgs = notification;
+ else
+ msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLayout(LayoutManager newLayout) {
+ if (newLayout != layout) {
+ NotificationChain msgs = null;
+ if (layout != null)
+ msgs = ((InternalEObject) layout).eInverseRemove(this,
+ EOPPOSITE_FEATURE_BASE - RBAViewPackage.COMPOSITE_AREA__LAYOUT, null, msgs);
+ if (newLayout != null)
+ msgs = ((InternalEObject) newLayout).eInverseAdd(this,
+ EOPPOSITE_FEATURE_BASE - RBAViewPackage.COMPOSITE_AREA__LAYOUT, null, msgs);
+ msgs = basicSetLayout(newLayout, msgs);
+ if (msgs != null)
+ msgs.dispatch();
+ } else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RBAViewPackage.COMPOSITE_AREA__LAYOUT, newLayout,
+ newLayout));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Area> collectLeafArea() {
+ java.util.Set<Area> areas = new java.util.HashSet<Area>();
+ if (layout != null) {
+ areas.addAll(layout.collectLeafArea());
+ }
+
+ return new org.eclipse.emf.common.util.BasicEList<Area>(areas);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getExpressionType() {
+ return ExpressionType.AREA;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case RBAViewPackage.COMPOSITE_AREA__LAYOUT:
+ return basicSetLayout(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 RBAViewPackage.COMPOSITE_AREA__LAYOUT:
+ return getLayout();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case RBAViewPackage.COMPOSITE_AREA__LAYOUT:
+ setLayout((LayoutManager) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case RBAViewPackage.COMPOSITE_AREA__LAYOUT:
+ setLayout((LayoutManager) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case RBAViewPackage.COMPOSITE_AREA__LAYOUT:
+ return layout != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBAViewPackage.COMPOSITE_AREA___COLLECT_LEAF_AREA:
+ return collectLeafArea();
+ case RBAViewPackage.COMPOSITE_AREA___GET_EXPRESSION_TYPE:
+ return getExpressionType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // CompositeAreaImpl
diff --git a/rba.model.view/src/rba/view/impl/DisplayImpl.java b/rba.model.view/src/rba/view/impl/DisplayImpl.java
new file mode 100644
index 0000000..353c46f
--- /dev/null
+++ b/rba.model.view/src/rba/view/impl/DisplayImpl.java
@@ -0,0 +1,240 @@
+/**
+ */
+package rba.view.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 rba.core.impl.PackagableElementImpl;
+import rba.view.CompositeArea;
+import rba.view.Display;
+import rba.view.RBAViewPackage;
+import rba.view.SizeIdentifier;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Display</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link rba.view.impl.DisplayImpl#getRoot <em>Root</em>}</li>
+ * <li>{@link rba.view.impl.DisplayImpl#getSize <em>Size</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class DisplayImpl extends PackagableElementImpl implements Display {
+ /**
+ * The cached value of the '{@link #getRoot() <em>Root</em>}' containment reference.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @see #getRoot()
+ * @generated
+ * @ordered
+ */
+ protected CompositeArea root;
+
+ /**
+ * The cached value of the '{@link #getSize() <em>Size</em>}' containment reference.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @see #getSize()
+ * @generated
+ * @ordered
+ */
+ protected SizeIdentifier size;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected DisplayImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBAViewPackage.Literals.DISPLAY;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public CompositeArea getRoot() {
+ return root;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetRoot(CompositeArea newRoot, NotificationChain msgs) {
+ CompositeArea oldRoot = root;
+ root = newRoot;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, RBAViewPackage.DISPLAY__ROOT,
+ oldRoot, newRoot);
+ if (msgs == null)
+ msgs = notification;
+ else
+ msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRoot(CompositeArea newRoot) {
+ if (newRoot != root) {
+ NotificationChain msgs = null;
+ if (root != null)
+ msgs = ((InternalEObject) root).eInverseRemove(this,
+ EOPPOSITE_FEATURE_BASE - RBAViewPackage.DISPLAY__ROOT, null, msgs);
+ if (newRoot != null)
+ msgs = ((InternalEObject) newRoot).eInverseAdd(this,
+ EOPPOSITE_FEATURE_BASE - RBAViewPackage.DISPLAY__ROOT, null, msgs);
+ msgs = basicSetRoot(newRoot, msgs);
+ if (msgs != null)
+ msgs.dispatch();
+ } else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RBAViewPackage.DISPLAY__ROOT, newRoot, newRoot));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public SizeIdentifier getSize() {
+ return size;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetSize(SizeIdentifier newSize, NotificationChain msgs) {
+ SizeIdentifier oldSize = size;
+ size = newSize;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, RBAViewPackage.DISPLAY__SIZE,
+ oldSize, newSize);
+ if (msgs == null)
+ msgs = notification;
+ else
+ msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSize(SizeIdentifier newSize) {
+ if (newSize != size) {
+ NotificationChain msgs = null;
+ if (size != null)
+ msgs = ((InternalEObject) size).eInverseRemove(this,
+ EOPPOSITE_FEATURE_BASE - RBAViewPackage.DISPLAY__SIZE, null, msgs);
+ if (newSize != null)
+ msgs = ((InternalEObject) newSize).eInverseAdd(this,
+ EOPPOSITE_FEATURE_BASE - RBAViewPackage.DISPLAY__SIZE, null, msgs);
+ msgs = basicSetSize(newSize, msgs);
+ if (msgs != null)
+ msgs.dispatch();
+ } else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RBAViewPackage.DISPLAY__SIZE, newSize, newSize));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case RBAViewPackage.DISPLAY__ROOT:
+ return basicSetRoot(null, msgs);
+ case RBAViewPackage.DISPLAY__SIZE:
+ return basicSetSize(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 RBAViewPackage.DISPLAY__ROOT:
+ return getRoot();
+ case RBAViewPackage.DISPLAY__SIZE:
+ return getSize();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case RBAViewPackage.DISPLAY__ROOT:
+ setRoot((CompositeArea) newValue);
+ return;
+ case RBAViewPackage.DISPLAY__SIZE:
+ setSize((SizeIdentifier) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case RBAViewPackage.DISPLAY__ROOT:
+ setRoot((CompositeArea) null);
+ return;
+ case RBAViewPackage.DISPLAY__SIZE:
+ setSize((SizeIdentifier) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case RBAViewPackage.DISPLAY__ROOT:
+ return root != null;
+ case RBAViewPackage.DISPLAY__SIZE:
+ return size != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // DisplayImpl
diff --git a/rba.model.view/src/rba/view/impl/DisplayingContentImpl.java b/rba.model.view/src/rba/view/impl/DisplayingContentImpl.java
new file mode 100644
index 0000000..d8178dd
--- /dev/null
+++ b/rba.model.view/src/rba/view/impl/DisplayingContentImpl.java
@@ -0,0 +1,70 @@
+/**
+ */
+package rba.view.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.ExpressionType;
+
+import rba.view.DisplayingContent;
+import rba.view.RBAViewPackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Displaying Content</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class DisplayingContentImpl extends AreaOperatorImpl implements DisplayingContent {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected DisplayingContentImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBAViewPackage.Literals.DISPLAYING_CONTENT;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return ".displayingContent()";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return ExpressionType.CONTENT;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBAViewPackage.DISPLAYING_CONTENT___GET_SYMBOL:
+ return getSymbol();
+ case RBAViewPackage.DISPLAYING_CONTENT___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // DisplayingContentImpl
diff --git a/rba.model.view/src/rba/view/impl/FixedPositionLayoutImpl.java b/rba.model.view/src/rba/view/impl/FixedPositionLayoutImpl.java
new file mode 100644
index 0000000..62eb041
--- /dev/null
+++ b/rba.model.view/src/rba/view/impl/FixedPositionLayoutImpl.java
@@ -0,0 +1,169 @@
+/**
+ */
+package rba.view.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+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.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import rba.view.Area;
+import rba.view.FixedPositionLayout;
+import rba.view.PositionContainer;
+import rba.view.RBAViewPackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Fixed Position Layout</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link rba.view.impl.FixedPositionLayoutImpl#getSubAreaPosition <em>Sub Area Position</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class FixedPositionLayoutImpl extends LayoutManagerImpl implements FixedPositionLayout {
+ /**
+ * The cached value of the '{@link #getSubAreaPosition() <em>Sub Area Position</em>}' containment reference list. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ * @see #getSubAreaPosition()
+ * @generated
+ * @ordered
+ */
+ protected EList<PositionContainer> subAreaPosition;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected FixedPositionLayoutImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBAViewPackage.Literals.FIXED_POSITION_LAYOUT;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<PositionContainer> getSubAreaPosition() {
+ if (subAreaPosition == null) {
+ subAreaPosition = new EObjectContainmentEList<PositionContainer>(PositionContainer.class, this,
+ RBAViewPackage.FIXED_POSITION_LAYOUT__SUB_AREA_POSITION);
+ }
+ return subAreaPosition;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Area> collectLeafArea() {
+ java.util.Set<Area> areas = new java.util.HashSet<Area>();
+ for (PositionContainer pc : getSubAreaPosition()) {
+ areas.addAll(pc.getArea().collectLeafAllocatable().stream().map(allocatable -> (Area) allocatable)
+ .collect(java.util.stream.Collectors.toList()));
+ }
+ return new org.eclipse.emf.common.util.BasicEList<Area>(areas);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case RBAViewPackage.FIXED_POSITION_LAYOUT__SUB_AREA_POSITION:
+ return ((InternalEList<?>) getSubAreaPosition()).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 RBAViewPackage.FIXED_POSITION_LAYOUT__SUB_AREA_POSITION:
+ return getSubAreaPosition();
+ }
+ 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 RBAViewPackage.FIXED_POSITION_LAYOUT__SUB_AREA_POSITION:
+ getSubAreaPosition().clear();
+ getSubAreaPosition().addAll((Collection<? extends PositionContainer>) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case RBAViewPackage.FIXED_POSITION_LAYOUT__SUB_AREA_POSITION:
+ getSubAreaPosition().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case RBAViewPackage.FIXED_POSITION_LAYOUT__SUB_AREA_POSITION:
+ return subAreaPosition != null && !subAreaPosition.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBAViewPackage.FIXED_POSITION_LAYOUT___COLLECT_LEAF_AREA:
+ return collectLeafArea();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // FixedPositionLayoutImpl
diff --git a/rba.model.view/src/rba/view/impl/HideLowerPriorityImpl.java b/rba.model.view/src/rba/view/impl/HideLowerPriorityImpl.java
new file mode 100644
index 0000000..94aa46c
--- /dev/null
+++ b/rba.model.view/src/rba/view/impl/HideLowerPriorityImpl.java
@@ -0,0 +1,192 @@
+/**
+ */
+package rba.view.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.AndOperator;
+import rba.core.ContentValue;
+import rba.core.Expression;
+import rba.core.ExpressionType;
+import rba.core.ImpliesOperator;
+import rba.core.IsGreaterThanOperator;
+import rba.core.IsLowerThanOperator;
+import rba.core.Operator;
+import rba.core.RBACoreFactory;
+import rba.core.RBACorePackage;
+import rba.core.SugarExpression;
+import rba.core.SugarExpressionBase;
+import rba.core.impl.OperatorImpl;
+import rba.view.HideLowerPriority;
+import rba.view.IsHidden;
+import rba.view.RBAViewFactory;
+import rba.view.RBAViewPackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Hide Lower Priority</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class HideLowerPriorityImpl extends OperatorImpl implements HideLowerPriority {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected HideLowerPriorityImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBAViewPackage.Literals.HIDE_LOWER_PRIORITY;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return "HideLowerPriority";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return ExpressionType.BOOLEAN;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ StringBuilder expressionText = new StringBuilder();
+ EList<rba.core.Expression> expressions = getOperand();
+ expressionText.append(getSymbol());
+ expressionText.append("(");
+ expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : "[Invalid_Expression]");
+ expressionText.append(",");
+ expressionText.append(expressions.size() > 1 ? expressions.get(1).getExpressionText() : "[Invalid_Expression]");
+ expressionText.append(")");
+ return expressionText.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean canExpand() {
+ return true;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Expression getExpanded() {
+ AndOperator AND = RBACoreFactory.eINSTANCE.createAndOperator();
+ ImpliesOperator implies = RBACoreFactory.eINSTANCE.createImpliesOperator();
+ IsLowerThanOperator lowerThan = RBACoreFactory.eINSTANCE.createIsLowerThanOperator();
+ ContentValue contentValue1 = RBACoreFactory.eINSTANCE.createContentValue();
+ ContentValue contentValue2 = RBACoreFactory.eINSTANCE.createContentValue();
+ IsHidden hidden = RBAViewFactory.eINSTANCE.createIsHidden();
+ IsGreaterThanOperator greaterThan = RBACoreFactory.eINSTANCE.createIsGreaterThanOperator();
+
+ contentValue1.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(getOperand().get(0)));
+ contentValue2.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(getOperand().get(1)));
+ lowerThan.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(contentValue1));
+ lowerThan.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(contentValue2));
+ implies.getOperand().add(lowerThan);
+ hidden.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(getOperand().get(0)));
+ implies.getOperand().add(hidden);
+ AND.getOperand().add(implies);
+
+ implies = RBACoreFactory.eINSTANCE.createImpliesOperator();
+ greaterThan.getOperand().add(contentValue1);
+ greaterThan.getOperand().add(contentValue2);
+ implies.getOperand().add(greaterThan);
+
+ hidden = RBAViewFactory.eINSTANCE.createIsHidden();
+ hidden.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(getOperand().get(1)));
+ implies.getOperand().add(hidden);
+ AND.getOperand().add(implies);
+
+ return AND;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
+ if (baseClass == Expression.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.EXPRESSION___GET_UNDERLYING_TYPE:
+ return RBAViewPackage.HIDE_LOWER_PRIORITY___GET_UNDERLYING_TYPE;
+ case RBACorePackage.EXPRESSION___GET_EXPRESSION_TEXT:
+ return RBAViewPackage.HIDE_LOWER_PRIORITY___GET_EXPRESSION_TEXT;
+ default:
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+ }
+ if (baseClass == Operator.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.OPERATOR___GET_SYMBOL:
+ return RBAViewPackage.HIDE_LOWER_PRIORITY___GET_SYMBOL;
+ default:
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+ }
+ if (baseClass == SugarExpression.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.SUGAR_EXPRESSION___CAN_EXPAND:
+ return RBAViewPackage.HIDE_LOWER_PRIORITY___CAN_EXPAND;
+ case RBACorePackage.SUGAR_EXPRESSION___GET_EXPANDED:
+ return RBAViewPackage.HIDE_LOWER_PRIORITY___GET_EXPANDED;
+ default:
+ return -1;
+ }
+ }
+ if (baseClass == SugarExpressionBase.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.SUGAR_EXPRESSION_BASE___CAN_EXPAND:
+ return RBAViewPackage.HIDE_LOWER_PRIORITY___CAN_EXPAND;
+ default:
+ return -1;
+ }
+ }
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBAViewPackage.HIDE_LOWER_PRIORITY___GET_SYMBOL:
+ return getSymbol();
+ case RBAViewPackage.HIDE_LOWER_PRIORITY___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ case RBAViewPackage.HIDE_LOWER_PRIORITY___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ case RBAViewPackage.HIDE_LOWER_PRIORITY___CAN_EXPAND:
+ return canExpand();
+ case RBAViewPackage.HIDE_LOWER_PRIORITY___GET_EXPANDED:
+ return getExpanded();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // HideLowerPriorityImpl
diff --git a/rba.model.view/src/rba/view/impl/HorizontalLayoutImpl.java b/rba.model.view/src/rba/view/impl/HorizontalLayoutImpl.java
new file mode 100644
index 0000000..4c01c55
--- /dev/null
+++ b/rba.model.view/src/rba/view/impl/HorizontalLayoutImpl.java
@@ -0,0 +1,33 @@
+/**
+ */
+package rba.view.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.view.HorizontalLayout;
+import rba.view.RBAViewPackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Horizontal Layout</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class HorizontalLayoutImpl extends AlignedLayoutImpl implements HorizontalLayout {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected HorizontalLayoutImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBAViewPackage.Literals.HORIZONTAL_LAYOUT;
+ }
+
+} // HorizontalLayoutImpl
diff --git a/rba.model.view/src/rba/view/impl/IsChangedDisplayImpl.java b/rba.model.view/src/rba/view/impl/IsChangedDisplayImpl.java
new file mode 100644
index 0000000..783999a
--- /dev/null
+++ b/rba.model.view/src/rba/view/impl/IsChangedDisplayImpl.java
@@ -0,0 +1,186 @@
+/**
+ */
+package rba.view.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.AndOperator;
+import rba.core.Expression;
+import rba.core.ExpressionType;
+import rba.core.NotOperator;
+import rba.core.ObjectCompare;
+import rba.core.ObjectReference;
+import rba.core.Operator;
+import rba.core.OrOperator;
+import rba.core.PreviousModifier;
+import rba.core.RBACoreFactory;
+import rba.core.RBACorePackage;
+import rba.core.SugarExpression;
+import rba.core.SugarExpressionBase;
+import rba.view.DisplayingContent;
+import rba.view.IsChangedDisplay;
+import rba.view.IsDisplayed;
+import rba.view.RBAViewFactory;
+import rba.view.RBAViewPackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Is Changed Display</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class IsChangedDisplayImpl extends AreaOperatorImpl implements IsChangedDisplay {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected IsChangedDisplayImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBAViewPackage.Literals.IS_CHANGED_DISPLAY;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return ".isChangedDisplay()";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return ExpressionType.BOOLEAN;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean canExpand() {
+ return true;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Expression getExpanded() {
+ OrOperator or = RBACoreFactory.eINSTANCE.createOrOperator();
+ NotOperator not = RBACoreFactory.eINSTANCE.createNotOperator();
+ ObjectCompare equal = RBACoreFactory.eINSTANCE.createObjectCompare();
+ DisplayingContent dispContent = RBAViewFactory.eINSTANCE.createDisplayingContent();
+ PreviousModifier pre = RBACoreFactory.eINSTANCE.createPreviousModifier();
+ OrOperator leftOr = RBACoreFactory.eINSTANCE.createOrOperator();
+ NotOperator leftnot = RBACoreFactory.eINSTANCE.createNotOperator();
+ AndOperator and = RBACoreFactory.eINSTANCE.createAndOperator();
+ IsDisplayed isDisplayed = RBAViewFactory.eINSTANCE.createIsDisplayed();
+
+ pre.setObjReference((ObjectReference) org.eclipse.emf.ecore.util.EcoreUtil.copy(getOperand().get(0)));
+ dispContent.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(pre));
+ equal.getOperand().add(dispContent);
+ dispContent = RBAViewFactory.eINSTANCE.createDisplayingContent();
+ dispContent.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(getOperand().get(0)));
+ equal.getOperand().add(dispContent);
+ not.getOperand().add(equal);
+
+ isDisplayed.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(pre));
+ and.getOperand().add(isDisplayed);
+ isDisplayed = RBAViewFactory.eINSTANCE.createIsDisplayed();
+ isDisplayed.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(getOperand().get(0)));
+ leftnot.getOperand().add(isDisplayed);
+ and.getOperand().add(leftnot);
+ leftOr.getOperand().add(and);
+
+ leftnot = RBACoreFactory.eINSTANCE.createNotOperator();
+ isDisplayed = RBAViewFactory.eINSTANCE.createIsDisplayed();
+ isDisplayed.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(pre));
+ leftnot.getOperand().add(isDisplayed);
+ isDisplayed = RBAViewFactory.eINSTANCE.createIsDisplayed();
+ isDisplayed.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(getOperand().get(0)));
+ and = RBACoreFactory.eINSTANCE.createAndOperator();
+ and.getOperand().add(leftnot);
+ and.getOperand().add(isDisplayed);
+ leftOr.getOperand().add(and);
+
+ or.getOperand().add(not);
+ or.getOperand().add(leftOr);
+
+ return or;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
+ if (baseClass == Expression.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.EXPRESSION___GET_UNDERLYING_TYPE:
+ return RBAViewPackage.IS_CHANGED_DISPLAY___GET_UNDERLYING_TYPE;
+ default:
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+ }
+ if (baseClass == Operator.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.OPERATOR___GET_SYMBOL:
+ return RBAViewPackage.IS_CHANGED_DISPLAY___GET_SYMBOL;
+ default:
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+ }
+ if (baseClass == SugarExpression.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.SUGAR_EXPRESSION___CAN_EXPAND:
+ return RBAViewPackage.IS_CHANGED_DISPLAY___CAN_EXPAND;
+ case RBACorePackage.SUGAR_EXPRESSION___GET_EXPANDED:
+ return RBAViewPackage.IS_CHANGED_DISPLAY___GET_EXPANDED;
+ default:
+ return -1;
+ }
+ }
+ if (baseClass == SugarExpressionBase.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.SUGAR_EXPRESSION_BASE___CAN_EXPAND:
+ return RBAViewPackage.IS_CHANGED_DISPLAY___CAN_EXPAND;
+ default:
+ return -1;
+ }
+ }
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBAViewPackage.IS_CHANGED_DISPLAY___GET_SYMBOL:
+ return getSymbol();
+ case RBAViewPackage.IS_CHANGED_DISPLAY___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ case RBAViewPackage.IS_CHANGED_DISPLAY___CAN_EXPAND:
+ return canExpand();
+ case RBAViewPackage.IS_CHANGED_DISPLAY___GET_EXPANDED:
+ return getExpanded();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // IsChangedDisplayImpl
diff --git a/rba.model.view/src/rba/view/impl/IsDisplayedImpl.java b/rba.model.view/src/rba/view/impl/IsDisplayedImpl.java
new file mode 100644
index 0000000..075cf1c
--- /dev/null
+++ b/rba.model.view/src/rba/view/impl/IsDisplayedImpl.java
@@ -0,0 +1,70 @@
+/**
+ */
+package rba.view.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.ExpressionType;
+
+import rba.view.IsDisplayed;
+import rba.view.RBAViewPackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Is Displayed</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class IsDisplayedImpl extends AreaOperatorImpl implements IsDisplayed {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected IsDisplayedImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBAViewPackage.Literals.IS_DISPLAYED;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return ".isDisplayed()";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return ExpressionType.BOOLEAN;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBAViewPackage.IS_DISPLAYED___GET_SYMBOL:
+ return getSymbol();
+ case RBAViewPackage.IS_DISPLAYED___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // IsDisplayedImpl
diff --git a/rba.model.view/src/rba/view/impl/IsDisplayedOnImpl.java b/rba.model.view/src/rba/view/impl/IsDisplayedOnImpl.java
new file mode 100644
index 0000000..e8e8ec0
--- /dev/null
+++ b/rba.model.view/src/rba/view/impl/IsDisplayedOnImpl.java
@@ -0,0 +1,191 @@
+/**
+ */
+package rba.view.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.AndOperator;
+import rba.core.ContentOperator;
+import rba.core.Expression;
+import rba.core.ExpressionType;
+import rba.core.ObjectCompare;
+import rba.core.Operator;
+import rba.core.RBACoreFactory;
+import rba.core.RBACorePackage;
+import rba.core.SugarExpression;
+import rba.core.SugarExpressionBase;
+import rba.view.DisplayingContent;
+import rba.view.IsDisplayed;
+import rba.view.IsDisplayedOn;
+import rba.view.RBAViewFactory;
+import rba.view.RBAViewPackage;
+import rba.view.ViewContentOperator;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Is Displayed On</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class IsDisplayedOnImpl extends ViewContentOperatorImpl implements IsDisplayedOn {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected IsDisplayedOnImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBAViewPackage.Literals.IS_DISPLAYED_ON;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return ".isDisplayedOn";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return ExpressionType.BOOLEAN;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ StringBuilder expressionText = new StringBuilder();
+ EList<rba.core.Expression> expressions = getOperand();
+ expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : "[Invalid_Expression]");
+ expressionText.append(getSymbol());
+ expressionText.append("(");
+ expressionText.append(expressions.size() > 1 ? expressions.get(1).getExpressionText() : "[Invalid_Expression]");
+ expressionText.append(")");
+ return expressionText.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean canExpand() {
+ return true;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Expression getExpanded() {
+ AndOperator AND = RBACoreFactory.eINSTANCE.createAndOperator();
+ IsDisplayed isDisplayed = RBAViewFactory.eINSTANCE.createIsDisplayed();
+ ObjectCompare equal = RBACoreFactory.eINSTANCE.createObjectCompare();
+ DisplayingContent dispContent = RBAViewFactory.eINSTANCE.createDisplayingContent();
+
+ isDisplayed.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(getOperand().get(1)));
+ dispContent.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(getOperand().get(1)));
+ equal.getOperand().add(dispContent);
+ equal.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(getOperand().get(0)));
+
+ AND.getOperand().add(isDisplayed);
+ AND.getOperand().add(equal);
+ return AND;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
+ if (baseClass == Expression.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.EXPRESSION___GET_UNDERLYING_TYPE:
+ return RBAViewPackage.IS_DISPLAYED_ON___GET_UNDERLYING_TYPE;
+ case RBACorePackage.EXPRESSION___GET_EXPRESSION_TEXT:
+ return RBAViewPackage.IS_DISPLAYED_ON___GET_EXPRESSION_TEXT;
+ default:
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+ }
+ if (baseClass == Operator.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.OPERATOR___GET_SYMBOL:
+ return RBAViewPackage.IS_DISPLAYED_ON___GET_SYMBOL;
+ default:
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+ }
+ if (baseClass == ContentOperator.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.CONTENT_OPERATOR___GET_EXPRESSION_TEXT:
+ return RBAViewPackage.IS_DISPLAYED_ON___GET_EXPRESSION_TEXT;
+ default:
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+ }
+ if (baseClass == ViewContentOperator.class) {
+ switch (baseOperationID) {
+ case RBAViewPackage.VIEW_CONTENT_OPERATOR___GET_UNDERLYING_TYPE:
+ return RBAViewPackage.IS_DISPLAYED_ON___GET_UNDERLYING_TYPE;
+ default:
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+ }
+ if (baseClass == SugarExpression.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.SUGAR_EXPRESSION___CAN_EXPAND:
+ return RBAViewPackage.IS_DISPLAYED_ON___CAN_EXPAND;
+ case RBACorePackage.SUGAR_EXPRESSION___GET_EXPANDED:
+ return RBAViewPackage.IS_DISPLAYED_ON___GET_EXPANDED;
+ default:
+ return -1;
+ }
+ }
+ if (baseClass == SugarExpressionBase.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.SUGAR_EXPRESSION_BASE___CAN_EXPAND:
+ return RBAViewPackage.IS_DISPLAYED_ON___CAN_EXPAND;
+ default:
+ return -1;
+ }
+ }
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBAViewPackage.IS_DISPLAYED_ON___GET_SYMBOL:
+ return getSymbol();
+ case RBAViewPackage.IS_DISPLAYED_ON___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ case RBAViewPackage.IS_DISPLAYED_ON___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ case RBAViewPackage.IS_DISPLAYED_ON___CAN_EXPAND:
+ return canExpand();
+ case RBAViewPackage.IS_DISPLAYED_ON___GET_EXPANDED:
+ return getExpanded();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // IsDisplayedOnImpl
diff --git a/rba.model.view/src/rba/view/impl/IsHiddenImpl.java b/rba.model.view/src/rba/view/impl/IsHiddenImpl.java
new file mode 100644
index 0000000..293c6bf
--- /dev/null
+++ b/rba.model.view/src/rba/view/impl/IsHiddenImpl.java
@@ -0,0 +1,70 @@
+/**
+ */
+package rba.view.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.ExpressionType;
+
+import rba.view.IsHidden;
+import rba.view.RBAViewPackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Is Hidden</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class IsHiddenImpl extends AreaOperatorImpl implements IsHidden {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected IsHiddenImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBAViewPackage.Literals.IS_HIDDEN;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return ".isHidden()";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return ExpressionType.BOOLEAN;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBAViewPackage.IS_HIDDEN___GET_SYMBOL:
+ return getSymbol();
+ case RBAViewPackage.IS_HIDDEN___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // IsHiddenImpl
diff --git a/rba.model.view/src/rba/view/impl/IsTranslatedViewToImpl.java b/rba.model.view/src/rba/view/impl/IsTranslatedViewToImpl.java
new file mode 100644
index 0000000..66b5db0
--- /dev/null
+++ b/rba.model.view/src/rba/view/impl/IsTranslatedViewToImpl.java
@@ -0,0 +1,205 @@
+/**
+ */
+package rba.view.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.AllocatableOperator;
+import rba.core.AndOperator;
+import rba.core.Expression;
+import rba.core.ExpressionType;
+import rba.core.NotOperator;
+import rba.core.ObjectCompare;
+import rba.core.ObjectReference;
+import rba.core.Operator;
+import rba.core.OrOperator;
+import rba.core.PreviousModifier;
+import rba.core.RBACoreFactory;
+import rba.core.RBACorePackage;
+import rba.core.SugarExpression;
+import rba.core.SugarExpressionBase;
+import rba.view.DisplayingContent;
+import rba.view.IsDisplayed;
+import rba.view.IsTranslatedViewTo;
+import rba.view.RBAViewFactory;
+import rba.view.RBAViewPackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Is Translated View To</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class IsTranslatedViewToImpl extends AreaOperatorImpl implements IsTranslatedViewTo {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected IsTranslatedViewToImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBAViewPackage.Literals.IS_TRANSLATED_VIEW_TO;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return ".isTranslatedViewTo";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return ExpressionType.BOOLEAN;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpressionText() {
+ StringBuilder expressionText = new StringBuilder();
+ EList<rba.core.Expression> expressions = getOperand();
+ expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : "[Invalid_Expression]");
+ expressionText.append(getSymbol());
+ expressionText.append("(");
+ expressionText.append(expressions.size() > 1 ? expressions.get(1).getExpressionText() : "[Invalid_Expression]");
+ expressionText.append(")");
+ return expressionText.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean canExpand() {
+ return true;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Expression getExpanded() {
+ AndOperator AND = RBACoreFactory.eINSTANCE.createAndOperator();
+ IsDisplayed isDisplayed = RBAViewFactory.eINSTANCE.createIsDisplayed();
+ ObjectCompare equal = RBACoreFactory.eINSTANCE.createObjectCompare();
+ DisplayingContent dispContent = RBAViewFactory.eINSTANCE.createDisplayingContent();
+ PreviousModifier pre = RBACoreFactory.eINSTANCE.createPreviousModifier();
+ OrOperator or = RBACoreFactory.eINSTANCE.createOrOperator();
+ NotOperator not = RBACoreFactory.eINSTANCE.createNotOperator();
+
+ isDisplayed.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(getOperand().get(0)));
+ AND.getOperand().add(isDisplayed);
+
+ dispContent.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(getOperand().get(0)));
+ equal.getOperand().add(dispContent);
+ equal.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(getOperand().get(1)));
+ AND.getOperand().add(equal);
+
+ pre.setObjReference((ObjectReference) org.eclipse.emf.ecore.util.EcoreUtil.copy(getOperand().get(0)));
+ dispContent = RBAViewFactory.eINSTANCE.createDisplayingContent();
+ dispContent.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(pre));
+ equal = RBACoreFactory.eINSTANCE.createObjectCompare();
+ equal.getOperand().add(dispContent);
+ equal.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(getOperand().get(1)));
+ not.getOperand().add(equal);
+ or.getOperand().add(not);
+
+ isDisplayed = RBAViewFactory.eINSTANCE.createIsDisplayed();
+ isDisplayed.getOperand().add(pre);
+ not = RBACoreFactory.eINSTANCE.createNotOperator();
+ not.getOperand().add(isDisplayed);
+ or.getOperand().add(not);
+ AND.getOperand().add(or);
+ return AND;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
+ if (baseClass == Expression.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.EXPRESSION___GET_UNDERLYING_TYPE:
+ return RBAViewPackage.IS_TRANSLATED_VIEW_TO___GET_UNDERLYING_TYPE;
+ case RBACorePackage.EXPRESSION___GET_EXPRESSION_TEXT:
+ return RBAViewPackage.IS_TRANSLATED_VIEW_TO___GET_EXPRESSION_TEXT;
+ default:
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+ }
+ if (baseClass == Operator.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.OPERATOR___GET_SYMBOL:
+ return RBAViewPackage.IS_TRANSLATED_VIEW_TO___GET_SYMBOL;
+ default:
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+ }
+ if (baseClass == AllocatableOperator.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.ALLOCATABLE_OPERATOR___GET_EXPRESSION_TEXT:
+ return RBAViewPackage.IS_TRANSLATED_VIEW_TO___GET_EXPRESSION_TEXT;
+ default:
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+ }
+ if (baseClass == SugarExpression.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.SUGAR_EXPRESSION___CAN_EXPAND:
+ return RBAViewPackage.IS_TRANSLATED_VIEW_TO___CAN_EXPAND;
+ case RBACorePackage.SUGAR_EXPRESSION___GET_EXPANDED:
+ return RBAViewPackage.IS_TRANSLATED_VIEW_TO___GET_EXPANDED;
+ default:
+ return -1;
+ }
+ }
+ if (baseClass == SugarExpressionBase.class) {
+ switch (baseOperationID) {
+ case RBACorePackage.SUGAR_EXPRESSION_BASE___CAN_EXPAND:
+ return RBAViewPackage.IS_TRANSLATED_VIEW_TO___CAN_EXPAND;
+ default:
+ return -1;
+ }
+ }
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBAViewPackage.IS_TRANSLATED_VIEW_TO___GET_SYMBOL:
+ return getSymbol();
+ case RBAViewPackage.IS_TRANSLATED_VIEW_TO___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ case RBAViewPackage.IS_TRANSLATED_VIEW_TO___GET_EXPRESSION_TEXT:
+ return getExpressionText();
+ case RBAViewPackage.IS_TRANSLATED_VIEW_TO___CAN_EXPAND:
+ return canExpand();
+ case RBAViewPackage.IS_TRANSLATED_VIEW_TO___GET_EXPANDED:
+ return getExpanded();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // IsTranslatedViewToImpl
diff --git a/rba.model.view/src/rba/view/impl/IsVisibleImpl.java b/rba.model.view/src/rba/view/impl/IsVisibleImpl.java
new file mode 100644
index 0000000..9eee90e
--- /dev/null
+++ b/rba.model.view/src/rba/view/impl/IsVisibleImpl.java
@@ -0,0 +1,58 @@
+/**
+ */
+package rba.view.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.view.IsVisible;
+import rba.view.RBAViewPackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Is Visible</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class IsVisibleImpl extends ViewContentOperatorImpl implements IsVisible {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected IsVisibleImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBAViewPackage.Literals.IS_VISIBLE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ return ".isVisible()";
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBAViewPackage.IS_VISIBLE___GET_SYMBOL:
+ return getSymbol();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // IsVisibleImpl
diff --git a/rba.model.view/src/rba/view/impl/LayoutManagerImpl.java b/rba.model.view/src/rba/view/impl/LayoutManagerImpl.java
new file mode 100644
index 0000000..6859406
--- /dev/null
+++ b/rba.model.view/src/rba/view/impl/LayoutManagerImpl.java
@@ -0,0 +1,63 @@
+/**
+ */
+package rba.view.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import rba.view.Area;
+import rba.view.LayoutManager;
+import rba.view.RBAViewPackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Layout Manager</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public abstract class LayoutManagerImpl extends MinimalEObjectImpl.Container implements LayoutManager {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected LayoutManagerImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBAViewPackage.Literals.LAYOUT_MANAGER;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Area> collectLeafArea() {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBAViewPackage.LAYOUT_MANAGER___COLLECT_LEAF_AREA:
+ return collectLeafArea();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // LayoutManagerImpl
diff --git a/rba.model.view/src/rba/view/impl/OffsetImpl.java b/rba.model.view/src/rba/view/impl/OffsetImpl.java
new file mode 100644
index 0000000..5a5575d
--- /dev/null
+++ b/rba.model.view/src/rba/view/impl/OffsetImpl.java
@@ -0,0 +1,355 @@
+/**
+ */
+package rba.view.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 rba.core.impl.PackagableElementImpl;
+
+import rba.view.Offset;
+import rba.view.RBAViewPackage;
+import rba.view.SizeReference;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Offset</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link rba.view.impl.OffsetImpl#getX <em>X</em>}</li>
+ * <li>{@link rba.view.impl.OffsetImpl#getY <em>Y</em>}</li>
+ * <li>{@link rba.view.impl.OffsetImpl#getSize <em>Size</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class OffsetImpl extends PackagableElementImpl implements Offset {
+ /**
+ * The default value of the '{@link #getX() <em>X</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see #getX()
+ * @generated
+ * @ordered
+ */
+ protected static final int X_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getX() <em>X</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see #getX()
+ * @generated
+ * @ordered
+ */
+ protected int x = X_EDEFAULT;
+
+ /**
+ * This is true if the X attribute has been set.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean xESet;
+
+ /**
+ * The default value of the '{@link #getY() <em>Y</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see #getY()
+ * @generated
+ * @ordered
+ */
+ protected static final int Y_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getY() <em>Y</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see #getY()
+ * @generated
+ * @ordered
+ */
+ protected int y = Y_EDEFAULT;
+
+ /**
+ * This is true if the Y attribute has been set.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean yESet;
+
+ /**
+ * The cached value of the '{@link #getSize() <em>Size</em>}' containment reference.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @see #getSize()
+ * @generated
+ * @ordered
+ */
+ protected SizeReference size;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected OffsetImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBAViewPackage.Literals.OFFSET;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public int getX() {
+ return x;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setX(int newX) {
+ int oldX = x;
+ x = newX;
+ boolean oldXESet = xESet;
+ xESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RBAViewPackage.OFFSET__X, oldX, x, !oldXESet));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetX() {
+ int oldX = x;
+ boolean oldXESet = xESet;
+ x = X_EDEFAULT;
+ xESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, RBAViewPackage.OFFSET__X, oldX, X_EDEFAULT,
+ oldXESet));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetX() {
+ return xESet;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public int getY() {
+ return y;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setY(int newY) {
+ int oldY = y;
+ y = newY;
+ boolean oldYESet = yESet;
+ yESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RBAViewPackage.OFFSET__Y, oldY, y, !oldYESet));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetY() {
+ int oldY = y;
+ boolean oldYESet = yESet;
+ y = Y_EDEFAULT;
+ yESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, RBAViewPackage.OFFSET__Y, oldY, Y_EDEFAULT,
+ oldYESet));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetY() {
+ return yESet;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public SizeReference getSize() {
+ return size;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetSize(SizeReference newSize, NotificationChain msgs) {
+ SizeReference oldSize = size;
+ size = newSize;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, RBAViewPackage.OFFSET__SIZE,
+ oldSize, newSize);
+ if (msgs == null)
+ msgs = notification;
+ else
+ msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSize(SizeReference newSize) {
+ if (newSize != size) {
+ NotificationChain msgs = null;
+ if (size != null)
+ msgs = ((InternalEObject) size).eInverseRemove(this,
+ EOPPOSITE_FEATURE_BASE - RBAViewPackage.OFFSET__SIZE, null, msgs);
+ if (newSize != null)
+ msgs = ((InternalEObject) newSize).eInverseAdd(this,
+ EOPPOSITE_FEATURE_BASE - RBAViewPackage.OFFSET__SIZE, null, msgs);
+ msgs = basicSetSize(newSize, msgs);
+ if (msgs != null)
+ msgs.dispatch();
+ } else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RBAViewPackage.OFFSET__SIZE, newSize, newSize));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case RBAViewPackage.OFFSET__SIZE:
+ return basicSetSize(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 RBAViewPackage.OFFSET__X:
+ return getX();
+ case RBAViewPackage.OFFSET__Y:
+ return getY();
+ case RBAViewPackage.OFFSET__SIZE:
+ return getSize();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case RBAViewPackage.OFFSET__X:
+ setX((Integer) newValue);
+ return;
+ case RBAViewPackage.OFFSET__Y:
+ setY((Integer) newValue);
+ return;
+ case RBAViewPackage.OFFSET__SIZE:
+ setSize((SizeReference) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case RBAViewPackage.OFFSET__X:
+ unsetX();
+ return;
+ case RBAViewPackage.OFFSET__Y:
+ unsetY();
+ return;
+ case RBAViewPackage.OFFSET__SIZE:
+ setSize((SizeReference) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case RBAViewPackage.OFFSET__X:
+ return isSetX();
+ case RBAViewPackage.OFFSET__Y:
+ return isSetY();
+ case RBAViewPackage.OFFSET__SIZE:
+ return size != 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(" (x: ");
+ if (xESet)
+ result.append(x);
+ else
+ result.append("<unset>");
+ result.append(", y: ");
+ if (yESet)
+ result.append(y);
+ else
+ result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} // OffsetImpl
diff --git a/rba.model.view/src/rba/view/impl/PositionContainerImpl.java b/rba.model.view/src/rba/view/impl/PositionContainerImpl.java
new file mode 100644
index 0000000..0b313c9
--- /dev/null
+++ b/rba.model.view/src/rba/view/impl/PositionContainerImpl.java
@@ -0,0 +1,443 @@
+/**
+ */
+package rba.view.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 rba.view.Area;
+import rba.view.BasePoint;
+import rba.view.Offset;
+import rba.view.PositionContainer;
+import rba.view.RBAViewPackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Position Container</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link rba.view.impl.PositionContainerImpl#getX <em>X</em>}</li>
+ * <li>{@link rba.view.impl.PositionContainerImpl#getY <em>Y</em>}</li>
+ * <li>{@link rba.view.impl.PositionContainerImpl#getBasePoint <em>Base Point</em>}</li>
+ * <li>{@link rba.view.impl.PositionContainerImpl#getArea <em>Area</em>}</li>
+ * <li>{@link rba.view.impl.PositionContainerImpl#getOffset <em>Offset</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class PositionContainerImpl extends MinimalEObjectImpl.Container implements PositionContainer {
+ /**
+ * The default value of the '{@link #getX() <em>X</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see #getX()
+ * @generated
+ * @ordered
+ */
+ protected static final int X_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getX() <em>X</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see #getX()
+ * @generated
+ * @ordered
+ */
+ protected int x = X_EDEFAULT;
+
+ /**
+ * This is true if the X attribute has been set.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean xESet;
+
+ /**
+ * The default value of the '{@link #getY() <em>Y</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see #getY()
+ * @generated
+ * @ordered
+ */
+ protected static final int Y_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getY() <em>Y</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see #getY()
+ * @generated
+ * @ordered
+ */
+ protected int y = Y_EDEFAULT;
+
+ /**
+ * This is true if the Y attribute has been set.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean yESet;
+
+ /**
+ * The default value of the '{@link #getBasePoint() <em>Base Point</em>}' attribute.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @see #getBasePoint()
+ * @generated
+ * @ordered
+ */
+ protected static final BasePoint BASE_POINT_EDEFAULT = BasePoint.LEFT_TOP;
+
+ /**
+ * The cached value of the '{@link #getBasePoint() <em>Base Point</em>}' attribute.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @see #getBasePoint()
+ * @generated
+ * @ordered
+ */
+ protected BasePoint basePoint = BASE_POINT_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getArea() <em>Area</em>}' reference.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see #getArea()
+ * @generated
+ * @ordered
+ */
+ protected Area area;
+
+ /**
+ * The cached value of the '{@link #getOffset() <em>Offset</em>}' containment reference list.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @see #getOffset()
+ * @generated
+ * @ordered
+ */
+ protected EList<Offset> offset;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected PositionContainerImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBAViewPackage.Literals.POSITION_CONTAINER;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public int getX() {
+ return x;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setX(int newX) {
+ int oldX = x;
+ x = newX;
+ boolean oldXESet = xESet;
+ xESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RBAViewPackage.POSITION_CONTAINER__X, oldX, x,
+ !oldXESet));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetX() {
+ int oldX = x;
+ boolean oldXESet = xESet;
+ x = X_EDEFAULT;
+ xESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, RBAViewPackage.POSITION_CONTAINER__X, oldX,
+ X_EDEFAULT, oldXESet));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetX() {
+ return xESet;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public int getY() {
+ return y;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setY(int newY) {
+ int oldY = y;
+ y = newY;
+ boolean oldYESet = yESet;
+ yESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RBAViewPackage.POSITION_CONTAINER__Y, oldY, y,
+ !oldYESet));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetY() {
+ int oldY = y;
+ boolean oldYESet = yESet;
+ y = Y_EDEFAULT;
+ yESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, RBAViewPackage.POSITION_CONTAINER__Y, oldY,
+ Y_EDEFAULT, oldYESet));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetY() {
+ return yESet;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public BasePoint getBasePoint() {
+ return basePoint;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBasePoint(BasePoint newBasePoint) {
+ BasePoint oldBasePoint = basePoint;
+ basePoint = newBasePoint == null ? BASE_POINT_EDEFAULT : newBasePoint;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RBAViewPackage.POSITION_CONTAINER__BASE_POINT,
+ oldBasePoint, basePoint));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public Area getArea() {
+ if (area != null && area.eIsProxy()) {
+ InternalEObject oldArea = (InternalEObject) area;
+ area = (Area) eResolveProxy(oldArea);
+ if (area != oldArea) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, RBAViewPackage.POSITION_CONTAINER__AREA,
+ oldArea, area));
+ }
+ }
+ return area;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public Area basicGetArea() {
+ return area;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setArea(Area newArea) {
+ Area oldArea = area;
+ area = newArea;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RBAViewPackage.POSITION_CONTAINER__AREA, oldArea,
+ area));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Offset> getOffset() {
+ if (offset == null) {
+ offset = new EObjectContainmentEList<Offset>(Offset.class, this, RBAViewPackage.POSITION_CONTAINER__OFFSET);
+ }
+ return offset;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case RBAViewPackage.POSITION_CONTAINER__OFFSET:
+ return ((InternalEList<?>) getOffset()).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 RBAViewPackage.POSITION_CONTAINER__X:
+ return getX();
+ case RBAViewPackage.POSITION_CONTAINER__Y:
+ return getY();
+ case RBAViewPackage.POSITION_CONTAINER__BASE_POINT:
+ return getBasePoint();
+ case RBAViewPackage.POSITION_CONTAINER__AREA:
+ if (resolve)
+ return getArea();
+ return basicGetArea();
+ case RBAViewPackage.POSITION_CONTAINER__OFFSET:
+ return getOffset();
+ }
+ 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 RBAViewPackage.POSITION_CONTAINER__X:
+ setX((Integer) newValue);
+ return;
+ case RBAViewPackage.POSITION_CONTAINER__Y:
+ setY((Integer) newValue);
+ return;
+ case RBAViewPackage.POSITION_CONTAINER__BASE_POINT:
+ setBasePoint((BasePoint) newValue);
+ return;
+ case RBAViewPackage.POSITION_CONTAINER__AREA:
+ setArea((Area) newValue);
+ return;
+ case RBAViewPackage.POSITION_CONTAINER__OFFSET:
+ getOffset().clear();
+ getOffset().addAll((Collection<? extends Offset>) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case RBAViewPackage.POSITION_CONTAINER__X:
+ unsetX();
+ return;
+ case RBAViewPackage.POSITION_CONTAINER__Y:
+ unsetY();
+ return;
+ case RBAViewPackage.POSITION_CONTAINER__BASE_POINT:
+ setBasePoint(BASE_POINT_EDEFAULT);
+ return;
+ case RBAViewPackage.POSITION_CONTAINER__AREA:
+ setArea((Area) null);
+ return;
+ case RBAViewPackage.POSITION_CONTAINER__OFFSET:
+ getOffset().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case RBAViewPackage.POSITION_CONTAINER__X:
+ return isSetX();
+ case RBAViewPackage.POSITION_CONTAINER__Y:
+ return isSetY();
+ case RBAViewPackage.POSITION_CONTAINER__BASE_POINT:
+ return basePoint != BASE_POINT_EDEFAULT;
+ case RBAViewPackage.POSITION_CONTAINER__AREA:
+ return area != null;
+ case RBAViewPackage.POSITION_CONTAINER__OFFSET:
+ return offset != null && !offset.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(" (x: ");
+ if (xESet)
+ result.append(x);
+ else
+ result.append("<unset>");
+ result.append(", y: ");
+ if (yESet)
+ result.append(y);
+ else
+ result.append("<unset>");
+ result.append(", basePoint: ");
+ result.append(basePoint);
+ result.append(')');
+ return result.toString();
+ }
+
+} // PositionContainerImpl
diff --git a/rba.model.view/src/rba/view/impl/RBAViewFactoryImpl.java b/rba.model.view/src/rba/view/impl/RBAViewFactoryImpl.java
new file mode 100644
index 0000000..ee41c60
--- /dev/null
+++ b/rba.model.view/src/rba/view/impl/RBAViewFactoryImpl.java
@@ -0,0 +1,390 @@
+/**
+ */
+package rba.view.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 rba.view.*;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model <b>Factory</b>. <!-- end-user-doc -->
+ * @generated
+ */
+public class RBAViewFactoryImpl extends EFactoryImpl implements RBAViewFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public static RBAViewFactory init() {
+ try {
+ RBAViewFactory theRBAViewFactory = (RBAViewFactory) EPackage.Registry.INSTANCE
+ .getEFactory(RBAViewPackage.eNS_URI);
+ if (theRBAViewFactory != null) {
+ return theRBAViewFactory;
+ }
+ } catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new RBAViewFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public RBAViewFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case RBAViewPackage.VIEW_CONTENT:
+ return createViewContent();
+ case RBAViewPackage.VIEW_CONTENT_SET:
+ return createViewContentSet();
+ case RBAViewPackage.VIEW_CONTENT_STATE:
+ return createViewContentState();
+ case RBAViewPackage.VERTICAL_LAYOUT:
+ return createVerticalLayout();
+ case RBAViewPackage.HORIZONTAL_LAYOUT:
+ return createHorizontalLayout();
+ case RBAViewPackage.FIXED_POSITION_LAYOUT:
+ return createFixedPositionLayout();
+ case RBAViewPackage.POSITION_CONTAINER:
+ return createPositionContainer();
+ case RBAViewPackage.DISPLAY:
+ return createDisplay();
+ case RBAViewPackage.COMPOSITE_AREA:
+ return createCompositeArea();
+ case RBAViewPackage.AREA:
+ return createArea();
+ case RBAViewPackage.AREA_SET:
+ return createAreaSet();
+ case RBAViewPackage.SIZE:
+ return createSize();
+ case RBAViewPackage.SIZE_REFERENCE:
+ return createSizeReference();
+ case RBAViewPackage.OFFSET:
+ return createOffset();
+ case RBAViewPackage.IS_DISPLAYED:
+ return createIsDisplayed();
+ case RBAViewPackage.DISPLAYING_CONTENT:
+ return createDisplayingContent();
+ case RBAViewPackage.IS_HIDDEN:
+ return createIsHidden();
+ case RBAViewPackage.IS_VISIBLE:
+ return createIsVisible();
+ case RBAViewPackage.ALL_INSTANCE_OF_AREA:
+ return createAllInstanceOfArea();
+ case RBAViewPackage.ALL_INSTANCE_OF_VIEW_CONTENT:
+ return createAllInstanceOfViewContent();
+ case RBAViewPackage.IS_DISPLAYED_ON:
+ return createIsDisplayedOn();
+ case RBAViewPackage.IS_CHANGED_DISPLAY:
+ return createIsChangedDisplay();
+ case RBAViewPackage.IS_TRANSLATED_VIEW_TO:
+ return createIsTranslatedViewTo();
+ case RBAViewPackage.HIDE_LOWER_PRIORITY:
+ return createHideLowerPriority();
+ 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 RBAViewPackage.BASE_POINT:
+ return createBasePointFromString(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 RBAViewPackage.BASE_POINT:
+ return convertBasePointToString(eDataType, instanceValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ViewContent createViewContent() {
+ ViewContentImpl viewContent = new ViewContentImpl();
+ return viewContent;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ViewContentSet createViewContentSet() {
+ ViewContentSetImpl viewContentSet = new ViewContentSetImpl();
+ return viewContentSet;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ViewContentState createViewContentState() {
+ ViewContentStateImpl viewContentState = new ViewContentStateImpl();
+ return viewContentState;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public VerticalLayout createVerticalLayout() {
+ VerticalLayoutImpl verticalLayout = new VerticalLayoutImpl();
+ return verticalLayout;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public HorizontalLayout createHorizontalLayout() {
+ HorizontalLayoutImpl horizontalLayout = new HorizontalLayoutImpl();
+ return horizontalLayout;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public FixedPositionLayout createFixedPositionLayout() {
+ FixedPositionLayoutImpl fixedPositionLayout = new FixedPositionLayoutImpl();
+ return fixedPositionLayout;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public PositionContainer createPositionContainer() {
+ PositionContainerImpl positionContainer = new PositionContainerImpl();
+ return positionContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public Display createDisplay() {
+ DisplayImpl display = new DisplayImpl();
+ return display;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public CompositeArea createCompositeArea() {
+ CompositeAreaImpl compositeArea = new CompositeAreaImpl();
+ return compositeArea;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public Area createArea() {
+ AreaImpl area = new AreaImpl();
+ return area;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public AreaSet createAreaSet() {
+ AreaSetImpl areaSet = new AreaSetImpl();
+ return areaSet;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public Size createSize() {
+ SizeImpl size = new SizeImpl();
+ return size;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public SizeReference createSizeReference() {
+ SizeReferenceImpl sizeReference = new SizeReferenceImpl();
+ return sizeReference;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public Offset createOffset() {
+ OffsetImpl offset = new OffsetImpl();
+ return offset;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsDisplayed createIsDisplayed() {
+ IsDisplayedImpl isDisplayed = new IsDisplayedImpl();
+ return isDisplayed;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public DisplayingContent createDisplayingContent() {
+ DisplayingContentImpl displayingContent = new DisplayingContentImpl();
+ return displayingContent;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsHidden createIsHidden() {
+ IsHiddenImpl isHidden = new IsHiddenImpl();
+ return isHidden;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsVisible createIsVisible() {
+ IsVisibleImpl isVisible = new IsVisibleImpl();
+ return isVisible;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public AllInstanceOfArea createAllInstanceOfArea() {
+ AllInstanceOfAreaImpl allInstanceOfArea = new AllInstanceOfAreaImpl();
+ return allInstanceOfArea;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public AllInstanceOfViewContent createAllInstanceOfViewContent() {
+ AllInstanceOfViewContentImpl allInstanceOfViewContent = new AllInstanceOfViewContentImpl();
+ return allInstanceOfViewContent;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsDisplayedOn createIsDisplayedOn() {
+ IsDisplayedOnImpl isDisplayedOn = new IsDisplayedOnImpl();
+ return isDisplayedOn;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsChangedDisplay createIsChangedDisplay() {
+ IsChangedDisplayImpl isChangedDisplay = new IsChangedDisplayImpl();
+ return isChangedDisplay;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public IsTranslatedViewTo createIsTranslatedViewTo() {
+ IsTranslatedViewToImpl isTranslatedViewTo = new IsTranslatedViewToImpl();
+ return isTranslatedViewTo;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public HideLowerPriority createHideLowerPriority() {
+ HideLowerPriorityImpl hideLowerPriority = new HideLowerPriorityImpl();
+ return hideLowerPriority;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public BasePoint createBasePointFromString(EDataType eDataType, String initialValue) {
+ BasePoint result = BasePoint.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 convertBasePointToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public RBAViewPackage getRBAViewPackage() {
+ return (RBAViewPackage) getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static RBAViewPackage getPackage() {
+ return RBAViewPackage.eINSTANCE;
+ }
+
+} // RBAViewFactoryImpl
diff --git a/rba.model.view/src/rba/view/impl/RBAViewPackageImpl.java b/rba.model.view/src/rba/view/impl/RBAViewPackageImpl.java
new file mode 100644
index 0000000..3552e11
--- /dev/null
+++ b/rba.model.view/src/rba/view/impl/RBAViewPackageImpl.java
@@ -0,0 +1,1430 @@
+/**
+ */
+package rba.view.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import rba.core.RBACorePackage;
+import rba.view.AlignedLayout;
+import rba.view.AllInstanceOfArea;
+import rba.view.AllInstanceOfViewContent;
+import rba.view.Area;
+import rba.view.AreaOperator;
+import rba.view.AreaSet;
+import rba.view.BasePoint;
+import rba.view.CompositeArea;
+import rba.view.Display;
+import rba.view.DisplayingContent;
+import rba.view.FixedPositionLayout;
+import rba.view.HideLowerPriority;
+import rba.view.HorizontalLayout;
+import rba.view.IsChangedDisplay;
+import rba.view.IsDisplayed;
+import rba.view.IsDisplayedOn;
+import rba.view.IsHidden;
+import rba.view.IsTranslatedViewTo;
+import rba.view.IsVisible;
+import rba.view.LayoutManager;
+import rba.view.Offset;
+import rba.view.PositionContainer;
+import rba.view.RBAViewFactory;
+import rba.view.RBAViewPackage;
+import rba.view.Size;
+import rba.view.SizeIdentifier;
+import rba.view.SizeReference;
+import rba.view.VerticalLayout;
+import rba.view.ViewContent;
+import rba.view.ViewContentOperator;
+import rba.view.ViewContentSet;
+import rba.view.ViewContentState;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model <b>Package</b>. <!-- end-user-doc -->
+ * @generated
+ */
+public class RBAViewPackageImpl extends EPackageImpl implements RBAViewPackage {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass viewContentEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass viewContentSetEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass viewContentStateEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass layoutManagerEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass alignedLayoutEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass verticalLayoutEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass horizontalLayoutEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass fixedPositionLayoutEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass positionContainerEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass displayEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass compositeAreaEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass areaEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass areaSetEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass sizeIdentifierEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass sizeEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass sizeReferenceEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass offsetEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass areaOperatorEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass isDisplayedEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass displayingContentEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass isHiddenEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass viewContentOperatorEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass isVisibleEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass allInstanceOfAreaEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass allInstanceOfViewContentEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass isDisplayedOnEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass isChangedDisplayEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass isTranslatedViewToEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass hideLowerPriorityEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum basePointEEnum = 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 rba.view.RBAViewPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private RBAViewPackageImpl() {
+ super(eNS_URI, RBAViewFactory.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 RBAViewPackage#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 RBAViewPackage init() {
+ if (isInited)
+ return (RBAViewPackage) EPackage.Registry.INSTANCE.getEPackage(RBAViewPackage.eNS_URI);
+
+ // Obtain or create and register package
+ RBAViewPackageImpl theRBAViewPackage = (RBAViewPackageImpl) (EPackage.Registry.INSTANCE
+ .get(eNS_URI) instanceof RBAViewPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI)
+ : new RBAViewPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ RBACorePackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ theRBAViewPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theRBAViewPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theRBAViewPackage.freeze();
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(RBAViewPackage.eNS_URI, theRBAViewPackage);
+ return theRBAViewPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getViewContent() {
+ return viewContentEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getViewContent_Size() {
+ return (EReference) viewContentEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getViewContent__GetExpressionType() {
+ return viewContentEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getViewContentSet() {
+ return viewContentSetEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getViewContentSet__GetExpressionType() {
+ return viewContentSetEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getViewContentState() {
+ return viewContentStateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getViewContentState__GetExpressionType() {
+ return viewContentStateEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLayoutManager() {
+ return layoutManagerEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getLayoutManager__CollectLeafArea() {
+ return layoutManagerEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAlignedLayout() {
+ return alignedLayoutEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAlignedLayout_Subarea() {
+ return (EReference) alignedLayoutEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAlignedLayout_BasePoint() {
+ return (EAttribute) alignedLayoutEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getAlignedLayout__CollectLeafArea() {
+ return alignedLayoutEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getVerticalLayout() {
+ return verticalLayoutEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getHorizontalLayout() {
+ return horizontalLayoutEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getFixedPositionLayout() {
+ return fixedPositionLayoutEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getFixedPositionLayout_SubAreaPosition() {
+ return (EReference) fixedPositionLayoutEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getFixedPositionLayout__CollectLeafArea() {
+ return fixedPositionLayoutEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPositionContainer() {
+ return positionContainerEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getPositionContainer_X() {
+ return (EAttribute) positionContainerEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getPositionContainer_Y() {
+ return (EAttribute) positionContainerEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getPositionContainer_BasePoint() {
+ return (EAttribute) positionContainerEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPositionContainer_Area() {
+ return (EReference) positionContainerEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPositionContainer_Offset() {
+ return (EReference) positionContainerEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDisplay() {
+ return displayEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDisplay_Root() {
+ return (EReference) displayEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDisplay_Size() {
+ return (EReference) displayEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCompositeArea() {
+ return compositeAreaEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCompositeArea_Layout() {
+ return (EReference) compositeAreaEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getCompositeArea__CollectLeafArea() {
+ return compositeAreaEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getCompositeArea__GetExpressionType() {
+ return compositeAreaEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getArea() {
+ return areaEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getArea_Zorder() {
+ return (EReference) areaEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getArea_Size() {
+ return (EReference) areaEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getArea__GetExpressionType() {
+ return areaEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAreaSet() {
+ return areaSetEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getAreaSet__GetExpressionType() {
+ return areaSetEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSizeIdentifier() {
+ return sizeIdentifierEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSize() {
+ return sizeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getSize_Width() {
+ return (EAttribute) sizeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getSize_Height() {
+ return (EAttribute) sizeEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSizeReference() {
+ return sizeReferenceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSizeReference_Size() {
+ return (EReference) sizeReferenceEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getOffset() {
+ return offsetEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getOffset_X() {
+ return (EAttribute) offsetEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getOffset_Y() {
+ return (EAttribute) offsetEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getOffset_Size() {
+ return (EReference) offsetEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAreaOperator() {
+ return areaOperatorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getIsDisplayed() {
+ return isDisplayedEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIsDisplayed__GetSymbol() {
+ return isDisplayedEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIsDisplayed__GetUnderlyingType() {
+ return isDisplayedEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDisplayingContent() {
+ return displayingContentEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getDisplayingContent__GetSymbol() {
+ return displayingContentEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getDisplayingContent__GetUnderlyingType() {
+ return displayingContentEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getIsHidden() {
+ return isHiddenEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIsHidden__GetSymbol() {
+ return isHiddenEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIsHidden__GetUnderlyingType() {
+ return isHiddenEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getViewContentOperator() {
+ return viewContentOperatorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getViewContentOperator__GetUnderlyingType() {
+ return viewContentOperatorEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getIsVisible() {
+ return isVisibleEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIsVisible__GetSymbol() {
+ return isVisibleEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAllInstanceOfArea() {
+ return allInstanceOfAreaEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getAllInstanceOfArea__GetExpressionText() {
+ return allInstanceOfAreaEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getAllInstanceOfArea__GetUnderlyingType() {
+ return allInstanceOfAreaEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAllInstanceOfViewContent() {
+ return allInstanceOfViewContentEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getAllInstanceOfViewContent__GetExpressionText() {
+ return allInstanceOfViewContentEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getAllInstanceOfViewContent__GetUnderlyingType() {
+ return allInstanceOfViewContentEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getIsDisplayedOn() {
+ return isDisplayedOnEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIsDisplayedOn__GetSymbol() {
+ return isDisplayedOnEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIsDisplayedOn__GetUnderlyingType() {
+ return isDisplayedOnEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIsDisplayedOn__GetExpressionText() {
+ return isDisplayedOnEClass.getEOperations().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getIsChangedDisplay() {
+ return isChangedDisplayEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIsChangedDisplay__GetSymbol() {
+ return isChangedDisplayEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIsChangedDisplay__GetUnderlyingType() {
+ return isChangedDisplayEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getIsTranslatedViewTo() {
+ return isTranslatedViewToEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIsTranslatedViewTo__GetSymbol() {
+ return isTranslatedViewToEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIsTranslatedViewTo__GetUnderlyingType() {
+ return isTranslatedViewToEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getIsTranslatedViewTo__GetExpressionText() {
+ return isTranslatedViewToEClass.getEOperations().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getHideLowerPriority() {
+ return hideLowerPriorityEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getHideLowerPriority__GetSymbol() {
+ return hideLowerPriorityEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getHideLowerPriority__GetUnderlyingType() {
+ return hideLowerPriorityEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getHideLowerPriority__GetExpressionText() {
+ return hideLowerPriorityEClass.getEOperations().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getBasePoint() {
+ return basePointEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public RBAViewFactory getRBAViewFactory() {
+ return (RBAViewFactory) 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
+ viewContentEClass = createEClass(VIEW_CONTENT);
+ createEReference(viewContentEClass, VIEW_CONTENT__SIZE);
+ createEOperation(viewContentEClass, VIEW_CONTENT___GET_EXPRESSION_TYPE);
+
+ viewContentSetEClass = createEClass(VIEW_CONTENT_SET);
+ createEOperation(viewContentSetEClass, VIEW_CONTENT_SET___GET_EXPRESSION_TYPE);
+
+ viewContentStateEClass = createEClass(VIEW_CONTENT_STATE);
+ createEOperation(viewContentStateEClass, VIEW_CONTENT_STATE___GET_EXPRESSION_TYPE);
+
+ layoutManagerEClass = createEClass(LAYOUT_MANAGER);
+ createEOperation(layoutManagerEClass, LAYOUT_MANAGER___COLLECT_LEAF_AREA);
+
+ alignedLayoutEClass = createEClass(ALIGNED_LAYOUT);
+ createEReference(alignedLayoutEClass, ALIGNED_LAYOUT__SUBAREA);
+ createEAttribute(alignedLayoutEClass, ALIGNED_LAYOUT__BASE_POINT);
+ createEOperation(alignedLayoutEClass, ALIGNED_LAYOUT___COLLECT_LEAF_AREA);
+
+ verticalLayoutEClass = createEClass(VERTICAL_LAYOUT);
+
+ horizontalLayoutEClass = createEClass(HORIZONTAL_LAYOUT);
+
+ fixedPositionLayoutEClass = createEClass(FIXED_POSITION_LAYOUT);
+ createEReference(fixedPositionLayoutEClass, FIXED_POSITION_LAYOUT__SUB_AREA_POSITION);
+ createEOperation(fixedPositionLayoutEClass, FIXED_POSITION_LAYOUT___COLLECT_LEAF_AREA);
+
+ positionContainerEClass = createEClass(POSITION_CONTAINER);
+ createEAttribute(positionContainerEClass, POSITION_CONTAINER__X);
+ createEAttribute(positionContainerEClass, POSITION_CONTAINER__Y);
+ createEAttribute(positionContainerEClass, POSITION_CONTAINER__BASE_POINT);
+ createEReference(positionContainerEClass, POSITION_CONTAINER__AREA);
+ createEReference(positionContainerEClass, POSITION_CONTAINER__OFFSET);
+
+ displayEClass = createEClass(DISPLAY);
+ createEReference(displayEClass, DISPLAY__ROOT);
+ createEReference(displayEClass, DISPLAY__SIZE);
+
+ compositeAreaEClass = createEClass(COMPOSITE_AREA);
+ createEReference(compositeAreaEClass, COMPOSITE_AREA__LAYOUT);
+ createEOperation(compositeAreaEClass, COMPOSITE_AREA___COLLECT_LEAF_AREA);
+ createEOperation(compositeAreaEClass, COMPOSITE_AREA___GET_EXPRESSION_TYPE);
+
+ areaEClass = createEClass(AREA);
+ createEReference(areaEClass, AREA__ZORDER);
+ createEReference(areaEClass, AREA__SIZE);
+ createEOperation(areaEClass, AREA___GET_EXPRESSION_TYPE);
+
+ areaSetEClass = createEClass(AREA_SET);
+ createEOperation(areaSetEClass, AREA_SET___GET_EXPRESSION_TYPE);
+
+ sizeIdentifierEClass = createEClass(SIZE_IDENTIFIER);
+
+ sizeEClass = createEClass(SIZE);
+ createEAttribute(sizeEClass, SIZE__WIDTH);
+ createEAttribute(sizeEClass, SIZE__HEIGHT);
+
+ sizeReferenceEClass = createEClass(SIZE_REFERENCE);
+ createEReference(sizeReferenceEClass, SIZE_REFERENCE__SIZE);
+
+ offsetEClass = createEClass(OFFSET);
+ createEAttribute(offsetEClass, OFFSET__X);
+ createEAttribute(offsetEClass, OFFSET__Y);
+ createEReference(offsetEClass, OFFSET__SIZE);
+
+ areaOperatorEClass = createEClass(AREA_OPERATOR);
+
+ isDisplayedEClass = createEClass(IS_DISPLAYED);
+ createEOperation(isDisplayedEClass, IS_DISPLAYED___GET_SYMBOL);
+ createEOperation(isDisplayedEClass, IS_DISPLAYED___GET_UNDERLYING_TYPE);
+
+ displayingContentEClass = createEClass(DISPLAYING_CONTENT);
+ createEOperation(displayingContentEClass, DISPLAYING_CONTENT___GET_SYMBOL);
+ createEOperation(displayingContentEClass, DISPLAYING_CONTENT___GET_UNDERLYING_TYPE);
+
+ isHiddenEClass = createEClass(IS_HIDDEN);
+ createEOperation(isHiddenEClass, IS_HIDDEN___GET_SYMBOL);
+ createEOperation(isHiddenEClass, IS_HIDDEN___GET_UNDERLYING_TYPE);
+
+ viewContentOperatorEClass = createEClass(VIEW_CONTENT_OPERATOR);
+ createEOperation(viewContentOperatorEClass, VIEW_CONTENT_OPERATOR___GET_UNDERLYING_TYPE);
+
+ isVisibleEClass = createEClass(IS_VISIBLE);
+ createEOperation(isVisibleEClass, IS_VISIBLE___GET_SYMBOL);
+
+ allInstanceOfAreaEClass = createEClass(ALL_INSTANCE_OF_AREA);
+ createEOperation(allInstanceOfAreaEClass, ALL_INSTANCE_OF_AREA___GET_EXPRESSION_TEXT);
+ createEOperation(allInstanceOfAreaEClass, ALL_INSTANCE_OF_AREA___GET_UNDERLYING_TYPE);
+
+ allInstanceOfViewContentEClass = createEClass(ALL_INSTANCE_OF_VIEW_CONTENT);
+ createEOperation(allInstanceOfViewContentEClass, ALL_INSTANCE_OF_VIEW_CONTENT___GET_EXPRESSION_TEXT);
+ createEOperation(allInstanceOfViewContentEClass, ALL_INSTANCE_OF_VIEW_CONTENT___GET_UNDERLYING_TYPE);
+
+ isDisplayedOnEClass = createEClass(IS_DISPLAYED_ON);
+ createEOperation(isDisplayedOnEClass, IS_DISPLAYED_ON___GET_SYMBOL);
+ createEOperation(isDisplayedOnEClass, IS_DISPLAYED_ON___GET_UNDERLYING_TYPE);
+ createEOperation(isDisplayedOnEClass, IS_DISPLAYED_ON___GET_EXPRESSION_TEXT);
+
+ isChangedDisplayEClass = createEClass(IS_CHANGED_DISPLAY);
+ createEOperation(isChangedDisplayEClass, IS_CHANGED_DISPLAY___GET_SYMBOL);
+ createEOperation(isChangedDisplayEClass, IS_CHANGED_DISPLAY___GET_UNDERLYING_TYPE);
+
+ isTranslatedViewToEClass = createEClass(IS_TRANSLATED_VIEW_TO);
+ createEOperation(isTranslatedViewToEClass, IS_TRANSLATED_VIEW_TO___GET_SYMBOL);
+ createEOperation(isTranslatedViewToEClass, IS_TRANSLATED_VIEW_TO___GET_UNDERLYING_TYPE);
+ createEOperation(isTranslatedViewToEClass, IS_TRANSLATED_VIEW_TO___GET_EXPRESSION_TEXT);
+
+ hideLowerPriorityEClass = createEClass(HIDE_LOWER_PRIORITY);
+ createEOperation(hideLowerPriorityEClass, HIDE_LOWER_PRIORITY___GET_SYMBOL);
+ createEOperation(hideLowerPriorityEClass, HIDE_LOWER_PRIORITY___GET_UNDERLYING_TYPE);
+ createEOperation(hideLowerPriorityEClass, HIDE_LOWER_PRIORITY___GET_EXPRESSION_TEXT);
+
+ // Create enums
+ basePointEEnum = createEEnum(BASE_POINT);
+ }
+
+ /**
+ * <!-- 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);
+
+ // Obtain other dependent packages
+ RBACorePackage theRBACorePackage = (RBACorePackage) EPackage.Registry.INSTANCE
+ .getEPackage(RBACorePackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ viewContentEClass.getESuperTypes().add(theRBACorePackage.getContent());
+ viewContentSetEClass.getESuperTypes().add(theRBACorePackage.getContentSet());
+ viewContentStateEClass.getESuperTypes().add(theRBACorePackage.getContentState());
+ alignedLayoutEClass.getESuperTypes().add(this.getLayoutManager());
+ verticalLayoutEClass.getESuperTypes().add(this.getAlignedLayout());
+ horizontalLayoutEClass.getESuperTypes().add(this.getAlignedLayout());
+ fixedPositionLayoutEClass.getESuperTypes().add(this.getLayoutManager());
+ displayEClass.getESuperTypes().add(theRBACorePackage.getPackagableElement());
+ compositeAreaEClass.getESuperTypes().add(theRBACorePackage.getPackagableElement());
+ areaEClass.getESuperTypes().add(theRBACorePackage.getAllocatable());
+ areaSetEClass.getESuperTypes().add(theRBACorePackage.getAllocatableSet());
+ sizeEClass.getESuperTypes().add(theRBACorePackage.getPackagableElement());
+ sizeEClass.getESuperTypes().add(this.getSizeIdentifier());
+ sizeReferenceEClass.getESuperTypes().add(this.getSizeIdentifier());
+ offsetEClass.getESuperTypes().add(theRBACorePackage.getPackagableElement());
+ areaOperatorEClass.getESuperTypes().add(theRBACorePackage.getAllocatableOperator());
+ isDisplayedEClass.getESuperTypes().add(this.getAreaOperator());
+ displayingContentEClass.getESuperTypes().add(this.getAreaOperator());
+ isHiddenEClass.getESuperTypes().add(this.getAreaOperator());
+ viewContentOperatorEClass.getESuperTypes().add(theRBACorePackage.getContentOperator());
+ isVisibleEClass.getESuperTypes().add(this.getViewContentOperator());
+ allInstanceOfAreaEClass.getESuperTypes().add(theRBACorePackage.getSetExpression());
+ allInstanceOfViewContentEClass.getESuperTypes().add(theRBACorePackage.getSetExpression());
+ isDisplayedOnEClass.getESuperTypes().add(this.getViewContentOperator());
+ isDisplayedOnEClass.getESuperTypes().add(theRBACorePackage.getSugarExpressionBase());
+ isChangedDisplayEClass.getESuperTypes().add(this.getAreaOperator());
+ isChangedDisplayEClass.getESuperTypes().add(theRBACorePackage.getSugarExpressionBase());
+ isTranslatedViewToEClass.getESuperTypes().add(this.getAreaOperator());
+ isTranslatedViewToEClass.getESuperTypes().add(theRBACorePackage.getSugarExpressionBase());
+ hideLowerPriorityEClass.getESuperTypes().add(theRBACorePackage.getOperator());
+ hideLowerPriorityEClass.getESuperTypes().add(theRBACorePackage.getSugarExpressionBase());
+
+ // Initialize classes, features, and operations; add parameters
+ initEClass(viewContentEClass, ViewContent.class, "ViewContent", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getViewContent_Size(), this.getSizeIdentifier(), null, "size", null, 0, -1, ViewContent.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEOperation(getViewContent__GetExpressionType(), theRBACorePackage.getExpressionType(), "getExpressionType",
+ 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(viewContentSetEClass, ViewContentSet.class, "ViewContentSet", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getViewContentSet__GetExpressionType(), theRBACorePackage.getExpressionType(),
+ "getExpressionType", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(viewContentStateEClass, ViewContentState.class, "ViewContentState", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getViewContentState__GetExpressionType(), theRBACorePackage.getExpressionType(),
+ "getExpressionType", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(layoutManagerEClass, LayoutManager.class, "LayoutManager", IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getLayoutManager__CollectLeafArea(), this.getArea(), "collectLeafArea", 0, -1, IS_UNIQUE,
+ !IS_ORDERED);
+
+ initEClass(alignedLayoutEClass, AlignedLayout.class, "AlignedLayout", IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getAlignedLayout_Subarea(), this.getArea(), null, "subarea", null, 0, -1, AlignedLayout.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getAlignedLayout_BasePoint(), this.getBasePoint(), "basePoint", null, 0, 1, AlignedLayout.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEOperation(getAlignedLayout__CollectLeafArea(), this.getArea(), "collectLeafArea", 0, -1, IS_UNIQUE,
+ !IS_ORDERED);
+
+ initEClass(verticalLayoutEClass, VerticalLayout.class, "VerticalLayout", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(horizontalLayoutEClass, HorizontalLayout.class, "HorizontalLayout", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(fixedPositionLayoutEClass, FixedPositionLayout.class, "FixedPositionLayout", !IS_ABSTRACT,
+ !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getFixedPositionLayout_SubAreaPosition(), this.getPositionContainer(), null, "subAreaPosition",
+ null, 0, -1, FixedPositionLayout.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
+ !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEOperation(getFixedPositionLayout__CollectLeafArea(), this.getArea(), "collectLeafArea", 0, -1, IS_UNIQUE,
+ !IS_ORDERED);
+
+ initEClass(positionContainerEClass, PositionContainer.class, "PositionContainer", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getPositionContainer_X(), ecorePackage.getEInt(), "x", null, 1, 1, PositionContainer.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getPositionContainer_Y(), ecorePackage.getEInt(), "y", null, 1, 1, PositionContainer.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getPositionContainer_BasePoint(), this.getBasePoint(), "basePoint", null, 0, 1,
+ PositionContainer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+ !IS_DERIVED, IS_ORDERED);
+ initEReference(getPositionContainer_Area(), this.getArea(), null, "area", null, 1, 1, PositionContainer.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getPositionContainer_Offset(), this.getOffset(), null, "offset", null, 0, -1,
+ PositionContainer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(displayEClass, Display.class, "Display", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getDisplay_Root(), this.getCompositeArea(), null, "root", null, 0, 1, Display.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getDisplay_Size(), this.getSizeIdentifier(), null, "size", null, 1, 1, Display.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(compositeAreaEClass, CompositeArea.class, "CompositeArea", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getCompositeArea_Layout(), this.getLayoutManager(), null, "layout", null, 0, 1,
+ CompositeArea.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEOperation(getCompositeArea__CollectLeafArea(), this.getArea(), "collectLeafArea", 0, -1, IS_UNIQUE,
+ !IS_ORDERED);
+
+ initEOperation(getCompositeArea__GetExpressionType(), theRBACorePackage.getExpressionType(),
+ "getExpressionType", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(areaEClass, Area.class, "Area", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getArea_Zorder(), theRBACorePackage.getExpression(), null, "zorder", null, 0, 1, Area.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getArea_Size(), this.getSizeIdentifier(), null, "size", null, 0, -1, Area.class, !IS_TRANSIENT,
+ !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
+ IS_ORDERED);
+
+ initEOperation(getArea__GetExpressionType(), theRBACorePackage.getExpressionType(), "getExpressionType", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(areaSetEClass, AreaSet.class, "AreaSet", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getAreaSet__GetExpressionType(), theRBACorePackage.getExpressionType(), "getExpressionType", 0,
+ 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(sizeIdentifierEClass, SizeIdentifier.class, "SizeIdentifier", IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(sizeEClass, Size.class, "Size", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getSize_Width(), ecorePackage.getEInt(), "width", null, 1, 1, Size.class, !IS_TRANSIENT,
+ !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getSize_Height(), ecorePackage.getEInt(), "height", null, 1, 1, Size.class, !IS_TRANSIENT,
+ !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(sizeReferenceEClass, SizeReference.class, "SizeReference", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getSizeReference_Size(), this.getSize(), null, "size", null, 0, 1, SizeReference.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(offsetEClass, Offset.class, "Offset", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getOffset_X(), ecorePackage.getEInt(), "x", null, 1, 1, Offset.class, !IS_TRANSIENT,
+ !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getOffset_Y(), ecorePackage.getEInt(), "y", null, 1, 1, Offset.class, !IS_TRANSIENT,
+ !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getOffset_Size(), this.getSizeReference(), null, "size", null, 1, 1, Offset.class, !IS_TRANSIENT,
+ !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
+ IS_ORDERED);
+
+ initEClass(areaOperatorEClass, AreaOperator.class, "AreaOperator", IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(isDisplayedEClass, IsDisplayed.class, "IsDisplayed", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getIsDisplayed__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEOperation(getIsDisplayed__GetUnderlyingType(), theRBACorePackage.getExpressionType(), "getUnderlyingType",
+ 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(displayingContentEClass, DisplayingContent.class, "DisplayingContent", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getDisplayingContent__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEOperation(getDisplayingContent__GetUnderlyingType(), theRBACorePackage.getExpressionType(),
+ "getUnderlyingType", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(isHiddenEClass, IsHidden.class, "IsHidden", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getIsHidden__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getIsHidden__GetUnderlyingType(), theRBACorePackage.getExpressionType(), "getUnderlyingType", 0,
+ 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(viewContentOperatorEClass, ViewContentOperator.class, "ViewContentOperator", IS_ABSTRACT,
+ !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getViewContentOperator__GetUnderlyingType(), theRBACorePackage.getExpressionType(),
+ "getUnderlyingType", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(isVisibleEClass, IsVisible.class, "IsVisible", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getIsVisible__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(allInstanceOfAreaEClass, AllInstanceOfArea.class, "AllInstanceOfArea", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getAllInstanceOfArea__GetExpressionText(), ecorePackage.getEString(), "getExpressionText", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getAllInstanceOfArea__GetUnderlyingType(), theRBACorePackage.getExpressionType(),
+ "getUnderlyingType", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(allInstanceOfViewContentEClass, AllInstanceOfViewContent.class, "AllInstanceOfViewContent",
+ !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getAllInstanceOfViewContent__GetExpressionText(), ecorePackage.getEString(), "getExpressionText",
+ 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getAllInstanceOfViewContent__GetUnderlyingType(), theRBACorePackage.getExpressionType(),
+ "getUnderlyingType", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(isDisplayedOnEClass, IsDisplayedOn.class, "IsDisplayedOn", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getIsDisplayedOn__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEOperation(getIsDisplayedOn__GetUnderlyingType(), theRBACorePackage.getExpressionType(),
+ "getUnderlyingType", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getIsDisplayedOn__GetExpressionText(), ecorePackage.getEString(), "getExpressionText", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(isChangedDisplayEClass, IsChangedDisplay.class, "IsChangedDisplay", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getIsChangedDisplay__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEOperation(getIsChangedDisplay__GetUnderlyingType(), theRBACorePackage.getExpressionType(),
+ "getUnderlyingType", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(isTranslatedViewToEClass, IsTranslatedViewTo.class, "IsTranslatedViewTo", !IS_ABSTRACT,
+ !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getIsTranslatedViewTo__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEOperation(getIsTranslatedViewTo__GetUnderlyingType(), theRBACorePackage.getExpressionType(),
+ "getUnderlyingType", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getIsTranslatedViewTo__GetExpressionText(), ecorePackage.getEString(), "getExpressionText", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ initEClass(hideLowerPriorityEClass, HideLowerPriority.class, "HideLowerPriority", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEOperation(getHideLowerPriority__GetSymbol(), ecorePackage.getEString(), "getSymbol", 0, 1, IS_UNIQUE,
+ IS_ORDERED);
+
+ initEOperation(getHideLowerPriority__GetUnderlyingType(), theRBACorePackage.getExpressionType(),
+ "getUnderlyingType", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getHideLowerPriority__GetExpressionText(), ecorePackage.getEString(), "getExpressionText", 0, 1,
+ IS_UNIQUE, IS_ORDERED);
+
+ // Initialize enums and add enum literals
+ initEEnum(basePointEEnum, BasePoint.class, "BasePoint");
+ addEEnumLiteral(basePointEEnum, BasePoint.LEFT_TOP);
+ addEEnumLiteral(basePointEEnum, BasePoint.LEFT_MIDDLE);
+ addEEnumLiteral(basePointEEnum, BasePoint.LEFT_BOTTOM);
+ addEEnumLiteral(basePointEEnum, BasePoint.RIGHT_TOP);
+ addEEnumLiteral(basePointEEnum, BasePoint.RIGHT_MIDDLE);
+ addEEnumLiteral(basePointEEnum, BasePoint.RIGHT_BOTTOM);
+ addEEnumLiteral(basePointEEnum, BasePoint.CENTER_TOP);
+ addEEnumLiteral(basePointEEnum, BasePoint.CENTER_MIDDLE);
+ addEEnumLiteral(basePointEEnum, BasePoint.CENTER_BOTTOM);
+
+ // Create resource
+ createResource(eNS_URI);
+
+ // Create annotations
+ // http://www.eclipse.org/OCL/Import
+ createImportAnnotations();
+ }
+
+ /**
+ * Initializes the annotations for <b>http://www.eclipse.org/OCL/Import</b>.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createImportAnnotations() {
+ String source = "http://www.eclipse.org/OCL/Import";
+ addAnnotation(this, source, new String[] { "RbaCore", "../../rba.model.core/model/rbacore.ecore#/", "ecore",
+ "http://www.eclipse.org/emf/2002/Ecore" });
+ }
+
+} // RBAViewPackageImpl
diff --git a/rba.model.view/src/rba/view/impl/SizeIdentifierImpl.java b/rba.model.view/src/rba/view/impl/SizeIdentifierImpl.java
new file mode 100644
index 0000000..8ca07ca
--- /dev/null
+++ b/rba.model.view/src/rba/view/impl/SizeIdentifierImpl.java
@@ -0,0 +1,35 @@
+/**
+ */
+package rba.view.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import rba.view.RBAViewPackage;
+import rba.view.SizeIdentifier;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Size Identifier</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public abstract class SizeIdentifierImpl extends MinimalEObjectImpl.Container implements SizeIdentifier {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected SizeIdentifierImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBAViewPackage.Literals.SIZE_IDENTIFIER;
+ }
+
+} // SizeIdentifierImpl
diff --git a/rba.model.view/src/rba/view/impl/SizeImpl.java b/rba.model.view/src/rba/view/impl/SizeImpl.java
new file mode 100644
index 0000000..f320ca4
--- /dev/null
+++ b/rba.model.view/src/rba/view/impl/SizeImpl.java
@@ -0,0 +1,274 @@
+/**
+ */
+package rba.view.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import rba.core.impl.PackagableElementImpl;
+
+import rba.view.RBAViewPackage;
+import rba.view.Size;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Size</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link rba.view.impl.SizeImpl#getWidth <em>Width</em>}</li>
+ * <li>{@link rba.view.impl.SizeImpl#getHeight <em>Height</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class SizeImpl extends PackagableElementImpl implements Size {
+ /**
+ * The default value of the '{@link #getWidth() <em>Width</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see #getWidth()
+ * @generated
+ * @ordered
+ */
+ protected static final int WIDTH_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getWidth() <em>Width</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see #getWidth()
+ * @generated
+ * @ordered
+ */
+ protected int width = WIDTH_EDEFAULT;
+
+ /**
+ * This is true if the Width attribute has been set.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean widthESet;
+
+ /**
+ * The default value of the '{@link #getHeight() <em>Height</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see #getHeight()
+ * @generated
+ * @ordered
+ */
+ protected static final int HEIGHT_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getHeight() <em>Height</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see #getHeight()
+ * @generated
+ * @ordered
+ */
+ protected int height = HEIGHT_EDEFAULT;
+
+ /**
+ * This is true if the Height attribute has been set.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean heightESet;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected SizeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBAViewPackage.Literals.SIZE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public int getWidth() {
+ return width;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setWidth(int newWidth) {
+ int oldWidth = width;
+ width = newWidth;
+ boolean oldWidthESet = widthESet;
+ widthESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RBAViewPackage.SIZE__WIDTH, oldWidth, width,
+ !oldWidthESet));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetWidth() {
+ int oldWidth = width;
+ boolean oldWidthESet = widthESet;
+ width = WIDTH_EDEFAULT;
+ widthESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, RBAViewPackage.SIZE__WIDTH, oldWidth,
+ WIDTH_EDEFAULT, oldWidthESet));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetWidth() {
+ return widthESet;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public int getHeight() {
+ return height;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setHeight(int newHeight) {
+ int oldHeight = height;
+ height = newHeight;
+ boolean oldHeightESet = heightESet;
+ heightESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RBAViewPackage.SIZE__HEIGHT, oldHeight, height,
+ !oldHeightESet));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetHeight() {
+ int oldHeight = height;
+ boolean oldHeightESet = heightESet;
+ height = HEIGHT_EDEFAULT;
+ heightESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, RBAViewPackage.SIZE__HEIGHT, oldHeight,
+ HEIGHT_EDEFAULT, oldHeightESet));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetHeight() {
+ return heightESet;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case RBAViewPackage.SIZE__WIDTH:
+ return getWidth();
+ case RBAViewPackage.SIZE__HEIGHT:
+ return getHeight();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case RBAViewPackage.SIZE__WIDTH:
+ setWidth((Integer) newValue);
+ return;
+ case RBAViewPackage.SIZE__HEIGHT:
+ setHeight((Integer) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case RBAViewPackage.SIZE__WIDTH:
+ unsetWidth();
+ return;
+ case RBAViewPackage.SIZE__HEIGHT:
+ unsetHeight();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case RBAViewPackage.SIZE__WIDTH:
+ return isSetWidth();
+ case RBAViewPackage.SIZE__HEIGHT:
+ return isSetHeight();
+ }
+ 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(" (width: ");
+ if (widthESet)
+ result.append(width);
+ else
+ result.append("<unset>");
+ result.append(", height: ");
+ if (heightESet)
+ result.append(height);
+ else
+ result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} // SizeImpl
diff --git a/rba.model.view/src/rba/view/impl/SizeReferenceImpl.java b/rba.model.view/src/rba/view/impl/SizeReferenceImpl.java
new file mode 100644
index 0000000..3903a1d
--- /dev/null
+++ b/rba.model.view/src/rba/view/impl/SizeReferenceImpl.java
@@ -0,0 +1,146 @@
+/**
+ */
+package rba.view.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import rba.view.RBAViewPackage;
+import rba.view.Size;
+import rba.view.SizeReference;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Size Reference</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link rba.view.impl.SizeReferenceImpl#getSize <em>Size</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class SizeReferenceImpl extends SizeIdentifierImpl implements SizeReference {
+ /**
+ * The cached value of the '{@link #getSize() <em>Size</em>}' reference.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see #getSize()
+ * @generated
+ * @ordered
+ */
+ protected Size size;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected SizeReferenceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBAViewPackage.Literals.SIZE_REFERENCE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public Size getSize() {
+ if (size != null && size.eIsProxy()) {
+ InternalEObject oldSize = (InternalEObject) size;
+ size = (Size) eResolveProxy(oldSize);
+ if (size != oldSize) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, RBAViewPackage.SIZE_REFERENCE__SIZE,
+ oldSize, size));
+ }
+ }
+ return size;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public Size basicGetSize() {
+ return size;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSize(Size newSize) {
+ Size oldSize = size;
+ size = newSize;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RBAViewPackage.SIZE_REFERENCE__SIZE, oldSize, size));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case RBAViewPackage.SIZE_REFERENCE__SIZE:
+ if (resolve)
+ return getSize();
+ return basicGetSize();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case RBAViewPackage.SIZE_REFERENCE__SIZE:
+ setSize((Size) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case RBAViewPackage.SIZE_REFERENCE__SIZE:
+ setSize((Size) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case RBAViewPackage.SIZE_REFERENCE__SIZE:
+ return size != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // SizeReferenceImpl
diff --git a/rba.model.view/src/rba/view/impl/VerticalLayoutImpl.java b/rba.model.view/src/rba/view/impl/VerticalLayoutImpl.java
new file mode 100644
index 0000000..bac8918
--- /dev/null
+++ b/rba.model.view/src/rba/view/impl/VerticalLayoutImpl.java
@@ -0,0 +1,33 @@
+/**
+ */
+package rba.view.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.view.RBAViewPackage;
+import rba.view.VerticalLayout;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Vertical Layout</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class VerticalLayoutImpl extends AlignedLayoutImpl implements VerticalLayout {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected VerticalLayoutImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBAViewPackage.Literals.VERTICAL_LAYOUT;
+ }
+
+} // VerticalLayoutImpl
diff --git a/rba.model.view/src/rba/view/impl/ViewContentImpl.java b/rba.model.view/src/rba/view/impl/ViewContentImpl.java
new file mode 100644
index 0000000..e2a1688
--- /dev/null
+++ b/rba.model.view/src/rba/view/impl/ViewContentImpl.java
@@ -0,0 +1,160 @@
+/**
+ */
+package rba.view.impl;
+
+import java.lang.reflect.InvocationTargetException;
+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.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import rba.core.ExpressionType;
+import rba.core.impl.ContentImpl;
+import rba.view.RBAViewPackage;
+import rba.view.SizeIdentifier;
+import rba.view.ViewContent;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>View Content</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link rba.view.impl.ViewContentImpl#getSize <em>Size</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ViewContentImpl extends ContentImpl implements ViewContent {
+ /**
+ * The cached value of the '{@link #getSize() <em>Size</em>}' containment reference list.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @see #getSize()
+ * @generated
+ * @ordered
+ */
+ protected EList<SizeIdentifier> size;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected ViewContentImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBAViewPackage.Literals.VIEW_CONTENT;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<SizeIdentifier> getSize() {
+ if (size == null) {
+ size = new EObjectContainmentEList<SizeIdentifier>(SizeIdentifier.class, this,
+ RBAViewPackage.VIEW_CONTENT__SIZE);
+ }
+ return size;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getExpressionType() {
+ return ExpressionType.CONTENT;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case RBAViewPackage.VIEW_CONTENT__SIZE:
+ return ((InternalEList<?>) getSize()).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 RBAViewPackage.VIEW_CONTENT__SIZE:
+ return getSize();
+ }
+ 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 RBAViewPackage.VIEW_CONTENT__SIZE:
+ getSize().clear();
+ getSize().addAll((Collection<? extends SizeIdentifier>) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case RBAViewPackage.VIEW_CONTENT__SIZE:
+ getSize().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case RBAViewPackage.VIEW_CONTENT__SIZE:
+ return size != null && !size.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBAViewPackage.VIEW_CONTENT___GET_EXPRESSION_TYPE:
+ return getExpressionType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // ViewContentImpl
diff --git a/rba.model.view/src/rba/view/impl/ViewContentOperatorImpl.java b/rba.model.view/src/rba/view/impl/ViewContentOperatorImpl.java
new file mode 100644
index 0000000..d3a6b8c
--- /dev/null
+++ b/rba.model.view/src/rba/view/impl/ViewContentOperatorImpl.java
@@ -0,0 +1,62 @@
+/**
+ */
+package rba.view.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.ExpressionType;
+
+import rba.core.impl.ContentOperatorImpl;
+
+import rba.view.RBAViewPackage;
+import rba.view.ViewContentOperator;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>View Content Operator</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public abstract class ViewContentOperatorImpl extends ContentOperatorImpl implements ViewContentOperator {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected ViewContentOperatorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBAViewPackage.Literals.VIEW_CONTENT_OPERATOR;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getUnderlyingType() {
+ return ExpressionType.BOOLEAN;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBAViewPackage.VIEW_CONTENT_OPERATOR___GET_UNDERLYING_TYPE:
+ return getUnderlyingType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // ViewContentOperatorImpl
diff --git a/rba.model.view/src/rba/view/impl/ViewContentSetImpl.java b/rba.model.view/src/rba/view/impl/ViewContentSetImpl.java
new file mode 100644
index 0000000..2454031
--- /dev/null
+++ b/rba.model.view/src/rba/view/impl/ViewContentSetImpl.java
@@ -0,0 +1,62 @@
+/**
+ */
+package rba.view.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.ExpressionType;
+
+import rba.core.impl.ContentSetImpl;
+
+import rba.view.RBAViewPackage;
+import rba.view.ViewContentSet;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>View Content Set</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class ViewContentSetImpl extends ContentSetImpl implements ViewContentSet {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected ViewContentSetImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBAViewPackage.Literals.VIEW_CONTENT_SET;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getExpressionType() {
+ return ExpressionType.SET_OF_CONTENT;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBAViewPackage.VIEW_CONTENT_SET___GET_EXPRESSION_TYPE:
+ return getExpressionType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // ViewContentSetImpl
diff --git a/rba.model.view/src/rba/view/impl/ViewContentStateImpl.java b/rba.model.view/src/rba/view/impl/ViewContentStateImpl.java
new file mode 100644
index 0000000..7dbdbd4
--- /dev/null
+++ b/rba.model.view/src/rba/view/impl/ViewContentStateImpl.java
@@ -0,0 +1,62 @@
+/**
+ */
+package rba.view.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.ExpressionType;
+
+import rba.core.impl.ContentStateImpl;
+
+import rba.view.RBAViewPackage;
+import rba.view.ViewContentState;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>View Content State</b></em>'. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class ViewContentStateImpl extends ContentStateImpl implements ViewContentState {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected ViewContentStateImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RBAViewPackage.Literals.VIEW_CONTENT_STATE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpressionType getExpressionType() {
+ return ExpressionType.CONTENT_STATE;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case RBAViewPackage.VIEW_CONTENT_STATE___GET_EXPRESSION_TYPE:
+ return getExpressionType();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // ViewContentStateImpl
diff --git a/rba.model.view/src/rba/view/util/RBAViewAdapterFactory.java b/rba.model.view/src/rba/view/util/RBAViewAdapterFactory.java
new file mode 100644
index 0000000..4833064
--- /dev/null
+++ b/rba.model.view/src/rba/view/util/RBAViewAdapterFactory.java
@@ -0,0 +1,930 @@
+/**
+ */
+package rba.view.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 rba.core.AbstractAllocatable;
+import rba.core.AbstractContent;
+import rba.core.Allocatable;
+import rba.core.AllocatableOperator;
+import rba.core.AllocatableSet;
+import rba.core.Content;
+import rba.core.ContentOperator;
+import rba.core.ContentSet;
+import rba.core.ContentState;
+import rba.core.Expression;
+import rba.core.ModelElement;
+import rba.core.NamedElement;
+import rba.core.Operator;
+import rba.core.PackagableElement;
+import rba.core.RuleObject;
+import rba.core.SetExpression;
+
+import rba.core.SugarExpression;
+import rba.core.SugarExpressionBase;
+import rba.view.*;
+
+/**
+ * <!-- 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 rba.view.RBAViewPackage
+ * @generated
+ */
+public class RBAViewAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected static RBAViewPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public RBAViewAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = RBAViewPackage.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 RBAViewSwitch<Adapter> modelSwitch = new RBAViewSwitch<Adapter>() {
+ @Override
+ public Adapter caseViewContent(ViewContent object) {
+ return createViewContentAdapter();
+ }
+
+ @Override
+ public Adapter caseViewContentSet(ViewContentSet object) {
+ return createViewContentSetAdapter();
+ }
+
+ @Override
+ public Adapter caseViewContentState(ViewContentState object) {
+ return createViewContentStateAdapter();
+ }
+
+ @Override
+ public Adapter caseLayoutManager(LayoutManager object) {
+ return createLayoutManagerAdapter();
+ }
+
+ @Override
+ public Adapter caseAlignedLayout(AlignedLayout object) {
+ return createAlignedLayoutAdapter();
+ }
+
+ @Override
+ public Adapter caseVerticalLayout(VerticalLayout object) {
+ return createVerticalLayoutAdapter();
+ }
+
+ @Override
+ public Adapter caseHorizontalLayout(HorizontalLayout object) {
+ return createHorizontalLayoutAdapter();
+ }
+
+ @Override
+ public Adapter caseFixedPositionLayout(FixedPositionLayout object) {
+ return createFixedPositionLayoutAdapter();
+ }
+
+ @Override
+ public Adapter casePositionContainer(PositionContainer object) {
+ return createPositionContainerAdapter();
+ }
+
+ @Override
+ public Adapter caseDisplay(Display object) {
+ return createDisplayAdapter();
+ }
+
+ @Override
+ public Adapter caseCompositeArea(CompositeArea object) {
+ return createCompositeAreaAdapter();
+ }
+
+ @Override
+ public Adapter caseArea(Area object) {
+ return createAreaAdapter();
+ }
+
+ @Override
+ public Adapter caseAreaSet(AreaSet object) {
+ return createAreaSetAdapter();
+ }
+
+ @Override
+ public Adapter caseSizeIdentifier(SizeIdentifier object) {
+ return createSizeIdentifierAdapter();
+ }
+
+ @Override
+ public Adapter caseSize(Size object) {
+ return createSizeAdapter();
+ }
+
+ @Override
+ public Adapter caseSizeReference(SizeReference object) {
+ return createSizeReferenceAdapter();
+ }
+
+ @Override
+ public Adapter caseOffset(Offset object) {
+ return createOffsetAdapter();
+ }
+
+ @Override
+ public Adapter caseAreaOperator(AreaOperator object) {
+ return createAreaOperatorAdapter();
+ }
+
+ @Override
+ public Adapter caseIsDisplayed(IsDisplayed object) {
+ return createIsDisplayedAdapter();
+ }
+
+ @Override
+ public Adapter caseDisplayingContent(DisplayingContent object) {
+ return createDisplayingContentAdapter();
+ }
+
+ @Override
+ public Adapter caseIsHidden(IsHidden object) {
+ return createIsHiddenAdapter();
+ }
+
+ @Override
+ public Adapter caseViewContentOperator(ViewContentOperator object) {
+ return createViewContentOperatorAdapter();
+ }
+
+ @Override
+ public Adapter caseIsVisible(IsVisible object) {
+ return createIsVisibleAdapter();
+ }
+
+ @Override
+ public Adapter caseAllInstanceOfArea(AllInstanceOfArea object) {
+ return createAllInstanceOfAreaAdapter();
+ }
+
+ @Override
+ public Adapter caseAllInstanceOfViewContent(AllInstanceOfViewContent object) {
+ return createAllInstanceOfViewContentAdapter();
+ }
+
+ @Override
+ public Adapter caseIsDisplayedOn(IsDisplayedOn object) {
+ return createIsDisplayedOnAdapter();
+ }
+
+ @Override
+ public Adapter caseIsChangedDisplay(IsChangedDisplay object) {
+ return createIsChangedDisplayAdapter();
+ }
+
+ @Override
+ public Adapter caseIsTranslatedViewTo(IsTranslatedViewTo object) {
+ return createIsTranslatedViewToAdapter();
+ }
+
+ @Override
+ public Adapter caseHideLowerPriority(HideLowerPriority object) {
+ return createHideLowerPriorityAdapter();
+ }
+
+ @Override
+ public Adapter caseModelElement(ModelElement object) {
+ return createModelElementAdapter();
+ }
+
+ @Override
+ public Adapter caseNamedElement(NamedElement object) {
+ return createNamedElementAdapter();
+ }
+
+ @Override
+ public Adapter casePackagableElement(PackagableElement object) {
+ return createPackagableElementAdapter();
+ }
+
+ @Override
+ public Adapter caseRuleObject(RuleObject object) {
+ return createRuleObjectAdapter();
+ }
+
+ @Override
+ public Adapter caseAbstractContent(AbstractContent object) {
+ return createAbstractContentAdapter();
+ }
+
+ @Override
+ public Adapter caseContent(Content object) {
+ return createContentAdapter();
+ }
+
+ @Override
+ public Adapter caseContentSet(ContentSet object) {
+ return createContentSetAdapter();
+ }
+
+ @Override
+ public Adapter caseContentState(ContentState object) {
+ return createContentStateAdapter();
+ }
+
+ @Override
+ public Adapter caseAbstractAllocatable(AbstractAllocatable object) {
+ return createAbstractAllocatableAdapter();
+ }
+
+ @Override
+ public Adapter caseAllocatable(Allocatable object) {
+ return createAllocatableAdapter();
+ }
+
+ @Override
+ public Adapter caseAllocatableSet(AllocatableSet object) {
+ return createAllocatableSetAdapter();
+ }
+
+ @Override
+ public Adapter caseExpression(Expression object) {
+ return createExpressionAdapter();
+ }
+
+ @Override
+ public Adapter caseOperator(Operator object) {
+ return createOperatorAdapter();
+ }
+
+ @Override
+ public Adapter caseAllocatableOperator(AllocatableOperator object) {
+ return createAllocatableOperatorAdapter();
+ }
+
+ @Override
+ public Adapter caseContentOperator(ContentOperator object) {
+ return createContentOperatorAdapter();
+ }
+
+ @Override
+ public Adapter caseSetExpression(SetExpression object) {
+ return createSetExpressionAdapter();
+ }
+
+ @Override
+ public Adapter caseSugarExpression(SugarExpression object) {
+ return createSugarExpressionAdapter();
+ }
+
+ @Override
+ public Adapter caseSugarExpressionBase(SugarExpressionBase object) {
+ return createSugarExpressionBaseAdapter();
+ }
+
+ @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 rba.view.ViewContent <em>View Content</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 rba.view.ViewContent
+ * @generated
+ */
+ public Adapter createViewContentAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.view.ViewContentSet <em>View Content Set</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 rba.view.ViewContentSet
+ * @generated
+ */
+ public Adapter createViewContentSetAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.view.ViewContentState <em>View Content State</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 rba.view.ViewContentState
+ * @generated
+ */
+ public Adapter createViewContentStateAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.view.LayoutManager <em>Layout Manager</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 rba.view.LayoutManager
+ * @generated
+ */
+ public Adapter createLayoutManagerAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.view.AlignedLayout <em>Aligned Layout</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 rba.view.AlignedLayout
+ * @generated
+ */
+ public Adapter createAlignedLayoutAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.view.VerticalLayout <em>Vertical Layout</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 rba.view.VerticalLayout
+ * @generated
+ */
+ public Adapter createVerticalLayoutAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.view.HorizontalLayout <em>Horizontal Layout</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 rba.view.HorizontalLayout
+ * @generated
+ */
+ public Adapter createHorizontalLayoutAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.view.FixedPositionLayout <em>Fixed Position Layout</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 rba.view.FixedPositionLayout
+ * @generated
+ */
+ public Adapter createFixedPositionLayoutAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.view.PositionContainer <em>Position Container</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 rba.view.PositionContainer
+ * @generated
+ */
+ public Adapter createPositionContainerAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.view.Display <em>Display</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 rba.view.Display
+ * @generated
+ */
+ public Adapter createDisplayAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.view.CompositeArea <em>Composite Area</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 rba.view.CompositeArea
+ * @generated
+ */
+ public Adapter createCompositeAreaAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.view.Area <em>Area</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 rba.view.Area
+ * @generated
+ */
+ public Adapter createAreaAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.view.AreaSet <em>Area Set</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 rba.view.AreaSet
+ * @generated
+ */
+ public Adapter createAreaSetAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.view.SizeIdentifier <em>Size Identifier</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 rba.view.SizeIdentifier
+ * @generated
+ */
+ public Adapter createSizeIdentifierAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.view.Size <em>Size</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 rba.view.Size
+ * @generated
+ */
+ public Adapter createSizeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.view.SizeReference <em>Size Reference</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 rba.view.SizeReference
+ * @generated
+ */
+ public Adapter createSizeReferenceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.view.Offset <em>Offset</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 rba.view.Offset
+ * @generated
+ */
+ public Adapter createOffsetAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.view.AreaOperator <em>Area Operator</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 rba.view.AreaOperator
+ * @generated
+ */
+ public Adapter createAreaOperatorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.view.IsDisplayed <em>Is Displayed</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 rba.view.IsDisplayed
+ * @generated
+ */
+ public Adapter createIsDisplayedAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.view.DisplayingContent <em>Displaying Content</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 rba.view.DisplayingContent
+ * @generated
+ */
+ public Adapter createDisplayingContentAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.view.IsHidden <em>Is Hidden</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 rba.view.IsHidden
+ * @generated
+ */
+ public Adapter createIsHiddenAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.view.ViewContentOperator <em>View Content Operator</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 rba.view.ViewContentOperator
+ * @generated
+ */
+ public Adapter createViewContentOperatorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.view.IsVisible <em>Is Visible</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 rba.view.IsVisible
+ * @generated
+ */
+ public Adapter createIsVisibleAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.view.AllInstanceOfArea <em>All Instance Of Area</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 rba.view.AllInstanceOfArea
+ * @generated
+ */
+ public Adapter createAllInstanceOfAreaAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.view.AllInstanceOfViewContent <em>All Instance Of View Content</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 rba.view.AllInstanceOfViewContent
+ * @generated
+ */
+ public Adapter createAllInstanceOfViewContentAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.view.IsDisplayedOn <em>Is Displayed On</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 rba.view.IsDisplayedOn
+ * @generated
+ */
+ public Adapter createIsDisplayedOnAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.view.IsChangedDisplay <em>Is Changed Display</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 rba.view.IsChangedDisplay
+ * @generated
+ */
+ public Adapter createIsChangedDisplayAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.view.IsTranslatedViewTo <em>Is Translated View To</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 rba.view.IsTranslatedViewTo
+ * @generated
+ */
+ public Adapter createIsTranslatedViewToAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.view.HideLowerPriority <em>Hide Lower Priority</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 rba.view.HideLowerPriority
+ * @generated
+ */
+ public Adapter createHideLowerPriorityAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.ModelElement <em>Model 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 rba.core.ModelElement
+ * @generated
+ */
+ public Adapter createModelElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.NamedElement <em>Named 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 rba.core.NamedElement
+ * @generated
+ */
+ public Adapter createNamedElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.PackagableElement <em>Packagable 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 rba.core.PackagableElement
+ * @generated
+ */
+ public Adapter createPackagableElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.RuleObject <em>Rule Object</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 rba.core.RuleObject
+ * @generated
+ */
+ public Adapter createRuleObjectAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.AbstractContent <em>Abstract Content</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 rba.core.AbstractContent
+ * @generated
+ */
+ public Adapter createAbstractContentAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.Content <em>Content</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 rba.core.Content
+ * @generated
+ */
+ public Adapter createContentAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.ContentSet <em>Content Set</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 rba.core.ContentSet
+ * @generated
+ */
+ public Adapter createContentSetAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.ContentState <em>Content State</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 rba.core.ContentState
+ * @generated
+ */
+ public Adapter createContentStateAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.AbstractAllocatable <em>Abstract Allocatable</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 rba.core.AbstractAllocatable
+ * @generated
+ */
+ public Adapter createAbstractAllocatableAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.Allocatable <em>Allocatable</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 rba.core.Allocatable
+ * @generated
+ */
+ public Adapter createAllocatableAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.AllocatableSet <em>Allocatable Set</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 rba.core.AllocatableSet
+ * @generated
+ */
+ public Adapter createAllocatableSetAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.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 rba.core.Expression
+ * @generated
+ */
+ public Adapter createExpressionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.Operator <em>Operator</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 rba.core.Operator
+ * @generated
+ */
+ public Adapter createOperatorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.AllocatableOperator <em>Allocatable Operator</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 rba.core.AllocatableOperator
+ * @generated
+ */
+ public Adapter createAllocatableOperatorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.ContentOperator <em>Content Operator</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 rba.core.ContentOperator
+ * @generated
+ */
+ public Adapter createContentOperatorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.SetExpression <em>Set 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 rba.core.SetExpression
+ * @generated
+ */
+ public Adapter createSetExpressionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.SugarExpression <em>Sugar 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 rba.core.SugarExpression
+ * @generated
+ */
+ public Adapter createSugarExpressionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.SugarExpressionBase <em>Sugar Expression Base</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 rba.core.SugarExpressionBase
+ * @generated
+ */
+ public Adapter createSugarExpressionBaseAdapter() {
+ 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;
+ }
+
+} // RBAViewAdapterFactory
diff --git a/rba.model.view/src/rba/view/util/RBAViewSwitch.java b/rba.model.view/src/rba/view/util/RBAViewSwitch.java
new file mode 100644
index 0000000..ec7052d
--- /dev/null
+++ b/rba.model.view/src/rba/view/util/RBAViewSwitch.java
@@ -0,0 +1,1107 @@
+/**
+ */
+package rba.view.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import rba.core.AbstractAllocatable;
+import rba.core.AbstractContent;
+import rba.core.Allocatable;
+import rba.core.AllocatableOperator;
+import rba.core.AllocatableSet;
+import rba.core.Content;
+import rba.core.ContentOperator;
+import rba.core.ContentSet;
+import rba.core.ContentState;
+import rba.core.Expression;
+import rba.core.ModelElement;
+import rba.core.NamedElement;
+import rba.core.Operator;
+import rba.core.PackagableElement;
+import rba.core.RuleObject;
+import rba.core.SetExpression;
+
+import rba.core.SugarExpression;
+import rba.core.SugarExpressionBase;
+import rba.view.*;
+
+/**
+ * <!-- 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 rba.view.RBAViewPackage
+ * @generated
+ */
+public class RBAViewSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected static RBAViewPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public RBAViewSwitch() {
+ if (modelPackage == null) {
+ modelPackage = RBAViewPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @param 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 RBAViewPackage.VIEW_CONTENT: {
+ ViewContent viewContent = (ViewContent) theEObject;
+ T result = caseViewContent(viewContent);
+ if (result == null)
+ result = caseContent(viewContent);
+ if (result == null)
+ result = caseAbstractContent(viewContent);
+ if (result == null)
+ result = caseRuleObject(viewContent);
+ if (result == null)
+ result = casePackagableElement(viewContent);
+ if (result == null)
+ result = caseNamedElement(viewContent);
+ if (result == null)
+ result = caseModelElement(viewContent);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBAViewPackage.VIEW_CONTENT_SET: {
+ ViewContentSet viewContentSet = (ViewContentSet) theEObject;
+ T result = caseViewContentSet(viewContentSet);
+ if (result == null)
+ result = caseContentSet(viewContentSet);
+ if (result == null)
+ result = caseAbstractContent(viewContentSet);
+ if (result == null)
+ result = caseRuleObject(viewContentSet);
+ if (result == null)
+ result = casePackagableElement(viewContentSet);
+ if (result == null)
+ result = caseNamedElement(viewContentSet);
+ if (result == null)
+ result = caseModelElement(viewContentSet);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBAViewPackage.VIEW_CONTENT_STATE: {
+ ViewContentState viewContentState = (ViewContentState) theEObject;
+ T result = caseViewContentState(viewContentState);
+ if (result == null)
+ result = caseContentState(viewContentState);
+ if (result == null)
+ result = caseRuleObject(viewContentState);
+ if (result == null)
+ result = casePackagableElement(viewContentState);
+ if (result == null)
+ result = caseNamedElement(viewContentState);
+ if (result == null)
+ result = caseModelElement(viewContentState);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBAViewPackage.LAYOUT_MANAGER: {
+ LayoutManager layoutManager = (LayoutManager) theEObject;
+ T result = caseLayoutManager(layoutManager);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBAViewPackage.ALIGNED_LAYOUT: {
+ AlignedLayout alignedLayout = (AlignedLayout) theEObject;
+ T result = caseAlignedLayout(alignedLayout);
+ if (result == null)
+ result = caseLayoutManager(alignedLayout);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBAViewPackage.VERTICAL_LAYOUT: {
+ VerticalLayout verticalLayout = (VerticalLayout) theEObject;
+ T result = caseVerticalLayout(verticalLayout);
+ if (result == null)
+ result = caseAlignedLayout(verticalLayout);
+ if (result == null)
+ result = caseLayoutManager(verticalLayout);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBAViewPackage.HORIZONTAL_LAYOUT: {
+ HorizontalLayout horizontalLayout = (HorizontalLayout) theEObject;
+ T result = caseHorizontalLayout(horizontalLayout);
+ if (result == null)
+ result = caseAlignedLayout(horizontalLayout);
+ if (result == null)
+ result = caseLayoutManager(horizontalLayout);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBAViewPackage.FIXED_POSITION_LAYOUT: {
+ FixedPositionLayout fixedPositionLayout = (FixedPositionLayout) theEObject;
+ T result = caseFixedPositionLayout(fixedPositionLayout);
+ if (result == null)
+ result = caseLayoutManager(fixedPositionLayout);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBAViewPackage.POSITION_CONTAINER: {
+ PositionContainer positionContainer = (PositionContainer) theEObject;
+ T result = casePositionContainer(positionContainer);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBAViewPackage.DISPLAY: {
+ Display display = (Display) theEObject;
+ T result = caseDisplay(display);
+ if (result == null)
+ result = casePackagableElement(display);
+ if (result == null)
+ result = caseNamedElement(display);
+ if (result == null)
+ result = caseModelElement(display);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBAViewPackage.COMPOSITE_AREA: {
+ CompositeArea compositeArea = (CompositeArea) theEObject;
+ T result = caseCompositeArea(compositeArea);
+ if (result == null)
+ result = casePackagableElement(compositeArea);
+ if (result == null)
+ result = caseNamedElement(compositeArea);
+ if (result == null)
+ result = caseModelElement(compositeArea);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBAViewPackage.AREA: {
+ Area area = (Area) theEObject;
+ T result = caseArea(area);
+ if (result == null)
+ result = caseAllocatable(area);
+ if (result == null)
+ result = caseAbstractAllocatable(area);
+ if (result == null)
+ result = caseRuleObject(area);
+ if (result == null)
+ result = casePackagableElement(area);
+ if (result == null)
+ result = caseNamedElement(area);
+ if (result == null)
+ result = caseModelElement(area);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBAViewPackage.AREA_SET: {
+ AreaSet areaSet = (AreaSet) theEObject;
+ T result = caseAreaSet(areaSet);
+ if (result == null)
+ result = caseAllocatableSet(areaSet);
+ if (result == null)
+ result = caseAbstractAllocatable(areaSet);
+ if (result == null)
+ result = caseRuleObject(areaSet);
+ if (result == null)
+ result = casePackagableElement(areaSet);
+ if (result == null)
+ result = caseNamedElement(areaSet);
+ if (result == null)
+ result = caseModelElement(areaSet);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBAViewPackage.SIZE_IDENTIFIER: {
+ SizeIdentifier sizeIdentifier = (SizeIdentifier) theEObject;
+ T result = caseSizeIdentifier(sizeIdentifier);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBAViewPackage.SIZE: {
+ Size size = (Size) theEObject;
+ T result = caseSize(size);
+ if (result == null)
+ result = casePackagableElement(size);
+ if (result == null)
+ result = caseSizeIdentifier(size);
+ if (result == null)
+ result = caseNamedElement(size);
+ if (result == null)
+ result = caseModelElement(size);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBAViewPackage.SIZE_REFERENCE: {
+ SizeReference sizeReference = (SizeReference) theEObject;
+ T result = caseSizeReference(sizeReference);
+ if (result == null)
+ result = caseSizeIdentifier(sizeReference);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBAViewPackage.OFFSET: {
+ Offset offset = (Offset) theEObject;
+ T result = caseOffset(offset);
+ if (result == null)
+ result = casePackagableElement(offset);
+ if (result == null)
+ result = caseNamedElement(offset);
+ if (result == null)
+ result = caseModelElement(offset);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBAViewPackage.AREA_OPERATOR: {
+ AreaOperator areaOperator = (AreaOperator) theEObject;
+ T result = caseAreaOperator(areaOperator);
+ if (result == null)
+ result = caseAllocatableOperator(areaOperator);
+ if (result == null)
+ result = caseOperator(areaOperator);
+ if (result == null)
+ result = caseExpression(areaOperator);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBAViewPackage.IS_DISPLAYED: {
+ IsDisplayed isDisplayed = (IsDisplayed) theEObject;
+ T result = caseIsDisplayed(isDisplayed);
+ if (result == null)
+ result = caseAreaOperator(isDisplayed);
+ if (result == null)
+ result = caseAllocatableOperator(isDisplayed);
+ if (result == null)
+ result = caseOperator(isDisplayed);
+ if (result == null)
+ result = caseExpression(isDisplayed);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBAViewPackage.DISPLAYING_CONTENT: {
+ DisplayingContent displayingContent = (DisplayingContent) theEObject;
+ T result = caseDisplayingContent(displayingContent);
+ if (result == null)
+ result = caseAreaOperator(displayingContent);
+ if (result == null)
+ result = caseAllocatableOperator(displayingContent);
+ if (result == null)
+ result = caseOperator(displayingContent);
+ if (result == null)
+ result = caseExpression(displayingContent);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBAViewPackage.IS_HIDDEN: {
+ IsHidden isHidden = (IsHidden) theEObject;
+ T result = caseIsHidden(isHidden);
+ if (result == null)
+ result = caseAreaOperator(isHidden);
+ if (result == null)
+ result = caseAllocatableOperator(isHidden);
+ if (result == null)
+ result = caseOperator(isHidden);
+ if (result == null)
+ result = caseExpression(isHidden);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBAViewPackage.VIEW_CONTENT_OPERATOR: {
+ ViewContentOperator viewContentOperator = (ViewContentOperator) theEObject;
+ T result = caseViewContentOperator(viewContentOperator);
+ if (result == null)
+ result = caseContentOperator(viewContentOperator);
+ if (result == null)
+ result = caseOperator(viewContentOperator);
+ if (result == null)
+ result = caseExpression(viewContentOperator);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBAViewPackage.IS_VISIBLE: {
+ IsVisible isVisible = (IsVisible) theEObject;
+ T result = caseIsVisible(isVisible);
+ if (result == null)
+ result = caseViewContentOperator(isVisible);
+ if (result == null)
+ result = caseContentOperator(isVisible);
+ if (result == null)
+ result = caseOperator(isVisible);
+ if (result == null)
+ result = caseExpression(isVisible);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBAViewPackage.ALL_INSTANCE_OF_AREA: {
+ AllInstanceOfArea allInstanceOfArea = (AllInstanceOfArea) theEObject;
+ T result = caseAllInstanceOfArea(allInstanceOfArea);
+ if (result == null)
+ result = caseSetExpression(allInstanceOfArea);
+ if (result == null)
+ result = caseExpression(allInstanceOfArea);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBAViewPackage.ALL_INSTANCE_OF_VIEW_CONTENT: {
+ AllInstanceOfViewContent allInstanceOfViewContent = (AllInstanceOfViewContent) theEObject;
+ T result = caseAllInstanceOfViewContent(allInstanceOfViewContent);
+ if (result == null)
+ result = caseSetExpression(allInstanceOfViewContent);
+ if (result == null)
+ result = caseExpression(allInstanceOfViewContent);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBAViewPackage.IS_DISPLAYED_ON: {
+ IsDisplayedOn isDisplayedOn = (IsDisplayedOn) theEObject;
+ T result = caseIsDisplayedOn(isDisplayedOn);
+ if (result == null)
+ result = caseViewContentOperator(isDisplayedOn);
+ if (result == null)
+ result = caseSugarExpressionBase(isDisplayedOn);
+ if (result == null)
+ result = caseContentOperator(isDisplayedOn);
+ if (result == null)
+ result = caseSugarExpression(isDisplayedOn);
+ if (result == null)
+ result = caseOperator(isDisplayedOn);
+ if (result == null)
+ result = caseExpression(isDisplayedOn);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBAViewPackage.IS_CHANGED_DISPLAY: {
+ IsChangedDisplay isChangedDisplay = (IsChangedDisplay) theEObject;
+ T result = caseIsChangedDisplay(isChangedDisplay);
+ if (result == null)
+ result = caseAreaOperator(isChangedDisplay);
+ if (result == null)
+ result = caseSugarExpressionBase(isChangedDisplay);
+ if (result == null)
+ result = caseAllocatableOperator(isChangedDisplay);
+ if (result == null)
+ result = caseSugarExpression(isChangedDisplay);
+ if (result == null)
+ result = caseOperator(isChangedDisplay);
+ if (result == null)
+ result = caseExpression(isChangedDisplay);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBAViewPackage.IS_TRANSLATED_VIEW_TO: {
+ IsTranslatedViewTo isTranslatedViewTo = (IsTranslatedViewTo) theEObject;
+ T result = caseIsTranslatedViewTo(isTranslatedViewTo);
+ if (result == null)
+ result = caseAreaOperator(isTranslatedViewTo);
+ if (result == null)
+ result = caseSugarExpressionBase(isTranslatedViewTo);
+ if (result == null)
+ result = caseAllocatableOperator(isTranslatedViewTo);
+ if (result == null)
+ result = caseSugarExpression(isTranslatedViewTo);
+ if (result == null)
+ result = caseOperator(isTranslatedViewTo);
+ if (result == null)
+ result = caseExpression(isTranslatedViewTo);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case RBAViewPackage.HIDE_LOWER_PRIORITY: {
+ HideLowerPriority hideLowerPriority = (HideLowerPriority) theEObject;
+ T result = caseHideLowerPriority(hideLowerPriority);
+ if (result == null)
+ result = caseOperator(hideLowerPriority);
+ if (result == null)
+ result = caseSugarExpressionBase(hideLowerPriority);
+ if (result == null)
+ result = caseExpression(hideLowerPriority);
+ if (result == null)
+ result = caseSugarExpression(hideLowerPriority);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ default:
+ return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>View Content</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>View Content</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseViewContent(ViewContent object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>View Content Set</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>View Content Set</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseViewContentSet(ViewContentSet object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>View Content State</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>View Content State</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseViewContentState(ViewContentState object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Layout Manager</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>Layout Manager</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLayoutManager(LayoutManager object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Aligned Layout</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>Aligned Layout</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAlignedLayout(AlignedLayout object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Vertical Layout</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>Vertical Layout</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseVerticalLayout(VerticalLayout object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Horizontal Layout</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>Horizontal Layout</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseHorizontalLayout(HorizontalLayout object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Fixed Position Layout</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>Fixed Position Layout</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseFixedPositionLayout(FixedPositionLayout object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Position Container</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>Position Container</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePositionContainer(PositionContainer object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Display</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>Display</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDisplay(Display object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Composite Area</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>Composite Area</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCompositeArea(CompositeArea object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Area</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>Area</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseArea(Area object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Area Set</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>Area Set</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAreaSet(AreaSet object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Size Identifier</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>Size Identifier</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSizeIdentifier(SizeIdentifier object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Size</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>Size</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSize(Size object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Size Reference</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>Size Reference</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSizeReference(SizeReference object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Offset</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>Offset</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseOffset(Offset object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Area Operator</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>Area Operator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAreaOperator(AreaOperator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Is Displayed</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 Displayed</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIsDisplayed(IsDisplayed object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Displaying Content</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>Displaying Content</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDisplayingContent(DisplayingContent object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Is Hidden</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 Hidden</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIsHidden(IsHidden object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>View Content Operator</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>View Content Operator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseViewContentOperator(ViewContentOperator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Is Visible</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 Visible</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIsVisible(IsVisible object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>All Instance Of Area</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>All Instance Of Area</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAllInstanceOfArea(AllInstanceOfArea object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>All Instance Of View Content</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>All Instance Of View Content</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAllInstanceOfViewContent(AllInstanceOfViewContent object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Is Displayed On</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 Displayed On</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIsDisplayedOn(IsDisplayedOn object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Is Changed Display</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 Changed Display</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIsChangedDisplay(IsChangedDisplay object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Is Translated View To</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 Translated View To</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIsTranslatedViewTo(IsTranslatedViewTo object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Hide Lower Priority</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>Hide Lower Priority</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseHideLowerPriority(HideLowerPriority object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Model 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>Model Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseModelElement(ModelElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Named 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>Named Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseNamedElement(NamedElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Packagable 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>Packagable Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePackagableElement(PackagableElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Rule Object</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>Rule Object</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseRuleObject(RuleObject object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Abstract Content</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>Abstract Content</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAbstractContent(AbstractContent object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Content</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>Content</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseContent(Content object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Content Set</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>Content Set</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseContentSet(ContentSet object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Content State</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>Content State</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseContentState(ContentState object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Abstract Allocatable</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>Abstract Allocatable</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAbstractAllocatable(AbstractAllocatable object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Allocatable</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>Allocatable</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAllocatable(Allocatable object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Allocatable Set</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>Allocatable Set</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAllocatableSet(AllocatableSet 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>Operator</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>Operator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseOperator(Operator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Allocatable Operator</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>Allocatable Operator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAllocatableOperator(AllocatableOperator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Content Operator</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>Content Operator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseContentOperator(ContentOperator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Set 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>Set Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSetExpression(SetExpression object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Sugar 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>Sugar Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSugarExpression(SugarExpression object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Sugar Expression Base</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>Sugar Expression Base</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSugarExpressionBase(SugarExpressionBase 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;
+ }
+
+} // RBAViewSwitch
diff --git a/rba.tool.core/.classpath b/rba.tool.core/.classpath
new file mode 100644
index 0000000..257c551
--- /dev/null
+++ b/rba.tool.core/.classpath
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry exported="true" kind="lib" path="icons/"/>
+ <classpathentry kind="lib" path="lib32/z3/com.microsoft.z3.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/groovy-all-2.4.12-indy.jar"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="lib" path="lib/z3/com.microsoft.z3.jar"/>
+ <classpathentry exported="true" kind="con" path="org.eclipse.jdt.USER_LIBRARY/Z3">
+ <attributes>
+ <attribute name="org.eclipse.jdt.launching.CLASSPATH_ATTR_LIBRARY_PATH_ENTRY" value="rba.tool.core/lib/z3"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/rba.tool.core/.project b/rba.tool.core/.project
new file mode 100644
index 0000000..563d4b5
--- /dev/null
+++ b/rba.tool.core/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>rba.tool.core</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>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/rba.tool.core/.settings/org.eclipse.jdt.core.prefs b/rba.tool.core/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..0c68a61
--- /dev/null
+++ b/rba.tool.core/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/rba.tool.core/META-INF/MANIFEST.MF b/rba.tool.core/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..8ced0f4
--- /dev/null
+++ b/rba.tool.core/META-INF/MANIFEST.MF
@@ -0,0 +1,36 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-SymbolicName: rba.tool.core;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-Activator: rba.tool.core.Activator
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.core.resources;bundle-version="3.12.0";visibility:=reexport,
+ org.eclipse.emf.ecore.xmi;bundle-version="2.13.0",
+ org.eclipse.emf.workspace;bundle-version="1.5.1",
+ rba.tool.editor.ui,
+ org.eclipse.xtext.ui,
+ org.eclipse.emf.ecore,
+ org.eclipse.xtext,
+ org.eclipse.core.expressions,
+ rba.model.view;visibility:=reexport,
+ org.apache.commons.lang3
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-ActivationPolicy: lazy
+Export-Package: rba.tool.core.console,
+ rba.tool.core.constraint,
+ rba.tool.core.marker,
+ rba.tool.core.sort,
+ rba.tool.core.ui,
+ rba.tool.core.util,
+ rba.tool.core.util.data,
+ rba.tool.core.z3
+Bundle-ClassPath: lib/groovy-all-2.4.12-indy.jar,
+ .,
+ lib/z3/com.microsoft.z3.jar,
+ lib32/z3/com.microsoft.z3.jar,
+ icons/
+Import-Package: org.eclipse.ui.console
diff --git a/rba.tool.core/build.properties b/rba.tool.core/build.properties
new file mode 100644
index 0000000..1eac25e
--- /dev/null
+++ b/rba.tool.core/build.properties
@@ -0,0 +1,11 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ lib/,\
+ plugin.xml,\
+ build.properties,\
+ plugin.properties,\
+ lib32/,\
+ icons/
+javacDefaultEncoding.. = UTF-8
diff --git a/rba.tool.core/icons/info.png b/rba.tool.core/icons/info.png
new file mode 100644
index 0000000..c97f287
--- /dev/null
+++ b/rba.tool.core/icons/info.png
Binary files differ
diff --git a/rba.tool.core/icons/rba.gif b/rba.tool.core/icons/rba.gif
new file mode 100644
index 0000000..dcabada
--- /dev/null
+++ b/rba.tool.core/icons/rba.gif
Binary files differ
diff --git a/rba.tool.core/icons/rbaSim.gif b/rba.tool.core/icons/rbaSim.gif
new file mode 100644
index 0000000..6523099
--- /dev/null
+++ b/rba.tool.core/icons/rbaSim.gif
Binary files differ
diff --git a/rba.tool.core/lib/groovy-all-2.4.12-indy.jar b/rba.tool.core/lib/groovy-all-2.4.12-indy.jar
new file mode 100644
index 0000000..bb246a3
--- /dev/null
+++ b/rba.tool.core/lib/groovy-all-2.4.12-indy.jar
Binary files differ
diff --git a/rba.tool.core/lib/z3/JavaExample.java b/rba.tool.core/lib/z3/JavaExample.java
new file mode 100644
index 0000000..8faa94c
--- /dev/null
+++ b/rba.tool.core/lib/z3/JavaExample.java
@@ -0,0 +1,2400 @@
+/*++
+ Copyright (c) 2012 Microsoft Corporation
+Module Name:
+ Program.java
+Abstract:
+ Z3 Java API: Example program
+Author:
+ Christoph Wintersteiger (cwinter) 2012-11-27
+Notes:
+
+--*/
+
+package rba.tool.simulator.constraint.handlers;
+
+import java.util.*;
+
+import com.microsoft.z3.*;
+
+class JavaExample
+{
+ @SuppressWarnings("serial")
+ class TestFailedException extends Exception
+ {
+ public TestFailedException()
+ {
+ super("Check FAILED");
+ }
+ };
+
+ // / Create axiom: function f is injective in the i-th argument.
+
+ // / <remarks>
+ // / The following axiom is produced:
+ // / <code>
+ // / forall (x_0, ..., x_n) finv(f(x_0, ..., x_i, ..., x_{n-1})) = x_i
+ // / </code>
+ // / Where, <code>finv</code>is a fresh function declaration.
+
+ public BoolExpr injAxiom(Context ctx, FuncDecl f, int i)
+ {
+ Sort[] domain = f.getDomain();
+ int sz = f.getDomainSize();
+
+ if (i >= sz)
+ {
+ System.out.println("failed to create inj axiom");
+ return null;
+ }
+
+ /* declare the i-th inverse of f: finv */
+ Sort finv_domain = f.getRange();
+ Sort finv_range = domain[i];
+ FuncDecl finv = ctx.mkFuncDecl("f_fresh", finv_domain, finv_range);
+
+ /* allocate temporary arrays */
+ Expr[] xs = new Expr[sz];
+ Symbol[] names = new Symbol[sz];
+ Sort[] types = new Sort[sz];
+
+ /* fill types, names and xs */
+
+ for (int j = 0; j < sz; j++)
+ {
+ types[j] = domain[j];
+ names[j] = ctx.mkSymbol("x_" + Integer.toString(j));
+ xs[j] = ctx.mkBound(j, types[j]);
+ }
+ Expr x_i = xs[i];
+
+ /* create f(x_0, ..., x_i, ..., x_{n-1}) */
+ Expr fxs = f.apply(xs);
+
+ /* create f_inv(f(x_0, ..., x_i, ..., x_{n-1})) */
+ Expr finv_fxs = finv.apply(fxs);
+
+ /* create finv(f(x_0, ..., x_i, ..., x_{n-1})) = x_i */
+ Expr eq = ctx.mkEq(finv_fxs, x_i);
+
+ /* use f(x_0, ..., x_i, ..., x_{n-1}) as the pattern for the quantifier */
+ Pattern p = ctx.mkPattern(fxs);
+
+ /* create & assert quantifier */
+ BoolExpr q = ctx.mkForall(types, /* types of quantified variables */
+ names, /* names of quantified variables */
+ eq, 1, new Pattern[] { p } /* patterns */, null, null, null);
+
+ return q;
+ }
+
+ // / Create axiom: function f is injective in the i-th argument.
+
+ // / <remarks>
+ // / The following axiom is produced:
+ // / <code>
+ // / forall (x_0, ..., x_n) finv(f(x_0, ..., x_i, ..., x_{n-1})) = x_i
+ // / </code>
+ // / Where, <code>finv</code>is a fresh function declaration.
+
+ public BoolExpr injAxiomAbs(Context ctx, FuncDecl f, int i)
+ {
+ Sort[] domain = f.getDomain();
+ int sz = f.getDomainSize();
+
+ if (i >= sz)
+ {
+ System.out.println("failed to create inj axiom");
+ return null;
+ }
+
+ /* declare the i-th inverse of f: finv */
+ Sort finv_domain = f.getRange();
+ Sort finv_range = domain[i];
+ FuncDecl finv = ctx.mkFuncDecl("f_fresh", finv_domain, finv_range);
+
+ /* allocate temporary arrays */
+ Expr[] xs = new Expr[sz];
+
+ /* fill types, names and xs */
+ for (int j = 0; j < sz; j++)
+ {
+ xs[j] = ctx.mkConst("x_" + Integer.toString(j), domain[j]);
+ }
+ Expr x_i = xs[i];
+
+ /* create f(x_0, ..., x_i, ..., x_{n-1}) */
+ Expr fxs = f.apply(xs);
+
+ /* create f_inv(f(x_0, ..., x_i, ..., x_{n-1})) */
+ Expr finv_fxs = finv.apply(fxs);
+
+ /* create finv(f(x_0, ..., x_i, ..., x_{n-1})) = x_i */
+ Expr eq = ctx.mkEq(finv_fxs, x_i);
+
+ /* use f(x_0, ..., x_i, ..., x_{n-1}) as the pattern for the quantifier */
+ Pattern p = ctx.mkPattern(fxs);
+
+ /* create & assert quantifier */
+ BoolExpr q = ctx.mkForall(xs, /* types of quantified variables */
+ eq, /* names of quantified variables */
+ 1, new Pattern[] { p } /* patterns */, null, null, null);
+
+ return q;
+ }
+
+ // / Assert the axiom: function f is commutative.
+
+ // / <remarks>
+ // / This example uses the SMT-LIB parser to simplify the axiom
+ // construction.
+ // / </remarks>
+ private BoolExpr commAxiom(Context ctx, FuncDecl f) throws Exception
+ {
+ Sort t = f.getRange();
+ Sort[] dom = f.getDomain();
+
+ if (dom.length != 2 || !t.equals(dom[0]) || !t.equals(dom[1]))
+ {
+ System.out.println(Integer.toString(dom.length) + " "
+ + dom[0].toString() + " " + dom[1].toString() + " "
+ + t.toString());
+ throw new Exception(
+ "function must be binary, and argument types must be equal to return type");
+ }
+
+ String bench = "(benchmark comm :formula (forall (x " + t.getName()
+ + ") (y " + t.getName() + ") (= (" + f.getName() + " x y) ("
+ + f.getName() + " y x))))";
+ ctx.parseSMTLIBString(bench, new Symbol[] { t.getName() },
+ new Sort[] { t }, new Symbol[] { f.getName() },
+ new FuncDecl[] { f });
+ return ctx.getSMTLIBFormulas()[0];
+ }
+
+ // / "Hello world" example: create a Z3 logical context, and delete it.
+
+ public void simpleExample()
+ {
+ System.out.println("SimpleExample");
+ Log.append("SimpleExample");
+
+ {
+ Context ctx = new Context();
+ /* do something with the context */
+
+ /* be kind to dispose manually and not wait for the GC. */
+ ctx.close();
+ }
+ }
+
+ Model check(Context ctx, BoolExpr f, Status sat) throws TestFailedException
+ {
+ Solver s = ctx.mkSolver();
+ s.add(f);
+ if (s.check() != sat)
+ throw new TestFailedException();
+ if (sat == Status.SATISFIABLE)
+ return s.getModel();
+ else
+ return null;
+ }
+
+ void solveTactical(Context ctx, Tactic t, Goal g, Status sat)
+ throws TestFailedException
+ {
+ Solver s = ctx.mkSolver(t);
+ System.out.println("\nTactical solver: " + s);
+
+ for (BoolExpr a : g.getFormulas())
+ s.add(a);
+ System.out.println("Solver: " + s);
+
+ if (s.check() != sat)
+ throw new TestFailedException();
+ }
+
+ ApplyResult applyTactic(Context ctx, Tactic t, Goal g)
+ {
+ System.out.println("\nGoal: " + g);
+
+ ApplyResult res = t.apply(g);
+ System.out.println("Application result: " + res);
+
+ Status q = Status.UNKNOWN;
+ for (Goal sg : res.getSubgoals())
+ if (sg.isDecidedSat())
+ q = Status.SATISFIABLE;
+ else if (sg.isDecidedUnsat())
+ q = Status.UNSATISFIABLE;
+
+ switch (q)
+ {
+ case UNKNOWN:
+ System.out.println("Tactic result: Undecided");
+ break;
+ case SATISFIABLE:
+ System.out.println("Tactic result: SAT");
+ break;
+ case UNSATISFIABLE:
+ System.out.println("Tactic result: UNSAT");
+ break;
+ }
+
+ return res;
+ }
+
+ void prove(Context ctx, BoolExpr f, boolean useMBQI) throws TestFailedException
+ {
+ BoolExpr[] assumptions = new BoolExpr[0];
+ prove(ctx, f, useMBQI, assumptions);
+ }
+
+ void prove(Context ctx, BoolExpr f, boolean useMBQI,
+ BoolExpr... assumptions) throws TestFailedException
+ {
+ System.out.println("Proving: " + f);
+ Solver s = ctx.mkSolver();
+ Params p = ctx.mkParams();
+ p.add("mbqi", useMBQI);
+ s.setParameters(p);
+ for (BoolExpr a : assumptions)
+ s.add(a);
+ s.add(ctx.mkNot(f));
+ Status q = s.check();
+
+ switch (q)
+ {
+ case UNKNOWN:
+ System.out.println("Unknown because: " + s.getReasonUnknown());
+ break;
+ case SATISFIABLE:
+ throw new TestFailedException();
+ case UNSATISFIABLE:
+ System.out.println("OK, proof: " + s.getProof());
+ break;
+ }
+ }
+
+ void disprove(Context ctx, BoolExpr f, boolean useMBQI)
+ throws TestFailedException
+ {
+ BoolExpr[] a = {};
+ disprove(ctx, f, useMBQI, a);
+ }
+
+ void disprove(Context ctx, BoolExpr f, boolean useMBQI,
+ BoolExpr... assumptions) throws TestFailedException
+ {
+ System.out.println("Disproving: " + f);
+ Solver s = ctx.mkSolver();
+ Params p = ctx.mkParams();
+ p.add("mbqi", useMBQI);
+ s.setParameters(p);
+ for (BoolExpr a : assumptions)
+ s.add(a);
+ s.add(ctx.mkNot(f));
+ Status q = s.check();
+
+ switch (q)
+ {
+ case UNKNOWN:
+ System.out.println("Unknown because: " + s.getReasonUnknown());
+ break;
+ case SATISFIABLE:
+ System.out.println("OK, model: " + s.getModel());
+ break;
+ case UNSATISFIABLE:
+ throw new TestFailedException();
+ }
+ }
+
+ void modelConverterTest(Context ctx) throws TestFailedException
+ {
+ System.out.println("ModelConverterTest");
+
+ ArithExpr xr = (ArithExpr) ctx.mkConst(ctx.mkSymbol("x"),
+ ctx.mkRealSort());
+ ArithExpr yr = (ArithExpr) ctx.mkConst(ctx.mkSymbol("y"),
+ ctx.mkRealSort());
+ Goal g4 = ctx.mkGoal(true, false, false);
+ g4.add(ctx.mkGt(xr, ctx.mkReal(10, 1)));
+ g4.add(ctx.mkEq(yr, ctx.mkAdd(xr, ctx.mkReal(1, 1))));
+ g4.add(ctx.mkGt(yr, ctx.mkReal(1, 1)));
+
+ ApplyResult ar = applyTactic(ctx, ctx.mkTactic("simplify"), g4);
+ if (ar.getNumSubgoals() == 1
+ && (ar.getSubgoals()[0].isDecidedSat() || ar.getSubgoals()[0]
+ .isDecidedUnsat()))
+ throw new TestFailedException();
+
+ ar = applyTactic(ctx, ctx.andThen(ctx.mkTactic("simplify"),
+ ctx.mkTactic("solve-eqs")), g4);
+ if (ar.getNumSubgoals() == 1
+ && (ar.getSubgoals()[0].isDecidedSat() || ar.getSubgoals()[0]
+ .isDecidedUnsat()))
+ throw new TestFailedException();
+
+ Solver s = ctx.mkSolver();
+ for (BoolExpr e : ar.getSubgoals()[0].getFormulas())
+ s.add(e);
+ Status q = s.check();
+ System.out.println("Solver says: " + q);
+ System.out.println("Model: \n" + s.getModel());
+ System.out.println("Converted Model: \n"
+ + ar.convertModel(0, s.getModel()));
+ if (q != Status.SATISFIABLE)
+ throw new TestFailedException();
+ }
+
+ // / A simple array example.
+
+ void arrayExample1(Context ctx) throws TestFailedException
+ {
+ System.out.println("ArrayExample1");
+ Log.append("ArrayExample1");
+
+ Goal g = ctx.mkGoal(true, false, false);
+ ArraySort asort = ctx.mkArraySort(ctx.getIntSort(),
+ ctx.mkBitVecSort(32));
+ ArrayExpr aex = (ArrayExpr) ctx.mkConst(ctx.mkSymbol("MyArray"), asort);
+ Expr sel = ctx.mkSelect(aex, ctx.mkInt(0));
+ g.add(ctx.mkEq(sel, ctx.mkBV(42, 32)));
+ Symbol xs = ctx.mkSymbol("x");
+ IntExpr xc = (IntExpr) ctx.mkConst(xs, ctx.getIntSort());
+
+ Symbol fname = ctx.mkSymbol("f");
+ Sort[] domain = { ctx.getIntSort() };
+ FuncDecl fd = ctx.mkFuncDecl(fname, domain, ctx.getIntSort());
+ Expr[] fargs = { ctx.mkConst(xs, ctx.getIntSort()) };
+ IntExpr fapp = (IntExpr) ctx.mkApp(fd, fargs);
+
+ g.add(ctx.mkEq(ctx.mkAdd(xc, fapp), ctx.mkInt(123)));
+
+ Solver s = ctx.mkSolver();
+ for (BoolExpr a : g.getFormulas())
+ s.add(a);
+ System.out.println("Solver: " + s);
+
+ Status q = s.check();
+ System.out.println("Status: " + q);
+
+ if (q != Status.SATISFIABLE)
+ throw new TestFailedException();
+
+ System.out.println("Model = " + s.getModel());
+
+ System.out.println("Interpretation of MyArray:\n"
+ + s.getModel().getFuncInterp(aex.getFuncDecl()));
+ System.out.println("Interpretation of x:\n"
+ + s.getModel().getConstInterp(xc));
+ System.out.println("Interpretation of f:\n"
+ + s.getModel().getFuncInterp(fd));
+ System.out.println("Interpretation of MyArray as Term:\n"
+ + s.getModel().getFuncInterp(aex.getFuncDecl()));
+ }
+
+ // / Prove <tt>store(a1, i1, v1) = store(a2, i2, v2) implies (i1 = i3 or i2
+ // = i3 or select(a1, i3) = select(a2, i3))</tt>.
+
+ // / <remarks>This example demonstrates how to use the array
+ // theory.</remarks>
+ public void arrayExample2(Context ctx) throws TestFailedException
+ {
+ System.out.println("ArrayExample2");
+ Log.append("ArrayExample2");
+
+ Sort int_type = ctx.getIntSort();
+ Sort array_type = ctx.mkArraySort(int_type, int_type);
+
+ ArrayExpr a1 = (ArrayExpr) ctx.mkConst("a1", array_type);
+ ArrayExpr a2 = ctx.mkArrayConst("a2", int_type, int_type);
+ Expr i1 = ctx.mkConst("i1", int_type);
+ Expr i2 = ctx.mkConst("i2", int_type);
+ Expr i3 = ctx.mkConst("i3", int_type);
+ Expr v1 = ctx.mkConst("v1", int_type);
+ Expr v2 = ctx.mkConst("v2", int_type);
+
+ Expr st1 = ctx.mkStore(a1, i1, v1);
+ Expr st2 = ctx.mkStore(a2, i2, v2);
+
+ Expr sel1 = ctx.mkSelect(a1, i3);
+ Expr sel2 = ctx.mkSelect(a2, i3);
+
+ /* create antecedent */
+ BoolExpr antecedent = ctx.mkEq(st1, st2);
+
+ /*
+ * create consequent: i1 = i3 or i2 = i3 or select(a1, i3) = select(a2,
+ * i3)
+ */
+ BoolExpr consequent = ctx.mkOr(ctx.mkEq(i1, i3), ctx.mkEq(i2, i3),
+ ctx.mkEq(sel1, sel2));
+
+ /*
+ * prove store(a1, i1, v1) = store(a2, i2, v2) implies (i1 = i3 or i2 =
+ * i3 or select(a1, i3) = select(a2, i3))
+ */
+ BoolExpr thm = ctx.mkImplies(antecedent, consequent);
+ System.out
+ .println("prove: store(a1, i1, v1) = store(a2, i2, v2) implies (i1 = i3 or i2 = i3 or select(a1, i3) = select(a2, i3))");
+ System.out.println(thm);
+ prove(ctx, thm, false);
+ }
+
+ // / Show that <code>distinct(a_0, ... , a_n)</code> is
+ // / unsatisfiable when <code>a_i</code>'s are arrays from boolean to
+ // / boolean and n > 4.
+
+ // / <remarks>This example also shows how to use the <code>distinct</code>
+ // construct.</remarks>
+ public void arrayExample3(Context ctx) throws TestFailedException
+ {
+ System.out.println("ArrayExample3");
+ Log.append("ArrayExample2");
+
+ for (int n = 2; n <= 5; n++)
+ {
+ System.out.println("n = " + Integer.toString(n));
+
+ Sort bool_type = ctx.mkBoolSort();
+ Sort array_type = ctx.mkArraySort(bool_type, bool_type);
+ Expr[] a = new Expr[n];
+
+ /* create arrays */
+ for (int i = 0; i < n; i++)
+ {
+ a[i] = ctx.mkConst("array_" + Integer.toString(i), array_type);
+ }
+
+ /* assert distinct(a[0], ..., a[n]) */
+ BoolExpr d = ctx.mkDistinct(a);
+ System.out.println(d);
+
+ /* context is satisfiable if n < 5 */
+ Model model = check(ctx, d, n < 5 ? Status.SATISFIABLE
+ : Status.UNSATISFIABLE);
+ if (n < 5)
+ {
+ for (int i = 0; i < n; i++)
+ {
+ System.out.println(a[i].toString() + " = "
+ + model.evaluate(a[i], false));
+ }
+ }
+ }
+ }
+
+ // / Sudoku solving example.
+
+ void sudokuExample(Context ctx) throws TestFailedException
+ {
+ System.out.println("SudokuExample");
+ Log.append("SudokuExample");
+
+ // 9x9 matrix of integer variables
+ IntExpr[][] X = new IntExpr[9][];
+ for (int i = 0; i < 9; i++)
+ {
+ X[i] = new IntExpr[9];
+ for (int j = 0; j < 9; j++)
+ X[i][j] = (IntExpr) ctx.mkConst(
+ ctx.mkSymbol("x_" + (i + 1) + "_" + (j + 1)),
+ ctx.getIntSort());
+ }
+
+ // each cell contains a value in {1, ..., 9}
+ BoolExpr[][] cells_c = new BoolExpr[9][];
+ for (int i = 0; i < 9; i++)
+ {
+ cells_c[i] = new BoolExpr[9];
+ for (int j = 0; j < 9; j++)
+ cells_c[i][j] = ctx.mkAnd(ctx.mkLe(ctx.mkInt(1), X[i][j]),
+ ctx.mkLe(X[i][j], ctx.mkInt(9)));
+ }
+
+ // each row contains a digit at most once
+ BoolExpr[] rows_c = new BoolExpr[9];
+ for (int i = 0; i < 9; i++)
+ rows_c[i] = ctx.mkDistinct(X[i]);
+
+ // each column contains a digit at most once
+ BoolExpr[] cols_c = new BoolExpr[9];
+ for (int j = 0; j < 9; j++)
+ cols_c[j] = ctx.mkDistinct(X[j]);
+
+ // each 3x3 square contains a digit at most once
+ BoolExpr[][] sq_c = new BoolExpr[3][];
+ for (int i0 = 0; i0 < 3; i0++)
+ {
+ sq_c[i0] = new BoolExpr[3];
+ for (int j0 = 0; j0 < 3; j0++)
+ {
+ IntExpr[] square = new IntExpr[9];
+ for (int i = 0; i < 3; i++)
+ for (int j = 0; j < 3; j++)
+ square[3 * i + j] = X[3 * i0 + i][3 * j0 + j];
+ sq_c[i0][j0] = ctx.mkDistinct(square);
+ }
+ }
+
+ BoolExpr sudoku_c = ctx.mkTrue();
+ for (BoolExpr[] t : cells_c)
+ sudoku_c = ctx.mkAnd(ctx.mkAnd(t), sudoku_c);
+ sudoku_c = ctx.mkAnd(ctx.mkAnd(rows_c), sudoku_c);
+ sudoku_c = ctx.mkAnd(ctx.mkAnd(cols_c), sudoku_c);
+ for (BoolExpr[] t : sq_c)
+ sudoku_c = ctx.mkAnd(ctx.mkAnd(t), sudoku_c);
+
+ // sudoku instance, we use '0' for empty cells
+ int[][] instance = { { 0, 0, 0, 0, 9, 4, 0, 3, 0 },
+ { 0, 0, 0, 5, 1, 0, 0, 0, 7 }, { 0, 8, 9, 0, 0, 0, 0, 4, 0 },
+ { 0, 0, 0, 0, 0, 0, 2, 0, 8 }, { 0, 6, 0, 2, 0, 1, 0, 5, 0 },
+ { 1, 0, 2, 0, 0, 0, 0, 0, 0 }, { 0, 7, 0, 0, 0, 0, 5, 2, 0 },
+ { 9, 0, 0, 0, 6, 5, 0, 0, 0 }, { 0, 4, 0, 9, 7, 0, 0, 0, 0 } };
+
+ BoolExpr instance_c = ctx.mkTrue();
+ for (int i = 0; i < 9; i++)
+ for (int j = 0; j < 9; j++)
+ instance_c = ctx.mkAnd(
+ instance_c,
+ (BoolExpr) ctx.mkITE(
+ ctx.mkEq(ctx.mkInt(instance[i][j]),
+ ctx.mkInt(0)), ctx.mkTrue(),
+ ctx.mkEq(X[i][j], ctx.mkInt(instance[i][j]))));
+
+ Solver s = ctx.mkSolver();
+ s.add(sudoku_c);
+ s.add(instance_c);
+
+ if (s.check() == Status.SATISFIABLE)
+ {
+ Model m = s.getModel();
+ Expr[][] R = new Expr[9][9];
+ for (int i = 0; i < 9; i++)
+ for (int j = 0; j < 9; j++)
+ R[i][j] = m.evaluate(X[i][j], false);
+ System.out.println("Sudoku solution:");
+ for (int i = 0; i < 9; i++)
+ {
+ for (int j = 0; j < 9; j++)
+ System.out.print(" " + R[i][j]);
+ System.out.println();
+ }
+ } else
+ {
+ System.out.println("Failed to solve sudoku");
+ throw new TestFailedException();
+ }
+ }
+
+ // / A basic example of how to use quantifiers.
+
+ void quantifierExample1(Context ctx)
+ {
+ System.out.println("QuantifierExample");
+ Log.append("QuantifierExample");
+
+ Sort[] types = new Sort[3];
+ IntExpr[] xs = new IntExpr[3];
+ Symbol[] names = new Symbol[3];
+ IntExpr[] vars = new IntExpr[3];
+
+ for (int j = 0; j < 3; j++)
+ {
+ types[j] = ctx.getIntSort();
+ names[j] = ctx.mkSymbol("x_" + Integer.toString(j));
+ xs[j] = (IntExpr) ctx.mkConst(names[j], types[j]);
+ vars[j] = (IntExpr) ctx.mkBound(2 - j, types[j]); // <-- vars
+ // reversed!
+ }
+
+ Expr body_vars = ctx.mkAnd(
+ ctx.mkEq(ctx.mkAdd(vars[0], ctx.mkInt(1)), ctx.mkInt(2)),
+ ctx.mkEq(ctx.mkAdd(vars[1], ctx.mkInt(2)),
+ ctx.mkAdd(vars[2], ctx.mkInt(3))));
+
+ Expr body_const = ctx.mkAnd(
+ ctx.mkEq(ctx.mkAdd(xs[0], ctx.mkInt(1)), ctx.mkInt(2)),
+ ctx.mkEq(ctx.mkAdd(xs[1], ctx.mkInt(2)),
+ ctx.mkAdd(xs[2], ctx.mkInt(3))));
+
+ Expr x = ctx.mkForall(types, names, body_vars, 1, null, null,
+ ctx.mkSymbol("Q1"), ctx.mkSymbol("skid1"));
+ System.out.println("Quantifier X: " + x.toString());
+
+ Expr y = ctx.mkForall(xs, body_const, 1, null, null,
+ ctx.mkSymbol("Q2"), ctx.mkSymbol("skid2"));
+ System.out.println("Quantifier Y: " + y.toString());
+ }
+
+ void quantifierExample2(Context ctx)
+ {
+
+ System.out.println("QuantifierExample2");
+ Log.append("QuantifierExample2");
+
+ Expr q1, q2;
+ FuncDecl f = ctx.mkFuncDecl("f", ctx.getIntSort(), ctx.getIntSort());
+ FuncDecl g = ctx.mkFuncDecl("g", ctx.getIntSort(), ctx.getIntSort());
+
+ // Quantifier with Exprs as the bound variables.
+ {
+ Expr x = ctx.mkConst("x", ctx.getIntSort());
+ Expr y = ctx.mkConst("y", ctx.getIntSort());
+ Expr f_x = ctx.mkApp(f, x);
+ Expr f_y = ctx.mkApp(f, y);
+ Expr g_y = ctx.mkApp(g, y);
+ @SuppressWarnings("unused")
+ Pattern[] pats = new Pattern[] { ctx.mkPattern(f_x, g_y) };
+ Expr[] no_pats = new Expr[] { f_y };
+ Expr[] bound = new Expr[] { x, y };
+ Expr body = ctx.mkAnd(ctx.mkEq(f_x, f_y), ctx.mkEq(f_y, g_y));
+
+ q1 = ctx.mkForall(bound, body, 1, null, no_pats, ctx.mkSymbol("q"),
+ ctx.mkSymbol("sk"));
+
+ System.out.println(q1);
+ }
+
+ // Quantifier with de-Brujin indices.
+ {
+ Expr x = ctx.mkBound(1, ctx.getIntSort());
+ Expr y = ctx.mkBound(0, ctx.getIntSort());
+ Expr f_x = ctx.mkApp(f, x);
+ Expr f_y = ctx.mkApp(f, y);
+ Expr g_y = ctx.mkApp(g, y);
+ @SuppressWarnings("unused")
+ Pattern[] pats = new Pattern[] { ctx.mkPattern(f_x, g_y) };
+ Expr[] no_pats = new Expr[] { f_y };
+ Symbol[] names = new Symbol[] { ctx.mkSymbol("x"),
+ ctx.mkSymbol("y") };
+ Sort[] sorts = new Sort[] { ctx.getIntSort(), ctx.getIntSort() };
+ Expr body = ctx.mkAnd(ctx.mkEq(f_x, f_y), ctx.mkEq(f_y, g_y));
+
+ q2 = ctx.mkForall(sorts, names, body, 1, null, // pats,
+ no_pats, ctx.mkSymbol("q"), ctx.mkSymbol("sk"));
+ System.out.println(q2);
+ }
+
+ System.out.println(q1.equals(q2));
+ }
+
+ // / Prove that <tt>f(x, y) = f(w, v) implies y = v</tt> when
+ // / <code>f</code> is injective in the second argument. <seealso
+ // cref="inj_axiom"/>
+
+ public void quantifierExample3(Context ctx) throws TestFailedException
+ {
+ System.out.println("QuantifierExample3");
+ Log.append("QuantifierExample3");
+
+ /*
+ * If quantified formulas are asserted in a logical context, then the
+ * model produced by Z3 should be viewed as a potential model.
+ */
+
+ /* declare function f */
+ Sort I = ctx.getIntSort();
+ FuncDecl f = ctx.mkFuncDecl("f", new Sort[] { I, I }, I);
+
+ /* f is injective in the second argument. */
+ BoolExpr inj = injAxiom(ctx, f, 1);
+
+ /* create x, y, v, w, fxy, fwv */
+ Expr x = ctx.mkIntConst("x");
+ Expr y = ctx.mkIntConst("y");
+ Expr v = ctx.mkIntConst("v");
+ Expr w = ctx.mkIntConst("w");
+ Expr fxy = ctx.mkApp(f, x, y);
+ Expr fwv = ctx.mkApp(f, w, v);
+
+ /* f(x, y) = f(w, v) */
+ BoolExpr p1 = ctx.mkEq(fxy, fwv);
+
+ /* prove f(x, y) = f(w, v) implies y = v */
+ BoolExpr p2 = ctx.mkEq(y, v);
+ prove(ctx, p2, false, inj, p1);
+
+ /* disprove f(x, y) = f(w, v) implies x = w */
+ BoolExpr p3 = ctx.mkEq(x, w);
+ disprove(ctx, p3, false, inj, p1);
+ }
+
+ // / Prove that <tt>f(x, y) = f(w, v) implies y = v</tt> when
+ // / <code>f</code> is injective in the second argument. <seealso
+ // cref="inj_axiom"/>
+
+ public void quantifierExample4(Context ctx) throws TestFailedException
+ {
+ System.out.println("QuantifierExample4");
+ Log.append("QuantifierExample4");
+
+ /*
+ * If quantified formulas are asserted in a logical context, then the
+ * model produced by Z3 should be viewed as a potential model.
+ */
+
+ /* declare function f */
+ Sort I = ctx.getIntSort();
+ FuncDecl f = ctx.mkFuncDecl("f", new Sort[] { I, I }, I);
+
+ /* f is injective in the second argument. */
+ BoolExpr inj = injAxiomAbs(ctx, f, 1);
+
+ /* create x, y, v, w, fxy, fwv */
+ Expr x = ctx.mkIntConst("x");
+ Expr y = ctx.mkIntConst("y");
+ Expr v = ctx.mkIntConst("v");
+ Expr w = ctx.mkIntConst("w");
+ Expr fxy = ctx.mkApp(f, x, y);
+ Expr fwv = ctx.mkApp(f, w, v);
+
+ /* f(x, y) = f(w, v) */
+ BoolExpr p1 = ctx.mkEq(fxy, fwv);
+
+ /* prove f(x, y) = f(w, v) implies y = v */
+ BoolExpr p2 = ctx.mkEq(y, v);
+ prove(ctx, p2, false, inj, p1);
+
+ /* disprove f(x, y) = f(w, v) implies x = w */
+ BoolExpr p3 = ctx.mkEq(x, w);
+ disprove(ctx, p3, false, inj, p1);
+ }
+
+ // / Some basic tests.
+
+ void basicTests(Context ctx) throws TestFailedException
+ {
+ System.out.println("BasicTests");
+
+ Symbol fname = ctx.mkSymbol("f");
+ Symbol x = ctx.mkSymbol("x");
+ Symbol y = ctx.mkSymbol("y");
+
+ Sort bs = ctx.mkBoolSort();
+
+ Sort[] domain = { bs, bs };
+ FuncDecl f = ctx.mkFuncDecl(fname, domain, bs);
+ Expr fapp = ctx.mkApp(f, ctx.mkConst(x, bs), ctx.mkConst(y, bs));
+
+ Expr[] fargs2 = { ctx.mkFreshConst("cp", bs) };
+ Sort[] domain2 = { bs };
+ Expr fapp2 = ctx.mkApp(ctx.mkFreshFuncDecl("fp", domain2, bs), fargs2);
+
+ BoolExpr trivial_eq = ctx.mkEq(fapp, fapp);
+ BoolExpr nontrivial_eq = ctx.mkEq(fapp, fapp2);
+
+ Goal g = ctx.mkGoal(true, false, false);
+ g.add(trivial_eq);
+ g.add(nontrivial_eq);
+ System.out.println("Goal: " + g);
+
+ Solver solver = ctx.mkSolver();
+
+ for (BoolExpr a : g.getFormulas())
+ solver.add(a);
+
+ if (solver.check() != Status.SATISFIABLE)
+ throw new TestFailedException();
+
+ ApplyResult ar = applyTactic(ctx, ctx.mkTactic("simplify"), g);
+ if (ar.getNumSubgoals() == 1
+ && (ar.getSubgoals()[0].isDecidedSat() || ar.getSubgoals()[0]
+ .isDecidedUnsat()))
+ throw new TestFailedException();
+
+ ar = applyTactic(ctx, ctx.mkTactic("smt"), g);
+ if (ar.getNumSubgoals() != 1 || !ar.getSubgoals()[0].isDecidedSat())
+ throw new TestFailedException();
+
+ g.add(ctx.mkEq(ctx.mkNumeral(1, ctx.mkBitVecSort(32)),
+ ctx.mkNumeral(2, ctx.mkBitVecSort(32))));
+ ar = applyTactic(ctx, ctx.mkTactic("smt"), g);
+ if (ar.getNumSubgoals() != 1 || !ar.getSubgoals()[0].isDecidedUnsat())
+ throw new TestFailedException();
+
+ Goal g2 = ctx.mkGoal(true, true, false);
+ ar = applyTactic(ctx, ctx.mkTactic("smt"), g2);
+ if (ar.getNumSubgoals() != 1 || !ar.getSubgoals()[0].isDecidedSat())
+ throw new TestFailedException();
+
+ g2 = ctx.mkGoal(true, true, false);
+ g2.add(ctx.mkFalse());
+ ar = applyTactic(ctx, ctx.mkTactic("smt"), g2);
+ if (ar.getNumSubgoals() != 1 || !ar.getSubgoals()[0].isDecidedUnsat())
+ throw new TestFailedException();
+
+ Goal g3 = ctx.mkGoal(true, true, false);
+ Expr xc = ctx.mkConst(ctx.mkSymbol("x"), ctx.getIntSort());
+ Expr yc = ctx.mkConst(ctx.mkSymbol("y"), ctx.getIntSort());
+ g3.add(ctx.mkEq(xc, ctx.mkNumeral(1, ctx.getIntSort())));
+ g3.add(ctx.mkEq(yc, ctx.mkNumeral(2, ctx.getIntSort())));
+ BoolExpr constr = ctx.mkEq(xc, yc);
+ g3.add(constr);
+ ar = applyTactic(ctx, ctx.mkTactic("smt"), g3);
+ if (ar.getNumSubgoals() != 1 || !ar.getSubgoals()[0].isDecidedUnsat())
+ throw new TestFailedException();
+
+ modelConverterTest(ctx);
+
+ // Real num/den test.
+ RatNum rn = ctx.mkReal(42, 43);
+ Expr inum = rn.getNumerator();
+ Expr iden = rn.getDenominator();
+ System.out.println("Numerator: " + inum + " Denominator: " + iden);
+ if (!inum.toString().equals("42") || !iden.toString().equals("43"))
+ throw new TestFailedException();
+
+ if (!rn.toDecimalString(3).toString().equals("0.976?"))
+ throw new TestFailedException();
+
+ bigIntCheck(ctx, ctx.mkReal("-1231231232/234234333"));
+ bigIntCheck(ctx, ctx.mkReal("-123123234234234234231232/234234333"));
+ bigIntCheck(ctx, ctx.mkReal("-234234333"));
+ bigIntCheck(ctx, ctx.mkReal("234234333/2"));
+
+ String bn = "1234567890987654321";
+
+ if (!ctx.mkInt(bn).getBigInteger().toString().equals(bn))
+ throw new TestFailedException();
+
+ if (!ctx.mkBV(bn, 128).getBigInteger().toString().equals(bn))
+ throw new TestFailedException();
+
+ if (ctx.mkBV(bn, 32).getBigInteger().toString().equals(bn))
+ throw new TestFailedException();
+
+ // Error handling test.
+ try
+ {
+ @SuppressWarnings("unused")
+ IntExpr i = ctx.mkInt("1/2");
+ throw new TestFailedException(); // unreachable
+ } catch (Z3Exception e)
+ {
+ }
+ }
+
+ // / Some basic expression casting tests.
+
+ void castingTest(Context ctx) throws TestFailedException
+ {
+ System.out.println("CastingTest");
+
+ Sort[] domain = { ctx.getBoolSort(), ctx.getBoolSort() };
+ FuncDecl f = ctx.mkFuncDecl("f", domain, ctx.getBoolSort());
+
+ AST upcast = ctx.mkFuncDecl(ctx.mkSymbol("q"), domain,
+ ctx.getBoolSort());
+
+ try
+ {
+ @SuppressWarnings("unused")
+ FuncDecl downcast = (FuncDecl) f; // OK
+ } catch (ClassCastException e)
+ {
+ throw new TestFailedException();
+ }
+
+ try
+ {
+ @SuppressWarnings("unused")
+ Expr uc = (Expr) upcast;
+ throw new TestFailedException(); // should not be reachable!
+ } catch (ClassCastException e)
+ {
+ }
+
+ Symbol s = ctx.mkSymbol(42);
+ IntSymbol si = (s.getClass() == IntSymbol.class) ? (IntSymbol) s : null;
+ if (si == null)
+ throw new TestFailedException();
+ try
+ {
+ @SuppressWarnings("unused")
+ IntSymbol si2 = (IntSymbol) s;
+ } catch (ClassCastException e)
+ {
+ throw new TestFailedException();
+ }
+
+ s = ctx.mkSymbol("abc");
+ StringSymbol ss = (s.getClass() == StringSymbol.class) ? (StringSymbol) s
+ : null;
+ if (ss == null)
+ throw new TestFailedException();
+ try
+ {
+ @SuppressWarnings("unused")
+ StringSymbol ss2 = (StringSymbol) s;
+ } catch (ClassCastException e)
+ {
+ throw new TestFailedException();
+ }
+ try
+ {
+ @SuppressWarnings("unused")
+ IntSymbol si2 = (IntSymbol) s;
+ throw new TestFailedException(); // unreachable
+ } catch (Exception e)
+ {
+ }
+
+ Sort srt = ctx.mkBitVecSort(32);
+ BitVecSort bvs = null;
+ try
+ {
+ bvs = (BitVecSort) srt;
+ } catch (ClassCastException e)
+ {
+ throw new TestFailedException();
+ }
+
+ if (bvs.getSize() != 32)
+ throw new TestFailedException();
+
+ Expr q = ctx.mkAdd(ctx.mkInt(1), ctx.mkInt(2));
+ Expr q2 = q.getArgs()[1];
+ Sort qs = q2.getSort();
+ if (qs.getClass() != IntSort.class)
+ throw new TestFailedException();
+ try
+ {
+ @SuppressWarnings("unused")
+ IntSort isrt = (IntSort) qs;
+ } catch (ClassCastException e)
+ {
+ throw new TestFailedException();
+ }
+
+ AST a = ctx.mkInt(42);
+
+ try
+ {
+ Expr.class.cast(a);
+ } catch (ClassCastException e)
+ {
+ throw new TestFailedException();
+ }
+
+ try
+ {
+ ArithExpr.class.cast(a);
+ } catch (ClassCastException e)
+ {
+ throw new TestFailedException();
+ }
+
+ try
+ {
+ IntExpr.class.cast(a);
+ } catch (ClassCastException e)
+ {
+ throw new TestFailedException();
+ }
+
+ try
+ {
+ IntNum.class.cast(a);
+ } catch (ClassCastException e)
+ {
+ throw new TestFailedException();
+ }
+
+ Expr[][] earr = new Expr[2][];
+ earr[0] = new Expr[2];
+ earr[1] = new Expr[2];
+ earr[0][0] = ctx.mkTrue();
+ earr[0][1] = ctx.mkTrue();
+ earr[1][0] = ctx.mkFalse();
+ earr[1][1] = ctx.mkFalse();
+ for (Expr[] ea : earr)
+ for (Expr e : ea)
+ {
+ try
+ {
+ Expr ns = ctx.mkNot((BoolExpr) e);
+ @SuppressWarnings("unused")
+ BoolExpr ens = (BoolExpr) ns;
+ } catch (ClassCastException ex)
+ {
+ throw new TestFailedException();
+ }
+ }
+ }
+
+ // / Shows how to read an SMT1 file.
+
+ void smt1FileTest(String filename)
+ {
+ System.out.print("SMT File test ");
+
+ {
+ HashMap<String, String> cfg = new HashMap<String, String>();
+ Context ctx = new Context(cfg);
+ ctx.parseSMTLIBFile(filename, null, null, null, null);
+
+ BoolExpr a = ctx.mkAnd(ctx.getSMTLIBFormulas());
+ System.out.println("read formula: " + a);
+ }
+ }
+
+ // / Shows how to read an SMT2 file.
+
+ void smt2FileTest(String filename)
+ {
+ Date before = new Date();
+
+ System.out.println("SMT2 File test ");
+ System.gc();
+
+ {
+ HashMap<String, String> cfg = new HashMap<String, String>();
+ cfg.put("model", "true");
+ Context ctx = new Context(cfg);
+ Expr a = ctx.parseSMTLIB2File(filename, null, null, null, null);
+
+ long t_diff = ((new Date()).getTime() - before.getTime()) / 1000;
+
+ System.out.println("SMT2 file read time: " + t_diff + " sec");
+
+ // Iterate over the formula.
+
+ LinkedList<Expr> q = new LinkedList<Expr>();
+ q.add(a);
+ int cnt = 0;
+ while (q.size() > 0)
+ {
+ AST cur = (AST) q.removeFirst();
+ cnt++;
+
+ if (cur.getClass() == Expr.class)
+ if (!(cur.isVar()))
+ for (Expr c : ((Expr) cur).getArgs())
+ q.add(c);
+ }
+ System.out.println(cnt + " ASTs");
+ }
+
+ long t_diff = ((new Date()).getTime() - before.getTime()) / 1000;
+ System.out.println("SMT2 file test took " + t_diff + " sec");
+ }
+
+ // / Shows how to use Solver(logic)
+
+ // / @param ctx
+ void logicExample(Context ctx) throws TestFailedException
+ {
+ System.out.println("LogicTest");
+ Log.append("LogicTest");
+
+ com.microsoft.z3.Global.ToggleWarningMessages(true);
+
+ BitVecSort bvs = ctx.mkBitVecSort(32);
+ Expr x = ctx.mkConst("x", bvs);
+ Expr y = ctx.mkConst("y", bvs);
+ BoolExpr eq = ctx.mkEq(x, y);
+
+ // Use a solver for QF_BV
+ Solver s = ctx.mkSolver("QF_BV");
+ s.add(eq);
+ Status res = s.check();
+ System.out.println("solver result: " + res);
+
+ // Or perhaps a tactic for QF_BV
+ Goal g = ctx.mkGoal(true, false, false);
+ g.add(eq);
+
+ Tactic t = ctx.mkTactic("qfbv");
+ ApplyResult ar = t.apply(g);
+ System.out.println("tactic result: " + ar);
+
+ if (ar.getNumSubgoals() != 1 || !ar.getSubgoals()[0].isDecidedSat())
+ throw new TestFailedException();
+ }
+
+ // / Demonstrates how to use the ParOr tactic.
+
+ void parOrExample(Context ctx) throws TestFailedException
+ {
+ System.out.println("ParOrExample");
+ Log.append("ParOrExample");
+
+ BitVecSort bvs = ctx.mkBitVecSort(32);
+ Expr x = ctx.mkConst("x", bvs);
+ Expr y = ctx.mkConst("y", bvs);
+ BoolExpr q = ctx.mkEq(x, y);
+
+ Goal g = ctx.mkGoal(true, false, false);
+ g.add(q);
+
+ Tactic t1 = ctx.mkTactic("qfbv");
+ Tactic t2 = ctx.mkTactic("qfbv");
+ Tactic p = ctx.parOr(t1, t2);
+
+ ApplyResult ar = p.apply(g);
+
+ if (ar.getNumSubgoals() != 1 || !ar.getSubgoals()[0].isDecidedSat())
+ throw new TestFailedException();
+ }
+
+ void bigIntCheck(Context ctx, RatNum r)
+ {
+ System.out.println("Num: " + r.getBigIntNumerator());
+ System.out.println("Den: " + r.getBigIntDenominator());
+ }
+
+ // / Find a model for <code>x xor y</code>.
+
+ public void findModelExample1(Context ctx) throws TestFailedException
+ {
+ System.out.println("FindModelExample1");
+ Log.append("FindModelExample1");
+
+ BoolExpr x = ctx.mkBoolConst("x");
+ BoolExpr y = ctx.mkBoolConst("y");
+ BoolExpr x_xor_y = ctx.mkXor(x, y);
+
+ Model model = check(ctx, x_xor_y, Status.SATISFIABLE);
+ System.out.println("x = " + model.evaluate(x, false) + ", y = "
+ + model.evaluate(y, false));
+ }
+
+ // / Find a model for <tt>x < y + 1, x > 2</tt>.
+ // / Then, assert <tt>not(x = y)</tt>, and find another model.
+
+ public void findModelExample2(Context ctx) throws TestFailedException
+ {
+ System.out.println("FindModelExample2");
+ Log.append("FindModelExample2");
+
+ IntExpr x = ctx.mkIntConst("x");
+ IntExpr y = ctx.mkIntConst("y");
+ IntExpr one = ctx.mkInt(1);
+ IntExpr two = ctx.mkInt(2);
+
+ ArithExpr y_plus_one = ctx.mkAdd(y, one);
+
+ BoolExpr c1 = ctx.mkLt(x, y_plus_one);
+ BoolExpr c2 = ctx.mkGt(x, two);
+
+ BoolExpr q = ctx.mkAnd(c1, c2);
+
+ System.out.println("model for: x < y + 1, x > 2");
+ Model model = check(ctx, q, Status.SATISFIABLE);
+ System.out.println("x = " + model.evaluate(x, false) + ", y ="
+ + model.evaluate(y, false));
+
+ /* assert not(x = y) */
+ BoolExpr x_eq_y = ctx.mkEq(x, y);
+ BoolExpr c3 = ctx.mkNot(x_eq_y);
+
+ q = ctx.mkAnd(q, c3);
+
+ System.out.println("model for: x < y + 1, x > 2, not(x = y)");
+ model = check(ctx, q, Status.SATISFIABLE);
+ System.out.println("x = " + model.evaluate(x, false) + ", y = "
+ + model.evaluate(y, false));
+ }
+
+ // / Prove <tt>x = y implies g(x) = g(y)</tt>, and
+ // / disprove <tt>x = y implies g(g(x)) = g(y)</tt>.
+
+ // / <remarks>This function demonstrates how to create uninterpreted
+ // / types and functions.</remarks>
+ public void proveExample1(Context ctx) throws TestFailedException
+ {
+ System.out.println("ProveExample1");
+ Log.append("ProveExample1");
+
+ /* create uninterpreted type. */
+ Sort U = ctx.mkUninterpretedSort(ctx.mkSymbol("U"));
+
+ /* declare function g */
+ FuncDecl g = ctx.mkFuncDecl("g", U, U);
+
+ /* create x and y */
+ Expr x = ctx.mkConst("x", U);
+ Expr y = ctx.mkConst("y", U);
+ /* create g(x), g(y) */
+ Expr gx = g.apply(x);
+ Expr gy = g.apply(y);
+
+ /* assert x = y */
+ BoolExpr eq = ctx.mkEq(x, y);
+
+ /* prove g(x) = g(y) */
+ BoolExpr f = ctx.mkEq(gx, gy);
+ System.out.println("prove: x = y implies g(x) = g(y)");
+ prove(ctx, ctx.mkImplies(eq, f), false);
+
+ /* create g(g(x)) */
+ Expr ggx = g.apply(gx);
+
+ /* disprove g(g(x)) = g(y) */
+ f = ctx.mkEq(ggx, gy);
+ System.out.println("disprove: x = y implies g(g(x)) = g(y)");
+ disprove(ctx, ctx.mkImplies(eq, f), false);
+
+ /* Print the model using the custom model printer */
+ Model m = check(ctx, ctx.mkNot(f), Status.SATISFIABLE);
+ System.out.println(m);
+ }
+
+ // / Prove <tt>not(g(g(x) - g(y)) = g(z)), x + z <= y <= x implies z < 0
+ // </tt>.
+ // / Then, show that <tt>z < -1</tt> is not implied.
+
+ // / <remarks>This example demonstrates how to combine uninterpreted
+ // functions
+ // / and arithmetic.</remarks>
+ public void proveExample2(Context ctx) throws TestFailedException
+ {
+ System.out.println("ProveExample2");
+ Log.append("ProveExample2");
+
+ /* declare function g */
+ Sort I = ctx.getIntSort();
+
+ FuncDecl g = ctx.mkFuncDecl("g", I, I);
+
+ /* create x, y, and z */
+ IntExpr x = ctx.mkIntConst("x");
+ IntExpr y = ctx.mkIntConst("y");
+ IntExpr z = ctx.mkIntConst("z");
+
+ /* create gx, gy, gz */
+ Expr gx = ctx.mkApp(g, x);
+ Expr gy = ctx.mkApp(g, y);
+ Expr gz = ctx.mkApp(g, z);
+
+ /* create zero */
+ IntExpr zero = ctx.mkInt(0);
+
+ /* assert not(g(g(x) - g(y)) = g(z)) */
+ ArithExpr gx_gy = ctx.mkSub((IntExpr) gx, (IntExpr) gy);
+ Expr ggx_gy = ctx.mkApp(g, gx_gy);
+ BoolExpr eq = ctx.mkEq(ggx_gy, gz);
+ BoolExpr c1 = ctx.mkNot(eq);
+
+ /* assert x + z <= y */
+ ArithExpr x_plus_z = ctx.mkAdd(x, z);
+ BoolExpr c2 = ctx.mkLe(x_plus_z, y);
+
+ /* assert y <= x */
+ BoolExpr c3 = ctx.mkLe(y, x);
+
+ /* prove z < 0 */
+ BoolExpr f = ctx.mkLt(z, zero);
+ System.out
+ .println("prove: not(g(g(x) - g(y)) = g(z)), x + z <= y <= x implies z < 0");
+ prove(ctx, f, false, c1, c2, c3);
+
+ /* disprove z < -1 */
+ IntExpr minus_one = ctx.mkInt(-1);
+ f = ctx.mkLt(z, minus_one);
+ System.out
+ .println("disprove: not(g(g(x) - g(y)) = g(z)), x + z <= y <= x implies z < -1");
+ disprove(ctx, f, false, c1, c2, c3);
+ }
+
+ // / Show how push & pop can be used to create "backtracking" points.
+
+ // / <remarks>This example also demonstrates how big numbers can be
+ // / created in ctx.</remarks>
+ public void pushPopExample1(Context ctx) throws TestFailedException
+ {
+ System.out.println("PushPopExample1");
+ Log.append("PushPopExample1");
+
+ /* create a big number */
+ IntSort int_type = ctx.getIntSort();
+ IntExpr big_number = ctx
+ .mkInt("1000000000000000000000000000000000000000000000000000000");
+
+ /* create number 3 */
+ IntExpr three = (IntExpr) ctx.mkNumeral("3", int_type);
+
+ /* create x */
+ IntExpr x = ctx.mkIntConst("x");
+
+ Solver solver = ctx.mkSolver();
+
+ /* assert x >= "big number" */
+ BoolExpr c1 = ctx.mkGe(x, big_number);
+ System.out.println("assert: x >= 'big number'");
+ solver.add(c1);
+
+ /* create a backtracking point */
+ System.out.println("push");
+ solver.push();
+
+ /* assert x <= 3 */
+ BoolExpr c2 = ctx.mkLe(x, three);
+ System.out.println("assert: x <= 3");
+ solver.add(c2);
+
+ /* context is inconsistent at this point */
+ if (solver.check() != Status.UNSATISFIABLE)
+ throw new TestFailedException();
+
+ /*
+ * backtrack: the constraint x <= 3 will be removed, since it was
+ * asserted after the last ctx.Push.
+ */
+ System.out.println("pop");
+ solver.pop(1);
+
+ /* the context is consistent again. */
+ if (solver.check() != Status.SATISFIABLE)
+ throw new TestFailedException();
+
+ /* new constraints can be asserted... */
+
+ /* create y */
+ IntExpr y = ctx.mkIntConst("y");
+
+ /* assert y > x */
+ BoolExpr c3 = ctx.mkGt(y, x);
+ System.out.println("assert: y > x");
+ solver.add(c3);
+
+ /* the context is still consistent. */
+ if (solver.check() != Status.SATISFIABLE)
+ throw new TestFailedException();
+ }
+
+ // / Tuples.
+
+ // / <remarks>Check that the projection of a tuple
+ // / returns the corresponding element.</remarks>
+ public void tupleExample(Context ctx) throws TestFailedException
+ {
+ System.out.println("TupleExample");
+ Log.append("TupleExample");
+
+ Sort int_type = ctx.getIntSort();
+ TupleSort tuple = ctx.mkTupleSort(ctx.mkSymbol("mk_tuple"), // name of
+ // tuple
+ // constructor
+ new Symbol[] { ctx.mkSymbol("first"), ctx.mkSymbol("second") }, // names
+ // of
+ // projection
+ // operators
+ new Sort[] { int_type, int_type } // types of projection
+ // operators
+ );
+ FuncDecl first = tuple.getFieldDecls()[0]; // declarations are for
+ // projections
+ @SuppressWarnings("unused")
+ FuncDecl second = tuple.getFieldDecls()[1];
+ Expr x = ctx.mkConst("x", int_type);
+ Expr y = ctx.mkConst("y", int_type);
+ Expr n1 = tuple.mkDecl().apply(x, y);
+ Expr n2 = first.apply(n1);
+ BoolExpr n3 = ctx.mkEq(x, n2);
+ System.out.println("Tuple example: " + n3);
+ prove(ctx, n3, false);
+ }
+
+ // / Simple bit-vector example.
+
+ // / <remarks>
+ // / This example disproves that x - 10 &lt;= 0 IFF x &lt;= 10 for (32-bit)
+ // machine integers
+ // / </remarks>
+ public void bitvectorExample1(Context ctx) throws TestFailedException
+ {
+ System.out.println("BitvectorExample1");
+ Log.append("BitvectorExample1");
+
+ Sort bv_type = ctx.mkBitVecSort(32);
+ BitVecExpr x = (BitVecExpr) ctx.mkConst("x", bv_type);
+ BitVecNum zero = (BitVecNum) ctx.mkNumeral("0", bv_type);
+ BitVecNum ten = ctx.mkBV(10, 32);
+ BitVecExpr x_minus_ten = ctx.mkBVSub(x, ten);
+ /* bvsle is signed less than or equal to */
+ BoolExpr c1 = ctx.mkBVSLE(x, ten);
+ BoolExpr c2 = ctx.mkBVSLE(x_minus_ten, zero);
+ BoolExpr thm = ctx.mkIff(c1, c2);
+ System.out
+ .println("disprove: x - 10 <= 0 IFF x <= 10 for (32-bit) machine integers");
+ disprove(ctx, thm, false);
+ }
+
+ // / Find x and y such that: x ^ y - 103 == x * y
+
+ public void bitvectorExample2(Context ctx) throws TestFailedException
+ {
+ System.out.println("BitvectorExample2");
+ Log.append("BitvectorExample2");
+
+ /* construct x ^ y - 103 == x * y */
+ Sort bv_type = ctx.mkBitVecSort(32);
+ BitVecExpr x = ctx.mkBVConst("x", 32);
+ BitVecExpr y = ctx.mkBVConst("y", 32);
+ BitVecExpr x_xor_y = ctx.mkBVXOR(x, y);
+ BitVecExpr c103 = (BitVecNum) ctx.mkNumeral("103", bv_type);
+ BitVecExpr lhs = ctx.mkBVSub(x_xor_y, c103);
+ BitVecExpr rhs = ctx.mkBVMul(x, y);
+ BoolExpr ctr = ctx.mkEq(lhs, rhs);
+
+ System.out
+ .println("find values of x and y, such that x ^ y - 103 == x * y");
+
+ /* find a model (i.e., values for x an y that satisfy the constraint */
+ Model m = check(ctx, ctr, Status.SATISFIABLE);
+ System.out.println(m);
+ }
+
+ // / Demonstrates how to use the SMTLIB parser.
+
+ public void parserExample1(Context ctx) throws TestFailedException
+ {
+ System.out.println("ParserExample1");
+ Log.append("ParserExample1");
+
+ ctx.parseSMTLIBString(
+ "(benchmark tst :extrafuns ((x Int) (y Int)) :formula (> x y) :formula (> x 0))",
+ null, null, null, null);
+ for (BoolExpr f : ctx.getSMTLIBFormulas())
+ System.out.println("formula " + f);
+
+ @SuppressWarnings("unused")
+ Model m = check(ctx, ctx.mkAnd(ctx.getSMTLIBFormulas()),
+ Status.SATISFIABLE);
+ }
+
+ // / Demonstrates how to initialize the parser symbol table.
+
+ public void parserExample2(Context ctx) throws TestFailedException
+ {
+ System.out.println("ParserExample2");
+ Log.append("ParserExample2");
+
+ Symbol[] declNames = { ctx.mkSymbol("a"), ctx.mkSymbol("b") };
+ FuncDecl a = ctx.mkConstDecl(declNames[0], ctx.mkIntSort());
+ FuncDecl b = ctx.mkConstDecl(declNames[1], ctx.mkIntSort());
+ FuncDecl[] decls = new FuncDecl[] { a, b };
+
+ ctx.parseSMTLIBString("(benchmark tst :formula (> a b))", null, null,
+ declNames, decls);
+ BoolExpr f = ctx.getSMTLIBFormulas()[0];
+ System.out.println("formula: " + f);
+ check(ctx, f, Status.SATISFIABLE);
+ }
+
+ // / Demonstrates how to initialize the parser symbol table.
+
+ public void parserExample3(Context ctx) throws Exception
+ {
+ System.out.println("ParserExample3");
+ Log.append("ParserExample3");
+
+ /* declare function g */
+ Sort I = ctx.mkIntSort();
+ FuncDecl g = ctx.mkFuncDecl("g", new Sort[] { I, I }, I);
+
+ BoolExpr ca = commAxiom(ctx, g);
+
+ ctx.parseSMTLIBString(
+ "(benchmark tst :formula (forall (x Int) (y Int) (implies (= x y) (= (gg x 0) (gg 0 y)))))",
+ null, null, new Symbol[] { ctx.mkSymbol("gg") },
+ new FuncDecl[] { g });
+
+ BoolExpr thm = ctx.getSMTLIBFormulas()[0];
+ System.out.println("formula: " + thm);
+ prove(ctx, thm, false, ca);
+ }
+
+ // / Display the declarations, assumptions and formulas in a SMT-LIB string.
+
+ public void parserExample4(Context ctx)
+ {
+ System.out.println("ParserExample4");
+ Log.append("ParserExample4");
+
+ ctx.parseSMTLIBString(
+ "(benchmark tst :extrafuns ((x Int) (y Int)) :assumption (= x 20) :formula (> x y) :formula (> x 0))",
+ null, null, null, null);
+ for (FuncDecl decl : ctx.getSMTLIBDecls())
+ {
+ System.out.println("Declaration: " + decl);
+ }
+ for (BoolExpr f : ctx.getSMTLIBAssumptions())
+ {
+ System.out.println("Assumption: " + f);
+ }
+ for (BoolExpr f : ctx.getSMTLIBFormulas())
+ {
+ System.out.println("Formula: " + f);
+ }
+ }
+
+ // / Demonstrates how to handle parser errors using Z3 error handling
+ // support.
+
+ // / <remarks></remarks>
+ public void parserExample5(Context ctx)
+ {
+ System.out.println("ParserExample5");
+
+ try
+ {
+ ctx.parseSMTLIBString(
+ /*
+ * the following string has a parsing error: missing
+ * parenthesis
+ */
+ "(benchmark tst :extrafuns ((x Int (y Int)) :formula (> x y) :formula (> x 0))",
+ null, null, null, null);
+ } catch (Z3Exception e)
+ {
+ System.out.println("Z3 error: " + e);
+ }
+ }
+
+ // / Create an ite-Expr (if-then-else Exprs).
+
+ public void iteExample(Context ctx)
+ {
+ System.out.println("ITEExample");
+ Log.append("ITEExample");
+
+ BoolExpr f = ctx.mkFalse();
+ Expr one = ctx.mkInt(1);
+ Expr zero = ctx.mkInt(0);
+ Expr ite = ctx.mkITE(f, one, zero);
+
+ System.out.println("Expr: " + ite);
+ }
+
+ // / Create an enumeration data type.
+
+ public void enumExample(Context ctx) throws TestFailedException
+ {
+ System.out.println("EnumExample");
+ Log.append("EnumExample");
+
+ Symbol name = ctx.mkSymbol("fruit");
+
+ EnumSort fruit = ctx.mkEnumSort(name, ctx.mkSymbol("apple"),
+ ctx.mkSymbol("banana"), ctx.mkSymbol("orange"));
+
+ System.out.println((fruit.getConsts()[0]));
+ System.out.println((fruit.getConsts()[1]));
+ System.out.println((fruit.getConsts()[2]));
+
+ System.out.println((fruit.getTesterDecls()[0]));
+ System.out.println((fruit.getTesterDecls()[1]));
+ System.out.println((fruit.getTesterDecls()[2]));
+
+ Expr apple = fruit.getConsts()[0];
+ Expr banana = fruit.getConsts()[1];
+ Expr orange = fruit.getConsts()[2];
+
+ /* Apples are different from oranges */
+ prove(ctx, ctx.mkNot(ctx.mkEq(apple, orange)), false);
+
+ /* Apples pass the apple test */
+ prove(ctx, (BoolExpr) ctx.mkApp(fruit.getTesterDecls()[0], apple),
+ false);
+
+ /* Oranges fail the apple test */
+ disprove(ctx, (BoolExpr) ctx.mkApp(fruit.getTesterDecls()[0], orange),
+ false);
+ prove(ctx,
+ (BoolExpr) ctx.mkNot((BoolExpr) ctx.mkApp(
+ fruit.getTesterDecls()[0], orange)), false);
+
+ Expr fruity = ctx.mkConst("fruity", fruit);
+
+ /* If something is fruity, then it is an apple, banana, or orange */
+
+ prove(ctx,
+ ctx.mkOr(ctx.mkEq(fruity, apple), ctx.mkEq(fruity, banana),
+ ctx.mkEq(fruity, orange)), false);
+ }
+
+ // / Create a list datatype.
+
+ public void listExample(Context ctx) throws TestFailedException
+ {
+ System.out.println("ListExample");
+ Log.append("ListExample");
+
+ Sort int_ty;
+ ListSort int_list;
+ Expr nil, l1, l2, x, y, u, v;
+ BoolExpr fml, fml1;
+
+ int_ty = ctx.mkIntSort();
+
+ int_list = ctx.mkListSort(ctx.mkSymbol("int_list"), int_ty);
+
+ nil = ctx.mkConst(int_list.getNilDecl());
+ l1 = ctx.mkApp(int_list.getConsDecl(), ctx.mkInt(1), nil);
+ l2 = ctx.mkApp(int_list.getConsDecl(), ctx.mkInt(2), nil);
+
+ /* nil != cons(1, nil) */
+ prove(ctx, ctx.mkNot(ctx.mkEq(nil, l1)), false);
+
+ /* cons(2,nil) != cons(1, nil) */
+ prove(ctx, ctx.mkNot(ctx.mkEq(l1, l2)), false);
+
+ /* cons(x,nil) = cons(y, nil) => x = y */
+ x = ctx.mkConst("x", int_ty);
+ y = ctx.mkConst("y", int_ty);
+ l1 = ctx.mkApp(int_list.getConsDecl(), x, nil);
+ l2 = ctx.mkApp(int_list.getConsDecl(), y, nil);
+ prove(ctx, ctx.mkImplies(ctx.mkEq(l1, l2), ctx.mkEq(x, y)), false);
+
+ /* cons(x,u) = cons(x, v) => u = v */
+ u = ctx.mkConst("u", int_list);
+ v = ctx.mkConst("v", int_list);
+ l1 = ctx.mkApp(int_list.getConsDecl(), x, u);
+ l2 = ctx.mkApp(int_list.getConsDecl(), y, v);
+ prove(ctx, ctx.mkImplies(ctx.mkEq(l1, l2), ctx.mkEq(u, v)), false);
+ prove(ctx, ctx.mkImplies(ctx.mkEq(l1, l2), ctx.mkEq(x, y)), false);
+
+ /* is_nil(u) or is_cons(u) */
+ prove(ctx, ctx.mkOr((BoolExpr) ctx.mkApp(int_list.getIsNilDecl(), u),
+ (BoolExpr) ctx.mkApp(int_list.getIsConsDecl(), u)), false);
+
+ /* occurs check u != cons(x,u) */
+ prove(ctx, ctx.mkNot(ctx.mkEq(u, l1)), false);
+
+ /* destructors: is_cons(u) => u = cons(head(u),tail(u)) */
+ fml1 = ctx.mkEq(
+ u,
+ ctx.mkApp(int_list.getConsDecl(),
+ ctx.mkApp(int_list.getHeadDecl(), u),
+ ctx.mkApp(int_list.getTailDecl(), u)));
+ fml = ctx.mkImplies((BoolExpr) ctx.mkApp(int_list.getIsConsDecl(), u),
+ fml1);
+ System.out.println("Formula " + fml);
+
+ prove(ctx, fml, false);
+
+ disprove(ctx, fml1, false);
+ }
+
+ // / Create a binary tree datatype.
+
+ public void treeExample(Context ctx) throws TestFailedException
+ {
+ System.out.println("TreeExample");
+ Log.append("TreeExample");
+
+ Sort cell;
+ FuncDecl nil_decl, is_nil_decl, cons_decl, is_cons_decl, car_decl, cdr_decl;
+ Expr nil, l1, l2, x, y, u, v;
+ BoolExpr fml, fml1;
+ String[] head_tail = new String[] { "car", "cdr" };
+ Sort[] sorts = new Sort[] { null, null };
+ int[] sort_refs = new int[] { 0, 0 };
+ Constructor nil_con, cons_con;
+
+ nil_con = ctx.mkConstructor("nil", "is_nil", null, null, null);
+ cons_con = ctx.mkConstructor("cons", "is_cons", head_tail, sorts,
+ sort_refs);
+ Constructor[] constructors = new Constructor[] { nil_con, cons_con };
+
+ cell = ctx.mkDatatypeSort("cell", constructors);
+
+ nil_decl = nil_con.ConstructorDecl();
+ is_nil_decl = nil_con.getTesterDecl();
+ cons_decl = cons_con.ConstructorDecl();
+ is_cons_decl = cons_con.getTesterDecl();
+ FuncDecl[] cons_accessors = cons_con.getAccessorDecls();
+ car_decl = cons_accessors[0];
+ cdr_decl = cons_accessors[1];
+
+ nil = ctx.mkConst(nil_decl);
+ l1 = ctx.mkApp(cons_decl, nil, nil);
+ l2 = ctx.mkApp(cons_decl, l1, nil);
+
+ /* nil != cons(nil, nil) */
+ prove(ctx, ctx.mkNot(ctx.mkEq(nil, l1)), false);
+
+ /* cons(x,u) = cons(x, v) => u = v */
+ u = ctx.mkConst("u", cell);
+ v = ctx.mkConst("v", cell);
+ x = ctx.mkConst("x", cell);
+ y = ctx.mkConst("y", cell);
+ l1 = ctx.mkApp(cons_decl, x, u);
+ l2 = ctx.mkApp(cons_decl, y, v);
+ prove(ctx, ctx.mkImplies(ctx.mkEq(l1, l2), ctx.mkEq(u, v)), false);
+ prove(ctx, ctx.mkImplies(ctx.mkEq(l1, l2), ctx.mkEq(x, y)), false);
+
+ /* is_nil(u) or is_cons(u) */
+ prove(ctx,
+ ctx.mkOr((BoolExpr) ctx.mkApp(is_nil_decl, u),
+ (BoolExpr) ctx.mkApp(is_cons_decl, u)), false);
+
+ /* occurs check u != cons(x,u) */
+ prove(ctx, ctx.mkNot(ctx.mkEq(u, l1)), false);
+
+ /* destructors: is_cons(u) => u = cons(car(u),cdr(u)) */
+ fml1 = ctx.mkEq(
+ u,
+ ctx.mkApp(cons_decl, ctx.mkApp(car_decl, u),
+ ctx.mkApp(cdr_decl, u)));
+ fml = ctx.mkImplies((BoolExpr) ctx.mkApp(is_cons_decl, u), fml1);
+ System.out.println("Formula " + fml);
+ prove(ctx, fml, false);
+
+ disprove(ctx, fml1, false);
+ }
+
+ // / Create a forest of trees.
+
+ // / <remarks>
+ // / forest ::= nil | cons(tree, forest)
+ // / tree ::= nil | cons(forest, forest)
+ // / </remarks>
+ public void forestExample(Context ctx) throws TestFailedException
+ {
+ System.out.println("ForestExample");
+ Log.append("ForestExample");
+
+ Sort tree, forest;
+ @SuppressWarnings("unused")
+ FuncDecl nil1_decl, is_nil1_decl, cons1_decl, is_cons1_decl, car1_decl, cdr1_decl;
+ @SuppressWarnings("unused")
+ FuncDecl nil2_decl, is_nil2_decl, cons2_decl, is_cons2_decl, car2_decl, cdr2_decl;
+ @SuppressWarnings("unused")
+ Expr nil1, nil2, t1, t2, t3, t4, f1, f2, f3, l1, l2, x, y, u, v;
+
+ //
+ // Declare the names of the accessors for cons.
+ // Then declare the sorts of the accessors.
+ // For this example, all sorts refer to the new types 'forest' and
+ // 'tree'
+ // being declared, so we pass in null for both sorts1 and sorts2.
+ // On the other hand, the sort_refs arrays contain the indices of the
+ // two new sorts being declared. The first element in sort1_refs
+ // points to 'tree', which has index 1, the second element in sort1_refs
+ // array
+ // points to 'forest', which has index 0.
+ //
+ Symbol[] head_tail1 = new Symbol[] { ctx.mkSymbol("head"),
+ ctx.mkSymbol("tail") };
+ Sort[] sorts1 = new Sort[] { null, null };
+ int[] sort1_refs = new int[] { 1, 0 }; // the first item points to a
+ // tree, the second to a forest
+
+ Symbol[] head_tail2 = new Symbol[] { ctx.mkSymbol("car"),
+ ctx.mkSymbol("cdr") };
+ Sort[] sorts2 = new Sort[] { null, null };
+ int[] sort2_refs = new int[] { 0, 0 }; // both items point to the forest
+ // datatype.
+ Constructor nil1_con, cons1_con, nil2_con, cons2_con;
+ Constructor[] constructors1 = new Constructor[2], constructors2 = new Constructor[2];
+ Symbol[] sort_names = { ctx.mkSymbol("forest"), ctx.mkSymbol("tree") };
+
+ /* build a forest */
+ nil1_con = ctx.mkConstructor(ctx.mkSymbol("nil"),
+ ctx.mkSymbol("is_nil"), null, null, null);
+ cons1_con = ctx.mkConstructor(ctx.mkSymbol("cons1"),
+ ctx.mkSymbol("is_cons1"), head_tail1, sorts1, sort1_refs);
+ constructors1[0] = nil1_con;
+ constructors1[1] = cons1_con;
+
+ /* build a tree */
+ nil2_con = ctx.mkConstructor(ctx.mkSymbol("nil2"),
+ ctx.mkSymbol("is_nil2"), null, null, null);
+ cons2_con = ctx.mkConstructor(ctx.mkSymbol("cons2"),
+ ctx.mkSymbol("is_cons2"), head_tail2, sorts2, sort2_refs);
+ constructors2[0] = nil2_con;
+ constructors2[1] = cons2_con;
+
+ Constructor[][] clists = new Constructor[][] { constructors1,
+ constructors2 };
+
+ Sort[] sorts = ctx.mkDatatypeSorts(sort_names, clists);
+ forest = sorts[0];
+ tree = sorts[1];
+
+ //
+ // Now that the datatype has been created.
+ // Query the constructors for the constructor
+ // functions, testers, and field accessors.
+ //
+ nil1_decl = nil1_con.ConstructorDecl();
+ is_nil1_decl = nil1_con.getTesterDecl();
+ cons1_decl = cons1_con.ConstructorDecl();
+ is_cons1_decl = cons1_con.getTesterDecl();
+ FuncDecl[] cons1_accessors = cons1_con.getAccessorDecls();
+ car1_decl = cons1_accessors[0];
+ cdr1_decl = cons1_accessors[1];
+
+ nil2_decl = nil2_con.ConstructorDecl();
+ is_nil2_decl = nil2_con.getTesterDecl();
+ cons2_decl = cons2_con.ConstructorDecl();
+ is_cons2_decl = cons2_con.getTesterDecl();
+ FuncDecl[] cons2_accessors = cons2_con.getAccessorDecls();
+ car2_decl = cons2_accessors[0];
+ cdr2_decl = cons2_accessors[1];
+
+ nil1 = ctx.mkConst(nil1_decl);
+ nil2 = ctx.mkConst(nil2_decl);
+ f1 = ctx.mkApp(cons1_decl, nil2, nil1);
+ t1 = ctx.mkApp(cons2_decl, nil1, nil1);
+ t2 = ctx.mkApp(cons2_decl, f1, nil1);
+ t3 = ctx.mkApp(cons2_decl, f1, f1);
+ t4 = ctx.mkApp(cons2_decl, nil1, f1);
+ f2 = ctx.mkApp(cons1_decl, t1, nil1);
+ f3 = ctx.mkApp(cons1_decl, t1, f1);
+
+ /* nil != cons(nil,nil) */
+ prove(ctx, ctx.mkNot(ctx.mkEq(nil1, f1)), false);
+ prove(ctx, ctx.mkNot(ctx.mkEq(nil2, t1)), false);
+
+ /* cons(x,u) = cons(x, v) => u = v */
+ u = ctx.mkConst("u", forest);
+ v = ctx.mkConst("v", forest);
+ x = ctx.mkConst("x", tree);
+ y = ctx.mkConst("y", tree);
+ l1 = ctx.mkApp(cons1_decl, x, u);
+ l2 = ctx.mkApp(cons1_decl, y, v);
+ prove(ctx, ctx.mkImplies(ctx.mkEq(l1, l2), ctx.mkEq(u, v)), false);
+ prove(ctx, ctx.mkImplies(ctx.mkEq(l1, l2), ctx.mkEq(x, y)), false);
+
+ /* is_nil(u) or is_cons(u) */
+ prove(ctx,
+ ctx.mkOr((BoolExpr) ctx.mkApp(is_nil1_decl, u),
+ (BoolExpr) ctx.mkApp(is_cons1_decl, u)), false);
+
+ /* occurs check u != cons(x,u) */
+ prove(ctx, ctx.mkNot(ctx.mkEq(u, l1)), false);
+ }
+
+ // / Demonstrate how to use #Eval.
+
+ public void evalExample1(Context ctx)
+ {
+ System.out.println("EvalExample1");
+ Log.append("EvalExample1");
+
+ IntExpr x = ctx.mkIntConst("x");
+ IntExpr y = ctx.mkIntConst("y");
+ IntExpr two = ctx.mkInt(2);
+
+ Solver solver = ctx.mkSolver();
+
+ /* assert x < y */
+ solver.add(ctx.mkLt(x, y));
+
+ /* assert x > 2 */
+ solver.add(ctx.mkGt(x, two));
+
+ /* find model for the constraints above */
+ Model model = null;
+ if (Status.SATISFIABLE == solver.check())
+ {
+ model = solver.getModel();
+ System.out.println(model);
+ System.out.println("\nevaluating x+y");
+ Expr v = model.evaluate(ctx.mkAdd(x, y), false);
+ if (v != null)
+ {
+ System.out.println("result = " + (v));
+ } else
+ {
+ System.out.println("Failed to evaluate: x+y");
+ }
+ } else
+ {
+ System.out.println("BUG, the constraints are satisfiable.");
+ }
+ }
+
+ // / Demonstrate how to use #Eval on tuples.
+
+ public void evalExample2(Context ctx)
+ {
+ System.out.println("EvalExample2");
+ Log.append("EvalExample2");
+
+ Sort int_type = ctx.getIntSort();
+ TupleSort tuple = ctx.mkTupleSort(ctx.mkSymbol("mk_tuple"), // name of
+ // tuple
+ // constructor
+ new Symbol[] { ctx.mkSymbol("first"), ctx.mkSymbol("second") }, // names
+ // of
+ // projection
+ // operators
+ new Sort[] { int_type, int_type } // types of projection
+ // operators
+ );
+ FuncDecl first = tuple.getFieldDecls()[0]; // declarations are for
+ // projections
+ FuncDecl second = tuple.getFieldDecls()[1];
+ Expr tup1 = ctx.mkConst("t1", tuple);
+ Expr tup2 = ctx.mkConst("t2", tuple);
+
+ Solver solver = ctx.mkSolver();
+
+ /* assert tup1 != tup2 */
+ solver.add(ctx.mkNot(ctx.mkEq(tup1, tup2)));
+ /* assert first tup1 = first tup2 */
+ solver.add(ctx.mkEq(ctx.mkApp(first, tup1), ctx.mkApp(first, tup2)));
+
+ /* find model for the constraints above */
+ Model model = null;
+ if (Status.SATISFIABLE == solver.check())
+ {
+ model = solver.getModel();
+ System.out.println(model);
+ System.out.println("evaluating tup1 "
+ + (model.evaluate(tup1, false)));
+ System.out.println("evaluating tup2 "
+ + (model.evaluate(tup2, false)));
+ System.out.println("evaluating second(tup2) "
+ + (model.evaluate(ctx.mkApp(second, tup2), false)));
+ } else
+ {
+ System.out.println("BUG, the constraints are satisfiable.");
+ }
+ }
+
+ // / Demonstrate how to use <code>Push</code>and <code>Pop</code>to
+ // / control the size of models.
+
+ // / <remarks>Note: this test is specialized to 32-bit bitvectors.</remarks>
+ public void checkSmall(Context ctx, Solver solver, BitVecExpr... to_minimize)
+ {
+ int num_Exprs = to_minimize.length;
+ int[] upper = new int[num_Exprs];
+ int[] lower = new int[num_Exprs];
+ for (int i = 0; i < upper.length; ++i)
+ {
+ upper[i] = Integer.MAX_VALUE;
+ lower[i] = 0;
+ }
+ boolean some_work = true;
+ int last_index = -1;
+ int last_upper = 0;
+ while (some_work)
+ {
+ solver.push();
+
+ boolean check_is_sat = true;
+ while (check_is_sat && some_work)
+ {
+ // Assert all feasible bounds.
+ for (int i = 0; i < num_Exprs; ++i)
+ {
+ solver.add(ctx.mkBVULE(to_minimize[i],
+ ctx.mkBV(upper[i], 32)));
+ }
+
+ check_is_sat = Status.SATISFIABLE == solver.check();
+ if (!check_is_sat)
+ {
+ if (last_index != -1)
+ {
+ lower[last_index] = last_upper + 1;
+ }
+ break;
+ }
+ System.out.println(solver.getModel());
+
+ // narrow the bounds based on the current model.
+ for (int i = 0; i < num_Exprs; ++i)
+ {
+ Expr v = solver.getModel().evaluate(to_minimize[i], false);
+ int ui = ((BitVecNum) v).getInt();
+ if (ui < upper[i])
+ {
+ upper[i] = (int) ui;
+ }
+ System.out.println(i + " " + lower[i] + " " + upper[i]);
+ }
+
+ // find a new bound to add
+ some_work = false;
+ last_index = 0;
+ for (int i = 0; i < num_Exprs; ++i)
+ {
+ if (lower[i] < upper[i])
+ {
+ last_upper = (upper[i] + lower[i]) / 2;
+ last_index = i;
+ solver.add(ctx.mkBVULE(to_minimize[i],
+ ctx.mkBV(last_upper, 32)));
+ some_work = true;
+ break;
+ }
+ }
+ }
+ solver.pop();
+ }
+ }
+
+ // / Reduced-size model generation example.
+
+ public void findSmallModelExample(Context ctx)
+ {
+ System.out.println("FindSmallModelExample");
+ Log.append("FindSmallModelExample");
+
+ BitVecExpr x = ctx.mkBVConst("x", 32);
+ BitVecExpr y = ctx.mkBVConst("y", 32);
+ BitVecExpr z = ctx.mkBVConst("z", 32);
+
+ Solver solver = ctx.mkSolver();
+
+ solver.add(ctx.mkBVULE(x, ctx.mkBVAdd(y, z)));
+ checkSmall(ctx, solver, x, y, z);
+ }
+
+ // / Simplifier example.
+
+ public void simplifierExample(Context ctx)
+ {
+ System.out.println("SimplifierExample");
+ Log.append("SimplifierExample");
+
+ IntExpr x = ctx.mkIntConst("x");
+ IntExpr y = ctx.mkIntConst("y");
+ IntExpr z = ctx.mkIntConst("z");
+ @SuppressWarnings("unused")
+ IntExpr u = ctx.mkIntConst("u");
+
+ Expr t1 = ctx.mkAdd(x, ctx.mkSub(y, ctx.mkAdd(x, z)));
+ Expr t2 = t1.simplify();
+ System.out.println((t1) + " -> " + (t2));
+ }
+
+ // / Extract unsatisfiable core example
+
+ public void unsatCoreAndProofExample(Context ctx)
+ {
+ System.out.println("UnsatCoreAndProofExample");
+ Log.append("UnsatCoreAndProofExample");
+
+ Solver solver = ctx.mkSolver();
+
+ BoolExpr pa = ctx.mkBoolConst("PredA");
+ BoolExpr pb = ctx.mkBoolConst("PredB");
+ BoolExpr pc = ctx.mkBoolConst("PredC");
+ BoolExpr pd = ctx.mkBoolConst("PredD");
+ BoolExpr p1 = ctx.mkBoolConst("P1");
+ BoolExpr p2 = ctx.mkBoolConst("P2");
+ BoolExpr p3 = ctx.mkBoolConst("P3");
+ BoolExpr p4 = ctx.mkBoolConst("P4");
+ BoolExpr[] assumptions = new BoolExpr[] { ctx.mkNot(p1), ctx.mkNot(p2),
+ ctx.mkNot(p3), ctx.mkNot(p4) };
+ BoolExpr f1 = ctx.mkAnd(pa, pb, pc);
+ BoolExpr f2 = ctx.mkAnd(pa, ctx.mkNot(pb), pc);
+ BoolExpr f3 = ctx.mkOr(ctx.mkNot(pa), ctx.mkNot(pc));
+ BoolExpr f4 = pd;
+
+ solver.add(ctx.mkOr(f1, p1));
+ solver.add(ctx.mkOr(f2, p2));
+ solver.add(ctx.mkOr(f3, p3));
+ solver.add(ctx.mkOr(f4, p4));
+ Status result = solver.check(assumptions);
+
+ if (result == Status.UNSATISFIABLE)
+ {
+ System.out.println("unsat");
+ System.out.println("proof: " + solver.getProof());
+ System.out.println("core: ");
+ for (Expr c : solver.getUnsatCore())
+ {
+ System.out.println(c);
+ }
+ }
+ }
+
+ /// Extract unsatisfiable core example with AssertAndTrack
+
+ public void unsatCoreAndProofExample2(Context ctx)
+ {
+ System.out.println("UnsatCoreAndProofExample2");
+ Log.append("UnsatCoreAndProofExample2");
+
+ Solver solver = ctx.mkSolver();
+
+ BoolExpr pa = ctx.mkBoolConst("PredA");
+ BoolExpr pb = ctx.mkBoolConst("PredB");
+ BoolExpr pc = ctx.mkBoolConst("PredC");
+ BoolExpr pd = ctx.mkBoolConst("PredD");
+
+ BoolExpr f1 = ctx.mkAnd(new BoolExpr[] { pa, pb, pc });
+ BoolExpr f2 = ctx.mkAnd(new BoolExpr[] { pa, ctx.mkNot(pb), pc });
+ BoolExpr f3 = ctx.mkOr(ctx.mkNot(pa), ctx.mkNot(pc));
+ BoolExpr f4 = pd;
+
+ BoolExpr p1 = ctx.mkBoolConst("P1");
+ BoolExpr p2 = ctx.mkBoolConst("P2");
+ BoolExpr p3 = ctx.mkBoolConst("P3");
+ BoolExpr p4 = ctx.mkBoolConst("P4");
+
+ solver.assertAndTrack(f1, p1);
+ solver.assertAndTrack(f2, p2);
+ solver.assertAndTrack(f3, p3);
+ solver.assertAndTrack(f4, p4);
+ Status result = solver.check();
+
+ if (result == Status.UNSATISFIABLE)
+ {
+ System.out.println("unsat");
+ System.out.println("core: ");
+ for (Expr c : solver.getUnsatCore())
+ {
+ System.out.println(c);
+ }
+ }
+ }
+
+ public void finiteDomainExample(Context ctx)
+ {
+ System.out.println("FiniteDomainExample");
+ Log.append("FiniteDomainExample");
+
+ FiniteDomainSort s = ctx.mkFiniteDomainSort("S", 10);
+ FiniteDomainSort t = ctx.mkFiniteDomainSort("T", 10);
+ FiniteDomainNum s1 = (FiniteDomainNum)ctx.mkNumeral(1, s);
+ FiniteDomainNum t1 = (FiniteDomainNum)ctx.mkNumeral(1, t);
+ System.out.println(s);
+ System.out.println(t);
+ System.out.println(s1);
+ System.out.println(t1);
+ System.out.println(s1.getInt());
+ System.out.println(t1.getInt());
+ // But you cannot mix numerals of different sorts
+ // even if the size of their domains are the same:
+ // System.out.println(ctx.mkEq(s1, t1));
+ }
+
+ public void floatingPointExample1(Context ctx) throws TestFailedException
+ {
+ System.out.println("FloatingPointExample1");
+ Log.append("FloatingPointExample1");
+
+ FPSort s = ctx.mkFPSort(11, 53);
+ System.out.println("Sort: " + s);
+
+ FPNum x = (FPNum)ctx.mkNumeral("-1e1", s); /* -1 * 10^1 = -10 */
+ FPNum y = (FPNum)ctx.mkNumeral("-10", s); /* -10 */
+ FPNum z = (FPNum)ctx.mkNumeral("-1.25p3", s); /* -1.25 * 2^3 = -1.25 * 8 = -10 */
+ System.out.println("x=" + x.toString() +
+ "; y=" + y.toString() +
+ "; z=" + z.toString());
+
+ BoolExpr a = ctx.mkAnd(ctx.mkFPEq(x, y), ctx.mkFPEq(y, z));
+ check(ctx, ctx.mkNot(a), Status.UNSATISFIABLE);
+
+ /* nothing is equal to NaN according to floating-point
+ * equality, so NaN == k should be unsatisfiable. */
+ FPExpr k = (FPExpr)ctx.mkConst("x", s);
+ FPExpr nan = ctx.mkFPNaN(s);
+
+ /* solver that runs the default tactic for QF_FP. */
+ Solver slvr = ctx.mkSolver("QF_FP");
+ slvr.add(ctx.mkFPEq(nan, k));
+ if (slvr.check() != Status.UNSATISFIABLE)
+ throw new TestFailedException();
+ System.out.println("OK, unsat:" + System.getProperty("line.separator") + slvr);
+
+ /* NaN is equal to NaN according to normal equality. */
+ slvr = ctx.mkSolver("QF_FP");
+ slvr.add(ctx.mkEq(nan, nan));
+ if (slvr.check() != Status.SATISFIABLE)
+ throw new TestFailedException();
+ System.out.println("OK, sat:" + System.getProperty("line.separator") + slvr);
+
+ /* Let's prove -1e1 * -1.25e3 == +100 */
+ x = (FPNum)ctx.mkNumeral("-1e1", s);
+ y = (FPNum)ctx.mkNumeral("-1.25p3", s);
+ FPExpr x_plus_y = (FPExpr)ctx.mkConst("x_plus_y", s);
+ FPNum r = (FPNum)ctx.mkNumeral("100", s);
+ slvr = ctx.mkSolver("QF_FP");
+
+ slvr.add(ctx.mkEq(x_plus_y, ctx.mkFPMul(ctx.mkFPRoundNearestTiesToAway(), x, y)));
+ slvr.add(ctx.mkNot(ctx.mkFPEq(x_plus_y, r)));
+ if (slvr.check() != Status.UNSATISFIABLE)
+ throw new TestFailedException();
+ System.out.println("OK, unsat:" + System.getProperty("line.separator") + slvr);
+ }
+
+ public void floatingPointExample2(Context ctx) throws TestFailedException
+ {
+ System.out.println("FloatingPointExample2");
+ Log.append("FloatingPointExample2");
+ FPSort double_sort = ctx.mkFPSort(11, 53);
+ FPRMSort rm_sort = ctx.mkFPRoundingModeSort();
+
+ FPRMExpr rm = (FPRMExpr)ctx.mkConst(ctx.mkSymbol("rm"), rm_sort);
+ BitVecExpr x = (BitVecExpr)ctx.mkConst(ctx.mkSymbol("x"), ctx.mkBitVecSort(64));
+ FPExpr y = (FPExpr)ctx.mkConst(ctx.mkSymbol("y"), double_sort);
+ FPExpr fp_val = ctx.mkFP(42, double_sort);
+
+ BoolExpr c1 = ctx.mkEq(y, fp_val);
+ BoolExpr c2 = ctx.mkEq(x, ctx.mkFPToBV(rm, y, 64, false));
+ BoolExpr c3 = ctx.mkEq(x, ctx.mkBV(42, 64));
+ BoolExpr c4 = ctx.mkEq(ctx.mkNumeral(42, ctx.getRealSort()), ctx.mkFPToReal(fp_val));
+ BoolExpr c5 = ctx.mkAnd(c1, c2, c3, c4);
+ System.out.println("c5 = " + c5);
+
+ /* Generic solver */
+ Solver s = ctx.mkSolver();
+ s.add(c5);
+
+ if (s.check() != Status.SATISFIABLE)
+ throw new TestFailedException();
+
+ System.out.println("OK, model: " + s.getModel().toString());
+ }
+
+ public void optimizeExample(Context ctx)
+ {
+ System.out.println("Opt");
+
+ Optimize opt = ctx.mkOptimize();
+
+ // Set constraints.
+ IntExpr xExp = ctx.mkIntConst("x");
+ IntExpr yExp = ctx.mkIntConst("y");
+
+ opt.Add(ctx.mkEq(ctx.mkAdd(xExp, yExp), ctx.mkInt(10)),
+ ctx.mkGe(xExp, ctx.mkInt(0)),
+ ctx.mkGe(yExp, ctx.mkInt(0)));
+
+ // Set objectives.
+ Optimize.Handle mx = opt.MkMaximize(xExp);
+ Optimize.Handle my = opt.MkMaximize(yExp);
+
+ System.out.println(opt.Check());
+ System.out.println(mx);
+ System.out.println(my);
+ }
+
+ public void translationExample() {
+ Context ctx1 = new Context();
+ Context ctx2 = new Context();
+
+ Sort s1 = ctx1.getIntSort();
+ Sort s2 = ctx2.getIntSort();
+ Sort s3 = (Sort) s1.translate(ctx2);
+
+ System.out.println(s1 == s2);
+ System.out.println(s1.equals(s2));
+ System.out.println(s2.equals(s3));
+ System.out.println(s1.equals(s3));
+
+ Expr e1 = ctx1.mkIntConst("e1");
+ Expr e2 = ctx2.mkIntConst("e1");
+ Expr e3 = e1.translate(ctx2);
+
+ System.out.println(e1 == e2);
+ System.out.println(e1.equals(e2));
+ System.out.println(e2.equals(e3));
+ System.out.println(e1.equals(e3));
+ }
+
+ public static void main(String[] args)
+ {
+ JavaExample p = new JavaExample();
+ try
+ {
+ com.microsoft.z3.Global.ToggleWarningMessages(true);
+ Log.open("test.log");
+
+ System.out.print("Z3 Major Version: ");
+ System.out.println(Version.getMajor());
+ System.out.print("Z3 Full Version: ");
+ System.out.println(Version.getString());
+ System.out.print("Z3 Full Version String: ");
+ System.out.println(Version.getFullVersion());
+
+ p.simpleExample();
+
+ { // These examples need model generation turned on.
+ HashMap<String, String> cfg = new HashMap<String, String>();
+ cfg.put("model", "true");
+ Context ctx = new Context(cfg);
+
+ p.optimizeExample(ctx);
+ p.basicTests(ctx);
+ p.castingTest(ctx);
+ p.sudokuExample(ctx);
+ p.quantifierExample1(ctx);
+ p.quantifierExample2(ctx);
+ p.logicExample(ctx);
+ p.parOrExample(ctx);
+ p.findModelExample1(ctx);
+ p.findModelExample2(ctx);
+ p.pushPopExample1(ctx);
+ p.arrayExample1(ctx);
+ p.arrayExample3(ctx);
+ p.bitvectorExample1(ctx);
+ p.bitvectorExample2(ctx);
+ p.parserExample1(ctx);
+ p.parserExample2(ctx);
+ p.parserExample4(ctx);
+ p.parserExample5(ctx);
+ p.iteExample(ctx);
+ p.evalExample1(ctx);
+ p.evalExample2(ctx);
+ p.findSmallModelExample(ctx);
+ p.simplifierExample(ctx);
+ p.finiteDomainExample(ctx);
+ p.floatingPointExample1(ctx);
+ p.floatingPointExample2(ctx);
+ }
+
+ { // These examples need proof generation turned on.
+ HashMap<String, String> cfg = new HashMap<String, String>();
+ cfg.put("proof", "true");
+ Context ctx = new Context(cfg);
+ p.proveExample1(ctx);
+ p.proveExample2(ctx);
+ p.arrayExample2(ctx);
+ p.tupleExample(ctx);
+ p.parserExample3(ctx);
+ p.enumExample(ctx);
+ p.listExample(ctx);
+ p.treeExample(ctx);
+ p.forestExample(ctx);
+ p.unsatCoreAndProofExample(ctx);
+ p.unsatCoreAndProofExample2(ctx);
+ }
+
+ { // These examples need proof generation turned on and auto-config
+ // set to false.
+ HashMap<String, String> cfg = new HashMap<String, String>();
+ cfg.put("proof", "true");
+ cfg.put("auto-config", "false");
+ Context ctx = new Context(cfg);
+ p.quantifierExample3(ctx);
+ p.quantifierExample4(ctx);
+ }
+
+ p.translationExample();
+
+ Log.close();
+ if (Log.isOpen())
+ System.out.println("Log is still open!");
+ } catch (Z3Exception ex)
+ {
+ System.out.println("Z3 Managed Exception: " + ex.getMessage());
+ System.out.println("Stack trace: ");
+ ex.printStackTrace(System.out);
+ } catch (TestFailedException ex)
+ {
+ System.out.println("TEST CASE FAILED: " + ex.getMessage());
+ System.out.println("Stack trace: ");
+ ex.printStackTrace(System.out);
+ } catch (Exception ex)
+ {
+ System.out.println("Unknown Exception: " + ex.getMessage());
+ System.out.println("Stack trace: ");
+ ex.printStackTrace(System.out);
+ }
+ }
+} \ No newline at end of file
diff --git a/rba.tool.core/lib/z3/Microsoft.Z3.dll b/rba.tool.core/lib/z3/Microsoft.Z3.dll
new file mode 100644
index 0000000..0faeeca
--- /dev/null
+++ b/rba.tool.core/lib/z3/Microsoft.Z3.dll
Binary files differ
diff --git a/rba.tool.core/lib/z3/Microsoft.Z3.xml b/rba.tool.core/lib/z3/Microsoft.Z3.xml
new file mode 100644
index 0000000..e6ae53a
--- /dev/null
+++ b/rba.tool.core/lib/z3/Microsoft.Z3.xml
@@ -0,0 +1,6648 @@
+<?xml version="1.0"?>
+<doc>
+ <assembly>
+ <name>Microsoft.Z3</name>
+ </assembly>
+ <members>
+ <member name="T:Microsoft.Z3.AlgebraicNum">
+ <summary>
+ Algebraic numbers
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.ArithExpr">
+ <summary>
+ Arithmetic expressions (int/real)
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Expr">
+ <summary>
+ Expressions are terms.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.AST">
+ <summary>
+ The abstract syntax tree (AST) class.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Z3Object">
+ <summary>
+ Internal base class for interfacing with native Z3 objects.
+ Should not be used externally.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Z3Object.Finalize">
+ <summary>
+ Finalizer.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Z3Object.Dispose">
+ <summary>
+ Disposes of the underlying native Z3 object.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.AST.op_Equality(Microsoft.Z3.AST,Microsoft.Z3.AST)">
+ <summary>
+ Comparison operator.
+ </summary>
+ <param name="a">An AST</param>
+ <param name="b">An AST</param>
+ <returns>True if <paramref name="a"/> and <paramref name="b"/> are from the same context
+ and represent the same sort; false otherwise.</returns>
+ </member>
+ <member name="M:Microsoft.Z3.AST.op_Inequality(Microsoft.Z3.AST,Microsoft.Z3.AST)">
+ <summary>
+ Comparison operator.
+ </summary>
+ <param name="a">An AST</param>
+ <param name="b">An AST</param>
+ <returns>True if <paramref name="a"/> and <paramref name="b"/> are not from the same context
+ or represent different sorts; false otherwise.</returns>
+ </member>
+ <member name="M:Microsoft.Z3.AST.Equals(System.Object)">
+ <summary>
+ Object comparison.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.AST.CompareTo(System.Object)">
+ <summary>
+ Object Comparison.
+ </summary>
+ <param name="other">Another AST</param>
+ <returns>Negative if the object should be sorted before <paramref name="other"/>, positive if after else zero.</returns>
+ </member>
+ <member name="M:Microsoft.Z3.AST.GetHashCode">
+ <summary>
+ The AST's hash code.
+ </summary>
+ <returns>A hash code</returns>
+ </member>
+ <member name="M:Microsoft.Z3.AST.Translate(Microsoft.Z3.Context)">
+ <summary>
+ Translates (copies) the AST to the Context <paramref name="ctx"/>.
+ </summary>
+ <param name="ctx">A context</param>
+ <returns>A copy of the AST which is associated with <paramref name="ctx"/></returns>
+ </member>
+ <member name="M:Microsoft.Z3.AST.ToString">
+ <summary>
+ A string representation of the AST.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.AST.SExpr">
+ <summary>
+ A string representation of the AST in s-expression notation.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.AST.Id">
+ <summary>
+ A unique identifier for the AST (unique among all ASTs).
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.AST.ASTKind">
+ <summary>
+ The kind of the AST.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.AST.IsExpr">
+ <summary>
+ Indicates whether the AST is an Expr
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.AST.IsApp">
+ <summary>
+ Indicates whether the AST is an application
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.AST.IsVar">
+ <summary>
+ Indicates whether the AST is a BoundVariable
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.AST.IsQuantifier">
+ <summary>
+ Indicates whether the AST is a Quantifier
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.AST.IsSort">
+ <summary>
+ Indicates whether the AST is a Sort
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.AST.IsFuncDecl">
+ <summary>
+ Indicates whether the AST is a FunctionDeclaration
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.IDecRefQueue">
+ <summary>
+ DecRefQueue interface
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.IDecRefQueue.SetLimit(System.UInt32)">
+ <summary>
+ Sets the limit on numbers of objects that are kept back at GC collection.
+ </summary>
+ <param name="l"></param>
+ </member>
+ <member name="M:Microsoft.Z3.Expr.Simplify(Microsoft.Z3.Params)">
+ <summary>
+ Returns a simplified version of the expression.
+ </summary>
+ <param name="p">A set of parameters to configure the simplifier</param>
+ <seealso cref="M:Microsoft.Z3.Context.SimplifyHelp"/>
+ </member>
+ <member name="M:Microsoft.Z3.Expr.Update(Microsoft.Z3.Expr[])">
+ <summary>
+ Update the arguments of the expression using the arguments <paramref name="args"/>
+ The number of new arguments should coincide with the current number of arguments.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Expr.Substitute(Microsoft.Z3.Expr[],Microsoft.Z3.Expr[])">
+ <summary>
+ Substitute every occurrence of <c>from[i]</c> in the expression with <c>to[i]</c>, for <c>i</c> smaller than <c>num_exprs</c>.
+ </summary>
+ <remarks>
+ The result is the new expression. The arrays <c>from</c> and <c>to</c> must have size <c>num_exprs</c>.
+ For every <c>i</c> smaller than <c>num_exprs</c>, we must have that
+ sort of <c>from[i]</c> must be equal to sort of <c>to[i]</c>.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Expr.Substitute(Microsoft.Z3.Expr,Microsoft.Z3.Expr)">
+ <summary>
+ Substitute every occurrence of <c>from</c> in the expression with <c>to</c>.
+ </summary>
+ <seealso cref="M:Microsoft.Z3.Expr.Substitute(Microsoft.Z3.Expr[],Microsoft.Z3.Expr[])"/>
+ </member>
+ <member name="M:Microsoft.Z3.Expr.SubstituteVars(Microsoft.Z3.Expr[])">
+ <summary>
+ Substitute the free variables in the expression with the expressions in <paramref name="to"/>
+ </summary>
+ <remarks>
+ For every <c>i</c> smaller than <c>num_exprs</c>, the variable with de-Bruijn index <c>i</c> is replaced with term <c>to[i]</c>.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Expr.Translate(Microsoft.Z3.Context)">
+ <summary>
+ Translates (copies) the term to the Context <paramref name="ctx"/>.
+ </summary>
+ <param name="ctx">A context</param>
+ <returns>A copy of the term which is associated with <paramref name="ctx"/></returns>
+ </member>
+ <member name="M:Microsoft.Z3.Expr.ToString">
+ <summary>
+ Returns a string representation of the expression.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Expr.#ctor(Microsoft.Z3.Context,System.IntPtr)">
+ <summary>
+ Constructor for Expr
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.FuncDecl">
+ <summary>
+ The function declaration of the function that is applied in this expression.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.BoolValue">
+ <summary>
+ Indicates whether the expression is the true or false expression
+ or something else (Z3_L_UNDEF).
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.NumArgs">
+ <summary>
+ The number of arguments of the expression.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.Args">
+ <summary>
+ The arguments of the expression.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsNumeral">
+ <summary>
+ Indicates whether the term is a numeral
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsWellSorted">
+ <summary>
+ Indicates whether the term is well-sorted.
+ </summary>
+ <returns>True if the term is well-sorted, false otherwise.</returns>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.Sort">
+ <summary>
+ The Sort of the term.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsConst">
+ <summary>
+ Indicates whether the term represents a constant.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsIntNum">
+ <summary>
+ Indicates whether the term is an integer numeral.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsRatNum">
+ <summary>
+ Indicates whether the term is a real numeral.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsAlgebraicNumber">
+ <summary>
+ Indicates whether the term is an algebraic number
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBool">
+ <summary>
+ Indicates whether the term has Boolean sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsTrue">
+ <summary>
+ Indicates whether the term is the constant true.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFalse">
+ <summary>
+ Indicates whether the term is the constant false.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsEq">
+ <summary>
+ Indicates whether the term is an equality predicate.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsDistinct">
+ <summary>
+ Indicates whether the term is an n-ary distinct predicate (every argument is mutually distinct).
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsITE">
+ <summary>
+ Indicates whether the term is a ternary if-then-else term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsAnd">
+ <summary>
+ Indicates whether the term is an n-ary conjunction
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsOr">
+ <summary>
+ Indicates whether the term is an n-ary disjunction
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsIff">
+ <summary>
+ Indicates whether the term is an if-and-only-if (Boolean equivalence, binary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsXor">
+ <summary>
+ Indicates whether the term is an exclusive or
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsNot">
+ <summary>
+ Indicates whether the term is a negation
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsImplies">
+ <summary>
+ Indicates whether the term is an implication
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsInterpolant">
+ <summary>
+ Indicates whether the term is marked for interpolation.
+ </summary>
+ <remarks></remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsInt">
+ <summary>
+ Indicates whether the term is of integer sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsReal">
+ <summary>
+ Indicates whether the term is of sort real.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsArithmeticNumeral">
+ <summary>
+ Indicates whether the term is an arithmetic numeral.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsLE">
+ <summary>
+ Indicates whether the term is a less-than-or-equal
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsGE">
+ <summary>
+ Indicates whether the term is a greater-than-or-equal
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsLT">
+ <summary>
+ Indicates whether the term is a less-than
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsGT">
+ <summary>
+ Indicates whether the term is a greater-than
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsAdd">
+ <summary>
+ Indicates whether the term is addition (binary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsSub">
+ <summary>
+ Indicates whether the term is subtraction (binary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsUMinus">
+ <summary>
+ Indicates whether the term is a unary minus
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsMul">
+ <summary>
+ Indicates whether the term is multiplication (binary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsDiv">
+ <summary>
+ Indicates whether the term is division (binary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsIDiv">
+ <summary>
+ Indicates whether the term is integer division (binary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsRemainder">
+ <summary>
+ Indicates whether the term is remainder (binary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsModulus">
+ <summary>
+ Indicates whether the term is modulus (binary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsIntToReal">
+ <summary>
+ Indicates whether the term is a coercion of integer to real (unary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsRealToInt">
+ <summary>
+ Indicates whether the term is a coercion of real to integer (unary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsRealIsInt">
+ <summary>
+ Indicates whether the term is a check that tests whether a real is integral (unary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsArray">
+ <summary>
+ Indicates whether the term is of an array sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsStore">
+ <summary>
+ Indicates whether the term is an array store.
+ </summary>
+ <remarks>It satisfies select(store(a,i,v),j) = if i = j then v else select(a,j).
+ Array store takes at least 3 arguments. </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsSelect">
+ <summary>
+ Indicates whether the term is an array select.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsConstantArray">
+ <summary>
+ Indicates whether the term is a constant array.
+ </summary>
+ <remarks>For example, select(const(v),i) = v holds for every v and i. The function is unary.</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsDefaultArray">
+ <summary>
+ Indicates whether the term is a default array.
+ </summary>
+ <remarks>For example default(const(v)) = v. The function is unary.</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsArrayMap">
+ <summary>
+ Indicates whether the term is an array map.
+ </summary>
+ <remarks>It satisfies map[f](a1,..,a_n)[i] = f(a1[i],...,a_n[i]) for every i.</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsAsArray">
+ <summary>
+ Indicates whether the term is an as-array term.
+ </summary>
+ <remarks>An as-array term is n array value that behaves as the function graph of the
+ function passed as parameter.</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsSetUnion">
+ <summary>
+ Indicates whether the term is set union
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsSetIntersect">
+ <summary>
+ Indicates whether the term is set intersection
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsSetDifference">
+ <summary>
+ Indicates whether the term is set difference
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsSetComplement">
+ <summary>
+ Indicates whether the term is set complement
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsSetSubset">
+ <summary>
+ Indicates whether the term is set subset
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBV">
+ <summary>
+ Indicates whether the terms is of bit-vector sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVNumeral">
+ <summary>
+ Indicates whether the term is a bit-vector numeral
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVBitOne">
+ <summary>
+ Indicates whether the term is a one-bit bit-vector with value one
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVBitZero">
+ <summary>
+ Indicates whether the term is a one-bit bit-vector with value zero
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVUMinus">
+ <summary>
+ Indicates whether the term is a bit-vector unary minus
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVAdd">
+ <summary>
+ Indicates whether the term is a bit-vector addition (binary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVSub">
+ <summary>
+ Indicates whether the term is a bit-vector subtraction (binary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVMul">
+ <summary>
+ Indicates whether the term is a bit-vector multiplication (binary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVSDiv">
+ <summary>
+ Indicates whether the term is a bit-vector signed division (binary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVUDiv">
+ <summary>
+ Indicates whether the term is a bit-vector unsigned division (binary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVSRem">
+ <summary>
+ Indicates whether the term is a bit-vector signed remainder (binary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVURem">
+ <summary>
+ Indicates whether the term is a bit-vector unsigned remainder (binary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVSMod">
+ <summary>
+ Indicates whether the term is a bit-vector signed modulus
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVSDiv0">
+ <summary>
+ Indicates whether the term is a bit-vector signed division by zero
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVUDiv0">
+ <summary>
+ Indicates whether the term is a bit-vector unsigned division by zero
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVSRem0">
+ <summary>
+ Indicates whether the term is a bit-vector signed remainder by zero
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVURem0">
+ <summary>
+ Indicates whether the term is a bit-vector unsigned remainder by zero
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVSMod0">
+ <summary>
+ Indicates whether the term is a bit-vector signed modulus by zero
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVULE">
+ <summary>
+ Indicates whether the term is an unsigned bit-vector less-than-or-equal
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVSLE">
+ <summary>
+ Indicates whether the term is a signed bit-vector less-than-or-equal
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVUGE">
+ <summary>
+ Indicates whether the term is an unsigned bit-vector greater-than-or-equal
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVSGE">
+ <summary>
+ Indicates whether the term is a signed bit-vector greater-than-or-equal
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVULT">
+ <summary>
+ Indicates whether the term is an unsigned bit-vector less-than
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVSLT">
+ <summary>
+ Indicates whether the term is a signed bit-vector less-than
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVUGT">
+ <summary>
+ Indicates whether the term is an unsigned bit-vector greater-than
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVSGT">
+ <summary>
+ Indicates whether the term is a signed bit-vector greater-than
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVAND">
+ <summary>
+ Indicates whether the term is a bit-wise AND
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVOR">
+ <summary>
+ Indicates whether the term is a bit-wise OR
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVNOT">
+ <summary>
+ Indicates whether the term is a bit-wise NOT
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVXOR">
+ <summary>
+ Indicates whether the term is a bit-wise XOR
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVNAND">
+ <summary>
+ Indicates whether the term is a bit-wise NAND
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVNOR">
+ <summary>
+ Indicates whether the term is a bit-wise NOR
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVXNOR">
+ <summary>
+ Indicates whether the term is a bit-wise XNOR
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVConcat">
+ <summary>
+ Indicates whether the term is a bit-vector concatenation (binary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVSignExtension">
+ <summary>
+ Indicates whether the term is a bit-vector sign extension
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVZeroExtension">
+ <summary>
+ Indicates whether the term is a bit-vector zero extension
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVExtract">
+ <summary>
+ Indicates whether the term is a bit-vector extraction
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVRepeat">
+ <summary>
+ Indicates whether the term is a bit-vector repetition
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVReduceOR">
+ <summary>
+ Indicates whether the term is a bit-vector reduce OR
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVReduceAND">
+ <summary>
+ Indicates whether the term is a bit-vector reduce AND
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVComp">
+ <summary>
+ Indicates whether the term is a bit-vector comparison
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVShiftLeft">
+ <summary>
+ Indicates whether the term is a bit-vector shift left
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVShiftRightLogical">
+ <summary>
+ Indicates whether the term is a bit-vector logical shift right
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVShiftRightArithmetic">
+ <summary>
+ Indicates whether the term is a bit-vector arithmetic shift left
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVRotateLeft">
+ <summary>
+ Indicates whether the term is a bit-vector rotate left
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVRotateRight">
+ <summary>
+ Indicates whether the term is a bit-vector rotate right
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVRotateLeftExtended">
+ <summary>
+ Indicates whether the term is a bit-vector rotate left (extended)
+ </summary>
+ <remarks>Similar to Z3_OP_ROTATE_LEFT, but it is a binary operator instead of a parametric one.</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVRotateRightExtended">
+ <summary>
+ Indicates whether the term is a bit-vector rotate right (extended)
+ </summary>
+ <remarks>Similar to Z3_OP_ROTATE_RIGHT, but it is a binary operator instead of a parametric one.</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsIntToBV">
+ <summary>
+ Indicates whether the term is a coercion from integer to bit-vector
+ </summary>
+ <remarks>This function is not supported by the decision procedures. Only the most
+ rudimentary simplification rules are applied to this function.</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVToInt">
+ <summary>
+ Indicates whether the term is a coercion from bit-vector to integer
+ </summary>
+ <remarks>This function is not supported by the decision procedures. Only the most
+ rudimentary simplification rules are applied to this function.</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVCarry">
+ <summary>
+ Indicates whether the term is a bit-vector carry
+ </summary>
+ <remarks>Compute the carry bit in a full-adder. The meaning is given by the
+ equivalence (carry l1 l2 l3) &lt;=&gt; (or (and l1 l2) (and l1 l3) (and l2 l3)))</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVXOR3">
+ <summary>
+ Indicates whether the term is a bit-vector ternary XOR
+ </summary>
+ <remarks>The meaning is given by the equivalence (xor3 l1 l2 l3) &lt;=&gt; (xor (xor l1 l2) l3)</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsLabel">
+ <summary>
+ Indicates whether the term is a label (used by the Boogie Verification condition generator).
+ </summary>
+ <remarks>The label has two parameters, a string and a Boolean polarity. It takes one argument, a formula.</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsLabelLit">
+ <summary>
+ Indicates whether the term is a label literal (used by the Boogie Verification condition generator).
+ </summary>
+ <remarks>A label literal has a set of string parameters. It takes no arguments.</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsOEQ">
+ <summary>
+ Indicates whether the term is a binary equivalence modulo namings.
+ </summary>
+ <remarks>This binary predicate is used in proof terms.
+ It captures equisatisfiability and equivalence modulo renamings.</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofTrue">
+ <summary>
+ Indicates whether the term is a Proof for the expression 'true'.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofAsserted">
+ <summary>
+ Indicates whether the term is a proof for a fact asserted by the user.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofGoal">
+ <summary>
+ Indicates whether the term is a proof for a fact (tagged as goal) asserted by the user.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofModusPonens">
+ <summary>
+ Indicates whether the term is proof via modus ponens
+ </summary>
+ <remarks>
+ Given a proof for p and a proof for (implies p q), produces a proof for q.
+ T1: p
+ T2: (implies p q)
+ [mp T1 T2]: q
+ The second antecedents may also be a proof for (iff p q).</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofReflexivity">
+ <summary>
+ Indicates whether the term is a proof for (R t t), where R is a reflexive relation.
+ </summary>
+ <remarks>This proof object has no antecedents.
+ The only reflexive relations that are used are
+ equivalence modulo namings, equality and equivalence.
+ That is, R is either '~', '=' or 'iff'.</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofSymmetry">
+ <summary>
+ Indicates whether the term is proof by symmetricity of a relation
+ </summary>
+ <remarks>
+ Given an symmetric relation R and a proof for (R t s), produces a proof for (R s t).
+ T1: (R t s)
+ [symmetry T1]: (R s t)
+ T1 is the antecedent of this proof object.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofTransitivity">
+ <summary>
+ Indicates whether the term is a proof by transitivity of a relation
+ </summary>
+ <remarks>
+ Given a transitive relation R, and proofs for (R t s) and (R s u), produces a proof
+ for (R t u).
+ T1: (R t s)
+ T2: (R s u)
+ [trans T1 T2]: (R t u)
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofTransitivityStar">
+ <summary>
+ Indicates whether the term is a proof by condensed transitivity of a relation
+ </summary>
+ <remarks>
+ Condensed transitivity proof. This proof object is only used if the parameter PROOF_MODE is 1.
+ It combines several symmetry and transitivity proofs.
+ Example:
+ T1: (R a b)
+ T2: (R c b)
+ T3: (R c d)
+ [trans* T1 T2 T3]: (R a d)
+ R must be a symmetric and transitive relation.
+
+ Assuming that this proof object is a proof for (R s t), then
+ a proof checker must check if it is possible to prove (R s t)
+ using the antecedents, symmetry and transitivity. That is,
+ if there is a path from s to t, if we view every
+ antecedent (R a b) as an edge between a and b.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofMonotonicity">
+ <summary>
+ Indicates whether the term is a monotonicity proof object.
+ </summary>
+ <remarks>
+ T1: (R t_1 s_1)
+ ...
+ Tn: (R t_n s_n)
+ [monotonicity T1 ... Tn]: (R (f t_1 ... t_n) (f s_1 ... s_n))
+ Remark: if t_i == s_i, then the antecedent Ti is suppressed.
+ That is, reflexivity proofs are supressed to save space.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofQuantIntro">
+ <summary>
+ Indicates whether the term is a quant-intro proof
+ </summary>
+ <remarks>
+ Given a proof for (~ p q), produces a proof for (~ (forall (x) p) (forall (x) q)).
+ T1: (~ p q)
+ [quant-intro T1]: (~ (forall (x) p) (forall (x) q))
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofDistributivity">
+ <summary>
+ Indicates whether the term is a distributivity proof object.
+ </summary>
+ <remarks>
+ Given that f (= or) distributes over g (= and), produces a proof for
+ (= (f a (g c d))
+ (g (f a c) (f a d)))
+ If f and g are associative, this proof also justifies the following equality:
+ (= (f (g a b) (g c d))
+ (g (f a c) (f a d) (f b c) (f b d)))
+ where each f and g can have arbitrary number of arguments.
+
+ This proof object has no antecedents.
+ Remark. This rule is used by the CNF conversion pass and
+ instantiated by f = or, and g = and.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofAndElimination">
+ <summary>
+ Indicates whether the term is a proof by elimination of AND
+ </summary>
+ <remarks>
+ Given a proof for (and l_1 ... l_n), produces a proof for l_i
+ T1: (and l_1 ... l_n)
+ [and-elim T1]: l_i
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofOrElimination">
+ <summary>
+ Indicates whether the term is a proof by eliminiation of not-or
+ </summary>
+ <remarks>
+ Given a proof for (not (or l_1 ... l_n)), produces a proof for (not l_i).
+ T1: (not (or l_1 ... l_n))
+ [not-or-elim T1]: (not l_i)
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofRewrite">
+ <summary>
+ Indicates whether the term is a proof by rewriting
+ </summary>
+ <remarks>
+ A proof for a local rewriting step (= t s).
+ The head function symbol of t is interpreted.
+
+ This proof object has no antecedents.
+ The conclusion of a rewrite rule is either an equality (= t s),
+ an equivalence (iff t s), or equi-satisfiability (~ t s).
+ Remark: if f is bool, then = is iff.
+
+ Examples:
+ (= (+ x 0) x)
+ (= (+ x 1 2) (+ 3 x))
+ (iff (or x false) x)
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofRewriteStar">
+ <summary>
+ Indicates whether the term is a proof by rewriting
+ </summary>
+ <remarks>
+ A proof for rewriting an expression t into an expression s.
+ This proof object is used if the parameter PROOF_MODE is 1.
+ This proof object can have n antecedents.
+ The antecedents are proofs for equalities used as substitution rules.
+ The object is also used in a few cases if the parameter PROOF_MODE is 2.
+ The cases are:
+ - When applying contextual simplification (CONTEXT_SIMPLIFIER=true)
+ - When converting bit-vectors to Booleans (BIT2BOOL=true)
+ - When pulling ite expression up (PULL_CHEAP_ITE_TREES=true)
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofPullQuant">
+ <summary>
+ Indicates whether the term is a proof for pulling quantifiers out.
+ </summary>
+ <remarks>
+ A proof for (iff (f (forall (x) q(x)) r) (forall (x) (f (q x) r))). This proof object has no antecedents.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofPullQuantStar">
+ <summary>
+ Indicates whether the term is a proof for pulling quantifiers out.
+ </summary>
+ <remarks>
+ A proof for (iff P Q) where Q is in prenex normal form.
+ This proof object is only used if the parameter PROOF_MODE is 1.
+ This proof object has no antecedents
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofPushQuant">
+ <summary>
+ Indicates whether the term is a proof for pushing quantifiers in.
+ </summary>
+ <remarks>
+ A proof for:
+ (iff (forall (x_1 ... x_m) (and p_1[x_1 ... x_m] ... p_n[x_1 ... x_m]))
+ (and (forall (x_1 ... x_m) p_1[x_1 ... x_m])
+ ...
+ (forall (x_1 ... x_m) p_n[x_1 ... x_m])))
+ This proof object has no antecedents
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofElimUnusedVars">
+ <summary>
+ Indicates whether the term is a proof for elimination of unused variables.
+ </summary>
+ <remarks>
+ A proof for (iff (forall (x_1 ... x_n y_1 ... y_m) p[x_1 ... x_n])
+ (forall (x_1 ... x_n) p[x_1 ... x_n]))
+
+ It is used to justify the elimination of unused variables.
+ This proof object has no antecedents.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofDER">
+ <summary>
+ Indicates whether the term is a proof for destructive equality resolution
+ </summary>
+ <remarks>
+ A proof for destructive equality resolution:
+ (iff (forall (x) (or (not (= x t)) P[x])) P[t])
+ if x does not occur in t.
+
+ This proof object has no antecedents.
+
+ Several variables can be eliminated simultaneously.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofQuantInst">
+ <summary>
+ Indicates whether the term is a proof for quantifier instantiation
+ </summary>
+ <remarks>
+ A proof of (or (not (forall (x) (P x))) (P a))
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofHypothesis">
+ <summary>
+ Indicates whether the term is a hypthesis marker.
+ </summary>
+ <remarks>Mark a hypothesis in a natural deduction style proof.</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofLemma">
+ <summary>
+ Indicates whether the term is a proof by lemma
+ </summary>
+ <remarks>
+ T1: false
+ [lemma T1]: (or (not l_1) ... (not l_n))
+
+ This proof object has one antecedent: a hypothetical proof for false.
+ It converts the proof in a proof for (or (not l_1) ... (not l_n)),
+ when T1 contains the hypotheses: l_1, ..., l_n.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofUnitResolution">
+ <summary>
+ Indicates whether the term is a proof by unit resolution
+ </summary>
+ <remarks>
+ T1: (or l_1 ... l_n l_1' ... l_m')
+ T2: (not l_1)
+ ...
+ T(n+1): (not l_n)
+ [unit-resolution T1 ... T(n+1)]: (or l_1' ... l_m')
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofIFFTrue">
+ <summary>
+ Indicates whether the term is a proof by iff-true
+ </summary>
+ <remarks>
+ T1: p
+ [iff-true T1]: (iff p true)
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofIFFFalse">
+ <summary>
+ Indicates whether the term is a proof by iff-false
+ </summary>
+ <remarks>
+ T1: (not p)
+ [iff-false T1]: (iff p false)
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofCommutativity">
+ <summary>
+ Indicates whether the term is a proof by commutativity
+ </summary>
+ <remarks>
+ [comm]: (= (f a b) (f b a))
+
+ f is a commutative operator.
+
+ This proof object has no antecedents.
+ Remark: if f is bool, then = is iff.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofDefAxiom">
+ <summary>
+ Indicates whether the term is a proof for Tseitin-like axioms
+ </summary>
+ <remarks>
+ Proof object used to justify Tseitin's like axioms:
+
+ (or (not (and p q)) p)
+ (or (not (and p q)) q)
+ (or (not (and p q r)) p)
+ (or (not (and p q r)) q)
+ (or (not (and p q r)) r)
+ ...
+ (or (and p q) (not p) (not q))
+ (or (not (or p q)) p q)
+ (or (or p q) (not p))
+ (or (or p q) (not q))
+ (or (not (iff p q)) (not p) q)
+ (or (not (iff p q)) p (not q))
+ (or (iff p q) (not p) (not q))
+ (or (iff p q) p q)
+ (or (not (ite a b c)) (not a) b)
+ (or (not (ite a b c)) a c)
+ (or (ite a b c) (not a) (not b))
+ (or (ite a b c) a (not c))
+ (or (not (not a)) (not a))
+ (or (not a) a)
+
+ This proof object has no antecedents.
+ Note: all axioms are propositional tautologies.
+ Note also that 'and' and 'or' can take multiple arguments.
+ You can recover the propositional tautologies by
+ unfolding the Boolean connectives in the axioms a small
+ bounded number of steps (=3).
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofDefIntro">
+ <summary>
+ Indicates whether the term is a proof for introduction of a name
+ </summary>
+ <remarks>
+ Introduces a name for a formula/term.
+ Suppose e is an expression with free variables x, and def-intro
+ introduces the name n(x). The possible cases are:
+
+ When e is of Boolean type:
+ [def-intro]: (and (or n (not e)) (or (not n) e))
+
+ or:
+ [def-intro]: (or (not n) e)
+ when e only occurs positively.
+
+ When e is of the form (ite cond th el):
+ [def-intro]: (and (or (not cond) (= n th)) (or cond (= n el)))
+
+ Otherwise:
+ [def-intro]: (= n e)
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofApplyDef">
+ <summary>
+ Indicates whether the term is a proof for application of a definition
+ </summary>
+ <remarks>
+ [apply-def T1]: F ~ n
+ F is 'equivalent' to n, given that T1 is a proof that
+ n is a name for F.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofIFFOEQ">
+ <summary>
+ Indicates whether the term is a proof iff-oeq
+ </summary>
+ <remarks>
+ T1: (iff p q)
+ [iff~ T1]: (~ p q)
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofNNFPos">
+ <summary>
+ Indicates whether the term is a proof for a positive NNF step
+ </summary>
+ <remarks>
+ Proof for a (positive) NNF step. Example:
+
+ T1: (not s_1) ~ r_1
+ T2: (not s_2) ~ r_2
+ T3: s_1 ~ r_1'
+ T4: s_2 ~ r_2'
+ [nnf-pos T1 T2 T3 T4]: (~ (iff s_1 s_2)
+ (and (or r_1 r_2') (or r_1' r_2)))
+
+ The negation normal form steps NNF_POS and NNF_NEG are used in the following cases:
+ (a) When creating the NNF of a positive force quantifier.
+ The quantifier is retained (unless the bound variables are eliminated).
+ Example
+ T1: q ~ q_new
+ [nnf-pos T1]: (~ (forall (x T) q) (forall (x T) q_new))
+
+ (b) When recursively creating NNF over Boolean formulas, where the top-level
+ connective is changed during NNF conversion. The relevant Boolean connectives
+ for NNF_POS are 'implies', 'iff', 'xor', 'ite'.
+ NNF_NEG furthermore handles the case where negation is pushed
+ over Boolean connectives 'and' and 'or'.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofNNFNeg">
+ <summary>
+ Indicates whether the term is a proof for a negative NNF step
+ </summary>
+ <remarks>
+ Proof for a (negative) NNF step. Examples:
+
+ T1: (not s_1) ~ r_1
+ ...
+ Tn: (not s_n) ~ r_n
+ [nnf-neg T1 ... Tn]: (not (and s_1 ... s_n)) ~ (or r_1 ... r_n)
+ and
+ T1: (not s_1) ~ r_1
+ ...
+ Tn: (not s_n) ~ r_n
+ [nnf-neg T1 ... Tn]: (not (or s_1 ... s_n)) ~ (and r_1 ... r_n)
+ and
+ T1: (not s_1) ~ r_1
+ T2: (not s_2) ~ r_2
+ T3: s_1 ~ r_1'
+ T4: s_2 ~ r_2'
+ [nnf-neg T1 T2 T3 T4]: (~ (not (iff s_1 s_2))
+ (and (or r_1 r_2) (or r_1' r_2')))
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofNNFStar">
+ <summary>
+ Indicates whether the term is a proof for (~ P Q) here Q is in negation normal form.
+ </summary>
+ <remarks>
+ A proof for (~ P Q) where Q is in negation normal form.
+
+ This proof object is only used if the parameter PROOF_MODE is 1.
+
+ This proof object may have n antecedents. Each antecedent is a PR_DEF_INTRO.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofCNFStar">
+ <summary>
+ Indicates whether the term is a proof for (~ P Q) where Q is in conjunctive normal form.
+ </summary>
+ <remarks>
+ A proof for (~ P Q) where Q is in conjunctive normal form.
+ This proof object is only used if the parameter PROOF_MODE is 1.
+ This proof object may have n antecedents. Each antecedent is a PR_DEF_INTRO.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofSkolemize">
+ <summary>
+ Indicates whether the term is a proof for a Skolemization step
+ </summary>
+ <remarks>
+ Proof for:
+
+ [sk]: (~ (not (forall x (p x y))) (not (p (sk y) y)))
+ [sk]: (~ (exists x (p x y)) (p (sk y) y))
+
+ This proof object has no antecedents.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofModusPonensOEQ">
+ <summary>
+ Indicates whether the term is a proof by modus ponens for equi-satisfiability.
+ </summary>
+ <remarks>
+ Modus ponens style rule for equi-satisfiability.
+ T1: p
+ T2: (~ p q)
+ [mp~ T1 T2]: q
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofTheoryLemma">
+ <summary>
+ Indicates whether the term is a proof for theory lemma
+ </summary>
+ <remarks>
+ Generic proof for theory lemmas.
+
+ The theory lemma function comes with one or more parameters.
+ The first parameter indicates the name of the theory.
+ For the theory of arithmetic, additional parameters provide hints for
+ checking the theory lemma.
+ The hints for arithmetic are:
+ - farkas - followed by rational coefficients. Multiply the coefficients to the
+ inequalities in the lemma, add the (negated) inequalities and obtain a contradiction.
+ - triangle-eq - Indicates a lemma related to the equivalence:
+ (iff (= t1 t2) (and (&lt;= t1 t2) (&lt;= t2 t1)))
+ - gcd-test - Indicates an integer linear arithmetic lemma that uses a gcd test.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsRelation">
+ <summary>
+ Indicates whether the term is of relation sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsRelationStore">
+ <summary>
+ Indicates whether the term is an relation store
+ </summary>
+ <remarks>
+ Insert a record into a relation.
+ The function takes <c>n+1</c> arguments, where the first argument is the relation and the remaining <c>n</c> elements
+ correspond to the <c>n</c> columns of the relation.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsEmptyRelation">
+ <summary>
+ Indicates whether the term is an empty relation
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsIsEmptyRelation">
+ <summary>
+ Indicates whether the term is a test for the emptiness of a relation
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsRelationalJoin">
+ <summary>
+ Indicates whether the term is a relational join
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsRelationUnion">
+ <summary>
+ Indicates whether the term is the union or convex hull of two relations.
+ </summary>
+ <remarks>The function takes two arguments.</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsRelationWiden">
+ <summary>
+ Indicates whether the term is the widening of two relations
+ </summary>
+ <remarks>The function takes two arguments.</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsRelationProject">
+ <summary>
+ Indicates whether the term is a projection of columns (provided as numbers in the parameters).
+ </summary>
+ <remarks>The function takes one argument.</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsRelationFilter">
+ <summary>
+ Indicates whether the term is a relation filter
+ </summary>
+ <remarks>
+ Filter (restrict) a relation with respect to a predicate.
+ The first argument is a relation.
+ The second argument is a predicate with free de-Brujin indices
+ corresponding to the columns of the relation.
+ So the first column in the relation has index 0.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsRelationNegationFilter">
+ <summary>
+ Indicates whether the term is an intersection of a relation with the negation of another.
+ </summary>
+ <remarks>
+ Intersect the first relation with respect to negation
+ of the second relation (the function takes two arguments).
+ Logically, the specification can be described by a function
+
+ target = filter_by_negation(pos, neg, columns)
+
+ where columns are pairs c1, d1, .., cN, dN of columns from pos and neg, such that
+ target are elements in x in pos, such that there is no y in neg that agrees with
+ x on the columns c1, d1, .., cN, dN.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsRelationRename">
+ <summary>
+ Indicates whether the term is the renaming of a column in a relation
+ </summary>
+ <remarks>
+ The function takes one argument.
+ The parameters contain the renaming as a cycle.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsRelationComplement">
+ <summary>
+ Indicates whether the term is the complement of a relation
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsRelationSelect">
+ <summary>
+ Indicates whether the term is a relational select
+ </summary>
+ <remarks>
+ Check if a record is an element of the relation.
+ The function takes <c>n+1</c> arguments, where the first argument is a relation,
+ and the remaining <c>n</c> arguments correspond to a record.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsRelationClone">
+ <summary>
+ Indicates whether the term is a relational clone (copy)
+ </summary>
+ <remarks>
+ Create a fresh copy (clone) of a relation.
+ The function is logically the identity, but
+ in the context of a register machine allows
+ for terms of kind <seealso cref="P:Microsoft.Z3.Expr.IsRelationUnion"/>
+ to perform destructive updates to the first argument.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFiniteDomain">
+ <summary>
+ Indicates whether the term is of an array sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFiniteDomainLT">
+ <summary>
+ Indicates whether the term is a less than predicate over a finite domain.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFP">
+ <summary>
+ Indicates whether the terms is of floating-point sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPRM">
+ <summary>
+ Indicates whether the terms is of floating-point rounding mode sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPNumeral">
+ <summary>
+ Indicates whether the term is a floating-point numeral
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPRMNumeral">
+ <summary>
+ Indicates whether the term is a floating-point rounding mode numeral
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPRMRoundNearestTiesToEven">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundNearestTiesToEven
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPRMRoundNearestTiesToAway">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundNearestTiesToAway
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPRMRoundTowardNegative">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundTowardNegative
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPRMRoundTowardPositive">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundTowardPositive
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPRMRoundTowardZero">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundTowardZero
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPRMExprRNE">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundNearestTiesToEven
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPRMExprRNA">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundNearestTiesToAway
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPRMExprRTN">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundTowardNegative
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPRMExprRTP">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundTowardPositive
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPRMExprRTZ">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundTowardZero
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPRMExpr">
+ <summary>
+ Indicates whether the term is a floating-point rounding mode numeral
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPPlusInfinity">
+ <summary>
+ Indicates whether the term is a floating-point +oo
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPMinusInfinity">
+ <summary>
+ Indicates whether the term is a floating-point -oo
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPNaN">
+ <summary>
+ Indicates whether the term is a floating-point NaN
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPPlusZero">
+ <summary>
+ Indicates whether the term is a floating-point +zero
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPMinusZero">
+ <summary>
+ Indicates whether the term is a floating-point -zero
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPAdd">
+ <summary>
+ Indicates whether the term is a floating-point addition term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPSub">
+ <summary>
+ Indicates whether the term is a floating-point subtraction term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPNeg">
+ <summary>
+ Indicates whether the term is a floating-point negation term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPMul">
+ <summary>
+ Indicates whether the term is a floating-point multiplication term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPDiv">
+ <summary>
+ Indicates whether the term is a floating-point divison term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPRem">
+ <summary>
+ Indicates whether the term is a floating-point remainder term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPAbs">
+ <summary>
+ Indicates whether the term is a floating-point term absolute value term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPMin">
+ <summary>
+ Indicates whether the term is a floating-point minimum term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPMax">
+ <summary>
+ Indicates whether the term is a floating-point maximum term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPFMA">
+ <summary>
+ Indicates whether the term is a floating-point fused multiply-add term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPSqrt">
+ <summary>
+ Indicates whether the term is a floating-point square root term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPRoundToIntegral">
+ <summary>
+ Indicates whether the term is a floating-point roundToIntegral term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPEq">
+ <summary>
+ Indicates whether the term is a floating-point equality term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPLt">
+ <summary>
+ Indicates whether the term is a floating-point less-than term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPGt">
+ <summary>
+ Indicates whether the term is a floating-point greater-than term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPLe">
+ <summary>
+ Indicates whether the term is a floating-point less-than or equal term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPGe">
+ <summary>
+ Indicates whether the term is a floating-point greater-than or erqual term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPisNaN">
+ <summary>
+ Indicates whether the term is a floating-point isNaN predicate term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPisInf">
+ <summary>
+ Indicates whether the term is a floating-point isInf predicate term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPisZero">
+ <summary>
+ Indicates whether the term is a floating-point isZero predicate term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPisNormal">
+ <summary>
+ Indicates whether the term is a floating-point isNormal term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPisSubnormal">
+ <summary>
+ Indicates whether the term is a floating-point isSubnormal predicate term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPisNegative">
+ <summary>
+ Indicates whether the term is a floating-point isNegative predicate term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPisPositive">
+ <summary>
+ Indicates whether the term is a floating-point isPositive predicate term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPFP">
+ <summary>
+ Indicates whether the term is a floating-point constructor term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPToFp">
+ <summary>
+ Indicates whether the term is a floating-point conversion term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPToFpUnsigned">
+ <summary>
+ Indicates whether the term is a floating-point conversion from unsigned bit-vector term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPToUBV">
+ <summary>
+ Indicates whether the term is a floating-point conversion to unsigned bit-vector term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPToSBV">
+ <summary>
+ Indicates whether the term is a floating-point conversion to signed bit-vector term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPToReal">
+ <summary>
+ Indicates whether the term is a floating-point conversion to real term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPToIEEEBV">
+ <summary>
+ Indicates whether the term is a floating-point conversion to IEEE-754 bit-vector term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.Index">
+ <summary>
+ The de-Burijn index of a bound variable.
+ </summary>
+ <remarks>
+ Bound variables are indexed by de-Bruijn indices. It is perhaps easiest to explain
+ the meaning of de-Bruijn indices by indicating the compilation process from
+ non-de-Bruijn formulas to de-Bruijn format.
+ <code>
+ abs(forall (x1) phi) = forall (x1) abs1(phi, x1, 0)
+ abs(forall (x1, x2) phi) = abs(forall (x1) abs(forall (x2) phi))
+ abs1(x, x, n) = b_n
+ abs1(y, x, n) = y
+ abs1(f(t1,...,tn), x, n) = f(abs1(t1,x,n), ..., abs1(tn,x,n))
+ abs1(forall (x1) phi, x, n) = forall (x1) (abs1(phi, x, n+1))
+ </code>
+ The last line is significant: the index of a bound variable is different depending
+ on the scope in which it appears. The deeper x appears, the higher is its
+ index.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.#ctor(Microsoft.Z3.Context,System.IntPtr)">
+ <summary> Constructor for ArithExpr </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Division(Microsoft.Z3.ArithExpr,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical divsion operator (over reals) </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Division(Microsoft.Z3.ArithExpr,System.Int32)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Division(Microsoft.Z3.ArithExpr,System.Double)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Division(System.Int32,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Division(System.Double,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_UnaryNegation(Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Subtraction(Microsoft.Z3.ArithExpr,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Subtraction(Microsoft.Z3.ArithExpr,System.Int32)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Subtraction(Microsoft.Z3.ArithExpr,System.Double)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Subtraction(System.Int32,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Subtraction(System.Double,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Addition(Microsoft.Z3.ArithExpr,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Addition(Microsoft.Z3.ArithExpr,System.Int32)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Addition(Microsoft.Z3.ArithExpr,System.Double)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Addition(System.Int32,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Addition(System.Double,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Multiply(Microsoft.Z3.ArithExpr,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Multiply(Microsoft.Z3.ArithExpr,System.Int32)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Multiply(Microsoft.Z3.ArithExpr,System.Double)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Multiply(System.Int32,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Multiply(System.Double,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_LessThanOrEqual(Microsoft.Z3.ArithExpr,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_LessThanOrEqual(Microsoft.Z3.ArithExpr,System.Int32)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_LessThanOrEqual(Microsoft.Z3.ArithExpr,System.Double)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_LessThanOrEqual(System.Int32,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_LessThanOrEqual(System.Double,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_LessThan(Microsoft.Z3.ArithExpr,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_LessThan(Microsoft.Z3.ArithExpr,System.Int32)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_LessThan(Microsoft.Z3.ArithExpr,System.Double)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_LessThan(System.Int32,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_LessThan(System.Double,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_GreaterThan(Microsoft.Z3.ArithExpr,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_GreaterThan(Microsoft.Z3.ArithExpr,System.Int32)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_GreaterThan(Microsoft.Z3.ArithExpr,System.Double)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_GreaterThan(System.Int32,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_GreaterThan(System.Double,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_GreaterThanOrEqual(Microsoft.Z3.ArithExpr,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_GreaterThanOrEqual(Microsoft.Z3.ArithExpr,System.Int32)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_GreaterThanOrEqual(Microsoft.Z3.ArithExpr,System.Double)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_GreaterThanOrEqual(System.Int32,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_GreaterThanOrEqual(System.Double,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.AlgebraicNum.ToUpper(System.UInt32)">
+ <summary>
+ Return a upper bound for a given real algebraic number.
+ The interval isolating the number is smaller than 1/10^<paramref name="precision"/>.
+ <seealso cref="P:Microsoft.Z3.Expr.IsAlgebraicNumber"/>
+ </summary>
+ <param name="precision">the precision of the result</param>
+ <returns>A numeral Expr of sort Real</returns>
+ </member>
+ <member name="M:Microsoft.Z3.AlgebraicNum.ToLower(System.UInt32)">
+ <summary>
+ Return a lower bound for the given real algebraic number.
+ The interval isolating the number is smaller than 1/10^<paramref name="precision"/>.
+ <seealso cref="P:Microsoft.Z3.Expr.IsAlgebraicNumber"/>
+ </summary>
+ <param name="precision"></param>
+ <returns>A numeral Expr of sort Real</returns>
+ </member>
+ <member name="M:Microsoft.Z3.AlgebraicNum.ToDecimal(System.UInt32)">
+ <summary>
+ Returns a string representation in decimal notation.
+ </summary>
+ <remarks>The result has at most <paramref name="precision"/> decimal places.</remarks>
+ </member>
+ <member name="T:Microsoft.Z3.ApplyResult">
+ <summary>
+ ApplyResult objects represent the result of an application of a
+ tactic to a goal. It contains the subgoals that were produced.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ApplyResult.ConvertModel(System.UInt32,Microsoft.Z3.Model)">
+ <summary>
+ Convert a model for the subgoal <paramref name="i"/> into a model for the original
+ goal <c>g</c>, that the ApplyResult was obtained from.
+ </summary>
+ <returns>A model for <c>g</c></returns>
+ </member>
+ <member name="M:Microsoft.Z3.ApplyResult.ToString">
+ <summary>
+ A string representation of the ApplyResult.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.ApplyResult.NumSubgoals">
+ <summary>
+ The number of Subgoals.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.ApplyResult.Subgoals">
+ <summary>
+ Retrieves the subgoals from the ApplyResult.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.ArithSort">
+ <summary>
+ An arithmetic sort, i.e., Int or Real.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Sort">
+ <summary>
+ The Sort class implements type information for ASTs.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Sort.op_Equality(Microsoft.Z3.Sort,Microsoft.Z3.Sort)">
+ <summary>
+ Comparison operator.
+ </summary>
+ <param name="a">A Sort</param>
+ <param name="b">A Sort</param>
+ <returns>True if <paramref name="a"/> and <paramref name="b"/> are from the same context
+ and represent the same sort; false otherwise.</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Sort.op_Inequality(Microsoft.Z3.Sort,Microsoft.Z3.Sort)">
+ <summary>
+ Comparison operator.
+ </summary>
+ <param name="a">A Sort</param>
+ <param name="b">A Sort</param>
+ <returns>True if <paramref name="a"/> and <paramref name="b"/> are not from the same context
+ or represent different sorts; false otherwise.</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Sort.Equals(System.Object)">
+ <summary>
+ Equality operator for objects of type Sort.
+ </summary>
+ <param name="o"></param>
+ <returns></returns>
+ </member>
+ <member name="M:Microsoft.Z3.Sort.GetHashCode">
+ <summary>
+ Hash code generation for Sorts
+ </summary>
+ <returns>A hash code</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Sort.ToString">
+ <summary>
+ A string representation of the sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Sort.#ctor(Microsoft.Z3.Context,System.IntPtr)">
+ <summary>
+ Sort constructor
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Sort.Id">
+ <summary>
+ Returns a unique identifier for the sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Sort.SortKind">
+ <summary>
+ The kind of the sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Sort.Name">
+ <summary>
+ The name of the sort
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.ArrayExpr">
+ <summary>
+ Array expressions
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArrayExpr.#ctor(Microsoft.Z3.Context,System.IntPtr)">
+ <summary> Constructor for ArrayExpr </summary>
+ </member>
+ <member name="T:Microsoft.Z3.ArraySort">
+ <summary>
+ Array sorts.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.ArraySort.Domain">
+ <summary>
+ The domain of the array sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.ArraySort.Range">
+ <summary>
+ The range of the array sort.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.ASTMap">
+ <summary>
+ Map from AST to AST
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ASTMap.Contains(Microsoft.Z3.AST)">
+ <summary>
+ Checks whether the map contains the key <paramref name="k"/>.
+ </summary>
+ <param name="k">An AST</param>
+ <returns>True if <paramref name="k"/> is a key in the map, false otherwise.</returns>
+ </member>
+ <member name="M:Microsoft.Z3.ASTMap.Find(Microsoft.Z3.AST)">
+ <summary>
+ Finds the value associated with the key <paramref name="k"/>.
+ </summary>
+ <remarks>
+ This function signs an error when <paramref name="k"/> is not a key in the map.
+ </remarks>
+ <param name="k">An AST</param>
+ </member>
+ <member name="M:Microsoft.Z3.ASTMap.Insert(Microsoft.Z3.AST,Microsoft.Z3.AST)">
+ <summary>
+ Stores or replaces a new key/value pair in the map.
+ </summary>
+ <param name="k">The key AST</param>
+ <param name="v">The value AST</param>
+ </member>
+ <member name="M:Microsoft.Z3.ASTMap.Erase(Microsoft.Z3.AST)">
+ <summary>
+ Erases the key <paramref name="k"/> from the map.
+ </summary>
+ <param name="k">An AST</param>
+ </member>
+ <member name="M:Microsoft.Z3.ASTMap.Reset">
+ <summary>
+ Removes all keys from the map.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ASTMap.ToString">
+ <summary>
+ Retrieves a string representation of the map.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.ASTMap.Size">
+ <summary>
+ The size of the map
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.ASTMap.Keys">
+ <summary>
+ The keys stored in the map.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.ASTVector">
+ <summary>
+ Vectors of ASTs.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ASTVector.Resize(System.UInt32)">
+ <summary>
+ Resize the vector to <paramref name="newSize"/>.
+ </summary>
+ <param name="newSize">The new size of the vector.</param>
+ </member>
+ <member name="M:Microsoft.Z3.ASTVector.Push(Microsoft.Z3.AST)">
+ <summary>
+ Add the AST <paramref name="a"/> to the back of the vector. The size
+ is increased by 1.
+ </summary>
+ <param name="a">An AST</param>
+ </member>
+ <member name="M:Microsoft.Z3.ASTVector.Translate(Microsoft.Z3.Context)">
+ <summary>
+ Translates all ASTs in the vector to <paramref name="ctx"/>.
+ </summary>
+ <param name="ctx">A context</param>
+ <returns>A new ASTVector</returns>
+ </member>
+ <member name="M:Microsoft.Z3.ASTVector.ToString">
+ <summary>
+ Retrieves a string representation of the vector.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ASTVector.ToArray">
+ <summary>
+ Translates an AST vector into an AST[]
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ASTVector.ToExprArray">
+ <summary>
+ Translates an ASTVector into an Expr[]
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ASTVector.ToBoolExprArray">
+ <summary>
+ Translates an ASTVector into a BoolExpr[]
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ASTVector.ToBitVecExprArray">
+ <summary>
+ Translates an ASTVector into a BitVecExpr[]
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ASTVector.ToArithExprArray">
+ <summary>
+ Translates an ASTVector into a ArithExpr[]
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ASTVector.ToArrayExprArray">
+ <summary>
+ Translates an ASTVector into a ArrayExpr[]
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ASTVector.ToDatatypeExprArray">
+ <summary>
+ Translates an ASTVector into a DatatypeExpr[]
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ASTVector.ToFPExprArray">
+ <summary>
+ Translates an ASTVector into a FPExpr[]
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ASTVector.ToFPRMExprArray">
+ <summary>
+ Translates an ASTVector into a FPRMExpr[]
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ASTVector.ToIntExprArray">
+ <summary>
+ Translates an ASTVector into a IntExpr[]
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ASTVector.ToRealExprArray">
+ <summary>
+ Translates an ASTVector into a RealExpr[]
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.ASTVector.Size">
+ <summary>
+ The size of the vector
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.ASTVector.Item(System.UInt32)">
+ <summary>
+ Retrieves the i-th object in the vector.
+ </summary>
+ <remarks>May throw an IndexOutOfBoundsException when <paramref name="i"/> is out of range.</remarks>
+ <param name="i">Index</param>
+ <returns>An AST</returns>
+ </member>
+ <member name="T:Microsoft.Z3.BitVecExpr">
+ <summary>
+ Bit-vector expressions
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.BitVecExpr.#ctor(Microsoft.Z3.Context,System.IntPtr)">
+ <summary> Constructor for BitVecExpr </summary>
+ </member>
+ <member name="P:Microsoft.Z3.BitVecExpr.SortSize">
+ <summary>
+ The size of the sort of a bit-vector term.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.BitVecNum">
+ <summary>
+ Bit-vector numerals
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.BitVecNum.ToString">
+ <summary>
+ Returns a string representation of the numeral.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.BitVecNum.UInt64">
+ <summary>
+ Retrieve the 64-bit unsigned integer value.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.BitVecNum.Int">
+ <summary>
+ Retrieve the int value.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.BitVecNum.Int64">
+ <summary>
+ Retrieve the 64-bit int value.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.BitVecNum.UInt">
+ <summary>
+ Retrieve the int value.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.BitVecNum.BigInteger">
+ <summary>
+ Retrieve the BigInteger value.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.BitVecSort">
+ <summary>
+ Bit-vector sorts.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.BitVecSort.Size">
+ <summary>
+ The size of the bit-vector sort.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.BoolExpr">
+ <summary>
+ Boolean expressions
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.BoolExpr.#ctor(Microsoft.Z3.Context,System.IntPtr)">
+ <summary> Constructor for BoolExpr </summary>
+ </member>
+ <member name="M:Microsoft.Z3.BoolExpr.op_BitwiseOr(Microsoft.Z3.BoolExpr,Microsoft.Z3.BoolExpr)">
+ <summary> Disjunction of Boolean expressions </summary>
+ </member>
+ <member name="M:Microsoft.Z3.BoolExpr.op_BitwiseAnd(Microsoft.Z3.BoolExpr,Microsoft.Z3.BoolExpr)">
+ <summary> Conjunction of Boolean expressions </summary>
+ </member>
+ <member name="M:Microsoft.Z3.BoolExpr.op_ExclusiveOr(Microsoft.Z3.BoolExpr,Microsoft.Z3.BoolExpr)">
+ <summary> Xor of Boolean expressions </summary>
+ </member>
+ <member name="M:Microsoft.Z3.BoolExpr.op_LogicalNot(Microsoft.Z3.BoolExpr)">
+ <summary> Negation </summary>
+ </member>
+ <member name="T:Microsoft.Z3.BoolSort">
+ <summary>
+ A Boolean sort.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Constructor">
+ <summary>
+ Constructors are used for datatype sorts.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Constructor.Finalize">
+ <summary>
+ Destructor.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Constructor.NumFields">
+ <summary>
+ The number of fields of the constructor.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Constructor.ConstructorDecl">
+ <summary>
+ The function declaration of the constructor.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Constructor.TesterDecl">
+ <summary>
+ The function declaration of the tester.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Constructor.AccessorDecls">
+ <summary>
+ The function declarations of the accessors
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.ConstructorList">
+ <summary>
+ Lists of constructors
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ConstructorList.Finalize">
+ <summary>
+ Destructor.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Context">
+ <summary>
+ The main interaction with Z3 happens via the Context.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.#ctor">
+ <summary>
+ Constructor.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.#ctor(System.Collections.Generic.Dictionary{System.String,System.String})">
+ <summary>
+ Constructor.
+ </summary>
+ <remarks>
+ The following parameters can be set:
+ - proof (Boolean) Enable proof generation
+ - debug_ref_count (Boolean) Enable debug support for Z3_ast reference counting
+ - trace (Boolean) Tracing support for VCC
+ - trace_file_name (String) Trace out file for VCC traces
+ - timeout (unsigned) default timeout (in milliseconds) used for solvers
+ - well_sorted_check type checker
+ - auto_config use heuristics to automatically select solver and configure it
+ - model model generation for solvers, this parameter can be overwritten when creating a solver
+ - model_validate validate models produced by solvers
+ - unsat_core unsat-core generation for solvers, this parameter can be overwritten when creating a solver
+ Note that in previous versions of Z3, this constructor was also used to set global and module parameters.
+ For this purpose we should now use <see cref="M:Microsoft.Z3.Global.SetParameter(System.String,System.String)"/>
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSymbol(System.Int32)">
+ <summary>
+ Creates a new symbol using an integer.
+ </summary>
+ <remarks>
+ Not all integers can be passed to this function.
+ The legal range of unsigned integers is 0 to 2^30-1.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSymbol(System.String)">
+ <summary>
+ Create a symbol using a string.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSymbols(System.String[])">
+ <summary>
+ Create an array of symbols.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBoolSort">
+ <summary>
+ Create a new Boolean sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkUninterpretedSort(Microsoft.Z3.Symbol)">
+ <summary>
+ Create a new uninterpreted sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkUninterpretedSort(System.String)">
+ <summary>
+ Create a new uninterpreted sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkIntSort">
+ <summary>
+ Create a new integer sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkRealSort">
+ <summary>
+ Create a real sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBitVecSort(System.UInt32)">
+ <summary>
+ Create a new bit-vector sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSeqSort(Microsoft.Z3.Sort)">
+ <summary>
+ Create a new sequence sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkReSort(Microsoft.Z3.SeqSort)">
+ <summary>
+ Create a new regular expression sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkArraySort(Microsoft.Z3.Sort,Microsoft.Z3.Sort)">
+ <summary>
+ Create a new array sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkTupleSort(Microsoft.Z3.Symbol,Microsoft.Z3.Symbol[],Microsoft.Z3.Sort[])">
+ <summary>
+ Create a new tuple sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkEnumSort(Microsoft.Z3.Symbol,Microsoft.Z3.Symbol[])">
+ <summary>
+ Create a new enumeration sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkEnumSort(System.String,System.String[])">
+ <summary>
+ Create a new enumeration sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkListSort(Microsoft.Z3.Symbol,Microsoft.Z3.Sort)">
+ <summary>
+ Create a new list sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkListSort(System.String,Microsoft.Z3.Sort)">
+ <summary>
+ Create a new list sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFiniteDomainSort(Microsoft.Z3.Symbol,System.UInt64)">
+ <summary>
+ Create a new finite domain sort.
+ <returns>The result is a sort</returns>
+ </summary>
+ <param name="name">The name used to identify the sort</param>
+ <param name="size">The size of the sort</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFiniteDomainSort(System.String,System.UInt64)">
+ <summary>
+ Create a new finite domain sort.
+ <returns>The result is a sort</returns>
+ Elements of the sort are created using <seealso cref="M:Microsoft.Z3.Context.MkNumeral(System.UInt64,Microsoft.Z3.Sort)"/>,
+ and the elements range from 0 to <tt>size-1</tt>.
+ </summary>
+ <param name="name">The name used to identify the sort</param>
+ <param name="size">The size of the sort</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkConstructor(Microsoft.Z3.Symbol,Microsoft.Z3.Symbol,Microsoft.Z3.Symbol[],Microsoft.Z3.Sort[],System.UInt32[])">
+ <summary>
+ Create a datatype constructor.
+ </summary>
+ <param name="name">constructor name</param>
+ <param name="recognizer">name of recognizer function.</param>
+ <param name="fieldNames">names of the constructor fields.</param>
+ <param name="sorts">field sorts, 0 if the field sort refers to a recursive sort.</param>
+ <param name="sortRefs">reference to datatype sort that is an argument to the constructor;
+ if the corresponding sort reference is 0, then the value in sort_refs should be an index
+ referring to one of the recursive datatypes that is declared.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkConstructor(System.String,System.String,System.String[],Microsoft.Z3.Sort[],System.UInt32[])">
+ <summary>
+ Create a datatype constructor.
+ </summary>
+ <param name="name"></param>
+ <param name="recognizer"></param>
+ <param name="fieldNames"></param>
+ <param name="sorts"></param>
+ <param name="sortRefs"></param>
+ <returns></returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkDatatypeSort(Microsoft.Z3.Symbol,Microsoft.Z3.Constructor[])">
+ <summary>
+ Create a new datatype sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkDatatypeSort(System.String,Microsoft.Z3.Constructor[])">
+ <summary>
+ Create a new datatype sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkDatatypeSorts(Microsoft.Z3.Symbol[],Microsoft.Z3.Constructor[][])">
+ <summary>
+ Create mutually recursive datatypes.
+ </summary>
+ <param name="names">names of datatype sorts</param>
+ <param name="c">list of constructors, one list per sort.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkDatatypeSorts(System.String[],Microsoft.Z3.Constructor[][])">
+ <summary>
+ Create mutually recursive data-types.
+ </summary>
+ <param name="names"></param>
+ <param name="c"></param>
+ <returns></returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkUpdateField(Microsoft.Z3.FuncDecl,Microsoft.Z3.Expr,Microsoft.Z3.Expr)">
+ <summary>
+ Update a datatype field at expression t with value v.
+ The function performs a record update at t. The field
+ that is passed in as argument is updated with value v,
+ the remainig fields of t are unchanged.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFuncDecl(Microsoft.Z3.Symbol,Microsoft.Z3.Sort[],Microsoft.Z3.Sort)">
+ <summary>
+ Creates a new function declaration.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFuncDecl(Microsoft.Z3.Symbol,Microsoft.Z3.Sort,Microsoft.Z3.Sort)">
+ <summary>
+ Creates a new function declaration.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFuncDecl(System.String,Microsoft.Z3.Sort[],Microsoft.Z3.Sort)">
+ <summary>
+ Creates a new function declaration.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFuncDecl(System.String,Microsoft.Z3.Sort,Microsoft.Z3.Sort)">
+ <summary>
+ Creates a new function declaration.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFreshFuncDecl(System.String,Microsoft.Z3.Sort[],Microsoft.Z3.Sort)">
+ <summary>
+ Creates a fresh function declaration with a name prefixed with <paramref name="prefix"/>.
+ </summary>
+ <seealso cref="M:Microsoft.Z3.Context.MkFuncDecl(System.String,Microsoft.Z3.Sort,Microsoft.Z3.Sort)"/>
+ <seealso cref="M:Microsoft.Z3.Context.MkFuncDecl(System.String,Microsoft.Z3.Sort[],Microsoft.Z3.Sort)"/>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkConstDecl(Microsoft.Z3.Symbol,Microsoft.Z3.Sort)">
+ <summary>
+ Creates a new constant function declaration.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkConstDecl(System.String,Microsoft.Z3.Sort)">
+ <summary>
+ Creates a new constant function declaration.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFreshConstDecl(System.String,Microsoft.Z3.Sort)">
+ <summary>
+ Creates a fresh constant function declaration with a name prefixed with <paramref name="prefix"/>.
+ </summary>
+ <seealso cref="M:Microsoft.Z3.Context.MkFuncDecl(System.String,Microsoft.Z3.Sort,Microsoft.Z3.Sort)"/>
+ <seealso cref="M:Microsoft.Z3.Context.MkFuncDecl(System.String,Microsoft.Z3.Sort[],Microsoft.Z3.Sort)"/>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBound(System.UInt32,Microsoft.Z3.Sort)">
+ <summary>
+ Creates a new bound variable.
+ </summary>
+ <param name="index">The de-Bruijn index of the variable</param>
+ <param name="ty">The sort of the variable</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkPattern(Microsoft.Z3.Expr[])">
+ <summary>
+ Create a quantifier pattern.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkConst(Microsoft.Z3.Symbol,Microsoft.Z3.Sort)">
+ <summary>
+ Creates a new Constant of sort <paramref name="range"/> and named <paramref name="name"/>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkConst(System.String,Microsoft.Z3.Sort)">
+ <summary>
+ Creates a new Constant of sort <paramref name="range"/> and named <paramref name="name"/>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFreshConst(System.String,Microsoft.Z3.Sort)">
+ <summary>
+ Creates a fresh Constant of sort <paramref name="range"/> and a
+ name prefixed with <paramref name="prefix"/>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkConst(Microsoft.Z3.FuncDecl)">
+ <summary>
+ Creates a fresh constant from the FuncDecl <paramref name="f"/>.
+ </summary>
+ <param name="f">A decl of a 0-arity function</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBoolConst(Microsoft.Z3.Symbol)">
+ <summary>
+ Create a Boolean constant.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBoolConst(System.String)">
+ <summary>
+ Create a Boolean constant.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkIntConst(Microsoft.Z3.Symbol)">
+ <summary>
+ Creates an integer constant.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkIntConst(System.String)">
+ <summary>
+ Creates an integer constant.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkRealConst(Microsoft.Z3.Symbol)">
+ <summary>
+ Creates a real constant.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkRealConst(System.String)">
+ <summary>
+ Creates a real constant.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVConst(Microsoft.Z3.Symbol,System.UInt32)">
+ <summary>
+ Creates a bit-vector constant.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVConst(System.String,System.UInt32)">
+ <summary>
+ Creates a bit-vector constant.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkApp(Microsoft.Z3.FuncDecl,Microsoft.Z3.Expr[])">
+ <summary>
+ Create a new function application.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkApp(Microsoft.Z3.FuncDecl,System.Collections.Generic.IEnumerable{Microsoft.Z3.Expr})">
+ <summary>
+ Create a new function application.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkTrue">
+ <summary>
+ The true Term.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFalse">
+ <summary>
+ The false Term.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBool(System.Boolean)">
+ <summary>
+ Creates a Boolean value.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkEq(Microsoft.Z3.Expr,Microsoft.Z3.Expr)">
+ <summary>
+ Creates the equality <paramref name="x"/> = <paramref name="y"/>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkDistinct(Microsoft.Z3.Expr[])">
+ <summary>
+ Creates a <c>distinct</c> term.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkNot(Microsoft.Z3.BoolExpr)">
+ <summary>
+ Mk an expression representing <c>not(a)</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkITE(Microsoft.Z3.BoolExpr,Microsoft.Z3.Expr,Microsoft.Z3.Expr)">
+ <summary>
+ Create an expression representing an if-then-else: <c>ite(t1, t2, t3)</c>.
+ </summary>
+ <param name="t1">An expression with Boolean sort</param>
+ <param name="t2">An expression </param>
+ <param name="t3">An expression with the same sort as <paramref name="t2"/></param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkIff(Microsoft.Z3.BoolExpr,Microsoft.Z3.BoolExpr)">
+ <summary>
+ Create an expression representing <c>t1 iff t2</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkImplies(Microsoft.Z3.BoolExpr,Microsoft.Z3.BoolExpr)">
+ <summary>
+ Create an expression representing <c>t1 -> t2</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkXor(Microsoft.Z3.BoolExpr,Microsoft.Z3.BoolExpr)">
+ <summary>
+ Create an expression representing <c>t1 xor t2</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkAnd(Microsoft.Z3.BoolExpr[])">
+ <summary>
+ Create an expression representing <c>t[0] and t[1] and ...</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkAnd(System.Collections.Generic.IEnumerable{Microsoft.Z3.BoolExpr})">
+ <summary>
+ Create an expression representing <c>t[0] and t[1] and ...</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkOr(Microsoft.Z3.BoolExpr[])">
+ <summary>
+ Create an expression representing <c>t[0] or t[1] or ...</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkOr(System.Collections.Generic.IEnumerable{Microsoft.Z3.BoolExpr})">
+ <summary>
+ Create an expression representing <c>t[0] or t[1] or ...</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkAdd(Microsoft.Z3.ArithExpr[])">
+ <summary>
+ Create an expression representing <c>t[0] + t[1] + ...</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkAdd(System.Collections.Generic.IEnumerable{Microsoft.Z3.ArithExpr})">
+ <summary>
+ Create an expression representing <c>t[0] + t[1] + ...</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkMul(Microsoft.Z3.ArithExpr[])">
+ <summary>
+ Create an expression representing <c>t[0] * t[1] * ...</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkMul(System.Collections.Generic.IEnumerable{Microsoft.Z3.ArithExpr})">
+ <summary>
+ Create an expression representing <c>t[0] * t[1] * ...</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSub(Microsoft.Z3.ArithExpr[])">
+ <summary>
+ Create an expression representing <c>t[0] - t[1] - ...</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkUnaryMinus(Microsoft.Z3.ArithExpr)">
+ <summary>
+ Create an expression representing <c>-t</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkDiv(Microsoft.Z3.ArithExpr,Microsoft.Z3.ArithExpr)">
+ <summary>
+ Create an expression representing <c>t1 / t2</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkMod(Microsoft.Z3.IntExpr,Microsoft.Z3.IntExpr)">
+ <summary>
+ Create an expression representing <c>t1 mod t2</c>.
+ </summary>
+ <remarks>The arguments must have int type.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkRem(Microsoft.Z3.IntExpr,Microsoft.Z3.IntExpr)">
+ <summary>
+ Create an expression representing <c>t1 rem t2</c>.
+ </summary>
+ <remarks>The arguments must have int type.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkPower(Microsoft.Z3.ArithExpr,Microsoft.Z3.ArithExpr)">
+ <summary>
+ Create an expression representing <c>t1 ^ t2</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkLt(Microsoft.Z3.ArithExpr,Microsoft.Z3.ArithExpr)">
+ <summary>
+ Create an expression representing <c>t1 &lt; t2</c>
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkLe(Microsoft.Z3.ArithExpr,Microsoft.Z3.ArithExpr)">
+ <summary>
+ Create an expression representing <c>t1 &lt;= t2</c>
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkGt(Microsoft.Z3.ArithExpr,Microsoft.Z3.ArithExpr)">
+ <summary>
+ Create an expression representing <c>t1 &gt; t2</c>
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkGe(Microsoft.Z3.ArithExpr,Microsoft.Z3.ArithExpr)">
+ <summary>
+ Create an expression representing <c>t1 &gt;= t2</c>
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkInt2Real(Microsoft.Z3.IntExpr)">
+ <summary>
+ Coerce an integer to a real.
+ </summary>
+ <remarks>
+ There is also a converse operation exposed. It follows the semantics prescribed by the SMT-LIB standard.
+
+ You can take the floor of a real by creating an auxiliary integer Term <c>k</c> and
+ and asserting <c>MakeInt2Real(k) &lt;= t1 &lt; MkInt2Real(k)+1</c>.
+ The argument must be of integer sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkReal2Int(Microsoft.Z3.RealExpr)">
+ <summary>
+ Coerce a real to an integer.
+ </summary>
+ <remarks>
+ The semantics of this function follows the SMT-LIB standard for the function to_int.
+ The argument must be of real sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkIsInteger(Microsoft.Z3.RealExpr)">
+ <summary>
+ Creates an expression that checks whether a real number is an integer.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVNot(Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Bitwise negation.
+ </summary>
+ <remarks>The argument must have a bit-vector sort.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVRedAND(Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Take conjunction of bits in a vector, return vector of length 1.
+ </summary>
+ <remarks>The argument must have a bit-vector sort.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVRedOR(Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Take disjunction of bits in a vector, return vector of length 1.
+ </summary>
+ <remarks>The argument must have a bit-vector sort.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVAND(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Bitwise conjunction.
+ </summary>
+ <remarks>The arguments must have a bit-vector sort.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVOR(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Bitwise disjunction.
+ </summary>
+ <remarks>The arguments must have a bit-vector sort.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVXOR(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Bitwise XOR.
+ </summary>
+ <remarks>The arguments must have a bit-vector sort.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVNAND(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Bitwise NAND.
+ </summary>
+ <remarks>The arguments must have a bit-vector sort.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVNOR(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Bitwise NOR.
+ </summary>
+ <remarks>The arguments must have a bit-vector sort.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVXNOR(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Bitwise XNOR.
+ </summary>
+ <remarks>The arguments must have a bit-vector sort.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVNeg(Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Standard two's complement unary minus.
+ </summary>
+ <remarks>The arguments must have a bit-vector sort.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVAdd(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Two's complement addition.
+ </summary>
+ <remarks>The arguments must have the same bit-vector sort.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVSub(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Two's complement subtraction.
+ </summary>
+ <remarks>The arguments must have the same bit-vector sort.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVMul(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Two's complement multiplication.
+ </summary>
+ <remarks>The arguments must have the same bit-vector sort.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVUDiv(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Unsigned division.
+ </summary>
+ <remarks>
+ It is defined as the floor of <c>t1/t2</c> if \c t2 is
+ different from zero. If <c>t2</c> is zero, then the result
+ is undefined.
+ The arguments must have the same bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVSDiv(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Signed division.
+ </summary>
+ <remarks>
+ It is defined in the following way:
+
+ - The \c floor of <c>t1/t2</c> if \c t2 is different from zero, and <c>t1*t2 >= 0</c>.
+
+ - The \c ceiling of <c>t1/t2</c> if \c t2 is different from zero, and <c>t1*t2 &lt; 0</c>.
+
+ If <c>t2</c> is zero, then the result is undefined.
+ The arguments must have the same bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVURem(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Unsigned remainder.
+ </summary>
+ <remarks>
+ It is defined as <c>t1 - (t1 /u t2) * t2</c>, where <c>/u</c> represents unsigned division.
+ If <c>t2</c> is zero, then the result is undefined.
+ The arguments must have the same bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVSRem(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Signed remainder.
+ </summary>
+ <remarks>
+ It is defined as <c>t1 - (t1 /s t2) * t2</c>, where <c>/s</c> represents signed division.
+ The most significant bit (sign) of the result is equal to the most significant bit of \c t1.
+
+ If <c>t2</c> is zero, then the result is undefined.
+ The arguments must have the same bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVSMod(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Two's complement signed remainder (sign follows divisor).
+ </summary>
+ <remarks>
+ If <c>t2</c> is zero, then the result is undefined.
+ The arguments must have the same bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVULT(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Unsigned less-than
+ </summary>
+ <remarks>
+ The arguments must have the same bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVSLT(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Two's complement signed less-than
+ </summary>
+ <remarks>
+ The arguments must have the same bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVULE(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Unsigned less-than or equal to.
+ </summary>
+ <remarks>
+ The arguments must have the same bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVSLE(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Two's complement signed less-than or equal to.
+ </summary>
+ <remarks>
+ The arguments must have the same bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVUGE(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Unsigned greater than or equal to.
+ </summary>
+ <remarks>
+ The arguments must have the same bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVSGE(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Two's complement signed greater than or equal to.
+ </summary>
+ <remarks>
+ The arguments must have the same bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVUGT(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Unsigned greater-than.
+ </summary>
+ <remarks>
+ The arguments must have the same bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVSGT(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Two's complement signed greater-than.
+ </summary>
+ <remarks>
+ The arguments must have the same bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkConcat(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Bit-vector concatenation.
+ </summary>
+ <remarks>
+ The arguments must have a bit-vector sort.
+ </remarks>
+ <returns>
+ The result is a bit-vector of size <c>n1+n2</c>, where <c>n1</c> (<c>n2</c>)
+ is the size of <c>t1</c> (<c>t2</c>).
+ </returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkExtract(System.UInt32,System.UInt32,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Bit-vector extraction.
+ </summary>
+ <remarks>
+ Extract the bits <paramref name="high"/> down to <paramref name="low"/> from a bitvector of
+ size <c>m</c> to yield a new bitvector of size <c>n</c>, where
+ <c>n = high - low + 1</c>.
+ The argument <paramref name="t"/> must have a bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSignExt(System.UInt32,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Bit-vector sign extension.
+ </summary>
+ <remarks>
+ Sign-extends the given bit-vector to the (signed) equivalent bitvector of
+ size <c>m+i</c>, where \c m is the size of the given bit-vector.
+ The argument <paramref name="t"/> must have a bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkZeroExt(System.UInt32,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Bit-vector zero extension.
+ </summary>
+ <remarks>
+ Extend the given bit-vector with zeros to the (unsigned) equivalent
+ bitvector of size <c>m+i</c>, where \c m is the size of the
+ given bit-vector.
+ The argument <paramref name="t"/> must have a bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkRepeat(System.UInt32,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Bit-vector repetition.
+ </summary>
+ <remarks>
+ The argument <paramref name="t"/> must have a bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVSHL(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Shift left.
+ </summary>
+ <remarks>
+ It is equivalent to multiplication by <c>2^x</c> where \c x is the value of <paramref name="t2"/>.
+
+ NB. The semantics of shift operations varies between environments. This
+ definition does not necessarily capture directly the semantics of the
+ programming language or assembly architecture you are modeling.
+
+ The arguments must have a bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVLSHR(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Logical shift right
+ </summary>
+ <remarks>
+ It is equivalent to unsigned division by <c>2^x</c> where \c x is the value of <paramref name="t2"/>.
+
+ NB. The semantics of shift operations varies between environments. This
+ definition does not necessarily capture directly the semantics of the
+ programming language or assembly architecture you are modeling.
+
+ The arguments must have a bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVASHR(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Arithmetic shift right
+ </summary>
+ <remarks>
+ It is like logical shift right except that the most significant
+ bits of the result always copy the most significant bit of the
+ second argument.
+
+ NB. The semantics of shift operations varies between environments. This
+ definition does not necessarily capture directly the semantics of the
+ programming language or assembly architecture you are modeling.
+
+ The arguments must have a bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVRotateLeft(System.UInt32,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Rotate Left.
+ </summary>
+ <remarks>
+ Rotate bits of \c t to the left \c i times.
+ The argument <paramref name="t"/> must have a bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVRotateRight(System.UInt32,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Rotate Right.
+ </summary>
+ <remarks>
+ Rotate bits of \c t to the right \c i times.
+ The argument <paramref name="t"/> must have a bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVRotateLeft(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Rotate Left.
+ </summary>
+ <remarks>
+ Rotate bits of <paramref name="t1"/> to the left <paramref name="t2"/> times.
+ The arguments must have the same bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVRotateRight(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Rotate Right.
+ </summary>
+ <remarks>
+ Rotate bits of <paramref name="t1"/> to the right<paramref name="t2"/> times.
+ The arguments must have the same bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkInt2BV(System.UInt32,Microsoft.Z3.IntExpr)">
+ <summary>
+ Create an <paramref name="n"/> bit bit-vector from the integer argument <paramref name="t"/>.
+ </summary>
+ <remarks>
+ NB. This function is essentially treated as uninterpreted.
+ So you cannot expect Z3 to precisely reflect the semantics of this function
+ when solving constraints with this function.
+
+ The argument must be of integer sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBV2Int(Microsoft.Z3.BitVecExpr,System.Boolean)">
+ <summary>
+ Create an integer from the bit-vector argument <paramref name="t"/>.
+ </summary>
+ <remarks>
+ If \c is_signed is false, then the bit-vector \c t1 is treated as unsigned.
+ So the result is non-negative and in the range <c>[0..2^N-1]</c>, where
+ N are the number of bits in <paramref name="t"/>.
+ If \c is_signed is true, \c t1 is treated as a signed bit-vector.
+
+ NB. This function is essentially treated as uninterpreted.
+ So you cannot expect Z3 to precisely reflect the semantics of this function
+ when solving constraints with this function.
+
+ The argument must be of bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVAddNoOverflow(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr,System.Boolean)">
+ <summary>
+ Create a predicate that checks that the bit-wise addition does not overflow.
+ </summary>
+ <remarks>
+ The arguments must be of bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVAddNoUnderflow(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Create a predicate that checks that the bit-wise addition does not underflow.
+ </summary>
+ <remarks>
+ The arguments must be of bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVSubNoOverflow(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Create a predicate that checks that the bit-wise subtraction does not overflow.
+ </summary>
+ <remarks>
+ The arguments must be of bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVSubNoUnderflow(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr,System.Boolean)">
+ <summary>
+ Create a predicate that checks that the bit-wise subtraction does not underflow.
+ </summary>
+ <remarks>
+ The arguments must be of bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVSDivNoOverflow(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Create a predicate that checks that the bit-wise signed division does not overflow.
+ </summary>
+ <remarks>
+ The arguments must be of bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVNegNoOverflow(Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Create a predicate that checks that the bit-wise negation does not overflow.
+ </summary>
+ <remarks>
+ The arguments must be of bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVMulNoOverflow(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr,System.Boolean)">
+ <summary>
+ Create a predicate that checks that the bit-wise multiplication does not overflow.
+ </summary>
+ <remarks>
+ The arguments must be of bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVMulNoUnderflow(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Create a predicate that checks that the bit-wise multiplication does not underflow.
+ </summary>
+ <remarks>
+ The arguments must be of bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkArrayConst(Microsoft.Z3.Symbol,Microsoft.Z3.Sort,Microsoft.Z3.Sort)">
+ <summary>
+ Create an array constant.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkArrayConst(System.String,Microsoft.Z3.Sort,Microsoft.Z3.Sort)">
+ <summary>
+ Create an array constant.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSelect(Microsoft.Z3.ArrayExpr,Microsoft.Z3.Expr)">
+ <summary>
+ Array read.
+ </summary>
+ <remarks>
+ The argument <c>a</c> is the array and <c>i</c> is the index
+ of the array that gets read.
+
+ The node <c>a</c> must have an array sort <c>[domain -&gt; range]</c>,
+ and <c>i</c> must have the sort <c>domain</c>.
+ The sort of the result is <c>range</c>.
+ <seealso cref="M:Microsoft.Z3.Context.MkArraySort(Microsoft.Z3.Sort,Microsoft.Z3.Sort)"/>
+ <seealso cref="M:Microsoft.Z3.Context.MkStore(Microsoft.Z3.ArrayExpr,Microsoft.Z3.Expr,Microsoft.Z3.Expr)"/>
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkStore(Microsoft.Z3.ArrayExpr,Microsoft.Z3.Expr,Microsoft.Z3.Expr)">
+ <summary>
+ Array update.
+ </summary>
+ <remarks>
+ The node <c>a</c> must have an array sort <c>[domain -&gt; range]</c>,
+ <c>i</c> must have sort <c>domain</c>,
+ <c>v</c> must have sort range. The sort of the result is <c>[domain -&gt; range]</c>.
+ The semantics of this function is given by the theory of arrays described in the SMT-LIB
+ standard. See http://smtlib.org for more details.
+ The result of this function is an array that is equal to <c>a</c>
+ (with respect to <c>select</c>)
+ on all indices except for <c>i</c>, where it maps to <c>v</c>
+ (and the <c>select</c> of <c>a</c> with
+ respect to <c>i</c> may be a different value).
+ <seealso cref="M:Microsoft.Z3.Context.MkArraySort(Microsoft.Z3.Sort,Microsoft.Z3.Sort)"/>
+ <seealso cref="M:Microsoft.Z3.Context.MkSelect(Microsoft.Z3.ArrayExpr,Microsoft.Z3.Expr)"/>
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkConstArray(Microsoft.Z3.Sort,Microsoft.Z3.Expr)">
+ <summary>
+ Create a constant array.
+ </summary>
+ <remarks>
+ The resulting term is an array, such that a <c>select</c>on an arbitrary index
+ produces the value <c>v</c>.
+ <seealso cref="M:Microsoft.Z3.Context.MkArraySort(Microsoft.Z3.Sort,Microsoft.Z3.Sort)"/>
+ <seealso cref="M:Microsoft.Z3.Context.MkSelect(Microsoft.Z3.ArrayExpr,Microsoft.Z3.Expr)"/>
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkMap(Microsoft.Z3.FuncDecl,Microsoft.Z3.ArrayExpr[])">
+ <summary>
+ Maps f on the argument arrays.
+ </summary>
+ <remarks>
+ Eeach element of <c>args</c> must be of an array sort <c>[domain_i -&gt; range_i]</c>.
+ The function declaration <c>f</c> must have type <c> range_1 .. range_n -&gt; range</c>.
+ <c>v</c> must have sort range. The sort of the result is <c>[domain_i -&gt; range]</c>.
+ <seealso cref="M:Microsoft.Z3.Context.MkArraySort(Microsoft.Z3.Sort,Microsoft.Z3.Sort)"/>
+ <seealso cref="M:Microsoft.Z3.Context.MkSelect(Microsoft.Z3.ArrayExpr,Microsoft.Z3.Expr)"/>
+ <seealso cref="M:Microsoft.Z3.Context.MkStore(Microsoft.Z3.ArrayExpr,Microsoft.Z3.Expr,Microsoft.Z3.Expr)"/>
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkTermArray(Microsoft.Z3.ArrayExpr)">
+ <summary>
+ Access the array default value.
+ </summary>
+ <remarks>
+ Produces the default range value, for arrays that can be represented as
+ finite maps with a default range value.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkArrayExt(Microsoft.Z3.ArrayExpr,Microsoft.Z3.ArrayExpr)">
+ <summary>
+ Create Extentionality index. Two arrays are equal if and only if they are equal on the index returned by MkArrayExt.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSetSort(Microsoft.Z3.Sort)">
+ <summary>
+ Create a set type.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkEmptySet(Microsoft.Z3.Sort)">
+ <summary>
+ Create an empty set.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFullSet(Microsoft.Z3.Sort)">
+ <summary>
+ Create the full set.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSetAdd(Microsoft.Z3.ArrayExpr,Microsoft.Z3.Expr)">
+ <summary>
+ Add an element to the set.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSetDel(Microsoft.Z3.ArrayExpr,Microsoft.Z3.Expr)">
+ <summary>
+ Remove an element from a set.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSetUnion(Microsoft.Z3.ArrayExpr[])">
+ <summary>
+ Take the union of a list of sets.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSetIntersection(Microsoft.Z3.ArrayExpr[])">
+ <summary>
+ Take the intersection of a list of sets.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSetDifference(Microsoft.Z3.ArrayExpr,Microsoft.Z3.ArrayExpr)">
+ <summary>
+ Take the difference between two sets.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSetComplement(Microsoft.Z3.ArrayExpr)">
+ <summary>
+ Take the complement of a set.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSetMembership(Microsoft.Z3.Expr,Microsoft.Z3.ArrayExpr)">
+ <summary>
+ Check for set membership.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSetSubset(Microsoft.Z3.ArrayExpr,Microsoft.Z3.ArrayExpr)">
+ <summary>
+ Check for subsetness of sets.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkEmptySeq(Microsoft.Z3.Sort)">
+ <summary>
+ Create the empty sequence.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkUnit(Microsoft.Z3.Expr)">
+ <summary>
+ Create the singleton sequence.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkString(System.String)">
+ <summary>
+ Create a string constant.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkConcat(Microsoft.Z3.SeqExpr[])">
+ <summary>
+ Concatentate sequences.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkLength(Microsoft.Z3.SeqExpr)">
+ <summary>
+ Retrieve the length of a given sequence.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkPrefixOf(Microsoft.Z3.SeqExpr,Microsoft.Z3.SeqExpr)">
+ <summary>
+ Check for sequence prefix.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSuffixOf(Microsoft.Z3.SeqExpr,Microsoft.Z3.SeqExpr)">
+ <summary>
+ Check for sequence suffix.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkContains(Microsoft.Z3.SeqExpr,Microsoft.Z3.SeqExpr)">
+ <summary>
+ Check for sequence containment of s2 in s1.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkAt(Microsoft.Z3.SeqExpr,Microsoft.Z3.IntExpr)">
+ <summary>
+ Retrieve sequence of length one at index.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkExtract(Microsoft.Z3.SeqExpr,Microsoft.Z3.IntExpr,Microsoft.Z3.IntExpr)">
+ <summary>
+ Extract subsequence.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkIndexOf(Microsoft.Z3.SeqExpr,Microsoft.Z3.SeqExpr,Microsoft.Z3.ArithExpr)">
+ <summary>
+ Extract index of sub-string starting at offset.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkReplace(Microsoft.Z3.SeqExpr,Microsoft.Z3.SeqExpr,Microsoft.Z3.SeqExpr)">
+ <summary>
+ Replace the first occurrence of src by dst in s.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkToRe(Microsoft.Z3.SeqExpr)">
+ <summary>
+ Convert a regular expression that accepts sequence s.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkInRe(Microsoft.Z3.SeqExpr,Microsoft.Z3.ReExpr)">
+ <summary>
+ Check for regular expression membership.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkStar(Microsoft.Z3.ReExpr)">
+ <summary>
+ Take the Kleene star of a regular expression.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MPlus(Microsoft.Z3.ReExpr)">
+ <summary>
+ Take the Kleene plus of a regular expression.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MOption(Microsoft.Z3.ReExpr)">
+ <summary>
+ Create the optional regular expression.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkConcat(Microsoft.Z3.ReExpr[])">
+ <summary>
+ Create the concatenation of regular languages.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkUnion(Microsoft.Z3.ReExpr[])">
+ <summary>
+ Create the union of regular languages.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkAtMost(Microsoft.Z3.BoolExpr[],System.UInt32)">
+ <summary>
+ Create an at-most-k constraint.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkPBLe(System.Int32[],Microsoft.Z3.BoolExpr[],System.Int32)">
+ <summary>
+ Create a pseudo-Boolean less-or-equal constraint.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkPBEq(System.Int32[],Microsoft.Z3.BoolExpr[],System.Int32)">
+ <summary>
+ Create a pseudo-Boolean equal constraint.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkNumeral(System.String,Microsoft.Z3.Sort)">
+ <summary>
+ Create a Term of a given sort.
+ </summary>
+ <param name="v">A string representing the Term value in decimal notation. If the given sort is a real, then the Term can be a rational, that is, a string of the form <c>[num]* / [num]*</c>.</param>
+ <param name="ty">The sort of the numeral. In the current implementation, the given sort can be an int, real, or bit-vectors of arbitrary size. </param>
+ <returns>A Term with value <paramref name="v"/> and sort <paramref name="ty"/> </returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkNumeral(System.Int32,Microsoft.Z3.Sort)">
+ <summary>
+ Create a Term of a given sort. This function can be use to create numerals that fit in a machine integer.
+ It is slightly faster than <c>MakeNumeral</c> since it is not necessary to parse a string.
+ </summary>
+ <param name="v">Value of the numeral</param>
+ <param name="ty">Sort of the numeral</param>
+ <returns>A Term with value <paramref name="v"/> and type <paramref name="ty"/></returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkNumeral(System.UInt32,Microsoft.Z3.Sort)">
+ <summary>
+ Create a Term of a given sort. This function can be use to create numerals that fit in a machine integer.
+ It is slightly faster than <c>MakeNumeral</c> since it is not necessary to parse a string.
+ </summary>
+ <param name="v">Value of the numeral</param>
+ <param name="ty">Sort of the numeral</param>
+ <returns>A Term with value <paramref name="v"/> and type <paramref name="ty"/></returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkNumeral(System.Int64,Microsoft.Z3.Sort)">
+ <summary>
+ Create a Term of a given sort. This function can be use to create numerals that fit in a machine integer.
+ It is slightly faster than <c>MakeNumeral</c> since it is not necessary to parse a string.
+ </summary>
+ <param name="v">Value of the numeral</param>
+ <param name="ty">Sort of the numeral</param>
+ <returns>A Term with value <paramref name="v"/> and type <paramref name="ty"/></returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkNumeral(System.UInt64,Microsoft.Z3.Sort)">
+ <summary>
+ Create a Term of a given sort. This function can be use to create numerals that fit in a machine integer.
+ It is slightly faster than <c>MakeNumeral</c> since it is not necessary to parse a string.
+ </summary>
+ <param name="v">Value of the numeral</param>
+ <param name="ty">Sort of the numeral</param>
+ <returns>A Term with value <paramref name="v"/> and type <paramref name="ty"/></returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkReal(System.Int32,System.Int32)">
+ <summary>
+ Create a real from a fraction.
+ </summary>
+ <param name="num">numerator of rational.</param>
+ <param name="den">denominator of rational.</param>
+ <returns>A Term with value <paramref name="num"/>/<paramref name="den"/> and sort Real</returns>
+ <seealso cref="M:Microsoft.Z3.Context.MkNumeral(System.String,Microsoft.Z3.Sort)"/>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkReal(System.String)">
+ <summary>
+ Create a real numeral.
+ </summary>
+ <param name="v">A string representing the Term value in decimal notation.</param>
+ <returns>A Term with value <paramref name="v"/> and sort Real</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkReal(System.Int32)">
+ <summary>
+ Create a real numeral.
+ </summary>
+ <param name="v">value of the numeral.</param>
+ <returns>A Term with value <paramref name="v"/> and sort Real</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkReal(System.UInt32)">
+ <summary>
+ Create a real numeral.
+ </summary>
+ <param name="v">value of the numeral.</param>
+ <returns>A Term with value <paramref name="v"/> and sort Real</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkReal(System.Int64)">
+ <summary>
+ Create a real numeral.
+ </summary>
+ <param name="v">value of the numeral.</param>
+ <returns>A Term with value <paramref name="v"/> and sort Real</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkReal(System.UInt64)">
+ <summary>
+ Create a real numeral.
+ </summary>
+ <param name="v">value of the numeral.</param>
+ <returns>A Term with value <paramref name="v"/> and sort Real</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkInt(System.String)">
+ <summary>
+ Create an integer numeral.
+ </summary>
+ <param name="v">A string representing the Term value in decimal notation.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkInt(System.Int32)">
+ <summary>
+ Create an integer numeral.
+ </summary>
+ <param name="v">value of the numeral.</param>
+ <returns>A Term with value <paramref name="v"/> and sort Integer</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkInt(System.UInt32)">
+ <summary>
+ Create an integer numeral.
+ </summary>
+ <param name="v">value of the numeral.</param>
+ <returns>A Term with value <paramref name="v"/> and sort Integer</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkInt(System.Int64)">
+ <summary>
+ Create an integer numeral.
+ </summary>
+ <param name="v">value of the numeral.</param>
+ <returns>A Term with value <paramref name="v"/> and sort Integer</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkInt(System.UInt64)">
+ <summary>
+ Create an integer numeral.
+ </summary>
+ <param name="v">value of the numeral.</param>
+ <returns>A Term with value <paramref name="v"/> and sort Integer</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBV(System.String,System.UInt32)">
+ <summary>
+ Create a bit-vector numeral.
+ </summary>
+ <param name="v">A string representing the value in decimal notation.</param>
+ <param name="size">the size of the bit-vector</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBV(System.Int32,System.UInt32)">
+ <summary>
+ Create a bit-vector numeral.
+ </summary>
+ <param name="v">value of the numeral.</param>
+ <param name="size">the size of the bit-vector</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBV(System.UInt32,System.UInt32)">
+ <summary>
+ Create a bit-vector numeral.
+ </summary>
+ <param name="v">value of the numeral.</param>
+ <param name="size">the size of the bit-vector</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBV(System.Int64,System.UInt32)">
+ <summary>
+ Create a bit-vector numeral.
+ </summary>
+ <param name="v">value of the numeral.</param>
+ <param name="size">the size of the bit-vector</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBV(System.UInt64,System.UInt32)">
+ <summary>
+ Create a bit-vector numeral.
+ </summary>
+ <param name="v">value of the numeral.</param>
+ <param name="size">the size of the bit-vector</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkForall(Microsoft.Z3.Sort[],Microsoft.Z3.Symbol[],Microsoft.Z3.Expr,System.UInt32,Microsoft.Z3.Pattern[],Microsoft.Z3.Expr[],Microsoft.Z3.Symbol,Microsoft.Z3.Symbol)">
+ <summary>
+ Create a universal Quantifier.
+ </summary>
+ <remarks>
+ Creates a forall formula, where <paramref name="weight"/> is the weight,
+ <paramref name="patterns"/> is an array of patterns, <paramref name="sorts"/> is an array
+ with the sorts of the bound variables, <paramref name="names"/> is an array with the
+ 'names' of the bound variables, and <paramref name="body"/> is the body of the
+ quantifier. Quantifiers are associated with weights indicating the importance of
+ using the quantifier during instantiation.
+ Note that the bound variables are de-Bruijn indices created using <see cref="M:Microsoft.Z3.Context.MkBound(System.UInt32,Microsoft.Z3.Sort)"/>.
+ Z3 applies the convention that the last element in <paramref name="names"/> and
+ <paramref name="sorts"/> refers to the variable with index 0, the second to last element
+ of <paramref name="names"/> and <paramref name="sorts"/> refers to the variable
+ with index 1, etc.
+ </remarks>
+ <param name="sorts">the sorts of the bound variables.</param>
+ <param name="names">names of the bound variables</param>
+ <param name="body">the body of the quantifier.</param>
+ <param name="weight">quantifiers are associated with weights indicating the importance of using the quantifier during instantiation. By default, pass the weight 0.</param>
+ <param name="patterns">array containing the patterns created using <c>MkPattern</c>.</param>
+ <param name="noPatterns">array containing the anti-patterns created using <c>MkPattern</c>.</param>
+ <param name="quantifierID">optional symbol to track quantifier.</param>
+ <param name="skolemID">optional symbol to track skolem constants.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkForall(Microsoft.Z3.Expr[],Microsoft.Z3.Expr,System.UInt32,Microsoft.Z3.Pattern[],Microsoft.Z3.Expr[],Microsoft.Z3.Symbol,Microsoft.Z3.Symbol)">
+ <summary>
+ Create a universal Quantifier.
+ </summary>
+ <remarks>
+ Creates a universal quantifier using a list of constants that will
+ form the set of bound variables.
+ <seealso cref="M:Microsoft.Z3.Context.MkForall(Microsoft.Z3.Sort[],Microsoft.Z3.Symbol[],Microsoft.Z3.Expr,System.UInt32,Microsoft.Z3.Pattern[],Microsoft.Z3.Expr[],Microsoft.Z3.Symbol,Microsoft.Z3.Symbol)"/>
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkExists(Microsoft.Z3.Sort[],Microsoft.Z3.Symbol[],Microsoft.Z3.Expr,System.UInt32,Microsoft.Z3.Pattern[],Microsoft.Z3.Expr[],Microsoft.Z3.Symbol,Microsoft.Z3.Symbol)">
+ <summary>
+ Create an existential Quantifier.
+ </summary>
+ <remarks>
+ Creates an existential quantifier using de-Brujin indexed variables.
+ (<see cref="M:Microsoft.Z3.Context.MkForall(Microsoft.Z3.Sort[],Microsoft.Z3.Symbol[],Microsoft.Z3.Expr,System.UInt32,Microsoft.Z3.Pattern[],Microsoft.Z3.Expr[],Microsoft.Z3.Symbol,Microsoft.Z3.Symbol)"/>).
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkExists(Microsoft.Z3.Expr[],Microsoft.Z3.Expr,System.UInt32,Microsoft.Z3.Pattern[],Microsoft.Z3.Expr[],Microsoft.Z3.Symbol,Microsoft.Z3.Symbol)">
+ <summary>
+ Create an existential Quantifier.
+ </summary>
+ <remarks>
+ Creates an existential quantifier using a list of constants that will
+ form the set of bound variables.
+ <seealso cref="M:Microsoft.Z3.Context.MkForall(Microsoft.Z3.Sort[],Microsoft.Z3.Symbol[],Microsoft.Z3.Expr,System.UInt32,Microsoft.Z3.Pattern[],Microsoft.Z3.Expr[],Microsoft.Z3.Symbol,Microsoft.Z3.Symbol)"/>
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkQuantifier(System.Boolean,Microsoft.Z3.Sort[],Microsoft.Z3.Symbol[],Microsoft.Z3.Expr,System.UInt32,Microsoft.Z3.Pattern[],Microsoft.Z3.Expr[],Microsoft.Z3.Symbol,Microsoft.Z3.Symbol)">
+ <summary>
+ Create a Quantifier.
+ </summary>
+ <see cref="M:Microsoft.Z3.Context.MkForall(Microsoft.Z3.Sort[],Microsoft.Z3.Symbol[],Microsoft.Z3.Expr,System.UInt32,Microsoft.Z3.Pattern[],Microsoft.Z3.Expr[],Microsoft.Z3.Symbol,Microsoft.Z3.Symbol)"/>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkQuantifier(System.Boolean,Microsoft.Z3.Expr[],Microsoft.Z3.Expr,System.UInt32,Microsoft.Z3.Pattern[],Microsoft.Z3.Expr[],Microsoft.Z3.Symbol,Microsoft.Z3.Symbol)">
+ <summary>
+ Create a Quantifier.
+ </summary>
+ <see cref="M:Microsoft.Z3.Context.MkForall(Microsoft.Z3.Sort[],Microsoft.Z3.Symbol[],Microsoft.Z3.Expr,System.UInt32,Microsoft.Z3.Pattern[],Microsoft.Z3.Expr[],Microsoft.Z3.Symbol,Microsoft.Z3.Symbol)"/>
+ </member>
+ <member name="M:Microsoft.Z3.Context.BenchmarkToSMTString(System.String,System.String,System.String,System.String,Microsoft.Z3.BoolExpr[],Microsoft.Z3.BoolExpr)">
+ <summary>
+ Convert a benchmark into an SMT-LIB formatted string.
+ </summary>
+ <param name="name">Name of the benchmark. The argument is optional.</param>
+ <param name="logic">The benchmark logic. </param>
+ <param name="status">The status string (sat, unsat, or unknown)</param>
+ <param name="attributes">Other attributes, such as source, difficulty or category.</param>
+ <param name="assumptions">Auxiliary assumptions.</param>
+ <param name="formula">Formula to be checked for consistency in conjunction with assumptions.</param>
+ <returns>A string representation of the benchmark.</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.ParseSMTLIBString(System.String,Microsoft.Z3.Symbol[],Microsoft.Z3.Sort[],Microsoft.Z3.Symbol[],Microsoft.Z3.FuncDecl[])">
+ <summary>
+ Parse the given string using the SMT-LIB parser.
+ </summary>
+ <remarks>
+ The symbol table of the parser can be initialized using the given sorts and declarations.
+ The symbols in the arrays <paramref name="sortNames"/> and <paramref name="declNames"/>
+ don't need to match the names of the sorts and declarations in the arrays <paramref name="sorts"/>
+ and <paramref name="decls"/>. This is a useful feature since we can use arbitrary names to
+ reference sorts and declarations.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.ParseSMTLIBFile(System.String,Microsoft.Z3.Symbol[],Microsoft.Z3.Sort[],Microsoft.Z3.Symbol[],Microsoft.Z3.FuncDecl[])">
+ <summary>
+ Parse the given file using the SMT-LIB parser.
+ </summary>
+ <seealso cref="M:Microsoft.Z3.Context.ParseSMTLIBString(System.String,Microsoft.Z3.Symbol[],Microsoft.Z3.Sort[],Microsoft.Z3.Symbol[],Microsoft.Z3.FuncDecl[])"/>
+ </member>
+ <member name="M:Microsoft.Z3.Context.ParseSMTLIB2String(System.String,Microsoft.Z3.Symbol[],Microsoft.Z3.Sort[],Microsoft.Z3.Symbol[],Microsoft.Z3.FuncDecl[])">
+ <summary>
+ Parse the given string using the SMT-LIB2 parser.
+ </summary>
+ <seealso cref="M:Microsoft.Z3.Context.ParseSMTLIBString(System.String,Microsoft.Z3.Symbol[],Microsoft.Z3.Sort[],Microsoft.Z3.Symbol[],Microsoft.Z3.FuncDecl[])"/>
+ <returns>A conjunction of assertions in the scope (up to push/pop) at the end of the string.</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.ParseSMTLIB2File(System.String,Microsoft.Z3.Symbol[],Microsoft.Z3.Sort[],Microsoft.Z3.Symbol[],Microsoft.Z3.FuncDecl[])">
+ <summary>
+ Parse the given file using the SMT-LIB2 parser.
+ </summary>
+ <seealso cref="M:Microsoft.Z3.Context.ParseSMTLIB2String(System.String,Microsoft.Z3.Symbol[],Microsoft.Z3.Sort[],Microsoft.Z3.Symbol[],Microsoft.Z3.FuncDecl[])"/>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkGoal(System.Boolean,System.Boolean,System.Boolean)">
+ <summary>
+ Creates a new Goal.
+ </summary>
+ <remarks>
+ Note that the Context must have been created with proof generation support if
+ <paramref name="proofs"/> is set to true here.
+ </remarks>
+ <param name="models">Indicates whether model generation should be enabled.</param>
+ <param name="unsatCores">Indicates whether unsat core generation should be enabled.</param>
+ <param name="proofs">Indicates whether proof generation should be enabled.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkParams">
+ <summary>
+ Creates a new ParameterSet.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.TacticDescription(System.String)">
+ <summary>
+ Returns a string containing a description of the tactic with the given name.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkTactic(System.String)">
+ <summary>
+ Creates a new Tactic.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.AndThen(Microsoft.Z3.Tactic,Microsoft.Z3.Tactic,Microsoft.Z3.Tactic[])">
+ <summary>
+ Create a tactic that applies <paramref name="t1"/> to a Goal and
+ then <paramref name="t2"/> to every subgoal produced by <paramref name="t1"/>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.Then(Microsoft.Z3.Tactic,Microsoft.Z3.Tactic,Microsoft.Z3.Tactic[])">
+ <summary>
+ Create a tactic that applies <paramref name="t1"/> to a Goal and
+ then <paramref name="t2"/> to every subgoal produced by <paramref name="t1"/>.
+ </summary>
+ <remarks>
+ Shorthand for <c>AndThen</c>.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.OrElse(Microsoft.Z3.Tactic,Microsoft.Z3.Tactic)">
+ <summary>
+ Create a tactic that first applies <paramref name="t1"/> to a Goal and
+ if it fails then returns the result of <paramref name="t2"/> applied to the Goal.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.TryFor(Microsoft.Z3.Tactic,System.UInt32)">
+ <summary>
+ Create a tactic that applies <paramref name="t"/> to a goal for <paramref name="ms"/> milliseconds.
+ </summary>
+ <remarks>
+ If <paramref name="t"/> does not terminate within <paramref name="ms"/> milliseconds, then it fails.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.When(Microsoft.Z3.Probe,Microsoft.Z3.Tactic)">
+ <summary>
+ Create a tactic that applies <paramref name="t"/> to a given goal if the probe
+ <paramref name="p"/> evaluates to true.
+ </summary>
+ <remarks>
+ If <paramref name="p"/> evaluates to false, then the new tactic behaves like the <c>skip</c> tactic.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.Cond(Microsoft.Z3.Probe,Microsoft.Z3.Tactic,Microsoft.Z3.Tactic)">
+ <summary>
+ Create a tactic that applies <paramref name="t1"/> to a given goal if the probe
+ <paramref name="p"/> evaluates to true and <paramref name="t2"/> otherwise.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.Repeat(Microsoft.Z3.Tactic,System.UInt32)">
+ <summary>
+ Create a tactic that keeps applying <paramref name="t"/> until the goal is not
+ modified anymore or the maximum number of iterations <paramref name="max"/> is reached.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.Skip">
+ <summary>
+ Create a tactic that just returns the given goal.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.Fail">
+ <summary>
+ Create a tactic always fails.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.FailIf(Microsoft.Z3.Probe)">
+ <summary>
+ Create a tactic that fails if the probe <paramref name="p"/> evaluates to false.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.FailIfNotDecided">
+ <summary>
+ Create a tactic that fails if the goal is not triviall satisfiable (i.e., empty)
+ or trivially unsatisfiable (i.e., contains `false').
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.UsingParams(Microsoft.Z3.Tactic,Microsoft.Z3.Params)">
+ <summary>
+ Create a tactic that applies <paramref name="t"/> using the given set of parameters <paramref name="p"/>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.With(Microsoft.Z3.Tactic,Microsoft.Z3.Params)">
+ <summary>
+ Create a tactic that applies <paramref name="t"/> using the given set of parameters <paramref name="p"/>.
+ </summary>
+ <remarks>Alias for <c>UsingParams</c></remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.ParOr(Microsoft.Z3.Tactic[])">
+ <summary>
+ Create a tactic that applies the given tactics in parallel until one of them succeeds (i.e., the first that doesn't fail).
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.ParAndThen(Microsoft.Z3.Tactic,Microsoft.Z3.Tactic)">
+ <summary>
+ Create a tactic that applies <paramref name="t1"/> to a given goal and then <paramref name="t2"/>
+ to every subgoal produced by <paramref name="t1"/>. The subgoals are processed in parallel.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.Interrupt">
+ <summary>
+ Interrupt the execution of a Z3 procedure.
+ </summary>
+ <remarks>This procedure can be used to interrupt: solvers, simplifiers and tactics.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.ProbeDescription(System.String)">
+ <summary>
+ Returns a string containing a description of the probe with the given name.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkProbe(System.String)">
+ <summary>
+ Creates a new Probe.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.ConstProbe(System.Double)">
+ <summary>
+ Create a probe that always evaluates to <paramref name="val"/>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.Lt(Microsoft.Z3.Probe,Microsoft.Z3.Probe)">
+ <summary>
+ Create a probe that evaluates to "true" when the value returned by <paramref name="p1"/>
+ is less than the value returned by <paramref name="p2"/>
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.Gt(Microsoft.Z3.Probe,Microsoft.Z3.Probe)">
+ <summary>
+ Create a probe that evaluates to "true" when the value returned by <paramref name="p1"/>
+ is greater than the value returned by <paramref name="p2"/>
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.Le(Microsoft.Z3.Probe,Microsoft.Z3.Probe)">
+ <summary>
+ Create a probe that evaluates to "true" when the value returned by <paramref name="p1"/>
+ is less than or equal the value returned by <paramref name="p2"/>
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.Ge(Microsoft.Z3.Probe,Microsoft.Z3.Probe)">
+ <summary>
+ Create a probe that evaluates to "true" when the value returned by <paramref name="p1"/>
+ is greater than or equal the value returned by <paramref name="p2"/>
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.Eq(Microsoft.Z3.Probe,Microsoft.Z3.Probe)">
+ <summary>
+ Create a probe that evaluates to "true" when the value returned by <paramref name="p1"/>
+ is equal to the value returned by <paramref name="p2"/>
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.And(Microsoft.Z3.Probe,Microsoft.Z3.Probe)">
+ <summary>
+ Create a probe that evaluates to "true" when the value <paramref name="p1"/>
+ and <paramref name="p2"/> evaluate to "true".
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.Or(Microsoft.Z3.Probe,Microsoft.Z3.Probe)">
+ <summary>
+ Create a probe that evaluates to "true" when the value <paramref name="p1"/>
+ or <paramref name="p2"/> evaluate to "true".
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.Not(Microsoft.Z3.Probe)">
+ <summary>
+ Create a probe that evaluates to "true" when the value <paramref name="p"/>
+ does not evaluate to "true".
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSolver(Microsoft.Z3.Symbol)">
+ <summary>
+ Creates a new (incremental) solver.
+ </summary>
+ <remarks>
+ This solver also uses a set of builtin tactics for handling the first
+ check-sat command, and check-sat commands that take more than a given
+ number of milliseconds to be solved.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSolver(System.String)">
+ <summary>
+ Creates a new (incremental) solver.
+ </summary>
+ <seealso cref="M:Microsoft.Z3.Context.MkSolver(Microsoft.Z3.Symbol)"/>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSimpleSolver">
+ <summary>
+ Creates a new (incremental) solver.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSolver(Microsoft.Z3.Tactic)">
+ <summary>
+ Creates a solver that is implemented using the given tactic.
+ </summary>
+ <remarks>
+ The solver supports the commands <c>Push</c> and <c>Pop</c>, but it
+ will always solve each check from scratch.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFixedpoint">
+ <summary>
+ Create a Fixedpoint context.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkOptimize">
+ <summary>
+ Create an Optimization context.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPRoundingModeSort">
+ <summary>
+ Create the floating-point RoundingMode sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPRoundNearestTiesToEven">
+ <summary>
+ Create a numeral of RoundingMode sort which represents the NearestTiesToEven rounding mode.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPRNE">
+ <summary>
+ Create a numeral of RoundingMode sort which represents the NearestTiesToEven rounding mode.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPRoundNearestTiesToAway">
+ <summary>
+ Create a numeral of RoundingMode sort which represents the NearestTiesToAway rounding mode.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPRNA">
+ <summary>
+ Create a numeral of RoundingMode sort which represents the NearestTiesToAway rounding mode.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPRoundTowardPositive">
+ <summary>
+ Create a numeral of RoundingMode sort which represents the RoundTowardPositive rounding mode.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPRTP">
+ <summary>
+ Create a numeral of RoundingMode sort which represents the RoundTowardPositive rounding mode.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPRoundTowardNegative">
+ <summary>
+ Create a numeral of RoundingMode sort which represents the RoundTowardNegative rounding mode.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPRTN">
+ <summary>
+ Create a numeral of RoundingMode sort which represents the RoundTowardNegative rounding mode.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPRoundTowardZero">
+ <summary>
+ Create a numeral of RoundingMode sort which represents the RoundTowardZero rounding mode.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPRTZ">
+ <summary>
+ Create a numeral of RoundingMode sort which represents the RoundTowardZero rounding mode.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPSort(System.UInt32,System.UInt32)">
+ <summary>
+ Create a FloatingPoint sort.
+ </summary>
+ <param name="ebits">exponent bits in the FloatingPoint sort.</param>
+ <param name="sbits">significand bits in the FloatingPoint sort.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPSortHalf">
+ <summary>
+ Create the half-precision (16-bit) FloatingPoint sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPSort16">
+ <summary>
+ Create the half-precision (16-bit) FloatingPoint sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPSortSingle">
+ <summary>
+ Create the single-precision (32-bit) FloatingPoint sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPSort32">
+ <summary>
+ Create the single-precision (32-bit) FloatingPoint sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPSortDouble">
+ <summary>
+ Create the double-precision (64-bit) FloatingPoint sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPSort64">
+ <summary>
+ Create the double-precision (64-bit) FloatingPoint sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPSortQuadruple">
+ <summary>
+ Create the quadruple-precision (128-bit) FloatingPoint sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPSort128">
+ <summary>
+ Create the quadruple-precision (128-bit) FloatingPoint sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPNaN(Microsoft.Z3.FPSort)">
+ <summary>
+ Create a NaN of sort s.
+ </summary>
+ <param name="s">FloatingPoint sort.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPInf(Microsoft.Z3.FPSort,System.Boolean)">
+ <summary>
+ Create a floating-point infinity of sort s.
+ </summary>
+ <param name="s">FloatingPoint sort.</param>
+ <param name="negative">indicates whether the result should be negative.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPZero(Microsoft.Z3.FPSort,System.Boolean)">
+ <summary>
+ Create a floating-point zero of sort s.
+ </summary>
+ <param name="s">FloatingPoint sort.</param>
+ <param name="negative">indicates whether the result should be negative.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPNumeral(System.Single,Microsoft.Z3.FPSort)">
+ <summary>
+ Create a numeral of FloatingPoint sort from a float.
+ </summary>
+ <param name="v">numeral value.</param>
+ <param name="s">FloatingPoint sort.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPNumeral(System.Double,Microsoft.Z3.FPSort)">
+ <summary>
+ Create a numeral of FloatingPoint sort from a float.
+ </summary>
+ <param name="v">numeral value.</param>
+ <param name="s">FloatingPoint sort.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPNumeral(System.Int32,Microsoft.Z3.FPSort)">
+ <summary>
+ Create a numeral of FloatingPoint sort from an int.
+ </summary>
+ <param name="v">numeral value.</param>
+ <param name="s">FloatingPoint sort.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPNumeral(System.Boolean,System.UInt32,System.Int32,Microsoft.Z3.FPSort)">
+ <summary>
+ Create a numeral of FloatingPoint sort from a sign bit and two integers.
+ </summary>
+ <param name="sgn">the sign.</param>
+ <param name="sig">the significand.</param>
+ <param name="exp">the exponent.</param>
+ <param name="s">FloatingPoint sort.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPNumeral(System.Boolean,System.Int64,System.UInt64,Microsoft.Z3.FPSort)">
+ <summary>
+ Create a numeral of FloatingPoint sort from a sign bit and two 64-bit integers.
+ </summary>
+ <param name="sgn">the sign.</param>
+ <param name="sig">the significand.</param>
+ <param name="exp">the exponent.</param>
+ <param name="s">FloatingPoint sort.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFP(System.Single,Microsoft.Z3.FPSort)">
+ <summary>
+ Create a numeral of FloatingPoint sort from a float.
+ </summary>
+ <param name="v">numeral value.</param>
+ <param name="s">FloatingPoint sort.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFP(System.Double,Microsoft.Z3.FPSort)">
+ <summary>
+ Create a numeral of FloatingPoint sort from a float.
+ </summary>
+ <param name="v">numeral value.</param>
+ <param name="s">FloatingPoint sort.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFP(System.Int32,Microsoft.Z3.FPSort)">
+ <summary>
+ Create a numeral of FloatingPoint sort from an int.
+ </summary>
+ <param name="v">numeral value.</param>
+ <param name="s">FloatingPoint sort.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFP(System.Boolean,System.Int32,System.UInt32,Microsoft.Z3.FPSort)">
+ <summary>
+ Create a numeral of FloatingPoint sort from a sign bit and two integers.
+ </summary>
+ <param name="sgn">the sign.</param>
+ <param name="exp">the exponent.</param>
+ <param name="sig">the significand.</param>
+ <param name="s">FloatingPoint sort.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFP(System.Boolean,System.Int64,System.UInt64,Microsoft.Z3.FPSort)">
+ <summary>
+ Create a numeral of FloatingPoint sort from a sign bit and two 64-bit integers.
+ </summary>
+ <param name="sgn">the sign.</param>
+ <param name="exp">the exponent.</param>
+ <param name="sig">the significand.</param>
+ <param name="s">FloatingPoint sort.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPAbs(Microsoft.Z3.FPExpr)">
+ <summary>
+ Floating-point absolute value
+ </summary>
+ <param name="t">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPNeg(Microsoft.Z3.FPExpr)">
+ <summary>
+ Floating-point negation
+ </summary>
+ <param name="t">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPAdd(Microsoft.Z3.FPRMExpr,Microsoft.Z3.FPExpr,Microsoft.Z3.FPExpr)">
+ <summary>
+ Floating-point addition
+ </summary>
+ <param name="rm">rounding mode term</param>
+ <param name="t1">floating-point term</param>
+ <param name="t2">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPSub(Microsoft.Z3.FPRMExpr,Microsoft.Z3.FPExpr,Microsoft.Z3.FPExpr)">
+ <summary>
+ Floating-point subtraction
+ </summary>
+ <param name="rm">rounding mode term</param>
+ <param name="t1">floating-point term</param>
+ <param name="t2">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPMul(Microsoft.Z3.FPRMExpr,Microsoft.Z3.FPExpr,Microsoft.Z3.FPExpr)">
+ <summary>
+ Floating-point multiplication
+ </summary>
+ <param name="rm">rounding mode term</param>
+ <param name="t1">floating-point term</param>
+ <param name="t2">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPDiv(Microsoft.Z3.FPRMExpr,Microsoft.Z3.FPExpr,Microsoft.Z3.FPExpr)">
+ <summary>
+ Floating-point division
+ </summary>
+ <param name="rm">rounding mode term</param>
+ <param name="t1">floating-point term</param>
+ <param name="t2">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPFMA(Microsoft.Z3.FPRMExpr,Microsoft.Z3.FPExpr,Microsoft.Z3.FPExpr,Microsoft.Z3.FPExpr)">
+ <summary>
+ Floating-point fused multiply-add
+ </summary>
+ <remarks>
+ The result is round((t1 * t2) + t3)
+ </remarks>
+ <param name="rm">rounding mode term</param>
+ <param name="t1">floating-point term</param>
+ <param name="t2">floating-point term</param>
+ <param name="t3">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPSqrt(Microsoft.Z3.FPRMExpr,Microsoft.Z3.FPExpr)">
+ <summary>
+ Floating-point square root
+ </summary>
+ <param name="rm">rounding mode term</param>
+ <param name="t">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPRem(Microsoft.Z3.FPExpr,Microsoft.Z3.FPExpr)">
+ <summary>
+ Floating-point remainder
+ </summary>
+ <param name="t1">floating-point term</param>
+ <param name="t2">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPRoundToIntegral(Microsoft.Z3.FPRMExpr,Microsoft.Z3.FPExpr)">
+ <summary>
+ Floating-point roundToIntegral. Rounds a floating-point number to
+ the closest integer, again represented as a floating-point number.
+ </summary>
+ <param name="rm">term of RoundingMode sort</param>
+ <param name="t">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPMin(Microsoft.Z3.FPExpr,Microsoft.Z3.FPExpr)">
+ <summary>
+ Minimum of floating-point numbers.
+ </summary>
+ <param name="t1">floating-point term</param>
+ <param name="t2">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPMax(Microsoft.Z3.FPExpr,Microsoft.Z3.FPExpr)">
+ <summary>
+ Maximum of floating-point numbers.
+ </summary>
+ <param name="t1">floating-point term</param>
+ <param name="t2">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPLEq(Microsoft.Z3.FPExpr,Microsoft.Z3.FPExpr)">
+ <summary>
+ Floating-point less than or equal.
+ </summary>
+ <param name="t1">floating-point term</param>
+ <param name="t2">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPLt(Microsoft.Z3.FPExpr,Microsoft.Z3.FPExpr)">
+ <summary>
+ Floating-point less than.
+ </summary>
+ <param name="t1">floating-point term</param>
+ <param name="t2">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPGEq(Microsoft.Z3.FPExpr,Microsoft.Z3.FPExpr)">
+ <summary>
+ Floating-point greater than or equal.
+ </summary>
+ <param name="t1">floating-point term</param>
+ <param name="t2">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPGt(Microsoft.Z3.FPExpr,Microsoft.Z3.FPExpr)">
+ <summary>
+ Floating-point greater than.
+ </summary>
+ <param name="t1">floating-point term</param>
+ <param name="t2">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPEq(Microsoft.Z3.FPExpr,Microsoft.Z3.FPExpr)">
+ <summary>
+ Floating-point equality.
+ </summary>
+ <remarks>
+ Note that this is IEEE 754 equality (as opposed to standard =).
+ </remarks>
+ <param name="t1">floating-point term</param>
+ <param name="t2">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPIsNormal(Microsoft.Z3.FPExpr)">
+ <summary>
+ Predicate indicating whether t is a normal floating-point number.
+ </summary>
+ <param name="t">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPIsSubnormal(Microsoft.Z3.FPExpr)">
+ <summary>
+ Predicate indicating whether t is a subnormal floating-point number.
+ </summary>
+ <param name="t">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPIsZero(Microsoft.Z3.FPExpr)">
+ <summary>
+ Predicate indicating whether t is a floating-point number with zero value, i.e., +0 or -0.
+ </summary>
+ <param name="t">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPIsInfinite(Microsoft.Z3.FPExpr)">
+ <summary>
+ Predicate indicating whether t is a floating-point number representing +oo or -oo.
+ </summary>
+ <param name="t">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPIsNaN(Microsoft.Z3.FPExpr)">
+ <summary>
+ Predicate indicating whether t is a NaN.
+ </summary>
+ <param name="t">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPIsNegative(Microsoft.Z3.FPExpr)">
+ <summary>
+ Predicate indicating whether t is a negative floating-point number.
+ </summary>
+ <param name="t">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPIsPositive(Microsoft.Z3.FPExpr)">
+ <summary>
+ Predicate indicating whether t is a positive floating-point number.
+ </summary>
+ <param name="t">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFP(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Create an expression of FloatingPoint sort from three bit-vector expressions.
+ </summary>
+ <remarks>
+ This is the operator named `fp' in the SMT FP theory definition.
+ Note that sgn is required to be a bit-vector of size 1. Significand and exponent
+ are required to be greater than 1 and 2 respectively. The FloatingPoint sort
+ of the resulting expression is automatically determined from the bit-vector sizes
+ of the arguments.
+ </remarks>
+ <param name="sgn">bit-vector term (of size 1) representing the sign.</param>
+ <param name="sig">bit-vector term representing the significand.</param>
+ <param name="exp">bit-vector term representing the exponent.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPToFP(Microsoft.Z3.BitVecExpr,Microsoft.Z3.FPSort)">
+ <summary>
+ Conversion of a single IEEE 754-2008 bit-vector into a floating-point number.
+ </summary>
+ <remarks>
+ Produces a term that represents the conversion of a bit-vector term bv to a
+ floating-point term of sort s. The bit-vector size of bv (m) must be equal
+ to ebits+sbits of s. The format of the bit-vector is as defined by the
+ IEEE 754-2008 interchange format.
+ </remarks>
+ <param name="bv">bit-vector value (of size m).</param>
+ <param name="s">FloatingPoint sort (ebits+sbits == m)</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPToFP(Microsoft.Z3.FPRMExpr,Microsoft.Z3.FPExpr,Microsoft.Z3.FPSort)">
+ <summary>
+ Conversion of a FloatingPoint term into another term of different FloatingPoint sort.
+ </summary>
+ <remarks>
+ Produces a term that represents the conversion of a floating-point term t to a
+ floating-point term of sort s. If necessary, the result will be rounded according
+ to rounding mode rm.
+ </remarks>
+ <param name="rm">RoundingMode term.</param>
+ <param name="t">FloatingPoint term.</param>
+ <param name="s">FloatingPoint sort.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPToFP(Microsoft.Z3.FPRMExpr,Microsoft.Z3.RealExpr,Microsoft.Z3.FPSort)">
+ <summary>
+ Conversion of a term of real sort into a term of FloatingPoint sort.
+ </summary>
+ <remarks>
+ Produces a term that represents the conversion of term t of real sort into a
+ floating-point term of sort s. If necessary, the result will be rounded according
+ to rounding mode rm.
+ </remarks>
+ <param name="rm">RoundingMode term.</param>
+ <param name="t">term of Real sort.</param>
+ <param name="s">FloatingPoint sort.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPToFP(Microsoft.Z3.FPRMExpr,Microsoft.Z3.BitVecExpr,Microsoft.Z3.FPSort,System.Boolean)">
+ <summary>
+ Conversion of a 2's complement signed bit-vector term into a term of FloatingPoint sort.
+ </summary>
+ <remarks>
+ Produces a term that represents the conversion of the bit-vector term t into a
+ floating-point term of sort s. The bit-vector t is taken to be in signed
+ 2's complement format (when signed==true, otherwise unsigned). If necessary, the
+ result will be rounded according to rounding mode rm.
+ </remarks>
+ <param name="rm">RoundingMode term.</param>
+ <param name="t">term of bit-vector sort.</param>
+ <param name="s">FloatingPoint sort.</param>
+ <param name="signed">flag indicating whether t is interpreted as signed or unsigned bit-vector.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPToFP(Microsoft.Z3.FPSort,Microsoft.Z3.FPRMExpr,Microsoft.Z3.FPExpr)">
+ <summary>
+ Conversion of a floating-point number to another FloatingPoint sort s.
+ </summary>
+ <remarks>
+ Produces a term that represents the conversion of a floating-point term t to a different
+ FloatingPoint sort s. If necessary, rounding according to rm is applied.
+ </remarks>
+ <param name="s">FloatingPoint sort</param>
+ <param name="rm">floating-point rounding mode term</param>
+ <param name="t">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPToBV(Microsoft.Z3.FPRMExpr,Microsoft.Z3.FPExpr,System.UInt32,System.Boolean)">
+ <summary>
+ Conversion of a floating-point term into a bit-vector.
+ </summary>
+ <remarks>
+ Produces a term that represents the conversion of the floating-poiunt term t into a
+ bit-vector term of size sz in 2's complement format (signed when signed==true). If necessary,
+ the result will be rounded according to rounding mode rm.
+ </remarks>
+ <param name="rm">RoundingMode term.</param>
+ <param name="t">FloatingPoint term</param>
+ <param name="sz">Size of the resulting bit-vector.</param>
+ <param name="signed">Indicates whether the result is a signed or unsigned bit-vector.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPToReal(Microsoft.Z3.FPExpr)">
+ <summary>
+ Conversion of a floating-point term into a real-numbered term.
+ </summary>
+ <remarks>
+ Produces a term that represents the conversion of the floating-poiunt term t into a
+ real number. Note that this type of conversion will often result in non-linear
+ constraints over real terms.
+ </remarks>
+ <param name="t">FloatingPoint term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPToIEEEBV(Microsoft.Z3.FPExpr)">
+ <summary>
+ Conversion of a floating-point term into a bit-vector term in IEEE 754-2008 format.
+ </summary>
+ <remarks>
+ The size of the resulting bit-vector is automatically determined. Note that
+ IEEE 754-2008 allows multiple different representations of NaN. This conversion
+ knows only one NaN and it will always produce the same bit-vector represenatation of
+ that NaN.
+ </remarks>
+ <param name="t">FloatingPoint term.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPToFP(Microsoft.Z3.FPRMExpr,Microsoft.Z3.IntExpr,Microsoft.Z3.RealExpr,Microsoft.Z3.FPSort)">
+ <summary>
+ Conversion of a real-sorted significand and an integer-sorted exponent into a term of FloatingPoint sort.
+ </summary>
+ <remarks>
+ Produces a term that represents the conversion of sig * 2^exp into a
+ floating-point term of sort s. If necessary, the result will be rounded
+ according to rounding mode rm.
+ </remarks>
+ <param name="rm">RoundingMode term.</param>
+ <param name="exp">Exponent term of Int sort.</param>
+ <param name="sig">Significand term of Real sort.</param>
+ <param name="s">FloatingPoint sort.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.WrapAST(System.IntPtr)">
+ <summary>
+ Wraps an AST.
+ </summary>
+ <remarks>This function is used for transitions between native and
+ managed objects. Note that <paramref name="nativeObject"/> must be a
+ native object obtained from Z3 (e.g., through <seealso cref="M:Microsoft.Z3.Context.UnwrapAST(Microsoft.Z3.AST)"/>)
+ and that it must have a correct reference count (see e.g.,
+ <seealso cref="M:Microsoft.Z3.Native.Z3_inc_ref(System.IntPtr,System.IntPtr)"/>.</remarks>
+ <seealso cref="M:Microsoft.Z3.Context.UnwrapAST(Microsoft.Z3.AST)"/>
+ <param name="nativeObject">The native pointer to wrap.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.UnwrapAST(Microsoft.Z3.AST)">
+ <summary>
+ Unwraps an AST.
+ </summary>
+ <remarks>This function is used for transitions between native and
+ managed objects. It returns the native pointer to the AST. Note that
+ AST objects are reference counted and unwrapping an AST disables automatic
+ reference counting, i.e., all references to the IntPtr that is returned
+ must be handled externally and through native calls (see e.g.,
+ <seealso cref="M:Microsoft.Z3.Native.Z3_inc_ref(System.IntPtr,System.IntPtr)"/>).</remarks>
+ <seealso cref="M:Microsoft.Z3.Context.WrapAST(System.IntPtr)"/>
+ <param name="a">The AST to unwrap.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.SimplifyHelp">
+ <summary>
+ Return a string describing all available parameters to <c>Expr.Simplify</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.UpdateParamValue(System.String,System.String)">
+ <summary>
+ Update a mutable configuration parameter.
+ </summary>
+ <remarks>
+ The list of all configuration parameters can be obtained using the Z3 executable:
+ <c>z3.exe -p</c>
+ Only a few configuration parameters are mutable once the context is created.
+ An exception is thrown when trying to modify an immutable parameter.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.Finalize">
+ <summary>
+ Finalizer.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.Dispose">
+ <summary>
+ Disposes of the context.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.BoolSort">
+ <summary>
+ Retrieves the Boolean sort of the context.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.IntSort">
+ <summary>
+ Retrieves the Integer sort of the context.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.RealSort">
+ <summary>
+ Retrieves the Real sort of the context.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.StringSort">
+ <summary>
+ Retrieves the String sort of the context.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.PrintMode">
+ <summary>
+ Selects the format used for pretty-printing expressions.
+ </summary>
+ <remarks>
+ The default mode for pretty printing expressions is to produce
+ SMT-LIB style output where common subexpressions are printed
+ at each occurrence. The mode is called Z3_PRINT_SMTLIB_FULL.
+ To print shared common subexpressions only once,
+ use the Z3_PRINT_LOW_LEVEL mode.
+ To print in way that conforms to SMT-LIB standards and uses let
+ expressions to share common sub-expressions use Z3_PRINT_SMTLIB_COMPLIANT.
+ </remarks>
+ <seealso cref="M:Microsoft.Z3.AST.ToString"/>
+ <seealso cref="M:Microsoft.Z3.Pattern.ToString"/>
+ <seealso cref="M:Microsoft.Z3.FuncDecl.ToString"/>
+ <seealso cref="M:Microsoft.Z3.Sort.ToString"/>
+ </member>
+ <member name="P:Microsoft.Z3.Context.NumSMTLIBFormulas">
+ <summary>
+ The number of SMTLIB formulas parsed by the last call to <c>ParseSMTLIBString</c> or <c>ParseSMTLIBFile</c>.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.SMTLIBFormulas">
+ <summary>
+ The formulas parsed by the last call to <c>ParseSMTLIBString</c> or <c>ParseSMTLIBFile</c>.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.NumSMTLIBAssumptions">
+ <summary>
+ The number of SMTLIB assumptions parsed by the last call to <c>ParseSMTLIBString</c> or <c>ParseSMTLIBFile</c>.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.SMTLIBAssumptions">
+ <summary>
+ The assumptions parsed by the last call to <c>ParseSMTLIBString</c> or <c>ParseSMTLIBFile</c>.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.NumSMTLIBDecls">
+ <summary>
+ The number of SMTLIB declarations parsed by the last call to <c>ParseSMTLIBString</c> or <c>ParseSMTLIBFile</c>.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.SMTLIBDecls">
+ <summary>
+ The declarations parsed by the last call to <c>ParseSMTLIBString</c> or <c>ParseSMTLIBFile</c>.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.NumSMTLIBSorts">
+ <summary>
+ The number of SMTLIB sorts parsed by the last call to <c>ParseSMTLIBString</c> or <c>ParseSMTLIBFile</c>.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.SMTLIBSorts">
+ <summary>
+ The declarations parsed by the last call to <c>ParseSMTLIBString</c> or <c>ParseSMTLIBFile</c>.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.NumTactics">
+ <summary>
+ The number of supported tactics.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.TacticNames">
+ <summary>
+ The names of all supported tactics.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.NumProbes">
+ <summary>
+ The number of supported Probes.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.ProbeNames">
+ <summary>
+ The names of all supported Probes.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.SimplifyParameterDescriptions">
+ <summary>
+ Retrieves parameter descriptions for simplifier.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.AST_DRQ">
+ <summary>
+ AST DRQ
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.ASTMap_DRQ">
+ <summary>
+ ASTMap DRQ
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.ASTVector_DRQ">
+ <summary>
+ ASTVector DRQ
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.ApplyResult_DRQ">
+ <summary>
+ ApplyResult DRQ
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.FuncEntry_DRQ">
+ <summary>
+ FuncEntry DRQ
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.FuncInterp_DRQ">
+ <summary>
+ FuncInterp DRQ
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.Goal_DRQ">
+ <summary>
+ Goal DRQ
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.Model_DRQ">
+ <summary>
+ Model DRQ
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.Params_DRQ">
+ <summary>
+ Params DRQ
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.ParamDescrs_DRQ">
+ <summary>
+ ParamDescrs DRQ
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.Probe_DRQ">
+ <summary>
+ Probe DRQ
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.Solver_DRQ">
+ <summary>
+ Solver DRQ
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.Statistics_DRQ">
+ <summary>
+ Statistics DRQ
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.Tactic_DRQ">
+ <summary>
+ Tactic DRQ
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.Fixedpoint_DRQ">
+ <summary>
+ FixedPoint DRQ
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.Optimize_DRQ">
+ <summary>
+ Optimize DRQ
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.DatatypeExpr">
+ <summary>
+ Datatype expressions
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.DatatypeExpr.#ctor(Microsoft.Z3.Context,System.IntPtr)">
+ <summary> Constructor for DatatypeExpr </summary>
+ </member>
+ <member name="T:Microsoft.Z3.DatatypeSort">
+ <summary>
+ Datatype sorts.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.DatatypeSort.NumConstructors">
+ <summary>
+ The number of constructors of the datatype sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.DatatypeSort.Constructors">
+ <summary>
+ The constructors.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.DatatypeSort.Recognizers">
+ <summary>
+ The recognizers.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.DatatypeSort.Accessors">
+ <summary>
+ The constructor accessors.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Deprecated">
+ <summary>
+ The main interaction with Z3 happens via the Context.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Z3_lbool">
+ <summary>Z3_lbool</summary>
+ </member>
+ <member name="T:Microsoft.Z3.Z3_symbol_kind">
+ <summary>Z3_symbol_kind</summary>
+ </member>
+ <member name="T:Microsoft.Z3.Z3_parameter_kind">
+ <summary>Z3_parameter_kind</summary>
+ </member>
+ <member name="T:Microsoft.Z3.Z3_sort_kind">
+ <summary>Z3_sort_kind</summary>
+ </member>
+ <member name="T:Microsoft.Z3.Z3_ast_kind">
+ <summary>Z3_ast_kind</summary>
+ </member>
+ <member name="T:Microsoft.Z3.Z3_decl_kind">
+ <summary>Z3_decl_kind</summary>
+ </member>
+ <member name="T:Microsoft.Z3.Z3_param_kind">
+ <summary>Z3_param_kind</summary>
+ </member>
+ <member name="T:Microsoft.Z3.Z3_ast_print_mode">
+ <summary>Z3_ast_print_mode</summary>
+ </member>
+ <member name="T:Microsoft.Z3.Z3_error_code">
+ <summary>Z3_error_code</summary>
+ </member>
+ <member name="T:Microsoft.Z3.Z3_goal_prec">
+ <summary>Z3_goal_prec</summary>
+ </member>
+ <member name="T:Microsoft.Z3.EnumSort">
+ <summary>
+ Enumeration sorts.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.EnumSort.ConstDecl(System.UInt32)">
+ <summary>
+ Retrieves the inx'th constant declaration in the enumeration.
+ </summary>
+ <param name="inx"></param>
+ <returns></returns>
+ </member>
+ <member name="M:Microsoft.Z3.EnumSort.Const(System.UInt32)">
+ <summary>
+ Retrieves the inx'th constant in the enumeration.
+ </summary>
+ <param name="inx"></param>
+ <returns></returns>
+ </member>
+ <member name="M:Microsoft.Z3.EnumSort.TesterDecl(System.UInt32)">
+ <summary>
+ Retrieves the inx'th tester/recognizer declaration in the enumeration.
+ </summary>
+ <param name="inx"></param>
+ <returns></returns>
+ </member>
+ <member name="P:Microsoft.Z3.EnumSort.ConstDecls">
+ <summary>
+ The function declarations of the constants in the enumeration.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.EnumSort.Consts">
+ <summary>
+ The constants in the enumeration.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.EnumSort.TesterDecls">
+ <summary>
+ The test predicates (recognizers) for the constants in the enumeration.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.FiniteDomainExpr">
+ <summary>
+ Finite-domain expressions
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.FiniteDomainExpr.#ctor(Microsoft.Z3.Context,System.IntPtr)">
+ <summary> Constructor for DatatypeExpr </summary>
+ </member>
+ <member name="T:Microsoft.Z3.FiniteDomainNum">
+ <summary>
+ Finite-domain numerals
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.FiniteDomainNum.ToString">
+ <summary>
+ Returns a string representation of the numeral.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FiniteDomainNum.UInt64">
+ <summary>
+ Retrieve the 64-bit unsigned integer value.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FiniteDomainNum.Int">
+ <summary>
+ Retrieve the int value.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FiniteDomainNum.Int64">
+ <summary>
+ Retrieve the 64-bit int value.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FiniteDomainNum.UInt">
+ <summary>
+ Retrieve the int value.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FiniteDomainNum.BigInteger">
+ <summary>
+ Retrieve the BigInteger value.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.FiniteDomainSort">
+ <summary>
+ Finite domain sorts.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FiniteDomainSort.Size">
+ <summary>
+ The size of the finite domain sort.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Fixedpoint">
+ <summary>
+ Object for managing fixedpoints
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.Assert(Microsoft.Z3.BoolExpr[])">
+ <summary>
+ Assert a constraint (or multiple) into the fixedpoint solver.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.Add(Microsoft.Z3.BoolExpr[])">
+ <summary>
+ Alias for Assert.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.RegisterRelation(Microsoft.Z3.FuncDecl)">
+ <summary>
+ Register predicate as recursive relation.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.AddRule(Microsoft.Z3.BoolExpr,Microsoft.Z3.Symbol)">
+ <summary>
+ Add rule into the fixedpoint solver.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.AddFact(Microsoft.Z3.FuncDecl,System.UInt32[])">
+ <summary>
+ Add table fact to the fixedpoint solver.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.Query(Microsoft.Z3.BoolExpr)">
+ <summary>
+ Query the fixedpoint solver.
+ A query is a conjunction of constraints. The constraints may include the recursively defined relations.
+ The query is satisfiable if there is an instance of the query variables and a derivation for it.
+ The query is unsatisfiable if there are no derivations satisfying the query variables.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.Query(Microsoft.Z3.FuncDecl[])">
+ <summary>
+ Query the fixedpoint solver.
+ A query is an array of relations.
+ The query is satisfiable if there is an instance of some relation that is non-empty.
+ The query is unsatisfiable if there are no derivations satisfying any of the relations.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.Push">
+ <summary>
+ Creates a backtracking point.
+ </summary>
+ <seealso cref="M:Microsoft.Z3.Fixedpoint.Pop"/>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.Pop">
+ <summary>
+ Backtrack one backtracking point.
+ </summary>
+ <remarks>Note that an exception is thrown if Pop is called without a corresponding <c>Push</c></remarks>
+ <seealso cref="M:Microsoft.Z3.Fixedpoint.Push"/>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.UpdateRule(Microsoft.Z3.BoolExpr,Microsoft.Z3.Symbol)">
+ <summary>
+ Update named rule into in the fixedpoint solver.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.GetAnswer">
+ <summary>
+ Retrieve satisfying instance or instances of solver,
+ or definitions for the recursive predicates that show unsatisfiability.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.GetReasonUnknown">
+ <summary>
+ Retrieve explanation why fixedpoint engine returned status Unknown.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.GetNumLevels(Microsoft.Z3.FuncDecl)">
+ <summary>
+ Retrieve the number of levels explored for a given predicate.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.GetCoverDelta(System.Int32,Microsoft.Z3.FuncDecl)">
+ <summary>
+ Retrieve the cover of a predicate.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.AddCover(System.Int32,Microsoft.Z3.FuncDecl,Microsoft.Z3.Expr)">
+ <summary>
+ Add <tt>property</tt> about the <tt>predicate</tt>.
+ The property is added at <tt>level</tt>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.ToString">
+ <summary>
+ Retrieve internal string representation of fixedpoint object.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.SetPredicateRepresentation(Microsoft.Z3.FuncDecl,Microsoft.Z3.Symbol[])">
+ <summary>
+ Instrument the Datalog engine on which table representation to use for recursive predicate.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.ToString(Microsoft.Z3.BoolExpr[])">
+ <summary>
+ Convert benchmark given as set of axioms, rules and queries to a string.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.ParseFile(System.String)">
+ <summary>
+ Parse an SMT-LIB2 file with fixedpoint rules.
+ Add the rules to the current fixedpoint context.
+ Return the set of queries in the file.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.ParseString(System.String)">
+ <summary>
+ Similar to ParseFile. Instead it takes as argument a string.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Fixedpoint.Help">
+ <summary>
+ A string that describes all available fixedpoint solver parameters.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Fixedpoint.Parameters">
+ <summary>
+ Sets the fixedpoint solver parameters.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Fixedpoint.ParameterDescriptions">
+ <summary>
+ Retrieves parameter descriptions for Fixedpoint solver.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Fixedpoint.Rules">
+ <summary>
+ Retrieve set of rules added to fixedpoint context.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Fixedpoint.Assertions">
+ <summary>
+ Retrieve set of assertions added to fixedpoint context.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Fixedpoint.Statistics">
+ <summary>
+ Fixedpoint statistics.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.FPExpr">
+ <summary>
+ FloatingPoint Expressions
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.FPExpr.#ctor(Microsoft.Z3.Context,System.IntPtr)">
+ <summary> Constructor for FPExpr </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPExpr.EBits">
+ <summary>
+ The number of exponent bits.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPExpr.SBits">
+ <summary>
+ The number of significand bits.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.FPNum">
+ <summary>
+ FloatiungPoint Numerals
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.FPNum.ToString">
+ <summary>
+ Returns a string representation of the numeral.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPNum.Sign">
+ <summary>
+ Retrieves the sign of a floating-point literal
+ </summary>
+ <remarks>
+ Remarks: returns true if the numeral is negative
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.FPNum.Significand">
+ <summary>
+ The significand value of a floating-point numeral as a string
+ </summary>
+ <remarks>
+ The significand s is always 0 &lt; s &lt; 2.0; the resulting string is long
+ enough to represent the real significand precisely.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.FPNum.SignificandUInt64">
+ <summary>
+ The significand value of a floating-point numeral as a UInt64
+ </summary>
+ <remarks>
+ This function extracts the significand bits, without the
+ hidden bit or normalization. Throws an exception if the
+ significand does not fit into a UInt64.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.FPNum.Exponent">
+ <summary>
+ Return the exponent value of a floating-point numeral as a string
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPNum.ExponentInt64">
+ <summary>
+ Return the exponent value of a floating-point numeral as a signed 64-bit integer
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.FPRMExpr">
+ <summary>
+ FloatingPoint RoundingMode Expressions
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.FPRMExpr.#ctor(Microsoft.Z3.Context,System.IntPtr)">
+ <summary> Constructor for FPRMExpr </summary>
+ </member>
+ <member name="T:Microsoft.Z3.FPRMNum">
+ <summary>
+ Floating-point rounding mode numerals
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.FPRMNum.ToString">
+ <summary>
+ Returns a string representation of the numeral.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.FPRMNum.#ctor(Microsoft.Z3.Context,System.IntPtr)">
+ <summary> Constructor for FPRMNum </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPRMNum.isRoundNearestTiesToEven">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundNearestTiesToEven
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPRMNum.isRNE">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundNearestTiesToEven
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPRMNum.isRoundNearestTiesToAway">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundNearestTiesToAway
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPRMNum.isRNA">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundNearestTiesToAway
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPRMNum.isRoundTowardPositive">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundTowardPositive
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPRMNum.isRTP">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundTowardPositive
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPRMNum.isRoundTowardNegative">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundTowardNegative
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPRMNum.isRTN">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundTowardNegative
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPRMNum.isRoundTowardZero">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundTowardZero
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPRMNum.isRTZ">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundTowardZero
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.FPRMSort">
+ <summary>
+ The FloatingPoint RoundingMode sort
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.FPSort">
+ <summary>
+ FloatingPoint sort
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPSort.EBits">
+ <summary>
+ The number of exponent bits.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPSort.SBits">
+ <summary>
+ The number of significand bits.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.FuncDecl">
+ <summary>
+ Function declarations.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.FuncDecl.op_Equality(Microsoft.Z3.FuncDecl,Microsoft.Z3.FuncDecl)">
+ <summary>
+ Comparison operator.
+ </summary>
+ <returns>True if <paramref name="a"/> and <paramref name="b"/> share the same context and are equal, false otherwise.</returns>
+ </member>
+ <member name="M:Microsoft.Z3.FuncDecl.op_Inequality(Microsoft.Z3.FuncDecl,Microsoft.Z3.FuncDecl)">
+ <summary>
+ Comparison operator.
+ </summary>
+ <returns>True if <paramref name="a"/> and <paramref name="b"/> do not share the same context or are not equal, false otherwise.</returns>
+ </member>
+ <member name="M:Microsoft.Z3.FuncDecl.Equals(System.Object)">
+ <summary>
+ Object comparison.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.FuncDecl.GetHashCode">
+ <summary>
+ A hash code.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.FuncDecl.ToString">
+ <summary>
+ A string representations of the function declaration.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.FuncDecl.Apply(Microsoft.Z3.Expr[])">
+ <summary>
+ Create expression that applies function to arguments.
+ </summary>
+ <param name="args"></param>
+ <returns></returns>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.Id">
+ <summary>
+ Returns a unique identifier for the function declaration.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.Arity">
+ <summary>
+ The arity of the function declaration
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.DomainSize">
+ <summary>
+ The size of the domain of the function declaration
+ <seealso cref="P:Microsoft.Z3.FuncDecl.Arity"/>
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.Domain">
+ <summary>
+ The domain of the function declaration
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.Range">
+ <summary>
+ The range of the function declaration
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.DeclKind">
+ <summary>
+ The kind of the function declaration.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.Name">
+ <summary>
+ The name of the function declaration
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.NumParameters">
+ <summary>
+ The number of parameters of the function declaration
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.Parameters">
+ <summary>
+ The parameters of the function declaration
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.Item(Microsoft.Z3.Expr[])">
+ <summary>
+ Create expression that applies function to arguments.
+ </summary>
+ <param name="args"></param>
+ <returns></returns>
+ </member>
+ <member name="T:Microsoft.Z3.FuncDecl.Parameter">
+ <summary>
+ Function declarations can have Parameters associated with them.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.Parameter.Int">
+ <summary>The int value of the parameter.</summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.Parameter.Double">
+ <summary>The double value of the parameter.</summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.Parameter.Symbol">
+ <summary>The Symbol value of the parameter.</summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.Parameter.Sort">
+ <summary>The Sort value of the parameter.</summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.Parameter.AST">
+ <summary>The AST value of the parameter.</summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.Parameter.FuncDecl">
+ <summary>The FunctionDeclaration value of the parameter.</summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.Parameter.Rational">
+ <summary>The rational string value of the parameter.</summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.Parameter.ParameterKind">
+ <summary>
+ The kind of the parameter.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.FuncInterp">
+ <summary>
+ A function interpretation is represented as a finite map and an 'else' value.
+ Each entry in the finite map represents the value of a function given a set of arguments.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.FuncInterp.ToString">
+ <summary>
+ A string representation of the function interpretation.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncInterp.NumEntries">
+ <summary>
+ The number of entries in the function interpretation.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncInterp.Entries">
+ <summary>
+ The entries in the function interpretation
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncInterp.Else">
+ <summary>
+ The (symbolic) `else' value of the function interpretation.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncInterp.Arity">
+ <summary>
+ The arity of the function interpretation
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.FuncInterp.Entry">
+ <summary>
+ An Entry object represents an element in the finite map used to encode
+ a function interpretation.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.FuncInterp.Entry.ToString">
+ <summary>
+ A string representation of the function entry.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncInterp.Entry.Value">
+ <summary>
+ Return the (symbolic) value of this entry.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncInterp.Entry.NumArgs">
+ <summary>
+ The number of arguments of the entry.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncInterp.Entry.Args">
+ <summary>
+ The arguments of the function entry.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Global">
+ <summary>
+ Global functions for Z3.
+ </summary>
+ <remarks>
+ This (static) class contains functions that effect the behaviour of Z3
+ globally across contexts, etc.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Global.SetParameter(System.String,System.String)">
+ <summary>
+ Set a global (or module) parameter, which is shared by all Z3 contexts.
+ </summary>
+ <remarks>
+ When a Z3 module is initialized it will use the value of these parameters
+ when Z3_params objects are not provided.
+ The name of parameter can be composed of characters [a-z][A-Z], digits [0-9], '-' and '_'.
+ The character '.' is a delimiter (more later).
+ The parameter names are case-insensitive. The character '-' should be viewed as an "alias" for '_'.
+ Thus, the following parameter names are considered equivalent: "pp.decimal-precision" and "PP.DECIMAL_PRECISION".
+ This function can be used to set parameters for a specific Z3 module.
+ This can be done by using [module-name].[parameter-name].
+ For example:
+ Z3_global_param_set('pp.decimal', 'true')
+ will set the parameter "decimal" in the module "pp" to true.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Global.GetParameter(System.String)">
+ <summary>
+ Get a global (or module) parameter.
+ </summary>
+ <remarks>
+ Returns null if the parameter <param name="id"/> does not exist.
+ The caller must invoke #Z3_global_param_del_value to delete the value returned at \c param_value.
+ This function cannot be invoked simultaneously from different threads without synchronization.
+ The result string stored in param_value is stored in a shared location.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Global.ResetParameters">
+ <summary>
+ Restore the value of all global (and module) parameters.
+ </summary>
+ <remarks>
+ This command will not affect already created objects (such as tactics and solvers)
+ </remarks>
+ <seealso cref="M:Microsoft.Z3.Global.SetParameter(System.String,System.String)"/>
+ </member>
+ <member name="M:Microsoft.Z3.Global.ToggleWarningMessages(System.Boolean)">
+ <summary>
+ Enable/disable printing of warning messages to the console.
+ </summary>
+ <remarks>Note that this function is static and effects the behaviour of
+ all contexts globally.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Global.EnableTrace(System.String)">
+ <summary>
+ Enable tracing messages tagged as `tag' when Z3 is compiled in debug mode.
+ </summary>
+ <remarks>
+ It is a NOOP otherwise.
+ </remarks>
+ <param name="tag">trace tag</param>
+ </member>
+ <member name="M:Microsoft.Z3.Global.DisableTrace(System.String)">
+ <summary>
+ Disable tracing messages tagged as `tag' when Z3 is compiled in debug mode.
+ </summary>
+ <remarks>
+ It is a NOOP otherwise.
+ </remarks>
+ <param name="tag">trace tag</param>
+ </member>
+ <member name="T:Microsoft.Z3.Goal">
+ <summary>
+ A goal (aka problem). A goal is essentially a set
+ of formulas, that can be solved and/or transformed using
+ tactics and solvers.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Goal.Assert(Microsoft.Z3.BoolExpr[])">
+ <summary>
+ Adds the <paramref name="constraints"/> to the given goal.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Goal.Add(Microsoft.Z3.BoolExpr[])">
+ <summary>
+ Alias for Assert.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Goal.Reset">
+ <summary>
+ Erases all formulas from the given goal.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Goal.Translate(Microsoft.Z3.Context)">
+ <summary>
+ Translates (copies) the Goal to the target Context <paramref name="ctx"/>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Goal.Simplify(Microsoft.Z3.Params)">
+ <summary>
+ Simplifies the goal.
+ </summary>
+ <remarks>Essentially invokes the `simplify' tactic on the goal.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Goal.ToString">
+ <summary>
+ Goal to string conversion.
+ </summary>
+ <returns>A string representation of the Goal.</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Goal.AsBoolExpr">
+ <summary>
+ Goal to BoolExpr conversion.
+ </summary>
+ <returns>A string representation of the Goal.</returns>
+ </member>
+ <member name="P:Microsoft.Z3.Goal.Precision">
+ <summary>
+ The precision of the goal.
+ </summary>
+ <remarks>
+ Goals can be transformed using over and under approximations.
+ An under approximation is applied when the objective is to find a model for a given goal.
+ An over approximation is applied when the objective is to find a proof for a given goal.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Goal.IsPrecise">
+ <summary>
+ Indicates whether the goal is precise.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Goal.IsUnderApproximation">
+ <summary>
+ Indicates whether the goal is an under-approximation.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Goal.IsOverApproximation">
+ <summary>
+ Indicates whether the goal is an over-approximation.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Goal.IsGarbage">
+ <summary>
+ Indicates whether the goal is garbage (i.e., the product of over- and under-approximations).
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Goal.Inconsistent">
+ <summary>
+ Indicates whether the goal contains `false'.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Goal.Depth">
+ <summary>
+ The depth of the goal.
+ </summary>
+ <remarks>
+ This tracks how many transformations were applied to it.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Goal.Size">
+ <summary>
+ The number of formulas in the goal.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Goal.Formulas">
+ <summary>
+ The formulas in the goal.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Goal.NumExprs">
+ <summary>
+ The number of formulas, subformulas and terms in the goal.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Goal.IsDecidedSat">
+ <summary>
+ Indicates whether the goal is empty, and it is precise or the product of an under approximation.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Goal.IsDecidedUnsat">
+ <summary>
+ Indicates whether the goal contains `false', and it is precise or the product of an over approximation.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.InterpolationContext">
+ <summary>
+ The InterpolationContext is suitable for generation of interpolants.
+ </summary>
+ <remarks>For more information on interpolation please refer
+ too the C/C++ API, which is well documented.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.InterpolationContext.#ctor">
+ <summary>
+ Constructor.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.InterpolationContext.#ctor(System.Collections.Generic.Dictionary{System.String,System.String})">
+ <summary>
+ Constructor.
+ </summary>
+ <remarks><seealso cref="T:Microsoft.Z3.Context"/></remarks>
+ </member>
+ <member name="M:Microsoft.Z3.InterpolationContext.MkInterpolant(Microsoft.Z3.BoolExpr)">
+ <summary>
+ Create an expression that marks a formula position for interpolation.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.InterpolationContext.GetInterpolant(Microsoft.Z3.Expr,Microsoft.Z3.Expr,Microsoft.Z3.Params)">
+ <summary>
+ Computes an interpolant.
+ </summary>
+ <remarks>For more information on interpolation please refer
+ too the function Z3_get_interpolant in the C/C++ API, which is
+ well documented.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.InterpolationContext.ComputeInterpolant(Microsoft.Z3.Expr,Microsoft.Z3.Params,Microsoft.Z3.BoolExpr[]@,Microsoft.Z3.Model@)">
+ <summary>
+ Computes an interpolant.
+ </summary>
+ <remarks>For more information on interpolation please refer
+ too the function Z3_compute_interpolant in the C/C++ API, which is
+ well documented.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.InterpolationContext.InterpolationProfile">
+ <summary>
+ Return a string summarizing cumulative time used for interpolation.
+ </summary>
+ <remarks>For more information on interpolation please refer
+ too the function Z3_interpolation_profile in the C/C++ API, which is
+ well documented.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.InterpolationContext.CheckInterpolant(Microsoft.Z3.Expr[],System.UInt32[],Microsoft.Z3.BoolExpr[],System.String@,Microsoft.Z3.Expr[])">
+ <summary>
+ Checks the correctness of an interpolant.
+ </summary>
+ <remarks>For more information on interpolation please refer
+ too the function Z3_check_interpolant in the C/C++ API, which is
+ well documented.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.InterpolationContext.ReadInterpolationProblem(System.String,Microsoft.Z3.Expr[]@,System.UInt32[]@,System.String@,Microsoft.Z3.Expr[]@)">
+ <summary>
+ Reads an interpolation problem from a file.
+ </summary>
+ <remarks>For more information on interpolation please refer
+ too the function Z3_read_interpolation_problem in the C/C++ API, which is
+ well documented.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.InterpolationContext.WriteInterpolationProblem(System.String,Microsoft.Z3.Expr[],System.UInt32[],Microsoft.Z3.Expr[])">
+ <summary>
+ Writes an interpolation problem to a file.
+ </summary>
+ <remarks>For more information on interpolation please refer
+ too the function Z3_write_interpolation_problem in the C/C++ API, which is
+ well documented.</remarks>
+ </member>
+ <member name="T:Microsoft.Z3.IntExpr">
+ <summary>
+ Int expressions
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.IntExpr.#ctor(Microsoft.Z3.Context,System.IntPtr)">
+ <summary> Constructor for IntExpr </summary>
+ </member>
+ <member name="T:Microsoft.Z3.IntNum">
+ <summary>
+ Integer Numerals
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.IntNum.ToString">
+ <summary>
+ Returns a string representation of the numeral.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.IntNum.UInt64">
+ <summary>
+ Retrieve the 64-bit unsigned integer value.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.IntNum.Int">
+ <summary>
+ Retrieve the int value.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.IntNum.Int64">
+ <summary>
+ Retrieve the 64-bit int value.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.IntNum.UInt">
+ <summary>
+ Retrieve the int value.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.IntNum.BigInteger">
+ <summary>
+ Retrieve the BigInteger value.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.IntSort">
+ <summary>
+ An Integer sort
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.IntSymbol">
+ <summary>
+ Numbered symbols
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Symbol">
+ <summary>
+ Symbols are used to name several term and type constructors.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Symbol.IsIntSymbol">
+ <summary>
+ Indicates whether the symbol is of Int kind
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Symbol.IsStringSymbol">
+ <summary>
+ Indicates whether the symbol is of string kind.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Symbol.ToString">
+ <summary>
+ A string representation of the symbol.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Symbol.op_Equality(Microsoft.Z3.Symbol,Microsoft.Z3.Symbol)">
+ <summary>
+ Equality overloading.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Symbol.op_Inequality(Microsoft.Z3.Symbol,Microsoft.Z3.Symbol)">
+ <summary>
+ Equality overloading.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Symbol.Equals(System.Object)">
+ <summary>
+ Object comparison.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Symbol.GetHashCode">
+ <summary>
+ The Symbols's hash code.
+ </summary>
+ <returns>A hash code</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Symbol.#ctor(Microsoft.Z3.Context,System.IntPtr)">
+ <summary>
+ Symbol constructor
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Symbol.Kind">
+ <summary>
+ The kind of the symbol (int or string)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.IntSymbol.Int">
+ <summary>
+ The int value of the symbol.
+ </summary>
+ <remarks>Throws an exception if the symbol is not of int kind. </remarks>
+ </member>
+ <member name="T:Microsoft.Z3.ListSort">
+ <summary>
+ List sorts.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.ListSort.NilDecl">
+ <summary>
+ The declaration of the nil function of this list sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.ListSort.Nil">
+ <summary>
+ The empty list.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.ListSort.IsNilDecl">
+ <summary>
+ The declaration of the isNil function of this list sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.ListSort.ConsDecl">
+ <summary>
+ The declaration of the cons function of this list sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.ListSort.IsConsDecl">
+ <summary>
+ The declaration of the isCons function of this list sort.
+ </summary>
+
+ </member>
+ <member name="P:Microsoft.Z3.ListSort.HeadDecl">
+ <summary>
+ The declaration of the head function of this list sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.ListSort.TailDecl">
+ <summary>
+ The declaration of the tail function of this list sort.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Log">
+ <summary>
+ Interaction logging for Z3.
+ </summary>
+ <remarks>
+ Note that this is a global, static log and if multiple Context
+ objects are created, it logs the interaction with all of them.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Log.Open(System.String)">
+ <summary>
+ Open an interaction log file.
+ </summary>
+ <param name="filename">the name of the file to open</param>
+ <returns>True if opening the log file succeeds, false otherwise.</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Log.Close">
+ <summary>
+ Closes the interaction log.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Log.Append(System.String)">
+ <summary>
+ Appends the user-provided string <paramref name="s"/> to the interaction log.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Log.isOpen">
+ <summary>
+ Checks whether the interaction log is opened.
+ </summary>
+ <returns>True if the interaction log is open, false otherwise.</returns>
+ </member>
+ <member name="T:Microsoft.Z3.Model">
+ <summary>
+ A Model contains interpretations (assignments) of constants and functions.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Model.ConstInterp(Microsoft.Z3.Expr)">
+ <summary>
+ Retrieves the interpretation (the assignment) of <paramref name="a"/> in the model.
+ </summary>
+ <param name="a">A Constant</param>
+ <returns>An expression if the constant has an interpretation in the model, null otherwise.</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Model.ConstInterp(Microsoft.Z3.FuncDecl)">
+ <summary>
+ Retrieves the interpretation (the assignment) of <paramref name="f"/> in the model.
+ </summary>
+ <param name="f">A function declaration of zero arity</param>
+ <returns>An expression if the function has an interpretation in the model, null otherwise.</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Model.FuncInterp(Microsoft.Z3.FuncDecl)">
+ <summary>
+ Retrieves the interpretation (the assignment) of a non-constant <paramref name="f"/> in the model.
+ </summary>
+ <param name="f">A function declaration of non-zero arity</param>
+ <returns>A FunctionInterpretation if the function has an interpretation in the model, null otherwise.</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Model.Eval(Microsoft.Z3.Expr,System.Boolean)">
+ <summary>
+ Evaluates the expression <paramref name="t"/> in the current model.
+ </summary>
+ <remarks>
+ This function may fail if <paramref name="t"/> contains quantifiers,
+ is partial (MODEL_PARTIAL enabled), or if <paramref name="t"/> is not well-sorted.
+ In this case a <c>ModelEvaluationFailedException</c> is thrown.
+ </remarks>
+ <param name="t">An expression</param>
+ <param name="completion">
+ When this flag is enabled, a model value will be assigned to any constant
+ or function that does not have an interpretation in the model.
+ </param>
+ <returns>The evaluation of <paramref name="t"/> in the model.</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Model.Evaluate(Microsoft.Z3.Expr,System.Boolean)">
+ <summary>
+ Alias for <c>Eval</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Model.SortUniverse(Microsoft.Z3.Sort)">
+ <summary>
+ The finite set of distinct values that represent the interpretation for sort <paramref name="s"/>.
+ </summary>
+ <seealso cref="P:Microsoft.Z3.Model.Sorts"/>
+ <param name="s">An uninterpreted sort</param>
+ <returns>An array of expressions, where each is an element of the universe of <paramref name="s"/></returns>
+ </member>
+ <member name="M:Microsoft.Z3.Model.ToString">
+ <summary>
+ Conversion of models to strings.
+ </summary>
+ <returns>A string representation of the model.</returns>
+ </member>
+ <member name="P:Microsoft.Z3.Model.NumConsts">
+ <summary>
+ The number of constants that have an interpretation in the model.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Model.ConstDecls">
+ <summary>
+ The function declarations of the constants in the model.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Model.NumFuncs">
+ <summary>
+ The number of function interpretations in the model.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Model.FuncDecls">
+ <summary>
+ The function declarations of the function interpretations in the model.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Model.Decls">
+ <summary>
+ All symbols that have an interpretation in the model.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Model.NumSorts">
+ <summary>
+ The number of uninterpreted sorts that the model has an interpretation for.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Model.Sorts">
+ <summary>
+ The uninterpreted sorts that the model has an interpretation for.
+ </summary>
+ <remarks>
+ Z3 also provides an intepretation for uninterpreted sorts used in a formula.
+ The interpretation for a sort is a finite set of distinct values. We say this finite set is
+ the "universe" of the sort.
+ </remarks>
+ <seealso cref="P:Microsoft.Z3.Model.NumSorts"/>
+ <seealso cref="M:Microsoft.Z3.Model.SortUniverse(Microsoft.Z3.Sort)"/>
+ </member>
+ <member name="T:Microsoft.Z3.Model.ModelEvaluationFailedException">
+ <summary>
+ A ModelEvaluationFailedException is thrown when an expression cannot be evaluated by the model.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Z3Exception">
+ <summary>
+ The exception base class for error reporting from Z3
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Z3Exception.#ctor">
+ <summary>
+ Constructor.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Z3Exception.#ctor(System.String)">
+ <summary>
+ Constructor.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Z3Exception.#ctor(System.String,System.Exception)">
+ <summary>
+ Constructor.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Model.ModelEvaluationFailedException.#ctor">
+ <summary>
+ An exception that is thrown when model evaluation fails.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Optimize">
+ <summary>
+ Object for managing optimizization context
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.Assert(Microsoft.Z3.BoolExpr[])">
+ <summary>
+ Assert a constraint (or multiple) into the optimize solver.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.Assert(System.Collections.Generic.IEnumerable{Microsoft.Z3.BoolExpr})">
+ <summary>
+ Assert a constraint (or multiple) into the optimize solver.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.Add(Microsoft.Z3.BoolExpr[])">
+ <summary>
+ Alias for Assert.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.Add(System.Collections.Generic.IEnumerable{Microsoft.Z3.BoolExpr})">
+ <summary>
+ Alias for Assert.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.AddConstraints(System.Collections.Generic.IEnumerable{Microsoft.Z3.BoolExpr})">
+ <summary>
+ Assert a constraint (or multiple) into the optimize solver.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.AssertSoft(Microsoft.Z3.BoolExpr,System.UInt32,System.String)">
+ <summary>
+ Assert soft constraint
+ </summary>
+ <remarks>
+ Return an objective which associates with the group of constraints.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.Check">
+ <summary>
+ Check satisfiability of asserted constraints.
+ Produce a model that (when the objectives are bounded and
+ don't use strict inequalities) meets the objectives.
+ </summary>
+
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.Push">
+ <summary>
+ Creates a backtracking point.
+ </summary>
+ <seealso cref="M:Microsoft.Z3.Optimize.Pop"/>
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.Pop">
+ <summary>
+ Backtrack one backtracking point.
+ </summary>
+ <remarks>Note that an exception is thrown if Pop is called without a corresponding <c>Push</c></remarks>
+ <seealso cref="M:Microsoft.Z3.Optimize.Push"/>
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.MkMaximize(Microsoft.Z3.ArithExpr)">
+ <summary>
+ Declare an arithmetical maximization objective.
+ Return a handle to the objective. The handle is used as
+ to retrieve the values of objectives after calling Check.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.MkMinimize(Microsoft.Z3.ArithExpr)">
+ <summary>
+ Declare an arithmetical minimization objective.
+ Similar to MkMaximize.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.GetLower(System.UInt32)">
+ <summary>
+ Retrieve a lower bound for the objective handle.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.GetUpper(System.UInt32)">
+ <summary>
+ Retrieve an upper bound for the objective handle.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.ToString">
+ <summary>
+ Print the context to a string (SMT-LIB parseable benchmark).
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.FromFile(System.String)">
+ <summary>
+ Parse an SMT-LIB2 file with optimization objectives and constraints.
+ The parsed constraints and objectives are added to the optimization context.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.FromString(System.String)">
+ <summary>
+ Similar to FromFile. Instead it takes as argument a string.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Optimize.Help">
+ <summary>
+ A string that describes all available optimize solver parameters.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Optimize.Parameters">
+ <summary>
+ Sets the optimize solver parameters.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Optimize.ParameterDescriptions">
+ <summary>
+ Retrieves parameter descriptions for Optimize solver.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Optimize.Model">
+ <summary>
+ The model of the last <c>Check</c>.
+ </summary>
+ <remarks>
+ The result is <c>null</c> if <c>Check</c> was not invoked before,
+ if its results was not <c>SATISFIABLE</c>, or if model production is not enabled.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Optimize.ReasonUnknown">
+ <summary>
+ Return a string the describes why the last to check returned unknown
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Optimize.Assertions">
+ <summary>
+ The set of asserted formulas.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Optimize.Objectives">
+ <summary>
+ The set of asserted formulas.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Optimize.Statistics">
+ <summary>
+ Optimize statistics.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Optimize.Handle">
+ <summary>
+ Handle to objectives returned by objective functions.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Optimize.Handle.Lower">
+ <summary>
+ Retrieve a lower bound for the objective handle.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Optimize.Handle.Upper">
+ <summary>
+ Retrieve an upper bound for the objective handle.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Optimize.Handle.Value">
+ <summary>
+ Retrieve the value of an objective.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.ParamDescrs">
+ <summary>
+ A ParamDescrs describes a set of parameters.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ParamDescrs.Validate(Microsoft.Z3.Params)">
+ <summary>
+ validate a set of parameters.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ParamDescrs.GetKind(Microsoft.Z3.Symbol)">
+ <summary>
+ Retrieve kind of parameter.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ParamDescrs.GetDocumentation(Microsoft.Z3.Symbol)">
+ <summary>
+ Retrieve documentation of parameter.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ParamDescrs.ToString">
+ <summary>
+ Retrieves a string representation of the ParamDescrs.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.ParamDescrs.Names">
+ <summary>
+ Retrieve all names of parameters.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.ParamDescrs.Size">
+ <summary>
+ The size of the ParamDescrs.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Params">
+ <summary>
+ A Params objects represents a configuration in the form of Symbol/value pairs.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Params.Add(Microsoft.Z3.Symbol,System.Boolean)">
+ <summary>
+ Adds a parameter setting.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Params.Add(Microsoft.Z3.Symbol,System.UInt32)">
+ <summary>
+ Adds a parameter setting.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Params.Add(Microsoft.Z3.Symbol,System.Double)">
+ <summary>
+ Adds a parameter setting.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Params.Add(Microsoft.Z3.Symbol,System.String)">
+ <summary>
+ Adds a parameter setting.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Params.Add(Microsoft.Z3.Symbol,Microsoft.Z3.Symbol)">
+ <summary>
+ Adds a parameter setting.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Params.Add(System.String,System.Boolean)">
+ <summary>
+ Adds a parameter setting.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Params.Add(System.String,System.UInt32)">
+ <summary>
+ Adds a parameter setting.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Params.Add(System.String,System.Double)">
+ <summary>
+ Adds a parameter setting.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Params.Add(System.String,Microsoft.Z3.Symbol)">
+ <summary>
+ Adds a parameter setting.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Params.Add(System.String,System.String)">
+ <summary>
+ Adds a parameter setting.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Params.ToString">
+ <summary>
+ A string representation of the parameter set.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Pattern">
+ <summary>
+ Patterns comprise a list of terms. The list should be
+ non-empty. If the list comprises of more than one term, it is
+ also called a multi-pattern.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Pattern.ToString">
+ <summary>
+ A string representation of the pattern.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Pattern.NumTerms">
+ <summary>
+ The number of terms in the pattern.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Pattern.Terms">
+ <summary>
+ The terms in the pattern.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Probe">
+ <summary>
+ Probes are used to inspect a goal (aka problem) and collect information that may be used to decide
+ which solver and/or preprocessing step will be used.
+ The complete list of probes may be obtained using the procedures <c>Context.NumProbes</c>
+ and <c>Context.ProbeNames</c>.
+ It may also be obtained using the command <c>(help-tactic)</c> in the SMT 2.0 front-end.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Probe.Apply(Microsoft.Z3.Goal)">
+ <summary>
+ Execute the probe over the goal.
+ </summary>
+ <returns>A probe always produce a double value.
+ "Boolean" probes return 0.0 for false, and a value different from 0.0 for true.</returns>
+ </member>
+ <member name="P:Microsoft.Z3.Probe.Item(Microsoft.Z3.Goal)">
+ <summary>
+ Apply the probe to a goal.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Quantifier">
+ <summary>
+ Quantifier expressions.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Quantifier.IsUniversal">
+ <summary>
+ Indicates whether the quantifier is universal.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Quantifier.IsExistential">
+ <summary>
+ Indicates whether the quantifier is existential.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Quantifier.Weight">
+ <summary>
+ The weight of the quantifier.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Quantifier.NumPatterns">
+ <summary>
+ The number of patterns.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Quantifier.Patterns">
+ <summary>
+ The patterns.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Quantifier.NumNoPatterns">
+ <summary>
+ The number of no-patterns.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Quantifier.NoPatterns">
+ <summary>
+ The no-patterns.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Quantifier.NumBound">
+ <summary>
+ The number of bound variables.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Quantifier.BoundVariableNames">
+ <summary>
+ The symbols for the bound variables.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Quantifier.BoundVariableSorts">
+ <summary>
+ The sorts of the bound variables.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Quantifier.Body">
+ <summary>
+ The body of the quantifier.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.RatNum">
+ <summary>
+ Rational Numerals
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.RealExpr">
+ <summary>
+ Real expressions
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.RealExpr.#ctor(Microsoft.Z3.Context,System.IntPtr)">
+ <summary> Constructor for RealExpr </summary>
+ </member>
+ <member name="M:Microsoft.Z3.RatNum.ToDecimalString(System.UInt32)">
+ <summary>
+ Returns a string representation in decimal notation.
+ </summary>
+ <remarks>The result has at most <paramref name="precision"/> decimal places.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.RatNum.ToString">
+ <summary>
+ Returns a string representation of the numeral.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.RatNum.Numerator">
+ <summary>
+ The numerator of a rational numeral.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.RatNum.Denominator">
+ <summary>
+ The denominator of a rational numeral.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.RatNum.BigIntNumerator">
+ <summary>
+ Converts the numerator of the rational to a BigInteger
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.RatNum.BigIntDenominator">
+ <summary>
+ Converts the denominator of the rational to a BigInteger
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.RealSort">
+ <summary>
+ A real sort
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.ReExpr">
+ <summary>
+ Regular expression expressions
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ReExpr.#ctor(Microsoft.Z3.Context,System.IntPtr)">
+ <summary> Constructor for ReExpr </summary>
+ </member>
+ <member name="T:Microsoft.Z3.RelationSort">
+ <summary>
+ Relation sorts.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.RelationSort.Arity">
+ <summary>
+ The arity of the relation sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.RelationSort.ColumnSorts">
+ <summary>
+ The sorts of the columns of the relation sort.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.ReSort">
+ <summary>
+ A regular expression sort
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.SeqExpr">
+ <summary>
+ Sequence expressions
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.SeqExpr.#ctor(Microsoft.Z3.Context,System.IntPtr)">
+ <summary> Constructor for SeqExpr </summary>
+ </member>
+ <member name="T:Microsoft.Z3.SeqSort">
+ <summary>
+ A Sequence sort
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.SetSort">
+ <summary>
+ Set sorts.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Solver">
+ <summary>
+ Solvers.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Solver.Push">
+ <summary>
+ Creates a backtracking point.
+ </summary>
+ <seealso cref="M:Microsoft.Z3.Solver.Pop(System.UInt32)"/>
+ </member>
+ <member name="M:Microsoft.Z3.Solver.Pop(System.UInt32)">
+ <summary>
+ Backtracks <paramref name="n"/> backtracking points.
+ </summary>
+ <remarks>Note that an exception is thrown if <paramref name="n"/> is not smaller than <c>NumScopes</c></remarks>
+ <seealso cref="M:Microsoft.Z3.Solver.Push"/>
+ </member>
+ <member name="M:Microsoft.Z3.Solver.Reset">
+ <summary>
+ Resets the Solver.
+ </summary>
+ <remarks>This removes all assertions from the solver.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Solver.Assert(Microsoft.Z3.BoolExpr[])">
+ <summary>
+ Assert a constraint (or multiple) into the solver.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Solver.Add(Microsoft.Z3.BoolExpr[])">
+ <summary>
+ Alias for Assert.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Solver.AssertAndTrack(Microsoft.Z3.BoolExpr[],Microsoft.Z3.BoolExpr[])">
+ <summary>
+ Assert multiple constraints into the solver, and track them (in the unsat) core
+ using the Boolean constants in ps.
+ </summary>
+ <remarks>
+ This API is an alternative to <see cref="M:Microsoft.Z3.Solver.Check(Microsoft.Z3.Expr[])"/> with assumptions for extracting unsat cores.
+ Both APIs can be used in the same solver. The unsat core will contain a combination
+ of the Boolean variables provided using <see cref="M:Microsoft.Z3.Solver.AssertAndTrack(Microsoft.Z3.BoolExpr[],Microsoft.Z3.BoolExpr[])"/>
+ and the Boolean literals
+ provided using <see cref="M:Microsoft.Z3.Solver.Check(Microsoft.Z3.Expr[])"/> with assumptions.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Solver.AssertAndTrack(Microsoft.Z3.BoolExpr,Microsoft.Z3.BoolExpr)">
+ <summary>
+ Assert a constraint into the solver, and track it (in the unsat) core
+ using the Boolean constant p.
+ </summary>
+ <remarks>
+ This API is an alternative to <see cref="M:Microsoft.Z3.Solver.Check(Microsoft.Z3.Expr[])"/> with assumptions for extracting unsat cores.
+ Both APIs can be used in the same solver. The unsat core will contain a combination
+ of the Boolean variables provided using <see cref="M:Microsoft.Z3.Solver.AssertAndTrack(Microsoft.Z3.BoolExpr[],Microsoft.Z3.BoolExpr[])"/>
+ and the Boolean literals
+ provided using <see cref="M:Microsoft.Z3.Solver.Check(Microsoft.Z3.Expr[])"/> with assumptions.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Solver.Check(Microsoft.Z3.Expr[])">
+ <summary>
+ Checks whether the assertions in the solver are consistent or not.
+ </summary>
+ <remarks>
+ <seealso cref="P:Microsoft.Z3.Solver.Model"/>
+ <seealso cref="P:Microsoft.Z3.Solver.UnsatCore"/>
+ <seealso cref="P:Microsoft.Z3.Solver.Proof"/>
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Solver.Consequences(System.Collections.Generic.IEnumerable{Microsoft.Z3.BoolExpr},System.Collections.Generic.IEnumerable{Microsoft.Z3.Expr},Microsoft.Z3.BoolExpr[]@)">
+ <summary>
+ Retrieve fixed assignments to the set of variables in the form of consequences.
+ Each consequence is an implication of the form
+
+ relevant-assumptions Implies variable = value
+
+ where the relevant assumptions is a subset of the assumptions that are passed in
+ and the equality on the right side of the implication indicates how a variable
+ is fixed.
+ </summary>
+ <remarks>
+ <seealso cref="P:Microsoft.Z3.Solver.Model"/>
+ <seealso cref="P:Microsoft.Z3.Solver.UnsatCore"/>
+ <seealso cref="P:Microsoft.Z3.Solver.Proof"/>
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Solver.Translate(Microsoft.Z3.Context)">
+ <summary>
+ Create a clone of the current solver with respect to <c>ctx</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Solver.ToString">
+ <summary>
+ A string representation of the solver.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Solver.Help">
+ <summary>
+ A string that describes all available solver parameters.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Solver.Parameters">
+ <summary>
+ Sets the solver parameters.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Solver.ParameterDescriptions">
+ <summary>
+ Retrieves parameter descriptions for solver.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Solver.NumScopes">
+ <summary>
+ The current number of backtracking points (scopes).
+ </summary>
+ <seealso cref="M:Microsoft.Z3.Solver.Pop(System.UInt32)"/>
+ <seealso cref="M:Microsoft.Z3.Solver.Push"/>
+ </member>
+ <member name="P:Microsoft.Z3.Solver.NumAssertions">
+ <summary>
+ The number of assertions in the solver.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Solver.Assertions">
+ <summary>
+ The set of asserted formulas.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Solver.Model">
+ <summary>
+ The model of the last <c>Check</c>.
+ </summary>
+ <remarks>
+ The result is <c>null</c> if <c>Check</c> was not invoked before,
+ if its results was not <c>SATISFIABLE</c>, or if model production is not enabled.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Solver.Proof">
+ <summary>
+ The proof of the last <c>Check</c>.
+ </summary>
+ <remarks>
+ The result is <c>null</c> if <c>Check</c> was not invoked before,
+ if its results was not <c>UNSATISFIABLE</c>, or if proof production is disabled.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Solver.UnsatCore">
+ <summary>
+ The unsat core of the last <c>Check</c>.
+ </summary>
+ <remarks>
+ The unsat core is a subset of <c>Assertions</c>
+ The result is empty if <c>Check</c> was not invoked before,
+ if its results was not <c>UNSATISFIABLE</c>, or if core production is disabled.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Solver.ReasonUnknown">
+ <summary>
+ A brief justification of why the last call to <c>Check</c> returned <c>UNKNOWN</c>.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Solver.Statistics">
+ <summary>
+ Solver statistics.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Statistics">
+ <summary>
+ Objects of this class track statistical information about solvers.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Statistics.ToString">
+ <summary>
+ A string representation of the statistical data.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Statistics.Size">
+ <summary>
+ The number of statistical data.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Statistics.Entries">
+ <summary>
+ The data entries.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Statistics.Keys">
+ <summary>
+ The statistical counters.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Statistics.Item(System.String)">
+ <summary>
+ The value of a particular statistical counter.
+ </summary>
+ <remarks>Returns null if the key is unknown.</remarks>
+ </member>
+ <member name="T:Microsoft.Z3.Statistics.Entry">
+ <summary>
+ Statistical data is organized into pairs of [Key, Entry], where every
+ Entry is either a <c>DoubleEntry</c> or a <c>UIntEntry</c>
+ </summary>
+ </member>
+ <member name="F:Microsoft.Z3.Statistics.Entry.Key">
+ <summary>
+ The key of the entry.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Statistics.Entry.ToString">
+ <summary>
+ The string representation of the Entry.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Statistics.Entry.UIntValue">
+ <summary>
+ The uint-value of the entry.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Statistics.Entry.DoubleValue">
+ <summary>
+ The double-value of the entry.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Statistics.Entry.IsUInt">
+ <summary>
+ True if the entry is uint-valued.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Statistics.Entry.IsDouble">
+ <summary>
+ True if the entry is double-valued.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Statistics.Entry.Value">
+ <summary>
+ The string representation of the the entry's value.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Status">
+ <summary>
+ Status values.
+ </summary>
+ </member>
+ <member name="F:Microsoft.Z3.Status.UNSATISFIABLE">
+ <summary>
+ Used to signify an unsatisfiable status.
+ </summary>
+ </member>
+ <member name="F:Microsoft.Z3.Status.UNKNOWN">
+ <summary>
+ Used to signify an unknown status.
+ </summary>
+ </member>
+ <member name="F:Microsoft.Z3.Status.SATISFIABLE">
+ <summary>
+ Used to signify a satisfiable status.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.StringSymbol">
+ <summary>
+ Named symbols
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.StringSymbol.String">
+ <summary>
+ The string value of the symbol.
+ </summary>
+ <remarks>Throws an exception if the symbol is not of string kind.</remarks>
+ </member>
+ <member name="T:Microsoft.Z3.Tactic">
+ <summary>
+ Tactics are the basic building block for creating custom solvers for specific problem domains.
+ The complete list of tactics may be obtained using <c>Context.NumTactics</c>
+ and <c>Context.TacticNames</c>.
+ It may also be obtained using the command <c>(help-tactic)</c> in the SMT 2.0 front-end.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Tactic.Apply(Microsoft.Z3.Goal,Microsoft.Z3.Params)">
+ <summary>
+ Execute the tactic over the goal.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Tactic.Help">
+ <summary>
+ A string containing a description of parameters accepted by the tactic.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Tactic.ParameterDescriptions">
+ <summary>
+ Retrieves parameter descriptions for Tactics.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Tactic.Item(Microsoft.Z3.Goal)">
+ <summary>
+ Apply the tactic to a goal.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Tactic.Solver">
+ <summary>
+ Creates a solver that is implemented using the given tactic.
+ </summary>
+ <seealso cref="M:Microsoft.Z3.Context.MkSolver(Microsoft.Z3.Tactic)"/>
+ </member>
+ <member name="T:Microsoft.Z3.Tactic.DecRefQueue">
+ <summary>
+ DecRefQueue
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.TupleSort">
+ <summary>
+ Tuple sorts.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.TupleSort.MkDecl">
+ <summary>
+ The constructor function of the tuple.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.TupleSort.NumFields">
+ <summary>
+ The number of fields in the tuple.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.TupleSort.FieldDecls">
+ <summary>
+ The field declarations.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.UninterpretedSort">
+ <summary>
+ Uninterpreted Sorts
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Version">
+ <summary>
+ Version information.
+ </summary>
+ <remarks>Note that this class is static.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Version.ToString">
+ <summary>
+ A string representation of the version information.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Version.Major">
+ <summary>
+ The major version
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Version.Minor">
+ <summary>
+ The minor version
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Version.Build">
+ <summary>
+ The build version
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Version.Revision">
+ <summary>
+ The revision
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Version.FullVersion">
+ <summary>
+ A full version string
+ </summary>
+ </member>
+ </members>
+</doc>
diff --git a/rba.tool.core/lib/z3/com.microsoft.z3.jar b/rba.tool.core/lib/z3/com.microsoft.z3.jar
new file mode 100644
index 0000000..ecda97b
--- /dev/null
+++ b/rba.tool.core/lib/z3/com.microsoft.z3.jar
Binary files differ
diff --git a/rba.tool.core/lib/z3/libz3.dll b/rba.tool.core/lib/z3/libz3.dll
new file mode 100644
index 0000000..3c2b5ad
--- /dev/null
+++ b/rba.tool.core/lib/z3/libz3.dll
Binary files differ
diff --git a/rba.tool.core/lib/z3/libz3.lib b/rba.tool.core/lib/z3/libz3.lib
new file mode 100644
index 0000000..a1b96e4
--- /dev/null
+++ b/rba.tool.core/lib/z3/libz3.lib
Binary files differ
diff --git a/rba.tool.core/lib/z3/libz3java.dll b/rba.tool.core/lib/z3/libz3java.dll
new file mode 100644
index 0000000..98c4284
--- /dev/null
+++ b/rba.tool.core/lib/z3/libz3java.dll
Binary files differ
diff --git a/rba.tool.core/lib/z3/libz3java.lib b/rba.tool.core/lib/z3/libz3java.lib
new file mode 100644
index 0000000..6b5b202
--- /dev/null
+++ b/rba.tool.core/lib/z3/libz3java.lib
Binary files differ
diff --git a/rba.tool.core/lib/z3/msvcp110.dll b/rba.tool.core/lib/z3/msvcp110.dll
new file mode 100644
index 0000000..ac81d38
--- /dev/null
+++ b/rba.tool.core/lib/z3/msvcp110.dll
Binary files differ
diff --git a/rba.tool.core/lib/z3/msvcr110.dll b/rba.tool.core/lib/z3/msvcr110.dll
new file mode 100644
index 0000000..0748b64
--- /dev/null
+++ b/rba.tool.core/lib/z3/msvcr110.dll
Binary files differ
diff --git a/rba.tool.core/lib/z3/python/example.py b/rba.tool.core/lib/z3/python/example.py
new file mode 100644
index 0000000..a176685
--- /dev/null
+++ b/rba.tool.core/lib/z3/python/example.py
@@ -0,0 +1,36 @@
+# Copyright (c) Microsoft Corporation 2015, 2016
+
+# The Z3 Python API requires libz3.dll/.so/.dylib in the
+# PATH/LD_LIBRARY_PATH/DYLD_LIBRARY_PATH
+# environment variable and the PYTHON_PATH environment variable
+# needs to point to the `python' directory that contains `z3/z3.py'
+# (which is at bin/python in our binary releases).
+
+# If you obtained example.py as part of our binary release zip files,
+# which you unzipped into a directory called `MYZ3', then follow these
+# instructions to run the example:
+
+# Running this example on Windows:
+# set PATH=%PATH%;MYZ3\bin
+# set PYTHONPATH=MYZ3\bin\python
+# python example.py
+
+# Running this example on Linux:
+# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:MYZ3/bin
+# export PYTHONPATH=MYZ3/bin/python
+# python example.py
+
+# Running this example on OSX:
+# export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:MYZ3/bin
+# export PYTHONPATH=MYZ3/bin/python
+# python example.py
+
+
+from z3 import *
+
+x = Real('x')
+y = Real('y')
+s = Solver()
+s.add(x + y > 5, x > 1, y > 1)
+print(s.check())
+print(s.model())
diff --git a/rba.tool.core/lib/z3/python/z3/__init__.py b/rba.tool.core/lib/z3/python/z3/__init__.py
new file mode 100644
index 0000000..f7aa29a
--- /dev/null
+++ b/rba.tool.core/lib/z3/python/z3/__init__.py
@@ -0,0 +1,12 @@
+from .z3 import *
+
+from . import z3num
+from . import z3poly
+from . import z3printer
+from . import z3rcf
+from . import z3types
+from . import z3util
+
+# generated files
+from . import z3core
+from . import z3consts
diff --git a/rba.tool.core/lib/z3/python/z3/z3.py b/rba.tool.core/lib/z3/python/z3/z3.py
new file mode 100644
index 0000000..b9d7f6d
--- /dev/null
+++ b/rba.tool.core/lib/z3/python/z3/z3.py
@@ -0,0 +1,9670 @@
+
+############################################
+# Copyright (c) 2012 Microsoft Corporation
+#
+# Z3 Python interface
+#
+# Author: Leonardo de Moura (leonardo)
+############################################
+
+"""Z3 is a high performance theorem prover developed at Microsoft Research. Z3 is used in many applications such as: software/hardware verification and testing, constraint solving, analysis of hybrid systems, security, biology (in silico analysis), and geometrical problems.
+
+Several online tutorials for Z3Py are available at:
+http://rise4fun.com/Z3Py/tutorial/guide
+
+Please send feedback, comments and/or corrections to leonardo@microsoft.com. Your comments are very valuable.
+
+Small example:
+
+>>> x = Int('x')
+>>> y = Int('y')
+>>> s = Solver()
+>>> s.add(x > 0)
+>>> s.add(x < 2)
+>>> s.add(y == x + 1)
+>>> s.check()
+sat
+>>> m = s.model()
+>>> m[x]
+1
+>>> m[y]
+2
+
+Z3 exceptions:
+
+>>> try:
+... x = BitVec('x', 32)
+... y = Bool('y')
+... # the expression x + y is type incorrect
+... n = x + y
+... except Z3Exception as ex:
+... print("failed: %s" % ex)
+failed: sort mismatch
+"""
+from . import z3core
+from .z3core import *
+from .z3types import *
+from .z3consts import *
+from .z3printer import *
+from fractions import Fraction
+import sys
+import io
+import math
+
+if sys.version < '3':
+ def _is_int(v):
+ return isinstance(v, (int, long))
+else:
+ def _is_int(v):
+ return isinstance(v, int)
+
+def enable_trace(msg):
+ Z3_enable_trace(msg)
+
+def disable_trace(msg):
+ Z3_disable_trace(msg)
+
+def get_version_string():
+ major = ctypes.c_uint(0)
+ minor = ctypes.c_uint(0)
+ build = ctypes.c_uint(0)
+ rev = ctypes.c_uint(0)
+ Z3_get_version(major, minor, build, rev)
+ return "%s.%s.%s" % (major.value, minor.value, build.value)
+
+def get_version():
+ major = ctypes.c_uint(0)
+ minor = ctypes.c_uint(0)
+ build = ctypes.c_uint(0)
+ rev = ctypes.c_uint(0)
+ Z3_get_version(major, minor, build, rev)
+ return (major.value, minor.value, build.value, rev.value)
+
+def get_full_version():
+ return Z3_get_full_version()
+
+# We use _z3_assert instead of the assert command because we want to
+# produce nice error messages in Z3Py at rise4fun.com
+def _z3_assert(cond, msg):
+ if not cond:
+ raise Z3Exception(msg)
+
+def open_log(fname):
+ """Log interaction to a file. This function must be invoked immediately after init(). """
+ Z3_open_log(fname)
+
+def append_log(s):
+ """Append user-defined string to interaction log. """
+ Z3_append_log(s)
+
+def to_symbol(s, ctx=None):
+ """Convert an integer or string into a Z3 symbol."""
+ if _is_int(s):
+ return Z3_mk_int_symbol(_get_ctx(ctx).ref(), s)
+ else:
+ return Z3_mk_string_symbol(_get_ctx(ctx).ref(), s)
+
+def _symbol2py(ctx, s):
+ """Convert a Z3 symbol back into a Python object. """
+ if Z3_get_symbol_kind(ctx.ref(), s) == Z3_INT_SYMBOL:
+ return "k!%s" % Z3_get_symbol_int(ctx.ref(), s)
+ else:
+ return Z3_get_symbol_string(ctx.ref(), s)
+
+_error_handler_fptr = ctypes.CFUNCTYPE(None, ctypes.c_void_p, ctypes.c_uint)
+
+# Hack for having nary functions that can receive one argument that is the
+# list of arguments.
+def _get_args(args):
+ try:
+ if len(args) == 1 and (isinstance(args[0], tuple) or isinstance(args[0], list)):
+ return args[0]
+ elif len(args) == 1 and isinstance(args[0], set):
+ return [arg for arg in args[0]]
+ else:
+ return args
+ except: # len is not necessarily defined when args is not a sequence (use reflection?)
+ return args
+
+def _Z3python_error_handler_core(c, e):
+ # Do nothing error handler, just avoid exit(0)
+ # The wrappers in z3core.py will raise a Z3Exception if an error is detected
+ return
+
+_Z3Python_error_handler = _error_handler_fptr(_Z3python_error_handler_core)
+
+def _to_param_value(val):
+ if isinstance(val, bool):
+ if val == True:
+ return "true"
+ else:
+ return "false"
+ else:
+ return str(val)
+
+class Context:
+ """A Context manages all other Z3 objects, global configuration options, etc.
+
+ Z3Py uses a default global context. For most applications this is sufficient.
+ An application may use multiple Z3 contexts. Objects created in one context
+ cannot be used in another one. However, several objects may be "translated" from
+ one context to another. It is not safe to access Z3 objects from multiple threads.
+ The only exception is the method `interrupt()` that can be used to interrupt() a long
+ computation.
+ The initialization method receives global configuration options for the new context.
+ """
+ def __init__(self, *args, **kws):
+ if __debug__:
+ _z3_assert(len(args) % 2 == 0, "Argument list must have an even number of elements.")
+ conf = Z3_mk_config()
+ for key in kws:
+ value = kws[key]
+ Z3_set_param_value(conf, str(key).upper(), _to_param_value(value))
+ prev = None
+ for a in args:
+ if prev is None:
+ prev = a
+ else:
+ Z3_set_param_value(conf, str(prev), _to_param_value(a))
+ prev = None
+ self.lib = lib()
+ self.ctx = Z3_mk_context_rc(conf)
+ Z3_set_ast_print_mode(self.ctx, Z3_PRINT_SMTLIB2_COMPLIANT)
+ lib().Z3_set_error_handler.restype = None
+ lib().Z3_set_error_handler.argtypes = [ContextObj, _error_handler_fptr]
+ lib().Z3_set_error_handler(self.ctx, _Z3Python_error_handler)
+ Z3_del_config(conf)
+
+ def __del__(self):
+ self.lib.Z3_del_context(self.ctx)
+ self.ctx = None
+
+ def ref(self):
+ """Return a reference to the actual C pointer to the Z3 context."""
+ return self.ctx
+
+ def interrupt(self):
+ """Interrupt a solver performing a satisfiability test, a tactic processing a goal, or simplify functions.
+
+ This method can be invoked from a thread different from the one executing the
+ interruptable procedure.
+ """
+ Z3_interrupt(self.ref())
+
+
+# Global Z3 context
+_main_ctx = None
+def main_ctx():
+ """Return a reference to the global Z3 context.
+
+ >>> x = Real('x')
+ >>> x.ctx == main_ctx()
+ True
+ >>> c = Context()
+ >>> c == main_ctx()
+ False
+ >>> x2 = Real('x', c)
+ >>> x2.ctx == c
+ True
+ >>> eq(x, x2)
+ False
+ """
+ global _main_ctx
+ if _main_ctx is None:
+ _main_ctx = Context()
+ return _main_ctx
+
+def _get_ctx(ctx):
+ if ctx is None:
+ return main_ctx()
+ else:
+ return ctx
+
+def set_param(*args, **kws):
+ """Set Z3 global (or module) parameters.
+
+ >>> set_param(precision=10)
+ """
+ if __debug__:
+ _z3_assert(len(args) % 2 == 0, "Argument list must have an even number of elements.")
+ new_kws = {}
+ for k in kws:
+ v = kws[k]
+ if not set_pp_option(k, v):
+ new_kws[k] = v
+ for key in new_kws:
+ value = new_kws[key]
+ Z3_global_param_set(str(key).upper(), _to_param_value(value))
+ prev = None
+ for a in args:
+ if prev is None:
+ prev = a
+ else:
+ Z3_global_param_set(str(prev), _to_param_value(a))
+ prev = None
+
+def reset_params():
+ """Reset all global (or module) parameters.
+ """
+ Z3_global_param_reset_all()
+
+def set_option(*args, **kws):
+ """Alias for 'set_param' for backward compatibility.
+ """
+ return set_param(*args, **kws)
+
+def get_param(name):
+ """Return the value of a Z3 global (or module) parameter
+
+ >>> get_param('nlsat.reorder')
+ 'true'
+ """
+ ptr = (ctypes.c_char_p * 1)()
+ if Z3_global_param_get(str(name), ptr):
+ r = z3core._to_pystr(ptr[0])
+ return r
+ raise Z3Exception("failed to retrieve value for '%s'" % name)
+
+#########################################
+#
+# ASTs base class
+#
+#########################################
+
+# Mark objects that use pretty printer
+class Z3PPObject:
+ """Superclass for all Z3 objects that have support for pretty printing."""
+ def use_pp(self):
+ return True
+
+class AstRef(Z3PPObject):
+ """AST are Direct Acyclic Graphs (DAGs) used to represent sorts, declarations and expressions."""
+ def __init__(self, ast, ctx=None):
+ self.ast = ast
+ self.ctx = _get_ctx(ctx)
+ Z3_inc_ref(self.ctx.ref(), self.as_ast())
+
+ def __del__(self):
+ if self.ctx.ref() is not None:
+ Z3_dec_ref(self.ctx.ref(), self.as_ast())
+
+ def __str__(self):
+ return obj_to_string(self)
+
+ def __repr__(self):
+ return obj_to_string(self)
+
+ def __eq__(self, other):
+ return self.eq(other)
+
+ def __hash__(self):
+ return self.hash()
+
+ def __nonzero__(self):
+ return self.__bool__()
+
+ def __bool__(self):
+ if is_true(self):
+ return True
+ elif is_false(self):
+ return False
+ elif is_eq(self) and self.num_args() == 2:
+ return self.arg(0).eq(self.arg(1))
+ else:
+ raise Z3Exception("Symbolic expressions cannot be cast to concrete Boolean values.")
+
+ def sexpr(self):
+ """Return an string representing the AST node in s-expression notation.
+
+ >>> x = Int('x')
+ >>> ((x + 1)*x).sexpr()
+ '(* (+ x 1) x)'
+ """
+ return Z3_ast_to_string(self.ctx_ref(), self.as_ast())
+
+ def as_ast(self):
+ """Return a pointer to the corresponding C Z3_ast object."""
+ return self.ast
+
+ def get_id(self):
+ """Return unique identifier for object. It can be used for hash-tables and maps."""
+ return Z3_get_ast_id(self.ctx_ref(), self.as_ast())
+
+ def ctx_ref(self):
+ """Return a reference to the C context where this AST node is stored."""
+ return self.ctx.ref()
+
+ def eq(self, other):
+ """Return `True` if `self` and `other` are structurally identical.
+
+ >>> x = Int('x')
+ >>> n1 = x + 1
+ >>> n2 = 1 + x
+ >>> n1.eq(n2)
+ False
+ >>> n1 = simplify(n1)
+ >>> n2 = simplify(n2)
+ >>> n1.eq(n2)
+ True
+ """
+ if __debug__:
+ _z3_assert(is_ast(other), "Z3 AST expected")
+ return Z3_is_eq_ast(self.ctx_ref(), self.as_ast(), other.as_ast())
+
+ def translate(self, target):
+ """Translate `self` to the context `target`. That is, return a copy of `self` in the context `target`.
+
+ >>> c1 = Context()
+ >>> c2 = Context()
+ >>> x = Int('x', c1)
+ >>> y = Int('y', c2)
+ >>> # Nodes in different contexts can't be mixed.
+ >>> # However, we can translate nodes from one context to another.
+ >>> x.translate(c2) + y
+ x + y
+ """
+ if __debug__:
+ _z3_assert(isinstance(target, Context), "argument must be a Z3 context")
+ return _to_ast_ref(Z3_translate(self.ctx.ref(), self.as_ast(), target.ref()), target)
+
+ def hash(self):
+ """Return a hashcode for the `self`.
+
+ >>> n1 = simplify(Int('x') + 1)
+ >>> n2 = simplify(2 + Int('x') - 1)
+ >>> n1.hash() == n2.hash()
+ True
+ """
+ return Z3_get_ast_hash(self.ctx_ref(), self.as_ast())
+
+def is_ast(a):
+ """Return `True` if `a` is an AST node.
+
+ >>> is_ast(10)
+ False
+ >>> is_ast(IntVal(10))
+ True
+ >>> is_ast(Int('x'))
+ True
+ >>> is_ast(BoolSort())
+ True
+ >>> is_ast(Function('f', IntSort(), IntSort()))
+ True
+ >>> is_ast("x")
+ False
+ >>> is_ast(Solver())
+ False
+ """
+ return isinstance(a, AstRef)
+
+def eq(a, b):
+ """Return `True` if `a` and `b` are structurally identical AST nodes.
+
+ >>> x = Int('x')
+ >>> y = Int('y')
+ >>> eq(x, y)
+ False
+ >>> eq(x + 1, x + 1)
+ True
+ >>> eq(x + 1, 1 + x)
+ False
+ >>> eq(simplify(x + 1), simplify(1 + x))
+ True
+ """
+ if __debug__:
+ _z3_assert(is_ast(a) and is_ast(b), "Z3 ASTs expected")
+ return a.eq(b)
+
+def _ast_kind(ctx, a):
+ if is_ast(a):
+ a = a.as_ast()
+ return Z3_get_ast_kind(ctx.ref(), a)
+
+def _ctx_from_ast_arg_list(args, default_ctx=None):
+ ctx = None
+ for a in args:
+ if is_ast(a) or is_probe(a):
+ if ctx is None:
+ ctx = a.ctx
+ else:
+ if __debug__:
+ _z3_assert(ctx == a.ctx, "Context mismatch")
+ if ctx is None:
+ ctx = default_ctx
+ return ctx
+
+def _ctx_from_ast_args(*args):
+ return _ctx_from_ast_arg_list(args)
+
+def _to_func_decl_array(args):
+ sz = len(args)
+ _args = (FuncDecl * sz)()
+ for i in range(sz):
+ _args[i] = args[i].as_func_decl()
+ return _args, sz
+
+def _to_ast_array(args):
+ sz = len(args)
+ _args = (Ast * sz)()
+ for i in range(sz):
+ _args[i] = args[i].as_ast()
+ return _args, sz
+
+def _to_ref_array(ref, args):
+ sz = len(args)
+ _args = (ref * sz)()
+ for i in range(sz):
+ _args[i] = args[i].as_ast()
+ return _args, sz
+
+def _to_ast_ref(a, ctx):
+ k = _ast_kind(ctx, a)
+ if k == Z3_SORT_AST:
+ return _to_sort_ref(a, ctx)
+ elif k == Z3_FUNC_DECL_AST:
+ return _to_func_decl_ref(a, ctx)
+ else:
+ return _to_expr_ref(a, ctx)
+
+#########################################
+#
+# Sorts
+#
+#########################################
+
+def _sort_kind(ctx, s):
+ return Z3_get_sort_kind(ctx.ref(), s)
+
+class SortRef(AstRef):
+ """A Sort is essentially a type. Every Z3 expression has a sort. A sort is an AST node."""
+ def as_ast(self):
+ return Z3_sort_to_ast(self.ctx_ref(), self.ast)
+
+ def get_id(self):
+ return Z3_get_ast_id(self.ctx_ref(), self.as_ast())
+
+ def kind(self):
+ """Return the Z3 internal kind of a sort. This method can be used to test if `self` is one of the Z3 builtin sorts.
+
+ >>> b = BoolSort()
+ >>> b.kind() == Z3_BOOL_SORT
+ True
+ >>> b.kind() == Z3_INT_SORT
+ False
+ >>> A = ArraySort(IntSort(), IntSort())
+ >>> A.kind() == Z3_ARRAY_SORT
+ True
+ >>> A.kind() == Z3_INT_SORT
+ False
+ """
+ return _sort_kind(self.ctx, self.ast)
+
+ def subsort(self, other):
+ """Return `True` if `self` is a subsort of `other`.
+
+ >>> IntSort().subsort(RealSort())
+ True
+ """
+ return False
+
+ def cast(self, val):
+ """Try to cast `val` as an element of sort `self`.
+
+ This method is used in Z3Py to convert Python objects such as integers,
+ floats, longs and strings into Z3 expressions.
+
+ >>> x = Int('x')
+ >>> RealSort().cast(x)
+ ToReal(x)
+ """
+ if __debug__:
+ _z3_assert(is_expr(val), "Z3 expression expected")
+ _z3_assert(self.eq(val.sort()), "Sort mismatch")
+ return val
+
+ def name(self):
+ """Return the name (string) of sort `self`.
+
+ >>> BoolSort().name()
+ 'Bool'
+ >>> ArraySort(IntSort(), IntSort()).name()
+ 'Array'
+ """
+ return _symbol2py(self.ctx, Z3_get_sort_name(self.ctx_ref(), self.ast))
+
+ def __eq__(self, other):
+ """Return `True` if `self` and `other` are the same Z3 sort.
+
+ >>> p = Bool('p')
+ >>> p.sort() == BoolSort()
+ True
+ >>> p.sort() == IntSort()
+ False
+ """
+ if other is None:
+ return False
+ return Z3_is_eq_sort(self.ctx_ref(), self.ast, other.ast)
+
+ def __ne__(self, other):
+ """Return `True` if `self` and `other` are not the same Z3 sort.
+
+ >>> p = Bool('p')
+ >>> p.sort() != BoolSort()
+ False
+ >>> p.sort() != IntSort()
+ True
+ """
+ return not Z3_is_eq_sort(self.ctx_ref(), self.ast, other.ast)
+
+ def __hash__(self):
+ """ Hash code. """
+ return AstRef.__hash__(self)
+
+def is_sort(s):
+ """Return `True` if `s` is a Z3 sort.
+
+ >>> is_sort(IntSort())
+ True
+ >>> is_sort(Int('x'))
+ False
+ >>> is_expr(Int('x'))
+ True
+ """
+ return isinstance(s, SortRef)
+
+def _to_sort_ref(s, ctx):
+ if __debug__:
+ _z3_assert(isinstance(s, Sort), "Z3 Sort expected")
+ k = _sort_kind(ctx, s)
+ if k == Z3_BOOL_SORT:
+ return BoolSortRef(s, ctx)
+ elif k == Z3_INT_SORT or k == Z3_REAL_SORT:
+ return ArithSortRef(s, ctx)
+ elif k == Z3_BV_SORT:
+ return BitVecSortRef(s, ctx)
+ elif k == Z3_ARRAY_SORT:
+ return ArraySortRef(s, ctx)
+ elif k == Z3_DATATYPE_SORT:
+ return DatatypeSortRef(s, ctx)
+ elif k == Z3_FINITE_DOMAIN_SORT:
+ return FiniteDomainSortRef(s, ctx)
+ elif k == Z3_FLOATING_POINT_SORT:
+ return FPSortRef(s, ctx)
+ elif k == Z3_ROUNDING_MODE_SORT:
+ return FPRMSortRef(s, ctx)
+ return SortRef(s, ctx)
+
+def _sort(ctx, a):
+ return _to_sort_ref(Z3_get_sort(ctx.ref(), a), ctx)
+
+def DeclareSort(name, ctx=None):
+ """Create a new uninterpred sort named `name`.
+
+ If `ctx=None`, then the new sort is declared in the global Z3Py context.
+
+ >>> A = DeclareSort('A')
+ >>> a = Const('a', A)
+ >>> b = Const('b', A)
+ >>> a.sort() == A
+ True
+ >>> b.sort() == A
+ True
+ >>> a == b
+ a == b
+ """
+ ctx = _get_ctx(ctx)
+ return SortRef(Z3_mk_uninterpreted_sort(ctx.ref(), to_symbol(name, ctx)), ctx)
+
+#########################################
+#
+# Function Declarations
+#
+#########################################
+
+class FuncDeclRef(AstRef):
+ """Function declaration. Every constant and function have an associated declaration.
+
+ The declaration assigns a name, a sort (i.e., type), and for function
+ the sort (i.e., type) of each of its arguments. Note that, in Z3,
+ a constant is a function with 0 arguments.
+ """
+ def as_ast(self):
+ return Z3_func_decl_to_ast(self.ctx_ref(), self.ast)
+
+ def get_id(self):
+ return Z3_get_ast_id(self.ctx_ref(), self.as_ast())
+
+ def as_func_decl(self):
+ return self.ast
+
+ def name(self):
+ """Return the name of the function declaration `self`.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> f.name()
+ 'f'
+ >>> isinstance(f.name(), str)
+ True
+ """
+ return _symbol2py(self.ctx, Z3_get_decl_name(self.ctx_ref(), self.ast))
+
+ def arity(self):
+ """Return the number of arguments of a function declaration. If `self` is a constant, then `self.arity()` is 0.
+
+ >>> f = Function('f', IntSort(), RealSort(), BoolSort())
+ >>> f.arity()
+ 2
+ """
+ return int(Z3_get_arity(self.ctx_ref(), self.ast))
+
+ def domain(self, i):
+ """Return the sort of the argument `i` of a function declaration. This method assumes that `0 <= i < self.arity()`.
+
+ >>> f = Function('f', IntSort(), RealSort(), BoolSort())
+ >>> f.domain(0)
+ Int
+ >>> f.domain(1)
+ Real
+ """
+ if __debug__:
+ _z3_assert(i < self.arity(), "Index out of bounds")
+ return _to_sort_ref(Z3_get_domain(self.ctx_ref(), self.ast, i), self.ctx)
+
+ def range(self):
+ """Return the sort of the range of a function declaration. For constants, this is the sort of the constant.
+
+ >>> f = Function('f', IntSort(), RealSort(), BoolSort())
+ >>> f.range()
+ Bool
+ """
+ return _to_sort_ref(Z3_get_range(self.ctx_ref(), self.ast), self.ctx)
+
+ def kind(self):
+ """Return the internal kind of a function declaration. It can be used to identify Z3 built-in functions such as addition, multiplication, etc.
+
+ >>> x = Int('x')
+ >>> d = (x + 1).decl()
+ >>> d.kind() == Z3_OP_ADD
+ True
+ >>> d.kind() == Z3_OP_MUL
+ False
+ """
+ return Z3_get_decl_kind(self.ctx_ref(), self.ast)
+
+ def __call__(self, *args):
+ """Create a Z3 application expression using the function `self`, and the given arguments.
+
+ The arguments must be Z3 expressions. This method assumes that
+ the sorts of the elements in `args` match the sorts of the
+ domain. Limited coersion is supported. For example, if
+ args[0] is a Python integer, and the function expects a Z3
+ integer, then the argument is automatically converted into a
+ Z3 integer.
+
+ >>> f = Function('f', IntSort(), RealSort(), BoolSort())
+ >>> x = Int('x')
+ >>> y = Real('y')
+ >>> f(x, y)
+ f(x, y)
+ >>> f(x, x)
+ f(x, ToReal(x))
+ """
+ args = _get_args(args)
+ num = len(args)
+ if __debug__:
+ _z3_assert(num == self.arity(), "Incorrect number of arguments to %s" % self)
+ _args = (Ast * num)()
+ saved = []
+ for i in range(num):
+ # self.domain(i).cast(args[i]) may create a new Z3 expression,
+ # then we must save in 'saved' to prevent it from being garbage collected.
+ tmp = self.domain(i).cast(args[i])
+ saved.append(tmp)
+ _args[i] = tmp.as_ast()
+ return _to_expr_ref(Z3_mk_app(self.ctx_ref(), self.ast, len(args), _args), self.ctx)
+
+def is_func_decl(a):
+ """Return `True` if `a` is a Z3 function declaration.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> is_func_decl(f)
+ True
+ >>> x = Real('x')
+ >>> is_func_decl(x)
+ False
+ """
+ return isinstance(a, FuncDeclRef)
+
+def Function(name, *sig):
+ """Create a new Z3 uninterpreted function with the given sorts.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> f(f(0))
+ f(f(0))
+ """
+ sig = _get_args(sig)
+ if __debug__:
+ _z3_assert(len(sig) > 0, "At least two arguments expected")
+ arity = len(sig) - 1
+ rng = sig[arity]
+ if __debug__:
+ _z3_assert(is_sort(rng), "Z3 sort expected")
+ dom = (Sort * arity)()
+ for i in range(arity):
+ if __debug__:
+ _z3_assert(is_sort(sig[i]), "Z3 sort expected")
+ dom[i] = sig[i].ast
+ ctx = rng.ctx
+ return FuncDeclRef(Z3_mk_func_decl(ctx.ref(), to_symbol(name, ctx), arity, dom, rng.ast), ctx)
+
+def _to_func_decl_ref(a, ctx):
+ return FuncDeclRef(a, ctx)
+
+#########################################
+#
+# Expressions
+#
+#########################################
+
+class ExprRef(AstRef):
+ """Constraints, formulas and terms are expressions in Z3.
+
+ Expressions are ASTs. Every expression has a sort.
+ There are three main kinds of expressions:
+ function applications, quantifiers and bounded variables.
+ A constant is a function application with 0 arguments.
+ For quantifier free problems, all expressions are
+ function applications.
+ """
+ def as_ast(self):
+ return self.ast
+
+ def get_id(self):
+ return Z3_get_ast_id(self.ctx_ref(), self.as_ast())
+
+ def sort(self):
+ """Return the sort of expression `self`.
+
+ >>> x = Int('x')
+ >>> (x + 1).sort()
+ Int
+ >>> y = Real('y')
+ >>> (x + y).sort()
+ Real
+ """
+ return _sort(self.ctx, self.as_ast())
+
+ def sort_kind(self):
+ """Shorthand for `self.sort().kind()`.
+
+ >>> a = Array('a', IntSort(), IntSort())
+ >>> a.sort_kind() == Z3_ARRAY_SORT
+ True
+ >>> a.sort_kind() == Z3_INT_SORT
+ False
+ """
+ return self.sort().kind()
+
+ def __eq__(self, other):
+ """Return a Z3 expression that represents the constraint `self == other`.
+
+ If `other` is `None`, then this method simply returns `False`.
+
+ >>> a = Int('a')
+ >>> b = Int('b')
+ >>> a == b
+ a == b
+ >>> a is None
+ False
+ """
+ if other is None:
+ return False
+ a, b = _coerce_exprs(self, other)
+ return BoolRef(Z3_mk_eq(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __hash__(self):
+ """ Hash code. """
+ return AstRef.__hash__(self)
+
+ def __ne__(self, other):
+ """Return a Z3 expression that represents the constraint `self != other`.
+
+ If `other` is `None`, then this method simply returns `True`.
+
+ >>> a = Int('a')
+ >>> b = Int('b')
+ >>> a != b
+ a != b
+ >>> a is not None
+ True
+ """
+ if other is None:
+ return True
+ a, b = _coerce_exprs(self, other)
+ _args, sz = _to_ast_array((a, b))
+ return BoolRef(Z3_mk_distinct(self.ctx_ref(), 2, _args), self.ctx)
+
+ def decl(self):
+ """Return the Z3 function declaration associated with a Z3 application.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> a = Int('a')
+ >>> t = f(a)
+ >>> eq(t.decl(), f)
+ True
+ >>> (a + 1).decl()
+ +
+ """
+ if __debug__:
+ _z3_assert(is_app(self), "Z3 application expected")
+ return FuncDeclRef(Z3_get_app_decl(self.ctx_ref(), self.as_ast()), self.ctx)
+
+ def num_args(self):
+ """Return the number of arguments of a Z3 application.
+
+ >>> a = Int('a')
+ >>> b = Int('b')
+ >>> (a + b).num_args()
+ 2
+ >>> f = Function('f', IntSort(), IntSort(), IntSort(), IntSort())
+ >>> t = f(a, b, 0)
+ >>> t.num_args()
+ 3
+ """
+ if __debug__:
+ _z3_assert(is_app(self), "Z3 application expected")
+ return int(Z3_get_app_num_args(self.ctx_ref(), self.as_ast()))
+
+ def arg(self, idx):
+ """Return argument `idx` of the application `self`.
+
+ This method assumes that `self` is a function application with at least `idx+1` arguments.
+
+ >>> a = Int('a')
+ >>> b = Int('b')
+ >>> f = Function('f', IntSort(), IntSort(), IntSort(), IntSort())
+ >>> t = f(a, b, 0)
+ >>> t.arg(0)
+ a
+ >>> t.arg(1)
+ b
+ >>> t.arg(2)
+ 0
+ """
+ if __debug__:
+ _z3_assert(is_app(self), "Z3 application expected")
+ _z3_assert(idx < self.num_args(), "Invalid argument index")
+ return _to_expr_ref(Z3_get_app_arg(self.ctx_ref(), self.as_ast(), idx), self.ctx)
+
+ def children(self):
+ """Return a list containing the children of the given expression
+
+ >>> a = Int('a')
+ >>> b = Int('b')
+ >>> f = Function('f', IntSort(), IntSort(), IntSort(), IntSort())
+ >>> t = f(a, b, 0)
+ >>> t.children()
+ [a, b, 0]
+ """
+ if is_app(self):
+ return [self.arg(i) for i in range(self.num_args())]
+ else:
+ return []
+
+def _to_expr_ref(a, ctx):
+ if isinstance(a, Pattern):
+ return PatternRef(a, ctx)
+ ctx_ref = ctx.ref()
+ k = Z3_get_ast_kind(ctx_ref, a)
+ if k == Z3_QUANTIFIER_AST:
+ return QuantifierRef(a, ctx)
+ sk = Z3_get_sort_kind(ctx_ref, Z3_get_sort(ctx_ref, a))
+ if sk == Z3_BOOL_SORT:
+ return BoolRef(a, ctx)
+ if sk == Z3_INT_SORT:
+ if k == Z3_NUMERAL_AST:
+ return IntNumRef(a, ctx)
+ return ArithRef(a, ctx)
+ if sk == Z3_REAL_SORT:
+ if k == Z3_NUMERAL_AST:
+ return RatNumRef(a, ctx)
+ if _is_algebraic(ctx, a):
+ return AlgebraicNumRef(a, ctx)
+ return ArithRef(a, ctx)
+ if sk == Z3_BV_SORT:
+ if k == Z3_NUMERAL_AST:
+ return BitVecNumRef(a, ctx)
+ else:
+ return BitVecRef(a, ctx)
+ if sk == Z3_ARRAY_SORT:
+ return ArrayRef(a, ctx)
+ if sk == Z3_DATATYPE_SORT:
+ return DatatypeRef(a, ctx)
+ if sk == Z3_FLOATING_POINT_SORT:
+ if k == Z3_APP_AST and _is_numeral(ctx, a):
+ return FPNumRef(a, ctx)
+ else:
+ return FPRef(a, ctx)
+ if sk == Z3_FINITE_DOMAIN_SORT:
+ if k == Z3_NUMERAL_AST:
+ return FiniteDomainNumRef(a, ctx)
+ else:
+ return FiniteDomainRef(a, ctx)
+ if sk == Z3_ROUNDING_MODE_SORT:
+ return FPRMRef(a, ctx)
+ if sk == Z3_SEQ_SORT:
+ return SeqRef(a, ctx)
+ if sk == Z3_RE_SORT:
+ return ReRef(a, ctx)
+ return ExprRef(a, ctx)
+
+def _coerce_expr_merge(s, a):
+ if is_expr(a):
+ s1 = a.sort()
+ if s is None:
+ return s1
+ if s1.eq(s):
+ return s
+ elif s.subsort(s1):
+ return s1
+ elif s1.subsort(s):
+ return s
+ else:
+ if __debug__:
+ _z3_assert(s1.ctx == s.ctx, "context mismatch")
+ _z3_assert(False, "sort mismatch")
+ else:
+ return s
+
+def _coerce_exprs(a, b, ctx=None):
+ if not is_expr(a) and not is_expr(b):
+ a = _py2expr(a, ctx)
+ b = _py2expr(b, ctx)
+ s = None
+ s = _coerce_expr_merge(s, a)
+ s = _coerce_expr_merge(s, b)
+ a = s.cast(a)
+ b = s.cast(b)
+ return (a, b)
+
+def _reduce(f, l, a):
+ r = a
+ for e in l:
+ r = f(r, e)
+ return r
+
+def _coerce_expr_list(alist, ctx=None):
+ has_expr = False
+ for a in alist:
+ if is_expr(a):
+ has_expr = True
+ break
+ if not has_expr:
+ alist = [ _py2expr(a, ctx) for a in alist ]
+ s = _reduce(_coerce_expr_merge, alist, None)
+ return [ s.cast(a) for a in alist ]
+
+def is_expr(a):
+ """Return `True` if `a` is a Z3 expression.
+
+ >>> a = Int('a')
+ >>> is_expr(a)
+ True
+ >>> is_expr(a + 1)
+ True
+ >>> is_expr(IntSort())
+ False
+ >>> is_expr(1)
+ False
+ >>> is_expr(IntVal(1))
+ True
+ >>> x = Int('x')
+ >>> is_expr(ForAll(x, x >= 0))
+ True
+ >>> is_expr(FPVal(1.0))
+ True
+ """
+ return isinstance(a, ExprRef)
+
+def is_app(a):
+ """Return `True` if `a` is a Z3 function application.
+
+ Note that, constants are function applications with 0 arguments.
+
+ >>> a = Int('a')
+ >>> is_app(a)
+ True
+ >>> is_app(a + 1)
+ True
+ >>> is_app(IntSort())
+ False
+ >>> is_app(1)
+ False
+ >>> is_app(IntVal(1))
+ True
+ >>> x = Int('x')
+ >>> is_app(ForAll(x, x >= 0))
+ False
+ """
+ if not isinstance(a, ExprRef):
+ return False
+ k = _ast_kind(a.ctx, a)
+ return k == Z3_NUMERAL_AST or k == Z3_APP_AST
+
+def is_const(a):
+ """Return `True` if `a` is Z3 constant/variable expression.
+
+ >>> a = Int('a')
+ >>> is_const(a)
+ True
+ >>> is_const(a + 1)
+ False
+ >>> is_const(1)
+ False
+ >>> is_const(IntVal(1))
+ True
+ >>> x = Int('x')
+ >>> is_const(ForAll(x, x >= 0))
+ False
+ """
+ return is_app(a) and a.num_args() == 0
+
+def is_var(a):
+ """Return `True` if `a` is variable.
+
+ Z3 uses de-Bruijn indices for representing bound variables in
+ quantifiers.
+
+ >>> x = Int('x')
+ >>> is_var(x)
+ False
+ >>> is_const(x)
+ True
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> # Z3 replaces x with bound variables when ForAll is executed.
+ >>> q = ForAll(x, f(x) == x)
+ >>> b = q.body()
+ >>> b
+ f(Var(0)) == Var(0)
+ >>> b.arg(1)
+ Var(0)
+ >>> is_var(b.arg(1))
+ True
+ """
+ return is_expr(a) and _ast_kind(a.ctx, a) == Z3_VAR_AST
+
+def get_var_index(a):
+ """Return the de-Bruijn index of the Z3 bounded variable `a`.
+
+ >>> x = Int('x')
+ >>> y = Int('y')
+ >>> is_var(x)
+ False
+ >>> is_const(x)
+ True
+ >>> f = Function('f', IntSort(), IntSort(), IntSort())
+ >>> # Z3 replaces x and y with bound variables when ForAll is executed.
+ >>> q = ForAll([x, y], f(x, y) == x + y)
+ >>> q.body()
+ f(Var(1), Var(0)) == Var(1) + Var(0)
+ >>> b = q.body()
+ >>> b.arg(0)
+ f(Var(1), Var(0))
+ >>> v1 = b.arg(0).arg(0)
+ >>> v2 = b.arg(0).arg(1)
+ >>> v1
+ Var(1)
+ >>> v2
+ Var(0)
+ >>> get_var_index(v1)
+ 1
+ >>> get_var_index(v2)
+ 0
+ """
+ if __debug__:
+ _z3_assert(is_var(a), "Z3 bound variable expected")
+ return int(Z3_get_index_value(a.ctx.ref(), a.as_ast()))
+
+def is_app_of(a, k):
+ """Return `True` if `a` is an application of the given kind `k`.
+
+ >>> x = Int('x')
+ >>> n = x + 1
+ >>> is_app_of(n, Z3_OP_ADD)
+ True
+ >>> is_app_of(n, Z3_OP_MUL)
+ False
+ """
+ return is_app(a) and a.decl().kind() == k
+
+def If(a, b, c, ctx=None):
+ """Create a Z3 if-then-else expression.
+
+ >>> x = Int('x')
+ >>> y = Int('y')
+ >>> max = If(x > y, x, y)
+ >>> max
+ If(x > y, x, y)
+ >>> simplify(max)
+ If(x <= y, y, x)
+ """
+ if isinstance(a, Probe) or isinstance(b, Tactic) or isinstance(c, Tactic):
+ return Cond(a, b, c, ctx)
+ else:
+ ctx = _get_ctx(_ctx_from_ast_arg_list([a, b, c], ctx))
+ s = BoolSort(ctx)
+ a = s.cast(a)
+ b, c = _coerce_exprs(b, c, ctx)
+ if __debug__:
+ _z3_assert(a.ctx == b.ctx, "Context mismatch")
+ return _to_expr_ref(Z3_mk_ite(ctx.ref(), a.as_ast(), b.as_ast(), c.as_ast()), ctx)
+
+def Distinct(*args):
+ """Create a Z3 distinct expression.
+
+ >>> x = Int('x')
+ >>> y = Int('y')
+ >>> Distinct(x, y)
+ x != y
+ >>> z = Int('z')
+ >>> Distinct(x, y, z)
+ Distinct(x, y, z)
+ >>> simplify(Distinct(x, y, z))
+ Distinct(x, y, z)
+ >>> simplify(Distinct(x, y, z), blast_distinct=True)
+ And(Not(x == y), Not(x == z), Not(y == z))
+ """
+ args = _get_args(args)
+ ctx = _ctx_from_ast_arg_list(args)
+ if __debug__:
+ _z3_assert(ctx is not None, "At least one of the arguments must be a Z3 expression")
+ args = _coerce_expr_list(args, ctx)
+ _args, sz = _to_ast_array(args)
+ return BoolRef(Z3_mk_distinct(ctx.ref(), sz, _args), ctx)
+
+def _mk_bin(f, a, b):
+ args = (Ast * 2)()
+ if __debug__:
+ _z3_assert(a.ctx == b.ctx, "Context mismatch")
+ args[0] = a.as_ast()
+ args[1] = b.as_ast()
+ return f(a.ctx.ref(), 2, args)
+
+def Const(name, sort):
+ """Create a constant of the given sort.
+
+ >>> Const('x', IntSort())
+ x
+ """
+ if __debug__:
+ _z3_assert(isinstance(sort, SortRef), "Z3 sort expected")
+ ctx = sort.ctx
+ return _to_expr_ref(Z3_mk_const(ctx.ref(), to_symbol(name, ctx), sort.ast), ctx)
+
+def Consts(names, sort):
+ """Create a several constants of the given sort.
+
+ `names` is a string containing the names of all constants to be created.
+ Blank spaces separate the names of different constants.
+
+ >>> x, y, z = Consts('x y z', IntSort())
+ >>> x + y + z
+ x + y + z
+ """
+ if isinstance(names, str):
+ names = names.split(" ")
+ return [Const(name, sort) for name in names]
+
+def Var(idx, s):
+ """Create a Z3 free variable. Free variables are used to create quantified formulas.
+
+ >>> Var(0, IntSort())
+ Var(0)
+ >>> eq(Var(0, IntSort()), Var(0, BoolSort()))
+ False
+ """
+ if __debug__:
+ _z3_assert(is_sort(s), "Z3 sort expected")
+ return _to_expr_ref(Z3_mk_bound(s.ctx_ref(), idx, s.ast), s.ctx)
+
+def RealVar(idx, ctx=None):
+ """
+ Create a real free variable. Free variables are used to create quantified formulas.
+ They are also used to create polynomials.
+
+ >>> RealVar(0)
+ Var(0)
+ """
+ return Var(idx, RealSort(ctx))
+
+def RealVarVector(n, ctx=None):
+ """
+ Create a list of Real free variables.
+ The variables have ids: 0, 1, ..., n-1
+
+ >>> x0, x1, x2, x3 = RealVarVector(4)
+ >>> x2
+ Var(2)
+ """
+ return [ RealVar(i, ctx) for i in range(n) ]
+
+#########################################
+#
+# Booleans
+#
+#########################################
+
+class BoolSortRef(SortRef):
+ """Boolean sort."""
+ def cast(self, val):
+ """Try to cast `val` as a Boolean.
+
+ >>> x = BoolSort().cast(True)
+ >>> x
+ True
+ >>> is_expr(x)
+ True
+ >>> is_expr(True)
+ False
+ >>> x.sort()
+ Bool
+ """
+ if isinstance(val, bool):
+ return BoolVal(val, self.ctx)
+ if __debug__:
+ _z3_assert(is_expr(val), "True, False or Z3 Boolean expression expected")
+ _z3_assert(self.eq(val.sort()), "Value cannot be converted into a Z3 Boolean value")
+ return val
+
+ def subsort(self, other):
+ return isinstance(other, ArithSortRef)
+
+ def is_int(self):
+ return True
+
+ def is_bool(self):
+ return True
+
+
+class BoolRef(ExprRef):
+ """All Boolean expressions are instances of this class."""
+ def sort(self):
+ return BoolSortRef(Z3_get_sort(self.ctx_ref(), self.as_ast()), self.ctx)
+
+ def __rmul__(self, other):
+ return self * other
+
+ def __mul__(self, other):
+ """Create the Z3 expression `self * other`.
+ """
+ if other == 1:
+ return self
+ if other == 0:
+ return 0
+ return If(self, other, 0)
+
+
+def is_bool(a):
+ """Return `True` if `a` is a Z3 Boolean expression.
+
+ >>> p = Bool('p')
+ >>> is_bool(p)
+ True
+ >>> q = Bool('q')
+ >>> is_bool(And(p, q))
+ True
+ >>> x = Real('x')
+ >>> is_bool(x)
+ False
+ >>> is_bool(x == 0)
+ True
+ """
+ return isinstance(a, BoolRef)
+
+def is_true(a):
+ """Return `True` if `a` is the Z3 true expression.
+
+ >>> p = Bool('p')
+ >>> is_true(p)
+ False
+ >>> is_true(simplify(p == p))
+ True
+ >>> x = Real('x')
+ >>> is_true(x == 0)
+ False
+ >>> # True is a Python Boolean expression
+ >>> is_true(True)
+ False
+ """
+ return is_app_of(a, Z3_OP_TRUE)
+
+def is_false(a):
+ """Return `True` if `a` is the Z3 false expression.
+
+ >>> p = Bool('p')
+ >>> is_false(p)
+ False
+ >>> is_false(False)
+ False
+ >>> is_false(BoolVal(False))
+ True
+ """
+ return is_app_of(a, Z3_OP_FALSE)
+
+def is_and(a):
+ """Return `True` if `a` is a Z3 and expression.
+
+ >>> p, q = Bools('p q')
+ >>> is_and(And(p, q))
+ True
+ >>> is_and(Or(p, q))
+ False
+ """
+ return is_app_of(a, Z3_OP_AND)
+
+def is_or(a):
+ """Return `True` if `a` is a Z3 or expression.
+
+ >>> p, q = Bools('p q')
+ >>> is_or(Or(p, q))
+ True
+ >>> is_or(And(p, q))
+ False
+ """
+ return is_app_of(a, Z3_OP_OR)
+
+def is_not(a):
+ """Return `True` if `a` is a Z3 not expression.
+
+ >>> p = Bool('p')
+ >>> is_not(p)
+ False
+ >>> is_not(Not(p))
+ True
+ """
+ return is_app_of(a, Z3_OP_NOT)
+
+def is_eq(a):
+ """Return `True` if `a` is a Z3 equality expression.
+
+ >>> x, y = Ints('x y')
+ >>> is_eq(x == y)
+ True
+ """
+ return is_app_of(a, Z3_OP_EQ)
+
+def is_distinct(a):
+ """Return `True` if `a` is a Z3 distinct expression.
+
+ >>> x, y, z = Ints('x y z')
+ >>> is_distinct(x == y)
+ False
+ >>> is_distinct(Distinct(x, y, z))
+ True
+ """
+ return is_app_of(a, Z3_OP_DISTINCT)
+
+def BoolSort(ctx=None):
+ """Return the Boolean Z3 sort. If `ctx=None`, then the global context is used.
+
+ >>> BoolSort()
+ Bool
+ >>> p = Const('p', BoolSort())
+ >>> is_bool(p)
+ True
+ >>> r = Function('r', IntSort(), IntSort(), BoolSort())
+ >>> r(0, 1)
+ r(0, 1)
+ >>> is_bool(r(0, 1))
+ True
+ """
+ ctx = _get_ctx(ctx)
+ return BoolSortRef(Z3_mk_bool_sort(ctx.ref()), ctx)
+
+def BoolVal(val, ctx=None):
+ """Return the Boolean value `True` or `False`. If `ctx=None`, then the global context is used.
+
+ >>> BoolVal(True)
+ True
+ >>> is_true(BoolVal(True))
+ True
+ >>> is_true(True)
+ False
+ >>> is_false(BoolVal(False))
+ True
+ """
+ ctx = _get_ctx(ctx)
+ if val == False:
+ return BoolRef(Z3_mk_false(ctx.ref()), ctx)
+ else:
+ return BoolRef(Z3_mk_true(ctx.ref()), ctx)
+
+def Bool(name, ctx=None):
+ """Return a Boolean constant named `name`. If `ctx=None`, then the global context is used.
+
+ >>> p = Bool('p')
+ >>> q = Bool('q')
+ >>> And(p, q)
+ And(p, q)
+ """
+ ctx = _get_ctx(ctx)
+ return BoolRef(Z3_mk_const(ctx.ref(), to_symbol(name, ctx), BoolSort(ctx).ast), ctx)
+
+def Bools(names, ctx=None):
+ """Return a tuple of Boolean constants.
+
+ `names` is a single string containing all names separated by blank spaces.
+ If `ctx=None`, then the global context is used.
+
+ >>> p, q, r = Bools('p q r')
+ >>> And(p, Or(q, r))
+ And(p, Or(q, r))
+ """
+ ctx = _get_ctx(ctx)
+ if isinstance(names, str):
+ names = names.split(" ")
+ return [Bool(name, ctx) for name in names]
+
+def BoolVector(prefix, sz, ctx=None):
+ """Return a list of Boolean constants of size `sz`.
+
+ The constants are named using the given prefix.
+ If `ctx=None`, then the global context is used.
+
+ >>> P = BoolVector('p', 3)
+ >>> P
+ [p__0, p__1, p__2]
+ >>> And(P)
+ And(p__0, p__1, p__2)
+ """
+ return [ Bool('%s__%s' % (prefix, i)) for i in range(sz) ]
+
+def FreshBool(prefix='b', ctx=None):
+ """Return a fresh Boolean constant in the given context using the given prefix.
+
+ If `ctx=None`, then the global context is used.
+
+ >>> b1 = FreshBool()
+ >>> b2 = FreshBool()
+ >>> eq(b1, b2)
+ False
+ """
+ ctx = _get_ctx(ctx)
+ return BoolRef(Z3_mk_fresh_const(ctx.ref(), prefix, BoolSort(ctx).ast), ctx)
+
+def Implies(a, b, ctx=None):
+ """Create a Z3 implies expression.
+
+ >>> p, q = Bools('p q')
+ >>> Implies(p, q)
+ Implies(p, q)
+ >>> simplify(Implies(p, q))
+ Or(Not(p), q)
+ """
+ ctx = _get_ctx(_ctx_from_ast_arg_list([a, b], ctx))
+ s = BoolSort(ctx)
+ a = s.cast(a)
+ b = s.cast(b)
+ return BoolRef(Z3_mk_implies(ctx.ref(), a.as_ast(), b.as_ast()), ctx)
+
+def Xor(a, b, ctx=None):
+ """Create a Z3 Xor expression.
+
+ >>> p, q = Bools('p q')
+ >>> Xor(p, q)
+ Xor(p, q)
+ >>> simplify(Xor(p, q))
+ Not(p) == q
+ """
+ ctx = _get_ctx(_ctx_from_ast_arg_list([a, b], ctx))
+ s = BoolSort(ctx)
+ a = s.cast(a)
+ b = s.cast(b)
+ return BoolRef(Z3_mk_xor(ctx.ref(), a.as_ast(), b.as_ast()), ctx)
+
+def Not(a, ctx=None):
+ """Create a Z3 not expression or probe.
+
+ >>> p = Bool('p')
+ >>> Not(Not(p))
+ Not(Not(p))
+ >>> simplify(Not(Not(p)))
+ p
+ """
+ ctx = _get_ctx(_ctx_from_ast_arg_list([a], ctx))
+ if is_probe(a):
+ # Not is also used to build probes
+ return Probe(Z3_probe_not(ctx.ref(), a.probe), ctx)
+ else:
+ s = BoolSort(ctx)
+ a = s.cast(a)
+ return BoolRef(Z3_mk_not(ctx.ref(), a.as_ast()), ctx)
+
+def _has_probe(args):
+ """Return `True` if one of the elements of the given collection is a Z3 probe."""
+ for arg in args:
+ if is_probe(arg):
+ return True
+ return False
+
+def And(*args):
+ """Create a Z3 and-expression or and-probe.
+
+ >>> p, q, r = Bools('p q r')
+ >>> And(p, q, r)
+ And(p, q, r)
+ >>> P = BoolVector('p', 5)
+ >>> And(P)
+ And(p__0, p__1, p__2, p__3, p__4)
+ """
+ last_arg = None
+ if len(args) > 0:
+ last_arg = args[len(args)-1]
+ if isinstance(last_arg, Context):
+ ctx = args[len(args)-1]
+ args = args[:len(args)-1]
+ elif len(args) == 1 and isinstance(args[0], AstVector):
+ ctx = args[0].ctx
+ args = [a for a in args[0]]
+ else:
+ ctx = main_ctx()
+ args = _get_args(args)
+ ctx_args = _ctx_from_ast_arg_list(args, ctx)
+ if __debug__:
+ _z3_assert(ctx_args is None or ctx_args == ctx, "context mismatch")
+ _z3_assert(ctx is not None, "At least one of the arguments must be a Z3 expression or probe")
+ if _has_probe(args):
+ return _probe_and(args, ctx)
+ else:
+ args = _coerce_expr_list(args, ctx)
+ _args, sz = _to_ast_array(args)
+ return BoolRef(Z3_mk_and(ctx.ref(), sz, _args), ctx)
+
+def Or(*args):
+ """Create a Z3 or-expression or or-probe.
+
+ >>> p, q, r = Bools('p q r')
+ >>> Or(p, q, r)
+ Or(p, q, r)
+ >>> P = BoolVector('p', 5)
+ >>> Or(P)
+ Or(p__0, p__1, p__2, p__3, p__4)
+ """
+ last_arg = None
+ if len(args) > 0:
+ last_arg = args[len(args)-1]
+ if isinstance(last_arg, Context):
+ ctx = args[len(args)-1]
+ args = args[:len(args)-1]
+ else:
+ ctx = main_ctx()
+ args = _get_args(args)
+ ctx_args = _ctx_from_ast_arg_list(args, ctx)
+ if __debug__:
+ _z3_assert(ctx_args is None or ctx_args == ctx, "context mismatch")
+ _z3_assert(ctx is not None, "At least one of the arguments must be a Z3 expression or probe")
+ if _has_probe(args):
+ return _probe_or(args, ctx)
+ else:
+ args = _coerce_expr_list(args, ctx)
+ _args, sz = _to_ast_array(args)
+ return BoolRef(Z3_mk_or(ctx.ref(), sz, _args), ctx)
+
+#########################################
+#
+# Patterns
+#
+#########################################
+
+class PatternRef(ExprRef):
+ """Patterns are hints for quantifier instantiation.
+
+ See http://rise4fun.com/Z3Py/tutorial/advanced for more details.
+ """
+ def as_ast(self):
+ return Z3_pattern_to_ast(self.ctx_ref(), self.ast)
+
+ def get_id(self):
+ return Z3_get_ast_id(self.ctx_ref(), self.as_ast())
+
+def is_pattern(a):
+ """Return `True` if `a` is a Z3 pattern (hint for quantifier instantiation.
+
+ See http://rise4fun.com/Z3Py/tutorial/advanced for more details.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> q = ForAll(x, f(x) == 0, patterns = [ f(x) ])
+ >>> q
+ ForAll(x, f(x) == 0)
+ >>> q.num_patterns()
+ 1
+ >>> is_pattern(q.pattern(0))
+ True
+ >>> q.pattern(0)
+ f(Var(0))
+ """
+ return isinstance(a, PatternRef)
+
+def MultiPattern(*args):
+ """Create a Z3 multi-pattern using the given expressions `*args`
+
+ See http://rise4fun.com/Z3Py/tutorial/advanced for more details.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> g = Function('g', IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> q = ForAll(x, f(x) != g(x), patterns = [ MultiPattern(f(x), g(x)) ])
+ >>> q
+ ForAll(x, f(x) != g(x))
+ >>> q.num_patterns()
+ 1
+ >>> is_pattern(q.pattern(0))
+ True
+ >>> q.pattern(0)
+ MultiPattern(f(Var(0)), g(Var(0)))
+ """
+ if __debug__:
+ _z3_assert(len(args) > 0, "At least one argument expected")
+ _z3_assert(all([ is_expr(a) for a in args ]), "Z3 expressions expected")
+ ctx = args[0].ctx
+ args, sz = _to_ast_array(args)
+ return PatternRef(Z3_mk_pattern(ctx.ref(), sz, args), ctx)
+
+def _to_pattern(arg):
+ if is_pattern(arg):
+ return arg
+ else:
+ return MultiPattern(arg)
+
+#########################################
+#
+# Quantifiers
+#
+#########################################
+
+class QuantifierRef(BoolRef):
+ """Universally and Existentially quantified formulas."""
+
+ def as_ast(self):
+ return self.ast
+
+ def get_id(self):
+ return Z3_get_ast_id(self.ctx_ref(), self.as_ast())
+
+ def sort(self):
+ """Return the Boolean sort."""
+ return BoolSort(self.ctx)
+
+ def is_forall(self):
+ """Return `True` if `self` is a universal quantifier.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> q = ForAll(x, f(x) == 0)
+ >>> q.is_forall()
+ True
+ >>> q = Exists(x, f(x) != 0)
+ >>> q.is_forall()
+ False
+ """
+ return Z3_is_quantifier_forall(self.ctx_ref(), self.ast)
+
+ def weight(self):
+ """Return the weight annotation of `self`.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> q = ForAll(x, f(x) == 0)
+ >>> q.weight()
+ 1
+ >>> q = ForAll(x, f(x) == 0, weight=10)
+ >>> q.weight()
+ 10
+ """
+ return int(Z3_get_quantifier_weight(self.ctx_ref(), self.ast))
+
+ def num_patterns(self):
+ """Return the number of patterns (i.e., quantifier instantiation hints) in `self`.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> g = Function('g', IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> q = ForAll(x, f(x) != g(x), patterns = [ f(x), g(x) ])
+ >>> q.num_patterns()
+ 2
+ """
+ return int(Z3_get_quantifier_num_patterns(self.ctx_ref(), self.ast))
+
+ def pattern(self, idx):
+ """Return a pattern (i.e., quantifier instantiation hints) in `self`.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> g = Function('g', IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> q = ForAll(x, f(x) != g(x), patterns = [ f(x), g(x) ])
+ >>> q.num_patterns()
+ 2
+ >>> q.pattern(0)
+ f(Var(0))
+ >>> q.pattern(1)
+ g(Var(0))
+ """
+ if __debug__:
+ _z3_assert(idx < self.num_patterns(), "Invalid pattern idx")
+ return PatternRef(Z3_get_quantifier_pattern_ast(self.ctx_ref(), self.ast, idx), self.ctx)
+
+ def num_no_patterns(self):
+ """Return the number of no-patterns."""
+ return Z3_get_quantifier_num_no_patterns(self.ctx_ref(), self.ast)
+
+ def no_pattern(self, idx):
+ """Return a no-pattern."""
+ if __debug__:
+ _z3_assert(idx < self.num_no_patterns(), "Invalid no-pattern idx")
+ return _to_expr_ref(Z3_get_quantifier_no_pattern_ast(self.ctx_ref(), self.ast, idx), self.ctx)
+
+ def body(self):
+ """Return the expression being quantified.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> q = ForAll(x, f(x) == 0)
+ >>> q.body()
+ f(Var(0)) == 0
+ """
+ return _to_expr_ref(Z3_get_quantifier_body(self.ctx_ref(), self.ast), self.ctx)
+
+ def num_vars(self):
+ """Return the number of variables bounded by this quantifier.
+
+ >>> f = Function('f', IntSort(), IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> y = Int('y')
+ >>> q = ForAll([x, y], f(x, y) >= x)
+ >>> q.num_vars()
+ 2
+ """
+ return int(Z3_get_quantifier_num_bound(self.ctx_ref(), self.ast))
+
+ def var_name(self, idx):
+ """Return a string representing a name used when displaying the quantifier.
+
+ >>> f = Function('f', IntSort(), IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> y = Int('y')
+ >>> q = ForAll([x, y], f(x, y) >= x)
+ >>> q.var_name(0)
+ 'x'
+ >>> q.var_name(1)
+ 'y'
+ """
+ if __debug__:
+ _z3_assert(idx < self.num_vars(), "Invalid variable idx")
+ return _symbol2py(self.ctx, Z3_get_quantifier_bound_name(self.ctx_ref(), self.ast, idx))
+
+ def var_sort(self, idx):
+ """Return the sort of a bound variable.
+
+ >>> f = Function('f', IntSort(), RealSort(), IntSort())
+ >>> x = Int('x')
+ >>> y = Real('y')
+ >>> q = ForAll([x, y], f(x, y) >= x)
+ >>> q.var_sort(0)
+ Int
+ >>> q.var_sort(1)
+ Real
+ """
+ if __debug__:
+ _z3_assert(idx < self.num_vars(), "Invalid variable idx")
+ return _to_sort_ref(Z3_get_quantifier_bound_sort(self.ctx_ref(), self.ast, idx), self.ctx)
+
+ def children(self):
+ """Return a list containing a single element self.body()
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> q = ForAll(x, f(x) == 0)
+ >>> q.children()
+ [f(Var(0)) == 0]
+ """
+ return [ self.body() ]
+
+def is_quantifier(a):
+ """Return `True` if `a` is a Z3 quantifier.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> q = ForAll(x, f(x) == 0)
+ >>> is_quantifier(q)
+ True
+ >>> is_quantifier(f(x))
+ False
+ """
+ return isinstance(a, QuantifierRef)
+
+def _mk_quantifier(is_forall, vs, body, weight=1, qid="", skid="", patterns=[], no_patterns=[]):
+ if __debug__:
+ _z3_assert(is_bool(body), "Z3 expression expected")
+ _z3_assert(is_const(vs) or (len(vs) > 0 and all([ is_const(v) for v in vs])), "Invalid bounded variable(s)")
+ _z3_assert(all([is_pattern(a) or is_expr(a) for a in patterns]), "Z3 patterns expected")
+ _z3_assert(all([is_expr(p) for p in no_patterns]), "no patterns are Z3 expressions")
+ ctx = body.ctx
+ if is_app(vs):
+ vs = [vs]
+ num_vars = len(vs)
+ if num_vars == 0:
+ return body
+ _vs = (Ast * num_vars)()
+ for i in range(num_vars):
+ ## TODO: Check if is constant
+ _vs[i] = vs[i].as_ast()
+ patterns = [ _to_pattern(p) for p in patterns ]
+ num_pats = len(patterns)
+ _pats = (Pattern * num_pats)()
+ for i in range(num_pats):
+ _pats[i] = patterns[i].ast
+ _no_pats, num_no_pats = _to_ast_array(no_patterns)
+ qid = to_symbol(qid, ctx)
+ skid = to_symbol(skid, ctx)
+ return QuantifierRef(Z3_mk_quantifier_const_ex(ctx.ref(), is_forall, weight, qid, skid,
+ num_vars, _vs,
+ num_pats, _pats,
+ num_no_pats, _no_pats,
+ body.as_ast()), ctx)
+
+def ForAll(vs, body, weight=1, qid="", skid="", patterns=[], no_patterns=[]):
+ """Create a Z3 forall formula.
+
+ The parameters `weight`, `qif`, `skid`, `patterns` and `no_patterns` are optional annotations.
+
+ See http://rise4fun.com/Z3Py/tutorial/advanced for more details.
+
+ >>> f = Function('f', IntSort(), IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> y = Int('y')
+ >>> ForAll([x, y], f(x, y) >= x)
+ ForAll([x, y], f(x, y) >= x)
+ >>> ForAll([x, y], f(x, y) >= x, patterns=[ f(x, y) ])
+ ForAll([x, y], f(x, y) >= x)
+ >>> ForAll([x, y], f(x, y) >= x, weight=10)
+ ForAll([x, y], f(x, y) >= x)
+ """
+ return _mk_quantifier(True, vs, body, weight, qid, skid, patterns, no_patterns)
+
+def Exists(vs, body, weight=1, qid="", skid="", patterns=[], no_patterns=[]):
+ """Create a Z3 exists formula.
+
+ The parameters `weight`, `qif`, `skid`, `patterns` and `no_patterns` are optional annotations.
+
+ See http://rise4fun.com/Z3Py/tutorial/advanced for more details.
+
+ >>> f = Function('f', IntSort(), IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> y = Int('y')
+ >>> q = Exists([x, y], f(x, y) >= x, skid="foo")
+ >>> q
+ Exists([x, y], f(x, y) >= x)
+ >>> is_quantifier(q)
+ True
+ >>> r = Tactic('nnf')(q).as_expr()
+ >>> is_quantifier(r)
+ False
+ """
+ return _mk_quantifier(False, vs, body, weight, qid, skid, patterns, no_patterns)
+
+#########################################
+#
+# Arithmetic
+#
+#########################################
+
+class ArithSortRef(SortRef):
+ """Real and Integer sorts."""
+
+ def is_real(self):
+ """Return `True` if `self` is of the sort Real.
+
+ >>> x = Real('x')
+ >>> x.is_real()
+ True
+ >>> (x + 1).is_real()
+ True
+ >>> x = Int('x')
+ >>> x.is_real()
+ False
+ """
+ return self.kind() == Z3_REAL_SORT
+
+ def is_int(self):
+ """Return `True` if `self` is of the sort Integer.
+
+ >>> x = Int('x')
+ >>> x.is_int()
+ True
+ >>> (x + 1).is_int()
+ True
+ >>> x = Real('x')
+ >>> x.is_int()
+ False
+ """
+ return self.kind() == Z3_INT_SORT
+
+ def subsort(self, other):
+ """Return `True` if `self` is a subsort of `other`."""
+ return self.is_int() and is_arith_sort(other) and other.is_real()
+
+ def cast(self, val):
+ """Try to cast `val` as an Integer or Real.
+
+ >>> IntSort().cast(10)
+ 10
+ >>> is_int(IntSort().cast(10))
+ True
+ >>> is_int(10)
+ False
+ >>> RealSort().cast(10)
+ 10
+ >>> is_real(RealSort().cast(10))
+ True
+ """
+ if is_expr(val):
+ if __debug__:
+ _z3_assert(self.ctx == val.ctx, "Context mismatch")
+ val_s = val.sort()
+ if self.eq(val_s):
+ return val
+ if val_s.is_int() and self.is_real():
+ return ToReal(val)
+ if val_s.is_bool() and self.is_int():
+ return If(val, 1, 0)
+ if val_s.is_bool() and self.is_real():
+ return ToReal(If(val, 1, 0))
+ if __debug__:
+ _z3_assert(False, "Z3 Integer/Real expression expected" )
+ else:
+ if self.is_int():
+ return IntVal(val, self.ctx)
+ if self.is_real():
+ return RealVal(val, self.ctx)
+ if __debug__:
+ _z3_assert(False, "int, long, float, string (numeral), or Z3 Integer/Real expression expected")
+
+def is_arith_sort(s):
+ """Return `True` if s is an arithmetical sort (type).
+
+ >>> is_arith_sort(IntSort())
+ True
+ >>> is_arith_sort(RealSort())
+ True
+ >>> is_arith_sort(BoolSort())
+ False
+ >>> n = Int('x') + 1
+ >>> is_arith_sort(n.sort())
+ True
+ """
+ return isinstance(s, ArithSortRef)
+
+class ArithRef(ExprRef):
+ """Integer and Real expressions."""
+
+ def sort(self):
+ """Return the sort (type) of the arithmetical expression `self`.
+
+ >>> Int('x').sort()
+ Int
+ >>> (Real('x') + 1).sort()
+ Real
+ """
+ return ArithSortRef(Z3_get_sort(self.ctx_ref(), self.as_ast()), self.ctx)
+
+ def is_int(self):
+ """Return `True` if `self` is an integer expression.
+
+ >>> x = Int('x')
+ >>> x.is_int()
+ True
+ >>> (x + 1).is_int()
+ True
+ >>> y = Real('y')
+ >>> (x + y).is_int()
+ False
+ """
+ return self.sort().is_int()
+
+ def is_real(self):
+ """Return `True` if `self` is an real expression.
+
+ >>> x = Real('x')
+ >>> x.is_real()
+ True
+ >>> (x + 1).is_real()
+ True
+ """
+ return self.sort().is_real()
+
+ def __add__(self, other):
+ """Create the Z3 expression `self + other`.
+
+ >>> x = Int('x')
+ >>> y = Int('y')
+ >>> x + y
+ x + y
+ >>> (x + y).sort()
+ Int
+ """
+ a, b = _coerce_exprs(self, other)
+ return ArithRef(_mk_bin(Z3_mk_add, a, b), self.ctx)
+
+ def __radd__(self, other):
+ """Create the Z3 expression `other + self`.
+
+ >>> x = Int('x')
+ >>> 10 + x
+ 10 + x
+ """
+ a, b = _coerce_exprs(self, other)
+ return ArithRef(_mk_bin(Z3_mk_add, b, a), self.ctx)
+
+ def __mul__(self, other):
+ """Create the Z3 expression `self * other`.
+
+ >>> x = Real('x')
+ >>> y = Real('y')
+ >>> x * y
+ x*y
+ >>> (x * y).sort()
+ Real
+ """
+ a, b = _coerce_exprs(self, other)
+ return ArithRef(_mk_bin(Z3_mk_mul, a, b), self.ctx)
+
+ def __rmul__(self, other):
+ """Create the Z3 expression `other * self`.
+
+ >>> x = Real('x')
+ >>> 10 * x
+ 10*x
+ """
+ a, b = _coerce_exprs(self, other)
+ return ArithRef(_mk_bin(Z3_mk_mul, b, a), self.ctx)
+
+ def __sub__(self, other):
+ """Create the Z3 expression `self - other`.
+
+ >>> x = Int('x')
+ >>> y = Int('y')
+ >>> x - y
+ x - y
+ >>> (x - y).sort()
+ Int
+ """
+ a, b = _coerce_exprs(self, other)
+ return ArithRef(_mk_bin(Z3_mk_sub, a, b), self.ctx)
+
+ def __rsub__(self, other):
+ """Create the Z3 expression `other - self`.
+
+ >>> x = Int('x')
+ >>> 10 - x
+ 10 - x
+ """
+ a, b = _coerce_exprs(self, other)
+ return ArithRef(_mk_bin(Z3_mk_sub, b, a), self.ctx)
+
+ def __pow__(self, other):
+ """Create the Z3 expression `self**other` (** is the power operator).
+
+ >>> x = Real('x')
+ >>> x**3
+ x**3
+ >>> (x**3).sort()
+ Real
+ >>> simplify(IntVal(2)**8)
+ 256
+ """
+ a, b = _coerce_exprs(self, other)
+ return ArithRef(Z3_mk_power(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __rpow__(self, other):
+ """Create the Z3 expression `other**self` (** is the power operator).
+
+ >>> x = Real('x')
+ >>> 2**x
+ 2**x
+ >>> (2**x).sort()
+ Real
+ >>> simplify(2**IntVal(8))
+ 256
+ """
+ a, b = _coerce_exprs(self, other)
+ return ArithRef(Z3_mk_power(self.ctx_ref(), b.as_ast(), a.as_ast()), self.ctx)
+
+ def __div__(self, other):
+ """Create the Z3 expression `other/self`.
+
+ >>> x = Int('x')
+ >>> y = Int('y')
+ >>> x/y
+ x/y
+ >>> (x/y).sort()
+ Int
+ >>> (x/y).sexpr()
+ '(div x y)'
+ >>> x = Real('x')
+ >>> y = Real('y')
+ >>> x/y
+ x/y
+ >>> (x/y).sort()
+ Real
+ >>> (x/y).sexpr()
+ '(/ x y)'
+ """
+ a, b = _coerce_exprs(self, other)
+ return ArithRef(Z3_mk_div(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __truediv__(self, other):
+ """Create the Z3 expression `other/self`."""
+ return self.__div__(other)
+
+ def __rdiv__(self, other):
+ """Create the Z3 expression `other/self`.
+
+ >>> x = Int('x')
+ >>> 10/x
+ 10/x
+ >>> (10/x).sexpr()
+ '(div 10 x)'
+ >>> x = Real('x')
+ >>> 10/x
+ 10/x
+ >>> (10/x).sexpr()
+ '(/ 10.0 x)'
+ """
+ a, b = _coerce_exprs(self, other)
+ return ArithRef(Z3_mk_div(self.ctx_ref(), b.as_ast(), a.as_ast()), self.ctx)
+
+ def __rtruediv__(self, other):
+ """Create the Z3 expression `other/self`."""
+ return self.__rdiv__(other)
+
+ def __mod__(self, other):
+ """Create the Z3 expression `other%self`.
+
+ >>> x = Int('x')
+ >>> y = Int('y')
+ >>> x % y
+ x%y
+ >>> simplify(IntVal(10) % IntVal(3))
+ 1
+ """
+ a, b = _coerce_exprs(self, other)
+ if __debug__:
+ _z3_assert(a.is_int(), "Z3 integer expression expected")
+ return ArithRef(Z3_mk_mod(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __rmod__(self, other):
+ """Create the Z3 expression `other%self`.
+
+ >>> x = Int('x')
+ >>> 10 % x
+ 10%x
+ """
+ a, b = _coerce_exprs(self, other)
+ if __debug__:
+ _z3_assert(a.is_int(), "Z3 integer expression expected")
+ return ArithRef(Z3_mk_mod(self.ctx_ref(), b.as_ast(), a.as_ast()), self.ctx)
+
+ def __neg__(self):
+ """Return an expression representing `-self`.
+
+ >>> x = Int('x')
+ >>> -x
+ -x
+ >>> simplify(-(-x))
+ x
+ """
+ return ArithRef(Z3_mk_unary_minus(self.ctx_ref(), self.as_ast()), self.ctx)
+
+ def __pos__(self):
+ """Return `self`.
+
+ >>> x = Int('x')
+ >>> +x
+ x
+ """
+ return self
+
+ def __le__(self, other):
+ """Create the Z3 expression `other <= self`.
+
+ >>> x, y = Ints('x y')
+ >>> x <= y
+ x <= y
+ >>> y = Real('y')
+ >>> x <= y
+ ToReal(x) <= y
+ """
+ a, b = _coerce_exprs(self, other)
+ return BoolRef(Z3_mk_le(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __lt__(self, other):
+ """Create the Z3 expression `other < self`.
+
+ >>> x, y = Ints('x y')
+ >>> x < y
+ x < y
+ >>> y = Real('y')
+ >>> x < y
+ ToReal(x) < y
+ """
+ a, b = _coerce_exprs(self, other)
+ return BoolRef(Z3_mk_lt(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __gt__(self, other):
+ """Create the Z3 expression `other > self`.
+
+ >>> x, y = Ints('x y')
+ >>> x > y
+ x > y
+ >>> y = Real('y')
+ >>> x > y
+ ToReal(x) > y
+ """
+ a, b = _coerce_exprs(self, other)
+ return BoolRef(Z3_mk_gt(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __ge__(self, other):
+ """Create the Z3 expression `other >= self`.
+
+ >>> x, y = Ints('x y')
+ >>> x >= y
+ x >= y
+ >>> y = Real('y')
+ >>> x >= y
+ ToReal(x) >= y
+ """
+ a, b = _coerce_exprs(self, other)
+ return BoolRef(Z3_mk_ge(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+def is_arith(a):
+ """Return `True` if `a` is an arithmetical expression.
+
+ >>> x = Int('x')
+ >>> is_arith(x)
+ True
+ >>> is_arith(x + 1)
+ True
+ >>> is_arith(1)
+ False
+ >>> is_arith(IntVal(1))
+ True
+ >>> y = Real('y')
+ >>> is_arith(y)
+ True
+ >>> is_arith(y + 1)
+ True
+ """
+ return isinstance(a, ArithRef)
+
+def is_int(a):
+ """Return `True` if `a` is an integer expression.
+
+ >>> x = Int('x')
+ >>> is_int(x + 1)
+ True
+ >>> is_int(1)
+ False
+ >>> is_int(IntVal(1))
+ True
+ >>> y = Real('y')
+ >>> is_int(y)
+ False
+ >>> is_int(y + 1)
+ False
+ """
+ return is_arith(a) and a.is_int()
+
+def is_real(a):
+ """Return `True` if `a` is a real expression.
+
+ >>> x = Int('x')
+ >>> is_real(x + 1)
+ False
+ >>> y = Real('y')
+ >>> is_real(y)
+ True
+ >>> is_real(y + 1)
+ True
+ >>> is_real(1)
+ False
+ >>> is_real(RealVal(1))
+ True
+ """
+ return is_arith(a) and a.is_real()
+
+def _is_numeral(ctx, a):
+ return Z3_is_numeral_ast(ctx.ref(), a)
+
+def _is_algebraic(ctx, a):
+ return Z3_is_algebraic_number(ctx.ref(), a)
+
+def is_int_value(a):
+ """Return `True` if `a` is an integer value of sort Int.
+
+ >>> is_int_value(IntVal(1))
+ True
+ >>> is_int_value(1)
+ False
+ >>> is_int_value(Int('x'))
+ False
+ >>> n = Int('x') + 1
+ >>> n
+ x + 1
+ >>> n.arg(1)
+ 1
+ >>> is_int_value(n.arg(1))
+ True
+ >>> is_int_value(RealVal("1/3"))
+ False
+ >>> is_int_value(RealVal(1))
+ False
+ """
+ return is_arith(a) and a.is_int() and _is_numeral(a.ctx, a.as_ast())
+
+def is_rational_value(a):
+ """Return `True` if `a` is rational value of sort Real.
+
+ >>> is_rational_value(RealVal(1))
+ True
+ >>> is_rational_value(RealVal("3/5"))
+ True
+ >>> is_rational_value(IntVal(1))
+ False
+ >>> is_rational_value(1)
+ False
+ >>> n = Real('x') + 1
+ >>> n.arg(1)
+ 1
+ >>> is_rational_value(n.arg(1))
+ True
+ >>> is_rational_value(Real('x'))
+ False
+ """
+ return is_arith(a) and a.is_real() and _is_numeral(a.ctx, a.as_ast())
+
+def is_algebraic_value(a):
+ """Return `True` if `a` is an algerbraic value of sort Real.
+
+ >>> is_algebraic_value(RealVal("3/5"))
+ False
+ >>> n = simplify(Sqrt(2))
+ >>> n
+ 1.4142135623?
+ >>> is_algebraic_value(n)
+ True
+ """
+ return is_arith(a) and a.is_real() and _is_algebraic(a.ctx, a.as_ast())
+
+def is_add(a):
+ """Return `True` if `a` is an expression of the form b + c.
+
+ >>> x, y = Ints('x y')
+ >>> is_add(x + y)
+ True
+ >>> is_add(x - y)
+ False
+ """
+ return is_app_of(a, Z3_OP_ADD)
+
+def is_mul(a):
+ """Return `True` if `a` is an expression of the form b * c.
+
+ >>> x, y = Ints('x y')
+ >>> is_mul(x * y)
+ True
+ >>> is_mul(x - y)
+ False
+ """
+ return is_app_of(a, Z3_OP_MUL)
+
+def is_sub(a):
+ """Return `True` if `a` is an expression of the form b - c.
+
+ >>> x, y = Ints('x y')
+ >>> is_sub(x - y)
+ True
+ >>> is_sub(x + y)
+ False
+ """
+ return is_app_of(a, Z3_OP_SUB)
+
+def is_div(a):
+ """Return `True` if `a` is an expression of the form b / c.
+
+ >>> x, y = Reals('x y')
+ >>> is_div(x / y)
+ True
+ >>> is_div(x + y)
+ False
+ >>> x, y = Ints('x y')
+ >>> is_div(x / y)
+ False
+ >>> is_idiv(x / y)
+ True
+ """
+ return is_app_of(a, Z3_OP_DIV)
+
+def is_idiv(a):
+ """Return `True` if `a` is an expression of the form b div c.
+
+ >>> x, y = Ints('x y')
+ >>> is_idiv(x / y)
+ True
+ >>> is_idiv(x + y)
+ False
+ """
+ return is_app_of(a, Z3_OP_IDIV)
+
+def is_mod(a):
+ """Return `True` if `a` is an expression of the form b % c.
+
+ >>> x, y = Ints('x y')
+ >>> is_mod(x % y)
+ True
+ >>> is_mod(x + y)
+ False
+ """
+ return is_app_of(a, Z3_OP_MOD)
+
+def is_le(a):
+ """Return `True` if `a` is an expression of the form b <= c.
+
+ >>> x, y = Ints('x y')
+ >>> is_le(x <= y)
+ True
+ >>> is_le(x < y)
+ False
+ """
+ return is_app_of(a, Z3_OP_LE)
+
+def is_lt(a):
+ """Return `True` if `a` is an expression of the form b < c.
+
+ >>> x, y = Ints('x y')
+ >>> is_lt(x < y)
+ True
+ >>> is_lt(x == y)
+ False
+ """
+ return is_app_of(a, Z3_OP_LT)
+
+def is_ge(a):
+ """Return `True` if `a` is an expression of the form b >= c.
+
+ >>> x, y = Ints('x y')
+ >>> is_ge(x >= y)
+ True
+ >>> is_ge(x == y)
+ False
+ """
+ return is_app_of(a, Z3_OP_GE)
+
+def is_gt(a):
+ """Return `True` if `a` is an expression of the form b > c.
+
+ >>> x, y = Ints('x y')
+ >>> is_gt(x > y)
+ True
+ >>> is_gt(x == y)
+ False
+ """
+ return is_app_of(a, Z3_OP_GT)
+
+def is_is_int(a):
+ """Return `True` if `a` is an expression of the form IsInt(b).
+
+ >>> x = Real('x')
+ >>> is_is_int(IsInt(x))
+ True
+ >>> is_is_int(x)
+ False
+ """
+ return is_app_of(a, Z3_OP_IS_INT)
+
+def is_to_real(a):
+ """Return `True` if `a` is an expression of the form ToReal(b).
+
+ >>> x = Int('x')
+ >>> n = ToReal(x)
+ >>> n
+ ToReal(x)
+ >>> is_to_real(n)
+ True
+ >>> is_to_real(x)
+ False
+ """
+ return is_app_of(a, Z3_OP_TO_REAL)
+
+def is_to_int(a):
+ """Return `True` if `a` is an expression of the form ToInt(b).
+
+ >>> x = Real('x')
+ >>> n = ToInt(x)
+ >>> n
+ ToInt(x)
+ >>> is_to_int(n)
+ True
+ >>> is_to_int(x)
+ False
+ """
+ return is_app_of(a, Z3_OP_TO_INT)
+
+class IntNumRef(ArithRef):
+ """Integer values."""
+
+ def as_long(self):
+ """Return a Z3 integer numeral as a Python long (bignum) numeral.
+
+ >>> v = IntVal(1)
+ >>> v + 1
+ 1 + 1
+ >>> v.as_long() + 1
+ 2
+ """
+ if __debug__:
+ _z3_assert(self.is_int(), "Integer value expected")
+ return int(self.as_string())
+
+ def as_string(self):
+ """Return a Z3 integer numeral as a Python string.
+ >>> v = IntVal(100)
+ >>> v.as_string()
+ '100'
+ """
+ return Z3_get_numeral_string(self.ctx_ref(), self.as_ast())
+
+class RatNumRef(ArithRef):
+ """Rational values."""
+
+ def numerator(self):
+ """ Return the numerator of a Z3 rational numeral.
+
+ >>> is_rational_value(RealVal("3/5"))
+ True
+ >>> n = RealVal("3/5")
+ >>> n.numerator()
+ 3
+ >>> is_rational_value(Q(3,5))
+ True
+ >>> Q(3,5).numerator()
+ 3
+ """
+ return IntNumRef(Z3_get_numerator(self.ctx_ref(), self.as_ast()), self.ctx)
+
+ def denominator(self):
+ """ Return the denominator of a Z3 rational numeral.
+
+ >>> is_rational_value(Q(3,5))
+ True
+ >>> n = Q(3,5)
+ >>> n.denominator()
+ 5
+ """
+ return IntNumRef(Z3_get_denominator(self.ctx_ref(), self.as_ast()), self.ctx)
+
+ def numerator_as_long(self):
+ """ Return the numerator as a Python long.
+
+ >>> v = RealVal(10000000000)
+ >>> v
+ 10000000000
+ >>> v + 1
+ 10000000000 + 1
+ >>> v.numerator_as_long() + 1 == 10000000001
+ True
+ """
+ return self.numerator().as_long()
+
+ def denominator_as_long(self):
+ """ Return the denominator as a Python long.
+
+ >>> v = RealVal("1/3")
+ >>> v
+ 1/3
+ >>> v.denominator_as_long()
+ 3
+ """
+ return self.denominator().as_long()
+
+ def as_decimal(self, prec):
+ """ Return a Z3 rational value as a string in decimal notation using at most `prec` decimal places.
+
+ >>> v = RealVal("1/5")
+ >>> v.as_decimal(3)
+ '0.2'
+ >>> v = RealVal("1/3")
+ >>> v.as_decimal(3)
+ '0.333?'
+ """
+ return Z3_get_numeral_decimal_string(self.ctx_ref(), self.as_ast(), prec)
+
+ def as_string(self):
+ """Return a Z3 rational numeral as a Python string.
+
+ >>> v = Q(3,6)
+ >>> v.as_string()
+ '1/2'
+ """
+ return Z3_get_numeral_string(self.ctx_ref(), self.as_ast())
+
+ def as_fraction(self):
+ """Return a Z3 rational as a Python Fraction object.
+
+ >>> v = RealVal("1/5")
+ >>> v.as_fraction()
+ Fraction(1, 5)
+ """
+ return Fraction(self.numerator_as_long(), self.denominator_as_long())
+
+class AlgebraicNumRef(ArithRef):
+ """Algebraic irrational values."""
+
+ def approx(self, precision=10):
+ """Return a Z3 rational number that approximates the algebraic number `self`.
+ The result `r` is such that |r - self| <= 1/10^precision
+
+ >>> x = simplify(Sqrt(2))
+ >>> x.approx(20)
+ 6838717160008073720548335/4835703278458516698824704
+ >>> x.approx(5)
+ 2965821/2097152
+ """
+ return RatNumRef(Z3_get_algebraic_number_upper(self.ctx_ref(), self.as_ast(), precision), self.ctx)
+ def as_decimal(self, prec):
+ """Return a string representation of the algebraic number `self` in decimal notation using `prec` decimal places
+
+ >>> x = simplify(Sqrt(2))
+ >>> x.as_decimal(10)
+ '1.4142135623?'
+ >>> x.as_decimal(20)
+ '1.41421356237309504880?'
+ """
+ return Z3_get_numeral_decimal_string(self.ctx_ref(), self.as_ast(), prec)
+
+def _py2expr(a, ctx=None):
+ if isinstance(a, bool):
+ return BoolVal(a, ctx)
+ if _is_int(a):
+ return IntVal(a, ctx)
+ if isinstance(a, float):
+ return RealVal(a, ctx)
+ if __debug__:
+ _z3_assert(False, "Python bool, int, long or float expected")
+
+def IntSort(ctx=None):
+ """Return the integer sort in the given context. If `ctx=None`, then the global context is used.
+
+ >>> IntSort()
+ Int
+ >>> x = Const('x', IntSort())
+ >>> is_int(x)
+ True
+ >>> x.sort() == IntSort()
+ True
+ >>> x.sort() == BoolSort()
+ False
+ """
+ ctx = _get_ctx(ctx)
+ return ArithSortRef(Z3_mk_int_sort(ctx.ref()), ctx)
+
+def RealSort(ctx=None):
+ """Return the real sort in the given context. If `ctx=None`, then the global context is used.
+
+ >>> RealSort()
+ Real
+ >>> x = Const('x', RealSort())
+ >>> is_real(x)
+ True
+ >>> is_int(x)
+ False
+ >>> x.sort() == RealSort()
+ True
+ """
+ ctx = _get_ctx(ctx)
+ return ArithSortRef(Z3_mk_real_sort(ctx.ref()), ctx)
+
+def _to_int_str(val):
+ if isinstance(val, float):
+ return str(int(val))
+ elif isinstance(val, bool):
+ if val:
+ return "1"
+ else:
+ return "0"
+ elif _is_int(val):
+ return str(val)
+ elif isinstance(val, str):
+ return val
+ if __debug__:
+ _z3_assert(False, "Python value cannot be used as a Z3 integer")
+
+def IntVal(val, ctx=None):
+ """Return a Z3 integer value. If `ctx=None`, then the global context is used.
+
+ >>> IntVal(1)
+ 1
+ >>> IntVal("100")
+ 100
+ """
+ ctx = _get_ctx(ctx)
+ return IntNumRef(Z3_mk_numeral(ctx.ref(), _to_int_str(val), IntSort(ctx).ast), ctx)
+
+def RealVal(val, ctx=None):
+ """Return a Z3 real value.
+
+ `val` may be a Python int, long, float or string representing a number in decimal or rational notation.
+ If `ctx=None`, then the global context is used.
+
+ >>> RealVal(1)
+ 1
+ >>> RealVal(1).sort()
+ Real
+ >>> RealVal("3/5")
+ 3/5
+ >>> RealVal("1.5")
+ 3/2
+ """
+ ctx = _get_ctx(ctx)
+ return RatNumRef(Z3_mk_numeral(ctx.ref(), str(val), RealSort(ctx).ast), ctx)
+
+def RatVal(a, b, ctx=None):
+ """Return a Z3 rational a/b.
+
+ If `ctx=None`, then the global context is used.
+
+ >>> RatVal(3,5)
+ 3/5
+ >>> RatVal(3,5).sort()
+ Real
+ """
+ if __debug__:
+ _z3_assert(_is_int(a) or isinstance(a, str), "First argument cannot be converted into an integer")
+ _z3_assert(_is_int(b) or isinstance(b, str), "Second argument cannot be converted into an integer")
+ return simplify(RealVal(a, ctx)/RealVal(b, ctx))
+
+def Q(a, b, ctx=None):
+ """Return a Z3 rational a/b.
+
+ If `ctx=None`, then the global context is used.
+
+ >>> Q(3,5)
+ 3/5
+ >>> Q(3,5).sort()
+ Real
+ """
+ return simplify(RatVal(a, b))
+
+def Int(name, ctx=None):
+ """Return an integer constant named `name`. If `ctx=None`, then the global context is used.
+
+ >>> x = Int('x')
+ >>> is_int(x)
+ True
+ >>> is_int(x + 1)
+ True
+ """
+ ctx = _get_ctx(ctx)
+ return ArithRef(Z3_mk_const(ctx.ref(), to_symbol(name, ctx), IntSort(ctx).ast), ctx)
+
+def Ints(names, ctx=None):
+ """Return a tuple of Integer constants.
+
+ >>> x, y, z = Ints('x y z')
+ >>> Sum(x, y, z)
+ x + y + z
+ """
+ ctx = _get_ctx(ctx)
+ if isinstance(names, str):
+ names = names.split(" ")
+ return [Int(name, ctx) for name in names]
+
+def IntVector(prefix, sz, ctx=None):
+ """Return a list of integer constants of size `sz`.
+
+ >>> X = IntVector('x', 3)
+ >>> X
+ [x__0, x__1, x__2]
+ >>> Sum(X)
+ x__0 + x__1 + x__2
+ """
+ return [ Int('%s__%s' % (prefix, i)) for i in range(sz) ]
+
+def FreshInt(prefix='x', ctx=None):
+ """Return a fresh integer constant in the given context using the given prefix.
+
+ >>> x = FreshInt()
+ >>> y = FreshInt()
+ >>> eq(x, y)
+ False
+ >>> x.sort()
+ Int
+ """
+ ctx = _get_ctx(ctx)
+ return ArithRef(Z3_mk_fresh_const(ctx.ref(), prefix, IntSort(ctx).ast), ctx)
+
+def Real(name, ctx=None):
+ """Return a real constant named `name`. If `ctx=None`, then the global context is used.
+
+ >>> x = Real('x')
+ >>> is_real(x)
+ True
+ >>> is_real(x + 1)
+ True
+ """
+ ctx = _get_ctx(ctx)
+ return ArithRef(Z3_mk_const(ctx.ref(), to_symbol(name, ctx), RealSort(ctx).ast), ctx)
+
+def Reals(names, ctx=None):
+ """Return a tuple of real constants.
+
+ >>> x, y, z = Reals('x y z')
+ >>> Sum(x, y, z)
+ x + y + z
+ >>> Sum(x, y, z).sort()
+ Real
+ """
+ ctx = _get_ctx(ctx)
+ if isinstance(names, str):
+ names = names.split(" ")
+ return [Real(name, ctx) for name in names]
+
+def RealVector(prefix, sz, ctx=None):
+ """Return a list of real constants of size `sz`.
+
+ >>> X = RealVector('x', 3)
+ >>> X
+ [x__0, x__1, x__2]
+ >>> Sum(X)
+ x__0 + x__1 + x__2
+ >>> Sum(X).sort()
+ Real
+ """
+ return [ Real('%s__%s' % (prefix, i)) for i in range(sz) ]
+
+def FreshReal(prefix='b', ctx=None):
+ """Return a fresh real constant in the given context using the given prefix.
+
+ >>> x = FreshReal()
+ >>> y = FreshReal()
+ >>> eq(x, y)
+ False
+ >>> x.sort()
+ Real
+ """
+ ctx = _get_ctx(ctx)
+ return ArithRef(Z3_mk_fresh_const(ctx.ref(), prefix, RealSort(ctx).ast), ctx)
+
+def ToReal(a):
+ """ Return the Z3 expression ToReal(a).
+
+ >>> x = Int('x')
+ >>> x.sort()
+ Int
+ >>> n = ToReal(x)
+ >>> n
+ ToReal(x)
+ >>> n.sort()
+ Real
+ """
+ if __debug__:
+ _z3_assert(a.is_int(), "Z3 integer expression expected.")
+ ctx = a.ctx
+ return ArithRef(Z3_mk_int2real(ctx.ref(), a.as_ast()), ctx)
+
+def ToInt(a):
+ """ Return the Z3 expression ToInt(a).
+
+ >>> x = Real('x')
+ >>> x.sort()
+ Real
+ >>> n = ToInt(x)
+ >>> n
+ ToInt(x)
+ >>> n.sort()
+ Int
+ """
+ if __debug__:
+ _z3_assert(a.is_real(), "Z3 real expression expected.")
+ ctx = a.ctx
+ return ArithRef(Z3_mk_real2int(ctx.ref(), a.as_ast()), ctx)
+
+def IsInt(a):
+ """ Return the Z3 predicate IsInt(a).
+
+ >>> x = Real('x')
+ >>> IsInt(x + "1/2")
+ IsInt(x + 1/2)
+ >>> solve(IsInt(x + "1/2"), x > 0, x < 1)
+ [x = 1/2]
+ >>> solve(IsInt(x + "1/2"), x > 0, x < 1, x != "1/2")
+ no solution
+ """
+ if __debug__:
+ _z3_assert(a.is_real(), "Z3 real expression expected.")
+ ctx = a.ctx
+ return BoolRef(Z3_mk_is_int(ctx.ref(), a.as_ast()), ctx)
+
+def Sqrt(a, ctx=None):
+ """ Return a Z3 expression which represents the square root of a.
+
+ >>> x = Real('x')
+ >>> Sqrt(x)
+ x**(1/2)
+ """
+ if not is_expr(a):
+ ctx = _get_ctx(ctx)
+ a = RealVal(a, ctx)
+ return a ** "1/2"
+
+def Cbrt(a, ctx=None):
+ """ Return a Z3 expression which represents the cubic root of a.
+
+ >>> x = Real('x')
+ >>> Cbrt(x)
+ x**(1/3)
+ """
+ if not is_expr(a):
+ ctx = _get_ctx(ctx)
+ a = RealVal(a, ctx)
+ return a ** "1/3"
+
+#########################################
+#
+# Bit-Vectors
+#
+#########################################
+
+class BitVecSortRef(SortRef):
+ """Bit-vector sort."""
+
+ def size(self):
+ """Return the size (number of bits) of the bit-vector sort `self`.
+
+ >>> b = BitVecSort(32)
+ >>> b.size()
+ 32
+ """
+ return int(Z3_get_bv_sort_size(self.ctx_ref(), self.ast))
+
+ def subsort(self, other):
+ return is_bv_sort(other) and self.size() < other.size()
+
+ def cast(self, val):
+ """Try to cast `val` as a Bit-Vector.
+
+ >>> b = BitVecSort(32)
+ >>> b.cast(10)
+ 10
+ >>> b.cast(10).sexpr()
+ '#x0000000a'
+ """
+ if is_expr(val):
+ if __debug__:
+ _z3_assert(self.ctx == val.ctx, "Context mismatch")
+ # Idea: use sign_extend if sort of val is a bitvector of smaller size
+ return val
+ else:
+ return BitVecVal(val, self)
+
+def is_bv_sort(s):
+ """Return True if `s` is a Z3 bit-vector sort.
+
+ >>> is_bv_sort(BitVecSort(32))
+ True
+ >>> is_bv_sort(IntSort())
+ False
+ """
+ return isinstance(s, BitVecSortRef)
+
+class BitVecRef(ExprRef):
+ """Bit-vector expressions."""
+
+ def sort(self):
+ """Return the sort of the bit-vector expression `self`.
+
+ >>> x = BitVec('x', 32)
+ >>> x.sort()
+ BitVec(32)
+ >>> x.sort() == BitVecSort(32)
+ True
+ """
+ return BitVecSortRef(Z3_get_sort(self.ctx_ref(), self.as_ast()), self.ctx)
+
+ def size(self):
+ """Return the number of bits of the bit-vector expression `self`.
+
+ >>> x = BitVec('x', 32)
+ >>> (x + 1).size()
+ 32
+ >>> Concat(x, x).size()
+ 64
+ """
+ return self.sort().size()
+
+ def __add__(self, other):
+ """Create the Z3 expression `self + other`.
+
+ >>> x = BitVec('x', 32)
+ >>> y = BitVec('y', 32)
+ >>> x + y
+ x + y
+ >>> (x + y).sort()
+ BitVec(32)
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvadd(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __radd__(self, other):
+ """Create the Z3 expression `other + self`.
+
+ >>> x = BitVec('x', 32)
+ >>> 10 + x
+ 10 + x
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvadd(self.ctx_ref(), b.as_ast(), a.as_ast()), self.ctx)
+
+ def __mul__(self, other):
+ """Create the Z3 expression `self * other`.
+
+ >>> x = BitVec('x', 32)
+ >>> y = BitVec('y', 32)
+ >>> x * y
+ x*y
+ >>> (x * y).sort()
+ BitVec(32)
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvmul(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __rmul__(self, other):
+ """Create the Z3 expression `other * self`.
+
+ >>> x = BitVec('x', 32)
+ >>> 10 * x
+ 10*x
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvmul(self.ctx_ref(), b.as_ast(), a.as_ast()), self.ctx)
+
+ def __sub__(self, other):
+ """Create the Z3 expression `self - other`.
+
+ >>> x = BitVec('x', 32)
+ >>> y = BitVec('y', 32)
+ >>> x - y
+ x - y
+ >>> (x - y).sort()
+ BitVec(32)
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvsub(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __rsub__(self, other):
+ """Create the Z3 expression `other - self`.
+
+ >>> x = BitVec('x', 32)
+ >>> 10 - x
+ 10 - x
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvsub(self.ctx_ref(), b.as_ast(), a.as_ast()), self.ctx)
+
+ def __or__(self, other):
+ """Create the Z3 expression bitwise-or `self | other`.
+
+ >>> x = BitVec('x', 32)
+ >>> y = BitVec('y', 32)
+ >>> x | y
+ x | y
+ >>> (x | y).sort()
+ BitVec(32)
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvor(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __ror__(self, other):
+ """Create the Z3 expression bitwise-or `other | self`.
+
+ >>> x = BitVec('x', 32)
+ >>> 10 | x
+ 10 | x
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvor(self.ctx_ref(), b.as_ast(), a.as_ast()), self.ctx)
+
+ def __and__(self, other):
+ """Create the Z3 expression bitwise-and `self & other`.
+
+ >>> x = BitVec('x', 32)
+ >>> y = BitVec('y', 32)
+ >>> x & y
+ x & y
+ >>> (x & y).sort()
+ BitVec(32)
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvand(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __rand__(self, other):
+ """Create the Z3 expression bitwise-or `other & self`.
+
+ >>> x = BitVec('x', 32)
+ >>> 10 & x
+ 10 & x
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvand(self.ctx_ref(), b.as_ast(), a.as_ast()), self.ctx)
+
+ def __xor__(self, other):
+ """Create the Z3 expression bitwise-xor `self ^ other`.
+
+ >>> x = BitVec('x', 32)
+ >>> y = BitVec('y', 32)
+ >>> x ^ y
+ x ^ y
+ >>> (x ^ y).sort()
+ BitVec(32)
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvxor(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __rxor__(self, other):
+ """Create the Z3 expression bitwise-xor `other ^ self`.
+
+ >>> x = BitVec('x', 32)
+ >>> 10 ^ x
+ 10 ^ x
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvxor(self.ctx_ref(), b.as_ast(), a.as_ast()), self.ctx)
+
+ def __pos__(self):
+ """Return `self`.
+
+ >>> x = BitVec('x', 32)
+ >>> +x
+ x
+ """
+ return self
+
+ def __neg__(self):
+ """Return an expression representing `-self`.
+
+ >>> x = BitVec('x', 32)
+ >>> -x
+ -x
+ >>> simplify(-(-x))
+ x
+ """
+ return BitVecRef(Z3_mk_bvneg(self.ctx_ref(), self.as_ast()), self.ctx)
+
+ def __invert__(self):
+ """Create the Z3 expression bitwise-not `~self`.
+
+ >>> x = BitVec('x', 32)
+ >>> ~x
+ ~x
+ >>> simplify(~(~x))
+ x
+ """
+ return BitVecRef(Z3_mk_bvnot(self.ctx_ref(), self.as_ast()), self.ctx)
+
+ def __div__(self, other):
+ """Create the Z3 expression (signed) division `self / other`.
+
+ Use the function UDiv() for unsigned division.
+
+ >>> x = BitVec('x', 32)
+ >>> y = BitVec('y', 32)
+ >>> x / y
+ x/y
+ >>> (x / y).sort()
+ BitVec(32)
+ >>> (x / y).sexpr()
+ '(bvsdiv x y)'
+ >>> UDiv(x, y).sexpr()
+ '(bvudiv x y)'
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvsdiv(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __truediv__(self, other):
+ """Create the Z3 expression (signed) division `self / other`."""
+ return self.__div__(other)
+
+ def __rdiv__(self, other):
+ """Create the Z3 expression (signed) division `other / self`.
+
+ Use the function UDiv() for unsigned division.
+
+ >>> x = BitVec('x', 32)
+ >>> 10 / x
+ 10/x
+ >>> (10 / x).sexpr()
+ '(bvsdiv #x0000000a x)'
+ >>> UDiv(10, x).sexpr()
+ '(bvudiv #x0000000a x)'
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvsdiv(self.ctx_ref(), b.as_ast(), a.as_ast()), self.ctx)
+
+ def __rtruediv__(self, other):
+ """Create the Z3 expression (signed) division `other / self`."""
+ return self.__rdiv__(other)
+
+ def __mod__(self, other):
+ """Create the Z3 expression (signed) mod `self % other`.
+
+ Use the function URem() for unsigned remainder, and SRem() for signed remainder.
+
+ >>> x = BitVec('x', 32)
+ >>> y = BitVec('y', 32)
+ >>> x % y
+ x%y
+ >>> (x % y).sort()
+ BitVec(32)
+ >>> (x % y).sexpr()
+ '(bvsmod x y)'
+ >>> URem(x, y).sexpr()
+ '(bvurem x y)'
+ >>> SRem(x, y).sexpr()
+ '(bvsrem x y)'
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvsmod(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __rmod__(self, other):
+ """Create the Z3 expression (signed) mod `other % self`.
+
+ Use the function URem() for unsigned remainder, and SRem() for signed remainder.
+
+ >>> x = BitVec('x', 32)
+ >>> 10 % x
+ 10%x
+ >>> (10 % x).sexpr()
+ '(bvsmod #x0000000a x)'
+ >>> URem(10, x).sexpr()
+ '(bvurem #x0000000a x)'
+ >>> SRem(10, x).sexpr()
+ '(bvsrem #x0000000a x)'
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvsmod(self.ctx_ref(), b.as_ast(), a.as_ast()), self.ctx)
+
+ def __le__(self, other):
+ """Create the Z3 expression (signed) `other <= self`.
+
+ Use the function ULE() for unsigned less than or equal to.
+
+ >>> x, y = BitVecs('x y', 32)
+ >>> x <= y
+ x <= y
+ >>> (x <= y).sexpr()
+ '(bvsle x y)'
+ >>> ULE(x, y).sexpr()
+ '(bvule x y)'
+ """
+ a, b = _coerce_exprs(self, other)
+ return BoolRef(Z3_mk_bvsle(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __lt__(self, other):
+ """Create the Z3 expression (signed) `other < self`.
+
+ Use the function ULT() for unsigned less than.
+
+ >>> x, y = BitVecs('x y', 32)
+ >>> x < y
+ x < y
+ >>> (x < y).sexpr()
+ '(bvslt x y)'
+ >>> ULT(x, y).sexpr()
+ '(bvult x y)'
+ """
+ a, b = _coerce_exprs(self, other)
+ return BoolRef(Z3_mk_bvslt(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __gt__(self, other):
+ """Create the Z3 expression (signed) `other > self`.
+
+ Use the function UGT() for unsigned greater than.
+
+ >>> x, y = BitVecs('x y', 32)
+ >>> x > y
+ x > y
+ >>> (x > y).sexpr()
+ '(bvsgt x y)'
+ >>> UGT(x, y).sexpr()
+ '(bvugt x y)'
+ """
+ a, b = _coerce_exprs(self, other)
+ return BoolRef(Z3_mk_bvsgt(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __ge__(self, other):
+ """Create the Z3 expression (signed) `other >= self`.
+
+ Use the function UGE() for unsigned greater than or equal to.
+
+ >>> x, y = BitVecs('x y', 32)
+ >>> x >= y
+ x >= y
+ >>> (x >= y).sexpr()
+ '(bvsge x y)'
+ >>> UGE(x, y).sexpr()
+ '(bvuge x y)'
+ """
+ a, b = _coerce_exprs(self, other)
+ return BoolRef(Z3_mk_bvsge(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __rshift__(self, other):
+ """Create the Z3 expression (arithmetical) right shift `self >> other`
+
+ Use the function LShR() for the right logical shift
+
+ >>> x, y = BitVecs('x y', 32)
+ >>> x >> y
+ x >> y
+ >>> (x >> y).sexpr()
+ '(bvashr x y)'
+ >>> LShR(x, y).sexpr()
+ '(bvlshr x y)'
+ >>> BitVecVal(4, 3)
+ 4
+ >>> BitVecVal(4, 3).as_signed_long()
+ -4
+ >>> simplify(BitVecVal(4, 3) >> 1).as_signed_long()
+ -2
+ >>> simplify(BitVecVal(4, 3) >> 1)
+ 6
+ >>> simplify(LShR(BitVecVal(4, 3), 1))
+ 2
+ >>> simplify(BitVecVal(2, 3) >> 1)
+ 1
+ >>> simplify(LShR(BitVecVal(2, 3), 1))
+ 1
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvashr(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __lshift__(self, other):
+ """Create the Z3 expression left shift `self << other`
+
+ >>> x, y = BitVecs('x y', 32)
+ >>> x << y
+ x << y
+ >>> (x << y).sexpr()
+ '(bvshl x y)'
+ >>> simplify(BitVecVal(2, 3) << 1)
+ 4
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvshl(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __rrshift__(self, other):
+ """Create the Z3 expression (arithmetical) right shift `other` >> `self`.
+
+ Use the function LShR() for the right logical shift
+
+ >>> x = BitVec('x', 32)
+ >>> 10 >> x
+ 10 >> x
+ >>> (10 >> x).sexpr()
+ '(bvashr #x0000000a x)'
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvashr(self.ctx_ref(), b.as_ast(), a.as_ast()), self.ctx)
+
+ def __rlshift__(self, other):
+ """Create the Z3 expression left shift `other << self`.
+
+ Use the function LShR() for the right logical shift
+
+ >>> x = BitVec('x', 32)
+ >>> 10 << x
+ 10 << x
+ >>> (10 << x).sexpr()
+ '(bvshl #x0000000a x)'
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvshl(self.ctx_ref(), b.as_ast(), a.as_ast()), self.ctx)
+
+class BitVecNumRef(BitVecRef):
+ """Bit-vector values."""
+
+ def as_long(self):
+ """Return a Z3 bit-vector numeral as a Python long (bignum) numeral.
+
+ >>> v = BitVecVal(0xbadc0de, 32)
+ >>> v
+ 195936478
+ >>> print("0x%.8x" % v.as_long())
+ 0x0badc0de
+ """
+ return int(self.as_string())
+
+ def as_signed_long(self):
+ """Return a Z3 bit-vector numeral as a Python long (bignum) numeral. The most significant bit is assumed to be the sign.
+
+ >>> BitVecVal(4, 3).as_signed_long()
+ -4
+ >>> BitVecVal(7, 3).as_signed_long()
+ -1
+ >>> BitVecVal(3, 3).as_signed_long()
+ 3
+ >>> BitVecVal(2**32 - 1, 32).as_signed_long()
+ -1
+ >>> BitVecVal(2**64 - 1, 64).as_signed_long()
+ -1
+ """
+ sz = self.size()
+ val = self.as_long()
+ if val >= 2**(sz - 1):
+ val = val - 2**sz
+ if val < -2**(sz - 1):
+ val = val + 2**sz
+ return int(val)
+
+ def as_string(self):
+ return Z3_get_numeral_string(self.ctx_ref(), self.as_ast())
+
+def is_bv(a):
+ """Return `True` if `a` is a Z3 bit-vector expression.
+
+ >>> b = BitVec('b', 32)
+ >>> is_bv(b)
+ True
+ >>> is_bv(b + 10)
+ True
+ >>> is_bv(Int('x'))
+ False
+ """
+ return isinstance(a, BitVecRef)
+
+def is_bv_value(a):
+ """Return `True` if `a` is a Z3 bit-vector numeral value.
+
+ >>> b = BitVec('b', 32)
+ >>> is_bv_value(b)
+ False
+ >>> b = BitVecVal(10, 32)
+ >>> b
+ 10
+ >>> is_bv_value(b)
+ True
+ """
+ return is_bv(a) and _is_numeral(a.ctx, a.as_ast())
+
+def BV2Int(a, is_signed=False):
+ """Return the Z3 expression BV2Int(a).
+
+ >>> b = BitVec('b', 3)
+ >>> BV2Int(b).sort()
+ Int
+ >>> x = Int('x')
+ >>> x > BV2Int(b)
+ x > BV2Int(b)
+ >>> x > BV2Int(b, is_signed=False)
+ x > BV2Int(b)
+ >>> x > BV2Int(b, is_signed=True)
+ x > If(b < 0, BV2Int(b) - 8, BV2Int(b))
+ >>> solve(x > BV2Int(b), b == 1, x < 3)
+ [b = 1, x = 2]
+ """
+ if __debug__:
+ _z3_assert(is_bv(a), "Z3 bit-vector expression expected")
+ ctx = a.ctx
+ ## investigate problem with bv2int
+ return ArithRef(Z3_mk_bv2int(ctx.ref(), a.as_ast(), is_signed), ctx)
+
+def BitVecSort(sz, ctx=None):
+ """Return a Z3 bit-vector sort of the given size. If `ctx=None`, then the global context is used.
+
+ >>> Byte = BitVecSort(8)
+ >>> Word = BitVecSort(16)
+ >>> Byte
+ BitVec(8)
+ >>> x = Const('x', Byte)
+ >>> eq(x, BitVec('x', 8))
+ True
+ """
+ ctx = _get_ctx(ctx)
+ return BitVecSortRef(Z3_mk_bv_sort(ctx.ref(), sz), ctx)
+
+def BitVecVal(val, bv, ctx=None):
+ """Return a bit-vector value with the given number of bits. If `ctx=None`, then the global context is used.
+
+ >>> v = BitVecVal(10, 32)
+ >>> v
+ 10
+ >>> print("0x%.8x" % v.as_long())
+ 0x0000000a
+ """
+ if is_bv_sort(bv):
+ ctx = bv.ctx
+ return BitVecNumRef(Z3_mk_numeral(ctx.ref(), _to_int_str(val), bv.ast), ctx)
+ else:
+ ctx = _get_ctx(ctx)
+ return BitVecNumRef(Z3_mk_numeral(ctx.ref(), _to_int_str(val), BitVecSort(bv, ctx).ast), ctx)
+
+def BitVec(name, bv, ctx=None):
+ """Return a bit-vector constant named `name`. `bv` may be the number of bits of a bit-vector sort.
+ If `ctx=None`, then the global context is used.
+
+ >>> x = BitVec('x', 16)
+ >>> is_bv(x)
+ True
+ >>> x.size()
+ 16
+ >>> x.sort()
+ BitVec(16)
+ >>> word = BitVecSort(16)
+ >>> x2 = BitVec('x', word)
+ >>> eq(x, x2)
+ True
+ """
+ if isinstance(bv, BitVecSortRef):
+ ctx = bv.ctx
+ else:
+ ctx = _get_ctx(ctx)
+ bv = BitVecSort(bv, ctx)
+ return BitVecRef(Z3_mk_const(ctx.ref(), to_symbol(name, ctx), bv.ast), ctx)
+
+def BitVecs(names, bv, ctx=None):
+ """Return a tuple of bit-vector constants of size bv.
+
+ >>> x, y, z = BitVecs('x y z', 16)
+ >>> x.size()
+ 16
+ >>> x.sort()
+ BitVec(16)
+ >>> Sum(x, y, z)
+ 0 + x + y + z
+ >>> Product(x, y, z)
+ 1*x*y*z
+ >>> simplify(Product(x, y, z))
+ x*y*z
+ """
+ ctx = _get_ctx(ctx)
+ if isinstance(names, str):
+ names = names.split(" ")
+ return [BitVec(name, bv, ctx) for name in names]
+
+def Concat(*args):
+ """Create a Z3 bit-vector concatenation expression.
+
+ >>> v = BitVecVal(1, 4)
+ >>> Concat(v, v+1, v)
+ Concat(Concat(1, 1 + 1), 1)
+ >>> simplify(Concat(v, v+1, v))
+ 289
+ >>> print("%.3x" % simplify(Concat(v, v+1, v)).as_long())
+ 121
+ """
+ args = _get_args(args)
+ sz = len(args)
+ if __debug__:
+ _z3_assert(sz >= 2, "At least two arguments expected.")
+
+ ctx = None
+ for a in args:
+ if is_expr(a):
+ ctx = a.ctx
+ break
+ if is_seq(args[0]) or isinstance(args[0], str):
+ args = [_coerce_seq(s, ctx) for s in args]
+ if __debug__:
+ _z3_assert(all([is_seq(a) for a in args]), "All arguments must be sequence expressions.")
+ v = (Ast * sz)()
+ for i in range(sz):
+ v[i] = args[i].as_ast()
+ return SeqRef(Z3_mk_seq_concat(ctx.ref(), sz, v), ctx)
+
+ if is_re(args[0]):
+ if __debug__:
+ _z3_assert(all([is_re(a) for a in args]), "All arguments must be regular expressions.")
+ v = (Ast * sz)()
+ for i in range(sz):
+ v[i] = args[i].as_ast()
+ return ReRef(Z3_mk_re_concat(ctx.ref(), sz, v), ctx)
+
+ if __debug__:
+ _z3_assert(all([is_bv(a) for a in args]), "All arguments must be Z3 bit-vector expressions.")
+ r = args[0]
+ for i in range(sz - 1):
+ r = BitVecRef(Z3_mk_concat(ctx.ref(), r.as_ast(), args[i+1].as_ast()), ctx)
+ return r
+
+def Extract(high, low, a):
+ """Create a Z3 bit-vector extraction expression, or create a string extraction expression.
+
+ >>> x = BitVec('x', 8)
+ >>> Extract(6, 2, x)
+ Extract(6, 2, x)
+ >>> Extract(6, 2, x).sort()
+ BitVec(5)
+ >>> simplify(Extract(StringVal("abcd"),2,1))
+ "c"
+ """
+ if isinstance(high, str):
+ high = StringVal(high)
+ if is_seq(high):
+ s = high
+ offset = _py2expr(low, high.ctx)
+ length = _py2expr(a, high.ctx)
+
+ if __debug__:
+ _z3_assert(is_int(offset) and is_int(length), "Second and third arguments must be integers")
+ return SeqRef(Z3_mk_seq_extract(s.ctx_ref(), s.as_ast(), offset.as_ast(), length.as_ast()), s.ctx)
+ if __debug__:
+ _z3_assert(low <= high, "First argument must be greater than or equal to second argument")
+ _z3_assert(_is_int(high) and high >= 0 and _is_int(low) and low >= 0, "First and second arguments must be non negative integers")
+ _z3_assert(is_bv(a), "Third argument must be a Z3 Bitvector expression")
+ return BitVecRef(Z3_mk_extract(a.ctx_ref(), high, low, a.as_ast()), a.ctx)
+
+def _check_bv_args(a, b):
+ if __debug__:
+ _z3_assert(is_bv(a) or is_bv(b), "At least one of the arguments must be a Z3 bit-vector expression")
+
+def ULE(a, b):
+ """Create the Z3 expression (unsigned) `other <= self`.
+
+ Use the operator <= for signed less than or equal to.
+
+ >>> x, y = BitVecs('x y', 32)
+ >>> ULE(x, y)
+ ULE(x, y)
+ >>> (x <= y).sexpr()
+ '(bvsle x y)'
+ >>> ULE(x, y).sexpr()
+ '(bvule x y)'
+ """
+ _check_bv_args(a, b)
+ a, b = _coerce_exprs(a, b)
+ return BoolRef(Z3_mk_bvule(a.ctx_ref(), a.as_ast(), b.as_ast()), a.ctx)
+
+def ULT(a, b):
+ """Create the Z3 expression (unsigned) `other < self`.
+
+ Use the operator < for signed less than.
+
+ >>> x, y = BitVecs('x y', 32)
+ >>> ULT(x, y)
+ ULT(x, y)
+ >>> (x < y).sexpr()
+ '(bvslt x y)'
+ >>> ULT(x, y).sexpr()
+ '(bvult x y)'
+ """
+ _check_bv_args(a, b)
+ a, b = _coerce_exprs(a, b)
+ return BoolRef(Z3_mk_bvult(a.ctx_ref(), a.as_ast(), b.as_ast()), a.ctx)
+
+def UGE(a, b):
+ """Create the Z3 expression (unsigned) `other >= self`.
+
+ Use the operator >= for signed greater than or equal to.
+
+ >>> x, y = BitVecs('x y', 32)
+ >>> UGE(x, y)
+ UGE(x, y)
+ >>> (x >= y).sexpr()
+ '(bvsge x y)'
+ >>> UGE(x, y).sexpr()
+ '(bvuge x y)'
+ """
+ _check_bv_args(a, b)
+ a, b = _coerce_exprs(a, b)
+ return BoolRef(Z3_mk_bvuge(a.ctx_ref(), a.as_ast(), b.as_ast()), a.ctx)
+
+def UGT(a, b):
+ """Create the Z3 expression (unsigned) `other > self`.
+
+ Use the operator > for signed greater than.
+
+ >>> x, y = BitVecs('x y', 32)
+ >>> UGT(x, y)
+ UGT(x, y)
+ >>> (x > y).sexpr()
+ '(bvsgt x y)'
+ >>> UGT(x, y).sexpr()
+ '(bvugt x y)'
+ """
+ _check_bv_args(a, b)
+ a, b = _coerce_exprs(a, b)
+ return BoolRef(Z3_mk_bvugt(a.ctx_ref(), a.as_ast(), b.as_ast()), a.ctx)
+
+def UDiv(a, b):
+ """Create the Z3 expression (unsigned) division `self / other`.
+
+ Use the operator / for signed division.
+
+ >>> x = BitVec('x', 32)
+ >>> y = BitVec('y', 32)
+ >>> UDiv(x, y)
+ UDiv(x, y)
+ >>> UDiv(x, y).sort()
+ BitVec(32)
+ >>> (x / y).sexpr()
+ '(bvsdiv x y)'
+ >>> UDiv(x, y).sexpr()
+ '(bvudiv x y)'
+ """
+ _check_bv_args(a, b)
+ a, b = _coerce_exprs(a, b)
+ return BitVecRef(Z3_mk_bvudiv(a.ctx_ref(), a.as_ast(), b.as_ast()), a.ctx)
+
+def URem(a, b):
+ """Create the Z3 expression (unsigned) remainder `self % other`.
+
+ Use the operator % for signed modulus, and SRem() for signed remainder.
+
+ >>> x = BitVec('x', 32)
+ >>> y = BitVec('y', 32)
+ >>> URem(x, y)
+ URem(x, y)
+ >>> URem(x, y).sort()
+ BitVec(32)
+ >>> (x % y).sexpr()
+ '(bvsmod x y)'
+ >>> URem(x, y).sexpr()
+ '(bvurem x y)'
+ """
+ _check_bv_args(a, b)
+ a, b = _coerce_exprs(a, b)
+ return BitVecRef(Z3_mk_bvurem(a.ctx_ref(), a.as_ast(), b.as_ast()), a.ctx)
+
+def SRem(a, b):
+ """Create the Z3 expression signed remainder.
+
+ Use the operator % for signed modulus, and URem() for unsigned remainder.
+
+ >>> x = BitVec('x', 32)
+ >>> y = BitVec('y', 32)
+ >>> SRem(x, y)
+ SRem(x, y)
+ >>> SRem(x, y).sort()
+ BitVec(32)
+ >>> (x % y).sexpr()
+ '(bvsmod x y)'
+ >>> SRem(x, y).sexpr()
+ '(bvsrem x y)'
+ """
+ _check_bv_args(a, b)
+ a, b = _coerce_exprs(a, b)
+ return BitVecRef(Z3_mk_bvsrem(a.ctx_ref(), a.as_ast(), b.as_ast()), a.ctx)
+
+def LShR(a, b):
+ """Create the Z3 expression logical right shift.
+
+ Use the operator >> for the arithmetical right shift.
+
+ >>> x, y = BitVecs('x y', 32)
+ >>> LShR(x, y)
+ LShR(x, y)
+ >>> (x >> y).sexpr()
+ '(bvashr x y)'
+ >>> LShR(x, y).sexpr()
+ '(bvlshr x y)'
+ >>> BitVecVal(4, 3)
+ 4
+ >>> BitVecVal(4, 3).as_signed_long()
+ -4
+ >>> simplify(BitVecVal(4, 3) >> 1).as_signed_long()
+ -2
+ >>> simplify(BitVecVal(4, 3) >> 1)
+ 6
+ >>> simplify(LShR(BitVecVal(4, 3), 1))
+ 2
+ >>> simplify(BitVecVal(2, 3) >> 1)
+ 1
+ >>> simplify(LShR(BitVecVal(2, 3), 1))
+ 1
+ """
+ _check_bv_args(a, b)
+ a, b = _coerce_exprs(a, b)
+ return BitVecRef(Z3_mk_bvlshr(a.ctx_ref(), a.as_ast(), b.as_ast()), a.ctx)
+
+def RotateLeft(a, b):
+ """Return an expression representing `a` rotated to the left `b` times.
+
+ >>> a, b = BitVecs('a b', 16)
+ >>> RotateLeft(a, b)
+ RotateLeft(a, b)
+ >>> simplify(RotateLeft(a, 0))
+ a
+ >>> simplify(RotateLeft(a, 16))
+ a
+ """
+ _check_bv_args(a, b)
+ a, b = _coerce_exprs(a, b)
+ return BitVecRef(Z3_mk_ext_rotate_left(a.ctx_ref(), a.as_ast(), b.as_ast()), a.ctx)
+
+def RotateRight(a, b):
+ """Return an expression representing `a` rotated to the right `b` times.
+
+ >>> a, b = BitVecs('a b', 16)
+ >>> RotateRight(a, b)
+ RotateRight(a, b)
+ >>> simplify(RotateRight(a, 0))
+ a
+ >>> simplify(RotateRight(a, 16))
+ a
+ """
+ _check_bv_args(a, b)
+ a, b = _coerce_exprs(a, b)
+ return BitVecRef(Z3_mk_ext_rotate_right(a.ctx_ref(), a.as_ast(), b.as_ast()), a.ctx)
+
+def SignExt(n, a):
+ """Return a bit-vector expression with `n` extra sign-bits.
+
+ >>> x = BitVec('x', 16)
+ >>> n = SignExt(8, x)
+ >>> n.size()
+ 24
+ >>> n
+ SignExt(8, x)
+ >>> n.sort()
+ BitVec(24)
+ >>> v0 = BitVecVal(2, 2)
+ >>> v0
+ 2
+ >>> v0.size()
+ 2
+ >>> v = simplify(SignExt(6, v0))
+ >>> v
+ 254
+ >>> v.size()
+ 8
+ >>> print("%.x" % v.as_long())
+ fe
+ """
+ if __debug__:
+ _z3_assert(_is_int(n), "First argument must be an integer")
+ _z3_assert(is_bv(a), "Second argument must be a Z3 Bitvector expression")
+ return BitVecRef(Z3_mk_sign_ext(a.ctx_ref(), n, a.as_ast()), a.ctx)
+
+def ZeroExt(n, a):
+ """Return a bit-vector expression with `n` extra zero-bits.
+
+ >>> x = BitVec('x', 16)
+ >>> n = ZeroExt(8, x)
+ >>> n.size()
+ 24
+ >>> n
+ ZeroExt(8, x)
+ >>> n.sort()
+ BitVec(24)
+ >>> v0 = BitVecVal(2, 2)
+ >>> v0
+ 2
+ >>> v0.size()
+ 2
+ >>> v = simplify(ZeroExt(6, v0))
+ >>> v
+ 2
+ >>> v.size()
+ 8
+ """
+ if __debug__:
+ _z3_assert(_is_int(n), "First argument must be an integer")
+ _z3_assert(is_bv(a), "Second argument must be a Z3 Bitvector expression")
+ return BitVecRef(Z3_mk_zero_ext(a.ctx_ref(), n, a.as_ast()), a.ctx)
+
+def RepeatBitVec(n, a):
+ """Return an expression representing `n` copies of `a`.
+
+ >>> x = BitVec('x', 8)
+ >>> n = RepeatBitVec(4, x)
+ >>> n
+ RepeatBitVec(4, x)
+ >>> n.size()
+ 32
+ >>> v0 = BitVecVal(10, 4)
+ >>> print("%.x" % v0.as_long())
+ a
+ >>> v = simplify(RepeatBitVec(4, v0))
+ >>> v.size()
+ 16
+ >>> print("%.x" % v.as_long())
+ aaaa
+ """
+ if __debug__:
+ _z3_assert(_is_int(n), "First argument must be an integer")
+ _z3_assert(is_bv(a), "Second argument must be a Z3 Bitvector expression")
+ return BitVecRef(Z3_mk_repeat(a.ctx_ref(), n, a.as_ast()), a.ctx)
+
+def BVRedAnd(a):
+ """Return the reduction-and expression of `a`."""
+ if __debug__:
+ _z3_assert(is_bv(a), "First argument must be a Z3 Bitvector expression")
+ return BitVecRef(Z3_mk_bvredand(a.ctx_ref(), a.as_ast()), a.ctx)
+
+def BVRedOr(a):
+ """Return the reduction-or expression of `a`."""
+ if __debug__:
+ _z3_assert(is_bv(a), "First argument must be a Z3 Bitvector expression")
+ return BitVecRef(Z3_mk_bvredor(a.ctx_ref(), a.as_ast()), a.ctx)
+
+#########################################
+#
+# Arrays
+#
+#########################################
+
+class ArraySortRef(SortRef):
+ """Array sorts."""
+
+ def domain(self):
+ """Return the domain of the array sort `self`.
+
+ >>> A = ArraySort(IntSort(), BoolSort())
+ >>> A.domain()
+ Int
+ """
+ return _to_sort_ref(Z3_get_array_sort_domain(self.ctx_ref(), self.ast), self.ctx)
+
+ def range(self):
+ """Return the range of the array sort `self`.
+
+ >>> A = ArraySort(IntSort(), BoolSort())
+ >>> A.range()
+ Bool
+ """
+ return _to_sort_ref(Z3_get_array_sort_range(self.ctx_ref(), self.ast), self.ctx)
+
+class ArrayRef(ExprRef):
+ """Array expressions. """
+
+ def sort(self):
+ """Return the array sort of the array expression `self`.
+
+ >>> a = Array('a', IntSort(), BoolSort())
+ >>> a.sort()
+ Array(Int, Bool)
+ """
+ return ArraySortRef(Z3_get_sort(self.ctx_ref(), self.as_ast()), self.ctx)
+
+ def domain(self):
+ """Shorthand for `self.sort().domain()`.
+
+ >>> a = Array('a', IntSort(), BoolSort())
+ >>> a.domain()
+ Int
+ """
+ return self.sort().domain()
+
+ def range(self):
+ """Shorthand for `self.sort().range()`.
+
+ >>> a = Array('a', IntSort(), BoolSort())
+ >>> a.range()
+ Bool
+ """
+ return self.sort().range()
+
+ def __getitem__(self, arg):
+ """Return the Z3 expression `self[arg]`.
+
+ >>> a = Array('a', IntSort(), BoolSort())
+ >>> i = Int('i')
+ >>> a[i]
+ a[i]
+ >>> a[i].sexpr()
+ '(select a i)'
+ """
+ arg = self.domain().cast(arg)
+ return _to_expr_ref(Z3_mk_select(self.ctx_ref(), self.as_ast(), arg.as_ast()), self.ctx)
+
+ def default(self):
+ return _to_expr_ref(Z3_mk_array_default(self.ctx_ref(), self.as_ast()), self.ctx)
+
+
+def is_array(a):
+ """Return `True` if `a` is a Z3 array expression.
+
+ >>> a = Array('a', IntSort(), IntSort())
+ >>> is_array(a)
+ True
+ >>> is_array(Store(a, 0, 1))
+ True
+ >>> is_array(a[0])
+ False
+ """
+ return isinstance(a, ArrayRef)
+
+def is_const_array(a):
+ """Return `True` if `a` is a Z3 constant array.
+
+ >>> a = K(IntSort(), 10)
+ >>> is_const_array(a)
+ True
+ >>> a = Array('a', IntSort(), IntSort())
+ >>> is_const_array(a)
+ False
+ """
+ return is_app_of(a, Z3_OP_CONST_ARRAY)
+
+def is_K(a):
+ """Return `True` if `a` is a Z3 constant array.
+
+ >>> a = K(IntSort(), 10)
+ >>> is_K(a)
+ True
+ >>> a = Array('a', IntSort(), IntSort())
+ >>> is_K(a)
+ False
+ """
+ return is_app_of(a, Z3_OP_CONST_ARRAY)
+
+def is_map(a):
+ """Return `True` if `a` is a Z3 map array expression.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> b = Array('b', IntSort(), IntSort())
+ >>> a = Map(f, b)
+ >>> a
+ Map(f, b)
+ >>> is_map(a)
+ True
+ >>> is_map(b)
+ False
+ """
+ return is_app_of(a, Z3_OP_ARRAY_MAP)
+
+def is_default(a):
+ """Return `True` if `a` is a Z3 default array expression.
+ >>> d = Default(K(IntSort(), 10))
+ >>> is_default(d)
+ True
+ """
+ return is_app_of(a, Z3_OP_ARRAY_DEFAULT)
+
+def get_map_func(a):
+ """Return the function declaration associated with a Z3 map array expression.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> b = Array('b', IntSort(), IntSort())
+ >>> a = Map(f, b)
+ >>> eq(f, get_map_func(a))
+ True
+ >>> get_map_func(a)
+ f
+ >>> get_map_func(a)(0)
+ f(0)
+ """
+ if __debug__:
+ _z3_assert(is_map(a), "Z3 array map expression expected.")
+ return FuncDeclRef(Z3_to_func_decl(a.ctx_ref(), Z3_get_decl_ast_parameter(a.ctx_ref(), a.decl().ast, 0)), a.ctx)
+
+def ArraySort(d, r):
+ """Return the Z3 array sort with the given domain and range sorts.
+
+ >>> A = ArraySort(IntSort(), BoolSort())
+ >>> A
+ Array(Int, Bool)
+ >>> A.domain()
+ Int
+ >>> A.range()
+ Bool
+ >>> AA = ArraySort(IntSort(), A)
+ >>> AA
+ Array(Int, Array(Int, Bool))
+ """
+ if __debug__:
+ _z3_assert(is_sort(d), "Z3 sort expected")
+ _z3_assert(is_sort(r), "Z3 sort expected")
+ _z3_assert(d.ctx == r.ctx, "Context mismatch")
+ ctx = d.ctx
+ return ArraySortRef(Z3_mk_array_sort(ctx.ref(), d.ast, r.ast), ctx)
+
+def Array(name, dom, rng):
+ """Return an array constant named `name` with the given domain and range sorts.
+
+ >>> a = Array('a', IntSort(), IntSort())
+ >>> a.sort()
+ Array(Int, Int)
+ >>> a[0]
+ a[0]
+ """
+ s = ArraySort(dom, rng)
+ ctx = s.ctx
+ return ArrayRef(Z3_mk_const(ctx.ref(), to_symbol(name, ctx), s.ast), ctx)
+
+def Update(a, i, v):
+ """Return a Z3 store array expression.
+
+ >>> a = Array('a', IntSort(), IntSort())
+ >>> i, v = Ints('i v')
+ >>> s = Update(a, i, v)
+ >>> s.sort()
+ Array(Int, Int)
+ >>> prove(s[i] == v)
+ proved
+ >>> j = Int('j')
+ >>> prove(Implies(i != j, s[j] == a[j]))
+ proved
+ """
+ if __debug__:
+ _z3_assert(is_array(a), "First argument must be a Z3 array expression")
+ i = a.domain().cast(i)
+ v = a.range().cast(v)
+ ctx = a.ctx
+ return _to_expr_ref(Z3_mk_store(ctx.ref(), a.as_ast(), i.as_ast(), v.as_ast()), ctx)
+
+def Default(a):
+ """ Return a default value for array expression.
+ >>> b = K(IntSort(), 1)
+ >>> prove(Default(b) == 1)
+ proved
+ """
+ if __debug__:
+ _z3_assert(is_array(a), "First argument must be a Z3 array expression")
+ return a.default()
+
+
+def Store(a, i, v):
+ """Return a Z3 store array expression.
+
+ >>> a = Array('a', IntSort(), IntSort())
+ >>> i, v = Ints('i v')
+ >>> s = Store(a, i, v)
+ >>> s.sort()
+ Array(Int, Int)
+ >>> prove(s[i] == v)
+ proved
+ >>> j = Int('j')
+ >>> prove(Implies(i != j, s[j] == a[j]))
+ proved
+ """
+ return Update(a, i, v)
+
+def Select(a, i):
+ """Return a Z3 select array expression.
+
+ >>> a = Array('a', IntSort(), IntSort())
+ >>> i = Int('i')
+ >>> Select(a, i)
+ a[i]
+ >>> eq(Select(a, i), a[i])
+ True
+ """
+ if __debug__:
+ _z3_assert(is_array(a), "First argument must be a Z3 array expression")
+ return a[i]
+
+
+def Map(f, *args):
+ """Return a Z3 map array expression.
+
+ >>> f = Function('f', IntSort(), IntSort(), IntSort())
+ >>> a1 = Array('a1', IntSort(), IntSort())
+ >>> a2 = Array('a2', IntSort(), IntSort())
+ >>> b = Map(f, a1, a2)
+ >>> b
+ Map(f, a1, a2)
+ >>> prove(b[0] == f(a1[0], a2[0]))
+ proved
+ """
+ args = _get_args(args)
+ if __debug__:
+ _z3_assert(len(args) > 0, "At least one Z3 array expression expected")
+ _z3_assert(is_func_decl(f), "First argument must be a Z3 function declaration")
+ _z3_assert(all([is_array(a) for a in args]), "Z3 array expected expected")
+ _z3_assert(len(args) == f.arity(), "Number of arguments mismatch")
+ _args, sz = _to_ast_array(args)
+ ctx = f.ctx
+ return ArrayRef(Z3_mk_map(ctx.ref(), f.ast, sz, _args), ctx)
+
+def K(dom, v):
+ """Return a Z3 constant array expression.
+
+ >>> a = K(IntSort(), 10)
+ >>> a
+ K(Int, 10)
+ >>> a.sort()
+ Array(Int, Int)
+ >>> i = Int('i')
+ >>> a[i]
+ K(Int, 10)[i]
+ >>> simplify(a[i])
+ 10
+ """
+ if __debug__:
+ _z3_assert(is_sort(dom), "Z3 sort expected")
+ ctx = dom.ctx
+ if not is_expr(v):
+ v = _py2expr(v, ctx)
+ return ArrayRef(Z3_mk_const_array(ctx.ref(), dom.ast, v.as_ast()), ctx)
+
+def Ext(a, b):
+ """Return extensionality index for arrays.
+ """
+ if __debug__:
+ _z3_assert(is_array(a) and is_array(b))
+ return _to_expr_ref(Z3_mk_array_ext(ctx.ref(), a.as_ast(), b.as_ast()));
+
+def is_select(a):
+ """Return `True` if `a` is a Z3 array select application.
+
+ >>> a = Array('a', IntSort(), IntSort())
+ >>> is_select(a)
+ False
+ >>> i = Int('i')
+ >>> is_select(a[i])
+ True
+ """
+ return is_app_of(a, Z3_OP_SELECT)
+
+def is_store(a):
+ """Return `True` if `a` is a Z3 array store application.
+
+ >>> a = Array('a', IntSort(), IntSort())
+ >>> is_store(a)
+ False
+ >>> is_store(Store(a, 0, 1))
+ True
+ """
+ return is_app_of(a, Z3_OP_STORE)
+
+#########################################
+#
+# Datatypes
+#
+#########################################
+
+def _valid_accessor(acc):
+ """Return `True` if acc is pair of the form (String, Datatype or Sort). """
+ return isinstance(acc, tuple) and len(acc) == 2 and isinstance(acc[0], str) and (isinstance(acc[1], Datatype) or is_sort(acc[1]))
+
+class Datatype:
+ """Helper class for declaring Z3 datatypes.
+
+ >>> List = Datatype('List')
+ >>> List.declare('cons', ('car', IntSort()), ('cdr', List))
+ >>> List.declare('nil')
+ >>> List = List.create()
+ >>> # List is now a Z3 declaration
+ >>> List.nil
+ nil
+ >>> List.cons(10, List.nil)
+ cons(10, nil)
+ >>> List.cons(10, List.nil).sort()
+ List
+ >>> cons = List.cons
+ >>> nil = List.nil
+ >>> car = List.car
+ >>> cdr = List.cdr
+ >>> n = cons(1, cons(0, nil))
+ >>> n
+ cons(1, cons(0, nil))
+ >>> simplify(cdr(n))
+ cons(0, nil)
+ >>> simplify(car(n))
+ 1
+ """
+ def __init__(self, name, ctx=None):
+ self.ctx = _get_ctx(ctx)
+ self.name = name
+ self.constructors = []
+
+ def declare_core(self, name, rec_name, *args):
+ if __debug__:
+ _z3_assert(isinstance(name, str), "String expected")
+ _z3_assert(isinstance(rec_name, str), "String expected")
+ _z3_assert(all([_valid_accessor(a) for a in args]), "Valid list of accessors expected. An accessor is a pair of the form (String, Datatype|Sort)")
+ self.constructors.append((name, rec_name, args))
+
+ def declare(self, name, *args):
+ """Declare constructor named `name` with the given accessors `args`.
+ Each accessor is a pair `(name, sort)`, where `name` is a string and `sort` a Z3 sort or a reference to the datatypes being declared.
+
+ In the followin example `List.declare('cons', ('car', IntSort()), ('cdr', List))`
+ declares the constructor named `cons` that builds a new List using an integer and a List.
+ It also declares the accessors `car` and `cdr`. The accessor `car` extracts the integer of a `cons` cell,
+ and `cdr` the list of a `cons` cell. After all constructors were declared, we use the method create() to create
+ the actual datatype in Z3.
+
+ >>> List = Datatype('List')
+ >>> List.declare('cons', ('car', IntSort()), ('cdr', List))
+ >>> List.declare('nil')
+ >>> List = List.create()
+ """
+ if __debug__:
+ _z3_assert(isinstance(name, str), "String expected")
+ _z3_assert(name != "", "Constructor name cannot be empty")
+ return self.declare_core(name, "is_" + name, *args)
+
+ def __repr__(self):
+ return "Datatype(%s, %s)" % (self.name, self.constructors)
+
+ def create(self):
+ """Create a Z3 datatype based on the constructors declared using the mehtod `declare()`.
+
+ The function `CreateDatatypes()` must be used to define mutually recursive datatypes.
+
+ >>> List = Datatype('List')
+ >>> List.declare('cons', ('car', IntSort()), ('cdr', List))
+ >>> List.declare('nil')
+ >>> List = List.create()
+ >>> List.nil
+ nil
+ >>> List.cons(10, List.nil)
+ cons(10, nil)
+ """
+ return CreateDatatypes([self])[0]
+
+class ScopedConstructor:
+ """Auxiliary object used to create Z3 datatypes."""
+ def __init__(self, c, ctx):
+ self.c = c
+ self.ctx = ctx
+ def __del__(self):
+ if self.ctx.ref() is not None:
+ Z3_del_constructor(self.ctx.ref(), self.c)
+
+class ScopedConstructorList:
+ """Auxiliary object used to create Z3 datatypes."""
+ def __init__(self, c, ctx):
+ self.c = c
+ self.ctx = ctx
+ def __del__(self):
+ if self.ctx.ref() is not None:
+ Z3_del_constructor_list(self.ctx.ref(), self.c)
+
+def CreateDatatypes(*ds):
+ """Create mutually recursive Z3 datatypes using 1 or more Datatype helper objects.
+
+ In the following example we define a Tree-List using two mutually recursive datatypes.
+
+ >>> TreeList = Datatype('TreeList')
+ >>> Tree = Datatype('Tree')
+ >>> # Tree has two constructors: leaf and node
+ >>> Tree.declare('leaf', ('val', IntSort()))
+ >>> # a node contains a list of trees
+ >>> Tree.declare('node', ('children', TreeList))
+ >>> TreeList.declare('nil')
+ >>> TreeList.declare('cons', ('car', Tree), ('cdr', TreeList))
+ >>> Tree, TreeList = CreateDatatypes(Tree, TreeList)
+ >>> Tree.val(Tree.leaf(10))
+ val(leaf(10))
+ >>> simplify(Tree.val(Tree.leaf(10)))
+ 10
+ >>> n1 = Tree.node(TreeList.cons(Tree.leaf(10), TreeList.cons(Tree.leaf(20), TreeList.nil)))
+ >>> n1
+ node(cons(leaf(10), cons(leaf(20), nil)))
+ >>> n2 = Tree.node(TreeList.cons(n1, TreeList.nil))
+ >>> simplify(n2 == n1)
+ False
+ >>> simplify(TreeList.car(Tree.children(n2)) == n1)
+ True
+ """
+ ds = _get_args(ds)
+ if __debug__:
+ _z3_assert(len(ds) > 0, "At least one Datatype must be specified")
+ _z3_assert(all([isinstance(d, Datatype) for d in ds]), "Arguments must be Datatypes")
+ _z3_assert(all([d.ctx == ds[0].ctx for d in ds]), "Context mismatch")
+ _z3_assert(all([d.constructors != [] for d in ds]), "Non-empty Datatypes expected")
+ ctx = ds[0].ctx
+ num = len(ds)
+ names = (Symbol * num)()
+ out = (Sort * num)()
+ clists = (ConstructorList * num)()
+ to_delete = []
+ for i in range(num):
+ d = ds[i]
+ names[i] = to_symbol(d.name, ctx)
+ num_cs = len(d.constructors)
+ cs = (Constructor * num_cs)()
+ for j in range(num_cs):
+ c = d.constructors[j]
+ cname = to_symbol(c[0], ctx)
+ rname = to_symbol(c[1], ctx)
+ fs = c[2]
+ num_fs = len(fs)
+ fnames = (Symbol * num_fs)()
+ sorts = (Sort * num_fs)()
+ refs = (ctypes.c_uint * num_fs)()
+ for k in range(num_fs):
+ fname = fs[k][0]
+ ftype = fs[k][1]
+ fnames[k] = to_symbol(fname, ctx)
+ if isinstance(ftype, Datatype):
+ if __debug__:
+ _z3_assert(ds.count(ftype) == 1, "One and only one occurrence of each datatype is expected")
+ sorts[k] = None
+ refs[k] = ds.index(ftype)
+ else:
+ if __debug__:
+ _z3_assert(is_sort(ftype), "Z3 sort expected")
+ sorts[k] = ftype.ast
+ refs[k] = 0
+ cs[j] = Z3_mk_constructor(ctx.ref(), cname, rname, num_fs, fnames, sorts, refs)
+ to_delete.append(ScopedConstructor(cs[j], ctx))
+ clists[i] = Z3_mk_constructor_list(ctx.ref(), num_cs, cs)
+ to_delete.append(ScopedConstructorList(clists[i], ctx))
+ Z3_mk_datatypes(ctx.ref(), num, names, out, clists)
+ result = []
+ ## Create a field for every constructor, recognizer and accessor
+ for i in range(num):
+ dref = DatatypeSortRef(out[i], ctx)
+ num_cs = dref.num_constructors()
+ for j in range(num_cs):
+ cref = dref.constructor(j)
+ cref_name = cref.name()
+ cref_arity = cref.arity()
+ if cref.arity() == 0:
+ cref = cref()
+ setattr(dref, cref_name, cref)
+ rref = dref.recognizer(j)
+ setattr(dref, rref.name(), rref)
+ for k in range(cref_arity):
+ aref = dref.accessor(j, k)
+ setattr(dref, aref.name(), aref)
+ result.append(dref)
+ return tuple(result)
+
+class DatatypeSortRef(SortRef):
+ """Datatype sorts."""
+ def num_constructors(self):
+ """Return the number of constructors in the given Z3 datatype.
+
+ >>> List = Datatype('List')
+ >>> List.declare('cons', ('car', IntSort()), ('cdr', List))
+ >>> List.declare('nil')
+ >>> List = List.create()
+ >>> # List is now a Z3 declaration
+ >>> List.num_constructors()
+ 2
+ """
+ return int(Z3_get_datatype_sort_num_constructors(self.ctx_ref(), self.ast))
+
+ def constructor(self, idx):
+ """Return a constructor of the datatype `self`.
+
+ >>> List = Datatype('List')
+ >>> List.declare('cons', ('car', IntSort()), ('cdr', List))
+ >>> List.declare('nil')
+ >>> List = List.create()
+ >>> # List is now a Z3 declaration
+ >>> List.num_constructors()
+ 2
+ >>> List.constructor(0)
+ cons
+ >>> List.constructor(1)
+ nil
+ """
+ if __debug__:
+ _z3_assert(idx < self.num_constructors(), "Invalid constructor index")
+ return FuncDeclRef(Z3_get_datatype_sort_constructor(self.ctx_ref(), self.ast, idx), self.ctx)
+
+ def recognizer(self, idx):
+ """In Z3, each constructor has an associated recognizer predicate.
+
+ If the constructor is named `name`, then the recognizer `is_name`.
+
+ >>> List = Datatype('List')
+ >>> List.declare('cons', ('car', IntSort()), ('cdr', List))
+ >>> List.declare('nil')
+ >>> List = List.create()
+ >>> # List is now a Z3 declaration
+ >>> List.num_constructors()
+ 2
+ >>> List.recognizer(0)
+ is_cons
+ >>> List.recognizer(1)
+ is_nil
+ >>> simplify(List.is_nil(List.cons(10, List.nil)))
+ False
+ >>> simplify(List.is_cons(List.cons(10, List.nil)))
+ True
+ >>> l = Const('l', List)
+ >>> simplify(List.is_cons(l))
+ is_cons(l)
+ """
+ if __debug__:
+ _z3_assert(idx < self.num_constructors(), "Invalid recognizer index")
+ return FuncDeclRef(Z3_get_datatype_sort_recognizer(self.ctx_ref(), self.ast, idx), self.ctx)
+
+ def accessor(self, i, j):
+ """In Z3, each constructor has 0 or more accessor. The number of accessors is equal to the arity of the constructor.
+
+ >>> List = Datatype('List')
+ >>> List.declare('cons', ('car', IntSort()), ('cdr', List))
+ >>> List.declare('nil')
+ >>> List = List.create()
+ >>> List.num_constructors()
+ 2
+ >>> List.constructor(0)
+ cons
+ >>> num_accs = List.constructor(0).arity()
+ >>> num_accs
+ 2
+ >>> List.accessor(0, 0)
+ car
+ >>> List.accessor(0, 1)
+ cdr
+ >>> List.constructor(1)
+ nil
+ >>> num_accs = List.constructor(1).arity()
+ >>> num_accs
+ 0
+ """
+ if __debug__:
+ _z3_assert(i < self.num_constructors(), "Invalid constructor index")
+ _z3_assert(j < self.constructor(i).arity(), "Invalid accessor index")
+ return FuncDeclRef(Z3_get_datatype_sort_constructor_accessor(self.ctx_ref(), self.ast, i, j), self.ctx)
+
+class DatatypeRef(ExprRef):
+ """Datatype expressions."""
+ def sort(self):
+ """Return the datatype sort of the datatype expression `self`."""
+ return DatatypeSortRef(Z3_get_sort(self.ctx_ref(), self.as_ast()), self.ctx)
+
+def EnumSort(name, values, ctx=None):
+ """Return a new enumeration sort named `name` containing the given values.
+
+ The result is a pair (sort, list of constants).
+ Example:
+ >>> Color, (red, green, blue) = EnumSort('Color', ['red', 'green', 'blue'])
+ """
+ if __debug__:
+ _z3_assert(isinstance(name, str), "Name must be a string")
+ _z3_assert(all([isinstance(v, str) for v in values]), "Eumeration sort values must be strings")
+ _z3_assert(len(values) > 0, "At least one value expected")
+ ctx = _get_ctx(ctx)
+ num = len(values)
+ _val_names = (Symbol * num)()
+ for i in range(num):
+ _val_names[i] = to_symbol(values[i])
+ _values = (FuncDecl * num)()
+ _testers = (FuncDecl * num)()
+ name = to_symbol(name)
+ S = DatatypeSortRef(Z3_mk_enumeration_sort(ctx.ref(), name, num, _val_names, _values, _testers), ctx)
+ V = []
+ for i in range(num):
+ V.append(FuncDeclRef(_values[i], ctx))
+ V = [a() for a in V]
+ return S, V
+
+#########################################
+#
+# Parameter Sets
+#
+#########################################
+
+class ParamsRef:
+ """Set of parameters used to configure Solvers, Tactics and Simplifiers in Z3.
+
+ Consider using the function `args2params` to create instances of this object.
+ """
+ def __init__(self, ctx=None):
+ self.ctx = _get_ctx(ctx)
+ self.params = Z3_mk_params(self.ctx.ref())
+ Z3_params_inc_ref(self.ctx.ref(), self.params)
+
+ def __del__(self):
+ if self.ctx.ref() is not None:
+ Z3_params_dec_ref(self.ctx.ref(), self.params)
+
+ def set(self, name, val):
+ """Set parameter name with value val."""
+ if __debug__:
+ _z3_assert(isinstance(name, str), "parameter name must be a string")
+ name_sym = to_symbol(name, self.ctx)
+ if isinstance(val, bool):
+ Z3_params_set_bool(self.ctx.ref(), self.params, name_sym, val)
+ elif _is_int(val):
+ Z3_params_set_uint(self.ctx.ref(), self.params, name_sym, val)
+ elif isinstance(val, float):
+ Z3_params_set_double(self.ctx.ref(), self.params, name_sym, val)
+ elif isinstance(val, str):
+ Z3_params_set_symbol(self.ctx.ref(), self.params, name_sym, to_symbol(val, self.ctx))
+ else:
+ if __debug__:
+ _z3_assert(False, "invalid parameter value")
+
+ def __repr__(self):
+ return Z3_params_to_string(self.ctx.ref(), self.params)
+
+ def validate(self, ds):
+ _z3_assert(isinstance(ds, ParamDescrsRef), "parameter description set expected")
+ Z3_params_validate(self.ctx.ref(), self.params, ds.descr)
+
+def args2params(arguments, keywords, ctx=None):
+ """Convert python arguments into a Z3_params object.
+ A ':' is added to the keywords, and '_' is replaced with '-'
+
+ >>> args2params(['model', True, 'relevancy', 2], {'elim_and' : True})
+ (params model true relevancy 2 elim_and true)
+ """
+ if __debug__:
+ _z3_assert(len(arguments) % 2 == 0, "Argument list must have an even number of elements.")
+ prev = None
+ r = ParamsRef(ctx)
+ for a in arguments:
+ if prev is None:
+ prev = a
+ else:
+ r.set(prev, a)
+ prev = None
+ for k in keywords:
+ v = keywords[k]
+ r.set(k, v)
+ return r
+
+class ParamDescrsRef:
+ """Set of parameter descriptions for Solvers, Tactics and Simplifiers in Z3.
+ """
+ def __init__(self, descr, ctx=None):
+ _z3_assert(isinstance(descr, ParamDescrs), "parameter description object expected")
+ self.ctx = _get_ctx(ctx)
+ self.descr = descr
+ Z3_param_descrs_inc_ref(self.ctx.ref(), self.descr)
+
+ def __del__(self):
+ if self.ctx.ref() is not None:
+ Z3_param_descrs_dec_ref(self.ctx.ref(), self.descr)
+
+ def size(self):
+ """Return the size of in the parameter description `self`.
+ """
+ return int(Z3_param_descrs_size(self.ctx.ref(), self.descr))
+
+ def __len__(self):
+ """Return the size of in the parameter description `self`.
+ """
+ return self.size()
+
+ def get_name(self, i):
+ """Return the i-th parameter name in the parameter description `self`.
+ """
+ return _symbol2py(self.ctx, Z3_param_descrs_get_name(self.ctx.ref(), self.descr, i))
+
+ def get_kind(self, n):
+ """Return the kind of the parameter named `n`.
+ """
+ return Z3_param_descrs_get_kind(self.ctx.ref(), self.descr, to_symbol(n, self.ctx))
+
+ def get_documentation(self, n):
+ """Return the documentation string of the parameter named `n`.
+ """
+ return Z3_param_descrs_get_documentation(self.ctx.ref(), self.descr, to_symbol(n, self.ctx))
+
+ def __getitem__(self, arg):
+ if _is_int(arg):
+ return self.get_name(arg)
+ else:
+ return self.get_kind(arg)
+
+ def __repr__(self):
+ return Z3_param_descrs_to_string(self.ctx.ref(), self.descr)
+
+#########################################
+#
+# Goals
+#
+#########################################
+
+class Goal(Z3PPObject):
+ """Goal is a collection of constraints we want to find a solution or show to be unsatisfiable (infeasible).
+
+ Goals are processed using Tactics. A Tactic transforms a goal into a set of subgoals.
+ A goal has a solution if one of its subgoals has a solution.
+ A goal is unsatisfiable if all subgoals are unsatisfiable.
+ """
+
+ def __init__(self, models=True, unsat_cores=False, proofs=False, ctx=None, goal=None):
+ if __debug__:
+ _z3_assert(goal is None or ctx is not None, "If goal is different from None, then ctx must be also different from None")
+ self.ctx = _get_ctx(ctx)
+ self.goal = goal
+ if self.goal is None:
+ self.goal = Z3_mk_goal(self.ctx.ref(), models, unsat_cores, proofs)
+ Z3_goal_inc_ref(self.ctx.ref(), self.goal)
+
+ def __del__(self):
+ if self.goal is not None and self.ctx.ref() is not None:
+ Z3_goal_dec_ref(self.ctx.ref(), self.goal)
+
+ def depth(self):
+ """Return the depth of the goal `self`. The depth corresponds to the number of tactics applied to `self`.
+
+ >>> x, y = Ints('x y')
+ >>> g = Goal()
+ >>> g.add(x == 0, y >= x + 1)
+ >>> g.depth()
+ 0
+ >>> r = Then('simplify', 'solve-eqs')(g)
+ >>> # r has 1 subgoal
+ >>> len(r)
+ 1
+ >>> r[0].depth()
+ 2
+ """
+ return int(Z3_goal_depth(self.ctx.ref(), self.goal))
+
+ def inconsistent(self):
+ """Return `True` if `self` contains the `False` constraints.
+
+ >>> x, y = Ints('x y')
+ >>> g = Goal()
+ >>> g.inconsistent()
+ False
+ >>> g.add(x == 0, x == 1)
+ >>> g
+ [x == 0, x == 1]
+ >>> g.inconsistent()
+ False
+ >>> g2 = Tactic('propagate-values')(g)[0]
+ >>> g2.inconsistent()
+ True
+ """
+ return Z3_goal_inconsistent(self.ctx.ref(), self.goal)
+
+ def prec(self):
+ """Return the precision (under-approximation, over-approximation, or precise) of the goal `self`.
+
+ >>> g = Goal()
+ >>> g.prec() == Z3_GOAL_PRECISE
+ True
+ >>> x, y = Ints('x y')
+ >>> g.add(x == y + 1)
+ >>> g.prec() == Z3_GOAL_PRECISE
+ True
+ >>> t = With(Tactic('add-bounds'), add_bound_lower=0, add_bound_upper=10)
+ >>> g2 = t(g)[0]
+ >>> g2
+ [x == y + 1, x <= 10, x >= 0, y <= 10, y >= 0]
+ >>> g2.prec() == Z3_GOAL_PRECISE
+ False
+ >>> g2.prec() == Z3_GOAL_UNDER
+ True
+ """
+ return Z3_goal_precision(self.ctx.ref(), self.goal)
+
+ def precision(self):
+ """Alias for `prec()`.
+
+ >>> g = Goal()
+ >>> g.precision() == Z3_GOAL_PRECISE
+ True
+ """
+ return self.prec()
+
+ def size(self):
+ """Return the number of constraints in the goal `self`.
+
+ >>> g = Goal()
+ >>> g.size()
+ 0
+ >>> x, y = Ints('x y')
+ >>> g.add(x == 0, y > x)
+ >>> g.size()
+ 2
+ """
+ return int(Z3_goal_size(self.ctx.ref(), self.goal))
+
+ def __len__(self):
+ """Return the number of constraints in the goal `self`.
+
+ >>> g = Goal()
+ >>> len(g)
+ 0
+ >>> x, y = Ints('x y')
+ >>> g.add(x == 0, y > x)
+ >>> len(g)
+ 2
+ """
+ return self.size()
+
+ def get(self, i):
+ """Return a constraint in the goal `self`.
+
+ >>> g = Goal()
+ >>> x, y = Ints('x y')
+ >>> g.add(x == 0, y > x)
+ >>> g.get(0)
+ x == 0
+ >>> g.get(1)
+ y > x
+ """
+ return _to_expr_ref(Z3_goal_formula(self.ctx.ref(), self.goal, i), self.ctx)
+
+ def __getitem__(self, arg):
+ """Return a constraint in the goal `self`.
+
+ >>> g = Goal()
+ >>> x, y = Ints('x y')
+ >>> g.add(x == 0, y > x)
+ >>> g[0]
+ x == 0
+ >>> g[1]
+ y > x
+ """
+ if arg >= len(self):
+ raise IndexError
+ return self.get(arg)
+
+ def assert_exprs(self, *args):
+ """Assert constraints into the goal.
+
+ >>> x = Int('x')
+ >>> g = Goal()
+ >>> g.assert_exprs(x > 0, x < 2)
+ >>> g
+ [x > 0, x < 2]
+ """
+ args = _get_args(args)
+ s = BoolSort(self.ctx)
+ for arg in args:
+ arg = s.cast(arg)
+ Z3_goal_assert(self.ctx.ref(), self.goal, arg.as_ast())
+
+ def append(self, *args):
+ """Add constraints.
+
+ >>> x = Int('x')
+ >>> g = Goal()
+ >>> g.append(x > 0, x < 2)
+ >>> g
+ [x > 0, x < 2]
+ """
+ self.assert_exprs(*args)
+
+ def insert(self, *args):
+ """Add constraints.
+
+ >>> x = Int('x')
+ >>> g = Goal()
+ >>> g.insert(x > 0, x < 2)
+ >>> g
+ [x > 0, x < 2]
+ """
+ self.assert_exprs(*args)
+
+ def add(self, *args):
+ """Add constraints.
+
+ >>> x = Int('x')
+ >>> g = Goal()
+ >>> g.add(x > 0, x < 2)
+ >>> g
+ [x > 0, x < 2]
+ """
+ self.assert_exprs(*args)
+
+ def __repr__(self):
+ return obj_to_string(self)
+
+ def sexpr(self):
+ """Return a textual representation of the s-expression representing the goal."""
+ return Z3_goal_to_string(self.ctx.ref(), self.goal)
+
+ def translate(self, target):
+ """Copy goal `self` to context `target`.
+
+ >>> x = Int('x')
+ >>> g = Goal()
+ >>> g.add(x > 10)
+ >>> g
+ [x > 10]
+ >>> c2 = Context()
+ >>> g2 = g.translate(c2)
+ >>> g2
+ [x > 10]
+ >>> g.ctx == main_ctx()
+ True
+ >>> g2.ctx == c2
+ True
+ >>> g2.ctx == main_ctx()
+ False
+ """
+ if __debug__:
+ _z3_assert(isinstance(target, Context), "target must be a context")
+ return Goal(goal=Z3_goal_translate(self.ctx.ref(), self.goal, target.ref()), ctx=target)
+
+ def simplify(self, *arguments, **keywords):
+ """Return a new simplified goal.
+
+ This method is essentially invoking the simplify tactic.
+
+ >>> g = Goal()
+ >>> x = Int('x')
+ >>> g.add(x + 1 >= 2)
+ >>> g
+ [x + 1 >= 2]
+ >>> g2 = g.simplify()
+ >>> g2
+ [x >= 1]
+ >>> # g was not modified
+ >>> g
+ [x + 1 >= 2]
+ """
+ t = Tactic('simplify')
+ return t.apply(self, *arguments, **keywords)[0]
+
+ def as_expr(self):
+ """Return goal `self` as a single Z3 expression.
+
+ >>> x = Int('x')
+ >>> g = Goal()
+ >>> g.as_expr()
+ True
+ >>> g.add(x > 1)
+ >>> g.as_expr()
+ x > 1
+ >>> g.add(x < 10)
+ >>> g.as_expr()
+ And(x > 1, x < 10)
+ """
+ sz = len(self)
+ if sz == 0:
+ return BoolVal(True, self.ctx)
+ elif sz == 1:
+ return self.get(0)
+ else:
+ return And([ self.get(i) for i in range(len(self)) ], self.ctx)
+
+#########################################
+#
+# AST Vector
+#
+#########################################
+class AstVector(Z3PPObject):
+ """A collection (vector) of ASTs."""
+
+ def __init__(self, v=None, ctx=None):
+ self.vector = None
+ if v is None:
+ self.ctx = _get_ctx(ctx)
+ self.vector = Z3_mk_ast_vector(self.ctx.ref())
+ else:
+ self.vector = v
+ assert ctx is not None
+ self.ctx = ctx
+ Z3_ast_vector_inc_ref(self.ctx.ref(), self.vector)
+
+ def __del__(self):
+ if self.vector is not None and self.ctx.ref() is not None:
+ Z3_ast_vector_dec_ref(self.ctx.ref(), self.vector)
+
+ def __len__(self):
+ """Return the size of the vector `self`.
+
+ >>> A = AstVector()
+ >>> len(A)
+ 0
+ >>> A.push(Int('x'))
+ >>> A.push(Int('x'))
+ >>> len(A)
+ 2
+ """
+ return int(Z3_ast_vector_size(self.ctx.ref(), self.vector))
+
+ def __getitem__(self, i):
+ """Return the AST at position `i`.
+
+ >>> A = AstVector()
+ >>> A.push(Int('x') + 1)
+ >>> A.push(Int('y'))
+ >>> A[0]
+ x + 1
+ >>> A[1]
+ y
+ """
+ if i >= self.__len__():
+ raise IndexError
+ return _to_ast_ref(Z3_ast_vector_get(self.ctx.ref(), self.vector, i), self.ctx)
+
+ def __setitem__(self, i, v):
+ """Update AST at position `i`.
+
+ >>> A = AstVector()
+ >>> A.push(Int('x') + 1)
+ >>> A.push(Int('y'))
+ >>> A[0]
+ x + 1
+ >>> A[0] = Int('x')
+ >>> A[0]
+ x
+ """
+ if i >= self.__len__():
+ raise IndexError
+ Z3_ast_vector_set(self.ctx.ref(), self.vector, i, v.as_ast())
+
+ def push(self, v):
+ """Add `v` in the end of the vector.
+
+ >>> A = AstVector()
+ >>> len(A)
+ 0
+ >>> A.push(Int('x'))
+ >>> len(A)
+ 1
+ """
+ Z3_ast_vector_push(self.ctx.ref(), self.vector, v.as_ast())
+
+ def resize(self, sz):
+ """Resize the vector to `sz` elements.
+
+ >>> A = AstVector()
+ >>> A.resize(10)
+ >>> len(A)
+ 10
+ >>> for i in range(10): A[i] = Int('x')
+ >>> A[5]
+ x
+ """
+ Z3_ast_vector_resize(self.ctx.ref(), self.vector, sz)
+
+ def __contains__(self, item):
+ """Return `True` if the vector contains `item`.
+
+ >>> x = Int('x')
+ >>> A = AstVector()
+ >>> x in A
+ False
+ >>> A.push(x)
+ >>> x in A
+ True
+ >>> (x+1) in A
+ False
+ >>> A.push(x+1)
+ >>> (x+1) in A
+ True
+ >>> A
+ [x, x + 1]
+ """
+ for elem in self:
+ if elem.eq(item):
+ return True
+ return False
+
+ def translate(self, other_ctx):
+ """Copy vector `self` to context `other_ctx`.
+
+ >>> x = Int('x')
+ >>> A = AstVector()
+ >>> A.push(x)
+ >>> c2 = Context()
+ >>> B = A.translate(c2)
+ >>> B
+ [x]
+ """
+ return AstVector(Z3_ast_vector_translate(self.ctx.ref(), self.vector, other_ctx.ref()), other_ctx)
+
+ def __repr__(self):
+ return obj_to_string(self)
+
+ def sexpr(self):
+ """Return a textual representation of the s-expression representing the vector."""
+ return Z3_ast_vector_to_string(self.ctx.ref(), self.vector)
+
+#########################################
+#
+# AST Map
+#
+#########################################
+class AstMap:
+ """A mapping from ASTs to ASTs."""
+
+ def __init__(self, m=None, ctx=None):
+ self.map = None
+ if m is None:
+ self.ctx = _get_ctx(ctx)
+ self.map = Z3_mk_ast_map(self.ctx.ref())
+ else:
+ self.map = m
+ assert ctx is not None
+ self.ctx = ctx
+ Z3_ast_map_inc_ref(self.ctx.ref(), self.map)
+
+ def __del__(self):
+ if self.map is not None and self.ctx.ref() is not None:
+ Z3_ast_map_dec_ref(self.ctx.ref(), self.map)
+
+ def __len__(self):
+ """Return the size of the map.
+
+ >>> M = AstMap()
+ >>> len(M)
+ 0
+ >>> x = Int('x')
+ >>> M[x] = IntVal(1)
+ >>> len(M)
+ 1
+ """
+ return int(Z3_ast_map_size(self.ctx.ref(), self.map))
+
+ def __contains__(self, key):
+ """Return `True` if the map contains key `key`.
+
+ >>> M = AstMap()
+ >>> x = Int('x')
+ >>> M[x] = x + 1
+ >>> x in M
+ True
+ >>> x+1 in M
+ False
+ """
+ return Z3_ast_map_contains(self.ctx.ref(), self.map, key.as_ast())
+
+ def __getitem__(self, key):
+ """Retrieve the value associated with key `key`.
+
+ >>> M = AstMap()
+ >>> x = Int('x')
+ >>> M[x] = x + 1
+ >>> M[x]
+ x + 1
+ """
+ return _to_ast_ref(Z3_ast_map_find(self.ctx.ref(), self.map, key.as_ast()), self.ctx)
+
+ def __setitem__(self, k, v):
+ """Add/Update key `k` with value `v`.
+
+ >>> M = AstMap()
+ >>> x = Int('x')
+ >>> M[x] = x + 1
+ >>> len(M)
+ 1
+ >>> M[x]
+ x + 1
+ >>> M[x] = IntVal(1)
+ >>> M[x]
+ 1
+ """
+ Z3_ast_map_insert(self.ctx.ref(), self.map, k.as_ast(), v.as_ast())
+
+ def __repr__(self):
+ return Z3_ast_map_to_string(self.ctx.ref(), self.map)
+
+ def erase(self, k):
+ """Remove the entry associated with key `k`.
+
+ >>> M = AstMap()
+ >>> x = Int('x')
+ >>> M[x] = x + 1
+ >>> len(M)
+ 1
+ >>> M.erase(x)
+ >>> len(M)
+ 0
+ """
+ Z3_ast_map_erase(self.ctx.ref(), self.map, k.as_ast())
+
+ def reset(self):
+ """Remove all entries from the map.
+
+ >>> M = AstMap()
+ >>> x = Int('x')
+ >>> M[x] = x + 1
+ >>> M[x+x] = IntVal(1)
+ >>> len(M)
+ 2
+ >>> M.reset()
+ >>> len(M)
+ 0
+ """
+ Z3_ast_map_reset(self.ctx.ref(), self.map)
+
+ def keys(self):
+ """Return an AstVector containing all keys in the map.
+
+ >>> M = AstMap()
+ >>> x = Int('x')
+ >>> M[x] = x + 1
+ >>> M[x+x] = IntVal(1)
+ >>> M.keys()
+ [x, x + x]
+ """
+ return AstVector(Z3_ast_map_keys(self.ctx.ref(), self.map), self.ctx)
+
+#########################################
+#
+# Model
+#
+#########################################
+
+class FuncEntry:
+ """Store the value of the interpretation of a function in a particular point."""
+
+ def __init__(self, entry, ctx):
+ self.entry = entry
+ self.ctx = ctx
+ Z3_func_entry_inc_ref(self.ctx.ref(), self.entry)
+
+ def __del__(self):
+ if self.ctx.ref() is not None:
+ Z3_func_entry_dec_ref(self.ctx.ref(), self.entry)
+
+ def num_args(self):
+ """Return the number of arguments in the given entry.
+
+ >>> f = Function('f', IntSort(), IntSort(), IntSort())
+ >>> s = Solver()
+ >>> s.add(f(0, 1) == 10, f(1, 2) == 20, f(1, 0) == 10)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> f_i = m[f]
+ >>> f_i.num_entries()
+ 3
+ >>> e = f_i.entry(0)
+ >>> e.num_args()
+ 2
+ """
+ return int(Z3_func_entry_get_num_args(self.ctx.ref(), self.entry))
+
+ def arg_value(self, idx):
+ """Return the value of argument `idx`.
+
+ >>> f = Function('f', IntSort(), IntSort(), IntSort())
+ >>> s = Solver()
+ >>> s.add(f(0, 1) == 10, f(1, 2) == 20, f(1, 0) == 10)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> f_i = m[f]
+ >>> f_i.num_entries()
+ 3
+ >>> e = f_i.entry(0)
+ >>> e
+ [0, 1, 10]
+ >>> e.num_args()
+ 2
+ >>> e.arg_value(0)
+ 0
+ >>> e.arg_value(1)
+ 1
+ >>> try:
+ ... e.arg_value(2)
+ ... except IndexError:
+ ... print("index error")
+ index error
+ """
+ if idx >= self.num_args():
+ raise IndexError
+ return _to_expr_ref(Z3_func_entry_get_arg(self.ctx.ref(), self.entry, idx), self.ctx)
+
+ def value(self):
+ """Return the value of the function at point `self`.
+
+ >>> f = Function('f', IntSort(), IntSort(), IntSort())
+ >>> s = Solver()
+ >>> s.add(f(0, 1) == 10, f(1, 2) == 20, f(1, 0) == 10)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> f_i = m[f]
+ >>> f_i.num_entries()
+ 3
+ >>> e = f_i.entry(0)
+ >>> e
+ [0, 1, 10]
+ >>> e.num_args()
+ 2
+ >>> e.value()
+ 10
+ """
+ return _to_expr_ref(Z3_func_entry_get_value(self.ctx.ref(), self.entry), self.ctx)
+
+ def as_list(self):
+ """Return entry `self` as a Python list.
+ >>> f = Function('f', IntSort(), IntSort(), IntSort())
+ >>> s = Solver()
+ >>> s.add(f(0, 1) == 10, f(1, 2) == 20, f(1, 0) == 10)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> f_i = m[f]
+ >>> f_i.num_entries()
+ 3
+ >>> e = f_i.entry(0)
+ >>> e.as_list()
+ [0, 1, 10]
+ """
+ args = [ self.arg_value(i) for i in range(self.num_args())]
+ args.append(self.value())
+ return args
+
+ def __repr__(self):
+ return repr(self.as_list())
+
+class FuncInterp(Z3PPObject):
+ """Stores the interpretation of a function in a Z3 model."""
+
+ def __init__(self, f, ctx):
+ self.f = f
+ self.ctx = ctx
+ if self.f is not None:
+ Z3_func_interp_inc_ref(self.ctx.ref(), self.f)
+
+ def __del__(self):
+ if self.f is not None and self.ctx.ref() is not None:
+ Z3_func_interp_dec_ref(self.ctx.ref(), self.f)
+
+ def else_value(self):
+ """
+ Return the `else` value for a function interpretation.
+ Return None if Z3 did not specify the `else` value for
+ this object.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> s = Solver()
+ >>> s.add(f(0) == 1, f(1) == 1, f(2) == 0)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> m[f]
+ [0 -> 1, 1 -> 1, 2 -> 0, else -> 1]
+ >>> m[f].else_value()
+ 1
+ """
+ r = Z3_func_interp_get_else(self.ctx.ref(), self.f)
+ if r:
+ return _to_expr_ref(r, self.ctx)
+ else:
+ return None
+
+ def num_entries(self):
+ """Return the number of entries/points in the function interpretation `self`.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> s = Solver()
+ >>> s.add(f(0) == 1, f(1) == 1, f(2) == 0)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> m[f]
+ [0 -> 1, 1 -> 1, 2 -> 0, else -> 1]
+ >>> m[f].num_entries()
+ 3
+ """
+ return int(Z3_func_interp_get_num_entries(self.ctx.ref(), self.f))
+
+ def arity(self):
+ """Return the number of arguments for each entry in the function interpretation `self`.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> s = Solver()
+ >>> s.add(f(0) == 1, f(1) == 1, f(2) == 0)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> m[f].arity()
+ 1
+ """
+ return int(Z3_func_interp_get_arity(self.ctx.ref(), self.f))
+
+ def entry(self, idx):
+ """Return an entry at position `idx < self.num_entries()` in the function interpretation `self`.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> s = Solver()
+ >>> s.add(f(0) == 1, f(1) == 1, f(2) == 0)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> m[f]
+ [0 -> 1, 1 -> 1, 2 -> 0, else -> 1]
+ >>> m[f].num_entries()
+ 3
+ >>> m[f].entry(0)
+ [0, 1]
+ >>> m[f].entry(1)
+ [1, 1]
+ >>> m[f].entry(2)
+ [2, 0]
+ """
+ if idx >= self.num_entries():
+ raise IndexError
+ return FuncEntry(Z3_func_interp_get_entry(self.ctx.ref(), self.f, idx), self.ctx)
+
+ def as_list(self):
+ """Return the function interpretation as a Python list.
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> s = Solver()
+ >>> s.add(f(0) == 1, f(1) == 1, f(2) == 0)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> m[f]
+ [0 -> 1, 1 -> 1, 2 -> 0, else -> 1]
+ >>> m[f].as_list()
+ [[0, 1], [1, 1], [2, 0], 1]
+ """
+ r = [ self.entry(i).as_list() for i in range(self.num_entries())]
+ r.append(self.else_value())
+ return r
+
+ def __repr__(self):
+ return obj_to_string(self)
+
+class ModelRef(Z3PPObject):
+ """Model/Solution of a satisfiability problem (aka system of constraints)."""
+
+ def __init__(self, m, ctx):
+ assert ctx is not None
+ self.model = m
+ self.ctx = ctx
+ Z3_model_inc_ref(self.ctx.ref(), self.model)
+
+ def __del__(self):
+ if self.ctx.ref() is not None:
+ Z3_model_dec_ref(self.ctx.ref(), self.model)
+
+ def __repr__(self):
+ return obj_to_string(self)
+
+ def sexpr(self):
+ """Return a textual representation of the s-expression representing the model."""
+ return Z3_model_to_string(self.ctx.ref(), self.model)
+
+ def eval(self, t, model_completion=False):
+ """Evaluate the expression `t` in the model `self`. If `model_completion` is enabled, then a default interpretation is automatically added for symbols that do not have an interpretation in the model `self`.
+
+ >>> x = Int('x')
+ >>> s = Solver()
+ >>> s.add(x > 0, x < 2)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> m.eval(x + 1)
+ 2
+ >>> m.eval(x == 1)
+ True
+ >>> y = Int('y')
+ >>> m.eval(y + x)
+ 1 + y
+ >>> m.eval(y)
+ y
+ >>> m.eval(y, model_completion=True)
+ 0
+ >>> # Now, m contains an interpretation for y
+ >>> m.eval(y + x)
+ 1
+ """
+ r = (Ast * 1)()
+ if Z3_model_eval(self.ctx.ref(), self.model, t.as_ast(), model_completion, r):
+ return _to_expr_ref(r[0], self.ctx)
+ raise Z3Exception("failed to evaluate expression in the model")
+
+ def evaluate(self, t, model_completion=False):
+ """Alias for `eval`.
+
+ >>> x = Int('x')
+ >>> s = Solver()
+ >>> s.add(x > 0, x < 2)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> m.evaluate(x + 1)
+ 2
+ >>> m.evaluate(x == 1)
+ True
+ >>> y = Int('y')
+ >>> m.evaluate(y + x)
+ 1 + y
+ >>> m.evaluate(y)
+ y
+ >>> m.evaluate(y, model_completion=True)
+ 0
+ >>> # Now, m contains an interpretation for y
+ >>> m.evaluate(y + x)
+ 1
+ """
+ return self.eval(t, model_completion)
+
+ def __len__(self):
+ """Return the number of constant and function declarations in the model `self`.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> s = Solver()
+ >>> s.add(x > 0, f(x) != x)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> len(m)
+ 2
+ """
+ return int(Z3_model_get_num_consts(self.ctx.ref(), self.model)) + int(Z3_model_get_num_funcs(self.ctx.ref(), self.model))
+
+ def get_interp(self, decl):
+ """Return the interpretation for a given declaration or constant.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> s = Solver()
+ >>> s.add(x > 0, x < 2, f(x) == 0)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> m[x]
+ 1
+ >>> m[f]
+ [1 -> 0, else -> 0]
+ """
+ if __debug__:
+ _z3_assert(isinstance(decl, FuncDeclRef) or is_const(decl), "Z3 declaration expected")
+ if is_const(decl):
+ decl = decl.decl()
+ try:
+ if decl.arity() == 0:
+ _r = Z3_model_get_const_interp(self.ctx.ref(), self.model, decl.ast)
+ if _r.value is None:
+ return None
+ r = _to_expr_ref(_r, self.ctx)
+ if is_as_array(r):
+ return self.get_interp(get_as_array_func(r))
+ else:
+ return r
+ else:
+ return FuncInterp(Z3_model_get_func_interp(self.ctx.ref(), self.model, decl.ast), self.ctx)
+ except Z3Exception:
+ return None
+
+ def num_sorts(self):
+ """Return the number of unintepreted sorts that contain an interpretation in the model `self`.
+
+ >>> A = DeclareSort('A')
+ >>> a, b = Consts('a b', A)
+ >>> s = Solver()
+ >>> s.add(a != b)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> m.num_sorts()
+ 1
+ """
+ return int(Z3_model_get_num_sorts(self.ctx.ref(), self.model))
+
+ def get_sort(self, idx):
+ """Return the unintepreted sort at position `idx` < self.num_sorts().
+
+ >>> A = DeclareSort('A')
+ >>> B = DeclareSort('B')
+ >>> a1, a2 = Consts('a1 a2', A)
+ >>> b1, b2 = Consts('b1 b2', B)
+ >>> s = Solver()
+ >>> s.add(a1 != a2, b1 != b2)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> m.num_sorts()
+ 2
+ >>> m.get_sort(0)
+ A
+ >>> m.get_sort(1)
+ B
+ """
+ if idx >= self.num_sorts():
+ raise IndexError
+ return _to_sort_ref(Z3_model_get_sort(self.ctx.ref(), self.model, idx), self.ctx)
+
+ def sorts(self):
+ """Return all uninterpreted sorts that have an interpretation in the model `self`.
+
+ >>> A = DeclareSort('A')
+ >>> B = DeclareSort('B')
+ >>> a1, a2 = Consts('a1 a2', A)
+ >>> b1, b2 = Consts('b1 b2', B)
+ >>> s = Solver()
+ >>> s.add(a1 != a2, b1 != b2)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> m.sorts()
+ [A, B]
+ """
+ return [ self.get_sort(i) for i in range(self.num_sorts()) ]
+
+ def get_universe(self, s):
+ """Return the intepretation for the uninterpreted sort `s` in the model `self`.
+
+ >>> A = DeclareSort('A')
+ >>> a, b = Consts('a b', A)
+ >>> s = Solver()
+ >>> s.add(a != b)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> m.get_universe(A)
+ [A!val!0, A!val!1]
+ """
+ if __debug__:
+ _z3_assert(isinstance(s, SortRef), "Z3 sort expected")
+ try:
+ return AstVector(Z3_model_get_sort_universe(self.ctx.ref(), self.model, s.ast), self.ctx)
+ except Z3Exception:
+ return None
+
+ def __getitem__(self, idx):
+ """If `idx` is an integer, then the declaration at position `idx` in the model `self` is returned. If `idx` is a declaration, then the actual interpreation is returned.
+
+ The elements can be retrieved using position or the actual declaration.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> s = Solver()
+ >>> s.add(x > 0, x < 2, f(x) == 0)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> len(m)
+ 2
+ >>> m[0]
+ x
+ >>> m[1]
+ f
+ >>> m[x]
+ 1
+ >>> m[f]
+ [1 -> 0, else -> 0]
+ >>> for d in m: print("%s -> %s" % (d, m[d]))
+ x -> 1
+ f -> [1 -> 0, else -> 0]
+ """
+ if _is_int(idx):
+ if idx >= len(self):
+ raise IndexError
+ num_consts = Z3_model_get_num_consts(self.ctx.ref(), self.model)
+ if (idx < num_consts):
+ return FuncDeclRef(Z3_model_get_const_decl(self.ctx.ref(), self.model, idx), self.ctx)
+ else:
+ return FuncDeclRef(Z3_model_get_func_decl(self.ctx.ref(), self.model, idx - num_consts), self.ctx)
+ if isinstance(idx, FuncDeclRef):
+ return self.get_interp(idx)
+ if is_const(idx):
+ return self.get_interp(idx.decl())
+ if isinstance(idx, SortRef):
+ return self.get_universe(idx)
+ if __debug__:
+ _z3_assert(False, "Integer, Z3 declaration, or Z3 constant expected")
+ return None
+
+ def decls(self):
+ """Return a list with all symbols that have an interpreation in the model `self`.
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> s = Solver()
+ >>> s.add(x > 0, x < 2, f(x) == 0)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> m.decls()
+ [x, f]
+ """
+ r = []
+ for i in range(Z3_model_get_num_consts(self.ctx.ref(), self.model)):
+ r.append(FuncDeclRef(Z3_model_get_const_decl(self.ctx.ref(), self.model, i), self.ctx))
+ for i in range(Z3_model_get_num_funcs(self.ctx.ref(), self.model)):
+ r.append(FuncDeclRef(Z3_model_get_func_decl(self.ctx.ref(), self.model, i), self.ctx))
+ return r
+
+def is_as_array(n):
+ """Return true if n is a Z3 expression of the form (_ as-array f)."""
+ return isinstance(n, ExprRef) and Z3_is_as_array(n.ctx.ref(), n.as_ast())
+
+def get_as_array_func(n):
+ """Return the function declaration f associated with a Z3 expression of the form (_ as-array f)."""
+ if __debug__:
+ _z3_assert(is_as_array(n), "as-array Z3 expression expected.")
+ return FuncDeclRef(Z3_get_as_array_func_decl(n.ctx.ref(), n.as_ast()), n.ctx)
+
+#########################################
+#
+# Statistics
+#
+#########################################
+class Statistics:
+ """Statistics for `Solver.check()`."""
+
+ def __init__(self, stats, ctx):
+ self.stats = stats
+ self.ctx = ctx
+ Z3_stats_inc_ref(self.ctx.ref(), self.stats)
+
+ def __del__(self):
+ if self.ctx.ref() is not None:
+ Z3_stats_dec_ref(self.ctx.ref(), self.stats)
+
+ def __repr__(self):
+ if in_html_mode():
+ out = io.StringIO()
+ even = True
+ out.write(u('<table border="1" cellpadding="2" cellspacing="0">'))
+ for k, v in self:
+ if even:
+ out.write(u('<tr style="background-color:#CFCFCF">'))
+ even = False
+ else:
+ out.write(u('<tr>'))
+ even = True
+ out.write(u('<td>%s</td><td>%s</td></tr>' % (k, v)))
+ out.write(u('</table>'))
+ return out.getvalue()
+ else:
+ return Z3_stats_to_string(self.ctx.ref(), self.stats)
+
+ def __len__(self):
+ """Return the number of statistical counters.
+
+ >>> x = Int('x')
+ >>> s = Then('simplify', 'nlsat').solver()
+ >>> s.add(x > 0)
+ >>> s.check()
+ sat
+ >>> st = s.statistics()
+ >>> len(st)
+ 6
+ """
+ return int(Z3_stats_size(self.ctx.ref(), self.stats))
+
+ def __getitem__(self, idx):
+ """Return the value of statistical counter at position `idx`. The result is a pair (key, value).
+
+ >>> x = Int('x')
+ >>> s = Then('simplify', 'nlsat').solver()
+ >>> s.add(x > 0)
+ >>> s.check()
+ sat
+ >>> st = s.statistics()
+ >>> len(st)
+ 6
+ >>> st[0]
+ ('nlsat propagations', 2)
+ >>> st[1]
+ ('nlsat stages', 2)
+ """
+ if idx >= len(self):
+ raise IndexError
+ if Z3_stats_is_uint(self.ctx.ref(), self.stats, idx):
+ val = int(Z3_stats_get_uint_value(self.ctx.ref(), self.stats, idx))
+ else:
+ val = Z3_stats_get_double_value(self.ctx.ref(), self.stats, idx)
+ return (Z3_stats_get_key(self.ctx.ref(), self.stats, idx), val)
+
+ def keys(self):
+ """Return the list of statistical counters.
+
+ >>> x = Int('x')
+ >>> s = Then('simplify', 'nlsat').solver()
+ >>> s.add(x > 0)
+ >>> s.check()
+ sat
+ >>> st = s.statistics()
+ """
+ return [Z3_stats_get_key(self.ctx.ref(), self.stats, idx) for idx in range(len(self))]
+
+ def get_key_value(self, key):
+ """Return the value of a particular statistical counter.
+
+ >>> x = Int('x')
+ >>> s = Then('simplify', 'nlsat').solver()
+ >>> s.add(x > 0)
+ >>> s.check()
+ sat
+ >>> st = s.statistics()
+ >>> st.get_key_value('nlsat propagations')
+ 2
+ """
+ for idx in range(len(self)):
+ if key == Z3_stats_get_key(self.ctx.ref(), self.stats, idx):
+ if Z3_stats_is_uint(self.ctx.ref(), self.stats, idx):
+ return int(Z3_stats_get_uint_value(self.ctx.ref(), self.stats, idx))
+ else:
+ return Z3_stats_get_double_value(self.ctx.ref(), self.stats, idx)
+ raise Z3Exception("unknown key")
+
+ def __getattr__(self, name):
+ """Access the value of statistical using attributes.
+
+ Remark: to access a counter containing blank spaces (e.g., 'nlsat propagations'),
+ we should use '_' (e.g., 'nlsat_propagations').
+
+ >>> x = Int('x')
+ >>> s = Then('simplify', 'nlsat').solver()
+ >>> s.add(x > 0)
+ >>> s.check()
+ sat
+ >>> st = s.statistics()
+ >>> st.nlsat_propagations
+ 2
+ >>> st.nlsat_stages
+ 2
+ """
+ key = name.replace('_', ' ')
+ try:
+ return self.get_key_value(key)
+ except Z3Exception:
+ raise AttributeError
+
+#########################################
+#
+# Solver
+#
+#########################################
+class CheckSatResult:
+ """Represents the result of a satisfiability check: sat, unsat, unknown.
+
+ >>> s = Solver()
+ >>> s.check()
+ sat
+ >>> r = s.check()
+ >>> isinstance(r, CheckSatResult)
+ True
+ """
+
+ def __init__(self, r):
+ self.r = r
+
+ def __eq__(self, other):
+ return isinstance(other, CheckSatResult) and self.r == other.r
+
+ def __ne__(self, other):
+ return not self.__eq__(other)
+
+ def __repr__(self):
+ if in_html_mode():
+ if self.r == Z3_L_TRUE:
+ return "<b>sat</b>"
+ elif self.r == Z3_L_FALSE:
+ return "<b>unsat</b>"
+ else:
+ return "<b>unknown</b>"
+ else:
+ if self.r == Z3_L_TRUE:
+ return "sat"
+ elif self.r == Z3_L_FALSE:
+ return "unsat"
+ else:
+ return "unknown"
+
+sat = CheckSatResult(Z3_L_TRUE)
+unsat = CheckSatResult(Z3_L_FALSE)
+unknown = CheckSatResult(Z3_L_UNDEF)
+
+class Solver(Z3PPObject):
+ """Solver API provides methods for implementing the main SMT 2.0 commands: push, pop, check, get-model, etc."""
+
+ def __init__(self, solver=None, ctx=None):
+ assert solver is None or ctx is not None
+ self.ctx = _get_ctx(ctx)
+ self.solver = None
+ if solver is None:
+ self.solver = Z3_mk_solver(self.ctx.ref())
+ else:
+ self.solver = solver
+ Z3_solver_inc_ref(self.ctx.ref(), self.solver)
+
+ def __del__(self):
+ if self.solver is not None and self.ctx.ref() is not None:
+ Z3_solver_dec_ref(self.ctx.ref(), self.solver)
+
+ def set(self, *args, **keys):
+ """Set a configuration option. The method `help()` return a string containing all available options.
+
+ >>> s = Solver()
+ >>> # The option MBQI can be set using three different approaches.
+ >>> s.set(mbqi=True)
+ >>> s.set('MBQI', True)
+ >>> s.set(':mbqi', True)
+ """
+ p = args2params(args, keys, self.ctx)
+ Z3_solver_set_params(self.ctx.ref(), self.solver, p.params)
+
+ def push(self):
+ """Create a backtracking point.
+
+ >>> x = Int('x')
+ >>> s = Solver()
+ >>> s.add(x > 0)
+ >>> s
+ [x > 0]
+ >>> s.push()
+ >>> s.add(x < 1)
+ >>> s
+ [x > 0, x < 1]
+ >>> s.check()
+ unsat
+ >>> s.pop()
+ >>> s.check()
+ sat
+ >>> s
+ [x > 0]
+ """
+ Z3_solver_push(self.ctx.ref(), self.solver)
+
+ def pop(self, num=1):
+ """Backtrack \c num backtracking points.
+
+ >>> x = Int('x')
+ >>> s = Solver()
+ >>> s.add(x > 0)
+ >>> s
+ [x > 0]
+ >>> s.push()
+ >>> s.add(x < 1)
+ >>> s
+ [x > 0, x < 1]
+ >>> s.check()
+ unsat
+ >>> s.pop()
+ >>> s.check()
+ sat
+ >>> s
+ [x > 0]
+ """
+ Z3_solver_pop(self.ctx.ref(), self.solver, num)
+
+ def reset(self):
+ """Remove all asserted constraints and backtracking points created using `push()`.
+
+ >>> x = Int('x')
+ >>> s = Solver()
+ >>> s.add(x > 0)
+ >>> s
+ [x > 0]
+ >>> s.reset()
+ >>> s
+ []
+ """
+ Z3_solver_reset(self.ctx.ref(), self.solver)
+
+ def assert_exprs(self, *args):
+ """Assert constraints into the solver.
+
+ >>> x = Int('x')
+ >>> s = Solver()
+ >>> s.assert_exprs(x > 0, x < 2)
+ >>> s
+ [x > 0, x < 2]
+ """
+ args = _get_args(args)
+ s = BoolSort(self.ctx)
+ for arg in args:
+ if isinstance(arg, Goal) or isinstance(arg, AstVector):
+ for f in arg:
+ Z3_solver_assert(self.ctx.ref(), self.solver, f.as_ast())
+ else:
+ arg = s.cast(arg)
+ Z3_solver_assert(self.ctx.ref(), self.solver, arg.as_ast())
+
+ def add(self, *args):
+ """Assert constraints into the solver.
+
+ >>> x = Int('x')
+ >>> s = Solver()
+ >>> s.add(x > 0, x < 2)
+ >>> s
+ [x > 0, x < 2]
+ """
+ self.assert_exprs(*args)
+
+ def __iadd__(self, fml):
+ self.add(fml)
+ return self
+
+ def append(self, *args):
+ """Assert constraints into the solver.
+
+ >>> x = Int('x')
+ >>> s = Solver()
+ >>> s.append(x > 0, x < 2)
+ >>> s
+ [x > 0, x < 2]
+ """
+ self.assert_exprs(*args)
+
+ def insert(self, *args):
+ """Assert constraints into the solver.
+
+ >>> x = Int('x')
+ >>> s = Solver()
+ >>> s.insert(x > 0, x < 2)
+ >>> s
+ [x > 0, x < 2]
+ """
+ self.assert_exprs(*args)
+
+ def assert_and_track(self, a, p):
+ """Assert constraint `a` and track it in the unsat core using the Boolean constant `p`.
+
+ If `p` is a string, it will be automatically converted into a Boolean constant.
+
+ >>> x = Int('x')
+ >>> p3 = Bool('p3')
+ >>> s = Solver()
+ >>> s.set(unsat_core=True)
+ >>> s.assert_and_track(x > 0, 'p1')
+ >>> s.assert_and_track(x != 1, 'p2')
+ >>> s.assert_and_track(x < 0, p3)
+ >>> print(s.check())
+ unsat
+ >>> c = s.unsat_core()
+ >>> len(c)
+ 2
+ >>> Bool('p1') in c
+ True
+ >>> Bool('p2') in c
+ False
+ >>> p3 in c
+ True
+ """
+ if isinstance(p, str):
+ p = Bool(p, self.ctx)
+ _z3_assert(isinstance(a, BoolRef), "Boolean expression expected")
+ _z3_assert(isinstance(p, BoolRef) and is_const(p), "Boolean expression expected")
+ Z3_solver_assert_and_track(self.ctx.ref(), self.solver, a.as_ast(), p.as_ast())
+
+ def check(self, *assumptions):
+ """Check whether the assertions in the given solver plus the optional assumptions are consistent or not.
+
+ >>> x = Int('x')
+ >>> s = Solver()
+ >>> s.check()
+ sat
+ >>> s.add(x > 0, x < 2)
+ >>> s.check()
+ sat
+ >>> s.model()
+ [x = 1]
+ >>> s.add(x < 1)
+ >>> s.check()
+ unsat
+ >>> s.reset()
+ >>> s.add(2**x == 4)
+ >>> s.check()
+ unknown
+ """
+ assumptions = _get_args(assumptions)
+ num = len(assumptions)
+ _assumptions = (Ast * num)()
+ for i in range(num):
+ _assumptions[i] = assumptions[i].as_ast()
+ r = Z3_solver_check_assumptions(self.ctx.ref(), self.solver, num, _assumptions)
+ return CheckSatResult(r)
+
+ def model(self):
+ """Return a model for the last `check()`.
+
+ This function raises an exception if
+ a model is not available (e.g., last `check()` returned unsat).
+
+ >>> s = Solver()
+ >>> a = Int('a')
+ >>> s.add(a + 2 == 0)
+ >>> s.check()
+ sat
+ >>> s.model()
+ [a = -2]
+ """
+ try:
+ return ModelRef(Z3_solver_get_model(self.ctx.ref(), self.solver), self.ctx)
+ except Z3Exception:
+ raise Z3Exception("model is not available")
+
+ def unsat_core(self):
+ """Return a subset (as an AST vector) of the assumptions provided to the last check().
+
+ These are the assumptions Z3 used in the unsatisfiability proof.
+ Assumptions are available in Z3. They are used to extract unsatisfiable cores.
+ They may be also used to "retract" assumptions. Note that, assumptions are not really
+ "soft constraints", but they can be used to implement them.
+
+ >>> p1, p2, p3 = Bools('p1 p2 p3')
+ >>> x, y = Ints('x y')
+ >>> s = Solver()
+ >>> s.add(Implies(p1, x > 0))
+ >>> s.add(Implies(p2, y > x))
+ >>> s.add(Implies(p2, y < 1))
+ >>> s.add(Implies(p3, y > -3))
+ >>> s.check(p1, p2, p3)
+ unsat
+ >>> core = s.unsat_core()
+ >>> len(core)
+ 2
+ >>> p1 in core
+ True
+ >>> p2 in core
+ True
+ >>> p3 in core
+ False
+ >>> # "Retracting" p2
+ >>> s.check(p1, p3)
+ sat
+ """
+ return AstVector(Z3_solver_get_unsat_core(self.ctx.ref(), self.solver), self.ctx)
+
+ def consequences(self, assumptions, variables):
+ """Determine fixed values for the variables based on the solver state and assumptions.
+ >>> s = Solver()
+ >>> a, b, c, d = Bools('a b c d')
+ >>> s.add(Implies(a,b), Implies(b, c))
+ >>> s.consequences([a],[b,c,d])
+ (sat, [Implies(a, b), Implies(a, c)])
+ >>> s.consequences([Not(c),d],[a,b,c,d])
+ (sat, [Implies(Not(c), Not(c)), Implies(d, d), Implies(Not(c), Not(b)), Implies(Not(c), Not(a))])
+ """
+ if isinstance(assumptions, list):
+ _asms = AstVector(None, self.ctx)
+ for a in assumptions:
+ _asms.push(a)
+ assumptions = _asms
+ if isinstance(variables, list):
+ _vars = AstVector(None, self.ctx)
+ for a in variables:
+ _vars.push(a)
+ variables = _vars
+ _z3_assert(isinstance(assumptions, AstVector), "ast vector expected")
+ _z3_assert(isinstance(variables, AstVector), "ast vector expected")
+ consequences = AstVector(None, self.ctx)
+ r = Z3_solver_get_consequences(self.ctx.ref(), self.solver, assumptions.vector, variables.vector, consequences.vector)
+ sz = len(consequences)
+ consequences = [ consequences[i] for i in range(sz) ]
+ return CheckSatResult(r), consequences
+
+ def proof(self):
+ """Return a proof for the last `check()`. Proof construction must be enabled."""
+ return _to_expr_ref(Z3_solver_get_proof(self.ctx.ref(), self.solver), self.ctx)
+
+ def assertions(self):
+ """Return an AST vector containing all added constraints.
+
+ >>> s = Solver()
+ >>> s.assertions()
+ []
+ >>> a = Int('a')
+ >>> s.add(a > 0)
+ >>> s.add(a < 10)
+ >>> s.assertions()
+ [a > 0, a < 10]
+ """
+ return AstVector(Z3_solver_get_assertions(self.ctx.ref(), self.solver), self.ctx)
+
+ def statistics(self):
+ """Return statistics for the last `check()`.
+
+ >>> s = SimpleSolver()
+ >>> x = Int('x')
+ >>> s.add(x > 0)
+ >>> s.check()
+ sat
+ >>> st = s.statistics()
+ >>> st.get_key_value('final checks')
+ 1
+ >>> len(st) > 0
+ True
+ >>> st[0] != 0
+ True
+ """
+ return Statistics(Z3_solver_get_statistics(self.ctx.ref(), self.solver), self.ctx)
+
+ def reason_unknown(self):
+ """Return a string describing why the last `check()` returned `unknown`.
+
+ >>> x = Int('x')
+ >>> s = SimpleSolver()
+ >>> s.add(2**x == 4)
+ >>> s.check()
+ unknown
+ >>> s.reason_unknown()
+ '(incomplete (theory arithmetic))'
+ """
+ return Z3_solver_get_reason_unknown(self.ctx.ref(), self.solver)
+
+ def help(self):
+ """Display a string describing all available options."""
+ print(Z3_solver_get_help(self.ctx.ref(), self.solver))
+
+ def param_descrs(self):
+ """Return the parameter description set."""
+ return ParamDescrsRef(Z3_solver_get_param_descrs(self.ctx.ref(), self.solver), self.ctx)
+
+ def __repr__(self):
+ """Return a formatted string with all added constraints."""
+ return obj_to_string(self)
+
+ def translate(self, target):
+ """Translate `self` to the context `target`. That is, return a copy of `self` in the context `target`.
+
+ >>> c1 = Context()
+ >>> c2 = Context()
+ >>> s1 = Solver(ctx=c1)
+ >>> s2 = s1.translate(c2)
+ """
+ if __debug__:
+ _z3_assert(isinstance(target, Context), "argument must be a Z3 context")
+ solver = Z3_solver_translate(self.ctx.ref(), self.solver, target.ref())
+ return Solver(solver, target)
+
+ def sexpr(self):
+ """Return a formatted string (in Lisp-like format) with all added constraints. We say the string is in s-expression format.
+
+ >>> x = Int('x')
+ >>> s = Solver()
+ >>> s.add(x > 0)
+ >>> s.add(x < 2)
+ >>> r = s.sexpr()
+ """
+ return Z3_solver_to_string(self.ctx.ref(), self.solver)
+
+ def to_smt2(self):
+ """return SMTLIB2 formatted benchmark for solver's assertions"""
+ es = self.assertions()
+ sz = len(es)
+ sz1 = sz
+ if sz1 > 0:
+ sz1 -= 1
+ v = (Ast * sz1)()
+ for i in range(sz1):
+ v[i] = es[i].as_ast()
+ if sz > 0:
+ e = es[sz1].as_ast()
+ else:
+ e = BoolVal(True, self.ctx).as_ast()
+ return Z3_benchmark_to_smtlib_string(self.ctx.ref(), "benchmark generated from python API", "", "unknown", "", sz1, v, e)
+
+def SolverFor(logic, ctx=None):
+ """Create a solver customized for the given logic.
+
+ The parameter `logic` is a string. It should be contains
+ the name of a SMT-LIB logic.
+ See http://www.smtlib.org/ for the name of all available logics.
+
+ >>> s = SolverFor("QF_LIA")
+ >>> x = Int('x')
+ >>> s.add(x > 0)
+ >>> s.add(x < 2)
+ >>> s.check()
+ sat
+ >>> s.model()
+ [x = 1]
+ """
+ ctx = _get_ctx(ctx)
+ logic = to_symbol(logic)
+ return Solver(Z3_mk_solver_for_logic(ctx.ref(), logic), ctx)
+
+def SimpleSolver(ctx=None):
+ """Return a simple general purpose solver with limited amount of preprocessing.
+
+ >>> s = SimpleSolver()
+ >>> x = Int('x')
+ >>> s.add(x > 0)
+ >>> s.check()
+ sat
+ """
+ ctx = _get_ctx(ctx)
+ return Solver(Z3_mk_simple_solver(ctx.ref()), ctx)
+
+#########################################
+#
+# Fixedpoint
+#
+#########################################
+
+class Fixedpoint(Z3PPObject):
+ """Fixedpoint API provides methods for solving with recursive predicates"""
+
+ def __init__(self, fixedpoint=None, ctx=None):
+ assert fixedpoint is None or ctx is not None
+ self.ctx = _get_ctx(ctx)
+ self.fixedpoint = None
+ if fixedpoint is None:
+ self.fixedpoint = Z3_mk_fixedpoint(self.ctx.ref())
+ else:
+ self.fixedpoint = fixedpoint
+ Z3_fixedpoint_inc_ref(self.ctx.ref(), self.fixedpoint)
+ self.vars = []
+
+ def __del__(self):
+ if self.fixedpoint is not None and self.ctx.ref() is not None:
+ Z3_fixedpoint_dec_ref(self.ctx.ref(), self.fixedpoint)
+
+ def set(self, *args, **keys):
+ """Set a configuration option. The method `help()` return a string containing all available options.
+ """
+ p = args2params(args, keys, self.ctx)
+ Z3_fixedpoint_set_params(self.ctx.ref(), self.fixedpoint, p.params)
+
+ def help(self):
+ """Display a string describing all available options."""
+ print(Z3_fixedpoint_get_help(self.ctx.ref(), self.fixedpoint))
+
+ def param_descrs(self):
+ """Return the parameter description set."""
+ return ParamDescrsRef(Z3_fixedpoint_get_param_descrs(self.ctx.ref(), self.fixedpoint), self.ctx)
+
+ def assert_exprs(self, *args):
+ """Assert constraints as background axioms for the fixedpoint solver."""
+ args = _get_args(args)
+ s = BoolSort(self.ctx)
+ for arg in args:
+ if isinstance(arg, Goal) or isinstance(arg, AstVector):
+ for f in arg:
+ f = self.abstract(f)
+ Z3_fixedpoint_assert(self.ctx.ref(), self.fixedpoint, f.as_ast())
+ else:
+ arg = s.cast(arg)
+ arg = self.abstract(arg)
+ Z3_fixedpoint_assert(self.ctx.ref(), self.fixedpoint, arg.as_ast())
+
+ def add(self, *args):
+ """Assert constraints as background axioms for the fixedpoint solver. Alias for assert_expr."""
+ self.assert_exprs(*args)
+
+ def __iadd__(self, fml):
+ self.add(fml)
+ return self
+
+ def append(self, *args):
+ """Assert constraints as background axioms for the fixedpoint solver. Alias for assert_expr."""
+ self.assert_exprs(*args)
+
+ def insert(self, *args):
+ """Assert constraints as background axioms for the fixedpoint solver. Alias for assert_expr."""
+ self.assert_exprs(*args)
+
+ def add_rule(self, head, body = None, name = None):
+ """Assert rules defining recursive predicates to the fixedpoint solver.
+ >>> a = Bool('a')
+ >>> b = Bool('b')
+ >>> s = Fixedpoint()
+ >>> s.register_relation(a.decl())
+ >>> s.register_relation(b.decl())
+ >>> s.fact(a)
+ >>> s.rule(b, a)
+ >>> s.query(b)
+ sat
+ """
+ if name is None:
+ name = ""
+ name = to_symbol(name, self.ctx)
+ if body is None:
+ head = self.abstract(head)
+ Z3_fixedpoint_add_rule(self.ctx.ref(), self.fixedpoint, head.as_ast(), name)
+ else:
+ body = _get_args(body)
+ f = self.abstract(Implies(And(body, self.ctx),head))
+ Z3_fixedpoint_add_rule(self.ctx.ref(), self.fixedpoint, f.as_ast(), name)
+
+ def rule(self, head, body = None, name = None):
+ """Assert rules defining recursive predicates to the fixedpoint solver. Alias for add_rule."""
+ self.add_rule(head, body, name)
+
+ def fact(self, head, name = None):
+ """Assert facts defining recursive predicates to the fixedpoint solver. Alias for add_rule."""
+ self.add_rule(head, None, name)
+
+ def query(self, *query):
+ """Query the fixedpoint engine whether formula is derivable.
+ You can also pass an tuple or list of recursive predicates.
+ """
+ query = _get_args(query)
+ sz = len(query)
+ if sz >= 1 and isinstance(query[0], FuncDeclRef):
+ _decls = (FuncDecl * sz)()
+ i = 0
+ for q in query:
+ _decls[i] = q.ast
+ i = i + 1
+ r = Z3_fixedpoint_query_relations(self.ctx.ref(), self.fixedpoint, sz, _decls)
+ else:
+ if sz == 1:
+ query = query[0]
+ else:
+ query = And(query, self.ctx)
+ query = self.abstract(query, False)
+ r = Z3_fixedpoint_query(self.ctx.ref(), self.fixedpoint, query.as_ast())
+ return CheckSatResult(r)
+
+ def push(self):
+ """create a backtracking point for added rules, facts and assertions"""
+ Z3_fixedpoint_push(self.ctx.ref(), self.fixedpoint)
+
+ def pop(self):
+ """restore to previously created backtracking point"""
+ Z3_fixedpoint_pop(self.ctx.ref(), self.fixedpoint)
+
+ def update_rule(self, head, body, name):
+ """update rule"""
+ if name is None:
+ name = ""
+ name = to_symbol(name, self.ctx)
+ body = _get_args(body)
+ f = self.abstract(Implies(And(body, self.ctx),head))
+ Z3_fixedpoint_update_rule(self.ctx.ref(), self.fixedpoint, f.as_ast(), name)
+
+ def get_answer(self):
+ """Retrieve answer from last query call."""
+ r = Z3_fixedpoint_get_answer(self.ctx.ref(), self.fixedpoint)
+ return _to_expr_ref(r, self.ctx)
+
+ def get_num_levels(self, predicate):
+ """Retrieve number of levels used for predicate in PDR engine"""
+ return Z3_fixedpoint_get_num_levels(self.ctx.ref(), self.fixedpoint, predicate.ast)
+
+ def get_cover_delta(self, level, predicate):
+ """Retrieve properties known about predicate for the level'th unfolding. -1 is treated as the limit (infinity)"""
+ r = Z3_fixedpoint_get_cover_delta(self.ctx.ref(), self.fixedpoint, level, predicate.ast)
+ return _to_expr_ref(r, self.ctx)
+
+ def add_cover(self, level, predicate, property):
+ """Add property to predicate for the level'th unfolding. -1 is treated as infinity (infinity)"""
+ Z3_fixedpoint_add_cover(self.ctx.ref(), self.fixedpoint, level, predicate.ast, property.ast)
+
+ def register_relation(self, *relations):
+ """Register relation as recursive"""
+ relations = _get_args(relations)
+ for f in relations:
+ Z3_fixedpoint_register_relation(self.ctx.ref(), self.fixedpoint, f.ast)
+
+ def set_predicate_representation(self, f, *representations):
+ """Control how relation is represented"""
+ representations = _get_args(representations)
+ representations = [to_symbol(s) for s in representations]
+ sz = len(representations)
+ args = (Symbol * sz)()
+ for i in range(sz):
+ args[i] = representations[i]
+ Z3_fixedpoint_set_predicate_representation(self.ctx.ref(), self.fixedpoint, f.ast, sz, args)
+
+ def parse_string(self, s):
+ """Parse rules and queries from a string"""
+ return AstVector(Z3_fixedpoint_from_string(self.ctx.ref(), self.fixedpoint, s), self.ctx)
+
+ def parse_file(self, f):
+ """Parse rules and queries from a file"""
+ return AstVector(Z3_fixedpoint_from_file(self.ctx.ref(), self.fixedpoint, f), self.ctx)
+
+ def get_rules(self):
+ """retrieve rules that have been added to fixedpoint context"""
+ return AstVector(Z3_fixedpoint_get_rules(self.ctx.ref(), self.fixedpoint), self.ctx)
+
+ def get_assertions(self):
+ """retrieve assertions that have been added to fixedpoint context"""
+ return AstVector(Z3_fixedpoint_get_assertions(self.ctx.ref(), self.fixedpoint), self.ctx)
+
+ def __repr__(self):
+ """Return a formatted string with all added rules and constraints."""
+ return self.sexpr()
+
+ def sexpr(self):
+ """Return a formatted string (in Lisp-like format) with all added constraints. We say the string is in s-expression format.
+ """
+ return Z3_fixedpoint_to_string(self.ctx.ref(), self.fixedpoint, 0, (Ast * 0)())
+
+ def to_string(self, queries):
+ """Return a formatted string (in Lisp-like format) with all added constraints.
+ We say the string is in s-expression format.
+ Include also queries.
+ """
+ args, len = _to_ast_array(queries)
+ return Z3_fixedpoint_to_string(self.ctx.ref(), self.fixedpoint, len, args)
+
+ def statistics(self):
+ """Return statistics for the last `query()`.
+ """
+ return Statistics(Z3_fixedpoint_get_statistics(self.ctx.ref(), self.fixedpoint), self.ctx)
+
+ def reason_unknown(self):
+ """Return a string describing why the last `query()` returned `unknown`.
+ """
+ return Z3_fixedpoint_get_reason_unknown(self.ctx.ref(), self.fixedpoint)
+
+ def declare_var(self, *vars):
+ """Add variable or several variables.
+ The added variable or variables will be bound in the rules
+ and queries
+ """
+ vars = _get_args(vars)
+ for v in vars:
+ self.vars += [v]
+
+ def abstract(self, fml, is_forall=True):
+ if self.vars == []:
+ return fml
+ if is_forall:
+ return ForAll(self.vars, fml)
+ else:
+ return Exists(self.vars, fml)
+
+
+#########################################
+#
+# Finite domains
+#
+#########################################
+
+class FiniteDomainSortRef(SortRef):
+ """Finite domain sort."""
+
+ def size(self):
+ """Return the size of the finite domain sort"""
+ r = (ctype.c_ulonglong * 1)()
+ if Z3_get_finite_domain_sort_size(self.ctx_ref(), self.ast(), r):
+ return r[0]
+ else:
+ raise Z3Exception("Failed to retrieve finite domain sort size")
+
+def FiniteDomainSort(name, sz, ctx=None):
+ """Create a named finite domain sort of a given size sz"""
+ if not isinstance(name, Symbol):
+ name = to_symbol(name)
+ ctx = _get_ctx(ctx)
+ return FiniteDomainSortRef(Z3_mk_finite_domain_sort(ctx.ref(), name, sz), ctx)
+
+def is_finite_domain_sort(s):
+ """Return True if `s` is a Z3 finite-domain sort.
+
+ >>> is_finite_domain_sort(FiniteDomainSort('S', 100))
+ True
+ >>> is_finite_domain_sort(IntSort())
+ False
+ """
+ return isinstance(s, FiniteDomainSortRef)
+
+
+class FiniteDomainRef(ExprRef):
+ """Finite-domain expressions."""
+
+ def sort(self):
+ """Return the sort of the finite-domain expression `self`."""
+ return FiniteDomainSortRef(Z3_get_sort(self.ctx_ref(), self.as_ast()), self.ctx)
+
+ def as_string(self):
+ """Return a Z3 floating point expression as a Python string."""
+ return Z3_ast_to_string(self.ctx_ref(), self.as_ast())
+
+def is_finite_domain(a):
+ """Return `True` if `a` is a Z3 finite-domain expression.
+
+ >>> s = FiniteDomainSort('S', 100)
+ >>> b = Const('b', s)
+ >>> is_finite_domain(b)
+ True
+ >>> is_finite_domain(Int('x'))
+ False
+ """
+ return isinstance(a, FiniteDomainRef)
+
+
+class FiniteDomainNumRef(FiniteDomainRef):
+ """Integer values."""
+
+ def as_long(self):
+ """Return a Z3 finite-domain numeral as a Python long (bignum) numeral.
+
+ >>> s = FiniteDomainSort('S', 100)
+ >>> v = FiniteDomainVal(3, s)
+ >>> v
+ 3
+ >>> v.as_long() + 1
+ 4
+ """
+ return int(self.as_string())
+
+ def as_string(self):
+ """Return a Z3 finite-domain numeral as a Python string.
+
+ >>> s = FiniteDomainSort('S', 100)
+ >>> v = FiniteDomainVal(42, s)
+ >>> v.as_string()
+ '42'
+ """
+ return Z3_get_numeral_string(self.ctx_ref(), self.as_ast())
+
+
+def FiniteDomainVal(val, sort, ctx=None):
+ """Return a Z3 finite-domain value. If `ctx=None`, then the global context is used.
+
+ >>> s = FiniteDomainSort('S', 256)
+ >>> FiniteDomainVal(255, s)
+ 255
+ >>> FiniteDomainVal('100', s)
+ 100
+ """
+ if __debug__:
+ _z3_assert(is_finite_domain_sort(sort), "Expected finite-domain sort" )
+ ctx = sort.ctx
+ return FiniteDomainNumRef(Z3_mk_numeral(ctx.ref(), _to_int_str(val), sort.ast), ctx)
+
+def is_finite_domain_value(a):
+ """Return `True` if `a` is a Z3 finite-domain value.
+
+ >>> s = FiniteDomainSort('S', 100)
+ >>> b = Const('b', s)
+ >>> is_finite_domain_value(b)
+ False
+ >>> b = FiniteDomainVal(10, s)
+ >>> b
+ 10
+ >>> is_finite_domain_value(b)
+ True
+ """
+ return is_finite_domain(a) and _is_numeral(a.ctx, a.as_ast())
+
+
+#########################################
+#
+# Optimize
+#
+#########################################
+
+class OptimizeObjective:
+ def __init__(self, opt, value, is_max):
+ self._opt = opt
+ self._value = value
+ self._is_max = is_max
+
+ def lower(self):
+ opt = self._opt
+ return _to_expr_ref(Z3_optimize_get_lower(opt.ctx.ref(), opt.optimize, self._value), opt.ctx)
+
+ def upper(self):
+ opt = self._opt
+ return _to_expr_ref(Z3_optimize_get_upper(opt.ctx.ref(), opt.optimize, self._value), opt.ctx)
+
+ def value(self):
+ if self._is_max:
+ return self.upper()
+ else:
+ return self.lower()
+
+class Optimize(Z3PPObject):
+ """Optimize API provides methods for solving using objective functions and weighted soft constraints"""
+
+ def __init__(self, ctx=None):
+ self.ctx = _get_ctx(ctx)
+ self.optimize = Z3_mk_optimize(self.ctx.ref())
+ Z3_optimize_inc_ref(self.ctx.ref(), self.optimize)
+
+ def __del__(self):
+ if self.optimize is not None and self.ctx.ref() is not None:
+ Z3_optimize_dec_ref(self.ctx.ref(), self.optimize)
+
+ def set(self, *args, **keys):
+ """Set a configuration option. The method `help()` return a string containing all available options.
+ """
+ p = args2params(args, keys, self.ctx)
+ Z3_optimize_set_params(self.ctx.ref(), self.optimize, p.params)
+
+ def help(self):
+ """Display a string describing all available options."""
+ print(Z3_optimize_get_help(self.ctx.ref(), self.optimize))
+
+ def param_descrs(self):
+ """Return the parameter description set."""
+ return ParamDescrsRef(Z3_optimize_get_param_descrs(self.ctx.ref(), self.optimize), self.ctx)
+
+ def assert_exprs(self, *args):
+ """Assert constraints as background axioms for the optimize solver."""
+ args = _get_args(args)
+ for arg in args:
+ if isinstance(arg, Goal) or isinstance(arg, AstVector):
+ for f in arg:
+ Z3_optimize_assert(self.ctx.ref(), self.optimize, f.as_ast())
+ else:
+ Z3_optimize_assert(self.ctx.ref(), self.optimize, arg.as_ast())
+
+ def add(self, *args):
+ """Assert constraints as background axioms for the optimize solver. Alias for assert_expr."""
+ self.assert_exprs(*args)
+
+ def __iadd__(self, fml):
+ self.add(fml)
+ return self
+
+ def add_soft(self, arg, weight = "1", id = None):
+ """Add soft constraint with optional weight and optional identifier.
+ If no weight is supplied, then the penalty for violating the soft constraint
+ is 1.
+ Soft constraints are grouped by identifiers. Soft constraints that are
+ added without identifiers are grouped by default.
+ """
+ if _is_int(weight):
+ weight = "%d" % weight
+ elif isinstance(weight, float):
+ weight = "%f" % weight
+ if not isinstance(weight, str):
+ raise Z3Exception("weight should be a string or an integer")
+ if id is None:
+ id = ""
+ id = to_symbol(id, self.ctx)
+ v = Z3_optimize_assert_soft(self.ctx.ref(), self.optimize, arg.as_ast(), weight, id)
+ return OptimizeObjective(self, v, False)
+
+ def maximize(self, arg):
+ """Add objective function to maximize."""
+ return OptimizeObjective(self, Z3_optimize_maximize(self.ctx.ref(), self.optimize, arg.as_ast()), True)
+
+ def minimize(self, arg):
+ """Add objective function to minimize."""
+ return OptimizeObjective(self, Z3_optimize_minimize(self.ctx.ref(), self.optimize, arg.as_ast()), False)
+
+ def push(self):
+ """create a backtracking point for added rules, facts and assertions"""
+ Z3_optimize_push(self.ctx.ref(), self.optimize)
+
+ def pop(self):
+ """restore to previously created backtracking point"""
+ Z3_optimize_pop(self.ctx.ref(), self.optimize)
+
+ def check(self):
+ """Check satisfiability while optimizing objective functions."""
+ return CheckSatResult(Z3_optimize_check(self.ctx.ref(), self.optimize))
+
+ def reason_unknown(self):
+ """Return a string that describes why the last `check()` returned `unknown`."""
+ return Z3_optimize_get_reason_unknown(self.ctx.ref(), self.optimize)
+
+ def model(self):
+ """Return a model for the last check()."""
+ try:
+ return ModelRef(Z3_optimize_get_model(self.ctx.ref(), self.optimize), self.ctx)
+ except Z3Exception:
+ raise Z3Exception("model is not available")
+
+ def lower(self, obj):
+ if not isinstance(obj, OptimizeObjective):
+ raise Z3Exception("Expecting objective handle returned by maximize/minimize")
+ return obj.lower()
+
+ def upper(self, obj):
+ if not isinstance(obj, OptimizeObjective):
+ raise Z3Exception("Expecting objective handle returned by maximize/minimize")
+ return obj.upper()
+
+ def from_file(self, filename):
+ """Parse assertions and objectives from a file"""
+ Z3_optimize_from_file(self.ctx.ref(), self.optimize, filename)
+
+ def from_string(self, s):
+ """Parse assertions and objectives from a string"""
+ Z3_optimize_from_string(self.ctx.ref(), self.optimize, s)
+
+ def assertions(self):
+ """Return an AST vector containing all added constraints."""
+ return AstVector(Z3_optimize_get_assertions(self.ctx.ref(), self.optimize), self.ctx)
+
+ def objectives(self):
+ """returns set of objective functions"""
+ return AstVector(Z3_optimize_get_objectives(self.ctx.ref(), self.optimize), self.ctx)
+
+ def __repr__(self):
+ """Return a formatted string with all added rules and constraints."""
+ return self.sexpr()
+
+ def sexpr(self):
+ """Return a formatted string (in Lisp-like format) with all added constraints. We say the string is in s-expression format.
+ """
+ return Z3_optimize_to_string(self.ctx.ref(), self.optimize)
+
+ def statistics(self):
+ """Return statistics for the last check`.
+ """
+ return Statistics(Z3_optimize_get_statistics(self.ctx.ref(), self.optimize), self.ctx)
+
+
+
+
+#########################################
+#
+# ApplyResult
+#
+#########################################
+class ApplyResult(Z3PPObject):
+ """An ApplyResult object contains the subgoals produced by a tactic when applied to a goal. It also contains model and proof converters."""
+
+ def __init__(self, result, ctx):
+ self.result = result
+ self.ctx = ctx
+ Z3_apply_result_inc_ref(self.ctx.ref(), self.result)
+
+ def __del__(self):
+ if self.ctx.ref() is not None:
+ Z3_apply_result_dec_ref(self.ctx.ref(), self.result)
+
+ def __len__(self):
+ """Return the number of subgoals in `self`.
+
+ >>> a, b = Ints('a b')
+ >>> g = Goal()
+ >>> g.add(Or(a == 0, a == 1), Or(b == 0, b == 1), a > b)
+ >>> t = Tactic('split-clause')
+ >>> r = t(g)
+ >>> len(r)
+ 2
+ >>> t = Then(Tactic('split-clause'), Tactic('split-clause'))
+ >>> len(t(g))
+ 4
+ >>> t = Then(Tactic('split-clause'), Tactic('split-clause'), Tactic('propagate-values'))
+ >>> len(t(g))
+ 1
+ """
+ return int(Z3_apply_result_get_num_subgoals(self.ctx.ref(), self.result))
+
+ def __getitem__(self, idx):
+ """Return one of the subgoals stored in ApplyResult object `self`.
+
+ >>> a, b = Ints('a b')
+ >>> g = Goal()
+ >>> g.add(Or(a == 0, a == 1), Or(b == 0, b == 1), a > b)
+ >>> t = Tactic('split-clause')
+ >>> r = t(g)
+ >>> r[0]
+ [a == 0, Or(b == 0, b == 1), a > b]
+ >>> r[1]
+ [a == 1, Or(b == 0, b == 1), a > b]
+ """
+ if idx >= len(self):
+ raise IndexError
+ return Goal(goal=Z3_apply_result_get_subgoal(self.ctx.ref(), self.result, idx), ctx=self.ctx)
+
+ def __repr__(self):
+ return obj_to_string(self)
+
+ def sexpr(self):
+ """Return a textual representation of the s-expression representing the set of subgoals in `self`."""
+ return Z3_apply_result_to_string(self.ctx.ref(), self.result)
+
+ def convert_model(self, model, idx=0):
+ """Convert a model for a subgoal into a model for the original goal.
+
+ >>> a, b = Ints('a b')
+ >>> g = Goal()
+ >>> g.add(Or(a == 0, a == 1), Or(b == 0, b == 1), a > b)
+ >>> t = Then(Tactic('split-clause'), Tactic('solve-eqs'))
+ >>> r = t(g)
+ >>> r[0]
+ [Or(b == 0, b == 1), Not(0 <= b)]
+ >>> r[1]
+ [Or(b == 0, b == 1), Not(1 <= b)]
+ >>> # Remark: the subgoal r[0] is unsatisfiable
+ >>> # Creating a solver for solving the second subgoal
+ >>> s = Solver()
+ >>> s.add(r[1])
+ >>> s.check()
+ sat
+ >>> s.model()
+ [b = 0]
+ >>> # Model s.model() does not assign a value to `a`
+ >>> # It is a model for subgoal `r[1]`, but not for goal `g`
+ >>> # The method convert_model creates a model for `g` from a model for `r[1]`.
+ >>> r.convert_model(s.model(), 1)
+ [b = 0, a = 1]
+ """
+ if __debug__:
+ _z3_assert(idx < len(self), "index out of bounds")
+ _z3_assert(isinstance(model, ModelRef), "Z3 Model expected")
+ return ModelRef(Z3_apply_result_convert_model(self.ctx.ref(), self.result, idx, model.model), self.ctx)
+
+ def as_expr(self):
+ """Return a Z3 expression consisting of all subgoals.
+
+ >>> x = Int('x')
+ >>> g = Goal()
+ >>> g.add(x > 1)
+ >>> g.add(Or(x == 2, x == 3))
+ >>> r = Tactic('simplify')(g)
+ >>> r
+ [[Not(x <= 1), Or(x == 2, x == 3)]]
+ >>> r.as_expr()
+ And(Not(x <= 1), Or(x == 2, x == 3))
+ >>> r = Tactic('split-clause')(g)
+ >>> r
+ [[x > 1, x == 2], [x > 1, x == 3]]
+ >>> r.as_expr()
+ Or(And(x > 1, x == 2), And(x > 1, x == 3))
+ """
+ sz = len(self)
+ if sz == 0:
+ return BoolVal(False, self.ctx)
+ elif sz == 1:
+ return self[0].as_expr()
+ else:
+ return Or([ self[i].as_expr() for i in range(len(self)) ])
+
+#########################################
+#
+# Tactics
+#
+#########################################
+class Tactic:
+ """Tactics transform, solver and/or simplify sets of constraints (Goal). A Tactic can be converted into a Solver using the method solver().
+
+ Several combinators are available for creating new tactics using the built-in ones: Then(), OrElse(), FailIf(), Repeat(), When(), Cond().
+ """
+ def __init__(self, tactic, ctx=None):
+ self.ctx = _get_ctx(ctx)
+ self.tactic = None
+ if isinstance(tactic, TacticObj):
+ self.tactic = tactic
+ else:
+ if __debug__:
+ _z3_assert(isinstance(tactic, str), "tactic name expected")
+ try:
+ self.tactic = Z3_mk_tactic(self.ctx.ref(), str(tactic))
+ except Z3Exception:
+ raise Z3Exception("unknown tactic '%s'" % tactic)
+ Z3_tactic_inc_ref(self.ctx.ref(), self.tactic)
+
+ def __del__(self):
+ if self.tactic is not None and self.ctx.ref() is not None:
+ Z3_tactic_dec_ref(self.ctx.ref(), self.tactic)
+
+ def solver(self):
+ """Create a solver using the tactic `self`.
+
+ The solver supports the methods `push()` and `pop()`, but it
+ will always solve each `check()` from scratch.
+
+ >>> t = Then('simplify', 'nlsat')
+ >>> s = t.solver()
+ >>> x = Real('x')
+ >>> s.add(x**2 == 2, x > 0)
+ >>> s.check()
+ sat
+ >>> s.model()
+ [x = 1.4142135623?]
+ """
+ return Solver(Z3_mk_solver_from_tactic(self.ctx.ref(), self.tactic), self.ctx)
+
+ def apply(self, goal, *arguments, **keywords):
+ """Apply tactic `self` to the given goal or Z3 Boolean expression using the given options.
+
+ >>> x, y = Ints('x y')
+ >>> t = Tactic('solve-eqs')
+ >>> t.apply(And(x == 0, y >= x + 1))
+ [[y >= 1]]
+ """
+ if __debug__:
+ _z3_assert(isinstance(goal, Goal) or isinstance(goal, BoolRef), "Z3 Goal or Boolean expressions expected")
+ goal = _to_goal(goal)
+ if len(arguments) > 0 or len(keywords) > 0:
+ p = args2params(arguments, keywords, self.ctx)
+ return ApplyResult(Z3_tactic_apply_ex(self.ctx.ref(), self.tactic, goal.goal, p.params), self.ctx)
+ else:
+ return ApplyResult(Z3_tactic_apply(self.ctx.ref(), self.tactic, goal.goal), self.ctx)
+
+ def __call__(self, goal, *arguments, **keywords):
+ """Apply tactic `self` to the given goal or Z3 Boolean expression using the given options.
+
+ >>> x, y = Ints('x y')
+ >>> t = Tactic('solve-eqs')
+ >>> t(And(x == 0, y >= x + 1))
+ [[y >= 1]]
+ """
+ return self.apply(goal, *arguments, **keywords)
+
+ def help(self):
+ """Display a string containing a description of the available options for the `self` tactic."""
+ print(Z3_tactic_get_help(self.ctx.ref(), self.tactic))
+
+ def param_descrs(self):
+ """Return the parameter description set."""
+ return ParamDescrsRef(Z3_tactic_get_param_descrs(self.ctx.ref(), self.tactic), self.ctx)
+
+def _to_goal(a):
+ if isinstance(a, BoolRef):
+ goal = Goal(ctx = a.ctx)
+ goal.add(a)
+ return goal
+ else:
+ return a
+
+def _to_tactic(t, ctx=None):
+ if isinstance(t, Tactic):
+ return t
+ else:
+ return Tactic(t, ctx)
+
+def _and_then(t1, t2, ctx=None):
+ t1 = _to_tactic(t1, ctx)
+ t2 = _to_tactic(t2, ctx)
+ if __debug__:
+ _z3_assert(t1.ctx == t2.ctx, "Context mismatch")
+ return Tactic(Z3_tactic_and_then(t1.ctx.ref(), t1.tactic, t2.tactic), t1.ctx)
+
+def _or_else(t1, t2, ctx=None):
+ t1 = _to_tactic(t1, ctx)
+ t2 = _to_tactic(t2, ctx)
+ if __debug__:
+ _z3_assert(t1.ctx == t2.ctx, "Context mismatch")
+ return Tactic(Z3_tactic_or_else(t1.ctx.ref(), t1.tactic, t2.tactic), t1.ctx)
+
+def AndThen(*ts, **ks):
+ """Return a tactic that applies the tactics in `*ts` in sequence.
+
+ >>> x, y = Ints('x y')
+ >>> t = AndThen(Tactic('simplify'), Tactic('solve-eqs'))
+ >>> t(And(x == 0, y > x + 1))
+ [[Not(y <= 1)]]
+ >>> t(And(x == 0, y > x + 1)).as_expr()
+ Not(y <= 1)
+ """
+ if __debug__:
+ _z3_assert(len(ts) >= 2, "At least two arguments expected")
+ ctx = ks.get('ctx', None)
+ num = len(ts)
+ r = ts[0]
+ for i in range(num - 1):
+ r = _and_then(r, ts[i+1], ctx)
+ return r
+
+def Then(*ts, **ks):
+ """Return a tactic that applies the tactics in `*ts` in sequence. Shorthand for AndThen(*ts, **ks).
+
+ >>> x, y = Ints('x y')
+ >>> t = Then(Tactic('simplify'), Tactic('solve-eqs'))
+ >>> t(And(x == 0, y > x + 1))
+ [[Not(y <= 1)]]
+ >>> t(And(x == 0, y > x + 1)).as_expr()
+ Not(y <= 1)
+ """
+ return AndThen(*ts, **ks)
+
+def OrElse(*ts, **ks):
+ """Return a tactic that applies the tactics in `*ts` until one of them succeeds (it doesn't fail).
+
+ >>> x = Int('x')
+ >>> t = OrElse(Tactic('split-clause'), Tactic('skip'))
+ >>> # Tactic split-clause fails if there is no clause in the given goal.
+ >>> t(x == 0)
+ [[x == 0]]
+ >>> t(Or(x == 0, x == 1))
+ [[x == 0], [x == 1]]
+ """
+ if __debug__:
+ _z3_assert(len(ts) >= 2, "At least two arguments expected")
+ ctx = ks.get('ctx', None)
+ num = len(ts)
+ r = ts[0]
+ for i in range(num - 1):
+ r = _or_else(r, ts[i+1], ctx)
+ return r
+
+def ParOr(*ts, **ks):
+ """Return a tactic that applies the tactics in `*ts` in parallel until one of them succeeds (it doesn't fail).
+
+ >>> x = Int('x')
+ >>> t = ParOr(Tactic('simplify'), Tactic('fail'))
+ >>> t(x + 1 == 2)
+ [[x == 1]]
+ """
+ if __debug__:
+ _z3_assert(len(ts) >= 2, "At least two arguments expected")
+ ctx = _get_ctx(ks.get('ctx', None))
+ ts = [ _to_tactic(t, ctx) for t in ts ]
+ sz = len(ts)
+ _args = (TacticObj * sz)()
+ for i in range(sz):
+ _args[i] = ts[i].tactic
+ return Tactic(Z3_tactic_par_or(ctx.ref(), sz, _args), ctx)
+
+def ParThen(t1, t2, ctx=None):
+ """Return a tactic that applies t1 and then t2 to every subgoal produced by t1. The subgoals are processed in parallel.
+
+ >>> x, y = Ints('x y')
+ >>> t = ParThen(Tactic('split-clause'), Tactic('propagate-values'))
+ >>> t(And(Or(x == 1, x == 2), y == x + 1))
+ [[x == 1, y == 2], [x == 2, y == 3]]
+ """
+ t1 = _to_tactic(t1, ctx)
+ t2 = _to_tactic(t2, ctx)
+ if __debug__:
+ _z3_assert(t1.ctx == t2.ctx, "Context mismatch")
+ return Tactic(Z3_tactic_par_and_then(t1.ctx.ref(), t1.tactic, t2.tactic), t1.ctx)
+
+def ParAndThen(t1, t2, ctx=None):
+ """Alias for ParThen(t1, t2, ctx)."""
+ return ParThen(t1, t2, ctx)
+
+def With(t, *args, **keys):
+ """Return a tactic that applies tactic `t` using the given configuration options.
+
+ >>> x, y = Ints('x y')
+ >>> t = With(Tactic('simplify'), som=True)
+ >>> t((x + 1)*(y + 2) == 0)
+ [[2*x + y + x*y == -2]]
+ """
+ ctx = keys.get('ctx', None)
+ t = _to_tactic(t, ctx)
+ p = args2params(args, keys, t.ctx)
+ return Tactic(Z3_tactic_using_params(t.ctx.ref(), t.tactic, p.params), t.ctx)
+
+def Repeat(t, max=4294967295, ctx=None):
+ """Return a tactic that keeps applying `t` until the goal is not modified anymore or the maximum number of iterations `max` is reached.
+
+ >>> x, y = Ints('x y')
+ >>> c = And(Or(x == 0, x == 1), Or(y == 0, y == 1), x > y)
+ >>> t = Repeat(OrElse(Tactic('split-clause'), Tactic('skip')))
+ >>> r = t(c)
+ >>> for subgoal in r: print(subgoal)
+ [x == 0, y == 0, x > y]
+ [x == 0, y == 1, x > y]
+ [x == 1, y == 0, x > y]
+ [x == 1, y == 1, x > y]
+ >>> t = Then(t, Tactic('propagate-values'))
+ >>> t(c)
+ [[x == 1, y == 0]]
+ """
+ t = _to_tactic(t, ctx)
+ return Tactic(Z3_tactic_repeat(t.ctx.ref(), t.tactic, max), t.ctx)
+
+def TryFor(t, ms, ctx=None):
+ """Return a tactic that applies `t` to a given goal for `ms` milliseconds.
+
+ If `t` does not terminate in `ms` milliseconds, then it fails.
+ """
+ t = _to_tactic(t, ctx)
+ return Tactic(Z3_tactic_try_for(t.ctx.ref(), t.tactic, ms), t.ctx)
+
+def tactics(ctx=None):
+ """Return a list of all available tactics in Z3.
+
+ >>> l = tactics()
+ >>> l.count('simplify') == 1
+ True
+ """
+ ctx = _get_ctx(ctx)
+ return [ Z3_get_tactic_name(ctx.ref(), i) for i in range(Z3_get_num_tactics(ctx.ref())) ]
+
+def tactic_description(name, ctx=None):
+ """Return a short description for the tactic named `name`.
+
+ >>> d = tactic_description('simplify')
+ """
+ ctx = _get_ctx(ctx)
+ return Z3_tactic_get_descr(ctx.ref(), name)
+
+def describe_tactics():
+ """Display a (tabular) description of all available tactics in Z3."""
+ if in_html_mode():
+ even = True
+ print('<table border="1" cellpadding="2" cellspacing="0">')
+ for t in tactics():
+ if even:
+ print('<tr style="background-color:#CFCFCF">')
+ even = False
+ else:
+ print('<tr>')
+ even = True
+ print('<td>%s</td><td>%s</td></tr>' % (t, insert_line_breaks(tactic_description(t), 40)))
+ print('</table>')
+ else:
+ for t in tactics():
+ print('%s : %s' % (t, tactic_description(t)))
+
+class Probe:
+ """Probes are used to inspect a goal (aka problem) and collect information that may be used to decide which solver and/or preprocessing step will be used."""
+ def __init__(self, probe, ctx=None):
+ self.ctx = _get_ctx(ctx)
+ self.probe = None
+ if isinstance(probe, ProbeObj):
+ self.probe = probe
+ elif isinstance(probe, float):
+ self.probe = Z3_probe_const(self.ctx.ref(), probe)
+ elif _is_int(probe):
+ self.probe = Z3_probe_const(self.ctx.ref(), float(probe))
+ elif isinstance(probe, bool):
+ if probe:
+ self.probe = Z3_probe_const(self.ctx.ref(), 1.0)
+ else:
+ self.probe = Z3_probe_const(self.ctx.ref(), 0.0)
+ else:
+ if __debug__:
+ _z3_assert(isinstance(probe, str), "probe name expected")
+ try:
+ self.probe = Z3_mk_probe(self.ctx.ref(), probe)
+ except Z3Exception:
+ raise Z3Exception("unknown probe '%s'" % probe)
+ Z3_probe_inc_ref(self.ctx.ref(), self.probe)
+
+ def __del__(self):
+ if self.probe is not None and self.ctx.ref() is not None:
+ Z3_probe_dec_ref(self.ctx.ref(), self.probe)
+
+ def __lt__(self, other):
+ """Return a probe that evaluates to "true" when the value returned by `self` is less than the value returned by `other`.
+
+ >>> p = Probe('size') < 10
+ >>> x = Int('x')
+ >>> g = Goal()
+ >>> g.add(x > 0)
+ >>> g.add(x < 10)
+ >>> p(g)
+ 1.0
+ """
+ return Probe(Z3_probe_lt(self.ctx.ref(), self.probe, _to_probe(other, self.ctx).probe), self.ctx)
+
+ def __gt__(self, other):
+ """Return a probe that evaluates to "true" when the value returned by `self` is greater than the value returned by `other`.
+
+ >>> p = Probe('size') > 10
+ >>> x = Int('x')
+ >>> g = Goal()
+ >>> g.add(x > 0)
+ >>> g.add(x < 10)
+ >>> p(g)
+ 0.0
+ """
+ return Probe(Z3_probe_gt(self.ctx.ref(), self.probe, _to_probe(other, self.ctx).probe), self.ctx)
+
+ def __le__(self, other):
+ """Return a probe that evaluates to "true" when the value returned by `self` is less than or equal to the value returned by `other`.
+
+ >>> p = Probe('size') <= 2
+ >>> x = Int('x')
+ >>> g = Goal()
+ >>> g.add(x > 0)
+ >>> g.add(x < 10)
+ >>> p(g)
+ 1.0
+ """
+ return Probe(Z3_probe_le(self.ctx.ref(), self.probe, _to_probe(other, self.ctx).probe), self.ctx)
+
+ def __ge__(self, other):
+ """Return a probe that evaluates to "true" when the value returned by `self` is greater than or equal to the value returned by `other`.
+
+ >>> p = Probe('size') >= 2
+ >>> x = Int('x')
+ >>> g = Goal()
+ >>> g.add(x > 0)
+ >>> g.add(x < 10)
+ >>> p(g)
+ 1.0
+ """
+ return Probe(Z3_probe_ge(self.ctx.ref(), self.probe, _to_probe(other, self.ctx).probe), self.ctx)
+
+ def __eq__(self, other):
+ """Return a probe that evaluates to "true" when the value returned by `self` is equal to the value returned by `other`.
+
+ >>> p = Probe('size') == 2
+ >>> x = Int('x')
+ >>> g = Goal()
+ >>> g.add(x > 0)
+ >>> g.add(x < 10)
+ >>> p(g)
+ 1.0
+ """
+ return Probe(Z3_probe_eq(self.ctx.ref(), self.probe, _to_probe(other, self.ctx).probe), self.ctx)
+
+ def __ne__(self, other):
+ """Return a probe that evaluates to "true" when the value returned by `self` is not equal to the value returned by `other`.
+
+ >>> p = Probe('size') != 2
+ >>> x = Int('x')
+ >>> g = Goal()
+ >>> g.add(x > 0)
+ >>> g.add(x < 10)
+ >>> p(g)
+ 0.0
+ """
+ p = self.__eq__(other)
+ return Probe(Z3_probe_not(self.ctx.ref(), p.probe), self.ctx)
+
+ def __call__(self, goal):
+ """Evaluate the probe `self` in the given goal.
+
+ >>> p = Probe('size')
+ >>> x = Int('x')
+ >>> g = Goal()
+ >>> g.add(x > 0)
+ >>> g.add(x < 10)
+ >>> p(g)
+ 2.0
+ >>> g.add(x < 20)
+ >>> p(g)
+ 3.0
+ >>> p = Probe('num-consts')
+ >>> p(g)
+ 1.0
+ >>> p = Probe('is-propositional')
+ >>> p(g)
+ 0.0
+ >>> p = Probe('is-qflia')
+ >>> p(g)
+ 1.0
+ """
+ if __debug__:
+ _z3_assert(isinstance(goal, Goal) or isinstance(goal, BoolRef), "Z3 Goal or Boolean expression expected")
+ goal = _to_goal(goal)
+ return Z3_probe_apply(self.ctx.ref(), self.probe, goal.goal)
+
+def is_probe(p):
+ """Return `True` if `p` is a Z3 probe.
+
+ >>> is_probe(Int('x'))
+ False
+ >>> is_probe(Probe('memory'))
+ True
+ """
+ return isinstance(p, Probe)
+
+def _to_probe(p, ctx=None):
+ if is_probe(p):
+ return p
+ else:
+ return Probe(p, ctx)
+
+def probes(ctx=None):
+ """Return a list of all available probes in Z3.
+
+ >>> l = probes()
+ >>> l.count('memory') == 1
+ True
+ """
+ ctx = _get_ctx(ctx)
+ return [ Z3_get_probe_name(ctx.ref(), i) for i in range(Z3_get_num_probes(ctx.ref())) ]
+
+def probe_description(name, ctx=None):
+ """Return a short description for the probe named `name`.
+
+ >>> d = probe_description('memory')
+ """
+ ctx = _get_ctx(ctx)
+ return Z3_probe_get_descr(ctx.ref(), name)
+
+def describe_probes():
+ """Display a (tabular) description of all available probes in Z3."""
+ if in_html_mode():
+ even = True
+ print('<table border="1" cellpadding="2" cellspacing="0">')
+ for p in probes():
+ if even:
+ print('<tr style="background-color:#CFCFCF">')
+ even = False
+ else:
+ print('<tr>')
+ even = True
+ print('<td>%s</td><td>%s</td></tr>' % (p, insert_line_breaks(probe_description(p), 40)))
+ print('</table>')
+ else:
+ for p in probes():
+ print('%s : %s' % (p, probe_description(p)))
+
+def _probe_nary(f, args, ctx):
+ if __debug__:
+ _z3_assert(len(args) > 0, "At least one argument expected")
+ num = len(args)
+ r = _to_probe(args[0], ctx)
+ for i in range(num - 1):
+ r = Probe(f(ctx.ref(), r.probe, _to_probe(args[i+1], ctx).probe), ctx)
+ return r
+
+def _probe_and(args, ctx):
+ return _probe_nary(Z3_probe_and, args, ctx)
+
+def _probe_or(args, ctx):
+ return _probe_nary(Z3_probe_or, args, ctx)
+
+def FailIf(p, ctx=None):
+ """Return a tactic that fails if the probe `p` evaluates to true. Otherwise, it returns the input goal unmodified.
+
+ In the following example, the tactic applies 'simplify' if and only if there are more than 2 constraints in the goal.
+
+ >>> t = OrElse(FailIf(Probe('size') > 2), Tactic('simplify'))
+ >>> x, y = Ints('x y')
+ >>> g = Goal()
+ >>> g.add(x > 0)
+ >>> g.add(y > 0)
+ >>> t(g)
+ [[x > 0, y > 0]]
+ >>> g.add(x == y + 1)
+ >>> t(g)
+ [[Not(x <= 0), Not(y <= 0), x == 1 + y]]
+ """
+ p = _to_probe(p, ctx)
+ return Tactic(Z3_tactic_fail_if(p.ctx.ref(), p.probe), p.ctx)
+
+def When(p, t, ctx=None):
+ """Return a tactic that applies tactic `t` only if probe `p` evaluates to true. Otherwise, it returns the input goal unmodified.
+
+ >>> t = When(Probe('size') > 2, Tactic('simplify'))
+ >>> x, y = Ints('x y')
+ >>> g = Goal()
+ >>> g.add(x > 0)
+ >>> g.add(y > 0)
+ >>> t(g)
+ [[x > 0, y > 0]]
+ >>> g.add(x == y + 1)
+ >>> t(g)
+ [[Not(x <= 0), Not(y <= 0), x == 1 + y]]
+ """
+ p = _to_probe(p, ctx)
+ t = _to_tactic(t, ctx)
+ return Tactic(Z3_tactic_when(t.ctx.ref(), p.probe, t.tactic), t.ctx)
+
+def Cond(p, t1, t2, ctx=None):
+ """Return a tactic that applies tactic `t1` to a goal if probe `p` evaluates to true, and `t2` otherwise.
+
+ >>> t = Cond(Probe('is-qfnra'), Tactic('qfnra'), Tactic('smt'))
+ """
+ p = _to_probe(p, ctx)
+ t1 = _to_tactic(t1, ctx)
+ t2 = _to_tactic(t2, ctx)
+ return Tactic(Z3_tactic_cond(t1.ctx.ref(), p.probe, t1.tactic, t2.tactic), t1.ctx)
+
+#########################################
+#
+# Utils
+#
+#########################################
+
+def simplify(a, *arguments, **keywords):
+ """Simplify the expression `a` using the given options.
+
+ This function has many options. Use `help_simplify` to obtain the complete list.
+
+ >>> x = Int('x')
+ >>> y = Int('y')
+ >>> simplify(x + 1 + y + x + 1)
+ 2 + 2*x + y
+ >>> simplify((x + 1)*(y + 1), som=True)
+ 1 + x + y + x*y
+ >>> simplify(Distinct(x, y, 1), blast_distinct=True)
+ And(Not(x == y), Not(x == 1), Not(y == 1))
+ >>> simplify(And(x == 0, y == 1), elim_and=True)
+ Not(Or(Not(x == 0), Not(y == 1)))
+ """
+ if __debug__:
+ _z3_assert(is_expr(a), "Z3 expression expected")
+ if len(arguments) > 0 or len(keywords) > 0:
+ p = args2params(arguments, keywords, a.ctx)
+ return _to_expr_ref(Z3_simplify_ex(a.ctx_ref(), a.as_ast(), p.params), a.ctx)
+ else:
+ return _to_expr_ref(Z3_simplify(a.ctx_ref(), a.as_ast()), a.ctx)
+
+def help_simplify():
+ """Return a string describing all options available for Z3 `simplify` procedure."""
+ print(Z3_simplify_get_help(main_ctx().ref()))
+
+def simplify_param_descrs():
+ """Return the set of parameter descriptions for Z3 `simplify` procedure."""
+ return ParamDescrsRef(Z3_simplify_get_param_descrs(main_ctx().ref()), main_ctx())
+
+def substitute(t, *m):
+ """Apply substitution m on t, m is a list of pairs of the form (from, to). Every occurrence in t of from is replaced with to.
+
+ >>> x = Int('x')
+ >>> y = Int('y')
+ >>> substitute(x + 1, (x, y + 1))
+ y + 1 + 1
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> substitute(f(x) + f(y), (f(x), IntVal(1)), (f(y), IntVal(1)))
+ 1 + 1
+ """
+ if isinstance(m, tuple):
+ m1 = _get_args(m)
+ if isinstance(m1, list):
+ m = m1
+ if __debug__:
+ _z3_assert(is_expr(t), "Z3 expression expected")
+ _z3_assert(all([isinstance(p, tuple) and is_expr(p[0]) and is_expr(p[1]) and p[0].sort().eq(p[1].sort()) for p in m]), "Z3 invalid substitution, expression pairs expected.")
+ num = len(m)
+ _from = (Ast * num)()
+ _to = (Ast * num)()
+ for i in range(num):
+ _from[i] = m[i][0].as_ast()
+ _to[i] = m[i][1].as_ast()
+ return _to_expr_ref(Z3_substitute(t.ctx.ref(), t.as_ast(), num, _from, _to), t.ctx)
+
+def substitute_vars(t, *m):
+ """Substitute the free variables in t with the expression in m.
+
+ >>> v0 = Var(0, IntSort())
+ >>> v1 = Var(1, IntSort())
+ >>> x = Int('x')
+ >>> f = Function('f', IntSort(), IntSort(), IntSort())
+ >>> # replace v0 with x+1 and v1 with x
+ >>> substitute_vars(f(v0, v1), x + 1, x)
+ f(x + 1, x)
+ """
+ if __debug__:
+ _z3_assert(is_expr(t), "Z3 expression expected")
+ _z3_assert(all([is_expr(n) for n in m]), "Z3 invalid substitution, list of expressions expected.")
+ num = len(m)
+ _to = (Ast * num)()
+ for i in range(num):
+ _to[i] = m[i].as_ast()
+ return _to_expr_ref(Z3_substitute_vars(t.ctx.ref(), t.as_ast(), num, _to), t.ctx)
+
+def Sum(*args):
+ """Create the sum of the Z3 expressions.
+
+ >>> a, b, c = Ints('a b c')
+ >>> Sum(a, b, c)
+ a + b + c
+ >>> Sum([a, b, c])
+ a + b + c
+ >>> A = IntVector('a', 5)
+ >>> Sum(A)
+ a__0 + a__1 + a__2 + a__3 + a__4
+ """
+ args = _get_args(args)
+ if len(args) == 0:
+ return 0
+ ctx = _ctx_from_ast_arg_list(args)
+ if ctx is None:
+ return _reduce(lambda a, b: a + b, args, 0)
+ args = _coerce_expr_list(args, ctx)
+ if is_bv(args[0]):
+ return _reduce(lambda a, b: a + b, args, 0)
+ else:
+ _args, sz = _to_ast_array(args)
+ return ArithRef(Z3_mk_add(ctx.ref(), sz, _args), ctx)
+
+
+def Product(*args):
+ """Create the product of the Z3 expressions.
+
+ >>> a, b, c = Ints('a b c')
+ >>> Product(a, b, c)
+ a*b*c
+ >>> Product([a, b, c])
+ a*b*c
+ >>> A = IntVector('a', 5)
+ >>> Product(A)
+ a__0*a__1*a__2*a__3*a__4
+ """
+ args = _get_args(args)
+ if len(args) == 0:
+ return 1
+ ctx = _ctx_from_ast_arg_list(args)
+ if ctx is None:
+ return _reduce(lambda a, b: a * b, args, 1)
+ args = _coerce_expr_list(args, ctx)
+ if is_bv(args[0]):
+ return _reduce(lambda a, b: a * b, args, 1)
+ else:
+ _args, sz = _to_ast_array(args)
+ return ArithRef(Z3_mk_mul(ctx.ref(), sz, _args), ctx)
+
+def AtMost(*args):
+ """Create an at-most Pseudo-Boolean k constraint.
+
+ >>> a, b, c = Bools('a b c')
+ >>> f = AtMost(a, b, c, 2)
+ """
+ args = _get_args(args)
+ if __debug__:
+ _z3_assert(len(args) > 1, "Non empty list of arguments expected")
+ ctx = _ctx_from_ast_arg_list(args)
+ if __debug__:
+ _z3_assert(ctx is not None, "At least one of the arguments must be a Z3 expression")
+ args1 = _coerce_expr_list(args[:-1], ctx)
+ k = args[-1]
+ _args, sz = _to_ast_array(args1)
+ return BoolRef(Z3_mk_atmost(ctx.ref(), sz, _args, k), ctx)
+
+def AtLeast(*args):
+ """Create an at-most Pseudo-Boolean k constraint.
+
+ >>> a, b, c = Bools('a b c')
+ >>> f = AtLeast(a, b, c, 2)
+ """
+ def mk_not(a):
+ if is_not(a):
+ return a.arg(0)
+ else:
+ return Not(a)
+ args = _get_args(args)
+ if __debug__:
+ _z3_assert(len(args) > 1, "Non empty list of arguments expected")
+ ctx = _ctx_from_ast_arg_list(args)
+ if __debug__:
+ _z3_assert(ctx is not None, "At least one of the arguments must be a Z3 expression")
+ args1 = _coerce_expr_list(args[:-1], ctx)
+ args1 = [ mk_not(a) for a in args1 ]
+ k = len(args1) - args[-1]
+ _args, sz = _to_ast_array(args1)
+ return BoolRef(Z3_mk_atmost(ctx.ref(), sz, _args, k), ctx)
+
+def PbLe(args, k):
+ """Create a Pseudo-Boolean inequality k constraint.
+
+ >>> a, b, c = Bools('a b c')
+ >>> f = PbLe(((a,1),(b,3),(c,2)), 3)
+ """
+ args = _get_args(args)
+ args, coeffs = zip(*args)
+ if __debug__:
+ _z3_assert(len(args) > 0, "Non empty list of arguments expected")
+ ctx = _ctx_from_ast_arg_list(args)
+ if __debug__:
+ _z3_assert(ctx is not None, "At least one of the arguments must be a Z3 expression")
+ args = _coerce_expr_list(args, ctx)
+ _args, sz = _to_ast_array(args)
+ _coeffs = (ctypes.c_int * len(coeffs))()
+ for i in range(len(coeffs)):
+ _coeffs[i] = coeffs[i]
+ return BoolRef(Z3_mk_pble(ctx.ref(), sz, _args, _coeffs, k), ctx)
+
+def PbEq(args, k):
+ """Create a Pseudo-Boolean inequality k constraint.
+
+ >>> a, b, c = Bools('a b c')
+ >>> f = PbEq(((a,1),(b,3),(c,2)), 3)
+ """
+ args = _get_args(args)
+ args, coeffs = zip(*args)
+ if __debug__:
+ _z3_assert(len(args) > 0, "Non empty list of arguments expected")
+ ctx = _ctx_from_ast_arg_list(args)
+ if __debug__:
+ _z3_assert(ctx is not None, "At least one of the arguments must be a Z3 expression")
+ args = _coerce_expr_list(args, ctx)
+ _args, sz = _to_ast_array(args)
+ _coeffs = (ctypes.c_int * len(coeffs))()
+ for i in range(len(coeffs)):
+ _coeffs[i] = coeffs[i]
+ return BoolRef(Z3_mk_pbeq(ctx.ref(), sz, _args, _coeffs, k), ctx)
+
+
+def solve(*args, **keywords):
+ """Solve the constraints `*args`.
+
+ This is a simple function for creating demonstrations. It creates a solver,
+ configure it using the options in `keywords`, adds the constraints
+ in `args`, and invokes check.
+
+ >>> a = Int('a')
+ >>> solve(a > 0, a < 2)
+ [a = 1]
+ """
+ s = Solver()
+ s.set(**keywords)
+ s.add(*args)
+ if keywords.get('show', False):
+ print(s)
+ r = s.check()
+ if r == unsat:
+ print("no solution")
+ elif r == unknown:
+ print("failed to solve")
+ try:
+ print(s.model())
+ except Z3Exception:
+ return
+ else:
+ print(s.model())
+
+def solve_using(s, *args, **keywords):
+ """Solve the constraints `*args` using solver `s`.
+
+ This is a simple function for creating demonstrations. It is similar to `solve`,
+ but it uses the given solver `s`.
+ It configures solver `s` using the options in `keywords`, adds the constraints
+ in `args`, and invokes check.
+ """
+ if __debug__:
+ _z3_assert(isinstance(s, Solver), "Solver object expected")
+ s.set(**keywords)
+ s.add(*args)
+ if keywords.get('show', False):
+ print("Problem:")
+ print(s)
+ r = s.check()
+ if r == unsat:
+ print("no solution")
+ elif r == unknown:
+ print("failed to solve")
+ try:
+ print(s.model())
+ except Z3Exception:
+ return
+ else:
+ if keywords.get('show', False):
+ print("Solution:")
+ print(s.model())
+
+def prove(claim, **keywords):
+ """Try to prove the given claim.
+
+ This is a simple function for creating demonstrations. It tries to prove
+ `claim` by showing the negation is unsatisfiable.
+
+ >>> p, q = Bools('p q')
+ >>> prove(Not(And(p, q)) == Or(Not(p), Not(q)))
+ proved
+ """
+ if __debug__:
+ _z3_assert(is_bool(claim), "Z3 Boolean expression expected")
+ s = Solver()
+ s.set(**keywords)
+ s.add(Not(claim))
+ if keywords.get('show', False):
+ print(s)
+ r = s.check()
+ if r == unsat:
+ print("proved")
+ elif r == unknown:
+ print("failed to prove")
+ print(s.model())
+ else:
+ print("counterexample")
+ print(s.model())
+
+def _solve_html(*args, **keywords):
+ """Version of funcion `solve` used in RiSE4Fun."""
+ s = Solver()
+ s.set(**keywords)
+ s.add(*args)
+ if keywords.get('show', False):
+ print("<b>Problem:</b>")
+ print(s)
+ r = s.check()
+ if r == unsat:
+ print("<b>no solution</b>")
+ elif r == unknown:
+ print("<b>failed to solve</b>")
+ try:
+ print(s.model())
+ except Z3Exception:
+ return
+ else:
+ if keywords.get('show', False):
+ print("<b>Solution:</b>")
+ print(s.model())
+
+def _solve_using_html(s, *args, **keywords):
+ """Version of funcion `solve_using` used in RiSE4Fun."""
+ if __debug__:
+ _z3_assert(isinstance(s, Solver), "Solver object expected")
+ s.set(**keywords)
+ s.add(*args)
+ if keywords.get('show', False):
+ print("<b>Problem:</b>")
+ print(s)
+ r = s.check()
+ if r == unsat:
+ print("<b>no solution</b>")
+ elif r == unknown:
+ print("<b>failed to solve</b>")
+ try:
+ print(s.model())
+ except Z3Exception:
+ return
+ else:
+ if keywords.get('show', False):
+ print("<b>Solution:</b>")
+ print(s.model())
+
+def _prove_html(claim, **keywords):
+ """Version of funcion `prove` used in RiSE4Fun."""
+ if __debug__:
+ _z3_assert(is_bool(claim), "Z3 Boolean expression expected")
+ s = Solver()
+ s.set(**keywords)
+ s.add(Not(claim))
+ if keywords.get('show', False):
+ print(s)
+ r = s.check()
+ if r == unsat:
+ print("<b>proved</b>")
+ elif r == unknown:
+ print("<b>failed to prove</b>")
+ print(s.model())
+ else:
+ print("<b>counterexample</b>")
+ print(s.model())
+
+def _dict2sarray(sorts, ctx):
+ sz = len(sorts)
+ _names = (Symbol * sz)()
+ _sorts = (Sort * sz) ()
+ i = 0
+ for k in sorts:
+ v = sorts[k]
+ if __debug__:
+ _z3_assert(isinstance(k, str), "String expected")
+ _z3_assert(is_sort(v), "Z3 sort expected")
+ _names[i] = to_symbol(k, ctx)
+ _sorts[i] = v.ast
+ i = i + 1
+ return sz, _names, _sorts
+
+def _dict2darray(decls, ctx):
+ sz = len(decls)
+ _names = (Symbol * sz)()
+ _decls = (FuncDecl * sz) ()
+ i = 0
+ for k in decls:
+ v = decls[k]
+ if __debug__:
+ _z3_assert(isinstance(k, str), "String expected")
+ _z3_assert(is_func_decl(v) or is_const(v), "Z3 declaration or constant expected")
+ _names[i] = to_symbol(k, ctx)
+ if is_const(v):
+ _decls[i] = v.decl().ast
+ else:
+ _decls[i] = v.ast
+ i = i + 1
+ return sz, _names, _decls
+
+def parse_smt2_string(s, sorts={}, decls={}, ctx=None):
+ """Parse a string in SMT 2.0 format using the given sorts and decls.
+
+ The arguments sorts and decls are Python dictionaries used to initialize
+ the symbol table used for the SMT 2.0 parser.
+
+ >>> parse_smt2_string('(declare-const x Int) (assert (> x 0)) (assert (< x 10))')
+ And(x > 0, x < 10)
+ >>> x, y = Ints('x y')
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> parse_smt2_string('(assert (> (+ foo (g bar)) 0))', decls={ 'foo' : x, 'bar' : y, 'g' : f})
+ x + f(y) > 0
+ >>> parse_smt2_string('(declare-const a U) (assert (> a 0))', sorts={ 'U' : IntSort() })
+ a > 0
+ """
+ ctx = _get_ctx(ctx)
+ ssz, snames, ssorts = _dict2sarray(sorts, ctx)
+ dsz, dnames, ddecls = _dict2darray(decls, ctx)
+ return _to_expr_ref(Z3_parse_smtlib2_string(ctx.ref(), s, ssz, snames, ssorts, dsz, dnames, ddecls), ctx)
+
+def parse_smt2_file(f, sorts={}, decls={}, ctx=None):
+ """Parse a file in SMT 2.0 format using the given sorts and decls.
+
+ This function is similar to parse_smt2_string().
+ """
+ ctx = _get_ctx(ctx)
+ ssz, snames, ssorts = _dict2sarray(sorts, ctx)
+ dsz, dnames, ddecls = _dict2darray(decls, ctx)
+ return _to_expr_ref(Z3_parse_smtlib2_file(ctx.ref(), f, ssz, snames, ssorts, dsz, dnames, ddecls), ctx)
+
+def Interpolant(a,ctx=None):
+ """Create an interpolation operator.
+
+ The argument is an interpolation pattern (see tree_interpolant).
+
+ >>> x = Int('x')
+ >>> print(Interpolant(x>0))
+ interp(x > 0)
+ """
+ ctx = _get_ctx(_ctx_from_ast_arg_list([a], ctx))
+ s = BoolSort(ctx)
+ a = s.cast(a)
+ return BoolRef(Z3_mk_interpolant(ctx.ref(), a.as_ast()), ctx)
+
+def tree_interpolant(pat,p=None,ctx=None):
+ """Compute interpolant for a tree of formulas.
+
+ The input is an interpolation pattern over a set of formulas C.
+ The pattern pat is a formula combining the formulas in C using
+ logical conjunction and the "interp" operator (see Interp). This
+ interp operator is logically the identity operator. It marks the
+ sub-formulas of the pattern for which interpolants should be
+ computed. The interpolant is a map sigma from marked subformulas
+ to formulas, such that, for each marked subformula phi of pat
+ (where phi sigma is phi with sigma(psi) substituted for each
+ subformula psi of phi such that psi in dom(sigma)):
+
+ 1) phi sigma implies sigma(phi), and
+
+ 2) sigma(phi) is in the common uninterpreted vocabulary between
+ the formulas of C occurring in phi and those not occurring in
+ phi
+
+ and moreover pat sigma implies false. In the simplest case
+ an interpolant for the pattern "(and (interp A) B)" maps A
+ to an interpolant for A /\ B.
+
+ The return value is a vector of formulas representing sigma. This
+ vector contains sigma(phi) for each marked subformula of pat, in
+ pre-order traversal. This means that subformulas of phi occur before phi
+ in the vector. Also, subformulas that occur multiply in pat will
+ occur multiply in the result vector.
+
+ If pat is satisfiable, raises an object of class ModelRef
+ that represents a model of pat.
+
+ If neither a proof of unsatisfiability nor a model is obtained
+ (for example, because of a timeout, or because models are disabled)
+ then None is returned.
+
+ If parameters p are supplied, these are used in creating the
+ solver that determines satisfiability.
+
+ >>> x = Int('x')
+ >>> y = Int('y')
+ >>> print(tree_interpolant(And(Interpolant(x < 0), Interpolant(y > 2), x == y)))
+ [Not(x >= 0), Not(y <= 2)]
+
+ # >>> g = And(Interpolant(x<0),x<2)
+ # >>> try:
+ # ... print tree_interpolant(g).sexpr()
+ # ... except ModelRef as m:
+ # ... print m.sexpr()
+ (define-fun x () Int
+ (- 1))
+ """
+ f = pat
+ ctx = _get_ctx(_ctx_from_ast_arg_list([f], ctx))
+ ptr = (AstVectorObj * 1)()
+ mptr = (Model * 1)()
+ if p is None:
+ p = ParamsRef(ctx)
+ res = Z3_compute_interpolant(ctx.ref(),f.as_ast(),p.params,ptr,mptr)
+ if res == Z3_L_FALSE:
+ return AstVector(ptr[0],ctx)
+ if mptr[0]:
+ raise ModelRef(mptr[0], ctx)
+ return None
+
+def binary_interpolant(a,b,p=None,ctx=None):
+ """Compute an interpolant for a binary conjunction.
+
+ If a & b is unsatisfiable, returns an interpolant for a & b.
+ This is a formula phi such that
+
+ 1) a implies phi
+ 2) b implies not phi
+ 3) All the uninterpreted symbols of phi occur in both a and b.
+
+ If a & b is satisfiable, raises an object of class ModelRef
+ that represents a model of a &b.
+
+ If neither a proof of unsatisfiability nor a model is obtained
+ (for example, because of a timeout, or because models are disabled)
+ then None is returned.
+
+ If parameters p are supplied, these are used in creating the
+ solver that determines satisfiability.
+
+ x = Int('x')
+ print(binary_interpolant(x<0,x>2))
+ Not(x >= 0)
+ """
+ f = And(Interpolant(a),b)
+ ti = tree_interpolant(f,p,ctx)
+ return ti[0] if ti is not None else None
+
+def sequence_interpolant(v,p=None,ctx=None):
+ """Compute interpolant for a sequence of formulas.
+
+ If len(v) == N, and if the conjunction of the formulas in v is
+ unsatisfiable, the interpolant is a sequence of formulas w
+ such that len(w) = N-1 and v[0] implies w[0] and for i in 0..N-1:
+
+ 1) w[i] & v[i+1] implies w[i+1] (or false if i+1 = N)
+ 2) All uninterpreted symbols in w[i] occur in both v[0]..v[i]
+ and v[i+1]..v[n]
+
+ Requires len(v) >= 1.
+
+ If a & b is satisfiable, raises an object of class ModelRef
+ that represents a model of a & b.
+
+ If neither a proof of unsatisfiability nor a model is obtained
+ (for example, because of a timeout, or because models are disabled)
+ then None is returned.
+
+ If parameters p are supplied, these are used in creating the
+ solver that determines satisfiability.
+
+ >>> x = Int('x')
+ >>> y = Int('y')
+ >>> print(sequence_interpolant([x < 0, y == x , y > 2]))
+ [Not(x >= 0), Not(y >= 0)]
+ """
+ f = v[0]
+ for i in range(1,len(v)):
+ f = And(Interpolant(f),v[i])
+ return tree_interpolant(f,p,ctx)
+
+
+#########################################
+#
+# Floating-Point Arithmetic
+#
+#########################################
+
+
+# Global default rounding mode
+_dflt_rounding_mode = Z3_OP_FPA_RM_TOWARD_ZERO
+_dflt_fpsort_ebits = 11
+_dflt_fpsort_sbits = 53
+
+def get_default_rounding_mode(ctx=None):
+ """Retrieves the global default rounding mode."""
+ global _dflt_rounding_mode
+ if _dflt_rounding_mode == Z3_OP_FPA_RM_TOWARD_ZERO:
+ return RTZ(ctx)
+ elif _dflt_rounding_mode == Z3_OP_FPA_RM_TOWARD_NEGATIVE:
+ return RTN(ctx)
+ elif _dflt_rounding_mode == Z3_OP_FPA_RM_TOWARD_POSITIVE:
+ return RTP(ctx)
+ elif _dflt_rounding_mode == Z3_OP_FPA_RM_NEAREST_TIES_TO_EVEN:
+ return RNE(ctx)
+ elif _dflt_rounding_mode == Z3_OP_FPA_RM_NEAREST_TIES_TO_AWAY:
+ return RNA(ctx)
+
+def set_default_rounding_mode(rm, ctx=None):
+ global _dflt_rounding_mode
+ if is_fprm_value(rm):
+ _dflt_rounding_mode = rm.decl().kind()
+ else:
+ _z3_assert(_dflt_rounding_mode == Z3_OP_FPA_RM_TOWARD_ZERO or
+ _dflt_rounding_mode == Z3_OP_FPA_RM_TOWARD_NEGATIVE or
+ _dflt_rounding_mode == Z3_OP_FPA_RM_TOWARD_POSITIVE or
+ _dflt_rounding_mode == Z3_OP_FPA_RM_NEAREST_TIES_TO_EVEN or
+ _dflt_rounding_mode == Z3_OP_FPA_RM_NEAREST_TIES_TO_AWAY,
+ "illegal rounding mode")
+ _dflt_rounding_mode = rm
+
+def get_default_fp_sort(ctx=None):
+ return FPSort(_dflt_fpsort_ebits, _dflt_fpsort_sbits, ctx)
+
+def set_default_fp_sort(ebits, sbits, ctx=None):
+ global _dflt_fpsort_ebits
+ global _dflt_fpsort_sbits
+ _dflt_fpsort_ebits = ebits
+ _dflt_fpsort_sbits = sbits
+
+def _dflt_rm(ctx=None):
+ return get_default_rounding_mode(ctx)
+
+def _dflt_fps(ctx=None):
+ return get_default_fp_sort(ctx)
+
+def _coerce_fp_expr_list(alist, ctx):
+ first_fp_sort = None
+ for a in alist:
+ if is_fp(a):
+ if first_fp_sort is None:
+ first_fp_sort = a.sort()
+ elif first_fp_sort == a.sort():
+ pass # OK, same as before
+ else:
+ # we saw at least 2 different float sorts; something will
+ # throw a sort mismatch later, for now assume None.
+ first_fp_sort = None
+ break
+
+ r = []
+ for i in range(len(alist)):
+ a = alist[i]
+ if (isinstance(a, str) and a.contains('2**(') and a.endswith(')')) or _is_int(a) or isinstance(a, float) or isinstance(a, bool):
+ r.append(FPVal(a, None, first_fp_sort, ctx))
+ else:
+ r.append(a)
+ return _coerce_expr_list(r, ctx)
+
+
+### FP Sorts
+
+class FPSortRef(SortRef):
+ """Floating-point sort."""
+
+ def ebits(self):
+ """Retrieves the number of bits reserved for the exponent in the FloatingPoint sort `self`.
+ >>> b = FPSort(8, 24)
+ >>> b.ebits()
+ 8
+ """
+ return int(Z3_fpa_get_ebits(self.ctx_ref(), self.ast))
+
+ def sbits(self):
+ """Retrieves the number of bits reserved for the significand in the FloatingPoint sort `self`.
+ >>> b = FPSort(8, 24)
+ >>> b.sbits()
+ 24
+ """
+ return int(Z3_fpa_get_sbits(self.ctx_ref(), self.ast))
+
+ def cast(self, val):
+ """Try to cast `val` as a floating-point expression.
+ >>> b = FPSort(8, 24)
+ >>> b.cast(1.0)
+ 1
+ >>> b.cast(1.0).sexpr()
+ '(fp #b0 #x7f #b00000000000000000000000)'
+ """
+ if is_expr(val):
+ if __debug__:
+ _z3_assert(self.ctx == val.ctx, "Context mismatch")
+ return val
+ else:
+ return FPVal(val, None, self, self.ctx)
+
+
+def Float16(ctx=None):
+ """Floating-point 16-bit (half) sort."""
+ ctx = _get_ctx(ctx)
+ return FPSortRef(Z3_mk_fpa_sort_16(ctx.ref()), ctx)
+
+def FloatHalf(ctx=None):
+ """Floating-point 16-bit (half) sort."""
+ ctx = _get_ctx(ctx)
+ return FPSortRef(Z3_mk_fpa_sort_half(ctx.ref()), ctx)
+
+def Float32(ctx=None):
+ """Floating-point 32-bit (single) sort."""
+ ctx = _get_ctx(ctx)
+ return FPSortRef(Z3_mk_fpa_sort_32(ctx.ref()), ctx)
+
+def FloatSingle(ctx=None):
+ """Floating-point 32-bit (single) sort."""
+ ctx = _get_ctx(ctx)
+ return FPSortRef(Z3_mk_fpa_sort_single(ctx.ref()), ctx)
+
+def Float64(ctx=None):
+ """Floating-point 64-bit (double) sort."""
+ ctx = _get_ctx(ctx)
+ return FPSortRef(Z3_mk_fpa_sort_64(ctx.ref()), ctx)
+
+def FloatDouble(ctx=None):
+ """Floating-point 64-bit (double) sort."""
+ ctx = _get_ctx(ctx)
+ return FPSortRef(Z3_mk_fpa_sort_double(ctx.ref()), ctx)
+
+def Float128(ctx=None):
+ """Floating-point 128-bit (quadruple) sort."""
+ ctx = _get_ctx(ctx)
+ return FPSortRef(Z3_mk_fpa_sort_128(ctx.ref()), ctx)
+
+def FloatQuadruple(ctx=None):
+ """Floating-point 128-bit (quadruple) sort."""
+ ctx = _get_ctx(ctx)
+ return FPSortRef(Z3_mk_fpa_sort_quadruple(ctx.ref()), ctx)
+
+class FPRMSortRef(SortRef):
+ """"Floating-point rounding mode sort."""
+
+
+def is_fp_sort(s):
+ """Return True if `s` is a Z3 floating-point sort.
+
+ >>> is_fp_sort(FPSort(8, 24))
+ True
+ >>> is_fp_sort(IntSort())
+ False
+ """
+ return isinstance(s, FPSortRef)
+
+def is_fprm_sort(s):
+ """Return True if `s` is a Z3 floating-point rounding mode sort.
+
+ >>> is_fprm_sort(FPSort(8, 24))
+ False
+ >>> is_fprm_sort(RNE().sort())
+ True
+ """
+ return isinstance(s, FPRMSortRef)
+
+### FP Expressions
+
+class FPRef(ExprRef):
+ """Floating-point expressions."""
+
+ def sort(self):
+ """Return the sort of the floating-point expression `self`.
+
+ >>> x = FP('1.0', FPSort(8, 24))
+ >>> x.sort()
+ FPSort(8, 24)
+ >>> x.sort() == FPSort(8, 24)
+ True
+ """
+ return FPSortRef(Z3_get_sort(self.ctx_ref(), self.as_ast()), self.ctx)
+
+ def ebits(self):
+ """Retrieves the number of bits reserved for the exponent in the FloatingPoint expression `self`.
+ >>> b = FPSort(8, 24)
+ >>> b.ebits()
+ 8
+ """
+ return self.sort().ebits();
+
+ def sbits(self):
+ """Retrieves the number of bits reserved for the exponent in the FloatingPoint expression `self`.
+ >>> b = FPSort(8, 24)
+ >>> b.sbits()
+ 24
+ """
+ return self.sort().sbits();
+
+ def as_string(self):
+ """Return a Z3 floating point expression as a Python string."""
+ return Z3_ast_to_string(self.ctx_ref(), self.as_ast())
+
+ def __le__(self, other):
+ return fpLEQ(self, other, self.ctx)
+
+ def __lt__(self, other):
+ return fpLT(self, other, self.ctx)
+
+ def __ge__(self, other):
+ return fpGEQ(self, other, self.ctx)
+
+ def __gt__(self, other):
+ return fpGT(self, other, self.ctx)
+
+ def __add__(self, other):
+ """Create the Z3 expression `self + other`.
+
+ >>> x = FP('x', FPSort(8, 24))
+ >>> y = FP('y', FPSort(8, 24))
+ >>> x + y
+ x + y
+ >>> (x + y).sort()
+ FPSort(8, 24)
+ """
+ [a, b] = _coerce_fp_expr_list([self, other], self.ctx)
+ return fpAdd(_dflt_rm(), a, b, self.ctx)
+
+ def __radd__(self, other):
+ """Create the Z3 expression `other + self`.
+
+ >>> x = FP('x', FPSort(8, 24))
+ >>> 10 + x
+ 1.25*(2**3) + x
+ """
+ [a, b] = _coerce_fp_expr_list([other, self], self.ctx)
+ return fpAdd(_dflt_rm(), a, b, self.ctx)
+
+ def __sub__(self, other):
+ """Create the Z3 expression `self - other`.
+
+ >>> x = FP('x', FPSort(8, 24))
+ >>> y = FP('y', FPSort(8, 24))
+ >>> x - y
+ x - y
+ >>> (x - y).sort()
+ FPSort(8, 24)
+ """
+ [a, b] = _coerce_fp_expr_list([self, other], self.ctx)
+ return fpSub(_dflt_rm(), a, b, self.ctx)
+
+ def __rsub__(self, other):
+ """Create the Z3 expression `other - self`.
+
+ >>> x = FP('x', FPSort(8, 24))
+ >>> 10 - x
+ 1.25*(2**3) - x
+ """
+ [a, b] = _coerce_fp_expr_list([other, self], self.ctx)
+ return fpSub(_dflt_rm(), a, b, self.ctx)
+
+ def __mul__(self, other):
+ """Create the Z3 expression `self * other`.
+
+ >>> x = FP('x', FPSort(8, 24))
+ >>> y = FP('y', FPSort(8, 24))
+ >>> x * y
+ x * y
+ >>> (x * y).sort()
+ FPSort(8, 24)
+ >>> 10 * y
+ 1.25*(2**3) * y
+ """
+ [a, b] = _coerce_fp_expr_list([self, other], self.ctx)
+ return fpMul(_dflt_rm(), a, b, self.ctx)
+
+ def __rmul__(self, other):
+ """Create the Z3 expression `other * self`.
+
+ >>> x = FP('x', FPSort(8, 24))
+ >>> y = FP('y', FPSort(8, 24))
+ >>> x * y
+ x * y
+ >>> x * 10
+ x * 1.25*(2**3)
+ """
+ [a, b] = _coerce_fp_expr_list([other, self], self.ctx)
+ return fpMul(_dflt_rm(), a, b, self.ctx)
+
+ def __pos__(self):
+ """Create the Z3 expression `+self`."""
+ return self
+
+ def __neg__(self):
+ """Create the Z3 expression `-self`.
+
+ >>> x = FP('x', Float32())
+ >>> -x
+ -x
+ """
+ return fpNeg(self)
+
+ def __div__(self, other):
+ """Create the Z3 expression `self / other`.
+
+ >>> x = FP('x', FPSort(8, 24))
+ >>> y = FP('y', FPSort(8, 24))
+ >>> x / y
+ x / y
+ >>> (x / y).sort()
+ FPSort(8, 24)
+ >>> 10 / y
+ 1.25*(2**3) / y
+ """
+ [a, b] = _coerce_fp_expr_list([self, other], self.ctx)
+ return fpDiv(_dflt_rm(), a, b, self.ctx)
+
+ def __rdiv__(self, other):
+ """Create the Z3 expression `other / self`.
+
+ >>> x = FP('x', FPSort(8, 24))
+ >>> y = FP('y', FPSort(8, 24))
+ >>> x / y
+ x / y
+ >>> x / 10
+ x / 1.25*(2**3)
+ """
+ [a, b] = _coerce_fp_expr_list([other, self], self.ctx)
+ return fpDiv(_dflt_rm(), a, b, self.ctx)
+
+ if not sys.version < '3':
+ def __truediv__(self, other):
+ """Create the Z3 expression division `self / other`."""
+ return self.__div__(other)
+
+ def __rtruediv__(self, other):
+ """Create the Z3 expression division `other / self`."""
+ return self.__rdiv__(other)
+
+ def __mod__(self, other):
+ """Create the Z3 expression mod `self % other`."""
+ return fpRem(self, other)
+
+ def __rmod__(self, other):
+ """Create the Z3 expression mod `other % self`."""
+ return fpRem(other, self)
+
+class FPRMRef(ExprRef):
+ """Floating-point rounding mode expressions"""
+
+ def as_string(self):
+ """Return a Z3 floating point expression as a Python string."""
+ return Z3_ast_to_string(self.ctx_ref(), self.as_ast())
+
+
+def RoundNearestTiesToEven(ctx=None):
+ ctx = _get_ctx(ctx)
+ return FPRMRef(Z3_mk_fpa_round_nearest_ties_to_even(ctx.ref()), ctx)
+
+def RNE (ctx=None):
+ ctx = _get_ctx(ctx)
+ return FPRMRef(Z3_mk_fpa_round_nearest_ties_to_even(ctx.ref()), ctx)
+
+def RoundNearestTiesToAway(ctx=None):
+ ctx = _get_ctx(ctx)
+ return FPRMRef(Z3_mk_fpa_round_nearest_ties_to_away(ctx.ref()), ctx)
+
+def RNA (ctx=None):
+ ctx = _get_ctx(ctx)
+ return FPRMRef(Z3_mk_fpa_round_nearest_ties_to_away(ctx.ref()), ctx)
+
+def RoundTowardPositive(ctx=None):
+ ctx = _get_ctx(ctx)
+ return FPRMRef(Z3_mk_fpa_round_toward_positive(ctx.ref()), ctx)
+
+def RTP(ctx=None):
+ ctx = _get_ctx(ctx)
+ return FPRMRef(Z3_mk_fpa_round_toward_positive(ctx.ref()), ctx)
+
+def RoundTowardNegative(ctx=None):
+ ctx = _get_ctx(ctx)
+ return FPRMRef(Z3_mk_fpa_round_toward_negative(ctx.ref()), ctx)
+
+def RTN(ctx=None):
+ ctx = _get_ctx(ctx)
+ return FPRMRef(Z3_mk_fpa_round_toward_negative(ctx.ref()), ctx)
+
+def RoundTowardZero(ctx=None):
+ ctx = _get_ctx(ctx)
+ return FPRMRef(Z3_mk_fpa_round_toward_zero(ctx.ref()), ctx)
+
+def RTZ(ctx=None):
+ ctx = _get_ctx(ctx)
+ return FPRMRef(Z3_mk_fpa_round_toward_zero(ctx.ref()), ctx)
+
+def is_fprm(a):
+ """Return `True` if `a` is a Z3 floating-point rounding mode expression.
+
+ >>> rm = RNE()
+ >>> is_fprm(rm)
+ True
+ >>> rm = 1.0
+ >>> is_fprm(rm)
+ False
+ """
+ return isinstance(a, FPRMRef)
+
+def is_fprm_value(a):
+ """Return `True` if `a` is a Z3 floating-point rounding mode numeral value."""
+ return is_fprm(a) and _is_numeral(a.ctx, a.ast)
+
+### FP Numerals
+
+class FPNumRef(FPRef):
+ def isNaN(self):
+ return self.decl().kind() == Z3_OP_FPA_NAN
+
+ def isInf(self):
+ return self.decl().kind() == Z3_OP_FPA_PLUS_INF or self.decl().kind() == Z3_OP_FPA_MINUS_INF
+
+ def isZero(self):
+ return self.decl().kind() == Z3_OP_FPA_PLUS_ZERO or self.decl().kind() == Z3_OP_FPA_MINUS_ZERO
+
+ def isNegative(self):
+ k = self.decl().kind()
+ return (self.num_args() == 0 and (k == Z3_OP_FPA_MINUS_INF or k == Z3_OP_FPA_MINUS_ZERO)) or (self.sign() == True)
+
+ """
+ The sign of the numeral.
+
+ >>> x = FPNumRef(+1.0, FPSort(8, 24))
+ >>> x.sign()
+ False
+ >>> x = FPNumRef(-1.0, FPSort(8, 24))
+ >>> x.sign()
+ True
+ """
+ def sign(self):
+ l = (ctypes.c_int)()
+ if Z3_fpa_get_numeral_sign(self.ctx.ref(), self.as_ast(), byref(l)) == False:
+ raise Z3Exception("error retrieving the sign of a numeral.")
+ return l.value != 0
+
+ """
+ The significand of the numeral.
+
+ >>> x = FPNumRef(2.5, FPSort(8, 24))
+ >>> x.significand()
+ 1.25
+ """
+ def significand(self):
+ return Z3_fpa_get_numeral_significand_string(self.ctx.ref(), self.as_ast())
+
+ """
+ The exponent of the numeral.
+
+ >>> x = FPNumRef(2.5, FPSort(8, 24))
+ >>> x.exponent()
+ 1
+ """
+ def exponent(self):
+ return Z3_fpa_get_numeral_exponent_string(self.ctx.ref(), self.as_ast())
+
+ """
+ The exponent of the numeral as a long.
+
+ >>> x = FPNumRef(2.5, FPSort(8, 24))
+ >>> x.exponent_as_long()
+ 1
+ """
+ def exponent_as_long(self):
+ ptr = (ctypes.c_longlong * 1)()
+ if not Z3_fpa_get_numeral_exponent_int64(self.ctx.ref(), self.as_ast(), ptr):
+ raise Z3Exception("error retrieving the exponent of a numeral.")
+ return ptr[0]
+
+ """
+ The string representation of the numeral.
+
+ >>> x = FPNumRef(20, FPSort(8, 24))
+ >>> x.as_string()
+ 1.25*(2**4)
+ """
+ def as_string(self):
+ s = Z3_fpa_get_numeral_string(self.ctx.ref(), self.as_ast())
+ return ("FPVal(%s, %s)" % (s, self.sort()))
+
+def is_fp(a):
+ """Return `True` if `a` is a Z3 floating-point expression.
+
+ >>> b = FP('b', FPSort(8, 24))
+ >>> is_fp(b)
+ True
+ >>> is_fp(b + 1.0)
+ True
+ >>> is_fp(Int('x'))
+ False
+ """
+ return isinstance(a, FPRef)
+
+def is_fp_value(a):
+ """Return `True` if `a` is a Z3 floating-point numeral value.
+
+ >>> b = FP('b', FPSort(8, 24))
+ >>> is_fp_value(b)
+ False
+ >>> b = FPVal(1.0, FPSort(8, 24))
+ >>> b
+ 1
+ >>> is_fp_value(b)
+ True
+ """
+ return is_fp(a) and _is_numeral(a.ctx, a.ast)
+
+def FPSort(ebits, sbits, ctx=None):
+ """Return a Z3 floating-point sort of the given sizes. If `ctx=None`, then the global context is used.
+
+ >>> Single = FPSort(8, 24)
+ >>> Double = FPSort(11, 53)
+ >>> Single
+ FPSort(8, 24)
+ >>> x = Const('x', Single)
+ >>> eq(x, FP('x', FPSort(8, 24)))
+ True
+ """
+ ctx = _get_ctx(ctx)
+ return FPSortRef(Z3_mk_fpa_sort(ctx.ref(), ebits, sbits), ctx)
+
+def _to_float_str(val, exp=0):
+ if isinstance(val, float):
+ if math.isnan(val):
+ res = "NaN"
+ elif val == 0.0:
+ sone = math.copysign(1.0, val)
+ if sone < 0.0:
+ return "-0.0"
+ else:
+ return "+0.0"
+ elif val == float("+inf"):
+ res = "+oo"
+ elif val == float("-inf"):
+ res = "-oo"
+ else:
+ v = val.as_integer_ratio()
+ num = v[0]
+ den = v[1]
+ rvs = str(num) + '/' + str(den)
+ res = rvs + 'p' + _to_int_str(exp)
+ elif isinstance(val, bool):
+ if val:
+ res = "1.0"
+ else:
+ res = "0.0"
+ elif _is_int(val):
+ res = str(val)
+ elif isinstance(val, str):
+ inx = val.find('*(2**')
+ if inx == -1:
+ res = val
+ elif val[-1] == ')':
+ res = val[0:inx]
+ exp = str(int(val[inx+5:-1]) + int(exp))
+ else:
+ _z3_assert(False, "String does not have floating-point numeral form.")
+ elif __debug__:
+ _z3_assert(False, "Python value cannot be used to create floating-point numerals.")
+ if exp == 0:
+ return res
+ else:
+ return res + 'p' + exp
+
+
+def fpNaN(s):
+ """Create a Z3 floating-point NaN term.
+
+ >>> s = FPSort(8, 24)
+ >>> set_fpa_pretty(True)
+ >>> fpNaN(s)
+ NaN
+ >>> pb = get_fpa_pretty()
+ >>> set_fpa_pretty(False)
+ >>> fpNaN(s)
+ fpNaN(FPSort(8, 24))
+ >>> set_fpa_pretty(pb)
+ """
+ _z3_assert(isinstance(s, FPSortRef), "sort mismatch")
+ return FPNumRef(Z3_mk_fpa_nan(s.ctx_ref(), s.ast), s.ctx)
+
+def fpPlusInfinity(s):
+ """Create a Z3 floating-point +oo term.
+
+ >>> s = FPSort(8, 24)
+ >>> pb = get_fpa_pretty()
+ >>> set_fpa_pretty(True)
+ >>> fpPlusInfinity(s)
+ +oo
+ >>> set_fpa_pretty(False)
+ >>> fpPlusInfinity(s)
+ fpPlusInfinity(FPSort(8, 24))
+ >>> set_fpa_pretty(pb)
+ """
+ _z3_assert(isinstance(s, FPSortRef), "sort mismatch")
+ return FPNumRef(Z3_mk_fpa_inf(s.ctx_ref(), s.ast, False), s.ctx)
+
+def fpMinusInfinity(s):
+ """Create a Z3 floating-point -oo term."""
+ _z3_assert(isinstance(s, FPSortRef), "sort mismatch")
+ return FPNumRef(Z3_mk_fpa_inf(s.ctx_ref(), s.ast, True), s.ctx)
+
+def fpInfinity(s, negative):
+ """Create a Z3 floating-point +oo or -oo term."""
+ _z3_assert(isinstance(s, FPSortRef), "sort mismatch")
+ _z3_assert(isinstance(negative, bool), "expected Boolean flag")
+ return FPNumRef(Z3_mk_fpa_inf(s.ctx_ref(), s.ast, negative), s.ctx)
+
+def fpPlusZero(s):
+ """Create a Z3 floating-point +0.0 term."""
+ _z3_assert(isinstance(s, FPSortRef), "sort mismatch")
+ return FPNumRef(Z3_mk_fpa_zero(s.ctx_ref(), s.ast, False), s.ctx)
+
+def fpMinusZero(s):
+ """Create a Z3 floating-point -0.0 term."""
+ _z3_assert(isinstance(s, FPSortRef), "sort mismatch")
+ return FPNumRef(Z3_mk_fpa_zero(s.ctx_ref(), s.ast, True), s.ctx)
+
+def fpZero(s, negative):
+ """Create a Z3 floating-point +0.0 or -0.0 term."""
+ _z3_assert(isinstance(s, FPSortRef), "sort mismatch")
+ _z3_assert(isinstance(negative, bool), "expected Boolean flag")
+ return FPNumRef(Z3_mk_fpa_zero(s.ctx_ref(), s.ast, negative), s.ctx)
+
+def FPVal(sig, exp=None, fps=None, ctx=None):
+ """Return a floating-point value of value `val` and sort `fps`. If `ctx=None`, then the global context is used.
+
+ >>> v = FPVal(20.0, FPSort(8, 24))
+ >>> v
+ 1.25*(2**4)
+ >>> print("0x%.8x" % v.exponent_as_long())
+ 0x00000004
+ >>> v = FPVal(2.25, FPSort(8, 24))
+ >>> v
+ 1.125*(2**1)
+ >>> v = FPVal(-2.25, FPSort(8, 24))
+ >>> v
+ -1.125*(2**1)
+ >>> FPVal(-0.0, FPSort(8, 24))
+ -0.0
+ >>> FPVal(0.0, FPSort(8, 24))
+ +0.0
+ >>> FPVal(+0.0, FPSort(8, 24))
+ +0.0
+ """
+ ctx = _get_ctx(ctx)
+ if is_fp_sort(exp):
+ fps = exp
+ exp = None
+ elif fps is None:
+ fps = _dflt_fps(ctx)
+ _z3_assert(is_fp_sort(fps), "sort mismatch")
+ if exp is None:
+ exp = 0
+ val = _to_float_str(sig)
+ if val == "NaN" or val == "nan":
+ return fpNaN(fps)
+ elif val == "-0.0":
+ return fpMinusZero(fps)
+ elif val == "0.0" or val == "+0.0":
+ return fpPlusZero(fps)
+ elif val == "+oo" or val == "+inf" or val == "+Inf":
+ return fpPlusInfinity(fps)
+ elif val == "-oo" or val == "-inf" or val == "-Inf":
+ return fpMinusInfinity(fps)
+ else:
+ return FPNumRef(Z3_mk_numeral(ctx.ref(), val, fps.ast), ctx)
+
+def FP(name, fpsort, ctx=None):
+ """Return a floating-point constant named `name`.
+ `fpsort` is the floating-point sort.
+ If `ctx=None`, then the global context is used.
+
+ >>> x = FP('x', FPSort(8, 24))
+ >>> is_fp(x)
+ True
+ >>> x.ebits()
+ 8
+ >>> x.sort()
+ FPSort(8, 24)
+ >>> word = FPSort(8, 24)
+ >>> x2 = FP('x', word)
+ >>> eq(x, x2)
+ True
+ """
+ if isinstance(fpsort, FPSortRef) and ctx is None:
+ ctx = fpsort.ctx
+ else:
+ ctx = _get_ctx(ctx)
+ return FPRef(Z3_mk_const(ctx.ref(), to_symbol(name, ctx), fpsort.ast), ctx)
+
+def FPs(names, fpsort, ctx=None):
+ """Return an array of floating-point constants.
+
+ >>> x, y, z = FPs('x y z', FPSort(8, 24))
+ >>> x.sort()
+ FPSort(8, 24)
+ >>> x.sbits()
+ 24
+ >>> x.ebits()
+ 8
+ >>> fpMul(RNE(), fpAdd(RNE(), x, y), z)
+ fpMul(RNE(), fpAdd(RNE(), x, y), z)
+ """
+ ctx = _get_ctx(ctx)
+ if isinstance(names, str):
+ names = names.split(" ")
+ return [FP(name, fpsort, ctx) for name in names]
+
+def fpAbs(a, ctx=None):
+ """Create a Z3 floating-point absolute value expression.
+
+ >>> s = FPSort(8, 24)
+ >>> rm = RNE()
+ >>> x = FPVal(1.0, s)
+ >>> fpAbs(x)
+ fpAbs(1)
+ >>> y = FPVal(-20.0, s)
+ >>> y
+ -1.25*(2**4)
+ >>> fpAbs(y)
+ fpAbs(-1.25*(2**4))
+ >>> fpAbs(-1.25*(2**4))
+ fpAbs(-1.25*(2**4))
+ >>> fpAbs(x).sort()
+ FPSort(8, 24)
+ """
+ ctx = _get_ctx(ctx)
+ [a] = _coerce_fp_expr_list([a], ctx)
+ return FPRef(Z3_mk_fpa_abs(ctx.ref(), a.as_ast()), ctx)
+
+def fpNeg(a, ctx=None):
+ """Create a Z3 floating-point addition expression.
+
+ >>> s = FPSort(8, 24)
+ >>> rm = RNE()
+ >>> x = FP('x', s)
+ >>> fpNeg(x)
+ -x
+ >>> fpNeg(x).sort()
+ FPSort(8, 24)
+ """
+ ctx = _get_ctx(ctx)
+ [a] = _coerce_fp_expr_list([a], ctx)
+ return FPRef(Z3_mk_fpa_neg(ctx.ref(), a.as_ast()), ctx)
+
+def _mk_fp_unary(f, rm, a, ctx):
+ ctx = _get_ctx(ctx)
+ [a] = _coerce_fp_expr_list([a], ctx)
+ if __debug__:
+ _z3_assert(is_fprm(rm), "First argument must be a Z3 floating-point rounding mode expression")
+ _z3_assert(is_fp(a), "Second argument must be a Z3 floating-point expression")
+ return FPRef(f(ctx.ref(), rm.as_ast(), a.as_ast()), ctx)
+
+def _mk_fp_unary_norm(f, a, ctx):
+ ctx = _get_ctx(ctx)
+ [a] = _coerce_fp_expr_list([a], ctx)
+ if __debug__:
+ _z3_assert(is_fp(a), "First argument must be a Z3 floating-point expression")
+ return FPRef(f(ctx.ref(), a.as_ast()), ctx)
+
+def _mk_fp_unary_pred(f, a, ctx):
+ ctx = _get_ctx(ctx)
+ [a] = _coerce_fp_expr_list([a], ctx)
+ if __debug__:
+ _z3_assert(is_fp(a) or is_fp(b), "Second or third argument must be a Z3 floating-point expression")
+ return BoolRef(f(ctx.ref(), a.as_ast()), ctx)
+
+def _mk_fp_bin(f, rm, a, b, ctx):
+ ctx = _get_ctx(ctx)
+ [a, b] = _coerce_fp_expr_list([a, b], ctx)
+ if __debug__:
+ _z3_assert(is_fprm(rm), "First argument must be a Z3 floating-point rounding mode expression")
+ _z3_assert(is_fp(a) or is_fp(b), "Second or third argument must be a Z3 floating-point expression")
+ return FPRef(f(ctx.ref(), rm.as_ast(), a.as_ast(), b.as_ast()), ctx)
+
+def _mk_fp_bin_norm(f, a, b, ctx):
+ ctx = _get_ctx(ctx)
+ [a, b] = _coerce_fp_expr_list([a, b], ctx)
+ if __debug__:
+ _z3_assert(is_fp(a) or is_fp(b), "First or second argument must be a Z3 floating-point expression")
+ return FPRef(f(ctx.ref(), a.as_ast(), b.as_ast()), ctx)
+
+def _mk_fp_bin_pred(f, a, b, ctx):
+ ctx = _get_ctx(ctx)
+ [a, b] = _coerce_fp_expr_list([a, b], ctx)
+ if __debug__:
+ _z3_assert(is_fp(a) or is_fp(b), "Second or third argument must be a Z3 floating-point expression")
+ return BoolRef(f(ctx.ref(), a.as_ast(), b.as_ast()), ctx)
+
+def _mk_fp_tern(f, rm, a, b, c, ctx):
+ ctx = _get_ctx(ctx)
+ [a, b, c] = _coerce_fp_expr_list([a, b, c], ctx)
+ if __debug__:
+ _z3_assert(is_fprm(rm), "First argument must be a Z3 floating-point rounding mode expression")
+ _z3_assert(is_fp(a) or is_fp(b) or is_fp(c), "At least one of the arguments must be a Z3 floating-point expression")
+ return FPRef(f(ctx.ref(), rm.as_ast(), a.as_ast(), b.as_ast(), c.as_ast()), ctx)
+
+def fpAdd(rm, a, b, ctx=None):
+ """Create a Z3 floating-point addition expression.
+
+ >>> s = FPSort(8, 24)
+ >>> rm = RNE()
+ >>> x = FP('x', s)
+ >>> y = FP('y', s)
+ >>> fpAdd(rm, x, y)
+ fpAdd(RNE(), x, y)
+ >>> fpAdd(RTZ(), x, y) # default rounding mode is RTZ
+ x + y
+ >>> fpAdd(rm, x, y).sort()
+ FPSort(8, 24)
+ """
+ return _mk_fp_bin(Z3_mk_fpa_add, rm, a, b, ctx)
+
+def fpSub(rm, a, b, ctx=None):
+ """Create a Z3 floating-point subtraction expression.
+
+ >>> s = FPSort(8, 24)
+ >>> rm = RNE()
+ >>> x = FP('x', s)
+ >>> y = FP('y', s)
+ >>> fpSub(rm, x, y)
+ fpSub(RNE(), x, y)
+ >>> fpSub(rm, x, y).sort()
+ FPSort(8, 24)
+ """
+ return _mk_fp_bin(Z3_mk_fpa_sub, rm, a, b, ctx)
+
+def fpMul(rm, a, b, ctx=None):
+ """Create a Z3 floating-point multiplication expression.
+
+ >>> s = FPSort(8, 24)
+ >>> rm = RNE()
+ >>> x = FP('x', s)
+ >>> y = FP('y', s)
+ >>> fpMul(rm, x, y)
+ fpMul(RNE(), x, y)
+ >>> fpMul(rm, x, y).sort()
+ FPSort(8, 24)
+ """
+ return _mk_fp_bin(Z3_mk_fpa_mul, rm, a, b, ctx)
+
+def fpDiv(rm, a, b, ctx=None):
+ """Create a Z3 floating-point divison expression.
+
+ >>> s = FPSort(8, 24)
+ >>> rm = RNE()
+ >>> x = FP('x', s)
+ >>> y = FP('y', s)
+ >>> fpDiv(rm, x, y)
+ fpDiv(RNE(), x, y)
+ >>> fpDiv(rm, x, y).sort()
+ FPSort(8, 24)
+ """
+ return _mk_fp_bin(Z3_mk_fpa_div, rm, a, b, ctx)
+
+def fpRem(a, b, ctx=None):
+ """Create a Z3 floating-point remainder expression.
+
+ >>> s = FPSort(8, 24)
+ >>> x = FP('x', s)
+ >>> y = FP('y', s)
+ >>> fpRem(x, y)
+ fpRem(x, y)
+ >>> fpRem(x, y).sort()
+ FPSort(8, 24)
+ """
+ return _mk_fp_bin_norm(Z3_mk_fpa_rem, a, b, ctx)
+
+def fpMin(a, b, ctx=None):
+ """Create a Z3 floating-point minimium expression.
+
+ >>> s = FPSort(8, 24)
+ >>> rm = RNE()
+ >>> x = FP('x', s)
+ >>> y = FP('y', s)
+ >>> fpMin(x, y)
+ fpMin(x, y)
+ >>> fpMin(x, y).sort()
+ FPSort(8, 24)
+ """
+ return _mk_fp_bin_norm(Z3_mk_fpa_min, a, b, ctx)
+
+def fpMax(a, b, ctx=None):
+ """Create a Z3 floating-point maximum expression.
+
+ >>> s = FPSort(8, 24)
+ >>> rm = RNE()
+ >>> x = FP('x', s)
+ >>> y = FP('y', s)
+ >>> fpMax(x, y)
+ fpMax(x, y)
+ >>> fpMax(x, y).sort()
+ FPSort(8, 24)
+ """
+ return _mk_fp_bin_norm(Z3_mk_fpa_max, a, b, ctx)
+
+def fpFMA(rm, a, b, c, ctx=None):
+ """Create a Z3 floating-point fused multiply-add expression.
+ """
+ return _mk_fp_tern(Z3_mk_fpa_fma, rm, a, b, c, ctx)
+
+def fpSqrt(rm, a, ctx=None):
+ """Create a Z3 floating-point square root expression.
+ """
+ return _mk_fp_unary(Z3_mk_fpa_sqrt, rm, a, ctx)
+
+def fpRoundToIntegral(rm, a, ctx=None):
+ """Create a Z3 floating-point roundToIntegral expression.
+ """
+ return _mk_fp_unary(Z3_mk_fpa_round_to_integral, rm, a, ctx)
+
+def fpIsNaN(a, ctx=None):
+ """Create a Z3 floating-point isNaN expression.
+
+ >>> s = FPSort(8, 24)
+ >>> x = FP('x', s)
+ >>> y = FP('y', s)
+ >>> fpIsNaN(x)
+ fpIsNaN(x)
+ """
+ return _mk_fp_unary_norm(Z3_mk_fpa_is_nan, a, ctx)
+
+def fpIsInf(a, ctx=None):
+ """Create a Z3 floating-point isInfinite expression.
+
+ >>> s = FPSort(8, 24)
+ >>> x = FP('x', s)
+ >>> fpIsInf(x)
+ fpIsInf(x)
+ """
+ return _mk_fp_unary_norm(Z3_mk_fpa_is_infinite, a, ctx)
+
+def fpIsZero(a, ctx=None):
+ """Create a Z3 floating-point isZero expression.
+ """
+ return _mk_fp_unary_norm(Z3_mk_fpa_is_zero, a, ctx)
+
+def fpIsNormal(a, ctx=None):
+ """Create a Z3 floating-point isNormal expression.
+ """
+ return _mk_fp_unary_norm(Z3_mk_fpa_is_normal, a, ctx)
+
+def fpIsSubnormal(a, ctx=None):
+ """Create a Z3 floating-point isSubnormal expression.
+ """
+ return _mk_fp_unary_norm(Z3_mk_fpa_is_subnormal, a, ctx)
+
+def fpIsNegative(a, ctx=None):
+ """Create a Z3 floating-point isNegative expression.
+ """
+ return _mk_fp_unary_norm(Z3_mk_fpa_is_negative, a, ctx)
+
+def fpIsPositive(a, ctx=None):
+ """Create a Z3 floating-point isPositive expression.
+ """
+ return _mk_fp_unary_norm(Z3_mk_fpa_is_positive, a, ctx)
+ return FPRef(Z3_mk_fpa_is_positive(a.ctx_ref(), a.as_ast()), a.ctx)
+
+def _check_fp_args(a, b):
+ if __debug__:
+ _z3_assert(is_fp(a) or is_fp(b), "At least one of the arguments must be a Z3 floating-point expression")
+
+def fpLT(a, b, ctx=None):
+ """Create the Z3 floating-point expression `other < self`.
+
+ >>> x, y = FPs('x y', FPSort(8, 24))
+ >>> fpLT(x, y)
+ x < y
+ >>> (x < y).sexpr()
+ '(fp.lt x y)'
+ """
+ return _mk_fp_bin_pred(Z3_mk_fpa_lt, a, b, ctx)
+
+def fpLEQ(a, b, ctx=None):
+ """Create the Z3 floating-point expression `other <= self`.
+
+ >>> x, y = FPs('x y', FPSort(8, 24))
+ >>> fpLEQ(x, y)
+ x <= y
+ >>> (x <= y).sexpr()
+ '(fp.leq x y)'
+ """
+ return _mk_fp_bin_pred(Z3_mk_fpa_leq, a, b, ctx)
+
+def fpGT(a, b, ctx=None):
+ """Create the Z3 floating-point expression `other > self`.
+
+ >>> x, y = FPs('x y', FPSort(8, 24))
+ >>> fpGT(x, y)
+ x > y
+ >>> (x > y).sexpr()
+ '(fp.gt x y)'
+ """
+ return _mk_fp_bin_pred(Z3_mk_fpa_gt, a, b, ctx)
+
+def fpGEQ(a, b, ctx=None):
+ """Create the Z3 floating-point expression `other >= self`.
+
+ >>> x, y = FPs('x y', FPSort(8, 24))
+ >>> fpGEQ(x, y)
+ x >= y
+ >>> (x >= y).sexpr()
+ '(fp.geq x y)'
+ """
+ return _mk_fp_bin_pred(Z3_mk_fpa_geq, a, b, ctx)
+
+def fpEQ(a, b, ctx=None):
+ """Create the Z3 floating-point expression `fpEQ(other, self)`.
+
+ >>> x, y = FPs('x y', FPSort(8, 24))
+ >>> fpEQ(x, y)
+ fpEQ(x, y)
+ >>> fpEQ(x, y).sexpr()
+ '(fp.eq x y)'
+ """
+ return _mk_fp_bin_pred(Z3_mk_fpa_eq, a, b, ctx)
+
+def fpNEQ(a, b, ctx=None):
+ """Create the Z3 floating-point expression `Not(fpEQ(other, self))`.
+
+ >>> x, y = FPs('x y', FPSort(8, 24))
+ >>> fpNEQ(x, y)
+ Not(fpEQ(x, y))
+ >>> (x != y).sexpr()
+ '(distinct x y)'
+ """
+ return Not(fpEQ(a, b, ctx))
+
+def fpFP(sgn, exp, sig, ctx=None):
+ """Create the Z3 floating-point value `fpFP(sgn, sig, exp)` from the three bit-vectors sgn, sig, and exp.
+
+ >>> s = FPSort(8, 24)
+ >>> x = fpFP(BitVecVal(1, 1), BitVecVal(2**7-1, 8), BitVecVal(2**22, 23))
+ >>> print(x)
+ fpFP(1, 127, 4194304)
+ >>> xv = FPVal(-1.5, s)
+ >>> print(xv)
+ -1.5
+ >>> slvr = Solver()
+ >>> slvr.add(fpEQ(x, xv))
+ >>> slvr.check()
+ sat
+ >>> xv = FPVal(+1.5, s)
+ >>> print(xv)
+ 1.5
+ >>> slvr = Solver()
+ >>> slvr.add(fpEQ(x, xv))
+ >>> slvr.check()
+ unsat
+ """
+ _z3_assert(is_bv(sgn) and is_bv(exp) and is_bv(sig), "sort mismatch")
+ _z3_assert(sgn.sort().size() == 1, "sort mismatch")
+ ctx = _get_ctx(ctx)
+ _z3_assert(ctx == sgn.ctx == exp.ctx == sig.ctx, "context mismatch")
+ return FPRef(Z3_mk_fpa_fp(ctx.ref(), sgn.ast, exp.ast, sig.ast), ctx)
+
+def fpToFP(a1, a2=None, a3=None, ctx=None):
+ """Create a Z3 floating-point conversion expression from other term sorts
+ to floating-point.
+
+ From a bit-vector term in IEEE 754-2008 format:
+ >>> x = FPVal(1.0, Float32())
+ >>> x_bv = fpToIEEEBV(x)
+ >>> simplify(fpToFP(x_bv, Float32()))
+ 1
+
+ From a floating-point term with different precision:
+ >>> x = FPVal(1.0, Float32())
+ >>> x_db = fpToFP(RNE(), x, Float64())
+ >>> x_db.sort()
+ FPSort(11, 53)
+
+ From a real term:
+ >>> x_r = RealVal(1.5)
+ >>> simplify(fpToFP(RNE(), x_r, Float32()))
+ 1.5
+
+ From a signed bit-vector term:
+ >>> x_signed = BitVecVal(-5, BitVecSort(32))
+ >>> simplify(fpToFP(RNE(), x_signed, Float32()))
+ -1.25*(2**2)
+ """
+ ctx = _get_ctx(ctx)
+ if is_bv(a1) and is_fp_sort(a2):
+ return FPRef(Z3_mk_fpa_to_fp_bv(ctx.ref(), a1.ast, a2.ast), ctx)
+ elif is_fprm(a1) and is_fp(a2) and is_fp_sort(a3):
+ return FPRef(Z3_mk_fpa_to_fp_float(ctx.ref(), a1.ast, a2.ast, a3.ast), ctx)
+ elif is_fprm(a1) and is_real(a2) and is_fp_sort(a3):
+ return FPRef(Z3_mk_fpa_to_fp_real(ctx.ref(), a1.ast, a2.ast, a3.ast), ctx)
+ elif is_fprm(a1) and is_bv(a2) and is_fp_sort(a3):
+ return FPRef(Z3_mk_fpa_to_fp_signed(ctx.ref(), a1.ast, a2.ast, a3.ast), ctx)
+ else:
+ raise Z3Exception("Unsupported combination of arguments for conversion to floating-point term.")
+
+def fpBVToFP(v, sort, ctx=None):
+ """Create a Z3 floating-point conversion expression that represents the
+ conversion from a bit-vector term to a floating-point term.
+
+ >>> x_bv = BitVecVal(0x3F800000, 32)
+ >>> x_fp = fpBVToFP(x_bv, Float32())
+ >>> x_fp
+ fpToFP(1065353216)
+ >>> simplify(x_fp)
+ 1
+ """
+ _z3_assert(is_bv(v), "First argument must be a Z3 floating-point rounding mode expression.")
+ _z3_assert(is_fp_sort(sort), "Second argument must be a Z3 floating-point sort.")
+ ctx = _get_ctx(ctx)
+ return FPRef(Z3_mk_fpa_to_fp_bv(ctx.ref(), v.ast, sort.ast), ctx)
+
+def fpFPToFP(rm, v, sort, ctx=None):
+ """Create a Z3 floating-point conversion expression that represents the
+ conversion from a floating-point term to a floating-point term of different precision.
+
+ >>> x_sgl = FPVal(1.0, Float32())
+ >>> x_dbl = fpFPToFP(RNE(), x_sgl, Float64())
+ >>> x_dbl
+ fpToFP(RNE(), 1)
+ >>> simplify(x_dbl)
+ 1
+ >>> x_dbl.sort()
+ FPSort(11, 53)
+ """
+ _z3_assert(is_fprm(rm), "First argument must be a Z3 floating-point rounding mode expression.")
+ _z3_assert(is_fp(v), "Second argument must be a Z3 floating-point expression.")
+ _z3_assert(is_fp_sort(sort), "Third argument must be a Z3 floating-point sort.")
+ ctx = _get_ctx(ctx)
+ return FPRef(Z3_mk_fpa_to_fp_float(ctx.ref(), rm.ast, v.ast, sort.ast), ctx)
+
+def fpRealToFP(rm, v, sort, ctx=None):
+ """Create a Z3 floating-point conversion expression that represents the
+ conversion from a real term to a floating-point term.
+
+ >>> x_r = RealVal(1.5)
+ >>> x_fp = fpRealToFP(RNE(), x_r, Float32())
+ >>> x_fp
+ fpToFP(RNE(), 3/2)
+ >>> simplify(x_fp)
+ 1.5
+ """
+ _z3_assert(is_fprm(rm), "First argument must be a Z3 floating-point rounding mode expression.")
+ _z3_assert(is_real(v), "Second argument must be a Z3 expression or real sort.")
+ _z3_assert(is_fp_sort(sort), "Third argument must be a Z3 floating-point sort.")
+ ctx = _get_ctx(ctx)
+ return FPRef(Z3_mk_fpa_to_fp_real(ctx.ref(), rm.ast, v.ast, sort.ast), ctx)
+
+def fpSignedToFP(rm, v, sort, ctx=None):
+ """Create a Z3 floating-point conversion expression that represents the
+ conversion from a signed bit-vector term (encoding an integer) to a floating-point term.
+
+ >>> x_signed = BitVecVal(-5, BitVecSort(32))
+ >>> x_fp = fpSignedToFP(RNE(), x_signed, Float32())
+ >>> x_fp
+ fpToFP(RNE(), 4294967291)
+ >>> simplify(x_fp)
+ -1.25*(2**2)
+ """
+ _z3_assert(is_fprm(rm), "First argument must be a Z3 floating-point rounding mode expression.")
+ _z3_assert(is_bv(v), "Second argument must be a Z3 expression or real sort.")
+ _z3_assert(is_fp_sort(sort), "Third argument must be a Z3 floating-point sort.")
+ ctx = _get_ctx(ctx)
+ return FPRef(Z3_mk_fpa_to_fp_signed(ctx.ref(), rm.ast, v.ast, sort.ast), ctx)
+
+def fpUnsignedToFP(rm, v, sort, ctx=None):
+ """Create a Z3 floating-point conversion expression that represents the
+ conversion from an unsigned bit-vector term (encoding an integer) to a floating-point term.
+
+ >>> x_signed = BitVecVal(-5, BitVecSort(32))
+ >>> x_fp = fpUnsignedToFP(RNE(), x_signed, Float32())
+ >>> x_fp
+ fpToFPUnsigned(RNE(), 4294967291)
+ >>> simplify(x_fp)
+ 1*(2**32)
+ """
+ _z3_assert(is_fprm(rm), "First argument must be a Z3 floating-point rounding mode expression.")
+ _z3_assert(is_bv(v), "Second argument must be a Z3 expression or real sort.")
+ _z3_assert(is_fp_sort(sort), "Third argument must be a Z3 floating-point sort.")
+ ctx = _get_ctx(ctx)
+ return FPRef(Z3_mk_fpa_to_fp_unsigned(ctx.ref(), rm.ast, v.ast, sort.ast), ctx)
+
+def fpToFPUnsigned(rm, x, s, ctx=None):
+ """Create a Z3 floating-point conversion expression, from unsigned bit-vector to floating-point expression."""
+ if __debug__:
+ _z3_assert(is_fprm(rm), "First argument must be a Z3 floating-point rounding mode expression")
+ _z3_assert(is_bv(x), "Second argument must be a Z3 bit-vector expression")
+ _z3_assert(is_fp_sort(s), "Third argument must be Z3 floating-point sort")
+ ctx = _get_ctx(ctx)
+ return FPRef(Z3_mk_fpa_to_fp_unsigned(ctx.ref(), rm.ast, x.ast, s.ast), ctx)
+
+def fpToSBV(rm, x, s, ctx=None):
+ """Create a Z3 floating-point conversion expression, from floating-point expression to signed bit-vector.
+
+ >>> x = FP('x', FPSort(8, 24))
+ >>> y = fpToSBV(RTZ(), x, BitVecSort(32))
+ >>> print(is_fp(x))
+ True
+ >>> print(is_bv(y))
+ True
+ >>> print(is_fp(y))
+ False
+ >>> print(is_bv(x))
+ False
+ """
+ if __debug__:
+ _z3_assert(is_fprm(rm), "First argument must be a Z3 floating-point rounding mode expression")
+ _z3_assert(is_fp(x), "Second argument must be a Z3 floating-point expression")
+ _z3_assert(is_bv_sort(s), "Third argument must be Z3 bit-vector sort")
+ ctx = _get_ctx(ctx)
+ return BitVecRef(Z3_mk_fpa_to_sbv(ctx.ref(), rm.ast, x.ast, s.size()), ctx)
+
+def fpToUBV(rm, x, s, ctx=None):
+ """Create a Z3 floating-point conversion expression, from floating-point expression to unsigned bit-vector.
+
+ >>> x = FP('x', FPSort(8, 24))
+ >>> y = fpToUBV(RTZ(), x, BitVecSort(32))
+ >>> print(is_fp(x))
+ True
+ >>> print(is_bv(y))
+ True
+ >>> print(is_fp(y))
+ False
+ >>> print(is_bv(x))
+ False
+ """
+ if __debug__:
+ _z3_assert(is_fprm(rm), "First argument must be a Z3 floating-point rounding mode expression")
+ _z3_assert(is_fp(x), "Second argument must be a Z3 floating-point expression")
+ _z3_assert(is_bv_sort(s), "Third argument must be Z3 bit-vector sort")
+ ctx = _get_ctx(ctx)
+ return BitVecRef(Z3_mk_fpa_to_ubv(ctx.ref(), rm.ast, x.ast, s.size()), ctx)
+
+def fpToReal(x, ctx=None):
+ """Create a Z3 floating-point conversion expression, from floating-point expression to real.
+
+ >>> x = FP('x', FPSort(8, 24))
+ >>> y = fpToReal(x)
+ >>> print(is_fp(x))
+ True
+ >>> print(is_real(y))
+ True
+ >>> print(is_fp(y))
+ False
+ >>> print(is_real(x))
+ False
+ """
+ if __debug__:
+ _z3_assert(is_fp(x), "First argument must be a Z3 floating-point expression")
+ ctx = _get_ctx(ctx)
+ return ArithRef(Z3_mk_fpa_to_real(ctx.ref(), x.ast), ctx)
+
+def fpToIEEEBV(x, ctx=None):
+ """\brief Conversion of a floating-point term into a bit-vector term in IEEE 754-2008 format.
+
+ The size of the resulting bit-vector is automatically determined.
+
+ Note that IEEE 754-2008 allows multiple different representations of NaN. This conversion
+ knows only one NaN and it will always produce the same bit-vector represenatation of
+ that NaN.
+
+ >>> x = FP('x', FPSort(8, 24))
+ >>> y = fpToIEEEBV(x)
+ >>> print(is_fp(x))
+ True
+ >>> print(is_bv(y))
+ True
+ >>> print(is_fp(y))
+ False
+ >>> print(is_bv(x))
+ False
+ """
+ if __debug__:
+ _z3_assert(is_fp(x), "First argument must be a Z3 floating-point expression")
+ ctx = _get_ctx(ctx)
+ return BitVecRef(Z3_mk_fpa_to_ieee_bv(ctx.ref(), x.ast), ctx)
+
+
+
+#########################################
+#
+# Strings, Sequences and Regular expressions
+#
+#########################################
+
+class SeqSortRef(SortRef):
+ """Sequence sort."""
+
+ def is_string(self):
+ """Determine if sort is a string
+ >>> s = StringSort()
+ >>> s.is_string()
+ True
+ >>> s = SeqSort(IntSort())
+ >>> s.is_string()
+ False
+ """
+ return Z3_is_string_sort(self.ctx_ref(), self.ast)
+
+def StringSort(ctx=None):
+ """Create a string sort
+ >>> s = StringSort()
+ >>> print(s)
+ String
+ """
+ ctx = _get_ctx(ctx)
+ return SeqSortRef(Z3_mk_string_sort(ctx.ref()), ctx)
+
+
+def SeqSort(s):
+ """Create a sequence sort over elements provided in the argument
+ >>> s = SeqSort(IntSort())
+ >>> s == Unit(IntVal(1)).sort()
+ True
+ """
+ return SeqSortRef(Z3_mk_seq_sort(s.ctx_ref(), s.ast), s.ctx)
+
+class SeqRef(ExprRef):
+ """Sequence expression."""
+
+ def sort(self):
+ return SeqSortRef(Z3_get_sort(self.ctx_ref(), self.as_ast()), self.ctx)
+
+ def __add__(self, other):
+ return Concat(self, other)
+
+ def __radd__(self, other):
+ return Concat(other, self)
+
+ def __getitem__(self, i):
+ if _is_int(i):
+ i = IntVal(i, self.ctx)
+ return SeqRef(Z3_mk_seq_at(self.ctx_ref(), self.as_ast(), i.as_ast()), self.ctx)
+
+ def is_string(self):
+ return Z3_is_string_sort(self.ctx_ref(), Z3_get_sort(self.ctx_ref(), self.as_ast()))
+
+ def is_string_value(self):
+ return Z3_is_string(self.ctx_ref(), self.as_ast())
+
+ def as_string(self):
+ """Return a string representation of sequence expression."""
+ return Z3_ast_to_string(self.ctx_ref(), self.as_ast())
+
+
+def _coerce_seq(s, ctx=None):
+ if isinstance(s, str):
+ ctx = _get_ctx(ctx)
+ s = StringVal(s, ctx)
+ if not is_expr(s):
+ raise Z3Exception("Non-expression passed as a sequence")
+ if not is_seq(s):
+ raise Z3Exception("Non-sequence passed as a sequence")
+ return s
+
+def _get_ctx2(a, b, ctx=None):
+ if is_expr(a):
+ return a.ctx
+ if is_expr(b):
+ return b.ctx
+ if ctx is None:
+ ctx = main_ctx()
+ return ctx
+
+def is_seq(a):
+ """Return `True` if `a` is a Z3 sequence expression.
+ >>> print (is_seq(Unit(IntVal(0))))
+ True
+ >>> print (is_seq(StringVal("abc")))
+ True
+ """
+ return isinstance(a, SeqRef)
+
+def is_string(a):
+ """Return `True` if `a` is a Z3 string expression.
+ >>> print (is_string(StringVal("ab")))
+ True
+ """
+ return isinstance(a, SeqRef) and a.is_string()
+
+def is_string_value(a):
+ """return 'True' if 'a' is a Z3 string constant expression.
+ >>> print (is_string_value(StringVal("a")))
+ True
+ >>> print (is_string_value(StringVal("a") + StringVal("b")))
+ False
+ """
+ return isinstance(a, SeqRef) and a.is_string_value()
+
+
+def StringVal(s, ctx=None):
+ """create a string expression"""
+ ctx = _get_ctx(ctx)
+ return SeqRef(Z3_mk_string(ctx.ref(), s), ctx)
+
+def String(name, ctx=None):
+ """Return a string constant named `name`. If `ctx=None`, then the global context is used.
+
+ >>> x = String('x')
+ """
+ ctx = _get_ctx(ctx)
+ return SeqRef(Z3_mk_const(ctx.ref(), to_symbol(name, ctx), StringSort(ctx).ast), ctx)
+
+def Strings(names, ctx=None):
+ """Return a tuple of String constants. """
+ ctx = _get_ctx(ctx)
+ if isinstance(names, str):
+ names = names.split(" ")
+ return [String(name, ctx) for name in names]
+
+def Empty(s):
+ """Create the empty sequence of the given sort
+ >>> e = Empty(StringSort())
+ >>> print(e)
+ ""
+ >>> e2 = StringVal("")
+ >>> print(e.eq(e2))
+ True
+ >>> e3 = Empty(SeqSort(IntSort()))
+ >>> print(e3)
+ seq.empty
+ """
+ return SeqRef(Z3_mk_seq_empty(s.ctx_ref(), s.ast), s.ctx)
+
+def Unit(a):
+ """Create a singleton sequence"""
+ return SeqRef(Z3_mk_seq_unit(a.ctx_ref(), a.as_ast()), a.ctx)
+
+def PrefixOf(a, b):
+ """Check if 'a' is a prefix of 'b'
+ >>> s1 = PrefixOf("ab", "abc")
+ >>> simplify(s1)
+ True
+ >>> s2 = PrefixOf("bc", "abc")
+ >>> simplify(s2)
+ False
+ """
+ ctx = _get_ctx2(a, b)
+ a = _coerce_seq(a, ctx)
+ b = _coerce_seq(b, ctx)
+ return BoolRef(Z3_mk_seq_prefix(a.ctx_ref(), a.as_ast(), b.as_ast()), a.ctx)
+
+def SuffixOf(a, b):
+ """Check if 'a' is a suffix of 'b'
+ >>> s1 = SuffixOf("ab", "abc")
+ >>> simplify(s1)
+ False
+ >>> s2 = SuffixOf("bc", "abc")
+ >>> simplify(s2)
+ True
+ """
+ ctx = _get_ctx2(a, b)
+ a = _coerce_seq(a, ctx)
+ b = _coerce_seq(b, ctx)
+ return BoolRef(Z3_mk_seq_suffix(a.ctx_ref(), a.as_ast(), b.as_ast()), a.ctx)
+
+def Contains(a, b):
+ """Check if 'a' contains 'b'
+ >>> s1 = Contains("abc", "ab")
+ >>> simplify(s1)
+ True
+ >>> s2 = Contains("abc", "bc")
+ >>> simplify(s2)
+ True
+ >>> x, y, z = Strings('x y z')
+ >>> s3 = Contains(Concat(x,y,z), y)
+ >>> simplify(s3)
+ True
+ """
+ ctx = _get_ctx2(a, b)
+ a = _coerce_seq(a, ctx)
+ b = _coerce_seq(b, ctx)
+ return BoolRef(Z3_mk_seq_contains(a.ctx_ref(), a.as_ast(), b.as_ast()), a.ctx)
+
+
+def Replace(s, src, dst):
+ """Replace the first occurrence of 'src' by 'dst' in 's'
+ >>> r = Replace("aaa", "a", "b")
+ >>> simplify(r)
+ "baa"
+ """
+ ctx = _get_ctx2(dst, s)
+ if ctx is None and is_expr(src):
+ ctx = src.ctx
+ src = _coerce_seq(src, ctx)
+ dst = _coerce_seq(dst, ctx)
+ s = _coerce_seq(s, ctx)
+ return SeqRef(Z3_mk_seq_replace(src.ctx_ref(), s.as_ast(), src.as_ast(), dst.as_ast()), s.ctx)
+
+def IndexOf(s, substr):
+ return IndexOf(s, substr, IntVal(0))
+
+def IndexOf(s, substr, offset):
+ """Retrieve the index of substring within a string starting at a specified offset.
+ >>> simplify(IndexOf("abcabc", "bc", 0))
+ 1
+ >>> simplify(IndexOf("abcabc", "bc", 2))
+ 4
+ """
+ ctx = None
+ if is_expr(offset):
+ ctx = offset.ctx
+ ctx = _get_ctx2(s, substr, ctx)
+ s = _coerce_seq(s, ctx)
+ substr = _coerce_seq(substr, ctx)
+ if _is_int(offset):
+ offset = IntVal(offset, ctx)
+ return SeqRef(Z3_mk_seq_index(s.ctx_ref(), s.as_ast(), substr.as_ast(), offset.as_ast()), s.ctx)
+
+def Length(s):
+ """Obtain the length of a sequence 's'
+ >>> l = Length(StringVal("abc"))
+ >>> simplify(l)
+ 3
+ """
+ s = _coerce_seq(s)
+ return ArithRef(Z3_mk_seq_length(s.ctx_ref(), s.as_ast()), s.ctx)
+
+def Re(s, ctx=None):
+ """The regular expression that accepts sequence 's'
+ >>> s1 = Re("ab")
+ >>> s2 = Re(StringVal("ab"))
+ >>> s3 = Re(Unit(BoolVal(True)))
+ """
+ s = _coerce_seq(s, ctx)
+ return ReRef(Z3_mk_seq_to_re(s.ctx_ref(), s.as_ast()), s.ctx)
+
+
+
+
+## Regular expressions
+
+class ReSortRef(SortRef):
+ """Regular expression sort."""
+
+
+def ReSort(s):
+ if is_ast(s):
+ return ReSortRef(Z3_mk_re_sort(s.ctx.ref(), s.as_ast()), ctx)
+ if s is None or isinstance(s, Context):
+ ctx = _get_ctx(s)
+ return ReSortRef(Z3_mk_re_sort(ctx.ref(), Z3_mk_string_sort(ctx.ref())), ctx)
+ raise Z3Exception("Regular expression sort constructor expects either a string or a context or no argument")
+
+
+class ReRef(ExprRef):
+ """Regular expressions."""
+
+ def __add__(self, other):
+ return Union(self, other)
+
+
+def is_re(s):
+ return isinstance(s, ReRef)
+
+
+def InRe(s, re):
+ """Create regular expression membership test
+ >>> re = Union(Re("a"),Re("b"))
+ >>> print (simplify(InRe("a", re)))
+ True
+ >>> print (simplify(InRe("b", re)))
+ True
+ >>> print (simplify(InRe("c", re)))
+ False
+ """
+ s = _coerce_seq(s, re.ctx)
+ return BoolRef(Z3_mk_seq_in_re(s.ctx_ref(), s.as_ast(), re.as_ast()), s.ctx)
+
+def Union(*args):
+ """Create union of regular expressions.
+ >>> re = Union(Re("a"), Re("b"), Re("c"))
+ >>> print (simplify(InRe("d", re)))
+ False
+ """
+ args = _get_args(args)
+ sz = len(args)
+ if __debug__:
+ _z3_assert(sz > 0, "At least one argument expected.")
+ _z3_assert(all([is_re(a) for a in args]), "All arguments must be regular expressions.")
+ if sz == 1:
+ return args[0]
+ ctx = args[0].ctx
+ v = (Ast * sz)()
+ for i in range(sz):
+ v[i] = args[i].as_ast()
+ return ReRef(Z3_mk_re_union(ctx.ref(), sz, v), ctx)
+
+def Plus(re):
+ """Create the regular expression accepting one or more repetitions of argument.
+ >>> re = Plus(Re("a"))
+ >>> print(simplify(InRe("aa", re)))
+ True
+ >>> print(simplify(InRe("ab", re)))
+ False
+ >>> print(simplify(InRe("", re)))
+ False
+ """
+ return ReRef(Z3_mk_re_plus(re.ctx_ref(), re.as_ast()), re.ctx)
+
+def Option(re):
+ """Create the regular expression that optionally accepts the argument.
+ >>> re = Option(Re("a"))
+ >>> print(simplify(InRe("a", re)))
+ True
+ >>> print(simplify(InRe("", re)))
+ True
+ >>> print(simplify(InRe("aa", re)))
+ False
+ """
+ return ReRef(Z3_mk_re_option(re.ctx_ref(), re.as_ast()), re.ctx)
+
+def Star(re):
+ """Create the regular expression accepting zero or more repetitions of argument.
+ >>> re = Star(Re("a"))
+ >>> print(simplify(InRe("aa", re)))
+ True
+ >>> print(simplify(InRe("ab", re)))
+ False
+ >>> print(simplify(InRe("", re)))
+ True
+ """
+ return ReRef(Z3_mk_re_star(re.ctx_ref(), re.as_ast()), re.ctx)
diff --git a/rba.tool.core/lib/z3/python/z3/z3consts.py b/rba.tool.core/lib/z3/python/z3/z3consts.py
new file mode 100644
index 0000000..2d4f4ab
--- /dev/null
+++ b/rba.tool.core/lib/z3/python/z3/z3consts.py
@@ -0,0 +1,314 @@
+# Automatically generated file
+
+# enum Z3_lbool
+Z3_L_FALSE = -1
+Z3_L_UNDEF = 0
+Z3_L_TRUE = 1
+
+# enum Z3_symbol_kind
+Z3_INT_SYMBOL = 0
+Z3_STRING_SYMBOL = 1
+
+# enum Z3_parameter_kind
+Z3_PARAMETER_INT = 0
+Z3_PARAMETER_DOUBLE = 1
+Z3_PARAMETER_RATIONAL = 2
+Z3_PARAMETER_SYMBOL = 3
+Z3_PARAMETER_SORT = 4
+Z3_PARAMETER_AST = 5
+Z3_PARAMETER_FUNC_DECL = 6
+
+# enum Z3_sort_kind
+Z3_UNINTERPRETED_SORT = 0
+Z3_BOOL_SORT = 1
+Z3_INT_SORT = 2
+Z3_REAL_SORT = 3
+Z3_BV_SORT = 4
+Z3_ARRAY_SORT = 5
+Z3_DATATYPE_SORT = 6
+Z3_RELATION_SORT = 7
+Z3_FINITE_DOMAIN_SORT = 8
+Z3_FLOATING_POINT_SORT = 9
+Z3_ROUNDING_MODE_SORT = 10
+Z3_SEQ_SORT = 11
+Z3_RE_SORT = 12
+Z3_UNKNOWN_SORT = 1000
+
+# enum Z3_ast_kind
+Z3_NUMERAL_AST = 0
+Z3_APP_AST = 1
+Z3_VAR_AST = 2
+Z3_QUANTIFIER_AST = 3
+Z3_SORT_AST = 4
+Z3_FUNC_DECL_AST = 5
+Z3_UNKNOWN_AST = 1000
+
+# enum Z3_decl_kind
+Z3_OP_TRUE = 256
+Z3_OP_FALSE = 257
+Z3_OP_EQ = 258
+Z3_OP_DISTINCT = 259
+Z3_OP_ITE = 260
+Z3_OP_AND = 261
+Z3_OP_OR = 262
+Z3_OP_IFF = 263
+Z3_OP_XOR = 264
+Z3_OP_NOT = 265
+Z3_OP_IMPLIES = 266
+Z3_OP_OEQ = 267
+Z3_OP_INTERP = 268
+Z3_OP_ANUM = 512
+Z3_OP_AGNUM = 513
+Z3_OP_LE = 514
+Z3_OP_GE = 515
+Z3_OP_LT = 516
+Z3_OP_GT = 517
+Z3_OP_ADD = 518
+Z3_OP_SUB = 519
+Z3_OP_UMINUS = 520
+Z3_OP_MUL = 521
+Z3_OP_DIV = 522
+Z3_OP_IDIV = 523
+Z3_OP_REM = 524
+Z3_OP_MOD = 525
+Z3_OP_TO_REAL = 526
+Z3_OP_TO_INT = 527
+Z3_OP_IS_INT = 528
+Z3_OP_POWER = 529
+Z3_OP_STORE = 768
+Z3_OP_SELECT = 769
+Z3_OP_CONST_ARRAY = 770
+Z3_OP_ARRAY_MAP = 771
+Z3_OP_ARRAY_DEFAULT = 772
+Z3_OP_SET_UNION = 773
+Z3_OP_SET_INTERSECT = 774
+Z3_OP_SET_DIFFERENCE = 775
+Z3_OP_SET_COMPLEMENT = 776
+Z3_OP_SET_SUBSET = 777
+Z3_OP_AS_ARRAY = 778
+Z3_OP_ARRAY_EXT = 779
+Z3_OP_BNUM = 1024
+Z3_OP_BIT1 = 1025
+Z3_OP_BIT0 = 1026
+Z3_OP_BNEG = 1027
+Z3_OP_BADD = 1028
+Z3_OP_BSUB = 1029
+Z3_OP_BMUL = 1030
+Z3_OP_BSDIV = 1031
+Z3_OP_BUDIV = 1032
+Z3_OP_BSREM = 1033
+Z3_OP_BUREM = 1034
+Z3_OP_BSMOD = 1035
+Z3_OP_BSDIV0 = 1036
+Z3_OP_BUDIV0 = 1037
+Z3_OP_BSREM0 = 1038
+Z3_OP_BUREM0 = 1039
+Z3_OP_BSMOD0 = 1040
+Z3_OP_ULEQ = 1041
+Z3_OP_SLEQ = 1042
+Z3_OP_UGEQ = 1043
+Z3_OP_SGEQ = 1044
+Z3_OP_ULT = 1045
+Z3_OP_SLT = 1046
+Z3_OP_UGT = 1047
+Z3_OP_SGT = 1048
+Z3_OP_BAND = 1049
+Z3_OP_BOR = 1050
+Z3_OP_BNOT = 1051
+Z3_OP_BXOR = 1052
+Z3_OP_BNAND = 1053
+Z3_OP_BNOR = 1054
+Z3_OP_BXNOR = 1055
+Z3_OP_CONCAT = 1056
+Z3_OP_SIGN_EXT = 1057
+Z3_OP_ZERO_EXT = 1058
+Z3_OP_EXTRACT = 1059
+Z3_OP_REPEAT = 1060
+Z3_OP_BREDOR = 1061
+Z3_OP_BREDAND = 1062
+Z3_OP_BCOMP = 1063
+Z3_OP_BSHL = 1064
+Z3_OP_BLSHR = 1065
+Z3_OP_BASHR = 1066
+Z3_OP_ROTATE_LEFT = 1067
+Z3_OP_ROTATE_RIGHT = 1068
+Z3_OP_EXT_ROTATE_LEFT = 1069
+Z3_OP_EXT_ROTATE_RIGHT = 1070
+Z3_OP_INT2BV = 1071
+Z3_OP_BV2INT = 1072
+Z3_OP_CARRY = 1073
+Z3_OP_XOR3 = 1074
+Z3_OP_BSMUL_NO_OVFL = 1075
+Z3_OP_BUMUL_NO_OVFL = 1076
+Z3_OP_BSMUL_NO_UDFL = 1077
+Z3_OP_BSDIV_I = 1078
+Z3_OP_BUDIV_I = 1079
+Z3_OP_BSREM_I = 1080
+Z3_OP_BUREM_I = 1081
+Z3_OP_BSMOD_I = 1082
+Z3_OP_PR_UNDEF = 1280
+Z3_OP_PR_TRUE = 1281
+Z3_OP_PR_ASSERTED = 1282
+Z3_OP_PR_GOAL = 1283
+Z3_OP_PR_MODUS_PONENS = 1284
+Z3_OP_PR_REFLEXIVITY = 1285
+Z3_OP_PR_SYMMETRY = 1286
+Z3_OP_PR_TRANSITIVITY = 1287
+Z3_OP_PR_TRANSITIVITY_STAR = 1288
+Z3_OP_PR_MONOTONICITY = 1289
+Z3_OP_PR_QUANT_INTRO = 1290
+Z3_OP_PR_DISTRIBUTIVITY = 1291
+Z3_OP_PR_AND_ELIM = 1292
+Z3_OP_PR_NOT_OR_ELIM = 1293
+Z3_OP_PR_REWRITE = 1294
+Z3_OP_PR_REWRITE_STAR = 1295
+Z3_OP_PR_PULL_QUANT = 1296
+Z3_OP_PR_PULL_QUANT_STAR = 1297
+Z3_OP_PR_PUSH_QUANT = 1298
+Z3_OP_PR_ELIM_UNUSED_VARS = 1299
+Z3_OP_PR_DER = 1300
+Z3_OP_PR_QUANT_INST = 1301
+Z3_OP_PR_HYPOTHESIS = 1302
+Z3_OP_PR_LEMMA = 1303
+Z3_OP_PR_UNIT_RESOLUTION = 1304
+Z3_OP_PR_IFF_TRUE = 1305
+Z3_OP_PR_IFF_FALSE = 1306
+Z3_OP_PR_COMMUTATIVITY = 1307
+Z3_OP_PR_DEF_AXIOM = 1308
+Z3_OP_PR_DEF_INTRO = 1309
+Z3_OP_PR_APPLY_DEF = 1310
+Z3_OP_PR_IFF_OEQ = 1311
+Z3_OP_PR_NNF_POS = 1312
+Z3_OP_PR_NNF_NEG = 1313
+Z3_OP_PR_NNF_STAR = 1314
+Z3_OP_PR_CNF_STAR = 1315
+Z3_OP_PR_SKOLEMIZE = 1316
+Z3_OP_PR_MODUS_PONENS_OEQ = 1317
+Z3_OP_PR_TH_LEMMA = 1318
+Z3_OP_PR_HYPER_RESOLVE = 1319
+Z3_OP_RA_STORE = 1536
+Z3_OP_RA_EMPTY = 1537
+Z3_OP_RA_IS_EMPTY = 1538
+Z3_OP_RA_JOIN = 1539
+Z3_OP_RA_UNION = 1540
+Z3_OP_RA_WIDEN = 1541
+Z3_OP_RA_PROJECT = 1542
+Z3_OP_RA_FILTER = 1543
+Z3_OP_RA_NEGATION_FILTER = 1544
+Z3_OP_RA_RENAME = 1545
+Z3_OP_RA_COMPLEMENT = 1546
+Z3_OP_RA_SELECT = 1547
+Z3_OP_RA_CLONE = 1548
+Z3_OP_FD_CONSTANT = 1549
+Z3_OP_FD_LT = 1550
+Z3_OP_SEQ_UNIT = 1551
+Z3_OP_SEQ_EMPTY = 1552
+Z3_OP_SEQ_CONCAT = 1553
+Z3_OP_SEQ_PREFIX = 1554
+Z3_OP_SEQ_SUFFIX = 1555
+Z3_OP_SEQ_CONTAINS = 1556
+Z3_OP_SEQ_EXTRACT = 1557
+Z3_OP_SEQ_REPLACE = 1558
+Z3_OP_SEQ_AT = 1559
+Z3_OP_SEQ_LENGTH = 1560
+Z3_OP_SEQ_INDEX = 1561
+Z3_OP_SEQ_TO_RE = 1562
+Z3_OP_SEQ_IN_RE = 1563
+Z3_OP_RE_PLUS = 1564
+Z3_OP_RE_STAR = 1565
+Z3_OP_RE_OPTION = 1566
+Z3_OP_RE_CONCAT = 1567
+Z3_OP_RE_UNION = 1568
+Z3_OP_LABEL = 1792
+Z3_OP_LABEL_LIT = 1793
+Z3_OP_DT_CONSTRUCTOR = 2048
+Z3_OP_DT_RECOGNISER = 2049
+Z3_OP_DT_ACCESSOR = 2050
+Z3_OP_DT_UPDATE_FIELD = 2051
+Z3_OP_PB_AT_MOST = 2304
+Z3_OP_PB_LE = 2305
+Z3_OP_PB_GE = 2306
+Z3_OP_PB_EQ = 2307
+Z3_OP_FPA_RM_NEAREST_TIES_TO_EVEN = 2308
+Z3_OP_FPA_RM_NEAREST_TIES_TO_AWAY = 2309
+Z3_OP_FPA_RM_TOWARD_POSITIVE = 2310
+Z3_OP_FPA_RM_TOWARD_NEGATIVE = 2311
+Z3_OP_FPA_RM_TOWARD_ZERO = 2312
+Z3_OP_FPA_NUM = 2313
+Z3_OP_FPA_PLUS_INF = 2314
+Z3_OP_FPA_MINUS_INF = 2315
+Z3_OP_FPA_NAN = 2316
+Z3_OP_FPA_PLUS_ZERO = 2317
+Z3_OP_FPA_MINUS_ZERO = 2318
+Z3_OP_FPA_ADD = 2319
+Z3_OP_FPA_SUB = 2320
+Z3_OP_FPA_NEG = 2321
+Z3_OP_FPA_MUL = 2322
+Z3_OP_FPA_DIV = 2323
+Z3_OP_FPA_REM = 2324
+Z3_OP_FPA_ABS = 2325
+Z3_OP_FPA_MIN = 2326
+Z3_OP_FPA_MAX = 2327
+Z3_OP_FPA_FMA = 2328
+Z3_OP_FPA_SQRT = 2329
+Z3_OP_FPA_ROUND_TO_INTEGRAL = 2330
+Z3_OP_FPA_EQ = 2331
+Z3_OP_FPA_LT = 2332
+Z3_OP_FPA_GT = 2333
+Z3_OP_FPA_LE = 2334
+Z3_OP_FPA_GE = 2335
+Z3_OP_FPA_IS_NAN = 2336
+Z3_OP_FPA_IS_INF = 2337
+Z3_OP_FPA_IS_ZERO = 2338
+Z3_OP_FPA_IS_NORMAL = 2339
+Z3_OP_FPA_IS_SUBNORMAL = 2340
+Z3_OP_FPA_IS_NEGATIVE = 2341
+Z3_OP_FPA_IS_POSITIVE = 2342
+Z3_OP_FPA_FP = 2343
+Z3_OP_FPA_TO_FP = 2344
+Z3_OP_FPA_TO_FP_UNSIGNED = 2345
+Z3_OP_FPA_TO_UBV = 2346
+Z3_OP_FPA_TO_SBV = 2347
+Z3_OP_FPA_TO_REAL = 2348
+Z3_OP_FPA_TO_IEEE_BV = 2349
+Z3_OP_FPA_MIN_I = 2350
+Z3_OP_FPA_MAX_I = 2351
+Z3_OP_INTERNAL = 2352
+Z3_OP_UNINTERPRETED = 2353
+
+# enum Z3_param_kind
+Z3_PK_UINT = 0
+Z3_PK_BOOL = 1
+Z3_PK_DOUBLE = 2
+Z3_PK_SYMBOL = 3
+Z3_PK_STRING = 4
+Z3_PK_OTHER = 5
+Z3_PK_INVALID = 6
+
+# enum Z3_ast_print_mode
+Z3_PRINT_SMTLIB_FULL = 0
+Z3_PRINT_LOW_LEVEL = 1
+Z3_PRINT_SMTLIB_COMPLIANT = 2
+Z3_PRINT_SMTLIB2_COMPLIANT = 3
+
+# enum Z3_error_code
+Z3_OK = 0
+Z3_SORT_ERROR = 1
+Z3_IOB = 2
+Z3_INVALID_ARG = 3
+Z3_PARSER_ERROR = 4
+Z3_NO_PARSER = 5
+Z3_INVALID_PATTERN = 6
+Z3_MEMOUT_FAIL = 7
+Z3_FILE_ACCESS_ERROR = 8
+Z3_INTERNAL_FATAL = 9
+Z3_INVALID_USAGE = 10
+Z3_DEC_REF_ERROR = 11
+Z3_EXCEPTION = 12
+
+# enum Z3_goal_prec
+Z3_GOAL_PRECISE = 0
+Z3_GOAL_UNDER = 1
+Z3_GOAL_OVER = 2
+Z3_GOAL_UNDER_OVER = 3
+
diff --git a/rba.tool.core/lib/z3/python/z3/z3core.py b/rba.tool.core/lib/z3/python/z3/z3core.py
new file mode 100644
index 0000000..aa3b8ea
--- /dev/null
+++ b/rba.tool.core/lib/z3/python/z3/z3core.py
@@ -0,0 +1,5459 @@
+# Automatically generated file
+import sys, os
+import ctypes
+import pkg_resources
+from .z3types import *
+from .z3consts import *
+
+_ext = 'dll' if sys.platform in ('win32', 'cygwin') else 'dylib' if sys.platform == 'darwin' else 'so'
+
+_lib = None
+def lib():
+ global _lib
+ if _lib is None:
+ _dirs = ['.', pkg_resources.resource_filename('z3', 'lib'), os.path.join(sys.prefix, 'lib'), None]
+ for _dir in _dirs:
+ try:
+ init(_dir)
+ break
+ except:
+ pass
+ if _lib is None:
+ raise Z3Exception("init(Z3_LIBRARY_PATH) must be invoked before using Z3-python")
+ return _lib
+
+def _to_ascii(s):
+ if isinstance(s, str):
+ return s.encode('ascii')
+ else:
+ return s
+
+if sys.version < '3':
+ def _to_pystr(s):
+ return s
+else:
+ def _to_pystr(s):
+ if s != None:
+ enc = sys.stdout.encoding
+ if enc != None: return s.decode(enc)
+ else: return s.decode('ascii')
+ else:
+ return ""
+
+def init(PATH):
+ if PATH:
+ PATH = os.path.realpath(PATH)
+ if os.path.isdir(PATH):
+ PATH = os.path.join(PATH, 'libz3.%s' % _ext)
+ else:
+ PATH = 'libz3.%s' % _ext
+
+ global _lib
+ _lib = ctypes.CDLL(PATH)
+ _lib.Z3_global_param_set.argtypes = [ctypes.c_char_p, ctypes.c_char_p]
+ _lib.Z3_global_param_reset_all.argtypes = []
+ _lib.Z3_global_param_get.restype = ctypes.c_bool
+ _lib.Z3_global_param_get.argtypes = [ctypes.c_char_p, ctypes.POINTER(ctypes.c_char_p)]
+ _lib.Z3_mk_config.restype = Config
+ _lib.Z3_mk_config.argtypes = []
+ _lib.Z3_del_config.argtypes = [Config]
+ _lib.Z3_set_param_value.argtypes = [Config, ctypes.c_char_p, ctypes.c_char_p]
+ _lib.Z3_mk_context.restype = ContextObj
+ _lib.Z3_mk_context.argtypes = [Config]
+ _lib.Z3_mk_context_rc.restype = ContextObj
+ _lib.Z3_mk_context_rc.argtypes = [Config]
+ _lib.Z3_del_context.argtypes = [ContextObj]
+ _lib.Z3_inc_ref.argtypes = [ContextObj, Ast]
+ _lib.Z3_dec_ref.argtypes = [ContextObj, Ast]
+ _lib.Z3_update_param_value.argtypes = [ContextObj, ctypes.c_char_p, ctypes.c_char_p]
+ _lib.Z3_interrupt.argtypes = [ContextObj]
+ _lib.Z3_mk_params.restype = Params
+ _lib.Z3_mk_params.argtypes = [ContextObj]
+ _lib.Z3_params_inc_ref.argtypes = [ContextObj, Params]
+ _lib.Z3_params_dec_ref.argtypes = [ContextObj, Params]
+ _lib.Z3_params_set_bool.argtypes = [ContextObj, Params, Symbol, ctypes.c_bool]
+ _lib.Z3_params_set_uint.argtypes = [ContextObj, Params, Symbol, ctypes.c_uint]
+ _lib.Z3_params_set_double.argtypes = [ContextObj, Params, Symbol, ctypes.c_double]
+ _lib.Z3_params_set_symbol.argtypes = [ContextObj, Params, Symbol, Symbol]
+ _lib.Z3_params_to_string.restype = ctypes.c_char_p
+ _lib.Z3_params_to_string.argtypes = [ContextObj, Params]
+ _lib.Z3_params_validate.argtypes = [ContextObj, Params, ParamDescrs]
+ _lib.Z3_param_descrs_inc_ref.argtypes = [ContextObj, ParamDescrs]
+ _lib.Z3_param_descrs_dec_ref.argtypes = [ContextObj, ParamDescrs]
+ _lib.Z3_param_descrs_get_kind.restype = ctypes.c_uint
+ _lib.Z3_param_descrs_get_kind.argtypes = [ContextObj, ParamDescrs, Symbol]
+ _lib.Z3_param_descrs_size.restype = ctypes.c_uint
+ _lib.Z3_param_descrs_size.argtypes = [ContextObj, ParamDescrs]
+ _lib.Z3_param_descrs_get_name.restype = Symbol
+ _lib.Z3_param_descrs_get_name.argtypes = [ContextObj, ParamDescrs, ctypes.c_uint]
+ _lib.Z3_param_descrs_get_documentation.restype = ctypes.c_char_p
+ _lib.Z3_param_descrs_get_documentation.argtypes = [ContextObj, ParamDescrs, Symbol]
+ _lib.Z3_param_descrs_to_string.restype = ctypes.c_char_p
+ _lib.Z3_param_descrs_to_string.argtypes = [ContextObj, ParamDescrs]
+ _lib.Z3_mk_int_symbol.restype = Symbol
+ _lib.Z3_mk_int_symbol.argtypes = [ContextObj, ctypes.c_int]
+ _lib.Z3_mk_string_symbol.restype = Symbol
+ _lib.Z3_mk_string_symbol.argtypes = [ContextObj, ctypes.c_char_p]
+ _lib.Z3_mk_uninterpreted_sort.restype = Sort
+ _lib.Z3_mk_uninterpreted_sort.argtypes = [ContextObj, Symbol]
+ _lib.Z3_mk_bool_sort.restype = Sort
+ _lib.Z3_mk_bool_sort.argtypes = [ContextObj]
+ _lib.Z3_mk_int_sort.restype = Sort
+ _lib.Z3_mk_int_sort.argtypes = [ContextObj]
+ _lib.Z3_mk_real_sort.restype = Sort
+ _lib.Z3_mk_real_sort.argtypes = [ContextObj]
+ _lib.Z3_mk_bv_sort.restype = Sort
+ _lib.Z3_mk_bv_sort.argtypes = [ContextObj, ctypes.c_uint]
+ _lib.Z3_mk_finite_domain_sort.restype = Sort
+ _lib.Z3_mk_finite_domain_sort.argtypes = [ContextObj, Symbol, ctypes.c_ulonglong]
+ _lib.Z3_mk_array_sort.restype = Sort
+ _lib.Z3_mk_array_sort.argtypes = [ContextObj, Sort, Sort]
+ _lib.Z3_mk_tuple_sort.restype = Sort
+ _lib.Z3_mk_tuple_sort.argtypes = [ContextObj, Symbol, ctypes.c_uint, ctypes.POINTER(Symbol), ctypes.POINTER(Sort), ctypes.POINTER(FuncDecl), ctypes.POINTER(FuncDecl)]
+ _lib.Z3_mk_enumeration_sort.restype = Sort
+ _lib.Z3_mk_enumeration_sort.argtypes = [ContextObj, Symbol, ctypes.c_uint, ctypes.POINTER(Symbol), ctypes.POINTER(FuncDecl), ctypes.POINTER(FuncDecl)]
+ _lib.Z3_mk_list_sort.restype = Sort
+ _lib.Z3_mk_list_sort.argtypes = [ContextObj, Symbol, Sort, ctypes.POINTER(FuncDecl), ctypes.POINTER(FuncDecl), ctypes.POINTER(FuncDecl), ctypes.POINTER(FuncDecl), ctypes.POINTER(FuncDecl), ctypes.POINTER(FuncDecl)]
+ _lib.Z3_mk_constructor.restype = Constructor
+ _lib.Z3_mk_constructor.argtypes = [ContextObj, Symbol, Symbol, ctypes.c_uint, ctypes.POINTER(Symbol), ctypes.POINTER(Sort), ctypes.POINTER(ctypes.c_uint)]
+ _lib.Z3_del_constructor.argtypes = [ContextObj, Constructor]
+ _lib.Z3_mk_datatype.restype = Sort
+ _lib.Z3_mk_datatype.argtypes = [ContextObj, Symbol, ctypes.c_uint, ctypes.POINTER(Constructor)]
+ _lib.Z3_mk_constructor_list.restype = ConstructorList
+ _lib.Z3_mk_constructor_list.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Constructor)]
+ _lib.Z3_del_constructor_list.argtypes = [ContextObj, ConstructorList]
+ _lib.Z3_mk_datatypes.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Symbol), ctypes.POINTER(Sort), ctypes.POINTER(ConstructorList)]
+ _lib.Z3_query_constructor.argtypes = [ContextObj, Constructor, ctypes.c_uint, ctypes.POINTER(FuncDecl), ctypes.POINTER(FuncDecl), ctypes.POINTER(FuncDecl)]
+ _lib.Z3_mk_func_decl.restype = FuncDecl
+ _lib.Z3_mk_func_decl.argtypes = [ContextObj, Symbol, ctypes.c_uint, ctypes.POINTER(Sort), Sort]
+ _lib.Z3_mk_app.restype = Ast
+ _lib.Z3_mk_app.argtypes = [ContextObj, FuncDecl, ctypes.c_uint, ctypes.POINTER(Ast)]
+ _lib.Z3_mk_const.restype = Ast
+ _lib.Z3_mk_const.argtypes = [ContextObj, Symbol, Sort]
+ _lib.Z3_mk_fresh_func_decl.restype = FuncDecl
+ _lib.Z3_mk_fresh_func_decl.argtypes = [ContextObj, ctypes.c_char_p, ctypes.c_uint, ctypes.POINTER(Sort), Sort]
+ _lib.Z3_mk_fresh_const.restype = Ast
+ _lib.Z3_mk_fresh_const.argtypes = [ContextObj, ctypes.c_char_p, Sort]
+ _lib.Z3_mk_true.restype = Ast
+ _lib.Z3_mk_true.argtypes = [ContextObj]
+ _lib.Z3_mk_false.restype = Ast
+ _lib.Z3_mk_false.argtypes = [ContextObj]
+ _lib.Z3_mk_eq.restype = Ast
+ _lib.Z3_mk_eq.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_distinct.restype = Ast
+ _lib.Z3_mk_distinct.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast)]
+ _lib.Z3_mk_not.restype = Ast
+ _lib.Z3_mk_not.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_ite.restype = Ast
+ _lib.Z3_mk_ite.argtypes = [ContextObj, Ast, Ast, Ast]
+ _lib.Z3_mk_iff.restype = Ast
+ _lib.Z3_mk_iff.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_implies.restype = Ast
+ _lib.Z3_mk_implies.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_xor.restype = Ast
+ _lib.Z3_mk_xor.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_and.restype = Ast
+ _lib.Z3_mk_and.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast)]
+ _lib.Z3_mk_or.restype = Ast
+ _lib.Z3_mk_or.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast)]
+ _lib.Z3_mk_add.restype = Ast
+ _lib.Z3_mk_add.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast)]
+ _lib.Z3_mk_mul.restype = Ast
+ _lib.Z3_mk_mul.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast)]
+ _lib.Z3_mk_sub.restype = Ast
+ _lib.Z3_mk_sub.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast)]
+ _lib.Z3_mk_unary_minus.restype = Ast
+ _lib.Z3_mk_unary_minus.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_div.restype = Ast
+ _lib.Z3_mk_div.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_mod.restype = Ast
+ _lib.Z3_mk_mod.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_rem.restype = Ast
+ _lib.Z3_mk_rem.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_power.restype = Ast
+ _lib.Z3_mk_power.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_lt.restype = Ast
+ _lib.Z3_mk_lt.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_le.restype = Ast
+ _lib.Z3_mk_le.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_gt.restype = Ast
+ _lib.Z3_mk_gt.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_ge.restype = Ast
+ _lib.Z3_mk_ge.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_int2real.restype = Ast
+ _lib.Z3_mk_int2real.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_real2int.restype = Ast
+ _lib.Z3_mk_real2int.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_is_int.restype = Ast
+ _lib.Z3_mk_is_int.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_bvnot.restype = Ast
+ _lib.Z3_mk_bvnot.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_bvredand.restype = Ast
+ _lib.Z3_mk_bvredand.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_bvredor.restype = Ast
+ _lib.Z3_mk_bvredor.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_bvand.restype = Ast
+ _lib.Z3_mk_bvand.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvor.restype = Ast
+ _lib.Z3_mk_bvor.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvxor.restype = Ast
+ _lib.Z3_mk_bvxor.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvnand.restype = Ast
+ _lib.Z3_mk_bvnand.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvnor.restype = Ast
+ _lib.Z3_mk_bvnor.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvxnor.restype = Ast
+ _lib.Z3_mk_bvxnor.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvneg.restype = Ast
+ _lib.Z3_mk_bvneg.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_bvadd.restype = Ast
+ _lib.Z3_mk_bvadd.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvsub.restype = Ast
+ _lib.Z3_mk_bvsub.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvmul.restype = Ast
+ _lib.Z3_mk_bvmul.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvudiv.restype = Ast
+ _lib.Z3_mk_bvudiv.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvsdiv.restype = Ast
+ _lib.Z3_mk_bvsdiv.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvurem.restype = Ast
+ _lib.Z3_mk_bvurem.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvsrem.restype = Ast
+ _lib.Z3_mk_bvsrem.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvsmod.restype = Ast
+ _lib.Z3_mk_bvsmod.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvult.restype = Ast
+ _lib.Z3_mk_bvult.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvslt.restype = Ast
+ _lib.Z3_mk_bvslt.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvule.restype = Ast
+ _lib.Z3_mk_bvule.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvsle.restype = Ast
+ _lib.Z3_mk_bvsle.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvuge.restype = Ast
+ _lib.Z3_mk_bvuge.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvsge.restype = Ast
+ _lib.Z3_mk_bvsge.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvugt.restype = Ast
+ _lib.Z3_mk_bvugt.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvsgt.restype = Ast
+ _lib.Z3_mk_bvsgt.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_concat.restype = Ast
+ _lib.Z3_mk_concat.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_extract.restype = Ast
+ _lib.Z3_mk_extract.argtypes = [ContextObj, ctypes.c_uint, ctypes.c_uint, Ast]
+ _lib.Z3_mk_sign_ext.restype = Ast
+ _lib.Z3_mk_sign_ext.argtypes = [ContextObj, ctypes.c_uint, Ast]
+ _lib.Z3_mk_zero_ext.restype = Ast
+ _lib.Z3_mk_zero_ext.argtypes = [ContextObj, ctypes.c_uint, Ast]
+ _lib.Z3_mk_repeat.restype = Ast
+ _lib.Z3_mk_repeat.argtypes = [ContextObj, ctypes.c_uint, Ast]
+ _lib.Z3_mk_bvshl.restype = Ast
+ _lib.Z3_mk_bvshl.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvlshr.restype = Ast
+ _lib.Z3_mk_bvlshr.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvashr.restype = Ast
+ _lib.Z3_mk_bvashr.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_rotate_left.restype = Ast
+ _lib.Z3_mk_rotate_left.argtypes = [ContextObj, ctypes.c_uint, Ast]
+ _lib.Z3_mk_rotate_right.restype = Ast
+ _lib.Z3_mk_rotate_right.argtypes = [ContextObj, ctypes.c_uint, Ast]
+ _lib.Z3_mk_ext_rotate_left.restype = Ast
+ _lib.Z3_mk_ext_rotate_left.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_ext_rotate_right.restype = Ast
+ _lib.Z3_mk_ext_rotate_right.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_int2bv.restype = Ast
+ _lib.Z3_mk_int2bv.argtypes = [ContextObj, ctypes.c_uint, Ast]
+ _lib.Z3_mk_bv2int.restype = Ast
+ _lib.Z3_mk_bv2int.argtypes = [ContextObj, Ast, ctypes.c_bool]
+ _lib.Z3_mk_bvadd_no_overflow.restype = Ast
+ _lib.Z3_mk_bvadd_no_overflow.argtypes = [ContextObj, Ast, Ast, ctypes.c_bool]
+ _lib.Z3_mk_bvadd_no_underflow.restype = Ast
+ _lib.Z3_mk_bvadd_no_underflow.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvsub_no_overflow.restype = Ast
+ _lib.Z3_mk_bvsub_no_overflow.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvsub_no_underflow.restype = Ast
+ _lib.Z3_mk_bvsub_no_underflow.argtypes = [ContextObj, Ast, Ast, ctypes.c_bool]
+ _lib.Z3_mk_bvsdiv_no_overflow.restype = Ast
+ _lib.Z3_mk_bvsdiv_no_overflow.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvneg_no_overflow.restype = Ast
+ _lib.Z3_mk_bvneg_no_overflow.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_bvmul_no_overflow.restype = Ast
+ _lib.Z3_mk_bvmul_no_overflow.argtypes = [ContextObj, Ast, Ast, ctypes.c_bool]
+ _lib.Z3_mk_bvmul_no_underflow.restype = Ast
+ _lib.Z3_mk_bvmul_no_underflow.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_select.restype = Ast
+ _lib.Z3_mk_select.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_store.restype = Ast
+ _lib.Z3_mk_store.argtypes = [ContextObj, Ast, Ast, Ast]
+ _lib.Z3_mk_const_array.restype = Ast
+ _lib.Z3_mk_const_array.argtypes = [ContextObj, Sort, Ast]
+ _lib.Z3_mk_map.restype = Ast
+ _lib.Z3_mk_map.argtypes = [ContextObj, FuncDecl, ctypes.c_uint, ctypes.POINTER(Ast)]
+ _lib.Z3_mk_array_default.restype = Ast
+ _lib.Z3_mk_array_default.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_set_sort.restype = Sort
+ _lib.Z3_mk_set_sort.argtypes = [ContextObj, Sort]
+ _lib.Z3_mk_empty_set.restype = Ast
+ _lib.Z3_mk_empty_set.argtypes = [ContextObj, Sort]
+ _lib.Z3_mk_full_set.restype = Ast
+ _lib.Z3_mk_full_set.argtypes = [ContextObj, Sort]
+ _lib.Z3_mk_set_add.restype = Ast
+ _lib.Z3_mk_set_add.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_set_del.restype = Ast
+ _lib.Z3_mk_set_del.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_set_union.restype = Ast
+ _lib.Z3_mk_set_union.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast)]
+ _lib.Z3_mk_set_intersect.restype = Ast
+ _lib.Z3_mk_set_intersect.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast)]
+ _lib.Z3_mk_set_difference.restype = Ast
+ _lib.Z3_mk_set_difference.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_set_complement.restype = Ast
+ _lib.Z3_mk_set_complement.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_set_member.restype = Ast
+ _lib.Z3_mk_set_member.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_set_subset.restype = Ast
+ _lib.Z3_mk_set_subset.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_array_ext.restype = Ast
+ _lib.Z3_mk_array_ext.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_numeral.restype = Ast
+ _lib.Z3_mk_numeral.argtypes = [ContextObj, ctypes.c_char_p, Sort]
+ _lib.Z3_mk_real.restype = Ast
+ _lib.Z3_mk_real.argtypes = [ContextObj, ctypes.c_int, ctypes.c_int]
+ _lib.Z3_mk_int.restype = Ast
+ _lib.Z3_mk_int.argtypes = [ContextObj, ctypes.c_int, Sort]
+ _lib.Z3_mk_unsigned_int.restype = Ast
+ _lib.Z3_mk_unsigned_int.argtypes = [ContextObj, ctypes.c_uint, Sort]
+ _lib.Z3_mk_int64.restype = Ast
+ _lib.Z3_mk_int64.argtypes = [ContextObj, ctypes.c_longlong, Sort]
+ _lib.Z3_mk_unsigned_int64.restype = Ast
+ _lib.Z3_mk_unsigned_int64.argtypes = [ContextObj, ctypes.c_ulonglong, Sort]
+ _lib.Z3_mk_seq_sort.restype = Sort
+ _lib.Z3_mk_seq_sort.argtypes = [ContextObj, Sort]
+ _lib.Z3_is_seq_sort.restype = ctypes.c_bool
+ _lib.Z3_is_seq_sort.argtypes = [ContextObj, Sort]
+ _lib.Z3_mk_re_sort.restype = Sort
+ _lib.Z3_mk_re_sort.argtypes = [ContextObj, Sort]
+ _lib.Z3_is_re_sort.restype = ctypes.c_bool
+ _lib.Z3_is_re_sort.argtypes = [ContextObj, Sort]
+ _lib.Z3_mk_string_sort.restype = Sort
+ _lib.Z3_mk_string_sort.argtypes = [ContextObj]
+ _lib.Z3_is_string_sort.restype = ctypes.c_bool
+ _lib.Z3_is_string_sort.argtypes = [ContextObj, Sort]
+ _lib.Z3_mk_string.restype = Ast
+ _lib.Z3_mk_string.argtypes = [ContextObj, ctypes.c_char_p]
+ _lib.Z3_is_string.restype = ctypes.c_bool
+ _lib.Z3_is_string.argtypes = [ContextObj, Ast]
+ _lib.Z3_get_string.restype = ctypes.c_char_p
+ _lib.Z3_get_string.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_seq_empty.restype = Ast
+ _lib.Z3_mk_seq_empty.argtypes = [ContextObj, Sort]
+ _lib.Z3_mk_seq_unit.restype = Ast
+ _lib.Z3_mk_seq_unit.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_seq_concat.restype = Ast
+ _lib.Z3_mk_seq_concat.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast)]
+ _lib.Z3_mk_seq_prefix.restype = Ast
+ _lib.Z3_mk_seq_prefix.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_seq_suffix.restype = Ast
+ _lib.Z3_mk_seq_suffix.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_seq_contains.restype = Ast
+ _lib.Z3_mk_seq_contains.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_seq_extract.restype = Ast
+ _lib.Z3_mk_seq_extract.argtypes = [ContextObj, Ast, Ast, Ast]
+ _lib.Z3_mk_seq_replace.restype = Ast
+ _lib.Z3_mk_seq_replace.argtypes = [ContextObj, Ast, Ast, Ast]
+ _lib.Z3_mk_seq_at.restype = Ast
+ _lib.Z3_mk_seq_at.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_seq_length.restype = Ast
+ _lib.Z3_mk_seq_length.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_seq_index.restype = Ast
+ _lib.Z3_mk_seq_index.argtypes = [ContextObj, Ast, Ast, Ast]
+ _lib.Z3_mk_seq_to_re.restype = Ast
+ _lib.Z3_mk_seq_to_re.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_seq_in_re.restype = Ast
+ _lib.Z3_mk_seq_in_re.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_re_plus.restype = Ast
+ _lib.Z3_mk_re_plus.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_re_star.restype = Ast
+ _lib.Z3_mk_re_star.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_re_option.restype = Ast
+ _lib.Z3_mk_re_option.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_re_union.restype = Ast
+ _lib.Z3_mk_re_union.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast)]
+ _lib.Z3_mk_re_concat.restype = Ast
+ _lib.Z3_mk_re_concat.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast)]
+ _lib.Z3_mk_pattern.restype = Pattern
+ _lib.Z3_mk_pattern.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast)]
+ _lib.Z3_mk_bound.restype = Ast
+ _lib.Z3_mk_bound.argtypes = [ContextObj, ctypes.c_uint, Sort]
+ _lib.Z3_mk_forall.restype = Ast
+ _lib.Z3_mk_forall.argtypes = [ContextObj, ctypes.c_uint, ctypes.c_uint, ctypes.POINTER(Pattern), ctypes.c_uint, ctypes.POINTER(Sort), ctypes.POINTER(Symbol), Ast]
+ _lib.Z3_mk_exists.restype = Ast
+ _lib.Z3_mk_exists.argtypes = [ContextObj, ctypes.c_uint, ctypes.c_uint, ctypes.POINTER(Pattern), ctypes.c_uint, ctypes.POINTER(Sort), ctypes.POINTER(Symbol), Ast]
+ _lib.Z3_mk_quantifier.restype = Ast
+ _lib.Z3_mk_quantifier.argtypes = [ContextObj, ctypes.c_bool, ctypes.c_uint, ctypes.c_uint, ctypes.POINTER(Pattern), ctypes.c_uint, ctypes.POINTER(Sort), ctypes.POINTER(Symbol), Ast]
+ _lib.Z3_mk_quantifier_ex.restype = Ast
+ _lib.Z3_mk_quantifier_ex.argtypes = [ContextObj, ctypes.c_bool, ctypes.c_uint, Symbol, Symbol, ctypes.c_uint, ctypes.POINTER(Pattern), ctypes.c_uint, ctypes.POINTER(Ast), ctypes.c_uint, ctypes.POINTER(Sort), ctypes.POINTER(Symbol), Ast]
+ _lib.Z3_mk_forall_const.restype = Ast
+ _lib.Z3_mk_forall_const.argtypes = [ContextObj, ctypes.c_uint, ctypes.c_uint, ctypes.POINTER(Ast), ctypes.c_uint, ctypes.POINTER(Pattern), Ast]
+ _lib.Z3_mk_exists_const.restype = Ast
+ _lib.Z3_mk_exists_const.argtypes = [ContextObj, ctypes.c_uint, ctypes.c_uint, ctypes.POINTER(Ast), ctypes.c_uint, ctypes.POINTER(Pattern), Ast]
+ _lib.Z3_mk_quantifier_const.restype = Ast
+ _lib.Z3_mk_quantifier_const.argtypes = [ContextObj, ctypes.c_bool, ctypes.c_uint, ctypes.c_uint, ctypes.POINTER(Ast), ctypes.c_uint, ctypes.POINTER(Pattern), Ast]
+ _lib.Z3_mk_quantifier_const_ex.restype = Ast
+ _lib.Z3_mk_quantifier_const_ex.argtypes = [ContextObj, ctypes.c_bool, ctypes.c_uint, Symbol, Symbol, ctypes.c_uint, ctypes.POINTER(Ast), ctypes.c_uint, ctypes.POINTER(Pattern), ctypes.c_uint, ctypes.POINTER(Ast), Ast]
+ _lib.Z3_get_symbol_kind.restype = ctypes.c_uint
+ _lib.Z3_get_symbol_kind.argtypes = [ContextObj, Symbol]
+ _lib.Z3_get_symbol_int.restype = ctypes.c_int
+ _lib.Z3_get_symbol_int.argtypes = [ContextObj, Symbol]
+ _lib.Z3_get_symbol_string.restype = ctypes.c_char_p
+ _lib.Z3_get_symbol_string.argtypes = [ContextObj, Symbol]
+ _lib.Z3_get_sort_name.restype = Symbol
+ _lib.Z3_get_sort_name.argtypes = [ContextObj, Sort]
+ _lib.Z3_get_sort_id.restype = ctypes.c_uint
+ _lib.Z3_get_sort_id.argtypes = [ContextObj, Sort]
+ _lib.Z3_sort_to_ast.restype = Ast
+ _lib.Z3_sort_to_ast.argtypes = [ContextObj, Sort]
+ _lib.Z3_is_eq_sort.restype = ctypes.c_bool
+ _lib.Z3_is_eq_sort.argtypes = [ContextObj, Sort, Sort]
+ _lib.Z3_get_sort_kind.restype = ctypes.c_uint
+ _lib.Z3_get_sort_kind.argtypes = [ContextObj, Sort]
+ _lib.Z3_get_bv_sort_size.restype = ctypes.c_uint
+ _lib.Z3_get_bv_sort_size.argtypes = [ContextObj, Sort]
+ _lib.Z3_get_finite_domain_sort_size.restype = ctypes.c_bool
+ _lib.Z3_get_finite_domain_sort_size.argtypes = [ContextObj, Sort, ctypes.POINTER(ctypes.c_ulonglong)]
+ _lib.Z3_get_array_sort_domain.restype = Sort
+ _lib.Z3_get_array_sort_domain.argtypes = [ContextObj, Sort]
+ _lib.Z3_get_array_sort_range.restype = Sort
+ _lib.Z3_get_array_sort_range.argtypes = [ContextObj, Sort]
+ _lib.Z3_get_tuple_sort_mk_decl.restype = FuncDecl
+ _lib.Z3_get_tuple_sort_mk_decl.argtypes = [ContextObj, Sort]
+ _lib.Z3_get_tuple_sort_num_fields.restype = ctypes.c_uint
+ _lib.Z3_get_tuple_sort_num_fields.argtypes = [ContextObj, Sort]
+ _lib.Z3_get_tuple_sort_field_decl.restype = FuncDecl
+ _lib.Z3_get_tuple_sort_field_decl.argtypes = [ContextObj, Sort, ctypes.c_uint]
+ _lib.Z3_get_datatype_sort_num_constructors.restype = ctypes.c_uint
+ _lib.Z3_get_datatype_sort_num_constructors.argtypes = [ContextObj, Sort]
+ _lib.Z3_get_datatype_sort_constructor.restype = FuncDecl
+ _lib.Z3_get_datatype_sort_constructor.argtypes = [ContextObj, Sort, ctypes.c_uint]
+ _lib.Z3_get_datatype_sort_recognizer.restype = FuncDecl
+ _lib.Z3_get_datatype_sort_recognizer.argtypes = [ContextObj, Sort, ctypes.c_uint]
+ _lib.Z3_get_datatype_sort_constructor_accessor.restype = FuncDecl
+ _lib.Z3_get_datatype_sort_constructor_accessor.argtypes = [ContextObj, Sort, ctypes.c_uint, ctypes.c_uint]
+ _lib.Z3_datatype_update_field.restype = Ast
+ _lib.Z3_datatype_update_field.argtypes = [ContextObj, FuncDecl, Ast, Ast]
+ _lib.Z3_get_relation_arity.restype = ctypes.c_uint
+ _lib.Z3_get_relation_arity.argtypes = [ContextObj, Sort]
+ _lib.Z3_get_relation_column.restype = Sort
+ _lib.Z3_get_relation_column.argtypes = [ContextObj, Sort, ctypes.c_uint]
+ _lib.Z3_mk_atmost.restype = Ast
+ _lib.Z3_mk_atmost.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast), ctypes.c_uint]
+ _lib.Z3_mk_pble.restype = Ast
+ _lib.Z3_mk_pble.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast), ctypes.POINTER(ctypes.c_int), ctypes.c_int]
+ _lib.Z3_mk_pbeq.restype = Ast
+ _lib.Z3_mk_pbeq.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast), ctypes.POINTER(ctypes.c_int), ctypes.c_int]
+ _lib.Z3_func_decl_to_ast.restype = Ast
+ _lib.Z3_func_decl_to_ast.argtypes = [ContextObj, FuncDecl]
+ _lib.Z3_is_eq_func_decl.restype = ctypes.c_bool
+ _lib.Z3_is_eq_func_decl.argtypes = [ContextObj, FuncDecl, FuncDecl]
+ _lib.Z3_get_func_decl_id.restype = ctypes.c_uint
+ _lib.Z3_get_func_decl_id.argtypes = [ContextObj, FuncDecl]
+ _lib.Z3_get_decl_name.restype = Symbol
+ _lib.Z3_get_decl_name.argtypes = [ContextObj, FuncDecl]
+ _lib.Z3_get_decl_kind.restype = ctypes.c_uint
+ _lib.Z3_get_decl_kind.argtypes = [ContextObj, FuncDecl]
+ _lib.Z3_get_domain_size.restype = ctypes.c_uint
+ _lib.Z3_get_domain_size.argtypes = [ContextObj, FuncDecl]
+ _lib.Z3_get_arity.restype = ctypes.c_uint
+ _lib.Z3_get_arity.argtypes = [ContextObj, FuncDecl]
+ _lib.Z3_get_domain.restype = Sort
+ _lib.Z3_get_domain.argtypes = [ContextObj, FuncDecl, ctypes.c_uint]
+ _lib.Z3_get_range.restype = Sort
+ _lib.Z3_get_range.argtypes = [ContextObj, FuncDecl]
+ _lib.Z3_get_decl_num_parameters.restype = ctypes.c_uint
+ _lib.Z3_get_decl_num_parameters.argtypes = [ContextObj, FuncDecl]
+ _lib.Z3_get_decl_parameter_kind.restype = ctypes.c_uint
+ _lib.Z3_get_decl_parameter_kind.argtypes = [ContextObj, FuncDecl, ctypes.c_uint]
+ _lib.Z3_get_decl_int_parameter.restype = ctypes.c_int
+ _lib.Z3_get_decl_int_parameter.argtypes = [ContextObj, FuncDecl, ctypes.c_uint]
+ _lib.Z3_get_decl_double_parameter.restype = ctypes.c_double
+ _lib.Z3_get_decl_double_parameter.argtypes = [ContextObj, FuncDecl, ctypes.c_uint]
+ _lib.Z3_get_decl_symbol_parameter.restype = Symbol
+ _lib.Z3_get_decl_symbol_parameter.argtypes = [ContextObj, FuncDecl, ctypes.c_uint]
+ _lib.Z3_get_decl_sort_parameter.restype = Sort
+ _lib.Z3_get_decl_sort_parameter.argtypes = [ContextObj, FuncDecl, ctypes.c_uint]
+ _lib.Z3_get_decl_ast_parameter.restype = Ast
+ _lib.Z3_get_decl_ast_parameter.argtypes = [ContextObj, FuncDecl, ctypes.c_uint]
+ _lib.Z3_get_decl_func_decl_parameter.restype = FuncDecl
+ _lib.Z3_get_decl_func_decl_parameter.argtypes = [ContextObj, FuncDecl, ctypes.c_uint]
+ _lib.Z3_get_decl_rational_parameter.restype = ctypes.c_char_p
+ _lib.Z3_get_decl_rational_parameter.argtypes = [ContextObj, FuncDecl, ctypes.c_uint]
+ _lib.Z3_app_to_ast.restype = Ast
+ _lib.Z3_app_to_ast.argtypes = [ContextObj, Ast]
+ _lib.Z3_get_app_decl.restype = FuncDecl
+ _lib.Z3_get_app_decl.argtypes = [ContextObj, Ast]
+ _lib.Z3_get_app_num_args.restype = ctypes.c_uint
+ _lib.Z3_get_app_num_args.argtypes = [ContextObj, Ast]
+ _lib.Z3_get_app_arg.restype = Ast
+ _lib.Z3_get_app_arg.argtypes = [ContextObj, Ast, ctypes.c_uint]
+ _lib.Z3_is_eq_ast.restype = ctypes.c_bool
+ _lib.Z3_is_eq_ast.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_get_ast_id.restype = ctypes.c_uint
+ _lib.Z3_get_ast_id.argtypes = [ContextObj, Ast]
+ _lib.Z3_get_ast_hash.restype = ctypes.c_uint
+ _lib.Z3_get_ast_hash.argtypes = [ContextObj, Ast]
+ _lib.Z3_get_sort.restype = Sort
+ _lib.Z3_get_sort.argtypes = [ContextObj, Ast]
+ _lib.Z3_is_well_sorted.restype = ctypes.c_bool
+ _lib.Z3_is_well_sorted.argtypes = [ContextObj, Ast]
+ _lib.Z3_get_bool_value.restype = ctypes.c_int
+ _lib.Z3_get_bool_value.argtypes = [ContextObj, Ast]
+ _lib.Z3_get_ast_kind.restype = ctypes.c_uint
+ _lib.Z3_get_ast_kind.argtypes = [ContextObj, Ast]
+ _lib.Z3_is_app.restype = ctypes.c_bool
+ _lib.Z3_is_app.argtypes = [ContextObj, Ast]
+ _lib.Z3_is_numeral_ast.restype = ctypes.c_bool
+ _lib.Z3_is_numeral_ast.argtypes = [ContextObj, Ast]
+ _lib.Z3_is_algebraic_number.restype = ctypes.c_bool
+ _lib.Z3_is_algebraic_number.argtypes = [ContextObj, Ast]
+ _lib.Z3_to_app.restype = Ast
+ _lib.Z3_to_app.argtypes = [ContextObj, Ast]
+ _lib.Z3_to_func_decl.restype = FuncDecl
+ _lib.Z3_to_func_decl.argtypes = [ContextObj, Ast]
+ _lib.Z3_get_numeral_string.restype = ctypes.c_char_p
+ _lib.Z3_get_numeral_string.argtypes = [ContextObj, Ast]
+ _lib.Z3_get_numeral_decimal_string.restype = ctypes.c_char_p
+ _lib.Z3_get_numeral_decimal_string.argtypes = [ContextObj, Ast, ctypes.c_uint]
+ _lib.Z3_get_numerator.restype = Ast
+ _lib.Z3_get_numerator.argtypes = [ContextObj, Ast]
+ _lib.Z3_get_denominator.restype = Ast
+ _lib.Z3_get_denominator.argtypes = [ContextObj, Ast]
+ _lib.Z3_get_numeral_small.restype = ctypes.c_bool
+ _lib.Z3_get_numeral_small.argtypes = [ContextObj, Ast, ctypes.POINTER(ctypes.c_longlong), ctypes.POINTER(ctypes.c_longlong)]
+ _lib.Z3_get_numeral_int.restype = ctypes.c_bool
+ _lib.Z3_get_numeral_int.argtypes = [ContextObj, Ast, ctypes.POINTER(ctypes.c_int)]
+ _lib.Z3_get_numeral_uint.restype = ctypes.c_bool
+ _lib.Z3_get_numeral_uint.argtypes = [ContextObj, Ast, ctypes.POINTER(ctypes.c_uint)]
+ _lib.Z3_get_numeral_uint64.restype = ctypes.c_bool
+ _lib.Z3_get_numeral_uint64.argtypes = [ContextObj, Ast, ctypes.POINTER(ctypes.c_ulonglong)]
+ _lib.Z3_get_numeral_int64.restype = ctypes.c_bool
+ _lib.Z3_get_numeral_int64.argtypes = [ContextObj, Ast, ctypes.POINTER(ctypes.c_longlong)]
+ _lib.Z3_get_numeral_rational_int64.restype = ctypes.c_bool
+ _lib.Z3_get_numeral_rational_int64.argtypes = [ContextObj, Ast, ctypes.POINTER(ctypes.c_longlong), ctypes.POINTER(ctypes.c_longlong)]
+ _lib.Z3_get_algebraic_number_lower.restype = Ast
+ _lib.Z3_get_algebraic_number_lower.argtypes = [ContextObj, Ast, ctypes.c_uint]
+ _lib.Z3_get_algebraic_number_upper.restype = Ast
+ _lib.Z3_get_algebraic_number_upper.argtypes = [ContextObj, Ast, ctypes.c_uint]
+ _lib.Z3_pattern_to_ast.restype = Ast
+ _lib.Z3_pattern_to_ast.argtypes = [ContextObj, Pattern]
+ _lib.Z3_get_pattern_num_terms.restype = ctypes.c_uint
+ _lib.Z3_get_pattern_num_terms.argtypes = [ContextObj, Pattern]
+ _lib.Z3_get_pattern.restype = Ast
+ _lib.Z3_get_pattern.argtypes = [ContextObj, Pattern, ctypes.c_uint]
+ _lib.Z3_get_index_value.restype = ctypes.c_uint
+ _lib.Z3_get_index_value.argtypes = [ContextObj, Ast]
+ _lib.Z3_is_quantifier_forall.restype = ctypes.c_bool
+ _lib.Z3_is_quantifier_forall.argtypes = [ContextObj, Ast]
+ _lib.Z3_get_quantifier_weight.restype = ctypes.c_uint
+ _lib.Z3_get_quantifier_weight.argtypes = [ContextObj, Ast]
+ _lib.Z3_get_quantifier_num_patterns.restype = ctypes.c_uint
+ _lib.Z3_get_quantifier_num_patterns.argtypes = [ContextObj, Ast]
+ _lib.Z3_get_quantifier_pattern_ast.restype = Pattern
+ _lib.Z3_get_quantifier_pattern_ast.argtypes = [ContextObj, Ast, ctypes.c_uint]
+ _lib.Z3_get_quantifier_num_no_patterns.restype = ctypes.c_uint
+ _lib.Z3_get_quantifier_num_no_patterns.argtypes = [ContextObj, Ast]
+ _lib.Z3_get_quantifier_no_pattern_ast.restype = Ast
+ _lib.Z3_get_quantifier_no_pattern_ast.argtypes = [ContextObj, Ast, ctypes.c_uint]
+ _lib.Z3_get_quantifier_num_bound.restype = ctypes.c_uint
+ _lib.Z3_get_quantifier_num_bound.argtypes = [ContextObj, Ast]
+ _lib.Z3_get_quantifier_bound_name.restype = Symbol
+ _lib.Z3_get_quantifier_bound_name.argtypes = [ContextObj, Ast, ctypes.c_uint]
+ _lib.Z3_get_quantifier_bound_sort.restype = Sort
+ _lib.Z3_get_quantifier_bound_sort.argtypes = [ContextObj, Ast, ctypes.c_uint]
+ _lib.Z3_get_quantifier_body.restype = Ast
+ _lib.Z3_get_quantifier_body.argtypes = [ContextObj, Ast]
+ _lib.Z3_simplify.restype = Ast
+ _lib.Z3_simplify.argtypes = [ContextObj, Ast]
+ _lib.Z3_simplify_ex.restype = Ast
+ _lib.Z3_simplify_ex.argtypes = [ContextObj, Ast, Params]
+ _lib.Z3_simplify_get_help.restype = ctypes.c_char_p
+ _lib.Z3_simplify_get_help.argtypes = [ContextObj]
+ _lib.Z3_simplify_get_param_descrs.restype = ParamDescrs
+ _lib.Z3_simplify_get_param_descrs.argtypes = [ContextObj]
+ _lib.Z3_update_term.restype = Ast
+ _lib.Z3_update_term.argtypes = [ContextObj, Ast, ctypes.c_uint, ctypes.POINTER(Ast)]
+ _lib.Z3_substitute.restype = Ast
+ _lib.Z3_substitute.argtypes = [ContextObj, Ast, ctypes.c_uint, ctypes.POINTER(Ast), ctypes.POINTER(Ast)]
+ _lib.Z3_substitute_vars.restype = Ast
+ _lib.Z3_substitute_vars.argtypes = [ContextObj, Ast, ctypes.c_uint, ctypes.POINTER(Ast)]
+ _lib.Z3_translate.restype = Ast
+ _lib.Z3_translate.argtypes = [ContextObj, Ast, ContextObj]
+ _lib.Z3_model_inc_ref.argtypes = [ContextObj, Model]
+ _lib.Z3_model_dec_ref.argtypes = [ContextObj, Model]
+ _lib.Z3_model_eval.restype = ctypes.c_bool
+ _lib.Z3_model_eval.argtypes = [ContextObj, Model, Ast, ctypes.c_bool, ctypes.POINTER(Ast)]
+ _lib.Z3_model_get_const_interp.restype = Ast
+ _lib.Z3_model_get_const_interp.argtypes = [ContextObj, Model, FuncDecl]
+ _lib.Z3_model_has_interp.restype = ctypes.c_bool
+ _lib.Z3_model_has_interp.argtypes = [ContextObj, Model, FuncDecl]
+ _lib.Z3_model_get_func_interp.restype = FuncInterpObj
+ _lib.Z3_model_get_func_interp.argtypes = [ContextObj, Model, FuncDecl]
+ _lib.Z3_model_get_num_consts.restype = ctypes.c_uint
+ _lib.Z3_model_get_num_consts.argtypes = [ContextObj, Model]
+ _lib.Z3_model_get_const_decl.restype = FuncDecl
+ _lib.Z3_model_get_const_decl.argtypes = [ContextObj, Model, ctypes.c_uint]
+ _lib.Z3_model_get_num_funcs.restype = ctypes.c_uint
+ _lib.Z3_model_get_num_funcs.argtypes = [ContextObj, Model]
+ _lib.Z3_model_get_func_decl.restype = FuncDecl
+ _lib.Z3_model_get_func_decl.argtypes = [ContextObj, Model, ctypes.c_uint]
+ _lib.Z3_model_get_num_sorts.restype = ctypes.c_uint
+ _lib.Z3_model_get_num_sorts.argtypes = [ContextObj, Model]
+ _lib.Z3_model_get_sort.restype = Sort
+ _lib.Z3_model_get_sort.argtypes = [ContextObj, Model, ctypes.c_uint]
+ _lib.Z3_model_get_sort_universe.restype = AstVectorObj
+ _lib.Z3_model_get_sort_universe.argtypes = [ContextObj, Model, Sort]
+ _lib.Z3_is_as_array.restype = ctypes.c_bool
+ _lib.Z3_is_as_array.argtypes = [ContextObj, Ast]
+ _lib.Z3_get_as_array_func_decl.restype = FuncDecl
+ _lib.Z3_get_as_array_func_decl.argtypes = [ContextObj, Ast]
+ _lib.Z3_func_interp_inc_ref.argtypes = [ContextObj, FuncInterpObj]
+ _lib.Z3_func_interp_dec_ref.argtypes = [ContextObj, FuncInterpObj]
+ _lib.Z3_func_interp_get_num_entries.restype = ctypes.c_uint
+ _lib.Z3_func_interp_get_num_entries.argtypes = [ContextObj, FuncInterpObj]
+ _lib.Z3_func_interp_get_entry.restype = FuncEntryObj
+ _lib.Z3_func_interp_get_entry.argtypes = [ContextObj, FuncInterpObj, ctypes.c_uint]
+ _lib.Z3_func_interp_get_else.restype = Ast
+ _lib.Z3_func_interp_get_else.argtypes = [ContextObj, FuncInterpObj]
+ _lib.Z3_func_interp_get_arity.restype = ctypes.c_uint
+ _lib.Z3_func_interp_get_arity.argtypes = [ContextObj, FuncInterpObj]
+ _lib.Z3_func_entry_inc_ref.argtypes = [ContextObj, FuncEntryObj]
+ _lib.Z3_func_entry_dec_ref.argtypes = [ContextObj, FuncEntryObj]
+ _lib.Z3_func_entry_get_value.restype = Ast
+ _lib.Z3_func_entry_get_value.argtypes = [ContextObj, FuncEntryObj]
+ _lib.Z3_func_entry_get_num_args.restype = ctypes.c_uint
+ _lib.Z3_func_entry_get_num_args.argtypes = [ContextObj, FuncEntryObj]
+ _lib.Z3_func_entry_get_arg.restype = Ast
+ _lib.Z3_func_entry_get_arg.argtypes = [ContextObj, FuncEntryObj, ctypes.c_uint]
+ _lib.Z3_open_log.restype = ctypes.c_int
+ _lib.Z3_open_log.argtypes = [ctypes.c_char_p]
+ _lib.Z3_append_log.argtypes = [ctypes.c_char_p]
+ _lib.Z3_close_log.argtypes = []
+ _lib.Z3_toggle_warning_messages.argtypes = [ctypes.c_bool]
+ _lib.Z3_set_ast_print_mode.argtypes = [ContextObj, ctypes.c_uint]
+ _lib.Z3_ast_to_string.restype = ctypes.c_char_p
+ _lib.Z3_ast_to_string.argtypes = [ContextObj, Ast]
+ _lib.Z3_pattern_to_string.restype = ctypes.c_char_p
+ _lib.Z3_pattern_to_string.argtypes = [ContextObj, Pattern]
+ _lib.Z3_sort_to_string.restype = ctypes.c_char_p
+ _lib.Z3_sort_to_string.argtypes = [ContextObj, Sort]
+ _lib.Z3_func_decl_to_string.restype = ctypes.c_char_p
+ _lib.Z3_func_decl_to_string.argtypes = [ContextObj, FuncDecl]
+ _lib.Z3_model_to_string.restype = ctypes.c_char_p
+ _lib.Z3_model_to_string.argtypes = [ContextObj, Model]
+ _lib.Z3_benchmark_to_smtlib_string.restype = ctypes.c_char_p
+ _lib.Z3_benchmark_to_smtlib_string.argtypes = [ContextObj, ctypes.c_char_p, ctypes.c_char_p, ctypes.c_char_p, ctypes.c_char_p, ctypes.c_uint, ctypes.POINTER(Ast), Ast]
+ _lib.Z3_parse_smtlib2_string.restype = Ast
+ _lib.Z3_parse_smtlib2_string.argtypes = [ContextObj, ctypes.c_char_p, ctypes.c_uint, ctypes.POINTER(Symbol), ctypes.POINTER(Sort), ctypes.c_uint, ctypes.POINTER(Symbol), ctypes.POINTER(FuncDecl)]
+ _lib.Z3_parse_smtlib2_file.restype = Ast
+ _lib.Z3_parse_smtlib2_file.argtypes = [ContextObj, ctypes.c_char_p, ctypes.c_uint, ctypes.POINTER(Symbol), ctypes.POINTER(Sort), ctypes.c_uint, ctypes.POINTER(Symbol), ctypes.POINTER(FuncDecl)]
+ _lib.Z3_parse_smtlib_string.argtypes = [ContextObj, ctypes.c_char_p, ctypes.c_uint, ctypes.POINTER(Symbol), ctypes.POINTER(Sort), ctypes.c_uint, ctypes.POINTER(Symbol), ctypes.POINTER(FuncDecl)]
+ _lib.Z3_parse_smtlib_file.argtypes = [ContextObj, ctypes.c_char_p, ctypes.c_uint, ctypes.POINTER(Symbol), ctypes.POINTER(Sort), ctypes.c_uint, ctypes.POINTER(Symbol), ctypes.POINTER(FuncDecl)]
+ _lib.Z3_get_smtlib_num_formulas.restype = ctypes.c_uint
+ _lib.Z3_get_smtlib_num_formulas.argtypes = [ContextObj]
+ _lib.Z3_get_smtlib_formula.restype = Ast
+ _lib.Z3_get_smtlib_formula.argtypes = [ContextObj, ctypes.c_uint]
+ _lib.Z3_get_smtlib_num_assumptions.restype = ctypes.c_uint
+ _lib.Z3_get_smtlib_num_assumptions.argtypes = [ContextObj]
+ _lib.Z3_get_smtlib_assumption.restype = Ast
+ _lib.Z3_get_smtlib_assumption.argtypes = [ContextObj, ctypes.c_uint]
+ _lib.Z3_get_smtlib_num_decls.restype = ctypes.c_uint
+ _lib.Z3_get_smtlib_num_decls.argtypes = [ContextObj]
+ _lib.Z3_get_smtlib_decl.restype = FuncDecl
+ _lib.Z3_get_smtlib_decl.argtypes = [ContextObj, ctypes.c_uint]
+ _lib.Z3_get_smtlib_num_sorts.restype = ctypes.c_uint
+ _lib.Z3_get_smtlib_num_sorts.argtypes = [ContextObj]
+ _lib.Z3_get_smtlib_sort.restype = Sort
+ _lib.Z3_get_smtlib_sort.argtypes = [ContextObj, ctypes.c_uint]
+ _lib.Z3_get_smtlib_error.restype = ctypes.c_char_p
+ _lib.Z3_get_smtlib_error.argtypes = [ContextObj]
+ _lib.Z3_get_error_code.restype = ctypes.c_uint
+ _lib.Z3_get_error_code.argtypes = [ContextObj]
+ _lib.Z3_set_error.argtypes = [ContextObj, ctypes.c_uint]
+ _lib.Z3_get_error_msg.restype = ctypes.c_char_p
+ _lib.Z3_get_error_msg.argtypes = [ContextObj, ctypes.c_uint]
+ _lib.Z3_get_version.argtypes = [ctypes.POINTER(ctypes.c_uint), ctypes.POINTER(ctypes.c_uint), ctypes.POINTER(ctypes.c_uint), ctypes.POINTER(ctypes.c_uint)]
+ _lib.Z3_get_full_version.restype = ctypes.c_char_p
+ _lib.Z3_get_full_version.argtypes = []
+ _lib.Z3_enable_trace.argtypes = [ctypes.c_char_p]
+ _lib.Z3_disable_trace.argtypes = [ctypes.c_char_p]
+ _lib.Z3_reset_memory.argtypes = []
+ _lib.Z3_finalize_memory.argtypes = []
+ _lib.Z3_mk_goal.restype = GoalObj
+ _lib.Z3_mk_goal.argtypes = [ContextObj, ctypes.c_bool, ctypes.c_bool, ctypes.c_bool]
+ _lib.Z3_goal_inc_ref.argtypes = [ContextObj, GoalObj]
+ _lib.Z3_goal_dec_ref.argtypes = [ContextObj, GoalObj]
+ _lib.Z3_goal_precision.restype = ctypes.c_uint
+ _lib.Z3_goal_precision.argtypes = [ContextObj, GoalObj]
+ _lib.Z3_goal_assert.argtypes = [ContextObj, GoalObj, Ast]
+ _lib.Z3_goal_inconsistent.restype = ctypes.c_bool
+ _lib.Z3_goal_inconsistent.argtypes = [ContextObj, GoalObj]
+ _lib.Z3_goal_depth.restype = ctypes.c_uint
+ _lib.Z3_goal_depth.argtypes = [ContextObj, GoalObj]
+ _lib.Z3_goal_reset.argtypes = [ContextObj, GoalObj]
+ _lib.Z3_goal_size.restype = ctypes.c_uint
+ _lib.Z3_goal_size.argtypes = [ContextObj, GoalObj]
+ _lib.Z3_goal_formula.restype = Ast
+ _lib.Z3_goal_formula.argtypes = [ContextObj, GoalObj, ctypes.c_uint]
+ _lib.Z3_goal_num_exprs.restype = ctypes.c_uint
+ _lib.Z3_goal_num_exprs.argtypes = [ContextObj, GoalObj]
+ _lib.Z3_goal_is_decided_sat.restype = ctypes.c_bool
+ _lib.Z3_goal_is_decided_sat.argtypes = [ContextObj, GoalObj]
+ _lib.Z3_goal_is_decided_unsat.restype = ctypes.c_bool
+ _lib.Z3_goal_is_decided_unsat.argtypes = [ContextObj, GoalObj]
+ _lib.Z3_goal_translate.restype = GoalObj
+ _lib.Z3_goal_translate.argtypes = [ContextObj, GoalObj, ContextObj]
+ _lib.Z3_goal_to_string.restype = ctypes.c_char_p
+ _lib.Z3_goal_to_string.argtypes = [ContextObj, GoalObj]
+ _lib.Z3_mk_tactic.restype = TacticObj
+ _lib.Z3_mk_tactic.argtypes = [ContextObj, ctypes.c_char_p]
+ _lib.Z3_tactic_inc_ref.argtypes = [ContextObj, TacticObj]
+ _lib.Z3_tactic_dec_ref.argtypes = [ContextObj, TacticObj]
+ _lib.Z3_mk_probe.restype = ProbeObj
+ _lib.Z3_mk_probe.argtypes = [ContextObj, ctypes.c_char_p]
+ _lib.Z3_probe_inc_ref.argtypes = [ContextObj, ProbeObj]
+ _lib.Z3_probe_dec_ref.argtypes = [ContextObj, ProbeObj]
+ _lib.Z3_tactic_and_then.restype = TacticObj
+ _lib.Z3_tactic_and_then.argtypes = [ContextObj, TacticObj, TacticObj]
+ _lib.Z3_tactic_or_else.restype = TacticObj
+ _lib.Z3_tactic_or_else.argtypes = [ContextObj, TacticObj, TacticObj]
+ _lib.Z3_tactic_par_or.restype = TacticObj
+ _lib.Z3_tactic_par_or.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(TacticObj)]
+ _lib.Z3_tactic_par_and_then.restype = TacticObj
+ _lib.Z3_tactic_par_and_then.argtypes = [ContextObj, TacticObj, TacticObj]
+ _lib.Z3_tactic_try_for.restype = TacticObj
+ _lib.Z3_tactic_try_for.argtypes = [ContextObj, TacticObj, ctypes.c_uint]
+ _lib.Z3_tactic_when.restype = TacticObj
+ _lib.Z3_tactic_when.argtypes = [ContextObj, ProbeObj, TacticObj]
+ _lib.Z3_tactic_cond.restype = TacticObj
+ _lib.Z3_tactic_cond.argtypes = [ContextObj, ProbeObj, TacticObj, TacticObj]
+ _lib.Z3_tactic_repeat.restype = TacticObj
+ _lib.Z3_tactic_repeat.argtypes = [ContextObj, TacticObj, ctypes.c_uint]
+ _lib.Z3_tactic_skip.restype = TacticObj
+ _lib.Z3_tactic_skip.argtypes = [ContextObj]
+ _lib.Z3_tactic_fail.restype = TacticObj
+ _lib.Z3_tactic_fail.argtypes = [ContextObj]
+ _lib.Z3_tactic_fail_if.restype = TacticObj
+ _lib.Z3_tactic_fail_if.argtypes = [ContextObj, ProbeObj]
+ _lib.Z3_tactic_fail_if_not_decided.restype = TacticObj
+ _lib.Z3_tactic_fail_if_not_decided.argtypes = [ContextObj]
+ _lib.Z3_tactic_using_params.restype = TacticObj
+ _lib.Z3_tactic_using_params.argtypes = [ContextObj, TacticObj, Params]
+ _lib.Z3_probe_const.restype = ProbeObj
+ _lib.Z3_probe_const.argtypes = [ContextObj, ctypes.c_double]
+ _lib.Z3_probe_lt.restype = ProbeObj
+ _lib.Z3_probe_lt.argtypes = [ContextObj, ProbeObj, ProbeObj]
+ _lib.Z3_probe_gt.restype = ProbeObj
+ _lib.Z3_probe_gt.argtypes = [ContextObj, ProbeObj, ProbeObj]
+ _lib.Z3_probe_le.restype = ProbeObj
+ _lib.Z3_probe_le.argtypes = [ContextObj, ProbeObj, ProbeObj]
+ _lib.Z3_probe_ge.restype = ProbeObj
+ _lib.Z3_probe_ge.argtypes = [ContextObj, ProbeObj, ProbeObj]
+ _lib.Z3_probe_eq.restype = ProbeObj
+ _lib.Z3_probe_eq.argtypes = [ContextObj, ProbeObj, ProbeObj]
+ _lib.Z3_probe_and.restype = ProbeObj
+ _lib.Z3_probe_and.argtypes = [ContextObj, ProbeObj, ProbeObj]
+ _lib.Z3_probe_or.restype = ProbeObj
+ _lib.Z3_probe_or.argtypes = [ContextObj, ProbeObj, ProbeObj]
+ _lib.Z3_probe_not.restype = ProbeObj
+ _lib.Z3_probe_not.argtypes = [ContextObj, ProbeObj]
+ _lib.Z3_get_num_tactics.restype = ctypes.c_uint
+ _lib.Z3_get_num_tactics.argtypes = [ContextObj]
+ _lib.Z3_get_tactic_name.restype = ctypes.c_char_p
+ _lib.Z3_get_tactic_name.argtypes = [ContextObj, ctypes.c_uint]
+ _lib.Z3_get_num_probes.restype = ctypes.c_uint
+ _lib.Z3_get_num_probes.argtypes = [ContextObj]
+ _lib.Z3_get_probe_name.restype = ctypes.c_char_p
+ _lib.Z3_get_probe_name.argtypes = [ContextObj, ctypes.c_uint]
+ _lib.Z3_tactic_get_help.restype = ctypes.c_char_p
+ _lib.Z3_tactic_get_help.argtypes = [ContextObj, TacticObj]
+ _lib.Z3_tactic_get_param_descrs.restype = ParamDescrs
+ _lib.Z3_tactic_get_param_descrs.argtypes = [ContextObj, TacticObj]
+ _lib.Z3_tactic_get_descr.restype = ctypes.c_char_p
+ _lib.Z3_tactic_get_descr.argtypes = [ContextObj, ctypes.c_char_p]
+ _lib.Z3_probe_get_descr.restype = ctypes.c_char_p
+ _lib.Z3_probe_get_descr.argtypes = [ContextObj, ctypes.c_char_p]
+ _lib.Z3_probe_apply.restype = ctypes.c_double
+ _lib.Z3_probe_apply.argtypes = [ContextObj, ProbeObj, GoalObj]
+ _lib.Z3_tactic_apply.restype = ApplyResultObj
+ _lib.Z3_tactic_apply.argtypes = [ContextObj, TacticObj, GoalObj]
+ _lib.Z3_tactic_apply_ex.restype = ApplyResultObj
+ _lib.Z3_tactic_apply_ex.argtypes = [ContextObj, TacticObj, GoalObj, Params]
+ _lib.Z3_apply_result_inc_ref.argtypes = [ContextObj, ApplyResultObj]
+ _lib.Z3_apply_result_dec_ref.argtypes = [ContextObj, ApplyResultObj]
+ _lib.Z3_apply_result_to_string.restype = ctypes.c_char_p
+ _lib.Z3_apply_result_to_string.argtypes = [ContextObj, ApplyResultObj]
+ _lib.Z3_apply_result_get_num_subgoals.restype = ctypes.c_uint
+ _lib.Z3_apply_result_get_num_subgoals.argtypes = [ContextObj, ApplyResultObj]
+ _lib.Z3_apply_result_get_subgoal.restype = GoalObj
+ _lib.Z3_apply_result_get_subgoal.argtypes = [ContextObj, ApplyResultObj, ctypes.c_uint]
+ _lib.Z3_apply_result_convert_model.restype = Model
+ _lib.Z3_apply_result_convert_model.argtypes = [ContextObj, ApplyResultObj, ctypes.c_uint, Model]
+ _lib.Z3_mk_solver.restype = SolverObj
+ _lib.Z3_mk_solver.argtypes = [ContextObj]
+ _lib.Z3_mk_simple_solver.restype = SolverObj
+ _lib.Z3_mk_simple_solver.argtypes = [ContextObj]
+ _lib.Z3_mk_solver_for_logic.restype = SolverObj
+ _lib.Z3_mk_solver_for_logic.argtypes = [ContextObj, Symbol]
+ _lib.Z3_mk_solver_from_tactic.restype = SolverObj
+ _lib.Z3_mk_solver_from_tactic.argtypes = [ContextObj, TacticObj]
+ _lib.Z3_solver_translate.restype = SolverObj
+ _lib.Z3_solver_translate.argtypes = [ContextObj, SolverObj, ContextObj]
+ _lib.Z3_solver_get_help.restype = ctypes.c_char_p
+ _lib.Z3_solver_get_help.argtypes = [ContextObj, SolverObj]
+ _lib.Z3_solver_get_param_descrs.restype = ParamDescrs
+ _lib.Z3_solver_get_param_descrs.argtypes = [ContextObj, SolverObj]
+ _lib.Z3_solver_set_params.argtypes = [ContextObj, SolverObj, Params]
+ _lib.Z3_solver_inc_ref.argtypes = [ContextObj, SolverObj]
+ _lib.Z3_solver_dec_ref.argtypes = [ContextObj, SolverObj]
+ _lib.Z3_solver_push.argtypes = [ContextObj, SolverObj]
+ _lib.Z3_solver_pop.argtypes = [ContextObj, SolverObj, ctypes.c_uint]
+ _lib.Z3_solver_reset.argtypes = [ContextObj, SolverObj]
+ _lib.Z3_solver_get_num_scopes.restype = ctypes.c_uint
+ _lib.Z3_solver_get_num_scopes.argtypes = [ContextObj, SolverObj]
+ _lib.Z3_solver_assert.argtypes = [ContextObj, SolverObj, Ast]
+ _lib.Z3_solver_assert_and_track.argtypes = [ContextObj, SolverObj, Ast, Ast]
+ _lib.Z3_solver_get_assertions.restype = AstVectorObj
+ _lib.Z3_solver_get_assertions.argtypes = [ContextObj, SolverObj]
+ _lib.Z3_solver_check.restype = ctypes.c_int
+ _lib.Z3_solver_check.argtypes = [ContextObj, SolverObj]
+ _lib.Z3_solver_check_assumptions.restype = ctypes.c_int
+ _lib.Z3_solver_check_assumptions.argtypes = [ContextObj, SolverObj, ctypes.c_uint, ctypes.POINTER(Ast)]
+ _lib.Z3_get_implied_equalities.restype = ctypes.c_int
+ _lib.Z3_get_implied_equalities.argtypes = [ContextObj, SolverObj, ctypes.c_uint, ctypes.POINTER(Ast), ctypes.POINTER(ctypes.c_uint)]
+ _lib.Z3_solver_get_consequences.restype = ctypes.c_int
+ _lib.Z3_solver_get_consequences.argtypes = [ContextObj, SolverObj, AstVectorObj, AstVectorObj, AstVectorObj]
+ _lib.Z3_solver_get_model.restype = Model
+ _lib.Z3_solver_get_model.argtypes = [ContextObj, SolverObj]
+ _lib.Z3_solver_get_proof.restype = Ast
+ _lib.Z3_solver_get_proof.argtypes = [ContextObj, SolverObj]
+ _lib.Z3_solver_get_unsat_core.restype = AstVectorObj
+ _lib.Z3_solver_get_unsat_core.argtypes = [ContextObj, SolverObj]
+ _lib.Z3_solver_get_reason_unknown.restype = ctypes.c_char_p
+ _lib.Z3_solver_get_reason_unknown.argtypes = [ContextObj, SolverObj]
+ _lib.Z3_solver_get_statistics.restype = StatsObj
+ _lib.Z3_solver_get_statistics.argtypes = [ContextObj, SolverObj]
+ _lib.Z3_solver_to_string.restype = ctypes.c_char_p
+ _lib.Z3_solver_to_string.argtypes = [ContextObj, SolverObj]
+ _lib.Z3_stats_to_string.restype = ctypes.c_char_p
+ _lib.Z3_stats_to_string.argtypes = [ContextObj, StatsObj]
+ _lib.Z3_stats_inc_ref.argtypes = [ContextObj, StatsObj]
+ _lib.Z3_stats_dec_ref.argtypes = [ContextObj, StatsObj]
+ _lib.Z3_stats_size.restype = ctypes.c_uint
+ _lib.Z3_stats_size.argtypes = [ContextObj, StatsObj]
+ _lib.Z3_stats_get_key.restype = ctypes.c_char_p
+ _lib.Z3_stats_get_key.argtypes = [ContextObj, StatsObj, ctypes.c_uint]
+ _lib.Z3_stats_is_uint.restype = ctypes.c_bool
+ _lib.Z3_stats_is_uint.argtypes = [ContextObj, StatsObj, ctypes.c_uint]
+ _lib.Z3_stats_is_double.restype = ctypes.c_bool
+ _lib.Z3_stats_is_double.argtypes = [ContextObj, StatsObj, ctypes.c_uint]
+ _lib.Z3_stats_get_uint_value.restype = ctypes.c_uint
+ _lib.Z3_stats_get_uint_value.argtypes = [ContextObj, StatsObj, ctypes.c_uint]
+ _lib.Z3_stats_get_double_value.restype = ctypes.c_double
+ _lib.Z3_stats_get_double_value.argtypes = [ContextObj, StatsObj, ctypes.c_uint]
+ _lib.Z3_get_estimated_alloc_size.restype = ctypes.c_ulonglong
+ _lib.Z3_get_estimated_alloc_size.argtypes = []
+ _lib.Z3_mk_ast_vector.restype = AstVectorObj
+ _lib.Z3_mk_ast_vector.argtypes = [ContextObj]
+ _lib.Z3_ast_vector_inc_ref.argtypes = [ContextObj, AstVectorObj]
+ _lib.Z3_ast_vector_dec_ref.argtypes = [ContextObj, AstVectorObj]
+ _lib.Z3_ast_vector_size.restype = ctypes.c_uint
+ _lib.Z3_ast_vector_size.argtypes = [ContextObj, AstVectorObj]
+ _lib.Z3_ast_vector_get.restype = Ast
+ _lib.Z3_ast_vector_get.argtypes = [ContextObj, AstVectorObj, ctypes.c_uint]
+ _lib.Z3_ast_vector_set.argtypes = [ContextObj, AstVectorObj, ctypes.c_uint, Ast]
+ _lib.Z3_ast_vector_resize.argtypes = [ContextObj, AstVectorObj, ctypes.c_uint]
+ _lib.Z3_ast_vector_push.argtypes = [ContextObj, AstVectorObj, Ast]
+ _lib.Z3_ast_vector_translate.restype = AstVectorObj
+ _lib.Z3_ast_vector_translate.argtypes = [ContextObj, AstVectorObj, ContextObj]
+ _lib.Z3_ast_vector_to_string.restype = ctypes.c_char_p
+ _lib.Z3_ast_vector_to_string.argtypes = [ContextObj, AstVectorObj]
+ _lib.Z3_mk_ast_map.restype = AstMapObj
+ _lib.Z3_mk_ast_map.argtypes = [ContextObj]
+ _lib.Z3_ast_map_inc_ref.argtypes = [ContextObj, AstMapObj]
+ _lib.Z3_ast_map_dec_ref.argtypes = [ContextObj, AstMapObj]
+ _lib.Z3_ast_map_contains.restype = ctypes.c_bool
+ _lib.Z3_ast_map_contains.argtypes = [ContextObj, AstMapObj, Ast]
+ _lib.Z3_ast_map_find.restype = Ast
+ _lib.Z3_ast_map_find.argtypes = [ContextObj, AstMapObj, Ast]
+ _lib.Z3_ast_map_insert.argtypes = [ContextObj, AstMapObj, Ast, Ast]
+ _lib.Z3_ast_map_erase.argtypes = [ContextObj, AstMapObj, Ast]
+ _lib.Z3_ast_map_reset.argtypes = [ContextObj, AstMapObj]
+ _lib.Z3_ast_map_size.restype = ctypes.c_uint
+ _lib.Z3_ast_map_size.argtypes = [ContextObj, AstMapObj]
+ _lib.Z3_ast_map_keys.restype = AstVectorObj
+ _lib.Z3_ast_map_keys.argtypes = [ContextObj, AstMapObj]
+ _lib.Z3_ast_map_to_string.restype = ctypes.c_char_p
+ _lib.Z3_ast_map_to_string.argtypes = [ContextObj, AstMapObj]
+ _lib.Z3_algebraic_is_value.restype = ctypes.c_bool
+ _lib.Z3_algebraic_is_value.argtypes = [ContextObj, Ast]
+ _lib.Z3_algebraic_is_pos.restype = ctypes.c_bool
+ _lib.Z3_algebraic_is_pos.argtypes = [ContextObj, Ast]
+ _lib.Z3_algebraic_is_neg.restype = ctypes.c_bool
+ _lib.Z3_algebraic_is_neg.argtypes = [ContextObj, Ast]
+ _lib.Z3_algebraic_is_zero.restype = ctypes.c_bool
+ _lib.Z3_algebraic_is_zero.argtypes = [ContextObj, Ast]
+ _lib.Z3_algebraic_sign.restype = ctypes.c_int
+ _lib.Z3_algebraic_sign.argtypes = [ContextObj, Ast]
+ _lib.Z3_algebraic_add.restype = Ast
+ _lib.Z3_algebraic_add.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_algebraic_sub.restype = Ast
+ _lib.Z3_algebraic_sub.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_algebraic_mul.restype = Ast
+ _lib.Z3_algebraic_mul.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_algebraic_div.restype = Ast
+ _lib.Z3_algebraic_div.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_algebraic_root.restype = Ast
+ _lib.Z3_algebraic_root.argtypes = [ContextObj, Ast, ctypes.c_uint]
+ _lib.Z3_algebraic_power.restype = Ast
+ _lib.Z3_algebraic_power.argtypes = [ContextObj, Ast, ctypes.c_uint]
+ _lib.Z3_algebraic_lt.restype = ctypes.c_bool
+ _lib.Z3_algebraic_lt.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_algebraic_gt.restype = ctypes.c_bool
+ _lib.Z3_algebraic_gt.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_algebraic_le.restype = ctypes.c_bool
+ _lib.Z3_algebraic_le.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_algebraic_ge.restype = ctypes.c_bool
+ _lib.Z3_algebraic_ge.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_algebraic_eq.restype = ctypes.c_bool
+ _lib.Z3_algebraic_eq.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_algebraic_neq.restype = ctypes.c_bool
+ _lib.Z3_algebraic_neq.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_algebraic_roots.restype = AstVectorObj
+ _lib.Z3_algebraic_roots.argtypes = [ContextObj, Ast, ctypes.c_uint, ctypes.POINTER(Ast)]
+ _lib.Z3_algebraic_eval.restype = ctypes.c_int
+ _lib.Z3_algebraic_eval.argtypes = [ContextObj, Ast, ctypes.c_uint, ctypes.POINTER(Ast)]
+ _lib.Z3_polynomial_subresultants.restype = AstVectorObj
+ _lib.Z3_polynomial_subresultants.argtypes = [ContextObj, Ast, Ast, Ast]
+ _lib.Z3_rcf_del.argtypes = [ContextObj, RCFNumObj]
+ _lib.Z3_rcf_mk_rational.restype = RCFNumObj
+ _lib.Z3_rcf_mk_rational.argtypes = [ContextObj, ctypes.c_char_p]
+ _lib.Z3_rcf_mk_small_int.restype = RCFNumObj
+ _lib.Z3_rcf_mk_small_int.argtypes = [ContextObj, ctypes.c_int]
+ _lib.Z3_rcf_mk_pi.restype = RCFNumObj
+ _lib.Z3_rcf_mk_pi.argtypes = [ContextObj]
+ _lib.Z3_rcf_mk_e.restype = RCFNumObj
+ _lib.Z3_rcf_mk_e.argtypes = [ContextObj]
+ _lib.Z3_rcf_mk_infinitesimal.restype = RCFNumObj
+ _lib.Z3_rcf_mk_infinitesimal.argtypes = [ContextObj]
+ _lib.Z3_rcf_mk_roots.restype = ctypes.c_uint
+ _lib.Z3_rcf_mk_roots.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(RCFNumObj), ctypes.POINTER(RCFNumObj)]
+ _lib.Z3_rcf_add.restype = RCFNumObj
+ _lib.Z3_rcf_add.argtypes = [ContextObj, RCFNumObj, RCFNumObj]
+ _lib.Z3_rcf_sub.restype = RCFNumObj
+ _lib.Z3_rcf_sub.argtypes = [ContextObj, RCFNumObj, RCFNumObj]
+ _lib.Z3_rcf_mul.restype = RCFNumObj
+ _lib.Z3_rcf_mul.argtypes = [ContextObj, RCFNumObj, RCFNumObj]
+ _lib.Z3_rcf_div.restype = RCFNumObj
+ _lib.Z3_rcf_div.argtypes = [ContextObj, RCFNumObj, RCFNumObj]
+ _lib.Z3_rcf_neg.restype = RCFNumObj
+ _lib.Z3_rcf_neg.argtypes = [ContextObj, RCFNumObj]
+ _lib.Z3_rcf_inv.restype = RCFNumObj
+ _lib.Z3_rcf_inv.argtypes = [ContextObj, RCFNumObj]
+ _lib.Z3_rcf_power.restype = RCFNumObj
+ _lib.Z3_rcf_power.argtypes = [ContextObj, RCFNumObj, ctypes.c_uint]
+ _lib.Z3_rcf_lt.restype = ctypes.c_bool
+ _lib.Z3_rcf_lt.argtypes = [ContextObj, RCFNumObj, RCFNumObj]
+ _lib.Z3_rcf_gt.restype = ctypes.c_bool
+ _lib.Z3_rcf_gt.argtypes = [ContextObj, RCFNumObj, RCFNumObj]
+ _lib.Z3_rcf_le.restype = ctypes.c_bool
+ _lib.Z3_rcf_le.argtypes = [ContextObj, RCFNumObj, RCFNumObj]
+ _lib.Z3_rcf_ge.restype = ctypes.c_bool
+ _lib.Z3_rcf_ge.argtypes = [ContextObj, RCFNumObj, RCFNumObj]
+ _lib.Z3_rcf_eq.restype = ctypes.c_bool
+ _lib.Z3_rcf_eq.argtypes = [ContextObj, RCFNumObj, RCFNumObj]
+ _lib.Z3_rcf_neq.restype = ctypes.c_bool
+ _lib.Z3_rcf_neq.argtypes = [ContextObj, RCFNumObj, RCFNumObj]
+ _lib.Z3_rcf_num_to_string.restype = ctypes.c_char_p
+ _lib.Z3_rcf_num_to_string.argtypes = [ContextObj, RCFNumObj, ctypes.c_bool, ctypes.c_bool]
+ _lib.Z3_rcf_num_to_decimal_string.restype = ctypes.c_char_p
+ _lib.Z3_rcf_num_to_decimal_string.argtypes = [ContextObj, RCFNumObj, ctypes.c_uint]
+ _lib.Z3_rcf_get_numerator_denominator.argtypes = [ContextObj, RCFNumObj, ctypes.POINTER(RCFNumObj), ctypes.POINTER(RCFNumObj)]
+ _lib.Z3_mk_fixedpoint.restype = FixedpointObj
+ _lib.Z3_mk_fixedpoint.argtypes = [ContextObj]
+ _lib.Z3_fixedpoint_inc_ref.argtypes = [ContextObj, FixedpointObj]
+ _lib.Z3_fixedpoint_dec_ref.argtypes = [ContextObj, FixedpointObj]
+ _lib.Z3_fixedpoint_add_rule.argtypes = [ContextObj, FixedpointObj, Ast, Symbol]
+ _lib.Z3_fixedpoint_add_fact.argtypes = [ContextObj, FixedpointObj, FuncDecl, ctypes.c_uint, ctypes.POINTER(ctypes.c_uint)]
+ _lib.Z3_fixedpoint_assert.argtypes = [ContextObj, FixedpointObj, Ast]
+ _lib.Z3_fixedpoint_query.restype = ctypes.c_int
+ _lib.Z3_fixedpoint_query.argtypes = [ContextObj, FixedpointObj, Ast]
+ _lib.Z3_fixedpoint_query_relations.restype = ctypes.c_int
+ _lib.Z3_fixedpoint_query_relations.argtypes = [ContextObj, FixedpointObj, ctypes.c_uint, ctypes.POINTER(FuncDecl)]
+ _lib.Z3_fixedpoint_get_answer.restype = Ast
+ _lib.Z3_fixedpoint_get_answer.argtypes = [ContextObj, FixedpointObj]
+ _lib.Z3_fixedpoint_get_reason_unknown.restype = ctypes.c_char_p
+ _lib.Z3_fixedpoint_get_reason_unknown.argtypes = [ContextObj, FixedpointObj]
+ _lib.Z3_fixedpoint_update_rule.argtypes = [ContextObj, FixedpointObj, Ast, Symbol]
+ _lib.Z3_fixedpoint_get_num_levels.restype = ctypes.c_uint
+ _lib.Z3_fixedpoint_get_num_levels.argtypes = [ContextObj, FixedpointObj, FuncDecl]
+ _lib.Z3_fixedpoint_get_cover_delta.restype = Ast
+ _lib.Z3_fixedpoint_get_cover_delta.argtypes = [ContextObj, FixedpointObj, ctypes.c_int, FuncDecl]
+ _lib.Z3_fixedpoint_add_cover.argtypes = [ContextObj, FixedpointObj, ctypes.c_int, FuncDecl, Ast]
+ _lib.Z3_fixedpoint_get_statistics.restype = StatsObj
+ _lib.Z3_fixedpoint_get_statistics.argtypes = [ContextObj, FixedpointObj]
+ _lib.Z3_fixedpoint_register_relation.argtypes = [ContextObj, FixedpointObj, FuncDecl]
+ _lib.Z3_fixedpoint_set_predicate_representation.argtypes = [ContextObj, FixedpointObj, FuncDecl, ctypes.c_uint, ctypes.POINTER(Symbol)]
+ _lib.Z3_fixedpoint_get_rules.restype = AstVectorObj
+ _lib.Z3_fixedpoint_get_rules.argtypes = [ContextObj, FixedpointObj]
+ _lib.Z3_fixedpoint_get_assertions.restype = AstVectorObj
+ _lib.Z3_fixedpoint_get_assertions.argtypes = [ContextObj, FixedpointObj]
+ _lib.Z3_fixedpoint_set_params.argtypes = [ContextObj, FixedpointObj, Params]
+ _lib.Z3_fixedpoint_get_help.restype = ctypes.c_char_p
+ _lib.Z3_fixedpoint_get_help.argtypes = [ContextObj, FixedpointObj]
+ _lib.Z3_fixedpoint_get_param_descrs.restype = ParamDescrs
+ _lib.Z3_fixedpoint_get_param_descrs.argtypes = [ContextObj, FixedpointObj]
+ _lib.Z3_fixedpoint_to_string.restype = ctypes.c_char_p
+ _lib.Z3_fixedpoint_to_string.argtypes = [ContextObj, FixedpointObj, ctypes.c_uint, ctypes.POINTER(Ast)]
+ _lib.Z3_fixedpoint_from_string.restype = AstVectorObj
+ _lib.Z3_fixedpoint_from_string.argtypes = [ContextObj, FixedpointObj, ctypes.c_char_p]
+ _lib.Z3_fixedpoint_from_file.restype = AstVectorObj
+ _lib.Z3_fixedpoint_from_file.argtypes = [ContextObj, FixedpointObj, ctypes.c_char_p]
+ _lib.Z3_fixedpoint_push.argtypes = [ContextObj, FixedpointObj]
+ _lib.Z3_fixedpoint_pop.argtypes = [ContextObj, FixedpointObj]
+ _lib.Z3_mk_optimize.restype = OptimizeObj
+ _lib.Z3_mk_optimize.argtypes = [ContextObj]
+ _lib.Z3_optimize_inc_ref.argtypes = [ContextObj, OptimizeObj]
+ _lib.Z3_optimize_dec_ref.argtypes = [ContextObj, OptimizeObj]
+ _lib.Z3_optimize_assert.argtypes = [ContextObj, OptimizeObj, Ast]
+ _lib.Z3_optimize_assert_soft.restype = ctypes.c_uint
+ _lib.Z3_optimize_assert_soft.argtypes = [ContextObj, OptimizeObj, Ast, ctypes.c_char_p, Symbol]
+ _lib.Z3_optimize_maximize.restype = ctypes.c_uint
+ _lib.Z3_optimize_maximize.argtypes = [ContextObj, OptimizeObj, Ast]
+ _lib.Z3_optimize_minimize.restype = ctypes.c_uint
+ _lib.Z3_optimize_minimize.argtypes = [ContextObj, OptimizeObj, Ast]
+ _lib.Z3_optimize_push.argtypes = [ContextObj, OptimizeObj]
+ _lib.Z3_optimize_pop.argtypes = [ContextObj, OptimizeObj]
+ _lib.Z3_optimize_check.restype = ctypes.c_int
+ _lib.Z3_optimize_check.argtypes = [ContextObj, OptimizeObj]
+ _lib.Z3_optimize_get_reason_unknown.restype = ctypes.c_char_p
+ _lib.Z3_optimize_get_reason_unknown.argtypes = [ContextObj, OptimizeObj]
+ _lib.Z3_optimize_get_model.restype = Model
+ _lib.Z3_optimize_get_model.argtypes = [ContextObj, OptimizeObj]
+ _lib.Z3_optimize_set_params.argtypes = [ContextObj, OptimizeObj, Params]
+ _lib.Z3_optimize_get_param_descrs.restype = ParamDescrs
+ _lib.Z3_optimize_get_param_descrs.argtypes = [ContextObj, OptimizeObj]
+ _lib.Z3_optimize_get_lower.restype = Ast
+ _lib.Z3_optimize_get_lower.argtypes = [ContextObj, OptimizeObj, ctypes.c_uint]
+ _lib.Z3_optimize_get_upper.restype = Ast
+ _lib.Z3_optimize_get_upper.argtypes = [ContextObj, OptimizeObj, ctypes.c_uint]
+ _lib.Z3_optimize_to_string.restype = ctypes.c_char_p
+ _lib.Z3_optimize_to_string.argtypes = [ContextObj, OptimizeObj]
+ _lib.Z3_optimize_from_string.argtypes = [ContextObj, OptimizeObj, ctypes.c_char_p]
+ _lib.Z3_optimize_from_file.argtypes = [ContextObj, OptimizeObj, ctypes.c_char_p]
+ _lib.Z3_optimize_get_help.restype = ctypes.c_char_p
+ _lib.Z3_optimize_get_help.argtypes = [ContextObj, OptimizeObj]
+ _lib.Z3_optimize_get_statistics.restype = StatsObj
+ _lib.Z3_optimize_get_statistics.argtypes = [ContextObj, OptimizeObj]
+ _lib.Z3_optimize_get_assertions.restype = AstVectorObj
+ _lib.Z3_optimize_get_assertions.argtypes = [ContextObj, OptimizeObj]
+ _lib.Z3_optimize_get_objectives.restype = AstVectorObj
+ _lib.Z3_optimize_get_objectives.argtypes = [ContextObj, OptimizeObj]
+ _lib.Z3_mk_interpolant.restype = Ast
+ _lib.Z3_mk_interpolant.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_interpolation_context.restype = ContextObj
+ _lib.Z3_mk_interpolation_context.argtypes = [Config]
+ _lib.Z3_get_interpolant.restype = AstVectorObj
+ _lib.Z3_get_interpolant.argtypes = [ContextObj, Ast, Ast, Params]
+ _lib.Z3_compute_interpolant.restype = ctypes.c_int
+ _lib.Z3_compute_interpolant.argtypes = [ContextObj, Ast, Params, ctypes.POINTER(AstVectorObj), ctypes.POINTER(Model)]
+ _lib.Z3_interpolation_profile.restype = ctypes.c_char_p
+ _lib.Z3_interpolation_profile.argtypes = [ContextObj]
+ _lib.Z3_read_interpolation_problem.restype = ctypes.c_int
+ _lib.Z3_read_interpolation_problem.argtypes = [ContextObj, ctypes.POINTER(ctypes.c_uint), Ast, ctypes.c_uint, ctypes.c_char_p, ctypes.POINTER(ctypes.c_char_p), ctypes.POINTER(ctypes.c_uint), Ast]
+ _lib.Z3_check_interpolant.restype = ctypes.c_int
+ _lib.Z3_check_interpolant.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast), ctypes.POINTER(ctypes.c_uint), ctypes.POINTER(Ast), ctypes.POINTER(ctypes.c_char_p), ctypes.c_uint, ctypes.POINTER(Ast)]
+ _lib.Z3_write_interpolation_problem.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast), ctypes.POINTER(ctypes.c_uint), ctypes.c_char_p, ctypes.c_uint, ctypes.POINTER(Ast)]
+ _lib.Z3_mk_fpa_rounding_mode_sort.restype = Sort
+ _lib.Z3_mk_fpa_rounding_mode_sort.argtypes = [ContextObj]
+ _lib.Z3_mk_fpa_round_nearest_ties_to_even.restype = Ast
+ _lib.Z3_mk_fpa_round_nearest_ties_to_even.argtypes = [ContextObj]
+ _lib.Z3_mk_fpa_rne.restype = Ast
+ _lib.Z3_mk_fpa_rne.argtypes = [ContextObj]
+ _lib.Z3_mk_fpa_round_nearest_ties_to_away.restype = Ast
+ _lib.Z3_mk_fpa_round_nearest_ties_to_away.argtypes = [ContextObj]
+ _lib.Z3_mk_fpa_rna.restype = Ast
+ _lib.Z3_mk_fpa_rna.argtypes = [ContextObj]
+ _lib.Z3_mk_fpa_round_toward_positive.restype = Ast
+ _lib.Z3_mk_fpa_round_toward_positive.argtypes = [ContextObj]
+ _lib.Z3_mk_fpa_rtp.restype = Ast
+ _lib.Z3_mk_fpa_rtp.argtypes = [ContextObj]
+ _lib.Z3_mk_fpa_round_toward_negative.restype = Ast
+ _lib.Z3_mk_fpa_round_toward_negative.argtypes = [ContextObj]
+ _lib.Z3_mk_fpa_rtn.restype = Ast
+ _lib.Z3_mk_fpa_rtn.argtypes = [ContextObj]
+ _lib.Z3_mk_fpa_round_toward_zero.restype = Ast
+ _lib.Z3_mk_fpa_round_toward_zero.argtypes = [ContextObj]
+ _lib.Z3_mk_fpa_rtz.restype = Ast
+ _lib.Z3_mk_fpa_rtz.argtypes = [ContextObj]
+ _lib.Z3_mk_fpa_sort.restype = Sort
+ _lib.Z3_mk_fpa_sort.argtypes = [ContextObj, ctypes.c_uint, ctypes.c_uint]
+ _lib.Z3_mk_fpa_sort_half.restype = Sort
+ _lib.Z3_mk_fpa_sort_half.argtypes = [ContextObj]
+ _lib.Z3_mk_fpa_sort_16.restype = Sort
+ _lib.Z3_mk_fpa_sort_16.argtypes = [ContextObj]
+ _lib.Z3_mk_fpa_sort_single.restype = Sort
+ _lib.Z3_mk_fpa_sort_single.argtypes = [ContextObj]
+ _lib.Z3_mk_fpa_sort_32.restype = Sort
+ _lib.Z3_mk_fpa_sort_32.argtypes = [ContextObj]
+ _lib.Z3_mk_fpa_sort_double.restype = Sort
+ _lib.Z3_mk_fpa_sort_double.argtypes = [ContextObj]
+ _lib.Z3_mk_fpa_sort_64.restype = Sort
+ _lib.Z3_mk_fpa_sort_64.argtypes = [ContextObj]
+ _lib.Z3_mk_fpa_sort_quadruple.restype = Sort
+ _lib.Z3_mk_fpa_sort_quadruple.argtypes = [ContextObj]
+ _lib.Z3_mk_fpa_sort_128.restype = Sort
+ _lib.Z3_mk_fpa_sort_128.argtypes = [ContextObj]
+ _lib.Z3_mk_fpa_nan.restype = Ast
+ _lib.Z3_mk_fpa_nan.argtypes = [ContextObj, Sort]
+ _lib.Z3_mk_fpa_inf.restype = Ast
+ _lib.Z3_mk_fpa_inf.argtypes = [ContextObj, Sort, ctypes.c_bool]
+ _lib.Z3_mk_fpa_zero.restype = Ast
+ _lib.Z3_mk_fpa_zero.argtypes = [ContextObj, Sort, ctypes.c_bool]
+ _lib.Z3_mk_fpa_fp.restype = Ast
+ _lib.Z3_mk_fpa_fp.argtypes = [ContextObj, Ast, Ast, Ast]
+ _lib.Z3_mk_fpa_numeral_float.restype = Ast
+ _lib.Z3_mk_fpa_numeral_float.argtypes = [ContextObj, ctypes.c_float, Sort]
+ _lib.Z3_mk_fpa_numeral_double.restype = Ast
+ _lib.Z3_mk_fpa_numeral_double.argtypes = [ContextObj, ctypes.c_double, Sort]
+ _lib.Z3_mk_fpa_numeral_int.restype = Ast
+ _lib.Z3_mk_fpa_numeral_int.argtypes = [ContextObj, ctypes.c_int, Sort]
+ _lib.Z3_mk_fpa_numeral_int_uint.restype = Ast
+ _lib.Z3_mk_fpa_numeral_int_uint.argtypes = [ContextObj, ctypes.c_bool, ctypes.c_int, ctypes.c_uint, Sort]
+ _lib.Z3_mk_fpa_numeral_int64_uint64.restype = Ast
+ _lib.Z3_mk_fpa_numeral_int64_uint64.argtypes = [ContextObj, ctypes.c_bool, ctypes.c_longlong, ctypes.c_ulonglong, Sort]
+ _lib.Z3_mk_fpa_abs.restype = Ast
+ _lib.Z3_mk_fpa_abs.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_fpa_neg.restype = Ast
+ _lib.Z3_mk_fpa_neg.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_fpa_add.restype = Ast
+ _lib.Z3_mk_fpa_add.argtypes = [ContextObj, Ast, Ast, Ast]
+ _lib.Z3_mk_fpa_sub.restype = Ast
+ _lib.Z3_mk_fpa_sub.argtypes = [ContextObj, Ast, Ast, Ast]
+ _lib.Z3_mk_fpa_mul.restype = Ast
+ _lib.Z3_mk_fpa_mul.argtypes = [ContextObj, Ast, Ast, Ast]
+ _lib.Z3_mk_fpa_div.restype = Ast
+ _lib.Z3_mk_fpa_div.argtypes = [ContextObj, Ast, Ast, Ast]
+ _lib.Z3_mk_fpa_fma.restype = Ast
+ _lib.Z3_mk_fpa_fma.argtypes = [ContextObj, Ast, Ast, Ast, Ast]
+ _lib.Z3_mk_fpa_sqrt.restype = Ast
+ _lib.Z3_mk_fpa_sqrt.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_fpa_rem.restype = Ast
+ _lib.Z3_mk_fpa_rem.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_fpa_round_to_integral.restype = Ast
+ _lib.Z3_mk_fpa_round_to_integral.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_fpa_min.restype = Ast
+ _lib.Z3_mk_fpa_min.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_fpa_max.restype = Ast
+ _lib.Z3_mk_fpa_max.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_fpa_leq.restype = Ast
+ _lib.Z3_mk_fpa_leq.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_fpa_lt.restype = Ast
+ _lib.Z3_mk_fpa_lt.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_fpa_geq.restype = Ast
+ _lib.Z3_mk_fpa_geq.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_fpa_gt.restype = Ast
+ _lib.Z3_mk_fpa_gt.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_fpa_eq.restype = Ast
+ _lib.Z3_mk_fpa_eq.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_fpa_is_normal.restype = Ast
+ _lib.Z3_mk_fpa_is_normal.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_fpa_is_subnormal.restype = Ast
+ _lib.Z3_mk_fpa_is_subnormal.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_fpa_is_zero.restype = Ast
+ _lib.Z3_mk_fpa_is_zero.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_fpa_is_infinite.restype = Ast
+ _lib.Z3_mk_fpa_is_infinite.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_fpa_is_nan.restype = Ast
+ _lib.Z3_mk_fpa_is_nan.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_fpa_is_negative.restype = Ast
+ _lib.Z3_mk_fpa_is_negative.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_fpa_is_positive.restype = Ast
+ _lib.Z3_mk_fpa_is_positive.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_fpa_to_fp_bv.restype = Ast
+ _lib.Z3_mk_fpa_to_fp_bv.argtypes = [ContextObj, Ast, Sort]
+ _lib.Z3_mk_fpa_to_fp_float.restype = Ast
+ _lib.Z3_mk_fpa_to_fp_float.argtypes = [ContextObj, Ast, Ast, Sort]
+ _lib.Z3_mk_fpa_to_fp_real.restype = Ast
+ _lib.Z3_mk_fpa_to_fp_real.argtypes = [ContextObj, Ast, Ast, Sort]
+ _lib.Z3_mk_fpa_to_fp_signed.restype = Ast
+ _lib.Z3_mk_fpa_to_fp_signed.argtypes = [ContextObj, Ast, Ast, Sort]
+ _lib.Z3_mk_fpa_to_fp_unsigned.restype = Ast
+ _lib.Z3_mk_fpa_to_fp_unsigned.argtypes = [ContextObj, Ast, Ast, Sort]
+ _lib.Z3_mk_fpa_to_ubv.restype = Ast
+ _lib.Z3_mk_fpa_to_ubv.argtypes = [ContextObj, Ast, Ast, ctypes.c_uint]
+ _lib.Z3_mk_fpa_to_sbv.restype = Ast
+ _lib.Z3_mk_fpa_to_sbv.argtypes = [ContextObj, Ast, Ast, ctypes.c_uint]
+ _lib.Z3_mk_fpa_to_real.restype = Ast
+ _lib.Z3_mk_fpa_to_real.argtypes = [ContextObj, Ast]
+ _lib.Z3_fpa_get_ebits.restype = ctypes.c_uint
+ _lib.Z3_fpa_get_ebits.argtypes = [ContextObj, Sort]
+ _lib.Z3_fpa_get_sbits.restype = ctypes.c_uint
+ _lib.Z3_fpa_get_sbits.argtypes = [ContextObj, Sort]
+ _lib.Z3_fpa_get_numeral_sign.restype = ctypes.c_bool
+ _lib.Z3_fpa_get_numeral_sign.argtypes = [ContextObj, Ast, ctypes.POINTER(ctypes.c_int)]
+ _lib.Z3_fpa_get_numeral_significand_string.restype = ctypes.c_char_p
+ _lib.Z3_fpa_get_numeral_significand_string.argtypes = [ContextObj, Ast]
+ _lib.Z3_fpa_get_numeral_significand_uint64.restype = ctypes.c_bool
+ _lib.Z3_fpa_get_numeral_significand_uint64.argtypes = [ContextObj, Ast, ctypes.POINTER(ctypes.c_ulonglong)]
+ _lib.Z3_fpa_get_numeral_exponent_string.restype = ctypes.c_char_p
+ _lib.Z3_fpa_get_numeral_exponent_string.argtypes = [ContextObj, Ast]
+ _lib.Z3_fpa_get_numeral_exponent_int64.restype = ctypes.c_bool
+ _lib.Z3_fpa_get_numeral_exponent_int64.argtypes = [ContextObj, Ast, ctypes.POINTER(ctypes.c_longlong)]
+ _lib.Z3_mk_fpa_to_ieee_bv.restype = Ast
+ _lib.Z3_mk_fpa_to_ieee_bv.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_fpa_to_fp_int_real.restype = Ast
+ _lib.Z3_mk_fpa_to_fp_int_real.argtypes = [ContextObj, Ast, Ast, Ast, Sort]
+
+def Z3_global_param_set(a0, a1):
+ lib().Z3_global_param_set(_to_ascii(a0), _to_ascii(a1))
+
+def Z3_global_param_reset_all():
+ lib().Z3_global_param_reset_all()
+
+def Z3_global_param_get(a0, a1):
+ r = lib().Z3_global_param_get(_to_ascii(a0), _to_ascii(a1))
+ return r
+
+def Z3_mk_config():
+ r = lib().Z3_mk_config()
+ return r
+
+def Z3_del_config(a0):
+ lib().Z3_del_config(a0)
+
+def Z3_set_param_value(a0, a1, a2):
+ lib().Z3_set_param_value(a0, _to_ascii(a1), _to_ascii(a2))
+
+def Z3_mk_context(a0):
+ r = lib().Z3_mk_context(a0)
+ return r
+
+def Z3_mk_context_rc(a0):
+ r = lib().Z3_mk_context_rc(a0)
+ return r
+
+def Z3_del_context(a0):
+ lib().Z3_del_context(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_inc_ref(a0, a1):
+ lib().Z3_inc_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_dec_ref(a0, a1):
+ lib().Z3_dec_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_update_param_value(a0, a1, a2):
+ lib().Z3_update_param_value(a0, _to_ascii(a1), _to_ascii(a2))
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_interrupt(a0):
+ lib().Z3_interrupt(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_mk_params(a0):
+ r = lib().Z3_mk_params(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_params_inc_ref(a0, a1):
+ lib().Z3_params_inc_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_params_dec_ref(a0, a1):
+ lib().Z3_params_dec_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_params_set_bool(a0, a1, a2, a3):
+ lib().Z3_params_set_bool(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_params_set_uint(a0, a1, a2, a3):
+ lib().Z3_params_set_uint(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_params_set_double(a0, a1, a2, a3):
+ lib().Z3_params_set_double(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_params_set_symbol(a0, a1, a2, a3):
+ lib().Z3_params_set_symbol(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_params_to_string(a0, a1):
+ r = lib().Z3_params_to_string(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_params_validate(a0, a1, a2):
+ lib().Z3_params_validate(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_param_descrs_inc_ref(a0, a1):
+ lib().Z3_param_descrs_inc_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_param_descrs_dec_ref(a0, a1):
+ lib().Z3_param_descrs_dec_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_param_descrs_get_kind(a0, a1, a2):
+ r = lib().Z3_param_descrs_get_kind(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_param_descrs_size(a0, a1):
+ r = lib().Z3_param_descrs_size(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_param_descrs_get_name(a0, a1, a2):
+ r = lib().Z3_param_descrs_get_name(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_param_descrs_get_documentation(a0, a1, a2):
+ r = lib().Z3_param_descrs_get_documentation(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_param_descrs_to_string(a0, a1):
+ r = lib().Z3_param_descrs_to_string(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_mk_int_symbol(a0, a1):
+ r = lib().Z3_mk_int_symbol(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_string_symbol(a0, a1):
+ r = lib().Z3_mk_string_symbol(a0, _to_ascii(a1))
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_uninterpreted_sort(a0, a1):
+ r = lib().Z3_mk_uninterpreted_sort(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bool_sort(a0):
+ r = lib().Z3_mk_bool_sort(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_int_sort(a0):
+ r = lib().Z3_mk_int_sort(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_real_sort(a0):
+ r = lib().Z3_mk_real_sort(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bv_sort(a0, a1):
+ r = lib().Z3_mk_bv_sort(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_finite_domain_sort(a0, a1, a2):
+ r = lib().Z3_mk_finite_domain_sort(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_array_sort(a0, a1, a2):
+ r = lib().Z3_mk_array_sort(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_tuple_sort(a0, a1, a2, a3, a4, a5, a6):
+ r = lib().Z3_mk_tuple_sort(a0, a1, a2, a3, a4, a5, a6)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_enumeration_sort(a0, a1, a2, a3, a4, a5):
+ r = lib().Z3_mk_enumeration_sort(a0, a1, a2, a3, a4, a5)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_list_sort(a0, a1, a2, a3, a4, a5, a6, a7, a8):
+ r = lib().Z3_mk_list_sort(a0, a1, a2, a3, a4, a5, a6, a7, a8)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_constructor(a0, a1, a2, a3, a4, a5, a6):
+ r = lib().Z3_mk_constructor(a0, a1, a2, a3, a4, a5, a6)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_del_constructor(a0, a1):
+ lib().Z3_del_constructor(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_mk_datatype(a0, a1, a2, a3):
+ r = lib().Z3_mk_datatype(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_constructor_list(a0, a1, a2):
+ r = lib().Z3_mk_constructor_list(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_del_constructor_list(a0, a1):
+ lib().Z3_del_constructor_list(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_mk_datatypes(a0, a1, a2, a3, a4):
+ lib().Z3_mk_datatypes(a0, a1, a2, a3, a4)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_query_constructor(a0, a1, a2, a3, a4, a5):
+ lib().Z3_query_constructor(a0, a1, a2, a3, a4, a5)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_mk_func_decl(a0, a1, a2, a3, a4):
+ r = lib().Z3_mk_func_decl(a0, a1, a2, a3, a4)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_app(a0, a1, a2, a3):
+ r = lib().Z3_mk_app(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_const(a0, a1, a2):
+ r = lib().Z3_mk_const(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fresh_func_decl(a0, a1, a2, a3, a4):
+ r = lib().Z3_mk_fresh_func_decl(a0, _to_ascii(a1), a2, a3, a4)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fresh_const(a0, a1, a2):
+ r = lib().Z3_mk_fresh_const(a0, _to_ascii(a1), a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_true(a0):
+ r = lib().Z3_mk_true(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_false(a0):
+ r = lib().Z3_mk_false(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_eq(a0, a1, a2):
+ r = lib().Z3_mk_eq(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_distinct(a0, a1, a2):
+ r = lib().Z3_mk_distinct(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_not(a0, a1):
+ r = lib().Z3_mk_not(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_ite(a0, a1, a2, a3):
+ r = lib().Z3_mk_ite(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_iff(a0, a1, a2):
+ r = lib().Z3_mk_iff(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_implies(a0, a1, a2):
+ r = lib().Z3_mk_implies(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_xor(a0, a1, a2):
+ r = lib().Z3_mk_xor(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_and(a0, a1, a2):
+ r = lib().Z3_mk_and(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_or(a0, a1, a2):
+ r = lib().Z3_mk_or(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_add(a0, a1, a2):
+ r = lib().Z3_mk_add(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_mul(a0, a1, a2):
+ r = lib().Z3_mk_mul(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_sub(a0, a1, a2):
+ r = lib().Z3_mk_sub(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_unary_minus(a0, a1):
+ r = lib().Z3_mk_unary_minus(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_div(a0, a1, a2):
+ r = lib().Z3_mk_div(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_mod(a0, a1, a2):
+ r = lib().Z3_mk_mod(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_rem(a0, a1, a2):
+ r = lib().Z3_mk_rem(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_power(a0, a1, a2):
+ r = lib().Z3_mk_power(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_lt(a0, a1, a2):
+ r = lib().Z3_mk_lt(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_le(a0, a1, a2):
+ r = lib().Z3_mk_le(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_gt(a0, a1, a2):
+ r = lib().Z3_mk_gt(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_ge(a0, a1, a2):
+ r = lib().Z3_mk_ge(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_int2real(a0, a1):
+ r = lib().Z3_mk_int2real(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_real2int(a0, a1):
+ r = lib().Z3_mk_real2int(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_is_int(a0, a1):
+ r = lib().Z3_mk_is_int(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvnot(a0, a1):
+ r = lib().Z3_mk_bvnot(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvredand(a0, a1):
+ r = lib().Z3_mk_bvredand(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvredor(a0, a1):
+ r = lib().Z3_mk_bvredor(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvand(a0, a1, a2):
+ r = lib().Z3_mk_bvand(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvor(a0, a1, a2):
+ r = lib().Z3_mk_bvor(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvxor(a0, a1, a2):
+ r = lib().Z3_mk_bvxor(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvnand(a0, a1, a2):
+ r = lib().Z3_mk_bvnand(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvnor(a0, a1, a2):
+ r = lib().Z3_mk_bvnor(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvxnor(a0, a1, a2):
+ r = lib().Z3_mk_bvxnor(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvneg(a0, a1):
+ r = lib().Z3_mk_bvneg(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvadd(a0, a1, a2):
+ r = lib().Z3_mk_bvadd(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvsub(a0, a1, a2):
+ r = lib().Z3_mk_bvsub(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvmul(a0, a1, a2):
+ r = lib().Z3_mk_bvmul(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvudiv(a0, a1, a2):
+ r = lib().Z3_mk_bvudiv(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvsdiv(a0, a1, a2):
+ r = lib().Z3_mk_bvsdiv(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvurem(a0, a1, a2):
+ r = lib().Z3_mk_bvurem(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvsrem(a0, a1, a2):
+ r = lib().Z3_mk_bvsrem(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvsmod(a0, a1, a2):
+ r = lib().Z3_mk_bvsmod(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvult(a0, a1, a2):
+ r = lib().Z3_mk_bvult(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvslt(a0, a1, a2):
+ r = lib().Z3_mk_bvslt(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvule(a0, a1, a2):
+ r = lib().Z3_mk_bvule(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvsle(a0, a1, a2):
+ r = lib().Z3_mk_bvsle(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvuge(a0, a1, a2):
+ r = lib().Z3_mk_bvuge(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvsge(a0, a1, a2):
+ r = lib().Z3_mk_bvsge(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvugt(a0, a1, a2):
+ r = lib().Z3_mk_bvugt(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvsgt(a0, a1, a2):
+ r = lib().Z3_mk_bvsgt(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_concat(a0, a1, a2):
+ r = lib().Z3_mk_concat(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_extract(a0, a1, a2, a3):
+ r = lib().Z3_mk_extract(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_sign_ext(a0, a1, a2):
+ r = lib().Z3_mk_sign_ext(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_zero_ext(a0, a1, a2):
+ r = lib().Z3_mk_zero_ext(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_repeat(a0, a1, a2):
+ r = lib().Z3_mk_repeat(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvshl(a0, a1, a2):
+ r = lib().Z3_mk_bvshl(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvlshr(a0, a1, a2):
+ r = lib().Z3_mk_bvlshr(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvashr(a0, a1, a2):
+ r = lib().Z3_mk_bvashr(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_rotate_left(a0, a1, a2):
+ r = lib().Z3_mk_rotate_left(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_rotate_right(a0, a1, a2):
+ r = lib().Z3_mk_rotate_right(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_ext_rotate_left(a0, a1, a2):
+ r = lib().Z3_mk_ext_rotate_left(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_ext_rotate_right(a0, a1, a2):
+ r = lib().Z3_mk_ext_rotate_right(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_int2bv(a0, a1, a2):
+ r = lib().Z3_mk_int2bv(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bv2int(a0, a1, a2):
+ r = lib().Z3_mk_bv2int(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvadd_no_overflow(a0, a1, a2, a3):
+ r = lib().Z3_mk_bvadd_no_overflow(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvadd_no_underflow(a0, a1, a2):
+ r = lib().Z3_mk_bvadd_no_underflow(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvsub_no_overflow(a0, a1, a2):
+ r = lib().Z3_mk_bvsub_no_overflow(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvsub_no_underflow(a0, a1, a2, a3):
+ r = lib().Z3_mk_bvsub_no_underflow(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvsdiv_no_overflow(a0, a1, a2):
+ r = lib().Z3_mk_bvsdiv_no_overflow(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvneg_no_overflow(a0, a1):
+ r = lib().Z3_mk_bvneg_no_overflow(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvmul_no_overflow(a0, a1, a2, a3):
+ r = lib().Z3_mk_bvmul_no_overflow(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvmul_no_underflow(a0, a1, a2):
+ r = lib().Z3_mk_bvmul_no_underflow(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_select(a0, a1, a2):
+ r = lib().Z3_mk_select(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_store(a0, a1, a2, a3):
+ r = lib().Z3_mk_store(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_const_array(a0, a1, a2):
+ r = lib().Z3_mk_const_array(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_map(a0, a1, a2, a3):
+ r = lib().Z3_mk_map(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_array_default(a0, a1):
+ r = lib().Z3_mk_array_default(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_set_sort(a0, a1):
+ r = lib().Z3_mk_set_sort(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_empty_set(a0, a1):
+ r = lib().Z3_mk_empty_set(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_full_set(a0, a1):
+ r = lib().Z3_mk_full_set(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_set_add(a0, a1, a2):
+ r = lib().Z3_mk_set_add(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_set_del(a0, a1, a2):
+ r = lib().Z3_mk_set_del(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_set_union(a0, a1, a2):
+ r = lib().Z3_mk_set_union(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_set_intersect(a0, a1, a2):
+ r = lib().Z3_mk_set_intersect(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_set_difference(a0, a1, a2):
+ r = lib().Z3_mk_set_difference(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_set_complement(a0, a1):
+ r = lib().Z3_mk_set_complement(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_set_member(a0, a1, a2):
+ r = lib().Z3_mk_set_member(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_set_subset(a0, a1, a2):
+ r = lib().Z3_mk_set_subset(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_array_ext(a0, a1, a2):
+ r = lib().Z3_mk_array_ext(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_numeral(a0, a1, a2):
+ r = lib().Z3_mk_numeral(a0, _to_ascii(a1), a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_real(a0, a1, a2):
+ r = lib().Z3_mk_real(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_int(a0, a1, a2):
+ r = lib().Z3_mk_int(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_unsigned_int(a0, a1, a2):
+ r = lib().Z3_mk_unsigned_int(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_int64(a0, a1, a2):
+ r = lib().Z3_mk_int64(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_unsigned_int64(a0, a1, a2):
+ r = lib().Z3_mk_unsigned_int64(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_seq_sort(a0, a1):
+ r = lib().Z3_mk_seq_sort(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_is_seq_sort(a0, a1):
+ r = lib().Z3_is_seq_sort(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_re_sort(a0, a1):
+ r = lib().Z3_mk_re_sort(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_is_re_sort(a0, a1):
+ r = lib().Z3_is_re_sort(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_string_sort(a0):
+ r = lib().Z3_mk_string_sort(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_is_string_sort(a0, a1):
+ r = lib().Z3_is_string_sort(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_string(a0, a1):
+ r = lib().Z3_mk_string(a0, _to_ascii(a1))
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_is_string(a0, a1):
+ r = lib().Z3_is_string(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_string(a0, a1):
+ r = lib().Z3_get_string(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_mk_seq_empty(a0, a1):
+ r = lib().Z3_mk_seq_empty(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_seq_unit(a0, a1):
+ r = lib().Z3_mk_seq_unit(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_seq_concat(a0, a1, a2):
+ r = lib().Z3_mk_seq_concat(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_seq_prefix(a0, a1, a2):
+ r = lib().Z3_mk_seq_prefix(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_seq_suffix(a0, a1, a2):
+ r = lib().Z3_mk_seq_suffix(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_seq_contains(a0, a1, a2):
+ r = lib().Z3_mk_seq_contains(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_seq_extract(a0, a1, a2, a3):
+ r = lib().Z3_mk_seq_extract(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_seq_replace(a0, a1, a2, a3):
+ r = lib().Z3_mk_seq_replace(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_seq_at(a0, a1, a2):
+ r = lib().Z3_mk_seq_at(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_seq_length(a0, a1):
+ r = lib().Z3_mk_seq_length(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_seq_index(a0, a1, a2, a3):
+ r = lib().Z3_mk_seq_index(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_seq_to_re(a0, a1):
+ r = lib().Z3_mk_seq_to_re(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_seq_in_re(a0, a1, a2):
+ r = lib().Z3_mk_seq_in_re(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_re_plus(a0, a1):
+ r = lib().Z3_mk_re_plus(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_re_star(a0, a1):
+ r = lib().Z3_mk_re_star(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_re_option(a0, a1):
+ r = lib().Z3_mk_re_option(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_re_union(a0, a1, a2):
+ r = lib().Z3_mk_re_union(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_re_concat(a0, a1, a2):
+ r = lib().Z3_mk_re_concat(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_pattern(a0, a1, a2):
+ r = lib().Z3_mk_pattern(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bound(a0, a1, a2):
+ r = lib().Z3_mk_bound(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_forall(a0, a1, a2, a3, a4, a5, a6, a7):
+ r = lib().Z3_mk_forall(a0, a1, a2, a3, a4, a5, a6, a7)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_exists(a0, a1, a2, a3, a4, a5, a6, a7):
+ r = lib().Z3_mk_exists(a0, a1, a2, a3, a4, a5, a6, a7)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_quantifier(a0, a1, a2, a3, a4, a5, a6, a7, a8):
+ r = lib().Z3_mk_quantifier(a0, a1, a2, a3, a4, a5, a6, a7, a8)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_quantifier_ex(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12):
+ r = lib().Z3_mk_quantifier_ex(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_forall_const(a0, a1, a2, a3, a4, a5, a6):
+ r = lib().Z3_mk_forall_const(a0, a1, a2, a3, a4, a5, a6)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_exists_const(a0, a1, a2, a3, a4, a5, a6):
+ r = lib().Z3_mk_exists_const(a0, a1, a2, a3, a4, a5, a6)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_quantifier_const(a0, a1, a2, a3, a4, a5, a6, a7):
+ r = lib().Z3_mk_quantifier_const(a0, a1, a2, a3, a4, a5, a6, a7)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_quantifier_const_ex(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11):
+ r = lib().Z3_mk_quantifier_const_ex(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_symbol_kind(a0, a1):
+ r = lib().Z3_get_symbol_kind(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_symbol_int(a0, a1):
+ r = lib().Z3_get_symbol_int(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_symbol_string(a0, a1):
+ r = lib().Z3_get_symbol_string(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_get_sort_name(a0, a1):
+ r = lib().Z3_get_sort_name(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_sort_id(a0, a1):
+ r = lib().Z3_get_sort_id(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_sort_to_ast(a0, a1):
+ r = lib().Z3_sort_to_ast(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_is_eq_sort(a0, a1, a2):
+ r = lib().Z3_is_eq_sort(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_sort_kind(a0, a1):
+ r = lib().Z3_get_sort_kind(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_bv_sort_size(a0, a1):
+ r = lib().Z3_get_bv_sort_size(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_finite_domain_sort_size(a0, a1, a2):
+ r = lib().Z3_get_finite_domain_sort_size(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_array_sort_domain(a0, a1):
+ r = lib().Z3_get_array_sort_domain(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_array_sort_range(a0, a1):
+ r = lib().Z3_get_array_sort_range(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_tuple_sort_mk_decl(a0, a1):
+ r = lib().Z3_get_tuple_sort_mk_decl(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_tuple_sort_num_fields(a0, a1):
+ r = lib().Z3_get_tuple_sort_num_fields(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_tuple_sort_field_decl(a0, a1, a2):
+ r = lib().Z3_get_tuple_sort_field_decl(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_datatype_sort_num_constructors(a0, a1):
+ r = lib().Z3_get_datatype_sort_num_constructors(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_datatype_sort_constructor(a0, a1, a2):
+ r = lib().Z3_get_datatype_sort_constructor(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_datatype_sort_recognizer(a0, a1, a2):
+ r = lib().Z3_get_datatype_sort_recognizer(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_datatype_sort_constructor_accessor(a0, a1, a2, a3):
+ r = lib().Z3_get_datatype_sort_constructor_accessor(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_datatype_update_field(a0, a1, a2, a3):
+ r = lib().Z3_datatype_update_field(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_relation_arity(a0, a1):
+ r = lib().Z3_get_relation_arity(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_relation_column(a0, a1, a2):
+ r = lib().Z3_get_relation_column(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_atmost(a0, a1, a2, a3):
+ r = lib().Z3_mk_atmost(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_pble(a0, a1, a2, a3, a4):
+ r = lib().Z3_mk_pble(a0, a1, a2, a3, a4)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_pbeq(a0, a1, a2, a3, a4):
+ r = lib().Z3_mk_pbeq(a0, a1, a2, a3, a4)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_func_decl_to_ast(a0, a1):
+ r = lib().Z3_func_decl_to_ast(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_is_eq_func_decl(a0, a1, a2):
+ r = lib().Z3_is_eq_func_decl(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_func_decl_id(a0, a1):
+ r = lib().Z3_get_func_decl_id(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_decl_name(a0, a1):
+ r = lib().Z3_get_decl_name(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_decl_kind(a0, a1):
+ r = lib().Z3_get_decl_kind(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_domain_size(a0, a1):
+ r = lib().Z3_get_domain_size(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_arity(a0, a1):
+ r = lib().Z3_get_arity(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_domain(a0, a1, a2):
+ r = lib().Z3_get_domain(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_range(a0, a1):
+ r = lib().Z3_get_range(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_decl_num_parameters(a0, a1):
+ r = lib().Z3_get_decl_num_parameters(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_decl_parameter_kind(a0, a1, a2):
+ r = lib().Z3_get_decl_parameter_kind(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_decl_int_parameter(a0, a1, a2):
+ r = lib().Z3_get_decl_int_parameter(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_decl_double_parameter(a0, a1, a2):
+ r = lib().Z3_get_decl_double_parameter(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_decl_symbol_parameter(a0, a1, a2):
+ r = lib().Z3_get_decl_symbol_parameter(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_decl_sort_parameter(a0, a1, a2):
+ r = lib().Z3_get_decl_sort_parameter(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_decl_ast_parameter(a0, a1, a2):
+ r = lib().Z3_get_decl_ast_parameter(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_decl_func_decl_parameter(a0, a1, a2):
+ r = lib().Z3_get_decl_func_decl_parameter(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_decl_rational_parameter(a0, a1, a2):
+ r = lib().Z3_get_decl_rational_parameter(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_app_to_ast(a0, a1):
+ r = lib().Z3_app_to_ast(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_app_decl(a0, a1):
+ r = lib().Z3_get_app_decl(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_app_num_args(a0, a1):
+ r = lib().Z3_get_app_num_args(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_app_arg(a0, a1, a2):
+ r = lib().Z3_get_app_arg(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_is_eq_ast(a0, a1, a2):
+ r = lib().Z3_is_eq_ast(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_ast_id(a0, a1):
+ r = lib().Z3_get_ast_id(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_ast_hash(a0, a1):
+ r = lib().Z3_get_ast_hash(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_sort(a0, a1):
+ r = lib().Z3_get_sort(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_is_well_sorted(a0, a1):
+ r = lib().Z3_is_well_sorted(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_bool_value(a0, a1):
+ r = lib().Z3_get_bool_value(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_ast_kind(a0, a1):
+ r = lib().Z3_get_ast_kind(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_is_app(a0, a1):
+ r = lib().Z3_is_app(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_is_numeral_ast(a0, a1):
+ r = lib().Z3_is_numeral_ast(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_is_algebraic_number(a0, a1):
+ r = lib().Z3_is_algebraic_number(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_to_app(a0, a1):
+ r = lib().Z3_to_app(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_to_func_decl(a0, a1):
+ r = lib().Z3_to_func_decl(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_numeral_string(a0, a1):
+ r = lib().Z3_get_numeral_string(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_get_numeral_decimal_string(a0, a1, a2):
+ r = lib().Z3_get_numeral_decimal_string(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_get_numerator(a0, a1):
+ r = lib().Z3_get_numerator(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_denominator(a0, a1):
+ r = lib().Z3_get_denominator(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_numeral_small(a0, a1, a2, a3):
+ r = lib().Z3_get_numeral_small(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_numeral_int(a0, a1, a2):
+ r = lib().Z3_get_numeral_int(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_numeral_uint(a0, a1, a2):
+ r = lib().Z3_get_numeral_uint(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_numeral_uint64(a0, a1, a2):
+ r = lib().Z3_get_numeral_uint64(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_numeral_int64(a0, a1, a2):
+ r = lib().Z3_get_numeral_int64(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_numeral_rational_int64(a0, a1, a2, a3):
+ r = lib().Z3_get_numeral_rational_int64(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_algebraic_number_lower(a0, a1, a2):
+ r = lib().Z3_get_algebraic_number_lower(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_algebraic_number_upper(a0, a1, a2):
+ r = lib().Z3_get_algebraic_number_upper(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_pattern_to_ast(a0, a1):
+ r = lib().Z3_pattern_to_ast(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_pattern_num_terms(a0, a1):
+ r = lib().Z3_get_pattern_num_terms(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_pattern(a0, a1, a2):
+ r = lib().Z3_get_pattern(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_index_value(a0, a1):
+ r = lib().Z3_get_index_value(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_is_quantifier_forall(a0, a1):
+ r = lib().Z3_is_quantifier_forall(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_quantifier_weight(a0, a1):
+ r = lib().Z3_get_quantifier_weight(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_quantifier_num_patterns(a0, a1):
+ r = lib().Z3_get_quantifier_num_patterns(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_quantifier_pattern_ast(a0, a1, a2):
+ r = lib().Z3_get_quantifier_pattern_ast(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_quantifier_num_no_patterns(a0, a1):
+ r = lib().Z3_get_quantifier_num_no_patterns(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_quantifier_no_pattern_ast(a0, a1, a2):
+ r = lib().Z3_get_quantifier_no_pattern_ast(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_quantifier_num_bound(a0, a1):
+ r = lib().Z3_get_quantifier_num_bound(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_quantifier_bound_name(a0, a1, a2):
+ r = lib().Z3_get_quantifier_bound_name(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_quantifier_bound_sort(a0, a1, a2):
+ r = lib().Z3_get_quantifier_bound_sort(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_quantifier_body(a0, a1):
+ r = lib().Z3_get_quantifier_body(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_simplify(a0, a1):
+ r = lib().Z3_simplify(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_simplify_ex(a0, a1, a2):
+ r = lib().Z3_simplify_ex(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_simplify_get_help(a0):
+ r = lib().Z3_simplify_get_help(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_simplify_get_param_descrs(a0):
+ r = lib().Z3_simplify_get_param_descrs(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_update_term(a0, a1, a2, a3):
+ r = lib().Z3_update_term(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_substitute(a0, a1, a2, a3, a4):
+ r = lib().Z3_substitute(a0, a1, a2, a3, a4)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_substitute_vars(a0, a1, a2, a3):
+ r = lib().Z3_substitute_vars(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_translate(a0, a1, a2):
+ r = lib().Z3_translate(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_model_inc_ref(a0, a1):
+ lib().Z3_model_inc_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_model_dec_ref(a0, a1):
+ lib().Z3_model_dec_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_model_eval(a0, a1, a2, a3, a4):
+ r = lib().Z3_model_eval(a0, a1, a2, a3, a4)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_model_get_const_interp(a0, a1, a2):
+ r = lib().Z3_model_get_const_interp(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_model_has_interp(a0, a1, a2):
+ r = lib().Z3_model_has_interp(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_model_get_func_interp(a0, a1, a2):
+ r = lib().Z3_model_get_func_interp(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_model_get_num_consts(a0, a1):
+ r = lib().Z3_model_get_num_consts(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_model_get_const_decl(a0, a1, a2):
+ r = lib().Z3_model_get_const_decl(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_model_get_num_funcs(a0, a1):
+ r = lib().Z3_model_get_num_funcs(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_model_get_func_decl(a0, a1, a2):
+ r = lib().Z3_model_get_func_decl(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_model_get_num_sorts(a0, a1):
+ r = lib().Z3_model_get_num_sorts(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_model_get_sort(a0, a1, a2):
+ r = lib().Z3_model_get_sort(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_model_get_sort_universe(a0, a1, a2):
+ r = lib().Z3_model_get_sort_universe(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_is_as_array(a0, a1):
+ r = lib().Z3_is_as_array(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_as_array_func_decl(a0, a1):
+ r = lib().Z3_get_as_array_func_decl(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_func_interp_inc_ref(a0, a1):
+ lib().Z3_func_interp_inc_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_func_interp_dec_ref(a0, a1):
+ lib().Z3_func_interp_dec_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_func_interp_get_num_entries(a0, a1):
+ r = lib().Z3_func_interp_get_num_entries(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_func_interp_get_entry(a0, a1, a2):
+ r = lib().Z3_func_interp_get_entry(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_func_interp_get_else(a0, a1):
+ r = lib().Z3_func_interp_get_else(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_func_interp_get_arity(a0, a1):
+ r = lib().Z3_func_interp_get_arity(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_func_entry_inc_ref(a0, a1):
+ lib().Z3_func_entry_inc_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_func_entry_dec_ref(a0, a1):
+ lib().Z3_func_entry_dec_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_func_entry_get_value(a0, a1):
+ r = lib().Z3_func_entry_get_value(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_func_entry_get_num_args(a0, a1):
+ r = lib().Z3_func_entry_get_num_args(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_func_entry_get_arg(a0, a1, a2):
+ r = lib().Z3_func_entry_get_arg(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_open_log(a0):
+ r = lib().Z3_open_log(_to_ascii(a0))
+ return r
+
+def Z3_append_log(a0):
+ lib().Z3_append_log(_to_ascii(a0))
+
+def Z3_close_log():
+ lib().Z3_close_log()
+
+def Z3_toggle_warning_messages(a0):
+ lib().Z3_toggle_warning_messages(a0)
+
+def Z3_set_ast_print_mode(a0, a1):
+ lib().Z3_set_ast_print_mode(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_ast_to_string(a0, a1):
+ r = lib().Z3_ast_to_string(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_pattern_to_string(a0, a1):
+ r = lib().Z3_pattern_to_string(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_sort_to_string(a0, a1):
+ r = lib().Z3_sort_to_string(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_func_decl_to_string(a0, a1):
+ r = lib().Z3_func_decl_to_string(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_model_to_string(a0, a1):
+ r = lib().Z3_model_to_string(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_benchmark_to_smtlib_string(a0, a1, a2, a3, a4, a5, a6, a7):
+ r = lib().Z3_benchmark_to_smtlib_string(a0, _to_ascii(a1), _to_ascii(a2), _to_ascii(a3), _to_ascii(a4), a5, a6, a7)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_parse_smtlib2_string(a0, a1, a2, a3, a4, a5, a6, a7):
+ r = lib().Z3_parse_smtlib2_string(a0, _to_ascii(a1), a2, a3, a4, a5, a6, a7)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_parse_smtlib2_file(a0, a1, a2, a3, a4, a5, a6, a7):
+ r = lib().Z3_parse_smtlib2_file(a0, _to_ascii(a1), a2, a3, a4, a5, a6, a7)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_parse_smtlib_string(a0, a1, a2, a3, a4, a5, a6, a7):
+ lib().Z3_parse_smtlib_string(a0, _to_ascii(a1), a2, a3, a4, a5, a6, a7)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_parse_smtlib_file(a0, a1, a2, a3, a4, a5, a6, a7):
+ lib().Z3_parse_smtlib_file(a0, _to_ascii(a1), a2, a3, a4, a5, a6, a7)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_get_smtlib_num_formulas(a0):
+ r = lib().Z3_get_smtlib_num_formulas(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_smtlib_formula(a0, a1):
+ r = lib().Z3_get_smtlib_formula(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_smtlib_num_assumptions(a0):
+ r = lib().Z3_get_smtlib_num_assumptions(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_smtlib_assumption(a0, a1):
+ r = lib().Z3_get_smtlib_assumption(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_smtlib_num_decls(a0):
+ r = lib().Z3_get_smtlib_num_decls(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_smtlib_decl(a0, a1):
+ r = lib().Z3_get_smtlib_decl(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_smtlib_num_sorts(a0):
+ r = lib().Z3_get_smtlib_num_sorts(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_smtlib_sort(a0, a1):
+ r = lib().Z3_get_smtlib_sort(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_smtlib_error(a0):
+ r = lib().Z3_get_smtlib_error(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_get_error_code(a0):
+ r = lib().Z3_get_error_code(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_set_error(a0, a1):
+ lib().Z3_set_error(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_get_error_msg(a0, a1):
+ r = lib().Z3_get_error_msg(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_get_version(a0, a1, a2, a3):
+ lib().Z3_get_version(a0, a1, a2, a3)
+
+def Z3_get_full_version():
+ r = lib().Z3_get_full_version()
+ return _to_pystr(r)
+
+def Z3_enable_trace(a0):
+ lib().Z3_enable_trace(_to_ascii(a0))
+
+def Z3_disable_trace(a0):
+ lib().Z3_disable_trace(_to_ascii(a0))
+
+def Z3_reset_memory():
+ lib().Z3_reset_memory()
+
+def Z3_finalize_memory():
+ lib().Z3_finalize_memory()
+
+def Z3_mk_goal(a0, a1, a2, a3):
+ r = lib().Z3_mk_goal(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_goal_inc_ref(a0, a1):
+ lib().Z3_goal_inc_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_goal_dec_ref(a0, a1):
+ lib().Z3_goal_dec_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_goal_precision(a0, a1):
+ r = lib().Z3_goal_precision(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_goal_assert(a0, a1, a2):
+ lib().Z3_goal_assert(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_goal_inconsistent(a0, a1):
+ r = lib().Z3_goal_inconsistent(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_goal_depth(a0, a1):
+ r = lib().Z3_goal_depth(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_goal_reset(a0, a1):
+ lib().Z3_goal_reset(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_goal_size(a0, a1):
+ r = lib().Z3_goal_size(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_goal_formula(a0, a1, a2):
+ r = lib().Z3_goal_formula(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_goal_num_exprs(a0, a1):
+ r = lib().Z3_goal_num_exprs(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_goal_is_decided_sat(a0, a1):
+ r = lib().Z3_goal_is_decided_sat(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_goal_is_decided_unsat(a0, a1):
+ r = lib().Z3_goal_is_decided_unsat(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_goal_translate(a0, a1, a2):
+ r = lib().Z3_goal_translate(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_goal_to_string(a0, a1):
+ r = lib().Z3_goal_to_string(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_mk_tactic(a0, a1):
+ r = lib().Z3_mk_tactic(a0, _to_ascii(a1))
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_tactic_inc_ref(a0, a1):
+ lib().Z3_tactic_inc_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_tactic_dec_ref(a0, a1):
+ lib().Z3_tactic_dec_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_mk_probe(a0, a1):
+ r = lib().Z3_mk_probe(a0, _to_ascii(a1))
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_probe_inc_ref(a0, a1):
+ lib().Z3_probe_inc_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_probe_dec_ref(a0, a1):
+ lib().Z3_probe_dec_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_tactic_and_then(a0, a1, a2):
+ r = lib().Z3_tactic_and_then(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_tactic_or_else(a0, a1, a2):
+ r = lib().Z3_tactic_or_else(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_tactic_par_or(a0, a1, a2):
+ r = lib().Z3_tactic_par_or(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_tactic_par_and_then(a0, a1, a2):
+ r = lib().Z3_tactic_par_and_then(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_tactic_try_for(a0, a1, a2):
+ r = lib().Z3_tactic_try_for(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_tactic_when(a0, a1, a2):
+ r = lib().Z3_tactic_when(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_tactic_cond(a0, a1, a2, a3):
+ r = lib().Z3_tactic_cond(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_tactic_repeat(a0, a1, a2):
+ r = lib().Z3_tactic_repeat(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_tactic_skip(a0):
+ r = lib().Z3_tactic_skip(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_tactic_fail(a0):
+ r = lib().Z3_tactic_fail(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_tactic_fail_if(a0, a1):
+ r = lib().Z3_tactic_fail_if(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_tactic_fail_if_not_decided(a0):
+ r = lib().Z3_tactic_fail_if_not_decided(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_tactic_using_params(a0, a1, a2):
+ r = lib().Z3_tactic_using_params(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_probe_const(a0, a1):
+ r = lib().Z3_probe_const(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_probe_lt(a0, a1, a2):
+ r = lib().Z3_probe_lt(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_probe_gt(a0, a1, a2):
+ r = lib().Z3_probe_gt(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_probe_le(a0, a1, a2):
+ r = lib().Z3_probe_le(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_probe_ge(a0, a1, a2):
+ r = lib().Z3_probe_ge(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_probe_eq(a0, a1, a2):
+ r = lib().Z3_probe_eq(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_probe_and(a0, a1, a2):
+ r = lib().Z3_probe_and(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_probe_or(a0, a1, a2):
+ r = lib().Z3_probe_or(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_probe_not(a0, a1):
+ r = lib().Z3_probe_not(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_num_tactics(a0):
+ r = lib().Z3_get_num_tactics(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_tactic_name(a0, a1):
+ r = lib().Z3_get_tactic_name(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_get_num_probes(a0):
+ r = lib().Z3_get_num_probes(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_probe_name(a0, a1):
+ r = lib().Z3_get_probe_name(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_tactic_get_help(a0, a1):
+ r = lib().Z3_tactic_get_help(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_tactic_get_param_descrs(a0, a1):
+ r = lib().Z3_tactic_get_param_descrs(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_tactic_get_descr(a0, a1):
+ r = lib().Z3_tactic_get_descr(a0, _to_ascii(a1))
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_probe_get_descr(a0, a1):
+ r = lib().Z3_probe_get_descr(a0, _to_ascii(a1))
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_probe_apply(a0, a1, a2):
+ r = lib().Z3_probe_apply(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_tactic_apply(a0, a1, a2):
+ r = lib().Z3_tactic_apply(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_tactic_apply_ex(a0, a1, a2, a3):
+ r = lib().Z3_tactic_apply_ex(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_apply_result_inc_ref(a0, a1):
+ lib().Z3_apply_result_inc_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_apply_result_dec_ref(a0, a1):
+ lib().Z3_apply_result_dec_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_apply_result_to_string(a0, a1):
+ r = lib().Z3_apply_result_to_string(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_apply_result_get_num_subgoals(a0, a1):
+ r = lib().Z3_apply_result_get_num_subgoals(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_apply_result_get_subgoal(a0, a1, a2):
+ r = lib().Z3_apply_result_get_subgoal(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_apply_result_convert_model(a0, a1, a2, a3):
+ r = lib().Z3_apply_result_convert_model(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_solver(a0):
+ r = lib().Z3_mk_solver(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_simple_solver(a0):
+ r = lib().Z3_mk_simple_solver(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_solver_for_logic(a0, a1):
+ r = lib().Z3_mk_solver_for_logic(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_solver_from_tactic(a0, a1):
+ r = lib().Z3_mk_solver_from_tactic(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_solver_translate(a0, a1, a2):
+ r = lib().Z3_solver_translate(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_solver_get_help(a0, a1):
+ r = lib().Z3_solver_get_help(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_solver_get_param_descrs(a0, a1):
+ r = lib().Z3_solver_get_param_descrs(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_solver_set_params(a0, a1, a2):
+ lib().Z3_solver_set_params(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_solver_inc_ref(a0, a1):
+ lib().Z3_solver_inc_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_solver_dec_ref(a0, a1):
+ lib().Z3_solver_dec_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_solver_push(a0, a1):
+ lib().Z3_solver_push(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_solver_pop(a0, a1, a2):
+ lib().Z3_solver_pop(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_solver_reset(a0, a1):
+ lib().Z3_solver_reset(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_solver_get_num_scopes(a0, a1):
+ r = lib().Z3_solver_get_num_scopes(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_solver_assert(a0, a1, a2):
+ lib().Z3_solver_assert(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_solver_assert_and_track(a0, a1, a2, a3):
+ lib().Z3_solver_assert_and_track(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_solver_get_assertions(a0, a1):
+ r = lib().Z3_solver_get_assertions(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_solver_check(a0, a1):
+ r = lib().Z3_solver_check(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_solver_check_assumptions(a0, a1, a2, a3):
+ r = lib().Z3_solver_check_assumptions(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_implied_equalities(a0, a1, a2, a3, a4):
+ r = lib().Z3_get_implied_equalities(a0, a1, a2, a3, a4)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_solver_get_consequences(a0, a1, a2, a3, a4):
+ r = lib().Z3_solver_get_consequences(a0, a1, a2, a3, a4)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_solver_get_model(a0, a1):
+ r = lib().Z3_solver_get_model(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_solver_get_proof(a0, a1):
+ r = lib().Z3_solver_get_proof(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_solver_get_unsat_core(a0, a1):
+ r = lib().Z3_solver_get_unsat_core(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_solver_get_reason_unknown(a0, a1):
+ r = lib().Z3_solver_get_reason_unknown(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_solver_get_statistics(a0, a1):
+ r = lib().Z3_solver_get_statistics(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_solver_to_string(a0, a1):
+ r = lib().Z3_solver_to_string(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_stats_to_string(a0, a1):
+ r = lib().Z3_stats_to_string(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_stats_inc_ref(a0, a1):
+ lib().Z3_stats_inc_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_stats_dec_ref(a0, a1):
+ lib().Z3_stats_dec_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_stats_size(a0, a1):
+ r = lib().Z3_stats_size(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_stats_get_key(a0, a1, a2):
+ r = lib().Z3_stats_get_key(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_stats_is_uint(a0, a1, a2):
+ r = lib().Z3_stats_is_uint(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_stats_is_double(a0, a1, a2):
+ r = lib().Z3_stats_is_double(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_stats_get_uint_value(a0, a1, a2):
+ r = lib().Z3_stats_get_uint_value(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_stats_get_double_value(a0, a1, a2):
+ r = lib().Z3_stats_get_double_value(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_estimated_alloc_size():
+ r = lib().Z3_get_estimated_alloc_size()
+ return r
+
+def Z3_mk_ast_vector(a0):
+ r = lib().Z3_mk_ast_vector(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_ast_vector_inc_ref(a0, a1):
+ lib().Z3_ast_vector_inc_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_ast_vector_dec_ref(a0, a1):
+ lib().Z3_ast_vector_dec_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_ast_vector_size(a0, a1):
+ r = lib().Z3_ast_vector_size(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_ast_vector_get(a0, a1, a2):
+ r = lib().Z3_ast_vector_get(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_ast_vector_set(a0, a1, a2, a3):
+ lib().Z3_ast_vector_set(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_ast_vector_resize(a0, a1, a2):
+ lib().Z3_ast_vector_resize(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_ast_vector_push(a0, a1, a2):
+ lib().Z3_ast_vector_push(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_ast_vector_translate(a0, a1, a2):
+ r = lib().Z3_ast_vector_translate(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_ast_vector_to_string(a0, a1):
+ r = lib().Z3_ast_vector_to_string(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_mk_ast_map(a0):
+ r = lib().Z3_mk_ast_map(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_ast_map_inc_ref(a0, a1):
+ lib().Z3_ast_map_inc_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_ast_map_dec_ref(a0, a1):
+ lib().Z3_ast_map_dec_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_ast_map_contains(a0, a1, a2):
+ r = lib().Z3_ast_map_contains(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_ast_map_find(a0, a1, a2):
+ r = lib().Z3_ast_map_find(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_ast_map_insert(a0, a1, a2, a3):
+ lib().Z3_ast_map_insert(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_ast_map_erase(a0, a1, a2):
+ lib().Z3_ast_map_erase(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_ast_map_reset(a0, a1):
+ lib().Z3_ast_map_reset(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_ast_map_size(a0, a1):
+ r = lib().Z3_ast_map_size(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_ast_map_keys(a0, a1):
+ r = lib().Z3_ast_map_keys(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_ast_map_to_string(a0, a1):
+ r = lib().Z3_ast_map_to_string(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_algebraic_is_value(a0, a1):
+ r = lib().Z3_algebraic_is_value(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_algebraic_is_pos(a0, a1):
+ r = lib().Z3_algebraic_is_pos(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_algebraic_is_neg(a0, a1):
+ r = lib().Z3_algebraic_is_neg(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_algebraic_is_zero(a0, a1):
+ r = lib().Z3_algebraic_is_zero(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_algebraic_sign(a0, a1):
+ r = lib().Z3_algebraic_sign(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_algebraic_add(a0, a1, a2):
+ r = lib().Z3_algebraic_add(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_algebraic_sub(a0, a1, a2):
+ r = lib().Z3_algebraic_sub(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_algebraic_mul(a0, a1, a2):
+ r = lib().Z3_algebraic_mul(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_algebraic_div(a0, a1, a2):
+ r = lib().Z3_algebraic_div(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_algebraic_root(a0, a1, a2):
+ r = lib().Z3_algebraic_root(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_algebraic_power(a0, a1, a2):
+ r = lib().Z3_algebraic_power(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_algebraic_lt(a0, a1, a2):
+ r = lib().Z3_algebraic_lt(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_algebraic_gt(a0, a1, a2):
+ r = lib().Z3_algebraic_gt(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_algebraic_le(a0, a1, a2):
+ r = lib().Z3_algebraic_le(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_algebraic_ge(a0, a1, a2):
+ r = lib().Z3_algebraic_ge(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_algebraic_eq(a0, a1, a2):
+ r = lib().Z3_algebraic_eq(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_algebraic_neq(a0, a1, a2):
+ r = lib().Z3_algebraic_neq(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_algebraic_roots(a0, a1, a2, a3):
+ r = lib().Z3_algebraic_roots(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_algebraic_eval(a0, a1, a2, a3):
+ r = lib().Z3_algebraic_eval(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_polynomial_subresultants(a0, a1, a2, a3):
+ r = lib().Z3_polynomial_subresultants(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_rcf_del(a0, a1):
+ lib().Z3_rcf_del(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_rcf_mk_rational(a0, a1):
+ r = lib().Z3_rcf_mk_rational(a0, _to_ascii(a1))
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_rcf_mk_small_int(a0, a1):
+ r = lib().Z3_rcf_mk_small_int(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_rcf_mk_pi(a0):
+ r = lib().Z3_rcf_mk_pi(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_rcf_mk_e(a0):
+ r = lib().Z3_rcf_mk_e(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_rcf_mk_infinitesimal(a0):
+ r = lib().Z3_rcf_mk_infinitesimal(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_rcf_mk_roots(a0, a1, a2, a3):
+ r = lib().Z3_rcf_mk_roots(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_rcf_add(a0, a1, a2):
+ r = lib().Z3_rcf_add(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_rcf_sub(a0, a1, a2):
+ r = lib().Z3_rcf_sub(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_rcf_mul(a0, a1, a2):
+ r = lib().Z3_rcf_mul(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_rcf_div(a0, a1, a2):
+ r = lib().Z3_rcf_div(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_rcf_neg(a0, a1):
+ r = lib().Z3_rcf_neg(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_rcf_inv(a0, a1):
+ r = lib().Z3_rcf_inv(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_rcf_power(a0, a1, a2):
+ r = lib().Z3_rcf_power(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_rcf_lt(a0, a1, a2):
+ r = lib().Z3_rcf_lt(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_rcf_gt(a0, a1, a2):
+ r = lib().Z3_rcf_gt(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_rcf_le(a0, a1, a2):
+ r = lib().Z3_rcf_le(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_rcf_ge(a0, a1, a2):
+ r = lib().Z3_rcf_ge(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_rcf_eq(a0, a1, a2):
+ r = lib().Z3_rcf_eq(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_rcf_neq(a0, a1, a2):
+ r = lib().Z3_rcf_neq(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_rcf_num_to_string(a0, a1, a2, a3):
+ r = lib().Z3_rcf_num_to_string(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_rcf_num_to_decimal_string(a0, a1, a2):
+ r = lib().Z3_rcf_num_to_decimal_string(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_rcf_get_numerator_denominator(a0, a1, a2, a3):
+ lib().Z3_rcf_get_numerator_denominator(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_mk_fixedpoint(a0):
+ r = lib().Z3_mk_fixedpoint(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_fixedpoint_inc_ref(a0, a1):
+ lib().Z3_fixedpoint_inc_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_fixedpoint_dec_ref(a0, a1):
+ lib().Z3_fixedpoint_dec_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_fixedpoint_add_rule(a0, a1, a2, a3):
+ lib().Z3_fixedpoint_add_rule(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_fixedpoint_add_fact(a0, a1, a2, a3, a4):
+ lib().Z3_fixedpoint_add_fact(a0, a1, a2, a3, a4)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_fixedpoint_assert(a0, a1, a2):
+ lib().Z3_fixedpoint_assert(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_fixedpoint_query(a0, a1, a2):
+ r = lib().Z3_fixedpoint_query(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_fixedpoint_query_relations(a0, a1, a2, a3):
+ r = lib().Z3_fixedpoint_query_relations(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_fixedpoint_get_answer(a0, a1):
+ r = lib().Z3_fixedpoint_get_answer(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_fixedpoint_get_reason_unknown(a0, a1):
+ r = lib().Z3_fixedpoint_get_reason_unknown(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_fixedpoint_update_rule(a0, a1, a2, a3):
+ lib().Z3_fixedpoint_update_rule(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_fixedpoint_get_num_levels(a0, a1, a2):
+ r = lib().Z3_fixedpoint_get_num_levels(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_fixedpoint_get_cover_delta(a0, a1, a2, a3):
+ r = lib().Z3_fixedpoint_get_cover_delta(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_fixedpoint_add_cover(a0, a1, a2, a3, a4):
+ lib().Z3_fixedpoint_add_cover(a0, a1, a2, a3, a4)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_fixedpoint_get_statistics(a0, a1):
+ r = lib().Z3_fixedpoint_get_statistics(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_fixedpoint_register_relation(a0, a1, a2):
+ lib().Z3_fixedpoint_register_relation(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_fixedpoint_set_predicate_representation(a0, a1, a2, a3, a4):
+ lib().Z3_fixedpoint_set_predicate_representation(a0, a1, a2, a3, a4)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_fixedpoint_get_rules(a0, a1):
+ r = lib().Z3_fixedpoint_get_rules(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_fixedpoint_get_assertions(a0, a1):
+ r = lib().Z3_fixedpoint_get_assertions(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_fixedpoint_set_params(a0, a1, a2):
+ lib().Z3_fixedpoint_set_params(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_fixedpoint_get_help(a0, a1):
+ r = lib().Z3_fixedpoint_get_help(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_fixedpoint_get_param_descrs(a0, a1):
+ r = lib().Z3_fixedpoint_get_param_descrs(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_fixedpoint_to_string(a0, a1, a2, a3):
+ r = lib().Z3_fixedpoint_to_string(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_fixedpoint_from_string(a0, a1, a2):
+ r = lib().Z3_fixedpoint_from_string(a0, a1, _to_ascii(a2))
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_fixedpoint_from_file(a0, a1, a2):
+ r = lib().Z3_fixedpoint_from_file(a0, a1, _to_ascii(a2))
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_fixedpoint_push(a0, a1):
+ lib().Z3_fixedpoint_push(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_fixedpoint_pop(a0, a1):
+ lib().Z3_fixedpoint_pop(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_mk_optimize(a0):
+ r = lib().Z3_mk_optimize(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_optimize_inc_ref(a0, a1):
+ lib().Z3_optimize_inc_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_optimize_dec_ref(a0, a1):
+ lib().Z3_optimize_dec_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_optimize_assert(a0, a1, a2):
+ lib().Z3_optimize_assert(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_optimize_assert_soft(a0, a1, a2, a3, a4):
+ r = lib().Z3_optimize_assert_soft(a0, a1, a2, _to_ascii(a3), a4)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_optimize_maximize(a0, a1, a2):
+ r = lib().Z3_optimize_maximize(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_optimize_minimize(a0, a1, a2):
+ r = lib().Z3_optimize_minimize(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_optimize_push(a0, a1):
+ lib().Z3_optimize_push(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_optimize_pop(a0, a1):
+ lib().Z3_optimize_pop(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_optimize_check(a0, a1):
+ r = lib().Z3_optimize_check(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_optimize_get_reason_unknown(a0, a1):
+ r = lib().Z3_optimize_get_reason_unknown(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_optimize_get_model(a0, a1):
+ r = lib().Z3_optimize_get_model(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_optimize_set_params(a0, a1, a2):
+ lib().Z3_optimize_set_params(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_optimize_get_param_descrs(a0, a1):
+ r = lib().Z3_optimize_get_param_descrs(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_optimize_get_lower(a0, a1, a2):
+ r = lib().Z3_optimize_get_lower(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_optimize_get_upper(a0, a1, a2):
+ r = lib().Z3_optimize_get_upper(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_optimize_to_string(a0, a1):
+ r = lib().Z3_optimize_to_string(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_optimize_from_string(a0, a1, a2):
+ lib().Z3_optimize_from_string(a0, a1, _to_ascii(a2))
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_optimize_from_file(a0, a1, a2):
+ lib().Z3_optimize_from_file(a0, a1, _to_ascii(a2))
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_optimize_get_help(a0, a1):
+ r = lib().Z3_optimize_get_help(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_optimize_get_statistics(a0, a1):
+ r = lib().Z3_optimize_get_statistics(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_optimize_get_assertions(a0, a1):
+ r = lib().Z3_optimize_get_assertions(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_optimize_get_objectives(a0, a1):
+ r = lib().Z3_optimize_get_objectives(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_interpolant(a0, a1):
+ r = lib().Z3_mk_interpolant(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_interpolation_context(a0):
+ r = lib().Z3_mk_interpolation_context(a0)
+ return r
+
+def Z3_get_interpolant(a0, a1, a2, a3):
+ r = lib().Z3_get_interpolant(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_compute_interpolant(a0, a1, a2, a3, a4):
+ r = lib().Z3_compute_interpolant(a0, a1, a2, a3, a4)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_interpolation_profile(a0):
+ r = lib().Z3_interpolation_profile(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_read_interpolation_problem(a0, a1, a2, a3, a4, a5, a6, a7):
+ r = lib().Z3_read_interpolation_problem(a0, a1, a2, a3, _to_ascii(a4), _to_ascii(a5), a6, a7)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_check_interpolant(a0, a1, a2, a3, a4, a5, a6, a7):
+ r = lib().Z3_check_interpolant(a0, a1, a2, a3, a4, _to_ascii(a5), a6, a7)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_write_interpolation_problem(a0, a1, a2, a3, a4, a5, a6):
+ lib().Z3_write_interpolation_problem(a0, a1, a2, a3, _to_ascii(a4), a5, a6)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_mk_fpa_rounding_mode_sort(a0):
+ r = lib().Z3_mk_fpa_rounding_mode_sort(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_round_nearest_ties_to_even(a0):
+ r = lib().Z3_mk_fpa_round_nearest_ties_to_even(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_rne(a0):
+ r = lib().Z3_mk_fpa_rne(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_round_nearest_ties_to_away(a0):
+ r = lib().Z3_mk_fpa_round_nearest_ties_to_away(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_rna(a0):
+ r = lib().Z3_mk_fpa_rna(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_round_toward_positive(a0):
+ r = lib().Z3_mk_fpa_round_toward_positive(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_rtp(a0):
+ r = lib().Z3_mk_fpa_rtp(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_round_toward_negative(a0):
+ r = lib().Z3_mk_fpa_round_toward_negative(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_rtn(a0):
+ r = lib().Z3_mk_fpa_rtn(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_round_toward_zero(a0):
+ r = lib().Z3_mk_fpa_round_toward_zero(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_rtz(a0):
+ r = lib().Z3_mk_fpa_rtz(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_sort(a0, a1, a2):
+ r = lib().Z3_mk_fpa_sort(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_sort_half(a0):
+ r = lib().Z3_mk_fpa_sort_half(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_sort_16(a0):
+ r = lib().Z3_mk_fpa_sort_16(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_sort_single(a0):
+ r = lib().Z3_mk_fpa_sort_single(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_sort_32(a0):
+ r = lib().Z3_mk_fpa_sort_32(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_sort_double(a0):
+ r = lib().Z3_mk_fpa_sort_double(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_sort_64(a0):
+ r = lib().Z3_mk_fpa_sort_64(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_sort_quadruple(a0):
+ r = lib().Z3_mk_fpa_sort_quadruple(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_sort_128(a0):
+ r = lib().Z3_mk_fpa_sort_128(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_nan(a0, a1):
+ r = lib().Z3_mk_fpa_nan(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_inf(a0, a1, a2):
+ r = lib().Z3_mk_fpa_inf(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_zero(a0, a1, a2):
+ r = lib().Z3_mk_fpa_zero(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_fp(a0, a1, a2, a3):
+ r = lib().Z3_mk_fpa_fp(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_numeral_float(a0, a1, a2):
+ r = lib().Z3_mk_fpa_numeral_float(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_numeral_double(a0, a1, a2):
+ r = lib().Z3_mk_fpa_numeral_double(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_numeral_int(a0, a1, a2):
+ r = lib().Z3_mk_fpa_numeral_int(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_numeral_int_uint(a0, a1, a2, a3, a4):
+ r = lib().Z3_mk_fpa_numeral_int_uint(a0, a1, a2, a3, a4)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_numeral_int64_uint64(a0, a1, a2, a3, a4):
+ r = lib().Z3_mk_fpa_numeral_int64_uint64(a0, a1, a2, a3, a4)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_abs(a0, a1):
+ r = lib().Z3_mk_fpa_abs(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_neg(a0, a1):
+ r = lib().Z3_mk_fpa_neg(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_add(a0, a1, a2, a3):
+ r = lib().Z3_mk_fpa_add(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_sub(a0, a1, a2, a3):
+ r = lib().Z3_mk_fpa_sub(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_mul(a0, a1, a2, a3):
+ r = lib().Z3_mk_fpa_mul(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_div(a0, a1, a2, a3):
+ r = lib().Z3_mk_fpa_div(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_fma(a0, a1, a2, a3, a4):
+ r = lib().Z3_mk_fpa_fma(a0, a1, a2, a3, a4)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_sqrt(a0, a1, a2):
+ r = lib().Z3_mk_fpa_sqrt(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_rem(a0, a1, a2):
+ r = lib().Z3_mk_fpa_rem(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_round_to_integral(a0, a1, a2):
+ r = lib().Z3_mk_fpa_round_to_integral(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_min(a0, a1, a2):
+ r = lib().Z3_mk_fpa_min(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_max(a0, a1, a2):
+ r = lib().Z3_mk_fpa_max(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_leq(a0, a1, a2):
+ r = lib().Z3_mk_fpa_leq(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_lt(a0, a1, a2):
+ r = lib().Z3_mk_fpa_lt(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_geq(a0, a1, a2):
+ r = lib().Z3_mk_fpa_geq(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_gt(a0, a1, a2):
+ r = lib().Z3_mk_fpa_gt(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_eq(a0, a1, a2):
+ r = lib().Z3_mk_fpa_eq(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_is_normal(a0, a1):
+ r = lib().Z3_mk_fpa_is_normal(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_is_subnormal(a0, a1):
+ r = lib().Z3_mk_fpa_is_subnormal(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_is_zero(a0, a1):
+ r = lib().Z3_mk_fpa_is_zero(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_is_infinite(a0, a1):
+ r = lib().Z3_mk_fpa_is_infinite(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_is_nan(a0, a1):
+ r = lib().Z3_mk_fpa_is_nan(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_is_negative(a0, a1):
+ r = lib().Z3_mk_fpa_is_negative(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_is_positive(a0, a1):
+ r = lib().Z3_mk_fpa_is_positive(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_to_fp_bv(a0, a1, a2):
+ r = lib().Z3_mk_fpa_to_fp_bv(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_to_fp_float(a0, a1, a2, a3):
+ r = lib().Z3_mk_fpa_to_fp_float(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_to_fp_real(a0, a1, a2, a3):
+ r = lib().Z3_mk_fpa_to_fp_real(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_to_fp_signed(a0, a1, a2, a3):
+ r = lib().Z3_mk_fpa_to_fp_signed(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_to_fp_unsigned(a0, a1, a2, a3):
+ r = lib().Z3_mk_fpa_to_fp_unsigned(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_to_ubv(a0, a1, a2, a3):
+ r = lib().Z3_mk_fpa_to_ubv(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_to_sbv(a0, a1, a2, a3):
+ r = lib().Z3_mk_fpa_to_sbv(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_to_real(a0, a1):
+ r = lib().Z3_mk_fpa_to_real(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_fpa_get_ebits(a0, a1):
+ r = lib().Z3_fpa_get_ebits(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_fpa_get_sbits(a0, a1):
+ r = lib().Z3_fpa_get_sbits(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_fpa_get_numeral_sign(a0, a1, a2):
+ r = lib().Z3_fpa_get_numeral_sign(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_fpa_get_numeral_significand_string(a0, a1):
+ r = lib().Z3_fpa_get_numeral_significand_string(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_fpa_get_numeral_significand_uint64(a0, a1, a2):
+ r = lib().Z3_fpa_get_numeral_significand_uint64(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_fpa_get_numeral_exponent_string(a0, a1):
+ r = lib().Z3_fpa_get_numeral_exponent_string(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_fpa_get_numeral_exponent_int64(a0, a1, a2):
+ r = lib().Z3_fpa_get_numeral_exponent_int64(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_to_ieee_bv(a0, a1):
+ r = lib().Z3_mk_fpa_to_ieee_bv(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_to_fp_int_real(a0, a1, a2, a3, a4):
+ r = lib().Z3_mk_fpa_to_fp_int_real(a0, a1, a2, a3, a4)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
diff --git a/rba.tool.core/lib/z3/python/z3/z3num.py b/rba.tool.core/lib/z3/python/z3/z3num.py
new file mode 100644
index 0000000..b1af58d
--- /dev/null
+++ b/rba.tool.core/lib/z3/python/z3/z3num.py
@@ -0,0 +1,577 @@
+############################################
+# Copyright (c) 2012 Microsoft Corporation
+#
+# Z3 Python interface for Z3 numerals
+#
+# Author: Leonardo de Moura (leonardo)
+############################################
+from .z3 import *
+from .z3core import *
+from .z3printer import *
+from fractions import Fraction
+
+from .z3 import _get_ctx
+
+def _to_numeral(num, ctx=None):
+ if isinstance(num, Numeral):
+ return num
+ else:
+ return Numeral(num, ctx)
+
+class Numeral:
+ """
+ A Z3 numeral can be used to perform computations over arbitrary
+ precision integers, rationals and real algebraic numbers.
+ It also automatically converts python numeric values.
+
+ >>> Numeral(2)
+ 2
+ >>> Numeral("3/2") + 1
+ 5/2
+ >>> Numeral(Sqrt(2))
+ 1.4142135623?
+ >>> Numeral(Sqrt(2)) + 2
+ 3.4142135623?
+ >>> Numeral(Sqrt(2)) + Numeral(Sqrt(3))
+ 3.1462643699?
+
+ Z3 numerals can be used to perform computations with
+ values in a Z3 model.
+
+ >>> s = Solver()
+ >>> x = Real('x')
+ >>> s.add(x*x == 2)
+ >>> s.add(x > 0)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> m[x]
+ 1.4142135623?
+ >>> m[x] + 1
+ 1.4142135623? + 1
+
+ The previous result is a Z3 expression.
+
+ >>> (m[x] + 1).sexpr()
+ '(+ (root-obj (+ (^ x 2) (- 2)) 2) 1.0)'
+
+ >>> Numeral(m[x]) + 1
+ 2.4142135623?
+ >>> Numeral(m[x]).is_pos()
+ True
+ >>> Numeral(m[x])**2
+ 2
+
+ We can also isolate the roots of polynomials.
+
+ >>> x0, x1, x2 = RealVarVector(3)
+ >>> r0 = isolate_roots(x0**5 - x0 - 1)
+ >>> r0
+ [1.1673039782?]
+
+ In the following example, we are isolating the roots
+ of a univariate polynomial (on x1) obtained after substituting
+ x0 -> r0[0]
+
+ >>> r1 = isolate_roots(x1**2 - x0 + 1, [ r0[0] ])
+ >>> r1
+ [-0.4090280898?, 0.4090280898?]
+
+ Similarly, in the next example we isolate the roots of
+ a univariate polynomial (on x2) obtained after substituting
+ x0 -> r0[0] and x1 -> r1[0]
+
+ >>> isolate_roots(x1*x2 + x0, [ r0[0], r1[0] ])
+ [2.8538479564?]
+
+ """
+ def __init__(self, num, ctx=None):
+ if isinstance(num, Ast):
+ self.ast = num
+ self.ctx = _get_ctx(ctx)
+ elif isinstance(num, RatNumRef) or isinstance(num, AlgebraicNumRef):
+ self.ast = num.ast
+ self.ctx = num.ctx
+ elif isinstance(num, ArithRef):
+ r = simplify(num)
+ self.ast = r.ast
+ self.ctx = r.ctx
+ else:
+ v = RealVal(num, ctx)
+ self.ast = v.ast
+ self.ctx = v.ctx
+ Z3_inc_ref(self.ctx_ref(), self.as_ast())
+ assert Z3_algebraic_is_value(self.ctx_ref(), self.ast)
+
+ def __del__(self):
+ Z3_dec_ref(self.ctx_ref(), self.as_ast())
+
+ def is_integer(self):
+ """ Return True if the numeral is integer.
+
+ >>> Numeral(2).is_integer()
+ True
+ >>> (Numeral(Sqrt(2)) * Numeral(Sqrt(2))).is_integer()
+ True
+ >>> Numeral(Sqrt(2)).is_integer()
+ False
+ >>> Numeral("2/3").is_integer()
+ False
+ """
+ return self.is_rational() and self.denominator() == 1
+
+ def is_rational(self):
+ """ Return True if the numeral is rational.
+
+ >>> Numeral(2).is_rational()
+ True
+ >>> Numeral("2/3").is_rational()
+ True
+ >>> Numeral(Sqrt(2)).is_rational()
+ False
+
+ """
+ return Z3_get_ast_kind(self.ctx_ref(), self.as_ast()) == Z3_NUMERAL_AST
+
+ def denominator(self):
+ """ Return the denominator if `self` is rational.
+
+ >>> Numeral("2/3").denominator()
+ 3
+ """
+ assert(self.is_rational())
+ return Numeral(Z3_get_denominator(self.ctx_ref(), self.as_ast()), self.ctx)
+
+ def numerator(self):
+ """ Return the numerator if `self` is rational.
+
+ >>> Numeral("2/3").numerator()
+ 2
+ """
+ assert(self.is_rational())
+ return Numeral(Z3_get_numerator(self.ctx_ref(), self.as_ast()), self.ctx)
+
+
+ def is_irrational(self):
+ """ Return True if the numeral is irrational.
+
+ >>> Numeral(2).is_irrational()
+ False
+ >>> Numeral("2/3").is_irrational()
+ False
+ >>> Numeral(Sqrt(2)).is_irrational()
+ True
+ """
+ return not self.is_rational()
+
+ def as_long(self):
+ """ Return a numeral (that is an integer) as a Python long.
+
+ """
+ assert(self.is_integer())
+ if sys.version_info[0] >= 3:
+ return int(Z3_get_numeral_string(self.ctx_ref(), self.as_ast()))
+ else:
+ return long(Z3_get_numeral_string(self.ctx_ref(), self.as_ast()))
+
+ def as_fraction(self):
+ """ Return a numeral (that is a rational) as a Python Fraction.
+ >>> Numeral("1/5").as_fraction()
+ Fraction(1, 5)
+ """
+ assert(self.is_rational())
+ return Fraction(self.numerator().as_long(), self.denominator().as_long())
+
+ def approx(self, precision=10):
+ """Return a numeral that approximates the numeral `self`.
+ The result `r` is such that |r - self| <= 1/10^precision
+
+ If `self` is rational, then the result is `self`.
+
+ >>> x = Numeral(2).root(2)
+ >>> x.approx(20)
+ 6838717160008073720548335/4835703278458516698824704
+ >>> x.approx(5)
+ 2965821/2097152
+ >>> Numeral(2).approx(10)
+ 2
+ """
+ return self.upper(precision)
+
+ def upper(self, precision=10):
+ """Return a upper bound that approximates the numeral `self`.
+ The result `r` is such that r - self <= 1/10^precision
+
+ If `self` is rational, then the result is `self`.
+
+ >>> x = Numeral(2).root(2)
+ >>> x.upper(20)
+ 6838717160008073720548335/4835703278458516698824704
+ >>> x.upper(5)
+ 2965821/2097152
+ >>> Numeral(2).upper(10)
+ 2
+ """
+ if self.is_rational():
+ return self
+ else:
+ return Numeral(Z3_get_algebraic_number_upper(self.ctx_ref(), self.as_ast(), precision), self.ctx)
+
+ def lower(self, precision=10):
+ """Return a lower bound that approximates the numeral `self`.
+ The result `r` is such that self - r <= 1/10^precision
+
+ If `self` is rational, then the result is `self`.
+
+ >>> x = Numeral(2).root(2)
+ >>> x.lower(20)
+ 1709679290002018430137083/1208925819614629174706176
+ >>> Numeral("2/3").lower(10)
+ 2/3
+ """
+ if self.is_rational():
+ return self
+ else:
+ return Numeral(Z3_get_algebraic_number_lower(self.ctx_ref(), self.as_ast(), precision), self.ctx)
+
+ def sign(self):
+ """ Return the sign of the numeral.
+
+ >>> Numeral(2).sign()
+ 1
+ >>> Numeral(-3).sign()
+ -1
+ >>> Numeral(0).sign()
+ 0
+ """
+ return Z3_algebraic_sign(self.ctx_ref(), self.ast)
+
+ def is_pos(self):
+ """ Return True if the numeral is positive.
+
+ >>> Numeral(2).is_pos()
+ True
+ >>> Numeral(-3).is_pos()
+ False
+ >>> Numeral(0).is_pos()
+ False
+ """
+ return Z3_algebraic_is_pos(self.ctx_ref(), self.ast)
+
+ def is_neg(self):
+ """ Return True if the numeral is negative.
+
+ >>> Numeral(2).is_neg()
+ False
+ >>> Numeral(-3).is_neg()
+ True
+ >>> Numeral(0).is_neg()
+ False
+ """
+ return Z3_algebraic_is_neg(self.ctx_ref(), self.ast)
+
+ def is_zero(self):
+ """ Return True if the numeral is zero.
+
+ >>> Numeral(2).is_zero()
+ False
+ >>> Numeral(-3).is_zero()
+ False
+ >>> Numeral(0).is_zero()
+ True
+ >>> sqrt2 = Numeral(2).root(2)
+ >>> sqrt2.is_zero()
+ False
+ >>> (sqrt2 - sqrt2).is_zero()
+ True
+ """
+ return Z3_algebraic_is_zero(self.ctx_ref(), self.ast)
+
+ def __add__(self, other):
+ """ Return the numeral `self + other`.
+
+ >>> Numeral(2) + 3
+ 5
+ >>> Numeral(2) + Numeral(4)
+ 6
+ >>> Numeral("2/3") + 1
+ 5/3
+ """
+ return Numeral(Z3_algebraic_add(self.ctx_ref(), self.ast, _to_numeral(other, self.ctx).ast), self.ctx)
+
+ def __radd__(self, other):
+ """ Return the numeral `other + self`.
+
+ >>> 3 + Numeral(2)
+ 5
+ """
+ return Numeral(Z3_algebraic_add(self.ctx_ref(), self.ast, _to_numeral(other, self.ctx).ast), self.ctx)
+
+ def __sub__(self, other):
+ """ Return the numeral `self - other`.
+
+ >>> Numeral(2) - 3
+ -1
+ """
+ return Numeral(Z3_algebraic_sub(self.ctx_ref(), self.ast, _to_numeral(other, self.ctx).ast), self.ctx)
+
+ def __rsub__(self, other):
+ """ Return the numeral `other - self`.
+
+ >>> 3 - Numeral(2)
+ 1
+ """
+ return Numeral(Z3_algebraic_sub(self.ctx_ref(), _to_numeral(other, self.ctx).ast, self.ast), self.ctx)
+
+ def __mul__(self, other):
+ """ Return the numeral `self * other`.
+ >>> Numeral(2) * 3
+ 6
+ """
+ return Numeral(Z3_algebraic_mul(self.ctx_ref(), self.ast, _to_numeral(other, self.ctx).ast), self.ctx)
+
+ def __rmul__(self, other):
+ """ Return the numeral `other * mul`.
+ >>> 3 * Numeral(2)
+ 6
+ """
+ return Numeral(Z3_algebraic_mul(self.ctx_ref(), self.ast, _to_numeral(other, self.ctx).ast), self.ctx)
+
+ def __div__(self, other):
+ """ Return the numeral `self / other`.
+ >>> Numeral(2) / 3
+ 2/3
+ >>> Numeral(2).root(2) / 3
+ 0.4714045207?
+ >>> Numeral(Sqrt(2)) / Numeral(Sqrt(3))
+ 0.8164965809?
+ """
+ return Numeral(Z3_algebraic_div(self.ctx_ref(), self.ast, _to_numeral(other, self.ctx).ast), self.ctx)
+
+ def __truediv__(self, other):
+ return self.__div__(other)
+
+ def __rdiv__(self, other):
+ """ Return the numeral `other / self`.
+ >>> 3 / Numeral(2)
+ 3/2
+ >>> 3 / Numeral(2).root(2)
+ 2.1213203435?
+ """
+ return Numeral(Z3_algebraic_div(self.ctx_ref(), _to_numeral(other, self.ctx).ast, self.ast), self.ctx)
+
+ def __rtruediv__(self, other):
+ return self.__rdiv__(other)
+
+ def root(self, k):
+ """ Return the numeral `self^(1/k)`.
+
+ >>> sqrt2 = Numeral(2).root(2)
+ >>> sqrt2
+ 1.4142135623?
+ >>> sqrt2 * sqrt2
+ 2
+ >>> sqrt2 * 2 + 1
+ 3.8284271247?
+ >>> (sqrt2 * 2 + 1).sexpr()
+ '(root-obj (+ (^ x 2) (* (- 2) x) (- 7)) 2)'
+ """
+ return Numeral(Z3_algebraic_root(self.ctx_ref(), self.ast, k), self.ctx)
+
+ def power(self, k):
+ """ Return the numeral `self^k`.
+
+ >>> sqrt3 = Numeral(3).root(2)
+ >>> sqrt3
+ 1.7320508075?
+ >>> sqrt3.power(2)
+ 3
+ """
+ return Numeral(Z3_algebraic_power(self.ctx_ref(), self.ast, k), self.ctx)
+
+ def __pow__(self, k):
+ """ Return the numeral `self^k`.
+
+ >>> sqrt3 = Numeral(3).root(2)
+ >>> sqrt3
+ 1.7320508075?
+ >>> sqrt3**2
+ 3
+ """
+ return self.power(k)
+
+ def __lt__(self, other):
+ """ Return True if `self < other`.
+
+ >>> Numeral(Sqrt(2)) < 2
+ True
+ >>> Numeral(Sqrt(3)) < Numeral(Sqrt(2))
+ False
+ >>> Numeral(Sqrt(2)) < Numeral(Sqrt(2))
+ False
+ """
+ return Z3_algebraic_lt(self.ctx_ref(), self.ast, _to_numeral(other, self.ctx).ast)
+
+ def __rlt__(self, other):
+ """ Return True if `other < self`.
+
+ >>> 2 < Numeral(Sqrt(2))
+ False
+ """
+ return self > other
+
+ def __gt__(self, other):
+ """ Return True if `self > other`.
+
+ >>> Numeral(Sqrt(2)) > 2
+ False
+ >>> Numeral(Sqrt(3)) > Numeral(Sqrt(2))
+ True
+ >>> Numeral(Sqrt(2)) > Numeral(Sqrt(2))
+ False
+ """
+ return Z3_algebraic_gt(self.ctx_ref(), self.ast, _to_numeral(other, self.ctx).ast)
+
+ def __rgt__(self, other):
+ """ Return True if `other > self`.
+
+ >>> 2 > Numeral(Sqrt(2))
+ True
+ """
+ return self < other
+
+
+ def __le__(self, other):
+ """ Return True if `self <= other`.
+
+ >>> Numeral(Sqrt(2)) <= 2
+ True
+ >>> Numeral(Sqrt(3)) <= Numeral(Sqrt(2))
+ False
+ >>> Numeral(Sqrt(2)) <= Numeral(Sqrt(2))
+ True
+ """
+ return Z3_algebraic_le(self.ctx_ref(), self.ast, _to_numeral(other, self.ctx).ast)
+
+ def __rle__(self, other):
+ """ Return True if `other <= self`.
+
+ >>> 2 <= Numeral(Sqrt(2))
+ False
+ """
+ return self >= other
+
+ def __ge__(self, other):
+ """ Return True if `self >= other`.
+
+ >>> Numeral(Sqrt(2)) >= 2
+ False
+ >>> Numeral(Sqrt(3)) >= Numeral(Sqrt(2))
+ True
+ >>> Numeral(Sqrt(2)) >= Numeral(Sqrt(2))
+ True
+ """
+ return Z3_algebraic_ge(self.ctx_ref(), self.ast, _to_numeral(other, self.ctx).ast)
+
+ def __rge__(self, other):
+ """ Return True if `other >= self`.
+
+ >>> 2 >= Numeral(Sqrt(2))
+ True
+ """
+ return self <= other
+
+ def __eq__(self, other):
+ """ Return True if `self == other`.
+
+ >>> Numeral(Sqrt(2)) == 2
+ False
+ >>> Numeral(Sqrt(3)) == Numeral(Sqrt(2))
+ False
+ >>> Numeral(Sqrt(2)) == Numeral(Sqrt(2))
+ True
+ """
+ return Z3_algebraic_eq(self.ctx_ref(), self.ast, _to_numeral(other, self.ctx).ast)
+
+ def __ne__(self, other):
+ """ Return True if `self != other`.
+
+ >>> Numeral(Sqrt(2)) != 2
+ True
+ >>> Numeral(Sqrt(3)) != Numeral(Sqrt(2))
+ True
+ >>> Numeral(Sqrt(2)) != Numeral(Sqrt(2))
+ False
+ """
+ return Z3_algebraic_neq(self.ctx_ref(), self.ast, _to_numeral(other, self.ctx).ast)
+
+ def __str__(self):
+ if Z3_is_numeral_ast(self.ctx_ref(), self.ast):
+ return str(RatNumRef(self.ast, self.ctx))
+ else:
+ return str(AlgebraicNumRef(self.ast, self.ctx))
+
+ def __repr__(self):
+ return self.__str__()
+
+ def sexpr(self):
+ return Z3_ast_to_string(self.ctx_ref(), self.as_ast())
+
+ def as_ast(self):
+ return self.ast
+
+ def ctx_ref(self):
+ return self.ctx.ref()
+
+def eval_sign_at(p, vs):
+ """
+ Evaluate the sign of the polynomial `p` at `vs`. `p` is a Z3
+ Expression containing arithmetic operators: +, -, *, ^k where k is
+ an integer; and free variables x that is_var(x) is True. Moreover,
+ all variables must be real.
+
+ The result is 1 if the polynomial is positive at the given point,
+ -1 if negative, and 0 if zero.
+
+ >>> x0, x1, x2 = RealVarVector(3)
+ >>> eval_sign_at(x0**2 + x1*x2 + 1, (Numeral(0), Numeral(1), Numeral(2)))
+ 1
+ >>> eval_sign_at(x0**2 - 2, [ Numeral(Sqrt(2)) ])
+ 0
+ >>> eval_sign_at((x0 + x1)*(x0 + x2), (Numeral(0), Numeral(Sqrt(2)), Numeral(Sqrt(3))))
+ 1
+ """
+ num = len(vs)
+ _vs = (Ast * num)()
+ for i in range(num):
+ _vs[i] = vs[i].ast
+ return Z3_algebraic_eval(p.ctx_ref(), p.as_ast(), num, _vs)
+
+def isolate_roots(p, vs=[]):
+ """
+ Given a multivariate polynomial p(x_0, ..., x_{n-1}, x_n), returns the
+ roots of the univariate polynomial p(vs[0], ..., vs[len(vs)-1], x_n).
+
+ Remarks:
+ * p is a Z3 expression that contains only arithmetic terms and free variables.
+ * forall i in [0, n) vs is a numeral.
+
+ The result is a list of numerals
+
+ >>> x0 = RealVar(0)
+ >>> isolate_roots(x0**5 - x0 - 1)
+ [1.1673039782?]
+ >>> x1 = RealVar(1)
+ >>> isolate_roots(x0**2 - x1**4 - 1, [ Numeral(Sqrt(3)) ])
+ [-1.1892071150?, 1.1892071150?]
+ >>> x2 = RealVar(2)
+ >>> isolate_roots(x2**2 + x0 - x1, [ Numeral(Sqrt(3)), Numeral(Sqrt(2)) ])
+ []
+ """
+ num = len(vs)
+ _vs = (Ast * num)()
+ for i in range(num):
+ _vs[i] = vs[i].ast
+ _roots = AstVector(Z3_algebraic_roots(p.ctx_ref(), p.as_ast(), num, _vs), p.ctx)
+ return [ Numeral(r) for r in _roots ]
+
diff --git a/rba.tool.core/lib/z3/python/z3/z3poly.py b/rba.tool.core/lib/z3/python/z3/z3poly.py
new file mode 100644
index 0000000..1699442
--- /dev/null
+++ b/rba.tool.core/lib/z3/python/z3/z3poly.py
@@ -0,0 +1,35 @@
+############################################
+# Copyright (c) 2012 Microsoft Corporation
+#
+# Z3 Python interface for Z3 polynomials
+#
+# Author: Leonardo de Moura (leonardo)
+############################################
+
+from .z3 import *
+
+def subresultants(p, q, x):
+ """
+ Return the non-constant subresultants of 'p' and 'q' with respect to the "variable" 'x'.
+
+ 'p', 'q' and 'x' are Z3 expressions where 'p' and 'q' are arithmetic terms.
+ Note that, any subterm that cannot be viewed as a polynomial is assumed to be a variable.
+ Example: f(a) is a considered to be a variable b in the polynomial
+
+ f(a)*f(a) + 2*f(a) + 1
+
+ >>> x, y = Reals('x y')
+ >>> subresultants(2*x + y, 3*x - 2*y + 2, x)
+ [-7*y + 4]
+ >>> r = subresultants(3*y*x**2 + y**3 + 1, 2*x**3 + y + 3, x)
+ >>> r[0]
+ 4*y**9 + 12*y**6 + 27*y**5 + 162*y**4 + 255*y**3 + 4
+ >>> r[1]
+ -6*y**4 + -6*y
+ """
+ return AstVector(Z3_polynomial_subresultants(p.ctx_ref(), p.as_ast(), q.as_ast(), x.as_ast()), p.ctx)
+
+if __name__ == "__main__":
+ import doctest
+ if doctest.testmod().failed:
+ exit(1)
diff --git a/rba.tool.core/lib/z3/python/z3/z3printer.py b/rba.tool.core/lib/z3/python/z3/z3printer.py
new file mode 100644
index 0000000..2e3a528
--- /dev/null
+++ b/rba.tool.core/lib/z3/python/z3/z3printer.py
@@ -0,0 +1,1253 @@
+############################################
+# Copyright (c) 2012 Microsoft Corporation
+#
+# Z3 Python interface
+#
+# Author: Leonardo de Moura (leonardo)
+############################################
+import sys, io, z3
+from .z3consts import *
+from .z3core import *
+from ctypes import *
+
+def _z3_assert(cond, msg):
+ if not cond:
+ raise Z3Exception(msg)
+
+##############################
+#
+# Configuration
+#
+##############################
+
+# Z3 operator names to Z3Py
+_z3_op_to_str = {
+ Z3_OP_TRUE : 'True', Z3_OP_FALSE : 'False', Z3_OP_EQ : '==', Z3_OP_DISTINCT : 'Distinct',
+ Z3_OP_ITE : 'If', Z3_OP_AND : 'And', Z3_OP_OR : 'Or', Z3_OP_IFF : '==', Z3_OP_XOR : 'Xor',
+ Z3_OP_NOT : 'Not', Z3_OP_IMPLIES : 'Implies', Z3_OP_IDIV : '/', Z3_OP_MOD : '%',
+ Z3_OP_TO_REAL : 'ToReal', Z3_OP_TO_INT : 'ToInt', Z3_OP_POWER : '**', Z3_OP_IS_INT : 'IsInt',
+ Z3_OP_BADD : '+', Z3_OP_BSUB : '-', Z3_OP_BMUL : '*', Z3_OP_BOR : '|', Z3_OP_BAND : '&',
+ Z3_OP_BNOT : '~', Z3_OP_BXOR : '^', Z3_OP_BNEG : '-', Z3_OP_BUDIV : 'UDiv', Z3_OP_BSDIV : '/', Z3_OP_BSMOD : '%',
+ Z3_OP_BSREM : 'SRem', Z3_OP_BUREM : 'URem', Z3_OP_EXT_ROTATE_LEFT : 'RotateLeft', Z3_OP_EXT_ROTATE_RIGHT : 'RotateRight',
+ Z3_OP_SLEQ : '<=', Z3_OP_SLT : '<', Z3_OP_SGEQ : '>=', Z3_OP_SGT : '>',
+ Z3_OP_ULEQ : 'ULE', Z3_OP_ULT : 'ULT', Z3_OP_UGEQ : 'UGE', Z3_OP_UGT : 'UGT',
+ Z3_OP_SIGN_EXT : 'SignExt', Z3_OP_ZERO_EXT : 'ZeroExt', Z3_OP_REPEAT : 'RepeatBitVec',
+ Z3_OP_BASHR : '>>', Z3_OP_BSHL : '<<', Z3_OP_BLSHR : 'LShR',
+ Z3_OP_CONCAT : 'Concat', Z3_OP_EXTRACT : 'Extract', Z3_OP_BV2INT : 'BV2Int',
+ Z3_OP_ARRAY_MAP : 'Map', Z3_OP_SELECT : 'Select', Z3_OP_STORE : 'Store',
+ Z3_OP_CONST_ARRAY : 'K', Z3_OP_ARRAY_EXT : 'Ext',
+ Z3_OP_PB_AT_MOST : 'AtMost', Z3_OP_PB_LE : 'PbLe', Z3_OP_PB_GE : 'PbGe'
+ }
+
+# List of infix operators
+_z3_infix = [
+ Z3_OP_EQ, Z3_OP_IFF, Z3_OP_ADD, Z3_OP_SUB, Z3_OP_MUL, Z3_OP_DIV, Z3_OP_IDIV, Z3_OP_MOD, Z3_OP_POWER,
+ Z3_OP_LE, Z3_OP_LT, Z3_OP_GE, Z3_OP_GT, Z3_OP_BADD, Z3_OP_BSUB, Z3_OP_BMUL, Z3_OP_BSDIV, Z3_OP_BSMOD, Z3_OP_BOR, Z3_OP_BAND,
+ Z3_OP_BXOR, Z3_OP_BSDIV, Z3_OP_SLEQ, Z3_OP_SLT, Z3_OP_SGEQ, Z3_OP_SGT, Z3_OP_BASHR, Z3_OP_BSHL
+ ]
+
+_z3_unary = [ Z3_OP_UMINUS, Z3_OP_BNOT, Z3_OP_BNEG ]
+
+# Precedence
+_z3_precedence = {
+ Z3_OP_POWER : 0,
+ Z3_OP_UMINUS : 1, Z3_OP_BNEG : 1, Z3_OP_BNOT : 1,
+ Z3_OP_MUL : 2, Z3_OP_DIV : 2, Z3_OP_IDIV : 2, Z3_OP_MOD : 2, Z3_OP_BMUL : 2, Z3_OP_BSDIV : 2, Z3_OP_BSMOD : 2,
+ Z3_OP_ADD : 3, Z3_OP_SUB : 3, Z3_OP_BADD : 3, Z3_OP_BSUB : 3,
+ Z3_OP_BASHR : 4, Z3_OP_BSHL : 4,
+ Z3_OP_BAND : 5,
+ Z3_OP_BXOR : 6,
+ Z3_OP_BOR : 7,
+ Z3_OP_LE : 8, Z3_OP_LT : 8, Z3_OP_GE : 8, Z3_OP_GT : 8, Z3_OP_EQ : 8, Z3_OP_SLEQ : 8, Z3_OP_SLT : 8, Z3_OP_SGEQ : 8, Z3_OP_SGT : 8,
+ Z3_OP_IFF : 8,
+
+ Z3_OP_FPA_NEG : 1,
+ Z3_OP_FPA_MUL : 2, Z3_OP_FPA_DIV : 2, Z3_OP_FPA_REM : 2, Z3_OP_FPA_FMA : 2,
+ Z3_OP_FPA_ADD: 3, Z3_OP_FPA_SUB : 3,
+ Z3_OP_FPA_LE : 8, Z3_OP_FPA_LT : 8, Z3_OP_FPA_GE : 8, Z3_OP_FPA_GT : 8, Z3_OP_FPA_EQ : 8
+ }
+
+# FPA operators
+_z3_op_to_fpa_normal_str = {
+ Z3_OP_FPA_RM_NEAREST_TIES_TO_EVEN : 'RoundNearestTiesToEven()', Z3_OP_FPA_RM_NEAREST_TIES_TO_AWAY : 'RoundNearestTiesToAway()',
+ Z3_OP_FPA_RM_TOWARD_POSITIVE : 'RoundTowardPositive()', Z3_OP_FPA_RM_TOWARD_NEGATIVE : 'RoundTowardNegative()',
+ Z3_OP_FPA_RM_TOWARD_ZERO : 'RoundTowardZero()',
+ Z3_OP_FPA_PLUS_INF : 'fpPlusInfinity', Z3_OP_FPA_MINUS_INF : 'fpMinusInfinity',
+ Z3_OP_FPA_NAN : 'fpNaN', Z3_OP_FPA_PLUS_ZERO : 'fpPZero', Z3_OP_FPA_MINUS_ZERO : 'fpNZero',
+ Z3_OP_FPA_ADD : 'fpAdd', Z3_OP_FPA_SUB : 'fpSub', Z3_OP_FPA_NEG : 'fpNeg', Z3_OP_FPA_MUL : 'fpMul',
+ Z3_OP_FPA_DIV : 'fpDiv', Z3_OP_FPA_REM : 'fpRem', Z3_OP_FPA_ABS : 'fpAbs',
+ Z3_OP_FPA_MIN : 'fpMin', Z3_OP_FPA_MAX : 'fpMax',
+ Z3_OP_FPA_FMA : 'fpFMA', Z3_OP_FPA_SQRT : 'fpSqrt', Z3_OP_FPA_ROUND_TO_INTEGRAL : 'fpRoundToIntegral',
+
+ Z3_OP_FPA_EQ : 'fpEQ', Z3_OP_FPA_LT : 'fpLT', Z3_OP_FPA_GT : 'fpGT', Z3_OP_FPA_LE : 'fpLEQ',
+ Z3_OP_FPA_GE : 'fpGEQ',
+
+ Z3_OP_FPA_IS_NAN : 'fpIsNaN', Z3_OP_FPA_IS_INF : 'fpIsInf', Z3_OP_FPA_IS_ZERO : 'fpIsZero',
+ Z3_OP_FPA_IS_NORMAL : 'fpIsNormal', Z3_OP_FPA_IS_SUBNORMAL : 'fpIsSubnormal',
+ Z3_OP_FPA_IS_NEGATIVE : 'fpIsNegative', Z3_OP_FPA_IS_POSITIVE : 'fpIsPositive',
+
+ Z3_OP_FPA_FP : 'fpFP', Z3_OP_FPA_TO_FP : 'fpToFP', Z3_OP_FPA_TO_FP_UNSIGNED: 'fpToFPUnsigned',
+ Z3_OP_FPA_TO_UBV : 'fpToUBV', Z3_OP_FPA_TO_SBV : 'fpToSBV', Z3_OP_FPA_TO_REAL: 'fpToReal',
+ Z3_OP_FPA_TO_IEEE_BV : 'fpToIEEEBV'
+ }
+
+_z3_op_to_fpa_pretty_str = {
+ Z3_OP_FPA_RM_NEAREST_TIES_TO_EVEN : 'RNE()', Z3_OP_FPA_RM_NEAREST_TIES_TO_AWAY : 'RNA()',
+ Z3_OP_FPA_RM_TOWARD_POSITIVE : 'RTP()', Z3_OP_FPA_RM_TOWARD_NEGATIVE : 'RTN()',
+ Z3_OP_FPA_RM_TOWARD_ZERO : 'RTZ()',
+ Z3_OP_FPA_PLUS_INF : '+oo', Z3_OP_FPA_MINUS_INF : '-oo',
+ Z3_OP_FPA_NAN : 'NaN', Z3_OP_FPA_PLUS_ZERO : '+0.0', Z3_OP_FPA_MINUS_ZERO : '-0.0',
+
+ Z3_OP_FPA_ADD : '+', Z3_OP_FPA_SUB : '-', Z3_OP_FPA_MUL : '*', Z3_OP_FPA_DIV : '/',
+ Z3_OP_FPA_REM : '%', Z3_OP_FPA_NEG : '-',
+
+ Z3_OP_FPA_EQ : 'fpEQ', Z3_OP_FPA_LT : '<', Z3_OP_FPA_GT : '>', Z3_OP_FPA_LE : '<=', Z3_OP_FPA_GE : '>='
+}
+
+_z3_fpa_infix = [
+ Z3_OP_FPA_ADD, Z3_OP_FPA_SUB, Z3_OP_FPA_MUL, Z3_OP_FPA_DIV, Z3_OP_FPA_REM,
+ Z3_OP_FPA_LT, Z3_OP_FPA_GT, Z3_OP_FPA_LE, Z3_OP_FPA_GE
+]
+
+def _is_assoc(k):
+ return k == Z3_OP_BOR or k == Z3_OP_BXOR or k == Z3_OP_BAND or k == Z3_OP_ADD or k == Z3_OP_BADD or k == Z3_OP_MUL or k == Z3_OP_BMUL
+
+def _is_left_assoc(k):
+ return _is_assoc(k) or k == Z3_OP_SUB or k == Z3_OP_BSUB
+
+def _is_html_assoc(k):
+ return k == Z3_OP_AND or k == Z3_OP_OR or k == Z3_OP_IFF or _is_assoc(k)
+
+def _is_html_left_assoc(k):
+ return _is_html_assoc(k) or k == Z3_OP_SUB or k == Z3_OP_BSUB
+
+def _is_add(k):
+ return k == Z3_OP_ADD or k == Z3_OP_BADD
+
+def _is_sub(k):
+ return k == Z3_OP_SUB or k == Z3_OP_BSUB
+
+import sys
+if sys.version < '3':
+ import codecs
+ def u(x):
+ return codecs.unicode_escape_decode(x)[0]
+else:
+ def u(x):
+ return x
+
+_z3_infix_compact = [ Z3_OP_MUL, Z3_OP_BMUL, Z3_OP_POWER, Z3_OP_DIV, Z3_OP_IDIV, Z3_OP_MOD, Z3_OP_BSDIV, Z3_OP_BSMOD ]
+
+_ellipses = '...'
+
+_html_ellipses = '&hellip;'
+# Overwrite some of the operators for HTML
+_z3_pre_html_op_to_str = { Z3_OP_EQ : '=', Z3_OP_IFF : '=', Z3_OP_NOT : '&not;',
+ Z3_OP_AND : '&and;', Z3_OP_OR : '&or;', Z3_OP_IMPLIES : '&rArr;',
+ Z3_OP_LT : '&lt;', Z3_OP_GT : '&gt;', Z3_OP_LE : '&le;', Z3_OP_GE : '&ge;',
+ Z3_OP_MUL : '&middot;',
+ Z3_OP_SLEQ : '&le;', Z3_OP_SLT : '&lt;', Z3_OP_SGEQ : '&ge;', Z3_OP_SGT : '&gt;',
+ Z3_OP_ULEQ : '&le;<sub>u</sub>', Z3_OP_ULT : '&lt;<sub>u</sub>',
+ Z3_OP_UGEQ : '&ge;<sub>u</sub>', Z3_OP_UGT : '&gt;<sub>u</sub>',
+ Z3_OP_BMUL : '&middot;',
+ Z3_OP_BUDIV : '/<sub>u</sub>', Z3_OP_BUREM : '%<sub>u</sub>',
+ Z3_OP_BASHR : '&gt;&gt;', Z3_OP_BSHL : '&lt;&lt;',
+ Z3_OP_BLSHR : '&gt;&gt;<sub>u</sub>'
+ }
+
+# Extra operators that are infix/unary for HTML
+_z3_html_infix = [ Z3_OP_AND, Z3_OP_OR, Z3_OP_IMPLIES,
+ Z3_OP_ULEQ, Z3_OP_ULT, Z3_OP_UGEQ, Z3_OP_UGT, Z3_OP_BUDIV, Z3_OP_BUREM, Z3_OP_BLSHR
+ ]
+
+_z3_html_unary = [ Z3_OP_NOT ]
+
+# Extra Precedence for HTML
+_z3_pre_html_precedence = { Z3_OP_BUDIV : 2, Z3_OP_BUREM : 2,
+ Z3_OP_BLSHR : 4,
+ Z3_OP_ULEQ : 8, Z3_OP_ULT : 8,
+ Z3_OP_UGEQ : 8, Z3_OP_UGT : 8,
+ Z3_OP_ULEQ : 8, Z3_OP_ULT : 8,
+ Z3_OP_UGEQ : 8, Z3_OP_UGT : 8,
+ Z3_OP_NOT : 1,
+ Z3_OP_AND : 10,
+ Z3_OP_OR : 11,
+ Z3_OP_IMPLIES : 12 }
+
+##############################
+#
+# End of Configuration
+#
+##############################
+
+def _support_pp(a):
+ return isinstance(a, z3.Z3PPObject) or isinstance(a, list) or isinstance(a, tuple)
+
+_infix_map = {}
+_unary_map = {}
+_infix_compact_map = {}
+
+for _k in _z3_infix:
+ _infix_map[_k] = True
+for _k in _z3_unary:
+ _unary_map[_k] = True
+
+for _k in _z3_infix_compact:
+ _infix_compact_map[_k] = True
+
+def _is_infix(k):
+ global _infix_map
+ return _infix_map.get(k, False)
+
+def _is_infix_compact(k):
+ global _infix_compact_map
+ return _infix_compact_map.get(k, False)
+
+def _is_unary(k):
+ global _unary_map
+ return _unary_map.get(k, False)
+
+def _op_name(a):
+ if isinstance(a, z3.FuncDeclRef):
+ f = a
+ else:
+ f = a.decl()
+ k = f.kind()
+ n = _z3_op_to_str.get(k, None)
+ if n == None:
+ return f.name()
+ else:
+ return n
+
+def _get_precedence(k):
+ global _z3_precedence
+ return _z3_precedence.get(k, 100000)
+
+_z3_html_op_to_str = {}
+for _k in _z3_op_to_str:
+ _v = _z3_op_to_str[_k]
+ _z3_html_op_to_str[_k] = _v
+for _k in _z3_pre_html_op_to_str:
+ _v = _z3_pre_html_op_to_str[_k]
+ _z3_html_op_to_str[_k] = _v
+
+_z3_html_precedence = {}
+for _k in _z3_precedence:
+ _v = _z3_precedence[_k]
+ _z3_html_precedence[_k] = _v
+for _k in _z3_pre_html_precedence:
+ _v = _z3_pre_html_precedence[_k]
+ _z3_html_precedence[_k] = _v
+
+_html_infix_map = {}
+_html_unary_map = {}
+for _k in _z3_infix:
+ _html_infix_map[_k] = True
+for _k in _z3_html_infix:
+ _html_infix_map[_k] = True
+for _k in _z3_unary:
+ _html_unary_map[_k] = True
+for _k in _z3_html_unary:
+ _html_unary_map[_k] = True
+
+def _is_html_infix(k):
+ global _html_infix_map
+ return _html_infix_map.get(k, False)
+
+def _is_html_unary(k):
+ global _html_unary_map
+ return _html_unary_map.get(k, False)
+
+def _html_op_name(a):
+ global _z3_html_op_to_str
+ if isinstance(a, z3.FuncDeclRef):
+ f = a
+ else:
+ f = a.decl()
+ k = f.kind()
+ n = _z3_html_op_to_str.get(k, None)
+ if n == None:
+ sym = Z3_get_decl_name(f.ctx_ref(), f.ast)
+ if Z3_get_symbol_kind(f.ctx_ref(), sym) == Z3_INT_SYMBOL:
+ return "&#950;<sub>%s</sub>" % Z3_get_symbol_int(f.ctx_ref(), sym)
+ else:
+ # Sanitize the string
+ return f.name()
+ else:
+ return n
+
+def _get_html_precedence(k):
+ global _z3_html_predence
+ return _z3_html_precedence.get(k, 100000)
+
+class FormatObject:
+ def is_compose(self):
+ return False
+ def is_choice(self):
+ return False
+ def is_indent(self):
+ return False
+ def is_string(self):
+ return False
+ def is_linebreak(self):
+ return False
+ def is_nil(self):
+ return True
+ def children(self):
+ return []
+ def as_tuple(self):
+ return None
+ def space_upto_nl(self):
+ return (0, False)
+ def flat(self):
+ return self
+
+class NAryFormatObject(FormatObject):
+ def __init__(self, fs):
+ assert all([isinstance(a, FormatObject) for a in fs])
+ self.children = fs
+ def children(self):
+ return self.children
+
+class ComposeFormatObject(NAryFormatObject):
+ def is_compose(sef):
+ return True
+ def as_tuple(self):
+ return ('compose', [ a.as_tuple() for a in self.children ])
+ def space_upto_nl(self):
+ r = 0
+ for child in self.children:
+ s, nl = child.space_upto_nl()
+ r = r + s
+ if nl:
+ return (r, True)
+ return (r, False)
+ def flat(self):
+ return compose([a.flat() for a in self.children ])
+
+class ChoiceFormatObject(NAryFormatObject):
+ def is_choice(sef):
+ return True
+ def as_tuple(self):
+ return ('choice', [ a.as_tuple() for a in self.children ])
+ def space_upto_nl(self):
+ return self.children[0].space_upto_nl()
+ def flat(self):
+ return self.children[0].flat()
+
+class IndentFormatObject(FormatObject):
+ def __init__(self, indent, child):
+ assert isinstance(child, FormatObject)
+ self.indent = indent
+ self.child = child
+ def children(self):
+ return [self.child]
+ def as_tuple(self):
+ return ('indent', self.indent, self.child.as_tuple())
+ def space_upto_nl(self):
+ return self.child.space_upto_nl()
+ def flat(self):
+ return indent(self.indent, self.child.flat())
+ def is_indent(self):
+ return True
+
+class LineBreakFormatObject(FormatObject):
+ def __init__(self):
+ self.space = ' '
+ def is_linebreak(self):
+ return True
+ def as_tuple(self):
+ return '<line-break>'
+ def space_upto_nl(self):
+ return (0, True)
+ def flat(self):
+ return to_format(self.space)
+
+class StringFormatObject(FormatObject):
+ def __init__(self, string):
+ assert isinstance(string, str)
+ self.string = string
+ def is_string(self):
+ return True
+ def as_tuple(self):
+ return self.string
+ def space_upto_nl(self):
+ return (getattr(self, 'size', len(self.string)), False)
+
+def fits(f, space_left):
+ s, nl = f.space_upto_nl()
+ return s <= space_left
+
+def to_format(arg, size=None):
+ if isinstance(arg, FormatObject):
+ return arg
+ else:
+ r = StringFormatObject(str(arg))
+ if size != None:
+ r.size = size
+ return r
+
+def compose(*args):
+ if len(args) == 1 and (isinstance(args[0], list) or isinstance(args[0], tuple)):
+ args = args[0]
+ return ComposeFormatObject(args)
+
+def indent(i, arg):
+ return IndentFormatObject(i, arg)
+
+def group(arg):
+ return ChoiceFormatObject([arg.flat(), arg])
+
+def line_break():
+ return LineBreakFormatObject()
+
+def _len(a):
+ if isinstance(a, StringFormatObject):
+ return getattr(a, 'size', len(a.string))
+ else:
+ return len(a)
+
+def seq(args, sep=',', space=True):
+ nl = line_break()
+ if not space:
+ nl.space = ''
+ r = []
+ r.append(args[0])
+ num = len(args)
+ for i in range(num - 1):
+ r.append(to_format(sep))
+ r.append(nl)
+ r.append(args[i+1])
+ return compose(r)
+
+def seq1(header, args, lp='(', rp=')'):
+ return group(compose(to_format(header),
+ to_format(lp),
+ indent(len(lp) + _len(header),
+ seq(args)),
+ to_format(rp)))
+
+def seq2(header, args, i=4, lp='(', rp=')'):
+ if len(args) == 0:
+ return compose(to_format(header), to_format(lp), to_format(rp))
+ else:
+ return group(compose(indent(len(lp), compose(to_format(lp), to_format(header))),
+ indent(i, compose(seq(args), to_format(rp)))))
+
+def seq3(args, lp='(', rp=')'):
+ if len(args) == 0:
+ return compose(to_format(lp), to_format(rp))
+ else:
+ return group(indent(len(lp), compose(to_format(lp), seq(args), to_format(rp))))
+
+class StopPPException(Exception):
+ def __str__(self):
+ return 'pp-interrupted'
+
+class PP:
+ def __init__(self):
+ self.max_lines = 200
+ self.max_width = 60
+ self.bounded = False
+ self.max_indent = 40
+
+ def pp_string(self, f, indent):
+ if not self.bounded or self.pos <= self.max_width:
+ sz = _len(f)
+ if self.bounded and self.pos + sz > self.max_width:
+ self.out.write(u(_ellipses))
+ else:
+ self.pos = self.pos + sz
+ self.ribbon_pos = self.ribbon_pos + sz
+ self.out.write(u(f.string))
+
+ def pp_compose(self, f, indent):
+ for c in f.children:
+ self.pp(c, indent)
+
+ def pp_choice(self, f, indent):
+ space_left = self.max_width - self.pos
+ if space_left > 0 and fits(f.children[0], space_left):
+ self.pp(f.children[0], indent)
+ else:
+ self.pp(f.children[1], indent)
+
+ def pp_line_break(self, f, indent):
+ self.pos = indent
+ self.ribbon_pos = 0
+ self.line = self.line + 1
+ if self.line < self.max_lines:
+ self.out.write(u('\n'))
+ for i in range(indent):
+ self.out.write(u(' '))
+ else:
+ self.out.write(u('\n...'))
+ raise StopPPException()
+
+ def pp(self, f, indent):
+ if f.is_string():
+ self.pp_string(f, indent)
+ elif f.is_indent():
+ self.pp(f.child, min(indent + f.indent, self.max_indent))
+ elif f.is_compose():
+ self.pp_compose(f, indent)
+ elif f.is_choice():
+ self.pp_choice(f, indent)
+ elif f.is_linebreak():
+ self.pp_line_break(f, indent)
+ else:
+ return
+
+ def __call__(self, out, f):
+ try:
+ self.pos = 0
+ self.ribbon_pos = 0
+ self.line = 0
+ self.out = out
+ self.pp(f, 0)
+ except StopPPException:
+ return
+
+class Formatter:
+ def __init__(self):
+ global _ellipses
+ self.max_depth = 20
+ self.max_args = 128
+ self.rational_to_decimal = False
+ self.precision = 10
+ self.ellipses = to_format(_ellipses)
+ self.max_visited = 10000
+ self.fpa_pretty = True
+
+ def pp_ellipses(self):
+ return self.ellipses
+
+ def pp_arrow(self):
+ return ' ->'
+
+ def pp_unknown(self):
+ return '<unknown>'
+
+ def pp_name(self, a):
+ return to_format(_op_name(a))
+
+ def is_infix(self, a):
+ return _is_infix(a)
+
+ def is_unary(self, a):
+ return _is_unary(a)
+
+ def get_precedence(self, a):
+ return _get_precedence(a)
+
+ def is_infix_compact(self, a):
+ return _is_infix_compact(a)
+
+ def is_infix_unary(self, a):
+ return self.is_infix(a) or self.is_unary(a)
+
+ def add_paren(self, a):
+ return compose(to_format('('), indent(1, a), to_format(')'))
+
+ def pp_sort(self, s):
+ if isinstance(s, z3.ArraySortRef):
+ return seq1('Array', (self.pp_sort(s.domain()), self.pp_sort(s.range())))
+ elif isinstance(s, z3.BitVecSortRef):
+ return seq1('BitVec', (to_format(s.size()), ))
+ elif isinstance(s, z3.FPSortRef):
+ return seq1('FPSort', (to_format(s.ebits()), to_format(s.sbits())))
+ else:
+ return to_format(s.name())
+
+ def pp_const(self, a):
+ return self.pp_name(a)
+
+ def pp_int(self, a):
+ return to_format(a.as_string())
+
+ def pp_rational(self, a):
+ if not self.rational_to_decimal:
+ return to_format(a.as_string())
+ else:
+ return to_format(a.as_decimal(self.precision))
+
+ def pp_algebraic(self, a):
+ return to_format(a.as_decimal(self.precision))
+
+ def pp_string(self, a):
+ return to_format(a.as_string())
+
+ def pp_bv(self, a):
+ return to_format(a.as_string())
+
+ def pp_fd(self, a):
+ return to_format(a.as_string())
+
+ def pp_fprm_value(self, a):
+ _z3_assert(z3.is_fprm_value(a), 'expected FPRMNumRef')
+ if self.fpa_pretty and (a.decl().kind() in _z3_op_to_fpa_pretty_str):
+ return to_format(_z3_op_to_fpa_pretty_str.get(a.decl().kind()))
+ else:
+ return to_format(_z3_op_to_fpa_normal_str.get(a.decl().kind()))
+
+ def pp_fp_value(self, a):
+ _z3_assert(isinstance(a, z3.FPNumRef), 'type mismatch')
+ if not self.fpa_pretty:
+ r = []
+ if (a.isNaN()):
+ r.append(to_format(_z3_op_to_fpa_normal_str[Z3_OP_FPA_NAN]))
+ r.append(to_format('('))
+ r.append(to_format(a.sort()))
+ r.append(to_format(')'))
+ return compose(r)
+ elif (a.isInf()):
+ if (a.isNegative()):
+ r.append(to_format(_z3_op_to_fpa_normal_str[Z3_OP_FPA_MINUS_INF]))
+ else:
+ r.append(to_format(_z3_op_to_fpa_normal_str[Z3_OP_FPA_PLUS_INF]))
+ r.append(to_format('('))
+ r.append(to_format(a.sort()))
+ r.append(to_format(')'))
+ return compose(r)
+
+ elif (a.isZero()):
+ if (a.isNegative()):
+ return to_format('-zero')
+ else:
+ return to_format('+zero')
+ else:
+ _z3_assert(z3.is_fp_value(a), 'expecting FP num ast')
+ r = []
+ sgn = c_int(0)
+ sgnb = Z3_fpa_get_numeral_sign(a.ctx_ref(), a.ast, byref(sgn))
+ sig = Z3_fpa_get_numeral_significand_string(a.ctx_ref(), a.ast)
+ exp = Z3_fpa_get_numeral_exponent_string(a.ctx_ref(), a.ast)
+ r.append(to_format('FPVal('))
+ if sgnb and sgn.value != 0:
+ r.append(to_format('-'))
+ r.append(to_format(sig))
+ r.append(to_format('*(2**'))
+ r.append(to_format(exp))
+ r.append(to_format(', '))
+ r.append(to_format(a.sort()))
+ r.append(to_format('))'))
+ return compose(r)
+ else:
+ if (a.isNaN()):
+ return to_format(_z3_op_to_fpa_pretty_str[Z3_OP_FPA_NAN])
+ elif (a.isInf()):
+ if (a.isNegative()):
+ return to_format(_z3_op_to_fpa_pretty_str[Z3_OP_FPA_MINUS_INF])
+ else:
+ return to_format(_z3_op_to_fpa_pretty_str[Z3_OP_FPA_PLUS_INF])
+ elif (a.isZero()):
+ if (a.isNegative()):
+ return to_format(_z3_op_to_fpa_pretty_str[Z3_OP_FPA_MINUS_ZERO])
+ else:
+ return to_format(_z3_op_to_fpa_pretty_str[Z3_OP_FPA_PLUS_ZERO])
+ else:
+ _z3_assert(z3.is_fp_value(a), 'expecting FP num ast')
+ r = []
+ sgn = (ctypes.c_int)(0)
+ sgnb = Z3_fpa_get_numeral_sign(a.ctx_ref(), a.ast, byref(sgn))
+ sig = Z3_fpa_get_numeral_significand_string(a.ctx_ref(), a.ast)
+ exp = Z3_fpa_get_numeral_exponent_string(a.ctx_ref(), a.ast)
+ if sgnb and sgn.value != 0:
+ r.append(to_format('-'))
+ r.append(to_format(sig))
+ if (exp != '0'):
+ r.append(to_format('*(2**'))
+ r.append(to_format(exp))
+ r.append(to_format(')'))
+ return compose(r)
+
+
+ def pp_fp(self, a, d, xs):
+ _z3_assert(isinstance(a, z3.FPRef), "type mismatch")
+ k = a.decl().kind()
+ op = '?'
+ if (self.fpa_pretty and k in _z3_op_to_fpa_pretty_str):
+ op = _z3_op_to_fpa_pretty_str[k]
+ elif k in _z3_op_to_fpa_normal_str:
+ op = _z3_op_to_fpa_normal_str[k]
+ elif k in _z3_op_to_str:
+ op = _z3_op_to_str[k]
+
+ n = a.num_args()
+
+ if self.fpa_pretty:
+ if self.is_infix(k) and n >= 3:
+ rm = a.arg(0)
+ if z3.is_fprm_value(rm) and z3._dflt_rm(a.ctx).eq(rm):
+ arg1 = to_format(self.pp_expr(a.arg(1), d+1, xs))
+ arg2 = to_format(self.pp_expr(a.arg(2), d+1, xs))
+ r = []
+ r.append(arg1)
+ r.append(to_format(' '))
+ r.append(to_format(op))
+ r.append(to_format(' '))
+ r.append(arg2)
+ return compose(r)
+ elif k == Z3_OP_FPA_NEG:
+ return compose([to_format('-') , to_format(self.pp_expr(a.arg(0), d+1, xs))])
+
+ if k in _z3_op_to_fpa_normal_str:
+ op = _z3_op_to_fpa_normal_str[k]
+
+ r = []
+ r.append(to_format(op))
+ if not z3.is_const(a):
+ r.append(to_format('('))
+ first = True
+ for c in a.children():
+ if first:
+ first = False
+ else:
+ r.append(to_format(', '))
+ r.append(self.pp_expr(c, d+1, xs))
+ r.append(to_format(')'))
+ return compose(r)
+ else:
+ return to_format(a.as_string())
+
+ def pp_prefix(self, a, d, xs):
+ r = []
+ sz = 0
+ for child in a.children():
+ r.append(self.pp_expr(child, d+1, xs))
+ sz = sz + 1
+ if sz > self.max_args:
+ r.append(self.pp_ellipses())
+ break
+ return seq1(self.pp_name(a), r)
+
+ def is_assoc(self, k):
+ return _is_assoc(k)
+
+ def is_left_assoc(self, k):
+ return _is_left_assoc(k)
+
+ def infix_args_core(self, a, d, xs, r):
+ sz = len(r)
+ k = a.decl().kind()
+ p = self.get_precedence(k)
+ first = True
+ for child in a.children():
+ child_pp = self.pp_expr(child, d+1, xs)
+ child_k = None
+ if z3.is_app(child):
+ child_k = child.decl().kind()
+ if k == child_k and (self.is_assoc(k) or (first and self.is_left_assoc(k))):
+ self.infix_args_core(child, d, xs, r)
+ sz = len(r)
+ if sz > self.max_args:
+ return
+ elif self.is_infix_unary(child_k):
+ child_p = self.get_precedence(child_k)
+ if p > child_p or (_is_add(k) and _is_sub(child_k)) or (_is_sub(k) and first and _is_add(child_k)):
+ r.append(child_pp)
+ else:
+ r.append(self.add_paren(child_pp))
+ sz = sz + 1
+ elif z3.is_quantifier(child):
+ r.append(self.add_paren(child_pp))
+ else:
+ r.append(child_pp)
+ sz = sz + 1
+ if sz > self.max_args:
+ r.append(self.pp_ellipses())
+ return
+ first = False
+
+ def infix_args(self, a, d, xs):
+ r = []
+ self.infix_args_core(a, d, xs, r)
+ return r
+
+ def pp_infix(self, a, d, xs):
+ k = a.decl().kind()
+ if self.is_infix_compact(k):
+ op = self.pp_name(a)
+ return group(seq(self.infix_args(a, d, xs), op, False))
+ else:
+ op = self.pp_name(a)
+ sz = _len(op)
+ op.string = ' ' + op.string
+ op.size = sz + 1
+ return group(seq(self.infix_args(a, d, xs), op))
+
+ def pp_unary(self, a, d, xs):
+ k = a.decl().kind()
+ p = self.get_precedence(k)
+ child = a.children()[0]
+ child_k = None
+ if z3.is_app(child):
+ child_k = child.decl().kind()
+ child_pp = self.pp_expr(child, d+1, xs)
+ if k != child_k and self.is_infix_unary(child_k):
+ child_p = self.get_precedence(child_k)
+ if p <= child_p:
+ child_pp = self.add_paren(child_pp)
+ if z3.is_quantifier(child):
+ child_pp = self.add_paren(child_pp)
+ name = self.pp_name(a)
+ return compose(to_format(name), indent(_len(name), child_pp))
+
+ def pp_power_arg(self, arg, d, xs):
+ r = self.pp_expr(arg, d+1, xs)
+ k = None
+ if z3.is_app(arg):
+ k = arg.decl().kind()
+ if self.is_infix_unary(k) or (z3.is_rational_value(arg) and arg.denominator_as_long() != 1):
+ return self.add_paren(r)
+ else:
+ return r
+
+ def pp_power(self, a, d, xs):
+ arg1_pp = self.pp_power_arg(a.arg(0), d+1, xs)
+ arg2_pp = self.pp_power_arg(a.arg(1), d+1, xs)
+ return group(seq((arg1_pp, arg2_pp), '**', False))
+
+ def pp_neq(self):
+ return to_format("!=")
+
+ def pp_distinct(self, a, d, xs):
+ if a.num_args() == 2:
+ op = self.pp_neq()
+ sz = _len(op)
+ op.string = ' ' + op.string
+ op.size = sz + 1
+ return group(seq(self.infix_args(a, d, xs), op))
+ else:
+ return self.pp_prefix(a, d, xs)
+
+ def pp_select(self, a, d, xs):
+ if a.num_args() != 2:
+ return self.pp_prefix(a, d, xs)
+ else:
+ arg1_pp = self.pp_expr(a.arg(0), d+1, xs)
+ arg2_pp = self.pp_expr(a.arg(1), d+1, xs)
+ return compose(arg1_pp, indent(2, compose(to_format('['), arg2_pp, to_format(']'))))
+
+ def pp_unary_param(self, a, d, xs):
+ p = Z3_get_decl_int_parameter(a.ctx_ref(), a.decl().ast, 0)
+ arg = self.pp_expr(a.arg(0), d+1, xs)
+ return seq1(self.pp_name(a), [ to_format(p), arg ])
+
+ def pp_extract(self, a, d, xs):
+ h = Z3_get_decl_int_parameter(a.ctx_ref(), a.decl().ast, 0)
+ l = Z3_get_decl_int_parameter(a.ctx_ref(), a.decl().ast, 1)
+ arg = self.pp_expr(a.arg(0), d+1, xs)
+ return seq1(self.pp_name(a), [ to_format(h), to_format(l), arg ])
+
+ def pp_pattern(self, a, d, xs):
+ if a.num_args() == 1:
+ return self.pp_expr(a.arg(0), d, xs)
+ else:
+ return seq1('MultiPattern', [ self.pp_expr(arg, d+1, xs) for arg in a.children() ])
+
+ def pp_map(self, a, d, xs):
+ r = []
+ sz = 0
+ f = z3.get_map_func(a)
+ r.append(to_format(f.name()))
+ for child in a.children():
+ r.append(self.pp_expr(child, d+1, xs))
+ sz = sz + 1
+ if sz > self.max_args:
+ r.append(self.pp_ellipses())
+ break
+ return seq1(self.pp_name(a), r)
+
+ def pp_K(self, a, d, xs):
+ return seq1(self.pp_name(a), [ self.pp_sort(a.domain()), self.pp_expr(a.arg(0), d+1, xs) ])
+
+ def pp_atmost(self, a, d, f, xs):
+ k = Z3_get_decl_int_parameter(a.ctx_ref(), a.decl().ast, 0)
+ return seq1(self.pp_name(a), [seq3([ self.pp_expr(ch, d+1, xs) for ch in a.children()]), to_format(k)])
+
+ def pp_pbcmp(self, a, d, f, xs):
+ chs = a.children()
+ rchs = range(len(chs))
+ k = Z3_get_decl_int_parameter(a.ctx_ref(), a.decl().ast, 0)
+ ks = [Z3_get_decl_int_parameter(a.ctx_ref(), a.decl().ast, i+1) for i in rchs]
+ ls = [ seq3([self.pp_expr(chs[i], d+1,xs), to_format(ks[i])]) for i in rchs]
+ return seq1(self.pp_name(a), [seq3(ls), to_format(k)])
+
+
+ def pp_app(self, a, d, xs):
+ if z3.is_int_value(a):
+ return self.pp_int(a)
+ elif z3.is_rational_value(a):
+ return self.pp_rational(a)
+ elif z3.is_algebraic_value(a):
+ return self.pp_algebraic(a)
+ elif z3.is_bv_value(a):
+ return self.pp_bv(a)
+ elif z3.is_finite_domain_value(a):
+ return self.pp_fd(a)
+ elif z3.is_fprm_value(a):
+ return self.pp_fprm_value(a)
+ elif z3.is_fp_value(a):
+ return self.pp_fp_value(a)
+ elif z3.is_fp(a):
+ return self.pp_fp(a, d, xs)
+ elif z3.is_string_value(a):
+ return self.pp_string(a)
+ elif z3.is_const(a):
+ return self.pp_const(a)
+ else:
+ f = a.decl()
+ k = f.kind()
+ if k == Z3_OP_POWER:
+ return self.pp_power(a, d, xs)
+ elif k == Z3_OP_DISTINCT:
+ return self.pp_distinct(a, d, xs)
+ elif k == Z3_OP_SELECT:
+ return self.pp_select(a, d, xs)
+ elif k == Z3_OP_SIGN_EXT or k == Z3_OP_ZERO_EXT or k == Z3_OP_REPEAT:
+ return self.pp_unary_param(a, d, xs)
+ elif k == Z3_OP_EXTRACT:
+ return self.pp_extract(a, d, xs)
+ elif k == Z3_OP_ARRAY_MAP:
+ return self.pp_map(a, d, xs)
+ elif k == Z3_OP_CONST_ARRAY:
+ return self.pp_K(a, d, xs)
+ elif k == Z3_OP_PB_AT_MOST:
+ return self.pp_atmost(a, d, f, xs)
+ elif k == Z3_OP_PB_LE:
+ return self.pp_pbcmp(a, d, f, xs)
+ elif k == Z3_OP_PB_GE:
+ return self.pp_pbcmp(a, d, f, xs)
+ elif z3.is_pattern(a):
+ return self.pp_pattern(a, d, xs)
+ elif self.is_infix(k):
+ return self.pp_infix(a, d, xs)
+ elif self.is_unary(k):
+ return self.pp_unary(a, d, xs)
+ else:
+ return self.pp_prefix(a, d, xs)
+
+ def pp_var(self, a, d, xs):
+ idx = z3.get_var_index(a)
+ sz = len(xs)
+ if idx >= sz:
+ return seq1('Var', (to_format(idx),))
+ else:
+ return to_format(xs[sz - idx - 1])
+
+ def pp_quantifier(self, a, d, xs):
+ ys = [ to_format(a.var_name(i)) for i in range(a.num_vars()) ]
+ new_xs = xs + ys
+ body_pp = self.pp_expr(a.body(), d+1, new_xs)
+ if len(ys) == 1:
+ ys_pp = ys[0]
+ else:
+ ys_pp = seq3(ys, '[', ']')
+ if a.is_forall():
+ header = 'ForAll'
+ else:
+ header = 'Exists'
+ return seq1(header, (ys_pp, body_pp))
+
+ def pp_expr(self, a, d, xs):
+ self.visited = self.visited + 1
+ if d > self.max_depth or self.visited > self.max_visited:
+ return self.pp_ellipses()
+ if z3.is_app(a):
+ return self.pp_app(a, d, xs)
+ elif z3.is_quantifier(a):
+ return self.pp_quantifier(a, d, xs)
+ elif z3.is_var(a):
+ return self.pp_var(a, d, xs)
+ else:
+ return to_format(self.pp_unknown())
+
+ def pp_seq_core(self, f, a, d, xs):
+ self.visited = self.visited + 1
+ if d > self.max_depth or self.visited > self.max_visited:
+ return self.pp_ellipses()
+ r = []
+ sz = 0
+ for elem in a:
+ r.append(f(elem, d+1, xs))
+ sz = sz + 1
+ if sz > self.max_args:
+ r.append(self.pp_ellipses())
+ break
+ return seq3(r, '[', ']')
+
+ def pp_seq(self, a, d, xs):
+ return self.pp_seq_core(self.pp_expr, a, d, xs)
+
+ def pp_seq_seq(self, a, d, xs):
+ return self.pp_seq_core(self.pp_seq, a, d, xs)
+
+ def pp_model(self, m):
+ r = []
+ sz = 0
+ for d in m:
+ i = m[d]
+ if isinstance(i, z3.FuncInterp):
+ i_pp = self.pp_func_interp(i)
+ else:
+ i_pp = self.pp_expr(i, 0, [])
+ name = self.pp_name(d)
+ r.append(compose(name, to_format(' = '), indent(_len(name) + 3, i_pp)))
+ sz = sz + 1
+ if sz > self.max_args:
+ r.append(self.pp_ellipses())
+ break
+ return seq3(r, '[', ']')
+
+ def pp_func_entry(self, e):
+ num = e.num_args()
+ if num > 1:
+ args = []
+ for i in range(num):
+ args.append(self.pp_expr(e.arg_value(i), 0, []))
+ args_pp = group(seq3(args))
+ else:
+ args_pp = self.pp_expr(e.arg_value(0), 0, [])
+ value_pp = self.pp_expr(e.value(), 0, [])
+ return group(seq((args_pp, value_pp), self.pp_arrow()))
+
+ def pp_func_interp(self, f):
+ r = []
+ sz = 0
+ num = f.num_entries()
+ for i in range(num):
+ r.append(self.pp_func_entry(f.entry(i)))
+ sz = sz + 1
+ if sz > self.max_args:
+ r.append(self.pp_ellipses())
+ break
+ if sz <= self.max_args:
+ else_val = f.else_value()
+ if else_val == None:
+ else_pp = to_format('#unspecified')
+ else:
+ else_pp = self.pp_expr(else_val, 0, [])
+ r.append(group(seq((to_format('else'), else_pp), self.pp_arrow())))
+ return seq3(r, '[', ']')
+
+ def pp_list(self, a):
+ r = []
+ sz = 0
+ for elem in a:
+ if _support_pp(elem):
+ r.append(self.main(elem))
+ else:
+ r.append(to_format(str(elem)))
+ sz = sz + 1
+ if sz > self.max_args:
+ r.append(self.pp_ellipses())
+ break
+ if isinstance(a, tuple):
+ return seq3(r)
+ else:
+ return seq3(r, '[', ']')
+
+ def main(self, a):
+ if z3.is_expr(a):
+ return self.pp_expr(a, 0, [])
+ elif z3.is_sort(a):
+ return self.pp_sort(a)
+ elif z3.is_func_decl(a):
+ return self.pp_name(a)
+ elif isinstance(a, z3.Goal) or isinstance(a, z3.AstVector):
+ return self.pp_seq(a, 0, [])
+ elif isinstance(a, z3.Solver):
+ return self.pp_seq(a.assertions(), 0, [])
+ elif isinstance(a, z3.Fixedpoint):
+ return a.sexpr()
+ elif isinstance(a, z3.Optimize):
+ return a.sexpr()
+ elif isinstance(a, z3.ApplyResult):
+ return self.pp_seq_seq(a, 0, [])
+ elif isinstance(a, z3.ModelRef):
+ return self.pp_model(a)
+ elif isinstance(a, z3.FuncInterp):
+ return self.pp_func_interp(a)
+ elif isinstance(a, list) or isinstance(a, tuple):
+ return self.pp_list(a)
+ else:
+ return to_format(self.pp_unknown())
+
+ def __call__(self, a):
+ self.visited = 0
+ return self.main(a)
+
+class HTMLFormatter(Formatter):
+ def __init__(self):
+ Formatter.__init__(self)
+ global _html_ellipses
+ self.ellipses = to_format(_html_ellipses)
+
+ def pp_arrow(self):
+ return to_format(' &rarr;', 1)
+
+ def pp_unknown(self):
+ return '<b>unknown</b>'
+
+ def pp_name(self, a):
+ r = _html_op_name(a)
+ if r[0] == '&' or r[0] == '/' or r[0] == '%':
+ return to_format(r, 1)
+ else:
+ pos = r.find('__')
+ if pos == -1 or pos == 0:
+ return to_format(r)
+ else:
+ sz = len(r)
+ if pos + 2 == sz:
+ return to_format(r)
+ else:
+ return to_format('%s<sub>%s</sub>' % (r[0:pos], r[pos+2:sz]), sz - 2)
+
+ def is_assoc(self, k):
+ return _is_html_assoc(k)
+
+ def is_left_assoc(self, k):
+ return _is_html_left_assoc(k)
+
+ def is_infix(self, a):
+ return _is_html_infix(a)
+
+ def is_unary(self, a):
+ return _is_html_unary(a)
+
+ def get_precedence(self, a):
+ return _get_html_precedence(a)
+
+ def pp_neq(self):
+ return to_format("&ne;")
+
+ def pp_power(self, a, d, xs):
+ arg1_pp = self.pp_power_arg(a.arg(0), d+1, xs)
+ arg2_pp = self.pp_expr(a.arg(1), d+1, xs)
+ return compose(arg1_pp, to_format('<sup>', 1), arg2_pp, to_format('</sup>', 1))
+
+ def pp_var(self, a, d, xs):
+ idx = z3.get_var_index(a)
+ sz = len(xs)
+ if idx >= sz:
+ # 957 is the greek letter nu
+ return to_format('&#957;<sub>%s</sub>' % idx, 1)
+ else:
+ return to_format(xs[sz - idx - 1])
+
+ def pp_quantifier(self, a, d, xs):
+ ys = [ to_format(a.var_name(i)) for i in range(a.num_vars()) ]
+ new_xs = xs + ys
+ body_pp = self.pp_expr(a.body(), d+1, new_xs)
+ ys_pp = group(seq(ys))
+ if a.is_forall():
+ header = '&forall;'
+ else:
+ header = '&exist;'
+ return group(compose(to_format(header, 1),
+ indent(1, compose(ys_pp, to_format(' :'), line_break(), body_pp))))
+
+
+_PP = PP()
+_Formatter = Formatter()
+
+def set_pp_option(k, v):
+ if k == 'html_mode':
+ if v:
+ set_html_mode(True)
+ else:
+ set_html_mode(False)
+ return True
+ if k == 'fpa_pretty':
+ if v:
+ set_fpa_pretty(True)
+ else:
+ set_fpa_pretty(False)
+ return True
+ val = getattr(_PP, k, None)
+ if val != None:
+ _z3_assert(type(v) == type(val), "Invalid pretty print option value")
+ setattr(_PP, k, v)
+ return True
+ val = getattr(_Formatter, k, None)
+ if val != None:
+ _z3_assert(type(v) == type(val), "Invalid pretty print option value")
+ setattr(_Formatter, k, v)
+ return True
+ return False
+
+def obj_to_string(a):
+ out = io.StringIO()
+ _PP(out, _Formatter(a))
+ return out.getvalue()
+
+_html_out = None
+
+def set_html_mode(flag=True):
+ global _Formatter
+ if flag:
+ _Formatter = HTMLFormatter()
+ else:
+ _Formatter = Formatter()
+
+def set_fpa_pretty(flag=True):
+ global _Formatter
+ global _z3_op_to_str
+ _Formatter.fpa_pretty = flag
+ if flag:
+ for (_k,_v) in _z3_op_to_fpa_pretty_str.items():
+ _z3_op_to_str[_k] = _v
+ for _k in _z3_fpa_infix:
+ _infix_map[_k] = True
+ else:
+ for (_k,_v) in _z3_op_to_fpa_normal_str.items():
+ _z3_op_to_str[_k] = _v
+ for _k in _z3_fpa_infix:
+ _infix_map[_k] = False
+
+set_fpa_pretty(True)
+
+def get_fpa_pretty():
+ global Formatter
+ return _Formatter.fpa_pretty
+
+def in_html_mode():
+ return isinstance(_Formatter, HTMLFormatter)
+
+def pp(a):
+ if _support_pp(a):
+ print(obj_to_string(a))
+ else:
+ print(a)
+
+def print_matrix(m):
+ _z3_assert(isinstance(m, list) or isinstance(m, tuple), "matrix expected")
+ if not in_html_mode():
+ print(obj_to_string(m))
+ else:
+ print('<table cellpadding="2", cellspacing="0", border="1">')
+ for r in m:
+ _z3_assert(isinstance(r, list) or isinstance(r, tuple), "matrix expected")
+ print('<tr>')
+ for c in r:
+ print('<td>%s</td>' % c)
+ print('</tr>')
+ print('</table>')
+
+def insert_line_breaks(s, width):
+ """Break s in lines of size width (approx)"""
+ sz = len(s)
+ if sz <= width:
+ return s
+ new_str = io.StringIO()
+ w = 0
+ for i in range(sz):
+ if w > width and s[i] == ' ':
+ new_str.write(u('<br />'))
+ w = 0
+ else:
+ new_str.write(u(s[i]))
+ w = w + 1
+ return new_str.getvalue()
diff --git a/rba.tool.core/lib/z3/python/z3/z3rcf.py b/rba.tool.core/lib/z3/python/z3/z3rcf.py
new file mode 100644
index 0000000..9d6f2f6
--- /dev/null
+++ b/rba.tool.core/lib/z3/python/z3/z3rcf.py
@@ -0,0 +1,163 @@
+############################################
+# Copyright (c) 2013 Microsoft Corporation
+#
+# Z3 Python interface for Z3 Real Closed Fields
+# that may contain
+# - computable transcendentals
+# - infinitesimals
+# - algebraic extensions
+#
+# Author: Leonardo de Moura (leonardo)
+############################################
+from .z3 import *
+from .z3core import *
+from .z3printer import *
+from fractions import Fraction
+
+def _to_rcfnum(num, ctx=None):
+ if isinstance(num, RCFNum):
+ return num
+ else:
+ return RCFNum(num, ctx)
+
+def Pi(ctx=None):
+ ctx = z3._get_ctx(ctx)
+ return RCFNum(Z3_rcf_mk_pi(ctx.ref()), ctx)
+
+def E(ctx=None):
+ ctx = z3._get_ctx(ctx)
+ return RCFNum(Z3_rcf_mk_e(ctx.ref()), ctx)
+
+def MkInfinitesimal(name="eps", ctx=None):
+ # Todo: remove parameter name.
+ # For now, we keep it for backward compatibility.
+ ctx = z3._get_ctx(ctx)
+ return RCFNum(Z3_rcf_mk_infinitesimal(ctx.ref()), ctx)
+
+def MkRoots(p, ctx=None):
+ ctx = z3._get_ctx(ctx)
+ num = len(p)
+ _tmp = []
+ _as = (RCFNumObj * num)()
+ _rs = (RCFNumObj * num)()
+ for i in range(num):
+ _a = _to_rcfnum(p[i], ctx)
+ _tmp.append(_a) # prevent GC
+ _as[i] = _a.num
+ nr = Z3_rcf_mk_roots(ctx.ref(), num, _as, _rs)
+ r = []
+ for i in range(nr):
+ r.append(RCFNum(_rs[i], ctx))
+ return r
+
+class RCFNum:
+ def __init__(self, num, ctx=None):
+ # TODO: add support for converting AST numeral values into RCFNum
+ if isinstance(num, RCFNumObj):
+ self.num = num
+ self.ctx = z3._get_ctx(ctx)
+ else:
+ self.ctx = z3._get_ctx(ctx)
+ self.num = Z3_rcf_mk_rational(self.ctx_ref(), str(num))
+
+ def __del__(self):
+ Z3_rcf_del(self.ctx_ref(), self.num)
+
+ def ctx_ref(self):
+ return self.ctx.ref()
+
+ def __repr__(self):
+ return Z3_rcf_num_to_string(self.ctx_ref(), self.num, False, in_html_mode())
+
+ def compact_str(self):
+ return Z3_rcf_num_to_string(self.ctx_ref(), self.num, True, in_html_mode())
+
+ def __add__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return RCFNum(Z3_rcf_add(self.ctx_ref(), self.num, v.num), self.ctx)
+
+ def __radd__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return RCFNum(Z3_rcf_add(self.ctx_ref(), v.num, self.num), self.ctx)
+
+ def __mul__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return RCFNum(Z3_rcf_mul(self.ctx_ref(), self.num, v.num), self.ctx)
+
+ def __rmul__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return RCFNum(Z3_rcf_mul(self.ctx_ref(), v.num, self.num), self.ctx)
+
+ def __sub__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return RCFNum(Z3_rcf_sub(self.ctx_ref(), self.num, v.num), self.ctx)
+
+ def __rsub__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return RCFNum(Z3_rcf_sub(self.ctx_ref(), v.num, self.num), self.ctx)
+
+ def __div__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return RCFNum(Z3_rcf_div(self.ctx_ref(), self.num, v.num), self.ctx)
+
+ def __rdiv__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return RCFNum(Z3_rcf_div(self.ctx_ref(), v.num, self.num), self.ctx)
+
+ def __neg__(self):
+ return self.__rsub__(0)
+
+ def power(self, k):
+ return RCFNum(Z3_rcf_power(self.ctx_ref(), self.num, k), self.ctx)
+
+ def __pow__(self, k):
+ return self.power(k)
+
+ def decimal(self, prec=5):
+ return Z3_rcf_num_to_decimal_string(self.ctx_ref(), self.num, prec)
+
+ def __lt__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return Z3_rcf_lt(self.ctx_ref(), self.num, v.num)
+
+ def __rlt__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return Z3_rcf_lt(self.ctx_ref(), v.num, self.num)
+
+ def __gt__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return Z3_rcf_gt(self.ctx_ref(), self.num, v.num)
+
+ def __rgt__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return Z3_rcf_gt(self.ctx_ref(), v.num, self.num)
+
+ def __le__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return Z3_rcf_le(self.ctx_ref(), self.num, v.num)
+
+ def __rle__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return Z3_rcf_le(self.ctx_ref(), v.num, self.num)
+
+ def __ge__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return Z3_rcf_ge(self.ctx_ref(), self.num, v.num)
+
+ def __rge__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return Z3_rcf_ge(self.ctx_ref(), v.num, self.num)
+
+ def __eq__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return Z3_rcf_eq(self.ctx_ref(), self.num, v.num)
+
+ def __ne__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return Z3_rcf_neq(self.ctx_ref(), self.num, v.num)
+
+ def split(self):
+ n = (RCFNumObj * 1)()
+ d = (RCFNumObj * 1)()
+ Z3_rcf_get_numerator_denominator(self.ctx_ref(), self.num, n, d)
+ return (RCFNum(n[0], self.ctx), RCFNum(d[0], self.ctx))
diff --git a/rba.tool.core/lib/z3/python/z3/z3types.py b/rba.tool.core/lib/z3/python/z3/z3types.py
new file mode 100644
index 0000000..7cf61f4
--- /dev/null
+++ b/rba.tool.core/lib/z3/python/z3/z3types.py
@@ -0,0 +1,123 @@
+############################################
+# Copyright (c) 2012 Microsoft Corporation
+#
+# Z3 Python interface
+#
+# Author: Leonardo de Moura (leonardo)
+############################################
+
+import ctypes
+
+class Z3Exception(Exception):
+ def __init__(self, value):
+ self.value = value
+ def __str__(self):
+ return str(self.value)
+
+class ContextObj(ctypes.c_void_p):
+ def __init__(self, context): self._as_parameter_ = context
+ def from_param(obj): return obj
+
+class Config(ctypes.c_void_p):
+ def __init__(self, config): self._as_parameter_ = config
+ def from_param(obj): return obj
+
+class Symbol(ctypes.c_void_p):
+ def __init__(self, symbol): self._as_parameter_ = symbol
+ def from_param(obj): return obj
+
+class Sort(ctypes.c_void_p):
+ def __init__(self, sort): self._as_parameter_ = sort
+ def from_param(obj): return obj
+
+class FuncDecl(ctypes.c_void_p):
+ def __init__(self, decl): self._as_parameter_ = decl
+ def from_param(obj): return obj
+
+class Ast(ctypes.c_void_p):
+ def __init__(self, ast): self._as_parameter_ = ast
+ def from_param(obj): return obj
+
+class Pattern(ctypes.c_void_p):
+ def __init__(self, pattern): self._as_parameter_ = pattern
+ def from_param(obj): return obj
+
+class Model(ctypes.c_void_p):
+ def __init__(self, model): self._as_parameter_ = model
+ def from_param(obj): return obj
+
+class Literals(ctypes.c_void_p):
+ def __init__(self, literals): self._as_parameter_ = literals
+ def from_param(obj): return obj
+
+class Constructor(ctypes.c_void_p):
+ def __init__(self, constructor): self._as_parameter_ = constructor
+ def from_param(obj): return obj
+
+class ConstructorList(ctypes.c_void_p):
+ def __init__(self, constructor_list): self._as_parameter_ = constructor_list
+ def from_param(obj): return obj
+
+class GoalObj(ctypes.c_void_p):
+ def __init__(self, goal): self._as_parameter_ = goal
+ def from_param(obj): return obj
+
+class TacticObj(ctypes.c_void_p):
+ def __init__(self, tactic): self._as_parameter_ = tactic
+ def from_param(obj): return obj
+
+class ProbeObj(ctypes.c_void_p):
+ def __init__(self, probe): self._as_parameter_ = probe
+ def from_param(obj): return obj
+
+class ApplyResultObj(ctypes.c_void_p):
+ def __init__(self, obj): self._as_parameter_ = obj
+ def from_param(obj): return obj
+
+class StatsObj(ctypes.c_void_p):
+ def __init__(self, statistics): self._as_parameter_ = statistics
+ def from_param(obj): return obj
+
+class SolverObj(ctypes.c_void_p):
+ def __init__(self, solver): self._as_parameter_ = solver
+ def from_param(obj): return obj
+
+class FixedpointObj(ctypes.c_void_p):
+ def __init__(self, fixedpoint): self._as_parameter_ = fixedpoint
+ def from_param(obj): return obj
+
+class OptimizeObj(ctypes.c_void_p):
+ def __init__(self, optimize): self._as_parameter_ = optimize
+ def from_param(obj): return obj
+
+class ModelObj(ctypes.c_void_p):
+ def __init__(self, model): self._as_parameter_ = model
+ def from_param(obj): return obj
+
+class AstVectorObj(ctypes.c_void_p):
+ def __init__(self, vector): self._as_parameter_ = vector
+ def from_param(obj): return obj
+
+class AstMapObj(ctypes.c_void_p):
+ def __init__(self, ast_map): self._as_parameter_ = ast_map
+ def from_param(obj): return obj
+
+class Params(ctypes.c_void_p):
+ def __init__(self, params): self._as_parameter_ = params
+ def from_param(obj): return obj
+
+class ParamDescrs(ctypes.c_void_p):
+ def __init__(self, paramdescrs): self._as_parameter_ = paramdescrs
+ def from_param(obj): return obj
+
+class FuncInterpObj(ctypes.c_void_p):
+ def __init__(self, f): self._as_parameter_ = f
+ def from_param(obj): return obj
+
+class FuncEntryObj(ctypes.c_void_p):
+ def __init__(self, e): self._as_parameter_ = e
+ def from_param(obj): return obj
+
+class RCFNumObj(ctypes.c_void_p):
+ def __init__(self, e): self._as_parameter_ = e
+ def from_param(obj): return obj
diff --git a/rba.tool.core/lib/z3/python/z3/z3util.py b/rba.tool.core/lib/z3/python/z3/z3util.py
new file mode 100644
index 0000000..fe7e76b
--- /dev/null
+++ b/rba.tool.core/lib/z3/python/z3/z3util.py
@@ -0,0 +1,508 @@
+############################################
+# Copyright (c) 2012 Microsoft Corporation
+#
+# Z3 Python interface
+#
+# Authors: Leonardo de Moura (leonardo)
+# ThanhVu (Vu) Nguyen <tnguyen@cs.unm.edu>
+############################################
+"""
+Usage:
+import common_z3 as CM_Z3
+"""
+
+from .z3 import *
+
+def vset(seq, idfun=None, as_list=True):
+ # This functions preserves the order of arguments while removing duplicates.
+ # This function is from https://code.google.com/p/common-python-vu/source/browse/vu_common.py
+ # (Thanhu's personal code). It has been copied here to avoid a dependency on vu_common.py.
+ """
+ order preserving
+
+ >>> vset([[11,2],1, [10,['9',1]],2, 1, [11,2],[3,3],[10,99],1,[10,['9',1]]],idfun=repr)
+ [[11, 2], 1, [10, ['9', 1]], 2, [3, 3], [10, 99]]
+ """
+
+ def _uniq_normal(seq):
+ d_ = {}
+ for s in seq:
+ if s not in d_:
+ d_[s] = None
+ yield s
+
+ def _uniq_idfun(seq,idfun):
+ d_ = {}
+ for s in seq:
+ h_ = idfun(s)
+ if h_ not in d_:
+ d_[h_] = None
+ yield s
+
+ if idfun is None:
+ res = _uniq_normal(seq)
+ else:
+ res = _uniq_idfun(seq,idfun)
+
+ return list(res) if as_list else res
+
+
+def get_z3_version(as_str=False):
+ major = ctypes.c_uint(0)
+ minor = ctypes.c_uint(0)
+ build = ctypes.c_uint(0)
+ rev = ctypes.c_uint(0)
+ Z3_get_version(major,minor,build,rev)
+ rs = map(int,(major.value,minor.value,build.value,rev.value))
+ if as_str:
+ return "{}.{}.{}.{}".format(*rs)
+ else:
+ return rs
+
+
+def ehash(v):
+ """
+ Returns a 'stronger' hash value than the default hash() method.
+ The result from hash() is not enough to distinguish between 2
+ z3 expressions in some cases.
+
+ Note: the following doctests will fail with Python 2.x as the
+ default formatting doesn't match that of 3.x.
+ >>> x1 = Bool('x'); x2 = Bool('x'); x3 = Int('x')
+ >>> print(x1.hash(),x2.hash(),x3.hash()) #BAD: all same hash values
+ 783810685 783810685 783810685
+ >>> print(ehash(x1), ehash(x2), ehash(x3))
+ x_783810685_1 x_783810685_1 x_783810685_2
+
+ """
+ if __debug__:
+ assert is_expr(v)
+
+ return "{}_{}_{}".format(str(v),v.hash(),v.sort_kind())
+
+
+"""
+In Z3, variables are called *uninterpreted* consts and
+variables are *interpreted* consts.
+"""
+
+def is_expr_var(v):
+ """
+ EXAMPLES:
+
+ >>> is_expr_var(Int('7'))
+ True
+ >>> is_expr_var(IntVal('7'))
+ False
+ >>> is_expr_var(Bool('y'))
+ True
+ >>> is_expr_var(Int('x') + 7 == Int('y'))
+ False
+ >>> LOnOff, (On,Off) = EnumSort("LOnOff",['On','Off'])
+ >>> Block,Reset,SafetyInjection=Consts("Block Reset SafetyInjection",LOnOff)
+ >>> is_expr_var(LOnOff)
+ False
+ >>> is_expr_var(On)
+ False
+ >>> is_expr_var(Block)
+ True
+ >>> is_expr_var(SafetyInjection)
+ True
+ """
+
+ return is_const(v) and v.decl().kind()==Z3_OP_UNINTERPRETED
+
+def is_expr_val(v):
+ """
+ EXAMPLES:
+
+ >>> is_expr_val(Int('7'))
+ False
+ >>> is_expr_val(IntVal('7'))
+ True
+ >>> is_expr_val(Bool('y'))
+ False
+ >>> is_expr_val(Int('x') + 7 == Int('y'))
+ False
+ >>> LOnOff, (On,Off) = EnumSort("LOnOff",['On','Off'])
+ >>> Block,Reset,SafetyInjection=Consts("Block Reset SafetyInjection",LOnOff)
+ >>> is_expr_val(LOnOff)
+ False
+ >>> is_expr_val(On)
+ True
+ >>> is_expr_val(Block)
+ False
+ >>> is_expr_val(SafetyInjection)
+ False
+ """
+ return is_const(v) and v.decl().kind()!=Z3_OP_UNINTERPRETED
+
+
+
+
+def get_vars(f,rs=[]):
+ """
+ >>> x,y = Ints('x y')
+ >>> a,b = Bools('a b')
+ >>> get_vars(Implies(And(x+y==0,x*2==10),Or(a,Implies(a,b==False))))
+ [x, y, a, b]
+
+ """
+ if __debug__:
+ assert is_expr(f)
+
+ if is_const(f):
+ if is_expr_val(f):
+ return rs
+ else: #variable
+ return vset(rs + [f],str)
+
+ else:
+ for f_ in f.children():
+ rs = get_vars(f_,rs)
+
+ return vset(rs,str)
+
+
+
+def mk_var(name,vsort):
+ if vsort.kind() == Z3_INT_SORT:
+ v = Int(name)
+ elif vsort.kind() == Z3_REAL_SORT:
+ v = Real(name)
+ elif vsort.kind() == Z3_BOOL_SORT:
+ v = Bool(name)
+ elif vsort.kind() == Z3_DATATYPE_SORT:
+ v = Const(name,vsort)
+
+ else:
+ assert False, 'Cannot handle this sort (s: %sid: %d)'\
+ %(vsort,vsort.kind())
+
+ return v
+
+
+
+def prove(claim,assume=None,verbose=0):
+ """
+ >>> r,m = prove(BoolVal(True),verbose=0); r,model_str(m,as_str=False)
+ (True, None)
+
+ #infinite counter example when proving contradiction
+ >>> r,m = prove(BoolVal(False)); r,model_str(m,as_str=False)
+ (False, [])
+
+ >>> x,y,z=Bools('x y z')
+ >>> r,m = prove(And(x,Not(x))); r,model_str(m,as_str=True)
+ (False, '[]')
+
+ >>> r,m = prove(True,assume=And(x,Not(x)),verbose=0)
+ Traceback (most recent call last):
+ ...
+ AssertionError: Assumption is alway False!
+
+ >>> r,m = prove(Implies(x,x),assume=y,verbose=2); r,model_str(m,as_str=False)
+ assume:
+ y
+ claim:
+ Implies(x, x)
+ to_prove:
+ Implies(y, Implies(x, x))
+ (True, None)
+
+ >>> r,m = prove(And(x,True),assume=y,verbose=0); r,model_str(m,as_str=False)
+ (False, [(x, False), (y, True)])
+
+ >>> r,m = prove(And(x,y),assume=y,verbose=0)
+ >>> print(r)
+ False
+ >>> print(model_str(m,as_str=True))
+ x = False
+ y = True
+
+ >>> a,b = Ints('a b')
+ >>> r,m = prove(a**b == b**a,assume=None,verbose=0)
+ E: cannot solve !
+ >>> r is None and m is None
+ True
+
+ """
+
+ if __debug__:
+ assert not assume or is_expr(assume)
+
+
+ to_prove = claim
+ if assume:
+ if __debug__:
+ is_proved,_ = prove(Not(assume))
+
+ def _f():
+ emsg = "Assumption is alway False!"
+ if verbose >= 2:
+ emsg = "{}\n{}".format(assume,emsg)
+ return emsg
+
+ assert is_proved==False, _f()
+
+ to_prove = Implies(assume,to_prove)
+
+
+
+ if verbose >= 2:
+ print('assume: ')
+ print(assume)
+ print('claim: ')
+ print(claim)
+ print('to_prove: ')
+ print(to_prove)
+
+ f = Not(to_prove)
+
+ models = get_models(f,k=1)
+ if models is None: #unknown
+ print('E: cannot solve !')
+ return None, None
+ elif models == False: #unsat
+ return True,None
+ else: #sat
+ if __debug__:
+ assert isinstance(models,list)
+
+ if models:
+ return False, models[0] #the first counterexample
+ else:
+ return False, [] #infinite counterexample,models
+
+
+def get_models(f,k):
+ """
+ Returns the first k models satisfiying f.
+ If f is not satisfiable, returns False.
+ If f cannot be solved, returns None
+ If f is satisfiable, returns the first k models
+ Note that if f is a tautology, e.g.\ True, then the result is []
+
+ Based on http://stackoverflow.com/questions/11867611/z3py-checking-all-solutions-for-equation
+
+ EXAMPLES:
+ >>> x, y = Ints('x y')
+ >>> len(get_models(And(0<=x,x <= 4),k=11))
+ 5
+ >>> get_models(And(0<=x**y,x <= 1),k=2) is None
+ True
+ >>> get_models(And(0<=x,x <= -1),k=2)
+ False
+ >>> len(get_models(x+y==7,5))
+ 5
+ >>> len(get_models(And(x<=5,x>=1),7))
+ 5
+ >>> get_models(And(x<=0,x>=5),7)
+ False
+
+ >>> x = Bool('x')
+ >>> get_models(And(x,Not(x)),k=1)
+ False
+ >>> get_models(Implies(x,x),k=1)
+ []
+ >>> get_models(BoolVal(True),k=1)
+ []
+
+
+
+ """
+
+ if __debug__:
+ assert is_expr(f)
+ assert k>=1
+
+
+
+ s = Solver()
+ s.add(f)
+
+ models = []
+ i = 0
+ while s.check() == sat and i < k:
+ i = i + 1
+
+ m = s.model()
+
+ if not m: #if m == []
+ break
+
+ models.append(m)
+
+
+ #create new constraint to block the current model
+ block = Not(And([v() == m[v] for v in m]))
+ s.add(block)
+
+
+ if s.check() == unknown:
+ return None
+ elif s.check() == unsat and i==0:
+ return False
+ else:
+ return models
+
+def is_tautology(claim,verbose=0):
+ """
+ >>> is_tautology(Implies(Bool('x'),Bool('x')))
+ True
+
+ >>> is_tautology(Implies(Bool('x'),Bool('y')))
+ False
+
+ >>> is_tautology(BoolVal(True))
+ True
+
+ >>> is_tautology(BoolVal(False))
+ False
+
+ """
+ return prove(claim=claim,assume=None,verbose=verbose)[0]
+
+
+def is_contradiction(claim,verbose=0):
+ """
+ >>> x,y=Bools('x y')
+ >>> is_contradiction(BoolVal(False))
+ True
+
+ >>> is_contradiction(BoolVal(True))
+ False
+
+ >>> is_contradiction(x)
+ False
+
+ >>> is_contradiction(Implies(x,y))
+ False
+
+ >>> is_contradiction(Implies(x,x))
+ False
+
+ >>> is_contradiction(And(x,Not(x)))
+ True
+ """
+
+ return prove(claim=Not(claim),assume=None,verbose=verbose)[0]
+
+
+def exact_one_model(f):
+ """
+ return True if f has exactly 1 model, False otherwise.
+
+ EXAMPLES:
+
+ >>> x, y = Ints('x y')
+ >>> exact_one_model(And(0<=x**y,x <= 0))
+ False
+
+ >>> exact_one_model(And(0<=x,x <= 0))
+ True
+
+ >>> exact_one_model(And(0<=x,x <= 1))
+ False
+
+ >>> exact_one_model(And(0<=x,x <= -1))
+ False
+ """
+
+ models = get_models(f,k=2)
+ if isinstance(models,list):
+ return len(models)==1
+ else:
+ return False
+
+
+
+def myBinOp(op,*L):
+ """
+ >>> myAnd(*[Bool('x'),Bool('y')])
+ And(x, y)
+
+ >>> myAnd(*[Bool('x'),None])
+ x
+
+ >>> myAnd(*[Bool('x')])
+ x
+
+ >>> myAnd(*[])
+
+ >>> myAnd(Bool('x'),Bool('y'))
+ And(x, y)
+
+ >>> myAnd(*[Bool('x'),Bool('y')])
+ And(x, y)
+
+ >>> myAnd([Bool('x'),Bool('y')])
+ And(x, y)
+
+ >>> myAnd((Bool('x'),Bool('y')))
+ And(x, y)
+
+ >>> myAnd(*[Bool('x'),Bool('y'),True])
+ Traceback (most recent call last):
+ ...
+ AssertionError
+ """
+
+ if __debug__:
+ assert op == Z3_OP_OR or op == Z3_OP_AND or op == Z3_OP_IMPLIES
+
+ if len(L)==1 and (isinstance(L[0],list) or isinstance(L[0],tuple)):
+ L = L[0]
+
+ if __debug__:
+ assert all(not isinstance(l,bool) for l in L)
+
+ L = [l for l in L if is_expr(l)]
+ if L:
+ if len(L)==1:
+ return L[0]
+ else:
+ if op == Z3_OP_OR:
+ return Or(L)
+ elif op == Z3_OP_AND:
+ return And(L)
+ else: #IMPLIES
+ return Implies(L[0],L[1])
+ else:
+ return None
+
+
+def myAnd(*L): return myBinOp(Z3_OP_AND,*L)
+def myOr(*L): return myBinOp(Z3_OP_OR,*L)
+def myImplies(a,b):return myBinOp(Z3_OP_IMPLIES,[a,b])
+
+
+
+Iff = lambda f: And(Implies(f[0],f[1]),Implies(f[1],f[0]))
+
+
+
+def model_str(m,as_str=True):
+ """
+ Returned a 'sorted' model (so that it's easier to see)
+ The model is sorted by its key,
+ e.g. if the model is y = 3 , x = 10, then the result is
+ x = 10, y = 3
+
+ EXAMPLES:
+ see doctest exampels from function prove()
+
+ """
+ if __debug__:
+ assert m is None or m == [] or isinstance(m,ModelRef)
+
+ if m :
+ vs = [(v,m[v]) for v in m]
+ vs = sorted(vs,key=lambda a,_: str(a))
+ if as_str:
+ return '\n'.join(['{} = {}'.format(k,v) for (k,v) in vs])
+ else:
+ return vs
+ else:
+ return str(m) if as_str else m
+
diff --git a/rba.tool.core/lib/z3/vcomp110.dll b/rba.tool.core/lib/z3/vcomp110.dll
new file mode 100644
index 0000000..d5a65ba
--- /dev/null
+++ b/rba.tool.core/lib/z3/vcomp110.dll
Binary files differ
diff --git a/rba.tool.core/lib/z3/z3.exe b/rba.tool.core/lib/z3/z3.exe
new file mode 100644
index 0000000..8a5411c
--- /dev/null
+++ b/rba.tool.core/lib/z3/z3.exe
Binary files differ
diff --git a/rba.tool.core/lib32/z3/LICENSE.txt b/rba.tool.core/lib32/z3/LICENSE.txt
new file mode 100644
index 0000000..cc90bed
--- /dev/null
+++ b/rba.tool.core/lib32/z3/LICENSE.txt
@@ -0,0 +1,10 @@
+Z3
+Copyright (c) Microsoft Corporation
+All rights reserved.
+MIT License
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file
diff --git a/rba.tool.core/lib32/z3/Microsoft.Z3.dll b/rba.tool.core/lib32/z3/Microsoft.Z3.dll
new file mode 100644
index 0000000..f1bfef9
--- /dev/null
+++ b/rba.tool.core/lib32/z3/Microsoft.Z3.dll
Binary files differ
diff --git a/rba.tool.core/lib32/z3/Microsoft.Z3.xml b/rba.tool.core/lib32/z3/Microsoft.Z3.xml
new file mode 100644
index 0000000..1120891
--- /dev/null
+++ b/rba.tool.core/lib32/z3/Microsoft.Z3.xml
@@ -0,0 +1,6921 @@
+<?xml version="1.0"?>
+<doc>
+ <assembly>
+ <name>Microsoft.Z3</name>
+ </assembly>
+ <members>
+ <member name="T:Microsoft.Z3.AlgebraicNum">
+ <summary>
+ Algebraic numbers
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.ArithExpr">
+ <summary>
+ Arithmetic expressions (int/real)
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Expr">
+ <summary>
+ Expressions are terms.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.AST">
+ <summary>
+ The abstract syntax tree (AST) class.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Z3Object">
+ <summary>
+ Internal base class for interfacing with native Z3 objects.
+ Should not be used externally.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Z3Object.Finalize">
+ <summary>
+ Finalizer.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Z3Object.Dispose">
+ <summary>
+ Disposes of the underlying native Z3 object.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.AST.op_Equality(Microsoft.Z3.AST,Microsoft.Z3.AST)">
+ <summary>
+ Comparison operator.
+ </summary>
+ <param name="a">An AST</param>
+ <param name="b">An AST</param>
+ <returns>True if <paramref name="a"/> and <paramref name="b"/> are from the same context
+ and represent the same sort; false otherwise.</returns>
+ </member>
+ <member name="M:Microsoft.Z3.AST.op_Inequality(Microsoft.Z3.AST,Microsoft.Z3.AST)">
+ <summary>
+ Comparison operator.
+ </summary>
+ <param name="a">An AST</param>
+ <param name="b">An AST</param>
+ <returns>True if <paramref name="a"/> and <paramref name="b"/> are not from the same context
+ or represent different sorts; false otherwise.</returns>
+ </member>
+ <member name="M:Microsoft.Z3.AST.Equals(System.Object)">
+ <summary>
+ Object comparison.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.AST.CompareTo(System.Object)">
+ <summary>
+ Object Comparison.
+ </summary>
+ <param name="other">Another AST</param>
+ <returns>Negative if the object should be sorted before <paramref name="other"/>, positive if after else zero.</returns>
+ </member>
+ <member name="M:Microsoft.Z3.AST.GetHashCode">
+ <summary>
+ The AST's hash code.
+ </summary>
+ <returns>A hash code</returns>
+ </member>
+ <member name="M:Microsoft.Z3.AST.Translate(Microsoft.Z3.Context)">
+ <summary>
+ Translates (copies) the AST to the Context <paramref name="ctx"/>.
+ </summary>
+ <param name="ctx">A context</param>
+ <returns>A copy of the AST which is associated with <paramref name="ctx"/></returns>
+ </member>
+ <member name="M:Microsoft.Z3.AST.ToString">
+ <summary>
+ A string representation of the AST.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.AST.SExpr">
+ <summary>
+ A string representation of the AST in s-expression notation.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.AST.Id">
+ <summary>
+ A unique identifier for the AST (unique among all ASTs).
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.AST.ASTKind">
+ <summary>
+ The kind of the AST.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.AST.IsExpr">
+ <summary>
+ Indicates whether the AST is an Expr
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.AST.IsApp">
+ <summary>
+ Indicates whether the AST is an application
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.AST.IsVar">
+ <summary>
+ Indicates whether the AST is a BoundVariable
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.AST.IsQuantifier">
+ <summary>
+ Indicates whether the AST is a Quantifier
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.AST.IsSort">
+ <summary>
+ Indicates whether the AST is a Sort
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.AST.IsFuncDecl">
+ <summary>
+ Indicates whether the AST is a FunctionDeclaration
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.IDecRefQueue">
+ <summary>
+ DecRefQueue interface
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.IDecRefQueue.SetLimit(System.UInt32)">
+ <summary>
+ Sets the limit on numbers of objects that are kept back at GC collection.
+ </summary>
+ <param name="l"></param>
+ </member>
+ <member name="M:Microsoft.Z3.Expr.Simplify(Microsoft.Z3.Params)">
+ <summary>
+ Returns a simplified version of the expression.
+ </summary>
+ <param name="p">A set of parameters to configure the simplifier</param>
+ <seealso cref="M:Microsoft.Z3.Context.SimplifyHelp"/>
+ </member>
+ <member name="M:Microsoft.Z3.Expr.Update(Microsoft.Z3.Expr[])">
+ <summary>
+ Update the arguments of the expression using the arguments <paramref name="args"/>
+ The number of new arguments should coincide with the current number of arguments.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Expr.Substitute(Microsoft.Z3.Expr[],Microsoft.Z3.Expr[])">
+ <summary>
+ Substitute every occurrence of <c>from[i]</c> in the expression with <c>to[i]</c>, for <c>i</c> smaller than <c>num_exprs</c>.
+ </summary>
+ <remarks>
+ The result is the new expression. The arrays <c>from</c> and <c>to</c> must have size <c>num_exprs</c>.
+ For every <c>i</c> smaller than <c>num_exprs</c>, we must have that
+ sort of <c>from[i]</c> must be equal to sort of <c>to[i]</c>.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Expr.Substitute(Microsoft.Z3.Expr,Microsoft.Z3.Expr)">
+ <summary>
+ Substitute every occurrence of <c>from</c> in the expression with <c>to</c>.
+ </summary>
+ <seealso cref="M:Microsoft.Z3.Expr.Substitute(Microsoft.Z3.Expr[],Microsoft.Z3.Expr[])"/>
+ </member>
+ <member name="M:Microsoft.Z3.Expr.SubstituteVars(Microsoft.Z3.Expr[])">
+ <summary>
+ Substitute the free variables in the expression with the expressions in <paramref name="to"/>
+ </summary>
+ <remarks>
+ For every <c>i</c> smaller than <c>num_exprs</c>, the variable with de-Bruijn index <c>i</c> is replaced with term <c>to[i]</c>.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Expr.Translate(Microsoft.Z3.Context)">
+ <summary>
+ Translates (copies) the term to the Context <paramref name="ctx"/>.
+ </summary>
+ <param name="ctx">A context</param>
+ <returns>A copy of the term which is associated with <paramref name="ctx"/></returns>
+ </member>
+ <member name="M:Microsoft.Z3.Expr.ToString">
+ <summary>
+ Returns a string representation of the expression.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Expr.#ctor(Microsoft.Z3.Context,System.IntPtr)">
+ <summary>
+ Constructor for Expr
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.FuncDecl">
+ <summary>
+ The function declaration of the function that is applied in this expression.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.BoolValue">
+ <summary>
+ Indicates whether the expression is the true or false expression
+ or something else (Z3_L_UNDEF).
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.NumArgs">
+ <summary>
+ The number of arguments of the expression.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.Args">
+ <summary>
+ The arguments of the expression.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsNumeral">
+ <summary>
+ Indicates whether the term is a numeral
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsWellSorted">
+ <summary>
+ Indicates whether the term is well-sorted.
+ </summary>
+ <returns>True if the term is well-sorted, false otherwise.</returns>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.Sort">
+ <summary>
+ The Sort of the term.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsConst">
+ <summary>
+ Indicates whether the term represents a constant.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsIntNum">
+ <summary>
+ Indicates whether the term is an integer numeral.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsRatNum">
+ <summary>
+ Indicates whether the term is a real numeral.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsAlgebraicNumber">
+ <summary>
+ Indicates whether the term is an algebraic number
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBool">
+ <summary>
+ Indicates whether the term has Boolean sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsTrue">
+ <summary>
+ Indicates whether the term is the constant true.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFalse">
+ <summary>
+ Indicates whether the term is the constant false.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsEq">
+ <summary>
+ Indicates whether the term is an equality predicate.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsDistinct">
+ <summary>
+ Indicates whether the term is an n-ary distinct predicate (every argument is mutually distinct).
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsITE">
+ <summary>
+ Indicates whether the term is a ternary if-then-else term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsAnd">
+ <summary>
+ Indicates whether the term is an n-ary conjunction
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsOr">
+ <summary>
+ Indicates whether the term is an n-ary disjunction
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsIff">
+ <summary>
+ Indicates whether the term is an if-and-only-if (Boolean equivalence, binary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsXor">
+ <summary>
+ Indicates whether the term is an exclusive or
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsNot">
+ <summary>
+ Indicates whether the term is a negation
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsImplies">
+ <summary>
+ Indicates whether the term is an implication
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsInterpolant">
+ <summary>
+ Indicates whether the term is marked for interpolation.
+ </summary>
+ <remarks></remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsInt">
+ <summary>
+ Indicates whether the term is of integer sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsReal">
+ <summary>
+ Indicates whether the term is of sort real.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsArithmeticNumeral">
+ <summary>
+ Indicates whether the term is an arithmetic numeral.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsLE">
+ <summary>
+ Indicates whether the term is a less-than-or-equal
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsGE">
+ <summary>
+ Indicates whether the term is a greater-than-or-equal
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsLT">
+ <summary>
+ Indicates whether the term is a less-than
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsGT">
+ <summary>
+ Indicates whether the term is a greater-than
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsAdd">
+ <summary>
+ Indicates whether the term is addition (binary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsSub">
+ <summary>
+ Indicates whether the term is subtraction (binary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsUMinus">
+ <summary>
+ Indicates whether the term is a unary minus
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsMul">
+ <summary>
+ Indicates whether the term is multiplication (binary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsDiv">
+ <summary>
+ Indicates whether the term is division (binary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsIDiv">
+ <summary>
+ Indicates whether the term is integer division (binary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsRemainder">
+ <summary>
+ Indicates whether the term is remainder (binary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsModulus">
+ <summary>
+ Indicates whether the term is modulus (binary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsIntToReal">
+ <summary>
+ Indicates whether the term is a coercion of integer to real (unary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsRealToInt">
+ <summary>
+ Indicates whether the term is a coercion of real to integer (unary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsRealIsInt">
+ <summary>
+ Indicates whether the term is a check that tests whether a real is integral (unary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsArray">
+ <summary>
+ Indicates whether the term is of an array sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsStore">
+ <summary>
+ Indicates whether the term is an array store.
+ </summary>
+ <remarks>It satisfies select(store(a,i,v),j) = if i = j then v else select(a,j).
+ Array store takes at least 3 arguments. </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsSelect">
+ <summary>
+ Indicates whether the term is an array select.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsConstantArray">
+ <summary>
+ Indicates whether the term is a constant array.
+ </summary>
+ <remarks>For example, select(const(v),i) = v holds for every v and i. The function is unary.</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsDefaultArray">
+ <summary>
+ Indicates whether the term is a default array.
+ </summary>
+ <remarks>For example default(const(v)) = v. The function is unary.</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsArrayMap">
+ <summary>
+ Indicates whether the term is an array map.
+ </summary>
+ <remarks>It satisfies map[f](a1,..,a_n)[i] = f(a1[i],...,a_n[i]) for every i.</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsAsArray">
+ <summary>
+ Indicates whether the term is an as-array term.
+ </summary>
+ <remarks>An as-array term is n array value that behaves as the function graph of the
+ function passed as parameter.</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsSetUnion">
+ <summary>
+ Indicates whether the term is set union
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsSetIntersect">
+ <summary>
+ Indicates whether the term is set intersection
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsSetDifference">
+ <summary>
+ Indicates whether the term is set difference
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsSetComplement">
+ <summary>
+ Indicates whether the term is set complement
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsSetSubset">
+ <summary>
+ Indicates whether the term is set subset
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBV">
+ <summary>
+ Indicates whether the terms is of bit-vector sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVNumeral">
+ <summary>
+ Indicates whether the term is a bit-vector numeral
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVBitOne">
+ <summary>
+ Indicates whether the term is a one-bit bit-vector with value one
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVBitZero">
+ <summary>
+ Indicates whether the term is a one-bit bit-vector with value zero
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVUMinus">
+ <summary>
+ Indicates whether the term is a bit-vector unary minus
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVAdd">
+ <summary>
+ Indicates whether the term is a bit-vector addition (binary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVSub">
+ <summary>
+ Indicates whether the term is a bit-vector subtraction (binary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVMul">
+ <summary>
+ Indicates whether the term is a bit-vector multiplication (binary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVSDiv">
+ <summary>
+ Indicates whether the term is a bit-vector signed division (binary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVUDiv">
+ <summary>
+ Indicates whether the term is a bit-vector unsigned division (binary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVSRem">
+ <summary>
+ Indicates whether the term is a bit-vector signed remainder (binary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVURem">
+ <summary>
+ Indicates whether the term is a bit-vector unsigned remainder (binary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVSMod">
+ <summary>
+ Indicates whether the term is a bit-vector signed modulus
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVSDiv0">
+ <summary>
+ Indicates whether the term is a bit-vector signed division by zero
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVUDiv0">
+ <summary>
+ Indicates whether the term is a bit-vector unsigned division by zero
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVSRem0">
+ <summary>
+ Indicates whether the term is a bit-vector signed remainder by zero
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVURem0">
+ <summary>
+ Indicates whether the term is a bit-vector unsigned remainder by zero
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVSMod0">
+ <summary>
+ Indicates whether the term is a bit-vector signed modulus by zero
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVULE">
+ <summary>
+ Indicates whether the term is an unsigned bit-vector less-than-or-equal
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVSLE">
+ <summary>
+ Indicates whether the term is a signed bit-vector less-than-or-equal
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVUGE">
+ <summary>
+ Indicates whether the term is an unsigned bit-vector greater-than-or-equal
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVSGE">
+ <summary>
+ Indicates whether the term is a signed bit-vector greater-than-or-equal
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVULT">
+ <summary>
+ Indicates whether the term is an unsigned bit-vector less-than
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVSLT">
+ <summary>
+ Indicates whether the term is a signed bit-vector less-than
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVUGT">
+ <summary>
+ Indicates whether the term is an unsigned bit-vector greater-than
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVSGT">
+ <summary>
+ Indicates whether the term is a signed bit-vector greater-than
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVAND">
+ <summary>
+ Indicates whether the term is a bit-wise AND
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVOR">
+ <summary>
+ Indicates whether the term is a bit-wise OR
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVNOT">
+ <summary>
+ Indicates whether the term is a bit-wise NOT
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVXOR">
+ <summary>
+ Indicates whether the term is a bit-wise XOR
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVNAND">
+ <summary>
+ Indicates whether the term is a bit-wise NAND
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVNOR">
+ <summary>
+ Indicates whether the term is a bit-wise NOR
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVXNOR">
+ <summary>
+ Indicates whether the term is a bit-wise XNOR
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVConcat">
+ <summary>
+ Indicates whether the term is a bit-vector concatenation (binary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVSignExtension">
+ <summary>
+ Indicates whether the term is a bit-vector sign extension
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVZeroExtension">
+ <summary>
+ Indicates whether the term is a bit-vector zero extension
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVExtract">
+ <summary>
+ Indicates whether the term is a bit-vector extraction
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVRepeat">
+ <summary>
+ Indicates whether the term is a bit-vector repetition
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVReduceOR">
+ <summary>
+ Indicates whether the term is a bit-vector reduce OR
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVReduceAND">
+ <summary>
+ Indicates whether the term is a bit-vector reduce AND
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVComp">
+ <summary>
+ Indicates whether the term is a bit-vector comparison
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVShiftLeft">
+ <summary>
+ Indicates whether the term is a bit-vector shift left
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVShiftRightLogical">
+ <summary>
+ Indicates whether the term is a bit-vector logical shift right
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVShiftRightArithmetic">
+ <summary>
+ Indicates whether the term is a bit-vector arithmetic shift left
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVRotateLeft">
+ <summary>
+ Indicates whether the term is a bit-vector rotate left
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVRotateRight">
+ <summary>
+ Indicates whether the term is a bit-vector rotate right
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVRotateLeftExtended">
+ <summary>
+ Indicates whether the term is a bit-vector rotate left (extended)
+ </summary>
+ <remarks>Similar to Z3_OP_ROTATE_LEFT, but it is a binary operator instead of a parametric one.</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVRotateRightExtended">
+ <summary>
+ Indicates whether the term is a bit-vector rotate right (extended)
+ </summary>
+ <remarks>Similar to Z3_OP_ROTATE_RIGHT, but it is a binary operator instead of a parametric one.</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsIntToBV">
+ <summary>
+ Indicates whether the term is a coercion from integer to bit-vector
+ </summary>
+ <remarks>This function is not supported by the decision procedures. Only the most
+ rudimentary simplification rules are applied to this function.</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVToInt">
+ <summary>
+ Indicates whether the term is a coercion from bit-vector to integer
+ </summary>
+ <remarks>This function is not supported by the decision procedures. Only the most
+ rudimentary simplification rules are applied to this function.</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVCarry">
+ <summary>
+ Indicates whether the term is a bit-vector carry
+ </summary>
+ <remarks>Compute the carry bit in a full-adder. The meaning is given by the
+ equivalence (carry l1 l2 l3) &lt;=&gt; (or (and l1 l2) (and l1 l3) (and l2 l3)))</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVXOR3">
+ <summary>
+ Indicates whether the term is a bit-vector ternary XOR
+ </summary>
+ <remarks>The meaning is given by the equivalence (xor3 l1 l2 l3) &lt;=&gt; (xor (xor l1 l2) l3)</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsLabel">
+ <summary>
+ Indicates whether the term is a label (used by the Boogie Verification condition generator).
+ </summary>
+ <remarks>The label has two parameters, a string and a Boolean polarity. It takes one argument, a formula.</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsLabelLit">
+ <summary>
+ Indicates whether the term is a label literal (used by the Boogie Verification condition generator).
+ </summary>
+ <remarks>A label literal has a set of string parameters. It takes no arguments.</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsString">
+ <summary>
+ Check whether expression is a string constant.
+ </summary>
+ <returns>a Boolean</returns>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.String">
+ <summary>
+ Retrieve string corresponding to string constant.
+ </summary>
+ <remarks>the expression should be a string constant, (IsString should be true).</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsConcat">
+ <summary>
+ Check whether expression is a concatentation.
+ </summary>
+ <returns>a Boolean</returns>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsPrefix">
+ <summary>
+ Check whether expression is a prefix.
+ </summary>
+ <returns>a Boolean</returns>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsSuffix">
+ <summary>
+ Check whether expression is a suffix.
+ </summary>
+ <returns>a Boolean</returns>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsContains">
+ <summary>
+ Check whether expression is a contains.
+ </summary>
+ <returns>a Boolean</returns>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsExtract">
+ <summary>
+ Check whether expression is an extract.
+ </summary>
+ <returns>a Boolean</returns>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsReplace">
+ <summary>
+ Check whether expression is a replace.
+ </summary>
+ <returns>a Boolean</returns>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsAt">
+ <summary>
+ Check whether expression is an at.
+ </summary>
+ <returns>a Boolean</returns>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsLength">
+ <summary>
+ Check whether expression is a sequence length.
+ </summary>
+ <returns>a Boolean</returns>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsIndex">
+ <summary>
+ Check whether expression is a sequence index.
+ </summary>
+ <returns>a Boolean</returns>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsOEQ">
+ <summary>
+ Indicates whether the term is a binary equivalence modulo namings.
+ </summary>
+ <remarks>This binary predicate is used in proof terms.
+ It captures equisatisfiability and equivalence modulo renamings.</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofTrue">
+ <summary>
+ Indicates whether the term is a Proof for the expression 'true'.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofAsserted">
+ <summary>
+ Indicates whether the term is a proof for a fact asserted by the user.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofGoal">
+ <summary>
+ Indicates whether the term is a proof for a fact (tagged as goal) asserted by the user.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofModusPonens">
+ <summary>
+ Indicates whether the term is proof via modus ponens
+ </summary>
+ <remarks>
+ Given a proof for p and a proof for (implies p q), produces a proof for q.
+ T1: p
+ T2: (implies p q)
+ [mp T1 T2]: q
+ The second antecedents may also be a proof for (iff p q).</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofReflexivity">
+ <summary>
+ Indicates whether the term is a proof for (R t t), where R is a reflexive relation.
+ </summary>
+ <remarks>This proof object has no antecedents.
+ The only reflexive relations that are used are
+ equivalence modulo namings, equality and equivalence.
+ That is, R is either '~', '=' or 'iff'.</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofSymmetry">
+ <summary>
+ Indicates whether the term is proof by symmetricity of a relation
+ </summary>
+ <remarks>
+ Given an symmetric relation R and a proof for (R t s), produces a proof for (R s t).
+ T1: (R t s)
+ [symmetry T1]: (R s t)
+ T1 is the antecedent of this proof object.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofTransitivity">
+ <summary>
+ Indicates whether the term is a proof by transitivity of a relation
+ </summary>
+ <remarks>
+ Given a transitive relation R, and proofs for (R t s) and (R s u), produces a proof
+ for (R t u).
+ T1: (R t s)
+ T2: (R s u)
+ [trans T1 T2]: (R t u)
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofTransitivityStar">
+ <summary>
+ Indicates whether the term is a proof by condensed transitivity of a relation
+ </summary>
+ <remarks>
+ Condensed transitivity proof. This proof object is only used if the parameter PROOF_MODE is 1.
+ It combines several symmetry and transitivity proofs.
+ Example:
+ T1: (R a b)
+ T2: (R c b)
+ T3: (R c d)
+ [trans* T1 T2 T3]: (R a d)
+ R must be a symmetric and transitive relation.
+
+ Assuming that this proof object is a proof for (R s t), then
+ a proof checker must check if it is possible to prove (R s t)
+ using the antecedents, symmetry and transitivity. That is,
+ if there is a path from s to t, if we view every
+ antecedent (R a b) as an edge between a and b.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofMonotonicity">
+ <summary>
+ Indicates whether the term is a monotonicity proof object.
+ </summary>
+ <remarks>
+ T1: (R t_1 s_1)
+ ...
+ Tn: (R t_n s_n)
+ [monotonicity T1 ... Tn]: (R (f t_1 ... t_n) (f s_1 ... s_n))
+ Remark: if t_i == s_i, then the antecedent Ti is suppressed.
+ That is, reflexivity proofs are supressed to save space.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofQuantIntro">
+ <summary>
+ Indicates whether the term is a quant-intro proof
+ </summary>
+ <remarks>
+ Given a proof for (~ p q), produces a proof for (~ (forall (x) p) (forall (x) q)).
+ T1: (~ p q)
+ [quant-intro T1]: (~ (forall (x) p) (forall (x) q))
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofDistributivity">
+ <summary>
+ Indicates whether the term is a distributivity proof object.
+ </summary>
+ <remarks>
+ Given that f (= or) distributes over g (= and), produces a proof for
+ (= (f a (g c d))
+ (g (f a c) (f a d)))
+ If f and g are associative, this proof also justifies the following equality:
+ (= (f (g a b) (g c d))
+ (g (f a c) (f a d) (f b c) (f b d)))
+ where each f and g can have arbitrary number of arguments.
+
+ This proof object has no antecedents.
+ Remark. This rule is used by the CNF conversion pass and
+ instantiated by f = or, and g = and.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofAndElimination">
+ <summary>
+ Indicates whether the term is a proof by elimination of AND
+ </summary>
+ <remarks>
+ Given a proof for (and l_1 ... l_n), produces a proof for l_i
+ T1: (and l_1 ... l_n)
+ [and-elim T1]: l_i
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofOrElimination">
+ <summary>
+ Indicates whether the term is a proof by eliminiation of not-or
+ </summary>
+ <remarks>
+ Given a proof for (not (or l_1 ... l_n)), produces a proof for (not l_i).
+ T1: (not (or l_1 ... l_n))
+ [not-or-elim T1]: (not l_i)
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofRewrite">
+ <summary>
+ Indicates whether the term is a proof by rewriting
+ </summary>
+ <remarks>
+ A proof for a local rewriting step (= t s).
+ The head function symbol of t is interpreted.
+
+ This proof object has no antecedents.
+ The conclusion of a rewrite rule is either an equality (= t s),
+ an equivalence (iff t s), or equi-satisfiability (~ t s).
+ Remark: if f is bool, then = is iff.
+
+ Examples:
+ (= (+ x 0) x)
+ (= (+ x 1 2) (+ 3 x))
+ (iff (or x false) x)
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofRewriteStar">
+ <summary>
+ Indicates whether the term is a proof by rewriting
+ </summary>
+ <remarks>
+ A proof for rewriting an expression t into an expression s.
+ This proof object is used if the parameter PROOF_MODE is 1.
+ This proof object can have n antecedents.
+ The antecedents are proofs for equalities used as substitution rules.
+ The object is also used in a few cases if the parameter PROOF_MODE is 2.
+ The cases are:
+ - When applying contextual simplification (CONTEXT_SIMPLIFIER=true)
+ - When converting bit-vectors to Booleans (BIT2BOOL=true)
+ - When pulling ite expression up (PULL_CHEAP_ITE_TREES=true)
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofPullQuant">
+ <summary>
+ Indicates whether the term is a proof for pulling quantifiers out.
+ </summary>
+ <remarks>
+ A proof for (iff (f (forall (x) q(x)) r) (forall (x) (f (q x) r))). This proof object has no antecedents.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofPullQuantStar">
+ <summary>
+ Indicates whether the term is a proof for pulling quantifiers out.
+ </summary>
+ <remarks>
+ A proof for (iff P Q) where Q is in prenex normal form.
+ This proof object is only used if the parameter PROOF_MODE is 1.
+ This proof object has no antecedents
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofPushQuant">
+ <summary>
+ Indicates whether the term is a proof for pushing quantifiers in.
+ </summary>
+ <remarks>
+ A proof for:
+ (iff (forall (x_1 ... x_m) (and p_1[x_1 ... x_m] ... p_n[x_1 ... x_m]))
+ (and (forall (x_1 ... x_m) p_1[x_1 ... x_m])
+ ...
+ (forall (x_1 ... x_m) p_n[x_1 ... x_m])))
+ This proof object has no antecedents
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofElimUnusedVars">
+ <summary>
+ Indicates whether the term is a proof for elimination of unused variables.
+ </summary>
+ <remarks>
+ A proof for (iff (forall (x_1 ... x_n y_1 ... y_m) p[x_1 ... x_n])
+ (forall (x_1 ... x_n) p[x_1 ... x_n]))
+
+ It is used to justify the elimination of unused variables.
+ This proof object has no antecedents.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofDER">
+ <summary>
+ Indicates whether the term is a proof for destructive equality resolution
+ </summary>
+ <remarks>
+ A proof for destructive equality resolution:
+ (iff (forall (x) (or (not (= x t)) P[x])) P[t])
+ if x does not occur in t.
+
+ This proof object has no antecedents.
+
+ Several variables can be eliminated simultaneously.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofQuantInst">
+ <summary>
+ Indicates whether the term is a proof for quantifier instantiation
+ </summary>
+ <remarks>
+ A proof of (or (not (forall (x) (P x))) (P a))
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofHypothesis">
+ <summary>
+ Indicates whether the term is a hypthesis marker.
+ </summary>
+ <remarks>Mark a hypothesis in a natural deduction style proof.</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofLemma">
+ <summary>
+ Indicates whether the term is a proof by lemma
+ </summary>
+ <remarks>
+ T1: false
+ [lemma T1]: (or (not l_1) ... (not l_n))
+
+ This proof object has one antecedent: a hypothetical proof for false.
+ It converts the proof in a proof for (or (not l_1) ... (not l_n)),
+ when T1 contains the hypotheses: l_1, ..., l_n.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofUnitResolution">
+ <summary>
+ Indicates whether the term is a proof by unit resolution
+ </summary>
+ <remarks>
+ T1: (or l_1 ... l_n l_1' ... l_m')
+ T2: (not l_1)
+ ...
+ T(n+1): (not l_n)
+ [unit-resolution T1 ... T(n+1)]: (or l_1' ... l_m')
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofIFFTrue">
+ <summary>
+ Indicates whether the term is a proof by iff-true
+ </summary>
+ <remarks>
+ T1: p
+ [iff-true T1]: (iff p true)
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofIFFFalse">
+ <summary>
+ Indicates whether the term is a proof by iff-false
+ </summary>
+ <remarks>
+ T1: (not p)
+ [iff-false T1]: (iff p false)
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofCommutativity">
+ <summary>
+ Indicates whether the term is a proof by commutativity
+ </summary>
+ <remarks>
+ [comm]: (= (f a b) (f b a))
+
+ f is a commutative operator.
+
+ This proof object has no antecedents.
+ Remark: if f is bool, then = is iff.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofDefAxiom">
+ <summary>
+ Indicates whether the term is a proof for Tseitin-like axioms
+ </summary>
+ <remarks>
+ Proof object used to justify Tseitin's like axioms:
+
+ (or (not (and p q)) p)
+ (or (not (and p q)) q)
+ (or (not (and p q r)) p)
+ (or (not (and p q r)) q)
+ (or (not (and p q r)) r)
+ ...
+ (or (and p q) (not p) (not q))
+ (or (not (or p q)) p q)
+ (or (or p q) (not p))
+ (or (or p q) (not q))
+ (or (not (iff p q)) (not p) q)
+ (or (not (iff p q)) p (not q))
+ (or (iff p q) (not p) (not q))
+ (or (iff p q) p q)
+ (or (not (ite a b c)) (not a) b)
+ (or (not (ite a b c)) a c)
+ (or (ite a b c) (not a) (not b))
+ (or (ite a b c) a (not c))
+ (or (not (not a)) (not a))
+ (or (not a) a)
+
+ This proof object has no antecedents.
+ Note: all axioms are propositional tautologies.
+ Note also that 'and' and 'or' can take multiple arguments.
+ You can recover the propositional tautologies by
+ unfolding the Boolean connectives in the axioms a small
+ bounded number of steps (=3).
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofDefIntro">
+ <summary>
+ Indicates whether the term is a proof for introduction of a name
+ </summary>
+ <remarks>
+ Introduces a name for a formula/term.
+ Suppose e is an expression with free variables x, and def-intro
+ introduces the name n(x). The possible cases are:
+
+ When e is of Boolean type:
+ [def-intro]: (and (or n (not e)) (or (not n) e))
+
+ or:
+ [def-intro]: (or (not n) e)
+ when e only occurs positively.
+
+ When e is of the form (ite cond th el):
+ [def-intro]: (and (or (not cond) (= n th)) (or cond (= n el)))
+
+ Otherwise:
+ [def-intro]: (= n e)
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofApplyDef">
+ <summary>
+ Indicates whether the term is a proof for application of a definition
+ </summary>
+ <remarks>
+ [apply-def T1]: F ~ n
+ F is 'equivalent' to n, given that T1 is a proof that
+ n is a name for F.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofIFFOEQ">
+ <summary>
+ Indicates whether the term is a proof iff-oeq
+ </summary>
+ <remarks>
+ T1: (iff p q)
+ [iff~ T1]: (~ p q)
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofNNFPos">
+ <summary>
+ Indicates whether the term is a proof for a positive NNF step
+ </summary>
+ <remarks>
+ Proof for a (positive) NNF step. Example:
+
+ T1: (not s_1) ~ r_1
+ T2: (not s_2) ~ r_2
+ T3: s_1 ~ r_1'
+ T4: s_2 ~ r_2'
+ [nnf-pos T1 T2 T3 T4]: (~ (iff s_1 s_2)
+ (and (or r_1 r_2') (or r_1' r_2)))
+
+ The negation normal form steps NNF_POS and NNF_NEG are used in the following cases:
+ (a) When creating the NNF of a positive force quantifier.
+ The quantifier is retained (unless the bound variables are eliminated).
+ Example
+ T1: q ~ q_new
+ [nnf-pos T1]: (~ (forall (x T) q) (forall (x T) q_new))
+
+ (b) When recursively creating NNF over Boolean formulas, where the top-level
+ connective is changed during NNF conversion. The relevant Boolean connectives
+ for NNF_POS are 'implies', 'iff', 'xor', 'ite'.
+ NNF_NEG furthermore handles the case where negation is pushed
+ over Boolean connectives 'and' and 'or'.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofNNFNeg">
+ <summary>
+ Indicates whether the term is a proof for a negative NNF step
+ </summary>
+ <remarks>
+ Proof for a (negative) NNF step. Examples:
+
+ T1: (not s_1) ~ r_1
+ ...
+ Tn: (not s_n) ~ r_n
+ [nnf-neg T1 ... Tn]: (not (and s_1 ... s_n)) ~ (or r_1 ... r_n)
+ and
+ T1: (not s_1) ~ r_1
+ ...
+ Tn: (not s_n) ~ r_n
+ [nnf-neg T1 ... Tn]: (not (or s_1 ... s_n)) ~ (and r_1 ... r_n)
+ and
+ T1: (not s_1) ~ r_1
+ T2: (not s_2) ~ r_2
+ T3: s_1 ~ r_1'
+ T4: s_2 ~ r_2'
+ [nnf-neg T1 T2 T3 T4]: (~ (not (iff s_1 s_2))
+ (and (or r_1 r_2) (or r_1' r_2')))
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofNNFStar">
+ <summary>
+ Indicates whether the term is a proof for (~ P Q) here Q is in negation normal form.
+ </summary>
+ <remarks>
+ A proof for (~ P Q) where Q is in negation normal form.
+
+ This proof object is only used if the parameter PROOF_MODE is 1.
+
+ This proof object may have n antecedents. Each antecedent is a PR_DEF_INTRO.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofCNFStar">
+ <summary>
+ Indicates whether the term is a proof for (~ P Q) where Q is in conjunctive normal form.
+ </summary>
+ <remarks>
+ A proof for (~ P Q) where Q is in conjunctive normal form.
+ This proof object is only used if the parameter PROOF_MODE is 1.
+ This proof object may have n antecedents. Each antecedent is a PR_DEF_INTRO.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofSkolemize">
+ <summary>
+ Indicates whether the term is a proof for a Skolemization step
+ </summary>
+ <remarks>
+ Proof for:
+
+ [sk]: (~ (not (forall x (p x y))) (not (p (sk y) y)))
+ [sk]: (~ (exists x (p x y)) (p (sk y) y))
+
+ This proof object has no antecedents.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofModusPonensOEQ">
+ <summary>
+ Indicates whether the term is a proof by modus ponens for equi-satisfiability.
+ </summary>
+ <remarks>
+ Modus ponens style rule for equi-satisfiability.
+ T1: p
+ T2: (~ p q)
+ [mp~ T1 T2]: q
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofTheoryLemma">
+ <summary>
+ Indicates whether the term is a proof for theory lemma
+ </summary>
+ <remarks>
+ Generic proof for theory lemmas.
+
+ The theory lemma function comes with one or more parameters.
+ The first parameter indicates the name of the theory.
+ For the theory of arithmetic, additional parameters provide hints for
+ checking the theory lemma.
+ The hints for arithmetic are:
+ - farkas - followed by rational coefficients. Multiply the coefficients to the
+ inequalities in the lemma, add the (negated) inequalities and obtain a contradiction.
+ - triangle-eq - Indicates a lemma related to the equivalence:
+ (iff (= t1 t2) (and (&lt;= t1 t2) (&lt;= t2 t1)))
+ - gcd-test - Indicates an integer linear arithmetic lemma that uses a gcd test.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsRelation">
+ <summary>
+ Indicates whether the term is of relation sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsRelationStore">
+ <summary>
+ Indicates whether the term is an relation store
+ </summary>
+ <remarks>
+ Insert a record into a relation.
+ The function takes <c>n+1</c> arguments, where the first argument is the relation and the remaining <c>n</c> elements
+ correspond to the <c>n</c> columns of the relation.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsEmptyRelation">
+ <summary>
+ Indicates whether the term is an empty relation
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsIsEmptyRelation">
+ <summary>
+ Indicates whether the term is a test for the emptiness of a relation
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsRelationalJoin">
+ <summary>
+ Indicates whether the term is a relational join
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsRelationUnion">
+ <summary>
+ Indicates whether the term is the union or convex hull of two relations.
+ </summary>
+ <remarks>The function takes two arguments.</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsRelationWiden">
+ <summary>
+ Indicates whether the term is the widening of two relations
+ </summary>
+ <remarks>The function takes two arguments.</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsRelationProject">
+ <summary>
+ Indicates whether the term is a projection of columns (provided as numbers in the parameters).
+ </summary>
+ <remarks>The function takes one argument.</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsRelationFilter">
+ <summary>
+ Indicates whether the term is a relation filter
+ </summary>
+ <remarks>
+ Filter (restrict) a relation with respect to a predicate.
+ The first argument is a relation.
+ The second argument is a predicate with free de-Brujin indices
+ corresponding to the columns of the relation.
+ So the first column in the relation has index 0.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsRelationNegationFilter">
+ <summary>
+ Indicates whether the term is an intersection of a relation with the negation of another.
+ </summary>
+ <remarks>
+ Intersect the first relation with respect to negation
+ of the second relation (the function takes two arguments).
+ Logically, the specification can be described by a function
+
+ target = filter_by_negation(pos, neg, columns)
+
+ where columns are pairs c1, d1, .., cN, dN of columns from pos and neg, such that
+ target are elements in x in pos, such that there is no y in neg that agrees with
+ x on the columns c1, d1, .., cN, dN.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsRelationRename">
+ <summary>
+ Indicates whether the term is the renaming of a column in a relation
+ </summary>
+ <remarks>
+ The function takes one argument.
+ The parameters contain the renaming as a cycle.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsRelationComplement">
+ <summary>
+ Indicates whether the term is the complement of a relation
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsRelationSelect">
+ <summary>
+ Indicates whether the term is a relational select
+ </summary>
+ <remarks>
+ Check if a record is an element of the relation.
+ The function takes <c>n+1</c> arguments, where the first argument is a relation,
+ and the remaining <c>n</c> arguments correspond to a record.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsRelationClone">
+ <summary>
+ Indicates whether the term is a relational clone (copy)
+ </summary>
+ <remarks>
+ Create a fresh copy (clone) of a relation.
+ The function is logically the identity, but
+ in the context of a register machine allows
+ for terms of kind <seealso cref="P:Microsoft.Z3.Expr.IsRelationUnion"/>
+ to perform destructive updates to the first argument.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFiniteDomain">
+ <summary>
+ Indicates whether the term is of an array sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFiniteDomainLT">
+ <summary>
+ Indicates whether the term is a less than predicate over a finite domain.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFP">
+ <summary>
+ Indicates whether the terms is of floating-point sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPRM">
+ <summary>
+ Indicates whether the terms is of floating-point rounding mode sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPNumeral">
+ <summary>
+ Indicates whether the term is a floating-point numeral
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPRMNumeral">
+ <summary>
+ Indicates whether the term is a floating-point rounding mode numeral
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPRMRoundNearestTiesToEven">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundNearestTiesToEven
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPRMRoundNearestTiesToAway">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundNearestTiesToAway
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPRMRoundTowardNegative">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundTowardNegative
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPRMRoundTowardPositive">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundTowardPositive
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPRMRoundTowardZero">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundTowardZero
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPRMExprRNE">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundNearestTiesToEven
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPRMExprRNA">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundNearestTiesToAway
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPRMExprRTN">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundTowardNegative
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPRMExprRTP">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundTowardPositive
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPRMExprRTZ">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundTowardZero
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPRMExpr">
+ <summary>
+ Indicates whether the term is a floating-point rounding mode numeral
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPPlusInfinity">
+ <summary>
+ Indicates whether the term is a floating-point +oo
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPMinusInfinity">
+ <summary>
+ Indicates whether the term is a floating-point -oo
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPNaN">
+ <summary>
+ Indicates whether the term is a floating-point NaN
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPPlusZero">
+ <summary>
+ Indicates whether the term is a floating-point +zero
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPMinusZero">
+ <summary>
+ Indicates whether the term is a floating-point -zero
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPAdd">
+ <summary>
+ Indicates whether the term is a floating-point addition term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPSub">
+ <summary>
+ Indicates whether the term is a floating-point subtraction term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPNeg">
+ <summary>
+ Indicates whether the term is a floating-point negation term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPMul">
+ <summary>
+ Indicates whether the term is a floating-point multiplication term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPDiv">
+ <summary>
+ Indicates whether the term is a floating-point divison term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPRem">
+ <summary>
+ Indicates whether the term is a floating-point remainder term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPAbs">
+ <summary>
+ Indicates whether the term is a floating-point term absolute value term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPMin">
+ <summary>
+ Indicates whether the term is a floating-point minimum term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPMax">
+ <summary>
+ Indicates whether the term is a floating-point maximum term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPFMA">
+ <summary>
+ Indicates whether the term is a floating-point fused multiply-add term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPSqrt">
+ <summary>
+ Indicates whether the term is a floating-point square root term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPRoundToIntegral">
+ <summary>
+ Indicates whether the term is a floating-point roundToIntegral term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPEq">
+ <summary>
+ Indicates whether the term is a floating-point equality term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPLt">
+ <summary>
+ Indicates whether the term is a floating-point less-than term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPGt">
+ <summary>
+ Indicates whether the term is a floating-point greater-than term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPLe">
+ <summary>
+ Indicates whether the term is a floating-point less-than or equal term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPGe">
+ <summary>
+ Indicates whether the term is a floating-point greater-than or erqual term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPisNaN">
+ <summary>
+ Indicates whether the term is a floating-point isNaN predicate term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPisInf">
+ <summary>
+ Indicates whether the term is a floating-point isInf predicate term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPisZero">
+ <summary>
+ Indicates whether the term is a floating-point isZero predicate term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPisNormal">
+ <summary>
+ Indicates whether the term is a floating-point isNormal term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPisSubnormal">
+ <summary>
+ Indicates whether the term is a floating-point isSubnormal predicate term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPisNegative">
+ <summary>
+ Indicates whether the term is a floating-point isNegative predicate term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPisPositive">
+ <summary>
+ Indicates whether the term is a floating-point isPositive predicate term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPFP">
+ <summary>
+ Indicates whether the term is a floating-point constructor term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPToFp">
+ <summary>
+ Indicates whether the term is a floating-point conversion term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPToFpUnsigned">
+ <summary>
+ Indicates whether the term is a floating-point conversion from unsigned bit-vector term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPToUBV">
+ <summary>
+ Indicates whether the term is a floating-point conversion to unsigned bit-vector term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPToSBV">
+ <summary>
+ Indicates whether the term is a floating-point conversion to signed bit-vector term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPToReal">
+ <summary>
+ Indicates whether the term is a floating-point conversion to real term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPToIEEEBV">
+ <summary>
+ Indicates whether the term is a floating-point conversion to IEEE-754 bit-vector term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.Index">
+ <summary>
+ The de-Burijn index of a bound variable.
+ </summary>
+ <remarks>
+ Bound variables are indexed by de-Bruijn indices. It is perhaps easiest to explain
+ the meaning of de-Bruijn indices by indicating the compilation process from
+ non-de-Bruijn formulas to de-Bruijn format.
+ <code>
+ abs(forall (x1) phi) = forall (x1) abs1(phi, x1, 0)
+ abs(forall (x1, x2) phi) = abs(forall (x1) abs(forall (x2) phi))
+ abs1(x, x, n) = b_n
+ abs1(y, x, n) = y
+ abs1(f(t1,...,tn), x, n) = f(abs1(t1,x,n), ..., abs1(tn,x,n))
+ abs1(forall (x1) phi, x, n) = forall (x1) (abs1(phi, x, n+1))
+ </code>
+ The last line is significant: the index of a bound variable is different depending
+ on the scope in which it appears. The deeper x appears, the higher is its
+ index.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.#ctor(Microsoft.Z3.Context,System.IntPtr)">
+ <summary> Constructor for ArithExpr </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Division(Microsoft.Z3.ArithExpr,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical divsion operator (over reals) </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Division(Microsoft.Z3.ArithExpr,System.Int32)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Division(Microsoft.Z3.ArithExpr,System.Double)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Division(System.Int32,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Division(System.Double,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_UnaryNegation(Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Subtraction(Microsoft.Z3.ArithExpr,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Subtraction(Microsoft.Z3.ArithExpr,System.Int32)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Subtraction(Microsoft.Z3.ArithExpr,System.Double)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Subtraction(System.Int32,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Subtraction(System.Double,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Addition(Microsoft.Z3.ArithExpr,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Addition(Microsoft.Z3.ArithExpr,System.Int32)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Addition(Microsoft.Z3.ArithExpr,System.Double)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Addition(System.Int32,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Addition(System.Double,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Multiply(Microsoft.Z3.ArithExpr,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Multiply(Microsoft.Z3.ArithExpr,System.Int32)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Multiply(Microsoft.Z3.ArithExpr,System.Double)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Multiply(System.Int32,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Multiply(System.Double,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_LessThanOrEqual(Microsoft.Z3.ArithExpr,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_LessThanOrEqual(Microsoft.Z3.ArithExpr,System.Int32)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_LessThanOrEqual(Microsoft.Z3.ArithExpr,System.Double)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_LessThanOrEqual(System.Int32,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_LessThanOrEqual(System.Double,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_LessThan(Microsoft.Z3.ArithExpr,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_LessThan(Microsoft.Z3.ArithExpr,System.Int32)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_LessThan(Microsoft.Z3.ArithExpr,System.Double)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_LessThan(System.Int32,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_LessThan(System.Double,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_GreaterThan(Microsoft.Z3.ArithExpr,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_GreaterThan(Microsoft.Z3.ArithExpr,System.Int32)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_GreaterThan(Microsoft.Z3.ArithExpr,System.Double)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_GreaterThan(System.Int32,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_GreaterThan(System.Double,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_GreaterThanOrEqual(Microsoft.Z3.ArithExpr,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_GreaterThanOrEqual(Microsoft.Z3.ArithExpr,System.Int32)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_GreaterThanOrEqual(Microsoft.Z3.ArithExpr,System.Double)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_GreaterThanOrEqual(System.Int32,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_GreaterThanOrEqual(System.Double,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.AlgebraicNum.ToUpper(System.UInt32)">
+ <summary>
+ Return a upper bound for a given real algebraic number.
+ The interval isolating the number is smaller than 1/10^<paramref name="precision"/>.
+ <seealso cref="P:Microsoft.Z3.Expr.IsAlgebraicNumber"/>
+ </summary>
+ <param name="precision">the precision of the result</param>
+ <returns>A numeral Expr of sort Real</returns>
+ </member>
+ <member name="M:Microsoft.Z3.AlgebraicNum.ToLower(System.UInt32)">
+ <summary>
+ Return a lower bound for the given real algebraic number.
+ The interval isolating the number is smaller than 1/10^<paramref name="precision"/>.
+ <seealso cref="P:Microsoft.Z3.Expr.IsAlgebraicNumber"/>
+ </summary>
+ <param name="precision"></param>
+ <returns>A numeral Expr of sort Real</returns>
+ </member>
+ <member name="M:Microsoft.Z3.AlgebraicNum.ToDecimal(System.UInt32)">
+ <summary>
+ Returns a string representation in decimal notation.
+ </summary>
+ <remarks>The result has at most <paramref name="precision"/> decimal places.</remarks>
+ </member>
+ <member name="T:Microsoft.Z3.ApplyResult">
+ <summary>
+ ApplyResult objects represent the result of an application of a
+ tactic to a goal. It contains the subgoals that were produced.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ApplyResult.ConvertModel(System.UInt32,Microsoft.Z3.Model)">
+ <summary>
+ Convert a model for the subgoal <paramref name="i"/> into a model for the original
+ goal <c>g</c>, that the ApplyResult was obtained from.
+ </summary>
+ <returns>A model for <c>g</c></returns>
+ </member>
+ <member name="M:Microsoft.Z3.ApplyResult.ToString">
+ <summary>
+ A string representation of the ApplyResult.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.ApplyResult.NumSubgoals">
+ <summary>
+ The number of Subgoals.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.ApplyResult.Subgoals">
+ <summary>
+ Retrieves the subgoals from the ApplyResult.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.ArithSort">
+ <summary>
+ An arithmetic sort, i.e., Int or Real.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Sort">
+ <summary>
+ The Sort class implements type information for ASTs.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Sort.op_Equality(Microsoft.Z3.Sort,Microsoft.Z3.Sort)">
+ <summary>
+ Comparison operator.
+ </summary>
+ <param name="a">A Sort</param>
+ <param name="b">A Sort</param>
+ <returns>True if <paramref name="a"/> and <paramref name="b"/> are from the same context
+ and represent the same sort; false otherwise.</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Sort.op_Inequality(Microsoft.Z3.Sort,Microsoft.Z3.Sort)">
+ <summary>
+ Comparison operator.
+ </summary>
+ <param name="a">A Sort</param>
+ <param name="b">A Sort</param>
+ <returns>True if <paramref name="a"/> and <paramref name="b"/> are not from the same context
+ or represent different sorts; false otherwise.</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Sort.Equals(System.Object)">
+ <summary>
+ Equality operator for objects of type Sort.
+ </summary>
+ <param name="o"></param>
+ <returns></returns>
+ </member>
+ <member name="M:Microsoft.Z3.Sort.GetHashCode">
+ <summary>
+ Hash code generation for Sorts
+ </summary>
+ <returns>A hash code</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Sort.ToString">
+ <summary>
+ A string representation of the sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Sort.Translate(Microsoft.Z3.Context)">
+ <summary>
+ Translates (copies) the sort to the Context <paramref name="ctx"/>.
+ </summary>
+ <param name="ctx">A context</param>
+ <returns>A copy of the sort which is associated with <paramref name="ctx"/></returns>
+ </member>
+ <member name="M:Microsoft.Z3.Sort.#ctor(Microsoft.Z3.Context,System.IntPtr)">
+ <summary>
+ Sort constructor
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Sort.Id">
+ <summary>
+ Returns a unique identifier for the sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Sort.SortKind">
+ <summary>
+ The kind of the sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Sort.Name">
+ <summary>
+ The name of the sort
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.ArrayExpr">
+ <summary>
+ Array expressions
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArrayExpr.#ctor(Microsoft.Z3.Context,System.IntPtr)">
+ <summary> Constructor for ArrayExpr </summary>
+ </member>
+ <member name="T:Microsoft.Z3.ArraySort">
+ <summary>
+ Array sorts.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.ArraySort.Domain">
+ <summary>
+ The domain of the array sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.ArraySort.Range">
+ <summary>
+ The range of the array sort.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.ASTMap">
+ <summary>
+ Map from AST to AST
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ASTMap.Contains(Microsoft.Z3.AST)">
+ <summary>
+ Checks whether the map contains the key <paramref name="k"/>.
+ </summary>
+ <param name="k">An AST</param>
+ <returns>True if <paramref name="k"/> is a key in the map, false otherwise.</returns>
+ </member>
+ <member name="M:Microsoft.Z3.ASTMap.Find(Microsoft.Z3.AST)">
+ <summary>
+ Finds the value associated with the key <paramref name="k"/>.
+ </summary>
+ <remarks>
+ This function signs an error when <paramref name="k"/> is not a key in the map.
+ </remarks>
+ <param name="k">An AST</param>
+ </member>
+ <member name="M:Microsoft.Z3.ASTMap.Insert(Microsoft.Z3.AST,Microsoft.Z3.AST)">
+ <summary>
+ Stores or replaces a new key/value pair in the map.
+ </summary>
+ <param name="k">The key AST</param>
+ <param name="v">The value AST</param>
+ </member>
+ <member name="M:Microsoft.Z3.ASTMap.Erase(Microsoft.Z3.AST)">
+ <summary>
+ Erases the key <paramref name="k"/> from the map.
+ </summary>
+ <param name="k">An AST</param>
+ </member>
+ <member name="M:Microsoft.Z3.ASTMap.Reset">
+ <summary>
+ Removes all keys from the map.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ASTMap.ToString">
+ <summary>
+ Retrieves a string representation of the map.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.ASTMap.Size">
+ <summary>
+ The size of the map
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.ASTMap.Keys">
+ <summary>
+ The keys stored in the map.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.ASTVector">
+ <summary>
+ Vectors of ASTs.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ASTVector.Resize(System.UInt32)">
+ <summary>
+ Resize the vector to <paramref name="newSize"/>.
+ </summary>
+ <param name="newSize">The new size of the vector.</param>
+ </member>
+ <member name="M:Microsoft.Z3.ASTVector.Push(Microsoft.Z3.AST)">
+ <summary>
+ Add the AST <paramref name="a"/> to the back of the vector. The size
+ is increased by 1.
+ </summary>
+ <param name="a">An AST</param>
+ </member>
+ <member name="M:Microsoft.Z3.ASTVector.Translate(Microsoft.Z3.Context)">
+ <summary>
+ Translates all ASTs in the vector to <paramref name="ctx"/>.
+ </summary>
+ <param name="ctx">A context</param>
+ <returns>A new ASTVector</returns>
+ </member>
+ <member name="M:Microsoft.Z3.ASTVector.ToString">
+ <summary>
+ Retrieves a string representation of the vector.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ASTVector.ToArray">
+ <summary>
+ Translates an AST vector into an AST[]
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ASTVector.ToExprArray">
+ <summary>
+ Translates an ASTVector into an Expr[]
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ASTVector.ToBoolExprArray">
+ <summary>
+ Translates an ASTVector into a BoolExpr[]
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ASTVector.ToBitVecExprArray">
+ <summary>
+ Translates an ASTVector into a BitVecExpr[]
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ASTVector.ToArithExprArray">
+ <summary>
+ Translates an ASTVector into a ArithExpr[]
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ASTVector.ToArrayExprArray">
+ <summary>
+ Translates an ASTVector into a ArrayExpr[]
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ASTVector.ToDatatypeExprArray">
+ <summary>
+ Translates an ASTVector into a DatatypeExpr[]
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ASTVector.ToFPExprArray">
+ <summary>
+ Translates an ASTVector into a FPExpr[]
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ASTVector.ToFPRMExprArray">
+ <summary>
+ Translates an ASTVector into a FPRMExpr[]
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ASTVector.ToIntExprArray">
+ <summary>
+ Translates an ASTVector into a IntExpr[]
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ASTVector.ToRealExprArray">
+ <summary>
+ Translates an ASTVector into a RealExpr[]
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.ASTVector.Size">
+ <summary>
+ The size of the vector
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.ASTVector.Item(System.UInt32)">
+ <summary>
+ Retrieves the i-th object in the vector.
+ </summary>
+ <remarks>May throw an IndexOutOfBoundsException when <paramref name="i"/> is out of range.</remarks>
+ <param name="i">Index</param>
+ <returns>An AST</returns>
+ </member>
+ <member name="T:Microsoft.Z3.BitVecExpr">
+ <summary>
+ Bit-vector expressions
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.BitVecExpr.#ctor(Microsoft.Z3.Context,System.IntPtr)">
+ <summary> Constructor for BitVecExpr </summary>
+ </member>
+ <member name="P:Microsoft.Z3.BitVecExpr.SortSize">
+ <summary>
+ The size of the sort of a bit-vector term.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.BitVecNum">
+ <summary>
+ Bit-vector numerals
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.BitVecNum.ToString">
+ <summary>
+ Returns a string representation of the numeral.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.BitVecNum.UInt64">
+ <summary>
+ Retrieve the 64-bit unsigned integer value.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.BitVecNum.Int">
+ <summary>
+ Retrieve the int value.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.BitVecNum.Int64">
+ <summary>
+ Retrieve the 64-bit int value.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.BitVecNum.UInt">
+ <summary>
+ Retrieve the int value.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.BitVecNum.BigInteger">
+ <summary>
+ Retrieve the BigInteger value.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.BitVecSort">
+ <summary>
+ Bit-vector sorts.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.BitVecSort.Size">
+ <summary>
+ The size of the bit-vector sort.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.BoolExpr">
+ <summary>
+ Boolean expressions
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.BoolExpr.#ctor(Microsoft.Z3.Context,System.IntPtr)">
+ <summary> Constructor for BoolExpr </summary>
+ </member>
+ <member name="M:Microsoft.Z3.BoolExpr.op_BitwiseOr(Microsoft.Z3.BoolExpr,Microsoft.Z3.BoolExpr)">
+ <summary> Disjunction of Boolean expressions </summary>
+ </member>
+ <member name="M:Microsoft.Z3.BoolExpr.op_BitwiseAnd(Microsoft.Z3.BoolExpr,Microsoft.Z3.BoolExpr)">
+ <summary> Conjunction of Boolean expressions </summary>
+ </member>
+ <member name="M:Microsoft.Z3.BoolExpr.op_ExclusiveOr(Microsoft.Z3.BoolExpr,Microsoft.Z3.BoolExpr)">
+ <summary> Xor of Boolean expressions </summary>
+ </member>
+ <member name="M:Microsoft.Z3.BoolExpr.op_LogicalNot(Microsoft.Z3.BoolExpr)">
+ <summary> Negation </summary>
+ </member>
+ <member name="T:Microsoft.Z3.BoolSort">
+ <summary>
+ A Boolean sort.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Constructor">
+ <summary>
+ Constructors are used for datatype sorts.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Constructor.Finalize">
+ <summary>
+ Destructor.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Constructor.NumFields">
+ <summary>
+ The number of fields of the constructor.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Constructor.ConstructorDecl">
+ <summary>
+ The function declaration of the constructor.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Constructor.TesterDecl">
+ <summary>
+ The function declaration of the tester.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Constructor.AccessorDecls">
+ <summary>
+ The function declarations of the accessors
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.ConstructorList">
+ <summary>
+ Lists of constructors
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ConstructorList.Finalize">
+ <summary>
+ Destructor.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Context">
+ <summary>
+ The main interaction with Z3 happens via the Context.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.#ctor">
+ <summary>
+ Constructor.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.#ctor(System.Collections.Generic.Dictionary{System.String,System.String})">
+ <summary>
+ Constructor.
+ </summary>
+ <remarks>
+ The following parameters can be set:
+ - proof (Boolean) Enable proof generation
+ - debug_ref_count (Boolean) Enable debug support for Z3_ast reference counting
+ - trace (Boolean) Tracing support for VCC
+ - trace_file_name (String) Trace out file for VCC traces
+ - timeout (unsigned) default timeout (in milliseconds) used for solvers
+ - well_sorted_check type checker
+ - auto_config use heuristics to automatically select solver and configure it
+ - model model generation for solvers, this parameter can be overwritten when creating a solver
+ - model_validate validate models produced by solvers
+ - unsat_core unsat-core generation for solvers, this parameter can be overwritten when creating a solver
+ Note that in previous versions of Z3, this constructor was also used to set global and module parameters.
+ For this purpose we should now use <see cref="M:Microsoft.Z3.Global.SetParameter(System.String,System.String)"/>
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSymbol(System.Int32)">
+ <summary>
+ Creates a new symbol using an integer.
+ </summary>
+ <remarks>
+ Not all integers can be passed to this function.
+ The legal range of unsigned integers is 0 to 2^30-1.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSymbol(System.String)">
+ <summary>
+ Create a symbol using a string.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSymbols(System.String[])">
+ <summary>
+ Create an array of symbols.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBoolSort">
+ <summary>
+ Create a new Boolean sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkUninterpretedSort(Microsoft.Z3.Symbol)">
+ <summary>
+ Create a new uninterpreted sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkUninterpretedSort(System.String)">
+ <summary>
+ Create a new uninterpreted sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkIntSort">
+ <summary>
+ Create a new integer sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkRealSort">
+ <summary>
+ Create a real sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBitVecSort(System.UInt32)">
+ <summary>
+ Create a new bit-vector sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSeqSort(Microsoft.Z3.Sort)">
+ <summary>
+ Create a new sequence sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkReSort(Microsoft.Z3.SeqSort)">
+ <summary>
+ Create a new regular expression sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkArraySort(Microsoft.Z3.Sort,Microsoft.Z3.Sort)">
+ <summary>
+ Create a new array sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkArraySort(Microsoft.Z3.Sort[],Microsoft.Z3.Sort)">
+ <summary>
+ Create a new n-ary array sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkTupleSort(Microsoft.Z3.Symbol,Microsoft.Z3.Symbol[],Microsoft.Z3.Sort[])">
+ <summary>
+ Create a new tuple sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkEnumSort(Microsoft.Z3.Symbol,Microsoft.Z3.Symbol[])">
+ <summary>
+ Create a new enumeration sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkEnumSort(System.String,System.String[])">
+ <summary>
+ Create a new enumeration sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkListSort(Microsoft.Z3.Symbol,Microsoft.Z3.Sort)">
+ <summary>
+ Create a new list sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkListSort(System.String,Microsoft.Z3.Sort)">
+ <summary>
+ Create a new list sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFiniteDomainSort(Microsoft.Z3.Symbol,System.UInt64)">
+ <summary>
+ Create a new finite domain sort.
+ <returns>The result is a sort</returns>
+ </summary>
+ <param name="name">The name used to identify the sort</param>
+ <param name="size">The size of the sort</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFiniteDomainSort(System.String,System.UInt64)">
+ <summary>
+ Create a new finite domain sort.
+ <returns>The result is a sort</returns>
+ Elements of the sort are created using <seealso cref="M:Microsoft.Z3.Context.MkNumeral(System.UInt64,Microsoft.Z3.Sort)"/>,
+ and the elements range from 0 to <tt>size-1</tt>.
+ </summary>
+ <param name="name">The name used to identify the sort</param>
+ <param name="size">The size of the sort</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkConstructor(Microsoft.Z3.Symbol,Microsoft.Z3.Symbol,Microsoft.Z3.Symbol[],Microsoft.Z3.Sort[],System.UInt32[])">
+ <summary>
+ Create a datatype constructor.
+ </summary>
+ <param name="name">constructor name</param>
+ <param name="recognizer">name of recognizer function.</param>
+ <param name="fieldNames">names of the constructor fields.</param>
+ <param name="sorts">field sorts, 0 if the field sort refers to a recursive sort.</param>
+ <param name="sortRefs">reference to datatype sort that is an argument to the constructor;
+ if the corresponding sort reference is 0, then the value in sort_refs should be an index
+ referring to one of the recursive datatypes that is declared.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkConstructor(System.String,System.String,System.String[],Microsoft.Z3.Sort[],System.UInt32[])">
+ <summary>
+ Create a datatype constructor.
+ </summary>
+ <param name="name"></param>
+ <param name="recognizer"></param>
+ <param name="fieldNames"></param>
+ <param name="sorts"></param>
+ <param name="sortRefs"></param>
+ <returns></returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkDatatypeSort(Microsoft.Z3.Symbol,Microsoft.Z3.Constructor[])">
+ <summary>
+ Create a new datatype sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkDatatypeSort(System.String,Microsoft.Z3.Constructor[])">
+ <summary>
+ Create a new datatype sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkDatatypeSorts(Microsoft.Z3.Symbol[],Microsoft.Z3.Constructor[][])">
+ <summary>
+ Create mutually recursive datatypes.
+ </summary>
+ <param name="names">names of datatype sorts</param>
+ <param name="c">list of constructors, one list per sort.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkDatatypeSorts(System.String[],Microsoft.Z3.Constructor[][])">
+ <summary>
+ Create mutually recursive data-types.
+ </summary>
+ <param name="names"></param>
+ <param name="c"></param>
+ <returns></returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkUpdateField(Microsoft.Z3.FuncDecl,Microsoft.Z3.Expr,Microsoft.Z3.Expr)">
+ <summary>
+ Update a datatype field at expression t with value v.
+ The function performs a record update at t. The field
+ that is passed in as argument is updated with value v,
+ the remainig fields of t are unchanged.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFuncDecl(Microsoft.Z3.Symbol,Microsoft.Z3.Sort[],Microsoft.Z3.Sort)">
+ <summary>
+ Creates a new function declaration.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFuncDecl(Microsoft.Z3.Symbol,Microsoft.Z3.Sort,Microsoft.Z3.Sort)">
+ <summary>
+ Creates a new function declaration.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFuncDecl(System.String,Microsoft.Z3.Sort[],Microsoft.Z3.Sort)">
+ <summary>
+ Creates a new function declaration.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFuncDecl(System.String,Microsoft.Z3.Sort,Microsoft.Z3.Sort)">
+ <summary>
+ Creates a new function declaration.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFreshFuncDecl(System.String,Microsoft.Z3.Sort[],Microsoft.Z3.Sort)">
+ <summary>
+ Creates a fresh function declaration with a name prefixed with <paramref name="prefix"/>.
+ </summary>
+ <seealso cref="M:Microsoft.Z3.Context.MkFuncDecl(System.String,Microsoft.Z3.Sort,Microsoft.Z3.Sort)"/>
+ <seealso cref="M:Microsoft.Z3.Context.MkFuncDecl(System.String,Microsoft.Z3.Sort[],Microsoft.Z3.Sort)"/>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkConstDecl(Microsoft.Z3.Symbol,Microsoft.Z3.Sort)">
+ <summary>
+ Creates a new constant function declaration.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkConstDecl(System.String,Microsoft.Z3.Sort)">
+ <summary>
+ Creates a new constant function declaration.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFreshConstDecl(System.String,Microsoft.Z3.Sort)">
+ <summary>
+ Creates a fresh constant function declaration with a name prefixed with <paramref name="prefix"/>.
+ </summary>
+ <seealso cref="M:Microsoft.Z3.Context.MkFuncDecl(System.String,Microsoft.Z3.Sort,Microsoft.Z3.Sort)"/>
+ <seealso cref="M:Microsoft.Z3.Context.MkFuncDecl(System.String,Microsoft.Z3.Sort[],Microsoft.Z3.Sort)"/>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBound(System.UInt32,Microsoft.Z3.Sort)">
+ <summary>
+ Creates a new bound variable.
+ </summary>
+ <param name="index">The de-Bruijn index of the variable</param>
+ <param name="ty">The sort of the variable</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkPattern(Microsoft.Z3.Expr[])">
+ <summary>
+ Create a quantifier pattern.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkConst(Microsoft.Z3.Symbol,Microsoft.Z3.Sort)">
+ <summary>
+ Creates a new Constant of sort <paramref name="range"/> and named <paramref name="name"/>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkConst(System.String,Microsoft.Z3.Sort)">
+ <summary>
+ Creates a new Constant of sort <paramref name="range"/> and named <paramref name="name"/>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFreshConst(System.String,Microsoft.Z3.Sort)">
+ <summary>
+ Creates a fresh Constant of sort <paramref name="range"/> and a
+ name prefixed with <paramref name="prefix"/>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkConst(Microsoft.Z3.FuncDecl)">
+ <summary>
+ Creates a fresh constant from the FuncDecl <paramref name="f"/>.
+ </summary>
+ <param name="f">A decl of a 0-arity function</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBoolConst(Microsoft.Z3.Symbol)">
+ <summary>
+ Create a Boolean constant.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBoolConst(System.String)">
+ <summary>
+ Create a Boolean constant.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkIntConst(Microsoft.Z3.Symbol)">
+ <summary>
+ Creates an integer constant.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkIntConst(System.String)">
+ <summary>
+ Creates an integer constant.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkRealConst(Microsoft.Z3.Symbol)">
+ <summary>
+ Creates a real constant.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkRealConst(System.String)">
+ <summary>
+ Creates a real constant.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVConst(Microsoft.Z3.Symbol,System.UInt32)">
+ <summary>
+ Creates a bit-vector constant.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVConst(System.String,System.UInt32)">
+ <summary>
+ Creates a bit-vector constant.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkApp(Microsoft.Z3.FuncDecl,Microsoft.Z3.Expr[])">
+ <summary>
+ Create a new function application.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkApp(Microsoft.Z3.FuncDecl,System.Collections.Generic.IEnumerable{Microsoft.Z3.Expr})">
+ <summary>
+ Create a new function application.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkTrue">
+ <summary>
+ The true Term.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFalse">
+ <summary>
+ The false Term.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBool(System.Boolean)">
+ <summary>
+ Creates a Boolean value.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkEq(Microsoft.Z3.Expr,Microsoft.Z3.Expr)">
+ <summary>
+ Creates the equality <paramref name="x"/> = <paramref name="y"/>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkDistinct(Microsoft.Z3.Expr[])">
+ <summary>
+ Creates a <c>distinct</c> term.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkNot(Microsoft.Z3.BoolExpr)">
+ <summary>
+ Mk an expression representing <c>not(a)</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkITE(Microsoft.Z3.BoolExpr,Microsoft.Z3.Expr,Microsoft.Z3.Expr)">
+ <summary>
+ Create an expression representing an if-then-else: <c>ite(t1, t2, t3)</c>.
+ </summary>
+ <param name="t1">An expression with Boolean sort</param>
+ <param name="t2">An expression </param>
+ <param name="t3">An expression with the same sort as <paramref name="t2"/></param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkIff(Microsoft.Z3.BoolExpr,Microsoft.Z3.BoolExpr)">
+ <summary>
+ Create an expression representing <c>t1 iff t2</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkImplies(Microsoft.Z3.BoolExpr,Microsoft.Z3.BoolExpr)">
+ <summary>
+ Create an expression representing <c>t1 -> t2</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkXor(Microsoft.Z3.BoolExpr,Microsoft.Z3.BoolExpr)">
+ <summary>
+ Create an expression representing <c>t1 xor t2</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkAnd(Microsoft.Z3.BoolExpr[])">
+ <summary>
+ Create an expression representing <c>t[0] and t[1] and ...</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkAnd(System.Collections.Generic.IEnumerable{Microsoft.Z3.BoolExpr})">
+ <summary>
+ Create an expression representing <c>t[0] and t[1] and ...</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkOr(Microsoft.Z3.BoolExpr[])">
+ <summary>
+ Create an expression representing <c>t[0] or t[1] or ...</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkOr(System.Collections.Generic.IEnumerable{Microsoft.Z3.BoolExpr})">
+ <summary>
+ Create an expression representing <c>t[0] or t[1] or ...</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkAdd(Microsoft.Z3.ArithExpr[])">
+ <summary>
+ Create an expression representing <c>t[0] + t[1] + ...</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkAdd(System.Collections.Generic.IEnumerable{Microsoft.Z3.ArithExpr})">
+ <summary>
+ Create an expression representing <c>t[0] + t[1] + ...</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkMul(Microsoft.Z3.ArithExpr[])">
+ <summary>
+ Create an expression representing <c>t[0] * t[1] * ...</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkMul(System.Collections.Generic.IEnumerable{Microsoft.Z3.ArithExpr})">
+ <summary>
+ Create an expression representing <c>t[0] * t[1] * ...</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSub(Microsoft.Z3.ArithExpr[])">
+ <summary>
+ Create an expression representing <c>t[0] - t[1] - ...</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkUnaryMinus(Microsoft.Z3.ArithExpr)">
+ <summary>
+ Create an expression representing <c>-t</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkDiv(Microsoft.Z3.ArithExpr,Microsoft.Z3.ArithExpr)">
+ <summary>
+ Create an expression representing <c>t1 / t2</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkMod(Microsoft.Z3.IntExpr,Microsoft.Z3.IntExpr)">
+ <summary>
+ Create an expression representing <c>t1 mod t2</c>.
+ </summary>
+ <remarks>The arguments must have int type.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkRem(Microsoft.Z3.IntExpr,Microsoft.Z3.IntExpr)">
+ <summary>
+ Create an expression representing <c>t1 rem t2</c>.
+ </summary>
+ <remarks>The arguments must have int type.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkPower(Microsoft.Z3.ArithExpr,Microsoft.Z3.ArithExpr)">
+ <summary>
+ Create an expression representing <c>t1 ^ t2</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkLt(Microsoft.Z3.ArithExpr,Microsoft.Z3.ArithExpr)">
+ <summary>
+ Create an expression representing <c>t1 &lt; t2</c>
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkLe(Microsoft.Z3.ArithExpr,Microsoft.Z3.ArithExpr)">
+ <summary>
+ Create an expression representing <c>t1 &lt;= t2</c>
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkGt(Microsoft.Z3.ArithExpr,Microsoft.Z3.ArithExpr)">
+ <summary>
+ Create an expression representing <c>t1 &gt; t2</c>
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkGe(Microsoft.Z3.ArithExpr,Microsoft.Z3.ArithExpr)">
+ <summary>
+ Create an expression representing <c>t1 &gt;= t2</c>
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkInt2Real(Microsoft.Z3.IntExpr)">
+ <summary>
+ Coerce an integer to a real.
+ </summary>
+ <remarks>
+ There is also a converse operation exposed. It follows the semantics prescribed by the SMT-LIB standard.
+
+ You can take the floor of a real by creating an auxiliary integer Term <c>k</c> and
+ and asserting <c>MakeInt2Real(k) &lt;= t1 &lt; MkInt2Real(k)+1</c>.
+ The argument must be of integer sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkReal2Int(Microsoft.Z3.RealExpr)">
+ <summary>
+ Coerce a real to an integer.
+ </summary>
+ <remarks>
+ The semantics of this function follows the SMT-LIB standard for the function to_int.
+ The argument must be of real sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkIsInteger(Microsoft.Z3.RealExpr)">
+ <summary>
+ Creates an expression that checks whether a real number is an integer.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVNot(Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Bitwise negation.
+ </summary>
+ <remarks>The argument must have a bit-vector sort.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVRedAND(Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Take conjunction of bits in a vector, return vector of length 1.
+ </summary>
+ <remarks>The argument must have a bit-vector sort.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVRedOR(Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Take disjunction of bits in a vector, return vector of length 1.
+ </summary>
+ <remarks>The argument must have a bit-vector sort.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVAND(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Bitwise conjunction.
+ </summary>
+ <remarks>The arguments must have a bit-vector sort.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVOR(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Bitwise disjunction.
+ </summary>
+ <remarks>The arguments must have a bit-vector sort.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVXOR(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Bitwise XOR.
+ </summary>
+ <remarks>The arguments must have a bit-vector sort.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVNAND(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Bitwise NAND.
+ </summary>
+ <remarks>The arguments must have a bit-vector sort.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVNOR(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Bitwise NOR.
+ </summary>
+ <remarks>The arguments must have a bit-vector sort.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVXNOR(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Bitwise XNOR.
+ </summary>
+ <remarks>The arguments must have a bit-vector sort.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVNeg(Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Standard two's complement unary minus.
+ </summary>
+ <remarks>The arguments must have a bit-vector sort.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVAdd(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Two's complement addition.
+ </summary>
+ <remarks>The arguments must have the same bit-vector sort.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVSub(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Two's complement subtraction.
+ </summary>
+ <remarks>The arguments must have the same bit-vector sort.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVMul(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Two's complement multiplication.
+ </summary>
+ <remarks>The arguments must have the same bit-vector sort.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVUDiv(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Unsigned division.
+ </summary>
+ <remarks>
+ It is defined as the floor of <c>t1/t2</c> if \c t2 is
+ different from zero. If <c>t2</c> is zero, then the result
+ is undefined.
+ The arguments must have the same bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVSDiv(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Signed division.
+ </summary>
+ <remarks>
+ It is defined in the following way:
+
+ - The \c floor of <c>t1/t2</c> if \c t2 is different from zero, and <c>t1*t2 >= 0</c>.
+
+ - The \c ceiling of <c>t1/t2</c> if \c t2 is different from zero, and <c>t1*t2 &lt; 0</c>.
+
+ If <c>t2</c> is zero, then the result is undefined.
+ The arguments must have the same bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVURem(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Unsigned remainder.
+ </summary>
+ <remarks>
+ It is defined as <c>t1 - (t1 /u t2) * t2</c>, where <c>/u</c> represents unsigned division.
+ If <c>t2</c> is zero, then the result is undefined.
+ The arguments must have the same bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVSRem(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Signed remainder.
+ </summary>
+ <remarks>
+ It is defined as <c>t1 - (t1 /s t2) * t2</c>, where <c>/s</c> represents signed division.
+ The most significant bit (sign) of the result is equal to the most significant bit of \c t1.
+
+ If <c>t2</c> is zero, then the result is undefined.
+ The arguments must have the same bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVSMod(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Two's complement signed remainder (sign follows divisor).
+ </summary>
+ <remarks>
+ If <c>t2</c> is zero, then the result is undefined.
+ The arguments must have the same bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVULT(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Unsigned less-than
+ </summary>
+ <remarks>
+ The arguments must have the same bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVSLT(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Two's complement signed less-than
+ </summary>
+ <remarks>
+ The arguments must have the same bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVULE(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Unsigned less-than or equal to.
+ </summary>
+ <remarks>
+ The arguments must have the same bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVSLE(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Two's complement signed less-than or equal to.
+ </summary>
+ <remarks>
+ The arguments must have the same bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVUGE(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Unsigned greater than or equal to.
+ </summary>
+ <remarks>
+ The arguments must have the same bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVSGE(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Two's complement signed greater than or equal to.
+ </summary>
+ <remarks>
+ The arguments must have the same bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVUGT(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Unsigned greater-than.
+ </summary>
+ <remarks>
+ The arguments must have the same bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVSGT(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Two's complement signed greater-than.
+ </summary>
+ <remarks>
+ The arguments must have the same bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkConcat(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Bit-vector concatenation.
+ </summary>
+ <remarks>
+ The arguments must have a bit-vector sort.
+ </remarks>
+ <returns>
+ The result is a bit-vector of size <c>n1+n2</c>, where <c>n1</c> (<c>n2</c>)
+ is the size of <c>t1</c> (<c>t2</c>).
+ </returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkExtract(System.UInt32,System.UInt32,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Bit-vector extraction.
+ </summary>
+ <remarks>
+ Extract the bits <paramref name="high"/> down to <paramref name="low"/> from a bitvector of
+ size <c>m</c> to yield a new bitvector of size <c>n</c>, where
+ <c>n = high - low + 1</c>.
+ The argument <paramref name="t"/> must have a bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSignExt(System.UInt32,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Bit-vector sign extension.
+ </summary>
+ <remarks>
+ Sign-extends the given bit-vector to the (signed) equivalent bitvector of
+ size <c>m+i</c>, where \c m is the size of the given bit-vector.
+ The argument <paramref name="t"/> must have a bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkZeroExt(System.UInt32,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Bit-vector zero extension.
+ </summary>
+ <remarks>
+ Extend the given bit-vector with zeros to the (unsigned) equivalent
+ bitvector of size <c>m+i</c>, where \c m is the size of the
+ given bit-vector.
+ The argument <paramref name="t"/> must have a bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkRepeat(System.UInt32,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Bit-vector repetition.
+ </summary>
+ <remarks>
+ The argument <paramref name="t"/> must have a bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVSHL(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Shift left.
+ </summary>
+ <remarks>
+ It is equivalent to multiplication by <c>2^x</c> where \c x is the value of <paramref name="t2"/>.
+
+ NB. The semantics of shift operations varies between environments. This
+ definition does not necessarily capture directly the semantics of the
+ programming language or assembly architecture you are modeling.
+
+ The arguments must have a bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVLSHR(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Logical shift right
+ </summary>
+ <remarks>
+ It is equivalent to unsigned division by <c>2^x</c> where \c x is the value of <paramref name="t2"/>.
+
+ NB. The semantics of shift operations varies between environments. This
+ definition does not necessarily capture directly the semantics of the
+ programming language or assembly architecture you are modeling.
+
+ The arguments must have a bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVASHR(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Arithmetic shift right
+ </summary>
+ <remarks>
+ It is like logical shift right except that the most significant
+ bits of the result always copy the most significant bit of the
+ second argument.
+
+ NB. The semantics of shift operations varies between environments. This
+ definition does not necessarily capture directly the semantics of the
+ programming language or assembly architecture you are modeling.
+
+ The arguments must have a bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVRotateLeft(System.UInt32,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Rotate Left.
+ </summary>
+ <remarks>
+ Rotate bits of \c t to the left \c i times.
+ The argument <paramref name="t"/> must have a bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVRotateRight(System.UInt32,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Rotate Right.
+ </summary>
+ <remarks>
+ Rotate bits of \c t to the right \c i times.
+ The argument <paramref name="t"/> must have a bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVRotateLeft(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Rotate Left.
+ </summary>
+ <remarks>
+ Rotate bits of <paramref name="t1"/> to the left <paramref name="t2"/> times.
+ The arguments must have the same bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVRotateRight(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Rotate Right.
+ </summary>
+ <remarks>
+ Rotate bits of <paramref name="t1"/> to the right<paramref name="t2"/> times.
+ The arguments must have the same bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkInt2BV(System.UInt32,Microsoft.Z3.IntExpr)">
+ <summary>
+ Create an <paramref name="n"/> bit bit-vector from the integer argument <paramref name="t"/>.
+ </summary>
+ <remarks>
+ NB. This function is essentially treated as uninterpreted.
+ So you cannot expect Z3 to precisely reflect the semantics of this function
+ when solving constraints with this function.
+
+ The argument must be of integer sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBV2Int(Microsoft.Z3.BitVecExpr,System.Boolean)">
+ <summary>
+ Create an integer from the bit-vector argument <paramref name="t"/>.
+ </summary>
+ <remarks>
+ If \c is_signed is false, then the bit-vector \c t1 is treated as unsigned.
+ So the result is non-negative and in the range <c>[0..2^N-1]</c>, where
+ N are the number of bits in <paramref name="t"/>.
+ If \c is_signed is true, \c t1 is treated as a signed bit-vector.
+
+ NB. This function is essentially treated as uninterpreted.
+ So you cannot expect Z3 to precisely reflect the semantics of this function
+ when solving constraints with this function.
+
+ The argument must be of bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVAddNoOverflow(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr,System.Boolean)">
+ <summary>
+ Create a predicate that checks that the bit-wise addition does not overflow.
+ </summary>
+ <remarks>
+ The arguments must be of bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVAddNoUnderflow(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Create a predicate that checks that the bit-wise addition does not underflow.
+ </summary>
+ <remarks>
+ The arguments must be of bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVSubNoOverflow(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Create a predicate that checks that the bit-wise subtraction does not overflow.
+ </summary>
+ <remarks>
+ The arguments must be of bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVSubNoUnderflow(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr,System.Boolean)">
+ <summary>
+ Create a predicate that checks that the bit-wise subtraction does not underflow.
+ </summary>
+ <remarks>
+ The arguments must be of bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVSDivNoOverflow(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Create a predicate that checks that the bit-wise signed division does not overflow.
+ </summary>
+ <remarks>
+ The arguments must be of bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVNegNoOverflow(Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Create a predicate that checks that the bit-wise negation does not overflow.
+ </summary>
+ <remarks>
+ The arguments must be of bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVMulNoOverflow(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr,System.Boolean)">
+ <summary>
+ Create a predicate that checks that the bit-wise multiplication does not overflow.
+ </summary>
+ <remarks>
+ The arguments must be of bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVMulNoUnderflow(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Create a predicate that checks that the bit-wise multiplication does not underflow.
+ </summary>
+ <remarks>
+ The arguments must be of bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkArrayConst(Microsoft.Z3.Symbol,Microsoft.Z3.Sort,Microsoft.Z3.Sort)">
+ <summary>
+ Create an array constant.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkArrayConst(System.String,Microsoft.Z3.Sort,Microsoft.Z3.Sort)">
+ <summary>
+ Create an array constant.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSelect(Microsoft.Z3.ArrayExpr,Microsoft.Z3.Expr)">
+ <summary>
+ Array read.
+ </summary>
+ <remarks>
+ The argument <c>a</c> is the array and <c>i</c> is the index
+ of the array that gets read.
+
+ The node <c>a</c> must have an array sort <c>[domain -&gt; range]</c>,
+ and <c>i</c> must have the sort <c>domain</c>.
+ The sort of the result is <c>range</c>.
+ <seealso cref="M:Microsoft.Z3.Context.MkArraySort(Microsoft.Z3.Sort,Microsoft.Z3.Sort)"/>
+ <seealso cref="M:Microsoft.Z3.Context.MkStore(Microsoft.Z3.ArrayExpr,Microsoft.Z3.Expr,Microsoft.Z3.Expr)"/>
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSelect(Microsoft.Z3.ArrayExpr,Microsoft.Z3.Expr[])">
+ <summary>
+ Array read.
+ </summary>
+ <remarks>
+ The argument <c>a</c> is the array and <c>args</c> are the indices
+ of the array that gets read.
+
+ The node <c>a</c> must have an array sort <c>[domain1,..,domaink -&gt; range]</c>,
+ and <c>args</c> must have the sort <c>domain1,..,domaink</c>.
+ The sort of the result is <c>range</c>.
+ <seealso cref="M:Microsoft.Z3.Context.MkArraySort(Microsoft.Z3.Sort,Microsoft.Z3.Sort)"/>
+ <seealso cref="M:Microsoft.Z3.Context.MkStore(Microsoft.Z3.ArrayExpr,Microsoft.Z3.Expr,Microsoft.Z3.Expr)"/>
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkStore(Microsoft.Z3.ArrayExpr,Microsoft.Z3.Expr,Microsoft.Z3.Expr)">
+ <summary>
+ Array update.
+ </summary>
+ <remarks>
+ The node <c>a</c> must have an array sort <c>[domain -&gt; range]</c>,
+ <c>i</c> must have sort <c>domain</c>,
+ <c>v</c> must have sort range. The sort of the result is <c>[domain -&gt; range]</c>.
+ The semantics of this function is given by the theory of arrays described in the SMT-LIB
+ standard. See http://smtlib.org for more details.
+ The result of this function is an array that is equal to <c>a</c>
+ (with respect to <c>select</c>)
+ on all indices except for <c>i</c>, where it maps to <c>v</c>
+ (and the <c>select</c> of <c>a</c> with
+ respect to <c>i</c> may be a different value).
+ <seealso cref="M:Microsoft.Z3.Context.MkArraySort(Microsoft.Z3.Sort,Microsoft.Z3.Sort)"/>
+ <seealso cref="M:Microsoft.Z3.Context.MkSelect(Microsoft.Z3.ArrayExpr,Microsoft.Z3.Expr)"/>
+ <seealso cref="M:Microsoft.Z3.Context.MkSelect(Microsoft.Z3.ArrayExpr,Microsoft.Z3.Expr[])"/>
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkStore(Microsoft.Z3.ArrayExpr,Microsoft.Z3.Expr[],Microsoft.Z3.Expr)">
+ <summary>
+ Array update.
+ </summary>
+ <remarks>
+ The node <c>a</c> must have an array sort <c>[domain1,..,domaink -&gt; range]</c>,
+ <c>args</c> must have sort <c>domain1,..,domaink</c>,
+ <c>v</c> must have sort range. The sort of the result is <c>[domain -&gt; range]</c>.
+ The semantics of this function is given by the theory of arrays described in the SMT-LIB
+ standard. See http://smtlib.org for more details.
+ The result of this function is an array that is equal to <c>a</c>
+ (with respect to <c>select</c>)
+ on all indices except for <c>args</c>, where it maps to <c>v</c>
+ (and the <c>select</c> of <c>a</c> with
+ respect to <c>args</c> may be a different value).
+ <seealso cref="M:Microsoft.Z3.Context.MkArraySort(Microsoft.Z3.Sort,Microsoft.Z3.Sort)"/>
+ <seealso cref="M:Microsoft.Z3.Context.MkSelect(Microsoft.Z3.ArrayExpr,Microsoft.Z3.Expr)"/>
+ <seealso cref="M:Microsoft.Z3.Context.MkSelect(Microsoft.Z3.ArrayExpr,Microsoft.Z3.Expr[])"/>
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkConstArray(Microsoft.Z3.Sort,Microsoft.Z3.Expr)">
+ <summary>
+ Create a constant array.
+ </summary>
+ <remarks>
+ The resulting term is an array, such that a <c>select</c>on an arbitrary index
+ produces the value <c>v</c>.
+ <seealso cref="M:Microsoft.Z3.Context.MkArraySort(Microsoft.Z3.Sort,Microsoft.Z3.Sort)"/>
+ <seealso cref="M:Microsoft.Z3.Context.MkSelect(Microsoft.Z3.ArrayExpr,Microsoft.Z3.Expr)"/>
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkMap(Microsoft.Z3.FuncDecl,Microsoft.Z3.ArrayExpr[])">
+ <summary>
+ Maps f on the argument arrays.
+ </summary>
+ <remarks>
+ Eeach element of <c>args</c> must be of an array sort <c>[domain_i -&gt; range_i]</c>.
+ The function declaration <c>f</c> must have type <c> range_1 .. range_n -&gt; range</c>.
+ <c>v</c> must have sort range. The sort of the result is <c>[domain_i -&gt; range]</c>.
+ <seealso cref="M:Microsoft.Z3.Context.MkArraySort(Microsoft.Z3.Sort,Microsoft.Z3.Sort)"/>
+ <seealso cref="M:Microsoft.Z3.Context.MkSelect(Microsoft.Z3.ArrayExpr,Microsoft.Z3.Expr)"/>
+ <seealso cref="M:Microsoft.Z3.Context.MkStore(Microsoft.Z3.ArrayExpr,Microsoft.Z3.Expr,Microsoft.Z3.Expr)"/>
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkTermArray(Microsoft.Z3.ArrayExpr)">
+ <summary>
+ Access the array default value.
+ </summary>
+ <remarks>
+ Produces the default range value, for arrays that can be represented as
+ finite maps with a default range value.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkArrayExt(Microsoft.Z3.ArrayExpr,Microsoft.Z3.ArrayExpr)">
+ <summary>
+ Create Extentionality index. Two arrays are equal if and only if they are equal on the index returned by MkArrayExt.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSetSort(Microsoft.Z3.Sort)">
+ <summary>
+ Create a set type.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkEmptySet(Microsoft.Z3.Sort)">
+ <summary>
+ Create an empty set.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFullSet(Microsoft.Z3.Sort)">
+ <summary>
+ Create the full set.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSetAdd(Microsoft.Z3.ArrayExpr,Microsoft.Z3.Expr)">
+ <summary>
+ Add an element to the set.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSetDel(Microsoft.Z3.ArrayExpr,Microsoft.Z3.Expr)">
+ <summary>
+ Remove an element from a set.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSetUnion(Microsoft.Z3.ArrayExpr[])">
+ <summary>
+ Take the union of a list of sets.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSetIntersection(Microsoft.Z3.ArrayExpr[])">
+ <summary>
+ Take the intersection of a list of sets.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSetDifference(Microsoft.Z3.ArrayExpr,Microsoft.Z3.ArrayExpr)">
+ <summary>
+ Take the difference between two sets.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSetComplement(Microsoft.Z3.ArrayExpr)">
+ <summary>
+ Take the complement of a set.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSetMembership(Microsoft.Z3.Expr,Microsoft.Z3.ArrayExpr)">
+ <summary>
+ Check for set membership.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSetSubset(Microsoft.Z3.ArrayExpr,Microsoft.Z3.ArrayExpr)">
+ <summary>
+ Check for subsetness of sets.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkEmptySeq(Microsoft.Z3.Sort)">
+ <summary>
+ Create the empty sequence.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkUnit(Microsoft.Z3.Expr)">
+ <summary>
+ Create the singleton sequence.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkString(System.String)">
+ <summary>
+ Create a string constant.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.IntToString(Microsoft.Z3.Expr)">
+ <summary>
+ Convert an integer expression to a string.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.StringToInt(Microsoft.Z3.Expr)">
+ <summary>
+ Convert an integer expression to a string.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkConcat(Microsoft.Z3.SeqExpr[])">
+ <summary>
+ Concatentate sequences.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkLength(Microsoft.Z3.SeqExpr)">
+ <summary>
+ Retrieve the length of a given sequence.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkPrefixOf(Microsoft.Z3.SeqExpr,Microsoft.Z3.SeqExpr)">
+ <summary>
+ Check for sequence prefix.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSuffixOf(Microsoft.Z3.SeqExpr,Microsoft.Z3.SeqExpr)">
+ <summary>
+ Check for sequence suffix.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkContains(Microsoft.Z3.SeqExpr,Microsoft.Z3.SeqExpr)">
+ <summary>
+ Check for sequence containment of s2 in s1.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkAt(Microsoft.Z3.SeqExpr,Microsoft.Z3.IntExpr)">
+ <summary>
+ Retrieve sequence of length one at index.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkExtract(Microsoft.Z3.SeqExpr,Microsoft.Z3.IntExpr,Microsoft.Z3.IntExpr)">
+ <summary>
+ Extract subsequence.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkIndexOf(Microsoft.Z3.SeqExpr,Microsoft.Z3.SeqExpr,Microsoft.Z3.ArithExpr)">
+ <summary>
+ Extract index of sub-string starting at offset.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkReplace(Microsoft.Z3.SeqExpr,Microsoft.Z3.SeqExpr,Microsoft.Z3.SeqExpr)">
+ <summary>
+ Replace the first occurrence of src by dst in s.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkToRe(Microsoft.Z3.SeqExpr)">
+ <summary>
+ Convert a regular expression that accepts sequence s.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkInRe(Microsoft.Z3.SeqExpr,Microsoft.Z3.ReExpr)">
+ <summary>
+ Check for regular expression membership.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkStar(Microsoft.Z3.ReExpr)">
+ <summary>
+ Take the Kleene star of a regular expression.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkLoop(Microsoft.Z3.ReExpr,System.UInt32,System.UInt32)">
+ <summary>
+ Take the bounded Kleene star of a regular expression.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkPlus(Microsoft.Z3.ReExpr)">
+ <summary>
+ Take the Kleene plus of a regular expression.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkOption(Microsoft.Z3.ReExpr)">
+ <summary>
+ Create the optional regular expression.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkComplement(Microsoft.Z3.ReExpr)">
+ <summary>
+ Create the complement regular expression.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkConcat(Microsoft.Z3.ReExpr[])">
+ <summary>
+ Create the concatenation of regular languages.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkUnion(Microsoft.Z3.ReExpr[])">
+ <summary>
+ Create the union of regular languages.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkIntersect(Microsoft.Z3.ReExpr[])">
+ <summary>
+ Create the intersection of regular languages.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkEmptyRe(Microsoft.Z3.Sort)">
+ <summary>
+ Create the empty regular expression.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFullRe(Microsoft.Z3.Sort)">
+ <summary>
+ Create the full regular expression.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkRange(Microsoft.Z3.SeqExpr,Microsoft.Z3.SeqExpr)">
+ <summary>
+ Create a range expression.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkAtMost(Microsoft.Z3.BoolExpr[],System.UInt32)">
+ <summary>
+ Create an at-most-k constraint.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkAtLeast(Microsoft.Z3.BoolExpr[],System.UInt32)">
+ <summary>
+ Create an at-least-k constraint.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkPBLe(System.Int32[],Microsoft.Z3.BoolExpr[],System.Int32)">
+ <summary>
+ Create a pseudo-Boolean less-or-equal constraint.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkPBGe(System.Int32[],Microsoft.Z3.BoolExpr[],System.Int32)">
+ <summary>
+ Create a pseudo-Boolean greater-or-equal constraint.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkPBEq(System.Int32[],Microsoft.Z3.BoolExpr[],System.Int32)">
+ <summary>
+ Create a pseudo-Boolean equal constraint.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkNumeral(System.String,Microsoft.Z3.Sort)">
+ <summary>
+ Create a Term of a given sort.
+ </summary>
+ <param name="v">A string representing the Term value in decimal notation. If the given sort is a real, then the Term can be a rational, that is, a string of the form <c>[num]* / [num]*</c>.</param>
+ <param name="ty">The sort of the numeral. In the current implementation, the given sort can be an int, real, or bit-vectors of arbitrary size. </param>
+ <returns>A Term with value <paramref name="v"/> and sort <paramref name="ty"/> </returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkNumeral(System.Int32,Microsoft.Z3.Sort)">
+ <summary>
+ Create a Term of a given sort. This function can be use to create numerals that fit in a machine integer.
+ It is slightly faster than <c>MakeNumeral</c> since it is not necessary to parse a string.
+ </summary>
+ <param name="v">Value of the numeral</param>
+ <param name="ty">Sort of the numeral</param>
+ <returns>A Term with value <paramref name="v"/> and type <paramref name="ty"/></returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkNumeral(System.UInt32,Microsoft.Z3.Sort)">
+ <summary>
+ Create a Term of a given sort. This function can be use to create numerals that fit in a machine integer.
+ It is slightly faster than <c>MakeNumeral</c> since it is not necessary to parse a string.
+ </summary>
+ <param name="v">Value of the numeral</param>
+ <param name="ty">Sort of the numeral</param>
+ <returns>A Term with value <paramref name="v"/> and type <paramref name="ty"/></returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkNumeral(System.Int64,Microsoft.Z3.Sort)">
+ <summary>
+ Create a Term of a given sort. This function can be use to create numerals that fit in a machine integer.
+ It is slightly faster than <c>MakeNumeral</c> since it is not necessary to parse a string.
+ </summary>
+ <param name="v">Value of the numeral</param>
+ <param name="ty">Sort of the numeral</param>
+ <returns>A Term with value <paramref name="v"/> and type <paramref name="ty"/></returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkNumeral(System.UInt64,Microsoft.Z3.Sort)">
+ <summary>
+ Create a Term of a given sort. This function can be use to create numerals that fit in a machine integer.
+ It is slightly faster than <c>MakeNumeral</c> since it is not necessary to parse a string.
+ </summary>
+ <param name="v">Value of the numeral</param>
+ <param name="ty">Sort of the numeral</param>
+ <returns>A Term with value <paramref name="v"/> and type <paramref name="ty"/></returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkReal(System.Int32,System.Int32)">
+ <summary>
+ Create a real from a fraction.
+ </summary>
+ <param name="num">numerator of rational.</param>
+ <param name="den">denominator of rational.</param>
+ <returns>A Term with value <paramref name="num"/>/<paramref name="den"/> and sort Real</returns>
+ <seealso cref="M:Microsoft.Z3.Context.MkNumeral(System.String,Microsoft.Z3.Sort)"/>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkReal(System.String)">
+ <summary>
+ Create a real numeral.
+ </summary>
+ <param name="v">A string representing the Term value in decimal notation.</param>
+ <returns>A Term with value <paramref name="v"/> and sort Real</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkReal(System.Int32)">
+ <summary>
+ Create a real numeral.
+ </summary>
+ <param name="v">value of the numeral.</param>
+ <returns>A Term with value <paramref name="v"/> and sort Real</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkReal(System.UInt32)">
+ <summary>
+ Create a real numeral.
+ </summary>
+ <param name="v">value of the numeral.</param>
+ <returns>A Term with value <paramref name="v"/> and sort Real</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkReal(System.Int64)">
+ <summary>
+ Create a real numeral.
+ </summary>
+ <param name="v">value of the numeral.</param>
+ <returns>A Term with value <paramref name="v"/> and sort Real</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkReal(System.UInt64)">
+ <summary>
+ Create a real numeral.
+ </summary>
+ <param name="v">value of the numeral.</param>
+ <returns>A Term with value <paramref name="v"/> and sort Real</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkInt(System.String)">
+ <summary>
+ Create an integer numeral.
+ </summary>
+ <param name="v">A string representing the Term value in decimal notation.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkInt(System.Int32)">
+ <summary>
+ Create an integer numeral.
+ </summary>
+ <param name="v">value of the numeral.</param>
+ <returns>A Term with value <paramref name="v"/> and sort Integer</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkInt(System.UInt32)">
+ <summary>
+ Create an integer numeral.
+ </summary>
+ <param name="v">value of the numeral.</param>
+ <returns>A Term with value <paramref name="v"/> and sort Integer</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkInt(System.Int64)">
+ <summary>
+ Create an integer numeral.
+ </summary>
+ <param name="v">value of the numeral.</param>
+ <returns>A Term with value <paramref name="v"/> and sort Integer</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkInt(System.UInt64)">
+ <summary>
+ Create an integer numeral.
+ </summary>
+ <param name="v">value of the numeral.</param>
+ <returns>A Term with value <paramref name="v"/> and sort Integer</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBV(System.String,System.UInt32)">
+ <summary>
+ Create a bit-vector numeral.
+ </summary>
+ <param name="v">A string representing the value in decimal notation.</param>
+ <param name="size">the size of the bit-vector</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBV(System.Int32,System.UInt32)">
+ <summary>
+ Create a bit-vector numeral.
+ </summary>
+ <param name="v">value of the numeral.</param>
+ <param name="size">the size of the bit-vector</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBV(System.UInt32,System.UInt32)">
+ <summary>
+ Create a bit-vector numeral.
+ </summary>
+ <param name="v">value of the numeral.</param>
+ <param name="size">the size of the bit-vector</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBV(System.Int64,System.UInt32)">
+ <summary>
+ Create a bit-vector numeral.
+ </summary>
+ <param name="v">value of the numeral.</param>
+ <param name="size">the size of the bit-vector</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBV(System.UInt64,System.UInt32)">
+ <summary>
+ Create a bit-vector numeral.
+ </summary>
+ <param name="v">value of the numeral.</param>
+ <param name="size">the size of the bit-vector</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBV(System.Boolean[])">
+ <summary>
+ Create a bit-vector numeral.
+ </summary>
+ <param name="bits">An array of bits representing the bit-vector. Least signficant bit is at position 0.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkForall(Microsoft.Z3.Sort[],Microsoft.Z3.Symbol[],Microsoft.Z3.Expr,System.UInt32,Microsoft.Z3.Pattern[],Microsoft.Z3.Expr[],Microsoft.Z3.Symbol,Microsoft.Z3.Symbol)">
+ <summary>
+ Create a universal Quantifier.
+ </summary>
+ <remarks>
+ Creates a forall formula, where <paramref name="weight"/> is the weight,
+ <paramref name="patterns"/> is an array of patterns, <paramref name="sorts"/> is an array
+ with the sorts of the bound variables, <paramref name="names"/> is an array with the
+ 'names' of the bound variables, and <paramref name="body"/> is the body of the
+ quantifier. Quantifiers are associated with weights indicating the importance of
+ using the quantifier during instantiation.
+ Note that the bound variables are de-Bruijn indices created using <see cref="M:Microsoft.Z3.Context.MkBound(System.UInt32,Microsoft.Z3.Sort)"/>.
+ Z3 applies the convention that the last element in <paramref name="names"/> and
+ <paramref name="sorts"/> refers to the variable with index 0, the second to last element
+ of <paramref name="names"/> and <paramref name="sorts"/> refers to the variable
+ with index 1, etc.
+ </remarks>
+ <param name="sorts">the sorts of the bound variables.</param>
+ <param name="names">names of the bound variables</param>
+ <param name="body">the body of the quantifier.</param>
+ <param name="weight">quantifiers are associated with weights indicating the importance of using the quantifier during instantiation. By default, pass the weight 0.</param>
+ <param name="patterns">array containing the patterns created using <c>MkPattern</c>.</param>
+ <param name="noPatterns">array containing the anti-patterns created using <c>MkPattern</c>.</param>
+ <param name="quantifierID">optional symbol to track quantifier.</param>
+ <param name="skolemID">optional symbol to track skolem constants.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkForall(Microsoft.Z3.Expr[],Microsoft.Z3.Expr,System.UInt32,Microsoft.Z3.Pattern[],Microsoft.Z3.Expr[],Microsoft.Z3.Symbol,Microsoft.Z3.Symbol)">
+ <summary>
+ Create a universal Quantifier.
+ </summary>
+ <remarks>
+ Creates a universal quantifier using a list of constants that will
+ form the set of bound variables.
+ <seealso cref="M:Microsoft.Z3.Context.MkForall(Microsoft.Z3.Sort[],Microsoft.Z3.Symbol[],Microsoft.Z3.Expr,System.UInt32,Microsoft.Z3.Pattern[],Microsoft.Z3.Expr[],Microsoft.Z3.Symbol,Microsoft.Z3.Symbol)"/>
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkExists(Microsoft.Z3.Sort[],Microsoft.Z3.Symbol[],Microsoft.Z3.Expr,System.UInt32,Microsoft.Z3.Pattern[],Microsoft.Z3.Expr[],Microsoft.Z3.Symbol,Microsoft.Z3.Symbol)">
+ <summary>
+ Create an existential Quantifier.
+ </summary>
+ <remarks>
+ Creates an existential quantifier using de-Brujin indexed variables.
+ (<see cref="M:Microsoft.Z3.Context.MkForall(Microsoft.Z3.Sort[],Microsoft.Z3.Symbol[],Microsoft.Z3.Expr,System.UInt32,Microsoft.Z3.Pattern[],Microsoft.Z3.Expr[],Microsoft.Z3.Symbol,Microsoft.Z3.Symbol)"/>).
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkExists(Microsoft.Z3.Expr[],Microsoft.Z3.Expr,System.UInt32,Microsoft.Z3.Pattern[],Microsoft.Z3.Expr[],Microsoft.Z3.Symbol,Microsoft.Z3.Symbol)">
+ <summary>
+ Create an existential Quantifier.
+ </summary>
+ <remarks>
+ Creates an existential quantifier using a list of constants that will
+ form the set of bound variables.
+ <seealso cref="M:Microsoft.Z3.Context.MkForall(Microsoft.Z3.Sort[],Microsoft.Z3.Symbol[],Microsoft.Z3.Expr,System.UInt32,Microsoft.Z3.Pattern[],Microsoft.Z3.Expr[],Microsoft.Z3.Symbol,Microsoft.Z3.Symbol)"/>
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkQuantifier(System.Boolean,Microsoft.Z3.Sort[],Microsoft.Z3.Symbol[],Microsoft.Z3.Expr,System.UInt32,Microsoft.Z3.Pattern[],Microsoft.Z3.Expr[],Microsoft.Z3.Symbol,Microsoft.Z3.Symbol)">
+ <summary>
+ Create a Quantifier.
+ </summary>
+ <see cref="M:Microsoft.Z3.Context.MkForall(Microsoft.Z3.Sort[],Microsoft.Z3.Symbol[],Microsoft.Z3.Expr,System.UInt32,Microsoft.Z3.Pattern[],Microsoft.Z3.Expr[],Microsoft.Z3.Symbol,Microsoft.Z3.Symbol)"/>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkQuantifier(System.Boolean,Microsoft.Z3.Expr[],Microsoft.Z3.Expr,System.UInt32,Microsoft.Z3.Pattern[],Microsoft.Z3.Expr[],Microsoft.Z3.Symbol,Microsoft.Z3.Symbol)">
+ <summary>
+ Create a Quantifier.
+ </summary>
+ <see cref="M:Microsoft.Z3.Context.MkForall(Microsoft.Z3.Sort[],Microsoft.Z3.Symbol[],Microsoft.Z3.Expr,System.UInt32,Microsoft.Z3.Pattern[],Microsoft.Z3.Expr[],Microsoft.Z3.Symbol,Microsoft.Z3.Symbol)"/>
+ </member>
+ <member name="M:Microsoft.Z3.Context.ParseSMTLIB2String(System.String,Microsoft.Z3.Symbol[],Microsoft.Z3.Sort[],Microsoft.Z3.Symbol[],Microsoft.Z3.FuncDecl[])">
+ <summary>
+ Parse the given string using the SMT-LIB2 parser.
+ </summary>
+ <returns>A conjunction of assertions in the scope (up to push/pop) at the end of the string.</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.ParseSMTLIB2File(System.String,Microsoft.Z3.Symbol[],Microsoft.Z3.Sort[],Microsoft.Z3.Symbol[],Microsoft.Z3.FuncDecl[])">
+ <summary>
+ Parse the given file using the SMT-LIB2 parser.
+ </summary>
+ <seealso cref="M:Microsoft.Z3.Context.ParseSMTLIB2String(System.String,Microsoft.Z3.Symbol[],Microsoft.Z3.Sort[],Microsoft.Z3.Symbol[],Microsoft.Z3.FuncDecl[])"/>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkGoal(System.Boolean,System.Boolean,System.Boolean)">
+ <summary>
+ Creates a new Goal.
+ </summary>
+ <remarks>
+ Note that the Context must have been created with proof generation support if
+ <paramref name="proofs"/> is set to true here.
+ </remarks>
+ <param name="models">Indicates whether model generation should be enabled.</param>
+ <param name="unsatCores">Indicates whether unsat core generation should be enabled.</param>
+ <param name="proofs">Indicates whether proof generation should be enabled.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkParams">
+ <summary>
+ Creates a new ParameterSet.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.TacticDescription(System.String)">
+ <summary>
+ Returns a string containing a description of the tactic with the given name.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkTactic(System.String)">
+ <summary>
+ Creates a new Tactic.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.AndThen(Microsoft.Z3.Tactic,Microsoft.Z3.Tactic,Microsoft.Z3.Tactic[])">
+ <summary>
+ Create a tactic that applies <paramref name="t1"/> to a Goal and
+ then <paramref name="t2"/> to every subgoal produced by <paramref name="t1"/>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.Then(Microsoft.Z3.Tactic,Microsoft.Z3.Tactic,Microsoft.Z3.Tactic[])">
+ <summary>
+ Create a tactic that applies <paramref name="t1"/> to a Goal and
+ then <paramref name="t2"/> to every subgoal produced by <paramref name="t1"/>.
+ </summary>
+ <remarks>
+ Shorthand for <c>AndThen</c>.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.OrElse(Microsoft.Z3.Tactic,Microsoft.Z3.Tactic)">
+ <summary>
+ Create a tactic that first applies <paramref name="t1"/> to a Goal and
+ if it fails then returns the result of <paramref name="t2"/> applied to the Goal.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.TryFor(Microsoft.Z3.Tactic,System.UInt32)">
+ <summary>
+ Create a tactic that applies <paramref name="t"/> to a goal for <paramref name="ms"/> milliseconds.
+ </summary>
+ <remarks>
+ If <paramref name="t"/> does not terminate within <paramref name="ms"/> milliseconds, then it fails.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.When(Microsoft.Z3.Probe,Microsoft.Z3.Tactic)">
+ <summary>
+ Create a tactic that applies <paramref name="t"/> to a given goal if the probe
+ <paramref name="p"/> evaluates to true.
+ </summary>
+ <remarks>
+ If <paramref name="p"/> evaluates to false, then the new tactic behaves like the <c>skip</c> tactic.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.Cond(Microsoft.Z3.Probe,Microsoft.Z3.Tactic,Microsoft.Z3.Tactic)">
+ <summary>
+ Create a tactic that applies <paramref name="t1"/> to a given goal if the probe
+ <paramref name="p"/> evaluates to true and <paramref name="t2"/> otherwise.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.Repeat(Microsoft.Z3.Tactic,System.UInt32)">
+ <summary>
+ Create a tactic that keeps applying <paramref name="t"/> until the goal is not
+ modified anymore or the maximum number of iterations <paramref name="max"/> is reached.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.Skip">
+ <summary>
+ Create a tactic that just returns the given goal.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.Fail">
+ <summary>
+ Create a tactic always fails.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.FailIf(Microsoft.Z3.Probe)">
+ <summary>
+ Create a tactic that fails if the probe <paramref name="p"/> evaluates to false.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.FailIfNotDecided">
+ <summary>
+ Create a tactic that fails if the goal is not triviall satisfiable (i.e., empty)
+ or trivially unsatisfiable (i.e., contains `false').
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.UsingParams(Microsoft.Z3.Tactic,Microsoft.Z3.Params)">
+ <summary>
+ Create a tactic that applies <paramref name="t"/> using the given set of parameters <paramref name="p"/>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.With(Microsoft.Z3.Tactic,Microsoft.Z3.Params)">
+ <summary>
+ Create a tactic that applies <paramref name="t"/> using the given set of parameters <paramref name="p"/>.
+ </summary>
+ <remarks>Alias for <c>UsingParams</c></remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.ParOr(Microsoft.Z3.Tactic[])">
+ <summary>
+ Create a tactic that applies the given tactics in parallel until one of them succeeds (i.e., the first that doesn't fail).
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.ParAndThen(Microsoft.Z3.Tactic,Microsoft.Z3.Tactic)">
+ <summary>
+ Create a tactic that applies <paramref name="t1"/> to a given goal and then <paramref name="t2"/>
+ to every subgoal produced by <paramref name="t1"/>. The subgoals are processed in parallel.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.Interrupt">
+ <summary>
+ Interrupt the execution of a Z3 procedure.
+ </summary>
+ <remarks>This procedure can be used to interrupt: solvers, simplifiers and tactics.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.ProbeDescription(System.String)">
+ <summary>
+ Returns a string containing a description of the probe with the given name.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkProbe(System.String)">
+ <summary>
+ Creates a new Probe.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.ConstProbe(System.Double)">
+ <summary>
+ Create a probe that always evaluates to <paramref name="val"/>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.Lt(Microsoft.Z3.Probe,Microsoft.Z3.Probe)">
+ <summary>
+ Create a probe that evaluates to "true" when the value returned by <paramref name="p1"/>
+ is less than the value returned by <paramref name="p2"/>
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.Gt(Microsoft.Z3.Probe,Microsoft.Z3.Probe)">
+ <summary>
+ Create a probe that evaluates to "true" when the value returned by <paramref name="p1"/>
+ is greater than the value returned by <paramref name="p2"/>
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.Le(Microsoft.Z3.Probe,Microsoft.Z3.Probe)">
+ <summary>
+ Create a probe that evaluates to "true" when the value returned by <paramref name="p1"/>
+ is less than or equal the value returned by <paramref name="p2"/>
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.Ge(Microsoft.Z3.Probe,Microsoft.Z3.Probe)">
+ <summary>
+ Create a probe that evaluates to "true" when the value returned by <paramref name="p1"/>
+ is greater than or equal the value returned by <paramref name="p2"/>
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.Eq(Microsoft.Z3.Probe,Microsoft.Z3.Probe)">
+ <summary>
+ Create a probe that evaluates to "true" when the value returned by <paramref name="p1"/>
+ is equal to the value returned by <paramref name="p2"/>
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.And(Microsoft.Z3.Probe,Microsoft.Z3.Probe)">
+ <summary>
+ Create a probe that evaluates to "true" when the value <paramref name="p1"/>
+ and <paramref name="p2"/> evaluate to "true".
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.Or(Microsoft.Z3.Probe,Microsoft.Z3.Probe)">
+ <summary>
+ Create a probe that evaluates to "true" when the value <paramref name="p1"/>
+ or <paramref name="p2"/> evaluate to "true".
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.Not(Microsoft.Z3.Probe)">
+ <summary>
+ Create a probe that evaluates to "true" when the value <paramref name="p"/>
+ does not evaluate to "true".
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSolver(Microsoft.Z3.Symbol)">
+ <summary>
+ Creates a new (incremental) solver.
+ </summary>
+ <remarks>
+ This solver also uses a set of builtin tactics for handling the first
+ check-sat command, and check-sat commands that take more than a given
+ number of milliseconds to be solved.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSolver(System.String)">
+ <summary>
+ Creates a new (incremental) solver.
+ </summary>
+ <seealso cref="M:Microsoft.Z3.Context.MkSolver(Microsoft.Z3.Symbol)"/>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSimpleSolver">
+ <summary>
+ Creates a new (incremental) solver.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSolver(Microsoft.Z3.Tactic)">
+ <summary>
+ Creates a solver that is implemented using the given tactic.
+ </summary>
+ <remarks>
+ The solver supports the commands <c>Push</c> and <c>Pop</c>, but it
+ will always solve each check from scratch.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFixedpoint">
+ <summary>
+ Create a Fixedpoint context.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkOptimize">
+ <summary>
+ Create an Optimization context.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPRoundingModeSort">
+ <summary>
+ Create the floating-point RoundingMode sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPRoundNearestTiesToEven">
+ <summary>
+ Create a numeral of RoundingMode sort which represents the NearestTiesToEven rounding mode.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPRNE">
+ <summary>
+ Create a numeral of RoundingMode sort which represents the NearestTiesToEven rounding mode.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPRoundNearestTiesToAway">
+ <summary>
+ Create a numeral of RoundingMode sort which represents the NearestTiesToAway rounding mode.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPRNA">
+ <summary>
+ Create a numeral of RoundingMode sort which represents the NearestTiesToAway rounding mode.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPRoundTowardPositive">
+ <summary>
+ Create a numeral of RoundingMode sort which represents the RoundTowardPositive rounding mode.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPRTP">
+ <summary>
+ Create a numeral of RoundingMode sort which represents the RoundTowardPositive rounding mode.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPRoundTowardNegative">
+ <summary>
+ Create a numeral of RoundingMode sort which represents the RoundTowardNegative rounding mode.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPRTN">
+ <summary>
+ Create a numeral of RoundingMode sort which represents the RoundTowardNegative rounding mode.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPRoundTowardZero">
+ <summary>
+ Create a numeral of RoundingMode sort which represents the RoundTowardZero rounding mode.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPRTZ">
+ <summary>
+ Create a numeral of RoundingMode sort which represents the RoundTowardZero rounding mode.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPSort(System.UInt32,System.UInt32)">
+ <summary>
+ Create a FloatingPoint sort.
+ </summary>
+ <param name="ebits">exponent bits in the FloatingPoint sort.</param>
+ <param name="sbits">significand bits in the FloatingPoint sort.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPSortHalf">
+ <summary>
+ Create the half-precision (16-bit) FloatingPoint sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPSort16">
+ <summary>
+ Create the half-precision (16-bit) FloatingPoint sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPSortSingle">
+ <summary>
+ Create the single-precision (32-bit) FloatingPoint sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPSort32">
+ <summary>
+ Create the single-precision (32-bit) FloatingPoint sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPSortDouble">
+ <summary>
+ Create the double-precision (64-bit) FloatingPoint sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPSort64">
+ <summary>
+ Create the double-precision (64-bit) FloatingPoint sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPSortQuadruple">
+ <summary>
+ Create the quadruple-precision (128-bit) FloatingPoint sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPSort128">
+ <summary>
+ Create the quadruple-precision (128-bit) FloatingPoint sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPNaN(Microsoft.Z3.FPSort)">
+ <summary>
+ Create a NaN of sort s.
+ </summary>
+ <param name="s">FloatingPoint sort.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPInf(Microsoft.Z3.FPSort,System.Boolean)">
+ <summary>
+ Create a floating-point infinity of sort s.
+ </summary>
+ <param name="s">FloatingPoint sort.</param>
+ <param name="negative">indicates whether the result should be negative.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPZero(Microsoft.Z3.FPSort,System.Boolean)">
+ <summary>
+ Create a floating-point zero of sort s.
+ </summary>
+ <param name="s">FloatingPoint sort.</param>
+ <param name="negative">indicates whether the result should be negative.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPNumeral(System.Single,Microsoft.Z3.FPSort)">
+ <summary>
+ Create a numeral of FloatingPoint sort from a float.
+ </summary>
+ <param name="v">numeral value.</param>
+ <param name="s">FloatingPoint sort.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPNumeral(System.Double,Microsoft.Z3.FPSort)">
+ <summary>
+ Create a numeral of FloatingPoint sort from a float.
+ </summary>
+ <param name="v">numeral value.</param>
+ <param name="s">FloatingPoint sort.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPNumeral(System.Int32,Microsoft.Z3.FPSort)">
+ <summary>
+ Create a numeral of FloatingPoint sort from an int.
+ </summary>
+ <param name="v">numeral value.</param>
+ <param name="s">FloatingPoint sort.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPNumeral(System.Boolean,System.UInt32,System.Int32,Microsoft.Z3.FPSort)">
+ <summary>
+ Create a numeral of FloatingPoint sort from a sign bit and two integers.
+ </summary>
+ <param name="sgn">the sign.</param>
+ <param name="sig">the significand.</param>
+ <param name="exp">the exponent.</param>
+ <param name="s">FloatingPoint sort.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPNumeral(System.Boolean,System.Int64,System.UInt64,Microsoft.Z3.FPSort)">
+ <summary>
+ Create a numeral of FloatingPoint sort from a sign bit and two 64-bit integers.
+ </summary>
+ <param name="sgn">the sign.</param>
+ <param name="sig">the significand.</param>
+ <param name="exp">the exponent.</param>
+ <param name="s">FloatingPoint sort.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFP(System.Single,Microsoft.Z3.FPSort)">
+ <summary>
+ Create a numeral of FloatingPoint sort from a float.
+ </summary>
+ <param name="v">numeral value.</param>
+ <param name="s">FloatingPoint sort.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFP(System.Double,Microsoft.Z3.FPSort)">
+ <summary>
+ Create a numeral of FloatingPoint sort from a float.
+ </summary>
+ <param name="v">numeral value.</param>
+ <param name="s">FloatingPoint sort.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFP(System.Int32,Microsoft.Z3.FPSort)">
+ <summary>
+ Create a numeral of FloatingPoint sort from an int.
+ </summary>
+ <param name="v">numeral value.</param>
+ <param name="s">FloatingPoint sort.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFP(System.Boolean,System.Int32,System.UInt32,Microsoft.Z3.FPSort)">
+ <summary>
+ Create a numeral of FloatingPoint sort from a sign bit and two integers.
+ </summary>
+ <param name="sgn">the sign.</param>
+ <param name="exp">the exponent.</param>
+ <param name="sig">the significand.</param>
+ <param name="s">FloatingPoint sort.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFP(System.Boolean,System.Int64,System.UInt64,Microsoft.Z3.FPSort)">
+ <summary>
+ Create a numeral of FloatingPoint sort from a sign bit and two 64-bit integers.
+ </summary>
+ <param name="sgn">the sign.</param>
+ <param name="exp">the exponent.</param>
+ <param name="sig">the significand.</param>
+ <param name="s">FloatingPoint sort.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPAbs(Microsoft.Z3.FPExpr)">
+ <summary>
+ Floating-point absolute value
+ </summary>
+ <param name="t">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPNeg(Microsoft.Z3.FPExpr)">
+ <summary>
+ Floating-point negation
+ </summary>
+ <param name="t">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPAdd(Microsoft.Z3.FPRMExpr,Microsoft.Z3.FPExpr,Microsoft.Z3.FPExpr)">
+ <summary>
+ Floating-point addition
+ </summary>
+ <param name="rm">rounding mode term</param>
+ <param name="t1">floating-point term</param>
+ <param name="t2">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPSub(Microsoft.Z3.FPRMExpr,Microsoft.Z3.FPExpr,Microsoft.Z3.FPExpr)">
+ <summary>
+ Floating-point subtraction
+ </summary>
+ <param name="rm">rounding mode term</param>
+ <param name="t1">floating-point term</param>
+ <param name="t2">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPMul(Microsoft.Z3.FPRMExpr,Microsoft.Z3.FPExpr,Microsoft.Z3.FPExpr)">
+ <summary>
+ Floating-point multiplication
+ </summary>
+ <param name="rm">rounding mode term</param>
+ <param name="t1">floating-point term</param>
+ <param name="t2">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPDiv(Microsoft.Z3.FPRMExpr,Microsoft.Z3.FPExpr,Microsoft.Z3.FPExpr)">
+ <summary>
+ Floating-point division
+ </summary>
+ <param name="rm">rounding mode term</param>
+ <param name="t1">floating-point term</param>
+ <param name="t2">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPFMA(Microsoft.Z3.FPRMExpr,Microsoft.Z3.FPExpr,Microsoft.Z3.FPExpr,Microsoft.Z3.FPExpr)">
+ <summary>
+ Floating-point fused multiply-add
+ </summary>
+ <remarks>
+ The result is round((t1 * t2) + t3)
+ </remarks>
+ <param name="rm">rounding mode term</param>
+ <param name="t1">floating-point term</param>
+ <param name="t2">floating-point term</param>
+ <param name="t3">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPSqrt(Microsoft.Z3.FPRMExpr,Microsoft.Z3.FPExpr)">
+ <summary>
+ Floating-point square root
+ </summary>
+ <param name="rm">rounding mode term</param>
+ <param name="t">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPRem(Microsoft.Z3.FPExpr,Microsoft.Z3.FPExpr)">
+ <summary>
+ Floating-point remainder
+ </summary>
+ <param name="t1">floating-point term</param>
+ <param name="t2">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPRoundToIntegral(Microsoft.Z3.FPRMExpr,Microsoft.Z3.FPExpr)">
+ <summary>
+ Floating-point roundToIntegral. Rounds a floating-point number to
+ the closest integer, again represented as a floating-point number.
+ </summary>
+ <param name="rm">term of RoundingMode sort</param>
+ <param name="t">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPMin(Microsoft.Z3.FPExpr,Microsoft.Z3.FPExpr)">
+ <summary>
+ Minimum of floating-point numbers.
+ </summary>
+ <param name="t1">floating-point term</param>
+ <param name="t2">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPMax(Microsoft.Z3.FPExpr,Microsoft.Z3.FPExpr)">
+ <summary>
+ Maximum of floating-point numbers.
+ </summary>
+ <param name="t1">floating-point term</param>
+ <param name="t2">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPLEq(Microsoft.Z3.FPExpr,Microsoft.Z3.FPExpr)">
+ <summary>
+ Floating-point less than or equal.
+ </summary>
+ <param name="t1">floating-point term</param>
+ <param name="t2">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPLt(Microsoft.Z3.FPExpr,Microsoft.Z3.FPExpr)">
+ <summary>
+ Floating-point less than.
+ </summary>
+ <param name="t1">floating-point term</param>
+ <param name="t2">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPGEq(Microsoft.Z3.FPExpr,Microsoft.Z3.FPExpr)">
+ <summary>
+ Floating-point greater than or equal.
+ </summary>
+ <param name="t1">floating-point term</param>
+ <param name="t2">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPGt(Microsoft.Z3.FPExpr,Microsoft.Z3.FPExpr)">
+ <summary>
+ Floating-point greater than.
+ </summary>
+ <param name="t1">floating-point term</param>
+ <param name="t2">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPEq(Microsoft.Z3.FPExpr,Microsoft.Z3.FPExpr)">
+ <summary>
+ Floating-point equality.
+ </summary>
+ <remarks>
+ Note that this is IEEE 754 equality (as opposed to standard =).
+ </remarks>
+ <param name="t1">floating-point term</param>
+ <param name="t2">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPIsNormal(Microsoft.Z3.FPExpr)">
+ <summary>
+ Predicate indicating whether t is a normal floating-point number.
+ </summary>
+ <param name="t">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPIsSubnormal(Microsoft.Z3.FPExpr)">
+ <summary>
+ Predicate indicating whether t is a subnormal floating-point number.
+ </summary>
+ <param name="t">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPIsZero(Microsoft.Z3.FPExpr)">
+ <summary>
+ Predicate indicating whether t is a floating-point number with zero value, i.e., +0 or -0.
+ </summary>
+ <param name="t">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPIsInfinite(Microsoft.Z3.FPExpr)">
+ <summary>
+ Predicate indicating whether t is a floating-point number representing +oo or -oo.
+ </summary>
+ <param name="t">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPIsNaN(Microsoft.Z3.FPExpr)">
+ <summary>
+ Predicate indicating whether t is a NaN.
+ </summary>
+ <param name="t">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPIsNegative(Microsoft.Z3.FPExpr)">
+ <summary>
+ Predicate indicating whether t is a negative floating-point number.
+ </summary>
+ <param name="t">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPIsPositive(Microsoft.Z3.FPExpr)">
+ <summary>
+ Predicate indicating whether t is a positive floating-point number.
+ </summary>
+ <param name="t">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFP(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Create an expression of FloatingPoint sort from three bit-vector expressions.
+ </summary>
+ <remarks>
+ This is the operator named `fp' in the SMT FP theory definition.
+ Note that sgn is required to be a bit-vector of size 1. Significand and exponent
+ are required to be greater than 1 and 2 respectively. The FloatingPoint sort
+ of the resulting expression is automatically determined from the bit-vector sizes
+ of the arguments.
+ </remarks>
+ <param name="sgn">bit-vector term (of size 1) representing the sign.</param>
+ <param name="sig">bit-vector term representing the significand.</param>
+ <param name="exp">bit-vector term representing the exponent.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPToFP(Microsoft.Z3.BitVecExpr,Microsoft.Z3.FPSort)">
+ <summary>
+ Conversion of a single IEEE 754-2008 bit-vector into a floating-point number.
+ </summary>
+ <remarks>
+ Produces a term that represents the conversion of a bit-vector term bv to a
+ floating-point term of sort s. The bit-vector size of bv (m) must be equal
+ to ebits+sbits of s. The format of the bit-vector is as defined by the
+ IEEE 754-2008 interchange format.
+ </remarks>
+ <param name="bv">bit-vector value (of size m).</param>
+ <param name="s">FloatingPoint sort (ebits+sbits == m)</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPToFP(Microsoft.Z3.FPRMExpr,Microsoft.Z3.FPExpr,Microsoft.Z3.FPSort)">
+ <summary>
+ Conversion of a FloatingPoint term into another term of different FloatingPoint sort.
+ </summary>
+ <remarks>
+ Produces a term that represents the conversion of a floating-point term t to a
+ floating-point term of sort s. If necessary, the result will be rounded according
+ to rounding mode rm.
+ </remarks>
+ <param name="rm">RoundingMode term.</param>
+ <param name="t">FloatingPoint term.</param>
+ <param name="s">FloatingPoint sort.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPToFP(Microsoft.Z3.FPRMExpr,Microsoft.Z3.RealExpr,Microsoft.Z3.FPSort)">
+ <summary>
+ Conversion of a term of real sort into a term of FloatingPoint sort.
+ </summary>
+ <remarks>
+ Produces a term that represents the conversion of term t of real sort into a
+ floating-point term of sort s. If necessary, the result will be rounded according
+ to rounding mode rm.
+ </remarks>
+ <param name="rm">RoundingMode term.</param>
+ <param name="t">term of Real sort.</param>
+ <param name="s">FloatingPoint sort.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPToFP(Microsoft.Z3.FPRMExpr,Microsoft.Z3.BitVecExpr,Microsoft.Z3.FPSort,System.Boolean)">
+ <summary>
+ Conversion of a 2's complement signed bit-vector term into a term of FloatingPoint sort.
+ </summary>
+ <remarks>
+ Produces a term that represents the conversion of the bit-vector term t into a
+ floating-point term of sort s. The bit-vector t is taken to be in signed
+ 2's complement format (when signed==true, otherwise unsigned). If necessary, the
+ result will be rounded according to rounding mode rm.
+ </remarks>
+ <param name="rm">RoundingMode term.</param>
+ <param name="t">term of bit-vector sort.</param>
+ <param name="s">FloatingPoint sort.</param>
+ <param name="signed">flag indicating whether t is interpreted as signed or unsigned bit-vector.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPToFP(Microsoft.Z3.FPSort,Microsoft.Z3.FPRMExpr,Microsoft.Z3.FPExpr)">
+ <summary>
+ Conversion of a floating-point number to another FloatingPoint sort s.
+ </summary>
+ <remarks>
+ Produces a term that represents the conversion of a floating-point term t to a different
+ FloatingPoint sort s. If necessary, rounding according to rm is applied.
+ </remarks>
+ <param name="s">FloatingPoint sort</param>
+ <param name="rm">floating-point rounding mode term</param>
+ <param name="t">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPToBV(Microsoft.Z3.FPRMExpr,Microsoft.Z3.FPExpr,System.UInt32,System.Boolean)">
+ <summary>
+ Conversion of a floating-point term into a bit-vector.
+ </summary>
+ <remarks>
+ Produces a term that represents the conversion of the floating-poiunt term t into a
+ bit-vector term of size sz in 2's complement format (signed when signed==true). If necessary,
+ the result will be rounded according to rounding mode rm.
+ </remarks>
+ <param name="rm">RoundingMode term.</param>
+ <param name="t">FloatingPoint term</param>
+ <param name="sz">Size of the resulting bit-vector.</param>
+ <param name="signed">Indicates whether the result is a signed or unsigned bit-vector.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPToReal(Microsoft.Z3.FPExpr)">
+ <summary>
+ Conversion of a floating-point term into a real-numbered term.
+ </summary>
+ <remarks>
+ Produces a term that represents the conversion of the floating-poiunt term t into a
+ real number. Note that this type of conversion will often result in non-linear
+ constraints over real terms.
+ </remarks>
+ <param name="t">FloatingPoint term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPToIEEEBV(Microsoft.Z3.FPExpr)">
+ <summary>
+ Conversion of a floating-point term into a bit-vector term in IEEE 754-2008 format.
+ </summary>
+ <remarks>
+ The size of the resulting bit-vector is automatically determined. Note that
+ IEEE 754-2008 allows multiple different representations of NaN. This conversion
+ knows only one NaN and it will always produce the same bit-vector represenatation of
+ that NaN.
+ </remarks>
+ <param name="t">FloatingPoint term.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPToFP(Microsoft.Z3.FPRMExpr,Microsoft.Z3.IntExpr,Microsoft.Z3.RealExpr,Microsoft.Z3.FPSort)">
+ <summary>
+ Conversion of a real-sorted significand and an integer-sorted exponent into a term of FloatingPoint sort.
+ </summary>
+ <remarks>
+ Produces a term that represents the conversion of sig * 2^exp into a
+ floating-point term of sort s. If necessary, the result will be rounded
+ according to rounding mode rm.
+ </remarks>
+ <param name="rm">RoundingMode term.</param>
+ <param name="exp">Exponent term of Int sort.</param>
+ <param name="sig">Significand term of Real sort.</param>
+ <param name="s">FloatingPoint sort.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.WrapAST(System.IntPtr)">
+ <summary>
+ Wraps an AST.
+ </summary>
+ <remarks>This function is used for transitions between native and
+ managed objects. Note that <paramref name="nativeObject"/> must be a
+ native object obtained from Z3 (e.g., through <seealso cref="M:Microsoft.Z3.Context.UnwrapAST(Microsoft.Z3.AST)"/>)
+ and that it must have a correct reference count (see e.g.,
+ <seealso cref="M:Microsoft.Z3.Native.Z3_inc_ref(System.IntPtr,System.IntPtr)"/>.</remarks>
+ <seealso cref="M:Microsoft.Z3.Context.UnwrapAST(Microsoft.Z3.AST)"/>
+ <param name="nativeObject">The native pointer to wrap.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.UnwrapAST(Microsoft.Z3.AST)">
+ <summary>
+ Unwraps an AST.
+ </summary>
+ <remarks>This function is used for transitions between native and
+ managed objects. It returns the native pointer to the AST. Note that
+ AST objects are reference counted and unwrapping an AST disables automatic
+ reference counting, i.e., all references to the IntPtr that is returned
+ must be handled externally and through native calls (see e.g.,
+ <seealso cref="M:Microsoft.Z3.Native.Z3_inc_ref(System.IntPtr,System.IntPtr)"/>).</remarks>
+ <seealso cref="M:Microsoft.Z3.Context.WrapAST(System.IntPtr)"/>
+ <param name="a">The AST to unwrap.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.SimplifyHelp">
+ <summary>
+ Return a string describing all available parameters to <c>Expr.Simplify</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.UpdateParamValue(System.String,System.String)">
+ <summary>
+ Update a mutable configuration parameter.
+ </summary>
+ <remarks>
+ The list of all configuration parameters can be obtained using the Z3 executable:
+ <c>z3.exe -p</c>
+ Only a few configuration parameters are mutable once the context is created.
+ An exception is thrown when trying to modify an immutable parameter.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.Finalize">
+ <summary>
+ Finalizer.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.Dispose">
+ <summary>
+ Disposes of the context.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.BoolSort">
+ <summary>
+ Retrieves the Boolean sort of the context.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.IntSort">
+ <summary>
+ Retrieves the Integer sort of the context.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.RealSort">
+ <summary>
+ Retrieves the Real sort of the context.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.StringSort">
+ <summary>
+ Retrieves the String sort of the context.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.PrintMode">
+ <summary>
+ Selects the format used for pretty-printing expressions.
+ </summary>
+ <remarks>
+ The default mode for pretty printing expressions is to produce
+ SMT-LIB style output where common subexpressions are printed
+ at each occurrence. The mode is called Z3_PRINT_SMTLIB_FULL.
+ To print shared common subexpressions only once,
+ use the Z3_PRINT_LOW_LEVEL mode.
+ To print in way that conforms to SMT-LIB standards and uses let
+ expressions to share common sub-expressions use Z3_PRINT_SMTLIB_COMPLIANT.
+ </remarks>
+ <seealso cref="M:Microsoft.Z3.AST.ToString"/>
+ <seealso cref="M:Microsoft.Z3.Pattern.ToString"/>
+ <seealso cref="M:Microsoft.Z3.FuncDecl.ToString"/>
+ <seealso cref="M:Microsoft.Z3.Sort.ToString"/>
+ </member>
+ <member name="P:Microsoft.Z3.Context.NumTactics">
+ <summary>
+ The number of supported tactics.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.TacticNames">
+ <summary>
+ The names of all supported tactics.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.NumProbes">
+ <summary>
+ The number of supported Probes.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.ProbeNames">
+ <summary>
+ The names of all supported Probes.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.SimplifyParameterDescriptions">
+ <summary>
+ Retrieves parameter descriptions for simplifier.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.AST_DRQ">
+ <summary>
+ AST DRQ
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.ASTMap_DRQ">
+ <summary>
+ ASTMap DRQ
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.ASTVector_DRQ">
+ <summary>
+ ASTVector DRQ
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.ApplyResult_DRQ">
+ <summary>
+ ApplyResult DRQ
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.FuncEntry_DRQ">
+ <summary>
+ FuncEntry DRQ
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.FuncInterp_DRQ">
+ <summary>
+ FuncInterp DRQ
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.Goal_DRQ">
+ <summary>
+ Goal DRQ
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.Model_DRQ">
+ <summary>
+ Model DRQ
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.Params_DRQ">
+ <summary>
+ Params DRQ
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.ParamDescrs_DRQ">
+ <summary>
+ ParamDescrs DRQ
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.Probe_DRQ">
+ <summary>
+ Probe DRQ
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.Solver_DRQ">
+ <summary>
+ Solver DRQ
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.Statistics_DRQ">
+ <summary>
+ Statistics DRQ
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.Tactic_DRQ">
+ <summary>
+ Tactic DRQ
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.Fixedpoint_DRQ">
+ <summary>
+ FixedPoint DRQ
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.Optimize_DRQ">
+ <summary>
+ Optimize DRQ
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.DatatypeExpr">
+ <summary>
+ Datatype expressions
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.DatatypeExpr.#ctor(Microsoft.Z3.Context,System.IntPtr)">
+ <summary> Constructor for DatatypeExpr </summary>
+ </member>
+ <member name="T:Microsoft.Z3.DatatypeSort">
+ <summary>
+ Datatype sorts.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.DatatypeSort.NumConstructors">
+ <summary>
+ The number of constructors of the datatype sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.DatatypeSort.Constructors">
+ <summary>
+ The constructors.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.DatatypeSort.Recognizers">
+ <summary>
+ The recognizers.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.DatatypeSort.Accessors">
+ <summary>
+ The constructor accessors.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Deprecated">
+ <summary>
+ The main interaction with Z3 happens via the Context.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Z3_lbool">
+ <summary>Z3_lbool</summary>
+ </member>
+ <member name="T:Microsoft.Z3.Z3_symbol_kind">
+ <summary>Z3_symbol_kind</summary>
+ </member>
+ <member name="T:Microsoft.Z3.Z3_parameter_kind">
+ <summary>Z3_parameter_kind</summary>
+ </member>
+ <member name="T:Microsoft.Z3.Z3_sort_kind">
+ <summary>Z3_sort_kind</summary>
+ </member>
+ <member name="T:Microsoft.Z3.Z3_ast_kind">
+ <summary>Z3_ast_kind</summary>
+ </member>
+ <member name="T:Microsoft.Z3.Z3_decl_kind">
+ <summary>Z3_decl_kind</summary>
+ </member>
+ <member name="T:Microsoft.Z3.Z3_param_kind">
+ <summary>Z3_param_kind</summary>
+ </member>
+ <member name="T:Microsoft.Z3.Z3_ast_print_mode">
+ <summary>Z3_ast_print_mode</summary>
+ </member>
+ <member name="T:Microsoft.Z3.Z3_error_code">
+ <summary>Z3_error_code</summary>
+ </member>
+ <member name="T:Microsoft.Z3.Z3_goal_prec">
+ <summary>Z3_goal_prec</summary>
+ </member>
+ <member name="T:Microsoft.Z3.EnumSort">
+ <summary>
+ Enumeration sorts.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.EnumSort.ConstDecl(System.UInt32)">
+ <summary>
+ Retrieves the inx'th constant declaration in the enumeration.
+ </summary>
+ <param name="inx"></param>
+ <returns></returns>
+ </member>
+ <member name="M:Microsoft.Z3.EnumSort.Const(System.UInt32)">
+ <summary>
+ Retrieves the inx'th constant in the enumeration.
+ </summary>
+ <param name="inx"></param>
+ <returns></returns>
+ </member>
+ <member name="M:Microsoft.Z3.EnumSort.TesterDecl(System.UInt32)">
+ <summary>
+ Retrieves the inx'th tester/recognizer declaration in the enumeration.
+ </summary>
+ <param name="inx"></param>
+ <returns></returns>
+ </member>
+ <member name="P:Microsoft.Z3.EnumSort.ConstDecls">
+ <summary>
+ The function declarations of the constants in the enumeration.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.EnumSort.Consts">
+ <summary>
+ The constants in the enumeration.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.EnumSort.TesterDecls">
+ <summary>
+ The test predicates (recognizers) for the constants in the enumeration.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.FiniteDomainExpr">
+ <summary>
+ Finite-domain expressions
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.FiniteDomainExpr.#ctor(Microsoft.Z3.Context,System.IntPtr)">
+ <summary> Constructor for DatatypeExpr </summary>
+ </member>
+ <member name="T:Microsoft.Z3.FiniteDomainNum">
+ <summary>
+ Finite-domain numerals
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.FiniteDomainNum.ToString">
+ <summary>
+ Returns a string representation of the numeral.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FiniteDomainNum.UInt64">
+ <summary>
+ Retrieve the 64-bit unsigned integer value.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FiniteDomainNum.Int">
+ <summary>
+ Retrieve the int value.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FiniteDomainNum.Int64">
+ <summary>
+ Retrieve the 64-bit int value.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FiniteDomainNum.UInt">
+ <summary>
+ Retrieve the int value.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FiniteDomainNum.BigInteger">
+ <summary>
+ Retrieve the BigInteger value.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.FiniteDomainSort">
+ <summary>
+ Finite domain sorts.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FiniteDomainSort.Size">
+ <summary>
+ The size of the finite domain sort.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Fixedpoint">
+ <summary>
+ Object for managing fixedpoints
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.Assert(Microsoft.Z3.BoolExpr[])">
+ <summary>
+ Assert a constraint (or multiple) into the fixedpoint solver.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.Add(Microsoft.Z3.BoolExpr[])">
+ <summary>
+ Alias for Assert.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.RegisterRelation(Microsoft.Z3.FuncDecl)">
+ <summary>
+ Register predicate as recursive relation.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.AddRule(Microsoft.Z3.BoolExpr,Microsoft.Z3.Symbol)">
+ <summary>
+ Add rule into the fixedpoint solver.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.AddFact(Microsoft.Z3.FuncDecl,System.UInt32[])">
+ <summary>
+ Add table fact to the fixedpoint solver.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.Query(Microsoft.Z3.BoolExpr)">
+ <summary>
+ Query the fixedpoint solver.
+ A query is a conjunction of constraints. The constraints may include the recursively defined relations.
+ The query is satisfiable if there is an instance of the query variables and a derivation for it.
+ The query is unsatisfiable if there are no derivations satisfying the query variables.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.Query(Microsoft.Z3.FuncDecl[])">
+ <summary>
+ Query the fixedpoint solver.
+ A query is an array of relations.
+ The query is satisfiable if there is an instance of some relation that is non-empty.
+ The query is unsatisfiable if there are no derivations satisfying any of the relations.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.Push">
+ <summary>
+ Creates a backtracking point.
+ </summary>
+ <seealso cref="M:Microsoft.Z3.Fixedpoint.Pop"/>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.Pop">
+ <summary>
+ Backtrack one backtracking point.
+ </summary>
+ <remarks>Note that an exception is thrown if Pop is called without a corresponding <c>Push</c></remarks>
+ <seealso cref="M:Microsoft.Z3.Fixedpoint.Push"/>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.UpdateRule(Microsoft.Z3.BoolExpr,Microsoft.Z3.Symbol)">
+ <summary>
+ Update named rule into in the fixedpoint solver.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.GetAnswer">
+ <summary>
+ Retrieve satisfying instance or instances of solver,
+ or definitions for the recursive predicates that show unsatisfiability.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.GetReasonUnknown">
+ <summary>
+ Retrieve explanation why fixedpoint engine returned status Unknown.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.GetNumLevels(Microsoft.Z3.FuncDecl)">
+ <summary>
+ Retrieve the number of levels explored for a given predicate.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.GetCoverDelta(System.Int32,Microsoft.Z3.FuncDecl)">
+ <summary>
+ Retrieve the cover of a predicate.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.AddCover(System.Int32,Microsoft.Z3.FuncDecl,Microsoft.Z3.Expr)">
+ <summary>
+ Add <tt>property</tt> about the <tt>predicate</tt>.
+ The property is added at <tt>level</tt>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.ToString">
+ <summary>
+ Retrieve internal string representation of fixedpoint object.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.SetPredicateRepresentation(Microsoft.Z3.FuncDecl,Microsoft.Z3.Symbol[])">
+ <summary>
+ Instrument the Datalog engine on which table representation to use for recursive predicate.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.ToString(Microsoft.Z3.BoolExpr[])">
+ <summary>
+ Convert benchmark given as set of axioms, rules and queries to a string.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.ParseFile(System.String)">
+ <summary>
+ Parse an SMT-LIB2 file with fixedpoint rules.
+ Add the rules to the current fixedpoint context.
+ Return the set of queries in the file.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.ParseString(System.String)">
+ <summary>
+ Similar to ParseFile. Instead it takes as argument a string.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Fixedpoint.Help">
+ <summary>
+ A string that describes all available fixedpoint solver parameters.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Fixedpoint.Parameters">
+ <summary>
+ Sets the fixedpoint solver parameters.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Fixedpoint.ParameterDescriptions">
+ <summary>
+ Retrieves parameter descriptions for Fixedpoint solver.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Fixedpoint.Rules">
+ <summary>
+ Retrieve set of rules added to fixedpoint context.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Fixedpoint.Assertions">
+ <summary>
+ Retrieve set of assertions added to fixedpoint context.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Fixedpoint.Statistics">
+ <summary>
+ Fixedpoint statistics.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.FPExpr">
+ <summary>
+ FloatingPoint Expressions
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.FPExpr.#ctor(Microsoft.Z3.Context,System.IntPtr)">
+ <summary> Constructor for FPExpr </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPExpr.EBits">
+ <summary>
+ The number of exponent bits.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPExpr.SBits">
+ <summary>
+ The number of significand bits.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.FPNum">
+ <summary>
+ FloatiungPoint Numerals
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.FPNum.Exponent(System.Boolean)">
+ <summary>
+ Return the (biased) exponent value of a floating-point numeral as a string
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.FPNum.ExponentInt64(System.Boolean)">
+ <summary>
+ Return the exponent value of a floating-point numeral as a signed 64-bit integer
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.FPNum.ExponentBV(System.Boolean)">
+ <summary>
+ The exponent of a floating-point numeral as a bit-vector expression
+ </summary>
+ <remarks>
+ +oo, -oo and NaN's do not have a bit-vector exponent, so they are invalid arguments.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.FPNum.ToString">
+ <summary>
+ Returns a string representation of the numeral.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPNum.SignBV">
+ <summary>
+ The sign of a floating-point numeral as a bit-vector expression
+ </summary>
+ <remarks>
+ NaN's do not have a bit-vector sign, so they are invalid arguments.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.FPNum.Sign">
+ <summary>
+ Retrieves the sign of a floating-point literal
+ </summary>
+ <remarks>
+ Remarks: returns true if the numeral is negative
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.FPNum.Significand">
+ <summary>
+ The significand value of a floating-point numeral as a string
+ </summary>
+ <remarks>
+ The significand s is always 0 &lt; s &lt; 2.0; the resulting string is long
+ enough to represent the real significand precisely.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.FPNum.SignificandUInt64">
+ <summary>
+ The significand value of a floating-point numeral as a UInt64
+ </summary>
+ <remarks>
+ This function extracts the significand bits, without the
+ hidden bit or normalization. Throws an exception if the
+ significand does not fit into a UInt64.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.FPNum.SignificandBV">
+ <summary>
+ The significand of a floating-point numeral as a bit-vector expression
+ </summary>
+ <remarks>
+ +oo, -oo and NaN's do not have a bit-vector significand, so they are invalid arguments.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.FPNum.IsNaN">
+ <summary>
+ Indicates whether the numeral is a NaN.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPNum.IsInf">
+ <summary>
+ Indicates whether the numeral is a +oo or -oo.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPNum.IsZero">
+ <summary>
+ Indicates whether the numeral is +zero or -zero.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPNum.IsNormal">
+ <summary>
+ Indicates whether the numeral is normal.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPNum.IsSubnormal">
+ <summary>
+ Indicates whether the numeral is subnormal.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPNum.IsPositive">
+ <summary>
+ Indicates whether the numeral is positive.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPNum.IsNegative">
+ <summary>
+ Indicates whether the numeral is negative.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.FPRMExpr">
+ <summary>
+ FloatingPoint RoundingMode Expressions
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.FPRMExpr.#ctor(Microsoft.Z3.Context,System.IntPtr)">
+ <summary> Constructor for FPRMExpr </summary>
+ </member>
+ <member name="T:Microsoft.Z3.FPRMNum">
+ <summary>
+ Floating-point rounding mode numerals
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.FPRMNum.ToString">
+ <summary>
+ Returns a string representation of the numeral.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.FPRMNum.#ctor(Microsoft.Z3.Context,System.IntPtr)">
+ <summary> Constructor for FPRMNum </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPRMNum.isRoundNearestTiesToEven">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundNearestTiesToEven
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPRMNum.isRNE">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundNearestTiesToEven
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPRMNum.isRoundNearestTiesToAway">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundNearestTiesToAway
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPRMNum.isRNA">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundNearestTiesToAway
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPRMNum.isRoundTowardPositive">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundTowardPositive
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPRMNum.isRTP">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundTowardPositive
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPRMNum.isRoundTowardNegative">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundTowardNegative
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPRMNum.isRTN">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundTowardNegative
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPRMNum.isRoundTowardZero">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundTowardZero
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPRMNum.isRTZ">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundTowardZero
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.FPRMSort">
+ <summary>
+ The FloatingPoint RoundingMode sort
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.FPSort">
+ <summary>
+ FloatingPoint sort
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPSort.EBits">
+ <summary>
+ The number of exponent bits.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPSort.SBits">
+ <summary>
+ The number of significand bits.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.FuncDecl">
+ <summary>
+ Function declarations.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.FuncDecl.op_Equality(Microsoft.Z3.FuncDecl,Microsoft.Z3.FuncDecl)">
+ <summary>
+ Comparison operator.
+ </summary>
+ <returns>True if <paramref name="a"/> and <paramref name="b"/> share the same context and are equal, false otherwise.</returns>
+ </member>
+ <member name="M:Microsoft.Z3.FuncDecl.op_Inequality(Microsoft.Z3.FuncDecl,Microsoft.Z3.FuncDecl)">
+ <summary>
+ Comparison operator.
+ </summary>
+ <returns>True if <paramref name="a"/> and <paramref name="b"/> do not share the same context or are not equal, false otherwise.</returns>
+ </member>
+ <member name="M:Microsoft.Z3.FuncDecl.Equals(System.Object)">
+ <summary>
+ Object comparison.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.FuncDecl.GetHashCode">
+ <summary>
+ A hash code.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.FuncDecl.ToString">
+ <summary>
+ A string representations of the function declaration.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.FuncDecl.Translate(Microsoft.Z3.Context)">
+ <summary>
+ Translates (copies) the function declaration to the Context <paramref name="ctx"/>.
+ </summary>
+ <param name="ctx">A context</param>
+ <returns>A copy of the function declaration which is associated with <paramref name="ctx"/></returns>
+ </member>
+ <member name="M:Microsoft.Z3.FuncDecl.Apply(Microsoft.Z3.Expr[])">
+ <summary>
+ Create expression that applies function to arguments.
+ </summary>
+ <param name="args"></param>
+ <returns></returns>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.Id">
+ <summary>
+ Returns a unique identifier for the function declaration.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.Arity">
+ <summary>
+ The arity of the function declaration
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.DomainSize">
+ <summary>
+ The size of the domain of the function declaration
+ <seealso cref="P:Microsoft.Z3.FuncDecl.Arity"/>
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.Domain">
+ <summary>
+ The domain of the function declaration
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.Range">
+ <summary>
+ The range of the function declaration
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.DeclKind">
+ <summary>
+ The kind of the function declaration.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.Name">
+ <summary>
+ The name of the function declaration
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.NumParameters">
+ <summary>
+ The number of parameters of the function declaration
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.Parameters">
+ <summary>
+ The parameters of the function declaration
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.Item(Microsoft.Z3.Expr[])">
+ <summary>
+ Create expression that applies function to arguments.
+ </summary>
+ <param name="args"></param>
+ <returns></returns>
+ </member>
+ <member name="T:Microsoft.Z3.FuncDecl.Parameter">
+ <summary>
+ Function declarations can have Parameters associated with them.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.Parameter.Int">
+ <summary>The int value of the parameter.</summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.Parameter.Double">
+ <summary>The double value of the parameter.</summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.Parameter.Symbol">
+ <summary>The Symbol value of the parameter.</summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.Parameter.Sort">
+ <summary>The Sort value of the parameter.</summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.Parameter.AST">
+ <summary>The AST value of the parameter.</summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.Parameter.FuncDecl">
+ <summary>The FunctionDeclaration value of the parameter.</summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.Parameter.Rational">
+ <summary>The rational string value of the parameter.</summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.Parameter.ParameterKind">
+ <summary>
+ The kind of the parameter.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.FuncInterp">
+ <summary>
+ A function interpretation is represented as a finite map and an 'else' value.
+ Each entry in the finite map represents the value of a function given a set of arguments.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.FuncInterp.ToString">
+ <summary>
+ A string representation of the function interpretation.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncInterp.NumEntries">
+ <summary>
+ The number of entries in the function interpretation.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncInterp.Entries">
+ <summary>
+ The entries in the function interpretation
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncInterp.Else">
+ <summary>
+ The (symbolic) `else' value of the function interpretation.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncInterp.Arity">
+ <summary>
+ The arity of the function interpretation
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.FuncInterp.Entry">
+ <summary>
+ An Entry object represents an element in the finite map used to encode
+ a function interpretation.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.FuncInterp.Entry.ToString">
+ <summary>
+ A string representation of the function entry.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncInterp.Entry.Value">
+ <summary>
+ Return the (symbolic) value of this entry.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncInterp.Entry.NumArgs">
+ <summary>
+ The number of arguments of the entry.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncInterp.Entry.Args">
+ <summary>
+ The arguments of the function entry.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Global">
+ <summary>
+ Global functions for Z3.
+ </summary>
+ <remarks>
+ This (static) class contains functions that effect the behaviour of Z3
+ globally across contexts, etc.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Global.SetParameter(System.String,System.String)">
+ <summary>
+ Set a global (or module) parameter, which is shared by all Z3 contexts.
+ </summary>
+ <remarks>
+ When a Z3 module is initialized it will use the value of these parameters
+ when Z3_params objects are not provided.
+ The name of parameter can be composed of characters [a-z][A-Z], digits [0-9], '-' and '_'.
+ The character '.' is a delimiter (more later).
+ The parameter names are case-insensitive. The character '-' should be viewed as an "alias" for '_'.
+ Thus, the following parameter names are considered equivalent: "pp.decimal-precision" and "PP.DECIMAL_PRECISION".
+ This function can be used to set parameters for a specific Z3 module.
+ This can be done by using [module-name].[parameter-name].
+ For example:
+ Z3_global_param_set('pp.decimal', 'true')
+ will set the parameter "decimal" in the module "pp" to true.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Global.GetParameter(System.String)">
+ <summary>
+ Get a global (or module) parameter.
+ </summary>
+ <remarks>
+ Returns null if the parameter <param name="id"/> does not exist.
+ The caller must invoke #Z3_global_param_del_value to delete the value returned at \c param_value.
+ This function cannot be invoked simultaneously from different threads without synchronization.
+ The result string stored in param_value is stored in a shared location.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Global.ResetParameters">
+ <summary>
+ Restore the value of all global (and module) parameters.
+ </summary>
+ <remarks>
+ This command will not affect already created objects (such as tactics and solvers)
+ </remarks>
+ <seealso cref="M:Microsoft.Z3.Global.SetParameter(System.String,System.String)"/>
+ </member>
+ <member name="M:Microsoft.Z3.Global.ToggleWarningMessages(System.Boolean)">
+ <summary>
+ Enable/disable printing of warning messages to the console.
+ </summary>
+ <remarks>Note that this function is static and effects the behaviour of
+ all contexts globally.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Global.EnableTrace(System.String)">
+ <summary>
+ Enable tracing messages tagged as `tag' when Z3 is compiled in debug mode.
+ </summary>
+ <remarks>
+ It is a NOOP otherwise.
+ </remarks>
+ <param name="tag">trace tag</param>
+ </member>
+ <member name="M:Microsoft.Z3.Global.DisableTrace(System.String)">
+ <summary>
+ Disable tracing messages tagged as `tag' when Z3 is compiled in debug mode.
+ </summary>
+ <remarks>
+ It is a NOOP otherwise.
+ </remarks>
+ <param name="tag">trace tag</param>
+ </member>
+ <member name="T:Microsoft.Z3.Goal">
+ <summary>
+ A goal (aka problem). A goal is essentially a set
+ of formulas, that can be solved and/or transformed using
+ tactics and solvers.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Goal.Assert(Microsoft.Z3.BoolExpr[])">
+ <summary>
+ Adds the <paramref name="constraints"/> to the given goal.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Goal.Add(Microsoft.Z3.BoolExpr[])">
+ <summary>
+ Alias for Assert.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Goal.Reset">
+ <summary>
+ Erases all formulas from the given goal.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Goal.Translate(Microsoft.Z3.Context)">
+ <summary>
+ Translates (copies) the Goal to the target Context <paramref name="ctx"/>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Goal.Simplify(Microsoft.Z3.Params)">
+ <summary>
+ Simplifies the goal.
+ </summary>
+ <remarks>Essentially invokes the `simplify' tactic on the goal.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Goal.ToString">
+ <summary>
+ Goal to string conversion.
+ </summary>
+ <returns>A string representation of the Goal.</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Goal.AsBoolExpr">
+ <summary>
+ Goal to BoolExpr conversion.
+ </summary>
+ <returns>A string representation of the Goal.</returns>
+ </member>
+ <member name="P:Microsoft.Z3.Goal.Precision">
+ <summary>
+ The precision of the goal.
+ </summary>
+ <remarks>
+ Goals can be transformed using over and under approximations.
+ An under approximation is applied when the objective is to find a model for a given goal.
+ An over approximation is applied when the objective is to find a proof for a given goal.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Goal.IsPrecise">
+ <summary>
+ Indicates whether the goal is precise.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Goal.IsUnderApproximation">
+ <summary>
+ Indicates whether the goal is an under-approximation.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Goal.IsOverApproximation">
+ <summary>
+ Indicates whether the goal is an over-approximation.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Goal.IsGarbage">
+ <summary>
+ Indicates whether the goal is garbage (i.e., the product of over- and under-approximations).
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Goal.Inconsistent">
+ <summary>
+ Indicates whether the goal contains `false'.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Goal.Depth">
+ <summary>
+ The depth of the goal.
+ </summary>
+ <remarks>
+ This tracks how many transformations were applied to it.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Goal.Size">
+ <summary>
+ The number of formulas in the goal.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Goal.Formulas">
+ <summary>
+ The formulas in the goal.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Goal.NumExprs">
+ <summary>
+ The number of formulas, subformulas and terms in the goal.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Goal.IsDecidedSat">
+ <summary>
+ Indicates whether the goal is empty, and it is precise or the product of an under approximation.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Goal.IsDecidedUnsat">
+ <summary>
+ Indicates whether the goal contains `false', and it is precise or the product of an over approximation.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.InterpolationContext">
+ <summary>
+ The InterpolationContext is suitable for generation of interpolants.
+ </summary>
+ <remarks>For more information on interpolation please refer
+ too the C/C++ API, which is well documented.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.InterpolationContext.#ctor">
+ <summary>
+ Constructor.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.InterpolationContext.#ctor(System.Collections.Generic.Dictionary{System.String,System.String})">
+ <summary>
+ Constructor.
+ </summary>
+ <remarks><seealso cref="T:Microsoft.Z3.Context"/></remarks>
+ </member>
+ <member name="M:Microsoft.Z3.InterpolationContext.MkInterpolant(Microsoft.Z3.BoolExpr)">
+ <summary>
+ Create an expression that marks a formula position for interpolation.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.InterpolationContext.GetInterpolant(Microsoft.Z3.Expr,Microsoft.Z3.Expr,Microsoft.Z3.Params)">
+ <summary>
+ Computes an interpolant.
+ </summary>
+ <remarks>For more information on interpolation please refer
+ too the function Z3_get_interpolant in the C/C++ API, which is
+ well documented.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.InterpolationContext.ComputeInterpolant(Microsoft.Z3.Expr,Microsoft.Z3.Params,Microsoft.Z3.BoolExpr[]@,Microsoft.Z3.Model@)">
+ <summary>
+ Computes an interpolant.
+ </summary>
+ <remarks>For more information on interpolation please refer
+ too the function Z3_compute_interpolant in the C/C++ API, which is
+ well documented.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.InterpolationContext.InterpolationProfile">
+ <summary>
+ Return a string summarizing cumulative time used for interpolation.
+ </summary>
+ <remarks>For more information on interpolation please refer
+ too the function Z3_interpolation_profile in the C/C++ API, which is
+ well documented.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.InterpolationContext.CheckInterpolant(Microsoft.Z3.Expr[],System.UInt32[],Microsoft.Z3.BoolExpr[],System.String@,Microsoft.Z3.Expr[])">
+ <summary>
+ Checks the correctness of an interpolant.
+ </summary>
+ <remarks>For more information on interpolation please refer
+ too the function Z3_check_interpolant in the C/C++ API, which is
+ well documented.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.InterpolationContext.ReadInterpolationProblem(System.String,Microsoft.Z3.Expr[]@,System.UInt32[]@,System.String@,Microsoft.Z3.Expr[]@)">
+ <summary>
+ Reads an interpolation problem from a file.
+ </summary>
+ <remarks>For more information on interpolation please refer
+ too the function Z3_read_interpolation_problem in the C/C++ API, which is
+ well documented.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.InterpolationContext.WriteInterpolationProblem(System.String,Microsoft.Z3.Expr[],System.UInt32[],Microsoft.Z3.Expr[])">
+ <summary>
+ Writes an interpolation problem to a file.
+ </summary>
+ <remarks>For more information on interpolation please refer
+ too the function Z3_write_interpolation_problem in the C/C++ API, which is
+ well documented.</remarks>
+ </member>
+ <member name="T:Microsoft.Z3.IntExpr">
+ <summary>
+ Int expressions
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.IntExpr.#ctor(Microsoft.Z3.Context,System.IntPtr)">
+ <summary> Constructor for IntExpr </summary>
+ </member>
+ <member name="T:Microsoft.Z3.IntNum">
+ <summary>
+ Integer Numerals
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.IntNum.ToString">
+ <summary>
+ Returns a string representation of the numeral.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.IntNum.UInt64">
+ <summary>
+ Retrieve the 64-bit unsigned integer value.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.IntNum.Int">
+ <summary>
+ Retrieve the int value.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.IntNum.Int64">
+ <summary>
+ Retrieve the 64-bit int value.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.IntNum.UInt">
+ <summary>
+ Retrieve the int value.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.IntNum.BigInteger">
+ <summary>
+ Retrieve the BigInteger value.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.IntSort">
+ <summary>
+ An Integer sort
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.IntSymbol">
+ <summary>
+ Numbered symbols
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Symbol">
+ <summary>
+ Symbols are used to name several term and type constructors.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Symbol.IsIntSymbol">
+ <summary>
+ Indicates whether the symbol is of Int kind
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Symbol.IsStringSymbol">
+ <summary>
+ Indicates whether the symbol is of string kind.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Symbol.ToString">
+ <summary>
+ A string representation of the symbol.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Symbol.op_Equality(Microsoft.Z3.Symbol,Microsoft.Z3.Symbol)">
+ <summary>
+ Equality overloading.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Symbol.op_Inequality(Microsoft.Z3.Symbol,Microsoft.Z3.Symbol)">
+ <summary>
+ Equality overloading.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Symbol.Equals(System.Object)">
+ <summary>
+ Object comparison.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Symbol.GetHashCode">
+ <summary>
+ The Symbols's hash code.
+ </summary>
+ <returns>A hash code</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Symbol.#ctor(Microsoft.Z3.Context,System.IntPtr)">
+ <summary>
+ Symbol constructor
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Symbol.Kind">
+ <summary>
+ The kind of the symbol (int or string)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.IntSymbol.Int">
+ <summary>
+ The int value of the symbol.
+ </summary>
+ <remarks>Throws an exception if the symbol is not of int kind. </remarks>
+ </member>
+ <member name="T:Microsoft.Z3.ListSort">
+ <summary>
+ List sorts.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.ListSort.NilDecl">
+ <summary>
+ The declaration of the nil function of this list sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.ListSort.Nil">
+ <summary>
+ The empty list.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.ListSort.IsNilDecl">
+ <summary>
+ The declaration of the isNil function of this list sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.ListSort.ConsDecl">
+ <summary>
+ The declaration of the cons function of this list sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.ListSort.IsConsDecl">
+ <summary>
+ The declaration of the isCons function of this list sort.
+ </summary>
+
+ </member>
+ <member name="P:Microsoft.Z3.ListSort.HeadDecl">
+ <summary>
+ The declaration of the head function of this list sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.ListSort.TailDecl">
+ <summary>
+ The declaration of the tail function of this list sort.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Log">
+ <summary>
+ Interaction logging for Z3.
+ </summary>
+ <remarks>
+ Note that this is a global, static log and if multiple Context
+ objects are created, it logs the interaction with all of them.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Log.Open(System.String)">
+ <summary>
+ Open an interaction log file.
+ </summary>
+ <param name="filename">the name of the file to open</param>
+ <returns>True if opening the log file succeeds, false otherwise.</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Log.Close">
+ <summary>
+ Closes the interaction log.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Log.Append(System.String)">
+ <summary>
+ Appends the user-provided string <paramref name="s"/> to the interaction log.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Log.isOpen">
+ <summary>
+ Checks whether the interaction log is opened.
+ </summary>
+ <returns>True if the interaction log is open, false otherwise.</returns>
+ </member>
+ <member name="T:Microsoft.Z3.Model">
+ <summary>
+ A Model contains interpretations (assignments) of constants and functions.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Model.ConstInterp(Microsoft.Z3.Expr)">
+ <summary>
+ Retrieves the interpretation (the assignment) of <paramref name="a"/> in the model.
+ </summary>
+ <param name="a">A Constant</param>
+ <returns>An expression if the constant has an interpretation in the model, null otherwise.</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Model.ConstInterp(Microsoft.Z3.FuncDecl)">
+ <summary>
+ Retrieves the interpretation (the assignment) of <paramref name="f"/> in the model.
+ </summary>
+ <param name="f">A function declaration of zero arity</param>
+ <returns>An expression if the function has an interpretation in the model, null otherwise.</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Model.FuncInterp(Microsoft.Z3.FuncDecl)">
+ <summary>
+ Retrieves the interpretation (the assignment) of a non-constant <paramref name="f"/> in the model.
+ </summary>
+ <param name="f">A function declaration of non-zero arity</param>
+ <returns>A FunctionInterpretation if the function has an interpretation in the model, null otherwise.</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Model.Eval(Microsoft.Z3.Expr,System.Boolean)">
+ <summary>
+ Evaluates the expression <paramref name="t"/> in the current model.
+ </summary>
+ <remarks>
+ This function may fail if <paramref name="t"/> contains quantifiers,
+ is partial (MODEL_PARTIAL enabled), or if <paramref name="t"/> is not well-sorted.
+ In this case a <c>ModelEvaluationFailedException</c> is thrown.
+ </remarks>
+ <param name="t">An expression</param>
+ <param name="completion">
+ When this flag is enabled, a model value will be assigned to any constant
+ or function that does not have an interpretation in the model.
+ </param>
+ <returns>The evaluation of <paramref name="t"/> in the model.</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Model.Evaluate(Microsoft.Z3.Expr,System.Boolean)">
+ <summary>
+ Alias for <c>Eval</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Model.SortUniverse(Microsoft.Z3.Sort)">
+ <summary>
+ The finite set of distinct values that represent the interpretation for sort <paramref name="s"/>.
+ </summary>
+ <seealso cref="P:Microsoft.Z3.Model.Sorts"/>
+ <param name="s">An uninterpreted sort</param>
+ <returns>An array of expressions, where each is an element of the universe of <paramref name="s"/></returns>
+ </member>
+ <member name="M:Microsoft.Z3.Model.ToString">
+ <summary>
+ Conversion of models to strings.
+ </summary>
+ <returns>A string representation of the model.</returns>
+ </member>
+ <member name="P:Microsoft.Z3.Model.NumConsts">
+ <summary>
+ The number of constants that have an interpretation in the model.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Model.ConstDecls">
+ <summary>
+ The function declarations of the constants in the model.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Model.Consts">
+ <summary>
+ Enumerate constants in model.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Model.NumFuncs">
+ <summary>
+ The number of function interpretations in the model.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Model.FuncDecls">
+ <summary>
+ The function declarations of the function interpretations in the model.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Model.Decls">
+ <summary>
+ All symbols that have an interpretation in the model.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Model.NumSorts">
+ <summary>
+ The number of uninterpreted sorts that the model has an interpretation for.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Model.Sorts">
+ <summary>
+ The uninterpreted sorts that the model has an interpretation for.
+ </summary>
+ <remarks>
+ Z3 also provides an intepretation for uninterpreted sorts used in a formula.
+ The interpretation for a sort is a finite set of distinct values. We say this finite set is
+ the "universe" of the sort.
+ </remarks>
+ <seealso cref="P:Microsoft.Z3.Model.NumSorts"/>
+ <seealso cref="M:Microsoft.Z3.Model.SortUniverse(Microsoft.Z3.Sort)"/>
+ </member>
+ <member name="T:Microsoft.Z3.Model.ModelEvaluationFailedException">
+ <summary>
+ A ModelEvaluationFailedException is thrown when an expression cannot be evaluated by the model.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Z3Exception">
+ <summary>
+ The exception base class for error reporting from Z3
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Z3Exception.#ctor">
+ <summary>
+ Constructor.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Z3Exception.#ctor(System.String)">
+ <summary>
+ Constructor.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Z3Exception.#ctor(System.String,System.Exception)">
+ <summary>
+ Constructor.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Model.ModelEvaluationFailedException.#ctor">
+ <summary>
+ An exception that is thrown when model evaluation fails.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Optimize">
+ <summary>
+ Object for managing optimizization context
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.Assert(Microsoft.Z3.BoolExpr[])">
+ <summary>
+ Assert a constraint (or multiple) into the optimize solver.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.Assert(System.Collections.Generic.IEnumerable{Microsoft.Z3.BoolExpr})">
+ <summary>
+ Assert a constraint (or multiple) into the optimize solver.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.Add(Microsoft.Z3.BoolExpr[])">
+ <summary>
+ Alias for Assert.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.Add(System.Collections.Generic.IEnumerable{Microsoft.Z3.BoolExpr})">
+ <summary>
+ Alias for Assert.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.AddConstraints(System.Collections.Generic.IEnumerable{Microsoft.Z3.BoolExpr})">
+ <summary>
+ Assert a constraint (or multiple) into the optimize solver.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.AssertSoft(Microsoft.Z3.BoolExpr,System.UInt32,System.String)">
+ <summary>
+ Assert soft constraint
+ </summary>
+ <remarks>
+ Return an objective which associates with the group of constraints.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.Check">
+ <summary>
+ Check satisfiability of asserted constraints.
+ Produce a model that (when the objectives are bounded and
+ don't use strict inequalities) meets the objectives.
+ </summary>
+
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.Push">
+ <summary>
+ Creates a backtracking point.
+ </summary>
+ <seealso cref="M:Microsoft.Z3.Optimize.Pop"/>
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.Pop">
+ <summary>
+ Backtrack one backtracking point.
+ </summary>
+ <remarks>Note that an exception is thrown if Pop is called without a corresponding <c>Push</c></remarks>
+ <seealso cref="M:Microsoft.Z3.Optimize.Push"/>
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.MkMaximize(Microsoft.Z3.Expr)">
+ <summary>
+ Declare an arithmetical maximization objective.
+ Return a handle to the objective. The handle is used as
+ to retrieve the values of objectives after calling Check.
+ The expression can be either an arithmetical expression or bit-vector.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.MkMinimize(Microsoft.Z3.Expr)">
+ <summary>
+ Declare an arithmetical minimization objective.
+ Similar to MkMaximize.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.GetLower(System.UInt32)">
+ <summary>
+ Retrieve a lower bound for the objective handle.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.GetUpper(System.UInt32)">
+ <summary>
+ Retrieve an upper bound for the objective handle.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.GetLowerAsVector(System.UInt32)">
+ <summary>
+ Retrieve a lower bound for the objective handle.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.GetUpperAsVector(System.UInt32)">
+ <summary>
+ Retrieve an upper bound for the objective handle.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.ToString">
+ <summary>
+ Print the context to a string (SMT-LIB parseable benchmark).
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.FromFile(System.String)">
+ <summary>
+ Parse an SMT-LIB2 file with optimization objectives and constraints.
+ The parsed constraints and objectives are added to the optimization context.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.FromString(System.String)">
+ <summary>
+ Similar to FromFile. Instead it takes as argument a string.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Optimize.Help">
+ <summary>
+ A string that describes all available optimize solver parameters.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Optimize.Parameters">
+ <summary>
+ Sets the optimize solver parameters.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Optimize.ParameterDescriptions">
+ <summary>
+ Retrieves parameter descriptions for Optimize solver.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Optimize.Model">
+ <summary>
+ The model of the last <c>Check</c>.
+ </summary>
+ <remarks>
+ The result is <c>null</c> if <c>Check</c> was not invoked before,
+ if its results was not <c>SATISFIABLE</c>, or if model production is not enabled.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Optimize.ReasonUnknown">
+ <summary>
+ Return a string the describes why the last to check returned unknown
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Optimize.Assertions">
+ <summary>
+ The set of asserted formulas.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Optimize.Objectives">
+ <summary>
+ The set of asserted formulas.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Optimize.Statistics">
+ <summary>
+ Optimize statistics.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Optimize.Handle">
+ <summary>
+ Handle to objectives returned by objective functions.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Optimize.Handle.Lower">
+ <summary>
+ Retrieve a lower bound for the objective handle.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Optimize.Handle.Upper">
+ <summary>
+ Retrieve an upper bound for the objective handle.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Optimize.Handle.Value">
+ <summary>
+ Retrieve the value of an objective.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Optimize.Handle.LowerAsVector">
+ <summary>
+ Retrieve a lower bound for the objective handle.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Optimize.Handle.UpperAsVector">
+ <summary>
+ Retrieve an upper bound for the objective handle.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.ParamDescrs">
+ <summary>
+ A ParamDescrs describes a set of parameters.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ParamDescrs.Validate(Microsoft.Z3.Params)">
+ <summary>
+ validate a set of parameters.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ParamDescrs.GetKind(Microsoft.Z3.Symbol)">
+ <summary>
+ Retrieve kind of parameter.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ParamDescrs.GetDocumentation(Microsoft.Z3.Symbol)">
+ <summary>
+ Retrieve documentation of parameter.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ParamDescrs.ToString">
+ <summary>
+ Retrieves a string representation of the ParamDescrs.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.ParamDescrs.Names">
+ <summary>
+ Retrieve all names of parameters.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.ParamDescrs.Size">
+ <summary>
+ The size of the ParamDescrs.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Params">
+ <summary>
+ A Params objects represents a configuration in the form of Symbol/value pairs.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Params.Add(Microsoft.Z3.Symbol,System.Boolean)">
+ <summary>
+ Adds a parameter setting.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Params.Add(Microsoft.Z3.Symbol,System.UInt32)">
+ <summary>
+ Adds a parameter setting.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Params.Add(Microsoft.Z3.Symbol,System.Double)">
+ <summary>
+ Adds a parameter setting.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Params.Add(Microsoft.Z3.Symbol,System.String)">
+ <summary>
+ Adds a parameter setting.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Params.Add(Microsoft.Z3.Symbol,Microsoft.Z3.Symbol)">
+ <summary>
+ Adds a parameter setting.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Params.Add(System.String,System.Boolean)">
+ <summary>
+ Adds a parameter setting.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Params.Add(System.String,System.UInt32)">
+ <summary>
+ Adds a parameter setting.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Params.Add(System.String,System.Double)">
+ <summary>
+ Adds a parameter setting.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Params.Add(System.String,Microsoft.Z3.Symbol)">
+ <summary>
+ Adds a parameter setting.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Params.Add(System.String,System.String)">
+ <summary>
+ Adds a parameter setting.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Params.ToString">
+ <summary>
+ A string representation of the parameter set.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Pattern">
+ <summary>
+ Patterns comprise a list of terms. The list should be
+ non-empty. If the list comprises of more than one term, it is
+ also called a multi-pattern.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Pattern.ToString">
+ <summary>
+ A string representation of the pattern.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Pattern.NumTerms">
+ <summary>
+ The number of terms in the pattern.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Pattern.Terms">
+ <summary>
+ The terms in the pattern.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Probe">
+ <summary>
+ Probes are used to inspect a goal (aka problem) and collect information that may be used to decide
+ which solver and/or preprocessing step will be used.
+ The complete list of probes may be obtained using the procedures <c>Context.NumProbes</c>
+ and <c>Context.ProbeNames</c>.
+ It may also be obtained using the command <c>(help-tactic)</c> in the SMT 2.0 front-end.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Probe.Apply(Microsoft.Z3.Goal)">
+ <summary>
+ Execute the probe over the goal.
+ </summary>
+ <returns>A probe always produce a double value.
+ "Boolean" probes return 0.0 for false, and a value different from 0.0 for true.</returns>
+ </member>
+ <member name="P:Microsoft.Z3.Probe.Item(Microsoft.Z3.Goal)">
+ <summary>
+ Apply the probe to a goal.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Quantifier">
+ <summary>
+ Quantifier expressions.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Quantifier.Translate(Microsoft.Z3.Context)">
+ <summary>
+ Translates (copies) the quantifier to the Context <paramref name="ctx"/>.
+ </summary>
+ <param name="ctx">A context</param>
+ <returns>A copy of the quantifier which is associated with <paramref name="ctx"/></returns>
+ </member>
+ <member name="P:Microsoft.Z3.Quantifier.IsUniversal">
+ <summary>
+ Indicates whether the quantifier is universal.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Quantifier.IsExistential">
+ <summary>
+ Indicates whether the quantifier is existential.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Quantifier.Weight">
+ <summary>
+ The weight of the quantifier.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Quantifier.NumPatterns">
+ <summary>
+ The number of patterns.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Quantifier.Patterns">
+ <summary>
+ The patterns.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Quantifier.NumNoPatterns">
+ <summary>
+ The number of no-patterns.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Quantifier.NoPatterns">
+ <summary>
+ The no-patterns.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Quantifier.NumBound">
+ <summary>
+ The number of bound variables.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Quantifier.BoundVariableNames">
+ <summary>
+ The symbols for the bound variables.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Quantifier.BoundVariableSorts">
+ <summary>
+ The sorts of the bound variables.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Quantifier.Body">
+ <summary>
+ The body of the quantifier.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.RatNum">
+ <summary>
+ Rational Numerals
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.RealExpr">
+ <summary>
+ Real expressions
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.RealExpr.#ctor(Microsoft.Z3.Context,System.IntPtr)">
+ <summary> Constructor for RealExpr </summary>
+ </member>
+ <member name="M:Microsoft.Z3.RatNum.ToDecimalString(System.UInt32)">
+ <summary>
+ Returns a string representation in decimal notation.
+ </summary>
+ <remarks>The result has at most <paramref name="precision"/> decimal places.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.RatNum.ToString">
+ <summary>
+ Returns a string representation of the numeral.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.RatNum.Numerator">
+ <summary>
+ The numerator of a rational numeral.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.RatNum.Denominator">
+ <summary>
+ The denominator of a rational numeral.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.RatNum.BigIntNumerator">
+ <summary>
+ Converts the numerator of the rational to a BigInteger
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.RatNum.BigIntDenominator">
+ <summary>
+ Converts the denominator of the rational to a BigInteger
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.RealSort">
+ <summary>
+ A real sort
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.ReExpr">
+ <summary>
+ Regular expression expressions
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ReExpr.#ctor(Microsoft.Z3.Context,System.IntPtr)">
+ <summary> Constructor for ReExpr </summary>
+ </member>
+ <member name="T:Microsoft.Z3.RelationSort">
+ <summary>
+ Relation sorts.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.RelationSort.Arity">
+ <summary>
+ The arity of the relation sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.RelationSort.ColumnSorts">
+ <summary>
+ The sorts of the columns of the relation sort.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.ReSort">
+ <summary>
+ A regular expression sort
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.SeqExpr">
+ <summary>
+ Sequence expressions
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.SeqExpr.#ctor(Microsoft.Z3.Context,System.IntPtr)">
+ <summary> Constructor for SeqExpr </summary>
+ </member>
+ <member name="T:Microsoft.Z3.SeqSort">
+ <summary>
+ A Sequence sort
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.SetSort">
+ <summary>
+ Set sorts.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Solver">
+ <summary>
+ Solvers.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Solver.Set(System.String,System.Boolean)">
+ <summary>
+ Sets parameter on the solver
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Solver.Set(System.String,System.UInt32)">
+ <summary>
+ Sets parameter on the solver
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Solver.Set(System.String,System.Double)">
+ <summary>
+ Sets parameter on the solver
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Solver.Set(System.String,System.String)">
+ <summary>
+ Sets parameter on the solver
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Solver.Set(System.String,Microsoft.Z3.Symbol)">
+ <summary>
+ Sets parameter on the solver
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Solver.Set(Microsoft.Z3.Symbol,System.Boolean)">
+ <summary>
+ Sets parameter on the solver
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Solver.Set(Microsoft.Z3.Symbol,System.UInt32)">
+ <summary>
+ Sets parameter on the solver
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Solver.Set(Microsoft.Z3.Symbol,System.Double)">
+ <summary>
+ Sets parameter on the solver
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Solver.Set(Microsoft.Z3.Symbol,System.String)">
+ <summary>
+ Sets parameter on the solver
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Solver.Set(Microsoft.Z3.Symbol,Microsoft.Z3.Symbol)">
+ <summary>
+ Sets parameter on the solver
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Solver.Push">
+ <summary>
+ Creates a backtracking point.
+ </summary>
+ <seealso cref="M:Microsoft.Z3.Solver.Pop(System.UInt32)"/>
+ </member>
+ <member name="M:Microsoft.Z3.Solver.Pop(System.UInt32)">
+ <summary>
+ Backtracks <paramref name="n"/> backtracking points.
+ </summary>
+ <remarks>Note that an exception is thrown if <paramref name="n"/> is not smaller than <c>NumScopes</c></remarks>
+ <seealso cref="M:Microsoft.Z3.Solver.Push"/>
+ </member>
+ <member name="M:Microsoft.Z3.Solver.Reset">
+ <summary>
+ Resets the Solver.
+ </summary>
+ <remarks>This removes all assertions from the solver.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Solver.Assert(Microsoft.Z3.BoolExpr[])">
+ <summary>
+ Assert a constraint (or multiple) into the solver.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Solver.Add(Microsoft.Z3.BoolExpr[])">
+ <summary>
+ Alias for Assert.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Solver.Add(System.Collections.Generic.IEnumerable{Microsoft.Z3.BoolExpr})">
+ <summary>
+ Alias for Assert.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Solver.AssertAndTrack(Microsoft.Z3.BoolExpr[],Microsoft.Z3.BoolExpr[])">
+ <summary>
+ Assert multiple constraints into the solver, and track them (in the unsat) core
+ using the Boolean constants in ps.
+ </summary>
+ <remarks>
+ This API is an alternative to <see cref="M:Microsoft.Z3.Solver.Check(Microsoft.Z3.Expr[])"/> with assumptions for extracting unsat cores.
+ Both APIs can be used in the same solver. The unsat core will contain a combination
+ of the Boolean variables provided using <see cref="M:Microsoft.Z3.Solver.AssertAndTrack(Microsoft.Z3.BoolExpr[],Microsoft.Z3.BoolExpr[])"/>
+ and the Boolean literals
+ provided using <see cref="M:Microsoft.Z3.Solver.Check(Microsoft.Z3.Expr[])"/> with assumptions.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Solver.AssertAndTrack(Microsoft.Z3.BoolExpr,Microsoft.Z3.BoolExpr)">
+ <summary>
+ Assert a constraint into the solver, and track it (in the unsat) core
+ using the Boolean constant p.
+ </summary>
+ <remarks>
+ This API is an alternative to <see cref="M:Microsoft.Z3.Solver.Check(Microsoft.Z3.Expr[])"/> with assumptions for extracting unsat cores.
+ Both APIs can be used in the same solver. The unsat core will contain a combination
+ of the Boolean variables provided using <see cref="M:Microsoft.Z3.Solver.AssertAndTrack(Microsoft.Z3.BoolExpr[],Microsoft.Z3.BoolExpr[])"/>
+ and the Boolean literals
+ provided using <see cref="M:Microsoft.Z3.Solver.Check(Microsoft.Z3.Expr[])"/> with assumptions.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Solver.FromFile(System.String)">
+ <summary>
+ Load solver assertions from a file.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Solver.FromString(System.String)">
+ <summary>
+ Load solver assertions from a string.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Solver.Check(Microsoft.Z3.Expr[])">
+ <summary>
+ Checks whether the assertions in the solver are consistent or not.
+ </summary>
+ <remarks>
+ <seealso cref="P:Microsoft.Z3.Solver.Model"/>
+ <seealso cref="P:Microsoft.Z3.Solver.UnsatCore"/>
+ <seealso cref="P:Microsoft.Z3.Solver.Proof"/>
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Solver.Check(System.Collections.Generic.IEnumerable{Microsoft.Z3.BoolExpr})">
+ <summary>
+ Checks whether the assertions in the solver are consistent or not.
+ </summary>
+ <remarks>
+ <seealso cref="P:Microsoft.Z3.Solver.Model"/>
+ <seealso cref="P:Microsoft.Z3.Solver.UnsatCore"/>
+ <seealso cref="P:Microsoft.Z3.Solver.Proof"/>
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Solver.Consequences(System.Collections.Generic.IEnumerable{Microsoft.Z3.BoolExpr},System.Collections.Generic.IEnumerable{Microsoft.Z3.Expr},Microsoft.Z3.BoolExpr[]@)">
+ <summary>
+ Retrieve fixed assignments to the set of variables in the form of consequences.
+ Each consequence is an implication of the form
+
+ relevant-assumptions Implies variable = value
+
+ where the relevant assumptions is a subset of the assumptions that are passed in
+ and the equality on the right side of the implication indicates how a variable
+ is fixed.
+ </summary>
+ <remarks>
+ <seealso cref="P:Microsoft.Z3.Solver.Model"/>
+ <seealso cref="P:Microsoft.Z3.Solver.UnsatCore"/>
+ <seealso cref="P:Microsoft.Z3.Solver.Proof"/>
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Solver.Translate(Microsoft.Z3.Context)">
+ <summary>
+ Create a clone of the current solver with respect to <c>ctx</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Solver.ToString">
+ <summary>
+ A string representation of the solver.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Solver.Help">
+ <summary>
+ A string that describes all available solver parameters.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Solver.Parameters">
+ <summary>
+ Sets the solver parameters.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Solver.ParameterDescriptions">
+ <summary>
+ Retrieves parameter descriptions for solver.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Solver.NumScopes">
+ <summary>
+ The current number of backtracking points (scopes).
+ </summary>
+ <seealso cref="M:Microsoft.Z3.Solver.Pop(System.UInt32)"/>
+ <seealso cref="M:Microsoft.Z3.Solver.Push"/>
+ </member>
+ <member name="P:Microsoft.Z3.Solver.NumAssertions">
+ <summary>
+ The number of assertions in the solver.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Solver.Assertions">
+ <summary>
+ The set of asserted formulas.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Solver.Model">
+ <summary>
+ The model of the last <c>Check</c>.
+ </summary>
+ <remarks>
+ The result is <c>null</c> if <c>Check</c> was not invoked before,
+ if its results was not <c>SATISFIABLE</c>, or if model production is not enabled.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Solver.Proof">
+ <summary>
+ The proof of the last <c>Check</c>.
+ </summary>
+ <remarks>
+ The result is <c>null</c> if <c>Check</c> was not invoked before,
+ if its results was not <c>UNSATISFIABLE</c>, or if proof production is disabled.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Solver.UnsatCore">
+ <summary>
+ The unsat core of the last <c>Check</c>.
+ </summary>
+ <remarks>
+ The unsat core is a subset of <c>Assertions</c>
+ The result is empty if <c>Check</c> was not invoked before,
+ if its results was not <c>UNSATISFIABLE</c>, or if core production is disabled.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Solver.ReasonUnknown">
+ <summary>
+ A brief justification of why the last call to <c>Check</c> returned <c>UNKNOWN</c>.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Solver.Statistics">
+ <summary>
+ Solver statistics.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Statistics">
+ <summary>
+ Objects of this class track statistical information about solvers.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Statistics.ToString">
+ <summary>
+ A string representation of the statistical data.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Statistics.Size">
+ <summary>
+ The number of statistical data.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Statistics.Entries">
+ <summary>
+ The data entries.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Statistics.Keys">
+ <summary>
+ The statistical counters.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Statistics.Item(System.String)">
+ <summary>
+ The value of a particular statistical counter.
+ </summary>
+ <remarks>Returns null if the key is unknown.</remarks>
+ </member>
+ <member name="T:Microsoft.Z3.Statistics.Entry">
+ <summary>
+ Statistical data is organized into pairs of [Key, Entry], where every
+ Entry is either a <c>DoubleEntry</c> or a <c>UIntEntry</c>
+ </summary>
+ </member>
+ <member name="F:Microsoft.Z3.Statistics.Entry.Key">
+ <summary>
+ The key of the entry.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Statistics.Entry.ToString">
+ <summary>
+ The string representation of the Entry.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Statistics.Entry.UIntValue">
+ <summary>
+ The uint-value of the entry.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Statistics.Entry.DoubleValue">
+ <summary>
+ The double-value of the entry.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Statistics.Entry.IsUInt">
+ <summary>
+ True if the entry is uint-valued.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Statistics.Entry.IsDouble">
+ <summary>
+ True if the entry is double-valued.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Statistics.Entry.Value">
+ <summary>
+ The string representation of the the entry's value.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Status">
+ <summary>
+ Status values.
+ </summary>
+ </member>
+ <member name="F:Microsoft.Z3.Status.UNSATISFIABLE">
+ <summary>
+ Used to signify an unsatisfiable status.
+ </summary>
+ </member>
+ <member name="F:Microsoft.Z3.Status.UNKNOWN">
+ <summary>
+ Used to signify an unknown status.
+ </summary>
+ </member>
+ <member name="F:Microsoft.Z3.Status.SATISFIABLE">
+ <summary>
+ Used to signify a satisfiable status.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.StringSymbol">
+ <summary>
+ Named symbols
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.StringSymbol.String">
+ <summary>
+ The string value of the symbol.
+ </summary>
+ <remarks>Throws an exception if the symbol is not of string kind.</remarks>
+ </member>
+ <member name="T:Microsoft.Z3.Tactic">
+ <summary>
+ Tactics are the basic building block for creating custom solvers for specific problem domains.
+ The complete list of tactics may be obtained using <c>Context.NumTactics</c>
+ and <c>Context.TacticNames</c>.
+ It may also be obtained using the command <c>(help-tactic)</c> in the SMT 2.0 front-end.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Tactic.Apply(Microsoft.Z3.Goal,Microsoft.Z3.Params)">
+ <summary>
+ Execute the tactic over the goal.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Tactic.Help">
+ <summary>
+ A string containing a description of parameters accepted by the tactic.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Tactic.ParameterDescriptions">
+ <summary>
+ Retrieves parameter descriptions for Tactics.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Tactic.Item(Microsoft.Z3.Goal)">
+ <summary>
+ Apply the tactic to a goal.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Tactic.Solver">
+ <summary>
+ Creates a solver that is implemented using the given tactic.
+ </summary>
+ <seealso cref="M:Microsoft.Z3.Context.MkSolver(Microsoft.Z3.Tactic)"/>
+ </member>
+ <member name="T:Microsoft.Z3.Tactic.DecRefQueue">
+ <summary>
+ DecRefQueue
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.TupleSort">
+ <summary>
+ Tuple sorts.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.TupleSort.MkDecl">
+ <summary>
+ The constructor function of the tuple.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.TupleSort.NumFields">
+ <summary>
+ The number of fields in the tuple.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.TupleSort.FieldDecls">
+ <summary>
+ The field declarations.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.UninterpretedSort">
+ <summary>
+ Uninterpreted Sorts
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Version">
+ <summary>
+ Version information.
+ </summary>
+ <remarks>Note that this class is static.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Version.ToString">
+ <summary>
+ A string representation of the version information.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Version.Major">
+ <summary>
+ The major version
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Version.Minor">
+ <summary>
+ The minor version
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Version.Build">
+ <summary>
+ The build version
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Version.Revision">
+ <summary>
+ The revision
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Version.FullVersion">
+ <summary>
+ A full version string
+ </summary>
+ </member>
+ </members>
+</doc>
diff --git a/rba.tool.core/lib32/z3/com.microsoft.z3.jar b/rba.tool.core/lib32/z3/com.microsoft.z3.jar
new file mode 100644
index 0000000..ee1fc4e
--- /dev/null
+++ b/rba.tool.core/lib32/z3/com.microsoft.z3.jar
Binary files differ
diff --git a/rba.tool.core/lib32/z3/libz3.dll b/rba.tool.core/lib32/z3/libz3.dll
new file mode 100644
index 0000000..e33549c
--- /dev/null
+++ b/rba.tool.core/lib32/z3/libz3.dll
Binary files differ
diff --git a/rba.tool.core/lib32/z3/libz3.lib b/rba.tool.core/lib32/z3/libz3.lib
new file mode 100644
index 0000000..eb0d778
--- /dev/null
+++ b/rba.tool.core/lib32/z3/libz3.lib
Binary files differ
diff --git a/rba.tool.core/lib32/z3/libz3java.dll b/rba.tool.core/lib32/z3/libz3java.dll
new file mode 100644
index 0000000..385c13e
--- /dev/null
+++ b/rba.tool.core/lib32/z3/libz3java.dll
Binary files differ
diff --git a/rba.tool.core/lib32/z3/libz3java.lib b/rba.tool.core/lib32/z3/libz3java.lib
new file mode 100644
index 0000000..bbd35df
--- /dev/null
+++ b/rba.tool.core/lib32/z3/libz3java.lib
Binary files differ
diff --git a/rba.tool.core/lib32/z3/msvcp110.dll b/rba.tool.core/lib32/z3/msvcp110.dll
new file mode 100644
index 0000000..376b16e
--- /dev/null
+++ b/rba.tool.core/lib32/z3/msvcp110.dll
Binary files differ
diff --git a/rba.tool.core/lib32/z3/msvcr110.dll b/rba.tool.core/lib32/z3/msvcr110.dll
new file mode 100644
index 0000000..1a3d79e
--- /dev/null
+++ b/rba.tool.core/lib32/z3/msvcr110.dll
Binary files differ
diff --git a/rba.tool.core/lib32/z3/python/example.py b/rba.tool.core/lib32/z3/python/example.py
new file mode 100644
index 0000000..a176685
--- /dev/null
+++ b/rba.tool.core/lib32/z3/python/example.py
@@ -0,0 +1,36 @@
+# Copyright (c) Microsoft Corporation 2015, 2016
+
+# The Z3 Python API requires libz3.dll/.so/.dylib in the
+# PATH/LD_LIBRARY_PATH/DYLD_LIBRARY_PATH
+# environment variable and the PYTHON_PATH environment variable
+# needs to point to the `python' directory that contains `z3/z3.py'
+# (which is at bin/python in our binary releases).
+
+# If you obtained example.py as part of our binary release zip files,
+# which you unzipped into a directory called `MYZ3', then follow these
+# instructions to run the example:
+
+# Running this example on Windows:
+# set PATH=%PATH%;MYZ3\bin
+# set PYTHONPATH=MYZ3\bin\python
+# python example.py
+
+# Running this example on Linux:
+# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:MYZ3/bin
+# export PYTHONPATH=MYZ3/bin/python
+# python example.py
+
+# Running this example on OSX:
+# export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:MYZ3/bin
+# export PYTHONPATH=MYZ3/bin/python
+# python example.py
+
+
+from z3 import *
+
+x = Real('x')
+y = Real('y')
+s = Solver()
+s.add(x + y > 5, x > 1, y > 1)
+print(s.check())
+print(s.model())
diff --git a/rba.tool.core/lib32/z3/python/z3/__init__.py b/rba.tool.core/lib32/z3/python/z3/__init__.py
new file mode 100644
index 0000000..f7aa29a
--- /dev/null
+++ b/rba.tool.core/lib32/z3/python/z3/__init__.py
@@ -0,0 +1,12 @@
+from .z3 import *
+
+from . import z3num
+from . import z3poly
+from . import z3printer
+from . import z3rcf
+from . import z3types
+from . import z3util
+
+# generated files
+from . import z3core
+from . import z3consts
diff --git a/rba.tool.core/lib32/z3/python/z3/__init__.pyc b/rba.tool.core/lib32/z3/python/z3/__init__.pyc
new file mode 100644
index 0000000..a05ab44
--- /dev/null
+++ b/rba.tool.core/lib32/z3/python/z3/__init__.pyc
Binary files differ
diff --git a/rba.tool.core/lib32/z3/python/z3/z3.py b/rba.tool.core/lib32/z3/python/z3/z3.py
new file mode 100644
index 0000000..237f354
--- /dev/null
+++ b/rba.tool.core/lib32/z3/python/z3/z3.py
@@ -0,0 +1,10025 @@
+
+############################################
+# Copyright (c) 2012 Microsoft Corporation
+#
+# Z3 Python interface
+#
+# Author: Leonardo de Moura (leonardo)
+############################################
+
+"""Z3 is a high performance theorem prover developed at Microsoft Research. Z3 is used in many applications such as: software/hardware verification and testing, constraint solving, analysis of hybrid systems, security, biology (in silico analysis), and geometrical problems.
+
+Several online tutorials for Z3Py are available at:
+http://rise4fun.com/Z3Py/tutorial/guide
+
+Please send feedback, comments and/or corrections on the Issue tracker for https://github.com/Z3prover/z3.git. Your comments are very valuable.
+
+Small example:
+
+>>> x = Int('x')
+>>> y = Int('y')
+>>> s = Solver()
+>>> s.add(x > 0)
+>>> s.add(x < 2)
+>>> s.add(y == x + 1)
+>>> s.check()
+sat
+>>> m = s.model()
+>>> m[x]
+1
+>>> m[y]
+2
+
+Z3 exceptions:
+
+>>> try:
+... x = BitVec('x', 32)
+... y = Bool('y')
+... # the expression x + y is type incorrect
+... n = x + y
+... except Z3Exception as ex:
+... print("failed: %s" % ex)
+failed: sort mismatch
+"""
+from . import z3core
+from .z3core import *
+from .z3types import *
+from .z3consts import *
+from .z3printer import *
+from fractions import Fraction
+import sys
+import io
+import math
+import copy
+
+if sys.version < '3':
+ def _is_int(v):
+ return isinstance(v, (int, long))
+else:
+ def _is_int(v):
+ return isinstance(v, int)
+
+def enable_trace(msg):
+ Z3_enable_trace(msg)
+
+def disable_trace(msg):
+ Z3_disable_trace(msg)
+
+def get_version_string():
+ major = ctypes.c_uint(0)
+ minor = ctypes.c_uint(0)
+ build = ctypes.c_uint(0)
+ rev = ctypes.c_uint(0)
+ Z3_get_version(major, minor, build, rev)
+ return "%s.%s.%s" % (major.value, minor.value, build.value)
+
+def get_version():
+ major = ctypes.c_uint(0)
+ minor = ctypes.c_uint(0)
+ build = ctypes.c_uint(0)
+ rev = ctypes.c_uint(0)
+ Z3_get_version(major, minor, build, rev)
+ return (major.value, minor.value, build.value, rev.value)
+
+def get_full_version():
+ return Z3_get_full_version()
+
+# We use _z3_assert instead of the assert command because we want to
+# produce nice error messages in Z3Py at rise4fun.com
+def _z3_assert(cond, msg):
+ if not cond:
+ raise Z3Exception(msg)
+
+def open_log(fname):
+ """Log interaction to a file. This function must be invoked immediately after init(). """
+ Z3_open_log(fname)
+
+def append_log(s):
+ """Append user-defined string to interaction log. """
+ Z3_append_log(s)
+
+def to_symbol(s, ctx=None):
+ """Convert an integer or string into a Z3 symbol."""
+ if _is_int(s):
+ return Z3_mk_int_symbol(_get_ctx(ctx).ref(), s)
+ else:
+ return Z3_mk_string_symbol(_get_ctx(ctx).ref(), s)
+
+def _symbol2py(ctx, s):
+ """Convert a Z3 symbol back into a Python object. """
+ if Z3_get_symbol_kind(ctx.ref(), s) == Z3_INT_SYMBOL:
+ return "k!%s" % Z3_get_symbol_int(ctx.ref(), s)
+ else:
+ return Z3_get_symbol_string(ctx.ref(), s)
+
+# Hack for having nary functions that can receive one argument that is the
+# list of arguments.
+def _get_args(args):
+ try:
+ if len(args) == 1 and (isinstance(args[0], tuple) or isinstance(args[0], list)):
+ return args[0]
+ elif len(args) == 1 and (isinstance(args[0], set) or isinstance(args[0], AstVector)):
+ return [arg for arg in args[0]]
+ else:
+ return args
+ except: # len is not necessarily defined when args is not a sequence (use reflection?)
+ return args
+
+def _to_param_value(val):
+ if isinstance(val, bool):
+ if val == True:
+ return "true"
+ else:
+ return "false"
+ else:
+ return str(val)
+
+def z3_error_handler(c, e):
+ # Do nothing error handler, just avoid exit(0)
+ # The wrappers in z3core.py will raise a Z3Exception if an error is detected
+ return
+
+class Context:
+ """A Context manages all other Z3 objects, global configuration options, etc.
+
+ Z3Py uses a default global context. For most applications this is sufficient.
+ An application may use multiple Z3 contexts. Objects created in one context
+ cannot be used in another one. However, several objects may be "translated" from
+ one context to another. It is not safe to access Z3 objects from multiple threads.
+ The only exception is the method `interrupt()` that can be used to interrupt() a long
+ computation.
+ The initialization method receives global configuration options for the new context.
+ """
+ def __init__(self, *args, **kws):
+ if __debug__:
+ _z3_assert(len(args) % 2 == 0, "Argument list must have an even number of elements.")
+ conf = Z3_mk_config()
+ for key in kws:
+ value = kws[key]
+ Z3_set_param_value(conf, str(key).upper(), _to_param_value(value))
+ prev = None
+ for a in args:
+ if prev is None:
+ prev = a
+ else:
+ Z3_set_param_value(conf, str(prev), _to_param_value(a))
+ prev = None
+ self.ctx = Z3_mk_context_rc(conf)
+ self.eh = Z3_set_error_handler(self.ctx, z3_error_handler)
+ Z3_set_ast_print_mode(self.ctx, Z3_PRINT_SMTLIB2_COMPLIANT)
+ Z3_del_config(conf)
+
+ def __del__(self):
+ Z3_del_context(self.ctx)
+ self.ctx = None
+ self.eh = None
+
+ def ref(self):
+ """Return a reference to the actual C pointer to the Z3 context."""
+ return self.ctx
+
+ def interrupt(self):
+ """Interrupt a solver performing a satisfiability test, a tactic processing a goal, or simplify functions.
+
+ This method can be invoked from a thread different from the one executing the
+ interruptable procedure.
+ """
+ Z3_interrupt(self.ref())
+
+
+# Global Z3 context
+_main_ctx = None
+def main_ctx():
+ """Return a reference to the global Z3 context.
+
+ >>> x = Real('x')
+ >>> x.ctx == main_ctx()
+ True
+ >>> c = Context()
+ >>> c == main_ctx()
+ False
+ >>> x2 = Real('x', c)
+ >>> x2.ctx == c
+ True
+ >>> eq(x, x2)
+ False
+ """
+ global _main_ctx
+ if _main_ctx is None:
+ _main_ctx = Context()
+ return _main_ctx
+
+def _get_ctx(ctx):
+ if ctx is None:
+ return main_ctx()
+ else:
+ return ctx
+
+def set_param(*args, **kws):
+ """Set Z3 global (or module) parameters.
+
+ >>> set_param(precision=10)
+ """
+ if __debug__:
+ _z3_assert(len(args) % 2 == 0, "Argument list must have an even number of elements.")
+ new_kws = {}
+ for k in kws:
+ v = kws[k]
+ if not set_pp_option(k, v):
+ new_kws[k] = v
+ for key in new_kws:
+ value = new_kws[key]
+ Z3_global_param_set(str(key).upper(), _to_param_value(value))
+ prev = None
+ for a in args:
+ if prev is None:
+ prev = a
+ else:
+ Z3_global_param_set(str(prev), _to_param_value(a))
+ prev = None
+
+def reset_params():
+ """Reset all global (or module) parameters.
+ """
+ Z3_global_param_reset_all()
+
+def set_option(*args, **kws):
+ """Alias for 'set_param' for backward compatibility.
+ """
+ return set_param(*args, **kws)
+
+def get_param(name):
+ """Return the value of a Z3 global (or module) parameter
+
+ >>> get_param('nlsat.reorder')
+ 'true'
+ """
+ ptr = (ctypes.c_char_p * 1)()
+ if Z3_global_param_get(str(name), ptr):
+ r = z3core._to_pystr(ptr[0])
+ return r
+ raise Z3Exception("failed to retrieve value for '%s'" % name)
+
+#########################################
+#
+# ASTs base class
+#
+#########################################
+
+# Mark objects that use pretty printer
+class Z3PPObject:
+ """Superclass for all Z3 objects that have support for pretty printing."""
+ def use_pp(self):
+ return True
+
+class AstRef(Z3PPObject):
+ """AST are Direct Acyclic Graphs (DAGs) used to represent sorts, declarations and expressions."""
+ def __init__(self, ast, ctx=None):
+ self.ast = ast
+ self.ctx = _get_ctx(ctx)
+ Z3_inc_ref(self.ctx.ref(), self.as_ast())
+
+ def __del__(self):
+ if self.ctx.ref() is not None:
+ Z3_dec_ref(self.ctx.ref(), self.as_ast())
+
+ def __deepcopy__(self, memo={}):
+ return _to_ast_ref(self.ast, self.ctx)
+
+ def __str__(self):
+ return obj_to_string(self)
+
+ def __repr__(self):
+ return obj_to_string(self)
+
+ def __eq__(self, other):
+ return self.eq(other)
+
+ def __hash__(self):
+ return self.hash()
+
+ def __nonzero__(self):
+ return self.__bool__()
+
+ def __bool__(self):
+ if is_true(self):
+ return True
+ elif is_false(self):
+ return False
+ elif is_eq(self) and self.num_args() == 2:
+ return self.arg(0).eq(self.arg(1))
+ else:
+ raise Z3Exception("Symbolic expressions cannot be cast to concrete Boolean values.")
+
+ def sexpr(self):
+ """Return a string representing the AST node in s-expression notation.
+
+ >>> x = Int('x')
+ >>> ((x + 1)*x).sexpr()
+ '(* (+ x 1) x)'
+ """
+ return Z3_ast_to_string(self.ctx_ref(), self.as_ast())
+
+ def as_ast(self):
+ """Return a pointer to the corresponding C Z3_ast object."""
+ return self.ast
+
+ def get_id(self):
+ """Return unique identifier for object. It can be used for hash-tables and maps."""
+ return Z3_get_ast_id(self.ctx_ref(), self.as_ast())
+
+ def ctx_ref(self):
+ """Return a reference to the C context where this AST node is stored."""
+ return self.ctx.ref()
+
+ def eq(self, other):
+ """Return `True` if `self` and `other` are structurally identical.
+
+ >>> x = Int('x')
+ >>> n1 = x + 1
+ >>> n2 = 1 + x
+ >>> n1.eq(n2)
+ False
+ >>> n1 = simplify(n1)
+ >>> n2 = simplify(n2)
+ >>> n1.eq(n2)
+ True
+ """
+ if __debug__:
+ _z3_assert(is_ast(other), "Z3 AST expected")
+ return Z3_is_eq_ast(self.ctx_ref(), self.as_ast(), other.as_ast())
+
+ def translate(self, target):
+ """Translate `self` to the context `target`. That is, return a copy of `self` in the context `target`.
+
+ >>> c1 = Context()
+ >>> c2 = Context()
+ >>> x = Int('x', c1)
+ >>> y = Int('y', c2)
+ >>> # Nodes in different contexts can't be mixed.
+ >>> # However, we can translate nodes from one context to another.
+ >>> x.translate(c2) + y
+ x + y
+ """
+ if __debug__:
+ _z3_assert(isinstance(target, Context), "argument must be a Z3 context")
+ return _to_ast_ref(Z3_translate(self.ctx.ref(), self.as_ast(), target.ref()), target)
+
+ def hash(self):
+ """Return a hashcode for the `self`.
+
+ >>> n1 = simplify(Int('x') + 1)
+ >>> n2 = simplify(2 + Int('x') - 1)
+ >>> n1.hash() == n2.hash()
+ True
+ """
+ return Z3_get_ast_hash(self.ctx_ref(), self.as_ast())
+
+def is_ast(a):
+ """Return `True` if `a` is an AST node.
+
+ >>> is_ast(10)
+ False
+ >>> is_ast(IntVal(10))
+ True
+ >>> is_ast(Int('x'))
+ True
+ >>> is_ast(BoolSort())
+ True
+ >>> is_ast(Function('f', IntSort(), IntSort()))
+ True
+ >>> is_ast("x")
+ False
+ >>> is_ast(Solver())
+ False
+ """
+ return isinstance(a, AstRef)
+
+def eq(a, b):
+ """Return `True` if `a` and `b` are structurally identical AST nodes.
+
+ >>> x = Int('x')
+ >>> y = Int('y')
+ >>> eq(x, y)
+ False
+ >>> eq(x + 1, x + 1)
+ True
+ >>> eq(x + 1, 1 + x)
+ False
+ >>> eq(simplify(x + 1), simplify(1 + x))
+ True
+ """
+ if __debug__:
+ _z3_assert(is_ast(a) and is_ast(b), "Z3 ASTs expected")
+ return a.eq(b)
+
+def _ast_kind(ctx, a):
+ if is_ast(a):
+ a = a.as_ast()
+ return Z3_get_ast_kind(ctx.ref(), a)
+
+def _ctx_from_ast_arg_list(args, default_ctx=None):
+ ctx = None
+ for a in args:
+ if is_ast(a) or is_probe(a):
+ if ctx is None:
+ ctx = a.ctx
+ else:
+ if __debug__:
+ _z3_assert(ctx == a.ctx, "Context mismatch")
+ if ctx is None:
+ ctx = default_ctx
+ return ctx
+
+def _ctx_from_ast_args(*args):
+ return _ctx_from_ast_arg_list(args)
+
+def _to_func_decl_array(args):
+ sz = len(args)
+ _args = (FuncDecl * sz)()
+ for i in range(sz):
+ _args[i] = args[i].as_func_decl()
+ return _args, sz
+
+def _to_ast_array(args):
+ sz = len(args)
+ _args = (Ast * sz)()
+ for i in range(sz):
+ _args[i] = args[i].as_ast()
+ return _args, sz
+
+def _to_ref_array(ref, args):
+ sz = len(args)
+ _args = (ref * sz)()
+ for i in range(sz):
+ _args[i] = args[i].as_ast()
+ return _args, sz
+
+def _to_ast_ref(a, ctx):
+ k = _ast_kind(ctx, a)
+ if k == Z3_SORT_AST:
+ return _to_sort_ref(a, ctx)
+ elif k == Z3_FUNC_DECL_AST:
+ return _to_func_decl_ref(a, ctx)
+ else:
+ return _to_expr_ref(a, ctx)
+
+#########################################
+#
+# Sorts
+#
+#########################################
+
+def _sort_kind(ctx, s):
+ return Z3_get_sort_kind(ctx.ref(), s)
+
+class SortRef(AstRef):
+ """A Sort is essentially a type. Every Z3 expression has a sort. A sort is an AST node."""
+ def as_ast(self):
+ return Z3_sort_to_ast(self.ctx_ref(), self.ast)
+
+ def get_id(self):
+ return Z3_get_ast_id(self.ctx_ref(), self.as_ast())
+
+ def kind(self):
+ """Return the Z3 internal kind of a sort. This method can be used to test if `self` is one of the Z3 builtin sorts.
+
+ >>> b = BoolSort()
+ >>> b.kind() == Z3_BOOL_SORT
+ True
+ >>> b.kind() == Z3_INT_SORT
+ False
+ >>> A = ArraySort(IntSort(), IntSort())
+ >>> A.kind() == Z3_ARRAY_SORT
+ True
+ >>> A.kind() == Z3_INT_SORT
+ False
+ """
+ return _sort_kind(self.ctx, self.ast)
+
+ def subsort(self, other):
+ """Return `True` if `self` is a subsort of `other`.
+
+ >>> IntSort().subsort(RealSort())
+ True
+ """
+ return False
+
+ def cast(self, val):
+ """Try to cast `val` as an element of sort `self`.
+
+ This method is used in Z3Py to convert Python objects such as integers,
+ floats, longs and strings into Z3 expressions.
+
+ >>> x = Int('x')
+ >>> RealSort().cast(x)
+ ToReal(x)
+ """
+ if __debug__:
+ _z3_assert(is_expr(val), "Z3 expression expected")
+ _z3_assert(self.eq(val.sort()), "Sort mismatch")
+ return val
+
+ def name(self):
+ """Return the name (string) of sort `self`.
+
+ >>> BoolSort().name()
+ 'Bool'
+ >>> ArraySort(IntSort(), IntSort()).name()
+ 'Array'
+ """
+ return _symbol2py(self.ctx, Z3_get_sort_name(self.ctx_ref(), self.ast))
+
+ def __eq__(self, other):
+ """Return `True` if `self` and `other` are the same Z3 sort.
+
+ >>> p = Bool('p')
+ >>> p.sort() == BoolSort()
+ True
+ >>> p.sort() == IntSort()
+ False
+ """
+ if other is None:
+ return False
+ return Z3_is_eq_sort(self.ctx_ref(), self.ast, other.ast)
+
+ def __ne__(self, other):
+ """Return `True` if `self` and `other` are not the same Z3 sort.
+
+ >>> p = Bool('p')
+ >>> p.sort() != BoolSort()
+ False
+ >>> p.sort() != IntSort()
+ True
+ """
+ return not Z3_is_eq_sort(self.ctx_ref(), self.ast, other.ast)
+
+ def __hash__(self):
+ """ Hash code. """
+ return AstRef.__hash__(self)
+
+def is_sort(s):
+ """Return `True` if `s` is a Z3 sort.
+
+ >>> is_sort(IntSort())
+ True
+ >>> is_sort(Int('x'))
+ False
+ >>> is_expr(Int('x'))
+ True
+ """
+ return isinstance(s, SortRef)
+
+def _to_sort_ref(s, ctx):
+ if __debug__:
+ _z3_assert(isinstance(s, Sort), "Z3 Sort expected")
+ k = _sort_kind(ctx, s)
+ if k == Z3_BOOL_SORT:
+ return BoolSortRef(s, ctx)
+ elif k == Z3_INT_SORT or k == Z3_REAL_SORT:
+ return ArithSortRef(s, ctx)
+ elif k == Z3_BV_SORT:
+ return BitVecSortRef(s, ctx)
+ elif k == Z3_ARRAY_SORT:
+ return ArraySortRef(s, ctx)
+ elif k == Z3_DATATYPE_SORT:
+ return DatatypeSortRef(s, ctx)
+ elif k == Z3_FINITE_DOMAIN_SORT:
+ return FiniteDomainSortRef(s, ctx)
+ elif k == Z3_FLOATING_POINT_SORT:
+ return FPSortRef(s, ctx)
+ elif k == Z3_ROUNDING_MODE_SORT:
+ return FPRMSortRef(s, ctx)
+ return SortRef(s, ctx)
+
+def _sort(ctx, a):
+ return _to_sort_ref(Z3_get_sort(ctx.ref(), a), ctx)
+
+def DeclareSort(name, ctx=None):
+ """Create a new uninterpred sort named `name`.
+
+ If `ctx=None`, then the new sort is declared in the global Z3Py context.
+
+ >>> A = DeclareSort('A')
+ >>> a = Const('a', A)
+ >>> b = Const('b', A)
+ >>> a.sort() == A
+ True
+ >>> b.sort() == A
+ True
+ >>> a == b
+ a == b
+ """
+ ctx = _get_ctx(ctx)
+ return SortRef(Z3_mk_uninterpreted_sort(ctx.ref(), to_symbol(name, ctx)), ctx)
+
+#########################################
+#
+# Function Declarations
+#
+#########################################
+
+class FuncDeclRef(AstRef):
+ """Function declaration. Every constant and function have an associated declaration.
+
+ The declaration assigns a name, a sort (i.e., type), and for function
+ the sort (i.e., type) of each of its arguments. Note that, in Z3,
+ a constant is a function with 0 arguments.
+ """
+ def as_ast(self):
+ return Z3_func_decl_to_ast(self.ctx_ref(), self.ast)
+
+ def get_id(self):
+ return Z3_get_ast_id(self.ctx_ref(), self.as_ast())
+
+ def as_func_decl(self):
+ return self.ast
+
+ def name(self):
+ """Return the name of the function declaration `self`.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> f.name()
+ 'f'
+ >>> isinstance(f.name(), str)
+ True
+ """
+ return _symbol2py(self.ctx, Z3_get_decl_name(self.ctx_ref(), self.ast))
+
+ def arity(self):
+ """Return the number of arguments of a function declaration. If `self` is a constant, then `self.arity()` is 0.
+
+ >>> f = Function('f', IntSort(), RealSort(), BoolSort())
+ >>> f.arity()
+ 2
+ """
+ return int(Z3_get_arity(self.ctx_ref(), self.ast))
+
+ def domain(self, i):
+ """Return the sort of the argument `i` of a function declaration. This method assumes that `0 <= i < self.arity()`.
+
+ >>> f = Function('f', IntSort(), RealSort(), BoolSort())
+ >>> f.domain(0)
+ Int
+ >>> f.domain(1)
+ Real
+ """
+ if __debug__:
+ _z3_assert(i < self.arity(), "Index out of bounds")
+ return _to_sort_ref(Z3_get_domain(self.ctx_ref(), self.ast, i), self.ctx)
+
+ def range(self):
+ """Return the sort of the range of a function declaration. For constants, this is the sort of the constant.
+
+ >>> f = Function('f', IntSort(), RealSort(), BoolSort())
+ >>> f.range()
+ Bool
+ """
+ return _to_sort_ref(Z3_get_range(self.ctx_ref(), self.ast), self.ctx)
+
+ def kind(self):
+ """Return the internal kind of a function declaration. It can be used to identify Z3 built-in functions such as addition, multiplication, etc.
+
+ >>> x = Int('x')
+ >>> d = (x + 1).decl()
+ >>> d.kind() == Z3_OP_ADD
+ True
+ >>> d.kind() == Z3_OP_MUL
+ False
+ """
+ return Z3_get_decl_kind(self.ctx_ref(), self.ast)
+
+ def params(self):
+ ctx = self.ctx
+ n = Z3_get_decl_num_parameters(self.ctx_ref(), self.ast)
+ result = [ None for i in range(n) ]
+ for i in range(n):
+ k = Z3_get_decl_parameter_kind(self.ctx_ref(), self.ast, i)
+ if k == Z3_PARAMETER_INT:
+ result[i] = Z3_get_decl_int_parameter(self.ctx_ref(), self.ast, i)
+ elif k == Z3_PARAMETER_DOUBLE:
+ result[i] = Z3_get_decl_double_parameter(self.ctx_ref(), self.ast, i)
+ elif k == Z3_PARAMETER_RATIONAL:
+ result[i] = Z3_get_decl_rational_parameter(self.ctx_ref(), self.ast, i)
+ elif k == Z3_PARAMETER_SYMBOL:
+ result[i] = Z3_get_decl_symbol_parameter(self.ctx_ref(), self.ast, i)
+ elif k == Z3_PARAMETER_SORT:
+ result[i] = SortRef(Z3_get_decl_sort_parameter(self.ctx_ref(), self.ast, i), ctx)
+ elif k == Z3_PARAMETER_AST:
+ result[i] = ExprRef(Z3_get_decl_ast_parameter(self.ctx_ref(), self.ast, i), ctx)
+ elif k == Z3_PARAMETER_FUNC_DECL:
+ result[i] = FuncDeclRef(Z3_get_decl_func_decl_parameter(self.ctx_ref(), self.ast, i), ctx)
+ else:
+ assert(False)
+ return result
+
+ def __call__(self, *args):
+ """Create a Z3 application expression using the function `self`, and the given arguments.
+
+ The arguments must be Z3 expressions. This method assumes that
+ the sorts of the elements in `args` match the sorts of the
+ domain. Limited coersion is supported. For example, if
+ args[0] is a Python integer, and the function expects a Z3
+ integer, then the argument is automatically converted into a
+ Z3 integer.
+
+ >>> f = Function('f', IntSort(), RealSort(), BoolSort())
+ >>> x = Int('x')
+ >>> y = Real('y')
+ >>> f(x, y)
+ f(x, y)
+ >>> f(x, x)
+ f(x, ToReal(x))
+ """
+ args = _get_args(args)
+ num = len(args)
+ if __debug__:
+ _z3_assert(num == self.arity(), "Incorrect number of arguments to %s" % self)
+ _args = (Ast * num)()
+ saved = []
+ for i in range(num):
+ # self.domain(i).cast(args[i]) may create a new Z3 expression,
+ # then we must save in 'saved' to prevent it from being garbage collected.
+ tmp = self.domain(i).cast(args[i])
+ saved.append(tmp)
+ _args[i] = tmp.as_ast()
+ return _to_expr_ref(Z3_mk_app(self.ctx_ref(), self.ast, len(args), _args), self.ctx)
+
+def is_func_decl(a):
+ """Return `True` if `a` is a Z3 function declaration.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> is_func_decl(f)
+ True
+ >>> x = Real('x')
+ >>> is_func_decl(x)
+ False
+ """
+ return isinstance(a, FuncDeclRef)
+
+def Function(name, *sig):
+ """Create a new Z3 uninterpreted function with the given sorts.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> f(f(0))
+ f(f(0))
+ """
+ sig = _get_args(sig)
+ if __debug__:
+ _z3_assert(len(sig) > 0, "At least two arguments expected")
+ arity = len(sig) - 1
+ rng = sig[arity]
+ if __debug__:
+ _z3_assert(is_sort(rng), "Z3 sort expected")
+ dom = (Sort * arity)()
+ for i in range(arity):
+ if __debug__:
+ _z3_assert(is_sort(sig[i]), "Z3 sort expected")
+ dom[i] = sig[i].ast
+ ctx = rng.ctx
+ return FuncDeclRef(Z3_mk_func_decl(ctx.ref(), to_symbol(name, ctx), arity, dom, rng.ast), ctx)
+
+def _to_func_decl_ref(a, ctx):
+ return FuncDeclRef(a, ctx)
+
+#########################################
+#
+# Expressions
+#
+#########################################
+
+class ExprRef(AstRef):
+ """Constraints, formulas and terms are expressions in Z3.
+
+ Expressions are ASTs. Every expression has a sort.
+ There are three main kinds of expressions:
+ function applications, quantifiers and bounded variables.
+ A constant is a function application with 0 arguments.
+ For quantifier free problems, all expressions are
+ function applications.
+ """
+ def as_ast(self):
+ return self.ast
+
+ def get_id(self):
+ return Z3_get_ast_id(self.ctx_ref(), self.as_ast())
+
+ def sort(self):
+ """Return the sort of expression `self`.
+
+ >>> x = Int('x')
+ >>> (x + 1).sort()
+ Int
+ >>> y = Real('y')
+ >>> (x + y).sort()
+ Real
+ """
+ return _sort(self.ctx, self.as_ast())
+
+ def sort_kind(self):
+ """Shorthand for `self.sort().kind()`.
+
+ >>> a = Array('a', IntSort(), IntSort())
+ >>> a.sort_kind() == Z3_ARRAY_SORT
+ True
+ >>> a.sort_kind() == Z3_INT_SORT
+ False
+ """
+ return self.sort().kind()
+
+ def __eq__(self, other):
+ """Return a Z3 expression that represents the constraint `self == other`.
+
+ If `other` is `None`, then this method simply returns `False`.
+
+ >>> a = Int('a')
+ >>> b = Int('b')
+ >>> a == b
+ a == b
+ >>> a is None
+ False
+ """
+ if other is None:
+ return False
+ a, b = _coerce_exprs(self, other)
+ return BoolRef(Z3_mk_eq(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __hash__(self):
+ """ Hash code. """
+ return AstRef.__hash__(self)
+
+ def __ne__(self, other):
+ """Return a Z3 expression that represents the constraint `self != other`.
+
+ If `other` is `None`, then this method simply returns `True`.
+
+ >>> a = Int('a')
+ >>> b = Int('b')
+ >>> a != b
+ a != b
+ >>> a is not None
+ True
+ """
+ if other is None:
+ return True
+ a, b = _coerce_exprs(self, other)
+ _args, sz = _to_ast_array((a, b))
+ return BoolRef(Z3_mk_distinct(self.ctx_ref(), 2, _args), self.ctx)
+
+ def params(self):
+ return self.decl().params()
+
+ def decl(self):
+ """Return the Z3 function declaration associated with a Z3 application.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> a = Int('a')
+ >>> t = f(a)
+ >>> eq(t.decl(), f)
+ True
+ >>> (a + 1).decl()
+ +
+ """
+ if __debug__:
+ _z3_assert(is_app(self), "Z3 application expected")
+ return FuncDeclRef(Z3_get_app_decl(self.ctx_ref(), self.as_ast()), self.ctx)
+
+ def num_args(self):
+ """Return the number of arguments of a Z3 application.
+
+ >>> a = Int('a')
+ >>> b = Int('b')
+ >>> (a + b).num_args()
+ 2
+ >>> f = Function('f', IntSort(), IntSort(), IntSort(), IntSort())
+ >>> t = f(a, b, 0)
+ >>> t.num_args()
+ 3
+ """
+ if __debug__:
+ _z3_assert(is_app(self), "Z3 application expected")
+ return int(Z3_get_app_num_args(self.ctx_ref(), self.as_ast()))
+
+ def arg(self, idx):
+ """Return argument `idx` of the application `self`.
+
+ This method assumes that `self` is a function application with at least `idx+1` arguments.
+
+ >>> a = Int('a')
+ >>> b = Int('b')
+ >>> f = Function('f', IntSort(), IntSort(), IntSort(), IntSort())
+ >>> t = f(a, b, 0)
+ >>> t.arg(0)
+ a
+ >>> t.arg(1)
+ b
+ >>> t.arg(2)
+ 0
+ """
+ if __debug__:
+ _z3_assert(is_app(self), "Z3 application expected")
+ _z3_assert(idx < self.num_args(), "Invalid argument index")
+ return _to_expr_ref(Z3_get_app_arg(self.ctx_ref(), self.as_ast(), idx), self.ctx)
+
+ def children(self):
+ """Return a list containing the children of the given expression
+
+ >>> a = Int('a')
+ >>> b = Int('b')
+ >>> f = Function('f', IntSort(), IntSort(), IntSort(), IntSort())
+ >>> t = f(a, b, 0)
+ >>> t.children()
+ [a, b, 0]
+ """
+ if is_app(self):
+ return [self.arg(i) for i in range(self.num_args())]
+ else:
+ return []
+
+def _to_expr_ref(a, ctx):
+ if isinstance(a, Pattern):
+ return PatternRef(a, ctx)
+ ctx_ref = ctx.ref()
+ k = Z3_get_ast_kind(ctx_ref, a)
+ if k == Z3_QUANTIFIER_AST:
+ return QuantifierRef(a, ctx)
+ sk = Z3_get_sort_kind(ctx_ref, Z3_get_sort(ctx_ref, a))
+ if sk == Z3_BOOL_SORT:
+ return BoolRef(a, ctx)
+ if sk == Z3_INT_SORT:
+ if k == Z3_NUMERAL_AST:
+ return IntNumRef(a, ctx)
+ return ArithRef(a, ctx)
+ if sk == Z3_REAL_SORT:
+ if k == Z3_NUMERAL_AST:
+ return RatNumRef(a, ctx)
+ if _is_algebraic(ctx, a):
+ return AlgebraicNumRef(a, ctx)
+ return ArithRef(a, ctx)
+ if sk == Z3_BV_SORT:
+ if k == Z3_NUMERAL_AST:
+ return BitVecNumRef(a, ctx)
+ else:
+ return BitVecRef(a, ctx)
+ if sk == Z3_ARRAY_SORT:
+ return ArrayRef(a, ctx)
+ if sk == Z3_DATATYPE_SORT:
+ return DatatypeRef(a, ctx)
+ if sk == Z3_FLOATING_POINT_SORT:
+ if k == Z3_APP_AST and _is_numeral(ctx, a):
+ return FPNumRef(a, ctx)
+ else:
+ return FPRef(a, ctx)
+ if sk == Z3_FINITE_DOMAIN_SORT:
+ if k == Z3_NUMERAL_AST:
+ return FiniteDomainNumRef(a, ctx)
+ else:
+ return FiniteDomainRef(a, ctx)
+ if sk == Z3_ROUNDING_MODE_SORT:
+ return FPRMRef(a, ctx)
+ if sk == Z3_SEQ_SORT:
+ return SeqRef(a, ctx)
+ if sk == Z3_RE_SORT:
+ return ReRef(a, ctx)
+ return ExprRef(a, ctx)
+
+def _coerce_expr_merge(s, a):
+ if is_expr(a):
+ s1 = a.sort()
+ if s is None:
+ return s1
+ if s1.eq(s):
+ return s
+ elif s.subsort(s1):
+ return s1
+ elif s1.subsort(s):
+ return s
+ else:
+ if __debug__:
+ _z3_assert(s1.ctx == s.ctx, "context mismatch")
+ _z3_assert(False, "sort mismatch")
+ else:
+ return s
+
+def _coerce_exprs(a, b, ctx=None):
+ if not is_expr(a) and not is_expr(b):
+ a = _py2expr(a, ctx)
+ b = _py2expr(b, ctx)
+ s = None
+ s = _coerce_expr_merge(s, a)
+ s = _coerce_expr_merge(s, b)
+ a = s.cast(a)
+ b = s.cast(b)
+ return (a, b)
+
+
+def _reduce(f, l, a):
+ r = a
+ for e in l:
+ r = f(r, e)
+ return r
+
+def _coerce_expr_list(alist, ctx=None):
+ has_expr = False
+ for a in alist:
+ if is_expr(a):
+ has_expr = True
+ break
+ if not has_expr:
+ alist = [ _py2expr(a, ctx) for a in alist ]
+ s = _reduce(_coerce_expr_merge, alist, None)
+ return [ s.cast(a) for a in alist ]
+
+def is_expr(a):
+ """Return `True` if `a` is a Z3 expression.
+
+ >>> a = Int('a')
+ >>> is_expr(a)
+ True
+ >>> is_expr(a + 1)
+ True
+ >>> is_expr(IntSort())
+ False
+ >>> is_expr(1)
+ False
+ >>> is_expr(IntVal(1))
+ True
+ >>> x = Int('x')
+ >>> is_expr(ForAll(x, x >= 0))
+ True
+ >>> is_expr(FPVal(1.0))
+ True
+ """
+ return isinstance(a, ExprRef)
+
+def is_app(a):
+ """Return `True` if `a` is a Z3 function application.
+
+ Note that, constants are function applications with 0 arguments.
+
+ >>> a = Int('a')
+ >>> is_app(a)
+ True
+ >>> is_app(a + 1)
+ True
+ >>> is_app(IntSort())
+ False
+ >>> is_app(1)
+ False
+ >>> is_app(IntVal(1))
+ True
+ >>> x = Int('x')
+ >>> is_app(ForAll(x, x >= 0))
+ False
+ """
+ if not isinstance(a, ExprRef):
+ return False
+ k = _ast_kind(a.ctx, a)
+ return k == Z3_NUMERAL_AST or k == Z3_APP_AST
+
+def is_const(a):
+ """Return `True` if `a` is Z3 constant/variable expression.
+
+ >>> a = Int('a')
+ >>> is_const(a)
+ True
+ >>> is_const(a + 1)
+ False
+ >>> is_const(1)
+ False
+ >>> is_const(IntVal(1))
+ True
+ >>> x = Int('x')
+ >>> is_const(ForAll(x, x >= 0))
+ False
+ """
+ return is_app(a) and a.num_args() == 0
+
+def is_var(a):
+ """Return `True` if `a` is variable.
+
+ Z3 uses de-Bruijn indices for representing bound variables in
+ quantifiers.
+
+ >>> x = Int('x')
+ >>> is_var(x)
+ False
+ >>> is_const(x)
+ True
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> # Z3 replaces x with bound variables when ForAll is executed.
+ >>> q = ForAll(x, f(x) == x)
+ >>> b = q.body()
+ >>> b
+ f(Var(0)) == Var(0)
+ >>> b.arg(1)
+ Var(0)
+ >>> is_var(b.arg(1))
+ True
+ """
+ return is_expr(a) and _ast_kind(a.ctx, a) == Z3_VAR_AST
+
+def get_var_index(a):
+ """Return the de-Bruijn index of the Z3 bounded variable `a`.
+
+ >>> x = Int('x')
+ >>> y = Int('y')
+ >>> is_var(x)
+ False
+ >>> is_const(x)
+ True
+ >>> f = Function('f', IntSort(), IntSort(), IntSort())
+ >>> # Z3 replaces x and y with bound variables when ForAll is executed.
+ >>> q = ForAll([x, y], f(x, y) == x + y)
+ >>> q.body()
+ f(Var(1), Var(0)) == Var(1) + Var(0)
+ >>> b = q.body()
+ >>> b.arg(0)
+ f(Var(1), Var(0))
+ >>> v1 = b.arg(0).arg(0)
+ >>> v2 = b.arg(0).arg(1)
+ >>> v1
+ Var(1)
+ >>> v2
+ Var(0)
+ >>> get_var_index(v1)
+ 1
+ >>> get_var_index(v2)
+ 0
+ """
+ if __debug__:
+ _z3_assert(is_var(a), "Z3 bound variable expected")
+ return int(Z3_get_index_value(a.ctx.ref(), a.as_ast()))
+
+def is_app_of(a, k):
+ """Return `True` if `a` is an application of the given kind `k`.
+
+ >>> x = Int('x')
+ >>> n = x + 1
+ >>> is_app_of(n, Z3_OP_ADD)
+ True
+ >>> is_app_of(n, Z3_OP_MUL)
+ False
+ """
+ return is_app(a) and a.decl().kind() == k
+
+def If(a, b, c, ctx=None):
+ """Create a Z3 if-then-else expression.
+
+ >>> x = Int('x')
+ >>> y = Int('y')
+ >>> max = If(x > y, x, y)
+ >>> max
+ If(x > y, x, y)
+ >>> simplify(max)
+ If(x <= y, y, x)
+ """
+ if isinstance(a, Probe) or isinstance(b, Tactic) or isinstance(c, Tactic):
+ return Cond(a, b, c, ctx)
+ else:
+ ctx = _get_ctx(_ctx_from_ast_arg_list([a, b, c], ctx))
+ s = BoolSort(ctx)
+ a = s.cast(a)
+ b, c = _coerce_exprs(b, c, ctx)
+ if __debug__:
+ _z3_assert(a.ctx == b.ctx, "Context mismatch")
+ return _to_expr_ref(Z3_mk_ite(ctx.ref(), a.as_ast(), b.as_ast(), c.as_ast()), ctx)
+
+def Distinct(*args):
+ """Create a Z3 distinct expression.
+
+ >>> x = Int('x')
+ >>> y = Int('y')
+ >>> Distinct(x, y)
+ x != y
+ >>> z = Int('z')
+ >>> Distinct(x, y, z)
+ Distinct(x, y, z)
+ >>> simplify(Distinct(x, y, z))
+ Distinct(x, y, z)
+ >>> simplify(Distinct(x, y, z), blast_distinct=True)
+ And(Not(x == y), Not(x == z), Not(y == z))
+ """
+ args = _get_args(args)
+ ctx = _ctx_from_ast_arg_list(args)
+ if __debug__:
+ _z3_assert(ctx is not None, "At least one of the arguments must be a Z3 expression")
+ args = _coerce_expr_list(args, ctx)
+ _args, sz = _to_ast_array(args)
+ return BoolRef(Z3_mk_distinct(ctx.ref(), sz, _args), ctx)
+
+def _mk_bin(f, a, b):
+ args = (Ast * 2)()
+ if __debug__:
+ _z3_assert(a.ctx == b.ctx, "Context mismatch")
+ args[0] = a.as_ast()
+ args[1] = b.as_ast()
+ return f(a.ctx.ref(), 2, args)
+
+def Const(name, sort):
+ """Create a constant of the given sort.
+
+ >>> Const('x', IntSort())
+ x
+ """
+ if __debug__:
+ _z3_assert(isinstance(sort, SortRef), "Z3 sort expected")
+ ctx = sort.ctx
+ return _to_expr_ref(Z3_mk_const(ctx.ref(), to_symbol(name, ctx), sort.ast), ctx)
+
+def Consts(names, sort):
+ """Create a several constants of the given sort.
+
+ `names` is a string containing the names of all constants to be created.
+ Blank spaces separate the names of different constants.
+
+ >>> x, y, z = Consts('x y z', IntSort())
+ >>> x + y + z
+ x + y + z
+ """
+ if isinstance(names, str):
+ names = names.split(" ")
+ return [Const(name, sort) for name in names]
+
+def Var(idx, s):
+ """Create a Z3 free variable. Free variables are used to create quantified formulas.
+
+ >>> Var(0, IntSort())
+ Var(0)
+ >>> eq(Var(0, IntSort()), Var(0, BoolSort()))
+ False
+ """
+ if __debug__:
+ _z3_assert(is_sort(s), "Z3 sort expected")
+ return _to_expr_ref(Z3_mk_bound(s.ctx_ref(), idx, s.ast), s.ctx)
+
+def RealVar(idx, ctx=None):
+ """
+ Create a real free variable. Free variables are used to create quantified formulas.
+ They are also used to create polynomials.
+
+ >>> RealVar(0)
+ Var(0)
+ """
+ return Var(idx, RealSort(ctx))
+
+def RealVarVector(n, ctx=None):
+ """
+ Create a list of Real free variables.
+ The variables have ids: 0, 1, ..., n-1
+
+ >>> x0, x1, x2, x3 = RealVarVector(4)
+ >>> x2
+ Var(2)
+ """
+ return [ RealVar(i, ctx) for i in range(n) ]
+
+#########################################
+#
+# Booleans
+#
+#########################################
+
+class BoolSortRef(SortRef):
+ """Boolean sort."""
+ def cast(self, val):
+ """Try to cast `val` as a Boolean.
+
+ >>> x = BoolSort().cast(True)
+ >>> x
+ True
+ >>> is_expr(x)
+ True
+ >>> is_expr(True)
+ False
+ >>> x.sort()
+ Bool
+ """
+ if isinstance(val, bool):
+ return BoolVal(val, self.ctx)
+ if __debug__:
+ if not is_expr(val):
+ _z3_assert(is_expr(val), "True, False or Z3 Boolean expression expected. Received %s" % val)
+ if not self.eq(val.sort()):
+ _z3_assert(self.eq(val.sort()), "Value cannot be converted into a Z3 Boolean value")
+ return val
+
+ def subsort(self, other):
+ return isinstance(other, ArithSortRef)
+
+ def is_int(self):
+ return True
+
+ def is_bool(self):
+ return True
+
+
+class BoolRef(ExprRef):
+ """All Boolean expressions are instances of this class."""
+ def sort(self):
+ return BoolSortRef(Z3_get_sort(self.ctx_ref(), self.as_ast()), self.ctx)
+
+ def __rmul__(self, other):
+ return self * other
+
+ def __mul__(self, other):
+ """Create the Z3 expression `self * other`.
+ """
+ if other == 1:
+ return self
+ if other == 0:
+ return 0
+ return If(self, other, 0)
+
+
+def is_bool(a):
+ """Return `True` if `a` is a Z3 Boolean expression.
+
+ >>> p = Bool('p')
+ >>> is_bool(p)
+ True
+ >>> q = Bool('q')
+ >>> is_bool(And(p, q))
+ True
+ >>> x = Real('x')
+ >>> is_bool(x)
+ False
+ >>> is_bool(x == 0)
+ True
+ """
+ return isinstance(a, BoolRef)
+
+def is_true(a):
+ """Return `True` if `a` is the Z3 true expression.
+
+ >>> p = Bool('p')
+ >>> is_true(p)
+ False
+ >>> is_true(simplify(p == p))
+ True
+ >>> x = Real('x')
+ >>> is_true(x == 0)
+ False
+ >>> # True is a Python Boolean expression
+ >>> is_true(True)
+ False
+ """
+ return is_app_of(a, Z3_OP_TRUE)
+
+def is_false(a):
+ """Return `True` if `a` is the Z3 false expression.
+
+ >>> p = Bool('p')
+ >>> is_false(p)
+ False
+ >>> is_false(False)
+ False
+ >>> is_false(BoolVal(False))
+ True
+ """
+ return is_app_of(a, Z3_OP_FALSE)
+
+def is_and(a):
+ """Return `True` if `a` is a Z3 and expression.
+
+ >>> p, q = Bools('p q')
+ >>> is_and(And(p, q))
+ True
+ >>> is_and(Or(p, q))
+ False
+ """
+ return is_app_of(a, Z3_OP_AND)
+
+def is_or(a):
+ """Return `True` if `a` is a Z3 or expression.
+
+ >>> p, q = Bools('p q')
+ >>> is_or(Or(p, q))
+ True
+ >>> is_or(And(p, q))
+ False
+ """
+ return is_app_of(a, Z3_OP_OR)
+
+def is_not(a):
+ """Return `True` if `a` is a Z3 not expression.
+
+ >>> p = Bool('p')
+ >>> is_not(p)
+ False
+ >>> is_not(Not(p))
+ True
+ """
+ return is_app_of(a, Z3_OP_NOT)
+
+def is_eq(a):
+ """Return `True` if `a` is a Z3 equality expression.
+
+ >>> x, y = Ints('x y')
+ >>> is_eq(x == y)
+ True
+ """
+ return is_app_of(a, Z3_OP_EQ)
+
+def is_distinct(a):
+ """Return `True` if `a` is a Z3 distinct expression.
+
+ >>> x, y, z = Ints('x y z')
+ >>> is_distinct(x == y)
+ False
+ >>> is_distinct(Distinct(x, y, z))
+ True
+ """
+ return is_app_of(a, Z3_OP_DISTINCT)
+
+def BoolSort(ctx=None):
+ """Return the Boolean Z3 sort. If `ctx=None`, then the global context is used.
+
+ >>> BoolSort()
+ Bool
+ >>> p = Const('p', BoolSort())
+ >>> is_bool(p)
+ True
+ >>> r = Function('r', IntSort(), IntSort(), BoolSort())
+ >>> r(0, 1)
+ r(0, 1)
+ >>> is_bool(r(0, 1))
+ True
+ """
+ ctx = _get_ctx(ctx)
+ return BoolSortRef(Z3_mk_bool_sort(ctx.ref()), ctx)
+
+def BoolVal(val, ctx=None):
+ """Return the Boolean value `True` or `False`. If `ctx=None`, then the global context is used.
+
+ >>> BoolVal(True)
+ True
+ >>> is_true(BoolVal(True))
+ True
+ >>> is_true(True)
+ False
+ >>> is_false(BoolVal(False))
+ True
+ """
+ ctx = _get_ctx(ctx)
+ if val == False:
+ return BoolRef(Z3_mk_false(ctx.ref()), ctx)
+ else:
+ return BoolRef(Z3_mk_true(ctx.ref()), ctx)
+
+def Bool(name, ctx=None):
+ """Return a Boolean constant named `name`. If `ctx=None`, then the global context is used.
+
+ >>> p = Bool('p')
+ >>> q = Bool('q')
+ >>> And(p, q)
+ And(p, q)
+ """
+ ctx = _get_ctx(ctx)
+ return BoolRef(Z3_mk_const(ctx.ref(), to_symbol(name, ctx), BoolSort(ctx).ast), ctx)
+
+def Bools(names, ctx=None):
+ """Return a tuple of Boolean constants.
+
+ `names` is a single string containing all names separated by blank spaces.
+ If `ctx=None`, then the global context is used.
+
+ >>> p, q, r = Bools('p q r')
+ >>> And(p, Or(q, r))
+ And(p, Or(q, r))
+ """
+ ctx = _get_ctx(ctx)
+ if isinstance(names, str):
+ names = names.split(" ")
+ return [Bool(name, ctx) for name in names]
+
+def BoolVector(prefix, sz, ctx=None):
+ """Return a list of Boolean constants of size `sz`.
+
+ The constants are named using the given prefix.
+ If `ctx=None`, then the global context is used.
+
+ >>> P = BoolVector('p', 3)
+ >>> P
+ [p__0, p__1, p__2]
+ >>> And(P)
+ And(p__0, p__1, p__2)
+ """
+ return [ Bool('%s__%s' % (prefix, i)) for i in range(sz) ]
+
+def FreshBool(prefix='b', ctx=None):
+ """Return a fresh Boolean constant in the given context using the given prefix.
+
+ If `ctx=None`, then the global context is used.
+
+ >>> b1 = FreshBool()
+ >>> b2 = FreshBool()
+ >>> eq(b1, b2)
+ False
+ """
+ ctx = _get_ctx(ctx)
+ return BoolRef(Z3_mk_fresh_const(ctx.ref(), prefix, BoolSort(ctx).ast), ctx)
+
+def Implies(a, b, ctx=None):
+ """Create a Z3 implies expression.
+
+ >>> p, q = Bools('p q')
+ >>> Implies(p, q)
+ Implies(p, q)
+ >>> simplify(Implies(p, q))
+ Or(Not(p), q)
+ """
+ ctx = _get_ctx(_ctx_from_ast_arg_list([a, b], ctx))
+ s = BoolSort(ctx)
+ a = s.cast(a)
+ b = s.cast(b)
+ return BoolRef(Z3_mk_implies(ctx.ref(), a.as_ast(), b.as_ast()), ctx)
+
+def Xor(a, b, ctx=None):
+ """Create a Z3 Xor expression.
+
+ >>> p, q = Bools('p q')
+ >>> Xor(p, q)
+ Xor(p, q)
+ >>> simplify(Xor(p, q))
+ Not(p) == q
+ """
+ ctx = _get_ctx(_ctx_from_ast_arg_list([a, b], ctx))
+ s = BoolSort(ctx)
+ a = s.cast(a)
+ b = s.cast(b)
+ return BoolRef(Z3_mk_xor(ctx.ref(), a.as_ast(), b.as_ast()), ctx)
+
+def Not(a, ctx=None):
+ """Create a Z3 not expression or probe.
+
+ >>> p = Bool('p')
+ >>> Not(Not(p))
+ Not(Not(p))
+ >>> simplify(Not(Not(p)))
+ p
+ """
+ ctx = _get_ctx(_ctx_from_ast_arg_list([a], ctx))
+ if is_probe(a):
+ # Not is also used to build probes
+ return Probe(Z3_probe_not(ctx.ref(), a.probe), ctx)
+ else:
+ s = BoolSort(ctx)
+ a = s.cast(a)
+ return BoolRef(Z3_mk_not(ctx.ref(), a.as_ast()), ctx)
+
+def _has_probe(args):
+ """Return `True` if one of the elements of the given collection is a Z3 probe."""
+ for arg in args:
+ if is_probe(arg):
+ return True
+ return False
+
+def And(*args):
+ """Create a Z3 and-expression or and-probe.
+
+ >>> p, q, r = Bools('p q r')
+ >>> And(p, q, r)
+ And(p, q, r)
+ >>> P = BoolVector('p', 5)
+ >>> And(P)
+ And(p__0, p__1, p__2, p__3, p__4)
+ """
+ last_arg = None
+ if len(args) > 0:
+ last_arg = args[len(args)-1]
+ if isinstance(last_arg, Context):
+ ctx = args[len(args)-1]
+ args = args[:len(args)-1]
+ elif len(args) == 1 and isinstance(args[0], AstVector):
+ ctx = args[0].ctx
+ args = [a for a in args[0]]
+ else:
+ ctx = main_ctx()
+ args = _get_args(args)
+ ctx_args = _ctx_from_ast_arg_list(args, ctx)
+ if __debug__:
+ _z3_assert(ctx_args is None or ctx_args == ctx, "context mismatch")
+ _z3_assert(ctx is not None, "At least one of the arguments must be a Z3 expression or probe")
+ if _has_probe(args):
+ return _probe_and(args, ctx)
+ else:
+ args = _coerce_expr_list(args, ctx)
+ _args, sz = _to_ast_array(args)
+ return BoolRef(Z3_mk_and(ctx.ref(), sz, _args), ctx)
+
+def Or(*args):
+ """Create a Z3 or-expression or or-probe.
+
+ >>> p, q, r = Bools('p q r')
+ >>> Or(p, q, r)
+ Or(p, q, r)
+ >>> P = BoolVector('p', 5)
+ >>> Or(P)
+ Or(p__0, p__1, p__2, p__3, p__4)
+ """
+ last_arg = None
+ if len(args) > 0:
+ last_arg = args[len(args)-1]
+ if isinstance(last_arg, Context):
+ ctx = args[len(args)-1]
+ args = args[:len(args)-1]
+ else:
+ ctx = main_ctx()
+ args = _get_args(args)
+ ctx_args = _ctx_from_ast_arg_list(args, ctx)
+ if __debug__:
+ _z3_assert(ctx_args is None or ctx_args == ctx, "context mismatch")
+ _z3_assert(ctx is not None, "At least one of the arguments must be a Z3 expression or probe")
+ if _has_probe(args):
+ return _probe_or(args, ctx)
+ else:
+ args = _coerce_expr_list(args, ctx)
+ _args, sz = _to_ast_array(args)
+ return BoolRef(Z3_mk_or(ctx.ref(), sz, _args), ctx)
+
+#########################################
+#
+# Patterns
+#
+#########################################
+
+class PatternRef(ExprRef):
+ """Patterns are hints for quantifier instantiation.
+
+ See http://rise4fun.com/Z3Py/tutorial/advanced for more details.
+ """
+ def as_ast(self):
+ return Z3_pattern_to_ast(self.ctx_ref(), self.ast)
+
+ def get_id(self):
+ return Z3_get_ast_id(self.ctx_ref(), self.as_ast())
+
+def is_pattern(a):
+ """Return `True` if `a` is a Z3 pattern (hint for quantifier instantiation.
+
+ See http://rise4fun.com/Z3Py/tutorial/advanced for more details.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> q = ForAll(x, f(x) == 0, patterns = [ f(x) ])
+ >>> q
+ ForAll(x, f(x) == 0)
+ >>> q.num_patterns()
+ 1
+ >>> is_pattern(q.pattern(0))
+ True
+ >>> q.pattern(0)
+ f(Var(0))
+ """
+ return isinstance(a, PatternRef)
+
+def MultiPattern(*args):
+ """Create a Z3 multi-pattern using the given expressions `*args`
+
+ See http://rise4fun.com/Z3Py/tutorial/advanced for more details.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> g = Function('g', IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> q = ForAll(x, f(x) != g(x), patterns = [ MultiPattern(f(x), g(x)) ])
+ >>> q
+ ForAll(x, f(x) != g(x))
+ >>> q.num_patterns()
+ 1
+ >>> is_pattern(q.pattern(0))
+ True
+ >>> q.pattern(0)
+ MultiPattern(f(Var(0)), g(Var(0)))
+ """
+ if __debug__:
+ _z3_assert(len(args) > 0, "At least one argument expected")
+ _z3_assert(all([ is_expr(a) for a in args ]), "Z3 expressions expected")
+ ctx = args[0].ctx
+ args, sz = _to_ast_array(args)
+ return PatternRef(Z3_mk_pattern(ctx.ref(), sz, args), ctx)
+
+def _to_pattern(arg):
+ if is_pattern(arg):
+ return arg
+ else:
+ return MultiPattern(arg)
+
+#########################################
+#
+# Quantifiers
+#
+#########################################
+
+class QuantifierRef(BoolRef):
+ """Universally and Existentially quantified formulas."""
+
+ def as_ast(self):
+ return self.ast
+
+ def get_id(self):
+ return Z3_get_ast_id(self.ctx_ref(), self.as_ast())
+
+ def sort(self):
+ """Return the Boolean sort."""
+ return BoolSort(self.ctx)
+
+ def is_forall(self):
+ """Return `True` if `self` is a universal quantifier.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> q = ForAll(x, f(x) == 0)
+ >>> q.is_forall()
+ True
+ >>> q = Exists(x, f(x) != 0)
+ >>> q.is_forall()
+ False
+ """
+ return Z3_is_quantifier_forall(self.ctx_ref(), self.ast)
+
+ def weight(self):
+ """Return the weight annotation of `self`.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> q = ForAll(x, f(x) == 0)
+ >>> q.weight()
+ 1
+ >>> q = ForAll(x, f(x) == 0, weight=10)
+ >>> q.weight()
+ 10
+ """
+ return int(Z3_get_quantifier_weight(self.ctx_ref(), self.ast))
+
+ def num_patterns(self):
+ """Return the number of patterns (i.e., quantifier instantiation hints) in `self`.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> g = Function('g', IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> q = ForAll(x, f(x) != g(x), patterns = [ f(x), g(x) ])
+ >>> q.num_patterns()
+ 2
+ """
+ return int(Z3_get_quantifier_num_patterns(self.ctx_ref(), self.ast))
+
+ def pattern(self, idx):
+ """Return a pattern (i.e., quantifier instantiation hints) in `self`.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> g = Function('g', IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> q = ForAll(x, f(x) != g(x), patterns = [ f(x), g(x) ])
+ >>> q.num_patterns()
+ 2
+ >>> q.pattern(0)
+ f(Var(0))
+ >>> q.pattern(1)
+ g(Var(0))
+ """
+ if __debug__:
+ _z3_assert(idx < self.num_patterns(), "Invalid pattern idx")
+ return PatternRef(Z3_get_quantifier_pattern_ast(self.ctx_ref(), self.ast, idx), self.ctx)
+
+ def num_no_patterns(self):
+ """Return the number of no-patterns."""
+ return Z3_get_quantifier_num_no_patterns(self.ctx_ref(), self.ast)
+
+ def no_pattern(self, idx):
+ """Return a no-pattern."""
+ if __debug__:
+ _z3_assert(idx < self.num_no_patterns(), "Invalid no-pattern idx")
+ return _to_expr_ref(Z3_get_quantifier_no_pattern_ast(self.ctx_ref(), self.ast, idx), self.ctx)
+
+ def body(self):
+ """Return the expression being quantified.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> q = ForAll(x, f(x) == 0)
+ >>> q.body()
+ f(Var(0)) == 0
+ """
+ return _to_expr_ref(Z3_get_quantifier_body(self.ctx_ref(), self.ast), self.ctx)
+
+ def num_vars(self):
+ """Return the number of variables bounded by this quantifier.
+
+ >>> f = Function('f', IntSort(), IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> y = Int('y')
+ >>> q = ForAll([x, y], f(x, y) >= x)
+ >>> q.num_vars()
+ 2
+ """
+ return int(Z3_get_quantifier_num_bound(self.ctx_ref(), self.ast))
+
+ def var_name(self, idx):
+ """Return a string representing a name used when displaying the quantifier.
+
+ >>> f = Function('f', IntSort(), IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> y = Int('y')
+ >>> q = ForAll([x, y], f(x, y) >= x)
+ >>> q.var_name(0)
+ 'x'
+ >>> q.var_name(1)
+ 'y'
+ """
+ if __debug__:
+ _z3_assert(idx < self.num_vars(), "Invalid variable idx")
+ return _symbol2py(self.ctx, Z3_get_quantifier_bound_name(self.ctx_ref(), self.ast, idx))
+
+ def var_sort(self, idx):
+ """Return the sort of a bound variable.
+
+ >>> f = Function('f', IntSort(), RealSort(), IntSort())
+ >>> x = Int('x')
+ >>> y = Real('y')
+ >>> q = ForAll([x, y], f(x, y) >= x)
+ >>> q.var_sort(0)
+ Int
+ >>> q.var_sort(1)
+ Real
+ """
+ if __debug__:
+ _z3_assert(idx < self.num_vars(), "Invalid variable idx")
+ return _to_sort_ref(Z3_get_quantifier_bound_sort(self.ctx_ref(), self.ast, idx), self.ctx)
+
+ def children(self):
+ """Return a list containing a single element self.body()
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> q = ForAll(x, f(x) == 0)
+ >>> q.children()
+ [f(Var(0)) == 0]
+ """
+ return [ self.body() ]
+
+def is_quantifier(a):
+ """Return `True` if `a` is a Z3 quantifier.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> q = ForAll(x, f(x) == 0)
+ >>> is_quantifier(q)
+ True
+ >>> is_quantifier(f(x))
+ False
+ """
+ return isinstance(a, QuantifierRef)
+
+def _mk_quantifier(is_forall, vs, body, weight=1, qid="", skid="", patterns=[], no_patterns=[]):
+ if __debug__:
+ _z3_assert(is_bool(body), "Z3 expression expected")
+ _z3_assert(is_const(vs) or (len(vs) > 0 and all([ is_const(v) for v in vs])), "Invalid bounded variable(s)")
+ _z3_assert(all([is_pattern(a) or is_expr(a) for a in patterns]), "Z3 patterns expected")
+ _z3_assert(all([is_expr(p) for p in no_patterns]), "no patterns are Z3 expressions")
+ ctx = body.ctx
+ if is_app(vs):
+ vs = [vs]
+ num_vars = len(vs)
+ if num_vars == 0:
+ return body
+ _vs = (Ast * num_vars)()
+ for i in range(num_vars):
+ ## TODO: Check if is constant
+ _vs[i] = vs[i].as_ast()
+ patterns = [ _to_pattern(p) for p in patterns ]
+ num_pats = len(patterns)
+ _pats = (Pattern * num_pats)()
+ for i in range(num_pats):
+ _pats[i] = patterns[i].ast
+ _no_pats, num_no_pats = _to_ast_array(no_patterns)
+ qid = to_symbol(qid, ctx)
+ skid = to_symbol(skid, ctx)
+ return QuantifierRef(Z3_mk_quantifier_const_ex(ctx.ref(), is_forall, weight, qid, skid,
+ num_vars, _vs,
+ num_pats, _pats,
+ num_no_pats, _no_pats,
+ body.as_ast()), ctx)
+
+def ForAll(vs, body, weight=1, qid="", skid="", patterns=[], no_patterns=[]):
+ """Create a Z3 forall formula.
+
+ The parameters `weight`, `qif`, `skid`, `patterns` and `no_patterns` are optional annotations.
+
+ See http://rise4fun.com/Z3Py/tutorial/advanced for more details.
+
+ >>> f = Function('f', IntSort(), IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> y = Int('y')
+ >>> ForAll([x, y], f(x, y) >= x)
+ ForAll([x, y], f(x, y) >= x)
+ >>> ForAll([x, y], f(x, y) >= x, patterns=[ f(x, y) ])
+ ForAll([x, y], f(x, y) >= x)
+ >>> ForAll([x, y], f(x, y) >= x, weight=10)
+ ForAll([x, y], f(x, y) >= x)
+ """
+ return _mk_quantifier(True, vs, body, weight, qid, skid, patterns, no_patterns)
+
+def Exists(vs, body, weight=1, qid="", skid="", patterns=[], no_patterns=[]):
+ """Create a Z3 exists formula.
+
+ The parameters `weight`, `qif`, `skid`, `patterns` and `no_patterns` are optional annotations.
+
+ See http://rise4fun.com/Z3Py/tutorial/advanced for more details.
+
+ >>> f = Function('f', IntSort(), IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> y = Int('y')
+ >>> q = Exists([x, y], f(x, y) >= x, skid="foo")
+ >>> q
+ Exists([x, y], f(x, y) >= x)
+ >>> is_quantifier(q)
+ True
+ >>> r = Tactic('nnf')(q).as_expr()
+ >>> is_quantifier(r)
+ False
+ """
+ return _mk_quantifier(False, vs, body, weight, qid, skid, patterns, no_patterns)
+
+#########################################
+#
+# Arithmetic
+#
+#########################################
+
+class ArithSortRef(SortRef):
+ """Real and Integer sorts."""
+
+ def is_real(self):
+ """Return `True` if `self` is of the sort Real.
+
+ >>> x = Real('x')
+ >>> x.is_real()
+ True
+ >>> (x + 1).is_real()
+ True
+ >>> x = Int('x')
+ >>> x.is_real()
+ False
+ """
+ return self.kind() == Z3_REAL_SORT
+
+ def is_int(self):
+ """Return `True` if `self` is of the sort Integer.
+
+ >>> x = Int('x')
+ >>> x.is_int()
+ True
+ >>> (x + 1).is_int()
+ True
+ >>> x = Real('x')
+ >>> x.is_int()
+ False
+ """
+ return self.kind() == Z3_INT_SORT
+
+ def subsort(self, other):
+ """Return `True` if `self` is a subsort of `other`."""
+ return self.is_int() and is_arith_sort(other) and other.is_real()
+
+ def cast(self, val):
+ """Try to cast `val` as an Integer or Real.
+
+ >>> IntSort().cast(10)
+ 10
+ >>> is_int(IntSort().cast(10))
+ True
+ >>> is_int(10)
+ False
+ >>> RealSort().cast(10)
+ 10
+ >>> is_real(RealSort().cast(10))
+ True
+ """
+ if is_expr(val):
+ if __debug__:
+ _z3_assert(self.ctx == val.ctx, "Context mismatch")
+ val_s = val.sort()
+ if self.eq(val_s):
+ return val
+ if val_s.is_int() and self.is_real():
+ return ToReal(val)
+ if val_s.is_bool() and self.is_int():
+ return If(val, 1, 0)
+ if val_s.is_bool() and self.is_real():
+ return ToReal(If(val, 1, 0))
+ if __debug__:
+ _z3_assert(False, "Z3 Integer/Real expression expected" )
+ else:
+ if self.is_int():
+ return IntVal(val, self.ctx)
+ if self.is_real():
+ return RealVal(val, self.ctx)
+ if __debug__:
+ _z3_assert(False, "int, long, float, string (numeral), or Z3 Integer/Real expression expected. Got %s" % self)
+
+def is_arith_sort(s):
+ """Return `True` if s is an arithmetical sort (type).
+
+ >>> is_arith_sort(IntSort())
+ True
+ >>> is_arith_sort(RealSort())
+ True
+ >>> is_arith_sort(BoolSort())
+ False
+ >>> n = Int('x') + 1
+ >>> is_arith_sort(n.sort())
+ True
+ """
+ return isinstance(s, ArithSortRef)
+
+class ArithRef(ExprRef):
+ """Integer and Real expressions."""
+
+ def sort(self):
+ """Return the sort (type) of the arithmetical expression `self`.
+
+ >>> Int('x').sort()
+ Int
+ >>> (Real('x') + 1).sort()
+ Real
+ """
+ return ArithSortRef(Z3_get_sort(self.ctx_ref(), self.as_ast()), self.ctx)
+
+ def is_int(self):
+ """Return `True` if `self` is an integer expression.
+
+ >>> x = Int('x')
+ >>> x.is_int()
+ True
+ >>> (x + 1).is_int()
+ True
+ >>> y = Real('y')
+ >>> (x + y).is_int()
+ False
+ """
+ return self.sort().is_int()
+
+ def is_real(self):
+ """Return `True` if `self` is an real expression.
+
+ >>> x = Real('x')
+ >>> x.is_real()
+ True
+ >>> (x + 1).is_real()
+ True
+ """
+ return self.sort().is_real()
+
+ def __add__(self, other):
+ """Create the Z3 expression `self + other`.
+
+ >>> x = Int('x')
+ >>> y = Int('y')
+ >>> x + y
+ x + y
+ >>> (x + y).sort()
+ Int
+ """
+ a, b = _coerce_exprs(self, other)
+ return ArithRef(_mk_bin(Z3_mk_add, a, b), self.ctx)
+
+ def __radd__(self, other):
+ """Create the Z3 expression `other + self`.
+
+ >>> x = Int('x')
+ >>> 10 + x
+ 10 + x
+ """
+ a, b = _coerce_exprs(self, other)
+ return ArithRef(_mk_bin(Z3_mk_add, b, a), self.ctx)
+
+ def __mul__(self, other):
+ """Create the Z3 expression `self * other`.
+
+ >>> x = Real('x')
+ >>> y = Real('y')
+ >>> x * y
+ x*y
+ >>> (x * y).sort()
+ Real
+ """
+ a, b = _coerce_exprs(self, other)
+ return ArithRef(_mk_bin(Z3_mk_mul, a, b), self.ctx)
+
+ def __rmul__(self, other):
+ """Create the Z3 expression `other * self`.
+
+ >>> x = Real('x')
+ >>> 10 * x
+ 10*x
+ """
+ a, b = _coerce_exprs(self, other)
+ return ArithRef(_mk_bin(Z3_mk_mul, b, a), self.ctx)
+
+ def __sub__(self, other):
+ """Create the Z3 expression `self - other`.
+
+ >>> x = Int('x')
+ >>> y = Int('y')
+ >>> x - y
+ x - y
+ >>> (x - y).sort()
+ Int
+ """
+ a, b = _coerce_exprs(self, other)
+ return ArithRef(_mk_bin(Z3_mk_sub, a, b), self.ctx)
+
+ def __rsub__(self, other):
+ """Create the Z3 expression `other - self`.
+
+ >>> x = Int('x')
+ >>> 10 - x
+ 10 - x
+ """
+ a, b = _coerce_exprs(self, other)
+ return ArithRef(_mk_bin(Z3_mk_sub, b, a), self.ctx)
+
+ def __pow__(self, other):
+ """Create the Z3 expression `self**other` (** is the power operator).
+
+ >>> x = Real('x')
+ >>> x**3
+ x**3
+ >>> (x**3).sort()
+ Real
+ >>> simplify(IntVal(2)**8)
+ 256
+ """
+ a, b = _coerce_exprs(self, other)
+ return ArithRef(Z3_mk_power(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __rpow__(self, other):
+ """Create the Z3 expression `other**self` (** is the power operator).
+
+ >>> x = Real('x')
+ >>> 2**x
+ 2**x
+ >>> (2**x).sort()
+ Real
+ >>> simplify(2**IntVal(8))
+ 256
+ """
+ a, b = _coerce_exprs(self, other)
+ return ArithRef(Z3_mk_power(self.ctx_ref(), b.as_ast(), a.as_ast()), self.ctx)
+
+ def __div__(self, other):
+ """Create the Z3 expression `other/self`.
+
+ >>> x = Int('x')
+ >>> y = Int('y')
+ >>> x/y
+ x/y
+ >>> (x/y).sort()
+ Int
+ >>> (x/y).sexpr()
+ '(div x y)'
+ >>> x = Real('x')
+ >>> y = Real('y')
+ >>> x/y
+ x/y
+ >>> (x/y).sort()
+ Real
+ >>> (x/y).sexpr()
+ '(/ x y)'
+ """
+ a, b = _coerce_exprs(self, other)
+ return ArithRef(Z3_mk_div(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __truediv__(self, other):
+ """Create the Z3 expression `other/self`."""
+ return self.__div__(other)
+
+ def __rdiv__(self, other):
+ """Create the Z3 expression `other/self`.
+
+ >>> x = Int('x')
+ >>> 10/x
+ 10/x
+ >>> (10/x).sexpr()
+ '(div 10 x)'
+ >>> x = Real('x')
+ >>> 10/x
+ 10/x
+ >>> (10/x).sexpr()
+ '(/ 10.0 x)'
+ """
+ a, b = _coerce_exprs(self, other)
+ return ArithRef(Z3_mk_div(self.ctx_ref(), b.as_ast(), a.as_ast()), self.ctx)
+
+ def __rtruediv__(self, other):
+ """Create the Z3 expression `other/self`."""
+ return self.__rdiv__(other)
+
+ def __mod__(self, other):
+ """Create the Z3 expression `other%self`.
+
+ >>> x = Int('x')
+ >>> y = Int('y')
+ >>> x % y
+ x%y
+ >>> simplify(IntVal(10) % IntVal(3))
+ 1
+ """
+ a, b = _coerce_exprs(self, other)
+ if __debug__:
+ _z3_assert(a.is_int(), "Z3 integer expression expected")
+ return ArithRef(Z3_mk_mod(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __rmod__(self, other):
+ """Create the Z3 expression `other%self`.
+
+ >>> x = Int('x')
+ >>> 10 % x
+ 10%x
+ """
+ a, b = _coerce_exprs(self, other)
+ if __debug__:
+ _z3_assert(a.is_int(), "Z3 integer expression expected")
+ return ArithRef(Z3_mk_mod(self.ctx_ref(), b.as_ast(), a.as_ast()), self.ctx)
+
+ def __neg__(self):
+ """Return an expression representing `-self`.
+
+ >>> x = Int('x')
+ >>> -x
+ -x
+ >>> simplify(-(-x))
+ x
+ """
+ return ArithRef(Z3_mk_unary_minus(self.ctx_ref(), self.as_ast()), self.ctx)
+
+ def __pos__(self):
+ """Return `self`.
+
+ >>> x = Int('x')
+ >>> +x
+ x
+ """
+ return self
+
+ def __le__(self, other):
+ """Create the Z3 expression `other <= self`.
+
+ >>> x, y = Ints('x y')
+ >>> x <= y
+ x <= y
+ >>> y = Real('y')
+ >>> x <= y
+ ToReal(x) <= y
+ """
+ a, b = _coerce_exprs(self, other)
+ return BoolRef(Z3_mk_le(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __lt__(self, other):
+ """Create the Z3 expression `other < self`.
+
+ >>> x, y = Ints('x y')
+ >>> x < y
+ x < y
+ >>> y = Real('y')
+ >>> x < y
+ ToReal(x) < y
+ """
+ a, b = _coerce_exprs(self, other)
+ return BoolRef(Z3_mk_lt(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __gt__(self, other):
+ """Create the Z3 expression `other > self`.
+
+ >>> x, y = Ints('x y')
+ >>> x > y
+ x > y
+ >>> y = Real('y')
+ >>> x > y
+ ToReal(x) > y
+ """
+ a, b = _coerce_exprs(self, other)
+ return BoolRef(Z3_mk_gt(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __ge__(self, other):
+ """Create the Z3 expression `other >= self`.
+
+ >>> x, y = Ints('x y')
+ >>> x >= y
+ x >= y
+ >>> y = Real('y')
+ >>> x >= y
+ ToReal(x) >= y
+ """
+ a, b = _coerce_exprs(self, other)
+ return BoolRef(Z3_mk_ge(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+def is_arith(a):
+ """Return `True` if `a` is an arithmetical expression.
+
+ >>> x = Int('x')
+ >>> is_arith(x)
+ True
+ >>> is_arith(x + 1)
+ True
+ >>> is_arith(1)
+ False
+ >>> is_arith(IntVal(1))
+ True
+ >>> y = Real('y')
+ >>> is_arith(y)
+ True
+ >>> is_arith(y + 1)
+ True
+ """
+ return isinstance(a, ArithRef)
+
+def is_int(a):
+ """Return `True` if `a` is an integer expression.
+
+ >>> x = Int('x')
+ >>> is_int(x + 1)
+ True
+ >>> is_int(1)
+ False
+ >>> is_int(IntVal(1))
+ True
+ >>> y = Real('y')
+ >>> is_int(y)
+ False
+ >>> is_int(y + 1)
+ False
+ """
+ return is_arith(a) and a.is_int()
+
+def is_real(a):
+ """Return `True` if `a` is a real expression.
+
+ >>> x = Int('x')
+ >>> is_real(x + 1)
+ False
+ >>> y = Real('y')
+ >>> is_real(y)
+ True
+ >>> is_real(y + 1)
+ True
+ >>> is_real(1)
+ False
+ >>> is_real(RealVal(1))
+ True
+ """
+ return is_arith(a) and a.is_real()
+
+def _is_numeral(ctx, a):
+ return Z3_is_numeral_ast(ctx.ref(), a)
+
+def _is_algebraic(ctx, a):
+ return Z3_is_algebraic_number(ctx.ref(), a)
+
+def is_int_value(a):
+ """Return `True` if `a` is an integer value of sort Int.
+
+ >>> is_int_value(IntVal(1))
+ True
+ >>> is_int_value(1)
+ False
+ >>> is_int_value(Int('x'))
+ False
+ >>> n = Int('x') + 1
+ >>> n
+ x + 1
+ >>> n.arg(1)
+ 1
+ >>> is_int_value(n.arg(1))
+ True
+ >>> is_int_value(RealVal("1/3"))
+ False
+ >>> is_int_value(RealVal(1))
+ False
+ """
+ return is_arith(a) and a.is_int() and _is_numeral(a.ctx, a.as_ast())
+
+def is_rational_value(a):
+ """Return `True` if `a` is rational value of sort Real.
+
+ >>> is_rational_value(RealVal(1))
+ True
+ >>> is_rational_value(RealVal("3/5"))
+ True
+ >>> is_rational_value(IntVal(1))
+ False
+ >>> is_rational_value(1)
+ False
+ >>> n = Real('x') + 1
+ >>> n.arg(1)
+ 1
+ >>> is_rational_value(n.arg(1))
+ True
+ >>> is_rational_value(Real('x'))
+ False
+ """
+ return is_arith(a) and a.is_real() and _is_numeral(a.ctx, a.as_ast())
+
+def is_algebraic_value(a):
+ """Return `True` if `a` is an algerbraic value of sort Real.
+
+ >>> is_algebraic_value(RealVal("3/5"))
+ False
+ >>> n = simplify(Sqrt(2))
+ >>> n
+ 1.4142135623?
+ >>> is_algebraic_value(n)
+ True
+ """
+ return is_arith(a) and a.is_real() and _is_algebraic(a.ctx, a.as_ast())
+
+def is_add(a):
+ """Return `True` if `a` is an expression of the form b + c.
+
+ >>> x, y = Ints('x y')
+ >>> is_add(x + y)
+ True
+ >>> is_add(x - y)
+ False
+ """
+ return is_app_of(a, Z3_OP_ADD)
+
+def is_mul(a):
+ """Return `True` if `a` is an expression of the form b * c.
+
+ >>> x, y = Ints('x y')
+ >>> is_mul(x * y)
+ True
+ >>> is_mul(x - y)
+ False
+ """
+ return is_app_of(a, Z3_OP_MUL)
+
+def is_sub(a):
+ """Return `True` if `a` is an expression of the form b - c.
+
+ >>> x, y = Ints('x y')
+ >>> is_sub(x - y)
+ True
+ >>> is_sub(x + y)
+ False
+ """
+ return is_app_of(a, Z3_OP_SUB)
+
+def is_div(a):
+ """Return `True` if `a` is an expression of the form b / c.
+
+ >>> x, y = Reals('x y')
+ >>> is_div(x / y)
+ True
+ >>> is_div(x + y)
+ False
+ >>> x, y = Ints('x y')
+ >>> is_div(x / y)
+ False
+ >>> is_idiv(x / y)
+ True
+ """
+ return is_app_of(a, Z3_OP_DIV)
+
+def is_idiv(a):
+ """Return `True` if `a` is an expression of the form b div c.
+
+ >>> x, y = Ints('x y')
+ >>> is_idiv(x / y)
+ True
+ >>> is_idiv(x + y)
+ False
+ """
+ return is_app_of(a, Z3_OP_IDIV)
+
+def is_mod(a):
+ """Return `True` if `a` is an expression of the form b % c.
+
+ >>> x, y = Ints('x y')
+ >>> is_mod(x % y)
+ True
+ >>> is_mod(x + y)
+ False
+ """
+ return is_app_of(a, Z3_OP_MOD)
+
+def is_le(a):
+ """Return `True` if `a` is an expression of the form b <= c.
+
+ >>> x, y = Ints('x y')
+ >>> is_le(x <= y)
+ True
+ >>> is_le(x < y)
+ False
+ """
+ return is_app_of(a, Z3_OP_LE)
+
+def is_lt(a):
+ """Return `True` if `a` is an expression of the form b < c.
+
+ >>> x, y = Ints('x y')
+ >>> is_lt(x < y)
+ True
+ >>> is_lt(x == y)
+ False
+ """
+ return is_app_of(a, Z3_OP_LT)
+
+def is_ge(a):
+ """Return `True` if `a` is an expression of the form b >= c.
+
+ >>> x, y = Ints('x y')
+ >>> is_ge(x >= y)
+ True
+ >>> is_ge(x == y)
+ False
+ """
+ return is_app_of(a, Z3_OP_GE)
+
+def is_gt(a):
+ """Return `True` if `a` is an expression of the form b > c.
+
+ >>> x, y = Ints('x y')
+ >>> is_gt(x > y)
+ True
+ >>> is_gt(x == y)
+ False
+ """
+ return is_app_of(a, Z3_OP_GT)
+
+def is_is_int(a):
+ """Return `True` if `a` is an expression of the form IsInt(b).
+
+ >>> x = Real('x')
+ >>> is_is_int(IsInt(x))
+ True
+ >>> is_is_int(x)
+ False
+ """
+ return is_app_of(a, Z3_OP_IS_INT)
+
+def is_to_real(a):
+ """Return `True` if `a` is an expression of the form ToReal(b).
+
+ >>> x = Int('x')
+ >>> n = ToReal(x)
+ >>> n
+ ToReal(x)
+ >>> is_to_real(n)
+ True
+ >>> is_to_real(x)
+ False
+ """
+ return is_app_of(a, Z3_OP_TO_REAL)
+
+def is_to_int(a):
+ """Return `True` if `a` is an expression of the form ToInt(b).
+
+ >>> x = Real('x')
+ >>> n = ToInt(x)
+ >>> n
+ ToInt(x)
+ >>> is_to_int(n)
+ True
+ >>> is_to_int(x)
+ False
+ """
+ return is_app_of(a, Z3_OP_TO_INT)
+
+class IntNumRef(ArithRef):
+ """Integer values."""
+
+ def as_long(self):
+ """Return a Z3 integer numeral as a Python long (bignum) numeral.
+
+ >>> v = IntVal(1)
+ >>> v + 1
+ 1 + 1
+ >>> v.as_long() + 1
+ 2
+ """
+ if __debug__:
+ _z3_assert(self.is_int(), "Integer value expected")
+ return int(self.as_string())
+
+ def as_string(self):
+ """Return a Z3 integer numeral as a Python string.
+ >>> v = IntVal(100)
+ >>> v.as_string()
+ '100'
+ """
+ return Z3_get_numeral_string(self.ctx_ref(), self.as_ast())
+
+class RatNumRef(ArithRef):
+ """Rational values."""
+
+ def numerator(self):
+ """ Return the numerator of a Z3 rational numeral.
+
+ >>> is_rational_value(RealVal("3/5"))
+ True
+ >>> n = RealVal("3/5")
+ >>> n.numerator()
+ 3
+ >>> is_rational_value(Q(3,5))
+ True
+ >>> Q(3,5).numerator()
+ 3
+ """
+ return IntNumRef(Z3_get_numerator(self.ctx_ref(), self.as_ast()), self.ctx)
+
+ def denominator(self):
+ """ Return the denominator of a Z3 rational numeral.
+
+ >>> is_rational_value(Q(3,5))
+ True
+ >>> n = Q(3,5)
+ >>> n.denominator()
+ 5
+ """
+ return IntNumRef(Z3_get_denominator(self.ctx_ref(), self.as_ast()), self.ctx)
+
+ def numerator_as_long(self):
+ """ Return the numerator as a Python long.
+
+ >>> v = RealVal(10000000000)
+ >>> v
+ 10000000000
+ >>> v + 1
+ 10000000000 + 1
+ >>> v.numerator_as_long() + 1 == 10000000001
+ True
+ """
+ return self.numerator().as_long()
+
+ def denominator_as_long(self):
+ """ Return the denominator as a Python long.
+
+ >>> v = RealVal("1/3")
+ >>> v
+ 1/3
+ >>> v.denominator_as_long()
+ 3
+ """
+ return self.denominator().as_long()
+
+ def is_int(self):
+ return False
+
+ def is_real(self):
+ return True
+
+ def is_int_value(self):
+ return self.denominator().is_int() and self.denominator_as_long() == 1
+
+ def as_long(self):
+ _z3_assert(self.is_int(), "Expected integer fraction")
+ return self.numerator_as_long()
+
+ def as_decimal(self, prec):
+ """ Return a Z3 rational value as a string in decimal notation using at most `prec` decimal places.
+
+ >>> v = RealVal("1/5")
+ >>> v.as_decimal(3)
+ '0.2'
+ >>> v = RealVal("1/3")
+ >>> v.as_decimal(3)
+ '0.333?'
+ """
+ return Z3_get_numeral_decimal_string(self.ctx_ref(), self.as_ast(), prec)
+
+ def as_string(self):
+ """Return a Z3 rational numeral as a Python string.
+
+ >>> v = Q(3,6)
+ >>> v.as_string()
+ '1/2'
+ """
+ return Z3_get_numeral_string(self.ctx_ref(), self.as_ast())
+
+ def as_fraction(self):
+ """Return a Z3 rational as a Python Fraction object.
+
+ >>> v = RealVal("1/5")
+ >>> v.as_fraction()
+ Fraction(1, 5)
+ """
+ return Fraction(self.numerator_as_long(), self.denominator_as_long())
+
+class AlgebraicNumRef(ArithRef):
+ """Algebraic irrational values."""
+
+ def approx(self, precision=10):
+ """Return a Z3 rational number that approximates the algebraic number `self`.
+ The result `r` is such that |r - self| <= 1/10^precision
+
+ >>> x = simplify(Sqrt(2))
+ >>> x.approx(20)
+ 6838717160008073720548335/4835703278458516698824704
+ >>> x.approx(5)
+ 2965821/2097152
+ """
+ return RatNumRef(Z3_get_algebraic_number_upper(self.ctx_ref(), self.as_ast(), precision), self.ctx)
+ def as_decimal(self, prec):
+ """Return a string representation of the algebraic number `self` in decimal notation using `prec` decimal places
+
+ >>> x = simplify(Sqrt(2))
+ >>> x.as_decimal(10)
+ '1.4142135623?'
+ >>> x.as_decimal(20)
+ '1.41421356237309504880?'
+ """
+ return Z3_get_numeral_decimal_string(self.ctx_ref(), self.as_ast(), prec)
+
+def _py2expr(a, ctx=None):
+ if isinstance(a, bool):
+ return BoolVal(a, ctx)
+ if _is_int(a):
+ return IntVal(a, ctx)
+ if isinstance(a, float):
+ return RealVal(a, ctx)
+ if __debug__:
+ _z3_assert(False, "Python bool, int, long or float expected")
+
+def IntSort(ctx=None):
+ """Return the integer sort in the given context. If `ctx=None`, then the global context is used.
+
+ >>> IntSort()
+ Int
+ >>> x = Const('x', IntSort())
+ >>> is_int(x)
+ True
+ >>> x.sort() == IntSort()
+ True
+ >>> x.sort() == BoolSort()
+ False
+ """
+ ctx = _get_ctx(ctx)
+ return ArithSortRef(Z3_mk_int_sort(ctx.ref()), ctx)
+
+def RealSort(ctx=None):
+ """Return the real sort in the given context. If `ctx=None`, then the global context is used.
+
+ >>> RealSort()
+ Real
+ >>> x = Const('x', RealSort())
+ >>> is_real(x)
+ True
+ >>> is_int(x)
+ False
+ >>> x.sort() == RealSort()
+ True
+ """
+ ctx = _get_ctx(ctx)
+ return ArithSortRef(Z3_mk_real_sort(ctx.ref()), ctx)
+
+def _to_int_str(val):
+ if isinstance(val, float):
+ return str(int(val))
+ elif isinstance(val, bool):
+ if val:
+ return "1"
+ else:
+ return "0"
+ elif _is_int(val):
+ return str(val)
+ elif isinstance(val, str):
+ return val
+ if __debug__:
+ _z3_assert(False, "Python value cannot be used as a Z3 integer")
+
+def IntVal(val, ctx=None):
+ """Return a Z3 integer value. If `ctx=None`, then the global context is used.
+
+ >>> IntVal(1)
+ 1
+ >>> IntVal("100")
+ 100
+ """
+ ctx = _get_ctx(ctx)
+ return IntNumRef(Z3_mk_numeral(ctx.ref(), _to_int_str(val), IntSort(ctx).ast), ctx)
+
+def RealVal(val, ctx=None):
+ """Return a Z3 real value.
+
+ `val` may be a Python int, long, float or string representing a number in decimal or rational notation.
+ If `ctx=None`, then the global context is used.
+
+ >>> RealVal(1)
+ 1
+ >>> RealVal(1).sort()
+ Real
+ >>> RealVal("3/5")
+ 3/5
+ >>> RealVal("1.5")
+ 3/2
+ """
+ ctx = _get_ctx(ctx)
+ return RatNumRef(Z3_mk_numeral(ctx.ref(), str(val), RealSort(ctx).ast), ctx)
+
+def RatVal(a, b, ctx=None):
+ """Return a Z3 rational a/b.
+
+ If `ctx=None`, then the global context is used.
+
+ >>> RatVal(3,5)
+ 3/5
+ >>> RatVal(3,5).sort()
+ Real
+ """
+ if __debug__:
+ _z3_assert(_is_int(a) or isinstance(a, str), "First argument cannot be converted into an integer")
+ _z3_assert(_is_int(b) or isinstance(b, str), "Second argument cannot be converted into an integer")
+ return simplify(RealVal(a, ctx)/RealVal(b, ctx))
+
+def Q(a, b, ctx=None):
+ """Return a Z3 rational a/b.
+
+ If `ctx=None`, then the global context is used.
+
+ >>> Q(3,5)
+ 3/5
+ >>> Q(3,5).sort()
+ Real
+ """
+ return simplify(RatVal(a, b))
+
+def Int(name, ctx=None):
+ """Return an integer constant named `name`. If `ctx=None`, then the global context is used.
+
+ >>> x = Int('x')
+ >>> is_int(x)
+ True
+ >>> is_int(x + 1)
+ True
+ """
+ ctx = _get_ctx(ctx)
+ return ArithRef(Z3_mk_const(ctx.ref(), to_symbol(name, ctx), IntSort(ctx).ast), ctx)
+
+def Ints(names, ctx=None):
+ """Return a tuple of Integer constants.
+
+ >>> x, y, z = Ints('x y z')
+ >>> Sum(x, y, z)
+ x + y + z
+ """
+ ctx = _get_ctx(ctx)
+ if isinstance(names, str):
+ names = names.split(" ")
+ return [Int(name, ctx) for name in names]
+
+def IntVector(prefix, sz, ctx=None):
+ """Return a list of integer constants of size `sz`.
+
+ >>> X = IntVector('x', 3)
+ >>> X
+ [x__0, x__1, x__2]
+ >>> Sum(X)
+ x__0 + x__1 + x__2
+ """
+ return [ Int('%s__%s' % (prefix, i)) for i in range(sz) ]
+
+def FreshInt(prefix='x', ctx=None):
+ """Return a fresh integer constant in the given context using the given prefix.
+
+ >>> x = FreshInt()
+ >>> y = FreshInt()
+ >>> eq(x, y)
+ False
+ >>> x.sort()
+ Int
+ """
+ ctx = _get_ctx(ctx)
+ return ArithRef(Z3_mk_fresh_const(ctx.ref(), prefix, IntSort(ctx).ast), ctx)
+
+def Real(name, ctx=None):
+ """Return a real constant named `name`. If `ctx=None`, then the global context is used.
+
+ >>> x = Real('x')
+ >>> is_real(x)
+ True
+ >>> is_real(x + 1)
+ True
+ """
+ ctx = _get_ctx(ctx)
+ return ArithRef(Z3_mk_const(ctx.ref(), to_symbol(name, ctx), RealSort(ctx).ast), ctx)
+
+def Reals(names, ctx=None):
+ """Return a tuple of real constants.
+
+ >>> x, y, z = Reals('x y z')
+ >>> Sum(x, y, z)
+ x + y + z
+ >>> Sum(x, y, z).sort()
+ Real
+ """
+ ctx = _get_ctx(ctx)
+ if isinstance(names, str):
+ names = names.split(" ")
+ return [Real(name, ctx) for name in names]
+
+def RealVector(prefix, sz, ctx=None):
+ """Return a list of real constants of size `sz`.
+
+ >>> X = RealVector('x', 3)
+ >>> X
+ [x__0, x__1, x__2]
+ >>> Sum(X)
+ x__0 + x__1 + x__2
+ >>> Sum(X).sort()
+ Real
+ """
+ return [ Real('%s__%s' % (prefix, i)) for i in range(sz) ]
+
+def FreshReal(prefix='b', ctx=None):
+ """Return a fresh real constant in the given context using the given prefix.
+
+ >>> x = FreshReal()
+ >>> y = FreshReal()
+ >>> eq(x, y)
+ False
+ >>> x.sort()
+ Real
+ """
+ ctx = _get_ctx(ctx)
+ return ArithRef(Z3_mk_fresh_const(ctx.ref(), prefix, RealSort(ctx).ast), ctx)
+
+def ToReal(a):
+ """ Return the Z3 expression ToReal(a).
+
+ >>> x = Int('x')
+ >>> x.sort()
+ Int
+ >>> n = ToReal(x)
+ >>> n
+ ToReal(x)
+ >>> n.sort()
+ Real
+ """
+ if __debug__:
+ _z3_assert(a.is_int(), "Z3 integer expression expected.")
+ ctx = a.ctx
+ return ArithRef(Z3_mk_int2real(ctx.ref(), a.as_ast()), ctx)
+
+def ToInt(a):
+ """ Return the Z3 expression ToInt(a).
+
+ >>> x = Real('x')
+ >>> x.sort()
+ Real
+ >>> n = ToInt(x)
+ >>> n
+ ToInt(x)
+ >>> n.sort()
+ Int
+ """
+ if __debug__:
+ _z3_assert(a.is_real(), "Z3 real expression expected.")
+ ctx = a.ctx
+ return ArithRef(Z3_mk_real2int(ctx.ref(), a.as_ast()), ctx)
+
+def IsInt(a):
+ """ Return the Z3 predicate IsInt(a).
+
+ >>> x = Real('x')
+ >>> IsInt(x + "1/2")
+ IsInt(x + 1/2)
+ >>> solve(IsInt(x + "1/2"), x > 0, x < 1)
+ [x = 1/2]
+ >>> solve(IsInt(x + "1/2"), x > 0, x < 1, x != "1/2")
+ no solution
+ """
+ if __debug__:
+ _z3_assert(a.is_real(), "Z3 real expression expected.")
+ ctx = a.ctx
+ return BoolRef(Z3_mk_is_int(ctx.ref(), a.as_ast()), ctx)
+
+def Sqrt(a, ctx=None):
+ """ Return a Z3 expression which represents the square root of a.
+
+ >>> x = Real('x')
+ >>> Sqrt(x)
+ x**(1/2)
+ """
+ if not is_expr(a):
+ ctx = _get_ctx(ctx)
+ a = RealVal(a, ctx)
+ return a ** "1/2"
+
+def Cbrt(a, ctx=None):
+ """ Return a Z3 expression which represents the cubic root of a.
+
+ >>> x = Real('x')
+ >>> Cbrt(x)
+ x**(1/3)
+ """
+ if not is_expr(a):
+ ctx = _get_ctx(ctx)
+ a = RealVal(a, ctx)
+ return a ** "1/3"
+
+#########################################
+#
+# Bit-Vectors
+#
+#########################################
+
+class BitVecSortRef(SortRef):
+ """Bit-vector sort."""
+
+ def size(self):
+ """Return the size (number of bits) of the bit-vector sort `self`.
+
+ >>> b = BitVecSort(32)
+ >>> b.size()
+ 32
+ """
+ return int(Z3_get_bv_sort_size(self.ctx_ref(), self.ast))
+
+ def subsort(self, other):
+ return is_bv_sort(other) and self.size() < other.size()
+
+ def cast(self, val):
+ """Try to cast `val` as a Bit-Vector.
+
+ >>> b = BitVecSort(32)
+ >>> b.cast(10)
+ 10
+ >>> b.cast(10).sexpr()
+ '#x0000000a'
+ """
+ if is_expr(val):
+ if __debug__:
+ _z3_assert(self.ctx == val.ctx, "Context mismatch")
+ # Idea: use sign_extend if sort of val is a bitvector of smaller size
+ return val
+ else:
+ return BitVecVal(val, self)
+
+def is_bv_sort(s):
+ """Return True if `s` is a Z3 bit-vector sort.
+
+ >>> is_bv_sort(BitVecSort(32))
+ True
+ >>> is_bv_sort(IntSort())
+ False
+ """
+ return isinstance(s, BitVecSortRef)
+
+class BitVecRef(ExprRef):
+ """Bit-vector expressions."""
+
+ def sort(self):
+ """Return the sort of the bit-vector expression `self`.
+
+ >>> x = BitVec('x', 32)
+ >>> x.sort()
+ BitVec(32)
+ >>> x.sort() == BitVecSort(32)
+ True
+ """
+ return BitVecSortRef(Z3_get_sort(self.ctx_ref(), self.as_ast()), self.ctx)
+
+ def size(self):
+ """Return the number of bits of the bit-vector expression `self`.
+
+ >>> x = BitVec('x', 32)
+ >>> (x + 1).size()
+ 32
+ >>> Concat(x, x).size()
+ 64
+ """
+ return self.sort().size()
+
+ def __add__(self, other):
+ """Create the Z3 expression `self + other`.
+
+ >>> x = BitVec('x', 32)
+ >>> y = BitVec('y', 32)
+ >>> x + y
+ x + y
+ >>> (x + y).sort()
+ BitVec(32)
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvadd(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __radd__(self, other):
+ """Create the Z3 expression `other + self`.
+
+ >>> x = BitVec('x', 32)
+ >>> 10 + x
+ 10 + x
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvadd(self.ctx_ref(), b.as_ast(), a.as_ast()), self.ctx)
+
+ def __mul__(self, other):
+ """Create the Z3 expression `self * other`.
+
+ >>> x = BitVec('x', 32)
+ >>> y = BitVec('y', 32)
+ >>> x * y
+ x*y
+ >>> (x * y).sort()
+ BitVec(32)
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvmul(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __rmul__(self, other):
+ """Create the Z3 expression `other * self`.
+
+ >>> x = BitVec('x', 32)
+ >>> 10 * x
+ 10*x
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvmul(self.ctx_ref(), b.as_ast(), a.as_ast()), self.ctx)
+
+ def __sub__(self, other):
+ """Create the Z3 expression `self - other`.
+
+ >>> x = BitVec('x', 32)
+ >>> y = BitVec('y', 32)
+ >>> x - y
+ x - y
+ >>> (x - y).sort()
+ BitVec(32)
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvsub(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __rsub__(self, other):
+ """Create the Z3 expression `other - self`.
+
+ >>> x = BitVec('x', 32)
+ >>> 10 - x
+ 10 - x
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvsub(self.ctx_ref(), b.as_ast(), a.as_ast()), self.ctx)
+
+ def __or__(self, other):
+ """Create the Z3 expression bitwise-or `self | other`.
+
+ >>> x = BitVec('x', 32)
+ >>> y = BitVec('y', 32)
+ >>> x | y
+ x | y
+ >>> (x | y).sort()
+ BitVec(32)
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvor(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __ror__(self, other):
+ """Create the Z3 expression bitwise-or `other | self`.
+
+ >>> x = BitVec('x', 32)
+ >>> 10 | x
+ 10 | x
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvor(self.ctx_ref(), b.as_ast(), a.as_ast()), self.ctx)
+
+ def __and__(self, other):
+ """Create the Z3 expression bitwise-and `self & other`.
+
+ >>> x = BitVec('x', 32)
+ >>> y = BitVec('y', 32)
+ >>> x & y
+ x & y
+ >>> (x & y).sort()
+ BitVec(32)
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvand(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __rand__(self, other):
+ """Create the Z3 expression bitwise-or `other & self`.
+
+ >>> x = BitVec('x', 32)
+ >>> 10 & x
+ 10 & x
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvand(self.ctx_ref(), b.as_ast(), a.as_ast()), self.ctx)
+
+ def __xor__(self, other):
+ """Create the Z3 expression bitwise-xor `self ^ other`.
+
+ >>> x = BitVec('x', 32)
+ >>> y = BitVec('y', 32)
+ >>> x ^ y
+ x ^ y
+ >>> (x ^ y).sort()
+ BitVec(32)
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvxor(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __rxor__(self, other):
+ """Create the Z3 expression bitwise-xor `other ^ self`.
+
+ >>> x = BitVec('x', 32)
+ >>> 10 ^ x
+ 10 ^ x
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvxor(self.ctx_ref(), b.as_ast(), a.as_ast()), self.ctx)
+
+ def __pos__(self):
+ """Return `self`.
+
+ >>> x = BitVec('x', 32)
+ >>> +x
+ x
+ """
+ return self
+
+ def __neg__(self):
+ """Return an expression representing `-self`.
+
+ >>> x = BitVec('x', 32)
+ >>> -x
+ -x
+ >>> simplify(-(-x))
+ x
+ """
+ return BitVecRef(Z3_mk_bvneg(self.ctx_ref(), self.as_ast()), self.ctx)
+
+ def __invert__(self):
+ """Create the Z3 expression bitwise-not `~self`.
+
+ >>> x = BitVec('x', 32)
+ >>> ~x
+ ~x
+ >>> simplify(~(~x))
+ x
+ """
+ return BitVecRef(Z3_mk_bvnot(self.ctx_ref(), self.as_ast()), self.ctx)
+
+ def __div__(self, other):
+ """Create the Z3 expression (signed) division `self / other`.
+
+ Use the function UDiv() for unsigned division.
+
+ >>> x = BitVec('x', 32)
+ >>> y = BitVec('y', 32)
+ >>> x / y
+ x/y
+ >>> (x / y).sort()
+ BitVec(32)
+ >>> (x / y).sexpr()
+ '(bvsdiv x y)'
+ >>> UDiv(x, y).sexpr()
+ '(bvudiv x y)'
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvsdiv(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __truediv__(self, other):
+ """Create the Z3 expression (signed) division `self / other`."""
+ return self.__div__(other)
+
+ def __rdiv__(self, other):
+ """Create the Z3 expression (signed) division `other / self`.
+
+ Use the function UDiv() for unsigned division.
+
+ >>> x = BitVec('x', 32)
+ >>> 10 / x
+ 10/x
+ >>> (10 / x).sexpr()
+ '(bvsdiv #x0000000a x)'
+ >>> UDiv(10, x).sexpr()
+ '(bvudiv #x0000000a x)'
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvsdiv(self.ctx_ref(), b.as_ast(), a.as_ast()), self.ctx)
+
+ def __rtruediv__(self, other):
+ """Create the Z3 expression (signed) division `other / self`."""
+ return self.__rdiv__(other)
+
+ def __mod__(self, other):
+ """Create the Z3 expression (signed) mod `self % other`.
+
+ Use the function URem() for unsigned remainder, and SRem() for signed remainder.
+
+ >>> x = BitVec('x', 32)
+ >>> y = BitVec('y', 32)
+ >>> x % y
+ x%y
+ >>> (x % y).sort()
+ BitVec(32)
+ >>> (x % y).sexpr()
+ '(bvsmod x y)'
+ >>> URem(x, y).sexpr()
+ '(bvurem x y)'
+ >>> SRem(x, y).sexpr()
+ '(bvsrem x y)'
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvsmod(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __rmod__(self, other):
+ """Create the Z3 expression (signed) mod `other % self`.
+
+ Use the function URem() for unsigned remainder, and SRem() for signed remainder.
+
+ >>> x = BitVec('x', 32)
+ >>> 10 % x
+ 10%x
+ >>> (10 % x).sexpr()
+ '(bvsmod #x0000000a x)'
+ >>> URem(10, x).sexpr()
+ '(bvurem #x0000000a x)'
+ >>> SRem(10, x).sexpr()
+ '(bvsrem #x0000000a x)'
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvsmod(self.ctx_ref(), b.as_ast(), a.as_ast()), self.ctx)
+
+ def __le__(self, other):
+ """Create the Z3 expression (signed) `other <= self`.
+
+ Use the function ULE() for unsigned less than or equal to.
+
+ >>> x, y = BitVecs('x y', 32)
+ >>> x <= y
+ x <= y
+ >>> (x <= y).sexpr()
+ '(bvsle x y)'
+ >>> ULE(x, y).sexpr()
+ '(bvule x y)'
+ """
+ a, b = _coerce_exprs(self, other)
+ return BoolRef(Z3_mk_bvsle(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __lt__(self, other):
+ """Create the Z3 expression (signed) `other < self`.
+
+ Use the function ULT() for unsigned less than.
+
+ >>> x, y = BitVecs('x y', 32)
+ >>> x < y
+ x < y
+ >>> (x < y).sexpr()
+ '(bvslt x y)'
+ >>> ULT(x, y).sexpr()
+ '(bvult x y)'
+ """
+ a, b = _coerce_exprs(self, other)
+ return BoolRef(Z3_mk_bvslt(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __gt__(self, other):
+ """Create the Z3 expression (signed) `other > self`.
+
+ Use the function UGT() for unsigned greater than.
+
+ >>> x, y = BitVecs('x y', 32)
+ >>> x > y
+ x > y
+ >>> (x > y).sexpr()
+ '(bvsgt x y)'
+ >>> UGT(x, y).sexpr()
+ '(bvugt x y)'
+ """
+ a, b = _coerce_exprs(self, other)
+ return BoolRef(Z3_mk_bvsgt(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __ge__(self, other):
+ """Create the Z3 expression (signed) `other >= self`.
+
+ Use the function UGE() for unsigned greater than or equal to.
+
+ >>> x, y = BitVecs('x y', 32)
+ >>> x >= y
+ x >= y
+ >>> (x >= y).sexpr()
+ '(bvsge x y)'
+ >>> UGE(x, y).sexpr()
+ '(bvuge x y)'
+ """
+ a, b = _coerce_exprs(self, other)
+ return BoolRef(Z3_mk_bvsge(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __rshift__(self, other):
+ """Create the Z3 expression (arithmetical) right shift `self >> other`
+
+ Use the function LShR() for the right logical shift
+
+ >>> x, y = BitVecs('x y', 32)
+ >>> x >> y
+ x >> y
+ >>> (x >> y).sexpr()
+ '(bvashr x y)'
+ >>> LShR(x, y).sexpr()
+ '(bvlshr x y)'
+ >>> BitVecVal(4, 3)
+ 4
+ >>> BitVecVal(4, 3).as_signed_long()
+ -4
+ >>> simplify(BitVecVal(4, 3) >> 1).as_signed_long()
+ -2
+ >>> simplify(BitVecVal(4, 3) >> 1)
+ 6
+ >>> simplify(LShR(BitVecVal(4, 3), 1))
+ 2
+ >>> simplify(BitVecVal(2, 3) >> 1)
+ 1
+ >>> simplify(LShR(BitVecVal(2, 3), 1))
+ 1
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvashr(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __lshift__(self, other):
+ """Create the Z3 expression left shift `self << other`
+
+ >>> x, y = BitVecs('x y', 32)
+ >>> x << y
+ x << y
+ >>> (x << y).sexpr()
+ '(bvshl x y)'
+ >>> simplify(BitVecVal(2, 3) << 1)
+ 4
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvshl(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __rrshift__(self, other):
+ """Create the Z3 expression (arithmetical) right shift `other` >> `self`.
+
+ Use the function LShR() for the right logical shift
+
+ >>> x = BitVec('x', 32)
+ >>> 10 >> x
+ 10 >> x
+ >>> (10 >> x).sexpr()
+ '(bvashr #x0000000a x)'
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvashr(self.ctx_ref(), b.as_ast(), a.as_ast()), self.ctx)
+
+ def __rlshift__(self, other):
+ """Create the Z3 expression left shift `other << self`.
+
+ Use the function LShR() for the right logical shift
+
+ >>> x = BitVec('x', 32)
+ >>> 10 << x
+ 10 << x
+ >>> (10 << x).sexpr()
+ '(bvshl #x0000000a x)'
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvshl(self.ctx_ref(), b.as_ast(), a.as_ast()), self.ctx)
+
+class BitVecNumRef(BitVecRef):
+ """Bit-vector values."""
+
+ def as_long(self):
+ """Return a Z3 bit-vector numeral as a Python long (bignum) numeral.
+
+ >>> v = BitVecVal(0xbadc0de, 32)
+ >>> v
+ 195936478
+ >>> print("0x%.8x" % v.as_long())
+ 0x0badc0de
+ """
+ return int(self.as_string())
+
+ def as_signed_long(self):
+ """Return a Z3 bit-vector numeral as a Python long (bignum) numeral. The most significant bit is assumed to be the sign.
+
+ >>> BitVecVal(4, 3).as_signed_long()
+ -4
+ >>> BitVecVal(7, 3).as_signed_long()
+ -1
+ >>> BitVecVal(3, 3).as_signed_long()
+ 3
+ >>> BitVecVal(2**32 - 1, 32).as_signed_long()
+ -1
+ >>> BitVecVal(2**64 - 1, 64).as_signed_long()
+ -1
+ """
+ sz = self.size()
+ val = self.as_long()
+ if val >= 2**(sz - 1):
+ val = val - 2**sz
+ if val < -2**(sz - 1):
+ val = val + 2**sz
+ return int(val)
+
+ def as_string(self):
+ return Z3_get_numeral_string(self.ctx_ref(), self.as_ast())
+
+def is_bv(a):
+ """Return `True` if `a` is a Z3 bit-vector expression.
+
+ >>> b = BitVec('b', 32)
+ >>> is_bv(b)
+ True
+ >>> is_bv(b + 10)
+ True
+ >>> is_bv(Int('x'))
+ False
+ """
+ return isinstance(a, BitVecRef)
+
+def is_bv_value(a):
+ """Return `True` if `a` is a Z3 bit-vector numeral value.
+
+ >>> b = BitVec('b', 32)
+ >>> is_bv_value(b)
+ False
+ >>> b = BitVecVal(10, 32)
+ >>> b
+ 10
+ >>> is_bv_value(b)
+ True
+ """
+ return is_bv(a) and _is_numeral(a.ctx, a.as_ast())
+
+def BV2Int(a, is_signed=False):
+ """Return the Z3 expression BV2Int(a).
+
+ >>> b = BitVec('b', 3)
+ >>> BV2Int(b).sort()
+ Int
+ >>> x = Int('x')
+ >>> x > BV2Int(b)
+ x > BV2Int(b)
+ >>> x > BV2Int(b, is_signed=False)
+ x > BV2Int(b)
+ >>> x > BV2Int(b, is_signed=True)
+ x > If(b < 0, BV2Int(b) - 8, BV2Int(b))
+ >>> solve(x > BV2Int(b), b == 1, x < 3)
+ [b = 1, x = 2]
+ """
+ if __debug__:
+ _z3_assert(is_bv(a), "Z3 bit-vector expression expected")
+ ctx = a.ctx
+ ## investigate problem with bv2int
+ return ArithRef(Z3_mk_bv2int(ctx.ref(), a.as_ast(), is_signed), ctx)
+
+def BitVecSort(sz, ctx=None):
+ """Return a Z3 bit-vector sort of the given size. If `ctx=None`, then the global context is used.
+
+ >>> Byte = BitVecSort(8)
+ >>> Word = BitVecSort(16)
+ >>> Byte
+ BitVec(8)
+ >>> x = Const('x', Byte)
+ >>> eq(x, BitVec('x', 8))
+ True
+ """
+ ctx = _get_ctx(ctx)
+ return BitVecSortRef(Z3_mk_bv_sort(ctx.ref(), sz), ctx)
+
+def BitVecVal(val, bv, ctx=None):
+ """Return a bit-vector value with the given number of bits. If `ctx=None`, then the global context is used.
+
+ >>> v = BitVecVal(10, 32)
+ >>> v
+ 10
+ >>> print("0x%.8x" % v.as_long())
+ 0x0000000a
+ """
+ if is_bv_sort(bv):
+ ctx = bv.ctx
+ return BitVecNumRef(Z3_mk_numeral(ctx.ref(), _to_int_str(val), bv.ast), ctx)
+ else:
+ ctx = _get_ctx(ctx)
+ return BitVecNumRef(Z3_mk_numeral(ctx.ref(), _to_int_str(val), BitVecSort(bv, ctx).ast), ctx)
+
+def BitVec(name, bv, ctx=None):
+ """Return a bit-vector constant named `name`. `bv` may be the number of bits of a bit-vector sort.
+ If `ctx=None`, then the global context is used.
+
+ >>> x = BitVec('x', 16)
+ >>> is_bv(x)
+ True
+ >>> x.size()
+ 16
+ >>> x.sort()
+ BitVec(16)
+ >>> word = BitVecSort(16)
+ >>> x2 = BitVec('x', word)
+ >>> eq(x, x2)
+ True
+ """
+ if isinstance(bv, BitVecSortRef):
+ ctx = bv.ctx
+ else:
+ ctx = _get_ctx(ctx)
+ bv = BitVecSort(bv, ctx)
+ return BitVecRef(Z3_mk_const(ctx.ref(), to_symbol(name, ctx), bv.ast), ctx)
+
+def BitVecs(names, bv, ctx=None):
+ """Return a tuple of bit-vector constants of size bv.
+
+ >>> x, y, z = BitVecs('x y z', 16)
+ >>> x.size()
+ 16
+ >>> x.sort()
+ BitVec(16)
+ >>> Sum(x, y, z)
+ 0 + x + y + z
+ >>> Product(x, y, z)
+ 1*x*y*z
+ >>> simplify(Product(x, y, z))
+ x*y*z
+ """
+ ctx = _get_ctx(ctx)
+ if isinstance(names, str):
+ names = names.split(" ")
+ return [BitVec(name, bv, ctx) for name in names]
+
+def Concat(*args):
+ """Create a Z3 bit-vector concatenation expression.
+
+ >>> v = BitVecVal(1, 4)
+ >>> Concat(v, v+1, v)
+ Concat(Concat(1, 1 + 1), 1)
+ >>> simplify(Concat(v, v+1, v))
+ 289
+ >>> print("%.3x" % simplify(Concat(v, v+1, v)).as_long())
+ 121
+ """
+ args = _get_args(args)
+ sz = len(args)
+ if __debug__:
+ _z3_assert(sz >= 2, "At least two arguments expected.")
+
+ ctx = None
+ for a in args:
+ if is_expr(a):
+ ctx = a.ctx
+ break
+ if is_seq(args[0]) or isinstance(args[0], str):
+ args = [_coerce_seq(s, ctx) for s in args]
+ if __debug__:
+ _z3_assert(all([is_seq(a) for a in args]), "All arguments must be sequence expressions.")
+ v = (Ast * sz)()
+ for i in range(sz):
+ v[i] = args[i].as_ast()
+ return SeqRef(Z3_mk_seq_concat(ctx.ref(), sz, v), ctx)
+
+ if is_re(args[0]):
+ if __debug__:
+ _z3_assert(all([is_re(a) for a in args]), "All arguments must be regular expressions.")
+ v = (Ast * sz)()
+ for i in range(sz):
+ v[i] = args[i].as_ast()
+ return ReRef(Z3_mk_re_concat(ctx.ref(), sz, v), ctx)
+
+ if __debug__:
+ _z3_assert(all([is_bv(a) for a in args]), "All arguments must be Z3 bit-vector expressions.")
+ r = args[0]
+ for i in range(sz - 1):
+ r = BitVecRef(Z3_mk_concat(ctx.ref(), r.as_ast(), args[i+1].as_ast()), ctx)
+ return r
+
+def Extract(high, low, a):
+ """Create a Z3 bit-vector extraction expression, or create a string extraction expression.
+
+ >>> x = BitVec('x', 8)
+ >>> Extract(6, 2, x)
+ Extract(6, 2, x)
+ >>> Extract(6, 2, x).sort()
+ BitVec(5)
+ >>> simplify(Extract(StringVal("abcd"),2,1))
+ "c"
+ """
+ if isinstance(high, str):
+ high = StringVal(high)
+ if is_seq(high):
+ s = high
+ offset, length = _coerce_exprs(low, a, s.ctx)
+ return SeqRef(Z3_mk_seq_extract(s.ctx_ref(), s.as_ast(), offset.as_ast(), length.as_ast()), s.ctx)
+ if __debug__:
+ _z3_assert(low <= high, "First argument must be greater than or equal to second argument")
+ _z3_assert(_is_int(high) and high >= 0 and _is_int(low) and low >= 0, "First and second arguments must be non negative integers")
+ _z3_assert(is_bv(a), "Third argument must be a Z3 Bitvector expression")
+ return BitVecRef(Z3_mk_extract(a.ctx_ref(), high, low, a.as_ast()), a.ctx)
+
+def _check_bv_args(a, b):
+ if __debug__:
+ _z3_assert(is_bv(a) or is_bv(b), "At least one of the arguments must be a Z3 bit-vector expression")
+
+def ULE(a, b):
+ """Create the Z3 expression (unsigned) `other <= self`.
+
+ Use the operator <= for signed less than or equal to.
+
+ >>> x, y = BitVecs('x y', 32)
+ >>> ULE(x, y)
+ ULE(x, y)
+ >>> (x <= y).sexpr()
+ '(bvsle x y)'
+ >>> ULE(x, y).sexpr()
+ '(bvule x y)'
+ """
+ _check_bv_args(a, b)
+ a, b = _coerce_exprs(a, b)
+ return BoolRef(Z3_mk_bvule(a.ctx_ref(), a.as_ast(), b.as_ast()), a.ctx)
+
+def ULT(a, b):
+ """Create the Z3 expression (unsigned) `other < self`.
+
+ Use the operator < for signed less than.
+
+ >>> x, y = BitVecs('x y', 32)
+ >>> ULT(x, y)
+ ULT(x, y)
+ >>> (x < y).sexpr()
+ '(bvslt x y)'
+ >>> ULT(x, y).sexpr()
+ '(bvult x y)'
+ """
+ _check_bv_args(a, b)
+ a, b = _coerce_exprs(a, b)
+ return BoolRef(Z3_mk_bvult(a.ctx_ref(), a.as_ast(), b.as_ast()), a.ctx)
+
+def UGE(a, b):
+ """Create the Z3 expression (unsigned) `other >= self`.
+
+ Use the operator >= for signed greater than or equal to.
+
+ >>> x, y = BitVecs('x y', 32)
+ >>> UGE(x, y)
+ UGE(x, y)
+ >>> (x >= y).sexpr()
+ '(bvsge x y)'
+ >>> UGE(x, y).sexpr()
+ '(bvuge x y)'
+ """
+ _check_bv_args(a, b)
+ a, b = _coerce_exprs(a, b)
+ return BoolRef(Z3_mk_bvuge(a.ctx_ref(), a.as_ast(), b.as_ast()), a.ctx)
+
+def UGT(a, b):
+ """Create the Z3 expression (unsigned) `other > self`.
+
+ Use the operator > for signed greater than.
+
+ >>> x, y = BitVecs('x y', 32)
+ >>> UGT(x, y)
+ UGT(x, y)
+ >>> (x > y).sexpr()
+ '(bvsgt x y)'
+ >>> UGT(x, y).sexpr()
+ '(bvugt x y)'
+ """
+ _check_bv_args(a, b)
+ a, b = _coerce_exprs(a, b)
+ return BoolRef(Z3_mk_bvugt(a.ctx_ref(), a.as_ast(), b.as_ast()), a.ctx)
+
+def UDiv(a, b):
+ """Create the Z3 expression (unsigned) division `self / other`.
+
+ Use the operator / for signed division.
+
+ >>> x = BitVec('x', 32)
+ >>> y = BitVec('y', 32)
+ >>> UDiv(x, y)
+ UDiv(x, y)
+ >>> UDiv(x, y).sort()
+ BitVec(32)
+ >>> (x / y).sexpr()
+ '(bvsdiv x y)'
+ >>> UDiv(x, y).sexpr()
+ '(bvudiv x y)'
+ """
+ _check_bv_args(a, b)
+ a, b = _coerce_exprs(a, b)
+ return BitVecRef(Z3_mk_bvudiv(a.ctx_ref(), a.as_ast(), b.as_ast()), a.ctx)
+
+def URem(a, b):
+ """Create the Z3 expression (unsigned) remainder `self % other`.
+
+ Use the operator % for signed modulus, and SRem() for signed remainder.
+
+ >>> x = BitVec('x', 32)
+ >>> y = BitVec('y', 32)
+ >>> URem(x, y)
+ URem(x, y)
+ >>> URem(x, y).sort()
+ BitVec(32)
+ >>> (x % y).sexpr()
+ '(bvsmod x y)'
+ >>> URem(x, y).sexpr()
+ '(bvurem x y)'
+ """
+ _check_bv_args(a, b)
+ a, b = _coerce_exprs(a, b)
+ return BitVecRef(Z3_mk_bvurem(a.ctx_ref(), a.as_ast(), b.as_ast()), a.ctx)
+
+def SRem(a, b):
+ """Create the Z3 expression signed remainder.
+
+ Use the operator % for signed modulus, and URem() for unsigned remainder.
+
+ >>> x = BitVec('x', 32)
+ >>> y = BitVec('y', 32)
+ >>> SRem(x, y)
+ SRem(x, y)
+ >>> SRem(x, y).sort()
+ BitVec(32)
+ >>> (x % y).sexpr()
+ '(bvsmod x y)'
+ >>> SRem(x, y).sexpr()
+ '(bvsrem x y)'
+ """
+ _check_bv_args(a, b)
+ a, b = _coerce_exprs(a, b)
+ return BitVecRef(Z3_mk_bvsrem(a.ctx_ref(), a.as_ast(), b.as_ast()), a.ctx)
+
+def LShR(a, b):
+ """Create the Z3 expression logical right shift.
+
+ Use the operator >> for the arithmetical right shift.
+
+ >>> x, y = BitVecs('x y', 32)
+ >>> LShR(x, y)
+ LShR(x, y)
+ >>> (x >> y).sexpr()
+ '(bvashr x y)'
+ >>> LShR(x, y).sexpr()
+ '(bvlshr x y)'
+ >>> BitVecVal(4, 3)
+ 4
+ >>> BitVecVal(4, 3).as_signed_long()
+ -4
+ >>> simplify(BitVecVal(4, 3) >> 1).as_signed_long()
+ -2
+ >>> simplify(BitVecVal(4, 3) >> 1)
+ 6
+ >>> simplify(LShR(BitVecVal(4, 3), 1))
+ 2
+ >>> simplify(BitVecVal(2, 3) >> 1)
+ 1
+ >>> simplify(LShR(BitVecVal(2, 3), 1))
+ 1
+ """
+ _check_bv_args(a, b)
+ a, b = _coerce_exprs(a, b)
+ return BitVecRef(Z3_mk_bvlshr(a.ctx_ref(), a.as_ast(), b.as_ast()), a.ctx)
+
+def RotateLeft(a, b):
+ """Return an expression representing `a` rotated to the left `b` times.
+
+ >>> a, b = BitVecs('a b', 16)
+ >>> RotateLeft(a, b)
+ RotateLeft(a, b)
+ >>> simplify(RotateLeft(a, 0))
+ a
+ >>> simplify(RotateLeft(a, 16))
+ a
+ """
+ _check_bv_args(a, b)
+ a, b = _coerce_exprs(a, b)
+ return BitVecRef(Z3_mk_ext_rotate_left(a.ctx_ref(), a.as_ast(), b.as_ast()), a.ctx)
+
+def RotateRight(a, b):
+ """Return an expression representing `a` rotated to the right `b` times.
+
+ >>> a, b = BitVecs('a b', 16)
+ >>> RotateRight(a, b)
+ RotateRight(a, b)
+ >>> simplify(RotateRight(a, 0))
+ a
+ >>> simplify(RotateRight(a, 16))
+ a
+ """
+ _check_bv_args(a, b)
+ a, b = _coerce_exprs(a, b)
+ return BitVecRef(Z3_mk_ext_rotate_right(a.ctx_ref(), a.as_ast(), b.as_ast()), a.ctx)
+
+def SignExt(n, a):
+ """Return a bit-vector expression with `n` extra sign-bits.
+
+ >>> x = BitVec('x', 16)
+ >>> n = SignExt(8, x)
+ >>> n.size()
+ 24
+ >>> n
+ SignExt(8, x)
+ >>> n.sort()
+ BitVec(24)
+ >>> v0 = BitVecVal(2, 2)
+ >>> v0
+ 2
+ >>> v0.size()
+ 2
+ >>> v = simplify(SignExt(6, v0))
+ >>> v
+ 254
+ >>> v.size()
+ 8
+ >>> print("%.x" % v.as_long())
+ fe
+ """
+ if __debug__:
+ _z3_assert(_is_int(n), "First argument must be an integer")
+ _z3_assert(is_bv(a), "Second argument must be a Z3 Bitvector expression")
+ return BitVecRef(Z3_mk_sign_ext(a.ctx_ref(), n, a.as_ast()), a.ctx)
+
+def ZeroExt(n, a):
+ """Return a bit-vector expression with `n` extra zero-bits.
+
+ >>> x = BitVec('x', 16)
+ >>> n = ZeroExt(8, x)
+ >>> n.size()
+ 24
+ >>> n
+ ZeroExt(8, x)
+ >>> n.sort()
+ BitVec(24)
+ >>> v0 = BitVecVal(2, 2)
+ >>> v0
+ 2
+ >>> v0.size()
+ 2
+ >>> v = simplify(ZeroExt(6, v0))
+ >>> v
+ 2
+ >>> v.size()
+ 8
+ """
+ if __debug__:
+ _z3_assert(_is_int(n), "First argument must be an integer")
+ _z3_assert(is_bv(a), "Second argument must be a Z3 Bitvector expression")
+ return BitVecRef(Z3_mk_zero_ext(a.ctx_ref(), n, a.as_ast()), a.ctx)
+
+def RepeatBitVec(n, a):
+ """Return an expression representing `n` copies of `a`.
+
+ >>> x = BitVec('x', 8)
+ >>> n = RepeatBitVec(4, x)
+ >>> n
+ RepeatBitVec(4, x)
+ >>> n.size()
+ 32
+ >>> v0 = BitVecVal(10, 4)
+ >>> print("%.x" % v0.as_long())
+ a
+ >>> v = simplify(RepeatBitVec(4, v0))
+ >>> v.size()
+ 16
+ >>> print("%.x" % v.as_long())
+ aaaa
+ """
+ if __debug__:
+ _z3_assert(_is_int(n), "First argument must be an integer")
+ _z3_assert(is_bv(a), "Second argument must be a Z3 Bitvector expression")
+ return BitVecRef(Z3_mk_repeat(a.ctx_ref(), n, a.as_ast()), a.ctx)
+
+def BVRedAnd(a):
+ """Return the reduction-and expression of `a`."""
+ if __debug__:
+ _z3_assert(is_bv(a), "First argument must be a Z3 Bitvector expression")
+ return BitVecRef(Z3_mk_bvredand(a.ctx_ref(), a.as_ast()), a.ctx)
+
+def BVRedOr(a):
+ """Return the reduction-or expression of `a`."""
+ if __debug__:
+ _z3_assert(is_bv(a), "First argument must be a Z3 Bitvector expression")
+ return BitVecRef(Z3_mk_bvredor(a.ctx_ref(), a.as_ast()), a.ctx)
+
+def BVAddNoOverflow(a, b, signed):
+ """A predicate the determines that bit-vector addition does not overflow"""
+ _check_bv_args(a, b)
+ a, b = _coerce_exprs(a, b)
+ return BoolRef(Z3_mk_bvadd_no_overflow(a.ctx_ref(), a.as_ast(), b.as_ast(), signed), a.ctx)
+
+def BVAddNoUnderflow(a, b):
+ """A predicate the determines that signed bit-vector addition does not underflow"""
+ _check_bv_args(a, b)
+ a, b = _coerce_exprs(a, b)
+ return BoolRef(Z3_mk_bvadd_no_underflow(a.ctx_ref(), a.as_ast(), b.as_ast()), a.ctx)
+
+def BVSubNoOverflow(a, b):
+ """A predicate the determines that bit-vector subtraction does not overflow"""
+ _check_bv_args(a, b)
+ a, b = _coerce_exprs(a, b)
+ return BoolRef(Z3_mk_bvsub_no_overflow(a.ctx_ref(), a.as_ast(), b.as_ast()), a.ctx)
+
+
+def BVSubNoUnderflow(a, b, signed):
+ """A predicate the determines that bit-vector subtraction does not underflow"""
+ _check_bv_args(a, b)
+ a, b = _coerce_exprs(a, b)
+ return BoolRef(Z3_mk_bvsub_no_underflow(a.ctx_ref(), a.as_ast(), b.as_ast(), signed), a.ctx)
+
+def BVSDivNoOverflow(a, b):
+ """A predicate the determines that bit-vector signed division does not overflow"""
+ _check_bv_args(a, b)
+ a, b = _coerce_exprs(a, b)
+ return BoolRef(Z3_mk_bvsdiv_no_overflow(a.ctx_ref(), a.as_ast(), b.as_ast()), a.ctx)
+
+def BVSNegNoOverflow(a):
+ """A predicate the determines that bit-vector unary negation does not overflow"""
+ if __debug__:
+ _z3_assert(is_bv(a), "Argument should be a bit-vector")
+ return BoolRef(Z3_mk_bvneg_no_overflow(a.ctx_ref(), a.as_ast()), a.ctx)
+
+def BVMulNoOverflow(a, b, signed):
+ """A predicate the determines that bit-vector multiplication does not overflow"""
+ _check_bv_args(a, b)
+ a, b = _coerce_exprs(a, b)
+ return BoolRef(Z3_mk_bvmul_no_overflow(a.ctx_ref(), a.as_ast(), b.as_ast(), signed), a.ctx)
+
+
+def BVMulNoUnderflow(a, b):
+ """A predicate the determines that bit-vector signed multiplication does not underflow"""
+ _check_bv_args(a, b)
+ a, b = _coerce_exprs(a, b)
+ return BoolRef(Z3_mk_bvmul_no_underflow(a.ctx_ref(), a.as_ast(), b.as_ast()), a.ctx)
+
+
+
+#########################################
+#
+# Arrays
+#
+#########################################
+
+class ArraySortRef(SortRef):
+ """Array sorts."""
+
+ def domain(self):
+ """Return the domain of the array sort `self`.
+
+ >>> A = ArraySort(IntSort(), BoolSort())
+ >>> A.domain()
+ Int
+ """
+ return _to_sort_ref(Z3_get_array_sort_domain(self.ctx_ref(), self.ast), self.ctx)
+
+ def range(self):
+ """Return the range of the array sort `self`.
+
+ >>> A = ArraySort(IntSort(), BoolSort())
+ >>> A.range()
+ Bool
+ """
+ return _to_sort_ref(Z3_get_array_sort_range(self.ctx_ref(), self.ast), self.ctx)
+
+class ArrayRef(ExprRef):
+ """Array expressions. """
+
+ def sort(self):
+ """Return the array sort of the array expression `self`.
+
+ >>> a = Array('a', IntSort(), BoolSort())
+ >>> a.sort()
+ Array(Int, Bool)
+ """
+ return ArraySortRef(Z3_get_sort(self.ctx_ref(), self.as_ast()), self.ctx)
+
+ def domain(self):
+ """Shorthand for `self.sort().domain()`.
+
+ >>> a = Array('a', IntSort(), BoolSort())
+ >>> a.domain()
+ Int
+ """
+ return self.sort().domain()
+
+ def range(self):
+ """Shorthand for `self.sort().range()`.
+
+ >>> a = Array('a', IntSort(), BoolSort())
+ >>> a.range()
+ Bool
+ """
+ return self.sort().range()
+
+ def __getitem__(self, arg):
+ """Return the Z3 expression `self[arg]`.
+
+ >>> a = Array('a', IntSort(), BoolSort())
+ >>> i = Int('i')
+ >>> a[i]
+ a[i]
+ >>> a[i].sexpr()
+ '(select a i)'
+ """
+ arg = self.domain().cast(arg)
+ return _to_expr_ref(Z3_mk_select(self.ctx_ref(), self.as_ast(), arg.as_ast()), self.ctx)
+
+ def default(self):
+ return _to_expr_ref(Z3_mk_array_default(self.ctx_ref(), self.as_ast()), self.ctx)
+
+
+def is_array(a):
+ """Return `True` if `a` is a Z3 array expression.
+
+ >>> a = Array('a', IntSort(), IntSort())
+ >>> is_array(a)
+ True
+ >>> is_array(Store(a, 0, 1))
+ True
+ >>> is_array(a[0])
+ False
+ """
+ return isinstance(a, ArrayRef)
+
+def is_const_array(a):
+ """Return `True` if `a` is a Z3 constant array.
+
+ >>> a = K(IntSort(), 10)
+ >>> is_const_array(a)
+ True
+ >>> a = Array('a', IntSort(), IntSort())
+ >>> is_const_array(a)
+ False
+ """
+ return is_app_of(a, Z3_OP_CONST_ARRAY)
+
+def is_K(a):
+ """Return `True` if `a` is a Z3 constant array.
+
+ >>> a = K(IntSort(), 10)
+ >>> is_K(a)
+ True
+ >>> a = Array('a', IntSort(), IntSort())
+ >>> is_K(a)
+ False
+ """
+ return is_app_of(a, Z3_OP_CONST_ARRAY)
+
+def is_map(a):
+ """Return `True` if `a` is a Z3 map array expression.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> b = Array('b', IntSort(), IntSort())
+ >>> a = Map(f, b)
+ >>> a
+ Map(f, b)
+ >>> is_map(a)
+ True
+ >>> is_map(b)
+ False
+ """
+ return is_app_of(a, Z3_OP_ARRAY_MAP)
+
+def is_default(a):
+ """Return `True` if `a` is a Z3 default array expression.
+ >>> d = Default(K(IntSort(), 10))
+ >>> is_default(d)
+ True
+ """
+ return is_app_of(a, Z3_OP_ARRAY_DEFAULT)
+
+def get_map_func(a):
+ """Return the function declaration associated with a Z3 map array expression.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> b = Array('b', IntSort(), IntSort())
+ >>> a = Map(f, b)
+ >>> eq(f, get_map_func(a))
+ True
+ >>> get_map_func(a)
+ f
+ >>> get_map_func(a)(0)
+ f(0)
+ """
+ if __debug__:
+ _z3_assert(is_map(a), "Z3 array map expression expected.")
+ return FuncDeclRef(Z3_to_func_decl(a.ctx_ref(), Z3_get_decl_ast_parameter(a.ctx_ref(), a.decl().ast, 0)), a.ctx)
+
+def ArraySort(d, r):
+ """Return the Z3 array sort with the given domain and range sorts.
+
+ >>> A = ArraySort(IntSort(), BoolSort())
+ >>> A
+ Array(Int, Bool)
+ >>> A.domain()
+ Int
+ >>> A.range()
+ Bool
+ >>> AA = ArraySort(IntSort(), A)
+ >>> AA
+ Array(Int, Array(Int, Bool))
+ """
+ if __debug__:
+ _z3_assert(is_sort(d), "Z3 sort expected")
+ _z3_assert(is_sort(r), "Z3 sort expected")
+ _z3_assert(d.ctx == r.ctx, "Context mismatch")
+ ctx = d.ctx
+ return ArraySortRef(Z3_mk_array_sort(ctx.ref(), d.ast, r.ast), ctx)
+
+def Array(name, dom, rng):
+ """Return an array constant named `name` with the given domain and range sorts.
+
+ >>> a = Array('a', IntSort(), IntSort())
+ >>> a.sort()
+ Array(Int, Int)
+ >>> a[0]
+ a[0]
+ """
+ s = ArraySort(dom, rng)
+ ctx = s.ctx
+ return ArrayRef(Z3_mk_const(ctx.ref(), to_symbol(name, ctx), s.ast), ctx)
+
+def Update(a, i, v):
+ """Return a Z3 store array expression.
+
+ >>> a = Array('a', IntSort(), IntSort())
+ >>> i, v = Ints('i v')
+ >>> s = Update(a, i, v)
+ >>> s.sort()
+ Array(Int, Int)
+ >>> prove(s[i] == v)
+ proved
+ >>> j = Int('j')
+ >>> prove(Implies(i != j, s[j] == a[j]))
+ proved
+ """
+ if __debug__:
+ _z3_assert(is_array(a), "First argument must be a Z3 array expression")
+ i = a.domain().cast(i)
+ v = a.range().cast(v)
+ ctx = a.ctx
+ return _to_expr_ref(Z3_mk_store(ctx.ref(), a.as_ast(), i.as_ast(), v.as_ast()), ctx)
+
+def Default(a):
+ """ Return a default value for array expression.
+ >>> b = K(IntSort(), 1)
+ >>> prove(Default(b) == 1)
+ proved
+ """
+ if __debug__:
+ _z3_assert(is_array(a), "First argument must be a Z3 array expression")
+ return a.default()
+
+
+def Store(a, i, v):
+ """Return a Z3 store array expression.
+
+ >>> a = Array('a', IntSort(), IntSort())
+ >>> i, v = Ints('i v')
+ >>> s = Store(a, i, v)
+ >>> s.sort()
+ Array(Int, Int)
+ >>> prove(s[i] == v)
+ proved
+ >>> j = Int('j')
+ >>> prove(Implies(i != j, s[j] == a[j]))
+ proved
+ """
+ return Update(a, i, v)
+
+def Select(a, i):
+ """Return a Z3 select array expression.
+
+ >>> a = Array('a', IntSort(), IntSort())
+ >>> i = Int('i')
+ >>> Select(a, i)
+ a[i]
+ >>> eq(Select(a, i), a[i])
+ True
+ """
+ if __debug__:
+ _z3_assert(is_array(a), "First argument must be a Z3 array expression")
+ return a[i]
+
+
+def Map(f, *args):
+ """Return a Z3 map array expression.
+
+ >>> f = Function('f', IntSort(), IntSort(), IntSort())
+ >>> a1 = Array('a1', IntSort(), IntSort())
+ >>> a2 = Array('a2', IntSort(), IntSort())
+ >>> b = Map(f, a1, a2)
+ >>> b
+ Map(f, a1, a2)
+ >>> prove(b[0] == f(a1[0], a2[0]))
+ proved
+ """
+ args = _get_args(args)
+ if __debug__:
+ _z3_assert(len(args) > 0, "At least one Z3 array expression expected")
+ _z3_assert(is_func_decl(f), "First argument must be a Z3 function declaration")
+ _z3_assert(all([is_array(a) for a in args]), "Z3 array expected expected")
+ _z3_assert(len(args) == f.arity(), "Number of arguments mismatch")
+ _args, sz = _to_ast_array(args)
+ ctx = f.ctx
+ return ArrayRef(Z3_mk_map(ctx.ref(), f.ast, sz, _args), ctx)
+
+def K(dom, v):
+ """Return a Z3 constant array expression.
+
+ >>> a = K(IntSort(), 10)
+ >>> a
+ K(Int, 10)
+ >>> a.sort()
+ Array(Int, Int)
+ >>> i = Int('i')
+ >>> a[i]
+ K(Int, 10)[i]
+ >>> simplify(a[i])
+ 10
+ """
+ if __debug__:
+ _z3_assert(is_sort(dom), "Z3 sort expected")
+ ctx = dom.ctx
+ if not is_expr(v):
+ v = _py2expr(v, ctx)
+ return ArrayRef(Z3_mk_const_array(ctx.ref(), dom.ast, v.as_ast()), ctx)
+
+def Ext(a, b):
+ """Return extensionality index for arrays.
+ """
+ if __debug__:
+ _z3_assert(is_array(a) and is_array(b))
+ return _to_expr_ref(Z3_mk_array_ext(ctx.ref(), a.as_ast(), b.as_ast()));
+
+def is_select(a):
+ """Return `True` if `a` is a Z3 array select application.
+
+ >>> a = Array('a', IntSort(), IntSort())
+ >>> is_select(a)
+ False
+ >>> i = Int('i')
+ >>> is_select(a[i])
+ True
+ """
+ return is_app_of(a, Z3_OP_SELECT)
+
+def is_store(a):
+ """Return `True` if `a` is a Z3 array store application.
+
+ >>> a = Array('a', IntSort(), IntSort())
+ >>> is_store(a)
+ False
+ >>> is_store(Store(a, 0, 1))
+ True
+ """
+ return is_app_of(a, Z3_OP_STORE)
+
+#########################################
+#
+# Datatypes
+#
+#########################################
+
+def _valid_accessor(acc):
+ """Return `True` if acc is pair of the form (String, Datatype or Sort). """
+ return isinstance(acc, tuple) and len(acc) == 2 and isinstance(acc[0], str) and (isinstance(acc[1], Datatype) or is_sort(acc[1]))
+
+class Datatype:
+ """Helper class for declaring Z3 datatypes.
+
+ >>> List = Datatype('List')
+ >>> List.declare('cons', ('car', IntSort()), ('cdr', List))
+ >>> List.declare('nil')
+ >>> List = List.create()
+ >>> # List is now a Z3 declaration
+ >>> List.nil
+ nil
+ >>> List.cons(10, List.nil)
+ cons(10, nil)
+ >>> List.cons(10, List.nil).sort()
+ List
+ >>> cons = List.cons
+ >>> nil = List.nil
+ >>> car = List.car
+ >>> cdr = List.cdr
+ >>> n = cons(1, cons(0, nil))
+ >>> n
+ cons(1, cons(0, nil))
+ >>> simplify(cdr(n))
+ cons(0, nil)
+ >>> simplify(car(n))
+ 1
+ """
+ def __init__(self, name, ctx=None):
+ self.ctx = _get_ctx(ctx)
+ self.name = name
+ self.constructors = []
+
+ def __deepcopy__(self, memo={}):
+ r = Datatype(self.name, self.ctx)
+ r.constructors = copy.deepcopy(self.constructors)
+ return r
+
+ def declare_core(self, name, rec_name, *args):
+ if __debug__:
+ _z3_assert(isinstance(name, str), "String expected")
+ _z3_assert(isinstance(rec_name, str), "String expected")
+ _z3_assert(all([_valid_accessor(a) for a in args]), "Valid list of accessors expected. An accessor is a pair of the form (String, Datatype|Sort)")
+ self.constructors.append((name, rec_name, args))
+
+ def declare(self, name, *args):
+ """Declare constructor named `name` with the given accessors `args`.
+ Each accessor is a pair `(name, sort)`, where `name` is a string and `sort` a Z3 sort or a reference to the datatypes being declared.
+
+ In the followin example `List.declare('cons', ('car', IntSort()), ('cdr', List))`
+ declares the constructor named `cons` that builds a new List using an integer and a List.
+ It also declares the accessors `car` and `cdr`. The accessor `car` extracts the integer of a `cons` cell,
+ and `cdr` the list of a `cons` cell. After all constructors were declared, we use the method create() to create
+ the actual datatype in Z3.
+
+ >>> List = Datatype('List')
+ >>> List.declare('cons', ('car', IntSort()), ('cdr', List))
+ >>> List.declare('nil')
+ >>> List = List.create()
+ """
+ if __debug__:
+ _z3_assert(isinstance(name, str), "String expected")
+ _z3_assert(name != "", "Constructor name cannot be empty")
+ return self.declare_core(name, "is_" + name, *args)
+
+ def __repr__(self):
+ return "Datatype(%s, %s)" % (self.name, self.constructors)
+
+ def create(self):
+ """Create a Z3 datatype based on the constructors declared using the mehtod `declare()`.
+
+ The function `CreateDatatypes()` must be used to define mutually recursive datatypes.
+
+ >>> List = Datatype('List')
+ >>> List.declare('cons', ('car', IntSort()), ('cdr', List))
+ >>> List.declare('nil')
+ >>> List = List.create()
+ >>> List.nil
+ nil
+ >>> List.cons(10, List.nil)
+ cons(10, nil)
+ """
+ return CreateDatatypes([self])[0]
+
+class ScopedConstructor:
+ """Auxiliary object used to create Z3 datatypes."""
+ def __init__(self, c, ctx):
+ self.c = c
+ self.ctx = ctx
+ def __del__(self):
+ if self.ctx.ref() is not None:
+ Z3_del_constructor(self.ctx.ref(), self.c)
+
+class ScopedConstructorList:
+ """Auxiliary object used to create Z3 datatypes."""
+ def __init__(self, c, ctx):
+ self.c = c
+ self.ctx = ctx
+ def __del__(self):
+ if self.ctx.ref() is not None:
+ Z3_del_constructor_list(self.ctx.ref(), self.c)
+
+def CreateDatatypes(*ds):
+ """Create mutually recursive Z3 datatypes using 1 or more Datatype helper objects.
+
+ In the following example we define a Tree-List using two mutually recursive datatypes.
+
+ >>> TreeList = Datatype('TreeList')
+ >>> Tree = Datatype('Tree')
+ >>> # Tree has two constructors: leaf and node
+ >>> Tree.declare('leaf', ('val', IntSort()))
+ >>> # a node contains a list of trees
+ >>> Tree.declare('node', ('children', TreeList))
+ >>> TreeList.declare('nil')
+ >>> TreeList.declare('cons', ('car', Tree), ('cdr', TreeList))
+ >>> Tree, TreeList = CreateDatatypes(Tree, TreeList)
+ >>> Tree.val(Tree.leaf(10))
+ val(leaf(10))
+ >>> simplify(Tree.val(Tree.leaf(10)))
+ 10
+ >>> n1 = Tree.node(TreeList.cons(Tree.leaf(10), TreeList.cons(Tree.leaf(20), TreeList.nil)))
+ >>> n1
+ node(cons(leaf(10), cons(leaf(20), nil)))
+ >>> n2 = Tree.node(TreeList.cons(n1, TreeList.nil))
+ >>> simplify(n2 == n1)
+ False
+ >>> simplify(TreeList.car(Tree.children(n2)) == n1)
+ True
+ """
+ ds = _get_args(ds)
+ if __debug__:
+ _z3_assert(len(ds) > 0, "At least one Datatype must be specified")
+ _z3_assert(all([isinstance(d, Datatype) for d in ds]), "Arguments must be Datatypes")
+ _z3_assert(all([d.ctx == ds[0].ctx for d in ds]), "Context mismatch")
+ _z3_assert(all([d.constructors != [] for d in ds]), "Non-empty Datatypes expected")
+ ctx = ds[0].ctx
+ num = len(ds)
+ names = (Symbol * num)()
+ out = (Sort * num)()
+ clists = (ConstructorList * num)()
+ to_delete = []
+ for i in range(num):
+ d = ds[i]
+ names[i] = to_symbol(d.name, ctx)
+ num_cs = len(d.constructors)
+ cs = (Constructor * num_cs)()
+ for j in range(num_cs):
+ c = d.constructors[j]
+ cname = to_symbol(c[0], ctx)
+ rname = to_symbol(c[1], ctx)
+ fs = c[2]
+ num_fs = len(fs)
+ fnames = (Symbol * num_fs)()
+ sorts = (Sort * num_fs)()
+ refs = (ctypes.c_uint * num_fs)()
+ for k in range(num_fs):
+ fname = fs[k][0]
+ ftype = fs[k][1]
+ fnames[k] = to_symbol(fname, ctx)
+ if isinstance(ftype, Datatype):
+ if __debug__:
+ _z3_assert(ds.count(ftype) == 1, "One and only one occurrence of each datatype is expected")
+ sorts[k] = None
+ refs[k] = ds.index(ftype)
+ else:
+ if __debug__:
+ _z3_assert(is_sort(ftype), "Z3 sort expected")
+ sorts[k] = ftype.ast
+ refs[k] = 0
+ cs[j] = Z3_mk_constructor(ctx.ref(), cname, rname, num_fs, fnames, sorts, refs)
+ to_delete.append(ScopedConstructor(cs[j], ctx))
+ clists[i] = Z3_mk_constructor_list(ctx.ref(), num_cs, cs)
+ to_delete.append(ScopedConstructorList(clists[i], ctx))
+ Z3_mk_datatypes(ctx.ref(), num, names, out, clists)
+ result = []
+ ## Create a field for every constructor, recognizer and accessor
+ for i in range(num):
+ dref = DatatypeSortRef(out[i], ctx)
+ num_cs = dref.num_constructors()
+ for j in range(num_cs):
+ cref = dref.constructor(j)
+ cref_name = cref.name()
+ cref_arity = cref.arity()
+ if cref.arity() == 0:
+ cref = cref()
+ setattr(dref, cref_name, cref)
+ rref = dref.recognizer(j)
+ setattr(dref, rref.name(), rref)
+ for k in range(cref_arity):
+ aref = dref.accessor(j, k)
+ setattr(dref, aref.name(), aref)
+ result.append(dref)
+ return tuple(result)
+
+class DatatypeSortRef(SortRef):
+ """Datatype sorts."""
+ def num_constructors(self):
+ """Return the number of constructors in the given Z3 datatype.
+
+ >>> List = Datatype('List')
+ >>> List.declare('cons', ('car', IntSort()), ('cdr', List))
+ >>> List.declare('nil')
+ >>> List = List.create()
+ >>> # List is now a Z3 declaration
+ >>> List.num_constructors()
+ 2
+ """
+ return int(Z3_get_datatype_sort_num_constructors(self.ctx_ref(), self.ast))
+
+ def constructor(self, idx):
+ """Return a constructor of the datatype `self`.
+
+ >>> List = Datatype('List')
+ >>> List.declare('cons', ('car', IntSort()), ('cdr', List))
+ >>> List.declare('nil')
+ >>> List = List.create()
+ >>> # List is now a Z3 declaration
+ >>> List.num_constructors()
+ 2
+ >>> List.constructor(0)
+ cons
+ >>> List.constructor(1)
+ nil
+ """
+ if __debug__:
+ _z3_assert(idx < self.num_constructors(), "Invalid constructor index")
+ return FuncDeclRef(Z3_get_datatype_sort_constructor(self.ctx_ref(), self.ast, idx), self.ctx)
+
+ def recognizer(self, idx):
+ """In Z3, each constructor has an associated recognizer predicate.
+
+ If the constructor is named `name`, then the recognizer `is_name`.
+
+ >>> List = Datatype('List')
+ >>> List.declare('cons', ('car', IntSort()), ('cdr', List))
+ >>> List.declare('nil')
+ >>> List = List.create()
+ >>> # List is now a Z3 declaration
+ >>> List.num_constructors()
+ 2
+ >>> List.recognizer(0)
+ is_cons
+ >>> List.recognizer(1)
+ is_nil
+ >>> simplify(List.is_nil(List.cons(10, List.nil)))
+ False
+ >>> simplify(List.is_cons(List.cons(10, List.nil)))
+ True
+ >>> l = Const('l', List)
+ >>> simplify(List.is_cons(l))
+ is_cons(l)
+ """
+ if __debug__:
+ _z3_assert(idx < self.num_constructors(), "Invalid recognizer index")
+ return FuncDeclRef(Z3_get_datatype_sort_recognizer(self.ctx_ref(), self.ast, idx), self.ctx)
+
+ def accessor(self, i, j):
+ """In Z3, each constructor has 0 or more accessor. The number of accessors is equal to the arity of the constructor.
+
+ >>> List = Datatype('List')
+ >>> List.declare('cons', ('car', IntSort()), ('cdr', List))
+ >>> List.declare('nil')
+ >>> List = List.create()
+ >>> List.num_constructors()
+ 2
+ >>> List.constructor(0)
+ cons
+ >>> num_accs = List.constructor(0).arity()
+ >>> num_accs
+ 2
+ >>> List.accessor(0, 0)
+ car
+ >>> List.accessor(0, 1)
+ cdr
+ >>> List.constructor(1)
+ nil
+ >>> num_accs = List.constructor(1).arity()
+ >>> num_accs
+ 0
+ """
+ if __debug__:
+ _z3_assert(i < self.num_constructors(), "Invalid constructor index")
+ _z3_assert(j < self.constructor(i).arity(), "Invalid accessor index")
+ return FuncDeclRef(Z3_get_datatype_sort_constructor_accessor(self.ctx_ref(), self.ast, i, j), self.ctx)
+
+class DatatypeRef(ExprRef):
+ """Datatype expressions."""
+ def sort(self):
+ """Return the datatype sort of the datatype expression `self`."""
+ return DatatypeSortRef(Z3_get_sort(self.ctx_ref(), self.as_ast()), self.ctx)
+
+def EnumSort(name, values, ctx=None):
+ """Return a new enumeration sort named `name` containing the given values.
+
+ The result is a pair (sort, list of constants).
+ Example:
+ >>> Color, (red, green, blue) = EnumSort('Color', ['red', 'green', 'blue'])
+ """
+ if __debug__:
+ _z3_assert(isinstance(name, str), "Name must be a string")
+ _z3_assert(all([isinstance(v, str) for v in values]), "Eumeration sort values must be strings")
+ _z3_assert(len(values) > 0, "At least one value expected")
+ ctx = _get_ctx(ctx)
+ num = len(values)
+ _val_names = (Symbol * num)()
+ for i in range(num):
+ _val_names[i] = to_symbol(values[i])
+ _values = (FuncDecl * num)()
+ _testers = (FuncDecl * num)()
+ name = to_symbol(name)
+ S = DatatypeSortRef(Z3_mk_enumeration_sort(ctx.ref(), name, num, _val_names, _values, _testers), ctx)
+ V = []
+ for i in range(num):
+ V.append(FuncDeclRef(_values[i], ctx))
+ V = [a() for a in V]
+ return S, V
+
+#########################################
+#
+# Parameter Sets
+#
+#########################################
+
+class ParamsRef:
+ """Set of parameters used to configure Solvers, Tactics and Simplifiers in Z3.
+
+ Consider using the function `args2params` to create instances of this object.
+ """
+ def __init__(self, ctx=None, params=None):
+ self.ctx = _get_ctx(ctx)
+ if params is None:
+ self.params = Z3_mk_params(self.ctx.ref())
+ else:
+ self.params = params
+ Z3_params_inc_ref(self.ctx.ref(), self.params)
+
+ def __deepcopy__(self, memo={}):
+ return ParamsRef(self.ctx, self.params)
+
+ def __del__(self):
+ if self.ctx.ref() is not None:
+ Z3_params_dec_ref(self.ctx.ref(), self.params)
+
+ def set(self, name, val):
+ """Set parameter name with value val."""
+ if __debug__:
+ _z3_assert(isinstance(name, str), "parameter name must be a string")
+ name_sym = to_symbol(name, self.ctx)
+ if isinstance(val, bool):
+ Z3_params_set_bool(self.ctx.ref(), self.params, name_sym, val)
+ elif _is_int(val):
+ Z3_params_set_uint(self.ctx.ref(), self.params, name_sym, val)
+ elif isinstance(val, float):
+ Z3_params_set_double(self.ctx.ref(), self.params, name_sym, val)
+ elif isinstance(val, str):
+ Z3_params_set_symbol(self.ctx.ref(), self.params, name_sym, to_symbol(val, self.ctx))
+ else:
+ if __debug__:
+ _z3_assert(False, "invalid parameter value")
+
+ def __repr__(self):
+ return Z3_params_to_string(self.ctx.ref(), self.params)
+
+ def validate(self, ds):
+ _z3_assert(isinstance(ds, ParamDescrsRef), "parameter description set expected")
+ Z3_params_validate(self.ctx.ref(), self.params, ds.descr)
+
+def args2params(arguments, keywords, ctx=None):
+ """Convert python arguments into a Z3_params object.
+ A ':' is added to the keywords, and '_' is replaced with '-'
+
+ >>> args2params(['model', True, 'relevancy', 2], {'elim_and' : True})
+ (params model true relevancy 2 elim_and true)
+ """
+ if __debug__:
+ _z3_assert(len(arguments) % 2 == 0, "Argument list must have an even number of elements.")
+ prev = None
+ r = ParamsRef(ctx)
+ for a in arguments:
+ if prev is None:
+ prev = a
+ else:
+ r.set(prev, a)
+ prev = None
+ for k in keywords:
+ v = keywords[k]
+ r.set(k, v)
+ return r
+
+class ParamDescrsRef:
+ """Set of parameter descriptions for Solvers, Tactics and Simplifiers in Z3.
+ """
+ def __init__(self, descr, ctx=None):
+ _z3_assert(isinstance(descr, ParamDescrs), "parameter description object expected")
+ self.ctx = _get_ctx(ctx)
+ self.descr = descr
+ Z3_param_descrs_inc_ref(self.ctx.ref(), self.descr)
+
+ def __deepcopy__(self, memo={}):
+ return ParamsDescrsRef(self.descr, self.ctx)
+
+ def __del__(self):
+ if self.ctx.ref() is not None:
+ Z3_param_descrs_dec_ref(self.ctx.ref(), self.descr)
+
+ def size(self):
+ """Return the size of in the parameter description `self`.
+ """
+ return int(Z3_param_descrs_size(self.ctx.ref(), self.descr))
+
+ def __len__(self):
+ """Return the size of in the parameter description `self`.
+ """
+ return self.size()
+
+ def get_name(self, i):
+ """Return the i-th parameter name in the parameter description `self`.
+ """
+ return _symbol2py(self.ctx, Z3_param_descrs_get_name(self.ctx.ref(), self.descr, i))
+
+ def get_kind(self, n):
+ """Return the kind of the parameter named `n`.
+ """
+ return Z3_param_descrs_get_kind(self.ctx.ref(), self.descr, to_symbol(n, self.ctx))
+
+ def get_documentation(self, n):
+ """Return the documentation string of the parameter named `n`.
+ """
+ return Z3_param_descrs_get_documentation(self.ctx.ref(), self.descr, to_symbol(n, self.ctx))
+
+ def __getitem__(self, arg):
+ if _is_int(arg):
+ return self.get_name(arg)
+ else:
+ return self.get_kind(arg)
+
+ def __repr__(self):
+ return Z3_param_descrs_to_string(self.ctx.ref(), self.descr)
+
+#########################################
+#
+# Goals
+#
+#########################################
+
+class Goal(Z3PPObject):
+ """Goal is a collection of constraints we want to find a solution or show to be unsatisfiable (infeasible).
+
+ Goals are processed using Tactics. A Tactic transforms a goal into a set of subgoals.
+ A goal has a solution if one of its subgoals has a solution.
+ A goal is unsatisfiable if all subgoals are unsatisfiable.
+ """
+
+ def __init__(self, models=True, unsat_cores=False, proofs=False, ctx=None, goal=None):
+ if __debug__:
+ _z3_assert(goal is None or ctx is not None, "If goal is different from None, then ctx must be also different from None")
+ self.ctx = _get_ctx(ctx)
+ self.goal = goal
+ if self.goal is None:
+ self.goal = Z3_mk_goal(self.ctx.ref(), models, unsat_cores, proofs)
+ Z3_goal_inc_ref(self.ctx.ref(), self.goal)
+
+ def __deepcopy__(self, memo={}):
+ return Goal(False, False, False, self.ctx, self.goal)
+
+ def __del__(self):
+ if self.goal is not None and self.ctx.ref() is not None:
+ Z3_goal_dec_ref(self.ctx.ref(), self.goal)
+
+ def depth(self):
+ """Return the depth of the goal `self`. The depth corresponds to the number of tactics applied to `self`.
+
+ >>> x, y = Ints('x y')
+ >>> g = Goal()
+ >>> g.add(x == 0, y >= x + 1)
+ >>> g.depth()
+ 0
+ >>> r = Then('simplify', 'solve-eqs')(g)
+ >>> # r has 1 subgoal
+ >>> len(r)
+ 1
+ >>> r[0].depth()
+ 2
+ """
+ return int(Z3_goal_depth(self.ctx.ref(), self.goal))
+
+ def inconsistent(self):
+ """Return `True` if `self` contains the `False` constraints.
+
+ >>> x, y = Ints('x y')
+ >>> g = Goal()
+ >>> g.inconsistent()
+ False
+ >>> g.add(x == 0, x == 1)
+ >>> g
+ [x == 0, x == 1]
+ >>> g.inconsistent()
+ False
+ >>> g2 = Tactic('propagate-values')(g)[0]
+ >>> g2.inconsistent()
+ True
+ """
+ return Z3_goal_inconsistent(self.ctx.ref(), self.goal)
+
+ def prec(self):
+ """Return the precision (under-approximation, over-approximation, or precise) of the goal `self`.
+
+ >>> g = Goal()
+ >>> g.prec() == Z3_GOAL_PRECISE
+ True
+ >>> x, y = Ints('x y')
+ >>> g.add(x == y + 1)
+ >>> g.prec() == Z3_GOAL_PRECISE
+ True
+ >>> t = With(Tactic('add-bounds'), add_bound_lower=0, add_bound_upper=10)
+ >>> g2 = t(g)[0]
+ >>> g2
+ [x == y + 1, x <= 10, x >= 0, y <= 10, y >= 0]
+ >>> g2.prec() == Z3_GOAL_PRECISE
+ False
+ >>> g2.prec() == Z3_GOAL_UNDER
+ True
+ """
+ return Z3_goal_precision(self.ctx.ref(), self.goal)
+
+ def precision(self):
+ """Alias for `prec()`.
+
+ >>> g = Goal()
+ >>> g.precision() == Z3_GOAL_PRECISE
+ True
+ """
+ return self.prec()
+
+ def size(self):
+ """Return the number of constraints in the goal `self`.
+
+ >>> g = Goal()
+ >>> g.size()
+ 0
+ >>> x, y = Ints('x y')
+ >>> g.add(x == 0, y > x)
+ >>> g.size()
+ 2
+ """
+ return int(Z3_goal_size(self.ctx.ref(), self.goal))
+
+ def __len__(self):
+ """Return the number of constraints in the goal `self`.
+
+ >>> g = Goal()
+ >>> len(g)
+ 0
+ >>> x, y = Ints('x y')
+ >>> g.add(x == 0, y > x)
+ >>> len(g)
+ 2
+ """
+ return self.size()
+
+ def get(self, i):
+ """Return a constraint in the goal `self`.
+
+ >>> g = Goal()
+ >>> x, y = Ints('x y')
+ >>> g.add(x == 0, y > x)
+ >>> g.get(0)
+ x == 0
+ >>> g.get(1)
+ y > x
+ """
+ return _to_expr_ref(Z3_goal_formula(self.ctx.ref(), self.goal, i), self.ctx)
+
+ def __getitem__(self, arg):
+ """Return a constraint in the goal `self`.
+
+ >>> g = Goal()
+ >>> x, y = Ints('x y')
+ >>> g.add(x == 0, y > x)
+ >>> g[0]
+ x == 0
+ >>> g[1]
+ y > x
+ """
+ if arg >= len(self):
+ raise IndexError
+ return self.get(arg)
+
+ def assert_exprs(self, *args):
+ """Assert constraints into the goal.
+
+ >>> x = Int('x')
+ >>> g = Goal()
+ >>> g.assert_exprs(x > 0, x < 2)
+ >>> g
+ [x > 0, x < 2]
+ """
+ args = _get_args(args)
+ s = BoolSort(self.ctx)
+ for arg in args:
+ arg = s.cast(arg)
+ Z3_goal_assert(self.ctx.ref(), self.goal, arg.as_ast())
+
+ def append(self, *args):
+ """Add constraints.
+
+ >>> x = Int('x')
+ >>> g = Goal()
+ >>> g.append(x > 0, x < 2)
+ >>> g
+ [x > 0, x < 2]
+ """
+ self.assert_exprs(*args)
+
+ def insert(self, *args):
+ """Add constraints.
+
+ >>> x = Int('x')
+ >>> g = Goal()
+ >>> g.insert(x > 0, x < 2)
+ >>> g
+ [x > 0, x < 2]
+ """
+ self.assert_exprs(*args)
+
+ def add(self, *args):
+ """Add constraints.
+
+ >>> x = Int('x')
+ >>> g = Goal()
+ >>> g.add(x > 0, x < 2)
+ >>> g
+ [x > 0, x < 2]
+ """
+ self.assert_exprs(*args)
+
+ def __repr__(self):
+ return obj_to_string(self)
+
+ def sexpr(self):
+ """Return a textual representation of the s-expression representing the goal."""
+ return Z3_goal_to_string(self.ctx.ref(), self.goal)
+
+ def translate(self, target):
+ """Copy goal `self` to context `target`.
+
+ >>> x = Int('x')
+ >>> g = Goal()
+ >>> g.add(x > 10)
+ >>> g
+ [x > 10]
+ >>> c2 = Context()
+ >>> g2 = g.translate(c2)
+ >>> g2
+ [x > 10]
+ >>> g.ctx == main_ctx()
+ True
+ >>> g2.ctx == c2
+ True
+ >>> g2.ctx == main_ctx()
+ False
+ """
+ if __debug__:
+ _z3_assert(isinstance(target, Context), "target must be a context")
+ return Goal(goal=Z3_goal_translate(self.ctx.ref(), self.goal, target.ref()), ctx=target)
+
+ def simplify(self, *arguments, **keywords):
+ """Return a new simplified goal.
+
+ This method is essentially invoking the simplify tactic.
+
+ >>> g = Goal()
+ >>> x = Int('x')
+ >>> g.add(x + 1 >= 2)
+ >>> g
+ [x + 1 >= 2]
+ >>> g2 = g.simplify()
+ >>> g2
+ [x >= 1]
+ >>> # g was not modified
+ >>> g
+ [x + 1 >= 2]
+ """
+ t = Tactic('simplify')
+ return t.apply(self, *arguments, **keywords)[0]
+
+ def as_expr(self):
+ """Return goal `self` as a single Z3 expression.
+
+ >>> x = Int('x')
+ >>> g = Goal()
+ >>> g.as_expr()
+ True
+ >>> g.add(x > 1)
+ >>> g.as_expr()
+ x > 1
+ >>> g.add(x < 10)
+ >>> g.as_expr()
+ And(x > 1, x < 10)
+ """
+ sz = len(self)
+ if sz == 0:
+ return BoolVal(True, self.ctx)
+ elif sz == 1:
+ return self.get(0)
+ else:
+ return And([ self.get(i) for i in range(len(self)) ], self.ctx)
+
+#########################################
+#
+# AST Vector
+#
+#########################################
+class AstVector(Z3PPObject):
+ """A collection (vector) of ASTs."""
+
+ def __init__(self, v=None, ctx=None):
+ self.vector = None
+ if v is None:
+ self.ctx = _get_ctx(ctx)
+ self.vector = Z3_mk_ast_vector(self.ctx.ref())
+ else:
+ self.vector = v
+ assert ctx is not None
+ self.ctx = ctx
+ Z3_ast_vector_inc_ref(self.ctx.ref(), self.vector)
+
+ def __deepcopy__(self, memo={}):
+ return AstVector(self.vector, self.ctx)
+
+ def __del__(self):
+ if self.vector is not None and self.ctx.ref() is not None:
+ Z3_ast_vector_dec_ref(self.ctx.ref(), self.vector)
+
+ def __len__(self):
+ """Return the size of the vector `self`.
+
+ >>> A = AstVector()
+ >>> len(A)
+ 0
+ >>> A.push(Int('x'))
+ >>> A.push(Int('x'))
+ >>> len(A)
+ 2
+ """
+ return int(Z3_ast_vector_size(self.ctx.ref(), self.vector))
+
+ def __getitem__(self, i):
+ """Return the AST at position `i`.
+
+ >>> A = AstVector()
+ >>> A.push(Int('x') + 1)
+ >>> A.push(Int('y'))
+ >>> A[0]
+ x + 1
+ >>> A[1]
+ y
+ """
+ if i >= self.__len__():
+ raise IndexError
+ return _to_ast_ref(Z3_ast_vector_get(self.ctx.ref(), self.vector, i), self.ctx)
+
+ def __setitem__(self, i, v):
+ """Update AST at position `i`.
+
+ >>> A = AstVector()
+ >>> A.push(Int('x') + 1)
+ >>> A.push(Int('y'))
+ >>> A[0]
+ x + 1
+ >>> A[0] = Int('x')
+ >>> A[0]
+ x
+ """
+ if i >= self.__len__():
+ raise IndexError
+ Z3_ast_vector_set(self.ctx.ref(), self.vector, i, v.as_ast())
+
+ def push(self, v):
+ """Add `v` in the end of the vector.
+
+ >>> A = AstVector()
+ >>> len(A)
+ 0
+ >>> A.push(Int('x'))
+ >>> len(A)
+ 1
+ """
+ Z3_ast_vector_push(self.ctx.ref(), self.vector, v.as_ast())
+
+ def resize(self, sz):
+ """Resize the vector to `sz` elements.
+
+ >>> A = AstVector()
+ >>> A.resize(10)
+ >>> len(A)
+ 10
+ >>> for i in range(10): A[i] = Int('x')
+ >>> A[5]
+ x
+ """
+ Z3_ast_vector_resize(self.ctx.ref(), self.vector, sz)
+
+ def __contains__(self, item):
+ """Return `True` if the vector contains `item`.
+
+ >>> x = Int('x')
+ >>> A = AstVector()
+ >>> x in A
+ False
+ >>> A.push(x)
+ >>> x in A
+ True
+ >>> (x+1) in A
+ False
+ >>> A.push(x+1)
+ >>> (x+1) in A
+ True
+ >>> A
+ [x, x + 1]
+ """
+ for elem in self:
+ if elem.eq(item):
+ return True
+ return False
+
+ def translate(self, other_ctx):
+ """Copy vector `self` to context `other_ctx`.
+
+ >>> x = Int('x')
+ >>> A = AstVector()
+ >>> A.push(x)
+ >>> c2 = Context()
+ >>> B = A.translate(c2)
+ >>> B
+ [x]
+ """
+ return AstVector(Z3_ast_vector_translate(self.ctx.ref(), self.vector, other_ctx.ref()), other_ctx)
+
+ def __repr__(self):
+ return obj_to_string(self)
+
+ def sexpr(self):
+ """Return a textual representation of the s-expression representing the vector."""
+ return Z3_ast_vector_to_string(self.ctx.ref(), self.vector)
+
+#########################################
+#
+# AST Map
+#
+#########################################
+class AstMap:
+ """A mapping from ASTs to ASTs."""
+
+ def __init__(self, m=None, ctx=None):
+ self.map = None
+ if m is None:
+ self.ctx = _get_ctx(ctx)
+ self.map = Z3_mk_ast_map(self.ctx.ref())
+ else:
+ self.map = m
+ assert ctx is not None
+ self.ctx = ctx
+ Z3_ast_map_inc_ref(self.ctx.ref(), self.map)
+
+ def __deepcopy__(self, memo={}):
+ return AstMap(self.map, self.ctx)
+
+ def __del__(self):
+ if self.map is not None and self.ctx.ref() is not None:
+ Z3_ast_map_dec_ref(self.ctx.ref(), self.map)
+
+ def __len__(self):
+ """Return the size of the map.
+
+ >>> M = AstMap()
+ >>> len(M)
+ 0
+ >>> x = Int('x')
+ >>> M[x] = IntVal(1)
+ >>> len(M)
+ 1
+ """
+ return int(Z3_ast_map_size(self.ctx.ref(), self.map))
+
+ def __contains__(self, key):
+ """Return `True` if the map contains key `key`.
+
+ >>> M = AstMap()
+ >>> x = Int('x')
+ >>> M[x] = x + 1
+ >>> x in M
+ True
+ >>> x+1 in M
+ False
+ """
+ return Z3_ast_map_contains(self.ctx.ref(), self.map, key.as_ast())
+
+ def __getitem__(self, key):
+ """Retrieve the value associated with key `key`.
+
+ >>> M = AstMap()
+ >>> x = Int('x')
+ >>> M[x] = x + 1
+ >>> M[x]
+ x + 1
+ """
+ return _to_ast_ref(Z3_ast_map_find(self.ctx.ref(), self.map, key.as_ast()), self.ctx)
+
+ def __setitem__(self, k, v):
+ """Add/Update key `k` with value `v`.
+
+ >>> M = AstMap()
+ >>> x = Int('x')
+ >>> M[x] = x + 1
+ >>> len(M)
+ 1
+ >>> M[x]
+ x + 1
+ >>> M[x] = IntVal(1)
+ >>> M[x]
+ 1
+ """
+ Z3_ast_map_insert(self.ctx.ref(), self.map, k.as_ast(), v.as_ast())
+
+ def __repr__(self):
+ return Z3_ast_map_to_string(self.ctx.ref(), self.map)
+
+ def erase(self, k):
+ """Remove the entry associated with key `k`.
+
+ >>> M = AstMap()
+ >>> x = Int('x')
+ >>> M[x] = x + 1
+ >>> len(M)
+ 1
+ >>> M.erase(x)
+ >>> len(M)
+ 0
+ """
+ Z3_ast_map_erase(self.ctx.ref(), self.map, k.as_ast())
+
+ def reset(self):
+ """Remove all entries from the map.
+
+ >>> M = AstMap()
+ >>> x = Int('x')
+ >>> M[x] = x + 1
+ >>> M[x+x] = IntVal(1)
+ >>> len(M)
+ 2
+ >>> M.reset()
+ >>> len(M)
+ 0
+ """
+ Z3_ast_map_reset(self.ctx.ref(), self.map)
+
+ def keys(self):
+ """Return an AstVector containing all keys in the map.
+
+ >>> M = AstMap()
+ >>> x = Int('x')
+ >>> M[x] = x + 1
+ >>> M[x+x] = IntVal(1)
+ >>> M.keys()
+ [x, x + x]
+ """
+ return AstVector(Z3_ast_map_keys(self.ctx.ref(), self.map), self.ctx)
+
+#########################################
+#
+# Model
+#
+#########################################
+
+class FuncEntry:
+ """Store the value of the interpretation of a function in a particular point."""
+
+ def __init__(self, entry, ctx):
+ self.entry = entry
+ self.ctx = ctx
+ Z3_func_entry_inc_ref(self.ctx.ref(), self.entry)
+
+ def __deepcopy__(self, memo={}):
+ return FuncEntry(self.entry, self.ctx)
+
+ def __del__(self):
+ if self.ctx.ref() is not None:
+ Z3_func_entry_dec_ref(self.ctx.ref(), self.entry)
+
+ def num_args(self):
+ """Return the number of arguments in the given entry.
+
+ >>> f = Function('f', IntSort(), IntSort(), IntSort())
+ >>> s = Solver()
+ >>> s.add(f(0, 1) == 10, f(1, 2) == 20, f(1, 0) == 10)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> f_i = m[f]
+ >>> f_i.num_entries()
+ 3
+ >>> e = f_i.entry(0)
+ >>> e.num_args()
+ 2
+ """
+ return int(Z3_func_entry_get_num_args(self.ctx.ref(), self.entry))
+
+ def arg_value(self, idx):
+ """Return the value of argument `idx`.
+
+ >>> f = Function('f', IntSort(), IntSort(), IntSort())
+ >>> s = Solver()
+ >>> s.add(f(0, 1) == 10, f(1, 2) == 20, f(1, 0) == 10)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> f_i = m[f]
+ >>> f_i.num_entries()
+ 3
+ >>> e = f_i.entry(0)
+ >>> e
+ [0, 1, 10]
+ >>> e.num_args()
+ 2
+ >>> e.arg_value(0)
+ 0
+ >>> e.arg_value(1)
+ 1
+ >>> try:
+ ... e.arg_value(2)
+ ... except IndexError:
+ ... print("index error")
+ index error
+ """
+ if idx >= self.num_args():
+ raise IndexError
+ return _to_expr_ref(Z3_func_entry_get_arg(self.ctx.ref(), self.entry, idx), self.ctx)
+
+ def value(self):
+ """Return the value of the function at point `self`.
+
+ >>> f = Function('f', IntSort(), IntSort(), IntSort())
+ >>> s = Solver()
+ >>> s.add(f(0, 1) == 10, f(1, 2) == 20, f(1, 0) == 10)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> f_i = m[f]
+ >>> f_i.num_entries()
+ 3
+ >>> e = f_i.entry(0)
+ >>> e
+ [0, 1, 10]
+ >>> e.num_args()
+ 2
+ >>> e.value()
+ 10
+ """
+ return _to_expr_ref(Z3_func_entry_get_value(self.ctx.ref(), self.entry), self.ctx)
+
+ def as_list(self):
+ """Return entry `self` as a Python list.
+ >>> f = Function('f', IntSort(), IntSort(), IntSort())
+ >>> s = Solver()
+ >>> s.add(f(0, 1) == 10, f(1, 2) == 20, f(1, 0) == 10)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> f_i = m[f]
+ >>> f_i.num_entries()
+ 3
+ >>> e = f_i.entry(0)
+ >>> e.as_list()
+ [0, 1, 10]
+ """
+ args = [ self.arg_value(i) for i in range(self.num_args())]
+ args.append(self.value())
+ return args
+
+ def __repr__(self):
+ return repr(self.as_list())
+
+class FuncInterp(Z3PPObject):
+ """Stores the interpretation of a function in a Z3 model."""
+
+ def __init__(self, f, ctx):
+ self.f = f
+ self.ctx = ctx
+ if self.f is not None:
+ Z3_func_interp_inc_ref(self.ctx.ref(), self.f)
+
+ def __deepcopy__(self, memo={}):
+ return FuncInterp(self.f, self.ctx)
+
+ def __del__(self):
+ if self.f is not None and self.ctx.ref() is not None:
+ Z3_func_interp_dec_ref(self.ctx.ref(), self.f)
+
+ def else_value(self):
+ """
+ Return the `else` value for a function interpretation.
+ Return None if Z3 did not specify the `else` value for
+ this object.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> s = Solver()
+ >>> s.add(f(0) == 1, f(1) == 1, f(2) == 0)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> m[f]
+ [0 -> 1, 1 -> 1, 2 -> 0, else -> 1]
+ >>> m[f].else_value()
+ 1
+ """
+ r = Z3_func_interp_get_else(self.ctx.ref(), self.f)
+ if r:
+ return _to_expr_ref(r, self.ctx)
+ else:
+ return None
+
+ def num_entries(self):
+ """Return the number of entries/points in the function interpretation `self`.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> s = Solver()
+ >>> s.add(f(0) == 1, f(1) == 1, f(2) == 0)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> m[f]
+ [0 -> 1, 1 -> 1, 2 -> 0, else -> 1]
+ >>> m[f].num_entries()
+ 3
+ """
+ return int(Z3_func_interp_get_num_entries(self.ctx.ref(), self.f))
+
+ def arity(self):
+ """Return the number of arguments for each entry in the function interpretation `self`.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> s = Solver()
+ >>> s.add(f(0) == 1, f(1) == 1, f(2) == 0)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> m[f].arity()
+ 1
+ """
+ return int(Z3_func_interp_get_arity(self.ctx.ref(), self.f))
+
+ def entry(self, idx):
+ """Return an entry at position `idx < self.num_entries()` in the function interpretation `self`.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> s = Solver()
+ >>> s.add(f(0) == 1, f(1) == 1, f(2) == 0)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> m[f]
+ [0 -> 1, 1 -> 1, 2 -> 0, else -> 1]
+ >>> m[f].num_entries()
+ 3
+ >>> m[f].entry(0)
+ [0, 1]
+ >>> m[f].entry(1)
+ [1, 1]
+ >>> m[f].entry(2)
+ [2, 0]
+ """
+ if idx >= self.num_entries():
+ raise IndexError
+ return FuncEntry(Z3_func_interp_get_entry(self.ctx.ref(), self.f, idx), self.ctx)
+
+ def as_list(self):
+ """Return the function interpretation as a Python list.
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> s = Solver()
+ >>> s.add(f(0) == 1, f(1) == 1, f(2) == 0)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> m[f]
+ [0 -> 1, 1 -> 1, 2 -> 0, else -> 1]
+ >>> m[f].as_list()
+ [[0, 1], [1, 1], [2, 0], 1]
+ """
+ r = [ self.entry(i).as_list() for i in range(self.num_entries())]
+ r.append(self.else_value())
+ return r
+
+ def __repr__(self):
+ return obj_to_string(self)
+
+class ModelRef(Z3PPObject):
+ """Model/Solution of a satisfiability problem (aka system of constraints)."""
+
+ def __init__(self, m, ctx):
+ assert ctx is not None
+ self.model = m
+ self.ctx = ctx
+ Z3_model_inc_ref(self.ctx.ref(), self.model)
+
+ def __deepcopy__(self, memo={}):
+ return ModelRef(self.m, self.ctx)
+
+ def __del__(self):
+ if self.ctx.ref() is not None:
+ Z3_model_dec_ref(self.ctx.ref(), self.model)
+
+ def __repr__(self):
+ return obj_to_string(self)
+
+ def sexpr(self):
+ """Return a textual representation of the s-expression representing the model."""
+ return Z3_model_to_string(self.ctx.ref(), self.model)
+
+ def eval(self, t, model_completion=False):
+ """Evaluate the expression `t` in the model `self`. If `model_completion` is enabled, then a default interpretation is automatically added for symbols that do not have an interpretation in the model `self`.
+
+ >>> x = Int('x')
+ >>> s = Solver()
+ >>> s.add(x > 0, x < 2)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> m.eval(x + 1)
+ 2
+ >>> m.eval(x == 1)
+ True
+ >>> y = Int('y')
+ >>> m.eval(y + x)
+ 1 + y
+ >>> m.eval(y)
+ y
+ >>> m.eval(y, model_completion=True)
+ 0
+ >>> # Now, m contains an interpretation for y
+ >>> m.eval(y + x)
+ 1
+ """
+ r = (Ast * 1)()
+ if Z3_model_eval(self.ctx.ref(), self.model, t.as_ast(), model_completion, r):
+ return _to_expr_ref(r[0], self.ctx)
+ raise Z3Exception("failed to evaluate expression in the model")
+
+ def evaluate(self, t, model_completion=False):
+ """Alias for `eval`.
+
+ >>> x = Int('x')
+ >>> s = Solver()
+ >>> s.add(x > 0, x < 2)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> m.evaluate(x + 1)
+ 2
+ >>> m.evaluate(x == 1)
+ True
+ >>> y = Int('y')
+ >>> m.evaluate(y + x)
+ 1 + y
+ >>> m.evaluate(y)
+ y
+ >>> m.evaluate(y, model_completion=True)
+ 0
+ >>> # Now, m contains an interpretation for y
+ >>> m.evaluate(y + x)
+ 1
+ """
+ return self.eval(t, model_completion)
+
+ def __len__(self):
+ """Return the number of constant and function declarations in the model `self`.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> s = Solver()
+ >>> s.add(x > 0, f(x) != x)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> len(m)
+ 2
+ """
+ return int(Z3_model_get_num_consts(self.ctx.ref(), self.model)) + int(Z3_model_get_num_funcs(self.ctx.ref(), self.model))
+
+ def get_interp(self, decl):
+ """Return the interpretation for a given declaration or constant.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> s = Solver()
+ >>> s.add(x > 0, x < 2, f(x) == 0)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> m[x]
+ 1
+ >>> m[f]
+ [1 -> 0, else -> 0]
+ """
+ if __debug__:
+ _z3_assert(isinstance(decl, FuncDeclRef) or is_const(decl), "Z3 declaration expected")
+ if is_const(decl):
+ decl = decl.decl()
+ try:
+ if decl.arity() == 0:
+ _r = Z3_model_get_const_interp(self.ctx.ref(), self.model, decl.ast)
+ if _r.value is None:
+ return None
+ r = _to_expr_ref(_r, self.ctx)
+ if is_as_array(r):
+ return self.get_interp(get_as_array_func(r))
+ else:
+ return r
+ else:
+ return FuncInterp(Z3_model_get_func_interp(self.ctx.ref(), self.model, decl.ast), self.ctx)
+ except Z3Exception:
+ return None
+
+ def num_sorts(self):
+ """Return the number of unintepreted sorts that contain an interpretation in the model `self`.
+
+ >>> A = DeclareSort('A')
+ >>> a, b = Consts('a b', A)
+ >>> s = Solver()
+ >>> s.add(a != b)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> m.num_sorts()
+ 1
+ """
+ return int(Z3_model_get_num_sorts(self.ctx.ref(), self.model))
+
+ def get_sort(self, idx):
+ """Return the unintepreted sort at position `idx` < self.num_sorts().
+
+ >>> A = DeclareSort('A')
+ >>> B = DeclareSort('B')
+ >>> a1, a2 = Consts('a1 a2', A)
+ >>> b1, b2 = Consts('b1 b2', B)
+ >>> s = Solver()
+ >>> s.add(a1 != a2, b1 != b2)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> m.num_sorts()
+ 2
+ >>> m.get_sort(0)
+ A
+ >>> m.get_sort(1)
+ B
+ """
+ if idx >= self.num_sorts():
+ raise IndexError
+ return _to_sort_ref(Z3_model_get_sort(self.ctx.ref(), self.model, idx), self.ctx)
+
+ def sorts(self):
+ """Return all uninterpreted sorts that have an interpretation in the model `self`.
+
+ >>> A = DeclareSort('A')
+ >>> B = DeclareSort('B')
+ >>> a1, a2 = Consts('a1 a2', A)
+ >>> b1, b2 = Consts('b1 b2', B)
+ >>> s = Solver()
+ >>> s.add(a1 != a2, b1 != b2)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> m.sorts()
+ [A, B]
+ """
+ return [ self.get_sort(i) for i in range(self.num_sorts()) ]
+
+ def get_universe(self, s):
+ """Return the intepretation for the uninterpreted sort `s` in the model `self`.
+
+ >>> A = DeclareSort('A')
+ >>> a, b = Consts('a b', A)
+ >>> s = Solver()
+ >>> s.add(a != b)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> m.get_universe(A)
+ [A!val!0, A!val!1]
+ """
+ if __debug__:
+ _z3_assert(isinstance(s, SortRef), "Z3 sort expected")
+ try:
+ return AstVector(Z3_model_get_sort_universe(self.ctx.ref(), self.model, s.ast), self.ctx)
+ except Z3Exception:
+ return None
+
+ def __getitem__(self, idx):
+ """If `idx` is an integer, then the declaration at position `idx` in the model `self` is returned. If `idx` is a declaration, then the actual interpreation is returned.
+
+ The elements can be retrieved using position or the actual declaration.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> s = Solver()
+ >>> s.add(x > 0, x < 2, f(x) == 0)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> len(m)
+ 2
+ >>> m[0]
+ x
+ >>> m[1]
+ f
+ >>> m[x]
+ 1
+ >>> m[f]
+ [1 -> 0, else -> 0]
+ >>> for d in m: print("%s -> %s" % (d, m[d]))
+ x -> 1
+ f -> [1 -> 0, else -> 0]
+ """
+ if _is_int(idx):
+ if idx >= len(self):
+ raise IndexError
+ num_consts = Z3_model_get_num_consts(self.ctx.ref(), self.model)
+ if (idx < num_consts):
+ return FuncDeclRef(Z3_model_get_const_decl(self.ctx.ref(), self.model, idx), self.ctx)
+ else:
+ return FuncDeclRef(Z3_model_get_func_decl(self.ctx.ref(), self.model, idx - num_consts), self.ctx)
+ if isinstance(idx, FuncDeclRef):
+ return self.get_interp(idx)
+ if is_const(idx):
+ return self.get_interp(idx.decl())
+ if isinstance(idx, SortRef):
+ return self.get_universe(idx)
+ if __debug__:
+ _z3_assert(False, "Integer, Z3 declaration, or Z3 constant expected")
+ return None
+
+ def decls(self):
+ """Return a list with all symbols that have an interpreation in the model `self`.
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> s = Solver()
+ >>> s.add(x > 0, x < 2, f(x) == 0)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> m.decls()
+ [x, f]
+ """
+ r = []
+ for i in range(Z3_model_get_num_consts(self.ctx.ref(), self.model)):
+ r.append(FuncDeclRef(Z3_model_get_const_decl(self.ctx.ref(), self.model, i), self.ctx))
+ for i in range(Z3_model_get_num_funcs(self.ctx.ref(), self.model)):
+ r.append(FuncDeclRef(Z3_model_get_func_decl(self.ctx.ref(), self.model, i), self.ctx))
+ return r
+
+def is_as_array(n):
+ """Return true if n is a Z3 expression of the form (_ as-array f)."""
+ return isinstance(n, ExprRef) and Z3_is_as_array(n.ctx.ref(), n.as_ast())
+
+def get_as_array_func(n):
+ """Return the function declaration f associated with a Z3 expression of the form (_ as-array f)."""
+ if __debug__:
+ _z3_assert(is_as_array(n), "as-array Z3 expression expected.")
+ return FuncDeclRef(Z3_get_as_array_func_decl(n.ctx.ref(), n.as_ast()), n.ctx)
+
+#########################################
+#
+# Statistics
+#
+#########################################
+class Statistics:
+ """Statistics for `Solver.check()`."""
+
+ def __init__(self, stats, ctx):
+ self.stats = stats
+ self.ctx = ctx
+ Z3_stats_inc_ref(self.ctx.ref(), self.stats)
+
+ def __deepcopy__(self, memo={}):
+ return Statistics(self.stats, self.ctx)
+
+ def __del__(self):
+ if self.ctx.ref() is not None:
+ Z3_stats_dec_ref(self.ctx.ref(), self.stats)
+
+ def __repr__(self):
+ if in_html_mode():
+ out = io.StringIO()
+ even = True
+ out.write(u('<table border="1" cellpadding="2" cellspacing="0">'))
+ for k, v in self:
+ if even:
+ out.write(u('<tr style="background-color:#CFCFCF">'))
+ even = False
+ else:
+ out.write(u('<tr>'))
+ even = True
+ out.write(u('<td>%s</td><td>%s</td></tr>' % (k, v)))
+ out.write(u('</table>'))
+ return out.getvalue()
+ else:
+ return Z3_stats_to_string(self.ctx.ref(), self.stats)
+
+ def __len__(self):
+ """Return the number of statistical counters.
+
+ >>> x = Int('x')
+ >>> s = Then('simplify', 'nlsat').solver()
+ >>> s.add(x > 0)
+ >>> s.check()
+ sat
+ >>> st = s.statistics()
+ >>> len(st)
+ 6
+ """
+ return int(Z3_stats_size(self.ctx.ref(), self.stats))
+
+ def __getitem__(self, idx):
+ """Return the value of statistical counter at position `idx`. The result is a pair (key, value).
+
+ >>> x = Int('x')
+ >>> s = Then('simplify', 'nlsat').solver()
+ >>> s.add(x > 0)
+ >>> s.check()
+ sat
+ >>> st = s.statistics()
+ >>> len(st)
+ 6
+ >>> st[0]
+ ('nlsat propagations', 2)
+ >>> st[1]
+ ('nlsat stages', 2)
+ """
+ if idx >= len(self):
+ raise IndexError
+ if Z3_stats_is_uint(self.ctx.ref(), self.stats, idx):
+ val = int(Z3_stats_get_uint_value(self.ctx.ref(), self.stats, idx))
+ else:
+ val = Z3_stats_get_double_value(self.ctx.ref(), self.stats, idx)
+ return (Z3_stats_get_key(self.ctx.ref(), self.stats, idx), val)
+
+ def keys(self):
+ """Return the list of statistical counters.
+
+ >>> x = Int('x')
+ >>> s = Then('simplify', 'nlsat').solver()
+ >>> s.add(x > 0)
+ >>> s.check()
+ sat
+ >>> st = s.statistics()
+ """
+ return [Z3_stats_get_key(self.ctx.ref(), self.stats, idx) for idx in range(len(self))]
+
+ def get_key_value(self, key):
+ """Return the value of a particular statistical counter.
+
+ >>> x = Int('x')
+ >>> s = Then('simplify', 'nlsat').solver()
+ >>> s.add(x > 0)
+ >>> s.check()
+ sat
+ >>> st = s.statistics()
+ >>> st.get_key_value('nlsat propagations')
+ 2
+ """
+ for idx in range(len(self)):
+ if key == Z3_stats_get_key(self.ctx.ref(), self.stats, idx):
+ if Z3_stats_is_uint(self.ctx.ref(), self.stats, idx):
+ return int(Z3_stats_get_uint_value(self.ctx.ref(), self.stats, idx))
+ else:
+ return Z3_stats_get_double_value(self.ctx.ref(), self.stats, idx)
+ raise Z3Exception("unknown key")
+
+ def __getattr__(self, name):
+ """Access the value of statistical using attributes.
+
+ Remark: to access a counter containing blank spaces (e.g., 'nlsat propagations'),
+ we should use '_' (e.g., 'nlsat_propagations').
+
+ >>> x = Int('x')
+ >>> s = Then('simplify', 'nlsat').solver()
+ >>> s.add(x > 0)
+ >>> s.check()
+ sat
+ >>> st = s.statistics()
+ >>> st.nlsat_propagations
+ 2
+ >>> st.nlsat_stages
+ 2
+ """
+ key = name.replace('_', ' ')
+ try:
+ return self.get_key_value(key)
+ except Z3Exception:
+ raise AttributeError
+
+#########################################
+#
+# Solver
+#
+#########################################
+class CheckSatResult:
+ """Represents the result of a satisfiability check: sat, unsat, unknown.
+
+ >>> s = Solver()
+ >>> s.check()
+ sat
+ >>> r = s.check()
+ >>> isinstance(r, CheckSatResult)
+ True
+ """
+
+ def __init__(self, r):
+ self.r = r
+
+ def __deepcopy__(self, memo={}):
+ return CheckSatResult(self.r)
+
+ def __eq__(self, other):
+ return isinstance(other, CheckSatResult) and self.r == other.r
+
+ def __ne__(self, other):
+ return not self.__eq__(other)
+
+ def __repr__(self):
+ if in_html_mode():
+ if self.r == Z3_L_TRUE:
+ return "<b>sat</b>"
+ elif self.r == Z3_L_FALSE:
+ return "<b>unsat</b>"
+ else:
+ return "<b>unknown</b>"
+ else:
+ if self.r == Z3_L_TRUE:
+ return "sat"
+ elif self.r == Z3_L_FALSE:
+ return "unsat"
+ else:
+ return "unknown"
+
+sat = CheckSatResult(Z3_L_TRUE)
+unsat = CheckSatResult(Z3_L_FALSE)
+unknown = CheckSatResult(Z3_L_UNDEF)
+
+class Solver(Z3PPObject):
+ """Solver API provides methods for implementing the main SMT 2.0 commands: push, pop, check, get-model, etc."""
+
+ def __init__(self, solver=None, ctx=None):
+ assert solver is None or ctx is not None
+ self.ctx = _get_ctx(ctx)
+ self.solver = None
+ if solver is None:
+ self.solver = Z3_mk_solver(self.ctx.ref())
+ else:
+ self.solver = solver
+ Z3_solver_inc_ref(self.ctx.ref(), self.solver)
+
+ def __deepcopy__(self, memo={}):
+ return Solver(self.solver, self.ctx)
+
+ def __del__(self):
+ if self.solver is not None and self.ctx.ref() is not None:
+ Z3_solver_dec_ref(self.ctx.ref(), self.solver)
+
+ def set(self, *args, **keys):
+ """Set a configuration option. The method `help()` return a string containing all available options.
+
+ >>> s = Solver()
+ >>> # The option MBQI can be set using three different approaches.
+ >>> s.set(mbqi=True)
+ >>> s.set('MBQI', True)
+ >>> s.set(':mbqi', True)
+ """
+ p = args2params(args, keys, self.ctx)
+ Z3_solver_set_params(self.ctx.ref(), self.solver, p.params)
+
+ def push(self):
+ """Create a backtracking point.
+
+ >>> x = Int('x')
+ >>> s = Solver()
+ >>> s.add(x > 0)
+ >>> s
+ [x > 0]
+ >>> s.push()
+ >>> s.add(x < 1)
+ >>> s
+ [x > 0, x < 1]
+ >>> s.check()
+ unsat
+ >>> s.pop()
+ >>> s.check()
+ sat
+ >>> s
+ [x > 0]
+ """
+ Z3_solver_push(self.ctx.ref(), self.solver)
+
+ def pop(self, num=1):
+ """Backtrack \c num backtracking points.
+
+ >>> x = Int('x')
+ >>> s = Solver()
+ >>> s.add(x > 0)
+ >>> s
+ [x > 0]
+ >>> s.push()
+ >>> s.add(x < 1)
+ >>> s
+ [x > 0, x < 1]
+ >>> s.check()
+ unsat
+ >>> s.pop()
+ >>> s.check()
+ sat
+ >>> s
+ [x > 0]
+ """
+ Z3_solver_pop(self.ctx.ref(), self.solver, num)
+
+ def num_scopes(self):
+ """Return the current number of backtracking points.
+
+ >>> s = Solver()
+ >>> s.num_scopes()
+ 0L
+ >>> s.push()
+ >>> s.num_scopes()
+ 1L
+ >>> s.push()
+ >>> s.num_scopes()
+ 2L
+ >>> s.pop()
+ >>> s.num_scopes()
+ 1L
+ """
+ return Z3_solver_get_num_scopes(self.ctx.ref(), self.solver)
+
+ def reset(self):
+ """Remove all asserted constraints and backtracking points created using `push()`.
+
+ >>> x = Int('x')
+ >>> s = Solver()
+ >>> s.add(x > 0)
+ >>> s
+ [x > 0]
+ >>> s.reset()
+ >>> s
+ []
+ """
+ Z3_solver_reset(self.ctx.ref(), self.solver)
+
+ def assert_exprs(self, *args):
+ """Assert constraints into the solver.
+
+ >>> x = Int('x')
+ >>> s = Solver()
+ >>> s.assert_exprs(x > 0, x < 2)
+ >>> s
+ [x > 0, x < 2]
+ """
+ args = _get_args(args)
+ s = BoolSort(self.ctx)
+ for arg in args:
+ if isinstance(arg, Goal) or isinstance(arg, AstVector):
+ for f in arg:
+ Z3_solver_assert(self.ctx.ref(), self.solver, f.as_ast())
+ else:
+ arg = s.cast(arg)
+ Z3_solver_assert(self.ctx.ref(), self.solver, arg.as_ast())
+
+ def add(self, *args):
+ """Assert constraints into the solver.
+
+ >>> x = Int('x')
+ >>> s = Solver()
+ >>> s.add(x > 0, x < 2)
+ >>> s
+ [x > 0, x < 2]
+ """
+ self.assert_exprs(*args)
+
+ def __iadd__(self, fml):
+ self.add(fml)
+ return self
+
+ def append(self, *args):
+ """Assert constraints into the solver.
+
+ >>> x = Int('x')
+ >>> s = Solver()
+ >>> s.append(x > 0, x < 2)
+ >>> s
+ [x > 0, x < 2]
+ """
+ self.assert_exprs(*args)
+
+ def insert(self, *args):
+ """Assert constraints into the solver.
+
+ >>> x = Int('x')
+ >>> s = Solver()
+ >>> s.insert(x > 0, x < 2)
+ >>> s
+ [x > 0, x < 2]
+ """
+ self.assert_exprs(*args)
+
+ def assert_and_track(self, a, p):
+ """Assert constraint `a` and track it in the unsat core using the Boolean constant `p`.
+
+ If `p` is a string, it will be automatically converted into a Boolean constant.
+
+ >>> x = Int('x')
+ >>> p3 = Bool('p3')
+ >>> s = Solver()
+ >>> s.set(unsat_core=True)
+ >>> s.assert_and_track(x > 0, 'p1')
+ >>> s.assert_and_track(x != 1, 'p2')
+ >>> s.assert_and_track(x < 0, p3)
+ >>> print(s.check())
+ unsat
+ >>> c = s.unsat_core()
+ >>> len(c)
+ 2
+ >>> Bool('p1') in c
+ True
+ >>> Bool('p2') in c
+ False
+ >>> p3 in c
+ True
+ """
+ if isinstance(p, str):
+ p = Bool(p, self.ctx)
+ _z3_assert(isinstance(a, BoolRef), "Boolean expression expected")
+ _z3_assert(isinstance(p, BoolRef) and is_const(p), "Boolean expression expected")
+ Z3_solver_assert_and_track(self.ctx.ref(), self.solver, a.as_ast(), p.as_ast())
+
+ def check(self, *assumptions):
+ """Check whether the assertions in the given solver plus the optional assumptions are consistent or not.
+
+ >>> x = Int('x')
+ >>> s = Solver()
+ >>> s.check()
+ sat
+ >>> s.add(x > 0, x < 2)
+ >>> s.check()
+ sat
+ >>> s.model()
+ [x = 1]
+ >>> s.add(x < 1)
+ >>> s.check()
+ unsat
+ >>> s.reset()
+ >>> s.add(2**x == 4)
+ >>> s.check()
+ unknown
+ """
+ assumptions = _get_args(assumptions)
+ num = len(assumptions)
+ _assumptions = (Ast * num)()
+ for i in range(num):
+ _assumptions[i] = assumptions[i].as_ast()
+ r = Z3_solver_check_assumptions(self.ctx.ref(), self.solver, num, _assumptions)
+ return CheckSatResult(r)
+
+ def model(self):
+ """Return a model for the last `check()`.
+
+ This function raises an exception if
+ a model is not available (e.g., last `check()` returned unsat).
+
+ >>> s = Solver()
+ >>> a = Int('a')
+ >>> s.add(a + 2 == 0)
+ >>> s.check()
+ sat
+ >>> s.model()
+ [a = -2]
+ """
+ try:
+ return ModelRef(Z3_solver_get_model(self.ctx.ref(), self.solver), self.ctx)
+ except Z3Exception:
+ raise Z3Exception("model is not available")
+
+ def unsat_core(self):
+ """Return a subset (as an AST vector) of the assumptions provided to the last check().
+
+ These are the assumptions Z3 used in the unsatisfiability proof.
+ Assumptions are available in Z3. They are used to extract unsatisfiable cores.
+ They may be also used to "retract" assumptions. Note that, assumptions are not really
+ "soft constraints", but they can be used to implement them.
+
+ >>> p1, p2, p3 = Bools('p1 p2 p3')
+ >>> x, y = Ints('x y')
+ >>> s = Solver()
+ >>> s.add(Implies(p1, x > 0))
+ >>> s.add(Implies(p2, y > x))
+ >>> s.add(Implies(p2, y < 1))
+ >>> s.add(Implies(p3, y > -3))
+ >>> s.check(p1, p2, p3)
+ unsat
+ >>> core = s.unsat_core()
+ >>> len(core)
+ 2
+ >>> p1 in core
+ True
+ >>> p2 in core
+ True
+ >>> p3 in core
+ False
+ >>> # "Retracting" p2
+ >>> s.check(p1, p3)
+ sat
+ """
+ return AstVector(Z3_solver_get_unsat_core(self.ctx.ref(), self.solver), self.ctx)
+
+ def consequences(self, assumptions, variables):
+ """Determine fixed values for the variables based on the solver state and assumptions.
+ >>> s = Solver()
+ >>> a, b, c, d = Bools('a b c d')
+ >>> s.add(Implies(a,b), Implies(b, c))
+ >>> s.consequences([a],[b,c,d])
+ (sat, [Implies(a, b), Implies(a, c)])
+ >>> s.consequences([Not(c),d],[a,b,c,d])
+ (sat, [Implies(d, d), Implies(Not(c), Not(c)), Implies(Not(c), Not(b)), Implies(Not(c), Not(a))])
+ """
+ if isinstance(assumptions, list):
+ _asms = AstVector(None, self.ctx)
+ for a in assumptions:
+ _asms.push(a)
+ assumptions = _asms
+ if isinstance(variables, list):
+ _vars = AstVector(None, self.ctx)
+ for a in variables:
+ _vars.push(a)
+ variables = _vars
+ _z3_assert(isinstance(assumptions, AstVector), "ast vector expected")
+ _z3_assert(isinstance(variables, AstVector), "ast vector expected")
+ consequences = AstVector(None, self.ctx)
+ r = Z3_solver_get_consequences(self.ctx.ref(), self.solver, assumptions.vector, variables.vector, consequences.vector)
+ sz = len(consequences)
+ consequences = [ consequences[i] for i in range(sz) ]
+ return CheckSatResult(r), consequences
+
+ def from_file(self, filename):
+ """Parse assertions from a file"""
+ try:
+ Z3_solver_from_file(self.ctx.ref(), self.solver, filename)
+ except Z3Exception as e:
+ _handle_parse_error(e, self.ctx)
+
+ def from_string(self, s):
+ """Parse assertions from a string"""
+ try:
+ Z3_solver_from_string(self.ctx.ref(), self.solver, s)
+ except Z3Exception as e:
+ _handle_parse_error(e, self.ctx)
+
+ def proof(self):
+ """Return a proof for the last `check()`. Proof construction must be enabled."""
+ return _to_expr_ref(Z3_solver_get_proof(self.ctx.ref(), self.solver), self.ctx)
+
+ def assertions(self):
+ """Return an AST vector containing all added constraints.
+
+ >>> s = Solver()
+ >>> s.assertions()
+ []
+ >>> a = Int('a')
+ >>> s.add(a > 0)
+ >>> s.add(a < 10)
+ >>> s.assertions()
+ [a > 0, a < 10]
+ """
+ return AstVector(Z3_solver_get_assertions(self.ctx.ref(), self.solver), self.ctx)
+
+ def statistics(self):
+ """Return statistics for the last `check()`.
+
+ >>> s = SimpleSolver()
+ >>> x = Int('x')
+ >>> s.add(x > 0)
+ >>> s.check()
+ sat
+ >>> st = s.statistics()
+ >>> st.get_key_value('final checks')
+ 1
+ >>> len(st) > 0
+ True
+ >>> st[0] != 0
+ True
+ """
+ return Statistics(Z3_solver_get_statistics(self.ctx.ref(), self.solver), self.ctx)
+
+ def reason_unknown(self):
+ """Return a string describing why the last `check()` returned `unknown`.
+
+ >>> x = Int('x')
+ >>> s = SimpleSolver()
+ >>> s.add(2**x == 4)
+ >>> s.check()
+ unknown
+ >>> s.reason_unknown()
+ '(incomplete (theory arithmetic))'
+ """
+ return Z3_solver_get_reason_unknown(self.ctx.ref(), self.solver)
+
+ def help(self):
+ """Display a string describing all available options."""
+ print(Z3_solver_get_help(self.ctx.ref(), self.solver))
+
+ def param_descrs(self):
+ """Return the parameter description set."""
+ return ParamDescrsRef(Z3_solver_get_param_descrs(self.ctx.ref(), self.solver), self.ctx)
+
+ def __repr__(self):
+ """Return a formatted string with all added constraints."""
+ return obj_to_string(self)
+
+ def translate(self, target):
+ """Translate `self` to the context `target`. That is, return a copy of `self` in the context `target`.
+
+ >>> c1 = Context()
+ >>> c2 = Context()
+ >>> s1 = Solver(ctx=c1)
+ >>> s2 = s1.translate(c2)
+ """
+ if __debug__:
+ _z3_assert(isinstance(target, Context), "argument must be a Z3 context")
+ solver = Z3_solver_translate(self.ctx.ref(), self.solver, target.ref())
+ return Solver(solver, target)
+
+ def sexpr(self):
+ """Return a formatted string (in Lisp-like format) with all added constraints. We say the string is in s-expression format.
+
+ >>> x = Int('x')
+ >>> s = Solver()
+ >>> s.add(x > 0)
+ >>> s.add(x < 2)
+ >>> r = s.sexpr()
+ """
+ return Z3_solver_to_string(self.ctx.ref(), self.solver)
+
+ def to_smt2(self):
+ """return SMTLIB2 formatted benchmark for solver's assertions"""
+ es = self.assertions()
+ sz = len(es)
+ sz1 = sz
+ if sz1 > 0:
+ sz1 -= 1
+ v = (Ast * sz1)()
+ for i in range(sz1):
+ v[i] = es[i].as_ast()
+ if sz > 0:
+ e = es[sz1].as_ast()
+ else:
+ e = BoolVal(True, self.ctx).as_ast()
+ return Z3_benchmark_to_smtlib_string(self.ctx.ref(), "benchmark generated from python API", "", "unknown", "", sz1, v, e)
+
+def SolverFor(logic, ctx=None):
+ """Create a solver customized for the given logic.
+
+ The parameter `logic` is a string. It should be contains
+ the name of a SMT-LIB logic.
+ See http://www.smtlib.org/ for the name of all available logics.
+
+ >>> s = SolverFor("QF_LIA")
+ >>> x = Int('x')
+ >>> s.add(x > 0)
+ >>> s.add(x < 2)
+ >>> s.check()
+ sat
+ >>> s.model()
+ [x = 1]
+ """
+ ctx = _get_ctx(ctx)
+ logic = to_symbol(logic)
+ return Solver(Z3_mk_solver_for_logic(ctx.ref(), logic), ctx)
+
+def SimpleSolver(ctx=None):
+ """Return a simple general purpose solver with limited amount of preprocessing.
+
+ >>> s = SimpleSolver()
+ >>> x = Int('x')
+ >>> s.add(x > 0)
+ >>> s.check()
+ sat
+ """
+ ctx = _get_ctx(ctx)
+ return Solver(Z3_mk_simple_solver(ctx.ref()), ctx)
+
+#########################################
+#
+# Fixedpoint
+#
+#########################################
+
+class Fixedpoint(Z3PPObject):
+ """Fixedpoint API provides methods for solving with recursive predicates"""
+
+ def __init__(self, fixedpoint=None, ctx=None):
+ assert fixedpoint is None or ctx is not None
+ self.ctx = _get_ctx(ctx)
+ self.fixedpoint = None
+ if fixedpoint is None:
+ self.fixedpoint = Z3_mk_fixedpoint(self.ctx.ref())
+ else:
+ self.fixedpoint = fixedpoint
+ Z3_fixedpoint_inc_ref(self.ctx.ref(), self.fixedpoint)
+ self.vars = []
+
+ def __deepcopy__(self, memo={}):
+ return FixedPoint(self.fixedpoint, self.ctx)
+
+ def __del__(self):
+ if self.fixedpoint is not None and self.ctx.ref() is not None:
+ Z3_fixedpoint_dec_ref(self.ctx.ref(), self.fixedpoint)
+
+ def set(self, *args, **keys):
+ """Set a configuration option. The method `help()` return a string containing all available options.
+ """
+ p = args2params(args, keys, self.ctx)
+ Z3_fixedpoint_set_params(self.ctx.ref(), self.fixedpoint, p.params)
+
+ def help(self):
+ """Display a string describing all available options."""
+ print(Z3_fixedpoint_get_help(self.ctx.ref(), self.fixedpoint))
+
+ def param_descrs(self):
+ """Return the parameter description set."""
+ return ParamDescrsRef(Z3_fixedpoint_get_param_descrs(self.ctx.ref(), self.fixedpoint), self.ctx)
+
+ def assert_exprs(self, *args):
+ """Assert constraints as background axioms for the fixedpoint solver."""
+ args = _get_args(args)
+ s = BoolSort(self.ctx)
+ for arg in args:
+ if isinstance(arg, Goal) or isinstance(arg, AstVector):
+ for f in arg:
+ f = self.abstract(f)
+ Z3_fixedpoint_assert(self.ctx.ref(), self.fixedpoint, f.as_ast())
+ else:
+ arg = s.cast(arg)
+ arg = self.abstract(arg)
+ Z3_fixedpoint_assert(self.ctx.ref(), self.fixedpoint, arg.as_ast())
+
+ def add(self, *args):
+ """Assert constraints as background axioms for the fixedpoint solver. Alias for assert_expr."""
+ self.assert_exprs(*args)
+
+ def __iadd__(self, fml):
+ self.add(fml)
+ return self
+
+ def append(self, *args):
+ """Assert constraints as background axioms for the fixedpoint solver. Alias for assert_expr."""
+ self.assert_exprs(*args)
+
+ def insert(self, *args):
+ """Assert constraints as background axioms for the fixedpoint solver. Alias for assert_expr."""
+ self.assert_exprs(*args)
+
+ def add_rule(self, head, body = None, name = None):
+ """Assert rules defining recursive predicates to the fixedpoint solver.
+ >>> a = Bool('a')
+ >>> b = Bool('b')
+ >>> s = Fixedpoint()
+ >>> s.register_relation(a.decl())
+ >>> s.register_relation(b.decl())
+ >>> s.fact(a)
+ >>> s.rule(b, a)
+ >>> s.query(b)
+ sat
+ """
+ if name is None:
+ name = ""
+ name = to_symbol(name, self.ctx)
+ if body is None:
+ head = self.abstract(head)
+ Z3_fixedpoint_add_rule(self.ctx.ref(), self.fixedpoint, head.as_ast(), name)
+ else:
+ body = _get_args(body)
+ f = self.abstract(Implies(And(body, self.ctx),head))
+ Z3_fixedpoint_add_rule(self.ctx.ref(), self.fixedpoint, f.as_ast(), name)
+
+ def rule(self, head, body = None, name = None):
+ """Assert rules defining recursive predicates to the fixedpoint solver. Alias for add_rule."""
+ self.add_rule(head, body, name)
+
+ def fact(self, head, name = None):
+ """Assert facts defining recursive predicates to the fixedpoint solver. Alias for add_rule."""
+ self.add_rule(head, None, name)
+
+ def query(self, *query):
+ """Query the fixedpoint engine whether formula is derivable.
+ You can also pass an tuple or list of recursive predicates.
+ """
+ query = _get_args(query)
+ sz = len(query)
+ if sz >= 1 and isinstance(query[0], FuncDeclRef):
+ _decls = (FuncDecl * sz)()
+ i = 0
+ for q in query:
+ _decls[i] = q.ast
+ i = i + 1
+ r = Z3_fixedpoint_query_relations(self.ctx.ref(), self.fixedpoint, sz, _decls)
+ else:
+ if sz == 1:
+ query = query[0]
+ else:
+ query = And(query, self.ctx)
+ query = self.abstract(query, False)
+ r = Z3_fixedpoint_query(self.ctx.ref(), self.fixedpoint, query.as_ast())
+ return CheckSatResult(r)
+
+ def query_from_lvl (self, lvl, *query):
+ """Query the fixedpoint engine whether formula is derivable starting at the given query level.
+ """
+ query = _get_args(query)
+ sz = len(query)
+ if sz >= 1 and isinstance(query[0], FuncDecl):
+ _z3_assert (False, "unsupported")
+ else:
+ if sz == 1:
+ query = query[0]
+ else:
+ query = And(query)
+ query = self.abstract(query, False)
+ r = Z3_fixedpoint_query_from_lvl (self.ctx.ref(), self.fixedpoint, query.as_ast(), lvl)
+ return CheckSatResult(r)
+
+ def push(self):
+ """create a backtracking point for added rules, facts and assertions"""
+ Z3_fixedpoint_push(self.ctx.ref(), self.fixedpoint)
+
+ def pop(self):
+ """restore to previously created backtracking point"""
+ Z3_fixedpoint_pop(self.ctx.ref(), self.fixedpoint)
+
+ def update_rule(self, head, body, name):
+ """update rule"""
+ if name is None:
+ name = ""
+ name = to_symbol(name, self.ctx)
+ body = _get_args(body)
+ f = self.abstract(Implies(And(body, self.ctx),head))
+ Z3_fixedpoint_update_rule(self.ctx.ref(), self.fixedpoint, f.as_ast(), name)
+
+ def get_answer(self):
+ """Retrieve answer from last query call."""
+ r = Z3_fixedpoint_get_answer(self.ctx.ref(), self.fixedpoint)
+ return _to_expr_ref(r, self.ctx)
+
+ def get_ground_sat_answer(self):
+ """Retrieve a ground cex from last query call."""
+ r = Z3_fixedpoint_get_ground_sat_answer(self.ctx.ref(), self.fixedpoint)
+ return _to_expr_ref(r, self.ctx)
+
+ def get_rules_along_trace(self):
+ """retrieve rules along the counterexample trace"""
+ return AstVector(Z3_fixedpoint_get_rules_along_trace(self.ctx.ref(), self.fixedpoint), self.ctx)
+
+ def get_rule_names_along_trace(self):
+ """retrieve rule names along the counterexample trace"""
+ # this is a hack as I don't know how to return a list of symbols from C++;
+ # obtain names as a single string separated by semicolons
+ names = _symbol2py (self.ctx, Z3_fixedpoint_get_rule_names_along_trace(self.ctx.ref(), self.fixedpoint))
+ # split into individual names
+ return names.split (';')
+
+ def get_num_levels(self, predicate):
+ """Retrieve number of levels used for predicate in PDR engine"""
+ return Z3_fixedpoint_get_num_levels(self.ctx.ref(), self.fixedpoint, predicate.ast)
+
+ def get_cover_delta(self, level, predicate):
+ """Retrieve properties known about predicate for the level'th unfolding. -1 is treated as the limit (infinity)"""
+ r = Z3_fixedpoint_get_cover_delta(self.ctx.ref(), self.fixedpoint, level, predicate.ast)
+ return _to_expr_ref(r, self.ctx)
+
+ def add_cover(self, level, predicate, property):
+ """Add property to predicate for the level'th unfolding. -1 is treated as infinity (infinity)"""
+ Z3_fixedpoint_add_cover(self.ctx.ref(), self.fixedpoint, level, predicate.ast, property.ast)
+
+ def register_relation(self, *relations):
+ """Register relation as recursive"""
+ relations = _get_args(relations)
+ for f in relations:
+ Z3_fixedpoint_register_relation(self.ctx.ref(), self.fixedpoint, f.ast)
+
+ def set_predicate_representation(self, f, *representations):
+ """Control how relation is represented"""
+ representations = _get_args(representations)
+ representations = [to_symbol(s) for s in representations]
+ sz = len(representations)
+ args = (Symbol * sz)()
+ for i in range(sz):
+ args[i] = representations[i]
+ Z3_fixedpoint_set_predicate_representation(self.ctx.ref(), self.fixedpoint, f.ast, sz, args)
+
+ def parse_string(self, s):
+ """Parse rules and queries from a string"""
+ try:
+ return AstVector(Z3_fixedpoint_from_string(self.ctx.ref(), self.fixedpoint, s), self.ctx)
+ except Z3Exception as e:
+ _handle_parse_error(e, self.ctx)
+
+ def parse_file(self, f):
+ """Parse rules and queries from a file"""
+ try:
+ return AstVector(Z3_fixedpoint_from_file(self.ctx.ref(), self.fixedpoint, f), self.ctx)
+ except Z3Exception as e:
+ _handle_parse_error(e, self.ctx)
+
+ def get_rules(self):
+ """retrieve rules that have been added to fixedpoint context"""
+ return AstVector(Z3_fixedpoint_get_rules(self.ctx.ref(), self.fixedpoint), self.ctx)
+
+ def get_assertions(self):
+ """retrieve assertions that have been added to fixedpoint context"""
+ return AstVector(Z3_fixedpoint_get_assertions(self.ctx.ref(), self.fixedpoint), self.ctx)
+
+ def __repr__(self):
+ """Return a formatted string with all added rules and constraints."""
+ return self.sexpr()
+
+ def sexpr(self):
+ """Return a formatted string (in Lisp-like format) with all added constraints. We say the string is in s-expression format.
+ """
+ return Z3_fixedpoint_to_string(self.ctx.ref(), self.fixedpoint, 0, (Ast * 0)())
+
+ def to_string(self, queries):
+ """Return a formatted string (in Lisp-like format) with all added constraints.
+ We say the string is in s-expression format.
+ Include also queries.
+ """
+ args, len = _to_ast_array(queries)
+ return Z3_fixedpoint_to_string(self.ctx.ref(), self.fixedpoint, len, args)
+
+ def statistics(self):
+ """Return statistics for the last `query()`.
+ """
+ return Statistics(Z3_fixedpoint_get_statistics(self.ctx.ref(), self.fixedpoint), self.ctx)
+
+ def reason_unknown(self):
+ """Return a string describing why the last `query()` returned `unknown`.
+ """
+ return Z3_fixedpoint_get_reason_unknown(self.ctx.ref(), self.fixedpoint)
+
+ def declare_var(self, *vars):
+ """Add variable or several variables.
+ The added variable or variables will be bound in the rules
+ and queries
+ """
+ vars = _get_args(vars)
+ for v in vars:
+ self.vars += [v]
+
+ def abstract(self, fml, is_forall=True):
+ if self.vars == []:
+ return fml
+ if is_forall:
+ return ForAll(self.vars, fml)
+ else:
+ return Exists(self.vars, fml)
+
+
+#########################################
+#
+# Finite domains
+#
+#########################################
+
+class FiniteDomainSortRef(SortRef):
+ """Finite domain sort."""
+
+ def size(self):
+ """Return the size of the finite domain sort"""
+ r = (ctype.c_ulonglong * 1)()
+ if Z3_get_finite_domain_sort_size(self.ctx_ref(), self.ast(), r):
+ return r[0]
+ else:
+ raise Z3Exception("Failed to retrieve finite domain sort size")
+
+def FiniteDomainSort(name, sz, ctx=None):
+ """Create a named finite domain sort of a given size sz"""
+ if not isinstance(name, Symbol):
+ name = to_symbol(name)
+ ctx = _get_ctx(ctx)
+ return FiniteDomainSortRef(Z3_mk_finite_domain_sort(ctx.ref(), name, sz), ctx)
+
+def is_finite_domain_sort(s):
+ """Return True if `s` is a Z3 finite-domain sort.
+
+ >>> is_finite_domain_sort(FiniteDomainSort('S', 100))
+ True
+ >>> is_finite_domain_sort(IntSort())
+ False
+ """
+ return isinstance(s, FiniteDomainSortRef)
+
+
+class FiniteDomainRef(ExprRef):
+ """Finite-domain expressions."""
+
+ def sort(self):
+ """Return the sort of the finite-domain expression `self`."""
+ return FiniteDomainSortRef(Z3_get_sort(self.ctx_ref(), self.as_ast()), self.ctx)
+
+ def as_string(self):
+ """Return a Z3 floating point expression as a Python string."""
+ return Z3_ast_to_string(self.ctx_ref(), self.as_ast())
+
+def is_finite_domain(a):
+ """Return `True` if `a` is a Z3 finite-domain expression.
+
+ >>> s = FiniteDomainSort('S', 100)
+ >>> b = Const('b', s)
+ >>> is_finite_domain(b)
+ True
+ >>> is_finite_domain(Int('x'))
+ False
+ """
+ return isinstance(a, FiniteDomainRef)
+
+
+class FiniteDomainNumRef(FiniteDomainRef):
+ """Integer values."""
+
+ def as_long(self):
+ """Return a Z3 finite-domain numeral as a Python long (bignum) numeral.
+
+ >>> s = FiniteDomainSort('S', 100)
+ >>> v = FiniteDomainVal(3, s)
+ >>> v
+ 3
+ >>> v.as_long() + 1
+ 4
+ """
+ return int(self.as_string())
+
+ def as_string(self):
+ """Return a Z3 finite-domain numeral as a Python string.
+
+ >>> s = FiniteDomainSort('S', 100)
+ >>> v = FiniteDomainVal(42, s)
+ >>> v.as_string()
+ '42'
+ """
+ return Z3_get_numeral_string(self.ctx_ref(), self.as_ast())
+
+
+def FiniteDomainVal(val, sort, ctx=None):
+ """Return a Z3 finite-domain value. If `ctx=None`, then the global context is used.
+
+ >>> s = FiniteDomainSort('S', 256)
+ >>> FiniteDomainVal(255, s)
+ 255
+ >>> FiniteDomainVal('100', s)
+ 100
+ """
+ if __debug__:
+ _z3_assert(is_finite_domain_sort(sort), "Expected finite-domain sort" )
+ ctx = sort.ctx
+ return FiniteDomainNumRef(Z3_mk_numeral(ctx.ref(), _to_int_str(val), sort.ast), ctx)
+
+def is_finite_domain_value(a):
+ """Return `True` if `a` is a Z3 finite-domain value.
+
+ >>> s = FiniteDomainSort('S', 100)
+ >>> b = Const('b', s)
+ >>> is_finite_domain_value(b)
+ False
+ >>> b = FiniteDomainVal(10, s)
+ >>> b
+ 10
+ >>> is_finite_domain_value(b)
+ True
+ """
+ return is_finite_domain(a) and _is_numeral(a.ctx, a.as_ast())
+
+
+#########################################
+#
+# Optimize
+#
+#########################################
+
+class OptimizeObjective:
+ def __init__(self, opt, value, is_max):
+ self._opt = opt
+ self._value = value
+ self._is_max = is_max
+
+ def lower(self):
+ opt = self._opt
+ return _to_expr_ref(Z3_optimize_get_lower(opt.ctx.ref(), opt.optimize, self._value), opt.ctx)
+
+ def upper(self):
+ opt = self._opt
+ return _to_expr_ref(Z3_optimize_get_upper(opt.ctx.ref(), opt.optimize, self._value), opt.ctx)
+
+ def lower_values(self):
+ opt = self._opt
+ return AstVector(Z3_optimize_get_lower_as_vector(opt.ctx.ref(), opt.optimize, self._value), opt.ctx)
+
+ def upper_values(self):
+ opt = self._opt
+ return AstVector(Z3_optimize_get_upper_as_vector(opt.ctx.ref(), opt.optimize, self._value), opt.ctx)
+
+ def value(self):
+ if self._is_max:
+ return self.upper()
+ else:
+ return self.lower()
+
+ def __str__(self):
+ return "%s:%s" % (self._value, self._is_max)
+
+
+class Optimize(Z3PPObject):
+ """Optimize API provides methods for solving using objective functions and weighted soft constraints"""
+
+ def __init__(self, ctx=None):
+ self.ctx = _get_ctx(ctx)
+ self.optimize = Z3_mk_optimize(self.ctx.ref())
+ Z3_optimize_inc_ref(self.ctx.ref(), self.optimize)
+
+ def __deepcopy__(self, memo={}):
+ return Optimize(self.optimize, self.ctx)
+
+ def __del__(self):
+ if self.optimize is not None and self.ctx.ref() is not None:
+ Z3_optimize_dec_ref(self.ctx.ref(), self.optimize)
+
+ def set(self, *args, **keys):
+ """Set a configuration option. The method `help()` return a string containing all available options.
+ """
+ p = args2params(args, keys, self.ctx)
+ Z3_optimize_set_params(self.ctx.ref(), self.optimize, p.params)
+
+ def help(self):
+ """Display a string describing all available options."""
+ print(Z3_optimize_get_help(self.ctx.ref(), self.optimize))
+
+ def param_descrs(self):
+ """Return the parameter description set."""
+ return ParamDescrsRef(Z3_optimize_get_param_descrs(self.ctx.ref(), self.optimize), self.ctx)
+
+ def assert_exprs(self, *args):
+ """Assert constraints as background axioms for the optimize solver."""
+ args = _get_args(args)
+ for arg in args:
+ if isinstance(arg, Goal) or isinstance(arg, AstVector):
+ for f in arg:
+ Z3_optimize_assert(self.ctx.ref(), self.optimize, f.as_ast())
+ else:
+ Z3_optimize_assert(self.ctx.ref(), self.optimize, arg.as_ast())
+
+ def add(self, *args):
+ """Assert constraints as background axioms for the optimize solver. Alias for assert_expr."""
+ self.assert_exprs(*args)
+
+ def __iadd__(self, fml):
+ self.add(fml)
+ return self
+
+ def add_soft(self, arg, weight = "1", id = None):
+ """Add soft constraint with optional weight and optional identifier.
+ If no weight is supplied, then the penalty for violating the soft constraint
+ is 1.
+ Soft constraints are grouped by identifiers. Soft constraints that are
+ added without identifiers are grouped by default.
+ """
+ if _is_int(weight):
+ weight = "%d" % weight
+ elif isinstance(weight, float):
+ weight = "%f" % weight
+ if not isinstance(weight, str):
+ raise Z3Exception("weight should be a string or an integer")
+ if id is None:
+ id = ""
+ id = to_symbol(id, self.ctx)
+ v = Z3_optimize_assert_soft(self.ctx.ref(), self.optimize, arg.as_ast(), weight, id)
+ return OptimizeObjective(self, v, False)
+
+ def maximize(self, arg):
+ """Add objective function to maximize."""
+ return OptimizeObjective(self, Z3_optimize_maximize(self.ctx.ref(), self.optimize, arg.as_ast()), True)
+
+ def minimize(self, arg):
+ """Add objective function to minimize."""
+ return OptimizeObjective(self, Z3_optimize_minimize(self.ctx.ref(), self.optimize, arg.as_ast()), False)
+
+ def push(self):
+ """create a backtracking point for added rules, facts and assertions"""
+ Z3_optimize_push(self.ctx.ref(), self.optimize)
+
+ def pop(self):
+ """restore to previously created backtracking point"""
+ Z3_optimize_pop(self.ctx.ref(), self.optimize)
+
+ def check(self):
+ """Check satisfiability while optimizing objective functions."""
+ return CheckSatResult(Z3_optimize_check(self.ctx.ref(), self.optimize))
+
+ def reason_unknown(self):
+ """Return a string that describes why the last `check()` returned `unknown`."""
+ return Z3_optimize_get_reason_unknown(self.ctx.ref(), self.optimize)
+
+ def model(self):
+ """Return a model for the last check()."""
+ try:
+ return ModelRef(Z3_optimize_get_model(self.ctx.ref(), self.optimize), self.ctx)
+ except Z3Exception:
+ raise Z3Exception("model is not available")
+
+ def lower(self, obj):
+ if not isinstance(obj, OptimizeObjective):
+ raise Z3Exception("Expecting objective handle returned by maximize/minimize")
+ return obj.lower()
+
+ def upper(self, obj):
+ if not isinstance(obj, OptimizeObjective):
+ raise Z3Exception("Expecting objective handle returned by maximize/minimize")
+ return obj.upper()
+
+ def lower_values(self, obj):
+ if not isinstance(obj, OptimizeObjective):
+ raise Z3Exception("Expecting objective handle returned by maximize/minimize")
+ return obj.lower_values()
+
+ def upper_values(self, obj):
+ if not isinstance(obj, OptimizeObjective):
+ raise Z3Exception("Expecting objective handle returned by maximize/minimize")
+ return obj.upper_values()
+
+ def from_file(self, filename):
+ """Parse assertions and objectives from a file"""
+ try:
+ Z3_optimize_from_file(self.ctx.ref(), self.optimize, filename)
+ except Z3Exception as e:
+ _handle_parse_error(e, self.ctx)
+
+ def from_string(self, s):
+ """Parse assertions and objectives from a string"""
+ try:
+ Z3_optimize_from_string(self.ctx.ref(), self.optimize, s)
+ except Z3Exception as e:
+ _handle_parse_error(e, self.ctx)
+
+ def assertions(self):
+ """Return an AST vector containing all added constraints."""
+ return AstVector(Z3_optimize_get_assertions(self.ctx.ref(), self.optimize), self.ctx)
+
+ def objectives(self):
+ """returns set of objective functions"""
+ return AstVector(Z3_optimize_get_objectives(self.ctx.ref(), self.optimize), self.ctx)
+
+ def __repr__(self):
+ """Return a formatted string with all added rules and constraints."""
+ return self.sexpr()
+
+ def sexpr(self):
+ """Return a formatted string (in Lisp-like format) with all added constraints. We say the string is in s-expression format.
+ """
+ return Z3_optimize_to_string(self.ctx.ref(), self.optimize)
+
+ def statistics(self):
+ """Return statistics for the last check`.
+ """
+ return Statistics(Z3_optimize_get_statistics(self.ctx.ref(), self.optimize), self.ctx)
+
+
+
+
+#########################################
+#
+# ApplyResult
+#
+#########################################
+class ApplyResult(Z3PPObject):
+ """An ApplyResult object contains the subgoals produced by a tactic when applied to a goal. It also contains model and proof converters."""
+
+ def __init__(self, result, ctx):
+ self.result = result
+ self.ctx = ctx
+ Z3_apply_result_inc_ref(self.ctx.ref(), self.result)
+
+ def __deepcopy__(self, memo={}):
+ return ApplyResult(self.result, self.ctx)
+
+ def __del__(self):
+ if self.ctx.ref() is not None:
+ Z3_apply_result_dec_ref(self.ctx.ref(), self.result)
+
+ def __len__(self):
+ """Return the number of subgoals in `self`.
+
+ >>> a, b = Ints('a b')
+ >>> g = Goal()
+ >>> g.add(Or(a == 0, a == 1), Or(b == 0, b == 1), a > b)
+ >>> t = Tactic('split-clause')
+ >>> r = t(g)
+ >>> len(r)
+ 2
+ >>> t = Then(Tactic('split-clause'), Tactic('split-clause'))
+ >>> len(t(g))
+ 4
+ >>> t = Then(Tactic('split-clause'), Tactic('split-clause'), Tactic('propagate-values'))
+ >>> len(t(g))
+ 1
+ """
+ return int(Z3_apply_result_get_num_subgoals(self.ctx.ref(), self.result))
+
+ def __getitem__(self, idx):
+ """Return one of the subgoals stored in ApplyResult object `self`.
+
+ >>> a, b = Ints('a b')
+ >>> g = Goal()
+ >>> g.add(Or(a == 0, a == 1), Or(b == 0, b == 1), a > b)
+ >>> t = Tactic('split-clause')
+ >>> r = t(g)
+ >>> r[0]
+ [a == 0, Or(b == 0, b == 1), a > b]
+ >>> r[1]
+ [a == 1, Or(b == 0, b == 1), a > b]
+ """
+ if idx >= len(self):
+ raise IndexError
+ return Goal(goal=Z3_apply_result_get_subgoal(self.ctx.ref(), self.result, idx), ctx=self.ctx)
+
+ def __repr__(self):
+ return obj_to_string(self)
+
+ def sexpr(self):
+ """Return a textual representation of the s-expression representing the set of subgoals in `self`."""
+ return Z3_apply_result_to_string(self.ctx.ref(), self.result)
+
+ def convert_model(self, model, idx=0):
+ """Convert a model for a subgoal into a model for the original goal.
+
+ >>> a, b = Ints('a b')
+ >>> g = Goal()
+ >>> g.add(Or(a == 0, a == 1), Or(b == 0, b == 1), a > b)
+ >>> t = Then(Tactic('split-clause'), Tactic('solve-eqs'))
+ >>> r = t(g)
+ >>> r[0]
+ [Or(b == 0, b == 1), Not(0 <= b)]
+ >>> r[1]
+ [Or(b == 0, b == 1), Not(1 <= b)]
+ >>> # Remark: the subgoal r[0] is unsatisfiable
+ >>> # Creating a solver for solving the second subgoal
+ >>> s = Solver()
+ >>> s.add(r[1])
+ >>> s.check()
+ sat
+ >>> s.model()
+ [b = 0]
+ >>> # Model s.model() does not assign a value to `a`
+ >>> # It is a model for subgoal `r[1]`, but not for goal `g`
+ >>> # The method convert_model creates a model for `g` from a model for `r[1]`.
+ >>> r.convert_model(s.model(), 1)
+ [b = 0, a = 1]
+ """
+ if __debug__:
+ _z3_assert(idx < len(self), "index out of bounds")
+ _z3_assert(isinstance(model, ModelRef), "Z3 Model expected")
+ return ModelRef(Z3_apply_result_convert_model(self.ctx.ref(), self.result, idx, model.model), self.ctx)
+
+ def as_expr(self):
+ """Return a Z3 expression consisting of all subgoals.
+
+ >>> x = Int('x')
+ >>> g = Goal()
+ >>> g.add(x > 1)
+ >>> g.add(Or(x == 2, x == 3))
+ >>> r = Tactic('simplify')(g)
+ >>> r
+ [[Not(x <= 1), Or(x == 2, x == 3)]]
+ >>> r.as_expr()
+ And(Not(x <= 1), Or(x == 2, x == 3))
+ >>> r = Tactic('split-clause')(g)
+ >>> r
+ [[x > 1, x == 2], [x > 1, x == 3]]
+ >>> r.as_expr()
+ Or(And(x > 1, x == 2), And(x > 1, x == 3))
+ """
+ sz = len(self)
+ if sz == 0:
+ return BoolVal(False, self.ctx)
+ elif sz == 1:
+ return self[0].as_expr()
+ else:
+ return Or([ self[i].as_expr() for i in range(len(self)) ])
+
+#########################################
+#
+# Tactics
+#
+#########################################
+class Tactic:
+ """Tactics transform, solver and/or simplify sets of constraints (Goal). A Tactic can be converted into a Solver using the method solver().
+
+ Several combinators are available for creating new tactics using the built-in ones: Then(), OrElse(), FailIf(), Repeat(), When(), Cond().
+ """
+ def __init__(self, tactic, ctx=None):
+ self.ctx = _get_ctx(ctx)
+ self.tactic = None
+ if isinstance(tactic, TacticObj):
+ self.tactic = tactic
+ else:
+ if __debug__:
+ _z3_assert(isinstance(tactic, str), "tactic name expected")
+ try:
+ self.tactic = Z3_mk_tactic(self.ctx.ref(), str(tactic))
+ except Z3Exception:
+ raise Z3Exception("unknown tactic '%s'" % tactic)
+ Z3_tactic_inc_ref(self.ctx.ref(), self.tactic)
+
+ def __deepcopy__(self, memo={}):
+ return Tactic(self.tactic, self.ctx)
+
+ def __del__(self):
+ if self.tactic is not None and self.ctx.ref() is not None:
+ Z3_tactic_dec_ref(self.ctx.ref(), self.tactic)
+
+ def solver(self):
+ """Create a solver using the tactic `self`.
+
+ The solver supports the methods `push()` and `pop()`, but it
+ will always solve each `check()` from scratch.
+
+ >>> t = Then('simplify', 'nlsat')
+ >>> s = t.solver()
+ >>> x = Real('x')
+ >>> s.add(x**2 == 2, x > 0)
+ >>> s.check()
+ sat
+ >>> s.model()
+ [x = 1.4142135623?]
+ """
+ return Solver(Z3_mk_solver_from_tactic(self.ctx.ref(), self.tactic), self.ctx)
+
+ def apply(self, goal, *arguments, **keywords):
+ """Apply tactic `self` to the given goal or Z3 Boolean expression using the given options.
+
+ >>> x, y = Ints('x y')
+ >>> t = Tactic('solve-eqs')
+ >>> t.apply(And(x == 0, y >= x + 1))
+ [[y >= 1]]
+ """
+ if __debug__:
+ _z3_assert(isinstance(goal, Goal) or isinstance(goal, BoolRef), "Z3 Goal or Boolean expressions expected")
+ goal = _to_goal(goal)
+ if len(arguments) > 0 or len(keywords) > 0:
+ p = args2params(arguments, keywords, self.ctx)
+ return ApplyResult(Z3_tactic_apply_ex(self.ctx.ref(), self.tactic, goal.goal, p.params), self.ctx)
+ else:
+ return ApplyResult(Z3_tactic_apply(self.ctx.ref(), self.tactic, goal.goal), self.ctx)
+
+ def __call__(self, goal, *arguments, **keywords):
+ """Apply tactic `self` to the given goal or Z3 Boolean expression using the given options.
+
+ >>> x, y = Ints('x y')
+ >>> t = Tactic('solve-eqs')
+ >>> t(And(x == 0, y >= x + 1))
+ [[y >= 1]]
+ """
+ return self.apply(goal, *arguments, **keywords)
+
+ def help(self):
+ """Display a string containing a description of the available options for the `self` tactic."""
+ print(Z3_tactic_get_help(self.ctx.ref(), self.tactic))
+
+ def param_descrs(self):
+ """Return the parameter description set."""
+ return ParamDescrsRef(Z3_tactic_get_param_descrs(self.ctx.ref(), self.tactic), self.ctx)
+
+def _to_goal(a):
+ if isinstance(a, BoolRef):
+ goal = Goal(ctx = a.ctx)
+ goal.add(a)
+ return goal
+ else:
+ return a
+
+def _to_tactic(t, ctx=None):
+ if isinstance(t, Tactic):
+ return t
+ else:
+ return Tactic(t, ctx)
+
+def _and_then(t1, t2, ctx=None):
+ t1 = _to_tactic(t1, ctx)
+ t2 = _to_tactic(t2, ctx)
+ if __debug__:
+ _z3_assert(t1.ctx == t2.ctx, "Context mismatch")
+ return Tactic(Z3_tactic_and_then(t1.ctx.ref(), t1.tactic, t2.tactic), t1.ctx)
+
+def _or_else(t1, t2, ctx=None):
+ t1 = _to_tactic(t1, ctx)
+ t2 = _to_tactic(t2, ctx)
+ if __debug__:
+ _z3_assert(t1.ctx == t2.ctx, "Context mismatch")
+ return Tactic(Z3_tactic_or_else(t1.ctx.ref(), t1.tactic, t2.tactic), t1.ctx)
+
+def AndThen(*ts, **ks):
+ """Return a tactic that applies the tactics in `*ts` in sequence.
+
+ >>> x, y = Ints('x y')
+ >>> t = AndThen(Tactic('simplify'), Tactic('solve-eqs'))
+ >>> t(And(x == 0, y > x + 1))
+ [[Not(y <= 1)]]
+ >>> t(And(x == 0, y > x + 1)).as_expr()
+ Not(y <= 1)
+ """
+ if __debug__:
+ _z3_assert(len(ts) >= 2, "At least two arguments expected")
+ ctx = ks.get('ctx', None)
+ num = len(ts)
+ r = ts[0]
+ for i in range(num - 1):
+ r = _and_then(r, ts[i+1], ctx)
+ return r
+
+def Then(*ts, **ks):
+ """Return a tactic that applies the tactics in `*ts` in sequence. Shorthand for AndThen(*ts, **ks).
+
+ >>> x, y = Ints('x y')
+ >>> t = Then(Tactic('simplify'), Tactic('solve-eqs'))
+ >>> t(And(x == 0, y > x + 1))
+ [[Not(y <= 1)]]
+ >>> t(And(x == 0, y > x + 1)).as_expr()
+ Not(y <= 1)
+ """
+ return AndThen(*ts, **ks)
+
+def OrElse(*ts, **ks):
+ """Return a tactic that applies the tactics in `*ts` until one of them succeeds (it doesn't fail).
+
+ >>> x = Int('x')
+ >>> t = OrElse(Tactic('split-clause'), Tactic('skip'))
+ >>> # Tactic split-clause fails if there is no clause in the given goal.
+ >>> t(x == 0)
+ [[x == 0]]
+ >>> t(Or(x == 0, x == 1))
+ [[x == 0], [x == 1]]
+ """
+ if __debug__:
+ _z3_assert(len(ts) >= 2, "At least two arguments expected")
+ ctx = ks.get('ctx', None)
+ num = len(ts)
+ r = ts[0]
+ for i in range(num - 1):
+ r = _or_else(r, ts[i+1], ctx)
+ return r
+
+def ParOr(*ts, **ks):
+ """Return a tactic that applies the tactics in `*ts` in parallel until one of them succeeds (it doesn't fail).
+
+ >>> x = Int('x')
+ >>> t = ParOr(Tactic('simplify'), Tactic('fail'))
+ >>> t(x + 1 == 2)
+ [[x == 1]]
+ """
+ if __debug__:
+ _z3_assert(len(ts) >= 2, "At least two arguments expected")
+ ctx = _get_ctx(ks.get('ctx', None))
+ ts = [ _to_tactic(t, ctx) for t in ts ]
+ sz = len(ts)
+ _args = (TacticObj * sz)()
+ for i in range(sz):
+ _args[i] = ts[i].tactic
+ return Tactic(Z3_tactic_par_or(ctx.ref(), sz, _args), ctx)
+
+def ParThen(t1, t2, ctx=None):
+ """Return a tactic that applies t1 and then t2 to every subgoal produced by t1. The subgoals are processed in parallel.
+
+ >>> x, y = Ints('x y')
+ >>> t = ParThen(Tactic('split-clause'), Tactic('propagate-values'))
+ >>> t(And(Or(x == 1, x == 2), y == x + 1))
+ [[x == 1, y == 2], [x == 2, y == 3]]
+ """
+ t1 = _to_tactic(t1, ctx)
+ t2 = _to_tactic(t2, ctx)
+ if __debug__:
+ _z3_assert(t1.ctx == t2.ctx, "Context mismatch")
+ return Tactic(Z3_tactic_par_and_then(t1.ctx.ref(), t1.tactic, t2.tactic), t1.ctx)
+
+def ParAndThen(t1, t2, ctx=None):
+ """Alias for ParThen(t1, t2, ctx)."""
+ return ParThen(t1, t2, ctx)
+
+def With(t, *args, **keys):
+ """Return a tactic that applies tactic `t` using the given configuration options.
+
+ >>> x, y = Ints('x y')
+ >>> t = With(Tactic('simplify'), som=True)
+ >>> t((x + 1)*(y + 2) == 0)
+ [[2*x + y + x*y == -2]]
+ """
+ ctx = keys.pop('ctx', None)
+ t = _to_tactic(t, ctx)
+ p = args2params(args, keys, t.ctx)
+ return Tactic(Z3_tactic_using_params(t.ctx.ref(), t.tactic, p.params), t.ctx)
+
+def Repeat(t, max=4294967295, ctx=None):
+ """Return a tactic that keeps applying `t` until the goal is not modified anymore or the maximum number of iterations `max` is reached.
+
+ >>> x, y = Ints('x y')
+ >>> c = And(Or(x == 0, x == 1), Or(y == 0, y == 1), x > y)
+ >>> t = Repeat(OrElse(Tactic('split-clause'), Tactic('skip')))
+ >>> r = t(c)
+ >>> for subgoal in r: print(subgoal)
+ [x == 0, y == 0, x > y]
+ [x == 0, y == 1, x > y]
+ [x == 1, y == 0, x > y]
+ [x == 1, y == 1, x > y]
+ >>> t = Then(t, Tactic('propagate-values'))
+ >>> t(c)
+ [[x == 1, y == 0]]
+ """
+ t = _to_tactic(t, ctx)
+ return Tactic(Z3_tactic_repeat(t.ctx.ref(), t.tactic, max), t.ctx)
+
+def TryFor(t, ms, ctx=None):
+ """Return a tactic that applies `t` to a given goal for `ms` milliseconds.
+
+ If `t` does not terminate in `ms` milliseconds, then it fails.
+ """
+ t = _to_tactic(t, ctx)
+ return Tactic(Z3_tactic_try_for(t.ctx.ref(), t.tactic, ms), t.ctx)
+
+def tactics(ctx=None):
+ """Return a list of all available tactics in Z3.
+
+ >>> l = tactics()
+ >>> l.count('simplify') == 1
+ True
+ """
+ ctx = _get_ctx(ctx)
+ return [ Z3_get_tactic_name(ctx.ref(), i) for i in range(Z3_get_num_tactics(ctx.ref())) ]
+
+def tactic_description(name, ctx=None):
+ """Return a short description for the tactic named `name`.
+
+ >>> d = tactic_description('simplify')
+ """
+ ctx = _get_ctx(ctx)
+ return Z3_tactic_get_descr(ctx.ref(), name)
+
+def describe_tactics():
+ """Display a (tabular) description of all available tactics in Z3."""
+ if in_html_mode():
+ even = True
+ print('<table border="1" cellpadding="2" cellspacing="0">')
+ for t in tactics():
+ if even:
+ print('<tr style="background-color:#CFCFCF">')
+ even = False
+ else:
+ print('<tr>')
+ even = True
+ print('<td>%s</td><td>%s</td></tr>' % (t, insert_line_breaks(tactic_description(t), 40)))
+ print('</table>')
+ else:
+ for t in tactics():
+ print('%s : %s' % (t, tactic_description(t)))
+
+class Probe:
+ """Probes are used to inspect a goal (aka problem) and collect information that may be used to decide which solver and/or preprocessing step will be used."""
+ def __init__(self, probe, ctx=None):
+ self.ctx = _get_ctx(ctx)
+ self.probe = None
+ if isinstance(probe, ProbeObj):
+ self.probe = probe
+ elif isinstance(probe, float):
+ self.probe = Z3_probe_const(self.ctx.ref(), probe)
+ elif _is_int(probe):
+ self.probe = Z3_probe_const(self.ctx.ref(), float(probe))
+ elif isinstance(probe, bool):
+ if probe:
+ self.probe = Z3_probe_const(self.ctx.ref(), 1.0)
+ else:
+ self.probe = Z3_probe_const(self.ctx.ref(), 0.0)
+ else:
+ if __debug__:
+ _z3_assert(isinstance(probe, str), "probe name expected")
+ try:
+ self.probe = Z3_mk_probe(self.ctx.ref(), probe)
+ except Z3Exception:
+ raise Z3Exception("unknown probe '%s'" % probe)
+ Z3_probe_inc_ref(self.ctx.ref(), self.probe)
+
+ def __deepcopy__(self, memo={}):
+ return Probe(self.probe, self.ctx)
+
+ def __del__(self):
+ if self.probe is not None and self.ctx.ref() is not None:
+ Z3_probe_dec_ref(self.ctx.ref(), self.probe)
+
+ def __lt__(self, other):
+ """Return a probe that evaluates to "true" when the value returned by `self` is less than the value returned by `other`.
+
+ >>> p = Probe('size') < 10
+ >>> x = Int('x')
+ >>> g = Goal()
+ >>> g.add(x > 0)
+ >>> g.add(x < 10)
+ >>> p(g)
+ 1.0
+ """
+ return Probe(Z3_probe_lt(self.ctx.ref(), self.probe, _to_probe(other, self.ctx).probe), self.ctx)
+
+ def __gt__(self, other):
+ """Return a probe that evaluates to "true" when the value returned by `self` is greater than the value returned by `other`.
+
+ >>> p = Probe('size') > 10
+ >>> x = Int('x')
+ >>> g = Goal()
+ >>> g.add(x > 0)
+ >>> g.add(x < 10)
+ >>> p(g)
+ 0.0
+ """
+ return Probe(Z3_probe_gt(self.ctx.ref(), self.probe, _to_probe(other, self.ctx).probe), self.ctx)
+
+ def __le__(self, other):
+ """Return a probe that evaluates to "true" when the value returned by `self` is less than or equal to the value returned by `other`.
+
+ >>> p = Probe('size') <= 2
+ >>> x = Int('x')
+ >>> g = Goal()
+ >>> g.add(x > 0)
+ >>> g.add(x < 10)
+ >>> p(g)
+ 1.0
+ """
+ return Probe(Z3_probe_le(self.ctx.ref(), self.probe, _to_probe(other, self.ctx).probe), self.ctx)
+
+ def __ge__(self, other):
+ """Return a probe that evaluates to "true" when the value returned by `self` is greater than or equal to the value returned by `other`.
+
+ >>> p = Probe('size') >= 2
+ >>> x = Int('x')
+ >>> g = Goal()
+ >>> g.add(x > 0)
+ >>> g.add(x < 10)
+ >>> p(g)
+ 1.0
+ """
+ return Probe(Z3_probe_ge(self.ctx.ref(), self.probe, _to_probe(other, self.ctx).probe), self.ctx)
+
+ def __eq__(self, other):
+ """Return a probe that evaluates to "true" when the value returned by `self` is equal to the value returned by `other`.
+
+ >>> p = Probe('size') == 2
+ >>> x = Int('x')
+ >>> g = Goal()
+ >>> g.add(x > 0)
+ >>> g.add(x < 10)
+ >>> p(g)
+ 1.0
+ """
+ return Probe(Z3_probe_eq(self.ctx.ref(), self.probe, _to_probe(other, self.ctx).probe), self.ctx)
+
+ def __ne__(self, other):
+ """Return a probe that evaluates to "true" when the value returned by `self` is not equal to the value returned by `other`.
+
+ >>> p = Probe('size') != 2
+ >>> x = Int('x')
+ >>> g = Goal()
+ >>> g.add(x > 0)
+ >>> g.add(x < 10)
+ >>> p(g)
+ 0.0
+ """
+ p = self.__eq__(other)
+ return Probe(Z3_probe_not(self.ctx.ref(), p.probe), self.ctx)
+
+ def __call__(self, goal):
+ """Evaluate the probe `self` in the given goal.
+
+ >>> p = Probe('size')
+ >>> x = Int('x')
+ >>> g = Goal()
+ >>> g.add(x > 0)
+ >>> g.add(x < 10)
+ >>> p(g)
+ 2.0
+ >>> g.add(x < 20)
+ >>> p(g)
+ 3.0
+ >>> p = Probe('num-consts')
+ >>> p(g)
+ 1.0
+ >>> p = Probe('is-propositional')
+ >>> p(g)
+ 0.0
+ >>> p = Probe('is-qflia')
+ >>> p(g)
+ 1.0
+ """
+ if __debug__:
+ _z3_assert(isinstance(goal, Goal) or isinstance(goal, BoolRef), "Z3 Goal or Boolean expression expected")
+ goal = _to_goal(goal)
+ return Z3_probe_apply(self.ctx.ref(), self.probe, goal.goal)
+
+def is_probe(p):
+ """Return `True` if `p` is a Z3 probe.
+
+ >>> is_probe(Int('x'))
+ False
+ >>> is_probe(Probe('memory'))
+ True
+ """
+ return isinstance(p, Probe)
+
+def _to_probe(p, ctx=None):
+ if is_probe(p):
+ return p
+ else:
+ return Probe(p, ctx)
+
+def probes(ctx=None):
+ """Return a list of all available probes in Z3.
+
+ >>> l = probes()
+ >>> l.count('memory') == 1
+ True
+ """
+ ctx = _get_ctx(ctx)
+ return [ Z3_get_probe_name(ctx.ref(), i) for i in range(Z3_get_num_probes(ctx.ref())) ]
+
+def probe_description(name, ctx=None):
+ """Return a short description for the probe named `name`.
+
+ >>> d = probe_description('memory')
+ """
+ ctx = _get_ctx(ctx)
+ return Z3_probe_get_descr(ctx.ref(), name)
+
+def describe_probes():
+ """Display a (tabular) description of all available probes in Z3."""
+ if in_html_mode():
+ even = True
+ print('<table border="1" cellpadding="2" cellspacing="0">')
+ for p in probes():
+ if even:
+ print('<tr style="background-color:#CFCFCF">')
+ even = False
+ else:
+ print('<tr>')
+ even = True
+ print('<td>%s</td><td>%s</td></tr>' % (p, insert_line_breaks(probe_description(p), 40)))
+ print('</table>')
+ else:
+ for p in probes():
+ print('%s : %s' % (p, probe_description(p)))
+
+def _probe_nary(f, args, ctx):
+ if __debug__:
+ _z3_assert(len(args) > 0, "At least one argument expected")
+ num = len(args)
+ r = _to_probe(args[0], ctx)
+ for i in range(num - 1):
+ r = Probe(f(ctx.ref(), r.probe, _to_probe(args[i+1], ctx).probe), ctx)
+ return r
+
+def _probe_and(args, ctx):
+ return _probe_nary(Z3_probe_and, args, ctx)
+
+def _probe_or(args, ctx):
+ return _probe_nary(Z3_probe_or, args, ctx)
+
+def FailIf(p, ctx=None):
+ """Return a tactic that fails if the probe `p` evaluates to true. Otherwise, it returns the input goal unmodified.
+
+ In the following example, the tactic applies 'simplify' if and only if there are more than 2 constraints in the goal.
+
+ >>> t = OrElse(FailIf(Probe('size') > 2), Tactic('simplify'))
+ >>> x, y = Ints('x y')
+ >>> g = Goal()
+ >>> g.add(x > 0)
+ >>> g.add(y > 0)
+ >>> t(g)
+ [[x > 0, y > 0]]
+ >>> g.add(x == y + 1)
+ >>> t(g)
+ [[Not(x <= 0), Not(y <= 0), x == 1 + y]]
+ """
+ p = _to_probe(p, ctx)
+ return Tactic(Z3_tactic_fail_if(p.ctx.ref(), p.probe), p.ctx)
+
+def When(p, t, ctx=None):
+ """Return a tactic that applies tactic `t` only if probe `p` evaluates to true. Otherwise, it returns the input goal unmodified.
+
+ >>> t = When(Probe('size') > 2, Tactic('simplify'))
+ >>> x, y = Ints('x y')
+ >>> g = Goal()
+ >>> g.add(x > 0)
+ >>> g.add(y > 0)
+ >>> t(g)
+ [[x > 0, y > 0]]
+ >>> g.add(x == y + 1)
+ >>> t(g)
+ [[Not(x <= 0), Not(y <= 0), x == 1 + y]]
+ """
+ p = _to_probe(p, ctx)
+ t = _to_tactic(t, ctx)
+ return Tactic(Z3_tactic_when(t.ctx.ref(), p.probe, t.tactic), t.ctx)
+
+def Cond(p, t1, t2, ctx=None):
+ """Return a tactic that applies tactic `t1` to a goal if probe `p` evaluates to true, and `t2` otherwise.
+
+ >>> t = Cond(Probe('is-qfnra'), Tactic('qfnra'), Tactic('smt'))
+ """
+ p = _to_probe(p, ctx)
+ t1 = _to_tactic(t1, ctx)
+ t2 = _to_tactic(t2, ctx)
+ return Tactic(Z3_tactic_cond(t1.ctx.ref(), p.probe, t1.tactic, t2.tactic), t1.ctx)
+
+#########################################
+#
+# Utils
+#
+#########################################
+
+def simplify(a, *arguments, **keywords):
+ """Simplify the expression `a` using the given options.
+
+ This function has many options. Use `help_simplify` to obtain the complete list.
+
+ >>> x = Int('x')
+ >>> y = Int('y')
+ >>> simplify(x + 1 + y + x + 1)
+ 2 + 2*x + y
+ >>> simplify((x + 1)*(y + 1), som=True)
+ 1 + x + y + x*y
+ >>> simplify(Distinct(x, y, 1), blast_distinct=True)
+ And(Not(x == y), Not(x == 1), Not(y == 1))
+ >>> simplify(And(x == 0, y == 1), elim_and=True)
+ Not(Or(Not(x == 0), Not(y == 1)))
+ """
+ if __debug__:
+ _z3_assert(is_expr(a), "Z3 expression expected")
+ if len(arguments) > 0 or len(keywords) > 0:
+ p = args2params(arguments, keywords, a.ctx)
+ return _to_expr_ref(Z3_simplify_ex(a.ctx_ref(), a.as_ast(), p.params), a.ctx)
+ else:
+ return _to_expr_ref(Z3_simplify(a.ctx_ref(), a.as_ast()), a.ctx)
+
+def help_simplify():
+ """Return a string describing all options available for Z3 `simplify` procedure."""
+ print(Z3_simplify_get_help(main_ctx().ref()))
+
+def simplify_param_descrs():
+ """Return the set of parameter descriptions for Z3 `simplify` procedure."""
+ return ParamDescrsRef(Z3_simplify_get_param_descrs(main_ctx().ref()), main_ctx())
+
+def substitute(t, *m):
+ """Apply substitution m on t, m is a list of pairs of the form (from, to). Every occurrence in t of from is replaced with to.
+
+ >>> x = Int('x')
+ >>> y = Int('y')
+ >>> substitute(x + 1, (x, y + 1))
+ y + 1 + 1
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> substitute(f(x) + f(y), (f(x), IntVal(1)), (f(y), IntVal(1)))
+ 1 + 1
+ """
+ if isinstance(m, tuple):
+ m1 = _get_args(m)
+ if isinstance(m1, list):
+ m = m1
+ if __debug__:
+ _z3_assert(is_expr(t), "Z3 expression expected")
+ _z3_assert(all([isinstance(p, tuple) and is_expr(p[0]) and is_expr(p[1]) and p[0].sort().eq(p[1].sort()) for p in m]), "Z3 invalid substitution, expression pairs expected.")
+ num = len(m)
+ _from = (Ast * num)()
+ _to = (Ast * num)()
+ for i in range(num):
+ _from[i] = m[i][0].as_ast()
+ _to[i] = m[i][1].as_ast()
+ return _to_expr_ref(Z3_substitute(t.ctx.ref(), t.as_ast(), num, _from, _to), t.ctx)
+
+def substitute_vars(t, *m):
+ """Substitute the free variables in t with the expression in m.
+
+ >>> v0 = Var(0, IntSort())
+ >>> v1 = Var(1, IntSort())
+ >>> x = Int('x')
+ >>> f = Function('f', IntSort(), IntSort(), IntSort())
+ >>> # replace v0 with x+1 and v1 with x
+ >>> substitute_vars(f(v0, v1), x + 1, x)
+ f(x + 1, x)
+ """
+ if __debug__:
+ _z3_assert(is_expr(t), "Z3 expression expected")
+ _z3_assert(all([is_expr(n) for n in m]), "Z3 invalid substitution, list of expressions expected.")
+ num = len(m)
+ _to = (Ast * num)()
+ for i in range(num):
+ _to[i] = m[i].as_ast()
+ return _to_expr_ref(Z3_substitute_vars(t.ctx.ref(), t.as_ast(), num, _to), t.ctx)
+
+def Sum(*args):
+ """Create the sum of the Z3 expressions.
+
+ >>> a, b, c = Ints('a b c')
+ >>> Sum(a, b, c)
+ a + b + c
+ >>> Sum([a, b, c])
+ a + b + c
+ >>> A = IntVector('a', 5)
+ >>> Sum(A)
+ a__0 + a__1 + a__2 + a__3 + a__4
+ """
+ args = _get_args(args)
+ if len(args) == 0:
+ return 0
+ ctx = _ctx_from_ast_arg_list(args)
+ if ctx is None:
+ return _reduce(lambda a, b: a + b, args, 0)
+ args = _coerce_expr_list(args, ctx)
+ if is_bv(args[0]):
+ return _reduce(lambda a, b: a + b, args, 0)
+ else:
+ _args, sz = _to_ast_array(args)
+ return ArithRef(Z3_mk_add(ctx.ref(), sz, _args), ctx)
+
+
+def Product(*args):
+ """Create the product of the Z3 expressions.
+
+ >>> a, b, c = Ints('a b c')
+ >>> Product(a, b, c)
+ a*b*c
+ >>> Product([a, b, c])
+ a*b*c
+ >>> A = IntVector('a', 5)
+ >>> Product(A)
+ a__0*a__1*a__2*a__3*a__4
+ """
+ args = _get_args(args)
+ if len(args) == 0:
+ return 1
+ ctx = _ctx_from_ast_arg_list(args)
+ if ctx is None:
+ return _reduce(lambda a, b: a * b, args, 1)
+ args = _coerce_expr_list(args, ctx)
+ if is_bv(args[0]):
+ return _reduce(lambda a, b: a * b, args, 1)
+ else:
+ _args, sz = _to_ast_array(args)
+ return ArithRef(Z3_mk_mul(ctx.ref(), sz, _args), ctx)
+
+def AtMost(*args):
+ """Create an at-most Pseudo-Boolean k constraint.
+
+ >>> a, b, c = Bools('a b c')
+ >>> f = AtMost(a, b, c, 2)
+ """
+ args = _get_args(args)
+ if __debug__:
+ _z3_assert(len(args) > 1, "Non empty list of arguments expected")
+ ctx = _ctx_from_ast_arg_list(args)
+ if __debug__:
+ _z3_assert(ctx is not None, "At least one of the arguments must be a Z3 expression")
+ args1 = _coerce_expr_list(args[:-1], ctx)
+ k = args[-1]
+ _args, sz = _to_ast_array(args1)
+ return BoolRef(Z3_mk_atmost(ctx.ref(), sz, _args, k), ctx)
+
+def AtLeast(*args):
+ """Create an at-most Pseudo-Boolean k constraint.
+
+ >>> a, b, c = Bools('a b c')
+ >>> f = AtLeast(a, b, c, 2)
+ """
+ args = _get_args(args)
+ if __debug__:
+ _z3_assert(len(args) > 1, "Non empty list of arguments expected")
+ ctx = _ctx_from_ast_arg_list(args)
+ if __debug__:
+ _z3_assert(ctx is not None, "At least one of the arguments must be a Z3 expression")
+ args1 = _coerce_expr_list(args[:-1], ctx)
+ k = args[-1]
+ _args, sz = _to_ast_array(args1)
+ return BoolRef(Z3_mk_atleast(ctx.ref(), sz, _args, k), ctx)
+
+
+def _pb_args_coeffs(args):
+ args = _get_args(args)
+ args, coeffs = zip(*args)
+ if __debug__:
+ _z3_assert(len(args) > 0, "Non empty list of arguments expected")
+ ctx = _ctx_from_ast_arg_list(args)
+ if __debug__:
+ _z3_assert(ctx is not None, "At least one of the arguments must be a Z3 expression")
+ args = _coerce_expr_list(args, ctx)
+ _args, sz = _to_ast_array(args)
+ _coeffs = (ctypes.c_int * len(coeffs))()
+ for i in range(len(coeffs)):
+ _coeffs[i] = coeffs[i]
+ return ctx, sz, _args, _coeffs
+
+def PbLe(args, k):
+ """Create a Pseudo-Boolean inequality k constraint.
+
+ >>> a, b, c = Bools('a b c')
+ >>> f = PbLe(((a,1),(b,3),(c,2)), 3)
+ """
+ ctx, sz, _args, _coeffs = _pb_args_coeffs(args)
+ return BoolRef(Z3_mk_pble(ctx.ref(), sz, _args, _coeffs, k), ctx)
+
+def PbGe(args, k):
+ """Create a Pseudo-Boolean inequality k constraint.
+
+ >>> a, b, c = Bools('a b c')
+ >>> f = PbGe(((a,1),(b,3),(c,2)), 3)
+ """
+ ctx, sz, _args, _coeffs = _pb_args_coeffs(args)
+ return BoolRef(Z3_mk_pbge(ctx.ref(), sz, _args, _coeffs, k), ctx)
+
+def PbEq(args, k):
+ """Create a Pseudo-Boolean inequality k constraint.
+
+ >>> a, b, c = Bools('a b c')
+ >>> f = PbEq(((a,1),(b,3),(c,2)), 3)
+ """
+ ctx, sz, _args, _coeffs = _pb_args_coeffs(args)
+ return BoolRef(Z3_mk_pbeq(ctx.ref(), sz, _args, _coeffs, k), ctx)
+
+
+def solve(*args, **keywords):
+ """Solve the constraints `*args`.
+
+ This is a simple function for creating demonstrations. It creates a solver,
+ configure it using the options in `keywords`, adds the constraints
+ in `args`, and invokes check.
+
+ >>> a = Int('a')
+ >>> solve(a > 0, a < 2)
+ [a = 1]
+ """
+ s = Solver()
+ s.set(**keywords)
+ s.add(*args)
+ if keywords.get('show', False):
+ print(s)
+ r = s.check()
+ if r == unsat:
+ print("no solution")
+ elif r == unknown:
+ print("failed to solve")
+ try:
+ print(s.model())
+ except Z3Exception:
+ return
+ else:
+ print(s.model())
+
+def solve_using(s, *args, **keywords):
+ """Solve the constraints `*args` using solver `s`.
+
+ This is a simple function for creating demonstrations. It is similar to `solve`,
+ but it uses the given solver `s`.
+ It configures solver `s` using the options in `keywords`, adds the constraints
+ in `args`, and invokes check.
+ """
+ if __debug__:
+ _z3_assert(isinstance(s, Solver), "Solver object expected")
+ s.set(**keywords)
+ s.add(*args)
+ if keywords.get('show', False):
+ print("Problem:")
+ print(s)
+ r = s.check()
+ if r == unsat:
+ print("no solution")
+ elif r == unknown:
+ print("failed to solve")
+ try:
+ print(s.model())
+ except Z3Exception:
+ return
+ else:
+ if keywords.get('show', False):
+ print("Solution:")
+ print(s.model())
+
+def prove(claim, **keywords):
+ """Try to prove the given claim.
+
+ This is a simple function for creating demonstrations. It tries to prove
+ `claim` by showing the negation is unsatisfiable.
+
+ >>> p, q = Bools('p q')
+ >>> prove(Not(And(p, q)) == Or(Not(p), Not(q)))
+ proved
+ """
+ if __debug__:
+ _z3_assert(is_bool(claim), "Z3 Boolean expression expected")
+ s = Solver()
+ s.set(**keywords)
+ s.add(Not(claim))
+ if keywords.get('show', False):
+ print(s)
+ r = s.check()
+ if r == unsat:
+ print("proved")
+ elif r == unknown:
+ print("failed to prove")
+ print(s.model())
+ else:
+ print("counterexample")
+ print(s.model())
+
+def _solve_html(*args, **keywords):
+ """Version of funcion `solve` used in RiSE4Fun."""
+ s = Solver()
+ s.set(**keywords)
+ s.add(*args)
+ if keywords.get('show', False):
+ print("<b>Problem:</b>")
+ print(s)
+ r = s.check()
+ if r == unsat:
+ print("<b>no solution</b>")
+ elif r == unknown:
+ print("<b>failed to solve</b>")
+ try:
+ print(s.model())
+ except Z3Exception:
+ return
+ else:
+ if keywords.get('show', False):
+ print("<b>Solution:</b>")
+ print(s.model())
+
+def _solve_using_html(s, *args, **keywords):
+ """Version of funcion `solve_using` used in RiSE4Fun."""
+ if __debug__:
+ _z3_assert(isinstance(s, Solver), "Solver object expected")
+ s.set(**keywords)
+ s.add(*args)
+ if keywords.get('show', False):
+ print("<b>Problem:</b>")
+ print(s)
+ r = s.check()
+ if r == unsat:
+ print("<b>no solution</b>")
+ elif r == unknown:
+ print("<b>failed to solve</b>")
+ try:
+ print(s.model())
+ except Z3Exception:
+ return
+ else:
+ if keywords.get('show', False):
+ print("<b>Solution:</b>")
+ print(s.model())
+
+def _prove_html(claim, **keywords):
+ """Version of funcion `prove` used in RiSE4Fun."""
+ if __debug__:
+ _z3_assert(is_bool(claim), "Z3 Boolean expression expected")
+ s = Solver()
+ s.set(**keywords)
+ s.add(Not(claim))
+ if keywords.get('show', False):
+ print(s)
+ r = s.check()
+ if r == unsat:
+ print("<b>proved</b>")
+ elif r == unknown:
+ print("<b>failed to prove</b>")
+ print(s.model())
+ else:
+ print("<b>counterexample</b>")
+ print(s.model())
+
+def _dict2sarray(sorts, ctx):
+ sz = len(sorts)
+ _names = (Symbol * sz)()
+ _sorts = (Sort * sz) ()
+ i = 0
+ for k in sorts:
+ v = sorts[k]
+ if __debug__:
+ _z3_assert(isinstance(k, str), "String expected")
+ _z3_assert(is_sort(v), "Z3 sort expected")
+ _names[i] = to_symbol(k, ctx)
+ _sorts[i] = v.ast
+ i = i + 1
+ return sz, _names, _sorts
+
+def _dict2darray(decls, ctx):
+ sz = len(decls)
+ _names = (Symbol * sz)()
+ _decls = (FuncDecl * sz) ()
+ i = 0
+ for k in decls:
+ v = decls[k]
+ if __debug__:
+ _z3_assert(isinstance(k, str), "String expected")
+ _z3_assert(is_func_decl(v) or is_const(v), "Z3 declaration or constant expected")
+ _names[i] = to_symbol(k, ctx)
+ if is_const(v):
+ _decls[i] = v.decl().ast
+ else:
+ _decls[i] = v.ast
+ i = i + 1
+ return sz, _names, _decls
+
+def _handle_parse_error(ex, ctx):
+ msg = Z3_get_parser_error(ctx.ref())
+ if msg != "":
+ raise Z3Exception(msg)
+ raise ex
+
+def parse_smt2_string(s, sorts={}, decls={}, ctx=None):
+ """Parse a string in SMT 2.0 format using the given sorts and decls.
+
+ The arguments sorts and decls are Python dictionaries used to initialize
+ the symbol table used for the SMT 2.0 parser.
+
+ >>> parse_smt2_string('(declare-const x Int) (assert (> x 0)) (assert (< x 10))')
+ And(x > 0, x < 10)
+ >>> x, y = Ints('x y')
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> parse_smt2_string('(assert (> (+ foo (g bar)) 0))', decls={ 'foo' : x, 'bar' : y, 'g' : f})
+ x + f(y) > 0
+ >>> parse_smt2_string('(declare-const a U) (assert (> a 0))', sorts={ 'U' : IntSort() })
+ a > 0
+ """
+ ctx = _get_ctx(ctx)
+ ssz, snames, ssorts = _dict2sarray(sorts, ctx)
+ dsz, dnames, ddecls = _dict2darray(decls, ctx)
+ try:
+ return _to_expr_ref(Z3_parse_smtlib2_string(ctx.ref(), s, ssz, snames, ssorts, dsz, dnames, ddecls), ctx)
+ except Z3Exception as e:
+ _handle_parse_error(e, ctx)
+
+def parse_smt2_file(f, sorts={}, decls={}, ctx=None):
+ """Parse a file in SMT 2.0 format using the given sorts and decls.
+
+ This function is similar to parse_smt2_string().
+ """
+ ctx = _get_ctx(ctx)
+ ssz, snames, ssorts = _dict2sarray(sorts, ctx)
+ dsz, dnames, ddecls = _dict2darray(decls, ctx)
+ try:
+ return _to_expr_ref(Z3_parse_smtlib2_file(ctx.ref(), f, ssz, snames, ssorts, dsz, dnames, ddecls), ctx)
+ except Z3Exception as e:
+ _handle_parse_error(e, ctx)
+
+def Interpolant(a,ctx=None):
+ """Create an interpolation operator.
+
+ The argument is an interpolation pattern (see tree_interpolant).
+
+ >>> x = Int('x')
+ >>> print(Interpolant(x>0))
+ interp(x > 0)
+ """
+ ctx = _get_ctx(_ctx_from_ast_arg_list([a], ctx))
+ s = BoolSort(ctx)
+ a = s.cast(a)
+ return BoolRef(Z3_mk_interpolant(ctx.ref(), a.as_ast()), ctx)
+
+def tree_interpolant(pat,p=None,ctx=None):
+ """Compute interpolant for a tree of formulas.
+
+ The input is an interpolation pattern over a set of formulas C.
+ The pattern pat is a formula combining the formulas in C using
+ logical conjunction and the "interp" operator (see Interp). This
+ interp operator is logically the identity operator. It marks the
+ sub-formulas of the pattern for which interpolants should be
+ computed. The interpolant is a map sigma from marked subformulas
+ to formulas, such that, for each marked subformula phi of pat
+ (where phi sigma is phi with sigma(psi) substituted for each
+ subformula psi of phi such that psi in dom(sigma)):
+
+ 1) phi sigma implies sigma(phi), and
+
+ 2) sigma(phi) is in the common uninterpreted vocabulary between
+ the formulas of C occurring in phi and those not occurring in
+ phi
+
+ and moreover pat sigma implies false. In the simplest case
+ an interpolant for the pattern "(and (interp A) B)" maps A
+ to an interpolant for A /\ B.
+
+ The return value is a vector of formulas representing sigma. This
+ vector contains sigma(phi) for each marked subformula of pat, in
+ pre-order traversal. This means that subformulas of phi occur before phi
+ in the vector. Also, subformulas that occur multiply in pat will
+ occur multiply in the result vector.
+
+ If pat is satisfiable, raises an object of class ModelRef
+ that represents a model of pat.
+
+ If neither a proof of unsatisfiability nor a model is obtained
+ (for example, because of a timeout, or because models are disabled)
+ then None is returned.
+
+ If parameters p are supplied, these are used in creating the
+ solver that determines satisfiability.
+
+ >>> x = Int('x')
+ >>> y = Int('y')
+ >>> print(tree_interpolant(And(Interpolant(x < 0), Interpolant(y > 2), x == y)))
+ [Not(x >= 0), Not(y <= 2)]
+
+ # >>> g = And(Interpolant(x<0),x<2)
+ # >>> try:
+ # ... print tree_interpolant(g).sexpr()
+ # ... except ModelRef as m:
+ # ... print m.sexpr()
+ (define-fun x () Int
+ (- 1))
+ """
+ f = pat
+ ctx = _get_ctx(_ctx_from_ast_arg_list([f], ctx))
+ ptr = (AstVectorObj * 1)()
+ mptr = (Model * 1)()
+ if p is None:
+ p = ParamsRef(ctx)
+ res = Z3_compute_interpolant(ctx.ref(),f.as_ast(),p.params,ptr,mptr)
+ if res == Z3_L_FALSE:
+ return AstVector(ptr[0],ctx)
+ if mptr[0]:
+ raise ModelRef(mptr[0], ctx)
+ return None
+
+def binary_interpolant(a,b,p=None,ctx=None):
+ """Compute an interpolant for a binary conjunction.
+
+ If a & b is unsatisfiable, returns an interpolant for a & b.
+ This is a formula phi such that
+
+ 1) a implies phi
+ 2) b implies not phi
+ 3) All the uninterpreted symbols of phi occur in both a and b.
+
+ If a & b is satisfiable, raises an object of class ModelRef
+ that represents a model of a &b.
+
+ If neither a proof of unsatisfiability nor a model is obtained
+ (for example, because of a timeout, or because models are disabled)
+ then None is returned.
+
+ If parameters p are supplied, these are used in creating the
+ solver that determines satisfiability.
+
+ x = Int('x')
+ print(binary_interpolant(x<0,x>2))
+ Not(x >= 0)
+ """
+ f = And(Interpolant(a),b)
+ ti = tree_interpolant(f,p,ctx)
+ return ti[0] if ti is not None else None
+
+def sequence_interpolant(v,p=None,ctx=None):
+ """Compute interpolant for a sequence of formulas.
+
+ If len(v) == N, and if the conjunction of the formulas in v is
+ unsatisfiable, the interpolant is a sequence of formulas w
+ such that len(w) = N-1 and v[0] implies w[0] and for i in 0..N-1:
+
+ 1) w[i] & v[i+1] implies w[i+1] (or false if i+1 = N)
+ 2) All uninterpreted symbols in w[i] occur in both v[0]..v[i]
+ and v[i+1]..v[n]
+
+ Requires len(v) >= 1.
+
+ If a & b is satisfiable, raises an object of class ModelRef
+ that represents a model of a & b.
+
+ If neither a proof of unsatisfiability nor a model is obtained
+ (for example, because of a timeout, or because models are disabled)
+ then None is returned.
+
+ If parameters p are supplied, these are used in creating the
+ solver that determines satisfiability.
+
+ x = Int('x')
+ y = Int('y')
+ print(sequence_interpolant([x < 0, y == x , y > 2]))
+ [Not(x >= 0), Not(y >= 0)]
+ """
+ f = v[0]
+ for i in range(1,len(v)):
+ f = And(Interpolant(f),v[i])
+ return tree_interpolant(f,p,ctx)
+
+
+#########################################
+#
+# Floating-Point Arithmetic
+#
+#########################################
+
+
+# Global default rounding mode
+_dflt_rounding_mode = Z3_OP_FPA_RM_TOWARD_ZERO
+_dflt_fpsort_ebits = 11
+_dflt_fpsort_sbits = 53
+
+def get_default_rounding_mode(ctx=None):
+ """Retrieves the global default rounding mode."""
+ global _dflt_rounding_mode
+ if _dflt_rounding_mode == Z3_OP_FPA_RM_TOWARD_ZERO:
+ return RTZ(ctx)
+ elif _dflt_rounding_mode == Z3_OP_FPA_RM_TOWARD_NEGATIVE:
+ return RTN(ctx)
+ elif _dflt_rounding_mode == Z3_OP_FPA_RM_TOWARD_POSITIVE:
+ return RTP(ctx)
+ elif _dflt_rounding_mode == Z3_OP_FPA_RM_NEAREST_TIES_TO_EVEN:
+ return RNE(ctx)
+ elif _dflt_rounding_mode == Z3_OP_FPA_RM_NEAREST_TIES_TO_AWAY:
+ return RNA(ctx)
+
+def set_default_rounding_mode(rm, ctx=None):
+ global _dflt_rounding_mode
+ if is_fprm_value(rm):
+ _dflt_rounding_mode = rm.decl().kind()
+ else:
+ _z3_assert(_dflt_rounding_mode == Z3_OP_FPA_RM_TOWARD_ZERO or
+ _dflt_rounding_mode == Z3_OP_FPA_RM_TOWARD_NEGATIVE or
+ _dflt_rounding_mode == Z3_OP_FPA_RM_TOWARD_POSITIVE or
+ _dflt_rounding_mode == Z3_OP_FPA_RM_NEAREST_TIES_TO_EVEN or
+ _dflt_rounding_mode == Z3_OP_FPA_RM_NEAREST_TIES_TO_AWAY,
+ "illegal rounding mode")
+ _dflt_rounding_mode = rm
+
+def get_default_fp_sort(ctx=None):
+ return FPSort(_dflt_fpsort_ebits, _dflt_fpsort_sbits, ctx)
+
+def set_default_fp_sort(ebits, sbits, ctx=None):
+ global _dflt_fpsort_ebits
+ global _dflt_fpsort_sbits
+ _dflt_fpsort_ebits = ebits
+ _dflt_fpsort_sbits = sbits
+
+def _dflt_rm(ctx=None):
+ return get_default_rounding_mode(ctx)
+
+def _dflt_fps(ctx=None):
+ return get_default_fp_sort(ctx)
+
+def _coerce_fp_expr_list(alist, ctx):
+ first_fp_sort = None
+ for a in alist:
+ if is_fp(a):
+ if first_fp_sort is None:
+ first_fp_sort = a.sort()
+ elif first_fp_sort == a.sort():
+ pass # OK, same as before
+ else:
+ # we saw at least 2 different float sorts; something will
+ # throw a sort mismatch later, for now assume None.
+ first_fp_sort = None
+ break
+
+ r = []
+ for i in range(len(alist)):
+ a = alist[i]
+ if (isinstance(a, str) and a.contains('2**(') and a.endswith(')')) or _is_int(a) or isinstance(a, float) or isinstance(a, bool):
+ r.append(FPVal(a, None, first_fp_sort, ctx))
+ else:
+ r.append(a)
+ return _coerce_expr_list(r, ctx)
+
+
+### FP Sorts
+
+class FPSortRef(SortRef):
+ """Floating-point sort."""
+
+ def ebits(self):
+ """Retrieves the number of bits reserved for the exponent in the FloatingPoint sort `self`.
+ >>> b = FPSort(8, 24)
+ >>> b.ebits()
+ 8
+ """
+ return int(Z3_fpa_get_ebits(self.ctx_ref(), self.ast))
+
+ def sbits(self):
+ """Retrieves the number of bits reserved for the significand in the FloatingPoint sort `self`.
+ >>> b = FPSort(8, 24)
+ >>> b.sbits()
+ 24
+ """
+ return int(Z3_fpa_get_sbits(self.ctx_ref(), self.ast))
+
+ def cast(self, val):
+ """Try to cast `val` as a floating-point expression.
+ >>> b = FPSort(8, 24)
+ >>> b.cast(1.0)
+ 1
+ >>> b.cast(1.0).sexpr()
+ '(fp #b0 #x7f #b00000000000000000000000)'
+ """
+ if is_expr(val):
+ if __debug__:
+ _z3_assert(self.ctx == val.ctx, "Context mismatch")
+ return val
+ else:
+ return FPVal(val, None, self, self.ctx)
+
+
+def Float16(ctx=None):
+ """Floating-point 16-bit (half) sort."""
+ ctx = _get_ctx(ctx)
+ return FPSortRef(Z3_mk_fpa_sort_16(ctx.ref()), ctx)
+
+def FloatHalf(ctx=None):
+ """Floating-point 16-bit (half) sort."""
+ ctx = _get_ctx(ctx)
+ return FPSortRef(Z3_mk_fpa_sort_half(ctx.ref()), ctx)
+
+def Float32(ctx=None):
+ """Floating-point 32-bit (single) sort."""
+ ctx = _get_ctx(ctx)
+ return FPSortRef(Z3_mk_fpa_sort_32(ctx.ref()), ctx)
+
+def FloatSingle(ctx=None):
+ """Floating-point 32-bit (single) sort."""
+ ctx = _get_ctx(ctx)
+ return FPSortRef(Z3_mk_fpa_sort_single(ctx.ref()), ctx)
+
+def Float64(ctx=None):
+ """Floating-point 64-bit (double) sort."""
+ ctx = _get_ctx(ctx)
+ return FPSortRef(Z3_mk_fpa_sort_64(ctx.ref()), ctx)
+
+def FloatDouble(ctx=None):
+ """Floating-point 64-bit (double) sort."""
+ ctx = _get_ctx(ctx)
+ return FPSortRef(Z3_mk_fpa_sort_double(ctx.ref()), ctx)
+
+def Float128(ctx=None):
+ """Floating-point 128-bit (quadruple) sort."""
+ ctx = _get_ctx(ctx)
+ return FPSortRef(Z3_mk_fpa_sort_128(ctx.ref()), ctx)
+
+def FloatQuadruple(ctx=None):
+ """Floating-point 128-bit (quadruple) sort."""
+ ctx = _get_ctx(ctx)
+ return FPSortRef(Z3_mk_fpa_sort_quadruple(ctx.ref()), ctx)
+
+class FPRMSortRef(SortRef):
+ """"Floating-point rounding mode sort."""
+
+
+def is_fp_sort(s):
+ """Return True if `s` is a Z3 floating-point sort.
+
+ >>> is_fp_sort(FPSort(8, 24))
+ True
+ >>> is_fp_sort(IntSort())
+ False
+ """
+ return isinstance(s, FPSortRef)
+
+def is_fprm_sort(s):
+ """Return True if `s` is a Z3 floating-point rounding mode sort.
+
+ >>> is_fprm_sort(FPSort(8, 24))
+ False
+ >>> is_fprm_sort(RNE().sort())
+ True
+ """
+ return isinstance(s, FPRMSortRef)
+
+### FP Expressions
+
+class FPRef(ExprRef):
+ """Floating-point expressions."""
+
+ def sort(self):
+ """Return the sort of the floating-point expression `self`.
+
+ >>> x = FP('1.0', FPSort(8, 24))
+ >>> x.sort()
+ FPSort(8, 24)
+ >>> x.sort() == FPSort(8, 24)
+ True
+ """
+ return FPSortRef(Z3_get_sort(self.ctx_ref(), self.as_ast()), self.ctx)
+
+ def ebits(self):
+ """Retrieves the number of bits reserved for the exponent in the FloatingPoint expression `self`.
+ >>> b = FPSort(8, 24)
+ >>> b.ebits()
+ 8
+ """
+ return self.sort().ebits();
+
+ def sbits(self):
+ """Retrieves the number of bits reserved for the exponent in the FloatingPoint expression `self`.
+ >>> b = FPSort(8, 24)
+ >>> b.sbits()
+ 24
+ """
+ return self.sort().sbits();
+
+ def as_string(self):
+ """Return a Z3 floating point expression as a Python string."""
+ return Z3_ast_to_string(self.ctx_ref(), self.as_ast())
+
+ def __le__(self, other):
+ return fpLEQ(self, other, self.ctx)
+
+ def __lt__(self, other):
+ return fpLT(self, other, self.ctx)
+
+ def __ge__(self, other):
+ return fpGEQ(self, other, self.ctx)
+
+ def __gt__(self, other):
+ return fpGT(self, other, self.ctx)
+
+ def __add__(self, other):
+ """Create the Z3 expression `self + other`.
+
+ >>> x = FP('x', FPSort(8, 24))
+ >>> y = FP('y', FPSort(8, 24))
+ >>> x + y
+ x + y
+ >>> (x + y).sort()
+ FPSort(8, 24)
+ """
+ [a, b] = _coerce_fp_expr_list([self, other], self.ctx)
+ return fpAdd(_dflt_rm(), a, b, self.ctx)
+
+ def __radd__(self, other):
+ """Create the Z3 expression `other + self`.
+
+ >>> x = FP('x', FPSort(8, 24))
+ >>> 10 + x
+ 1.25*(2**3) + x
+ """
+ [a, b] = _coerce_fp_expr_list([other, self], self.ctx)
+ return fpAdd(_dflt_rm(), a, b, self.ctx)
+
+ def __sub__(self, other):
+ """Create the Z3 expression `self - other`.
+
+ >>> x = FP('x', FPSort(8, 24))
+ >>> y = FP('y', FPSort(8, 24))
+ >>> x - y
+ x - y
+ >>> (x - y).sort()
+ FPSort(8, 24)
+ """
+ [a, b] = _coerce_fp_expr_list([self, other], self.ctx)
+ return fpSub(_dflt_rm(), a, b, self.ctx)
+
+ def __rsub__(self, other):
+ """Create the Z3 expression `other - self`.
+
+ >>> x = FP('x', FPSort(8, 24))
+ >>> 10 - x
+ 1.25*(2**3) - x
+ """
+ [a, b] = _coerce_fp_expr_list([other, self], self.ctx)
+ return fpSub(_dflt_rm(), a, b, self.ctx)
+
+ def __mul__(self, other):
+ """Create the Z3 expression `self * other`.
+
+ >>> x = FP('x', FPSort(8, 24))
+ >>> y = FP('y', FPSort(8, 24))
+ >>> x * y
+ x * y
+ >>> (x * y).sort()
+ FPSort(8, 24)
+ >>> 10 * y
+ 1.25*(2**3) * y
+ """
+ [a, b] = _coerce_fp_expr_list([self, other], self.ctx)
+ return fpMul(_dflt_rm(), a, b, self.ctx)
+
+ def __rmul__(self, other):
+ """Create the Z3 expression `other * self`.
+
+ >>> x = FP('x', FPSort(8, 24))
+ >>> y = FP('y', FPSort(8, 24))
+ >>> x * y
+ x * y
+ >>> x * 10
+ x * 1.25*(2**3)
+ """
+ [a, b] = _coerce_fp_expr_list([other, self], self.ctx)
+ return fpMul(_dflt_rm(), a, b, self.ctx)
+
+ def __pos__(self):
+ """Create the Z3 expression `+self`."""
+ return self
+
+ def __neg__(self):
+ """Create the Z3 expression `-self`.
+
+ >>> x = FP('x', Float32())
+ >>> -x
+ -x
+ """
+ return fpNeg(self)
+
+ def __div__(self, other):
+ """Create the Z3 expression `self / other`.
+
+ >>> x = FP('x', FPSort(8, 24))
+ >>> y = FP('y', FPSort(8, 24))
+ >>> x / y
+ x / y
+ >>> (x / y).sort()
+ FPSort(8, 24)
+ >>> 10 / y
+ 1.25*(2**3) / y
+ """
+ [a, b] = _coerce_fp_expr_list([self, other], self.ctx)
+ return fpDiv(_dflt_rm(), a, b, self.ctx)
+
+ def __rdiv__(self, other):
+ """Create the Z3 expression `other / self`.
+
+ >>> x = FP('x', FPSort(8, 24))
+ >>> y = FP('y', FPSort(8, 24))
+ >>> x / y
+ x / y
+ >>> x / 10
+ x / 1.25*(2**3)
+ """
+ [a, b] = _coerce_fp_expr_list([other, self], self.ctx)
+ return fpDiv(_dflt_rm(), a, b, self.ctx)
+
+ if not sys.version < '3':
+ def __truediv__(self, other):
+ """Create the Z3 expression division `self / other`."""
+ return self.__div__(other)
+
+ def __rtruediv__(self, other):
+ """Create the Z3 expression division `other / self`."""
+ return self.__rdiv__(other)
+
+ def __mod__(self, other):
+ """Create the Z3 expression mod `self % other`."""
+ return fpRem(self, other)
+
+ def __rmod__(self, other):
+ """Create the Z3 expression mod `other % self`."""
+ return fpRem(other, self)
+
+class FPRMRef(ExprRef):
+ """Floating-point rounding mode expressions"""
+
+ def as_string(self):
+ """Return a Z3 floating point expression as a Python string."""
+ return Z3_ast_to_string(self.ctx_ref(), self.as_ast())
+
+
+def RoundNearestTiesToEven(ctx=None):
+ ctx = _get_ctx(ctx)
+ return FPRMRef(Z3_mk_fpa_round_nearest_ties_to_even(ctx.ref()), ctx)
+
+def RNE (ctx=None):
+ ctx = _get_ctx(ctx)
+ return FPRMRef(Z3_mk_fpa_round_nearest_ties_to_even(ctx.ref()), ctx)
+
+def RoundNearestTiesToAway(ctx=None):
+ ctx = _get_ctx(ctx)
+ return FPRMRef(Z3_mk_fpa_round_nearest_ties_to_away(ctx.ref()), ctx)
+
+def RNA (ctx=None):
+ ctx = _get_ctx(ctx)
+ return FPRMRef(Z3_mk_fpa_round_nearest_ties_to_away(ctx.ref()), ctx)
+
+def RoundTowardPositive(ctx=None):
+ ctx = _get_ctx(ctx)
+ return FPRMRef(Z3_mk_fpa_round_toward_positive(ctx.ref()), ctx)
+
+def RTP(ctx=None):
+ ctx = _get_ctx(ctx)
+ return FPRMRef(Z3_mk_fpa_round_toward_positive(ctx.ref()), ctx)
+
+def RoundTowardNegative(ctx=None):
+ ctx = _get_ctx(ctx)
+ return FPRMRef(Z3_mk_fpa_round_toward_negative(ctx.ref()), ctx)
+
+def RTN(ctx=None):
+ ctx = _get_ctx(ctx)
+ return FPRMRef(Z3_mk_fpa_round_toward_negative(ctx.ref()), ctx)
+
+def RoundTowardZero(ctx=None):
+ ctx = _get_ctx(ctx)
+ return FPRMRef(Z3_mk_fpa_round_toward_zero(ctx.ref()), ctx)
+
+def RTZ(ctx=None):
+ ctx = _get_ctx(ctx)
+ return FPRMRef(Z3_mk_fpa_round_toward_zero(ctx.ref()), ctx)
+
+def is_fprm(a):
+ """Return `True` if `a` is a Z3 floating-point rounding mode expression.
+
+ >>> rm = RNE()
+ >>> is_fprm(rm)
+ True
+ >>> rm = 1.0
+ >>> is_fprm(rm)
+ False
+ """
+ return isinstance(a, FPRMRef)
+
+def is_fprm_value(a):
+ """Return `True` if `a` is a Z3 floating-point rounding mode numeral value."""
+ return is_fprm(a) and _is_numeral(a.ctx, a.ast)
+
+### FP Numerals
+
+class FPNumRef(FPRef):
+ """The sign of the numeral.
+
+ >>> x = FPVal(+1.0, FPSort(8, 24))
+ >>> x.sign()
+ False
+ >>> x = FPVal(-1.0, FPSort(8, 24))
+ >>> x.sign()
+ True
+ """
+ def sign(self):
+ l = (ctypes.c_int)()
+ if Z3_fpa_get_numeral_sign(self.ctx.ref(), self.as_ast(), byref(l)) == False:
+ raise Z3Exception("error retrieving the sign of a numeral.")
+ return l.value != 0
+
+ """The sign of a floating-point numeral as a bit-vector expression.
+
+ Remark: NaN's are invalid arguments.
+ """
+ def sign_as_bv(self):
+ return BitVecNumRef(Z3_fpa_get_numeral_sign_bv(self.ctx.ref(), self.as_ast()), self.ctx)
+
+ """The significand of the numeral.
+
+ >>> x = FPVal(2.5, FPSort(8, 24))
+ >>> x.significand()
+ 1.25
+ """
+ def significand(self):
+ return Z3_fpa_get_numeral_significand_string(self.ctx.ref(), self.as_ast())
+
+ """The significand of the numeral as a long.
+
+ >>> x = FPVal(2.5, FPSort(8, 24))
+ >>> x.significand_as_long()
+ 1.25
+ """
+ def significand_as_long(self):
+ return Z3_fpa_get_numeral_significand_uint64(self.ctx.ref(), self.as_ast())
+
+ """The significand of the numeral as a bit-vector expression.
+
+ Remark: NaN are invalid arguments.
+ """
+ def significand_as_bv(self):
+ return BitVecNumRef(Z3_fpa_get_numeral_significand_bv(self.ctx.ref(), self.as_ast()), self.ctx)
+
+ """The exponent of the numeral.
+
+ >>> x = FPVal(2.5, FPSort(8, 24))
+ >>> x.exponent()
+ 1
+ """
+ def exponent(self, biased=True):
+ return Z3_fpa_get_numeral_exponent_string(self.ctx.ref(), self.as_ast(), biased)
+
+ """The exponent of the numeral as a long.
+
+ >>> x = FPVal(2.5, FPSort(8, 24))
+ >>> x.exponent_as_long()
+ 1
+ """
+ def exponent_as_long(self, biased=True):
+ ptr = (ctypes.c_longlong * 1)()
+ if not Z3_fpa_get_numeral_exponent_int64(self.ctx.ref(), self.as_ast(), ptr, biased):
+ raise Z3Exception("error retrieving the exponent of a numeral.")
+ return ptr[0]
+
+ """The exponent of the numeral as a bit-vector expression.
+
+ Remark: NaNs are invalid arguments.
+ """
+ def exponent_as_bv(self, biased=True):
+ return BitVecNumRef(Z3_fpa_get_numeral_exponent_bv(self.ctx.ref(), self.as_ast(), biased), self.ctx)
+
+ """Indicates whether the numeral is a NaN."""
+ def isNaN(self):
+ return Z3_fpa_is_numeral_nan(self.ctx.ref(), self.as_ast())
+
+ """Indicates whether the numeral is +oo or -oo."""
+ def isInf(self):
+ return Z3_fpa_is_numeral_inf(self.ctx.ref(), self.as_ast())
+
+ """Indicates whether the numeral is +zero or -zero."""
+ def isZero(self):
+ return Z3_fpa_is_numeral_zero(self.ctx.ref(), self.as_ast())
+
+ """Indicates whether the numeral is normal."""
+ def isNormal(self):
+ return Z3_fpa_is_numeral_normal(self.ctx.ref(), self.as_ast())
+
+ """Indicates whether the numeral is subnormal."""
+ def isSubnormal(self):
+ return Z3_fpa_is_numeral_subnormal(self.ctx.ref(), self.as_ast())
+
+ """Indicates whether the numeral is postitive."""
+ def isPositive(self):
+ return Z3_fpa_is_numeral_positive(self.ctx.ref(), self.as_ast())
+
+ """Indicates whether the numeral is negative."""
+ def isNegative(self):
+ return Z3_fpa_is_numeral_negative(self.ctx.ref(), self.as_ast())
+
+ """
+ The string representation of the numeral.
+
+ >>> x = FPVal(20, FPSort(8, 24))
+ >>> x.as_string()
+ 1.25*(2**4)
+ """
+ def as_string(self):
+ s = Z3_get_numeral_string(self.ctx.ref(), self.as_ast())
+ return ("FPVal(%s, %s)" % (s, self.sort()))
+
+def is_fp(a):
+ """Return `True` if `a` is a Z3 floating-point expression.
+
+ >>> b = FP('b', FPSort(8, 24))
+ >>> is_fp(b)
+ True
+ >>> is_fp(b + 1.0)
+ True
+ >>> is_fp(Int('x'))
+ False
+ """
+ return isinstance(a, FPRef)
+
+def is_fp_value(a):
+ """Return `True` if `a` is a Z3 floating-point numeral value.
+
+ >>> b = FP('b', FPSort(8, 24))
+ >>> is_fp_value(b)
+ False
+ >>> b = FPVal(1.0, FPSort(8, 24))
+ >>> b
+ 1
+ >>> is_fp_value(b)
+ True
+ """
+ return is_fp(a) and _is_numeral(a.ctx, a.ast)
+
+def FPSort(ebits, sbits, ctx=None):
+ """Return a Z3 floating-point sort of the given sizes. If `ctx=None`, then the global context is used.
+
+ >>> Single = FPSort(8, 24)
+ >>> Double = FPSort(11, 53)
+ >>> Single
+ FPSort(8, 24)
+ >>> x = Const('x', Single)
+ >>> eq(x, FP('x', FPSort(8, 24)))
+ True
+ """
+ ctx = _get_ctx(ctx)
+ return FPSortRef(Z3_mk_fpa_sort(ctx.ref(), ebits, sbits), ctx)
+
+def _to_float_str(val, exp=0):
+ if isinstance(val, float):
+ if math.isnan(val):
+ res = "NaN"
+ elif val == 0.0:
+ sone = math.copysign(1.0, val)
+ if sone < 0.0:
+ return "-0.0"
+ else:
+ return "+0.0"
+ elif val == float("+inf"):
+ res = "+oo"
+ elif val == float("-inf"):
+ res = "-oo"
+ else:
+ v = val.as_integer_ratio()
+ num = v[0]
+ den = v[1]
+ rvs = str(num) + '/' + str(den)
+ res = rvs + 'p' + _to_int_str(exp)
+ elif isinstance(val, bool):
+ if val:
+ res = "1.0"
+ else:
+ res = "0.0"
+ elif _is_int(val):
+ res = str(val)
+ elif isinstance(val, str):
+ inx = val.find('*(2**')
+ if inx == -1:
+ res = val
+ elif val[-1] == ')':
+ res = val[0:inx]
+ exp = str(int(val[inx+5:-1]) + int(exp))
+ else:
+ _z3_assert(False, "String does not have floating-point numeral form.")
+ elif __debug__:
+ _z3_assert(False, "Python value cannot be used to create floating-point numerals.")
+ if exp == 0:
+ return res
+ else:
+ return res + 'p' + exp
+
+
+def fpNaN(s):
+ """Create a Z3 floating-point NaN term.
+
+ >>> s = FPSort(8, 24)
+ >>> set_fpa_pretty(True)
+ >>> fpNaN(s)
+ NaN
+ >>> pb = get_fpa_pretty()
+ >>> set_fpa_pretty(False)
+ >>> fpNaN(s)
+ fpNaN(FPSort(8, 24))
+ >>> set_fpa_pretty(pb)
+ """
+ _z3_assert(isinstance(s, FPSortRef), "sort mismatch")
+ return FPNumRef(Z3_mk_fpa_nan(s.ctx_ref(), s.ast), s.ctx)
+
+def fpPlusInfinity(s):
+ """Create a Z3 floating-point +oo term.
+
+ >>> s = FPSort(8, 24)
+ >>> pb = get_fpa_pretty()
+ >>> set_fpa_pretty(True)
+ >>> fpPlusInfinity(s)
+ +oo
+ >>> set_fpa_pretty(False)
+ >>> fpPlusInfinity(s)
+ fpPlusInfinity(FPSort(8, 24))
+ >>> set_fpa_pretty(pb)
+ """
+ _z3_assert(isinstance(s, FPSortRef), "sort mismatch")
+ return FPNumRef(Z3_mk_fpa_inf(s.ctx_ref(), s.ast, False), s.ctx)
+
+def fpMinusInfinity(s):
+ """Create a Z3 floating-point -oo term."""
+ _z3_assert(isinstance(s, FPSortRef), "sort mismatch")
+ return FPNumRef(Z3_mk_fpa_inf(s.ctx_ref(), s.ast, True), s.ctx)
+
+def fpInfinity(s, negative):
+ """Create a Z3 floating-point +oo or -oo term."""
+ _z3_assert(isinstance(s, FPSortRef), "sort mismatch")
+ _z3_assert(isinstance(negative, bool), "expected Boolean flag")
+ return FPNumRef(Z3_mk_fpa_inf(s.ctx_ref(), s.ast, negative), s.ctx)
+
+def fpPlusZero(s):
+ """Create a Z3 floating-point +0.0 term."""
+ _z3_assert(isinstance(s, FPSortRef), "sort mismatch")
+ return FPNumRef(Z3_mk_fpa_zero(s.ctx_ref(), s.ast, False), s.ctx)
+
+def fpMinusZero(s):
+ """Create a Z3 floating-point -0.0 term."""
+ _z3_assert(isinstance(s, FPSortRef), "sort mismatch")
+ return FPNumRef(Z3_mk_fpa_zero(s.ctx_ref(), s.ast, True), s.ctx)
+
+def fpZero(s, negative):
+ """Create a Z3 floating-point +0.0 or -0.0 term."""
+ _z3_assert(isinstance(s, FPSortRef), "sort mismatch")
+ _z3_assert(isinstance(negative, bool), "expected Boolean flag")
+ return FPNumRef(Z3_mk_fpa_zero(s.ctx_ref(), s.ast, negative), s.ctx)
+
+def FPVal(sig, exp=None, fps=None, ctx=None):
+ """Return a floating-point value of value `val` and sort `fps`. If `ctx=None`, then the global context is used.
+
+ >>> v = FPVal(20.0, FPSort(8, 24))
+ >>> v
+ 1.25*(2**4)
+ >>> print("0x%.8x" % v.exponent_as_long(False))
+ 0x00000004
+ >>> v = FPVal(2.25, FPSort(8, 24))
+ >>> v
+ 1.125*(2**1)
+ >>> v = FPVal(-2.25, FPSort(8, 24))
+ >>> v
+ -1.125*(2**1)
+ >>> FPVal(-0.0, FPSort(8, 24))
+ -0.0
+ >>> FPVal(0.0, FPSort(8, 24))
+ +0.0
+ >>> FPVal(+0.0, FPSort(8, 24))
+ +0.0
+ """
+ ctx = _get_ctx(ctx)
+ if is_fp_sort(exp):
+ fps = exp
+ exp = None
+ elif fps is None:
+ fps = _dflt_fps(ctx)
+ _z3_assert(is_fp_sort(fps), "sort mismatch")
+ if exp is None:
+ exp = 0
+ val = _to_float_str(sig)
+ if val == "NaN" or val == "nan":
+ return fpNaN(fps)
+ elif val == "-0.0":
+ return fpMinusZero(fps)
+ elif val == "0.0" or val == "+0.0":
+ return fpPlusZero(fps)
+ elif val == "+oo" or val == "+inf" or val == "+Inf":
+ return fpPlusInfinity(fps)
+ elif val == "-oo" or val == "-inf" or val == "-Inf":
+ return fpMinusInfinity(fps)
+ else:
+ return FPNumRef(Z3_mk_numeral(ctx.ref(), val, fps.ast), ctx)
+
+def FP(name, fpsort, ctx=None):
+ """Return a floating-point constant named `name`.
+ `fpsort` is the floating-point sort.
+ If `ctx=None`, then the global context is used.
+
+ >>> x = FP('x', FPSort(8, 24))
+ >>> is_fp(x)
+ True
+ >>> x.ebits()
+ 8
+ >>> x.sort()
+ FPSort(8, 24)
+ >>> word = FPSort(8, 24)
+ >>> x2 = FP('x', word)
+ >>> eq(x, x2)
+ True
+ """
+ if isinstance(fpsort, FPSortRef) and ctx is None:
+ ctx = fpsort.ctx
+ else:
+ ctx = _get_ctx(ctx)
+ return FPRef(Z3_mk_const(ctx.ref(), to_symbol(name, ctx), fpsort.ast), ctx)
+
+def FPs(names, fpsort, ctx=None):
+ """Return an array of floating-point constants.
+
+ >>> x, y, z = FPs('x y z', FPSort(8, 24))
+ >>> x.sort()
+ FPSort(8, 24)
+ >>> x.sbits()
+ 24
+ >>> x.ebits()
+ 8
+ >>> fpMul(RNE(), fpAdd(RNE(), x, y), z)
+ fpMul(RNE(), fpAdd(RNE(), x, y), z)
+ """
+ ctx = _get_ctx(ctx)
+ if isinstance(names, str):
+ names = names.split(" ")
+ return [FP(name, fpsort, ctx) for name in names]
+
+def fpAbs(a, ctx=None):
+ """Create a Z3 floating-point absolute value expression.
+
+ >>> s = FPSort(8, 24)
+ >>> rm = RNE()
+ >>> x = FPVal(1.0, s)
+ >>> fpAbs(x)
+ fpAbs(1)
+ >>> y = FPVal(-20.0, s)
+ >>> y
+ -1.25*(2**4)
+ >>> fpAbs(y)
+ fpAbs(-1.25*(2**4))
+ >>> fpAbs(-1.25*(2**4))
+ fpAbs(-1.25*(2**4))
+ >>> fpAbs(x).sort()
+ FPSort(8, 24)
+ """
+ ctx = _get_ctx(ctx)
+ [a] = _coerce_fp_expr_list([a], ctx)
+ return FPRef(Z3_mk_fpa_abs(ctx.ref(), a.as_ast()), ctx)
+
+def fpNeg(a, ctx=None):
+ """Create a Z3 floating-point addition expression.
+
+ >>> s = FPSort(8, 24)
+ >>> rm = RNE()
+ >>> x = FP('x', s)
+ >>> fpNeg(x)
+ -x
+ >>> fpNeg(x).sort()
+ FPSort(8, 24)
+ """
+ ctx = _get_ctx(ctx)
+ [a] = _coerce_fp_expr_list([a], ctx)
+ return FPRef(Z3_mk_fpa_neg(ctx.ref(), a.as_ast()), ctx)
+
+def _mk_fp_unary(f, rm, a, ctx):
+ ctx = _get_ctx(ctx)
+ [a] = _coerce_fp_expr_list([a], ctx)
+ if __debug__:
+ _z3_assert(is_fprm(rm), "First argument must be a Z3 floating-point rounding mode expression")
+ _z3_assert(is_fp(a), "Second argument must be a Z3 floating-point expression")
+ return FPRef(f(ctx.ref(), rm.as_ast(), a.as_ast()), ctx)
+
+def _mk_fp_unary_norm(f, a, ctx):
+ ctx = _get_ctx(ctx)
+ [a] = _coerce_fp_expr_list([a], ctx)
+ if __debug__:
+ _z3_assert(is_fp(a), "First argument must be a Z3 floating-point expression")
+ return FPRef(f(ctx.ref(), a.as_ast()), ctx)
+
+def _mk_fp_unary_pred(f, a, ctx):
+ ctx = _get_ctx(ctx)
+ [a] = _coerce_fp_expr_list([a], ctx)
+ if __debug__:
+ _z3_assert(is_fp(a) or is_fp(b), "Second or third argument must be a Z3 floating-point expression")
+ return BoolRef(f(ctx.ref(), a.as_ast()), ctx)
+
+def _mk_fp_bin(f, rm, a, b, ctx):
+ ctx = _get_ctx(ctx)
+ [a, b] = _coerce_fp_expr_list([a, b], ctx)
+ if __debug__:
+ _z3_assert(is_fprm(rm), "First argument must be a Z3 floating-point rounding mode expression")
+ _z3_assert(is_fp(a) or is_fp(b), "Second or third argument must be a Z3 floating-point expression")
+ return FPRef(f(ctx.ref(), rm.as_ast(), a.as_ast(), b.as_ast()), ctx)
+
+def _mk_fp_bin_norm(f, a, b, ctx):
+ ctx = _get_ctx(ctx)
+ [a, b] = _coerce_fp_expr_list([a, b], ctx)
+ if __debug__:
+ _z3_assert(is_fp(a) or is_fp(b), "First or second argument must be a Z3 floating-point expression")
+ return FPRef(f(ctx.ref(), a.as_ast(), b.as_ast()), ctx)
+
+def _mk_fp_bin_pred(f, a, b, ctx):
+ ctx = _get_ctx(ctx)
+ [a, b] = _coerce_fp_expr_list([a, b], ctx)
+ if __debug__:
+ _z3_assert(is_fp(a) or is_fp(b), "Second or third argument must be a Z3 floating-point expression")
+ return BoolRef(f(ctx.ref(), a.as_ast(), b.as_ast()), ctx)
+
+def _mk_fp_tern(f, rm, a, b, c, ctx):
+ ctx = _get_ctx(ctx)
+ [a, b, c] = _coerce_fp_expr_list([a, b, c], ctx)
+ if __debug__:
+ _z3_assert(is_fprm(rm), "First argument must be a Z3 floating-point rounding mode expression")
+ _z3_assert(is_fp(a) or is_fp(b) or is_fp(c), "At least one of the arguments must be a Z3 floating-point expression")
+ return FPRef(f(ctx.ref(), rm.as_ast(), a.as_ast(), b.as_ast(), c.as_ast()), ctx)
+
+def fpAdd(rm, a, b, ctx=None):
+ """Create a Z3 floating-point addition expression.
+
+ >>> s = FPSort(8, 24)
+ >>> rm = RNE()
+ >>> x = FP('x', s)
+ >>> y = FP('y', s)
+ >>> fpAdd(rm, x, y)
+ fpAdd(RNE(), x, y)
+ >>> fpAdd(RTZ(), x, y) # default rounding mode is RTZ
+ x + y
+ >>> fpAdd(rm, x, y).sort()
+ FPSort(8, 24)
+ """
+ return _mk_fp_bin(Z3_mk_fpa_add, rm, a, b, ctx)
+
+def fpSub(rm, a, b, ctx=None):
+ """Create a Z3 floating-point subtraction expression.
+
+ >>> s = FPSort(8, 24)
+ >>> rm = RNE()
+ >>> x = FP('x', s)
+ >>> y = FP('y', s)
+ >>> fpSub(rm, x, y)
+ fpSub(RNE(), x, y)
+ >>> fpSub(rm, x, y).sort()
+ FPSort(8, 24)
+ """
+ return _mk_fp_bin(Z3_mk_fpa_sub, rm, a, b, ctx)
+
+def fpMul(rm, a, b, ctx=None):
+ """Create a Z3 floating-point multiplication expression.
+
+ >>> s = FPSort(8, 24)
+ >>> rm = RNE()
+ >>> x = FP('x', s)
+ >>> y = FP('y', s)
+ >>> fpMul(rm, x, y)
+ fpMul(RNE(), x, y)
+ >>> fpMul(rm, x, y).sort()
+ FPSort(8, 24)
+ """
+ return _mk_fp_bin(Z3_mk_fpa_mul, rm, a, b, ctx)
+
+def fpDiv(rm, a, b, ctx=None):
+ """Create a Z3 floating-point divison expression.
+
+ >>> s = FPSort(8, 24)
+ >>> rm = RNE()
+ >>> x = FP('x', s)
+ >>> y = FP('y', s)
+ >>> fpDiv(rm, x, y)
+ fpDiv(RNE(), x, y)
+ >>> fpDiv(rm, x, y).sort()
+ FPSort(8, 24)
+ """
+ return _mk_fp_bin(Z3_mk_fpa_div, rm, a, b, ctx)
+
+def fpRem(a, b, ctx=None):
+ """Create a Z3 floating-point remainder expression.
+
+ >>> s = FPSort(8, 24)
+ >>> x = FP('x', s)
+ >>> y = FP('y', s)
+ >>> fpRem(x, y)
+ fpRem(x, y)
+ >>> fpRem(x, y).sort()
+ FPSort(8, 24)
+ """
+ return _mk_fp_bin_norm(Z3_mk_fpa_rem, a, b, ctx)
+
+def fpMin(a, b, ctx=None):
+ """Create a Z3 floating-point minimium expression.
+
+ >>> s = FPSort(8, 24)
+ >>> rm = RNE()
+ >>> x = FP('x', s)
+ >>> y = FP('y', s)
+ >>> fpMin(x, y)
+ fpMin(x, y)
+ >>> fpMin(x, y).sort()
+ FPSort(8, 24)
+ """
+ return _mk_fp_bin_norm(Z3_mk_fpa_min, a, b, ctx)
+
+def fpMax(a, b, ctx=None):
+ """Create a Z3 floating-point maximum expression.
+
+ >>> s = FPSort(8, 24)
+ >>> rm = RNE()
+ >>> x = FP('x', s)
+ >>> y = FP('y', s)
+ >>> fpMax(x, y)
+ fpMax(x, y)
+ >>> fpMax(x, y).sort()
+ FPSort(8, 24)
+ """
+ return _mk_fp_bin_norm(Z3_mk_fpa_max, a, b, ctx)
+
+def fpFMA(rm, a, b, c, ctx=None):
+ """Create a Z3 floating-point fused multiply-add expression.
+ """
+ return _mk_fp_tern(Z3_mk_fpa_fma, rm, a, b, c, ctx)
+
+def fpSqrt(rm, a, ctx=None):
+ """Create a Z3 floating-point square root expression.
+ """
+ return _mk_fp_unary(Z3_mk_fpa_sqrt, rm, a, ctx)
+
+def fpRoundToIntegral(rm, a, ctx=None):
+ """Create a Z3 floating-point roundToIntegral expression.
+ """
+ return _mk_fp_unary(Z3_mk_fpa_round_to_integral, rm, a, ctx)
+
+def fpIsNaN(a, ctx=None):
+ """Create a Z3 floating-point isNaN expression.
+
+ >>> s = FPSort(8, 24)
+ >>> x = FP('x', s)
+ >>> y = FP('y', s)
+ >>> fpIsNaN(x)
+ fpIsNaN(x)
+ """
+ return _mk_fp_unary_norm(Z3_mk_fpa_is_nan, a, ctx)
+
+def fpIsInf(a, ctx=None):
+ """Create a Z3 floating-point isInfinite expression.
+
+ >>> s = FPSort(8, 24)
+ >>> x = FP('x', s)
+ >>> fpIsInf(x)
+ fpIsInf(x)
+ """
+ return _mk_fp_unary_norm(Z3_mk_fpa_is_infinite, a, ctx)
+
+def fpIsZero(a, ctx=None):
+ """Create a Z3 floating-point isZero expression.
+ """
+ return _mk_fp_unary_norm(Z3_mk_fpa_is_zero, a, ctx)
+
+def fpIsNormal(a, ctx=None):
+ """Create a Z3 floating-point isNormal expression.
+ """
+ return _mk_fp_unary_norm(Z3_mk_fpa_is_normal, a, ctx)
+
+def fpIsSubnormal(a, ctx=None):
+ """Create a Z3 floating-point isSubnormal expression.
+ """
+ return _mk_fp_unary_norm(Z3_mk_fpa_is_subnormal, a, ctx)
+
+def fpIsNegative(a, ctx=None):
+ """Create a Z3 floating-point isNegative expression.
+ """
+ return _mk_fp_unary_norm(Z3_mk_fpa_is_negative, a, ctx)
+
+def fpIsPositive(a, ctx=None):
+ """Create a Z3 floating-point isPositive expression.
+ """
+ return _mk_fp_unary_norm(Z3_mk_fpa_is_positive, a, ctx)
+ return FPRef(Z3_mk_fpa_is_positive(a.ctx_ref(), a.as_ast()), a.ctx)
+
+def _check_fp_args(a, b):
+ if __debug__:
+ _z3_assert(is_fp(a) or is_fp(b), "At least one of the arguments must be a Z3 floating-point expression")
+
+def fpLT(a, b, ctx=None):
+ """Create the Z3 floating-point expression `other < self`.
+
+ >>> x, y = FPs('x y', FPSort(8, 24))
+ >>> fpLT(x, y)
+ x < y
+ >>> (x < y).sexpr()
+ '(fp.lt x y)'
+ """
+ return _mk_fp_bin_pred(Z3_mk_fpa_lt, a, b, ctx)
+
+def fpLEQ(a, b, ctx=None):
+ """Create the Z3 floating-point expression `other <= self`.
+
+ >>> x, y = FPs('x y', FPSort(8, 24))
+ >>> fpLEQ(x, y)
+ x <= y
+ >>> (x <= y).sexpr()
+ '(fp.leq x y)'
+ """
+ return _mk_fp_bin_pred(Z3_mk_fpa_leq, a, b, ctx)
+
+def fpGT(a, b, ctx=None):
+ """Create the Z3 floating-point expression `other > self`.
+
+ >>> x, y = FPs('x y', FPSort(8, 24))
+ >>> fpGT(x, y)
+ x > y
+ >>> (x > y).sexpr()
+ '(fp.gt x y)'
+ """
+ return _mk_fp_bin_pred(Z3_mk_fpa_gt, a, b, ctx)
+
+def fpGEQ(a, b, ctx=None):
+ """Create the Z3 floating-point expression `other >= self`.
+
+ >>> x, y = FPs('x y', FPSort(8, 24))
+ >>> fpGEQ(x, y)
+ x >= y
+ >>> (x >= y).sexpr()
+ '(fp.geq x y)'
+ """
+ return _mk_fp_bin_pred(Z3_mk_fpa_geq, a, b, ctx)
+
+def fpEQ(a, b, ctx=None):
+ """Create the Z3 floating-point expression `fpEQ(other, self)`.
+
+ >>> x, y = FPs('x y', FPSort(8, 24))
+ >>> fpEQ(x, y)
+ fpEQ(x, y)
+ >>> fpEQ(x, y).sexpr()
+ '(fp.eq x y)'
+ """
+ return _mk_fp_bin_pred(Z3_mk_fpa_eq, a, b, ctx)
+
+def fpNEQ(a, b, ctx=None):
+ """Create the Z3 floating-point expression `Not(fpEQ(other, self))`.
+
+ >>> x, y = FPs('x y', FPSort(8, 24))
+ >>> fpNEQ(x, y)
+ Not(fpEQ(x, y))
+ >>> (x != y).sexpr()
+ '(distinct x y)'
+ """
+ return Not(fpEQ(a, b, ctx))
+
+def fpFP(sgn, exp, sig, ctx=None):
+ """Create the Z3 floating-point value `fpFP(sgn, sig, exp)` from the three bit-vectors sgn, sig, and exp.
+
+ >>> s = FPSort(8, 24)
+ >>> x = fpFP(BitVecVal(1, 1), BitVecVal(2**7-1, 8), BitVecVal(2**22, 23))
+ >>> print(x)
+ fpFP(1, 127, 4194304)
+ >>> xv = FPVal(-1.5, s)
+ >>> print(xv)
+ -1.5
+ >>> slvr = Solver()
+ >>> slvr.add(fpEQ(x, xv))
+ >>> slvr.check()
+ sat
+ >>> xv = FPVal(+1.5, s)
+ >>> print(xv)
+ 1.5
+ >>> slvr = Solver()
+ >>> slvr.add(fpEQ(x, xv))
+ >>> slvr.check()
+ unsat
+ """
+ _z3_assert(is_bv(sgn) and is_bv(exp) and is_bv(sig), "sort mismatch")
+ _z3_assert(sgn.sort().size() == 1, "sort mismatch")
+ ctx = _get_ctx(ctx)
+ _z3_assert(ctx == sgn.ctx == exp.ctx == sig.ctx, "context mismatch")
+ return FPRef(Z3_mk_fpa_fp(ctx.ref(), sgn.ast, exp.ast, sig.ast), ctx)
+
+def fpToFP(a1, a2=None, a3=None, ctx=None):
+ """Create a Z3 floating-point conversion expression from other term sorts
+ to floating-point.
+
+ From a bit-vector term in IEEE 754-2008 format:
+ >>> x = FPVal(1.0, Float32())
+ >>> x_bv = fpToIEEEBV(x)
+ >>> simplify(fpToFP(x_bv, Float32()))
+ 1
+
+ From a floating-point term with different precision:
+ >>> x = FPVal(1.0, Float32())
+ >>> x_db = fpToFP(RNE(), x, Float64())
+ >>> x_db.sort()
+ FPSort(11, 53)
+
+ From a real term:
+ >>> x_r = RealVal(1.5)
+ >>> simplify(fpToFP(RNE(), x_r, Float32()))
+ 1.5
+
+ From a signed bit-vector term:
+ >>> x_signed = BitVecVal(-5, BitVecSort(32))
+ >>> simplify(fpToFP(RNE(), x_signed, Float32()))
+ -1.25*(2**2)
+ """
+ ctx = _get_ctx(ctx)
+ if is_bv(a1) and is_fp_sort(a2):
+ return FPRef(Z3_mk_fpa_to_fp_bv(ctx.ref(), a1.ast, a2.ast), ctx)
+ elif is_fprm(a1) and is_fp(a2) and is_fp_sort(a3):
+ return FPRef(Z3_mk_fpa_to_fp_float(ctx.ref(), a1.ast, a2.ast, a3.ast), ctx)
+ elif is_fprm(a1) and is_real(a2) and is_fp_sort(a3):
+ return FPRef(Z3_mk_fpa_to_fp_real(ctx.ref(), a1.ast, a2.ast, a3.ast), ctx)
+ elif is_fprm(a1) and is_bv(a2) and is_fp_sort(a3):
+ return FPRef(Z3_mk_fpa_to_fp_signed(ctx.ref(), a1.ast, a2.ast, a3.ast), ctx)
+ else:
+ raise Z3Exception("Unsupported combination of arguments for conversion to floating-point term.")
+
+def fpBVToFP(v, sort, ctx=None):
+ """Create a Z3 floating-point conversion expression that represents the
+ conversion from a bit-vector term to a floating-point term.
+
+ >>> x_bv = BitVecVal(0x3F800000, 32)
+ >>> x_fp = fpBVToFP(x_bv, Float32())
+ >>> x_fp
+ fpToFP(1065353216)
+ >>> simplify(x_fp)
+ 1
+ """
+ _z3_assert(is_bv(v), "First argument must be a Z3 floating-point rounding mode expression.")
+ _z3_assert(is_fp_sort(sort), "Second argument must be a Z3 floating-point sort.")
+ ctx = _get_ctx(ctx)
+ return FPRef(Z3_mk_fpa_to_fp_bv(ctx.ref(), v.ast, sort.ast), ctx)
+
+def fpFPToFP(rm, v, sort, ctx=None):
+ """Create a Z3 floating-point conversion expression that represents the
+ conversion from a floating-point term to a floating-point term of different precision.
+
+ >>> x_sgl = FPVal(1.0, Float32())
+ >>> x_dbl = fpFPToFP(RNE(), x_sgl, Float64())
+ >>> x_dbl
+ fpToFP(RNE(), 1)
+ >>> simplify(x_dbl)
+ 1
+ >>> x_dbl.sort()
+ FPSort(11, 53)
+ """
+ _z3_assert(is_fprm(rm), "First argument must be a Z3 floating-point rounding mode expression.")
+ _z3_assert(is_fp(v), "Second argument must be a Z3 floating-point expression.")
+ _z3_assert(is_fp_sort(sort), "Third argument must be a Z3 floating-point sort.")
+ ctx = _get_ctx(ctx)
+ return FPRef(Z3_mk_fpa_to_fp_float(ctx.ref(), rm.ast, v.ast, sort.ast), ctx)
+
+def fpRealToFP(rm, v, sort, ctx=None):
+ """Create a Z3 floating-point conversion expression that represents the
+ conversion from a real term to a floating-point term.
+
+ >>> x_r = RealVal(1.5)
+ >>> x_fp = fpRealToFP(RNE(), x_r, Float32())
+ >>> x_fp
+ fpToFP(RNE(), 3/2)
+ >>> simplify(x_fp)
+ 1.5
+ """
+ _z3_assert(is_fprm(rm), "First argument must be a Z3 floating-point rounding mode expression.")
+ _z3_assert(is_real(v), "Second argument must be a Z3 expression or real sort.")
+ _z3_assert(is_fp_sort(sort), "Third argument must be a Z3 floating-point sort.")
+ ctx = _get_ctx(ctx)
+ return FPRef(Z3_mk_fpa_to_fp_real(ctx.ref(), rm.ast, v.ast, sort.ast), ctx)
+
+def fpSignedToFP(rm, v, sort, ctx=None):
+ """Create a Z3 floating-point conversion expression that represents the
+ conversion from a signed bit-vector term (encoding an integer) to a floating-point term.
+
+ >>> x_signed = BitVecVal(-5, BitVecSort(32))
+ >>> x_fp = fpSignedToFP(RNE(), x_signed, Float32())
+ >>> x_fp
+ fpToFP(RNE(), 4294967291)
+ >>> simplify(x_fp)
+ -1.25*(2**2)
+ """
+ _z3_assert(is_fprm(rm), "First argument must be a Z3 floating-point rounding mode expression.")
+ _z3_assert(is_bv(v), "Second argument must be a Z3 expression or real sort.")
+ _z3_assert(is_fp_sort(sort), "Third argument must be a Z3 floating-point sort.")
+ ctx = _get_ctx(ctx)
+ return FPRef(Z3_mk_fpa_to_fp_signed(ctx.ref(), rm.ast, v.ast, sort.ast), ctx)
+
+def fpUnsignedToFP(rm, v, sort, ctx=None):
+ """Create a Z3 floating-point conversion expression that represents the
+ conversion from an unsigned bit-vector term (encoding an integer) to a floating-point term.
+
+ >>> x_signed = BitVecVal(-5, BitVecSort(32))
+ >>> x_fp = fpUnsignedToFP(RNE(), x_signed, Float32())
+ >>> x_fp
+ fpToFPUnsigned(RNE(), 4294967291)
+ >>> simplify(x_fp)
+ 1*(2**32)
+ """
+ _z3_assert(is_fprm(rm), "First argument must be a Z3 floating-point rounding mode expression.")
+ _z3_assert(is_bv(v), "Second argument must be a Z3 expression or real sort.")
+ _z3_assert(is_fp_sort(sort), "Third argument must be a Z3 floating-point sort.")
+ ctx = _get_ctx(ctx)
+ return FPRef(Z3_mk_fpa_to_fp_unsigned(ctx.ref(), rm.ast, v.ast, sort.ast), ctx)
+
+def fpToFPUnsigned(rm, x, s, ctx=None):
+ """Create a Z3 floating-point conversion expression, from unsigned bit-vector to floating-point expression."""
+ if __debug__:
+ _z3_assert(is_fprm(rm), "First argument must be a Z3 floating-point rounding mode expression")
+ _z3_assert(is_bv(x), "Second argument must be a Z3 bit-vector expression")
+ _z3_assert(is_fp_sort(s), "Third argument must be Z3 floating-point sort")
+ ctx = _get_ctx(ctx)
+ return FPRef(Z3_mk_fpa_to_fp_unsigned(ctx.ref(), rm.ast, x.ast, s.ast), ctx)
+
+def fpToSBV(rm, x, s, ctx=None):
+ """Create a Z3 floating-point conversion expression, from floating-point expression to signed bit-vector.
+
+ >>> x = FP('x', FPSort(8, 24))
+ >>> y = fpToSBV(RTZ(), x, BitVecSort(32))
+ >>> print(is_fp(x))
+ True
+ >>> print(is_bv(y))
+ True
+ >>> print(is_fp(y))
+ False
+ >>> print(is_bv(x))
+ False
+ """
+ if __debug__:
+ _z3_assert(is_fprm(rm), "First argument must be a Z3 floating-point rounding mode expression")
+ _z3_assert(is_fp(x), "Second argument must be a Z3 floating-point expression")
+ _z3_assert(is_bv_sort(s), "Third argument must be Z3 bit-vector sort")
+ ctx = _get_ctx(ctx)
+ return BitVecRef(Z3_mk_fpa_to_sbv(ctx.ref(), rm.ast, x.ast, s.size()), ctx)
+
+def fpToUBV(rm, x, s, ctx=None):
+ """Create a Z3 floating-point conversion expression, from floating-point expression to unsigned bit-vector.
+
+ >>> x = FP('x', FPSort(8, 24))
+ >>> y = fpToUBV(RTZ(), x, BitVecSort(32))
+ >>> print(is_fp(x))
+ True
+ >>> print(is_bv(y))
+ True
+ >>> print(is_fp(y))
+ False
+ >>> print(is_bv(x))
+ False
+ """
+ if __debug__:
+ _z3_assert(is_fprm(rm), "First argument must be a Z3 floating-point rounding mode expression")
+ _z3_assert(is_fp(x), "Second argument must be a Z3 floating-point expression")
+ _z3_assert(is_bv_sort(s), "Third argument must be Z3 bit-vector sort")
+ ctx = _get_ctx(ctx)
+ return BitVecRef(Z3_mk_fpa_to_ubv(ctx.ref(), rm.ast, x.ast, s.size()), ctx)
+
+def fpToReal(x, ctx=None):
+ """Create a Z3 floating-point conversion expression, from floating-point expression to real.
+
+ >>> x = FP('x', FPSort(8, 24))
+ >>> y = fpToReal(x)
+ >>> print(is_fp(x))
+ True
+ >>> print(is_real(y))
+ True
+ >>> print(is_fp(y))
+ False
+ >>> print(is_real(x))
+ False
+ """
+ if __debug__:
+ _z3_assert(is_fp(x), "First argument must be a Z3 floating-point expression")
+ ctx = _get_ctx(ctx)
+ return ArithRef(Z3_mk_fpa_to_real(ctx.ref(), x.ast), ctx)
+
+def fpToIEEEBV(x, ctx=None):
+ """\brief Conversion of a floating-point term into a bit-vector term in IEEE 754-2008 format.
+
+ The size of the resulting bit-vector is automatically determined.
+
+ Note that IEEE 754-2008 allows multiple different representations of NaN. This conversion
+ knows only one NaN and it will always produce the same bit-vector represenatation of
+ that NaN.
+
+ >>> x = FP('x', FPSort(8, 24))
+ >>> y = fpToIEEEBV(x)
+ >>> print(is_fp(x))
+ True
+ >>> print(is_bv(y))
+ True
+ >>> print(is_fp(y))
+ False
+ >>> print(is_bv(x))
+ False
+ """
+ if __debug__:
+ _z3_assert(is_fp(x), "First argument must be a Z3 floating-point expression")
+ ctx = _get_ctx(ctx)
+ return BitVecRef(Z3_mk_fpa_to_ieee_bv(ctx.ref(), x.ast), ctx)
+
+
+
+#########################################
+#
+# Strings, Sequences and Regular expressions
+#
+#########################################
+
+class SeqSortRef(SortRef):
+ """Sequence sort."""
+
+ def is_string(self):
+ """Determine if sort is a string
+ >>> s = StringSort()
+ >>> s.is_string()
+ True
+ >>> s = SeqSort(IntSort())
+ >>> s.is_string()
+ False
+ """
+ return Z3_is_string_sort(self.ctx_ref(), self.ast)
+
+
+def StringSort(ctx=None):
+ """Create a string sort
+ >>> s = StringSort()
+ >>> print(s)
+ String
+ """
+ ctx = _get_ctx(ctx)
+ return SeqSortRef(Z3_mk_string_sort(ctx.ref()), ctx)
+
+
+def SeqSort(s):
+ """Create a sequence sort over elements provided in the argument
+ >>> s = SeqSort(IntSort())
+ >>> s == Unit(IntVal(1)).sort()
+ True
+ """
+ return SeqSortRef(Z3_mk_seq_sort(s.ctx_ref(), s.ast), s.ctx)
+
+class SeqRef(ExprRef):
+ """Sequence expression."""
+
+ def sort(self):
+ return SeqSortRef(Z3_get_sort(self.ctx_ref(), self.as_ast()), self.ctx)
+
+ def __add__(self, other):
+ return Concat(self, other)
+
+ def __radd__(self, other):
+ return Concat(other, self)
+
+ def __getitem__(self, i):
+ if _is_int(i):
+ i = IntVal(i, self.ctx)
+ return SeqRef(Z3_mk_seq_at(self.ctx_ref(), self.as_ast(), i.as_ast()), self.ctx)
+
+ def is_string(self):
+ return Z3_is_string_sort(self.ctx_ref(), Z3_get_sort(self.ctx_ref(), self.as_ast()))
+
+ def is_string_value(self):
+ return Z3_is_string(self.ctx_ref(), self.as_ast())
+
+ def as_string(self):
+ """Return a string representation of sequence expression."""
+ return Z3_ast_to_string(self.ctx_ref(), self.as_ast())
+
+
+def _coerce_seq(s, ctx=None):
+ if isinstance(s, str):
+ ctx = _get_ctx(ctx)
+ s = StringVal(s, ctx)
+ if not is_expr(s):
+ raise Z3Exception("Non-expression passed as a sequence")
+ if not is_seq(s):
+ raise Z3Exception("Non-sequence passed as a sequence")
+ return s
+
+def _get_ctx2(a, b, ctx=None):
+ if is_expr(a):
+ return a.ctx
+ if is_expr(b):
+ return b.ctx
+ if ctx is None:
+ ctx = main_ctx()
+ return ctx
+
+def is_seq(a):
+ """Return `True` if `a` is a Z3 sequence expression.
+ >>> print (is_seq(Unit(IntVal(0))))
+ True
+ >>> print (is_seq(StringVal("abc")))
+ True
+ """
+ return isinstance(a, SeqRef)
+
+def is_string(a):
+ """Return `True` if `a` is a Z3 string expression.
+ >>> print (is_string(StringVal("ab")))
+ True
+ """
+ return isinstance(a, SeqRef) and a.is_string()
+
+def is_string_value(a):
+ """return 'True' if 'a' is a Z3 string constant expression.
+ >>> print (is_string_value(StringVal("a")))
+ True
+ >>> print (is_string_value(StringVal("a") + StringVal("b")))
+ False
+ """
+ return isinstance(a, SeqRef) and a.is_string_value()
+
+
+def StringVal(s, ctx=None):
+ """create a string expression"""
+ ctx = _get_ctx(ctx)
+ return SeqRef(Z3_mk_string(ctx.ref(), s), ctx)
+
+def String(name, ctx=None):
+ """Return a string constant named `name`. If `ctx=None`, then the global context is used.
+
+ >>> x = String('x')
+ """
+ ctx = _get_ctx(ctx)
+ return SeqRef(Z3_mk_const(ctx.ref(), to_symbol(name, ctx), StringSort(ctx).ast), ctx)
+
+def Strings(names, ctx=None):
+ """Return a tuple of String constants. """
+ ctx = _get_ctx(ctx)
+ if isinstance(names, str):
+ names = names.split(" ")
+ return [String(name, ctx) for name in names]
+
+def Empty(s):
+ """Create the empty sequence of the given sort
+ >>> e = Empty(StringSort())
+ >>> print(e)
+ ""
+ >>> e2 = StringVal("")
+ >>> print(e.eq(e2))
+ True
+ >>> e3 = Empty(SeqSort(IntSort()))
+ >>> print(e3)
+ seq.empty
+ >>> e4 = Empty(ReSort(SeqSort(IntSort())))
+ >>> print(e4)
+ re.empty
+ """
+ if isinstance(s, SeqSortRef):
+ return SeqRef(Z3_mk_seq_empty(s.ctx_ref(), s.ast), s.ctx)
+ if isinstance(s, ReSortRef):
+ return ReRef(Z3_mk_re_empty(s.ctx_ref(), s.ast), s.ctx)
+ raise Z3Exception("Non-sequence, non-regular expression sort passed to Empty")
+
+def Full(s):
+ """Create the regular expression that accepts the universal langauge
+ >>> e = Full(ReSort(SeqSort(IntSort())))
+ >>> print(e)
+ re.all
+ >>> e1 = Full(ReSort(StringSort()))
+ >>> print(e1)
+ re.allchar
+ """
+ if isinstance(s, ReSortRef):
+ return ReRef(Z3_mk_re_full(s.ctx_ref(), s.ast), s.ctx)
+ raise Z3Exception("Non-sequence, non-regular expression sort passed to Full")
+
+
+def Unit(a):
+ """Create a singleton sequence"""
+ return SeqRef(Z3_mk_seq_unit(a.ctx_ref(), a.as_ast()), a.ctx)
+
+def PrefixOf(a, b):
+ """Check if 'a' is a prefix of 'b'
+ >>> s1 = PrefixOf("ab", "abc")
+ >>> simplify(s1)
+ True
+ >>> s2 = PrefixOf("bc", "abc")
+ >>> simplify(s2)
+ False
+ """
+ ctx = _get_ctx2(a, b)
+ a = _coerce_seq(a, ctx)
+ b = _coerce_seq(b, ctx)
+ return BoolRef(Z3_mk_seq_prefix(a.ctx_ref(), a.as_ast(), b.as_ast()), a.ctx)
+
+def SuffixOf(a, b):
+ """Check if 'a' is a suffix of 'b'
+ >>> s1 = SuffixOf("ab", "abc")
+ >>> simplify(s1)
+ False
+ >>> s2 = SuffixOf("bc", "abc")
+ >>> simplify(s2)
+ True
+ """
+ ctx = _get_ctx2(a, b)
+ a = _coerce_seq(a, ctx)
+ b = _coerce_seq(b, ctx)
+ return BoolRef(Z3_mk_seq_suffix(a.ctx_ref(), a.as_ast(), b.as_ast()), a.ctx)
+
+def Contains(a, b):
+ """Check if 'a' contains 'b'
+ >>> s1 = Contains("abc", "ab")
+ >>> simplify(s1)
+ True
+ >>> s2 = Contains("abc", "bc")
+ >>> simplify(s2)
+ True
+ >>> x, y, z = Strings('x y z')
+ >>> s3 = Contains(Concat(x,y,z), y)
+ >>> simplify(s3)
+ True
+ """
+ ctx = _get_ctx2(a, b)
+ a = _coerce_seq(a, ctx)
+ b = _coerce_seq(b, ctx)
+ return BoolRef(Z3_mk_seq_contains(a.ctx_ref(), a.as_ast(), b.as_ast()), a.ctx)
+
+
+def Replace(s, src, dst):
+ """Replace the first occurrence of 'src' by 'dst' in 's'
+ >>> r = Replace("aaa", "a", "b")
+ >>> simplify(r)
+ "baa"
+ """
+ ctx = _get_ctx2(dst, s)
+ if ctx is None and is_expr(src):
+ ctx = src.ctx
+ src = _coerce_seq(src, ctx)
+ dst = _coerce_seq(dst, ctx)
+ s = _coerce_seq(s, ctx)
+ return SeqRef(Z3_mk_seq_replace(src.ctx_ref(), s.as_ast(), src.as_ast(), dst.as_ast()), s.ctx)
+
+def IndexOf(s, substr):
+ return IndexOf(s, substr, IntVal(0))
+
+def IndexOf(s, substr, offset):
+ """Retrieve the index of substring within a string starting at a specified offset.
+ >>> simplify(IndexOf("abcabc", "bc", 0))
+ 1
+ >>> simplify(IndexOf("abcabc", "bc", 2))
+ 4
+ """
+ ctx = None
+ if is_expr(offset):
+ ctx = offset.ctx
+ ctx = _get_ctx2(s, substr, ctx)
+ s = _coerce_seq(s, ctx)
+ substr = _coerce_seq(substr, ctx)
+ if _is_int(offset):
+ offset = IntVal(offset, ctx)
+ return SeqRef(Z3_mk_seq_index(s.ctx_ref(), s.as_ast(), substr.as_ast(), offset.as_ast()), s.ctx)
+
+def Length(s):
+ """Obtain the length of a sequence 's'
+ >>> l = Length(StringVal("abc"))
+ >>> simplify(l)
+ 3
+ """
+ s = _coerce_seq(s)
+ return ArithRef(Z3_mk_seq_length(s.ctx_ref(), s.as_ast()), s.ctx)
+
+def StrToInt(s):
+ """Convert string expression to integer
+ >>> a = StrToInt("1")
+ >>> simplify(1 == a)
+ True
+ >>> b = StrToInt("2")
+ >>> simplify(1 == b)
+ False
+ >>> c = StrToInt(IntToStr(2))
+ >>> simplify(1 == c)
+ False
+ """
+ s = _coerce_seq(s)
+ return ArithRef(Z3_mk_str_to_int(s.ctx_ref(), s.as_ast()), s.ctx)
+
+
+def IntToStr(s):
+ """Convert integer expression to string"""
+ if not is_expr(s):
+ s = _py2expr(s)
+ return SeqRef(Z3_mk_int_to_str(s.ctx_ref(), s.as_ast()), s.ctx)
+
+
+def Re(s, ctx=None):
+ """The regular expression that accepts sequence 's'
+ >>> s1 = Re("ab")
+ >>> s2 = Re(StringVal("ab"))
+ >>> s3 = Re(Unit(BoolVal(True)))
+ """
+ s = _coerce_seq(s, ctx)
+ return ReRef(Z3_mk_seq_to_re(s.ctx_ref(), s.as_ast()), s.ctx)
+
+
+
+
+## Regular expressions
+
+class ReSortRef(SortRef):
+ """Regular expression sort."""
+
+
+def ReSort(s):
+ if is_ast(s):
+ return ReSortRef(Z3_mk_re_sort(s.ctx.ref(), s.ast), s.ctx)
+ if s is None or isinstance(s, Context):
+ ctx = _get_ctx(s)
+ return ReSortRef(Z3_mk_re_sort(ctx.ref(), Z3_mk_string_sort(ctx.ref())), s.ctx)
+ raise Z3Exception("Regular expression sort constructor expects either a string or a context or no argument")
+
+
+class ReRef(ExprRef):
+ """Regular expressions."""
+
+ def __add__(self, other):
+ return Union(self, other)
+
+
+def is_re(s):
+ return isinstance(s, ReRef)
+
+
+def InRe(s, re):
+ """Create regular expression membership test
+ >>> re = Union(Re("a"),Re("b"))
+ >>> print (simplify(InRe("a", re)))
+ True
+ >>> print (simplify(InRe("b", re)))
+ True
+ >>> print (simplify(InRe("c", re)))
+ False
+ """
+ s = _coerce_seq(s, re.ctx)
+ return BoolRef(Z3_mk_seq_in_re(s.ctx_ref(), s.as_ast(), re.as_ast()), s.ctx)
+
+def Union(*args):
+ """Create union of regular expressions.
+ >>> re = Union(Re("a"), Re("b"), Re("c"))
+ >>> print (simplify(InRe("d", re)))
+ False
+ """
+ args = _get_args(args)
+ sz = len(args)
+ if __debug__:
+ _z3_assert(sz > 0, "At least one argument expected.")
+ _z3_assert(all([is_re(a) for a in args]), "All arguments must be regular expressions.")
+ if sz == 1:
+ return args[0]
+ ctx = args[0].ctx
+ v = (Ast * sz)()
+ for i in range(sz):
+ v[i] = args[i].as_ast()
+ return ReRef(Z3_mk_re_union(ctx.ref(), sz, v), ctx)
+
+def Plus(re):
+ """Create the regular expression accepting one or more repetitions of argument.
+ >>> re = Plus(Re("a"))
+ >>> print(simplify(InRe("aa", re)))
+ True
+ >>> print(simplify(InRe("ab", re)))
+ False
+ >>> print(simplify(InRe("", re)))
+ False
+ """
+ return ReRef(Z3_mk_re_plus(re.ctx_ref(), re.as_ast()), re.ctx)
+
+def Option(re):
+ """Create the regular expression that optionally accepts the argument.
+ >>> re = Option(Re("a"))
+ >>> print(simplify(InRe("a", re)))
+ True
+ >>> print(simplify(InRe("", re)))
+ True
+ >>> print(simplify(InRe("aa", re)))
+ False
+ """
+ return ReRef(Z3_mk_re_option(re.ctx_ref(), re.as_ast()), re.ctx)
+
+def Complement(re):
+ """Create the complement regular expression."""
+ return ReRef(Z3_mk_re_complement(re.ctx_ref(), re.as_ast()), re.ctx)
+
+def Star(re):
+ """Create the regular expression accepting zero or more repetitions of argument.
+ >>> re = Star(Re("a"))
+ >>> print(simplify(InRe("aa", re)))
+ True
+ >>> print(simplify(InRe("ab", re)))
+ False
+ >>> print(simplify(InRe("", re)))
+ True
+ """
+ return ReRef(Z3_mk_re_star(re.ctx_ref(), re.as_ast()), re.ctx)
+
+def Loop(re, lo, hi=0):
+ """Create the regular expression accepting between a lower and upper bound repetitions
+ >>> re = Loop(Re("a"), 1, 3)
+ >>> print(simplify(InRe("aa", re)))
+ True
+ >>> print(simplify(InRe("aaaa", re)))
+ False
+ >>> print(simplify(InRe("", re)))
+ False
+ """
+ return ReRef(Z3_mk_re_loop(re.ctx_ref(), re.as_ast(), lo, hi), re.ctx)
diff --git a/rba.tool.core/lib32/z3/python/z3/z3.pyc b/rba.tool.core/lib32/z3/python/z3/z3.pyc
new file mode 100644
index 0000000..1673a4c
--- /dev/null
+++ b/rba.tool.core/lib32/z3/python/z3/z3.pyc
Binary files differ
diff --git a/rba.tool.core/lib32/z3/python/z3/z3consts.py b/rba.tool.core/lib32/z3/python/z3/z3consts.py
new file mode 100644
index 0000000..c98a9fe
--- /dev/null
+++ b/rba.tool.core/lib32/z3/python/z3/z3consts.py
@@ -0,0 +1,323 @@
+# Automatically generated file
+
+# enum Z3_lbool
+Z3_L_FALSE = -1
+Z3_L_UNDEF = 0
+Z3_L_TRUE = 1
+
+# enum Z3_symbol_kind
+Z3_INT_SYMBOL = 0
+Z3_STRING_SYMBOL = 1
+
+# enum Z3_parameter_kind
+Z3_PARAMETER_INT = 0
+Z3_PARAMETER_DOUBLE = 1
+Z3_PARAMETER_RATIONAL = 2
+Z3_PARAMETER_SYMBOL = 3
+Z3_PARAMETER_SORT = 4
+Z3_PARAMETER_AST = 5
+Z3_PARAMETER_FUNC_DECL = 6
+
+# enum Z3_sort_kind
+Z3_UNINTERPRETED_SORT = 0
+Z3_BOOL_SORT = 1
+Z3_INT_SORT = 2
+Z3_REAL_SORT = 3
+Z3_BV_SORT = 4
+Z3_ARRAY_SORT = 5
+Z3_DATATYPE_SORT = 6
+Z3_RELATION_SORT = 7
+Z3_FINITE_DOMAIN_SORT = 8
+Z3_FLOATING_POINT_SORT = 9
+Z3_ROUNDING_MODE_SORT = 10
+Z3_SEQ_SORT = 11
+Z3_RE_SORT = 12
+Z3_UNKNOWN_SORT = 1000
+
+# enum Z3_ast_kind
+Z3_NUMERAL_AST = 0
+Z3_APP_AST = 1
+Z3_VAR_AST = 2
+Z3_QUANTIFIER_AST = 3
+Z3_SORT_AST = 4
+Z3_FUNC_DECL_AST = 5
+Z3_UNKNOWN_AST = 1000
+
+# enum Z3_decl_kind
+Z3_OP_TRUE = 256
+Z3_OP_FALSE = 257
+Z3_OP_EQ = 258
+Z3_OP_DISTINCT = 259
+Z3_OP_ITE = 260
+Z3_OP_AND = 261
+Z3_OP_OR = 262
+Z3_OP_IFF = 263
+Z3_OP_XOR = 264
+Z3_OP_NOT = 265
+Z3_OP_IMPLIES = 266
+Z3_OP_OEQ = 267
+Z3_OP_INTERP = 268
+Z3_OP_ANUM = 512
+Z3_OP_AGNUM = 513
+Z3_OP_LE = 514
+Z3_OP_GE = 515
+Z3_OP_LT = 516
+Z3_OP_GT = 517
+Z3_OP_ADD = 518
+Z3_OP_SUB = 519
+Z3_OP_UMINUS = 520
+Z3_OP_MUL = 521
+Z3_OP_DIV = 522
+Z3_OP_IDIV = 523
+Z3_OP_REM = 524
+Z3_OP_MOD = 525
+Z3_OP_TO_REAL = 526
+Z3_OP_TO_INT = 527
+Z3_OP_IS_INT = 528
+Z3_OP_POWER = 529
+Z3_OP_STORE = 768
+Z3_OP_SELECT = 769
+Z3_OP_CONST_ARRAY = 770
+Z3_OP_ARRAY_MAP = 771
+Z3_OP_ARRAY_DEFAULT = 772
+Z3_OP_SET_UNION = 773
+Z3_OP_SET_INTERSECT = 774
+Z3_OP_SET_DIFFERENCE = 775
+Z3_OP_SET_COMPLEMENT = 776
+Z3_OP_SET_SUBSET = 777
+Z3_OP_AS_ARRAY = 778
+Z3_OP_ARRAY_EXT = 779
+Z3_OP_BNUM = 1024
+Z3_OP_BIT1 = 1025
+Z3_OP_BIT0 = 1026
+Z3_OP_BNEG = 1027
+Z3_OP_BADD = 1028
+Z3_OP_BSUB = 1029
+Z3_OP_BMUL = 1030
+Z3_OP_BSDIV = 1031
+Z3_OP_BUDIV = 1032
+Z3_OP_BSREM = 1033
+Z3_OP_BUREM = 1034
+Z3_OP_BSMOD = 1035
+Z3_OP_BSDIV0 = 1036
+Z3_OP_BUDIV0 = 1037
+Z3_OP_BSREM0 = 1038
+Z3_OP_BUREM0 = 1039
+Z3_OP_BSMOD0 = 1040
+Z3_OP_ULEQ = 1041
+Z3_OP_SLEQ = 1042
+Z3_OP_UGEQ = 1043
+Z3_OP_SGEQ = 1044
+Z3_OP_ULT = 1045
+Z3_OP_SLT = 1046
+Z3_OP_UGT = 1047
+Z3_OP_SGT = 1048
+Z3_OP_BAND = 1049
+Z3_OP_BOR = 1050
+Z3_OP_BNOT = 1051
+Z3_OP_BXOR = 1052
+Z3_OP_BNAND = 1053
+Z3_OP_BNOR = 1054
+Z3_OP_BXNOR = 1055
+Z3_OP_CONCAT = 1056
+Z3_OP_SIGN_EXT = 1057
+Z3_OP_ZERO_EXT = 1058
+Z3_OP_EXTRACT = 1059
+Z3_OP_REPEAT = 1060
+Z3_OP_BREDOR = 1061
+Z3_OP_BREDAND = 1062
+Z3_OP_BCOMP = 1063
+Z3_OP_BSHL = 1064
+Z3_OP_BLSHR = 1065
+Z3_OP_BASHR = 1066
+Z3_OP_ROTATE_LEFT = 1067
+Z3_OP_ROTATE_RIGHT = 1068
+Z3_OP_EXT_ROTATE_LEFT = 1069
+Z3_OP_EXT_ROTATE_RIGHT = 1070
+Z3_OP_BIT2BOOL = 1071
+Z3_OP_INT2BV = 1072
+Z3_OP_BV2INT = 1073
+Z3_OP_CARRY = 1074
+Z3_OP_XOR3 = 1075
+Z3_OP_BSMUL_NO_OVFL = 1076
+Z3_OP_BUMUL_NO_OVFL = 1077
+Z3_OP_BSMUL_NO_UDFL = 1078
+Z3_OP_BSDIV_I = 1079
+Z3_OP_BUDIV_I = 1080
+Z3_OP_BSREM_I = 1081
+Z3_OP_BUREM_I = 1082
+Z3_OP_BSMOD_I = 1083
+Z3_OP_PR_UNDEF = 1280
+Z3_OP_PR_TRUE = 1281
+Z3_OP_PR_ASSERTED = 1282
+Z3_OP_PR_GOAL = 1283
+Z3_OP_PR_MODUS_PONENS = 1284
+Z3_OP_PR_REFLEXIVITY = 1285
+Z3_OP_PR_SYMMETRY = 1286
+Z3_OP_PR_TRANSITIVITY = 1287
+Z3_OP_PR_TRANSITIVITY_STAR = 1288
+Z3_OP_PR_MONOTONICITY = 1289
+Z3_OP_PR_QUANT_INTRO = 1290
+Z3_OP_PR_DISTRIBUTIVITY = 1291
+Z3_OP_PR_AND_ELIM = 1292
+Z3_OP_PR_NOT_OR_ELIM = 1293
+Z3_OP_PR_REWRITE = 1294
+Z3_OP_PR_REWRITE_STAR = 1295
+Z3_OP_PR_PULL_QUANT = 1296
+Z3_OP_PR_PULL_QUANT_STAR = 1297
+Z3_OP_PR_PUSH_QUANT = 1298
+Z3_OP_PR_ELIM_UNUSED_VARS = 1299
+Z3_OP_PR_DER = 1300
+Z3_OP_PR_QUANT_INST = 1301
+Z3_OP_PR_HYPOTHESIS = 1302
+Z3_OP_PR_LEMMA = 1303
+Z3_OP_PR_UNIT_RESOLUTION = 1304
+Z3_OP_PR_IFF_TRUE = 1305
+Z3_OP_PR_IFF_FALSE = 1306
+Z3_OP_PR_COMMUTATIVITY = 1307
+Z3_OP_PR_DEF_AXIOM = 1308
+Z3_OP_PR_DEF_INTRO = 1309
+Z3_OP_PR_APPLY_DEF = 1310
+Z3_OP_PR_IFF_OEQ = 1311
+Z3_OP_PR_NNF_POS = 1312
+Z3_OP_PR_NNF_NEG = 1313
+Z3_OP_PR_NNF_STAR = 1314
+Z3_OP_PR_CNF_STAR = 1315
+Z3_OP_PR_SKOLEMIZE = 1316
+Z3_OP_PR_MODUS_PONENS_OEQ = 1317
+Z3_OP_PR_TH_LEMMA = 1318
+Z3_OP_PR_HYPER_RESOLVE = 1319
+Z3_OP_RA_STORE = 1536
+Z3_OP_RA_EMPTY = 1537
+Z3_OP_RA_IS_EMPTY = 1538
+Z3_OP_RA_JOIN = 1539
+Z3_OP_RA_UNION = 1540
+Z3_OP_RA_WIDEN = 1541
+Z3_OP_RA_PROJECT = 1542
+Z3_OP_RA_FILTER = 1543
+Z3_OP_RA_NEGATION_FILTER = 1544
+Z3_OP_RA_RENAME = 1545
+Z3_OP_RA_COMPLEMENT = 1546
+Z3_OP_RA_SELECT = 1547
+Z3_OP_RA_CLONE = 1548
+Z3_OP_FD_CONSTANT = 1549
+Z3_OP_FD_LT = 1550
+Z3_OP_SEQ_UNIT = 1551
+Z3_OP_SEQ_EMPTY = 1552
+Z3_OP_SEQ_CONCAT = 1553
+Z3_OP_SEQ_PREFIX = 1554
+Z3_OP_SEQ_SUFFIX = 1555
+Z3_OP_SEQ_CONTAINS = 1556
+Z3_OP_SEQ_EXTRACT = 1557
+Z3_OP_SEQ_REPLACE = 1558
+Z3_OP_SEQ_AT = 1559
+Z3_OP_SEQ_LENGTH = 1560
+Z3_OP_SEQ_INDEX = 1561
+Z3_OP_SEQ_TO_RE = 1562
+Z3_OP_SEQ_IN_RE = 1563
+Z3_OP_STR_TO_INT = 1564
+Z3_OP_INT_TO_STR = 1565
+Z3_OP_RE_PLUS = 1566
+Z3_OP_RE_STAR = 1567
+Z3_OP_RE_OPTION = 1568
+Z3_OP_RE_CONCAT = 1569
+Z3_OP_RE_UNION = 1570
+Z3_OP_RE_RANGE = 1571
+Z3_OP_RE_LOOP = 1572
+Z3_OP_RE_INTERSECT = 1573
+Z3_OP_RE_EMPTY_SET = 1574
+Z3_OP_RE_FULL_SET = 1575
+Z3_OP_RE_COMPLEMENT = 1576
+Z3_OP_LABEL = 1792
+Z3_OP_LABEL_LIT = 1793
+Z3_OP_DT_CONSTRUCTOR = 2048
+Z3_OP_DT_RECOGNISER = 2049
+Z3_OP_DT_ACCESSOR = 2050
+Z3_OP_DT_UPDATE_FIELD = 2051
+Z3_OP_PB_AT_MOST = 2304
+Z3_OP_PB_AT_LEAST = 2305
+Z3_OP_PB_LE = 2306
+Z3_OP_PB_GE = 2307
+Z3_OP_PB_EQ = 2308
+Z3_OP_FPA_RM_NEAREST_TIES_TO_EVEN = 2309
+Z3_OP_FPA_RM_NEAREST_TIES_TO_AWAY = 2310
+Z3_OP_FPA_RM_TOWARD_POSITIVE = 2311
+Z3_OP_FPA_RM_TOWARD_NEGATIVE = 2312
+Z3_OP_FPA_RM_TOWARD_ZERO = 2313
+Z3_OP_FPA_NUM = 2314
+Z3_OP_FPA_PLUS_INF = 2315
+Z3_OP_FPA_MINUS_INF = 2316
+Z3_OP_FPA_NAN = 2317
+Z3_OP_FPA_PLUS_ZERO = 2318
+Z3_OP_FPA_MINUS_ZERO = 2319
+Z3_OP_FPA_ADD = 2320
+Z3_OP_FPA_SUB = 2321
+Z3_OP_FPA_NEG = 2322
+Z3_OP_FPA_MUL = 2323
+Z3_OP_FPA_DIV = 2324
+Z3_OP_FPA_REM = 2325
+Z3_OP_FPA_ABS = 2326
+Z3_OP_FPA_MIN = 2327
+Z3_OP_FPA_MAX = 2328
+Z3_OP_FPA_FMA = 2329
+Z3_OP_FPA_SQRT = 2330
+Z3_OP_FPA_ROUND_TO_INTEGRAL = 2331
+Z3_OP_FPA_EQ = 2332
+Z3_OP_FPA_LT = 2333
+Z3_OP_FPA_GT = 2334
+Z3_OP_FPA_LE = 2335
+Z3_OP_FPA_GE = 2336
+Z3_OP_FPA_IS_NAN = 2337
+Z3_OP_FPA_IS_INF = 2338
+Z3_OP_FPA_IS_ZERO = 2339
+Z3_OP_FPA_IS_NORMAL = 2340
+Z3_OP_FPA_IS_SUBNORMAL = 2341
+Z3_OP_FPA_IS_NEGATIVE = 2342
+Z3_OP_FPA_IS_POSITIVE = 2343
+Z3_OP_FPA_FP = 2344
+Z3_OP_FPA_TO_FP = 2345
+Z3_OP_FPA_TO_FP_UNSIGNED = 2346
+Z3_OP_FPA_TO_UBV = 2347
+Z3_OP_FPA_TO_SBV = 2348
+Z3_OP_FPA_TO_REAL = 2349
+Z3_OP_FPA_TO_IEEE_BV = 2350
+Z3_OP_FPA_BVWRAP = 2351
+Z3_OP_FPA_BV2RM = 2352
+Z3_OP_INTERNAL = 2353
+Z3_OP_UNINTERPRETED = 2354
+
+# enum Z3_param_kind
+Z3_PK_UINT = 0
+Z3_PK_BOOL = 1
+Z3_PK_DOUBLE = 2
+Z3_PK_SYMBOL = 3
+Z3_PK_STRING = 4
+Z3_PK_OTHER = 5
+Z3_PK_INVALID = 6
+
+# enum Z3_ast_print_mode
+Z3_PRINT_SMTLIB_FULL = 0
+Z3_PRINT_LOW_LEVEL = 1
+Z3_PRINT_SMTLIB2_COMPLIANT = 2
+
+# enum Z3_error_code
+Z3_OK = 0
+Z3_SORT_ERROR = 1
+Z3_IOB = 2
+Z3_INVALID_ARG = 3
+Z3_PARSER_ERROR = 4
+Z3_NO_PARSER = 5
+Z3_INVALID_PATTERN = 6
+Z3_MEMOUT_FAIL = 7
+Z3_FILE_ACCESS_ERROR = 8
+Z3_INTERNAL_FATAL = 9
+Z3_INVALID_USAGE = 10
+Z3_DEC_REF_ERROR = 11
+Z3_EXCEPTION = 12
+
+# enum Z3_goal_prec
+Z3_GOAL_PRECISE = 0
+Z3_GOAL_UNDER = 1
+Z3_GOAL_OVER = 2
+Z3_GOAL_UNDER_OVER = 3
+
diff --git a/rba.tool.core/lib32/z3/python/z3/z3consts.pyc b/rba.tool.core/lib32/z3/python/z3/z3consts.pyc
new file mode 100644
index 0000000..5b99b94
--- /dev/null
+++ b/rba.tool.core/lib32/z3/python/z3/z3consts.pyc
Binary files differ
diff --git a/rba.tool.core/lib32/z3/python/z3/z3core.py b/rba.tool.core/lib32/z3/python/z3/z3core.py
new file mode 100644
index 0000000..ebb9f6f
--- /dev/null
+++ b/rba.tool.core/lib32/z3/python/z3/z3core.py
@@ -0,0 +1,4532 @@
+
+# Automatically generated file
+import sys, os
+import ctypes
+import pkg_resources
+from .z3types import *
+from .z3consts import *
+
+_ext = 'dll' if sys.platform in ('win32', 'cygwin') else 'dylib' if sys.platform == 'darwin' else 'so'
+_lib = None
+_default_dirs = ['.',
+ os.path.dirname(os.path.abspath(__file__)),
+ pkg_resources.resource_filename('z3', 'lib'),
+ os.path.join(sys.prefix, 'lib'),
+ None]
+_all_dirs = []
+
+if sys.version < '3':
+ import __builtin__
+ if hasattr(__builtin__, "Z3_LIB_DIRS"):
+ _all_dirs = __builtin__.Z3_LIB_DIRS
+else:
+ import builtins
+ if hasattr(builtins, "Z3_LIB_DIRS"):
+ _all_dirs = builtins.Z3_LIB_DIRS
+
+for v in ('Z3_LIBRARY_PATH', 'PATH'):
+ if v in os.environ:
+ lp = os.environ[v];
+ lds = lp.split(';') if sys.platform in ('win32') else lp.split(':')
+ _all_dirs.extend(lds)
+
+_all_dirs.extend(_default_dirs)
+
+for d in _all_dirs:
+ try:
+ d = os.path.realpath(d)
+ if os.path.isdir(d):
+ d = os.path.join(d, 'libz3.%s' % _ext)
+ if os.path.isfile(d):
+ _lib = ctypes.CDLL(d)
+ break
+ except:
+ pass
+
+if _lib is None:
+ # If all else failed, ask the system to find it.
+ try:
+ _lib = ctypes.CDLL('libz3.%s' % _ext)
+ except:
+ pass
+
+if _lib is None:
+ print("Could not find libz3.%s; consider adding the directory containing it to" % _ext)
+ print(" - your system's PATH environment variable,")
+ print(" - the Z3_LIBRARY_PATH environment variable, or ")
+ print(" - to the custom Z3_LIBRARY_DIRS Python-builtin before importing the z3 module, e.g. via")
+ if sys.version < '3':
+ print(" import __builtin__")
+ print(" __builtin__.Z3_LIB_DIRS = [ '/path/to/libz3.%s' ] " % _ext)
+ else:
+ print(" import builtins")
+ print(" builtins.Z3_LIB_DIRS = [ '/path/to/libz3.%s' ] " % _ext)
+ raise Z3Exception("libz3.%s not found." % _ext)
+
+def _to_ascii(s):
+ if isinstance(s, str):
+ return s.encode('ascii')
+ else:
+ return s
+
+if sys.version < '3':
+ def _to_pystr(s):
+ return s
+else:
+ def _to_pystr(s):
+ if s != None:
+ enc = sys.stdout.encoding
+ if enc != None: return s.decode(enc)
+ else: return s.decode('ascii')
+ else:
+ return ""
+
+_error_handler_type = ctypes.CFUNCTYPE(None, ctypes.c_void_p, ctypes.c_uint)
+
+_lib.Z3_set_error_handler.restype = None
+_lib.Z3_set_error_handler.argtypes = [ContextObj, _error_handler_type]
+
+_lib.Z3_global_param_set.argtypes = [ctypes.c_char_p, ctypes.c_char_p]
+_lib.Z3_global_param_reset_all.argtypes = []
+_lib.Z3_global_param_get.restype = ctypes.c_bool
+_lib.Z3_global_param_get.argtypes = [ctypes.c_char_p, ctypes.POINTER(ctypes.c_char_p)]
+_lib.Z3_mk_config.restype = Config
+_lib.Z3_mk_config.argtypes = []
+_lib.Z3_del_config.argtypes = [Config]
+_lib.Z3_set_param_value.argtypes = [Config, ctypes.c_char_p, ctypes.c_char_p]
+_lib.Z3_mk_context.restype = ContextObj
+_lib.Z3_mk_context.argtypes = [Config]
+_lib.Z3_mk_context_rc.restype = ContextObj
+_lib.Z3_mk_context_rc.argtypes = [Config]
+_lib.Z3_del_context.argtypes = [ContextObj]
+_lib.Z3_inc_ref.argtypes = [ContextObj, Ast]
+_lib.Z3_dec_ref.argtypes = [ContextObj, Ast]
+_lib.Z3_update_param_value.argtypes = [ContextObj, ctypes.c_char_p, ctypes.c_char_p]
+_lib.Z3_interrupt.argtypes = [ContextObj]
+_lib.Z3_mk_params.restype = Params
+_lib.Z3_mk_params.argtypes = [ContextObj]
+_lib.Z3_params_inc_ref.argtypes = [ContextObj, Params]
+_lib.Z3_params_dec_ref.argtypes = [ContextObj, Params]
+_lib.Z3_params_set_bool.argtypes = [ContextObj, Params, Symbol, ctypes.c_bool]
+_lib.Z3_params_set_uint.argtypes = [ContextObj, Params, Symbol, ctypes.c_uint]
+_lib.Z3_params_set_double.argtypes = [ContextObj, Params, Symbol, ctypes.c_double]
+_lib.Z3_params_set_symbol.argtypes = [ContextObj, Params, Symbol, Symbol]
+_lib.Z3_params_to_string.restype = ctypes.c_char_p
+_lib.Z3_params_to_string.argtypes = [ContextObj, Params]
+_lib.Z3_params_validate.argtypes = [ContextObj, Params, ParamDescrs]
+_lib.Z3_param_descrs_inc_ref.argtypes = [ContextObj, ParamDescrs]
+_lib.Z3_param_descrs_dec_ref.argtypes = [ContextObj, ParamDescrs]
+_lib.Z3_param_descrs_get_kind.restype = ctypes.c_uint
+_lib.Z3_param_descrs_get_kind.argtypes = [ContextObj, ParamDescrs, Symbol]
+_lib.Z3_param_descrs_size.restype = ctypes.c_uint
+_lib.Z3_param_descrs_size.argtypes = [ContextObj, ParamDescrs]
+_lib.Z3_param_descrs_get_name.restype = Symbol
+_lib.Z3_param_descrs_get_name.argtypes = [ContextObj, ParamDescrs, ctypes.c_uint]
+_lib.Z3_param_descrs_get_documentation.restype = ctypes.c_char_p
+_lib.Z3_param_descrs_get_documentation.argtypes = [ContextObj, ParamDescrs, Symbol]
+_lib.Z3_param_descrs_to_string.restype = ctypes.c_char_p
+_lib.Z3_param_descrs_to_string.argtypes = [ContextObj, ParamDescrs]
+_lib.Z3_mk_int_symbol.restype = Symbol
+_lib.Z3_mk_int_symbol.argtypes = [ContextObj, ctypes.c_int]
+_lib.Z3_mk_string_symbol.restype = Symbol
+_lib.Z3_mk_string_symbol.argtypes = [ContextObj, ctypes.c_char_p]
+_lib.Z3_mk_uninterpreted_sort.restype = Sort
+_lib.Z3_mk_uninterpreted_sort.argtypes = [ContextObj, Symbol]
+_lib.Z3_mk_bool_sort.restype = Sort
+_lib.Z3_mk_bool_sort.argtypes = [ContextObj]
+_lib.Z3_mk_int_sort.restype = Sort
+_lib.Z3_mk_int_sort.argtypes = [ContextObj]
+_lib.Z3_mk_real_sort.restype = Sort
+_lib.Z3_mk_real_sort.argtypes = [ContextObj]
+_lib.Z3_mk_bv_sort.restype = Sort
+_lib.Z3_mk_bv_sort.argtypes = [ContextObj, ctypes.c_uint]
+_lib.Z3_mk_finite_domain_sort.restype = Sort
+_lib.Z3_mk_finite_domain_sort.argtypes = [ContextObj, Symbol, ctypes.c_ulonglong]
+_lib.Z3_mk_array_sort.restype = Sort
+_lib.Z3_mk_array_sort.argtypes = [ContextObj, Sort, Sort]
+_lib.Z3_mk_array_sort_n.restype = Sort
+_lib.Z3_mk_array_sort_n.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Sort), Sort]
+_lib.Z3_mk_tuple_sort.restype = Sort
+_lib.Z3_mk_tuple_sort.argtypes = [ContextObj, Symbol, ctypes.c_uint, ctypes.POINTER(Symbol), ctypes.POINTER(Sort), ctypes.POINTER(FuncDecl), ctypes.POINTER(FuncDecl)]
+_lib.Z3_mk_enumeration_sort.restype = Sort
+_lib.Z3_mk_enumeration_sort.argtypes = [ContextObj, Symbol, ctypes.c_uint, ctypes.POINTER(Symbol), ctypes.POINTER(FuncDecl), ctypes.POINTER(FuncDecl)]
+_lib.Z3_mk_list_sort.restype = Sort
+_lib.Z3_mk_list_sort.argtypes = [ContextObj, Symbol, Sort, ctypes.POINTER(FuncDecl), ctypes.POINTER(FuncDecl), ctypes.POINTER(FuncDecl), ctypes.POINTER(FuncDecl), ctypes.POINTER(FuncDecl), ctypes.POINTER(FuncDecl)]
+_lib.Z3_mk_constructor.restype = Constructor
+_lib.Z3_mk_constructor.argtypes = [ContextObj, Symbol, Symbol, ctypes.c_uint, ctypes.POINTER(Symbol), ctypes.POINTER(Sort), ctypes.POINTER(ctypes.c_uint)]
+_lib.Z3_del_constructor.argtypes = [ContextObj, Constructor]
+_lib.Z3_mk_datatype.restype = Sort
+_lib.Z3_mk_datatype.argtypes = [ContextObj, Symbol, ctypes.c_uint, ctypes.POINTER(Constructor)]
+_lib.Z3_mk_constructor_list.restype = ConstructorList
+_lib.Z3_mk_constructor_list.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Constructor)]
+_lib.Z3_del_constructor_list.argtypes = [ContextObj, ConstructorList]
+_lib.Z3_mk_datatypes.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Symbol), ctypes.POINTER(Sort), ctypes.POINTER(ConstructorList)]
+_lib.Z3_query_constructor.argtypes = [ContextObj, Constructor, ctypes.c_uint, ctypes.POINTER(FuncDecl), ctypes.POINTER(FuncDecl), ctypes.POINTER(FuncDecl)]
+_lib.Z3_mk_func_decl.restype = FuncDecl
+_lib.Z3_mk_func_decl.argtypes = [ContextObj, Symbol, ctypes.c_uint, ctypes.POINTER(Sort), Sort]
+_lib.Z3_mk_app.restype = Ast
+_lib.Z3_mk_app.argtypes = [ContextObj, FuncDecl, ctypes.c_uint, ctypes.POINTER(Ast)]
+_lib.Z3_mk_const.restype = Ast
+_lib.Z3_mk_const.argtypes = [ContextObj, Symbol, Sort]
+_lib.Z3_mk_fresh_func_decl.restype = FuncDecl
+_lib.Z3_mk_fresh_func_decl.argtypes = [ContextObj, ctypes.c_char_p, ctypes.c_uint, ctypes.POINTER(Sort), Sort]
+_lib.Z3_mk_fresh_const.restype = Ast
+_lib.Z3_mk_fresh_const.argtypes = [ContextObj, ctypes.c_char_p, Sort]
+_lib.Z3_mk_true.restype = Ast
+_lib.Z3_mk_true.argtypes = [ContextObj]
+_lib.Z3_mk_false.restype = Ast
+_lib.Z3_mk_false.argtypes = [ContextObj]
+_lib.Z3_mk_eq.restype = Ast
+_lib.Z3_mk_eq.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_distinct.restype = Ast
+_lib.Z3_mk_distinct.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast)]
+_lib.Z3_mk_not.restype = Ast
+_lib.Z3_mk_not.argtypes = [ContextObj, Ast]
+_lib.Z3_mk_ite.restype = Ast
+_lib.Z3_mk_ite.argtypes = [ContextObj, Ast, Ast, Ast]
+_lib.Z3_mk_iff.restype = Ast
+_lib.Z3_mk_iff.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_implies.restype = Ast
+_lib.Z3_mk_implies.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_xor.restype = Ast
+_lib.Z3_mk_xor.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_and.restype = Ast
+_lib.Z3_mk_and.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast)]
+_lib.Z3_mk_or.restype = Ast
+_lib.Z3_mk_or.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast)]
+_lib.Z3_mk_add.restype = Ast
+_lib.Z3_mk_add.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast)]
+_lib.Z3_mk_mul.restype = Ast
+_lib.Z3_mk_mul.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast)]
+_lib.Z3_mk_sub.restype = Ast
+_lib.Z3_mk_sub.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast)]
+_lib.Z3_mk_unary_minus.restype = Ast
+_lib.Z3_mk_unary_minus.argtypes = [ContextObj, Ast]
+_lib.Z3_mk_div.restype = Ast
+_lib.Z3_mk_div.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_mod.restype = Ast
+_lib.Z3_mk_mod.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_rem.restype = Ast
+_lib.Z3_mk_rem.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_power.restype = Ast
+_lib.Z3_mk_power.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_lt.restype = Ast
+_lib.Z3_mk_lt.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_le.restype = Ast
+_lib.Z3_mk_le.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_gt.restype = Ast
+_lib.Z3_mk_gt.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_ge.restype = Ast
+_lib.Z3_mk_ge.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_int2real.restype = Ast
+_lib.Z3_mk_int2real.argtypes = [ContextObj, Ast]
+_lib.Z3_mk_real2int.restype = Ast
+_lib.Z3_mk_real2int.argtypes = [ContextObj, Ast]
+_lib.Z3_mk_is_int.restype = Ast
+_lib.Z3_mk_is_int.argtypes = [ContextObj, Ast]
+_lib.Z3_mk_bvnot.restype = Ast
+_lib.Z3_mk_bvnot.argtypes = [ContextObj, Ast]
+_lib.Z3_mk_bvredand.restype = Ast
+_lib.Z3_mk_bvredand.argtypes = [ContextObj, Ast]
+_lib.Z3_mk_bvredor.restype = Ast
+_lib.Z3_mk_bvredor.argtypes = [ContextObj, Ast]
+_lib.Z3_mk_bvand.restype = Ast
+_lib.Z3_mk_bvand.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_bvor.restype = Ast
+_lib.Z3_mk_bvor.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_bvxor.restype = Ast
+_lib.Z3_mk_bvxor.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_bvnand.restype = Ast
+_lib.Z3_mk_bvnand.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_bvnor.restype = Ast
+_lib.Z3_mk_bvnor.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_bvxnor.restype = Ast
+_lib.Z3_mk_bvxnor.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_bvneg.restype = Ast
+_lib.Z3_mk_bvneg.argtypes = [ContextObj, Ast]
+_lib.Z3_mk_bvadd.restype = Ast
+_lib.Z3_mk_bvadd.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_bvsub.restype = Ast
+_lib.Z3_mk_bvsub.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_bvmul.restype = Ast
+_lib.Z3_mk_bvmul.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_bvudiv.restype = Ast
+_lib.Z3_mk_bvudiv.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_bvsdiv.restype = Ast
+_lib.Z3_mk_bvsdiv.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_bvurem.restype = Ast
+_lib.Z3_mk_bvurem.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_bvsrem.restype = Ast
+_lib.Z3_mk_bvsrem.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_bvsmod.restype = Ast
+_lib.Z3_mk_bvsmod.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_bvult.restype = Ast
+_lib.Z3_mk_bvult.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_bvslt.restype = Ast
+_lib.Z3_mk_bvslt.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_bvule.restype = Ast
+_lib.Z3_mk_bvule.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_bvsle.restype = Ast
+_lib.Z3_mk_bvsle.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_bvuge.restype = Ast
+_lib.Z3_mk_bvuge.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_bvsge.restype = Ast
+_lib.Z3_mk_bvsge.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_bvugt.restype = Ast
+_lib.Z3_mk_bvugt.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_bvsgt.restype = Ast
+_lib.Z3_mk_bvsgt.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_concat.restype = Ast
+_lib.Z3_mk_concat.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_extract.restype = Ast
+_lib.Z3_mk_extract.argtypes = [ContextObj, ctypes.c_uint, ctypes.c_uint, Ast]
+_lib.Z3_mk_sign_ext.restype = Ast
+_lib.Z3_mk_sign_ext.argtypes = [ContextObj, ctypes.c_uint, Ast]
+_lib.Z3_mk_zero_ext.restype = Ast
+_lib.Z3_mk_zero_ext.argtypes = [ContextObj, ctypes.c_uint, Ast]
+_lib.Z3_mk_repeat.restype = Ast
+_lib.Z3_mk_repeat.argtypes = [ContextObj, ctypes.c_uint, Ast]
+_lib.Z3_mk_bvshl.restype = Ast
+_lib.Z3_mk_bvshl.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_bvlshr.restype = Ast
+_lib.Z3_mk_bvlshr.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_bvashr.restype = Ast
+_lib.Z3_mk_bvashr.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_rotate_left.restype = Ast
+_lib.Z3_mk_rotate_left.argtypes = [ContextObj, ctypes.c_uint, Ast]
+_lib.Z3_mk_rotate_right.restype = Ast
+_lib.Z3_mk_rotate_right.argtypes = [ContextObj, ctypes.c_uint, Ast]
+_lib.Z3_mk_ext_rotate_left.restype = Ast
+_lib.Z3_mk_ext_rotate_left.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_ext_rotate_right.restype = Ast
+_lib.Z3_mk_ext_rotate_right.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_int2bv.restype = Ast
+_lib.Z3_mk_int2bv.argtypes = [ContextObj, ctypes.c_uint, Ast]
+_lib.Z3_mk_bv2int.restype = Ast
+_lib.Z3_mk_bv2int.argtypes = [ContextObj, Ast, ctypes.c_bool]
+_lib.Z3_mk_bvadd_no_overflow.restype = Ast
+_lib.Z3_mk_bvadd_no_overflow.argtypes = [ContextObj, Ast, Ast, ctypes.c_bool]
+_lib.Z3_mk_bvadd_no_underflow.restype = Ast
+_lib.Z3_mk_bvadd_no_underflow.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_bvsub_no_overflow.restype = Ast
+_lib.Z3_mk_bvsub_no_overflow.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_bvsub_no_underflow.restype = Ast
+_lib.Z3_mk_bvsub_no_underflow.argtypes = [ContextObj, Ast, Ast, ctypes.c_bool]
+_lib.Z3_mk_bvsdiv_no_overflow.restype = Ast
+_lib.Z3_mk_bvsdiv_no_overflow.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_bvneg_no_overflow.restype = Ast
+_lib.Z3_mk_bvneg_no_overflow.argtypes = [ContextObj, Ast]
+_lib.Z3_mk_bvmul_no_overflow.restype = Ast
+_lib.Z3_mk_bvmul_no_overflow.argtypes = [ContextObj, Ast, Ast, ctypes.c_bool]
+_lib.Z3_mk_bvmul_no_underflow.restype = Ast
+_lib.Z3_mk_bvmul_no_underflow.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_select.restype = Ast
+_lib.Z3_mk_select.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_select_n.restype = Ast
+_lib.Z3_mk_select_n.argtypes = [ContextObj, Ast, ctypes.c_uint, ctypes.POINTER(Ast)]
+_lib.Z3_mk_store.restype = Ast
+_lib.Z3_mk_store.argtypes = [ContextObj, Ast, Ast, Ast]
+_lib.Z3_mk_store_n.restype = Ast
+_lib.Z3_mk_store_n.argtypes = [ContextObj, Ast, ctypes.c_uint, ctypes.POINTER(Ast), Ast]
+_lib.Z3_mk_const_array.restype = Ast
+_lib.Z3_mk_const_array.argtypes = [ContextObj, Sort, Ast]
+_lib.Z3_mk_map.restype = Ast
+_lib.Z3_mk_map.argtypes = [ContextObj, FuncDecl, ctypes.c_uint, ctypes.POINTER(Ast)]
+_lib.Z3_mk_array_default.restype = Ast
+_lib.Z3_mk_array_default.argtypes = [ContextObj, Ast]
+_lib.Z3_mk_as_array.restype = Ast
+_lib.Z3_mk_as_array.argtypes = [ContextObj, FuncDecl]
+_lib.Z3_mk_set_sort.restype = Sort
+_lib.Z3_mk_set_sort.argtypes = [ContextObj, Sort]
+_lib.Z3_mk_empty_set.restype = Ast
+_lib.Z3_mk_empty_set.argtypes = [ContextObj, Sort]
+_lib.Z3_mk_full_set.restype = Ast
+_lib.Z3_mk_full_set.argtypes = [ContextObj, Sort]
+_lib.Z3_mk_set_add.restype = Ast
+_lib.Z3_mk_set_add.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_set_del.restype = Ast
+_lib.Z3_mk_set_del.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_set_union.restype = Ast
+_lib.Z3_mk_set_union.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast)]
+_lib.Z3_mk_set_intersect.restype = Ast
+_lib.Z3_mk_set_intersect.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast)]
+_lib.Z3_mk_set_difference.restype = Ast
+_lib.Z3_mk_set_difference.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_set_complement.restype = Ast
+_lib.Z3_mk_set_complement.argtypes = [ContextObj, Ast]
+_lib.Z3_mk_set_member.restype = Ast
+_lib.Z3_mk_set_member.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_set_subset.restype = Ast
+_lib.Z3_mk_set_subset.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_array_ext.restype = Ast
+_lib.Z3_mk_array_ext.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_numeral.restype = Ast
+_lib.Z3_mk_numeral.argtypes = [ContextObj, ctypes.c_char_p, Sort]
+_lib.Z3_mk_real.restype = Ast
+_lib.Z3_mk_real.argtypes = [ContextObj, ctypes.c_int, ctypes.c_int]
+_lib.Z3_mk_int.restype = Ast
+_lib.Z3_mk_int.argtypes = [ContextObj, ctypes.c_int, Sort]
+_lib.Z3_mk_unsigned_int.restype = Ast
+_lib.Z3_mk_unsigned_int.argtypes = [ContextObj, ctypes.c_uint, Sort]
+_lib.Z3_mk_int64.restype = Ast
+_lib.Z3_mk_int64.argtypes = [ContextObj, ctypes.c_longlong, Sort]
+_lib.Z3_mk_unsigned_int64.restype = Ast
+_lib.Z3_mk_unsigned_int64.argtypes = [ContextObj, ctypes.c_ulonglong, Sort]
+_lib.Z3_mk_bv_numeral.restype = Ast
+_lib.Z3_mk_bv_numeral.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(ctypes.c_bool)]
+_lib.Z3_mk_seq_sort.restype = Sort
+_lib.Z3_mk_seq_sort.argtypes = [ContextObj, Sort]
+_lib.Z3_is_seq_sort.restype = ctypes.c_bool
+_lib.Z3_is_seq_sort.argtypes = [ContextObj, Sort]
+_lib.Z3_mk_re_sort.restype = Sort
+_lib.Z3_mk_re_sort.argtypes = [ContextObj, Sort]
+_lib.Z3_is_re_sort.restype = ctypes.c_bool
+_lib.Z3_is_re_sort.argtypes = [ContextObj, Sort]
+_lib.Z3_mk_string_sort.restype = Sort
+_lib.Z3_mk_string_sort.argtypes = [ContextObj]
+_lib.Z3_is_string_sort.restype = ctypes.c_bool
+_lib.Z3_is_string_sort.argtypes = [ContextObj, Sort]
+_lib.Z3_mk_string.restype = Ast
+_lib.Z3_mk_string.argtypes = [ContextObj, ctypes.c_char_p]
+_lib.Z3_is_string.restype = ctypes.c_bool
+_lib.Z3_is_string.argtypes = [ContextObj, Ast]
+_lib.Z3_get_string.restype = ctypes.c_char_p
+_lib.Z3_get_string.argtypes = [ContextObj, Ast]
+_lib.Z3_mk_seq_empty.restype = Ast
+_lib.Z3_mk_seq_empty.argtypes = [ContextObj, Sort]
+_lib.Z3_mk_seq_unit.restype = Ast
+_lib.Z3_mk_seq_unit.argtypes = [ContextObj, Ast]
+_lib.Z3_mk_seq_concat.restype = Ast
+_lib.Z3_mk_seq_concat.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast)]
+_lib.Z3_mk_seq_prefix.restype = Ast
+_lib.Z3_mk_seq_prefix.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_seq_suffix.restype = Ast
+_lib.Z3_mk_seq_suffix.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_seq_contains.restype = Ast
+_lib.Z3_mk_seq_contains.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_seq_extract.restype = Ast
+_lib.Z3_mk_seq_extract.argtypes = [ContextObj, Ast, Ast, Ast]
+_lib.Z3_mk_seq_replace.restype = Ast
+_lib.Z3_mk_seq_replace.argtypes = [ContextObj, Ast, Ast, Ast]
+_lib.Z3_mk_seq_at.restype = Ast
+_lib.Z3_mk_seq_at.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_seq_length.restype = Ast
+_lib.Z3_mk_seq_length.argtypes = [ContextObj, Ast]
+_lib.Z3_mk_seq_index.restype = Ast
+_lib.Z3_mk_seq_index.argtypes = [ContextObj, Ast, Ast, Ast]
+_lib.Z3_mk_str_to_int.restype = Ast
+_lib.Z3_mk_str_to_int.argtypes = [ContextObj, Ast]
+_lib.Z3_mk_int_to_str.restype = Ast
+_lib.Z3_mk_int_to_str.argtypes = [ContextObj, Ast]
+_lib.Z3_mk_seq_to_re.restype = Ast
+_lib.Z3_mk_seq_to_re.argtypes = [ContextObj, Ast]
+_lib.Z3_mk_seq_in_re.restype = Ast
+_lib.Z3_mk_seq_in_re.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_re_plus.restype = Ast
+_lib.Z3_mk_re_plus.argtypes = [ContextObj, Ast]
+_lib.Z3_mk_re_star.restype = Ast
+_lib.Z3_mk_re_star.argtypes = [ContextObj, Ast]
+_lib.Z3_mk_re_option.restype = Ast
+_lib.Z3_mk_re_option.argtypes = [ContextObj, Ast]
+_lib.Z3_mk_re_union.restype = Ast
+_lib.Z3_mk_re_union.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast)]
+_lib.Z3_mk_re_concat.restype = Ast
+_lib.Z3_mk_re_concat.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast)]
+_lib.Z3_mk_re_range.restype = Ast
+_lib.Z3_mk_re_range.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_re_loop.restype = Ast
+_lib.Z3_mk_re_loop.argtypes = [ContextObj, Ast, ctypes.c_uint, ctypes.c_uint]
+_lib.Z3_mk_re_intersect.restype = Ast
+_lib.Z3_mk_re_intersect.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast)]
+_lib.Z3_mk_re_complement.restype = Ast
+_lib.Z3_mk_re_complement.argtypes = [ContextObj, Ast]
+_lib.Z3_mk_re_empty.restype = Ast
+_lib.Z3_mk_re_empty.argtypes = [ContextObj, Sort]
+_lib.Z3_mk_re_full.restype = Ast
+_lib.Z3_mk_re_full.argtypes = [ContextObj, Sort]
+_lib.Z3_mk_pattern.restype = Pattern
+_lib.Z3_mk_pattern.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast)]
+_lib.Z3_mk_bound.restype = Ast
+_lib.Z3_mk_bound.argtypes = [ContextObj, ctypes.c_uint, Sort]
+_lib.Z3_mk_forall.restype = Ast
+_lib.Z3_mk_forall.argtypes = [ContextObj, ctypes.c_uint, ctypes.c_uint, ctypes.POINTER(Pattern), ctypes.c_uint, ctypes.POINTER(Sort), ctypes.POINTER(Symbol), Ast]
+_lib.Z3_mk_exists.restype = Ast
+_lib.Z3_mk_exists.argtypes = [ContextObj, ctypes.c_uint, ctypes.c_uint, ctypes.POINTER(Pattern), ctypes.c_uint, ctypes.POINTER(Sort), ctypes.POINTER(Symbol), Ast]
+_lib.Z3_mk_quantifier.restype = Ast
+_lib.Z3_mk_quantifier.argtypes = [ContextObj, ctypes.c_bool, ctypes.c_uint, ctypes.c_uint, ctypes.POINTER(Pattern), ctypes.c_uint, ctypes.POINTER(Sort), ctypes.POINTER(Symbol), Ast]
+_lib.Z3_mk_quantifier_ex.restype = Ast
+_lib.Z3_mk_quantifier_ex.argtypes = [ContextObj, ctypes.c_bool, ctypes.c_uint, Symbol, Symbol, ctypes.c_uint, ctypes.POINTER(Pattern), ctypes.c_uint, ctypes.POINTER(Ast), ctypes.c_uint, ctypes.POINTER(Sort), ctypes.POINTER(Symbol), Ast]
+_lib.Z3_mk_forall_const.restype = Ast
+_lib.Z3_mk_forall_const.argtypes = [ContextObj, ctypes.c_uint, ctypes.c_uint, ctypes.POINTER(Ast), ctypes.c_uint, ctypes.POINTER(Pattern), Ast]
+_lib.Z3_mk_exists_const.restype = Ast
+_lib.Z3_mk_exists_const.argtypes = [ContextObj, ctypes.c_uint, ctypes.c_uint, ctypes.POINTER(Ast), ctypes.c_uint, ctypes.POINTER(Pattern), Ast]
+_lib.Z3_mk_quantifier_const.restype = Ast
+_lib.Z3_mk_quantifier_const.argtypes = [ContextObj, ctypes.c_bool, ctypes.c_uint, ctypes.c_uint, ctypes.POINTER(Ast), ctypes.c_uint, ctypes.POINTER(Pattern), Ast]
+_lib.Z3_mk_quantifier_const_ex.restype = Ast
+_lib.Z3_mk_quantifier_const_ex.argtypes = [ContextObj, ctypes.c_bool, ctypes.c_uint, Symbol, Symbol, ctypes.c_uint, ctypes.POINTER(Ast), ctypes.c_uint, ctypes.POINTER(Pattern), ctypes.c_uint, ctypes.POINTER(Ast), Ast]
+_lib.Z3_get_symbol_kind.restype = ctypes.c_uint
+_lib.Z3_get_symbol_kind.argtypes = [ContextObj, Symbol]
+_lib.Z3_get_symbol_int.restype = ctypes.c_int
+_lib.Z3_get_symbol_int.argtypes = [ContextObj, Symbol]
+_lib.Z3_get_symbol_string.restype = ctypes.c_char_p
+_lib.Z3_get_symbol_string.argtypes = [ContextObj, Symbol]
+_lib.Z3_get_sort_name.restype = Symbol
+_lib.Z3_get_sort_name.argtypes = [ContextObj, Sort]
+_lib.Z3_get_sort_id.restype = ctypes.c_uint
+_lib.Z3_get_sort_id.argtypes = [ContextObj, Sort]
+_lib.Z3_sort_to_ast.restype = Ast
+_lib.Z3_sort_to_ast.argtypes = [ContextObj, Sort]
+_lib.Z3_is_eq_sort.restype = ctypes.c_bool
+_lib.Z3_is_eq_sort.argtypes = [ContextObj, Sort, Sort]
+_lib.Z3_get_sort_kind.restype = ctypes.c_uint
+_lib.Z3_get_sort_kind.argtypes = [ContextObj, Sort]
+_lib.Z3_get_bv_sort_size.restype = ctypes.c_uint
+_lib.Z3_get_bv_sort_size.argtypes = [ContextObj, Sort]
+_lib.Z3_get_finite_domain_sort_size.restype = ctypes.c_bool
+_lib.Z3_get_finite_domain_sort_size.argtypes = [ContextObj, Sort, ctypes.POINTER(ctypes.c_ulonglong)]
+_lib.Z3_get_array_sort_domain.restype = Sort
+_lib.Z3_get_array_sort_domain.argtypes = [ContextObj, Sort]
+_lib.Z3_get_array_sort_range.restype = Sort
+_lib.Z3_get_array_sort_range.argtypes = [ContextObj, Sort]
+_lib.Z3_get_tuple_sort_mk_decl.restype = FuncDecl
+_lib.Z3_get_tuple_sort_mk_decl.argtypes = [ContextObj, Sort]
+_lib.Z3_get_tuple_sort_num_fields.restype = ctypes.c_uint
+_lib.Z3_get_tuple_sort_num_fields.argtypes = [ContextObj, Sort]
+_lib.Z3_get_tuple_sort_field_decl.restype = FuncDecl
+_lib.Z3_get_tuple_sort_field_decl.argtypes = [ContextObj, Sort, ctypes.c_uint]
+_lib.Z3_get_datatype_sort_num_constructors.restype = ctypes.c_uint
+_lib.Z3_get_datatype_sort_num_constructors.argtypes = [ContextObj, Sort]
+_lib.Z3_get_datatype_sort_constructor.restype = FuncDecl
+_lib.Z3_get_datatype_sort_constructor.argtypes = [ContextObj, Sort, ctypes.c_uint]
+_lib.Z3_get_datatype_sort_recognizer.restype = FuncDecl
+_lib.Z3_get_datatype_sort_recognizer.argtypes = [ContextObj, Sort, ctypes.c_uint]
+_lib.Z3_get_datatype_sort_constructor_accessor.restype = FuncDecl
+_lib.Z3_get_datatype_sort_constructor_accessor.argtypes = [ContextObj, Sort, ctypes.c_uint, ctypes.c_uint]
+_lib.Z3_datatype_update_field.restype = Ast
+_lib.Z3_datatype_update_field.argtypes = [ContextObj, FuncDecl, Ast, Ast]
+_lib.Z3_get_relation_arity.restype = ctypes.c_uint
+_lib.Z3_get_relation_arity.argtypes = [ContextObj, Sort]
+_lib.Z3_get_relation_column.restype = Sort
+_lib.Z3_get_relation_column.argtypes = [ContextObj, Sort, ctypes.c_uint]
+_lib.Z3_mk_atmost.restype = Ast
+_lib.Z3_mk_atmost.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast), ctypes.c_uint]
+_lib.Z3_mk_atleast.restype = Ast
+_lib.Z3_mk_atleast.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast), ctypes.c_uint]
+_lib.Z3_mk_pble.restype = Ast
+_lib.Z3_mk_pble.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast), ctypes.POINTER(ctypes.c_int), ctypes.c_int]
+_lib.Z3_mk_pbge.restype = Ast
+_lib.Z3_mk_pbge.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast), ctypes.POINTER(ctypes.c_int), ctypes.c_int]
+_lib.Z3_mk_pbeq.restype = Ast
+_lib.Z3_mk_pbeq.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast), ctypes.POINTER(ctypes.c_int), ctypes.c_int]
+_lib.Z3_func_decl_to_ast.restype = Ast
+_lib.Z3_func_decl_to_ast.argtypes = [ContextObj, FuncDecl]
+_lib.Z3_is_eq_func_decl.restype = ctypes.c_bool
+_lib.Z3_is_eq_func_decl.argtypes = [ContextObj, FuncDecl, FuncDecl]
+_lib.Z3_get_func_decl_id.restype = ctypes.c_uint
+_lib.Z3_get_func_decl_id.argtypes = [ContextObj, FuncDecl]
+_lib.Z3_get_decl_name.restype = Symbol
+_lib.Z3_get_decl_name.argtypes = [ContextObj, FuncDecl]
+_lib.Z3_get_decl_kind.restype = ctypes.c_uint
+_lib.Z3_get_decl_kind.argtypes = [ContextObj, FuncDecl]
+_lib.Z3_get_domain_size.restype = ctypes.c_uint
+_lib.Z3_get_domain_size.argtypes = [ContextObj, FuncDecl]
+_lib.Z3_get_arity.restype = ctypes.c_uint
+_lib.Z3_get_arity.argtypes = [ContextObj, FuncDecl]
+_lib.Z3_get_domain.restype = Sort
+_lib.Z3_get_domain.argtypes = [ContextObj, FuncDecl, ctypes.c_uint]
+_lib.Z3_get_range.restype = Sort
+_lib.Z3_get_range.argtypes = [ContextObj, FuncDecl]
+_lib.Z3_get_decl_num_parameters.restype = ctypes.c_uint
+_lib.Z3_get_decl_num_parameters.argtypes = [ContextObj, FuncDecl]
+_lib.Z3_get_decl_parameter_kind.restype = ctypes.c_uint
+_lib.Z3_get_decl_parameter_kind.argtypes = [ContextObj, FuncDecl, ctypes.c_uint]
+_lib.Z3_get_decl_int_parameter.restype = ctypes.c_int
+_lib.Z3_get_decl_int_parameter.argtypes = [ContextObj, FuncDecl, ctypes.c_uint]
+_lib.Z3_get_decl_double_parameter.restype = ctypes.c_double
+_lib.Z3_get_decl_double_parameter.argtypes = [ContextObj, FuncDecl, ctypes.c_uint]
+_lib.Z3_get_decl_symbol_parameter.restype = Symbol
+_lib.Z3_get_decl_symbol_parameter.argtypes = [ContextObj, FuncDecl, ctypes.c_uint]
+_lib.Z3_get_decl_sort_parameter.restype = Sort
+_lib.Z3_get_decl_sort_parameter.argtypes = [ContextObj, FuncDecl, ctypes.c_uint]
+_lib.Z3_get_decl_ast_parameter.restype = Ast
+_lib.Z3_get_decl_ast_parameter.argtypes = [ContextObj, FuncDecl, ctypes.c_uint]
+_lib.Z3_get_decl_func_decl_parameter.restype = FuncDecl
+_lib.Z3_get_decl_func_decl_parameter.argtypes = [ContextObj, FuncDecl, ctypes.c_uint]
+_lib.Z3_get_decl_rational_parameter.restype = ctypes.c_char_p
+_lib.Z3_get_decl_rational_parameter.argtypes = [ContextObj, FuncDecl, ctypes.c_uint]
+_lib.Z3_app_to_ast.restype = Ast
+_lib.Z3_app_to_ast.argtypes = [ContextObj, Ast]
+_lib.Z3_get_app_decl.restype = FuncDecl
+_lib.Z3_get_app_decl.argtypes = [ContextObj, Ast]
+_lib.Z3_get_app_num_args.restype = ctypes.c_uint
+_lib.Z3_get_app_num_args.argtypes = [ContextObj, Ast]
+_lib.Z3_get_app_arg.restype = Ast
+_lib.Z3_get_app_arg.argtypes = [ContextObj, Ast, ctypes.c_uint]
+_lib.Z3_is_eq_ast.restype = ctypes.c_bool
+_lib.Z3_is_eq_ast.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_get_ast_id.restype = ctypes.c_uint
+_lib.Z3_get_ast_id.argtypes = [ContextObj, Ast]
+_lib.Z3_get_ast_hash.restype = ctypes.c_uint
+_lib.Z3_get_ast_hash.argtypes = [ContextObj, Ast]
+_lib.Z3_get_sort.restype = Sort
+_lib.Z3_get_sort.argtypes = [ContextObj, Ast]
+_lib.Z3_is_well_sorted.restype = ctypes.c_bool
+_lib.Z3_is_well_sorted.argtypes = [ContextObj, Ast]
+_lib.Z3_get_bool_value.restype = ctypes.c_int
+_lib.Z3_get_bool_value.argtypes = [ContextObj, Ast]
+_lib.Z3_get_ast_kind.restype = ctypes.c_uint
+_lib.Z3_get_ast_kind.argtypes = [ContextObj, Ast]
+_lib.Z3_is_app.restype = ctypes.c_bool
+_lib.Z3_is_app.argtypes = [ContextObj, Ast]
+_lib.Z3_is_numeral_ast.restype = ctypes.c_bool
+_lib.Z3_is_numeral_ast.argtypes = [ContextObj, Ast]
+_lib.Z3_is_algebraic_number.restype = ctypes.c_bool
+_lib.Z3_is_algebraic_number.argtypes = [ContextObj, Ast]
+_lib.Z3_to_app.restype = Ast
+_lib.Z3_to_app.argtypes = [ContextObj, Ast]
+_lib.Z3_to_func_decl.restype = FuncDecl
+_lib.Z3_to_func_decl.argtypes = [ContextObj, Ast]
+_lib.Z3_get_numeral_string.restype = ctypes.c_char_p
+_lib.Z3_get_numeral_string.argtypes = [ContextObj, Ast]
+_lib.Z3_get_numeral_decimal_string.restype = ctypes.c_char_p
+_lib.Z3_get_numeral_decimal_string.argtypes = [ContextObj, Ast, ctypes.c_uint]
+_lib.Z3_get_numerator.restype = Ast
+_lib.Z3_get_numerator.argtypes = [ContextObj, Ast]
+_lib.Z3_get_denominator.restype = Ast
+_lib.Z3_get_denominator.argtypes = [ContextObj, Ast]
+_lib.Z3_get_numeral_small.restype = ctypes.c_bool
+_lib.Z3_get_numeral_small.argtypes = [ContextObj, Ast, ctypes.POINTER(ctypes.c_longlong), ctypes.POINTER(ctypes.c_longlong)]
+_lib.Z3_get_numeral_int.restype = ctypes.c_bool
+_lib.Z3_get_numeral_int.argtypes = [ContextObj, Ast, ctypes.POINTER(ctypes.c_int)]
+_lib.Z3_get_numeral_uint.restype = ctypes.c_bool
+_lib.Z3_get_numeral_uint.argtypes = [ContextObj, Ast, ctypes.POINTER(ctypes.c_uint)]
+_lib.Z3_get_numeral_uint64.restype = ctypes.c_bool
+_lib.Z3_get_numeral_uint64.argtypes = [ContextObj, Ast, ctypes.POINTER(ctypes.c_ulonglong)]
+_lib.Z3_get_numeral_int64.restype = ctypes.c_bool
+_lib.Z3_get_numeral_int64.argtypes = [ContextObj, Ast, ctypes.POINTER(ctypes.c_longlong)]
+_lib.Z3_get_numeral_rational_int64.restype = ctypes.c_bool
+_lib.Z3_get_numeral_rational_int64.argtypes = [ContextObj, Ast, ctypes.POINTER(ctypes.c_longlong), ctypes.POINTER(ctypes.c_longlong)]
+_lib.Z3_get_algebraic_number_lower.restype = Ast
+_lib.Z3_get_algebraic_number_lower.argtypes = [ContextObj, Ast, ctypes.c_uint]
+_lib.Z3_get_algebraic_number_upper.restype = Ast
+_lib.Z3_get_algebraic_number_upper.argtypes = [ContextObj, Ast, ctypes.c_uint]
+_lib.Z3_pattern_to_ast.restype = Ast
+_lib.Z3_pattern_to_ast.argtypes = [ContextObj, Pattern]
+_lib.Z3_get_pattern_num_terms.restype = ctypes.c_uint
+_lib.Z3_get_pattern_num_terms.argtypes = [ContextObj, Pattern]
+_lib.Z3_get_pattern.restype = Ast
+_lib.Z3_get_pattern.argtypes = [ContextObj, Pattern, ctypes.c_uint]
+_lib.Z3_get_index_value.restype = ctypes.c_uint
+_lib.Z3_get_index_value.argtypes = [ContextObj, Ast]
+_lib.Z3_is_quantifier_forall.restype = ctypes.c_bool
+_lib.Z3_is_quantifier_forall.argtypes = [ContextObj, Ast]
+_lib.Z3_get_quantifier_weight.restype = ctypes.c_uint
+_lib.Z3_get_quantifier_weight.argtypes = [ContextObj, Ast]
+_lib.Z3_get_quantifier_num_patterns.restype = ctypes.c_uint
+_lib.Z3_get_quantifier_num_patterns.argtypes = [ContextObj, Ast]
+_lib.Z3_get_quantifier_pattern_ast.restype = Pattern
+_lib.Z3_get_quantifier_pattern_ast.argtypes = [ContextObj, Ast, ctypes.c_uint]
+_lib.Z3_get_quantifier_num_no_patterns.restype = ctypes.c_uint
+_lib.Z3_get_quantifier_num_no_patterns.argtypes = [ContextObj, Ast]
+_lib.Z3_get_quantifier_no_pattern_ast.restype = Ast
+_lib.Z3_get_quantifier_no_pattern_ast.argtypes = [ContextObj, Ast, ctypes.c_uint]
+_lib.Z3_get_quantifier_num_bound.restype = ctypes.c_uint
+_lib.Z3_get_quantifier_num_bound.argtypes = [ContextObj, Ast]
+_lib.Z3_get_quantifier_bound_name.restype = Symbol
+_lib.Z3_get_quantifier_bound_name.argtypes = [ContextObj, Ast, ctypes.c_uint]
+_lib.Z3_get_quantifier_bound_sort.restype = Sort
+_lib.Z3_get_quantifier_bound_sort.argtypes = [ContextObj, Ast, ctypes.c_uint]
+_lib.Z3_get_quantifier_body.restype = Ast
+_lib.Z3_get_quantifier_body.argtypes = [ContextObj, Ast]
+_lib.Z3_simplify.restype = Ast
+_lib.Z3_simplify.argtypes = [ContextObj, Ast]
+_lib.Z3_simplify_ex.restype = Ast
+_lib.Z3_simplify_ex.argtypes = [ContextObj, Ast, Params]
+_lib.Z3_simplify_get_help.restype = ctypes.c_char_p
+_lib.Z3_simplify_get_help.argtypes = [ContextObj]
+_lib.Z3_simplify_get_param_descrs.restype = ParamDescrs
+_lib.Z3_simplify_get_param_descrs.argtypes = [ContextObj]
+_lib.Z3_update_term.restype = Ast
+_lib.Z3_update_term.argtypes = [ContextObj, Ast, ctypes.c_uint, ctypes.POINTER(Ast)]
+_lib.Z3_substitute.restype = Ast
+_lib.Z3_substitute.argtypes = [ContextObj, Ast, ctypes.c_uint, ctypes.POINTER(Ast), ctypes.POINTER(Ast)]
+_lib.Z3_substitute_vars.restype = Ast
+_lib.Z3_substitute_vars.argtypes = [ContextObj, Ast, ctypes.c_uint, ctypes.POINTER(Ast)]
+_lib.Z3_translate.restype = Ast
+_lib.Z3_translate.argtypes = [ContextObj, Ast, ContextObj]
+_lib.Z3_mk_model.restype = Model
+_lib.Z3_mk_model.argtypes = [ContextObj]
+_lib.Z3_model_inc_ref.argtypes = [ContextObj, Model]
+_lib.Z3_model_dec_ref.argtypes = [ContextObj, Model]
+_lib.Z3_model_eval.restype = ctypes.c_bool
+_lib.Z3_model_eval.argtypes = [ContextObj, Model, Ast, ctypes.c_bool, ctypes.POINTER(Ast)]
+_lib.Z3_model_get_const_interp.restype = Ast
+_lib.Z3_model_get_const_interp.argtypes = [ContextObj, Model, FuncDecl]
+_lib.Z3_model_has_interp.restype = ctypes.c_bool
+_lib.Z3_model_has_interp.argtypes = [ContextObj, Model, FuncDecl]
+_lib.Z3_model_get_func_interp.restype = FuncInterpObj
+_lib.Z3_model_get_func_interp.argtypes = [ContextObj, Model, FuncDecl]
+_lib.Z3_model_get_num_consts.restype = ctypes.c_uint
+_lib.Z3_model_get_num_consts.argtypes = [ContextObj, Model]
+_lib.Z3_model_get_const_decl.restype = FuncDecl
+_lib.Z3_model_get_const_decl.argtypes = [ContextObj, Model, ctypes.c_uint]
+_lib.Z3_model_get_num_funcs.restype = ctypes.c_uint
+_lib.Z3_model_get_num_funcs.argtypes = [ContextObj, Model]
+_lib.Z3_model_get_func_decl.restype = FuncDecl
+_lib.Z3_model_get_func_decl.argtypes = [ContextObj, Model, ctypes.c_uint]
+_lib.Z3_model_get_num_sorts.restype = ctypes.c_uint
+_lib.Z3_model_get_num_sorts.argtypes = [ContextObj, Model]
+_lib.Z3_model_get_sort.restype = Sort
+_lib.Z3_model_get_sort.argtypes = [ContextObj, Model, ctypes.c_uint]
+_lib.Z3_model_get_sort_universe.restype = AstVectorObj
+_lib.Z3_model_get_sort_universe.argtypes = [ContextObj, Model, Sort]
+_lib.Z3_is_as_array.restype = ctypes.c_bool
+_lib.Z3_is_as_array.argtypes = [ContextObj, Ast]
+_lib.Z3_get_as_array_func_decl.restype = FuncDecl
+_lib.Z3_get_as_array_func_decl.argtypes = [ContextObj, Ast]
+_lib.Z3_add_func_interp.restype = FuncInterpObj
+_lib.Z3_add_func_interp.argtypes = [ContextObj, Model, FuncDecl, Ast]
+_lib.Z3_add_const_interp.argtypes = [ContextObj, Model, FuncDecl, Ast]
+_lib.Z3_func_interp_inc_ref.argtypes = [ContextObj, FuncInterpObj]
+_lib.Z3_func_interp_dec_ref.argtypes = [ContextObj, FuncInterpObj]
+_lib.Z3_func_interp_get_num_entries.restype = ctypes.c_uint
+_lib.Z3_func_interp_get_num_entries.argtypes = [ContextObj, FuncInterpObj]
+_lib.Z3_func_interp_get_entry.restype = FuncEntryObj
+_lib.Z3_func_interp_get_entry.argtypes = [ContextObj, FuncInterpObj, ctypes.c_uint]
+_lib.Z3_func_interp_get_else.restype = Ast
+_lib.Z3_func_interp_get_else.argtypes = [ContextObj, FuncInterpObj]
+_lib.Z3_func_interp_set_else.argtypes = [ContextObj, FuncInterpObj, Ast]
+_lib.Z3_func_interp_get_arity.restype = ctypes.c_uint
+_lib.Z3_func_interp_get_arity.argtypes = [ContextObj, FuncInterpObj]
+_lib.Z3_func_interp_add_entry.argtypes = [ContextObj, FuncInterpObj, AstVectorObj, Ast]
+_lib.Z3_func_entry_inc_ref.argtypes = [ContextObj, FuncEntryObj]
+_lib.Z3_func_entry_dec_ref.argtypes = [ContextObj, FuncEntryObj]
+_lib.Z3_func_entry_get_value.restype = Ast
+_lib.Z3_func_entry_get_value.argtypes = [ContextObj, FuncEntryObj]
+_lib.Z3_func_entry_get_num_args.restype = ctypes.c_uint
+_lib.Z3_func_entry_get_num_args.argtypes = [ContextObj, FuncEntryObj]
+_lib.Z3_func_entry_get_arg.restype = Ast
+_lib.Z3_func_entry_get_arg.argtypes = [ContextObj, FuncEntryObj, ctypes.c_uint]
+_lib.Z3_open_log.restype = ctypes.c_int
+_lib.Z3_open_log.argtypes = [ctypes.c_char_p]
+_lib.Z3_append_log.argtypes = [ctypes.c_char_p]
+_lib.Z3_close_log.argtypes = []
+_lib.Z3_toggle_warning_messages.argtypes = [ctypes.c_bool]
+_lib.Z3_set_ast_print_mode.argtypes = [ContextObj, ctypes.c_uint]
+_lib.Z3_ast_to_string.restype = ctypes.c_char_p
+_lib.Z3_ast_to_string.argtypes = [ContextObj, Ast]
+_lib.Z3_pattern_to_string.restype = ctypes.c_char_p
+_lib.Z3_pattern_to_string.argtypes = [ContextObj, Pattern]
+_lib.Z3_sort_to_string.restype = ctypes.c_char_p
+_lib.Z3_sort_to_string.argtypes = [ContextObj, Sort]
+_lib.Z3_func_decl_to_string.restype = ctypes.c_char_p
+_lib.Z3_func_decl_to_string.argtypes = [ContextObj, FuncDecl]
+_lib.Z3_model_to_string.restype = ctypes.c_char_p
+_lib.Z3_model_to_string.argtypes = [ContextObj, Model]
+_lib.Z3_benchmark_to_smtlib_string.restype = ctypes.c_char_p
+_lib.Z3_benchmark_to_smtlib_string.argtypes = [ContextObj, ctypes.c_char_p, ctypes.c_char_p, ctypes.c_char_p, ctypes.c_char_p, ctypes.c_uint, ctypes.POINTER(Ast), Ast]
+_lib.Z3_parse_smtlib2_string.restype = Ast
+_lib.Z3_parse_smtlib2_string.argtypes = [ContextObj, ctypes.c_char_p, ctypes.c_uint, ctypes.POINTER(Symbol), ctypes.POINTER(Sort), ctypes.c_uint, ctypes.POINTER(Symbol), ctypes.POINTER(FuncDecl)]
+_lib.Z3_parse_smtlib2_file.restype = Ast
+_lib.Z3_parse_smtlib2_file.argtypes = [ContextObj, ctypes.c_char_p, ctypes.c_uint, ctypes.POINTER(Symbol), ctypes.POINTER(Sort), ctypes.c_uint, ctypes.POINTER(Symbol), ctypes.POINTER(FuncDecl)]
+_lib.Z3_get_parser_error.restype = ctypes.c_char_p
+_lib.Z3_get_parser_error.argtypes = [ContextObj]
+_lib.Z3_get_error_code.restype = ctypes.c_uint
+_lib.Z3_get_error_code.argtypes = [ContextObj]
+_lib.Z3_set_error.argtypes = [ContextObj, ctypes.c_uint]
+_lib.Z3_get_error_msg.restype = ctypes.c_char_p
+_lib.Z3_get_error_msg.argtypes = [ContextObj, ctypes.c_uint]
+_lib.Z3_get_version.argtypes = [ctypes.POINTER(ctypes.c_uint), ctypes.POINTER(ctypes.c_uint), ctypes.POINTER(ctypes.c_uint), ctypes.POINTER(ctypes.c_uint)]
+_lib.Z3_get_full_version.restype = ctypes.c_char_p
+_lib.Z3_get_full_version.argtypes = []
+_lib.Z3_enable_trace.argtypes = [ctypes.c_char_p]
+_lib.Z3_disable_trace.argtypes = [ctypes.c_char_p]
+_lib.Z3_reset_memory.argtypes = []
+_lib.Z3_finalize_memory.argtypes = []
+_lib.Z3_mk_goal.restype = GoalObj
+_lib.Z3_mk_goal.argtypes = [ContextObj, ctypes.c_bool, ctypes.c_bool, ctypes.c_bool]
+_lib.Z3_goal_inc_ref.argtypes = [ContextObj, GoalObj]
+_lib.Z3_goal_dec_ref.argtypes = [ContextObj, GoalObj]
+_lib.Z3_goal_precision.restype = ctypes.c_uint
+_lib.Z3_goal_precision.argtypes = [ContextObj, GoalObj]
+_lib.Z3_goal_assert.argtypes = [ContextObj, GoalObj, Ast]
+_lib.Z3_goal_inconsistent.restype = ctypes.c_bool
+_lib.Z3_goal_inconsistent.argtypes = [ContextObj, GoalObj]
+_lib.Z3_goal_depth.restype = ctypes.c_uint
+_lib.Z3_goal_depth.argtypes = [ContextObj, GoalObj]
+_lib.Z3_goal_reset.argtypes = [ContextObj, GoalObj]
+_lib.Z3_goal_size.restype = ctypes.c_uint
+_lib.Z3_goal_size.argtypes = [ContextObj, GoalObj]
+_lib.Z3_goal_formula.restype = Ast
+_lib.Z3_goal_formula.argtypes = [ContextObj, GoalObj, ctypes.c_uint]
+_lib.Z3_goal_num_exprs.restype = ctypes.c_uint
+_lib.Z3_goal_num_exprs.argtypes = [ContextObj, GoalObj]
+_lib.Z3_goal_is_decided_sat.restype = ctypes.c_bool
+_lib.Z3_goal_is_decided_sat.argtypes = [ContextObj, GoalObj]
+_lib.Z3_goal_is_decided_unsat.restype = ctypes.c_bool
+_lib.Z3_goal_is_decided_unsat.argtypes = [ContextObj, GoalObj]
+_lib.Z3_goal_translate.restype = GoalObj
+_lib.Z3_goal_translate.argtypes = [ContextObj, GoalObj, ContextObj]
+_lib.Z3_goal_to_string.restype = ctypes.c_char_p
+_lib.Z3_goal_to_string.argtypes = [ContextObj, GoalObj]
+_lib.Z3_mk_tactic.restype = TacticObj
+_lib.Z3_mk_tactic.argtypes = [ContextObj, ctypes.c_char_p]
+_lib.Z3_tactic_inc_ref.argtypes = [ContextObj, TacticObj]
+_lib.Z3_tactic_dec_ref.argtypes = [ContextObj, TacticObj]
+_lib.Z3_mk_probe.restype = ProbeObj
+_lib.Z3_mk_probe.argtypes = [ContextObj, ctypes.c_char_p]
+_lib.Z3_probe_inc_ref.argtypes = [ContextObj, ProbeObj]
+_lib.Z3_probe_dec_ref.argtypes = [ContextObj, ProbeObj]
+_lib.Z3_tactic_and_then.restype = TacticObj
+_lib.Z3_tactic_and_then.argtypes = [ContextObj, TacticObj, TacticObj]
+_lib.Z3_tactic_or_else.restype = TacticObj
+_lib.Z3_tactic_or_else.argtypes = [ContextObj, TacticObj, TacticObj]
+_lib.Z3_tactic_par_or.restype = TacticObj
+_lib.Z3_tactic_par_or.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(TacticObj)]
+_lib.Z3_tactic_par_and_then.restype = TacticObj
+_lib.Z3_tactic_par_and_then.argtypes = [ContextObj, TacticObj, TacticObj]
+_lib.Z3_tactic_try_for.restype = TacticObj
+_lib.Z3_tactic_try_for.argtypes = [ContextObj, TacticObj, ctypes.c_uint]
+_lib.Z3_tactic_when.restype = TacticObj
+_lib.Z3_tactic_when.argtypes = [ContextObj, ProbeObj, TacticObj]
+_lib.Z3_tactic_cond.restype = TacticObj
+_lib.Z3_tactic_cond.argtypes = [ContextObj, ProbeObj, TacticObj, TacticObj]
+_lib.Z3_tactic_repeat.restype = TacticObj
+_lib.Z3_tactic_repeat.argtypes = [ContextObj, TacticObj, ctypes.c_uint]
+_lib.Z3_tactic_skip.restype = TacticObj
+_lib.Z3_tactic_skip.argtypes = [ContextObj]
+_lib.Z3_tactic_fail.restype = TacticObj
+_lib.Z3_tactic_fail.argtypes = [ContextObj]
+_lib.Z3_tactic_fail_if.restype = TacticObj
+_lib.Z3_tactic_fail_if.argtypes = [ContextObj, ProbeObj]
+_lib.Z3_tactic_fail_if_not_decided.restype = TacticObj
+_lib.Z3_tactic_fail_if_not_decided.argtypes = [ContextObj]
+_lib.Z3_tactic_using_params.restype = TacticObj
+_lib.Z3_tactic_using_params.argtypes = [ContextObj, TacticObj, Params]
+_lib.Z3_probe_const.restype = ProbeObj
+_lib.Z3_probe_const.argtypes = [ContextObj, ctypes.c_double]
+_lib.Z3_probe_lt.restype = ProbeObj
+_lib.Z3_probe_lt.argtypes = [ContextObj, ProbeObj, ProbeObj]
+_lib.Z3_probe_gt.restype = ProbeObj
+_lib.Z3_probe_gt.argtypes = [ContextObj, ProbeObj, ProbeObj]
+_lib.Z3_probe_le.restype = ProbeObj
+_lib.Z3_probe_le.argtypes = [ContextObj, ProbeObj, ProbeObj]
+_lib.Z3_probe_ge.restype = ProbeObj
+_lib.Z3_probe_ge.argtypes = [ContextObj, ProbeObj, ProbeObj]
+_lib.Z3_probe_eq.restype = ProbeObj
+_lib.Z3_probe_eq.argtypes = [ContextObj, ProbeObj, ProbeObj]
+_lib.Z3_probe_and.restype = ProbeObj
+_lib.Z3_probe_and.argtypes = [ContextObj, ProbeObj, ProbeObj]
+_lib.Z3_probe_or.restype = ProbeObj
+_lib.Z3_probe_or.argtypes = [ContextObj, ProbeObj, ProbeObj]
+_lib.Z3_probe_not.restype = ProbeObj
+_lib.Z3_probe_not.argtypes = [ContextObj, ProbeObj]
+_lib.Z3_get_num_tactics.restype = ctypes.c_uint
+_lib.Z3_get_num_tactics.argtypes = [ContextObj]
+_lib.Z3_get_tactic_name.restype = ctypes.c_char_p
+_lib.Z3_get_tactic_name.argtypes = [ContextObj, ctypes.c_uint]
+_lib.Z3_get_num_probes.restype = ctypes.c_uint
+_lib.Z3_get_num_probes.argtypes = [ContextObj]
+_lib.Z3_get_probe_name.restype = ctypes.c_char_p
+_lib.Z3_get_probe_name.argtypes = [ContextObj, ctypes.c_uint]
+_lib.Z3_tactic_get_help.restype = ctypes.c_char_p
+_lib.Z3_tactic_get_help.argtypes = [ContextObj, TacticObj]
+_lib.Z3_tactic_get_param_descrs.restype = ParamDescrs
+_lib.Z3_tactic_get_param_descrs.argtypes = [ContextObj, TacticObj]
+_lib.Z3_tactic_get_descr.restype = ctypes.c_char_p
+_lib.Z3_tactic_get_descr.argtypes = [ContextObj, ctypes.c_char_p]
+_lib.Z3_probe_get_descr.restype = ctypes.c_char_p
+_lib.Z3_probe_get_descr.argtypes = [ContextObj, ctypes.c_char_p]
+_lib.Z3_probe_apply.restype = ctypes.c_double
+_lib.Z3_probe_apply.argtypes = [ContextObj, ProbeObj, GoalObj]
+_lib.Z3_tactic_apply.restype = ApplyResultObj
+_lib.Z3_tactic_apply.argtypes = [ContextObj, TacticObj, GoalObj]
+_lib.Z3_tactic_apply_ex.restype = ApplyResultObj
+_lib.Z3_tactic_apply_ex.argtypes = [ContextObj, TacticObj, GoalObj, Params]
+_lib.Z3_apply_result_inc_ref.argtypes = [ContextObj, ApplyResultObj]
+_lib.Z3_apply_result_dec_ref.argtypes = [ContextObj, ApplyResultObj]
+_lib.Z3_apply_result_to_string.restype = ctypes.c_char_p
+_lib.Z3_apply_result_to_string.argtypes = [ContextObj, ApplyResultObj]
+_lib.Z3_apply_result_get_num_subgoals.restype = ctypes.c_uint
+_lib.Z3_apply_result_get_num_subgoals.argtypes = [ContextObj, ApplyResultObj]
+_lib.Z3_apply_result_get_subgoal.restype = GoalObj
+_lib.Z3_apply_result_get_subgoal.argtypes = [ContextObj, ApplyResultObj, ctypes.c_uint]
+_lib.Z3_apply_result_convert_model.restype = Model
+_lib.Z3_apply_result_convert_model.argtypes = [ContextObj, ApplyResultObj, ctypes.c_uint, Model]
+_lib.Z3_mk_solver.restype = SolverObj
+_lib.Z3_mk_solver.argtypes = [ContextObj]
+_lib.Z3_mk_simple_solver.restype = SolverObj
+_lib.Z3_mk_simple_solver.argtypes = [ContextObj]
+_lib.Z3_mk_solver_for_logic.restype = SolverObj
+_lib.Z3_mk_solver_for_logic.argtypes = [ContextObj, Symbol]
+_lib.Z3_mk_solver_from_tactic.restype = SolverObj
+_lib.Z3_mk_solver_from_tactic.argtypes = [ContextObj, TacticObj]
+_lib.Z3_solver_translate.restype = SolverObj
+_lib.Z3_solver_translate.argtypes = [ContextObj, SolverObj, ContextObj]
+_lib.Z3_solver_get_help.restype = ctypes.c_char_p
+_lib.Z3_solver_get_help.argtypes = [ContextObj, SolverObj]
+_lib.Z3_solver_get_param_descrs.restype = ParamDescrs
+_lib.Z3_solver_get_param_descrs.argtypes = [ContextObj, SolverObj]
+_lib.Z3_solver_set_params.argtypes = [ContextObj, SolverObj, Params]
+_lib.Z3_solver_inc_ref.argtypes = [ContextObj, SolverObj]
+_lib.Z3_solver_dec_ref.argtypes = [ContextObj, SolverObj]
+_lib.Z3_solver_push.argtypes = [ContextObj, SolverObj]
+_lib.Z3_solver_pop.argtypes = [ContextObj, SolverObj, ctypes.c_uint]
+_lib.Z3_solver_reset.argtypes = [ContextObj, SolverObj]
+_lib.Z3_solver_get_num_scopes.restype = ctypes.c_uint
+_lib.Z3_solver_get_num_scopes.argtypes = [ContextObj, SolverObj]
+_lib.Z3_solver_assert.argtypes = [ContextObj, SolverObj, Ast]
+_lib.Z3_solver_assert_and_track.argtypes = [ContextObj, SolverObj, Ast, Ast]
+_lib.Z3_solver_get_assertions.restype = AstVectorObj
+_lib.Z3_solver_get_assertions.argtypes = [ContextObj, SolverObj]
+_lib.Z3_solver_from_file.argtypes = [ContextObj, SolverObj, ctypes.c_char_p]
+_lib.Z3_solver_from_string.argtypes = [ContextObj, SolverObj, ctypes.c_char_p]
+_lib.Z3_solver_check.restype = ctypes.c_int
+_lib.Z3_solver_check.argtypes = [ContextObj, SolverObj]
+_lib.Z3_solver_check_assumptions.restype = ctypes.c_int
+_lib.Z3_solver_check_assumptions.argtypes = [ContextObj, SolverObj, ctypes.c_uint, ctypes.POINTER(Ast)]
+_lib.Z3_get_implied_equalities.restype = ctypes.c_int
+_lib.Z3_get_implied_equalities.argtypes = [ContextObj, SolverObj, ctypes.c_uint, ctypes.POINTER(Ast), ctypes.POINTER(ctypes.c_uint)]
+_lib.Z3_solver_get_consequences.restype = ctypes.c_int
+_lib.Z3_solver_get_consequences.argtypes = [ContextObj, SolverObj, AstVectorObj, AstVectorObj, AstVectorObj]
+_lib.Z3_solver_get_model.restype = Model
+_lib.Z3_solver_get_model.argtypes = [ContextObj, SolverObj]
+_lib.Z3_solver_get_proof.restype = Ast
+_lib.Z3_solver_get_proof.argtypes = [ContextObj, SolverObj]
+_lib.Z3_solver_get_unsat_core.restype = AstVectorObj
+_lib.Z3_solver_get_unsat_core.argtypes = [ContextObj, SolverObj]
+_lib.Z3_solver_get_reason_unknown.restype = ctypes.c_char_p
+_lib.Z3_solver_get_reason_unknown.argtypes = [ContextObj, SolverObj]
+_lib.Z3_solver_get_statistics.restype = StatsObj
+_lib.Z3_solver_get_statistics.argtypes = [ContextObj, SolverObj]
+_lib.Z3_solver_to_string.restype = ctypes.c_char_p
+_lib.Z3_solver_to_string.argtypes = [ContextObj, SolverObj]
+_lib.Z3_stats_to_string.restype = ctypes.c_char_p
+_lib.Z3_stats_to_string.argtypes = [ContextObj, StatsObj]
+_lib.Z3_stats_inc_ref.argtypes = [ContextObj, StatsObj]
+_lib.Z3_stats_dec_ref.argtypes = [ContextObj, StatsObj]
+_lib.Z3_stats_size.restype = ctypes.c_uint
+_lib.Z3_stats_size.argtypes = [ContextObj, StatsObj]
+_lib.Z3_stats_get_key.restype = ctypes.c_char_p
+_lib.Z3_stats_get_key.argtypes = [ContextObj, StatsObj, ctypes.c_uint]
+_lib.Z3_stats_is_uint.restype = ctypes.c_bool
+_lib.Z3_stats_is_uint.argtypes = [ContextObj, StatsObj, ctypes.c_uint]
+_lib.Z3_stats_is_double.restype = ctypes.c_bool
+_lib.Z3_stats_is_double.argtypes = [ContextObj, StatsObj, ctypes.c_uint]
+_lib.Z3_stats_get_uint_value.restype = ctypes.c_uint
+_lib.Z3_stats_get_uint_value.argtypes = [ContextObj, StatsObj, ctypes.c_uint]
+_lib.Z3_stats_get_double_value.restype = ctypes.c_double
+_lib.Z3_stats_get_double_value.argtypes = [ContextObj, StatsObj, ctypes.c_uint]
+_lib.Z3_get_estimated_alloc_size.restype = ctypes.c_ulonglong
+_lib.Z3_get_estimated_alloc_size.argtypes = []
+_lib.Z3_mk_ast_vector.restype = AstVectorObj
+_lib.Z3_mk_ast_vector.argtypes = [ContextObj]
+_lib.Z3_ast_vector_inc_ref.argtypes = [ContextObj, AstVectorObj]
+_lib.Z3_ast_vector_dec_ref.argtypes = [ContextObj, AstVectorObj]
+_lib.Z3_ast_vector_size.restype = ctypes.c_uint
+_lib.Z3_ast_vector_size.argtypes = [ContextObj, AstVectorObj]
+_lib.Z3_ast_vector_get.restype = Ast
+_lib.Z3_ast_vector_get.argtypes = [ContextObj, AstVectorObj, ctypes.c_uint]
+_lib.Z3_ast_vector_set.argtypes = [ContextObj, AstVectorObj, ctypes.c_uint, Ast]
+_lib.Z3_ast_vector_resize.argtypes = [ContextObj, AstVectorObj, ctypes.c_uint]
+_lib.Z3_ast_vector_push.argtypes = [ContextObj, AstVectorObj, Ast]
+_lib.Z3_ast_vector_translate.restype = AstVectorObj
+_lib.Z3_ast_vector_translate.argtypes = [ContextObj, AstVectorObj, ContextObj]
+_lib.Z3_ast_vector_to_string.restype = ctypes.c_char_p
+_lib.Z3_ast_vector_to_string.argtypes = [ContextObj, AstVectorObj]
+_lib.Z3_mk_ast_map.restype = AstMapObj
+_lib.Z3_mk_ast_map.argtypes = [ContextObj]
+_lib.Z3_ast_map_inc_ref.argtypes = [ContextObj, AstMapObj]
+_lib.Z3_ast_map_dec_ref.argtypes = [ContextObj, AstMapObj]
+_lib.Z3_ast_map_contains.restype = ctypes.c_bool
+_lib.Z3_ast_map_contains.argtypes = [ContextObj, AstMapObj, Ast]
+_lib.Z3_ast_map_find.restype = Ast
+_lib.Z3_ast_map_find.argtypes = [ContextObj, AstMapObj, Ast]
+_lib.Z3_ast_map_insert.argtypes = [ContextObj, AstMapObj, Ast, Ast]
+_lib.Z3_ast_map_erase.argtypes = [ContextObj, AstMapObj, Ast]
+_lib.Z3_ast_map_reset.argtypes = [ContextObj, AstMapObj]
+_lib.Z3_ast_map_size.restype = ctypes.c_uint
+_lib.Z3_ast_map_size.argtypes = [ContextObj, AstMapObj]
+_lib.Z3_ast_map_keys.restype = AstVectorObj
+_lib.Z3_ast_map_keys.argtypes = [ContextObj, AstMapObj]
+_lib.Z3_ast_map_to_string.restype = ctypes.c_char_p
+_lib.Z3_ast_map_to_string.argtypes = [ContextObj, AstMapObj]
+_lib.Z3_algebraic_is_value.restype = ctypes.c_bool
+_lib.Z3_algebraic_is_value.argtypes = [ContextObj, Ast]
+_lib.Z3_algebraic_is_pos.restype = ctypes.c_bool
+_lib.Z3_algebraic_is_pos.argtypes = [ContextObj, Ast]
+_lib.Z3_algebraic_is_neg.restype = ctypes.c_bool
+_lib.Z3_algebraic_is_neg.argtypes = [ContextObj, Ast]
+_lib.Z3_algebraic_is_zero.restype = ctypes.c_bool
+_lib.Z3_algebraic_is_zero.argtypes = [ContextObj, Ast]
+_lib.Z3_algebraic_sign.restype = ctypes.c_int
+_lib.Z3_algebraic_sign.argtypes = [ContextObj, Ast]
+_lib.Z3_algebraic_add.restype = Ast
+_lib.Z3_algebraic_add.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_algebraic_sub.restype = Ast
+_lib.Z3_algebraic_sub.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_algebraic_mul.restype = Ast
+_lib.Z3_algebraic_mul.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_algebraic_div.restype = Ast
+_lib.Z3_algebraic_div.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_algebraic_root.restype = Ast
+_lib.Z3_algebraic_root.argtypes = [ContextObj, Ast, ctypes.c_uint]
+_lib.Z3_algebraic_power.restype = Ast
+_lib.Z3_algebraic_power.argtypes = [ContextObj, Ast, ctypes.c_uint]
+_lib.Z3_algebraic_lt.restype = ctypes.c_bool
+_lib.Z3_algebraic_lt.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_algebraic_gt.restype = ctypes.c_bool
+_lib.Z3_algebraic_gt.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_algebraic_le.restype = ctypes.c_bool
+_lib.Z3_algebraic_le.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_algebraic_ge.restype = ctypes.c_bool
+_lib.Z3_algebraic_ge.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_algebraic_eq.restype = ctypes.c_bool
+_lib.Z3_algebraic_eq.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_algebraic_neq.restype = ctypes.c_bool
+_lib.Z3_algebraic_neq.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_algebraic_roots.restype = AstVectorObj
+_lib.Z3_algebraic_roots.argtypes = [ContextObj, Ast, ctypes.c_uint, ctypes.POINTER(Ast)]
+_lib.Z3_algebraic_eval.restype = ctypes.c_int
+_lib.Z3_algebraic_eval.argtypes = [ContextObj, Ast, ctypes.c_uint, ctypes.POINTER(Ast)]
+_lib.Z3_polynomial_subresultants.restype = AstVectorObj
+_lib.Z3_polynomial_subresultants.argtypes = [ContextObj, Ast, Ast, Ast]
+_lib.Z3_rcf_del.argtypes = [ContextObj, RCFNumObj]
+_lib.Z3_rcf_mk_rational.restype = RCFNumObj
+_lib.Z3_rcf_mk_rational.argtypes = [ContextObj, ctypes.c_char_p]
+_lib.Z3_rcf_mk_small_int.restype = RCFNumObj
+_lib.Z3_rcf_mk_small_int.argtypes = [ContextObj, ctypes.c_int]
+_lib.Z3_rcf_mk_pi.restype = RCFNumObj
+_lib.Z3_rcf_mk_pi.argtypes = [ContextObj]
+_lib.Z3_rcf_mk_e.restype = RCFNumObj
+_lib.Z3_rcf_mk_e.argtypes = [ContextObj]
+_lib.Z3_rcf_mk_infinitesimal.restype = RCFNumObj
+_lib.Z3_rcf_mk_infinitesimal.argtypes = [ContextObj]
+_lib.Z3_rcf_mk_roots.restype = ctypes.c_uint
+_lib.Z3_rcf_mk_roots.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(RCFNumObj), ctypes.POINTER(RCFNumObj)]
+_lib.Z3_rcf_add.restype = RCFNumObj
+_lib.Z3_rcf_add.argtypes = [ContextObj, RCFNumObj, RCFNumObj]
+_lib.Z3_rcf_sub.restype = RCFNumObj
+_lib.Z3_rcf_sub.argtypes = [ContextObj, RCFNumObj, RCFNumObj]
+_lib.Z3_rcf_mul.restype = RCFNumObj
+_lib.Z3_rcf_mul.argtypes = [ContextObj, RCFNumObj, RCFNumObj]
+_lib.Z3_rcf_div.restype = RCFNumObj
+_lib.Z3_rcf_div.argtypes = [ContextObj, RCFNumObj, RCFNumObj]
+_lib.Z3_rcf_neg.restype = RCFNumObj
+_lib.Z3_rcf_neg.argtypes = [ContextObj, RCFNumObj]
+_lib.Z3_rcf_inv.restype = RCFNumObj
+_lib.Z3_rcf_inv.argtypes = [ContextObj, RCFNumObj]
+_lib.Z3_rcf_power.restype = RCFNumObj
+_lib.Z3_rcf_power.argtypes = [ContextObj, RCFNumObj, ctypes.c_uint]
+_lib.Z3_rcf_lt.restype = ctypes.c_bool
+_lib.Z3_rcf_lt.argtypes = [ContextObj, RCFNumObj, RCFNumObj]
+_lib.Z3_rcf_gt.restype = ctypes.c_bool
+_lib.Z3_rcf_gt.argtypes = [ContextObj, RCFNumObj, RCFNumObj]
+_lib.Z3_rcf_le.restype = ctypes.c_bool
+_lib.Z3_rcf_le.argtypes = [ContextObj, RCFNumObj, RCFNumObj]
+_lib.Z3_rcf_ge.restype = ctypes.c_bool
+_lib.Z3_rcf_ge.argtypes = [ContextObj, RCFNumObj, RCFNumObj]
+_lib.Z3_rcf_eq.restype = ctypes.c_bool
+_lib.Z3_rcf_eq.argtypes = [ContextObj, RCFNumObj, RCFNumObj]
+_lib.Z3_rcf_neq.restype = ctypes.c_bool
+_lib.Z3_rcf_neq.argtypes = [ContextObj, RCFNumObj, RCFNumObj]
+_lib.Z3_rcf_num_to_string.restype = ctypes.c_char_p
+_lib.Z3_rcf_num_to_string.argtypes = [ContextObj, RCFNumObj, ctypes.c_bool, ctypes.c_bool]
+_lib.Z3_rcf_num_to_decimal_string.restype = ctypes.c_char_p
+_lib.Z3_rcf_num_to_decimal_string.argtypes = [ContextObj, RCFNumObj, ctypes.c_uint]
+_lib.Z3_rcf_get_numerator_denominator.argtypes = [ContextObj, RCFNumObj, ctypes.POINTER(RCFNumObj), ctypes.POINTER(RCFNumObj)]
+_lib.Z3_mk_fixedpoint.restype = FixedpointObj
+_lib.Z3_mk_fixedpoint.argtypes = [ContextObj]
+_lib.Z3_fixedpoint_inc_ref.argtypes = [ContextObj, FixedpointObj]
+_lib.Z3_fixedpoint_dec_ref.argtypes = [ContextObj, FixedpointObj]
+_lib.Z3_fixedpoint_add_rule.argtypes = [ContextObj, FixedpointObj, Ast, Symbol]
+_lib.Z3_fixedpoint_add_fact.argtypes = [ContextObj, FixedpointObj, FuncDecl, ctypes.c_uint, ctypes.POINTER(ctypes.c_uint)]
+_lib.Z3_fixedpoint_assert.argtypes = [ContextObj, FixedpointObj, Ast]
+_lib.Z3_fixedpoint_query.restype = ctypes.c_int
+_lib.Z3_fixedpoint_query.argtypes = [ContextObj, FixedpointObj, Ast]
+_lib.Z3_fixedpoint_query_relations.restype = ctypes.c_int
+_lib.Z3_fixedpoint_query_relations.argtypes = [ContextObj, FixedpointObj, ctypes.c_uint, ctypes.POINTER(FuncDecl)]
+_lib.Z3_fixedpoint_get_answer.restype = Ast
+_lib.Z3_fixedpoint_get_answer.argtypes = [ContextObj, FixedpointObj]
+_lib.Z3_fixedpoint_get_reason_unknown.restype = ctypes.c_char_p
+_lib.Z3_fixedpoint_get_reason_unknown.argtypes = [ContextObj, FixedpointObj]
+_lib.Z3_fixedpoint_update_rule.argtypes = [ContextObj, FixedpointObj, Ast, Symbol]
+_lib.Z3_fixedpoint_get_num_levels.restype = ctypes.c_uint
+_lib.Z3_fixedpoint_get_num_levels.argtypes = [ContextObj, FixedpointObj, FuncDecl]
+_lib.Z3_fixedpoint_get_cover_delta.restype = Ast
+_lib.Z3_fixedpoint_get_cover_delta.argtypes = [ContextObj, FixedpointObj, ctypes.c_int, FuncDecl]
+_lib.Z3_fixedpoint_add_cover.argtypes = [ContextObj, FixedpointObj, ctypes.c_int, FuncDecl, Ast]
+_lib.Z3_fixedpoint_get_statistics.restype = StatsObj
+_lib.Z3_fixedpoint_get_statistics.argtypes = [ContextObj, FixedpointObj]
+_lib.Z3_fixedpoint_register_relation.argtypes = [ContextObj, FixedpointObj, FuncDecl]
+_lib.Z3_fixedpoint_set_predicate_representation.argtypes = [ContextObj, FixedpointObj, FuncDecl, ctypes.c_uint, ctypes.POINTER(Symbol)]
+_lib.Z3_fixedpoint_get_rules.restype = AstVectorObj
+_lib.Z3_fixedpoint_get_rules.argtypes = [ContextObj, FixedpointObj]
+_lib.Z3_fixedpoint_get_assertions.restype = AstVectorObj
+_lib.Z3_fixedpoint_get_assertions.argtypes = [ContextObj, FixedpointObj]
+_lib.Z3_fixedpoint_set_params.argtypes = [ContextObj, FixedpointObj, Params]
+_lib.Z3_fixedpoint_get_help.restype = ctypes.c_char_p
+_lib.Z3_fixedpoint_get_help.argtypes = [ContextObj, FixedpointObj]
+_lib.Z3_fixedpoint_get_param_descrs.restype = ParamDescrs
+_lib.Z3_fixedpoint_get_param_descrs.argtypes = [ContextObj, FixedpointObj]
+_lib.Z3_fixedpoint_to_string.restype = ctypes.c_char_p
+_lib.Z3_fixedpoint_to_string.argtypes = [ContextObj, FixedpointObj, ctypes.c_uint, ctypes.POINTER(Ast)]
+_lib.Z3_fixedpoint_from_string.restype = AstVectorObj
+_lib.Z3_fixedpoint_from_string.argtypes = [ContextObj, FixedpointObj, ctypes.c_char_p]
+_lib.Z3_fixedpoint_from_file.restype = AstVectorObj
+_lib.Z3_fixedpoint_from_file.argtypes = [ContextObj, FixedpointObj, ctypes.c_char_p]
+_lib.Z3_fixedpoint_push.argtypes = [ContextObj, FixedpointObj]
+_lib.Z3_fixedpoint_pop.argtypes = [ContextObj, FixedpointObj]
+_lib.Z3_mk_optimize.restype = OptimizeObj
+_lib.Z3_mk_optimize.argtypes = [ContextObj]
+_lib.Z3_optimize_inc_ref.argtypes = [ContextObj, OptimizeObj]
+_lib.Z3_optimize_dec_ref.argtypes = [ContextObj, OptimizeObj]
+_lib.Z3_optimize_assert.argtypes = [ContextObj, OptimizeObj, Ast]
+_lib.Z3_optimize_assert_soft.restype = ctypes.c_uint
+_lib.Z3_optimize_assert_soft.argtypes = [ContextObj, OptimizeObj, Ast, ctypes.c_char_p, Symbol]
+_lib.Z3_optimize_maximize.restype = ctypes.c_uint
+_lib.Z3_optimize_maximize.argtypes = [ContextObj, OptimizeObj, Ast]
+_lib.Z3_optimize_minimize.restype = ctypes.c_uint
+_lib.Z3_optimize_minimize.argtypes = [ContextObj, OptimizeObj, Ast]
+_lib.Z3_optimize_push.argtypes = [ContextObj, OptimizeObj]
+_lib.Z3_optimize_pop.argtypes = [ContextObj, OptimizeObj]
+_lib.Z3_optimize_check.restype = ctypes.c_int
+_lib.Z3_optimize_check.argtypes = [ContextObj, OptimizeObj]
+_lib.Z3_optimize_get_reason_unknown.restype = ctypes.c_char_p
+_lib.Z3_optimize_get_reason_unknown.argtypes = [ContextObj, OptimizeObj]
+_lib.Z3_optimize_get_model.restype = Model
+_lib.Z3_optimize_get_model.argtypes = [ContextObj, OptimizeObj]
+_lib.Z3_optimize_set_params.argtypes = [ContextObj, OptimizeObj, Params]
+_lib.Z3_optimize_get_param_descrs.restype = ParamDescrs
+_lib.Z3_optimize_get_param_descrs.argtypes = [ContextObj, OptimizeObj]
+_lib.Z3_optimize_get_lower.restype = Ast
+_lib.Z3_optimize_get_lower.argtypes = [ContextObj, OptimizeObj, ctypes.c_uint]
+_lib.Z3_optimize_get_upper.restype = Ast
+_lib.Z3_optimize_get_upper.argtypes = [ContextObj, OptimizeObj, ctypes.c_uint]
+_lib.Z3_optimize_get_lower_as_vector.restype = AstVectorObj
+_lib.Z3_optimize_get_lower_as_vector.argtypes = [ContextObj, OptimizeObj, ctypes.c_uint]
+_lib.Z3_optimize_get_upper_as_vector.restype = AstVectorObj
+_lib.Z3_optimize_get_upper_as_vector.argtypes = [ContextObj, OptimizeObj, ctypes.c_uint]
+_lib.Z3_optimize_to_string.restype = ctypes.c_char_p
+_lib.Z3_optimize_to_string.argtypes = [ContextObj, OptimizeObj]
+_lib.Z3_optimize_from_string.argtypes = [ContextObj, OptimizeObj, ctypes.c_char_p]
+_lib.Z3_optimize_from_file.argtypes = [ContextObj, OptimizeObj, ctypes.c_char_p]
+_lib.Z3_optimize_get_help.restype = ctypes.c_char_p
+_lib.Z3_optimize_get_help.argtypes = [ContextObj, OptimizeObj]
+_lib.Z3_optimize_get_statistics.restype = StatsObj
+_lib.Z3_optimize_get_statistics.argtypes = [ContextObj, OptimizeObj]
+_lib.Z3_optimize_get_assertions.restype = AstVectorObj
+_lib.Z3_optimize_get_assertions.argtypes = [ContextObj, OptimizeObj]
+_lib.Z3_optimize_get_objectives.restype = AstVectorObj
+_lib.Z3_optimize_get_objectives.argtypes = [ContextObj, OptimizeObj]
+_lib.Z3_mk_interpolant.restype = Ast
+_lib.Z3_mk_interpolant.argtypes = [ContextObj, Ast]
+_lib.Z3_mk_interpolation_context.restype = ContextObj
+_lib.Z3_mk_interpolation_context.argtypes = [Config]
+_lib.Z3_get_interpolant.restype = AstVectorObj
+_lib.Z3_get_interpolant.argtypes = [ContextObj, Ast, Ast, Params]
+_lib.Z3_compute_interpolant.restype = ctypes.c_int
+_lib.Z3_compute_interpolant.argtypes = [ContextObj, Ast, Params, ctypes.POINTER(AstVectorObj), ctypes.POINTER(Model)]
+_lib.Z3_interpolation_profile.restype = ctypes.c_char_p
+_lib.Z3_interpolation_profile.argtypes = [ContextObj]
+_lib.Z3_read_interpolation_problem.restype = ctypes.c_int
+_lib.Z3_read_interpolation_problem.argtypes = [ContextObj, ctypes.POINTER(ctypes.c_uint), Ast, ctypes.c_uint, ctypes.c_char_p, ctypes.POINTER(ctypes.c_char_p), ctypes.POINTER(ctypes.c_uint), Ast]
+_lib.Z3_check_interpolant.restype = ctypes.c_int
+_lib.Z3_check_interpolant.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast), ctypes.POINTER(ctypes.c_uint), ctypes.POINTER(Ast), ctypes.POINTER(ctypes.c_char_p), ctypes.c_uint, ctypes.POINTER(Ast)]
+_lib.Z3_write_interpolation_problem.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast), ctypes.POINTER(ctypes.c_uint), ctypes.c_char_p, ctypes.c_uint, ctypes.POINTER(Ast)]
+_lib.Z3_mk_fpa_rounding_mode_sort.restype = Sort
+_lib.Z3_mk_fpa_rounding_mode_sort.argtypes = [ContextObj]
+_lib.Z3_mk_fpa_round_nearest_ties_to_even.restype = Ast
+_lib.Z3_mk_fpa_round_nearest_ties_to_even.argtypes = [ContextObj]
+_lib.Z3_mk_fpa_rne.restype = Ast
+_lib.Z3_mk_fpa_rne.argtypes = [ContextObj]
+_lib.Z3_mk_fpa_round_nearest_ties_to_away.restype = Ast
+_lib.Z3_mk_fpa_round_nearest_ties_to_away.argtypes = [ContextObj]
+_lib.Z3_mk_fpa_rna.restype = Ast
+_lib.Z3_mk_fpa_rna.argtypes = [ContextObj]
+_lib.Z3_mk_fpa_round_toward_positive.restype = Ast
+_lib.Z3_mk_fpa_round_toward_positive.argtypes = [ContextObj]
+_lib.Z3_mk_fpa_rtp.restype = Ast
+_lib.Z3_mk_fpa_rtp.argtypes = [ContextObj]
+_lib.Z3_mk_fpa_round_toward_negative.restype = Ast
+_lib.Z3_mk_fpa_round_toward_negative.argtypes = [ContextObj]
+_lib.Z3_mk_fpa_rtn.restype = Ast
+_lib.Z3_mk_fpa_rtn.argtypes = [ContextObj]
+_lib.Z3_mk_fpa_round_toward_zero.restype = Ast
+_lib.Z3_mk_fpa_round_toward_zero.argtypes = [ContextObj]
+_lib.Z3_mk_fpa_rtz.restype = Ast
+_lib.Z3_mk_fpa_rtz.argtypes = [ContextObj]
+_lib.Z3_mk_fpa_sort.restype = Sort
+_lib.Z3_mk_fpa_sort.argtypes = [ContextObj, ctypes.c_uint, ctypes.c_uint]
+_lib.Z3_mk_fpa_sort_half.restype = Sort
+_lib.Z3_mk_fpa_sort_half.argtypes = [ContextObj]
+_lib.Z3_mk_fpa_sort_16.restype = Sort
+_lib.Z3_mk_fpa_sort_16.argtypes = [ContextObj]
+_lib.Z3_mk_fpa_sort_single.restype = Sort
+_lib.Z3_mk_fpa_sort_single.argtypes = [ContextObj]
+_lib.Z3_mk_fpa_sort_32.restype = Sort
+_lib.Z3_mk_fpa_sort_32.argtypes = [ContextObj]
+_lib.Z3_mk_fpa_sort_double.restype = Sort
+_lib.Z3_mk_fpa_sort_double.argtypes = [ContextObj]
+_lib.Z3_mk_fpa_sort_64.restype = Sort
+_lib.Z3_mk_fpa_sort_64.argtypes = [ContextObj]
+_lib.Z3_mk_fpa_sort_quadruple.restype = Sort
+_lib.Z3_mk_fpa_sort_quadruple.argtypes = [ContextObj]
+_lib.Z3_mk_fpa_sort_128.restype = Sort
+_lib.Z3_mk_fpa_sort_128.argtypes = [ContextObj]
+_lib.Z3_mk_fpa_nan.restype = Ast
+_lib.Z3_mk_fpa_nan.argtypes = [ContextObj, Sort]
+_lib.Z3_mk_fpa_inf.restype = Ast
+_lib.Z3_mk_fpa_inf.argtypes = [ContextObj, Sort, ctypes.c_bool]
+_lib.Z3_mk_fpa_zero.restype = Ast
+_lib.Z3_mk_fpa_zero.argtypes = [ContextObj, Sort, ctypes.c_bool]
+_lib.Z3_mk_fpa_fp.restype = Ast
+_lib.Z3_mk_fpa_fp.argtypes = [ContextObj, Ast, Ast, Ast]
+_lib.Z3_mk_fpa_numeral_float.restype = Ast
+_lib.Z3_mk_fpa_numeral_float.argtypes = [ContextObj, ctypes.c_float, Sort]
+_lib.Z3_mk_fpa_numeral_double.restype = Ast
+_lib.Z3_mk_fpa_numeral_double.argtypes = [ContextObj, ctypes.c_double, Sort]
+_lib.Z3_mk_fpa_numeral_int.restype = Ast
+_lib.Z3_mk_fpa_numeral_int.argtypes = [ContextObj, ctypes.c_int, Sort]
+_lib.Z3_mk_fpa_numeral_int_uint.restype = Ast
+_lib.Z3_mk_fpa_numeral_int_uint.argtypes = [ContextObj, ctypes.c_bool, ctypes.c_int, ctypes.c_uint, Sort]
+_lib.Z3_mk_fpa_numeral_int64_uint64.restype = Ast
+_lib.Z3_mk_fpa_numeral_int64_uint64.argtypes = [ContextObj, ctypes.c_bool, ctypes.c_longlong, ctypes.c_ulonglong, Sort]
+_lib.Z3_mk_fpa_abs.restype = Ast
+_lib.Z3_mk_fpa_abs.argtypes = [ContextObj, Ast]
+_lib.Z3_mk_fpa_neg.restype = Ast
+_lib.Z3_mk_fpa_neg.argtypes = [ContextObj, Ast]
+_lib.Z3_mk_fpa_add.restype = Ast
+_lib.Z3_mk_fpa_add.argtypes = [ContextObj, Ast, Ast, Ast]
+_lib.Z3_mk_fpa_sub.restype = Ast
+_lib.Z3_mk_fpa_sub.argtypes = [ContextObj, Ast, Ast, Ast]
+_lib.Z3_mk_fpa_mul.restype = Ast
+_lib.Z3_mk_fpa_mul.argtypes = [ContextObj, Ast, Ast, Ast]
+_lib.Z3_mk_fpa_div.restype = Ast
+_lib.Z3_mk_fpa_div.argtypes = [ContextObj, Ast, Ast, Ast]
+_lib.Z3_mk_fpa_fma.restype = Ast
+_lib.Z3_mk_fpa_fma.argtypes = [ContextObj, Ast, Ast, Ast, Ast]
+_lib.Z3_mk_fpa_sqrt.restype = Ast
+_lib.Z3_mk_fpa_sqrt.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_fpa_rem.restype = Ast
+_lib.Z3_mk_fpa_rem.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_fpa_round_to_integral.restype = Ast
+_lib.Z3_mk_fpa_round_to_integral.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_fpa_min.restype = Ast
+_lib.Z3_mk_fpa_min.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_fpa_max.restype = Ast
+_lib.Z3_mk_fpa_max.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_fpa_leq.restype = Ast
+_lib.Z3_mk_fpa_leq.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_fpa_lt.restype = Ast
+_lib.Z3_mk_fpa_lt.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_fpa_geq.restype = Ast
+_lib.Z3_mk_fpa_geq.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_fpa_gt.restype = Ast
+_lib.Z3_mk_fpa_gt.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_fpa_eq.restype = Ast
+_lib.Z3_mk_fpa_eq.argtypes = [ContextObj, Ast, Ast]
+_lib.Z3_mk_fpa_is_normal.restype = Ast
+_lib.Z3_mk_fpa_is_normal.argtypes = [ContextObj, Ast]
+_lib.Z3_mk_fpa_is_subnormal.restype = Ast
+_lib.Z3_mk_fpa_is_subnormal.argtypes = [ContextObj, Ast]
+_lib.Z3_mk_fpa_is_zero.restype = Ast
+_lib.Z3_mk_fpa_is_zero.argtypes = [ContextObj, Ast]
+_lib.Z3_mk_fpa_is_infinite.restype = Ast
+_lib.Z3_mk_fpa_is_infinite.argtypes = [ContextObj, Ast]
+_lib.Z3_mk_fpa_is_nan.restype = Ast
+_lib.Z3_mk_fpa_is_nan.argtypes = [ContextObj, Ast]
+_lib.Z3_mk_fpa_is_negative.restype = Ast
+_lib.Z3_mk_fpa_is_negative.argtypes = [ContextObj, Ast]
+_lib.Z3_mk_fpa_is_positive.restype = Ast
+_lib.Z3_mk_fpa_is_positive.argtypes = [ContextObj, Ast]
+_lib.Z3_mk_fpa_to_fp_bv.restype = Ast
+_lib.Z3_mk_fpa_to_fp_bv.argtypes = [ContextObj, Ast, Sort]
+_lib.Z3_mk_fpa_to_fp_float.restype = Ast
+_lib.Z3_mk_fpa_to_fp_float.argtypes = [ContextObj, Ast, Ast, Sort]
+_lib.Z3_mk_fpa_to_fp_real.restype = Ast
+_lib.Z3_mk_fpa_to_fp_real.argtypes = [ContextObj, Ast, Ast, Sort]
+_lib.Z3_mk_fpa_to_fp_signed.restype = Ast
+_lib.Z3_mk_fpa_to_fp_signed.argtypes = [ContextObj, Ast, Ast, Sort]
+_lib.Z3_mk_fpa_to_fp_unsigned.restype = Ast
+_lib.Z3_mk_fpa_to_fp_unsigned.argtypes = [ContextObj, Ast, Ast, Sort]
+_lib.Z3_mk_fpa_to_ubv.restype = Ast
+_lib.Z3_mk_fpa_to_ubv.argtypes = [ContextObj, Ast, Ast, ctypes.c_uint]
+_lib.Z3_mk_fpa_to_sbv.restype = Ast
+_lib.Z3_mk_fpa_to_sbv.argtypes = [ContextObj, Ast, Ast, ctypes.c_uint]
+_lib.Z3_mk_fpa_to_real.restype = Ast
+_lib.Z3_mk_fpa_to_real.argtypes = [ContextObj, Ast]
+_lib.Z3_fpa_get_ebits.restype = ctypes.c_uint
+_lib.Z3_fpa_get_ebits.argtypes = [ContextObj, Sort]
+_lib.Z3_fpa_get_sbits.restype = ctypes.c_uint
+_lib.Z3_fpa_get_sbits.argtypes = [ContextObj, Sort]
+_lib.Z3_fpa_is_numeral_nan.restype = ctypes.c_bool
+_lib.Z3_fpa_is_numeral_nan.argtypes = [ContextObj, Ast]
+_lib.Z3_fpa_is_numeral_inf.restype = ctypes.c_bool
+_lib.Z3_fpa_is_numeral_inf.argtypes = [ContextObj, Ast]
+_lib.Z3_fpa_is_numeral_zero.restype = ctypes.c_bool
+_lib.Z3_fpa_is_numeral_zero.argtypes = [ContextObj, Ast]
+_lib.Z3_fpa_is_numeral_normal.restype = ctypes.c_bool
+_lib.Z3_fpa_is_numeral_normal.argtypes = [ContextObj, Ast]
+_lib.Z3_fpa_is_numeral_subnormal.restype = ctypes.c_bool
+_lib.Z3_fpa_is_numeral_subnormal.argtypes = [ContextObj, Ast]
+_lib.Z3_fpa_is_numeral_positive.restype = ctypes.c_bool
+_lib.Z3_fpa_is_numeral_positive.argtypes = [ContextObj, Ast]
+_lib.Z3_fpa_is_numeral_negative.restype = ctypes.c_bool
+_lib.Z3_fpa_is_numeral_negative.argtypes = [ContextObj, Ast]
+_lib.Z3_fpa_get_numeral_sign_bv.restype = Ast
+_lib.Z3_fpa_get_numeral_sign_bv.argtypes = [ContextObj, Ast]
+_lib.Z3_fpa_get_numeral_significand_bv.restype = Ast
+_lib.Z3_fpa_get_numeral_significand_bv.argtypes = [ContextObj, Ast]
+_lib.Z3_fpa_get_numeral_sign.restype = ctypes.c_bool
+_lib.Z3_fpa_get_numeral_sign.argtypes = [ContextObj, Ast, ctypes.POINTER(ctypes.c_int)]
+_lib.Z3_fpa_get_numeral_significand_string.restype = ctypes.c_char_p
+_lib.Z3_fpa_get_numeral_significand_string.argtypes = [ContextObj, Ast]
+_lib.Z3_fpa_get_numeral_significand_uint64.restype = ctypes.c_bool
+_lib.Z3_fpa_get_numeral_significand_uint64.argtypes = [ContextObj, Ast, ctypes.POINTER(ctypes.c_ulonglong)]
+_lib.Z3_fpa_get_numeral_exponent_string.restype = ctypes.c_char_p
+_lib.Z3_fpa_get_numeral_exponent_string.argtypes = [ContextObj, Ast, ctypes.c_bool]
+_lib.Z3_fpa_get_numeral_exponent_int64.restype = ctypes.c_bool
+_lib.Z3_fpa_get_numeral_exponent_int64.argtypes = [ContextObj, Ast, ctypes.POINTER(ctypes.c_longlong), ctypes.c_bool]
+_lib.Z3_fpa_get_numeral_exponent_bv.restype = Ast
+_lib.Z3_fpa_get_numeral_exponent_bv.argtypes = [ContextObj, Ast, ctypes.c_bool]
+_lib.Z3_mk_fpa_to_ieee_bv.restype = Ast
+_lib.Z3_mk_fpa_to_ieee_bv.argtypes = [ContextObj, Ast]
+_lib.Z3_mk_fpa_to_fp_int_real.restype = Ast
+_lib.Z3_mk_fpa_to_fp_int_real.argtypes = [ContextObj, Ast, Ast, Ast, Sort]
+_lib.Z3_fixedpoint_query_from_lvl.restype = ctypes.c_int
+_lib.Z3_fixedpoint_query_from_lvl.argtypes = [ContextObj, FixedpointObj, Ast, ctypes.c_uint]
+_lib.Z3_fixedpoint_get_ground_sat_answer.restype = Ast
+_lib.Z3_fixedpoint_get_ground_sat_answer.argtypes = [ContextObj, FixedpointObj]
+_lib.Z3_fixedpoint_get_rules_along_trace.restype = AstVectorObj
+_lib.Z3_fixedpoint_get_rules_along_trace.argtypes = [ContextObj, FixedpointObj]
+_lib.Z3_fixedpoint_get_rule_names_along_trace.restype = Symbol
+_lib.Z3_fixedpoint_get_rule_names_along_trace.argtypes = [ContextObj, FixedpointObj]
+_lib.Z3_fixedpoint_add_invariant.argtypes = [ContextObj, FixedpointObj, FuncDecl, Ast]
+_lib.Z3_fixedpoint_get_reachable.restype = Ast
+_lib.Z3_fixedpoint_get_reachable.argtypes = [ContextObj, FixedpointObj, FuncDecl]
+_lib.Z3_qe_model_project.restype = Ast
+_lib.Z3_qe_model_project.argtypes = [ContextObj, Model, ctypes.c_uint, ctypes.POINTER(Ast), Ast]
+_lib.Z3_qe_model_project_skolem.restype = Ast
+_lib.Z3_qe_model_project_skolem.argtypes = [ContextObj, Model, ctypes.c_uint, ctypes.POINTER(Ast), Ast, AstMapObj]
+_lib.Z3_model_extrapolate.restype = Ast
+_lib.Z3_model_extrapolate.argtypes = [ContextObj, Model, Ast]
+_lib.Z3_qe_lite.restype = Ast
+_lib.Z3_qe_lite.argtypes = [ContextObj, AstVectorObj, Ast]
+
+class Elementaries:
+ def __init__(self, f):
+ self.f = f
+ self.get_error_code = _lib.Z3_get_error_code
+ self.get_error_message = _lib.Z3_get_error_msg
+ self.OK = Z3_OK
+ self.Exception = Z3Exception
+
+ def Check(self, ctx):
+ err = self.get_error_code(ctx)
+ if err != self.OK:
+ raise self.Exception(self.get_error_message(ctx, err))
+
+def Z3_set_error_handler(ctx, hndlr, _elems=Elementaries(_lib.Z3_set_error_handler)):
+ ceh = _error_handler_type(hndlr)
+ _elems.f(ctx, ceh)
+ _elems.Check(ctx)
+ return ceh
+
+def Z3_global_param_set(a0, a1, _elems=Elementaries(_lib.Z3_global_param_set)):
+ _elems.f(_to_ascii(a0), _to_ascii(a1))
+
+def Z3_global_param_reset_all(_elems=Elementaries(_lib.Z3_global_param_reset_all)):
+ _elems.f()
+
+def Z3_global_param_get(a0, a1, _elems=Elementaries(_lib.Z3_global_param_get)):
+ r = _elems.f(_to_ascii(a0), _to_ascii(a1))
+ return r
+
+def Z3_mk_config(_elems=Elementaries(_lib.Z3_mk_config)):
+ r = _elems.f()
+ return r
+
+def Z3_del_config(a0, _elems=Elementaries(_lib.Z3_del_config)):
+ _elems.f(a0)
+
+def Z3_set_param_value(a0, a1, a2, _elems=Elementaries(_lib.Z3_set_param_value)):
+ _elems.f(a0, _to_ascii(a1), _to_ascii(a2))
+
+def Z3_mk_context(a0, _elems=Elementaries(_lib.Z3_mk_context)):
+ r = _elems.f(a0)
+ return r
+
+def Z3_mk_context_rc(a0, _elems=Elementaries(_lib.Z3_mk_context_rc)):
+ r = _elems.f(a0)
+ return r
+
+def Z3_del_context(a0, _elems=Elementaries(_lib.Z3_del_context)):
+ _elems.f(a0)
+
+def Z3_inc_ref(a0, a1, _elems=Elementaries(_lib.Z3_inc_ref)):
+ _elems.f(a0, a1)
+ _elems.Check(a0)
+
+def Z3_dec_ref(a0, a1, _elems=Elementaries(_lib.Z3_dec_ref)):
+ _elems.f(a0, a1)
+ _elems.Check(a0)
+
+def Z3_update_param_value(a0, a1, a2, _elems=Elementaries(_lib.Z3_update_param_value)):
+ _elems.f(a0, _to_ascii(a1), _to_ascii(a2))
+ _elems.Check(a0)
+
+def Z3_interrupt(a0, _elems=Elementaries(_lib.Z3_interrupt)):
+ _elems.f(a0)
+ _elems.Check(a0)
+
+def Z3_mk_params(a0, _elems=Elementaries(_lib.Z3_mk_params)):
+ r = _elems.f(a0)
+ _elems.Check(a0)
+ return r
+
+def Z3_params_inc_ref(a0, a1, _elems=Elementaries(_lib.Z3_params_inc_ref)):
+ _elems.f(a0, a1)
+ _elems.Check(a0)
+
+def Z3_params_dec_ref(a0, a1, _elems=Elementaries(_lib.Z3_params_dec_ref)):
+ _elems.f(a0, a1)
+ _elems.Check(a0)
+
+def Z3_params_set_bool(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_params_set_bool)):
+ _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+
+def Z3_params_set_uint(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_params_set_uint)):
+ _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+
+def Z3_params_set_double(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_params_set_double)):
+ _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+
+def Z3_params_set_symbol(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_params_set_symbol)):
+ _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+
+def Z3_params_to_string(a0, a1, _elems=Elementaries(_lib.Z3_params_to_string)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return _to_pystr(r)
+
+def Z3_params_validate(a0, a1, a2, _elems=Elementaries(_lib.Z3_params_validate)):
+ _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+
+def Z3_param_descrs_inc_ref(a0, a1, _elems=Elementaries(_lib.Z3_param_descrs_inc_ref)):
+ _elems.f(a0, a1)
+ _elems.Check(a0)
+
+def Z3_param_descrs_dec_ref(a0, a1, _elems=Elementaries(_lib.Z3_param_descrs_dec_ref)):
+ _elems.f(a0, a1)
+ _elems.Check(a0)
+
+def Z3_param_descrs_get_kind(a0, a1, a2, _elems=Elementaries(_lib.Z3_param_descrs_get_kind)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_param_descrs_size(a0, a1, _elems=Elementaries(_lib.Z3_param_descrs_size)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_param_descrs_get_name(a0, a1, a2, _elems=Elementaries(_lib.Z3_param_descrs_get_name)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_param_descrs_get_documentation(a0, a1, a2, _elems=Elementaries(_lib.Z3_param_descrs_get_documentation)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return _to_pystr(r)
+
+def Z3_param_descrs_to_string(a0, a1, _elems=Elementaries(_lib.Z3_param_descrs_to_string)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return _to_pystr(r)
+
+def Z3_mk_int_symbol(a0, a1, _elems=Elementaries(_lib.Z3_mk_int_symbol)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_string_symbol(a0, a1, _elems=Elementaries(_lib.Z3_mk_string_symbol)):
+ r = _elems.f(a0, _to_ascii(a1))
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_uninterpreted_sort(a0, a1, _elems=Elementaries(_lib.Z3_mk_uninterpreted_sort)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_bool_sort(a0, _elems=Elementaries(_lib.Z3_mk_bool_sort)):
+ r = _elems.f(a0)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_int_sort(a0, _elems=Elementaries(_lib.Z3_mk_int_sort)):
+ r = _elems.f(a0)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_real_sort(a0, _elems=Elementaries(_lib.Z3_mk_real_sort)):
+ r = _elems.f(a0)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_bv_sort(a0, a1, _elems=Elementaries(_lib.Z3_mk_bv_sort)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_finite_domain_sort(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_finite_domain_sort)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_array_sort(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_array_sort)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_array_sort_n(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_mk_array_sort_n)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_tuple_sort(a0, a1, a2, a3, a4, a5, a6, _elems=Elementaries(_lib.Z3_mk_tuple_sort)):
+ r = _elems.f(a0, a1, a2, a3, a4, a5, a6)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_enumeration_sort(a0, a1, a2, a3, a4, a5, _elems=Elementaries(_lib.Z3_mk_enumeration_sort)):
+ r = _elems.f(a0, a1, a2, a3, a4, a5)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_list_sort(a0, a1, a2, a3, a4, a5, a6, a7, a8, _elems=Elementaries(_lib.Z3_mk_list_sort)):
+ r = _elems.f(a0, a1, a2, a3, a4, a5, a6, a7, a8)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_constructor(a0, a1, a2, a3, a4, a5, a6, _elems=Elementaries(_lib.Z3_mk_constructor)):
+ r = _elems.f(a0, a1, a2, a3, a4, a5, a6)
+ _elems.Check(a0)
+ return r
+
+def Z3_del_constructor(a0, a1, _elems=Elementaries(_lib.Z3_del_constructor)):
+ _elems.f(a0, a1)
+ _elems.Check(a0)
+
+def Z3_mk_datatype(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_mk_datatype)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_constructor_list(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_constructor_list)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_del_constructor_list(a0, a1, _elems=Elementaries(_lib.Z3_del_constructor_list)):
+ _elems.f(a0, a1)
+ _elems.Check(a0)
+
+def Z3_mk_datatypes(a0, a1, a2, a3, a4, _elems=Elementaries(_lib.Z3_mk_datatypes)):
+ _elems.f(a0, a1, a2, a3, a4)
+ _elems.Check(a0)
+
+def Z3_query_constructor(a0, a1, a2, a3, a4, a5, _elems=Elementaries(_lib.Z3_query_constructor)):
+ _elems.f(a0, a1, a2, a3, a4, a5)
+ _elems.Check(a0)
+
+def Z3_mk_func_decl(a0, a1, a2, a3, a4, _elems=Elementaries(_lib.Z3_mk_func_decl)):
+ r = _elems.f(a0, a1, a2, a3, a4)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_app(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_mk_app)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_const(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_const)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fresh_func_decl(a0, a1, a2, a3, a4, _elems=Elementaries(_lib.Z3_mk_fresh_func_decl)):
+ r = _elems.f(a0, _to_ascii(a1), a2, a3, a4)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fresh_const(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_fresh_const)):
+ r = _elems.f(a0, _to_ascii(a1), a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_true(a0, _elems=Elementaries(_lib.Z3_mk_true)):
+ r = _elems.f(a0)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_false(a0, _elems=Elementaries(_lib.Z3_mk_false)):
+ r = _elems.f(a0)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_eq(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_eq)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_distinct(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_distinct)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_not(a0, a1, _elems=Elementaries(_lib.Z3_mk_not)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_ite(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_mk_ite)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_iff(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_iff)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_implies(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_implies)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_xor(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_xor)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_and(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_and)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_or(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_or)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_add(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_add)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_mul(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_mul)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_sub(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_sub)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_unary_minus(a0, a1, _elems=Elementaries(_lib.Z3_mk_unary_minus)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_div(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_div)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_mod(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_mod)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_rem(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_rem)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_power(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_power)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_lt(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_lt)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_le(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_le)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_gt(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_gt)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_ge(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_ge)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_int2real(a0, a1, _elems=Elementaries(_lib.Z3_mk_int2real)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_real2int(a0, a1, _elems=Elementaries(_lib.Z3_mk_real2int)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_is_int(a0, a1, _elems=Elementaries(_lib.Z3_mk_is_int)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_bvnot(a0, a1, _elems=Elementaries(_lib.Z3_mk_bvnot)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_bvredand(a0, a1, _elems=Elementaries(_lib.Z3_mk_bvredand)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_bvredor(a0, a1, _elems=Elementaries(_lib.Z3_mk_bvredor)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_bvand(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_bvand)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_bvor(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_bvor)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_bvxor(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_bvxor)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_bvnand(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_bvnand)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_bvnor(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_bvnor)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_bvxnor(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_bvxnor)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_bvneg(a0, a1, _elems=Elementaries(_lib.Z3_mk_bvneg)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_bvadd(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_bvadd)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_bvsub(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_bvsub)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_bvmul(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_bvmul)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_bvudiv(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_bvudiv)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_bvsdiv(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_bvsdiv)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_bvurem(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_bvurem)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_bvsrem(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_bvsrem)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_bvsmod(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_bvsmod)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_bvult(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_bvult)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_bvslt(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_bvslt)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_bvule(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_bvule)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_bvsle(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_bvsle)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_bvuge(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_bvuge)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_bvsge(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_bvsge)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_bvugt(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_bvugt)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_bvsgt(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_bvsgt)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_concat(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_concat)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_extract(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_mk_extract)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_sign_ext(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_sign_ext)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_zero_ext(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_zero_ext)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_repeat(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_repeat)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_bvshl(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_bvshl)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_bvlshr(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_bvlshr)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_bvashr(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_bvashr)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_rotate_left(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_rotate_left)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_rotate_right(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_rotate_right)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_ext_rotate_left(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_ext_rotate_left)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_ext_rotate_right(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_ext_rotate_right)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_int2bv(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_int2bv)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_bv2int(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_bv2int)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_bvadd_no_overflow(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_mk_bvadd_no_overflow)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_bvadd_no_underflow(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_bvadd_no_underflow)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_bvsub_no_overflow(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_bvsub_no_overflow)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_bvsub_no_underflow(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_mk_bvsub_no_underflow)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_bvsdiv_no_overflow(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_bvsdiv_no_overflow)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_bvneg_no_overflow(a0, a1, _elems=Elementaries(_lib.Z3_mk_bvneg_no_overflow)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_bvmul_no_overflow(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_mk_bvmul_no_overflow)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_bvmul_no_underflow(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_bvmul_no_underflow)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_select(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_select)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_select_n(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_mk_select_n)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_store(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_mk_store)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_store_n(a0, a1, a2, a3, a4, _elems=Elementaries(_lib.Z3_mk_store_n)):
+ r = _elems.f(a0, a1, a2, a3, a4)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_const_array(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_const_array)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_map(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_mk_map)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_array_default(a0, a1, _elems=Elementaries(_lib.Z3_mk_array_default)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_as_array(a0, a1, _elems=Elementaries(_lib.Z3_mk_as_array)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_set_sort(a0, a1, _elems=Elementaries(_lib.Z3_mk_set_sort)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_empty_set(a0, a1, _elems=Elementaries(_lib.Z3_mk_empty_set)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_full_set(a0, a1, _elems=Elementaries(_lib.Z3_mk_full_set)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_set_add(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_set_add)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_set_del(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_set_del)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_set_union(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_set_union)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_set_intersect(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_set_intersect)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_set_difference(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_set_difference)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_set_complement(a0, a1, _elems=Elementaries(_lib.Z3_mk_set_complement)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_set_member(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_set_member)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_set_subset(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_set_subset)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_array_ext(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_array_ext)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_numeral(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_numeral)):
+ r = _elems.f(a0, _to_ascii(a1), a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_real(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_real)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_int(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_int)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_unsigned_int(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_unsigned_int)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_int64(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_int64)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_unsigned_int64(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_unsigned_int64)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_bv_numeral(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_bv_numeral)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_seq_sort(a0, a1, _elems=Elementaries(_lib.Z3_mk_seq_sort)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_is_seq_sort(a0, a1, _elems=Elementaries(_lib.Z3_is_seq_sort)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_re_sort(a0, a1, _elems=Elementaries(_lib.Z3_mk_re_sort)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_is_re_sort(a0, a1, _elems=Elementaries(_lib.Z3_is_re_sort)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_string_sort(a0, _elems=Elementaries(_lib.Z3_mk_string_sort)):
+ r = _elems.f(a0)
+ _elems.Check(a0)
+ return r
+
+def Z3_is_string_sort(a0, a1, _elems=Elementaries(_lib.Z3_is_string_sort)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_string(a0, a1, _elems=Elementaries(_lib.Z3_mk_string)):
+ r = _elems.f(a0, _to_ascii(a1))
+ _elems.Check(a0)
+ return r
+
+def Z3_is_string(a0, a1, _elems=Elementaries(_lib.Z3_is_string)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_string(a0, a1, _elems=Elementaries(_lib.Z3_get_string)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return _to_pystr(r)
+
+def Z3_mk_seq_empty(a0, a1, _elems=Elementaries(_lib.Z3_mk_seq_empty)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_seq_unit(a0, a1, _elems=Elementaries(_lib.Z3_mk_seq_unit)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_seq_concat(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_seq_concat)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_seq_prefix(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_seq_prefix)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_seq_suffix(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_seq_suffix)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_seq_contains(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_seq_contains)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_seq_extract(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_mk_seq_extract)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_seq_replace(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_mk_seq_replace)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_seq_at(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_seq_at)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_seq_length(a0, a1, _elems=Elementaries(_lib.Z3_mk_seq_length)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_seq_index(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_mk_seq_index)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_str_to_int(a0, a1, _elems=Elementaries(_lib.Z3_mk_str_to_int)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_int_to_str(a0, a1, _elems=Elementaries(_lib.Z3_mk_int_to_str)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_seq_to_re(a0, a1, _elems=Elementaries(_lib.Z3_mk_seq_to_re)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_seq_in_re(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_seq_in_re)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_re_plus(a0, a1, _elems=Elementaries(_lib.Z3_mk_re_plus)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_re_star(a0, a1, _elems=Elementaries(_lib.Z3_mk_re_star)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_re_option(a0, a1, _elems=Elementaries(_lib.Z3_mk_re_option)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_re_union(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_re_union)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_re_concat(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_re_concat)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_re_range(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_re_range)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_re_loop(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_mk_re_loop)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_re_intersect(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_re_intersect)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_re_complement(a0, a1, _elems=Elementaries(_lib.Z3_mk_re_complement)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_re_empty(a0, a1, _elems=Elementaries(_lib.Z3_mk_re_empty)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_re_full(a0, a1, _elems=Elementaries(_lib.Z3_mk_re_full)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_pattern(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_pattern)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_bound(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_bound)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_forall(a0, a1, a2, a3, a4, a5, a6, a7, _elems=Elementaries(_lib.Z3_mk_forall)):
+ r = _elems.f(a0, a1, a2, a3, a4, a5, a6, a7)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_exists(a0, a1, a2, a3, a4, a5, a6, a7, _elems=Elementaries(_lib.Z3_mk_exists)):
+ r = _elems.f(a0, a1, a2, a3, a4, a5, a6, a7)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_quantifier(a0, a1, a2, a3, a4, a5, a6, a7, a8, _elems=Elementaries(_lib.Z3_mk_quantifier)):
+ r = _elems.f(a0, a1, a2, a3, a4, a5, a6, a7, a8)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_quantifier_ex(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, _elems=Elementaries(_lib.Z3_mk_quantifier_ex)):
+ r = _elems.f(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_forall_const(a0, a1, a2, a3, a4, a5, a6, _elems=Elementaries(_lib.Z3_mk_forall_const)):
+ r = _elems.f(a0, a1, a2, a3, a4, a5, a6)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_exists_const(a0, a1, a2, a3, a4, a5, a6, _elems=Elementaries(_lib.Z3_mk_exists_const)):
+ r = _elems.f(a0, a1, a2, a3, a4, a5, a6)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_quantifier_const(a0, a1, a2, a3, a4, a5, a6, a7, _elems=Elementaries(_lib.Z3_mk_quantifier_const)):
+ r = _elems.f(a0, a1, a2, a3, a4, a5, a6, a7)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_quantifier_const_ex(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, _elems=Elementaries(_lib.Z3_mk_quantifier_const_ex)):
+ r = _elems.f(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_symbol_kind(a0, a1, _elems=Elementaries(_lib.Z3_get_symbol_kind)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_symbol_int(a0, a1, _elems=Elementaries(_lib.Z3_get_symbol_int)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_symbol_string(a0, a1, _elems=Elementaries(_lib.Z3_get_symbol_string)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return _to_pystr(r)
+
+def Z3_get_sort_name(a0, a1, _elems=Elementaries(_lib.Z3_get_sort_name)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_sort_id(a0, a1, _elems=Elementaries(_lib.Z3_get_sort_id)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_sort_to_ast(a0, a1, _elems=Elementaries(_lib.Z3_sort_to_ast)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_is_eq_sort(a0, a1, a2, _elems=Elementaries(_lib.Z3_is_eq_sort)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_sort_kind(a0, a1, _elems=Elementaries(_lib.Z3_get_sort_kind)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_bv_sort_size(a0, a1, _elems=Elementaries(_lib.Z3_get_bv_sort_size)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_finite_domain_sort_size(a0, a1, a2, _elems=Elementaries(_lib.Z3_get_finite_domain_sort_size)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_array_sort_domain(a0, a1, _elems=Elementaries(_lib.Z3_get_array_sort_domain)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_array_sort_range(a0, a1, _elems=Elementaries(_lib.Z3_get_array_sort_range)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_tuple_sort_mk_decl(a0, a1, _elems=Elementaries(_lib.Z3_get_tuple_sort_mk_decl)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_tuple_sort_num_fields(a0, a1, _elems=Elementaries(_lib.Z3_get_tuple_sort_num_fields)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_tuple_sort_field_decl(a0, a1, a2, _elems=Elementaries(_lib.Z3_get_tuple_sort_field_decl)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_datatype_sort_num_constructors(a0, a1, _elems=Elementaries(_lib.Z3_get_datatype_sort_num_constructors)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_datatype_sort_constructor(a0, a1, a2, _elems=Elementaries(_lib.Z3_get_datatype_sort_constructor)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_datatype_sort_recognizer(a0, a1, a2, _elems=Elementaries(_lib.Z3_get_datatype_sort_recognizer)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_datatype_sort_constructor_accessor(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_get_datatype_sort_constructor_accessor)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_datatype_update_field(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_datatype_update_field)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_relation_arity(a0, a1, _elems=Elementaries(_lib.Z3_get_relation_arity)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_relation_column(a0, a1, a2, _elems=Elementaries(_lib.Z3_get_relation_column)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_atmost(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_mk_atmost)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_atleast(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_mk_atleast)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_pble(a0, a1, a2, a3, a4, _elems=Elementaries(_lib.Z3_mk_pble)):
+ r = _elems.f(a0, a1, a2, a3, a4)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_pbge(a0, a1, a2, a3, a4, _elems=Elementaries(_lib.Z3_mk_pbge)):
+ r = _elems.f(a0, a1, a2, a3, a4)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_pbeq(a0, a1, a2, a3, a4, _elems=Elementaries(_lib.Z3_mk_pbeq)):
+ r = _elems.f(a0, a1, a2, a3, a4)
+ _elems.Check(a0)
+ return r
+
+def Z3_func_decl_to_ast(a0, a1, _elems=Elementaries(_lib.Z3_func_decl_to_ast)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_is_eq_func_decl(a0, a1, a2, _elems=Elementaries(_lib.Z3_is_eq_func_decl)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_func_decl_id(a0, a1, _elems=Elementaries(_lib.Z3_get_func_decl_id)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_decl_name(a0, a1, _elems=Elementaries(_lib.Z3_get_decl_name)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_decl_kind(a0, a1, _elems=Elementaries(_lib.Z3_get_decl_kind)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_domain_size(a0, a1, _elems=Elementaries(_lib.Z3_get_domain_size)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_arity(a0, a1, _elems=Elementaries(_lib.Z3_get_arity)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_domain(a0, a1, a2, _elems=Elementaries(_lib.Z3_get_domain)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_range(a0, a1, _elems=Elementaries(_lib.Z3_get_range)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_decl_num_parameters(a0, a1, _elems=Elementaries(_lib.Z3_get_decl_num_parameters)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_decl_parameter_kind(a0, a1, a2, _elems=Elementaries(_lib.Z3_get_decl_parameter_kind)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_decl_int_parameter(a0, a1, a2, _elems=Elementaries(_lib.Z3_get_decl_int_parameter)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_decl_double_parameter(a0, a1, a2, _elems=Elementaries(_lib.Z3_get_decl_double_parameter)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_decl_symbol_parameter(a0, a1, a2, _elems=Elementaries(_lib.Z3_get_decl_symbol_parameter)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_decl_sort_parameter(a0, a1, a2, _elems=Elementaries(_lib.Z3_get_decl_sort_parameter)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_decl_ast_parameter(a0, a1, a2, _elems=Elementaries(_lib.Z3_get_decl_ast_parameter)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_decl_func_decl_parameter(a0, a1, a2, _elems=Elementaries(_lib.Z3_get_decl_func_decl_parameter)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_decl_rational_parameter(a0, a1, a2, _elems=Elementaries(_lib.Z3_get_decl_rational_parameter)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return _to_pystr(r)
+
+def Z3_app_to_ast(a0, a1, _elems=Elementaries(_lib.Z3_app_to_ast)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_app_decl(a0, a1, _elems=Elementaries(_lib.Z3_get_app_decl)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_app_num_args(a0, a1, _elems=Elementaries(_lib.Z3_get_app_num_args)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_app_arg(a0, a1, a2, _elems=Elementaries(_lib.Z3_get_app_arg)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_is_eq_ast(a0, a1, a2, _elems=Elementaries(_lib.Z3_is_eq_ast)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_ast_id(a0, a1, _elems=Elementaries(_lib.Z3_get_ast_id)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_ast_hash(a0, a1, _elems=Elementaries(_lib.Z3_get_ast_hash)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_sort(a0, a1, _elems=Elementaries(_lib.Z3_get_sort)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_is_well_sorted(a0, a1, _elems=Elementaries(_lib.Z3_is_well_sorted)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_bool_value(a0, a1, _elems=Elementaries(_lib.Z3_get_bool_value)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_ast_kind(a0, a1, _elems=Elementaries(_lib.Z3_get_ast_kind)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_is_app(a0, a1, _elems=Elementaries(_lib.Z3_is_app)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_is_numeral_ast(a0, a1, _elems=Elementaries(_lib.Z3_is_numeral_ast)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_is_algebraic_number(a0, a1, _elems=Elementaries(_lib.Z3_is_algebraic_number)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_to_app(a0, a1, _elems=Elementaries(_lib.Z3_to_app)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_to_func_decl(a0, a1, _elems=Elementaries(_lib.Z3_to_func_decl)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_numeral_string(a0, a1, _elems=Elementaries(_lib.Z3_get_numeral_string)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return _to_pystr(r)
+
+def Z3_get_numeral_decimal_string(a0, a1, a2, _elems=Elementaries(_lib.Z3_get_numeral_decimal_string)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return _to_pystr(r)
+
+def Z3_get_numerator(a0, a1, _elems=Elementaries(_lib.Z3_get_numerator)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_denominator(a0, a1, _elems=Elementaries(_lib.Z3_get_denominator)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_numeral_small(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_get_numeral_small)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_numeral_int(a0, a1, a2, _elems=Elementaries(_lib.Z3_get_numeral_int)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_numeral_uint(a0, a1, a2, _elems=Elementaries(_lib.Z3_get_numeral_uint)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_numeral_uint64(a0, a1, a2, _elems=Elementaries(_lib.Z3_get_numeral_uint64)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_numeral_int64(a0, a1, a2, _elems=Elementaries(_lib.Z3_get_numeral_int64)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_numeral_rational_int64(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_get_numeral_rational_int64)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_algebraic_number_lower(a0, a1, a2, _elems=Elementaries(_lib.Z3_get_algebraic_number_lower)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_algebraic_number_upper(a0, a1, a2, _elems=Elementaries(_lib.Z3_get_algebraic_number_upper)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_pattern_to_ast(a0, a1, _elems=Elementaries(_lib.Z3_pattern_to_ast)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_pattern_num_terms(a0, a1, _elems=Elementaries(_lib.Z3_get_pattern_num_terms)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_pattern(a0, a1, a2, _elems=Elementaries(_lib.Z3_get_pattern)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_index_value(a0, a1, _elems=Elementaries(_lib.Z3_get_index_value)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_is_quantifier_forall(a0, a1, _elems=Elementaries(_lib.Z3_is_quantifier_forall)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_quantifier_weight(a0, a1, _elems=Elementaries(_lib.Z3_get_quantifier_weight)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_quantifier_num_patterns(a0, a1, _elems=Elementaries(_lib.Z3_get_quantifier_num_patterns)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_quantifier_pattern_ast(a0, a1, a2, _elems=Elementaries(_lib.Z3_get_quantifier_pattern_ast)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_quantifier_num_no_patterns(a0, a1, _elems=Elementaries(_lib.Z3_get_quantifier_num_no_patterns)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_quantifier_no_pattern_ast(a0, a1, a2, _elems=Elementaries(_lib.Z3_get_quantifier_no_pattern_ast)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_quantifier_num_bound(a0, a1, _elems=Elementaries(_lib.Z3_get_quantifier_num_bound)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_quantifier_bound_name(a0, a1, a2, _elems=Elementaries(_lib.Z3_get_quantifier_bound_name)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_quantifier_bound_sort(a0, a1, a2, _elems=Elementaries(_lib.Z3_get_quantifier_bound_sort)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_quantifier_body(a0, a1, _elems=Elementaries(_lib.Z3_get_quantifier_body)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_simplify(a0, a1, _elems=Elementaries(_lib.Z3_simplify)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_simplify_ex(a0, a1, a2, _elems=Elementaries(_lib.Z3_simplify_ex)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_simplify_get_help(a0, _elems=Elementaries(_lib.Z3_simplify_get_help)):
+ r = _elems.f(a0)
+ _elems.Check(a0)
+ return _to_pystr(r)
+
+def Z3_simplify_get_param_descrs(a0, _elems=Elementaries(_lib.Z3_simplify_get_param_descrs)):
+ r = _elems.f(a0)
+ _elems.Check(a0)
+ return r
+
+def Z3_update_term(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_update_term)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_substitute(a0, a1, a2, a3, a4, _elems=Elementaries(_lib.Z3_substitute)):
+ r = _elems.f(a0, a1, a2, a3, a4)
+ _elems.Check(a0)
+ return r
+
+def Z3_substitute_vars(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_substitute_vars)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_translate(a0, a1, a2, _elems=Elementaries(_lib.Z3_translate)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_model(a0, _elems=Elementaries(_lib.Z3_mk_model)):
+ r = _elems.f(a0)
+ _elems.Check(a0)
+ return r
+
+def Z3_model_inc_ref(a0, a1, _elems=Elementaries(_lib.Z3_model_inc_ref)):
+ _elems.f(a0, a1)
+ _elems.Check(a0)
+
+def Z3_model_dec_ref(a0, a1, _elems=Elementaries(_lib.Z3_model_dec_ref)):
+ _elems.f(a0, a1)
+ _elems.Check(a0)
+
+def Z3_model_eval(a0, a1, a2, a3, a4, _elems=Elementaries(_lib.Z3_model_eval)):
+ r = _elems.f(a0, a1, a2, a3, a4)
+ _elems.Check(a0)
+ return r
+
+def Z3_model_get_const_interp(a0, a1, a2, _elems=Elementaries(_lib.Z3_model_get_const_interp)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_model_has_interp(a0, a1, a2, _elems=Elementaries(_lib.Z3_model_has_interp)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_model_get_func_interp(a0, a1, a2, _elems=Elementaries(_lib.Z3_model_get_func_interp)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_model_get_num_consts(a0, a1, _elems=Elementaries(_lib.Z3_model_get_num_consts)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_model_get_const_decl(a0, a1, a2, _elems=Elementaries(_lib.Z3_model_get_const_decl)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_model_get_num_funcs(a0, a1, _elems=Elementaries(_lib.Z3_model_get_num_funcs)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_model_get_func_decl(a0, a1, a2, _elems=Elementaries(_lib.Z3_model_get_func_decl)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_model_get_num_sorts(a0, a1, _elems=Elementaries(_lib.Z3_model_get_num_sorts)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_model_get_sort(a0, a1, a2, _elems=Elementaries(_lib.Z3_model_get_sort)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_model_get_sort_universe(a0, a1, a2, _elems=Elementaries(_lib.Z3_model_get_sort_universe)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_is_as_array(a0, a1, _elems=Elementaries(_lib.Z3_is_as_array)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_as_array_func_decl(a0, a1, _elems=Elementaries(_lib.Z3_get_as_array_func_decl)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_add_func_interp(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_add_func_interp)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_add_const_interp(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_add_const_interp)):
+ _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+
+def Z3_func_interp_inc_ref(a0, a1, _elems=Elementaries(_lib.Z3_func_interp_inc_ref)):
+ _elems.f(a0, a1)
+ _elems.Check(a0)
+
+def Z3_func_interp_dec_ref(a0, a1, _elems=Elementaries(_lib.Z3_func_interp_dec_ref)):
+ _elems.f(a0, a1)
+ _elems.Check(a0)
+
+def Z3_func_interp_get_num_entries(a0, a1, _elems=Elementaries(_lib.Z3_func_interp_get_num_entries)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_func_interp_get_entry(a0, a1, a2, _elems=Elementaries(_lib.Z3_func_interp_get_entry)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_func_interp_get_else(a0, a1, _elems=Elementaries(_lib.Z3_func_interp_get_else)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_func_interp_set_else(a0, a1, a2, _elems=Elementaries(_lib.Z3_func_interp_set_else)):
+ _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+
+def Z3_func_interp_get_arity(a0, a1, _elems=Elementaries(_lib.Z3_func_interp_get_arity)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_func_interp_add_entry(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_func_interp_add_entry)):
+ _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+
+def Z3_func_entry_inc_ref(a0, a1, _elems=Elementaries(_lib.Z3_func_entry_inc_ref)):
+ _elems.f(a0, a1)
+ _elems.Check(a0)
+
+def Z3_func_entry_dec_ref(a0, a1, _elems=Elementaries(_lib.Z3_func_entry_dec_ref)):
+ _elems.f(a0, a1)
+ _elems.Check(a0)
+
+def Z3_func_entry_get_value(a0, a1, _elems=Elementaries(_lib.Z3_func_entry_get_value)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_func_entry_get_num_args(a0, a1, _elems=Elementaries(_lib.Z3_func_entry_get_num_args)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_func_entry_get_arg(a0, a1, a2, _elems=Elementaries(_lib.Z3_func_entry_get_arg)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_open_log(a0, _elems=Elementaries(_lib.Z3_open_log)):
+ r = _elems.f(_to_ascii(a0))
+ return r
+
+def Z3_append_log(a0, _elems=Elementaries(_lib.Z3_append_log)):
+ _elems.f(_to_ascii(a0))
+
+def Z3_close_log(_elems=Elementaries(_lib.Z3_close_log)):
+ _elems.f()
+
+def Z3_toggle_warning_messages(a0, _elems=Elementaries(_lib.Z3_toggle_warning_messages)):
+ _elems.f(a0)
+
+def Z3_set_ast_print_mode(a0, a1, _elems=Elementaries(_lib.Z3_set_ast_print_mode)):
+ _elems.f(a0, a1)
+ _elems.Check(a0)
+
+def Z3_ast_to_string(a0, a1, _elems=Elementaries(_lib.Z3_ast_to_string)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return _to_pystr(r)
+
+def Z3_pattern_to_string(a0, a1, _elems=Elementaries(_lib.Z3_pattern_to_string)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return _to_pystr(r)
+
+def Z3_sort_to_string(a0, a1, _elems=Elementaries(_lib.Z3_sort_to_string)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return _to_pystr(r)
+
+def Z3_func_decl_to_string(a0, a1, _elems=Elementaries(_lib.Z3_func_decl_to_string)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return _to_pystr(r)
+
+def Z3_model_to_string(a0, a1, _elems=Elementaries(_lib.Z3_model_to_string)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return _to_pystr(r)
+
+def Z3_benchmark_to_smtlib_string(a0, a1, a2, a3, a4, a5, a6, a7, _elems=Elementaries(_lib.Z3_benchmark_to_smtlib_string)):
+ r = _elems.f(a0, _to_ascii(a1), _to_ascii(a2), _to_ascii(a3), _to_ascii(a4), a5, a6, a7)
+ _elems.Check(a0)
+ return _to_pystr(r)
+
+def Z3_parse_smtlib2_string(a0, a1, a2, a3, a4, a5, a6, a7, _elems=Elementaries(_lib.Z3_parse_smtlib2_string)):
+ r = _elems.f(a0, _to_ascii(a1), a2, a3, a4, a5, a6, a7)
+ _elems.Check(a0)
+ return r
+
+def Z3_parse_smtlib2_file(a0, a1, a2, a3, a4, a5, a6, a7, _elems=Elementaries(_lib.Z3_parse_smtlib2_file)):
+ r = _elems.f(a0, _to_ascii(a1), a2, a3, a4, a5, a6, a7)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_parser_error(a0, _elems=Elementaries(_lib.Z3_get_parser_error)):
+ r = _elems.f(a0)
+ _elems.Check(a0)
+ return _to_pystr(r)
+
+def Z3_get_error_code(a0, _elems=Elementaries(_lib.Z3_get_error_code)):
+ r = _elems.f(a0)
+ return r
+
+def Z3_set_error(a0, a1, _elems=Elementaries(_lib.Z3_set_error)):
+ _elems.f(a0, a1)
+ _elems.Check(a0)
+
+def Z3_get_error_msg(a0, a1, _elems=Elementaries(_lib.Z3_get_error_msg)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return _to_pystr(r)
+
+def Z3_get_version(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_get_version)):
+ _elems.f(a0, a1, a2, a3)
+
+def Z3_get_full_version(_elems=Elementaries(_lib.Z3_get_full_version)):
+ r = _elems.f()
+ return _to_pystr(r)
+
+def Z3_enable_trace(a0, _elems=Elementaries(_lib.Z3_enable_trace)):
+ _elems.f(_to_ascii(a0))
+
+def Z3_disable_trace(a0, _elems=Elementaries(_lib.Z3_disable_trace)):
+ _elems.f(_to_ascii(a0))
+
+def Z3_reset_memory(_elems=Elementaries(_lib.Z3_reset_memory)):
+ _elems.f()
+
+def Z3_finalize_memory(_elems=Elementaries(_lib.Z3_finalize_memory)):
+ _elems.f()
+
+def Z3_mk_goal(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_mk_goal)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_goal_inc_ref(a0, a1, _elems=Elementaries(_lib.Z3_goal_inc_ref)):
+ _elems.f(a0, a1)
+ _elems.Check(a0)
+
+def Z3_goal_dec_ref(a0, a1, _elems=Elementaries(_lib.Z3_goal_dec_ref)):
+ _elems.f(a0, a1)
+ _elems.Check(a0)
+
+def Z3_goal_precision(a0, a1, _elems=Elementaries(_lib.Z3_goal_precision)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_goal_assert(a0, a1, a2, _elems=Elementaries(_lib.Z3_goal_assert)):
+ _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+
+def Z3_goal_inconsistent(a0, a1, _elems=Elementaries(_lib.Z3_goal_inconsistent)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_goal_depth(a0, a1, _elems=Elementaries(_lib.Z3_goal_depth)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_goal_reset(a0, a1, _elems=Elementaries(_lib.Z3_goal_reset)):
+ _elems.f(a0, a1)
+ _elems.Check(a0)
+
+def Z3_goal_size(a0, a1, _elems=Elementaries(_lib.Z3_goal_size)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_goal_formula(a0, a1, a2, _elems=Elementaries(_lib.Z3_goal_formula)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_goal_num_exprs(a0, a1, _elems=Elementaries(_lib.Z3_goal_num_exprs)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_goal_is_decided_sat(a0, a1, _elems=Elementaries(_lib.Z3_goal_is_decided_sat)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_goal_is_decided_unsat(a0, a1, _elems=Elementaries(_lib.Z3_goal_is_decided_unsat)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_goal_translate(a0, a1, a2, _elems=Elementaries(_lib.Z3_goal_translate)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_goal_to_string(a0, a1, _elems=Elementaries(_lib.Z3_goal_to_string)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return _to_pystr(r)
+
+def Z3_mk_tactic(a0, a1, _elems=Elementaries(_lib.Z3_mk_tactic)):
+ r = _elems.f(a0, _to_ascii(a1))
+ _elems.Check(a0)
+ return r
+
+def Z3_tactic_inc_ref(a0, a1, _elems=Elementaries(_lib.Z3_tactic_inc_ref)):
+ _elems.f(a0, a1)
+ _elems.Check(a0)
+
+def Z3_tactic_dec_ref(a0, a1, _elems=Elementaries(_lib.Z3_tactic_dec_ref)):
+ _elems.f(a0, a1)
+ _elems.Check(a0)
+
+def Z3_mk_probe(a0, a1, _elems=Elementaries(_lib.Z3_mk_probe)):
+ r = _elems.f(a0, _to_ascii(a1))
+ _elems.Check(a0)
+ return r
+
+def Z3_probe_inc_ref(a0, a1, _elems=Elementaries(_lib.Z3_probe_inc_ref)):
+ _elems.f(a0, a1)
+ _elems.Check(a0)
+
+def Z3_probe_dec_ref(a0, a1, _elems=Elementaries(_lib.Z3_probe_dec_ref)):
+ _elems.f(a0, a1)
+ _elems.Check(a0)
+
+def Z3_tactic_and_then(a0, a1, a2, _elems=Elementaries(_lib.Z3_tactic_and_then)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_tactic_or_else(a0, a1, a2, _elems=Elementaries(_lib.Z3_tactic_or_else)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_tactic_par_or(a0, a1, a2, _elems=Elementaries(_lib.Z3_tactic_par_or)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_tactic_par_and_then(a0, a1, a2, _elems=Elementaries(_lib.Z3_tactic_par_and_then)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_tactic_try_for(a0, a1, a2, _elems=Elementaries(_lib.Z3_tactic_try_for)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_tactic_when(a0, a1, a2, _elems=Elementaries(_lib.Z3_tactic_when)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_tactic_cond(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_tactic_cond)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_tactic_repeat(a0, a1, a2, _elems=Elementaries(_lib.Z3_tactic_repeat)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_tactic_skip(a0, _elems=Elementaries(_lib.Z3_tactic_skip)):
+ r = _elems.f(a0)
+ _elems.Check(a0)
+ return r
+
+def Z3_tactic_fail(a0, _elems=Elementaries(_lib.Z3_tactic_fail)):
+ r = _elems.f(a0)
+ _elems.Check(a0)
+ return r
+
+def Z3_tactic_fail_if(a0, a1, _elems=Elementaries(_lib.Z3_tactic_fail_if)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_tactic_fail_if_not_decided(a0, _elems=Elementaries(_lib.Z3_tactic_fail_if_not_decided)):
+ r = _elems.f(a0)
+ _elems.Check(a0)
+ return r
+
+def Z3_tactic_using_params(a0, a1, a2, _elems=Elementaries(_lib.Z3_tactic_using_params)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_probe_const(a0, a1, _elems=Elementaries(_lib.Z3_probe_const)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_probe_lt(a0, a1, a2, _elems=Elementaries(_lib.Z3_probe_lt)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_probe_gt(a0, a1, a2, _elems=Elementaries(_lib.Z3_probe_gt)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_probe_le(a0, a1, a2, _elems=Elementaries(_lib.Z3_probe_le)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_probe_ge(a0, a1, a2, _elems=Elementaries(_lib.Z3_probe_ge)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_probe_eq(a0, a1, a2, _elems=Elementaries(_lib.Z3_probe_eq)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_probe_and(a0, a1, a2, _elems=Elementaries(_lib.Z3_probe_and)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_probe_or(a0, a1, a2, _elems=Elementaries(_lib.Z3_probe_or)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_probe_not(a0, a1, _elems=Elementaries(_lib.Z3_probe_not)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_num_tactics(a0, _elems=Elementaries(_lib.Z3_get_num_tactics)):
+ r = _elems.f(a0)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_tactic_name(a0, a1, _elems=Elementaries(_lib.Z3_get_tactic_name)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return _to_pystr(r)
+
+def Z3_get_num_probes(a0, _elems=Elementaries(_lib.Z3_get_num_probes)):
+ r = _elems.f(a0)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_probe_name(a0, a1, _elems=Elementaries(_lib.Z3_get_probe_name)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return _to_pystr(r)
+
+def Z3_tactic_get_help(a0, a1, _elems=Elementaries(_lib.Z3_tactic_get_help)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return _to_pystr(r)
+
+def Z3_tactic_get_param_descrs(a0, a1, _elems=Elementaries(_lib.Z3_tactic_get_param_descrs)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_tactic_get_descr(a0, a1, _elems=Elementaries(_lib.Z3_tactic_get_descr)):
+ r = _elems.f(a0, _to_ascii(a1))
+ _elems.Check(a0)
+ return _to_pystr(r)
+
+def Z3_probe_get_descr(a0, a1, _elems=Elementaries(_lib.Z3_probe_get_descr)):
+ r = _elems.f(a0, _to_ascii(a1))
+ _elems.Check(a0)
+ return _to_pystr(r)
+
+def Z3_probe_apply(a0, a1, a2, _elems=Elementaries(_lib.Z3_probe_apply)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_tactic_apply(a0, a1, a2, _elems=Elementaries(_lib.Z3_tactic_apply)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_tactic_apply_ex(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_tactic_apply_ex)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_apply_result_inc_ref(a0, a1, _elems=Elementaries(_lib.Z3_apply_result_inc_ref)):
+ _elems.f(a0, a1)
+ _elems.Check(a0)
+
+def Z3_apply_result_dec_ref(a0, a1, _elems=Elementaries(_lib.Z3_apply_result_dec_ref)):
+ _elems.f(a0, a1)
+ _elems.Check(a0)
+
+def Z3_apply_result_to_string(a0, a1, _elems=Elementaries(_lib.Z3_apply_result_to_string)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return _to_pystr(r)
+
+def Z3_apply_result_get_num_subgoals(a0, a1, _elems=Elementaries(_lib.Z3_apply_result_get_num_subgoals)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_apply_result_get_subgoal(a0, a1, a2, _elems=Elementaries(_lib.Z3_apply_result_get_subgoal)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_apply_result_convert_model(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_apply_result_convert_model)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_solver(a0, _elems=Elementaries(_lib.Z3_mk_solver)):
+ r = _elems.f(a0)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_simple_solver(a0, _elems=Elementaries(_lib.Z3_mk_simple_solver)):
+ r = _elems.f(a0)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_solver_for_logic(a0, a1, _elems=Elementaries(_lib.Z3_mk_solver_for_logic)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_solver_from_tactic(a0, a1, _elems=Elementaries(_lib.Z3_mk_solver_from_tactic)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_solver_translate(a0, a1, a2, _elems=Elementaries(_lib.Z3_solver_translate)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_solver_get_help(a0, a1, _elems=Elementaries(_lib.Z3_solver_get_help)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return _to_pystr(r)
+
+def Z3_solver_get_param_descrs(a0, a1, _elems=Elementaries(_lib.Z3_solver_get_param_descrs)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_solver_set_params(a0, a1, a2, _elems=Elementaries(_lib.Z3_solver_set_params)):
+ _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+
+def Z3_solver_inc_ref(a0, a1, _elems=Elementaries(_lib.Z3_solver_inc_ref)):
+ _elems.f(a0, a1)
+ _elems.Check(a0)
+
+def Z3_solver_dec_ref(a0, a1, _elems=Elementaries(_lib.Z3_solver_dec_ref)):
+ _elems.f(a0, a1)
+ _elems.Check(a0)
+
+def Z3_solver_push(a0, a1, _elems=Elementaries(_lib.Z3_solver_push)):
+ _elems.f(a0, a1)
+ _elems.Check(a0)
+
+def Z3_solver_pop(a0, a1, a2, _elems=Elementaries(_lib.Z3_solver_pop)):
+ _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+
+def Z3_solver_reset(a0, a1, _elems=Elementaries(_lib.Z3_solver_reset)):
+ _elems.f(a0, a1)
+ _elems.Check(a0)
+
+def Z3_solver_get_num_scopes(a0, a1, _elems=Elementaries(_lib.Z3_solver_get_num_scopes)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_solver_assert(a0, a1, a2, _elems=Elementaries(_lib.Z3_solver_assert)):
+ _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+
+def Z3_solver_assert_and_track(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_solver_assert_and_track)):
+ _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+
+def Z3_solver_get_assertions(a0, a1, _elems=Elementaries(_lib.Z3_solver_get_assertions)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_solver_from_file(a0, a1, a2, _elems=Elementaries(_lib.Z3_solver_from_file)):
+ _elems.f(a0, a1, _to_ascii(a2))
+ _elems.Check(a0)
+
+def Z3_solver_from_string(a0, a1, a2, _elems=Elementaries(_lib.Z3_solver_from_string)):
+ _elems.f(a0, a1, _to_ascii(a2))
+ _elems.Check(a0)
+
+def Z3_solver_check(a0, a1, _elems=Elementaries(_lib.Z3_solver_check)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_solver_check_assumptions(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_solver_check_assumptions)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_implied_equalities(a0, a1, a2, a3, a4, _elems=Elementaries(_lib.Z3_get_implied_equalities)):
+ r = _elems.f(a0, a1, a2, a3, a4)
+ _elems.Check(a0)
+ return r
+
+def Z3_solver_get_consequences(a0, a1, a2, a3, a4, _elems=Elementaries(_lib.Z3_solver_get_consequences)):
+ r = _elems.f(a0, a1, a2, a3, a4)
+ _elems.Check(a0)
+ return r
+
+def Z3_solver_get_model(a0, a1, _elems=Elementaries(_lib.Z3_solver_get_model)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_solver_get_proof(a0, a1, _elems=Elementaries(_lib.Z3_solver_get_proof)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_solver_get_unsat_core(a0, a1, _elems=Elementaries(_lib.Z3_solver_get_unsat_core)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_solver_get_reason_unknown(a0, a1, _elems=Elementaries(_lib.Z3_solver_get_reason_unknown)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return _to_pystr(r)
+
+def Z3_solver_get_statistics(a0, a1, _elems=Elementaries(_lib.Z3_solver_get_statistics)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_solver_to_string(a0, a1, _elems=Elementaries(_lib.Z3_solver_to_string)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return _to_pystr(r)
+
+def Z3_stats_to_string(a0, a1, _elems=Elementaries(_lib.Z3_stats_to_string)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return _to_pystr(r)
+
+def Z3_stats_inc_ref(a0, a1, _elems=Elementaries(_lib.Z3_stats_inc_ref)):
+ _elems.f(a0, a1)
+ _elems.Check(a0)
+
+def Z3_stats_dec_ref(a0, a1, _elems=Elementaries(_lib.Z3_stats_dec_ref)):
+ _elems.f(a0, a1)
+ _elems.Check(a0)
+
+def Z3_stats_size(a0, a1, _elems=Elementaries(_lib.Z3_stats_size)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_stats_get_key(a0, a1, a2, _elems=Elementaries(_lib.Z3_stats_get_key)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return _to_pystr(r)
+
+def Z3_stats_is_uint(a0, a1, a2, _elems=Elementaries(_lib.Z3_stats_is_uint)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_stats_is_double(a0, a1, a2, _elems=Elementaries(_lib.Z3_stats_is_double)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_stats_get_uint_value(a0, a1, a2, _elems=Elementaries(_lib.Z3_stats_get_uint_value)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_stats_get_double_value(a0, a1, a2, _elems=Elementaries(_lib.Z3_stats_get_double_value)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_get_estimated_alloc_size(_elems=Elementaries(_lib.Z3_get_estimated_alloc_size)):
+ r = _elems.f()
+ return r
+
+def Z3_mk_ast_vector(a0, _elems=Elementaries(_lib.Z3_mk_ast_vector)):
+ r = _elems.f(a0)
+ _elems.Check(a0)
+ return r
+
+def Z3_ast_vector_inc_ref(a0, a1, _elems=Elementaries(_lib.Z3_ast_vector_inc_ref)):
+ _elems.f(a0, a1)
+ _elems.Check(a0)
+
+def Z3_ast_vector_dec_ref(a0, a1, _elems=Elementaries(_lib.Z3_ast_vector_dec_ref)):
+ _elems.f(a0, a1)
+ _elems.Check(a0)
+
+def Z3_ast_vector_size(a0, a1, _elems=Elementaries(_lib.Z3_ast_vector_size)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_ast_vector_get(a0, a1, a2, _elems=Elementaries(_lib.Z3_ast_vector_get)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_ast_vector_set(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_ast_vector_set)):
+ _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+
+def Z3_ast_vector_resize(a0, a1, a2, _elems=Elementaries(_lib.Z3_ast_vector_resize)):
+ _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+
+def Z3_ast_vector_push(a0, a1, a2, _elems=Elementaries(_lib.Z3_ast_vector_push)):
+ _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+
+def Z3_ast_vector_translate(a0, a1, a2, _elems=Elementaries(_lib.Z3_ast_vector_translate)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_ast_vector_to_string(a0, a1, _elems=Elementaries(_lib.Z3_ast_vector_to_string)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return _to_pystr(r)
+
+def Z3_mk_ast_map(a0, _elems=Elementaries(_lib.Z3_mk_ast_map)):
+ r = _elems.f(a0)
+ _elems.Check(a0)
+ return r
+
+def Z3_ast_map_inc_ref(a0, a1, _elems=Elementaries(_lib.Z3_ast_map_inc_ref)):
+ _elems.f(a0, a1)
+ _elems.Check(a0)
+
+def Z3_ast_map_dec_ref(a0, a1, _elems=Elementaries(_lib.Z3_ast_map_dec_ref)):
+ _elems.f(a0, a1)
+ _elems.Check(a0)
+
+def Z3_ast_map_contains(a0, a1, a2, _elems=Elementaries(_lib.Z3_ast_map_contains)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_ast_map_find(a0, a1, a2, _elems=Elementaries(_lib.Z3_ast_map_find)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_ast_map_insert(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_ast_map_insert)):
+ _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+
+def Z3_ast_map_erase(a0, a1, a2, _elems=Elementaries(_lib.Z3_ast_map_erase)):
+ _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+
+def Z3_ast_map_reset(a0, a1, _elems=Elementaries(_lib.Z3_ast_map_reset)):
+ _elems.f(a0, a1)
+ _elems.Check(a0)
+
+def Z3_ast_map_size(a0, a1, _elems=Elementaries(_lib.Z3_ast_map_size)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_ast_map_keys(a0, a1, _elems=Elementaries(_lib.Z3_ast_map_keys)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_ast_map_to_string(a0, a1, _elems=Elementaries(_lib.Z3_ast_map_to_string)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return _to_pystr(r)
+
+def Z3_algebraic_is_value(a0, a1, _elems=Elementaries(_lib.Z3_algebraic_is_value)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_algebraic_is_pos(a0, a1, _elems=Elementaries(_lib.Z3_algebraic_is_pos)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_algebraic_is_neg(a0, a1, _elems=Elementaries(_lib.Z3_algebraic_is_neg)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_algebraic_is_zero(a0, a1, _elems=Elementaries(_lib.Z3_algebraic_is_zero)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_algebraic_sign(a0, a1, _elems=Elementaries(_lib.Z3_algebraic_sign)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_algebraic_add(a0, a1, a2, _elems=Elementaries(_lib.Z3_algebraic_add)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_algebraic_sub(a0, a1, a2, _elems=Elementaries(_lib.Z3_algebraic_sub)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_algebraic_mul(a0, a1, a2, _elems=Elementaries(_lib.Z3_algebraic_mul)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_algebraic_div(a0, a1, a2, _elems=Elementaries(_lib.Z3_algebraic_div)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_algebraic_root(a0, a1, a2, _elems=Elementaries(_lib.Z3_algebraic_root)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_algebraic_power(a0, a1, a2, _elems=Elementaries(_lib.Z3_algebraic_power)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_algebraic_lt(a0, a1, a2, _elems=Elementaries(_lib.Z3_algebraic_lt)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_algebraic_gt(a0, a1, a2, _elems=Elementaries(_lib.Z3_algebraic_gt)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_algebraic_le(a0, a1, a2, _elems=Elementaries(_lib.Z3_algebraic_le)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_algebraic_ge(a0, a1, a2, _elems=Elementaries(_lib.Z3_algebraic_ge)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_algebraic_eq(a0, a1, a2, _elems=Elementaries(_lib.Z3_algebraic_eq)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_algebraic_neq(a0, a1, a2, _elems=Elementaries(_lib.Z3_algebraic_neq)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_algebraic_roots(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_algebraic_roots)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_algebraic_eval(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_algebraic_eval)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_polynomial_subresultants(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_polynomial_subresultants)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_rcf_del(a0, a1, _elems=Elementaries(_lib.Z3_rcf_del)):
+ _elems.f(a0, a1)
+ _elems.Check(a0)
+
+def Z3_rcf_mk_rational(a0, a1, _elems=Elementaries(_lib.Z3_rcf_mk_rational)):
+ r = _elems.f(a0, _to_ascii(a1))
+ _elems.Check(a0)
+ return r
+
+def Z3_rcf_mk_small_int(a0, a1, _elems=Elementaries(_lib.Z3_rcf_mk_small_int)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_rcf_mk_pi(a0, _elems=Elementaries(_lib.Z3_rcf_mk_pi)):
+ r = _elems.f(a0)
+ _elems.Check(a0)
+ return r
+
+def Z3_rcf_mk_e(a0, _elems=Elementaries(_lib.Z3_rcf_mk_e)):
+ r = _elems.f(a0)
+ _elems.Check(a0)
+ return r
+
+def Z3_rcf_mk_infinitesimal(a0, _elems=Elementaries(_lib.Z3_rcf_mk_infinitesimal)):
+ r = _elems.f(a0)
+ _elems.Check(a0)
+ return r
+
+def Z3_rcf_mk_roots(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_rcf_mk_roots)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_rcf_add(a0, a1, a2, _elems=Elementaries(_lib.Z3_rcf_add)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_rcf_sub(a0, a1, a2, _elems=Elementaries(_lib.Z3_rcf_sub)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_rcf_mul(a0, a1, a2, _elems=Elementaries(_lib.Z3_rcf_mul)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_rcf_div(a0, a1, a2, _elems=Elementaries(_lib.Z3_rcf_div)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_rcf_neg(a0, a1, _elems=Elementaries(_lib.Z3_rcf_neg)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_rcf_inv(a0, a1, _elems=Elementaries(_lib.Z3_rcf_inv)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_rcf_power(a0, a1, a2, _elems=Elementaries(_lib.Z3_rcf_power)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_rcf_lt(a0, a1, a2, _elems=Elementaries(_lib.Z3_rcf_lt)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_rcf_gt(a0, a1, a2, _elems=Elementaries(_lib.Z3_rcf_gt)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_rcf_le(a0, a1, a2, _elems=Elementaries(_lib.Z3_rcf_le)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_rcf_ge(a0, a1, a2, _elems=Elementaries(_lib.Z3_rcf_ge)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_rcf_eq(a0, a1, a2, _elems=Elementaries(_lib.Z3_rcf_eq)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_rcf_neq(a0, a1, a2, _elems=Elementaries(_lib.Z3_rcf_neq)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_rcf_num_to_string(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_rcf_num_to_string)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return _to_pystr(r)
+
+def Z3_rcf_num_to_decimal_string(a0, a1, a2, _elems=Elementaries(_lib.Z3_rcf_num_to_decimal_string)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return _to_pystr(r)
+
+def Z3_rcf_get_numerator_denominator(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_rcf_get_numerator_denominator)):
+ _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+
+def Z3_mk_fixedpoint(a0, _elems=Elementaries(_lib.Z3_mk_fixedpoint)):
+ r = _elems.f(a0)
+ _elems.Check(a0)
+ return r
+
+def Z3_fixedpoint_inc_ref(a0, a1, _elems=Elementaries(_lib.Z3_fixedpoint_inc_ref)):
+ _elems.f(a0, a1)
+ _elems.Check(a0)
+
+def Z3_fixedpoint_dec_ref(a0, a1, _elems=Elementaries(_lib.Z3_fixedpoint_dec_ref)):
+ _elems.f(a0, a1)
+ _elems.Check(a0)
+
+def Z3_fixedpoint_add_rule(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_fixedpoint_add_rule)):
+ _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+
+def Z3_fixedpoint_add_fact(a0, a1, a2, a3, a4, _elems=Elementaries(_lib.Z3_fixedpoint_add_fact)):
+ _elems.f(a0, a1, a2, a3, a4)
+ _elems.Check(a0)
+
+def Z3_fixedpoint_assert(a0, a1, a2, _elems=Elementaries(_lib.Z3_fixedpoint_assert)):
+ _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+
+def Z3_fixedpoint_query(a0, a1, a2, _elems=Elementaries(_lib.Z3_fixedpoint_query)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_fixedpoint_query_relations(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_fixedpoint_query_relations)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_fixedpoint_get_answer(a0, a1, _elems=Elementaries(_lib.Z3_fixedpoint_get_answer)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_fixedpoint_get_reason_unknown(a0, a1, _elems=Elementaries(_lib.Z3_fixedpoint_get_reason_unknown)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return _to_pystr(r)
+
+def Z3_fixedpoint_update_rule(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_fixedpoint_update_rule)):
+ _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+
+def Z3_fixedpoint_get_num_levels(a0, a1, a2, _elems=Elementaries(_lib.Z3_fixedpoint_get_num_levels)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_fixedpoint_get_cover_delta(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_fixedpoint_get_cover_delta)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_fixedpoint_add_cover(a0, a1, a2, a3, a4, _elems=Elementaries(_lib.Z3_fixedpoint_add_cover)):
+ _elems.f(a0, a1, a2, a3, a4)
+ _elems.Check(a0)
+
+def Z3_fixedpoint_get_statistics(a0, a1, _elems=Elementaries(_lib.Z3_fixedpoint_get_statistics)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_fixedpoint_register_relation(a0, a1, a2, _elems=Elementaries(_lib.Z3_fixedpoint_register_relation)):
+ _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+
+def Z3_fixedpoint_set_predicate_representation(a0, a1, a2, a3, a4, _elems=Elementaries(_lib.Z3_fixedpoint_set_predicate_representation)):
+ _elems.f(a0, a1, a2, a3, a4)
+ _elems.Check(a0)
+
+def Z3_fixedpoint_get_rules(a0, a1, _elems=Elementaries(_lib.Z3_fixedpoint_get_rules)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_fixedpoint_get_assertions(a0, a1, _elems=Elementaries(_lib.Z3_fixedpoint_get_assertions)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_fixedpoint_set_params(a0, a1, a2, _elems=Elementaries(_lib.Z3_fixedpoint_set_params)):
+ _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+
+def Z3_fixedpoint_get_help(a0, a1, _elems=Elementaries(_lib.Z3_fixedpoint_get_help)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return _to_pystr(r)
+
+def Z3_fixedpoint_get_param_descrs(a0, a1, _elems=Elementaries(_lib.Z3_fixedpoint_get_param_descrs)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_fixedpoint_to_string(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_fixedpoint_to_string)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return _to_pystr(r)
+
+def Z3_fixedpoint_from_string(a0, a1, a2, _elems=Elementaries(_lib.Z3_fixedpoint_from_string)):
+ r = _elems.f(a0, a1, _to_ascii(a2))
+ _elems.Check(a0)
+ return r
+
+def Z3_fixedpoint_from_file(a0, a1, a2, _elems=Elementaries(_lib.Z3_fixedpoint_from_file)):
+ r = _elems.f(a0, a1, _to_ascii(a2))
+ _elems.Check(a0)
+ return r
+
+def Z3_fixedpoint_push(a0, a1, _elems=Elementaries(_lib.Z3_fixedpoint_push)):
+ _elems.f(a0, a1)
+ _elems.Check(a0)
+
+def Z3_fixedpoint_pop(a0, a1, _elems=Elementaries(_lib.Z3_fixedpoint_pop)):
+ _elems.f(a0, a1)
+ _elems.Check(a0)
+
+def Z3_mk_optimize(a0, _elems=Elementaries(_lib.Z3_mk_optimize)):
+ r = _elems.f(a0)
+ _elems.Check(a0)
+ return r
+
+def Z3_optimize_inc_ref(a0, a1, _elems=Elementaries(_lib.Z3_optimize_inc_ref)):
+ _elems.f(a0, a1)
+ _elems.Check(a0)
+
+def Z3_optimize_dec_ref(a0, a1, _elems=Elementaries(_lib.Z3_optimize_dec_ref)):
+ _elems.f(a0, a1)
+ _elems.Check(a0)
+
+def Z3_optimize_assert(a0, a1, a2, _elems=Elementaries(_lib.Z3_optimize_assert)):
+ _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+
+def Z3_optimize_assert_soft(a0, a1, a2, a3, a4, _elems=Elementaries(_lib.Z3_optimize_assert_soft)):
+ r = _elems.f(a0, a1, a2, _to_ascii(a3), a4)
+ _elems.Check(a0)
+ return r
+
+def Z3_optimize_maximize(a0, a1, a2, _elems=Elementaries(_lib.Z3_optimize_maximize)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_optimize_minimize(a0, a1, a2, _elems=Elementaries(_lib.Z3_optimize_minimize)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_optimize_push(a0, a1, _elems=Elementaries(_lib.Z3_optimize_push)):
+ _elems.f(a0, a1)
+ _elems.Check(a0)
+
+def Z3_optimize_pop(a0, a1, _elems=Elementaries(_lib.Z3_optimize_pop)):
+ _elems.f(a0, a1)
+ _elems.Check(a0)
+
+def Z3_optimize_check(a0, a1, _elems=Elementaries(_lib.Z3_optimize_check)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_optimize_get_reason_unknown(a0, a1, _elems=Elementaries(_lib.Z3_optimize_get_reason_unknown)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return _to_pystr(r)
+
+def Z3_optimize_get_model(a0, a1, _elems=Elementaries(_lib.Z3_optimize_get_model)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_optimize_set_params(a0, a1, a2, _elems=Elementaries(_lib.Z3_optimize_set_params)):
+ _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+
+def Z3_optimize_get_param_descrs(a0, a1, _elems=Elementaries(_lib.Z3_optimize_get_param_descrs)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_optimize_get_lower(a0, a1, a2, _elems=Elementaries(_lib.Z3_optimize_get_lower)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_optimize_get_upper(a0, a1, a2, _elems=Elementaries(_lib.Z3_optimize_get_upper)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_optimize_get_lower_as_vector(a0, a1, a2, _elems=Elementaries(_lib.Z3_optimize_get_lower_as_vector)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_optimize_get_upper_as_vector(a0, a1, a2, _elems=Elementaries(_lib.Z3_optimize_get_upper_as_vector)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_optimize_to_string(a0, a1, _elems=Elementaries(_lib.Z3_optimize_to_string)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return _to_pystr(r)
+
+def Z3_optimize_from_string(a0, a1, a2, _elems=Elementaries(_lib.Z3_optimize_from_string)):
+ _elems.f(a0, a1, _to_ascii(a2))
+ _elems.Check(a0)
+
+def Z3_optimize_from_file(a0, a1, a2, _elems=Elementaries(_lib.Z3_optimize_from_file)):
+ _elems.f(a0, a1, _to_ascii(a2))
+ _elems.Check(a0)
+
+def Z3_optimize_get_help(a0, a1, _elems=Elementaries(_lib.Z3_optimize_get_help)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return _to_pystr(r)
+
+def Z3_optimize_get_statistics(a0, a1, _elems=Elementaries(_lib.Z3_optimize_get_statistics)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_optimize_get_assertions(a0, a1, _elems=Elementaries(_lib.Z3_optimize_get_assertions)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_optimize_get_objectives(a0, a1, _elems=Elementaries(_lib.Z3_optimize_get_objectives)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_interpolant(a0, a1, _elems=Elementaries(_lib.Z3_mk_interpolant)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_interpolation_context(a0, _elems=Elementaries(_lib.Z3_mk_interpolation_context)):
+ r = _elems.f(a0)
+ return r
+
+def Z3_get_interpolant(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_get_interpolant)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_compute_interpolant(a0, a1, a2, a3, a4, _elems=Elementaries(_lib.Z3_compute_interpolant)):
+ r = _elems.f(a0, a1, a2, a3, a4)
+ _elems.Check(a0)
+ return r
+
+def Z3_interpolation_profile(a0, _elems=Elementaries(_lib.Z3_interpolation_profile)):
+ r = _elems.f(a0)
+ _elems.Check(a0)
+ return _to_pystr(r)
+
+def Z3_read_interpolation_problem(a0, a1, a2, a3, a4, a5, a6, a7, _elems=Elementaries(_lib.Z3_read_interpolation_problem)):
+ r = _elems.f(a0, a1, a2, a3, _to_ascii(a4), _to_ascii(a5), a6, a7)
+ _elems.Check(a0)
+ return r
+
+def Z3_check_interpolant(a0, a1, a2, a3, a4, a5, a6, a7, _elems=Elementaries(_lib.Z3_check_interpolant)):
+ r = _elems.f(a0, a1, a2, a3, a4, _to_ascii(a5), a6, a7)
+ _elems.Check(a0)
+ return r
+
+def Z3_write_interpolation_problem(a0, a1, a2, a3, a4, a5, a6, _elems=Elementaries(_lib.Z3_write_interpolation_problem)):
+ _elems.f(a0, a1, a2, a3, _to_ascii(a4), a5, a6)
+ _elems.Check(a0)
+
+def Z3_mk_fpa_rounding_mode_sort(a0, _elems=Elementaries(_lib.Z3_mk_fpa_rounding_mode_sort)):
+ r = _elems.f(a0)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_round_nearest_ties_to_even(a0, _elems=Elementaries(_lib.Z3_mk_fpa_round_nearest_ties_to_even)):
+ r = _elems.f(a0)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_rne(a0, _elems=Elementaries(_lib.Z3_mk_fpa_rne)):
+ r = _elems.f(a0)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_round_nearest_ties_to_away(a0, _elems=Elementaries(_lib.Z3_mk_fpa_round_nearest_ties_to_away)):
+ r = _elems.f(a0)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_rna(a0, _elems=Elementaries(_lib.Z3_mk_fpa_rna)):
+ r = _elems.f(a0)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_round_toward_positive(a0, _elems=Elementaries(_lib.Z3_mk_fpa_round_toward_positive)):
+ r = _elems.f(a0)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_rtp(a0, _elems=Elementaries(_lib.Z3_mk_fpa_rtp)):
+ r = _elems.f(a0)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_round_toward_negative(a0, _elems=Elementaries(_lib.Z3_mk_fpa_round_toward_negative)):
+ r = _elems.f(a0)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_rtn(a0, _elems=Elementaries(_lib.Z3_mk_fpa_rtn)):
+ r = _elems.f(a0)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_round_toward_zero(a0, _elems=Elementaries(_lib.Z3_mk_fpa_round_toward_zero)):
+ r = _elems.f(a0)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_rtz(a0, _elems=Elementaries(_lib.Z3_mk_fpa_rtz)):
+ r = _elems.f(a0)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_sort(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_fpa_sort)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_sort_half(a0, _elems=Elementaries(_lib.Z3_mk_fpa_sort_half)):
+ r = _elems.f(a0)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_sort_16(a0, _elems=Elementaries(_lib.Z3_mk_fpa_sort_16)):
+ r = _elems.f(a0)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_sort_single(a0, _elems=Elementaries(_lib.Z3_mk_fpa_sort_single)):
+ r = _elems.f(a0)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_sort_32(a0, _elems=Elementaries(_lib.Z3_mk_fpa_sort_32)):
+ r = _elems.f(a0)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_sort_double(a0, _elems=Elementaries(_lib.Z3_mk_fpa_sort_double)):
+ r = _elems.f(a0)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_sort_64(a0, _elems=Elementaries(_lib.Z3_mk_fpa_sort_64)):
+ r = _elems.f(a0)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_sort_quadruple(a0, _elems=Elementaries(_lib.Z3_mk_fpa_sort_quadruple)):
+ r = _elems.f(a0)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_sort_128(a0, _elems=Elementaries(_lib.Z3_mk_fpa_sort_128)):
+ r = _elems.f(a0)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_nan(a0, a1, _elems=Elementaries(_lib.Z3_mk_fpa_nan)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_inf(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_fpa_inf)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_zero(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_fpa_zero)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_fp(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_mk_fpa_fp)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_numeral_float(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_fpa_numeral_float)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_numeral_double(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_fpa_numeral_double)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_numeral_int(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_fpa_numeral_int)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_numeral_int_uint(a0, a1, a2, a3, a4, _elems=Elementaries(_lib.Z3_mk_fpa_numeral_int_uint)):
+ r = _elems.f(a0, a1, a2, a3, a4)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_numeral_int64_uint64(a0, a1, a2, a3, a4, _elems=Elementaries(_lib.Z3_mk_fpa_numeral_int64_uint64)):
+ r = _elems.f(a0, a1, a2, a3, a4)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_abs(a0, a1, _elems=Elementaries(_lib.Z3_mk_fpa_abs)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_neg(a0, a1, _elems=Elementaries(_lib.Z3_mk_fpa_neg)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_add(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_mk_fpa_add)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_sub(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_mk_fpa_sub)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_mul(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_mk_fpa_mul)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_div(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_mk_fpa_div)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_fma(a0, a1, a2, a3, a4, _elems=Elementaries(_lib.Z3_mk_fpa_fma)):
+ r = _elems.f(a0, a1, a2, a3, a4)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_sqrt(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_fpa_sqrt)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_rem(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_fpa_rem)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_round_to_integral(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_fpa_round_to_integral)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_min(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_fpa_min)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_max(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_fpa_max)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_leq(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_fpa_leq)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_lt(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_fpa_lt)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_geq(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_fpa_geq)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_gt(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_fpa_gt)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_eq(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_fpa_eq)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_is_normal(a0, a1, _elems=Elementaries(_lib.Z3_mk_fpa_is_normal)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_is_subnormal(a0, a1, _elems=Elementaries(_lib.Z3_mk_fpa_is_subnormal)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_is_zero(a0, a1, _elems=Elementaries(_lib.Z3_mk_fpa_is_zero)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_is_infinite(a0, a1, _elems=Elementaries(_lib.Z3_mk_fpa_is_infinite)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_is_nan(a0, a1, _elems=Elementaries(_lib.Z3_mk_fpa_is_nan)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_is_negative(a0, a1, _elems=Elementaries(_lib.Z3_mk_fpa_is_negative)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_is_positive(a0, a1, _elems=Elementaries(_lib.Z3_mk_fpa_is_positive)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_to_fp_bv(a0, a1, a2, _elems=Elementaries(_lib.Z3_mk_fpa_to_fp_bv)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_to_fp_float(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_mk_fpa_to_fp_float)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_to_fp_real(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_mk_fpa_to_fp_real)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_to_fp_signed(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_mk_fpa_to_fp_signed)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_to_fp_unsigned(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_mk_fpa_to_fp_unsigned)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_to_ubv(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_mk_fpa_to_ubv)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_to_sbv(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_mk_fpa_to_sbv)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_to_real(a0, a1, _elems=Elementaries(_lib.Z3_mk_fpa_to_real)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_fpa_get_ebits(a0, a1, _elems=Elementaries(_lib.Z3_fpa_get_ebits)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_fpa_get_sbits(a0, a1, _elems=Elementaries(_lib.Z3_fpa_get_sbits)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_fpa_is_numeral_nan(a0, a1, _elems=Elementaries(_lib.Z3_fpa_is_numeral_nan)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_fpa_is_numeral_inf(a0, a1, _elems=Elementaries(_lib.Z3_fpa_is_numeral_inf)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_fpa_is_numeral_zero(a0, a1, _elems=Elementaries(_lib.Z3_fpa_is_numeral_zero)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_fpa_is_numeral_normal(a0, a1, _elems=Elementaries(_lib.Z3_fpa_is_numeral_normal)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_fpa_is_numeral_subnormal(a0, a1, _elems=Elementaries(_lib.Z3_fpa_is_numeral_subnormal)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_fpa_is_numeral_positive(a0, a1, _elems=Elementaries(_lib.Z3_fpa_is_numeral_positive)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_fpa_is_numeral_negative(a0, a1, _elems=Elementaries(_lib.Z3_fpa_is_numeral_negative)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_fpa_get_numeral_sign_bv(a0, a1, _elems=Elementaries(_lib.Z3_fpa_get_numeral_sign_bv)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_fpa_get_numeral_significand_bv(a0, a1, _elems=Elementaries(_lib.Z3_fpa_get_numeral_significand_bv)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_fpa_get_numeral_sign(a0, a1, a2, _elems=Elementaries(_lib.Z3_fpa_get_numeral_sign)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_fpa_get_numeral_significand_string(a0, a1, _elems=Elementaries(_lib.Z3_fpa_get_numeral_significand_string)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return _to_pystr(r)
+
+def Z3_fpa_get_numeral_significand_uint64(a0, a1, a2, _elems=Elementaries(_lib.Z3_fpa_get_numeral_significand_uint64)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_fpa_get_numeral_exponent_string(a0, a1, a2, _elems=Elementaries(_lib.Z3_fpa_get_numeral_exponent_string)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return _to_pystr(r)
+
+def Z3_fpa_get_numeral_exponent_int64(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_fpa_get_numeral_exponent_int64)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_fpa_get_numeral_exponent_bv(a0, a1, a2, _elems=Elementaries(_lib.Z3_fpa_get_numeral_exponent_bv)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_to_ieee_bv(a0, a1, _elems=Elementaries(_lib.Z3_mk_fpa_to_ieee_bv)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_mk_fpa_to_fp_int_real(a0, a1, a2, a3, a4, _elems=Elementaries(_lib.Z3_mk_fpa_to_fp_int_real)):
+ r = _elems.f(a0, a1, a2, a3, a4)
+ _elems.Check(a0)
+ return r
+
+def Z3_fixedpoint_query_from_lvl(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_fixedpoint_query_from_lvl)):
+ r = _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+ return r
+
+def Z3_fixedpoint_get_ground_sat_answer(a0, a1, _elems=Elementaries(_lib.Z3_fixedpoint_get_ground_sat_answer)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_fixedpoint_get_rules_along_trace(a0, a1, _elems=Elementaries(_lib.Z3_fixedpoint_get_rules_along_trace)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_fixedpoint_get_rule_names_along_trace(a0, a1, _elems=Elementaries(_lib.Z3_fixedpoint_get_rule_names_along_trace)):
+ r = _elems.f(a0, a1)
+ _elems.Check(a0)
+ return r
+
+def Z3_fixedpoint_add_invariant(a0, a1, a2, a3, _elems=Elementaries(_lib.Z3_fixedpoint_add_invariant)):
+ _elems.f(a0, a1, a2, a3)
+ _elems.Check(a0)
+
+def Z3_fixedpoint_get_reachable(a0, a1, a2, _elems=Elementaries(_lib.Z3_fixedpoint_get_reachable)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_qe_model_project(a0, a1, a2, a3, a4, _elems=Elementaries(_lib.Z3_qe_model_project)):
+ r = _elems.f(a0, a1, a2, a3, a4)
+ _elems.Check(a0)
+ return r
+
+def Z3_qe_model_project_skolem(a0, a1, a2, a3, a4, a5, _elems=Elementaries(_lib.Z3_qe_model_project_skolem)):
+ r = _elems.f(a0, a1, a2, a3, a4, a5)
+ _elems.Check(a0)
+ return r
+
+def Z3_model_extrapolate(a0, a1, a2, _elems=Elementaries(_lib.Z3_model_extrapolate)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+def Z3_qe_lite(a0, a1, a2, _elems=Elementaries(_lib.Z3_qe_lite)):
+ r = _elems.f(a0, a1, a2)
+ _elems.Check(a0)
+ return r
+
+
+# Clean up
+del _lib
+del _default_dirs
+del _all_dirs
+del _ext
diff --git a/rba.tool.core/lib32/z3/python/z3/z3core.pyc b/rba.tool.core/lib32/z3/python/z3/z3core.pyc
new file mode 100644
index 0000000..9f5b216
--- /dev/null
+++ b/rba.tool.core/lib32/z3/python/z3/z3core.pyc
Binary files differ
diff --git a/rba.tool.core/lib32/z3/python/z3/z3num.py b/rba.tool.core/lib32/z3/python/z3/z3num.py
new file mode 100644
index 0000000..b1af58d
--- /dev/null
+++ b/rba.tool.core/lib32/z3/python/z3/z3num.py
@@ -0,0 +1,577 @@
+############################################
+# Copyright (c) 2012 Microsoft Corporation
+#
+# Z3 Python interface for Z3 numerals
+#
+# Author: Leonardo de Moura (leonardo)
+############################################
+from .z3 import *
+from .z3core import *
+from .z3printer import *
+from fractions import Fraction
+
+from .z3 import _get_ctx
+
+def _to_numeral(num, ctx=None):
+ if isinstance(num, Numeral):
+ return num
+ else:
+ return Numeral(num, ctx)
+
+class Numeral:
+ """
+ A Z3 numeral can be used to perform computations over arbitrary
+ precision integers, rationals and real algebraic numbers.
+ It also automatically converts python numeric values.
+
+ >>> Numeral(2)
+ 2
+ >>> Numeral("3/2") + 1
+ 5/2
+ >>> Numeral(Sqrt(2))
+ 1.4142135623?
+ >>> Numeral(Sqrt(2)) + 2
+ 3.4142135623?
+ >>> Numeral(Sqrt(2)) + Numeral(Sqrt(3))
+ 3.1462643699?
+
+ Z3 numerals can be used to perform computations with
+ values in a Z3 model.
+
+ >>> s = Solver()
+ >>> x = Real('x')
+ >>> s.add(x*x == 2)
+ >>> s.add(x > 0)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> m[x]
+ 1.4142135623?
+ >>> m[x] + 1
+ 1.4142135623? + 1
+
+ The previous result is a Z3 expression.
+
+ >>> (m[x] + 1).sexpr()
+ '(+ (root-obj (+ (^ x 2) (- 2)) 2) 1.0)'
+
+ >>> Numeral(m[x]) + 1
+ 2.4142135623?
+ >>> Numeral(m[x]).is_pos()
+ True
+ >>> Numeral(m[x])**2
+ 2
+
+ We can also isolate the roots of polynomials.
+
+ >>> x0, x1, x2 = RealVarVector(3)
+ >>> r0 = isolate_roots(x0**5 - x0 - 1)
+ >>> r0
+ [1.1673039782?]
+
+ In the following example, we are isolating the roots
+ of a univariate polynomial (on x1) obtained after substituting
+ x0 -> r0[0]
+
+ >>> r1 = isolate_roots(x1**2 - x0 + 1, [ r0[0] ])
+ >>> r1
+ [-0.4090280898?, 0.4090280898?]
+
+ Similarly, in the next example we isolate the roots of
+ a univariate polynomial (on x2) obtained after substituting
+ x0 -> r0[0] and x1 -> r1[0]
+
+ >>> isolate_roots(x1*x2 + x0, [ r0[0], r1[0] ])
+ [2.8538479564?]
+
+ """
+ def __init__(self, num, ctx=None):
+ if isinstance(num, Ast):
+ self.ast = num
+ self.ctx = _get_ctx(ctx)
+ elif isinstance(num, RatNumRef) or isinstance(num, AlgebraicNumRef):
+ self.ast = num.ast
+ self.ctx = num.ctx
+ elif isinstance(num, ArithRef):
+ r = simplify(num)
+ self.ast = r.ast
+ self.ctx = r.ctx
+ else:
+ v = RealVal(num, ctx)
+ self.ast = v.ast
+ self.ctx = v.ctx
+ Z3_inc_ref(self.ctx_ref(), self.as_ast())
+ assert Z3_algebraic_is_value(self.ctx_ref(), self.ast)
+
+ def __del__(self):
+ Z3_dec_ref(self.ctx_ref(), self.as_ast())
+
+ def is_integer(self):
+ """ Return True if the numeral is integer.
+
+ >>> Numeral(2).is_integer()
+ True
+ >>> (Numeral(Sqrt(2)) * Numeral(Sqrt(2))).is_integer()
+ True
+ >>> Numeral(Sqrt(2)).is_integer()
+ False
+ >>> Numeral("2/3").is_integer()
+ False
+ """
+ return self.is_rational() and self.denominator() == 1
+
+ def is_rational(self):
+ """ Return True if the numeral is rational.
+
+ >>> Numeral(2).is_rational()
+ True
+ >>> Numeral("2/3").is_rational()
+ True
+ >>> Numeral(Sqrt(2)).is_rational()
+ False
+
+ """
+ return Z3_get_ast_kind(self.ctx_ref(), self.as_ast()) == Z3_NUMERAL_AST
+
+ def denominator(self):
+ """ Return the denominator if `self` is rational.
+
+ >>> Numeral("2/3").denominator()
+ 3
+ """
+ assert(self.is_rational())
+ return Numeral(Z3_get_denominator(self.ctx_ref(), self.as_ast()), self.ctx)
+
+ def numerator(self):
+ """ Return the numerator if `self` is rational.
+
+ >>> Numeral("2/3").numerator()
+ 2
+ """
+ assert(self.is_rational())
+ return Numeral(Z3_get_numerator(self.ctx_ref(), self.as_ast()), self.ctx)
+
+
+ def is_irrational(self):
+ """ Return True if the numeral is irrational.
+
+ >>> Numeral(2).is_irrational()
+ False
+ >>> Numeral("2/3").is_irrational()
+ False
+ >>> Numeral(Sqrt(2)).is_irrational()
+ True
+ """
+ return not self.is_rational()
+
+ def as_long(self):
+ """ Return a numeral (that is an integer) as a Python long.
+
+ """
+ assert(self.is_integer())
+ if sys.version_info[0] >= 3:
+ return int(Z3_get_numeral_string(self.ctx_ref(), self.as_ast()))
+ else:
+ return long(Z3_get_numeral_string(self.ctx_ref(), self.as_ast()))
+
+ def as_fraction(self):
+ """ Return a numeral (that is a rational) as a Python Fraction.
+ >>> Numeral("1/5").as_fraction()
+ Fraction(1, 5)
+ """
+ assert(self.is_rational())
+ return Fraction(self.numerator().as_long(), self.denominator().as_long())
+
+ def approx(self, precision=10):
+ """Return a numeral that approximates the numeral `self`.
+ The result `r` is such that |r - self| <= 1/10^precision
+
+ If `self` is rational, then the result is `self`.
+
+ >>> x = Numeral(2).root(2)
+ >>> x.approx(20)
+ 6838717160008073720548335/4835703278458516698824704
+ >>> x.approx(5)
+ 2965821/2097152
+ >>> Numeral(2).approx(10)
+ 2
+ """
+ return self.upper(precision)
+
+ def upper(self, precision=10):
+ """Return a upper bound that approximates the numeral `self`.
+ The result `r` is such that r - self <= 1/10^precision
+
+ If `self` is rational, then the result is `self`.
+
+ >>> x = Numeral(2).root(2)
+ >>> x.upper(20)
+ 6838717160008073720548335/4835703278458516698824704
+ >>> x.upper(5)
+ 2965821/2097152
+ >>> Numeral(2).upper(10)
+ 2
+ """
+ if self.is_rational():
+ return self
+ else:
+ return Numeral(Z3_get_algebraic_number_upper(self.ctx_ref(), self.as_ast(), precision), self.ctx)
+
+ def lower(self, precision=10):
+ """Return a lower bound that approximates the numeral `self`.
+ The result `r` is such that self - r <= 1/10^precision
+
+ If `self` is rational, then the result is `self`.
+
+ >>> x = Numeral(2).root(2)
+ >>> x.lower(20)
+ 1709679290002018430137083/1208925819614629174706176
+ >>> Numeral("2/3").lower(10)
+ 2/3
+ """
+ if self.is_rational():
+ return self
+ else:
+ return Numeral(Z3_get_algebraic_number_lower(self.ctx_ref(), self.as_ast(), precision), self.ctx)
+
+ def sign(self):
+ """ Return the sign of the numeral.
+
+ >>> Numeral(2).sign()
+ 1
+ >>> Numeral(-3).sign()
+ -1
+ >>> Numeral(0).sign()
+ 0
+ """
+ return Z3_algebraic_sign(self.ctx_ref(), self.ast)
+
+ def is_pos(self):
+ """ Return True if the numeral is positive.
+
+ >>> Numeral(2).is_pos()
+ True
+ >>> Numeral(-3).is_pos()
+ False
+ >>> Numeral(0).is_pos()
+ False
+ """
+ return Z3_algebraic_is_pos(self.ctx_ref(), self.ast)
+
+ def is_neg(self):
+ """ Return True if the numeral is negative.
+
+ >>> Numeral(2).is_neg()
+ False
+ >>> Numeral(-3).is_neg()
+ True
+ >>> Numeral(0).is_neg()
+ False
+ """
+ return Z3_algebraic_is_neg(self.ctx_ref(), self.ast)
+
+ def is_zero(self):
+ """ Return True if the numeral is zero.
+
+ >>> Numeral(2).is_zero()
+ False
+ >>> Numeral(-3).is_zero()
+ False
+ >>> Numeral(0).is_zero()
+ True
+ >>> sqrt2 = Numeral(2).root(2)
+ >>> sqrt2.is_zero()
+ False
+ >>> (sqrt2 - sqrt2).is_zero()
+ True
+ """
+ return Z3_algebraic_is_zero(self.ctx_ref(), self.ast)
+
+ def __add__(self, other):
+ """ Return the numeral `self + other`.
+
+ >>> Numeral(2) + 3
+ 5
+ >>> Numeral(2) + Numeral(4)
+ 6
+ >>> Numeral("2/3") + 1
+ 5/3
+ """
+ return Numeral(Z3_algebraic_add(self.ctx_ref(), self.ast, _to_numeral(other, self.ctx).ast), self.ctx)
+
+ def __radd__(self, other):
+ """ Return the numeral `other + self`.
+
+ >>> 3 + Numeral(2)
+ 5
+ """
+ return Numeral(Z3_algebraic_add(self.ctx_ref(), self.ast, _to_numeral(other, self.ctx).ast), self.ctx)
+
+ def __sub__(self, other):
+ """ Return the numeral `self - other`.
+
+ >>> Numeral(2) - 3
+ -1
+ """
+ return Numeral(Z3_algebraic_sub(self.ctx_ref(), self.ast, _to_numeral(other, self.ctx).ast), self.ctx)
+
+ def __rsub__(self, other):
+ """ Return the numeral `other - self`.
+
+ >>> 3 - Numeral(2)
+ 1
+ """
+ return Numeral(Z3_algebraic_sub(self.ctx_ref(), _to_numeral(other, self.ctx).ast, self.ast), self.ctx)
+
+ def __mul__(self, other):
+ """ Return the numeral `self * other`.
+ >>> Numeral(2) * 3
+ 6
+ """
+ return Numeral(Z3_algebraic_mul(self.ctx_ref(), self.ast, _to_numeral(other, self.ctx).ast), self.ctx)
+
+ def __rmul__(self, other):
+ """ Return the numeral `other * mul`.
+ >>> 3 * Numeral(2)
+ 6
+ """
+ return Numeral(Z3_algebraic_mul(self.ctx_ref(), self.ast, _to_numeral(other, self.ctx).ast), self.ctx)
+
+ def __div__(self, other):
+ """ Return the numeral `self / other`.
+ >>> Numeral(2) / 3
+ 2/3
+ >>> Numeral(2).root(2) / 3
+ 0.4714045207?
+ >>> Numeral(Sqrt(2)) / Numeral(Sqrt(3))
+ 0.8164965809?
+ """
+ return Numeral(Z3_algebraic_div(self.ctx_ref(), self.ast, _to_numeral(other, self.ctx).ast), self.ctx)
+
+ def __truediv__(self, other):
+ return self.__div__(other)
+
+ def __rdiv__(self, other):
+ """ Return the numeral `other / self`.
+ >>> 3 / Numeral(2)
+ 3/2
+ >>> 3 / Numeral(2).root(2)
+ 2.1213203435?
+ """
+ return Numeral(Z3_algebraic_div(self.ctx_ref(), _to_numeral(other, self.ctx).ast, self.ast), self.ctx)
+
+ def __rtruediv__(self, other):
+ return self.__rdiv__(other)
+
+ def root(self, k):
+ """ Return the numeral `self^(1/k)`.
+
+ >>> sqrt2 = Numeral(2).root(2)
+ >>> sqrt2
+ 1.4142135623?
+ >>> sqrt2 * sqrt2
+ 2
+ >>> sqrt2 * 2 + 1
+ 3.8284271247?
+ >>> (sqrt2 * 2 + 1).sexpr()
+ '(root-obj (+ (^ x 2) (* (- 2) x) (- 7)) 2)'
+ """
+ return Numeral(Z3_algebraic_root(self.ctx_ref(), self.ast, k), self.ctx)
+
+ def power(self, k):
+ """ Return the numeral `self^k`.
+
+ >>> sqrt3 = Numeral(3).root(2)
+ >>> sqrt3
+ 1.7320508075?
+ >>> sqrt3.power(2)
+ 3
+ """
+ return Numeral(Z3_algebraic_power(self.ctx_ref(), self.ast, k), self.ctx)
+
+ def __pow__(self, k):
+ """ Return the numeral `self^k`.
+
+ >>> sqrt3 = Numeral(3).root(2)
+ >>> sqrt3
+ 1.7320508075?
+ >>> sqrt3**2
+ 3
+ """
+ return self.power(k)
+
+ def __lt__(self, other):
+ """ Return True if `self < other`.
+
+ >>> Numeral(Sqrt(2)) < 2
+ True
+ >>> Numeral(Sqrt(3)) < Numeral(Sqrt(2))
+ False
+ >>> Numeral(Sqrt(2)) < Numeral(Sqrt(2))
+ False
+ """
+ return Z3_algebraic_lt(self.ctx_ref(), self.ast, _to_numeral(other, self.ctx).ast)
+
+ def __rlt__(self, other):
+ """ Return True if `other < self`.
+
+ >>> 2 < Numeral(Sqrt(2))
+ False
+ """
+ return self > other
+
+ def __gt__(self, other):
+ """ Return True if `self > other`.
+
+ >>> Numeral(Sqrt(2)) > 2
+ False
+ >>> Numeral(Sqrt(3)) > Numeral(Sqrt(2))
+ True
+ >>> Numeral(Sqrt(2)) > Numeral(Sqrt(2))
+ False
+ """
+ return Z3_algebraic_gt(self.ctx_ref(), self.ast, _to_numeral(other, self.ctx).ast)
+
+ def __rgt__(self, other):
+ """ Return True if `other > self`.
+
+ >>> 2 > Numeral(Sqrt(2))
+ True
+ """
+ return self < other
+
+
+ def __le__(self, other):
+ """ Return True if `self <= other`.
+
+ >>> Numeral(Sqrt(2)) <= 2
+ True
+ >>> Numeral(Sqrt(3)) <= Numeral(Sqrt(2))
+ False
+ >>> Numeral(Sqrt(2)) <= Numeral(Sqrt(2))
+ True
+ """
+ return Z3_algebraic_le(self.ctx_ref(), self.ast, _to_numeral(other, self.ctx).ast)
+
+ def __rle__(self, other):
+ """ Return True if `other <= self`.
+
+ >>> 2 <= Numeral(Sqrt(2))
+ False
+ """
+ return self >= other
+
+ def __ge__(self, other):
+ """ Return True if `self >= other`.
+
+ >>> Numeral(Sqrt(2)) >= 2
+ False
+ >>> Numeral(Sqrt(3)) >= Numeral(Sqrt(2))
+ True
+ >>> Numeral(Sqrt(2)) >= Numeral(Sqrt(2))
+ True
+ """
+ return Z3_algebraic_ge(self.ctx_ref(), self.ast, _to_numeral(other, self.ctx).ast)
+
+ def __rge__(self, other):
+ """ Return True if `other >= self`.
+
+ >>> 2 >= Numeral(Sqrt(2))
+ True
+ """
+ return self <= other
+
+ def __eq__(self, other):
+ """ Return True if `self == other`.
+
+ >>> Numeral(Sqrt(2)) == 2
+ False
+ >>> Numeral(Sqrt(3)) == Numeral(Sqrt(2))
+ False
+ >>> Numeral(Sqrt(2)) == Numeral(Sqrt(2))
+ True
+ """
+ return Z3_algebraic_eq(self.ctx_ref(), self.ast, _to_numeral(other, self.ctx).ast)
+
+ def __ne__(self, other):
+ """ Return True if `self != other`.
+
+ >>> Numeral(Sqrt(2)) != 2
+ True
+ >>> Numeral(Sqrt(3)) != Numeral(Sqrt(2))
+ True
+ >>> Numeral(Sqrt(2)) != Numeral(Sqrt(2))
+ False
+ """
+ return Z3_algebraic_neq(self.ctx_ref(), self.ast, _to_numeral(other, self.ctx).ast)
+
+ def __str__(self):
+ if Z3_is_numeral_ast(self.ctx_ref(), self.ast):
+ return str(RatNumRef(self.ast, self.ctx))
+ else:
+ return str(AlgebraicNumRef(self.ast, self.ctx))
+
+ def __repr__(self):
+ return self.__str__()
+
+ def sexpr(self):
+ return Z3_ast_to_string(self.ctx_ref(), self.as_ast())
+
+ def as_ast(self):
+ return self.ast
+
+ def ctx_ref(self):
+ return self.ctx.ref()
+
+def eval_sign_at(p, vs):
+ """
+ Evaluate the sign of the polynomial `p` at `vs`. `p` is a Z3
+ Expression containing arithmetic operators: +, -, *, ^k where k is
+ an integer; and free variables x that is_var(x) is True. Moreover,
+ all variables must be real.
+
+ The result is 1 if the polynomial is positive at the given point,
+ -1 if negative, and 0 if zero.
+
+ >>> x0, x1, x2 = RealVarVector(3)
+ >>> eval_sign_at(x0**2 + x1*x2 + 1, (Numeral(0), Numeral(1), Numeral(2)))
+ 1
+ >>> eval_sign_at(x0**2 - 2, [ Numeral(Sqrt(2)) ])
+ 0
+ >>> eval_sign_at((x0 + x1)*(x0 + x2), (Numeral(0), Numeral(Sqrt(2)), Numeral(Sqrt(3))))
+ 1
+ """
+ num = len(vs)
+ _vs = (Ast * num)()
+ for i in range(num):
+ _vs[i] = vs[i].ast
+ return Z3_algebraic_eval(p.ctx_ref(), p.as_ast(), num, _vs)
+
+def isolate_roots(p, vs=[]):
+ """
+ Given a multivariate polynomial p(x_0, ..., x_{n-1}, x_n), returns the
+ roots of the univariate polynomial p(vs[0], ..., vs[len(vs)-1], x_n).
+
+ Remarks:
+ * p is a Z3 expression that contains only arithmetic terms and free variables.
+ * forall i in [0, n) vs is a numeral.
+
+ The result is a list of numerals
+
+ >>> x0 = RealVar(0)
+ >>> isolate_roots(x0**5 - x0 - 1)
+ [1.1673039782?]
+ >>> x1 = RealVar(1)
+ >>> isolate_roots(x0**2 - x1**4 - 1, [ Numeral(Sqrt(3)) ])
+ [-1.1892071150?, 1.1892071150?]
+ >>> x2 = RealVar(2)
+ >>> isolate_roots(x2**2 + x0 - x1, [ Numeral(Sqrt(3)), Numeral(Sqrt(2)) ])
+ []
+ """
+ num = len(vs)
+ _vs = (Ast * num)()
+ for i in range(num):
+ _vs[i] = vs[i].ast
+ _roots = AstVector(Z3_algebraic_roots(p.ctx_ref(), p.as_ast(), num, _vs), p.ctx)
+ return [ Numeral(r) for r in _roots ]
+
diff --git a/rba.tool.core/lib32/z3/python/z3/z3num.pyc b/rba.tool.core/lib32/z3/python/z3/z3num.pyc
new file mode 100644
index 0000000..c97ae33
--- /dev/null
+++ b/rba.tool.core/lib32/z3/python/z3/z3num.pyc
Binary files differ
diff --git a/rba.tool.core/lib32/z3/python/z3/z3poly.py b/rba.tool.core/lib32/z3/python/z3/z3poly.py
new file mode 100644
index 0000000..1699442
--- /dev/null
+++ b/rba.tool.core/lib32/z3/python/z3/z3poly.py
@@ -0,0 +1,35 @@
+############################################
+# Copyright (c) 2012 Microsoft Corporation
+#
+# Z3 Python interface for Z3 polynomials
+#
+# Author: Leonardo de Moura (leonardo)
+############################################
+
+from .z3 import *
+
+def subresultants(p, q, x):
+ """
+ Return the non-constant subresultants of 'p' and 'q' with respect to the "variable" 'x'.
+
+ 'p', 'q' and 'x' are Z3 expressions where 'p' and 'q' are arithmetic terms.
+ Note that, any subterm that cannot be viewed as a polynomial is assumed to be a variable.
+ Example: f(a) is a considered to be a variable b in the polynomial
+
+ f(a)*f(a) + 2*f(a) + 1
+
+ >>> x, y = Reals('x y')
+ >>> subresultants(2*x + y, 3*x - 2*y + 2, x)
+ [-7*y + 4]
+ >>> r = subresultants(3*y*x**2 + y**3 + 1, 2*x**3 + y + 3, x)
+ >>> r[0]
+ 4*y**9 + 12*y**6 + 27*y**5 + 162*y**4 + 255*y**3 + 4
+ >>> r[1]
+ -6*y**4 + -6*y
+ """
+ return AstVector(Z3_polynomial_subresultants(p.ctx_ref(), p.as_ast(), q.as_ast(), x.as_ast()), p.ctx)
+
+if __name__ == "__main__":
+ import doctest
+ if doctest.testmod().failed:
+ exit(1)
diff --git a/rba.tool.core/lib32/z3/python/z3/z3poly.pyc b/rba.tool.core/lib32/z3/python/z3/z3poly.pyc
new file mode 100644
index 0000000..8828041
--- /dev/null
+++ b/rba.tool.core/lib32/z3/python/z3/z3poly.pyc
Binary files differ
diff --git a/rba.tool.core/lib32/z3/python/z3/z3printer.py b/rba.tool.core/lib32/z3/python/z3/z3printer.py
new file mode 100644
index 0000000..aef71be
--- /dev/null
+++ b/rba.tool.core/lib32/z3/python/z3/z3printer.py
@@ -0,0 +1,1253 @@
+############################################
+# Copyright (c) 2012 Microsoft Corporation
+#
+# Z3 Python interface
+#
+# Author: Leonardo de Moura (leonardo)
+############################################
+import sys, io, z3
+from .z3consts import *
+from .z3core import *
+from ctypes import *
+
+def _z3_assert(cond, msg):
+ if not cond:
+ raise Z3Exception(msg)
+
+##############################
+#
+# Configuration
+#
+##############################
+
+# Z3 operator names to Z3Py
+_z3_op_to_str = {
+ Z3_OP_TRUE : 'True', Z3_OP_FALSE : 'False', Z3_OP_EQ : '==', Z3_OP_DISTINCT : 'Distinct',
+ Z3_OP_ITE : 'If', Z3_OP_AND : 'And', Z3_OP_OR : 'Or', Z3_OP_IFF : '==', Z3_OP_XOR : 'Xor',
+ Z3_OP_NOT : 'Not', Z3_OP_IMPLIES : 'Implies', Z3_OP_IDIV : '/', Z3_OP_MOD : '%',
+ Z3_OP_TO_REAL : 'ToReal', Z3_OP_TO_INT : 'ToInt', Z3_OP_POWER : '**', Z3_OP_IS_INT : 'IsInt',
+ Z3_OP_BADD : '+', Z3_OP_BSUB : '-', Z3_OP_BMUL : '*', Z3_OP_BOR : '|', Z3_OP_BAND : '&',
+ Z3_OP_BNOT : '~', Z3_OP_BXOR : '^', Z3_OP_BNEG : '-', Z3_OP_BUDIV : 'UDiv', Z3_OP_BSDIV : '/', Z3_OP_BSMOD : '%',
+ Z3_OP_BSREM : 'SRem', Z3_OP_BUREM : 'URem', Z3_OP_EXT_ROTATE_LEFT : 'RotateLeft', Z3_OP_EXT_ROTATE_RIGHT : 'RotateRight',
+ Z3_OP_SLEQ : '<=', Z3_OP_SLT : '<', Z3_OP_SGEQ : '>=', Z3_OP_SGT : '>',
+ Z3_OP_ULEQ : 'ULE', Z3_OP_ULT : 'ULT', Z3_OP_UGEQ : 'UGE', Z3_OP_UGT : 'UGT',
+ Z3_OP_SIGN_EXT : 'SignExt', Z3_OP_ZERO_EXT : 'ZeroExt', Z3_OP_REPEAT : 'RepeatBitVec',
+ Z3_OP_BASHR : '>>', Z3_OP_BSHL : '<<', Z3_OP_BLSHR : 'LShR',
+ Z3_OP_CONCAT : 'Concat', Z3_OP_EXTRACT : 'Extract', Z3_OP_BV2INT : 'BV2Int',
+ Z3_OP_ARRAY_MAP : 'Map', Z3_OP_SELECT : 'Select', Z3_OP_STORE : 'Store',
+ Z3_OP_CONST_ARRAY : 'K', Z3_OP_ARRAY_EXT : 'Ext',
+ Z3_OP_PB_AT_MOST : 'AtMost', Z3_OP_PB_LE : 'PbLe', Z3_OP_PB_GE : 'PbGe'
+ }
+
+# List of infix operators
+_z3_infix = [
+ Z3_OP_EQ, Z3_OP_IFF, Z3_OP_ADD, Z3_OP_SUB, Z3_OP_MUL, Z3_OP_DIV, Z3_OP_IDIV, Z3_OP_MOD, Z3_OP_POWER,
+ Z3_OP_LE, Z3_OP_LT, Z3_OP_GE, Z3_OP_GT, Z3_OP_BADD, Z3_OP_BSUB, Z3_OP_BMUL, Z3_OP_BSDIV, Z3_OP_BSMOD, Z3_OP_BOR, Z3_OP_BAND,
+ Z3_OP_BXOR, Z3_OP_BSDIV, Z3_OP_SLEQ, Z3_OP_SLT, Z3_OP_SGEQ, Z3_OP_SGT, Z3_OP_BASHR, Z3_OP_BSHL
+ ]
+
+_z3_unary = [ Z3_OP_UMINUS, Z3_OP_BNOT, Z3_OP_BNEG ]
+
+# Precedence
+_z3_precedence = {
+ Z3_OP_POWER : 0,
+ Z3_OP_UMINUS : 1, Z3_OP_BNEG : 1, Z3_OP_BNOT : 1,
+ Z3_OP_MUL : 2, Z3_OP_DIV : 2, Z3_OP_IDIV : 2, Z3_OP_MOD : 2, Z3_OP_BMUL : 2, Z3_OP_BSDIV : 2, Z3_OP_BSMOD : 2,
+ Z3_OP_ADD : 3, Z3_OP_SUB : 3, Z3_OP_BADD : 3, Z3_OP_BSUB : 3,
+ Z3_OP_BASHR : 4, Z3_OP_BSHL : 4,
+ Z3_OP_BAND : 5,
+ Z3_OP_BXOR : 6,
+ Z3_OP_BOR : 7,
+ Z3_OP_LE : 8, Z3_OP_LT : 8, Z3_OP_GE : 8, Z3_OP_GT : 8, Z3_OP_EQ : 8, Z3_OP_SLEQ : 8, Z3_OP_SLT : 8, Z3_OP_SGEQ : 8, Z3_OP_SGT : 8,
+ Z3_OP_IFF : 8,
+
+ Z3_OP_FPA_NEG : 1,
+ Z3_OP_FPA_MUL : 2, Z3_OP_FPA_DIV : 2, Z3_OP_FPA_REM : 2, Z3_OP_FPA_FMA : 2,
+ Z3_OP_FPA_ADD: 3, Z3_OP_FPA_SUB : 3,
+ Z3_OP_FPA_LE : 8, Z3_OP_FPA_LT : 8, Z3_OP_FPA_GE : 8, Z3_OP_FPA_GT : 8, Z3_OP_FPA_EQ : 8
+ }
+
+# FPA operators
+_z3_op_to_fpa_normal_str = {
+ Z3_OP_FPA_RM_NEAREST_TIES_TO_EVEN : 'RoundNearestTiesToEven()', Z3_OP_FPA_RM_NEAREST_TIES_TO_AWAY : 'RoundNearestTiesToAway()',
+ Z3_OP_FPA_RM_TOWARD_POSITIVE : 'RoundTowardPositive()', Z3_OP_FPA_RM_TOWARD_NEGATIVE : 'RoundTowardNegative()',
+ Z3_OP_FPA_RM_TOWARD_ZERO : 'RoundTowardZero()',
+ Z3_OP_FPA_PLUS_INF : 'fpPlusInfinity', Z3_OP_FPA_MINUS_INF : 'fpMinusInfinity',
+ Z3_OP_FPA_NAN : 'fpNaN', Z3_OP_FPA_PLUS_ZERO : 'fpPZero', Z3_OP_FPA_MINUS_ZERO : 'fpNZero',
+ Z3_OP_FPA_ADD : 'fpAdd', Z3_OP_FPA_SUB : 'fpSub', Z3_OP_FPA_NEG : 'fpNeg', Z3_OP_FPA_MUL : 'fpMul',
+ Z3_OP_FPA_DIV : 'fpDiv', Z3_OP_FPA_REM : 'fpRem', Z3_OP_FPA_ABS : 'fpAbs',
+ Z3_OP_FPA_MIN : 'fpMin', Z3_OP_FPA_MAX : 'fpMax',
+ Z3_OP_FPA_FMA : 'fpFMA', Z3_OP_FPA_SQRT : 'fpSqrt', Z3_OP_FPA_ROUND_TO_INTEGRAL : 'fpRoundToIntegral',
+
+ Z3_OP_FPA_EQ : 'fpEQ', Z3_OP_FPA_LT : 'fpLT', Z3_OP_FPA_GT : 'fpGT', Z3_OP_FPA_LE : 'fpLEQ',
+ Z3_OP_FPA_GE : 'fpGEQ',
+
+ Z3_OP_FPA_IS_NAN : 'fpIsNaN', Z3_OP_FPA_IS_INF : 'fpIsInf', Z3_OP_FPA_IS_ZERO : 'fpIsZero',
+ Z3_OP_FPA_IS_NORMAL : 'fpIsNormal', Z3_OP_FPA_IS_SUBNORMAL : 'fpIsSubnormal',
+ Z3_OP_FPA_IS_NEGATIVE : 'fpIsNegative', Z3_OP_FPA_IS_POSITIVE : 'fpIsPositive',
+
+ Z3_OP_FPA_FP : 'fpFP', Z3_OP_FPA_TO_FP : 'fpToFP', Z3_OP_FPA_TO_FP_UNSIGNED: 'fpToFPUnsigned',
+ Z3_OP_FPA_TO_UBV : 'fpToUBV', Z3_OP_FPA_TO_SBV : 'fpToSBV', Z3_OP_FPA_TO_REAL: 'fpToReal',
+ Z3_OP_FPA_TO_IEEE_BV : 'fpToIEEEBV'
+ }
+
+_z3_op_to_fpa_pretty_str = {
+ Z3_OP_FPA_RM_NEAREST_TIES_TO_EVEN : 'RNE()', Z3_OP_FPA_RM_NEAREST_TIES_TO_AWAY : 'RNA()',
+ Z3_OP_FPA_RM_TOWARD_POSITIVE : 'RTP()', Z3_OP_FPA_RM_TOWARD_NEGATIVE : 'RTN()',
+ Z3_OP_FPA_RM_TOWARD_ZERO : 'RTZ()',
+ Z3_OP_FPA_PLUS_INF : '+oo', Z3_OP_FPA_MINUS_INF : '-oo',
+ Z3_OP_FPA_NAN : 'NaN', Z3_OP_FPA_PLUS_ZERO : '+0.0', Z3_OP_FPA_MINUS_ZERO : '-0.0',
+
+ Z3_OP_FPA_ADD : '+', Z3_OP_FPA_SUB : '-', Z3_OP_FPA_MUL : '*', Z3_OP_FPA_DIV : '/',
+ Z3_OP_FPA_REM : '%', Z3_OP_FPA_NEG : '-',
+
+ Z3_OP_FPA_EQ : 'fpEQ', Z3_OP_FPA_LT : '<', Z3_OP_FPA_GT : '>', Z3_OP_FPA_LE : '<=', Z3_OP_FPA_GE : '>='
+}
+
+_z3_fpa_infix = [
+ Z3_OP_FPA_ADD, Z3_OP_FPA_SUB, Z3_OP_FPA_MUL, Z3_OP_FPA_DIV, Z3_OP_FPA_REM,
+ Z3_OP_FPA_LT, Z3_OP_FPA_GT, Z3_OP_FPA_LE, Z3_OP_FPA_GE
+]
+
+def _is_assoc(k):
+ return k == Z3_OP_BOR or k == Z3_OP_BXOR or k == Z3_OP_BAND or k == Z3_OP_ADD or k == Z3_OP_BADD or k == Z3_OP_MUL or k == Z3_OP_BMUL
+
+def _is_left_assoc(k):
+ return _is_assoc(k) or k == Z3_OP_SUB or k == Z3_OP_BSUB
+
+def _is_html_assoc(k):
+ return k == Z3_OP_AND or k == Z3_OP_OR or k == Z3_OP_IFF or _is_assoc(k)
+
+def _is_html_left_assoc(k):
+ return _is_html_assoc(k) or k == Z3_OP_SUB or k == Z3_OP_BSUB
+
+def _is_add(k):
+ return k == Z3_OP_ADD or k == Z3_OP_BADD
+
+def _is_sub(k):
+ return k == Z3_OP_SUB or k == Z3_OP_BSUB
+
+import sys
+if sys.version < '3':
+ import codecs
+ def u(x):
+ return codecs.unicode_escape_decode(x)[0]
+else:
+ def u(x):
+ return x
+
+_z3_infix_compact = [ Z3_OP_MUL, Z3_OP_BMUL, Z3_OP_POWER, Z3_OP_DIV, Z3_OP_IDIV, Z3_OP_MOD, Z3_OP_BSDIV, Z3_OP_BSMOD ]
+
+_ellipses = '...'
+
+_html_ellipses = '&hellip;'
+# Overwrite some of the operators for HTML
+_z3_pre_html_op_to_str = { Z3_OP_EQ : '=', Z3_OP_IFF : '=', Z3_OP_NOT : '&not;',
+ Z3_OP_AND : '&and;', Z3_OP_OR : '&or;', Z3_OP_IMPLIES : '&rArr;',
+ Z3_OP_LT : '&lt;', Z3_OP_GT : '&gt;', Z3_OP_LE : '&le;', Z3_OP_GE : '&ge;',
+ Z3_OP_MUL : '&middot;',
+ Z3_OP_SLEQ : '&le;', Z3_OP_SLT : '&lt;', Z3_OP_SGEQ : '&ge;', Z3_OP_SGT : '&gt;',
+ Z3_OP_ULEQ : '&le;<sub>u</sub>', Z3_OP_ULT : '&lt;<sub>u</sub>',
+ Z3_OP_UGEQ : '&ge;<sub>u</sub>', Z3_OP_UGT : '&gt;<sub>u</sub>',
+ Z3_OP_BMUL : '&middot;',
+ Z3_OP_BUDIV : '/<sub>u</sub>', Z3_OP_BUREM : '%<sub>u</sub>',
+ Z3_OP_BASHR : '&gt;&gt;', Z3_OP_BSHL : '&lt;&lt;',
+ Z3_OP_BLSHR : '&gt;&gt;<sub>u</sub>'
+ }
+
+# Extra operators that are infix/unary for HTML
+_z3_html_infix = [ Z3_OP_AND, Z3_OP_OR, Z3_OP_IMPLIES,
+ Z3_OP_ULEQ, Z3_OP_ULT, Z3_OP_UGEQ, Z3_OP_UGT, Z3_OP_BUDIV, Z3_OP_BUREM, Z3_OP_BLSHR
+ ]
+
+_z3_html_unary = [ Z3_OP_NOT ]
+
+# Extra Precedence for HTML
+_z3_pre_html_precedence = { Z3_OP_BUDIV : 2, Z3_OP_BUREM : 2,
+ Z3_OP_BLSHR : 4,
+ Z3_OP_ULEQ : 8, Z3_OP_ULT : 8,
+ Z3_OP_UGEQ : 8, Z3_OP_UGT : 8,
+ Z3_OP_ULEQ : 8, Z3_OP_ULT : 8,
+ Z3_OP_UGEQ : 8, Z3_OP_UGT : 8,
+ Z3_OP_NOT : 1,
+ Z3_OP_AND : 10,
+ Z3_OP_OR : 11,
+ Z3_OP_IMPLIES : 12 }
+
+##############################
+#
+# End of Configuration
+#
+##############################
+
+def _support_pp(a):
+ return isinstance(a, z3.Z3PPObject) or isinstance(a, list) or isinstance(a, tuple)
+
+_infix_map = {}
+_unary_map = {}
+_infix_compact_map = {}
+
+for _k in _z3_infix:
+ _infix_map[_k] = True
+for _k in _z3_unary:
+ _unary_map[_k] = True
+
+for _k in _z3_infix_compact:
+ _infix_compact_map[_k] = True
+
+def _is_infix(k):
+ global _infix_map
+ return _infix_map.get(k, False)
+
+def _is_infix_compact(k):
+ global _infix_compact_map
+ return _infix_compact_map.get(k, False)
+
+def _is_unary(k):
+ global _unary_map
+ return _unary_map.get(k, False)
+
+def _op_name(a):
+ if isinstance(a, z3.FuncDeclRef):
+ f = a
+ else:
+ f = a.decl()
+ k = f.kind()
+ n = _z3_op_to_str.get(k, None)
+ if n == None:
+ return f.name()
+ else:
+ return n
+
+def _get_precedence(k):
+ global _z3_precedence
+ return _z3_precedence.get(k, 100000)
+
+_z3_html_op_to_str = {}
+for _k in _z3_op_to_str:
+ _v = _z3_op_to_str[_k]
+ _z3_html_op_to_str[_k] = _v
+for _k in _z3_pre_html_op_to_str:
+ _v = _z3_pre_html_op_to_str[_k]
+ _z3_html_op_to_str[_k] = _v
+
+_z3_html_precedence = {}
+for _k in _z3_precedence:
+ _v = _z3_precedence[_k]
+ _z3_html_precedence[_k] = _v
+for _k in _z3_pre_html_precedence:
+ _v = _z3_pre_html_precedence[_k]
+ _z3_html_precedence[_k] = _v
+
+_html_infix_map = {}
+_html_unary_map = {}
+for _k in _z3_infix:
+ _html_infix_map[_k] = True
+for _k in _z3_html_infix:
+ _html_infix_map[_k] = True
+for _k in _z3_unary:
+ _html_unary_map[_k] = True
+for _k in _z3_html_unary:
+ _html_unary_map[_k] = True
+
+def _is_html_infix(k):
+ global _html_infix_map
+ return _html_infix_map.get(k, False)
+
+def _is_html_unary(k):
+ global _html_unary_map
+ return _html_unary_map.get(k, False)
+
+def _html_op_name(a):
+ global _z3_html_op_to_str
+ if isinstance(a, z3.FuncDeclRef):
+ f = a
+ else:
+ f = a.decl()
+ k = f.kind()
+ n = _z3_html_op_to_str.get(k, None)
+ if n == None:
+ sym = Z3_get_decl_name(f.ctx_ref(), f.ast)
+ if Z3_get_symbol_kind(f.ctx_ref(), sym) == Z3_INT_SYMBOL:
+ return "&#950;<sub>%s</sub>" % Z3_get_symbol_int(f.ctx_ref(), sym)
+ else:
+ # Sanitize the string
+ return f.name()
+ else:
+ return n
+
+def _get_html_precedence(k):
+ global _z3_html_predence
+ return _z3_html_precedence.get(k, 100000)
+
+class FormatObject:
+ def is_compose(self):
+ return False
+ def is_choice(self):
+ return False
+ def is_indent(self):
+ return False
+ def is_string(self):
+ return False
+ def is_linebreak(self):
+ return False
+ def is_nil(self):
+ return True
+ def children(self):
+ return []
+ def as_tuple(self):
+ return None
+ def space_upto_nl(self):
+ return (0, False)
+ def flat(self):
+ return self
+
+class NAryFormatObject(FormatObject):
+ def __init__(self, fs):
+ assert all([isinstance(a, FormatObject) for a in fs])
+ self.children = fs
+ def children(self):
+ return self.children
+
+class ComposeFormatObject(NAryFormatObject):
+ def is_compose(sef):
+ return True
+ def as_tuple(self):
+ return ('compose', [ a.as_tuple() for a in self.children ])
+ def space_upto_nl(self):
+ r = 0
+ for child in self.children:
+ s, nl = child.space_upto_nl()
+ r = r + s
+ if nl:
+ return (r, True)
+ return (r, False)
+ def flat(self):
+ return compose([a.flat() for a in self.children ])
+
+class ChoiceFormatObject(NAryFormatObject):
+ def is_choice(sef):
+ return True
+ def as_tuple(self):
+ return ('choice', [ a.as_tuple() for a in self.children ])
+ def space_upto_nl(self):
+ return self.children[0].space_upto_nl()
+ def flat(self):
+ return self.children[0].flat()
+
+class IndentFormatObject(FormatObject):
+ def __init__(self, indent, child):
+ assert isinstance(child, FormatObject)
+ self.indent = indent
+ self.child = child
+ def children(self):
+ return [self.child]
+ def as_tuple(self):
+ return ('indent', self.indent, self.child.as_tuple())
+ def space_upto_nl(self):
+ return self.child.space_upto_nl()
+ def flat(self):
+ return indent(self.indent, self.child.flat())
+ def is_indent(self):
+ return True
+
+class LineBreakFormatObject(FormatObject):
+ def __init__(self):
+ self.space = ' '
+ def is_linebreak(self):
+ return True
+ def as_tuple(self):
+ return '<line-break>'
+ def space_upto_nl(self):
+ return (0, True)
+ def flat(self):
+ return to_format(self.space)
+
+class StringFormatObject(FormatObject):
+ def __init__(self, string):
+ assert isinstance(string, str)
+ self.string = string
+ def is_string(self):
+ return True
+ def as_tuple(self):
+ return self.string
+ def space_upto_nl(self):
+ return (getattr(self, 'size', len(self.string)), False)
+
+def fits(f, space_left):
+ s, nl = f.space_upto_nl()
+ return s <= space_left
+
+def to_format(arg, size=None):
+ if isinstance(arg, FormatObject):
+ return arg
+ else:
+ r = StringFormatObject(str(arg))
+ if size != None:
+ r.size = size
+ return r
+
+def compose(*args):
+ if len(args) == 1 and (isinstance(args[0], list) or isinstance(args[0], tuple)):
+ args = args[0]
+ return ComposeFormatObject(args)
+
+def indent(i, arg):
+ return IndentFormatObject(i, arg)
+
+def group(arg):
+ return ChoiceFormatObject([arg.flat(), arg])
+
+def line_break():
+ return LineBreakFormatObject()
+
+def _len(a):
+ if isinstance(a, StringFormatObject):
+ return getattr(a, 'size', len(a.string))
+ else:
+ return len(a)
+
+def seq(args, sep=',', space=True):
+ nl = line_break()
+ if not space:
+ nl.space = ''
+ r = []
+ r.append(args[0])
+ num = len(args)
+ for i in range(num - 1):
+ r.append(to_format(sep))
+ r.append(nl)
+ r.append(args[i+1])
+ return compose(r)
+
+def seq1(header, args, lp='(', rp=')'):
+ return group(compose(to_format(header),
+ to_format(lp),
+ indent(len(lp) + _len(header),
+ seq(args)),
+ to_format(rp)))
+
+def seq2(header, args, i=4, lp='(', rp=')'):
+ if len(args) == 0:
+ return compose(to_format(header), to_format(lp), to_format(rp))
+ else:
+ return group(compose(indent(len(lp), compose(to_format(lp), to_format(header))),
+ indent(i, compose(seq(args), to_format(rp)))))
+
+def seq3(args, lp='(', rp=')'):
+ if len(args) == 0:
+ return compose(to_format(lp), to_format(rp))
+ else:
+ return group(indent(len(lp), compose(to_format(lp), seq(args), to_format(rp))))
+
+class StopPPException(Exception):
+ def __str__(self):
+ return 'pp-interrupted'
+
+class PP:
+ def __init__(self):
+ self.max_lines = 200
+ self.max_width = 60
+ self.bounded = False
+ self.max_indent = 40
+
+ def pp_string(self, f, indent):
+ if not self.bounded or self.pos <= self.max_width:
+ sz = _len(f)
+ if self.bounded and self.pos + sz > self.max_width:
+ self.out.write(u(_ellipses))
+ else:
+ self.pos = self.pos + sz
+ self.ribbon_pos = self.ribbon_pos + sz
+ self.out.write(u(f.string))
+
+ def pp_compose(self, f, indent):
+ for c in f.children:
+ self.pp(c, indent)
+
+ def pp_choice(self, f, indent):
+ space_left = self.max_width - self.pos
+ if space_left > 0 and fits(f.children[0], space_left):
+ self.pp(f.children[0], indent)
+ else:
+ self.pp(f.children[1], indent)
+
+ def pp_line_break(self, f, indent):
+ self.pos = indent
+ self.ribbon_pos = 0
+ self.line = self.line + 1
+ if self.line < self.max_lines:
+ self.out.write(u('\n'))
+ for i in range(indent):
+ self.out.write(u(' '))
+ else:
+ self.out.write(u('\n...'))
+ raise StopPPException()
+
+ def pp(self, f, indent):
+ if f.is_string():
+ self.pp_string(f, indent)
+ elif f.is_indent():
+ self.pp(f.child, min(indent + f.indent, self.max_indent))
+ elif f.is_compose():
+ self.pp_compose(f, indent)
+ elif f.is_choice():
+ self.pp_choice(f, indent)
+ elif f.is_linebreak():
+ self.pp_line_break(f, indent)
+ else:
+ return
+
+ def __call__(self, out, f):
+ try:
+ self.pos = 0
+ self.ribbon_pos = 0
+ self.line = 0
+ self.out = out
+ self.pp(f, 0)
+ except StopPPException:
+ return
+
+class Formatter:
+ def __init__(self):
+ global _ellipses
+ self.max_depth = 20
+ self.max_args = 128
+ self.rational_to_decimal = False
+ self.precision = 10
+ self.ellipses = to_format(_ellipses)
+ self.max_visited = 10000
+ self.fpa_pretty = True
+
+ def pp_ellipses(self):
+ return self.ellipses
+
+ def pp_arrow(self):
+ return ' ->'
+
+ def pp_unknown(self):
+ return '<unknown>'
+
+ def pp_name(self, a):
+ return to_format(_op_name(a))
+
+ def is_infix(self, a):
+ return _is_infix(a)
+
+ def is_unary(self, a):
+ return _is_unary(a)
+
+ def get_precedence(self, a):
+ return _get_precedence(a)
+
+ def is_infix_compact(self, a):
+ return _is_infix_compact(a)
+
+ def is_infix_unary(self, a):
+ return self.is_infix(a) or self.is_unary(a)
+
+ def add_paren(self, a):
+ return compose(to_format('('), indent(1, a), to_format(')'))
+
+ def pp_sort(self, s):
+ if isinstance(s, z3.ArraySortRef):
+ return seq1('Array', (self.pp_sort(s.domain()), self.pp_sort(s.range())))
+ elif isinstance(s, z3.BitVecSortRef):
+ return seq1('BitVec', (to_format(s.size()), ))
+ elif isinstance(s, z3.FPSortRef):
+ return seq1('FPSort', (to_format(s.ebits()), to_format(s.sbits())))
+ else:
+ return to_format(s.name())
+
+ def pp_const(self, a):
+ return self.pp_name(a)
+
+ def pp_int(self, a):
+ return to_format(a.as_string())
+
+ def pp_rational(self, a):
+ if not self.rational_to_decimal:
+ return to_format(a.as_string())
+ else:
+ return to_format(a.as_decimal(self.precision))
+
+ def pp_algebraic(self, a):
+ return to_format(a.as_decimal(self.precision))
+
+ def pp_string(self, a):
+ return to_format(a.as_string())
+
+ def pp_bv(self, a):
+ return to_format(a.as_string())
+
+ def pp_fd(self, a):
+ return to_format(a.as_string())
+
+ def pp_fprm_value(self, a):
+ _z3_assert(z3.is_fprm_value(a), 'expected FPRMNumRef')
+ if self.fpa_pretty and (a.decl().kind() in _z3_op_to_fpa_pretty_str):
+ return to_format(_z3_op_to_fpa_pretty_str.get(a.decl().kind()))
+ else:
+ return to_format(_z3_op_to_fpa_normal_str.get(a.decl().kind()))
+
+ def pp_fp_value(self, a):
+ _z3_assert(isinstance(a, z3.FPNumRef), 'type mismatch')
+ if not self.fpa_pretty:
+ r = []
+ if (a.isNaN()):
+ r.append(to_format(_z3_op_to_fpa_normal_str[Z3_OP_FPA_NAN]))
+ r.append(to_format('('))
+ r.append(to_format(a.sort()))
+ r.append(to_format(')'))
+ return compose(r)
+ elif (a.isInf()):
+ if (a.isNegative()):
+ r.append(to_format(_z3_op_to_fpa_normal_str[Z3_OP_FPA_MINUS_INF]))
+ else:
+ r.append(to_format(_z3_op_to_fpa_normal_str[Z3_OP_FPA_PLUS_INF]))
+ r.append(to_format('('))
+ r.append(to_format(a.sort()))
+ r.append(to_format(')'))
+ return compose(r)
+
+ elif (a.isZero()):
+ if (a.isNegative()):
+ return to_format('-zero')
+ else:
+ return to_format('+zero')
+ else:
+ _z3_assert(z3.is_fp_value(a), 'expecting FP num ast')
+ r = []
+ sgn = c_int(0)
+ sgnb = Z3_fpa_get_numeral_sign(a.ctx_ref(), a.ast, byref(sgn))
+ exp = Z3_fpa_get_numeral_exponent_string(a.ctx_ref(), a.ast, False)
+ sig = Z3_fpa_get_numeral_significand_string(a.ctx_ref(), a.ast)
+ r.append(to_format('FPVal('))
+ if sgnb and sgn.value != 0:
+ r.append(to_format('-'))
+ r.append(to_format(sig))
+ r.append(to_format('*(2**'))
+ r.append(to_format(exp))
+ r.append(to_format(', '))
+ r.append(to_format(a.sort()))
+ r.append(to_format('))'))
+ return compose(r)
+ else:
+ if (a.isNaN()):
+ return to_format(_z3_op_to_fpa_pretty_str[Z3_OP_FPA_NAN])
+ elif (a.isInf()):
+ if (a.isNegative()):
+ return to_format(_z3_op_to_fpa_pretty_str[Z3_OP_FPA_MINUS_INF])
+ else:
+ return to_format(_z3_op_to_fpa_pretty_str[Z3_OP_FPA_PLUS_INF])
+ elif (a.isZero()):
+ if (a.isNegative()):
+ return to_format(_z3_op_to_fpa_pretty_str[Z3_OP_FPA_MINUS_ZERO])
+ else:
+ return to_format(_z3_op_to_fpa_pretty_str[Z3_OP_FPA_PLUS_ZERO])
+ else:
+ _z3_assert(z3.is_fp_value(a), 'expecting FP num ast')
+ r = []
+ sgn = (ctypes.c_int)(0)
+ sgnb = Z3_fpa_get_numeral_sign(a.ctx_ref(), a.ast, byref(sgn))
+ exp = Z3_fpa_get_numeral_exponent_string(a.ctx_ref(), a.ast, False)
+ sig = Z3_fpa_get_numeral_significand_string(a.ctx_ref(), a.ast)
+ if sgnb and sgn.value != 0:
+ r.append(to_format('-'))
+ r.append(to_format(sig))
+ if (exp != '0'):
+ r.append(to_format('*(2**'))
+ r.append(to_format(exp))
+ r.append(to_format(')'))
+ return compose(r)
+
+
+ def pp_fp(self, a, d, xs):
+ _z3_assert(isinstance(a, z3.FPRef), "type mismatch")
+ k = a.decl().kind()
+ op = '?'
+ if (self.fpa_pretty and k in _z3_op_to_fpa_pretty_str):
+ op = _z3_op_to_fpa_pretty_str[k]
+ elif k in _z3_op_to_fpa_normal_str:
+ op = _z3_op_to_fpa_normal_str[k]
+ elif k in _z3_op_to_str:
+ op = _z3_op_to_str[k]
+
+ n = a.num_args()
+
+ if self.fpa_pretty:
+ if self.is_infix(k) and n >= 3:
+ rm = a.arg(0)
+ if z3.is_fprm_value(rm) and z3.get_default_rounding_mode(a.ctx).eq(rm):
+ arg1 = to_format(self.pp_expr(a.arg(1), d+1, xs))
+ arg2 = to_format(self.pp_expr(a.arg(2), d+1, xs))
+ r = []
+ r.append(arg1)
+ r.append(to_format(' '))
+ r.append(to_format(op))
+ r.append(to_format(' '))
+ r.append(arg2)
+ return compose(r)
+ elif k == Z3_OP_FPA_NEG:
+ return compose([to_format('-') , to_format(self.pp_expr(a.arg(0), d+1, xs))])
+
+ if k in _z3_op_to_fpa_normal_str:
+ op = _z3_op_to_fpa_normal_str[k]
+
+ r = []
+ r.append(to_format(op))
+ if not z3.is_const(a):
+ r.append(to_format('('))
+ first = True
+ for c in a.children():
+ if first:
+ first = False
+ else:
+ r.append(to_format(', '))
+ r.append(self.pp_expr(c, d+1, xs))
+ r.append(to_format(')'))
+ return compose(r)
+ else:
+ return to_format(a.as_string())
+
+ def pp_prefix(self, a, d, xs):
+ r = []
+ sz = 0
+ for child in a.children():
+ r.append(self.pp_expr(child, d+1, xs))
+ sz = sz + 1
+ if sz > self.max_args:
+ r.append(self.pp_ellipses())
+ break
+ return seq1(self.pp_name(a), r)
+
+ def is_assoc(self, k):
+ return _is_assoc(k)
+
+ def is_left_assoc(self, k):
+ return _is_left_assoc(k)
+
+ def infix_args_core(self, a, d, xs, r):
+ sz = len(r)
+ k = a.decl().kind()
+ p = self.get_precedence(k)
+ first = True
+ for child in a.children():
+ child_pp = self.pp_expr(child, d+1, xs)
+ child_k = None
+ if z3.is_app(child):
+ child_k = child.decl().kind()
+ if k == child_k and (self.is_assoc(k) or (first and self.is_left_assoc(k))):
+ self.infix_args_core(child, d, xs, r)
+ sz = len(r)
+ if sz > self.max_args:
+ return
+ elif self.is_infix_unary(child_k):
+ child_p = self.get_precedence(child_k)
+ if p > child_p or (_is_add(k) and _is_sub(child_k)) or (_is_sub(k) and first and _is_add(child_k)):
+ r.append(child_pp)
+ else:
+ r.append(self.add_paren(child_pp))
+ sz = sz + 1
+ elif z3.is_quantifier(child):
+ r.append(self.add_paren(child_pp))
+ else:
+ r.append(child_pp)
+ sz = sz + 1
+ if sz > self.max_args:
+ r.append(self.pp_ellipses())
+ return
+ first = False
+
+ def infix_args(self, a, d, xs):
+ r = []
+ self.infix_args_core(a, d, xs, r)
+ return r
+
+ def pp_infix(self, a, d, xs):
+ k = a.decl().kind()
+ if self.is_infix_compact(k):
+ op = self.pp_name(a)
+ return group(seq(self.infix_args(a, d, xs), op, False))
+ else:
+ op = self.pp_name(a)
+ sz = _len(op)
+ op.string = ' ' + op.string
+ op.size = sz + 1
+ return group(seq(self.infix_args(a, d, xs), op))
+
+ def pp_unary(self, a, d, xs):
+ k = a.decl().kind()
+ p = self.get_precedence(k)
+ child = a.children()[0]
+ child_k = None
+ if z3.is_app(child):
+ child_k = child.decl().kind()
+ child_pp = self.pp_expr(child, d+1, xs)
+ if k != child_k and self.is_infix_unary(child_k):
+ child_p = self.get_precedence(child_k)
+ if p <= child_p:
+ child_pp = self.add_paren(child_pp)
+ if z3.is_quantifier(child):
+ child_pp = self.add_paren(child_pp)
+ name = self.pp_name(a)
+ return compose(to_format(name), indent(_len(name), child_pp))
+
+ def pp_power_arg(self, arg, d, xs):
+ r = self.pp_expr(arg, d+1, xs)
+ k = None
+ if z3.is_app(arg):
+ k = arg.decl().kind()
+ if self.is_infix_unary(k) or (z3.is_rational_value(arg) and arg.denominator_as_long() != 1):
+ return self.add_paren(r)
+ else:
+ return r
+
+ def pp_power(self, a, d, xs):
+ arg1_pp = self.pp_power_arg(a.arg(0), d+1, xs)
+ arg2_pp = self.pp_power_arg(a.arg(1), d+1, xs)
+ return group(seq((arg1_pp, arg2_pp), '**', False))
+
+ def pp_neq(self):
+ return to_format("!=")
+
+ def pp_distinct(self, a, d, xs):
+ if a.num_args() == 2:
+ op = self.pp_neq()
+ sz = _len(op)
+ op.string = ' ' + op.string
+ op.size = sz + 1
+ return group(seq(self.infix_args(a, d, xs), op))
+ else:
+ return self.pp_prefix(a, d, xs)
+
+ def pp_select(self, a, d, xs):
+ if a.num_args() != 2:
+ return self.pp_prefix(a, d, xs)
+ else:
+ arg1_pp = self.pp_expr(a.arg(0), d+1, xs)
+ arg2_pp = self.pp_expr(a.arg(1), d+1, xs)
+ return compose(arg1_pp, indent(2, compose(to_format('['), arg2_pp, to_format(']'))))
+
+ def pp_unary_param(self, a, d, xs):
+ p = Z3_get_decl_int_parameter(a.ctx_ref(), a.decl().ast, 0)
+ arg = self.pp_expr(a.arg(0), d+1, xs)
+ return seq1(self.pp_name(a), [ to_format(p), arg ])
+
+ def pp_extract(self, a, d, xs):
+ h = Z3_get_decl_int_parameter(a.ctx_ref(), a.decl().ast, 0)
+ l = Z3_get_decl_int_parameter(a.ctx_ref(), a.decl().ast, 1)
+ arg = self.pp_expr(a.arg(0), d+1, xs)
+ return seq1(self.pp_name(a), [ to_format(h), to_format(l), arg ])
+
+ def pp_pattern(self, a, d, xs):
+ if a.num_args() == 1:
+ return self.pp_expr(a.arg(0), d, xs)
+ else:
+ return seq1('MultiPattern', [ self.pp_expr(arg, d+1, xs) for arg in a.children() ])
+
+ def pp_map(self, a, d, xs):
+ r = []
+ sz = 0
+ f = z3.get_map_func(a)
+ r.append(to_format(f.name()))
+ for child in a.children():
+ r.append(self.pp_expr(child, d+1, xs))
+ sz = sz + 1
+ if sz > self.max_args:
+ r.append(self.pp_ellipses())
+ break
+ return seq1(self.pp_name(a), r)
+
+ def pp_K(self, a, d, xs):
+ return seq1(self.pp_name(a), [ self.pp_sort(a.domain()), self.pp_expr(a.arg(0), d+1, xs) ])
+
+ def pp_atmost(self, a, d, f, xs):
+ k = Z3_get_decl_int_parameter(a.ctx_ref(), a.decl().ast, 0)
+ return seq1(self.pp_name(a), [seq3([ self.pp_expr(ch, d+1, xs) for ch in a.children()]), to_format(k)])
+
+ def pp_pbcmp(self, a, d, f, xs):
+ chs = a.children()
+ rchs = range(len(chs))
+ k = Z3_get_decl_int_parameter(a.ctx_ref(), a.decl().ast, 0)
+ ks = [Z3_get_decl_int_parameter(a.ctx_ref(), a.decl().ast, i+1) for i in rchs]
+ ls = [ seq3([self.pp_expr(chs[i], d+1,xs), to_format(ks[i])]) for i in rchs]
+ return seq1(self.pp_name(a), [seq3(ls), to_format(k)])
+
+
+ def pp_app(self, a, d, xs):
+ if z3.is_int_value(a):
+ return self.pp_int(a)
+ elif z3.is_rational_value(a):
+ return self.pp_rational(a)
+ elif z3.is_algebraic_value(a):
+ return self.pp_algebraic(a)
+ elif z3.is_bv_value(a):
+ return self.pp_bv(a)
+ elif z3.is_finite_domain_value(a):
+ return self.pp_fd(a)
+ elif z3.is_fprm_value(a):
+ return self.pp_fprm_value(a)
+ elif z3.is_fp_value(a):
+ return self.pp_fp_value(a)
+ elif z3.is_fp(a):
+ return self.pp_fp(a, d, xs)
+ elif z3.is_string_value(a):
+ return self.pp_string(a)
+ elif z3.is_const(a):
+ return self.pp_const(a)
+ else:
+ f = a.decl()
+ k = f.kind()
+ if k == Z3_OP_POWER:
+ return self.pp_power(a, d, xs)
+ elif k == Z3_OP_DISTINCT:
+ return self.pp_distinct(a, d, xs)
+ elif k == Z3_OP_SELECT:
+ return self.pp_select(a, d, xs)
+ elif k == Z3_OP_SIGN_EXT or k == Z3_OP_ZERO_EXT or k == Z3_OP_REPEAT:
+ return self.pp_unary_param(a, d, xs)
+ elif k == Z3_OP_EXTRACT:
+ return self.pp_extract(a, d, xs)
+ elif k == Z3_OP_ARRAY_MAP:
+ return self.pp_map(a, d, xs)
+ elif k == Z3_OP_CONST_ARRAY:
+ return self.pp_K(a, d, xs)
+ elif k == Z3_OP_PB_AT_MOST:
+ return self.pp_atmost(a, d, f, xs)
+ elif k == Z3_OP_PB_LE:
+ return self.pp_pbcmp(a, d, f, xs)
+ elif k == Z3_OP_PB_GE:
+ return self.pp_pbcmp(a, d, f, xs)
+ elif z3.is_pattern(a):
+ return self.pp_pattern(a, d, xs)
+ elif self.is_infix(k):
+ return self.pp_infix(a, d, xs)
+ elif self.is_unary(k):
+ return self.pp_unary(a, d, xs)
+ else:
+ return self.pp_prefix(a, d, xs)
+
+ def pp_var(self, a, d, xs):
+ idx = z3.get_var_index(a)
+ sz = len(xs)
+ if idx >= sz:
+ return seq1('Var', (to_format(idx),))
+ else:
+ return to_format(xs[sz - idx - 1])
+
+ def pp_quantifier(self, a, d, xs):
+ ys = [ to_format(a.var_name(i)) for i in range(a.num_vars()) ]
+ new_xs = xs + ys
+ body_pp = self.pp_expr(a.body(), d+1, new_xs)
+ if len(ys) == 1:
+ ys_pp = ys[0]
+ else:
+ ys_pp = seq3(ys, '[', ']')
+ if a.is_forall():
+ header = 'ForAll'
+ else:
+ header = 'Exists'
+ return seq1(header, (ys_pp, body_pp))
+
+ def pp_expr(self, a, d, xs):
+ self.visited = self.visited + 1
+ if d > self.max_depth or self.visited > self.max_visited:
+ return self.pp_ellipses()
+ if z3.is_app(a):
+ return self.pp_app(a, d, xs)
+ elif z3.is_quantifier(a):
+ return self.pp_quantifier(a, d, xs)
+ elif z3.is_var(a):
+ return self.pp_var(a, d, xs)
+ else:
+ return to_format(self.pp_unknown())
+
+ def pp_seq_core(self, f, a, d, xs):
+ self.visited = self.visited + 1
+ if d > self.max_depth or self.visited > self.max_visited:
+ return self.pp_ellipses()
+ r = []
+ sz = 0
+ for elem in a:
+ r.append(f(elem, d+1, xs))
+ sz = sz + 1
+ if sz > self.max_args:
+ r.append(self.pp_ellipses())
+ break
+ return seq3(r, '[', ']')
+
+ def pp_seq(self, a, d, xs):
+ return self.pp_seq_core(self.pp_expr, a, d, xs)
+
+ def pp_seq_seq(self, a, d, xs):
+ return self.pp_seq_core(self.pp_seq, a, d, xs)
+
+ def pp_model(self, m):
+ r = []
+ sz = 0
+ for d in m:
+ i = m[d]
+ if isinstance(i, z3.FuncInterp):
+ i_pp = self.pp_func_interp(i)
+ else:
+ i_pp = self.pp_expr(i, 0, [])
+ name = self.pp_name(d)
+ r.append(compose(name, to_format(' = '), indent(_len(name) + 3, i_pp)))
+ sz = sz + 1
+ if sz > self.max_args:
+ r.append(self.pp_ellipses())
+ break
+ return seq3(r, '[', ']')
+
+ def pp_func_entry(self, e):
+ num = e.num_args()
+ if num > 1:
+ args = []
+ for i in range(num):
+ args.append(self.pp_expr(e.arg_value(i), 0, []))
+ args_pp = group(seq3(args))
+ else:
+ args_pp = self.pp_expr(e.arg_value(0), 0, [])
+ value_pp = self.pp_expr(e.value(), 0, [])
+ return group(seq((args_pp, value_pp), self.pp_arrow()))
+
+ def pp_func_interp(self, f):
+ r = []
+ sz = 0
+ num = f.num_entries()
+ for i in range(num):
+ r.append(self.pp_func_entry(f.entry(i)))
+ sz = sz + 1
+ if sz > self.max_args:
+ r.append(self.pp_ellipses())
+ break
+ if sz <= self.max_args:
+ else_val = f.else_value()
+ if else_val == None:
+ else_pp = to_format('#unspecified')
+ else:
+ else_pp = self.pp_expr(else_val, 0, [])
+ r.append(group(seq((to_format('else'), else_pp), self.pp_arrow())))
+ return seq3(r, '[', ']')
+
+ def pp_list(self, a):
+ r = []
+ sz = 0
+ for elem in a:
+ if _support_pp(elem):
+ r.append(self.main(elem))
+ else:
+ r.append(to_format(str(elem)))
+ sz = sz + 1
+ if sz > self.max_args:
+ r.append(self.pp_ellipses())
+ break
+ if isinstance(a, tuple):
+ return seq3(r)
+ else:
+ return seq3(r, '[', ']')
+
+ def main(self, a):
+ if z3.is_expr(a):
+ return self.pp_expr(a, 0, [])
+ elif z3.is_sort(a):
+ return self.pp_sort(a)
+ elif z3.is_func_decl(a):
+ return self.pp_name(a)
+ elif isinstance(a, z3.Goal) or isinstance(a, z3.AstVector):
+ return self.pp_seq(a, 0, [])
+ elif isinstance(a, z3.Solver):
+ return self.pp_seq(a.assertions(), 0, [])
+ elif isinstance(a, z3.Fixedpoint):
+ return a.sexpr()
+ elif isinstance(a, z3.Optimize):
+ return a.sexpr()
+ elif isinstance(a, z3.ApplyResult):
+ return self.pp_seq_seq(a, 0, [])
+ elif isinstance(a, z3.ModelRef):
+ return self.pp_model(a)
+ elif isinstance(a, z3.FuncInterp):
+ return self.pp_func_interp(a)
+ elif isinstance(a, list) or isinstance(a, tuple):
+ return self.pp_list(a)
+ else:
+ return to_format(self.pp_unknown())
+
+ def __call__(self, a):
+ self.visited = 0
+ return self.main(a)
+
+class HTMLFormatter(Formatter):
+ def __init__(self):
+ Formatter.__init__(self)
+ global _html_ellipses
+ self.ellipses = to_format(_html_ellipses)
+
+ def pp_arrow(self):
+ return to_format(' &rarr;', 1)
+
+ def pp_unknown(self):
+ return '<b>unknown</b>'
+
+ def pp_name(self, a):
+ r = _html_op_name(a)
+ if r[0] == '&' or r[0] == '/' or r[0] == '%':
+ return to_format(r, 1)
+ else:
+ pos = r.find('__')
+ if pos == -1 or pos == 0:
+ return to_format(r)
+ else:
+ sz = len(r)
+ if pos + 2 == sz:
+ return to_format(r)
+ else:
+ return to_format('%s<sub>%s</sub>' % (r[0:pos], r[pos+2:sz]), sz - 2)
+
+ def is_assoc(self, k):
+ return _is_html_assoc(k)
+
+ def is_left_assoc(self, k):
+ return _is_html_left_assoc(k)
+
+ def is_infix(self, a):
+ return _is_html_infix(a)
+
+ def is_unary(self, a):
+ return _is_html_unary(a)
+
+ def get_precedence(self, a):
+ return _get_html_precedence(a)
+
+ def pp_neq(self):
+ return to_format("&ne;")
+
+ def pp_power(self, a, d, xs):
+ arg1_pp = self.pp_power_arg(a.arg(0), d+1, xs)
+ arg2_pp = self.pp_expr(a.arg(1), d+1, xs)
+ return compose(arg1_pp, to_format('<sup>', 1), arg2_pp, to_format('</sup>', 1))
+
+ def pp_var(self, a, d, xs):
+ idx = z3.get_var_index(a)
+ sz = len(xs)
+ if idx >= sz:
+ # 957 is the greek letter nu
+ return to_format('&#957;<sub>%s</sub>' % idx, 1)
+ else:
+ return to_format(xs[sz - idx - 1])
+
+ def pp_quantifier(self, a, d, xs):
+ ys = [ to_format(a.var_name(i)) for i in range(a.num_vars()) ]
+ new_xs = xs + ys
+ body_pp = self.pp_expr(a.body(), d+1, new_xs)
+ ys_pp = group(seq(ys))
+ if a.is_forall():
+ header = '&forall;'
+ else:
+ header = '&exist;'
+ return group(compose(to_format(header, 1),
+ indent(1, compose(ys_pp, to_format(' :'), line_break(), body_pp))))
+
+
+_PP = PP()
+_Formatter = Formatter()
+
+def set_pp_option(k, v):
+ if k == 'html_mode':
+ if v:
+ set_html_mode(True)
+ else:
+ set_html_mode(False)
+ return True
+ if k == 'fpa_pretty':
+ if v:
+ set_fpa_pretty(True)
+ else:
+ set_fpa_pretty(False)
+ return True
+ val = getattr(_PP, k, None)
+ if val != None:
+ _z3_assert(type(v) == type(val), "Invalid pretty print option value")
+ setattr(_PP, k, v)
+ return True
+ val = getattr(_Formatter, k, None)
+ if val != None:
+ _z3_assert(type(v) == type(val), "Invalid pretty print option value")
+ setattr(_Formatter, k, v)
+ return True
+ return False
+
+def obj_to_string(a):
+ out = io.StringIO()
+ _PP(out, _Formatter(a))
+ return out.getvalue()
+
+_html_out = None
+
+def set_html_mode(flag=True):
+ global _Formatter
+ if flag:
+ _Formatter = HTMLFormatter()
+ else:
+ _Formatter = Formatter()
+
+def set_fpa_pretty(flag=True):
+ global _Formatter
+ global _z3_op_to_str
+ _Formatter.fpa_pretty = flag
+ if flag:
+ for (_k,_v) in _z3_op_to_fpa_pretty_str.items():
+ _z3_op_to_str[_k] = _v
+ for _k in _z3_fpa_infix:
+ _infix_map[_k] = True
+ else:
+ for (_k,_v) in _z3_op_to_fpa_normal_str.items():
+ _z3_op_to_str[_k] = _v
+ for _k in _z3_fpa_infix:
+ _infix_map[_k] = False
+
+set_fpa_pretty(True)
+
+def get_fpa_pretty():
+ global Formatter
+ return _Formatter.fpa_pretty
+
+def in_html_mode():
+ return isinstance(_Formatter, HTMLFormatter)
+
+def pp(a):
+ if _support_pp(a):
+ print(obj_to_string(a))
+ else:
+ print(a)
+
+def print_matrix(m):
+ _z3_assert(isinstance(m, list) or isinstance(m, tuple), "matrix expected")
+ if not in_html_mode():
+ print(obj_to_string(m))
+ else:
+ print('<table cellpadding="2", cellspacing="0", border="1">')
+ for r in m:
+ _z3_assert(isinstance(r, list) or isinstance(r, tuple), "matrix expected")
+ print('<tr>')
+ for c in r:
+ print('<td>%s</td>' % c)
+ print('</tr>')
+ print('</table>')
+
+def insert_line_breaks(s, width):
+ """Break s in lines of size width (approx)"""
+ sz = len(s)
+ if sz <= width:
+ return s
+ new_str = io.StringIO()
+ w = 0
+ for i in range(sz):
+ if w > width and s[i] == ' ':
+ new_str.write(u('<br />'))
+ w = 0
+ else:
+ new_str.write(u(s[i]))
+ w = w + 1
+ return new_str.getvalue()
diff --git a/rba.tool.core/lib32/z3/python/z3/z3printer.pyc b/rba.tool.core/lib32/z3/python/z3/z3printer.pyc
new file mode 100644
index 0000000..980abc3
--- /dev/null
+++ b/rba.tool.core/lib32/z3/python/z3/z3printer.pyc
Binary files differ
diff --git a/rba.tool.core/lib32/z3/python/z3/z3rcf.py b/rba.tool.core/lib32/z3/python/z3/z3rcf.py
new file mode 100644
index 0000000..9d6f2f6
--- /dev/null
+++ b/rba.tool.core/lib32/z3/python/z3/z3rcf.py
@@ -0,0 +1,163 @@
+############################################
+# Copyright (c) 2013 Microsoft Corporation
+#
+# Z3 Python interface for Z3 Real Closed Fields
+# that may contain
+# - computable transcendentals
+# - infinitesimals
+# - algebraic extensions
+#
+# Author: Leonardo de Moura (leonardo)
+############################################
+from .z3 import *
+from .z3core import *
+from .z3printer import *
+from fractions import Fraction
+
+def _to_rcfnum(num, ctx=None):
+ if isinstance(num, RCFNum):
+ return num
+ else:
+ return RCFNum(num, ctx)
+
+def Pi(ctx=None):
+ ctx = z3._get_ctx(ctx)
+ return RCFNum(Z3_rcf_mk_pi(ctx.ref()), ctx)
+
+def E(ctx=None):
+ ctx = z3._get_ctx(ctx)
+ return RCFNum(Z3_rcf_mk_e(ctx.ref()), ctx)
+
+def MkInfinitesimal(name="eps", ctx=None):
+ # Todo: remove parameter name.
+ # For now, we keep it for backward compatibility.
+ ctx = z3._get_ctx(ctx)
+ return RCFNum(Z3_rcf_mk_infinitesimal(ctx.ref()), ctx)
+
+def MkRoots(p, ctx=None):
+ ctx = z3._get_ctx(ctx)
+ num = len(p)
+ _tmp = []
+ _as = (RCFNumObj * num)()
+ _rs = (RCFNumObj * num)()
+ for i in range(num):
+ _a = _to_rcfnum(p[i], ctx)
+ _tmp.append(_a) # prevent GC
+ _as[i] = _a.num
+ nr = Z3_rcf_mk_roots(ctx.ref(), num, _as, _rs)
+ r = []
+ for i in range(nr):
+ r.append(RCFNum(_rs[i], ctx))
+ return r
+
+class RCFNum:
+ def __init__(self, num, ctx=None):
+ # TODO: add support for converting AST numeral values into RCFNum
+ if isinstance(num, RCFNumObj):
+ self.num = num
+ self.ctx = z3._get_ctx(ctx)
+ else:
+ self.ctx = z3._get_ctx(ctx)
+ self.num = Z3_rcf_mk_rational(self.ctx_ref(), str(num))
+
+ def __del__(self):
+ Z3_rcf_del(self.ctx_ref(), self.num)
+
+ def ctx_ref(self):
+ return self.ctx.ref()
+
+ def __repr__(self):
+ return Z3_rcf_num_to_string(self.ctx_ref(), self.num, False, in_html_mode())
+
+ def compact_str(self):
+ return Z3_rcf_num_to_string(self.ctx_ref(), self.num, True, in_html_mode())
+
+ def __add__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return RCFNum(Z3_rcf_add(self.ctx_ref(), self.num, v.num), self.ctx)
+
+ def __radd__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return RCFNum(Z3_rcf_add(self.ctx_ref(), v.num, self.num), self.ctx)
+
+ def __mul__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return RCFNum(Z3_rcf_mul(self.ctx_ref(), self.num, v.num), self.ctx)
+
+ def __rmul__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return RCFNum(Z3_rcf_mul(self.ctx_ref(), v.num, self.num), self.ctx)
+
+ def __sub__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return RCFNum(Z3_rcf_sub(self.ctx_ref(), self.num, v.num), self.ctx)
+
+ def __rsub__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return RCFNum(Z3_rcf_sub(self.ctx_ref(), v.num, self.num), self.ctx)
+
+ def __div__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return RCFNum(Z3_rcf_div(self.ctx_ref(), self.num, v.num), self.ctx)
+
+ def __rdiv__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return RCFNum(Z3_rcf_div(self.ctx_ref(), v.num, self.num), self.ctx)
+
+ def __neg__(self):
+ return self.__rsub__(0)
+
+ def power(self, k):
+ return RCFNum(Z3_rcf_power(self.ctx_ref(), self.num, k), self.ctx)
+
+ def __pow__(self, k):
+ return self.power(k)
+
+ def decimal(self, prec=5):
+ return Z3_rcf_num_to_decimal_string(self.ctx_ref(), self.num, prec)
+
+ def __lt__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return Z3_rcf_lt(self.ctx_ref(), self.num, v.num)
+
+ def __rlt__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return Z3_rcf_lt(self.ctx_ref(), v.num, self.num)
+
+ def __gt__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return Z3_rcf_gt(self.ctx_ref(), self.num, v.num)
+
+ def __rgt__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return Z3_rcf_gt(self.ctx_ref(), v.num, self.num)
+
+ def __le__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return Z3_rcf_le(self.ctx_ref(), self.num, v.num)
+
+ def __rle__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return Z3_rcf_le(self.ctx_ref(), v.num, self.num)
+
+ def __ge__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return Z3_rcf_ge(self.ctx_ref(), self.num, v.num)
+
+ def __rge__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return Z3_rcf_ge(self.ctx_ref(), v.num, self.num)
+
+ def __eq__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return Z3_rcf_eq(self.ctx_ref(), self.num, v.num)
+
+ def __ne__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return Z3_rcf_neq(self.ctx_ref(), self.num, v.num)
+
+ def split(self):
+ n = (RCFNumObj * 1)()
+ d = (RCFNumObj * 1)()
+ Z3_rcf_get_numerator_denominator(self.ctx_ref(), self.num, n, d)
+ return (RCFNum(n[0], self.ctx), RCFNum(d[0], self.ctx))
diff --git a/rba.tool.core/lib32/z3/python/z3/z3rcf.pyc b/rba.tool.core/lib32/z3/python/z3/z3rcf.pyc
new file mode 100644
index 0000000..c18977d
--- /dev/null
+++ b/rba.tool.core/lib32/z3/python/z3/z3rcf.pyc
Binary files differ
diff --git a/rba.tool.core/lib32/z3/python/z3/z3types.py b/rba.tool.core/lib32/z3/python/z3/z3types.py
new file mode 100644
index 0000000..7cf61f4
--- /dev/null
+++ b/rba.tool.core/lib32/z3/python/z3/z3types.py
@@ -0,0 +1,123 @@
+############################################
+# Copyright (c) 2012 Microsoft Corporation
+#
+# Z3 Python interface
+#
+# Author: Leonardo de Moura (leonardo)
+############################################
+
+import ctypes
+
+class Z3Exception(Exception):
+ def __init__(self, value):
+ self.value = value
+ def __str__(self):
+ return str(self.value)
+
+class ContextObj(ctypes.c_void_p):
+ def __init__(self, context): self._as_parameter_ = context
+ def from_param(obj): return obj
+
+class Config(ctypes.c_void_p):
+ def __init__(self, config): self._as_parameter_ = config
+ def from_param(obj): return obj
+
+class Symbol(ctypes.c_void_p):
+ def __init__(self, symbol): self._as_parameter_ = symbol
+ def from_param(obj): return obj
+
+class Sort(ctypes.c_void_p):
+ def __init__(self, sort): self._as_parameter_ = sort
+ def from_param(obj): return obj
+
+class FuncDecl(ctypes.c_void_p):
+ def __init__(self, decl): self._as_parameter_ = decl
+ def from_param(obj): return obj
+
+class Ast(ctypes.c_void_p):
+ def __init__(self, ast): self._as_parameter_ = ast
+ def from_param(obj): return obj
+
+class Pattern(ctypes.c_void_p):
+ def __init__(self, pattern): self._as_parameter_ = pattern
+ def from_param(obj): return obj
+
+class Model(ctypes.c_void_p):
+ def __init__(self, model): self._as_parameter_ = model
+ def from_param(obj): return obj
+
+class Literals(ctypes.c_void_p):
+ def __init__(self, literals): self._as_parameter_ = literals
+ def from_param(obj): return obj
+
+class Constructor(ctypes.c_void_p):
+ def __init__(self, constructor): self._as_parameter_ = constructor
+ def from_param(obj): return obj
+
+class ConstructorList(ctypes.c_void_p):
+ def __init__(self, constructor_list): self._as_parameter_ = constructor_list
+ def from_param(obj): return obj
+
+class GoalObj(ctypes.c_void_p):
+ def __init__(self, goal): self._as_parameter_ = goal
+ def from_param(obj): return obj
+
+class TacticObj(ctypes.c_void_p):
+ def __init__(self, tactic): self._as_parameter_ = tactic
+ def from_param(obj): return obj
+
+class ProbeObj(ctypes.c_void_p):
+ def __init__(self, probe): self._as_parameter_ = probe
+ def from_param(obj): return obj
+
+class ApplyResultObj(ctypes.c_void_p):
+ def __init__(self, obj): self._as_parameter_ = obj
+ def from_param(obj): return obj
+
+class StatsObj(ctypes.c_void_p):
+ def __init__(self, statistics): self._as_parameter_ = statistics
+ def from_param(obj): return obj
+
+class SolverObj(ctypes.c_void_p):
+ def __init__(self, solver): self._as_parameter_ = solver
+ def from_param(obj): return obj
+
+class FixedpointObj(ctypes.c_void_p):
+ def __init__(self, fixedpoint): self._as_parameter_ = fixedpoint
+ def from_param(obj): return obj
+
+class OptimizeObj(ctypes.c_void_p):
+ def __init__(self, optimize): self._as_parameter_ = optimize
+ def from_param(obj): return obj
+
+class ModelObj(ctypes.c_void_p):
+ def __init__(self, model): self._as_parameter_ = model
+ def from_param(obj): return obj
+
+class AstVectorObj(ctypes.c_void_p):
+ def __init__(self, vector): self._as_parameter_ = vector
+ def from_param(obj): return obj
+
+class AstMapObj(ctypes.c_void_p):
+ def __init__(self, ast_map): self._as_parameter_ = ast_map
+ def from_param(obj): return obj
+
+class Params(ctypes.c_void_p):
+ def __init__(self, params): self._as_parameter_ = params
+ def from_param(obj): return obj
+
+class ParamDescrs(ctypes.c_void_p):
+ def __init__(self, paramdescrs): self._as_parameter_ = paramdescrs
+ def from_param(obj): return obj
+
+class FuncInterpObj(ctypes.c_void_p):
+ def __init__(self, f): self._as_parameter_ = f
+ def from_param(obj): return obj
+
+class FuncEntryObj(ctypes.c_void_p):
+ def __init__(self, e): self._as_parameter_ = e
+ def from_param(obj): return obj
+
+class RCFNumObj(ctypes.c_void_p):
+ def __init__(self, e): self._as_parameter_ = e
+ def from_param(obj): return obj
diff --git a/rba.tool.core/lib32/z3/python/z3/z3types.pyc b/rba.tool.core/lib32/z3/python/z3/z3types.pyc
new file mode 100644
index 0000000..3dfec40
--- /dev/null
+++ b/rba.tool.core/lib32/z3/python/z3/z3types.pyc
Binary files differ
diff --git a/rba.tool.core/lib32/z3/python/z3/z3util.py b/rba.tool.core/lib32/z3/python/z3/z3util.py
new file mode 100644
index 0000000..fe7e76b
--- /dev/null
+++ b/rba.tool.core/lib32/z3/python/z3/z3util.py
@@ -0,0 +1,508 @@
+############################################
+# Copyright (c) 2012 Microsoft Corporation
+#
+# Z3 Python interface
+#
+# Authors: Leonardo de Moura (leonardo)
+# ThanhVu (Vu) Nguyen <tnguyen@cs.unm.edu>
+############################################
+"""
+Usage:
+import common_z3 as CM_Z3
+"""
+
+from .z3 import *
+
+def vset(seq, idfun=None, as_list=True):
+ # This functions preserves the order of arguments while removing duplicates.
+ # This function is from https://code.google.com/p/common-python-vu/source/browse/vu_common.py
+ # (Thanhu's personal code). It has been copied here to avoid a dependency on vu_common.py.
+ """
+ order preserving
+
+ >>> vset([[11,2],1, [10,['9',1]],2, 1, [11,2],[3,3],[10,99],1,[10,['9',1]]],idfun=repr)
+ [[11, 2], 1, [10, ['9', 1]], 2, [3, 3], [10, 99]]
+ """
+
+ def _uniq_normal(seq):
+ d_ = {}
+ for s in seq:
+ if s not in d_:
+ d_[s] = None
+ yield s
+
+ def _uniq_idfun(seq,idfun):
+ d_ = {}
+ for s in seq:
+ h_ = idfun(s)
+ if h_ not in d_:
+ d_[h_] = None
+ yield s
+
+ if idfun is None:
+ res = _uniq_normal(seq)
+ else:
+ res = _uniq_idfun(seq,idfun)
+
+ return list(res) if as_list else res
+
+
+def get_z3_version(as_str=False):
+ major = ctypes.c_uint(0)
+ minor = ctypes.c_uint(0)
+ build = ctypes.c_uint(0)
+ rev = ctypes.c_uint(0)
+ Z3_get_version(major,minor,build,rev)
+ rs = map(int,(major.value,minor.value,build.value,rev.value))
+ if as_str:
+ return "{}.{}.{}.{}".format(*rs)
+ else:
+ return rs
+
+
+def ehash(v):
+ """
+ Returns a 'stronger' hash value than the default hash() method.
+ The result from hash() is not enough to distinguish between 2
+ z3 expressions in some cases.
+
+ Note: the following doctests will fail with Python 2.x as the
+ default formatting doesn't match that of 3.x.
+ >>> x1 = Bool('x'); x2 = Bool('x'); x3 = Int('x')
+ >>> print(x1.hash(),x2.hash(),x3.hash()) #BAD: all same hash values
+ 783810685 783810685 783810685
+ >>> print(ehash(x1), ehash(x2), ehash(x3))
+ x_783810685_1 x_783810685_1 x_783810685_2
+
+ """
+ if __debug__:
+ assert is_expr(v)
+
+ return "{}_{}_{}".format(str(v),v.hash(),v.sort_kind())
+
+
+"""
+In Z3, variables are called *uninterpreted* consts and
+variables are *interpreted* consts.
+"""
+
+def is_expr_var(v):
+ """
+ EXAMPLES:
+
+ >>> is_expr_var(Int('7'))
+ True
+ >>> is_expr_var(IntVal('7'))
+ False
+ >>> is_expr_var(Bool('y'))
+ True
+ >>> is_expr_var(Int('x') + 7 == Int('y'))
+ False
+ >>> LOnOff, (On,Off) = EnumSort("LOnOff",['On','Off'])
+ >>> Block,Reset,SafetyInjection=Consts("Block Reset SafetyInjection",LOnOff)
+ >>> is_expr_var(LOnOff)
+ False
+ >>> is_expr_var(On)
+ False
+ >>> is_expr_var(Block)
+ True
+ >>> is_expr_var(SafetyInjection)
+ True
+ """
+
+ return is_const(v) and v.decl().kind()==Z3_OP_UNINTERPRETED
+
+def is_expr_val(v):
+ """
+ EXAMPLES:
+
+ >>> is_expr_val(Int('7'))
+ False
+ >>> is_expr_val(IntVal('7'))
+ True
+ >>> is_expr_val(Bool('y'))
+ False
+ >>> is_expr_val(Int('x') + 7 == Int('y'))
+ False
+ >>> LOnOff, (On,Off) = EnumSort("LOnOff",['On','Off'])
+ >>> Block,Reset,SafetyInjection=Consts("Block Reset SafetyInjection",LOnOff)
+ >>> is_expr_val(LOnOff)
+ False
+ >>> is_expr_val(On)
+ True
+ >>> is_expr_val(Block)
+ False
+ >>> is_expr_val(SafetyInjection)
+ False
+ """
+ return is_const(v) and v.decl().kind()!=Z3_OP_UNINTERPRETED
+
+
+
+
+def get_vars(f,rs=[]):
+ """
+ >>> x,y = Ints('x y')
+ >>> a,b = Bools('a b')
+ >>> get_vars(Implies(And(x+y==0,x*2==10),Or(a,Implies(a,b==False))))
+ [x, y, a, b]
+
+ """
+ if __debug__:
+ assert is_expr(f)
+
+ if is_const(f):
+ if is_expr_val(f):
+ return rs
+ else: #variable
+ return vset(rs + [f],str)
+
+ else:
+ for f_ in f.children():
+ rs = get_vars(f_,rs)
+
+ return vset(rs,str)
+
+
+
+def mk_var(name,vsort):
+ if vsort.kind() == Z3_INT_SORT:
+ v = Int(name)
+ elif vsort.kind() == Z3_REAL_SORT:
+ v = Real(name)
+ elif vsort.kind() == Z3_BOOL_SORT:
+ v = Bool(name)
+ elif vsort.kind() == Z3_DATATYPE_SORT:
+ v = Const(name,vsort)
+
+ else:
+ assert False, 'Cannot handle this sort (s: %sid: %d)'\
+ %(vsort,vsort.kind())
+
+ return v
+
+
+
+def prove(claim,assume=None,verbose=0):
+ """
+ >>> r,m = prove(BoolVal(True),verbose=0); r,model_str(m,as_str=False)
+ (True, None)
+
+ #infinite counter example when proving contradiction
+ >>> r,m = prove(BoolVal(False)); r,model_str(m,as_str=False)
+ (False, [])
+
+ >>> x,y,z=Bools('x y z')
+ >>> r,m = prove(And(x,Not(x))); r,model_str(m,as_str=True)
+ (False, '[]')
+
+ >>> r,m = prove(True,assume=And(x,Not(x)),verbose=0)
+ Traceback (most recent call last):
+ ...
+ AssertionError: Assumption is alway False!
+
+ >>> r,m = prove(Implies(x,x),assume=y,verbose=2); r,model_str(m,as_str=False)
+ assume:
+ y
+ claim:
+ Implies(x, x)
+ to_prove:
+ Implies(y, Implies(x, x))
+ (True, None)
+
+ >>> r,m = prove(And(x,True),assume=y,verbose=0); r,model_str(m,as_str=False)
+ (False, [(x, False), (y, True)])
+
+ >>> r,m = prove(And(x,y),assume=y,verbose=0)
+ >>> print(r)
+ False
+ >>> print(model_str(m,as_str=True))
+ x = False
+ y = True
+
+ >>> a,b = Ints('a b')
+ >>> r,m = prove(a**b == b**a,assume=None,verbose=0)
+ E: cannot solve !
+ >>> r is None and m is None
+ True
+
+ """
+
+ if __debug__:
+ assert not assume or is_expr(assume)
+
+
+ to_prove = claim
+ if assume:
+ if __debug__:
+ is_proved,_ = prove(Not(assume))
+
+ def _f():
+ emsg = "Assumption is alway False!"
+ if verbose >= 2:
+ emsg = "{}\n{}".format(assume,emsg)
+ return emsg
+
+ assert is_proved==False, _f()
+
+ to_prove = Implies(assume,to_prove)
+
+
+
+ if verbose >= 2:
+ print('assume: ')
+ print(assume)
+ print('claim: ')
+ print(claim)
+ print('to_prove: ')
+ print(to_prove)
+
+ f = Not(to_prove)
+
+ models = get_models(f,k=1)
+ if models is None: #unknown
+ print('E: cannot solve !')
+ return None, None
+ elif models == False: #unsat
+ return True,None
+ else: #sat
+ if __debug__:
+ assert isinstance(models,list)
+
+ if models:
+ return False, models[0] #the first counterexample
+ else:
+ return False, [] #infinite counterexample,models
+
+
+def get_models(f,k):
+ """
+ Returns the first k models satisfiying f.
+ If f is not satisfiable, returns False.
+ If f cannot be solved, returns None
+ If f is satisfiable, returns the first k models
+ Note that if f is a tautology, e.g.\ True, then the result is []
+
+ Based on http://stackoverflow.com/questions/11867611/z3py-checking-all-solutions-for-equation
+
+ EXAMPLES:
+ >>> x, y = Ints('x y')
+ >>> len(get_models(And(0<=x,x <= 4),k=11))
+ 5
+ >>> get_models(And(0<=x**y,x <= 1),k=2) is None
+ True
+ >>> get_models(And(0<=x,x <= -1),k=2)
+ False
+ >>> len(get_models(x+y==7,5))
+ 5
+ >>> len(get_models(And(x<=5,x>=1),7))
+ 5
+ >>> get_models(And(x<=0,x>=5),7)
+ False
+
+ >>> x = Bool('x')
+ >>> get_models(And(x,Not(x)),k=1)
+ False
+ >>> get_models(Implies(x,x),k=1)
+ []
+ >>> get_models(BoolVal(True),k=1)
+ []
+
+
+
+ """
+
+ if __debug__:
+ assert is_expr(f)
+ assert k>=1
+
+
+
+ s = Solver()
+ s.add(f)
+
+ models = []
+ i = 0
+ while s.check() == sat and i < k:
+ i = i + 1
+
+ m = s.model()
+
+ if not m: #if m == []
+ break
+
+ models.append(m)
+
+
+ #create new constraint to block the current model
+ block = Not(And([v() == m[v] for v in m]))
+ s.add(block)
+
+
+ if s.check() == unknown:
+ return None
+ elif s.check() == unsat and i==0:
+ return False
+ else:
+ return models
+
+def is_tautology(claim,verbose=0):
+ """
+ >>> is_tautology(Implies(Bool('x'),Bool('x')))
+ True
+
+ >>> is_tautology(Implies(Bool('x'),Bool('y')))
+ False
+
+ >>> is_tautology(BoolVal(True))
+ True
+
+ >>> is_tautology(BoolVal(False))
+ False
+
+ """
+ return prove(claim=claim,assume=None,verbose=verbose)[0]
+
+
+def is_contradiction(claim,verbose=0):
+ """
+ >>> x,y=Bools('x y')
+ >>> is_contradiction(BoolVal(False))
+ True
+
+ >>> is_contradiction(BoolVal(True))
+ False
+
+ >>> is_contradiction(x)
+ False
+
+ >>> is_contradiction(Implies(x,y))
+ False
+
+ >>> is_contradiction(Implies(x,x))
+ False
+
+ >>> is_contradiction(And(x,Not(x)))
+ True
+ """
+
+ return prove(claim=Not(claim),assume=None,verbose=verbose)[0]
+
+
+def exact_one_model(f):
+ """
+ return True if f has exactly 1 model, False otherwise.
+
+ EXAMPLES:
+
+ >>> x, y = Ints('x y')
+ >>> exact_one_model(And(0<=x**y,x <= 0))
+ False
+
+ >>> exact_one_model(And(0<=x,x <= 0))
+ True
+
+ >>> exact_one_model(And(0<=x,x <= 1))
+ False
+
+ >>> exact_one_model(And(0<=x,x <= -1))
+ False
+ """
+
+ models = get_models(f,k=2)
+ if isinstance(models,list):
+ return len(models)==1
+ else:
+ return False
+
+
+
+def myBinOp(op,*L):
+ """
+ >>> myAnd(*[Bool('x'),Bool('y')])
+ And(x, y)
+
+ >>> myAnd(*[Bool('x'),None])
+ x
+
+ >>> myAnd(*[Bool('x')])
+ x
+
+ >>> myAnd(*[])
+
+ >>> myAnd(Bool('x'),Bool('y'))
+ And(x, y)
+
+ >>> myAnd(*[Bool('x'),Bool('y')])
+ And(x, y)
+
+ >>> myAnd([Bool('x'),Bool('y')])
+ And(x, y)
+
+ >>> myAnd((Bool('x'),Bool('y')))
+ And(x, y)
+
+ >>> myAnd(*[Bool('x'),Bool('y'),True])
+ Traceback (most recent call last):
+ ...
+ AssertionError
+ """
+
+ if __debug__:
+ assert op == Z3_OP_OR or op == Z3_OP_AND or op == Z3_OP_IMPLIES
+
+ if len(L)==1 and (isinstance(L[0],list) or isinstance(L[0],tuple)):
+ L = L[0]
+
+ if __debug__:
+ assert all(not isinstance(l,bool) for l in L)
+
+ L = [l for l in L if is_expr(l)]
+ if L:
+ if len(L)==1:
+ return L[0]
+ else:
+ if op == Z3_OP_OR:
+ return Or(L)
+ elif op == Z3_OP_AND:
+ return And(L)
+ else: #IMPLIES
+ return Implies(L[0],L[1])
+ else:
+ return None
+
+
+def myAnd(*L): return myBinOp(Z3_OP_AND,*L)
+def myOr(*L): return myBinOp(Z3_OP_OR,*L)
+def myImplies(a,b):return myBinOp(Z3_OP_IMPLIES,[a,b])
+
+
+
+Iff = lambda f: And(Implies(f[0],f[1]),Implies(f[1],f[0]))
+
+
+
+def model_str(m,as_str=True):
+ """
+ Returned a 'sorted' model (so that it's easier to see)
+ The model is sorted by its key,
+ e.g. if the model is y = 3 , x = 10, then the result is
+ x = 10, y = 3
+
+ EXAMPLES:
+ see doctest exampels from function prove()
+
+ """
+ if __debug__:
+ assert m is None or m == [] or isinstance(m,ModelRef)
+
+ if m :
+ vs = [(v,m[v]) for v in m]
+ vs = sorted(vs,key=lambda a,_: str(a))
+ if as_str:
+ return '\n'.join(['{} = {}'.format(k,v) for (k,v) in vs])
+ else:
+ return vs
+ else:
+ return str(m) if as_str else m
+
diff --git a/rba.tool.core/lib32/z3/python/z3/z3util.pyc b/rba.tool.core/lib32/z3/python/z3/z3util.pyc
new file mode 100644
index 0000000..99ac672
--- /dev/null
+++ b/rba.tool.core/lib32/z3/python/z3/z3util.pyc
Binary files differ
diff --git a/rba.tool.core/lib32/z3/vcomp110.dll b/rba.tool.core/lib32/z3/vcomp110.dll
new file mode 100644
index 0000000..d4c56c3
--- /dev/null
+++ b/rba.tool.core/lib32/z3/vcomp110.dll
Binary files differ
diff --git a/rba.tool.core/lib32/z3/z3.exe b/rba.tool.core/lib32/z3/z3.exe
new file mode 100644
index 0000000..02381cb
--- /dev/null
+++ b/rba.tool.core/lib32/z3/z3.exe
Binary files differ
diff --git a/rba.tool.core/plugin.properties b/rba.tool.core/plugin.properties
new file mode 100644
index 0000000..5c4157b
--- /dev/null
+++ b/rba.tool.core/plugin.properties
@@ -0,0 +1,2 @@
+pluginName=RBA Tool Core
+providerName=DENSO CORPORATION
diff --git a/rba.tool.core/plugin.xml b/rba.tool.core/plugin.xml
new file mode 100644
index 0000000..ede2b96
--- /dev/null
+++ b/rba.tool.core/plugin.xml
@@ -0,0 +1,173 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.ui.views">
+ <category
+ id="rba.tool.core"
+ name="RBA Tool Simulation">
+ </category>
+ <category
+ id="rba.tool.core.category.edit"
+ name="RBA Tool Edit">
+ </category>
+ <category
+ id="rba.tool.core.category.test"
+ name="RBA Tool Test">
+ </category>
+ </extension>
+ <extension
+ id="rba.tool.core.sort"
+ name="RBA Tool"
+ point="org.eclipse.core.resources.markers">
+ <super type="org.eclipse.core.resources.problemmarker"/>
+ <super type="org.eclipse.core.resources.textmarker"/>
+ <persistent
+ value="true">
+ </persistent>
+ </extension>
+ <extension
+ id="rba.tool.core.constraint"
+ name="RBA Tool"
+ point="org.eclipse.core.resources.markers">
+ <super
+ type="org.eclipse.core.resources.problemmarker"/>
+ <super type="org.eclipse.core.resources.textmarker"/>
+ <persistent
+ value="true">
+ </persistent>
+ </extension>
+ <extension
+ id="rba.tool.core.model.ex"
+ name="RBA Tool"
+ point="org.eclipse.core.resources.markers">
+ <super
+ type="org.eclipse.core.resources.problemmarker"/>
+ <super type="org.eclipse.core.resources.textmarker"/>
+ <persistent
+ value="true">
+ </persistent>
+ </extension>
+ <extension
+ point="org.eclipse.ui.menus">
+ <menuContribution
+ allPopups="false"
+ locationURI="toolbar:org.eclipse.ui.main.toobar?after=additions">
+ <toolbar
+ id="rba.tool.core.toolbar">
+ </toolbar>
+ </menuContribution>
+ </extension>
+ <extension
+ point="org.eclipse.ui.menus">
+ <menuContribution
+ allPopups="false"
+ locationURI="popup:org.eclipse.ui.navigator.ProjectExplorer#PopupMenu?before=additions">
+ <menu icon="icons/rba.gif" label="RBATool">
+ <command
+ commandId="rba.tool.verification.verificationCommand"
+ id="rba.tool.verification.verificationCommand"
+ label="Verify Constraints"
+ style="push">
+ <visibleWhen checkEnabled="true">
+ <reference definitionId="rba.tool.core.isResource"></reference>
+ </visibleWhen>
+ </command>
+ <command
+ commandId="rba.tool.coverage.tclogGeneration.runCommand"
+ label="Run RBATest">
+ <visibleWhen checkEnabled="true">
+ <reference definitionId="rba.tool.core.isMultiSelect"></reference>
+ </visibleWhen>
+ </command>
+ <command
+ commandId="rba.tool.coverage.calculator.calculateCoverageCommand"
+ label="Calculate Coverage">
+ <visibleWhen checkEnabled="true">
+ <reference definitionId="rba.tool.core.isTestRev"></reference>
+ </visibleWhen>
+ </command>
+ <command
+ commandId="rba.tool.coverage.ui.showTestResultCommand"
+ style="push">
+ <visibleWhen checkEnabled="true">
+ <reference definitionId="rba.tool.core.isTestRev"></reference>
+ </visibleWhen>
+ </command>
+ </menu>
+ </menuContribution>
+ </extension>
+ <extension
+ point="org.eclipse.core.expressions.propertyTesters">
+ <propertyTester
+ class="rba.tool.core.util.SelectionTester"
+ id="rba.tool.core.util.SelectionTester"
+ namespace="rba.tool"
+ properties="IsTestRev,IsResource,IsMultiSelect,IsTestCompare"
+ type="java.lang.Object">
+ </propertyTester>
+ </extension>
+ <extension
+ point="org.eclipse.core.expressions.definitions">
+ <definition
+ id="rba.tool.core.isTestRev">
+ <with
+ variable="activeMenuSelection">
+ <iterate
+ ifEmpty="false">
+ <adapt
+ type="org.eclipse.core.resources.IResource">
+ <test
+ forcePluginActivation="true"
+ property="rba.tool.IsTestRev"
+ value="true">
+ </test>
+ </adapt>
+ </iterate>
+ <count
+ value="1">
+ </count>
+ </with>
+ </definition>
+ <definition
+ id="rba.tool.core.isResource">
+ <with
+ variable="activeMenuSelection">
+ <iterate
+ ifEmpty="false">
+ <adapt
+ type="org.eclipse.core.resources.IResource">
+ <test
+ forcePluginActivation="true"
+ property="rba.tool.IsResource"
+ value="true">
+ </test>
+ </adapt>
+ </iterate>
+ <count
+ value="1">
+ </count>
+ </with>
+ </definition>
+ <definition
+ id="rba.tool.core.isMultiSelect">
+ <with
+ variable="activeMenuSelection">
+ <iterate
+ ifEmpty="false">
+ <adapt
+ type="org.eclipse.core.resources.IResource">
+ <test
+ forcePluginActivation="true"
+ property="rba.tool.IsMultiSelect"
+ value="true">
+ </test>
+ </adapt>
+ </iterate>
+ <count
+ value="+">
+ </count>
+ </with>
+ </definition>
+ </extension>
+</plugin>
diff --git a/rba.tool.core/src/rba/tool/core/Activator.java b/rba.tool.core/src/rba/tool/core/Activator.java
new file mode 100644
index 0000000..e316252
--- /dev/null
+++ b/rba.tool.core/src/rba/tool/core/Activator.java
@@ -0,0 +1,49 @@
+package rba.tool.core;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "rba.tool.core"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/rba.tool.core/src/rba/tool/core/console/ConsoleManager.java b/rba.tool.core/src/rba/tool/core/console/ConsoleManager.java
new file mode 100644
index 0000000..823d3dd
--- /dev/null
+++ b/rba.tool.core/src/rba/tool/core/console/ConsoleManager.java
@@ -0,0 +1,96 @@
+package rba.tool.core.console;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.ui.console.ConsolePlugin;
+import org.eclipse.ui.console.MessageConsole;
+import org.eclipse.ui.console.MessageConsoleStream;
+
+public class ConsoleManager implements IConsoleManager {
+
+ public static ConsoleManager INSTANCE = new ConsoleManager();
+
+ org.eclipse.ui.console.IConsoleManager consoleManager;
+
+ MessageConsole console;
+
+ MessageConsoleStream consoleStream;
+
+ MessageConsoleStream consoleWarnStream;
+
+ String title = "RBA Tool Console";
+
+ Map<String, List<IConsoleHook>> hook_notifierIdMap = new HashMap<String, List<IConsoleHook>>();
+
+ private ConsoleManager() {
+ consoleManager = ConsolePlugin.getDefault().getConsoleManager();
+ console = new MessageConsole(title, null);
+ consoleManager.addConsoles(new MessageConsole[] { console });
+
+ consoleStream = console.newMessageStream();
+
+ consoleWarnStream = console.newMessageStream();
+ consoleWarnStream.setColor(new Color(null, 255, 0, 0)); // red
+ consoleWarnStream.setFontStyle(SWT.BOLD);
+ }
+
+ public void clearConsole() {
+ console.clearConsole();
+ }
+
+ @Override
+ public void output(String message, String notifierId) {
+ preNotify(message, notifierId);
+ // original output message
+ consoleManager.showConsoleView(console);
+ consoleStream.println(message);
+ postNotify(message, notifierId);
+ }
+
+ @Override
+ public void warning(String message, String notifierId) {
+ preNotify(message, notifierId);
+ // original warning message
+ consoleManager.showConsoleView(console);
+ consoleWarnStream.println(message);
+ postNotify(message, notifierId);
+ }
+
+ @Override
+ public void addHook(IConsoleHook hook, String targetNotifierId) {
+ List<IConsoleHook> hookList = hook_notifierIdMap.get(targetNotifierId);
+ if (hookList == null) {
+ hookList = new ArrayList<IConsoleHook>();
+ hook_notifierIdMap.put(targetNotifierId, hookList);
+ }
+ hookList.add(hook);
+ }
+
+ @Override
+ public void removeHook(IConsoleHook hook, String targetNotifierId) {
+ List<IConsoleHook> hookList = hook_notifierIdMap.get(targetNotifierId);
+ if (hookList == null) {
+ return;
+ }
+ hookList.remove(hook);
+ }
+
+ public void preNotify(String message, String notifierId) {
+ List<IConsoleHook> hookList = hook_notifierIdMap.get(notifierId);
+ if (hookList != null && !hookList.isEmpty()) {
+ hookList.forEach(hook -> hook.preNotify(message, notifierId));
+ }
+ }
+
+ public void postNotify(String message, String notifierId) {
+ List<IConsoleHook> hookList = hook_notifierIdMap.get(notifierId);
+ if (hookList != null && !hookList.isEmpty()) {
+ hookList.forEach(hook -> hook.postNotify(message, notifierId));
+ }
+ }
+}
diff --git a/rba.tool.core/src/rba/tool/core/console/IConsoleHook.java b/rba.tool.core/src/rba/tool/core/console/IConsoleHook.java
new file mode 100644
index 0000000..8fbbd12
--- /dev/null
+++ b/rba.tool.core/src/rba/tool/core/console/IConsoleHook.java
@@ -0,0 +1,8 @@
+package rba.tool.core.console;
+
+public interface IConsoleHook {
+
+ void preNotify(String message, String notifierId);
+
+ void postNotify(String message, String notifierId);
+}
diff --git a/rba.tool.core/src/rba/tool/core/console/IConsoleManager.java b/rba.tool.core/src/rba/tool/core/console/IConsoleManager.java
new file mode 100644
index 0000000..821e6f9
--- /dev/null
+++ b/rba.tool.core/src/rba/tool/core/console/IConsoleManager.java
@@ -0,0 +1,14 @@
+package rba.tool.core.console;
+
+public interface IConsoleManager {
+
+ void output(String message, String notifierId);
+
+ void clearConsole();
+
+ void warning(String message, String notifierId);
+
+ void addHook(IConsoleHook hook, String targetNotifierId);
+
+ void removeHook(IConsoleHook hook, String targetNotifierId);
+}
diff --git a/rba.tool.core/src/rba/tool/core/constraint/IConstraintCalculation.java b/rba.tool.core/src/rba/tool/core/constraint/IConstraintCalculation.java
new file mode 100644
index 0000000..5066767
--- /dev/null
+++ b/rba.tool.core/src/rba/tool/core/constraint/IConstraintCalculation.java
@@ -0,0 +1,14 @@
+package rba.tool.core.constraint;
+
+import java.util.List;
+import java.util.Map;
+
+public interface IConstraintCalculation {
+ List<String> calculateAllConstraint();
+
+ Map<String, List<String>> calculateImpliesConstraints();
+
+ void setUp(boolean onlyOnline);
+
+ void close();
+}
diff --git a/rba.tool.core/src/rba/tool/core/marker/MarkerManager.java b/rba.tool.core/src/rba/tool/core/marker/MarkerManager.java
new file mode 100644
index 0000000..b04809f
--- /dev/null
+++ b/rba.tool.core/src/rba/tool/core/marker/MarkerManager.java
@@ -0,0 +1,142 @@
+package rba.tool.core.marker;
+
+import java.net.URI;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.workspace.util.WorkspaceSynchronizer;
+import org.eclipse.xtext.resource.ILocationInFileProvider;
+import org.eclipse.xtext.util.TextRegionWithLineInformation;
+
+import com.google.inject.Injector;
+
+import rba.tool.editor.ui.activator.ExtensionEditorActivator;
+import rba.tool.editor.util.RBAModelEditorNameUtil;
+
+public class MarkerManager {
+ public static MarkerManager INSTANCE = new MarkerManager();
+
+ public static String MARKER_ID_MODEL_EX = "rba.tool.core.model.ex"; //$NON-NLS-1$
+
+ public static String MARKER_ID_SORT_VALUE = "rba.tool.core.sort"; //$NON-NLS-1$
+
+ public static String MARKER_ID_CONSTRAINT = "rba.tool.core.constraint"; //$NON-NLS-1$
+
+ public void createMarker(EObject element, String message, int errorLevel, String id) {
+ Resource resource = element.eResource();
+ IFile file = WorkspaceSynchronizer.getFile(resource);
+
+ if (existInBuildFolder(file.getParent())) {
+ IFolder fol = file.getProject().getFolder(RBAModelEditorNameUtil.MODEL_FOLDER_NAME);
+ String path = getPath(file.getParent(), "");
+ if (!path.equals("")) {
+ file = fol.getFile(path + "//" + file.getName());
+ } else {
+ file = fol.getFile(file.getName());
+ }
+ }
+ if (file != null && file.exists()) {
+ String location = file.getFullPath().toString();
+
+ Injector injector = ExtensionEditorActivator.getInstance().getInjector("rba.tool.editor.RBAModel");
+ ILocationInFileProvider locationInFileProvider = injector.getInstance(ILocationInFileProvider.class);
+
+ TextRegionWithLineInformation fullTextRegion = (TextRegionWithLineInformation) locationInFileProvider.getFullTextRegion(element);
+ int lineNumber = fullTextRegion.getLineNumber() + 1;
+
+ Map<String, Object> attributes = new HashMap<String, Object>();
+ attributes.put(IMarker.LINE_NUMBER, lineNumber);
+
+ attributes.put(IMarker.SEVERITY, errorLevel);
+ attributes.put(IMarker.MESSAGE, message);
+ attributes.put(IMarker.LOCATION, location);
+
+ try {
+ IMarker marker = file.createMarker(id);
+ marker.setAttributes(attributes);
+ } catch (CoreException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ public void clearMarkers(Resource resource, String id) {
+ IFile ifile = WorkspaceSynchronizer.getFile(resource);
+ if (ifile == null) {
+ return;
+ }
+ if (existInBuildFolder(ifile.getParent())) {
+ IFolder fol = ifile.getProject().getFolder(RBAModelEditorNameUtil.MODEL_FOLDER_NAME);
+ String path = getPath(ifile.getParent(), "");
+ if (!path.equals("")) {
+ ifile = fol.getFile(path + "//" + ifile.getName());
+ } else {
+ ifile = fol.getFile(ifile.getName());
+ }
+ }
+ if (ifile != null && ifile.exists()) {
+ try {
+ for (IMarker marker : ResourcesPlugin.getWorkspace().getRoot().findMarkers(id, true, IResource.DEPTH_INFINITE)) {
+ if (ifile.equals(marker.getResource())) {
+ marker.delete();
+ }
+ }
+ } catch (CoreException e) {
+ throw new RuntimeException(e);
+ }
+ }
+ }
+
+ public void clearMarkers(IProject project, String id) {
+
+ try {
+ for (IMarker marker : ResourcesPlugin.getWorkspace().getRoot().findMarkers(id, true, IResource.DEPTH_INFINITE)) {
+
+ IResource resource = marker.getResource();
+ if (project == resource.getProject()) {
+ marker.delete();
+ }
+ }
+ } catch (CoreException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ private boolean existInBuildFolder(IResource res) {
+ if (res instanceof IFolder) {
+ if (res.getName().equals(RBAModelEditorNameUtil.BUILD_FOLDER_NAME)) {
+ return true;
+ } else {
+ return existInBuildFolder(res.getParent());
+ }
+ }
+ return false;
+ }
+
+ private String getPath(IResource res, String path) {
+ if (res instanceof IFolder) {
+ if (res.getName().equals(RBAModelEditorNameUtil.BUILD_FOLDER_NAME)) {
+ return path;
+ } else {
+ String p;
+ if (!path.equals("")) {
+ p = res.getName() + "//" + path;
+ } else {
+ p = res.getName();
+ }
+ return getPath(res.getParent(), p);
+ }
+ }
+ return "";
+ }
+}
diff --git a/rba.tool.core/src/rba/tool/core/sort/ComparisonAndEvaluator.java b/rba.tool.core/src/rba/tool/core/sort/ComparisonAndEvaluator.java
new file mode 100644
index 0000000..5a4b1b2
--- /dev/null
+++ b/rba.tool.core/src/rba/tool/core/sort/ComparisonAndEvaluator.java
@@ -0,0 +1,49 @@
+package rba.tool.core.sort;
+
+import org.eclipse.emf.common.util.EList;
+
+import rba.core.ComparisonAnd;
+import rba.core.ComparisonOperator;
+import rba.core.Expression;
+import rba.core.GreaterThanOperator;
+import rba.core.LetStatement;
+import rba.core.MuchGreaterThanOperator;
+import rba.core.RuleObject;
+
+public class ComparisonAndEvaluator<T extends RuleObject> extends ComparisonOperatorEvaluator<T> implements ComparisonAnd {
+
+ public ComparisonAndEvaluator(ComparisonAnd o) {
+ super(o);
+ }
+
+ @Override
+ public boolean evaluate(ValueSortedList<T> list) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public int suggestIndex(ValueSortedList<T> list) {
+ int max = 9999;
+ int min = -1;
+
+ for (Expression operand : operator.getOperand()) {
+ if (operand instanceof GreaterThanOperator || operand instanceof MuchGreaterThanOperator) {
+ int i = list.createEvaluator((ComparisonOperator) operand).suggestIndex(list);
+ if (i > min && i >= 0) {
+ min = i;
+ }
+ } else {
+ throw new RuntimeException("Unsupported expression [" + operator.getExpression() + "]");
+ }
+ }
+ return Math.min(min, max);
+ }
+
+ @Override
+ public EList<LetStatement> getLetStatements() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
diff --git a/rba.tool.core/src/rba/tool/core/sort/ComparisonOperatorEvaluator.java b/rba.tool.core/src/rba/tool/core/sort/ComparisonOperatorEvaluator.java
new file mode 100644
index 0000000..d0bc3dd
--- /dev/null
+++ b/rba.tool.core/src/rba/tool/core/sort/ComparisonOperatorEvaluator.java
@@ -0,0 +1,49 @@
+package rba.tool.core.sort;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+import rba.core.ComparisonOperator;
+import rba.core.Expression;
+import rba.core.RuleObject;
+
+public abstract class ComparisonOperatorEvaluator<T extends RuleObject> extends ExpressionEvaluator<T> implements ComparisonOperator {
+
+ protected ComparisonOperator operator;
+
+ protected T subject;
+
+ @SuppressWarnings("unchecked")
+ protected ComparisonOperatorEvaluator(ComparisonOperator o) {
+ super(o);
+ operator = o;
+ EObject container = o.eContainer();
+ while (!(container instanceof RuleObject)) {
+ container = container.eContainer();
+ if (container == null)
+ break;
+ }
+ if (container != null) {
+ subject = (T) container;
+ }
+ }
+
+ abstract public boolean evaluate(ValueSortedList<T> list);
+
+ /**
+ * @param list
+ * @return -1 if it has no suggestion 9999 implies MAX group (last index)
+ */
+ abstract public int suggestIndex(ValueSortedList<T> list);
+
+ @Override
+ public EList<Expression> getOperand() {
+ return operator.getOperand();
+ }
+
+ @Override
+ public String getSymbol() {
+ return operator.getSymbol();
+ }
+
+}
diff --git a/rba.tool.core/src/rba/tool/core/sort/EObjectDecorator.java b/rba.tool.core/src/rba/tool/core/sort/EObjectDecorator.java
new file mode 100644
index 0000000..58aae87
--- /dev/null
+++ b/rba.tool.core/src/rba/tool/core/sort/EObjectDecorator.java
@@ -0,0 +1,118 @@
+package rba.tool.core.sort;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.resource.Resource;
+
+abstract public class EObjectDecorator implements EObject {
+ private EObject object;
+
+ protected EObjectDecorator(EObject o) {
+ object = o;
+ }
+
+ @Override
+ public EList<Adapter> eAdapters() {
+ return object.eAdapters();
+ }
+
+ @Override
+ public boolean eDeliver() {
+ return object.eDeliver();
+ }
+
+ @Override
+ public void eSetDeliver(boolean deliver) {
+ object.eSetDeliver(deliver);
+ }
+
+ @Override
+ public void eNotify(Notification notification) {
+ object.eNotify(notification);
+ }
+
+ @Override
+ public EClass eClass() {
+ return object.eClass();
+ }
+
+ @Override
+ public Resource eResource() {
+ return object.eResource();
+ }
+
+ @Override
+ public EObject eContainer() {
+ return object.eContainer();
+ }
+
+ @Override
+ public EStructuralFeature eContainingFeature() {
+ return object.eContainingFeature();
+ }
+
+ @Override
+ public EReference eContainmentFeature() {
+ return object.eContainmentFeature();
+ }
+
+ @Override
+ public EList<EObject> eContents() {
+ return object.eContents();
+ }
+
+ @Override
+ public TreeIterator<EObject> eAllContents() {
+ return object.eAllContents();
+ }
+
+ @Override
+ public boolean eIsProxy() {
+ return object.eIsProxy();
+ }
+
+ @Override
+ public EList<EObject> eCrossReferences() {
+ return object.eCrossReferences();
+ }
+
+ @Override
+ public Object eGet(EStructuralFeature feature) {
+ return object.eGet(feature);
+ }
+
+ @Override
+ public Object eGet(EStructuralFeature feature, boolean resolve) {
+ return object.eGet(feature, resolve);
+ }
+
+ @Override
+ public void eSet(EStructuralFeature feature, Object newValue) {
+ object.eSet(feature, newValue);
+ }
+
+ @Override
+ public boolean eIsSet(EStructuralFeature feature) {
+ return object.eIsSet(feature);
+ }
+
+ @Override
+ public void eUnset(EStructuralFeature feature) {
+ object.eUnset(feature);
+ }
+
+ @Override
+ public Object eInvoke(EOperation operation, EList<?> arguments) throws InvocationTargetException {
+ return object.eInvoke(operation, arguments);
+ }
+
+}
diff --git a/rba.tool.core/src/rba/tool/core/sort/EqualToOperatorEvaluator.java b/rba.tool.core/src/rba/tool/core/sort/EqualToOperatorEvaluator.java
new file mode 100644
index 0000000..81b668a
--- /dev/null
+++ b/rba.tool.core/src/rba/tool/core/sort/EqualToOperatorEvaluator.java
@@ -0,0 +1,52 @@
+package rba.tool.core.sort;
+
+import org.eclipse.emf.common.util.EList;
+
+import rba.core.ComparisonOperator;
+import rba.core.EqualToOperator;
+import rba.core.Expression;
+import rba.core.LetStatement;
+import rba.core.ObjectReference;
+import rba.core.RuleObject;
+import rba.core.ThatOfOperator;
+import rba.core.ValueExpression;
+
+public class EqualToOperatorEvaluator<T extends RuleObject> extends ComparisonOperatorEvaluator<T> implements EqualToOperator {
+
+ protected EqualToOperatorEvaluator(ComparisonOperator o) {
+ super(o);
+ }
+
+ @Override
+ public boolean evaluate(ValueSortedList<T> list) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public int suggestIndex(ValueSortedList<T> list) {
+ Expression operand = operator.getOperand().get(0);
+ if (operand instanceof ThatOfOperator) {
+ Expression target = ((ThatOfOperator) operand).getOperand().get(0);
+
+ if (target instanceof ObjectReference) {
+ @SuppressWarnings("unchecked")
+ T object = (T) ((ObjectReference) target).getRefObject();
+ return list.getGroupIndexOf(object);
+ }
+
+ } else if (operand instanceof ValueExpression) {
+ int i = list.getGroupIndexOf(((ValueExpression) operand).getExpression());
+ return i;
+ }
+
+ throw new RuntimeException("Unsupported expression [" + operator.getExpression() + "]");
+ }
+
+ @Override
+ public EList<LetStatement> getLetStatements() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
diff --git a/rba.tool.core/src/rba/tool/core/sort/ExpressionEvaluator.java b/rba.tool.core/src/rba/tool/core/sort/ExpressionEvaluator.java
new file mode 100644
index 0000000..e0ac109
--- /dev/null
+++ b/rba.tool.core/src/rba/tool/core/sort/ExpressionEvaluator.java
@@ -0,0 +1,55 @@
+package rba.tool.core.sort;
+
+import rba.core.Expression;
+import rba.core.ExpressionType;
+
+abstract public class ExpressionEvaluator<T> extends EObjectDecorator implements Expression {
+
+ private Expression expression;
+
+ protected ExpressionEvaluator(Expression o) {
+ super(o);
+ expression = o;
+ }
+
+ @Override
+ public ExpressionType getType() {
+ return expression.getType();
+ }
+
+ @Override
+ public boolean isSetType() {
+ return expression.isSetType();
+ }
+
+ @Override
+ public String getExpression() {
+ return expression.getExpression();
+ }
+
+ @Override
+ public void setExpression(String value) {
+ expression.setExpression(value);
+ }
+
+ @Override
+ public void unsetExpression() {
+ expression.unsetExpression();
+ }
+
+ @Override
+ public boolean isSetExpression() {
+ return expression.isSetExpression();
+ }
+
+ @Override
+ public String getExpressionText() {
+ return expression.getExpressionText();
+ }
+
+ @Override
+ public ExpressionType getUnderlyingType() {
+ return expression.getUnderlyingType();
+ }
+
+}
diff --git a/rba.tool.core/src/rba/tool/core/sort/GreaterThanOperatorEvaluator.java b/rba.tool.core/src/rba/tool/core/sort/GreaterThanOperatorEvaluator.java
new file mode 100644
index 0000000..686fa54
--- /dev/null
+++ b/rba.tool.core/src/rba/tool/core/sort/GreaterThanOperatorEvaluator.java
@@ -0,0 +1,64 @@
+package rba.tool.core.sort;
+
+import org.eclipse.emf.common.util.EList;
+
+import rba.core.Expression;
+import rba.core.GreaterThanOperator;
+import rba.core.LetStatement;
+import rba.core.ObjectReference;
+import rba.core.RuleObject;
+import rba.core.ThatOfOperator;
+import rba.core.ValueExpression;
+
+public class GreaterThanOperatorEvaluator<T extends RuleObject> extends ComparisonOperatorEvaluator<T> implements GreaterThanOperator {
+
+ protected GreaterThanOperatorEvaluator(GreaterThanOperator o) {
+ super(o);
+ }
+
+ @Override
+ public boolean evaluate(ValueSortedList<T> list) {
+ Expression operand = operator.getOperand().get(0);
+ if (operand instanceof ObjectReference) {
+ @SuppressWarnings("unchecked")
+ T object = (T) ((ObjectReference) operand).getRefObject();
+ return (list.getGroupIndexOf(subject) > list.getGroupIndexOf(object));
+ }
+
+ return false;
+ }
+
+ @Override
+ public int suggestIndex(ValueSortedList<T> list) {
+ Expression operand = operator.getOperand().get(0);
+ if (operand instanceof ThatOfOperator) {
+ Expression target = ((ThatOfOperator) operand).getOperand().get(0);
+
+ if (target instanceof ObjectReference) {
+ @SuppressWarnings("unchecked")
+ T object = (T) ((ObjectReference) target).getRefObject();
+ if (list.getGroupIndexOf(subject) > list.getGroupIndexOf(object)) {
+ return -1;
+ } else {
+ return list.getGroupIndexOf(object) + 1;
+ }
+ }
+
+ } else if (operand instanceof ValueExpression) {
+ int i = ((ValueExpression) operand).getExpressionValue();
+ if (list.getGroupIndexOf(subject) > i) {
+ return -1;
+ } else {
+ return i + 1;
+ }
+ }
+
+ throw new RuntimeException("Unsupported expression [" + operator.getExpression() + "]");
+ }
+
+ @Override
+ public EList<LetStatement> getLetStatements() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+}
diff --git a/rba.tool.core/src/rba/tool/core/sort/ISortValueCalculation.java b/rba.tool.core/src/rba/tool/core/sort/ISortValueCalculation.java
new file mode 100644
index 0000000..5d4a544
--- /dev/null
+++ b/rba.tool.core/src/rba/tool/core/sort/ISortValueCalculation.java
@@ -0,0 +1,15 @@
+package rba.tool.core.sort;
+
+import java.util.Map;
+
+public interface ISortValueCalculation {
+ Map<String, Integer> calculateArea_zorder();
+
+ Map<String, Integer> calculateAllocatable_visibility();
+
+ Map<String, Integer> calculateContentState_priority();
+
+ void setUp();
+
+ void close();
+}
diff --git a/rba.tool.core/src/rba/tool/core/sort/MuchGreaterThanOperatorEvaluator.java b/rba.tool.core/src/rba/tool/core/sort/MuchGreaterThanOperatorEvaluator.java
new file mode 100644
index 0000000..5eb6ade
--- /dev/null
+++ b/rba.tool.core/src/rba/tool/core/sort/MuchGreaterThanOperatorEvaluator.java
@@ -0,0 +1,67 @@
+package rba.tool.core.sort;
+
+import org.eclipse.emf.common.util.EList;
+
+import rba.core.Expression;
+import rba.core.LetStatement;
+import rba.core.MuchGreaterThanOperator;
+import rba.core.ObjectReference;
+import rba.core.RuleObject;
+import rba.core.ThatOfOperator;
+import rba.core.ValueExpression;
+
+public class MuchGreaterThanOperatorEvaluator<T extends RuleObject> extends ComparisonOperatorEvaluator<T> implements MuchGreaterThanOperator {
+
+ static int MUCH_GAP = 10;
+
+ public MuchGreaterThanOperatorEvaluator(MuchGreaterThanOperator o) {
+ super(o);
+ }
+
+ @Override
+ public boolean evaluate(ValueSortedList<T> list) {
+ Expression operand = operator.getOperand().get(0);
+ if (operand instanceof ObjectReference) {
+ @SuppressWarnings("unchecked")
+ T object = (T) ((ObjectReference) operand).getRefObject();
+ return (list.getGroupIndexOf(subject) >= list.getGroupIndexOf(object) + MUCH_GAP);
+ }
+
+ return false;
+ }
+
+ @Override
+ public int suggestIndex(ValueSortedList<T> list) {
+ Expression operand = operator.getOperand().get(0);
+ if (operand instanceof ThatOfOperator) {
+ Expression target = ((ThatOfOperator) operand).getOperand().get(0);
+
+ if (target instanceof ObjectReference) {
+ @SuppressWarnings("unchecked")
+ T object = (T) ((ObjectReference) target).getRefObject();
+ if (list.getGroupIndexOf(subject) >= list.getGroupIndexOf(object) + MUCH_GAP) {
+ return -1;
+ } else {
+ return list.getGroupIndexOf(object) + MUCH_GAP;
+ }
+ }
+
+ } else if (operand instanceof ValueExpression) {
+ int i = ((ValueExpression) operand).getExpressionValue();
+ if (list.getGroupIndexOf(subject) > i) {
+ return -1;
+ } else {
+ return i + 1;
+ }
+ }
+
+ throw new RuntimeException("Unsupported expression [" + operator.getExpression() + "]");
+ }
+
+ @Override
+ public EList<LetStatement> getLetStatements() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
diff --git a/rba.tool.core/src/rba/tool/core/sort/SortValue.java b/rba.tool.core/src/rba/tool/core/sort/SortValue.java
new file mode 100644
index 0000000..61ceaa9
--- /dev/null
+++ b/rba.tool.core/src/rba/tool/core/sort/SortValue.java
@@ -0,0 +1,45 @@
+package rba.tool.core.sort;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import rba.tool.core.z3.Z3Constants;
+
+public class SortValue {
+ private Map<String, Integer> sortMap = new HashMap<String, Integer>();
+
+ private boolean unsat = false;
+
+ public void setSortValue(Map<String, Integer> map) {
+ if (map == null) {
+ clear();
+ return;
+ }
+
+ sortMap = map;
+ Integer result = map.get(Z3Constants.TOTAL_RESULT);
+ if (result == Z3Constants.UNSAT_VAL) {
+ unsat = true;
+ }
+ }
+
+ public boolean isUnsat() {
+ return unsat;
+ }
+
+ public Integer getValue(String name) {
+ if (!sortMap.isEmpty()) {
+ Integer integer = sortMap.get(name);
+ if (integer != null) {
+ return integer;
+ }
+ }
+
+ return Z3Constants.UNKNOWN_VAL;
+ }
+
+ public void clear() {
+ sortMap.clear();
+ unsat = false;
+ }
+}
diff --git a/rba.tool.core/src/rba/tool/core/sort/SortValueManager.java b/rba.tool.core/src/rba/tool/core/sort/SortValueManager.java
new file mode 100644
index 0000000..17fbb37
--- /dev/null
+++ b/rba.tool.core/src/rba/tool/core/sort/SortValueManager.java
@@ -0,0 +1,56 @@
+package rba.tool.core.sort;
+
+import org.eclipse.core.resources.IProject;
+
+import rba.tool.core.console.ConsoleManager;
+import rba.tool.core.z3.Z3CodeManager;
+
+public class SortValueManager {
+
+ public static SortValueManager INSTANCE = new SortValueManager();
+
+ private static final String CONSOLE_TITLE = "#### Execution of Constraint ####";
+
+ private SortValue areaZorderSortValue = new SortValue();
+
+ private SortValue visibilitySortValue = new SortValue();;
+
+ private SortValue csPrioritySortValue = new SortValue();;
+
+ private static final String NOTIFIER_ID = "rba.tool.core.CalculateSortValue";
+
+ public boolean updateSortValue(IProject project) {
+
+ try {
+ ISortValueCalculation calc = Z3CodeManager.INSTNACE.getSortCaluculator(project);
+ calc.setUp();
+ areaZorderSortValue.setSortValue(calc.calculateArea_zorder());
+ visibilitySortValue.setSortValue(calc.calculateAllocatable_visibility());
+ csPrioritySortValue.setSortValue(calc.calculateContentState_priority());
+ calc.close();
+
+ } catch (RuntimeException e) {
+ ConsoleManager.INSTANCE.output(CONSOLE_TITLE, NOTIFIER_ID);
+ ConsoleManager.INSTANCE.output(e.getMessage(), NOTIFIER_ID);
+ ConsoleManager.INSTANCE.output("##################", NOTIFIER_ID);
+
+ areaZorderSortValue.clear();
+ visibilitySortValue.clear();
+ csPrioritySortValue.clear();
+ return false;
+ }
+ return true;
+ }
+
+ public SortValue getAreaZorderSortValue() {
+ return areaZorderSortValue;
+ }
+
+ public SortValue getAllocatableVisibilitySortValue() {
+ return visibilitySortValue;
+ }
+
+ public SortValue getCsPrioritySortValue() {
+ return csPrioritySortValue;
+ }
+}
diff --git a/rba.tool.core/src/rba/tool/core/sort/ValueGroup.java b/rba.tool.core/src/rba/tool/core/sort/ValueGroup.java
new file mode 100644
index 0000000..86c8e63
--- /dev/null
+++ b/rba.tool.core/src/rba/tool/core/sort/ValueGroup.java
@@ -0,0 +1,35 @@
+package rba.tool.core.sort;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+public class ValueGroup<T> {
+ private String name;
+
+ private Collection<T> member;
+
+ public ValueGroup(String name) {
+ this.name = name;
+ member = new ArrayList<T>();
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void add(T e) {
+ member.add(e);
+ }
+
+ public void remove(T e) {
+ member.remove(e);
+ }
+
+ public Collection<T> getMember() {
+ return member;
+ }
+}
diff --git a/rba.tool.core/src/rba/tool/core/sort/ValueSortedList.java b/rba.tool.core/src/rba/tool/core/sort/ValueSortedList.java
new file mode 100644
index 0000000..25ab560
--- /dev/null
+++ b/rba.tool.core/src/rba/tool/core/sort/ValueSortedList.java
@@ -0,0 +1,168 @@
+package rba.tool.core.sort;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import rba.core.ComparisonAnd;
+import rba.core.ComparisonOperator;
+import rba.core.EqualToOperator;
+import rba.core.Expression;
+import rba.core.GreaterThanOperator;
+import rba.core.MuchGreaterThanOperator;
+import rba.core.RuleObject;
+import rba.core.ValueExpression;
+
+abstract public class ValueSortedList<T extends RuleObject> {
+ private List<ValueGroup<T>> list;
+
+ private Collection<T> unsorted;
+
+ public ValueSortedList(Collection<T> originalList) {
+ list = new ArrayList<ValueGroup<T>>();
+ list.add(new ValueGroup<T>("MIN"));
+ list.add(new ValueGroup<T>("1"));
+ list.add(new ValueGroup<T>("MAX"));
+ unsorted = new ArrayList<T>(originalList);
+ sort();
+ }
+
+ public void add(T o) {
+ unsorted.add(o);
+ sort();
+ }
+
+ public void addAll(Collection<T> list) {
+ unsorted.addAll(list);
+ sort();
+ }
+
+ public void sort() {
+ list.get(0).getMember().addAll(unsorted);
+ unsorted.clear();
+ boolean trysort = true;
+ int retry = 0;
+ while (trysort) {
+ trysort = false;
+ retry = retry + 1;
+ if (retry > 100) {
+ throw new RuntimeException("Could not sort value [" + list + "]");
+ }
+ for (T i : sortedList()) {
+ int currentIndex = this.getGroupIndexOf(i);
+ Expression e = this.getValueExpression(i);
+ if (e == null)
+ continue;
+ if (e instanceof ValueExpression) {
+ int index = this.getGroupIndexOf(e.getExpression());
+ if (index == -1) {
+ index = ((ValueExpression) e).getExpressionValue();
+
+ if (index == -1) {
+ index = 0;
+ }
+ if (index >= list.size() - 1) {
+ list.get(currentIndex).remove(i);
+ addGroupAt(index, i);
+ trysort = true;
+ continue;
+ }
+ }
+ if (index != currentIndex) {
+ list.get(currentIndex).remove(i);
+ list.get(index).add(i);
+ trysort = true;
+ } else {
+ }
+ } else if (e instanceof ComparisonOperator) {
+ ComparisonOperatorEvaluator<T> evaluator = createEvaluator((ComparisonOperator) e);
+ int index = evaluator.suggestIndex(this);
+ if (index < 0)
+ continue;
+ if (index >= list.size() - 1) {
+ list.get(currentIndex).remove(i);
+ addGroupAt(index, i);
+ trysort = true;
+ } else if (index != currentIndex) {
+ list.get(currentIndex).remove(i);
+ list.get(index).add(i);
+ trysort = true;
+ } else {
+ }
+ } else {
+ throw new RuntimeException("Unsupported expression [" + e.getExpression() + "]");
+ }
+ }
+ }
+ }
+
+ private void addGroupAt(int index, T e) {
+
+ if (index >= list.size() - 1) {
+ for (int i = list.size() - 1; i <= index; ++i) {
+ ValueGroup<T> newGroup = new ValueGroup<T>(Integer.toString(i));
+ list.add(i, newGroup);
+ }
+ }
+
+ list.get(index).add(e);
+
+ }
+
+ public List<T> sortedList() {
+ List<T> result = new ArrayList<T>();
+ for (ValueGroup<T> i : list) {
+ result.addAll(i.getMember());
+ }
+ return result;
+ }
+
+ public List<ValueGroup<T>> getGroupList() {
+ return list;
+ }
+
+ public List<T> sortedListByBig() {
+ List<T> result = new ArrayList<T>();
+ for (int index = list.size() - 1; index >= 0; index--) {
+ ValueGroup<T> i = list.get(index);
+ result.addAll(i.getMember());
+ }
+ return result;
+ }
+
+ abstract protected Expression getValueExpression(T e);
+
+ public int getGroupIndexOf(T e) {
+ for (ValueGroup<T> i : list) {
+ if (i.getMember().contains(e)) {
+ return list.indexOf(i);
+ }
+ }
+ return -1;
+ }
+
+ public int getGroupIndexOf(String groupName) {
+ for (ValueGroup<T> i : list) {
+ if (i.getName().contentEquals(groupName)) {
+ return list.indexOf(i);
+ }
+ }
+ return -1;
+ }
+
+ public ComparisonOperatorEvaluator<T> createEvaluator(ComparisonOperator e) {
+ ComparisonOperatorEvaluator<T> evaluator;
+ if (e instanceof GreaterThanOperator) {
+ evaluator = new GreaterThanOperatorEvaluator<T>((GreaterThanOperator) e);
+ } else if (e instanceof MuchGreaterThanOperator) {
+ evaluator = new MuchGreaterThanOperatorEvaluator<T>((MuchGreaterThanOperator) e);
+ } else if (e instanceof ComparisonAnd) {
+ evaluator = new ComparisonAndEvaluator<T>((ComparisonAnd) e);
+ } else if (e instanceof EqualToOperator) {
+ evaluator = new EqualToOperatorEvaluator<T>((EqualToOperator) e);
+ } else {
+ throw new RuntimeException("Unsupported expression [" + e.getExpression() + "]");
+ }
+ return evaluator;
+ }
+}
diff --git a/rba.tool.core/src/rba/tool/core/ui/BasicTableViewerColumnFilter.java b/rba.tool.core/src/rba/tool/core/ui/BasicTableViewerColumnFilter.java
new file mode 100644
index 0000000..4eb07a5
--- /dev/null
+++ b/rba.tool.core/src/rba/tool/core/ui/BasicTableViewerColumnFilter.java
@@ -0,0 +1,72 @@
+package rba.tool.core.ui;
+
+import java.util.regex.Pattern;
+
+import org.apache.commons.lang3.StringUtils;
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerFilter;
+
+public class BasicTableViewerColumnFilter extends ViewerFilter {
+
+ private String filterString;
+
+ private final int[] filterColumns;
+
+ public BasicTableViewerColumnFilter(String filterString, int[] filterColumns) {
+ this.filterString = filterString;
+ this.filterColumns = filterColumns;
+ }
+
+ @Override
+ public boolean select(Viewer viewer, Object parentElement, Object element) {
+ if ((null == filterString) || (StringUtils.isEmpty(filterString))) {
+ return true;
+ }
+
+ Pattern pattern = Pattern.compile(createRegexFromGlob(filterString), Pattern.CASE_INSENSITIVE);
+
+ for (int i : this.filterColumns) {
+
+ ITableLabelProvider labelProvider = (ITableLabelProvider) ((TableViewer) viewer).getLabelProvider();
+
+ String cellLabel = labelProvider.getColumnText(element, i);
+
+ if (pattern.matcher(cellLabel).find()) {
+ return true;
+ } else if (cellLabel.toLowerCase().contains(filterString.toLowerCase())) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Create Regular Expression for filter string
+ * @param glob
+ * @return
+ */
+ private String createRegexFromGlob(String glob) {
+ String out = "^";
+ for (int i = 0; i < glob.length(); ++i) {
+ final char c = glob.charAt(i);
+ switch (c) {
+ case '*':
+ out += ".*";
+ break;
+ case '?':
+ out += '.';
+ break;
+ default:
+ out += c;
+ }
+ }
+ out += '$';
+ return out;
+ }
+
+ public void setFilterString(String filterString) {
+ this.filterString = filterString;
+ }
+}
diff --git a/rba.tool.core/src/rba/tool/core/ui/CommonValueValidator.java b/rba.tool.core/src/rba/tool/core/ui/CommonValueValidator.java
new file mode 100644
index 0000000..c724760
--- /dev/null
+++ b/rba.tool.core/src/rba/tool/core/ui/CommonValueValidator.java
@@ -0,0 +1,51 @@
+package rba.tool.core.ui;
+
+import java.nio.file.Files;
+import java.nio.file.Paths;
+
+import org.apache.commons.lang3.StringUtils;
+
+public class CommonValueValidator {
+
+ public static boolean isExistFilePath(String folderPath, String fileName) {
+ if (StringUtils.isEmpty(folderPath) || StringUtils.isEmpty(fileName))
+ return false;
+ return Files.exists(Paths.get(folderPath, fileName));
+ }
+
+ public static boolean isExistFilePath(String filePath) {
+ if (StringUtils.isEmpty(filePath))
+ return false;
+ return Files.exists(Paths.get(filePath));
+ }
+
+ public static boolean isValidFileName(String target) {
+ if (StringUtils.isEmpty(target)) {
+ return false;
+ }
+ if (target.length() > 250) {
+ return false;
+ }
+ if (target.contains("¥") || target.contains("/") || target.contains(":") || target.contains("*") || target.contains("?") || target.contains("\"") || target.contains("|")
+ || target.contains("<") || target.contains(">")) {
+ return false;
+ }
+
+ return true;
+ }
+
+ public static boolean isValidFolderName(String target) {
+ if (StringUtils.isEmpty(target)) {
+ return false;
+ }
+ if (target.length() > 250) {
+ return false;
+ }
+ if (target.contains("¥") || target.contains("/") || target.contains(":") || target.contains("*") || target.contains("?") || target.contains("\"") || target.contains("|")
+ || target.contains("<") || target.contains(">") || target.contains(".") || target.contains(",")) {
+ return false;
+ }
+
+ return true;
+ }
+}
diff --git a/rba.tool.core/src/rba/tool/core/util/EmptyToolLogger.java b/rba.tool.core/src/rba/tool/core/util/EmptyToolLogger.java
new file mode 100644
index 0000000..cf2280d
--- /dev/null
+++ b/rba.tool.core/src/rba/tool/core/util/EmptyToolLogger.java
@@ -0,0 +1,20 @@
+package rba.tool.core.util;
+
+/**
+ * @author kousuke_morishima
+ */
+public class EmptyToolLogger implements IToolLogger {
+
+ public EmptyToolLogger() {
+ }
+
+ @Override
+ public void logging(Throwable e) {
+ // nothing to do
+ }
+
+ @Override
+ public void logging(String message) {
+ // nothing to do
+ }
+}
diff --git a/rba.tool.core/src/rba/tool/core/util/IToolLogger.java b/rba.tool.core/src/rba/tool/core/util/IToolLogger.java
new file mode 100644
index 0000000..b53cf8c
--- /dev/null
+++ b/rba.tool.core/src/rba/tool/core/util/IToolLogger.java
@@ -0,0 +1,8 @@
+package rba.tool.core.util;
+
+public interface IToolLogger {
+
+ void logging(Throwable e);
+
+ void logging(String message);
+}
diff --git a/rba.tool.core/src/rba/tool/core/util/ModelUtil.java b/rba.tool.core/src/rba/tool/core/util/ModelUtil.java
new file mode 100644
index 0000000..b6b34a7
--- /dev/null
+++ b/rba.tool.core/src/rba/tool/core/util/ModelUtil.java
@@ -0,0 +1,29 @@
+package rba.tool.core.util;
+
+import org.eclipse.emf.ecore.EObject;
+
+import rba.core.NamedElement;
+import rba.core.Package;
+
+public class ModelUtil {
+
+ public static final String SEPARATOR = "/";
+
+ public static String getRBAModelHierarchicalName(NamedElement target) {
+ return getRBAModelHierarchicalName(target, SEPARATOR);
+ }
+
+ public static String getRBAModelHierarchicalName(NamedElement target, String separator) {
+ EObject parent = target.eContainer();
+ if (parent == null || !(parent instanceof NamedElement) || parent instanceof Package) {
+ return target.getName();
+ } else {
+ return getRBAModelHierarchicalName((NamedElement) parent, separator) + separator + target.getName();
+ }
+ }
+
+ public static String convertModelName2ArbitrateName(String modelName) {
+ if (modelName == null) return modelName;
+ return modelName.replace(".", "/");
+ }
+}
diff --git a/rba.tool.core/src/rba/tool/core/util/ResourceUtil.java b/rba.tool.core/src/rba/tool/core/util/ResourceUtil.java
new file mode 100644
index 0000000..751f308
--- /dev/null
+++ b/rba.tool.core/src/rba/tool/core/util/ResourceUtil.java
@@ -0,0 +1,72 @@
+package rba.tool.core.util;
+
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.OutputStreamWriter;
+
+public class ResourceUtil {
+ public static BufferedReader getReader(File file) {
+ FileInputStream fis = null;
+ InputStreamReader isr = null;
+ BufferedReader reader = null;
+
+ try {
+ fis = new FileInputStream(file);
+ isr = new InputStreamReader(fis, "UTF-8");
+ reader = new BufferedReader(isr);
+ } catch (Throwable e) {
+ e.printStackTrace();
+ try {
+ if (reader != null) {
+ reader.close();
+ }
+ if (isr != null) {
+ isr.close();
+ }
+ if (fis != null) {
+ fis.close();
+ }
+ } catch (IOException e1) {
+ e1.printStackTrace();
+ }
+
+ throw new RuntimeException(e);
+ }
+ return reader;
+ }
+
+ public static BufferedWriter getWriter(File file) {
+ FileOutputStream fos = null;
+ OutputStreamWriter osw = null;
+ BufferedWriter writer = null;
+
+ try {
+ fos = new FileOutputStream(file);
+ osw = new OutputStreamWriter(fos, "UTF-8");
+ writer = new BufferedWriter(osw);
+ } catch (Throwable e) {
+ e.printStackTrace();
+ try {
+ if (writer != null) {
+ writer.close();
+ }
+ if (osw != null) {
+ osw.close();
+ }
+ if (fos != null) {
+ fos.close();
+ }
+ } catch (IOException e1) {
+ e1.printStackTrace();
+ }
+
+ throw new RuntimeException(e);
+ }
+ return writer;
+ }
+}
diff --git a/rba.tool.core/src/rba/tool/core/util/SelectionTester.java b/rba.tool.core/src/rba/tool/core/util/SelectionTester.java
new file mode 100644
index 0000000..b1bec63
--- /dev/null
+++ b/rba.tool.core/src/rba/tool/core/util/SelectionTester.java
@@ -0,0 +1,53 @@
+package rba.tool.core.util;
+
+import org.eclipse.core.expressions.PropertyTester;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IResource;
+
+public class SelectionTester extends PropertyTester {
+
+ @Override
+ public boolean test(Object receiver, String property, Object[] args, Object expectedValue) {
+ if (property.equals("IsTestRev")) {
+ IFolder folder = SelectionUtil.getRevFolder(receiver);
+ return folder != null;
+ }
+ if (property.equals("IsResource")) {
+ return receiver instanceof IResource;
+ }
+ if (property.equals("IsMultiSelect")) {
+ IFolder folder = SelectionUtil.getRevFolder(receiver);
+ return folder != null;
+ }
+ if (property.equals("IsTestCompare")) {
+ IFolder folder = SelectionUtil.getRevCompareFolder(receiver);
+ return folder != null;
+ }
+ return false;
+ }
+ //
+ // protected boolean isEnableProject(Object receiver) {
+ // IResource resource = null;
+ //
+ // if (receiver instanceof EObject) {
+ // EObject eObject = (EObject) receiver;
+ // if (eObject.eResource() != null) {
+ // resource = WorkspaceSynchronizer.getFile(eObject.eResource());
+ // }
+ // } else if (receiver instanceof IResource) {
+ // resource = (IResource) receiver;
+ // }
+ //
+ // if (resource != null) {
+ // IProject project = resource.getProject();
+ // if (project != null) {
+ // // if (ZIPCProjectNature.hasNature(project)) {
+ // if (ZIPCProjectNature.hasNature(project) && DesignProjectNature.hasNature(project)) {
+ // return true;
+ // }
+ // }
+ // }
+ // return false;
+ // }
+
+}
diff --git a/rba.tool.core/src/rba/tool/core/util/SelectionUtil.java b/rba.tool.core/src/rba/tool/core/util/SelectionUtil.java
new file mode 100644
index 0000000..e6093b7
--- /dev/null
+++ b/rba.tool.core/src/rba/tool/core/util/SelectionUtil.java
@@ -0,0 +1,167 @@
+package rba.tool.core.util;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+
+public class SelectionUtil {
+
+ public static final String TEST_FILE_NAME = "testinformation";
+
+ public static final String TEST_CASE_FOLDER_NAME = "testcase";
+
+ public static final String TEST_COVERAGE_FOLDER_NAME = "coverage";
+
+ public static final String TEST_LOG_FOLDER_NAME = "testlog";
+
+ public static final String TEST_RESULT_FOLDER_NAME = "testresult";
+
+ /**
+ * get testresult folder in revision folder from selected item
+ * @param file
+ * @return testcase folder
+ */
+ public static IFolder getRevResultFolder(Object object) {
+ return getAndCreateFolderInTestRevFolder(object, TEST_RESULT_FOLDER_NAME);
+ }
+
+ /**
+ * get testlog folder in revision folder from selected item
+ * @param file
+ * @return testcase folder
+ */
+ public static IFolder getRevLogFolder(Object object) {
+ return getAndCreateFolderInTestRevFolder(object, TEST_LOG_FOLDER_NAME);
+ }
+
+ /**
+ * get coverage folder in revision folder from selected item
+ * @param file
+ * @return testcase folder
+ */
+ public static IFolder getRevCoverageFolder(Object object) {
+ return getAndCreateFolderInTestRevFolder(object, TEST_COVERAGE_FOLDER_NAME);
+ }
+
+ /**
+ * get testcase folder in revision folder from selected item
+ * @param file
+ * @return testcase folder
+ */
+ public static IFolder getRevTestcaseFolder(Object object) {
+ return getAndCreateFolderInTestRevFolder(object, TEST_CASE_FOLDER_NAME);
+ }
+
+ public static IFolder getAndCreateFolderInTestRevFolder(Object object, String foldername) {
+ IFolder folder = getRevFolder(object);
+ if (folder != null) {
+ IFolder testcase = folder.getFolder(foldername);
+ if (!testcase.exists()) {
+ try {
+ testcase.create(true, true, null);
+ } catch (CoreException e) {
+ throw new RuntimeException(e);
+ }
+ }
+ return testcase;
+ }
+ return null;
+ }
+
+ /**
+ * get revision folder of selected file
+ * @param file
+ * @return
+ */
+ public static IFolder getRevFolder(Object object) {
+ try {
+ if (object instanceof ISelection) {
+ ISelection selection = (ISelection) object;
+ if (selection instanceof IStructuredSelection) {
+ IStructuredSelection structuredSelection = (IStructuredSelection) selection;
+ Object element = structuredSelection.getFirstElement();
+ if (element instanceof IResource) {
+ return getRevFolder((IResource) element);
+ }
+ }
+ } else if (object instanceof IResource) {
+ if (object instanceof IFolder) {
+ IFolder f = (IFolder) object;
+ IResource[] resources = f.members();
+ for (IResource res : resources) {
+ if (res instanceof IFile) {
+ IFile file = (IFile) res;
+ if (file.getName().equals(TEST_FILE_NAME)) {
+ return f;
+ }
+ }
+ }
+ } else if (object instanceof IFile) {
+ IFolder parent = (IFolder) ((IFile) object).getParent();
+ return getRevFolder(parent);
+ }
+ IResource r = (IResource) object;
+ return getRevFolder(r.getParent());
+
+ //
+ // IFolder f = null;
+ // if (object instanceof IFile) {
+ // IContainer parent = ((IFile) object).getParent();
+ // if (parent instanceof IFolder) {
+ // f = (IFolder) parent;
+ // }
+ // } else
+ //
+ // if (f.getParent() instanceof IFolder) {
+ // return getRevFolder((IFolder) f.getParent());
+ // }
+ }
+ } catch (CoreException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ /**
+ * to get only 2 selected revision file
+ * @param object
+ * @return
+ */
+ public static IFolder getRevCompareFolder(Object object) {
+ try {
+ if (object instanceof ISelection) {
+ ISelection selection = (ISelection) object;
+ if (selection instanceof IStructuredSelection) {
+ IStructuredSelection structuredSelection = (IStructuredSelection) selection;
+ if (structuredSelection.size() == 2) {
+ Object element = structuredSelection.getFirstElement();
+ if (element instanceof IResource) {
+ return getRevCompareFolder((IResource) element);
+ }
+ }
+ }
+ } else if (object instanceof IResource) {
+ if (object instanceof IFolder) {
+ IFolder f = (IFolder) object;
+ IResource[] resources = f.members();
+ for (IResource res : resources) {
+ if (res instanceof IFile) {
+ IFile file = (IFile) res;
+ if (file.getName().equals(TEST_FILE_NAME)) {
+ return f;
+ }
+ }
+ }
+ }
+
+ }
+ } catch (CoreException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+}
diff --git a/rba.tool.core/src/rba/tool/core/util/SortResult.java b/rba.tool.core/src/rba/tool/core/util/SortResult.java
new file mode 100644
index 0000000..838a325
--- /dev/null
+++ b/rba.tool.core/src/rba/tool/core/util/SortResult.java
@@ -0,0 +1,38 @@
+package rba.tool.core.util;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import rba.core.RuleObject;
+
+public class SortResult<T extends RuleObject> {
+ private List<SortResultSet<T>> sortResults = new ArrayList<SortResultSet<T>>();
+
+ private boolean isUnsat;
+
+ public List<SortResultSet<T>> getSortResults() {
+ return sortResults;
+ }
+
+ public boolean addSortResult(SortResultSet<T> sortResult) {
+ return sortResults.add(sortResult);
+ }
+
+ public SortResultSet<T> getSortResultSet(RuleObject obj) {
+ for (SortResultSet<T> sortResult : sortResults) {
+ T element = sortResult.getElement();
+ if (element.equals(obj)) {
+ return sortResult;
+ }
+ }
+ return null;
+ }
+
+ public boolean isUnsat() {
+ return isUnsat;
+ }
+
+ public void setUnsat(boolean isUnsat) {
+ this.isUnsat = isUnsat;
+ }
+}
diff --git a/rba.tool.core/src/rba/tool/core/util/SortResultSet.java b/rba.tool.core/src/rba/tool/core/util/SortResultSet.java
new file mode 100644
index 0000000..93e18f0
--- /dev/null
+++ b/rba.tool.core/src/rba/tool/core/util/SortResultSet.java
@@ -0,0 +1,25 @@
+package rba.tool.core.util;
+
+import rba.core.RuleObject;
+
+public class SortResultSet<T extends RuleObject> {
+ private T element;
+
+ private int value;
+
+ public T getElement() {
+ return element;
+ }
+
+ public void setElement(T element) {
+ this.element = element;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public void setValue(int value) {
+ this.value = value;
+ }
+}
diff --git a/rba.tool.core/src/rba/tool/core/util/ToolLogger.java b/rba.tool.core/src/rba/tool/core/util/ToolLogger.java
new file mode 100644
index 0000000..0907eb6
--- /dev/null
+++ b/rba.tool.core/src/rba/tool/core/util/ToolLogger.java
@@ -0,0 +1,79 @@
+package rba.tool.core.util;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.logging.FileHandler;
+import java.util.logging.Handler;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import java.util.logging.SimpleFormatter;
+import java.util.stream.Stream;
+
+public class ToolLogger implements IToolLogger {
+
+ private Logger logger;
+
+ /**
+ * @param name logger name
+ * @param logFile File name
+ * @param append
+ * @throws SecurityException
+ * @throws IOException
+ */
+ public ToolLogger(String name, String logFile, boolean append) throws SecurityException, IOException {
+ this(Logger.getLogger(name), logFile, append);
+ }
+
+ /**
+ * @param logger logger name
+ * @param logFile
+ * @param append
+ * @throws SecurityException
+ * @throws IOException
+ * @throws NullPointerException
+ */
+ public ToolLogger(Logger logger, String logFile, boolean append) throws SecurityException, IOException {
+ if (logger == null) {
+ throw new NullPointerException("logger must be not null."); //$NON-NLS-1$
+ }
+ this.logger = logger;
+ String path = "log/" + logFile; //$NON-NLS-1$
+ createParent(path);
+ FileHandler h = new FileHandler(path, append);
+ h.setFormatter(new SimpleFormatter());
+ this.logger.addHandler(h);
+ this.logger.setLevel(Level.ALL);
+ }
+
+ public ToolLogger(Logger logger, Handler handler) {
+ if (logger == null) {
+ throw new NullPointerException("logger must be not null."); //$NON-NLS-1$
+ }
+ this.logger = logger;
+ this.logger.addHandler(handler);
+ this.logger.setLevel(Level.ALL);
+ }
+
+ static void createParent(String path) {
+ File logPath = new File(path);
+ if (!logPath.getParentFile().exists()) {
+ logPath.getParentFile().mkdirs();
+ }
+ }
+
+ /**
+ * Logging when handle to occurred error
+ * @param e
+ */
+ public void logging(Throwable e) {
+ StringBuilder message = new StringBuilder(e.toString() + "\n"); //$NON-NLS-1$
+ Stream.of(e.getStackTrace()).forEach(t -> message.append("\t").append(t.toString()).append("\n")); //$NON-NLS-1$ //$NON-NLS-2$
+ logger.warning(message.toString());
+ }
+
+ @Override
+ public void logging(String message) {
+ logger.warning(message);
+ }
+
+}
diff --git a/rba.tool.core/src/rba/tool/core/util/ValueSort.java b/rba.tool.core/src/rba/tool/core/util/ValueSort.java
new file mode 100644
index 0000000..7182667
--- /dev/null
+++ b/rba.tool.core/src/rba/tool/core/util/ValueSort.java
@@ -0,0 +1,152 @@
+package rba.tool.core.util;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import rba.core.ContentState;
+import rba.core.Expression;
+import rba.core.RBACoreFactory;
+import rba.tool.core.sort.ValueGroup;
+import rba.tool.core.sort.ValueSortedList;
+import rba.view.Area;
+
+public class ValueSort {
+ public static ValueSort INSTANCE = new ValueSort();
+
+ public SortResult<Area> sortVisibility(List<Area> areas) {
+ SortResult<Area> sortResult = new SortResult<Area>();
+
+ try {
+ sortResult = doSortVisibility(areas);
+ sortResult.setUnsat(false);
+ } catch (RuntimeException e) {
+ sortResult.setUnsat(true);
+ }
+
+ return sortResult;
+ }
+
+ private SortResult<Area> doSortVisibility(List<Area> areas) {
+ SortResult<Area> sortResult = new SortResult<Area>();
+
+ Map<Area, SortResultSet<Area>> map = new HashMap<Area, SortResultSet<Area>>();
+ for (Area area : areas) {
+ SortResultSet<Area> set = new SortResultSet<Area>();
+ set.setElement(area);
+ sortResult.addSortResult(set);
+ map.put(area, set);
+ }
+
+ ValueSortedList<Area> sortedElement = new ValueSortedList<Area>(areas) {
+ protected Expression getValueExpression(Area e) {
+ return e.getVisibility();
+ }
+ };
+
+ for (ValueGroup<Area> valueGroup : sortedElement.getGroupList()) {
+ int value = convertValue(valueGroup.getName());
+ for (Area member : valueGroup.getMember()) {
+ SortResultSet<Area> set = map.get(member);
+ set.setValue(value);
+ }
+ }
+
+ return sortResult;
+ }
+
+ public SortResult<Area> sortZorder(List<Area> areas) {
+ SortResult<Area> sortResult = new SortResult<Area>();
+
+ try {
+ sortResult = doSortZorder(areas);
+ sortResult.setUnsat(false);
+ } catch (RuntimeException e) {
+ sortResult.setUnsat(true);
+ }
+
+ return sortResult;
+ }
+
+ private SortResult<Area> doSortZorder(List<Area> areas) {
+
+ SortResult<Area> sortResult = new SortResult<Area>();
+
+ Map<Area, SortResultSet<Area>> map = new HashMap<Area, SortResultSet<Area>>();
+ for (Area area : areas) {
+ SortResultSet<Area> set = new SortResultSet<Area>();
+ set.setElement(area);
+ sortResult.addSortResult(set);
+ map.put(area, set);
+ }
+
+ ValueSortedList<Area> sortedElement = new ValueSortedList<Area>(areas) {
+ protected Expression getValueExpression(Area e) {
+ return e.getZorder();
+ }
+ };
+
+ for (ValueGroup<Area> valueGroup : sortedElement.getGroupList()) {
+ int value = convertValue(valueGroup.getName());
+ for (Area member : valueGroup.getMember()) {
+ SortResultSet<Area> set = map.get(member);
+ set.setValue(value);
+ }
+ }
+ return sortResult;
+ }
+
+ public SortResult<ContentState> sortPriority(List<ContentState> contentStates) {
+ SortResult<ContentState> sortResult = new SortResult<ContentState>();
+
+ try {
+ sortResult = doSortPriority(contentStates);
+ sortResult.setUnsat(false);
+ } catch (RuntimeException e) {
+ sortResult.setUnsat(true);
+ }
+
+ return sortResult;
+ }
+
+ public SortResult<ContentState> doSortPriority(List<ContentState> contentStates) {
+ SortResult<ContentState> sortResult = new SortResult<ContentState>();
+
+ Map<ContentState, SortResultSet<ContentState>> map = new HashMap<ContentState, SortResultSet<ContentState>>();
+ for (ContentState contentState : contentStates) {
+ SortResultSet<ContentState> set = new SortResultSet<ContentState>();
+ set.setElement(contentState);
+ sortResult.addSortResult(set);
+ map.put(contentState, set);
+ }
+
+ ValueSortedList<ContentState> sortedElement = new ValueSortedList<ContentState>(contentStates) {
+ protected Expression getValueExpression(ContentState e) {
+ return e.getValue();
+ }
+ };
+
+ for (ValueGroup<ContentState> valueGroup : sortedElement.getGroupList()) {
+ int value = convertValue(valueGroup.getName());
+ for (ContentState member : valueGroup.getMember()) {
+ SortResultSet<ContentState> set = map.get(member);
+ set.setValue(value);
+ }
+ }
+
+ return sortResult;
+ }
+
+ private int convertValue(String valueString) {
+ int value;
+ if (valueString.equals("MIN")) {
+ value = RBACoreFactory.eINSTANCE.createMinValue().getExpressionValue();
+ } else if (valueString.equals("MAX")) {
+ value = RBACoreFactory.eINSTANCE.createMaxValue().getExpressionValue();
+ } else {
+ value = Integer.parseInt(valueString);
+ }
+ return value;
+ }
+
+}
diff --git a/rba.tool.core/src/rba/tool/core/util/data/ExCommentInfo.java b/rba.tool.core/src/rba/tool/core/util/data/ExCommentInfo.java
new file mode 100644
index 0000000..936d8ae
--- /dev/null
+++ b/rba.tool.core/src/rba/tool/core/util/data/ExCommentInfo.java
@@ -0,0 +1,32 @@
+package rba.tool.core.util.data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class ExCommentInfo {
+
+ private String fileName;
+
+ private List<String> info = new ArrayList<String>();
+
+ public String getFileName() {
+ return fileName;
+ }
+
+ public void setFileName(String fileName) {
+ this.fileName = fileName;
+ }
+
+ public List<String> getInfo() {
+ return info;
+ }
+
+ public void setInfo(List<String> info) {
+ this.info = info;
+ }
+
+ public void addInfo(String info) {
+ this.info.add(info);
+ }
+
+}
diff --git a/rba.tool.core/src/rba/tool/core/util/data/ExCommentLabel.java b/rba.tool.core/src/rba/tool/core/util/data/ExCommentLabel.java
new file mode 100644
index 0000000..c83f03a
--- /dev/null
+++ b/rba.tool.core/src/rba/tool/core/util/data/ExCommentLabel.java
@@ -0,0 +1,21 @@
+package rba.tool.core.util.data;
+
+public class ExCommentLabel {
+
+ private final String label;
+
+ private final int columnWidth;
+
+ public ExCommentLabel(String label, int columnWidth) {
+ this.label = label;
+ this.columnWidth = columnWidth;
+ }
+
+ public String getLabel() {
+ return label;
+ }
+
+ public int getColumnWidth() {
+ return columnWidth;
+ }
+}
diff --git a/rba.tool.core/src/rba/tool/core/z3/Z3CodeManager.java b/rba.tool.core/src/rba/tool/core/z3/Z3CodeManager.java
new file mode 100644
index 0000000..7f9da9c
--- /dev/null
+++ b/rba.tool.core/src/rba/tool/core/z3/Z3CodeManager.java
@@ -0,0 +1,360 @@
+package rba.tool.core.z3;
+
+import java.io.IOException;
+import java.lang.reflect.Field;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.Platform;
+
+import com.microsoft.z3.ApplyResult;
+import com.microsoft.z3.BoolExpr;
+import com.microsoft.z3.Context;
+import com.microsoft.z3.Expr;
+import com.microsoft.z3.Goal;
+import com.microsoft.z3.Solver;
+import com.microsoft.z3.Status;
+import com.microsoft.z3.Tactic;
+
+import groovy.util.GroovyScriptEngine;
+import rba.tool.core.Activator;
+import rba.tool.core.constraint.IConstraintCalculation;
+import rba.tool.core.sort.ISortValueCalculation;
+
+public class Z3CodeManager {
+
+ public static Z3CodeManager INSTNACE = new Z3CodeManager();
+
+ private static final String ERROR_ENV_PATH = "The Z3 storage path cannot be found. Area and content parameters are not derived correctly. \r\nSet the environment variable of the storage path of Z3.";
+
+ private static final String ERROR_SCRIPT = "Z3 execution failed. There is an error in the script.";
+
+ private static final String SORT_SCRIPT_NAME = "SortValueCalculation.java";
+
+ private static final String CONST_SCRIPT_NAME = "ConstraintCalculation.java";
+
+ private static final String ERROR_NOT_FOUND_SCRIPT = "Z3 execution failed. Failed to generate %s in the %s project.";
+
+ private Z3CodeManager() {
+ }
+
+ public boolean loadZ3Lib() {
+ String z3Path = "";
+ try {
+ z3Path = getPath();
+ } catch (Exception e1) {
+ e1.printStackTrace();
+ return false;
+ }
+ if (null == z3Path || z3Path.isEmpty()) {
+ return false;
+ }
+ try {
+ // load necessary z3 DLLs
+ loadDLLs(z3Path);
+ // add z3 path to java.library.path
+ addLibraryPath(z3Path);
+ return true;
+ } catch (Exception e) {
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+ private String getPath() throws IOException {
+ String path = "";
+ String jvmBitMode = System.getProperty("sun.arch.data.model");
+ // Check JVM 32 Bit.
+ if (jvmBitMode != null && jvmBitMode.contains("32")) {
+ URL bundleEntryUrl = Platform.getBundle(Activator.PLUGIN_ID).getEntry("lib32/z3");
+ URL fileUrl = FileLocator.toFileURL(bundleEntryUrl);
+ path = fileUrl.getPath();
+ }
+ // Check JVM 64 Bit.
+ if (jvmBitMode != null && jvmBitMode.contains("64")) {
+ URL bundleEntryUrl = Platform.getBundle(Activator.PLUGIN_ID).getEntry("lib/z3");
+ URL fileUrl = FileLocator.toFileURL(bundleEntryUrl);
+ path = fileUrl.getPath();
+ }
+ return path;
+ }
+
+ public ISortValueCalculation getSortCaluculator(IProject project) throws RuntimeException {
+
+ if (!loadZ3Lib()) {
+ String errMsg = ERROR_ENV_PATH;
+ throw new RuntimeException(errMsg);
+ }
+
+ ISortValueCalculation calc = null;
+ IFile file = findFile(SORT_SCRIPT_NAME, project);
+ if (file != null) {
+ try {
+ String fileName = file.getName();
+ String className = fileName.substring(0, fileName.lastIndexOf("."));
+
+ String string = file.getLocation().toString();
+ String genPath = string.substring(0, string.length() - fileName.length());
+
+ GroovyScriptEngine e = new GroovyScriptEngine(new String[] { genPath }, getClass().getClassLoader());
+ e.loadScriptByName(fileName);
+ Class<?> s = e.getGroovyClassLoader().loadClass(className);
+
+ calc = (ISortValueCalculation) s.newInstance();
+ } catch (Exception e) {
+ String errMsg = ERROR_SCRIPT;
+ throw new RuntimeException(errMsg);
+ }
+
+ } else {
+ String errMsg = String.format(ERROR_NOT_FOUND_SCRIPT, project.getName(), SORT_SCRIPT_NAME);
+ throw new RuntimeException(errMsg);
+ }
+
+ return calc;
+ }
+
+ public IFile findFile(String name, IContainer container) {
+ try {
+ IResource[] resources;
+ resources = container.members();
+ if (resources == null || resources.length == 0) {
+ return null;
+ }
+ for (IResource resource : resources) {
+ if (resource instanceof IFile && resource.getName().equals(name)) {
+ return (IFile) resource;
+ }
+ if (resource instanceof IContainer) {
+ IFile recursive = findFile(name, (IContainer) resource);
+ if (recursive != null) {
+ return recursive;
+ }
+ }
+ }
+ } catch (CoreException e) {
+ }
+
+ return null;
+ }
+
+ /**
+ * load z3 DLLs from the path
+ * @param z3Path
+ */
+ private void loadDLLs(String z3Path) throws Exception {
+ System.load(z3Path + "\\Microsoft.Z3.dll");
+ System.load(z3Path + "\\msvcr110.dll");
+ System.load(z3Path + "\\msvcp110.dll");
+ System.load(z3Path + "\\vcomp110.dll");
+ System.load(z3Path + "\\libz3.dll");
+ System.load(z3Path + "\\libz3java.dll");
+ }
+
+ /**
+ * add z3 path to java.library.path
+ * @param pathToAdd
+ */
+ private void addLibraryPath(String pathToAdd) throws Exception {
+ final Field usrPathsField = ClassLoader.class.getDeclaredField("usr_paths");
+ usrPathsField.setAccessible(true);
+ // get array of paths
+ final String[] paths = (String[]) usrPathsField.get(null);
+ // check if the path to add is already present
+ for (String path : paths) {
+ if (path.equals(pathToAdd)) {
+ return;
+ }
+ }
+ // add the new path
+ final String[] newPaths = Arrays.copyOf(paths, paths.length + 1);
+ newPaths[newPaths.length - 1] = pathToAdd;
+ usrPathsField.set(null, newPaths);
+ }
+
+ public Map<String, Integer> setModel(Solver s, List<Expr> contentsList, Status st) {
+ switch (st) {
+ case UNKNOWN:
+ System.out.println("Unknown");
+ break;
+
+ case SATISFIABLE:
+ return setSat(s, contentsList);
+ case UNSATISFIABLE:
+ return setUnsat(s);
+ }
+
+ return null;
+ }
+
+ public Map<String, Integer> setSat(Solver s, List<Expr> evaluatedExpr) {
+
+ Map<String, Integer> map = new HashMap<String, Integer>();
+
+ map.put(Z3Constants.TOTAL_RESULT, Z3Constants.SAT_VAL);
+
+ for (Expr i : evaluatedExpr) {
+ String areaName = getName(i.getSExpr());
+ String expVal = s.getModel().evaluate(i, false).toString();
+
+ map.put(areaName, Integer.valueOf(expVal));
+ }
+
+ return map;
+ }
+
+ public Map<String, Integer> setUnsat(Solver s) {
+
+ Map<String, Integer> map = new HashMap<String, Integer>();
+
+ map.put(Z3Constants.TOTAL_RESULT, Z3Constants.UNSAT_VAL);
+
+ for (Expr i : s.getUnsatCore()) {
+ String areaName = getName(i.toString());
+ map.put(areaName, Z3Constants.UNSAT_VAL);
+ }
+ return map;
+ }
+
+ private String getName(String baseName) {
+ String name = baseName;
+ if (name.length() > 2 && name.startsWith("|") && name.endsWith("|")) {
+ name = name.substring(1, name.length() - 1);
+ }
+
+ return name;
+ }
+
+ public List<String> getErrors(Solver s, Status st) {
+ List<String> list = new ArrayList<String>();
+
+ switch (st) {
+ case UNKNOWN:
+
+ list.add(Z3Constants.UNKNOWN);
+ list.add(s.getReasonUnknown());
+ break;
+ case SATISFIABLE:
+ list.add(Z3Constants.SAT);
+ break;
+ case UNSATISFIABLE:
+ list.add(Z3Constants.UNSAT);
+
+ for (Expr i : s.getUnsatCore()) {
+ list.add(getName(i.toString()));
+ }
+ }
+
+ return list;
+ }
+
+ public List<String> getErrors(Context ctx, Solver s, Status st, String constrName, List<BoolExpr> constrList, List<BoolExpr> constrLabelList) {
+ List<String> list = new ArrayList<String>();
+
+ switch (st) {
+ case UNKNOWN:
+ String reason = s.getReasonUnknown();
+ System.out.println("*Unknown:" + constrName + " - " + reason);
+
+ Goal g = ctx.mkGoal(false, false, false);
+ for (int i = 0; i < constrList.size(); i++) {
+ g.add(constrList.get(i), constrLabelList.get(i));
+ }
+
+ Tactic t = ctx.mkTactic("qfbv");
+ try {
+ ApplyResult ar = t.apply(g);
+ if (ar.getNumSubgoals() == 1) {
+ if (ar.getSubgoals()[0].isDecidedSat()) {
+ System.out.println("=> SAT");
+ list.add(Z3Constants.SAT);
+ break;
+ }
+ }
+ } catch (Exception e) {
+ System.out.println("2ND Check");
+
+ t = ctx.mkTactic("smt");
+ try {
+ ApplyResult ar = t.apply(g);
+ if (ar.getNumSubgoals() == 1) {
+ if (ar.getSubgoals()[0].isDecidedSat()) {
+ System.out.println("==> SAT");
+ list.add(Z3Constants.SAT);
+ break;
+ }
+ }
+ } catch (Exception e2) {
+ e2.printStackTrace();
+ }
+ }
+
+ list.add(Z3Constants.UNKNOWN);
+ list.add(reason);
+ break;
+ case SATISFIABLE:
+ list.add(Z3Constants.SAT);
+ break;
+ case UNSATISFIABLE:
+ list.add(Z3Constants.UNSAT);
+
+ for (Expr i : s.getUnsatCore()) {
+ list.add(getName(i.toString()));
+ }
+ }
+
+ return list;
+ }
+
+ public IConstraintCalculation getConstraintCaluculator(IProject project) throws RuntimeException {
+
+ if (!loadZ3Lib()) {
+ String errMsg = ERROR_ENV_PATH;
+ throw new RuntimeException(errMsg);
+ }
+
+ IConstraintCalculation calc = null;
+ IFile file = findFile(CONST_SCRIPT_NAME, project);
+ if (file != null) {
+ String fileName = file.getName();
+ String className = fileName.substring(0, fileName.lastIndexOf("."));
+
+ String string = file.getLocation().toString();
+ String genPath = string.substring(0, string.length() - fileName.length());
+
+ calc = getConstraintCaluculator(fileName, className, genPath);
+
+ } else {
+ String errMsg = String.format(ERROR_NOT_FOUND_SCRIPT, project.getName(), CONST_SCRIPT_NAME);
+ throw new RuntimeException(errMsg);
+ }
+
+ return calc;
+ }
+
+ public IConstraintCalculation getConstraintCaluculator(String fileName, String className, String genPath) throws RuntimeException {
+ IConstraintCalculation calc = null;
+ try {
+ GroovyScriptEngine e = new GroovyScriptEngine(new String[] { genPath }, getClass().getClassLoader());
+ e.loadScriptByName(fileName);
+ Class<?> s = e.getGroovyClassLoader().loadClass(className);
+
+ calc = (IConstraintCalculation) s.newInstance();
+ } catch (Exception e) {
+ String errMsg = ERROR_SCRIPT;
+ System.out.println(e.getMessage());
+ throw new RuntimeException(errMsg);
+ }
+ return calc;
+ }
+}
diff --git a/rba.tool.core/src/rba/tool/core/z3/Z3Constants.java b/rba.tool.core/src/rba/tool/core/z3/Z3Constants.java
new file mode 100644
index 0000000..51e726f
--- /dev/null
+++ b/rba.tool.core/src/rba/tool/core/z3/Z3Constants.java
@@ -0,0 +1,18 @@
+package rba.tool.core.z3;
+
+public class Z3Constants {
+
+ public static String TOTAL_RESULT = "Z3_CODE_TOTAL_RESULT";
+
+ public static String SAT = "SAT";
+
+ public static String UNSAT = "UNSAT";
+
+ public static String UNKNOWN = "UNKNOWN";
+
+ public static Integer SAT_VAL = 0;
+
+ public static Integer UNSAT_VAL = -99;
+
+ public static Integer UNKNOWN_VAL = -98;
+}
diff --git a/rba.tool.editor.endpoint/.classpath b/rba.tool.editor.endpoint/.classpath
new file mode 100644
index 0000000..cc72ea0
--- /dev/null
+++ b/rba.tool.editor.endpoint/.classpath
@@ -0,0 +1,139 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry including="**/*.java" kind="src" path="src">
+ <attributes>
+ <attribute name="optional" value="true"/>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="src" path="xtend-gen"/>
+ <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
+ <attributes>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
+ <attributes>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry combineaccessrules="false" kind="src" path="/rba.tool.editor"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/rba.tool.editor.ide"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/rba.model.core"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/rba.model.core.edit"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/rba.model.sound"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/rba.model.sound.edit"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/rba.model.view"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/rba.model.view.edit"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/rba.tool.core"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/ace-1.2.3.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/antlr-runtime-3.2.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/aopalliance-1.0.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/asm-5.0.1.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/asm-commons-5.0.1.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/asm-tree-5.0.1.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/com.google.guava_21.0.0.v20170206-1425.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/com.google.inject_3.0.0.v201312141243.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/com.ibm.icu_58.2.0.v20170418-1837.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/de.itemis.xtext.antlr_2.1.1.v201405091103.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/gson-2.5.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/guava-19.0-rc3.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/guice-3.0.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/javax.annotation-api-1.2.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/javax.inject_1.0.0.v20091030.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/javax.inject-1.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/javax.servlet-api-3.1.0.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/jetty-annotations-9.3.8.v20160314.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/jetty-client-9.3.8.v20160314.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/jetty-http-9.3.8.v20160314.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/jetty-io-9.3.8.v20160314.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/jetty-jndi-9.3.8.v20160314.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/jetty-plus-9.3.8.v20160314.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/jetty-security-9.3.8.v20160314.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/jetty-server-9.3.8.v20160314.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/jetty-servlet-9.3.8.v20160314.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/jetty-util-9.3.8.v20160314.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/jetty-webapp-9.3.8.v20160314.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/jetty-xml-9.3.8.v20160314.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/jfxswt.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/jquery-2.2.4.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/log4j-1.2.16.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.antlr.generator_3.2.0.v201405091103.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.antlr.runtime_3.2.0.v201101311130.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.antlr.runtime_4.3.0.v201502022030.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.apache.commons.cli_1.2.0.v201404270220.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.apache.commons.logging_1.1.1.v201101211721.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.apache.log4j_1.2.15.v201012070815.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.core.commands_3.9.0.v20170530-1048.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.core.contenttype_3.6.0.v20170207-1037.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.core.jobs_3.9.1.v20170714-0547.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.core.resources_3.12.0.v20170417-1558.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.core.runtime_3.13.0.v20170207-1030.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.emf.codegen_2.12.0.v20170609-0928.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.emf.codegen.ecore_2.13.0.v20170609-0928.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.emf.common_2.13.0.v20170609-0707.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.emf.common-2.15.0.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.emf.ecore_2.13.0.v20170609-0707.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.emf.ecore-2.15.0.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.emf.ecore.change_2.11.0.v20170609-0707.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.emf.ecore.change-2.13.0.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.emf.ecore.xmi_2.13.0.v20170609-0707.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.emf.ecore.xmi-2.15.0.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.emf.edit_2.12.0.v20170609-0928.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.emf.mwe.core_1.3.21.201705291011.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.emf.mwe.utils_1.3.21.201705291011.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.emf.mwe2.language_2.9.1.201705291011.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.emf.mwe2.launch_2.9.1.201705291011.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.emf.mwe2.lib_2.9.1.201705291011.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.emf.mwe2.runtime_2.9.1.201705291011.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.emf.transaction_1.9.0.201706061339.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.emf.validation_1.8.0.201706061352.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.emf.workspace_1.5.1.201706061339.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.equinox.app_1.3.400.v20150715-1528.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.equinox.common_3.9.0.v20170207-1454.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.equinox.common-3.8.0.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.equinox.preferences_3.7.0.v20170126-2132.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.equinox.registry_3.7.0.v20170222-1344.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.fx.ide.css.jfx8_3.0.0.201705220750.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.fx.osgi_3.0.0.201705220748.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.jface_3.13.1.v20170810-0135.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.lsp4j-0.4.0.M6.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.lsp4j.generator-0.4.0.M6.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.lsp4j.jsonrpc-0.4.0.M6.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.osgi_3.12.50.v20170928-1321.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.osgi-3.11.2.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.osgi.compatibility.state_1.1.0.v20170516-1513.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.swt_3.106.1.v20170926-0519.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.swt.win32.win32.x86_64_3.106.1.v20170926-0519.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.xpand_2.2.0.v201605260315.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.xtend_2.2.0.v201605260315.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.xtend.lib_2.13.0.v20171020-0659.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.xtend.lib-2.13.0.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.xtend.lib.macro_2.13.0.v20171020-0659.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.xtend.lib.macro-2.13.0.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.xtend.typesystem.emf_2.2.0.v201605260315.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.xtext_2.13.0.v20171020-0708.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.xtext-2.13.0.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.xtext.common.types_2.13.0.v20171020-0717.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.xtext.common.types-2.13.0.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.xtext.generator_2.13.0.v20171020-0717.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.xtext.ide_2.13.0.v20171020-0708.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.xtext.ide-2.13.0.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.xtext.util_2.13.0.v20171020-0708.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.xtext.util-2.13.0.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.xtext.web-2.13.0.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.xtext.web.servlet-2.13.0.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.xtext.xbase_2.13.0.v20171020-0717.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.xtext.xbase-2.13.0.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.xtext.xbase.ide_2.13.0.v20171020-0717.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.xtext.xbase.ide-2.13.0.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.xtext.xbase.lib_2.13.0.v20171020-0659.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.xtext.xbase.lib-2.13.0.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.xtext.xbase.web-2.13.0.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.eclipse.xtext.xtext.generator_2.13.0.v20171020-0708.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/org.objectweb.asm_5.0.1.v201404251740.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/requirejs-2.3.2.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/slf4j-api-1.7.25.jar"/>
+ <classpathentry kind="lib" path="lib/ServerLauncher_lib/slf4j-simple-1.7.25.jar"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/rba.tool.editor.endpoint/.gitignore b/rba.tool.editor.endpoint/.gitignore
new file mode 100644
index 0000000..da3648c
--- /dev/null
+++ b/rba.tool.editor.endpoint/.gitignore
@@ -0,0 +1,4 @@
+*.jar
+!lib/linux/z3/bin/*.jar
+*.java
+*.json \ No newline at end of file
diff --git a/rba.tool.editor.endpoint/.project b/rba.tool.editor.endpoint/.project
new file mode 100644
index 0000000..98bcbf7
--- /dev/null
+++ b/rba.tool.editor.endpoint/.project
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>rba.tool.editor.endpoint</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.m2e.core.maven2Builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.m2e.core.maven2Nature</nature>
+ <nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+ <linkedResources>
+ <link>
+ <name>.applied</name>
+ <type>2</type>
+ <location>C:/Users/10001135764/git/rba_tools/.metadata/rba.tool.editor.ui/rba.tool.editor.endpoint/.applied</location>
+ </link>
+ </linkedResources>
+</projectDescription>
diff --git a/rba.tool.editor.endpoint/.settings/org.eclipse.core.resources.prefs b/rba.tool.editor.endpoint/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..7a53139
--- /dev/null
+++ b/rba.tool.editor.endpoint/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,3 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
+encoding/src=UTF-8
diff --git a/rba.tool.editor.endpoint/.settings/org.eclipse.jdt.core.prefs b/rba.tool.editor.endpoint/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..13b3428
--- /dev/null
+++ b/rba.tool.editor.endpoint/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,13 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+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.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/rba.tool.editor.endpoint/.settings/org.eclipse.m2e.core.prefs b/rba.tool.editor.endpoint/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/rba.tool.editor.endpoint/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/rba.tool.editor.endpoint/.settings/org.eclipse.xtend.core.Xtend.prefs b/rba.tool.editor.endpoint/.settings/org.eclipse.xtend.core.Xtend.prefs
new file mode 100644
index 0000000..7e13f76
--- /dev/null
+++ b/rba.tool.editor.endpoint/.settings/org.eclipse.xtend.core.Xtend.prefs
@@ -0,0 +1,7 @@
+//outlet.DEFAULT_OUTPUT.sourceFolder.src/test/java.directory=xtend-gen
+BuilderConfiguration.is_project_specific=true
+eclipse.preferences.version=1
+outlet.DEFAULT_OUTPUT.hideLocalSyntheticVariables=true
+outlet.DEFAULT_OUTPUT.installDslAsPrimarySource=false
+outlet.DEFAULT_OUTPUT.sourceFolder.src.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.userOutputPerSourceFolder=true
diff --git a/rba.tool.editor.endpoint/lib/windows/z3/Microsoft.Z3.dll b/rba.tool.editor.endpoint/lib/windows/z3/Microsoft.Z3.dll
new file mode 100644
index 0000000..0faeeca
--- /dev/null
+++ b/rba.tool.editor.endpoint/lib/windows/z3/Microsoft.Z3.dll
Binary files differ
diff --git a/rba.tool.editor.endpoint/lib/windows/z3/Microsoft.Z3.xml b/rba.tool.editor.endpoint/lib/windows/z3/Microsoft.Z3.xml
new file mode 100644
index 0000000..e6ae53a
--- /dev/null
+++ b/rba.tool.editor.endpoint/lib/windows/z3/Microsoft.Z3.xml
@@ -0,0 +1,6648 @@
+<?xml version="1.0"?>
+<doc>
+ <assembly>
+ <name>Microsoft.Z3</name>
+ </assembly>
+ <members>
+ <member name="T:Microsoft.Z3.AlgebraicNum">
+ <summary>
+ Algebraic numbers
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.ArithExpr">
+ <summary>
+ Arithmetic expressions (int/real)
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Expr">
+ <summary>
+ Expressions are terms.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.AST">
+ <summary>
+ The abstract syntax tree (AST) class.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Z3Object">
+ <summary>
+ Internal base class for interfacing with native Z3 objects.
+ Should not be used externally.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Z3Object.Finalize">
+ <summary>
+ Finalizer.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Z3Object.Dispose">
+ <summary>
+ Disposes of the underlying native Z3 object.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.AST.op_Equality(Microsoft.Z3.AST,Microsoft.Z3.AST)">
+ <summary>
+ Comparison operator.
+ </summary>
+ <param name="a">An AST</param>
+ <param name="b">An AST</param>
+ <returns>True if <paramref name="a"/> and <paramref name="b"/> are from the same context
+ and represent the same sort; false otherwise.</returns>
+ </member>
+ <member name="M:Microsoft.Z3.AST.op_Inequality(Microsoft.Z3.AST,Microsoft.Z3.AST)">
+ <summary>
+ Comparison operator.
+ </summary>
+ <param name="a">An AST</param>
+ <param name="b">An AST</param>
+ <returns>True if <paramref name="a"/> and <paramref name="b"/> are not from the same context
+ or represent different sorts; false otherwise.</returns>
+ </member>
+ <member name="M:Microsoft.Z3.AST.Equals(System.Object)">
+ <summary>
+ Object comparison.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.AST.CompareTo(System.Object)">
+ <summary>
+ Object Comparison.
+ </summary>
+ <param name="other">Another AST</param>
+ <returns>Negative if the object should be sorted before <paramref name="other"/>, positive if after else zero.</returns>
+ </member>
+ <member name="M:Microsoft.Z3.AST.GetHashCode">
+ <summary>
+ The AST's hash code.
+ </summary>
+ <returns>A hash code</returns>
+ </member>
+ <member name="M:Microsoft.Z3.AST.Translate(Microsoft.Z3.Context)">
+ <summary>
+ Translates (copies) the AST to the Context <paramref name="ctx"/>.
+ </summary>
+ <param name="ctx">A context</param>
+ <returns>A copy of the AST which is associated with <paramref name="ctx"/></returns>
+ </member>
+ <member name="M:Microsoft.Z3.AST.ToString">
+ <summary>
+ A string representation of the AST.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.AST.SExpr">
+ <summary>
+ A string representation of the AST in s-expression notation.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.AST.Id">
+ <summary>
+ A unique identifier for the AST (unique among all ASTs).
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.AST.ASTKind">
+ <summary>
+ The kind of the AST.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.AST.IsExpr">
+ <summary>
+ Indicates whether the AST is an Expr
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.AST.IsApp">
+ <summary>
+ Indicates whether the AST is an application
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.AST.IsVar">
+ <summary>
+ Indicates whether the AST is a BoundVariable
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.AST.IsQuantifier">
+ <summary>
+ Indicates whether the AST is a Quantifier
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.AST.IsSort">
+ <summary>
+ Indicates whether the AST is a Sort
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.AST.IsFuncDecl">
+ <summary>
+ Indicates whether the AST is a FunctionDeclaration
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.IDecRefQueue">
+ <summary>
+ DecRefQueue interface
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.IDecRefQueue.SetLimit(System.UInt32)">
+ <summary>
+ Sets the limit on numbers of objects that are kept back at GC collection.
+ </summary>
+ <param name="l"></param>
+ </member>
+ <member name="M:Microsoft.Z3.Expr.Simplify(Microsoft.Z3.Params)">
+ <summary>
+ Returns a simplified version of the expression.
+ </summary>
+ <param name="p">A set of parameters to configure the simplifier</param>
+ <seealso cref="M:Microsoft.Z3.Context.SimplifyHelp"/>
+ </member>
+ <member name="M:Microsoft.Z3.Expr.Update(Microsoft.Z3.Expr[])">
+ <summary>
+ Update the arguments of the expression using the arguments <paramref name="args"/>
+ The number of new arguments should coincide with the current number of arguments.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Expr.Substitute(Microsoft.Z3.Expr[],Microsoft.Z3.Expr[])">
+ <summary>
+ Substitute every occurrence of <c>from[i]</c> in the expression with <c>to[i]</c>, for <c>i</c> smaller than <c>num_exprs</c>.
+ </summary>
+ <remarks>
+ The result is the new expression. The arrays <c>from</c> and <c>to</c> must have size <c>num_exprs</c>.
+ For every <c>i</c> smaller than <c>num_exprs</c>, we must have that
+ sort of <c>from[i]</c> must be equal to sort of <c>to[i]</c>.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Expr.Substitute(Microsoft.Z3.Expr,Microsoft.Z3.Expr)">
+ <summary>
+ Substitute every occurrence of <c>from</c> in the expression with <c>to</c>.
+ </summary>
+ <seealso cref="M:Microsoft.Z3.Expr.Substitute(Microsoft.Z3.Expr[],Microsoft.Z3.Expr[])"/>
+ </member>
+ <member name="M:Microsoft.Z3.Expr.SubstituteVars(Microsoft.Z3.Expr[])">
+ <summary>
+ Substitute the free variables in the expression with the expressions in <paramref name="to"/>
+ </summary>
+ <remarks>
+ For every <c>i</c> smaller than <c>num_exprs</c>, the variable with de-Bruijn index <c>i</c> is replaced with term <c>to[i]</c>.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Expr.Translate(Microsoft.Z3.Context)">
+ <summary>
+ Translates (copies) the term to the Context <paramref name="ctx"/>.
+ </summary>
+ <param name="ctx">A context</param>
+ <returns>A copy of the term which is associated with <paramref name="ctx"/></returns>
+ </member>
+ <member name="M:Microsoft.Z3.Expr.ToString">
+ <summary>
+ Returns a string representation of the expression.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Expr.#ctor(Microsoft.Z3.Context,System.IntPtr)">
+ <summary>
+ Constructor for Expr
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.FuncDecl">
+ <summary>
+ The function declaration of the function that is applied in this expression.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.BoolValue">
+ <summary>
+ Indicates whether the expression is the true or false expression
+ or something else (Z3_L_UNDEF).
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.NumArgs">
+ <summary>
+ The number of arguments of the expression.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.Args">
+ <summary>
+ The arguments of the expression.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsNumeral">
+ <summary>
+ Indicates whether the term is a numeral
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsWellSorted">
+ <summary>
+ Indicates whether the term is well-sorted.
+ </summary>
+ <returns>True if the term is well-sorted, false otherwise.</returns>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.Sort">
+ <summary>
+ The Sort of the term.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsConst">
+ <summary>
+ Indicates whether the term represents a constant.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsIntNum">
+ <summary>
+ Indicates whether the term is an integer numeral.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsRatNum">
+ <summary>
+ Indicates whether the term is a real numeral.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsAlgebraicNumber">
+ <summary>
+ Indicates whether the term is an algebraic number
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBool">
+ <summary>
+ Indicates whether the term has Boolean sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsTrue">
+ <summary>
+ Indicates whether the term is the constant true.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFalse">
+ <summary>
+ Indicates whether the term is the constant false.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsEq">
+ <summary>
+ Indicates whether the term is an equality predicate.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsDistinct">
+ <summary>
+ Indicates whether the term is an n-ary distinct predicate (every argument is mutually distinct).
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsITE">
+ <summary>
+ Indicates whether the term is a ternary if-then-else term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsAnd">
+ <summary>
+ Indicates whether the term is an n-ary conjunction
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsOr">
+ <summary>
+ Indicates whether the term is an n-ary disjunction
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsIff">
+ <summary>
+ Indicates whether the term is an if-and-only-if (Boolean equivalence, binary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsXor">
+ <summary>
+ Indicates whether the term is an exclusive or
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsNot">
+ <summary>
+ Indicates whether the term is a negation
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsImplies">
+ <summary>
+ Indicates whether the term is an implication
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsInterpolant">
+ <summary>
+ Indicates whether the term is marked for interpolation.
+ </summary>
+ <remarks></remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsInt">
+ <summary>
+ Indicates whether the term is of integer sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsReal">
+ <summary>
+ Indicates whether the term is of sort real.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsArithmeticNumeral">
+ <summary>
+ Indicates whether the term is an arithmetic numeral.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsLE">
+ <summary>
+ Indicates whether the term is a less-than-or-equal
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsGE">
+ <summary>
+ Indicates whether the term is a greater-than-or-equal
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsLT">
+ <summary>
+ Indicates whether the term is a less-than
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsGT">
+ <summary>
+ Indicates whether the term is a greater-than
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsAdd">
+ <summary>
+ Indicates whether the term is addition (binary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsSub">
+ <summary>
+ Indicates whether the term is subtraction (binary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsUMinus">
+ <summary>
+ Indicates whether the term is a unary minus
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsMul">
+ <summary>
+ Indicates whether the term is multiplication (binary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsDiv">
+ <summary>
+ Indicates whether the term is division (binary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsIDiv">
+ <summary>
+ Indicates whether the term is integer division (binary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsRemainder">
+ <summary>
+ Indicates whether the term is remainder (binary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsModulus">
+ <summary>
+ Indicates whether the term is modulus (binary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsIntToReal">
+ <summary>
+ Indicates whether the term is a coercion of integer to real (unary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsRealToInt">
+ <summary>
+ Indicates whether the term is a coercion of real to integer (unary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsRealIsInt">
+ <summary>
+ Indicates whether the term is a check that tests whether a real is integral (unary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsArray">
+ <summary>
+ Indicates whether the term is of an array sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsStore">
+ <summary>
+ Indicates whether the term is an array store.
+ </summary>
+ <remarks>It satisfies select(store(a,i,v),j) = if i = j then v else select(a,j).
+ Array store takes at least 3 arguments. </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsSelect">
+ <summary>
+ Indicates whether the term is an array select.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsConstantArray">
+ <summary>
+ Indicates whether the term is a constant array.
+ </summary>
+ <remarks>For example, select(const(v),i) = v holds for every v and i. The function is unary.</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsDefaultArray">
+ <summary>
+ Indicates whether the term is a default array.
+ </summary>
+ <remarks>For example default(const(v)) = v. The function is unary.</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsArrayMap">
+ <summary>
+ Indicates whether the term is an array map.
+ </summary>
+ <remarks>It satisfies map[f](a1,..,a_n)[i] = f(a1[i],...,a_n[i]) for every i.</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsAsArray">
+ <summary>
+ Indicates whether the term is an as-array term.
+ </summary>
+ <remarks>An as-array term is n array value that behaves as the function graph of the
+ function passed as parameter.</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsSetUnion">
+ <summary>
+ Indicates whether the term is set union
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsSetIntersect">
+ <summary>
+ Indicates whether the term is set intersection
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsSetDifference">
+ <summary>
+ Indicates whether the term is set difference
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsSetComplement">
+ <summary>
+ Indicates whether the term is set complement
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsSetSubset">
+ <summary>
+ Indicates whether the term is set subset
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBV">
+ <summary>
+ Indicates whether the terms is of bit-vector sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVNumeral">
+ <summary>
+ Indicates whether the term is a bit-vector numeral
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVBitOne">
+ <summary>
+ Indicates whether the term is a one-bit bit-vector with value one
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVBitZero">
+ <summary>
+ Indicates whether the term is a one-bit bit-vector with value zero
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVUMinus">
+ <summary>
+ Indicates whether the term is a bit-vector unary minus
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVAdd">
+ <summary>
+ Indicates whether the term is a bit-vector addition (binary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVSub">
+ <summary>
+ Indicates whether the term is a bit-vector subtraction (binary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVMul">
+ <summary>
+ Indicates whether the term is a bit-vector multiplication (binary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVSDiv">
+ <summary>
+ Indicates whether the term is a bit-vector signed division (binary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVUDiv">
+ <summary>
+ Indicates whether the term is a bit-vector unsigned division (binary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVSRem">
+ <summary>
+ Indicates whether the term is a bit-vector signed remainder (binary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVURem">
+ <summary>
+ Indicates whether the term is a bit-vector unsigned remainder (binary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVSMod">
+ <summary>
+ Indicates whether the term is a bit-vector signed modulus
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVSDiv0">
+ <summary>
+ Indicates whether the term is a bit-vector signed division by zero
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVUDiv0">
+ <summary>
+ Indicates whether the term is a bit-vector unsigned division by zero
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVSRem0">
+ <summary>
+ Indicates whether the term is a bit-vector signed remainder by zero
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVURem0">
+ <summary>
+ Indicates whether the term is a bit-vector unsigned remainder by zero
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVSMod0">
+ <summary>
+ Indicates whether the term is a bit-vector signed modulus by zero
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVULE">
+ <summary>
+ Indicates whether the term is an unsigned bit-vector less-than-or-equal
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVSLE">
+ <summary>
+ Indicates whether the term is a signed bit-vector less-than-or-equal
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVUGE">
+ <summary>
+ Indicates whether the term is an unsigned bit-vector greater-than-or-equal
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVSGE">
+ <summary>
+ Indicates whether the term is a signed bit-vector greater-than-or-equal
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVULT">
+ <summary>
+ Indicates whether the term is an unsigned bit-vector less-than
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVSLT">
+ <summary>
+ Indicates whether the term is a signed bit-vector less-than
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVUGT">
+ <summary>
+ Indicates whether the term is an unsigned bit-vector greater-than
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVSGT">
+ <summary>
+ Indicates whether the term is a signed bit-vector greater-than
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVAND">
+ <summary>
+ Indicates whether the term is a bit-wise AND
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVOR">
+ <summary>
+ Indicates whether the term is a bit-wise OR
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVNOT">
+ <summary>
+ Indicates whether the term is a bit-wise NOT
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVXOR">
+ <summary>
+ Indicates whether the term is a bit-wise XOR
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVNAND">
+ <summary>
+ Indicates whether the term is a bit-wise NAND
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVNOR">
+ <summary>
+ Indicates whether the term is a bit-wise NOR
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVXNOR">
+ <summary>
+ Indicates whether the term is a bit-wise XNOR
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVConcat">
+ <summary>
+ Indicates whether the term is a bit-vector concatenation (binary)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVSignExtension">
+ <summary>
+ Indicates whether the term is a bit-vector sign extension
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVZeroExtension">
+ <summary>
+ Indicates whether the term is a bit-vector zero extension
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVExtract">
+ <summary>
+ Indicates whether the term is a bit-vector extraction
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVRepeat">
+ <summary>
+ Indicates whether the term is a bit-vector repetition
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVReduceOR">
+ <summary>
+ Indicates whether the term is a bit-vector reduce OR
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVReduceAND">
+ <summary>
+ Indicates whether the term is a bit-vector reduce AND
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVComp">
+ <summary>
+ Indicates whether the term is a bit-vector comparison
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVShiftLeft">
+ <summary>
+ Indicates whether the term is a bit-vector shift left
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVShiftRightLogical">
+ <summary>
+ Indicates whether the term is a bit-vector logical shift right
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVShiftRightArithmetic">
+ <summary>
+ Indicates whether the term is a bit-vector arithmetic shift left
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVRotateLeft">
+ <summary>
+ Indicates whether the term is a bit-vector rotate left
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVRotateRight">
+ <summary>
+ Indicates whether the term is a bit-vector rotate right
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVRotateLeftExtended">
+ <summary>
+ Indicates whether the term is a bit-vector rotate left (extended)
+ </summary>
+ <remarks>Similar to Z3_OP_ROTATE_LEFT, but it is a binary operator instead of a parametric one.</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVRotateRightExtended">
+ <summary>
+ Indicates whether the term is a bit-vector rotate right (extended)
+ </summary>
+ <remarks>Similar to Z3_OP_ROTATE_RIGHT, but it is a binary operator instead of a parametric one.</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsIntToBV">
+ <summary>
+ Indicates whether the term is a coercion from integer to bit-vector
+ </summary>
+ <remarks>This function is not supported by the decision procedures. Only the most
+ rudimentary simplification rules are applied to this function.</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVToInt">
+ <summary>
+ Indicates whether the term is a coercion from bit-vector to integer
+ </summary>
+ <remarks>This function is not supported by the decision procedures. Only the most
+ rudimentary simplification rules are applied to this function.</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVCarry">
+ <summary>
+ Indicates whether the term is a bit-vector carry
+ </summary>
+ <remarks>Compute the carry bit in a full-adder. The meaning is given by the
+ equivalence (carry l1 l2 l3) &lt;=&gt; (or (and l1 l2) (and l1 l3) (and l2 l3)))</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsBVXOR3">
+ <summary>
+ Indicates whether the term is a bit-vector ternary XOR
+ </summary>
+ <remarks>The meaning is given by the equivalence (xor3 l1 l2 l3) &lt;=&gt; (xor (xor l1 l2) l3)</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsLabel">
+ <summary>
+ Indicates whether the term is a label (used by the Boogie Verification condition generator).
+ </summary>
+ <remarks>The label has two parameters, a string and a Boolean polarity. It takes one argument, a formula.</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsLabelLit">
+ <summary>
+ Indicates whether the term is a label literal (used by the Boogie Verification condition generator).
+ </summary>
+ <remarks>A label literal has a set of string parameters. It takes no arguments.</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsOEQ">
+ <summary>
+ Indicates whether the term is a binary equivalence modulo namings.
+ </summary>
+ <remarks>This binary predicate is used in proof terms.
+ It captures equisatisfiability and equivalence modulo renamings.</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofTrue">
+ <summary>
+ Indicates whether the term is a Proof for the expression 'true'.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofAsserted">
+ <summary>
+ Indicates whether the term is a proof for a fact asserted by the user.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofGoal">
+ <summary>
+ Indicates whether the term is a proof for a fact (tagged as goal) asserted by the user.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofModusPonens">
+ <summary>
+ Indicates whether the term is proof via modus ponens
+ </summary>
+ <remarks>
+ Given a proof for p and a proof for (implies p q), produces a proof for q.
+ T1: p
+ T2: (implies p q)
+ [mp T1 T2]: q
+ The second antecedents may also be a proof for (iff p q).</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofReflexivity">
+ <summary>
+ Indicates whether the term is a proof for (R t t), where R is a reflexive relation.
+ </summary>
+ <remarks>This proof object has no antecedents.
+ The only reflexive relations that are used are
+ equivalence modulo namings, equality and equivalence.
+ That is, R is either '~', '=' or 'iff'.</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofSymmetry">
+ <summary>
+ Indicates whether the term is proof by symmetricity of a relation
+ </summary>
+ <remarks>
+ Given an symmetric relation R and a proof for (R t s), produces a proof for (R s t).
+ T1: (R t s)
+ [symmetry T1]: (R s t)
+ T1 is the antecedent of this proof object.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofTransitivity">
+ <summary>
+ Indicates whether the term is a proof by transitivity of a relation
+ </summary>
+ <remarks>
+ Given a transitive relation R, and proofs for (R t s) and (R s u), produces a proof
+ for (R t u).
+ T1: (R t s)
+ T2: (R s u)
+ [trans T1 T2]: (R t u)
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofTransitivityStar">
+ <summary>
+ Indicates whether the term is a proof by condensed transitivity of a relation
+ </summary>
+ <remarks>
+ Condensed transitivity proof. This proof object is only used if the parameter PROOF_MODE is 1.
+ It combines several symmetry and transitivity proofs.
+ Example:
+ T1: (R a b)
+ T2: (R c b)
+ T3: (R c d)
+ [trans* T1 T2 T3]: (R a d)
+ R must be a symmetric and transitive relation.
+
+ Assuming that this proof object is a proof for (R s t), then
+ a proof checker must check if it is possible to prove (R s t)
+ using the antecedents, symmetry and transitivity. That is,
+ if there is a path from s to t, if we view every
+ antecedent (R a b) as an edge between a and b.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofMonotonicity">
+ <summary>
+ Indicates whether the term is a monotonicity proof object.
+ </summary>
+ <remarks>
+ T1: (R t_1 s_1)
+ ...
+ Tn: (R t_n s_n)
+ [monotonicity T1 ... Tn]: (R (f t_1 ... t_n) (f s_1 ... s_n))
+ Remark: if t_i == s_i, then the antecedent Ti is suppressed.
+ That is, reflexivity proofs are supressed to save space.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofQuantIntro">
+ <summary>
+ Indicates whether the term is a quant-intro proof
+ </summary>
+ <remarks>
+ Given a proof for (~ p q), produces a proof for (~ (forall (x) p) (forall (x) q)).
+ T1: (~ p q)
+ [quant-intro T1]: (~ (forall (x) p) (forall (x) q))
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofDistributivity">
+ <summary>
+ Indicates whether the term is a distributivity proof object.
+ </summary>
+ <remarks>
+ Given that f (= or) distributes over g (= and), produces a proof for
+ (= (f a (g c d))
+ (g (f a c) (f a d)))
+ If f and g are associative, this proof also justifies the following equality:
+ (= (f (g a b) (g c d))
+ (g (f a c) (f a d) (f b c) (f b d)))
+ where each f and g can have arbitrary number of arguments.
+
+ This proof object has no antecedents.
+ Remark. This rule is used by the CNF conversion pass and
+ instantiated by f = or, and g = and.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofAndElimination">
+ <summary>
+ Indicates whether the term is a proof by elimination of AND
+ </summary>
+ <remarks>
+ Given a proof for (and l_1 ... l_n), produces a proof for l_i
+ T1: (and l_1 ... l_n)
+ [and-elim T1]: l_i
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofOrElimination">
+ <summary>
+ Indicates whether the term is a proof by eliminiation of not-or
+ </summary>
+ <remarks>
+ Given a proof for (not (or l_1 ... l_n)), produces a proof for (not l_i).
+ T1: (not (or l_1 ... l_n))
+ [not-or-elim T1]: (not l_i)
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofRewrite">
+ <summary>
+ Indicates whether the term is a proof by rewriting
+ </summary>
+ <remarks>
+ A proof for a local rewriting step (= t s).
+ The head function symbol of t is interpreted.
+
+ This proof object has no antecedents.
+ The conclusion of a rewrite rule is either an equality (= t s),
+ an equivalence (iff t s), or equi-satisfiability (~ t s).
+ Remark: if f is bool, then = is iff.
+
+ Examples:
+ (= (+ x 0) x)
+ (= (+ x 1 2) (+ 3 x))
+ (iff (or x false) x)
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofRewriteStar">
+ <summary>
+ Indicates whether the term is a proof by rewriting
+ </summary>
+ <remarks>
+ A proof for rewriting an expression t into an expression s.
+ This proof object is used if the parameter PROOF_MODE is 1.
+ This proof object can have n antecedents.
+ The antecedents are proofs for equalities used as substitution rules.
+ The object is also used in a few cases if the parameter PROOF_MODE is 2.
+ The cases are:
+ - When applying contextual simplification (CONTEXT_SIMPLIFIER=true)
+ - When converting bit-vectors to Booleans (BIT2BOOL=true)
+ - When pulling ite expression up (PULL_CHEAP_ITE_TREES=true)
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofPullQuant">
+ <summary>
+ Indicates whether the term is a proof for pulling quantifiers out.
+ </summary>
+ <remarks>
+ A proof for (iff (f (forall (x) q(x)) r) (forall (x) (f (q x) r))). This proof object has no antecedents.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofPullQuantStar">
+ <summary>
+ Indicates whether the term is a proof for pulling quantifiers out.
+ </summary>
+ <remarks>
+ A proof for (iff P Q) where Q is in prenex normal form.
+ This proof object is only used if the parameter PROOF_MODE is 1.
+ This proof object has no antecedents
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofPushQuant">
+ <summary>
+ Indicates whether the term is a proof for pushing quantifiers in.
+ </summary>
+ <remarks>
+ A proof for:
+ (iff (forall (x_1 ... x_m) (and p_1[x_1 ... x_m] ... p_n[x_1 ... x_m]))
+ (and (forall (x_1 ... x_m) p_1[x_1 ... x_m])
+ ...
+ (forall (x_1 ... x_m) p_n[x_1 ... x_m])))
+ This proof object has no antecedents
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofElimUnusedVars">
+ <summary>
+ Indicates whether the term is a proof for elimination of unused variables.
+ </summary>
+ <remarks>
+ A proof for (iff (forall (x_1 ... x_n y_1 ... y_m) p[x_1 ... x_n])
+ (forall (x_1 ... x_n) p[x_1 ... x_n]))
+
+ It is used to justify the elimination of unused variables.
+ This proof object has no antecedents.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofDER">
+ <summary>
+ Indicates whether the term is a proof for destructive equality resolution
+ </summary>
+ <remarks>
+ A proof for destructive equality resolution:
+ (iff (forall (x) (or (not (= x t)) P[x])) P[t])
+ if x does not occur in t.
+
+ This proof object has no antecedents.
+
+ Several variables can be eliminated simultaneously.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofQuantInst">
+ <summary>
+ Indicates whether the term is a proof for quantifier instantiation
+ </summary>
+ <remarks>
+ A proof of (or (not (forall (x) (P x))) (P a))
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofHypothesis">
+ <summary>
+ Indicates whether the term is a hypthesis marker.
+ </summary>
+ <remarks>Mark a hypothesis in a natural deduction style proof.</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofLemma">
+ <summary>
+ Indicates whether the term is a proof by lemma
+ </summary>
+ <remarks>
+ T1: false
+ [lemma T1]: (or (not l_1) ... (not l_n))
+
+ This proof object has one antecedent: a hypothetical proof for false.
+ It converts the proof in a proof for (or (not l_1) ... (not l_n)),
+ when T1 contains the hypotheses: l_1, ..., l_n.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofUnitResolution">
+ <summary>
+ Indicates whether the term is a proof by unit resolution
+ </summary>
+ <remarks>
+ T1: (or l_1 ... l_n l_1' ... l_m')
+ T2: (not l_1)
+ ...
+ T(n+1): (not l_n)
+ [unit-resolution T1 ... T(n+1)]: (or l_1' ... l_m')
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofIFFTrue">
+ <summary>
+ Indicates whether the term is a proof by iff-true
+ </summary>
+ <remarks>
+ T1: p
+ [iff-true T1]: (iff p true)
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofIFFFalse">
+ <summary>
+ Indicates whether the term is a proof by iff-false
+ </summary>
+ <remarks>
+ T1: (not p)
+ [iff-false T1]: (iff p false)
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofCommutativity">
+ <summary>
+ Indicates whether the term is a proof by commutativity
+ </summary>
+ <remarks>
+ [comm]: (= (f a b) (f b a))
+
+ f is a commutative operator.
+
+ This proof object has no antecedents.
+ Remark: if f is bool, then = is iff.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofDefAxiom">
+ <summary>
+ Indicates whether the term is a proof for Tseitin-like axioms
+ </summary>
+ <remarks>
+ Proof object used to justify Tseitin's like axioms:
+
+ (or (not (and p q)) p)
+ (or (not (and p q)) q)
+ (or (not (and p q r)) p)
+ (or (not (and p q r)) q)
+ (or (not (and p q r)) r)
+ ...
+ (or (and p q) (not p) (not q))
+ (or (not (or p q)) p q)
+ (or (or p q) (not p))
+ (or (or p q) (not q))
+ (or (not (iff p q)) (not p) q)
+ (or (not (iff p q)) p (not q))
+ (or (iff p q) (not p) (not q))
+ (or (iff p q) p q)
+ (or (not (ite a b c)) (not a) b)
+ (or (not (ite a b c)) a c)
+ (or (ite a b c) (not a) (not b))
+ (or (ite a b c) a (not c))
+ (or (not (not a)) (not a))
+ (or (not a) a)
+
+ This proof object has no antecedents.
+ Note: all axioms are propositional tautologies.
+ Note also that 'and' and 'or' can take multiple arguments.
+ You can recover the propositional tautologies by
+ unfolding the Boolean connectives in the axioms a small
+ bounded number of steps (=3).
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofDefIntro">
+ <summary>
+ Indicates whether the term is a proof for introduction of a name
+ </summary>
+ <remarks>
+ Introduces a name for a formula/term.
+ Suppose e is an expression with free variables x, and def-intro
+ introduces the name n(x). The possible cases are:
+
+ When e is of Boolean type:
+ [def-intro]: (and (or n (not e)) (or (not n) e))
+
+ or:
+ [def-intro]: (or (not n) e)
+ when e only occurs positively.
+
+ When e is of the form (ite cond th el):
+ [def-intro]: (and (or (not cond) (= n th)) (or cond (= n el)))
+
+ Otherwise:
+ [def-intro]: (= n e)
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofApplyDef">
+ <summary>
+ Indicates whether the term is a proof for application of a definition
+ </summary>
+ <remarks>
+ [apply-def T1]: F ~ n
+ F is 'equivalent' to n, given that T1 is a proof that
+ n is a name for F.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofIFFOEQ">
+ <summary>
+ Indicates whether the term is a proof iff-oeq
+ </summary>
+ <remarks>
+ T1: (iff p q)
+ [iff~ T1]: (~ p q)
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofNNFPos">
+ <summary>
+ Indicates whether the term is a proof for a positive NNF step
+ </summary>
+ <remarks>
+ Proof for a (positive) NNF step. Example:
+
+ T1: (not s_1) ~ r_1
+ T2: (not s_2) ~ r_2
+ T3: s_1 ~ r_1'
+ T4: s_2 ~ r_2'
+ [nnf-pos T1 T2 T3 T4]: (~ (iff s_1 s_2)
+ (and (or r_1 r_2') (or r_1' r_2)))
+
+ The negation normal form steps NNF_POS and NNF_NEG are used in the following cases:
+ (a) When creating the NNF of a positive force quantifier.
+ The quantifier is retained (unless the bound variables are eliminated).
+ Example
+ T1: q ~ q_new
+ [nnf-pos T1]: (~ (forall (x T) q) (forall (x T) q_new))
+
+ (b) When recursively creating NNF over Boolean formulas, where the top-level
+ connective is changed during NNF conversion. The relevant Boolean connectives
+ for NNF_POS are 'implies', 'iff', 'xor', 'ite'.
+ NNF_NEG furthermore handles the case where negation is pushed
+ over Boolean connectives 'and' and 'or'.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofNNFNeg">
+ <summary>
+ Indicates whether the term is a proof for a negative NNF step
+ </summary>
+ <remarks>
+ Proof for a (negative) NNF step. Examples:
+
+ T1: (not s_1) ~ r_1
+ ...
+ Tn: (not s_n) ~ r_n
+ [nnf-neg T1 ... Tn]: (not (and s_1 ... s_n)) ~ (or r_1 ... r_n)
+ and
+ T1: (not s_1) ~ r_1
+ ...
+ Tn: (not s_n) ~ r_n
+ [nnf-neg T1 ... Tn]: (not (or s_1 ... s_n)) ~ (and r_1 ... r_n)
+ and
+ T1: (not s_1) ~ r_1
+ T2: (not s_2) ~ r_2
+ T3: s_1 ~ r_1'
+ T4: s_2 ~ r_2'
+ [nnf-neg T1 T2 T3 T4]: (~ (not (iff s_1 s_2))
+ (and (or r_1 r_2) (or r_1' r_2')))
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofNNFStar">
+ <summary>
+ Indicates whether the term is a proof for (~ P Q) here Q is in negation normal form.
+ </summary>
+ <remarks>
+ A proof for (~ P Q) where Q is in negation normal form.
+
+ This proof object is only used if the parameter PROOF_MODE is 1.
+
+ This proof object may have n antecedents. Each antecedent is a PR_DEF_INTRO.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofCNFStar">
+ <summary>
+ Indicates whether the term is a proof for (~ P Q) where Q is in conjunctive normal form.
+ </summary>
+ <remarks>
+ A proof for (~ P Q) where Q is in conjunctive normal form.
+ This proof object is only used if the parameter PROOF_MODE is 1.
+ This proof object may have n antecedents. Each antecedent is a PR_DEF_INTRO.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofSkolemize">
+ <summary>
+ Indicates whether the term is a proof for a Skolemization step
+ </summary>
+ <remarks>
+ Proof for:
+
+ [sk]: (~ (not (forall x (p x y))) (not (p (sk y) y)))
+ [sk]: (~ (exists x (p x y)) (p (sk y) y))
+
+ This proof object has no antecedents.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofModusPonensOEQ">
+ <summary>
+ Indicates whether the term is a proof by modus ponens for equi-satisfiability.
+ </summary>
+ <remarks>
+ Modus ponens style rule for equi-satisfiability.
+ T1: p
+ T2: (~ p q)
+ [mp~ T1 T2]: q
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsProofTheoryLemma">
+ <summary>
+ Indicates whether the term is a proof for theory lemma
+ </summary>
+ <remarks>
+ Generic proof for theory lemmas.
+
+ The theory lemma function comes with one or more parameters.
+ The first parameter indicates the name of the theory.
+ For the theory of arithmetic, additional parameters provide hints for
+ checking the theory lemma.
+ The hints for arithmetic are:
+ - farkas - followed by rational coefficients. Multiply the coefficients to the
+ inequalities in the lemma, add the (negated) inequalities and obtain a contradiction.
+ - triangle-eq - Indicates a lemma related to the equivalence:
+ (iff (= t1 t2) (and (&lt;= t1 t2) (&lt;= t2 t1)))
+ - gcd-test - Indicates an integer linear arithmetic lemma that uses a gcd test.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsRelation">
+ <summary>
+ Indicates whether the term is of relation sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsRelationStore">
+ <summary>
+ Indicates whether the term is an relation store
+ </summary>
+ <remarks>
+ Insert a record into a relation.
+ The function takes <c>n+1</c> arguments, where the first argument is the relation and the remaining <c>n</c> elements
+ correspond to the <c>n</c> columns of the relation.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsEmptyRelation">
+ <summary>
+ Indicates whether the term is an empty relation
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsIsEmptyRelation">
+ <summary>
+ Indicates whether the term is a test for the emptiness of a relation
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsRelationalJoin">
+ <summary>
+ Indicates whether the term is a relational join
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsRelationUnion">
+ <summary>
+ Indicates whether the term is the union or convex hull of two relations.
+ </summary>
+ <remarks>The function takes two arguments.</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsRelationWiden">
+ <summary>
+ Indicates whether the term is the widening of two relations
+ </summary>
+ <remarks>The function takes two arguments.</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsRelationProject">
+ <summary>
+ Indicates whether the term is a projection of columns (provided as numbers in the parameters).
+ </summary>
+ <remarks>The function takes one argument.</remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsRelationFilter">
+ <summary>
+ Indicates whether the term is a relation filter
+ </summary>
+ <remarks>
+ Filter (restrict) a relation with respect to a predicate.
+ The first argument is a relation.
+ The second argument is a predicate with free de-Brujin indices
+ corresponding to the columns of the relation.
+ So the first column in the relation has index 0.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsRelationNegationFilter">
+ <summary>
+ Indicates whether the term is an intersection of a relation with the negation of another.
+ </summary>
+ <remarks>
+ Intersect the first relation with respect to negation
+ of the second relation (the function takes two arguments).
+ Logically, the specification can be described by a function
+
+ target = filter_by_negation(pos, neg, columns)
+
+ where columns are pairs c1, d1, .., cN, dN of columns from pos and neg, such that
+ target are elements in x in pos, such that there is no y in neg that agrees with
+ x on the columns c1, d1, .., cN, dN.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsRelationRename">
+ <summary>
+ Indicates whether the term is the renaming of a column in a relation
+ </summary>
+ <remarks>
+ The function takes one argument.
+ The parameters contain the renaming as a cycle.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsRelationComplement">
+ <summary>
+ Indicates whether the term is the complement of a relation
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsRelationSelect">
+ <summary>
+ Indicates whether the term is a relational select
+ </summary>
+ <remarks>
+ Check if a record is an element of the relation.
+ The function takes <c>n+1</c> arguments, where the first argument is a relation,
+ and the remaining <c>n</c> arguments correspond to a record.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsRelationClone">
+ <summary>
+ Indicates whether the term is a relational clone (copy)
+ </summary>
+ <remarks>
+ Create a fresh copy (clone) of a relation.
+ The function is logically the identity, but
+ in the context of a register machine allows
+ for terms of kind <seealso cref="P:Microsoft.Z3.Expr.IsRelationUnion"/>
+ to perform destructive updates to the first argument.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFiniteDomain">
+ <summary>
+ Indicates whether the term is of an array sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFiniteDomainLT">
+ <summary>
+ Indicates whether the term is a less than predicate over a finite domain.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFP">
+ <summary>
+ Indicates whether the terms is of floating-point sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPRM">
+ <summary>
+ Indicates whether the terms is of floating-point rounding mode sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPNumeral">
+ <summary>
+ Indicates whether the term is a floating-point numeral
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPRMNumeral">
+ <summary>
+ Indicates whether the term is a floating-point rounding mode numeral
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPRMRoundNearestTiesToEven">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundNearestTiesToEven
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPRMRoundNearestTiesToAway">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundNearestTiesToAway
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPRMRoundTowardNegative">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundTowardNegative
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPRMRoundTowardPositive">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundTowardPositive
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPRMRoundTowardZero">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundTowardZero
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPRMExprRNE">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundNearestTiesToEven
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPRMExprRNA">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundNearestTiesToAway
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPRMExprRTN">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundTowardNegative
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPRMExprRTP">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundTowardPositive
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPRMExprRTZ">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundTowardZero
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPRMExpr">
+ <summary>
+ Indicates whether the term is a floating-point rounding mode numeral
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPPlusInfinity">
+ <summary>
+ Indicates whether the term is a floating-point +oo
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPMinusInfinity">
+ <summary>
+ Indicates whether the term is a floating-point -oo
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPNaN">
+ <summary>
+ Indicates whether the term is a floating-point NaN
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPPlusZero">
+ <summary>
+ Indicates whether the term is a floating-point +zero
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPMinusZero">
+ <summary>
+ Indicates whether the term is a floating-point -zero
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPAdd">
+ <summary>
+ Indicates whether the term is a floating-point addition term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPSub">
+ <summary>
+ Indicates whether the term is a floating-point subtraction term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPNeg">
+ <summary>
+ Indicates whether the term is a floating-point negation term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPMul">
+ <summary>
+ Indicates whether the term is a floating-point multiplication term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPDiv">
+ <summary>
+ Indicates whether the term is a floating-point divison term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPRem">
+ <summary>
+ Indicates whether the term is a floating-point remainder term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPAbs">
+ <summary>
+ Indicates whether the term is a floating-point term absolute value term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPMin">
+ <summary>
+ Indicates whether the term is a floating-point minimum term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPMax">
+ <summary>
+ Indicates whether the term is a floating-point maximum term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPFMA">
+ <summary>
+ Indicates whether the term is a floating-point fused multiply-add term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPSqrt">
+ <summary>
+ Indicates whether the term is a floating-point square root term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPRoundToIntegral">
+ <summary>
+ Indicates whether the term is a floating-point roundToIntegral term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPEq">
+ <summary>
+ Indicates whether the term is a floating-point equality term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPLt">
+ <summary>
+ Indicates whether the term is a floating-point less-than term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPGt">
+ <summary>
+ Indicates whether the term is a floating-point greater-than term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPLe">
+ <summary>
+ Indicates whether the term is a floating-point less-than or equal term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPGe">
+ <summary>
+ Indicates whether the term is a floating-point greater-than or erqual term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPisNaN">
+ <summary>
+ Indicates whether the term is a floating-point isNaN predicate term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPisInf">
+ <summary>
+ Indicates whether the term is a floating-point isInf predicate term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPisZero">
+ <summary>
+ Indicates whether the term is a floating-point isZero predicate term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPisNormal">
+ <summary>
+ Indicates whether the term is a floating-point isNormal term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPisSubnormal">
+ <summary>
+ Indicates whether the term is a floating-point isSubnormal predicate term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPisNegative">
+ <summary>
+ Indicates whether the term is a floating-point isNegative predicate term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPisPositive">
+ <summary>
+ Indicates whether the term is a floating-point isPositive predicate term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPFP">
+ <summary>
+ Indicates whether the term is a floating-point constructor term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPToFp">
+ <summary>
+ Indicates whether the term is a floating-point conversion term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPToFpUnsigned">
+ <summary>
+ Indicates whether the term is a floating-point conversion from unsigned bit-vector term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPToUBV">
+ <summary>
+ Indicates whether the term is a floating-point conversion to unsigned bit-vector term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPToSBV">
+ <summary>
+ Indicates whether the term is a floating-point conversion to signed bit-vector term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPToReal">
+ <summary>
+ Indicates whether the term is a floating-point conversion to real term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.IsFPToIEEEBV">
+ <summary>
+ Indicates whether the term is a floating-point conversion to IEEE-754 bit-vector term
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Expr.Index">
+ <summary>
+ The de-Burijn index of a bound variable.
+ </summary>
+ <remarks>
+ Bound variables are indexed by de-Bruijn indices. It is perhaps easiest to explain
+ the meaning of de-Bruijn indices by indicating the compilation process from
+ non-de-Bruijn formulas to de-Bruijn format.
+ <code>
+ abs(forall (x1) phi) = forall (x1) abs1(phi, x1, 0)
+ abs(forall (x1, x2) phi) = abs(forall (x1) abs(forall (x2) phi))
+ abs1(x, x, n) = b_n
+ abs1(y, x, n) = y
+ abs1(f(t1,...,tn), x, n) = f(abs1(t1,x,n), ..., abs1(tn,x,n))
+ abs1(forall (x1) phi, x, n) = forall (x1) (abs1(phi, x, n+1))
+ </code>
+ The last line is significant: the index of a bound variable is different depending
+ on the scope in which it appears. The deeper x appears, the higher is its
+ index.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.#ctor(Microsoft.Z3.Context,System.IntPtr)">
+ <summary> Constructor for ArithExpr </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Division(Microsoft.Z3.ArithExpr,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical divsion operator (over reals) </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Division(Microsoft.Z3.ArithExpr,System.Int32)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Division(Microsoft.Z3.ArithExpr,System.Double)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Division(System.Int32,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Division(System.Double,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_UnaryNegation(Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Subtraction(Microsoft.Z3.ArithExpr,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Subtraction(Microsoft.Z3.ArithExpr,System.Int32)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Subtraction(Microsoft.Z3.ArithExpr,System.Double)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Subtraction(System.Int32,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Subtraction(System.Double,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Addition(Microsoft.Z3.ArithExpr,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Addition(Microsoft.Z3.ArithExpr,System.Int32)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Addition(Microsoft.Z3.ArithExpr,System.Double)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Addition(System.Int32,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Addition(System.Double,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Multiply(Microsoft.Z3.ArithExpr,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Multiply(Microsoft.Z3.ArithExpr,System.Int32)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Multiply(Microsoft.Z3.ArithExpr,System.Double)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Multiply(System.Int32,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_Multiply(System.Double,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_LessThanOrEqual(Microsoft.Z3.ArithExpr,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_LessThanOrEqual(Microsoft.Z3.ArithExpr,System.Int32)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_LessThanOrEqual(Microsoft.Z3.ArithExpr,System.Double)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_LessThanOrEqual(System.Int32,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_LessThanOrEqual(System.Double,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_LessThan(Microsoft.Z3.ArithExpr,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_LessThan(Microsoft.Z3.ArithExpr,System.Int32)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_LessThan(Microsoft.Z3.ArithExpr,System.Double)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_LessThan(System.Int32,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_LessThan(System.Double,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_GreaterThan(Microsoft.Z3.ArithExpr,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_GreaterThan(Microsoft.Z3.ArithExpr,System.Int32)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_GreaterThan(Microsoft.Z3.ArithExpr,System.Double)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_GreaterThan(System.Int32,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_GreaterThan(System.Double,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_GreaterThanOrEqual(Microsoft.Z3.ArithExpr,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_GreaterThanOrEqual(Microsoft.Z3.ArithExpr,System.Int32)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_GreaterThanOrEqual(Microsoft.Z3.ArithExpr,System.Double)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_GreaterThanOrEqual(System.Int32,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArithExpr.op_GreaterThanOrEqual(System.Double,Microsoft.Z3.ArithExpr)">
+ <summary> Operator overloading for arithmetical operator </summary>
+ </member>
+ <member name="M:Microsoft.Z3.AlgebraicNum.ToUpper(System.UInt32)">
+ <summary>
+ Return a upper bound for a given real algebraic number.
+ The interval isolating the number is smaller than 1/10^<paramref name="precision"/>.
+ <seealso cref="P:Microsoft.Z3.Expr.IsAlgebraicNumber"/>
+ </summary>
+ <param name="precision">the precision of the result</param>
+ <returns>A numeral Expr of sort Real</returns>
+ </member>
+ <member name="M:Microsoft.Z3.AlgebraicNum.ToLower(System.UInt32)">
+ <summary>
+ Return a lower bound for the given real algebraic number.
+ The interval isolating the number is smaller than 1/10^<paramref name="precision"/>.
+ <seealso cref="P:Microsoft.Z3.Expr.IsAlgebraicNumber"/>
+ </summary>
+ <param name="precision"></param>
+ <returns>A numeral Expr of sort Real</returns>
+ </member>
+ <member name="M:Microsoft.Z3.AlgebraicNum.ToDecimal(System.UInt32)">
+ <summary>
+ Returns a string representation in decimal notation.
+ </summary>
+ <remarks>The result has at most <paramref name="precision"/> decimal places.</remarks>
+ </member>
+ <member name="T:Microsoft.Z3.ApplyResult">
+ <summary>
+ ApplyResult objects represent the result of an application of a
+ tactic to a goal. It contains the subgoals that were produced.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ApplyResult.ConvertModel(System.UInt32,Microsoft.Z3.Model)">
+ <summary>
+ Convert a model for the subgoal <paramref name="i"/> into a model for the original
+ goal <c>g</c>, that the ApplyResult was obtained from.
+ </summary>
+ <returns>A model for <c>g</c></returns>
+ </member>
+ <member name="M:Microsoft.Z3.ApplyResult.ToString">
+ <summary>
+ A string representation of the ApplyResult.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.ApplyResult.NumSubgoals">
+ <summary>
+ The number of Subgoals.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.ApplyResult.Subgoals">
+ <summary>
+ Retrieves the subgoals from the ApplyResult.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.ArithSort">
+ <summary>
+ An arithmetic sort, i.e., Int or Real.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Sort">
+ <summary>
+ The Sort class implements type information for ASTs.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Sort.op_Equality(Microsoft.Z3.Sort,Microsoft.Z3.Sort)">
+ <summary>
+ Comparison operator.
+ </summary>
+ <param name="a">A Sort</param>
+ <param name="b">A Sort</param>
+ <returns>True if <paramref name="a"/> and <paramref name="b"/> are from the same context
+ and represent the same sort; false otherwise.</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Sort.op_Inequality(Microsoft.Z3.Sort,Microsoft.Z3.Sort)">
+ <summary>
+ Comparison operator.
+ </summary>
+ <param name="a">A Sort</param>
+ <param name="b">A Sort</param>
+ <returns>True if <paramref name="a"/> and <paramref name="b"/> are not from the same context
+ or represent different sorts; false otherwise.</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Sort.Equals(System.Object)">
+ <summary>
+ Equality operator for objects of type Sort.
+ </summary>
+ <param name="o"></param>
+ <returns></returns>
+ </member>
+ <member name="M:Microsoft.Z3.Sort.GetHashCode">
+ <summary>
+ Hash code generation for Sorts
+ </summary>
+ <returns>A hash code</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Sort.ToString">
+ <summary>
+ A string representation of the sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Sort.#ctor(Microsoft.Z3.Context,System.IntPtr)">
+ <summary>
+ Sort constructor
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Sort.Id">
+ <summary>
+ Returns a unique identifier for the sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Sort.SortKind">
+ <summary>
+ The kind of the sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Sort.Name">
+ <summary>
+ The name of the sort
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.ArrayExpr">
+ <summary>
+ Array expressions
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ArrayExpr.#ctor(Microsoft.Z3.Context,System.IntPtr)">
+ <summary> Constructor for ArrayExpr </summary>
+ </member>
+ <member name="T:Microsoft.Z3.ArraySort">
+ <summary>
+ Array sorts.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.ArraySort.Domain">
+ <summary>
+ The domain of the array sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.ArraySort.Range">
+ <summary>
+ The range of the array sort.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.ASTMap">
+ <summary>
+ Map from AST to AST
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ASTMap.Contains(Microsoft.Z3.AST)">
+ <summary>
+ Checks whether the map contains the key <paramref name="k"/>.
+ </summary>
+ <param name="k">An AST</param>
+ <returns>True if <paramref name="k"/> is a key in the map, false otherwise.</returns>
+ </member>
+ <member name="M:Microsoft.Z3.ASTMap.Find(Microsoft.Z3.AST)">
+ <summary>
+ Finds the value associated with the key <paramref name="k"/>.
+ </summary>
+ <remarks>
+ This function signs an error when <paramref name="k"/> is not a key in the map.
+ </remarks>
+ <param name="k">An AST</param>
+ </member>
+ <member name="M:Microsoft.Z3.ASTMap.Insert(Microsoft.Z3.AST,Microsoft.Z3.AST)">
+ <summary>
+ Stores or replaces a new key/value pair in the map.
+ </summary>
+ <param name="k">The key AST</param>
+ <param name="v">The value AST</param>
+ </member>
+ <member name="M:Microsoft.Z3.ASTMap.Erase(Microsoft.Z3.AST)">
+ <summary>
+ Erases the key <paramref name="k"/> from the map.
+ </summary>
+ <param name="k">An AST</param>
+ </member>
+ <member name="M:Microsoft.Z3.ASTMap.Reset">
+ <summary>
+ Removes all keys from the map.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ASTMap.ToString">
+ <summary>
+ Retrieves a string representation of the map.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.ASTMap.Size">
+ <summary>
+ The size of the map
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.ASTMap.Keys">
+ <summary>
+ The keys stored in the map.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.ASTVector">
+ <summary>
+ Vectors of ASTs.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ASTVector.Resize(System.UInt32)">
+ <summary>
+ Resize the vector to <paramref name="newSize"/>.
+ </summary>
+ <param name="newSize">The new size of the vector.</param>
+ </member>
+ <member name="M:Microsoft.Z3.ASTVector.Push(Microsoft.Z3.AST)">
+ <summary>
+ Add the AST <paramref name="a"/> to the back of the vector. The size
+ is increased by 1.
+ </summary>
+ <param name="a">An AST</param>
+ </member>
+ <member name="M:Microsoft.Z3.ASTVector.Translate(Microsoft.Z3.Context)">
+ <summary>
+ Translates all ASTs in the vector to <paramref name="ctx"/>.
+ </summary>
+ <param name="ctx">A context</param>
+ <returns>A new ASTVector</returns>
+ </member>
+ <member name="M:Microsoft.Z3.ASTVector.ToString">
+ <summary>
+ Retrieves a string representation of the vector.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ASTVector.ToArray">
+ <summary>
+ Translates an AST vector into an AST[]
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ASTVector.ToExprArray">
+ <summary>
+ Translates an ASTVector into an Expr[]
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ASTVector.ToBoolExprArray">
+ <summary>
+ Translates an ASTVector into a BoolExpr[]
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ASTVector.ToBitVecExprArray">
+ <summary>
+ Translates an ASTVector into a BitVecExpr[]
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ASTVector.ToArithExprArray">
+ <summary>
+ Translates an ASTVector into a ArithExpr[]
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ASTVector.ToArrayExprArray">
+ <summary>
+ Translates an ASTVector into a ArrayExpr[]
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ASTVector.ToDatatypeExprArray">
+ <summary>
+ Translates an ASTVector into a DatatypeExpr[]
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ASTVector.ToFPExprArray">
+ <summary>
+ Translates an ASTVector into a FPExpr[]
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ASTVector.ToFPRMExprArray">
+ <summary>
+ Translates an ASTVector into a FPRMExpr[]
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ASTVector.ToIntExprArray">
+ <summary>
+ Translates an ASTVector into a IntExpr[]
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ASTVector.ToRealExprArray">
+ <summary>
+ Translates an ASTVector into a RealExpr[]
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.ASTVector.Size">
+ <summary>
+ The size of the vector
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.ASTVector.Item(System.UInt32)">
+ <summary>
+ Retrieves the i-th object in the vector.
+ </summary>
+ <remarks>May throw an IndexOutOfBoundsException when <paramref name="i"/> is out of range.</remarks>
+ <param name="i">Index</param>
+ <returns>An AST</returns>
+ </member>
+ <member name="T:Microsoft.Z3.BitVecExpr">
+ <summary>
+ Bit-vector expressions
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.BitVecExpr.#ctor(Microsoft.Z3.Context,System.IntPtr)">
+ <summary> Constructor for BitVecExpr </summary>
+ </member>
+ <member name="P:Microsoft.Z3.BitVecExpr.SortSize">
+ <summary>
+ The size of the sort of a bit-vector term.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.BitVecNum">
+ <summary>
+ Bit-vector numerals
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.BitVecNum.ToString">
+ <summary>
+ Returns a string representation of the numeral.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.BitVecNum.UInt64">
+ <summary>
+ Retrieve the 64-bit unsigned integer value.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.BitVecNum.Int">
+ <summary>
+ Retrieve the int value.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.BitVecNum.Int64">
+ <summary>
+ Retrieve the 64-bit int value.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.BitVecNum.UInt">
+ <summary>
+ Retrieve the int value.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.BitVecNum.BigInteger">
+ <summary>
+ Retrieve the BigInteger value.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.BitVecSort">
+ <summary>
+ Bit-vector sorts.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.BitVecSort.Size">
+ <summary>
+ The size of the bit-vector sort.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.BoolExpr">
+ <summary>
+ Boolean expressions
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.BoolExpr.#ctor(Microsoft.Z3.Context,System.IntPtr)">
+ <summary> Constructor for BoolExpr </summary>
+ </member>
+ <member name="M:Microsoft.Z3.BoolExpr.op_BitwiseOr(Microsoft.Z3.BoolExpr,Microsoft.Z3.BoolExpr)">
+ <summary> Disjunction of Boolean expressions </summary>
+ </member>
+ <member name="M:Microsoft.Z3.BoolExpr.op_BitwiseAnd(Microsoft.Z3.BoolExpr,Microsoft.Z3.BoolExpr)">
+ <summary> Conjunction of Boolean expressions </summary>
+ </member>
+ <member name="M:Microsoft.Z3.BoolExpr.op_ExclusiveOr(Microsoft.Z3.BoolExpr,Microsoft.Z3.BoolExpr)">
+ <summary> Xor of Boolean expressions </summary>
+ </member>
+ <member name="M:Microsoft.Z3.BoolExpr.op_LogicalNot(Microsoft.Z3.BoolExpr)">
+ <summary> Negation </summary>
+ </member>
+ <member name="T:Microsoft.Z3.BoolSort">
+ <summary>
+ A Boolean sort.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Constructor">
+ <summary>
+ Constructors are used for datatype sorts.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Constructor.Finalize">
+ <summary>
+ Destructor.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Constructor.NumFields">
+ <summary>
+ The number of fields of the constructor.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Constructor.ConstructorDecl">
+ <summary>
+ The function declaration of the constructor.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Constructor.TesterDecl">
+ <summary>
+ The function declaration of the tester.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Constructor.AccessorDecls">
+ <summary>
+ The function declarations of the accessors
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.ConstructorList">
+ <summary>
+ Lists of constructors
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ConstructorList.Finalize">
+ <summary>
+ Destructor.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Context">
+ <summary>
+ The main interaction with Z3 happens via the Context.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.#ctor">
+ <summary>
+ Constructor.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.#ctor(System.Collections.Generic.Dictionary{System.String,System.String})">
+ <summary>
+ Constructor.
+ </summary>
+ <remarks>
+ The following parameters can be set:
+ - proof (Boolean) Enable proof generation
+ - debug_ref_count (Boolean) Enable debug support for Z3_ast reference counting
+ - trace (Boolean) Tracing support for VCC
+ - trace_file_name (String) Trace out file for VCC traces
+ - timeout (unsigned) default timeout (in milliseconds) used for solvers
+ - well_sorted_check type checker
+ - auto_config use heuristics to automatically select solver and configure it
+ - model model generation for solvers, this parameter can be overwritten when creating a solver
+ - model_validate validate models produced by solvers
+ - unsat_core unsat-core generation for solvers, this parameter can be overwritten when creating a solver
+ Note that in previous versions of Z3, this constructor was also used to set global and module parameters.
+ For this purpose we should now use <see cref="M:Microsoft.Z3.Global.SetParameter(System.String,System.String)"/>
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSymbol(System.Int32)">
+ <summary>
+ Creates a new symbol using an integer.
+ </summary>
+ <remarks>
+ Not all integers can be passed to this function.
+ The legal range of unsigned integers is 0 to 2^30-1.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSymbol(System.String)">
+ <summary>
+ Create a symbol using a string.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSymbols(System.String[])">
+ <summary>
+ Create an array of symbols.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBoolSort">
+ <summary>
+ Create a new Boolean sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkUninterpretedSort(Microsoft.Z3.Symbol)">
+ <summary>
+ Create a new uninterpreted sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkUninterpretedSort(System.String)">
+ <summary>
+ Create a new uninterpreted sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkIntSort">
+ <summary>
+ Create a new integer sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkRealSort">
+ <summary>
+ Create a real sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBitVecSort(System.UInt32)">
+ <summary>
+ Create a new bit-vector sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSeqSort(Microsoft.Z3.Sort)">
+ <summary>
+ Create a new sequence sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkReSort(Microsoft.Z3.SeqSort)">
+ <summary>
+ Create a new regular expression sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkArraySort(Microsoft.Z3.Sort,Microsoft.Z3.Sort)">
+ <summary>
+ Create a new array sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkTupleSort(Microsoft.Z3.Symbol,Microsoft.Z3.Symbol[],Microsoft.Z3.Sort[])">
+ <summary>
+ Create a new tuple sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkEnumSort(Microsoft.Z3.Symbol,Microsoft.Z3.Symbol[])">
+ <summary>
+ Create a new enumeration sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkEnumSort(System.String,System.String[])">
+ <summary>
+ Create a new enumeration sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkListSort(Microsoft.Z3.Symbol,Microsoft.Z3.Sort)">
+ <summary>
+ Create a new list sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkListSort(System.String,Microsoft.Z3.Sort)">
+ <summary>
+ Create a new list sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFiniteDomainSort(Microsoft.Z3.Symbol,System.UInt64)">
+ <summary>
+ Create a new finite domain sort.
+ <returns>The result is a sort</returns>
+ </summary>
+ <param name="name">The name used to identify the sort</param>
+ <param name="size">The size of the sort</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFiniteDomainSort(System.String,System.UInt64)">
+ <summary>
+ Create a new finite domain sort.
+ <returns>The result is a sort</returns>
+ Elements of the sort are created using <seealso cref="M:Microsoft.Z3.Context.MkNumeral(System.UInt64,Microsoft.Z3.Sort)"/>,
+ and the elements range from 0 to <tt>size-1</tt>.
+ </summary>
+ <param name="name">The name used to identify the sort</param>
+ <param name="size">The size of the sort</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkConstructor(Microsoft.Z3.Symbol,Microsoft.Z3.Symbol,Microsoft.Z3.Symbol[],Microsoft.Z3.Sort[],System.UInt32[])">
+ <summary>
+ Create a datatype constructor.
+ </summary>
+ <param name="name">constructor name</param>
+ <param name="recognizer">name of recognizer function.</param>
+ <param name="fieldNames">names of the constructor fields.</param>
+ <param name="sorts">field sorts, 0 if the field sort refers to a recursive sort.</param>
+ <param name="sortRefs">reference to datatype sort that is an argument to the constructor;
+ if the corresponding sort reference is 0, then the value in sort_refs should be an index
+ referring to one of the recursive datatypes that is declared.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkConstructor(System.String,System.String,System.String[],Microsoft.Z3.Sort[],System.UInt32[])">
+ <summary>
+ Create a datatype constructor.
+ </summary>
+ <param name="name"></param>
+ <param name="recognizer"></param>
+ <param name="fieldNames"></param>
+ <param name="sorts"></param>
+ <param name="sortRefs"></param>
+ <returns></returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkDatatypeSort(Microsoft.Z3.Symbol,Microsoft.Z3.Constructor[])">
+ <summary>
+ Create a new datatype sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkDatatypeSort(System.String,Microsoft.Z3.Constructor[])">
+ <summary>
+ Create a new datatype sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkDatatypeSorts(Microsoft.Z3.Symbol[],Microsoft.Z3.Constructor[][])">
+ <summary>
+ Create mutually recursive datatypes.
+ </summary>
+ <param name="names">names of datatype sorts</param>
+ <param name="c">list of constructors, one list per sort.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkDatatypeSorts(System.String[],Microsoft.Z3.Constructor[][])">
+ <summary>
+ Create mutually recursive data-types.
+ </summary>
+ <param name="names"></param>
+ <param name="c"></param>
+ <returns></returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkUpdateField(Microsoft.Z3.FuncDecl,Microsoft.Z3.Expr,Microsoft.Z3.Expr)">
+ <summary>
+ Update a datatype field at expression t with value v.
+ The function performs a record update at t. The field
+ that is passed in as argument is updated with value v,
+ the remainig fields of t are unchanged.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFuncDecl(Microsoft.Z3.Symbol,Microsoft.Z3.Sort[],Microsoft.Z3.Sort)">
+ <summary>
+ Creates a new function declaration.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFuncDecl(Microsoft.Z3.Symbol,Microsoft.Z3.Sort,Microsoft.Z3.Sort)">
+ <summary>
+ Creates a new function declaration.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFuncDecl(System.String,Microsoft.Z3.Sort[],Microsoft.Z3.Sort)">
+ <summary>
+ Creates a new function declaration.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFuncDecl(System.String,Microsoft.Z3.Sort,Microsoft.Z3.Sort)">
+ <summary>
+ Creates a new function declaration.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFreshFuncDecl(System.String,Microsoft.Z3.Sort[],Microsoft.Z3.Sort)">
+ <summary>
+ Creates a fresh function declaration with a name prefixed with <paramref name="prefix"/>.
+ </summary>
+ <seealso cref="M:Microsoft.Z3.Context.MkFuncDecl(System.String,Microsoft.Z3.Sort,Microsoft.Z3.Sort)"/>
+ <seealso cref="M:Microsoft.Z3.Context.MkFuncDecl(System.String,Microsoft.Z3.Sort[],Microsoft.Z3.Sort)"/>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkConstDecl(Microsoft.Z3.Symbol,Microsoft.Z3.Sort)">
+ <summary>
+ Creates a new constant function declaration.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkConstDecl(System.String,Microsoft.Z3.Sort)">
+ <summary>
+ Creates a new constant function declaration.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFreshConstDecl(System.String,Microsoft.Z3.Sort)">
+ <summary>
+ Creates a fresh constant function declaration with a name prefixed with <paramref name="prefix"/>.
+ </summary>
+ <seealso cref="M:Microsoft.Z3.Context.MkFuncDecl(System.String,Microsoft.Z3.Sort,Microsoft.Z3.Sort)"/>
+ <seealso cref="M:Microsoft.Z3.Context.MkFuncDecl(System.String,Microsoft.Z3.Sort[],Microsoft.Z3.Sort)"/>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBound(System.UInt32,Microsoft.Z3.Sort)">
+ <summary>
+ Creates a new bound variable.
+ </summary>
+ <param name="index">The de-Bruijn index of the variable</param>
+ <param name="ty">The sort of the variable</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkPattern(Microsoft.Z3.Expr[])">
+ <summary>
+ Create a quantifier pattern.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkConst(Microsoft.Z3.Symbol,Microsoft.Z3.Sort)">
+ <summary>
+ Creates a new Constant of sort <paramref name="range"/> and named <paramref name="name"/>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkConst(System.String,Microsoft.Z3.Sort)">
+ <summary>
+ Creates a new Constant of sort <paramref name="range"/> and named <paramref name="name"/>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFreshConst(System.String,Microsoft.Z3.Sort)">
+ <summary>
+ Creates a fresh Constant of sort <paramref name="range"/> and a
+ name prefixed with <paramref name="prefix"/>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkConst(Microsoft.Z3.FuncDecl)">
+ <summary>
+ Creates a fresh constant from the FuncDecl <paramref name="f"/>.
+ </summary>
+ <param name="f">A decl of a 0-arity function</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBoolConst(Microsoft.Z3.Symbol)">
+ <summary>
+ Create a Boolean constant.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBoolConst(System.String)">
+ <summary>
+ Create a Boolean constant.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkIntConst(Microsoft.Z3.Symbol)">
+ <summary>
+ Creates an integer constant.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkIntConst(System.String)">
+ <summary>
+ Creates an integer constant.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkRealConst(Microsoft.Z3.Symbol)">
+ <summary>
+ Creates a real constant.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkRealConst(System.String)">
+ <summary>
+ Creates a real constant.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVConst(Microsoft.Z3.Symbol,System.UInt32)">
+ <summary>
+ Creates a bit-vector constant.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVConst(System.String,System.UInt32)">
+ <summary>
+ Creates a bit-vector constant.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkApp(Microsoft.Z3.FuncDecl,Microsoft.Z3.Expr[])">
+ <summary>
+ Create a new function application.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkApp(Microsoft.Z3.FuncDecl,System.Collections.Generic.IEnumerable{Microsoft.Z3.Expr})">
+ <summary>
+ Create a new function application.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkTrue">
+ <summary>
+ The true Term.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFalse">
+ <summary>
+ The false Term.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBool(System.Boolean)">
+ <summary>
+ Creates a Boolean value.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkEq(Microsoft.Z3.Expr,Microsoft.Z3.Expr)">
+ <summary>
+ Creates the equality <paramref name="x"/> = <paramref name="y"/>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkDistinct(Microsoft.Z3.Expr[])">
+ <summary>
+ Creates a <c>distinct</c> term.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkNot(Microsoft.Z3.BoolExpr)">
+ <summary>
+ Mk an expression representing <c>not(a)</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkITE(Microsoft.Z3.BoolExpr,Microsoft.Z3.Expr,Microsoft.Z3.Expr)">
+ <summary>
+ Create an expression representing an if-then-else: <c>ite(t1, t2, t3)</c>.
+ </summary>
+ <param name="t1">An expression with Boolean sort</param>
+ <param name="t2">An expression </param>
+ <param name="t3">An expression with the same sort as <paramref name="t2"/></param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkIff(Microsoft.Z3.BoolExpr,Microsoft.Z3.BoolExpr)">
+ <summary>
+ Create an expression representing <c>t1 iff t2</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkImplies(Microsoft.Z3.BoolExpr,Microsoft.Z3.BoolExpr)">
+ <summary>
+ Create an expression representing <c>t1 -> t2</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkXor(Microsoft.Z3.BoolExpr,Microsoft.Z3.BoolExpr)">
+ <summary>
+ Create an expression representing <c>t1 xor t2</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkAnd(Microsoft.Z3.BoolExpr[])">
+ <summary>
+ Create an expression representing <c>t[0] and t[1] and ...</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkAnd(System.Collections.Generic.IEnumerable{Microsoft.Z3.BoolExpr})">
+ <summary>
+ Create an expression representing <c>t[0] and t[1] and ...</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkOr(Microsoft.Z3.BoolExpr[])">
+ <summary>
+ Create an expression representing <c>t[0] or t[1] or ...</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkOr(System.Collections.Generic.IEnumerable{Microsoft.Z3.BoolExpr})">
+ <summary>
+ Create an expression representing <c>t[0] or t[1] or ...</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkAdd(Microsoft.Z3.ArithExpr[])">
+ <summary>
+ Create an expression representing <c>t[0] + t[1] + ...</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkAdd(System.Collections.Generic.IEnumerable{Microsoft.Z3.ArithExpr})">
+ <summary>
+ Create an expression representing <c>t[0] + t[1] + ...</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkMul(Microsoft.Z3.ArithExpr[])">
+ <summary>
+ Create an expression representing <c>t[0] * t[1] * ...</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkMul(System.Collections.Generic.IEnumerable{Microsoft.Z3.ArithExpr})">
+ <summary>
+ Create an expression representing <c>t[0] * t[1] * ...</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSub(Microsoft.Z3.ArithExpr[])">
+ <summary>
+ Create an expression representing <c>t[0] - t[1] - ...</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkUnaryMinus(Microsoft.Z3.ArithExpr)">
+ <summary>
+ Create an expression representing <c>-t</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkDiv(Microsoft.Z3.ArithExpr,Microsoft.Z3.ArithExpr)">
+ <summary>
+ Create an expression representing <c>t1 / t2</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkMod(Microsoft.Z3.IntExpr,Microsoft.Z3.IntExpr)">
+ <summary>
+ Create an expression representing <c>t1 mod t2</c>.
+ </summary>
+ <remarks>The arguments must have int type.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkRem(Microsoft.Z3.IntExpr,Microsoft.Z3.IntExpr)">
+ <summary>
+ Create an expression representing <c>t1 rem t2</c>.
+ </summary>
+ <remarks>The arguments must have int type.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkPower(Microsoft.Z3.ArithExpr,Microsoft.Z3.ArithExpr)">
+ <summary>
+ Create an expression representing <c>t1 ^ t2</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkLt(Microsoft.Z3.ArithExpr,Microsoft.Z3.ArithExpr)">
+ <summary>
+ Create an expression representing <c>t1 &lt; t2</c>
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkLe(Microsoft.Z3.ArithExpr,Microsoft.Z3.ArithExpr)">
+ <summary>
+ Create an expression representing <c>t1 &lt;= t2</c>
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkGt(Microsoft.Z3.ArithExpr,Microsoft.Z3.ArithExpr)">
+ <summary>
+ Create an expression representing <c>t1 &gt; t2</c>
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkGe(Microsoft.Z3.ArithExpr,Microsoft.Z3.ArithExpr)">
+ <summary>
+ Create an expression representing <c>t1 &gt;= t2</c>
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkInt2Real(Microsoft.Z3.IntExpr)">
+ <summary>
+ Coerce an integer to a real.
+ </summary>
+ <remarks>
+ There is also a converse operation exposed. It follows the semantics prescribed by the SMT-LIB standard.
+
+ You can take the floor of a real by creating an auxiliary integer Term <c>k</c> and
+ and asserting <c>MakeInt2Real(k) &lt;= t1 &lt; MkInt2Real(k)+1</c>.
+ The argument must be of integer sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkReal2Int(Microsoft.Z3.RealExpr)">
+ <summary>
+ Coerce a real to an integer.
+ </summary>
+ <remarks>
+ The semantics of this function follows the SMT-LIB standard for the function to_int.
+ The argument must be of real sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkIsInteger(Microsoft.Z3.RealExpr)">
+ <summary>
+ Creates an expression that checks whether a real number is an integer.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVNot(Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Bitwise negation.
+ </summary>
+ <remarks>The argument must have a bit-vector sort.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVRedAND(Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Take conjunction of bits in a vector, return vector of length 1.
+ </summary>
+ <remarks>The argument must have a bit-vector sort.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVRedOR(Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Take disjunction of bits in a vector, return vector of length 1.
+ </summary>
+ <remarks>The argument must have a bit-vector sort.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVAND(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Bitwise conjunction.
+ </summary>
+ <remarks>The arguments must have a bit-vector sort.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVOR(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Bitwise disjunction.
+ </summary>
+ <remarks>The arguments must have a bit-vector sort.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVXOR(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Bitwise XOR.
+ </summary>
+ <remarks>The arguments must have a bit-vector sort.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVNAND(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Bitwise NAND.
+ </summary>
+ <remarks>The arguments must have a bit-vector sort.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVNOR(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Bitwise NOR.
+ </summary>
+ <remarks>The arguments must have a bit-vector sort.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVXNOR(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Bitwise XNOR.
+ </summary>
+ <remarks>The arguments must have a bit-vector sort.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVNeg(Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Standard two's complement unary minus.
+ </summary>
+ <remarks>The arguments must have a bit-vector sort.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVAdd(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Two's complement addition.
+ </summary>
+ <remarks>The arguments must have the same bit-vector sort.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVSub(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Two's complement subtraction.
+ </summary>
+ <remarks>The arguments must have the same bit-vector sort.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVMul(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Two's complement multiplication.
+ </summary>
+ <remarks>The arguments must have the same bit-vector sort.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVUDiv(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Unsigned division.
+ </summary>
+ <remarks>
+ It is defined as the floor of <c>t1/t2</c> if \c t2 is
+ different from zero. If <c>t2</c> is zero, then the result
+ is undefined.
+ The arguments must have the same bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVSDiv(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Signed division.
+ </summary>
+ <remarks>
+ It is defined in the following way:
+
+ - The \c floor of <c>t1/t2</c> if \c t2 is different from zero, and <c>t1*t2 >= 0</c>.
+
+ - The \c ceiling of <c>t1/t2</c> if \c t2 is different from zero, and <c>t1*t2 &lt; 0</c>.
+
+ If <c>t2</c> is zero, then the result is undefined.
+ The arguments must have the same bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVURem(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Unsigned remainder.
+ </summary>
+ <remarks>
+ It is defined as <c>t1 - (t1 /u t2) * t2</c>, where <c>/u</c> represents unsigned division.
+ If <c>t2</c> is zero, then the result is undefined.
+ The arguments must have the same bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVSRem(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Signed remainder.
+ </summary>
+ <remarks>
+ It is defined as <c>t1 - (t1 /s t2) * t2</c>, where <c>/s</c> represents signed division.
+ The most significant bit (sign) of the result is equal to the most significant bit of \c t1.
+
+ If <c>t2</c> is zero, then the result is undefined.
+ The arguments must have the same bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVSMod(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Two's complement signed remainder (sign follows divisor).
+ </summary>
+ <remarks>
+ If <c>t2</c> is zero, then the result is undefined.
+ The arguments must have the same bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVULT(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Unsigned less-than
+ </summary>
+ <remarks>
+ The arguments must have the same bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVSLT(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Two's complement signed less-than
+ </summary>
+ <remarks>
+ The arguments must have the same bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVULE(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Unsigned less-than or equal to.
+ </summary>
+ <remarks>
+ The arguments must have the same bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVSLE(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Two's complement signed less-than or equal to.
+ </summary>
+ <remarks>
+ The arguments must have the same bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVUGE(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Unsigned greater than or equal to.
+ </summary>
+ <remarks>
+ The arguments must have the same bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVSGE(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Two's complement signed greater than or equal to.
+ </summary>
+ <remarks>
+ The arguments must have the same bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVUGT(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Unsigned greater-than.
+ </summary>
+ <remarks>
+ The arguments must have the same bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVSGT(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Two's complement signed greater-than.
+ </summary>
+ <remarks>
+ The arguments must have the same bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkConcat(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Bit-vector concatenation.
+ </summary>
+ <remarks>
+ The arguments must have a bit-vector sort.
+ </remarks>
+ <returns>
+ The result is a bit-vector of size <c>n1+n2</c>, where <c>n1</c> (<c>n2</c>)
+ is the size of <c>t1</c> (<c>t2</c>).
+ </returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkExtract(System.UInt32,System.UInt32,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Bit-vector extraction.
+ </summary>
+ <remarks>
+ Extract the bits <paramref name="high"/> down to <paramref name="low"/> from a bitvector of
+ size <c>m</c> to yield a new bitvector of size <c>n</c>, where
+ <c>n = high - low + 1</c>.
+ The argument <paramref name="t"/> must have a bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSignExt(System.UInt32,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Bit-vector sign extension.
+ </summary>
+ <remarks>
+ Sign-extends the given bit-vector to the (signed) equivalent bitvector of
+ size <c>m+i</c>, where \c m is the size of the given bit-vector.
+ The argument <paramref name="t"/> must have a bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkZeroExt(System.UInt32,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Bit-vector zero extension.
+ </summary>
+ <remarks>
+ Extend the given bit-vector with zeros to the (unsigned) equivalent
+ bitvector of size <c>m+i</c>, where \c m is the size of the
+ given bit-vector.
+ The argument <paramref name="t"/> must have a bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkRepeat(System.UInt32,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Bit-vector repetition.
+ </summary>
+ <remarks>
+ The argument <paramref name="t"/> must have a bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVSHL(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Shift left.
+ </summary>
+ <remarks>
+ It is equivalent to multiplication by <c>2^x</c> where \c x is the value of <paramref name="t2"/>.
+
+ NB. The semantics of shift operations varies between environments. This
+ definition does not necessarily capture directly the semantics of the
+ programming language or assembly architecture you are modeling.
+
+ The arguments must have a bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVLSHR(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Logical shift right
+ </summary>
+ <remarks>
+ It is equivalent to unsigned division by <c>2^x</c> where \c x is the value of <paramref name="t2"/>.
+
+ NB. The semantics of shift operations varies between environments. This
+ definition does not necessarily capture directly the semantics of the
+ programming language or assembly architecture you are modeling.
+
+ The arguments must have a bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVASHR(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Arithmetic shift right
+ </summary>
+ <remarks>
+ It is like logical shift right except that the most significant
+ bits of the result always copy the most significant bit of the
+ second argument.
+
+ NB. The semantics of shift operations varies between environments. This
+ definition does not necessarily capture directly the semantics of the
+ programming language or assembly architecture you are modeling.
+
+ The arguments must have a bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVRotateLeft(System.UInt32,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Rotate Left.
+ </summary>
+ <remarks>
+ Rotate bits of \c t to the left \c i times.
+ The argument <paramref name="t"/> must have a bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVRotateRight(System.UInt32,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Rotate Right.
+ </summary>
+ <remarks>
+ Rotate bits of \c t to the right \c i times.
+ The argument <paramref name="t"/> must have a bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVRotateLeft(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Rotate Left.
+ </summary>
+ <remarks>
+ Rotate bits of <paramref name="t1"/> to the left <paramref name="t2"/> times.
+ The arguments must have the same bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVRotateRight(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Rotate Right.
+ </summary>
+ <remarks>
+ Rotate bits of <paramref name="t1"/> to the right<paramref name="t2"/> times.
+ The arguments must have the same bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkInt2BV(System.UInt32,Microsoft.Z3.IntExpr)">
+ <summary>
+ Create an <paramref name="n"/> bit bit-vector from the integer argument <paramref name="t"/>.
+ </summary>
+ <remarks>
+ NB. This function is essentially treated as uninterpreted.
+ So you cannot expect Z3 to precisely reflect the semantics of this function
+ when solving constraints with this function.
+
+ The argument must be of integer sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBV2Int(Microsoft.Z3.BitVecExpr,System.Boolean)">
+ <summary>
+ Create an integer from the bit-vector argument <paramref name="t"/>.
+ </summary>
+ <remarks>
+ If \c is_signed is false, then the bit-vector \c t1 is treated as unsigned.
+ So the result is non-negative and in the range <c>[0..2^N-1]</c>, where
+ N are the number of bits in <paramref name="t"/>.
+ If \c is_signed is true, \c t1 is treated as a signed bit-vector.
+
+ NB. This function is essentially treated as uninterpreted.
+ So you cannot expect Z3 to precisely reflect the semantics of this function
+ when solving constraints with this function.
+
+ The argument must be of bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVAddNoOverflow(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr,System.Boolean)">
+ <summary>
+ Create a predicate that checks that the bit-wise addition does not overflow.
+ </summary>
+ <remarks>
+ The arguments must be of bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVAddNoUnderflow(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Create a predicate that checks that the bit-wise addition does not underflow.
+ </summary>
+ <remarks>
+ The arguments must be of bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVSubNoOverflow(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Create a predicate that checks that the bit-wise subtraction does not overflow.
+ </summary>
+ <remarks>
+ The arguments must be of bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVSubNoUnderflow(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr,System.Boolean)">
+ <summary>
+ Create a predicate that checks that the bit-wise subtraction does not underflow.
+ </summary>
+ <remarks>
+ The arguments must be of bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVSDivNoOverflow(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Create a predicate that checks that the bit-wise signed division does not overflow.
+ </summary>
+ <remarks>
+ The arguments must be of bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVNegNoOverflow(Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Create a predicate that checks that the bit-wise negation does not overflow.
+ </summary>
+ <remarks>
+ The arguments must be of bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVMulNoOverflow(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr,System.Boolean)">
+ <summary>
+ Create a predicate that checks that the bit-wise multiplication does not overflow.
+ </summary>
+ <remarks>
+ The arguments must be of bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBVMulNoUnderflow(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Create a predicate that checks that the bit-wise multiplication does not underflow.
+ </summary>
+ <remarks>
+ The arguments must be of bit-vector sort.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkArrayConst(Microsoft.Z3.Symbol,Microsoft.Z3.Sort,Microsoft.Z3.Sort)">
+ <summary>
+ Create an array constant.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkArrayConst(System.String,Microsoft.Z3.Sort,Microsoft.Z3.Sort)">
+ <summary>
+ Create an array constant.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSelect(Microsoft.Z3.ArrayExpr,Microsoft.Z3.Expr)">
+ <summary>
+ Array read.
+ </summary>
+ <remarks>
+ The argument <c>a</c> is the array and <c>i</c> is the index
+ of the array that gets read.
+
+ The node <c>a</c> must have an array sort <c>[domain -&gt; range]</c>,
+ and <c>i</c> must have the sort <c>domain</c>.
+ The sort of the result is <c>range</c>.
+ <seealso cref="M:Microsoft.Z3.Context.MkArraySort(Microsoft.Z3.Sort,Microsoft.Z3.Sort)"/>
+ <seealso cref="M:Microsoft.Z3.Context.MkStore(Microsoft.Z3.ArrayExpr,Microsoft.Z3.Expr,Microsoft.Z3.Expr)"/>
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkStore(Microsoft.Z3.ArrayExpr,Microsoft.Z3.Expr,Microsoft.Z3.Expr)">
+ <summary>
+ Array update.
+ </summary>
+ <remarks>
+ The node <c>a</c> must have an array sort <c>[domain -&gt; range]</c>,
+ <c>i</c> must have sort <c>domain</c>,
+ <c>v</c> must have sort range. The sort of the result is <c>[domain -&gt; range]</c>.
+ The semantics of this function is given by the theory of arrays described in the SMT-LIB
+ standard. See http://smtlib.org for more details.
+ The result of this function is an array that is equal to <c>a</c>
+ (with respect to <c>select</c>)
+ on all indices except for <c>i</c>, where it maps to <c>v</c>
+ (and the <c>select</c> of <c>a</c> with
+ respect to <c>i</c> may be a different value).
+ <seealso cref="M:Microsoft.Z3.Context.MkArraySort(Microsoft.Z3.Sort,Microsoft.Z3.Sort)"/>
+ <seealso cref="M:Microsoft.Z3.Context.MkSelect(Microsoft.Z3.ArrayExpr,Microsoft.Z3.Expr)"/>
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkConstArray(Microsoft.Z3.Sort,Microsoft.Z3.Expr)">
+ <summary>
+ Create a constant array.
+ </summary>
+ <remarks>
+ The resulting term is an array, such that a <c>select</c>on an arbitrary index
+ produces the value <c>v</c>.
+ <seealso cref="M:Microsoft.Z3.Context.MkArraySort(Microsoft.Z3.Sort,Microsoft.Z3.Sort)"/>
+ <seealso cref="M:Microsoft.Z3.Context.MkSelect(Microsoft.Z3.ArrayExpr,Microsoft.Z3.Expr)"/>
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkMap(Microsoft.Z3.FuncDecl,Microsoft.Z3.ArrayExpr[])">
+ <summary>
+ Maps f on the argument arrays.
+ </summary>
+ <remarks>
+ Eeach element of <c>args</c> must be of an array sort <c>[domain_i -&gt; range_i]</c>.
+ The function declaration <c>f</c> must have type <c> range_1 .. range_n -&gt; range</c>.
+ <c>v</c> must have sort range. The sort of the result is <c>[domain_i -&gt; range]</c>.
+ <seealso cref="M:Microsoft.Z3.Context.MkArraySort(Microsoft.Z3.Sort,Microsoft.Z3.Sort)"/>
+ <seealso cref="M:Microsoft.Z3.Context.MkSelect(Microsoft.Z3.ArrayExpr,Microsoft.Z3.Expr)"/>
+ <seealso cref="M:Microsoft.Z3.Context.MkStore(Microsoft.Z3.ArrayExpr,Microsoft.Z3.Expr,Microsoft.Z3.Expr)"/>
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkTermArray(Microsoft.Z3.ArrayExpr)">
+ <summary>
+ Access the array default value.
+ </summary>
+ <remarks>
+ Produces the default range value, for arrays that can be represented as
+ finite maps with a default range value.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkArrayExt(Microsoft.Z3.ArrayExpr,Microsoft.Z3.ArrayExpr)">
+ <summary>
+ Create Extentionality index. Two arrays are equal if and only if they are equal on the index returned by MkArrayExt.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSetSort(Microsoft.Z3.Sort)">
+ <summary>
+ Create a set type.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkEmptySet(Microsoft.Z3.Sort)">
+ <summary>
+ Create an empty set.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFullSet(Microsoft.Z3.Sort)">
+ <summary>
+ Create the full set.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSetAdd(Microsoft.Z3.ArrayExpr,Microsoft.Z3.Expr)">
+ <summary>
+ Add an element to the set.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSetDel(Microsoft.Z3.ArrayExpr,Microsoft.Z3.Expr)">
+ <summary>
+ Remove an element from a set.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSetUnion(Microsoft.Z3.ArrayExpr[])">
+ <summary>
+ Take the union of a list of sets.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSetIntersection(Microsoft.Z3.ArrayExpr[])">
+ <summary>
+ Take the intersection of a list of sets.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSetDifference(Microsoft.Z3.ArrayExpr,Microsoft.Z3.ArrayExpr)">
+ <summary>
+ Take the difference between two sets.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSetComplement(Microsoft.Z3.ArrayExpr)">
+ <summary>
+ Take the complement of a set.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSetMembership(Microsoft.Z3.Expr,Microsoft.Z3.ArrayExpr)">
+ <summary>
+ Check for set membership.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSetSubset(Microsoft.Z3.ArrayExpr,Microsoft.Z3.ArrayExpr)">
+ <summary>
+ Check for subsetness of sets.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkEmptySeq(Microsoft.Z3.Sort)">
+ <summary>
+ Create the empty sequence.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkUnit(Microsoft.Z3.Expr)">
+ <summary>
+ Create the singleton sequence.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkString(System.String)">
+ <summary>
+ Create a string constant.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkConcat(Microsoft.Z3.SeqExpr[])">
+ <summary>
+ Concatentate sequences.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkLength(Microsoft.Z3.SeqExpr)">
+ <summary>
+ Retrieve the length of a given sequence.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkPrefixOf(Microsoft.Z3.SeqExpr,Microsoft.Z3.SeqExpr)">
+ <summary>
+ Check for sequence prefix.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSuffixOf(Microsoft.Z3.SeqExpr,Microsoft.Z3.SeqExpr)">
+ <summary>
+ Check for sequence suffix.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkContains(Microsoft.Z3.SeqExpr,Microsoft.Z3.SeqExpr)">
+ <summary>
+ Check for sequence containment of s2 in s1.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkAt(Microsoft.Z3.SeqExpr,Microsoft.Z3.IntExpr)">
+ <summary>
+ Retrieve sequence of length one at index.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkExtract(Microsoft.Z3.SeqExpr,Microsoft.Z3.IntExpr,Microsoft.Z3.IntExpr)">
+ <summary>
+ Extract subsequence.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkIndexOf(Microsoft.Z3.SeqExpr,Microsoft.Z3.SeqExpr,Microsoft.Z3.ArithExpr)">
+ <summary>
+ Extract index of sub-string starting at offset.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkReplace(Microsoft.Z3.SeqExpr,Microsoft.Z3.SeqExpr,Microsoft.Z3.SeqExpr)">
+ <summary>
+ Replace the first occurrence of src by dst in s.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkToRe(Microsoft.Z3.SeqExpr)">
+ <summary>
+ Convert a regular expression that accepts sequence s.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkInRe(Microsoft.Z3.SeqExpr,Microsoft.Z3.ReExpr)">
+ <summary>
+ Check for regular expression membership.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkStar(Microsoft.Z3.ReExpr)">
+ <summary>
+ Take the Kleene star of a regular expression.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MPlus(Microsoft.Z3.ReExpr)">
+ <summary>
+ Take the Kleene plus of a regular expression.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MOption(Microsoft.Z3.ReExpr)">
+ <summary>
+ Create the optional regular expression.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkConcat(Microsoft.Z3.ReExpr[])">
+ <summary>
+ Create the concatenation of regular languages.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkUnion(Microsoft.Z3.ReExpr[])">
+ <summary>
+ Create the union of regular languages.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkAtMost(Microsoft.Z3.BoolExpr[],System.UInt32)">
+ <summary>
+ Create an at-most-k constraint.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkPBLe(System.Int32[],Microsoft.Z3.BoolExpr[],System.Int32)">
+ <summary>
+ Create a pseudo-Boolean less-or-equal constraint.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkPBEq(System.Int32[],Microsoft.Z3.BoolExpr[],System.Int32)">
+ <summary>
+ Create a pseudo-Boolean equal constraint.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkNumeral(System.String,Microsoft.Z3.Sort)">
+ <summary>
+ Create a Term of a given sort.
+ </summary>
+ <param name="v">A string representing the Term value in decimal notation. If the given sort is a real, then the Term can be a rational, that is, a string of the form <c>[num]* / [num]*</c>.</param>
+ <param name="ty">The sort of the numeral. In the current implementation, the given sort can be an int, real, or bit-vectors of arbitrary size. </param>
+ <returns>A Term with value <paramref name="v"/> and sort <paramref name="ty"/> </returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkNumeral(System.Int32,Microsoft.Z3.Sort)">
+ <summary>
+ Create a Term of a given sort. This function can be use to create numerals that fit in a machine integer.
+ It is slightly faster than <c>MakeNumeral</c> since it is not necessary to parse a string.
+ </summary>
+ <param name="v">Value of the numeral</param>
+ <param name="ty">Sort of the numeral</param>
+ <returns>A Term with value <paramref name="v"/> and type <paramref name="ty"/></returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkNumeral(System.UInt32,Microsoft.Z3.Sort)">
+ <summary>
+ Create a Term of a given sort. This function can be use to create numerals that fit in a machine integer.
+ It is slightly faster than <c>MakeNumeral</c> since it is not necessary to parse a string.
+ </summary>
+ <param name="v">Value of the numeral</param>
+ <param name="ty">Sort of the numeral</param>
+ <returns>A Term with value <paramref name="v"/> and type <paramref name="ty"/></returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkNumeral(System.Int64,Microsoft.Z3.Sort)">
+ <summary>
+ Create a Term of a given sort. This function can be use to create numerals that fit in a machine integer.
+ It is slightly faster than <c>MakeNumeral</c> since it is not necessary to parse a string.
+ </summary>
+ <param name="v">Value of the numeral</param>
+ <param name="ty">Sort of the numeral</param>
+ <returns>A Term with value <paramref name="v"/> and type <paramref name="ty"/></returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkNumeral(System.UInt64,Microsoft.Z3.Sort)">
+ <summary>
+ Create a Term of a given sort. This function can be use to create numerals that fit in a machine integer.
+ It is slightly faster than <c>MakeNumeral</c> since it is not necessary to parse a string.
+ </summary>
+ <param name="v">Value of the numeral</param>
+ <param name="ty">Sort of the numeral</param>
+ <returns>A Term with value <paramref name="v"/> and type <paramref name="ty"/></returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkReal(System.Int32,System.Int32)">
+ <summary>
+ Create a real from a fraction.
+ </summary>
+ <param name="num">numerator of rational.</param>
+ <param name="den">denominator of rational.</param>
+ <returns>A Term with value <paramref name="num"/>/<paramref name="den"/> and sort Real</returns>
+ <seealso cref="M:Microsoft.Z3.Context.MkNumeral(System.String,Microsoft.Z3.Sort)"/>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkReal(System.String)">
+ <summary>
+ Create a real numeral.
+ </summary>
+ <param name="v">A string representing the Term value in decimal notation.</param>
+ <returns>A Term with value <paramref name="v"/> and sort Real</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkReal(System.Int32)">
+ <summary>
+ Create a real numeral.
+ </summary>
+ <param name="v">value of the numeral.</param>
+ <returns>A Term with value <paramref name="v"/> and sort Real</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkReal(System.UInt32)">
+ <summary>
+ Create a real numeral.
+ </summary>
+ <param name="v">value of the numeral.</param>
+ <returns>A Term with value <paramref name="v"/> and sort Real</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkReal(System.Int64)">
+ <summary>
+ Create a real numeral.
+ </summary>
+ <param name="v">value of the numeral.</param>
+ <returns>A Term with value <paramref name="v"/> and sort Real</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkReal(System.UInt64)">
+ <summary>
+ Create a real numeral.
+ </summary>
+ <param name="v">value of the numeral.</param>
+ <returns>A Term with value <paramref name="v"/> and sort Real</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkInt(System.String)">
+ <summary>
+ Create an integer numeral.
+ </summary>
+ <param name="v">A string representing the Term value in decimal notation.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkInt(System.Int32)">
+ <summary>
+ Create an integer numeral.
+ </summary>
+ <param name="v">value of the numeral.</param>
+ <returns>A Term with value <paramref name="v"/> and sort Integer</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkInt(System.UInt32)">
+ <summary>
+ Create an integer numeral.
+ </summary>
+ <param name="v">value of the numeral.</param>
+ <returns>A Term with value <paramref name="v"/> and sort Integer</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkInt(System.Int64)">
+ <summary>
+ Create an integer numeral.
+ </summary>
+ <param name="v">value of the numeral.</param>
+ <returns>A Term with value <paramref name="v"/> and sort Integer</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkInt(System.UInt64)">
+ <summary>
+ Create an integer numeral.
+ </summary>
+ <param name="v">value of the numeral.</param>
+ <returns>A Term with value <paramref name="v"/> and sort Integer</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBV(System.String,System.UInt32)">
+ <summary>
+ Create a bit-vector numeral.
+ </summary>
+ <param name="v">A string representing the value in decimal notation.</param>
+ <param name="size">the size of the bit-vector</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBV(System.Int32,System.UInt32)">
+ <summary>
+ Create a bit-vector numeral.
+ </summary>
+ <param name="v">value of the numeral.</param>
+ <param name="size">the size of the bit-vector</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBV(System.UInt32,System.UInt32)">
+ <summary>
+ Create a bit-vector numeral.
+ </summary>
+ <param name="v">value of the numeral.</param>
+ <param name="size">the size of the bit-vector</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBV(System.Int64,System.UInt32)">
+ <summary>
+ Create a bit-vector numeral.
+ </summary>
+ <param name="v">value of the numeral.</param>
+ <param name="size">the size of the bit-vector</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkBV(System.UInt64,System.UInt32)">
+ <summary>
+ Create a bit-vector numeral.
+ </summary>
+ <param name="v">value of the numeral.</param>
+ <param name="size">the size of the bit-vector</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkForall(Microsoft.Z3.Sort[],Microsoft.Z3.Symbol[],Microsoft.Z3.Expr,System.UInt32,Microsoft.Z3.Pattern[],Microsoft.Z3.Expr[],Microsoft.Z3.Symbol,Microsoft.Z3.Symbol)">
+ <summary>
+ Create a universal Quantifier.
+ </summary>
+ <remarks>
+ Creates a forall formula, where <paramref name="weight"/> is the weight,
+ <paramref name="patterns"/> is an array of patterns, <paramref name="sorts"/> is an array
+ with the sorts of the bound variables, <paramref name="names"/> is an array with the
+ 'names' of the bound variables, and <paramref name="body"/> is the body of the
+ quantifier. Quantifiers are associated with weights indicating the importance of
+ using the quantifier during instantiation.
+ Note that the bound variables are de-Bruijn indices created using <see cref="M:Microsoft.Z3.Context.MkBound(System.UInt32,Microsoft.Z3.Sort)"/>.
+ Z3 applies the convention that the last element in <paramref name="names"/> and
+ <paramref name="sorts"/> refers to the variable with index 0, the second to last element
+ of <paramref name="names"/> and <paramref name="sorts"/> refers to the variable
+ with index 1, etc.
+ </remarks>
+ <param name="sorts">the sorts of the bound variables.</param>
+ <param name="names">names of the bound variables</param>
+ <param name="body">the body of the quantifier.</param>
+ <param name="weight">quantifiers are associated with weights indicating the importance of using the quantifier during instantiation. By default, pass the weight 0.</param>
+ <param name="patterns">array containing the patterns created using <c>MkPattern</c>.</param>
+ <param name="noPatterns">array containing the anti-patterns created using <c>MkPattern</c>.</param>
+ <param name="quantifierID">optional symbol to track quantifier.</param>
+ <param name="skolemID">optional symbol to track skolem constants.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkForall(Microsoft.Z3.Expr[],Microsoft.Z3.Expr,System.UInt32,Microsoft.Z3.Pattern[],Microsoft.Z3.Expr[],Microsoft.Z3.Symbol,Microsoft.Z3.Symbol)">
+ <summary>
+ Create a universal Quantifier.
+ </summary>
+ <remarks>
+ Creates a universal quantifier using a list of constants that will
+ form the set of bound variables.
+ <seealso cref="M:Microsoft.Z3.Context.MkForall(Microsoft.Z3.Sort[],Microsoft.Z3.Symbol[],Microsoft.Z3.Expr,System.UInt32,Microsoft.Z3.Pattern[],Microsoft.Z3.Expr[],Microsoft.Z3.Symbol,Microsoft.Z3.Symbol)"/>
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkExists(Microsoft.Z3.Sort[],Microsoft.Z3.Symbol[],Microsoft.Z3.Expr,System.UInt32,Microsoft.Z3.Pattern[],Microsoft.Z3.Expr[],Microsoft.Z3.Symbol,Microsoft.Z3.Symbol)">
+ <summary>
+ Create an existential Quantifier.
+ </summary>
+ <remarks>
+ Creates an existential quantifier using de-Brujin indexed variables.
+ (<see cref="M:Microsoft.Z3.Context.MkForall(Microsoft.Z3.Sort[],Microsoft.Z3.Symbol[],Microsoft.Z3.Expr,System.UInt32,Microsoft.Z3.Pattern[],Microsoft.Z3.Expr[],Microsoft.Z3.Symbol,Microsoft.Z3.Symbol)"/>).
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkExists(Microsoft.Z3.Expr[],Microsoft.Z3.Expr,System.UInt32,Microsoft.Z3.Pattern[],Microsoft.Z3.Expr[],Microsoft.Z3.Symbol,Microsoft.Z3.Symbol)">
+ <summary>
+ Create an existential Quantifier.
+ </summary>
+ <remarks>
+ Creates an existential quantifier using a list of constants that will
+ form the set of bound variables.
+ <seealso cref="M:Microsoft.Z3.Context.MkForall(Microsoft.Z3.Sort[],Microsoft.Z3.Symbol[],Microsoft.Z3.Expr,System.UInt32,Microsoft.Z3.Pattern[],Microsoft.Z3.Expr[],Microsoft.Z3.Symbol,Microsoft.Z3.Symbol)"/>
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkQuantifier(System.Boolean,Microsoft.Z3.Sort[],Microsoft.Z3.Symbol[],Microsoft.Z3.Expr,System.UInt32,Microsoft.Z3.Pattern[],Microsoft.Z3.Expr[],Microsoft.Z3.Symbol,Microsoft.Z3.Symbol)">
+ <summary>
+ Create a Quantifier.
+ </summary>
+ <see cref="M:Microsoft.Z3.Context.MkForall(Microsoft.Z3.Sort[],Microsoft.Z3.Symbol[],Microsoft.Z3.Expr,System.UInt32,Microsoft.Z3.Pattern[],Microsoft.Z3.Expr[],Microsoft.Z3.Symbol,Microsoft.Z3.Symbol)"/>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkQuantifier(System.Boolean,Microsoft.Z3.Expr[],Microsoft.Z3.Expr,System.UInt32,Microsoft.Z3.Pattern[],Microsoft.Z3.Expr[],Microsoft.Z3.Symbol,Microsoft.Z3.Symbol)">
+ <summary>
+ Create a Quantifier.
+ </summary>
+ <see cref="M:Microsoft.Z3.Context.MkForall(Microsoft.Z3.Sort[],Microsoft.Z3.Symbol[],Microsoft.Z3.Expr,System.UInt32,Microsoft.Z3.Pattern[],Microsoft.Z3.Expr[],Microsoft.Z3.Symbol,Microsoft.Z3.Symbol)"/>
+ </member>
+ <member name="M:Microsoft.Z3.Context.BenchmarkToSMTString(System.String,System.String,System.String,System.String,Microsoft.Z3.BoolExpr[],Microsoft.Z3.BoolExpr)">
+ <summary>
+ Convert a benchmark into an SMT-LIB formatted string.
+ </summary>
+ <param name="name">Name of the benchmark. The argument is optional.</param>
+ <param name="logic">The benchmark logic. </param>
+ <param name="status">The status string (sat, unsat, or unknown)</param>
+ <param name="attributes">Other attributes, such as source, difficulty or category.</param>
+ <param name="assumptions">Auxiliary assumptions.</param>
+ <param name="formula">Formula to be checked for consistency in conjunction with assumptions.</param>
+ <returns>A string representation of the benchmark.</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.ParseSMTLIBString(System.String,Microsoft.Z3.Symbol[],Microsoft.Z3.Sort[],Microsoft.Z3.Symbol[],Microsoft.Z3.FuncDecl[])">
+ <summary>
+ Parse the given string using the SMT-LIB parser.
+ </summary>
+ <remarks>
+ The symbol table of the parser can be initialized using the given sorts and declarations.
+ The symbols in the arrays <paramref name="sortNames"/> and <paramref name="declNames"/>
+ don't need to match the names of the sorts and declarations in the arrays <paramref name="sorts"/>
+ and <paramref name="decls"/>. This is a useful feature since we can use arbitrary names to
+ reference sorts and declarations.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.ParseSMTLIBFile(System.String,Microsoft.Z3.Symbol[],Microsoft.Z3.Sort[],Microsoft.Z3.Symbol[],Microsoft.Z3.FuncDecl[])">
+ <summary>
+ Parse the given file using the SMT-LIB parser.
+ </summary>
+ <seealso cref="M:Microsoft.Z3.Context.ParseSMTLIBString(System.String,Microsoft.Z3.Symbol[],Microsoft.Z3.Sort[],Microsoft.Z3.Symbol[],Microsoft.Z3.FuncDecl[])"/>
+ </member>
+ <member name="M:Microsoft.Z3.Context.ParseSMTLIB2String(System.String,Microsoft.Z3.Symbol[],Microsoft.Z3.Sort[],Microsoft.Z3.Symbol[],Microsoft.Z3.FuncDecl[])">
+ <summary>
+ Parse the given string using the SMT-LIB2 parser.
+ </summary>
+ <seealso cref="M:Microsoft.Z3.Context.ParseSMTLIBString(System.String,Microsoft.Z3.Symbol[],Microsoft.Z3.Sort[],Microsoft.Z3.Symbol[],Microsoft.Z3.FuncDecl[])"/>
+ <returns>A conjunction of assertions in the scope (up to push/pop) at the end of the string.</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Context.ParseSMTLIB2File(System.String,Microsoft.Z3.Symbol[],Microsoft.Z3.Sort[],Microsoft.Z3.Symbol[],Microsoft.Z3.FuncDecl[])">
+ <summary>
+ Parse the given file using the SMT-LIB2 parser.
+ </summary>
+ <seealso cref="M:Microsoft.Z3.Context.ParseSMTLIB2String(System.String,Microsoft.Z3.Symbol[],Microsoft.Z3.Sort[],Microsoft.Z3.Symbol[],Microsoft.Z3.FuncDecl[])"/>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkGoal(System.Boolean,System.Boolean,System.Boolean)">
+ <summary>
+ Creates a new Goal.
+ </summary>
+ <remarks>
+ Note that the Context must have been created with proof generation support if
+ <paramref name="proofs"/> is set to true here.
+ </remarks>
+ <param name="models">Indicates whether model generation should be enabled.</param>
+ <param name="unsatCores">Indicates whether unsat core generation should be enabled.</param>
+ <param name="proofs">Indicates whether proof generation should be enabled.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkParams">
+ <summary>
+ Creates a new ParameterSet.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.TacticDescription(System.String)">
+ <summary>
+ Returns a string containing a description of the tactic with the given name.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkTactic(System.String)">
+ <summary>
+ Creates a new Tactic.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.AndThen(Microsoft.Z3.Tactic,Microsoft.Z3.Tactic,Microsoft.Z3.Tactic[])">
+ <summary>
+ Create a tactic that applies <paramref name="t1"/> to a Goal and
+ then <paramref name="t2"/> to every subgoal produced by <paramref name="t1"/>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.Then(Microsoft.Z3.Tactic,Microsoft.Z3.Tactic,Microsoft.Z3.Tactic[])">
+ <summary>
+ Create a tactic that applies <paramref name="t1"/> to a Goal and
+ then <paramref name="t2"/> to every subgoal produced by <paramref name="t1"/>.
+ </summary>
+ <remarks>
+ Shorthand for <c>AndThen</c>.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.OrElse(Microsoft.Z3.Tactic,Microsoft.Z3.Tactic)">
+ <summary>
+ Create a tactic that first applies <paramref name="t1"/> to a Goal and
+ if it fails then returns the result of <paramref name="t2"/> applied to the Goal.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.TryFor(Microsoft.Z3.Tactic,System.UInt32)">
+ <summary>
+ Create a tactic that applies <paramref name="t"/> to a goal for <paramref name="ms"/> milliseconds.
+ </summary>
+ <remarks>
+ If <paramref name="t"/> does not terminate within <paramref name="ms"/> milliseconds, then it fails.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.When(Microsoft.Z3.Probe,Microsoft.Z3.Tactic)">
+ <summary>
+ Create a tactic that applies <paramref name="t"/> to a given goal if the probe
+ <paramref name="p"/> evaluates to true.
+ </summary>
+ <remarks>
+ If <paramref name="p"/> evaluates to false, then the new tactic behaves like the <c>skip</c> tactic.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.Cond(Microsoft.Z3.Probe,Microsoft.Z3.Tactic,Microsoft.Z3.Tactic)">
+ <summary>
+ Create a tactic that applies <paramref name="t1"/> to a given goal if the probe
+ <paramref name="p"/> evaluates to true and <paramref name="t2"/> otherwise.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.Repeat(Microsoft.Z3.Tactic,System.UInt32)">
+ <summary>
+ Create a tactic that keeps applying <paramref name="t"/> until the goal is not
+ modified anymore or the maximum number of iterations <paramref name="max"/> is reached.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.Skip">
+ <summary>
+ Create a tactic that just returns the given goal.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.Fail">
+ <summary>
+ Create a tactic always fails.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.FailIf(Microsoft.Z3.Probe)">
+ <summary>
+ Create a tactic that fails if the probe <paramref name="p"/> evaluates to false.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.FailIfNotDecided">
+ <summary>
+ Create a tactic that fails if the goal is not triviall satisfiable (i.e., empty)
+ or trivially unsatisfiable (i.e., contains `false').
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.UsingParams(Microsoft.Z3.Tactic,Microsoft.Z3.Params)">
+ <summary>
+ Create a tactic that applies <paramref name="t"/> using the given set of parameters <paramref name="p"/>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.With(Microsoft.Z3.Tactic,Microsoft.Z3.Params)">
+ <summary>
+ Create a tactic that applies <paramref name="t"/> using the given set of parameters <paramref name="p"/>.
+ </summary>
+ <remarks>Alias for <c>UsingParams</c></remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.ParOr(Microsoft.Z3.Tactic[])">
+ <summary>
+ Create a tactic that applies the given tactics in parallel until one of them succeeds (i.e., the first that doesn't fail).
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.ParAndThen(Microsoft.Z3.Tactic,Microsoft.Z3.Tactic)">
+ <summary>
+ Create a tactic that applies <paramref name="t1"/> to a given goal and then <paramref name="t2"/>
+ to every subgoal produced by <paramref name="t1"/>. The subgoals are processed in parallel.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.Interrupt">
+ <summary>
+ Interrupt the execution of a Z3 procedure.
+ </summary>
+ <remarks>This procedure can be used to interrupt: solvers, simplifiers and tactics.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.ProbeDescription(System.String)">
+ <summary>
+ Returns a string containing a description of the probe with the given name.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkProbe(System.String)">
+ <summary>
+ Creates a new Probe.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.ConstProbe(System.Double)">
+ <summary>
+ Create a probe that always evaluates to <paramref name="val"/>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.Lt(Microsoft.Z3.Probe,Microsoft.Z3.Probe)">
+ <summary>
+ Create a probe that evaluates to "true" when the value returned by <paramref name="p1"/>
+ is less than the value returned by <paramref name="p2"/>
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.Gt(Microsoft.Z3.Probe,Microsoft.Z3.Probe)">
+ <summary>
+ Create a probe that evaluates to "true" when the value returned by <paramref name="p1"/>
+ is greater than the value returned by <paramref name="p2"/>
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.Le(Microsoft.Z3.Probe,Microsoft.Z3.Probe)">
+ <summary>
+ Create a probe that evaluates to "true" when the value returned by <paramref name="p1"/>
+ is less than or equal the value returned by <paramref name="p2"/>
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.Ge(Microsoft.Z3.Probe,Microsoft.Z3.Probe)">
+ <summary>
+ Create a probe that evaluates to "true" when the value returned by <paramref name="p1"/>
+ is greater than or equal the value returned by <paramref name="p2"/>
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.Eq(Microsoft.Z3.Probe,Microsoft.Z3.Probe)">
+ <summary>
+ Create a probe that evaluates to "true" when the value returned by <paramref name="p1"/>
+ is equal to the value returned by <paramref name="p2"/>
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.And(Microsoft.Z3.Probe,Microsoft.Z3.Probe)">
+ <summary>
+ Create a probe that evaluates to "true" when the value <paramref name="p1"/>
+ and <paramref name="p2"/> evaluate to "true".
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.Or(Microsoft.Z3.Probe,Microsoft.Z3.Probe)">
+ <summary>
+ Create a probe that evaluates to "true" when the value <paramref name="p1"/>
+ or <paramref name="p2"/> evaluate to "true".
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.Not(Microsoft.Z3.Probe)">
+ <summary>
+ Create a probe that evaluates to "true" when the value <paramref name="p"/>
+ does not evaluate to "true".
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSolver(Microsoft.Z3.Symbol)">
+ <summary>
+ Creates a new (incremental) solver.
+ </summary>
+ <remarks>
+ This solver also uses a set of builtin tactics for handling the first
+ check-sat command, and check-sat commands that take more than a given
+ number of milliseconds to be solved.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSolver(System.String)">
+ <summary>
+ Creates a new (incremental) solver.
+ </summary>
+ <seealso cref="M:Microsoft.Z3.Context.MkSolver(Microsoft.Z3.Symbol)"/>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSimpleSolver">
+ <summary>
+ Creates a new (incremental) solver.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkSolver(Microsoft.Z3.Tactic)">
+ <summary>
+ Creates a solver that is implemented using the given tactic.
+ </summary>
+ <remarks>
+ The solver supports the commands <c>Push</c> and <c>Pop</c>, but it
+ will always solve each check from scratch.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFixedpoint">
+ <summary>
+ Create a Fixedpoint context.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkOptimize">
+ <summary>
+ Create an Optimization context.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPRoundingModeSort">
+ <summary>
+ Create the floating-point RoundingMode sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPRoundNearestTiesToEven">
+ <summary>
+ Create a numeral of RoundingMode sort which represents the NearestTiesToEven rounding mode.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPRNE">
+ <summary>
+ Create a numeral of RoundingMode sort which represents the NearestTiesToEven rounding mode.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPRoundNearestTiesToAway">
+ <summary>
+ Create a numeral of RoundingMode sort which represents the NearestTiesToAway rounding mode.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPRNA">
+ <summary>
+ Create a numeral of RoundingMode sort which represents the NearestTiesToAway rounding mode.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPRoundTowardPositive">
+ <summary>
+ Create a numeral of RoundingMode sort which represents the RoundTowardPositive rounding mode.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPRTP">
+ <summary>
+ Create a numeral of RoundingMode sort which represents the RoundTowardPositive rounding mode.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPRoundTowardNegative">
+ <summary>
+ Create a numeral of RoundingMode sort which represents the RoundTowardNegative rounding mode.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPRTN">
+ <summary>
+ Create a numeral of RoundingMode sort which represents the RoundTowardNegative rounding mode.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPRoundTowardZero">
+ <summary>
+ Create a numeral of RoundingMode sort which represents the RoundTowardZero rounding mode.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPRTZ">
+ <summary>
+ Create a numeral of RoundingMode sort which represents the RoundTowardZero rounding mode.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPSort(System.UInt32,System.UInt32)">
+ <summary>
+ Create a FloatingPoint sort.
+ </summary>
+ <param name="ebits">exponent bits in the FloatingPoint sort.</param>
+ <param name="sbits">significand bits in the FloatingPoint sort.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPSortHalf">
+ <summary>
+ Create the half-precision (16-bit) FloatingPoint sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPSort16">
+ <summary>
+ Create the half-precision (16-bit) FloatingPoint sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPSortSingle">
+ <summary>
+ Create the single-precision (32-bit) FloatingPoint sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPSort32">
+ <summary>
+ Create the single-precision (32-bit) FloatingPoint sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPSortDouble">
+ <summary>
+ Create the double-precision (64-bit) FloatingPoint sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPSort64">
+ <summary>
+ Create the double-precision (64-bit) FloatingPoint sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPSortQuadruple">
+ <summary>
+ Create the quadruple-precision (128-bit) FloatingPoint sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPSort128">
+ <summary>
+ Create the quadruple-precision (128-bit) FloatingPoint sort.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPNaN(Microsoft.Z3.FPSort)">
+ <summary>
+ Create a NaN of sort s.
+ </summary>
+ <param name="s">FloatingPoint sort.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPInf(Microsoft.Z3.FPSort,System.Boolean)">
+ <summary>
+ Create a floating-point infinity of sort s.
+ </summary>
+ <param name="s">FloatingPoint sort.</param>
+ <param name="negative">indicates whether the result should be negative.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPZero(Microsoft.Z3.FPSort,System.Boolean)">
+ <summary>
+ Create a floating-point zero of sort s.
+ </summary>
+ <param name="s">FloatingPoint sort.</param>
+ <param name="negative">indicates whether the result should be negative.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPNumeral(System.Single,Microsoft.Z3.FPSort)">
+ <summary>
+ Create a numeral of FloatingPoint sort from a float.
+ </summary>
+ <param name="v">numeral value.</param>
+ <param name="s">FloatingPoint sort.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPNumeral(System.Double,Microsoft.Z3.FPSort)">
+ <summary>
+ Create a numeral of FloatingPoint sort from a float.
+ </summary>
+ <param name="v">numeral value.</param>
+ <param name="s">FloatingPoint sort.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPNumeral(System.Int32,Microsoft.Z3.FPSort)">
+ <summary>
+ Create a numeral of FloatingPoint sort from an int.
+ </summary>
+ <param name="v">numeral value.</param>
+ <param name="s">FloatingPoint sort.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPNumeral(System.Boolean,System.UInt32,System.Int32,Microsoft.Z3.FPSort)">
+ <summary>
+ Create a numeral of FloatingPoint sort from a sign bit and two integers.
+ </summary>
+ <param name="sgn">the sign.</param>
+ <param name="sig">the significand.</param>
+ <param name="exp">the exponent.</param>
+ <param name="s">FloatingPoint sort.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPNumeral(System.Boolean,System.Int64,System.UInt64,Microsoft.Z3.FPSort)">
+ <summary>
+ Create a numeral of FloatingPoint sort from a sign bit and two 64-bit integers.
+ </summary>
+ <param name="sgn">the sign.</param>
+ <param name="sig">the significand.</param>
+ <param name="exp">the exponent.</param>
+ <param name="s">FloatingPoint sort.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFP(System.Single,Microsoft.Z3.FPSort)">
+ <summary>
+ Create a numeral of FloatingPoint sort from a float.
+ </summary>
+ <param name="v">numeral value.</param>
+ <param name="s">FloatingPoint sort.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFP(System.Double,Microsoft.Z3.FPSort)">
+ <summary>
+ Create a numeral of FloatingPoint sort from a float.
+ </summary>
+ <param name="v">numeral value.</param>
+ <param name="s">FloatingPoint sort.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFP(System.Int32,Microsoft.Z3.FPSort)">
+ <summary>
+ Create a numeral of FloatingPoint sort from an int.
+ </summary>
+ <param name="v">numeral value.</param>
+ <param name="s">FloatingPoint sort.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFP(System.Boolean,System.Int32,System.UInt32,Microsoft.Z3.FPSort)">
+ <summary>
+ Create a numeral of FloatingPoint sort from a sign bit and two integers.
+ </summary>
+ <param name="sgn">the sign.</param>
+ <param name="exp">the exponent.</param>
+ <param name="sig">the significand.</param>
+ <param name="s">FloatingPoint sort.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFP(System.Boolean,System.Int64,System.UInt64,Microsoft.Z3.FPSort)">
+ <summary>
+ Create a numeral of FloatingPoint sort from a sign bit and two 64-bit integers.
+ </summary>
+ <param name="sgn">the sign.</param>
+ <param name="exp">the exponent.</param>
+ <param name="sig">the significand.</param>
+ <param name="s">FloatingPoint sort.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPAbs(Microsoft.Z3.FPExpr)">
+ <summary>
+ Floating-point absolute value
+ </summary>
+ <param name="t">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPNeg(Microsoft.Z3.FPExpr)">
+ <summary>
+ Floating-point negation
+ </summary>
+ <param name="t">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPAdd(Microsoft.Z3.FPRMExpr,Microsoft.Z3.FPExpr,Microsoft.Z3.FPExpr)">
+ <summary>
+ Floating-point addition
+ </summary>
+ <param name="rm">rounding mode term</param>
+ <param name="t1">floating-point term</param>
+ <param name="t2">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPSub(Microsoft.Z3.FPRMExpr,Microsoft.Z3.FPExpr,Microsoft.Z3.FPExpr)">
+ <summary>
+ Floating-point subtraction
+ </summary>
+ <param name="rm">rounding mode term</param>
+ <param name="t1">floating-point term</param>
+ <param name="t2">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPMul(Microsoft.Z3.FPRMExpr,Microsoft.Z3.FPExpr,Microsoft.Z3.FPExpr)">
+ <summary>
+ Floating-point multiplication
+ </summary>
+ <param name="rm">rounding mode term</param>
+ <param name="t1">floating-point term</param>
+ <param name="t2">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPDiv(Microsoft.Z3.FPRMExpr,Microsoft.Z3.FPExpr,Microsoft.Z3.FPExpr)">
+ <summary>
+ Floating-point division
+ </summary>
+ <param name="rm">rounding mode term</param>
+ <param name="t1">floating-point term</param>
+ <param name="t2">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPFMA(Microsoft.Z3.FPRMExpr,Microsoft.Z3.FPExpr,Microsoft.Z3.FPExpr,Microsoft.Z3.FPExpr)">
+ <summary>
+ Floating-point fused multiply-add
+ </summary>
+ <remarks>
+ The result is round((t1 * t2) + t3)
+ </remarks>
+ <param name="rm">rounding mode term</param>
+ <param name="t1">floating-point term</param>
+ <param name="t2">floating-point term</param>
+ <param name="t3">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPSqrt(Microsoft.Z3.FPRMExpr,Microsoft.Z3.FPExpr)">
+ <summary>
+ Floating-point square root
+ </summary>
+ <param name="rm">rounding mode term</param>
+ <param name="t">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPRem(Microsoft.Z3.FPExpr,Microsoft.Z3.FPExpr)">
+ <summary>
+ Floating-point remainder
+ </summary>
+ <param name="t1">floating-point term</param>
+ <param name="t2">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPRoundToIntegral(Microsoft.Z3.FPRMExpr,Microsoft.Z3.FPExpr)">
+ <summary>
+ Floating-point roundToIntegral. Rounds a floating-point number to
+ the closest integer, again represented as a floating-point number.
+ </summary>
+ <param name="rm">term of RoundingMode sort</param>
+ <param name="t">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPMin(Microsoft.Z3.FPExpr,Microsoft.Z3.FPExpr)">
+ <summary>
+ Minimum of floating-point numbers.
+ </summary>
+ <param name="t1">floating-point term</param>
+ <param name="t2">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPMax(Microsoft.Z3.FPExpr,Microsoft.Z3.FPExpr)">
+ <summary>
+ Maximum of floating-point numbers.
+ </summary>
+ <param name="t1">floating-point term</param>
+ <param name="t2">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPLEq(Microsoft.Z3.FPExpr,Microsoft.Z3.FPExpr)">
+ <summary>
+ Floating-point less than or equal.
+ </summary>
+ <param name="t1">floating-point term</param>
+ <param name="t2">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPLt(Microsoft.Z3.FPExpr,Microsoft.Z3.FPExpr)">
+ <summary>
+ Floating-point less than.
+ </summary>
+ <param name="t1">floating-point term</param>
+ <param name="t2">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPGEq(Microsoft.Z3.FPExpr,Microsoft.Z3.FPExpr)">
+ <summary>
+ Floating-point greater than or equal.
+ </summary>
+ <param name="t1">floating-point term</param>
+ <param name="t2">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPGt(Microsoft.Z3.FPExpr,Microsoft.Z3.FPExpr)">
+ <summary>
+ Floating-point greater than.
+ </summary>
+ <param name="t1">floating-point term</param>
+ <param name="t2">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPEq(Microsoft.Z3.FPExpr,Microsoft.Z3.FPExpr)">
+ <summary>
+ Floating-point equality.
+ </summary>
+ <remarks>
+ Note that this is IEEE 754 equality (as opposed to standard =).
+ </remarks>
+ <param name="t1">floating-point term</param>
+ <param name="t2">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPIsNormal(Microsoft.Z3.FPExpr)">
+ <summary>
+ Predicate indicating whether t is a normal floating-point number.
+ </summary>
+ <param name="t">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPIsSubnormal(Microsoft.Z3.FPExpr)">
+ <summary>
+ Predicate indicating whether t is a subnormal floating-point number.
+ </summary>
+ <param name="t">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPIsZero(Microsoft.Z3.FPExpr)">
+ <summary>
+ Predicate indicating whether t is a floating-point number with zero value, i.e., +0 or -0.
+ </summary>
+ <param name="t">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPIsInfinite(Microsoft.Z3.FPExpr)">
+ <summary>
+ Predicate indicating whether t is a floating-point number representing +oo or -oo.
+ </summary>
+ <param name="t">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPIsNaN(Microsoft.Z3.FPExpr)">
+ <summary>
+ Predicate indicating whether t is a NaN.
+ </summary>
+ <param name="t">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPIsNegative(Microsoft.Z3.FPExpr)">
+ <summary>
+ Predicate indicating whether t is a negative floating-point number.
+ </summary>
+ <param name="t">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPIsPositive(Microsoft.Z3.FPExpr)">
+ <summary>
+ Predicate indicating whether t is a positive floating-point number.
+ </summary>
+ <param name="t">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFP(Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr,Microsoft.Z3.BitVecExpr)">
+ <summary>
+ Create an expression of FloatingPoint sort from three bit-vector expressions.
+ </summary>
+ <remarks>
+ This is the operator named `fp' in the SMT FP theory definition.
+ Note that sgn is required to be a bit-vector of size 1. Significand and exponent
+ are required to be greater than 1 and 2 respectively. The FloatingPoint sort
+ of the resulting expression is automatically determined from the bit-vector sizes
+ of the arguments.
+ </remarks>
+ <param name="sgn">bit-vector term (of size 1) representing the sign.</param>
+ <param name="sig">bit-vector term representing the significand.</param>
+ <param name="exp">bit-vector term representing the exponent.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPToFP(Microsoft.Z3.BitVecExpr,Microsoft.Z3.FPSort)">
+ <summary>
+ Conversion of a single IEEE 754-2008 bit-vector into a floating-point number.
+ </summary>
+ <remarks>
+ Produces a term that represents the conversion of a bit-vector term bv to a
+ floating-point term of sort s. The bit-vector size of bv (m) must be equal
+ to ebits+sbits of s. The format of the bit-vector is as defined by the
+ IEEE 754-2008 interchange format.
+ </remarks>
+ <param name="bv">bit-vector value (of size m).</param>
+ <param name="s">FloatingPoint sort (ebits+sbits == m)</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPToFP(Microsoft.Z3.FPRMExpr,Microsoft.Z3.FPExpr,Microsoft.Z3.FPSort)">
+ <summary>
+ Conversion of a FloatingPoint term into another term of different FloatingPoint sort.
+ </summary>
+ <remarks>
+ Produces a term that represents the conversion of a floating-point term t to a
+ floating-point term of sort s. If necessary, the result will be rounded according
+ to rounding mode rm.
+ </remarks>
+ <param name="rm">RoundingMode term.</param>
+ <param name="t">FloatingPoint term.</param>
+ <param name="s">FloatingPoint sort.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPToFP(Microsoft.Z3.FPRMExpr,Microsoft.Z3.RealExpr,Microsoft.Z3.FPSort)">
+ <summary>
+ Conversion of a term of real sort into a term of FloatingPoint sort.
+ </summary>
+ <remarks>
+ Produces a term that represents the conversion of term t of real sort into a
+ floating-point term of sort s. If necessary, the result will be rounded according
+ to rounding mode rm.
+ </remarks>
+ <param name="rm">RoundingMode term.</param>
+ <param name="t">term of Real sort.</param>
+ <param name="s">FloatingPoint sort.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPToFP(Microsoft.Z3.FPRMExpr,Microsoft.Z3.BitVecExpr,Microsoft.Z3.FPSort,System.Boolean)">
+ <summary>
+ Conversion of a 2's complement signed bit-vector term into a term of FloatingPoint sort.
+ </summary>
+ <remarks>
+ Produces a term that represents the conversion of the bit-vector term t into a
+ floating-point term of sort s. The bit-vector t is taken to be in signed
+ 2's complement format (when signed==true, otherwise unsigned). If necessary, the
+ result will be rounded according to rounding mode rm.
+ </remarks>
+ <param name="rm">RoundingMode term.</param>
+ <param name="t">term of bit-vector sort.</param>
+ <param name="s">FloatingPoint sort.</param>
+ <param name="signed">flag indicating whether t is interpreted as signed or unsigned bit-vector.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPToFP(Microsoft.Z3.FPSort,Microsoft.Z3.FPRMExpr,Microsoft.Z3.FPExpr)">
+ <summary>
+ Conversion of a floating-point number to another FloatingPoint sort s.
+ </summary>
+ <remarks>
+ Produces a term that represents the conversion of a floating-point term t to a different
+ FloatingPoint sort s. If necessary, rounding according to rm is applied.
+ </remarks>
+ <param name="s">FloatingPoint sort</param>
+ <param name="rm">floating-point rounding mode term</param>
+ <param name="t">floating-point term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPToBV(Microsoft.Z3.FPRMExpr,Microsoft.Z3.FPExpr,System.UInt32,System.Boolean)">
+ <summary>
+ Conversion of a floating-point term into a bit-vector.
+ </summary>
+ <remarks>
+ Produces a term that represents the conversion of the floating-poiunt term t into a
+ bit-vector term of size sz in 2's complement format (signed when signed==true). If necessary,
+ the result will be rounded according to rounding mode rm.
+ </remarks>
+ <param name="rm">RoundingMode term.</param>
+ <param name="t">FloatingPoint term</param>
+ <param name="sz">Size of the resulting bit-vector.</param>
+ <param name="signed">Indicates whether the result is a signed or unsigned bit-vector.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPToReal(Microsoft.Z3.FPExpr)">
+ <summary>
+ Conversion of a floating-point term into a real-numbered term.
+ </summary>
+ <remarks>
+ Produces a term that represents the conversion of the floating-poiunt term t into a
+ real number. Note that this type of conversion will often result in non-linear
+ constraints over real terms.
+ </remarks>
+ <param name="t">FloatingPoint term</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPToIEEEBV(Microsoft.Z3.FPExpr)">
+ <summary>
+ Conversion of a floating-point term into a bit-vector term in IEEE 754-2008 format.
+ </summary>
+ <remarks>
+ The size of the resulting bit-vector is automatically determined. Note that
+ IEEE 754-2008 allows multiple different representations of NaN. This conversion
+ knows only one NaN and it will always produce the same bit-vector represenatation of
+ that NaN.
+ </remarks>
+ <param name="t">FloatingPoint term.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.MkFPToFP(Microsoft.Z3.FPRMExpr,Microsoft.Z3.IntExpr,Microsoft.Z3.RealExpr,Microsoft.Z3.FPSort)">
+ <summary>
+ Conversion of a real-sorted significand and an integer-sorted exponent into a term of FloatingPoint sort.
+ </summary>
+ <remarks>
+ Produces a term that represents the conversion of sig * 2^exp into a
+ floating-point term of sort s. If necessary, the result will be rounded
+ according to rounding mode rm.
+ </remarks>
+ <param name="rm">RoundingMode term.</param>
+ <param name="exp">Exponent term of Int sort.</param>
+ <param name="sig">Significand term of Real sort.</param>
+ <param name="s">FloatingPoint sort.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.WrapAST(System.IntPtr)">
+ <summary>
+ Wraps an AST.
+ </summary>
+ <remarks>This function is used for transitions between native and
+ managed objects. Note that <paramref name="nativeObject"/> must be a
+ native object obtained from Z3 (e.g., through <seealso cref="M:Microsoft.Z3.Context.UnwrapAST(Microsoft.Z3.AST)"/>)
+ and that it must have a correct reference count (see e.g.,
+ <seealso cref="M:Microsoft.Z3.Native.Z3_inc_ref(System.IntPtr,System.IntPtr)"/>.</remarks>
+ <seealso cref="M:Microsoft.Z3.Context.UnwrapAST(Microsoft.Z3.AST)"/>
+ <param name="nativeObject">The native pointer to wrap.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.UnwrapAST(Microsoft.Z3.AST)">
+ <summary>
+ Unwraps an AST.
+ </summary>
+ <remarks>This function is used for transitions between native and
+ managed objects. It returns the native pointer to the AST. Note that
+ AST objects are reference counted and unwrapping an AST disables automatic
+ reference counting, i.e., all references to the IntPtr that is returned
+ must be handled externally and through native calls (see e.g.,
+ <seealso cref="M:Microsoft.Z3.Native.Z3_inc_ref(System.IntPtr,System.IntPtr)"/>).</remarks>
+ <seealso cref="M:Microsoft.Z3.Context.WrapAST(System.IntPtr)"/>
+ <param name="a">The AST to unwrap.</param>
+ </member>
+ <member name="M:Microsoft.Z3.Context.SimplifyHelp">
+ <summary>
+ Return a string describing all available parameters to <c>Expr.Simplify</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.UpdateParamValue(System.String,System.String)">
+ <summary>
+ Update a mutable configuration parameter.
+ </summary>
+ <remarks>
+ The list of all configuration parameters can be obtained using the Z3 executable:
+ <c>z3.exe -p</c>
+ Only a few configuration parameters are mutable once the context is created.
+ An exception is thrown when trying to modify an immutable parameter.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Context.Finalize">
+ <summary>
+ Finalizer.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Context.Dispose">
+ <summary>
+ Disposes of the context.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.BoolSort">
+ <summary>
+ Retrieves the Boolean sort of the context.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.IntSort">
+ <summary>
+ Retrieves the Integer sort of the context.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.RealSort">
+ <summary>
+ Retrieves the Real sort of the context.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.StringSort">
+ <summary>
+ Retrieves the String sort of the context.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.PrintMode">
+ <summary>
+ Selects the format used for pretty-printing expressions.
+ </summary>
+ <remarks>
+ The default mode for pretty printing expressions is to produce
+ SMT-LIB style output where common subexpressions are printed
+ at each occurrence. The mode is called Z3_PRINT_SMTLIB_FULL.
+ To print shared common subexpressions only once,
+ use the Z3_PRINT_LOW_LEVEL mode.
+ To print in way that conforms to SMT-LIB standards and uses let
+ expressions to share common sub-expressions use Z3_PRINT_SMTLIB_COMPLIANT.
+ </remarks>
+ <seealso cref="M:Microsoft.Z3.AST.ToString"/>
+ <seealso cref="M:Microsoft.Z3.Pattern.ToString"/>
+ <seealso cref="M:Microsoft.Z3.FuncDecl.ToString"/>
+ <seealso cref="M:Microsoft.Z3.Sort.ToString"/>
+ </member>
+ <member name="P:Microsoft.Z3.Context.NumSMTLIBFormulas">
+ <summary>
+ The number of SMTLIB formulas parsed by the last call to <c>ParseSMTLIBString</c> or <c>ParseSMTLIBFile</c>.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.SMTLIBFormulas">
+ <summary>
+ The formulas parsed by the last call to <c>ParseSMTLIBString</c> or <c>ParseSMTLIBFile</c>.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.NumSMTLIBAssumptions">
+ <summary>
+ The number of SMTLIB assumptions parsed by the last call to <c>ParseSMTLIBString</c> or <c>ParseSMTLIBFile</c>.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.SMTLIBAssumptions">
+ <summary>
+ The assumptions parsed by the last call to <c>ParseSMTLIBString</c> or <c>ParseSMTLIBFile</c>.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.NumSMTLIBDecls">
+ <summary>
+ The number of SMTLIB declarations parsed by the last call to <c>ParseSMTLIBString</c> or <c>ParseSMTLIBFile</c>.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.SMTLIBDecls">
+ <summary>
+ The declarations parsed by the last call to <c>ParseSMTLIBString</c> or <c>ParseSMTLIBFile</c>.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.NumSMTLIBSorts">
+ <summary>
+ The number of SMTLIB sorts parsed by the last call to <c>ParseSMTLIBString</c> or <c>ParseSMTLIBFile</c>.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.SMTLIBSorts">
+ <summary>
+ The declarations parsed by the last call to <c>ParseSMTLIBString</c> or <c>ParseSMTLIBFile</c>.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.NumTactics">
+ <summary>
+ The number of supported tactics.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.TacticNames">
+ <summary>
+ The names of all supported tactics.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.NumProbes">
+ <summary>
+ The number of supported Probes.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.ProbeNames">
+ <summary>
+ The names of all supported Probes.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.SimplifyParameterDescriptions">
+ <summary>
+ Retrieves parameter descriptions for simplifier.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.AST_DRQ">
+ <summary>
+ AST DRQ
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.ASTMap_DRQ">
+ <summary>
+ ASTMap DRQ
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.ASTVector_DRQ">
+ <summary>
+ ASTVector DRQ
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.ApplyResult_DRQ">
+ <summary>
+ ApplyResult DRQ
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.FuncEntry_DRQ">
+ <summary>
+ FuncEntry DRQ
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.FuncInterp_DRQ">
+ <summary>
+ FuncInterp DRQ
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.Goal_DRQ">
+ <summary>
+ Goal DRQ
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.Model_DRQ">
+ <summary>
+ Model DRQ
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.Params_DRQ">
+ <summary>
+ Params DRQ
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.ParamDescrs_DRQ">
+ <summary>
+ ParamDescrs DRQ
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.Probe_DRQ">
+ <summary>
+ Probe DRQ
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.Solver_DRQ">
+ <summary>
+ Solver DRQ
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.Statistics_DRQ">
+ <summary>
+ Statistics DRQ
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.Tactic_DRQ">
+ <summary>
+ Tactic DRQ
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.Fixedpoint_DRQ">
+ <summary>
+ FixedPoint DRQ
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Context.Optimize_DRQ">
+ <summary>
+ Optimize DRQ
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.DatatypeExpr">
+ <summary>
+ Datatype expressions
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.DatatypeExpr.#ctor(Microsoft.Z3.Context,System.IntPtr)">
+ <summary> Constructor for DatatypeExpr </summary>
+ </member>
+ <member name="T:Microsoft.Z3.DatatypeSort">
+ <summary>
+ Datatype sorts.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.DatatypeSort.NumConstructors">
+ <summary>
+ The number of constructors of the datatype sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.DatatypeSort.Constructors">
+ <summary>
+ The constructors.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.DatatypeSort.Recognizers">
+ <summary>
+ The recognizers.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.DatatypeSort.Accessors">
+ <summary>
+ The constructor accessors.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Deprecated">
+ <summary>
+ The main interaction with Z3 happens via the Context.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Z3_lbool">
+ <summary>Z3_lbool</summary>
+ </member>
+ <member name="T:Microsoft.Z3.Z3_symbol_kind">
+ <summary>Z3_symbol_kind</summary>
+ </member>
+ <member name="T:Microsoft.Z3.Z3_parameter_kind">
+ <summary>Z3_parameter_kind</summary>
+ </member>
+ <member name="T:Microsoft.Z3.Z3_sort_kind">
+ <summary>Z3_sort_kind</summary>
+ </member>
+ <member name="T:Microsoft.Z3.Z3_ast_kind">
+ <summary>Z3_ast_kind</summary>
+ </member>
+ <member name="T:Microsoft.Z3.Z3_decl_kind">
+ <summary>Z3_decl_kind</summary>
+ </member>
+ <member name="T:Microsoft.Z3.Z3_param_kind">
+ <summary>Z3_param_kind</summary>
+ </member>
+ <member name="T:Microsoft.Z3.Z3_ast_print_mode">
+ <summary>Z3_ast_print_mode</summary>
+ </member>
+ <member name="T:Microsoft.Z3.Z3_error_code">
+ <summary>Z3_error_code</summary>
+ </member>
+ <member name="T:Microsoft.Z3.Z3_goal_prec">
+ <summary>Z3_goal_prec</summary>
+ </member>
+ <member name="T:Microsoft.Z3.EnumSort">
+ <summary>
+ Enumeration sorts.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.EnumSort.ConstDecl(System.UInt32)">
+ <summary>
+ Retrieves the inx'th constant declaration in the enumeration.
+ </summary>
+ <param name="inx"></param>
+ <returns></returns>
+ </member>
+ <member name="M:Microsoft.Z3.EnumSort.Const(System.UInt32)">
+ <summary>
+ Retrieves the inx'th constant in the enumeration.
+ </summary>
+ <param name="inx"></param>
+ <returns></returns>
+ </member>
+ <member name="M:Microsoft.Z3.EnumSort.TesterDecl(System.UInt32)">
+ <summary>
+ Retrieves the inx'th tester/recognizer declaration in the enumeration.
+ </summary>
+ <param name="inx"></param>
+ <returns></returns>
+ </member>
+ <member name="P:Microsoft.Z3.EnumSort.ConstDecls">
+ <summary>
+ The function declarations of the constants in the enumeration.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.EnumSort.Consts">
+ <summary>
+ The constants in the enumeration.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.EnumSort.TesterDecls">
+ <summary>
+ The test predicates (recognizers) for the constants in the enumeration.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.FiniteDomainExpr">
+ <summary>
+ Finite-domain expressions
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.FiniteDomainExpr.#ctor(Microsoft.Z3.Context,System.IntPtr)">
+ <summary> Constructor for DatatypeExpr </summary>
+ </member>
+ <member name="T:Microsoft.Z3.FiniteDomainNum">
+ <summary>
+ Finite-domain numerals
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.FiniteDomainNum.ToString">
+ <summary>
+ Returns a string representation of the numeral.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FiniteDomainNum.UInt64">
+ <summary>
+ Retrieve the 64-bit unsigned integer value.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FiniteDomainNum.Int">
+ <summary>
+ Retrieve the int value.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FiniteDomainNum.Int64">
+ <summary>
+ Retrieve the 64-bit int value.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FiniteDomainNum.UInt">
+ <summary>
+ Retrieve the int value.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FiniteDomainNum.BigInteger">
+ <summary>
+ Retrieve the BigInteger value.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.FiniteDomainSort">
+ <summary>
+ Finite domain sorts.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FiniteDomainSort.Size">
+ <summary>
+ The size of the finite domain sort.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Fixedpoint">
+ <summary>
+ Object for managing fixedpoints
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.Assert(Microsoft.Z3.BoolExpr[])">
+ <summary>
+ Assert a constraint (or multiple) into the fixedpoint solver.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.Add(Microsoft.Z3.BoolExpr[])">
+ <summary>
+ Alias for Assert.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.RegisterRelation(Microsoft.Z3.FuncDecl)">
+ <summary>
+ Register predicate as recursive relation.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.AddRule(Microsoft.Z3.BoolExpr,Microsoft.Z3.Symbol)">
+ <summary>
+ Add rule into the fixedpoint solver.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.AddFact(Microsoft.Z3.FuncDecl,System.UInt32[])">
+ <summary>
+ Add table fact to the fixedpoint solver.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.Query(Microsoft.Z3.BoolExpr)">
+ <summary>
+ Query the fixedpoint solver.
+ A query is a conjunction of constraints. The constraints may include the recursively defined relations.
+ The query is satisfiable if there is an instance of the query variables and a derivation for it.
+ The query is unsatisfiable if there are no derivations satisfying the query variables.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.Query(Microsoft.Z3.FuncDecl[])">
+ <summary>
+ Query the fixedpoint solver.
+ A query is an array of relations.
+ The query is satisfiable if there is an instance of some relation that is non-empty.
+ The query is unsatisfiable if there are no derivations satisfying any of the relations.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.Push">
+ <summary>
+ Creates a backtracking point.
+ </summary>
+ <seealso cref="M:Microsoft.Z3.Fixedpoint.Pop"/>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.Pop">
+ <summary>
+ Backtrack one backtracking point.
+ </summary>
+ <remarks>Note that an exception is thrown if Pop is called without a corresponding <c>Push</c></remarks>
+ <seealso cref="M:Microsoft.Z3.Fixedpoint.Push"/>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.UpdateRule(Microsoft.Z3.BoolExpr,Microsoft.Z3.Symbol)">
+ <summary>
+ Update named rule into in the fixedpoint solver.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.GetAnswer">
+ <summary>
+ Retrieve satisfying instance or instances of solver,
+ or definitions for the recursive predicates that show unsatisfiability.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.GetReasonUnknown">
+ <summary>
+ Retrieve explanation why fixedpoint engine returned status Unknown.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.GetNumLevels(Microsoft.Z3.FuncDecl)">
+ <summary>
+ Retrieve the number of levels explored for a given predicate.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.GetCoverDelta(System.Int32,Microsoft.Z3.FuncDecl)">
+ <summary>
+ Retrieve the cover of a predicate.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.AddCover(System.Int32,Microsoft.Z3.FuncDecl,Microsoft.Z3.Expr)">
+ <summary>
+ Add <tt>property</tt> about the <tt>predicate</tt>.
+ The property is added at <tt>level</tt>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.ToString">
+ <summary>
+ Retrieve internal string representation of fixedpoint object.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.SetPredicateRepresentation(Microsoft.Z3.FuncDecl,Microsoft.Z3.Symbol[])">
+ <summary>
+ Instrument the Datalog engine on which table representation to use for recursive predicate.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.ToString(Microsoft.Z3.BoolExpr[])">
+ <summary>
+ Convert benchmark given as set of axioms, rules and queries to a string.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.ParseFile(System.String)">
+ <summary>
+ Parse an SMT-LIB2 file with fixedpoint rules.
+ Add the rules to the current fixedpoint context.
+ Return the set of queries in the file.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Fixedpoint.ParseString(System.String)">
+ <summary>
+ Similar to ParseFile. Instead it takes as argument a string.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Fixedpoint.Help">
+ <summary>
+ A string that describes all available fixedpoint solver parameters.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Fixedpoint.Parameters">
+ <summary>
+ Sets the fixedpoint solver parameters.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Fixedpoint.ParameterDescriptions">
+ <summary>
+ Retrieves parameter descriptions for Fixedpoint solver.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Fixedpoint.Rules">
+ <summary>
+ Retrieve set of rules added to fixedpoint context.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Fixedpoint.Assertions">
+ <summary>
+ Retrieve set of assertions added to fixedpoint context.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Fixedpoint.Statistics">
+ <summary>
+ Fixedpoint statistics.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.FPExpr">
+ <summary>
+ FloatingPoint Expressions
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.FPExpr.#ctor(Microsoft.Z3.Context,System.IntPtr)">
+ <summary> Constructor for FPExpr </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPExpr.EBits">
+ <summary>
+ The number of exponent bits.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPExpr.SBits">
+ <summary>
+ The number of significand bits.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.FPNum">
+ <summary>
+ FloatiungPoint Numerals
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.FPNum.ToString">
+ <summary>
+ Returns a string representation of the numeral.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPNum.Sign">
+ <summary>
+ Retrieves the sign of a floating-point literal
+ </summary>
+ <remarks>
+ Remarks: returns true if the numeral is negative
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.FPNum.Significand">
+ <summary>
+ The significand value of a floating-point numeral as a string
+ </summary>
+ <remarks>
+ The significand s is always 0 &lt; s &lt; 2.0; the resulting string is long
+ enough to represent the real significand precisely.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.FPNum.SignificandUInt64">
+ <summary>
+ The significand value of a floating-point numeral as a UInt64
+ </summary>
+ <remarks>
+ This function extracts the significand bits, without the
+ hidden bit or normalization. Throws an exception if the
+ significand does not fit into a UInt64.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.FPNum.Exponent">
+ <summary>
+ Return the exponent value of a floating-point numeral as a string
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPNum.ExponentInt64">
+ <summary>
+ Return the exponent value of a floating-point numeral as a signed 64-bit integer
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.FPRMExpr">
+ <summary>
+ FloatingPoint RoundingMode Expressions
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.FPRMExpr.#ctor(Microsoft.Z3.Context,System.IntPtr)">
+ <summary> Constructor for FPRMExpr </summary>
+ </member>
+ <member name="T:Microsoft.Z3.FPRMNum">
+ <summary>
+ Floating-point rounding mode numerals
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.FPRMNum.ToString">
+ <summary>
+ Returns a string representation of the numeral.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.FPRMNum.#ctor(Microsoft.Z3.Context,System.IntPtr)">
+ <summary> Constructor for FPRMNum </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPRMNum.isRoundNearestTiesToEven">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundNearestTiesToEven
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPRMNum.isRNE">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundNearestTiesToEven
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPRMNum.isRoundNearestTiesToAway">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundNearestTiesToAway
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPRMNum.isRNA">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundNearestTiesToAway
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPRMNum.isRoundTowardPositive">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundTowardPositive
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPRMNum.isRTP">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundTowardPositive
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPRMNum.isRoundTowardNegative">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundTowardNegative
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPRMNum.isRTN">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundTowardNegative
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPRMNum.isRoundTowardZero">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundTowardZero
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPRMNum.isRTZ">
+ <summary>
+ Indicates whether the term is the floating-point rounding numeral roundTowardZero
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.FPRMSort">
+ <summary>
+ The FloatingPoint RoundingMode sort
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.FPSort">
+ <summary>
+ FloatingPoint sort
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPSort.EBits">
+ <summary>
+ The number of exponent bits.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FPSort.SBits">
+ <summary>
+ The number of significand bits.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.FuncDecl">
+ <summary>
+ Function declarations.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.FuncDecl.op_Equality(Microsoft.Z3.FuncDecl,Microsoft.Z3.FuncDecl)">
+ <summary>
+ Comparison operator.
+ </summary>
+ <returns>True if <paramref name="a"/> and <paramref name="b"/> share the same context and are equal, false otherwise.</returns>
+ </member>
+ <member name="M:Microsoft.Z3.FuncDecl.op_Inequality(Microsoft.Z3.FuncDecl,Microsoft.Z3.FuncDecl)">
+ <summary>
+ Comparison operator.
+ </summary>
+ <returns>True if <paramref name="a"/> and <paramref name="b"/> do not share the same context or are not equal, false otherwise.</returns>
+ </member>
+ <member name="M:Microsoft.Z3.FuncDecl.Equals(System.Object)">
+ <summary>
+ Object comparison.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.FuncDecl.GetHashCode">
+ <summary>
+ A hash code.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.FuncDecl.ToString">
+ <summary>
+ A string representations of the function declaration.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.FuncDecl.Apply(Microsoft.Z3.Expr[])">
+ <summary>
+ Create expression that applies function to arguments.
+ </summary>
+ <param name="args"></param>
+ <returns></returns>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.Id">
+ <summary>
+ Returns a unique identifier for the function declaration.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.Arity">
+ <summary>
+ The arity of the function declaration
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.DomainSize">
+ <summary>
+ The size of the domain of the function declaration
+ <seealso cref="P:Microsoft.Z3.FuncDecl.Arity"/>
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.Domain">
+ <summary>
+ The domain of the function declaration
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.Range">
+ <summary>
+ The range of the function declaration
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.DeclKind">
+ <summary>
+ The kind of the function declaration.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.Name">
+ <summary>
+ The name of the function declaration
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.NumParameters">
+ <summary>
+ The number of parameters of the function declaration
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.Parameters">
+ <summary>
+ The parameters of the function declaration
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.Item(Microsoft.Z3.Expr[])">
+ <summary>
+ Create expression that applies function to arguments.
+ </summary>
+ <param name="args"></param>
+ <returns></returns>
+ </member>
+ <member name="T:Microsoft.Z3.FuncDecl.Parameter">
+ <summary>
+ Function declarations can have Parameters associated with them.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.Parameter.Int">
+ <summary>The int value of the parameter.</summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.Parameter.Double">
+ <summary>The double value of the parameter.</summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.Parameter.Symbol">
+ <summary>The Symbol value of the parameter.</summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.Parameter.Sort">
+ <summary>The Sort value of the parameter.</summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.Parameter.AST">
+ <summary>The AST value of the parameter.</summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.Parameter.FuncDecl">
+ <summary>The FunctionDeclaration value of the parameter.</summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.Parameter.Rational">
+ <summary>The rational string value of the parameter.</summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncDecl.Parameter.ParameterKind">
+ <summary>
+ The kind of the parameter.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.FuncInterp">
+ <summary>
+ A function interpretation is represented as a finite map and an 'else' value.
+ Each entry in the finite map represents the value of a function given a set of arguments.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.FuncInterp.ToString">
+ <summary>
+ A string representation of the function interpretation.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncInterp.NumEntries">
+ <summary>
+ The number of entries in the function interpretation.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncInterp.Entries">
+ <summary>
+ The entries in the function interpretation
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncInterp.Else">
+ <summary>
+ The (symbolic) `else' value of the function interpretation.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncInterp.Arity">
+ <summary>
+ The arity of the function interpretation
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.FuncInterp.Entry">
+ <summary>
+ An Entry object represents an element in the finite map used to encode
+ a function interpretation.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.FuncInterp.Entry.ToString">
+ <summary>
+ A string representation of the function entry.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncInterp.Entry.Value">
+ <summary>
+ Return the (symbolic) value of this entry.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncInterp.Entry.NumArgs">
+ <summary>
+ The number of arguments of the entry.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.FuncInterp.Entry.Args">
+ <summary>
+ The arguments of the function entry.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Global">
+ <summary>
+ Global functions for Z3.
+ </summary>
+ <remarks>
+ This (static) class contains functions that effect the behaviour of Z3
+ globally across contexts, etc.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Global.SetParameter(System.String,System.String)">
+ <summary>
+ Set a global (or module) parameter, which is shared by all Z3 contexts.
+ </summary>
+ <remarks>
+ When a Z3 module is initialized it will use the value of these parameters
+ when Z3_params objects are not provided.
+ The name of parameter can be composed of characters [a-z][A-Z], digits [0-9], '-' and '_'.
+ The character '.' is a delimiter (more later).
+ The parameter names are case-insensitive. The character '-' should be viewed as an "alias" for '_'.
+ Thus, the following parameter names are considered equivalent: "pp.decimal-precision" and "PP.DECIMAL_PRECISION".
+ This function can be used to set parameters for a specific Z3 module.
+ This can be done by using [module-name].[parameter-name].
+ For example:
+ Z3_global_param_set('pp.decimal', 'true')
+ will set the parameter "decimal" in the module "pp" to true.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Global.GetParameter(System.String)">
+ <summary>
+ Get a global (or module) parameter.
+ </summary>
+ <remarks>
+ Returns null if the parameter <param name="id"/> does not exist.
+ The caller must invoke #Z3_global_param_del_value to delete the value returned at \c param_value.
+ This function cannot be invoked simultaneously from different threads without synchronization.
+ The result string stored in param_value is stored in a shared location.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Global.ResetParameters">
+ <summary>
+ Restore the value of all global (and module) parameters.
+ </summary>
+ <remarks>
+ This command will not affect already created objects (such as tactics and solvers)
+ </remarks>
+ <seealso cref="M:Microsoft.Z3.Global.SetParameter(System.String,System.String)"/>
+ </member>
+ <member name="M:Microsoft.Z3.Global.ToggleWarningMessages(System.Boolean)">
+ <summary>
+ Enable/disable printing of warning messages to the console.
+ </summary>
+ <remarks>Note that this function is static and effects the behaviour of
+ all contexts globally.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Global.EnableTrace(System.String)">
+ <summary>
+ Enable tracing messages tagged as `tag' when Z3 is compiled in debug mode.
+ </summary>
+ <remarks>
+ It is a NOOP otherwise.
+ </remarks>
+ <param name="tag">trace tag</param>
+ </member>
+ <member name="M:Microsoft.Z3.Global.DisableTrace(System.String)">
+ <summary>
+ Disable tracing messages tagged as `tag' when Z3 is compiled in debug mode.
+ </summary>
+ <remarks>
+ It is a NOOP otherwise.
+ </remarks>
+ <param name="tag">trace tag</param>
+ </member>
+ <member name="T:Microsoft.Z3.Goal">
+ <summary>
+ A goal (aka problem). A goal is essentially a set
+ of formulas, that can be solved and/or transformed using
+ tactics and solvers.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Goal.Assert(Microsoft.Z3.BoolExpr[])">
+ <summary>
+ Adds the <paramref name="constraints"/> to the given goal.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Goal.Add(Microsoft.Z3.BoolExpr[])">
+ <summary>
+ Alias for Assert.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Goal.Reset">
+ <summary>
+ Erases all formulas from the given goal.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Goal.Translate(Microsoft.Z3.Context)">
+ <summary>
+ Translates (copies) the Goal to the target Context <paramref name="ctx"/>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Goal.Simplify(Microsoft.Z3.Params)">
+ <summary>
+ Simplifies the goal.
+ </summary>
+ <remarks>Essentially invokes the `simplify' tactic on the goal.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Goal.ToString">
+ <summary>
+ Goal to string conversion.
+ </summary>
+ <returns>A string representation of the Goal.</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Goal.AsBoolExpr">
+ <summary>
+ Goal to BoolExpr conversion.
+ </summary>
+ <returns>A string representation of the Goal.</returns>
+ </member>
+ <member name="P:Microsoft.Z3.Goal.Precision">
+ <summary>
+ The precision of the goal.
+ </summary>
+ <remarks>
+ Goals can be transformed using over and under approximations.
+ An under approximation is applied when the objective is to find a model for a given goal.
+ An over approximation is applied when the objective is to find a proof for a given goal.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Goal.IsPrecise">
+ <summary>
+ Indicates whether the goal is precise.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Goal.IsUnderApproximation">
+ <summary>
+ Indicates whether the goal is an under-approximation.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Goal.IsOverApproximation">
+ <summary>
+ Indicates whether the goal is an over-approximation.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Goal.IsGarbage">
+ <summary>
+ Indicates whether the goal is garbage (i.e., the product of over- and under-approximations).
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Goal.Inconsistent">
+ <summary>
+ Indicates whether the goal contains `false'.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Goal.Depth">
+ <summary>
+ The depth of the goal.
+ </summary>
+ <remarks>
+ This tracks how many transformations were applied to it.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Goal.Size">
+ <summary>
+ The number of formulas in the goal.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Goal.Formulas">
+ <summary>
+ The formulas in the goal.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Goal.NumExprs">
+ <summary>
+ The number of formulas, subformulas and terms in the goal.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Goal.IsDecidedSat">
+ <summary>
+ Indicates whether the goal is empty, and it is precise or the product of an under approximation.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Goal.IsDecidedUnsat">
+ <summary>
+ Indicates whether the goal contains `false', and it is precise or the product of an over approximation.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.InterpolationContext">
+ <summary>
+ The InterpolationContext is suitable for generation of interpolants.
+ </summary>
+ <remarks>For more information on interpolation please refer
+ too the C/C++ API, which is well documented.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.InterpolationContext.#ctor">
+ <summary>
+ Constructor.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.InterpolationContext.#ctor(System.Collections.Generic.Dictionary{System.String,System.String})">
+ <summary>
+ Constructor.
+ </summary>
+ <remarks><seealso cref="T:Microsoft.Z3.Context"/></remarks>
+ </member>
+ <member name="M:Microsoft.Z3.InterpolationContext.MkInterpolant(Microsoft.Z3.BoolExpr)">
+ <summary>
+ Create an expression that marks a formula position for interpolation.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.InterpolationContext.GetInterpolant(Microsoft.Z3.Expr,Microsoft.Z3.Expr,Microsoft.Z3.Params)">
+ <summary>
+ Computes an interpolant.
+ </summary>
+ <remarks>For more information on interpolation please refer
+ too the function Z3_get_interpolant in the C/C++ API, which is
+ well documented.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.InterpolationContext.ComputeInterpolant(Microsoft.Z3.Expr,Microsoft.Z3.Params,Microsoft.Z3.BoolExpr[]@,Microsoft.Z3.Model@)">
+ <summary>
+ Computes an interpolant.
+ </summary>
+ <remarks>For more information on interpolation please refer
+ too the function Z3_compute_interpolant in the C/C++ API, which is
+ well documented.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.InterpolationContext.InterpolationProfile">
+ <summary>
+ Return a string summarizing cumulative time used for interpolation.
+ </summary>
+ <remarks>For more information on interpolation please refer
+ too the function Z3_interpolation_profile in the C/C++ API, which is
+ well documented.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.InterpolationContext.CheckInterpolant(Microsoft.Z3.Expr[],System.UInt32[],Microsoft.Z3.BoolExpr[],System.String@,Microsoft.Z3.Expr[])">
+ <summary>
+ Checks the correctness of an interpolant.
+ </summary>
+ <remarks>For more information on interpolation please refer
+ too the function Z3_check_interpolant in the C/C++ API, which is
+ well documented.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.InterpolationContext.ReadInterpolationProblem(System.String,Microsoft.Z3.Expr[]@,System.UInt32[]@,System.String@,Microsoft.Z3.Expr[]@)">
+ <summary>
+ Reads an interpolation problem from a file.
+ </summary>
+ <remarks>For more information on interpolation please refer
+ too the function Z3_read_interpolation_problem in the C/C++ API, which is
+ well documented.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.InterpolationContext.WriteInterpolationProblem(System.String,Microsoft.Z3.Expr[],System.UInt32[],Microsoft.Z3.Expr[])">
+ <summary>
+ Writes an interpolation problem to a file.
+ </summary>
+ <remarks>For more information on interpolation please refer
+ too the function Z3_write_interpolation_problem in the C/C++ API, which is
+ well documented.</remarks>
+ </member>
+ <member name="T:Microsoft.Z3.IntExpr">
+ <summary>
+ Int expressions
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.IntExpr.#ctor(Microsoft.Z3.Context,System.IntPtr)">
+ <summary> Constructor for IntExpr </summary>
+ </member>
+ <member name="T:Microsoft.Z3.IntNum">
+ <summary>
+ Integer Numerals
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.IntNum.ToString">
+ <summary>
+ Returns a string representation of the numeral.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.IntNum.UInt64">
+ <summary>
+ Retrieve the 64-bit unsigned integer value.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.IntNum.Int">
+ <summary>
+ Retrieve the int value.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.IntNum.Int64">
+ <summary>
+ Retrieve the 64-bit int value.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.IntNum.UInt">
+ <summary>
+ Retrieve the int value.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.IntNum.BigInteger">
+ <summary>
+ Retrieve the BigInteger value.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.IntSort">
+ <summary>
+ An Integer sort
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.IntSymbol">
+ <summary>
+ Numbered symbols
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Symbol">
+ <summary>
+ Symbols are used to name several term and type constructors.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Symbol.IsIntSymbol">
+ <summary>
+ Indicates whether the symbol is of Int kind
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Symbol.IsStringSymbol">
+ <summary>
+ Indicates whether the symbol is of string kind.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Symbol.ToString">
+ <summary>
+ A string representation of the symbol.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Symbol.op_Equality(Microsoft.Z3.Symbol,Microsoft.Z3.Symbol)">
+ <summary>
+ Equality overloading.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Symbol.op_Inequality(Microsoft.Z3.Symbol,Microsoft.Z3.Symbol)">
+ <summary>
+ Equality overloading.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Symbol.Equals(System.Object)">
+ <summary>
+ Object comparison.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Symbol.GetHashCode">
+ <summary>
+ The Symbols's hash code.
+ </summary>
+ <returns>A hash code</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Symbol.#ctor(Microsoft.Z3.Context,System.IntPtr)">
+ <summary>
+ Symbol constructor
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Symbol.Kind">
+ <summary>
+ The kind of the symbol (int or string)
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.IntSymbol.Int">
+ <summary>
+ The int value of the symbol.
+ </summary>
+ <remarks>Throws an exception if the symbol is not of int kind. </remarks>
+ </member>
+ <member name="T:Microsoft.Z3.ListSort">
+ <summary>
+ List sorts.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.ListSort.NilDecl">
+ <summary>
+ The declaration of the nil function of this list sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.ListSort.Nil">
+ <summary>
+ The empty list.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.ListSort.IsNilDecl">
+ <summary>
+ The declaration of the isNil function of this list sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.ListSort.ConsDecl">
+ <summary>
+ The declaration of the cons function of this list sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.ListSort.IsConsDecl">
+ <summary>
+ The declaration of the isCons function of this list sort.
+ </summary>
+
+ </member>
+ <member name="P:Microsoft.Z3.ListSort.HeadDecl">
+ <summary>
+ The declaration of the head function of this list sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.ListSort.TailDecl">
+ <summary>
+ The declaration of the tail function of this list sort.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Log">
+ <summary>
+ Interaction logging for Z3.
+ </summary>
+ <remarks>
+ Note that this is a global, static log and if multiple Context
+ objects are created, it logs the interaction with all of them.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Log.Open(System.String)">
+ <summary>
+ Open an interaction log file.
+ </summary>
+ <param name="filename">the name of the file to open</param>
+ <returns>True if opening the log file succeeds, false otherwise.</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Log.Close">
+ <summary>
+ Closes the interaction log.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Log.Append(System.String)">
+ <summary>
+ Appends the user-provided string <paramref name="s"/> to the interaction log.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Log.isOpen">
+ <summary>
+ Checks whether the interaction log is opened.
+ </summary>
+ <returns>True if the interaction log is open, false otherwise.</returns>
+ </member>
+ <member name="T:Microsoft.Z3.Model">
+ <summary>
+ A Model contains interpretations (assignments) of constants and functions.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Model.ConstInterp(Microsoft.Z3.Expr)">
+ <summary>
+ Retrieves the interpretation (the assignment) of <paramref name="a"/> in the model.
+ </summary>
+ <param name="a">A Constant</param>
+ <returns>An expression if the constant has an interpretation in the model, null otherwise.</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Model.ConstInterp(Microsoft.Z3.FuncDecl)">
+ <summary>
+ Retrieves the interpretation (the assignment) of <paramref name="f"/> in the model.
+ </summary>
+ <param name="f">A function declaration of zero arity</param>
+ <returns>An expression if the function has an interpretation in the model, null otherwise.</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Model.FuncInterp(Microsoft.Z3.FuncDecl)">
+ <summary>
+ Retrieves the interpretation (the assignment) of a non-constant <paramref name="f"/> in the model.
+ </summary>
+ <param name="f">A function declaration of non-zero arity</param>
+ <returns>A FunctionInterpretation if the function has an interpretation in the model, null otherwise.</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Model.Eval(Microsoft.Z3.Expr,System.Boolean)">
+ <summary>
+ Evaluates the expression <paramref name="t"/> in the current model.
+ </summary>
+ <remarks>
+ This function may fail if <paramref name="t"/> contains quantifiers,
+ is partial (MODEL_PARTIAL enabled), or if <paramref name="t"/> is not well-sorted.
+ In this case a <c>ModelEvaluationFailedException</c> is thrown.
+ </remarks>
+ <param name="t">An expression</param>
+ <param name="completion">
+ When this flag is enabled, a model value will be assigned to any constant
+ or function that does not have an interpretation in the model.
+ </param>
+ <returns>The evaluation of <paramref name="t"/> in the model.</returns>
+ </member>
+ <member name="M:Microsoft.Z3.Model.Evaluate(Microsoft.Z3.Expr,System.Boolean)">
+ <summary>
+ Alias for <c>Eval</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Model.SortUniverse(Microsoft.Z3.Sort)">
+ <summary>
+ The finite set of distinct values that represent the interpretation for sort <paramref name="s"/>.
+ </summary>
+ <seealso cref="P:Microsoft.Z3.Model.Sorts"/>
+ <param name="s">An uninterpreted sort</param>
+ <returns>An array of expressions, where each is an element of the universe of <paramref name="s"/></returns>
+ </member>
+ <member name="M:Microsoft.Z3.Model.ToString">
+ <summary>
+ Conversion of models to strings.
+ </summary>
+ <returns>A string representation of the model.</returns>
+ </member>
+ <member name="P:Microsoft.Z3.Model.NumConsts">
+ <summary>
+ The number of constants that have an interpretation in the model.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Model.ConstDecls">
+ <summary>
+ The function declarations of the constants in the model.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Model.NumFuncs">
+ <summary>
+ The number of function interpretations in the model.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Model.FuncDecls">
+ <summary>
+ The function declarations of the function interpretations in the model.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Model.Decls">
+ <summary>
+ All symbols that have an interpretation in the model.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Model.NumSorts">
+ <summary>
+ The number of uninterpreted sorts that the model has an interpretation for.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Model.Sorts">
+ <summary>
+ The uninterpreted sorts that the model has an interpretation for.
+ </summary>
+ <remarks>
+ Z3 also provides an intepretation for uninterpreted sorts used in a formula.
+ The interpretation for a sort is a finite set of distinct values. We say this finite set is
+ the "universe" of the sort.
+ </remarks>
+ <seealso cref="P:Microsoft.Z3.Model.NumSorts"/>
+ <seealso cref="M:Microsoft.Z3.Model.SortUniverse(Microsoft.Z3.Sort)"/>
+ </member>
+ <member name="T:Microsoft.Z3.Model.ModelEvaluationFailedException">
+ <summary>
+ A ModelEvaluationFailedException is thrown when an expression cannot be evaluated by the model.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Z3Exception">
+ <summary>
+ The exception base class for error reporting from Z3
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Z3Exception.#ctor">
+ <summary>
+ Constructor.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Z3Exception.#ctor(System.String)">
+ <summary>
+ Constructor.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Z3Exception.#ctor(System.String,System.Exception)">
+ <summary>
+ Constructor.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Model.ModelEvaluationFailedException.#ctor">
+ <summary>
+ An exception that is thrown when model evaluation fails.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Optimize">
+ <summary>
+ Object for managing optimizization context
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.Assert(Microsoft.Z3.BoolExpr[])">
+ <summary>
+ Assert a constraint (or multiple) into the optimize solver.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.Assert(System.Collections.Generic.IEnumerable{Microsoft.Z3.BoolExpr})">
+ <summary>
+ Assert a constraint (or multiple) into the optimize solver.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.Add(Microsoft.Z3.BoolExpr[])">
+ <summary>
+ Alias for Assert.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.Add(System.Collections.Generic.IEnumerable{Microsoft.Z3.BoolExpr})">
+ <summary>
+ Alias for Assert.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.AddConstraints(System.Collections.Generic.IEnumerable{Microsoft.Z3.BoolExpr})">
+ <summary>
+ Assert a constraint (or multiple) into the optimize solver.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.AssertSoft(Microsoft.Z3.BoolExpr,System.UInt32,System.String)">
+ <summary>
+ Assert soft constraint
+ </summary>
+ <remarks>
+ Return an objective which associates with the group of constraints.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.Check">
+ <summary>
+ Check satisfiability of asserted constraints.
+ Produce a model that (when the objectives are bounded and
+ don't use strict inequalities) meets the objectives.
+ </summary>
+
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.Push">
+ <summary>
+ Creates a backtracking point.
+ </summary>
+ <seealso cref="M:Microsoft.Z3.Optimize.Pop"/>
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.Pop">
+ <summary>
+ Backtrack one backtracking point.
+ </summary>
+ <remarks>Note that an exception is thrown if Pop is called without a corresponding <c>Push</c></remarks>
+ <seealso cref="M:Microsoft.Z3.Optimize.Push"/>
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.MkMaximize(Microsoft.Z3.ArithExpr)">
+ <summary>
+ Declare an arithmetical maximization objective.
+ Return a handle to the objective. The handle is used as
+ to retrieve the values of objectives after calling Check.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.MkMinimize(Microsoft.Z3.ArithExpr)">
+ <summary>
+ Declare an arithmetical minimization objective.
+ Similar to MkMaximize.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.GetLower(System.UInt32)">
+ <summary>
+ Retrieve a lower bound for the objective handle.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.GetUpper(System.UInt32)">
+ <summary>
+ Retrieve an upper bound for the objective handle.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.ToString">
+ <summary>
+ Print the context to a string (SMT-LIB parseable benchmark).
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.FromFile(System.String)">
+ <summary>
+ Parse an SMT-LIB2 file with optimization objectives and constraints.
+ The parsed constraints and objectives are added to the optimization context.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Optimize.FromString(System.String)">
+ <summary>
+ Similar to FromFile. Instead it takes as argument a string.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Optimize.Help">
+ <summary>
+ A string that describes all available optimize solver parameters.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Optimize.Parameters">
+ <summary>
+ Sets the optimize solver parameters.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Optimize.ParameterDescriptions">
+ <summary>
+ Retrieves parameter descriptions for Optimize solver.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Optimize.Model">
+ <summary>
+ The model of the last <c>Check</c>.
+ </summary>
+ <remarks>
+ The result is <c>null</c> if <c>Check</c> was not invoked before,
+ if its results was not <c>SATISFIABLE</c>, or if model production is not enabled.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Optimize.ReasonUnknown">
+ <summary>
+ Return a string the describes why the last to check returned unknown
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Optimize.Assertions">
+ <summary>
+ The set of asserted formulas.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Optimize.Objectives">
+ <summary>
+ The set of asserted formulas.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Optimize.Statistics">
+ <summary>
+ Optimize statistics.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Optimize.Handle">
+ <summary>
+ Handle to objectives returned by objective functions.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Optimize.Handle.Lower">
+ <summary>
+ Retrieve a lower bound for the objective handle.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Optimize.Handle.Upper">
+ <summary>
+ Retrieve an upper bound for the objective handle.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Optimize.Handle.Value">
+ <summary>
+ Retrieve the value of an objective.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.ParamDescrs">
+ <summary>
+ A ParamDescrs describes a set of parameters.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ParamDescrs.Validate(Microsoft.Z3.Params)">
+ <summary>
+ validate a set of parameters.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ParamDescrs.GetKind(Microsoft.Z3.Symbol)">
+ <summary>
+ Retrieve kind of parameter.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ParamDescrs.GetDocumentation(Microsoft.Z3.Symbol)">
+ <summary>
+ Retrieve documentation of parameter.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ParamDescrs.ToString">
+ <summary>
+ Retrieves a string representation of the ParamDescrs.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.ParamDescrs.Names">
+ <summary>
+ Retrieve all names of parameters.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.ParamDescrs.Size">
+ <summary>
+ The size of the ParamDescrs.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Params">
+ <summary>
+ A Params objects represents a configuration in the form of Symbol/value pairs.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Params.Add(Microsoft.Z3.Symbol,System.Boolean)">
+ <summary>
+ Adds a parameter setting.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Params.Add(Microsoft.Z3.Symbol,System.UInt32)">
+ <summary>
+ Adds a parameter setting.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Params.Add(Microsoft.Z3.Symbol,System.Double)">
+ <summary>
+ Adds a parameter setting.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Params.Add(Microsoft.Z3.Symbol,System.String)">
+ <summary>
+ Adds a parameter setting.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Params.Add(Microsoft.Z3.Symbol,Microsoft.Z3.Symbol)">
+ <summary>
+ Adds a parameter setting.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Params.Add(System.String,System.Boolean)">
+ <summary>
+ Adds a parameter setting.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Params.Add(System.String,System.UInt32)">
+ <summary>
+ Adds a parameter setting.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Params.Add(System.String,System.Double)">
+ <summary>
+ Adds a parameter setting.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Params.Add(System.String,Microsoft.Z3.Symbol)">
+ <summary>
+ Adds a parameter setting.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Params.Add(System.String,System.String)">
+ <summary>
+ Adds a parameter setting.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Params.ToString">
+ <summary>
+ A string representation of the parameter set.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Pattern">
+ <summary>
+ Patterns comprise a list of terms. The list should be
+ non-empty. If the list comprises of more than one term, it is
+ also called a multi-pattern.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Pattern.ToString">
+ <summary>
+ A string representation of the pattern.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Pattern.NumTerms">
+ <summary>
+ The number of terms in the pattern.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Pattern.Terms">
+ <summary>
+ The terms in the pattern.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Probe">
+ <summary>
+ Probes are used to inspect a goal (aka problem) and collect information that may be used to decide
+ which solver and/or preprocessing step will be used.
+ The complete list of probes may be obtained using the procedures <c>Context.NumProbes</c>
+ and <c>Context.ProbeNames</c>.
+ It may also be obtained using the command <c>(help-tactic)</c> in the SMT 2.0 front-end.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Probe.Apply(Microsoft.Z3.Goal)">
+ <summary>
+ Execute the probe over the goal.
+ </summary>
+ <returns>A probe always produce a double value.
+ "Boolean" probes return 0.0 for false, and a value different from 0.0 for true.</returns>
+ </member>
+ <member name="P:Microsoft.Z3.Probe.Item(Microsoft.Z3.Goal)">
+ <summary>
+ Apply the probe to a goal.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Quantifier">
+ <summary>
+ Quantifier expressions.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Quantifier.IsUniversal">
+ <summary>
+ Indicates whether the quantifier is universal.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Quantifier.IsExistential">
+ <summary>
+ Indicates whether the quantifier is existential.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Quantifier.Weight">
+ <summary>
+ The weight of the quantifier.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Quantifier.NumPatterns">
+ <summary>
+ The number of patterns.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Quantifier.Patterns">
+ <summary>
+ The patterns.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Quantifier.NumNoPatterns">
+ <summary>
+ The number of no-patterns.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Quantifier.NoPatterns">
+ <summary>
+ The no-patterns.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Quantifier.NumBound">
+ <summary>
+ The number of bound variables.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Quantifier.BoundVariableNames">
+ <summary>
+ The symbols for the bound variables.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Quantifier.BoundVariableSorts">
+ <summary>
+ The sorts of the bound variables.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Quantifier.Body">
+ <summary>
+ The body of the quantifier.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.RatNum">
+ <summary>
+ Rational Numerals
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.RealExpr">
+ <summary>
+ Real expressions
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.RealExpr.#ctor(Microsoft.Z3.Context,System.IntPtr)">
+ <summary> Constructor for RealExpr </summary>
+ </member>
+ <member name="M:Microsoft.Z3.RatNum.ToDecimalString(System.UInt32)">
+ <summary>
+ Returns a string representation in decimal notation.
+ </summary>
+ <remarks>The result has at most <paramref name="precision"/> decimal places.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.RatNum.ToString">
+ <summary>
+ Returns a string representation of the numeral.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.RatNum.Numerator">
+ <summary>
+ The numerator of a rational numeral.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.RatNum.Denominator">
+ <summary>
+ The denominator of a rational numeral.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.RatNum.BigIntNumerator">
+ <summary>
+ Converts the numerator of the rational to a BigInteger
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.RatNum.BigIntDenominator">
+ <summary>
+ Converts the denominator of the rational to a BigInteger
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.RealSort">
+ <summary>
+ A real sort
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.ReExpr">
+ <summary>
+ Regular expression expressions
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.ReExpr.#ctor(Microsoft.Z3.Context,System.IntPtr)">
+ <summary> Constructor for ReExpr </summary>
+ </member>
+ <member name="T:Microsoft.Z3.RelationSort">
+ <summary>
+ Relation sorts.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.RelationSort.Arity">
+ <summary>
+ The arity of the relation sort.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.RelationSort.ColumnSorts">
+ <summary>
+ The sorts of the columns of the relation sort.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.ReSort">
+ <summary>
+ A regular expression sort
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.SeqExpr">
+ <summary>
+ Sequence expressions
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.SeqExpr.#ctor(Microsoft.Z3.Context,System.IntPtr)">
+ <summary> Constructor for SeqExpr </summary>
+ </member>
+ <member name="T:Microsoft.Z3.SeqSort">
+ <summary>
+ A Sequence sort
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.SetSort">
+ <summary>
+ Set sorts.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Solver">
+ <summary>
+ Solvers.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Solver.Push">
+ <summary>
+ Creates a backtracking point.
+ </summary>
+ <seealso cref="M:Microsoft.Z3.Solver.Pop(System.UInt32)"/>
+ </member>
+ <member name="M:Microsoft.Z3.Solver.Pop(System.UInt32)">
+ <summary>
+ Backtracks <paramref name="n"/> backtracking points.
+ </summary>
+ <remarks>Note that an exception is thrown if <paramref name="n"/> is not smaller than <c>NumScopes</c></remarks>
+ <seealso cref="M:Microsoft.Z3.Solver.Push"/>
+ </member>
+ <member name="M:Microsoft.Z3.Solver.Reset">
+ <summary>
+ Resets the Solver.
+ </summary>
+ <remarks>This removes all assertions from the solver.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Solver.Assert(Microsoft.Z3.BoolExpr[])">
+ <summary>
+ Assert a constraint (or multiple) into the solver.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Solver.Add(Microsoft.Z3.BoolExpr[])">
+ <summary>
+ Alias for Assert.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Solver.AssertAndTrack(Microsoft.Z3.BoolExpr[],Microsoft.Z3.BoolExpr[])">
+ <summary>
+ Assert multiple constraints into the solver, and track them (in the unsat) core
+ using the Boolean constants in ps.
+ </summary>
+ <remarks>
+ This API is an alternative to <see cref="M:Microsoft.Z3.Solver.Check(Microsoft.Z3.Expr[])"/> with assumptions for extracting unsat cores.
+ Both APIs can be used in the same solver. The unsat core will contain a combination
+ of the Boolean variables provided using <see cref="M:Microsoft.Z3.Solver.AssertAndTrack(Microsoft.Z3.BoolExpr[],Microsoft.Z3.BoolExpr[])"/>
+ and the Boolean literals
+ provided using <see cref="M:Microsoft.Z3.Solver.Check(Microsoft.Z3.Expr[])"/> with assumptions.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Solver.AssertAndTrack(Microsoft.Z3.BoolExpr,Microsoft.Z3.BoolExpr)">
+ <summary>
+ Assert a constraint into the solver, and track it (in the unsat) core
+ using the Boolean constant p.
+ </summary>
+ <remarks>
+ This API is an alternative to <see cref="M:Microsoft.Z3.Solver.Check(Microsoft.Z3.Expr[])"/> with assumptions for extracting unsat cores.
+ Both APIs can be used in the same solver. The unsat core will contain a combination
+ of the Boolean variables provided using <see cref="M:Microsoft.Z3.Solver.AssertAndTrack(Microsoft.Z3.BoolExpr[],Microsoft.Z3.BoolExpr[])"/>
+ and the Boolean literals
+ provided using <see cref="M:Microsoft.Z3.Solver.Check(Microsoft.Z3.Expr[])"/> with assumptions.
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Solver.Check(Microsoft.Z3.Expr[])">
+ <summary>
+ Checks whether the assertions in the solver are consistent or not.
+ </summary>
+ <remarks>
+ <seealso cref="P:Microsoft.Z3.Solver.Model"/>
+ <seealso cref="P:Microsoft.Z3.Solver.UnsatCore"/>
+ <seealso cref="P:Microsoft.Z3.Solver.Proof"/>
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Solver.Consequences(System.Collections.Generic.IEnumerable{Microsoft.Z3.BoolExpr},System.Collections.Generic.IEnumerable{Microsoft.Z3.Expr},Microsoft.Z3.BoolExpr[]@)">
+ <summary>
+ Retrieve fixed assignments to the set of variables in the form of consequences.
+ Each consequence is an implication of the form
+
+ relevant-assumptions Implies variable = value
+
+ where the relevant assumptions is a subset of the assumptions that are passed in
+ and the equality on the right side of the implication indicates how a variable
+ is fixed.
+ </summary>
+ <remarks>
+ <seealso cref="P:Microsoft.Z3.Solver.Model"/>
+ <seealso cref="P:Microsoft.Z3.Solver.UnsatCore"/>
+ <seealso cref="P:Microsoft.Z3.Solver.Proof"/>
+ </remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Solver.Translate(Microsoft.Z3.Context)">
+ <summary>
+ Create a clone of the current solver with respect to <c>ctx</c>.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Solver.ToString">
+ <summary>
+ A string representation of the solver.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Solver.Help">
+ <summary>
+ A string that describes all available solver parameters.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Solver.Parameters">
+ <summary>
+ Sets the solver parameters.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Solver.ParameterDescriptions">
+ <summary>
+ Retrieves parameter descriptions for solver.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Solver.NumScopes">
+ <summary>
+ The current number of backtracking points (scopes).
+ </summary>
+ <seealso cref="M:Microsoft.Z3.Solver.Pop(System.UInt32)"/>
+ <seealso cref="M:Microsoft.Z3.Solver.Push"/>
+ </member>
+ <member name="P:Microsoft.Z3.Solver.NumAssertions">
+ <summary>
+ The number of assertions in the solver.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Solver.Assertions">
+ <summary>
+ The set of asserted formulas.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Solver.Model">
+ <summary>
+ The model of the last <c>Check</c>.
+ </summary>
+ <remarks>
+ The result is <c>null</c> if <c>Check</c> was not invoked before,
+ if its results was not <c>SATISFIABLE</c>, or if model production is not enabled.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Solver.Proof">
+ <summary>
+ The proof of the last <c>Check</c>.
+ </summary>
+ <remarks>
+ The result is <c>null</c> if <c>Check</c> was not invoked before,
+ if its results was not <c>UNSATISFIABLE</c>, or if proof production is disabled.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Solver.UnsatCore">
+ <summary>
+ The unsat core of the last <c>Check</c>.
+ </summary>
+ <remarks>
+ The unsat core is a subset of <c>Assertions</c>
+ The result is empty if <c>Check</c> was not invoked before,
+ if its results was not <c>UNSATISFIABLE</c>, or if core production is disabled.
+ </remarks>
+ </member>
+ <member name="P:Microsoft.Z3.Solver.ReasonUnknown">
+ <summary>
+ A brief justification of why the last call to <c>Check</c> returned <c>UNKNOWN</c>.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Solver.Statistics">
+ <summary>
+ Solver statistics.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Statistics">
+ <summary>
+ Objects of this class track statistical information about solvers.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Statistics.ToString">
+ <summary>
+ A string representation of the statistical data.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Statistics.Size">
+ <summary>
+ The number of statistical data.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Statistics.Entries">
+ <summary>
+ The data entries.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Statistics.Keys">
+ <summary>
+ The statistical counters.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Statistics.Item(System.String)">
+ <summary>
+ The value of a particular statistical counter.
+ </summary>
+ <remarks>Returns null if the key is unknown.</remarks>
+ </member>
+ <member name="T:Microsoft.Z3.Statistics.Entry">
+ <summary>
+ Statistical data is organized into pairs of [Key, Entry], where every
+ Entry is either a <c>DoubleEntry</c> or a <c>UIntEntry</c>
+ </summary>
+ </member>
+ <member name="F:Microsoft.Z3.Statistics.Entry.Key">
+ <summary>
+ The key of the entry.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Statistics.Entry.ToString">
+ <summary>
+ The string representation of the Entry.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Statistics.Entry.UIntValue">
+ <summary>
+ The uint-value of the entry.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Statistics.Entry.DoubleValue">
+ <summary>
+ The double-value of the entry.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Statistics.Entry.IsUInt">
+ <summary>
+ True if the entry is uint-valued.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Statistics.Entry.IsDouble">
+ <summary>
+ True if the entry is double-valued.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Statistics.Entry.Value">
+ <summary>
+ The string representation of the the entry's value.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Status">
+ <summary>
+ Status values.
+ </summary>
+ </member>
+ <member name="F:Microsoft.Z3.Status.UNSATISFIABLE">
+ <summary>
+ Used to signify an unsatisfiable status.
+ </summary>
+ </member>
+ <member name="F:Microsoft.Z3.Status.UNKNOWN">
+ <summary>
+ Used to signify an unknown status.
+ </summary>
+ </member>
+ <member name="F:Microsoft.Z3.Status.SATISFIABLE">
+ <summary>
+ Used to signify a satisfiable status.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.StringSymbol">
+ <summary>
+ Named symbols
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.StringSymbol.String">
+ <summary>
+ The string value of the symbol.
+ </summary>
+ <remarks>Throws an exception if the symbol is not of string kind.</remarks>
+ </member>
+ <member name="T:Microsoft.Z3.Tactic">
+ <summary>
+ Tactics are the basic building block for creating custom solvers for specific problem domains.
+ The complete list of tactics may be obtained using <c>Context.NumTactics</c>
+ and <c>Context.TacticNames</c>.
+ It may also be obtained using the command <c>(help-tactic)</c> in the SMT 2.0 front-end.
+ </summary>
+ </member>
+ <member name="M:Microsoft.Z3.Tactic.Apply(Microsoft.Z3.Goal,Microsoft.Z3.Params)">
+ <summary>
+ Execute the tactic over the goal.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Tactic.Help">
+ <summary>
+ A string containing a description of parameters accepted by the tactic.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Tactic.ParameterDescriptions">
+ <summary>
+ Retrieves parameter descriptions for Tactics.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Tactic.Item(Microsoft.Z3.Goal)">
+ <summary>
+ Apply the tactic to a goal.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Tactic.Solver">
+ <summary>
+ Creates a solver that is implemented using the given tactic.
+ </summary>
+ <seealso cref="M:Microsoft.Z3.Context.MkSolver(Microsoft.Z3.Tactic)"/>
+ </member>
+ <member name="T:Microsoft.Z3.Tactic.DecRefQueue">
+ <summary>
+ DecRefQueue
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.TupleSort">
+ <summary>
+ Tuple sorts.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.TupleSort.MkDecl">
+ <summary>
+ The constructor function of the tuple.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.TupleSort.NumFields">
+ <summary>
+ The number of fields in the tuple.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.TupleSort.FieldDecls">
+ <summary>
+ The field declarations.
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.UninterpretedSort">
+ <summary>
+ Uninterpreted Sorts
+ </summary>
+ </member>
+ <member name="T:Microsoft.Z3.Version">
+ <summary>
+ Version information.
+ </summary>
+ <remarks>Note that this class is static.</remarks>
+ </member>
+ <member name="M:Microsoft.Z3.Version.ToString">
+ <summary>
+ A string representation of the version information.
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Version.Major">
+ <summary>
+ The major version
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Version.Minor">
+ <summary>
+ The minor version
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Version.Build">
+ <summary>
+ The build version
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Version.Revision">
+ <summary>
+ The revision
+ </summary>
+ </member>
+ <member name="P:Microsoft.Z3.Version.FullVersion">
+ <summary>
+ A full version string
+ </summary>
+ </member>
+ </members>
+</doc>
diff --git a/rba.tool.editor.endpoint/lib/windows/z3/libz3.dll b/rba.tool.editor.endpoint/lib/windows/z3/libz3.dll
new file mode 100644
index 0000000..3c2b5ad
--- /dev/null
+++ b/rba.tool.editor.endpoint/lib/windows/z3/libz3.dll
Binary files differ
diff --git a/rba.tool.editor.endpoint/lib/windows/z3/libz3.lib b/rba.tool.editor.endpoint/lib/windows/z3/libz3.lib
new file mode 100644
index 0000000..a1b96e4
--- /dev/null
+++ b/rba.tool.editor.endpoint/lib/windows/z3/libz3.lib
Binary files differ
diff --git a/rba.tool.editor.endpoint/lib/windows/z3/libz3java.dll b/rba.tool.editor.endpoint/lib/windows/z3/libz3java.dll
new file mode 100644
index 0000000..98c4284
--- /dev/null
+++ b/rba.tool.editor.endpoint/lib/windows/z3/libz3java.dll
Binary files differ
diff --git a/rba.tool.editor.endpoint/lib/windows/z3/libz3java.lib b/rba.tool.editor.endpoint/lib/windows/z3/libz3java.lib
new file mode 100644
index 0000000..6b5b202
--- /dev/null
+++ b/rba.tool.editor.endpoint/lib/windows/z3/libz3java.lib
Binary files differ
diff --git a/rba.tool.editor.endpoint/lib/windows/z3/msvcp110.dll b/rba.tool.editor.endpoint/lib/windows/z3/msvcp110.dll
new file mode 100644
index 0000000..ac81d38
--- /dev/null
+++ b/rba.tool.editor.endpoint/lib/windows/z3/msvcp110.dll
Binary files differ
diff --git a/rba.tool.editor.endpoint/lib/windows/z3/msvcr110.dll b/rba.tool.editor.endpoint/lib/windows/z3/msvcr110.dll
new file mode 100644
index 0000000..0748b64
--- /dev/null
+++ b/rba.tool.editor.endpoint/lib/windows/z3/msvcr110.dll
Binary files differ
diff --git a/rba.tool.editor.endpoint/lib/windows/z3/python/example.py b/rba.tool.editor.endpoint/lib/windows/z3/python/example.py
new file mode 100644
index 0000000..a176685
--- /dev/null
+++ b/rba.tool.editor.endpoint/lib/windows/z3/python/example.py
@@ -0,0 +1,36 @@
+# Copyright (c) Microsoft Corporation 2015, 2016
+
+# The Z3 Python API requires libz3.dll/.so/.dylib in the
+# PATH/LD_LIBRARY_PATH/DYLD_LIBRARY_PATH
+# environment variable and the PYTHON_PATH environment variable
+# needs to point to the `python' directory that contains `z3/z3.py'
+# (which is at bin/python in our binary releases).
+
+# If you obtained example.py as part of our binary release zip files,
+# which you unzipped into a directory called `MYZ3', then follow these
+# instructions to run the example:
+
+# Running this example on Windows:
+# set PATH=%PATH%;MYZ3\bin
+# set PYTHONPATH=MYZ3\bin\python
+# python example.py
+
+# Running this example on Linux:
+# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:MYZ3/bin
+# export PYTHONPATH=MYZ3/bin/python
+# python example.py
+
+# Running this example on OSX:
+# export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:MYZ3/bin
+# export PYTHONPATH=MYZ3/bin/python
+# python example.py
+
+
+from z3 import *
+
+x = Real('x')
+y = Real('y')
+s = Solver()
+s.add(x + y > 5, x > 1, y > 1)
+print(s.check())
+print(s.model())
diff --git a/rba.tool.editor.endpoint/lib/windows/z3/python/z3/__init__.py b/rba.tool.editor.endpoint/lib/windows/z3/python/z3/__init__.py
new file mode 100644
index 0000000..f7aa29a
--- /dev/null
+++ b/rba.tool.editor.endpoint/lib/windows/z3/python/z3/__init__.py
@@ -0,0 +1,12 @@
+from .z3 import *
+
+from . import z3num
+from . import z3poly
+from . import z3printer
+from . import z3rcf
+from . import z3types
+from . import z3util
+
+# generated files
+from . import z3core
+from . import z3consts
diff --git a/rba.tool.editor.endpoint/lib/windows/z3/python/z3/z3.py b/rba.tool.editor.endpoint/lib/windows/z3/python/z3/z3.py
new file mode 100644
index 0000000..b9d7f6d
--- /dev/null
+++ b/rba.tool.editor.endpoint/lib/windows/z3/python/z3/z3.py
@@ -0,0 +1,9670 @@
+
+############################################
+# Copyright (c) 2012 Microsoft Corporation
+#
+# Z3 Python interface
+#
+# Author: Leonardo de Moura (leonardo)
+############################################
+
+"""Z3 is a high performance theorem prover developed at Microsoft Research. Z3 is used in many applications such as: software/hardware verification and testing, constraint solving, analysis of hybrid systems, security, biology (in silico analysis), and geometrical problems.
+
+Several online tutorials for Z3Py are available at:
+http://rise4fun.com/Z3Py/tutorial/guide
+
+Please send feedback, comments and/or corrections to leonardo@microsoft.com. Your comments are very valuable.
+
+Small example:
+
+>>> x = Int('x')
+>>> y = Int('y')
+>>> s = Solver()
+>>> s.add(x > 0)
+>>> s.add(x < 2)
+>>> s.add(y == x + 1)
+>>> s.check()
+sat
+>>> m = s.model()
+>>> m[x]
+1
+>>> m[y]
+2
+
+Z3 exceptions:
+
+>>> try:
+... x = BitVec('x', 32)
+... y = Bool('y')
+... # the expression x + y is type incorrect
+... n = x + y
+... except Z3Exception as ex:
+... print("failed: %s" % ex)
+failed: sort mismatch
+"""
+from . import z3core
+from .z3core import *
+from .z3types import *
+from .z3consts import *
+from .z3printer import *
+from fractions import Fraction
+import sys
+import io
+import math
+
+if sys.version < '3':
+ def _is_int(v):
+ return isinstance(v, (int, long))
+else:
+ def _is_int(v):
+ return isinstance(v, int)
+
+def enable_trace(msg):
+ Z3_enable_trace(msg)
+
+def disable_trace(msg):
+ Z3_disable_trace(msg)
+
+def get_version_string():
+ major = ctypes.c_uint(0)
+ minor = ctypes.c_uint(0)
+ build = ctypes.c_uint(0)
+ rev = ctypes.c_uint(0)
+ Z3_get_version(major, minor, build, rev)
+ return "%s.%s.%s" % (major.value, minor.value, build.value)
+
+def get_version():
+ major = ctypes.c_uint(0)
+ minor = ctypes.c_uint(0)
+ build = ctypes.c_uint(0)
+ rev = ctypes.c_uint(0)
+ Z3_get_version(major, minor, build, rev)
+ return (major.value, minor.value, build.value, rev.value)
+
+def get_full_version():
+ return Z3_get_full_version()
+
+# We use _z3_assert instead of the assert command because we want to
+# produce nice error messages in Z3Py at rise4fun.com
+def _z3_assert(cond, msg):
+ if not cond:
+ raise Z3Exception(msg)
+
+def open_log(fname):
+ """Log interaction to a file. This function must be invoked immediately after init(). """
+ Z3_open_log(fname)
+
+def append_log(s):
+ """Append user-defined string to interaction log. """
+ Z3_append_log(s)
+
+def to_symbol(s, ctx=None):
+ """Convert an integer or string into a Z3 symbol."""
+ if _is_int(s):
+ return Z3_mk_int_symbol(_get_ctx(ctx).ref(), s)
+ else:
+ return Z3_mk_string_symbol(_get_ctx(ctx).ref(), s)
+
+def _symbol2py(ctx, s):
+ """Convert a Z3 symbol back into a Python object. """
+ if Z3_get_symbol_kind(ctx.ref(), s) == Z3_INT_SYMBOL:
+ return "k!%s" % Z3_get_symbol_int(ctx.ref(), s)
+ else:
+ return Z3_get_symbol_string(ctx.ref(), s)
+
+_error_handler_fptr = ctypes.CFUNCTYPE(None, ctypes.c_void_p, ctypes.c_uint)
+
+# Hack for having nary functions that can receive one argument that is the
+# list of arguments.
+def _get_args(args):
+ try:
+ if len(args) == 1 and (isinstance(args[0], tuple) or isinstance(args[0], list)):
+ return args[0]
+ elif len(args) == 1 and isinstance(args[0], set):
+ return [arg for arg in args[0]]
+ else:
+ return args
+ except: # len is not necessarily defined when args is not a sequence (use reflection?)
+ return args
+
+def _Z3python_error_handler_core(c, e):
+ # Do nothing error handler, just avoid exit(0)
+ # The wrappers in z3core.py will raise a Z3Exception if an error is detected
+ return
+
+_Z3Python_error_handler = _error_handler_fptr(_Z3python_error_handler_core)
+
+def _to_param_value(val):
+ if isinstance(val, bool):
+ if val == True:
+ return "true"
+ else:
+ return "false"
+ else:
+ return str(val)
+
+class Context:
+ """A Context manages all other Z3 objects, global configuration options, etc.
+
+ Z3Py uses a default global context. For most applications this is sufficient.
+ An application may use multiple Z3 contexts. Objects created in one context
+ cannot be used in another one. However, several objects may be "translated" from
+ one context to another. It is not safe to access Z3 objects from multiple threads.
+ The only exception is the method `interrupt()` that can be used to interrupt() a long
+ computation.
+ The initialization method receives global configuration options for the new context.
+ """
+ def __init__(self, *args, **kws):
+ if __debug__:
+ _z3_assert(len(args) % 2 == 0, "Argument list must have an even number of elements.")
+ conf = Z3_mk_config()
+ for key in kws:
+ value = kws[key]
+ Z3_set_param_value(conf, str(key).upper(), _to_param_value(value))
+ prev = None
+ for a in args:
+ if prev is None:
+ prev = a
+ else:
+ Z3_set_param_value(conf, str(prev), _to_param_value(a))
+ prev = None
+ self.lib = lib()
+ self.ctx = Z3_mk_context_rc(conf)
+ Z3_set_ast_print_mode(self.ctx, Z3_PRINT_SMTLIB2_COMPLIANT)
+ lib().Z3_set_error_handler.restype = None
+ lib().Z3_set_error_handler.argtypes = [ContextObj, _error_handler_fptr]
+ lib().Z3_set_error_handler(self.ctx, _Z3Python_error_handler)
+ Z3_del_config(conf)
+
+ def __del__(self):
+ self.lib.Z3_del_context(self.ctx)
+ self.ctx = None
+
+ def ref(self):
+ """Return a reference to the actual C pointer to the Z3 context."""
+ return self.ctx
+
+ def interrupt(self):
+ """Interrupt a solver performing a satisfiability test, a tactic processing a goal, or simplify functions.
+
+ This method can be invoked from a thread different from the one executing the
+ interruptable procedure.
+ """
+ Z3_interrupt(self.ref())
+
+
+# Global Z3 context
+_main_ctx = None
+def main_ctx():
+ """Return a reference to the global Z3 context.
+
+ >>> x = Real('x')
+ >>> x.ctx == main_ctx()
+ True
+ >>> c = Context()
+ >>> c == main_ctx()
+ False
+ >>> x2 = Real('x', c)
+ >>> x2.ctx == c
+ True
+ >>> eq(x, x2)
+ False
+ """
+ global _main_ctx
+ if _main_ctx is None:
+ _main_ctx = Context()
+ return _main_ctx
+
+def _get_ctx(ctx):
+ if ctx is None:
+ return main_ctx()
+ else:
+ return ctx
+
+def set_param(*args, **kws):
+ """Set Z3 global (or module) parameters.
+
+ >>> set_param(precision=10)
+ """
+ if __debug__:
+ _z3_assert(len(args) % 2 == 0, "Argument list must have an even number of elements.")
+ new_kws = {}
+ for k in kws:
+ v = kws[k]
+ if not set_pp_option(k, v):
+ new_kws[k] = v
+ for key in new_kws:
+ value = new_kws[key]
+ Z3_global_param_set(str(key).upper(), _to_param_value(value))
+ prev = None
+ for a in args:
+ if prev is None:
+ prev = a
+ else:
+ Z3_global_param_set(str(prev), _to_param_value(a))
+ prev = None
+
+def reset_params():
+ """Reset all global (or module) parameters.
+ """
+ Z3_global_param_reset_all()
+
+def set_option(*args, **kws):
+ """Alias for 'set_param' for backward compatibility.
+ """
+ return set_param(*args, **kws)
+
+def get_param(name):
+ """Return the value of a Z3 global (or module) parameter
+
+ >>> get_param('nlsat.reorder')
+ 'true'
+ """
+ ptr = (ctypes.c_char_p * 1)()
+ if Z3_global_param_get(str(name), ptr):
+ r = z3core._to_pystr(ptr[0])
+ return r
+ raise Z3Exception("failed to retrieve value for '%s'" % name)
+
+#########################################
+#
+# ASTs base class
+#
+#########################################
+
+# Mark objects that use pretty printer
+class Z3PPObject:
+ """Superclass for all Z3 objects that have support for pretty printing."""
+ def use_pp(self):
+ return True
+
+class AstRef(Z3PPObject):
+ """AST are Direct Acyclic Graphs (DAGs) used to represent sorts, declarations and expressions."""
+ def __init__(self, ast, ctx=None):
+ self.ast = ast
+ self.ctx = _get_ctx(ctx)
+ Z3_inc_ref(self.ctx.ref(), self.as_ast())
+
+ def __del__(self):
+ if self.ctx.ref() is not None:
+ Z3_dec_ref(self.ctx.ref(), self.as_ast())
+
+ def __str__(self):
+ return obj_to_string(self)
+
+ def __repr__(self):
+ return obj_to_string(self)
+
+ def __eq__(self, other):
+ return self.eq(other)
+
+ def __hash__(self):
+ return self.hash()
+
+ def __nonzero__(self):
+ return self.__bool__()
+
+ def __bool__(self):
+ if is_true(self):
+ return True
+ elif is_false(self):
+ return False
+ elif is_eq(self) and self.num_args() == 2:
+ return self.arg(0).eq(self.arg(1))
+ else:
+ raise Z3Exception("Symbolic expressions cannot be cast to concrete Boolean values.")
+
+ def sexpr(self):
+ """Return an string representing the AST node in s-expression notation.
+
+ >>> x = Int('x')
+ >>> ((x + 1)*x).sexpr()
+ '(* (+ x 1) x)'
+ """
+ return Z3_ast_to_string(self.ctx_ref(), self.as_ast())
+
+ def as_ast(self):
+ """Return a pointer to the corresponding C Z3_ast object."""
+ return self.ast
+
+ def get_id(self):
+ """Return unique identifier for object. It can be used for hash-tables and maps."""
+ return Z3_get_ast_id(self.ctx_ref(), self.as_ast())
+
+ def ctx_ref(self):
+ """Return a reference to the C context where this AST node is stored."""
+ return self.ctx.ref()
+
+ def eq(self, other):
+ """Return `True` if `self` and `other` are structurally identical.
+
+ >>> x = Int('x')
+ >>> n1 = x + 1
+ >>> n2 = 1 + x
+ >>> n1.eq(n2)
+ False
+ >>> n1 = simplify(n1)
+ >>> n2 = simplify(n2)
+ >>> n1.eq(n2)
+ True
+ """
+ if __debug__:
+ _z3_assert(is_ast(other), "Z3 AST expected")
+ return Z3_is_eq_ast(self.ctx_ref(), self.as_ast(), other.as_ast())
+
+ def translate(self, target):
+ """Translate `self` to the context `target`. That is, return a copy of `self` in the context `target`.
+
+ >>> c1 = Context()
+ >>> c2 = Context()
+ >>> x = Int('x', c1)
+ >>> y = Int('y', c2)
+ >>> # Nodes in different contexts can't be mixed.
+ >>> # However, we can translate nodes from one context to another.
+ >>> x.translate(c2) + y
+ x + y
+ """
+ if __debug__:
+ _z3_assert(isinstance(target, Context), "argument must be a Z3 context")
+ return _to_ast_ref(Z3_translate(self.ctx.ref(), self.as_ast(), target.ref()), target)
+
+ def hash(self):
+ """Return a hashcode for the `self`.
+
+ >>> n1 = simplify(Int('x') + 1)
+ >>> n2 = simplify(2 + Int('x') - 1)
+ >>> n1.hash() == n2.hash()
+ True
+ """
+ return Z3_get_ast_hash(self.ctx_ref(), self.as_ast())
+
+def is_ast(a):
+ """Return `True` if `a` is an AST node.
+
+ >>> is_ast(10)
+ False
+ >>> is_ast(IntVal(10))
+ True
+ >>> is_ast(Int('x'))
+ True
+ >>> is_ast(BoolSort())
+ True
+ >>> is_ast(Function('f', IntSort(), IntSort()))
+ True
+ >>> is_ast("x")
+ False
+ >>> is_ast(Solver())
+ False
+ """
+ return isinstance(a, AstRef)
+
+def eq(a, b):
+ """Return `True` if `a` and `b` are structurally identical AST nodes.
+
+ >>> x = Int('x')
+ >>> y = Int('y')
+ >>> eq(x, y)
+ False
+ >>> eq(x + 1, x + 1)
+ True
+ >>> eq(x + 1, 1 + x)
+ False
+ >>> eq(simplify(x + 1), simplify(1 + x))
+ True
+ """
+ if __debug__:
+ _z3_assert(is_ast(a) and is_ast(b), "Z3 ASTs expected")
+ return a.eq(b)
+
+def _ast_kind(ctx, a):
+ if is_ast(a):
+ a = a.as_ast()
+ return Z3_get_ast_kind(ctx.ref(), a)
+
+def _ctx_from_ast_arg_list(args, default_ctx=None):
+ ctx = None
+ for a in args:
+ if is_ast(a) or is_probe(a):
+ if ctx is None:
+ ctx = a.ctx
+ else:
+ if __debug__:
+ _z3_assert(ctx == a.ctx, "Context mismatch")
+ if ctx is None:
+ ctx = default_ctx
+ return ctx
+
+def _ctx_from_ast_args(*args):
+ return _ctx_from_ast_arg_list(args)
+
+def _to_func_decl_array(args):
+ sz = len(args)
+ _args = (FuncDecl * sz)()
+ for i in range(sz):
+ _args[i] = args[i].as_func_decl()
+ return _args, sz
+
+def _to_ast_array(args):
+ sz = len(args)
+ _args = (Ast * sz)()
+ for i in range(sz):
+ _args[i] = args[i].as_ast()
+ return _args, sz
+
+def _to_ref_array(ref, args):
+ sz = len(args)
+ _args = (ref * sz)()
+ for i in range(sz):
+ _args[i] = args[i].as_ast()
+ return _args, sz
+
+def _to_ast_ref(a, ctx):
+ k = _ast_kind(ctx, a)
+ if k == Z3_SORT_AST:
+ return _to_sort_ref(a, ctx)
+ elif k == Z3_FUNC_DECL_AST:
+ return _to_func_decl_ref(a, ctx)
+ else:
+ return _to_expr_ref(a, ctx)
+
+#########################################
+#
+# Sorts
+#
+#########################################
+
+def _sort_kind(ctx, s):
+ return Z3_get_sort_kind(ctx.ref(), s)
+
+class SortRef(AstRef):
+ """A Sort is essentially a type. Every Z3 expression has a sort. A sort is an AST node."""
+ def as_ast(self):
+ return Z3_sort_to_ast(self.ctx_ref(), self.ast)
+
+ def get_id(self):
+ return Z3_get_ast_id(self.ctx_ref(), self.as_ast())
+
+ def kind(self):
+ """Return the Z3 internal kind of a sort. This method can be used to test if `self` is one of the Z3 builtin sorts.
+
+ >>> b = BoolSort()
+ >>> b.kind() == Z3_BOOL_SORT
+ True
+ >>> b.kind() == Z3_INT_SORT
+ False
+ >>> A = ArraySort(IntSort(), IntSort())
+ >>> A.kind() == Z3_ARRAY_SORT
+ True
+ >>> A.kind() == Z3_INT_SORT
+ False
+ """
+ return _sort_kind(self.ctx, self.ast)
+
+ def subsort(self, other):
+ """Return `True` if `self` is a subsort of `other`.
+
+ >>> IntSort().subsort(RealSort())
+ True
+ """
+ return False
+
+ def cast(self, val):
+ """Try to cast `val` as an element of sort `self`.
+
+ This method is used in Z3Py to convert Python objects such as integers,
+ floats, longs and strings into Z3 expressions.
+
+ >>> x = Int('x')
+ >>> RealSort().cast(x)
+ ToReal(x)
+ """
+ if __debug__:
+ _z3_assert(is_expr(val), "Z3 expression expected")
+ _z3_assert(self.eq(val.sort()), "Sort mismatch")
+ return val
+
+ def name(self):
+ """Return the name (string) of sort `self`.
+
+ >>> BoolSort().name()
+ 'Bool'
+ >>> ArraySort(IntSort(), IntSort()).name()
+ 'Array'
+ """
+ return _symbol2py(self.ctx, Z3_get_sort_name(self.ctx_ref(), self.ast))
+
+ def __eq__(self, other):
+ """Return `True` if `self` and `other` are the same Z3 sort.
+
+ >>> p = Bool('p')
+ >>> p.sort() == BoolSort()
+ True
+ >>> p.sort() == IntSort()
+ False
+ """
+ if other is None:
+ return False
+ return Z3_is_eq_sort(self.ctx_ref(), self.ast, other.ast)
+
+ def __ne__(self, other):
+ """Return `True` if `self` and `other` are not the same Z3 sort.
+
+ >>> p = Bool('p')
+ >>> p.sort() != BoolSort()
+ False
+ >>> p.sort() != IntSort()
+ True
+ """
+ return not Z3_is_eq_sort(self.ctx_ref(), self.ast, other.ast)
+
+ def __hash__(self):
+ """ Hash code. """
+ return AstRef.__hash__(self)
+
+def is_sort(s):
+ """Return `True` if `s` is a Z3 sort.
+
+ >>> is_sort(IntSort())
+ True
+ >>> is_sort(Int('x'))
+ False
+ >>> is_expr(Int('x'))
+ True
+ """
+ return isinstance(s, SortRef)
+
+def _to_sort_ref(s, ctx):
+ if __debug__:
+ _z3_assert(isinstance(s, Sort), "Z3 Sort expected")
+ k = _sort_kind(ctx, s)
+ if k == Z3_BOOL_SORT:
+ return BoolSortRef(s, ctx)
+ elif k == Z3_INT_SORT or k == Z3_REAL_SORT:
+ return ArithSortRef(s, ctx)
+ elif k == Z3_BV_SORT:
+ return BitVecSortRef(s, ctx)
+ elif k == Z3_ARRAY_SORT:
+ return ArraySortRef(s, ctx)
+ elif k == Z3_DATATYPE_SORT:
+ return DatatypeSortRef(s, ctx)
+ elif k == Z3_FINITE_DOMAIN_SORT:
+ return FiniteDomainSortRef(s, ctx)
+ elif k == Z3_FLOATING_POINT_SORT:
+ return FPSortRef(s, ctx)
+ elif k == Z3_ROUNDING_MODE_SORT:
+ return FPRMSortRef(s, ctx)
+ return SortRef(s, ctx)
+
+def _sort(ctx, a):
+ return _to_sort_ref(Z3_get_sort(ctx.ref(), a), ctx)
+
+def DeclareSort(name, ctx=None):
+ """Create a new uninterpred sort named `name`.
+
+ If `ctx=None`, then the new sort is declared in the global Z3Py context.
+
+ >>> A = DeclareSort('A')
+ >>> a = Const('a', A)
+ >>> b = Const('b', A)
+ >>> a.sort() == A
+ True
+ >>> b.sort() == A
+ True
+ >>> a == b
+ a == b
+ """
+ ctx = _get_ctx(ctx)
+ return SortRef(Z3_mk_uninterpreted_sort(ctx.ref(), to_symbol(name, ctx)), ctx)
+
+#########################################
+#
+# Function Declarations
+#
+#########################################
+
+class FuncDeclRef(AstRef):
+ """Function declaration. Every constant and function have an associated declaration.
+
+ The declaration assigns a name, a sort (i.e., type), and for function
+ the sort (i.e., type) of each of its arguments. Note that, in Z3,
+ a constant is a function with 0 arguments.
+ """
+ def as_ast(self):
+ return Z3_func_decl_to_ast(self.ctx_ref(), self.ast)
+
+ def get_id(self):
+ return Z3_get_ast_id(self.ctx_ref(), self.as_ast())
+
+ def as_func_decl(self):
+ return self.ast
+
+ def name(self):
+ """Return the name of the function declaration `self`.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> f.name()
+ 'f'
+ >>> isinstance(f.name(), str)
+ True
+ """
+ return _symbol2py(self.ctx, Z3_get_decl_name(self.ctx_ref(), self.ast))
+
+ def arity(self):
+ """Return the number of arguments of a function declaration. If `self` is a constant, then `self.arity()` is 0.
+
+ >>> f = Function('f', IntSort(), RealSort(), BoolSort())
+ >>> f.arity()
+ 2
+ """
+ return int(Z3_get_arity(self.ctx_ref(), self.ast))
+
+ def domain(self, i):
+ """Return the sort of the argument `i` of a function declaration. This method assumes that `0 <= i < self.arity()`.
+
+ >>> f = Function('f', IntSort(), RealSort(), BoolSort())
+ >>> f.domain(0)
+ Int
+ >>> f.domain(1)
+ Real
+ """
+ if __debug__:
+ _z3_assert(i < self.arity(), "Index out of bounds")
+ return _to_sort_ref(Z3_get_domain(self.ctx_ref(), self.ast, i), self.ctx)
+
+ def range(self):
+ """Return the sort of the range of a function declaration. For constants, this is the sort of the constant.
+
+ >>> f = Function('f', IntSort(), RealSort(), BoolSort())
+ >>> f.range()
+ Bool
+ """
+ return _to_sort_ref(Z3_get_range(self.ctx_ref(), self.ast), self.ctx)
+
+ def kind(self):
+ """Return the internal kind of a function declaration. It can be used to identify Z3 built-in functions such as addition, multiplication, etc.
+
+ >>> x = Int('x')
+ >>> d = (x + 1).decl()
+ >>> d.kind() == Z3_OP_ADD
+ True
+ >>> d.kind() == Z3_OP_MUL
+ False
+ """
+ return Z3_get_decl_kind(self.ctx_ref(), self.ast)
+
+ def __call__(self, *args):
+ """Create a Z3 application expression using the function `self`, and the given arguments.
+
+ The arguments must be Z3 expressions. This method assumes that
+ the sorts of the elements in `args` match the sorts of the
+ domain. Limited coersion is supported. For example, if
+ args[0] is a Python integer, and the function expects a Z3
+ integer, then the argument is automatically converted into a
+ Z3 integer.
+
+ >>> f = Function('f', IntSort(), RealSort(), BoolSort())
+ >>> x = Int('x')
+ >>> y = Real('y')
+ >>> f(x, y)
+ f(x, y)
+ >>> f(x, x)
+ f(x, ToReal(x))
+ """
+ args = _get_args(args)
+ num = len(args)
+ if __debug__:
+ _z3_assert(num == self.arity(), "Incorrect number of arguments to %s" % self)
+ _args = (Ast * num)()
+ saved = []
+ for i in range(num):
+ # self.domain(i).cast(args[i]) may create a new Z3 expression,
+ # then we must save in 'saved' to prevent it from being garbage collected.
+ tmp = self.domain(i).cast(args[i])
+ saved.append(tmp)
+ _args[i] = tmp.as_ast()
+ return _to_expr_ref(Z3_mk_app(self.ctx_ref(), self.ast, len(args), _args), self.ctx)
+
+def is_func_decl(a):
+ """Return `True` if `a` is a Z3 function declaration.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> is_func_decl(f)
+ True
+ >>> x = Real('x')
+ >>> is_func_decl(x)
+ False
+ """
+ return isinstance(a, FuncDeclRef)
+
+def Function(name, *sig):
+ """Create a new Z3 uninterpreted function with the given sorts.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> f(f(0))
+ f(f(0))
+ """
+ sig = _get_args(sig)
+ if __debug__:
+ _z3_assert(len(sig) > 0, "At least two arguments expected")
+ arity = len(sig) - 1
+ rng = sig[arity]
+ if __debug__:
+ _z3_assert(is_sort(rng), "Z3 sort expected")
+ dom = (Sort * arity)()
+ for i in range(arity):
+ if __debug__:
+ _z3_assert(is_sort(sig[i]), "Z3 sort expected")
+ dom[i] = sig[i].ast
+ ctx = rng.ctx
+ return FuncDeclRef(Z3_mk_func_decl(ctx.ref(), to_symbol(name, ctx), arity, dom, rng.ast), ctx)
+
+def _to_func_decl_ref(a, ctx):
+ return FuncDeclRef(a, ctx)
+
+#########################################
+#
+# Expressions
+#
+#########################################
+
+class ExprRef(AstRef):
+ """Constraints, formulas and terms are expressions in Z3.
+
+ Expressions are ASTs. Every expression has a sort.
+ There are three main kinds of expressions:
+ function applications, quantifiers and bounded variables.
+ A constant is a function application with 0 arguments.
+ For quantifier free problems, all expressions are
+ function applications.
+ """
+ def as_ast(self):
+ return self.ast
+
+ def get_id(self):
+ return Z3_get_ast_id(self.ctx_ref(), self.as_ast())
+
+ def sort(self):
+ """Return the sort of expression `self`.
+
+ >>> x = Int('x')
+ >>> (x + 1).sort()
+ Int
+ >>> y = Real('y')
+ >>> (x + y).sort()
+ Real
+ """
+ return _sort(self.ctx, self.as_ast())
+
+ def sort_kind(self):
+ """Shorthand for `self.sort().kind()`.
+
+ >>> a = Array('a', IntSort(), IntSort())
+ >>> a.sort_kind() == Z3_ARRAY_SORT
+ True
+ >>> a.sort_kind() == Z3_INT_SORT
+ False
+ """
+ return self.sort().kind()
+
+ def __eq__(self, other):
+ """Return a Z3 expression that represents the constraint `self == other`.
+
+ If `other` is `None`, then this method simply returns `False`.
+
+ >>> a = Int('a')
+ >>> b = Int('b')
+ >>> a == b
+ a == b
+ >>> a is None
+ False
+ """
+ if other is None:
+ return False
+ a, b = _coerce_exprs(self, other)
+ return BoolRef(Z3_mk_eq(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __hash__(self):
+ """ Hash code. """
+ return AstRef.__hash__(self)
+
+ def __ne__(self, other):
+ """Return a Z3 expression that represents the constraint `self != other`.
+
+ If `other` is `None`, then this method simply returns `True`.
+
+ >>> a = Int('a')
+ >>> b = Int('b')
+ >>> a != b
+ a != b
+ >>> a is not None
+ True
+ """
+ if other is None:
+ return True
+ a, b = _coerce_exprs(self, other)
+ _args, sz = _to_ast_array((a, b))
+ return BoolRef(Z3_mk_distinct(self.ctx_ref(), 2, _args), self.ctx)
+
+ def decl(self):
+ """Return the Z3 function declaration associated with a Z3 application.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> a = Int('a')
+ >>> t = f(a)
+ >>> eq(t.decl(), f)
+ True
+ >>> (a + 1).decl()
+ +
+ """
+ if __debug__:
+ _z3_assert(is_app(self), "Z3 application expected")
+ return FuncDeclRef(Z3_get_app_decl(self.ctx_ref(), self.as_ast()), self.ctx)
+
+ def num_args(self):
+ """Return the number of arguments of a Z3 application.
+
+ >>> a = Int('a')
+ >>> b = Int('b')
+ >>> (a + b).num_args()
+ 2
+ >>> f = Function('f', IntSort(), IntSort(), IntSort(), IntSort())
+ >>> t = f(a, b, 0)
+ >>> t.num_args()
+ 3
+ """
+ if __debug__:
+ _z3_assert(is_app(self), "Z3 application expected")
+ return int(Z3_get_app_num_args(self.ctx_ref(), self.as_ast()))
+
+ def arg(self, idx):
+ """Return argument `idx` of the application `self`.
+
+ This method assumes that `self` is a function application with at least `idx+1` arguments.
+
+ >>> a = Int('a')
+ >>> b = Int('b')
+ >>> f = Function('f', IntSort(), IntSort(), IntSort(), IntSort())
+ >>> t = f(a, b, 0)
+ >>> t.arg(0)
+ a
+ >>> t.arg(1)
+ b
+ >>> t.arg(2)
+ 0
+ """
+ if __debug__:
+ _z3_assert(is_app(self), "Z3 application expected")
+ _z3_assert(idx < self.num_args(), "Invalid argument index")
+ return _to_expr_ref(Z3_get_app_arg(self.ctx_ref(), self.as_ast(), idx), self.ctx)
+
+ def children(self):
+ """Return a list containing the children of the given expression
+
+ >>> a = Int('a')
+ >>> b = Int('b')
+ >>> f = Function('f', IntSort(), IntSort(), IntSort(), IntSort())
+ >>> t = f(a, b, 0)
+ >>> t.children()
+ [a, b, 0]
+ """
+ if is_app(self):
+ return [self.arg(i) for i in range(self.num_args())]
+ else:
+ return []
+
+def _to_expr_ref(a, ctx):
+ if isinstance(a, Pattern):
+ return PatternRef(a, ctx)
+ ctx_ref = ctx.ref()
+ k = Z3_get_ast_kind(ctx_ref, a)
+ if k == Z3_QUANTIFIER_AST:
+ return QuantifierRef(a, ctx)
+ sk = Z3_get_sort_kind(ctx_ref, Z3_get_sort(ctx_ref, a))
+ if sk == Z3_BOOL_SORT:
+ return BoolRef(a, ctx)
+ if sk == Z3_INT_SORT:
+ if k == Z3_NUMERAL_AST:
+ return IntNumRef(a, ctx)
+ return ArithRef(a, ctx)
+ if sk == Z3_REAL_SORT:
+ if k == Z3_NUMERAL_AST:
+ return RatNumRef(a, ctx)
+ if _is_algebraic(ctx, a):
+ return AlgebraicNumRef(a, ctx)
+ return ArithRef(a, ctx)
+ if sk == Z3_BV_SORT:
+ if k == Z3_NUMERAL_AST:
+ return BitVecNumRef(a, ctx)
+ else:
+ return BitVecRef(a, ctx)
+ if sk == Z3_ARRAY_SORT:
+ return ArrayRef(a, ctx)
+ if sk == Z3_DATATYPE_SORT:
+ return DatatypeRef(a, ctx)
+ if sk == Z3_FLOATING_POINT_SORT:
+ if k == Z3_APP_AST and _is_numeral(ctx, a):
+ return FPNumRef(a, ctx)
+ else:
+ return FPRef(a, ctx)
+ if sk == Z3_FINITE_DOMAIN_SORT:
+ if k == Z3_NUMERAL_AST:
+ return FiniteDomainNumRef(a, ctx)
+ else:
+ return FiniteDomainRef(a, ctx)
+ if sk == Z3_ROUNDING_MODE_SORT:
+ return FPRMRef(a, ctx)
+ if sk == Z3_SEQ_SORT:
+ return SeqRef(a, ctx)
+ if sk == Z3_RE_SORT:
+ return ReRef(a, ctx)
+ return ExprRef(a, ctx)
+
+def _coerce_expr_merge(s, a):
+ if is_expr(a):
+ s1 = a.sort()
+ if s is None:
+ return s1
+ if s1.eq(s):
+ return s
+ elif s.subsort(s1):
+ return s1
+ elif s1.subsort(s):
+ return s
+ else:
+ if __debug__:
+ _z3_assert(s1.ctx == s.ctx, "context mismatch")
+ _z3_assert(False, "sort mismatch")
+ else:
+ return s
+
+def _coerce_exprs(a, b, ctx=None):
+ if not is_expr(a) and not is_expr(b):
+ a = _py2expr(a, ctx)
+ b = _py2expr(b, ctx)
+ s = None
+ s = _coerce_expr_merge(s, a)
+ s = _coerce_expr_merge(s, b)
+ a = s.cast(a)
+ b = s.cast(b)
+ return (a, b)
+
+def _reduce(f, l, a):
+ r = a
+ for e in l:
+ r = f(r, e)
+ return r
+
+def _coerce_expr_list(alist, ctx=None):
+ has_expr = False
+ for a in alist:
+ if is_expr(a):
+ has_expr = True
+ break
+ if not has_expr:
+ alist = [ _py2expr(a, ctx) for a in alist ]
+ s = _reduce(_coerce_expr_merge, alist, None)
+ return [ s.cast(a) for a in alist ]
+
+def is_expr(a):
+ """Return `True` if `a` is a Z3 expression.
+
+ >>> a = Int('a')
+ >>> is_expr(a)
+ True
+ >>> is_expr(a + 1)
+ True
+ >>> is_expr(IntSort())
+ False
+ >>> is_expr(1)
+ False
+ >>> is_expr(IntVal(1))
+ True
+ >>> x = Int('x')
+ >>> is_expr(ForAll(x, x >= 0))
+ True
+ >>> is_expr(FPVal(1.0))
+ True
+ """
+ return isinstance(a, ExprRef)
+
+def is_app(a):
+ """Return `True` if `a` is a Z3 function application.
+
+ Note that, constants are function applications with 0 arguments.
+
+ >>> a = Int('a')
+ >>> is_app(a)
+ True
+ >>> is_app(a + 1)
+ True
+ >>> is_app(IntSort())
+ False
+ >>> is_app(1)
+ False
+ >>> is_app(IntVal(1))
+ True
+ >>> x = Int('x')
+ >>> is_app(ForAll(x, x >= 0))
+ False
+ """
+ if not isinstance(a, ExprRef):
+ return False
+ k = _ast_kind(a.ctx, a)
+ return k == Z3_NUMERAL_AST or k == Z3_APP_AST
+
+def is_const(a):
+ """Return `True` if `a` is Z3 constant/variable expression.
+
+ >>> a = Int('a')
+ >>> is_const(a)
+ True
+ >>> is_const(a + 1)
+ False
+ >>> is_const(1)
+ False
+ >>> is_const(IntVal(1))
+ True
+ >>> x = Int('x')
+ >>> is_const(ForAll(x, x >= 0))
+ False
+ """
+ return is_app(a) and a.num_args() == 0
+
+def is_var(a):
+ """Return `True` if `a` is variable.
+
+ Z3 uses de-Bruijn indices for representing bound variables in
+ quantifiers.
+
+ >>> x = Int('x')
+ >>> is_var(x)
+ False
+ >>> is_const(x)
+ True
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> # Z3 replaces x with bound variables when ForAll is executed.
+ >>> q = ForAll(x, f(x) == x)
+ >>> b = q.body()
+ >>> b
+ f(Var(0)) == Var(0)
+ >>> b.arg(1)
+ Var(0)
+ >>> is_var(b.arg(1))
+ True
+ """
+ return is_expr(a) and _ast_kind(a.ctx, a) == Z3_VAR_AST
+
+def get_var_index(a):
+ """Return the de-Bruijn index of the Z3 bounded variable `a`.
+
+ >>> x = Int('x')
+ >>> y = Int('y')
+ >>> is_var(x)
+ False
+ >>> is_const(x)
+ True
+ >>> f = Function('f', IntSort(), IntSort(), IntSort())
+ >>> # Z3 replaces x and y with bound variables when ForAll is executed.
+ >>> q = ForAll([x, y], f(x, y) == x + y)
+ >>> q.body()
+ f(Var(1), Var(0)) == Var(1) + Var(0)
+ >>> b = q.body()
+ >>> b.arg(0)
+ f(Var(1), Var(0))
+ >>> v1 = b.arg(0).arg(0)
+ >>> v2 = b.arg(0).arg(1)
+ >>> v1
+ Var(1)
+ >>> v2
+ Var(0)
+ >>> get_var_index(v1)
+ 1
+ >>> get_var_index(v2)
+ 0
+ """
+ if __debug__:
+ _z3_assert(is_var(a), "Z3 bound variable expected")
+ return int(Z3_get_index_value(a.ctx.ref(), a.as_ast()))
+
+def is_app_of(a, k):
+ """Return `True` if `a` is an application of the given kind `k`.
+
+ >>> x = Int('x')
+ >>> n = x + 1
+ >>> is_app_of(n, Z3_OP_ADD)
+ True
+ >>> is_app_of(n, Z3_OP_MUL)
+ False
+ """
+ return is_app(a) and a.decl().kind() == k
+
+def If(a, b, c, ctx=None):
+ """Create a Z3 if-then-else expression.
+
+ >>> x = Int('x')
+ >>> y = Int('y')
+ >>> max = If(x > y, x, y)
+ >>> max
+ If(x > y, x, y)
+ >>> simplify(max)
+ If(x <= y, y, x)
+ """
+ if isinstance(a, Probe) or isinstance(b, Tactic) or isinstance(c, Tactic):
+ return Cond(a, b, c, ctx)
+ else:
+ ctx = _get_ctx(_ctx_from_ast_arg_list([a, b, c], ctx))
+ s = BoolSort(ctx)
+ a = s.cast(a)
+ b, c = _coerce_exprs(b, c, ctx)
+ if __debug__:
+ _z3_assert(a.ctx == b.ctx, "Context mismatch")
+ return _to_expr_ref(Z3_mk_ite(ctx.ref(), a.as_ast(), b.as_ast(), c.as_ast()), ctx)
+
+def Distinct(*args):
+ """Create a Z3 distinct expression.
+
+ >>> x = Int('x')
+ >>> y = Int('y')
+ >>> Distinct(x, y)
+ x != y
+ >>> z = Int('z')
+ >>> Distinct(x, y, z)
+ Distinct(x, y, z)
+ >>> simplify(Distinct(x, y, z))
+ Distinct(x, y, z)
+ >>> simplify(Distinct(x, y, z), blast_distinct=True)
+ And(Not(x == y), Not(x == z), Not(y == z))
+ """
+ args = _get_args(args)
+ ctx = _ctx_from_ast_arg_list(args)
+ if __debug__:
+ _z3_assert(ctx is not None, "At least one of the arguments must be a Z3 expression")
+ args = _coerce_expr_list(args, ctx)
+ _args, sz = _to_ast_array(args)
+ return BoolRef(Z3_mk_distinct(ctx.ref(), sz, _args), ctx)
+
+def _mk_bin(f, a, b):
+ args = (Ast * 2)()
+ if __debug__:
+ _z3_assert(a.ctx == b.ctx, "Context mismatch")
+ args[0] = a.as_ast()
+ args[1] = b.as_ast()
+ return f(a.ctx.ref(), 2, args)
+
+def Const(name, sort):
+ """Create a constant of the given sort.
+
+ >>> Const('x', IntSort())
+ x
+ """
+ if __debug__:
+ _z3_assert(isinstance(sort, SortRef), "Z3 sort expected")
+ ctx = sort.ctx
+ return _to_expr_ref(Z3_mk_const(ctx.ref(), to_symbol(name, ctx), sort.ast), ctx)
+
+def Consts(names, sort):
+ """Create a several constants of the given sort.
+
+ `names` is a string containing the names of all constants to be created.
+ Blank spaces separate the names of different constants.
+
+ >>> x, y, z = Consts('x y z', IntSort())
+ >>> x + y + z
+ x + y + z
+ """
+ if isinstance(names, str):
+ names = names.split(" ")
+ return [Const(name, sort) for name in names]
+
+def Var(idx, s):
+ """Create a Z3 free variable. Free variables are used to create quantified formulas.
+
+ >>> Var(0, IntSort())
+ Var(0)
+ >>> eq(Var(0, IntSort()), Var(0, BoolSort()))
+ False
+ """
+ if __debug__:
+ _z3_assert(is_sort(s), "Z3 sort expected")
+ return _to_expr_ref(Z3_mk_bound(s.ctx_ref(), idx, s.ast), s.ctx)
+
+def RealVar(idx, ctx=None):
+ """
+ Create a real free variable. Free variables are used to create quantified formulas.
+ They are also used to create polynomials.
+
+ >>> RealVar(0)
+ Var(0)
+ """
+ return Var(idx, RealSort(ctx))
+
+def RealVarVector(n, ctx=None):
+ """
+ Create a list of Real free variables.
+ The variables have ids: 0, 1, ..., n-1
+
+ >>> x0, x1, x2, x3 = RealVarVector(4)
+ >>> x2
+ Var(2)
+ """
+ return [ RealVar(i, ctx) for i in range(n) ]
+
+#########################################
+#
+# Booleans
+#
+#########################################
+
+class BoolSortRef(SortRef):
+ """Boolean sort."""
+ def cast(self, val):
+ """Try to cast `val` as a Boolean.
+
+ >>> x = BoolSort().cast(True)
+ >>> x
+ True
+ >>> is_expr(x)
+ True
+ >>> is_expr(True)
+ False
+ >>> x.sort()
+ Bool
+ """
+ if isinstance(val, bool):
+ return BoolVal(val, self.ctx)
+ if __debug__:
+ _z3_assert(is_expr(val), "True, False or Z3 Boolean expression expected")
+ _z3_assert(self.eq(val.sort()), "Value cannot be converted into a Z3 Boolean value")
+ return val
+
+ def subsort(self, other):
+ return isinstance(other, ArithSortRef)
+
+ def is_int(self):
+ return True
+
+ def is_bool(self):
+ return True
+
+
+class BoolRef(ExprRef):
+ """All Boolean expressions are instances of this class."""
+ def sort(self):
+ return BoolSortRef(Z3_get_sort(self.ctx_ref(), self.as_ast()), self.ctx)
+
+ def __rmul__(self, other):
+ return self * other
+
+ def __mul__(self, other):
+ """Create the Z3 expression `self * other`.
+ """
+ if other == 1:
+ return self
+ if other == 0:
+ return 0
+ return If(self, other, 0)
+
+
+def is_bool(a):
+ """Return `True` if `a` is a Z3 Boolean expression.
+
+ >>> p = Bool('p')
+ >>> is_bool(p)
+ True
+ >>> q = Bool('q')
+ >>> is_bool(And(p, q))
+ True
+ >>> x = Real('x')
+ >>> is_bool(x)
+ False
+ >>> is_bool(x == 0)
+ True
+ """
+ return isinstance(a, BoolRef)
+
+def is_true(a):
+ """Return `True` if `a` is the Z3 true expression.
+
+ >>> p = Bool('p')
+ >>> is_true(p)
+ False
+ >>> is_true(simplify(p == p))
+ True
+ >>> x = Real('x')
+ >>> is_true(x == 0)
+ False
+ >>> # True is a Python Boolean expression
+ >>> is_true(True)
+ False
+ """
+ return is_app_of(a, Z3_OP_TRUE)
+
+def is_false(a):
+ """Return `True` if `a` is the Z3 false expression.
+
+ >>> p = Bool('p')
+ >>> is_false(p)
+ False
+ >>> is_false(False)
+ False
+ >>> is_false(BoolVal(False))
+ True
+ """
+ return is_app_of(a, Z3_OP_FALSE)
+
+def is_and(a):
+ """Return `True` if `a` is a Z3 and expression.
+
+ >>> p, q = Bools('p q')
+ >>> is_and(And(p, q))
+ True
+ >>> is_and(Or(p, q))
+ False
+ """
+ return is_app_of(a, Z3_OP_AND)
+
+def is_or(a):
+ """Return `True` if `a` is a Z3 or expression.
+
+ >>> p, q = Bools('p q')
+ >>> is_or(Or(p, q))
+ True
+ >>> is_or(And(p, q))
+ False
+ """
+ return is_app_of(a, Z3_OP_OR)
+
+def is_not(a):
+ """Return `True` if `a` is a Z3 not expression.
+
+ >>> p = Bool('p')
+ >>> is_not(p)
+ False
+ >>> is_not(Not(p))
+ True
+ """
+ return is_app_of(a, Z3_OP_NOT)
+
+def is_eq(a):
+ """Return `True` if `a` is a Z3 equality expression.
+
+ >>> x, y = Ints('x y')
+ >>> is_eq(x == y)
+ True
+ """
+ return is_app_of(a, Z3_OP_EQ)
+
+def is_distinct(a):
+ """Return `True` if `a` is a Z3 distinct expression.
+
+ >>> x, y, z = Ints('x y z')
+ >>> is_distinct(x == y)
+ False
+ >>> is_distinct(Distinct(x, y, z))
+ True
+ """
+ return is_app_of(a, Z3_OP_DISTINCT)
+
+def BoolSort(ctx=None):
+ """Return the Boolean Z3 sort. If `ctx=None`, then the global context is used.
+
+ >>> BoolSort()
+ Bool
+ >>> p = Const('p', BoolSort())
+ >>> is_bool(p)
+ True
+ >>> r = Function('r', IntSort(), IntSort(), BoolSort())
+ >>> r(0, 1)
+ r(0, 1)
+ >>> is_bool(r(0, 1))
+ True
+ """
+ ctx = _get_ctx(ctx)
+ return BoolSortRef(Z3_mk_bool_sort(ctx.ref()), ctx)
+
+def BoolVal(val, ctx=None):
+ """Return the Boolean value `True` or `False`. If `ctx=None`, then the global context is used.
+
+ >>> BoolVal(True)
+ True
+ >>> is_true(BoolVal(True))
+ True
+ >>> is_true(True)
+ False
+ >>> is_false(BoolVal(False))
+ True
+ """
+ ctx = _get_ctx(ctx)
+ if val == False:
+ return BoolRef(Z3_mk_false(ctx.ref()), ctx)
+ else:
+ return BoolRef(Z3_mk_true(ctx.ref()), ctx)
+
+def Bool(name, ctx=None):
+ """Return a Boolean constant named `name`. If `ctx=None`, then the global context is used.
+
+ >>> p = Bool('p')
+ >>> q = Bool('q')
+ >>> And(p, q)
+ And(p, q)
+ """
+ ctx = _get_ctx(ctx)
+ return BoolRef(Z3_mk_const(ctx.ref(), to_symbol(name, ctx), BoolSort(ctx).ast), ctx)
+
+def Bools(names, ctx=None):
+ """Return a tuple of Boolean constants.
+
+ `names` is a single string containing all names separated by blank spaces.
+ If `ctx=None`, then the global context is used.
+
+ >>> p, q, r = Bools('p q r')
+ >>> And(p, Or(q, r))
+ And(p, Or(q, r))
+ """
+ ctx = _get_ctx(ctx)
+ if isinstance(names, str):
+ names = names.split(" ")
+ return [Bool(name, ctx) for name in names]
+
+def BoolVector(prefix, sz, ctx=None):
+ """Return a list of Boolean constants of size `sz`.
+
+ The constants are named using the given prefix.
+ If `ctx=None`, then the global context is used.
+
+ >>> P = BoolVector('p', 3)
+ >>> P
+ [p__0, p__1, p__2]
+ >>> And(P)
+ And(p__0, p__1, p__2)
+ """
+ return [ Bool('%s__%s' % (prefix, i)) for i in range(sz) ]
+
+def FreshBool(prefix='b', ctx=None):
+ """Return a fresh Boolean constant in the given context using the given prefix.
+
+ If `ctx=None`, then the global context is used.
+
+ >>> b1 = FreshBool()
+ >>> b2 = FreshBool()
+ >>> eq(b1, b2)
+ False
+ """
+ ctx = _get_ctx(ctx)
+ return BoolRef(Z3_mk_fresh_const(ctx.ref(), prefix, BoolSort(ctx).ast), ctx)
+
+def Implies(a, b, ctx=None):
+ """Create a Z3 implies expression.
+
+ >>> p, q = Bools('p q')
+ >>> Implies(p, q)
+ Implies(p, q)
+ >>> simplify(Implies(p, q))
+ Or(Not(p), q)
+ """
+ ctx = _get_ctx(_ctx_from_ast_arg_list([a, b], ctx))
+ s = BoolSort(ctx)
+ a = s.cast(a)
+ b = s.cast(b)
+ return BoolRef(Z3_mk_implies(ctx.ref(), a.as_ast(), b.as_ast()), ctx)
+
+def Xor(a, b, ctx=None):
+ """Create a Z3 Xor expression.
+
+ >>> p, q = Bools('p q')
+ >>> Xor(p, q)
+ Xor(p, q)
+ >>> simplify(Xor(p, q))
+ Not(p) == q
+ """
+ ctx = _get_ctx(_ctx_from_ast_arg_list([a, b], ctx))
+ s = BoolSort(ctx)
+ a = s.cast(a)
+ b = s.cast(b)
+ return BoolRef(Z3_mk_xor(ctx.ref(), a.as_ast(), b.as_ast()), ctx)
+
+def Not(a, ctx=None):
+ """Create a Z3 not expression or probe.
+
+ >>> p = Bool('p')
+ >>> Not(Not(p))
+ Not(Not(p))
+ >>> simplify(Not(Not(p)))
+ p
+ """
+ ctx = _get_ctx(_ctx_from_ast_arg_list([a], ctx))
+ if is_probe(a):
+ # Not is also used to build probes
+ return Probe(Z3_probe_not(ctx.ref(), a.probe), ctx)
+ else:
+ s = BoolSort(ctx)
+ a = s.cast(a)
+ return BoolRef(Z3_mk_not(ctx.ref(), a.as_ast()), ctx)
+
+def _has_probe(args):
+ """Return `True` if one of the elements of the given collection is a Z3 probe."""
+ for arg in args:
+ if is_probe(arg):
+ return True
+ return False
+
+def And(*args):
+ """Create a Z3 and-expression or and-probe.
+
+ >>> p, q, r = Bools('p q r')
+ >>> And(p, q, r)
+ And(p, q, r)
+ >>> P = BoolVector('p', 5)
+ >>> And(P)
+ And(p__0, p__1, p__2, p__3, p__4)
+ """
+ last_arg = None
+ if len(args) > 0:
+ last_arg = args[len(args)-1]
+ if isinstance(last_arg, Context):
+ ctx = args[len(args)-1]
+ args = args[:len(args)-1]
+ elif len(args) == 1 and isinstance(args[0], AstVector):
+ ctx = args[0].ctx
+ args = [a for a in args[0]]
+ else:
+ ctx = main_ctx()
+ args = _get_args(args)
+ ctx_args = _ctx_from_ast_arg_list(args, ctx)
+ if __debug__:
+ _z3_assert(ctx_args is None or ctx_args == ctx, "context mismatch")
+ _z3_assert(ctx is not None, "At least one of the arguments must be a Z3 expression or probe")
+ if _has_probe(args):
+ return _probe_and(args, ctx)
+ else:
+ args = _coerce_expr_list(args, ctx)
+ _args, sz = _to_ast_array(args)
+ return BoolRef(Z3_mk_and(ctx.ref(), sz, _args), ctx)
+
+def Or(*args):
+ """Create a Z3 or-expression or or-probe.
+
+ >>> p, q, r = Bools('p q r')
+ >>> Or(p, q, r)
+ Or(p, q, r)
+ >>> P = BoolVector('p', 5)
+ >>> Or(P)
+ Or(p__0, p__1, p__2, p__3, p__4)
+ """
+ last_arg = None
+ if len(args) > 0:
+ last_arg = args[len(args)-1]
+ if isinstance(last_arg, Context):
+ ctx = args[len(args)-1]
+ args = args[:len(args)-1]
+ else:
+ ctx = main_ctx()
+ args = _get_args(args)
+ ctx_args = _ctx_from_ast_arg_list(args, ctx)
+ if __debug__:
+ _z3_assert(ctx_args is None or ctx_args == ctx, "context mismatch")
+ _z3_assert(ctx is not None, "At least one of the arguments must be a Z3 expression or probe")
+ if _has_probe(args):
+ return _probe_or(args, ctx)
+ else:
+ args = _coerce_expr_list(args, ctx)
+ _args, sz = _to_ast_array(args)
+ return BoolRef(Z3_mk_or(ctx.ref(), sz, _args), ctx)
+
+#########################################
+#
+# Patterns
+#
+#########################################
+
+class PatternRef(ExprRef):
+ """Patterns are hints for quantifier instantiation.
+
+ See http://rise4fun.com/Z3Py/tutorial/advanced for more details.
+ """
+ def as_ast(self):
+ return Z3_pattern_to_ast(self.ctx_ref(), self.ast)
+
+ def get_id(self):
+ return Z3_get_ast_id(self.ctx_ref(), self.as_ast())
+
+def is_pattern(a):
+ """Return `True` if `a` is a Z3 pattern (hint for quantifier instantiation.
+
+ See http://rise4fun.com/Z3Py/tutorial/advanced for more details.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> q = ForAll(x, f(x) == 0, patterns = [ f(x) ])
+ >>> q
+ ForAll(x, f(x) == 0)
+ >>> q.num_patterns()
+ 1
+ >>> is_pattern(q.pattern(0))
+ True
+ >>> q.pattern(0)
+ f(Var(0))
+ """
+ return isinstance(a, PatternRef)
+
+def MultiPattern(*args):
+ """Create a Z3 multi-pattern using the given expressions `*args`
+
+ See http://rise4fun.com/Z3Py/tutorial/advanced for more details.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> g = Function('g', IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> q = ForAll(x, f(x) != g(x), patterns = [ MultiPattern(f(x), g(x)) ])
+ >>> q
+ ForAll(x, f(x) != g(x))
+ >>> q.num_patterns()
+ 1
+ >>> is_pattern(q.pattern(0))
+ True
+ >>> q.pattern(0)
+ MultiPattern(f(Var(0)), g(Var(0)))
+ """
+ if __debug__:
+ _z3_assert(len(args) > 0, "At least one argument expected")
+ _z3_assert(all([ is_expr(a) for a in args ]), "Z3 expressions expected")
+ ctx = args[0].ctx
+ args, sz = _to_ast_array(args)
+ return PatternRef(Z3_mk_pattern(ctx.ref(), sz, args), ctx)
+
+def _to_pattern(arg):
+ if is_pattern(arg):
+ return arg
+ else:
+ return MultiPattern(arg)
+
+#########################################
+#
+# Quantifiers
+#
+#########################################
+
+class QuantifierRef(BoolRef):
+ """Universally and Existentially quantified formulas."""
+
+ def as_ast(self):
+ return self.ast
+
+ def get_id(self):
+ return Z3_get_ast_id(self.ctx_ref(), self.as_ast())
+
+ def sort(self):
+ """Return the Boolean sort."""
+ return BoolSort(self.ctx)
+
+ def is_forall(self):
+ """Return `True` if `self` is a universal quantifier.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> q = ForAll(x, f(x) == 0)
+ >>> q.is_forall()
+ True
+ >>> q = Exists(x, f(x) != 0)
+ >>> q.is_forall()
+ False
+ """
+ return Z3_is_quantifier_forall(self.ctx_ref(), self.ast)
+
+ def weight(self):
+ """Return the weight annotation of `self`.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> q = ForAll(x, f(x) == 0)
+ >>> q.weight()
+ 1
+ >>> q = ForAll(x, f(x) == 0, weight=10)
+ >>> q.weight()
+ 10
+ """
+ return int(Z3_get_quantifier_weight(self.ctx_ref(), self.ast))
+
+ def num_patterns(self):
+ """Return the number of patterns (i.e., quantifier instantiation hints) in `self`.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> g = Function('g', IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> q = ForAll(x, f(x) != g(x), patterns = [ f(x), g(x) ])
+ >>> q.num_patterns()
+ 2
+ """
+ return int(Z3_get_quantifier_num_patterns(self.ctx_ref(), self.ast))
+
+ def pattern(self, idx):
+ """Return a pattern (i.e., quantifier instantiation hints) in `self`.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> g = Function('g', IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> q = ForAll(x, f(x) != g(x), patterns = [ f(x), g(x) ])
+ >>> q.num_patterns()
+ 2
+ >>> q.pattern(0)
+ f(Var(0))
+ >>> q.pattern(1)
+ g(Var(0))
+ """
+ if __debug__:
+ _z3_assert(idx < self.num_patterns(), "Invalid pattern idx")
+ return PatternRef(Z3_get_quantifier_pattern_ast(self.ctx_ref(), self.ast, idx), self.ctx)
+
+ def num_no_patterns(self):
+ """Return the number of no-patterns."""
+ return Z3_get_quantifier_num_no_patterns(self.ctx_ref(), self.ast)
+
+ def no_pattern(self, idx):
+ """Return a no-pattern."""
+ if __debug__:
+ _z3_assert(idx < self.num_no_patterns(), "Invalid no-pattern idx")
+ return _to_expr_ref(Z3_get_quantifier_no_pattern_ast(self.ctx_ref(), self.ast, idx), self.ctx)
+
+ def body(self):
+ """Return the expression being quantified.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> q = ForAll(x, f(x) == 0)
+ >>> q.body()
+ f(Var(0)) == 0
+ """
+ return _to_expr_ref(Z3_get_quantifier_body(self.ctx_ref(), self.ast), self.ctx)
+
+ def num_vars(self):
+ """Return the number of variables bounded by this quantifier.
+
+ >>> f = Function('f', IntSort(), IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> y = Int('y')
+ >>> q = ForAll([x, y], f(x, y) >= x)
+ >>> q.num_vars()
+ 2
+ """
+ return int(Z3_get_quantifier_num_bound(self.ctx_ref(), self.ast))
+
+ def var_name(self, idx):
+ """Return a string representing a name used when displaying the quantifier.
+
+ >>> f = Function('f', IntSort(), IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> y = Int('y')
+ >>> q = ForAll([x, y], f(x, y) >= x)
+ >>> q.var_name(0)
+ 'x'
+ >>> q.var_name(1)
+ 'y'
+ """
+ if __debug__:
+ _z3_assert(idx < self.num_vars(), "Invalid variable idx")
+ return _symbol2py(self.ctx, Z3_get_quantifier_bound_name(self.ctx_ref(), self.ast, idx))
+
+ def var_sort(self, idx):
+ """Return the sort of a bound variable.
+
+ >>> f = Function('f', IntSort(), RealSort(), IntSort())
+ >>> x = Int('x')
+ >>> y = Real('y')
+ >>> q = ForAll([x, y], f(x, y) >= x)
+ >>> q.var_sort(0)
+ Int
+ >>> q.var_sort(1)
+ Real
+ """
+ if __debug__:
+ _z3_assert(idx < self.num_vars(), "Invalid variable idx")
+ return _to_sort_ref(Z3_get_quantifier_bound_sort(self.ctx_ref(), self.ast, idx), self.ctx)
+
+ def children(self):
+ """Return a list containing a single element self.body()
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> q = ForAll(x, f(x) == 0)
+ >>> q.children()
+ [f(Var(0)) == 0]
+ """
+ return [ self.body() ]
+
+def is_quantifier(a):
+ """Return `True` if `a` is a Z3 quantifier.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> q = ForAll(x, f(x) == 0)
+ >>> is_quantifier(q)
+ True
+ >>> is_quantifier(f(x))
+ False
+ """
+ return isinstance(a, QuantifierRef)
+
+def _mk_quantifier(is_forall, vs, body, weight=1, qid="", skid="", patterns=[], no_patterns=[]):
+ if __debug__:
+ _z3_assert(is_bool(body), "Z3 expression expected")
+ _z3_assert(is_const(vs) or (len(vs) > 0 and all([ is_const(v) for v in vs])), "Invalid bounded variable(s)")
+ _z3_assert(all([is_pattern(a) or is_expr(a) for a in patterns]), "Z3 patterns expected")
+ _z3_assert(all([is_expr(p) for p in no_patterns]), "no patterns are Z3 expressions")
+ ctx = body.ctx
+ if is_app(vs):
+ vs = [vs]
+ num_vars = len(vs)
+ if num_vars == 0:
+ return body
+ _vs = (Ast * num_vars)()
+ for i in range(num_vars):
+ ## TODO: Check if is constant
+ _vs[i] = vs[i].as_ast()
+ patterns = [ _to_pattern(p) for p in patterns ]
+ num_pats = len(patterns)
+ _pats = (Pattern * num_pats)()
+ for i in range(num_pats):
+ _pats[i] = patterns[i].ast
+ _no_pats, num_no_pats = _to_ast_array(no_patterns)
+ qid = to_symbol(qid, ctx)
+ skid = to_symbol(skid, ctx)
+ return QuantifierRef(Z3_mk_quantifier_const_ex(ctx.ref(), is_forall, weight, qid, skid,
+ num_vars, _vs,
+ num_pats, _pats,
+ num_no_pats, _no_pats,
+ body.as_ast()), ctx)
+
+def ForAll(vs, body, weight=1, qid="", skid="", patterns=[], no_patterns=[]):
+ """Create a Z3 forall formula.
+
+ The parameters `weight`, `qif`, `skid`, `patterns` and `no_patterns` are optional annotations.
+
+ See http://rise4fun.com/Z3Py/tutorial/advanced for more details.
+
+ >>> f = Function('f', IntSort(), IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> y = Int('y')
+ >>> ForAll([x, y], f(x, y) >= x)
+ ForAll([x, y], f(x, y) >= x)
+ >>> ForAll([x, y], f(x, y) >= x, patterns=[ f(x, y) ])
+ ForAll([x, y], f(x, y) >= x)
+ >>> ForAll([x, y], f(x, y) >= x, weight=10)
+ ForAll([x, y], f(x, y) >= x)
+ """
+ return _mk_quantifier(True, vs, body, weight, qid, skid, patterns, no_patterns)
+
+def Exists(vs, body, weight=1, qid="", skid="", patterns=[], no_patterns=[]):
+ """Create a Z3 exists formula.
+
+ The parameters `weight`, `qif`, `skid`, `patterns` and `no_patterns` are optional annotations.
+
+ See http://rise4fun.com/Z3Py/tutorial/advanced for more details.
+
+ >>> f = Function('f', IntSort(), IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> y = Int('y')
+ >>> q = Exists([x, y], f(x, y) >= x, skid="foo")
+ >>> q
+ Exists([x, y], f(x, y) >= x)
+ >>> is_quantifier(q)
+ True
+ >>> r = Tactic('nnf')(q).as_expr()
+ >>> is_quantifier(r)
+ False
+ """
+ return _mk_quantifier(False, vs, body, weight, qid, skid, patterns, no_patterns)
+
+#########################################
+#
+# Arithmetic
+#
+#########################################
+
+class ArithSortRef(SortRef):
+ """Real and Integer sorts."""
+
+ def is_real(self):
+ """Return `True` if `self` is of the sort Real.
+
+ >>> x = Real('x')
+ >>> x.is_real()
+ True
+ >>> (x + 1).is_real()
+ True
+ >>> x = Int('x')
+ >>> x.is_real()
+ False
+ """
+ return self.kind() == Z3_REAL_SORT
+
+ def is_int(self):
+ """Return `True` if `self` is of the sort Integer.
+
+ >>> x = Int('x')
+ >>> x.is_int()
+ True
+ >>> (x + 1).is_int()
+ True
+ >>> x = Real('x')
+ >>> x.is_int()
+ False
+ """
+ return self.kind() == Z3_INT_SORT
+
+ def subsort(self, other):
+ """Return `True` if `self` is a subsort of `other`."""
+ return self.is_int() and is_arith_sort(other) and other.is_real()
+
+ def cast(self, val):
+ """Try to cast `val` as an Integer or Real.
+
+ >>> IntSort().cast(10)
+ 10
+ >>> is_int(IntSort().cast(10))
+ True
+ >>> is_int(10)
+ False
+ >>> RealSort().cast(10)
+ 10
+ >>> is_real(RealSort().cast(10))
+ True
+ """
+ if is_expr(val):
+ if __debug__:
+ _z3_assert(self.ctx == val.ctx, "Context mismatch")
+ val_s = val.sort()
+ if self.eq(val_s):
+ return val
+ if val_s.is_int() and self.is_real():
+ return ToReal(val)
+ if val_s.is_bool() and self.is_int():
+ return If(val, 1, 0)
+ if val_s.is_bool() and self.is_real():
+ return ToReal(If(val, 1, 0))
+ if __debug__:
+ _z3_assert(False, "Z3 Integer/Real expression expected" )
+ else:
+ if self.is_int():
+ return IntVal(val, self.ctx)
+ if self.is_real():
+ return RealVal(val, self.ctx)
+ if __debug__:
+ _z3_assert(False, "int, long, float, string (numeral), or Z3 Integer/Real expression expected")
+
+def is_arith_sort(s):
+ """Return `True` if s is an arithmetical sort (type).
+
+ >>> is_arith_sort(IntSort())
+ True
+ >>> is_arith_sort(RealSort())
+ True
+ >>> is_arith_sort(BoolSort())
+ False
+ >>> n = Int('x') + 1
+ >>> is_arith_sort(n.sort())
+ True
+ """
+ return isinstance(s, ArithSortRef)
+
+class ArithRef(ExprRef):
+ """Integer and Real expressions."""
+
+ def sort(self):
+ """Return the sort (type) of the arithmetical expression `self`.
+
+ >>> Int('x').sort()
+ Int
+ >>> (Real('x') + 1).sort()
+ Real
+ """
+ return ArithSortRef(Z3_get_sort(self.ctx_ref(), self.as_ast()), self.ctx)
+
+ def is_int(self):
+ """Return `True` if `self` is an integer expression.
+
+ >>> x = Int('x')
+ >>> x.is_int()
+ True
+ >>> (x + 1).is_int()
+ True
+ >>> y = Real('y')
+ >>> (x + y).is_int()
+ False
+ """
+ return self.sort().is_int()
+
+ def is_real(self):
+ """Return `True` if `self` is an real expression.
+
+ >>> x = Real('x')
+ >>> x.is_real()
+ True
+ >>> (x + 1).is_real()
+ True
+ """
+ return self.sort().is_real()
+
+ def __add__(self, other):
+ """Create the Z3 expression `self + other`.
+
+ >>> x = Int('x')
+ >>> y = Int('y')
+ >>> x + y
+ x + y
+ >>> (x + y).sort()
+ Int
+ """
+ a, b = _coerce_exprs(self, other)
+ return ArithRef(_mk_bin(Z3_mk_add, a, b), self.ctx)
+
+ def __radd__(self, other):
+ """Create the Z3 expression `other + self`.
+
+ >>> x = Int('x')
+ >>> 10 + x
+ 10 + x
+ """
+ a, b = _coerce_exprs(self, other)
+ return ArithRef(_mk_bin(Z3_mk_add, b, a), self.ctx)
+
+ def __mul__(self, other):
+ """Create the Z3 expression `self * other`.
+
+ >>> x = Real('x')
+ >>> y = Real('y')
+ >>> x * y
+ x*y
+ >>> (x * y).sort()
+ Real
+ """
+ a, b = _coerce_exprs(self, other)
+ return ArithRef(_mk_bin(Z3_mk_mul, a, b), self.ctx)
+
+ def __rmul__(self, other):
+ """Create the Z3 expression `other * self`.
+
+ >>> x = Real('x')
+ >>> 10 * x
+ 10*x
+ """
+ a, b = _coerce_exprs(self, other)
+ return ArithRef(_mk_bin(Z3_mk_mul, b, a), self.ctx)
+
+ def __sub__(self, other):
+ """Create the Z3 expression `self - other`.
+
+ >>> x = Int('x')
+ >>> y = Int('y')
+ >>> x - y
+ x - y
+ >>> (x - y).sort()
+ Int
+ """
+ a, b = _coerce_exprs(self, other)
+ return ArithRef(_mk_bin(Z3_mk_sub, a, b), self.ctx)
+
+ def __rsub__(self, other):
+ """Create the Z3 expression `other - self`.
+
+ >>> x = Int('x')
+ >>> 10 - x
+ 10 - x
+ """
+ a, b = _coerce_exprs(self, other)
+ return ArithRef(_mk_bin(Z3_mk_sub, b, a), self.ctx)
+
+ def __pow__(self, other):
+ """Create the Z3 expression `self**other` (** is the power operator).
+
+ >>> x = Real('x')
+ >>> x**3
+ x**3
+ >>> (x**3).sort()
+ Real
+ >>> simplify(IntVal(2)**8)
+ 256
+ """
+ a, b = _coerce_exprs(self, other)
+ return ArithRef(Z3_mk_power(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __rpow__(self, other):
+ """Create the Z3 expression `other**self` (** is the power operator).
+
+ >>> x = Real('x')
+ >>> 2**x
+ 2**x
+ >>> (2**x).sort()
+ Real
+ >>> simplify(2**IntVal(8))
+ 256
+ """
+ a, b = _coerce_exprs(self, other)
+ return ArithRef(Z3_mk_power(self.ctx_ref(), b.as_ast(), a.as_ast()), self.ctx)
+
+ def __div__(self, other):
+ """Create the Z3 expression `other/self`.
+
+ >>> x = Int('x')
+ >>> y = Int('y')
+ >>> x/y
+ x/y
+ >>> (x/y).sort()
+ Int
+ >>> (x/y).sexpr()
+ '(div x y)'
+ >>> x = Real('x')
+ >>> y = Real('y')
+ >>> x/y
+ x/y
+ >>> (x/y).sort()
+ Real
+ >>> (x/y).sexpr()
+ '(/ x y)'
+ """
+ a, b = _coerce_exprs(self, other)
+ return ArithRef(Z3_mk_div(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __truediv__(self, other):
+ """Create the Z3 expression `other/self`."""
+ return self.__div__(other)
+
+ def __rdiv__(self, other):
+ """Create the Z3 expression `other/self`.
+
+ >>> x = Int('x')
+ >>> 10/x
+ 10/x
+ >>> (10/x).sexpr()
+ '(div 10 x)'
+ >>> x = Real('x')
+ >>> 10/x
+ 10/x
+ >>> (10/x).sexpr()
+ '(/ 10.0 x)'
+ """
+ a, b = _coerce_exprs(self, other)
+ return ArithRef(Z3_mk_div(self.ctx_ref(), b.as_ast(), a.as_ast()), self.ctx)
+
+ def __rtruediv__(self, other):
+ """Create the Z3 expression `other/self`."""
+ return self.__rdiv__(other)
+
+ def __mod__(self, other):
+ """Create the Z3 expression `other%self`.
+
+ >>> x = Int('x')
+ >>> y = Int('y')
+ >>> x % y
+ x%y
+ >>> simplify(IntVal(10) % IntVal(3))
+ 1
+ """
+ a, b = _coerce_exprs(self, other)
+ if __debug__:
+ _z3_assert(a.is_int(), "Z3 integer expression expected")
+ return ArithRef(Z3_mk_mod(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __rmod__(self, other):
+ """Create the Z3 expression `other%self`.
+
+ >>> x = Int('x')
+ >>> 10 % x
+ 10%x
+ """
+ a, b = _coerce_exprs(self, other)
+ if __debug__:
+ _z3_assert(a.is_int(), "Z3 integer expression expected")
+ return ArithRef(Z3_mk_mod(self.ctx_ref(), b.as_ast(), a.as_ast()), self.ctx)
+
+ def __neg__(self):
+ """Return an expression representing `-self`.
+
+ >>> x = Int('x')
+ >>> -x
+ -x
+ >>> simplify(-(-x))
+ x
+ """
+ return ArithRef(Z3_mk_unary_minus(self.ctx_ref(), self.as_ast()), self.ctx)
+
+ def __pos__(self):
+ """Return `self`.
+
+ >>> x = Int('x')
+ >>> +x
+ x
+ """
+ return self
+
+ def __le__(self, other):
+ """Create the Z3 expression `other <= self`.
+
+ >>> x, y = Ints('x y')
+ >>> x <= y
+ x <= y
+ >>> y = Real('y')
+ >>> x <= y
+ ToReal(x) <= y
+ """
+ a, b = _coerce_exprs(self, other)
+ return BoolRef(Z3_mk_le(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __lt__(self, other):
+ """Create the Z3 expression `other < self`.
+
+ >>> x, y = Ints('x y')
+ >>> x < y
+ x < y
+ >>> y = Real('y')
+ >>> x < y
+ ToReal(x) < y
+ """
+ a, b = _coerce_exprs(self, other)
+ return BoolRef(Z3_mk_lt(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __gt__(self, other):
+ """Create the Z3 expression `other > self`.
+
+ >>> x, y = Ints('x y')
+ >>> x > y
+ x > y
+ >>> y = Real('y')
+ >>> x > y
+ ToReal(x) > y
+ """
+ a, b = _coerce_exprs(self, other)
+ return BoolRef(Z3_mk_gt(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __ge__(self, other):
+ """Create the Z3 expression `other >= self`.
+
+ >>> x, y = Ints('x y')
+ >>> x >= y
+ x >= y
+ >>> y = Real('y')
+ >>> x >= y
+ ToReal(x) >= y
+ """
+ a, b = _coerce_exprs(self, other)
+ return BoolRef(Z3_mk_ge(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+def is_arith(a):
+ """Return `True` if `a` is an arithmetical expression.
+
+ >>> x = Int('x')
+ >>> is_arith(x)
+ True
+ >>> is_arith(x + 1)
+ True
+ >>> is_arith(1)
+ False
+ >>> is_arith(IntVal(1))
+ True
+ >>> y = Real('y')
+ >>> is_arith(y)
+ True
+ >>> is_arith(y + 1)
+ True
+ """
+ return isinstance(a, ArithRef)
+
+def is_int(a):
+ """Return `True` if `a` is an integer expression.
+
+ >>> x = Int('x')
+ >>> is_int(x + 1)
+ True
+ >>> is_int(1)
+ False
+ >>> is_int(IntVal(1))
+ True
+ >>> y = Real('y')
+ >>> is_int(y)
+ False
+ >>> is_int(y + 1)
+ False
+ """
+ return is_arith(a) and a.is_int()
+
+def is_real(a):
+ """Return `True` if `a` is a real expression.
+
+ >>> x = Int('x')
+ >>> is_real(x + 1)
+ False
+ >>> y = Real('y')
+ >>> is_real(y)
+ True
+ >>> is_real(y + 1)
+ True
+ >>> is_real(1)
+ False
+ >>> is_real(RealVal(1))
+ True
+ """
+ return is_arith(a) and a.is_real()
+
+def _is_numeral(ctx, a):
+ return Z3_is_numeral_ast(ctx.ref(), a)
+
+def _is_algebraic(ctx, a):
+ return Z3_is_algebraic_number(ctx.ref(), a)
+
+def is_int_value(a):
+ """Return `True` if `a` is an integer value of sort Int.
+
+ >>> is_int_value(IntVal(1))
+ True
+ >>> is_int_value(1)
+ False
+ >>> is_int_value(Int('x'))
+ False
+ >>> n = Int('x') + 1
+ >>> n
+ x + 1
+ >>> n.arg(1)
+ 1
+ >>> is_int_value(n.arg(1))
+ True
+ >>> is_int_value(RealVal("1/3"))
+ False
+ >>> is_int_value(RealVal(1))
+ False
+ """
+ return is_arith(a) and a.is_int() and _is_numeral(a.ctx, a.as_ast())
+
+def is_rational_value(a):
+ """Return `True` if `a` is rational value of sort Real.
+
+ >>> is_rational_value(RealVal(1))
+ True
+ >>> is_rational_value(RealVal("3/5"))
+ True
+ >>> is_rational_value(IntVal(1))
+ False
+ >>> is_rational_value(1)
+ False
+ >>> n = Real('x') + 1
+ >>> n.arg(1)
+ 1
+ >>> is_rational_value(n.arg(1))
+ True
+ >>> is_rational_value(Real('x'))
+ False
+ """
+ return is_arith(a) and a.is_real() and _is_numeral(a.ctx, a.as_ast())
+
+def is_algebraic_value(a):
+ """Return `True` if `a` is an algerbraic value of sort Real.
+
+ >>> is_algebraic_value(RealVal("3/5"))
+ False
+ >>> n = simplify(Sqrt(2))
+ >>> n
+ 1.4142135623?
+ >>> is_algebraic_value(n)
+ True
+ """
+ return is_arith(a) and a.is_real() and _is_algebraic(a.ctx, a.as_ast())
+
+def is_add(a):
+ """Return `True` if `a` is an expression of the form b + c.
+
+ >>> x, y = Ints('x y')
+ >>> is_add(x + y)
+ True
+ >>> is_add(x - y)
+ False
+ """
+ return is_app_of(a, Z3_OP_ADD)
+
+def is_mul(a):
+ """Return `True` if `a` is an expression of the form b * c.
+
+ >>> x, y = Ints('x y')
+ >>> is_mul(x * y)
+ True
+ >>> is_mul(x - y)
+ False
+ """
+ return is_app_of(a, Z3_OP_MUL)
+
+def is_sub(a):
+ """Return `True` if `a` is an expression of the form b - c.
+
+ >>> x, y = Ints('x y')
+ >>> is_sub(x - y)
+ True
+ >>> is_sub(x + y)
+ False
+ """
+ return is_app_of(a, Z3_OP_SUB)
+
+def is_div(a):
+ """Return `True` if `a` is an expression of the form b / c.
+
+ >>> x, y = Reals('x y')
+ >>> is_div(x / y)
+ True
+ >>> is_div(x + y)
+ False
+ >>> x, y = Ints('x y')
+ >>> is_div(x / y)
+ False
+ >>> is_idiv(x / y)
+ True
+ """
+ return is_app_of(a, Z3_OP_DIV)
+
+def is_idiv(a):
+ """Return `True` if `a` is an expression of the form b div c.
+
+ >>> x, y = Ints('x y')
+ >>> is_idiv(x / y)
+ True
+ >>> is_idiv(x + y)
+ False
+ """
+ return is_app_of(a, Z3_OP_IDIV)
+
+def is_mod(a):
+ """Return `True` if `a` is an expression of the form b % c.
+
+ >>> x, y = Ints('x y')
+ >>> is_mod(x % y)
+ True
+ >>> is_mod(x + y)
+ False
+ """
+ return is_app_of(a, Z3_OP_MOD)
+
+def is_le(a):
+ """Return `True` if `a` is an expression of the form b <= c.
+
+ >>> x, y = Ints('x y')
+ >>> is_le(x <= y)
+ True
+ >>> is_le(x < y)
+ False
+ """
+ return is_app_of(a, Z3_OP_LE)
+
+def is_lt(a):
+ """Return `True` if `a` is an expression of the form b < c.
+
+ >>> x, y = Ints('x y')
+ >>> is_lt(x < y)
+ True
+ >>> is_lt(x == y)
+ False
+ """
+ return is_app_of(a, Z3_OP_LT)
+
+def is_ge(a):
+ """Return `True` if `a` is an expression of the form b >= c.
+
+ >>> x, y = Ints('x y')
+ >>> is_ge(x >= y)
+ True
+ >>> is_ge(x == y)
+ False
+ """
+ return is_app_of(a, Z3_OP_GE)
+
+def is_gt(a):
+ """Return `True` if `a` is an expression of the form b > c.
+
+ >>> x, y = Ints('x y')
+ >>> is_gt(x > y)
+ True
+ >>> is_gt(x == y)
+ False
+ """
+ return is_app_of(a, Z3_OP_GT)
+
+def is_is_int(a):
+ """Return `True` if `a` is an expression of the form IsInt(b).
+
+ >>> x = Real('x')
+ >>> is_is_int(IsInt(x))
+ True
+ >>> is_is_int(x)
+ False
+ """
+ return is_app_of(a, Z3_OP_IS_INT)
+
+def is_to_real(a):
+ """Return `True` if `a` is an expression of the form ToReal(b).
+
+ >>> x = Int('x')
+ >>> n = ToReal(x)
+ >>> n
+ ToReal(x)
+ >>> is_to_real(n)
+ True
+ >>> is_to_real(x)
+ False
+ """
+ return is_app_of(a, Z3_OP_TO_REAL)
+
+def is_to_int(a):
+ """Return `True` if `a` is an expression of the form ToInt(b).
+
+ >>> x = Real('x')
+ >>> n = ToInt(x)
+ >>> n
+ ToInt(x)
+ >>> is_to_int(n)
+ True
+ >>> is_to_int(x)
+ False
+ """
+ return is_app_of(a, Z3_OP_TO_INT)
+
+class IntNumRef(ArithRef):
+ """Integer values."""
+
+ def as_long(self):
+ """Return a Z3 integer numeral as a Python long (bignum) numeral.
+
+ >>> v = IntVal(1)
+ >>> v + 1
+ 1 + 1
+ >>> v.as_long() + 1
+ 2
+ """
+ if __debug__:
+ _z3_assert(self.is_int(), "Integer value expected")
+ return int(self.as_string())
+
+ def as_string(self):
+ """Return a Z3 integer numeral as a Python string.
+ >>> v = IntVal(100)
+ >>> v.as_string()
+ '100'
+ """
+ return Z3_get_numeral_string(self.ctx_ref(), self.as_ast())
+
+class RatNumRef(ArithRef):
+ """Rational values."""
+
+ def numerator(self):
+ """ Return the numerator of a Z3 rational numeral.
+
+ >>> is_rational_value(RealVal("3/5"))
+ True
+ >>> n = RealVal("3/5")
+ >>> n.numerator()
+ 3
+ >>> is_rational_value(Q(3,5))
+ True
+ >>> Q(3,5).numerator()
+ 3
+ """
+ return IntNumRef(Z3_get_numerator(self.ctx_ref(), self.as_ast()), self.ctx)
+
+ def denominator(self):
+ """ Return the denominator of a Z3 rational numeral.
+
+ >>> is_rational_value(Q(3,5))
+ True
+ >>> n = Q(3,5)
+ >>> n.denominator()
+ 5
+ """
+ return IntNumRef(Z3_get_denominator(self.ctx_ref(), self.as_ast()), self.ctx)
+
+ def numerator_as_long(self):
+ """ Return the numerator as a Python long.
+
+ >>> v = RealVal(10000000000)
+ >>> v
+ 10000000000
+ >>> v + 1
+ 10000000000 + 1
+ >>> v.numerator_as_long() + 1 == 10000000001
+ True
+ """
+ return self.numerator().as_long()
+
+ def denominator_as_long(self):
+ """ Return the denominator as a Python long.
+
+ >>> v = RealVal("1/3")
+ >>> v
+ 1/3
+ >>> v.denominator_as_long()
+ 3
+ """
+ return self.denominator().as_long()
+
+ def as_decimal(self, prec):
+ """ Return a Z3 rational value as a string in decimal notation using at most `prec` decimal places.
+
+ >>> v = RealVal("1/5")
+ >>> v.as_decimal(3)
+ '0.2'
+ >>> v = RealVal("1/3")
+ >>> v.as_decimal(3)
+ '0.333?'
+ """
+ return Z3_get_numeral_decimal_string(self.ctx_ref(), self.as_ast(), prec)
+
+ def as_string(self):
+ """Return a Z3 rational numeral as a Python string.
+
+ >>> v = Q(3,6)
+ >>> v.as_string()
+ '1/2'
+ """
+ return Z3_get_numeral_string(self.ctx_ref(), self.as_ast())
+
+ def as_fraction(self):
+ """Return a Z3 rational as a Python Fraction object.
+
+ >>> v = RealVal("1/5")
+ >>> v.as_fraction()
+ Fraction(1, 5)
+ """
+ return Fraction(self.numerator_as_long(), self.denominator_as_long())
+
+class AlgebraicNumRef(ArithRef):
+ """Algebraic irrational values."""
+
+ def approx(self, precision=10):
+ """Return a Z3 rational number that approximates the algebraic number `self`.
+ The result `r` is such that |r - self| <= 1/10^precision
+
+ >>> x = simplify(Sqrt(2))
+ >>> x.approx(20)
+ 6838717160008073720548335/4835703278458516698824704
+ >>> x.approx(5)
+ 2965821/2097152
+ """
+ return RatNumRef(Z3_get_algebraic_number_upper(self.ctx_ref(), self.as_ast(), precision), self.ctx)
+ def as_decimal(self, prec):
+ """Return a string representation of the algebraic number `self` in decimal notation using `prec` decimal places
+
+ >>> x = simplify(Sqrt(2))
+ >>> x.as_decimal(10)
+ '1.4142135623?'
+ >>> x.as_decimal(20)
+ '1.41421356237309504880?'
+ """
+ return Z3_get_numeral_decimal_string(self.ctx_ref(), self.as_ast(), prec)
+
+def _py2expr(a, ctx=None):
+ if isinstance(a, bool):
+ return BoolVal(a, ctx)
+ if _is_int(a):
+ return IntVal(a, ctx)
+ if isinstance(a, float):
+ return RealVal(a, ctx)
+ if __debug__:
+ _z3_assert(False, "Python bool, int, long or float expected")
+
+def IntSort(ctx=None):
+ """Return the integer sort in the given context. If `ctx=None`, then the global context is used.
+
+ >>> IntSort()
+ Int
+ >>> x = Const('x', IntSort())
+ >>> is_int(x)
+ True
+ >>> x.sort() == IntSort()
+ True
+ >>> x.sort() == BoolSort()
+ False
+ """
+ ctx = _get_ctx(ctx)
+ return ArithSortRef(Z3_mk_int_sort(ctx.ref()), ctx)
+
+def RealSort(ctx=None):
+ """Return the real sort in the given context. If `ctx=None`, then the global context is used.
+
+ >>> RealSort()
+ Real
+ >>> x = Const('x', RealSort())
+ >>> is_real(x)
+ True
+ >>> is_int(x)
+ False
+ >>> x.sort() == RealSort()
+ True
+ """
+ ctx = _get_ctx(ctx)
+ return ArithSortRef(Z3_mk_real_sort(ctx.ref()), ctx)
+
+def _to_int_str(val):
+ if isinstance(val, float):
+ return str(int(val))
+ elif isinstance(val, bool):
+ if val:
+ return "1"
+ else:
+ return "0"
+ elif _is_int(val):
+ return str(val)
+ elif isinstance(val, str):
+ return val
+ if __debug__:
+ _z3_assert(False, "Python value cannot be used as a Z3 integer")
+
+def IntVal(val, ctx=None):
+ """Return a Z3 integer value. If `ctx=None`, then the global context is used.
+
+ >>> IntVal(1)
+ 1
+ >>> IntVal("100")
+ 100
+ """
+ ctx = _get_ctx(ctx)
+ return IntNumRef(Z3_mk_numeral(ctx.ref(), _to_int_str(val), IntSort(ctx).ast), ctx)
+
+def RealVal(val, ctx=None):
+ """Return a Z3 real value.
+
+ `val` may be a Python int, long, float or string representing a number in decimal or rational notation.
+ If `ctx=None`, then the global context is used.
+
+ >>> RealVal(1)
+ 1
+ >>> RealVal(1).sort()
+ Real
+ >>> RealVal("3/5")
+ 3/5
+ >>> RealVal("1.5")
+ 3/2
+ """
+ ctx = _get_ctx(ctx)
+ return RatNumRef(Z3_mk_numeral(ctx.ref(), str(val), RealSort(ctx).ast), ctx)
+
+def RatVal(a, b, ctx=None):
+ """Return a Z3 rational a/b.
+
+ If `ctx=None`, then the global context is used.
+
+ >>> RatVal(3,5)
+ 3/5
+ >>> RatVal(3,5).sort()
+ Real
+ """
+ if __debug__:
+ _z3_assert(_is_int(a) or isinstance(a, str), "First argument cannot be converted into an integer")
+ _z3_assert(_is_int(b) or isinstance(b, str), "Second argument cannot be converted into an integer")
+ return simplify(RealVal(a, ctx)/RealVal(b, ctx))
+
+def Q(a, b, ctx=None):
+ """Return a Z3 rational a/b.
+
+ If `ctx=None`, then the global context is used.
+
+ >>> Q(3,5)
+ 3/5
+ >>> Q(3,5).sort()
+ Real
+ """
+ return simplify(RatVal(a, b))
+
+def Int(name, ctx=None):
+ """Return an integer constant named `name`. If `ctx=None`, then the global context is used.
+
+ >>> x = Int('x')
+ >>> is_int(x)
+ True
+ >>> is_int(x + 1)
+ True
+ """
+ ctx = _get_ctx(ctx)
+ return ArithRef(Z3_mk_const(ctx.ref(), to_symbol(name, ctx), IntSort(ctx).ast), ctx)
+
+def Ints(names, ctx=None):
+ """Return a tuple of Integer constants.
+
+ >>> x, y, z = Ints('x y z')
+ >>> Sum(x, y, z)
+ x + y + z
+ """
+ ctx = _get_ctx(ctx)
+ if isinstance(names, str):
+ names = names.split(" ")
+ return [Int(name, ctx) for name in names]
+
+def IntVector(prefix, sz, ctx=None):
+ """Return a list of integer constants of size `sz`.
+
+ >>> X = IntVector('x', 3)
+ >>> X
+ [x__0, x__1, x__2]
+ >>> Sum(X)
+ x__0 + x__1 + x__2
+ """
+ return [ Int('%s__%s' % (prefix, i)) for i in range(sz) ]
+
+def FreshInt(prefix='x', ctx=None):
+ """Return a fresh integer constant in the given context using the given prefix.
+
+ >>> x = FreshInt()
+ >>> y = FreshInt()
+ >>> eq(x, y)
+ False
+ >>> x.sort()
+ Int
+ """
+ ctx = _get_ctx(ctx)
+ return ArithRef(Z3_mk_fresh_const(ctx.ref(), prefix, IntSort(ctx).ast), ctx)
+
+def Real(name, ctx=None):
+ """Return a real constant named `name`. If `ctx=None`, then the global context is used.
+
+ >>> x = Real('x')
+ >>> is_real(x)
+ True
+ >>> is_real(x + 1)
+ True
+ """
+ ctx = _get_ctx(ctx)
+ return ArithRef(Z3_mk_const(ctx.ref(), to_symbol(name, ctx), RealSort(ctx).ast), ctx)
+
+def Reals(names, ctx=None):
+ """Return a tuple of real constants.
+
+ >>> x, y, z = Reals('x y z')
+ >>> Sum(x, y, z)
+ x + y + z
+ >>> Sum(x, y, z).sort()
+ Real
+ """
+ ctx = _get_ctx(ctx)
+ if isinstance(names, str):
+ names = names.split(" ")
+ return [Real(name, ctx) for name in names]
+
+def RealVector(prefix, sz, ctx=None):
+ """Return a list of real constants of size `sz`.
+
+ >>> X = RealVector('x', 3)
+ >>> X
+ [x__0, x__1, x__2]
+ >>> Sum(X)
+ x__0 + x__1 + x__2
+ >>> Sum(X).sort()
+ Real
+ """
+ return [ Real('%s__%s' % (prefix, i)) for i in range(sz) ]
+
+def FreshReal(prefix='b', ctx=None):
+ """Return a fresh real constant in the given context using the given prefix.
+
+ >>> x = FreshReal()
+ >>> y = FreshReal()
+ >>> eq(x, y)
+ False
+ >>> x.sort()
+ Real
+ """
+ ctx = _get_ctx(ctx)
+ return ArithRef(Z3_mk_fresh_const(ctx.ref(), prefix, RealSort(ctx).ast), ctx)
+
+def ToReal(a):
+ """ Return the Z3 expression ToReal(a).
+
+ >>> x = Int('x')
+ >>> x.sort()
+ Int
+ >>> n = ToReal(x)
+ >>> n
+ ToReal(x)
+ >>> n.sort()
+ Real
+ """
+ if __debug__:
+ _z3_assert(a.is_int(), "Z3 integer expression expected.")
+ ctx = a.ctx
+ return ArithRef(Z3_mk_int2real(ctx.ref(), a.as_ast()), ctx)
+
+def ToInt(a):
+ """ Return the Z3 expression ToInt(a).
+
+ >>> x = Real('x')
+ >>> x.sort()
+ Real
+ >>> n = ToInt(x)
+ >>> n
+ ToInt(x)
+ >>> n.sort()
+ Int
+ """
+ if __debug__:
+ _z3_assert(a.is_real(), "Z3 real expression expected.")
+ ctx = a.ctx
+ return ArithRef(Z3_mk_real2int(ctx.ref(), a.as_ast()), ctx)
+
+def IsInt(a):
+ """ Return the Z3 predicate IsInt(a).
+
+ >>> x = Real('x')
+ >>> IsInt(x + "1/2")
+ IsInt(x + 1/2)
+ >>> solve(IsInt(x + "1/2"), x > 0, x < 1)
+ [x = 1/2]
+ >>> solve(IsInt(x + "1/2"), x > 0, x < 1, x != "1/2")
+ no solution
+ """
+ if __debug__:
+ _z3_assert(a.is_real(), "Z3 real expression expected.")
+ ctx = a.ctx
+ return BoolRef(Z3_mk_is_int(ctx.ref(), a.as_ast()), ctx)
+
+def Sqrt(a, ctx=None):
+ """ Return a Z3 expression which represents the square root of a.
+
+ >>> x = Real('x')
+ >>> Sqrt(x)
+ x**(1/2)
+ """
+ if not is_expr(a):
+ ctx = _get_ctx(ctx)
+ a = RealVal(a, ctx)
+ return a ** "1/2"
+
+def Cbrt(a, ctx=None):
+ """ Return a Z3 expression which represents the cubic root of a.
+
+ >>> x = Real('x')
+ >>> Cbrt(x)
+ x**(1/3)
+ """
+ if not is_expr(a):
+ ctx = _get_ctx(ctx)
+ a = RealVal(a, ctx)
+ return a ** "1/3"
+
+#########################################
+#
+# Bit-Vectors
+#
+#########################################
+
+class BitVecSortRef(SortRef):
+ """Bit-vector sort."""
+
+ def size(self):
+ """Return the size (number of bits) of the bit-vector sort `self`.
+
+ >>> b = BitVecSort(32)
+ >>> b.size()
+ 32
+ """
+ return int(Z3_get_bv_sort_size(self.ctx_ref(), self.ast))
+
+ def subsort(self, other):
+ return is_bv_sort(other) and self.size() < other.size()
+
+ def cast(self, val):
+ """Try to cast `val` as a Bit-Vector.
+
+ >>> b = BitVecSort(32)
+ >>> b.cast(10)
+ 10
+ >>> b.cast(10).sexpr()
+ '#x0000000a'
+ """
+ if is_expr(val):
+ if __debug__:
+ _z3_assert(self.ctx == val.ctx, "Context mismatch")
+ # Idea: use sign_extend if sort of val is a bitvector of smaller size
+ return val
+ else:
+ return BitVecVal(val, self)
+
+def is_bv_sort(s):
+ """Return True if `s` is a Z3 bit-vector sort.
+
+ >>> is_bv_sort(BitVecSort(32))
+ True
+ >>> is_bv_sort(IntSort())
+ False
+ """
+ return isinstance(s, BitVecSortRef)
+
+class BitVecRef(ExprRef):
+ """Bit-vector expressions."""
+
+ def sort(self):
+ """Return the sort of the bit-vector expression `self`.
+
+ >>> x = BitVec('x', 32)
+ >>> x.sort()
+ BitVec(32)
+ >>> x.sort() == BitVecSort(32)
+ True
+ """
+ return BitVecSortRef(Z3_get_sort(self.ctx_ref(), self.as_ast()), self.ctx)
+
+ def size(self):
+ """Return the number of bits of the bit-vector expression `self`.
+
+ >>> x = BitVec('x', 32)
+ >>> (x + 1).size()
+ 32
+ >>> Concat(x, x).size()
+ 64
+ """
+ return self.sort().size()
+
+ def __add__(self, other):
+ """Create the Z3 expression `self + other`.
+
+ >>> x = BitVec('x', 32)
+ >>> y = BitVec('y', 32)
+ >>> x + y
+ x + y
+ >>> (x + y).sort()
+ BitVec(32)
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvadd(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __radd__(self, other):
+ """Create the Z3 expression `other + self`.
+
+ >>> x = BitVec('x', 32)
+ >>> 10 + x
+ 10 + x
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvadd(self.ctx_ref(), b.as_ast(), a.as_ast()), self.ctx)
+
+ def __mul__(self, other):
+ """Create the Z3 expression `self * other`.
+
+ >>> x = BitVec('x', 32)
+ >>> y = BitVec('y', 32)
+ >>> x * y
+ x*y
+ >>> (x * y).sort()
+ BitVec(32)
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvmul(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __rmul__(self, other):
+ """Create the Z3 expression `other * self`.
+
+ >>> x = BitVec('x', 32)
+ >>> 10 * x
+ 10*x
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvmul(self.ctx_ref(), b.as_ast(), a.as_ast()), self.ctx)
+
+ def __sub__(self, other):
+ """Create the Z3 expression `self - other`.
+
+ >>> x = BitVec('x', 32)
+ >>> y = BitVec('y', 32)
+ >>> x - y
+ x - y
+ >>> (x - y).sort()
+ BitVec(32)
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvsub(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __rsub__(self, other):
+ """Create the Z3 expression `other - self`.
+
+ >>> x = BitVec('x', 32)
+ >>> 10 - x
+ 10 - x
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvsub(self.ctx_ref(), b.as_ast(), a.as_ast()), self.ctx)
+
+ def __or__(self, other):
+ """Create the Z3 expression bitwise-or `self | other`.
+
+ >>> x = BitVec('x', 32)
+ >>> y = BitVec('y', 32)
+ >>> x | y
+ x | y
+ >>> (x | y).sort()
+ BitVec(32)
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvor(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __ror__(self, other):
+ """Create the Z3 expression bitwise-or `other | self`.
+
+ >>> x = BitVec('x', 32)
+ >>> 10 | x
+ 10 | x
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvor(self.ctx_ref(), b.as_ast(), a.as_ast()), self.ctx)
+
+ def __and__(self, other):
+ """Create the Z3 expression bitwise-and `self & other`.
+
+ >>> x = BitVec('x', 32)
+ >>> y = BitVec('y', 32)
+ >>> x & y
+ x & y
+ >>> (x & y).sort()
+ BitVec(32)
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvand(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __rand__(self, other):
+ """Create the Z3 expression bitwise-or `other & self`.
+
+ >>> x = BitVec('x', 32)
+ >>> 10 & x
+ 10 & x
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvand(self.ctx_ref(), b.as_ast(), a.as_ast()), self.ctx)
+
+ def __xor__(self, other):
+ """Create the Z3 expression bitwise-xor `self ^ other`.
+
+ >>> x = BitVec('x', 32)
+ >>> y = BitVec('y', 32)
+ >>> x ^ y
+ x ^ y
+ >>> (x ^ y).sort()
+ BitVec(32)
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvxor(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __rxor__(self, other):
+ """Create the Z3 expression bitwise-xor `other ^ self`.
+
+ >>> x = BitVec('x', 32)
+ >>> 10 ^ x
+ 10 ^ x
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvxor(self.ctx_ref(), b.as_ast(), a.as_ast()), self.ctx)
+
+ def __pos__(self):
+ """Return `self`.
+
+ >>> x = BitVec('x', 32)
+ >>> +x
+ x
+ """
+ return self
+
+ def __neg__(self):
+ """Return an expression representing `-self`.
+
+ >>> x = BitVec('x', 32)
+ >>> -x
+ -x
+ >>> simplify(-(-x))
+ x
+ """
+ return BitVecRef(Z3_mk_bvneg(self.ctx_ref(), self.as_ast()), self.ctx)
+
+ def __invert__(self):
+ """Create the Z3 expression bitwise-not `~self`.
+
+ >>> x = BitVec('x', 32)
+ >>> ~x
+ ~x
+ >>> simplify(~(~x))
+ x
+ """
+ return BitVecRef(Z3_mk_bvnot(self.ctx_ref(), self.as_ast()), self.ctx)
+
+ def __div__(self, other):
+ """Create the Z3 expression (signed) division `self / other`.
+
+ Use the function UDiv() for unsigned division.
+
+ >>> x = BitVec('x', 32)
+ >>> y = BitVec('y', 32)
+ >>> x / y
+ x/y
+ >>> (x / y).sort()
+ BitVec(32)
+ >>> (x / y).sexpr()
+ '(bvsdiv x y)'
+ >>> UDiv(x, y).sexpr()
+ '(bvudiv x y)'
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvsdiv(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __truediv__(self, other):
+ """Create the Z3 expression (signed) division `self / other`."""
+ return self.__div__(other)
+
+ def __rdiv__(self, other):
+ """Create the Z3 expression (signed) division `other / self`.
+
+ Use the function UDiv() for unsigned division.
+
+ >>> x = BitVec('x', 32)
+ >>> 10 / x
+ 10/x
+ >>> (10 / x).sexpr()
+ '(bvsdiv #x0000000a x)'
+ >>> UDiv(10, x).sexpr()
+ '(bvudiv #x0000000a x)'
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvsdiv(self.ctx_ref(), b.as_ast(), a.as_ast()), self.ctx)
+
+ def __rtruediv__(self, other):
+ """Create the Z3 expression (signed) division `other / self`."""
+ return self.__rdiv__(other)
+
+ def __mod__(self, other):
+ """Create the Z3 expression (signed) mod `self % other`.
+
+ Use the function URem() for unsigned remainder, and SRem() for signed remainder.
+
+ >>> x = BitVec('x', 32)
+ >>> y = BitVec('y', 32)
+ >>> x % y
+ x%y
+ >>> (x % y).sort()
+ BitVec(32)
+ >>> (x % y).sexpr()
+ '(bvsmod x y)'
+ >>> URem(x, y).sexpr()
+ '(bvurem x y)'
+ >>> SRem(x, y).sexpr()
+ '(bvsrem x y)'
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvsmod(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __rmod__(self, other):
+ """Create the Z3 expression (signed) mod `other % self`.
+
+ Use the function URem() for unsigned remainder, and SRem() for signed remainder.
+
+ >>> x = BitVec('x', 32)
+ >>> 10 % x
+ 10%x
+ >>> (10 % x).sexpr()
+ '(bvsmod #x0000000a x)'
+ >>> URem(10, x).sexpr()
+ '(bvurem #x0000000a x)'
+ >>> SRem(10, x).sexpr()
+ '(bvsrem #x0000000a x)'
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvsmod(self.ctx_ref(), b.as_ast(), a.as_ast()), self.ctx)
+
+ def __le__(self, other):
+ """Create the Z3 expression (signed) `other <= self`.
+
+ Use the function ULE() for unsigned less than or equal to.
+
+ >>> x, y = BitVecs('x y', 32)
+ >>> x <= y
+ x <= y
+ >>> (x <= y).sexpr()
+ '(bvsle x y)'
+ >>> ULE(x, y).sexpr()
+ '(bvule x y)'
+ """
+ a, b = _coerce_exprs(self, other)
+ return BoolRef(Z3_mk_bvsle(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __lt__(self, other):
+ """Create the Z3 expression (signed) `other < self`.
+
+ Use the function ULT() for unsigned less than.
+
+ >>> x, y = BitVecs('x y', 32)
+ >>> x < y
+ x < y
+ >>> (x < y).sexpr()
+ '(bvslt x y)'
+ >>> ULT(x, y).sexpr()
+ '(bvult x y)'
+ """
+ a, b = _coerce_exprs(self, other)
+ return BoolRef(Z3_mk_bvslt(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __gt__(self, other):
+ """Create the Z3 expression (signed) `other > self`.
+
+ Use the function UGT() for unsigned greater than.
+
+ >>> x, y = BitVecs('x y', 32)
+ >>> x > y
+ x > y
+ >>> (x > y).sexpr()
+ '(bvsgt x y)'
+ >>> UGT(x, y).sexpr()
+ '(bvugt x y)'
+ """
+ a, b = _coerce_exprs(self, other)
+ return BoolRef(Z3_mk_bvsgt(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __ge__(self, other):
+ """Create the Z3 expression (signed) `other >= self`.
+
+ Use the function UGE() for unsigned greater than or equal to.
+
+ >>> x, y = BitVecs('x y', 32)
+ >>> x >= y
+ x >= y
+ >>> (x >= y).sexpr()
+ '(bvsge x y)'
+ >>> UGE(x, y).sexpr()
+ '(bvuge x y)'
+ """
+ a, b = _coerce_exprs(self, other)
+ return BoolRef(Z3_mk_bvsge(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __rshift__(self, other):
+ """Create the Z3 expression (arithmetical) right shift `self >> other`
+
+ Use the function LShR() for the right logical shift
+
+ >>> x, y = BitVecs('x y', 32)
+ >>> x >> y
+ x >> y
+ >>> (x >> y).sexpr()
+ '(bvashr x y)'
+ >>> LShR(x, y).sexpr()
+ '(bvlshr x y)'
+ >>> BitVecVal(4, 3)
+ 4
+ >>> BitVecVal(4, 3).as_signed_long()
+ -4
+ >>> simplify(BitVecVal(4, 3) >> 1).as_signed_long()
+ -2
+ >>> simplify(BitVecVal(4, 3) >> 1)
+ 6
+ >>> simplify(LShR(BitVecVal(4, 3), 1))
+ 2
+ >>> simplify(BitVecVal(2, 3) >> 1)
+ 1
+ >>> simplify(LShR(BitVecVal(2, 3), 1))
+ 1
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvashr(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __lshift__(self, other):
+ """Create the Z3 expression left shift `self << other`
+
+ >>> x, y = BitVecs('x y', 32)
+ >>> x << y
+ x << y
+ >>> (x << y).sexpr()
+ '(bvshl x y)'
+ >>> simplify(BitVecVal(2, 3) << 1)
+ 4
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvshl(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
+
+ def __rrshift__(self, other):
+ """Create the Z3 expression (arithmetical) right shift `other` >> `self`.
+
+ Use the function LShR() for the right logical shift
+
+ >>> x = BitVec('x', 32)
+ >>> 10 >> x
+ 10 >> x
+ >>> (10 >> x).sexpr()
+ '(bvashr #x0000000a x)'
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvashr(self.ctx_ref(), b.as_ast(), a.as_ast()), self.ctx)
+
+ def __rlshift__(self, other):
+ """Create the Z3 expression left shift `other << self`.
+
+ Use the function LShR() for the right logical shift
+
+ >>> x = BitVec('x', 32)
+ >>> 10 << x
+ 10 << x
+ >>> (10 << x).sexpr()
+ '(bvshl #x0000000a x)'
+ """
+ a, b = _coerce_exprs(self, other)
+ return BitVecRef(Z3_mk_bvshl(self.ctx_ref(), b.as_ast(), a.as_ast()), self.ctx)
+
+class BitVecNumRef(BitVecRef):
+ """Bit-vector values."""
+
+ def as_long(self):
+ """Return a Z3 bit-vector numeral as a Python long (bignum) numeral.
+
+ >>> v = BitVecVal(0xbadc0de, 32)
+ >>> v
+ 195936478
+ >>> print("0x%.8x" % v.as_long())
+ 0x0badc0de
+ """
+ return int(self.as_string())
+
+ def as_signed_long(self):
+ """Return a Z3 bit-vector numeral as a Python long (bignum) numeral. The most significant bit is assumed to be the sign.
+
+ >>> BitVecVal(4, 3).as_signed_long()
+ -4
+ >>> BitVecVal(7, 3).as_signed_long()
+ -1
+ >>> BitVecVal(3, 3).as_signed_long()
+ 3
+ >>> BitVecVal(2**32 - 1, 32).as_signed_long()
+ -1
+ >>> BitVecVal(2**64 - 1, 64).as_signed_long()
+ -1
+ """
+ sz = self.size()
+ val = self.as_long()
+ if val >= 2**(sz - 1):
+ val = val - 2**sz
+ if val < -2**(sz - 1):
+ val = val + 2**sz
+ return int(val)
+
+ def as_string(self):
+ return Z3_get_numeral_string(self.ctx_ref(), self.as_ast())
+
+def is_bv(a):
+ """Return `True` if `a` is a Z3 bit-vector expression.
+
+ >>> b = BitVec('b', 32)
+ >>> is_bv(b)
+ True
+ >>> is_bv(b + 10)
+ True
+ >>> is_bv(Int('x'))
+ False
+ """
+ return isinstance(a, BitVecRef)
+
+def is_bv_value(a):
+ """Return `True` if `a` is a Z3 bit-vector numeral value.
+
+ >>> b = BitVec('b', 32)
+ >>> is_bv_value(b)
+ False
+ >>> b = BitVecVal(10, 32)
+ >>> b
+ 10
+ >>> is_bv_value(b)
+ True
+ """
+ return is_bv(a) and _is_numeral(a.ctx, a.as_ast())
+
+def BV2Int(a, is_signed=False):
+ """Return the Z3 expression BV2Int(a).
+
+ >>> b = BitVec('b', 3)
+ >>> BV2Int(b).sort()
+ Int
+ >>> x = Int('x')
+ >>> x > BV2Int(b)
+ x > BV2Int(b)
+ >>> x > BV2Int(b, is_signed=False)
+ x > BV2Int(b)
+ >>> x > BV2Int(b, is_signed=True)
+ x > If(b < 0, BV2Int(b) - 8, BV2Int(b))
+ >>> solve(x > BV2Int(b), b == 1, x < 3)
+ [b = 1, x = 2]
+ """
+ if __debug__:
+ _z3_assert(is_bv(a), "Z3 bit-vector expression expected")
+ ctx = a.ctx
+ ## investigate problem with bv2int
+ return ArithRef(Z3_mk_bv2int(ctx.ref(), a.as_ast(), is_signed), ctx)
+
+def BitVecSort(sz, ctx=None):
+ """Return a Z3 bit-vector sort of the given size. If `ctx=None`, then the global context is used.
+
+ >>> Byte = BitVecSort(8)
+ >>> Word = BitVecSort(16)
+ >>> Byte
+ BitVec(8)
+ >>> x = Const('x', Byte)
+ >>> eq(x, BitVec('x', 8))
+ True
+ """
+ ctx = _get_ctx(ctx)
+ return BitVecSortRef(Z3_mk_bv_sort(ctx.ref(), sz), ctx)
+
+def BitVecVal(val, bv, ctx=None):
+ """Return a bit-vector value with the given number of bits. If `ctx=None`, then the global context is used.
+
+ >>> v = BitVecVal(10, 32)
+ >>> v
+ 10
+ >>> print("0x%.8x" % v.as_long())
+ 0x0000000a
+ """
+ if is_bv_sort(bv):
+ ctx = bv.ctx
+ return BitVecNumRef(Z3_mk_numeral(ctx.ref(), _to_int_str(val), bv.ast), ctx)
+ else:
+ ctx = _get_ctx(ctx)
+ return BitVecNumRef(Z3_mk_numeral(ctx.ref(), _to_int_str(val), BitVecSort(bv, ctx).ast), ctx)
+
+def BitVec(name, bv, ctx=None):
+ """Return a bit-vector constant named `name`. `bv` may be the number of bits of a bit-vector sort.
+ If `ctx=None`, then the global context is used.
+
+ >>> x = BitVec('x', 16)
+ >>> is_bv(x)
+ True
+ >>> x.size()
+ 16
+ >>> x.sort()
+ BitVec(16)
+ >>> word = BitVecSort(16)
+ >>> x2 = BitVec('x', word)
+ >>> eq(x, x2)
+ True
+ """
+ if isinstance(bv, BitVecSortRef):
+ ctx = bv.ctx
+ else:
+ ctx = _get_ctx(ctx)
+ bv = BitVecSort(bv, ctx)
+ return BitVecRef(Z3_mk_const(ctx.ref(), to_symbol(name, ctx), bv.ast), ctx)
+
+def BitVecs(names, bv, ctx=None):
+ """Return a tuple of bit-vector constants of size bv.
+
+ >>> x, y, z = BitVecs('x y z', 16)
+ >>> x.size()
+ 16
+ >>> x.sort()
+ BitVec(16)
+ >>> Sum(x, y, z)
+ 0 + x + y + z
+ >>> Product(x, y, z)
+ 1*x*y*z
+ >>> simplify(Product(x, y, z))
+ x*y*z
+ """
+ ctx = _get_ctx(ctx)
+ if isinstance(names, str):
+ names = names.split(" ")
+ return [BitVec(name, bv, ctx) for name in names]
+
+def Concat(*args):
+ """Create a Z3 bit-vector concatenation expression.
+
+ >>> v = BitVecVal(1, 4)
+ >>> Concat(v, v+1, v)
+ Concat(Concat(1, 1 + 1), 1)
+ >>> simplify(Concat(v, v+1, v))
+ 289
+ >>> print("%.3x" % simplify(Concat(v, v+1, v)).as_long())
+ 121
+ """
+ args = _get_args(args)
+ sz = len(args)
+ if __debug__:
+ _z3_assert(sz >= 2, "At least two arguments expected.")
+
+ ctx = None
+ for a in args:
+ if is_expr(a):
+ ctx = a.ctx
+ break
+ if is_seq(args[0]) or isinstance(args[0], str):
+ args = [_coerce_seq(s, ctx) for s in args]
+ if __debug__:
+ _z3_assert(all([is_seq(a) for a in args]), "All arguments must be sequence expressions.")
+ v = (Ast * sz)()
+ for i in range(sz):
+ v[i] = args[i].as_ast()
+ return SeqRef(Z3_mk_seq_concat(ctx.ref(), sz, v), ctx)
+
+ if is_re(args[0]):
+ if __debug__:
+ _z3_assert(all([is_re(a) for a in args]), "All arguments must be regular expressions.")
+ v = (Ast * sz)()
+ for i in range(sz):
+ v[i] = args[i].as_ast()
+ return ReRef(Z3_mk_re_concat(ctx.ref(), sz, v), ctx)
+
+ if __debug__:
+ _z3_assert(all([is_bv(a) for a in args]), "All arguments must be Z3 bit-vector expressions.")
+ r = args[0]
+ for i in range(sz - 1):
+ r = BitVecRef(Z3_mk_concat(ctx.ref(), r.as_ast(), args[i+1].as_ast()), ctx)
+ return r
+
+def Extract(high, low, a):
+ """Create a Z3 bit-vector extraction expression, or create a string extraction expression.
+
+ >>> x = BitVec('x', 8)
+ >>> Extract(6, 2, x)
+ Extract(6, 2, x)
+ >>> Extract(6, 2, x).sort()
+ BitVec(5)
+ >>> simplify(Extract(StringVal("abcd"),2,1))
+ "c"
+ """
+ if isinstance(high, str):
+ high = StringVal(high)
+ if is_seq(high):
+ s = high
+ offset = _py2expr(low, high.ctx)
+ length = _py2expr(a, high.ctx)
+
+ if __debug__:
+ _z3_assert(is_int(offset) and is_int(length), "Second and third arguments must be integers")
+ return SeqRef(Z3_mk_seq_extract(s.ctx_ref(), s.as_ast(), offset.as_ast(), length.as_ast()), s.ctx)
+ if __debug__:
+ _z3_assert(low <= high, "First argument must be greater than or equal to second argument")
+ _z3_assert(_is_int(high) and high >= 0 and _is_int(low) and low >= 0, "First and second arguments must be non negative integers")
+ _z3_assert(is_bv(a), "Third argument must be a Z3 Bitvector expression")
+ return BitVecRef(Z3_mk_extract(a.ctx_ref(), high, low, a.as_ast()), a.ctx)
+
+def _check_bv_args(a, b):
+ if __debug__:
+ _z3_assert(is_bv(a) or is_bv(b), "At least one of the arguments must be a Z3 bit-vector expression")
+
+def ULE(a, b):
+ """Create the Z3 expression (unsigned) `other <= self`.
+
+ Use the operator <= for signed less than or equal to.
+
+ >>> x, y = BitVecs('x y', 32)
+ >>> ULE(x, y)
+ ULE(x, y)
+ >>> (x <= y).sexpr()
+ '(bvsle x y)'
+ >>> ULE(x, y).sexpr()
+ '(bvule x y)'
+ """
+ _check_bv_args(a, b)
+ a, b = _coerce_exprs(a, b)
+ return BoolRef(Z3_mk_bvule(a.ctx_ref(), a.as_ast(), b.as_ast()), a.ctx)
+
+def ULT(a, b):
+ """Create the Z3 expression (unsigned) `other < self`.
+
+ Use the operator < for signed less than.
+
+ >>> x, y = BitVecs('x y', 32)
+ >>> ULT(x, y)
+ ULT(x, y)
+ >>> (x < y).sexpr()
+ '(bvslt x y)'
+ >>> ULT(x, y).sexpr()
+ '(bvult x y)'
+ """
+ _check_bv_args(a, b)
+ a, b = _coerce_exprs(a, b)
+ return BoolRef(Z3_mk_bvult(a.ctx_ref(), a.as_ast(), b.as_ast()), a.ctx)
+
+def UGE(a, b):
+ """Create the Z3 expression (unsigned) `other >= self`.
+
+ Use the operator >= for signed greater than or equal to.
+
+ >>> x, y = BitVecs('x y', 32)
+ >>> UGE(x, y)
+ UGE(x, y)
+ >>> (x >= y).sexpr()
+ '(bvsge x y)'
+ >>> UGE(x, y).sexpr()
+ '(bvuge x y)'
+ """
+ _check_bv_args(a, b)
+ a, b = _coerce_exprs(a, b)
+ return BoolRef(Z3_mk_bvuge(a.ctx_ref(), a.as_ast(), b.as_ast()), a.ctx)
+
+def UGT(a, b):
+ """Create the Z3 expression (unsigned) `other > self`.
+
+ Use the operator > for signed greater than.
+
+ >>> x, y = BitVecs('x y', 32)
+ >>> UGT(x, y)
+ UGT(x, y)
+ >>> (x > y).sexpr()
+ '(bvsgt x y)'
+ >>> UGT(x, y).sexpr()
+ '(bvugt x y)'
+ """
+ _check_bv_args(a, b)
+ a, b = _coerce_exprs(a, b)
+ return BoolRef(Z3_mk_bvugt(a.ctx_ref(), a.as_ast(), b.as_ast()), a.ctx)
+
+def UDiv(a, b):
+ """Create the Z3 expression (unsigned) division `self / other`.
+
+ Use the operator / for signed division.
+
+ >>> x = BitVec('x', 32)
+ >>> y = BitVec('y', 32)
+ >>> UDiv(x, y)
+ UDiv(x, y)
+ >>> UDiv(x, y).sort()
+ BitVec(32)
+ >>> (x / y).sexpr()
+ '(bvsdiv x y)'
+ >>> UDiv(x, y).sexpr()
+ '(bvudiv x y)'
+ """
+ _check_bv_args(a, b)
+ a, b = _coerce_exprs(a, b)
+ return BitVecRef(Z3_mk_bvudiv(a.ctx_ref(), a.as_ast(), b.as_ast()), a.ctx)
+
+def URem(a, b):
+ """Create the Z3 expression (unsigned) remainder `self % other`.
+
+ Use the operator % for signed modulus, and SRem() for signed remainder.
+
+ >>> x = BitVec('x', 32)
+ >>> y = BitVec('y', 32)
+ >>> URem(x, y)
+ URem(x, y)
+ >>> URem(x, y).sort()
+ BitVec(32)
+ >>> (x % y).sexpr()
+ '(bvsmod x y)'
+ >>> URem(x, y).sexpr()
+ '(bvurem x y)'
+ """
+ _check_bv_args(a, b)
+ a, b = _coerce_exprs(a, b)
+ return BitVecRef(Z3_mk_bvurem(a.ctx_ref(), a.as_ast(), b.as_ast()), a.ctx)
+
+def SRem(a, b):
+ """Create the Z3 expression signed remainder.
+
+ Use the operator % for signed modulus, and URem() for unsigned remainder.
+
+ >>> x = BitVec('x', 32)
+ >>> y = BitVec('y', 32)
+ >>> SRem(x, y)
+ SRem(x, y)
+ >>> SRem(x, y).sort()
+ BitVec(32)
+ >>> (x % y).sexpr()
+ '(bvsmod x y)'
+ >>> SRem(x, y).sexpr()
+ '(bvsrem x y)'
+ """
+ _check_bv_args(a, b)
+ a, b = _coerce_exprs(a, b)
+ return BitVecRef(Z3_mk_bvsrem(a.ctx_ref(), a.as_ast(), b.as_ast()), a.ctx)
+
+def LShR(a, b):
+ """Create the Z3 expression logical right shift.
+
+ Use the operator >> for the arithmetical right shift.
+
+ >>> x, y = BitVecs('x y', 32)
+ >>> LShR(x, y)
+ LShR(x, y)
+ >>> (x >> y).sexpr()
+ '(bvashr x y)'
+ >>> LShR(x, y).sexpr()
+ '(bvlshr x y)'
+ >>> BitVecVal(4, 3)
+ 4
+ >>> BitVecVal(4, 3).as_signed_long()
+ -4
+ >>> simplify(BitVecVal(4, 3) >> 1).as_signed_long()
+ -2
+ >>> simplify(BitVecVal(4, 3) >> 1)
+ 6
+ >>> simplify(LShR(BitVecVal(4, 3), 1))
+ 2
+ >>> simplify(BitVecVal(2, 3) >> 1)
+ 1
+ >>> simplify(LShR(BitVecVal(2, 3), 1))
+ 1
+ """
+ _check_bv_args(a, b)
+ a, b = _coerce_exprs(a, b)
+ return BitVecRef(Z3_mk_bvlshr(a.ctx_ref(), a.as_ast(), b.as_ast()), a.ctx)
+
+def RotateLeft(a, b):
+ """Return an expression representing `a` rotated to the left `b` times.
+
+ >>> a, b = BitVecs('a b', 16)
+ >>> RotateLeft(a, b)
+ RotateLeft(a, b)
+ >>> simplify(RotateLeft(a, 0))
+ a
+ >>> simplify(RotateLeft(a, 16))
+ a
+ """
+ _check_bv_args(a, b)
+ a, b = _coerce_exprs(a, b)
+ return BitVecRef(Z3_mk_ext_rotate_left(a.ctx_ref(), a.as_ast(), b.as_ast()), a.ctx)
+
+def RotateRight(a, b):
+ """Return an expression representing `a` rotated to the right `b` times.
+
+ >>> a, b = BitVecs('a b', 16)
+ >>> RotateRight(a, b)
+ RotateRight(a, b)
+ >>> simplify(RotateRight(a, 0))
+ a
+ >>> simplify(RotateRight(a, 16))
+ a
+ """
+ _check_bv_args(a, b)
+ a, b = _coerce_exprs(a, b)
+ return BitVecRef(Z3_mk_ext_rotate_right(a.ctx_ref(), a.as_ast(), b.as_ast()), a.ctx)
+
+def SignExt(n, a):
+ """Return a bit-vector expression with `n` extra sign-bits.
+
+ >>> x = BitVec('x', 16)
+ >>> n = SignExt(8, x)
+ >>> n.size()
+ 24
+ >>> n
+ SignExt(8, x)
+ >>> n.sort()
+ BitVec(24)
+ >>> v0 = BitVecVal(2, 2)
+ >>> v0
+ 2
+ >>> v0.size()
+ 2
+ >>> v = simplify(SignExt(6, v0))
+ >>> v
+ 254
+ >>> v.size()
+ 8
+ >>> print("%.x" % v.as_long())
+ fe
+ """
+ if __debug__:
+ _z3_assert(_is_int(n), "First argument must be an integer")
+ _z3_assert(is_bv(a), "Second argument must be a Z3 Bitvector expression")
+ return BitVecRef(Z3_mk_sign_ext(a.ctx_ref(), n, a.as_ast()), a.ctx)
+
+def ZeroExt(n, a):
+ """Return a bit-vector expression with `n` extra zero-bits.
+
+ >>> x = BitVec('x', 16)
+ >>> n = ZeroExt(8, x)
+ >>> n.size()
+ 24
+ >>> n
+ ZeroExt(8, x)
+ >>> n.sort()
+ BitVec(24)
+ >>> v0 = BitVecVal(2, 2)
+ >>> v0
+ 2
+ >>> v0.size()
+ 2
+ >>> v = simplify(ZeroExt(6, v0))
+ >>> v
+ 2
+ >>> v.size()
+ 8
+ """
+ if __debug__:
+ _z3_assert(_is_int(n), "First argument must be an integer")
+ _z3_assert(is_bv(a), "Second argument must be a Z3 Bitvector expression")
+ return BitVecRef(Z3_mk_zero_ext(a.ctx_ref(), n, a.as_ast()), a.ctx)
+
+def RepeatBitVec(n, a):
+ """Return an expression representing `n` copies of `a`.
+
+ >>> x = BitVec('x', 8)
+ >>> n = RepeatBitVec(4, x)
+ >>> n
+ RepeatBitVec(4, x)
+ >>> n.size()
+ 32
+ >>> v0 = BitVecVal(10, 4)
+ >>> print("%.x" % v0.as_long())
+ a
+ >>> v = simplify(RepeatBitVec(4, v0))
+ >>> v.size()
+ 16
+ >>> print("%.x" % v.as_long())
+ aaaa
+ """
+ if __debug__:
+ _z3_assert(_is_int(n), "First argument must be an integer")
+ _z3_assert(is_bv(a), "Second argument must be a Z3 Bitvector expression")
+ return BitVecRef(Z3_mk_repeat(a.ctx_ref(), n, a.as_ast()), a.ctx)
+
+def BVRedAnd(a):
+ """Return the reduction-and expression of `a`."""
+ if __debug__:
+ _z3_assert(is_bv(a), "First argument must be a Z3 Bitvector expression")
+ return BitVecRef(Z3_mk_bvredand(a.ctx_ref(), a.as_ast()), a.ctx)
+
+def BVRedOr(a):
+ """Return the reduction-or expression of `a`."""
+ if __debug__:
+ _z3_assert(is_bv(a), "First argument must be a Z3 Bitvector expression")
+ return BitVecRef(Z3_mk_bvredor(a.ctx_ref(), a.as_ast()), a.ctx)
+
+#########################################
+#
+# Arrays
+#
+#########################################
+
+class ArraySortRef(SortRef):
+ """Array sorts."""
+
+ def domain(self):
+ """Return the domain of the array sort `self`.
+
+ >>> A = ArraySort(IntSort(), BoolSort())
+ >>> A.domain()
+ Int
+ """
+ return _to_sort_ref(Z3_get_array_sort_domain(self.ctx_ref(), self.ast), self.ctx)
+
+ def range(self):
+ """Return the range of the array sort `self`.
+
+ >>> A = ArraySort(IntSort(), BoolSort())
+ >>> A.range()
+ Bool
+ """
+ return _to_sort_ref(Z3_get_array_sort_range(self.ctx_ref(), self.ast), self.ctx)
+
+class ArrayRef(ExprRef):
+ """Array expressions. """
+
+ def sort(self):
+ """Return the array sort of the array expression `self`.
+
+ >>> a = Array('a', IntSort(), BoolSort())
+ >>> a.sort()
+ Array(Int, Bool)
+ """
+ return ArraySortRef(Z3_get_sort(self.ctx_ref(), self.as_ast()), self.ctx)
+
+ def domain(self):
+ """Shorthand for `self.sort().domain()`.
+
+ >>> a = Array('a', IntSort(), BoolSort())
+ >>> a.domain()
+ Int
+ """
+ return self.sort().domain()
+
+ def range(self):
+ """Shorthand for `self.sort().range()`.
+
+ >>> a = Array('a', IntSort(), BoolSort())
+ >>> a.range()
+ Bool
+ """
+ return self.sort().range()
+
+ def __getitem__(self, arg):
+ """Return the Z3 expression `self[arg]`.
+
+ >>> a = Array('a', IntSort(), BoolSort())
+ >>> i = Int('i')
+ >>> a[i]
+ a[i]
+ >>> a[i].sexpr()
+ '(select a i)'
+ """
+ arg = self.domain().cast(arg)
+ return _to_expr_ref(Z3_mk_select(self.ctx_ref(), self.as_ast(), arg.as_ast()), self.ctx)
+
+ def default(self):
+ return _to_expr_ref(Z3_mk_array_default(self.ctx_ref(), self.as_ast()), self.ctx)
+
+
+def is_array(a):
+ """Return `True` if `a` is a Z3 array expression.
+
+ >>> a = Array('a', IntSort(), IntSort())
+ >>> is_array(a)
+ True
+ >>> is_array(Store(a, 0, 1))
+ True
+ >>> is_array(a[0])
+ False
+ """
+ return isinstance(a, ArrayRef)
+
+def is_const_array(a):
+ """Return `True` if `a` is a Z3 constant array.
+
+ >>> a = K(IntSort(), 10)
+ >>> is_const_array(a)
+ True
+ >>> a = Array('a', IntSort(), IntSort())
+ >>> is_const_array(a)
+ False
+ """
+ return is_app_of(a, Z3_OP_CONST_ARRAY)
+
+def is_K(a):
+ """Return `True` if `a` is a Z3 constant array.
+
+ >>> a = K(IntSort(), 10)
+ >>> is_K(a)
+ True
+ >>> a = Array('a', IntSort(), IntSort())
+ >>> is_K(a)
+ False
+ """
+ return is_app_of(a, Z3_OP_CONST_ARRAY)
+
+def is_map(a):
+ """Return `True` if `a` is a Z3 map array expression.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> b = Array('b', IntSort(), IntSort())
+ >>> a = Map(f, b)
+ >>> a
+ Map(f, b)
+ >>> is_map(a)
+ True
+ >>> is_map(b)
+ False
+ """
+ return is_app_of(a, Z3_OP_ARRAY_MAP)
+
+def is_default(a):
+ """Return `True` if `a` is a Z3 default array expression.
+ >>> d = Default(K(IntSort(), 10))
+ >>> is_default(d)
+ True
+ """
+ return is_app_of(a, Z3_OP_ARRAY_DEFAULT)
+
+def get_map_func(a):
+ """Return the function declaration associated with a Z3 map array expression.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> b = Array('b', IntSort(), IntSort())
+ >>> a = Map(f, b)
+ >>> eq(f, get_map_func(a))
+ True
+ >>> get_map_func(a)
+ f
+ >>> get_map_func(a)(0)
+ f(0)
+ """
+ if __debug__:
+ _z3_assert(is_map(a), "Z3 array map expression expected.")
+ return FuncDeclRef(Z3_to_func_decl(a.ctx_ref(), Z3_get_decl_ast_parameter(a.ctx_ref(), a.decl().ast, 0)), a.ctx)
+
+def ArraySort(d, r):
+ """Return the Z3 array sort with the given domain and range sorts.
+
+ >>> A = ArraySort(IntSort(), BoolSort())
+ >>> A
+ Array(Int, Bool)
+ >>> A.domain()
+ Int
+ >>> A.range()
+ Bool
+ >>> AA = ArraySort(IntSort(), A)
+ >>> AA
+ Array(Int, Array(Int, Bool))
+ """
+ if __debug__:
+ _z3_assert(is_sort(d), "Z3 sort expected")
+ _z3_assert(is_sort(r), "Z3 sort expected")
+ _z3_assert(d.ctx == r.ctx, "Context mismatch")
+ ctx = d.ctx
+ return ArraySortRef(Z3_mk_array_sort(ctx.ref(), d.ast, r.ast), ctx)
+
+def Array(name, dom, rng):
+ """Return an array constant named `name` with the given domain and range sorts.
+
+ >>> a = Array('a', IntSort(), IntSort())
+ >>> a.sort()
+ Array(Int, Int)
+ >>> a[0]
+ a[0]
+ """
+ s = ArraySort(dom, rng)
+ ctx = s.ctx
+ return ArrayRef(Z3_mk_const(ctx.ref(), to_symbol(name, ctx), s.ast), ctx)
+
+def Update(a, i, v):
+ """Return a Z3 store array expression.
+
+ >>> a = Array('a', IntSort(), IntSort())
+ >>> i, v = Ints('i v')
+ >>> s = Update(a, i, v)
+ >>> s.sort()
+ Array(Int, Int)
+ >>> prove(s[i] == v)
+ proved
+ >>> j = Int('j')
+ >>> prove(Implies(i != j, s[j] == a[j]))
+ proved
+ """
+ if __debug__:
+ _z3_assert(is_array(a), "First argument must be a Z3 array expression")
+ i = a.domain().cast(i)
+ v = a.range().cast(v)
+ ctx = a.ctx
+ return _to_expr_ref(Z3_mk_store(ctx.ref(), a.as_ast(), i.as_ast(), v.as_ast()), ctx)
+
+def Default(a):
+ """ Return a default value for array expression.
+ >>> b = K(IntSort(), 1)
+ >>> prove(Default(b) == 1)
+ proved
+ """
+ if __debug__:
+ _z3_assert(is_array(a), "First argument must be a Z3 array expression")
+ return a.default()
+
+
+def Store(a, i, v):
+ """Return a Z3 store array expression.
+
+ >>> a = Array('a', IntSort(), IntSort())
+ >>> i, v = Ints('i v')
+ >>> s = Store(a, i, v)
+ >>> s.sort()
+ Array(Int, Int)
+ >>> prove(s[i] == v)
+ proved
+ >>> j = Int('j')
+ >>> prove(Implies(i != j, s[j] == a[j]))
+ proved
+ """
+ return Update(a, i, v)
+
+def Select(a, i):
+ """Return a Z3 select array expression.
+
+ >>> a = Array('a', IntSort(), IntSort())
+ >>> i = Int('i')
+ >>> Select(a, i)
+ a[i]
+ >>> eq(Select(a, i), a[i])
+ True
+ """
+ if __debug__:
+ _z3_assert(is_array(a), "First argument must be a Z3 array expression")
+ return a[i]
+
+
+def Map(f, *args):
+ """Return a Z3 map array expression.
+
+ >>> f = Function('f', IntSort(), IntSort(), IntSort())
+ >>> a1 = Array('a1', IntSort(), IntSort())
+ >>> a2 = Array('a2', IntSort(), IntSort())
+ >>> b = Map(f, a1, a2)
+ >>> b
+ Map(f, a1, a2)
+ >>> prove(b[0] == f(a1[0], a2[0]))
+ proved
+ """
+ args = _get_args(args)
+ if __debug__:
+ _z3_assert(len(args) > 0, "At least one Z3 array expression expected")
+ _z3_assert(is_func_decl(f), "First argument must be a Z3 function declaration")
+ _z3_assert(all([is_array(a) for a in args]), "Z3 array expected expected")
+ _z3_assert(len(args) == f.arity(), "Number of arguments mismatch")
+ _args, sz = _to_ast_array(args)
+ ctx = f.ctx
+ return ArrayRef(Z3_mk_map(ctx.ref(), f.ast, sz, _args), ctx)
+
+def K(dom, v):
+ """Return a Z3 constant array expression.
+
+ >>> a = K(IntSort(), 10)
+ >>> a
+ K(Int, 10)
+ >>> a.sort()
+ Array(Int, Int)
+ >>> i = Int('i')
+ >>> a[i]
+ K(Int, 10)[i]
+ >>> simplify(a[i])
+ 10
+ """
+ if __debug__:
+ _z3_assert(is_sort(dom), "Z3 sort expected")
+ ctx = dom.ctx
+ if not is_expr(v):
+ v = _py2expr(v, ctx)
+ return ArrayRef(Z3_mk_const_array(ctx.ref(), dom.ast, v.as_ast()), ctx)
+
+def Ext(a, b):
+ """Return extensionality index for arrays.
+ """
+ if __debug__:
+ _z3_assert(is_array(a) and is_array(b))
+ return _to_expr_ref(Z3_mk_array_ext(ctx.ref(), a.as_ast(), b.as_ast()));
+
+def is_select(a):
+ """Return `True` if `a` is a Z3 array select application.
+
+ >>> a = Array('a', IntSort(), IntSort())
+ >>> is_select(a)
+ False
+ >>> i = Int('i')
+ >>> is_select(a[i])
+ True
+ """
+ return is_app_of(a, Z3_OP_SELECT)
+
+def is_store(a):
+ """Return `True` if `a` is a Z3 array store application.
+
+ >>> a = Array('a', IntSort(), IntSort())
+ >>> is_store(a)
+ False
+ >>> is_store(Store(a, 0, 1))
+ True
+ """
+ return is_app_of(a, Z3_OP_STORE)
+
+#########################################
+#
+# Datatypes
+#
+#########################################
+
+def _valid_accessor(acc):
+ """Return `True` if acc is pair of the form (String, Datatype or Sort). """
+ return isinstance(acc, tuple) and len(acc) == 2 and isinstance(acc[0], str) and (isinstance(acc[1], Datatype) or is_sort(acc[1]))
+
+class Datatype:
+ """Helper class for declaring Z3 datatypes.
+
+ >>> List = Datatype('List')
+ >>> List.declare('cons', ('car', IntSort()), ('cdr', List))
+ >>> List.declare('nil')
+ >>> List = List.create()
+ >>> # List is now a Z3 declaration
+ >>> List.nil
+ nil
+ >>> List.cons(10, List.nil)
+ cons(10, nil)
+ >>> List.cons(10, List.nil).sort()
+ List
+ >>> cons = List.cons
+ >>> nil = List.nil
+ >>> car = List.car
+ >>> cdr = List.cdr
+ >>> n = cons(1, cons(0, nil))
+ >>> n
+ cons(1, cons(0, nil))
+ >>> simplify(cdr(n))
+ cons(0, nil)
+ >>> simplify(car(n))
+ 1
+ """
+ def __init__(self, name, ctx=None):
+ self.ctx = _get_ctx(ctx)
+ self.name = name
+ self.constructors = []
+
+ def declare_core(self, name, rec_name, *args):
+ if __debug__:
+ _z3_assert(isinstance(name, str), "String expected")
+ _z3_assert(isinstance(rec_name, str), "String expected")
+ _z3_assert(all([_valid_accessor(a) for a in args]), "Valid list of accessors expected. An accessor is a pair of the form (String, Datatype|Sort)")
+ self.constructors.append((name, rec_name, args))
+
+ def declare(self, name, *args):
+ """Declare constructor named `name` with the given accessors `args`.
+ Each accessor is a pair `(name, sort)`, where `name` is a string and `sort` a Z3 sort or a reference to the datatypes being declared.
+
+ In the followin example `List.declare('cons', ('car', IntSort()), ('cdr', List))`
+ declares the constructor named `cons` that builds a new List using an integer and a List.
+ It also declares the accessors `car` and `cdr`. The accessor `car` extracts the integer of a `cons` cell,
+ and `cdr` the list of a `cons` cell. After all constructors were declared, we use the method create() to create
+ the actual datatype in Z3.
+
+ >>> List = Datatype('List')
+ >>> List.declare('cons', ('car', IntSort()), ('cdr', List))
+ >>> List.declare('nil')
+ >>> List = List.create()
+ """
+ if __debug__:
+ _z3_assert(isinstance(name, str), "String expected")
+ _z3_assert(name != "", "Constructor name cannot be empty")
+ return self.declare_core(name, "is_" + name, *args)
+
+ def __repr__(self):
+ return "Datatype(%s, %s)" % (self.name, self.constructors)
+
+ def create(self):
+ """Create a Z3 datatype based on the constructors declared using the mehtod `declare()`.
+
+ The function `CreateDatatypes()` must be used to define mutually recursive datatypes.
+
+ >>> List = Datatype('List')
+ >>> List.declare('cons', ('car', IntSort()), ('cdr', List))
+ >>> List.declare('nil')
+ >>> List = List.create()
+ >>> List.nil
+ nil
+ >>> List.cons(10, List.nil)
+ cons(10, nil)
+ """
+ return CreateDatatypes([self])[0]
+
+class ScopedConstructor:
+ """Auxiliary object used to create Z3 datatypes."""
+ def __init__(self, c, ctx):
+ self.c = c
+ self.ctx = ctx
+ def __del__(self):
+ if self.ctx.ref() is not None:
+ Z3_del_constructor(self.ctx.ref(), self.c)
+
+class ScopedConstructorList:
+ """Auxiliary object used to create Z3 datatypes."""
+ def __init__(self, c, ctx):
+ self.c = c
+ self.ctx = ctx
+ def __del__(self):
+ if self.ctx.ref() is not None:
+ Z3_del_constructor_list(self.ctx.ref(), self.c)
+
+def CreateDatatypes(*ds):
+ """Create mutually recursive Z3 datatypes using 1 or more Datatype helper objects.
+
+ In the following example we define a Tree-List using two mutually recursive datatypes.
+
+ >>> TreeList = Datatype('TreeList')
+ >>> Tree = Datatype('Tree')
+ >>> # Tree has two constructors: leaf and node
+ >>> Tree.declare('leaf', ('val', IntSort()))
+ >>> # a node contains a list of trees
+ >>> Tree.declare('node', ('children', TreeList))
+ >>> TreeList.declare('nil')
+ >>> TreeList.declare('cons', ('car', Tree), ('cdr', TreeList))
+ >>> Tree, TreeList = CreateDatatypes(Tree, TreeList)
+ >>> Tree.val(Tree.leaf(10))
+ val(leaf(10))
+ >>> simplify(Tree.val(Tree.leaf(10)))
+ 10
+ >>> n1 = Tree.node(TreeList.cons(Tree.leaf(10), TreeList.cons(Tree.leaf(20), TreeList.nil)))
+ >>> n1
+ node(cons(leaf(10), cons(leaf(20), nil)))
+ >>> n2 = Tree.node(TreeList.cons(n1, TreeList.nil))
+ >>> simplify(n2 == n1)
+ False
+ >>> simplify(TreeList.car(Tree.children(n2)) == n1)
+ True
+ """
+ ds = _get_args(ds)
+ if __debug__:
+ _z3_assert(len(ds) > 0, "At least one Datatype must be specified")
+ _z3_assert(all([isinstance(d, Datatype) for d in ds]), "Arguments must be Datatypes")
+ _z3_assert(all([d.ctx == ds[0].ctx for d in ds]), "Context mismatch")
+ _z3_assert(all([d.constructors != [] for d in ds]), "Non-empty Datatypes expected")
+ ctx = ds[0].ctx
+ num = len(ds)
+ names = (Symbol * num)()
+ out = (Sort * num)()
+ clists = (ConstructorList * num)()
+ to_delete = []
+ for i in range(num):
+ d = ds[i]
+ names[i] = to_symbol(d.name, ctx)
+ num_cs = len(d.constructors)
+ cs = (Constructor * num_cs)()
+ for j in range(num_cs):
+ c = d.constructors[j]
+ cname = to_symbol(c[0], ctx)
+ rname = to_symbol(c[1], ctx)
+ fs = c[2]
+ num_fs = len(fs)
+ fnames = (Symbol * num_fs)()
+ sorts = (Sort * num_fs)()
+ refs = (ctypes.c_uint * num_fs)()
+ for k in range(num_fs):
+ fname = fs[k][0]
+ ftype = fs[k][1]
+ fnames[k] = to_symbol(fname, ctx)
+ if isinstance(ftype, Datatype):
+ if __debug__:
+ _z3_assert(ds.count(ftype) == 1, "One and only one occurrence of each datatype is expected")
+ sorts[k] = None
+ refs[k] = ds.index(ftype)
+ else:
+ if __debug__:
+ _z3_assert(is_sort(ftype), "Z3 sort expected")
+ sorts[k] = ftype.ast
+ refs[k] = 0
+ cs[j] = Z3_mk_constructor(ctx.ref(), cname, rname, num_fs, fnames, sorts, refs)
+ to_delete.append(ScopedConstructor(cs[j], ctx))
+ clists[i] = Z3_mk_constructor_list(ctx.ref(), num_cs, cs)
+ to_delete.append(ScopedConstructorList(clists[i], ctx))
+ Z3_mk_datatypes(ctx.ref(), num, names, out, clists)
+ result = []
+ ## Create a field for every constructor, recognizer and accessor
+ for i in range(num):
+ dref = DatatypeSortRef(out[i], ctx)
+ num_cs = dref.num_constructors()
+ for j in range(num_cs):
+ cref = dref.constructor(j)
+ cref_name = cref.name()
+ cref_arity = cref.arity()
+ if cref.arity() == 0:
+ cref = cref()
+ setattr(dref, cref_name, cref)
+ rref = dref.recognizer(j)
+ setattr(dref, rref.name(), rref)
+ for k in range(cref_arity):
+ aref = dref.accessor(j, k)
+ setattr(dref, aref.name(), aref)
+ result.append(dref)
+ return tuple(result)
+
+class DatatypeSortRef(SortRef):
+ """Datatype sorts."""
+ def num_constructors(self):
+ """Return the number of constructors in the given Z3 datatype.
+
+ >>> List = Datatype('List')
+ >>> List.declare('cons', ('car', IntSort()), ('cdr', List))
+ >>> List.declare('nil')
+ >>> List = List.create()
+ >>> # List is now a Z3 declaration
+ >>> List.num_constructors()
+ 2
+ """
+ return int(Z3_get_datatype_sort_num_constructors(self.ctx_ref(), self.ast))
+
+ def constructor(self, idx):
+ """Return a constructor of the datatype `self`.
+
+ >>> List = Datatype('List')
+ >>> List.declare('cons', ('car', IntSort()), ('cdr', List))
+ >>> List.declare('nil')
+ >>> List = List.create()
+ >>> # List is now a Z3 declaration
+ >>> List.num_constructors()
+ 2
+ >>> List.constructor(0)
+ cons
+ >>> List.constructor(1)
+ nil
+ """
+ if __debug__:
+ _z3_assert(idx < self.num_constructors(), "Invalid constructor index")
+ return FuncDeclRef(Z3_get_datatype_sort_constructor(self.ctx_ref(), self.ast, idx), self.ctx)
+
+ def recognizer(self, idx):
+ """In Z3, each constructor has an associated recognizer predicate.
+
+ If the constructor is named `name`, then the recognizer `is_name`.
+
+ >>> List = Datatype('List')
+ >>> List.declare('cons', ('car', IntSort()), ('cdr', List))
+ >>> List.declare('nil')
+ >>> List = List.create()
+ >>> # List is now a Z3 declaration
+ >>> List.num_constructors()
+ 2
+ >>> List.recognizer(0)
+ is_cons
+ >>> List.recognizer(1)
+ is_nil
+ >>> simplify(List.is_nil(List.cons(10, List.nil)))
+ False
+ >>> simplify(List.is_cons(List.cons(10, List.nil)))
+ True
+ >>> l = Const('l', List)
+ >>> simplify(List.is_cons(l))
+ is_cons(l)
+ """
+ if __debug__:
+ _z3_assert(idx < self.num_constructors(), "Invalid recognizer index")
+ return FuncDeclRef(Z3_get_datatype_sort_recognizer(self.ctx_ref(), self.ast, idx), self.ctx)
+
+ def accessor(self, i, j):
+ """In Z3, each constructor has 0 or more accessor. The number of accessors is equal to the arity of the constructor.
+
+ >>> List = Datatype('List')
+ >>> List.declare('cons', ('car', IntSort()), ('cdr', List))
+ >>> List.declare('nil')
+ >>> List = List.create()
+ >>> List.num_constructors()
+ 2
+ >>> List.constructor(0)
+ cons
+ >>> num_accs = List.constructor(0).arity()
+ >>> num_accs
+ 2
+ >>> List.accessor(0, 0)
+ car
+ >>> List.accessor(0, 1)
+ cdr
+ >>> List.constructor(1)
+ nil
+ >>> num_accs = List.constructor(1).arity()
+ >>> num_accs
+ 0
+ """
+ if __debug__:
+ _z3_assert(i < self.num_constructors(), "Invalid constructor index")
+ _z3_assert(j < self.constructor(i).arity(), "Invalid accessor index")
+ return FuncDeclRef(Z3_get_datatype_sort_constructor_accessor(self.ctx_ref(), self.ast, i, j), self.ctx)
+
+class DatatypeRef(ExprRef):
+ """Datatype expressions."""
+ def sort(self):
+ """Return the datatype sort of the datatype expression `self`."""
+ return DatatypeSortRef(Z3_get_sort(self.ctx_ref(), self.as_ast()), self.ctx)
+
+def EnumSort(name, values, ctx=None):
+ """Return a new enumeration sort named `name` containing the given values.
+
+ The result is a pair (sort, list of constants).
+ Example:
+ >>> Color, (red, green, blue) = EnumSort('Color', ['red', 'green', 'blue'])
+ """
+ if __debug__:
+ _z3_assert(isinstance(name, str), "Name must be a string")
+ _z3_assert(all([isinstance(v, str) for v in values]), "Eumeration sort values must be strings")
+ _z3_assert(len(values) > 0, "At least one value expected")
+ ctx = _get_ctx(ctx)
+ num = len(values)
+ _val_names = (Symbol * num)()
+ for i in range(num):
+ _val_names[i] = to_symbol(values[i])
+ _values = (FuncDecl * num)()
+ _testers = (FuncDecl * num)()
+ name = to_symbol(name)
+ S = DatatypeSortRef(Z3_mk_enumeration_sort(ctx.ref(), name, num, _val_names, _values, _testers), ctx)
+ V = []
+ for i in range(num):
+ V.append(FuncDeclRef(_values[i], ctx))
+ V = [a() for a in V]
+ return S, V
+
+#########################################
+#
+# Parameter Sets
+#
+#########################################
+
+class ParamsRef:
+ """Set of parameters used to configure Solvers, Tactics and Simplifiers in Z3.
+
+ Consider using the function `args2params` to create instances of this object.
+ """
+ def __init__(self, ctx=None):
+ self.ctx = _get_ctx(ctx)
+ self.params = Z3_mk_params(self.ctx.ref())
+ Z3_params_inc_ref(self.ctx.ref(), self.params)
+
+ def __del__(self):
+ if self.ctx.ref() is not None:
+ Z3_params_dec_ref(self.ctx.ref(), self.params)
+
+ def set(self, name, val):
+ """Set parameter name with value val."""
+ if __debug__:
+ _z3_assert(isinstance(name, str), "parameter name must be a string")
+ name_sym = to_symbol(name, self.ctx)
+ if isinstance(val, bool):
+ Z3_params_set_bool(self.ctx.ref(), self.params, name_sym, val)
+ elif _is_int(val):
+ Z3_params_set_uint(self.ctx.ref(), self.params, name_sym, val)
+ elif isinstance(val, float):
+ Z3_params_set_double(self.ctx.ref(), self.params, name_sym, val)
+ elif isinstance(val, str):
+ Z3_params_set_symbol(self.ctx.ref(), self.params, name_sym, to_symbol(val, self.ctx))
+ else:
+ if __debug__:
+ _z3_assert(False, "invalid parameter value")
+
+ def __repr__(self):
+ return Z3_params_to_string(self.ctx.ref(), self.params)
+
+ def validate(self, ds):
+ _z3_assert(isinstance(ds, ParamDescrsRef), "parameter description set expected")
+ Z3_params_validate(self.ctx.ref(), self.params, ds.descr)
+
+def args2params(arguments, keywords, ctx=None):
+ """Convert python arguments into a Z3_params object.
+ A ':' is added to the keywords, and '_' is replaced with '-'
+
+ >>> args2params(['model', True, 'relevancy', 2], {'elim_and' : True})
+ (params model true relevancy 2 elim_and true)
+ """
+ if __debug__:
+ _z3_assert(len(arguments) % 2 == 0, "Argument list must have an even number of elements.")
+ prev = None
+ r = ParamsRef(ctx)
+ for a in arguments:
+ if prev is None:
+ prev = a
+ else:
+ r.set(prev, a)
+ prev = None
+ for k in keywords:
+ v = keywords[k]
+ r.set(k, v)
+ return r
+
+class ParamDescrsRef:
+ """Set of parameter descriptions for Solvers, Tactics and Simplifiers in Z3.
+ """
+ def __init__(self, descr, ctx=None):
+ _z3_assert(isinstance(descr, ParamDescrs), "parameter description object expected")
+ self.ctx = _get_ctx(ctx)
+ self.descr = descr
+ Z3_param_descrs_inc_ref(self.ctx.ref(), self.descr)
+
+ def __del__(self):
+ if self.ctx.ref() is not None:
+ Z3_param_descrs_dec_ref(self.ctx.ref(), self.descr)
+
+ def size(self):
+ """Return the size of in the parameter description `self`.
+ """
+ return int(Z3_param_descrs_size(self.ctx.ref(), self.descr))
+
+ def __len__(self):
+ """Return the size of in the parameter description `self`.
+ """
+ return self.size()
+
+ def get_name(self, i):
+ """Return the i-th parameter name in the parameter description `self`.
+ """
+ return _symbol2py(self.ctx, Z3_param_descrs_get_name(self.ctx.ref(), self.descr, i))
+
+ def get_kind(self, n):
+ """Return the kind of the parameter named `n`.
+ """
+ return Z3_param_descrs_get_kind(self.ctx.ref(), self.descr, to_symbol(n, self.ctx))
+
+ def get_documentation(self, n):
+ """Return the documentation string of the parameter named `n`.
+ """
+ return Z3_param_descrs_get_documentation(self.ctx.ref(), self.descr, to_symbol(n, self.ctx))
+
+ def __getitem__(self, arg):
+ if _is_int(arg):
+ return self.get_name(arg)
+ else:
+ return self.get_kind(arg)
+
+ def __repr__(self):
+ return Z3_param_descrs_to_string(self.ctx.ref(), self.descr)
+
+#########################################
+#
+# Goals
+#
+#########################################
+
+class Goal(Z3PPObject):
+ """Goal is a collection of constraints we want to find a solution or show to be unsatisfiable (infeasible).
+
+ Goals are processed using Tactics. A Tactic transforms a goal into a set of subgoals.
+ A goal has a solution if one of its subgoals has a solution.
+ A goal is unsatisfiable if all subgoals are unsatisfiable.
+ """
+
+ def __init__(self, models=True, unsat_cores=False, proofs=False, ctx=None, goal=None):
+ if __debug__:
+ _z3_assert(goal is None or ctx is not None, "If goal is different from None, then ctx must be also different from None")
+ self.ctx = _get_ctx(ctx)
+ self.goal = goal
+ if self.goal is None:
+ self.goal = Z3_mk_goal(self.ctx.ref(), models, unsat_cores, proofs)
+ Z3_goal_inc_ref(self.ctx.ref(), self.goal)
+
+ def __del__(self):
+ if self.goal is not None and self.ctx.ref() is not None:
+ Z3_goal_dec_ref(self.ctx.ref(), self.goal)
+
+ def depth(self):
+ """Return the depth of the goal `self`. The depth corresponds to the number of tactics applied to `self`.
+
+ >>> x, y = Ints('x y')
+ >>> g = Goal()
+ >>> g.add(x == 0, y >= x + 1)
+ >>> g.depth()
+ 0
+ >>> r = Then('simplify', 'solve-eqs')(g)
+ >>> # r has 1 subgoal
+ >>> len(r)
+ 1
+ >>> r[0].depth()
+ 2
+ """
+ return int(Z3_goal_depth(self.ctx.ref(), self.goal))
+
+ def inconsistent(self):
+ """Return `True` if `self` contains the `False` constraints.
+
+ >>> x, y = Ints('x y')
+ >>> g = Goal()
+ >>> g.inconsistent()
+ False
+ >>> g.add(x == 0, x == 1)
+ >>> g
+ [x == 0, x == 1]
+ >>> g.inconsistent()
+ False
+ >>> g2 = Tactic('propagate-values')(g)[0]
+ >>> g2.inconsistent()
+ True
+ """
+ return Z3_goal_inconsistent(self.ctx.ref(), self.goal)
+
+ def prec(self):
+ """Return the precision (under-approximation, over-approximation, or precise) of the goal `self`.
+
+ >>> g = Goal()
+ >>> g.prec() == Z3_GOAL_PRECISE
+ True
+ >>> x, y = Ints('x y')
+ >>> g.add(x == y + 1)
+ >>> g.prec() == Z3_GOAL_PRECISE
+ True
+ >>> t = With(Tactic('add-bounds'), add_bound_lower=0, add_bound_upper=10)
+ >>> g2 = t(g)[0]
+ >>> g2
+ [x == y + 1, x <= 10, x >= 0, y <= 10, y >= 0]
+ >>> g2.prec() == Z3_GOAL_PRECISE
+ False
+ >>> g2.prec() == Z3_GOAL_UNDER
+ True
+ """
+ return Z3_goal_precision(self.ctx.ref(), self.goal)
+
+ def precision(self):
+ """Alias for `prec()`.
+
+ >>> g = Goal()
+ >>> g.precision() == Z3_GOAL_PRECISE
+ True
+ """
+ return self.prec()
+
+ def size(self):
+ """Return the number of constraints in the goal `self`.
+
+ >>> g = Goal()
+ >>> g.size()
+ 0
+ >>> x, y = Ints('x y')
+ >>> g.add(x == 0, y > x)
+ >>> g.size()
+ 2
+ """
+ return int(Z3_goal_size(self.ctx.ref(), self.goal))
+
+ def __len__(self):
+ """Return the number of constraints in the goal `self`.
+
+ >>> g = Goal()
+ >>> len(g)
+ 0
+ >>> x, y = Ints('x y')
+ >>> g.add(x == 0, y > x)
+ >>> len(g)
+ 2
+ """
+ return self.size()
+
+ def get(self, i):
+ """Return a constraint in the goal `self`.
+
+ >>> g = Goal()
+ >>> x, y = Ints('x y')
+ >>> g.add(x == 0, y > x)
+ >>> g.get(0)
+ x == 0
+ >>> g.get(1)
+ y > x
+ """
+ return _to_expr_ref(Z3_goal_formula(self.ctx.ref(), self.goal, i), self.ctx)
+
+ def __getitem__(self, arg):
+ """Return a constraint in the goal `self`.
+
+ >>> g = Goal()
+ >>> x, y = Ints('x y')
+ >>> g.add(x == 0, y > x)
+ >>> g[0]
+ x == 0
+ >>> g[1]
+ y > x
+ """
+ if arg >= len(self):
+ raise IndexError
+ return self.get(arg)
+
+ def assert_exprs(self, *args):
+ """Assert constraints into the goal.
+
+ >>> x = Int('x')
+ >>> g = Goal()
+ >>> g.assert_exprs(x > 0, x < 2)
+ >>> g
+ [x > 0, x < 2]
+ """
+ args = _get_args(args)
+ s = BoolSort(self.ctx)
+ for arg in args:
+ arg = s.cast(arg)
+ Z3_goal_assert(self.ctx.ref(), self.goal, arg.as_ast())
+
+ def append(self, *args):
+ """Add constraints.
+
+ >>> x = Int('x')
+ >>> g = Goal()
+ >>> g.append(x > 0, x < 2)
+ >>> g
+ [x > 0, x < 2]
+ """
+ self.assert_exprs(*args)
+
+ def insert(self, *args):
+ """Add constraints.
+
+ >>> x = Int('x')
+ >>> g = Goal()
+ >>> g.insert(x > 0, x < 2)
+ >>> g
+ [x > 0, x < 2]
+ """
+ self.assert_exprs(*args)
+
+ def add(self, *args):
+ """Add constraints.
+
+ >>> x = Int('x')
+ >>> g = Goal()
+ >>> g.add(x > 0, x < 2)
+ >>> g
+ [x > 0, x < 2]
+ """
+ self.assert_exprs(*args)
+
+ def __repr__(self):
+ return obj_to_string(self)
+
+ def sexpr(self):
+ """Return a textual representation of the s-expression representing the goal."""
+ return Z3_goal_to_string(self.ctx.ref(), self.goal)
+
+ def translate(self, target):
+ """Copy goal `self` to context `target`.
+
+ >>> x = Int('x')
+ >>> g = Goal()
+ >>> g.add(x > 10)
+ >>> g
+ [x > 10]
+ >>> c2 = Context()
+ >>> g2 = g.translate(c2)
+ >>> g2
+ [x > 10]
+ >>> g.ctx == main_ctx()
+ True
+ >>> g2.ctx == c2
+ True
+ >>> g2.ctx == main_ctx()
+ False
+ """
+ if __debug__:
+ _z3_assert(isinstance(target, Context), "target must be a context")
+ return Goal(goal=Z3_goal_translate(self.ctx.ref(), self.goal, target.ref()), ctx=target)
+
+ def simplify(self, *arguments, **keywords):
+ """Return a new simplified goal.
+
+ This method is essentially invoking the simplify tactic.
+
+ >>> g = Goal()
+ >>> x = Int('x')
+ >>> g.add(x + 1 >= 2)
+ >>> g
+ [x + 1 >= 2]
+ >>> g2 = g.simplify()
+ >>> g2
+ [x >= 1]
+ >>> # g was not modified
+ >>> g
+ [x + 1 >= 2]
+ """
+ t = Tactic('simplify')
+ return t.apply(self, *arguments, **keywords)[0]
+
+ def as_expr(self):
+ """Return goal `self` as a single Z3 expression.
+
+ >>> x = Int('x')
+ >>> g = Goal()
+ >>> g.as_expr()
+ True
+ >>> g.add(x > 1)
+ >>> g.as_expr()
+ x > 1
+ >>> g.add(x < 10)
+ >>> g.as_expr()
+ And(x > 1, x < 10)
+ """
+ sz = len(self)
+ if sz == 0:
+ return BoolVal(True, self.ctx)
+ elif sz == 1:
+ return self.get(0)
+ else:
+ return And([ self.get(i) for i in range(len(self)) ], self.ctx)
+
+#########################################
+#
+# AST Vector
+#
+#########################################
+class AstVector(Z3PPObject):
+ """A collection (vector) of ASTs."""
+
+ def __init__(self, v=None, ctx=None):
+ self.vector = None
+ if v is None:
+ self.ctx = _get_ctx(ctx)
+ self.vector = Z3_mk_ast_vector(self.ctx.ref())
+ else:
+ self.vector = v
+ assert ctx is not None
+ self.ctx = ctx
+ Z3_ast_vector_inc_ref(self.ctx.ref(), self.vector)
+
+ def __del__(self):
+ if self.vector is not None and self.ctx.ref() is not None:
+ Z3_ast_vector_dec_ref(self.ctx.ref(), self.vector)
+
+ def __len__(self):
+ """Return the size of the vector `self`.
+
+ >>> A = AstVector()
+ >>> len(A)
+ 0
+ >>> A.push(Int('x'))
+ >>> A.push(Int('x'))
+ >>> len(A)
+ 2
+ """
+ return int(Z3_ast_vector_size(self.ctx.ref(), self.vector))
+
+ def __getitem__(self, i):
+ """Return the AST at position `i`.
+
+ >>> A = AstVector()
+ >>> A.push(Int('x') + 1)
+ >>> A.push(Int('y'))
+ >>> A[0]
+ x + 1
+ >>> A[1]
+ y
+ """
+ if i >= self.__len__():
+ raise IndexError
+ return _to_ast_ref(Z3_ast_vector_get(self.ctx.ref(), self.vector, i), self.ctx)
+
+ def __setitem__(self, i, v):
+ """Update AST at position `i`.
+
+ >>> A = AstVector()
+ >>> A.push(Int('x') + 1)
+ >>> A.push(Int('y'))
+ >>> A[0]
+ x + 1
+ >>> A[0] = Int('x')
+ >>> A[0]
+ x
+ """
+ if i >= self.__len__():
+ raise IndexError
+ Z3_ast_vector_set(self.ctx.ref(), self.vector, i, v.as_ast())
+
+ def push(self, v):
+ """Add `v` in the end of the vector.
+
+ >>> A = AstVector()
+ >>> len(A)
+ 0
+ >>> A.push(Int('x'))
+ >>> len(A)
+ 1
+ """
+ Z3_ast_vector_push(self.ctx.ref(), self.vector, v.as_ast())
+
+ def resize(self, sz):
+ """Resize the vector to `sz` elements.
+
+ >>> A = AstVector()
+ >>> A.resize(10)
+ >>> len(A)
+ 10
+ >>> for i in range(10): A[i] = Int('x')
+ >>> A[5]
+ x
+ """
+ Z3_ast_vector_resize(self.ctx.ref(), self.vector, sz)
+
+ def __contains__(self, item):
+ """Return `True` if the vector contains `item`.
+
+ >>> x = Int('x')
+ >>> A = AstVector()
+ >>> x in A
+ False
+ >>> A.push(x)
+ >>> x in A
+ True
+ >>> (x+1) in A
+ False
+ >>> A.push(x+1)
+ >>> (x+1) in A
+ True
+ >>> A
+ [x, x + 1]
+ """
+ for elem in self:
+ if elem.eq(item):
+ return True
+ return False
+
+ def translate(self, other_ctx):
+ """Copy vector `self` to context `other_ctx`.
+
+ >>> x = Int('x')
+ >>> A = AstVector()
+ >>> A.push(x)
+ >>> c2 = Context()
+ >>> B = A.translate(c2)
+ >>> B
+ [x]
+ """
+ return AstVector(Z3_ast_vector_translate(self.ctx.ref(), self.vector, other_ctx.ref()), other_ctx)
+
+ def __repr__(self):
+ return obj_to_string(self)
+
+ def sexpr(self):
+ """Return a textual representation of the s-expression representing the vector."""
+ return Z3_ast_vector_to_string(self.ctx.ref(), self.vector)
+
+#########################################
+#
+# AST Map
+#
+#########################################
+class AstMap:
+ """A mapping from ASTs to ASTs."""
+
+ def __init__(self, m=None, ctx=None):
+ self.map = None
+ if m is None:
+ self.ctx = _get_ctx(ctx)
+ self.map = Z3_mk_ast_map(self.ctx.ref())
+ else:
+ self.map = m
+ assert ctx is not None
+ self.ctx = ctx
+ Z3_ast_map_inc_ref(self.ctx.ref(), self.map)
+
+ def __del__(self):
+ if self.map is not None and self.ctx.ref() is not None:
+ Z3_ast_map_dec_ref(self.ctx.ref(), self.map)
+
+ def __len__(self):
+ """Return the size of the map.
+
+ >>> M = AstMap()
+ >>> len(M)
+ 0
+ >>> x = Int('x')
+ >>> M[x] = IntVal(1)
+ >>> len(M)
+ 1
+ """
+ return int(Z3_ast_map_size(self.ctx.ref(), self.map))
+
+ def __contains__(self, key):
+ """Return `True` if the map contains key `key`.
+
+ >>> M = AstMap()
+ >>> x = Int('x')
+ >>> M[x] = x + 1
+ >>> x in M
+ True
+ >>> x+1 in M
+ False
+ """
+ return Z3_ast_map_contains(self.ctx.ref(), self.map, key.as_ast())
+
+ def __getitem__(self, key):
+ """Retrieve the value associated with key `key`.
+
+ >>> M = AstMap()
+ >>> x = Int('x')
+ >>> M[x] = x + 1
+ >>> M[x]
+ x + 1
+ """
+ return _to_ast_ref(Z3_ast_map_find(self.ctx.ref(), self.map, key.as_ast()), self.ctx)
+
+ def __setitem__(self, k, v):
+ """Add/Update key `k` with value `v`.
+
+ >>> M = AstMap()
+ >>> x = Int('x')
+ >>> M[x] = x + 1
+ >>> len(M)
+ 1
+ >>> M[x]
+ x + 1
+ >>> M[x] = IntVal(1)
+ >>> M[x]
+ 1
+ """
+ Z3_ast_map_insert(self.ctx.ref(), self.map, k.as_ast(), v.as_ast())
+
+ def __repr__(self):
+ return Z3_ast_map_to_string(self.ctx.ref(), self.map)
+
+ def erase(self, k):
+ """Remove the entry associated with key `k`.
+
+ >>> M = AstMap()
+ >>> x = Int('x')
+ >>> M[x] = x + 1
+ >>> len(M)
+ 1
+ >>> M.erase(x)
+ >>> len(M)
+ 0
+ """
+ Z3_ast_map_erase(self.ctx.ref(), self.map, k.as_ast())
+
+ def reset(self):
+ """Remove all entries from the map.
+
+ >>> M = AstMap()
+ >>> x = Int('x')
+ >>> M[x] = x + 1
+ >>> M[x+x] = IntVal(1)
+ >>> len(M)
+ 2
+ >>> M.reset()
+ >>> len(M)
+ 0
+ """
+ Z3_ast_map_reset(self.ctx.ref(), self.map)
+
+ def keys(self):
+ """Return an AstVector containing all keys in the map.
+
+ >>> M = AstMap()
+ >>> x = Int('x')
+ >>> M[x] = x + 1
+ >>> M[x+x] = IntVal(1)
+ >>> M.keys()
+ [x, x + x]
+ """
+ return AstVector(Z3_ast_map_keys(self.ctx.ref(), self.map), self.ctx)
+
+#########################################
+#
+# Model
+#
+#########################################
+
+class FuncEntry:
+ """Store the value of the interpretation of a function in a particular point."""
+
+ def __init__(self, entry, ctx):
+ self.entry = entry
+ self.ctx = ctx
+ Z3_func_entry_inc_ref(self.ctx.ref(), self.entry)
+
+ def __del__(self):
+ if self.ctx.ref() is not None:
+ Z3_func_entry_dec_ref(self.ctx.ref(), self.entry)
+
+ def num_args(self):
+ """Return the number of arguments in the given entry.
+
+ >>> f = Function('f', IntSort(), IntSort(), IntSort())
+ >>> s = Solver()
+ >>> s.add(f(0, 1) == 10, f(1, 2) == 20, f(1, 0) == 10)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> f_i = m[f]
+ >>> f_i.num_entries()
+ 3
+ >>> e = f_i.entry(0)
+ >>> e.num_args()
+ 2
+ """
+ return int(Z3_func_entry_get_num_args(self.ctx.ref(), self.entry))
+
+ def arg_value(self, idx):
+ """Return the value of argument `idx`.
+
+ >>> f = Function('f', IntSort(), IntSort(), IntSort())
+ >>> s = Solver()
+ >>> s.add(f(0, 1) == 10, f(1, 2) == 20, f(1, 0) == 10)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> f_i = m[f]
+ >>> f_i.num_entries()
+ 3
+ >>> e = f_i.entry(0)
+ >>> e
+ [0, 1, 10]
+ >>> e.num_args()
+ 2
+ >>> e.arg_value(0)
+ 0
+ >>> e.arg_value(1)
+ 1
+ >>> try:
+ ... e.arg_value(2)
+ ... except IndexError:
+ ... print("index error")
+ index error
+ """
+ if idx >= self.num_args():
+ raise IndexError
+ return _to_expr_ref(Z3_func_entry_get_arg(self.ctx.ref(), self.entry, idx), self.ctx)
+
+ def value(self):
+ """Return the value of the function at point `self`.
+
+ >>> f = Function('f', IntSort(), IntSort(), IntSort())
+ >>> s = Solver()
+ >>> s.add(f(0, 1) == 10, f(1, 2) == 20, f(1, 0) == 10)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> f_i = m[f]
+ >>> f_i.num_entries()
+ 3
+ >>> e = f_i.entry(0)
+ >>> e
+ [0, 1, 10]
+ >>> e.num_args()
+ 2
+ >>> e.value()
+ 10
+ """
+ return _to_expr_ref(Z3_func_entry_get_value(self.ctx.ref(), self.entry), self.ctx)
+
+ def as_list(self):
+ """Return entry `self` as a Python list.
+ >>> f = Function('f', IntSort(), IntSort(), IntSort())
+ >>> s = Solver()
+ >>> s.add(f(0, 1) == 10, f(1, 2) == 20, f(1, 0) == 10)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> f_i = m[f]
+ >>> f_i.num_entries()
+ 3
+ >>> e = f_i.entry(0)
+ >>> e.as_list()
+ [0, 1, 10]
+ """
+ args = [ self.arg_value(i) for i in range(self.num_args())]
+ args.append(self.value())
+ return args
+
+ def __repr__(self):
+ return repr(self.as_list())
+
+class FuncInterp(Z3PPObject):
+ """Stores the interpretation of a function in a Z3 model."""
+
+ def __init__(self, f, ctx):
+ self.f = f
+ self.ctx = ctx
+ if self.f is not None:
+ Z3_func_interp_inc_ref(self.ctx.ref(), self.f)
+
+ def __del__(self):
+ if self.f is not None and self.ctx.ref() is not None:
+ Z3_func_interp_dec_ref(self.ctx.ref(), self.f)
+
+ def else_value(self):
+ """
+ Return the `else` value for a function interpretation.
+ Return None if Z3 did not specify the `else` value for
+ this object.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> s = Solver()
+ >>> s.add(f(0) == 1, f(1) == 1, f(2) == 0)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> m[f]
+ [0 -> 1, 1 -> 1, 2 -> 0, else -> 1]
+ >>> m[f].else_value()
+ 1
+ """
+ r = Z3_func_interp_get_else(self.ctx.ref(), self.f)
+ if r:
+ return _to_expr_ref(r, self.ctx)
+ else:
+ return None
+
+ def num_entries(self):
+ """Return the number of entries/points in the function interpretation `self`.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> s = Solver()
+ >>> s.add(f(0) == 1, f(1) == 1, f(2) == 0)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> m[f]
+ [0 -> 1, 1 -> 1, 2 -> 0, else -> 1]
+ >>> m[f].num_entries()
+ 3
+ """
+ return int(Z3_func_interp_get_num_entries(self.ctx.ref(), self.f))
+
+ def arity(self):
+ """Return the number of arguments for each entry in the function interpretation `self`.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> s = Solver()
+ >>> s.add(f(0) == 1, f(1) == 1, f(2) == 0)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> m[f].arity()
+ 1
+ """
+ return int(Z3_func_interp_get_arity(self.ctx.ref(), self.f))
+
+ def entry(self, idx):
+ """Return an entry at position `idx < self.num_entries()` in the function interpretation `self`.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> s = Solver()
+ >>> s.add(f(0) == 1, f(1) == 1, f(2) == 0)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> m[f]
+ [0 -> 1, 1 -> 1, 2 -> 0, else -> 1]
+ >>> m[f].num_entries()
+ 3
+ >>> m[f].entry(0)
+ [0, 1]
+ >>> m[f].entry(1)
+ [1, 1]
+ >>> m[f].entry(2)
+ [2, 0]
+ """
+ if idx >= self.num_entries():
+ raise IndexError
+ return FuncEntry(Z3_func_interp_get_entry(self.ctx.ref(), self.f, idx), self.ctx)
+
+ def as_list(self):
+ """Return the function interpretation as a Python list.
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> s = Solver()
+ >>> s.add(f(0) == 1, f(1) == 1, f(2) == 0)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> m[f]
+ [0 -> 1, 1 -> 1, 2 -> 0, else -> 1]
+ >>> m[f].as_list()
+ [[0, 1], [1, 1], [2, 0], 1]
+ """
+ r = [ self.entry(i).as_list() for i in range(self.num_entries())]
+ r.append(self.else_value())
+ return r
+
+ def __repr__(self):
+ return obj_to_string(self)
+
+class ModelRef(Z3PPObject):
+ """Model/Solution of a satisfiability problem (aka system of constraints)."""
+
+ def __init__(self, m, ctx):
+ assert ctx is not None
+ self.model = m
+ self.ctx = ctx
+ Z3_model_inc_ref(self.ctx.ref(), self.model)
+
+ def __del__(self):
+ if self.ctx.ref() is not None:
+ Z3_model_dec_ref(self.ctx.ref(), self.model)
+
+ def __repr__(self):
+ return obj_to_string(self)
+
+ def sexpr(self):
+ """Return a textual representation of the s-expression representing the model."""
+ return Z3_model_to_string(self.ctx.ref(), self.model)
+
+ def eval(self, t, model_completion=False):
+ """Evaluate the expression `t` in the model `self`. If `model_completion` is enabled, then a default interpretation is automatically added for symbols that do not have an interpretation in the model `self`.
+
+ >>> x = Int('x')
+ >>> s = Solver()
+ >>> s.add(x > 0, x < 2)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> m.eval(x + 1)
+ 2
+ >>> m.eval(x == 1)
+ True
+ >>> y = Int('y')
+ >>> m.eval(y + x)
+ 1 + y
+ >>> m.eval(y)
+ y
+ >>> m.eval(y, model_completion=True)
+ 0
+ >>> # Now, m contains an interpretation for y
+ >>> m.eval(y + x)
+ 1
+ """
+ r = (Ast * 1)()
+ if Z3_model_eval(self.ctx.ref(), self.model, t.as_ast(), model_completion, r):
+ return _to_expr_ref(r[0], self.ctx)
+ raise Z3Exception("failed to evaluate expression in the model")
+
+ def evaluate(self, t, model_completion=False):
+ """Alias for `eval`.
+
+ >>> x = Int('x')
+ >>> s = Solver()
+ >>> s.add(x > 0, x < 2)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> m.evaluate(x + 1)
+ 2
+ >>> m.evaluate(x == 1)
+ True
+ >>> y = Int('y')
+ >>> m.evaluate(y + x)
+ 1 + y
+ >>> m.evaluate(y)
+ y
+ >>> m.evaluate(y, model_completion=True)
+ 0
+ >>> # Now, m contains an interpretation for y
+ >>> m.evaluate(y + x)
+ 1
+ """
+ return self.eval(t, model_completion)
+
+ def __len__(self):
+ """Return the number of constant and function declarations in the model `self`.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> s = Solver()
+ >>> s.add(x > 0, f(x) != x)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> len(m)
+ 2
+ """
+ return int(Z3_model_get_num_consts(self.ctx.ref(), self.model)) + int(Z3_model_get_num_funcs(self.ctx.ref(), self.model))
+
+ def get_interp(self, decl):
+ """Return the interpretation for a given declaration or constant.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> s = Solver()
+ >>> s.add(x > 0, x < 2, f(x) == 0)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> m[x]
+ 1
+ >>> m[f]
+ [1 -> 0, else -> 0]
+ """
+ if __debug__:
+ _z3_assert(isinstance(decl, FuncDeclRef) or is_const(decl), "Z3 declaration expected")
+ if is_const(decl):
+ decl = decl.decl()
+ try:
+ if decl.arity() == 0:
+ _r = Z3_model_get_const_interp(self.ctx.ref(), self.model, decl.ast)
+ if _r.value is None:
+ return None
+ r = _to_expr_ref(_r, self.ctx)
+ if is_as_array(r):
+ return self.get_interp(get_as_array_func(r))
+ else:
+ return r
+ else:
+ return FuncInterp(Z3_model_get_func_interp(self.ctx.ref(), self.model, decl.ast), self.ctx)
+ except Z3Exception:
+ return None
+
+ def num_sorts(self):
+ """Return the number of unintepreted sorts that contain an interpretation in the model `self`.
+
+ >>> A = DeclareSort('A')
+ >>> a, b = Consts('a b', A)
+ >>> s = Solver()
+ >>> s.add(a != b)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> m.num_sorts()
+ 1
+ """
+ return int(Z3_model_get_num_sorts(self.ctx.ref(), self.model))
+
+ def get_sort(self, idx):
+ """Return the unintepreted sort at position `idx` < self.num_sorts().
+
+ >>> A = DeclareSort('A')
+ >>> B = DeclareSort('B')
+ >>> a1, a2 = Consts('a1 a2', A)
+ >>> b1, b2 = Consts('b1 b2', B)
+ >>> s = Solver()
+ >>> s.add(a1 != a2, b1 != b2)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> m.num_sorts()
+ 2
+ >>> m.get_sort(0)
+ A
+ >>> m.get_sort(1)
+ B
+ """
+ if idx >= self.num_sorts():
+ raise IndexError
+ return _to_sort_ref(Z3_model_get_sort(self.ctx.ref(), self.model, idx), self.ctx)
+
+ def sorts(self):
+ """Return all uninterpreted sorts that have an interpretation in the model `self`.
+
+ >>> A = DeclareSort('A')
+ >>> B = DeclareSort('B')
+ >>> a1, a2 = Consts('a1 a2', A)
+ >>> b1, b2 = Consts('b1 b2', B)
+ >>> s = Solver()
+ >>> s.add(a1 != a2, b1 != b2)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> m.sorts()
+ [A, B]
+ """
+ return [ self.get_sort(i) for i in range(self.num_sorts()) ]
+
+ def get_universe(self, s):
+ """Return the intepretation for the uninterpreted sort `s` in the model `self`.
+
+ >>> A = DeclareSort('A')
+ >>> a, b = Consts('a b', A)
+ >>> s = Solver()
+ >>> s.add(a != b)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> m.get_universe(A)
+ [A!val!0, A!val!1]
+ """
+ if __debug__:
+ _z3_assert(isinstance(s, SortRef), "Z3 sort expected")
+ try:
+ return AstVector(Z3_model_get_sort_universe(self.ctx.ref(), self.model, s.ast), self.ctx)
+ except Z3Exception:
+ return None
+
+ def __getitem__(self, idx):
+ """If `idx` is an integer, then the declaration at position `idx` in the model `self` is returned. If `idx` is a declaration, then the actual interpreation is returned.
+
+ The elements can be retrieved using position or the actual declaration.
+
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> s = Solver()
+ >>> s.add(x > 0, x < 2, f(x) == 0)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> len(m)
+ 2
+ >>> m[0]
+ x
+ >>> m[1]
+ f
+ >>> m[x]
+ 1
+ >>> m[f]
+ [1 -> 0, else -> 0]
+ >>> for d in m: print("%s -> %s" % (d, m[d]))
+ x -> 1
+ f -> [1 -> 0, else -> 0]
+ """
+ if _is_int(idx):
+ if idx >= len(self):
+ raise IndexError
+ num_consts = Z3_model_get_num_consts(self.ctx.ref(), self.model)
+ if (idx < num_consts):
+ return FuncDeclRef(Z3_model_get_const_decl(self.ctx.ref(), self.model, idx), self.ctx)
+ else:
+ return FuncDeclRef(Z3_model_get_func_decl(self.ctx.ref(), self.model, idx - num_consts), self.ctx)
+ if isinstance(idx, FuncDeclRef):
+ return self.get_interp(idx)
+ if is_const(idx):
+ return self.get_interp(idx.decl())
+ if isinstance(idx, SortRef):
+ return self.get_universe(idx)
+ if __debug__:
+ _z3_assert(False, "Integer, Z3 declaration, or Z3 constant expected")
+ return None
+
+ def decls(self):
+ """Return a list with all symbols that have an interpreation in the model `self`.
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> x = Int('x')
+ >>> s = Solver()
+ >>> s.add(x > 0, x < 2, f(x) == 0)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> m.decls()
+ [x, f]
+ """
+ r = []
+ for i in range(Z3_model_get_num_consts(self.ctx.ref(), self.model)):
+ r.append(FuncDeclRef(Z3_model_get_const_decl(self.ctx.ref(), self.model, i), self.ctx))
+ for i in range(Z3_model_get_num_funcs(self.ctx.ref(), self.model)):
+ r.append(FuncDeclRef(Z3_model_get_func_decl(self.ctx.ref(), self.model, i), self.ctx))
+ return r
+
+def is_as_array(n):
+ """Return true if n is a Z3 expression of the form (_ as-array f)."""
+ return isinstance(n, ExprRef) and Z3_is_as_array(n.ctx.ref(), n.as_ast())
+
+def get_as_array_func(n):
+ """Return the function declaration f associated with a Z3 expression of the form (_ as-array f)."""
+ if __debug__:
+ _z3_assert(is_as_array(n), "as-array Z3 expression expected.")
+ return FuncDeclRef(Z3_get_as_array_func_decl(n.ctx.ref(), n.as_ast()), n.ctx)
+
+#########################################
+#
+# Statistics
+#
+#########################################
+class Statistics:
+ """Statistics for `Solver.check()`."""
+
+ def __init__(self, stats, ctx):
+ self.stats = stats
+ self.ctx = ctx
+ Z3_stats_inc_ref(self.ctx.ref(), self.stats)
+
+ def __del__(self):
+ if self.ctx.ref() is not None:
+ Z3_stats_dec_ref(self.ctx.ref(), self.stats)
+
+ def __repr__(self):
+ if in_html_mode():
+ out = io.StringIO()
+ even = True
+ out.write(u('<table border="1" cellpadding="2" cellspacing="0">'))
+ for k, v in self:
+ if even:
+ out.write(u('<tr style="background-color:#CFCFCF">'))
+ even = False
+ else:
+ out.write(u('<tr>'))
+ even = True
+ out.write(u('<td>%s</td><td>%s</td></tr>' % (k, v)))
+ out.write(u('</table>'))
+ return out.getvalue()
+ else:
+ return Z3_stats_to_string(self.ctx.ref(), self.stats)
+
+ def __len__(self):
+ """Return the number of statistical counters.
+
+ >>> x = Int('x')
+ >>> s = Then('simplify', 'nlsat').solver()
+ >>> s.add(x > 0)
+ >>> s.check()
+ sat
+ >>> st = s.statistics()
+ >>> len(st)
+ 6
+ """
+ return int(Z3_stats_size(self.ctx.ref(), self.stats))
+
+ def __getitem__(self, idx):
+ """Return the value of statistical counter at position `idx`. The result is a pair (key, value).
+
+ >>> x = Int('x')
+ >>> s = Then('simplify', 'nlsat').solver()
+ >>> s.add(x > 0)
+ >>> s.check()
+ sat
+ >>> st = s.statistics()
+ >>> len(st)
+ 6
+ >>> st[0]
+ ('nlsat propagations', 2)
+ >>> st[1]
+ ('nlsat stages', 2)
+ """
+ if idx >= len(self):
+ raise IndexError
+ if Z3_stats_is_uint(self.ctx.ref(), self.stats, idx):
+ val = int(Z3_stats_get_uint_value(self.ctx.ref(), self.stats, idx))
+ else:
+ val = Z3_stats_get_double_value(self.ctx.ref(), self.stats, idx)
+ return (Z3_stats_get_key(self.ctx.ref(), self.stats, idx), val)
+
+ def keys(self):
+ """Return the list of statistical counters.
+
+ >>> x = Int('x')
+ >>> s = Then('simplify', 'nlsat').solver()
+ >>> s.add(x > 0)
+ >>> s.check()
+ sat
+ >>> st = s.statistics()
+ """
+ return [Z3_stats_get_key(self.ctx.ref(), self.stats, idx) for idx in range(len(self))]
+
+ def get_key_value(self, key):
+ """Return the value of a particular statistical counter.
+
+ >>> x = Int('x')
+ >>> s = Then('simplify', 'nlsat').solver()
+ >>> s.add(x > 0)
+ >>> s.check()
+ sat
+ >>> st = s.statistics()
+ >>> st.get_key_value('nlsat propagations')
+ 2
+ """
+ for idx in range(len(self)):
+ if key == Z3_stats_get_key(self.ctx.ref(), self.stats, idx):
+ if Z3_stats_is_uint(self.ctx.ref(), self.stats, idx):
+ return int(Z3_stats_get_uint_value(self.ctx.ref(), self.stats, idx))
+ else:
+ return Z3_stats_get_double_value(self.ctx.ref(), self.stats, idx)
+ raise Z3Exception("unknown key")
+
+ def __getattr__(self, name):
+ """Access the value of statistical using attributes.
+
+ Remark: to access a counter containing blank spaces (e.g., 'nlsat propagations'),
+ we should use '_' (e.g., 'nlsat_propagations').
+
+ >>> x = Int('x')
+ >>> s = Then('simplify', 'nlsat').solver()
+ >>> s.add(x > 0)
+ >>> s.check()
+ sat
+ >>> st = s.statistics()
+ >>> st.nlsat_propagations
+ 2
+ >>> st.nlsat_stages
+ 2
+ """
+ key = name.replace('_', ' ')
+ try:
+ return self.get_key_value(key)
+ except Z3Exception:
+ raise AttributeError
+
+#########################################
+#
+# Solver
+#
+#########################################
+class CheckSatResult:
+ """Represents the result of a satisfiability check: sat, unsat, unknown.
+
+ >>> s = Solver()
+ >>> s.check()
+ sat
+ >>> r = s.check()
+ >>> isinstance(r, CheckSatResult)
+ True
+ """
+
+ def __init__(self, r):
+ self.r = r
+
+ def __eq__(self, other):
+ return isinstance(other, CheckSatResult) and self.r == other.r
+
+ def __ne__(self, other):
+ return not self.__eq__(other)
+
+ def __repr__(self):
+ if in_html_mode():
+ if self.r == Z3_L_TRUE:
+ return "<b>sat</b>"
+ elif self.r == Z3_L_FALSE:
+ return "<b>unsat</b>"
+ else:
+ return "<b>unknown</b>"
+ else:
+ if self.r == Z3_L_TRUE:
+ return "sat"
+ elif self.r == Z3_L_FALSE:
+ return "unsat"
+ else:
+ return "unknown"
+
+sat = CheckSatResult(Z3_L_TRUE)
+unsat = CheckSatResult(Z3_L_FALSE)
+unknown = CheckSatResult(Z3_L_UNDEF)
+
+class Solver(Z3PPObject):
+ """Solver API provides methods for implementing the main SMT 2.0 commands: push, pop, check, get-model, etc."""
+
+ def __init__(self, solver=None, ctx=None):
+ assert solver is None or ctx is not None
+ self.ctx = _get_ctx(ctx)
+ self.solver = None
+ if solver is None:
+ self.solver = Z3_mk_solver(self.ctx.ref())
+ else:
+ self.solver = solver
+ Z3_solver_inc_ref(self.ctx.ref(), self.solver)
+
+ def __del__(self):
+ if self.solver is not None and self.ctx.ref() is not None:
+ Z3_solver_dec_ref(self.ctx.ref(), self.solver)
+
+ def set(self, *args, **keys):
+ """Set a configuration option. The method `help()` return a string containing all available options.
+
+ >>> s = Solver()
+ >>> # The option MBQI can be set using three different approaches.
+ >>> s.set(mbqi=True)
+ >>> s.set('MBQI', True)
+ >>> s.set(':mbqi', True)
+ """
+ p = args2params(args, keys, self.ctx)
+ Z3_solver_set_params(self.ctx.ref(), self.solver, p.params)
+
+ def push(self):
+ """Create a backtracking point.
+
+ >>> x = Int('x')
+ >>> s = Solver()
+ >>> s.add(x > 0)
+ >>> s
+ [x > 0]
+ >>> s.push()
+ >>> s.add(x < 1)
+ >>> s
+ [x > 0, x < 1]
+ >>> s.check()
+ unsat
+ >>> s.pop()
+ >>> s.check()
+ sat
+ >>> s
+ [x > 0]
+ """
+ Z3_solver_push(self.ctx.ref(), self.solver)
+
+ def pop(self, num=1):
+ """Backtrack \c num backtracking points.
+
+ >>> x = Int('x')
+ >>> s = Solver()
+ >>> s.add(x > 0)
+ >>> s
+ [x > 0]
+ >>> s.push()
+ >>> s.add(x < 1)
+ >>> s
+ [x > 0, x < 1]
+ >>> s.check()
+ unsat
+ >>> s.pop()
+ >>> s.check()
+ sat
+ >>> s
+ [x > 0]
+ """
+ Z3_solver_pop(self.ctx.ref(), self.solver, num)
+
+ def reset(self):
+ """Remove all asserted constraints and backtracking points created using `push()`.
+
+ >>> x = Int('x')
+ >>> s = Solver()
+ >>> s.add(x > 0)
+ >>> s
+ [x > 0]
+ >>> s.reset()
+ >>> s
+ []
+ """
+ Z3_solver_reset(self.ctx.ref(), self.solver)
+
+ def assert_exprs(self, *args):
+ """Assert constraints into the solver.
+
+ >>> x = Int('x')
+ >>> s = Solver()
+ >>> s.assert_exprs(x > 0, x < 2)
+ >>> s
+ [x > 0, x < 2]
+ """
+ args = _get_args(args)
+ s = BoolSort(self.ctx)
+ for arg in args:
+ if isinstance(arg, Goal) or isinstance(arg, AstVector):
+ for f in arg:
+ Z3_solver_assert(self.ctx.ref(), self.solver, f.as_ast())
+ else:
+ arg = s.cast(arg)
+ Z3_solver_assert(self.ctx.ref(), self.solver, arg.as_ast())
+
+ def add(self, *args):
+ """Assert constraints into the solver.
+
+ >>> x = Int('x')
+ >>> s = Solver()
+ >>> s.add(x > 0, x < 2)
+ >>> s
+ [x > 0, x < 2]
+ """
+ self.assert_exprs(*args)
+
+ def __iadd__(self, fml):
+ self.add(fml)
+ return self
+
+ def append(self, *args):
+ """Assert constraints into the solver.
+
+ >>> x = Int('x')
+ >>> s = Solver()
+ >>> s.append(x > 0, x < 2)
+ >>> s
+ [x > 0, x < 2]
+ """
+ self.assert_exprs(*args)
+
+ def insert(self, *args):
+ """Assert constraints into the solver.
+
+ >>> x = Int('x')
+ >>> s = Solver()
+ >>> s.insert(x > 0, x < 2)
+ >>> s
+ [x > 0, x < 2]
+ """
+ self.assert_exprs(*args)
+
+ def assert_and_track(self, a, p):
+ """Assert constraint `a` and track it in the unsat core using the Boolean constant `p`.
+
+ If `p` is a string, it will be automatically converted into a Boolean constant.
+
+ >>> x = Int('x')
+ >>> p3 = Bool('p3')
+ >>> s = Solver()
+ >>> s.set(unsat_core=True)
+ >>> s.assert_and_track(x > 0, 'p1')
+ >>> s.assert_and_track(x != 1, 'p2')
+ >>> s.assert_and_track(x < 0, p3)
+ >>> print(s.check())
+ unsat
+ >>> c = s.unsat_core()
+ >>> len(c)
+ 2
+ >>> Bool('p1') in c
+ True
+ >>> Bool('p2') in c
+ False
+ >>> p3 in c
+ True
+ """
+ if isinstance(p, str):
+ p = Bool(p, self.ctx)
+ _z3_assert(isinstance(a, BoolRef), "Boolean expression expected")
+ _z3_assert(isinstance(p, BoolRef) and is_const(p), "Boolean expression expected")
+ Z3_solver_assert_and_track(self.ctx.ref(), self.solver, a.as_ast(), p.as_ast())
+
+ def check(self, *assumptions):
+ """Check whether the assertions in the given solver plus the optional assumptions are consistent or not.
+
+ >>> x = Int('x')
+ >>> s = Solver()
+ >>> s.check()
+ sat
+ >>> s.add(x > 0, x < 2)
+ >>> s.check()
+ sat
+ >>> s.model()
+ [x = 1]
+ >>> s.add(x < 1)
+ >>> s.check()
+ unsat
+ >>> s.reset()
+ >>> s.add(2**x == 4)
+ >>> s.check()
+ unknown
+ """
+ assumptions = _get_args(assumptions)
+ num = len(assumptions)
+ _assumptions = (Ast * num)()
+ for i in range(num):
+ _assumptions[i] = assumptions[i].as_ast()
+ r = Z3_solver_check_assumptions(self.ctx.ref(), self.solver, num, _assumptions)
+ return CheckSatResult(r)
+
+ def model(self):
+ """Return a model for the last `check()`.
+
+ This function raises an exception if
+ a model is not available (e.g., last `check()` returned unsat).
+
+ >>> s = Solver()
+ >>> a = Int('a')
+ >>> s.add(a + 2 == 0)
+ >>> s.check()
+ sat
+ >>> s.model()
+ [a = -2]
+ """
+ try:
+ return ModelRef(Z3_solver_get_model(self.ctx.ref(), self.solver), self.ctx)
+ except Z3Exception:
+ raise Z3Exception("model is not available")
+
+ def unsat_core(self):
+ """Return a subset (as an AST vector) of the assumptions provided to the last check().
+
+ These are the assumptions Z3 used in the unsatisfiability proof.
+ Assumptions are available in Z3. They are used to extract unsatisfiable cores.
+ They may be also used to "retract" assumptions. Note that, assumptions are not really
+ "soft constraints", but they can be used to implement them.
+
+ >>> p1, p2, p3 = Bools('p1 p2 p3')
+ >>> x, y = Ints('x y')
+ >>> s = Solver()
+ >>> s.add(Implies(p1, x > 0))
+ >>> s.add(Implies(p2, y > x))
+ >>> s.add(Implies(p2, y < 1))
+ >>> s.add(Implies(p3, y > -3))
+ >>> s.check(p1, p2, p3)
+ unsat
+ >>> core = s.unsat_core()
+ >>> len(core)
+ 2
+ >>> p1 in core
+ True
+ >>> p2 in core
+ True
+ >>> p3 in core
+ False
+ >>> # "Retracting" p2
+ >>> s.check(p1, p3)
+ sat
+ """
+ return AstVector(Z3_solver_get_unsat_core(self.ctx.ref(), self.solver), self.ctx)
+
+ def consequences(self, assumptions, variables):
+ """Determine fixed values for the variables based on the solver state and assumptions.
+ >>> s = Solver()
+ >>> a, b, c, d = Bools('a b c d')
+ >>> s.add(Implies(a,b), Implies(b, c))
+ >>> s.consequences([a],[b,c,d])
+ (sat, [Implies(a, b), Implies(a, c)])
+ >>> s.consequences([Not(c),d],[a,b,c,d])
+ (sat, [Implies(Not(c), Not(c)), Implies(d, d), Implies(Not(c), Not(b)), Implies(Not(c), Not(a))])
+ """
+ if isinstance(assumptions, list):
+ _asms = AstVector(None, self.ctx)
+ for a in assumptions:
+ _asms.push(a)
+ assumptions = _asms
+ if isinstance(variables, list):
+ _vars = AstVector(None, self.ctx)
+ for a in variables:
+ _vars.push(a)
+ variables = _vars
+ _z3_assert(isinstance(assumptions, AstVector), "ast vector expected")
+ _z3_assert(isinstance(variables, AstVector), "ast vector expected")
+ consequences = AstVector(None, self.ctx)
+ r = Z3_solver_get_consequences(self.ctx.ref(), self.solver, assumptions.vector, variables.vector, consequences.vector)
+ sz = len(consequences)
+ consequences = [ consequences[i] for i in range(sz) ]
+ return CheckSatResult(r), consequences
+
+ def proof(self):
+ """Return a proof for the last `check()`. Proof construction must be enabled."""
+ return _to_expr_ref(Z3_solver_get_proof(self.ctx.ref(), self.solver), self.ctx)
+
+ def assertions(self):
+ """Return an AST vector containing all added constraints.
+
+ >>> s = Solver()
+ >>> s.assertions()
+ []
+ >>> a = Int('a')
+ >>> s.add(a > 0)
+ >>> s.add(a < 10)
+ >>> s.assertions()
+ [a > 0, a < 10]
+ """
+ return AstVector(Z3_solver_get_assertions(self.ctx.ref(), self.solver), self.ctx)
+
+ def statistics(self):
+ """Return statistics for the last `check()`.
+
+ >>> s = SimpleSolver()
+ >>> x = Int('x')
+ >>> s.add(x > 0)
+ >>> s.check()
+ sat
+ >>> st = s.statistics()
+ >>> st.get_key_value('final checks')
+ 1
+ >>> len(st) > 0
+ True
+ >>> st[0] != 0
+ True
+ """
+ return Statistics(Z3_solver_get_statistics(self.ctx.ref(), self.solver), self.ctx)
+
+ def reason_unknown(self):
+ """Return a string describing why the last `check()` returned `unknown`.
+
+ >>> x = Int('x')
+ >>> s = SimpleSolver()
+ >>> s.add(2**x == 4)
+ >>> s.check()
+ unknown
+ >>> s.reason_unknown()
+ '(incomplete (theory arithmetic))'
+ """
+ return Z3_solver_get_reason_unknown(self.ctx.ref(), self.solver)
+
+ def help(self):
+ """Display a string describing all available options."""
+ print(Z3_solver_get_help(self.ctx.ref(), self.solver))
+
+ def param_descrs(self):
+ """Return the parameter description set."""
+ return ParamDescrsRef(Z3_solver_get_param_descrs(self.ctx.ref(), self.solver), self.ctx)
+
+ def __repr__(self):
+ """Return a formatted string with all added constraints."""
+ return obj_to_string(self)
+
+ def translate(self, target):
+ """Translate `self` to the context `target`. That is, return a copy of `self` in the context `target`.
+
+ >>> c1 = Context()
+ >>> c2 = Context()
+ >>> s1 = Solver(ctx=c1)
+ >>> s2 = s1.translate(c2)
+ """
+ if __debug__:
+ _z3_assert(isinstance(target, Context), "argument must be a Z3 context")
+ solver = Z3_solver_translate(self.ctx.ref(), self.solver, target.ref())
+ return Solver(solver, target)
+
+ def sexpr(self):
+ """Return a formatted string (in Lisp-like format) with all added constraints. We say the string is in s-expression format.
+
+ >>> x = Int('x')
+ >>> s = Solver()
+ >>> s.add(x > 0)
+ >>> s.add(x < 2)
+ >>> r = s.sexpr()
+ """
+ return Z3_solver_to_string(self.ctx.ref(), self.solver)
+
+ def to_smt2(self):
+ """return SMTLIB2 formatted benchmark for solver's assertions"""
+ es = self.assertions()
+ sz = len(es)
+ sz1 = sz
+ if sz1 > 0:
+ sz1 -= 1
+ v = (Ast * sz1)()
+ for i in range(sz1):
+ v[i] = es[i].as_ast()
+ if sz > 0:
+ e = es[sz1].as_ast()
+ else:
+ e = BoolVal(True, self.ctx).as_ast()
+ return Z3_benchmark_to_smtlib_string(self.ctx.ref(), "benchmark generated from python API", "", "unknown", "", sz1, v, e)
+
+def SolverFor(logic, ctx=None):
+ """Create a solver customized for the given logic.
+
+ The parameter `logic` is a string. It should be contains
+ the name of a SMT-LIB logic.
+ See http://www.smtlib.org/ for the name of all available logics.
+
+ >>> s = SolverFor("QF_LIA")
+ >>> x = Int('x')
+ >>> s.add(x > 0)
+ >>> s.add(x < 2)
+ >>> s.check()
+ sat
+ >>> s.model()
+ [x = 1]
+ """
+ ctx = _get_ctx(ctx)
+ logic = to_symbol(logic)
+ return Solver(Z3_mk_solver_for_logic(ctx.ref(), logic), ctx)
+
+def SimpleSolver(ctx=None):
+ """Return a simple general purpose solver with limited amount of preprocessing.
+
+ >>> s = SimpleSolver()
+ >>> x = Int('x')
+ >>> s.add(x > 0)
+ >>> s.check()
+ sat
+ """
+ ctx = _get_ctx(ctx)
+ return Solver(Z3_mk_simple_solver(ctx.ref()), ctx)
+
+#########################################
+#
+# Fixedpoint
+#
+#########################################
+
+class Fixedpoint(Z3PPObject):
+ """Fixedpoint API provides methods for solving with recursive predicates"""
+
+ def __init__(self, fixedpoint=None, ctx=None):
+ assert fixedpoint is None or ctx is not None
+ self.ctx = _get_ctx(ctx)
+ self.fixedpoint = None
+ if fixedpoint is None:
+ self.fixedpoint = Z3_mk_fixedpoint(self.ctx.ref())
+ else:
+ self.fixedpoint = fixedpoint
+ Z3_fixedpoint_inc_ref(self.ctx.ref(), self.fixedpoint)
+ self.vars = []
+
+ def __del__(self):
+ if self.fixedpoint is not None and self.ctx.ref() is not None:
+ Z3_fixedpoint_dec_ref(self.ctx.ref(), self.fixedpoint)
+
+ def set(self, *args, **keys):
+ """Set a configuration option. The method `help()` return a string containing all available options.
+ """
+ p = args2params(args, keys, self.ctx)
+ Z3_fixedpoint_set_params(self.ctx.ref(), self.fixedpoint, p.params)
+
+ def help(self):
+ """Display a string describing all available options."""
+ print(Z3_fixedpoint_get_help(self.ctx.ref(), self.fixedpoint))
+
+ def param_descrs(self):
+ """Return the parameter description set."""
+ return ParamDescrsRef(Z3_fixedpoint_get_param_descrs(self.ctx.ref(), self.fixedpoint), self.ctx)
+
+ def assert_exprs(self, *args):
+ """Assert constraints as background axioms for the fixedpoint solver."""
+ args = _get_args(args)
+ s = BoolSort(self.ctx)
+ for arg in args:
+ if isinstance(arg, Goal) or isinstance(arg, AstVector):
+ for f in arg:
+ f = self.abstract(f)
+ Z3_fixedpoint_assert(self.ctx.ref(), self.fixedpoint, f.as_ast())
+ else:
+ arg = s.cast(arg)
+ arg = self.abstract(arg)
+ Z3_fixedpoint_assert(self.ctx.ref(), self.fixedpoint, arg.as_ast())
+
+ def add(self, *args):
+ """Assert constraints as background axioms for the fixedpoint solver. Alias for assert_expr."""
+ self.assert_exprs(*args)
+
+ def __iadd__(self, fml):
+ self.add(fml)
+ return self
+
+ def append(self, *args):
+ """Assert constraints as background axioms for the fixedpoint solver. Alias for assert_expr."""
+ self.assert_exprs(*args)
+
+ def insert(self, *args):
+ """Assert constraints as background axioms for the fixedpoint solver. Alias for assert_expr."""
+ self.assert_exprs(*args)
+
+ def add_rule(self, head, body = None, name = None):
+ """Assert rules defining recursive predicates to the fixedpoint solver.
+ >>> a = Bool('a')
+ >>> b = Bool('b')
+ >>> s = Fixedpoint()
+ >>> s.register_relation(a.decl())
+ >>> s.register_relation(b.decl())
+ >>> s.fact(a)
+ >>> s.rule(b, a)
+ >>> s.query(b)
+ sat
+ """
+ if name is None:
+ name = ""
+ name = to_symbol(name, self.ctx)
+ if body is None:
+ head = self.abstract(head)
+ Z3_fixedpoint_add_rule(self.ctx.ref(), self.fixedpoint, head.as_ast(), name)
+ else:
+ body = _get_args(body)
+ f = self.abstract(Implies(And(body, self.ctx),head))
+ Z3_fixedpoint_add_rule(self.ctx.ref(), self.fixedpoint, f.as_ast(), name)
+
+ def rule(self, head, body = None, name = None):
+ """Assert rules defining recursive predicates to the fixedpoint solver. Alias for add_rule."""
+ self.add_rule(head, body, name)
+
+ def fact(self, head, name = None):
+ """Assert facts defining recursive predicates to the fixedpoint solver. Alias for add_rule."""
+ self.add_rule(head, None, name)
+
+ def query(self, *query):
+ """Query the fixedpoint engine whether formula is derivable.
+ You can also pass an tuple or list of recursive predicates.
+ """
+ query = _get_args(query)
+ sz = len(query)
+ if sz >= 1 and isinstance(query[0], FuncDeclRef):
+ _decls = (FuncDecl * sz)()
+ i = 0
+ for q in query:
+ _decls[i] = q.ast
+ i = i + 1
+ r = Z3_fixedpoint_query_relations(self.ctx.ref(), self.fixedpoint, sz, _decls)
+ else:
+ if sz == 1:
+ query = query[0]
+ else:
+ query = And(query, self.ctx)
+ query = self.abstract(query, False)
+ r = Z3_fixedpoint_query(self.ctx.ref(), self.fixedpoint, query.as_ast())
+ return CheckSatResult(r)
+
+ def push(self):
+ """create a backtracking point for added rules, facts and assertions"""
+ Z3_fixedpoint_push(self.ctx.ref(), self.fixedpoint)
+
+ def pop(self):
+ """restore to previously created backtracking point"""
+ Z3_fixedpoint_pop(self.ctx.ref(), self.fixedpoint)
+
+ def update_rule(self, head, body, name):
+ """update rule"""
+ if name is None:
+ name = ""
+ name = to_symbol(name, self.ctx)
+ body = _get_args(body)
+ f = self.abstract(Implies(And(body, self.ctx),head))
+ Z3_fixedpoint_update_rule(self.ctx.ref(), self.fixedpoint, f.as_ast(), name)
+
+ def get_answer(self):
+ """Retrieve answer from last query call."""
+ r = Z3_fixedpoint_get_answer(self.ctx.ref(), self.fixedpoint)
+ return _to_expr_ref(r, self.ctx)
+
+ def get_num_levels(self, predicate):
+ """Retrieve number of levels used for predicate in PDR engine"""
+ return Z3_fixedpoint_get_num_levels(self.ctx.ref(), self.fixedpoint, predicate.ast)
+
+ def get_cover_delta(self, level, predicate):
+ """Retrieve properties known about predicate for the level'th unfolding. -1 is treated as the limit (infinity)"""
+ r = Z3_fixedpoint_get_cover_delta(self.ctx.ref(), self.fixedpoint, level, predicate.ast)
+ return _to_expr_ref(r, self.ctx)
+
+ def add_cover(self, level, predicate, property):
+ """Add property to predicate for the level'th unfolding. -1 is treated as infinity (infinity)"""
+ Z3_fixedpoint_add_cover(self.ctx.ref(), self.fixedpoint, level, predicate.ast, property.ast)
+
+ def register_relation(self, *relations):
+ """Register relation as recursive"""
+ relations = _get_args(relations)
+ for f in relations:
+ Z3_fixedpoint_register_relation(self.ctx.ref(), self.fixedpoint, f.ast)
+
+ def set_predicate_representation(self, f, *representations):
+ """Control how relation is represented"""
+ representations = _get_args(representations)
+ representations = [to_symbol(s) for s in representations]
+ sz = len(representations)
+ args = (Symbol * sz)()
+ for i in range(sz):
+ args[i] = representations[i]
+ Z3_fixedpoint_set_predicate_representation(self.ctx.ref(), self.fixedpoint, f.ast, sz, args)
+
+ def parse_string(self, s):
+ """Parse rules and queries from a string"""
+ return AstVector(Z3_fixedpoint_from_string(self.ctx.ref(), self.fixedpoint, s), self.ctx)
+
+ def parse_file(self, f):
+ """Parse rules and queries from a file"""
+ return AstVector(Z3_fixedpoint_from_file(self.ctx.ref(), self.fixedpoint, f), self.ctx)
+
+ def get_rules(self):
+ """retrieve rules that have been added to fixedpoint context"""
+ return AstVector(Z3_fixedpoint_get_rules(self.ctx.ref(), self.fixedpoint), self.ctx)
+
+ def get_assertions(self):
+ """retrieve assertions that have been added to fixedpoint context"""
+ return AstVector(Z3_fixedpoint_get_assertions(self.ctx.ref(), self.fixedpoint), self.ctx)
+
+ def __repr__(self):
+ """Return a formatted string with all added rules and constraints."""
+ return self.sexpr()
+
+ def sexpr(self):
+ """Return a formatted string (in Lisp-like format) with all added constraints. We say the string is in s-expression format.
+ """
+ return Z3_fixedpoint_to_string(self.ctx.ref(), self.fixedpoint, 0, (Ast * 0)())
+
+ def to_string(self, queries):
+ """Return a formatted string (in Lisp-like format) with all added constraints.
+ We say the string is in s-expression format.
+ Include also queries.
+ """
+ args, len = _to_ast_array(queries)
+ return Z3_fixedpoint_to_string(self.ctx.ref(), self.fixedpoint, len, args)
+
+ def statistics(self):
+ """Return statistics for the last `query()`.
+ """
+ return Statistics(Z3_fixedpoint_get_statistics(self.ctx.ref(), self.fixedpoint), self.ctx)
+
+ def reason_unknown(self):
+ """Return a string describing why the last `query()` returned `unknown`.
+ """
+ return Z3_fixedpoint_get_reason_unknown(self.ctx.ref(), self.fixedpoint)
+
+ def declare_var(self, *vars):
+ """Add variable or several variables.
+ The added variable or variables will be bound in the rules
+ and queries
+ """
+ vars = _get_args(vars)
+ for v in vars:
+ self.vars += [v]
+
+ def abstract(self, fml, is_forall=True):
+ if self.vars == []:
+ return fml
+ if is_forall:
+ return ForAll(self.vars, fml)
+ else:
+ return Exists(self.vars, fml)
+
+
+#########################################
+#
+# Finite domains
+#
+#########################################
+
+class FiniteDomainSortRef(SortRef):
+ """Finite domain sort."""
+
+ def size(self):
+ """Return the size of the finite domain sort"""
+ r = (ctype.c_ulonglong * 1)()
+ if Z3_get_finite_domain_sort_size(self.ctx_ref(), self.ast(), r):
+ return r[0]
+ else:
+ raise Z3Exception("Failed to retrieve finite domain sort size")
+
+def FiniteDomainSort(name, sz, ctx=None):
+ """Create a named finite domain sort of a given size sz"""
+ if not isinstance(name, Symbol):
+ name = to_symbol(name)
+ ctx = _get_ctx(ctx)
+ return FiniteDomainSortRef(Z3_mk_finite_domain_sort(ctx.ref(), name, sz), ctx)
+
+def is_finite_domain_sort(s):
+ """Return True if `s` is a Z3 finite-domain sort.
+
+ >>> is_finite_domain_sort(FiniteDomainSort('S', 100))
+ True
+ >>> is_finite_domain_sort(IntSort())
+ False
+ """
+ return isinstance(s, FiniteDomainSortRef)
+
+
+class FiniteDomainRef(ExprRef):
+ """Finite-domain expressions."""
+
+ def sort(self):
+ """Return the sort of the finite-domain expression `self`."""
+ return FiniteDomainSortRef(Z3_get_sort(self.ctx_ref(), self.as_ast()), self.ctx)
+
+ def as_string(self):
+ """Return a Z3 floating point expression as a Python string."""
+ return Z3_ast_to_string(self.ctx_ref(), self.as_ast())
+
+def is_finite_domain(a):
+ """Return `True` if `a` is a Z3 finite-domain expression.
+
+ >>> s = FiniteDomainSort('S', 100)
+ >>> b = Const('b', s)
+ >>> is_finite_domain(b)
+ True
+ >>> is_finite_domain(Int('x'))
+ False
+ """
+ return isinstance(a, FiniteDomainRef)
+
+
+class FiniteDomainNumRef(FiniteDomainRef):
+ """Integer values."""
+
+ def as_long(self):
+ """Return a Z3 finite-domain numeral as a Python long (bignum) numeral.
+
+ >>> s = FiniteDomainSort('S', 100)
+ >>> v = FiniteDomainVal(3, s)
+ >>> v
+ 3
+ >>> v.as_long() + 1
+ 4
+ """
+ return int(self.as_string())
+
+ def as_string(self):
+ """Return a Z3 finite-domain numeral as a Python string.
+
+ >>> s = FiniteDomainSort('S', 100)
+ >>> v = FiniteDomainVal(42, s)
+ >>> v.as_string()
+ '42'
+ """
+ return Z3_get_numeral_string(self.ctx_ref(), self.as_ast())
+
+
+def FiniteDomainVal(val, sort, ctx=None):
+ """Return a Z3 finite-domain value. If `ctx=None`, then the global context is used.
+
+ >>> s = FiniteDomainSort('S', 256)
+ >>> FiniteDomainVal(255, s)
+ 255
+ >>> FiniteDomainVal('100', s)
+ 100
+ """
+ if __debug__:
+ _z3_assert(is_finite_domain_sort(sort), "Expected finite-domain sort" )
+ ctx = sort.ctx
+ return FiniteDomainNumRef(Z3_mk_numeral(ctx.ref(), _to_int_str(val), sort.ast), ctx)
+
+def is_finite_domain_value(a):
+ """Return `True` if `a` is a Z3 finite-domain value.
+
+ >>> s = FiniteDomainSort('S', 100)
+ >>> b = Const('b', s)
+ >>> is_finite_domain_value(b)
+ False
+ >>> b = FiniteDomainVal(10, s)
+ >>> b
+ 10
+ >>> is_finite_domain_value(b)
+ True
+ """
+ return is_finite_domain(a) and _is_numeral(a.ctx, a.as_ast())
+
+
+#########################################
+#
+# Optimize
+#
+#########################################
+
+class OptimizeObjective:
+ def __init__(self, opt, value, is_max):
+ self._opt = opt
+ self._value = value
+ self._is_max = is_max
+
+ def lower(self):
+ opt = self._opt
+ return _to_expr_ref(Z3_optimize_get_lower(opt.ctx.ref(), opt.optimize, self._value), opt.ctx)
+
+ def upper(self):
+ opt = self._opt
+ return _to_expr_ref(Z3_optimize_get_upper(opt.ctx.ref(), opt.optimize, self._value), opt.ctx)
+
+ def value(self):
+ if self._is_max:
+ return self.upper()
+ else:
+ return self.lower()
+
+class Optimize(Z3PPObject):
+ """Optimize API provides methods for solving using objective functions and weighted soft constraints"""
+
+ def __init__(self, ctx=None):
+ self.ctx = _get_ctx(ctx)
+ self.optimize = Z3_mk_optimize(self.ctx.ref())
+ Z3_optimize_inc_ref(self.ctx.ref(), self.optimize)
+
+ def __del__(self):
+ if self.optimize is not None and self.ctx.ref() is not None:
+ Z3_optimize_dec_ref(self.ctx.ref(), self.optimize)
+
+ def set(self, *args, **keys):
+ """Set a configuration option. The method `help()` return a string containing all available options.
+ """
+ p = args2params(args, keys, self.ctx)
+ Z3_optimize_set_params(self.ctx.ref(), self.optimize, p.params)
+
+ def help(self):
+ """Display a string describing all available options."""
+ print(Z3_optimize_get_help(self.ctx.ref(), self.optimize))
+
+ def param_descrs(self):
+ """Return the parameter description set."""
+ return ParamDescrsRef(Z3_optimize_get_param_descrs(self.ctx.ref(), self.optimize), self.ctx)
+
+ def assert_exprs(self, *args):
+ """Assert constraints as background axioms for the optimize solver."""
+ args = _get_args(args)
+ for arg in args:
+ if isinstance(arg, Goal) or isinstance(arg, AstVector):
+ for f in arg:
+ Z3_optimize_assert(self.ctx.ref(), self.optimize, f.as_ast())
+ else:
+ Z3_optimize_assert(self.ctx.ref(), self.optimize, arg.as_ast())
+
+ def add(self, *args):
+ """Assert constraints as background axioms for the optimize solver. Alias for assert_expr."""
+ self.assert_exprs(*args)
+
+ def __iadd__(self, fml):
+ self.add(fml)
+ return self
+
+ def add_soft(self, arg, weight = "1", id = None):
+ """Add soft constraint with optional weight and optional identifier.
+ If no weight is supplied, then the penalty for violating the soft constraint
+ is 1.
+ Soft constraints are grouped by identifiers. Soft constraints that are
+ added without identifiers are grouped by default.
+ """
+ if _is_int(weight):
+ weight = "%d" % weight
+ elif isinstance(weight, float):
+ weight = "%f" % weight
+ if not isinstance(weight, str):
+ raise Z3Exception("weight should be a string or an integer")
+ if id is None:
+ id = ""
+ id = to_symbol(id, self.ctx)
+ v = Z3_optimize_assert_soft(self.ctx.ref(), self.optimize, arg.as_ast(), weight, id)
+ return OptimizeObjective(self, v, False)
+
+ def maximize(self, arg):
+ """Add objective function to maximize."""
+ return OptimizeObjective(self, Z3_optimize_maximize(self.ctx.ref(), self.optimize, arg.as_ast()), True)
+
+ def minimize(self, arg):
+ """Add objective function to minimize."""
+ return OptimizeObjective(self, Z3_optimize_minimize(self.ctx.ref(), self.optimize, arg.as_ast()), False)
+
+ def push(self):
+ """create a backtracking point for added rules, facts and assertions"""
+ Z3_optimize_push(self.ctx.ref(), self.optimize)
+
+ def pop(self):
+ """restore to previously created backtracking point"""
+ Z3_optimize_pop(self.ctx.ref(), self.optimize)
+
+ def check(self):
+ """Check satisfiability while optimizing objective functions."""
+ return CheckSatResult(Z3_optimize_check(self.ctx.ref(), self.optimize))
+
+ def reason_unknown(self):
+ """Return a string that describes why the last `check()` returned `unknown`."""
+ return Z3_optimize_get_reason_unknown(self.ctx.ref(), self.optimize)
+
+ def model(self):
+ """Return a model for the last check()."""
+ try:
+ return ModelRef(Z3_optimize_get_model(self.ctx.ref(), self.optimize), self.ctx)
+ except Z3Exception:
+ raise Z3Exception("model is not available")
+
+ def lower(self, obj):
+ if not isinstance(obj, OptimizeObjective):
+ raise Z3Exception("Expecting objective handle returned by maximize/minimize")
+ return obj.lower()
+
+ def upper(self, obj):
+ if not isinstance(obj, OptimizeObjective):
+ raise Z3Exception("Expecting objective handle returned by maximize/minimize")
+ return obj.upper()
+
+ def from_file(self, filename):
+ """Parse assertions and objectives from a file"""
+ Z3_optimize_from_file(self.ctx.ref(), self.optimize, filename)
+
+ def from_string(self, s):
+ """Parse assertions and objectives from a string"""
+ Z3_optimize_from_string(self.ctx.ref(), self.optimize, s)
+
+ def assertions(self):
+ """Return an AST vector containing all added constraints."""
+ return AstVector(Z3_optimize_get_assertions(self.ctx.ref(), self.optimize), self.ctx)
+
+ def objectives(self):
+ """returns set of objective functions"""
+ return AstVector(Z3_optimize_get_objectives(self.ctx.ref(), self.optimize), self.ctx)
+
+ def __repr__(self):
+ """Return a formatted string with all added rules and constraints."""
+ return self.sexpr()
+
+ def sexpr(self):
+ """Return a formatted string (in Lisp-like format) with all added constraints. We say the string is in s-expression format.
+ """
+ return Z3_optimize_to_string(self.ctx.ref(), self.optimize)
+
+ def statistics(self):
+ """Return statistics for the last check`.
+ """
+ return Statistics(Z3_optimize_get_statistics(self.ctx.ref(), self.optimize), self.ctx)
+
+
+
+
+#########################################
+#
+# ApplyResult
+#
+#########################################
+class ApplyResult(Z3PPObject):
+ """An ApplyResult object contains the subgoals produced by a tactic when applied to a goal. It also contains model and proof converters."""
+
+ def __init__(self, result, ctx):
+ self.result = result
+ self.ctx = ctx
+ Z3_apply_result_inc_ref(self.ctx.ref(), self.result)
+
+ def __del__(self):
+ if self.ctx.ref() is not None:
+ Z3_apply_result_dec_ref(self.ctx.ref(), self.result)
+
+ def __len__(self):
+ """Return the number of subgoals in `self`.
+
+ >>> a, b = Ints('a b')
+ >>> g = Goal()
+ >>> g.add(Or(a == 0, a == 1), Or(b == 0, b == 1), a > b)
+ >>> t = Tactic('split-clause')
+ >>> r = t(g)
+ >>> len(r)
+ 2
+ >>> t = Then(Tactic('split-clause'), Tactic('split-clause'))
+ >>> len(t(g))
+ 4
+ >>> t = Then(Tactic('split-clause'), Tactic('split-clause'), Tactic('propagate-values'))
+ >>> len(t(g))
+ 1
+ """
+ return int(Z3_apply_result_get_num_subgoals(self.ctx.ref(), self.result))
+
+ def __getitem__(self, idx):
+ """Return one of the subgoals stored in ApplyResult object `self`.
+
+ >>> a, b = Ints('a b')
+ >>> g = Goal()
+ >>> g.add(Or(a == 0, a == 1), Or(b == 0, b == 1), a > b)
+ >>> t = Tactic('split-clause')
+ >>> r = t(g)
+ >>> r[0]
+ [a == 0, Or(b == 0, b == 1), a > b]
+ >>> r[1]
+ [a == 1, Or(b == 0, b == 1), a > b]
+ """
+ if idx >= len(self):
+ raise IndexError
+ return Goal(goal=Z3_apply_result_get_subgoal(self.ctx.ref(), self.result, idx), ctx=self.ctx)
+
+ def __repr__(self):
+ return obj_to_string(self)
+
+ def sexpr(self):
+ """Return a textual representation of the s-expression representing the set of subgoals in `self`."""
+ return Z3_apply_result_to_string(self.ctx.ref(), self.result)
+
+ def convert_model(self, model, idx=0):
+ """Convert a model for a subgoal into a model for the original goal.
+
+ >>> a, b = Ints('a b')
+ >>> g = Goal()
+ >>> g.add(Or(a == 0, a == 1), Or(b == 0, b == 1), a > b)
+ >>> t = Then(Tactic('split-clause'), Tactic('solve-eqs'))
+ >>> r = t(g)
+ >>> r[0]
+ [Or(b == 0, b == 1), Not(0 <= b)]
+ >>> r[1]
+ [Or(b == 0, b == 1), Not(1 <= b)]
+ >>> # Remark: the subgoal r[0] is unsatisfiable
+ >>> # Creating a solver for solving the second subgoal
+ >>> s = Solver()
+ >>> s.add(r[1])
+ >>> s.check()
+ sat
+ >>> s.model()
+ [b = 0]
+ >>> # Model s.model() does not assign a value to `a`
+ >>> # It is a model for subgoal `r[1]`, but not for goal `g`
+ >>> # The method convert_model creates a model for `g` from a model for `r[1]`.
+ >>> r.convert_model(s.model(), 1)
+ [b = 0, a = 1]
+ """
+ if __debug__:
+ _z3_assert(idx < len(self), "index out of bounds")
+ _z3_assert(isinstance(model, ModelRef), "Z3 Model expected")
+ return ModelRef(Z3_apply_result_convert_model(self.ctx.ref(), self.result, idx, model.model), self.ctx)
+
+ def as_expr(self):
+ """Return a Z3 expression consisting of all subgoals.
+
+ >>> x = Int('x')
+ >>> g = Goal()
+ >>> g.add(x > 1)
+ >>> g.add(Or(x == 2, x == 3))
+ >>> r = Tactic('simplify')(g)
+ >>> r
+ [[Not(x <= 1), Or(x == 2, x == 3)]]
+ >>> r.as_expr()
+ And(Not(x <= 1), Or(x == 2, x == 3))
+ >>> r = Tactic('split-clause')(g)
+ >>> r
+ [[x > 1, x == 2], [x > 1, x == 3]]
+ >>> r.as_expr()
+ Or(And(x > 1, x == 2), And(x > 1, x == 3))
+ """
+ sz = len(self)
+ if sz == 0:
+ return BoolVal(False, self.ctx)
+ elif sz == 1:
+ return self[0].as_expr()
+ else:
+ return Or([ self[i].as_expr() for i in range(len(self)) ])
+
+#########################################
+#
+# Tactics
+#
+#########################################
+class Tactic:
+ """Tactics transform, solver and/or simplify sets of constraints (Goal). A Tactic can be converted into a Solver using the method solver().
+
+ Several combinators are available for creating new tactics using the built-in ones: Then(), OrElse(), FailIf(), Repeat(), When(), Cond().
+ """
+ def __init__(self, tactic, ctx=None):
+ self.ctx = _get_ctx(ctx)
+ self.tactic = None
+ if isinstance(tactic, TacticObj):
+ self.tactic = tactic
+ else:
+ if __debug__:
+ _z3_assert(isinstance(tactic, str), "tactic name expected")
+ try:
+ self.tactic = Z3_mk_tactic(self.ctx.ref(), str(tactic))
+ except Z3Exception:
+ raise Z3Exception("unknown tactic '%s'" % tactic)
+ Z3_tactic_inc_ref(self.ctx.ref(), self.tactic)
+
+ def __del__(self):
+ if self.tactic is not None and self.ctx.ref() is not None:
+ Z3_tactic_dec_ref(self.ctx.ref(), self.tactic)
+
+ def solver(self):
+ """Create a solver using the tactic `self`.
+
+ The solver supports the methods `push()` and `pop()`, but it
+ will always solve each `check()` from scratch.
+
+ >>> t = Then('simplify', 'nlsat')
+ >>> s = t.solver()
+ >>> x = Real('x')
+ >>> s.add(x**2 == 2, x > 0)
+ >>> s.check()
+ sat
+ >>> s.model()
+ [x = 1.4142135623?]
+ """
+ return Solver(Z3_mk_solver_from_tactic(self.ctx.ref(), self.tactic), self.ctx)
+
+ def apply(self, goal, *arguments, **keywords):
+ """Apply tactic `self` to the given goal or Z3 Boolean expression using the given options.
+
+ >>> x, y = Ints('x y')
+ >>> t = Tactic('solve-eqs')
+ >>> t.apply(And(x == 0, y >= x + 1))
+ [[y >= 1]]
+ """
+ if __debug__:
+ _z3_assert(isinstance(goal, Goal) or isinstance(goal, BoolRef), "Z3 Goal or Boolean expressions expected")
+ goal = _to_goal(goal)
+ if len(arguments) > 0 or len(keywords) > 0:
+ p = args2params(arguments, keywords, self.ctx)
+ return ApplyResult(Z3_tactic_apply_ex(self.ctx.ref(), self.tactic, goal.goal, p.params), self.ctx)
+ else:
+ return ApplyResult(Z3_tactic_apply(self.ctx.ref(), self.tactic, goal.goal), self.ctx)
+
+ def __call__(self, goal, *arguments, **keywords):
+ """Apply tactic `self` to the given goal or Z3 Boolean expression using the given options.
+
+ >>> x, y = Ints('x y')
+ >>> t = Tactic('solve-eqs')
+ >>> t(And(x == 0, y >= x + 1))
+ [[y >= 1]]
+ """
+ return self.apply(goal, *arguments, **keywords)
+
+ def help(self):
+ """Display a string containing a description of the available options for the `self` tactic."""
+ print(Z3_tactic_get_help(self.ctx.ref(), self.tactic))
+
+ def param_descrs(self):
+ """Return the parameter description set."""
+ return ParamDescrsRef(Z3_tactic_get_param_descrs(self.ctx.ref(), self.tactic), self.ctx)
+
+def _to_goal(a):
+ if isinstance(a, BoolRef):
+ goal = Goal(ctx = a.ctx)
+ goal.add(a)
+ return goal
+ else:
+ return a
+
+def _to_tactic(t, ctx=None):
+ if isinstance(t, Tactic):
+ return t
+ else:
+ return Tactic(t, ctx)
+
+def _and_then(t1, t2, ctx=None):
+ t1 = _to_tactic(t1, ctx)
+ t2 = _to_tactic(t2, ctx)
+ if __debug__:
+ _z3_assert(t1.ctx == t2.ctx, "Context mismatch")
+ return Tactic(Z3_tactic_and_then(t1.ctx.ref(), t1.tactic, t2.tactic), t1.ctx)
+
+def _or_else(t1, t2, ctx=None):
+ t1 = _to_tactic(t1, ctx)
+ t2 = _to_tactic(t2, ctx)
+ if __debug__:
+ _z3_assert(t1.ctx == t2.ctx, "Context mismatch")
+ return Tactic(Z3_tactic_or_else(t1.ctx.ref(), t1.tactic, t2.tactic), t1.ctx)
+
+def AndThen(*ts, **ks):
+ """Return a tactic that applies the tactics in `*ts` in sequence.
+
+ >>> x, y = Ints('x y')
+ >>> t = AndThen(Tactic('simplify'), Tactic('solve-eqs'))
+ >>> t(And(x == 0, y > x + 1))
+ [[Not(y <= 1)]]
+ >>> t(And(x == 0, y > x + 1)).as_expr()
+ Not(y <= 1)
+ """
+ if __debug__:
+ _z3_assert(len(ts) >= 2, "At least two arguments expected")
+ ctx = ks.get('ctx', None)
+ num = len(ts)
+ r = ts[0]
+ for i in range(num - 1):
+ r = _and_then(r, ts[i+1], ctx)
+ return r
+
+def Then(*ts, **ks):
+ """Return a tactic that applies the tactics in `*ts` in sequence. Shorthand for AndThen(*ts, **ks).
+
+ >>> x, y = Ints('x y')
+ >>> t = Then(Tactic('simplify'), Tactic('solve-eqs'))
+ >>> t(And(x == 0, y > x + 1))
+ [[Not(y <= 1)]]
+ >>> t(And(x == 0, y > x + 1)).as_expr()
+ Not(y <= 1)
+ """
+ return AndThen(*ts, **ks)
+
+def OrElse(*ts, **ks):
+ """Return a tactic that applies the tactics in `*ts` until one of them succeeds (it doesn't fail).
+
+ >>> x = Int('x')
+ >>> t = OrElse(Tactic('split-clause'), Tactic('skip'))
+ >>> # Tactic split-clause fails if there is no clause in the given goal.
+ >>> t(x == 0)
+ [[x == 0]]
+ >>> t(Or(x == 0, x == 1))
+ [[x == 0], [x == 1]]
+ """
+ if __debug__:
+ _z3_assert(len(ts) >= 2, "At least two arguments expected")
+ ctx = ks.get('ctx', None)
+ num = len(ts)
+ r = ts[0]
+ for i in range(num - 1):
+ r = _or_else(r, ts[i+1], ctx)
+ return r
+
+def ParOr(*ts, **ks):
+ """Return a tactic that applies the tactics in `*ts` in parallel until one of them succeeds (it doesn't fail).
+
+ >>> x = Int('x')
+ >>> t = ParOr(Tactic('simplify'), Tactic('fail'))
+ >>> t(x + 1 == 2)
+ [[x == 1]]
+ """
+ if __debug__:
+ _z3_assert(len(ts) >= 2, "At least two arguments expected")
+ ctx = _get_ctx(ks.get('ctx', None))
+ ts = [ _to_tactic(t, ctx) for t in ts ]
+ sz = len(ts)
+ _args = (TacticObj * sz)()
+ for i in range(sz):
+ _args[i] = ts[i].tactic
+ return Tactic(Z3_tactic_par_or(ctx.ref(), sz, _args), ctx)
+
+def ParThen(t1, t2, ctx=None):
+ """Return a tactic that applies t1 and then t2 to every subgoal produced by t1. The subgoals are processed in parallel.
+
+ >>> x, y = Ints('x y')
+ >>> t = ParThen(Tactic('split-clause'), Tactic('propagate-values'))
+ >>> t(And(Or(x == 1, x == 2), y == x + 1))
+ [[x == 1, y == 2], [x == 2, y == 3]]
+ """
+ t1 = _to_tactic(t1, ctx)
+ t2 = _to_tactic(t2, ctx)
+ if __debug__:
+ _z3_assert(t1.ctx == t2.ctx, "Context mismatch")
+ return Tactic(Z3_tactic_par_and_then(t1.ctx.ref(), t1.tactic, t2.tactic), t1.ctx)
+
+def ParAndThen(t1, t2, ctx=None):
+ """Alias for ParThen(t1, t2, ctx)."""
+ return ParThen(t1, t2, ctx)
+
+def With(t, *args, **keys):
+ """Return a tactic that applies tactic `t` using the given configuration options.
+
+ >>> x, y = Ints('x y')
+ >>> t = With(Tactic('simplify'), som=True)
+ >>> t((x + 1)*(y + 2) == 0)
+ [[2*x + y + x*y == -2]]
+ """
+ ctx = keys.get('ctx', None)
+ t = _to_tactic(t, ctx)
+ p = args2params(args, keys, t.ctx)
+ return Tactic(Z3_tactic_using_params(t.ctx.ref(), t.tactic, p.params), t.ctx)
+
+def Repeat(t, max=4294967295, ctx=None):
+ """Return a tactic that keeps applying `t` until the goal is not modified anymore or the maximum number of iterations `max` is reached.
+
+ >>> x, y = Ints('x y')
+ >>> c = And(Or(x == 0, x == 1), Or(y == 0, y == 1), x > y)
+ >>> t = Repeat(OrElse(Tactic('split-clause'), Tactic('skip')))
+ >>> r = t(c)
+ >>> for subgoal in r: print(subgoal)
+ [x == 0, y == 0, x > y]
+ [x == 0, y == 1, x > y]
+ [x == 1, y == 0, x > y]
+ [x == 1, y == 1, x > y]
+ >>> t = Then(t, Tactic('propagate-values'))
+ >>> t(c)
+ [[x == 1, y == 0]]
+ """
+ t = _to_tactic(t, ctx)
+ return Tactic(Z3_tactic_repeat(t.ctx.ref(), t.tactic, max), t.ctx)
+
+def TryFor(t, ms, ctx=None):
+ """Return a tactic that applies `t` to a given goal for `ms` milliseconds.
+
+ If `t` does not terminate in `ms` milliseconds, then it fails.
+ """
+ t = _to_tactic(t, ctx)
+ return Tactic(Z3_tactic_try_for(t.ctx.ref(), t.tactic, ms), t.ctx)
+
+def tactics(ctx=None):
+ """Return a list of all available tactics in Z3.
+
+ >>> l = tactics()
+ >>> l.count('simplify') == 1
+ True
+ """
+ ctx = _get_ctx(ctx)
+ return [ Z3_get_tactic_name(ctx.ref(), i) for i in range(Z3_get_num_tactics(ctx.ref())) ]
+
+def tactic_description(name, ctx=None):
+ """Return a short description for the tactic named `name`.
+
+ >>> d = tactic_description('simplify')
+ """
+ ctx = _get_ctx(ctx)
+ return Z3_tactic_get_descr(ctx.ref(), name)
+
+def describe_tactics():
+ """Display a (tabular) description of all available tactics in Z3."""
+ if in_html_mode():
+ even = True
+ print('<table border="1" cellpadding="2" cellspacing="0">')
+ for t in tactics():
+ if even:
+ print('<tr style="background-color:#CFCFCF">')
+ even = False
+ else:
+ print('<tr>')
+ even = True
+ print('<td>%s</td><td>%s</td></tr>' % (t, insert_line_breaks(tactic_description(t), 40)))
+ print('</table>')
+ else:
+ for t in tactics():
+ print('%s : %s' % (t, tactic_description(t)))
+
+class Probe:
+ """Probes are used to inspect a goal (aka problem) and collect information that may be used to decide which solver and/or preprocessing step will be used."""
+ def __init__(self, probe, ctx=None):
+ self.ctx = _get_ctx(ctx)
+ self.probe = None
+ if isinstance(probe, ProbeObj):
+ self.probe = probe
+ elif isinstance(probe, float):
+ self.probe = Z3_probe_const(self.ctx.ref(), probe)
+ elif _is_int(probe):
+ self.probe = Z3_probe_const(self.ctx.ref(), float(probe))
+ elif isinstance(probe, bool):
+ if probe:
+ self.probe = Z3_probe_const(self.ctx.ref(), 1.0)
+ else:
+ self.probe = Z3_probe_const(self.ctx.ref(), 0.0)
+ else:
+ if __debug__:
+ _z3_assert(isinstance(probe, str), "probe name expected")
+ try:
+ self.probe = Z3_mk_probe(self.ctx.ref(), probe)
+ except Z3Exception:
+ raise Z3Exception("unknown probe '%s'" % probe)
+ Z3_probe_inc_ref(self.ctx.ref(), self.probe)
+
+ def __del__(self):
+ if self.probe is not None and self.ctx.ref() is not None:
+ Z3_probe_dec_ref(self.ctx.ref(), self.probe)
+
+ def __lt__(self, other):
+ """Return a probe that evaluates to "true" when the value returned by `self` is less than the value returned by `other`.
+
+ >>> p = Probe('size') < 10
+ >>> x = Int('x')
+ >>> g = Goal()
+ >>> g.add(x > 0)
+ >>> g.add(x < 10)
+ >>> p(g)
+ 1.0
+ """
+ return Probe(Z3_probe_lt(self.ctx.ref(), self.probe, _to_probe(other, self.ctx).probe), self.ctx)
+
+ def __gt__(self, other):
+ """Return a probe that evaluates to "true" when the value returned by `self` is greater than the value returned by `other`.
+
+ >>> p = Probe('size') > 10
+ >>> x = Int('x')
+ >>> g = Goal()
+ >>> g.add(x > 0)
+ >>> g.add(x < 10)
+ >>> p(g)
+ 0.0
+ """
+ return Probe(Z3_probe_gt(self.ctx.ref(), self.probe, _to_probe(other, self.ctx).probe), self.ctx)
+
+ def __le__(self, other):
+ """Return a probe that evaluates to "true" when the value returned by `self` is less than or equal to the value returned by `other`.
+
+ >>> p = Probe('size') <= 2
+ >>> x = Int('x')
+ >>> g = Goal()
+ >>> g.add(x > 0)
+ >>> g.add(x < 10)
+ >>> p(g)
+ 1.0
+ """
+ return Probe(Z3_probe_le(self.ctx.ref(), self.probe, _to_probe(other, self.ctx).probe), self.ctx)
+
+ def __ge__(self, other):
+ """Return a probe that evaluates to "true" when the value returned by `self` is greater than or equal to the value returned by `other`.
+
+ >>> p = Probe('size') >= 2
+ >>> x = Int('x')
+ >>> g = Goal()
+ >>> g.add(x > 0)
+ >>> g.add(x < 10)
+ >>> p(g)
+ 1.0
+ """
+ return Probe(Z3_probe_ge(self.ctx.ref(), self.probe, _to_probe(other, self.ctx).probe), self.ctx)
+
+ def __eq__(self, other):
+ """Return a probe that evaluates to "true" when the value returned by `self` is equal to the value returned by `other`.
+
+ >>> p = Probe('size') == 2
+ >>> x = Int('x')
+ >>> g = Goal()
+ >>> g.add(x > 0)
+ >>> g.add(x < 10)
+ >>> p(g)
+ 1.0
+ """
+ return Probe(Z3_probe_eq(self.ctx.ref(), self.probe, _to_probe(other, self.ctx).probe), self.ctx)
+
+ def __ne__(self, other):
+ """Return a probe that evaluates to "true" when the value returned by `self` is not equal to the value returned by `other`.
+
+ >>> p = Probe('size') != 2
+ >>> x = Int('x')
+ >>> g = Goal()
+ >>> g.add(x > 0)
+ >>> g.add(x < 10)
+ >>> p(g)
+ 0.0
+ """
+ p = self.__eq__(other)
+ return Probe(Z3_probe_not(self.ctx.ref(), p.probe), self.ctx)
+
+ def __call__(self, goal):
+ """Evaluate the probe `self` in the given goal.
+
+ >>> p = Probe('size')
+ >>> x = Int('x')
+ >>> g = Goal()
+ >>> g.add(x > 0)
+ >>> g.add(x < 10)
+ >>> p(g)
+ 2.0
+ >>> g.add(x < 20)
+ >>> p(g)
+ 3.0
+ >>> p = Probe('num-consts')
+ >>> p(g)
+ 1.0
+ >>> p = Probe('is-propositional')
+ >>> p(g)
+ 0.0
+ >>> p = Probe('is-qflia')
+ >>> p(g)
+ 1.0
+ """
+ if __debug__:
+ _z3_assert(isinstance(goal, Goal) or isinstance(goal, BoolRef), "Z3 Goal or Boolean expression expected")
+ goal = _to_goal(goal)
+ return Z3_probe_apply(self.ctx.ref(), self.probe, goal.goal)
+
+def is_probe(p):
+ """Return `True` if `p` is a Z3 probe.
+
+ >>> is_probe(Int('x'))
+ False
+ >>> is_probe(Probe('memory'))
+ True
+ """
+ return isinstance(p, Probe)
+
+def _to_probe(p, ctx=None):
+ if is_probe(p):
+ return p
+ else:
+ return Probe(p, ctx)
+
+def probes(ctx=None):
+ """Return a list of all available probes in Z3.
+
+ >>> l = probes()
+ >>> l.count('memory') == 1
+ True
+ """
+ ctx = _get_ctx(ctx)
+ return [ Z3_get_probe_name(ctx.ref(), i) for i in range(Z3_get_num_probes(ctx.ref())) ]
+
+def probe_description(name, ctx=None):
+ """Return a short description for the probe named `name`.
+
+ >>> d = probe_description('memory')
+ """
+ ctx = _get_ctx(ctx)
+ return Z3_probe_get_descr(ctx.ref(), name)
+
+def describe_probes():
+ """Display a (tabular) description of all available probes in Z3."""
+ if in_html_mode():
+ even = True
+ print('<table border="1" cellpadding="2" cellspacing="0">')
+ for p in probes():
+ if even:
+ print('<tr style="background-color:#CFCFCF">')
+ even = False
+ else:
+ print('<tr>')
+ even = True
+ print('<td>%s</td><td>%s</td></tr>' % (p, insert_line_breaks(probe_description(p), 40)))
+ print('</table>')
+ else:
+ for p in probes():
+ print('%s : %s' % (p, probe_description(p)))
+
+def _probe_nary(f, args, ctx):
+ if __debug__:
+ _z3_assert(len(args) > 0, "At least one argument expected")
+ num = len(args)
+ r = _to_probe(args[0], ctx)
+ for i in range(num - 1):
+ r = Probe(f(ctx.ref(), r.probe, _to_probe(args[i+1], ctx).probe), ctx)
+ return r
+
+def _probe_and(args, ctx):
+ return _probe_nary(Z3_probe_and, args, ctx)
+
+def _probe_or(args, ctx):
+ return _probe_nary(Z3_probe_or, args, ctx)
+
+def FailIf(p, ctx=None):
+ """Return a tactic that fails if the probe `p` evaluates to true. Otherwise, it returns the input goal unmodified.
+
+ In the following example, the tactic applies 'simplify' if and only if there are more than 2 constraints in the goal.
+
+ >>> t = OrElse(FailIf(Probe('size') > 2), Tactic('simplify'))
+ >>> x, y = Ints('x y')
+ >>> g = Goal()
+ >>> g.add(x > 0)
+ >>> g.add(y > 0)
+ >>> t(g)
+ [[x > 0, y > 0]]
+ >>> g.add(x == y + 1)
+ >>> t(g)
+ [[Not(x <= 0), Not(y <= 0), x == 1 + y]]
+ """
+ p = _to_probe(p, ctx)
+ return Tactic(Z3_tactic_fail_if(p.ctx.ref(), p.probe), p.ctx)
+
+def When(p, t, ctx=None):
+ """Return a tactic that applies tactic `t` only if probe `p` evaluates to true. Otherwise, it returns the input goal unmodified.
+
+ >>> t = When(Probe('size') > 2, Tactic('simplify'))
+ >>> x, y = Ints('x y')
+ >>> g = Goal()
+ >>> g.add(x > 0)
+ >>> g.add(y > 0)
+ >>> t(g)
+ [[x > 0, y > 0]]
+ >>> g.add(x == y + 1)
+ >>> t(g)
+ [[Not(x <= 0), Not(y <= 0), x == 1 + y]]
+ """
+ p = _to_probe(p, ctx)
+ t = _to_tactic(t, ctx)
+ return Tactic(Z3_tactic_when(t.ctx.ref(), p.probe, t.tactic), t.ctx)
+
+def Cond(p, t1, t2, ctx=None):
+ """Return a tactic that applies tactic `t1` to a goal if probe `p` evaluates to true, and `t2` otherwise.
+
+ >>> t = Cond(Probe('is-qfnra'), Tactic('qfnra'), Tactic('smt'))
+ """
+ p = _to_probe(p, ctx)
+ t1 = _to_tactic(t1, ctx)
+ t2 = _to_tactic(t2, ctx)
+ return Tactic(Z3_tactic_cond(t1.ctx.ref(), p.probe, t1.tactic, t2.tactic), t1.ctx)
+
+#########################################
+#
+# Utils
+#
+#########################################
+
+def simplify(a, *arguments, **keywords):
+ """Simplify the expression `a` using the given options.
+
+ This function has many options. Use `help_simplify` to obtain the complete list.
+
+ >>> x = Int('x')
+ >>> y = Int('y')
+ >>> simplify(x + 1 + y + x + 1)
+ 2 + 2*x + y
+ >>> simplify((x + 1)*(y + 1), som=True)
+ 1 + x + y + x*y
+ >>> simplify(Distinct(x, y, 1), blast_distinct=True)
+ And(Not(x == y), Not(x == 1), Not(y == 1))
+ >>> simplify(And(x == 0, y == 1), elim_and=True)
+ Not(Or(Not(x == 0), Not(y == 1)))
+ """
+ if __debug__:
+ _z3_assert(is_expr(a), "Z3 expression expected")
+ if len(arguments) > 0 or len(keywords) > 0:
+ p = args2params(arguments, keywords, a.ctx)
+ return _to_expr_ref(Z3_simplify_ex(a.ctx_ref(), a.as_ast(), p.params), a.ctx)
+ else:
+ return _to_expr_ref(Z3_simplify(a.ctx_ref(), a.as_ast()), a.ctx)
+
+def help_simplify():
+ """Return a string describing all options available for Z3 `simplify` procedure."""
+ print(Z3_simplify_get_help(main_ctx().ref()))
+
+def simplify_param_descrs():
+ """Return the set of parameter descriptions for Z3 `simplify` procedure."""
+ return ParamDescrsRef(Z3_simplify_get_param_descrs(main_ctx().ref()), main_ctx())
+
+def substitute(t, *m):
+ """Apply substitution m on t, m is a list of pairs of the form (from, to). Every occurrence in t of from is replaced with to.
+
+ >>> x = Int('x')
+ >>> y = Int('y')
+ >>> substitute(x + 1, (x, y + 1))
+ y + 1 + 1
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> substitute(f(x) + f(y), (f(x), IntVal(1)), (f(y), IntVal(1)))
+ 1 + 1
+ """
+ if isinstance(m, tuple):
+ m1 = _get_args(m)
+ if isinstance(m1, list):
+ m = m1
+ if __debug__:
+ _z3_assert(is_expr(t), "Z3 expression expected")
+ _z3_assert(all([isinstance(p, tuple) and is_expr(p[0]) and is_expr(p[1]) and p[0].sort().eq(p[1].sort()) for p in m]), "Z3 invalid substitution, expression pairs expected.")
+ num = len(m)
+ _from = (Ast * num)()
+ _to = (Ast * num)()
+ for i in range(num):
+ _from[i] = m[i][0].as_ast()
+ _to[i] = m[i][1].as_ast()
+ return _to_expr_ref(Z3_substitute(t.ctx.ref(), t.as_ast(), num, _from, _to), t.ctx)
+
+def substitute_vars(t, *m):
+ """Substitute the free variables in t with the expression in m.
+
+ >>> v0 = Var(0, IntSort())
+ >>> v1 = Var(1, IntSort())
+ >>> x = Int('x')
+ >>> f = Function('f', IntSort(), IntSort(), IntSort())
+ >>> # replace v0 with x+1 and v1 with x
+ >>> substitute_vars(f(v0, v1), x + 1, x)
+ f(x + 1, x)
+ """
+ if __debug__:
+ _z3_assert(is_expr(t), "Z3 expression expected")
+ _z3_assert(all([is_expr(n) for n in m]), "Z3 invalid substitution, list of expressions expected.")
+ num = len(m)
+ _to = (Ast * num)()
+ for i in range(num):
+ _to[i] = m[i].as_ast()
+ return _to_expr_ref(Z3_substitute_vars(t.ctx.ref(), t.as_ast(), num, _to), t.ctx)
+
+def Sum(*args):
+ """Create the sum of the Z3 expressions.
+
+ >>> a, b, c = Ints('a b c')
+ >>> Sum(a, b, c)
+ a + b + c
+ >>> Sum([a, b, c])
+ a + b + c
+ >>> A = IntVector('a', 5)
+ >>> Sum(A)
+ a__0 + a__1 + a__2 + a__3 + a__4
+ """
+ args = _get_args(args)
+ if len(args) == 0:
+ return 0
+ ctx = _ctx_from_ast_arg_list(args)
+ if ctx is None:
+ return _reduce(lambda a, b: a + b, args, 0)
+ args = _coerce_expr_list(args, ctx)
+ if is_bv(args[0]):
+ return _reduce(lambda a, b: a + b, args, 0)
+ else:
+ _args, sz = _to_ast_array(args)
+ return ArithRef(Z3_mk_add(ctx.ref(), sz, _args), ctx)
+
+
+def Product(*args):
+ """Create the product of the Z3 expressions.
+
+ >>> a, b, c = Ints('a b c')
+ >>> Product(a, b, c)
+ a*b*c
+ >>> Product([a, b, c])
+ a*b*c
+ >>> A = IntVector('a', 5)
+ >>> Product(A)
+ a__0*a__1*a__2*a__3*a__4
+ """
+ args = _get_args(args)
+ if len(args) == 0:
+ return 1
+ ctx = _ctx_from_ast_arg_list(args)
+ if ctx is None:
+ return _reduce(lambda a, b: a * b, args, 1)
+ args = _coerce_expr_list(args, ctx)
+ if is_bv(args[0]):
+ return _reduce(lambda a, b: a * b, args, 1)
+ else:
+ _args, sz = _to_ast_array(args)
+ return ArithRef(Z3_mk_mul(ctx.ref(), sz, _args), ctx)
+
+def AtMost(*args):
+ """Create an at-most Pseudo-Boolean k constraint.
+
+ >>> a, b, c = Bools('a b c')
+ >>> f = AtMost(a, b, c, 2)
+ """
+ args = _get_args(args)
+ if __debug__:
+ _z3_assert(len(args) > 1, "Non empty list of arguments expected")
+ ctx = _ctx_from_ast_arg_list(args)
+ if __debug__:
+ _z3_assert(ctx is not None, "At least one of the arguments must be a Z3 expression")
+ args1 = _coerce_expr_list(args[:-1], ctx)
+ k = args[-1]
+ _args, sz = _to_ast_array(args1)
+ return BoolRef(Z3_mk_atmost(ctx.ref(), sz, _args, k), ctx)
+
+def AtLeast(*args):
+ """Create an at-most Pseudo-Boolean k constraint.
+
+ >>> a, b, c = Bools('a b c')
+ >>> f = AtLeast(a, b, c, 2)
+ """
+ def mk_not(a):
+ if is_not(a):
+ return a.arg(0)
+ else:
+ return Not(a)
+ args = _get_args(args)
+ if __debug__:
+ _z3_assert(len(args) > 1, "Non empty list of arguments expected")
+ ctx = _ctx_from_ast_arg_list(args)
+ if __debug__:
+ _z3_assert(ctx is not None, "At least one of the arguments must be a Z3 expression")
+ args1 = _coerce_expr_list(args[:-1], ctx)
+ args1 = [ mk_not(a) for a in args1 ]
+ k = len(args1) - args[-1]
+ _args, sz = _to_ast_array(args1)
+ return BoolRef(Z3_mk_atmost(ctx.ref(), sz, _args, k), ctx)
+
+def PbLe(args, k):
+ """Create a Pseudo-Boolean inequality k constraint.
+
+ >>> a, b, c = Bools('a b c')
+ >>> f = PbLe(((a,1),(b,3),(c,2)), 3)
+ """
+ args = _get_args(args)
+ args, coeffs = zip(*args)
+ if __debug__:
+ _z3_assert(len(args) > 0, "Non empty list of arguments expected")
+ ctx = _ctx_from_ast_arg_list(args)
+ if __debug__:
+ _z3_assert(ctx is not None, "At least one of the arguments must be a Z3 expression")
+ args = _coerce_expr_list(args, ctx)
+ _args, sz = _to_ast_array(args)
+ _coeffs = (ctypes.c_int * len(coeffs))()
+ for i in range(len(coeffs)):
+ _coeffs[i] = coeffs[i]
+ return BoolRef(Z3_mk_pble(ctx.ref(), sz, _args, _coeffs, k), ctx)
+
+def PbEq(args, k):
+ """Create a Pseudo-Boolean inequality k constraint.
+
+ >>> a, b, c = Bools('a b c')
+ >>> f = PbEq(((a,1),(b,3),(c,2)), 3)
+ """
+ args = _get_args(args)
+ args, coeffs = zip(*args)
+ if __debug__:
+ _z3_assert(len(args) > 0, "Non empty list of arguments expected")
+ ctx = _ctx_from_ast_arg_list(args)
+ if __debug__:
+ _z3_assert(ctx is not None, "At least one of the arguments must be a Z3 expression")
+ args = _coerce_expr_list(args, ctx)
+ _args, sz = _to_ast_array(args)
+ _coeffs = (ctypes.c_int * len(coeffs))()
+ for i in range(len(coeffs)):
+ _coeffs[i] = coeffs[i]
+ return BoolRef(Z3_mk_pbeq(ctx.ref(), sz, _args, _coeffs, k), ctx)
+
+
+def solve(*args, **keywords):
+ """Solve the constraints `*args`.
+
+ This is a simple function for creating demonstrations. It creates a solver,
+ configure it using the options in `keywords`, adds the constraints
+ in `args`, and invokes check.
+
+ >>> a = Int('a')
+ >>> solve(a > 0, a < 2)
+ [a = 1]
+ """
+ s = Solver()
+ s.set(**keywords)
+ s.add(*args)
+ if keywords.get('show', False):
+ print(s)
+ r = s.check()
+ if r == unsat:
+ print("no solution")
+ elif r == unknown:
+ print("failed to solve")
+ try:
+ print(s.model())
+ except Z3Exception:
+ return
+ else:
+ print(s.model())
+
+def solve_using(s, *args, **keywords):
+ """Solve the constraints `*args` using solver `s`.
+
+ This is a simple function for creating demonstrations. It is similar to `solve`,
+ but it uses the given solver `s`.
+ It configures solver `s` using the options in `keywords`, adds the constraints
+ in `args`, and invokes check.
+ """
+ if __debug__:
+ _z3_assert(isinstance(s, Solver), "Solver object expected")
+ s.set(**keywords)
+ s.add(*args)
+ if keywords.get('show', False):
+ print("Problem:")
+ print(s)
+ r = s.check()
+ if r == unsat:
+ print("no solution")
+ elif r == unknown:
+ print("failed to solve")
+ try:
+ print(s.model())
+ except Z3Exception:
+ return
+ else:
+ if keywords.get('show', False):
+ print("Solution:")
+ print(s.model())
+
+def prove(claim, **keywords):
+ """Try to prove the given claim.
+
+ This is a simple function for creating demonstrations. It tries to prove
+ `claim` by showing the negation is unsatisfiable.
+
+ >>> p, q = Bools('p q')
+ >>> prove(Not(And(p, q)) == Or(Not(p), Not(q)))
+ proved
+ """
+ if __debug__:
+ _z3_assert(is_bool(claim), "Z3 Boolean expression expected")
+ s = Solver()
+ s.set(**keywords)
+ s.add(Not(claim))
+ if keywords.get('show', False):
+ print(s)
+ r = s.check()
+ if r == unsat:
+ print("proved")
+ elif r == unknown:
+ print("failed to prove")
+ print(s.model())
+ else:
+ print("counterexample")
+ print(s.model())
+
+def _solve_html(*args, **keywords):
+ """Version of funcion `solve` used in RiSE4Fun."""
+ s = Solver()
+ s.set(**keywords)
+ s.add(*args)
+ if keywords.get('show', False):
+ print("<b>Problem:</b>")
+ print(s)
+ r = s.check()
+ if r == unsat:
+ print("<b>no solution</b>")
+ elif r == unknown:
+ print("<b>failed to solve</b>")
+ try:
+ print(s.model())
+ except Z3Exception:
+ return
+ else:
+ if keywords.get('show', False):
+ print("<b>Solution:</b>")
+ print(s.model())
+
+def _solve_using_html(s, *args, **keywords):
+ """Version of funcion `solve_using` used in RiSE4Fun."""
+ if __debug__:
+ _z3_assert(isinstance(s, Solver), "Solver object expected")
+ s.set(**keywords)
+ s.add(*args)
+ if keywords.get('show', False):
+ print("<b>Problem:</b>")
+ print(s)
+ r = s.check()
+ if r == unsat:
+ print("<b>no solution</b>")
+ elif r == unknown:
+ print("<b>failed to solve</b>")
+ try:
+ print(s.model())
+ except Z3Exception:
+ return
+ else:
+ if keywords.get('show', False):
+ print("<b>Solution:</b>")
+ print(s.model())
+
+def _prove_html(claim, **keywords):
+ """Version of funcion `prove` used in RiSE4Fun."""
+ if __debug__:
+ _z3_assert(is_bool(claim), "Z3 Boolean expression expected")
+ s = Solver()
+ s.set(**keywords)
+ s.add(Not(claim))
+ if keywords.get('show', False):
+ print(s)
+ r = s.check()
+ if r == unsat:
+ print("<b>proved</b>")
+ elif r == unknown:
+ print("<b>failed to prove</b>")
+ print(s.model())
+ else:
+ print("<b>counterexample</b>")
+ print(s.model())
+
+def _dict2sarray(sorts, ctx):
+ sz = len(sorts)
+ _names = (Symbol * sz)()
+ _sorts = (Sort * sz) ()
+ i = 0
+ for k in sorts:
+ v = sorts[k]
+ if __debug__:
+ _z3_assert(isinstance(k, str), "String expected")
+ _z3_assert(is_sort(v), "Z3 sort expected")
+ _names[i] = to_symbol(k, ctx)
+ _sorts[i] = v.ast
+ i = i + 1
+ return sz, _names, _sorts
+
+def _dict2darray(decls, ctx):
+ sz = len(decls)
+ _names = (Symbol * sz)()
+ _decls = (FuncDecl * sz) ()
+ i = 0
+ for k in decls:
+ v = decls[k]
+ if __debug__:
+ _z3_assert(isinstance(k, str), "String expected")
+ _z3_assert(is_func_decl(v) or is_const(v), "Z3 declaration or constant expected")
+ _names[i] = to_symbol(k, ctx)
+ if is_const(v):
+ _decls[i] = v.decl().ast
+ else:
+ _decls[i] = v.ast
+ i = i + 1
+ return sz, _names, _decls
+
+def parse_smt2_string(s, sorts={}, decls={}, ctx=None):
+ """Parse a string in SMT 2.0 format using the given sorts and decls.
+
+ The arguments sorts and decls are Python dictionaries used to initialize
+ the symbol table used for the SMT 2.0 parser.
+
+ >>> parse_smt2_string('(declare-const x Int) (assert (> x 0)) (assert (< x 10))')
+ And(x > 0, x < 10)
+ >>> x, y = Ints('x y')
+ >>> f = Function('f', IntSort(), IntSort())
+ >>> parse_smt2_string('(assert (> (+ foo (g bar)) 0))', decls={ 'foo' : x, 'bar' : y, 'g' : f})
+ x + f(y) > 0
+ >>> parse_smt2_string('(declare-const a U) (assert (> a 0))', sorts={ 'U' : IntSort() })
+ a > 0
+ """
+ ctx = _get_ctx(ctx)
+ ssz, snames, ssorts = _dict2sarray(sorts, ctx)
+ dsz, dnames, ddecls = _dict2darray(decls, ctx)
+ return _to_expr_ref(Z3_parse_smtlib2_string(ctx.ref(), s, ssz, snames, ssorts, dsz, dnames, ddecls), ctx)
+
+def parse_smt2_file(f, sorts={}, decls={}, ctx=None):
+ """Parse a file in SMT 2.0 format using the given sorts and decls.
+
+ This function is similar to parse_smt2_string().
+ """
+ ctx = _get_ctx(ctx)
+ ssz, snames, ssorts = _dict2sarray(sorts, ctx)
+ dsz, dnames, ddecls = _dict2darray(decls, ctx)
+ return _to_expr_ref(Z3_parse_smtlib2_file(ctx.ref(), f, ssz, snames, ssorts, dsz, dnames, ddecls), ctx)
+
+def Interpolant(a,ctx=None):
+ """Create an interpolation operator.
+
+ The argument is an interpolation pattern (see tree_interpolant).
+
+ >>> x = Int('x')
+ >>> print(Interpolant(x>0))
+ interp(x > 0)
+ """
+ ctx = _get_ctx(_ctx_from_ast_arg_list([a], ctx))
+ s = BoolSort(ctx)
+ a = s.cast(a)
+ return BoolRef(Z3_mk_interpolant(ctx.ref(), a.as_ast()), ctx)
+
+def tree_interpolant(pat,p=None,ctx=None):
+ """Compute interpolant for a tree of formulas.
+
+ The input is an interpolation pattern over a set of formulas C.
+ The pattern pat is a formula combining the formulas in C using
+ logical conjunction and the "interp" operator (see Interp). This
+ interp operator is logically the identity operator. It marks the
+ sub-formulas of the pattern for which interpolants should be
+ computed. The interpolant is a map sigma from marked subformulas
+ to formulas, such that, for each marked subformula phi of pat
+ (where phi sigma is phi with sigma(psi) substituted for each
+ subformula psi of phi such that psi in dom(sigma)):
+
+ 1) phi sigma implies sigma(phi), and
+
+ 2) sigma(phi) is in the common uninterpreted vocabulary between
+ the formulas of C occurring in phi and those not occurring in
+ phi
+
+ and moreover pat sigma implies false. In the simplest case
+ an interpolant for the pattern "(and (interp A) B)" maps A
+ to an interpolant for A /\ B.
+
+ The return value is a vector of formulas representing sigma. This
+ vector contains sigma(phi) for each marked subformula of pat, in
+ pre-order traversal. This means that subformulas of phi occur before phi
+ in the vector. Also, subformulas that occur multiply in pat will
+ occur multiply in the result vector.
+
+ If pat is satisfiable, raises an object of class ModelRef
+ that represents a model of pat.
+
+ If neither a proof of unsatisfiability nor a model is obtained
+ (for example, because of a timeout, or because models are disabled)
+ then None is returned.
+
+ If parameters p are supplied, these are used in creating the
+ solver that determines satisfiability.
+
+ >>> x = Int('x')
+ >>> y = Int('y')
+ >>> print(tree_interpolant(And(Interpolant(x < 0), Interpolant(y > 2), x == y)))
+ [Not(x >= 0), Not(y <= 2)]
+
+ # >>> g = And(Interpolant(x<0),x<2)
+ # >>> try:
+ # ... print tree_interpolant(g).sexpr()
+ # ... except ModelRef as m:
+ # ... print m.sexpr()
+ (define-fun x () Int
+ (- 1))
+ """
+ f = pat
+ ctx = _get_ctx(_ctx_from_ast_arg_list([f], ctx))
+ ptr = (AstVectorObj * 1)()
+ mptr = (Model * 1)()
+ if p is None:
+ p = ParamsRef(ctx)
+ res = Z3_compute_interpolant(ctx.ref(),f.as_ast(),p.params,ptr,mptr)
+ if res == Z3_L_FALSE:
+ return AstVector(ptr[0],ctx)
+ if mptr[0]:
+ raise ModelRef(mptr[0], ctx)
+ return None
+
+def binary_interpolant(a,b,p=None,ctx=None):
+ """Compute an interpolant for a binary conjunction.
+
+ If a & b is unsatisfiable, returns an interpolant for a & b.
+ This is a formula phi such that
+
+ 1) a implies phi
+ 2) b implies not phi
+ 3) All the uninterpreted symbols of phi occur in both a and b.
+
+ If a & b is satisfiable, raises an object of class ModelRef
+ that represents a model of a &b.
+
+ If neither a proof of unsatisfiability nor a model is obtained
+ (for example, because of a timeout, or because models are disabled)
+ then None is returned.
+
+ If parameters p are supplied, these are used in creating the
+ solver that determines satisfiability.
+
+ x = Int('x')
+ print(binary_interpolant(x<0,x>2))
+ Not(x >= 0)
+ """
+ f = And(Interpolant(a),b)
+ ti = tree_interpolant(f,p,ctx)
+ return ti[0] if ti is not None else None
+
+def sequence_interpolant(v,p=None,ctx=None):
+ """Compute interpolant for a sequence of formulas.
+
+ If len(v) == N, and if the conjunction of the formulas in v is
+ unsatisfiable, the interpolant is a sequence of formulas w
+ such that len(w) = N-1 and v[0] implies w[0] and for i in 0..N-1:
+
+ 1) w[i] & v[i+1] implies w[i+1] (or false if i+1 = N)
+ 2) All uninterpreted symbols in w[i] occur in both v[0]..v[i]
+ and v[i+1]..v[n]
+
+ Requires len(v) >= 1.
+
+ If a & b is satisfiable, raises an object of class ModelRef
+ that represents a model of a & b.
+
+ If neither a proof of unsatisfiability nor a model is obtained
+ (for example, because of a timeout, or because models are disabled)
+ then None is returned.
+
+ If parameters p are supplied, these are used in creating the
+ solver that determines satisfiability.
+
+ >>> x = Int('x')
+ >>> y = Int('y')
+ >>> print(sequence_interpolant([x < 0, y == x , y > 2]))
+ [Not(x >= 0), Not(y >= 0)]
+ """
+ f = v[0]
+ for i in range(1,len(v)):
+ f = And(Interpolant(f),v[i])
+ return tree_interpolant(f,p,ctx)
+
+
+#########################################
+#
+# Floating-Point Arithmetic
+#
+#########################################
+
+
+# Global default rounding mode
+_dflt_rounding_mode = Z3_OP_FPA_RM_TOWARD_ZERO
+_dflt_fpsort_ebits = 11
+_dflt_fpsort_sbits = 53
+
+def get_default_rounding_mode(ctx=None):
+ """Retrieves the global default rounding mode."""
+ global _dflt_rounding_mode
+ if _dflt_rounding_mode == Z3_OP_FPA_RM_TOWARD_ZERO:
+ return RTZ(ctx)
+ elif _dflt_rounding_mode == Z3_OP_FPA_RM_TOWARD_NEGATIVE:
+ return RTN(ctx)
+ elif _dflt_rounding_mode == Z3_OP_FPA_RM_TOWARD_POSITIVE:
+ return RTP(ctx)
+ elif _dflt_rounding_mode == Z3_OP_FPA_RM_NEAREST_TIES_TO_EVEN:
+ return RNE(ctx)
+ elif _dflt_rounding_mode == Z3_OP_FPA_RM_NEAREST_TIES_TO_AWAY:
+ return RNA(ctx)
+
+def set_default_rounding_mode(rm, ctx=None):
+ global _dflt_rounding_mode
+ if is_fprm_value(rm):
+ _dflt_rounding_mode = rm.decl().kind()
+ else:
+ _z3_assert(_dflt_rounding_mode == Z3_OP_FPA_RM_TOWARD_ZERO or
+ _dflt_rounding_mode == Z3_OP_FPA_RM_TOWARD_NEGATIVE or
+ _dflt_rounding_mode == Z3_OP_FPA_RM_TOWARD_POSITIVE or
+ _dflt_rounding_mode == Z3_OP_FPA_RM_NEAREST_TIES_TO_EVEN or
+ _dflt_rounding_mode == Z3_OP_FPA_RM_NEAREST_TIES_TO_AWAY,
+ "illegal rounding mode")
+ _dflt_rounding_mode = rm
+
+def get_default_fp_sort(ctx=None):
+ return FPSort(_dflt_fpsort_ebits, _dflt_fpsort_sbits, ctx)
+
+def set_default_fp_sort(ebits, sbits, ctx=None):
+ global _dflt_fpsort_ebits
+ global _dflt_fpsort_sbits
+ _dflt_fpsort_ebits = ebits
+ _dflt_fpsort_sbits = sbits
+
+def _dflt_rm(ctx=None):
+ return get_default_rounding_mode(ctx)
+
+def _dflt_fps(ctx=None):
+ return get_default_fp_sort(ctx)
+
+def _coerce_fp_expr_list(alist, ctx):
+ first_fp_sort = None
+ for a in alist:
+ if is_fp(a):
+ if first_fp_sort is None:
+ first_fp_sort = a.sort()
+ elif first_fp_sort == a.sort():
+ pass # OK, same as before
+ else:
+ # we saw at least 2 different float sorts; something will
+ # throw a sort mismatch later, for now assume None.
+ first_fp_sort = None
+ break
+
+ r = []
+ for i in range(len(alist)):
+ a = alist[i]
+ if (isinstance(a, str) and a.contains('2**(') and a.endswith(')')) or _is_int(a) or isinstance(a, float) or isinstance(a, bool):
+ r.append(FPVal(a, None, first_fp_sort, ctx))
+ else:
+ r.append(a)
+ return _coerce_expr_list(r, ctx)
+
+
+### FP Sorts
+
+class FPSortRef(SortRef):
+ """Floating-point sort."""
+
+ def ebits(self):
+ """Retrieves the number of bits reserved for the exponent in the FloatingPoint sort `self`.
+ >>> b = FPSort(8, 24)
+ >>> b.ebits()
+ 8
+ """
+ return int(Z3_fpa_get_ebits(self.ctx_ref(), self.ast))
+
+ def sbits(self):
+ """Retrieves the number of bits reserved for the significand in the FloatingPoint sort `self`.
+ >>> b = FPSort(8, 24)
+ >>> b.sbits()
+ 24
+ """
+ return int(Z3_fpa_get_sbits(self.ctx_ref(), self.ast))
+
+ def cast(self, val):
+ """Try to cast `val` as a floating-point expression.
+ >>> b = FPSort(8, 24)
+ >>> b.cast(1.0)
+ 1
+ >>> b.cast(1.0).sexpr()
+ '(fp #b0 #x7f #b00000000000000000000000)'
+ """
+ if is_expr(val):
+ if __debug__:
+ _z3_assert(self.ctx == val.ctx, "Context mismatch")
+ return val
+ else:
+ return FPVal(val, None, self, self.ctx)
+
+
+def Float16(ctx=None):
+ """Floating-point 16-bit (half) sort."""
+ ctx = _get_ctx(ctx)
+ return FPSortRef(Z3_mk_fpa_sort_16(ctx.ref()), ctx)
+
+def FloatHalf(ctx=None):
+ """Floating-point 16-bit (half) sort."""
+ ctx = _get_ctx(ctx)
+ return FPSortRef(Z3_mk_fpa_sort_half(ctx.ref()), ctx)
+
+def Float32(ctx=None):
+ """Floating-point 32-bit (single) sort."""
+ ctx = _get_ctx(ctx)
+ return FPSortRef(Z3_mk_fpa_sort_32(ctx.ref()), ctx)
+
+def FloatSingle(ctx=None):
+ """Floating-point 32-bit (single) sort."""
+ ctx = _get_ctx(ctx)
+ return FPSortRef(Z3_mk_fpa_sort_single(ctx.ref()), ctx)
+
+def Float64(ctx=None):
+ """Floating-point 64-bit (double) sort."""
+ ctx = _get_ctx(ctx)
+ return FPSortRef(Z3_mk_fpa_sort_64(ctx.ref()), ctx)
+
+def FloatDouble(ctx=None):
+ """Floating-point 64-bit (double) sort."""
+ ctx = _get_ctx(ctx)
+ return FPSortRef(Z3_mk_fpa_sort_double(ctx.ref()), ctx)
+
+def Float128(ctx=None):
+ """Floating-point 128-bit (quadruple) sort."""
+ ctx = _get_ctx(ctx)
+ return FPSortRef(Z3_mk_fpa_sort_128(ctx.ref()), ctx)
+
+def FloatQuadruple(ctx=None):
+ """Floating-point 128-bit (quadruple) sort."""
+ ctx = _get_ctx(ctx)
+ return FPSortRef(Z3_mk_fpa_sort_quadruple(ctx.ref()), ctx)
+
+class FPRMSortRef(SortRef):
+ """"Floating-point rounding mode sort."""
+
+
+def is_fp_sort(s):
+ """Return True if `s` is a Z3 floating-point sort.
+
+ >>> is_fp_sort(FPSort(8, 24))
+ True
+ >>> is_fp_sort(IntSort())
+ False
+ """
+ return isinstance(s, FPSortRef)
+
+def is_fprm_sort(s):
+ """Return True if `s` is a Z3 floating-point rounding mode sort.
+
+ >>> is_fprm_sort(FPSort(8, 24))
+ False
+ >>> is_fprm_sort(RNE().sort())
+ True
+ """
+ return isinstance(s, FPRMSortRef)
+
+### FP Expressions
+
+class FPRef(ExprRef):
+ """Floating-point expressions."""
+
+ def sort(self):
+ """Return the sort of the floating-point expression `self`.
+
+ >>> x = FP('1.0', FPSort(8, 24))
+ >>> x.sort()
+ FPSort(8, 24)
+ >>> x.sort() == FPSort(8, 24)
+ True
+ """
+ return FPSortRef(Z3_get_sort(self.ctx_ref(), self.as_ast()), self.ctx)
+
+ def ebits(self):
+ """Retrieves the number of bits reserved for the exponent in the FloatingPoint expression `self`.
+ >>> b = FPSort(8, 24)
+ >>> b.ebits()
+ 8
+ """
+ return self.sort().ebits();
+
+ def sbits(self):
+ """Retrieves the number of bits reserved for the exponent in the FloatingPoint expression `self`.
+ >>> b = FPSort(8, 24)
+ >>> b.sbits()
+ 24
+ """
+ return self.sort().sbits();
+
+ def as_string(self):
+ """Return a Z3 floating point expression as a Python string."""
+ return Z3_ast_to_string(self.ctx_ref(), self.as_ast())
+
+ def __le__(self, other):
+ return fpLEQ(self, other, self.ctx)
+
+ def __lt__(self, other):
+ return fpLT(self, other, self.ctx)
+
+ def __ge__(self, other):
+ return fpGEQ(self, other, self.ctx)
+
+ def __gt__(self, other):
+ return fpGT(self, other, self.ctx)
+
+ def __add__(self, other):
+ """Create the Z3 expression `self + other`.
+
+ >>> x = FP('x', FPSort(8, 24))
+ >>> y = FP('y', FPSort(8, 24))
+ >>> x + y
+ x + y
+ >>> (x + y).sort()
+ FPSort(8, 24)
+ """
+ [a, b] = _coerce_fp_expr_list([self, other], self.ctx)
+ return fpAdd(_dflt_rm(), a, b, self.ctx)
+
+ def __radd__(self, other):
+ """Create the Z3 expression `other + self`.
+
+ >>> x = FP('x', FPSort(8, 24))
+ >>> 10 + x
+ 1.25*(2**3) + x
+ """
+ [a, b] = _coerce_fp_expr_list([other, self], self.ctx)
+ return fpAdd(_dflt_rm(), a, b, self.ctx)
+
+ def __sub__(self, other):
+ """Create the Z3 expression `self - other`.
+
+ >>> x = FP('x', FPSort(8, 24))
+ >>> y = FP('y', FPSort(8, 24))
+ >>> x - y
+ x - y
+ >>> (x - y).sort()
+ FPSort(8, 24)
+ """
+ [a, b] = _coerce_fp_expr_list([self, other], self.ctx)
+ return fpSub(_dflt_rm(), a, b, self.ctx)
+
+ def __rsub__(self, other):
+ """Create the Z3 expression `other - self`.
+
+ >>> x = FP('x', FPSort(8, 24))
+ >>> 10 - x
+ 1.25*(2**3) - x
+ """
+ [a, b] = _coerce_fp_expr_list([other, self], self.ctx)
+ return fpSub(_dflt_rm(), a, b, self.ctx)
+
+ def __mul__(self, other):
+ """Create the Z3 expression `self * other`.
+
+ >>> x = FP('x', FPSort(8, 24))
+ >>> y = FP('y', FPSort(8, 24))
+ >>> x * y
+ x * y
+ >>> (x * y).sort()
+ FPSort(8, 24)
+ >>> 10 * y
+ 1.25*(2**3) * y
+ """
+ [a, b] = _coerce_fp_expr_list([self, other], self.ctx)
+ return fpMul(_dflt_rm(), a, b, self.ctx)
+
+ def __rmul__(self, other):
+ """Create the Z3 expression `other * self`.
+
+ >>> x = FP('x', FPSort(8, 24))
+ >>> y = FP('y', FPSort(8, 24))
+ >>> x * y
+ x * y
+ >>> x * 10
+ x * 1.25*(2**3)
+ """
+ [a, b] = _coerce_fp_expr_list([other, self], self.ctx)
+ return fpMul(_dflt_rm(), a, b, self.ctx)
+
+ def __pos__(self):
+ """Create the Z3 expression `+self`."""
+ return self
+
+ def __neg__(self):
+ """Create the Z3 expression `-self`.
+
+ >>> x = FP('x', Float32())
+ >>> -x
+ -x
+ """
+ return fpNeg(self)
+
+ def __div__(self, other):
+ """Create the Z3 expression `self / other`.
+
+ >>> x = FP('x', FPSort(8, 24))
+ >>> y = FP('y', FPSort(8, 24))
+ >>> x / y
+ x / y
+ >>> (x / y).sort()
+ FPSort(8, 24)
+ >>> 10 / y
+ 1.25*(2**3) / y
+ """
+ [a, b] = _coerce_fp_expr_list([self, other], self.ctx)
+ return fpDiv(_dflt_rm(), a, b, self.ctx)
+
+ def __rdiv__(self, other):
+ """Create the Z3 expression `other / self`.
+
+ >>> x = FP('x', FPSort(8, 24))
+ >>> y = FP('y', FPSort(8, 24))
+ >>> x / y
+ x / y
+ >>> x / 10
+ x / 1.25*(2**3)
+ """
+ [a, b] = _coerce_fp_expr_list([other, self], self.ctx)
+ return fpDiv(_dflt_rm(), a, b, self.ctx)
+
+ if not sys.version < '3':
+ def __truediv__(self, other):
+ """Create the Z3 expression division `self / other`."""
+ return self.__div__(other)
+
+ def __rtruediv__(self, other):
+ """Create the Z3 expression division `other / self`."""
+ return self.__rdiv__(other)
+
+ def __mod__(self, other):
+ """Create the Z3 expression mod `self % other`."""
+ return fpRem(self, other)
+
+ def __rmod__(self, other):
+ """Create the Z3 expression mod `other % self`."""
+ return fpRem(other, self)
+
+class FPRMRef(ExprRef):
+ """Floating-point rounding mode expressions"""
+
+ def as_string(self):
+ """Return a Z3 floating point expression as a Python string."""
+ return Z3_ast_to_string(self.ctx_ref(), self.as_ast())
+
+
+def RoundNearestTiesToEven(ctx=None):
+ ctx = _get_ctx(ctx)
+ return FPRMRef(Z3_mk_fpa_round_nearest_ties_to_even(ctx.ref()), ctx)
+
+def RNE (ctx=None):
+ ctx = _get_ctx(ctx)
+ return FPRMRef(Z3_mk_fpa_round_nearest_ties_to_even(ctx.ref()), ctx)
+
+def RoundNearestTiesToAway(ctx=None):
+ ctx = _get_ctx(ctx)
+ return FPRMRef(Z3_mk_fpa_round_nearest_ties_to_away(ctx.ref()), ctx)
+
+def RNA (ctx=None):
+ ctx = _get_ctx(ctx)
+ return FPRMRef(Z3_mk_fpa_round_nearest_ties_to_away(ctx.ref()), ctx)
+
+def RoundTowardPositive(ctx=None):
+ ctx = _get_ctx(ctx)
+ return FPRMRef(Z3_mk_fpa_round_toward_positive(ctx.ref()), ctx)
+
+def RTP(ctx=None):
+ ctx = _get_ctx(ctx)
+ return FPRMRef(Z3_mk_fpa_round_toward_positive(ctx.ref()), ctx)
+
+def RoundTowardNegative(ctx=None):
+ ctx = _get_ctx(ctx)
+ return FPRMRef(Z3_mk_fpa_round_toward_negative(ctx.ref()), ctx)
+
+def RTN(ctx=None):
+ ctx = _get_ctx(ctx)
+ return FPRMRef(Z3_mk_fpa_round_toward_negative(ctx.ref()), ctx)
+
+def RoundTowardZero(ctx=None):
+ ctx = _get_ctx(ctx)
+ return FPRMRef(Z3_mk_fpa_round_toward_zero(ctx.ref()), ctx)
+
+def RTZ(ctx=None):
+ ctx = _get_ctx(ctx)
+ return FPRMRef(Z3_mk_fpa_round_toward_zero(ctx.ref()), ctx)
+
+def is_fprm(a):
+ """Return `True` if `a` is a Z3 floating-point rounding mode expression.
+
+ >>> rm = RNE()
+ >>> is_fprm(rm)
+ True
+ >>> rm = 1.0
+ >>> is_fprm(rm)
+ False
+ """
+ return isinstance(a, FPRMRef)
+
+def is_fprm_value(a):
+ """Return `True` if `a` is a Z3 floating-point rounding mode numeral value."""
+ return is_fprm(a) and _is_numeral(a.ctx, a.ast)
+
+### FP Numerals
+
+class FPNumRef(FPRef):
+ def isNaN(self):
+ return self.decl().kind() == Z3_OP_FPA_NAN
+
+ def isInf(self):
+ return self.decl().kind() == Z3_OP_FPA_PLUS_INF or self.decl().kind() == Z3_OP_FPA_MINUS_INF
+
+ def isZero(self):
+ return self.decl().kind() == Z3_OP_FPA_PLUS_ZERO or self.decl().kind() == Z3_OP_FPA_MINUS_ZERO
+
+ def isNegative(self):
+ k = self.decl().kind()
+ return (self.num_args() == 0 and (k == Z3_OP_FPA_MINUS_INF or k == Z3_OP_FPA_MINUS_ZERO)) or (self.sign() == True)
+
+ """
+ The sign of the numeral.
+
+ >>> x = FPNumRef(+1.0, FPSort(8, 24))
+ >>> x.sign()
+ False
+ >>> x = FPNumRef(-1.0, FPSort(8, 24))
+ >>> x.sign()
+ True
+ """
+ def sign(self):
+ l = (ctypes.c_int)()
+ if Z3_fpa_get_numeral_sign(self.ctx.ref(), self.as_ast(), byref(l)) == False:
+ raise Z3Exception("error retrieving the sign of a numeral.")
+ return l.value != 0
+
+ """
+ The significand of the numeral.
+
+ >>> x = FPNumRef(2.5, FPSort(8, 24))
+ >>> x.significand()
+ 1.25
+ """
+ def significand(self):
+ return Z3_fpa_get_numeral_significand_string(self.ctx.ref(), self.as_ast())
+
+ """
+ The exponent of the numeral.
+
+ >>> x = FPNumRef(2.5, FPSort(8, 24))
+ >>> x.exponent()
+ 1
+ """
+ def exponent(self):
+ return Z3_fpa_get_numeral_exponent_string(self.ctx.ref(), self.as_ast())
+
+ """
+ The exponent of the numeral as a long.
+
+ >>> x = FPNumRef(2.5, FPSort(8, 24))
+ >>> x.exponent_as_long()
+ 1
+ """
+ def exponent_as_long(self):
+ ptr = (ctypes.c_longlong * 1)()
+ if not Z3_fpa_get_numeral_exponent_int64(self.ctx.ref(), self.as_ast(), ptr):
+ raise Z3Exception("error retrieving the exponent of a numeral.")
+ return ptr[0]
+
+ """
+ The string representation of the numeral.
+
+ >>> x = FPNumRef(20, FPSort(8, 24))
+ >>> x.as_string()
+ 1.25*(2**4)
+ """
+ def as_string(self):
+ s = Z3_fpa_get_numeral_string(self.ctx.ref(), self.as_ast())
+ return ("FPVal(%s, %s)" % (s, self.sort()))
+
+def is_fp(a):
+ """Return `True` if `a` is a Z3 floating-point expression.
+
+ >>> b = FP('b', FPSort(8, 24))
+ >>> is_fp(b)
+ True
+ >>> is_fp(b + 1.0)
+ True
+ >>> is_fp(Int('x'))
+ False
+ """
+ return isinstance(a, FPRef)
+
+def is_fp_value(a):
+ """Return `True` if `a` is a Z3 floating-point numeral value.
+
+ >>> b = FP('b', FPSort(8, 24))
+ >>> is_fp_value(b)
+ False
+ >>> b = FPVal(1.0, FPSort(8, 24))
+ >>> b
+ 1
+ >>> is_fp_value(b)
+ True
+ """
+ return is_fp(a) and _is_numeral(a.ctx, a.ast)
+
+def FPSort(ebits, sbits, ctx=None):
+ """Return a Z3 floating-point sort of the given sizes. If `ctx=None`, then the global context is used.
+
+ >>> Single = FPSort(8, 24)
+ >>> Double = FPSort(11, 53)
+ >>> Single
+ FPSort(8, 24)
+ >>> x = Const('x', Single)
+ >>> eq(x, FP('x', FPSort(8, 24)))
+ True
+ """
+ ctx = _get_ctx(ctx)
+ return FPSortRef(Z3_mk_fpa_sort(ctx.ref(), ebits, sbits), ctx)
+
+def _to_float_str(val, exp=0):
+ if isinstance(val, float):
+ if math.isnan(val):
+ res = "NaN"
+ elif val == 0.0:
+ sone = math.copysign(1.0, val)
+ if sone < 0.0:
+ return "-0.0"
+ else:
+ return "+0.0"
+ elif val == float("+inf"):
+ res = "+oo"
+ elif val == float("-inf"):
+ res = "-oo"
+ else:
+ v = val.as_integer_ratio()
+ num = v[0]
+ den = v[1]
+ rvs = str(num) + '/' + str(den)
+ res = rvs + 'p' + _to_int_str(exp)
+ elif isinstance(val, bool):
+ if val:
+ res = "1.0"
+ else:
+ res = "0.0"
+ elif _is_int(val):
+ res = str(val)
+ elif isinstance(val, str):
+ inx = val.find('*(2**')
+ if inx == -1:
+ res = val
+ elif val[-1] == ')':
+ res = val[0:inx]
+ exp = str(int(val[inx+5:-1]) + int(exp))
+ else:
+ _z3_assert(False, "String does not have floating-point numeral form.")
+ elif __debug__:
+ _z3_assert(False, "Python value cannot be used to create floating-point numerals.")
+ if exp == 0:
+ return res
+ else:
+ return res + 'p' + exp
+
+
+def fpNaN(s):
+ """Create a Z3 floating-point NaN term.
+
+ >>> s = FPSort(8, 24)
+ >>> set_fpa_pretty(True)
+ >>> fpNaN(s)
+ NaN
+ >>> pb = get_fpa_pretty()
+ >>> set_fpa_pretty(False)
+ >>> fpNaN(s)
+ fpNaN(FPSort(8, 24))
+ >>> set_fpa_pretty(pb)
+ """
+ _z3_assert(isinstance(s, FPSortRef), "sort mismatch")
+ return FPNumRef(Z3_mk_fpa_nan(s.ctx_ref(), s.ast), s.ctx)
+
+def fpPlusInfinity(s):
+ """Create a Z3 floating-point +oo term.
+
+ >>> s = FPSort(8, 24)
+ >>> pb = get_fpa_pretty()
+ >>> set_fpa_pretty(True)
+ >>> fpPlusInfinity(s)
+ +oo
+ >>> set_fpa_pretty(False)
+ >>> fpPlusInfinity(s)
+ fpPlusInfinity(FPSort(8, 24))
+ >>> set_fpa_pretty(pb)
+ """
+ _z3_assert(isinstance(s, FPSortRef), "sort mismatch")
+ return FPNumRef(Z3_mk_fpa_inf(s.ctx_ref(), s.ast, False), s.ctx)
+
+def fpMinusInfinity(s):
+ """Create a Z3 floating-point -oo term."""
+ _z3_assert(isinstance(s, FPSortRef), "sort mismatch")
+ return FPNumRef(Z3_mk_fpa_inf(s.ctx_ref(), s.ast, True), s.ctx)
+
+def fpInfinity(s, negative):
+ """Create a Z3 floating-point +oo or -oo term."""
+ _z3_assert(isinstance(s, FPSortRef), "sort mismatch")
+ _z3_assert(isinstance(negative, bool), "expected Boolean flag")
+ return FPNumRef(Z3_mk_fpa_inf(s.ctx_ref(), s.ast, negative), s.ctx)
+
+def fpPlusZero(s):
+ """Create a Z3 floating-point +0.0 term."""
+ _z3_assert(isinstance(s, FPSortRef), "sort mismatch")
+ return FPNumRef(Z3_mk_fpa_zero(s.ctx_ref(), s.ast, False), s.ctx)
+
+def fpMinusZero(s):
+ """Create a Z3 floating-point -0.0 term."""
+ _z3_assert(isinstance(s, FPSortRef), "sort mismatch")
+ return FPNumRef(Z3_mk_fpa_zero(s.ctx_ref(), s.ast, True), s.ctx)
+
+def fpZero(s, negative):
+ """Create a Z3 floating-point +0.0 or -0.0 term."""
+ _z3_assert(isinstance(s, FPSortRef), "sort mismatch")
+ _z3_assert(isinstance(negative, bool), "expected Boolean flag")
+ return FPNumRef(Z3_mk_fpa_zero(s.ctx_ref(), s.ast, negative), s.ctx)
+
+def FPVal(sig, exp=None, fps=None, ctx=None):
+ """Return a floating-point value of value `val` and sort `fps`. If `ctx=None`, then the global context is used.
+
+ >>> v = FPVal(20.0, FPSort(8, 24))
+ >>> v
+ 1.25*(2**4)
+ >>> print("0x%.8x" % v.exponent_as_long())
+ 0x00000004
+ >>> v = FPVal(2.25, FPSort(8, 24))
+ >>> v
+ 1.125*(2**1)
+ >>> v = FPVal(-2.25, FPSort(8, 24))
+ >>> v
+ -1.125*(2**1)
+ >>> FPVal(-0.0, FPSort(8, 24))
+ -0.0
+ >>> FPVal(0.0, FPSort(8, 24))
+ +0.0
+ >>> FPVal(+0.0, FPSort(8, 24))
+ +0.0
+ """
+ ctx = _get_ctx(ctx)
+ if is_fp_sort(exp):
+ fps = exp
+ exp = None
+ elif fps is None:
+ fps = _dflt_fps(ctx)
+ _z3_assert(is_fp_sort(fps), "sort mismatch")
+ if exp is None:
+ exp = 0
+ val = _to_float_str(sig)
+ if val == "NaN" or val == "nan":
+ return fpNaN(fps)
+ elif val == "-0.0":
+ return fpMinusZero(fps)
+ elif val == "0.0" or val == "+0.0":
+ return fpPlusZero(fps)
+ elif val == "+oo" or val == "+inf" or val == "+Inf":
+ return fpPlusInfinity(fps)
+ elif val == "-oo" or val == "-inf" or val == "-Inf":
+ return fpMinusInfinity(fps)
+ else:
+ return FPNumRef(Z3_mk_numeral(ctx.ref(), val, fps.ast), ctx)
+
+def FP(name, fpsort, ctx=None):
+ """Return a floating-point constant named `name`.
+ `fpsort` is the floating-point sort.
+ If `ctx=None`, then the global context is used.
+
+ >>> x = FP('x', FPSort(8, 24))
+ >>> is_fp(x)
+ True
+ >>> x.ebits()
+ 8
+ >>> x.sort()
+ FPSort(8, 24)
+ >>> word = FPSort(8, 24)
+ >>> x2 = FP('x', word)
+ >>> eq(x, x2)
+ True
+ """
+ if isinstance(fpsort, FPSortRef) and ctx is None:
+ ctx = fpsort.ctx
+ else:
+ ctx = _get_ctx(ctx)
+ return FPRef(Z3_mk_const(ctx.ref(), to_symbol(name, ctx), fpsort.ast), ctx)
+
+def FPs(names, fpsort, ctx=None):
+ """Return an array of floating-point constants.
+
+ >>> x, y, z = FPs('x y z', FPSort(8, 24))
+ >>> x.sort()
+ FPSort(8, 24)
+ >>> x.sbits()
+ 24
+ >>> x.ebits()
+ 8
+ >>> fpMul(RNE(), fpAdd(RNE(), x, y), z)
+ fpMul(RNE(), fpAdd(RNE(), x, y), z)
+ """
+ ctx = _get_ctx(ctx)
+ if isinstance(names, str):
+ names = names.split(" ")
+ return [FP(name, fpsort, ctx) for name in names]
+
+def fpAbs(a, ctx=None):
+ """Create a Z3 floating-point absolute value expression.
+
+ >>> s = FPSort(8, 24)
+ >>> rm = RNE()
+ >>> x = FPVal(1.0, s)
+ >>> fpAbs(x)
+ fpAbs(1)
+ >>> y = FPVal(-20.0, s)
+ >>> y
+ -1.25*(2**4)
+ >>> fpAbs(y)
+ fpAbs(-1.25*(2**4))
+ >>> fpAbs(-1.25*(2**4))
+ fpAbs(-1.25*(2**4))
+ >>> fpAbs(x).sort()
+ FPSort(8, 24)
+ """
+ ctx = _get_ctx(ctx)
+ [a] = _coerce_fp_expr_list([a], ctx)
+ return FPRef(Z3_mk_fpa_abs(ctx.ref(), a.as_ast()), ctx)
+
+def fpNeg(a, ctx=None):
+ """Create a Z3 floating-point addition expression.
+
+ >>> s = FPSort(8, 24)
+ >>> rm = RNE()
+ >>> x = FP('x', s)
+ >>> fpNeg(x)
+ -x
+ >>> fpNeg(x).sort()
+ FPSort(8, 24)
+ """
+ ctx = _get_ctx(ctx)
+ [a] = _coerce_fp_expr_list([a], ctx)
+ return FPRef(Z3_mk_fpa_neg(ctx.ref(), a.as_ast()), ctx)
+
+def _mk_fp_unary(f, rm, a, ctx):
+ ctx = _get_ctx(ctx)
+ [a] = _coerce_fp_expr_list([a], ctx)
+ if __debug__:
+ _z3_assert(is_fprm(rm), "First argument must be a Z3 floating-point rounding mode expression")
+ _z3_assert(is_fp(a), "Second argument must be a Z3 floating-point expression")
+ return FPRef(f(ctx.ref(), rm.as_ast(), a.as_ast()), ctx)
+
+def _mk_fp_unary_norm(f, a, ctx):
+ ctx = _get_ctx(ctx)
+ [a] = _coerce_fp_expr_list([a], ctx)
+ if __debug__:
+ _z3_assert(is_fp(a), "First argument must be a Z3 floating-point expression")
+ return FPRef(f(ctx.ref(), a.as_ast()), ctx)
+
+def _mk_fp_unary_pred(f, a, ctx):
+ ctx = _get_ctx(ctx)
+ [a] = _coerce_fp_expr_list([a], ctx)
+ if __debug__:
+ _z3_assert(is_fp(a) or is_fp(b), "Second or third argument must be a Z3 floating-point expression")
+ return BoolRef(f(ctx.ref(), a.as_ast()), ctx)
+
+def _mk_fp_bin(f, rm, a, b, ctx):
+ ctx = _get_ctx(ctx)
+ [a, b] = _coerce_fp_expr_list([a, b], ctx)
+ if __debug__:
+ _z3_assert(is_fprm(rm), "First argument must be a Z3 floating-point rounding mode expression")
+ _z3_assert(is_fp(a) or is_fp(b), "Second or third argument must be a Z3 floating-point expression")
+ return FPRef(f(ctx.ref(), rm.as_ast(), a.as_ast(), b.as_ast()), ctx)
+
+def _mk_fp_bin_norm(f, a, b, ctx):
+ ctx = _get_ctx(ctx)
+ [a, b] = _coerce_fp_expr_list([a, b], ctx)
+ if __debug__:
+ _z3_assert(is_fp(a) or is_fp(b), "First or second argument must be a Z3 floating-point expression")
+ return FPRef(f(ctx.ref(), a.as_ast(), b.as_ast()), ctx)
+
+def _mk_fp_bin_pred(f, a, b, ctx):
+ ctx = _get_ctx(ctx)
+ [a, b] = _coerce_fp_expr_list([a, b], ctx)
+ if __debug__:
+ _z3_assert(is_fp(a) or is_fp(b), "Second or third argument must be a Z3 floating-point expression")
+ return BoolRef(f(ctx.ref(), a.as_ast(), b.as_ast()), ctx)
+
+def _mk_fp_tern(f, rm, a, b, c, ctx):
+ ctx = _get_ctx(ctx)
+ [a, b, c] = _coerce_fp_expr_list([a, b, c], ctx)
+ if __debug__:
+ _z3_assert(is_fprm(rm), "First argument must be a Z3 floating-point rounding mode expression")
+ _z3_assert(is_fp(a) or is_fp(b) or is_fp(c), "At least one of the arguments must be a Z3 floating-point expression")
+ return FPRef(f(ctx.ref(), rm.as_ast(), a.as_ast(), b.as_ast(), c.as_ast()), ctx)
+
+def fpAdd(rm, a, b, ctx=None):
+ """Create a Z3 floating-point addition expression.
+
+ >>> s = FPSort(8, 24)
+ >>> rm = RNE()
+ >>> x = FP('x', s)
+ >>> y = FP('y', s)
+ >>> fpAdd(rm, x, y)
+ fpAdd(RNE(), x, y)
+ >>> fpAdd(RTZ(), x, y) # default rounding mode is RTZ
+ x + y
+ >>> fpAdd(rm, x, y).sort()
+ FPSort(8, 24)
+ """
+ return _mk_fp_bin(Z3_mk_fpa_add, rm, a, b, ctx)
+
+def fpSub(rm, a, b, ctx=None):
+ """Create a Z3 floating-point subtraction expression.
+
+ >>> s = FPSort(8, 24)
+ >>> rm = RNE()
+ >>> x = FP('x', s)
+ >>> y = FP('y', s)
+ >>> fpSub(rm, x, y)
+ fpSub(RNE(), x, y)
+ >>> fpSub(rm, x, y).sort()
+ FPSort(8, 24)
+ """
+ return _mk_fp_bin(Z3_mk_fpa_sub, rm, a, b, ctx)
+
+def fpMul(rm, a, b, ctx=None):
+ """Create a Z3 floating-point multiplication expression.
+
+ >>> s = FPSort(8, 24)
+ >>> rm = RNE()
+ >>> x = FP('x', s)
+ >>> y = FP('y', s)
+ >>> fpMul(rm, x, y)
+ fpMul(RNE(), x, y)
+ >>> fpMul(rm, x, y).sort()
+ FPSort(8, 24)
+ """
+ return _mk_fp_bin(Z3_mk_fpa_mul, rm, a, b, ctx)
+
+def fpDiv(rm, a, b, ctx=None):
+ """Create a Z3 floating-point divison expression.
+
+ >>> s = FPSort(8, 24)
+ >>> rm = RNE()
+ >>> x = FP('x', s)
+ >>> y = FP('y', s)
+ >>> fpDiv(rm, x, y)
+ fpDiv(RNE(), x, y)
+ >>> fpDiv(rm, x, y).sort()
+ FPSort(8, 24)
+ """
+ return _mk_fp_bin(Z3_mk_fpa_div, rm, a, b, ctx)
+
+def fpRem(a, b, ctx=None):
+ """Create a Z3 floating-point remainder expression.
+
+ >>> s = FPSort(8, 24)
+ >>> x = FP('x', s)
+ >>> y = FP('y', s)
+ >>> fpRem(x, y)
+ fpRem(x, y)
+ >>> fpRem(x, y).sort()
+ FPSort(8, 24)
+ """
+ return _mk_fp_bin_norm(Z3_mk_fpa_rem, a, b, ctx)
+
+def fpMin(a, b, ctx=None):
+ """Create a Z3 floating-point minimium expression.
+
+ >>> s = FPSort(8, 24)
+ >>> rm = RNE()
+ >>> x = FP('x', s)
+ >>> y = FP('y', s)
+ >>> fpMin(x, y)
+ fpMin(x, y)
+ >>> fpMin(x, y).sort()
+ FPSort(8, 24)
+ """
+ return _mk_fp_bin_norm(Z3_mk_fpa_min, a, b, ctx)
+
+def fpMax(a, b, ctx=None):
+ """Create a Z3 floating-point maximum expression.
+
+ >>> s = FPSort(8, 24)
+ >>> rm = RNE()
+ >>> x = FP('x', s)
+ >>> y = FP('y', s)
+ >>> fpMax(x, y)
+ fpMax(x, y)
+ >>> fpMax(x, y).sort()
+ FPSort(8, 24)
+ """
+ return _mk_fp_bin_norm(Z3_mk_fpa_max, a, b, ctx)
+
+def fpFMA(rm, a, b, c, ctx=None):
+ """Create a Z3 floating-point fused multiply-add expression.
+ """
+ return _mk_fp_tern(Z3_mk_fpa_fma, rm, a, b, c, ctx)
+
+def fpSqrt(rm, a, ctx=None):
+ """Create a Z3 floating-point square root expression.
+ """
+ return _mk_fp_unary(Z3_mk_fpa_sqrt, rm, a, ctx)
+
+def fpRoundToIntegral(rm, a, ctx=None):
+ """Create a Z3 floating-point roundToIntegral expression.
+ """
+ return _mk_fp_unary(Z3_mk_fpa_round_to_integral, rm, a, ctx)
+
+def fpIsNaN(a, ctx=None):
+ """Create a Z3 floating-point isNaN expression.
+
+ >>> s = FPSort(8, 24)
+ >>> x = FP('x', s)
+ >>> y = FP('y', s)
+ >>> fpIsNaN(x)
+ fpIsNaN(x)
+ """
+ return _mk_fp_unary_norm(Z3_mk_fpa_is_nan, a, ctx)
+
+def fpIsInf(a, ctx=None):
+ """Create a Z3 floating-point isInfinite expression.
+
+ >>> s = FPSort(8, 24)
+ >>> x = FP('x', s)
+ >>> fpIsInf(x)
+ fpIsInf(x)
+ """
+ return _mk_fp_unary_norm(Z3_mk_fpa_is_infinite, a, ctx)
+
+def fpIsZero(a, ctx=None):
+ """Create a Z3 floating-point isZero expression.
+ """
+ return _mk_fp_unary_norm(Z3_mk_fpa_is_zero, a, ctx)
+
+def fpIsNormal(a, ctx=None):
+ """Create a Z3 floating-point isNormal expression.
+ """
+ return _mk_fp_unary_norm(Z3_mk_fpa_is_normal, a, ctx)
+
+def fpIsSubnormal(a, ctx=None):
+ """Create a Z3 floating-point isSubnormal expression.
+ """
+ return _mk_fp_unary_norm(Z3_mk_fpa_is_subnormal, a, ctx)
+
+def fpIsNegative(a, ctx=None):
+ """Create a Z3 floating-point isNegative expression.
+ """
+ return _mk_fp_unary_norm(Z3_mk_fpa_is_negative, a, ctx)
+
+def fpIsPositive(a, ctx=None):
+ """Create a Z3 floating-point isPositive expression.
+ """
+ return _mk_fp_unary_norm(Z3_mk_fpa_is_positive, a, ctx)
+ return FPRef(Z3_mk_fpa_is_positive(a.ctx_ref(), a.as_ast()), a.ctx)
+
+def _check_fp_args(a, b):
+ if __debug__:
+ _z3_assert(is_fp(a) or is_fp(b), "At least one of the arguments must be a Z3 floating-point expression")
+
+def fpLT(a, b, ctx=None):
+ """Create the Z3 floating-point expression `other < self`.
+
+ >>> x, y = FPs('x y', FPSort(8, 24))
+ >>> fpLT(x, y)
+ x < y
+ >>> (x < y).sexpr()
+ '(fp.lt x y)'
+ """
+ return _mk_fp_bin_pred(Z3_mk_fpa_lt, a, b, ctx)
+
+def fpLEQ(a, b, ctx=None):
+ """Create the Z3 floating-point expression `other <= self`.
+
+ >>> x, y = FPs('x y', FPSort(8, 24))
+ >>> fpLEQ(x, y)
+ x <= y
+ >>> (x <= y).sexpr()
+ '(fp.leq x y)'
+ """
+ return _mk_fp_bin_pred(Z3_mk_fpa_leq, a, b, ctx)
+
+def fpGT(a, b, ctx=None):
+ """Create the Z3 floating-point expression `other > self`.
+
+ >>> x, y = FPs('x y', FPSort(8, 24))
+ >>> fpGT(x, y)
+ x > y
+ >>> (x > y).sexpr()
+ '(fp.gt x y)'
+ """
+ return _mk_fp_bin_pred(Z3_mk_fpa_gt, a, b, ctx)
+
+def fpGEQ(a, b, ctx=None):
+ """Create the Z3 floating-point expression `other >= self`.
+
+ >>> x, y = FPs('x y', FPSort(8, 24))
+ >>> fpGEQ(x, y)
+ x >= y
+ >>> (x >= y).sexpr()
+ '(fp.geq x y)'
+ """
+ return _mk_fp_bin_pred(Z3_mk_fpa_geq, a, b, ctx)
+
+def fpEQ(a, b, ctx=None):
+ """Create the Z3 floating-point expression `fpEQ(other, self)`.
+
+ >>> x, y = FPs('x y', FPSort(8, 24))
+ >>> fpEQ(x, y)
+ fpEQ(x, y)
+ >>> fpEQ(x, y).sexpr()
+ '(fp.eq x y)'
+ """
+ return _mk_fp_bin_pred(Z3_mk_fpa_eq, a, b, ctx)
+
+def fpNEQ(a, b, ctx=None):
+ """Create the Z3 floating-point expression `Not(fpEQ(other, self))`.
+
+ >>> x, y = FPs('x y', FPSort(8, 24))
+ >>> fpNEQ(x, y)
+ Not(fpEQ(x, y))
+ >>> (x != y).sexpr()
+ '(distinct x y)'
+ """
+ return Not(fpEQ(a, b, ctx))
+
+def fpFP(sgn, exp, sig, ctx=None):
+ """Create the Z3 floating-point value `fpFP(sgn, sig, exp)` from the three bit-vectors sgn, sig, and exp.
+
+ >>> s = FPSort(8, 24)
+ >>> x = fpFP(BitVecVal(1, 1), BitVecVal(2**7-1, 8), BitVecVal(2**22, 23))
+ >>> print(x)
+ fpFP(1, 127, 4194304)
+ >>> xv = FPVal(-1.5, s)
+ >>> print(xv)
+ -1.5
+ >>> slvr = Solver()
+ >>> slvr.add(fpEQ(x, xv))
+ >>> slvr.check()
+ sat
+ >>> xv = FPVal(+1.5, s)
+ >>> print(xv)
+ 1.5
+ >>> slvr = Solver()
+ >>> slvr.add(fpEQ(x, xv))
+ >>> slvr.check()
+ unsat
+ """
+ _z3_assert(is_bv(sgn) and is_bv(exp) and is_bv(sig), "sort mismatch")
+ _z3_assert(sgn.sort().size() == 1, "sort mismatch")
+ ctx = _get_ctx(ctx)
+ _z3_assert(ctx == sgn.ctx == exp.ctx == sig.ctx, "context mismatch")
+ return FPRef(Z3_mk_fpa_fp(ctx.ref(), sgn.ast, exp.ast, sig.ast), ctx)
+
+def fpToFP(a1, a2=None, a3=None, ctx=None):
+ """Create a Z3 floating-point conversion expression from other term sorts
+ to floating-point.
+
+ From a bit-vector term in IEEE 754-2008 format:
+ >>> x = FPVal(1.0, Float32())
+ >>> x_bv = fpToIEEEBV(x)
+ >>> simplify(fpToFP(x_bv, Float32()))
+ 1
+
+ From a floating-point term with different precision:
+ >>> x = FPVal(1.0, Float32())
+ >>> x_db = fpToFP(RNE(), x, Float64())
+ >>> x_db.sort()
+ FPSort(11, 53)
+
+ From a real term:
+ >>> x_r = RealVal(1.5)
+ >>> simplify(fpToFP(RNE(), x_r, Float32()))
+ 1.5
+
+ From a signed bit-vector term:
+ >>> x_signed = BitVecVal(-5, BitVecSort(32))
+ >>> simplify(fpToFP(RNE(), x_signed, Float32()))
+ -1.25*(2**2)
+ """
+ ctx = _get_ctx(ctx)
+ if is_bv(a1) and is_fp_sort(a2):
+ return FPRef(Z3_mk_fpa_to_fp_bv(ctx.ref(), a1.ast, a2.ast), ctx)
+ elif is_fprm(a1) and is_fp(a2) and is_fp_sort(a3):
+ return FPRef(Z3_mk_fpa_to_fp_float(ctx.ref(), a1.ast, a2.ast, a3.ast), ctx)
+ elif is_fprm(a1) and is_real(a2) and is_fp_sort(a3):
+ return FPRef(Z3_mk_fpa_to_fp_real(ctx.ref(), a1.ast, a2.ast, a3.ast), ctx)
+ elif is_fprm(a1) and is_bv(a2) and is_fp_sort(a3):
+ return FPRef(Z3_mk_fpa_to_fp_signed(ctx.ref(), a1.ast, a2.ast, a3.ast), ctx)
+ else:
+ raise Z3Exception("Unsupported combination of arguments for conversion to floating-point term.")
+
+def fpBVToFP(v, sort, ctx=None):
+ """Create a Z3 floating-point conversion expression that represents the
+ conversion from a bit-vector term to a floating-point term.
+
+ >>> x_bv = BitVecVal(0x3F800000, 32)
+ >>> x_fp = fpBVToFP(x_bv, Float32())
+ >>> x_fp
+ fpToFP(1065353216)
+ >>> simplify(x_fp)
+ 1
+ """
+ _z3_assert(is_bv(v), "First argument must be a Z3 floating-point rounding mode expression.")
+ _z3_assert(is_fp_sort(sort), "Second argument must be a Z3 floating-point sort.")
+ ctx = _get_ctx(ctx)
+ return FPRef(Z3_mk_fpa_to_fp_bv(ctx.ref(), v.ast, sort.ast), ctx)
+
+def fpFPToFP(rm, v, sort, ctx=None):
+ """Create a Z3 floating-point conversion expression that represents the
+ conversion from a floating-point term to a floating-point term of different precision.
+
+ >>> x_sgl = FPVal(1.0, Float32())
+ >>> x_dbl = fpFPToFP(RNE(), x_sgl, Float64())
+ >>> x_dbl
+ fpToFP(RNE(), 1)
+ >>> simplify(x_dbl)
+ 1
+ >>> x_dbl.sort()
+ FPSort(11, 53)
+ """
+ _z3_assert(is_fprm(rm), "First argument must be a Z3 floating-point rounding mode expression.")
+ _z3_assert(is_fp(v), "Second argument must be a Z3 floating-point expression.")
+ _z3_assert(is_fp_sort(sort), "Third argument must be a Z3 floating-point sort.")
+ ctx = _get_ctx(ctx)
+ return FPRef(Z3_mk_fpa_to_fp_float(ctx.ref(), rm.ast, v.ast, sort.ast), ctx)
+
+def fpRealToFP(rm, v, sort, ctx=None):
+ """Create a Z3 floating-point conversion expression that represents the
+ conversion from a real term to a floating-point term.
+
+ >>> x_r = RealVal(1.5)
+ >>> x_fp = fpRealToFP(RNE(), x_r, Float32())
+ >>> x_fp
+ fpToFP(RNE(), 3/2)
+ >>> simplify(x_fp)
+ 1.5
+ """
+ _z3_assert(is_fprm(rm), "First argument must be a Z3 floating-point rounding mode expression.")
+ _z3_assert(is_real(v), "Second argument must be a Z3 expression or real sort.")
+ _z3_assert(is_fp_sort(sort), "Third argument must be a Z3 floating-point sort.")
+ ctx = _get_ctx(ctx)
+ return FPRef(Z3_mk_fpa_to_fp_real(ctx.ref(), rm.ast, v.ast, sort.ast), ctx)
+
+def fpSignedToFP(rm, v, sort, ctx=None):
+ """Create a Z3 floating-point conversion expression that represents the
+ conversion from a signed bit-vector term (encoding an integer) to a floating-point term.
+
+ >>> x_signed = BitVecVal(-5, BitVecSort(32))
+ >>> x_fp = fpSignedToFP(RNE(), x_signed, Float32())
+ >>> x_fp
+ fpToFP(RNE(), 4294967291)
+ >>> simplify(x_fp)
+ -1.25*(2**2)
+ """
+ _z3_assert(is_fprm(rm), "First argument must be a Z3 floating-point rounding mode expression.")
+ _z3_assert(is_bv(v), "Second argument must be a Z3 expression or real sort.")
+ _z3_assert(is_fp_sort(sort), "Third argument must be a Z3 floating-point sort.")
+ ctx = _get_ctx(ctx)
+ return FPRef(Z3_mk_fpa_to_fp_signed(ctx.ref(), rm.ast, v.ast, sort.ast), ctx)
+
+def fpUnsignedToFP(rm, v, sort, ctx=None):
+ """Create a Z3 floating-point conversion expression that represents the
+ conversion from an unsigned bit-vector term (encoding an integer) to a floating-point term.
+
+ >>> x_signed = BitVecVal(-5, BitVecSort(32))
+ >>> x_fp = fpUnsignedToFP(RNE(), x_signed, Float32())
+ >>> x_fp
+ fpToFPUnsigned(RNE(), 4294967291)
+ >>> simplify(x_fp)
+ 1*(2**32)
+ """
+ _z3_assert(is_fprm(rm), "First argument must be a Z3 floating-point rounding mode expression.")
+ _z3_assert(is_bv(v), "Second argument must be a Z3 expression or real sort.")
+ _z3_assert(is_fp_sort(sort), "Third argument must be a Z3 floating-point sort.")
+ ctx = _get_ctx(ctx)
+ return FPRef(Z3_mk_fpa_to_fp_unsigned(ctx.ref(), rm.ast, v.ast, sort.ast), ctx)
+
+def fpToFPUnsigned(rm, x, s, ctx=None):
+ """Create a Z3 floating-point conversion expression, from unsigned bit-vector to floating-point expression."""
+ if __debug__:
+ _z3_assert(is_fprm(rm), "First argument must be a Z3 floating-point rounding mode expression")
+ _z3_assert(is_bv(x), "Second argument must be a Z3 bit-vector expression")
+ _z3_assert(is_fp_sort(s), "Third argument must be Z3 floating-point sort")
+ ctx = _get_ctx(ctx)
+ return FPRef(Z3_mk_fpa_to_fp_unsigned(ctx.ref(), rm.ast, x.ast, s.ast), ctx)
+
+def fpToSBV(rm, x, s, ctx=None):
+ """Create a Z3 floating-point conversion expression, from floating-point expression to signed bit-vector.
+
+ >>> x = FP('x', FPSort(8, 24))
+ >>> y = fpToSBV(RTZ(), x, BitVecSort(32))
+ >>> print(is_fp(x))
+ True
+ >>> print(is_bv(y))
+ True
+ >>> print(is_fp(y))
+ False
+ >>> print(is_bv(x))
+ False
+ """
+ if __debug__:
+ _z3_assert(is_fprm(rm), "First argument must be a Z3 floating-point rounding mode expression")
+ _z3_assert(is_fp(x), "Second argument must be a Z3 floating-point expression")
+ _z3_assert(is_bv_sort(s), "Third argument must be Z3 bit-vector sort")
+ ctx = _get_ctx(ctx)
+ return BitVecRef(Z3_mk_fpa_to_sbv(ctx.ref(), rm.ast, x.ast, s.size()), ctx)
+
+def fpToUBV(rm, x, s, ctx=None):
+ """Create a Z3 floating-point conversion expression, from floating-point expression to unsigned bit-vector.
+
+ >>> x = FP('x', FPSort(8, 24))
+ >>> y = fpToUBV(RTZ(), x, BitVecSort(32))
+ >>> print(is_fp(x))
+ True
+ >>> print(is_bv(y))
+ True
+ >>> print(is_fp(y))
+ False
+ >>> print(is_bv(x))
+ False
+ """
+ if __debug__:
+ _z3_assert(is_fprm(rm), "First argument must be a Z3 floating-point rounding mode expression")
+ _z3_assert(is_fp(x), "Second argument must be a Z3 floating-point expression")
+ _z3_assert(is_bv_sort(s), "Third argument must be Z3 bit-vector sort")
+ ctx = _get_ctx(ctx)
+ return BitVecRef(Z3_mk_fpa_to_ubv(ctx.ref(), rm.ast, x.ast, s.size()), ctx)
+
+def fpToReal(x, ctx=None):
+ """Create a Z3 floating-point conversion expression, from floating-point expression to real.
+
+ >>> x = FP('x', FPSort(8, 24))
+ >>> y = fpToReal(x)
+ >>> print(is_fp(x))
+ True
+ >>> print(is_real(y))
+ True
+ >>> print(is_fp(y))
+ False
+ >>> print(is_real(x))
+ False
+ """
+ if __debug__:
+ _z3_assert(is_fp(x), "First argument must be a Z3 floating-point expression")
+ ctx = _get_ctx(ctx)
+ return ArithRef(Z3_mk_fpa_to_real(ctx.ref(), x.ast), ctx)
+
+def fpToIEEEBV(x, ctx=None):
+ """\brief Conversion of a floating-point term into a bit-vector term in IEEE 754-2008 format.
+
+ The size of the resulting bit-vector is automatically determined.
+
+ Note that IEEE 754-2008 allows multiple different representations of NaN. This conversion
+ knows only one NaN and it will always produce the same bit-vector represenatation of
+ that NaN.
+
+ >>> x = FP('x', FPSort(8, 24))
+ >>> y = fpToIEEEBV(x)
+ >>> print(is_fp(x))
+ True
+ >>> print(is_bv(y))
+ True
+ >>> print(is_fp(y))
+ False
+ >>> print(is_bv(x))
+ False
+ """
+ if __debug__:
+ _z3_assert(is_fp(x), "First argument must be a Z3 floating-point expression")
+ ctx = _get_ctx(ctx)
+ return BitVecRef(Z3_mk_fpa_to_ieee_bv(ctx.ref(), x.ast), ctx)
+
+
+
+#########################################
+#
+# Strings, Sequences and Regular expressions
+#
+#########################################
+
+class SeqSortRef(SortRef):
+ """Sequence sort."""
+
+ def is_string(self):
+ """Determine if sort is a string
+ >>> s = StringSort()
+ >>> s.is_string()
+ True
+ >>> s = SeqSort(IntSort())
+ >>> s.is_string()
+ False
+ """
+ return Z3_is_string_sort(self.ctx_ref(), self.ast)
+
+def StringSort(ctx=None):
+ """Create a string sort
+ >>> s = StringSort()
+ >>> print(s)
+ String
+ """
+ ctx = _get_ctx(ctx)
+ return SeqSortRef(Z3_mk_string_sort(ctx.ref()), ctx)
+
+
+def SeqSort(s):
+ """Create a sequence sort over elements provided in the argument
+ >>> s = SeqSort(IntSort())
+ >>> s == Unit(IntVal(1)).sort()
+ True
+ """
+ return SeqSortRef(Z3_mk_seq_sort(s.ctx_ref(), s.ast), s.ctx)
+
+class SeqRef(ExprRef):
+ """Sequence expression."""
+
+ def sort(self):
+ return SeqSortRef(Z3_get_sort(self.ctx_ref(), self.as_ast()), self.ctx)
+
+ def __add__(self, other):
+ return Concat(self, other)
+
+ def __radd__(self, other):
+ return Concat(other, self)
+
+ def __getitem__(self, i):
+ if _is_int(i):
+ i = IntVal(i, self.ctx)
+ return SeqRef(Z3_mk_seq_at(self.ctx_ref(), self.as_ast(), i.as_ast()), self.ctx)
+
+ def is_string(self):
+ return Z3_is_string_sort(self.ctx_ref(), Z3_get_sort(self.ctx_ref(), self.as_ast()))
+
+ def is_string_value(self):
+ return Z3_is_string(self.ctx_ref(), self.as_ast())
+
+ def as_string(self):
+ """Return a string representation of sequence expression."""
+ return Z3_ast_to_string(self.ctx_ref(), self.as_ast())
+
+
+def _coerce_seq(s, ctx=None):
+ if isinstance(s, str):
+ ctx = _get_ctx(ctx)
+ s = StringVal(s, ctx)
+ if not is_expr(s):
+ raise Z3Exception("Non-expression passed as a sequence")
+ if not is_seq(s):
+ raise Z3Exception("Non-sequence passed as a sequence")
+ return s
+
+def _get_ctx2(a, b, ctx=None):
+ if is_expr(a):
+ return a.ctx
+ if is_expr(b):
+ return b.ctx
+ if ctx is None:
+ ctx = main_ctx()
+ return ctx
+
+def is_seq(a):
+ """Return `True` if `a` is a Z3 sequence expression.
+ >>> print (is_seq(Unit(IntVal(0))))
+ True
+ >>> print (is_seq(StringVal("abc")))
+ True
+ """
+ return isinstance(a, SeqRef)
+
+def is_string(a):
+ """Return `True` if `a` is a Z3 string expression.
+ >>> print (is_string(StringVal("ab")))
+ True
+ """
+ return isinstance(a, SeqRef) and a.is_string()
+
+def is_string_value(a):
+ """return 'True' if 'a' is a Z3 string constant expression.
+ >>> print (is_string_value(StringVal("a")))
+ True
+ >>> print (is_string_value(StringVal("a") + StringVal("b")))
+ False
+ """
+ return isinstance(a, SeqRef) and a.is_string_value()
+
+
+def StringVal(s, ctx=None):
+ """create a string expression"""
+ ctx = _get_ctx(ctx)
+ return SeqRef(Z3_mk_string(ctx.ref(), s), ctx)
+
+def String(name, ctx=None):
+ """Return a string constant named `name`. If `ctx=None`, then the global context is used.
+
+ >>> x = String('x')
+ """
+ ctx = _get_ctx(ctx)
+ return SeqRef(Z3_mk_const(ctx.ref(), to_symbol(name, ctx), StringSort(ctx).ast), ctx)
+
+def Strings(names, ctx=None):
+ """Return a tuple of String constants. """
+ ctx = _get_ctx(ctx)
+ if isinstance(names, str):
+ names = names.split(" ")
+ return [String(name, ctx) for name in names]
+
+def Empty(s):
+ """Create the empty sequence of the given sort
+ >>> e = Empty(StringSort())
+ >>> print(e)
+ ""
+ >>> e2 = StringVal("")
+ >>> print(e.eq(e2))
+ True
+ >>> e3 = Empty(SeqSort(IntSort()))
+ >>> print(e3)
+ seq.empty
+ """
+ return SeqRef(Z3_mk_seq_empty(s.ctx_ref(), s.ast), s.ctx)
+
+def Unit(a):
+ """Create a singleton sequence"""
+ return SeqRef(Z3_mk_seq_unit(a.ctx_ref(), a.as_ast()), a.ctx)
+
+def PrefixOf(a, b):
+ """Check if 'a' is a prefix of 'b'
+ >>> s1 = PrefixOf("ab", "abc")
+ >>> simplify(s1)
+ True
+ >>> s2 = PrefixOf("bc", "abc")
+ >>> simplify(s2)
+ False
+ """
+ ctx = _get_ctx2(a, b)
+ a = _coerce_seq(a, ctx)
+ b = _coerce_seq(b, ctx)
+ return BoolRef(Z3_mk_seq_prefix(a.ctx_ref(), a.as_ast(), b.as_ast()), a.ctx)
+
+def SuffixOf(a, b):
+ """Check if 'a' is a suffix of 'b'
+ >>> s1 = SuffixOf("ab", "abc")
+ >>> simplify(s1)
+ False
+ >>> s2 = SuffixOf("bc", "abc")
+ >>> simplify(s2)
+ True
+ """
+ ctx = _get_ctx2(a, b)
+ a = _coerce_seq(a, ctx)
+ b = _coerce_seq(b, ctx)
+ return BoolRef(Z3_mk_seq_suffix(a.ctx_ref(), a.as_ast(), b.as_ast()), a.ctx)
+
+def Contains(a, b):
+ """Check if 'a' contains 'b'
+ >>> s1 = Contains("abc", "ab")
+ >>> simplify(s1)
+ True
+ >>> s2 = Contains("abc", "bc")
+ >>> simplify(s2)
+ True
+ >>> x, y, z = Strings('x y z')
+ >>> s3 = Contains(Concat(x,y,z), y)
+ >>> simplify(s3)
+ True
+ """
+ ctx = _get_ctx2(a, b)
+ a = _coerce_seq(a, ctx)
+ b = _coerce_seq(b, ctx)
+ return BoolRef(Z3_mk_seq_contains(a.ctx_ref(), a.as_ast(), b.as_ast()), a.ctx)
+
+
+def Replace(s, src, dst):
+ """Replace the first occurrence of 'src' by 'dst' in 's'
+ >>> r = Replace("aaa", "a", "b")
+ >>> simplify(r)
+ "baa"
+ """
+ ctx = _get_ctx2(dst, s)
+ if ctx is None and is_expr(src):
+ ctx = src.ctx
+ src = _coerce_seq(src, ctx)
+ dst = _coerce_seq(dst, ctx)
+ s = _coerce_seq(s, ctx)
+ return SeqRef(Z3_mk_seq_replace(src.ctx_ref(), s.as_ast(), src.as_ast(), dst.as_ast()), s.ctx)
+
+def IndexOf(s, substr):
+ return IndexOf(s, substr, IntVal(0))
+
+def IndexOf(s, substr, offset):
+ """Retrieve the index of substring within a string starting at a specified offset.
+ >>> simplify(IndexOf("abcabc", "bc", 0))
+ 1
+ >>> simplify(IndexOf("abcabc", "bc", 2))
+ 4
+ """
+ ctx = None
+ if is_expr(offset):
+ ctx = offset.ctx
+ ctx = _get_ctx2(s, substr, ctx)
+ s = _coerce_seq(s, ctx)
+ substr = _coerce_seq(substr, ctx)
+ if _is_int(offset):
+ offset = IntVal(offset, ctx)
+ return SeqRef(Z3_mk_seq_index(s.ctx_ref(), s.as_ast(), substr.as_ast(), offset.as_ast()), s.ctx)
+
+def Length(s):
+ """Obtain the length of a sequence 's'
+ >>> l = Length(StringVal("abc"))
+ >>> simplify(l)
+ 3
+ """
+ s = _coerce_seq(s)
+ return ArithRef(Z3_mk_seq_length(s.ctx_ref(), s.as_ast()), s.ctx)
+
+def Re(s, ctx=None):
+ """The regular expression that accepts sequence 's'
+ >>> s1 = Re("ab")
+ >>> s2 = Re(StringVal("ab"))
+ >>> s3 = Re(Unit(BoolVal(True)))
+ """
+ s = _coerce_seq(s, ctx)
+ return ReRef(Z3_mk_seq_to_re(s.ctx_ref(), s.as_ast()), s.ctx)
+
+
+
+
+## Regular expressions
+
+class ReSortRef(SortRef):
+ """Regular expression sort."""
+
+
+def ReSort(s):
+ if is_ast(s):
+ return ReSortRef(Z3_mk_re_sort(s.ctx.ref(), s.as_ast()), ctx)
+ if s is None or isinstance(s, Context):
+ ctx = _get_ctx(s)
+ return ReSortRef(Z3_mk_re_sort(ctx.ref(), Z3_mk_string_sort(ctx.ref())), ctx)
+ raise Z3Exception("Regular expression sort constructor expects either a string or a context or no argument")
+
+
+class ReRef(ExprRef):
+ """Regular expressions."""
+
+ def __add__(self, other):
+ return Union(self, other)
+
+
+def is_re(s):
+ return isinstance(s, ReRef)
+
+
+def InRe(s, re):
+ """Create regular expression membership test
+ >>> re = Union(Re("a"),Re("b"))
+ >>> print (simplify(InRe("a", re)))
+ True
+ >>> print (simplify(InRe("b", re)))
+ True
+ >>> print (simplify(InRe("c", re)))
+ False
+ """
+ s = _coerce_seq(s, re.ctx)
+ return BoolRef(Z3_mk_seq_in_re(s.ctx_ref(), s.as_ast(), re.as_ast()), s.ctx)
+
+def Union(*args):
+ """Create union of regular expressions.
+ >>> re = Union(Re("a"), Re("b"), Re("c"))
+ >>> print (simplify(InRe("d", re)))
+ False
+ """
+ args = _get_args(args)
+ sz = len(args)
+ if __debug__:
+ _z3_assert(sz > 0, "At least one argument expected.")
+ _z3_assert(all([is_re(a) for a in args]), "All arguments must be regular expressions.")
+ if sz == 1:
+ return args[0]
+ ctx = args[0].ctx
+ v = (Ast * sz)()
+ for i in range(sz):
+ v[i] = args[i].as_ast()
+ return ReRef(Z3_mk_re_union(ctx.ref(), sz, v), ctx)
+
+def Plus(re):
+ """Create the regular expression accepting one or more repetitions of argument.
+ >>> re = Plus(Re("a"))
+ >>> print(simplify(InRe("aa", re)))
+ True
+ >>> print(simplify(InRe("ab", re)))
+ False
+ >>> print(simplify(InRe("", re)))
+ False
+ """
+ return ReRef(Z3_mk_re_plus(re.ctx_ref(), re.as_ast()), re.ctx)
+
+def Option(re):
+ """Create the regular expression that optionally accepts the argument.
+ >>> re = Option(Re("a"))
+ >>> print(simplify(InRe("a", re)))
+ True
+ >>> print(simplify(InRe("", re)))
+ True
+ >>> print(simplify(InRe("aa", re)))
+ False
+ """
+ return ReRef(Z3_mk_re_option(re.ctx_ref(), re.as_ast()), re.ctx)
+
+def Star(re):
+ """Create the regular expression accepting zero or more repetitions of argument.
+ >>> re = Star(Re("a"))
+ >>> print(simplify(InRe("aa", re)))
+ True
+ >>> print(simplify(InRe("ab", re)))
+ False
+ >>> print(simplify(InRe("", re)))
+ True
+ """
+ return ReRef(Z3_mk_re_star(re.ctx_ref(), re.as_ast()), re.ctx)
diff --git a/rba.tool.editor.endpoint/lib/windows/z3/python/z3/z3consts.py b/rba.tool.editor.endpoint/lib/windows/z3/python/z3/z3consts.py
new file mode 100644
index 0000000..2d4f4ab
--- /dev/null
+++ b/rba.tool.editor.endpoint/lib/windows/z3/python/z3/z3consts.py
@@ -0,0 +1,314 @@
+# Automatically generated file
+
+# enum Z3_lbool
+Z3_L_FALSE = -1
+Z3_L_UNDEF = 0
+Z3_L_TRUE = 1
+
+# enum Z3_symbol_kind
+Z3_INT_SYMBOL = 0
+Z3_STRING_SYMBOL = 1
+
+# enum Z3_parameter_kind
+Z3_PARAMETER_INT = 0
+Z3_PARAMETER_DOUBLE = 1
+Z3_PARAMETER_RATIONAL = 2
+Z3_PARAMETER_SYMBOL = 3
+Z3_PARAMETER_SORT = 4
+Z3_PARAMETER_AST = 5
+Z3_PARAMETER_FUNC_DECL = 6
+
+# enum Z3_sort_kind
+Z3_UNINTERPRETED_SORT = 0
+Z3_BOOL_SORT = 1
+Z3_INT_SORT = 2
+Z3_REAL_SORT = 3
+Z3_BV_SORT = 4
+Z3_ARRAY_SORT = 5
+Z3_DATATYPE_SORT = 6
+Z3_RELATION_SORT = 7
+Z3_FINITE_DOMAIN_SORT = 8
+Z3_FLOATING_POINT_SORT = 9
+Z3_ROUNDING_MODE_SORT = 10
+Z3_SEQ_SORT = 11
+Z3_RE_SORT = 12
+Z3_UNKNOWN_SORT = 1000
+
+# enum Z3_ast_kind
+Z3_NUMERAL_AST = 0
+Z3_APP_AST = 1
+Z3_VAR_AST = 2
+Z3_QUANTIFIER_AST = 3
+Z3_SORT_AST = 4
+Z3_FUNC_DECL_AST = 5
+Z3_UNKNOWN_AST = 1000
+
+# enum Z3_decl_kind
+Z3_OP_TRUE = 256
+Z3_OP_FALSE = 257
+Z3_OP_EQ = 258
+Z3_OP_DISTINCT = 259
+Z3_OP_ITE = 260
+Z3_OP_AND = 261
+Z3_OP_OR = 262
+Z3_OP_IFF = 263
+Z3_OP_XOR = 264
+Z3_OP_NOT = 265
+Z3_OP_IMPLIES = 266
+Z3_OP_OEQ = 267
+Z3_OP_INTERP = 268
+Z3_OP_ANUM = 512
+Z3_OP_AGNUM = 513
+Z3_OP_LE = 514
+Z3_OP_GE = 515
+Z3_OP_LT = 516
+Z3_OP_GT = 517
+Z3_OP_ADD = 518
+Z3_OP_SUB = 519
+Z3_OP_UMINUS = 520
+Z3_OP_MUL = 521
+Z3_OP_DIV = 522
+Z3_OP_IDIV = 523
+Z3_OP_REM = 524
+Z3_OP_MOD = 525
+Z3_OP_TO_REAL = 526
+Z3_OP_TO_INT = 527
+Z3_OP_IS_INT = 528
+Z3_OP_POWER = 529
+Z3_OP_STORE = 768
+Z3_OP_SELECT = 769
+Z3_OP_CONST_ARRAY = 770
+Z3_OP_ARRAY_MAP = 771
+Z3_OP_ARRAY_DEFAULT = 772
+Z3_OP_SET_UNION = 773
+Z3_OP_SET_INTERSECT = 774
+Z3_OP_SET_DIFFERENCE = 775
+Z3_OP_SET_COMPLEMENT = 776
+Z3_OP_SET_SUBSET = 777
+Z3_OP_AS_ARRAY = 778
+Z3_OP_ARRAY_EXT = 779
+Z3_OP_BNUM = 1024
+Z3_OP_BIT1 = 1025
+Z3_OP_BIT0 = 1026
+Z3_OP_BNEG = 1027
+Z3_OP_BADD = 1028
+Z3_OP_BSUB = 1029
+Z3_OP_BMUL = 1030
+Z3_OP_BSDIV = 1031
+Z3_OP_BUDIV = 1032
+Z3_OP_BSREM = 1033
+Z3_OP_BUREM = 1034
+Z3_OP_BSMOD = 1035
+Z3_OP_BSDIV0 = 1036
+Z3_OP_BUDIV0 = 1037
+Z3_OP_BSREM0 = 1038
+Z3_OP_BUREM0 = 1039
+Z3_OP_BSMOD0 = 1040
+Z3_OP_ULEQ = 1041
+Z3_OP_SLEQ = 1042
+Z3_OP_UGEQ = 1043
+Z3_OP_SGEQ = 1044
+Z3_OP_ULT = 1045
+Z3_OP_SLT = 1046
+Z3_OP_UGT = 1047
+Z3_OP_SGT = 1048
+Z3_OP_BAND = 1049
+Z3_OP_BOR = 1050
+Z3_OP_BNOT = 1051
+Z3_OP_BXOR = 1052
+Z3_OP_BNAND = 1053
+Z3_OP_BNOR = 1054
+Z3_OP_BXNOR = 1055
+Z3_OP_CONCAT = 1056
+Z3_OP_SIGN_EXT = 1057
+Z3_OP_ZERO_EXT = 1058
+Z3_OP_EXTRACT = 1059
+Z3_OP_REPEAT = 1060
+Z3_OP_BREDOR = 1061
+Z3_OP_BREDAND = 1062
+Z3_OP_BCOMP = 1063
+Z3_OP_BSHL = 1064
+Z3_OP_BLSHR = 1065
+Z3_OP_BASHR = 1066
+Z3_OP_ROTATE_LEFT = 1067
+Z3_OP_ROTATE_RIGHT = 1068
+Z3_OP_EXT_ROTATE_LEFT = 1069
+Z3_OP_EXT_ROTATE_RIGHT = 1070
+Z3_OP_INT2BV = 1071
+Z3_OP_BV2INT = 1072
+Z3_OP_CARRY = 1073
+Z3_OP_XOR3 = 1074
+Z3_OP_BSMUL_NO_OVFL = 1075
+Z3_OP_BUMUL_NO_OVFL = 1076
+Z3_OP_BSMUL_NO_UDFL = 1077
+Z3_OP_BSDIV_I = 1078
+Z3_OP_BUDIV_I = 1079
+Z3_OP_BSREM_I = 1080
+Z3_OP_BUREM_I = 1081
+Z3_OP_BSMOD_I = 1082
+Z3_OP_PR_UNDEF = 1280
+Z3_OP_PR_TRUE = 1281
+Z3_OP_PR_ASSERTED = 1282
+Z3_OP_PR_GOAL = 1283
+Z3_OP_PR_MODUS_PONENS = 1284
+Z3_OP_PR_REFLEXIVITY = 1285
+Z3_OP_PR_SYMMETRY = 1286
+Z3_OP_PR_TRANSITIVITY = 1287
+Z3_OP_PR_TRANSITIVITY_STAR = 1288
+Z3_OP_PR_MONOTONICITY = 1289
+Z3_OP_PR_QUANT_INTRO = 1290
+Z3_OP_PR_DISTRIBUTIVITY = 1291
+Z3_OP_PR_AND_ELIM = 1292
+Z3_OP_PR_NOT_OR_ELIM = 1293
+Z3_OP_PR_REWRITE = 1294
+Z3_OP_PR_REWRITE_STAR = 1295
+Z3_OP_PR_PULL_QUANT = 1296
+Z3_OP_PR_PULL_QUANT_STAR = 1297
+Z3_OP_PR_PUSH_QUANT = 1298
+Z3_OP_PR_ELIM_UNUSED_VARS = 1299
+Z3_OP_PR_DER = 1300
+Z3_OP_PR_QUANT_INST = 1301
+Z3_OP_PR_HYPOTHESIS = 1302
+Z3_OP_PR_LEMMA = 1303
+Z3_OP_PR_UNIT_RESOLUTION = 1304
+Z3_OP_PR_IFF_TRUE = 1305
+Z3_OP_PR_IFF_FALSE = 1306
+Z3_OP_PR_COMMUTATIVITY = 1307
+Z3_OP_PR_DEF_AXIOM = 1308
+Z3_OP_PR_DEF_INTRO = 1309
+Z3_OP_PR_APPLY_DEF = 1310
+Z3_OP_PR_IFF_OEQ = 1311
+Z3_OP_PR_NNF_POS = 1312
+Z3_OP_PR_NNF_NEG = 1313
+Z3_OP_PR_NNF_STAR = 1314
+Z3_OP_PR_CNF_STAR = 1315
+Z3_OP_PR_SKOLEMIZE = 1316
+Z3_OP_PR_MODUS_PONENS_OEQ = 1317
+Z3_OP_PR_TH_LEMMA = 1318
+Z3_OP_PR_HYPER_RESOLVE = 1319
+Z3_OP_RA_STORE = 1536
+Z3_OP_RA_EMPTY = 1537
+Z3_OP_RA_IS_EMPTY = 1538
+Z3_OP_RA_JOIN = 1539
+Z3_OP_RA_UNION = 1540
+Z3_OP_RA_WIDEN = 1541
+Z3_OP_RA_PROJECT = 1542
+Z3_OP_RA_FILTER = 1543
+Z3_OP_RA_NEGATION_FILTER = 1544
+Z3_OP_RA_RENAME = 1545
+Z3_OP_RA_COMPLEMENT = 1546
+Z3_OP_RA_SELECT = 1547
+Z3_OP_RA_CLONE = 1548
+Z3_OP_FD_CONSTANT = 1549
+Z3_OP_FD_LT = 1550
+Z3_OP_SEQ_UNIT = 1551
+Z3_OP_SEQ_EMPTY = 1552
+Z3_OP_SEQ_CONCAT = 1553
+Z3_OP_SEQ_PREFIX = 1554
+Z3_OP_SEQ_SUFFIX = 1555
+Z3_OP_SEQ_CONTAINS = 1556
+Z3_OP_SEQ_EXTRACT = 1557
+Z3_OP_SEQ_REPLACE = 1558
+Z3_OP_SEQ_AT = 1559
+Z3_OP_SEQ_LENGTH = 1560
+Z3_OP_SEQ_INDEX = 1561
+Z3_OP_SEQ_TO_RE = 1562
+Z3_OP_SEQ_IN_RE = 1563
+Z3_OP_RE_PLUS = 1564
+Z3_OP_RE_STAR = 1565
+Z3_OP_RE_OPTION = 1566
+Z3_OP_RE_CONCAT = 1567
+Z3_OP_RE_UNION = 1568
+Z3_OP_LABEL = 1792
+Z3_OP_LABEL_LIT = 1793
+Z3_OP_DT_CONSTRUCTOR = 2048
+Z3_OP_DT_RECOGNISER = 2049
+Z3_OP_DT_ACCESSOR = 2050
+Z3_OP_DT_UPDATE_FIELD = 2051
+Z3_OP_PB_AT_MOST = 2304
+Z3_OP_PB_LE = 2305
+Z3_OP_PB_GE = 2306
+Z3_OP_PB_EQ = 2307
+Z3_OP_FPA_RM_NEAREST_TIES_TO_EVEN = 2308
+Z3_OP_FPA_RM_NEAREST_TIES_TO_AWAY = 2309
+Z3_OP_FPA_RM_TOWARD_POSITIVE = 2310
+Z3_OP_FPA_RM_TOWARD_NEGATIVE = 2311
+Z3_OP_FPA_RM_TOWARD_ZERO = 2312
+Z3_OP_FPA_NUM = 2313
+Z3_OP_FPA_PLUS_INF = 2314
+Z3_OP_FPA_MINUS_INF = 2315
+Z3_OP_FPA_NAN = 2316
+Z3_OP_FPA_PLUS_ZERO = 2317
+Z3_OP_FPA_MINUS_ZERO = 2318
+Z3_OP_FPA_ADD = 2319
+Z3_OP_FPA_SUB = 2320
+Z3_OP_FPA_NEG = 2321
+Z3_OP_FPA_MUL = 2322
+Z3_OP_FPA_DIV = 2323
+Z3_OP_FPA_REM = 2324
+Z3_OP_FPA_ABS = 2325
+Z3_OP_FPA_MIN = 2326
+Z3_OP_FPA_MAX = 2327
+Z3_OP_FPA_FMA = 2328
+Z3_OP_FPA_SQRT = 2329
+Z3_OP_FPA_ROUND_TO_INTEGRAL = 2330
+Z3_OP_FPA_EQ = 2331
+Z3_OP_FPA_LT = 2332
+Z3_OP_FPA_GT = 2333
+Z3_OP_FPA_LE = 2334
+Z3_OP_FPA_GE = 2335
+Z3_OP_FPA_IS_NAN = 2336
+Z3_OP_FPA_IS_INF = 2337
+Z3_OP_FPA_IS_ZERO = 2338
+Z3_OP_FPA_IS_NORMAL = 2339
+Z3_OP_FPA_IS_SUBNORMAL = 2340
+Z3_OP_FPA_IS_NEGATIVE = 2341
+Z3_OP_FPA_IS_POSITIVE = 2342
+Z3_OP_FPA_FP = 2343
+Z3_OP_FPA_TO_FP = 2344
+Z3_OP_FPA_TO_FP_UNSIGNED = 2345
+Z3_OP_FPA_TO_UBV = 2346
+Z3_OP_FPA_TO_SBV = 2347
+Z3_OP_FPA_TO_REAL = 2348
+Z3_OP_FPA_TO_IEEE_BV = 2349
+Z3_OP_FPA_MIN_I = 2350
+Z3_OP_FPA_MAX_I = 2351
+Z3_OP_INTERNAL = 2352
+Z3_OP_UNINTERPRETED = 2353
+
+# enum Z3_param_kind
+Z3_PK_UINT = 0
+Z3_PK_BOOL = 1
+Z3_PK_DOUBLE = 2
+Z3_PK_SYMBOL = 3
+Z3_PK_STRING = 4
+Z3_PK_OTHER = 5
+Z3_PK_INVALID = 6
+
+# enum Z3_ast_print_mode
+Z3_PRINT_SMTLIB_FULL = 0
+Z3_PRINT_LOW_LEVEL = 1
+Z3_PRINT_SMTLIB_COMPLIANT = 2
+Z3_PRINT_SMTLIB2_COMPLIANT = 3
+
+# enum Z3_error_code
+Z3_OK = 0
+Z3_SORT_ERROR = 1
+Z3_IOB = 2
+Z3_INVALID_ARG = 3
+Z3_PARSER_ERROR = 4
+Z3_NO_PARSER = 5
+Z3_INVALID_PATTERN = 6
+Z3_MEMOUT_FAIL = 7
+Z3_FILE_ACCESS_ERROR = 8
+Z3_INTERNAL_FATAL = 9
+Z3_INVALID_USAGE = 10
+Z3_DEC_REF_ERROR = 11
+Z3_EXCEPTION = 12
+
+# enum Z3_goal_prec
+Z3_GOAL_PRECISE = 0
+Z3_GOAL_UNDER = 1
+Z3_GOAL_OVER = 2
+Z3_GOAL_UNDER_OVER = 3
+
diff --git a/rba.tool.editor.endpoint/lib/windows/z3/python/z3/z3core.py b/rba.tool.editor.endpoint/lib/windows/z3/python/z3/z3core.py
new file mode 100644
index 0000000..aa3b8ea
--- /dev/null
+++ b/rba.tool.editor.endpoint/lib/windows/z3/python/z3/z3core.py
@@ -0,0 +1,5459 @@
+# Automatically generated file
+import sys, os
+import ctypes
+import pkg_resources
+from .z3types import *
+from .z3consts import *
+
+_ext = 'dll' if sys.platform in ('win32', 'cygwin') else 'dylib' if sys.platform == 'darwin' else 'so'
+
+_lib = None
+def lib():
+ global _lib
+ if _lib is None:
+ _dirs = ['.', pkg_resources.resource_filename('z3', 'lib'), os.path.join(sys.prefix, 'lib'), None]
+ for _dir in _dirs:
+ try:
+ init(_dir)
+ break
+ except:
+ pass
+ if _lib is None:
+ raise Z3Exception("init(Z3_LIBRARY_PATH) must be invoked before using Z3-python")
+ return _lib
+
+def _to_ascii(s):
+ if isinstance(s, str):
+ return s.encode('ascii')
+ else:
+ return s
+
+if sys.version < '3':
+ def _to_pystr(s):
+ return s
+else:
+ def _to_pystr(s):
+ if s != None:
+ enc = sys.stdout.encoding
+ if enc != None: return s.decode(enc)
+ else: return s.decode('ascii')
+ else:
+ return ""
+
+def init(PATH):
+ if PATH:
+ PATH = os.path.realpath(PATH)
+ if os.path.isdir(PATH):
+ PATH = os.path.join(PATH, 'libz3.%s' % _ext)
+ else:
+ PATH = 'libz3.%s' % _ext
+
+ global _lib
+ _lib = ctypes.CDLL(PATH)
+ _lib.Z3_global_param_set.argtypes = [ctypes.c_char_p, ctypes.c_char_p]
+ _lib.Z3_global_param_reset_all.argtypes = []
+ _lib.Z3_global_param_get.restype = ctypes.c_bool
+ _lib.Z3_global_param_get.argtypes = [ctypes.c_char_p, ctypes.POINTER(ctypes.c_char_p)]
+ _lib.Z3_mk_config.restype = Config
+ _lib.Z3_mk_config.argtypes = []
+ _lib.Z3_del_config.argtypes = [Config]
+ _lib.Z3_set_param_value.argtypes = [Config, ctypes.c_char_p, ctypes.c_char_p]
+ _lib.Z3_mk_context.restype = ContextObj
+ _lib.Z3_mk_context.argtypes = [Config]
+ _lib.Z3_mk_context_rc.restype = ContextObj
+ _lib.Z3_mk_context_rc.argtypes = [Config]
+ _lib.Z3_del_context.argtypes = [ContextObj]
+ _lib.Z3_inc_ref.argtypes = [ContextObj, Ast]
+ _lib.Z3_dec_ref.argtypes = [ContextObj, Ast]
+ _lib.Z3_update_param_value.argtypes = [ContextObj, ctypes.c_char_p, ctypes.c_char_p]
+ _lib.Z3_interrupt.argtypes = [ContextObj]
+ _lib.Z3_mk_params.restype = Params
+ _lib.Z3_mk_params.argtypes = [ContextObj]
+ _lib.Z3_params_inc_ref.argtypes = [ContextObj, Params]
+ _lib.Z3_params_dec_ref.argtypes = [ContextObj, Params]
+ _lib.Z3_params_set_bool.argtypes = [ContextObj, Params, Symbol, ctypes.c_bool]
+ _lib.Z3_params_set_uint.argtypes = [ContextObj, Params, Symbol, ctypes.c_uint]
+ _lib.Z3_params_set_double.argtypes = [ContextObj, Params, Symbol, ctypes.c_double]
+ _lib.Z3_params_set_symbol.argtypes = [ContextObj, Params, Symbol, Symbol]
+ _lib.Z3_params_to_string.restype = ctypes.c_char_p
+ _lib.Z3_params_to_string.argtypes = [ContextObj, Params]
+ _lib.Z3_params_validate.argtypes = [ContextObj, Params, ParamDescrs]
+ _lib.Z3_param_descrs_inc_ref.argtypes = [ContextObj, ParamDescrs]
+ _lib.Z3_param_descrs_dec_ref.argtypes = [ContextObj, ParamDescrs]
+ _lib.Z3_param_descrs_get_kind.restype = ctypes.c_uint
+ _lib.Z3_param_descrs_get_kind.argtypes = [ContextObj, ParamDescrs, Symbol]
+ _lib.Z3_param_descrs_size.restype = ctypes.c_uint
+ _lib.Z3_param_descrs_size.argtypes = [ContextObj, ParamDescrs]
+ _lib.Z3_param_descrs_get_name.restype = Symbol
+ _lib.Z3_param_descrs_get_name.argtypes = [ContextObj, ParamDescrs, ctypes.c_uint]
+ _lib.Z3_param_descrs_get_documentation.restype = ctypes.c_char_p
+ _lib.Z3_param_descrs_get_documentation.argtypes = [ContextObj, ParamDescrs, Symbol]
+ _lib.Z3_param_descrs_to_string.restype = ctypes.c_char_p
+ _lib.Z3_param_descrs_to_string.argtypes = [ContextObj, ParamDescrs]
+ _lib.Z3_mk_int_symbol.restype = Symbol
+ _lib.Z3_mk_int_symbol.argtypes = [ContextObj, ctypes.c_int]
+ _lib.Z3_mk_string_symbol.restype = Symbol
+ _lib.Z3_mk_string_symbol.argtypes = [ContextObj, ctypes.c_char_p]
+ _lib.Z3_mk_uninterpreted_sort.restype = Sort
+ _lib.Z3_mk_uninterpreted_sort.argtypes = [ContextObj, Symbol]
+ _lib.Z3_mk_bool_sort.restype = Sort
+ _lib.Z3_mk_bool_sort.argtypes = [ContextObj]
+ _lib.Z3_mk_int_sort.restype = Sort
+ _lib.Z3_mk_int_sort.argtypes = [ContextObj]
+ _lib.Z3_mk_real_sort.restype = Sort
+ _lib.Z3_mk_real_sort.argtypes = [ContextObj]
+ _lib.Z3_mk_bv_sort.restype = Sort
+ _lib.Z3_mk_bv_sort.argtypes = [ContextObj, ctypes.c_uint]
+ _lib.Z3_mk_finite_domain_sort.restype = Sort
+ _lib.Z3_mk_finite_domain_sort.argtypes = [ContextObj, Symbol, ctypes.c_ulonglong]
+ _lib.Z3_mk_array_sort.restype = Sort
+ _lib.Z3_mk_array_sort.argtypes = [ContextObj, Sort, Sort]
+ _lib.Z3_mk_tuple_sort.restype = Sort
+ _lib.Z3_mk_tuple_sort.argtypes = [ContextObj, Symbol, ctypes.c_uint, ctypes.POINTER(Symbol), ctypes.POINTER(Sort), ctypes.POINTER(FuncDecl), ctypes.POINTER(FuncDecl)]
+ _lib.Z3_mk_enumeration_sort.restype = Sort
+ _lib.Z3_mk_enumeration_sort.argtypes = [ContextObj, Symbol, ctypes.c_uint, ctypes.POINTER(Symbol), ctypes.POINTER(FuncDecl), ctypes.POINTER(FuncDecl)]
+ _lib.Z3_mk_list_sort.restype = Sort
+ _lib.Z3_mk_list_sort.argtypes = [ContextObj, Symbol, Sort, ctypes.POINTER(FuncDecl), ctypes.POINTER(FuncDecl), ctypes.POINTER(FuncDecl), ctypes.POINTER(FuncDecl), ctypes.POINTER(FuncDecl), ctypes.POINTER(FuncDecl)]
+ _lib.Z3_mk_constructor.restype = Constructor
+ _lib.Z3_mk_constructor.argtypes = [ContextObj, Symbol, Symbol, ctypes.c_uint, ctypes.POINTER(Symbol), ctypes.POINTER(Sort), ctypes.POINTER(ctypes.c_uint)]
+ _lib.Z3_del_constructor.argtypes = [ContextObj, Constructor]
+ _lib.Z3_mk_datatype.restype = Sort
+ _lib.Z3_mk_datatype.argtypes = [ContextObj, Symbol, ctypes.c_uint, ctypes.POINTER(Constructor)]
+ _lib.Z3_mk_constructor_list.restype = ConstructorList
+ _lib.Z3_mk_constructor_list.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Constructor)]
+ _lib.Z3_del_constructor_list.argtypes = [ContextObj, ConstructorList]
+ _lib.Z3_mk_datatypes.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Symbol), ctypes.POINTER(Sort), ctypes.POINTER(ConstructorList)]
+ _lib.Z3_query_constructor.argtypes = [ContextObj, Constructor, ctypes.c_uint, ctypes.POINTER(FuncDecl), ctypes.POINTER(FuncDecl), ctypes.POINTER(FuncDecl)]
+ _lib.Z3_mk_func_decl.restype = FuncDecl
+ _lib.Z3_mk_func_decl.argtypes = [ContextObj, Symbol, ctypes.c_uint, ctypes.POINTER(Sort), Sort]
+ _lib.Z3_mk_app.restype = Ast
+ _lib.Z3_mk_app.argtypes = [ContextObj, FuncDecl, ctypes.c_uint, ctypes.POINTER(Ast)]
+ _lib.Z3_mk_const.restype = Ast
+ _lib.Z3_mk_const.argtypes = [ContextObj, Symbol, Sort]
+ _lib.Z3_mk_fresh_func_decl.restype = FuncDecl
+ _lib.Z3_mk_fresh_func_decl.argtypes = [ContextObj, ctypes.c_char_p, ctypes.c_uint, ctypes.POINTER(Sort), Sort]
+ _lib.Z3_mk_fresh_const.restype = Ast
+ _lib.Z3_mk_fresh_const.argtypes = [ContextObj, ctypes.c_char_p, Sort]
+ _lib.Z3_mk_true.restype = Ast
+ _lib.Z3_mk_true.argtypes = [ContextObj]
+ _lib.Z3_mk_false.restype = Ast
+ _lib.Z3_mk_false.argtypes = [ContextObj]
+ _lib.Z3_mk_eq.restype = Ast
+ _lib.Z3_mk_eq.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_distinct.restype = Ast
+ _lib.Z3_mk_distinct.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast)]
+ _lib.Z3_mk_not.restype = Ast
+ _lib.Z3_mk_not.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_ite.restype = Ast
+ _lib.Z3_mk_ite.argtypes = [ContextObj, Ast, Ast, Ast]
+ _lib.Z3_mk_iff.restype = Ast
+ _lib.Z3_mk_iff.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_implies.restype = Ast
+ _lib.Z3_mk_implies.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_xor.restype = Ast
+ _lib.Z3_mk_xor.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_and.restype = Ast
+ _lib.Z3_mk_and.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast)]
+ _lib.Z3_mk_or.restype = Ast
+ _lib.Z3_mk_or.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast)]
+ _lib.Z3_mk_add.restype = Ast
+ _lib.Z3_mk_add.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast)]
+ _lib.Z3_mk_mul.restype = Ast
+ _lib.Z3_mk_mul.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast)]
+ _lib.Z3_mk_sub.restype = Ast
+ _lib.Z3_mk_sub.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast)]
+ _lib.Z3_mk_unary_minus.restype = Ast
+ _lib.Z3_mk_unary_minus.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_div.restype = Ast
+ _lib.Z3_mk_div.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_mod.restype = Ast
+ _lib.Z3_mk_mod.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_rem.restype = Ast
+ _lib.Z3_mk_rem.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_power.restype = Ast
+ _lib.Z3_mk_power.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_lt.restype = Ast
+ _lib.Z3_mk_lt.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_le.restype = Ast
+ _lib.Z3_mk_le.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_gt.restype = Ast
+ _lib.Z3_mk_gt.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_ge.restype = Ast
+ _lib.Z3_mk_ge.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_int2real.restype = Ast
+ _lib.Z3_mk_int2real.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_real2int.restype = Ast
+ _lib.Z3_mk_real2int.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_is_int.restype = Ast
+ _lib.Z3_mk_is_int.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_bvnot.restype = Ast
+ _lib.Z3_mk_bvnot.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_bvredand.restype = Ast
+ _lib.Z3_mk_bvredand.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_bvredor.restype = Ast
+ _lib.Z3_mk_bvredor.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_bvand.restype = Ast
+ _lib.Z3_mk_bvand.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvor.restype = Ast
+ _lib.Z3_mk_bvor.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvxor.restype = Ast
+ _lib.Z3_mk_bvxor.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvnand.restype = Ast
+ _lib.Z3_mk_bvnand.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvnor.restype = Ast
+ _lib.Z3_mk_bvnor.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvxnor.restype = Ast
+ _lib.Z3_mk_bvxnor.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvneg.restype = Ast
+ _lib.Z3_mk_bvneg.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_bvadd.restype = Ast
+ _lib.Z3_mk_bvadd.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvsub.restype = Ast
+ _lib.Z3_mk_bvsub.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvmul.restype = Ast
+ _lib.Z3_mk_bvmul.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvudiv.restype = Ast
+ _lib.Z3_mk_bvudiv.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvsdiv.restype = Ast
+ _lib.Z3_mk_bvsdiv.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvurem.restype = Ast
+ _lib.Z3_mk_bvurem.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvsrem.restype = Ast
+ _lib.Z3_mk_bvsrem.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvsmod.restype = Ast
+ _lib.Z3_mk_bvsmod.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvult.restype = Ast
+ _lib.Z3_mk_bvult.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvslt.restype = Ast
+ _lib.Z3_mk_bvslt.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvule.restype = Ast
+ _lib.Z3_mk_bvule.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvsle.restype = Ast
+ _lib.Z3_mk_bvsle.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvuge.restype = Ast
+ _lib.Z3_mk_bvuge.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvsge.restype = Ast
+ _lib.Z3_mk_bvsge.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvugt.restype = Ast
+ _lib.Z3_mk_bvugt.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvsgt.restype = Ast
+ _lib.Z3_mk_bvsgt.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_concat.restype = Ast
+ _lib.Z3_mk_concat.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_extract.restype = Ast
+ _lib.Z3_mk_extract.argtypes = [ContextObj, ctypes.c_uint, ctypes.c_uint, Ast]
+ _lib.Z3_mk_sign_ext.restype = Ast
+ _lib.Z3_mk_sign_ext.argtypes = [ContextObj, ctypes.c_uint, Ast]
+ _lib.Z3_mk_zero_ext.restype = Ast
+ _lib.Z3_mk_zero_ext.argtypes = [ContextObj, ctypes.c_uint, Ast]
+ _lib.Z3_mk_repeat.restype = Ast
+ _lib.Z3_mk_repeat.argtypes = [ContextObj, ctypes.c_uint, Ast]
+ _lib.Z3_mk_bvshl.restype = Ast
+ _lib.Z3_mk_bvshl.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvlshr.restype = Ast
+ _lib.Z3_mk_bvlshr.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvashr.restype = Ast
+ _lib.Z3_mk_bvashr.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_rotate_left.restype = Ast
+ _lib.Z3_mk_rotate_left.argtypes = [ContextObj, ctypes.c_uint, Ast]
+ _lib.Z3_mk_rotate_right.restype = Ast
+ _lib.Z3_mk_rotate_right.argtypes = [ContextObj, ctypes.c_uint, Ast]
+ _lib.Z3_mk_ext_rotate_left.restype = Ast
+ _lib.Z3_mk_ext_rotate_left.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_ext_rotate_right.restype = Ast
+ _lib.Z3_mk_ext_rotate_right.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_int2bv.restype = Ast
+ _lib.Z3_mk_int2bv.argtypes = [ContextObj, ctypes.c_uint, Ast]
+ _lib.Z3_mk_bv2int.restype = Ast
+ _lib.Z3_mk_bv2int.argtypes = [ContextObj, Ast, ctypes.c_bool]
+ _lib.Z3_mk_bvadd_no_overflow.restype = Ast
+ _lib.Z3_mk_bvadd_no_overflow.argtypes = [ContextObj, Ast, Ast, ctypes.c_bool]
+ _lib.Z3_mk_bvadd_no_underflow.restype = Ast
+ _lib.Z3_mk_bvadd_no_underflow.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvsub_no_overflow.restype = Ast
+ _lib.Z3_mk_bvsub_no_overflow.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvsub_no_underflow.restype = Ast
+ _lib.Z3_mk_bvsub_no_underflow.argtypes = [ContextObj, Ast, Ast, ctypes.c_bool]
+ _lib.Z3_mk_bvsdiv_no_overflow.restype = Ast
+ _lib.Z3_mk_bvsdiv_no_overflow.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_bvneg_no_overflow.restype = Ast
+ _lib.Z3_mk_bvneg_no_overflow.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_bvmul_no_overflow.restype = Ast
+ _lib.Z3_mk_bvmul_no_overflow.argtypes = [ContextObj, Ast, Ast, ctypes.c_bool]
+ _lib.Z3_mk_bvmul_no_underflow.restype = Ast
+ _lib.Z3_mk_bvmul_no_underflow.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_select.restype = Ast
+ _lib.Z3_mk_select.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_store.restype = Ast
+ _lib.Z3_mk_store.argtypes = [ContextObj, Ast, Ast, Ast]
+ _lib.Z3_mk_const_array.restype = Ast
+ _lib.Z3_mk_const_array.argtypes = [ContextObj, Sort, Ast]
+ _lib.Z3_mk_map.restype = Ast
+ _lib.Z3_mk_map.argtypes = [ContextObj, FuncDecl, ctypes.c_uint, ctypes.POINTER(Ast)]
+ _lib.Z3_mk_array_default.restype = Ast
+ _lib.Z3_mk_array_default.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_set_sort.restype = Sort
+ _lib.Z3_mk_set_sort.argtypes = [ContextObj, Sort]
+ _lib.Z3_mk_empty_set.restype = Ast
+ _lib.Z3_mk_empty_set.argtypes = [ContextObj, Sort]
+ _lib.Z3_mk_full_set.restype = Ast
+ _lib.Z3_mk_full_set.argtypes = [ContextObj, Sort]
+ _lib.Z3_mk_set_add.restype = Ast
+ _lib.Z3_mk_set_add.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_set_del.restype = Ast
+ _lib.Z3_mk_set_del.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_set_union.restype = Ast
+ _lib.Z3_mk_set_union.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast)]
+ _lib.Z3_mk_set_intersect.restype = Ast
+ _lib.Z3_mk_set_intersect.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast)]
+ _lib.Z3_mk_set_difference.restype = Ast
+ _lib.Z3_mk_set_difference.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_set_complement.restype = Ast
+ _lib.Z3_mk_set_complement.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_set_member.restype = Ast
+ _lib.Z3_mk_set_member.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_set_subset.restype = Ast
+ _lib.Z3_mk_set_subset.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_array_ext.restype = Ast
+ _lib.Z3_mk_array_ext.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_numeral.restype = Ast
+ _lib.Z3_mk_numeral.argtypes = [ContextObj, ctypes.c_char_p, Sort]
+ _lib.Z3_mk_real.restype = Ast
+ _lib.Z3_mk_real.argtypes = [ContextObj, ctypes.c_int, ctypes.c_int]
+ _lib.Z3_mk_int.restype = Ast
+ _lib.Z3_mk_int.argtypes = [ContextObj, ctypes.c_int, Sort]
+ _lib.Z3_mk_unsigned_int.restype = Ast
+ _lib.Z3_mk_unsigned_int.argtypes = [ContextObj, ctypes.c_uint, Sort]
+ _lib.Z3_mk_int64.restype = Ast
+ _lib.Z3_mk_int64.argtypes = [ContextObj, ctypes.c_longlong, Sort]
+ _lib.Z3_mk_unsigned_int64.restype = Ast
+ _lib.Z3_mk_unsigned_int64.argtypes = [ContextObj, ctypes.c_ulonglong, Sort]
+ _lib.Z3_mk_seq_sort.restype = Sort
+ _lib.Z3_mk_seq_sort.argtypes = [ContextObj, Sort]
+ _lib.Z3_is_seq_sort.restype = ctypes.c_bool
+ _lib.Z3_is_seq_sort.argtypes = [ContextObj, Sort]
+ _lib.Z3_mk_re_sort.restype = Sort
+ _lib.Z3_mk_re_sort.argtypes = [ContextObj, Sort]
+ _lib.Z3_is_re_sort.restype = ctypes.c_bool
+ _lib.Z3_is_re_sort.argtypes = [ContextObj, Sort]
+ _lib.Z3_mk_string_sort.restype = Sort
+ _lib.Z3_mk_string_sort.argtypes = [ContextObj]
+ _lib.Z3_is_string_sort.restype = ctypes.c_bool
+ _lib.Z3_is_string_sort.argtypes = [ContextObj, Sort]
+ _lib.Z3_mk_string.restype = Ast
+ _lib.Z3_mk_string.argtypes = [ContextObj, ctypes.c_char_p]
+ _lib.Z3_is_string.restype = ctypes.c_bool
+ _lib.Z3_is_string.argtypes = [ContextObj, Ast]
+ _lib.Z3_get_string.restype = ctypes.c_char_p
+ _lib.Z3_get_string.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_seq_empty.restype = Ast
+ _lib.Z3_mk_seq_empty.argtypes = [ContextObj, Sort]
+ _lib.Z3_mk_seq_unit.restype = Ast
+ _lib.Z3_mk_seq_unit.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_seq_concat.restype = Ast
+ _lib.Z3_mk_seq_concat.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast)]
+ _lib.Z3_mk_seq_prefix.restype = Ast
+ _lib.Z3_mk_seq_prefix.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_seq_suffix.restype = Ast
+ _lib.Z3_mk_seq_suffix.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_seq_contains.restype = Ast
+ _lib.Z3_mk_seq_contains.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_seq_extract.restype = Ast
+ _lib.Z3_mk_seq_extract.argtypes = [ContextObj, Ast, Ast, Ast]
+ _lib.Z3_mk_seq_replace.restype = Ast
+ _lib.Z3_mk_seq_replace.argtypes = [ContextObj, Ast, Ast, Ast]
+ _lib.Z3_mk_seq_at.restype = Ast
+ _lib.Z3_mk_seq_at.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_seq_length.restype = Ast
+ _lib.Z3_mk_seq_length.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_seq_index.restype = Ast
+ _lib.Z3_mk_seq_index.argtypes = [ContextObj, Ast, Ast, Ast]
+ _lib.Z3_mk_seq_to_re.restype = Ast
+ _lib.Z3_mk_seq_to_re.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_seq_in_re.restype = Ast
+ _lib.Z3_mk_seq_in_re.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_re_plus.restype = Ast
+ _lib.Z3_mk_re_plus.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_re_star.restype = Ast
+ _lib.Z3_mk_re_star.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_re_option.restype = Ast
+ _lib.Z3_mk_re_option.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_re_union.restype = Ast
+ _lib.Z3_mk_re_union.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast)]
+ _lib.Z3_mk_re_concat.restype = Ast
+ _lib.Z3_mk_re_concat.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast)]
+ _lib.Z3_mk_pattern.restype = Pattern
+ _lib.Z3_mk_pattern.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast)]
+ _lib.Z3_mk_bound.restype = Ast
+ _lib.Z3_mk_bound.argtypes = [ContextObj, ctypes.c_uint, Sort]
+ _lib.Z3_mk_forall.restype = Ast
+ _lib.Z3_mk_forall.argtypes = [ContextObj, ctypes.c_uint, ctypes.c_uint, ctypes.POINTER(Pattern), ctypes.c_uint, ctypes.POINTER(Sort), ctypes.POINTER(Symbol), Ast]
+ _lib.Z3_mk_exists.restype = Ast
+ _lib.Z3_mk_exists.argtypes = [ContextObj, ctypes.c_uint, ctypes.c_uint, ctypes.POINTER(Pattern), ctypes.c_uint, ctypes.POINTER(Sort), ctypes.POINTER(Symbol), Ast]
+ _lib.Z3_mk_quantifier.restype = Ast
+ _lib.Z3_mk_quantifier.argtypes = [ContextObj, ctypes.c_bool, ctypes.c_uint, ctypes.c_uint, ctypes.POINTER(Pattern), ctypes.c_uint, ctypes.POINTER(Sort), ctypes.POINTER(Symbol), Ast]
+ _lib.Z3_mk_quantifier_ex.restype = Ast
+ _lib.Z3_mk_quantifier_ex.argtypes = [ContextObj, ctypes.c_bool, ctypes.c_uint, Symbol, Symbol, ctypes.c_uint, ctypes.POINTER(Pattern), ctypes.c_uint, ctypes.POINTER(Ast), ctypes.c_uint, ctypes.POINTER(Sort), ctypes.POINTER(Symbol), Ast]
+ _lib.Z3_mk_forall_const.restype = Ast
+ _lib.Z3_mk_forall_const.argtypes = [ContextObj, ctypes.c_uint, ctypes.c_uint, ctypes.POINTER(Ast), ctypes.c_uint, ctypes.POINTER(Pattern), Ast]
+ _lib.Z3_mk_exists_const.restype = Ast
+ _lib.Z3_mk_exists_const.argtypes = [ContextObj, ctypes.c_uint, ctypes.c_uint, ctypes.POINTER(Ast), ctypes.c_uint, ctypes.POINTER(Pattern), Ast]
+ _lib.Z3_mk_quantifier_const.restype = Ast
+ _lib.Z3_mk_quantifier_const.argtypes = [ContextObj, ctypes.c_bool, ctypes.c_uint, ctypes.c_uint, ctypes.POINTER(Ast), ctypes.c_uint, ctypes.POINTER(Pattern), Ast]
+ _lib.Z3_mk_quantifier_const_ex.restype = Ast
+ _lib.Z3_mk_quantifier_const_ex.argtypes = [ContextObj, ctypes.c_bool, ctypes.c_uint, Symbol, Symbol, ctypes.c_uint, ctypes.POINTER(Ast), ctypes.c_uint, ctypes.POINTER(Pattern), ctypes.c_uint, ctypes.POINTER(Ast), Ast]
+ _lib.Z3_get_symbol_kind.restype = ctypes.c_uint
+ _lib.Z3_get_symbol_kind.argtypes = [ContextObj, Symbol]
+ _lib.Z3_get_symbol_int.restype = ctypes.c_int
+ _lib.Z3_get_symbol_int.argtypes = [ContextObj, Symbol]
+ _lib.Z3_get_symbol_string.restype = ctypes.c_char_p
+ _lib.Z3_get_symbol_string.argtypes = [ContextObj, Symbol]
+ _lib.Z3_get_sort_name.restype = Symbol
+ _lib.Z3_get_sort_name.argtypes = [ContextObj, Sort]
+ _lib.Z3_get_sort_id.restype = ctypes.c_uint
+ _lib.Z3_get_sort_id.argtypes = [ContextObj, Sort]
+ _lib.Z3_sort_to_ast.restype = Ast
+ _lib.Z3_sort_to_ast.argtypes = [ContextObj, Sort]
+ _lib.Z3_is_eq_sort.restype = ctypes.c_bool
+ _lib.Z3_is_eq_sort.argtypes = [ContextObj, Sort, Sort]
+ _lib.Z3_get_sort_kind.restype = ctypes.c_uint
+ _lib.Z3_get_sort_kind.argtypes = [ContextObj, Sort]
+ _lib.Z3_get_bv_sort_size.restype = ctypes.c_uint
+ _lib.Z3_get_bv_sort_size.argtypes = [ContextObj, Sort]
+ _lib.Z3_get_finite_domain_sort_size.restype = ctypes.c_bool
+ _lib.Z3_get_finite_domain_sort_size.argtypes = [ContextObj, Sort, ctypes.POINTER(ctypes.c_ulonglong)]
+ _lib.Z3_get_array_sort_domain.restype = Sort
+ _lib.Z3_get_array_sort_domain.argtypes = [ContextObj, Sort]
+ _lib.Z3_get_array_sort_range.restype = Sort
+ _lib.Z3_get_array_sort_range.argtypes = [ContextObj, Sort]
+ _lib.Z3_get_tuple_sort_mk_decl.restype = FuncDecl
+ _lib.Z3_get_tuple_sort_mk_decl.argtypes = [ContextObj, Sort]
+ _lib.Z3_get_tuple_sort_num_fields.restype = ctypes.c_uint
+ _lib.Z3_get_tuple_sort_num_fields.argtypes = [ContextObj, Sort]
+ _lib.Z3_get_tuple_sort_field_decl.restype = FuncDecl
+ _lib.Z3_get_tuple_sort_field_decl.argtypes = [ContextObj, Sort, ctypes.c_uint]
+ _lib.Z3_get_datatype_sort_num_constructors.restype = ctypes.c_uint
+ _lib.Z3_get_datatype_sort_num_constructors.argtypes = [ContextObj, Sort]
+ _lib.Z3_get_datatype_sort_constructor.restype = FuncDecl
+ _lib.Z3_get_datatype_sort_constructor.argtypes = [ContextObj, Sort, ctypes.c_uint]
+ _lib.Z3_get_datatype_sort_recognizer.restype = FuncDecl
+ _lib.Z3_get_datatype_sort_recognizer.argtypes = [ContextObj, Sort, ctypes.c_uint]
+ _lib.Z3_get_datatype_sort_constructor_accessor.restype = FuncDecl
+ _lib.Z3_get_datatype_sort_constructor_accessor.argtypes = [ContextObj, Sort, ctypes.c_uint, ctypes.c_uint]
+ _lib.Z3_datatype_update_field.restype = Ast
+ _lib.Z3_datatype_update_field.argtypes = [ContextObj, FuncDecl, Ast, Ast]
+ _lib.Z3_get_relation_arity.restype = ctypes.c_uint
+ _lib.Z3_get_relation_arity.argtypes = [ContextObj, Sort]
+ _lib.Z3_get_relation_column.restype = Sort
+ _lib.Z3_get_relation_column.argtypes = [ContextObj, Sort, ctypes.c_uint]
+ _lib.Z3_mk_atmost.restype = Ast
+ _lib.Z3_mk_atmost.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast), ctypes.c_uint]
+ _lib.Z3_mk_pble.restype = Ast
+ _lib.Z3_mk_pble.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast), ctypes.POINTER(ctypes.c_int), ctypes.c_int]
+ _lib.Z3_mk_pbeq.restype = Ast
+ _lib.Z3_mk_pbeq.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast), ctypes.POINTER(ctypes.c_int), ctypes.c_int]
+ _lib.Z3_func_decl_to_ast.restype = Ast
+ _lib.Z3_func_decl_to_ast.argtypes = [ContextObj, FuncDecl]
+ _lib.Z3_is_eq_func_decl.restype = ctypes.c_bool
+ _lib.Z3_is_eq_func_decl.argtypes = [ContextObj, FuncDecl, FuncDecl]
+ _lib.Z3_get_func_decl_id.restype = ctypes.c_uint
+ _lib.Z3_get_func_decl_id.argtypes = [ContextObj, FuncDecl]
+ _lib.Z3_get_decl_name.restype = Symbol
+ _lib.Z3_get_decl_name.argtypes = [ContextObj, FuncDecl]
+ _lib.Z3_get_decl_kind.restype = ctypes.c_uint
+ _lib.Z3_get_decl_kind.argtypes = [ContextObj, FuncDecl]
+ _lib.Z3_get_domain_size.restype = ctypes.c_uint
+ _lib.Z3_get_domain_size.argtypes = [ContextObj, FuncDecl]
+ _lib.Z3_get_arity.restype = ctypes.c_uint
+ _lib.Z3_get_arity.argtypes = [ContextObj, FuncDecl]
+ _lib.Z3_get_domain.restype = Sort
+ _lib.Z3_get_domain.argtypes = [ContextObj, FuncDecl, ctypes.c_uint]
+ _lib.Z3_get_range.restype = Sort
+ _lib.Z3_get_range.argtypes = [ContextObj, FuncDecl]
+ _lib.Z3_get_decl_num_parameters.restype = ctypes.c_uint
+ _lib.Z3_get_decl_num_parameters.argtypes = [ContextObj, FuncDecl]
+ _lib.Z3_get_decl_parameter_kind.restype = ctypes.c_uint
+ _lib.Z3_get_decl_parameter_kind.argtypes = [ContextObj, FuncDecl, ctypes.c_uint]
+ _lib.Z3_get_decl_int_parameter.restype = ctypes.c_int
+ _lib.Z3_get_decl_int_parameter.argtypes = [ContextObj, FuncDecl, ctypes.c_uint]
+ _lib.Z3_get_decl_double_parameter.restype = ctypes.c_double
+ _lib.Z3_get_decl_double_parameter.argtypes = [ContextObj, FuncDecl, ctypes.c_uint]
+ _lib.Z3_get_decl_symbol_parameter.restype = Symbol
+ _lib.Z3_get_decl_symbol_parameter.argtypes = [ContextObj, FuncDecl, ctypes.c_uint]
+ _lib.Z3_get_decl_sort_parameter.restype = Sort
+ _lib.Z3_get_decl_sort_parameter.argtypes = [ContextObj, FuncDecl, ctypes.c_uint]
+ _lib.Z3_get_decl_ast_parameter.restype = Ast
+ _lib.Z3_get_decl_ast_parameter.argtypes = [ContextObj, FuncDecl, ctypes.c_uint]
+ _lib.Z3_get_decl_func_decl_parameter.restype = FuncDecl
+ _lib.Z3_get_decl_func_decl_parameter.argtypes = [ContextObj, FuncDecl, ctypes.c_uint]
+ _lib.Z3_get_decl_rational_parameter.restype = ctypes.c_char_p
+ _lib.Z3_get_decl_rational_parameter.argtypes = [ContextObj, FuncDecl, ctypes.c_uint]
+ _lib.Z3_app_to_ast.restype = Ast
+ _lib.Z3_app_to_ast.argtypes = [ContextObj, Ast]
+ _lib.Z3_get_app_decl.restype = FuncDecl
+ _lib.Z3_get_app_decl.argtypes = [ContextObj, Ast]
+ _lib.Z3_get_app_num_args.restype = ctypes.c_uint
+ _lib.Z3_get_app_num_args.argtypes = [ContextObj, Ast]
+ _lib.Z3_get_app_arg.restype = Ast
+ _lib.Z3_get_app_arg.argtypes = [ContextObj, Ast, ctypes.c_uint]
+ _lib.Z3_is_eq_ast.restype = ctypes.c_bool
+ _lib.Z3_is_eq_ast.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_get_ast_id.restype = ctypes.c_uint
+ _lib.Z3_get_ast_id.argtypes = [ContextObj, Ast]
+ _lib.Z3_get_ast_hash.restype = ctypes.c_uint
+ _lib.Z3_get_ast_hash.argtypes = [ContextObj, Ast]
+ _lib.Z3_get_sort.restype = Sort
+ _lib.Z3_get_sort.argtypes = [ContextObj, Ast]
+ _lib.Z3_is_well_sorted.restype = ctypes.c_bool
+ _lib.Z3_is_well_sorted.argtypes = [ContextObj, Ast]
+ _lib.Z3_get_bool_value.restype = ctypes.c_int
+ _lib.Z3_get_bool_value.argtypes = [ContextObj, Ast]
+ _lib.Z3_get_ast_kind.restype = ctypes.c_uint
+ _lib.Z3_get_ast_kind.argtypes = [ContextObj, Ast]
+ _lib.Z3_is_app.restype = ctypes.c_bool
+ _lib.Z3_is_app.argtypes = [ContextObj, Ast]
+ _lib.Z3_is_numeral_ast.restype = ctypes.c_bool
+ _lib.Z3_is_numeral_ast.argtypes = [ContextObj, Ast]
+ _lib.Z3_is_algebraic_number.restype = ctypes.c_bool
+ _lib.Z3_is_algebraic_number.argtypes = [ContextObj, Ast]
+ _lib.Z3_to_app.restype = Ast
+ _lib.Z3_to_app.argtypes = [ContextObj, Ast]
+ _lib.Z3_to_func_decl.restype = FuncDecl
+ _lib.Z3_to_func_decl.argtypes = [ContextObj, Ast]
+ _lib.Z3_get_numeral_string.restype = ctypes.c_char_p
+ _lib.Z3_get_numeral_string.argtypes = [ContextObj, Ast]
+ _lib.Z3_get_numeral_decimal_string.restype = ctypes.c_char_p
+ _lib.Z3_get_numeral_decimal_string.argtypes = [ContextObj, Ast, ctypes.c_uint]
+ _lib.Z3_get_numerator.restype = Ast
+ _lib.Z3_get_numerator.argtypes = [ContextObj, Ast]
+ _lib.Z3_get_denominator.restype = Ast
+ _lib.Z3_get_denominator.argtypes = [ContextObj, Ast]
+ _lib.Z3_get_numeral_small.restype = ctypes.c_bool
+ _lib.Z3_get_numeral_small.argtypes = [ContextObj, Ast, ctypes.POINTER(ctypes.c_longlong), ctypes.POINTER(ctypes.c_longlong)]
+ _lib.Z3_get_numeral_int.restype = ctypes.c_bool
+ _lib.Z3_get_numeral_int.argtypes = [ContextObj, Ast, ctypes.POINTER(ctypes.c_int)]
+ _lib.Z3_get_numeral_uint.restype = ctypes.c_bool
+ _lib.Z3_get_numeral_uint.argtypes = [ContextObj, Ast, ctypes.POINTER(ctypes.c_uint)]
+ _lib.Z3_get_numeral_uint64.restype = ctypes.c_bool
+ _lib.Z3_get_numeral_uint64.argtypes = [ContextObj, Ast, ctypes.POINTER(ctypes.c_ulonglong)]
+ _lib.Z3_get_numeral_int64.restype = ctypes.c_bool
+ _lib.Z3_get_numeral_int64.argtypes = [ContextObj, Ast, ctypes.POINTER(ctypes.c_longlong)]
+ _lib.Z3_get_numeral_rational_int64.restype = ctypes.c_bool
+ _lib.Z3_get_numeral_rational_int64.argtypes = [ContextObj, Ast, ctypes.POINTER(ctypes.c_longlong), ctypes.POINTER(ctypes.c_longlong)]
+ _lib.Z3_get_algebraic_number_lower.restype = Ast
+ _lib.Z3_get_algebraic_number_lower.argtypes = [ContextObj, Ast, ctypes.c_uint]
+ _lib.Z3_get_algebraic_number_upper.restype = Ast
+ _lib.Z3_get_algebraic_number_upper.argtypes = [ContextObj, Ast, ctypes.c_uint]
+ _lib.Z3_pattern_to_ast.restype = Ast
+ _lib.Z3_pattern_to_ast.argtypes = [ContextObj, Pattern]
+ _lib.Z3_get_pattern_num_terms.restype = ctypes.c_uint
+ _lib.Z3_get_pattern_num_terms.argtypes = [ContextObj, Pattern]
+ _lib.Z3_get_pattern.restype = Ast
+ _lib.Z3_get_pattern.argtypes = [ContextObj, Pattern, ctypes.c_uint]
+ _lib.Z3_get_index_value.restype = ctypes.c_uint
+ _lib.Z3_get_index_value.argtypes = [ContextObj, Ast]
+ _lib.Z3_is_quantifier_forall.restype = ctypes.c_bool
+ _lib.Z3_is_quantifier_forall.argtypes = [ContextObj, Ast]
+ _lib.Z3_get_quantifier_weight.restype = ctypes.c_uint
+ _lib.Z3_get_quantifier_weight.argtypes = [ContextObj, Ast]
+ _lib.Z3_get_quantifier_num_patterns.restype = ctypes.c_uint
+ _lib.Z3_get_quantifier_num_patterns.argtypes = [ContextObj, Ast]
+ _lib.Z3_get_quantifier_pattern_ast.restype = Pattern
+ _lib.Z3_get_quantifier_pattern_ast.argtypes = [ContextObj, Ast, ctypes.c_uint]
+ _lib.Z3_get_quantifier_num_no_patterns.restype = ctypes.c_uint
+ _lib.Z3_get_quantifier_num_no_patterns.argtypes = [ContextObj, Ast]
+ _lib.Z3_get_quantifier_no_pattern_ast.restype = Ast
+ _lib.Z3_get_quantifier_no_pattern_ast.argtypes = [ContextObj, Ast, ctypes.c_uint]
+ _lib.Z3_get_quantifier_num_bound.restype = ctypes.c_uint
+ _lib.Z3_get_quantifier_num_bound.argtypes = [ContextObj, Ast]
+ _lib.Z3_get_quantifier_bound_name.restype = Symbol
+ _lib.Z3_get_quantifier_bound_name.argtypes = [ContextObj, Ast, ctypes.c_uint]
+ _lib.Z3_get_quantifier_bound_sort.restype = Sort
+ _lib.Z3_get_quantifier_bound_sort.argtypes = [ContextObj, Ast, ctypes.c_uint]
+ _lib.Z3_get_quantifier_body.restype = Ast
+ _lib.Z3_get_quantifier_body.argtypes = [ContextObj, Ast]
+ _lib.Z3_simplify.restype = Ast
+ _lib.Z3_simplify.argtypes = [ContextObj, Ast]
+ _lib.Z3_simplify_ex.restype = Ast
+ _lib.Z3_simplify_ex.argtypes = [ContextObj, Ast, Params]
+ _lib.Z3_simplify_get_help.restype = ctypes.c_char_p
+ _lib.Z3_simplify_get_help.argtypes = [ContextObj]
+ _lib.Z3_simplify_get_param_descrs.restype = ParamDescrs
+ _lib.Z3_simplify_get_param_descrs.argtypes = [ContextObj]
+ _lib.Z3_update_term.restype = Ast
+ _lib.Z3_update_term.argtypes = [ContextObj, Ast, ctypes.c_uint, ctypes.POINTER(Ast)]
+ _lib.Z3_substitute.restype = Ast
+ _lib.Z3_substitute.argtypes = [ContextObj, Ast, ctypes.c_uint, ctypes.POINTER(Ast), ctypes.POINTER(Ast)]
+ _lib.Z3_substitute_vars.restype = Ast
+ _lib.Z3_substitute_vars.argtypes = [ContextObj, Ast, ctypes.c_uint, ctypes.POINTER(Ast)]
+ _lib.Z3_translate.restype = Ast
+ _lib.Z3_translate.argtypes = [ContextObj, Ast, ContextObj]
+ _lib.Z3_model_inc_ref.argtypes = [ContextObj, Model]
+ _lib.Z3_model_dec_ref.argtypes = [ContextObj, Model]
+ _lib.Z3_model_eval.restype = ctypes.c_bool
+ _lib.Z3_model_eval.argtypes = [ContextObj, Model, Ast, ctypes.c_bool, ctypes.POINTER(Ast)]
+ _lib.Z3_model_get_const_interp.restype = Ast
+ _lib.Z3_model_get_const_interp.argtypes = [ContextObj, Model, FuncDecl]
+ _lib.Z3_model_has_interp.restype = ctypes.c_bool
+ _lib.Z3_model_has_interp.argtypes = [ContextObj, Model, FuncDecl]
+ _lib.Z3_model_get_func_interp.restype = FuncInterpObj
+ _lib.Z3_model_get_func_interp.argtypes = [ContextObj, Model, FuncDecl]
+ _lib.Z3_model_get_num_consts.restype = ctypes.c_uint
+ _lib.Z3_model_get_num_consts.argtypes = [ContextObj, Model]
+ _lib.Z3_model_get_const_decl.restype = FuncDecl
+ _lib.Z3_model_get_const_decl.argtypes = [ContextObj, Model, ctypes.c_uint]
+ _lib.Z3_model_get_num_funcs.restype = ctypes.c_uint
+ _lib.Z3_model_get_num_funcs.argtypes = [ContextObj, Model]
+ _lib.Z3_model_get_func_decl.restype = FuncDecl
+ _lib.Z3_model_get_func_decl.argtypes = [ContextObj, Model, ctypes.c_uint]
+ _lib.Z3_model_get_num_sorts.restype = ctypes.c_uint
+ _lib.Z3_model_get_num_sorts.argtypes = [ContextObj, Model]
+ _lib.Z3_model_get_sort.restype = Sort
+ _lib.Z3_model_get_sort.argtypes = [ContextObj, Model, ctypes.c_uint]
+ _lib.Z3_model_get_sort_universe.restype = AstVectorObj
+ _lib.Z3_model_get_sort_universe.argtypes = [ContextObj, Model, Sort]
+ _lib.Z3_is_as_array.restype = ctypes.c_bool
+ _lib.Z3_is_as_array.argtypes = [ContextObj, Ast]
+ _lib.Z3_get_as_array_func_decl.restype = FuncDecl
+ _lib.Z3_get_as_array_func_decl.argtypes = [ContextObj, Ast]
+ _lib.Z3_func_interp_inc_ref.argtypes = [ContextObj, FuncInterpObj]
+ _lib.Z3_func_interp_dec_ref.argtypes = [ContextObj, FuncInterpObj]
+ _lib.Z3_func_interp_get_num_entries.restype = ctypes.c_uint
+ _lib.Z3_func_interp_get_num_entries.argtypes = [ContextObj, FuncInterpObj]
+ _lib.Z3_func_interp_get_entry.restype = FuncEntryObj
+ _lib.Z3_func_interp_get_entry.argtypes = [ContextObj, FuncInterpObj, ctypes.c_uint]
+ _lib.Z3_func_interp_get_else.restype = Ast
+ _lib.Z3_func_interp_get_else.argtypes = [ContextObj, FuncInterpObj]
+ _lib.Z3_func_interp_get_arity.restype = ctypes.c_uint
+ _lib.Z3_func_interp_get_arity.argtypes = [ContextObj, FuncInterpObj]
+ _lib.Z3_func_entry_inc_ref.argtypes = [ContextObj, FuncEntryObj]
+ _lib.Z3_func_entry_dec_ref.argtypes = [ContextObj, FuncEntryObj]
+ _lib.Z3_func_entry_get_value.restype = Ast
+ _lib.Z3_func_entry_get_value.argtypes = [ContextObj, FuncEntryObj]
+ _lib.Z3_func_entry_get_num_args.restype = ctypes.c_uint
+ _lib.Z3_func_entry_get_num_args.argtypes = [ContextObj, FuncEntryObj]
+ _lib.Z3_func_entry_get_arg.restype = Ast
+ _lib.Z3_func_entry_get_arg.argtypes = [ContextObj, FuncEntryObj, ctypes.c_uint]
+ _lib.Z3_open_log.restype = ctypes.c_int
+ _lib.Z3_open_log.argtypes = [ctypes.c_char_p]
+ _lib.Z3_append_log.argtypes = [ctypes.c_char_p]
+ _lib.Z3_close_log.argtypes = []
+ _lib.Z3_toggle_warning_messages.argtypes = [ctypes.c_bool]
+ _lib.Z3_set_ast_print_mode.argtypes = [ContextObj, ctypes.c_uint]
+ _lib.Z3_ast_to_string.restype = ctypes.c_char_p
+ _lib.Z3_ast_to_string.argtypes = [ContextObj, Ast]
+ _lib.Z3_pattern_to_string.restype = ctypes.c_char_p
+ _lib.Z3_pattern_to_string.argtypes = [ContextObj, Pattern]
+ _lib.Z3_sort_to_string.restype = ctypes.c_char_p
+ _lib.Z3_sort_to_string.argtypes = [ContextObj, Sort]
+ _lib.Z3_func_decl_to_string.restype = ctypes.c_char_p
+ _lib.Z3_func_decl_to_string.argtypes = [ContextObj, FuncDecl]
+ _lib.Z3_model_to_string.restype = ctypes.c_char_p
+ _lib.Z3_model_to_string.argtypes = [ContextObj, Model]
+ _lib.Z3_benchmark_to_smtlib_string.restype = ctypes.c_char_p
+ _lib.Z3_benchmark_to_smtlib_string.argtypes = [ContextObj, ctypes.c_char_p, ctypes.c_char_p, ctypes.c_char_p, ctypes.c_char_p, ctypes.c_uint, ctypes.POINTER(Ast), Ast]
+ _lib.Z3_parse_smtlib2_string.restype = Ast
+ _lib.Z3_parse_smtlib2_string.argtypes = [ContextObj, ctypes.c_char_p, ctypes.c_uint, ctypes.POINTER(Symbol), ctypes.POINTER(Sort), ctypes.c_uint, ctypes.POINTER(Symbol), ctypes.POINTER(FuncDecl)]
+ _lib.Z3_parse_smtlib2_file.restype = Ast
+ _lib.Z3_parse_smtlib2_file.argtypes = [ContextObj, ctypes.c_char_p, ctypes.c_uint, ctypes.POINTER(Symbol), ctypes.POINTER(Sort), ctypes.c_uint, ctypes.POINTER(Symbol), ctypes.POINTER(FuncDecl)]
+ _lib.Z3_parse_smtlib_string.argtypes = [ContextObj, ctypes.c_char_p, ctypes.c_uint, ctypes.POINTER(Symbol), ctypes.POINTER(Sort), ctypes.c_uint, ctypes.POINTER(Symbol), ctypes.POINTER(FuncDecl)]
+ _lib.Z3_parse_smtlib_file.argtypes = [ContextObj, ctypes.c_char_p, ctypes.c_uint, ctypes.POINTER(Symbol), ctypes.POINTER(Sort), ctypes.c_uint, ctypes.POINTER(Symbol), ctypes.POINTER(FuncDecl)]
+ _lib.Z3_get_smtlib_num_formulas.restype = ctypes.c_uint
+ _lib.Z3_get_smtlib_num_formulas.argtypes = [ContextObj]
+ _lib.Z3_get_smtlib_formula.restype = Ast
+ _lib.Z3_get_smtlib_formula.argtypes = [ContextObj, ctypes.c_uint]
+ _lib.Z3_get_smtlib_num_assumptions.restype = ctypes.c_uint
+ _lib.Z3_get_smtlib_num_assumptions.argtypes = [ContextObj]
+ _lib.Z3_get_smtlib_assumption.restype = Ast
+ _lib.Z3_get_smtlib_assumption.argtypes = [ContextObj, ctypes.c_uint]
+ _lib.Z3_get_smtlib_num_decls.restype = ctypes.c_uint
+ _lib.Z3_get_smtlib_num_decls.argtypes = [ContextObj]
+ _lib.Z3_get_smtlib_decl.restype = FuncDecl
+ _lib.Z3_get_smtlib_decl.argtypes = [ContextObj, ctypes.c_uint]
+ _lib.Z3_get_smtlib_num_sorts.restype = ctypes.c_uint
+ _lib.Z3_get_smtlib_num_sorts.argtypes = [ContextObj]
+ _lib.Z3_get_smtlib_sort.restype = Sort
+ _lib.Z3_get_smtlib_sort.argtypes = [ContextObj, ctypes.c_uint]
+ _lib.Z3_get_smtlib_error.restype = ctypes.c_char_p
+ _lib.Z3_get_smtlib_error.argtypes = [ContextObj]
+ _lib.Z3_get_error_code.restype = ctypes.c_uint
+ _lib.Z3_get_error_code.argtypes = [ContextObj]
+ _lib.Z3_set_error.argtypes = [ContextObj, ctypes.c_uint]
+ _lib.Z3_get_error_msg.restype = ctypes.c_char_p
+ _lib.Z3_get_error_msg.argtypes = [ContextObj, ctypes.c_uint]
+ _lib.Z3_get_version.argtypes = [ctypes.POINTER(ctypes.c_uint), ctypes.POINTER(ctypes.c_uint), ctypes.POINTER(ctypes.c_uint), ctypes.POINTER(ctypes.c_uint)]
+ _lib.Z3_get_full_version.restype = ctypes.c_char_p
+ _lib.Z3_get_full_version.argtypes = []
+ _lib.Z3_enable_trace.argtypes = [ctypes.c_char_p]
+ _lib.Z3_disable_trace.argtypes = [ctypes.c_char_p]
+ _lib.Z3_reset_memory.argtypes = []
+ _lib.Z3_finalize_memory.argtypes = []
+ _lib.Z3_mk_goal.restype = GoalObj
+ _lib.Z3_mk_goal.argtypes = [ContextObj, ctypes.c_bool, ctypes.c_bool, ctypes.c_bool]
+ _lib.Z3_goal_inc_ref.argtypes = [ContextObj, GoalObj]
+ _lib.Z3_goal_dec_ref.argtypes = [ContextObj, GoalObj]
+ _lib.Z3_goal_precision.restype = ctypes.c_uint
+ _lib.Z3_goal_precision.argtypes = [ContextObj, GoalObj]
+ _lib.Z3_goal_assert.argtypes = [ContextObj, GoalObj, Ast]
+ _lib.Z3_goal_inconsistent.restype = ctypes.c_bool
+ _lib.Z3_goal_inconsistent.argtypes = [ContextObj, GoalObj]
+ _lib.Z3_goal_depth.restype = ctypes.c_uint
+ _lib.Z3_goal_depth.argtypes = [ContextObj, GoalObj]
+ _lib.Z3_goal_reset.argtypes = [ContextObj, GoalObj]
+ _lib.Z3_goal_size.restype = ctypes.c_uint
+ _lib.Z3_goal_size.argtypes = [ContextObj, GoalObj]
+ _lib.Z3_goal_formula.restype = Ast
+ _lib.Z3_goal_formula.argtypes = [ContextObj, GoalObj, ctypes.c_uint]
+ _lib.Z3_goal_num_exprs.restype = ctypes.c_uint
+ _lib.Z3_goal_num_exprs.argtypes = [ContextObj, GoalObj]
+ _lib.Z3_goal_is_decided_sat.restype = ctypes.c_bool
+ _lib.Z3_goal_is_decided_sat.argtypes = [ContextObj, GoalObj]
+ _lib.Z3_goal_is_decided_unsat.restype = ctypes.c_bool
+ _lib.Z3_goal_is_decided_unsat.argtypes = [ContextObj, GoalObj]
+ _lib.Z3_goal_translate.restype = GoalObj
+ _lib.Z3_goal_translate.argtypes = [ContextObj, GoalObj, ContextObj]
+ _lib.Z3_goal_to_string.restype = ctypes.c_char_p
+ _lib.Z3_goal_to_string.argtypes = [ContextObj, GoalObj]
+ _lib.Z3_mk_tactic.restype = TacticObj
+ _lib.Z3_mk_tactic.argtypes = [ContextObj, ctypes.c_char_p]
+ _lib.Z3_tactic_inc_ref.argtypes = [ContextObj, TacticObj]
+ _lib.Z3_tactic_dec_ref.argtypes = [ContextObj, TacticObj]
+ _lib.Z3_mk_probe.restype = ProbeObj
+ _lib.Z3_mk_probe.argtypes = [ContextObj, ctypes.c_char_p]
+ _lib.Z3_probe_inc_ref.argtypes = [ContextObj, ProbeObj]
+ _lib.Z3_probe_dec_ref.argtypes = [ContextObj, ProbeObj]
+ _lib.Z3_tactic_and_then.restype = TacticObj
+ _lib.Z3_tactic_and_then.argtypes = [ContextObj, TacticObj, TacticObj]
+ _lib.Z3_tactic_or_else.restype = TacticObj
+ _lib.Z3_tactic_or_else.argtypes = [ContextObj, TacticObj, TacticObj]
+ _lib.Z3_tactic_par_or.restype = TacticObj
+ _lib.Z3_tactic_par_or.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(TacticObj)]
+ _lib.Z3_tactic_par_and_then.restype = TacticObj
+ _lib.Z3_tactic_par_and_then.argtypes = [ContextObj, TacticObj, TacticObj]
+ _lib.Z3_tactic_try_for.restype = TacticObj
+ _lib.Z3_tactic_try_for.argtypes = [ContextObj, TacticObj, ctypes.c_uint]
+ _lib.Z3_tactic_when.restype = TacticObj
+ _lib.Z3_tactic_when.argtypes = [ContextObj, ProbeObj, TacticObj]
+ _lib.Z3_tactic_cond.restype = TacticObj
+ _lib.Z3_tactic_cond.argtypes = [ContextObj, ProbeObj, TacticObj, TacticObj]
+ _lib.Z3_tactic_repeat.restype = TacticObj
+ _lib.Z3_tactic_repeat.argtypes = [ContextObj, TacticObj, ctypes.c_uint]
+ _lib.Z3_tactic_skip.restype = TacticObj
+ _lib.Z3_tactic_skip.argtypes = [ContextObj]
+ _lib.Z3_tactic_fail.restype = TacticObj
+ _lib.Z3_tactic_fail.argtypes = [ContextObj]
+ _lib.Z3_tactic_fail_if.restype = TacticObj
+ _lib.Z3_tactic_fail_if.argtypes = [ContextObj, ProbeObj]
+ _lib.Z3_tactic_fail_if_not_decided.restype = TacticObj
+ _lib.Z3_tactic_fail_if_not_decided.argtypes = [ContextObj]
+ _lib.Z3_tactic_using_params.restype = TacticObj
+ _lib.Z3_tactic_using_params.argtypes = [ContextObj, TacticObj, Params]
+ _lib.Z3_probe_const.restype = ProbeObj
+ _lib.Z3_probe_const.argtypes = [ContextObj, ctypes.c_double]
+ _lib.Z3_probe_lt.restype = ProbeObj
+ _lib.Z3_probe_lt.argtypes = [ContextObj, ProbeObj, ProbeObj]
+ _lib.Z3_probe_gt.restype = ProbeObj
+ _lib.Z3_probe_gt.argtypes = [ContextObj, ProbeObj, ProbeObj]
+ _lib.Z3_probe_le.restype = ProbeObj
+ _lib.Z3_probe_le.argtypes = [ContextObj, ProbeObj, ProbeObj]
+ _lib.Z3_probe_ge.restype = ProbeObj
+ _lib.Z3_probe_ge.argtypes = [ContextObj, ProbeObj, ProbeObj]
+ _lib.Z3_probe_eq.restype = ProbeObj
+ _lib.Z3_probe_eq.argtypes = [ContextObj, ProbeObj, ProbeObj]
+ _lib.Z3_probe_and.restype = ProbeObj
+ _lib.Z3_probe_and.argtypes = [ContextObj, ProbeObj, ProbeObj]
+ _lib.Z3_probe_or.restype = ProbeObj
+ _lib.Z3_probe_or.argtypes = [ContextObj, ProbeObj, ProbeObj]
+ _lib.Z3_probe_not.restype = ProbeObj
+ _lib.Z3_probe_not.argtypes = [ContextObj, ProbeObj]
+ _lib.Z3_get_num_tactics.restype = ctypes.c_uint
+ _lib.Z3_get_num_tactics.argtypes = [ContextObj]
+ _lib.Z3_get_tactic_name.restype = ctypes.c_char_p
+ _lib.Z3_get_tactic_name.argtypes = [ContextObj, ctypes.c_uint]
+ _lib.Z3_get_num_probes.restype = ctypes.c_uint
+ _lib.Z3_get_num_probes.argtypes = [ContextObj]
+ _lib.Z3_get_probe_name.restype = ctypes.c_char_p
+ _lib.Z3_get_probe_name.argtypes = [ContextObj, ctypes.c_uint]
+ _lib.Z3_tactic_get_help.restype = ctypes.c_char_p
+ _lib.Z3_tactic_get_help.argtypes = [ContextObj, TacticObj]
+ _lib.Z3_tactic_get_param_descrs.restype = ParamDescrs
+ _lib.Z3_tactic_get_param_descrs.argtypes = [ContextObj, TacticObj]
+ _lib.Z3_tactic_get_descr.restype = ctypes.c_char_p
+ _lib.Z3_tactic_get_descr.argtypes = [ContextObj, ctypes.c_char_p]
+ _lib.Z3_probe_get_descr.restype = ctypes.c_char_p
+ _lib.Z3_probe_get_descr.argtypes = [ContextObj, ctypes.c_char_p]
+ _lib.Z3_probe_apply.restype = ctypes.c_double
+ _lib.Z3_probe_apply.argtypes = [ContextObj, ProbeObj, GoalObj]
+ _lib.Z3_tactic_apply.restype = ApplyResultObj
+ _lib.Z3_tactic_apply.argtypes = [ContextObj, TacticObj, GoalObj]
+ _lib.Z3_tactic_apply_ex.restype = ApplyResultObj
+ _lib.Z3_tactic_apply_ex.argtypes = [ContextObj, TacticObj, GoalObj, Params]
+ _lib.Z3_apply_result_inc_ref.argtypes = [ContextObj, ApplyResultObj]
+ _lib.Z3_apply_result_dec_ref.argtypes = [ContextObj, ApplyResultObj]
+ _lib.Z3_apply_result_to_string.restype = ctypes.c_char_p
+ _lib.Z3_apply_result_to_string.argtypes = [ContextObj, ApplyResultObj]
+ _lib.Z3_apply_result_get_num_subgoals.restype = ctypes.c_uint
+ _lib.Z3_apply_result_get_num_subgoals.argtypes = [ContextObj, ApplyResultObj]
+ _lib.Z3_apply_result_get_subgoal.restype = GoalObj
+ _lib.Z3_apply_result_get_subgoal.argtypes = [ContextObj, ApplyResultObj, ctypes.c_uint]
+ _lib.Z3_apply_result_convert_model.restype = Model
+ _lib.Z3_apply_result_convert_model.argtypes = [ContextObj, ApplyResultObj, ctypes.c_uint, Model]
+ _lib.Z3_mk_solver.restype = SolverObj
+ _lib.Z3_mk_solver.argtypes = [ContextObj]
+ _lib.Z3_mk_simple_solver.restype = SolverObj
+ _lib.Z3_mk_simple_solver.argtypes = [ContextObj]
+ _lib.Z3_mk_solver_for_logic.restype = SolverObj
+ _lib.Z3_mk_solver_for_logic.argtypes = [ContextObj, Symbol]
+ _lib.Z3_mk_solver_from_tactic.restype = SolverObj
+ _lib.Z3_mk_solver_from_tactic.argtypes = [ContextObj, TacticObj]
+ _lib.Z3_solver_translate.restype = SolverObj
+ _lib.Z3_solver_translate.argtypes = [ContextObj, SolverObj, ContextObj]
+ _lib.Z3_solver_get_help.restype = ctypes.c_char_p
+ _lib.Z3_solver_get_help.argtypes = [ContextObj, SolverObj]
+ _lib.Z3_solver_get_param_descrs.restype = ParamDescrs
+ _lib.Z3_solver_get_param_descrs.argtypes = [ContextObj, SolverObj]
+ _lib.Z3_solver_set_params.argtypes = [ContextObj, SolverObj, Params]
+ _lib.Z3_solver_inc_ref.argtypes = [ContextObj, SolverObj]
+ _lib.Z3_solver_dec_ref.argtypes = [ContextObj, SolverObj]
+ _lib.Z3_solver_push.argtypes = [ContextObj, SolverObj]
+ _lib.Z3_solver_pop.argtypes = [ContextObj, SolverObj, ctypes.c_uint]
+ _lib.Z3_solver_reset.argtypes = [ContextObj, SolverObj]
+ _lib.Z3_solver_get_num_scopes.restype = ctypes.c_uint
+ _lib.Z3_solver_get_num_scopes.argtypes = [ContextObj, SolverObj]
+ _lib.Z3_solver_assert.argtypes = [ContextObj, SolverObj, Ast]
+ _lib.Z3_solver_assert_and_track.argtypes = [ContextObj, SolverObj, Ast, Ast]
+ _lib.Z3_solver_get_assertions.restype = AstVectorObj
+ _lib.Z3_solver_get_assertions.argtypes = [ContextObj, SolverObj]
+ _lib.Z3_solver_check.restype = ctypes.c_int
+ _lib.Z3_solver_check.argtypes = [ContextObj, SolverObj]
+ _lib.Z3_solver_check_assumptions.restype = ctypes.c_int
+ _lib.Z3_solver_check_assumptions.argtypes = [ContextObj, SolverObj, ctypes.c_uint, ctypes.POINTER(Ast)]
+ _lib.Z3_get_implied_equalities.restype = ctypes.c_int
+ _lib.Z3_get_implied_equalities.argtypes = [ContextObj, SolverObj, ctypes.c_uint, ctypes.POINTER(Ast), ctypes.POINTER(ctypes.c_uint)]
+ _lib.Z3_solver_get_consequences.restype = ctypes.c_int
+ _lib.Z3_solver_get_consequences.argtypes = [ContextObj, SolverObj, AstVectorObj, AstVectorObj, AstVectorObj]
+ _lib.Z3_solver_get_model.restype = Model
+ _lib.Z3_solver_get_model.argtypes = [ContextObj, SolverObj]
+ _lib.Z3_solver_get_proof.restype = Ast
+ _lib.Z3_solver_get_proof.argtypes = [ContextObj, SolverObj]
+ _lib.Z3_solver_get_unsat_core.restype = AstVectorObj
+ _lib.Z3_solver_get_unsat_core.argtypes = [ContextObj, SolverObj]
+ _lib.Z3_solver_get_reason_unknown.restype = ctypes.c_char_p
+ _lib.Z3_solver_get_reason_unknown.argtypes = [ContextObj, SolverObj]
+ _lib.Z3_solver_get_statistics.restype = StatsObj
+ _lib.Z3_solver_get_statistics.argtypes = [ContextObj, SolverObj]
+ _lib.Z3_solver_to_string.restype = ctypes.c_char_p
+ _lib.Z3_solver_to_string.argtypes = [ContextObj, SolverObj]
+ _lib.Z3_stats_to_string.restype = ctypes.c_char_p
+ _lib.Z3_stats_to_string.argtypes = [ContextObj, StatsObj]
+ _lib.Z3_stats_inc_ref.argtypes = [ContextObj, StatsObj]
+ _lib.Z3_stats_dec_ref.argtypes = [ContextObj, StatsObj]
+ _lib.Z3_stats_size.restype = ctypes.c_uint
+ _lib.Z3_stats_size.argtypes = [ContextObj, StatsObj]
+ _lib.Z3_stats_get_key.restype = ctypes.c_char_p
+ _lib.Z3_stats_get_key.argtypes = [ContextObj, StatsObj, ctypes.c_uint]
+ _lib.Z3_stats_is_uint.restype = ctypes.c_bool
+ _lib.Z3_stats_is_uint.argtypes = [ContextObj, StatsObj, ctypes.c_uint]
+ _lib.Z3_stats_is_double.restype = ctypes.c_bool
+ _lib.Z3_stats_is_double.argtypes = [ContextObj, StatsObj, ctypes.c_uint]
+ _lib.Z3_stats_get_uint_value.restype = ctypes.c_uint
+ _lib.Z3_stats_get_uint_value.argtypes = [ContextObj, StatsObj, ctypes.c_uint]
+ _lib.Z3_stats_get_double_value.restype = ctypes.c_double
+ _lib.Z3_stats_get_double_value.argtypes = [ContextObj, StatsObj, ctypes.c_uint]
+ _lib.Z3_get_estimated_alloc_size.restype = ctypes.c_ulonglong
+ _lib.Z3_get_estimated_alloc_size.argtypes = []
+ _lib.Z3_mk_ast_vector.restype = AstVectorObj
+ _lib.Z3_mk_ast_vector.argtypes = [ContextObj]
+ _lib.Z3_ast_vector_inc_ref.argtypes = [ContextObj, AstVectorObj]
+ _lib.Z3_ast_vector_dec_ref.argtypes = [ContextObj, AstVectorObj]
+ _lib.Z3_ast_vector_size.restype = ctypes.c_uint
+ _lib.Z3_ast_vector_size.argtypes = [ContextObj, AstVectorObj]
+ _lib.Z3_ast_vector_get.restype = Ast
+ _lib.Z3_ast_vector_get.argtypes = [ContextObj, AstVectorObj, ctypes.c_uint]
+ _lib.Z3_ast_vector_set.argtypes = [ContextObj, AstVectorObj, ctypes.c_uint, Ast]
+ _lib.Z3_ast_vector_resize.argtypes = [ContextObj, AstVectorObj, ctypes.c_uint]
+ _lib.Z3_ast_vector_push.argtypes = [ContextObj, AstVectorObj, Ast]
+ _lib.Z3_ast_vector_translate.restype = AstVectorObj
+ _lib.Z3_ast_vector_translate.argtypes = [ContextObj, AstVectorObj, ContextObj]
+ _lib.Z3_ast_vector_to_string.restype = ctypes.c_char_p
+ _lib.Z3_ast_vector_to_string.argtypes = [ContextObj, AstVectorObj]
+ _lib.Z3_mk_ast_map.restype = AstMapObj
+ _lib.Z3_mk_ast_map.argtypes = [ContextObj]
+ _lib.Z3_ast_map_inc_ref.argtypes = [ContextObj, AstMapObj]
+ _lib.Z3_ast_map_dec_ref.argtypes = [ContextObj, AstMapObj]
+ _lib.Z3_ast_map_contains.restype = ctypes.c_bool
+ _lib.Z3_ast_map_contains.argtypes = [ContextObj, AstMapObj, Ast]
+ _lib.Z3_ast_map_find.restype = Ast
+ _lib.Z3_ast_map_find.argtypes = [ContextObj, AstMapObj, Ast]
+ _lib.Z3_ast_map_insert.argtypes = [ContextObj, AstMapObj, Ast, Ast]
+ _lib.Z3_ast_map_erase.argtypes = [ContextObj, AstMapObj, Ast]
+ _lib.Z3_ast_map_reset.argtypes = [ContextObj, AstMapObj]
+ _lib.Z3_ast_map_size.restype = ctypes.c_uint
+ _lib.Z3_ast_map_size.argtypes = [ContextObj, AstMapObj]
+ _lib.Z3_ast_map_keys.restype = AstVectorObj
+ _lib.Z3_ast_map_keys.argtypes = [ContextObj, AstMapObj]
+ _lib.Z3_ast_map_to_string.restype = ctypes.c_char_p
+ _lib.Z3_ast_map_to_string.argtypes = [ContextObj, AstMapObj]
+ _lib.Z3_algebraic_is_value.restype = ctypes.c_bool
+ _lib.Z3_algebraic_is_value.argtypes = [ContextObj, Ast]
+ _lib.Z3_algebraic_is_pos.restype = ctypes.c_bool
+ _lib.Z3_algebraic_is_pos.argtypes = [ContextObj, Ast]
+ _lib.Z3_algebraic_is_neg.restype = ctypes.c_bool
+ _lib.Z3_algebraic_is_neg.argtypes = [ContextObj, Ast]
+ _lib.Z3_algebraic_is_zero.restype = ctypes.c_bool
+ _lib.Z3_algebraic_is_zero.argtypes = [ContextObj, Ast]
+ _lib.Z3_algebraic_sign.restype = ctypes.c_int
+ _lib.Z3_algebraic_sign.argtypes = [ContextObj, Ast]
+ _lib.Z3_algebraic_add.restype = Ast
+ _lib.Z3_algebraic_add.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_algebraic_sub.restype = Ast
+ _lib.Z3_algebraic_sub.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_algebraic_mul.restype = Ast
+ _lib.Z3_algebraic_mul.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_algebraic_div.restype = Ast
+ _lib.Z3_algebraic_div.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_algebraic_root.restype = Ast
+ _lib.Z3_algebraic_root.argtypes = [ContextObj, Ast, ctypes.c_uint]
+ _lib.Z3_algebraic_power.restype = Ast
+ _lib.Z3_algebraic_power.argtypes = [ContextObj, Ast, ctypes.c_uint]
+ _lib.Z3_algebraic_lt.restype = ctypes.c_bool
+ _lib.Z3_algebraic_lt.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_algebraic_gt.restype = ctypes.c_bool
+ _lib.Z3_algebraic_gt.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_algebraic_le.restype = ctypes.c_bool
+ _lib.Z3_algebraic_le.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_algebraic_ge.restype = ctypes.c_bool
+ _lib.Z3_algebraic_ge.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_algebraic_eq.restype = ctypes.c_bool
+ _lib.Z3_algebraic_eq.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_algebraic_neq.restype = ctypes.c_bool
+ _lib.Z3_algebraic_neq.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_algebraic_roots.restype = AstVectorObj
+ _lib.Z3_algebraic_roots.argtypes = [ContextObj, Ast, ctypes.c_uint, ctypes.POINTER(Ast)]
+ _lib.Z3_algebraic_eval.restype = ctypes.c_int
+ _lib.Z3_algebraic_eval.argtypes = [ContextObj, Ast, ctypes.c_uint, ctypes.POINTER(Ast)]
+ _lib.Z3_polynomial_subresultants.restype = AstVectorObj
+ _lib.Z3_polynomial_subresultants.argtypes = [ContextObj, Ast, Ast, Ast]
+ _lib.Z3_rcf_del.argtypes = [ContextObj, RCFNumObj]
+ _lib.Z3_rcf_mk_rational.restype = RCFNumObj
+ _lib.Z3_rcf_mk_rational.argtypes = [ContextObj, ctypes.c_char_p]
+ _lib.Z3_rcf_mk_small_int.restype = RCFNumObj
+ _lib.Z3_rcf_mk_small_int.argtypes = [ContextObj, ctypes.c_int]
+ _lib.Z3_rcf_mk_pi.restype = RCFNumObj
+ _lib.Z3_rcf_mk_pi.argtypes = [ContextObj]
+ _lib.Z3_rcf_mk_e.restype = RCFNumObj
+ _lib.Z3_rcf_mk_e.argtypes = [ContextObj]
+ _lib.Z3_rcf_mk_infinitesimal.restype = RCFNumObj
+ _lib.Z3_rcf_mk_infinitesimal.argtypes = [ContextObj]
+ _lib.Z3_rcf_mk_roots.restype = ctypes.c_uint
+ _lib.Z3_rcf_mk_roots.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(RCFNumObj), ctypes.POINTER(RCFNumObj)]
+ _lib.Z3_rcf_add.restype = RCFNumObj
+ _lib.Z3_rcf_add.argtypes = [ContextObj, RCFNumObj, RCFNumObj]
+ _lib.Z3_rcf_sub.restype = RCFNumObj
+ _lib.Z3_rcf_sub.argtypes = [ContextObj, RCFNumObj, RCFNumObj]
+ _lib.Z3_rcf_mul.restype = RCFNumObj
+ _lib.Z3_rcf_mul.argtypes = [ContextObj, RCFNumObj, RCFNumObj]
+ _lib.Z3_rcf_div.restype = RCFNumObj
+ _lib.Z3_rcf_div.argtypes = [ContextObj, RCFNumObj, RCFNumObj]
+ _lib.Z3_rcf_neg.restype = RCFNumObj
+ _lib.Z3_rcf_neg.argtypes = [ContextObj, RCFNumObj]
+ _lib.Z3_rcf_inv.restype = RCFNumObj
+ _lib.Z3_rcf_inv.argtypes = [ContextObj, RCFNumObj]
+ _lib.Z3_rcf_power.restype = RCFNumObj
+ _lib.Z3_rcf_power.argtypes = [ContextObj, RCFNumObj, ctypes.c_uint]
+ _lib.Z3_rcf_lt.restype = ctypes.c_bool
+ _lib.Z3_rcf_lt.argtypes = [ContextObj, RCFNumObj, RCFNumObj]
+ _lib.Z3_rcf_gt.restype = ctypes.c_bool
+ _lib.Z3_rcf_gt.argtypes = [ContextObj, RCFNumObj, RCFNumObj]
+ _lib.Z3_rcf_le.restype = ctypes.c_bool
+ _lib.Z3_rcf_le.argtypes = [ContextObj, RCFNumObj, RCFNumObj]
+ _lib.Z3_rcf_ge.restype = ctypes.c_bool
+ _lib.Z3_rcf_ge.argtypes = [ContextObj, RCFNumObj, RCFNumObj]
+ _lib.Z3_rcf_eq.restype = ctypes.c_bool
+ _lib.Z3_rcf_eq.argtypes = [ContextObj, RCFNumObj, RCFNumObj]
+ _lib.Z3_rcf_neq.restype = ctypes.c_bool
+ _lib.Z3_rcf_neq.argtypes = [ContextObj, RCFNumObj, RCFNumObj]
+ _lib.Z3_rcf_num_to_string.restype = ctypes.c_char_p
+ _lib.Z3_rcf_num_to_string.argtypes = [ContextObj, RCFNumObj, ctypes.c_bool, ctypes.c_bool]
+ _lib.Z3_rcf_num_to_decimal_string.restype = ctypes.c_char_p
+ _lib.Z3_rcf_num_to_decimal_string.argtypes = [ContextObj, RCFNumObj, ctypes.c_uint]
+ _lib.Z3_rcf_get_numerator_denominator.argtypes = [ContextObj, RCFNumObj, ctypes.POINTER(RCFNumObj), ctypes.POINTER(RCFNumObj)]
+ _lib.Z3_mk_fixedpoint.restype = FixedpointObj
+ _lib.Z3_mk_fixedpoint.argtypes = [ContextObj]
+ _lib.Z3_fixedpoint_inc_ref.argtypes = [ContextObj, FixedpointObj]
+ _lib.Z3_fixedpoint_dec_ref.argtypes = [ContextObj, FixedpointObj]
+ _lib.Z3_fixedpoint_add_rule.argtypes = [ContextObj, FixedpointObj, Ast, Symbol]
+ _lib.Z3_fixedpoint_add_fact.argtypes = [ContextObj, FixedpointObj, FuncDecl, ctypes.c_uint, ctypes.POINTER(ctypes.c_uint)]
+ _lib.Z3_fixedpoint_assert.argtypes = [ContextObj, FixedpointObj, Ast]
+ _lib.Z3_fixedpoint_query.restype = ctypes.c_int
+ _lib.Z3_fixedpoint_query.argtypes = [ContextObj, FixedpointObj, Ast]
+ _lib.Z3_fixedpoint_query_relations.restype = ctypes.c_int
+ _lib.Z3_fixedpoint_query_relations.argtypes = [ContextObj, FixedpointObj, ctypes.c_uint, ctypes.POINTER(FuncDecl)]
+ _lib.Z3_fixedpoint_get_answer.restype = Ast
+ _lib.Z3_fixedpoint_get_answer.argtypes = [ContextObj, FixedpointObj]
+ _lib.Z3_fixedpoint_get_reason_unknown.restype = ctypes.c_char_p
+ _lib.Z3_fixedpoint_get_reason_unknown.argtypes = [ContextObj, FixedpointObj]
+ _lib.Z3_fixedpoint_update_rule.argtypes = [ContextObj, FixedpointObj, Ast, Symbol]
+ _lib.Z3_fixedpoint_get_num_levels.restype = ctypes.c_uint
+ _lib.Z3_fixedpoint_get_num_levels.argtypes = [ContextObj, FixedpointObj, FuncDecl]
+ _lib.Z3_fixedpoint_get_cover_delta.restype = Ast
+ _lib.Z3_fixedpoint_get_cover_delta.argtypes = [ContextObj, FixedpointObj, ctypes.c_int, FuncDecl]
+ _lib.Z3_fixedpoint_add_cover.argtypes = [ContextObj, FixedpointObj, ctypes.c_int, FuncDecl, Ast]
+ _lib.Z3_fixedpoint_get_statistics.restype = StatsObj
+ _lib.Z3_fixedpoint_get_statistics.argtypes = [ContextObj, FixedpointObj]
+ _lib.Z3_fixedpoint_register_relation.argtypes = [ContextObj, FixedpointObj, FuncDecl]
+ _lib.Z3_fixedpoint_set_predicate_representation.argtypes = [ContextObj, FixedpointObj, FuncDecl, ctypes.c_uint, ctypes.POINTER(Symbol)]
+ _lib.Z3_fixedpoint_get_rules.restype = AstVectorObj
+ _lib.Z3_fixedpoint_get_rules.argtypes = [ContextObj, FixedpointObj]
+ _lib.Z3_fixedpoint_get_assertions.restype = AstVectorObj
+ _lib.Z3_fixedpoint_get_assertions.argtypes = [ContextObj, FixedpointObj]
+ _lib.Z3_fixedpoint_set_params.argtypes = [ContextObj, FixedpointObj, Params]
+ _lib.Z3_fixedpoint_get_help.restype = ctypes.c_char_p
+ _lib.Z3_fixedpoint_get_help.argtypes = [ContextObj, FixedpointObj]
+ _lib.Z3_fixedpoint_get_param_descrs.restype = ParamDescrs
+ _lib.Z3_fixedpoint_get_param_descrs.argtypes = [ContextObj, FixedpointObj]
+ _lib.Z3_fixedpoint_to_string.restype = ctypes.c_char_p
+ _lib.Z3_fixedpoint_to_string.argtypes = [ContextObj, FixedpointObj, ctypes.c_uint, ctypes.POINTER(Ast)]
+ _lib.Z3_fixedpoint_from_string.restype = AstVectorObj
+ _lib.Z3_fixedpoint_from_string.argtypes = [ContextObj, FixedpointObj, ctypes.c_char_p]
+ _lib.Z3_fixedpoint_from_file.restype = AstVectorObj
+ _lib.Z3_fixedpoint_from_file.argtypes = [ContextObj, FixedpointObj, ctypes.c_char_p]
+ _lib.Z3_fixedpoint_push.argtypes = [ContextObj, FixedpointObj]
+ _lib.Z3_fixedpoint_pop.argtypes = [ContextObj, FixedpointObj]
+ _lib.Z3_mk_optimize.restype = OptimizeObj
+ _lib.Z3_mk_optimize.argtypes = [ContextObj]
+ _lib.Z3_optimize_inc_ref.argtypes = [ContextObj, OptimizeObj]
+ _lib.Z3_optimize_dec_ref.argtypes = [ContextObj, OptimizeObj]
+ _lib.Z3_optimize_assert.argtypes = [ContextObj, OptimizeObj, Ast]
+ _lib.Z3_optimize_assert_soft.restype = ctypes.c_uint
+ _lib.Z3_optimize_assert_soft.argtypes = [ContextObj, OptimizeObj, Ast, ctypes.c_char_p, Symbol]
+ _lib.Z3_optimize_maximize.restype = ctypes.c_uint
+ _lib.Z3_optimize_maximize.argtypes = [ContextObj, OptimizeObj, Ast]
+ _lib.Z3_optimize_minimize.restype = ctypes.c_uint
+ _lib.Z3_optimize_minimize.argtypes = [ContextObj, OptimizeObj, Ast]
+ _lib.Z3_optimize_push.argtypes = [ContextObj, OptimizeObj]
+ _lib.Z3_optimize_pop.argtypes = [ContextObj, OptimizeObj]
+ _lib.Z3_optimize_check.restype = ctypes.c_int
+ _lib.Z3_optimize_check.argtypes = [ContextObj, OptimizeObj]
+ _lib.Z3_optimize_get_reason_unknown.restype = ctypes.c_char_p
+ _lib.Z3_optimize_get_reason_unknown.argtypes = [ContextObj, OptimizeObj]
+ _lib.Z3_optimize_get_model.restype = Model
+ _lib.Z3_optimize_get_model.argtypes = [ContextObj, OptimizeObj]
+ _lib.Z3_optimize_set_params.argtypes = [ContextObj, OptimizeObj, Params]
+ _lib.Z3_optimize_get_param_descrs.restype = ParamDescrs
+ _lib.Z3_optimize_get_param_descrs.argtypes = [ContextObj, OptimizeObj]
+ _lib.Z3_optimize_get_lower.restype = Ast
+ _lib.Z3_optimize_get_lower.argtypes = [ContextObj, OptimizeObj, ctypes.c_uint]
+ _lib.Z3_optimize_get_upper.restype = Ast
+ _lib.Z3_optimize_get_upper.argtypes = [ContextObj, OptimizeObj, ctypes.c_uint]
+ _lib.Z3_optimize_to_string.restype = ctypes.c_char_p
+ _lib.Z3_optimize_to_string.argtypes = [ContextObj, OptimizeObj]
+ _lib.Z3_optimize_from_string.argtypes = [ContextObj, OptimizeObj, ctypes.c_char_p]
+ _lib.Z3_optimize_from_file.argtypes = [ContextObj, OptimizeObj, ctypes.c_char_p]
+ _lib.Z3_optimize_get_help.restype = ctypes.c_char_p
+ _lib.Z3_optimize_get_help.argtypes = [ContextObj, OptimizeObj]
+ _lib.Z3_optimize_get_statistics.restype = StatsObj
+ _lib.Z3_optimize_get_statistics.argtypes = [ContextObj, OptimizeObj]
+ _lib.Z3_optimize_get_assertions.restype = AstVectorObj
+ _lib.Z3_optimize_get_assertions.argtypes = [ContextObj, OptimizeObj]
+ _lib.Z3_optimize_get_objectives.restype = AstVectorObj
+ _lib.Z3_optimize_get_objectives.argtypes = [ContextObj, OptimizeObj]
+ _lib.Z3_mk_interpolant.restype = Ast
+ _lib.Z3_mk_interpolant.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_interpolation_context.restype = ContextObj
+ _lib.Z3_mk_interpolation_context.argtypes = [Config]
+ _lib.Z3_get_interpolant.restype = AstVectorObj
+ _lib.Z3_get_interpolant.argtypes = [ContextObj, Ast, Ast, Params]
+ _lib.Z3_compute_interpolant.restype = ctypes.c_int
+ _lib.Z3_compute_interpolant.argtypes = [ContextObj, Ast, Params, ctypes.POINTER(AstVectorObj), ctypes.POINTER(Model)]
+ _lib.Z3_interpolation_profile.restype = ctypes.c_char_p
+ _lib.Z3_interpolation_profile.argtypes = [ContextObj]
+ _lib.Z3_read_interpolation_problem.restype = ctypes.c_int
+ _lib.Z3_read_interpolation_problem.argtypes = [ContextObj, ctypes.POINTER(ctypes.c_uint), Ast, ctypes.c_uint, ctypes.c_char_p, ctypes.POINTER(ctypes.c_char_p), ctypes.POINTER(ctypes.c_uint), Ast]
+ _lib.Z3_check_interpolant.restype = ctypes.c_int
+ _lib.Z3_check_interpolant.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast), ctypes.POINTER(ctypes.c_uint), ctypes.POINTER(Ast), ctypes.POINTER(ctypes.c_char_p), ctypes.c_uint, ctypes.POINTER(Ast)]
+ _lib.Z3_write_interpolation_problem.argtypes = [ContextObj, ctypes.c_uint, ctypes.POINTER(Ast), ctypes.POINTER(ctypes.c_uint), ctypes.c_char_p, ctypes.c_uint, ctypes.POINTER(Ast)]
+ _lib.Z3_mk_fpa_rounding_mode_sort.restype = Sort
+ _lib.Z3_mk_fpa_rounding_mode_sort.argtypes = [ContextObj]
+ _lib.Z3_mk_fpa_round_nearest_ties_to_even.restype = Ast
+ _lib.Z3_mk_fpa_round_nearest_ties_to_even.argtypes = [ContextObj]
+ _lib.Z3_mk_fpa_rne.restype = Ast
+ _lib.Z3_mk_fpa_rne.argtypes = [ContextObj]
+ _lib.Z3_mk_fpa_round_nearest_ties_to_away.restype = Ast
+ _lib.Z3_mk_fpa_round_nearest_ties_to_away.argtypes = [ContextObj]
+ _lib.Z3_mk_fpa_rna.restype = Ast
+ _lib.Z3_mk_fpa_rna.argtypes = [ContextObj]
+ _lib.Z3_mk_fpa_round_toward_positive.restype = Ast
+ _lib.Z3_mk_fpa_round_toward_positive.argtypes = [ContextObj]
+ _lib.Z3_mk_fpa_rtp.restype = Ast
+ _lib.Z3_mk_fpa_rtp.argtypes = [ContextObj]
+ _lib.Z3_mk_fpa_round_toward_negative.restype = Ast
+ _lib.Z3_mk_fpa_round_toward_negative.argtypes = [ContextObj]
+ _lib.Z3_mk_fpa_rtn.restype = Ast
+ _lib.Z3_mk_fpa_rtn.argtypes = [ContextObj]
+ _lib.Z3_mk_fpa_round_toward_zero.restype = Ast
+ _lib.Z3_mk_fpa_round_toward_zero.argtypes = [ContextObj]
+ _lib.Z3_mk_fpa_rtz.restype = Ast
+ _lib.Z3_mk_fpa_rtz.argtypes = [ContextObj]
+ _lib.Z3_mk_fpa_sort.restype = Sort
+ _lib.Z3_mk_fpa_sort.argtypes = [ContextObj, ctypes.c_uint, ctypes.c_uint]
+ _lib.Z3_mk_fpa_sort_half.restype = Sort
+ _lib.Z3_mk_fpa_sort_half.argtypes = [ContextObj]
+ _lib.Z3_mk_fpa_sort_16.restype = Sort
+ _lib.Z3_mk_fpa_sort_16.argtypes = [ContextObj]
+ _lib.Z3_mk_fpa_sort_single.restype = Sort
+ _lib.Z3_mk_fpa_sort_single.argtypes = [ContextObj]
+ _lib.Z3_mk_fpa_sort_32.restype = Sort
+ _lib.Z3_mk_fpa_sort_32.argtypes = [ContextObj]
+ _lib.Z3_mk_fpa_sort_double.restype = Sort
+ _lib.Z3_mk_fpa_sort_double.argtypes = [ContextObj]
+ _lib.Z3_mk_fpa_sort_64.restype = Sort
+ _lib.Z3_mk_fpa_sort_64.argtypes = [ContextObj]
+ _lib.Z3_mk_fpa_sort_quadruple.restype = Sort
+ _lib.Z3_mk_fpa_sort_quadruple.argtypes = [ContextObj]
+ _lib.Z3_mk_fpa_sort_128.restype = Sort
+ _lib.Z3_mk_fpa_sort_128.argtypes = [ContextObj]
+ _lib.Z3_mk_fpa_nan.restype = Ast
+ _lib.Z3_mk_fpa_nan.argtypes = [ContextObj, Sort]
+ _lib.Z3_mk_fpa_inf.restype = Ast
+ _lib.Z3_mk_fpa_inf.argtypes = [ContextObj, Sort, ctypes.c_bool]
+ _lib.Z3_mk_fpa_zero.restype = Ast
+ _lib.Z3_mk_fpa_zero.argtypes = [ContextObj, Sort, ctypes.c_bool]
+ _lib.Z3_mk_fpa_fp.restype = Ast
+ _lib.Z3_mk_fpa_fp.argtypes = [ContextObj, Ast, Ast, Ast]
+ _lib.Z3_mk_fpa_numeral_float.restype = Ast
+ _lib.Z3_mk_fpa_numeral_float.argtypes = [ContextObj, ctypes.c_float, Sort]
+ _lib.Z3_mk_fpa_numeral_double.restype = Ast
+ _lib.Z3_mk_fpa_numeral_double.argtypes = [ContextObj, ctypes.c_double, Sort]
+ _lib.Z3_mk_fpa_numeral_int.restype = Ast
+ _lib.Z3_mk_fpa_numeral_int.argtypes = [ContextObj, ctypes.c_int, Sort]
+ _lib.Z3_mk_fpa_numeral_int_uint.restype = Ast
+ _lib.Z3_mk_fpa_numeral_int_uint.argtypes = [ContextObj, ctypes.c_bool, ctypes.c_int, ctypes.c_uint, Sort]
+ _lib.Z3_mk_fpa_numeral_int64_uint64.restype = Ast
+ _lib.Z3_mk_fpa_numeral_int64_uint64.argtypes = [ContextObj, ctypes.c_bool, ctypes.c_longlong, ctypes.c_ulonglong, Sort]
+ _lib.Z3_mk_fpa_abs.restype = Ast
+ _lib.Z3_mk_fpa_abs.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_fpa_neg.restype = Ast
+ _lib.Z3_mk_fpa_neg.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_fpa_add.restype = Ast
+ _lib.Z3_mk_fpa_add.argtypes = [ContextObj, Ast, Ast, Ast]
+ _lib.Z3_mk_fpa_sub.restype = Ast
+ _lib.Z3_mk_fpa_sub.argtypes = [ContextObj, Ast, Ast, Ast]
+ _lib.Z3_mk_fpa_mul.restype = Ast
+ _lib.Z3_mk_fpa_mul.argtypes = [ContextObj, Ast, Ast, Ast]
+ _lib.Z3_mk_fpa_div.restype = Ast
+ _lib.Z3_mk_fpa_div.argtypes = [ContextObj, Ast, Ast, Ast]
+ _lib.Z3_mk_fpa_fma.restype = Ast
+ _lib.Z3_mk_fpa_fma.argtypes = [ContextObj, Ast, Ast, Ast, Ast]
+ _lib.Z3_mk_fpa_sqrt.restype = Ast
+ _lib.Z3_mk_fpa_sqrt.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_fpa_rem.restype = Ast
+ _lib.Z3_mk_fpa_rem.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_fpa_round_to_integral.restype = Ast
+ _lib.Z3_mk_fpa_round_to_integral.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_fpa_min.restype = Ast
+ _lib.Z3_mk_fpa_min.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_fpa_max.restype = Ast
+ _lib.Z3_mk_fpa_max.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_fpa_leq.restype = Ast
+ _lib.Z3_mk_fpa_leq.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_fpa_lt.restype = Ast
+ _lib.Z3_mk_fpa_lt.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_fpa_geq.restype = Ast
+ _lib.Z3_mk_fpa_geq.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_fpa_gt.restype = Ast
+ _lib.Z3_mk_fpa_gt.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_fpa_eq.restype = Ast
+ _lib.Z3_mk_fpa_eq.argtypes = [ContextObj, Ast, Ast]
+ _lib.Z3_mk_fpa_is_normal.restype = Ast
+ _lib.Z3_mk_fpa_is_normal.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_fpa_is_subnormal.restype = Ast
+ _lib.Z3_mk_fpa_is_subnormal.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_fpa_is_zero.restype = Ast
+ _lib.Z3_mk_fpa_is_zero.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_fpa_is_infinite.restype = Ast
+ _lib.Z3_mk_fpa_is_infinite.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_fpa_is_nan.restype = Ast
+ _lib.Z3_mk_fpa_is_nan.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_fpa_is_negative.restype = Ast
+ _lib.Z3_mk_fpa_is_negative.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_fpa_is_positive.restype = Ast
+ _lib.Z3_mk_fpa_is_positive.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_fpa_to_fp_bv.restype = Ast
+ _lib.Z3_mk_fpa_to_fp_bv.argtypes = [ContextObj, Ast, Sort]
+ _lib.Z3_mk_fpa_to_fp_float.restype = Ast
+ _lib.Z3_mk_fpa_to_fp_float.argtypes = [ContextObj, Ast, Ast, Sort]
+ _lib.Z3_mk_fpa_to_fp_real.restype = Ast
+ _lib.Z3_mk_fpa_to_fp_real.argtypes = [ContextObj, Ast, Ast, Sort]
+ _lib.Z3_mk_fpa_to_fp_signed.restype = Ast
+ _lib.Z3_mk_fpa_to_fp_signed.argtypes = [ContextObj, Ast, Ast, Sort]
+ _lib.Z3_mk_fpa_to_fp_unsigned.restype = Ast
+ _lib.Z3_mk_fpa_to_fp_unsigned.argtypes = [ContextObj, Ast, Ast, Sort]
+ _lib.Z3_mk_fpa_to_ubv.restype = Ast
+ _lib.Z3_mk_fpa_to_ubv.argtypes = [ContextObj, Ast, Ast, ctypes.c_uint]
+ _lib.Z3_mk_fpa_to_sbv.restype = Ast
+ _lib.Z3_mk_fpa_to_sbv.argtypes = [ContextObj, Ast, Ast, ctypes.c_uint]
+ _lib.Z3_mk_fpa_to_real.restype = Ast
+ _lib.Z3_mk_fpa_to_real.argtypes = [ContextObj, Ast]
+ _lib.Z3_fpa_get_ebits.restype = ctypes.c_uint
+ _lib.Z3_fpa_get_ebits.argtypes = [ContextObj, Sort]
+ _lib.Z3_fpa_get_sbits.restype = ctypes.c_uint
+ _lib.Z3_fpa_get_sbits.argtypes = [ContextObj, Sort]
+ _lib.Z3_fpa_get_numeral_sign.restype = ctypes.c_bool
+ _lib.Z3_fpa_get_numeral_sign.argtypes = [ContextObj, Ast, ctypes.POINTER(ctypes.c_int)]
+ _lib.Z3_fpa_get_numeral_significand_string.restype = ctypes.c_char_p
+ _lib.Z3_fpa_get_numeral_significand_string.argtypes = [ContextObj, Ast]
+ _lib.Z3_fpa_get_numeral_significand_uint64.restype = ctypes.c_bool
+ _lib.Z3_fpa_get_numeral_significand_uint64.argtypes = [ContextObj, Ast, ctypes.POINTER(ctypes.c_ulonglong)]
+ _lib.Z3_fpa_get_numeral_exponent_string.restype = ctypes.c_char_p
+ _lib.Z3_fpa_get_numeral_exponent_string.argtypes = [ContextObj, Ast]
+ _lib.Z3_fpa_get_numeral_exponent_int64.restype = ctypes.c_bool
+ _lib.Z3_fpa_get_numeral_exponent_int64.argtypes = [ContextObj, Ast, ctypes.POINTER(ctypes.c_longlong)]
+ _lib.Z3_mk_fpa_to_ieee_bv.restype = Ast
+ _lib.Z3_mk_fpa_to_ieee_bv.argtypes = [ContextObj, Ast]
+ _lib.Z3_mk_fpa_to_fp_int_real.restype = Ast
+ _lib.Z3_mk_fpa_to_fp_int_real.argtypes = [ContextObj, Ast, Ast, Ast, Sort]
+
+def Z3_global_param_set(a0, a1):
+ lib().Z3_global_param_set(_to_ascii(a0), _to_ascii(a1))
+
+def Z3_global_param_reset_all():
+ lib().Z3_global_param_reset_all()
+
+def Z3_global_param_get(a0, a1):
+ r = lib().Z3_global_param_get(_to_ascii(a0), _to_ascii(a1))
+ return r
+
+def Z3_mk_config():
+ r = lib().Z3_mk_config()
+ return r
+
+def Z3_del_config(a0):
+ lib().Z3_del_config(a0)
+
+def Z3_set_param_value(a0, a1, a2):
+ lib().Z3_set_param_value(a0, _to_ascii(a1), _to_ascii(a2))
+
+def Z3_mk_context(a0):
+ r = lib().Z3_mk_context(a0)
+ return r
+
+def Z3_mk_context_rc(a0):
+ r = lib().Z3_mk_context_rc(a0)
+ return r
+
+def Z3_del_context(a0):
+ lib().Z3_del_context(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_inc_ref(a0, a1):
+ lib().Z3_inc_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_dec_ref(a0, a1):
+ lib().Z3_dec_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_update_param_value(a0, a1, a2):
+ lib().Z3_update_param_value(a0, _to_ascii(a1), _to_ascii(a2))
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_interrupt(a0):
+ lib().Z3_interrupt(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_mk_params(a0):
+ r = lib().Z3_mk_params(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_params_inc_ref(a0, a1):
+ lib().Z3_params_inc_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_params_dec_ref(a0, a1):
+ lib().Z3_params_dec_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_params_set_bool(a0, a1, a2, a3):
+ lib().Z3_params_set_bool(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_params_set_uint(a0, a1, a2, a3):
+ lib().Z3_params_set_uint(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_params_set_double(a0, a1, a2, a3):
+ lib().Z3_params_set_double(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_params_set_symbol(a0, a1, a2, a3):
+ lib().Z3_params_set_symbol(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_params_to_string(a0, a1):
+ r = lib().Z3_params_to_string(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_params_validate(a0, a1, a2):
+ lib().Z3_params_validate(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_param_descrs_inc_ref(a0, a1):
+ lib().Z3_param_descrs_inc_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_param_descrs_dec_ref(a0, a1):
+ lib().Z3_param_descrs_dec_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_param_descrs_get_kind(a0, a1, a2):
+ r = lib().Z3_param_descrs_get_kind(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_param_descrs_size(a0, a1):
+ r = lib().Z3_param_descrs_size(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_param_descrs_get_name(a0, a1, a2):
+ r = lib().Z3_param_descrs_get_name(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_param_descrs_get_documentation(a0, a1, a2):
+ r = lib().Z3_param_descrs_get_documentation(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_param_descrs_to_string(a0, a1):
+ r = lib().Z3_param_descrs_to_string(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_mk_int_symbol(a0, a1):
+ r = lib().Z3_mk_int_symbol(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_string_symbol(a0, a1):
+ r = lib().Z3_mk_string_symbol(a0, _to_ascii(a1))
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_uninterpreted_sort(a0, a1):
+ r = lib().Z3_mk_uninterpreted_sort(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bool_sort(a0):
+ r = lib().Z3_mk_bool_sort(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_int_sort(a0):
+ r = lib().Z3_mk_int_sort(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_real_sort(a0):
+ r = lib().Z3_mk_real_sort(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bv_sort(a0, a1):
+ r = lib().Z3_mk_bv_sort(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_finite_domain_sort(a0, a1, a2):
+ r = lib().Z3_mk_finite_domain_sort(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_array_sort(a0, a1, a2):
+ r = lib().Z3_mk_array_sort(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_tuple_sort(a0, a1, a2, a3, a4, a5, a6):
+ r = lib().Z3_mk_tuple_sort(a0, a1, a2, a3, a4, a5, a6)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_enumeration_sort(a0, a1, a2, a3, a4, a5):
+ r = lib().Z3_mk_enumeration_sort(a0, a1, a2, a3, a4, a5)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_list_sort(a0, a1, a2, a3, a4, a5, a6, a7, a8):
+ r = lib().Z3_mk_list_sort(a0, a1, a2, a3, a4, a5, a6, a7, a8)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_constructor(a0, a1, a2, a3, a4, a5, a6):
+ r = lib().Z3_mk_constructor(a0, a1, a2, a3, a4, a5, a6)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_del_constructor(a0, a1):
+ lib().Z3_del_constructor(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_mk_datatype(a0, a1, a2, a3):
+ r = lib().Z3_mk_datatype(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_constructor_list(a0, a1, a2):
+ r = lib().Z3_mk_constructor_list(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_del_constructor_list(a0, a1):
+ lib().Z3_del_constructor_list(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_mk_datatypes(a0, a1, a2, a3, a4):
+ lib().Z3_mk_datatypes(a0, a1, a2, a3, a4)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_query_constructor(a0, a1, a2, a3, a4, a5):
+ lib().Z3_query_constructor(a0, a1, a2, a3, a4, a5)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_mk_func_decl(a0, a1, a2, a3, a4):
+ r = lib().Z3_mk_func_decl(a0, a1, a2, a3, a4)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_app(a0, a1, a2, a3):
+ r = lib().Z3_mk_app(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_const(a0, a1, a2):
+ r = lib().Z3_mk_const(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fresh_func_decl(a0, a1, a2, a3, a4):
+ r = lib().Z3_mk_fresh_func_decl(a0, _to_ascii(a1), a2, a3, a4)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fresh_const(a0, a1, a2):
+ r = lib().Z3_mk_fresh_const(a0, _to_ascii(a1), a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_true(a0):
+ r = lib().Z3_mk_true(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_false(a0):
+ r = lib().Z3_mk_false(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_eq(a0, a1, a2):
+ r = lib().Z3_mk_eq(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_distinct(a0, a1, a2):
+ r = lib().Z3_mk_distinct(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_not(a0, a1):
+ r = lib().Z3_mk_not(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_ite(a0, a1, a2, a3):
+ r = lib().Z3_mk_ite(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_iff(a0, a1, a2):
+ r = lib().Z3_mk_iff(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_implies(a0, a1, a2):
+ r = lib().Z3_mk_implies(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_xor(a0, a1, a2):
+ r = lib().Z3_mk_xor(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_and(a0, a1, a2):
+ r = lib().Z3_mk_and(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_or(a0, a1, a2):
+ r = lib().Z3_mk_or(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_add(a0, a1, a2):
+ r = lib().Z3_mk_add(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_mul(a0, a1, a2):
+ r = lib().Z3_mk_mul(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_sub(a0, a1, a2):
+ r = lib().Z3_mk_sub(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_unary_minus(a0, a1):
+ r = lib().Z3_mk_unary_minus(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_div(a0, a1, a2):
+ r = lib().Z3_mk_div(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_mod(a0, a1, a2):
+ r = lib().Z3_mk_mod(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_rem(a0, a1, a2):
+ r = lib().Z3_mk_rem(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_power(a0, a1, a2):
+ r = lib().Z3_mk_power(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_lt(a0, a1, a2):
+ r = lib().Z3_mk_lt(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_le(a0, a1, a2):
+ r = lib().Z3_mk_le(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_gt(a0, a1, a2):
+ r = lib().Z3_mk_gt(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_ge(a0, a1, a2):
+ r = lib().Z3_mk_ge(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_int2real(a0, a1):
+ r = lib().Z3_mk_int2real(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_real2int(a0, a1):
+ r = lib().Z3_mk_real2int(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_is_int(a0, a1):
+ r = lib().Z3_mk_is_int(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvnot(a0, a1):
+ r = lib().Z3_mk_bvnot(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvredand(a0, a1):
+ r = lib().Z3_mk_bvredand(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvredor(a0, a1):
+ r = lib().Z3_mk_bvredor(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvand(a0, a1, a2):
+ r = lib().Z3_mk_bvand(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvor(a0, a1, a2):
+ r = lib().Z3_mk_bvor(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvxor(a0, a1, a2):
+ r = lib().Z3_mk_bvxor(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvnand(a0, a1, a2):
+ r = lib().Z3_mk_bvnand(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvnor(a0, a1, a2):
+ r = lib().Z3_mk_bvnor(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvxnor(a0, a1, a2):
+ r = lib().Z3_mk_bvxnor(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvneg(a0, a1):
+ r = lib().Z3_mk_bvneg(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvadd(a0, a1, a2):
+ r = lib().Z3_mk_bvadd(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvsub(a0, a1, a2):
+ r = lib().Z3_mk_bvsub(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvmul(a0, a1, a2):
+ r = lib().Z3_mk_bvmul(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvudiv(a0, a1, a2):
+ r = lib().Z3_mk_bvudiv(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvsdiv(a0, a1, a2):
+ r = lib().Z3_mk_bvsdiv(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvurem(a0, a1, a2):
+ r = lib().Z3_mk_bvurem(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvsrem(a0, a1, a2):
+ r = lib().Z3_mk_bvsrem(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvsmod(a0, a1, a2):
+ r = lib().Z3_mk_bvsmod(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvult(a0, a1, a2):
+ r = lib().Z3_mk_bvult(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvslt(a0, a1, a2):
+ r = lib().Z3_mk_bvslt(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvule(a0, a1, a2):
+ r = lib().Z3_mk_bvule(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvsle(a0, a1, a2):
+ r = lib().Z3_mk_bvsle(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvuge(a0, a1, a2):
+ r = lib().Z3_mk_bvuge(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvsge(a0, a1, a2):
+ r = lib().Z3_mk_bvsge(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvugt(a0, a1, a2):
+ r = lib().Z3_mk_bvugt(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvsgt(a0, a1, a2):
+ r = lib().Z3_mk_bvsgt(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_concat(a0, a1, a2):
+ r = lib().Z3_mk_concat(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_extract(a0, a1, a2, a3):
+ r = lib().Z3_mk_extract(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_sign_ext(a0, a1, a2):
+ r = lib().Z3_mk_sign_ext(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_zero_ext(a0, a1, a2):
+ r = lib().Z3_mk_zero_ext(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_repeat(a0, a1, a2):
+ r = lib().Z3_mk_repeat(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvshl(a0, a1, a2):
+ r = lib().Z3_mk_bvshl(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvlshr(a0, a1, a2):
+ r = lib().Z3_mk_bvlshr(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvashr(a0, a1, a2):
+ r = lib().Z3_mk_bvashr(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_rotate_left(a0, a1, a2):
+ r = lib().Z3_mk_rotate_left(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_rotate_right(a0, a1, a2):
+ r = lib().Z3_mk_rotate_right(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_ext_rotate_left(a0, a1, a2):
+ r = lib().Z3_mk_ext_rotate_left(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_ext_rotate_right(a0, a1, a2):
+ r = lib().Z3_mk_ext_rotate_right(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_int2bv(a0, a1, a2):
+ r = lib().Z3_mk_int2bv(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bv2int(a0, a1, a2):
+ r = lib().Z3_mk_bv2int(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvadd_no_overflow(a0, a1, a2, a3):
+ r = lib().Z3_mk_bvadd_no_overflow(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvadd_no_underflow(a0, a1, a2):
+ r = lib().Z3_mk_bvadd_no_underflow(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvsub_no_overflow(a0, a1, a2):
+ r = lib().Z3_mk_bvsub_no_overflow(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvsub_no_underflow(a0, a1, a2, a3):
+ r = lib().Z3_mk_bvsub_no_underflow(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvsdiv_no_overflow(a0, a1, a2):
+ r = lib().Z3_mk_bvsdiv_no_overflow(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvneg_no_overflow(a0, a1):
+ r = lib().Z3_mk_bvneg_no_overflow(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvmul_no_overflow(a0, a1, a2, a3):
+ r = lib().Z3_mk_bvmul_no_overflow(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bvmul_no_underflow(a0, a1, a2):
+ r = lib().Z3_mk_bvmul_no_underflow(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_select(a0, a1, a2):
+ r = lib().Z3_mk_select(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_store(a0, a1, a2, a3):
+ r = lib().Z3_mk_store(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_const_array(a0, a1, a2):
+ r = lib().Z3_mk_const_array(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_map(a0, a1, a2, a3):
+ r = lib().Z3_mk_map(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_array_default(a0, a1):
+ r = lib().Z3_mk_array_default(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_set_sort(a0, a1):
+ r = lib().Z3_mk_set_sort(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_empty_set(a0, a1):
+ r = lib().Z3_mk_empty_set(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_full_set(a0, a1):
+ r = lib().Z3_mk_full_set(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_set_add(a0, a1, a2):
+ r = lib().Z3_mk_set_add(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_set_del(a0, a1, a2):
+ r = lib().Z3_mk_set_del(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_set_union(a0, a1, a2):
+ r = lib().Z3_mk_set_union(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_set_intersect(a0, a1, a2):
+ r = lib().Z3_mk_set_intersect(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_set_difference(a0, a1, a2):
+ r = lib().Z3_mk_set_difference(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_set_complement(a0, a1):
+ r = lib().Z3_mk_set_complement(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_set_member(a0, a1, a2):
+ r = lib().Z3_mk_set_member(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_set_subset(a0, a1, a2):
+ r = lib().Z3_mk_set_subset(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_array_ext(a0, a1, a2):
+ r = lib().Z3_mk_array_ext(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_numeral(a0, a1, a2):
+ r = lib().Z3_mk_numeral(a0, _to_ascii(a1), a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_real(a0, a1, a2):
+ r = lib().Z3_mk_real(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_int(a0, a1, a2):
+ r = lib().Z3_mk_int(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_unsigned_int(a0, a1, a2):
+ r = lib().Z3_mk_unsigned_int(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_int64(a0, a1, a2):
+ r = lib().Z3_mk_int64(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_unsigned_int64(a0, a1, a2):
+ r = lib().Z3_mk_unsigned_int64(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_seq_sort(a0, a1):
+ r = lib().Z3_mk_seq_sort(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_is_seq_sort(a0, a1):
+ r = lib().Z3_is_seq_sort(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_re_sort(a0, a1):
+ r = lib().Z3_mk_re_sort(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_is_re_sort(a0, a1):
+ r = lib().Z3_is_re_sort(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_string_sort(a0):
+ r = lib().Z3_mk_string_sort(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_is_string_sort(a0, a1):
+ r = lib().Z3_is_string_sort(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_string(a0, a1):
+ r = lib().Z3_mk_string(a0, _to_ascii(a1))
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_is_string(a0, a1):
+ r = lib().Z3_is_string(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_string(a0, a1):
+ r = lib().Z3_get_string(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_mk_seq_empty(a0, a1):
+ r = lib().Z3_mk_seq_empty(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_seq_unit(a0, a1):
+ r = lib().Z3_mk_seq_unit(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_seq_concat(a0, a1, a2):
+ r = lib().Z3_mk_seq_concat(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_seq_prefix(a0, a1, a2):
+ r = lib().Z3_mk_seq_prefix(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_seq_suffix(a0, a1, a2):
+ r = lib().Z3_mk_seq_suffix(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_seq_contains(a0, a1, a2):
+ r = lib().Z3_mk_seq_contains(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_seq_extract(a0, a1, a2, a3):
+ r = lib().Z3_mk_seq_extract(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_seq_replace(a0, a1, a2, a3):
+ r = lib().Z3_mk_seq_replace(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_seq_at(a0, a1, a2):
+ r = lib().Z3_mk_seq_at(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_seq_length(a0, a1):
+ r = lib().Z3_mk_seq_length(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_seq_index(a0, a1, a2, a3):
+ r = lib().Z3_mk_seq_index(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_seq_to_re(a0, a1):
+ r = lib().Z3_mk_seq_to_re(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_seq_in_re(a0, a1, a2):
+ r = lib().Z3_mk_seq_in_re(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_re_plus(a0, a1):
+ r = lib().Z3_mk_re_plus(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_re_star(a0, a1):
+ r = lib().Z3_mk_re_star(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_re_option(a0, a1):
+ r = lib().Z3_mk_re_option(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_re_union(a0, a1, a2):
+ r = lib().Z3_mk_re_union(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_re_concat(a0, a1, a2):
+ r = lib().Z3_mk_re_concat(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_pattern(a0, a1, a2):
+ r = lib().Z3_mk_pattern(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_bound(a0, a1, a2):
+ r = lib().Z3_mk_bound(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_forall(a0, a1, a2, a3, a4, a5, a6, a7):
+ r = lib().Z3_mk_forall(a0, a1, a2, a3, a4, a5, a6, a7)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_exists(a0, a1, a2, a3, a4, a5, a6, a7):
+ r = lib().Z3_mk_exists(a0, a1, a2, a3, a4, a5, a6, a7)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_quantifier(a0, a1, a2, a3, a4, a5, a6, a7, a8):
+ r = lib().Z3_mk_quantifier(a0, a1, a2, a3, a4, a5, a6, a7, a8)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_quantifier_ex(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12):
+ r = lib().Z3_mk_quantifier_ex(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_forall_const(a0, a1, a2, a3, a4, a5, a6):
+ r = lib().Z3_mk_forall_const(a0, a1, a2, a3, a4, a5, a6)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_exists_const(a0, a1, a2, a3, a4, a5, a6):
+ r = lib().Z3_mk_exists_const(a0, a1, a2, a3, a4, a5, a6)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_quantifier_const(a0, a1, a2, a3, a4, a5, a6, a7):
+ r = lib().Z3_mk_quantifier_const(a0, a1, a2, a3, a4, a5, a6, a7)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_quantifier_const_ex(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11):
+ r = lib().Z3_mk_quantifier_const_ex(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_symbol_kind(a0, a1):
+ r = lib().Z3_get_symbol_kind(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_symbol_int(a0, a1):
+ r = lib().Z3_get_symbol_int(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_symbol_string(a0, a1):
+ r = lib().Z3_get_symbol_string(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_get_sort_name(a0, a1):
+ r = lib().Z3_get_sort_name(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_sort_id(a0, a1):
+ r = lib().Z3_get_sort_id(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_sort_to_ast(a0, a1):
+ r = lib().Z3_sort_to_ast(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_is_eq_sort(a0, a1, a2):
+ r = lib().Z3_is_eq_sort(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_sort_kind(a0, a1):
+ r = lib().Z3_get_sort_kind(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_bv_sort_size(a0, a1):
+ r = lib().Z3_get_bv_sort_size(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_finite_domain_sort_size(a0, a1, a2):
+ r = lib().Z3_get_finite_domain_sort_size(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_array_sort_domain(a0, a1):
+ r = lib().Z3_get_array_sort_domain(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_array_sort_range(a0, a1):
+ r = lib().Z3_get_array_sort_range(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_tuple_sort_mk_decl(a0, a1):
+ r = lib().Z3_get_tuple_sort_mk_decl(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_tuple_sort_num_fields(a0, a1):
+ r = lib().Z3_get_tuple_sort_num_fields(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_tuple_sort_field_decl(a0, a1, a2):
+ r = lib().Z3_get_tuple_sort_field_decl(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_datatype_sort_num_constructors(a0, a1):
+ r = lib().Z3_get_datatype_sort_num_constructors(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_datatype_sort_constructor(a0, a1, a2):
+ r = lib().Z3_get_datatype_sort_constructor(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_datatype_sort_recognizer(a0, a1, a2):
+ r = lib().Z3_get_datatype_sort_recognizer(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_datatype_sort_constructor_accessor(a0, a1, a2, a3):
+ r = lib().Z3_get_datatype_sort_constructor_accessor(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_datatype_update_field(a0, a1, a2, a3):
+ r = lib().Z3_datatype_update_field(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_relation_arity(a0, a1):
+ r = lib().Z3_get_relation_arity(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_relation_column(a0, a1, a2):
+ r = lib().Z3_get_relation_column(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_atmost(a0, a1, a2, a3):
+ r = lib().Z3_mk_atmost(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_pble(a0, a1, a2, a3, a4):
+ r = lib().Z3_mk_pble(a0, a1, a2, a3, a4)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_pbeq(a0, a1, a2, a3, a4):
+ r = lib().Z3_mk_pbeq(a0, a1, a2, a3, a4)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_func_decl_to_ast(a0, a1):
+ r = lib().Z3_func_decl_to_ast(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_is_eq_func_decl(a0, a1, a2):
+ r = lib().Z3_is_eq_func_decl(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_func_decl_id(a0, a1):
+ r = lib().Z3_get_func_decl_id(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_decl_name(a0, a1):
+ r = lib().Z3_get_decl_name(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_decl_kind(a0, a1):
+ r = lib().Z3_get_decl_kind(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_domain_size(a0, a1):
+ r = lib().Z3_get_domain_size(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_arity(a0, a1):
+ r = lib().Z3_get_arity(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_domain(a0, a1, a2):
+ r = lib().Z3_get_domain(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_range(a0, a1):
+ r = lib().Z3_get_range(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_decl_num_parameters(a0, a1):
+ r = lib().Z3_get_decl_num_parameters(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_decl_parameter_kind(a0, a1, a2):
+ r = lib().Z3_get_decl_parameter_kind(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_decl_int_parameter(a0, a1, a2):
+ r = lib().Z3_get_decl_int_parameter(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_decl_double_parameter(a0, a1, a2):
+ r = lib().Z3_get_decl_double_parameter(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_decl_symbol_parameter(a0, a1, a2):
+ r = lib().Z3_get_decl_symbol_parameter(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_decl_sort_parameter(a0, a1, a2):
+ r = lib().Z3_get_decl_sort_parameter(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_decl_ast_parameter(a0, a1, a2):
+ r = lib().Z3_get_decl_ast_parameter(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_decl_func_decl_parameter(a0, a1, a2):
+ r = lib().Z3_get_decl_func_decl_parameter(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_decl_rational_parameter(a0, a1, a2):
+ r = lib().Z3_get_decl_rational_parameter(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_app_to_ast(a0, a1):
+ r = lib().Z3_app_to_ast(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_app_decl(a0, a1):
+ r = lib().Z3_get_app_decl(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_app_num_args(a0, a1):
+ r = lib().Z3_get_app_num_args(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_app_arg(a0, a1, a2):
+ r = lib().Z3_get_app_arg(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_is_eq_ast(a0, a1, a2):
+ r = lib().Z3_is_eq_ast(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_ast_id(a0, a1):
+ r = lib().Z3_get_ast_id(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_ast_hash(a0, a1):
+ r = lib().Z3_get_ast_hash(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_sort(a0, a1):
+ r = lib().Z3_get_sort(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_is_well_sorted(a0, a1):
+ r = lib().Z3_is_well_sorted(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_bool_value(a0, a1):
+ r = lib().Z3_get_bool_value(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_ast_kind(a0, a1):
+ r = lib().Z3_get_ast_kind(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_is_app(a0, a1):
+ r = lib().Z3_is_app(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_is_numeral_ast(a0, a1):
+ r = lib().Z3_is_numeral_ast(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_is_algebraic_number(a0, a1):
+ r = lib().Z3_is_algebraic_number(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_to_app(a0, a1):
+ r = lib().Z3_to_app(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_to_func_decl(a0, a1):
+ r = lib().Z3_to_func_decl(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_numeral_string(a0, a1):
+ r = lib().Z3_get_numeral_string(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_get_numeral_decimal_string(a0, a1, a2):
+ r = lib().Z3_get_numeral_decimal_string(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_get_numerator(a0, a1):
+ r = lib().Z3_get_numerator(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_denominator(a0, a1):
+ r = lib().Z3_get_denominator(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_numeral_small(a0, a1, a2, a3):
+ r = lib().Z3_get_numeral_small(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_numeral_int(a0, a1, a2):
+ r = lib().Z3_get_numeral_int(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_numeral_uint(a0, a1, a2):
+ r = lib().Z3_get_numeral_uint(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_numeral_uint64(a0, a1, a2):
+ r = lib().Z3_get_numeral_uint64(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_numeral_int64(a0, a1, a2):
+ r = lib().Z3_get_numeral_int64(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_numeral_rational_int64(a0, a1, a2, a3):
+ r = lib().Z3_get_numeral_rational_int64(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_algebraic_number_lower(a0, a1, a2):
+ r = lib().Z3_get_algebraic_number_lower(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_algebraic_number_upper(a0, a1, a2):
+ r = lib().Z3_get_algebraic_number_upper(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_pattern_to_ast(a0, a1):
+ r = lib().Z3_pattern_to_ast(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_pattern_num_terms(a0, a1):
+ r = lib().Z3_get_pattern_num_terms(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_pattern(a0, a1, a2):
+ r = lib().Z3_get_pattern(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_index_value(a0, a1):
+ r = lib().Z3_get_index_value(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_is_quantifier_forall(a0, a1):
+ r = lib().Z3_is_quantifier_forall(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_quantifier_weight(a0, a1):
+ r = lib().Z3_get_quantifier_weight(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_quantifier_num_patterns(a0, a1):
+ r = lib().Z3_get_quantifier_num_patterns(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_quantifier_pattern_ast(a0, a1, a2):
+ r = lib().Z3_get_quantifier_pattern_ast(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_quantifier_num_no_patterns(a0, a1):
+ r = lib().Z3_get_quantifier_num_no_patterns(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_quantifier_no_pattern_ast(a0, a1, a2):
+ r = lib().Z3_get_quantifier_no_pattern_ast(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_quantifier_num_bound(a0, a1):
+ r = lib().Z3_get_quantifier_num_bound(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_quantifier_bound_name(a0, a1, a2):
+ r = lib().Z3_get_quantifier_bound_name(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_quantifier_bound_sort(a0, a1, a2):
+ r = lib().Z3_get_quantifier_bound_sort(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_quantifier_body(a0, a1):
+ r = lib().Z3_get_quantifier_body(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_simplify(a0, a1):
+ r = lib().Z3_simplify(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_simplify_ex(a0, a1, a2):
+ r = lib().Z3_simplify_ex(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_simplify_get_help(a0):
+ r = lib().Z3_simplify_get_help(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_simplify_get_param_descrs(a0):
+ r = lib().Z3_simplify_get_param_descrs(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_update_term(a0, a1, a2, a3):
+ r = lib().Z3_update_term(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_substitute(a0, a1, a2, a3, a4):
+ r = lib().Z3_substitute(a0, a1, a2, a3, a4)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_substitute_vars(a0, a1, a2, a3):
+ r = lib().Z3_substitute_vars(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_translate(a0, a1, a2):
+ r = lib().Z3_translate(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_model_inc_ref(a0, a1):
+ lib().Z3_model_inc_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_model_dec_ref(a0, a1):
+ lib().Z3_model_dec_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_model_eval(a0, a1, a2, a3, a4):
+ r = lib().Z3_model_eval(a0, a1, a2, a3, a4)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_model_get_const_interp(a0, a1, a2):
+ r = lib().Z3_model_get_const_interp(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_model_has_interp(a0, a1, a2):
+ r = lib().Z3_model_has_interp(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_model_get_func_interp(a0, a1, a2):
+ r = lib().Z3_model_get_func_interp(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_model_get_num_consts(a0, a1):
+ r = lib().Z3_model_get_num_consts(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_model_get_const_decl(a0, a1, a2):
+ r = lib().Z3_model_get_const_decl(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_model_get_num_funcs(a0, a1):
+ r = lib().Z3_model_get_num_funcs(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_model_get_func_decl(a0, a1, a2):
+ r = lib().Z3_model_get_func_decl(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_model_get_num_sorts(a0, a1):
+ r = lib().Z3_model_get_num_sorts(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_model_get_sort(a0, a1, a2):
+ r = lib().Z3_model_get_sort(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_model_get_sort_universe(a0, a1, a2):
+ r = lib().Z3_model_get_sort_universe(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_is_as_array(a0, a1):
+ r = lib().Z3_is_as_array(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_as_array_func_decl(a0, a1):
+ r = lib().Z3_get_as_array_func_decl(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_func_interp_inc_ref(a0, a1):
+ lib().Z3_func_interp_inc_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_func_interp_dec_ref(a0, a1):
+ lib().Z3_func_interp_dec_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_func_interp_get_num_entries(a0, a1):
+ r = lib().Z3_func_interp_get_num_entries(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_func_interp_get_entry(a0, a1, a2):
+ r = lib().Z3_func_interp_get_entry(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_func_interp_get_else(a0, a1):
+ r = lib().Z3_func_interp_get_else(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_func_interp_get_arity(a0, a1):
+ r = lib().Z3_func_interp_get_arity(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_func_entry_inc_ref(a0, a1):
+ lib().Z3_func_entry_inc_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_func_entry_dec_ref(a0, a1):
+ lib().Z3_func_entry_dec_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_func_entry_get_value(a0, a1):
+ r = lib().Z3_func_entry_get_value(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_func_entry_get_num_args(a0, a1):
+ r = lib().Z3_func_entry_get_num_args(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_func_entry_get_arg(a0, a1, a2):
+ r = lib().Z3_func_entry_get_arg(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_open_log(a0):
+ r = lib().Z3_open_log(_to_ascii(a0))
+ return r
+
+def Z3_append_log(a0):
+ lib().Z3_append_log(_to_ascii(a0))
+
+def Z3_close_log():
+ lib().Z3_close_log()
+
+def Z3_toggle_warning_messages(a0):
+ lib().Z3_toggle_warning_messages(a0)
+
+def Z3_set_ast_print_mode(a0, a1):
+ lib().Z3_set_ast_print_mode(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_ast_to_string(a0, a1):
+ r = lib().Z3_ast_to_string(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_pattern_to_string(a0, a1):
+ r = lib().Z3_pattern_to_string(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_sort_to_string(a0, a1):
+ r = lib().Z3_sort_to_string(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_func_decl_to_string(a0, a1):
+ r = lib().Z3_func_decl_to_string(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_model_to_string(a0, a1):
+ r = lib().Z3_model_to_string(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_benchmark_to_smtlib_string(a0, a1, a2, a3, a4, a5, a6, a7):
+ r = lib().Z3_benchmark_to_smtlib_string(a0, _to_ascii(a1), _to_ascii(a2), _to_ascii(a3), _to_ascii(a4), a5, a6, a7)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_parse_smtlib2_string(a0, a1, a2, a3, a4, a5, a6, a7):
+ r = lib().Z3_parse_smtlib2_string(a0, _to_ascii(a1), a2, a3, a4, a5, a6, a7)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_parse_smtlib2_file(a0, a1, a2, a3, a4, a5, a6, a7):
+ r = lib().Z3_parse_smtlib2_file(a0, _to_ascii(a1), a2, a3, a4, a5, a6, a7)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_parse_smtlib_string(a0, a1, a2, a3, a4, a5, a6, a7):
+ lib().Z3_parse_smtlib_string(a0, _to_ascii(a1), a2, a3, a4, a5, a6, a7)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_parse_smtlib_file(a0, a1, a2, a3, a4, a5, a6, a7):
+ lib().Z3_parse_smtlib_file(a0, _to_ascii(a1), a2, a3, a4, a5, a6, a7)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_get_smtlib_num_formulas(a0):
+ r = lib().Z3_get_smtlib_num_formulas(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_smtlib_formula(a0, a1):
+ r = lib().Z3_get_smtlib_formula(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_smtlib_num_assumptions(a0):
+ r = lib().Z3_get_smtlib_num_assumptions(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_smtlib_assumption(a0, a1):
+ r = lib().Z3_get_smtlib_assumption(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_smtlib_num_decls(a0):
+ r = lib().Z3_get_smtlib_num_decls(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_smtlib_decl(a0, a1):
+ r = lib().Z3_get_smtlib_decl(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_smtlib_num_sorts(a0):
+ r = lib().Z3_get_smtlib_num_sorts(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_smtlib_sort(a0, a1):
+ r = lib().Z3_get_smtlib_sort(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_smtlib_error(a0):
+ r = lib().Z3_get_smtlib_error(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_get_error_code(a0):
+ r = lib().Z3_get_error_code(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_set_error(a0, a1):
+ lib().Z3_set_error(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_get_error_msg(a0, a1):
+ r = lib().Z3_get_error_msg(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_get_version(a0, a1, a2, a3):
+ lib().Z3_get_version(a0, a1, a2, a3)
+
+def Z3_get_full_version():
+ r = lib().Z3_get_full_version()
+ return _to_pystr(r)
+
+def Z3_enable_trace(a0):
+ lib().Z3_enable_trace(_to_ascii(a0))
+
+def Z3_disable_trace(a0):
+ lib().Z3_disable_trace(_to_ascii(a0))
+
+def Z3_reset_memory():
+ lib().Z3_reset_memory()
+
+def Z3_finalize_memory():
+ lib().Z3_finalize_memory()
+
+def Z3_mk_goal(a0, a1, a2, a3):
+ r = lib().Z3_mk_goal(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_goal_inc_ref(a0, a1):
+ lib().Z3_goal_inc_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_goal_dec_ref(a0, a1):
+ lib().Z3_goal_dec_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_goal_precision(a0, a1):
+ r = lib().Z3_goal_precision(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_goal_assert(a0, a1, a2):
+ lib().Z3_goal_assert(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_goal_inconsistent(a0, a1):
+ r = lib().Z3_goal_inconsistent(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_goal_depth(a0, a1):
+ r = lib().Z3_goal_depth(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_goal_reset(a0, a1):
+ lib().Z3_goal_reset(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_goal_size(a0, a1):
+ r = lib().Z3_goal_size(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_goal_formula(a0, a1, a2):
+ r = lib().Z3_goal_formula(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_goal_num_exprs(a0, a1):
+ r = lib().Z3_goal_num_exprs(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_goal_is_decided_sat(a0, a1):
+ r = lib().Z3_goal_is_decided_sat(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_goal_is_decided_unsat(a0, a1):
+ r = lib().Z3_goal_is_decided_unsat(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_goal_translate(a0, a1, a2):
+ r = lib().Z3_goal_translate(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_goal_to_string(a0, a1):
+ r = lib().Z3_goal_to_string(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_mk_tactic(a0, a1):
+ r = lib().Z3_mk_tactic(a0, _to_ascii(a1))
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_tactic_inc_ref(a0, a1):
+ lib().Z3_tactic_inc_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_tactic_dec_ref(a0, a1):
+ lib().Z3_tactic_dec_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_mk_probe(a0, a1):
+ r = lib().Z3_mk_probe(a0, _to_ascii(a1))
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_probe_inc_ref(a0, a1):
+ lib().Z3_probe_inc_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_probe_dec_ref(a0, a1):
+ lib().Z3_probe_dec_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_tactic_and_then(a0, a1, a2):
+ r = lib().Z3_tactic_and_then(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_tactic_or_else(a0, a1, a2):
+ r = lib().Z3_tactic_or_else(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_tactic_par_or(a0, a1, a2):
+ r = lib().Z3_tactic_par_or(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_tactic_par_and_then(a0, a1, a2):
+ r = lib().Z3_tactic_par_and_then(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_tactic_try_for(a0, a1, a2):
+ r = lib().Z3_tactic_try_for(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_tactic_when(a0, a1, a2):
+ r = lib().Z3_tactic_when(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_tactic_cond(a0, a1, a2, a3):
+ r = lib().Z3_tactic_cond(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_tactic_repeat(a0, a1, a2):
+ r = lib().Z3_tactic_repeat(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_tactic_skip(a0):
+ r = lib().Z3_tactic_skip(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_tactic_fail(a0):
+ r = lib().Z3_tactic_fail(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_tactic_fail_if(a0, a1):
+ r = lib().Z3_tactic_fail_if(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_tactic_fail_if_not_decided(a0):
+ r = lib().Z3_tactic_fail_if_not_decided(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_tactic_using_params(a0, a1, a2):
+ r = lib().Z3_tactic_using_params(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_probe_const(a0, a1):
+ r = lib().Z3_probe_const(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_probe_lt(a0, a1, a2):
+ r = lib().Z3_probe_lt(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_probe_gt(a0, a1, a2):
+ r = lib().Z3_probe_gt(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_probe_le(a0, a1, a2):
+ r = lib().Z3_probe_le(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_probe_ge(a0, a1, a2):
+ r = lib().Z3_probe_ge(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_probe_eq(a0, a1, a2):
+ r = lib().Z3_probe_eq(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_probe_and(a0, a1, a2):
+ r = lib().Z3_probe_and(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_probe_or(a0, a1, a2):
+ r = lib().Z3_probe_or(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_probe_not(a0, a1):
+ r = lib().Z3_probe_not(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_num_tactics(a0):
+ r = lib().Z3_get_num_tactics(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_tactic_name(a0, a1):
+ r = lib().Z3_get_tactic_name(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_get_num_probes(a0):
+ r = lib().Z3_get_num_probes(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_probe_name(a0, a1):
+ r = lib().Z3_get_probe_name(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_tactic_get_help(a0, a1):
+ r = lib().Z3_tactic_get_help(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_tactic_get_param_descrs(a0, a1):
+ r = lib().Z3_tactic_get_param_descrs(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_tactic_get_descr(a0, a1):
+ r = lib().Z3_tactic_get_descr(a0, _to_ascii(a1))
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_probe_get_descr(a0, a1):
+ r = lib().Z3_probe_get_descr(a0, _to_ascii(a1))
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_probe_apply(a0, a1, a2):
+ r = lib().Z3_probe_apply(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_tactic_apply(a0, a1, a2):
+ r = lib().Z3_tactic_apply(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_tactic_apply_ex(a0, a1, a2, a3):
+ r = lib().Z3_tactic_apply_ex(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_apply_result_inc_ref(a0, a1):
+ lib().Z3_apply_result_inc_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_apply_result_dec_ref(a0, a1):
+ lib().Z3_apply_result_dec_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_apply_result_to_string(a0, a1):
+ r = lib().Z3_apply_result_to_string(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_apply_result_get_num_subgoals(a0, a1):
+ r = lib().Z3_apply_result_get_num_subgoals(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_apply_result_get_subgoal(a0, a1, a2):
+ r = lib().Z3_apply_result_get_subgoal(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_apply_result_convert_model(a0, a1, a2, a3):
+ r = lib().Z3_apply_result_convert_model(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_solver(a0):
+ r = lib().Z3_mk_solver(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_simple_solver(a0):
+ r = lib().Z3_mk_simple_solver(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_solver_for_logic(a0, a1):
+ r = lib().Z3_mk_solver_for_logic(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_solver_from_tactic(a0, a1):
+ r = lib().Z3_mk_solver_from_tactic(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_solver_translate(a0, a1, a2):
+ r = lib().Z3_solver_translate(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_solver_get_help(a0, a1):
+ r = lib().Z3_solver_get_help(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_solver_get_param_descrs(a0, a1):
+ r = lib().Z3_solver_get_param_descrs(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_solver_set_params(a0, a1, a2):
+ lib().Z3_solver_set_params(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_solver_inc_ref(a0, a1):
+ lib().Z3_solver_inc_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_solver_dec_ref(a0, a1):
+ lib().Z3_solver_dec_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_solver_push(a0, a1):
+ lib().Z3_solver_push(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_solver_pop(a0, a1, a2):
+ lib().Z3_solver_pop(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_solver_reset(a0, a1):
+ lib().Z3_solver_reset(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_solver_get_num_scopes(a0, a1):
+ r = lib().Z3_solver_get_num_scopes(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_solver_assert(a0, a1, a2):
+ lib().Z3_solver_assert(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_solver_assert_and_track(a0, a1, a2, a3):
+ lib().Z3_solver_assert_and_track(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_solver_get_assertions(a0, a1):
+ r = lib().Z3_solver_get_assertions(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_solver_check(a0, a1):
+ r = lib().Z3_solver_check(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_solver_check_assumptions(a0, a1, a2, a3):
+ r = lib().Z3_solver_check_assumptions(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_implied_equalities(a0, a1, a2, a3, a4):
+ r = lib().Z3_get_implied_equalities(a0, a1, a2, a3, a4)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_solver_get_consequences(a0, a1, a2, a3, a4):
+ r = lib().Z3_solver_get_consequences(a0, a1, a2, a3, a4)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_solver_get_model(a0, a1):
+ r = lib().Z3_solver_get_model(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_solver_get_proof(a0, a1):
+ r = lib().Z3_solver_get_proof(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_solver_get_unsat_core(a0, a1):
+ r = lib().Z3_solver_get_unsat_core(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_solver_get_reason_unknown(a0, a1):
+ r = lib().Z3_solver_get_reason_unknown(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_solver_get_statistics(a0, a1):
+ r = lib().Z3_solver_get_statistics(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_solver_to_string(a0, a1):
+ r = lib().Z3_solver_to_string(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_stats_to_string(a0, a1):
+ r = lib().Z3_stats_to_string(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_stats_inc_ref(a0, a1):
+ lib().Z3_stats_inc_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_stats_dec_ref(a0, a1):
+ lib().Z3_stats_dec_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_stats_size(a0, a1):
+ r = lib().Z3_stats_size(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_stats_get_key(a0, a1, a2):
+ r = lib().Z3_stats_get_key(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_stats_is_uint(a0, a1, a2):
+ r = lib().Z3_stats_is_uint(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_stats_is_double(a0, a1, a2):
+ r = lib().Z3_stats_is_double(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_stats_get_uint_value(a0, a1, a2):
+ r = lib().Z3_stats_get_uint_value(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_stats_get_double_value(a0, a1, a2):
+ r = lib().Z3_stats_get_double_value(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_get_estimated_alloc_size():
+ r = lib().Z3_get_estimated_alloc_size()
+ return r
+
+def Z3_mk_ast_vector(a0):
+ r = lib().Z3_mk_ast_vector(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_ast_vector_inc_ref(a0, a1):
+ lib().Z3_ast_vector_inc_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_ast_vector_dec_ref(a0, a1):
+ lib().Z3_ast_vector_dec_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_ast_vector_size(a0, a1):
+ r = lib().Z3_ast_vector_size(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_ast_vector_get(a0, a1, a2):
+ r = lib().Z3_ast_vector_get(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_ast_vector_set(a0, a1, a2, a3):
+ lib().Z3_ast_vector_set(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_ast_vector_resize(a0, a1, a2):
+ lib().Z3_ast_vector_resize(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_ast_vector_push(a0, a1, a2):
+ lib().Z3_ast_vector_push(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_ast_vector_translate(a0, a1, a2):
+ r = lib().Z3_ast_vector_translate(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_ast_vector_to_string(a0, a1):
+ r = lib().Z3_ast_vector_to_string(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_mk_ast_map(a0):
+ r = lib().Z3_mk_ast_map(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_ast_map_inc_ref(a0, a1):
+ lib().Z3_ast_map_inc_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_ast_map_dec_ref(a0, a1):
+ lib().Z3_ast_map_dec_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_ast_map_contains(a0, a1, a2):
+ r = lib().Z3_ast_map_contains(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_ast_map_find(a0, a1, a2):
+ r = lib().Z3_ast_map_find(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_ast_map_insert(a0, a1, a2, a3):
+ lib().Z3_ast_map_insert(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_ast_map_erase(a0, a1, a2):
+ lib().Z3_ast_map_erase(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_ast_map_reset(a0, a1):
+ lib().Z3_ast_map_reset(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_ast_map_size(a0, a1):
+ r = lib().Z3_ast_map_size(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_ast_map_keys(a0, a1):
+ r = lib().Z3_ast_map_keys(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_ast_map_to_string(a0, a1):
+ r = lib().Z3_ast_map_to_string(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_algebraic_is_value(a0, a1):
+ r = lib().Z3_algebraic_is_value(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_algebraic_is_pos(a0, a1):
+ r = lib().Z3_algebraic_is_pos(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_algebraic_is_neg(a0, a1):
+ r = lib().Z3_algebraic_is_neg(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_algebraic_is_zero(a0, a1):
+ r = lib().Z3_algebraic_is_zero(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_algebraic_sign(a0, a1):
+ r = lib().Z3_algebraic_sign(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_algebraic_add(a0, a1, a2):
+ r = lib().Z3_algebraic_add(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_algebraic_sub(a0, a1, a2):
+ r = lib().Z3_algebraic_sub(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_algebraic_mul(a0, a1, a2):
+ r = lib().Z3_algebraic_mul(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_algebraic_div(a0, a1, a2):
+ r = lib().Z3_algebraic_div(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_algebraic_root(a0, a1, a2):
+ r = lib().Z3_algebraic_root(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_algebraic_power(a0, a1, a2):
+ r = lib().Z3_algebraic_power(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_algebraic_lt(a0, a1, a2):
+ r = lib().Z3_algebraic_lt(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_algebraic_gt(a0, a1, a2):
+ r = lib().Z3_algebraic_gt(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_algebraic_le(a0, a1, a2):
+ r = lib().Z3_algebraic_le(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_algebraic_ge(a0, a1, a2):
+ r = lib().Z3_algebraic_ge(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_algebraic_eq(a0, a1, a2):
+ r = lib().Z3_algebraic_eq(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_algebraic_neq(a0, a1, a2):
+ r = lib().Z3_algebraic_neq(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_algebraic_roots(a0, a1, a2, a3):
+ r = lib().Z3_algebraic_roots(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_algebraic_eval(a0, a1, a2, a3):
+ r = lib().Z3_algebraic_eval(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_polynomial_subresultants(a0, a1, a2, a3):
+ r = lib().Z3_polynomial_subresultants(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_rcf_del(a0, a1):
+ lib().Z3_rcf_del(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_rcf_mk_rational(a0, a1):
+ r = lib().Z3_rcf_mk_rational(a0, _to_ascii(a1))
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_rcf_mk_small_int(a0, a1):
+ r = lib().Z3_rcf_mk_small_int(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_rcf_mk_pi(a0):
+ r = lib().Z3_rcf_mk_pi(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_rcf_mk_e(a0):
+ r = lib().Z3_rcf_mk_e(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_rcf_mk_infinitesimal(a0):
+ r = lib().Z3_rcf_mk_infinitesimal(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_rcf_mk_roots(a0, a1, a2, a3):
+ r = lib().Z3_rcf_mk_roots(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_rcf_add(a0, a1, a2):
+ r = lib().Z3_rcf_add(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_rcf_sub(a0, a1, a2):
+ r = lib().Z3_rcf_sub(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_rcf_mul(a0, a1, a2):
+ r = lib().Z3_rcf_mul(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_rcf_div(a0, a1, a2):
+ r = lib().Z3_rcf_div(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_rcf_neg(a0, a1):
+ r = lib().Z3_rcf_neg(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_rcf_inv(a0, a1):
+ r = lib().Z3_rcf_inv(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_rcf_power(a0, a1, a2):
+ r = lib().Z3_rcf_power(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_rcf_lt(a0, a1, a2):
+ r = lib().Z3_rcf_lt(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_rcf_gt(a0, a1, a2):
+ r = lib().Z3_rcf_gt(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_rcf_le(a0, a1, a2):
+ r = lib().Z3_rcf_le(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_rcf_ge(a0, a1, a2):
+ r = lib().Z3_rcf_ge(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_rcf_eq(a0, a1, a2):
+ r = lib().Z3_rcf_eq(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_rcf_neq(a0, a1, a2):
+ r = lib().Z3_rcf_neq(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_rcf_num_to_string(a0, a1, a2, a3):
+ r = lib().Z3_rcf_num_to_string(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_rcf_num_to_decimal_string(a0, a1, a2):
+ r = lib().Z3_rcf_num_to_decimal_string(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_rcf_get_numerator_denominator(a0, a1, a2, a3):
+ lib().Z3_rcf_get_numerator_denominator(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_mk_fixedpoint(a0):
+ r = lib().Z3_mk_fixedpoint(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_fixedpoint_inc_ref(a0, a1):
+ lib().Z3_fixedpoint_inc_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_fixedpoint_dec_ref(a0, a1):
+ lib().Z3_fixedpoint_dec_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_fixedpoint_add_rule(a0, a1, a2, a3):
+ lib().Z3_fixedpoint_add_rule(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_fixedpoint_add_fact(a0, a1, a2, a3, a4):
+ lib().Z3_fixedpoint_add_fact(a0, a1, a2, a3, a4)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_fixedpoint_assert(a0, a1, a2):
+ lib().Z3_fixedpoint_assert(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_fixedpoint_query(a0, a1, a2):
+ r = lib().Z3_fixedpoint_query(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_fixedpoint_query_relations(a0, a1, a2, a3):
+ r = lib().Z3_fixedpoint_query_relations(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_fixedpoint_get_answer(a0, a1):
+ r = lib().Z3_fixedpoint_get_answer(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_fixedpoint_get_reason_unknown(a0, a1):
+ r = lib().Z3_fixedpoint_get_reason_unknown(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_fixedpoint_update_rule(a0, a1, a2, a3):
+ lib().Z3_fixedpoint_update_rule(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_fixedpoint_get_num_levels(a0, a1, a2):
+ r = lib().Z3_fixedpoint_get_num_levels(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_fixedpoint_get_cover_delta(a0, a1, a2, a3):
+ r = lib().Z3_fixedpoint_get_cover_delta(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_fixedpoint_add_cover(a0, a1, a2, a3, a4):
+ lib().Z3_fixedpoint_add_cover(a0, a1, a2, a3, a4)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_fixedpoint_get_statistics(a0, a1):
+ r = lib().Z3_fixedpoint_get_statistics(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_fixedpoint_register_relation(a0, a1, a2):
+ lib().Z3_fixedpoint_register_relation(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_fixedpoint_set_predicate_representation(a0, a1, a2, a3, a4):
+ lib().Z3_fixedpoint_set_predicate_representation(a0, a1, a2, a3, a4)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_fixedpoint_get_rules(a0, a1):
+ r = lib().Z3_fixedpoint_get_rules(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_fixedpoint_get_assertions(a0, a1):
+ r = lib().Z3_fixedpoint_get_assertions(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_fixedpoint_set_params(a0, a1, a2):
+ lib().Z3_fixedpoint_set_params(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_fixedpoint_get_help(a0, a1):
+ r = lib().Z3_fixedpoint_get_help(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_fixedpoint_get_param_descrs(a0, a1):
+ r = lib().Z3_fixedpoint_get_param_descrs(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_fixedpoint_to_string(a0, a1, a2, a3):
+ r = lib().Z3_fixedpoint_to_string(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_fixedpoint_from_string(a0, a1, a2):
+ r = lib().Z3_fixedpoint_from_string(a0, a1, _to_ascii(a2))
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_fixedpoint_from_file(a0, a1, a2):
+ r = lib().Z3_fixedpoint_from_file(a0, a1, _to_ascii(a2))
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_fixedpoint_push(a0, a1):
+ lib().Z3_fixedpoint_push(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_fixedpoint_pop(a0, a1):
+ lib().Z3_fixedpoint_pop(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_mk_optimize(a0):
+ r = lib().Z3_mk_optimize(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_optimize_inc_ref(a0, a1):
+ lib().Z3_optimize_inc_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_optimize_dec_ref(a0, a1):
+ lib().Z3_optimize_dec_ref(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_optimize_assert(a0, a1, a2):
+ lib().Z3_optimize_assert(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_optimize_assert_soft(a0, a1, a2, a3, a4):
+ r = lib().Z3_optimize_assert_soft(a0, a1, a2, _to_ascii(a3), a4)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_optimize_maximize(a0, a1, a2):
+ r = lib().Z3_optimize_maximize(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_optimize_minimize(a0, a1, a2):
+ r = lib().Z3_optimize_minimize(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_optimize_push(a0, a1):
+ lib().Z3_optimize_push(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_optimize_pop(a0, a1):
+ lib().Z3_optimize_pop(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_optimize_check(a0, a1):
+ r = lib().Z3_optimize_check(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_optimize_get_reason_unknown(a0, a1):
+ r = lib().Z3_optimize_get_reason_unknown(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_optimize_get_model(a0, a1):
+ r = lib().Z3_optimize_get_model(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_optimize_set_params(a0, a1, a2):
+ lib().Z3_optimize_set_params(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_optimize_get_param_descrs(a0, a1):
+ r = lib().Z3_optimize_get_param_descrs(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_optimize_get_lower(a0, a1, a2):
+ r = lib().Z3_optimize_get_lower(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_optimize_get_upper(a0, a1, a2):
+ r = lib().Z3_optimize_get_upper(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_optimize_to_string(a0, a1):
+ r = lib().Z3_optimize_to_string(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_optimize_from_string(a0, a1, a2):
+ lib().Z3_optimize_from_string(a0, a1, _to_ascii(a2))
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_optimize_from_file(a0, a1, a2):
+ lib().Z3_optimize_from_file(a0, a1, _to_ascii(a2))
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_optimize_get_help(a0, a1):
+ r = lib().Z3_optimize_get_help(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_optimize_get_statistics(a0, a1):
+ r = lib().Z3_optimize_get_statistics(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_optimize_get_assertions(a0, a1):
+ r = lib().Z3_optimize_get_assertions(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_optimize_get_objectives(a0, a1):
+ r = lib().Z3_optimize_get_objectives(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_interpolant(a0, a1):
+ r = lib().Z3_mk_interpolant(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_interpolation_context(a0):
+ r = lib().Z3_mk_interpolation_context(a0)
+ return r
+
+def Z3_get_interpolant(a0, a1, a2, a3):
+ r = lib().Z3_get_interpolant(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_compute_interpolant(a0, a1, a2, a3, a4):
+ r = lib().Z3_compute_interpolant(a0, a1, a2, a3, a4)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_interpolation_profile(a0):
+ r = lib().Z3_interpolation_profile(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_read_interpolation_problem(a0, a1, a2, a3, a4, a5, a6, a7):
+ r = lib().Z3_read_interpolation_problem(a0, a1, a2, a3, _to_ascii(a4), _to_ascii(a5), a6, a7)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_check_interpolant(a0, a1, a2, a3, a4, a5, a6, a7):
+ r = lib().Z3_check_interpolant(a0, a1, a2, a3, a4, _to_ascii(a5), a6, a7)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_write_interpolation_problem(a0, a1, a2, a3, a4, a5, a6):
+ lib().Z3_write_interpolation_problem(a0, a1, a2, a3, _to_ascii(a4), a5, a6)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+
+def Z3_mk_fpa_rounding_mode_sort(a0):
+ r = lib().Z3_mk_fpa_rounding_mode_sort(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_round_nearest_ties_to_even(a0):
+ r = lib().Z3_mk_fpa_round_nearest_ties_to_even(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_rne(a0):
+ r = lib().Z3_mk_fpa_rne(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_round_nearest_ties_to_away(a0):
+ r = lib().Z3_mk_fpa_round_nearest_ties_to_away(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_rna(a0):
+ r = lib().Z3_mk_fpa_rna(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_round_toward_positive(a0):
+ r = lib().Z3_mk_fpa_round_toward_positive(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_rtp(a0):
+ r = lib().Z3_mk_fpa_rtp(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_round_toward_negative(a0):
+ r = lib().Z3_mk_fpa_round_toward_negative(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_rtn(a0):
+ r = lib().Z3_mk_fpa_rtn(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_round_toward_zero(a0):
+ r = lib().Z3_mk_fpa_round_toward_zero(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_rtz(a0):
+ r = lib().Z3_mk_fpa_rtz(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_sort(a0, a1, a2):
+ r = lib().Z3_mk_fpa_sort(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_sort_half(a0):
+ r = lib().Z3_mk_fpa_sort_half(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_sort_16(a0):
+ r = lib().Z3_mk_fpa_sort_16(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_sort_single(a0):
+ r = lib().Z3_mk_fpa_sort_single(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_sort_32(a0):
+ r = lib().Z3_mk_fpa_sort_32(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_sort_double(a0):
+ r = lib().Z3_mk_fpa_sort_double(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_sort_64(a0):
+ r = lib().Z3_mk_fpa_sort_64(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_sort_quadruple(a0):
+ r = lib().Z3_mk_fpa_sort_quadruple(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_sort_128(a0):
+ r = lib().Z3_mk_fpa_sort_128(a0)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_nan(a0, a1):
+ r = lib().Z3_mk_fpa_nan(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_inf(a0, a1, a2):
+ r = lib().Z3_mk_fpa_inf(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_zero(a0, a1, a2):
+ r = lib().Z3_mk_fpa_zero(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_fp(a0, a1, a2, a3):
+ r = lib().Z3_mk_fpa_fp(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_numeral_float(a0, a1, a2):
+ r = lib().Z3_mk_fpa_numeral_float(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_numeral_double(a0, a1, a2):
+ r = lib().Z3_mk_fpa_numeral_double(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_numeral_int(a0, a1, a2):
+ r = lib().Z3_mk_fpa_numeral_int(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_numeral_int_uint(a0, a1, a2, a3, a4):
+ r = lib().Z3_mk_fpa_numeral_int_uint(a0, a1, a2, a3, a4)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_numeral_int64_uint64(a0, a1, a2, a3, a4):
+ r = lib().Z3_mk_fpa_numeral_int64_uint64(a0, a1, a2, a3, a4)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_abs(a0, a1):
+ r = lib().Z3_mk_fpa_abs(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_neg(a0, a1):
+ r = lib().Z3_mk_fpa_neg(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_add(a0, a1, a2, a3):
+ r = lib().Z3_mk_fpa_add(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_sub(a0, a1, a2, a3):
+ r = lib().Z3_mk_fpa_sub(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_mul(a0, a1, a2, a3):
+ r = lib().Z3_mk_fpa_mul(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_div(a0, a1, a2, a3):
+ r = lib().Z3_mk_fpa_div(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_fma(a0, a1, a2, a3, a4):
+ r = lib().Z3_mk_fpa_fma(a0, a1, a2, a3, a4)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_sqrt(a0, a1, a2):
+ r = lib().Z3_mk_fpa_sqrt(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_rem(a0, a1, a2):
+ r = lib().Z3_mk_fpa_rem(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_round_to_integral(a0, a1, a2):
+ r = lib().Z3_mk_fpa_round_to_integral(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_min(a0, a1, a2):
+ r = lib().Z3_mk_fpa_min(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_max(a0, a1, a2):
+ r = lib().Z3_mk_fpa_max(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_leq(a0, a1, a2):
+ r = lib().Z3_mk_fpa_leq(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_lt(a0, a1, a2):
+ r = lib().Z3_mk_fpa_lt(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_geq(a0, a1, a2):
+ r = lib().Z3_mk_fpa_geq(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_gt(a0, a1, a2):
+ r = lib().Z3_mk_fpa_gt(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_eq(a0, a1, a2):
+ r = lib().Z3_mk_fpa_eq(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_is_normal(a0, a1):
+ r = lib().Z3_mk_fpa_is_normal(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_is_subnormal(a0, a1):
+ r = lib().Z3_mk_fpa_is_subnormal(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_is_zero(a0, a1):
+ r = lib().Z3_mk_fpa_is_zero(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_is_infinite(a0, a1):
+ r = lib().Z3_mk_fpa_is_infinite(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_is_nan(a0, a1):
+ r = lib().Z3_mk_fpa_is_nan(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_is_negative(a0, a1):
+ r = lib().Z3_mk_fpa_is_negative(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_is_positive(a0, a1):
+ r = lib().Z3_mk_fpa_is_positive(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_to_fp_bv(a0, a1, a2):
+ r = lib().Z3_mk_fpa_to_fp_bv(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_to_fp_float(a0, a1, a2, a3):
+ r = lib().Z3_mk_fpa_to_fp_float(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_to_fp_real(a0, a1, a2, a3):
+ r = lib().Z3_mk_fpa_to_fp_real(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_to_fp_signed(a0, a1, a2, a3):
+ r = lib().Z3_mk_fpa_to_fp_signed(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_to_fp_unsigned(a0, a1, a2, a3):
+ r = lib().Z3_mk_fpa_to_fp_unsigned(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_to_ubv(a0, a1, a2, a3):
+ r = lib().Z3_mk_fpa_to_ubv(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_to_sbv(a0, a1, a2, a3):
+ r = lib().Z3_mk_fpa_to_sbv(a0, a1, a2, a3)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_to_real(a0, a1):
+ r = lib().Z3_mk_fpa_to_real(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_fpa_get_ebits(a0, a1):
+ r = lib().Z3_fpa_get_ebits(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_fpa_get_sbits(a0, a1):
+ r = lib().Z3_fpa_get_sbits(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_fpa_get_numeral_sign(a0, a1, a2):
+ r = lib().Z3_fpa_get_numeral_sign(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_fpa_get_numeral_significand_string(a0, a1):
+ r = lib().Z3_fpa_get_numeral_significand_string(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_fpa_get_numeral_significand_uint64(a0, a1, a2):
+ r = lib().Z3_fpa_get_numeral_significand_uint64(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_fpa_get_numeral_exponent_string(a0, a1):
+ r = lib().Z3_fpa_get_numeral_exponent_string(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return _to_pystr(r)
+
+def Z3_fpa_get_numeral_exponent_int64(a0, a1, a2):
+ r = lib().Z3_fpa_get_numeral_exponent_int64(a0, a1, a2)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_to_ieee_bv(a0, a1):
+ r = lib().Z3_mk_fpa_to_ieee_bv(a0, a1)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
+def Z3_mk_fpa_to_fp_int_real(a0, a1, a2, a3, a4):
+ r = lib().Z3_mk_fpa_to_fp_int_real(a0, a1, a2, a3, a4)
+ err = lib().Z3_get_error_code(a0)
+ if err != Z3_OK:
+ raise Z3Exception(lib().Z3_get_error_msg(a0, err))
+ return r
+
diff --git a/rba.tool.editor.endpoint/lib/windows/z3/python/z3/z3num.py b/rba.tool.editor.endpoint/lib/windows/z3/python/z3/z3num.py
new file mode 100644
index 0000000..b1af58d
--- /dev/null
+++ b/rba.tool.editor.endpoint/lib/windows/z3/python/z3/z3num.py
@@ -0,0 +1,577 @@
+############################################
+# Copyright (c) 2012 Microsoft Corporation
+#
+# Z3 Python interface for Z3 numerals
+#
+# Author: Leonardo de Moura (leonardo)
+############################################
+from .z3 import *
+from .z3core import *
+from .z3printer import *
+from fractions import Fraction
+
+from .z3 import _get_ctx
+
+def _to_numeral(num, ctx=None):
+ if isinstance(num, Numeral):
+ return num
+ else:
+ return Numeral(num, ctx)
+
+class Numeral:
+ """
+ A Z3 numeral can be used to perform computations over arbitrary
+ precision integers, rationals and real algebraic numbers.
+ It also automatically converts python numeric values.
+
+ >>> Numeral(2)
+ 2
+ >>> Numeral("3/2") + 1
+ 5/2
+ >>> Numeral(Sqrt(2))
+ 1.4142135623?
+ >>> Numeral(Sqrt(2)) + 2
+ 3.4142135623?
+ >>> Numeral(Sqrt(2)) + Numeral(Sqrt(3))
+ 3.1462643699?
+
+ Z3 numerals can be used to perform computations with
+ values in a Z3 model.
+
+ >>> s = Solver()
+ >>> x = Real('x')
+ >>> s.add(x*x == 2)
+ >>> s.add(x > 0)
+ >>> s.check()
+ sat
+ >>> m = s.model()
+ >>> m[x]
+ 1.4142135623?
+ >>> m[x] + 1
+ 1.4142135623? + 1
+
+ The previous result is a Z3 expression.
+
+ >>> (m[x] + 1).sexpr()
+ '(+ (root-obj (+ (^ x 2) (- 2)) 2) 1.0)'
+
+ >>> Numeral(m[x]) + 1
+ 2.4142135623?
+ >>> Numeral(m[x]).is_pos()
+ True
+ >>> Numeral(m[x])**2
+ 2
+
+ We can also isolate the roots of polynomials.
+
+ >>> x0, x1, x2 = RealVarVector(3)
+ >>> r0 = isolate_roots(x0**5 - x0 - 1)
+ >>> r0
+ [1.1673039782?]
+
+ In the following example, we are isolating the roots
+ of a univariate polynomial (on x1) obtained after substituting
+ x0 -> r0[0]
+
+ >>> r1 = isolate_roots(x1**2 - x0 + 1, [ r0[0] ])
+ >>> r1
+ [-0.4090280898?, 0.4090280898?]
+
+ Similarly, in the next example we isolate the roots of
+ a univariate polynomial (on x2) obtained after substituting
+ x0 -> r0[0] and x1 -> r1[0]
+
+ >>> isolate_roots(x1*x2 + x0, [ r0[0], r1[0] ])
+ [2.8538479564?]
+
+ """
+ def __init__(self, num, ctx=None):
+ if isinstance(num, Ast):
+ self.ast = num
+ self.ctx = _get_ctx(ctx)
+ elif isinstance(num, RatNumRef) or isinstance(num, AlgebraicNumRef):
+ self.ast = num.ast
+ self.ctx = num.ctx
+ elif isinstance(num, ArithRef):
+ r = simplify(num)
+ self.ast = r.ast
+ self.ctx = r.ctx
+ else:
+ v = RealVal(num, ctx)
+ self.ast = v.ast
+ self.ctx = v.ctx
+ Z3_inc_ref(self.ctx_ref(), self.as_ast())
+ assert Z3_algebraic_is_value(self.ctx_ref(), self.ast)
+
+ def __del__(self):
+ Z3_dec_ref(self.ctx_ref(), self.as_ast())
+
+ def is_integer(self):
+ """ Return True if the numeral is integer.
+
+ >>> Numeral(2).is_integer()
+ True
+ >>> (Numeral(Sqrt(2)) * Numeral(Sqrt(2))).is_integer()
+ True
+ >>> Numeral(Sqrt(2)).is_integer()
+ False
+ >>> Numeral("2/3").is_integer()
+ False
+ """
+ return self.is_rational() and self.denominator() == 1
+
+ def is_rational(self):
+ """ Return True if the numeral is rational.
+
+ >>> Numeral(2).is_rational()
+ True
+ >>> Numeral("2/3").is_rational()
+ True
+ >>> Numeral(Sqrt(2)).is_rational()
+ False
+
+ """
+ return Z3_get_ast_kind(self.ctx_ref(), self.as_ast()) == Z3_NUMERAL_AST
+
+ def denominator(self):
+ """ Return the denominator if `self` is rational.
+
+ >>> Numeral("2/3").denominator()
+ 3
+ """
+ assert(self.is_rational())
+ return Numeral(Z3_get_denominator(self.ctx_ref(), self.as_ast()), self.ctx)
+
+ def numerator(self):
+ """ Return the numerator if `self` is rational.
+
+ >>> Numeral("2/3").numerator()
+ 2
+ """
+ assert(self.is_rational())
+ return Numeral(Z3_get_numerator(self.ctx_ref(), self.as_ast()), self.ctx)
+
+
+ def is_irrational(self):
+ """ Return True if the numeral is irrational.
+
+ >>> Numeral(2).is_irrational()
+ False
+ >>> Numeral("2/3").is_irrational()
+ False
+ >>> Numeral(Sqrt(2)).is_irrational()
+ True
+ """
+ return not self.is_rational()
+
+ def as_long(self):
+ """ Return a numeral (that is an integer) as a Python long.
+
+ """
+ assert(self.is_integer())
+ if sys.version_info[0] >= 3:
+ return int(Z3_get_numeral_string(self.ctx_ref(), self.as_ast()))
+ else:
+ return long(Z3_get_numeral_string(self.ctx_ref(), self.as_ast()))
+
+ def as_fraction(self):
+ """ Return a numeral (that is a rational) as a Python Fraction.
+ >>> Numeral("1/5").as_fraction()
+ Fraction(1, 5)
+ """
+ assert(self.is_rational())
+ return Fraction(self.numerator().as_long(), self.denominator().as_long())
+
+ def approx(self, precision=10):
+ """Return a numeral that approximates the numeral `self`.
+ The result `r` is such that |r - self| <= 1/10^precision
+
+ If `self` is rational, then the result is `self`.
+
+ >>> x = Numeral(2).root(2)
+ >>> x.approx(20)
+ 6838717160008073720548335/4835703278458516698824704
+ >>> x.approx(5)
+ 2965821/2097152
+ >>> Numeral(2).approx(10)
+ 2
+ """
+ return self.upper(precision)
+
+ def upper(self, precision=10):
+ """Return a upper bound that approximates the numeral `self`.
+ The result `r` is such that r - self <= 1/10^precision
+
+ If `self` is rational, then the result is `self`.
+
+ >>> x = Numeral(2).root(2)
+ >>> x.upper(20)
+ 6838717160008073720548335/4835703278458516698824704
+ >>> x.upper(5)
+ 2965821/2097152
+ >>> Numeral(2).upper(10)
+ 2
+ """
+ if self.is_rational():
+ return self
+ else:
+ return Numeral(Z3_get_algebraic_number_upper(self.ctx_ref(), self.as_ast(), precision), self.ctx)
+
+ def lower(self, precision=10):
+ """Return a lower bound that approximates the numeral `self`.
+ The result `r` is such that self - r <= 1/10^precision
+
+ If `self` is rational, then the result is `self`.
+
+ >>> x = Numeral(2).root(2)
+ >>> x.lower(20)
+ 1709679290002018430137083/1208925819614629174706176
+ >>> Numeral("2/3").lower(10)
+ 2/3
+ """
+ if self.is_rational():
+ return self
+ else:
+ return Numeral(Z3_get_algebraic_number_lower(self.ctx_ref(), self.as_ast(), precision), self.ctx)
+
+ def sign(self):
+ """ Return the sign of the numeral.
+
+ >>> Numeral(2).sign()
+ 1
+ >>> Numeral(-3).sign()
+ -1
+ >>> Numeral(0).sign()
+ 0
+ """
+ return Z3_algebraic_sign(self.ctx_ref(), self.ast)
+
+ def is_pos(self):
+ """ Return True if the numeral is positive.
+
+ >>> Numeral(2).is_pos()
+ True
+ >>> Numeral(-3).is_pos()
+ False
+ >>> Numeral(0).is_pos()
+ False
+ """
+ return Z3_algebraic_is_pos(self.ctx_ref(), self.ast)
+
+ def is_neg(self):
+ """ Return True if the numeral is negative.
+
+ >>> Numeral(2).is_neg()
+ False
+ >>> Numeral(-3).is_neg()
+ True
+ >>> Numeral(0).is_neg()
+ False
+ """
+ return Z3_algebraic_is_neg(self.ctx_ref(), self.ast)
+
+ def is_zero(self):
+ """ Return True if the numeral is zero.
+
+ >>> Numeral(2).is_zero()
+ False
+ >>> Numeral(-3).is_zero()
+ False
+ >>> Numeral(0).is_zero()
+ True
+ >>> sqrt2 = Numeral(2).root(2)
+ >>> sqrt2.is_zero()
+ False
+ >>> (sqrt2 - sqrt2).is_zero()
+ True
+ """
+ return Z3_algebraic_is_zero(self.ctx_ref(), self.ast)
+
+ def __add__(self, other):
+ """ Return the numeral `self + other`.
+
+ >>> Numeral(2) + 3
+ 5
+ >>> Numeral(2) + Numeral(4)
+ 6
+ >>> Numeral("2/3") + 1
+ 5/3
+ """
+ return Numeral(Z3_algebraic_add(self.ctx_ref(), self.ast, _to_numeral(other, self.ctx).ast), self.ctx)
+
+ def __radd__(self, other):
+ """ Return the numeral `other + self`.
+
+ >>> 3 + Numeral(2)
+ 5
+ """
+ return Numeral(Z3_algebraic_add(self.ctx_ref(), self.ast, _to_numeral(other, self.ctx).ast), self.ctx)
+
+ def __sub__(self, other):
+ """ Return the numeral `self - other`.
+
+ >>> Numeral(2) - 3
+ -1
+ """
+ return Numeral(Z3_algebraic_sub(self.ctx_ref(), self.ast, _to_numeral(other, self.ctx).ast), self.ctx)
+
+ def __rsub__(self, other):
+ """ Return the numeral `other - self`.
+
+ >>> 3 - Numeral(2)
+ 1
+ """
+ return Numeral(Z3_algebraic_sub(self.ctx_ref(), _to_numeral(other, self.ctx).ast, self.ast), self.ctx)
+
+ def __mul__(self, other):
+ """ Return the numeral `self * other`.
+ >>> Numeral(2) * 3
+ 6
+ """
+ return Numeral(Z3_algebraic_mul(self.ctx_ref(), self.ast, _to_numeral(other, self.ctx).ast), self.ctx)
+
+ def __rmul__(self, other):
+ """ Return the numeral `other * mul`.
+ >>> 3 * Numeral(2)
+ 6
+ """
+ return Numeral(Z3_algebraic_mul(self.ctx_ref(), self.ast, _to_numeral(other, self.ctx).ast), self.ctx)
+
+ def __div__(self, other):
+ """ Return the numeral `self / other`.
+ >>> Numeral(2) / 3
+ 2/3
+ >>> Numeral(2).root(2) / 3
+ 0.4714045207?
+ >>> Numeral(Sqrt(2)) / Numeral(Sqrt(3))
+ 0.8164965809?
+ """
+ return Numeral(Z3_algebraic_div(self.ctx_ref(), self.ast, _to_numeral(other, self.ctx).ast), self.ctx)
+
+ def __truediv__(self, other):
+ return self.__div__(other)
+
+ def __rdiv__(self, other):
+ """ Return the numeral `other / self`.
+ >>> 3 / Numeral(2)
+ 3/2
+ >>> 3 / Numeral(2).root(2)
+ 2.1213203435?
+ """
+ return Numeral(Z3_algebraic_div(self.ctx_ref(), _to_numeral(other, self.ctx).ast, self.ast), self.ctx)
+
+ def __rtruediv__(self, other):
+ return self.__rdiv__(other)
+
+ def root(self, k):
+ """ Return the numeral `self^(1/k)`.
+
+ >>> sqrt2 = Numeral(2).root(2)
+ >>> sqrt2
+ 1.4142135623?
+ >>> sqrt2 * sqrt2
+ 2
+ >>> sqrt2 * 2 + 1
+ 3.8284271247?
+ >>> (sqrt2 * 2 + 1).sexpr()
+ '(root-obj (+ (^ x 2) (* (- 2) x) (- 7)) 2)'
+ """
+ return Numeral(Z3_algebraic_root(self.ctx_ref(), self.ast, k), self.ctx)
+
+ def power(self, k):
+ """ Return the numeral `self^k`.
+
+ >>> sqrt3 = Numeral(3).root(2)
+ >>> sqrt3
+ 1.7320508075?
+ >>> sqrt3.power(2)
+ 3
+ """
+ return Numeral(Z3_algebraic_power(self.ctx_ref(), self.ast, k), self.ctx)
+
+ def __pow__(self, k):
+ """ Return the numeral `self^k`.
+
+ >>> sqrt3 = Numeral(3).root(2)
+ >>> sqrt3
+ 1.7320508075?
+ >>> sqrt3**2
+ 3
+ """
+ return self.power(k)
+
+ def __lt__(self, other):
+ """ Return True if `self < other`.
+
+ >>> Numeral(Sqrt(2)) < 2
+ True
+ >>> Numeral(Sqrt(3)) < Numeral(Sqrt(2))
+ False
+ >>> Numeral(Sqrt(2)) < Numeral(Sqrt(2))
+ False
+ """
+ return Z3_algebraic_lt(self.ctx_ref(), self.ast, _to_numeral(other, self.ctx).ast)
+
+ def __rlt__(self, other):
+ """ Return True if `other < self`.
+
+ >>> 2 < Numeral(Sqrt(2))
+ False
+ """
+ return self > other
+
+ def __gt__(self, other):
+ """ Return True if `self > other`.
+
+ >>> Numeral(Sqrt(2)) > 2
+ False
+ >>> Numeral(Sqrt(3)) > Numeral(Sqrt(2))
+ True
+ >>> Numeral(Sqrt(2)) > Numeral(Sqrt(2))
+ False
+ """
+ return Z3_algebraic_gt(self.ctx_ref(), self.ast, _to_numeral(other, self.ctx).ast)
+
+ def __rgt__(self, other):
+ """ Return True if `other > self`.
+
+ >>> 2 > Numeral(Sqrt(2))
+ True
+ """
+ return self < other
+
+
+ def __le__(self, other):
+ """ Return True if `self <= other`.
+
+ >>> Numeral(Sqrt(2)) <= 2
+ True
+ >>> Numeral(Sqrt(3)) <= Numeral(Sqrt(2))
+ False
+ >>> Numeral(Sqrt(2)) <= Numeral(Sqrt(2))
+ True
+ """
+ return Z3_algebraic_le(self.ctx_ref(), self.ast, _to_numeral(other, self.ctx).ast)
+
+ def __rle__(self, other):
+ """ Return True if `other <= self`.
+
+ >>> 2 <= Numeral(Sqrt(2))
+ False
+ """
+ return self >= other
+
+ def __ge__(self, other):
+ """ Return True if `self >= other`.
+
+ >>> Numeral(Sqrt(2)) >= 2
+ False
+ >>> Numeral(Sqrt(3)) >= Numeral(Sqrt(2))
+ True
+ >>> Numeral(Sqrt(2)) >= Numeral(Sqrt(2))
+ True
+ """
+ return Z3_algebraic_ge(self.ctx_ref(), self.ast, _to_numeral(other, self.ctx).ast)
+
+ def __rge__(self, other):
+ """ Return True if `other >= self`.
+
+ >>> 2 >= Numeral(Sqrt(2))
+ True
+ """
+ return self <= other
+
+ def __eq__(self, other):
+ """ Return True if `self == other`.
+
+ >>> Numeral(Sqrt(2)) == 2
+ False
+ >>> Numeral(Sqrt(3)) == Numeral(Sqrt(2))
+ False
+ >>> Numeral(Sqrt(2)) == Numeral(Sqrt(2))
+ True
+ """
+ return Z3_algebraic_eq(self.ctx_ref(), self.ast, _to_numeral(other, self.ctx).ast)
+
+ def __ne__(self, other):
+ """ Return True if `self != other`.
+
+ >>> Numeral(Sqrt(2)) != 2
+ True
+ >>> Numeral(Sqrt(3)) != Numeral(Sqrt(2))
+ True
+ >>> Numeral(Sqrt(2)) != Numeral(Sqrt(2))
+ False
+ """
+ return Z3_algebraic_neq(self.ctx_ref(), self.ast, _to_numeral(other, self.ctx).ast)
+
+ def __str__(self):
+ if Z3_is_numeral_ast(self.ctx_ref(), self.ast):
+ return str(RatNumRef(self.ast, self.ctx))
+ else:
+ return str(AlgebraicNumRef(self.ast, self.ctx))
+
+ def __repr__(self):
+ return self.__str__()
+
+ def sexpr(self):
+ return Z3_ast_to_string(self.ctx_ref(), self.as_ast())
+
+ def as_ast(self):
+ return self.ast
+
+ def ctx_ref(self):
+ return self.ctx.ref()
+
+def eval_sign_at(p, vs):
+ """
+ Evaluate the sign of the polynomial `p` at `vs`. `p` is a Z3
+ Expression containing arithmetic operators: +, -, *, ^k where k is
+ an integer; and free variables x that is_var(x) is True. Moreover,
+ all variables must be real.
+
+ The result is 1 if the polynomial is positive at the given point,
+ -1 if negative, and 0 if zero.
+
+ >>> x0, x1, x2 = RealVarVector(3)
+ >>> eval_sign_at(x0**2 + x1*x2 + 1, (Numeral(0), Numeral(1), Numeral(2)))
+ 1
+ >>> eval_sign_at(x0**2 - 2, [ Numeral(Sqrt(2)) ])
+ 0
+ >>> eval_sign_at((x0 + x1)*(x0 + x2), (Numeral(0), Numeral(Sqrt(2)), Numeral(Sqrt(3))))
+ 1
+ """
+ num = len(vs)
+ _vs = (Ast * num)()
+ for i in range(num):
+ _vs[i] = vs[i].ast
+ return Z3_algebraic_eval(p.ctx_ref(), p.as_ast(), num, _vs)
+
+def isolate_roots(p, vs=[]):
+ """
+ Given a multivariate polynomial p(x_0, ..., x_{n-1}, x_n), returns the
+ roots of the univariate polynomial p(vs[0], ..., vs[len(vs)-1], x_n).
+
+ Remarks:
+ * p is a Z3 expression that contains only arithmetic terms and free variables.
+ * forall i in [0, n) vs is a numeral.
+
+ The result is a list of numerals
+
+ >>> x0 = RealVar(0)
+ >>> isolate_roots(x0**5 - x0 - 1)
+ [1.1673039782?]
+ >>> x1 = RealVar(1)
+ >>> isolate_roots(x0**2 - x1**4 - 1, [ Numeral(Sqrt(3)) ])
+ [-1.1892071150?, 1.1892071150?]
+ >>> x2 = RealVar(2)
+ >>> isolate_roots(x2**2 + x0 - x1, [ Numeral(Sqrt(3)), Numeral(Sqrt(2)) ])
+ []
+ """
+ num = len(vs)
+ _vs = (Ast * num)()
+ for i in range(num):
+ _vs[i] = vs[i].ast
+ _roots = AstVector(Z3_algebraic_roots(p.ctx_ref(), p.as_ast(), num, _vs), p.ctx)
+ return [ Numeral(r) for r in _roots ]
+
diff --git a/rba.tool.editor.endpoint/lib/windows/z3/python/z3/z3poly.py b/rba.tool.editor.endpoint/lib/windows/z3/python/z3/z3poly.py
new file mode 100644
index 0000000..1699442
--- /dev/null
+++ b/rba.tool.editor.endpoint/lib/windows/z3/python/z3/z3poly.py
@@ -0,0 +1,35 @@
+############################################
+# Copyright (c) 2012 Microsoft Corporation
+#
+# Z3 Python interface for Z3 polynomials
+#
+# Author: Leonardo de Moura (leonardo)
+############################################
+
+from .z3 import *
+
+def subresultants(p, q, x):
+ """
+ Return the non-constant subresultants of 'p' and 'q' with respect to the "variable" 'x'.
+
+ 'p', 'q' and 'x' are Z3 expressions where 'p' and 'q' are arithmetic terms.
+ Note that, any subterm that cannot be viewed as a polynomial is assumed to be a variable.
+ Example: f(a) is a considered to be a variable b in the polynomial
+
+ f(a)*f(a) + 2*f(a) + 1
+
+ >>> x, y = Reals('x y')
+ >>> subresultants(2*x + y, 3*x - 2*y + 2, x)
+ [-7*y + 4]
+ >>> r = subresultants(3*y*x**2 + y**3 + 1, 2*x**3 + y + 3, x)
+ >>> r[0]
+ 4*y**9 + 12*y**6 + 27*y**5 + 162*y**4 + 255*y**3 + 4
+ >>> r[1]
+ -6*y**4 + -6*y
+ """
+ return AstVector(Z3_polynomial_subresultants(p.ctx_ref(), p.as_ast(), q.as_ast(), x.as_ast()), p.ctx)
+
+if __name__ == "__main__":
+ import doctest
+ if doctest.testmod().failed:
+ exit(1)
diff --git a/rba.tool.editor.endpoint/lib/windows/z3/python/z3/z3printer.py b/rba.tool.editor.endpoint/lib/windows/z3/python/z3/z3printer.py
new file mode 100644
index 0000000..2e3a528
--- /dev/null
+++ b/rba.tool.editor.endpoint/lib/windows/z3/python/z3/z3printer.py
@@ -0,0 +1,1253 @@
+############################################
+# Copyright (c) 2012 Microsoft Corporation
+#
+# Z3 Python interface
+#
+# Author: Leonardo de Moura (leonardo)
+############################################
+import sys, io, z3
+from .z3consts import *
+from .z3core import *
+from ctypes import *
+
+def _z3_assert(cond, msg):
+ if not cond:
+ raise Z3Exception(msg)
+
+##############################
+#
+# Configuration
+#
+##############################
+
+# Z3 operator names to Z3Py
+_z3_op_to_str = {
+ Z3_OP_TRUE : 'True', Z3_OP_FALSE : 'False', Z3_OP_EQ : '==', Z3_OP_DISTINCT : 'Distinct',
+ Z3_OP_ITE : 'If', Z3_OP_AND : 'And', Z3_OP_OR : 'Or', Z3_OP_IFF : '==', Z3_OP_XOR : 'Xor',
+ Z3_OP_NOT : 'Not', Z3_OP_IMPLIES : 'Implies', Z3_OP_IDIV : '/', Z3_OP_MOD : '%',
+ Z3_OP_TO_REAL : 'ToReal', Z3_OP_TO_INT : 'ToInt', Z3_OP_POWER : '**', Z3_OP_IS_INT : 'IsInt',
+ Z3_OP_BADD : '+', Z3_OP_BSUB : '-', Z3_OP_BMUL : '*', Z3_OP_BOR : '|', Z3_OP_BAND : '&',
+ Z3_OP_BNOT : '~', Z3_OP_BXOR : '^', Z3_OP_BNEG : '-', Z3_OP_BUDIV : 'UDiv', Z3_OP_BSDIV : '/', Z3_OP_BSMOD : '%',
+ Z3_OP_BSREM : 'SRem', Z3_OP_BUREM : 'URem', Z3_OP_EXT_ROTATE_LEFT : 'RotateLeft', Z3_OP_EXT_ROTATE_RIGHT : 'RotateRight',
+ Z3_OP_SLEQ : '<=', Z3_OP_SLT : '<', Z3_OP_SGEQ : '>=', Z3_OP_SGT : '>',
+ Z3_OP_ULEQ : 'ULE', Z3_OP_ULT : 'ULT', Z3_OP_UGEQ : 'UGE', Z3_OP_UGT : 'UGT',
+ Z3_OP_SIGN_EXT : 'SignExt', Z3_OP_ZERO_EXT : 'ZeroExt', Z3_OP_REPEAT : 'RepeatBitVec',
+ Z3_OP_BASHR : '>>', Z3_OP_BSHL : '<<', Z3_OP_BLSHR : 'LShR',
+ Z3_OP_CONCAT : 'Concat', Z3_OP_EXTRACT : 'Extract', Z3_OP_BV2INT : 'BV2Int',
+ Z3_OP_ARRAY_MAP : 'Map', Z3_OP_SELECT : 'Select', Z3_OP_STORE : 'Store',
+ Z3_OP_CONST_ARRAY : 'K', Z3_OP_ARRAY_EXT : 'Ext',
+ Z3_OP_PB_AT_MOST : 'AtMost', Z3_OP_PB_LE : 'PbLe', Z3_OP_PB_GE : 'PbGe'
+ }
+
+# List of infix operators
+_z3_infix = [
+ Z3_OP_EQ, Z3_OP_IFF, Z3_OP_ADD, Z3_OP_SUB, Z3_OP_MUL, Z3_OP_DIV, Z3_OP_IDIV, Z3_OP_MOD, Z3_OP_POWER,
+ Z3_OP_LE, Z3_OP_LT, Z3_OP_GE, Z3_OP_GT, Z3_OP_BADD, Z3_OP_BSUB, Z3_OP_BMUL, Z3_OP_BSDIV, Z3_OP_BSMOD, Z3_OP_BOR, Z3_OP_BAND,
+ Z3_OP_BXOR, Z3_OP_BSDIV, Z3_OP_SLEQ, Z3_OP_SLT, Z3_OP_SGEQ, Z3_OP_SGT, Z3_OP_BASHR, Z3_OP_BSHL
+ ]
+
+_z3_unary = [ Z3_OP_UMINUS, Z3_OP_BNOT, Z3_OP_BNEG ]
+
+# Precedence
+_z3_precedence = {
+ Z3_OP_POWER : 0,
+ Z3_OP_UMINUS : 1, Z3_OP_BNEG : 1, Z3_OP_BNOT : 1,
+ Z3_OP_MUL : 2, Z3_OP_DIV : 2, Z3_OP_IDIV : 2, Z3_OP_MOD : 2, Z3_OP_BMUL : 2, Z3_OP_BSDIV : 2, Z3_OP_BSMOD : 2,
+ Z3_OP_ADD : 3, Z3_OP_SUB : 3, Z3_OP_BADD : 3, Z3_OP_BSUB : 3,
+ Z3_OP_BASHR : 4, Z3_OP_BSHL : 4,
+ Z3_OP_BAND : 5,
+ Z3_OP_BXOR : 6,
+ Z3_OP_BOR : 7,
+ Z3_OP_LE : 8, Z3_OP_LT : 8, Z3_OP_GE : 8, Z3_OP_GT : 8, Z3_OP_EQ : 8, Z3_OP_SLEQ : 8, Z3_OP_SLT : 8, Z3_OP_SGEQ : 8, Z3_OP_SGT : 8,
+ Z3_OP_IFF : 8,
+
+ Z3_OP_FPA_NEG : 1,
+ Z3_OP_FPA_MUL : 2, Z3_OP_FPA_DIV : 2, Z3_OP_FPA_REM : 2, Z3_OP_FPA_FMA : 2,
+ Z3_OP_FPA_ADD: 3, Z3_OP_FPA_SUB : 3,
+ Z3_OP_FPA_LE : 8, Z3_OP_FPA_LT : 8, Z3_OP_FPA_GE : 8, Z3_OP_FPA_GT : 8, Z3_OP_FPA_EQ : 8
+ }
+
+# FPA operators
+_z3_op_to_fpa_normal_str = {
+ Z3_OP_FPA_RM_NEAREST_TIES_TO_EVEN : 'RoundNearestTiesToEven()', Z3_OP_FPA_RM_NEAREST_TIES_TO_AWAY : 'RoundNearestTiesToAway()',
+ Z3_OP_FPA_RM_TOWARD_POSITIVE : 'RoundTowardPositive()', Z3_OP_FPA_RM_TOWARD_NEGATIVE : 'RoundTowardNegative()',
+ Z3_OP_FPA_RM_TOWARD_ZERO : 'RoundTowardZero()',
+ Z3_OP_FPA_PLUS_INF : 'fpPlusInfinity', Z3_OP_FPA_MINUS_INF : 'fpMinusInfinity',
+ Z3_OP_FPA_NAN : 'fpNaN', Z3_OP_FPA_PLUS_ZERO : 'fpPZero', Z3_OP_FPA_MINUS_ZERO : 'fpNZero',
+ Z3_OP_FPA_ADD : 'fpAdd', Z3_OP_FPA_SUB : 'fpSub', Z3_OP_FPA_NEG : 'fpNeg', Z3_OP_FPA_MUL : 'fpMul',
+ Z3_OP_FPA_DIV : 'fpDiv', Z3_OP_FPA_REM : 'fpRem', Z3_OP_FPA_ABS : 'fpAbs',
+ Z3_OP_FPA_MIN : 'fpMin', Z3_OP_FPA_MAX : 'fpMax',
+ Z3_OP_FPA_FMA : 'fpFMA', Z3_OP_FPA_SQRT : 'fpSqrt', Z3_OP_FPA_ROUND_TO_INTEGRAL : 'fpRoundToIntegral',
+
+ Z3_OP_FPA_EQ : 'fpEQ', Z3_OP_FPA_LT : 'fpLT', Z3_OP_FPA_GT : 'fpGT', Z3_OP_FPA_LE : 'fpLEQ',
+ Z3_OP_FPA_GE : 'fpGEQ',
+
+ Z3_OP_FPA_IS_NAN : 'fpIsNaN', Z3_OP_FPA_IS_INF : 'fpIsInf', Z3_OP_FPA_IS_ZERO : 'fpIsZero',
+ Z3_OP_FPA_IS_NORMAL : 'fpIsNormal', Z3_OP_FPA_IS_SUBNORMAL : 'fpIsSubnormal',
+ Z3_OP_FPA_IS_NEGATIVE : 'fpIsNegative', Z3_OP_FPA_IS_POSITIVE : 'fpIsPositive',
+
+ Z3_OP_FPA_FP : 'fpFP', Z3_OP_FPA_TO_FP : 'fpToFP', Z3_OP_FPA_TO_FP_UNSIGNED: 'fpToFPUnsigned',
+ Z3_OP_FPA_TO_UBV : 'fpToUBV', Z3_OP_FPA_TO_SBV : 'fpToSBV', Z3_OP_FPA_TO_REAL: 'fpToReal',
+ Z3_OP_FPA_TO_IEEE_BV : 'fpToIEEEBV'
+ }
+
+_z3_op_to_fpa_pretty_str = {
+ Z3_OP_FPA_RM_NEAREST_TIES_TO_EVEN : 'RNE()', Z3_OP_FPA_RM_NEAREST_TIES_TO_AWAY : 'RNA()',
+ Z3_OP_FPA_RM_TOWARD_POSITIVE : 'RTP()', Z3_OP_FPA_RM_TOWARD_NEGATIVE : 'RTN()',
+ Z3_OP_FPA_RM_TOWARD_ZERO : 'RTZ()',
+ Z3_OP_FPA_PLUS_INF : '+oo', Z3_OP_FPA_MINUS_INF : '-oo',
+ Z3_OP_FPA_NAN : 'NaN', Z3_OP_FPA_PLUS_ZERO : '+0.0', Z3_OP_FPA_MINUS_ZERO : '-0.0',
+
+ Z3_OP_FPA_ADD : '+', Z3_OP_FPA_SUB : '-', Z3_OP_FPA_MUL : '*', Z3_OP_FPA_DIV : '/',
+ Z3_OP_FPA_REM : '%', Z3_OP_FPA_NEG : '-',
+
+ Z3_OP_FPA_EQ : 'fpEQ', Z3_OP_FPA_LT : '<', Z3_OP_FPA_GT : '>', Z3_OP_FPA_LE : '<=', Z3_OP_FPA_GE : '>='
+}
+
+_z3_fpa_infix = [
+ Z3_OP_FPA_ADD, Z3_OP_FPA_SUB, Z3_OP_FPA_MUL, Z3_OP_FPA_DIV, Z3_OP_FPA_REM,
+ Z3_OP_FPA_LT, Z3_OP_FPA_GT, Z3_OP_FPA_LE, Z3_OP_FPA_GE
+]
+
+def _is_assoc(k):
+ return k == Z3_OP_BOR or k == Z3_OP_BXOR or k == Z3_OP_BAND or k == Z3_OP_ADD or k == Z3_OP_BADD or k == Z3_OP_MUL or k == Z3_OP_BMUL
+
+def _is_left_assoc(k):
+ return _is_assoc(k) or k == Z3_OP_SUB or k == Z3_OP_BSUB
+
+def _is_html_assoc(k):
+ return k == Z3_OP_AND or k == Z3_OP_OR or k == Z3_OP_IFF or _is_assoc(k)
+
+def _is_html_left_assoc(k):
+ return _is_html_assoc(k) or k == Z3_OP_SUB or k == Z3_OP_BSUB
+
+def _is_add(k):
+ return k == Z3_OP_ADD or k == Z3_OP_BADD
+
+def _is_sub(k):
+ return k == Z3_OP_SUB or k == Z3_OP_BSUB
+
+import sys
+if sys.version < '3':
+ import codecs
+ def u(x):
+ return codecs.unicode_escape_decode(x)[0]
+else:
+ def u(x):
+ return x
+
+_z3_infix_compact = [ Z3_OP_MUL, Z3_OP_BMUL, Z3_OP_POWER, Z3_OP_DIV, Z3_OP_IDIV, Z3_OP_MOD, Z3_OP_BSDIV, Z3_OP_BSMOD ]
+
+_ellipses = '...'
+
+_html_ellipses = '&hellip;'
+# Overwrite some of the operators for HTML
+_z3_pre_html_op_to_str = { Z3_OP_EQ : '=', Z3_OP_IFF : '=', Z3_OP_NOT : '&not;',
+ Z3_OP_AND : '&and;', Z3_OP_OR : '&or;', Z3_OP_IMPLIES : '&rArr;',
+ Z3_OP_LT : '&lt;', Z3_OP_GT : '&gt;', Z3_OP_LE : '&le;', Z3_OP_GE : '&ge;',
+ Z3_OP_MUL : '&middot;',
+ Z3_OP_SLEQ : '&le;', Z3_OP_SLT : '&lt;', Z3_OP_SGEQ : '&ge;', Z3_OP_SGT : '&gt;',
+ Z3_OP_ULEQ : '&le;<sub>u</sub>', Z3_OP_ULT : '&lt;<sub>u</sub>',
+ Z3_OP_UGEQ : '&ge;<sub>u</sub>', Z3_OP_UGT : '&gt;<sub>u</sub>',
+ Z3_OP_BMUL : '&middot;',
+ Z3_OP_BUDIV : '/<sub>u</sub>', Z3_OP_BUREM : '%<sub>u</sub>',
+ Z3_OP_BASHR : '&gt;&gt;', Z3_OP_BSHL : '&lt;&lt;',
+ Z3_OP_BLSHR : '&gt;&gt;<sub>u</sub>'
+ }
+
+# Extra operators that are infix/unary for HTML
+_z3_html_infix = [ Z3_OP_AND, Z3_OP_OR, Z3_OP_IMPLIES,
+ Z3_OP_ULEQ, Z3_OP_ULT, Z3_OP_UGEQ, Z3_OP_UGT, Z3_OP_BUDIV, Z3_OP_BUREM, Z3_OP_BLSHR
+ ]
+
+_z3_html_unary = [ Z3_OP_NOT ]
+
+# Extra Precedence for HTML
+_z3_pre_html_precedence = { Z3_OP_BUDIV : 2, Z3_OP_BUREM : 2,
+ Z3_OP_BLSHR : 4,
+ Z3_OP_ULEQ : 8, Z3_OP_ULT : 8,
+ Z3_OP_UGEQ : 8, Z3_OP_UGT : 8,
+ Z3_OP_ULEQ : 8, Z3_OP_ULT : 8,
+ Z3_OP_UGEQ : 8, Z3_OP_UGT : 8,
+ Z3_OP_NOT : 1,
+ Z3_OP_AND : 10,
+ Z3_OP_OR : 11,
+ Z3_OP_IMPLIES : 12 }
+
+##############################
+#
+# End of Configuration
+#
+##############################
+
+def _support_pp(a):
+ return isinstance(a, z3.Z3PPObject) or isinstance(a, list) or isinstance(a, tuple)
+
+_infix_map = {}
+_unary_map = {}
+_infix_compact_map = {}
+
+for _k in _z3_infix:
+ _infix_map[_k] = True
+for _k in _z3_unary:
+ _unary_map[_k] = True
+
+for _k in _z3_infix_compact:
+ _infix_compact_map[_k] = True
+
+def _is_infix(k):
+ global _infix_map
+ return _infix_map.get(k, False)
+
+def _is_infix_compact(k):
+ global _infix_compact_map
+ return _infix_compact_map.get(k, False)
+
+def _is_unary(k):
+ global _unary_map
+ return _unary_map.get(k, False)
+
+def _op_name(a):
+ if isinstance(a, z3.FuncDeclRef):
+ f = a
+ else:
+ f = a.decl()
+ k = f.kind()
+ n = _z3_op_to_str.get(k, None)
+ if n == None:
+ return f.name()
+ else:
+ return n
+
+def _get_precedence(k):
+ global _z3_precedence
+ return _z3_precedence.get(k, 100000)
+
+_z3_html_op_to_str = {}
+for _k in _z3_op_to_str:
+ _v = _z3_op_to_str[_k]
+ _z3_html_op_to_str[_k] = _v
+for _k in _z3_pre_html_op_to_str:
+ _v = _z3_pre_html_op_to_str[_k]
+ _z3_html_op_to_str[_k] = _v
+
+_z3_html_precedence = {}
+for _k in _z3_precedence:
+ _v = _z3_precedence[_k]
+ _z3_html_precedence[_k] = _v
+for _k in _z3_pre_html_precedence:
+ _v = _z3_pre_html_precedence[_k]
+ _z3_html_precedence[_k] = _v
+
+_html_infix_map = {}
+_html_unary_map = {}
+for _k in _z3_infix:
+ _html_infix_map[_k] = True
+for _k in _z3_html_infix:
+ _html_infix_map[_k] = True
+for _k in _z3_unary:
+ _html_unary_map[_k] = True
+for _k in _z3_html_unary:
+ _html_unary_map[_k] = True
+
+def _is_html_infix(k):
+ global _html_infix_map
+ return _html_infix_map.get(k, False)
+
+def _is_html_unary(k):
+ global _html_unary_map
+ return _html_unary_map.get(k, False)
+
+def _html_op_name(a):
+ global _z3_html_op_to_str
+ if isinstance(a, z3.FuncDeclRef):
+ f = a
+ else:
+ f = a.decl()
+ k = f.kind()
+ n = _z3_html_op_to_str.get(k, None)
+ if n == None:
+ sym = Z3_get_decl_name(f.ctx_ref(), f.ast)
+ if Z3_get_symbol_kind(f.ctx_ref(), sym) == Z3_INT_SYMBOL:
+ return "&#950;<sub>%s</sub>" % Z3_get_symbol_int(f.ctx_ref(), sym)
+ else:
+ # Sanitize the string
+ return f.name()
+ else:
+ return n
+
+def _get_html_precedence(k):
+ global _z3_html_predence
+ return _z3_html_precedence.get(k, 100000)
+
+class FormatObject:
+ def is_compose(self):
+ return False
+ def is_choice(self):
+ return False
+ def is_indent(self):
+ return False
+ def is_string(self):
+ return False
+ def is_linebreak(self):
+ return False
+ def is_nil(self):
+ return True
+ def children(self):
+ return []
+ def as_tuple(self):
+ return None
+ def space_upto_nl(self):
+ return (0, False)
+ def flat(self):
+ return self
+
+class NAryFormatObject(FormatObject):
+ def __init__(self, fs):
+ assert all([isinstance(a, FormatObject) for a in fs])
+ self.children = fs
+ def children(self):
+ return self.children
+
+class ComposeFormatObject(NAryFormatObject):
+ def is_compose(sef):
+ return True
+ def as_tuple(self):
+ return ('compose', [ a.as_tuple() for a in self.children ])
+ def space_upto_nl(self):
+ r = 0
+ for child in self.children:
+ s, nl = child.space_upto_nl()
+ r = r + s
+ if nl:
+ return (r, True)
+ return (r, False)
+ def flat(self):
+ return compose([a.flat() for a in self.children ])
+
+class ChoiceFormatObject(NAryFormatObject):
+ def is_choice(sef):
+ return True
+ def as_tuple(self):
+ return ('choice', [ a.as_tuple() for a in self.children ])
+ def space_upto_nl(self):
+ return self.children[0].space_upto_nl()
+ def flat(self):
+ return self.children[0].flat()
+
+class IndentFormatObject(FormatObject):
+ def __init__(self, indent, child):
+ assert isinstance(child, FormatObject)
+ self.indent = indent
+ self.child = child
+ def children(self):
+ return [self.child]
+ def as_tuple(self):
+ return ('indent', self.indent, self.child.as_tuple())
+ def space_upto_nl(self):
+ return self.child.space_upto_nl()
+ def flat(self):
+ return indent(self.indent, self.child.flat())
+ def is_indent(self):
+ return True
+
+class LineBreakFormatObject(FormatObject):
+ def __init__(self):
+ self.space = ' '
+ def is_linebreak(self):
+ return True
+ def as_tuple(self):
+ return '<line-break>'
+ def space_upto_nl(self):
+ return (0, True)
+ def flat(self):
+ return to_format(self.space)
+
+class StringFormatObject(FormatObject):
+ def __init__(self, string):
+ assert isinstance(string, str)
+ self.string = string
+ def is_string(self):
+ return True
+ def as_tuple(self):
+ return self.string
+ def space_upto_nl(self):
+ return (getattr(self, 'size', len(self.string)), False)
+
+def fits(f, space_left):
+ s, nl = f.space_upto_nl()
+ return s <= space_left
+
+def to_format(arg, size=None):
+ if isinstance(arg, FormatObject):
+ return arg
+ else:
+ r = StringFormatObject(str(arg))
+ if size != None:
+ r.size = size
+ return r
+
+def compose(*args):
+ if len(args) == 1 and (isinstance(args[0], list) or isinstance(args[0], tuple)):
+ args = args[0]
+ return ComposeFormatObject(args)
+
+def indent(i, arg):
+ return IndentFormatObject(i, arg)
+
+def group(arg):
+ return ChoiceFormatObject([arg.flat(), arg])
+
+def line_break():
+ return LineBreakFormatObject()
+
+def _len(a):
+ if isinstance(a, StringFormatObject):
+ return getattr(a, 'size', len(a.string))
+ else:
+ return len(a)
+
+def seq(args, sep=',', space=True):
+ nl = line_break()
+ if not space:
+ nl.space = ''
+ r = []
+ r.append(args[0])
+ num = len(args)
+ for i in range(num - 1):
+ r.append(to_format(sep))
+ r.append(nl)
+ r.append(args[i+1])
+ return compose(r)
+
+def seq1(header, args, lp='(', rp=')'):
+ return group(compose(to_format(header),
+ to_format(lp),
+ indent(len(lp) + _len(header),
+ seq(args)),
+ to_format(rp)))
+
+def seq2(header, args, i=4, lp='(', rp=')'):
+ if len(args) == 0:
+ return compose(to_format(header), to_format(lp), to_format(rp))
+ else:
+ return group(compose(indent(len(lp), compose(to_format(lp), to_format(header))),
+ indent(i, compose(seq(args), to_format(rp)))))
+
+def seq3(args, lp='(', rp=')'):
+ if len(args) == 0:
+ return compose(to_format(lp), to_format(rp))
+ else:
+ return group(indent(len(lp), compose(to_format(lp), seq(args), to_format(rp))))
+
+class StopPPException(Exception):
+ def __str__(self):
+ return 'pp-interrupted'
+
+class PP:
+ def __init__(self):
+ self.max_lines = 200
+ self.max_width = 60
+ self.bounded = False
+ self.max_indent = 40
+
+ def pp_string(self, f, indent):
+ if not self.bounded or self.pos <= self.max_width:
+ sz = _len(f)
+ if self.bounded and self.pos + sz > self.max_width:
+ self.out.write(u(_ellipses))
+ else:
+ self.pos = self.pos + sz
+ self.ribbon_pos = self.ribbon_pos + sz
+ self.out.write(u(f.string))
+
+ def pp_compose(self, f, indent):
+ for c in f.children:
+ self.pp(c, indent)
+
+ def pp_choice(self, f, indent):
+ space_left = self.max_width - self.pos
+ if space_left > 0 and fits(f.children[0], space_left):
+ self.pp(f.children[0], indent)
+ else:
+ self.pp(f.children[1], indent)
+
+ def pp_line_break(self, f, indent):
+ self.pos = indent
+ self.ribbon_pos = 0
+ self.line = self.line + 1
+ if self.line < self.max_lines:
+ self.out.write(u('\n'))
+ for i in range(indent):
+ self.out.write(u(' '))
+ else:
+ self.out.write(u('\n...'))
+ raise StopPPException()
+
+ def pp(self, f, indent):
+ if f.is_string():
+ self.pp_string(f, indent)
+ elif f.is_indent():
+ self.pp(f.child, min(indent + f.indent, self.max_indent))
+ elif f.is_compose():
+ self.pp_compose(f, indent)
+ elif f.is_choice():
+ self.pp_choice(f, indent)
+ elif f.is_linebreak():
+ self.pp_line_break(f, indent)
+ else:
+ return
+
+ def __call__(self, out, f):
+ try:
+ self.pos = 0
+ self.ribbon_pos = 0
+ self.line = 0
+ self.out = out
+ self.pp(f, 0)
+ except StopPPException:
+ return
+
+class Formatter:
+ def __init__(self):
+ global _ellipses
+ self.max_depth = 20
+ self.max_args = 128
+ self.rational_to_decimal = False
+ self.precision = 10
+ self.ellipses = to_format(_ellipses)
+ self.max_visited = 10000
+ self.fpa_pretty = True
+
+ def pp_ellipses(self):
+ return self.ellipses
+
+ def pp_arrow(self):
+ return ' ->'
+
+ def pp_unknown(self):
+ return '<unknown>'
+
+ def pp_name(self, a):
+ return to_format(_op_name(a))
+
+ def is_infix(self, a):
+ return _is_infix(a)
+
+ def is_unary(self, a):
+ return _is_unary(a)
+
+ def get_precedence(self, a):
+ return _get_precedence(a)
+
+ def is_infix_compact(self, a):
+ return _is_infix_compact(a)
+
+ def is_infix_unary(self, a):
+ return self.is_infix(a) or self.is_unary(a)
+
+ def add_paren(self, a):
+ return compose(to_format('('), indent(1, a), to_format(')'))
+
+ def pp_sort(self, s):
+ if isinstance(s, z3.ArraySortRef):
+ return seq1('Array', (self.pp_sort(s.domain()), self.pp_sort(s.range())))
+ elif isinstance(s, z3.BitVecSortRef):
+ return seq1('BitVec', (to_format(s.size()), ))
+ elif isinstance(s, z3.FPSortRef):
+ return seq1('FPSort', (to_format(s.ebits()), to_format(s.sbits())))
+ else:
+ return to_format(s.name())
+
+ def pp_const(self, a):
+ return self.pp_name(a)
+
+ def pp_int(self, a):
+ return to_format(a.as_string())
+
+ def pp_rational(self, a):
+ if not self.rational_to_decimal:
+ return to_format(a.as_string())
+ else:
+ return to_format(a.as_decimal(self.precision))
+
+ def pp_algebraic(self, a):
+ return to_format(a.as_decimal(self.precision))
+
+ def pp_string(self, a):
+ return to_format(a.as_string())
+
+ def pp_bv(self, a):
+ return to_format(a.as_string())
+
+ def pp_fd(self, a):
+ return to_format(a.as_string())
+
+ def pp_fprm_value(self, a):
+ _z3_assert(z3.is_fprm_value(a), 'expected FPRMNumRef')
+ if self.fpa_pretty and (a.decl().kind() in _z3_op_to_fpa_pretty_str):
+ return to_format(_z3_op_to_fpa_pretty_str.get(a.decl().kind()))
+ else:
+ return to_format(_z3_op_to_fpa_normal_str.get(a.decl().kind()))
+
+ def pp_fp_value(self, a):
+ _z3_assert(isinstance(a, z3.FPNumRef), 'type mismatch')
+ if not self.fpa_pretty:
+ r = []
+ if (a.isNaN()):
+ r.append(to_format(_z3_op_to_fpa_normal_str[Z3_OP_FPA_NAN]))
+ r.append(to_format('('))
+ r.append(to_format(a.sort()))
+ r.append(to_format(')'))
+ return compose(r)
+ elif (a.isInf()):
+ if (a.isNegative()):
+ r.append(to_format(_z3_op_to_fpa_normal_str[Z3_OP_FPA_MINUS_INF]))
+ else:
+ r.append(to_format(_z3_op_to_fpa_normal_str[Z3_OP_FPA_PLUS_INF]))
+ r.append(to_format('('))
+ r.append(to_format(a.sort()))
+ r.append(to_format(')'))
+ return compose(r)
+
+ elif (a.isZero()):
+ if (a.isNegative()):
+ return to_format('-zero')
+ else:
+ return to_format('+zero')
+ else:
+ _z3_assert(z3.is_fp_value(a), 'expecting FP num ast')
+ r = []
+ sgn = c_int(0)
+ sgnb = Z3_fpa_get_numeral_sign(a.ctx_ref(), a.ast, byref(sgn))
+ sig = Z3_fpa_get_numeral_significand_string(a.ctx_ref(), a.ast)
+ exp = Z3_fpa_get_numeral_exponent_string(a.ctx_ref(), a.ast)
+ r.append(to_format('FPVal('))
+ if sgnb and sgn.value != 0:
+ r.append(to_format('-'))
+ r.append(to_format(sig))
+ r.append(to_format('*(2**'))
+ r.append(to_format(exp))
+ r.append(to_format(', '))
+ r.append(to_format(a.sort()))
+ r.append(to_format('))'))
+ return compose(r)
+ else:
+ if (a.isNaN()):
+ return to_format(_z3_op_to_fpa_pretty_str[Z3_OP_FPA_NAN])
+ elif (a.isInf()):
+ if (a.isNegative()):
+ return to_format(_z3_op_to_fpa_pretty_str[Z3_OP_FPA_MINUS_INF])
+ else:
+ return to_format(_z3_op_to_fpa_pretty_str[Z3_OP_FPA_PLUS_INF])
+ elif (a.isZero()):
+ if (a.isNegative()):
+ return to_format(_z3_op_to_fpa_pretty_str[Z3_OP_FPA_MINUS_ZERO])
+ else:
+ return to_format(_z3_op_to_fpa_pretty_str[Z3_OP_FPA_PLUS_ZERO])
+ else:
+ _z3_assert(z3.is_fp_value(a), 'expecting FP num ast')
+ r = []
+ sgn = (ctypes.c_int)(0)
+ sgnb = Z3_fpa_get_numeral_sign(a.ctx_ref(), a.ast, byref(sgn))
+ sig = Z3_fpa_get_numeral_significand_string(a.ctx_ref(), a.ast)
+ exp = Z3_fpa_get_numeral_exponent_string(a.ctx_ref(), a.ast)
+ if sgnb and sgn.value != 0:
+ r.append(to_format('-'))
+ r.append(to_format(sig))
+ if (exp != '0'):
+ r.append(to_format('*(2**'))
+ r.append(to_format(exp))
+ r.append(to_format(')'))
+ return compose(r)
+
+
+ def pp_fp(self, a, d, xs):
+ _z3_assert(isinstance(a, z3.FPRef), "type mismatch")
+ k = a.decl().kind()
+ op = '?'
+ if (self.fpa_pretty and k in _z3_op_to_fpa_pretty_str):
+ op = _z3_op_to_fpa_pretty_str[k]
+ elif k in _z3_op_to_fpa_normal_str:
+ op = _z3_op_to_fpa_normal_str[k]
+ elif k in _z3_op_to_str:
+ op = _z3_op_to_str[k]
+
+ n = a.num_args()
+
+ if self.fpa_pretty:
+ if self.is_infix(k) and n >= 3:
+ rm = a.arg(0)
+ if z3.is_fprm_value(rm) and z3._dflt_rm(a.ctx).eq(rm):
+ arg1 = to_format(self.pp_expr(a.arg(1), d+1, xs))
+ arg2 = to_format(self.pp_expr(a.arg(2), d+1, xs))
+ r = []
+ r.append(arg1)
+ r.append(to_format(' '))
+ r.append(to_format(op))
+ r.append(to_format(' '))
+ r.append(arg2)
+ return compose(r)
+ elif k == Z3_OP_FPA_NEG:
+ return compose([to_format('-') , to_format(self.pp_expr(a.arg(0), d+1, xs))])
+
+ if k in _z3_op_to_fpa_normal_str:
+ op = _z3_op_to_fpa_normal_str[k]
+
+ r = []
+ r.append(to_format(op))
+ if not z3.is_const(a):
+ r.append(to_format('('))
+ first = True
+ for c in a.children():
+ if first:
+ first = False
+ else:
+ r.append(to_format(', '))
+ r.append(self.pp_expr(c, d+1, xs))
+ r.append(to_format(')'))
+ return compose(r)
+ else:
+ return to_format(a.as_string())
+
+ def pp_prefix(self, a, d, xs):
+ r = []
+ sz = 0
+ for child in a.children():
+ r.append(self.pp_expr(child, d+1, xs))
+ sz = sz + 1
+ if sz > self.max_args:
+ r.append(self.pp_ellipses())
+ break
+ return seq1(self.pp_name(a), r)
+
+ def is_assoc(self, k):
+ return _is_assoc(k)
+
+ def is_left_assoc(self, k):
+ return _is_left_assoc(k)
+
+ def infix_args_core(self, a, d, xs, r):
+ sz = len(r)
+ k = a.decl().kind()
+ p = self.get_precedence(k)
+ first = True
+ for child in a.children():
+ child_pp = self.pp_expr(child, d+1, xs)
+ child_k = None
+ if z3.is_app(child):
+ child_k = child.decl().kind()
+ if k == child_k and (self.is_assoc(k) or (first and self.is_left_assoc(k))):
+ self.infix_args_core(child, d, xs, r)
+ sz = len(r)
+ if sz > self.max_args:
+ return
+ elif self.is_infix_unary(child_k):
+ child_p = self.get_precedence(child_k)
+ if p > child_p or (_is_add(k) and _is_sub(child_k)) or (_is_sub(k) and first and _is_add(child_k)):
+ r.append(child_pp)
+ else:
+ r.append(self.add_paren(child_pp))
+ sz = sz + 1
+ elif z3.is_quantifier(child):
+ r.append(self.add_paren(child_pp))
+ else:
+ r.append(child_pp)
+ sz = sz + 1
+ if sz > self.max_args:
+ r.append(self.pp_ellipses())
+ return
+ first = False
+
+ def infix_args(self, a, d, xs):
+ r = []
+ self.infix_args_core(a, d, xs, r)
+ return r
+
+ def pp_infix(self, a, d, xs):
+ k = a.decl().kind()
+ if self.is_infix_compact(k):
+ op = self.pp_name(a)
+ return group(seq(self.infix_args(a, d, xs), op, False))
+ else:
+ op = self.pp_name(a)
+ sz = _len(op)
+ op.string = ' ' + op.string
+ op.size = sz + 1
+ return group(seq(self.infix_args(a, d, xs), op))
+
+ def pp_unary(self, a, d, xs):
+ k = a.decl().kind()
+ p = self.get_precedence(k)
+ child = a.children()[0]
+ child_k = None
+ if z3.is_app(child):
+ child_k = child.decl().kind()
+ child_pp = self.pp_expr(child, d+1, xs)
+ if k != child_k and self.is_infix_unary(child_k):
+ child_p = self.get_precedence(child_k)
+ if p <= child_p:
+ child_pp = self.add_paren(child_pp)
+ if z3.is_quantifier(child):
+ child_pp = self.add_paren(child_pp)
+ name = self.pp_name(a)
+ return compose(to_format(name), indent(_len(name), child_pp))
+
+ def pp_power_arg(self, arg, d, xs):
+ r = self.pp_expr(arg, d+1, xs)
+ k = None
+ if z3.is_app(arg):
+ k = arg.decl().kind()
+ if self.is_infix_unary(k) or (z3.is_rational_value(arg) and arg.denominator_as_long() != 1):
+ return self.add_paren(r)
+ else:
+ return r
+
+ def pp_power(self, a, d, xs):
+ arg1_pp = self.pp_power_arg(a.arg(0), d+1, xs)
+ arg2_pp = self.pp_power_arg(a.arg(1), d+1, xs)
+ return group(seq((arg1_pp, arg2_pp), '**', False))
+
+ def pp_neq(self):
+ return to_format("!=")
+
+ def pp_distinct(self, a, d, xs):
+ if a.num_args() == 2:
+ op = self.pp_neq()
+ sz = _len(op)
+ op.string = ' ' + op.string
+ op.size = sz + 1
+ return group(seq(self.infix_args(a, d, xs), op))
+ else:
+ return self.pp_prefix(a, d, xs)
+
+ def pp_select(self, a, d, xs):
+ if a.num_args() != 2:
+ return self.pp_prefix(a, d, xs)
+ else:
+ arg1_pp = self.pp_expr(a.arg(0), d+1, xs)
+ arg2_pp = self.pp_expr(a.arg(1), d+1, xs)
+ return compose(arg1_pp, indent(2, compose(to_format('['), arg2_pp, to_format(']'))))
+
+ def pp_unary_param(self, a, d, xs):
+ p = Z3_get_decl_int_parameter(a.ctx_ref(), a.decl().ast, 0)
+ arg = self.pp_expr(a.arg(0), d+1, xs)
+ return seq1(self.pp_name(a), [ to_format(p), arg ])
+
+ def pp_extract(self, a, d, xs):
+ h = Z3_get_decl_int_parameter(a.ctx_ref(), a.decl().ast, 0)
+ l = Z3_get_decl_int_parameter(a.ctx_ref(), a.decl().ast, 1)
+ arg = self.pp_expr(a.arg(0), d+1, xs)
+ return seq1(self.pp_name(a), [ to_format(h), to_format(l), arg ])
+
+ def pp_pattern(self, a, d, xs):
+ if a.num_args() == 1:
+ return self.pp_expr(a.arg(0), d, xs)
+ else:
+ return seq1('MultiPattern', [ self.pp_expr(arg, d+1, xs) for arg in a.children() ])
+
+ def pp_map(self, a, d, xs):
+ r = []
+ sz = 0
+ f = z3.get_map_func(a)
+ r.append(to_format(f.name()))
+ for child in a.children():
+ r.append(self.pp_expr(child, d+1, xs))
+ sz = sz + 1
+ if sz > self.max_args:
+ r.append(self.pp_ellipses())
+ break
+ return seq1(self.pp_name(a), r)
+
+ def pp_K(self, a, d, xs):
+ return seq1(self.pp_name(a), [ self.pp_sort(a.domain()), self.pp_expr(a.arg(0), d+1, xs) ])
+
+ def pp_atmost(self, a, d, f, xs):
+ k = Z3_get_decl_int_parameter(a.ctx_ref(), a.decl().ast, 0)
+ return seq1(self.pp_name(a), [seq3([ self.pp_expr(ch, d+1, xs) for ch in a.children()]), to_format(k)])
+
+ def pp_pbcmp(self, a, d, f, xs):
+ chs = a.children()
+ rchs = range(len(chs))
+ k = Z3_get_decl_int_parameter(a.ctx_ref(), a.decl().ast, 0)
+ ks = [Z3_get_decl_int_parameter(a.ctx_ref(), a.decl().ast, i+1) for i in rchs]
+ ls = [ seq3([self.pp_expr(chs[i], d+1,xs), to_format(ks[i])]) for i in rchs]
+ return seq1(self.pp_name(a), [seq3(ls), to_format(k)])
+
+
+ def pp_app(self, a, d, xs):
+ if z3.is_int_value(a):
+ return self.pp_int(a)
+ elif z3.is_rational_value(a):
+ return self.pp_rational(a)
+ elif z3.is_algebraic_value(a):
+ return self.pp_algebraic(a)
+ elif z3.is_bv_value(a):
+ return self.pp_bv(a)
+ elif z3.is_finite_domain_value(a):
+ return self.pp_fd(a)
+ elif z3.is_fprm_value(a):
+ return self.pp_fprm_value(a)
+ elif z3.is_fp_value(a):
+ return self.pp_fp_value(a)
+ elif z3.is_fp(a):
+ return self.pp_fp(a, d, xs)
+ elif z3.is_string_value(a):
+ return self.pp_string(a)
+ elif z3.is_const(a):
+ return self.pp_const(a)
+ else:
+ f = a.decl()
+ k = f.kind()
+ if k == Z3_OP_POWER:
+ return self.pp_power(a, d, xs)
+ elif k == Z3_OP_DISTINCT:
+ return self.pp_distinct(a, d, xs)
+ elif k == Z3_OP_SELECT:
+ return self.pp_select(a, d, xs)
+ elif k == Z3_OP_SIGN_EXT or k == Z3_OP_ZERO_EXT or k == Z3_OP_REPEAT:
+ return self.pp_unary_param(a, d, xs)
+ elif k == Z3_OP_EXTRACT:
+ return self.pp_extract(a, d, xs)
+ elif k == Z3_OP_ARRAY_MAP:
+ return self.pp_map(a, d, xs)
+ elif k == Z3_OP_CONST_ARRAY:
+ return self.pp_K(a, d, xs)
+ elif k == Z3_OP_PB_AT_MOST:
+ return self.pp_atmost(a, d, f, xs)
+ elif k == Z3_OP_PB_LE:
+ return self.pp_pbcmp(a, d, f, xs)
+ elif k == Z3_OP_PB_GE:
+ return self.pp_pbcmp(a, d, f, xs)
+ elif z3.is_pattern(a):
+ return self.pp_pattern(a, d, xs)
+ elif self.is_infix(k):
+ return self.pp_infix(a, d, xs)
+ elif self.is_unary(k):
+ return self.pp_unary(a, d, xs)
+ else:
+ return self.pp_prefix(a, d, xs)
+
+ def pp_var(self, a, d, xs):
+ idx = z3.get_var_index(a)
+ sz = len(xs)
+ if idx >= sz:
+ return seq1('Var', (to_format(idx),))
+ else:
+ return to_format(xs[sz - idx - 1])
+
+ def pp_quantifier(self, a, d, xs):
+ ys = [ to_format(a.var_name(i)) for i in range(a.num_vars()) ]
+ new_xs = xs + ys
+ body_pp = self.pp_expr(a.body(), d+1, new_xs)
+ if len(ys) == 1:
+ ys_pp = ys[0]
+ else:
+ ys_pp = seq3(ys, '[', ']')
+ if a.is_forall():
+ header = 'ForAll'
+ else:
+ header = 'Exists'
+ return seq1(header, (ys_pp, body_pp))
+
+ def pp_expr(self, a, d, xs):
+ self.visited = self.visited + 1
+ if d > self.max_depth or self.visited > self.max_visited:
+ return self.pp_ellipses()
+ if z3.is_app(a):
+ return self.pp_app(a, d, xs)
+ elif z3.is_quantifier(a):
+ return self.pp_quantifier(a, d, xs)
+ elif z3.is_var(a):
+ return self.pp_var(a, d, xs)
+ else:
+ return to_format(self.pp_unknown())
+
+ def pp_seq_core(self, f, a, d, xs):
+ self.visited = self.visited + 1
+ if d > self.max_depth or self.visited > self.max_visited:
+ return self.pp_ellipses()
+ r = []
+ sz = 0
+ for elem in a:
+ r.append(f(elem, d+1, xs))
+ sz = sz + 1
+ if sz > self.max_args:
+ r.append(self.pp_ellipses())
+ break
+ return seq3(r, '[', ']')
+
+ def pp_seq(self, a, d, xs):
+ return self.pp_seq_core(self.pp_expr, a, d, xs)
+
+ def pp_seq_seq(self, a, d, xs):
+ return self.pp_seq_core(self.pp_seq, a, d, xs)
+
+ def pp_model(self, m):
+ r = []
+ sz = 0
+ for d in m:
+ i = m[d]
+ if isinstance(i, z3.FuncInterp):
+ i_pp = self.pp_func_interp(i)
+ else:
+ i_pp = self.pp_expr(i, 0, [])
+ name = self.pp_name(d)
+ r.append(compose(name, to_format(' = '), indent(_len(name) + 3, i_pp)))
+ sz = sz + 1
+ if sz > self.max_args:
+ r.append(self.pp_ellipses())
+ break
+ return seq3(r, '[', ']')
+
+ def pp_func_entry(self, e):
+ num = e.num_args()
+ if num > 1:
+ args = []
+ for i in range(num):
+ args.append(self.pp_expr(e.arg_value(i), 0, []))
+ args_pp = group(seq3(args))
+ else:
+ args_pp = self.pp_expr(e.arg_value(0), 0, [])
+ value_pp = self.pp_expr(e.value(), 0, [])
+ return group(seq((args_pp, value_pp), self.pp_arrow()))
+
+ def pp_func_interp(self, f):
+ r = []
+ sz = 0
+ num = f.num_entries()
+ for i in range(num):
+ r.append(self.pp_func_entry(f.entry(i)))
+ sz = sz + 1
+ if sz > self.max_args:
+ r.append(self.pp_ellipses())
+ break
+ if sz <= self.max_args:
+ else_val = f.else_value()
+ if else_val == None:
+ else_pp = to_format('#unspecified')
+ else:
+ else_pp = self.pp_expr(else_val, 0, [])
+ r.append(group(seq((to_format('else'), else_pp), self.pp_arrow())))
+ return seq3(r, '[', ']')
+
+ def pp_list(self, a):
+ r = []
+ sz = 0
+ for elem in a:
+ if _support_pp(elem):
+ r.append(self.main(elem))
+ else:
+ r.append(to_format(str(elem)))
+ sz = sz + 1
+ if sz > self.max_args:
+ r.append(self.pp_ellipses())
+ break
+ if isinstance(a, tuple):
+ return seq3(r)
+ else:
+ return seq3(r, '[', ']')
+
+ def main(self, a):
+ if z3.is_expr(a):
+ return self.pp_expr(a, 0, [])
+ elif z3.is_sort(a):
+ return self.pp_sort(a)
+ elif z3.is_func_decl(a):
+ return self.pp_name(a)
+ elif isinstance(a, z3.Goal) or isinstance(a, z3.AstVector):
+ return self.pp_seq(a, 0, [])
+ elif isinstance(a, z3.Solver):
+ return self.pp_seq(a.assertions(), 0, [])
+ elif isinstance(a, z3.Fixedpoint):
+ return a.sexpr()
+ elif isinstance(a, z3.Optimize):
+ return a.sexpr()
+ elif isinstance(a, z3.ApplyResult):
+ return self.pp_seq_seq(a, 0, [])
+ elif isinstance(a, z3.ModelRef):
+ return self.pp_model(a)
+ elif isinstance(a, z3.FuncInterp):
+ return self.pp_func_interp(a)
+ elif isinstance(a, list) or isinstance(a, tuple):
+ return self.pp_list(a)
+ else:
+ return to_format(self.pp_unknown())
+
+ def __call__(self, a):
+ self.visited = 0
+ return self.main(a)
+
+class HTMLFormatter(Formatter):
+ def __init__(self):
+ Formatter.__init__(self)
+ global _html_ellipses
+ self.ellipses = to_format(_html_ellipses)
+
+ def pp_arrow(self):
+ return to_format(' &rarr;', 1)
+
+ def pp_unknown(self):
+ return '<b>unknown</b>'
+
+ def pp_name(self, a):
+ r = _html_op_name(a)
+ if r[0] == '&' or r[0] == '/' or r[0] == '%':
+ return to_format(r, 1)
+ else:
+ pos = r.find('__')
+ if pos == -1 or pos == 0:
+ return to_format(r)
+ else:
+ sz = len(r)
+ if pos + 2 == sz:
+ return to_format(r)
+ else:
+ return to_format('%s<sub>%s</sub>' % (r[0:pos], r[pos+2:sz]), sz - 2)
+
+ def is_assoc(self, k):
+ return _is_html_assoc(k)
+
+ def is_left_assoc(self, k):
+ return _is_html_left_assoc(k)
+
+ def is_infix(self, a):
+ return _is_html_infix(a)
+
+ def is_unary(self, a):
+ return _is_html_unary(a)
+
+ def get_precedence(self, a):
+ return _get_html_precedence(a)
+
+ def pp_neq(self):
+ return to_format("&ne;")
+
+ def pp_power(self, a, d, xs):
+ arg1_pp = self.pp_power_arg(a.arg(0), d+1, xs)
+ arg2_pp = self.pp_expr(a.arg(1), d+1, xs)
+ return compose(arg1_pp, to_format('<sup>', 1), arg2_pp, to_format('</sup>', 1))
+
+ def pp_var(self, a, d, xs):
+ idx = z3.get_var_index(a)
+ sz = len(xs)
+ if idx >= sz:
+ # 957 is the greek letter nu
+ return to_format('&#957;<sub>%s</sub>' % idx, 1)
+ else:
+ return to_format(xs[sz - idx - 1])
+
+ def pp_quantifier(self, a, d, xs):
+ ys = [ to_format(a.var_name(i)) for i in range(a.num_vars()) ]
+ new_xs = xs + ys
+ body_pp = self.pp_expr(a.body(), d+1, new_xs)
+ ys_pp = group(seq(ys))
+ if a.is_forall():
+ header = '&forall;'
+ else:
+ header = '&exist;'
+ return group(compose(to_format(header, 1),
+ indent(1, compose(ys_pp, to_format(' :'), line_break(), body_pp))))
+
+
+_PP = PP()
+_Formatter = Formatter()
+
+def set_pp_option(k, v):
+ if k == 'html_mode':
+ if v:
+ set_html_mode(True)
+ else:
+ set_html_mode(False)
+ return True
+ if k == 'fpa_pretty':
+ if v:
+ set_fpa_pretty(True)
+ else:
+ set_fpa_pretty(False)
+ return True
+ val = getattr(_PP, k, None)
+ if val != None:
+ _z3_assert(type(v) == type(val), "Invalid pretty print option value")
+ setattr(_PP, k, v)
+ return True
+ val = getattr(_Formatter, k, None)
+ if val != None:
+ _z3_assert(type(v) == type(val), "Invalid pretty print option value")
+ setattr(_Formatter, k, v)
+ return True
+ return False
+
+def obj_to_string(a):
+ out = io.StringIO()
+ _PP(out, _Formatter(a))
+ return out.getvalue()
+
+_html_out = None
+
+def set_html_mode(flag=True):
+ global _Formatter
+ if flag:
+ _Formatter = HTMLFormatter()
+ else:
+ _Formatter = Formatter()
+
+def set_fpa_pretty(flag=True):
+ global _Formatter
+ global _z3_op_to_str
+ _Formatter.fpa_pretty = flag
+ if flag:
+ for (_k,_v) in _z3_op_to_fpa_pretty_str.items():
+ _z3_op_to_str[_k] = _v
+ for _k in _z3_fpa_infix:
+ _infix_map[_k] = True
+ else:
+ for (_k,_v) in _z3_op_to_fpa_normal_str.items():
+ _z3_op_to_str[_k] = _v
+ for _k in _z3_fpa_infix:
+ _infix_map[_k] = False
+
+set_fpa_pretty(True)
+
+def get_fpa_pretty():
+ global Formatter
+ return _Formatter.fpa_pretty
+
+def in_html_mode():
+ return isinstance(_Formatter, HTMLFormatter)
+
+def pp(a):
+ if _support_pp(a):
+ print(obj_to_string(a))
+ else:
+ print(a)
+
+def print_matrix(m):
+ _z3_assert(isinstance(m, list) or isinstance(m, tuple), "matrix expected")
+ if not in_html_mode():
+ print(obj_to_string(m))
+ else:
+ print('<table cellpadding="2", cellspacing="0", border="1">')
+ for r in m:
+ _z3_assert(isinstance(r, list) or isinstance(r, tuple), "matrix expected")
+ print('<tr>')
+ for c in r:
+ print('<td>%s</td>' % c)
+ print('</tr>')
+ print('</table>')
+
+def insert_line_breaks(s, width):
+ """Break s in lines of size width (approx)"""
+ sz = len(s)
+ if sz <= width:
+ return s
+ new_str = io.StringIO()
+ w = 0
+ for i in range(sz):
+ if w > width and s[i] == ' ':
+ new_str.write(u('<br />'))
+ w = 0
+ else:
+ new_str.write(u(s[i]))
+ w = w + 1
+ return new_str.getvalue()
diff --git a/rba.tool.editor.endpoint/lib/windows/z3/python/z3/z3rcf.py b/rba.tool.editor.endpoint/lib/windows/z3/python/z3/z3rcf.py
new file mode 100644
index 0000000..9d6f2f6
--- /dev/null
+++ b/rba.tool.editor.endpoint/lib/windows/z3/python/z3/z3rcf.py
@@ -0,0 +1,163 @@
+############################################
+# Copyright (c) 2013 Microsoft Corporation
+#
+# Z3 Python interface for Z3 Real Closed Fields
+# that may contain
+# - computable transcendentals
+# - infinitesimals
+# - algebraic extensions
+#
+# Author: Leonardo de Moura (leonardo)
+############################################
+from .z3 import *
+from .z3core import *
+from .z3printer import *
+from fractions import Fraction
+
+def _to_rcfnum(num, ctx=None):
+ if isinstance(num, RCFNum):
+ return num
+ else:
+ return RCFNum(num, ctx)
+
+def Pi(ctx=None):
+ ctx = z3._get_ctx(ctx)
+ return RCFNum(Z3_rcf_mk_pi(ctx.ref()), ctx)
+
+def E(ctx=None):
+ ctx = z3._get_ctx(ctx)
+ return RCFNum(Z3_rcf_mk_e(ctx.ref()), ctx)
+
+def MkInfinitesimal(name="eps", ctx=None):
+ # Todo: remove parameter name.
+ # For now, we keep it for backward compatibility.
+ ctx = z3._get_ctx(ctx)
+ return RCFNum(Z3_rcf_mk_infinitesimal(ctx.ref()), ctx)
+
+def MkRoots(p, ctx=None):
+ ctx = z3._get_ctx(ctx)
+ num = len(p)
+ _tmp = []
+ _as = (RCFNumObj * num)()
+ _rs = (RCFNumObj * num)()
+ for i in range(num):
+ _a = _to_rcfnum(p[i], ctx)
+ _tmp.append(_a) # prevent GC
+ _as[i] = _a.num
+ nr = Z3_rcf_mk_roots(ctx.ref(), num, _as, _rs)
+ r = []
+ for i in range(nr):
+ r.append(RCFNum(_rs[i], ctx))
+ return r
+
+class RCFNum:
+ def __init__(self, num, ctx=None):
+ # TODO: add support for converting AST numeral values into RCFNum
+ if isinstance(num, RCFNumObj):
+ self.num = num
+ self.ctx = z3._get_ctx(ctx)
+ else:
+ self.ctx = z3._get_ctx(ctx)
+ self.num = Z3_rcf_mk_rational(self.ctx_ref(), str(num))
+
+ def __del__(self):
+ Z3_rcf_del(self.ctx_ref(), self.num)
+
+ def ctx_ref(self):
+ return self.ctx.ref()
+
+ def __repr__(self):
+ return Z3_rcf_num_to_string(self.ctx_ref(), self.num, False, in_html_mode())
+
+ def compact_str(self):
+ return Z3_rcf_num_to_string(self.ctx_ref(), self.num, True, in_html_mode())
+
+ def __add__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return RCFNum(Z3_rcf_add(self.ctx_ref(), self.num, v.num), self.ctx)
+
+ def __radd__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return RCFNum(Z3_rcf_add(self.ctx_ref(), v.num, self.num), self.ctx)
+
+ def __mul__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return RCFNum(Z3_rcf_mul(self.ctx_ref(), self.num, v.num), self.ctx)
+
+ def __rmul__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return RCFNum(Z3_rcf_mul(self.ctx_ref(), v.num, self.num), self.ctx)
+
+ def __sub__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return RCFNum(Z3_rcf_sub(self.ctx_ref(), self.num, v.num), self.ctx)
+
+ def __rsub__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return RCFNum(Z3_rcf_sub(self.ctx_ref(), v.num, self.num), self.ctx)
+
+ def __div__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return RCFNum(Z3_rcf_div(self.ctx_ref(), self.num, v.num), self.ctx)
+
+ def __rdiv__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return RCFNum(Z3_rcf_div(self.ctx_ref(), v.num, self.num), self.ctx)
+
+ def __neg__(self):
+ return self.__rsub__(0)
+
+ def power(self, k):
+ return RCFNum(Z3_rcf_power(self.ctx_ref(), self.num, k), self.ctx)
+
+ def __pow__(self, k):
+ return self.power(k)
+
+ def decimal(self, prec=5):
+ return Z3_rcf_num_to_decimal_string(self.ctx_ref(), self.num, prec)
+
+ def __lt__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return Z3_rcf_lt(self.ctx_ref(), self.num, v.num)
+
+ def __rlt__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return Z3_rcf_lt(self.ctx_ref(), v.num, self.num)
+
+ def __gt__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return Z3_rcf_gt(self.ctx_ref(), self.num, v.num)
+
+ def __rgt__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return Z3_rcf_gt(self.ctx_ref(), v.num, self.num)
+
+ def __le__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return Z3_rcf_le(self.ctx_ref(), self.num, v.num)
+
+ def __rle__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return Z3_rcf_le(self.ctx_ref(), v.num, self.num)
+
+ def __ge__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return Z3_rcf_ge(self.ctx_ref(), self.num, v.num)
+
+ def __rge__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return Z3_rcf_ge(self.ctx_ref(), v.num, self.num)
+
+ def __eq__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return Z3_rcf_eq(self.ctx_ref(), self.num, v.num)
+
+ def __ne__(self, other):
+ v = _to_rcfnum(other, self.ctx)
+ return Z3_rcf_neq(self.ctx_ref(), self.num, v.num)
+
+ def split(self):
+ n = (RCFNumObj * 1)()
+ d = (RCFNumObj * 1)()
+ Z3_rcf_get_numerator_denominator(self.ctx_ref(), self.num, n, d)
+ return (RCFNum(n[0], self.ctx), RCFNum(d[0], self.ctx))
diff --git a/rba.tool.editor.endpoint/lib/windows/z3/python/z3/z3types.py b/rba.tool.editor.endpoint/lib/windows/z3/python/z3/z3types.py
new file mode 100644
index 0000000..7cf61f4
--- /dev/null
+++ b/rba.tool.editor.endpoint/lib/windows/z3/python/z3/z3types.py
@@ -0,0 +1,123 @@
+############################################
+# Copyright (c) 2012 Microsoft Corporation
+#
+# Z3 Python interface
+#
+# Author: Leonardo de Moura (leonardo)
+############################################
+
+import ctypes
+
+class Z3Exception(Exception):
+ def __init__(self, value):
+ self.value = value
+ def __str__(self):
+ return str(self.value)
+
+class ContextObj(ctypes.c_void_p):
+ def __init__(self, context): self._as_parameter_ = context
+ def from_param(obj): return obj
+
+class Config(ctypes.c_void_p):
+ def __init__(self, config): self._as_parameter_ = config
+ def from_param(obj): return obj
+
+class Symbol(ctypes.c_void_p):
+ def __init__(self, symbol): self._as_parameter_ = symbol
+ def from_param(obj): return obj
+
+class Sort(ctypes.c_void_p):
+ def __init__(self, sort): self._as_parameter_ = sort
+ def from_param(obj): return obj
+
+class FuncDecl(ctypes.c_void_p):
+ def __init__(self, decl): self._as_parameter_ = decl
+ def from_param(obj): return obj
+
+class Ast(ctypes.c_void_p):
+ def __init__(self, ast): self._as_parameter_ = ast
+ def from_param(obj): return obj
+
+class Pattern(ctypes.c_void_p):
+ def __init__(self, pattern): self._as_parameter_ = pattern
+ def from_param(obj): return obj
+
+class Model(ctypes.c_void_p):
+ def __init__(self, model): self._as_parameter_ = model
+ def from_param(obj): return obj
+
+class Literals(ctypes.c_void_p):
+ def __init__(self, literals): self._as_parameter_ = literals
+ def from_param(obj): return obj
+
+class Constructor(ctypes.c_void_p):
+ def __init__(self, constructor): self._as_parameter_ = constructor
+ def from_param(obj): return obj
+
+class ConstructorList(ctypes.c_void_p):
+ def __init__(self, constructor_list): self._as_parameter_ = constructor_list
+ def from_param(obj): return obj
+
+class GoalObj(ctypes.c_void_p):
+ def __init__(self, goal): self._as_parameter_ = goal
+ def from_param(obj): return obj
+
+class TacticObj(ctypes.c_void_p):
+ def __init__(self, tactic): self._as_parameter_ = tactic
+ def from_param(obj): return obj
+
+class ProbeObj(ctypes.c_void_p):
+ def __init__(self, probe): self._as_parameter_ = probe
+ def from_param(obj): return obj
+
+class ApplyResultObj(ctypes.c_void_p):
+ def __init__(self, obj): self._as_parameter_ = obj
+ def from_param(obj): return obj
+
+class StatsObj(ctypes.c_void_p):
+ def __init__(self, statistics): self._as_parameter_ = statistics
+ def from_param(obj): return obj
+
+class SolverObj(ctypes.c_void_p):
+ def __init__(self, solver): self._as_parameter_ = solver
+ def from_param(obj): return obj
+
+class FixedpointObj(ctypes.c_void_p):
+ def __init__(self, fixedpoint): self._as_parameter_ = fixedpoint
+ def from_param(obj): return obj
+
+class OptimizeObj(ctypes.c_void_p):
+ def __init__(self, optimize): self._as_parameter_ = optimize
+ def from_param(obj): return obj
+
+class ModelObj(ctypes.c_void_p):
+ def __init__(self, model): self._as_parameter_ = model
+ def from_param(obj): return obj
+
+class AstVectorObj(ctypes.c_void_p):
+ def __init__(self, vector): self._as_parameter_ = vector
+ def from_param(obj): return obj
+
+class AstMapObj(ctypes.c_void_p):
+ def __init__(self, ast_map): self._as_parameter_ = ast_map
+ def from_param(obj): return obj
+
+class Params(ctypes.c_void_p):
+ def __init__(self, params): self._as_parameter_ = params
+ def from_param(obj): return obj
+
+class ParamDescrs(ctypes.c_void_p):
+ def __init__(self, paramdescrs): self._as_parameter_ = paramdescrs
+ def from_param(obj): return obj
+
+class FuncInterpObj(ctypes.c_void_p):
+ def __init__(self, f): self._as_parameter_ = f
+ def from_param(obj): return obj
+
+class FuncEntryObj(ctypes.c_void_p):
+ def __init__(self, e): self._as_parameter_ = e
+ def from_param(obj): return obj
+
+class RCFNumObj(ctypes.c_void_p):
+ def __init__(self, e): self._as_parameter_ = e
+ def from_param(obj): return obj
diff --git a/rba.tool.editor.endpoint/lib/windows/z3/python/z3/z3util.py b/rba.tool.editor.endpoint/lib/windows/z3/python/z3/z3util.py
new file mode 100644
index 0000000..fe7e76b
--- /dev/null
+++ b/rba.tool.editor.endpoint/lib/windows/z3/python/z3/z3util.py
@@ -0,0 +1,508 @@
+############################################
+# Copyright (c) 2012 Microsoft Corporation
+#
+# Z3 Python interface
+#
+# Authors: Leonardo de Moura (leonardo)
+# ThanhVu (Vu) Nguyen <tnguyen@cs.unm.edu>
+############################################
+"""
+Usage:
+import common_z3 as CM_Z3
+"""
+
+from .z3 import *
+
+def vset(seq, idfun=None, as_list=True):
+ # This functions preserves the order of arguments while removing duplicates.
+ # This function is from https://code.google.com/p/common-python-vu/source/browse/vu_common.py
+ # (Thanhu's personal code). It has been copied here to avoid a dependency on vu_common.py.
+ """
+ order preserving
+
+ >>> vset([[11,2],1, [10,['9',1]],2, 1, [11,2],[3,3],[10,99],1,[10,['9',1]]],idfun=repr)
+ [[11, 2], 1, [10, ['9', 1]], 2, [3, 3], [10, 99]]
+ """
+
+ def _uniq_normal(seq):
+ d_ = {}
+ for s in seq:
+ if s not in d_:
+ d_[s] = None
+ yield s
+
+ def _uniq_idfun(seq,idfun):
+ d_ = {}
+ for s in seq:
+ h_ = idfun(s)
+ if h_ not in d_:
+ d_[h_] = None
+ yield s
+
+ if idfun is None:
+ res = _uniq_normal(seq)
+ else:
+ res = _uniq_idfun(seq,idfun)
+
+ return list(res) if as_list else res
+
+
+def get_z3_version(as_str=False):
+ major = ctypes.c_uint(0)
+ minor = ctypes.c_uint(0)
+ build = ctypes.c_uint(0)
+ rev = ctypes.c_uint(0)
+ Z3_get_version(major,minor,build,rev)
+ rs = map(int,(major.value,minor.value,build.value,rev.value))
+ if as_str:
+ return "{}.{}.{}.{}".format(*rs)
+ else:
+ return rs
+
+
+def ehash(v):
+ """
+ Returns a 'stronger' hash value than the default hash() method.
+ The result from hash() is not enough to distinguish between 2
+ z3 expressions in some cases.
+
+ Note: the following doctests will fail with Python 2.x as the
+ default formatting doesn't match that of 3.x.
+ >>> x1 = Bool('x'); x2 = Bool('x'); x3 = Int('x')
+ >>> print(x1.hash(),x2.hash(),x3.hash()) #BAD: all same hash values
+ 783810685 783810685 783810685
+ >>> print(ehash(x1), ehash(x2), ehash(x3))
+ x_783810685_1 x_783810685_1 x_783810685_2
+
+ """
+ if __debug__:
+ assert is_expr(v)
+
+ return "{}_{}_{}".format(str(v),v.hash(),v.sort_kind())
+
+
+"""
+In Z3, variables are called *uninterpreted* consts and
+variables are *interpreted* consts.
+"""
+
+def is_expr_var(v):
+ """
+ EXAMPLES:
+
+ >>> is_expr_var(Int('7'))
+ True
+ >>> is_expr_var(IntVal('7'))
+ False
+ >>> is_expr_var(Bool('y'))
+ True
+ >>> is_expr_var(Int('x') + 7 == Int('y'))
+ False
+ >>> LOnOff, (On,Off) = EnumSort("LOnOff",['On','Off'])
+ >>> Block,Reset,SafetyInjection=Consts("Block Reset SafetyInjection",LOnOff)
+ >>> is_expr_var(LOnOff)
+ False
+ >>> is_expr_var(On)
+ False
+ >>> is_expr_var(Block)
+ True
+ >>> is_expr_var(SafetyInjection)
+ True
+ """
+
+ return is_const(v) and v.decl().kind()==Z3_OP_UNINTERPRETED
+
+def is_expr_val(v):
+ """
+ EXAMPLES:
+
+ >>> is_expr_val(Int('7'))
+ False
+ >>> is_expr_val(IntVal('7'))
+ True
+ >>> is_expr_val(Bool('y'))
+ False
+ >>> is_expr_val(Int('x') + 7 == Int('y'))
+ False
+ >>> LOnOff, (On,Off) = EnumSort("LOnOff",['On','Off'])
+ >>> Block,Reset,SafetyInjection=Consts("Block Reset SafetyInjection",LOnOff)
+ >>> is_expr_val(LOnOff)
+ False
+ >>> is_expr_val(On)
+ True
+ >>> is_expr_val(Block)
+ False
+ >>> is_expr_val(SafetyInjection)
+ False
+ """
+ return is_const(v) and v.decl().kind()!=Z3_OP_UNINTERPRETED
+
+
+
+
+def get_vars(f,rs=[]):
+ """
+ >>> x,y = Ints('x y')
+ >>> a,b = Bools('a b')
+ >>> get_vars(Implies(And(x+y==0,x*2==10),Or(a,Implies(a,b==False))))
+ [x, y, a, b]
+
+ """
+ if __debug__:
+ assert is_expr(f)
+
+ if is_const(f):
+ if is_expr_val(f):
+ return rs
+ else: #variable
+ return vset(rs + [f],str)
+
+ else:
+ for f_ in f.children():
+ rs = get_vars(f_,rs)
+
+ return vset(rs,str)
+
+
+
+def mk_var(name,vsort):
+ if vsort.kind() == Z3_INT_SORT:
+ v = Int(name)
+ elif vsort.kind() == Z3_REAL_SORT:
+ v = Real(name)
+ elif vsort.kind() == Z3_BOOL_SORT:
+ v = Bool(name)
+ elif vsort.kind() == Z3_DATATYPE_SORT:
+ v = Const(name,vsort)
+
+ else:
+ assert False, 'Cannot handle this sort (s: %sid: %d)'\
+ %(vsort,vsort.kind())
+
+ return v
+
+
+
+def prove(claim,assume=None,verbose=0):
+ """
+ >>> r,m = prove(BoolVal(True),verbose=0); r,model_str(m,as_str=False)
+ (True, None)
+
+ #infinite counter example when proving contradiction
+ >>> r,m = prove(BoolVal(False)); r,model_str(m,as_str=False)
+ (False, [])
+
+ >>> x,y,z=Bools('x y z')
+ >>> r,m = prove(And(x,Not(x))); r,model_str(m,as_str=True)
+ (False, '[]')
+
+ >>> r,m = prove(True,assume=And(x,Not(x)),verbose=0)
+ Traceback (most recent call last):
+ ...
+ AssertionError: Assumption is alway False!
+
+ >>> r,m = prove(Implies(x,x),assume=y,verbose=2); r,model_str(m,as_str=False)
+ assume:
+ y
+ claim:
+ Implies(x, x)
+ to_prove:
+ Implies(y, Implies(x, x))
+ (True, None)
+
+ >>> r,m = prove(And(x,True),assume=y,verbose=0); r,model_str(m,as_str=False)
+ (False, [(x, False), (y, True)])
+
+ >>> r,m = prove(And(x,y),assume=y,verbose=0)
+ >>> print(r)
+ False
+ >>> print(model_str(m,as_str=True))
+ x = False
+ y = True
+
+ >>> a,b = Ints('a b')
+ >>> r,m = prove(a**b == b**a,assume=None,verbose=0)
+ E: cannot solve !
+ >>> r is None and m is None
+ True
+
+ """
+
+ if __debug__:
+ assert not assume or is_expr(assume)
+
+
+ to_prove = claim
+ if assume:
+ if __debug__:
+ is_proved,_ = prove(Not(assume))
+
+ def _f():
+ emsg = "Assumption is alway False!"
+ if verbose >= 2:
+ emsg = "{}\n{}".format(assume,emsg)
+ return emsg
+
+ assert is_proved==False, _f()
+
+ to_prove = Implies(assume,to_prove)
+
+
+
+ if verbose >= 2:
+ print('assume: ')
+ print(assume)
+ print('claim: ')
+ print(claim)
+ print('to_prove: ')
+ print(to_prove)
+
+ f = Not(to_prove)
+
+ models = get_models(f,k=1)
+ if models is None: #unknown
+ print('E: cannot solve !')
+ return None, None
+ elif models == False: #unsat
+ return True,None
+ else: #sat
+ if __debug__:
+ assert isinstance(models,list)
+
+ if models:
+ return False, models[0] #the first counterexample
+ else:
+ return False, [] #infinite counterexample,models
+
+
+def get_models(f,k):
+ """
+ Returns the first k models satisfiying f.
+ If f is not satisfiable, returns False.
+ If f cannot be solved, returns None
+ If f is satisfiable, returns the first k models
+ Note that if f is a tautology, e.g.\ True, then the result is []
+
+ Based on http://stackoverflow.com/questions/11867611/z3py-checking-all-solutions-for-equation
+
+ EXAMPLES:
+ >>> x, y = Ints('x y')
+ >>> len(get_models(And(0<=x,x <= 4),k=11))
+ 5
+ >>> get_models(And(0<=x**y,x <= 1),k=2) is None
+ True
+ >>> get_models(And(0<=x,x <= -1),k=2)
+ False
+ >>> len(get_models(x+y==7,5))
+ 5
+ >>> len(get_models(And(x<=5,x>=1),7))
+ 5
+ >>> get_models(And(x<=0,x>=5),7)
+ False
+
+ >>> x = Bool('x')
+ >>> get_models(And(x,Not(x)),k=1)
+ False
+ >>> get_models(Implies(x,x),k=1)
+ []
+ >>> get_models(BoolVal(True),k=1)
+ []
+
+
+
+ """
+
+ if __debug__:
+ assert is_expr(f)
+ assert k>=1
+
+
+
+ s = Solver()
+ s.add(f)
+
+ models = []
+ i = 0
+ while s.check() == sat and i < k:
+ i = i + 1
+
+ m = s.model()
+
+ if not m: #if m == []
+ break
+
+ models.append(m)
+
+
+ #create new constraint to block the current model
+ block = Not(And([v() == m[v] for v in m]))
+ s.add(block)
+
+
+ if s.check() == unknown:
+ return None
+ elif s.check() == unsat and i==0:
+ return False
+ else:
+ return models
+
+def is_tautology(claim,verbose=0):
+ """
+ >>> is_tautology(Implies(Bool('x'),Bool('x')))
+ True
+
+ >>> is_tautology(Implies(Bool('x'),Bool('y')))
+ False
+
+ >>> is_tautology(BoolVal(True))
+ True
+
+ >>> is_tautology(BoolVal(False))
+ False
+
+ """
+ return prove(claim=claim,assume=None,verbose=verbose)[0]
+
+
+def is_contradiction(claim,verbose=0):
+ """
+ >>> x,y=Bools('x y')
+ >>> is_contradiction(BoolVal(False))
+ True
+
+ >>> is_contradiction(BoolVal(True))
+ False
+
+ >>> is_contradiction(x)
+ False
+
+ >>> is_contradiction(Implies(x,y))
+ False
+
+ >>> is_contradiction(Implies(x,x))
+ False
+
+ >>> is_contradiction(And(x,Not(x)))
+ True
+ """
+
+ return prove(claim=Not(claim),assume=None,verbose=verbose)[0]
+
+
+def exact_one_model(f):
+ """
+ return True if f has exactly 1 model, False otherwise.
+
+ EXAMPLES:
+
+ >>> x, y = Ints('x y')
+ >>> exact_one_model(And(0<=x**y,x <= 0))
+ False
+
+ >>> exact_one_model(And(0<=x,x <= 0))
+ True
+
+ >>> exact_one_model(And(0<=x,x <= 1))
+ False
+
+ >>> exact_one_model(And(0<=x,x <= -1))
+ False
+ """
+
+ models = get_models(f,k=2)
+ if isinstance(models,list):
+ return len(models)==1
+ else:
+ return False
+
+
+
+def myBinOp(op,*L):
+ """
+ >>> myAnd(*[Bool('x'),Bool('y')])
+ And(x, y)
+
+ >>> myAnd(*[Bool('x'),None])
+ x
+
+ >>> myAnd(*[Bool('x')])
+ x
+
+ >>> myAnd(*[])
+
+ >>> myAnd(Bool('x'),Bool('y'))
+ And(x, y)
+
+ >>> myAnd(*[Bool('x'),Bool('y')])
+ And(x, y)
+
+ >>> myAnd([Bool('x'),Bool('y')])
+ And(x, y)
+
+ >>> myAnd((Bool('x'),Bool('y')))
+ And(x, y)
+
+ >>> myAnd(*[Bool('x'),Bool('y'),True])
+ Traceback (most recent call last):
+ ...
+ AssertionError
+ """
+
+ if __debug__:
+ assert op == Z3_OP_OR or op == Z3_OP_AND or op == Z3_OP_IMPLIES
+
+ if len(L)==1 and (isinstance(L[0],list) or isinstance(L[0],tuple)):
+ L = L[0]
+
+ if __debug__:
+ assert all(not isinstance(l,bool) for l in L)
+
+ L = [l for l in L if is_expr(l)]
+ if L:
+ if len(L)==1:
+ return L[0]
+ else:
+ if op == Z3_OP_OR:
+ return Or(L)
+ elif op == Z3_OP_AND:
+ return And(L)
+ else: #IMPLIES
+ return Implies(L[0],L[1])
+ else:
+ return None
+
+
+def myAnd(*L): return myBinOp(Z3_OP_AND,*L)
+def myOr(*L): return myBinOp(Z3_OP_OR,*L)
+def myImplies(a,b):return myBinOp(Z3_OP_IMPLIES,[a,b])
+
+
+
+Iff = lambda f: And(Implies(f[0],f[1]),Implies(f[1],f[0]))
+
+
+
+def model_str(m,as_str=True):
+ """
+ Returned a 'sorted' model (so that it's easier to see)
+ The model is sorted by its key,
+ e.g. if the model is y = 3 , x = 10, then the result is
+ x = 10, y = 3
+
+ EXAMPLES:
+ see doctest exampels from function prove()
+
+ """
+ if __debug__:
+ assert m is None or m == [] or isinstance(m,ModelRef)
+
+ if m :
+ vs = [(v,m[v]) for v in m]
+ vs = sorted(vs,key=lambda a,_: str(a))
+ if as_str:
+ return '\n'.join(['{} = {}'.format(k,v) for (k,v) in vs])
+ else:
+ return vs
+ else:
+ return str(m) if as_str else m
+
diff --git a/rba.tool.editor.endpoint/lib/windows/z3/vcomp110.dll b/rba.tool.editor.endpoint/lib/windows/z3/vcomp110.dll
new file mode 100644
index 0000000..d5a65ba
--- /dev/null
+++ b/rba.tool.editor.endpoint/lib/windows/z3/vcomp110.dll
Binary files differ
diff --git a/rba.tool.editor.endpoint/lib/windows/z3/z3.exe b/rba.tool.editor.endpoint/lib/windows/z3/z3.exe
new file mode 100644
index 0000000..8a5411c
--- /dev/null
+++ b/rba.tool.editor.endpoint/lib/windows/z3/z3.exe
Binary files differ
diff --git a/rba.tool.editor.endpoint/model/all.rba b/rba.tool.editor.endpoint/model/all.rba
new file mode 100644
index 0000000..41725f9
--- /dev/null
+++ b/rba.tool.editor.endpoint/model/all.rba
@@ -0,0 +1,145 @@
+Package SampleDisplays {
+ Display Sample_METER{
+ Size Sample_METER_FULLSCREEN {
+ width: 500
+ height: 400
+ }
+ CompositeArea Sample_METER_Root {
+ layout: FixedPositionLayout {
+ PositionContainer {
+ x:100
+ y:100
+ basePoint: LEFT_TOP
+ areaReference: A
+ }
+ PositionContainer {
+ x: 50
+ y: 250
+ basePoint: LEFT_TOP
+ areaReference: B
+ }
+ PositionContainer {
+ x: 50
+ y: 250
+ basePoint: LEFT_TOP
+ areaReference: C
+ }
+ PositionContainer {
+ x: 100
+ y: 300
+ basePoint: LEFT_TOP
+ areaReference: X
+ }
+ PositionContainer {
+ x: 100
+ y: 300
+ basePoint: LEFT_TOP
+ areaReference: Y
+ }
+ }
+ }
+ }
+ Size サイズ {
+ width:100
+ height:100
+ }
+ Area A {
+ sizeReference:サイズ
+ visibility: STANDARD_VALUE
+ zorder: STANDARD_VALUE
+ }
+ Area B {
+ sizeReference:サイズ
+ visibility: STANDARD_VALUE
+ zorder: STANDARD_VALUE
+ }
+ Area C {
+ sizeReference:サイズ
+ visibility: STANDARD_VALUE
+ zorder: STANDARD_VALUE
+ }
+ Area X {
+ sizeReference:サイズ
+ visibility: STANDARD_VALUE
+ zorder: STANDARD_VALUE
+ }
+ Area Y {
+ sizeReference:サイズ
+ visibility: STANDARD_VALUE
+ zorder: STANDARD_VALUE
+ }
+ ViewContent A1{
+ allocatable: [
+ A
+ ]
+ State NORMAL {
+ priority: 10
+ }
+ sizeReference:サイズ
+ }
+ ViewContent B1 {
+ allocatable: [
+ B
+ ]
+ State NORMAL {
+ priority: 10
+ }
+ State WARNING {
+ priority: 11
+ }
+ sizeReference:サイズ
+ }
+ ViewContent C1{
+ allocatable: [
+ C
+ ]
+ State NORMAL {
+ priority: 11
+ }
+ sizeReference:サイズ
+ }
+ ViewContent X1 {
+ allocatable: [
+ X
+ ]
+ State NORMAL {
+ priority: STANDARD_VALUE
+ }
+ sizeReference:サイズ
+ }
+ ViewContent Y1 {
+ allocatable: [
+ Y
+ ]
+ State NORMAL {
+ priority: STANDARD_VALUE
+ }
+ State WARNING {
+ priority: STANDARD_VALUE + 1
+ }
+ sizeReference:サイズ
+ }
+ Scene S1{}
+ Scene S2{}
+ Constraint HA1209_SelectOperator_1 {
+ runtime: true
+ let sele = ALL_AREAS.select{x|x.contentValue() > 10 }
+ S1.isOn() -> For-All {sele}{x|x.isHidden()}
+ }
+ Constraint HA1209_SelectOperator_2 {
+ runtime: true
+ let sele = ALL_AREAS.select{x|x.contentValue() > 10 }
+ Exists {sele}{x| x == B} -> X.isHidden()
+ }
+ Constraint HA1209_SelectOperator_3 {
+ runtime: true
+ let sele = {{A1}.select{x|x.stateValue() = 10}}
+ S2.isOn() -> For-All sele{x|!x.isVisible()}
+ }
+ Constraint HA1209_SelectOperator_4 {
+ runtime: true
+ let sele1 = ALL_VIEWCONTENTS.select{x|x.stateValue() > 10}
+ let sele2 = Y.displayingContent().allocatables().select{y|y.contentValue() > 10}
+ Exists {sele1}{x| x == C1} -> For-All {sele2}{z|z.isHidden()}
+ }
+} \ No newline at end of file
diff --git a/rba.tool.editor.endpoint/pom.xml b/rba.tool.editor.endpoint/pom.xml
new file mode 100644
index 0000000..14bbcac
--- /dev/null
+++ b/rba.tool.editor.endpoint/pom.xml
@@ -0,0 +1,324 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>rba.tool.editor</groupId>
+ <version>1.0.0</version>
+ <artifactId>rba.tool.editor.endpoint</artifactId>
+ <packaging>war</packaging>
+
+ <properties>
+ <tycho-version>1.0.0</tycho-version>
+ <xtextVersion>2.13.0</xtextVersion>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <maven.compiler.source>1.8</maven.compiler.source>
+ <maven.compiler.target>1.8</maven.compiler.target>
+ </properties>
+
+ <build>
+ <sourceDirectory>src</sourceDirectory>
+ <resources>
+ <resource>
+ <directory>src</directory>
+ <excludes>
+ <exclude>**/*.java</exclude>
+ <exclude>**/*.xtend</exclude>
+ </excludes>
+ </resource>
+ </resources>
+ <plugins>
+ <plugin>
+ <groupId>org.eclipse.xtend</groupId>
+ <artifactId>xtend-maven-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <artifactId>maven-war-plugin</artifactId>
+ <version>2.6</version>
+ <configuration>
+ <warSourceDirectory>WebRoot</warSourceDirectory>
+ <failOnMissingWebXml>false</failOnMissingWebXml>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-maven-plugin</artifactId>
+ <version>9.2.13.v20150730</version>
+ <configuration>
+ <webAppSourceDirectory>WebRoot</webAppSourceDirectory>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <version>1.9.1</version>
+ <executions>
+ <execution>
+ <id>add-source</id>
+ <phase>initialize</phase>
+ <goals>
+ <goal>add-source</goal>
+ <goal>add-resource</goal>
+ </goals>
+ <configuration>
+ <sources>
+ <source>src-gen</source>
+ </sources>
+ <resources>
+ <resource>
+ <directory>src-gen</directory>
+ <excludes>
+ <exclude>**/*.java</exclude>
+ </excludes>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.eclipse.xtend</groupId>
+ <artifactId>xtend-maven-plugin</artifactId>
+ <version>${xtextVersion}</version>
+ <dependencies>
+ <dependency>
+ <groupId>org.eclipse.platform</groupId>
+ <artifactId>org.eclipse.equinox.common</artifactId>
+ <version>3.10.0</version>
+ </dependency>
+ </dependencies>
+ <executions>
+ <execution>
+ <goals>
+ <goal>compile</goal>
+ <goal>xtend-install-debug-info</goal>
+ <goal>testCompile</goal>
+ <goal>xtend-test-install-debug-info</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <outputDirectory>${basedir}/xtend-gen</outputDirectory>
+ <testOutputDirectory>${basedir}/xtend-gen</testOutputDirectory>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-clean-plugin</artifactId>
+ <version>2.5</version>
+ <configuration>
+ <filesets>
+ <fileset>
+ <directory>${basedir}/xtend-gen</directory>
+ <includes>
+ <include>**/*</include>
+ </includes>
+ <directory>${basedir}/xtend-gen</directory>
+ <includes>
+ <include>**/*</include>
+ </includes>
+ </fileset>
+ </filesets>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.eclipse.m2e</groupId>
+ <artifactId>lifecycle-mapping</artifactId>
+ <version>1.0.0</version>
+ <configuration>
+ <lifecycleMappingMetadata>
+ <pluginExecutions>
+ <pluginExecution>
+ <pluginExecutionFilter>
+ <groupId>
+ org.apache.maven.plugins
+ </groupId>
+ <artifactId>
+ maven-resources-plugin
+ </artifactId>
+ <versionRange>
+ [2.4.3,)
+ </versionRange>
+ <goals>
+ <goal>resources</goal>
+ <goal>testResources</goal>
+ </goals>
+ </pluginExecutionFilter>
+ <action>
+ <ignore></ignore>
+ </action>
+ </pluginExecution>
+ <pluginExecution>
+ <pluginExecutionFilter>
+ <groupId>
+ org.codehaus.mojo
+ </groupId>
+ <artifactId>
+ build-helper-maven-plugin
+ </artifactId>
+ <versionRange>
+ [1.9.1,)
+ </versionRange>
+ <goals>
+ <goal>add-resource</goal>
+ <goal>add-source</goal>
+ <goal>add-test-resource</goal>
+ <goal>add-test-source</goal>
+ </goals>
+ </pluginExecutionFilter>
+ <action>
+ <ignore></ignore>
+ </action>
+ </pluginExecution>
+ <pluginExecution>
+ <pluginExecutionFilter>
+ <groupId>
+ org.eclipse.tycho
+ </groupId>
+ <artifactId>
+ tycho-compiler-plugin
+ </artifactId>
+ <versionRange>
+ [0.23.1,)
+ </versionRange>
+ <goals>
+ <goal>compile</goal>
+ </goals>
+ </pluginExecutionFilter>
+ <action>
+ <ignore></ignore>
+ </action>
+ </pluginExecution>
+ <pluginExecution>
+ <pluginExecutionFilter>
+ <groupId>
+ org.eclipse.tycho
+ </groupId>
+ <artifactId>
+ tycho-packaging-plugin
+ </artifactId>
+ <versionRange>
+ [0.23.1,)
+ </versionRange>
+ <goals>
+ <goal>build-qualifier</goal>
+ <goal>build-qualifier-aggregator</goal>
+ <goal>validate-id</goal>
+ <goal>validate-version</goal>
+ </goals>
+ </pluginExecutionFilter>
+ <action>
+ <ignore></ignore>
+ </action>
+ </pluginExecution>
+ </pluginExecutions>
+ </lifecycleMappingMetadata>
+ </configuration>
+ </plugin>
+ <plugin>
+ <!--
+ Can be removed after first generator execution
+ https://bugs.eclipse.org/bugs/show_bug.cgi?id=480097
+ -->
+ <groupId>org.eclipse.tycho</groupId>
+ <artifactId>tycho-compiler-plugin</artifactId>
+ <version>${tycho-version}</version>
+ <configuration>
+ <compilerArgument>-err:-forbidden</compilerArgument>
+ <useProjectSettings>false</useProjectSettings>
+ </configuration>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ </build>
+
+ <repositories>
+ <repository>
+ <id>eclipse oxygen</id>
+ <url>http://download.eclipse.org/releases/oxygen/201709271000/</url>
+ </repository>
+ <repository>
+ <id>eclipse modeling</id>
+ <url>http://download.eclipse.org/modeling/emft/mwe/updates/releases/2.9.1/</url>
+ </repository>
+ <repository>
+ <id>eclipse xtext</id>
+ <url>http://download.eclipse.org/modeling/tmf/xtext/updates/releases/2.13.0/</url>
+ </repository>
+ <repository>
+ <id>codehaus-snapshots</id>
+ <name>disable dead 'Codehaus Snapshots' repository, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=481478</name>
+ <url>http://nexus.codehaus.org/snapshots/</url>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ </repository>
+ </repositories>
+ <pluginRepositories>
+ <pluginRepository>
+ <id>codehaus-snapshots</id>
+ <name>disable dead 'Codehaus Snapshots' repository, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=481478</name>
+ <url>http://nexus.codehaus.org/snapshots/</url>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ </pluginRepository>
+ </pluginRepositories>
+ <dependencies>
+ <dependency>
+ <groupId>org.eclipse.xtext</groupId>
+ <artifactId>org.eclipse.xtext.xbase.web</artifactId>
+ <version>${xtextVersion}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.xtext</groupId>
+ <artifactId>org.eclipse.xtext.web.servlet</artifactId>
+ <version>${xtextVersion}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.xtend</groupId>
+ <artifactId>org.eclipse.xtend.lib</artifactId>
+ <version>${xtextVersion}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.webjars</groupId>
+ <artifactId>requirejs</artifactId>
+ <version>2.3.2</version>
+ </dependency>
+ <dependency>
+ <groupId>org.webjars</groupId>
+ <artifactId>jquery</artifactId>
+ <version>2.2.4</version>
+ </dependency>
+ <dependency>
+ <groupId>org.webjars</groupId>
+ <artifactId>ace</artifactId>
+ <version>1.2.3</version>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-annotations</artifactId>
+ <version>9.3.8.v20160314</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-client</artifactId>
+ <version>9.3.8.v20160314</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-simple</artifactId>
+ <version>1.7.25</version>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/rba.tool.editor.endpoint/release_note.md b/rba.tool.editor.endpoint/release_note.md
new file mode 100644
index 0000000..4ce2900
--- /dev/null
+++ b/rba.tool.editor.endpoint/release_note.md
@@ -0,0 +1,4 @@
+### Release Note
+- v1.0 (2021/02/15)
+ - first release for AGL
+
diff --git a/rba.tool.editor.endpoint/script/TemplateGenerator.groovy b/rba.tool.editor.endpoint/script/TemplateGenerator.groovy
new file mode 100644
index 0000000..ab06252
--- /dev/null
+++ b/rba.tool.editor.endpoint/script/TemplateGenerator.groovy
@@ -0,0 +1,1797 @@
+import groovy.io.FileType
+import java.io.File;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import rba.core.*;
+import rba.view.*;
+import rba.sound.*;
+import rba.tool.editor.rbaEditorModel.*;
+import sun.font.EAttribute;
+
+import org.eclipse.emf.ecore.util.EContentsEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+util.metaClass.getClassName = { it ->
+ String pattern = "core\$";
+ return it.split(pattern);
+}
+
+util.metaClass.getDisplaySize = { it ->
+ Size s;
+ SizeIdentifier si = it.getSize();
+ if (si instanceof SizeReference) {
+ s = si.getSize();
+ } else {
+ s = si;
+ }
+}
+
+util.metaClass.getZones = {
+ collect(Zone.class);
+}
+util.metaClass.getViewContents = {
+ collect(ViewContent.class);
+}
+util.metaClass.getSoundContents = {
+ collect(SoundContent.class);
+}
+util.metaClass.getAreaSets = {
+ collect(AreaSet.class);
+}
+util.metaClass.getZoneSets = {
+ collect(ZoneSet.class);
+}
+util.metaClass.getViewContentSets = {
+ collect(ViewContentSet.class);
+}
+util.metaClass.getSoundContentSets = {
+ collect(SoundContentSet.class);
+}
+util.metaClass.getProject = {
+ p = null;
+ projects = collect(Project.class);
+ if (!projects.isEmpty()) p = projects.get(0)
+ p;
+}
+
+class util2 {
+ static List<Area> allAreas;
+ static List<Zone> allZones;
+ static List<ViewContent> allViewContents;
+ static List<SoundContent> allSoundContents;
+
+ static void setAll(List<Area> areas, List<Zone> zones, List<ViewContent> viewContents, List<SoundContent> soundContents) {
+ allAreas = areas;
+ allZones = zones;
+ allViewContents = viewContents;
+ allSoundContents = soundContents;
+ }
+
+ static void addAllIfNotContains(Collection<?> list, Collection<?> all) {
+ all.each {
+ if (!list.contains(it)) {
+ list.add(it);
+ }
+ }
+ }
+
+ static Collection<Content> getLeafContentList(AbstractContent ac) {
+ Collection<Allocatable> result = new ArrayList<Allocatable>();
+ if (ac instanceof Content) {
+ result.add((Content)ac);
+ } else if (ac instanceof ContentSet) {
+ for (AbstractContent c : ((ContentSet)ac).getTarget()) {
+ addAllIfNotContains(result, getLeafContentList(c));
+ }
+ }
+ return result;
+ }
+
+ static Collection<Allocatable> getAllocatableList(AbstractContent ac) {
+ Collection<Allocatable> result = new ArrayList<Allocatable>();
+ Collection<Allocatable> allocatables = new ArrayList<Allocatable>();
+ allocatables.addAll(ac.allocatable);
+ ac.contentGroup.each {
+ allocatables.addAll(it.allocatableList);
+ }
+ if (ac instanceof Content) {
+ allocatables.each {
+ if (it instanceof AllocatableSet) {
+ it.collectLeafAllocatable().each {
+ if (!result.contains(it)) {
+ result.add(it);
+ }
+ }
+ } else {
+ if (!result.contains(it)) {
+ result.add(it);
+ }
+ }
+ }
+ } else if (ac instanceof ContentSet) {
+ for (AbstractContent c : ((ContentSet)ac).getTarget()) {
+ addAllIfNotContains(result, getAllocatableList(c));
+ }
+ }
+ return result;
+ }
+
+ static String getFullName(EObject e) {
+ if (e == null) return "";
+ String fullName = e.name;
+ EObject parent = e.eContainer();
+ while (!(parent instanceof Package)) {
+ fullName = parent.getName() + "/" + fullName;
+ parent = parent.eContainer();
+ }
+ return fullName;
+ }
+
+ static String getFullNameWithClassName(EObject e) {
+ String className = e.eClass().getName().replaceAll('rba.([a-z]+.)+.impl.', '').replaceAll('Impl$', '');
+ String fullName = e.name + ":" + className;
+ EObject parent = e.eContainer();
+ while (!(parent instanceof Package)) {
+ className = parent.eClass().getName().replaceAll('rba.([a-z]+.)+.impl.', '').replaceAll('Impl$', '');
+ fullName = parent.getName() + ":" + className + "/" + fullName;
+ parent = parent.eContainer();
+ }
+ return fullName;
+ }
+
+ static String indentSet(String si, int nest) {
+ si = si + '\n';
+ for (int i = 0; i < nest; ++i) {
+ si = si + '\t';
+ }
+ return si;
+ }
+ static String jsonConstractor(EObject eO, int nest) {
+ String s = '';
+ if ((eO instanceof SugarExpression) && ((SugarExpression)eO).canExpand()) {
+ s = s + jsonConstractor(((SugarExpression) eO).getExpanded(), nest);
+ return s;
+ }
+ s = indentSet(s, nest);
+ s = s + '{';
+ nest = nest+1;
+ s = indentSet(s, nest);
+ s = s + jsonConstractorOtherThan(eO, nest, new ArrayList<String>());
+ s = indentSet(s, nest-1);
+ s = s + '}';
+ return s;
+ }
+ static String jsonConstractorOtherThan(EObject eO, int nest, Collection<String> excepts) {
+ if (eO == null) return;
+ String s = '';
+ boolean isObjRef = false;
+ boolean isFullNameWithClassName = false;
+ if (!excepts.contains("class")) {
+ String className = eO.eClass().getName().replaceAll('rba.([a-z]+.)+.impl.', '').replaceAll('Impl$', '');
+ if (className == "ObjectReference") {
+ isObjRef = true;
+ }
+ s += '\"class\":\"' + className + '\"';
+ }
+
+ for (EAttribute a : eO.eClass().getEAllAttributes()) {
+ if (a.isDerived() && a.isChangeable()) continue;
+ if (a.getName().contentEquals("description")) continue;
+ if (excepts.contains(a.getName())) continue;
+ s += ',';
+ s = indentSet(s, nest);
+ s += '\"' + a.getName() + '\":';
+ if ((a.name == "name") && isFullNameWithClassName) {
+ s += "\"" + getFullNameWithClassName(eO) + "\"";
+ continue;
+ }
+ if (a.isMany()) {
+ List<Object> list = (EList<Object>)eO.eGet(a);
+ s = s + '[';
+ for (Object atrObj : list) {
+ s = s + '\"' + atrObj.toString().replaceAll('\"','') + '\"';
+ if (atrObj != list.get(list.size-1)) s = s + ', ';
+ }
+ s = s + ']'
+ }else {
+ Object atrObj = eO.eGet(a);
+ s += '\"';
+ String str = atrObj.toString().replaceAll('\"','');
+ s += str + '\"';
+ }
+ }
+
+ for (EReference ref : eO.eClass().getEAllReferences()) {
+ if (ref.isContainer() || ref.isContainment()) continue;
+ if (excepts.contains(ref.getName())) continue;
+ if (ref.isMany() && eO.eGet(ref).size() < 1) continue;
+ s = s + ',';
+ s = indentSet(s, nest);
+ s = s + '\"' + ref.getName() + '\":';
+ if (ref.isMany()) {
+ s += '[';
+ s = indentSet(s, nest + 1);
+ for (EObject refObj : eO.eGet(ref)) {
+ s += '\"' + util2.getFullName(refObj) + '\",';
+ }
+ s = s.substring(0, s.length() - 1);
+ s = indentSet(s, nest);
+ s += ']';
+ } else {
+ s += '\"';
+ EObject refObj = (EObject)eO.eGet(ref);
+ String parentName = "";
+ if (isObjRef) {
+ s += refObj.getName();
+ } else if (refObj instanceof NamedElement) {
+ s += refObj.getName();
+ }
+ s += '\"';
+ }
+ }
+
+ List<EStructuralFeature> sflist = new ArrayList<EStructuralFeature>(eO.eClass().getEAllContainments());
+ for (EStructuralFeature i : sflist) {
+ if (excepts.contains(i.getName())) continue;
+ if (i.isMany()) {
+ EList<EObject> list = (EList<EObject>)eO.eGet(i);
+ if (list.isEmpty())
+ continue;
+ s = s + ",";
+ s = indentSet(s, nest);
+ s = s + '\"' + i.getName() + '\"' + ':';
+ s = s + "[";
+ for (Iterator<EObject> iterator = list.basicIterator();
+ iterator.hasNext(); ) {
+ EObject o = (EObject)iterator.next();
+ s = s + jsonConstractor(o, nest);
+ if(iterator.hasNext()) s = s + ",";
+ }
+ s = s + "]";
+ } else {
+ EObject o = (EObject)eO.eGet(i);
+ if (o == null) continue;
+ s = s + ",";
+ s = indentSet(s, nest);
+ s = s + '\"' + i.getName() + '\"' + ':';
+ s = s + jsonConstractor(o, nest);
+ }
+ }
+ return s;
+ }
+
+ static Collection<RuleObject> getRelatedObjectOf(EObject eO) {
+ Collection<RuleObject> result = new HashSet<Allocatable>();
+ for (EObject o : eO.eAllContents()) {
+ if (o instanceof ObjectReference) {
+ ObjectReference ref = (ObjectReference)o;
+ RuleObject ro = ref.getRefObject();
+ if ((ro instanceof AbstractAllocatable) ||
+ (ro instanceof AbstractContent) ||
+ (ro instanceof Scene)) {
+ result.add(ro);
+ }
+ }
+ }
+ return result;
+ }
+ static Comparator<AbstractAllocatable> getAllocatableComparator() {
+ return new Comparator<AbstractAllocatable>() {
+ @Override
+ public int compare(AbstractAllocatable o1, AbstractAllocatable o2) {
+ return o1.name.compareTo(o2.name);
+ }
+ }
+ }
+}
+
+class ConstraintAllocMap extends HashMap<Constraint, Set<Allocatable>> {
+ static ConstraintAllocMap instance;
+ static public ConstraintAllocMap getInstance() {
+ if (instance == null) {
+ instance = new ConstraintAllocMap();
+ }
+ return instance;
+ }
+ public addRelationship(Constraint constraint, Allocatable alloc) {
+ if (!this.containsKey(constraint)) {
+ this.put(constraint, new HashSet<Allocatable>());
+ }
+ this.get(constraint).add(alloc);
+ }
+}
+
+def engine = new groovy.text.GStringTemplateEngine()
+def binding = ['util': util,
+ 'util2' : util2,
+ 'constraint_alloc_map' : ConstraintAllocMap.instance,
+ 'ConstraintVisitResult' : ConstraintVisitResult,
+ 'ConstraintVisitor' : ConstraintVisitor,
+ 'allocateVisitor' : AllocateVisitor.instance,
+ 'trueHiddenVisitor' : TrueHiddenVisitor.instance,
+ 'falseHiddenVisitor' : FalseHiddenVisitor.instance,
+ 'trueAttenuateVisitor' : TrueAttenuateVisitor.instance,
+ 'falseAttenuateVisitor' : FalseAttenuateVisitor.instance
+ ]
+
+Path templateRootPath = Paths.get(location + "/../template").normalize();
+Path templateGenRootPath = Paths.get(location + "/../template-gen").normalize();
+
+templateRootPath.toFile().eachFileRecurse (FileType.FILES) { file ->
+ def name = file.getName()
+ def index = name.lastIndexOf('.');
+ if(index < 0) {
+ return;
+ }
+ String extension = name.substring(index + 1);
+ String baseName = name.substring(0 , index);
+ index = extension.lastIndexOf("template");
+ if(index < 0) {
+ return;
+ }
+ String newFileExtension = extension.substring(0,index);
+ def templatePath = file.toPath() // C:\dir1\dir2\template\aaa\bbb\ccc.javatemplate
+ Path templateGenPath = templateGenRootPath.relativize(templatePath); // ..\template\aaa\bbb\ccc.javatemplate
+ templateGenPath = templateGenPath.subpath(2, templateGenPath.getNameCount()); // aaa\bbb\ccc.javatemplate
+ templateGenPath = templateGenRootPath.resolve(templateGenPath); // C:\dir1\dir2\template-gen\aaa\bbb\ccc.javatemplate
+ templateGenPath = templateGenPath.getParent(); // C:\dir1\dir2\template-gen\aaa\bbb
+ def genPath = templateGenPath;
+ binding.put('genPath',genPath);
+ def template = engine.createTemplate(file).make(binding)
+ if (!Files.exists(templateGenPath)) {
+ templateGenPath.toFile().mkdirs();
+ }
+ new File(templateGenPath.toString() + "/" + baseName + "." + newFileExtension ).text = template.toString()
+}
+
+enum ConstraintVisitResult {
+ POSSIBLE,
+ POSSIBLE_TRUE,
+ POSSIBLE_FALSE,
+ ALWAYS_TRUE,
+ ALWAYS_FALSE,
+ UNRELATED
+}
+
+// http://www.redtoad.ca/ataylor/2011/09/groovy-multimethods-and-the-visitor-pattern/
+// how to use
+// checkResult = allocateVisitor.visitBool(expression)
+// if (
+// (checkResult == ConstraintVisitResult.ALWAYS_FALSE) ||
+// (checkResult == ConstraintVisitResult.POSSIBLE_FALSE) ||
+// (checkResult == ConstraintVisitResult.POSSIBLE) ||
+// (checkResult == ConstraintVisitResult.POSSIBLE_TRUE)
+// ) {
+class ConstraintVisitor {
+ static List<Area> allAreas;
+ static List<Zone> allZones;
+ static List<ViewContent> allViewContents;
+ static List<SoundContent> allSoundContents;
+
+ static void setAll(List<Area> areas, List<Zone> zones, List<ViewContent> viewContents, List<SoundContent> soundContents) {
+ allAreas = areas;
+ allZones = zones;
+ allViewContents = viewContents;
+ allSoundContents = soundContents;
+ }
+ Allocatable target;
+ static boolean isHiddenChiled_;
+ void setTarget (Allocatable a) {
+ target = a;
+ isHiddenChiled_ = false;
+
+ }
+
+ ConstraintVisitResult visitBool(SugarExpression e) {
+ if (e.canExpand()) {
+ return visitBool(e.getExpanded());
+ }
+ return ConstraintVisitResult.UNRELATED;
+ }
+ Collection visitObject(SugarExpression e) {
+ if (e.canExpand()) {
+ return visitObject(e.getExpanded());
+ }
+ return new HashSet();
+ }
+ boolean visitValue(SugarExpression e) {
+ if (e.canExpand()) {
+ return visitValue(e.getExpanded());
+ }
+ return false;
+ }
+ Collection visitRelatedObject(SugarExpression e) {
+ if (e.canExpand()) {
+ return visitRelatedObject(e.getExpanded());
+ }
+ return new HashSet();
+ }
+
+ ConstraintVisitResult visitBool(IfStatement e) {
+ ConstraintVisitResult condition = visitBool(e.getCondition());
+ ConstraintVisitResult thenExp = visitBool(e.getThenExpression());
+ ConstraintVisitResult elseExp = visitBool(e.getElseExpression());
+
+ if (condition == ConstraintVisitResult.ALWAYS_TRUE) {
+ if (thenExp != ConstraintVisitResult.UNRELATED) {
+ return thenExp;
+ }
+ return ConstraintVisitResult.POSSIBLE;
+ }
+ if (condition == ConstraintVisitResult.ALWAYS_FALSE) {
+ if (elseExp != ConstraintVisitResult.UNRELATED) {
+ return thenExp;
+ }
+ return ConstraintVisitResult.POSSIBLE;
+ }
+ if (thenExp == ConstraintVisitResult.ALWAYS_TRUE) {
+ if (elseExp == ConstraintVisitResult.ALWAYS_TRUE)
+ return ConstraintVisitResult.ALWAYS_TRUE;
+ if (elseExp == ConstraintVisitResult.ALWAYS_FALSE)
+ return ConstraintVisitResult.POSSIBLE;
+ if (elseExp == ConstraintVisitResult.POSSIBLE_TRUE)
+ return ConstraintVisitResult.POSSIBLE_TRUE;
+ if (elseExp == ConstraintVisitResult.POSSIBLE_FALSE)
+ return ConstraintVisitResult.POSSIBLE;
+ if (elseExp == ConstraintVisitResult.UNRELATED)
+ return ConstraintVisitResult.POSSIBLE_TRUE;
+ }
+ if (thenExp == ConstraintVisitResult.POSSIBLE_TRUE) {
+ if (elseExp == ConstraintVisitResult.ALWAYS_TRUE)
+ return ConstraintVisitResult.POSSIBLE_TRUE;
+ if (elseExp == ConstraintVisitResult.ALWAYS_FALSE)
+ return ConstraintVisitResult.POSSIBLE;
+ if (elseExp == ConstraintVisitResult.POSSIBLE_TRUE)
+ return ConstraintVisitResult.POSSIBLE_TRUE;
+ if (elseExp == ConstraintVisitResult.POSSIBLE_FALSE)
+ return ConstraintVisitResult.POSSIBLE;
+ if (elseExp == ConstraintVisitResult.UNRELATED)
+ return ConstraintVisitResult.POSSIBLE_TRUE;
+ }
+ if (thenExp == ConstraintVisitResult.ALWAYS_FALSE) {
+ if (elseExp == ConstraintVisitResult.ALWAYS_TRUE)
+ return ConstraintVisitResult.POSSIBLE;
+ if (elseExp == ConstraintVisitResult.ALWAYS_FALSE)
+ return ConstraintVisitResult.ALWAYS_FALSE;
+ if (elseExp == ConstraintVisitResult.POSSIBLE_TRUE)
+ return ConstraintVisitResult.POSSIBLE;
+ if (elseExp == ConstraintVisitResult.POSSIBLE_FALSE)
+ return ConstraintVisitResult.POSSIBLE_FALSE;
+ if (elseExp == ConstraintVisitResult.UNRELATED)
+ return ConstraintVisitResult.POSSIBLE_FALSE;
+ }
+ if (thenExp == ConstraintVisitResult.POSSIBLE_FALSE) {
+ if (elseExp == ConstraintVisitResult.ALWAYS_TRUE)
+ return ConstraintVisitResult.POSSIBLE;
+ if (elseExp == ConstraintVisitResult.ALWAYS_FALSE)
+ return ConstraintVisitResult.POSSIBLE_FALSE;
+ if (elseExp == ConstraintVisitResult.POSSIBLE_TRUE)
+ return ConstraintVisitResult.POSSIBLE;
+ if (elseExp == ConstraintVisitResult.POSSIBLE_FALSE)
+ return ConstraintVisitResult.POSSIBLE_FALSE;
+ if (elseExp == ConstraintVisitResult.UNRELATED)
+ return ConstraintVisitResult.POSSIBLE_FALSE;
+ }
+ if (thenExp == ConstraintVisitResult.UNRELATED) {
+ if (elseExp == ConstraintVisitResult.POSSIBLE)
+ return ConstraintVisitResult.POSSIBLE;
+ if (elseExp == ConstraintVisitResult.ALWAYS_TRUE)
+ return ConstraintVisitResult.POSSIBLE_TRUE;
+ if (elseExp == ConstraintVisitResult.ALWAYS_FALSE)
+ return ConstraintVisitResult.POSSIBLE_FALSE;
+ if (elseExp == ConstraintVisitResult.POSSIBLE_TRUE)
+ return ConstraintVisitResult.POSSIBLE_TRUE;
+ if (elseExp == ConstraintVisitResult.POSSIBLE_FALSE)
+ return ConstraintVisitResult.POSSIBLE_FALSE;
+ }
+ if (thenExp == ConstraintVisitResult.POSSIBLE || elseExp == ConstraintVisitResult.POSSIBLE) {
+ return ConstraintVisitResult.POSSIBLE;
+ }
+ if (condition != ConstraintVisitResult.UNRELATED) {
+ return ConstraintVisitResult.POSSIBLE;
+ }
+
+ return ConstraintVisitResult.UNRELATED;
+ }
+
+ ConstraintVisitResult visitBool(LambdaContext e) {
+ return visitBool(e.lambda.bodyText);
+ }
+
+ ConstraintVisitResult visitBool(HasComeEarlierThan e) {
+ if (visitRelatedObject(e.operand.get(0)).contains(target)) {
+ return ConstraintVisitResult.POSSIBLE;
+ }
+ if (visitRelatedObject(e.operand.get(1)).contains(target)) {
+ return ConstraintVisitResult.POSSIBLE;
+ }
+ return ConstraintVisitResult.UNRELATED;
+ }
+
+ ConstraintVisitResult visitBool(HasComeLaterThan e) {
+ if (visitRelatedObject(e.operand.get(0)).contains(target)) {
+ return ConstraintVisitResult.POSSIBLE;
+ }
+ if (visitRelatedObject(e.operand.get(1)).contains(target)) {
+ return ConstraintVisitResult.POSSIBLE;
+ }
+ return ConstraintVisitResult.UNRELATED;
+ }
+
+ ConstraintVisitResult visitBool(IsActive e) {
+ if (visitRelatedObject(e.operand.get(0)).contains(target)) {
+ return ConstraintVisitResult.POSSIBLE;
+ }
+ return ConstraintVisitResult.UNRELATED;
+ }
+
+ ConstraintVisitResult visitBool(HasBeenDisplayed e) {
+ if (visitRelatedObject(e.operand.get(0)).contains(target)) {
+ return ConstraintVisitResult.POSSIBLE;
+ }
+ return ConstraintVisitResult.UNRELATED;
+ }
+
+ ConstraintVisitResult visitBool(IsTypeOf e) {
+ if (visitRelatedObject(e.operand.get(0)).contains(target)) {
+ return ConstraintVisitResult.POSSIBLE;
+ }
+ return ConstraintVisitResult.UNRELATED;
+ }
+
+ ConstraintVisitResult visitBool(AndOperator e) {
+ int alwaysTrueCount = 0;
+ int alwaysFalseCount = 0;
+ int possibleTrueCount = 0;
+ int possibleFalseCount = 0;
+ int possibleCount = 0;
+ int unrelatedCount = 0;
+ int total = 0;
+ e.operand.each {
+ ConstraintVisitResult result = visitBool(it);
+ switch (result) {
+ case ConstraintVisitResult.ALWAYS_TRUE:
+ alwaysTrueCount++;
+ break;
+ case ConstraintVisitResult.ALWAYS_FALSE:
+ alwaysFalseCount++;
+ break;
+ case ConstraintVisitResult.POSSIBLE_TRUE:
+ possibleTrueCount++;
+ break;
+ case ConstraintVisitResult.POSSIBLE_FALSE:
+ possibleFalseCount++;
+ break;
+ case ConstraintVisitResult.POSSIBLE:
+ possibleCount++;
+ break;
+ case ConstraintVisitResult.UNRELATED:
+ default:
+ unrelatedCount++;
+ break;
+ }
+ total++;
+ }
+ if (alwaysFalseCount > 0) {
+ return ConstraintVisitResult.ALWAYS_FALSE;
+ }
+ if (alwaysTrueCount == total) {
+ return ConstraintVisitResult.ALWAYS_TRUE;
+ }
+ if (unrelatedCount == total) {
+ return ConstraintVisitResult.UNRELATED;
+ }
+ if (alwaysTrueCount + possibleTrueCount + unrelatedCount == total) {
+ return ConstraintVisitResult.POSSIBLE_TRUE;
+ }
+ if (alwaysFalseCount + possibleFalseCount + unrelatedCount == total) {
+ return ConstraintVisitResult.POSSIBLE_FALSE;
+ }
+ return ConstraintVisitResult.POSSIBLE;
+ }
+
+ // A->B
+ // B
+ // AT AF PT PF PB UN
+ // ------------------
+ // AT| AT AF PT PF PB PF
+ // AF| AT AT AT AT AT AT
+ // A PT| AT PF PB PB PB PB
+ // PF| AT PB PT PB PB PT
+ // PB| AT PB PB PB PB PB
+ // UN| AT PF PT PF PB UN
+ ConstraintVisitResult visitBool(ImpliesOperator e) {
+ ConstraintVisitResult lhresult = visitBool(e.operand.get(0));
+ ConstraintVisitResult rhresult = visitBool(e.operand.get(1));
+
+ if (lhresult == ConstraintVisitResult.ALWAYS_FALSE) {
+ return ConstraintVisitResult.ALWAYS_TRUE;
+ }
+ if (rhresult == ConstraintVisitResult.ALWAYS_TRUE) {
+ return ConstraintVisitResult.ALWAYS_TRUE;
+ }
+ if (lhresult == ConstraintVisitResult.UNRELATED) {
+ if (rhresult == ConstraintVisitResult.ALWAYS_FALSE) {
+ return ConstraintVisitResult.POSSIBLE_FALSE;
+ }
+ return rhresult;
+ }
+ if (lhresult == ConstraintVisitResult.POSSIBLE) {
+ return ConstraintVisitResult.POSSIBLE;
+ }
+ if (lhresult == ConstraintVisitResult.ALWAYS_TRUE) {
+ if (rhresult == ConstraintVisitResult.UNRELATED) {
+ return ConstraintVisitResult.POSSIBLE_FALSE;
+ }
+ return rhresult;
+ }
+ if (lhresult == ConstraintVisitResult.POSSIBLE_TRUE) {
+ if (rhresult == ConstraintVisitResult.POSSIBLE
+ || rhresult == ConstraintVisitResult.POSSIBLE_TRUE) {
+ return ConstraintVisitResult.POSSIBLE;
+ }
+ return ConstraintVisitResult.POSSIBLE_FALSE;
+ }
+ if (lhresult == ConstraintVisitResult.POSSIBLE_FALSE) {
+ if (rhresult == ConstraintVisitResult.UNRELATED
+ || rhresult == ConstraintVisitResult.POSSIBLE_TRUE) {
+ return ConstraintVisitResult.POSSIBLE_TRUE;
+ }
+ return ConstraintVisitResult.POSSIBLE;
+ }
+ }
+
+ ConstraintVisitResult visitBool(NotOperator e) {
+ ConstraintVisitResult result = visitBool(e.operand.get(0));
+ if (result == ConstraintVisitResult.ALWAYS_TRUE) {
+ return ConstraintVisitResult.ALWAYS_FALSE;
+ }
+ if (result == ConstraintVisitResult.ALWAYS_FALSE) {
+ return ConstraintVisitResult.ALWAYS_TRUE;
+ }
+ if (result == ConstraintVisitResult.POSSIBLE_TRUE) {
+ return ConstraintVisitResult.POSSIBLE_FALSE;
+ }
+ if (result == ConstraintVisitResult.POSSIBLE_FALSE) {
+ return ConstraintVisitResult.POSSIBLE_TRUE;
+ }
+ return result;
+ }
+
+ ConstraintVisitResult visitBool(OrOperator e) {
+ int alwaysTrueCount = 0;
+ int alwaysFalseCount = 0;
+ int possibleTrueCount = 0;
+ int possibleFalseCount = 0;
+ int possibleCount = 0;
+ int unrelatedCount = 0;
+ int total = 0;
+
+ e.operand.each {
+ ConstraintVisitResult result = visitBool(it);
+ switch (result) {
+ case ConstraintVisitResult.ALWAYS_TRUE:
+ alwaysTrueCount++;
+ break;
+ case ConstraintVisitResult.ALWAYS_FALSE:
+ alwaysFalseCount++;
+ break;
+ case ConstraintVisitResult.POSSIBLE_TRUE:
+ possibleTrueCount++;
+ break;
+ case ConstraintVisitResult.POSSIBLE_FALSE:
+ possibleFalseCount++;
+ break;
+ case ConstraintVisitResult.POSSIBLE:
+ possibleCount++;
+ break;
+ case ConstraintVisitResult.UNRELATED:
+ default:
+ unrelatedCount++;
+ break;
+ }
+ total++;
+ }
+ if (alwaysTrueCount > 0) {
+ return ConstraintVisitResult.ALWAYS_TRUE;
+ }
+ if (alwaysFalseCount == total) {
+ return ConstraintVisitResult.ALWAYS_FALSE;
+ }
+ if (unrelatedCount == total) {
+ return ConstraintVisitResult.UNRELATED;
+ }
+ if (alwaysTrueCount + possibleTrueCount + unrelatedCount == total) {
+ return ConstraintVisitResult.POSSIBLE_TRUE;
+ }
+ if (alwaysFalseCount + possibleFalseCount + unrelatedCount == total) {
+ return ConstraintVisitResult.POSSIBLE_FALSE;
+ }
+ return ConstraintVisitResult.POSSIBLE;
+ }
+
+ ConstraintVisitResult visitBool(IsEqualToOperator e) {
+ ConstraintVisitResult result = ConstraintVisitResult.UNRELATED
+ e.operand.each {
+ if (visitValue(it)) {
+ result = ConstraintVisitResult.POSSIBLE;
+ }
+ }
+ return result;
+ }
+
+ ConstraintVisitResult visitBool(IsGreaterThanEqualOperator e) {
+ ConstraintVisitResult result = ConstraintVisitResult.UNRELATED
+ e.operand.each {
+ if (visitValue(it)) {
+ result = ConstraintVisitResult.POSSIBLE;
+ }
+ }
+ return result;
+ }
+
+ ConstraintVisitResult visitBool(IsGreaterThanOperator e) {
+ ConstraintVisitResult result = ConstraintVisitResult.UNRELATED
+ e.operand.each {
+ if (visitValue(it)) {
+ result = ConstraintVisitResult.POSSIBLE;
+ }
+ }
+ return result;
+ }
+
+ ConstraintVisitResult visitBool(IsLowerThanEqualOperator e) {
+ ConstraintVisitResult result = ConstraintVisitResult.UNRELATED
+ e.operand.each {
+ if (visitValue(it)) {
+ result = ConstraintVisitResult.POSSIBLE;
+ }
+ }
+ return result;
+ }
+
+ ConstraintVisitResult visitBool(IsLowerThanOperator e) {
+ ConstraintVisitResult result = ConstraintVisitResult.UNRELATED
+ e.operand.each {
+ if (visitValue(it)) {
+ result = ConstraintVisitResult.POSSIBLE;
+ }
+ }
+ return result;
+ }
+
+ ConstraintVisitResult visitBool(ObjectCompare e) {
+ ConstraintVisitResult result = ConstraintVisitResult.UNRELATED;
+ e.operand.each {
+ if (it instanceof ObjectReference) {
+ ObjectReference objRef = (ObjectReference)it;
+ if (!(it.refObject instanceof Variable)) {
+ return;
+ }
+ }
+ if (visitRelatedObject(it).contains(target)) {
+ result = ConstraintVisitResult.POSSIBLE;
+ }
+ }
+ return result;
+ }
+
+ ConstraintVisitResult visitBool(IsOn e) {
+ if (visitRelatedObject(e.operand.get(0)).contains(target)) {
+ return ConstraintVisitResult.POSSIBLE;
+ }
+ return ConstraintVisitResult.UNRELATED;
+ }
+
+ Collection visitObject(IfStatement e) {
+ Collection results = new HashSet();
+ ConstraintVisitResult condition = visitBool(e.getCondition());
+ if (condition == ConstraintVisitResult.ALWAYS_TRUE) {
+ results.addAll(visitObject(e.getThenExpression()));
+ return results;
+ }
+ if (condition == ConstraintVisitResult.ALWAYS_FALSE) {
+ results.addAll(visitObject(e.getElseExpression()));
+ return results;
+ }
+ results.addAll(visitObject(e.getThenExpression()));
+ results.addAll(visitObject(e.getElseExpression()));
+ return results;
+ }
+
+ Collection visitObject(ObjectReference e) {
+ Collection results = new HashSet();
+ RuleObject obj = e.refObject;
+ if (obj instanceof Variable) {
+ if (obj.eContainer instanceof LetStatement) {
+ LetStatement ls = (LetStatement)(obj.eContainer);
+ results.addAll(visitObject(ls.body));
+ } else {
+ results.addAll(visitObject(obj.eContainer.eContainer.operand.get(0)));
+ }
+ } else {
+ if (obj instanceof ContentSet) {
+ results.addAll(obj.collectLeafContents());
+ } else if (obj instanceof AllocatableSet) {
+ results.addAll(obj.collectLeafAllocatable());
+ } else {
+ results.add(obj);
+ }
+ }
+ return results;
+ }
+
+ Collection visitObject(MemberFeatureReference e) {
+ return new HashSet();
+ }
+
+ Collection visitObject(SetOfOperator e) {
+ Collection results = new HashSet();
+ e.operand.each {
+ results.addAll(visitObject(it));
+ }
+ return results;
+ }
+
+ Collection visitObject(AllocatedContent e) {
+ Collection results = new HashSet();
+ for (Allocatable a : visitObject(e.operand.get(0))) {
+ if (e.eContainer() instanceof ObjectCompare) {
+ results.add(a)
+ } else {
+ results.addAll(a.contentsList);
+ }
+ }
+ return results;
+ }
+
+ Collection visitObject(GetContentsList e) {
+ Collection results = new HashSet();
+ for (Allocatable a : visitObject(e.operand.get(0))) {
+ results.addAll(a.contentsList);
+ }
+ return results;
+ }
+
+ Collection visitObject(ActiveContents e) {
+ Collection results = new HashSet();
+ for (Allocatable a : visitObject(e.operand.get(0))) {
+ results.addAll(a.contentsList);
+ }
+ return results;
+ }
+
+ Collection visitObject(GetAllocatables e) {
+ Collection results = new HashSet();
+ for (Object c : visitObject(e.operand.get(0))) {
+ if (c instanceof Content) {
+ results.addAll(c.allocatableList);
+ } else {
+ results.add(c);
+ }
+ }
+ return results;
+ }
+
+ Collection visitObject(DisplayingContent e) {
+ Collection results = new HashSet();
+ for (Allocatable a : visitObject(e.operand.get(0))) {
+ if (e.eContainer() instanceof ObjectCompare) {
+ results.add(a)
+ } else {
+ results.addAll(a.contentsList);
+ }
+ }
+ return results;
+ }
+
+ Collection visitObject(OutputtingSound e) {
+ Collection results = new HashSet();
+ for (Allocatable a : visitObject(e.operand.get(0))) {
+ if (e.eContainer() instanceof ObjectCompare) {
+ results.add(a)
+ } else {
+ results.addAll(a.contentsList);
+ }
+ }
+ return results;
+ }
+
+ Collection visitObject(ActiveState e) {
+ Collection results = new HashSet();
+ results.addAll(e.operand.get(0));
+ return results;
+ }
+
+ Collection visitObject(PreviousModifier e) {
+ return new HashSet();
+ }
+
+ Collection visitObject(AllInstanceOfArea e) {
+ return allAreas;
+ }
+
+ Collection visitObject(AllInstanceOfSoundContent e) {
+ return allSoundContents;
+ }
+
+ Collection visitObject(AllInstanceOfViewContent e) {
+ return allViewContents;
+ }
+
+ Collection visitObject(AllInstanceOfZone e) {
+ return allZones;
+ }
+
+ Collection visitObject(GetState e) {
+ return visitObject(e.operand.get(0));
+ }
+ Collection visitObject(SelectOperator e) {
+ Collection results = new HashSet();
+ results.addAll(visitObject(e.operand.get(0)));
+ if (visitBool(e.lambda.bodyText) != ConstraintVisitResult.UNRELATED) {
+ results.add(target);
+ }
+ return results;
+ }
+ Collection visitObject(LambdaContext e) {
+ return visitObject(e.lambda.bodyText);
+ }
+ Collection visitObject(Operator e) {
+ HashSet result = new HashSet();
+ for (Expression o : e.operand) {
+ result.addAll(visitObject(o));
+ }
+ return result;
+ }
+ Collection visitObject(Expression e) {
+ return new HashSet();
+ }
+
+ boolean visitValue(IfStatement e) {
+ ConstraintVisitResult condition = visitBool(e.getCondition());
+ if (condition == ConstraintVisitResult.UNRELATED) {
+ return visitValue(e.getThenExpression()) || visitValue(e.getElseExpression());
+ }
+ return true;
+ }
+
+ boolean visitValue(GetProperty e) {
+ return false;
+ }
+
+ boolean visitValue(IntegerValue e) {
+ return false;
+ }
+
+ boolean visitValue(SizeOperator e) {
+ return visitRelatedObject(e.operand.get(0)).contains(target);
+ }
+
+ Collection visitRelatedObject(IfStatement e) {
+ Collection results = new HashSet();
+ ConstraintVisitResult condition = visitBool(e.getCondition());
+ if (condition != ConstraintVisitResult.UNRELATED) {
+ results.add(target);
+ }
+ if (condition == ConstraintVisitResult.ALWAYS_TRUE) {
+ results.addAll(visitRelatedObject(e.getThenExpression()));
+ return results;
+ }
+ if (condition == ConstraintVisitResult.ALWAYS_FALSE) {
+ results.addAll(visitRelatedObject(e.getElseExpression()));
+ return results;
+ }
+ results.addAll(visitRelatedObject(e.getThenExpression()));
+ results.addAll(visitRelatedObject(e.getElseExpression()));
+ return results;
+ }
+
+ Collection visitRelatedObject(ObjectReference e) {
+ if (e.refObject instanceof Variable) {
+ Collection results = new HashSet();
+ if (e.refObject.eContainer instanceof LetStatement) {
+ LetStatement ls = (LetStatement)(e.refObject.eContainer);
+ if (e.eContainer() instanceof ObjectCompare) {
+ return visitRelatedObject(ls.body)
+ }
+ visitRelatedObject(ls.body).each {
+ if (it instanceof Allocatable) {
+ results.add(it);
+ }
+ }
+ } else {
+ if (e.eContainer() instanceof ObjectCompare) {
+ return visitRelatedObject(e.refObject.eContainer.eContainer.operand.get(0));
+ } else if(
+ e.eContainer() instanceof IsVisible ||
+ e.eContainer() instanceof IsSounding
+ ) {
+ Collection ret = visitRelatedObject(e.refObject.eContainer.eContainer.operand.get(0));
+ if (ret.contains(target)) results.add(target);
+ for (Object o : ret) {
+ if (o instanceof Content) {
+ Content c = (Content)o;
+ if (c.allocatableList.contains(target)) {
+ results.add(target);;
+ }
+ }
+ }
+ }
+ visitObject(e.refObject.eContainer.eContainer.operand.get(0)).each {
+ if (it instanceof Allocatable) {
+ results.add(it);
+ }
+ }
+ }
+ return results;
+ }
+ return visitObject(e);
+ }
+
+ Collection visitRelatedObject(MemberFeatureReference e) {
+ return new HashSet();
+ }
+
+ Collection visitRelatedObject(PreviousModifier e) {
+ return new HashSet();
+ }
+
+ Collection visitRelatedObject(SetOfOperator e) {
+ Collection results = new HashSet();
+ e.operand.each {
+ results.addAll(visitRelatedObject(it));
+ }
+ return results;
+ }
+
+ Collection visitRelatedObject(AllInstanceOfArea e) {
+ return visitObject(e);
+ }
+
+ Collection visitRelatedObject(AllInstanceOfSoundContent e) {
+ return visitObject(e);
+ }
+
+ Collection visitRelatedObject(AllInstanceOfViewContent e) {
+ return visitObject(e);
+ }
+
+ Collection visitRelatedObject(AllInstanceOfZone e) {
+ return visitObject(e);
+ }
+
+ Collection visitRelatedObject(ActiveState e) {
+ return visitRelatedObject(e.operand.get(0));
+ }
+ Collection visitRelatedObject(SelectOperator e) {
+ Collection results = new HashSet();
+ if (visitBool(e.lambda.bodyText) != ConstraintVisitResult.UNRELATED) {
+ results.add(target);
+ }
+ return results;
+ }
+ Collection visitRelatedObject(LambdaContext e) { // Max, Min
+ Collection results = new HashSet();
+ if (visitValue(e.lambda.bodyText)) {
+ results.add(target);
+ }
+ return results;
+ }
+
+ Collection visitRelatedObject(Operator e) {
+ HashSet result = new HashSet();
+ for (Expression o : e.operand) {
+ result.addAll(visitRelatedObject(o));
+ }
+ return result;
+ }
+ Collection visitRelatedObject(Expression e) {
+ return new HashSet();
+ }
+
+ Collection visitIndirectObject(ObjectReference e) {
+ if (e.refObject instanceof Variable) {
+ Collection results = new HashSet();
+ if (e.refObject.eContainer instanceof LetStatement) {
+ LetStatement ls = (LetStatement)(e.refObject.eContainer);
+ visitRelatedObject(ls.body).each {
+ if (it instanceof Allocatable) {
+ results.add(it);
+ }
+ }
+ } else {
+ if (e.eContainer() instanceof ObjectCompare ||
+ e.eContainer() instanceof IsVisible ||
+ e.eContainer() instanceof IsSounding
+ ) {
+ return visitRelatedObject(e.refObject.eContainer.eContainer.operand.get(0))
+ }
+ return visitIndirectObject(e.refObject.eContainer.eContainer.operand.get(0));
+ }
+ return results;
+ }
+ return new HashSet();
+ }
+ Collection visitIndirectObject(IfStatement e) {
+ return visitRelatedObject(e);
+ }
+ Collection visitIndirectObject(Expression e) {
+ return new HashSet();
+ }
+}
+
+class FalseHiddenVisitor extends ConstraintVisitor {
+ private static FalseHiddenVisitor instance;
+ static FalseHiddenVisitor getInstance() {
+ if (instance == null) {
+ instance = new FalseHiddenVisitor();
+ }
+ return instance;
+ }
+
+ ConstraintVisitResult visitBool(IsDisplayed e) {
+ if (visitIndirectObject(e.operand.get(0)).contains(target)) {
+ return ConstraintVisitResult.POSSIBLE;
+ }
+ return ConstraintVisitResult.UNRELATED;
+ }
+
+ ConstraintVisitResult visitBool(IsVisible e) {
+ if (visitIndirectObject(e.operand.get(0)).contains(target)) {
+ return ConstraintVisitResult.POSSIBLE;
+ }
+ return ConstraintVisitResult.UNRELATED;
+ }
+
+ ConstraintVisitResult visitBool(IsOutputted e) {
+ if (visitIndirectObject(e.operand.get(0)).contains(target)) {
+ return ConstraintVisitResult.POSSIBLE;
+ }
+ return ConstraintVisitResult.UNRELATED;
+ }
+
+ ConstraintVisitResult visitBool(IsSounding e) {
+ if (visitIndirectObject(e.operand.get(0)).contains(target)) {
+ return ConstraintVisitResult.POSSIBLE;
+ }
+ return ConstraintVisitResult.UNRELATED;
+ }
+
+ ConstraintVisitResult visitBool(IsHidden e) {
+ if (visitIndirectObject(e.operand.get(0)).contains(target)) {
+ return ConstraintVisitResult.POSSIBLE;
+ }
+ Collection ret = visitObject(e.operand.get(0));
+ if (ret.contains(target)) {
+ if (ret.size() == 1) {
+ return ConstraintVisitResult.ALWAYS_FALSE;
+ }
+ return ConstraintVisitResult.POSSIBLE_FALSE;
+ }
+ return ConstraintVisitResult.UNRELATED;
+ }
+
+ ConstraintVisitResult visitBool(IsAttenuated e) {
+ if (visitIndirectObject(e.operand.get(0)).contains(target)) {
+ return ConstraintVisitResult.POSSIBLE;
+ }
+ return ConstraintVisitResult.UNRELATED;
+ }
+
+ ConstraintVisitResult visitBool(IsMuted e) {
+ if (visitIndirectObject(e.operand.get(0)).contains(target)) {
+ return ConstraintVisitResult.POSSIBLE;
+ }
+ Collection ret = visitObject(e.operand.get(0));
+ if (ret.contains(target)) {
+ if (ret.size() == 1) {
+ return ConstraintVisitResult.ALWAYS_FALSE;
+ }
+ return ConstraintVisitResult.POSSIBLE_FALSE;
+ }
+ return ConstraintVisitResult.UNRELATED;
+ }
+
+ boolean visitValue(ContentValue e) {
+ return false;
+ }
+
+ boolean visitValue(StateValue e) {
+ return false;
+ }
+
+ Collection visitRelatedObject(AllocatedContent e) {
+ return new HashSet();
+ }
+
+ Collection visitRelatedObject(GetContentsList e) {
+ return new HashSet();
+ }
+
+ Collection visitRelatedObject(ActiveContents e) {
+ return new HashSet();
+ }
+
+ Collection visitRelatedObject(GetAllocatables e) {
+ return new HashSet();
+ }
+
+ Collection visitRelatedObject(DisplayingContent e) {
+ return new HashSet();
+ }
+
+ Collection visitRelatedObject(OutputtingSound e) {
+ return new HashSet();
+ }
+
+}
+
+class TrueHiddenVisitor extends ConstraintVisitor {
+ private static TrueHiddenVisitor instance;
+ static TrueHiddenVisitor getInstance() {
+ if (instance == null) {
+ instance = new TrueHiddenVisitor();
+ }
+ return instance;
+ }
+
+ ConstraintVisitResult visitBool(IsDisplayed e) {
+ if (visitIndirectObject(e.operand.get(0)).contains(target)) {
+ return ConstraintVisitResult.POSSIBLE;
+ }
+ Collection ret = visitObject(e.operand.get(0));
+ if (ret.contains(target)) {
+ if (ret.size() == 1) {
+ return ConstraintVisitResult.ALWAYS_FALSE;
+ }
+ return ConstraintVisitResult.POSSIBLE_FALSE;
+ }
+ return ConstraintVisitResult.UNRELATED;
+ }
+
+ ConstraintVisitResult visitBool(IsVisible e) {
+ if (visitIndirectObject(e.operand.get(0)).contains(target)) {
+ return ConstraintVisitResult.POSSIBLE;
+ }
+ Collection ret = visitObject(e.operand.get(0));
+ if (ret.contains(target)) return ConstraintVisitResult.POSSIBLE;
+ for (Object o : ret) {
+ if (o instanceof Content) {
+ Content c = (Content)o;
+ if (c.allocatableList.contains(target)) {
+ if ((ret.size() == 1) && (c.allocatableList.size() == 1)) {
+ return ConstraintVisitResult.ALWAYS_FALSE
+ }
+ return ConstraintVisitResult.POSSIBLE_FALSE;
+ }
+ }
+ }
+ return ConstraintVisitResult.UNRELATED;
+ }
+
+ ConstraintVisitResult visitBool(IsOutputted e) {
+ if (visitIndirectObject(e.operand.get(0)).contains(target)) {
+ return ConstraintVisitResult.POSSIBLE;
+ }
+ Collection ret = visitObject(e.operand.get(0));
+ if (ret.contains(target)) {
+ if (ret.size() == 1) {
+ return ConstraintVisitResult.ALWAYS_FALSE;
+ }
+ return ConstraintVisitResult.POSSIBLE_FALSE;
+ }
+ return ConstraintVisitResult.UNRELATED;
+ }
+
+ ConstraintVisitResult visitBool(IsSounding e) {
+ if (visitIndirectObject(e.operand.get(0)).contains(target)) {
+ return ConstraintVisitResult.POSSIBLE;
+ }
+ Collection ret = visitObject(e.operand.get(0));
+ if (ret.contains(target)) return ConstraintVisitResult.POSSIBLE;
+ for (Object o : ret) {
+ if (o instanceof Content) {
+ Content c = (Content)o;
+ if (c.allocatableList.contains(target)) {
+ if ((ret.size() == 1) && (c.allocatableList.size() == 1)) {
+ return ConstraintVisitResult.ALWAYS_FALSE
+ }
+ return ConstraintVisitResult.POSSIBLE_FALSE;
+ }
+ }
+ }
+ return ConstraintVisitResult.UNRELATED;
+ }
+
+ ConstraintVisitResult visitBool(IsHidden e) {
+ if (visitIndirectObject(e.operand.get(0)).contains(target)) {
+ return ConstraintVisitResult.POSSIBLE;
+ }
+ Collection ret = visitObject(e.operand.get(0));
+ if (ret.contains(target)) {
+ if (ret.size() == 1) {
+ return ConstraintVisitResult.ALWAYS_TRUE;
+ }
+ return ConstraintVisitResult.POSSIBLE_TRUE;
+ }
+ return ConstraintVisitResult.UNRELATED;
+ }
+
+ ConstraintVisitResult visitBool(IsAttenuated e) {
+ if (visitIndirectObject(e.operand.get(0)).contains(target)) {
+ return ConstraintVisitResult.POSSIBLE;
+ }
+ return ConstraintVisitResult.UNRELATED;
+ }
+
+ ConstraintVisitResult visitBool(IsMuted e) {
+ if (visitIndirectObject(e.operand.get(0)).contains(target)) {
+ return ConstraintVisitResult.POSSIBLE;
+ }
+ Collection ret = visitObject(e.operand.get(0));
+ if (ret.contains(target)) {
+ if (ret.size() == 1) {
+ return ConstraintVisitResult.ALWAYS_TRUE;
+ }
+ return ConstraintVisitResult.POSSIBLE_TRUE;
+ }
+ return ConstraintVisitResult.UNRELATED;
+ }
+
+ boolean visitValue(ContentValue e) {
+ if (visitIndirectObject(e.operand.get(0)).contains(target)) {
+ return true;
+ }
+ return false;
+ }
+
+ boolean visitValue(StateValue e) {
+ boolean result = false;
+ if (e.operand.get(0) instanceof ObjectReference) {
+ visitIndirectObject(e.operand.get(0)).each {
+ if (it instanceof Content) {
+ if (it.allocatableList.contains(target)) {
+ result = true;
+ }
+ } else if (it.equals(target)) {
+ result = true;
+ }
+ }
+ } else {
+ result = visitIndirectObject(e.operand.get(0)).contains(target);
+ }
+ return result;
+ }
+
+ Collection visitRelatedObject(AllocatedContent e) {
+ return new HashSet();
+ }
+
+ Collection visitRelatedObject(GetContentsList e) {
+ return new HashSet();
+ }
+
+ Collection visitRelatedObject(ActiveContents e) {
+ return new HashSet();
+ }
+
+ Collection visitRelatedObject(GetAllocatables e) {
+ return new HashSet();
+ }
+
+ Collection visitRelatedObject(DisplayingContent e) {
+ return visitRelatedObject(e.operand.get(0));
+ }
+
+ Collection visitRelatedObject(OutputtingSound e) {
+ return visitRelatedObject(e.operand.get(0));
+ }
+
+}
+
+class FalseAttenuateVisitor extends ConstraintVisitor {
+ private static FalseAttenuateVisitor instance;
+ static FalseAttenuateVisitor getInstance() {
+ if (instance == null) {
+ instance = new FalseAttenuateVisitor();
+ }
+ return instance;
+ }
+
+ ConstraintVisitResult visitBool(IsDisplayed e) {
+ return ConstraintVisitResult.UNRELATED;
+ }
+
+ ConstraintVisitResult visitBool(IsVisible e) {
+ return ConstraintVisitResult.UNRELATED;
+ }
+
+ ConstraintVisitResult visitBool(IsOutputted e) {
+ if (visitIndirectObject(e.operand.get(0)).contains(target)) {
+ return ConstraintVisitResult.POSSIBLE;
+ }
+ return ConstraintVisitResult.UNRELATED;
+ }
+
+ ConstraintVisitResult visitBool(IsSounding e) {
+ if (visitIndirectObject(e.operand.get(0)).contains(target)) {
+ return ConstraintVisitResult.POSSIBLE;
+ }
+ return ConstraintVisitResult.UNRELATED;
+ }
+
+ ConstraintVisitResult visitBool(IsHidden e) {
+ return ConstraintVisitResult.UNRELATED;
+ }
+
+ ConstraintVisitResult visitBool(IsAttenuated e) {
+ if (visitIndirectObject(e.operand.get(0)).contains(target)) {
+ return ConstraintVisitResult.POSSIBLE;
+ }
+ Collection ret = visitObject(e.operand.get(0));
+ if (ret.contains(target)) {
+ if (ret.size() == 1) {
+ return ConstraintVisitResult.ALWAYS_FALSE;
+ }
+ return ConstraintVisitResult.POSSIBLE_FALSE;
+ }
+ return ConstraintVisitResult.UNRELATED;
+ }
+
+ ConstraintVisitResult visitBool(IsMuted e) {
+ if (visitIndirectObject(e.operand.get(0)).contains(target)) {
+ return ConstraintVisitResult.POSSIBLE;
+ }
+ return ConstraintVisitResult.UNRELATED;
+ }
+
+ boolean visitValue(ContentValue e) {
+ if (visitIndirectObject(e.operand.get(0)).contains(target)) {
+ return true;
+ }
+ return false;
+ }
+
+ boolean visitValue(StateValue e) {
+ boolean result = false;
+ if (e.operand.get(0) instanceof ObjectReference) {
+ visitIndirectObject(e.operand.get(0)).each {
+ if (it instanceof Content) {
+ if (it.allocatableList.contains(target)) {
+ result = true;
+ }
+ } else if (it.equals(target)) {
+ result = true;
+ }
+ }
+ } else {
+ result = visitIndirectObject(e.operand.get(0)).contains(target);
+ }
+ return result;
+ }
+
+ Collection visitRelatedObject(AllocatedContent e) {
+ return new HashSet();
+ }
+
+ Collection visitRelatedObject(GetContentsList e) {
+ return new HashSet();
+ }
+
+ Collection visitRelatedObject(ActiveContents e) {
+ return new HashSet();
+ }
+
+ Collection visitRelatedObject(GetAllocatables e) {
+ return new HashSet();
+ }
+
+ Collection visitRelatedObject(DisplayingContent e) {
+ return new HashSet();
+ }
+
+ Collection visitRelatedObject(OutputtingSound e) {
+ return new HashSet();
+ }
+
+}
+
+class TrueAttenuateVisitor extends ConstraintVisitor {
+ private static TrueAttenuateVisitor instance;
+ static TrueAttenuateVisitor getInstance() {
+ if (instance == null) {
+ instance = new TrueAttenuateVisitor();
+ }
+ return instance;
+ }
+
+ ConstraintVisitResult visitBool(IsDisplayed e) {
+ return ConstraintVisitResult.UNRELATED;
+ }
+
+ ConstraintVisitResult visitBool(IsVisible e) {
+ return ConstraintVisitResult.UNRELATED;
+ }
+
+ ConstraintVisitResult visitBool(IsOutputted e) {
+ if (visitIndirectObject(e.operand.get(0)).contains(target)) {
+ return ConstraintVisitResult.POSSIBLE;
+ }
+ return ConstraintVisitResult.UNRELATED;
+ }
+
+ ConstraintVisitResult visitBool(IsSounding e) {
+ if (visitIndirectObject(e.operand.get(0)).contains(target)) {
+ return ConstraintVisitResult.POSSIBLE;
+ }
+ return ConstraintVisitResult.UNRELATED;
+ }
+
+ ConstraintVisitResult visitBool(IsHidden e) {
+ return ConstraintVisitResult.UNRELATED;
+ }
+
+ ConstraintVisitResult visitBool(IsAttenuated e) {
+ if (visitIndirectObject(e.operand.get(0)).contains(target)) {
+ return ConstraintVisitResult.POSSIBLE;
+ }
+ Collection ret = visitObject(e.operand.get(0));
+ if (ret.contains(target)) {
+ if (ret.size() == 1) {
+ return ConstraintVisitResult.ALWAYS_TRUE;
+ }
+ return ConstraintVisitResult.POSSIBLE_TRUE;
+ }
+ return ConstraintVisitResult.UNRELATED;
+ }
+
+ ConstraintVisitResult visitBool(IsMuted e) {
+ if (visitIndirectObject(e.operand.get(0)).contains(target)) {
+ return ConstraintVisitResult.POSSIBLE;
+ }
+ return ConstraintVisitResult.UNRELATED;
+ }
+
+ boolean visitValue(ContentValue e) {
+ if (visitIndirectObject(e.operand.get(0)).contains(target)) {
+ return true;
+ }
+ return false;
+ }
+
+ boolean visitValue(StateValue e) {
+ boolean result = false;
+ if (e.operand.get(0) instanceof ObjectReference) {
+ visitIndirectObject(e.operand.get(0)).each {
+ if (it instanceof Content) {
+ if (it.allocatableList.contains(target)) {
+ result = true;
+ }
+ } else if (it.equals(target)) {
+ result = true;
+ }
+ }
+ } else {
+ result = visitIndirectObject(e.operand.get(0)).contains(target);
+ }
+ return result;
+ }
+
+ Collection visitRelatedObject(AllocatedContent e) {
+ return new HashSet();
+ }
+
+ Collection visitRelatedObject(GetContentsList e) {
+ return new HashSet();
+ }
+
+ Collection visitRelatedObject(ActiveContents e) {
+ return new HashSet();
+ }
+
+ Collection visitRelatedObject(GetAllocatables e) {
+ return new HashSet();
+ }
+
+ Collection visitRelatedObject(DisplayingContent e) {
+ return new HashSet();
+ }
+
+ Collection visitRelatedObject(OutputtingSound e) {
+ return new HashSet();
+ }
+}
+
+class AllocateVisitor extends ConstraintVisitor {
+ private static AllocateVisitor instance;
+ static AllocateVisitor getInstance() {
+ if (instance == null) {
+ instance = new AllocateVisitor();
+ }
+ return instance;
+ }
+
+ ConstraintVisitResult visitBool(IsDisplayed e) {
+ if (visitObject(e.operand.get(0)).contains(target)) {
+ return ConstraintVisitResult.POSSIBLE;
+ }
+ if (visitIndirectObject(e.operand.get(0)).contains(target)) {
+ return ConstraintVisitResult.POSSIBLE;
+ }
+ return ConstraintVisitResult.UNRELATED;
+ }
+
+ ConstraintVisitResult visitBool(IsVisible e) {
+ Collection targets = visitObject(e.operand.get(0));
+ if (targets.contains(target)) return ConstraintVisitResult.POSSIBLE;
+ for (Object o : targets) {
+ if (o instanceof Content) {
+ Content c = (Content)o;
+ if (c.allocatableList.contains(target)) {
+ return ConstraintVisitResult.POSSIBLE;
+ }
+ }
+ }
+ if (visitIndirectObject(e.operand.get(0)).contains(target)) {
+ return ConstraintVisitResult.POSSIBLE;
+ }
+ return ConstraintVisitResult.UNRELATED;
+ }
+
+ ConstraintVisitResult visitBool(IsOutputted e) {
+ if (visitIndirectObject(e.operand.get(0)).contains(target)) {
+ return ConstraintVisitResult.POSSIBLE;
+ }
+ if (visitObject(e.operand.get(0)).contains(target)) {
+ return ConstraintVisitResult.POSSIBLE;
+ }
+ return ConstraintVisitResult.UNRELATED;
+ }
+
+ ConstraintVisitResult visitBool(IsSounding e) {
+ Collection targets = visitObject(e.operand.get(0));
+ if (targets.contains(target)) return ConstraintVisitResult.POSSIBLE;
+ for (Object o : targets) {
+ if (o instanceof Content) {
+ Content c = (Content)o;
+ if (c.allocatableList.contains(target)) {
+ return ConstraintVisitResult.POSSIBLE;
+ }
+ }
+ }
+ if (visitIndirectObject(e.operand.get(0)).contains(target)) {
+ return ConstraintVisitResult.POSSIBLE;
+ }
+ return ConstraintVisitResult.UNRELATED;
+ }
+
+ private static Collection ifStatement_result_;
+ ConstraintVisitResult visitBool(IsHidden e) {
+ ifStatement_result_ = new HashSet();
+ boolean backup = isHiddenChiled_;
+ isHiddenChiled_ = true;
+ if (visitIndirectObject(e.operand.get(0)).contains(target)) {
+ isHiddenChiled_ = backup;
+ return ConstraintVisitResult.POSSIBLE;
+ }
+ isHiddenChiled_ = backup;
+ return ConstraintVisitResult.UNRELATED;
+ }
+
+ ConstraintVisitResult visitBool(IsAttenuated e) {
+ ifStatement_result_ = new HashSet();
+ boolean backup = isHiddenChiled_;
+ isHiddenChiled_ = true;
+ if (visitIndirectObject(e.operand.get(0)).contains(target)) {
+ isHiddenChiled_ = backup;
+ return ConstraintVisitResult.POSSIBLE;
+ }
+ isHiddenChiled_ = backup;
+ return ConstraintVisitResult.UNRELATED;
+ }
+
+ ConstraintVisitResult visitBool(IsMuted e) {
+ ifStatement_result_ = new HashSet();
+ boolean backup = isHiddenChiled_;
+ isHiddenChiled_ = true;
+ if (visitIndirectObject(e.operand.get(0)).contains(target)) {
+ isHiddenChiled_ = backup;
+ return ConstraintVisitResult.POSSIBLE;
+ }
+ isHiddenChiled_ = backup;
+ return ConstraintVisitResult.UNRELATED;
+ }
+
+ boolean visitValue(ContentValue e) {
+ if (visitRelatedObject(e.operand.get(0)).contains(target)) {
+ return true;
+ }
+ return false;
+ }
+
+ boolean visitValue(StateValue e) {
+ boolean result = false;
+ if (e.operand.get(0) instanceof ObjectReference) {
+ if (e.operand.get(0) instanceof Variable) {
+ visitRelatedObject(e.operand.get(0)).each {
+ if (it instanceof Content) {
+ if (it.allocatableList.contains(target)) {
+ result = true;
+ }
+ } else if (it.equals(target)) {
+ result = true;
+ }
+ }
+ }
+ } else {
+ result = visitRelatedObject(e.operand.get(0)).contains(target);
+ }
+ return result;
+ }
+ Collection visitRelatedObject(IfStatement e) {
+ if (isHiddenChiled_) {
+ ConstraintVisitResult condition = visitBool(e.getCondition());
+ if (condition != ConstraintVisitResult.UNRELATED) {
+ ifStatement_result_.add(target);
+ }
+ if (condition == ConstraintVisitResult.ALWAYS_TRUE) {
+ visitRelatedObject(e.getThenExpression());
+ return ifStatement_result_;
+ }
+ if (condition == ConstraintVisitResult.ALWAYS_FALSE) {
+ visitRelatedObject(e.getElseExpression());
+ return ifStatement_result_;
+ }
+ visitRelatedObject(e.getThenExpression());
+ visitRelatedObject(e.getElseExpression());
+ return ifStatement_result_;
+ } else {
+ Collection results = new HashSet();
+ ConstraintVisitResult condition = visitBool(e.getCondition());
+ if (condition != ConstraintVisitResult.UNRELATED) {
+ results.add(target);
+ }
+ if (condition == ConstraintVisitResult.ALWAYS_TRUE) {
+ results.addAll(visitRelatedObject(e.getThenExpression()));
+ return results;
+ }
+ if (condition == ConstraintVisitResult.ALWAYS_FALSE) {
+ results.addAll(visitRelatedObject(e.getElseExpression()));
+ return results;
+ }
+ results.addAll(visitRelatedObject(e.getThenExpression()));
+ results.addAll(visitRelatedObject(e.getElseExpression()));
+ return results;
+ }
+ }
+ Collection visitRelatedObject(AllocatedContent e) {
+ return visitRelatedObject(e.operand.get(0));
+ }
+
+ Collection visitRelatedObject(GetContentsList e) {
+ return visitObject(e);
+ }
+
+ Collection visitRelatedObject(ActiveContents e) {
+ return visitObject(e);
+ }
+
+ Collection visitRelatedObject(GetAllocatables e) {
+ return visitObject(e);
+ }
+
+ Collection visitRelatedObject(DisplayingContent e) {
+ return visitRelatedObject(e.operand.get(0));
+ }
+
+ Collection visitRelatedObject(OutputtingSound e) {
+ return visitRelatedObject(e.operand.get(0));
+ }
+} \ No newline at end of file
diff --git a/rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/RBAModelServiceDispatcher.xtend b/rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/RBAModelServiceDispatcher.xtend
new file mode 100644
index 0000000..067a03b
--- /dev/null
+++ b/rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/RBAModelServiceDispatcher.xtend
@@ -0,0 +1,37 @@
+package rba.tool.editor.endpoint
+
+import com.google.inject.Inject
+import javax.inject.Singleton
+import org.eclipse.xtext.util.internal.Log
+import org.eclipse.xtext.web.server.IServiceContext
+import org.eclipse.xtext.web.server.InvalidRequestException
+import org.eclipse.xtext.web.server.XtextServiceDispatcher
+import org.eclipse.xtext.web.server.generator.GeneratorService
+
+@Log
+@Singleton
+class RBAModelServiceDispatcher extends XtextServiceDispatcher {
+
+ @Inject
+ private GeneratorService generatorService;
+
+ override protected createServiceDescriptor(String serviceType, IServiceContext context) {
+ if (serviceType == "generate-all") {
+ return getGeneratorAllService(context)
+ }
+ super.createServiceDescriptor(serviceType, context)
+ }
+
+ protected def getGeneratorAllService(IServiceContext context) throws InvalidRequestException {
+ val document = getDocumentAccess(context)
+ new ServiceDescriptor => [
+ service = [
+ try {
+ generatorService.getResult(document)
+ } catch (Throwable throwable) {
+ handleError(throwable)
+ }
+ ]
+ ]
+ }
+}
diff --git a/rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/RBAModelServlet.xtend b/rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/RBAModelServlet.xtend
new file mode 100644
index 0000000..b543381
--- /dev/null
+++ b/rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/RBAModelServlet.xtend
@@ -0,0 +1,68 @@
+/*
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.endpoint
+
+import com.google.inject.Injector
+import javax.servlet.annotation.WebServlet
+import org.eclipse.emf.common.util.URI
+import org.eclipse.xtext.resource.IResourceServiceProvider
+import org.eclipse.xtext.util.DisposableRegistry
+import org.eclipse.xtext.web.server.InvalidRequestException.UnknownLanguageException
+import org.eclipse.xtext.web.servlet.HttpServiceContext
+import org.eclipse.xtext.web.servlet.XtextServlet
+import rba.tool.editor.endpoint.server.persistence.RBAModelResourceBaseProviderImpl
+import org.eclipse.xtext.web.server.XtextServiceDispatcher.ServiceDescriptor
+import org.eclipse.xtext.web.server.IServiceResult
+
+/**
+ * Deploy this class into a servlet container to enable DSL-specific services.
+ */
+@WebServlet(name='XtextServices', urlPatterns='/xtext-service/*')
+class RBAModelServlet extends XtextServlet {
+
+ val serviceProviderRegistry = IResourceServiceProvider.Registry.INSTANCE
+
+ DisposableRegistry disposableRegistry
+
+ override init() {
+ super.init()
+ val resourceBaseProvider = new RBAModelResourceBaseProviderImpl('')
+ new RBAModelWebSetup(resourceBaseProvider).createInjectorAndDoEMFRegistration
+ }
+
+ override protected getInjector(HttpServiceContext serviceContext) throws UnknownLanguageException {
+ var IResourceServiceProvider resourceServiceProvider
+
+ val emfURI = URI.createURI('./sample.rba')
+ val contentType = serviceContext.getParameter('contentType')
+ if (contentType.nullOrEmpty) {
+
+ resourceServiceProvider = serviceProviderRegistry.getResourceServiceProvider(emfURI)
+ if (resourceServiceProvider === null) {
+ if (emfURI.toString.empty)
+ throw new UnknownLanguageException('''Unable to identify the Xtext language: missing parameter 'resource' or 'contentType'.''')
+ else
+ throw new UnknownLanguageException('''Unable to identify the Xtext language for resource emfURI.''')
+ }
+ } else {
+ resourceServiceProvider = serviceProviderRegistry.getResourceServiceProvider(emfURI, contentType)
+ if (resourceServiceProvider === null)
+ throw new UnknownLanguageException('''Unable to identify the Xtext language for contentType contentType.''')
+ }
+ return resourceServiceProvider.get(Injector)
+ }
+
+ override protected getEncoding(ServiceDescriptor service, IServiceResult result) {
+ 'Shift_JIS'
+ }
+
+ override destroy() {
+ if (disposableRegistry !== null) {
+ disposableRegistry.dispose()
+ disposableRegistry = null
+ }
+ super.destroy()
+ }
+
+}
diff --git a/rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/RBAModelWebModule.xtend b/rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/RBAModelWebModule.xtend
new file mode 100644
index 0000000..b0aeab3
--- /dev/null
+++ b/rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/RBAModelWebModule.xtend
@@ -0,0 +1,57 @@
+/*
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.endpoint
+
+import com.google.inject.Binder
+import org.eclipse.xtend.lib.annotations.FinalFieldsConstructor
+import org.eclipse.xtext.generator.IGenerator2
+import org.eclipse.xtext.parser.IEncodingProvider
+import org.eclipse.xtext.web.server.XtextServiceDispatcher
+import org.eclipse.xtext.web.server.model.IWebResourceSetProvider
+import org.eclipse.xtext.web.server.persistence.IResourceBaseProvider
+import org.eclipse.xtext.web.server.persistence.IServerResourceHandler
+import rba.tool.editor.endpoint.generator.RBAModelWebGenerator
+import rba.tool.editor.endpoint.resource.RBAModelContentTypeProvider
+import rba.tool.editor.endpoint.resource.RBAModelResourceSetProvider
+import rba.tool.editor.endpoint.resource.RBAModelWebEncodingProvider
+import rba.tool.editor.endpoint.server.persistence.RBAModelServerResourceHandler
+import org.eclipse.xtext.web.server.DefaultWebModule
+
+/**
+ * Use this class to register additional components to be used within the web application.
+ */
+@FinalFieldsConstructor
+class RBAModelWebModule extends DefaultWebModule {
+
+ val IResourceBaseProvider resourceBaseProvider
+
+ override bindIContentTypeProvider() {
+ return RBAModelContentTypeProvider
+ }
+
+ def Class<? extends IWebResourceSetProvider> bindIWebResourceSetProvider() {
+ return RBAModelResourceSetProvider
+ }
+
+ def void configureResourceBaseProvider(Binder binder) {
+ if (resourceBaseProvider !== null) binder.bind(IResourceBaseProvider).toInstance(resourceBaseProvider)
+ }
+
+ def Class<? extends IServerResourceHandler> bindIServerResourceHandler() {
+ return RBAModelServerResourceHandler
+ }
+
+ def Class<? extends XtextServiceDispatcher> bindRBAModelServiceDispatcher() {
+ return RBAModelServiceDispatcher
+ }
+
+ def Class<? extends IGenerator2> bindIGenerator2() {
+ return RBAModelWebGenerator
+ }
+
+ def Class<? extends IEncodingProvider> bindIEncodingProvider() {
+ return RBAModelWebEncodingProvider
+ }
+
+}
diff --git a/rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/RBAModelWebSetup.xtend b/rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/RBAModelWebSetup.xtend
new file mode 100644
index 0000000..f90e262
--- /dev/null
+++ b/rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/RBAModelWebSetup.xtend
@@ -0,0 +1,48 @@
+/*
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.endpoint
+
+import com.google.inject.Guice
+import com.google.inject.Injector
+import org.eclipse.emf.ecore.EPackage
+import org.eclipse.xtend.lib.annotations.FinalFieldsConstructor
+import org.eclipse.xtext.util.Modules2
+import org.eclipse.xtext.web.server.persistence.IResourceBaseProvider
+import rba.core.RBACorePackage
+import rba.sound.RBASoundPackage
+import rba.tool.editor.RBAModelRuntimeModule
+import rba.tool.editor.RBAModelStandaloneSetup
+import rba.tool.editor.ide.RBAModelIdeModule
+import rba.view.RBAViewPackage
+
+/**
+ * Initialization support for running Xtext languages in web applications.
+ */
+@FinalFieldsConstructor
+class RBAModelWebSetup extends RBAModelStandaloneSetup {
+
+ val IResourceBaseProvider resourceBaseProvider
+
+ override Injector createInjector() {
+ val runtimeModule = new RBAModelRuntimeModule()
+ val ideModule = new RBAModelIdeModule()
+ val webModule = new RBAModelWebModule(resourceBaseProvider)
+ return Guice.createInjector(Modules2.mixin(runtimeModule, ideModule, webModule))
+ }
+
+ override register(Injector injector) {
+
+ if (!EPackage.Registry.INSTANCE.containsKey("http://www.denso.com/ict/rba/core")) {
+ EPackage.Registry.INSTANCE.put("http://www.denso.com/ict/rba/core", RBACorePackage.eINSTANCE);
+ }
+ if (!EPackage.Registry.INSTANCE.containsKey("http://www.denso.com/ict/rba/view")) {
+ EPackage.Registry.INSTANCE.put("http://www.denso.com/ict/rba/view", RBAViewPackage.eINSTANCE);
+ }
+ if (!EPackage.Registry.INSTANCE.containsKey("http://www.denso.com/ict/rba/sound")) {
+ EPackage.Registry.INSTANCE.put("http://www.denso.com/ict/rba/sound", RBASoundPackage.eINSTANCE);
+ }
+ super.register(injector)
+ }
+
+}
diff --git a/rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/ServerLauncher.xtend b/rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/ServerLauncher.xtend
new file mode 100644
index 0000000..d689919
--- /dev/null
+++ b/rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/ServerLauncher.xtend
@@ -0,0 +1,213 @@
+/*
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.endpoint
+
+import java.io.IOException
+import java.net.InetSocketAddress
+import java.nio.file.NoSuchFileException
+import org.eclipse.emf.common.util.URI
+import org.eclipse.emf.common.util.WrappedException
+import org.eclipse.jetty.annotations.AnnotationConfiguration
+import org.eclipse.jetty.client.HttpClient
+import org.eclipse.jetty.server.Server
+import org.eclipse.jetty.webapp.MetaInfConfiguration
+import org.eclipse.jetty.webapp.WebAppContext
+import org.eclipse.jetty.webapp.WebInfConfiguration
+import org.eclipse.jetty.webapp.WebXmlConfiguration
+import rba.tool.editor.endpoint.server.persistence.RBAModelResourceBaseProviderImpl
+
+import java.io.File;
+import org.eclipse.jetty.util.log.*;
+import java.nio.charset.StandardCharsets;
+import java.io.OutputStreamWriter
+import java.io.FileOutputStream
+import java.io.BufferedReader
+import java.io.InputStreamReader
+import java.io.FileInputStream
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+
+/**
+ * This program starts an HTTP server for testing the web integration of your DSL.
+ * Just execute it and point a web browser to http://localhost:8080/
+ */
+class ServerLauncher {
+
+ private static String HOST_NAME = 'localhost';
+ private static int PORT_NUMBER = 18080;
+ private static String GENERATE_REQUEST_URL = 'http://%s:%d/xtext-service/generate-all?resource=%s';
+
+ def static void main(String[] args) {
+ var successFile = new File(new File(ServerLauncher.getProtectionDomain().getCodeSource().getLocation().toURI()).parent + "/" + "success")
+ if(successFile.exists)
+ {
+ successFile.delete
+ }
+ System.setProperty("org.eclipse.jetty.util.log.class", NoLogger.name);
+
+ val server = new Server(new InetSocketAddress(HOST_NAME, PORT_NUMBER))
+ server.handler = new WebAppContext => [
+ resourceBase = '.'
+ contextPath = "/"
+ configurations = #[
+ new AnnotationConfiguration,
+ new WebXmlConfiguration,
+ new WebInfConfiguration,
+ new MetaInfConfiguration
+ ]
+ setAttribute(WebInfConfiguration.CONTAINER_JAR_PATTERN, '.*/rba\\.tool\\.editor\\.web/.*,.*\\.jar')
+ setInitParameter("org.mortbay.jetty.servlet.Default.useFileMappedBuffer", "false")
+ ]
+
+ try {
+ var outputDirStr = new File(ServerLauncher.getProtectionDomain().getCodeSource().getLocation().toURI()).parent;
+ if(args.length > 1) {
+ outputDirStr = args.get(1);
+ }
+
+ var outputDir = new File(outputDirStr);
+ if (!outputDir.exists()) {
+ System.err.println("No such file or directory: " + outputDirStr)
+ System.exit(1)
+ return;
+ }
+
+ server.start
+
+ if (args !== null && args.length > 0) {
+ doRequest(args.get(0))
+ }
+
+ server.stop
+ server.join
+
+ var successFile2 = new File(new File(ServerLauncher.getProtectionDomain().getCodeSource().getLocation().toURI()).parent + "/" + "success")
+ if(!successFile2.exists)
+ {
+ System.exit(1);
+ }
+ successFile2.delete
+
+ var srcDir = new File(ServerLauncher.getProtectionDomain().getCodeSource().getLocation().toURI()).parent;
+ var jsonFile = new File(srcDir + "/template-gen/RBAModel.json");
+ var tmpJsonFile = new File(srcDir + "/template-gen/RBAModel.json.tmp");
+ jsonFile.renameTo(tmpJsonFile);
+
+ var newJsonFile = new File(srcDir + "/template-gen/RBAModel.json");
+
+ var in = new BufferedReader(new InputStreamReader(new FileInputStream(tmpJsonFile)));
+ var writer = new OutputStreamWriter(new FileOutputStream(newJsonFile), StandardCharsets.UTF_8);
+ var line = "";
+ while((line = in.readLine()) !== null) {
+ writer.write(line);
+ if(in.ready()){
+ writer.write("\n");
+ }
+ }
+ writer.flush();
+ writer.close();
+ in.close();
+
+ tmpJsonFile.delete;
+
+ var targetFile = new File(outputDirStr + "/RBAModel.json");
+ if(newJsonFile != targetFile) {
+ jsonFile.renameTo(targetFile);
+ }
+
+ System.exit(0);
+
+ } catch (Exception exception) {
+ System.err.println(exception.message)
+ System.exit(1)
+ }
+ }
+
+ def static void doRequest(String resourceId) {
+ try {
+ val uri = URI.createURI(RBAModelResourceBaseProviderImpl.slashify(resourceId, true))
+ if (uri === null)
+ throw new IOException('The requested resource does not exist.')
+
+ val client = new HttpClient();
+ client.start();
+ val String resourceId_URLEnc = URLEncoder.encode(resourceId, "UTF-8");
+ val res = client.GET(String.format(GENERATE_REQUEST_URL, HOST_NAME, PORT_NUMBER, resourceId_URLEnc))
+ client.stop()
+ } catch (NoSuchFileException exception) {
+ exception.printStackTrace
+ System.err.format("%s: no such file or directory%n", resourceId);
+ throw exception.cause
+ } catch (IOException exception) {
+ System.err.format("%s%n", exception);
+ throw exception.cause
+ } catch (WrappedException exception) {
+ throw exception.cause
+ }
+ }
+}
+
+class NoLogger implements Logger {
+
+ override debug(Throwable thrown) {
+ return
+ }
+
+ override debug(String arg0, Object... arg1) {
+ return
+ }
+
+ override debug(String arg0, long arg1) {
+ return
+ }
+
+ override debug(String arg0, Throwable arg1) {
+ return
+ }
+
+ override getLogger(String name) {
+ return this
+ }
+
+ override getName() {
+ return "nothing"
+ }
+
+ override ignore(Throwable ignored) {
+ return
+ }
+
+ override info(Throwable thrown) {
+ return
+ }
+
+ override info(String arg0, Object... arg1) {
+ return
+ }
+
+ override info(String arg0, Throwable arg1) {
+ return
+ }
+
+ override isDebugEnabled() {
+ return false
+ }
+
+ override setDebugEnabled(boolean enabled) {
+ return
+ }
+
+ override warn(Throwable thrown) {
+ return
+ }
+
+ override warn(String arg0, Object... arg1) {
+ return
+ }
+
+ override warn(String arg0, Throwable arg1) {
+ return
+ }
+
+}
diff --git a/rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/generator/RBAModelWebGenerator.xtend b/rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/generator/RBAModelWebGenerator.xtend
new file mode 100644
index 0000000..2a9d1e7
--- /dev/null
+++ b/rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/generator/RBAModelWebGenerator.xtend
@@ -0,0 +1,400 @@
+package rba.tool.editor.endpoint.generator
+
+import java.util.List
+import java.io.File;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import groovy.lang.Binding;
+import groovy.util.GroovyScriptEngine;
+import org.codehaus.groovy.control.CompilerConfiguration;
+
+import org.eclipse.emf.ecore.resource.Resource
+import org.eclipse.emf.ecore.resource.ResourceSet
+import org.eclipse.xtext.generator.AbstractGenerator
+import org.eclipse.xtext.generator.IFileSystemAccess2
+import org.eclipse.xtext.generator.IGeneratorContext
+
+import rba.tool.editor.model.manager.ResourceManager
+import rba.tool.core.sort.SortValueManager;
+
+import rba.core.Allocatable;
+import rba.view.Area;
+import rba.sound.Zone;
+import rba.view.AreaSet;
+import rba.sound.ZoneSet;
+import rba.core.Content;
+import rba.view.ViewContent;
+import rba.view.ViewContentSet;
+import rba.sound.SoundContent;
+import rba.sound.SoundContentSet;
+import rba.core.State;
+import rba.core.Scene;
+import rba.view.Size;
+import rba.view.Display
+import rba.view.PositionContainer
+import rba.core.Package;
+import rba.core.Constraint;
+import rba.core.Variable;
+import rba.core.SetOfOperator;
+
+import rba.tool.editor.generator.z3.SortValueCodeGenerationSupporter;
+import rba.tool.core.sort.ISortValueCalculation;
+
+import java.io.OutputStreamWriter
+import java.io.FileOutputStream
+import java.nio.charset.StandardCharsets
+import rba.tool.core.sort.SortValue
+import java.util.Arrays
+import org.eclipse.emf.ecore.EObject
+import java.util.ArrayList
+import org.eclipse.emf.ecore.util.EContentsEList
+import org.eclipse.emf.ecore.EReference
+import org.eclipse.emf.common.util.EList
+
+class RBAModelWebGenerator extends AbstractGenerator {
+
+ override doGenerate(Resource resource, IFileSystemAccess2 fsa, IGeneratorContext context) {
+ var isError = false
+
+ for(r : resource.resourceSet.resources)
+ {
+ for(eo : r.allContents.toIterable)
+ {
+ //to resolve cross reference
+ var EContentsEList.FeatureIterator<EObject> fi = eo.eCrossReferences.iterator as EContentsEList.FeatureIterator<EObject>;
+ while( fi.hasNext() ) {
+ var EObject o = fi.next();
+ var EReference er = fi.feature() as EReference;
+ if (er.getEOpposite() !== null) {
+ //System.out.println(eo + "'s " + er.name + " --> " + o);
+ if (er.getEOpposite().isMany) {
+ var oppositeList =(o.eGet(er.getEOpposite()) as EList<EObject>);
+ if (!oppositeList.contains(eo)) {
+ oppositeList.add(eo)
+ }
+ } else {
+
+ }
+ }
+ }
+ }
+
+ for(w : r.warnings)
+ {
+ System.err.println(w.toString)
+ }
+ for(e : r.errors)
+ {
+ var filename = new File(r.URI.toFileString).name;
+ System.err.println("Error: " + filename + ":" + e.line + " " + e.message)
+ isError = true
+ }
+ }
+
+ if(isError)
+ {
+ return;
+ }
+
+ runScript(WorkingDirectory.get() + "/script", "TemplateGenerator.groovy", resource.resourceSet);
+ }
+
+ def void runScript(String scriptDir, String fileName, ResourceSet resourceSet) {
+ try {
+ var dir = new File(scriptDir)
+ var file = new File(scriptDir + "/" + fileName)
+ if (!dir.exists() || !file.exists()) {
+ return;
+ }
+ var e = new GroovyScriptEngine(#[scriptDir], getClass().getClassLoader())
+ var config = new CompilerConfiguration()
+ config.setTargetDirectory(scriptDir)
+ var RunScriptInternalUtil util = new RunScriptInternalUtil()
+ util.setResourceManager(ResourceManager.INSTANCE)
+ util.setResourceSet(resourceSet)
+ util.loadZ3Lib();
+ util.calculate();
+ var Binding bind = new Binding()
+ bind.setVariable("location", scriptDir)
+ bind.setVariable("util", util)
+ e.setConfig(config)
+ var start_time = System.currentTimeMillis()
+ e.run(fileName, bind)
+ var finish_time = System.currentTimeMillis()
+ removeClassFiles(scriptDir)
+ new File(WorkingDirectory.get() + "/" + "success").createNewFile
+ } catch (Throwable e) {
+ e.printStackTrace()
+ System.err.println("error:" + e.getMessage())
+ }
+
+ }
+
+ def static void removeClassFiles(String folderPath) {
+ var File folder = new File(folderPath)
+ for (File file : folder.listFiles()) {
+ var pattern = Pattern.compile(".class$")
+ var Matcher m = pattern.matcher(file.getName())
+ if (file.isFile() && m.find()) {
+ file.delete()
+ }
+ }
+ }
+
+}
+
+class WorkingDirectory {
+ def static String get() {
+ return new File(RBAModelWebGenerator.getProtectionDomain().getCodeSource().getLocation().toURI()).parent;
+ }
+}
+
+class RunScriptInternalUtil {
+ ResourceSet resourceSet;
+ ResourceManager resourceManager
+ private static SortValueCodeGenerationSupporter generationSupporter = new SortValueCodeGenerationSupporter();
+
+ private SortValue areaZorderSortValue = new SortValue();
+ private SortValue visibilitySortValue = new SortValue();
+ private SortValue csPrioritySortValue = new SortValue();
+
+ static String OS_NAME = System.getProperty("os.name").toLowerCase();
+ def boolean isLinux() {
+ return OS_NAME.startsWith("linux");
+ }
+ def boolean isWindows() {
+ return OS_NAME.startsWith("windows");
+ }
+
+ def protected void setSortValueManager(SortValueManager sortValueManager) {
+ this.sortValueManager = sortValueManager
+ }
+
+ def protected void setResourceManager(ResourceManager resourceManager) {
+ this.resourceManager = resourceManager
+ }
+
+ def protected void setResourceSet(ResourceSet resourceSet) {
+ this.resourceSet = resourceSet
+ }
+
+ def boolean loadZ3Lib() {
+ var z3Path = WorkingDirectory.get();
+
+ if(isLinux()) {
+ z3Path = z3Path + "/lib/linux/z3/bin";
+ }
+ else if(isWindows()) {
+ z3Path = z3Path + "/lib/windows/z3";
+ }
+ else {
+ print("error: Not supported OS");
+ return false;
+ }
+
+ try {
+ loadLibs(z3Path);
+ addLibraryPath(z3Path);
+ return true;
+ } catch (Exception e) {
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+ def void loadLibs(String z3Path) throws Exception {
+ if(isLinux()) {
+ System.load(z3Path + "/libz3.so");
+ System.load(z3Path + "/libz3java.so");
+ }
+ else if(isWindows()) {
+ System.load(z3Path + "/Microsoft.Z3.dll");
+ System.load(z3Path + "/msvcr110.dll");
+ System.load(z3Path + "/msvcp110.dll");
+ System.load(z3Path + "/vcomp110.dll");
+ System.load(z3Path + "/libz3.dll");
+ System.load(z3Path + "/libz3java.dll");
+ }
+ }
+
+ def void addLibraryPath(String pathToAdd) throws Exception {
+ val usrPathsField = ClassLoader.getDeclaredField("usr_paths");
+ usrPathsField.setAccessible(true);
+ val paths = usrPathsField.get(null) as String[];
+ for (String path : paths) {
+ if (path.equals(pathToAdd)) {
+ return;
+ }
+ }
+ val newPaths = Arrays.copyOf(paths, paths.length + 1);
+ newPaths.set(newPaths.length - 1, pathToAdd);
+ usrPathsField.set(null, newPaths);
+ }
+
+ def void calculate() {
+ var code = resourceSet.compile.toString();
+ val createdFile = new File("./SortValueCalculation.java");
+ try {
+ var writer = new OutputStreamWriter(new FileOutputStream(createdFile), StandardCharsets.UTF_8);
+ writer.write(code, 0, code.length());
+ writer.flush();
+ writer.close();
+ }
+ catch(Exception e) {
+ System.out.println("error: " + e.toString());
+ }
+
+ var e = new GroovyScriptEngine("./", getClass().getClassLoader());
+ e.loadScriptByName("./SortValueCalculation.java");
+ var s = e.getGroovyClassLoader().loadClass("SortValueCalculation");
+
+ var calc = s.newInstance() as ISortValueCalculation;
+ calc.setUp();
+ areaZorderSortValue.setSortValue(calc.calculateArea_zorder());
+ visibilitySortValue.setSortValue(calc.calculateAllocatable_visibility());
+ csPrioritySortValue.setSortValue(calc.calculateContentState_priority());
+ calc.close();
+
+ createdFile.delete();
+ }
+
+ def compile(ResourceSet resourceSet) '''
+ «val allAllocatables = ResourceManager.INSTANCE.getRbaAllocatables(resourceSet)»
+
+ «val allAreas = ResourceManager.INSTANCE.getRbaAreas(resourceSet)»
+««« «FOR area : allAreas»
+««« «area.name» : [ «FOR content : area.contents»«content.name», «ENDFOR»]
+««« «ENDFOR»
+ «val allContents = ResourceManager.INSTANCE.getRbaContents(resourceSet)»
+««« «FOR content : allContents»
+««« «content.name» : [ «FOR area : content.allocatable»«area.name», «ENDFOR»]
+««« «ENDFOR»
+ «generationSupporter.generate(allContents, allAllocatables, allAreas)»
+ '''
+
+ def void print(String message) {
+ System.out.println(message)
+ }
+
+ def List<Allocatable> getAllocatables() {
+ return resourceManager.getRbaAllocatables(resourceSet)
+ }
+
+ def List<Area> getAreas() {
+ return resourceManager.getRbaAreas(resourceSet)
+ }
+
+ def List<Zone> getZones() {
+ return resourceManager.getRbaZones(resourceSet)
+ }
+
+ def List<AreaSet> getAreaSets() {
+ return resourceManager.getRbaAreaSets(resourceSet)
+ }
+
+ def List<ZoneSet> getZoneSets() {
+ return resourceManager.getRbaZoneSets(resourceSet)
+ }
+
+ def List<Content> getContents() {
+ return resourceManager.getRbaContents(resourceSet)
+ }
+
+ def List<ViewContent> getViewContents() {
+ return resourceManager.getRbaViewContents(resourceSet)
+ }
+
+ def List<ViewContentSet> getViewContentSets() {
+ return resourceManager.getRbaViewContentSets(resourceSet)
+ }
+
+ def List<SoundContent> getSoundContents() {
+ return resourceManager.getRbaSoundContents(resourceSet)
+ }
+
+ def List<SoundContentSet> getSoundContentSets() {
+ return resourceManager.getRbaSoundContentSets(resourceSet)
+ }
+
+ def List<State> getStates() {
+ return resourceManager.getRbaState(resourceSet)
+ }
+
+ def List<Scene> getScenes() {
+ return resourceManager.getRbaScenes(resourceSet)
+ }
+
+ def List<Size> getSizes() {
+ return resourceManager.getRbaSizes(resourceSet)
+ }
+
+ def List<Display> getDisplays() {
+ return resourceManager.getRbaDisplays(resourceSet)
+ }
+
+ def List<PositionContainer> getPositionContainers() {
+ return resourceManager.getRbaPositionContainers(resourceSet)
+ }
+
+ def List<Package> getPackages() {
+ return resourceManager.getRbaPackages(resourceSet)
+ }
+
+ def List<Package> getRootPackages() {
+ return resourceManager.getRbaRootPackages(resourceSet)
+ }
+
+ def List<Constraint> getConstraints() {
+ return resourceManager.getRbaConstraints(resourceSet)
+ }
+
+ def List<Constraint> getOnlineConstraints() {
+ return resourceManager.getRbaOnlineConstraints(resourceSet)
+ }
+
+ def List<Constraint> getOfflineConstraints() {
+ return resourceManager.getRbaOfflineConstraints(resourceSet)
+ }
+
+ def List<Constraint> getViewConstraints() {
+ return resourceManager.getRbaViewConstraints(resourceSet)
+ }
+
+ def List<Constraint> getSoundConstraints() {
+ return resourceManager.getRbaSoundConstraints(resourceSet)
+ }
+
+
+ def List<Variable> getVariables() {
+ return resourceManager.getRbaVariables(resourceSet)
+ }
+
+ def List<SetOfOperator> getSetOfOperators() {
+ return resourceManager.getRbaSetOfOperators(resourceSet)
+ }
+
+ def int getVisibility(String areaName) {
+ return visibilitySortValue.getValue(areaName);
+ }
+
+ def int getZorder(String areaName) {
+ return areaZorderSortValue.getValue(areaName);
+ }
+
+ def int getPriority(String contentName, String contentStateName) {
+ return csPrioritySortValue.getValue(contentName + "_" + contentStateName);
+ }
+
+ def <T extends EObject> List<T> collect(Class<T> clazz) {
+ var results = new ArrayList<T>();
+ var ite = resourceManager.getRbaAllContents(resourceSet).iterator();
+ while (ite.hasNext()) {
+ var obj = ite.next();
+ if (clazz.isAssignableFrom(obj.getClass())) {
+ results.add(obj as T);
+ }
+ }
+ return results;
+ }
+}
diff --git a/rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/resource/RBAModelContentTypeProvider.xtend b/rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/resource/RBAModelContentTypeProvider.xtend
new file mode 100644
index 0000000..b089502
--- /dev/null
+++ b/rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/resource/RBAModelContentTypeProvider.xtend
@@ -0,0 +1,15 @@
+package rba.tool.editor.endpoint.resource
+
+import org.eclipse.xtext.web.server.generator.DefaultContentTypeProvider
+import org.eclipse.xtext.web.server.generator.GeneratorService
+
+class RBAModelContentTypeProvider extends DefaultContentTypeProvider {
+
+ override getContentType(String fileName) {
+ if (fileName == GeneratorService.DEFAULT_ARTIFACT) {
+ return 'text/html';
+ }
+ super.getContentType(fileName);
+ }
+
+}
diff --git a/rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/resource/RBAModelResourceSetProvider.xtend b/rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/resource/RBAModelResourceSetProvider.xtend
new file mode 100644
index 0000000..52b0342
--- /dev/null
+++ b/rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/resource/RBAModelResourceSetProvider.xtend
@@ -0,0 +1,23 @@
+package rba.tool.editor.endpoint.resource
+
+import com.google.inject.Inject
+import com.google.inject.Provider
+import org.eclipse.emf.ecore.resource.ResourceSet
+import org.eclipse.xtext.web.server.IServiceContext
+import org.eclipse.xtext.web.server.model.IWebResourceSetProvider
+
+class RBAModelResourceSetProvider implements IWebResourceSetProvider {
+
+ static val MULTI_RESOURCE_PREFIX = 'multi-resource'
+
+ @Inject Provider<ResourceSet> provider
+
+ override get(String resourceId, IServiceContext serviceContext) {
+ if (resourceId !== null && resourceId.startsWith(MULTI_RESOURCE_PREFIX)) {
+ val pathEnd = Math.max(resourceId.indexOf('/'), MULTI_RESOURCE_PREFIX.length)
+ return serviceContext.session.get(ResourceSet -> resourceId.substring(0, pathEnd), [provider.get])
+ } else {
+ return provider.get
+ }
+ }
+}
diff --git a/rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/resource/RBAModelWebEncodingProvider.xtend b/rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/resource/RBAModelWebEncodingProvider.xtend
new file mode 100644
index 0000000..42b7034
--- /dev/null
+++ b/rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/resource/RBAModelWebEncodingProvider.xtend
@@ -0,0 +1,16 @@
+package rba.tool.editor.endpoint.resource
+
+import org.eclipse.emf.common.util.URI
+import org.eclipse.xtext.parser.IEncodingProvider
+import com.google.inject.Singleton
+
+@Singleton
+class RBAModelWebEncodingProvider extends IEncodingProvider.Runtime {
+
+ override getEncoding(URI uri) {
+ if (defaultEncoding !== null)
+ return defaultEncoding;
+ return 'utf-8';
+ }
+
+}
diff --git a/rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/server/persistence/RBAModelResourceBaseProviderImpl.xtend b/rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/server/persistence/RBAModelResourceBaseProviderImpl.xtend
new file mode 100644
index 0000000..02d1519
--- /dev/null
+++ b/rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/server/persistence/RBAModelResourceBaseProviderImpl.xtend
@@ -0,0 +1,27 @@
+package rba.tool.editor.endpoint.server.persistence
+
+import java.io.File
+import org.eclipse.emf.common.util.URI
+import org.eclipse.xtend.lib.annotations.FinalFieldsConstructor
+import org.eclipse.xtext.web.server.persistence.IResourceBaseProvider
+
+@FinalFieldsConstructor
+class RBAModelResourceBaseProviderImpl implements IResourceBaseProvider {
+
+ val String resourceBase
+
+ override getFileURI(String resourceId) {
+// if (resourceId.contains('..'))
+// throw new InvalidRequestException.InvalidParametersException('Invalid resource path.')
+ URI.createURI(slashify(resourceBase + resourceId, true))
+ }
+
+ def static String slashify(String resourceId, boolean isDirectory) {
+ var p = resourceId;
+ if (File.separatorChar != '/')
+ p = p.replace(File.separatorChar, '/');
+ if (!p.endsWith("/") && isDirectory)
+ p = p + "/";
+ return p;
+ }
+}
diff --git a/rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/server/persistence/RBAModelServerResourceHandler.xtend b/rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/server/persistence/RBAModelServerResourceHandler.xtend
new file mode 100644
index 0000000..b9e67a9
--- /dev/null
+++ b/rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/server/persistence/RBAModelServerResourceHandler.xtend
@@ -0,0 +1,287 @@
+package rba.tool.editor.endpoint.server.persistence
+
+import com.google.inject.Inject
+import com.google.inject.Injector
+import java.io.File
+import java.io.FileOutputStream
+import java.io.IOException
+import java.io.OutputStreamWriter
+import java.nio.file.attribute.BasicFileAttributes
+import java.nio.file.Files
+import java.nio.file.FileSystems
+import java.nio.file.FileVisitResult
+import java.nio.file.NoSuchFileException
+import java.nio.file.Path
+import java.nio.file.Paths
+import java.nio.file.SimpleFileVisitor
+import java.text.ParseException
+import java.util.ArrayList
+import java.util.LinkedHashSet
+import java.util.List
+import java.util.Set
+import org.eclipse.emf.common.util.URI
+import org.eclipse.emf.common.util.WrappedException
+import org.eclipse.emf.ecore.resource.ResourceSet
+import org.eclipse.xtext.nodemodel.BidiTreeIterable
+import org.eclipse.xtext.nodemodel.INode
+import org.eclipse.xtext.nodemodel.impl.CompositeNodeWithSemanticElement
+import org.eclipse.xtext.parser.IEncodingProvider
+import org.eclipse.xtext.resource.XtextResource
+import org.eclipse.xtext.resource.IResourceServiceProvider
+import org.eclipse.xtext.web.server.IServiceContext
+import org.eclipse.xtext.web.server.model.IWebDocumentProvider
+import org.eclipse.xtext.web.server.model.IWebResourceSetProvider
+import org.eclipse.xtext.web.server.model.IXtextWebDocument
+import org.eclipse.xtext.web.server.persistence.IResourceBaseProvider
+import org.eclipse.xtext.web.server.persistence.IServerResourceHandler
+import rba.tool.editor.model.manager.ResourceManager
+import rba.tool.editor.parser.antlr.RBAModelParser
+import rba.core.RuleObject
+import rba.core.Tag
+import rba.core.Stereotype
+
+class RBAModelServerResourceHandler implements IServerResourceHandler {
+
+ @Inject IResourceBaseProvider resourceBaseProvider
+
+ @Inject IWebResourceSetProvider resourceSetProvider
+
+ @Inject IWebDocumentProvider documentProvider
+
+ @Inject IEncodingProvider encodingProvider
+
+ override get(String resourceId, IServiceContext serviceContext) throws IOException {
+ try {
+ var resourceUris = new LinkedHashSet<URI>
+ val uri = resourceBaseProvider.getFileURI(resourceId)
+ if (uri === null)
+ throw new IOException('The requested resource does not exist.')
+
+ var path = Paths.get(uri.path);
+ var realPath = path.toRealPath(#[])
+ resourceUris.clear
+ resourceUris.addAll(Files.walk(realPath).filter(p|p.toString().endsWith(".rba")).map(p|URI.createFileURI(p.toString)).iterator.toSet)
+
+ if (resourceUris === null || resourceUris.size === 0)
+ throw new IOException('The requested resource does not exist.')
+
+ var appliedFolder = createAppliedFolder(realPath)
+ var appliedUriSet = new LinkedHashSet<URI>
+
+ var resourceSet = resourceSetProvider.get("./.applied", serviceContext)
+ for (resourceUri : resourceUris) {
+ resourceSet.getResource(resourceUri, true)
+ }
+
+ var stereotypeFolder = new File(appliedFolder, "stereotype")
+ stereotypeFolder.mkdir
+ appliedUriSet.clear
+ for (resource : resourceSet.resources) {
+ val parseResult = doRBAParse(resource.URI)
+ val allStereotypes = ResourceManager.INSTANCE.getRbaStereotypes(resourceSet)
+ val root = parseResult.rootNode
+ var completeContentBuf = new StringBuffer(root.text)
+ var appliedTagList = new LinkedHashSet<Tag>
+ var appliedLength = 0
+
+ for(node : root.asTreeIterable) {
+ var element = node.semanticElement
+ if( (node instanceof CompositeNodeWithSemanticElement)
+ && (element instanceof RuleObject)) {
+ val tagNodes = getTagNodes(node.asTreeIterable)
+ val appliedOffset = if(tagNodes.empty) 0 else tagNodes.last.endOffset + 1
+ var appliedBuf = new StringBuffer("")
+
+ for(tagNode : tagNodes) {
+ var tagElement = tagNode.semanticElement as Tag
+
+ for(stereoType : allStereotypes) {
+ if(!appliedTagList.contains(tagElement)
+ && isValidStereotype(tagElement, stereoType, element as RuleObject)) {
+ appliedTagList.add(tagElement)
+ val expanded = doExpandStereotype(stereoType, tagElement)
+ appliedBuf.append(expanded)
+ }
+ }
+
+ if(appliedBuf.length > 0) {
+ completeContentBuf.insert(appliedOffset + appliedLength, appliedBuf)
+ appliedLength += appliedBuf.length
+ }
+ }
+ }
+ }
+
+ completeContentBuf = guillemetize(completeContentBuf)
+
+ var sourceFile = new File(resource.URI.path)
+ var stereotypeAppliedFile = new File(stereotypeFolder, sourceFile.name)
+ var stereotypeAppliedOStream = new FileOutputStream(stereotypeAppliedFile, false)
+ stereotypeAppliedOStream.write(completeContentBuf.toString.getBytes("UTF-8"))
+ stereotypeAppliedOStream.close
+
+ appliedUriSet.add(URI.createFileURI(stereotypeAppliedFile.path))
+ }
+
+ resourceSet = resourceSetProvider.get("./.applied", serviceContext)
+ for (resourceUri : appliedUriSet) {
+ resourceSet.getResource(resourceUri, true)
+ }
+
+ val firstResource = resourceSet.resources.get(0) as XtextResource
+ return documentProvider.get(resourceId, serviceContext) => [
+ setInput(firstResource)
+ ]
+ } catch (NoSuchFileException exception) {
+ System.err.format("%s: no such file or directory%n", exception.file);
+ throw exception.cause
+ } catch (IOException exception) {
+ System.err.format("%s%n", exception);
+ throw exception.cause
+ } catch (WrappedException exception) {
+ throw exception.cause
+ }
+ }
+
+ override put(IXtextWebDocument document, IServiceContext serviceContext) throws IOException {
+ try {
+ val uri = resourceBaseProvider.getFileURI(document.resourceId)
+ val outputStream = document.resource.resourceSet.URIConverter.createOutputStream(uri)
+ val writer = new OutputStreamWriter(outputStream, encodingProvider.getEncoding(uri))
+ writer.write(document.text)
+ writer.close
+ } catch (WrappedException exception) {
+ throw exception.cause
+ }
+ }
+
+ def createAppliedFolder(Path realPath) {
+ var appliedFolder = new File(realPath.parent.toFile, ".applied_JSONGen")
+
+ if(appliedFolder.exists) {
+ Files.walkFileTree(FileSystems.getDefault.getPath(appliedFolder.path), new SimpleFileVisitor<Path>() {
+ override public FileVisitResult visitFile(Path file, BasicFileAttributes attrs)
+ throws IOException
+ {
+ Files.delete(file)
+ return FileVisitResult.CONTINUE
+ }
+
+ override public FileVisitResult postVisitDirectory(Path dir, IOException e)
+ throws IOException
+ {
+ if(e === null) {
+ Files.delete(dir)
+ return FileVisitResult.CONTINUE
+ }
+ else {
+ throw e
+ }
+ }
+ })
+ }
+
+ appliedFolder.mkdir
+
+ return appliedFolder
+ }
+
+ def doTemplateParse(Set<URI> uriSet, ResourceSet resourceSet) throws ParseException {
+ for (resourceUri : uriSet) {
+ resourceSet.getResource(resourceUri, true)
+ }
+
+ for (resource : resourceSet.resources) {
+ val errors = resource.errors
+ for (error : errors) {
+ var uri = resource.URI
+ var filename = uri.segment(uri.segmentCount - 1)
+ var buf = new StringBuffer(filename + "(l." + error.line + ": col." + error.column + "): error: "+ error.message + ".")
+ System.err.println(buf.toString)
+ throw new ParseException(buf.toString, error.line)
+ }
+ }
+
+ return resourceSet
+ }
+
+ def doRBAParse(URI resourceUri) {
+ var resourceServiceProvider = IResourceServiceProvider.Registry.INSTANCE.getResourceServiceProvider(resourceUri)
+ var injector = resourceServiceProvider.get(Injector)
+ var modelParser = injector.getInstance(RBAModelParser)
+
+ return modelParser.parse(Files.newBufferedReader(Paths.get(resourceUri.path)))
+ }
+
+ def expandCore(String templated, String[] arguments, String[] values, boolean trim) {
+ var expanded = templated
+
+ expanded = expanded.replace("@END@", "")
+ expanded = expanded.replace("@BEGIN@", "")
+ if(trim) {
+ expanded = expanded.trim
+ }
+
+ if( (arguments.size > 0)
+ && (values.size > 0)) {
+ for(index : 0..(values.size - 1)) {
+ var value = values.get(index)
+ value = value.replaceAll("\"", "")
+ expanded = expanded.replace("@{" + arguments.get(index) + "}", value)
+ }
+ }
+
+ return expanded
+ }
+
+ def doExpandStereotype(Stereotype stereotype, Tag tag) {
+ var variables = new ArrayList
+ if(stereotype.variables.size > 0) {
+ for(index : 0..(stereotype.variables.size - 1)) {
+ variables.add(stereotype.variables.get(index).name)
+ }
+ }
+ return expandCore(stereotype.bodyText, variables, tag.values, false)
+ }
+
+
+ def getTagNodes(BidiTreeIterable<INode> tree) {
+ val nodeList = new ArrayList
+ for(INode node : tree) {
+ if( (node instanceof CompositeNodeWithSemanticElement)
+ && (node.semanticElement instanceof Tag)) {
+ nodeList.add(node)
+ }
+ }
+
+ return nodeList
+ }
+
+ def isValidStereotype(Tag tag, Stereotype stereotype, RuleObject element) {
+ if( !(stereotype.name.equals(tag.name))
+ || !(element.eClass.name.equalsIgnoreCase(stereotype.targetModelName))) {
+ return false;
+ } else if((tag.values !== null)
+ && (stereotype.variables !== null)
+ && (stereotype.variables.size == tag.values.size)) {
+ return true;
+ } else if((tag.values === null)
+ && (stereotype.variables.size === 0)) {
+ return true;
+ }
+ return false;
+ }
+
+ def guillemetize(StringBuffer buf) {
+ val BRACKET_OPEN = "<<"
+ val BRACKET_CLOSE = ">>"
+ val GUILLEMET_OPEN = "«"
+ val GUILLEMET_CLOSE = "»"
+ var guillemetized = buf.toString
+
+ guillemetized = guillemetized.replace(BRACKET_OPEN, GUILLEMET_OPEN)
+ guillemetized = guillemetized.replace(BRACKET_CLOSE, GUILLEMET_CLOSE)
+
+ return buf.delete(0, buf.length).insert(0, guillemetized)
+ }
+}
diff --git a/rba.tool.editor.endpoint/template/RBAModel.jsontemplate b/rba.tool.editor.endpoint/template/RBAModel.jsontemplate
new file mode 100644
index 0000000..ba311d2
--- /dev/null
+++ b/rba.tool.editor.endpoint/template/RBAModel.jsontemplate
@@ -0,0 +1,568 @@
+{
+<% boolean isFirst = true; %>\
+ "root":{
+ "model":<%if(util.project != null){%><%=util.project.version%><%}else{%>""<%}%>,
+ "template":"02.00.00",
+<% if(util.areas.size) { %>\
+ "areas":[
+<% area_last = util.areas.get(util.areas.size - 1);
+ util.areas.each {%>\
+ {
+ "name":"<%=it.name%>",
+ "visibility":<%=util.getVisibility(it.name)%>,
+ "arbitrationPolicy":"<%=it.getArbitrationPolicy().name%>",
+ "zorder":<%=util.getZorder(it.name)%>,
+ "size":[
+<% size_last = it.size.get(it.size.size - 1);
+ it.size.each { %>\
+ {
+<% if(it.getClass().getName().toString() == "rba.view.impl.SizeReferenceImpl"){ %>\
+ "name":"<%=it.getSize().name%>",
+ "width":<%=it.getSize().getWidth()%>,
+ "height":<%=it.getSize().getHeight()%>
+<% }else if(it.getClass().getName().toString() == "rba.view.impl.SizeImpl"){ %>\
+ "name":"<%=it.name%>",
+ "width":<%=it.getWidth()%>,
+ "height":<%=it.getHeight()%>
+<% } %>\
+ }<%if (it != size_last) {%>,<%}%>
+<% } %>\
+ ]
+<% s = util2.jsonConstractorOtherThan(it, 3, Arrays.asList("class", "name", "arbitrationPolicy", "zorder", "contents", "allocatableGroup", "visibility", "size"));
+ if (s.size() > 1) {%><%=s%><%}%>\
+ }<%if (it != area_last) {%>,<%}%>
+<% }
+ isFirst = false;
+ } %>\
+<% if(util.getZones().size) { %>\
+<% if(!isFirst){ %>\
+ ],
+<% } %>\
+ "zones":[
+<% util.getZones().each {
+ zone_last = util.getZones().get(util.getZones().size - 1); %>\
+ {
+ "name":"<%=it.name%>",
+ "arbitrationPolicy":"<%=it.getArbitrationPolicy().name%>",
+ "priority":<%=util.getVisibility(it.name)%><%
+ if(it.getAttenuate() != null){%>,
+ "attenuateValue":<%=it.getAttenuate().value%>\
+<% }
+ s = util2.jsonConstractorOtherThan(it, 3, Arrays.asList("class", "name", "size", "arbitrationPolicy", "contents", "allocatableGroup", "visibility", "attenuate"));
+ if (s.size() > 1) {%><%=s%><%}%>
+ }<%if (it != zone_last) {%>,<%}%>
+<% }
+ } %>\
+<% if(util.getViewContents().size) { %>\
+ ],
+ "viewcontents":[
+<% cont_last = util.getViewContents().get(util.getViewContents().size - 1);
+ util.getViewContents().each { %>\
+ {
+ "name":"<%=it.name%>",<%cont_name=it.name%>
+ "loserType":"<%=it.getLoserType()%>",
+ "size":[
+<% size_last = it.size.get(it.size.size - 1);
+ it.size.each {
+ if(it.getClass().getName().toString() == "rba.view.impl.SizeReferenceImpl"){ %>\
+ {
+ "name":"<%=it.getSize().name%>",
+ "width":<%=it.getSize().getWidth()%>,
+ "height":<%=it.getSize().getHeight()%>
+ }<% if (it != size_last) {%>,<%}%>
+<% }else if(it.getClass().getName().toString() == "rba.view.impl.SizeImpl"){ %>\
+ {
+ "name":"<%=it.name%>",
+ "width":<%=it.getWidth()%>,
+ "height":<%=it.getHeight()%>
+ }<%if (it != size_last) {%>,<%}%>
+<% }
+ } %>\
+ ],
+ "states":[
+<% state_last = it.getStates().get(it.getStates().size - 1);
+ it.getStates().each { %>\
+ {
+ "name":"<%=it.name%>",
+ "priority":<%=util.getPriority(cont_name, it.name)%>
+ }<%if (it != state_last) {%>,<%}%>
+<% } %>\
+ ],
+ "allocatable":[
+<% alloc_last = util2.getAllocatableList(it).get(util2.getAllocatableList(it).size - 1);
+ util2.getAllocatableList(it).each {%>\
+ "<%=util2.getFullNameWithClassName(it)%>"<%if (it != alloc_last) {%>,<%} %>
+<% } %>\
+ ]<%
+ s = util2.jsonConstractorOtherThan(it, 3, Arrays.asList("class", "name", "size", "loserType", "contentGroup", "allocatable", "states"));
+ if (s.size() > 1) {%><%=s%><%}%>
+ }<%if (it != cont_last) {%>,<%}%>
+<% }
+ } %>\
+<% if(util.getSoundContents().size) { %>\
+ ],
+ "soundcontents":[
+<% cont_last = util.getSoundContents().get(util.getSoundContents().size - 1);
+ util.getSoundContents().each { %>\
+ {
+ "name":"<%=it.name%>",<%cont_name=it.name%>
+ "loserType":"<%=it.getLoserType()%>",
+ "states":[
+<% state_last = it.getStates().get(it.getStates().size - 1);
+ it.getStates().each { %>\
+ {
+ "name":"<%=it.name%>",
+ "priority":<%=util.getPriority(cont_name, it.name)%>
+ }<%if (it != state_last) {%>,<%}%>
+<% } %>\
+ ],
+ "allocatable":[
+<% alloc_last = util2.getAllocatableList(it).get(util2.getAllocatableList(it).size - 1);
+ util2.getAllocatableList(it).each {%>\
+ "<%=util2.getFullNameWithClassName(it)%>"<%if (it != alloc_last) {%>,<%} %>
+<% } %>\
+ ]<%
+ s = util2.jsonConstractorOtherThan(it, 3, Arrays.asList("class", "name", "loserType", "contentGroup", "allocatable", "states"));
+ if (s.size() > 1) {%><%=s%><%}%>
+ }<%if (it != cont_last) {%>,<%} %>
+<% }
+ } %>\
+<% if(util.displays.size) { %>\
+ ],
+ "displays":[
+<% disp_last = util.displays.get(util.displays.size - 1);
+ util.displays.each {
+ disp = it; %>\
+ {
+ "name":"<%=it.name%>",
+ "size":{
+ "name":"<%=util.getDisplaySize(disp).name%>",
+ "width":<%=util.getDisplaySize(disp).getWidth()%>,
+ "height":<%=util.getDisplaySize(disp).getHeight()%>
+ },
+ "PositionContainer":[
+<% pos_last = it.root.layout.subAreaPosition.get(it.root.layout.subAreaPosition.size - 1)
+ it.root.layout.subAreaPosition.each { %>\
+ {
+ "x":<%=it.getX()%>,
+ "y":<%=it.getY()%>,
+ "basePoint":"<%=it.getBasePoint()%>",
+ "areaReference":"<%=it.getArea().name%>"<%
+ if (it.getOffset().size > 0) { %>,
+ "Offset":[
+<% offset_last = it.getOffset().get(it.getOffset().size -1);
+ it.getOffset().each { %>\
+ {
+ "x":<%=it.getX()%>,
+ "y":<%=it.getY()%>,
+ "sizeReference":"<%=it.getSize().getSize().name%>"
+ }<% if (it != offset_last) {%>,<%} %>\
+<% } %>
+ ]<%
+ } %>
+ }<%if (it != pos_last) {%>,<%} %>
+<% } %>\
+ ]
+ }<%if (it != disp_last) {%>,<%} %>
+<% }
+ } %>\
+<% if(util.getAreaSets().size) { %>\
+ ],
+ "areasets":[
+<% set_last = util.getAreaSets().get(util.getAreaSets().size - 1);
+ util.getAreaSets().each { %>\
+ {
+ "name":"<%=it.name%>",
+ "target":[
+<% tar_last = it.collectLeafAllocatable().get(it.collectLeafAllocatable().size - 1);
+ it.collectLeafAllocatable().each { %>\
+ "<%=it.name%>"<%if (it != tar_last) {%>,<%} %>
+<% } %>\
+ ]
+ }<% if (it != set_last) {%>,<%} %>
+<% }
+ } %>\
+<% if(util.getZoneSets().size) { %>\
+ ],
+ "zonesets":[
+<% set_last = util.getZoneSets().get(util.getZoneSets().size - 1);
+ util.getZoneSets().each { %>\
+ {
+ "name":"<%=it.name%>",
+ "target":[
+<% tar_last = it.collectLeafAllocatable().get(it.collectLeafAllocatable().size - 1);
+ it.collectLeafAllocatable().each { %>\
+ "<%=it.name%>"<%if (it != tar_last) {%>,<%} %>
+<% } %>\
+ ]
+ }<% if (it != set_last) {%>,<%} %>
+<% }
+ } %>\
+<% if(util.getViewContentSets().size) { %>\
+ ],
+ "viewcontentsets":[
+<% set_last = util.getViewContentSets().get(util.getViewContentSets().size - 1);
+ util.getViewContentSets().each { %>\
+ {
+ "name":"<%=it.name%>",
+ "target":[
+<% isFirst = true;
+ util2.getLeafContentList(it).each {
+ if (!isFirst) { %>,
+<% } else {
+ isFirst = false;
+ } %>\
+ "<%=it.name%>"<%
+ } %>
+ ]
+ }<% if (it != set_last) {%>,<%} %>
+<% }
+ } %>\
+<% if(util.getSoundContentSets().size) { %>\
+ ],
+ "soundcontentsets":[
+<% set_last = util.getSoundContentSets().get(util.getSoundContentSets().size - 1);
+ util.getSoundContentSets().each { %>\
+ {
+ "name":"<%=it.name%>",
+ "target":[
+<% isFirst = true;
+ util2.getLeafContentList(it).each {
+ if (!isFirst) {%>,
+<% } else {
+ isFirst = false;
+ } %>\
+ "<%=it.name%>"<%
+ } %>
+ ]
+ }<% if (it != set_last) {%>,<%} %>
+<% }
+ } %>\
+<% if(util.scenes.size) { %>\
+ ],
+ "scenes":[
+<% scene_last = util.scenes.get(util.scenes.size - 1);
+ util.scenes.each { %>\
+ {
+ "name":"<%=it.name%>",
+ "global":"<%=it.isGlobal()%>"<%
+ if (it.isGlobal() && (it.getProperties().size > 0)) { %>,
+ "property":[
+<% prop_last = it.getProperties().get(it.getProperties().size - 1);
+ it.getProperties().each { %>\
+ {
+ "name":"<%=it.name%>",
+ "value":<%=it.getValue().getValue()%>
+ }<% if (it != prop_last) {%>,<%} %>
+<% }%>\
+ ]<%
+ s = util2.jsonConstractorOtherThan(it, 3, Arrays.asList("class", "name", "global", "properties"));
+ if (s.size() > 1) {%><%=s%><%}%><%
+ }%>
+ }<%if (it != scene_last) {%>,<%} %>
+<% }
+ } %>\
+<% if(util.constraints.size) { %>\
+ ],
+ "constraints":[<%
+ exp_last = util.constraints.get(util.constraints.size - 1);
+ nest = 2;
+ util.constraints.each {
+ %><%=util2.jsonConstractor(it, nest)%><%if (it != exp_last) {%>,<%} %>\
+<% } %>
+<% } %>\
+<%
+ util2.setAll(util.areas, util.zones, util.viewContents, util.soundContents);
+ ConstraintVisitor.setAll(util.areas, util.zones, util.viewContents, util.soundContents);
+ Map alloc_constraint_map = new HashMap();
+ if(util.areas.size > 0) {%>\
+ ],
+ "area_constraint_map":[<%
+ util.areas.each {
+ if (it != util.areas.get(0)) {%>,<%}
+ area = it;
+ alloc_constraint_map.put(area, new HashSet());
+ allocateVisitor.setTarget(area); %>
+ {"<%=area.name%>":[<%
+ isFirst = true;
+ util.constraints.each {
+ try {
+ if (it.runtime) {
+ checkResult = allocateVisitor.visitBool(it.expression);
+ if (
+ (checkResult == ConstraintVisitResult.ALWAYS_FALSE) ||
+ (checkResult == ConstraintVisitResult.POSSIBLE_FALSE) ||
+ (checkResult == ConstraintVisitResult.POSSIBLE) ||
+ (checkResult == ConstraintVisitResult.POSSIBLE_TRUE)
+ ) {
+ alloc_constraint_map.get(area).add(it);
+ constraint_alloc_map.addRelationship(it,area);
+ if (!isFirst) {
+ %>,<%} else {
+ isFirst = false;
+ }
+ %>"<%=it.name%>"<%
+ }
+ }
+ } catch (e) {
+ %>
+ Exception @ <%=it.name%>
+ <%=e%>
+ <%
+ }
+ }
+ %>]}<%
+ } %>
+ ],
+ "area_hidden_true_check_constraint_map":[<%
+ util.areas.each {
+ if (it != util.areas.get(0)) {%>,<%}
+ area = it;
+ trueHiddenVisitor.setTarget(area); %>
+ {"<%=area.name%>":[<%
+ isFirst = true;
+ util.constraints.each {
+ try {
+ if (it.runtime) {
+ checkResult = trueHiddenVisitor.visitBool(it.expression);
+ if (
+ (checkResult == ConstraintVisitResult.ALWAYS_FALSE) ||
+ (checkResult == ConstraintVisitResult.POSSIBLE_FALSE) ||
+ (checkResult == ConstraintVisitResult.POSSIBLE) ||
+ (checkResult == ConstraintVisitResult.POSSIBLE_TRUE)
+ ) {
+ constraint_alloc_map.addRelationship(it,area);
+ if (!isFirst) {
+ %>,<%} else {
+ isFirst = false;
+ }
+ %>"<%=it.name%>"<%
+ }
+ }
+ } catch (e) {
+ %>
+ Exception @ <%=it.name%>
+ <%=e%>
+ <%
+ }
+ }
+ %>]}<%
+ } %>
+ ],
+ "area_hidden_false_check_constraint_map":[<%
+ util.areas.each {
+ if (it != util.areas.get(0)) {%>,<%}
+ area = it;
+ falseHiddenVisitor.setTarget(area); %>
+ {"<%=area.name%>":[<%
+ isFirst = true;
+ util.constraints.each {
+ try {
+ if (it.runtime) {
+ checkResult = falseHiddenVisitor.visitBool(it.expression);
+ if (
+ (checkResult == ConstraintVisitResult.ALWAYS_FALSE) ||
+ (checkResult == ConstraintVisitResult.POSSIBLE_FALSE) ||
+ (checkResult == ConstraintVisitResult.POSSIBLE) ||
+ (checkResult == ConstraintVisitResult.POSSIBLE_TRUE)
+ ) {
+ constraint_alloc_map.addRelationship(it,area);
+ if (!isFirst) {
+ %>,<%} else {
+ isFirst = false;
+ }
+ %>"<%=it.name%>"<%
+ }
+ }
+ } catch (e) {
+ %>
+ Exception @ <%=it.name%>
+ <%=e%>
+ <%
+ }
+ }
+ %>]}<%
+ } %>
+<% }%>\
+<% if(util.zones.size > 0) { %>\
+ ],
+ "zone_constraint_map":[<%
+ util.zones.each {
+ if (it != util.zones.get(0)) {%>,<%}
+ zone = it;
+ alloc_constraint_map.put(zone, new HashSet());
+ allocateVisitor.setTarget(zone); %>
+ {"<%=zone.name%>":[<%
+ isFirst = true;
+ util.constraints.each {
+ try {
+ if (it.runtime) {
+ checkResult = allocateVisitor.visitBool(it.expression);
+ if (
+ (checkResult == ConstraintVisitResult.ALWAYS_FALSE) ||
+ (checkResult == ConstraintVisitResult.POSSIBLE_FALSE) ||
+ (checkResult == ConstraintVisitResult.POSSIBLE) ||
+ (checkResult == ConstraintVisitResult.POSSIBLE_TRUE)
+ ) {
+ constraint_alloc_map.addRelationship(it,zone);
+ alloc_constraint_map.get(zone).add(it);
+ if (!isFirst) {
+ %>,<%} else {
+ isFirst = false;
+ }
+ %>"<%=it.name%>"<%
+ }
+ }
+ } catch (e) {
+ %>
+ Exception @ <%=it.name%>
+ <%=e%>
+ <%
+ }
+ }
+ %>]}<%
+ } %>
+ ],
+ "zone_mute_true_check_constraint_map":[<%
+ util.zones.each {
+ if (it != util.zones.get(0)) {%>,<%}
+ zone = it;
+ trueHiddenVisitor.setTarget(zone); %>
+ {"<%=zone.name%>":[<%
+ isFirst = true;
+ util.constraints.each {
+ try {
+ if (it.runtime) {
+ checkResult = trueHiddenVisitor.visitBool(it.expression);
+ if (
+ (checkResult == ConstraintVisitResult.ALWAYS_FALSE) ||
+ (checkResult == ConstraintVisitResult.POSSIBLE_FALSE) ||
+ (checkResult == ConstraintVisitResult.POSSIBLE) ||
+ (checkResult == ConstraintVisitResult.POSSIBLE_TRUE)
+ ) {
+ constraint_alloc_map.addRelationship(it,zone);
+ if (!isFirst) {
+ %>,<%} else {
+ isFirst = false;
+ }
+ %>"<%=it.name%>"<%
+ }
+ }
+ } catch (e) {
+ %>
+ Exception @ <%=it.name%>
+ <%=e%>
+ <%
+ }
+ }
+ %>]}<%
+ } %>
+ ],
+ "zone_mute_false_check_constraint_map":[<%
+ util.zones.each {
+ if (it != util.zones.get(0)) {%>,<%}
+ zone = it;
+ falseHiddenVisitor.setTarget(zone); %>
+ {"<%=zone.name%>":[<%
+ isFirst = true;
+ util.constraints.each {
+ try {
+ if (it.runtime) {
+ checkResult = falseHiddenVisitor.visitBool(it.expression);
+ if (
+ (checkResult == ConstraintVisitResult.ALWAYS_FALSE) ||
+ (checkResult == ConstraintVisitResult.POSSIBLE_FALSE) ||
+ (checkResult == ConstraintVisitResult.POSSIBLE) ||
+ (checkResult == ConstraintVisitResult.POSSIBLE_TRUE)
+ ) {
+ constraint_alloc_map.addRelationship(it,zone);
+ if (!isFirst) {
+ %>,<%} else {
+ isFirst = false;
+ }
+ %>"<%=it.name%>"<%
+ }
+ }
+ } catch (e) {
+ %>
+ Exception @ <%=it.name%>
+ <%=e%>
+ <%
+ }
+ }
+ %>]}<%
+ } %>
+ ],
+ "zone_attenuate_true_check_constraint_map":[<%
+ util.zones.each {
+ if (it != util.zones.get(0)) {%>,<%}
+ zone = it;
+ trueAttenuateVisitor.setTarget(zone); %>
+ {"<%=zone.name%>":[<%
+ isFirst = true;
+ util.constraints.each {
+ try {
+ if (it.runtime) {
+ checkResult = trueAttenuateVisitor.visitBool(it.expression);
+ if (
+ (checkResult == ConstraintVisitResult.ALWAYS_FALSE) ||
+ (checkResult == ConstraintVisitResult.POSSIBLE_FALSE) ||
+ (checkResult == ConstraintVisitResult.POSSIBLE) ||
+ (checkResult == ConstraintVisitResult.POSSIBLE_TRUE)
+ ) {
+ constraint_alloc_map.addRelationship(it,zone);
+ if (!isFirst) {
+ %>,<%} else {
+ isFirst = false;
+ }
+ %>"<%=it.name%>"<%
+ }
+ }
+ } catch (e) {
+ %>
+ Exception @ <%=it.name%>
+ <%=e%>
+ <%
+ }
+ }
+ %>]}<%
+ } %>
+ ],
+ "zone_attenuate_false_check_constraint_map":[<%
+ util.zones.each {
+ if (it != util.zones.get(0)) {%>,<%}
+ zone = it;
+ falseAttenuateVisitor.setTarget(zone); %>
+ {"<%=zone.name%>":[<%
+ isFirst = true;
+ util.constraints.each {
+ try {
+ if (it.runtime) {
+ checkResult = falseAttenuateVisitor.visitBool(it.expression);
+ if (
+ (checkResult == ConstraintVisitResult.ALWAYS_FALSE) ||
+ (checkResult == ConstraintVisitResult.POSSIBLE_FALSE) ||
+ (checkResult == ConstraintVisitResult.POSSIBLE) ||
+ (checkResult == ConstraintVisitResult.POSSIBLE_TRUE)
+ ) {
+ constraint_alloc_map.addRelationship(it,zone);
+ if (!isFirst) {
+ %>,<%} else {
+ isFirst = false;
+ }
+ %>"<%=it.name%>"<%
+ }
+ }
+ } catch (e) {
+ %>
+ Exception @ <%=it.name%>
+ <%=e%>
+ <%
+ }
+ }
+ %>]}<%
+ }
+ }%>\
+ ]
+ }
+} \ No newline at end of file
diff --git a/rba.tool.editor.endpoint/xtend-gen/rba/tool/editor/endpoint/.gitignore b/rba.tool.editor.endpoint/xtend-gen/rba/tool/editor/endpoint/.gitignore
new file mode 100644
index 0000000..29bb64a
--- /dev/null
+++ b/rba.tool.editor.endpoint/xtend-gen/rba/tool/editor/endpoint/.gitignore
@@ -0,0 +1,12 @@
+/.RBAModelServiceDispatcher.java._trace
+/.RBAModelServlet.java._trace
+/.RBAModelWebModule.java._trace
+/.RBAModelWebSetup.java._trace
+/.ServerLauncher.java._trace
+/RBAModelServiceDispatcher.java
+/RBAModelServlet.java
+/RBAModelWebModule.java
+/RBAModelWebSetup.java
+/ServerLauncher.java
+/.NoLogger.java._trace
+/NoLogger.java \ No newline at end of file
diff --git a/rba.tool.editor.endpoint/xtend-gen/rba/tool/editor/endpoint/generator/.gitignore b/rba.tool.editor.endpoint/xtend-gen/rba/tool/editor/endpoint/generator/.gitignore
new file mode 100644
index 0000000..6471af6
--- /dev/null
+++ b/rba.tool.editor.endpoint/xtend-gen/rba/tool/editor/endpoint/generator/.gitignore
@@ -0,0 +1,6 @@
+/.RBAModelWebGenerator.java._trace
+/RBAModelWebGenerator.java
+/.RunScriptInternalUtil.java._trace
+/RunScriptInternalUtil.java
+/.WorkingDirectory.java._trace
+/WorkingDirectory.java \ No newline at end of file
diff --git a/rba.tool.editor.endpoint/xtend-gen/rba/tool/editor/endpoint/resource/.gitignore b/rba.tool.editor.endpoint/xtend-gen/rba/tool/editor/endpoint/resource/.gitignore
new file mode 100644
index 0000000..956ecda
--- /dev/null
+++ b/rba.tool.editor.endpoint/xtend-gen/rba/tool/editor/endpoint/resource/.gitignore
@@ -0,0 +1,6 @@
+/.RBAModelContentTypeProvider.java._trace
+/.RBAModelResourceSetProvider.java._trace
+/RBAModelContentTypeProvider.java
+/RBAModelResourceSetProvider.java
+/.RBAModelWebEncodingProvider.java._trace
+/RBAModelWebEncodingProvider.java
diff --git a/rba.tool.editor.endpoint/xtend-gen/rba/tool/editor/endpoint/server/persistence/.gitignore b/rba.tool.editor.endpoint/xtend-gen/rba/tool/editor/endpoint/server/persistence/.gitignore
new file mode 100644
index 0000000..22d355f
--- /dev/null
+++ b/rba.tool.editor.endpoint/xtend-gen/rba/tool/editor/endpoint/server/persistence/.gitignore
@@ -0,0 +1,4 @@
+/.RBAModelResourceBaseProviderImpl.java._trace
+/.RBAModelServerResourceHandler.java._trace
+/RBAModelResourceBaseProviderImpl.java
+/RBAModelServerResourceHandler.java
diff --git a/rba.tool.editor.ide/.classpath b/rba.tool.editor.ide/.classpath
new file mode 100644
index 0000000..9081d4f
--- /dev/null
+++ b/rba.tool.editor.ide/.classpath
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="src-gen"/>
+ <classpathentry kind="src" path="xtend-gen"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/rba.tool.editor.ide/.project b/rba.tool.editor.ide/.project
new file mode 100644
index 0000000..922b5ed
--- /dev/null
+++ b/rba.tool.editor.ide/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>rba.tool.editor.ide</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <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>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/rba.tool.editor.ide/.settings/org.eclipse.core.resources.prefs b/rba.tool.editor.ide/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/rba.tool.editor.ide/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/rba.tool.editor.ide/.settings/org.eclipse.jdt.core.prefs b/rba.tool.editor.ide/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..0c68a61
--- /dev/null
+++ b/rba.tool.editor.ide/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/rba.tool.editor.ide/META-INF/MANIFEST.MF b/rba.tool.editor.ide/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..c4ed6c0
--- /dev/null
+++ b/rba.tool.editor.ide/META-INF/MANIFEST.MF
@@ -0,0 +1,16 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-Version: 1.0.0.qualifier
+Bundle-SymbolicName: rba.tool.editor.ide; singleton:=true
+Bundle-ActivationPolicy: lazy
+Require-Bundle: rba.tool.editor,
+ org.eclipse.xtext.ide,
+ org.eclipse.xtext.xbase.ide,
+ org.antlr.runtime
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: rba.tool.editor.ide.contentassist.antlr,
+ rba.tool.editor.ide.contentassist.antlr.internal
+
diff --git a/rba.tool.editor.ide/build.properties b/rba.tool.editor.ide/build.properties
new file mode 100644
index 0000000..7a81430
--- /dev/null
+++ b/rba.tool.editor.ide/build.properties
@@ -0,0 +1,7 @@
+source.. = src/,\
+ src-gen/,\
+ xtend-gen/
+bin.includes = .,\
+ META-INF/,\
+ plugin.properties
+bin.excludes = **/*.xtend
diff --git a/rba.tool.editor.ide/plugin.properties b/rba.tool.editor.ide/plugin.properties
new file mode 100644
index 0000000..7574c65
--- /dev/null
+++ b/rba.tool.editor.ide/plugin.properties
@@ -0,0 +1,2 @@
+pluginName = RBA Tool Editor IDE
+providerName=DENSO CORPORATION \ No newline at end of file
diff --git a/rba.tool.editor.ide/src-gen/META-INF/services/org.eclipse.xtext.ISetup b/rba.tool.editor.ide/src-gen/META-INF/services/org.eclipse.xtext.ISetup
new file mode 100644
index 0000000..51ee32e
--- /dev/null
+++ b/rba.tool.editor.ide/src-gen/META-INF/services/org.eclipse.xtext.ISetup
@@ -0,0 +1 @@
+rba.tool.editor.ide.RBAModelIdeSetup
diff --git a/rba.tool.editor.ide/src-gen/rba/tool/editor/ide/AbstractRBAModelIdeModule.java b/rba.tool.editor.ide/src-gen/rba/tool/editor/ide/AbstractRBAModelIdeModule.java
new file mode 100644
index 0000000..ad526d0
--- /dev/null
+++ b/rba.tool.editor.ide/src-gen/rba/tool/editor/ide/AbstractRBAModelIdeModule.java
@@ -0,0 +1,60 @@
+/*
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.ide;
+
+import com.google.inject.Binder;
+import com.google.inject.name.Names;
+import org.eclipse.xtext.ide.DefaultIdeModule;
+import org.eclipse.xtext.ide.LexerIdeBindings;
+import org.eclipse.xtext.ide.editor.contentassist.FQNPrefixMatcher;
+import org.eclipse.xtext.ide.editor.contentassist.IPrefixMatcher;
+import org.eclipse.xtext.ide.editor.contentassist.IProposalConflictHelper;
+import org.eclipse.xtext.ide.editor.contentassist.antlr.AntlrProposalConflictHelper;
+import org.eclipse.xtext.ide.editor.contentassist.antlr.IContentAssistParser;
+import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.Lexer;
+import org.eclipse.xtext.ide.refactoring.IRenameStrategy2;
+import org.eclipse.xtext.ide.server.rename.IRenameService;
+import org.eclipse.xtext.ide.server.rename.RenameService;
+import rba.tool.editor.ide.contentassist.antlr.RBAModelParser;
+import rba.tool.editor.ide.contentassist.antlr.internal.InternalRBAModelLexer;
+
+/**
+ * Manual modifications go to {@link RBAModelIdeModule}.
+ */
+@SuppressWarnings("all")
+public abstract class AbstractRBAModelIdeModule extends DefaultIdeModule {
+
+ // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+ public void configureContentAssistLexer(Binder binder) {
+ binder.bind(Lexer.class)
+ .annotatedWith(Names.named(LexerIdeBindings.CONTENT_ASSIST))
+ .to(InternalRBAModelLexer.class);
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+ public Class<? extends IContentAssistParser> bindIContentAssistParser() {
+ return RBAModelParser.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+ public Class<? extends IProposalConflictHelper> bindIProposalConflictHelper() {
+ return AntlrProposalConflictHelper.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.exporting.QualifiedNamesFragment2
+ public Class<? extends IPrefixMatcher> bindIPrefixMatcher() {
+ return FQNPrefixMatcher.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2
+ public Class<? extends IRenameService> bindIRenameService() {
+ return RenameService.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2
+ public Class<? extends IRenameStrategy2> bindIRenameStrategy2() {
+ return IRenameStrategy2.DefaultImpl.class;
+ }
+
+}
diff --git a/rba.tool.editor.ide/src-gen/rba/tool/editor/ide/contentassist/antlr/PartialRBAModelContentAssistParser.java b/rba.tool.editor.ide/src-gen/rba/tool/editor/ide/contentassist/antlr/PartialRBAModelContentAssistParser.java
new file mode 100644
index 0000000..3f527a5
--- /dev/null
+++ b/rba.tool.editor.ide/src-gen/rba/tool/editor/ide/contentassist/antlr/PartialRBAModelContentAssistParser.java
@@ -0,0 +1,34 @@
+/*
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.ide.contentassist.antlr;
+
+import java.util.Collection;
+import java.util.Collections;
+import org.eclipse.xtext.AbstractRule;
+import org.eclipse.xtext.ide.editor.contentassist.antlr.FollowElement;
+import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+import org.eclipse.xtext.ide.editor.partialEditing.IPartialEditingContentAssistParser;
+import org.eclipse.xtext.util.PolymorphicDispatcher;
+
+public class PartialRBAModelContentAssistParser extends RBAModelParser implements IPartialEditingContentAssistParser {
+
+ private AbstractRule rule;
+
+ @Override
+ public void initializeFor(AbstractRule rule) {
+ this.rule = rule;
+ }
+
+ @Override
+ protected Collection<FollowElement> getFollowElements(AbstractInternalContentAssistParser parser) {
+ if (rule == null || rule.eIsProxy())
+ return Collections.emptyList();
+ String methodName = "entryRule" + rule.getName();
+ PolymorphicDispatcher<Collection<FollowElement>> dispatcher =
+ new PolymorphicDispatcher<Collection<FollowElement>>(methodName, 0, 0, Collections.singletonList(parser));
+ dispatcher.invoke();
+ return parser.getFollowElements();
+ }
+
+}
diff --git a/rba.tool.editor.ide/src-gen/rba/tool/editor/ide/contentassist/antlr/RBAModelParser.java b/rba.tool.editor.ide/src-gen/rba/tool/editor/ide/contentassist/antlr/RBAModelParser.java
new file mode 100644
index 0000000..e05b114
--- /dev/null
+++ b/rba.tool.editor.ide/src-gen/rba/tool/editor/ide/contentassist/antlr/RBAModelParser.java
@@ -0,0 +1,508 @@
+/*
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.ide.contentassist.antlr;
+
+import com.google.inject.Inject;
+import java.util.HashMap;
+import java.util.Map;
+import org.eclipse.xtext.AbstractElement;
+import org.eclipse.xtext.ide.editor.contentassist.antlr.AbstractContentAssistParser;
+import rba.tool.editor.ide.contentassist.antlr.internal.InternalRBAModelParser;
+import rba.tool.editor.services.RBAModelGrammarAccess;
+
+public class RBAModelParser extends AbstractContentAssistParser {
+
+ @Inject
+ private RBAModelGrammarAccess grammarAccess;
+
+ private Map<AbstractElement, String> nameMappings;
+
+ @Override
+ protected InternalRBAModelParser createParser() {
+ InternalRBAModelParser result = new InternalRBAModelParser(null);
+ result.setGrammarAccess(grammarAccess);
+ return result;
+ }
+
+ @Override
+ protected String getRuleName(AbstractElement element) {
+ if (nameMappings == null) {
+ nameMappings = new HashMap<AbstractElement, String>() {
+ private static final long serialVersionUID = 1L;
+ {
+ put(grammarAccess.getPackagableElementAccess().getAlternatives(), "rule__PackagableElement__Alternatives");
+ put(grammarAccess.getSizeIdentifierAccess().getAlternatives(), "rule__SizeIdentifier__Alternatives");
+ put(grammarAccess.getRuleObjectAccess().getAlternatives(), "rule__RuleObject__Alternatives");
+ put(grammarAccess.getAbstractAllocatableAccess().getAlternatives(), "rule__AbstractAllocatable__Alternatives");
+ put(grammarAccess.getAllocatableAccess().getAlternatives(), "rule__Allocatable__Alternatives");
+ put(grammarAccess.getAllocatableSetAccess().getAlternatives(), "rule__AllocatableSet__Alternatives");
+ put(grammarAccess.getAbstractContentAccess().getAlternatives(), "rule__AbstractContent__Alternatives");
+ put(grammarAccess.getContentAccess().getAlternatives(), "rule__Content__Alternatives");
+ put(grammarAccess.getContentSetAccess().getAlternatives(), "rule__ContentSet__Alternatives");
+ put(grammarAccess.getLayoutManagerAccess().getAlternatives(), "rule__LayoutManager__Alternatives");
+ put(grammarAccess.getAlignedLayoutAccess().getAlternatives(), "rule__AlignedLayout__Alternatives");
+ put(grammarAccess.getTagAccess().getAlternatives_0_0(), "rule__Tag__Alternatives_0_0");
+ put(grammarAccess.getStereotypableElementNameAccess().getAlternatives(), "rule__StereotypableElementName__Alternatives");
+ put(grammarAccess.getAreaAccess().getAlternatives_4_3_0(), "rule__Area__Alternatives_4_3_0");
+ put(grammarAccess.getZoneAccess().getAlternatives_4_2_0(), "rule__Zone__Alternatives_4_2_0");
+ put(grammarAccess.getViewContentStateAccess().getAlternatives_4_1_0(), "rule__ViewContentState__Alternatives_4_1_0");
+ put(grammarAccess.getSoundContentStateAccess().getAlternatives_4_1_0(), "rule__SoundContentState__Alternatives_4_1_0");
+ put(grammarAccess.getVRelationalExpressionAccess().getAlternatives(), "rule__VRelationalExpression__Alternatives");
+ put(grammarAccess.getVPrimaryExpressionAccess().getAlternatives(), "rule__VPrimaryExpression__Alternatives");
+ put(grammarAccess.getVValueExpressionAccess().getAlternatives(), "rule__VValueExpression__Alternatives");
+ put(grammarAccess.getCEqualityExpressionAccess().getAlternatives_1_0_0(), "rule__CEqualityExpression__Alternatives_1_0_0");
+ put(grammarAccess.getCRelationalExpressionAccess().getAlternatives_1_0_0(), "rule__CRelationalExpression__Alternatives_1_0_0");
+ put(grammarAccess.getCUnaryOperationAccess().getAlternatives(), "rule__CUnaryOperation__Alternatives");
+ put(grammarAccess.getCOperationFeatureCallAccess().getAlternatives_1_1(), "rule__COperationFeatureCall__Alternatives_1_1");
+ put(grammarAccess.getCOperationFeatureCallAccess().getAlternatives_1_1_0_0(), "rule__COperationFeatureCall__Alternatives_1_1_0_0");
+ put(grammarAccess.getCOperationFeatureCallAccess().getAlternatives_1_1_2(), "rule__COperationFeatureCall__Alternatives_1_1_2");
+ put(grammarAccess.getCPrimaryExpressionAccess().getAlternatives(), "rule__CPrimaryExpression__Alternatives");
+ put(grammarAccess.getAllInstanceOfExpressionAccess().getAlternatives_0(), "rule__AllInstanceOfExpression__Alternatives_0");
+ put(grammarAccess.getEnumExpressionAccess().getAlternatives(), "rule__EnumExpression__Alternatives");
+ put(grammarAccess.getEBooleanAccess().getAlternatives(), "rule__EBoolean__Alternatives");
+ put(grammarAccess.getIdOrThisAccess().getAlternatives(), "rule__IdOrThis__Alternatives");
+ put(grammarAccess.getConfigurationParserRule_OperatorWithMultipleOperandAccess().getAlternatives(), "rule__ConfigurationParserRule_OperatorWithMultipleOperand__Alternatives");
+ put(grammarAccess.getConfigurationParserRule_AreaOperatorForConstraintAccess().getAlternatives(), "rule__ConfigurationParserRule_AreaOperatorForConstraint__Alternatives");
+ put(grammarAccess.getContentOperatorsCommonAccess().getAlternatives(), "rule__ContentOperatorsCommon__Alternatives");
+ put(grammarAccess.getConfigurationParserRule_ZoneOperatorForConstraintAccess().getAlternatives(), "rule__ConfigurationParserRule_ZoneOperatorForConstraint__Alternatives");
+ put(grammarAccess.getSoundOperatorsCommonAccess().getAlternatives(), "rule__SoundOperatorsCommon__Alternatives");
+ put(grammarAccess.getArbitrationPolicyAccess().getAlternatives(), "rule__ArbitrationPolicy__Alternatives");
+ put(grammarAccess.getBasePointAccess().getAlternatives(), "rule__BasePoint__Alternatives");
+ put(grammarAccess.getLoserTypeAccess().getAlternatives(), "rule__LoserType__Alternatives");
+ put(grammarAccess.getTopLevelAccess().getGroup(), "rule__TopLevel__Group__0");
+ put(grammarAccess.getTopLevelAccess().getGroup_1(), "rule__TopLevel__Group_1__0");
+ put(grammarAccess.getImportAccess().getGroup(), "rule__Import__Group__0");
+ put(grammarAccess.getAbstractPropertyAccess().getGroup(), "rule__AbstractProperty__Group__0");
+ put(grammarAccess.getAbstractPropertyAccess().getGroup_0(), "rule__AbstractProperty__Group_0__0");
+ put(grammarAccess.getAbstractPropertyAccess().getGroup_2(), "rule__AbstractProperty__Group_2__0");
+ put(grammarAccess.getTagAccess().getGroup(), "rule__Tag__Group__0");
+ put(grammarAccess.getTagAccess().getGroup_0(), "rule__Tag__Group_0__0");
+ put(grammarAccess.getTagAccess().getGroup_0_0_0(), "rule__Tag__Group_0_0_0__0");
+ put(grammarAccess.getTagAccess().getGroup_0_0_1(), "rule__Tag__Group_0_0_1__0");
+ put(grammarAccess.getTagAccess().getGroup_1(), "rule__Tag__Group_1__0");
+ put(grammarAccess.getTagAccess().getGroup_1_1(), "rule__Tag__Group_1_1__0");
+ put(grammarAccess.getTagAccess().getGroup_1_1_1(), "rule__Tag__Group_1_1_1__0");
+ put(grammarAccess.getPackageAccess().getGroup(), "rule__Package__Group__0");
+ put(grammarAccess.getPackageAccess().getGroup_4_0(), "rule__Package__Group_4_0__0");
+ put(grammarAccess.getStereotypeAccess().getGroup(), "rule__Stereotype__Group__0");
+ put(grammarAccess.getStereotypeAccess().getGroup_7(), "rule__Stereotype__Group_7__0");
+ put(grammarAccess.getStereotypeAccess().getGroup_7_1(), "rule__Stereotype__Group_7_1__0");
+ put(grammarAccess.getDisplayAccess().getGroup(), "rule__Display__Group__0");
+ put(grammarAccess.getDisplayAccess().getGroup_4_0(), "rule__Display__Group_4_0__0");
+ put(grammarAccess.getConstraintAccess().getGroup(), "rule__Constraint__Group__0");
+ put(grammarAccess.getConstraintAccess().getGroup_4_0(), "rule__Constraint__Group_4_0__0");
+ put(grammarAccess.getConstraintAccess().getGroup_4_1(), "rule__Constraint__Group_4_1__0");
+ put(grammarAccess.getViewContentAccess().getGroup(), "rule__ViewContent__Group__0");
+ put(grammarAccess.getViewContentAccess().getGroup_4_0(), "rule__ViewContent__Group_4_0__0");
+ put(grammarAccess.getViewContentAccess().getGroup_4_1(), "rule__ViewContent__Group_4_1__0");
+ put(grammarAccess.getViewContentAccess().getGroup_4_2(), "rule__ViewContent__Group_4_2__0");
+ put(grammarAccess.getViewContentAccess().getGroup_4_2_2(), "rule__ViewContent__Group_4_2_2__0");
+ put(grammarAccess.getViewContentAccess().getGroup_4_2_2_1(), "rule__ViewContent__Group_4_2_2_1__0");
+ put(grammarAccess.getSoundContentAccess().getGroup(), "rule__SoundContent__Group__0");
+ put(grammarAccess.getSoundContentAccess().getGroup_4_0(), "rule__SoundContent__Group_4_0__0");
+ put(grammarAccess.getSoundContentAccess().getGroup_4_1(), "rule__SoundContent__Group_4_1__0");
+ put(grammarAccess.getSoundContentAccess().getGroup_4_2(), "rule__SoundContent__Group_4_2__0");
+ put(grammarAccess.getSoundContentAccess().getGroup_4_2_2(), "rule__SoundContent__Group_4_2_2__0");
+ put(grammarAccess.getSoundContentAccess().getGroup_4_2_2_1(), "rule__SoundContent__Group_4_2_2_1__0");
+ put(grammarAccess.getSizeAccess().getGroup(), "rule__Size__Group__0");
+ put(grammarAccess.getSizeAccess().getGroup_4_0(), "rule__Size__Group_4_0__0");
+ put(grammarAccess.getSizeAccess().getGroup_4_1(), "rule__Size__Group_4_1__0");
+ put(grammarAccess.getSizeAccess().getGroup_4_2(), "rule__Size__Group_4_2__0");
+ put(grammarAccess.getSizeReferenceAccess().getGroup(), "rule__SizeReference__Group__0");
+ put(grammarAccess.getOffsetAccess().getGroup(), "rule__Offset__Group__0");
+ put(grammarAccess.getOffsetAccess().getGroup_3_0(), "rule__Offset__Group_3_0__0");
+ put(grammarAccess.getOffsetAccess().getGroup_3_1(), "rule__Offset__Group_3_1__0");
+ put(grammarAccess.getOffsetAccess().getGroup_3_2(), "rule__Offset__Group_3_2__0");
+ put(grammarAccess.getAreaSetAccess().getGroup(), "rule__AreaSet__Group__0");
+ put(grammarAccess.getAreaSetAccess().getGroup_4_0(), "rule__AreaSet__Group_4_0__0");
+ put(grammarAccess.getAreaSetAccess().getGroup_4_1(), "rule__AreaSet__Group_4_1__0");
+ put(grammarAccess.getAreaSetAccess().getGroup_4_1_2(), "rule__AreaSet__Group_4_1_2__0");
+ put(grammarAccess.getAreaSetAccess().getGroup_4_1_2_1(), "rule__AreaSet__Group_4_1_2_1__0");
+ put(grammarAccess.getZoneSetAccess().getGroup(), "rule__ZoneSet__Group__0");
+ put(grammarAccess.getZoneSetAccess().getGroup_4_0(), "rule__ZoneSet__Group_4_0__0");
+ put(grammarAccess.getZoneSetAccess().getGroup_4_1(), "rule__ZoneSet__Group_4_1__0");
+ put(grammarAccess.getZoneSetAccess().getGroup_4_1_2(), "rule__ZoneSet__Group_4_1_2__0");
+ put(grammarAccess.getZoneSetAccess().getGroup_4_1_2_1(), "rule__ZoneSet__Group_4_1_2_1__0");
+ put(grammarAccess.getCompositeAreaAccess().getGroup(), "rule__CompositeArea__Group__0");
+ put(grammarAccess.getCompositeAreaAccess().getGroup_4_0(), "rule__CompositeArea__Group_4_0__0");
+ put(grammarAccess.getCompositeAreaAccess().getGroup_4_1(), "rule__CompositeArea__Group_4_1__0");
+ put(grammarAccess.getAreaAccess().getGroup(), "rule__Area__Group__0");
+ put(grammarAccess.getAreaAccess().getGroup_4_0(), "rule__Area__Group_4_0__0");
+ put(grammarAccess.getAreaAccess().getGroup_4_1(), "rule__Area__Group_4_1__0");
+ put(grammarAccess.getAreaAccess().getGroup_4_3(), "rule__Area__Group_4_3__0");
+ put(grammarAccess.getAreaAccess().getGroup_4_4(), "rule__Area__Group_4_4__0");
+ put(grammarAccess.getZoneAccess().getGroup(), "rule__Zone__Group__0");
+ put(grammarAccess.getZoneAccess().getGroup_4_0(), "rule__Zone__Group_4_0__0");
+ put(grammarAccess.getZoneAccess().getGroup_4_1(), "rule__Zone__Group_4_1__0");
+ put(grammarAccess.getZoneAccess().getGroup_4_2(), "rule__Zone__Group_4_2__0");
+ put(grammarAccess.getZoneAccess().getGroup_4_3(), "rule__Zone__Group_4_3__0");
+ put(grammarAccess.getViewContentStateAccess().getGroup(), "rule__ViewContentState__Group__0");
+ put(grammarAccess.getViewContentStateAccess().getGroup_4_0(), "rule__ViewContentState__Group_4_0__0");
+ put(grammarAccess.getViewContentStateAccess().getGroup_4_1(), "rule__ViewContentState__Group_4_1__0");
+ put(grammarAccess.getSoundContentStateAccess().getGroup(), "rule__SoundContentState__Group__0");
+ put(grammarAccess.getSoundContentStateAccess().getGroup_4_0(), "rule__SoundContentState__Group_4_0__0");
+ put(grammarAccess.getSoundContentStateAccess().getGroup_4_1(), "rule__SoundContentState__Group_4_1__0");
+ put(grammarAccess.getProjectAccess().getGroup(), "rule__Project__Group__0");
+ put(grammarAccess.getVPlusOperatorAccess().getGroup(), "rule__VPlusOperator__Group__0");
+ put(grammarAccess.getVPlusOperatorAccess().getGroup_1(), "rule__VPlusOperator__Group_1__0");
+ put(grammarAccess.getVPlusOperatorAccess().getGroup_1_0(), "rule__VPlusOperator__Group_1_0__0");
+ put(grammarAccess.getVPlusOperatorAccess().getGroup_1_0_0(), "rule__VPlusOperator__Group_1_0_0__0");
+ put(grammarAccess.getVComparisonAndAccess().getGroup(), "rule__VComparisonAnd__Group__0");
+ put(grammarAccess.getVComparisonAndAccess().getGroup_1(), "rule__VComparisonAnd__Group_1__0");
+ put(grammarAccess.getVComparisonAndAccess().getGroup_1_0(), "rule__VComparisonAnd__Group_1_0__0");
+ put(grammarAccess.getVComparisonAndAccess().getGroup_1_0_0(), "rule__VComparisonAnd__Group_1_0_0__0");
+ put(grammarAccess.getVRelationalExpressionAccess().getGroup_1(), "rule__VRelationalExpression__Group_1__0");
+ put(grammarAccess.getVRelationalExpressionAccess().getGroup_2(), "rule__VRelationalExpression__Group_2__0");
+ put(grammarAccess.getVRelationalExpressionAccess().getGroup_3(), "rule__VRelationalExpression__Group_3__0");
+ put(grammarAccess.getVRelationalExpressionAccess().getGroup_4(), "rule__VRelationalExpression__Group_4__0");
+ put(grammarAccess.getVPrimaryExpressionAccess().getGroup_2(), "rule__VPrimaryExpression__Group_2__0");
+ put(grammarAccess.getThatOfOperatorAccess().getGroup(), "rule__ThatOfOperator__Group__0");
+ put(grammarAccess.getVMemberFeatureReferenceAccess().getGroup(), "rule__VMemberFeatureReference__Group__0");
+ put(grammarAccess.getVMemberFeatureReferenceAccess().getGroup_2(), "rule__VMemberFeatureReference__Group_2__0");
+ put(grammarAccess.getIntegerValueAccess().getGroup(), "rule__IntegerValue__Group__0");
+ put(grammarAccess.getStandardValueAccess().getGroup(), "rule__StandardValue__Group__0");
+ put(grammarAccess.getNoneValueAccess().getGroup(), "rule__NoneValue__Group__0");
+ put(grammarAccess.getMinValueAccess().getGroup(), "rule__MinValue__Group__0");
+ put(grammarAccess.getMaxValueAccess().getGroup(), "rule__MaxValue__Group__0");
+ put(grammarAccess.getCImpliesOperatorAccess().getGroup(), "rule__CImpliesOperator__Group__0");
+ put(grammarAccess.getCImpliesOperatorAccess().getGroup_1(), "rule__CImpliesOperator__Group_1__0");
+ put(grammarAccess.getCImpliesOperatorAccess().getGroup_1_0(), "rule__CImpliesOperator__Group_1_0__0");
+ put(grammarAccess.getCImpliesOperatorAccess().getGroup_1_0_0(), "rule__CImpliesOperator__Group_1_0_0__0");
+ put(grammarAccess.getCOrOperatorAccess().getGroup(), "rule__COrOperator__Group__0");
+ put(grammarAccess.getCOrOperatorAccess().getGroup_1(), "rule__COrOperator__Group_1__0");
+ put(grammarAccess.getCOrOperatorAccess().getGroup_1_0(), "rule__COrOperator__Group_1_0__0");
+ put(grammarAccess.getCOrOperatorAccess().getGroup_1_0_0(), "rule__COrOperator__Group_1_0_0__0");
+ put(grammarAccess.getCAndOperatorAccess().getGroup(), "rule__CAndOperator__Group__0");
+ put(grammarAccess.getCAndOperatorAccess().getGroup_1(), "rule__CAndOperator__Group_1__0");
+ put(grammarAccess.getCAndOperatorAccess().getGroup_1_0(), "rule__CAndOperator__Group_1_0__0");
+ put(grammarAccess.getCAndOperatorAccess().getGroup_1_0_0(), "rule__CAndOperator__Group_1_0_0__0");
+ put(grammarAccess.getCEqualityExpressionAccess().getGroup(), "rule__CEqualityExpression__Group__0");
+ put(grammarAccess.getCEqualityExpressionAccess().getGroup_1(), "rule__CEqualityExpression__Group_1__0");
+ put(grammarAccess.getCEqualityExpressionAccess().getGroup_1_0(), "rule__CEqualityExpression__Group_1_0__0");
+ put(grammarAccess.getCEqualityExpressionAccess().getGroup_1_0_0_0(), "rule__CEqualityExpression__Group_1_0_0_0__0");
+ put(grammarAccess.getCEqualityExpressionAccess().getGroup_1_0_0_1(), "rule__CEqualityExpression__Group_1_0_0_1__0");
+ put(grammarAccess.getCEqualityExpressionAccess().getGroup_1_0_0_2(), "rule__CEqualityExpression__Group_1_0_0_2__0");
+ put(grammarAccess.getCRelationalExpressionAccess().getGroup(), "rule__CRelationalExpression__Group__0");
+ put(grammarAccess.getCRelationalExpressionAccess().getGroup_1(), "rule__CRelationalExpression__Group_1__0");
+ put(grammarAccess.getCRelationalExpressionAccess().getGroup_1_0(), "rule__CRelationalExpression__Group_1_0__0");
+ put(grammarAccess.getCRelationalExpressionAccess().getGroup_1_0_0_0(), "rule__CRelationalExpression__Group_1_0_0_0__0");
+ put(grammarAccess.getCRelationalExpressionAccess().getGroup_1_0_0_1(), "rule__CRelationalExpression__Group_1_0_0_1__0");
+ put(grammarAccess.getCRelationalExpressionAccess().getGroup_1_0_0_2(), "rule__CRelationalExpression__Group_1_0_0_2__0");
+ put(grammarAccess.getCRelationalExpressionAccess().getGroup_1_0_0_3(), "rule__CRelationalExpression__Group_1_0_0_3__0");
+ put(grammarAccess.getCUnaryOperationAccess().getGroup_0(), "rule__CUnaryOperation__Group_0__0");
+ put(grammarAccess.getCOperationFeatureCallAccess().getGroup(), "rule__COperationFeatureCall__Group__0");
+ put(grammarAccess.getCOperationFeatureCallAccess().getGroup_1(), "rule__COperationFeatureCall__Group_1__0");
+ put(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_0(), "rule__COperationFeatureCall__Group_1_0__0");
+ put(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0(), "rule__COperationFeatureCall__Group_1_1_0__0");
+ put(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_0(), "rule__COperationFeatureCall__Group_1_1_0_0_0__0");
+ put(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_1(), "rule__COperationFeatureCall__Group_1_1_0_0_1__0");
+ put(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_2(), "rule__COperationFeatureCall__Group_1_1_0_0_2__0");
+ put(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_3(), "rule__COperationFeatureCall__Group_1_1_0_0_3__0");
+ put(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_4(), "rule__COperationFeatureCall__Group_1_1_0_0_4__0");
+ put(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_5(), "rule__COperationFeatureCall__Group_1_1_0_0_5__0");
+ put(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_6(), "rule__COperationFeatureCall__Group_1_1_0_0_6__0");
+ put(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_7(), "rule__COperationFeatureCall__Group_1_1_0_0_7__0");
+ put(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_8(), "rule__COperationFeatureCall__Group_1_1_0_0_8__0");
+ put(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_9(), "rule__COperationFeatureCall__Group_1_1_0_0_9__0");
+ put(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_10(), "rule__COperationFeatureCall__Group_1_1_0_0_10__0");
+ put(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_11(), "rule__COperationFeatureCall__Group_1_1_0_0_11__0");
+ put(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_12(), "rule__COperationFeatureCall__Group_1_1_0_0_12__0");
+ put(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_13(), "rule__COperationFeatureCall__Group_1_1_0_0_13__0");
+ put(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_14(), "rule__COperationFeatureCall__Group_1_1_0_0_14__0");
+ put(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_15(), "rule__COperationFeatureCall__Group_1_1_0_0_15__0");
+ put(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_16(), "rule__COperationFeatureCall__Group_1_1_0_0_16__0");
+ put(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_17(), "rule__COperationFeatureCall__Group_1_1_0_0_17__0");
+ put(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_18(), "rule__COperationFeatureCall__Group_1_1_0_0_18__0");
+ put(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_19(), "rule__COperationFeatureCall__Group_1_1_0_0_19__0");
+ put(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_20(), "rule__COperationFeatureCall__Group_1_1_0_0_20__0");
+ put(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_21(), "rule__COperationFeatureCall__Group_1_1_0_0_21__0");
+ put(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_22(), "rule__COperationFeatureCall__Group_1_1_0_0_22__0");
+ put(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_23(), "rule__COperationFeatureCall__Group_1_1_0_0_23__0");
+ put(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_24(), "rule__COperationFeatureCall__Group_1_1_0_0_24__0");
+ put(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_25(), "rule__COperationFeatureCall__Group_1_1_0_0_25__0");
+ put(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_26(), "rule__COperationFeatureCall__Group_1_1_0_0_26__0");
+ put(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_27(), "rule__COperationFeatureCall__Group_1_1_0_0_27__0");
+ put(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_28(), "rule__COperationFeatureCall__Group_1_1_0_0_28__0");
+ put(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_29(), "rule__COperationFeatureCall__Group_1_1_0_0_29__0");
+ put(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_30(), "rule__COperationFeatureCall__Group_1_1_0_0_30__0");
+ put(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_31(), "rule__COperationFeatureCall__Group_1_1_0_0_31__0");
+ put(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_1(), "rule__COperationFeatureCall__Group_1_1_0_1__0");
+ put(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_1_0(), "rule__COperationFeatureCall__Group_1_1_0_1_0__0");
+ put(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_1(), "rule__COperationFeatureCall__Group_1_1_1__0");
+ put(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_1_0(), "rule__COperationFeatureCall__Group_1_1_1_0__0");
+ put(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_1_1(), "rule__COperationFeatureCall__Group_1_1_1_1__0");
+ put(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_1_1_0(), "rule__COperationFeatureCall__Group_1_1_1_1_0__0");
+ put(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_2_0(), "rule__COperationFeatureCall__Group_1_1_2_0__0");
+ put(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_2_1(), "rule__COperationFeatureCall__Group_1_1_2_1__0");
+ put(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_2_2(), "rule__COperationFeatureCall__Group_1_1_2_2__0");
+ put(grammarAccess.getCPrimaryExpressionAccess().getGroup_11(), "rule__CPrimaryExpression__Group_11__0");
+ put(grammarAccess.getAllInstanceOfExpressionAccess().getGroup(), "rule__AllInstanceOfExpression__Group__0");
+ put(grammarAccess.getAllInstanceOfExpressionAccess().getGroup_0_0(), "rule__AllInstanceOfExpression__Group_0_0__0");
+ put(grammarAccess.getAllInstanceOfExpressionAccess().getGroup_0_1(), "rule__AllInstanceOfExpression__Group_0_1__0");
+ put(grammarAccess.getAllInstanceOfExpressionAccess().getGroup_0_2(), "rule__AllInstanceOfExpression__Group_0_2__0");
+ put(grammarAccess.getAllInstanceOfExpressionAccess().getGroup_0_3(), "rule__AllInstanceOfExpression__Group_0_3__0");
+ put(grammarAccess.getNullExpressionAccess().getGroup(), "rule__NullExpression__Group__0");
+ put(grammarAccess.getNullExpressionAccess().getGroup_0(), "rule__NullExpression__Group_0__0");
+ put(grammarAccess.getPreviousModifierAccess().getGroup(), "rule__PreviousModifier__Group__0");
+ put(grammarAccess.getHideLowerPriorityAccess().getGroup(), "rule__HideLowerPriority__Group__0");
+ put(grammarAccess.getMuteLowerPriorityAccess().getGroup(), "rule__MuteLowerPriority__Group__0");
+ put(grammarAccess.getSetOfOperatorAccess().getGroup(), "rule__SetOfOperator__Group__0");
+ put(grammarAccess.getSetOfOperatorAccess().getGroup_2(), "rule__SetOfOperator__Group_2__0");
+ put(grammarAccess.getSetOfOperatorAccess().getGroup_2_1(), "rule__SetOfOperator__Group_2_1__0");
+ put(grammarAccess.getIfStatementAccess().getGroup(), "rule__IfStatement__Group__0");
+ put(grammarAccess.getIfStatementAccess().getGroup_5(), "rule__IfStatement__Group_5__0");
+ put(grammarAccess.getIfStatementAccess().getGroup_6(), "rule__IfStatement__Group_6__0");
+ put(grammarAccess.getForAllOperatorAccess().getGroup(), "rule__ForAllOperator__Group__0");
+ put(grammarAccess.getExistsOperatorAccess().getGroup(), "rule__ExistsOperator__Group__0");
+ put(grammarAccess.getLambdaExpressionAccess().getGroup(), "rule__LambdaExpression__Group__0");
+ put(grammarAccess.getLambdaExpressionAccess().getGroup_0(), "rule__LambdaExpression__Group_0__0");
+ put(grammarAccess.getLambdaExpressionAccess().getGroup_0_0(), "rule__LambdaExpression__Group_0_0__0");
+ put(grammarAccess.getLambdaExpressionAccess().getGroup_1(), "rule__LambdaExpression__Group_1__0");
+ put(grammarAccess.getVariableAccess().getGroup(), "rule__Variable__Group__0");
+ put(grammarAccess.getCObjectReferenceAccess().getGroup(), "rule__CObjectReference__Group__0");
+ put(grammarAccess.getCMemberFeatureReferenceAccess().getGroup(), "rule__CMemberFeatureReference__Group__0");
+ put(grammarAccess.getCMemberFeatureReferenceAccess().getGroup_2(), "rule__CMemberFeatureReference__Group_2__0");
+ put(grammarAccess.getLetStatementAccess().getGroup(), "rule__LetStatement__Group__0");
+ put(grammarAccess.getLetStatementAccess().getGroup_3(), "rule__LetStatement__Group_3__0");
+ put(grammarAccess.getComplexExpressionAccess().getGroup(), "rule__ComplexExpression__Group__0");
+ put(grammarAccess.getEnumExpressionAccess().getGroup_0(), "rule__EnumExpression__Group_0__0");
+ put(grammarAccess.getEnumExpressionAccess().getGroup_1(), "rule__EnumExpression__Group_1__0");
+ put(grammarAccess.getLoserTypeExpressionAccess().getGroup(), "rule__LoserTypeExpression__Group__0");
+ put(grammarAccess.getArbitrationPolicyExpressionAccess().getGroup(), "rule__ArbitrationPolicyExpression__Group__0");
+ put(grammarAccess.getViewContentSetAccess().getGroup(), "rule__ViewContentSet__Group__0");
+ put(grammarAccess.getViewContentSetAccess().getGroup_4_0(), "rule__ViewContentSet__Group_4_0__0");
+ put(grammarAccess.getViewContentSetAccess().getGroup_4_1(), "rule__ViewContentSet__Group_4_1__0");
+ put(grammarAccess.getViewContentSetAccess().getGroup_4_1_2(), "rule__ViewContentSet__Group_4_1_2__0");
+ put(grammarAccess.getViewContentSetAccess().getGroup_4_1_2_1(), "rule__ViewContentSet__Group_4_1_2_1__0");
+ put(grammarAccess.getViewContentSetAccess().getGroup_4_2(), "rule__ViewContentSet__Group_4_2__0");
+ put(grammarAccess.getViewContentSetAccess().getGroup_4_2_2(), "rule__ViewContentSet__Group_4_2_2__0");
+ put(grammarAccess.getViewContentSetAccess().getGroup_4_2_2_1(), "rule__ViewContentSet__Group_4_2_2_1__0");
+ put(grammarAccess.getSoundContentSetAccess().getGroup(), "rule__SoundContentSet__Group__0");
+ put(grammarAccess.getSoundContentSetAccess().getGroup_4_0(), "rule__SoundContentSet__Group_4_0__0");
+ put(grammarAccess.getSoundContentSetAccess().getGroup_4_1(), "rule__SoundContentSet__Group_4_1__0");
+ put(grammarAccess.getSoundContentSetAccess().getGroup_4_1_2(), "rule__SoundContentSet__Group_4_1_2__0");
+ put(grammarAccess.getSoundContentSetAccess().getGroup_4_1_2_1(), "rule__SoundContentSet__Group_4_1_2_1__0");
+ put(grammarAccess.getSoundContentSetAccess().getGroup_4_2(), "rule__SoundContentSet__Group_4_2__0");
+ put(grammarAccess.getSoundContentSetAccess().getGroup_4_2_2(), "rule__SoundContentSet__Group_4_2_2__0");
+ put(grammarAccess.getSoundContentSetAccess().getGroup_4_2_2_1(), "rule__SoundContentSet__Group_4_2_2_1__0");
+ put(grammarAccess.getSceneAccess().getGroup(), "rule__Scene__Group__0");
+ put(grammarAccess.getSceneAccess().getGroup_4_0(), "rule__Scene__Group_4_0__0");
+ put(grammarAccess.getSceneAccess().getGroup_4_1(), "rule__Scene__Group_4_1__0");
+ put(grammarAccess.getVerticalLayoutAccess().getGroup(), "rule__VerticalLayout__Group__0");
+ put(grammarAccess.getVerticalLayoutAccess().getGroup_3_0(), "rule__VerticalLayout__Group_3_0__0");
+ put(grammarAccess.getVerticalLayoutAccess().getGroup_3_1(), "rule__VerticalLayout__Group_3_1__0");
+ put(grammarAccess.getVerticalLayoutAccess().getGroup_3_1_2(), "rule__VerticalLayout__Group_3_1_2__0");
+ put(grammarAccess.getVerticalLayoutAccess().getGroup_3_1_2_1(), "rule__VerticalLayout__Group_3_1_2_1__0");
+ put(grammarAccess.getHorizontalLayoutAccess().getGroup(), "rule__HorizontalLayout__Group__0");
+ put(grammarAccess.getHorizontalLayoutAccess().getGroup_3_0(), "rule__HorizontalLayout__Group_3_0__0");
+ put(grammarAccess.getHorizontalLayoutAccess().getGroup_3_1(), "rule__HorizontalLayout__Group_3_1__0");
+ put(grammarAccess.getHorizontalLayoutAccess().getGroup_3_1_2(), "rule__HorizontalLayout__Group_3_1_2__0");
+ put(grammarAccess.getHorizontalLayoutAccess().getGroup_3_1_2_1(), "rule__HorizontalLayout__Group_3_1_2_1__0");
+ put(grammarAccess.getFixedPositionLayoutAccess().getGroup(), "rule__FixedPositionLayout__Group__0");
+ put(grammarAccess.getPositionContainerAccess().getGroup(), "rule__PositionContainer__Group__0");
+ put(grammarAccess.getPositionContainerAccess().getGroup_3_0(), "rule__PositionContainer__Group_3_0__0");
+ put(grammarAccess.getPositionContainerAccess().getGroup_3_1(), "rule__PositionContainer__Group_3_1__0");
+ put(grammarAccess.getPositionContainerAccess().getGroup_3_2(), "rule__PositionContainer__Group_3_2__0");
+ put(grammarAccess.getPositionContainerAccess().getGroup_3_3(), "rule__PositionContainer__Group_3_3__0");
+ put(grammarAccess.getEIntAccess().getGroup(), "rule__EInt__Group__0");
+ put(grammarAccess.getQualifiedNameWithWildcardAccess().getGroup(), "rule__QualifiedNameWithWildcard__Group__0");
+ put(grammarAccess.getQualifiedNameAccess().getGroup(), "rule__QualifiedName__Group__0");
+ put(grammarAccess.getQualifiedNameAccess().getGroup_1(), "rule__QualifiedName__Group_1__0");
+ put(grammarAccess.getTopLevelAccess().getProjectAssignment_2(), "rule__TopLevel__ProjectAssignment_2");
+ put(grammarAccess.getTopLevelAccess().getImportsAssignment_3(), "rule__TopLevel__ImportsAssignment_3");
+ put(grammarAccess.getTopLevelAccess().getPackagesAssignment_4(), "rule__TopLevel__PackagesAssignment_4");
+ put(grammarAccess.getImportAccess().getImportedNamespaceAssignment_1(), "rule__Import__ImportedNamespaceAssignment_1");
+ put(grammarAccess.getAbstractPropertyAccess().getNameAssignment_1(), "rule__AbstractProperty__NameAssignment_1");
+ put(grammarAccess.getAbstractPropertyAccess().getValueAssignment_2_1(), "rule__AbstractProperty__ValueAssignment_2_1");
+ put(grammarAccess.getTagAccess().getNameAssignment_0_0_0_2(), "rule__Tag__NameAssignment_0_0_0_2");
+ put(grammarAccess.getTagAccess().getNameAssignment_0_0_1_2(), "rule__Tag__NameAssignment_0_0_1_2");
+ put(grammarAccess.getTagAccess().getValuesAssignment_1_1_0(), "rule__Tag__ValuesAssignment_1_1_0");
+ put(grammarAccess.getTagAccess().getValuesAssignment_1_1_1_1(), "rule__Tag__ValuesAssignment_1_1_1_1");
+ put(grammarAccess.getPackageAccess().getNameAssignment_2(), "rule__Package__NameAssignment_2");
+ put(grammarAccess.getPackageAccess().getDescriptionAssignment_4_0_1(), "rule__Package__DescriptionAssignment_4_0_1");
+ put(grammarAccess.getPackageAccess().getPackagableelementAssignment_4_1(), "rule__Package__PackagableelementAssignment_4_1");
+ put(grammarAccess.getStereotypeAccess().getTargetModelNameAssignment_3(), "rule__Stereotype__TargetModelNameAssignment_3");
+ put(grammarAccess.getStereotypeAccess().getNameAssignment_5(), "rule__Stereotype__NameAssignment_5");
+ put(grammarAccess.getStereotypeAccess().getVariablesAssignment_7_0(), "rule__Stereotype__VariablesAssignment_7_0");
+ put(grammarAccess.getStereotypeAccess().getVariablesAssignment_7_1_1(), "rule__Stereotype__VariablesAssignment_7_1_1");
+ put(grammarAccess.getStereotypeAccess().getBodyTextAssignment_9(), "rule__Stereotype__BodyTextAssignment_9");
+ put(grammarAccess.getDisplayAccess().getNameAssignment_2(), "rule__Display__NameAssignment_2");
+ put(grammarAccess.getDisplayAccess().getDescriptionAssignment_4_0_1(), "rule__Display__DescriptionAssignment_4_0_1");
+ put(grammarAccess.getDisplayAccess().getSizeAssignment_4_1(), "rule__Display__SizeAssignment_4_1");
+ put(grammarAccess.getDisplayAccess().getRootAssignment_4_2(), "rule__Display__RootAssignment_4_2");
+ put(grammarAccess.getConstraintAccess().getNameAssignment_2(), "rule__Constraint__NameAssignment_2");
+ put(grammarAccess.getConstraintAccess().getDescriptionAssignment_4_0_1(), "rule__Constraint__DescriptionAssignment_4_0_1");
+ put(grammarAccess.getConstraintAccess().getRuntimeAssignment_4_1_1(), "rule__Constraint__RuntimeAssignment_4_1_1");
+ put(grammarAccess.getConstraintAccess().getExpressionAssignment_4_2(), "rule__Constraint__ExpressionAssignment_4_2");
+ put(grammarAccess.getViewContentAccess().getNameAssignment_2(), "rule__ViewContent__NameAssignment_2");
+ put(grammarAccess.getViewContentAccess().getDescriptionAssignment_4_0_1(), "rule__ViewContent__DescriptionAssignment_4_0_1");
+ put(grammarAccess.getViewContentAccess().getLoserTypeAssignment_4_1_1(), "rule__ViewContent__LoserTypeAssignment_4_1_1");
+ put(grammarAccess.getViewContentAccess().getAllocatableAssignment_4_2_2_0(), "rule__ViewContent__AllocatableAssignment_4_2_2_0");
+ put(grammarAccess.getViewContentAccess().getAllocatableAssignment_4_2_2_1_1(), "rule__ViewContent__AllocatableAssignment_4_2_2_1_1");
+ put(grammarAccess.getViewContentAccess().getStatesAssignment_4_3(), "rule__ViewContent__StatesAssignment_4_3");
+ put(grammarAccess.getViewContentAccess().getSizeAssignment_4_4(), "rule__ViewContent__SizeAssignment_4_4");
+ put(grammarAccess.getViewContentAccess().getTagsAssignment_4_5(), "rule__ViewContent__TagsAssignment_4_5");
+ put(grammarAccess.getSoundContentAccess().getNameAssignment_2(), "rule__SoundContent__NameAssignment_2");
+ put(grammarAccess.getSoundContentAccess().getDescriptionAssignment_4_0_1(), "rule__SoundContent__DescriptionAssignment_4_0_1");
+ put(grammarAccess.getSoundContentAccess().getLoserTypeAssignment_4_1_1(), "rule__SoundContent__LoserTypeAssignment_4_1_1");
+ put(grammarAccess.getSoundContentAccess().getAllocatableAssignment_4_2_2_0(), "rule__SoundContent__AllocatableAssignment_4_2_2_0");
+ put(grammarAccess.getSoundContentAccess().getAllocatableAssignment_4_2_2_1_1(), "rule__SoundContent__AllocatableAssignment_4_2_2_1_1");
+ put(grammarAccess.getSoundContentAccess().getStatesAssignment_4_3(), "rule__SoundContent__StatesAssignment_4_3");
+ put(grammarAccess.getSoundContentAccess().getTagsAssignment_4_4(), "rule__SoundContent__TagsAssignment_4_4");
+ put(grammarAccess.getSizeAccess().getNameAssignment_2(), "rule__Size__NameAssignment_2");
+ put(grammarAccess.getSizeAccess().getDescriptionAssignment_4_0_1(), "rule__Size__DescriptionAssignment_4_0_1");
+ put(grammarAccess.getSizeAccess().getWidthAssignment_4_1_1(), "rule__Size__WidthAssignment_4_1_1");
+ put(grammarAccess.getSizeAccess().getHeightAssignment_4_2_1(), "rule__Size__HeightAssignment_4_2_1");
+ put(grammarAccess.getSizeReferenceAccess().getSizeAssignment_2(), "rule__SizeReference__SizeAssignment_2");
+ put(grammarAccess.getOffsetAccess().getDescriptionAssignment_3_0_1(), "rule__Offset__DescriptionAssignment_3_0_1");
+ put(grammarAccess.getOffsetAccess().getXAssignment_3_1_1(), "rule__Offset__XAssignment_3_1_1");
+ put(grammarAccess.getOffsetAccess().getYAssignment_3_2_1(), "rule__Offset__YAssignment_3_2_1");
+ put(grammarAccess.getOffsetAccess().getSizeAssignment_3_3(), "rule__Offset__SizeAssignment_3_3");
+ put(grammarAccess.getAreaSetAccess().getNameAssignment_2(), "rule__AreaSet__NameAssignment_2");
+ put(grammarAccess.getAreaSetAccess().getDescriptionAssignment_4_0_1(), "rule__AreaSet__DescriptionAssignment_4_0_1");
+ put(grammarAccess.getAreaSetAccess().getTargetAssignment_4_1_2_0(), "rule__AreaSet__TargetAssignment_4_1_2_0");
+ put(grammarAccess.getAreaSetAccess().getTargetAssignment_4_1_2_1_1(), "rule__AreaSet__TargetAssignment_4_1_2_1_1");
+ put(grammarAccess.getZoneSetAccess().getNameAssignment_2(), "rule__ZoneSet__NameAssignment_2");
+ put(grammarAccess.getZoneSetAccess().getDescriptionAssignment_4_0_1(), "rule__ZoneSet__DescriptionAssignment_4_0_1");
+ put(grammarAccess.getZoneSetAccess().getTargetAssignment_4_1_2_0(), "rule__ZoneSet__TargetAssignment_4_1_2_0");
+ put(grammarAccess.getZoneSetAccess().getTargetAssignment_4_1_2_1_1(), "rule__ZoneSet__TargetAssignment_4_1_2_1_1");
+ put(grammarAccess.getCompositeAreaAccess().getNameAssignment_2(), "rule__CompositeArea__NameAssignment_2");
+ put(grammarAccess.getCompositeAreaAccess().getDescriptionAssignment_4_0_1(), "rule__CompositeArea__DescriptionAssignment_4_0_1");
+ put(grammarAccess.getCompositeAreaAccess().getLayoutAssignment_4_1_1(), "rule__CompositeArea__LayoutAssignment_4_1_1");
+ put(grammarAccess.getAreaAccess().getNameAssignment_2(), "rule__Area__NameAssignment_2");
+ put(grammarAccess.getAreaAccess().getDescriptionAssignment_4_0_1(), "rule__Area__DescriptionAssignment_4_0_1");
+ put(grammarAccess.getAreaAccess().getArbitrationPolicyAssignment_4_1_1(), "rule__Area__ArbitrationPolicyAssignment_4_1_1");
+ put(grammarAccess.getAreaAccess().getSizeAssignment_4_2(), "rule__Area__SizeAssignment_4_2");
+ put(grammarAccess.getAreaAccess().getVisibilityAssignment_4_3_1(), "rule__Area__VisibilityAssignment_4_3_1");
+ put(grammarAccess.getAreaAccess().getZorderAssignment_4_4_1(), "rule__Area__ZorderAssignment_4_4_1");
+ put(grammarAccess.getAreaAccess().getTagsAssignment_4_5(), "rule__Area__TagsAssignment_4_5");
+ put(grammarAccess.getZoneAccess().getNameAssignment_2(), "rule__Zone__NameAssignment_2");
+ put(grammarAccess.getZoneAccess().getDescriptionAssignment_4_0_1(), "rule__Zone__DescriptionAssignment_4_0_1");
+ put(grammarAccess.getZoneAccess().getArbitrationPolicyAssignment_4_1_1(), "rule__Zone__ArbitrationPolicyAssignment_4_1_1");
+ put(grammarAccess.getZoneAccess().getVisibilityAssignment_4_2_1(), "rule__Zone__VisibilityAssignment_4_2_1");
+ put(grammarAccess.getZoneAccess().getAttenuateAssignment_4_3_1(), "rule__Zone__AttenuateAssignment_4_3_1");
+ put(grammarAccess.getZoneAccess().getTagsAssignment_4_4(), "rule__Zone__TagsAssignment_4_4");
+ put(grammarAccess.getViewContentStateAccess().getNameAssignment_2(), "rule__ViewContentState__NameAssignment_2");
+ put(grammarAccess.getViewContentStateAccess().getDescriptionAssignment_4_0_1(), "rule__ViewContentState__DescriptionAssignment_4_0_1");
+ put(grammarAccess.getViewContentStateAccess().getValueAssignment_4_1_1(), "rule__ViewContentState__ValueAssignment_4_1_1");
+ put(grammarAccess.getSoundContentStateAccess().getNameAssignment_2(), "rule__SoundContentState__NameAssignment_2");
+ put(grammarAccess.getSoundContentStateAccess().getDescriptionAssignment_4_0_1(), "rule__SoundContentState__DescriptionAssignment_4_0_1");
+ put(grammarAccess.getSoundContentStateAccess().getValueAssignment_4_1_1(), "rule__SoundContentState__ValueAssignment_4_1_1");
+ put(grammarAccess.getProjectAccess().getDummyNameAssignment_2(), "rule__Project__DummyNameAssignment_2");
+ put(grammarAccess.getProjectAccess().getVersionAssignment_5(), "rule__Project__VersionAssignment_5");
+ put(grammarAccess.getVPlusOperatorAccess().getOperandAssignment_1_1(), "rule__VPlusOperator__OperandAssignment_1_1");
+ put(grammarAccess.getVComparisonAndAccess().getOperandAssignment_1_1(), "rule__VComparisonAnd__OperandAssignment_1_1");
+ put(grammarAccess.getVRelationalExpressionAccess().getOperandAssignment_1_2(), "rule__VRelationalExpression__OperandAssignment_1_2");
+ put(grammarAccess.getVRelationalExpressionAccess().getOperandAssignment_2_2(), "rule__VRelationalExpression__OperandAssignment_2_2");
+ put(grammarAccess.getVRelationalExpressionAccess().getOperandAssignment_3_2(), "rule__VRelationalExpression__OperandAssignment_3_2");
+ put(grammarAccess.getVRelationalExpressionAccess().getOperandAssignment_4_2(), "rule__VRelationalExpression__OperandAssignment_4_2");
+ put(grammarAccess.getThatOfOperatorAccess().getOperandAssignment_2(), "rule__ThatOfOperator__OperandAssignment_2");
+ put(grammarAccess.getVMemberFeatureReferenceAccess().getRefObjectAssignment_1(), "rule__VMemberFeatureReference__RefObjectAssignment_1");
+ put(grammarAccess.getVMemberFeatureReferenceAccess().getRefObjectAssignment_2_2(), "rule__VMemberFeatureReference__RefObjectAssignment_2_2");
+ put(grammarAccess.getIntegerValueAccess().getValueAssignment_1(), "rule__IntegerValue__ValueAssignment_1");
+ put(grammarAccess.getCImpliesOperatorAccess().getOperandAssignment_1_1(), "rule__CImpliesOperator__OperandAssignment_1_1");
+ put(grammarAccess.getCOrOperatorAccess().getOperandAssignment_1_1(), "rule__COrOperator__OperandAssignment_1_1");
+ put(grammarAccess.getCAndOperatorAccess().getOperandAssignment_1_1(), "rule__CAndOperator__OperandAssignment_1_1");
+ put(grammarAccess.getCEqualityExpressionAccess().getOperandAssignment_1_1(), "rule__CEqualityExpression__OperandAssignment_1_1");
+ put(grammarAccess.getCRelationalExpressionAccess().getOperandAssignment_1_1(), "rule__CRelationalExpression__OperandAssignment_1_1");
+ put(grammarAccess.getCUnaryOperationAccess().getOperandAssignment_0_2(), "rule__CUnaryOperation__OperandAssignment_0_2");
+ put(grammarAccess.getCOperationFeatureCallAccess().getOperandAssignment_1_1_0_1_0_1(), "rule__COperationFeatureCall__OperandAssignment_1_1_0_1_0_1");
+ put(grammarAccess.getCOperationFeatureCallAccess().getTagNameAssignment_1_1_1_1_0_1(), "rule__COperationFeatureCall__TagNameAssignment_1_1_1_1_0_1");
+ put(grammarAccess.getCOperationFeatureCallAccess().getLambdaAssignment_1_1_2_0_2(), "rule__COperationFeatureCall__LambdaAssignment_1_1_2_0_2");
+ put(grammarAccess.getCOperationFeatureCallAccess().getLambdaAssignment_1_1_2_1_2(), "rule__COperationFeatureCall__LambdaAssignment_1_1_2_1_2");
+ put(grammarAccess.getCOperationFeatureCallAccess().getLambdaAssignment_1_1_2_2_2(), "rule__COperationFeatureCall__LambdaAssignment_1_1_2_2_2");
+ put(grammarAccess.getPreviousModifierAccess().getObjReferenceAssignment_2(), "rule__PreviousModifier__ObjReferenceAssignment_2");
+ put(grammarAccess.getHideLowerPriorityAccess().getOperandAssignment_3(), "rule__HideLowerPriority__OperandAssignment_3");
+ put(grammarAccess.getHideLowerPriorityAccess().getOperandAssignment_5(), "rule__HideLowerPriority__OperandAssignment_5");
+ put(grammarAccess.getMuteLowerPriorityAccess().getOperandAssignment_3(), "rule__MuteLowerPriority__OperandAssignment_3");
+ put(grammarAccess.getMuteLowerPriorityAccess().getOperandAssignment_5(), "rule__MuteLowerPriority__OperandAssignment_5");
+ put(grammarAccess.getSetOfOperatorAccess().getOperandAssignment_2_0(), "rule__SetOfOperator__OperandAssignment_2_0");
+ put(grammarAccess.getSetOfOperatorAccess().getOperandAssignment_2_1_1(), "rule__SetOfOperator__OperandAssignment_2_1_1");
+ put(grammarAccess.getIfStatementAccess().getConditionAssignment_3(), "rule__IfStatement__ConditionAssignment_3");
+ put(grammarAccess.getIfStatementAccess().getThenExpressionAssignment_5_1(), "rule__IfStatement__ThenExpressionAssignment_5_1");
+ put(grammarAccess.getIfStatementAccess().getElseExpressionAssignment_6_1(), "rule__IfStatement__ElseExpressionAssignment_6_1");
+ put(grammarAccess.getForAllOperatorAccess().getOperandAssignment_2(), "rule__ForAllOperator__OperandAssignment_2");
+ put(grammarAccess.getForAllOperatorAccess().getLambdaAssignment_3(), "rule__ForAllOperator__LambdaAssignment_3");
+ put(grammarAccess.getExistsOperatorAccess().getOperandAssignment_2(), "rule__ExistsOperator__OperandAssignment_2");
+ put(grammarAccess.getExistsOperatorAccess().getLambdaAssignment_3(), "rule__ExistsOperator__LambdaAssignment_3");
+ put(grammarAccess.getLambdaExpressionAccess().getXAssignment_1_0(), "rule__LambdaExpression__XAssignment_1_0");
+ put(grammarAccess.getLambdaExpressionAccess().getLetStatementsAssignment_2(), "rule__LambdaExpression__LetStatementsAssignment_2");
+ put(grammarAccess.getLambdaExpressionAccess().getBodyTextAssignment_3(), "rule__LambdaExpression__BodyTextAssignment_3");
+ put(grammarAccess.getVariableAccess().getNameAssignment_1(), "rule__Variable__NameAssignment_1");
+ put(grammarAccess.getCObjectReferenceAccess().getRefObjectAssignment_1(), "rule__CObjectReference__RefObjectAssignment_1");
+ put(grammarAccess.getCMemberFeatureReferenceAccess().getRefObjectAssignment_1(), "rule__CMemberFeatureReference__RefObjectAssignment_1");
+ put(grammarAccess.getCMemberFeatureReferenceAccess().getRefObjectAssignment_2_2(), "rule__CMemberFeatureReference__RefObjectAssignment_2_2");
+ put(grammarAccess.getLetStatementAccess().getVariableAssignment_2(), "rule__LetStatement__VariableAssignment_2");
+ put(grammarAccess.getLetStatementAccess().getBodyAssignment_3_1(), "rule__LetStatement__BodyAssignment_3_1");
+ put(grammarAccess.getComplexExpressionAccess().getLetStatementsAssignment_1(), "rule__ComplexExpression__LetStatementsAssignment_1");
+ put(grammarAccess.getComplexExpressionAccess().getOtherExpressionAssignment_2(), "rule__ComplexExpression__OtherExpressionAssignment_2");
+ put(grammarAccess.getLoserTypeExpressionAccess().getValueAssignment_1(), "rule__LoserTypeExpression__ValueAssignment_1");
+ put(grammarAccess.getArbitrationPolicyExpressionAccess().getValueAssignment_1(), "rule__ArbitrationPolicyExpression__ValueAssignment_1");
+ put(grammarAccess.getViewContentSetAccess().getNameAssignment_2(), "rule__ViewContentSet__NameAssignment_2");
+ put(grammarAccess.getViewContentSetAccess().getDescriptionAssignment_4_0_1(), "rule__ViewContentSet__DescriptionAssignment_4_0_1");
+ put(grammarAccess.getViewContentSetAccess().getTargetAssignment_4_1_2_0(), "rule__ViewContentSet__TargetAssignment_4_1_2_0");
+ put(grammarAccess.getViewContentSetAccess().getTargetAssignment_4_1_2_1_1(), "rule__ViewContentSet__TargetAssignment_4_1_2_1_1");
+ put(grammarAccess.getViewContentSetAccess().getAllocatableAssignment_4_2_2_0(), "rule__ViewContentSet__AllocatableAssignment_4_2_2_0");
+ put(grammarAccess.getViewContentSetAccess().getAllocatableAssignment_4_2_2_1_1(), "rule__ViewContentSet__AllocatableAssignment_4_2_2_1_1");
+ put(grammarAccess.getSoundContentSetAccess().getNameAssignment_2(), "rule__SoundContentSet__NameAssignment_2");
+ put(grammarAccess.getSoundContentSetAccess().getDescriptionAssignment_4_0_1(), "rule__SoundContentSet__DescriptionAssignment_4_0_1");
+ put(grammarAccess.getSoundContentSetAccess().getTargetAssignment_4_1_2_0(), "rule__SoundContentSet__TargetAssignment_4_1_2_0");
+ put(grammarAccess.getSoundContentSetAccess().getTargetAssignment_4_1_2_1_1(), "rule__SoundContentSet__TargetAssignment_4_1_2_1_1");
+ put(grammarAccess.getSoundContentSetAccess().getAllocatableAssignment_4_2_2_0(), "rule__SoundContentSet__AllocatableAssignment_4_2_2_0");
+ put(grammarAccess.getSoundContentSetAccess().getAllocatableAssignment_4_2_2_1_1(), "rule__SoundContentSet__AllocatableAssignment_4_2_2_1_1");
+ put(grammarAccess.getSceneAccess().getNameAssignment_2(), "rule__Scene__NameAssignment_2");
+ put(grammarAccess.getSceneAccess().getDescriptionAssignment_4_0_1(), "rule__Scene__DescriptionAssignment_4_0_1");
+ put(grammarAccess.getSceneAccess().getGlobalAssignment_4_1_1(), "rule__Scene__GlobalAssignment_4_1_1");
+ put(grammarAccess.getSceneAccess().getPropertiesAssignment_4_2(), "rule__Scene__PropertiesAssignment_4_2");
+ put(grammarAccess.getVerticalLayoutAccess().getBasePointAssignment_3_0_1(), "rule__VerticalLayout__BasePointAssignment_3_0_1");
+ put(grammarAccess.getVerticalLayoutAccess().getSubareaAssignment_3_1_2_0(), "rule__VerticalLayout__SubareaAssignment_3_1_2_0");
+ put(grammarAccess.getVerticalLayoutAccess().getSubareaAssignment_3_1_2_1_1(), "rule__VerticalLayout__SubareaAssignment_3_1_2_1_1");
+ put(grammarAccess.getHorizontalLayoutAccess().getBasePointAssignment_3_0_1(), "rule__HorizontalLayout__BasePointAssignment_3_0_1");
+ put(grammarAccess.getHorizontalLayoutAccess().getSubareaAssignment_3_1_2_0(), "rule__HorizontalLayout__SubareaAssignment_3_1_2_0");
+ put(grammarAccess.getHorizontalLayoutAccess().getSubareaAssignment_3_1_2_1_1(), "rule__HorizontalLayout__SubareaAssignment_3_1_2_1_1");
+ put(grammarAccess.getFixedPositionLayoutAccess().getSubAreaPositionAssignment_3(), "rule__FixedPositionLayout__SubAreaPositionAssignment_3");
+ put(grammarAccess.getPositionContainerAccess().getXAssignment_3_0_1(), "rule__PositionContainer__XAssignment_3_0_1");
+ put(grammarAccess.getPositionContainerAccess().getYAssignment_3_1_1(), "rule__PositionContainer__YAssignment_3_1_1");
+ put(grammarAccess.getPositionContainerAccess().getBasePointAssignment_3_2_1(), "rule__PositionContainer__BasePointAssignment_3_2_1");
+ put(grammarAccess.getPositionContainerAccess().getAreaAssignment_3_3_1(), "rule__PositionContainer__AreaAssignment_3_3_1");
+ put(grammarAccess.getPositionContainerAccess().getOffsetAssignment_3_4(), "rule__PositionContainer__OffsetAssignment_3_4");
+ put(grammarAccess.getPackageAccess().getUnorderedGroup_4(), "rule__Package__UnorderedGroup_4");
+ put(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), "rule__Display__UnorderedGroup_4");
+ put(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), "rule__Constraint__UnorderedGroup_4");
+ put(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), "rule__ViewContent__UnorderedGroup_4");
+ put(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), "rule__SoundContent__UnorderedGroup_4");
+ put(grammarAccess.getSizeAccess().getUnorderedGroup_4(), "rule__Size__UnorderedGroup_4");
+ put(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), "rule__Offset__UnorderedGroup_3");
+ put(grammarAccess.getAreaSetAccess().getUnorderedGroup_4(), "rule__AreaSet__UnorderedGroup_4");
+ put(grammarAccess.getZoneSetAccess().getUnorderedGroup_4(), "rule__ZoneSet__UnorderedGroup_4");
+ put(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4(), "rule__CompositeArea__UnorderedGroup_4");
+ put(grammarAccess.getAreaAccess().getUnorderedGroup_4(), "rule__Area__UnorderedGroup_4");
+ put(grammarAccess.getZoneAccess().getUnorderedGroup_4(), "rule__Zone__UnorderedGroup_4");
+ put(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4(), "rule__ViewContentState__UnorderedGroup_4");
+ put(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4(), "rule__SoundContentState__UnorderedGroup_4");
+ put(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), "rule__ViewContentSet__UnorderedGroup_4");
+ put(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), "rule__SoundContentSet__UnorderedGroup_4");
+ put(grammarAccess.getSceneAccess().getUnorderedGroup_4(), "rule__Scene__UnorderedGroup_4");
+ put(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3(), "rule__VerticalLayout__UnorderedGroup_3");
+ put(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3(), "rule__HorizontalLayout__UnorderedGroup_3");
+ put(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), "rule__PositionContainer__UnorderedGroup_3");
+ }
+ };
+ }
+ return nameMappings.get(element);
+ }
+
+ @Override
+ protected String[] getInitialHiddenTokens() {
+ return new String[] { "RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT" };
+ }
+
+ public RBAModelGrammarAccess getGrammarAccess() {
+ return this.grammarAccess;
+ }
+
+ public void setGrammarAccess(RBAModelGrammarAccess grammarAccess) {
+ this.grammarAccess = grammarAccess;
+ }
+}
diff --git a/rba.tool.editor.ide/src-gen/rba/tool/editor/ide/contentassist/antlr/internal/InternalRBAModel.g b/rba.tool.editor.ide/src-gen/rba/tool/editor/ide/contentassist/antlr/internal/InternalRBAModel.g
new file mode 100644
index 0000000..a749b46
--- /dev/null
+++ b/rba.tool.editor.ide/src-gen/rba/tool/editor/ide/contentassist/antlr/internal/InternalRBAModel.g
@@ -0,0 +1,26662 @@
+/*
+ * generated by Xtext 2.13.0
+ */
+grammar InternalRBAModel;
+
+options {
+ superClass=AbstractInternalContentAssistParser;
+ backtrack=true;
+}
+
+@lexer::header {
+package rba.tool.editor.ide.contentassist.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.ide.editor.contentassist.antlr.internal.Lexer;
+}
+
+@parser::header {
+package rba.tool.editor.ide.contentassist.antlr.internal;
+
+import java.io.InputStream;
+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.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.DFA;
+import rba.tool.editor.services.RBAModelGrammarAccess;
+
+}
+@parser::members {
+ private RBAModelGrammarAccess grammarAccess;
+
+ public void setGrammarAccess(RBAModelGrammarAccess grammarAccess) {
+ this.grammarAccess = grammarAccess;
+ }
+
+ @Override
+ protected Grammar getGrammar() {
+ return grammarAccess.getGrammar();
+ }
+
+ @Override
+ protected String getValueForTokenName(String tokenName) {
+ return tokenName;
+ }
+}
+
+// Entry rule entryRuleTopLevel
+entryRuleTopLevel
+:
+{ before(grammarAccess.getTopLevelRule()); }
+ ruleTopLevel
+{ after(grammarAccess.getTopLevelRule()); }
+ EOF
+;
+
+// Rule TopLevel
+ruleTopLevel
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getTopLevelAccess().getGroup()); }
+ (rule__TopLevel__Group__0)
+ { after(grammarAccess.getTopLevelAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleImport
+entryRuleImport
+:
+{ before(grammarAccess.getImportRule()); }
+ ruleImport
+{ after(grammarAccess.getImportRule()); }
+ EOF
+;
+
+// Rule Import
+ruleImport
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getImportAccess().getGroup()); }
+ (rule__Import__Group__0)
+ { after(grammarAccess.getImportAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRulePackagableElement
+entryRulePackagableElement
+:
+{ before(grammarAccess.getPackagableElementRule()); }
+ rulePackagableElement
+{ after(grammarAccess.getPackagableElementRule()); }
+ EOF
+;
+
+// Rule PackagableElement
+rulePackagableElement
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getPackagableElementAccess().getAlternatives()); }
+ (rule__PackagableElement__Alternatives)
+ { after(grammarAccess.getPackagableElementAccess().getAlternatives()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleAbstractConstraint
+entryRuleAbstractConstraint
+:
+{ before(grammarAccess.getAbstractConstraintRule()); }
+ ruleAbstractConstraint
+{ after(grammarAccess.getAbstractConstraintRule()); }
+ EOF
+;
+
+// Rule AbstractConstraint
+ruleAbstractConstraint
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getAbstractConstraintAccess().getConstraintParserRuleCall()); }
+ ruleConstraint
+ { after(grammarAccess.getAbstractConstraintAccess().getConstraintParserRuleCall()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleSizeIdentifier
+entryRuleSizeIdentifier
+:
+{ before(grammarAccess.getSizeIdentifierRule()); }
+ ruleSizeIdentifier
+{ after(grammarAccess.getSizeIdentifierRule()); }
+ EOF
+;
+
+// Rule SizeIdentifier
+ruleSizeIdentifier
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getSizeIdentifierAccess().getAlternatives()); }
+ (rule__SizeIdentifier__Alternatives)
+ { after(grammarAccess.getSizeIdentifierAccess().getAlternatives()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleRuleObject
+entryRuleRuleObject
+:
+{ before(grammarAccess.getRuleObjectRule()); }
+ ruleRuleObject
+{ after(grammarAccess.getRuleObjectRule()); }
+ EOF
+;
+
+// Rule RuleObject
+ruleRuleObject
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getRuleObjectAccess().getAlternatives()); }
+ (rule__RuleObject__Alternatives)
+ { after(grammarAccess.getRuleObjectAccess().getAlternatives()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleAbstractAllocatable
+entryRuleAbstractAllocatable
+:
+{ before(grammarAccess.getAbstractAllocatableRule()); }
+ ruleAbstractAllocatable
+{ after(grammarAccess.getAbstractAllocatableRule()); }
+ EOF
+;
+
+// Rule AbstractAllocatable
+ruleAbstractAllocatable
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getAbstractAllocatableAccess().getAlternatives()); }
+ (rule__AbstractAllocatable__Alternatives)
+ { after(grammarAccess.getAbstractAllocatableAccess().getAlternatives()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleAllocatable
+entryRuleAllocatable
+:
+{ before(grammarAccess.getAllocatableRule()); }
+ ruleAllocatable
+{ after(grammarAccess.getAllocatableRule()); }
+ EOF
+;
+
+// Rule Allocatable
+ruleAllocatable
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getAllocatableAccess().getAlternatives()); }
+ (rule__Allocatable__Alternatives)
+ { after(grammarAccess.getAllocatableAccess().getAlternatives()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleAllocatableSet
+entryRuleAllocatableSet
+:
+{ before(grammarAccess.getAllocatableSetRule()); }
+ ruleAllocatableSet
+{ after(grammarAccess.getAllocatableSetRule()); }
+ EOF
+;
+
+// Rule AllocatableSet
+ruleAllocatableSet
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getAllocatableSetAccess().getAlternatives()); }
+ (rule__AllocatableSet__Alternatives)
+ { after(grammarAccess.getAllocatableSetAccess().getAlternatives()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleAbstractContent
+entryRuleAbstractContent
+:
+{ before(grammarAccess.getAbstractContentRule()); }
+ ruleAbstractContent
+{ after(grammarAccess.getAbstractContentRule()); }
+ EOF
+;
+
+// Rule AbstractContent
+ruleAbstractContent
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getAbstractContentAccess().getAlternatives()); }
+ (rule__AbstractContent__Alternatives)
+ { after(grammarAccess.getAbstractContentAccess().getAlternatives()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleContent
+entryRuleContent
+:
+{ before(grammarAccess.getContentRule()); }
+ ruleContent
+{ after(grammarAccess.getContentRule()); }
+ EOF
+;
+
+// Rule Content
+ruleContent
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getContentAccess().getAlternatives()); }
+ (rule__Content__Alternatives)
+ { after(grammarAccess.getContentAccess().getAlternatives()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleContentSet
+entryRuleContentSet
+:
+{ before(grammarAccess.getContentSetRule()); }
+ ruleContentSet
+{ after(grammarAccess.getContentSetRule()); }
+ EOF
+;
+
+// Rule ContentSet
+ruleContentSet
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getContentSetAccess().getAlternatives()); }
+ (rule__ContentSet__Alternatives)
+ { after(grammarAccess.getContentSetAccess().getAlternatives()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleAbstractScene
+entryRuleAbstractScene
+:
+{ before(grammarAccess.getAbstractSceneRule()); }
+ ruleAbstractScene
+{ after(grammarAccess.getAbstractSceneRule()); }
+ EOF
+;
+
+// Rule AbstractScene
+ruleAbstractScene
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getAbstractSceneAccess().getSceneParserRuleCall()); }
+ ruleScene
+ { after(grammarAccess.getAbstractSceneAccess().getSceneParserRuleCall()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleAbstractProperty
+entryRuleAbstractProperty
+:
+{ before(grammarAccess.getAbstractPropertyRule()); }
+ ruleAbstractProperty
+{ after(grammarAccess.getAbstractPropertyRule()); }
+ EOF
+;
+
+// Rule AbstractProperty
+ruleAbstractProperty
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getAbstractPropertyAccess().getGroup()); }
+ (rule__AbstractProperty__Group__0)
+ { after(grammarAccess.getAbstractPropertyAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleLayoutManager
+entryRuleLayoutManager
+:
+{ before(grammarAccess.getLayoutManagerRule()); }
+ ruleLayoutManager
+{ after(grammarAccess.getLayoutManagerRule()); }
+ EOF
+;
+
+// Rule LayoutManager
+ruleLayoutManager
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getLayoutManagerAccess().getAlternatives()); }
+ (rule__LayoutManager__Alternatives)
+ { after(grammarAccess.getLayoutManagerAccess().getAlternatives()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleAlignedLayout
+entryRuleAlignedLayout
+:
+{ before(grammarAccess.getAlignedLayoutRule()); }
+ ruleAlignedLayout
+{ after(grammarAccess.getAlignedLayoutRule()); }
+ EOF
+;
+
+// Rule AlignedLayout
+ruleAlignedLayout
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getAlignedLayoutAccess().getAlternatives()); }
+ (rule__AlignedLayout__Alternatives)
+ { after(grammarAccess.getAlignedLayoutAccess().getAlternatives()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleTag
+entryRuleTag
+:
+{ before(grammarAccess.getTagRule()); }
+ ruleTag
+{ after(grammarAccess.getTagRule()); }
+ EOF
+;
+
+// Rule Tag
+ruleTag
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getTagAccess().getGroup()); }
+ (rule__Tag__Group__0)
+ { after(grammarAccess.getTagAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRulePackage
+entryRulePackage
+:
+{ before(grammarAccess.getPackageRule()); }
+ rulePackage
+{ after(grammarAccess.getPackageRule()); }
+ EOF
+;
+
+// Rule Package
+rulePackage
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getPackageAccess().getGroup()); }
+ (rule__Package__Group__0)
+ { after(grammarAccess.getPackageAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleStereotype
+entryRuleStereotype
+:
+{ before(grammarAccess.getStereotypeRule()); }
+ ruleStereotype
+{ after(grammarAccess.getStereotypeRule()); }
+ EOF
+;
+
+// Rule Stereotype
+ruleStereotype
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getStereotypeAccess().getGroup()); }
+ (rule__Stereotype__Group__0)
+ { after(grammarAccess.getStereotypeAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleStereotypableElementName
+entryRuleStereotypableElementName
+:
+{ before(grammarAccess.getStereotypableElementNameRule()); }
+ ruleStereotypableElementName
+{ after(grammarAccess.getStereotypableElementNameRule()); }
+ EOF
+;
+
+// Rule StereotypableElementName
+ruleStereotypableElementName
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getStereotypableElementNameAccess().getAlternatives()); }
+ (rule__StereotypableElementName__Alternatives)
+ { after(grammarAccess.getStereotypableElementNameAccess().getAlternatives()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDisplay
+entryRuleDisplay
+:
+{ before(grammarAccess.getDisplayRule()); }
+ ruleDisplay
+{ after(grammarAccess.getDisplayRule()); }
+ EOF
+;
+
+// Rule Display
+ruleDisplay
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getDisplayAccess().getGroup()); }
+ (rule__Display__Group__0)
+ { after(grammarAccess.getDisplayAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleConstraint
+entryRuleConstraint
+:
+{ before(grammarAccess.getConstraintRule()); }
+ ruleConstraint
+{ after(grammarAccess.getConstraintRule()); }
+ EOF
+;
+
+// Rule Constraint
+ruleConstraint
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getConstraintAccess().getGroup()); }
+ (rule__Constraint__Group__0)
+ { after(grammarAccess.getConstraintAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleViewContent
+entryRuleViewContent
+:
+{ before(grammarAccess.getViewContentRule()); }
+ ruleViewContent
+{ after(grammarAccess.getViewContentRule()); }
+ EOF
+;
+
+// Rule ViewContent
+ruleViewContent
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getViewContentAccess().getGroup()); }
+ (rule__ViewContent__Group__0)
+ { after(grammarAccess.getViewContentAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleSoundContent
+entryRuleSoundContent
+:
+{ before(grammarAccess.getSoundContentRule()); }
+ ruleSoundContent
+{ after(grammarAccess.getSoundContentRule()); }
+ EOF
+;
+
+// Rule SoundContent
+ruleSoundContent
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getSoundContentAccess().getGroup()); }
+ (rule__SoundContent__Group__0)
+ { after(grammarAccess.getSoundContentAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleSize
+entryRuleSize
+:
+{ before(grammarAccess.getSizeRule()); }
+ ruleSize
+{ after(grammarAccess.getSizeRule()); }
+ EOF
+;
+
+// Rule Size
+ruleSize
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getSizeAccess().getGroup()); }
+ (rule__Size__Group__0)
+ { after(grammarAccess.getSizeAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleSizeReference
+entryRuleSizeReference
+:
+{ before(grammarAccess.getSizeReferenceRule()); }
+ ruleSizeReference
+{ after(grammarAccess.getSizeReferenceRule()); }
+ EOF
+;
+
+// Rule SizeReference
+ruleSizeReference
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getSizeReferenceAccess().getGroup()); }
+ (rule__SizeReference__Group__0)
+ { after(grammarAccess.getSizeReferenceAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOffset
+entryRuleOffset
+:
+{ before(grammarAccess.getOffsetRule()); }
+ ruleOffset
+{ after(grammarAccess.getOffsetRule()); }
+ EOF
+;
+
+// Rule Offset
+ruleOffset
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOffsetAccess().getGroup()); }
+ (rule__Offset__Group__0)
+ { after(grammarAccess.getOffsetAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleAreaSet
+entryRuleAreaSet
+:
+{ before(grammarAccess.getAreaSetRule()); }
+ ruleAreaSet
+{ after(grammarAccess.getAreaSetRule()); }
+ EOF
+;
+
+// Rule AreaSet
+ruleAreaSet
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getAreaSetAccess().getGroup()); }
+ (rule__AreaSet__Group__0)
+ { after(grammarAccess.getAreaSetAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleZoneSet
+entryRuleZoneSet
+:
+{ before(grammarAccess.getZoneSetRule()); }
+ ruleZoneSet
+{ after(grammarAccess.getZoneSetRule()); }
+ EOF
+;
+
+// Rule ZoneSet
+ruleZoneSet
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getZoneSetAccess().getGroup()); }
+ (rule__ZoneSet__Group__0)
+ { after(grammarAccess.getZoneSetAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleCompositeArea
+entryRuleCompositeArea
+:
+{ before(grammarAccess.getCompositeAreaRule()); }
+ ruleCompositeArea
+{ after(grammarAccess.getCompositeAreaRule()); }
+ EOF
+;
+
+// Rule CompositeArea
+ruleCompositeArea
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getCompositeAreaAccess().getGroup()); }
+ (rule__CompositeArea__Group__0)
+ { after(grammarAccess.getCompositeAreaAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleArea
+entryRuleArea
+:
+{ before(grammarAccess.getAreaRule()); }
+ ruleArea
+{ after(grammarAccess.getAreaRule()); }
+ EOF
+;
+
+// Rule Area
+ruleArea
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getAreaAccess().getGroup()); }
+ (rule__Area__Group__0)
+ { after(grammarAccess.getAreaAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleZone
+entryRuleZone
+:
+{ before(grammarAccess.getZoneRule()); }
+ ruleZone
+{ after(grammarAccess.getZoneRule()); }
+ EOF
+;
+
+// Rule Zone
+ruleZone
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getZoneAccess().getGroup()); }
+ (rule__Zone__Group__0)
+ { after(grammarAccess.getZoneAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleViewContentState
+entryRuleViewContentState
+:
+{ before(grammarAccess.getViewContentStateRule()); }
+ ruleViewContentState
+{ after(grammarAccess.getViewContentStateRule()); }
+ EOF
+;
+
+// Rule ViewContentState
+ruleViewContentState
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getViewContentStateAccess().getGroup()); }
+ (rule__ViewContentState__Group__0)
+ { after(grammarAccess.getViewContentStateAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleSoundContentState
+entryRuleSoundContentState
+:
+{ before(grammarAccess.getSoundContentStateRule()); }
+ ruleSoundContentState
+{ after(grammarAccess.getSoundContentStateRule()); }
+ EOF
+;
+
+// Rule SoundContentState
+ruleSoundContentState
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getSoundContentStateAccess().getGroup()); }
+ (rule__SoundContentState__Group__0)
+ { after(grammarAccess.getSoundContentStateAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleProject
+entryRuleProject
+:
+{ before(grammarAccess.getProjectRule()); }
+ ruleProject
+{ after(grammarAccess.getProjectRule()); }
+ EOF
+;
+
+// Rule Project
+ruleProject
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getProjectAccess().getGroup()); }
+ (rule__Project__Group__0)
+ { after(grammarAccess.getProjectAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleVExpression
+entryRuleVExpression
+:
+{ before(grammarAccess.getVExpressionRule()); }
+ ruleVExpression
+{ after(grammarAccess.getVExpressionRule()); }
+ EOF
+;
+
+// Rule VExpression
+ruleVExpression
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getVExpressionAccess().getVPlusOperatorParserRuleCall()); }
+ ruleVPlusOperator
+ { after(grammarAccess.getVExpressionAccess().getVPlusOperatorParserRuleCall()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleVPlusOperator
+entryRuleVPlusOperator
+:
+{ before(grammarAccess.getVPlusOperatorRule()); }
+ ruleVPlusOperator
+{ after(grammarAccess.getVPlusOperatorRule()); }
+ EOF
+;
+
+// Rule VPlusOperator
+ruleVPlusOperator
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getVPlusOperatorAccess().getGroup()); }
+ (rule__VPlusOperator__Group__0)
+ { after(grammarAccess.getVPlusOperatorAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpPlus
+entryRuleOpPlus
+:
+{ before(grammarAccess.getOpPlusRule()); }
+ ruleOpPlus
+{ after(grammarAccess.getOpPlusRule()); }
+ EOF
+;
+
+// Rule OpPlus
+ruleOpPlus
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpPlusAccess().getPlusSignKeyword()); }
+ '+'
+ { after(grammarAccess.getOpPlusAccess().getPlusSignKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleVComparisonAnd
+entryRuleVComparisonAnd
+:
+{ before(grammarAccess.getVComparisonAndRule()); }
+ ruleVComparisonAnd
+{ after(grammarAccess.getVComparisonAndRule()); }
+ EOF
+;
+
+// Rule VComparisonAnd
+ruleVComparisonAnd
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getVComparisonAndAccess().getGroup()); }
+ (rule__VComparisonAnd__Group__0)
+ { after(grammarAccess.getVComparisonAndAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleVRelationalExpression
+entryRuleVRelationalExpression
+:
+{ before(grammarAccess.getVRelationalExpressionRule()); }
+ ruleVRelationalExpression
+{ after(grammarAccess.getVRelationalExpressionRule()); }
+ EOF
+;
+
+// Rule VRelationalExpression
+ruleVRelationalExpression
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getVRelationalExpressionAccess().getAlternatives()); }
+ (rule__VRelationalExpression__Alternatives)
+ { after(grammarAccess.getVRelationalExpressionAccess().getAlternatives()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpMuchGreaterThan
+entryRuleOpMuchGreaterThan
+:
+{ before(grammarAccess.getOpMuchGreaterThanRule()); }
+ ruleOpMuchGreaterThan
+{ after(grammarAccess.getOpMuchGreaterThanRule()); }
+ EOF
+;
+
+// Rule OpMuchGreaterThan
+ruleOpMuchGreaterThan
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpMuchGreaterThanAccess().getGreaterThanSignGreaterThanSignKeyword()); }
+ '>>'
+ { after(grammarAccess.getOpMuchGreaterThanAccess().getGreaterThanSignGreaterThanSignKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpEqualTo
+entryRuleOpEqualTo
+:
+{ before(grammarAccess.getOpEqualToRule()); }
+ ruleOpEqualTo
+{ after(grammarAccess.getOpEqualToRule()); }
+ EOF
+;
+
+// Rule OpEqualTo
+ruleOpEqualTo
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpEqualToAccess().getEqualsSignKeyword()); }
+ '='
+ { after(grammarAccess.getOpEqualToAccess().getEqualsSignKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpGreaterThan
+entryRuleOpGreaterThan
+:
+{ before(grammarAccess.getOpGreaterThanRule()); }
+ ruleOpGreaterThan
+{ after(grammarAccess.getOpGreaterThanRule()); }
+ EOF
+;
+
+// Rule OpGreaterThan
+ruleOpGreaterThan
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpGreaterThanAccess().getGreaterThanSignKeyword()); }
+ '>'
+ { after(grammarAccess.getOpGreaterThanAccess().getGreaterThanSignKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpLowerThan
+entryRuleOpLowerThan
+:
+{ before(grammarAccess.getOpLowerThanRule()); }
+ ruleOpLowerThan
+{ after(grammarAccess.getOpLowerThanRule()); }
+ EOF
+;
+
+// Rule OpLowerThan
+ruleOpLowerThan
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpLowerThanAccess().getLessThanSignKeyword()); }
+ '<'
+ { after(grammarAccess.getOpLowerThanAccess().getLessThanSignKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleVPrimaryExpression
+entryRuleVPrimaryExpression
+:
+{ before(grammarAccess.getVPrimaryExpressionRule()); }
+ ruleVPrimaryExpression
+{ after(grammarAccess.getVPrimaryExpressionRule()); }
+ EOF
+;
+
+// Rule VPrimaryExpression
+ruleVPrimaryExpression
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getVPrimaryExpressionAccess().getAlternatives()); }
+ (rule__VPrimaryExpression__Alternatives)
+ { after(grammarAccess.getVPrimaryExpressionAccess().getAlternatives()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleVValueExpression
+entryRuleVValueExpression
+:
+{ before(grammarAccess.getVValueExpressionRule()); }
+ ruleVValueExpression
+{ after(grammarAccess.getVValueExpressionRule()); }
+ EOF
+;
+
+// Rule VValueExpression
+ruleVValueExpression
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getVValueExpressionAccess().getAlternatives()); }
+ (rule__VValueExpression__Alternatives)
+ { after(grammarAccess.getVValueExpressionAccess().getAlternatives()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleThatOfOperator
+entryRuleThatOfOperator
+:
+{ before(grammarAccess.getThatOfOperatorRule()); }
+ ruleThatOfOperator
+{ after(grammarAccess.getThatOfOperatorRule()); }
+ EOF
+;
+
+// Rule ThatOfOperator
+ruleThatOfOperator
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getThatOfOperatorAccess().getGroup()); }
+ (rule__ThatOfOperator__Group__0)
+ { after(grammarAccess.getThatOfOperatorAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleVMemberFeatureReference
+entryRuleVMemberFeatureReference
+:
+{ before(grammarAccess.getVMemberFeatureReferenceRule()); }
+ ruleVMemberFeatureReference
+{ after(grammarAccess.getVMemberFeatureReferenceRule()); }
+ EOF
+;
+
+// Rule VMemberFeatureReference
+ruleVMemberFeatureReference
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getVMemberFeatureReferenceAccess().getGroup()); }
+ (rule__VMemberFeatureReference__Group__0)
+ { after(grammarAccess.getVMemberFeatureReferenceAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleIntegerValue
+entryRuleIntegerValue
+:
+{ before(grammarAccess.getIntegerValueRule()); }
+ ruleIntegerValue
+{ after(grammarAccess.getIntegerValueRule()); }
+ EOF
+;
+
+// Rule IntegerValue
+ruleIntegerValue
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getIntegerValueAccess().getGroup()); }
+ (rule__IntegerValue__Group__0)
+ { after(grammarAccess.getIntegerValueAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleStandardValue
+entryRuleStandardValue
+:
+{ before(grammarAccess.getStandardValueRule()); }
+ ruleStandardValue
+{ after(grammarAccess.getStandardValueRule()); }
+ EOF
+;
+
+// Rule StandardValue
+ruleStandardValue
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getStandardValueAccess().getGroup()); }
+ (rule__StandardValue__Group__0)
+ { after(grammarAccess.getStandardValueAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleNoneValue
+entryRuleNoneValue
+:
+{ before(grammarAccess.getNoneValueRule()); }
+ ruleNoneValue
+{ after(grammarAccess.getNoneValueRule()); }
+ EOF
+;
+
+// Rule NoneValue
+ruleNoneValue
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getNoneValueAccess().getGroup()); }
+ (rule__NoneValue__Group__0)
+ { after(grammarAccess.getNoneValueAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleMinValue
+entryRuleMinValue
+:
+{ before(grammarAccess.getMinValueRule()); }
+ ruleMinValue
+{ after(grammarAccess.getMinValueRule()); }
+ EOF
+;
+
+// Rule MinValue
+ruleMinValue
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getMinValueAccess().getGroup()); }
+ (rule__MinValue__Group__0)
+ { after(grammarAccess.getMinValueAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleMaxValue
+entryRuleMaxValue
+:
+{ before(grammarAccess.getMaxValueRule()); }
+ ruleMaxValue
+{ after(grammarAccess.getMaxValueRule()); }
+ EOF
+;
+
+// Rule MaxValue
+ruleMaxValue
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getMaxValueAccess().getGroup()); }
+ (rule__MaxValue__Group__0)
+ { after(grammarAccess.getMaxValueAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleCExpression
+entryRuleCExpression
+:
+{ before(grammarAccess.getCExpressionRule()); }
+ ruleCExpression
+{ after(grammarAccess.getCExpressionRule()); }
+ EOF
+;
+
+// Rule CExpression
+ruleCExpression
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getCExpressionAccess().getCImpliesOperatorParserRuleCall()); }
+ ruleCImpliesOperator
+ { after(grammarAccess.getCExpressionAccess().getCImpliesOperatorParserRuleCall()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleCImpliesOperator
+entryRuleCImpliesOperator
+:
+{ before(grammarAccess.getCImpliesOperatorRule()); }
+ ruleCImpliesOperator
+{ after(grammarAccess.getCImpliesOperatorRule()); }
+ EOF
+;
+
+// Rule CImpliesOperator
+ruleCImpliesOperator
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getCImpliesOperatorAccess().getGroup()); }
+ (rule__CImpliesOperator__Group__0)
+ { after(grammarAccess.getCImpliesOperatorAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpImplies
+entryRuleOpImplies
+:
+{ before(grammarAccess.getOpImpliesRule()); }
+ ruleOpImplies
+{ after(grammarAccess.getOpImpliesRule()); }
+ EOF
+;
+
+// Rule OpImplies
+ruleOpImplies
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpImpliesAccess().getHyphenMinusGreaterThanSignKeyword()); }
+ '->'
+ { after(grammarAccess.getOpImpliesAccess().getHyphenMinusGreaterThanSignKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleCOrOperator
+entryRuleCOrOperator
+:
+{ before(grammarAccess.getCOrOperatorRule()); }
+ ruleCOrOperator
+{ after(grammarAccess.getCOrOperatorRule()); }
+ EOF
+;
+
+// Rule COrOperator
+ruleCOrOperator
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getCOrOperatorAccess().getGroup()); }
+ (rule__COrOperator__Group__0)
+ { after(grammarAccess.getCOrOperatorAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpOr
+entryRuleOpOr
+:
+{ before(grammarAccess.getOpOrRule()); }
+ ruleOpOr
+{ after(grammarAccess.getOpOrRule()); }
+ EOF
+;
+
+// Rule OpOr
+ruleOpOr
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpOrAccess().getORKeyword()); }
+ 'OR'
+ { after(grammarAccess.getOpOrAccess().getORKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleCAndOperator
+entryRuleCAndOperator
+:
+{ before(grammarAccess.getCAndOperatorRule()); }
+ ruleCAndOperator
+{ after(grammarAccess.getCAndOperatorRule()); }
+ EOF
+;
+
+// Rule CAndOperator
+ruleCAndOperator
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getCAndOperatorAccess().getGroup()); }
+ (rule__CAndOperator__Group__0)
+ { after(grammarAccess.getCAndOperatorAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpAnd
+entryRuleOpAnd
+:
+{ before(grammarAccess.getOpAndRule()); }
+ ruleOpAnd
+{ after(grammarAccess.getOpAndRule()); }
+ EOF
+;
+
+// Rule OpAnd
+ruleOpAnd
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpAndAccess().getANDKeyword()); }
+ 'AND'
+ { after(grammarAccess.getOpAndAccess().getANDKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleCEqualityExpression
+entryRuleCEqualityExpression
+:
+{ before(grammarAccess.getCEqualityExpressionRule()); }
+ ruleCEqualityExpression
+{ after(grammarAccess.getCEqualityExpressionRule()); }
+ EOF
+;
+
+// Rule CEqualityExpression
+ruleCEqualityExpression
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getCEqualityExpressionAccess().getGroup()); }
+ (rule__CEqualityExpression__Group__0)
+ { after(grammarAccess.getCEqualityExpressionAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpObjectCompare
+entryRuleOpObjectCompare
+:
+{ before(grammarAccess.getOpObjectCompareRule()); }
+ ruleOpObjectCompare
+{ after(grammarAccess.getOpObjectCompareRule()); }
+ EOF
+;
+
+// Rule OpObjectCompare
+ruleOpObjectCompare
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpObjectCompareAccess().getEqualsSignEqualsSignKeyword()); }
+ '=='
+ { after(grammarAccess.getOpObjectCompareAccess().getEqualsSignEqualsSignKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpObjectNotCompare
+entryRuleOpObjectNotCompare
+:
+{ before(grammarAccess.getOpObjectNotCompareRule()); }
+ ruleOpObjectNotCompare
+{ after(grammarAccess.getOpObjectNotCompareRule()); }
+ EOF
+;
+
+// Rule OpObjectNotCompare
+ruleOpObjectNotCompare
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpObjectNotCompareAccess().getExclamationMarkEqualsSignKeyword()); }
+ '!='
+ { after(grammarAccess.getOpObjectNotCompareAccess().getExclamationMarkEqualsSignKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpEquality
+entryRuleOpEquality
+:
+{ before(grammarAccess.getOpEqualityRule()); }
+ ruleOpEquality
+{ after(grammarAccess.getOpEqualityRule()); }
+ EOF
+;
+
+// Rule OpEquality
+ruleOpEquality
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpEqualityAccess().getEqualsSignKeyword()); }
+ '='
+ { after(grammarAccess.getOpEqualityAccess().getEqualsSignKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleCRelationalExpression
+entryRuleCRelationalExpression
+:
+{ before(grammarAccess.getCRelationalExpressionRule()); }
+ ruleCRelationalExpression
+{ after(grammarAccess.getCRelationalExpressionRule()); }
+ EOF
+;
+
+// Rule CRelationalExpression
+ruleCRelationalExpression
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getCRelationalExpressionAccess().getGroup()); }
+ (rule__CRelationalExpression__Group__0)
+ { after(grammarAccess.getCRelationalExpressionAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpIsGreaterThanEqual
+entryRuleOpIsGreaterThanEqual
+:
+{ before(grammarAccess.getOpIsGreaterThanEqualRule()); }
+ ruleOpIsGreaterThanEqual
+{ after(grammarAccess.getOpIsGreaterThanEqualRule()); }
+ EOF
+;
+
+// Rule OpIsGreaterThanEqual
+ruleOpIsGreaterThanEqual
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpIsGreaterThanEqualAccess().getGreaterThanSignEqualsSignKeyword()); }
+ '>='
+ { after(grammarAccess.getOpIsGreaterThanEqualAccess().getGreaterThanSignEqualsSignKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpIsLowerThanEqual
+entryRuleOpIsLowerThanEqual
+:
+{ before(grammarAccess.getOpIsLowerThanEqualRule()); }
+ ruleOpIsLowerThanEqual
+{ after(grammarAccess.getOpIsLowerThanEqualRule()); }
+ EOF
+;
+
+// Rule OpIsLowerThanEqual
+ruleOpIsLowerThanEqual
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpIsLowerThanEqualAccess().getLessThanSignEqualsSignKeyword()); }
+ '<='
+ { after(grammarAccess.getOpIsLowerThanEqualAccess().getLessThanSignEqualsSignKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpIsGreaterThan
+entryRuleOpIsGreaterThan
+:
+{ before(grammarAccess.getOpIsGreaterThanRule()); }
+ ruleOpIsGreaterThan
+{ after(grammarAccess.getOpIsGreaterThanRule()); }
+ EOF
+;
+
+// Rule OpIsGreaterThan
+ruleOpIsGreaterThan
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpIsGreaterThanAccess().getGreaterThanSignKeyword()); }
+ '>'
+ { after(grammarAccess.getOpIsGreaterThanAccess().getGreaterThanSignKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpIsLowerThan
+entryRuleOpIsLowerThan
+:
+{ before(grammarAccess.getOpIsLowerThanRule()); }
+ ruleOpIsLowerThan
+{ after(grammarAccess.getOpIsLowerThanRule()); }
+ EOF
+;
+
+// Rule OpIsLowerThan
+ruleOpIsLowerThan
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpIsLowerThanAccess().getLessThanSignKeyword()); }
+ '<'
+ { after(grammarAccess.getOpIsLowerThanAccess().getLessThanSignKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleCUnaryOperation
+entryRuleCUnaryOperation
+:
+{ before(grammarAccess.getCUnaryOperationRule()); }
+ ruleCUnaryOperation
+{ after(grammarAccess.getCUnaryOperationRule()); }
+ EOF
+;
+
+// Rule CUnaryOperation
+ruleCUnaryOperation
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getCUnaryOperationAccess().getAlternatives()); }
+ (rule__CUnaryOperation__Alternatives)
+ { after(grammarAccess.getCUnaryOperationAccess().getAlternatives()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpNot
+entryRuleOpNot
+:
+{ before(grammarAccess.getOpNotRule()); }
+ ruleOpNot
+{ after(grammarAccess.getOpNotRule()); }
+ EOF
+;
+
+// Rule OpNot
+ruleOpNot
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpNotAccess().getExclamationMarkKeyword()); }
+ '!'
+ { after(grammarAccess.getOpNotAccess().getExclamationMarkKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleCOperationFeatureCall
+entryRuleCOperationFeatureCall
+:
+{ before(grammarAccess.getCOperationFeatureCallRule()); }
+ ruleCOperationFeatureCall
+{ after(grammarAccess.getCOperationFeatureCallRule()); }
+ EOF
+;
+
+// Rule COperationFeatureCall
+ruleCOperationFeatureCall
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getCOperationFeatureCallAccess().getGroup()); }
+ (rule__COperationFeatureCall__Group__0)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpGetProperty
+entryRuleOpGetProperty
+:
+{ before(grammarAccess.getOpGetPropertyRule()); }
+ ruleOpGetProperty
+{ after(grammarAccess.getOpGetPropertyRule()); }
+ EOF
+;
+
+// Rule OpGetProperty
+ruleOpGetProperty
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpGetPropertyAccess().getGetKeyword()); }
+ 'get'
+ { after(grammarAccess.getOpGetPropertyAccess().getGetKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpIsOn
+entryRuleOpIsOn
+:
+{ before(grammarAccess.getOpIsOnRule()); }
+ ruleOpIsOn
+{ after(grammarAccess.getOpIsOnRule()); }
+ EOF
+;
+
+// Rule OpIsOn
+ruleOpIsOn
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpIsOnAccess().getIsOnKeyword()); }
+ 'isOn'
+ { after(grammarAccess.getOpIsOnAccess().getIsOnKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpGetContentsList
+entryRuleOpGetContentsList
+:
+{ before(grammarAccess.getOpGetContentsListRule()); }
+ ruleOpGetContentsList
+{ after(grammarAccess.getOpGetContentsListRule()); }
+ EOF
+;
+
+// Rule OpGetContentsList
+ruleOpGetContentsList
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpGetContentsListAccess().getContentsListKeyword()); }
+ 'contentsList'
+ { after(grammarAccess.getOpGetContentsListAccess().getContentsListKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpContentValue
+entryRuleOpContentValue
+:
+{ before(grammarAccess.getOpContentValueRule()); }
+ ruleOpContentValue
+{ after(grammarAccess.getOpContentValueRule()); }
+ EOF
+;
+
+// Rule OpContentValue
+ruleOpContentValue
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpContentValueAccess().getContentValueKeyword()); }
+ 'contentValue'
+ { after(grammarAccess.getOpContentValueAccess().getContentValueKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpIsActive
+entryRuleOpIsActive
+:
+{ before(grammarAccess.getOpIsActiveRule()); }
+ ruleOpIsActive
+{ after(grammarAccess.getOpIsActiveRule()); }
+ EOF
+;
+
+// Rule OpIsActive
+ruleOpIsActive
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpIsActiveAccess().getIsActiveKeyword()); }
+ 'isActive'
+ { after(grammarAccess.getOpIsActiveAccess().getIsActiveKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpGetAllocatables
+entryRuleOpGetAllocatables
+:
+{ before(grammarAccess.getOpGetAllocatablesRule()); }
+ ruleOpGetAllocatables
+{ after(grammarAccess.getOpGetAllocatablesRule()); }
+ EOF
+;
+
+// Rule OpGetAllocatables
+ruleOpGetAllocatables
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpGetAllocatablesAccess().getAllocatablesKeyword()); }
+ 'allocatables'
+ { after(grammarAccess.getOpGetAllocatablesAccess().getAllocatablesKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpAllocatedContent
+entryRuleOpAllocatedContent
+:
+{ before(grammarAccess.getOpAllocatedContentRule()); }
+ ruleOpAllocatedContent
+{ after(grammarAccess.getOpAllocatedContentRule()); }
+ EOF
+;
+
+// Rule OpAllocatedContent
+ruleOpAllocatedContent
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpAllocatedContentAccess().getAllocatedContentKeyword()); }
+ 'allocatedContent'
+ { after(grammarAccess.getOpAllocatedContentAccess().getAllocatedContentKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpIsDisplayed
+entryRuleOpIsDisplayed
+:
+{ before(grammarAccess.getOpIsDisplayedRule()); }
+ ruleOpIsDisplayed
+{ after(grammarAccess.getOpIsDisplayedRule()); }
+ EOF
+;
+
+// Rule OpIsDisplayed
+ruleOpIsDisplayed
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpIsDisplayedAccess().getIsDisplayedKeyword()); }
+ 'isDisplayed'
+ { after(grammarAccess.getOpIsDisplayedAccess().getIsDisplayedKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpIsHidden
+entryRuleOpIsHidden
+:
+{ before(grammarAccess.getOpIsHiddenRule()); }
+ ruleOpIsHidden
+{ after(grammarAccess.getOpIsHiddenRule()); }
+ EOF
+;
+
+// Rule OpIsHidden
+ruleOpIsHidden
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpIsHiddenAccess().getIsHiddenKeyword()); }
+ 'isHidden'
+ { after(grammarAccess.getOpIsHiddenAccess().getIsHiddenKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpDisplayingContent
+entryRuleOpDisplayingContent
+:
+{ before(grammarAccess.getOpDisplayingContentRule()); }
+ ruleOpDisplayingContent
+{ after(grammarAccess.getOpDisplayingContentRule()); }
+ EOF
+;
+
+// Rule OpDisplayingContent
+ruleOpDisplayingContent
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpDisplayingContentAccess().getDisplayingContentKeyword()); }
+ 'displayingContent'
+ { after(grammarAccess.getOpDisplayingContentAccess().getDisplayingContentKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpIsVisible
+entryRuleOpIsVisible
+:
+{ before(grammarAccess.getOpIsVisibleRule()); }
+ ruleOpIsVisible
+{ after(grammarAccess.getOpIsVisibleRule()); }
+ EOF
+;
+
+// Rule OpIsVisible
+ruleOpIsVisible
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpIsVisibleAccess().getIsVisibleKeyword()); }
+ 'isVisible'
+ { after(grammarAccess.getOpIsVisibleAccess().getIsVisibleKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpIsOutputted
+entryRuleOpIsOutputted
+:
+{ before(grammarAccess.getOpIsOutputtedRule()); }
+ ruleOpIsOutputted
+{ after(grammarAccess.getOpIsOutputtedRule()); }
+ EOF
+;
+
+// Rule OpIsOutputted
+ruleOpIsOutputted
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpIsOutputtedAccess().getIsOutputtedKeyword()); }
+ 'isOutputted'
+ { after(grammarAccess.getOpIsOutputtedAccess().getIsOutputtedKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpIsMuted
+entryRuleOpIsMuted
+:
+{ before(grammarAccess.getOpIsMutedRule()); }
+ ruleOpIsMuted
+{ after(grammarAccess.getOpIsMutedRule()); }
+ EOF
+;
+
+// Rule OpIsMuted
+ruleOpIsMuted
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpIsMutedAccess().getIsMutedKeyword()); }
+ 'isMuted'
+ { after(grammarAccess.getOpIsMutedAccess().getIsMutedKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpOutputtingSound
+entryRuleOpOutputtingSound
+:
+{ before(grammarAccess.getOpOutputtingSoundRule()); }
+ ruleOpOutputtingSound
+{ after(grammarAccess.getOpOutputtingSoundRule()); }
+ EOF
+;
+
+// Rule OpOutputtingSound
+ruleOpOutputtingSound
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpOutputtingSoundAccess().getOutputtingSoundKeyword()); }
+ 'outputtingSound'
+ { after(grammarAccess.getOpOutputtingSoundAccess().getOutputtingSoundKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpIsSounding
+entryRuleOpIsSounding
+:
+{ before(grammarAccess.getOpIsSoundingRule()); }
+ ruleOpIsSounding
+{ after(grammarAccess.getOpIsSoundingRule()); }
+ EOF
+;
+
+// Rule OpIsSounding
+ruleOpIsSounding
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpIsSoundingAccess().getIsSoundingKeyword()); }
+ 'isSounding'
+ { after(grammarAccess.getOpIsSoundingAccess().getIsSoundingKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpIsAttenuated
+entryRuleOpIsAttenuated
+:
+{ before(grammarAccess.getOpIsAttenuatedRule()); }
+ ruleOpIsAttenuated
+{ after(grammarAccess.getOpIsAttenuatedRule()); }
+ EOF
+;
+
+// Rule OpIsAttenuated
+ruleOpIsAttenuated
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpIsAttenuatedAccess().getIsAttenuatedKeyword()); }
+ 'isAttenuated'
+ { after(grammarAccess.getOpIsAttenuatedAccess().getIsAttenuatedKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpHasComeEarlierThan
+entryRuleOpHasComeEarlierThan
+:
+{ before(grammarAccess.getOpHasComeEarlierThanRule()); }
+ ruleOpHasComeEarlierThan
+{ after(grammarAccess.getOpHasComeEarlierThanRule()); }
+ EOF
+;
+
+// Rule OpHasComeEarlierThan
+ruleOpHasComeEarlierThan
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpHasComeEarlierThanAccess().getHasComeEarlierThanKeyword()); }
+ 'hasComeEarlierThan'
+ { after(grammarAccess.getOpHasComeEarlierThanAccess().getHasComeEarlierThanKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpHasComeLaterThan
+entryRuleOpHasComeLaterThan
+:
+{ before(grammarAccess.getOpHasComeLaterThanRule()); }
+ ruleOpHasComeLaterThan
+{ after(grammarAccess.getOpHasComeLaterThanRule()); }
+ EOF
+;
+
+// Rule OpHasComeLaterThan
+ruleOpHasComeLaterThan
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpHasComeLaterThanAccess().getHasComeLaterThanKeyword()); }
+ 'hasComeLaterThan'
+ { after(grammarAccess.getOpHasComeLaterThanAccess().getHasComeLaterThanKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpStateValue
+entryRuleOpStateValue
+:
+{ before(grammarAccess.getOpStateValueRule()); }
+ ruleOpStateValue
+{ after(grammarAccess.getOpStateValueRule()); }
+ EOF
+;
+
+// Rule OpStateValue
+ruleOpStateValue
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpStateValueAccess().getStateValueKeyword()); }
+ 'stateValue'
+ { after(grammarAccess.getOpStateValueAccess().getStateValueKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpIsAllocatedTo
+entryRuleOpIsAllocatedTo
+:
+{ before(grammarAccess.getOpIsAllocatedToRule()); }
+ ruleOpIsAllocatedTo
+{ after(grammarAccess.getOpIsAllocatedToRule()); }
+ EOF
+;
+
+// Rule OpIsAllocatedTo
+ruleOpIsAllocatedTo
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpIsAllocatedToAccess().getIsAllocatedToKeyword()); }
+ 'isAllocatedTo'
+ { after(grammarAccess.getOpIsAllocatedToAccess().getIsAllocatedToKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpIsChanged
+entryRuleOpIsChanged
+:
+{ before(grammarAccess.getOpIsChangedRule()); }
+ ruleOpIsChanged
+{ after(grammarAccess.getOpIsChangedRule()); }
+ EOF
+;
+
+// Rule OpIsChanged
+ruleOpIsChanged
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpIsChangedAccess().getIsChangedKeyword()); }
+ 'isChanged'
+ { after(grammarAccess.getOpIsChangedAccess().getIsChangedKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpIsTranslatedTo
+entryRuleOpIsTranslatedTo
+:
+{ before(grammarAccess.getOpIsTranslatedToRule()); }
+ ruleOpIsTranslatedTo
+{ after(grammarAccess.getOpIsTranslatedToRule()); }
+ EOF
+;
+
+// Rule OpIsTranslatedTo
+ruleOpIsTranslatedTo
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpIsTranslatedToAccess().getIsTranslatedToKeyword()); }
+ 'isTranslatedTo'
+ { after(grammarAccess.getOpIsTranslatedToAccess().getIsTranslatedToKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpIsDisplayedOn
+entryRuleOpIsDisplayedOn
+:
+{ before(grammarAccess.getOpIsDisplayedOnRule()); }
+ ruleOpIsDisplayedOn
+{ after(grammarAccess.getOpIsDisplayedOnRule()); }
+ EOF
+;
+
+// Rule OpIsDisplayedOn
+ruleOpIsDisplayedOn
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpIsDisplayedOnAccess().getIsDisplayedOnKeyword()); }
+ 'isDisplayedOn'
+ { after(grammarAccess.getOpIsDisplayedOnAccess().getIsDisplayedOnKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpIsChangedDisplay
+entryRuleOpIsChangedDisplay
+:
+{ before(grammarAccess.getOpIsChangedDisplayRule()); }
+ ruleOpIsChangedDisplay
+{ after(grammarAccess.getOpIsChangedDisplayRule()); }
+ EOF
+;
+
+// Rule OpIsChangedDisplay
+ruleOpIsChangedDisplay
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpIsChangedDisplayAccess().getIsChangedDisplayKeyword()); }
+ 'isChangedDisplay'
+ { after(grammarAccess.getOpIsChangedDisplayAccess().getIsChangedDisplayKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpIsTranslatedViewTo
+entryRuleOpIsTranslatedViewTo
+:
+{ before(grammarAccess.getOpIsTranslatedViewToRule()); }
+ ruleOpIsTranslatedViewTo
+{ after(grammarAccess.getOpIsTranslatedViewToRule()); }
+ EOF
+;
+
+// Rule OpIsTranslatedViewTo
+ruleOpIsTranslatedViewTo
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpIsTranslatedViewToAccess().getIsTranslatedViewToKeyword()); }
+ 'isTranslatedViewTo'
+ { after(grammarAccess.getOpIsTranslatedViewToAccess().getIsTranslatedViewToKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpIsOutputtedOn
+entryRuleOpIsOutputtedOn
+:
+{ before(grammarAccess.getOpIsOutputtedOnRule()); }
+ ruleOpIsOutputtedOn
+{ after(grammarAccess.getOpIsOutputtedOnRule()); }
+ EOF
+;
+
+// Rule OpIsOutputtedOn
+ruleOpIsOutputtedOn
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpIsOutputtedOnAccess().getIsOutputtedOnKeyword()); }
+ 'isOutputtedOn'
+ { after(grammarAccess.getOpIsOutputtedOnAccess().getIsOutputtedOnKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpIsChangedOutput
+entryRuleOpIsChangedOutput
+:
+{ before(grammarAccess.getOpIsChangedOutputRule()); }
+ ruleOpIsChangedOutput
+{ after(grammarAccess.getOpIsChangedOutputRule()); }
+ EOF
+;
+
+// Rule OpIsChangedOutput
+ruleOpIsChangedOutput
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpIsChangedOutputAccess().getIsChangedOutputKeyword()); }
+ 'isChangedOutput'
+ { after(grammarAccess.getOpIsChangedOutputAccess().getIsChangedOutputKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpIsTranslatedSoundTo
+entryRuleOpIsTranslatedSoundTo
+:
+{ before(grammarAccess.getOpIsTranslatedSoundToRule()); }
+ ruleOpIsTranslatedSoundTo
+{ after(grammarAccess.getOpIsTranslatedSoundToRule()); }
+ EOF
+;
+
+// Rule OpIsTranslatedSoundTo
+ruleOpIsTranslatedSoundTo
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpIsTranslatedSoundToAccess().getIsTranslatedSoundToKeyword()); }
+ 'isTranslatedSoundTo'
+ { after(grammarAccess.getOpIsTranslatedSoundToAccess().getIsTranslatedSoundToKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpIsTypeOf
+entryRuleOpIsTypeOf
+:
+{ before(grammarAccess.getOpIsTypeOfRule()); }
+ ruleOpIsTypeOf
+{ after(grammarAccess.getOpIsTypeOfRule()); }
+ EOF
+;
+
+// Rule OpIsTypeOf
+ruleOpIsTypeOf
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpIsTypeOfAccess().getIsTypeOfKeyword()); }
+ 'isTypeOf'
+ { after(grammarAccess.getOpIsTypeOfAccess().getIsTypeOfKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpActiveContents
+entryRuleOpActiveContents
+:
+{ before(grammarAccess.getOpActiveContentsRule()); }
+ ruleOpActiveContents
+{ after(grammarAccess.getOpActiveContentsRule()); }
+ EOF
+;
+
+// Rule OpActiveContents
+ruleOpActiveContents
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpActiveContentsAccess().getActiveContentsKeyword()); }
+ 'activeContents'
+ { after(grammarAccess.getOpActiveContentsAccess().getActiveContentsKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpSizeOperator
+entryRuleOpSizeOperator
+:
+{ before(grammarAccess.getOpSizeOperatorRule()); }
+ ruleOpSizeOperator
+{ after(grammarAccess.getOpSizeOperatorRule()); }
+ EOF
+;
+
+// Rule OpSizeOperator
+ruleOpSizeOperator
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpSizeOperatorAccess().getSizeKeyword()); }
+ 'size'
+ { after(grammarAccess.getOpSizeOperatorAccess().getSizeKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpHasBeenDisplayed
+entryRuleOpHasBeenDisplayed
+:
+{ before(grammarAccess.getOpHasBeenDisplayedRule()); }
+ ruleOpHasBeenDisplayed
+{ after(grammarAccess.getOpHasBeenDisplayedRule()); }
+ EOF
+;
+
+// Rule OpHasBeenDisplayed
+ruleOpHasBeenDisplayed
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpHasBeenDisplayedAccess().getHasBeenDisplayedKeyword()); }
+ 'hasBeenDisplayed'
+ { after(grammarAccess.getOpHasBeenDisplayedAccess().getHasBeenDisplayedKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpActiveState
+entryRuleOpActiveState
+:
+{ before(grammarAccess.getOpActiveStateRule()); }
+ ruleOpActiveState
+{ after(grammarAccess.getOpActiveStateRule()); }
+ EOF
+;
+
+// Rule OpActiveState
+ruleOpActiveState
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpActiveStateAccess().getActiveStateKeyword()); }
+ 'activeState'
+ { after(grammarAccess.getOpActiveStateAccess().getActiveStateKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpMaxOperator
+entryRuleOpMaxOperator
+:
+{ before(grammarAccess.getOpMaxOperatorRule()); }
+ ruleOpMaxOperator
+{ after(grammarAccess.getOpMaxOperatorRule()); }
+ EOF
+;
+
+// Rule OpMaxOperator
+ruleOpMaxOperator
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpMaxOperatorAccess().getMaxKeyword()); }
+ 'max'
+ { after(grammarAccess.getOpMaxOperatorAccess().getMaxKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpMinOperator
+entryRuleOpMinOperator
+:
+{ before(grammarAccess.getOpMinOperatorRule()); }
+ ruleOpMinOperator
+{ after(grammarAccess.getOpMinOperatorRule()); }
+ EOF
+;
+
+// Rule OpMinOperator
+ruleOpMinOperator
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpMinOperatorAccess().getMinKeyword()); }
+ 'min'
+ { after(grammarAccess.getOpMinOperatorAccess().getMinKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleOpSelectOperator
+entryRuleOpSelectOperator
+:
+{ before(grammarAccess.getOpSelectOperatorRule()); }
+ ruleOpSelectOperator
+{ after(grammarAccess.getOpSelectOperatorRule()); }
+ EOF
+;
+
+// Rule OpSelectOperator
+ruleOpSelectOperator
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getOpSelectOperatorAccess().getSelectKeyword()); }
+ 'select'
+ { after(grammarAccess.getOpSelectOperatorAccess().getSelectKeyword()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleCPrimaryExpression
+entryRuleCPrimaryExpression
+:
+{ before(grammarAccess.getCPrimaryExpressionRule()); }
+ ruleCPrimaryExpression
+{ after(grammarAccess.getCPrimaryExpressionRule()); }
+ EOF
+;
+
+// Rule CPrimaryExpression
+ruleCPrimaryExpression
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getCPrimaryExpressionAccess().getAlternatives()); }
+ (rule__CPrimaryExpression__Alternatives)
+ { after(grammarAccess.getCPrimaryExpressionAccess().getAlternatives()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleAllInstanceOfExpression
+entryRuleAllInstanceOfExpression
+:
+{ before(grammarAccess.getAllInstanceOfExpressionRule()); }
+ ruleAllInstanceOfExpression
+{ after(grammarAccess.getAllInstanceOfExpressionRule()); }
+ EOF
+;
+
+// Rule AllInstanceOfExpression
+ruleAllInstanceOfExpression
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getAllInstanceOfExpressionAccess().getGroup()); }
+ (rule__AllInstanceOfExpression__Group__0)
+ { after(grammarAccess.getAllInstanceOfExpressionAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleNullExpression
+entryRuleNullExpression
+:
+{ before(grammarAccess.getNullExpressionRule()); }
+ ruleNullExpression
+{ after(grammarAccess.getNullExpressionRule()); }
+ EOF
+;
+
+// Rule NullExpression
+ruleNullExpression
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getNullExpressionAccess().getGroup()); }
+ (rule__NullExpression__Group__0)
+ { after(grammarAccess.getNullExpressionAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRulePreviousModifier
+entryRulePreviousModifier
+:
+{ before(grammarAccess.getPreviousModifierRule()); }
+ rulePreviousModifier
+{ after(grammarAccess.getPreviousModifierRule()); }
+ EOF
+;
+
+// Rule PreviousModifier
+rulePreviousModifier
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getPreviousModifierAccess().getGroup()); }
+ (rule__PreviousModifier__Group__0)
+ { after(grammarAccess.getPreviousModifierAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleHideLowerPriority
+entryRuleHideLowerPriority
+:
+{ before(grammarAccess.getHideLowerPriorityRule()); }
+ ruleHideLowerPriority
+{ after(grammarAccess.getHideLowerPriorityRule()); }
+ EOF
+;
+
+// Rule HideLowerPriority
+ruleHideLowerPriority
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getHideLowerPriorityAccess().getGroup()); }
+ (rule__HideLowerPriority__Group__0)
+ { after(grammarAccess.getHideLowerPriorityAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleMuteLowerPriority
+entryRuleMuteLowerPriority
+:
+{ before(grammarAccess.getMuteLowerPriorityRule()); }
+ ruleMuteLowerPriority
+{ after(grammarAccess.getMuteLowerPriorityRule()); }
+ EOF
+;
+
+// Rule MuteLowerPriority
+ruleMuteLowerPriority
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getMuteLowerPriorityAccess().getGroup()); }
+ (rule__MuteLowerPriority__Group__0)
+ { after(grammarAccess.getMuteLowerPriorityAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleSetOfOperator
+entryRuleSetOfOperator
+:
+{ before(grammarAccess.getSetOfOperatorRule()); }
+ ruleSetOfOperator
+{ after(grammarAccess.getSetOfOperatorRule()); }
+ EOF
+;
+
+// Rule SetOfOperator
+ruleSetOfOperator
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getSetOfOperatorAccess().getGroup()); }
+ (rule__SetOfOperator__Group__0)
+ { after(grammarAccess.getSetOfOperatorAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleIfStatement
+entryRuleIfStatement
+:
+{ before(grammarAccess.getIfStatementRule()); }
+ ruleIfStatement
+{ after(grammarAccess.getIfStatementRule()); }
+ EOF
+;
+
+// Rule IfStatement
+ruleIfStatement
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getIfStatementAccess().getGroup()); }
+ (rule__IfStatement__Group__0)
+ { after(grammarAccess.getIfStatementAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleForAllOperator
+entryRuleForAllOperator
+:
+{ before(grammarAccess.getForAllOperatorRule()); }
+ ruleForAllOperator
+{ after(grammarAccess.getForAllOperatorRule()); }
+ EOF
+;
+
+// Rule ForAllOperator
+ruleForAllOperator
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getForAllOperatorAccess().getGroup()); }
+ (rule__ForAllOperator__Group__0)
+ { after(grammarAccess.getForAllOperatorAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleExistsOperator
+entryRuleExistsOperator
+:
+{ before(grammarAccess.getExistsOperatorRule()); }
+ ruleExistsOperator
+{ after(grammarAccess.getExistsOperatorRule()); }
+ EOF
+;
+
+// Rule ExistsOperator
+ruleExistsOperator
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getExistsOperatorAccess().getGroup()); }
+ (rule__ExistsOperator__Group__0)
+ { after(grammarAccess.getExistsOperatorAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleLambdaExpression
+entryRuleLambdaExpression
+:
+{ before(grammarAccess.getLambdaExpressionRule()); }
+ ruleLambdaExpression
+{ after(grammarAccess.getLambdaExpressionRule()); }
+ EOF
+;
+
+// Rule LambdaExpression
+ruleLambdaExpression
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getLambdaExpressionAccess().getGroup()); }
+ (rule__LambdaExpression__Group__0)
+ { after(grammarAccess.getLambdaExpressionAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleVariable
+entryRuleVariable
+:
+{ before(grammarAccess.getVariableRule()); }
+ ruleVariable
+{ after(grammarAccess.getVariableRule()); }
+ EOF
+;
+
+// Rule Variable
+ruleVariable
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getVariableAccess().getGroup()); }
+ (rule__Variable__Group__0)
+ { after(grammarAccess.getVariableAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleCMemberFeatureReference
+entryRuleCMemberFeatureReference
+:
+{ before(grammarAccess.getCMemberFeatureReferenceRule()); }
+ ruleCMemberFeatureReference
+{ after(grammarAccess.getCMemberFeatureReferenceRule()); }
+ EOF
+;
+
+// Rule CMemberFeatureReference
+ruleCMemberFeatureReference
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getCMemberFeatureReferenceAccess().getGroup()); }
+ (rule__CMemberFeatureReference__Group__0)
+ { after(grammarAccess.getCMemberFeatureReferenceAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleLetStatement
+entryRuleLetStatement
+:
+{ before(grammarAccess.getLetStatementRule()); }
+ ruleLetStatement
+{ after(grammarAccess.getLetStatementRule()); }
+ EOF
+;
+
+// Rule LetStatement
+ruleLetStatement
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getLetStatementAccess().getGroup()); }
+ (rule__LetStatement__Group__0)
+ { after(grammarAccess.getLetStatementAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleComplexExpression
+entryRuleComplexExpression
+:
+{ before(grammarAccess.getComplexExpressionRule()); }
+ ruleComplexExpression
+{ after(grammarAccess.getComplexExpressionRule()); }
+ EOF
+;
+
+// Rule ComplexExpression
+ruleComplexExpression
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getComplexExpressionAccess().getGroup()); }
+ (rule__ComplexExpression__Group__0)
+ { after(grammarAccess.getComplexExpressionAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleLoserTypeExpression
+entryRuleLoserTypeExpression
+:
+{ before(grammarAccess.getLoserTypeExpressionRule()); }
+ ruleLoserTypeExpression
+{ after(grammarAccess.getLoserTypeExpressionRule()); }
+ EOF
+;
+
+// Rule LoserTypeExpression
+ruleLoserTypeExpression
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getLoserTypeExpressionAccess().getGroup()); }
+ (rule__LoserTypeExpression__Group__0)
+ { after(grammarAccess.getLoserTypeExpressionAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleArbitrationPolicyExpression
+entryRuleArbitrationPolicyExpression
+:
+{ before(grammarAccess.getArbitrationPolicyExpressionRule()); }
+ ruleArbitrationPolicyExpression
+{ after(grammarAccess.getArbitrationPolicyExpressionRule()); }
+ EOF
+;
+
+// Rule ArbitrationPolicyExpression
+ruleArbitrationPolicyExpression
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getArbitrationPolicyExpressionAccess().getGroup()); }
+ (rule__ArbitrationPolicyExpression__Group__0)
+ { after(grammarAccess.getArbitrationPolicyExpressionAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleViewContentSet
+entryRuleViewContentSet
+:
+{ before(grammarAccess.getViewContentSetRule()); }
+ ruleViewContentSet
+{ after(grammarAccess.getViewContentSetRule()); }
+ EOF
+;
+
+// Rule ViewContentSet
+ruleViewContentSet
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getViewContentSetAccess().getGroup()); }
+ (rule__ViewContentSet__Group__0)
+ { after(grammarAccess.getViewContentSetAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleSoundContentSet
+entryRuleSoundContentSet
+:
+{ before(grammarAccess.getSoundContentSetRule()); }
+ ruleSoundContentSet
+{ after(grammarAccess.getSoundContentSetRule()); }
+ EOF
+;
+
+// Rule SoundContentSet
+ruleSoundContentSet
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getSoundContentSetAccess().getGroup()); }
+ (rule__SoundContentSet__Group__0)
+ { after(grammarAccess.getSoundContentSetAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleScene
+entryRuleScene
+:
+{ before(grammarAccess.getSceneRule()); }
+ ruleScene
+{ after(grammarAccess.getSceneRule()); }
+ EOF
+;
+
+// Rule Scene
+ruleScene
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getSceneAccess().getGroup()); }
+ (rule__Scene__Group__0)
+ { after(grammarAccess.getSceneAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleVerticalLayout
+entryRuleVerticalLayout
+:
+{ before(grammarAccess.getVerticalLayoutRule()); }
+ ruleVerticalLayout
+{ after(grammarAccess.getVerticalLayoutRule()); }
+ EOF
+;
+
+// Rule VerticalLayout
+ruleVerticalLayout
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getVerticalLayoutAccess().getGroup()); }
+ (rule__VerticalLayout__Group__0)
+ { after(grammarAccess.getVerticalLayoutAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleHorizontalLayout
+entryRuleHorizontalLayout
+:
+{ before(grammarAccess.getHorizontalLayoutRule()); }
+ ruleHorizontalLayout
+{ after(grammarAccess.getHorizontalLayoutRule()); }
+ EOF
+;
+
+// Rule HorizontalLayout
+ruleHorizontalLayout
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getHorizontalLayoutAccess().getGroup()); }
+ (rule__HorizontalLayout__Group__0)
+ { after(grammarAccess.getHorizontalLayoutAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleFixedPositionLayout
+entryRuleFixedPositionLayout
+:
+{ before(grammarAccess.getFixedPositionLayoutRule()); }
+ ruleFixedPositionLayout
+{ after(grammarAccess.getFixedPositionLayoutRule()); }
+ EOF
+;
+
+// Rule FixedPositionLayout
+ruleFixedPositionLayout
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getFixedPositionLayoutAccess().getGroup()); }
+ (rule__FixedPositionLayout__Group__0)
+ { after(grammarAccess.getFixedPositionLayoutAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRulePositionContainer
+entryRulePositionContainer
+:
+{ before(grammarAccess.getPositionContainerRule()); }
+ rulePositionContainer
+{ after(grammarAccess.getPositionContainerRule()); }
+ EOF
+;
+
+// Rule PositionContainer
+rulePositionContainer
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getPositionContainerAccess().getGroup()); }
+ (rule__PositionContainer__Group__0)
+ { after(grammarAccess.getPositionContainerAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleEBoolean
+entryRuleEBoolean
+:
+{ before(grammarAccess.getEBooleanRule()); }
+ ruleEBoolean
+{ after(grammarAccess.getEBooleanRule()); }
+ EOF
+;
+
+// Rule EBoolean
+ruleEBoolean
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getEBooleanAccess().getAlternatives()); }
+ (rule__EBoolean__Alternatives)
+ { after(grammarAccess.getEBooleanAccess().getAlternatives()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleEInt
+entryRuleEInt
+:
+{ before(grammarAccess.getEIntRule()); }
+ ruleEInt
+{ after(grammarAccess.getEIntRule()); }
+ EOF
+;
+
+// Rule EInt
+ruleEInt
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getEIntAccess().getGroup()); }
+ (rule__EInt__Group__0)
+ { after(grammarAccess.getEIntAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleEString
+entryRuleEString
+:
+{ before(grammarAccess.getEStringRule()); }
+ ruleEString
+{ after(grammarAccess.getEStringRule()); }
+ EOF
+;
+
+// Rule EString
+ruleEString
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getEStringAccess().getSTRINGTerminalRuleCall()); }
+ RULE_STRING
+ { after(grammarAccess.getEStringAccess().getSTRINGTerminalRuleCall()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleRichString
+entryRuleRichString
+:
+{ before(grammarAccess.getRichStringRule()); }
+ ruleRichString
+{ after(grammarAccess.getRichStringRule()); }
+ EOF
+;
+
+// Rule RichString
+ruleRichString
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getRichStringAccess().getRICH_STRINGTerminalRuleCall()); }
+ RULE_RICH_STRING
+ { after(grammarAccess.getRichStringAccess().getRICH_STRINGTerminalRuleCall()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleQualifiedNameWithWildcard
+entryRuleQualifiedNameWithWildcard
+:
+{ before(grammarAccess.getQualifiedNameWithWildcardRule()); }
+ ruleQualifiedNameWithWildcard
+{ after(grammarAccess.getQualifiedNameWithWildcardRule()); }
+ EOF
+;
+
+// Rule QualifiedNameWithWildcard
+ruleQualifiedNameWithWildcard
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getQualifiedNameWithWildcardAccess().getGroup()); }
+ (rule__QualifiedNameWithWildcard__Group__0)
+ { after(grammarAccess.getQualifiedNameWithWildcardAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleQualifiedName
+entryRuleQualifiedName
+:
+{ before(grammarAccess.getQualifiedNameRule()); }
+ ruleQualifiedName
+{ after(grammarAccess.getQualifiedNameRule()); }
+ EOF
+;
+
+// Rule QualifiedName
+ruleQualifiedName
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getQualifiedNameAccess().getGroup()); }
+ (rule__QualifiedName__Group__0)
+ { after(grammarAccess.getQualifiedNameAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleIdOrThis
+entryRuleIdOrThis
+:
+{ before(grammarAccess.getIdOrThisRule()); }
+ ruleIdOrThis
+{ after(grammarAccess.getIdOrThisRule()); }
+ EOF
+;
+
+// Rule IdOrThis
+ruleIdOrThis
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getIdOrThisAccess().getAlternatives()); }
+ (rule__IdOrThis__Alternatives)
+ { after(grammarAccess.getIdOrThisAccess().getAlternatives()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleValidID
+entryRuleValidID
+:
+{ before(grammarAccess.getValidIDRule()); }
+ ruleValidID
+{ after(grammarAccess.getValidIDRule()); }
+ EOF
+;
+
+// Rule ValidID
+ruleValidID
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getValidIDAccess().getIDTerminalRuleCall()); }
+ RULE_ID
+ { after(grammarAccess.getValidIDAccess().getIDTerminalRuleCall()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleContentOperatorsCommon
+entryRuleContentOperatorsCommon
+:
+{ before(grammarAccess.getContentOperatorsCommonRule()); }
+ ruleContentOperatorsCommon
+{ after(grammarAccess.getContentOperatorsCommonRule()); }
+ EOF
+;
+
+// Rule ContentOperatorsCommon
+ruleContentOperatorsCommon
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getContentOperatorsCommonAccess().getAlternatives()); }
+ (rule__ContentOperatorsCommon__Alternatives)
+ { after(grammarAccess.getContentOperatorsCommonAccess().getAlternatives()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleSoundOperatorsCommon
+entryRuleSoundOperatorsCommon
+:
+{ before(grammarAccess.getSoundOperatorsCommonRule()); }
+ ruleSoundOperatorsCommon
+{ after(grammarAccess.getSoundOperatorsCommonRule()); }
+ EOF
+;
+
+// Rule SoundOperatorsCommon
+ruleSoundOperatorsCommon
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getSoundOperatorsCommonAccess().getAlternatives()); }
+ (rule__SoundOperatorsCommon__Alternatives)
+ { after(grammarAccess.getSoundOperatorsCommonAccess().getAlternatives()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Rule ArbitrationPolicy
+ruleArbitrationPolicy
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getArbitrationPolicyAccess().getAlternatives()); }
+ (rule__ArbitrationPolicy__Alternatives)
+ { after(grammarAccess.getArbitrationPolicyAccess().getAlternatives()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Rule BasePoint
+ruleBasePoint
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getBasePointAccess().getAlternatives()); }
+ (rule__BasePoint__Alternatives)
+ { after(grammarAccess.getBasePointAccess().getAlternatives()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Rule LoserType
+ruleLoserType
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getLoserTypeAccess().getAlternatives()); }
+ (rule__LoserType__Alternatives)
+ { after(grammarAccess.getLoserTypeAccess().getAlternatives()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PackagableElement__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getPackagableElementAccess().getPackageParserRuleCall_0()); }
+ rulePackage
+ { after(grammarAccess.getPackagableElementAccess().getPackageParserRuleCall_0()); }
+ )
+ |
+ (
+ { before(grammarAccess.getPackagableElementAccess().getStereotypeParserRuleCall_1()); }
+ ruleStereotype
+ { after(grammarAccess.getPackagableElementAccess().getStereotypeParserRuleCall_1()); }
+ )
+ |
+ (
+ { before(grammarAccess.getPackagableElementAccess().getRuleObjectParserRuleCall_2()); }
+ ruleRuleObject
+ { after(grammarAccess.getPackagableElementAccess().getRuleObjectParserRuleCall_2()); }
+ )
+ |
+ (
+ { before(grammarAccess.getPackagableElementAccess().getDisplayParserRuleCall_3()); }
+ ruleDisplay
+ { after(grammarAccess.getPackagableElementAccess().getDisplayParserRuleCall_3()); }
+ )
+ |
+ (
+ { before(grammarAccess.getPackagableElementAccess().getAbstractConstraintParserRuleCall_4()); }
+ ruleAbstractConstraint
+ { after(grammarAccess.getPackagableElementAccess().getAbstractConstraintParserRuleCall_4()); }
+ )
+ |
+ (
+ { before(grammarAccess.getPackagableElementAccess().getSizeParserRuleCall_5()); }
+ ruleSize
+ { after(grammarAccess.getPackagableElementAccess().getSizeParserRuleCall_5()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SizeIdentifier__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getSizeIdentifierAccess().getSizeReferenceParserRuleCall_0()); }
+ ruleSizeReference
+ { after(grammarAccess.getSizeIdentifierAccess().getSizeReferenceParserRuleCall_0()); }
+ )
+ |
+ (
+ { before(grammarAccess.getSizeIdentifierAccess().getSizeParserRuleCall_1()); }
+ ruleSize
+ { after(grammarAccess.getSizeIdentifierAccess().getSizeParserRuleCall_1()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__RuleObject__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getRuleObjectAccess().getAbstractContentParserRuleCall_0()); }
+ ruleAbstractContent
+ { after(grammarAccess.getRuleObjectAccess().getAbstractContentParserRuleCall_0()); }
+ )
+ |
+ (
+ { before(grammarAccess.getRuleObjectAccess().getAbstractSceneParserRuleCall_1()); }
+ ruleAbstractScene
+ { after(grammarAccess.getRuleObjectAccess().getAbstractSceneParserRuleCall_1()); }
+ )
+ |
+ (
+ { before(grammarAccess.getRuleObjectAccess().getAbstractAllocatableParserRuleCall_2()); }
+ ruleAbstractAllocatable
+ { after(grammarAccess.getRuleObjectAccess().getAbstractAllocatableParserRuleCall_2()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AbstractAllocatable__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getAbstractAllocatableAccess().getAllocatableParserRuleCall_0()); }
+ ruleAllocatable
+ { after(grammarAccess.getAbstractAllocatableAccess().getAllocatableParserRuleCall_0()); }
+ )
+ |
+ (
+ { before(grammarAccess.getAbstractAllocatableAccess().getAllocatableSetParserRuleCall_1()); }
+ ruleAllocatableSet
+ { after(grammarAccess.getAbstractAllocatableAccess().getAllocatableSetParserRuleCall_1()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Allocatable__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getAllocatableAccess().getAreaParserRuleCall_0()); }
+ ruleArea
+ { after(grammarAccess.getAllocatableAccess().getAreaParserRuleCall_0()); }
+ )
+ |
+ (
+ { before(grammarAccess.getAllocatableAccess().getZoneParserRuleCall_1()); }
+ ruleZone
+ { after(grammarAccess.getAllocatableAccess().getZoneParserRuleCall_1()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AllocatableSet__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getAllocatableSetAccess().getAreaSetParserRuleCall_0()); }
+ ruleAreaSet
+ { after(grammarAccess.getAllocatableSetAccess().getAreaSetParserRuleCall_0()); }
+ )
+ |
+ (
+ { before(grammarAccess.getAllocatableSetAccess().getZoneSetParserRuleCall_1()); }
+ ruleZoneSet
+ { after(grammarAccess.getAllocatableSetAccess().getZoneSetParserRuleCall_1()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AbstractContent__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getAbstractContentAccess().getContentParserRuleCall_0()); }
+ ruleContent
+ { after(grammarAccess.getAbstractContentAccess().getContentParserRuleCall_0()); }
+ )
+ |
+ (
+ { before(grammarAccess.getAbstractContentAccess().getContentSetParserRuleCall_1()); }
+ ruleContentSet
+ { after(grammarAccess.getAbstractContentAccess().getContentSetParserRuleCall_1()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Content__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getContentAccess().getViewContentParserRuleCall_0()); }
+ ruleViewContent
+ { after(grammarAccess.getContentAccess().getViewContentParserRuleCall_0()); }
+ )
+ |
+ (
+ { before(grammarAccess.getContentAccess().getSoundContentParserRuleCall_1()); }
+ ruleSoundContent
+ { after(grammarAccess.getContentAccess().getSoundContentParserRuleCall_1()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ContentSet__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getContentSetAccess().getViewContentSetParserRuleCall_0()); }
+ ruleViewContentSet
+ { after(grammarAccess.getContentSetAccess().getViewContentSetParserRuleCall_0()); }
+ )
+ |
+ (
+ { before(grammarAccess.getContentSetAccess().getSoundContentSetParserRuleCall_1()); }
+ ruleSoundContentSet
+ { after(grammarAccess.getContentSetAccess().getSoundContentSetParserRuleCall_1()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LayoutManager__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getLayoutManagerAccess().getAlignedLayoutParserRuleCall_0()); }
+ ruleAlignedLayout
+ { after(grammarAccess.getLayoutManagerAccess().getAlignedLayoutParserRuleCall_0()); }
+ )
+ |
+ (
+ { before(grammarAccess.getLayoutManagerAccess().getFixedPositionLayoutParserRuleCall_1()); }
+ ruleFixedPositionLayout
+ { after(grammarAccess.getLayoutManagerAccess().getFixedPositionLayoutParserRuleCall_1()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AlignedLayout__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getAlignedLayoutAccess().getVerticalLayoutParserRuleCall_0()); }
+ ruleVerticalLayout
+ { after(grammarAccess.getAlignedLayoutAccess().getVerticalLayoutParserRuleCall_0()); }
+ )
+ |
+ (
+ { before(grammarAccess.getAlignedLayoutAccess().getHorizontalLayoutParserRuleCall_1()); }
+ ruleHorizontalLayout
+ { after(grammarAccess.getAlignedLayoutAccess().getHorizontalLayoutParserRuleCall_1()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Tag__Alternatives_0_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getTagAccess().getGroup_0_0_0()); }
+ (rule__Tag__Group_0_0_0__0)
+ { after(grammarAccess.getTagAccess().getGroup_0_0_0()); }
+ )
+ |
+ (
+ { before(grammarAccess.getTagAccess().getGroup_0_0_1()); }
+ (rule__Tag__Group_0_0_1__0)
+ { after(grammarAccess.getTagAccess().getGroup_0_0_1()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__StereotypableElementName__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getStereotypableElementNameAccess().getAreaKeyword_0()); }
+ 'Area'
+ { after(grammarAccess.getStereotypableElementNameAccess().getAreaKeyword_0()); }
+ )
+ |
+ (
+ { before(grammarAccess.getStereotypableElementNameAccess().getZoneKeyword_1()); }
+ 'Zone'
+ { after(grammarAccess.getStereotypableElementNameAccess().getZoneKeyword_1()); }
+ )
+ |
+ (
+ { before(grammarAccess.getStereotypableElementNameAccess().getSoundContentKeyword_2()); }
+ 'SoundContent'
+ { after(grammarAccess.getStereotypableElementNameAccess().getSoundContentKeyword_2()); }
+ )
+ |
+ (
+ { before(grammarAccess.getStereotypableElementNameAccess().getViewContentKeyword_3()); }
+ 'ViewContent'
+ { after(grammarAccess.getStereotypableElementNameAccess().getViewContentKeyword_3()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Area__Alternatives_4_3_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getAreaAccess().getVisibilityKeyword_4_3_0_0()); }
+ 'visibility:'
+ { after(grammarAccess.getAreaAccess().getVisibilityKeyword_4_3_0_0()); }
+ )
+ |
+ (
+ { before(grammarAccess.getAreaAccess().getPriorityKeyword_4_3_0_1()); }
+ 'priority:'
+ { after(grammarAccess.getAreaAccess().getPriorityKeyword_4_3_0_1()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Zone__Alternatives_4_2_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getZoneAccess().getVisibilityKeyword_4_2_0_0()); }
+ 'visibility:'
+ { after(grammarAccess.getZoneAccess().getVisibilityKeyword_4_2_0_0()); }
+ )
+ |
+ (
+ { before(grammarAccess.getZoneAccess().getPriorityKeyword_4_2_0_1()); }
+ 'priority:'
+ { after(grammarAccess.getZoneAccess().getPriorityKeyword_4_2_0_1()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentState__Alternatives_4_1_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getViewContentStateAccess().getPriorityKeyword_4_1_0_0()); }
+ 'priority:'
+ { after(grammarAccess.getViewContentStateAccess().getPriorityKeyword_4_1_0_0()); }
+ )
+ |
+ (
+ { before(grammarAccess.getViewContentStateAccess().getValueKeyword_4_1_0_1()); }
+ 'value:'
+ { after(grammarAccess.getViewContentStateAccess().getValueKeyword_4_1_0_1()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentState__Alternatives_4_1_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getSoundContentStateAccess().getPriorityKeyword_4_1_0_0()); }
+ 'priority:'
+ { after(grammarAccess.getSoundContentStateAccess().getPriorityKeyword_4_1_0_0()); }
+ )
+ |
+ (
+ { before(grammarAccess.getSoundContentStateAccess().getValueKeyword_4_1_0_1()); }
+ 'value:'
+ { after(grammarAccess.getSoundContentStateAccess().getValueKeyword_4_1_0_1()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VRelationalExpression__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getVRelationalExpressionAccess().getVPrimaryExpressionParserRuleCall_0()); }
+ ruleVPrimaryExpression
+ { after(grammarAccess.getVRelationalExpressionAccess().getVPrimaryExpressionParserRuleCall_0()); }
+ )
+ |
+ (
+ { before(grammarAccess.getVRelationalExpressionAccess().getGroup_1()); }
+ (rule__VRelationalExpression__Group_1__0)
+ { after(grammarAccess.getVRelationalExpressionAccess().getGroup_1()); }
+ )
+ |
+ (
+ { before(grammarAccess.getVRelationalExpressionAccess().getGroup_2()); }
+ (rule__VRelationalExpression__Group_2__0)
+ { after(grammarAccess.getVRelationalExpressionAccess().getGroup_2()); }
+ )
+ |
+ (
+ { before(grammarAccess.getVRelationalExpressionAccess().getGroup_3()); }
+ (rule__VRelationalExpression__Group_3__0)
+ { after(grammarAccess.getVRelationalExpressionAccess().getGroup_3()); }
+ )
+ |
+ (
+ { before(grammarAccess.getVRelationalExpressionAccess().getGroup_4()); }
+ (rule__VRelationalExpression__Group_4__0)
+ { after(grammarAccess.getVRelationalExpressionAccess().getGroup_4()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VPrimaryExpression__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getVPrimaryExpressionAccess().getThatOfOperatorParserRuleCall_0()); }
+ ruleThatOfOperator
+ { after(grammarAccess.getVPrimaryExpressionAccess().getThatOfOperatorParserRuleCall_0()); }
+ )
+ |
+ (
+ { before(grammarAccess.getVPrimaryExpressionAccess().getVValueExpressionParserRuleCall_1()); }
+ ruleVValueExpression
+ { after(grammarAccess.getVPrimaryExpressionAccess().getVValueExpressionParserRuleCall_1()); }
+ )
+ |
+ (
+ { before(grammarAccess.getVPrimaryExpressionAccess().getGroup_2()); }
+ (rule__VPrimaryExpression__Group_2__0)
+ { after(grammarAccess.getVPrimaryExpressionAccess().getGroup_2()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VValueExpression__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getVValueExpressionAccess().getIntegerValueParserRuleCall_0()); }
+ ruleIntegerValue
+ { after(grammarAccess.getVValueExpressionAccess().getIntegerValueParserRuleCall_0()); }
+ )
+ |
+ (
+ { before(grammarAccess.getVValueExpressionAccess().getStandardValueParserRuleCall_1()); }
+ ruleStandardValue
+ { after(grammarAccess.getVValueExpressionAccess().getStandardValueParserRuleCall_1()); }
+ )
+ |
+ (
+ { before(grammarAccess.getVValueExpressionAccess().getNoneValueParserRuleCall_2()); }
+ ruleNoneValue
+ { after(grammarAccess.getVValueExpressionAccess().getNoneValueParserRuleCall_2()); }
+ )
+ |
+ (
+ { before(grammarAccess.getVValueExpressionAccess().getMinValueParserRuleCall_3()); }
+ ruleMinValue
+ { after(grammarAccess.getVValueExpressionAccess().getMinValueParserRuleCall_3()); }
+ )
+ |
+ (
+ { before(grammarAccess.getVValueExpressionAccess().getMaxValueParserRuleCall_4()); }
+ ruleMaxValue
+ { after(grammarAccess.getVValueExpressionAccess().getMaxValueParserRuleCall_4()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CEqualityExpression__Alternatives_1_0_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getCEqualityExpressionAccess().getGroup_1_0_0_0()); }
+ (rule__CEqualityExpression__Group_1_0_0_0__0)
+ { after(grammarAccess.getCEqualityExpressionAccess().getGroup_1_0_0_0()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCEqualityExpressionAccess().getGroup_1_0_0_1()); }
+ (rule__CEqualityExpression__Group_1_0_0_1__0)
+ { after(grammarAccess.getCEqualityExpressionAccess().getGroup_1_0_0_1()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCEqualityExpressionAccess().getGroup_1_0_0_2()); }
+ (rule__CEqualityExpression__Group_1_0_0_2__0)
+ { after(grammarAccess.getCEqualityExpressionAccess().getGroup_1_0_0_2()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CRelationalExpression__Alternatives_1_0_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getCRelationalExpressionAccess().getGroup_1_0_0_0()); }
+ (rule__CRelationalExpression__Group_1_0_0_0__0)
+ { after(grammarAccess.getCRelationalExpressionAccess().getGroup_1_0_0_0()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCRelationalExpressionAccess().getGroup_1_0_0_1()); }
+ (rule__CRelationalExpression__Group_1_0_0_1__0)
+ { after(grammarAccess.getCRelationalExpressionAccess().getGroup_1_0_0_1()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCRelationalExpressionAccess().getGroup_1_0_0_2()); }
+ (rule__CRelationalExpression__Group_1_0_0_2__0)
+ { after(grammarAccess.getCRelationalExpressionAccess().getGroup_1_0_0_2()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCRelationalExpressionAccess().getGroup_1_0_0_3()); }
+ (rule__CRelationalExpression__Group_1_0_0_3__0)
+ { after(grammarAccess.getCRelationalExpressionAccess().getGroup_1_0_0_3()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CUnaryOperation__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getCUnaryOperationAccess().getGroup_0()); }
+ (rule__CUnaryOperation__Group_0__0)
+ { after(grammarAccess.getCUnaryOperationAccess().getGroup_0()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCUnaryOperationAccess().getCOperationFeatureCallParserRuleCall_1()); }
+ ruleCOperationFeatureCall
+ { after(grammarAccess.getCUnaryOperationAccess().getCOperationFeatureCallParserRuleCall_1()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Alternatives_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0()); }
+ (rule__COperationFeatureCall__Group_1_1_0__0)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_1()); }
+ (rule__COperationFeatureCall__Group_1_1_1__0)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_1()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCOperationFeatureCallAccess().getAlternatives_1_1_2()); }
+ (rule__COperationFeatureCall__Alternatives_1_1_2)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getAlternatives_1_1_2()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Alternatives_1_1_0_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_0()); }
+ (rule__COperationFeatureCall__Group_1_1_0_0_0__0)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_0()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_1()); }
+ (rule__COperationFeatureCall__Group_1_1_0_0_1__0)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_1()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_2()); }
+ (rule__COperationFeatureCall__Group_1_1_0_0_2__0)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_2()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_3()); }
+ (rule__COperationFeatureCall__Group_1_1_0_0_3__0)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_3()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_4()); }
+ (rule__COperationFeatureCall__Group_1_1_0_0_4__0)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_4()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_5()); }
+ (rule__COperationFeatureCall__Group_1_1_0_0_5__0)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_5()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_6()); }
+ (rule__COperationFeatureCall__Group_1_1_0_0_6__0)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_6()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_7()); }
+ (rule__COperationFeatureCall__Group_1_1_0_0_7__0)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_7()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_8()); }
+ (rule__COperationFeatureCall__Group_1_1_0_0_8__0)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_8()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_9()); }
+ (rule__COperationFeatureCall__Group_1_1_0_0_9__0)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_9()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_10()); }
+ (rule__COperationFeatureCall__Group_1_1_0_0_10__0)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_10()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_11()); }
+ (rule__COperationFeatureCall__Group_1_1_0_0_11__0)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_11()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_12()); }
+ (rule__COperationFeatureCall__Group_1_1_0_0_12__0)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_12()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_13()); }
+ (rule__COperationFeatureCall__Group_1_1_0_0_13__0)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_13()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_14()); }
+ (rule__COperationFeatureCall__Group_1_1_0_0_14__0)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_14()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_15()); }
+ (rule__COperationFeatureCall__Group_1_1_0_0_15__0)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_15()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_16()); }
+ (rule__COperationFeatureCall__Group_1_1_0_0_16__0)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_16()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_17()); }
+ (rule__COperationFeatureCall__Group_1_1_0_0_17__0)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_17()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_18()); }
+ (rule__COperationFeatureCall__Group_1_1_0_0_18__0)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_18()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_19()); }
+ (rule__COperationFeatureCall__Group_1_1_0_0_19__0)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_19()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_20()); }
+ (rule__COperationFeatureCall__Group_1_1_0_0_20__0)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_20()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_21()); }
+ (rule__COperationFeatureCall__Group_1_1_0_0_21__0)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_21()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_22()); }
+ (rule__COperationFeatureCall__Group_1_1_0_0_22__0)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_22()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_23()); }
+ (rule__COperationFeatureCall__Group_1_1_0_0_23__0)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_23()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_24()); }
+ (rule__COperationFeatureCall__Group_1_1_0_0_24__0)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_24()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_25()); }
+ (rule__COperationFeatureCall__Group_1_1_0_0_25__0)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_25()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_26()); }
+ (rule__COperationFeatureCall__Group_1_1_0_0_26__0)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_26()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_27()); }
+ (rule__COperationFeatureCall__Group_1_1_0_0_27__0)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_27()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_28()); }
+ (rule__COperationFeatureCall__Group_1_1_0_0_28__0)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_28()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_29()); }
+ (rule__COperationFeatureCall__Group_1_1_0_0_29__0)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_29()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_30()); }
+ (rule__COperationFeatureCall__Group_1_1_0_0_30__0)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_30()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_31()); }
+ (rule__COperationFeatureCall__Group_1_1_0_0_31__0)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_31()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Alternatives_1_1_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_2_0()); }
+ (rule__COperationFeatureCall__Group_1_1_2_0__0)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_2_0()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_2_1()); }
+ (rule__COperationFeatureCall__Group_1_1_2_1__0)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_2_1()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_2_2()); }
+ (rule__COperationFeatureCall__Group_1_1_2_2__0)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_2_2()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CPrimaryExpression__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getCPrimaryExpressionAccess().getCMemberFeatureReferenceParserRuleCall_0()); }
+ ruleCMemberFeatureReference
+ { after(grammarAccess.getCPrimaryExpressionAccess().getCMemberFeatureReferenceParserRuleCall_0()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCPrimaryExpressionAccess().getPreviousModifierParserRuleCall_1()); }
+ rulePreviousModifier
+ { after(grammarAccess.getCPrimaryExpressionAccess().getPreviousModifierParserRuleCall_1()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCPrimaryExpressionAccess().getAllInstanceOfExpressionParserRuleCall_2()); }
+ ruleAllInstanceOfExpression
+ { after(grammarAccess.getCPrimaryExpressionAccess().getAllInstanceOfExpressionParserRuleCall_2()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCPrimaryExpressionAccess().getNullExpressionParserRuleCall_3()); }
+ ruleNullExpression
+ { after(grammarAccess.getCPrimaryExpressionAccess().getNullExpressionParserRuleCall_3()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCPrimaryExpressionAccess().getIntegerValueParserRuleCall_4()); }
+ ruleIntegerValue
+ { after(grammarAccess.getCPrimaryExpressionAccess().getIntegerValueParserRuleCall_4()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCPrimaryExpressionAccess().getMuteLowerPriorityParserRuleCall_5()); }
+ ruleMuteLowerPriority
+ { after(grammarAccess.getCPrimaryExpressionAccess().getMuteLowerPriorityParserRuleCall_5()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCPrimaryExpressionAccess().getHideLowerPriorityParserRuleCall_6()); }
+ ruleHideLowerPriority
+ { after(grammarAccess.getCPrimaryExpressionAccess().getHideLowerPriorityParserRuleCall_6()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCPrimaryExpressionAccess().getSetOfOperatorParserRuleCall_7()); }
+ ruleSetOfOperator
+ { after(grammarAccess.getCPrimaryExpressionAccess().getSetOfOperatorParserRuleCall_7()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCPrimaryExpressionAccess().getIfStatementParserRuleCall_8()); }
+ ruleIfStatement
+ { after(grammarAccess.getCPrimaryExpressionAccess().getIfStatementParserRuleCall_8()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCPrimaryExpressionAccess().getForAllOperatorParserRuleCall_9()); }
+ ruleForAllOperator
+ { after(grammarAccess.getCPrimaryExpressionAccess().getForAllOperatorParserRuleCall_9()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCPrimaryExpressionAccess().getExistsOperatorParserRuleCall_10()); }
+ ruleExistsOperator
+ { after(grammarAccess.getCPrimaryExpressionAccess().getExistsOperatorParserRuleCall_10()); }
+ )
+ |
+ (
+ { before(grammarAccess.getCPrimaryExpressionAccess().getGroup_11()); }
+ (rule__CPrimaryExpression__Group_11__0)
+ { after(grammarAccess.getCPrimaryExpressionAccess().getGroup_11()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AllInstanceOfExpression__Alternatives_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getAllInstanceOfExpressionAccess().getGroup_0_0()); }
+ (rule__AllInstanceOfExpression__Group_0_0__0)
+ { after(grammarAccess.getAllInstanceOfExpressionAccess().getGroup_0_0()); }
+ )
+ |
+ (
+ { before(grammarAccess.getAllInstanceOfExpressionAccess().getGroup_0_1()); }
+ (rule__AllInstanceOfExpression__Group_0_1__0)
+ { after(grammarAccess.getAllInstanceOfExpressionAccess().getGroup_0_1()); }
+ )
+ |
+ (
+ { before(grammarAccess.getAllInstanceOfExpressionAccess().getGroup_0_2()); }
+ (rule__AllInstanceOfExpression__Group_0_2__0)
+ { after(grammarAccess.getAllInstanceOfExpressionAccess().getGroup_0_2()); }
+ )
+ |
+ (
+ { before(grammarAccess.getAllInstanceOfExpressionAccess().getGroup_0_3()); }
+ (rule__AllInstanceOfExpression__Group_0_3__0)
+ { after(grammarAccess.getAllInstanceOfExpressionAccess().getGroup_0_3()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__EBoolean__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getEBooleanAccess().getTrueKeyword_0()); }
+ 'true'
+ { after(grammarAccess.getEBooleanAccess().getTrueKeyword_0()); }
+ )
+ |
+ (
+ { before(grammarAccess.getEBooleanAccess().getFalseKeyword_1()); }
+ 'false'
+ { after(grammarAccess.getEBooleanAccess().getFalseKeyword_1()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__IdOrThis__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getIdOrThisAccess().getValidIDParserRuleCall_0()); }
+ ruleValidID
+ { after(grammarAccess.getIdOrThisAccess().getValidIDParserRuleCall_0()); }
+ )
+ |
+ (
+ { before(grammarAccess.getIdOrThisAccess().getThisKeyword_1()); }
+ 'this'
+ { after(grammarAccess.getIdOrThisAccess().getThisKeyword_1()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ContentOperatorsCommon__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getContentOperatorsCommonAccess().getOpIsActiveParserRuleCall_0()); }
+ ruleOpIsActive
+ { after(grammarAccess.getContentOperatorsCommonAccess().getOpIsActiveParserRuleCall_0()); }
+ )
+ |
+ (
+ { before(grammarAccess.getContentOperatorsCommonAccess().getOpGetAllocatablesParserRuleCall_1()); }
+ ruleOpGetAllocatables
+ { after(grammarAccess.getContentOperatorsCommonAccess().getOpGetAllocatablesParserRuleCall_1()); }
+ )
+ |
+ (
+ { before(grammarAccess.getContentOperatorsCommonAccess().getOpIsVisibleParserRuleCall_2()); }
+ ruleOpIsVisible
+ { after(grammarAccess.getContentOperatorsCommonAccess().getOpIsVisibleParserRuleCall_2()); }
+ )
+ |
+ (
+ { before(grammarAccess.getContentOperatorsCommonAccess().getOpHasComeEarlierThanParserRuleCall_3()); }
+ ruleOpHasComeEarlierThan
+ { after(grammarAccess.getContentOperatorsCommonAccess().getOpHasComeEarlierThanParserRuleCall_3()); }
+ )
+ |
+ (
+ { before(grammarAccess.getContentOperatorsCommonAccess().getOpHasComeLaterThanParserRuleCall_4()); }
+ ruleOpHasComeLaterThan
+ { after(grammarAccess.getContentOperatorsCommonAccess().getOpHasComeLaterThanParserRuleCall_4()); }
+ )
+ |
+ (
+ { before(grammarAccess.getContentOperatorsCommonAccess().getOpStateValueParserRuleCall_5()); }
+ ruleOpStateValue
+ { after(grammarAccess.getContentOperatorsCommonAccess().getOpStateValueParserRuleCall_5()); }
+ )
+ |
+ (
+ { before(grammarAccess.getContentOperatorsCommonAccess().getOpIsAllocatedToParserRuleCall_6()); }
+ ruleOpIsAllocatedTo
+ { after(grammarAccess.getContentOperatorsCommonAccess().getOpIsAllocatedToParserRuleCall_6()); }
+ )
+ |
+ (
+ { before(grammarAccess.getContentOperatorsCommonAccess().getOpIsDisplayedOnParserRuleCall_7()); }
+ ruleOpIsDisplayedOn
+ { after(grammarAccess.getContentOperatorsCommonAccess().getOpIsDisplayedOnParserRuleCall_7()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundOperatorsCommon__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getSoundOperatorsCommonAccess().getOpIsActiveParserRuleCall_0()); }
+ ruleOpIsActive
+ { after(grammarAccess.getSoundOperatorsCommonAccess().getOpIsActiveParserRuleCall_0()); }
+ )
+ |
+ (
+ { before(grammarAccess.getSoundOperatorsCommonAccess().getOpGetAllocatablesParserRuleCall_1()); }
+ ruleOpGetAllocatables
+ { after(grammarAccess.getSoundOperatorsCommonAccess().getOpGetAllocatablesParserRuleCall_1()); }
+ )
+ |
+ (
+ { before(grammarAccess.getSoundOperatorsCommonAccess().getOpIsSoundingParserRuleCall_2()); }
+ ruleOpIsSounding
+ { after(grammarAccess.getSoundOperatorsCommonAccess().getOpIsSoundingParserRuleCall_2()); }
+ )
+ |
+ (
+ { before(grammarAccess.getSoundOperatorsCommonAccess().getOpHasComeEarlierThanParserRuleCall_3()); }
+ ruleOpHasComeEarlierThan
+ { after(grammarAccess.getSoundOperatorsCommonAccess().getOpHasComeEarlierThanParserRuleCall_3()); }
+ )
+ |
+ (
+ { before(grammarAccess.getSoundOperatorsCommonAccess().getOpHasComeLaterThanParserRuleCall_4()); }
+ ruleOpHasComeLaterThan
+ { after(grammarAccess.getSoundOperatorsCommonAccess().getOpHasComeLaterThanParserRuleCall_4()); }
+ )
+ |
+ (
+ { before(grammarAccess.getSoundOperatorsCommonAccess().getOpStateValueParserRuleCall_5()); }
+ ruleOpStateValue
+ { after(grammarAccess.getSoundOperatorsCommonAccess().getOpStateValueParserRuleCall_5()); }
+ )
+ |
+ (
+ { before(grammarAccess.getSoundOperatorsCommonAccess().getOpIsAllocatedToParserRuleCall_6()); }
+ ruleOpIsAllocatedTo
+ { after(grammarAccess.getSoundOperatorsCommonAccess().getOpIsAllocatedToParserRuleCall_6()); }
+ )
+ |
+ (
+ { before(grammarAccess.getSoundOperatorsCommonAccess().getOpIsOutputtedOnParserRuleCall_7()); }
+ ruleOpIsOutputtedOn
+ { after(grammarAccess.getSoundOperatorsCommonAccess().getOpIsOutputtedOnParserRuleCall_7()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ArbitrationPolicy__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getArbitrationPolicyAccess().getDEFAULTEnumLiteralDeclaration_0()); }
+ ('DEFAULT')
+ { after(grammarAccess.getArbitrationPolicyAccess().getDEFAULTEnumLiteralDeclaration_0()); }
+ )
+ |
+ (
+ { before(grammarAccess.getArbitrationPolicyAccess().getFIRST_COME_FIRSTEnumLiteralDeclaration_1()); }
+ ('FIRST_COME_FIRST')
+ { after(grammarAccess.getArbitrationPolicyAccess().getFIRST_COME_FIRSTEnumLiteralDeclaration_1()); }
+ )
+ |
+ (
+ { before(grammarAccess.getArbitrationPolicyAccess().getLAST_COME_FIRSTEnumLiteralDeclaration_2()); }
+ ('LAST_COME_FIRST')
+ { after(grammarAccess.getArbitrationPolicyAccess().getLAST_COME_FIRSTEnumLiteralDeclaration_2()); }
+ )
+ |
+ (
+ { before(grammarAccess.getArbitrationPolicyAccess().getPRIORITY_FIRST_COME_FIRSTEnumLiteralDeclaration_3()); }
+ ('PRIORITY_FIRST_COME_FIRST')
+ { after(grammarAccess.getArbitrationPolicyAccess().getPRIORITY_FIRST_COME_FIRSTEnumLiteralDeclaration_3()); }
+ )
+ |
+ (
+ { before(grammarAccess.getArbitrationPolicyAccess().getPRIORITY_LAST_COME_FIRSTEnumLiteralDeclaration_4()); }
+ ('PRIORITY_LAST_COME_FIRST')
+ { after(grammarAccess.getArbitrationPolicyAccess().getPRIORITY_LAST_COME_FIRSTEnumLiteralDeclaration_4()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__BasePoint__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getBasePointAccess().getLEFT_TOPEnumLiteralDeclaration_0()); }
+ ('LEFT_TOP')
+ { after(grammarAccess.getBasePointAccess().getLEFT_TOPEnumLiteralDeclaration_0()); }
+ )
+ |
+ (
+ { before(grammarAccess.getBasePointAccess().getLEFT_MIDDLEEnumLiteralDeclaration_1()); }
+ ('LEFT_MIDDLE')
+ { after(grammarAccess.getBasePointAccess().getLEFT_MIDDLEEnumLiteralDeclaration_1()); }
+ )
+ |
+ (
+ { before(grammarAccess.getBasePointAccess().getLEFT_BOTTOMEnumLiteralDeclaration_2()); }
+ ('LEFT_BOTTOM')
+ { after(grammarAccess.getBasePointAccess().getLEFT_BOTTOMEnumLiteralDeclaration_2()); }
+ )
+ |
+ (
+ { before(grammarAccess.getBasePointAccess().getRIGHT_TOPEnumLiteralDeclaration_3()); }
+ ('RIGHT_TOP')
+ { after(grammarAccess.getBasePointAccess().getRIGHT_TOPEnumLiteralDeclaration_3()); }
+ )
+ |
+ (
+ { before(grammarAccess.getBasePointAccess().getRIGHT_MIDDLEEnumLiteralDeclaration_4()); }
+ ('RIGHT_MIDDLE')
+ { after(grammarAccess.getBasePointAccess().getRIGHT_MIDDLEEnumLiteralDeclaration_4()); }
+ )
+ |
+ (
+ { before(grammarAccess.getBasePointAccess().getRIGHT_BOTTOMEnumLiteralDeclaration_5()); }
+ ('RIGHT_BOTTOM')
+ { after(grammarAccess.getBasePointAccess().getRIGHT_BOTTOMEnumLiteralDeclaration_5()); }
+ )
+ |
+ (
+ { before(grammarAccess.getBasePointAccess().getCENTER_TOPEnumLiteralDeclaration_6()); }
+ ('CENTER_TOP')
+ { after(grammarAccess.getBasePointAccess().getCENTER_TOPEnumLiteralDeclaration_6()); }
+ )
+ |
+ (
+ { before(grammarAccess.getBasePointAccess().getCENTER_MIDDLEEnumLiteralDeclaration_7()); }
+ ('CENTER_MIDDLE')
+ { after(grammarAccess.getBasePointAccess().getCENTER_MIDDLEEnumLiteralDeclaration_7()); }
+ )
+ |
+ (
+ { before(grammarAccess.getBasePointAccess().getCENTER_BOTTOMEnumLiteralDeclaration_8()); }
+ ('CENTER_BOTTOM')
+ { after(grammarAccess.getBasePointAccess().getCENTER_BOTTOMEnumLiteralDeclaration_8()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LoserType__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getLoserTypeAccess().getNEVER_GIVEUPEnumLiteralDeclaration_0()); }
+ ('NEVER_GIVEUP')
+ { after(grammarAccess.getLoserTypeAccess().getNEVER_GIVEUPEnumLiteralDeclaration_0()); }
+ )
+ |
+ (
+ { before(grammarAccess.getLoserTypeAccess().getGOOD_LOSEREnumLiteralDeclaration_1()); }
+ ('GOOD_LOSER')
+ { after(grammarAccess.getLoserTypeAccess().getGOOD_LOSEREnumLiteralDeclaration_1()); }
+ )
+ |
+ (
+ { before(grammarAccess.getLoserTypeAccess().getDO_NOT_GIVEUP_UNTIL_WINEnumLiteralDeclaration_2()); }
+ ('DO_NOT_GIVEUP_UNTIL_WIN')
+ { after(grammarAccess.getLoserTypeAccess().getDO_NOT_GIVEUP_UNTIL_WINEnumLiteralDeclaration_2()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__TopLevel__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__TopLevel__Group__0__Impl
+ rule__TopLevel__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__TopLevel__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getTopLevelAccess().getTopLevelAction_0()); }
+ ()
+ { after(grammarAccess.getTopLevelAccess().getTopLevelAction_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__TopLevel__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__TopLevel__Group__1__Impl
+ rule__TopLevel__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__TopLevel__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getTopLevelAccess().getGroup_1()); }
+ (rule__TopLevel__Group_1__0)?
+ { after(grammarAccess.getTopLevelAccess().getGroup_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__TopLevel__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__TopLevel__Group__2__Impl
+ rule__TopLevel__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__TopLevel__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getTopLevelAccess().getProjectAssignment_2()); }
+ (rule__TopLevel__ProjectAssignment_2)*
+ { after(grammarAccess.getTopLevelAccess().getProjectAssignment_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__TopLevel__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__TopLevel__Group__3__Impl
+ rule__TopLevel__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__TopLevel__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getTopLevelAccess().getImportsAssignment_3()); }
+ (rule__TopLevel__ImportsAssignment_3)*
+ { after(grammarAccess.getTopLevelAccess().getImportsAssignment_3()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__TopLevel__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__TopLevel__Group__4__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__TopLevel__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getTopLevelAccess().getPackagesAssignment_4()); }
+ (rule__TopLevel__PackagesAssignment_4)*
+ { after(grammarAccess.getTopLevelAccess().getPackagesAssignment_4()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__TopLevel__Group_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__TopLevel__Group_1__0__Impl
+ rule__TopLevel__Group_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__TopLevel__Group_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getTopLevelAccess().getModuleKeyword_1_0()); }
+ 'module'
+ { after(grammarAccess.getTopLevelAccess().getModuleKeyword_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__TopLevel__Group_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__TopLevel__Group_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__TopLevel__Group_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getTopLevelAccess().getQualifiedNameParserRuleCall_1_1()); }
+ ruleQualifiedName
+ { after(grammarAccess.getTopLevelAccess().getQualifiedNameParserRuleCall_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Import__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Import__Group__0__Impl
+ rule__Import__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Import__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getImportAccess().getImportKeyword_0()); }
+ 'import'
+ { after(grammarAccess.getImportAccess().getImportKeyword_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Import__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Import__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Import__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getImportAccess().getImportedNamespaceAssignment_1()); }
+ (rule__Import__ImportedNamespaceAssignment_1)
+ { after(grammarAccess.getImportAccess().getImportedNamespaceAssignment_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__AbstractProperty__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__AbstractProperty__Group__0__Impl
+ rule__AbstractProperty__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AbstractProperty__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getAbstractPropertyAccess().getGroup_0()); }
+ (rule__AbstractProperty__Group_0__0)
+ { after(grammarAccess.getAbstractPropertyAccess().getGroup_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AbstractProperty__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__AbstractProperty__Group__1__Impl
+ rule__AbstractProperty__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AbstractProperty__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getAbstractPropertyAccess().getNameAssignment_1()); }
+ (rule__AbstractProperty__NameAssignment_1)
+ { after(grammarAccess.getAbstractPropertyAccess().getNameAssignment_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AbstractProperty__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__AbstractProperty__Group__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AbstractProperty__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getAbstractPropertyAccess().getGroup_2()); }
+ (rule__AbstractProperty__Group_2__0)?
+ { after(grammarAccess.getAbstractPropertyAccess().getGroup_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__AbstractProperty__Group_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__AbstractProperty__Group_0__0__Impl
+ rule__AbstractProperty__Group_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AbstractProperty__Group_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getAbstractPropertyAccess().getIntegerPropertyAction_0_0()); }
+ ()
+ { after(grammarAccess.getAbstractPropertyAccess().getIntegerPropertyAction_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AbstractProperty__Group_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__AbstractProperty__Group_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AbstractProperty__Group_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getAbstractPropertyAccess().getIntKeyword_0_1()); }
+ 'int'
+ { after(grammarAccess.getAbstractPropertyAccess().getIntKeyword_0_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__AbstractProperty__Group_2__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__AbstractProperty__Group_2__0__Impl
+ rule__AbstractProperty__Group_2__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AbstractProperty__Group_2__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getAbstractPropertyAccess().getColonKeyword_2_0()); }
+ ':'
+ { after(grammarAccess.getAbstractPropertyAccess().getColonKeyword_2_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AbstractProperty__Group_2__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__AbstractProperty__Group_2__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AbstractProperty__Group_2__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getAbstractPropertyAccess().getValueAssignment_2_1()); }
+ (rule__AbstractProperty__ValueAssignment_2_1)
+ { after(grammarAccess.getAbstractPropertyAccess().getValueAssignment_2_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Tag__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Tag__Group__0__Impl
+ rule__Tag__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Tag__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getTagAccess().getGroup_0()); }
+ (rule__Tag__Group_0__0)
+ { after(grammarAccess.getTagAccess().getGroup_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Tag__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Tag__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Tag__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getTagAccess().getGroup_1()); }
+ (rule__Tag__Group_1__0)?
+ { after(grammarAccess.getTagAccess().getGroup_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Tag__Group_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Tag__Group_0__0__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Tag__Group_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getTagAccess().getAlternatives_0_0()); }
+ (rule__Tag__Alternatives_0_0)
+ { after(grammarAccess.getTagAccess().getAlternatives_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Tag__Group_0_0_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Tag__Group_0_0_0__0__Impl
+ rule__Tag__Group_0_0_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Tag__Group_0_0_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getTagAccess().getTagAction_0_0_0_0()); }
+ ()
+ { after(grammarAccess.getTagAccess().getTagAction_0_0_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Tag__Group_0_0_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Tag__Group_0_0_0__1__Impl
+ rule__Tag__Group_0_0_0__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Tag__Group_0_0_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getTagAccess().getLessThanSignLessThanSignKeyword_0_0_0_1()); }
+ '<<'
+ { after(grammarAccess.getTagAccess().getLessThanSignLessThanSignKeyword_0_0_0_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Tag__Group_0_0_0__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Tag__Group_0_0_0__2__Impl
+ rule__Tag__Group_0_0_0__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Tag__Group_0_0_0__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getTagAccess().getNameAssignment_0_0_0_2()); }
+ (rule__Tag__NameAssignment_0_0_0_2)
+ { after(grammarAccess.getTagAccess().getNameAssignment_0_0_0_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Tag__Group_0_0_0__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Tag__Group_0_0_0__3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Tag__Group_0_0_0__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getTagAccess().getGreaterThanSignGreaterThanSignKeyword_0_0_0_3()); }
+ '>>'
+ { after(grammarAccess.getTagAccess().getGreaterThanSignGreaterThanSignKeyword_0_0_0_3()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Tag__Group_0_0_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Tag__Group_0_0_1__0__Impl
+ rule__Tag__Group_0_0_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Tag__Group_0_0_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getTagAccess().getCTagAction_0_0_1_0()); }
+ ()
+ { after(grammarAccess.getTagAccess().getCTagAction_0_0_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Tag__Group_0_0_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Tag__Group_0_0_1__1__Impl
+ rule__Tag__Group_0_0_1__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Tag__Group_0_0_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getTagAccess().getLeftPointingDoubleAngleQuotationMarkKeyword_0_0_1_1()); }
+ '\u00AB'
+ { after(grammarAccess.getTagAccess().getLeftPointingDoubleAngleQuotationMarkKeyword_0_0_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Tag__Group_0_0_1__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Tag__Group_0_0_1__2__Impl
+ rule__Tag__Group_0_0_1__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Tag__Group_0_0_1__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getTagAccess().getNameAssignment_0_0_1_2()); }
+ (rule__Tag__NameAssignment_0_0_1_2)
+ { after(grammarAccess.getTagAccess().getNameAssignment_0_0_1_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Tag__Group_0_0_1__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Tag__Group_0_0_1__3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Tag__Group_0_0_1__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getTagAccess().getRightPointingDoubleAngleQuotationMarkKeyword_0_0_1_3()); }
+ '\u00BB'
+ { after(grammarAccess.getTagAccess().getRightPointingDoubleAngleQuotationMarkKeyword_0_0_1_3()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Tag__Group_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Tag__Group_1__0__Impl
+ rule__Tag__Group_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Tag__Group_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getTagAccess().getLeftCurlyBracketKeyword_1_0()); }
+ '{'
+ { after(grammarAccess.getTagAccess().getLeftCurlyBracketKeyword_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Tag__Group_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Tag__Group_1__1__Impl
+ rule__Tag__Group_1__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Tag__Group_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getTagAccess().getGroup_1_1()); }
+ (rule__Tag__Group_1_1__0)?
+ { after(grammarAccess.getTagAccess().getGroup_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Tag__Group_1__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Tag__Group_1__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Tag__Group_1__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getTagAccess().getRightCurlyBracketKeyword_1_2()); }
+ '}'
+ { after(grammarAccess.getTagAccess().getRightCurlyBracketKeyword_1_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Tag__Group_1_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Tag__Group_1_1__0__Impl
+ rule__Tag__Group_1_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Tag__Group_1_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getTagAccess().getValuesAssignment_1_1_0()); }
+ (rule__Tag__ValuesAssignment_1_1_0)
+ { after(grammarAccess.getTagAccess().getValuesAssignment_1_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Tag__Group_1_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Tag__Group_1_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Tag__Group_1_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getTagAccess().getGroup_1_1_1()); }
+ (rule__Tag__Group_1_1_1__0)*
+ { after(grammarAccess.getTagAccess().getGroup_1_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Tag__Group_1_1_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Tag__Group_1_1_1__0__Impl
+ rule__Tag__Group_1_1_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Tag__Group_1_1_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getTagAccess().getCommaKeyword_1_1_1_0()); }
+ ','
+ { after(grammarAccess.getTagAccess().getCommaKeyword_1_1_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Tag__Group_1_1_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Tag__Group_1_1_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Tag__Group_1_1_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getTagAccess().getValuesAssignment_1_1_1_1()); }
+ (rule__Tag__ValuesAssignment_1_1_1_1)
+ { after(grammarAccess.getTagAccess().getValuesAssignment_1_1_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Package__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Package__Group__0__Impl
+ rule__Package__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Package__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getPackageAccess().getPackageAction_0()); }
+ ()
+ { after(grammarAccess.getPackageAccess().getPackageAction_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Package__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Package__Group__1__Impl
+ rule__Package__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Package__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getPackageAccess().getPackageKeyword_1()); }
+ 'Package'
+ { after(grammarAccess.getPackageAccess().getPackageKeyword_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Package__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Package__Group__2__Impl
+ rule__Package__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Package__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getPackageAccess().getNameAssignment_2()); }
+ (rule__Package__NameAssignment_2)
+ { after(grammarAccess.getPackageAccess().getNameAssignment_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Package__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Package__Group__3__Impl
+ rule__Package__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Package__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getPackageAccess().getLeftCurlyBracketKeyword_3()); }
+ '{'
+ { after(grammarAccess.getPackageAccess().getLeftCurlyBracketKeyword_3()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Package__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Package__Group__4__Impl
+ rule__Package__Group__5
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Package__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getPackageAccess().getUnorderedGroup_4()); }
+ (rule__Package__UnorderedGroup_4)
+ { after(grammarAccess.getPackageAccess().getUnorderedGroup_4()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Package__Group__5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Package__Group__5__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Package__Group__5__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getPackageAccess().getRightCurlyBracketKeyword_5()); }
+ '}'
+ { after(grammarAccess.getPackageAccess().getRightCurlyBracketKeyword_5()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Package__Group_4_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Package__Group_4_0__0__Impl
+ rule__Package__Group_4_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Package__Group_4_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getPackageAccess().getDescriptionKeyword_4_0_0()); }
+ 'description:'
+ { after(grammarAccess.getPackageAccess().getDescriptionKeyword_4_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Package__Group_4_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Package__Group_4_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Package__Group_4_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getPackageAccess().getDescriptionAssignment_4_0_1()); }
+ (rule__Package__DescriptionAssignment_4_0_1)
+ { after(grammarAccess.getPackageAccess().getDescriptionAssignment_4_0_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Stereotype__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Stereotype__Group__0__Impl
+ rule__Stereotype__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Stereotype__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getStereotypeAccess().getStereotypeAction_0()); }
+ ()
+ { after(grammarAccess.getStereotypeAccess().getStereotypeAction_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Stereotype__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Stereotype__Group__1__Impl
+ rule__Stereotype__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Stereotype__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getStereotypeAccess().getStereotypeKeyword_1()); }
+ 'Stereotype'
+ { after(grammarAccess.getStereotypeAccess().getStereotypeKeyword_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Stereotype__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Stereotype__Group__2__Impl
+ rule__Stereotype__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Stereotype__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getStereotypeAccess().getLessThanSignKeyword_2()); }
+ '<'
+ { after(grammarAccess.getStereotypeAccess().getLessThanSignKeyword_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Stereotype__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Stereotype__Group__3__Impl
+ rule__Stereotype__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Stereotype__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getStereotypeAccess().getTargetModelNameAssignment_3()); }
+ (rule__Stereotype__TargetModelNameAssignment_3)
+ { after(grammarAccess.getStereotypeAccess().getTargetModelNameAssignment_3()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Stereotype__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Stereotype__Group__4__Impl
+ rule__Stereotype__Group__5
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Stereotype__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getStereotypeAccess().getGreaterThanSignKeyword_4()); }
+ '>'
+ { after(grammarAccess.getStereotypeAccess().getGreaterThanSignKeyword_4()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Stereotype__Group__5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Stereotype__Group__5__Impl
+ rule__Stereotype__Group__6
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Stereotype__Group__5__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getStereotypeAccess().getNameAssignment_5()); }
+ (rule__Stereotype__NameAssignment_5)
+ { after(grammarAccess.getStereotypeAccess().getNameAssignment_5()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Stereotype__Group__6
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Stereotype__Group__6__Impl
+ rule__Stereotype__Group__7
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Stereotype__Group__6__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getStereotypeAccess().getLeftParenthesisKeyword_6()); }
+ '('
+ { after(grammarAccess.getStereotypeAccess().getLeftParenthesisKeyword_6()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Stereotype__Group__7
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Stereotype__Group__7__Impl
+ rule__Stereotype__Group__8
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Stereotype__Group__7__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getStereotypeAccess().getGroup_7()); }
+ (rule__Stereotype__Group_7__0)?
+ { after(grammarAccess.getStereotypeAccess().getGroup_7()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Stereotype__Group__8
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Stereotype__Group__8__Impl
+ rule__Stereotype__Group__9
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Stereotype__Group__8__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getStereotypeAccess().getRightParenthesisKeyword_8()); }
+ ')'
+ { after(grammarAccess.getStereotypeAccess().getRightParenthesisKeyword_8()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Stereotype__Group__9
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Stereotype__Group__9__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Stereotype__Group__9__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getStereotypeAccess().getBodyTextAssignment_9()); }
+ (rule__Stereotype__BodyTextAssignment_9)?
+ { after(grammarAccess.getStereotypeAccess().getBodyTextAssignment_9()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Stereotype__Group_7__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Stereotype__Group_7__0__Impl
+ rule__Stereotype__Group_7__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Stereotype__Group_7__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getStereotypeAccess().getVariablesAssignment_7_0()); }
+ (rule__Stereotype__VariablesAssignment_7_0)
+ { after(grammarAccess.getStereotypeAccess().getVariablesAssignment_7_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Stereotype__Group_7__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Stereotype__Group_7__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Stereotype__Group_7__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getStereotypeAccess().getGroup_7_1()); }
+ (rule__Stereotype__Group_7_1__0)*
+ { after(grammarAccess.getStereotypeAccess().getGroup_7_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Stereotype__Group_7_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Stereotype__Group_7_1__0__Impl
+ rule__Stereotype__Group_7_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Stereotype__Group_7_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getStereotypeAccess().getCommaKeyword_7_1_0()); }
+ ','
+ { after(grammarAccess.getStereotypeAccess().getCommaKeyword_7_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Stereotype__Group_7_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Stereotype__Group_7_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Stereotype__Group_7_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getStereotypeAccess().getVariablesAssignment_7_1_1()); }
+ (rule__Stereotype__VariablesAssignment_7_1_1)
+ { after(grammarAccess.getStereotypeAccess().getVariablesAssignment_7_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Display__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Display__Group__0__Impl
+ rule__Display__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Display__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getDisplayAccess().getDisplayAction_0()); }
+ ()
+ { after(grammarAccess.getDisplayAccess().getDisplayAction_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Display__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Display__Group__1__Impl
+ rule__Display__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Display__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getDisplayAccess().getDisplayKeyword_1()); }
+ 'Display'
+ { after(grammarAccess.getDisplayAccess().getDisplayKeyword_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Display__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Display__Group__2__Impl
+ rule__Display__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Display__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getDisplayAccess().getNameAssignment_2()); }
+ (rule__Display__NameAssignment_2)
+ { after(grammarAccess.getDisplayAccess().getNameAssignment_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Display__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Display__Group__3__Impl
+ rule__Display__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Display__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getDisplayAccess().getLeftCurlyBracketKeyword_3()); }
+ '{'
+ { after(grammarAccess.getDisplayAccess().getLeftCurlyBracketKeyword_3()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Display__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Display__Group__4__Impl
+ rule__Display__Group__5
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Display__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getDisplayAccess().getUnorderedGroup_4()); }
+ (rule__Display__UnorderedGroup_4)
+ { after(grammarAccess.getDisplayAccess().getUnorderedGroup_4()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Display__Group__5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Display__Group__5__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Display__Group__5__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getDisplayAccess().getRightCurlyBracketKeyword_5()); }
+ '}'
+ { after(grammarAccess.getDisplayAccess().getRightCurlyBracketKeyword_5()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Display__Group_4_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Display__Group_4_0__0__Impl
+ rule__Display__Group_4_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Display__Group_4_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getDisplayAccess().getDescriptionKeyword_4_0_0()); }
+ 'description:'
+ { after(grammarAccess.getDisplayAccess().getDescriptionKeyword_4_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Display__Group_4_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Display__Group_4_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Display__Group_4_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getDisplayAccess().getDescriptionAssignment_4_0_1()); }
+ (rule__Display__DescriptionAssignment_4_0_1)
+ { after(grammarAccess.getDisplayAccess().getDescriptionAssignment_4_0_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Constraint__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Constraint__Group__0__Impl
+ rule__Constraint__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Constraint__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getConstraintAccess().getConstraintAction_0()); }
+ ()
+ { after(grammarAccess.getConstraintAccess().getConstraintAction_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Constraint__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Constraint__Group__1__Impl
+ rule__Constraint__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Constraint__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getConstraintAccess().getConstraintKeyword_1()); }
+ 'Constraint'
+ { after(grammarAccess.getConstraintAccess().getConstraintKeyword_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Constraint__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Constraint__Group__2__Impl
+ rule__Constraint__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Constraint__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getConstraintAccess().getNameAssignment_2()); }
+ (rule__Constraint__NameAssignment_2)
+ { after(grammarAccess.getConstraintAccess().getNameAssignment_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Constraint__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Constraint__Group__3__Impl
+ rule__Constraint__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Constraint__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getConstraintAccess().getLeftCurlyBracketKeyword_3()); }
+ '{'
+ { after(grammarAccess.getConstraintAccess().getLeftCurlyBracketKeyword_3()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Constraint__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Constraint__Group__4__Impl
+ rule__Constraint__Group__5
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Constraint__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getConstraintAccess().getUnorderedGroup_4()); }
+ (rule__Constraint__UnorderedGroup_4)
+ { after(grammarAccess.getConstraintAccess().getUnorderedGroup_4()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Constraint__Group__5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Constraint__Group__5__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Constraint__Group__5__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getConstraintAccess().getRightCurlyBracketKeyword_5()); }
+ '}'
+ { after(grammarAccess.getConstraintAccess().getRightCurlyBracketKeyword_5()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Constraint__Group_4_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Constraint__Group_4_0__0__Impl
+ rule__Constraint__Group_4_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Constraint__Group_4_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getConstraintAccess().getDescriptionKeyword_4_0_0()); }
+ 'description:'
+ { after(grammarAccess.getConstraintAccess().getDescriptionKeyword_4_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Constraint__Group_4_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Constraint__Group_4_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Constraint__Group_4_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getConstraintAccess().getDescriptionAssignment_4_0_1()); }
+ (rule__Constraint__DescriptionAssignment_4_0_1)
+ { after(grammarAccess.getConstraintAccess().getDescriptionAssignment_4_0_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Constraint__Group_4_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Constraint__Group_4_1__0__Impl
+ rule__Constraint__Group_4_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Constraint__Group_4_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getConstraintAccess().getRuntimeKeyword_4_1_0()); }
+ 'runtime:'
+ { after(grammarAccess.getConstraintAccess().getRuntimeKeyword_4_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Constraint__Group_4_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Constraint__Group_4_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Constraint__Group_4_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getConstraintAccess().getRuntimeAssignment_4_1_1()); }
+ (rule__Constraint__RuntimeAssignment_4_1_1)
+ { after(grammarAccess.getConstraintAccess().getRuntimeAssignment_4_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ViewContent__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContent__Group__0__Impl
+ rule__ViewContent__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContent__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentAccess().getViewContentAction_0()); }
+ ()
+ { after(grammarAccess.getViewContentAccess().getViewContentAction_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContent__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContent__Group__1__Impl
+ rule__ViewContent__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContent__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentAccess().getViewContentKeyword_1()); }
+ 'ViewContent'
+ { after(grammarAccess.getViewContentAccess().getViewContentKeyword_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContent__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContent__Group__2__Impl
+ rule__ViewContent__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContent__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentAccess().getNameAssignment_2()); }
+ (rule__ViewContent__NameAssignment_2)
+ { after(grammarAccess.getViewContentAccess().getNameAssignment_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContent__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContent__Group__3__Impl
+ rule__ViewContent__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContent__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentAccess().getLeftCurlyBracketKeyword_3()); }
+ '{'
+ { after(grammarAccess.getViewContentAccess().getLeftCurlyBracketKeyword_3()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContent__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContent__Group__4__Impl
+ rule__ViewContent__Group__5
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContent__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentAccess().getUnorderedGroup_4()); }
+ (rule__ViewContent__UnorderedGroup_4)
+ { after(grammarAccess.getViewContentAccess().getUnorderedGroup_4()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContent__Group__5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContent__Group__5__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContent__Group__5__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentAccess().getRightCurlyBracketKeyword_5()); }
+ '}'
+ { after(grammarAccess.getViewContentAccess().getRightCurlyBracketKeyword_5()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ViewContent__Group_4_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContent__Group_4_0__0__Impl
+ rule__ViewContent__Group_4_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContent__Group_4_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentAccess().getDescriptionKeyword_4_0_0()); }
+ 'description:'
+ { after(grammarAccess.getViewContentAccess().getDescriptionKeyword_4_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContent__Group_4_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContent__Group_4_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContent__Group_4_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentAccess().getDescriptionAssignment_4_0_1()); }
+ (rule__ViewContent__DescriptionAssignment_4_0_1)
+ { after(grammarAccess.getViewContentAccess().getDescriptionAssignment_4_0_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ViewContent__Group_4_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContent__Group_4_1__0__Impl
+ rule__ViewContent__Group_4_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContent__Group_4_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentAccess().getLoserTypeKeyword_4_1_0()); }
+ 'loserType:'
+ { after(grammarAccess.getViewContentAccess().getLoserTypeKeyword_4_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContent__Group_4_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContent__Group_4_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContent__Group_4_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentAccess().getLoserTypeAssignment_4_1_1()); }
+ (rule__ViewContent__LoserTypeAssignment_4_1_1)
+ { after(grammarAccess.getViewContentAccess().getLoserTypeAssignment_4_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ViewContent__Group_4_2__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContent__Group_4_2__0__Impl
+ rule__ViewContent__Group_4_2__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContent__Group_4_2__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentAccess().getAllocatableKeyword_4_2_0()); }
+ 'allocatable:'
+ { after(grammarAccess.getViewContentAccess().getAllocatableKeyword_4_2_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContent__Group_4_2__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContent__Group_4_2__1__Impl
+ rule__ViewContent__Group_4_2__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContent__Group_4_2__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentAccess().getLeftSquareBracketKeyword_4_2_1()); }
+ '['
+ { after(grammarAccess.getViewContentAccess().getLeftSquareBracketKeyword_4_2_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContent__Group_4_2__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContent__Group_4_2__2__Impl
+ rule__ViewContent__Group_4_2__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContent__Group_4_2__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentAccess().getGroup_4_2_2()); }
+ (rule__ViewContent__Group_4_2_2__0)?
+ { after(grammarAccess.getViewContentAccess().getGroup_4_2_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContent__Group_4_2__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContent__Group_4_2__3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContent__Group_4_2__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentAccess().getRightSquareBracketKeyword_4_2_3()); }
+ ']'
+ { after(grammarAccess.getViewContentAccess().getRightSquareBracketKeyword_4_2_3()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ViewContent__Group_4_2_2__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContent__Group_4_2_2__0__Impl
+ rule__ViewContent__Group_4_2_2__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContent__Group_4_2_2__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentAccess().getAllocatableAssignment_4_2_2_0()); }
+ (rule__ViewContent__AllocatableAssignment_4_2_2_0)
+ { after(grammarAccess.getViewContentAccess().getAllocatableAssignment_4_2_2_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContent__Group_4_2_2__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContent__Group_4_2_2__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContent__Group_4_2_2__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentAccess().getGroup_4_2_2_1()); }
+ (rule__ViewContent__Group_4_2_2_1__0)*
+ { after(grammarAccess.getViewContentAccess().getGroup_4_2_2_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ViewContent__Group_4_2_2_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContent__Group_4_2_2_1__0__Impl
+ rule__ViewContent__Group_4_2_2_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContent__Group_4_2_2_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentAccess().getCommaKeyword_4_2_2_1_0()); }
+ ','
+ { after(grammarAccess.getViewContentAccess().getCommaKeyword_4_2_2_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContent__Group_4_2_2_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContent__Group_4_2_2_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContent__Group_4_2_2_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentAccess().getAllocatableAssignment_4_2_2_1_1()); }
+ (rule__ViewContent__AllocatableAssignment_4_2_2_1_1)
+ { after(grammarAccess.getViewContentAccess().getAllocatableAssignment_4_2_2_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__SoundContent__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContent__Group__0__Impl
+ rule__SoundContent__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContent__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentAccess().getSoundContentAction_0()); }
+ ()
+ { after(grammarAccess.getSoundContentAccess().getSoundContentAction_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContent__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContent__Group__1__Impl
+ rule__SoundContent__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContent__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentAccess().getSoundContentKeyword_1()); }
+ 'SoundContent'
+ { after(grammarAccess.getSoundContentAccess().getSoundContentKeyword_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContent__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContent__Group__2__Impl
+ rule__SoundContent__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContent__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentAccess().getNameAssignment_2()); }
+ (rule__SoundContent__NameAssignment_2)
+ { after(grammarAccess.getSoundContentAccess().getNameAssignment_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContent__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContent__Group__3__Impl
+ rule__SoundContent__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContent__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentAccess().getLeftCurlyBracketKeyword_3()); }
+ '{'
+ { after(grammarAccess.getSoundContentAccess().getLeftCurlyBracketKeyword_3()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContent__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContent__Group__4__Impl
+ rule__SoundContent__Group__5
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContent__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentAccess().getUnorderedGroup_4()); }
+ (rule__SoundContent__UnorderedGroup_4)
+ { after(grammarAccess.getSoundContentAccess().getUnorderedGroup_4()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContent__Group__5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContent__Group__5__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContent__Group__5__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentAccess().getRightCurlyBracketKeyword_5()); }
+ '}'
+ { after(grammarAccess.getSoundContentAccess().getRightCurlyBracketKeyword_5()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__SoundContent__Group_4_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContent__Group_4_0__0__Impl
+ rule__SoundContent__Group_4_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContent__Group_4_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentAccess().getDescriptionKeyword_4_0_0()); }
+ 'description:'
+ { after(grammarAccess.getSoundContentAccess().getDescriptionKeyword_4_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContent__Group_4_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContent__Group_4_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContent__Group_4_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentAccess().getDescriptionAssignment_4_0_1()); }
+ (rule__SoundContent__DescriptionAssignment_4_0_1)
+ { after(grammarAccess.getSoundContentAccess().getDescriptionAssignment_4_0_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__SoundContent__Group_4_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContent__Group_4_1__0__Impl
+ rule__SoundContent__Group_4_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContent__Group_4_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentAccess().getLoserTypeKeyword_4_1_0()); }
+ 'loserType:'
+ { after(grammarAccess.getSoundContentAccess().getLoserTypeKeyword_4_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContent__Group_4_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContent__Group_4_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContent__Group_4_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentAccess().getLoserTypeAssignment_4_1_1()); }
+ (rule__SoundContent__LoserTypeAssignment_4_1_1)
+ { after(grammarAccess.getSoundContentAccess().getLoserTypeAssignment_4_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__SoundContent__Group_4_2__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContent__Group_4_2__0__Impl
+ rule__SoundContent__Group_4_2__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContent__Group_4_2__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentAccess().getAllocatableKeyword_4_2_0()); }
+ 'allocatable:'
+ { after(grammarAccess.getSoundContentAccess().getAllocatableKeyword_4_2_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContent__Group_4_2__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContent__Group_4_2__1__Impl
+ rule__SoundContent__Group_4_2__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContent__Group_4_2__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentAccess().getLeftSquareBracketKeyword_4_2_1()); }
+ '['
+ { after(grammarAccess.getSoundContentAccess().getLeftSquareBracketKeyword_4_2_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContent__Group_4_2__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContent__Group_4_2__2__Impl
+ rule__SoundContent__Group_4_2__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContent__Group_4_2__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentAccess().getGroup_4_2_2()); }
+ (rule__SoundContent__Group_4_2_2__0)?
+ { after(grammarAccess.getSoundContentAccess().getGroup_4_2_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContent__Group_4_2__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContent__Group_4_2__3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContent__Group_4_2__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentAccess().getRightSquareBracketKeyword_4_2_3()); }
+ ']'
+ { after(grammarAccess.getSoundContentAccess().getRightSquareBracketKeyword_4_2_3()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__SoundContent__Group_4_2_2__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContent__Group_4_2_2__0__Impl
+ rule__SoundContent__Group_4_2_2__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContent__Group_4_2_2__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentAccess().getAllocatableAssignment_4_2_2_0()); }
+ (rule__SoundContent__AllocatableAssignment_4_2_2_0)
+ { after(grammarAccess.getSoundContentAccess().getAllocatableAssignment_4_2_2_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContent__Group_4_2_2__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContent__Group_4_2_2__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContent__Group_4_2_2__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentAccess().getGroup_4_2_2_1()); }
+ (rule__SoundContent__Group_4_2_2_1__0)*
+ { after(grammarAccess.getSoundContentAccess().getGroup_4_2_2_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__SoundContent__Group_4_2_2_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContent__Group_4_2_2_1__0__Impl
+ rule__SoundContent__Group_4_2_2_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContent__Group_4_2_2_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentAccess().getCommaKeyword_4_2_2_1_0()); }
+ ','
+ { after(grammarAccess.getSoundContentAccess().getCommaKeyword_4_2_2_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContent__Group_4_2_2_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContent__Group_4_2_2_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContent__Group_4_2_2_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentAccess().getAllocatableAssignment_4_2_2_1_1()); }
+ (rule__SoundContent__AllocatableAssignment_4_2_2_1_1)
+ { after(grammarAccess.getSoundContentAccess().getAllocatableAssignment_4_2_2_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Size__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Size__Group__0__Impl
+ rule__Size__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Size__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSizeAccess().getSizeAction_0()); }
+ ()
+ { after(grammarAccess.getSizeAccess().getSizeAction_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Size__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Size__Group__1__Impl
+ rule__Size__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Size__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSizeAccess().getSizeKeyword_1()); }
+ 'Size'
+ { after(grammarAccess.getSizeAccess().getSizeKeyword_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Size__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Size__Group__2__Impl
+ rule__Size__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Size__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSizeAccess().getNameAssignment_2()); }
+ (rule__Size__NameAssignment_2)
+ { after(grammarAccess.getSizeAccess().getNameAssignment_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Size__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Size__Group__3__Impl
+ rule__Size__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Size__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSizeAccess().getLeftCurlyBracketKeyword_3()); }
+ '{'
+ { after(grammarAccess.getSizeAccess().getLeftCurlyBracketKeyword_3()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Size__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Size__Group__4__Impl
+ rule__Size__Group__5
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Size__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSizeAccess().getUnorderedGroup_4()); }
+ (rule__Size__UnorderedGroup_4)
+ { after(grammarAccess.getSizeAccess().getUnorderedGroup_4()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Size__Group__5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Size__Group__5__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Size__Group__5__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSizeAccess().getRightCurlyBracketKeyword_5()); }
+ '}'
+ { after(grammarAccess.getSizeAccess().getRightCurlyBracketKeyword_5()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Size__Group_4_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Size__Group_4_0__0__Impl
+ rule__Size__Group_4_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Size__Group_4_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSizeAccess().getDescriptionKeyword_4_0_0()); }
+ 'description:'
+ { after(grammarAccess.getSizeAccess().getDescriptionKeyword_4_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Size__Group_4_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Size__Group_4_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Size__Group_4_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSizeAccess().getDescriptionAssignment_4_0_1()); }
+ (rule__Size__DescriptionAssignment_4_0_1)
+ { after(grammarAccess.getSizeAccess().getDescriptionAssignment_4_0_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Size__Group_4_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Size__Group_4_1__0__Impl
+ rule__Size__Group_4_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Size__Group_4_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSizeAccess().getWidthKeyword_4_1_0()); }
+ 'width:'
+ { after(grammarAccess.getSizeAccess().getWidthKeyword_4_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Size__Group_4_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Size__Group_4_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Size__Group_4_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSizeAccess().getWidthAssignment_4_1_1()); }
+ (rule__Size__WidthAssignment_4_1_1)
+ { after(grammarAccess.getSizeAccess().getWidthAssignment_4_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Size__Group_4_2__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Size__Group_4_2__0__Impl
+ rule__Size__Group_4_2__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Size__Group_4_2__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSizeAccess().getHeightKeyword_4_2_0()); }
+ 'height:'
+ { after(grammarAccess.getSizeAccess().getHeightKeyword_4_2_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Size__Group_4_2__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Size__Group_4_2__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Size__Group_4_2__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSizeAccess().getHeightAssignment_4_2_1()); }
+ (rule__Size__HeightAssignment_4_2_1)
+ { after(grammarAccess.getSizeAccess().getHeightAssignment_4_2_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__SizeReference__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SizeReference__Group__0__Impl
+ rule__SizeReference__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SizeReference__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSizeReferenceAccess().getSizeReferenceAction_0()); }
+ ()
+ { after(grammarAccess.getSizeReferenceAccess().getSizeReferenceAction_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SizeReference__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SizeReference__Group__1__Impl
+ rule__SizeReference__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SizeReference__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSizeReferenceAccess().getSizeReferenceKeyword_1()); }
+ 'sizeReference:'
+ { after(grammarAccess.getSizeReferenceAccess().getSizeReferenceKeyword_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SizeReference__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SizeReference__Group__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SizeReference__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSizeReferenceAccess().getSizeAssignment_2()); }
+ (rule__SizeReference__SizeAssignment_2)
+ { after(grammarAccess.getSizeReferenceAccess().getSizeAssignment_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Offset__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Offset__Group__0__Impl
+ rule__Offset__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Offset__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getOffsetAccess().getOffsetAction_0()); }
+ ()
+ { after(grammarAccess.getOffsetAccess().getOffsetAction_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Offset__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Offset__Group__1__Impl
+ rule__Offset__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Offset__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getOffsetAccess().getOffsetKeyword_1()); }
+ 'Offset'
+ { after(grammarAccess.getOffsetAccess().getOffsetKeyword_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Offset__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Offset__Group__2__Impl
+ rule__Offset__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Offset__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getOffsetAccess().getLeftCurlyBracketKeyword_2()); }
+ '{'
+ { after(grammarAccess.getOffsetAccess().getLeftCurlyBracketKeyword_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Offset__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Offset__Group__3__Impl
+ rule__Offset__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Offset__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getOffsetAccess().getUnorderedGroup_3()); }
+ (rule__Offset__UnorderedGroup_3)
+ { after(grammarAccess.getOffsetAccess().getUnorderedGroup_3()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Offset__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Offset__Group__4__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Offset__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getOffsetAccess().getRightCurlyBracketKeyword_4()); }
+ '}'
+ { after(grammarAccess.getOffsetAccess().getRightCurlyBracketKeyword_4()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Offset__Group_3_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Offset__Group_3_0__0__Impl
+ rule__Offset__Group_3_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Offset__Group_3_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getOffsetAccess().getDescriptionKeyword_3_0_0()); }
+ 'description:'
+ { after(grammarAccess.getOffsetAccess().getDescriptionKeyword_3_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Offset__Group_3_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Offset__Group_3_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Offset__Group_3_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getOffsetAccess().getDescriptionAssignment_3_0_1()); }
+ (rule__Offset__DescriptionAssignment_3_0_1)
+ { after(grammarAccess.getOffsetAccess().getDescriptionAssignment_3_0_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Offset__Group_3_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Offset__Group_3_1__0__Impl
+ rule__Offset__Group_3_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Offset__Group_3_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getOffsetAccess().getXKeyword_3_1_0()); }
+ 'x:'
+ { after(grammarAccess.getOffsetAccess().getXKeyword_3_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Offset__Group_3_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Offset__Group_3_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Offset__Group_3_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getOffsetAccess().getXAssignment_3_1_1()); }
+ (rule__Offset__XAssignment_3_1_1)
+ { after(grammarAccess.getOffsetAccess().getXAssignment_3_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Offset__Group_3_2__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Offset__Group_3_2__0__Impl
+ rule__Offset__Group_3_2__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Offset__Group_3_2__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getOffsetAccess().getYKeyword_3_2_0()); }
+ 'y:'
+ { after(grammarAccess.getOffsetAccess().getYKeyword_3_2_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Offset__Group_3_2__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Offset__Group_3_2__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Offset__Group_3_2__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getOffsetAccess().getYAssignment_3_2_1()); }
+ (rule__Offset__YAssignment_3_2_1)
+ { after(grammarAccess.getOffsetAccess().getYAssignment_3_2_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__AreaSet__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__AreaSet__Group__0__Impl
+ rule__AreaSet__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AreaSet__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getAreaSetAccess().getAreaSetAction_0()); }
+ ()
+ { after(grammarAccess.getAreaSetAccess().getAreaSetAction_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AreaSet__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__AreaSet__Group__1__Impl
+ rule__AreaSet__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AreaSet__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getAreaSetAccess().getAreaSetKeyword_1()); }
+ 'AreaSet'
+ { after(grammarAccess.getAreaSetAccess().getAreaSetKeyword_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AreaSet__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__AreaSet__Group__2__Impl
+ rule__AreaSet__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AreaSet__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getAreaSetAccess().getNameAssignment_2()); }
+ (rule__AreaSet__NameAssignment_2)
+ { after(grammarAccess.getAreaSetAccess().getNameAssignment_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AreaSet__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__AreaSet__Group__3__Impl
+ rule__AreaSet__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AreaSet__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getAreaSetAccess().getLeftCurlyBracketKeyword_3()); }
+ '{'
+ { after(grammarAccess.getAreaSetAccess().getLeftCurlyBracketKeyword_3()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AreaSet__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__AreaSet__Group__4__Impl
+ rule__AreaSet__Group__5
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AreaSet__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getAreaSetAccess().getUnorderedGroup_4()); }
+ (rule__AreaSet__UnorderedGroup_4)
+ { after(grammarAccess.getAreaSetAccess().getUnorderedGroup_4()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AreaSet__Group__5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__AreaSet__Group__5__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AreaSet__Group__5__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getAreaSetAccess().getRightCurlyBracketKeyword_5()); }
+ '}'
+ { after(grammarAccess.getAreaSetAccess().getRightCurlyBracketKeyword_5()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__AreaSet__Group_4_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__AreaSet__Group_4_0__0__Impl
+ rule__AreaSet__Group_4_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AreaSet__Group_4_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getAreaSetAccess().getDescriptionKeyword_4_0_0()); }
+ 'description:'
+ { after(grammarAccess.getAreaSetAccess().getDescriptionKeyword_4_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AreaSet__Group_4_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__AreaSet__Group_4_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AreaSet__Group_4_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getAreaSetAccess().getDescriptionAssignment_4_0_1()); }
+ (rule__AreaSet__DescriptionAssignment_4_0_1)
+ { after(grammarAccess.getAreaSetAccess().getDescriptionAssignment_4_0_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__AreaSet__Group_4_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__AreaSet__Group_4_1__0__Impl
+ rule__AreaSet__Group_4_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AreaSet__Group_4_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getAreaSetAccess().getTargetKeyword_4_1_0()); }
+ 'target:'
+ { after(grammarAccess.getAreaSetAccess().getTargetKeyword_4_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AreaSet__Group_4_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__AreaSet__Group_4_1__1__Impl
+ rule__AreaSet__Group_4_1__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AreaSet__Group_4_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getAreaSetAccess().getLeftSquareBracketKeyword_4_1_1()); }
+ '['
+ { after(grammarAccess.getAreaSetAccess().getLeftSquareBracketKeyword_4_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AreaSet__Group_4_1__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__AreaSet__Group_4_1__2__Impl
+ rule__AreaSet__Group_4_1__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AreaSet__Group_4_1__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getAreaSetAccess().getGroup_4_1_2()); }
+ (rule__AreaSet__Group_4_1_2__0)?
+ { after(grammarAccess.getAreaSetAccess().getGroup_4_1_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AreaSet__Group_4_1__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__AreaSet__Group_4_1__3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AreaSet__Group_4_1__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getAreaSetAccess().getRightSquareBracketKeyword_4_1_3()); }
+ ']'
+ { after(grammarAccess.getAreaSetAccess().getRightSquareBracketKeyword_4_1_3()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__AreaSet__Group_4_1_2__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__AreaSet__Group_4_1_2__0__Impl
+ rule__AreaSet__Group_4_1_2__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AreaSet__Group_4_1_2__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getAreaSetAccess().getTargetAssignment_4_1_2_0()); }
+ (rule__AreaSet__TargetAssignment_4_1_2_0)
+ { after(grammarAccess.getAreaSetAccess().getTargetAssignment_4_1_2_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AreaSet__Group_4_1_2__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__AreaSet__Group_4_1_2__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AreaSet__Group_4_1_2__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getAreaSetAccess().getGroup_4_1_2_1()); }
+ (rule__AreaSet__Group_4_1_2_1__0)*
+ { after(grammarAccess.getAreaSetAccess().getGroup_4_1_2_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__AreaSet__Group_4_1_2_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__AreaSet__Group_4_1_2_1__0__Impl
+ rule__AreaSet__Group_4_1_2_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AreaSet__Group_4_1_2_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getAreaSetAccess().getCommaKeyword_4_1_2_1_0()); }
+ ','
+ { after(grammarAccess.getAreaSetAccess().getCommaKeyword_4_1_2_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AreaSet__Group_4_1_2_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__AreaSet__Group_4_1_2_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AreaSet__Group_4_1_2_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getAreaSetAccess().getTargetAssignment_4_1_2_1_1()); }
+ (rule__AreaSet__TargetAssignment_4_1_2_1_1)
+ { after(grammarAccess.getAreaSetAccess().getTargetAssignment_4_1_2_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ZoneSet__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ZoneSet__Group__0__Impl
+ rule__ZoneSet__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ZoneSet__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getZoneSetAccess().getZoneSetAction_0()); }
+ ()
+ { after(grammarAccess.getZoneSetAccess().getZoneSetAction_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ZoneSet__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ZoneSet__Group__1__Impl
+ rule__ZoneSet__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ZoneSet__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getZoneSetAccess().getZoneSetKeyword_1()); }
+ 'ZoneSet'
+ { after(grammarAccess.getZoneSetAccess().getZoneSetKeyword_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ZoneSet__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ZoneSet__Group__2__Impl
+ rule__ZoneSet__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ZoneSet__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getZoneSetAccess().getNameAssignment_2()); }
+ (rule__ZoneSet__NameAssignment_2)
+ { after(grammarAccess.getZoneSetAccess().getNameAssignment_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ZoneSet__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ZoneSet__Group__3__Impl
+ rule__ZoneSet__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ZoneSet__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getZoneSetAccess().getLeftCurlyBracketKeyword_3()); }
+ '{'
+ { after(grammarAccess.getZoneSetAccess().getLeftCurlyBracketKeyword_3()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ZoneSet__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ZoneSet__Group__4__Impl
+ rule__ZoneSet__Group__5
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ZoneSet__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getZoneSetAccess().getUnorderedGroup_4()); }
+ (rule__ZoneSet__UnorderedGroup_4)
+ { after(grammarAccess.getZoneSetAccess().getUnorderedGroup_4()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ZoneSet__Group__5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ZoneSet__Group__5__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ZoneSet__Group__5__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getZoneSetAccess().getRightCurlyBracketKeyword_5()); }
+ '}'
+ { after(grammarAccess.getZoneSetAccess().getRightCurlyBracketKeyword_5()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ZoneSet__Group_4_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ZoneSet__Group_4_0__0__Impl
+ rule__ZoneSet__Group_4_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ZoneSet__Group_4_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getZoneSetAccess().getDescriptionKeyword_4_0_0()); }
+ 'description:'
+ { after(grammarAccess.getZoneSetAccess().getDescriptionKeyword_4_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ZoneSet__Group_4_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ZoneSet__Group_4_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ZoneSet__Group_4_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getZoneSetAccess().getDescriptionAssignment_4_0_1()); }
+ (rule__ZoneSet__DescriptionAssignment_4_0_1)
+ { after(grammarAccess.getZoneSetAccess().getDescriptionAssignment_4_0_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ZoneSet__Group_4_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ZoneSet__Group_4_1__0__Impl
+ rule__ZoneSet__Group_4_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ZoneSet__Group_4_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getZoneSetAccess().getTargetKeyword_4_1_0()); }
+ 'target:'
+ { after(grammarAccess.getZoneSetAccess().getTargetKeyword_4_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ZoneSet__Group_4_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ZoneSet__Group_4_1__1__Impl
+ rule__ZoneSet__Group_4_1__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ZoneSet__Group_4_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getZoneSetAccess().getLeftSquareBracketKeyword_4_1_1()); }
+ '['
+ { after(grammarAccess.getZoneSetAccess().getLeftSquareBracketKeyword_4_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ZoneSet__Group_4_1__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ZoneSet__Group_4_1__2__Impl
+ rule__ZoneSet__Group_4_1__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ZoneSet__Group_4_1__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getZoneSetAccess().getGroup_4_1_2()); }
+ (rule__ZoneSet__Group_4_1_2__0)?
+ { after(grammarAccess.getZoneSetAccess().getGroup_4_1_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ZoneSet__Group_4_1__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ZoneSet__Group_4_1__3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ZoneSet__Group_4_1__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getZoneSetAccess().getRightSquareBracketKeyword_4_1_3()); }
+ ']'
+ { after(grammarAccess.getZoneSetAccess().getRightSquareBracketKeyword_4_1_3()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ZoneSet__Group_4_1_2__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ZoneSet__Group_4_1_2__0__Impl
+ rule__ZoneSet__Group_4_1_2__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ZoneSet__Group_4_1_2__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getZoneSetAccess().getTargetAssignment_4_1_2_0()); }
+ (rule__ZoneSet__TargetAssignment_4_1_2_0)
+ { after(grammarAccess.getZoneSetAccess().getTargetAssignment_4_1_2_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ZoneSet__Group_4_1_2__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ZoneSet__Group_4_1_2__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ZoneSet__Group_4_1_2__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getZoneSetAccess().getGroup_4_1_2_1()); }
+ (rule__ZoneSet__Group_4_1_2_1__0)*
+ { after(grammarAccess.getZoneSetAccess().getGroup_4_1_2_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ZoneSet__Group_4_1_2_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ZoneSet__Group_4_1_2_1__0__Impl
+ rule__ZoneSet__Group_4_1_2_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ZoneSet__Group_4_1_2_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getZoneSetAccess().getCommaKeyword_4_1_2_1_0()); }
+ ','
+ { after(grammarAccess.getZoneSetAccess().getCommaKeyword_4_1_2_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ZoneSet__Group_4_1_2_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ZoneSet__Group_4_1_2_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ZoneSet__Group_4_1_2_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getZoneSetAccess().getTargetAssignment_4_1_2_1_1()); }
+ (rule__ZoneSet__TargetAssignment_4_1_2_1_1)
+ { after(grammarAccess.getZoneSetAccess().getTargetAssignment_4_1_2_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__CompositeArea__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CompositeArea__Group__0__Impl
+ rule__CompositeArea__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompositeArea__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCompositeAreaAccess().getCompositeAreaAction_0()); }
+ ()
+ { after(grammarAccess.getCompositeAreaAccess().getCompositeAreaAction_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompositeArea__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CompositeArea__Group__1__Impl
+ rule__CompositeArea__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompositeArea__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCompositeAreaAccess().getCompositeAreaKeyword_1()); }
+ 'CompositeArea'
+ { after(grammarAccess.getCompositeAreaAccess().getCompositeAreaKeyword_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompositeArea__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CompositeArea__Group__2__Impl
+ rule__CompositeArea__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompositeArea__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCompositeAreaAccess().getNameAssignment_2()); }
+ (rule__CompositeArea__NameAssignment_2)
+ { after(grammarAccess.getCompositeAreaAccess().getNameAssignment_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompositeArea__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CompositeArea__Group__3__Impl
+ rule__CompositeArea__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompositeArea__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCompositeAreaAccess().getLeftCurlyBracketKeyword_3()); }
+ '{'
+ { after(grammarAccess.getCompositeAreaAccess().getLeftCurlyBracketKeyword_3()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompositeArea__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CompositeArea__Group__4__Impl
+ rule__CompositeArea__Group__5
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompositeArea__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4()); }
+ (rule__CompositeArea__UnorderedGroup_4)
+ { after(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompositeArea__Group__5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CompositeArea__Group__5__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompositeArea__Group__5__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCompositeAreaAccess().getRightCurlyBracketKeyword_5()); }
+ '}'
+ { after(grammarAccess.getCompositeAreaAccess().getRightCurlyBracketKeyword_5()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__CompositeArea__Group_4_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CompositeArea__Group_4_0__0__Impl
+ rule__CompositeArea__Group_4_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompositeArea__Group_4_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCompositeAreaAccess().getDescriptionKeyword_4_0_0()); }
+ 'description:'
+ { after(grammarAccess.getCompositeAreaAccess().getDescriptionKeyword_4_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompositeArea__Group_4_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CompositeArea__Group_4_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompositeArea__Group_4_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCompositeAreaAccess().getDescriptionAssignment_4_0_1()); }
+ (rule__CompositeArea__DescriptionAssignment_4_0_1)
+ { after(grammarAccess.getCompositeAreaAccess().getDescriptionAssignment_4_0_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__CompositeArea__Group_4_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CompositeArea__Group_4_1__0__Impl
+ rule__CompositeArea__Group_4_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompositeArea__Group_4_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCompositeAreaAccess().getLayoutKeyword_4_1_0()); }
+ 'layout:'
+ { after(grammarAccess.getCompositeAreaAccess().getLayoutKeyword_4_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompositeArea__Group_4_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CompositeArea__Group_4_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompositeArea__Group_4_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCompositeAreaAccess().getLayoutAssignment_4_1_1()); }
+ (rule__CompositeArea__LayoutAssignment_4_1_1)
+ { after(grammarAccess.getCompositeAreaAccess().getLayoutAssignment_4_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Area__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Area__Group__0__Impl
+ rule__Area__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Area__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getAreaAccess().getAreaAction_0()); }
+ ()
+ { after(grammarAccess.getAreaAccess().getAreaAction_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Area__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Area__Group__1__Impl
+ rule__Area__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Area__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getAreaAccess().getAreaKeyword_1()); }
+ 'Area'
+ { after(grammarAccess.getAreaAccess().getAreaKeyword_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Area__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Area__Group__2__Impl
+ rule__Area__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Area__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getAreaAccess().getNameAssignment_2()); }
+ (rule__Area__NameAssignment_2)
+ { after(grammarAccess.getAreaAccess().getNameAssignment_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Area__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Area__Group__3__Impl
+ rule__Area__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Area__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getAreaAccess().getLeftCurlyBracketKeyword_3()); }
+ '{'
+ { after(grammarAccess.getAreaAccess().getLeftCurlyBracketKeyword_3()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Area__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Area__Group__4__Impl
+ rule__Area__Group__5
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Area__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getAreaAccess().getUnorderedGroup_4()); }
+ (rule__Area__UnorderedGroup_4)
+ { after(grammarAccess.getAreaAccess().getUnorderedGroup_4()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Area__Group__5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Area__Group__5__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Area__Group__5__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getAreaAccess().getRightCurlyBracketKeyword_5()); }
+ '}'
+ { after(grammarAccess.getAreaAccess().getRightCurlyBracketKeyword_5()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Area__Group_4_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Area__Group_4_0__0__Impl
+ rule__Area__Group_4_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Area__Group_4_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getAreaAccess().getDescriptionKeyword_4_0_0()); }
+ 'description:'
+ { after(grammarAccess.getAreaAccess().getDescriptionKeyword_4_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Area__Group_4_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Area__Group_4_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Area__Group_4_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getAreaAccess().getDescriptionAssignment_4_0_1()); }
+ (rule__Area__DescriptionAssignment_4_0_1)
+ { after(grammarAccess.getAreaAccess().getDescriptionAssignment_4_0_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Area__Group_4_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Area__Group_4_1__0__Impl
+ rule__Area__Group_4_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Area__Group_4_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getAreaAccess().getArbitrationPolicyKeyword_4_1_0()); }
+ 'arbitrationPolicy:'
+ { after(grammarAccess.getAreaAccess().getArbitrationPolicyKeyword_4_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Area__Group_4_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Area__Group_4_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Area__Group_4_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getAreaAccess().getArbitrationPolicyAssignment_4_1_1()); }
+ (rule__Area__ArbitrationPolicyAssignment_4_1_1)
+ { after(grammarAccess.getAreaAccess().getArbitrationPolicyAssignment_4_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Area__Group_4_3__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Area__Group_4_3__0__Impl
+ rule__Area__Group_4_3__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Area__Group_4_3__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getAreaAccess().getAlternatives_4_3_0()); }
+ (rule__Area__Alternatives_4_3_0)
+ { after(grammarAccess.getAreaAccess().getAlternatives_4_3_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Area__Group_4_3__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Area__Group_4_3__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Area__Group_4_3__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getAreaAccess().getVisibilityAssignment_4_3_1()); }
+ (rule__Area__VisibilityAssignment_4_3_1)
+ { after(grammarAccess.getAreaAccess().getVisibilityAssignment_4_3_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Area__Group_4_4__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Area__Group_4_4__0__Impl
+ rule__Area__Group_4_4__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Area__Group_4_4__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getAreaAccess().getZorderKeyword_4_4_0()); }
+ 'zorder:'
+ { after(grammarAccess.getAreaAccess().getZorderKeyword_4_4_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Area__Group_4_4__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Area__Group_4_4__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Area__Group_4_4__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getAreaAccess().getZorderAssignment_4_4_1()); }
+ (rule__Area__ZorderAssignment_4_4_1)
+ { after(grammarAccess.getAreaAccess().getZorderAssignment_4_4_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Zone__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Zone__Group__0__Impl
+ rule__Zone__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Zone__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getZoneAccess().getZoneAction_0()); }
+ ()
+ { after(grammarAccess.getZoneAccess().getZoneAction_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Zone__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Zone__Group__1__Impl
+ rule__Zone__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Zone__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getZoneAccess().getZoneKeyword_1()); }
+ 'Zone'
+ { after(grammarAccess.getZoneAccess().getZoneKeyword_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Zone__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Zone__Group__2__Impl
+ rule__Zone__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Zone__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getZoneAccess().getNameAssignment_2()); }
+ (rule__Zone__NameAssignment_2)
+ { after(grammarAccess.getZoneAccess().getNameAssignment_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Zone__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Zone__Group__3__Impl
+ rule__Zone__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Zone__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getZoneAccess().getLeftCurlyBracketKeyword_3()); }
+ '{'
+ { after(grammarAccess.getZoneAccess().getLeftCurlyBracketKeyword_3()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Zone__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Zone__Group__4__Impl
+ rule__Zone__Group__5
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Zone__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getZoneAccess().getUnorderedGroup_4()); }
+ (rule__Zone__UnorderedGroup_4)
+ { after(grammarAccess.getZoneAccess().getUnorderedGroup_4()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Zone__Group__5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Zone__Group__5__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Zone__Group__5__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getZoneAccess().getRightCurlyBracketKeyword_5()); }
+ '}'
+ { after(grammarAccess.getZoneAccess().getRightCurlyBracketKeyword_5()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Zone__Group_4_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Zone__Group_4_0__0__Impl
+ rule__Zone__Group_4_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Zone__Group_4_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getZoneAccess().getDescriptionKeyword_4_0_0()); }
+ 'description:'
+ { after(grammarAccess.getZoneAccess().getDescriptionKeyword_4_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Zone__Group_4_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Zone__Group_4_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Zone__Group_4_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getZoneAccess().getDescriptionAssignment_4_0_1()); }
+ (rule__Zone__DescriptionAssignment_4_0_1)
+ { after(grammarAccess.getZoneAccess().getDescriptionAssignment_4_0_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Zone__Group_4_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Zone__Group_4_1__0__Impl
+ rule__Zone__Group_4_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Zone__Group_4_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getZoneAccess().getArbitrationPolicyKeyword_4_1_0()); }
+ 'arbitrationPolicy:'
+ { after(grammarAccess.getZoneAccess().getArbitrationPolicyKeyword_4_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Zone__Group_4_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Zone__Group_4_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Zone__Group_4_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getZoneAccess().getArbitrationPolicyAssignment_4_1_1()); }
+ (rule__Zone__ArbitrationPolicyAssignment_4_1_1)
+ { after(grammarAccess.getZoneAccess().getArbitrationPolicyAssignment_4_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Zone__Group_4_2__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Zone__Group_4_2__0__Impl
+ rule__Zone__Group_4_2__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Zone__Group_4_2__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getZoneAccess().getAlternatives_4_2_0()); }
+ (rule__Zone__Alternatives_4_2_0)
+ { after(grammarAccess.getZoneAccess().getAlternatives_4_2_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Zone__Group_4_2__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Zone__Group_4_2__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Zone__Group_4_2__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getZoneAccess().getVisibilityAssignment_4_2_1()); }
+ (rule__Zone__VisibilityAssignment_4_2_1)
+ { after(grammarAccess.getZoneAccess().getVisibilityAssignment_4_2_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Zone__Group_4_3__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Zone__Group_4_3__0__Impl
+ rule__Zone__Group_4_3__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Zone__Group_4_3__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getZoneAccess().getAttenuateValueKeyword_4_3_0()); }
+ 'attenuateValue:'
+ { after(grammarAccess.getZoneAccess().getAttenuateValueKeyword_4_3_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Zone__Group_4_3__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Zone__Group_4_3__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Zone__Group_4_3__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getZoneAccess().getAttenuateAssignment_4_3_1()); }
+ (rule__Zone__AttenuateAssignment_4_3_1)
+ { after(grammarAccess.getZoneAccess().getAttenuateAssignment_4_3_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ViewContentState__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContentState__Group__0__Impl
+ rule__ViewContentState__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentState__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentStateAccess().getViewContentStateAction_0()); }
+ ()
+ { after(grammarAccess.getViewContentStateAccess().getViewContentStateAction_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentState__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContentState__Group__1__Impl
+ rule__ViewContentState__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentState__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentStateAccess().getStateKeyword_1()); }
+ 'State'
+ { after(grammarAccess.getViewContentStateAccess().getStateKeyword_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentState__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContentState__Group__2__Impl
+ rule__ViewContentState__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentState__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentStateAccess().getNameAssignment_2()); }
+ (rule__ViewContentState__NameAssignment_2)
+ { after(grammarAccess.getViewContentStateAccess().getNameAssignment_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentState__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContentState__Group__3__Impl
+ rule__ViewContentState__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentState__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentStateAccess().getLeftCurlyBracketKeyword_3()); }
+ '{'
+ { after(grammarAccess.getViewContentStateAccess().getLeftCurlyBracketKeyword_3()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentState__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContentState__Group__4__Impl
+ rule__ViewContentState__Group__5
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentState__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4()); }
+ (rule__ViewContentState__UnorderedGroup_4)
+ { after(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentState__Group__5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContentState__Group__5__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentState__Group__5__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentStateAccess().getRightCurlyBracketKeyword_5()); }
+ '}'
+ { after(grammarAccess.getViewContentStateAccess().getRightCurlyBracketKeyword_5()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ViewContentState__Group_4_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContentState__Group_4_0__0__Impl
+ rule__ViewContentState__Group_4_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentState__Group_4_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentStateAccess().getDescriptionKeyword_4_0_0()); }
+ 'description:'
+ { after(grammarAccess.getViewContentStateAccess().getDescriptionKeyword_4_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentState__Group_4_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContentState__Group_4_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentState__Group_4_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentStateAccess().getDescriptionAssignment_4_0_1()); }
+ (rule__ViewContentState__DescriptionAssignment_4_0_1)
+ { after(grammarAccess.getViewContentStateAccess().getDescriptionAssignment_4_0_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ViewContentState__Group_4_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContentState__Group_4_1__0__Impl
+ rule__ViewContentState__Group_4_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentState__Group_4_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentStateAccess().getAlternatives_4_1_0()); }
+ (rule__ViewContentState__Alternatives_4_1_0)
+ { after(grammarAccess.getViewContentStateAccess().getAlternatives_4_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentState__Group_4_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContentState__Group_4_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentState__Group_4_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentStateAccess().getValueAssignment_4_1_1()); }
+ (rule__ViewContentState__ValueAssignment_4_1_1)
+ { after(grammarAccess.getViewContentStateAccess().getValueAssignment_4_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__SoundContentState__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContentState__Group__0__Impl
+ rule__SoundContentState__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentState__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentStateAccess().getSoundContentStateAction_0()); }
+ ()
+ { after(grammarAccess.getSoundContentStateAccess().getSoundContentStateAction_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentState__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContentState__Group__1__Impl
+ rule__SoundContentState__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentState__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentStateAccess().getStateKeyword_1()); }
+ 'State'
+ { after(grammarAccess.getSoundContentStateAccess().getStateKeyword_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentState__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContentState__Group__2__Impl
+ rule__SoundContentState__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentState__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentStateAccess().getNameAssignment_2()); }
+ (rule__SoundContentState__NameAssignment_2)
+ { after(grammarAccess.getSoundContentStateAccess().getNameAssignment_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentState__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContentState__Group__3__Impl
+ rule__SoundContentState__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentState__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentStateAccess().getLeftCurlyBracketKeyword_3()); }
+ '{'
+ { after(grammarAccess.getSoundContentStateAccess().getLeftCurlyBracketKeyword_3()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentState__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContentState__Group__4__Impl
+ rule__SoundContentState__Group__5
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentState__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4()); }
+ (rule__SoundContentState__UnorderedGroup_4)
+ { after(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentState__Group__5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContentState__Group__5__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentState__Group__5__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentStateAccess().getRightCurlyBracketKeyword_5()); }
+ '}'
+ { after(grammarAccess.getSoundContentStateAccess().getRightCurlyBracketKeyword_5()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__SoundContentState__Group_4_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContentState__Group_4_0__0__Impl
+ rule__SoundContentState__Group_4_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentState__Group_4_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentStateAccess().getDescriptionKeyword_4_0_0()); }
+ 'description:'
+ { after(grammarAccess.getSoundContentStateAccess().getDescriptionKeyword_4_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentState__Group_4_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContentState__Group_4_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentState__Group_4_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentStateAccess().getDescriptionAssignment_4_0_1()); }
+ (rule__SoundContentState__DescriptionAssignment_4_0_1)
+ { after(grammarAccess.getSoundContentStateAccess().getDescriptionAssignment_4_0_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__SoundContentState__Group_4_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContentState__Group_4_1__0__Impl
+ rule__SoundContentState__Group_4_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentState__Group_4_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentStateAccess().getAlternatives_4_1_0()); }
+ (rule__SoundContentState__Alternatives_4_1_0)
+ { after(grammarAccess.getSoundContentStateAccess().getAlternatives_4_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentState__Group_4_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContentState__Group_4_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentState__Group_4_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentStateAccess().getValueAssignment_4_1_1()); }
+ (rule__SoundContentState__ValueAssignment_4_1_1)
+ { after(grammarAccess.getSoundContentStateAccess().getValueAssignment_4_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Project__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Project__Group__0__Impl
+ rule__Project__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Project__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getProjectAccess().getProjectAction_0()); }
+ ()
+ { after(grammarAccess.getProjectAccess().getProjectAction_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Project__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Project__Group__1__Impl
+ rule__Project__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Project__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getProjectAccess().getProjectKeyword_1()); }
+ 'Project'
+ { after(grammarAccess.getProjectAccess().getProjectKeyword_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Project__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Project__Group__2__Impl
+ rule__Project__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Project__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getProjectAccess().getDummyNameAssignment_2()); }
+ (rule__Project__DummyNameAssignment_2)?
+ { after(grammarAccess.getProjectAccess().getDummyNameAssignment_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Project__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Project__Group__3__Impl
+ rule__Project__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Project__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getProjectAccess().getLeftCurlyBracketKeyword_3()); }
+ '{'
+ { after(grammarAccess.getProjectAccess().getLeftCurlyBracketKeyword_3()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Project__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Project__Group__4__Impl
+ rule__Project__Group__5
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Project__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getProjectAccess().getVersionKeyword_4()); }
+ 'version:'
+ { after(grammarAccess.getProjectAccess().getVersionKeyword_4()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Project__Group__5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Project__Group__5__Impl
+ rule__Project__Group__6
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Project__Group__5__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getProjectAccess().getVersionAssignment_5()); }
+ (rule__Project__VersionAssignment_5)
+ { after(grammarAccess.getProjectAccess().getVersionAssignment_5()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Project__Group__6
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Project__Group__6__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Project__Group__6__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getProjectAccess().getRightCurlyBracketKeyword_6()); }
+ '}'
+ { after(grammarAccess.getProjectAccess().getRightCurlyBracketKeyword_6()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__VPlusOperator__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VPlusOperator__Group__0__Impl
+ rule__VPlusOperator__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VPlusOperator__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVPlusOperatorAccess().getVComparisonAndParserRuleCall_0()); }
+ ruleVComparisonAnd
+ { after(grammarAccess.getVPlusOperatorAccess().getVComparisonAndParserRuleCall_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VPlusOperator__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VPlusOperator__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VPlusOperator__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVPlusOperatorAccess().getGroup_1()); }
+ (rule__VPlusOperator__Group_1__0)*
+ { after(grammarAccess.getVPlusOperatorAccess().getGroup_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__VPlusOperator__Group_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VPlusOperator__Group_1__0__Impl
+ rule__VPlusOperator__Group_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VPlusOperator__Group_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVPlusOperatorAccess().getGroup_1_0()); }
+ (rule__VPlusOperator__Group_1_0__0)
+ { after(grammarAccess.getVPlusOperatorAccess().getGroup_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VPlusOperator__Group_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VPlusOperator__Group_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VPlusOperator__Group_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVPlusOperatorAccess().getOperandAssignment_1_1()); }
+ (rule__VPlusOperator__OperandAssignment_1_1)
+ { after(grammarAccess.getVPlusOperatorAccess().getOperandAssignment_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__VPlusOperator__Group_1_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VPlusOperator__Group_1_0__0__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VPlusOperator__Group_1_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVPlusOperatorAccess().getGroup_1_0_0()); }
+ (rule__VPlusOperator__Group_1_0_0__0)
+ { after(grammarAccess.getVPlusOperatorAccess().getGroup_1_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__VPlusOperator__Group_1_0_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VPlusOperator__Group_1_0_0__0__Impl
+ rule__VPlusOperator__Group_1_0_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VPlusOperator__Group_1_0_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVPlusOperatorAccess().getPlusOperatorOperandAction_1_0_0_0()); }
+ ()
+ { after(grammarAccess.getVPlusOperatorAccess().getPlusOperatorOperandAction_1_0_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VPlusOperator__Group_1_0_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VPlusOperator__Group_1_0_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VPlusOperator__Group_1_0_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVPlusOperatorAccess().getOpPlusParserRuleCall_1_0_0_1()); }
+ ruleOpPlus
+ { after(grammarAccess.getVPlusOperatorAccess().getOpPlusParserRuleCall_1_0_0_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__VComparisonAnd__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VComparisonAnd__Group__0__Impl
+ rule__VComparisonAnd__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VComparisonAnd__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVComparisonAndAccess().getVRelationalExpressionParserRuleCall_0()); }
+ ruleVRelationalExpression
+ { after(grammarAccess.getVComparisonAndAccess().getVRelationalExpressionParserRuleCall_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VComparisonAnd__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VComparisonAnd__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VComparisonAnd__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVComparisonAndAccess().getGroup_1()); }
+ (rule__VComparisonAnd__Group_1__0)*
+ { after(grammarAccess.getVComparisonAndAccess().getGroup_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__VComparisonAnd__Group_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VComparisonAnd__Group_1__0__Impl
+ rule__VComparisonAnd__Group_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VComparisonAnd__Group_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVComparisonAndAccess().getGroup_1_0()); }
+ (rule__VComparisonAnd__Group_1_0__0)
+ { after(grammarAccess.getVComparisonAndAccess().getGroup_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VComparisonAnd__Group_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VComparisonAnd__Group_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VComparisonAnd__Group_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVComparisonAndAccess().getOperandAssignment_1_1()); }
+ (rule__VComparisonAnd__OperandAssignment_1_1)
+ { after(grammarAccess.getVComparisonAndAccess().getOperandAssignment_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__VComparisonAnd__Group_1_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VComparisonAnd__Group_1_0__0__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VComparisonAnd__Group_1_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVComparisonAndAccess().getGroup_1_0_0()); }
+ (rule__VComparisonAnd__Group_1_0_0__0)
+ { after(grammarAccess.getVComparisonAndAccess().getGroup_1_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__VComparisonAnd__Group_1_0_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VComparisonAnd__Group_1_0_0__0__Impl
+ rule__VComparisonAnd__Group_1_0_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VComparisonAnd__Group_1_0_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVComparisonAndAccess().getComparisonAndOperandAction_1_0_0_0()); }
+ ()
+ { after(grammarAccess.getVComparisonAndAccess().getComparisonAndOperandAction_1_0_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VComparisonAnd__Group_1_0_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VComparisonAnd__Group_1_0_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VComparisonAnd__Group_1_0_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVComparisonAndAccess().getOpAndParserRuleCall_1_0_0_1()); }
+ ruleOpAnd
+ { after(grammarAccess.getVComparisonAndAccess().getOpAndParserRuleCall_1_0_0_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__VRelationalExpression__Group_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VRelationalExpression__Group_1__0__Impl
+ rule__VRelationalExpression__Group_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VRelationalExpression__Group_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVRelationalExpressionAccess().getMuchGreaterThanOperatorAction_1_0()); }
+ ()
+ { after(grammarAccess.getVRelationalExpressionAccess().getMuchGreaterThanOperatorAction_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VRelationalExpression__Group_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VRelationalExpression__Group_1__1__Impl
+ rule__VRelationalExpression__Group_1__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VRelationalExpression__Group_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVRelationalExpressionAccess().getOpMuchGreaterThanParserRuleCall_1_1()); }
+ ruleOpMuchGreaterThan
+ { after(grammarAccess.getVRelationalExpressionAccess().getOpMuchGreaterThanParserRuleCall_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VRelationalExpression__Group_1__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VRelationalExpression__Group_1__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VRelationalExpression__Group_1__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVRelationalExpressionAccess().getOperandAssignment_1_2()); }
+ (rule__VRelationalExpression__OperandAssignment_1_2)
+ { after(grammarAccess.getVRelationalExpressionAccess().getOperandAssignment_1_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__VRelationalExpression__Group_2__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VRelationalExpression__Group_2__0__Impl
+ rule__VRelationalExpression__Group_2__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VRelationalExpression__Group_2__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVRelationalExpressionAccess().getEqualToOperatorAction_2_0()); }
+ ()
+ { after(grammarAccess.getVRelationalExpressionAccess().getEqualToOperatorAction_2_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VRelationalExpression__Group_2__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VRelationalExpression__Group_2__1__Impl
+ rule__VRelationalExpression__Group_2__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VRelationalExpression__Group_2__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVRelationalExpressionAccess().getOpEqualToParserRuleCall_2_1()); }
+ ruleOpEqualTo
+ { after(grammarAccess.getVRelationalExpressionAccess().getOpEqualToParserRuleCall_2_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VRelationalExpression__Group_2__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VRelationalExpression__Group_2__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VRelationalExpression__Group_2__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVRelationalExpressionAccess().getOperandAssignment_2_2()); }
+ (rule__VRelationalExpression__OperandAssignment_2_2)
+ { after(grammarAccess.getVRelationalExpressionAccess().getOperandAssignment_2_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__VRelationalExpression__Group_3__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VRelationalExpression__Group_3__0__Impl
+ rule__VRelationalExpression__Group_3__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VRelationalExpression__Group_3__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVRelationalExpressionAccess().getGreaterThanOperatorAction_3_0()); }
+ ()
+ { after(grammarAccess.getVRelationalExpressionAccess().getGreaterThanOperatorAction_3_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VRelationalExpression__Group_3__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VRelationalExpression__Group_3__1__Impl
+ rule__VRelationalExpression__Group_3__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VRelationalExpression__Group_3__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVRelationalExpressionAccess().getOpGreaterThanParserRuleCall_3_1()); }
+ ruleOpGreaterThan
+ { after(grammarAccess.getVRelationalExpressionAccess().getOpGreaterThanParserRuleCall_3_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VRelationalExpression__Group_3__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VRelationalExpression__Group_3__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VRelationalExpression__Group_3__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVRelationalExpressionAccess().getOperandAssignment_3_2()); }
+ (rule__VRelationalExpression__OperandAssignment_3_2)
+ { after(grammarAccess.getVRelationalExpressionAccess().getOperandAssignment_3_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__VRelationalExpression__Group_4__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VRelationalExpression__Group_4__0__Impl
+ rule__VRelationalExpression__Group_4__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VRelationalExpression__Group_4__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVRelationalExpressionAccess().getLowerThanOperatorAction_4_0()); }
+ ()
+ { after(grammarAccess.getVRelationalExpressionAccess().getLowerThanOperatorAction_4_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VRelationalExpression__Group_4__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VRelationalExpression__Group_4__1__Impl
+ rule__VRelationalExpression__Group_4__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VRelationalExpression__Group_4__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVRelationalExpressionAccess().getOpLowerThanParserRuleCall_4_1()); }
+ ruleOpLowerThan
+ { after(grammarAccess.getVRelationalExpressionAccess().getOpLowerThanParserRuleCall_4_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VRelationalExpression__Group_4__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VRelationalExpression__Group_4__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VRelationalExpression__Group_4__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVRelationalExpressionAccess().getOperandAssignment_4_2()); }
+ (rule__VRelationalExpression__OperandAssignment_4_2)
+ { after(grammarAccess.getVRelationalExpressionAccess().getOperandAssignment_4_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__VPrimaryExpression__Group_2__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VPrimaryExpression__Group_2__0__Impl
+ rule__VPrimaryExpression__Group_2__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VPrimaryExpression__Group_2__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVPrimaryExpressionAccess().getLeftParenthesisKeyword_2_0()); }
+ '('
+ { after(grammarAccess.getVPrimaryExpressionAccess().getLeftParenthesisKeyword_2_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VPrimaryExpression__Group_2__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VPrimaryExpression__Group_2__1__Impl
+ rule__VPrimaryExpression__Group_2__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VPrimaryExpression__Group_2__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVPrimaryExpressionAccess().getVExpressionParserRuleCall_2_1()); }
+ ruleVExpression
+ { after(grammarAccess.getVPrimaryExpressionAccess().getVExpressionParserRuleCall_2_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VPrimaryExpression__Group_2__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VPrimaryExpression__Group_2__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VPrimaryExpression__Group_2__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVPrimaryExpressionAccess().getRightParenthesisKeyword_2_2()); }
+ ')'
+ { after(grammarAccess.getVPrimaryExpressionAccess().getRightParenthesisKeyword_2_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ThatOfOperator__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ThatOfOperator__Group__0__Impl
+ rule__ThatOfOperator__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ThatOfOperator__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getThatOfOperatorAccess().getThatOfOperatorAction_0()); }
+ ()
+ { after(grammarAccess.getThatOfOperatorAccess().getThatOfOperatorAction_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ThatOfOperator__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ThatOfOperator__Group__1__Impl
+ rule__ThatOfOperator__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ThatOfOperator__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getThatOfOperatorAccess().getThatOfKeyword_1()); }
+ 'That-of'
+ { after(grammarAccess.getThatOfOperatorAccess().getThatOfKeyword_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ThatOfOperator__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ThatOfOperator__Group__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ThatOfOperator__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getThatOfOperatorAccess().getOperandAssignment_2()); }
+ (rule__ThatOfOperator__OperandAssignment_2)?
+ { after(grammarAccess.getThatOfOperatorAccess().getOperandAssignment_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__VMemberFeatureReference__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VMemberFeatureReference__Group__0__Impl
+ rule__VMemberFeatureReference__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VMemberFeatureReference__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVMemberFeatureReferenceAccess().getObjectReferenceAction_0()); }
+ ()
+ { after(grammarAccess.getVMemberFeatureReferenceAccess().getObjectReferenceAction_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VMemberFeatureReference__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VMemberFeatureReference__Group__1__Impl
+ rule__VMemberFeatureReference__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VMemberFeatureReference__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVMemberFeatureReferenceAccess().getRefObjectAssignment_1()); }
+ (rule__VMemberFeatureReference__RefObjectAssignment_1)
+ { after(grammarAccess.getVMemberFeatureReferenceAccess().getRefObjectAssignment_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VMemberFeatureReference__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VMemberFeatureReference__Group__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VMemberFeatureReference__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVMemberFeatureReferenceAccess().getGroup_2()); }
+ (rule__VMemberFeatureReference__Group_2__0)*
+ { after(grammarAccess.getVMemberFeatureReferenceAccess().getGroup_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__VMemberFeatureReference__Group_2__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VMemberFeatureReference__Group_2__0__Impl
+ rule__VMemberFeatureReference__Group_2__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VMemberFeatureReference__Group_2__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVMemberFeatureReferenceAccess().getMemberFeatureReferenceOperandAction_2_0()); }
+ ()
+ { after(grammarAccess.getVMemberFeatureReferenceAccess().getMemberFeatureReferenceOperandAction_2_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VMemberFeatureReference__Group_2__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VMemberFeatureReference__Group_2__1__Impl
+ rule__VMemberFeatureReference__Group_2__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VMemberFeatureReference__Group_2__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVMemberFeatureReferenceAccess().getFullStopKeyword_2_1()); }
+ '.'
+ { after(grammarAccess.getVMemberFeatureReferenceAccess().getFullStopKeyword_2_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VMemberFeatureReference__Group_2__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VMemberFeatureReference__Group_2__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VMemberFeatureReference__Group_2__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVMemberFeatureReferenceAccess().getRefObjectAssignment_2_2()); }
+ (rule__VMemberFeatureReference__RefObjectAssignment_2_2)
+ { after(grammarAccess.getVMemberFeatureReferenceAccess().getRefObjectAssignment_2_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__IntegerValue__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__IntegerValue__Group__0__Impl
+ rule__IntegerValue__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__IntegerValue__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getIntegerValueAccess().getIntegerValueAction_0()); }
+ ()
+ { after(grammarAccess.getIntegerValueAccess().getIntegerValueAction_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__IntegerValue__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__IntegerValue__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__IntegerValue__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getIntegerValueAccess().getValueAssignment_1()); }
+ (rule__IntegerValue__ValueAssignment_1)
+ { after(grammarAccess.getIntegerValueAccess().getValueAssignment_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__StandardValue__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__StandardValue__Group__0__Impl
+ rule__StandardValue__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__StandardValue__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getStandardValueAccess().getStandardValueAction_0()); }
+ ()
+ { after(grammarAccess.getStandardValueAccess().getStandardValueAction_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__StandardValue__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__StandardValue__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__StandardValue__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getStandardValueAccess().getSTANDARD_VALUEKeyword_1()); }
+ 'STANDARD_VALUE'
+ { after(grammarAccess.getStandardValueAccess().getSTANDARD_VALUEKeyword_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__NoneValue__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__NoneValue__Group__0__Impl
+ rule__NoneValue__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__NoneValue__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getNoneValueAccess().getNoneValueAction_0()); }
+ ()
+ { after(grammarAccess.getNoneValueAccess().getNoneValueAction_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__NoneValue__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__NoneValue__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__NoneValue__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getNoneValueAccess().getNONE_VALUEKeyword_1()); }
+ 'NONE_VALUE'
+ { after(grammarAccess.getNoneValueAccess().getNONE_VALUEKeyword_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__MinValue__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__MinValue__Group__0__Impl
+ rule__MinValue__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__MinValue__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getMinValueAccess().getMinValueAction_0()); }
+ ()
+ { after(grammarAccess.getMinValueAccess().getMinValueAction_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__MinValue__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__MinValue__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__MinValue__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getMinValueAccess().getMIN_VALUEKeyword_1()); }
+ 'MIN_VALUE'
+ { after(grammarAccess.getMinValueAccess().getMIN_VALUEKeyword_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__MaxValue__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__MaxValue__Group__0__Impl
+ rule__MaxValue__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__MaxValue__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getMaxValueAccess().getMaxValueAction_0()); }
+ ()
+ { after(grammarAccess.getMaxValueAccess().getMaxValueAction_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__MaxValue__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__MaxValue__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__MaxValue__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getMaxValueAccess().getMAX_VALUEKeyword_1()); }
+ 'MAX_VALUE'
+ { after(grammarAccess.getMaxValueAccess().getMAX_VALUEKeyword_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__CImpliesOperator__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CImpliesOperator__Group__0__Impl
+ rule__CImpliesOperator__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CImpliesOperator__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCImpliesOperatorAccess().getCOrOperatorParserRuleCall_0()); }
+ ruleCOrOperator
+ { after(grammarAccess.getCImpliesOperatorAccess().getCOrOperatorParserRuleCall_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CImpliesOperator__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CImpliesOperator__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CImpliesOperator__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCImpliesOperatorAccess().getGroup_1()); }
+ (rule__CImpliesOperator__Group_1__0)*
+ { after(grammarAccess.getCImpliesOperatorAccess().getGroup_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__CImpliesOperator__Group_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CImpliesOperator__Group_1__0__Impl
+ rule__CImpliesOperator__Group_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CImpliesOperator__Group_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCImpliesOperatorAccess().getGroup_1_0()); }
+ (rule__CImpliesOperator__Group_1_0__0)
+ { after(grammarAccess.getCImpliesOperatorAccess().getGroup_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CImpliesOperator__Group_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CImpliesOperator__Group_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CImpliesOperator__Group_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCImpliesOperatorAccess().getOperandAssignment_1_1()); }
+ (rule__CImpliesOperator__OperandAssignment_1_1)
+ { after(grammarAccess.getCImpliesOperatorAccess().getOperandAssignment_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__CImpliesOperator__Group_1_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CImpliesOperator__Group_1_0__0__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CImpliesOperator__Group_1_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCImpliesOperatorAccess().getGroup_1_0_0()); }
+ (rule__CImpliesOperator__Group_1_0_0__0)
+ { after(grammarAccess.getCImpliesOperatorAccess().getGroup_1_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__CImpliesOperator__Group_1_0_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CImpliesOperator__Group_1_0_0__0__Impl
+ rule__CImpliesOperator__Group_1_0_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CImpliesOperator__Group_1_0_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCImpliesOperatorAccess().getImpliesOperatorOperandAction_1_0_0_0()); }
+ ()
+ { after(grammarAccess.getCImpliesOperatorAccess().getImpliesOperatorOperandAction_1_0_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CImpliesOperator__Group_1_0_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CImpliesOperator__Group_1_0_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CImpliesOperator__Group_1_0_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCImpliesOperatorAccess().getOpImpliesParserRuleCall_1_0_0_1()); }
+ ruleOpImplies
+ { after(grammarAccess.getCImpliesOperatorAccess().getOpImpliesParserRuleCall_1_0_0_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COrOperator__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COrOperator__Group__0__Impl
+ rule__COrOperator__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COrOperator__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOrOperatorAccess().getCAndOperatorParserRuleCall_0()); }
+ ruleCAndOperator
+ { after(grammarAccess.getCOrOperatorAccess().getCAndOperatorParserRuleCall_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COrOperator__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COrOperator__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COrOperator__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOrOperatorAccess().getGroup_1()); }
+ (rule__COrOperator__Group_1__0)*
+ { after(grammarAccess.getCOrOperatorAccess().getGroup_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COrOperator__Group_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COrOperator__Group_1__0__Impl
+ rule__COrOperator__Group_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COrOperator__Group_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOrOperatorAccess().getGroup_1_0()); }
+ (rule__COrOperator__Group_1_0__0)
+ { after(grammarAccess.getCOrOperatorAccess().getGroup_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COrOperator__Group_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COrOperator__Group_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COrOperator__Group_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOrOperatorAccess().getOperandAssignment_1_1()); }
+ (rule__COrOperator__OperandAssignment_1_1)
+ { after(grammarAccess.getCOrOperatorAccess().getOperandAssignment_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COrOperator__Group_1_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COrOperator__Group_1_0__0__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COrOperator__Group_1_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOrOperatorAccess().getGroup_1_0_0()); }
+ (rule__COrOperator__Group_1_0_0__0)
+ { after(grammarAccess.getCOrOperatorAccess().getGroup_1_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COrOperator__Group_1_0_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COrOperator__Group_1_0_0__0__Impl
+ rule__COrOperator__Group_1_0_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COrOperator__Group_1_0_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOrOperatorAccess().getOrOperatorOperandAction_1_0_0_0()); }
+ ()
+ { after(grammarAccess.getCOrOperatorAccess().getOrOperatorOperandAction_1_0_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COrOperator__Group_1_0_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COrOperator__Group_1_0_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COrOperator__Group_1_0_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOrOperatorAccess().getOpOrParserRuleCall_1_0_0_1()); }
+ ruleOpOr
+ { after(grammarAccess.getCOrOperatorAccess().getOpOrParserRuleCall_1_0_0_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__CAndOperator__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CAndOperator__Group__0__Impl
+ rule__CAndOperator__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CAndOperator__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCAndOperatorAccess().getCEqualityExpressionParserRuleCall_0()); }
+ ruleCEqualityExpression
+ { after(grammarAccess.getCAndOperatorAccess().getCEqualityExpressionParserRuleCall_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CAndOperator__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CAndOperator__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CAndOperator__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCAndOperatorAccess().getGroup_1()); }
+ (rule__CAndOperator__Group_1__0)*
+ { after(grammarAccess.getCAndOperatorAccess().getGroup_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__CAndOperator__Group_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CAndOperator__Group_1__0__Impl
+ rule__CAndOperator__Group_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CAndOperator__Group_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCAndOperatorAccess().getGroup_1_0()); }
+ (rule__CAndOperator__Group_1_0__0)
+ { after(grammarAccess.getCAndOperatorAccess().getGroup_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CAndOperator__Group_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CAndOperator__Group_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CAndOperator__Group_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCAndOperatorAccess().getOperandAssignment_1_1()); }
+ (rule__CAndOperator__OperandAssignment_1_1)
+ { after(grammarAccess.getCAndOperatorAccess().getOperandAssignment_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__CAndOperator__Group_1_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CAndOperator__Group_1_0__0__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CAndOperator__Group_1_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCAndOperatorAccess().getGroup_1_0_0()); }
+ (rule__CAndOperator__Group_1_0_0__0)
+ { after(grammarAccess.getCAndOperatorAccess().getGroup_1_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__CAndOperator__Group_1_0_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CAndOperator__Group_1_0_0__0__Impl
+ rule__CAndOperator__Group_1_0_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CAndOperator__Group_1_0_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCAndOperatorAccess().getAndOperatorOperandAction_1_0_0_0()); }
+ ()
+ { after(grammarAccess.getCAndOperatorAccess().getAndOperatorOperandAction_1_0_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CAndOperator__Group_1_0_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CAndOperator__Group_1_0_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CAndOperator__Group_1_0_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCAndOperatorAccess().getOpAndParserRuleCall_1_0_0_1()); }
+ ruleOpAnd
+ { after(grammarAccess.getCAndOperatorAccess().getOpAndParserRuleCall_1_0_0_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__CEqualityExpression__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CEqualityExpression__Group__0__Impl
+ rule__CEqualityExpression__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CEqualityExpression__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCEqualityExpressionAccess().getCRelationalExpressionParserRuleCall_0()); }
+ ruleCRelationalExpression
+ { after(grammarAccess.getCEqualityExpressionAccess().getCRelationalExpressionParserRuleCall_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CEqualityExpression__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CEqualityExpression__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CEqualityExpression__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCEqualityExpressionAccess().getGroup_1()); }
+ (rule__CEqualityExpression__Group_1__0)*
+ { after(grammarAccess.getCEqualityExpressionAccess().getGroup_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__CEqualityExpression__Group_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CEqualityExpression__Group_1__0__Impl
+ rule__CEqualityExpression__Group_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CEqualityExpression__Group_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCEqualityExpressionAccess().getGroup_1_0()); }
+ (rule__CEqualityExpression__Group_1_0__0)
+ { after(grammarAccess.getCEqualityExpressionAccess().getGroup_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CEqualityExpression__Group_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CEqualityExpression__Group_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CEqualityExpression__Group_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCEqualityExpressionAccess().getOperandAssignment_1_1()); }
+ (rule__CEqualityExpression__OperandAssignment_1_1)
+ { after(grammarAccess.getCEqualityExpressionAccess().getOperandAssignment_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__CEqualityExpression__Group_1_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CEqualityExpression__Group_1_0__0__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CEqualityExpression__Group_1_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCEqualityExpressionAccess().getAlternatives_1_0_0()); }
+ (rule__CEqualityExpression__Alternatives_1_0_0)
+ { after(grammarAccess.getCEqualityExpressionAccess().getAlternatives_1_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__CEqualityExpression__Group_1_0_0_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CEqualityExpression__Group_1_0_0_0__0__Impl
+ rule__CEqualityExpression__Group_1_0_0_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CEqualityExpression__Group_1_0_0_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCEqualityExpressionAccess().getObjectCompareOperandAction_1_0_0_0_0()); }
+ ()
+ { after(grammarAccess.getCEqualityExpressionAccess().getObjectCompareOperandAction_1_0_0_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CEqualityExpression__Group_1_0_0_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CEqualityExpression__Group_1_0_0_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CEqualityExpression__Group_1_0_0_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCEqualityExpressionAccess().getOpObjectCompareParserRuleCall_1_0_0_0_1()); }
+ ruleOpObjectCompare
+ { after(grammarAccess.getCEqualityExpressionAccess().getOpObjectCompareParserRuleCall_1_0_0_0_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__CEqualityExpression__Group_1_0_0_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CEqualityExpression__Group_1_0_0_1__0__Impl
+ rule__CEqualityExpression__Group_1_0_0_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CEqualityExpression__Group_1_0_0_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCEqualityExpressionAccess().getObjectCompareNotOperandAction_1_0_0_1_0()); }
+ ()
+ { after(grammarAccess.getCEqualityExpressionAccess().getObjectCompareNotOperandAction_1_0_0_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CEqualityExpression__Group_1_0_0_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CEqualityExpression__Group_1_0_0_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CEqualityExpression__Group_1_0_0_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCEqualityExpressionAccess().getOpObjectNotCompareParserRuleCall_1_0_0_1_1()); }
+ ruleOpObjectNotCompare
+ { after(grammarAccess.getCEqualityExpressionAccess().getOpObjectNotCompareParserRuleCall_1_0_0_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__CEqualityExpression__Group_1_0_0_2__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CEqualityExpression__Group_1_0_0_2__0__Impl
+ rule__CEqualityExpression__Group_1_0_0_2__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CEqualityExpression__Group_1_0_0_2__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCEqualityExpressionAccess().getIsEqualToOperatorOperandAction_1_0_0_2_0()); }
+ ()
+ { after(grammarAccess.getCEqualityExpressionAccess().getIsEqualToOperatorOperandAction_1_0_0_2_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CEqualityExpression__Group_1_0_0_2__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CEqualityExpression__Group_1_0_0_2__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CEqualityExpression__Group_1_0_0_2__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCEqualityExpressionAccess().getOpEqualityParserRuleCall_1_0_0_2_1()); }
+ ruleOpEquality
+ { after(grammarAccess.getCEqualityExpressionAccess().getOpEqualityParserRuleCall_1_0_0_2_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__CRelationalExpression__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CRelationalExpression__Group__0__Impl
+ rule__CRelationalExpression__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CRelationalExpression__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCRelationalExpressionAccess().getCUnaryOperationParserRuleCall_0()); }
+ ruleCUnaryOperation
+ { after(grammarAccess.getCRelationalExpressionAccess().getCUnaryOperationParserRuleCall_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CRelationalExpression__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CRelationalExpression__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CRelationalExpression__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCRelationalExpressionAccess().getGroup_1()); }
+ (rule__CRelationalExpression__Group_1__0)*
+ { after(grammarAccess.getCRelationalExpressionAccess().getGroup_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__CRelationalExpression__Group_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CRelationalExpression__Group_1__0__Impl
+ rule__CRelationalExpression__Group_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CRelationalExpression__Group_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCRelationalExpressionAccess().getGroup_1_0()); }
+ (rule__CRelationalExpression__Group_1_0__0)
+ { after(grammarAccess.getCRelationalExpressionAccess().getGroup_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CRelationalExpression__Group_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CRelationalExpression__Group_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CRelationalExpression__Group_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCRelationalExpressionAccess().getOperandAssignment_1_1()); }
+ (rule__CRelationalExpression__OperandAssignment_1_1)
+ { after(grammarAccess.getCRelationalExpressionAccess().getOperandAssignment_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__CRelationalExpression__Group_1_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CRelationalExpression__Group_1_0__0__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CRelationalExpression__Group_1_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCRelationalExpressionAccess().getAlternatives_1_0_0()); }
+ (rule__CRelationalExpression__Alternatives_1_0_0)
+ { after(grammarAccess.getCRelationalExpressionAccess().getAlternatives_1_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__CRelationalExpression__Group_1_0_0_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CRelationalExpression__Group_1_0_0_0__0__Impl
+ rule__CRelationalExpression__Group_1_0_0_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CRelationalExpression__Group_1_0_0_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCRelationalExpressionAccess().getIsGreaterThanEqualOperatorOperandAction_1_0_0_0_0()); }
+ ()
+ { after(grammarAccess.getCRelationalExpressionAccess().getIsGreaterThanEqualOperatorOperandAction_1_0_0_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CRelationalExpression__Group_1_0_0_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CRelationalExpression__Group_1_0_0_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CRelationalExpression__Group_1_0_0_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCRelationalExpressionAccess().getOpIsGreaterThanEqualParserRuleCall_1_0_0_0_1()); }
+ ruleOpIsGreaterThanEqual
+ { after(grammarAccess.getCRelationalExpressionAccess().getOpIsGreaterThanEqualParserRuleCall_1_0_0_0_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__CRelationalExpression__Group_1_0_0_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CRelationalExpression__Group_1_0_0_1__0__Impl
+ rule__CRelationalExpression__Group_1_0_0_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CRelationalExpression__Group_1_0_0_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCRelationalExpressionAccess().getIsLowerThanEqualOperatorOperandAction_1_0_0_1_0()); }
+ ()
+ { after(grammarAccess.getCRelationalExpressionAccess().getIsLowerThanEqualOperatorOperandAction_1_0_0_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CRelationalExpression__Group_1_0_0_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CRelationalExpression__Group_1_0_0_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CRelationalExpression__Group_1_0_0_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCRelationalExpressionAccess().getOpIsLowerThanEqualParserRuleCall_1_0_0_1_1()); }
+ ruleOpIsLowerThanEqual
+ { after(grammarAccess.getCRelationalExpressionAccess().getOpIsLowerThanEqualParserRuleCall_1_0_0_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__CRelationalExpression__Group_1_0_0_2__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CRelationalExpression__Group_1_0_0_2__0__Impl
+ rule__CRelationalExpression__Group_1_0_0_2__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CRelationalExpression__Group_1_0_0_2__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCRelationalExpressionAccess().getIsGreaterThanOperatorOperandAction_1_0_0_2_0()); }
+ ()
+ { after(grammarAccess.getCRelationalExpressionAccess().getIsGreaterThanOperatorOperandAction_1_0_0_2_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CRelationalExpression__Group_1_0_0_2__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CRelationalExpression__Group_1_0_0_2__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CRelationalExpression__Group_1_0_0_2__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCRelationalExpressionAccess().getOpIsGreaterThanParserRuleCall_1_0_0_2_1()); }
+ ruleOpIsGreaterThan
+ { after(grammarAccess.getCRelationalExpressionAccess().getOpIsGreaterThanParserRuleCall_1_0_0_2_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__CRelationalExpression__Group_1_0_0_3__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CRelationalExpression__Group_1_0_0_3__0__Impl
+ rule__CRelationalExpression__Group_1_0_0_3__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CRelationalExpression__Group_1_0_0_3__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCRelationalExpressionAccess().getIsLowerThanOperatorOperandAction_1_0_0_3_0()); }
+ ()
+ { after(grammarAccess.getCRelationalExpressionAccess().getIsLowerThanOperatorOperandAction_1_0_0_3_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CRelationalExpression__Group_1_0_0_3__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CRelationalExpression__Group_1_0_0_3__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CRelationalExpression__Group_1_0_0_3__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCRelationalExpressionAccess().getOpIsLowerThanParserRuleCall_1_0_0_3_1()); }
+ ruleOpIsLowerThan
+ { after(grammarAccess.getCRelationalExpressionAccess().getOpIsLowerThanParserRuleCall_1_0_0_3_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__CUnaryOperation__Group_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CUnaryOperation__Group_0__0__Impl
+ rule__CUnaryOperation__Group_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CUnaryOperation__Group_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCUnaryOperationAccess().getNotOperatorAction_0_0()); }
+ ()
+ { after(grammarAccess.getCUnaryOperationAccess().getNotOperatorAction_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CUnaryOperation__Group_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CUnaryOperation__Group_0__1__Impl
+ rule__CUnaryOperation__Group_0__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CUnaryOperation__Group_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCUnaryOperationAccess().getOpNotParserRuleCall_0_1()); }
+ ruleOpNot
+ { after(grammarAccess.getCUnaryOperationAccess().getOpNotParserRuleCall_0_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CUnaryOperation__Group_0__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CUnaryOperation__Group_0__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CUnaryOperation__Group_0__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCUnaryOperationAccess().getOperandAssignment_0_2()); }
+ (rule__CUnaryOperation__OperandAssignment_0_2)
+ { after(grammarAccess.getCUnaryOperationAccess().getOperandAssignment_0_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COperationFeatureCall__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group__0__Impl
+ rule__COperationFeatureCall__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getCPrimaryExpressionParserRuleCall_0()); }
+ ruleCPrimaryExpression
+ { after(grammarAccess.getCOperationFeatureCallAccess().getCPrimaryExpressionParserRuleCall_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1()); }
+ (rule__COperationFeatureCall__Group_1__0)*
+ { after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COperationFeatureCall__Group_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1__0__Impl
+ rule__COperationFeatureCall__Group_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_0()); }
+ (rule__COperationFeatureCall__Group_1_0__0)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getAlternatives_1_1()); }
+ (rule__COperationFeatureCall__Alternatives_1_1)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getAlternatives_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COperationFeatureCall__Group_1_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_0__0__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getFullStopKeyword_1_0_0()); }
+ '.'
+ { after(grammarAccess.getCOperationFeatureCallAccess().getFullStopKeyword_1_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COperationFeatureCall__Group_1_1_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0__0__Impl
+ rule__COperationFeatureCall__Group_1_1_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getAlternatives_1_1_0_0()); }
+ (rule__COperationFeatureCall__Alternatives_1_1_0_0)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getAlternatives_1_1_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_1()); }
+ (rule__COperationFeatureCall__Group_1_1_0_1__0)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COperationFeatureCall__Group_1_1_0_0_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_0__0__Impl
+ rule__COperationFeatureCall__Group_1_1_0_0_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getGetPropertyOperandAction_1_1_0_0_0_0()); }
+ ()
+ { after(grammarAccess.getCOperationFeatureCallAccess().getGetPropertyOperandAction_1_1_0_0_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getOpGetPropertyParserRuleCall_1_1_0_0_0_1()); }
+ ruleOpGetProperty
+ { after(grammarAccess.getCOperationFeatureCallAccess().getOpGetPropertyParserRuleCall_1_1_0_0_0_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COperationFeatureCall__Group_1_1_0_0_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_1__0__Impl
+ rule__COperationFeatureCall__Group_1_1_0_0_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getIsOnOperandAction_1_1_0_0_1_0()); }
+ ()
+ { after(grammarAccess.getCOperationFeatureCallAccess().getIsOnOperandAction_1_1_0_0_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getOpIsOnParserRuleCall_1_1_0_0_1_1()); }
+ ruleOpIsOn
+ { after(grammarAccess.getCOperationFeatureCallAccess().getOpIsOnParserRuleCall_1_1_0_0_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COperationFeatureCall__Group_1_1_0_0_2__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_2__0__Impl
+ rule__COperationFeatureCall__Group_1_1_0_0_2__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_2__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getGetContentsListOperandAction_1_1_0_0_2_0()); }
+ ()
+ { after(grammarAccess.getCOperationFeatureCallAccess().getGetContentsListOperandAction_1_1_0_0_2_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_2__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_2__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_2__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getOpGetContentsListParserRuleCall_1_1_0_0_2_1()); }
+ ruleOpGetContentsList
+ { after(grammarAccess.getCOperationFeatureCallAccess().getOpGetContentsListParserRuleCall_1_1_0_0_2_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COperationFeatureCall__Group_1_1_0_0_3__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_3__0__Impl
+ rule__COperationFeatureCall__Group_1_1_0_0_3__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_3__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getContentValueOperandAction_1_1_0_0_3_0()); }
+ ()
+ { after(grammarAccess.getCOperationFeatureCallAccess().getContentValueOperandAction_1_1_0_0_3_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_3__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_3__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_3__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getOpContentValueParserRuleCall_1_1_0_0_3_1()); }
+ ruleOpContentValue
+ { after(grammarAccess.getCOperationFeatureCallAccess().getOpContentValueParserRuleCall_1_1_0_0_3_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COperationFeatureCall__Group_1_1_0_0_4__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_4__0__Impl
+ rule__COperationFeatureCall__Group_1_1_0_0_4__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_4__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getIsActiveOperandAction_1_1_0_0_4_0()); }
+ ()
+ { after(grammarAccess.getCOperationFeatureCallAccess().getIsActiveOperandAction_1_1_0_0_4_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_4__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_4__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_4__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getOpIsActiveParserRuleCall_1_1_0_0_4_1()); }
+ ruleOpIsActive
+ { after(grammarAccess.getCOperationFeatureCallAccess().getOpIsActiveParserRuleCall_1_1_0_0_4_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COperationFeatureCall__Group_1_1_0_0_5__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_5__0__Impl
+ rule__COperationFeatureCall__Group_1_1_0_0_5__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_5__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getGetAllocatablesOperandAction_1_1_0_0_5_0()); }
+ ()
+ { after(grammarAccess.getCOperationFeatureCallAccess().getGetAllocatablesOperandAction_1_1_0_0_5_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_5__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_5__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_5__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getOpGetAllocatablesParserRuleCall_1_1_0_0_5_1()); }
+ ruleOpGetAllocatables
+ { after(grammarAccess.getCOperationFeatureCallAccess().getOpGetAllocatablesParserRuleCall_1_1_0_0_5_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COperationFeatureCall__Group_1_1_0_0_6__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_6__0__Impl
+ rule__COperationFeatureCall__Group_1_1_0_0_6__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_6__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getAllocatedContentOperandAction_1_1_0_0_6_0()); }
+ ()
+ { after(grammarAccess.getCOperationFeatureCallAccess().getAllocatedContentOperandAction_1_1_0_0_6_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_6__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_6__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_6__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getOpAllocatedContentParserRuleCall_1_1_0_0_6_1()); }
+ ruleOpAllocatedContent
+ { after(grammarAccess.getCOperationFeatureCallAccess().getOpAllocatedContentParserRuleCall_1_1_0_0_6_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COperationFeatureCall__Group_1_1_0_0_7__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_7__0__Impl
+ rule__COperationFeatureCall__Group_1_1_0_0_7__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_7__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getHasComeEarlierThanOperandAction_1_1_0_0_7_0()); }
+ ()
+ { after(grammarAccess.getCOperationFeatureCallAccess().getHasComeEarlierThanOperandAction_1_1_0_0_7_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_7__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_7__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_7__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getOpHasComeEarlierThanParserRuleCall_1_1_0_0_7_1()); }
+ ruleOpHasComeEarlierThan
+ { after(grammarAccess.getCOperationFeatureCallAccess().getOpHasComeEarlierThanParserRuleCall_1_1_0_0_7_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COperationFeatureCall__Group_1_1_0_0_8__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_8__0__Impl
+ rule__COperationFeatureCall__Group_1_1_0_0_8__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_8__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getHasComeLaterThanOperandAction_1_1_0_0_8_0()); }
+ ()
+ { after(grammarAccess.getCOperationFeatureCallAccess().getHasComeLaterThanOperandAction_1_1_0_0_8_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_8__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_8__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_8__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getOpHasComeLaterThanParserRuleCall_1_1_0_0_8_1()); }
+ ruleOpHasComeLaterThan
+ { after(grammarAccess.getCOperationFeatureCallAccess().getOpHasComeLaterThanParserRuleCall_1_1_0_0_8_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COperationFeatureCall__Group_1_1_0_0_9__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_9__0__Impl
+ rule__COperationFeatureCall__Group_1_1_0_0_9__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_9__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getStateValueOperandAction_1_1_0_0_9_0()); }
+ ()
+ { after(grammarAccess.getCOperationFeatureCallAccess().getStateValueOperandAction_1_1_0_0_9_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_9__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_9__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_9__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getOpStateValueParserRuleCall_1_1_0_0_9_1()); }
+ ruleOpStateValue
+ { after(grammarAccess.getCOperationFeatureCallAccess().getOpStateValueParserRuleCall_1_1_0_0_9_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COperationFeatureCall__Group_1_1_0_0_10__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_10__0__Impl
+ rule__COperationFeatureCall__Group_1_1_0_0_10__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_10__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getActiveContentsOperandAction_1_1_0_0_10_0()); }
+ ()
+ { after(grammarAccess.getCOperationFeatureCallAccess().getActiveContentsOperandAction_1_1_0_0_10_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_10__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_10__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_10__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getOpActiveContentsParserRuleCall_1_1_0_0_10_1()); }
+ ruleOpActiveContents
+ { after(grammarAccess.getCOperationFeatureCallAccess().getOpActiveContentsParserRuleCall_1_1_0_0_10_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COperationFeatureCall__Group_1_1_0_0_11__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_11__0__Impl
+ rule__COperationFeatureCall__Group_1_1_0_0_11__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_11__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getSizeOperatorOperandAction_1_1_0_0_11_0()); }
+ ()
+ { after(grammarAccess.getCOperationFeatureCallAccess().getSizeOperatorOperandAction_1_1_0_0_11_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_11__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_11__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_11__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getOpSizeOperatorParserRuleCall_1_1_0_0_11_1()); }
+ ruleOpSizeOperator
+ { after(grammarAccess.getCOperationFeatureCallAccess().getOpSizeOperatorParserRuleCall_1_1_0_0_11_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COperationFeatureCall__Group_1_1_0_0_12__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_12__0__Impl
+ rule__COperationFeatureCall__Group_1_1_0_0_12__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_12__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getHasBeenDisplayedOperandAction_1_1_0_0_12_0()); }
+ ()
+ { after(grammarAccess.getCOperationFeatureCallAccess().getHasBeenDisplayedOperandAction_1_1_0_0_12_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_12__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_12__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_12__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getOpHasBeenDisplayedParserRuleCall_1_1_0_0_12_1()); }
+ ruleOpHasBeenDisplayed
+ { after(grammarAccess.getCOperationFeatureCallAccess().getOpHasBeenDisplayedParserRuleCall_1_1_0_0_12_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COperationFeatureCall__Group_1_1_0_0_13__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_13__0__Impl
+ rule__COperationFeatureCall__Group_1_1_0_0_13__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_13__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getActiveStateOperandAction_1_1_0_0_13_0()); }
+ ()
+ { after(grammarAccess.getCOperationFeatureCallAccess().getActiveStateOperandAction_1_1_0_0_13_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_13__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_13__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_13__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getOpActiveStateParserRuleCall_1_1_0_0_13_1()); }
+ ruleOpActiveState
+ { after(grammarAccess.getCOperationFeatureCallAccess().getOpActiveStateParserRuleCall_1_1_0_0_13_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COperationFeatureCall__Group_1_1_0_0_14__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_14__0__Impl
+ rule__COperationFeatureCall__Group_1_1_0_0_14__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_14__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getIsDisplayedOperandAction_1_1_0_0_14_0()); }
+ ()
+ { after(grammarAccess.getCOperationFeatureCallAccess().getIsDisplayedOperandAction_1_1_0_0_14_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_14__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_14__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_14__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getOpIsDisplayedParserRuleCall_1_1_0_0_14_1()); }
+ ruleOpIsDisplayed
+ { after(grammarAccess.getCOperationFeatureCallAccess().getOpIsDisplayedParserRuleCall_1_1_0_0_14_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COperationFeatureCall__Group_1_1_0_0_15__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_15__0__Impl
+ rule__COperationFeatureCall__Group_1_1_0_0_15__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_15__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getIsHiddenOperandAction_1_1_0_0_15_0()); }
+ ()
+ { after(grammarAccess.getCOperationFeatureCallAccess().getIsHiddenOperandAction_1_1_0_0_15_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_15__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_15__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_15__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getOpIsHiddenParserRuleCall_1_1_0_0_15_1()); }
+ ruleOpIsHidden
+ { after(grammarAccess.getCOperationFeatureCallAccess().getOpIsHiddenParserRuleCall_1_1_0_0_15_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COperationFeatureCall__Group_1_1_0_0_16__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_16__0__Impl
+ rule__COperationFeatureCall__Group_1_1_0_0_16__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_16__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getDisplayingContentOperandAction_1_1_0_0_16_0()); }
+ ()
+ { after(grammarAccess.getCOperationFeatureCallAccess().getDisplayingContentOperandAction_1_1_0_0_16_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_16__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_16__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_16__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getOpDisplayingContentParserRuleCall_1_1_0_0_16_1()); }
+ ruleOpDisplayingContent
+ { after(grammarAccess.getCOperationFeatureCallAccess().getOpDisplayingContentParserRuleCall_1_1_0_0_16_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COperationFeatureCall__Group_1_1_0_0_17__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_17__0__Impl
+ rule__COperationFeatureCall__Group_1_1_0_0_17__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_17__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getIsVisibleOperandAction_1_1_0_0_17_0()); }
+ ()
+ { after(grammarAccess.getCOperationFeatureCallAccess().getIsVisibleOperandAction_1_1_0_0_17_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_17__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_17__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_17__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getOpIsVisibleParserRuleCall_1_1_0_0_17_1()); }
+ ruleOpIsVisible
+ { after(grammarAccess.getCOperationFeatureCallAccess().getOpIsVisibleParserRuleCall_1_1_0_0_17_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COperationFeatureCall__Group_1_1_0_0_18__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_18__0__Impl
+ rule__COperationFeatureCall__Group_1_1_0_0_18__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_18__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getIsOutputtedOperandAction_1_1_0_0_18_0()); }
+ ()
+ { after(grammarAccess.getCOperationFeatureCallAccess().getIsOutputtedOperandAction_1_1_0_0_18_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_18__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_18__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_18__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getOpIsOutputtedParserRuleCall_1_1_0_0_18_1()); }
+ ruleOpIsOutputted
+ { after(grammarAccess.getCOperationFeatureCallAccess().getOpIsOutputtedParserRuleCall_1_1_0_0_18_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COperationFeatureCall__Group_1_1_0_0_19__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_19__0__Impl
+ rule__COperationFeatureCall__Group_1_1_0_0_19__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_19__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getIsMutedOperandAction_1_1_0_0_19_0()); }
+ ()
+ { after(grammarAccess.getCOperationFeatureCallAccess().getIsMutedOperandAction_1_1_0_0_19_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_19__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_19__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_19__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getOpIsMutedParserRuleCall_1_1_0_0_19_1()); }
+ ruleOpIsMuted
+ { after(grammarAccess.getCOperationFeatureCallAccess().getOpIsMutedParserRuleCall_1_1_0_0_19_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COperationFeatureCall__Group_1_1_0_0_20__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_20__0__Impl
+ rule__COperationFeatureCall__Group_1_1_0_0_20__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_20__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getOutputtingSoundOperandAction_1_1_0_0_20_0()); }
+ ()
+ { after(grammarAccess.getCOperationFeatureCallAccess().getOutputtingSoundOperandAction_1_1_0_0_20_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_20__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_20__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_20__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getOpOutputtingSoundParserRuleCall_1_1_0_0_20_1()); }
+ ruleOpOutputtingSound
+ { after(grammarAccess.getCOperationFeatureCallAccess().getOpOutputtingSoundParserRuleCall_1_1_0_0_20_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COperationFeatureCall__Group_1_1_0_0_21__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_21__0__Impl
+ rule__COperationFeatureCall__Group_1_1_0_0_21__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_21__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getIsSoundingOperandAction_1_1_0_0_21_0()); }
+ ()
+ { after(grammarAccess.getCOperationFeatureCallAccess().getIsSoundingOperandAction_1_1_0_0_21_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_21__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_21__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_21__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getOpIsSoundingParserRuleCall_1_1_0_0_21_1()); }
+ ruleOpIsSounding
+ { after(grammarAccess.getCOperationFeatureCallAccess().getOpIsSoundingParserRuleCall_1_1_0_0_21_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COperationFeatureCall__Group_1_1_0_0_22__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_22__0__Impl
+ rule__COperationFeatureCall__Group_1_1_0_0_22__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_22__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getIsAllocatedToOperandAction_1_1_0_0_22_0()); }
+ ()
+ { after(grammarAccess.getCOperationFeatureCallAccess().getIsAllocatedToOperandAction_1_1_0_0_22_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_22__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_22__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_22__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getOpIsAllocatedToParserRuleCall_1_1_0_0_22_1()); }
+ ruleOpIsAllocatedTo
+ { after(grammarAccess.getCOperationFeatureCallAccess().getOpIsAllocatedToParserRuleCall_1_1_0_0_22_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COperationFeatureCall__Group_1_1_0_0_23__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_23__0__Impl
+ rule__COperationFeatureCall__Group_1_1_0_0_23__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_23__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getIsChangedOperandAction_1_1_0_0_23_0()); }
+ ()
+ { after(grammarAccess.getCOperationFeatureCallAccess().getIsChangedOperandAction_1_1_0_0_23_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_23__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_23__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_23__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getOpIsChangedParserRuleCall_1_1_0_0_23_1()); }
+ ruleOpIsChanged
+ { after(grammarAccess.getCOperationFeatureCallAccess().getOpIsChangedParserRuleCall_1_1_0_0_23_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COperationFeatureCall__Group_1_1_0_0_24__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_24__0__Impl
+ rule__COperationFeatureCall__Group_1_1_0_0_24__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_24__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getIsTranslatedToOperandAction_1_1_0_0_24_0()); }
+ ()
+ { after(grammarAccess.getCOperationFeatureCallAccess().getIsTranslatedToOperandAction_1_1_0_0_24_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_24__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_24__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_24__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getOpIsTranslatedToParserRuleCall_1_1_0_0_24_1()); }
+ ruleOpIsTranslatedTo
+ { after(grammarAccess.getCOperationFeatureCallAccess().getOpIsTranslatedToParserRuleCall_1_1_0_0_24_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COperationFeatureCall__Group_1_1_0_0_25__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_25__0__Impl
+ rule__COperationFeatureCall__Group_1_1_0_0_25__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_25__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getIsDisplayedOnOperandAction_1_1_0_0_25_0()); }
+ ()
+ { after(grammarAccess.getCOperationFeatureCallAccess().getIsDisplayedOnOperandAction_1_1_0_0_25_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_25__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_25__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_25__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getOpIsDisplayedOnParserRuleCall_1_1_0_0_25_1()); }
+ ruleOpIsDisplayedOn
+ { after(grammarAccess.getCOperationFeatureCallAccess().getOpIsDisplayedOnParserRuleCall_1_1_0_0_25_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COperationFeatureCall__Group_1_1_0_0_26__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_26__0__Impl
+ rule__COperationFeatureCall__Group_1_1_0_0_26__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_26__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getIsChangedDisplayOperandAction_1_1_0_0_26_0()); }
+ ()
+ { after(grammarAccess.getCOperationFeatureCallAccess().getIsChangedDisplayOperandAction_1_1_0_0_26_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_26__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_26__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_26__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getOpIsChangedDisplayParserRuleCall_1_1_0_0_26_1()); }
+ ruleOpIsChangedDisplay
+ { after(grammarAccess.getCOperationFeatureCallAccess().getOpIsChangedDisplayParserRuleCall_1_1_0_0_26_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COperationFeatureCall__Group_1_1_0_0_27__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_27__0__Impl
+ rule__COperationFeatureCall__Group_1_1_0_0_27__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_27__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getIsTranslatedViewToOperandAction_1_1_0_0_27_0()); }
+ ()
+ { after(grammarAccess.getCOperationFeatureCallAccess().getIsTranslatedViewToOperandAction_1_1_0_0_27_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_27__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_27__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_27__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getOpIsTranslatedViewToParserRuleCall_1_1_0_0_27_1()); }
+ ruleOpIsTranslatedViewTo
+ { after(grammarAccess.getCOperationFeatureCallAccess().getOpIsTranslatedViewToParserRuleCall_1_1_0_0_27_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COperationFeatureCall__Group_1_1_0_0_28__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_28__0__Impl
+ rule__COperationFeatureCall__Group_1_1_0_0_28__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_28__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getIsOutputtedOnOperandAction_1_1_0_0_28_0()); }
+ ()
+ { after(grammarAccess.getCOperationFeatureCallAccess().getIsOutputtedOnOperandAction_1_1_0_0_28_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_28__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_28__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_28__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getOpIsOutputtedOnParserRuleCall_1_1_0_0_28_1()); }
+ ruleOpIsOutputtedOn
+ { after(grammarAccess.getCOperationFeatureCallAccess().getOpIsOutputtedOnParserRuleCall_1_1_0_0_28_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COperationFeatureCall__Group_1_1_0_0_29__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_29__0__Impl
+ rule__COperationFeatureCall__Group_1_1_0_0_29__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_29__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getIsChangedOutputOperandAction_1_1_0_0_29_0()); }
+ ()
+ { after(grammarAccess.getCOperationFeatureCallAccess().getIsChangedOutputOperandAction_1_1_0_0_29_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_29__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_29__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_29__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getOpIsChangedOutputParserRuleCall_1_1_0_0_29_1()); }
+ ruleOpIsChangedOutput
+ { after(grammarAccess.getCOperationFeatureCallAccess().getOpIsChangedOutputParserRuleCall_1_1_0_0_29_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COperationFeatureCall__Group_1_1_0_0_30__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_30__0__Impl
+ rule__COperationFeatureCall__Group_1_1_0_0_30__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_30__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getIsTranslatedSoundToOperandAction_1_1_0_0_30_0()); }
+ ()
+ { after(grammarAccess.getCOperationFeatureCallAccess().getIsTranslatedSoundToOperandAction_1_1_0_0_30_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_30__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_30__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_30__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getOpIsTranslatedSoundToParserRuleCall_1_1_0_0_30_1()); }
+ ruleOpIsTranslatedSoundTo
+ { after(grammarAccess.getCOperationFeatureCallAccess().getOpIsTranslatedSoundToParserRuleCall_1_1_0_0_30_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COperationFeatureCall__Group_1_1_0_0_31__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_31__0__Impl
+ rule__COperationFeatureCall__Group_1_1_0_0_31__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_31__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getIsAttenuatedOperandAction_1_1_0_0_31_0()); }
+ ()
+ { after(grammarAccess.getCOperationFeatureCallAccess().getIsAttenuatedOperandAction_1_1_0_0_31_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_31__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_0_31__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_0_31__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getOpIsAttenuatedParserRuleCall_1_1_0_0_31_1()); }
+ ruleOpIsAttenuated
+ { after(grammarAccess.getCOperationFeatureCallAccess().getOpIsAttenuatedParserRuleCall_1_1_0_0_31_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COperationFeatureCall__Group_1_1_0_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_1__0__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_1_0()); }
+ (rule__COperationFeatureCall__Group_1_1_0_1_0__0)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COperationFeatureCall__Group_1_1_0_1_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_1_0__0__Impl
+ rule__COperationFeatureCall__Group_1_1_0_1_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_1_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getLeftParenthesisKeyword_1_1_0_1_0_0()); }
+ '('
+ { after(grammarAccess.getCOperationFeatureCallAccess().getLeftParenthesisKeyword_1_1_0_1_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_1_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_1_0__1__Impl
+ rule__COperationFeatureCall__Group_1_1_0_1_0__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_1_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getOperandAssignment_1_1_0_1_0_1()); }
+ (rule__COperationFeatureCall__OperandAssignment_1_1_0_1_0_1)?
+ { after(grammarAccess.getCOperationFeatureCallAccess().getOperandAssignment_1_1_0_1_0_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_1_0__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_0_1_0__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_0_1_0__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getRightParenthesisKeyword_1_1_0_1_0_2()); }
+ ')'
+ { after(grammarAccess.getCOperationFeatureCallAccess().getRightParenthesisKeyword_1_1_0_1_0_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COperationFeatureCall__Group_1_1_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_1__0__Impl
+ rule__COperationFeatureCall__Group_1_1_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_1_0()); }
+ (rule__COperationFeatureCall__Group_1_1_1_0__0)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_1_1()); }
+ (rule__COperationFeatureCall__Group_1_1_1_1__0)?
+ { after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COperationFeatureCall__Group_1_1_1_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_1_0__0__Impl
+ rule__COperationFeatureCall__Group_1_1_1_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_1_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getIsTypeOfOperandAction_1_1_1_0_0()); }
+ ()
+ { after(grammarAccess.getCOperationFeatureCallAccess().getIsTypeOfOperandAction_1_1_1_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_1_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_1_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_1_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getOpIsTypeOfParserRuleCall_1_1_1_0_1()); }
+ ruleOpIsTypeOf
+ { after(grammarAccess.getCOperationFeatureCallAccess().getOpIsTypeOfParserRuleCall_1_1_1_0_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COperationFeatureCall__Group_1_1_1_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_1_1__0__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_1_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_1_1_0()); }
+ (rule__COperationFeatureCall__Group_1_1_1_1_0__0)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_1_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COperationFeatureCall__Group_1_1_1_1_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_1_1_0__0__Impl
+ rule__COperationFeatureCall__Group_1_1_1_1_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_1_1_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getLeftParenthesisKeyword_1_1_1_1_0_0()); }
+ '('
+ { after(grammarAccess.getCOperationFeatureCallAccess().getLeftParenthesisKeyword_1_1_1_1_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_1_1_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_1_1_0__1__Impl
+ rule__COperationFeatureCall__Group_1_1_1_1_0__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_1_1_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getTagNameAssignment_1_1_1_1_0_1()); }
+ (rule__COperationFeatureCall__TagNameAssignment_1_1_1_1_0_1)?
+ { after(grammarAccess.getCOperationFeatureCallAccess().getTagNameAssignment_1_1_1_1_0_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_1_1_0__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_1_1_0__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_1_1_0__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getRightParenthesisKeyword_1_1_1_1_0_2()); }
+ ')'
+ { after(grammarAccess.getCOperationFeatureCallAccess().getRightParenthesisKeyword_1_1_1_1_0_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COperationFeatureCall__Group_1_1_2_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_2_0__0__Impl
+ rule__COperationFeatureCall__Group_1_1_2_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_2_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getMaxOperatorOperandAction_1_1_2_0_0()); }
+ ()
+ { after(grammarAccess.getCOperationFeatureCallAccess().getMaxOperatorOperandAction_1_1_2_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_2_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_2_0__1__Impl
+ rule__COperationFeatureCall__Group_1_1_2_0__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_2_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getOpMaxOperatorParserRuleCall_1_1_2_0_1()); }
+ ruleOpMaxOperator
+ { after(grammarAccess.getCOperationFeatureCallAccess().getOpMaxOperatorParserRuleCall_1_1_2_0_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_2_0__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_2_0__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_2_0__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getLambdaAssignment_1_1_2_0_2()); }
+ (rule__COperationFeatureCall__LambdaAssignment_1_1_2_0_2)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getLambdaAssignment_1_1_2_0_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COperationFeatureCall__Group_1_1_2_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_2_1__0__Impl
+ rule__COperationFeatureCall__Group_1_1_2_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_2_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getMinOperatorOperandAction_1_1_2_1_0()); }
+ ()
+ { after(grammarAccess.getCOperationFeatureCallAccess().getMinOperatorOperandAction_1_1_2_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_2_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_2_1__1__Impl
+ rule__COperationFeatureCall__Group_1_1_2_1__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_2_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getOpMinOperatorParserRuleCall_1_1_2_1_1()); }
+ ruleOpMinOperator
+ { after(grammarAccess.getCOperationFeatureCallAccess().getOpMinOperatorParserRuleCall_1_1_2_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_2_1__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_2_1__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_2_1__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getLambdaAssignment_1_1_2_1_2()); }
+ (rule__COperationFeatureCall__LambdaAssignment_1_1_2_1_2)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getLambdaAssignment_1_1_2_1_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__COperationFeatureCall__Group_1_1_2_2__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_2_2__0__Impl
+ rule__COperationFeatureCall__Group_1_1_2_2__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_2_2__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getSelectOperatorOperandAction_1_1_2_2_0()); }
+ ()
+ { after(grammarAccess.getCOperationFeatureCallAccess().getSelectOperatorOperandAction_1_1_2_2_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_2_2__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_2_2__1__Impl
+ rule__COperationFeatureCall__Group_1_1_2_2__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_2_2__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getOpSelectOperatorParserRuleCall_1_1_2_2_1()); }
+ ruleOpSelectOperator
+ { after(grammarAccess.getCOperationFeatureCallAccess().getOpSelectOperatorParserRuleCall_1_1_2_2_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_2_2__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__COperationFeatureCall__Group_1_1_2_2__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__Group_1_1_2_2__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCOperationFeatureCallAccess().getLambdaAssignment_1_1_2_2_2()); }
+ (rule__COperationFeatureCall__LambdaAssignment_1_1_2_2_2)
+ { after(grammarAccess.getCOperationFeatureCallAccess().getLambdaAssignment_1_1_2_2_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__CPrimaryExpression__Group_11__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CPrimaryExpression__Group_11__0__Impl
+ rule__CPrimaryExpression__Group_11__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CPrimaryExpression__Group_11__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCPrimaryExpressionAccess().getLeftParenthesisKeyword_11_0()); }
+ '('
+ { after(grammarAccess.getCPrimaryExpressionAccess().getLeftParenthesisKeyword_11_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CPrimaryExpression__Group_11__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CPrimaryExpression__Group_11__1__Impl
+ rule__CPrimaryExpression__Group_11__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CPrimaryExpression__Group_11__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCPrimaryExpressionAccess().getCExpressionParserRuleCall_11_1()); }
+ ruleCExpression
+ { after(grammarAccess.getCPrimaryExpressionAccess().getCExpressionParserRuleCall_11_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CPrimaryExpression__Group_11__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CPrimaryExpression__Group_11__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CPrimaryExpression__Group_11__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCPrimaryExpressionAccess().getRightParenthesisKeyword_11_2()); }
+ ')'
+ { after(grammarAccess.getCPrimaryExpressionAccess().getRightParenthesisKeyword_11_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__AllInstanceOfExpression__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__AllInstanceOfExpression__Group__0__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AllInstanceOfExpression__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getAllInstanceOfExpressionAccess().getAlternatives_0()); }
+ (rule__AllInstanceOfExpression__Alternatives_0)
+ { after(grammarAccess.getAllInstanceOfExpressionAccess().getAlternatives_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__AllInstanceOfExpression__Group_0_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__AllInstanceOfExpression__Group_0_0__0__Impl
+ rule__AllInstanceOfExpression__Group_0_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AllInstanceOfExpression__Group_0_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getAllInstanceOfExpressionAccess().getAllInstanceOfAreaAction_0_0_0()); }
+ ()
+ { after(grammarAccess.getAllInstanceOfExpressionAccess().getAllInstanceOfAreaAction_0_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AllInstanceOfExpression__Group_0_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__AllInstanceOfExpression__Group_0_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AllInstanceOfExpression__Group_0_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getAllInstanceOfExpressionAccess().getALL_AREASKeyword_0_0_1()); }
+ 'ALL_AREAS'
+ { after(grammarAccess.getAllInstanceOfExpressionAccess().getALL_AREASKeyword_0_0_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__AllInstanceOfExpression__Group_0_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__AllInstanceOfExpression__Group_0_1__0__Impl
+ rule__AllInstanceOfExpression__Group_0_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AllInstanceOfExpression__Group_0_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getAllInstanceOfExpressionAccess().getAllInstanceOfViewContentAction_0_1_0()); }
+ ()
+ { after(grammarAccess.getAllInstanceOfExpressionAccess().getAllInstanceOfViewContentAction_0_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AllInstanceOfExpression__Group_0_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__AllInstanceOfExpression__Group_0_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AllInstanceOfExpression__Group_0_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getAllInstanceOfExpressionAccess().getALL_VIEWCONTENTSKeyword_0_1_1()); }
+ 'ALL_VIEWCONTENTS'
+ { after(grammarAccess.getAllInstanceOfExpressionAccess().getALL_VIEWCONTENTSKeyword_0_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__AllInstanceOfExpression__Group_0_2__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__AllInstanceOfExpression__Group_0_2__0__Impl
+ rule__AllInstanceOfExpression__Group_0_2__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AllInstanceOfExpression__Group_0_2__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getAllInstanceOfExpressionAccess().getAllInstanceOfZoneAction_0_2_0()); }
+ ()
+ { after(grammarAccess.getAllInstanceOfExpressionAccess().getAllInstanceOfZoneAction_0_2_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AllInstanceOfExpression__Group_0_2__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__AllInstanceOfExpression__Group_0_2__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AllInstanceOfExpression__Group_0_2__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getAllInstanceOfExpressionAccess().getALL_ZONESKeyword_0_2_1()); }
+ 'ALL_ZONES'
+ { after(grammarAccess.getAllInstanceOfExpressionAccess().getALL_ZONESKeyword_0_2_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__AllInstanceOfExpression__Group_0_3__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__AllInstanceOfExpression__Group_0_3__0__Impl
+ rule__AllInstanceOfExpression__Group_0_3__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AllInstanceOfExpression__Group_0_3__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getAllInstanceOfExpressionAccess().getAllInstanceOfSoundContentAction_0_3_0()); }
+ ()
+ { after(grammarAccess.getAllInstanceOfExpressionAccess().getAllInstanceOfSoundContentAction_0_3_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AllInstanceOfExpression__Group_0_3__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__AllInstanceOfExpression__Group_0_3__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AllInstanceOfExpression__Group_0_3__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getAllInstanceOfExpressionAccess().getALL_SOUNDCONTENTSKeyword_0_3_1()); }
+ 'ALL_SOUNDCONTENTS'
+ { after(grammarAccess.getAllInstanceOfExpressionAccess().getALL_SOUNDCONTENTSKeyword_0_3_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__NullExpression__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__NullExpression__Group__0__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__NullExpression__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getNullExpressionAccess().getGroup_0()); }
+ (rule__NullExpression__Group_0__0)
+ { after(grammarAccess.getNullExpressionAccess().getGroup_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__NullExpression__Group_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__NullExpression__Group_0__0__Impl
+ rule__NullExpression__Group_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__NullExpression__Group_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getNullExpressionAccess().getNullExpressionAction_0_0()); }
+ ()
+ { after(grammarAccess.getNullExpressionAccess().getNullExpressionAction_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__NullExpression__Group_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__NullExpression__Group_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__NullExpression__Group_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getNullExpressionAccess().getNULLKeyword_0_1()); }
+ 'NULL'
+ { after(grammarAccess.getNullExpressionAccess().getNULLKeyword_0_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__PreviousModifier__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__PreviousModifier__Group__0__Impl
+ rule__PreviousModifier__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PreviousModifier__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getPreviousModifierAccess().getPreviousModifierAction_0()); }
+ ()
+ { after(grammarAccess.getPreviousModifierAccess().getPreviousModifierAction_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PreviousModifier__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__PreviousModifier__Group__1__Impl
+ rule__PreviousModifier__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PreviousModifier__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getPreviousModifierAccess().getPreKeyword_1()); }
+ '(pre)'
+ { after(grammarAccess.getPreviousModifierAccess().getPreKeyword_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PreviousModifier__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__PreviousModifier__Group__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PreviousModifier__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getPreviousModifierAccess().getObjReferenceAssignment_2()); }
+ (rule__PreviousModifier__ObjReferenceAssignment_2)
+ { after(grammarAccess.getPreviousModifierAccess().getObjReferenceAssignment_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__HideLowerPriority__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__HideLowerPriority__Group__0__Impl
+ rule__HideLowerPriority__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__HideLowerPriority__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getHideLowerPriorityAccess().getHideLowerPriorityAction_0()); }
+ ()
+ { after(grammarAccess.getHideLowerPriorityAccess().getHideLowerPriorityAction_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__HideLowerPriority__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__HideLowerPriority__Group__1__Impl
+ rule__HideLowerPriority__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__HideLowerPriority__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getHideLowerPriorityAccess().getHideLowerPriorityKeyword_1()); }
+ 'HideLowerPriority'
+ { after(grammarAccess.getHideLowerPriorityAccess().getHideLowerPriorityKeyword_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__HideLowerPriority__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__HideLowerPriority__Group__2__Impl
+ rule__HideLowerPriority__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__HideLowerPriority__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getHideLowerPriorityAccess().getLeftParenthesisKeyword_2()); }
+ '('
+ { after(grammarAccess.getHideLowerPriorityAccess().getLeftParenthesisKeyword_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__HideLowerPriority__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__HideLowerPriority__Group__3__Impl
+ rule__HideLowerPriority__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__HideLowerPriority__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getHideLowerPriorityAccess().getOperandAssignment_3()); }
+ (rule__HideLowerPriority__OperandAssignment_3)
+ { after(grammarAccess.getHideLowerPriorityAccess().getOperandAssignment_3()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__HideLowerPriority__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__HideLowerPriority__Group__4__Impl
+ rule__HideLowerPriority__Group__5
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__HideLowerPriority__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getHideLowerPriorityAccess().getCommaKeyword_4()); }
+ ','
+ { after(grammarAccess.getHideLowerPriorityAccess().getCommaKeyword_4()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__HideLowerPriority__Group__5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__HideLowerPriority__Group__5__Impl
+ rule__HideLowerPriority__Group__6
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__HideLowerPriority__Group__5__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getHideLowerPriorityAccess().getOperandAssignment_5()); }
+ (rule__HideLowerPriority__OperandAssignment_5)
+ { after(grammarAccess.getHideLowerPriorityAccess().getOperandAssignment_5()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__HideLowerPriority__Group__6
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__HideLowerPriority__Group__6__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__HideLowerPriority__Group__6__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getHideLowerPriorityAccess().getRightParenthesisKeyword_6()); }
+ ')'
+ { after(grammarAccess.getHideLowerPriorityAccess().getRightParenthesisKeyword_6()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__MuteLowerPriority__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__MuteLowerPriority__Group__0__Impl
+ rule__MuteLowerPriority__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__MuteLowerPriority__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getMuteLowerPriorityAccess().getMuteLowerPriorityAction_0()); }
+ ()
+ { after(grammarAccess.getMuteLowerPriorityAccess().getMuteLowerPriorityAction_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__MuteLowerPriority__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__MuteLowerPriority__Group__1__Impl
+ rule__MuteLowerPriority__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__MuteLowerPriority__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getMuteLowerPriorityAccess().getMuteLowerPriorityKeyword_1()); }
+ 'MuteLowerPriority'
+ { after(grammarAccess.getMuteLowerPriorityAccess().getMuteLowerPriorityKeyword_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__MuteLowerPriority__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__MuteLowerPriority__Group__2__Impl
+ rule__MuteLowerPriority__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__MuteLowerPriority__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getMuteLowerPriorityAccess().getLeftParenthesisKeyword_2()); }
+ '('
+ { after(grammarAccess.getMuteLowerPriorityAccess().getLeftParenthesisKeyword_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__MuteLowerPriority__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__MuteLowerPriority__Group__3__Impl
+ rule__MuteLowerPriority__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__MuteLowerPriority__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getMuteLowerPriorityAccess().getOperandAssignment_3()); }
+ (rule__MuteLowerPriority__OperandAssignment_3)
+ { after(grammarAccess.getMuteLowerPriorityAccess().getOperandAssignment_3()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__MuteLowerPriority__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__MuteLowerPriority__Group__4__Impl
+ rule__MuteLowerPriority__Group__5
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__MuteLowerPriority__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getMuteLowerPriorityAccess().getCommaKeyword_4()); }
+ ','
+ { after(grammarAccess.getMuteLowerPriorityAccess().getCommaKeyword_4()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__MuteLowerPriority__Group__5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__MuteLowerPriority__Group__5__Impl
+ rule__MuteLowerPriority__Group__6
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__MuteLowerPriority__Group__5__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getMuteLowerPriorityAccess().getOperandAssignment_5()); }
+ (rule__MuteLowerPriority__OperandAssignment_5)
+ { after(grammarAccess.getMuteLowerPriorityAccess().getOperandAssignment_5()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__MuteLowerPriority__Group__6
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__MuteLowerPriority__Group__6__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__MuteLowerPriority__Group__6__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getMuteLowerPriorityAccess().getRightParenthesisKeyword_6()); }
+ ')'
+ { after(grammarAccess.getMuteLowerPriorityAccess().getRightParenthesisKeyword_6()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__SetOfOperator__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SetOfOperator__Group__0__Impl
+ rule__SetOfOperator__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SetOfOperator__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSetOfOperatorAccess().getSetOfOperatorAction_0()); }
+ ()
+ { after(grammarAccess.getSetOfOperatorAccess().getSetOfOperatorAction_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SetOfOperator__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SetOfOperator__Group__1__Impl
+ rule__SetOfOperator__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SetOfOperator__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSetOfOperatorAccess().getLeftCurlyBracketKeyword_1()); }
+ '{'
+ { after(grammarAccess.getSetOfOperatorAccess().getLeftCurlyBracketKeyword_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SetOfOperator__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SetOfOperator__Group__2__Impl
+ rule__SetOfOperator__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SetOfOperator__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSetOfOperatorAccess().getGroup_2()); }
+ (rule__SetOfOperator__Group_2__0)?
+ { after(grammarAccess.getSetOfOperatorAccess().getGroup_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SetOfOperator__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SetOfOperator__Group__3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SetOfOperator__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSetOfOperatorAccess().getRightCurlyBracketKeyword_3()); }
+ '}'
+ { after(grammarAccess.getSetOfOperatorAccess().getRightCurlyBracketKeyword_3()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__SetOfOperator__Group_2__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SetOfOperator__Group_2__0__Impl
+ rule__SetOfOperator__Group_2__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SetOfOperator__Group_2__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSetOfOperatorAccess().getOperandAssignment_2_0()); }
+ (rule__SetOfOperator__OperandAssignment_2_0)
+ { after(grammarAccess.getSetOfOperatorAccess().getOperandAssignment_2_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SetOfOperator__Group_2__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SetOfOperator__Group_2__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SetOfOperator__Group_2__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSetOfOperatorAccess().getGroup_2_1()); }
+ (rule__SetOfOperator__Group_2_1__0)*
+ { after(grammarAccess.getSetOfOperatorAccess().getGroup_2_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__SetOfOperator__Group_2_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SetOfOperator__Group_2_1__0__Impl
+ rule__SetOfOperator__Group_2_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SetOfOperator__Group_2_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSetOfOperatorAccess().getCommaKeyword_2_1_0()); }
+ ','
+ { after(grammarAccess.getSetOfOperatorAccess().getCommaKeyword_2_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SetOfOperator__Group_2_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SetOfOperator__Group_2_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SetOfOperator__Group_2_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSetOfOperatorAccess().getOperandAssignment_2_1_1()); }
+ (rule__SetOfOperator__OperandAssignment_2_1_1)
+ { after(grammarAccess.getSetOfOperatorAccess().getOperandAssignment_2_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__IfStatement__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__IfStatement__Group__0__Impl
+ rule__IfStatement__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__IfStatement__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getIfStatementAccess().getIfStatementAction_0()); }
+ ()
+ { after(grammarAccess.getIfStatementAccess().getIfStatementAction_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__IfStatement__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__IfStatement__Group__1__Impl
+ rule__IfStatement__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__IfStatement__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getIfStatementAccess().getIFKeyword_1()); }
+ 'IF'
+ { after(grammarAccess.getIfStatementAccess().getIFKeyword_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__IfStatement__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__IfStatement__Group__2__Impl
+ rule__IfStatement__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__IfStatement__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getIfStatementAccess().getLeftParenthesisKeyword_2()); }
+ '('
+ { after(grammarAccess.getIfStatementAccess().getLeftParenthesisKeyword_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__IfStatement__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__IfStatement__Group__3__Impl
+ rule__IfStatement__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__IfStatement__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getIfStatementAccess().getConditionAssignment_3()); }
+ (rule__IfStatement__ConditionAssignment_3)?
+ { after(grammarAccess.getIfStatementAccess().getConditionAssignment_3()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__IfStatement__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__IfStatement__Group__4__Impl
+ rule__IfStatement__Group__5
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__IfStatement__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getIfStatementAccess().getRightParenthesisKeyword_4()); }
+ ')'
+ { after(grammarAccess.getIfStatementAccess().getRightParenthesisKeyword_4()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__IfStatement__Group__5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__IfStatement__Group__5__Impl
+ rule__IfStatement__Group__6
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__IfStatement__Group__5__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getIfStatementAccess().getGroup_5()); }
+ (rule__IfStatement__Group_5__0)?
+ { after(grammarAccess.getIfStatementAccess().getGroup_5()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__IfStatement__Group__6
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__IfStatement__Group__6__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__IfStatement__Group__6__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getIfStatementAccess().getGroup_6()); }
+ (rule__IfStatement__Group_6__0)?
+ { after(grammarAccess.getIfStatementAccess().getGroup_6()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__IfStatement__Group_5__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__IfStatement__Group_5__0__Impl
+ rule__IfStatement__Group_5__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__IfStatement__Group_5__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getIfStatementAccess().getTHENKeyword_5_0()); }
+ ('THEN')
+ { after(grammarAccess.getIfStatementAccess().getTHENKeyword_5_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__IfStatement__Group_5__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__IfStatement__Group_5__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__IfStatement__Group_5__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getIfStatementAccess().getThenExpressionAssignment_5_1()); }
+ (rule__IfStatement__ThenExpressionAssignment_5_1)
+ { after(grammarAccess.getIfStatementAccess().getThenExpressionAssignment_5_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__IfStatement__Group_6__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__IfStatement__Group_6__0__Impl
+ rule__IfStatement__Group_6__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__IfStatement__Group_6__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getIfStatementAccess().getELSEKeyword_6_0()); }
+ ('ELSE')
+ { after(grammarAccess.getIfStatementAccess().getELSEKeyword_6_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__IfStatement__Group_6__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__IfStatement__Group_6__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__IfStatement__Group_6__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getIfStatementAccess().getElseExpressionAssignment_6_1()); }
+ (rule__IfStatement__ElseExpressionAssignment_6_1)
+ { after(grammarAccess.getIfStatementAccess().getElseExpressionAssignment_6_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ForAllOperator__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ForAllOperator__Group__0__Impl
+ rule__ForAllOperator__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ForAllOperator__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getForAllOperatorAccess().getForAllOperatorAction_0()); }
+ ()
+ { after(grammarAccess.getForAllOperatorAccess().getForAllOperatorAction_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ForAllOperator__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ForAllOperator__Group__1__Impl
+ rule__ForAllOperator__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ForAllOperator__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getForAllOperatorAccess().getForAllKeyword_1()); }
+ 'For-All'
+ { after(grammarAccess.getForAllOperatorAccess().getForAllKeyword_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ForAllOperator__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ForAllOperator__Group__2__Impl
+ rule__ForAllOperator__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ForAllOperator__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getForAllOperatorAccess().getOperandAssignment_2()); }
+ (rule__ForAllOperator__OperandAssignment_2)
+ { after(grammarAccess.getForAllOperatorAccess().getOperandAssignment_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ForAllOperator__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ForAllOperator__Group__3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ForAllOperator__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getForAllOperatorAccess().getLambdaAssignment_3()); }
+ (rule__ForAllOperator__LambdaAssignment_3)
+ { after(grammarAccess.getForAllOperatorAccess().getLambdaAssignment_3()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ExistsOperator__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ExistsOperator__Group__0__Impl
+ rule__ExistsOperator__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ExistsOperator__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getExistsOperatorAccess().getExistsOperatorAction_0()); }
+ ()
+ { after(grammarAccess.getExistsOperatorAccess().getExistsOperatorAction_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ExistsOperator__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ExistsOperator__Group__1__Impl
+ rule__ExistsOperator__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ExistsOperator__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getExistsOperatorAccess().getExistsKeyword_1()); }
+ 'Exists'
+ { after(grammarAccess.getExistsOperatorAccess().getExistsKeyword_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ExistsOperator__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ExistsOperator__Group__2__Impl
+ rule__ExistsOperator__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ExistsOperator__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getExistsOperatorAccess().getOperandAssignment_2()); }
+ (rule__ExistsOperator__OperandAssignment_2)
+ { after(grammarAccess.getExistsOperatorAccess().getOperandAssignment_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ExistsOperator__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ExistsOperator__Group__3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ExistsOperator__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getExistsOperatorAccess().getLambdaAssignment_3()); }
+ (rule__ExistsOperator__LambdaAssignment_3)
+ { after(grammarAccess.getExistsOperatorAccess().getLambdaAssignment_3()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__LambdaExpression__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__LambdaExpression__Group__0__Impl
+ rule__LambdaExpression__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LambdaExpression__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getLambdaExpressionAccess().getGroup_0()); }
+ (rule__LambdaExpression__Group_0__0)
+ { after(grammarAccess.getLambdaExpressionAccess().getGroup_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LambdaExpression__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__LambdaExpression__Group__1__Impl
+ rule__LambdaExpression__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LambdaExpression__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getLambdaExpressionAccess().getGroup_1()); }
+ (rule__LambdaExpression__Group_1__0)?
+ { after(grammarAccess.getLambdaExpressionAccess().getGroup_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LambdaExpression__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__LambdaExpression__Group__2__Impl
+ rule__LambdaExpression__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LambdaExpression__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getLambdaExpressionAccess().getLetStatementsAssignment_2()); }
+ (rule__LambdaExpression__LetStatementsAssignment_2)*
+ { after(grammarAccess.getLambdaExpressionAccess().getLetStatementsAssignment_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LambdaExpression__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__LambdaExpression__Group__3__Impl
+ rule__LambdaExpression__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LambdaExpression__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getLambdaExpressionAccess().getBodyTextAssignment_3()); }
+ (rule__LambdaExpression__BodyTextAssignment_3)
+ { after(grammarAccess.getLambdaExpressionAccess().getBodyTextAssignment_3()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LambdaExpression__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__LambdaExpression__Group__4__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LambdaExpression__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getLambdaExpressionAccess().getRightCurlyBracketKeyword_4()); }
+ '}'
+ { after(grammarAccess.getLambdaExpressionAccess().getRightCurlyBracketKeyword_4()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__LambdaExpression__Group_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__LambdaExpression__Group_0__0__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LambdaExpression__Group_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getLambdaExpressionAccess().getGroup_0_0()); }
+ (rule__LambdaExpression__Group_0_0__0)
+ { after(grammarAccess.getLambdaExpressionAccess().getGroup_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__LambdaExpression__Group_0_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__LambdaExpression__Group_0_0__0__Impl
+ rule__LambdaExpression__Group_0_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LambdaExpression__Group_0_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getLambdaExpressionAccess().getLambdaExpressionAction_0_0_0()); }
+ ()
+ { after(grammarAccess.getLambdaExpressionAccess().getLambdaExpressionAction_0_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LambdaExpression__Group_0_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__LambdaExpression__Group_0_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LambdaExpression__Group_0_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getLambdaExpressionAccess().getLeftCurlyBracketKeyword_0_0_1()); }
+ '{'
+ { after(grammarAccess.getLambdaExpressionAccess().getLeftCurlyBracketKeyword_0_0_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__LambdaExpression__Group_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__LambdaExpression__Group_1__0__Impl
+ rule__LambdaExpression__Group_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LambdaExpression__Group_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getLambdaExpressionAccess().getXAssignment_1_0()); }
+ (rule__LambdaExpression__XAssignment_1_0)?
+ { after(grammarAccess.getLambdaExpressionAccess().getXAssignment_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LambdaExpression__Group_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__LambdaExpression__Group_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LambdaExpression__Group_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getLambdaExpressionAccess().getVerticalLineKeyword_1_1()); }
+ '|'
+ { after(grammarAccess.getLambdaExpressionAccess().getVerticalLineKeyword_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Variable__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Variable__Group__0__Impl
+ rule__Variable__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Variable__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVariableAccess().getVariableAction_0()); }
+ ()
+ { after(grammarAccess.getVariableAccess().getVariableAction_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Variable__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Variable__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Variable__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVariableAccess().getNameAssignment_1()); }
+ (rule__Variable__NameAssignment_1)
+ { after(grammarAccess.getVariableAccess().getNameAssignment_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__CMemberFeatureReference__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CMemberFeatureReference__Group__0__Impl
+ rule__CMemberFeatureReference__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CMemberFeatureReference__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCMemberFeatureReferenceAccess().getObjectReferenceAction_0()); }
+ ()
+ { after(grammarAccess.getCMemberFeatureReferenceAccess().getObjectReferenceAction_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CMemberFeatureReference__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CMemberFeatureReference__Group__1__Impl
+ rule__CMemberFeatureReference__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CMemberFeatureReference__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCMemberFeatureReferenceAccess().getRefObjectAssignment_1()); }
+ (rule__CMemberFeatureReference__RefObjectAssignment_1)
+ { after(grammarAccess.getCMemberFeatureReferenceAccess().getRefObjectAssignment_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CMemberFeatureReference__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CMemberFeatureReference__Group__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CMemberFeatureReference__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCMemberFeatureReferenceAccess().getGroup_2()); }
+ (rule__CMemberFeatureReference__Group_2__0)*
+ { after(grammarAccess.getCMemberFeatureReferenceAccess().getGroup_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__CMemberFeatureReference__Group_2__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CMemberFeatureReference__Group_2__0__Impl
+ rule__CMemberFeatureReference__Group_2__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CMemberFeatureReference__Group_2__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCMemberFeatureReferenceAccess().getMemberFeatureReferenceOperandAction_2_0()); }
+ ()
+ { after(grammarAccess.getCMemberFeatureReferenceAccess().getMemberFeatureReferenceOperandAction_2_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CMemberFeatureReference__Group_2__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CMemberFeatureReference__Group_2__1__Impl
+ rule__CMemberFeatureReference__Group_2__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CMemberFeatureReference__Group_2__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCMemberFeatureReferenceAccess().getFullStopKeyword_2_1()); }
+ '.'
+ { after(grammarAccess.getCMemberFeatureReferenceAccess().getFullStopKeyword_2_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CMemberFeatureReference__Group_2__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CMemberFeatureReference__Group_2__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CMemberFeatureReference__Group_2__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getCMemberFeatureReferenceAccess().getRefObjectAssignment_2_2()); }
+ (rule__CMemberFeatureReference__RefObjectAssignment_2_2)
+ { after(grammarAccess.getCMemberFeatureReferenceAccess().getRefObjectAssignment_2_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__LetStatement__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__LetStatement__Group__0__Impl
+ rule__LetStatement__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LetStatement__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getLetStatementAccess().getLetStatementAction_0()); }
+ ()
+ { after(grammarAccess.getLetStatementAccess().getLetStatementAction_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LetStatement__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__LetStatement__Group__1__Impl
+ rule__LetStatement__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LetStatement__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getLetStatementAccess().getLetKeyword_1()); }
+ 'let'
+ { after(grammarAccess.getLetStatementAccess().getLetKeyword_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LetStatement__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__LetStatement__Group__2__Impl
+ rule__LetStatement__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LetStatement__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getLetStatementAccess().getVariableAssignment_2()); }
+ (rule__LetStatement__VariableAssignment_2)
+ { after(grammarAccess.getLetStatementAccess().getVariableAssignment_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LetStatement__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__LetStatement__Group__3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LetStatement__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getLetStatementAccess().getGroup_3()); }
+ (rule__LetStatement__Group_3__0)?
+ { after(grammarAccess.getLetStatementAccess().getGroup_3()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__LetStatement__Group_3__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__LetStatement__Group_3__0__Impl
+ rule__LetStatement__Group_3__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LetStatement__Group_3__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getLetStatementAccess().getEqualsSignKeyword_3_0()); }
+ '='
+ { after(grammarAccess.getLetStatementAccess().getEqualsSignKeyword_3_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LetStatement__Group_3__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__LetStatement__Group_3__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LetStatement__Group_3__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getLetStatementAccess().getBodyAssignment_3_1()); }
+ (rule__LetStatement__BodyAssignment_3_1)
+ { after(grammarAccess.getLetStatementAccess().getBodyAssignment_3_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ComplexExpression__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ComplexExpression__Group__0__Impl
+ rule__ComplexExpression__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ComplexExpression__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getComplexExpressionAccess().getComplexExpressionAction_0()); }
+ ()
+ { after(grammarAccess.getComplexExpressionAccess().getComplexExpressionAction_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ComplexExpression__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ComplexExpression__Group__1__Impl
+ rule__ComplexExpression__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ComplexExpression__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getComplexExpressionAccess().getLetStatementsAssignment_1()); }
+ (rule__ComplexExpression__LetStatementsAssignment_1)*
+ { after(grammarAccess.getComplexExpressionAccess().getLetStatementsAssignment_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ComplexExpression__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ComplexExpression__Group__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ComplexExpression__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getComplexExpressionAccess().getOtherExpressionAssignment_2()); }
+ (rule__ComplexExpression__OtherExpressionAssignment_2)
+ { after(grammarAccess.getComplexExpressionAccess().getOtherExpressionAssignment_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__LoserTypeExpression__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__LoserTypeExpression__Group__0__Impl
+ rule__LoserTypeExpression__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LoserTypeExpression__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getLoserTypeExpressionAccess().getLoserTypeExpressionAction_0()); }
+ ()
+ { after(grammarAccess.getLoserTypeExpressionAccess().getLoserTypeExpressionAction_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LoserTypeExpression__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__LoserTypeExpression__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LoserTypeExpression__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getLoserTypeExpressionAccess().getValueAssignment_1()); }
+ (rule__LoserTypeExpression__ValueAssignment_1)
+ { after(grammarAccess.getLoserTypeExpressionAccess().getValueAssignment_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ArbitrationPolicyExpression__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ArbitrationPolicyExpression__Group__0__Impl
+ rule__ArbitrationPolicyExpression__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ArbitrationPolicyExpression__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getArbitrationPolicyExpressionAccess().getArbitrationPolicyExpressionAction_0()); }
+ ()
+ { after(grammarAccess.getArbitrationPolicyExpressionAccess().getArbitrationPolicyExpressionAction_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ArbitrationPolicyExpression__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ArbitrationPolicyExpression__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ArbitrationPolicyExpression__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getArbitrationPolicyExpressionAccess().getValueAssignment_1()); }
+ (rule__ArbitrationPolicyExpression__ValueAssignment_1)
+ { after(grammarAccess.getArbitrationPolicyExpressionAccess().getValueAssignment_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ViewContentSet__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContentSet__Group__0__Impl
+ rule__ViewContentSet__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentSetAccess().getViewContentSetAction_0()); }
+ ()
+ { after(grammarAccess.getViewContentSetAccess().getViewContentSetAction_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContentSet__Group__1__Impl
+ rule__ViewContentSet__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentSetAccess().getViewContentSetKeyword_1()); }
+ 'ViewContentSet'
+ { after(grammarAccess.getViewContentSetAccess().getViewContentSetKeyword_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContentSet__Group__2__Impl
+ rule__ViewContentSet__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentSetAccess().getNameAssignment_2()); }
+ (rule__ViewContentSet__NameAssignment_2)
+ { after(grammarAccess.getViewContentSetAccess().getNameAssignment_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContentSet__Group__3__Impl
+ rule__ViewContentSet__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentSetAccess().getLeftCurlyBracketKeyword_3()); }
+ '{'
+ { after(grammarAccess.getViewContentSetAccess().getLeftCurlyBracketKeyword_3()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContentSet__Group__4__Impl
+ rule__ViewContentSet__Group__5
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4()); }
+ (rule__ViewContentSet__UnorderedGroup_4)
+ { after(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__Group__5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContentSet__Group__5__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__Group__5__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentSetAccess().getRightCurlyBracketKeyword_5()); }
+ '}'
+ { after(grammarAccess.getViewContentSetAccess().getRightCurlyBracketKeyword_5()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ViewContentSet__Group_4_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContentSet__Group_4_0__0__Impl
+ rule__ViewContentSet__Group_4_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__Group_4_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentSetAccess().getDescriptionKeyword_4_0_0()); }
+ 'description:'
+ { after(grammarAccess.getViewContentSetAccess().getDescriptionKeyword_4_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__Group_4_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContentSet__Group_4_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__Group_4_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentSetAccess().getDescriptionAssignment_4_0_1()); }
+ (rule__ViewContentSet__DescriptionAssignment_4_0_1)
+ { after(grammarAccess.getViewContentSetAccess().getDescriptionAssignment_4_0_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ViewContentSet__Group_4_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContentSet__Group_4_1__0__Impl
+ rule__ViewContentSet__Group_4_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__Group_4_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentSetAccess().getTargetKeyword_4_1_0()); }
+ 'target:'
+ { after(grammarAccess.getViewContentSetAccess().getTargetKeyword_4_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__Group_4_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContentSet__Group_4_1__1__Impl
+ rule__ViewContentSet__Group_4_1__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__Group_4_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentSetAccess().getLeftSquareBracketKeyword_4_1_1()); }
+ '['
+ { after(grammarAccess.getViewContentSetAccess().getLeftSquareBracketKeyword_4_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__Group_4_1__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContentSet__Group_4_1__2__Impl
+ rule__ViewContentSet__Group_4_1__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__Group_4_1__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentSetAccess().getGroup_4_1_2()); }
+ (rule__ViewContentSet__Group_4_1_2__0)?
+ { after(grammarAccess.getViewContentSetAccess().getGroup_4_1_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__Group_4_1__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContentSet__Group_4_1__3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__Group_4_1__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentSetAccess().getRightSquareBracketKeyword_4_1_3()); }
+ ']'
+ { after(grammarAccess.getViewContentSetAccess().getRightSquareBracketKeyword_4_1_3()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ViewContentSet__Group_4_1_2__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContentSet__Group_4_1_2__0__Impl
+ rule__ViewContentSet__Group_4_1_2__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__Group_4_1_2__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentSetAccess().getTargetAssignment_4_1_2_0()); }
+ (rule__ViewContentSet__TargetAssignment_4_1_2_0)
+ { after(grammarAccess.getViewContentSetAccess().getTargetAssignment_4_1_2_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__Group_4_1_2__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContentSet__Group_4_1_2__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__Group_4_1_2__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentSetAccess().getGroup_4_1_2_1()); }
+ (rule__ViewContentSet__Group_4_1_2_1__0)*
+ { after(grammarAccess.getViewContentSetAccess().getGroup_4_1_2_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ViewContentSet__Group_4_1_2_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContentSet__Group_4_1_2_1__0__Impl
+ rule__ViewContentSet__Group_4_1_2_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__Group_4_1_2_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentSetAccess().getCommaKeyword_4_1_2_1_0()); }
+ ','
+ { after(grammarAccess.getViewContentSetAccess().getCommaKeyword_4_1_2_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__Group_4_1_2_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContentSet__Group_4_1_2_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__Group_4_1_2_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentSetAccess().getTargetAssignment_4_1_2_1_1()); }
+ (rule__ViewContentSet__TargetAssignment_4_1_2_1_1)
+ { after(grammarAccess.getViewContentSetAccess().getTargetAssignment_4_1_2_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ViewContentSet__Group_4_2__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContentSet__Group_4_2__0__Impl
+ rule__ViewContentSet__Group_4_2__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__Group_4_2__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentSetAccess().getAllocatableKeyword_4_2_0()); }
+ 'allocatable:'
+ { after(grammarAccess.getViewContentSetAccess().getAllocatableKeyword_4_2_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__Group_4_2__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContentSet__Group_4_2__1__Impl
+ rule__ViewContentSet__Group_4_2__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__Group_4_2__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentSetAccess().getLeftSquareBracketKeyword_4_2_1()); }
+ '['
+ { after(grammarAccess.getViewContentSetAccess().getLeftSquareBracketKeyword_4_2_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__Group_4_2__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContentSet__Group_4_2__2__Impl
+ rule__ViewContentSet__Group_4_2__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__Group_4_2__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentSetAccess().getGroup_4_2_2()); }
+ (rule__ViewContentSet__Group_4_2_2__0)?
+ { after(grammarAccess.getViewContentSetAccess().getGroup_4_2_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__Group_4_2__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContentSet__Group_4_2__3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__Group_4_2__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentSetAccess().getRightSquareBracketKeyword_4_2_3()); }
+ ']'
+ { after(grammarAccess.getViewContentSetAccess().getRightSquareBracketKeyword_4_2_3()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ViewContentSet__Group_4_2_2__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContentSet__Group_4_2_2__0__Impl
+ rule__ViewContentSet__Group_4_2_2__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__Group_4_2_2__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentSetAccess().getAllocatableAssignment_4_2_2_0()); }
+ (rule__ViewContentSet__AllocatableAssignment_4_2_2_0)
+ { after(grammarAccess.getViewContentSetAccess().getAllocatableAssignment_4_2_2_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__Group_4_2_2__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContentSet__Group_4_2_2__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__Group_4_2_2__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentSetAccess().getGroup_4_2_2_1()); }
+ (rule__ViewContentSet__Group_4_2_2_1__0)*
+ { after(grammarAccess.getViewContentSetAccess().getGroup_4_2_2_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ViewContentSet__Group_4_2_2_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContentSet__Group_4_2_2_1__0__Impl
+ rule__ViewContentSet__Group_4_2_2_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__Group_4_2_2_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentSetAccess().getCommaKeyword_4_2_2_1_0()); }
+ ','
+ { after(grammarAccess.getViewContentSetAccess().getCommaKeyword_4_2_2_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__Group_4_2_2_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContentSet__Group_4_2_2_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__Group_4_2_2_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getViewContentSetAccess().getAllocatableAssignment_4_2_2_1_1()); }
+ (rule__ViewContentSet__AllocatableAssignment_4_2_2_1_1)
+ { after(grammarAccess.getViewContentSetAccess().getAllocatableAssignment_4_2_2_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__SoundContentSet__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContentSet__Group__0__Impl
+ rule__SoundContentSet__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentSetAccess().getSoundContentSetAction_0()); }
+ ()
+ { after(grammarAccess.getSoundContentSetAccess().getSoundContentSetAction_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContentSet__Group__1__Impl
+ rule__SoundContentSet__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentSetAccess().getSoundContentSetKeyword_1()); }
+ 'SoundContentSet'
+ { after(grammarAccess.getSoundContentSetAccess().getSoundContentSetKeyword_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContentSet__Group__2__Impl
+ rule__SoundContentSet__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentSetAccess().getNameAssignment_2()); }
+ (rule__SoundContentSet__NameAssignment_2)
+ { after(grammarAccess.getSoundContentSetAccess().getNameAssignment_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContentSet__Group__3__Impl
+ rule__SoundContentSet__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentSetAccess().getLeftCurlyBracketKeyword_3()); }
+ '{'
+ { after(grammarAccess.getSoundContentSetAccess().getLeftCurlyBracketKeyword_3()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContentSet__Group__4__Impl
+ rule__SoundContentSet__Group__5
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4()); }
+ (rule__SoundContentSet__UnorderedGroup_4)
+ { after(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__Group__5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContentSet__Group__5__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__Group__5__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentSetAccess().getRightCurlyBracketKeyword_5()); }
+ '}'
+ { after(grammarAccess.getSoundContentSetAccess().getRightCurlyBracketKeyword_5()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__SoundContentSet__Group_4_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContentSet__Group_4_0__0__Impl
+ rule__SoundContentSet__Group_4_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__Group_4_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentSetAccess().getDescriptionKeyword_4_0_0()); }
+ 'description:'
+ { after(grammarAccess.getSoundContentSetAccess().getDescriptionKeyword_4_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__Group_4_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContentSet__Group_4_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__Group_4_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentSetAccess().getDescriptionAssignment_4_0_1()); }
+ (rule__SoundContentSet__DescriptionAssignment_4_0_1)
+ { after(grammarAccess.getSoundContentSetAccess().getDescriptionAssignment_4_0_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__SoundContentSet__Group_4_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContentSet__Group_4_1__0__Impl
+ rule__SoundContentSet__Group_4_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__Group_4_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentSetAccess().getTargetKeyword_4_1_0()); }
+ 'target:'
+ { after(grammarAccess.getSoundContentSetAccess().getTargetKeyword_4_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__Group_4_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContentSet__Group_4_1__1__Impl
+ rule__SoundContentSet__Group_4_1__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__Group_4_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentSetAccess().getLeftSquareBracketKeyword_4_1_1()); }
+ '['
+ { after(grammarAccess.getSoundContentSetAccess().getLeftSquareBracketKeyword_4_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__Group_4_1__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContentSet__Group_4_1__2__Impl
+ rule__SoundContentSet__Group_4_1__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__Group_4_1__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentSetAccess().getGroup_4_1_2()); }
+ (rule__SoundContentSet__Group_4_1_2__0)?
+ { after(grammarAccess.getSoundContentSetAccess().getGroup_4_1_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__Group_4_1__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContentSet__Group_4_1__3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__Group_4_1__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentSetAccess().getRightSquareBracketKeyword_4_1_3()); }
+ ']'
+ { after(grammarAccess.getSoundContentSetAccess().getRightSquareBracketKeyword_4_1_3()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__SoundContentSet__Group_4_1_2__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContentSet__Group_4_1_2__0__Impl
+ rule__SoundContentSet__Group_4_1_2__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__Group_4_1_2__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentSetAccess().getTargetAssignment_4_1_2_0()); }
+ (rule__SoundContentSet__TargetAssignment_4_1_2_0)
+ { after(grammarAccess.getSoundContentSetAccess().getTargetAssignment_4_1_2_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__Group_4_1_2__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContentSet__Group_4_1_2__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__Group_4_1_2__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentSetAccess().getGroup_4_1_2_1()); }
+ (rule__SoundContentSet__Group_4_1_2_1__0)*
+ { after(grammarAccess.getSoundContentSetAccess().getGroup_4_1_2_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__SoundContentSet__Group_4_1_2_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContentSet__Group_4_1_2_1__0__Impl
+ rule__SoundContentSet__Group_4_1_2_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__Group_4_1_2_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentSetAccess().getCommaKeyword_4_1_2_1_0()); }
+ ','
+ { after(grammarAccess.getSoundContentSetAccess().getCommaKeyword_4_1_2_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__Group_4_1_2_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContentSet__Group_4_1_2_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__Group_4_1_2_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentSetAccess().getTargetAssignment_4_1_2_1_1()); }
+ (rule__SoundContentSet__TargetAssignment_4_1_2_1_1)
+ { after(grammarAccess.getSoundContentSetAccess().getTargetAssignment_4_1_2_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__SoundContentSet__Group_4_2__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContentSet__Group_4_2__0__Impl
+ rule__SoundContentSet__Group_4_2__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__Group_4_2__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentSetAccess().getAllocatableKeyword_4_2_0()); }
+ 'allocatable:'
+ { after(grammarAccess.getSoundContentSetAccess().getAllocatableKeyword_4_2_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__Group_4_2__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContentSet__Group_4_2__1__Impl
+ rule__SoundContentSet__Group_4_2__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__Group_4_2__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentSetAccess().getLeftSquareBracketKeyword_4_2_1()); }
+ '['
+ { after(grammarAccess.getSoundContentSetAccess().getLeftSquareBracketKeyword_4_2_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__Group_4_2__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContentSet__Group_4_2__2__Impl
+ rule__SoundContentSet__Group_4_2__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__Group_4_2__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentSetAccess().getGroup_4_2_2()); }
+ (rule__SoundContentSet__Group_4_2_2__0)?
+ { after(grammarAccess.getSoundContentSetAccess().getGroup_4_2_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__Group_4_2__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContentSet__Group_4_2__3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__Group_4_2__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentSetAccess().getRightSquareBracketKeyword_4_2_3()); }
+ ']'
+ { after(grammarAccess.getSoundContentSetAccess().getRightSquareBracketKeyword_4_2_3()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__SoundContentSet__Group_4_2_2__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContentSet__Group_4_2_2__0__Impl
+ rule__SoundContentSet__Group_4_2_2__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__Group_4_2_2__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentSetAccess().getAllocatableAssignment_4_2_2_0()); }
+ (rule__SoundContentSet__AllocatableAssignment_4_2_2_0)
+ { after(grammarAccess.getSoundContentSetAccess().getAllocatableAssignment_4_2_2_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__Group_4_2_2__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContentSet__Group_4_2_2__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__Group_4_2_2__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentSetAccess().getGroup_4_2_2_1()); }
+ (rule__SoundContentSet__Group_4_2_2_1__0)*
+ { after(grammarAccess.getSoundContentSetAccess().getGroup_4_2_2_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__SoundContentSet__Group_4_2_2_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContentSet__Group_4_2_2_1__0__Impl
+ rule__SoundContentSet__Group_4_2_2_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__Group_4_2_2_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentSetAccess().getCommaKeyword_4_2_2_1_0()); }
+ ','
+ { after(grammarAccess.getSoundContentSetAccess().getCommaKeyword_4_2_2_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__Group_4_2_2_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContentSet__Group_4_2_2_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__Group_4_2_2_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSoundContentSetAccess().getAllocatableAssignment_4_2_2_1_1()); }
+ (rule__SoundContentSet__AllocatableAssignment_4_2_2_1_1)
+ { after(grammarAccess.getSoundContentSetAccess().getAllocatableAssignment_4_2_2_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Scene__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Scene__Group__0__Impl
+ rule__Scene__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Scene__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSceneAccess().getSceneAction_0()); }
+ ()
+ { after(grammarAccess.getSceneAccess().getSceneAction_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Scene__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Scene__Group__1__Impl
+ rule__Scene__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Scene__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSceneAccess().getSceneKeyword_1()); }
+ 'Scene'
+ { after(grammarAccess.getSceneAccess().getSceneKeyword_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Scene__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Scene__Group__2__Impl
+ rule__Scene__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Scene__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSceneAccess().getNameAssignment_2()); }
+ (rule__Scene__NameAssignment_2)
+ { after(grammarAccess.getSceneAccess().getNameAssignment_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Scene__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Scene__Group__3__Impl
+ rule__Scene__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Scene__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSceneAccess().getLeftCurlyBracketKeyword_3()); }
+ '{'
+ { after(grammarAccess.getSceneAccess().getLeftCurlyBracketKeyword_3()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Scene__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Scene__Group__4__Impl
+ rule__Scene__Group__5
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Scene__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSceneAccess().getUnorderedGroup_4()); }
+ (rule__Scene__UnorderedGroup_4)
+ { after(grammarAccess.getSceneAccess().getUnorderedGroup_4()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Scene__Group__5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Scene__Group__5__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Scene__Group__5__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSceneAccess().getRightCurlyBracketKeyword_5()); }
+ '}'
+ { after(grammarAccess.getSceneAccess().getRightCurlyBracketKeyword_5()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Scene__Group_4_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Scene__Group_4_0__0__Impl
+ rule__Scene__Group_4_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Scene__Group_4_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSceneAccess().getDescriptionKeyword_4_0_0()); }
+ 'description:'
+ { after(grammarAccess.getSceneAccess().getDescriptionKeyword_4_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Scene__Group_4_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Scene__Group_4_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Scene__Group_4_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSceneAccess().getDescriptionAssignment_4_0_1()); }
+ (rule__Scene__DescriptionAssignment_4_0_1)
+ { after(grammarAccess.getSceneAccess().getDescriptionAssignment_4_0_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Scene__Group_4_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Scene__Group_4_1__0__Impl
+ rule__Scene__Group_4_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Scene__Group_4_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSceneAccess().getGlobalKeyword_4_1_0()); }
+ 'global:'
+ { after(grammarAccess.getSceneAccess().getGlobalKeyword_4_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Scene__Group_4_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Scene__Group_4_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Scene__Group_4_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getSceneAccess().getGlobalAssignment_4_1_1()); }
+ (rule__Scene__GlobalAssignment_4_1_1)
+ { after(grammarAccess.getSceneAccess().getGlobalAssignment_4_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__VerticalLayout__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VerticalLayout__Group__0__Impl
+ rule__VerticalLayout__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VerticalLayout__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVerticalLayoutAccess().getVerticalLayoutAction_0()); }
+ ()
+ { after(grammarAccess.getVerticalLayoutAccess().getVerticalLayoutAction_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VerticalLayout__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VerticalLayout__Group__1__Impl
+ rule__VerticalLayout__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VerticalLayout__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVerticalLayoutAccess().getVerticalLayoutKeyword_1()); }
+ 'VerticalLayout'
+ { after(grammarAccess.getVerticalLayoutAccess().getVerticalLayoutKeyword_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VerticalLayout__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VerticalLayout__Group__2__Impl
+ rule__VerticalLayout__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VerticalLayout__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVerticalLayoutAccess().getLeftCurlyBracketKeyword_2()); }
+ '{'
+ { after(grammarAccess.getVerticalLayoutAccess().getLeftCurlyBracketKeyword_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VerticalLayout__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VerticalLayout__Group__3__Impl
+ rule__VerticalLayout__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VerticalLayout__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3()); }
+ (rule__VerticalLayout__UnorderedGroup_3)
+ { after(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VerticalLayout__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VerticalLayout__Group__4__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VerticalLayout__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVerticalLayoutAccess().getRightCurlyBracketKeyword_4()); }
+ '}'
+ { after(grammarAccess.getVerticalLayoutAccess().getRightCurlyBracketKeyword_4()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__VerticalLayout__Group_3_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VerticalLayout__Group_3_0__0__Impl
+ rule__VerticalLayout__Group_3_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VerticalLayout__Group_3_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVerticalLayoutAccess().getBasePointKeyword_3_0_0()); }
+ 'basePoint:'
+ { after(grammarAccess.getVerticalLayoutAccess().getBasePointKeyword_3_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VerticalLayout__Group_3_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VerticalLayout__Group_3_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VerticalLayout__Group_3_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVerticalLayoutAccess().getBasePointAssignment_3_0_1()); }
+ (rule__VerticalLayout__BasePointAssignment_3_0_1)
+ { after(grammarAccess.getVerticalLayoutAccess().getBasePointAssignment_3_0_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__VerticalLayout__Group_3_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VerticalLayout__Group_3_1__0__Impl
+ rule__VerticalLayout__Group_3_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VerticalLayout__Group_3_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVerticalLayoutAccess().getSubareaKeyword_3_1_0()); }
+ 'subarea:'
+ { after(grammarAccess.getVerticalLayoutAccess().getSubareaKeyword_3_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VerticalLayout__Group_3_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VerticalLayout__Group_3_1__1__Impl
+ rule__VerticalLayout__Group_3_1__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VerticalLayout__Group_3_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVerticalLayoutAccess().getLeftSquareBracketKeyword_3_1_1()); }
+ '['
+ { after(grammarAccess.getVerticalLayoutAccess().getLeftSquareBracketKeyword_3_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VerticalLayout__Group_3_1__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VerticalLayout__Group_3_1__2__Impl
+ rule__VerticalLayout__Group_3_1__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VerticalLayout__Group_3_1__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVerticalLayoutAccess().getGroup_3_1_2()); }
+ (rule__VerticalLayout__Group_3_1_2__0)?
+ { after(grammarAccess.getVerticalLayoutAccess().getGroup_3_1_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VerticalLayout__Group_3_1__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VerticalLayout__Group_3_1__3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VerticalLayout__Group_3_1__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVerticalLayoutAccess().getRightSquareBracketKeyword_3_1_3()); }
+ ']'
+ { after(grammarAccess.getVerticalLayoutAccess().getRightSquareBracketKeyword_3_1_3()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__VerticalLayout__Group_3_1_2__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VerticalLayout__Group_3_1_2__0__Impl
+ rule__VerticalLayout__Group_3_1_2__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VerticalLayout__Group_3_1_2__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVerticalLayoutAccess().getSubareaAssignment_3_1_2_0()); }
+ (rule__VerticalLayout__SubareaAssignment_3_1_2_0)
+ { after(grammarAccess.getVerticalLayoutAccess().getSubareaAssignment_3_1_2_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VerticalLayout__Group_3_1_2__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VerticalLayout__Group_3_1_2__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VerticalLayout__Group_3_1_2__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVerticalLayoutAccess().getGroup_3_1_2_1()); }
+ (rule__VerticalLayout__Group_3_1_2_1__0)*
+ { after(grammarAccess.getVerticalLayoutAccess().getGroup_3_1_2_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__VerticalLayout__Group_3_1_2_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VerticalLayout__Group_3_1_2_1__0__Impl
+ rule__VerticalLayout__Group_3_1_2_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VerticalLayout__Group_3_1_2_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVerticalLayoutAccess().getCommaKeyword_3_1_2_1_0()); }
+ ','
+ { after(grammarAccess.getVerticalLayoutAccess().getCommaKeyword_3_1_2_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VerticalLayout__Group_3_1_2_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VerticalLayout__Group_3_1_2_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VerticalLayout__Group_3_1_2_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getVerticalLayoutAccess().getSubareaAssignment_3_1_2_1_1()); }
+ (rule__VerticalLayout__SubareaAssignment_3_1_2_1_1)
+ { after(grammarAccess.getVerticalLayoutAccess().getSubareaAssignment_3_1_2_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__HorizontalLayout__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__HorizontalLayout__Group__0__Impl
+ rule__HorizontalLayout__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__HorizontalLayout__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getHorizontalLayoutAccess().getHorizontalLayoutAction_0()); }
+ ()
+ { after(grammarAccess.getHorizontalLayoutAccess().getHorizontalLayoutAction_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__HorizontalLayout__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__HorizontalLayout__Group__1__Impl
+ rule__HorizontalLayout__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__HorizontalLayout__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getHorizontalLayoutAccess().getHorizontalLayoutKeyword_1()); }
+ 'HorizontalLayout'
+ { after(grammarAccess.getHorizontalLayoutAccess().getHorizontalLayoutKeyword_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__HorizontalLayout__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__HorizontalLayout__Group__2__Impl
+ rule__HorizontalLayout__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__HorizontalLayout__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getHorizontalLayoutAccess().getLeftCurlyBracketKeyword_2()); }
+ '{'
+ { after(grammarAccess.getHorizontalLayoutAccess().getLeftCurlyBracketKeyword_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__HorizontalLayout__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__HorizontalLayout__Group__3__Impl
+ rule__HorizontalLayout__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__HorizontalLayout__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3()); }
+ (rule__HorizontalLayout__UnorderedGroup_3)
+ { after(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__HorizontalLayout__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__HorizontalLayout__Group__4__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__HorizontalLayout__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getHorizontalLayoutAccess().getRightCurlyBracketKeyword_4()); }
+ '}'
+ { after(grammarAccess.getHorizontalLayoutAccess().getRightCurlyBracketKeyword_4()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__HorizontalLayout__Group_3_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__HorizontalLayout__Group_3_0__0__Impl
+ rule__HorizontalLayout__Group_3_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__HorizontalLayout__Group_3_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getHorizontalLayoutAccess().getBasePointKeyword_3_0_0()); }
+ 'basePoint:'
+ { after(grammarAccess.getHorizontalLayoutAccess().getBasePointKeyword_3_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__HorizontalLayout__Group_3_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__HorizontalLayout__Group_3_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__HorizontalLayout__Group_3_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getHorizontalLayoutAccess().getBasePointAssignment_3_0_1()); }
+ (rule__HorizontalLayout__BasePointAssignment_3_0_1)
+ { after(grammarAccess.getHorizontalLayoutAccess().getBasePointAssignment_3_0_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__HorizontalLayout__Group_3_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__HorizontalLayout__Group_3_1__0__Impl
+ rule__HorizontalLayout__Group_3_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__HorizontalLayout__Group_3_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getHorizontalLayoutAccess().getSubareaKeyword_3_1_0()); }
+ 'subarea:'
+ { after(grammarAccess.getHorizontalLayoutAccess().getSubareaKeyword_3_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__HorizontalLayout__Group_3_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__HorizontalLayout__Group_3_1__1__Impl
+ rule__HorizontalLayout__Group_3_1__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__HorizontalLayout__Group_3_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getHorizontalLayoutAccess().getLeftSquareBracketKeyword_3_1_1()); }
+ '['
+ { after(grammarAccess.getHorizontalLayoutAccess().getLeftSquareBracketKeyword_3_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__HorizontalLayout__Group_3_1__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__HorizontalLayout__Group_3_1__2__Impl
+ rule__HorizontalLayout__Group_3_1__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__HorizontalLayout__Group_3_1__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getHorizontalLayoutAccess().getGroup_3_1_2()); }
+ (rule__HorizontalLayout__Group_3_1_2__0)?
+ { after(grammarAccess.getHorizontalLayoutAccess().getGroup_3_1_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__HorizontalLayout__Group_3_1__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__HorizontalLayout__Group_3_1__3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__HorizontalLayout__Group_3_1__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getHorizontalLayoutAccess().getRightSquareBracketKeyword_3_1_3()); }
+ ']'
+ { after(grammarAccess.getHorizontalLayoutAccess().getRightSquareBracketKeyword_3_1_3()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__HorizontalLayout__Group_3_1_2__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__HorizontalLayout__Group_3_1_2__0__Impl
+ rule__HorizontalLayout__Group_3_1_2__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__HorizontalLayout__Group_3_1_2__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getHorizontalLayoutAccess().getSubareaAssignment_3_1_2_0()); }
+ (rule__HorizontalLayout__SubareaAssignment_3_1_2_0)
+ { after(grammarAccess.getHorizontalLayoutAccess().getSubareaAssignment_3_1_2_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__HorizontalLayout__Group_3_1_2__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__HorizontalLayout__Group_3_1_2__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__HorizontalLayout__Group_3_1_2__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getHorizontalLayoutAccess().getGroup_3_1_2_1()); }
+ (rule__HorizontalLayout__Group_3_1_2_1__0)*
+ { after(grammarAccess.getHorizontalLayoutAccess().getGroup_3_1_2_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__HorizontalLayout__Group_3_1_2_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__HorizontalLayout__Group_3_1_2_1__0__Impl
+ rule__HorizontalLayout__Group_3_1_2_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__HorizontalLayout__Group_3_1_2_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getHorizontalLayoutAccess().getCommaKeyword_3_1_2_1_0()); }
+ ','
+ { after(grammarAccess.getHorizontalLayoutAccess().getCommaKeyword_3_1_2_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__HorizontalLayout__Group_3_1_2_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__HorizontalLayout__Group_3_1_2_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__HorizontalLayout__Group_3_1_2_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getHorizontalLayoutAccess().getSubareaAssignment_3_1_2_1_1()); }
+ (rule__HorizontalLayout__SubareaAssignment_3_1_2_1_1)
+ { after(grammarAccess.getHorizontalLayoutAccess().getSubareaAssignment_3_1_2_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__FixedPositionLayout__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__FixedPositionLayout__Group__0__Impl
+ rule__FixedPositionLayout__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FixedPositionLayout__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getFixedPositionLayoutAccess().getFixedPositionLayoutAction_0()); }
+ ()
+ { after(grammarAccess.getFixedPositionLayoutAccess().getFixedPositionLayoutAction_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FixedPositionLayout__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__FixedPositionLayout__Group__1__Impl
+ rule__FixedPositionLayout__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FixedPositionLayout__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getFixedPositionLayoutAccess().getFixedPositionLayoutKeyword_1()); }
+ 'FixedPositionLayout'
+ { after(grammarAccess.getFixedPositionLayoutAccess().getFixedPositionLayoutKeyword_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FixedPositionLayout__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__FixedPositionLayout__Group__2__Impl
+ rule__FixedPositionLayout__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FixedPositionLayout__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getFixedPositionLayoutAccess().getLeftCurlyBracketKeyword_2()); }
+ '{'
+ { after(grammarAccess.getFixedPositionLayoutAccess().getLeftCurlyBracketKeyword_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FixedPositionLayout__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__FixedPositionLayout__Group__3__Impl
+ rule__FixedPositionLayout__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FixedPositionLayout__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getFixedPositionLayoutAccess().getSubAreaPositionAssignment_3()); }
+ (rule__FixedPositionLayout__SubAreaPositionAssignment_3)*
+ { after(grammarAccess.getFixedPositionLayoutAccess().getSubAreaPositionAssignment_3()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FixedPositionLayout__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__FixedPositionLayout__Group__4__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FixedPositionLayout__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getFixedPositionLayoutAccess().getRightCurlyBracketKeyword_4()); }
+ '}'
+ { after(grammarAccess.getFixedPositionLayoutAccess().getRightCurlyBracketKeyword_4()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__PositionContainer__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__PositionContainer__Group__0__Impl
+ rule__PositionContainer__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PositionContainer__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getPositionContainerAccess().getPositionContainerAction_0()); }
+ ()
+ { after(grammarAccess.getPositionContainerAccess().getPositionContainerAction_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PositionContainer__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__PositionContainer__Group__1__Impl
+ rule__PositionContainer__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PositionContainer__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getPositionContainerAccess().getPositionContainerKeyword_1()); }
+ 'PositionContainer'
+ { after(grammarAccess.getPositionContainerAccess().getPositionContainerKeyword_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PositionContainer__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__PositionContainer__Group__2__Impl
+ rule__PositionContainer__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PositionContainer__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getPositionContainerAccess().getLeftCurlyBracketKeyword_2()); }
+ '{'
+ { after(grammarAccess.getPositionContainerAccess().getLeftCurlyBracketKeyword_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PositionContainer__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__PositionContainer__Group__3__Impl
+ rule__PositionContainer__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PositionContainer__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3()); }
+ (rule__PositionContainer__UnorderedGroup_3)
+ { after(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PositionContainer__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__PositionContainer__Group__4__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PositionContainer__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getPositionContainerAccess().getRightCurlyBracketKeyword_4()); }
+ '}'
+ { after(grammarAccess.getPositionContainerAccess().getRightCurlyBracketKeyword_4()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__PositionContainer__Group_3_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__PositionContainer__Group_3_0__0__Impl
+ rule__PositionContainer__Group_3_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PositionContainer__Group_3_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getPositionContainerAccess().getXKeyword_3_0_0()); }
+ 'x:'
+ { after(grammarAccess.getPositionContainerAccess().getXKeyword_3_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PositionContainer__Group_3_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__PositionContainer__Group_3_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PositionContainer__Group_3_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getPositionContainerAccess().getXAssignment_3_0_1()); }
+ (rule__PositionContainer__XAssignment_3_0_1)
+ { after(grammarAccess.getPositionContainerAccess().getXAssignment_3_0_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__PositionContainer__Group_3_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__PositionContainer__Group_3_1__0__Impl
+ rule__PositionContainer__Group_3_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PositionContainer__Group_3_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getPositionContainerAccess().getYKeyword_3_1_0()); }
+ 'y:'
+ { after(grammarAccess.getPositionContainerAccess().getYKeyword_3_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PositionContainer__Group_3_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__PositionContainer__Group_3_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PositionContainer__Group_3_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getPositionContainerAccess().getYAssignment_3_1_1()); }
+ (rule__PositionContainer__YAssignment_3_1_1)
+ { after(grammarAccess.getPositionContainerAccess().getYAssignment_3_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__PositionContainer__Group_3_2__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__PositionContainer__Group_3_2__0__Impl
+ rule__PositionContainer__Group_3_2__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PositionContainer__Group_3_2__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getPositionContainerAccess().getBasePointKeyword_3_2_0()); }
+ 'basePoint:'
+ { after(grammarAccess.getPositionContainerAccess().getBasePointKeyword_3_2_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PositionContainer__Group_3_2__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__PositionContainer__Group_3_2__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PositionContainer__Group_3_2__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getPositionContainerAccess().getBasePointAssignment_3_2_1()); }
+ (rule__PositionContainer__BasePointAssignment_3_2_1)
+ { after(grammarAccess.getPositionContainerAccess().getBasePointAssignment_3_2_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__PositionContainer__Group_3_3__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__PositionContainer__Group_3_3__0__Impl
+ rule__PositionContainer__Group_3_3__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PositionContainer__Group_3_3__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getPositionContainerAccess().getAreaReferenceKeyword_3_3_0()); }
+ 'areaReference:'
+ { after(grammarAccess.getPositionContainerAccess().getAreaReferenceKeyword_3_3_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PositionContainer__Group_3_3__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__PositionContainer__Group_3_3__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PositionContainer__Group_3_3__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getPositionContainerAccess().getAreaAssignment_3_3_1()); }
+ (rule__PositionContainer__AreaAssignment_3_3_1)
+ { after(grammarAccess.getPositionContainerAccess().getAreaAssignment_3_3_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__EInt__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__EInt__Group__0__Impl
+ rule__EInt__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__EInt__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getEIntAccess().getHyphenMinusKeyword_0()); }
+ ('-')?
+ { after(grammarAccess.getEIntAccess().getHyphenMinusKeyword_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__EInt__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__EInt__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__EInt__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getEIntAccess().getINTTerminalRuleCall_1()); }
+ RULE_INT
+ { after(grammarAccess.getEIntAccess().getINTTerminalRuleCall_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__QualifiedNameWithWildcard__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__QualifiedNameWithWildcard__Group__0__Impl
+ rule__QualifiedNameWithWildcard__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__QualifiedNameWithWildcard__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getQualifiedNameWithWildcardAccess().getQualifiedNameParserRuleCall_0()); }
+ ruleQualifiedName
+ { after(grammarAccess.getQualifiedNameWithWildcardAccess().getQualifiedNameParserRuleCall_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__QualifiedNameWithWildcard__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__QualifiedNameWithWildcard__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__QualifiedNameWithWildcard__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getQualifiedNameWithWildcardAccess().getFullStopAsteriskKeyword_1()); }
+ ('.*')?
+ { after(grammarAccess.getQualifiedNameWithWildcardAccess().getFullStopAsteriskKeyword_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__QualifiedName__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__QualifiedName__Group__0__Impl
+ rule__QualifiedName__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__QualifiedName__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_0()); }
+ RULE_ID
+ { after(grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__QualifiedName__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__QualifiedName__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__QualifiedName__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getQualifiedNameAccess().getGroup_1()); }
+ (rule__QualifiedName__Group_1__0)*
+ { after(grammarAccess.getQualifiedNameAccess().getGroup_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__QualifiedName__Group_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__QualifiedName__Group_1__0__Impl
+ rule__QualifiedName__Group_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__QualifiedName__Group_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); }
+ '.'
+ { after(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__QualifiedName__Group_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__QualifiedName__Group_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__QualifiedName__Group_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_1_1()); }
+ RULE_ID
+ { after(grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Package__UnorderedGroup_4
+ @init {
+ int stackSize = keepStackSize();
+ getUnorderedGroupHelper().enter(grammarAccess.getPackageAccess().getUnorderedGroup_4());
+ }
+:
+ rule__Package__UnorderedGroup_4__0
+ ?
+;
+finally {
+ getUnorderedGroupHelper().leave(grammarAccess.getPackageAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+}
+
+rule__Package__UnorderedGroup_4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ boolean selected = false;
+ }
+:
+ (
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 0)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 0);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getPackageAccess().getGroup_4_0()); }
+ (rule__Package__Group_4_0__0)
+ { after(grammarAccess.getPackageAccess().getGroup_4_0()); }
+ )
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 1)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 1);
+ }
+ {
+ selected = true;
+ }
+ (
+ (
+ { before(grammarAccess.getPackageAccess().getPackagableelementAssignment_4_1()); }
+ (rule__Package__PackagableelementAssignment_4_1)
+ { after(grammarAccess.getPackageAccess().getPackagableelementAssignment_4_1()); }
+ )
+ (
+ { before(grammarAccess.getPackageAccess().getPackagableelementAssignment_4_1()); }
+ ((rule__Package__PackagableelementAssignment_4_1)=>rule__Package__PackagableelementAssignment_4_1)*
+ { after(grammarAccess.getPackageAccess().getPackagableelementAssignment_4_1()); }
+ )
+ )
+ )
+ )
+ )
+;
+finally {
+ if (selected)
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getPackageAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+}
+
+rule__Package__UnorderedGroup_4__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Package__UnorderedGroup_4__Impl
+ rule__Package__UnorderedGroup_4__1?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Package__UnorderedGroup_4__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Package__UnorderedGroup_4__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Display__UnorderedGroup_4
+ @init {
+ int stackSize = keepStackSize();
+ getUnorderedGroupHelper().enter(grammarAccess.getDisplayAccess().getUnorderedGroup_4());
+ }
+:
+ rule__Display__UnorderedGroup_4__0
+ ?
+;
+finally {
+ getUnorderedGroupHelper().leave(grammarAccess.getDisplayAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+}
+
+rule__Display__UnorderedGroup_4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ boolean selected = false;
+ }
+:
+ (
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 0)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 0);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getDisplayAccess().getGroup_4_0()); }
+ (rule__Display__Group_4_0__0)
+ { after(grammarAccess.getDisplayAccess().getGroup_4_0()); }
+ )
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 1)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 1);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getDisplayAccess().getSizeAssignment_4_1()); }
+ (rule__Display__SizeAssignment_4_1)
+ { after(grammarAccess.getDisplayAccess().getSizeAssignment_4_1()); }
+ )
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 2)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 2);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getDisplayAccess().getRootAssignment_4_2()); }
+ (rule__Display__RootAssignment_4_2)
+ { after(grammarAccess.getDisplayAccess().getRootAssignment_4_2()); }
+ )
+ )
+ )
+ )
+;
+finally {
+ if (selected)
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getDisplayAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+}
+
+rule__Display__UnorderedGroup_4__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Display__UnorderedGroup_4__Impl
+ rule__Display__UnorderedGroup_4__1?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Display__UnorderedGroup_4__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Display__UnorderedGroup_4__Impl
+ rule__Display__UnorderedGroup_4__2?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Display__UnorderedGroup_4__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Display__UnorderedGroup_4__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Constraint__UnorderedGroup_4
+ @init {
+ int stackSize = keepStackSize();
+ getUnorderedGroupHelper().enter(grammarAccess.getConstraintAccess().getUnorderedGroup_4());
+ }
+:
+ rule__Constraint__UnorderedGroup_4__0
+ ?
+;
+finally {
+ getUnorderedGroupHelper().leave(grammarAccess.getConstraintAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+}
+
+rule__Constraint__UnorderedGroup_4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ boolean selected = false;
+ }
+:
+ (
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 0)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 0);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getConstraintAccess().getGroup_4_0()); }
+ (rule__Constraint__Group_4_0__0)
+ { after(grammarAccess.getConstraintAccess().getGroup_4_0()); }
+ )
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 1)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 1);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getConstraintAccess().getGroup_4_1()); }
+ (rule__Constraint__Group_4_1__0)
+ { after(grammarAccess.getConstraintAccess().getGroup_4_1()); }
+ )
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getConstraintAccess().getExpressionAssignment_4_2()); }
+ (rule__Constraint__ExpressionAssignment_4_2)
+ { after(grammarAccess.getConstraintAccess().getExpressionAssignment_4_2()); }
+ )
+ )
+ )
+ )
+;
+finally {
+ if (selected)
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getConstraintAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+}
+
+rule__Constraint__UnorderedGroup_4__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Constraint__UnorderedGroup_4__Impl
+ rule__Constraint__UnorderedGroup_4__1?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Constraint__UnorderedGroup_4__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Constraint__UnorderedGroup_4__Impl
+ rule__Constraint__UnorderedGroup_4__2?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Constraint__UnorderedGroup_4__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Constraint__UnorderedGroup_4__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ViewContent__UnorderedGroup_4
+ @init {
+ int stackSize = keepStackSize();
+ getUnorderedGroupHelper().enter(grammarAccess.getViewContentAccess().getUnorderedGroup_4());
+ }
+:
+ rule__ViewContent__UnorderedGroup_4__0
+ ?
+;
+finally {
+ getUnorderedGroupHelper().leave(grammarAccess.getViewContentAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContent__UnorderedGroup_4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ boolean selected = false;
+ }
+:
+ (
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 0)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 0);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getViewContentAccess().getGroup_4_0()); }
+ (rule__ViewContent__Group_4_0__0)
+ { after(grammarAccess.getViewContentAccess().getGroup_4_0()); }
+ )
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 1)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 1);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getViewContentAccess().getGroup_4_1()); }
+ (rule__ViewContent__Group_4_1__0)
+ { after(grammarAccess.getViewContentAccess().getGroup_4_1()); }
+ )
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 2)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 2);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getViewContentAccess().getGroup_4_2()); }
+ (rule__ViewContent__Group_4_2__0)
+ { after(grammarAccess.getViewContentAccess().getGroup_4_2()); }
+ )
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 3)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 3);
+ }
+ {
+ selected = true;
+ }
+ (
+ (
+ { before(grammarAccess.getViewContentAccess().getStatesAssignment_4_3()); }
+ (rule__ViewContent__StatesAssignment_4_3)
+ { after(grammarAccess.getViewContentAccess().getStatesAssignment_4_3()); }
+ )
+ (
+ { before(grammarAccess.getViewContentAccess().getStatesAssignment_4_3()); }
+ ((rule__ViewContent__StatesAssignment_4_3)=>rule__ViewContent__StatesAssignment_4_3)*
+ { after(grammarAccess.getViewContentAccess().getStatesAssignment_4_3()); }
+ )
+ )
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 4)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 4);
+ }
+ {
+ selected = true;
+ }
+ (
+ (
+ { before(grammarAccess.getViewContentAccess().getSizeAssignment_4_4()); }
+ (rule__ViewContent__SizeAssignment_4_4)
+ { after(grammarAccess.getViewContentAccess().getSizeAssignment_4_4()); }
+ )
+ (
+ { before(grammarAccess.getViewContentAccess().getSizeAssignment_4_4()); }
+ ((rule__ViewContent__SizeAssignment_4_4)=>rule__ViewContent__SizeAssignment_4_4)*
+ { after(grammarAccess.getViewContentAccess().getSizeAssignment_4_4()); }
+ )
+ )
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 5)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 5);
+ }
+ {
+ selected = true;
+ }
+ (
+ (
+ { before(grammarAccess.getViewContentAccess().getTagsAssignment_4_5()); }
+ (rule__ViewContent__TagsAssignment_4_5)
+ { after(grammarAccess.getViewContentAccess().getTagsAssignment_4_5()); }
+ )
+ (
+ { before(grammarAccess.getViewContentAccess().getTagsAssignment_4_5()); }
+ ((rule__ViewContent__TagsAssignment_4_5)=>rule__ViewContent__TagsAssignment_4_5)*
+ { after(grammarAccess.getViewContentAccess().getTagsAssignment_4_5()); }
+ )
+ )
+ )
+ )
+ )
+;
+finally {
+ if (selected)
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getViewContentAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContent__UnorderedGroup_4__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContent__UnorderedGroup_4__Impl
+ rule__ViewContent__UnorderedGroup_4__1?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContent__UnorderedGroup_4__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContent__UnorderedGroup_4__Impl
+ rule__ViewContent__UnorderedGroup_4__2?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContent__UnorderedGroup_4__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContent__UnorderedGroup_4__Impl
+ rule__ViewContent__UnorderedGroup_4__3?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContent__UnorderedGroup_4__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContent__UnorderedGroup_4__Impl
+ rule__ViewContent__UnorderedGroup_4__4?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContent__UnorderedGroup_4__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContent__UnorderedGroup_4__Impl
+ rule__ViewContent__UnorderedGroup_4__5?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContent__UnorderedGroup_4__5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContent__UnorderedGroup_4__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__SoundContent__UnorderedGroup_4
+ @init {
+ int stackSize = keepStackSize();
+ getUnorderedGroupHelper().enter(grammarAccess.getSoundContentAccess().getUnorderedGroup_4());
+ }
+:
+ rule__SoundContent__UnorderedGroup_4__0
+ ?
+;
+finally {
+ getUnorderedGroupHelper().leave(grammarAccess.getSoundContentAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContent__UnorderedGroup_4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ boolean selected = false;
+ }
+:
+ (
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 0)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 0);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getSoundContentAccess().getGroup_4_0()); }
+ (rule__SoundContent__Group_4_0__0)
+ { after(grammarAccess.getSoundContentAccess().getGroup_4_0()); }
+ )
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 1)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 1);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getSoundContentAccess().getGroup_4_1()); }
+ (rule__SoundContent__Group_4_1__0)
+ { after(grammarAccess.getSoundContentAccess().getGroup_4_1()); }
+ )
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 2)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 2);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getSoundContentAccess().getGroup_4_2()); }
+ (rule__SoundContent__Group_4_2__0)
+ { after(grammarAccess.getSoundContentAccess().getGroup_4_2()); }
+ )
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 3)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 3);
+ }
+ {
+ selected = true;
+ }
+ (
+ (
+ { before(grammarAccess.getSoundContentAccess().getStatesAssignment_4_3()); }
+ (rule__SoundContent__StatesAssignment_4_3)
+ { after(grammarAccess.getSoundContentAccess().getStatesAssignment_4_3()); }
+ )
+ (
+ { before(grammarAccess.getSoundContentAccess().getStatesAssignment_4_3()); }
+ ((rule__SoundContent__StatesAssignment_4_3)=>rule__SoundContent__StatesAssignment_4_3)*
+ { after(grammarAccess.getSoundContentAccess().getStatesAssignment_4_3()); }
+ )
+ )
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 4)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 4);
+ }
+ {
+ selected = true;
+ }
+ (
+ (
+ { before(grammarAccess.getSoundContentAccess().getTagsAssignment_4_4()); }
+ (rule__SoundContent__TagsAssignment_4_4)
+ { after(grammarAccess.getSoundContentAccess().getTagsAssignment_4_4()); }
+ )
+ (
+ { before(grammarAccess.getSoundContentAccess().getTagsAssignment_4_4()); }
+ ((rule__SoundContent__TagsAssignment_4_4)=>rule__SoundContent__TagsAssignment_4_4)*
+ { after(grammarAccess.getSoundContentAccess().getTagsAssignment_4_4()); }
+ )
+ )
+ )
+ )
+ )
+;
+finally {
+ if (selected)
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getSoundContentAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContent__UnorderedGroup_4__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContent__UnorderedGroup_4__Impl
+ rule__SoundContent__UnorderedGroup_4__1?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContent__UnorderedGroup_4__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContent__UnorderedGroup_4__Impl
+ rule__SoundContent__UnorderedGroup_4__2?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContent__UnorderedGroup_4__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContent__UnorderedGroup_4__Impl
+ rule__SoundContent__UnorderedGroup_4__3?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContent__UnorderedGroup_4__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContent__UnorderedGroup_4__Impl
+ rule__SoundContent__UnorderedGroup_4__4?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContent__UnorderedGroup_4__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContent__UnorderedGroup_4__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Size__UnorderedGroup_4
+ @init {
+ int stackSize = keepStackSize();
+ getUnorderedGroupHelper().enter(grammarAccess.getSizeAccess().getUnorderedGroup_4());
+ }
+:
+ rule__Size__UnorderedGroup_4__0
+ ?
+;
+finally {
+ getUnorderedGroupHelper().leave(grammarAccess.getSizeAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+}
+
+rule__Size__UnorderedGroup_4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ boolean selected = false;
+ }
+:
+ (
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 0)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 0);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getSizeAccess().getGroup_4_0()); }
+ (rule__Size__Group_4_0__0)
+ { after(grammarAccess.getSizeAccess().getGroup_4_0()); }
+ )
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 1)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 1);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getSizeAccess().getGroup_4_1()); }
+ (rule__Size__Group_4_1__0)
+ { after(grammarAccess.getSizeAccess().getGroup_4_1()); }
+ )
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 2)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 2);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getSizeAccess().getGroup_4_2()); }
+ (rule__Size__Group_4_2__0)
+ { after(grammarAccess.getSizeAccess().getGroup_4_2()); }
+ )
+ )
+ )
+ )
+;
+finally {
+ if (selected)
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getSizeAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+}
+
+rule__Size__UnorderedGroup_4__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Size__UnorderedGroup_4__Impl
+ rule__Size__UnorderedGroup_4__1?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Size__UnorderedGroup_4__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Size__UnorderedGroup_4__Impl
+ rule__Size__UnorderedGroup_4__2?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Size__UnorderedGroup_4__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Size__UnorderedGroup_4__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Offset__UnorderedGroup_3
+ @init {
+ int stackSize = keepStackSize();
+ getUnorderedGroupHelper().enter(grammarAccess.getOffsetAccess().getUnorderedGroup_3());
+ }
+:
+ rule__Offset__UnorderedGroup_3__0
+ ?
+;
+finally {
+ getUnorderedGroupHelper().leave(grammarAccess.getOffsetAccess().getUnorderedGroup_3());
+ restoreStackSize(stackSize);
+}
+
+rule__Offset__UnorderedGroup_3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ boolean selected = false;
+ }
+:
+ (
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 0)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 0);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getOffsetAccess().getGroup_3_0()); }
+ (rule__Offset__Group_3_0__0)
+ { after(grammarAccess.getOffsetAccess().getGroup_3_0()); }
+ )
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 1)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 1);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getOffsetAccess().getGroup_3_1()); }
+ (rule__Offset__Group_3_1__0)
+ { after(grammarAccess.getOffsetAccess().getGroup_3_1()); }
+ )
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 2)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 2);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getOffsetAccess().getGroup_3_2()); }
+ (rule__Offset__Group_3_2__0)
+ { after(grammarAccess.getOffsetAccess().getGroup_3_2()); }
+ )
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 3)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 3);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getOffsetAccess().getSizeAssignment_3_3()); }
+ (rule__Offset__SizeAssignment_3_3)
+ { after(grammarAccess.getOffsetAccess().getSizeAssignment_3_3()); }
+ )
+ )
+ )
+ )
+;
+finally {
+ if (selected)
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getOffsetAccess().getUnorderedGroup_3());
+ restoreStackSize(stackSize);
+}
+
+rule__Offset__UnorderedGroup_3__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Offset__UnorderedGroup_3__Impl
+ rule__Offset__UnorderedGroup_3__1?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Offset__UnorderedGroup_3__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Offset__UnorderedGroup_3__Impl
+ rule__Offset__UnorderedGroup_3__2?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Offset__UnorderedGroup_3__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Offset__UnorderedGroup_3__Impl
+ rule__Offset__UnorderedGroup_3__3?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Offset__UnorderedGroup_3__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Offset__UnorderedGroup_3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__AreaSet__UnorderedGroup_4
+ @init {
+ int stackSize = keepStackSize();
+ getUnorderedGroupHelper().enter(grammarAccess.getAreaSetAccess().getUnorderedGroup_4());
+ }
+:
+ rule__AreaSet__UnorderedGroup_4__0
+ ?
+;
+finally {
+ getUnorderedGroupHelper().leave(grammarAccess.getAreaSetAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+}
+
+rule__AreaSet__UnorderedGroup_4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ boolean selected = false;
+ }
+:
+ (
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getAreaSetAccess().getUnorderedGroup_4(), 0)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getAreaSetAccess().getUnorderedGroup_4(), 0);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getAreaSetAccess().getGroup_4_0()); }
+ (rule__AreaSet__Group_4_0__0)
+ { after(grammarAccess.getAreaSetAccess().getGroup_4_0()); }
+ )
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getAreaSetAccess().getUnorderedGroup_4(), 1)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getAreaSetAccess().getUnorderedGroup_4(), 1);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getAreaSetAccess().getGroup_4_1()); }
+ (rule__AreaSet__Group_4_1__0)
+ { after(grammarAccess.getAreaSetAccess().getGroup_4_1()); }
+ )
+ )
+ )
+ )
+;
+finally {
+ if (selected)
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getAreaSetAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+}
+
+rule__AreaSet__UnorderedGroup_4__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__AreaSet__UnorderedGroup_4__Impl
+ rule__AreaSet__UnorderedGroup_4__1?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AreaSet__UnorderedGroup_4__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__AreaSet__UnorderedGroup_4__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ZoneSet__UnorderedGroup_4
+ @init {
+ int stackSize = keepStackSize();
+ getUnorderedGroupHelper().enter(grammarAccess.getZoneSetAccess().getUnorderedGroup_4());
+ }
+:
+ rule__ZoneSet__UnorderedGroup_4__0
+ ?
+;
+finally {
+ getUnorderedGroupHelper().leave(grammarAccess.getZoneSetAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+}
+
+rule__ZoneSet__UnorderedGroup_4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ boolean selected = false;
+ }
+:
+ (
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getZoneSetAccess().getUnorderedGroup_4(), 0)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getZoneSetAccess().getUnorderedGroup_4(), 0);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getZoneSetAccess().getGroup_4_0()); }
+ (rule__ZoneSet__Group_4_0__0)
+ { after(grammarAccess.getZoneSetAccess().getGroup_4_0()); }
+ )
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getZoneSetAccess().getUnorderedGroup_4(), 1)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getZoneSetAccess().getUnorderedGroup_4(), 1);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getZoneSetAccess().getGroup_4_1()); }
+ (rule__ZoneSet__Group_4_1__0)
+ { after(grammarAccess.getZoneSetAccess().getGroup_4_1()); }
+ )
+ )
+ )
+ )
+;
+finally {
+ if (selected)
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getZoneSetAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+}
+
+rule__ZoneSet__UnorderedGroup_4__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ZoneSet__UnorderedGroup_4__Impl
+ rule__ZoneSet__UnorderedGroup_4__1?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ZoneSet__UnorderedGroup_4__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ZoneSet__UnorderedGroup_4__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__CompositeArea__UnorderedGroup_4
+ @init {
+ int stackSize = keepStackSize();
+ getUnorderedGroupHelper().enter(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4());
+ }
+:
+ rule__CompositeArea__UnorderedGroup_4__0
+ ?
+;
+finally {
+ getUnorderedGroupHelper().leave(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+}
+
+rule__CompositeArea__UnorderedGroup_4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ boolean selected = false;
+ }
+:
+ (
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4(), 0)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4(), 0);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getCompositeAreaAccess().getGroup_4_0()); }
+ (rule__CompositeArea__Group_4_0__0)
+ { after(grammarAccess.getCompositeAreaAccess().getGroup_4_0()); }
+ )
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4(), 1)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4(), 1);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getCompositeAreaAccess().getGroup_4_1()); }
+ (rule__CompositeArea__Group_4_1__0)
+ { after(grammarAccess.getCompositeAreaAccess().getGroup_4_1()); }
+ )
+ )
+ )
+ )
+;
+finally {
+ if (selected)
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+}
+
+rule__CompositeArea__UnorderedGroup_4__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CompositeArea__UnorderedGroup_4__Impl
+ rule__CompositeArea__UnorderedGroup_4__1?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompositeArea__UnorderedGroup_4__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CompositeArea__UnorderedGroup_4__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Area__UnorderedGroup_4
+ @init {
+ int stackSize = keepStackSize();
+ getUnorderedGroupHelper().enter(grammarAccess.getAreaAccess().getUnorderedGroup_4());
+ }
+:
+ rule__Area__UnorderedGroup_4__0
+ ?
+;
+finally {
+ getUnorderedGroupHelper().leave(grammarAccess.getAreaAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+}
+
+rule__Area__UnorderedGroup_4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ boolean selected = false;
+ }
+:
+ (
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 0)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 0);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getAreaAccess().getGroup_4_0()); }
+ (rule__Area__Group_4_0__0)
+ { after(grammarAccess.getAreaAccess().getGroup_4_0()); }
+ )
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 1)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 1);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getAreaAccess().getGroup_4_1()); }
+ (rule__Area__Group_4_1__0)
+ { after(grammarAccess.getAreaAccess().getGroup_4_1()); }
+ )
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 2)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 2);
+ }
+ {
+ selected = true;
+ }
+ (
+ (
+ { before(grammarAccess.getAreaAccess().getSizeAssignment_4_2()); }
+ (rule__Area__SizeAssignment_4_2)
+ { after(grammarAccess.getAreaAccess().getSizeAssignment_4_2()); }
+ )
+ (
+ { before(grammarAccess.getAreaAccess().getSizeAssignment_4_2()); }
+ ((rule__Area__SizeAssignment_4_2)=>rule__Area__SizeAssignment_4_2)*
+ { after(grammarAccess.getAreaAccess().getSizeAssignment_4_2()); }
+ )
+ )
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 3)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 3);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getAreaAccess().getGroup_4_3()); }
+ (rule__Area__Group_4_3__0)
+ { after(grammarAccess.getAreaAccess().getGroup_4_3()); }
+ )
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 4)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 4);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getAreaAccess().getGroup_4_4()); }
+ (rule__Area__Group_4_4__0)
+ { after(grammarAccess.getAreaAccess().getGroup_4_4()); }
+ )
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 5)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 5);
+ }
+ {
+ selected = true;
+ }
+ (
+ (
+ { before(grammarAccess.getAreaAccess().getTagsAssignment_4_5()); }
+ (rule__Area__TagsAssignment_4_5)
+ { after(grammarAccess.getAreaAccess().getTagsAssignment_4_5()); }
+ )
+ (
+ { before(grammarAccess.getAreaAccess().getTagsAssignment_4_5()); }
+ ((rule__Area__TagsAssignment_4_5)=>rule__Area__TagsAssignment_4_5)*
+ { after(grammarAccess.getAreaAccess().getTagsAssignment_4_5()); }
+ )
+ )
+ )
+ )
+ )
+;
+finally {
+ if (selected)
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getAreaAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+}
+
+rule__Area__UnorderedGroup_4__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Area__UnorderedGroup_4__Impl
+ rule__Area__UnorderedGroup_4__1?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Area__UnorderedGroup_4__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Area__UnorderedGroup_4__Impl
+ rule__Area__UnorderedGroup_4__2?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Area__UnorderedGroup_4__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Area__UnorderedGroup_4__Impl
+ rule__Area__UnorderedGroup_4__3?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Area__UnorderedGroup_4__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Area__UnorderedGroup_4__Impl
+ rule__Area__UnorderedGroup_4__4?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Area__UnorderedGroup_4__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Area__UnorderedGroup_4__Impl
+ rule__Area__UnorderedGroup_4__5?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Area__UnorderedGroup_4__5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Area__UnorderedGroup_4__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Zone__UnorderedGroup_4
+ @init {
+ int stackSize = keepStackSize();
+ getUnorderedGroupHelper().enter(grammarAccess.getZoneAccess().getUnorderedGroup_4());
+ }
+:
+ rule__Zone__UnorderedGroup_4__0
+ ?
+;
+finally {
+ getUnorderedGroupHelper().leave(grammarAccess.getZoneAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+}
+
+rule__Zone__UnorderedGroup_4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ boolean selected = false;
+ }
+:
+ (
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 0)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 0);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getZoneAccess().getGroup_4_0()); }
+ (rule__Zone__Group_4_0__0)
+ { after(grammarAccess.getZoneAccess().getGroup_4_0()); }
+ )
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 1)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 1);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getZoneAccess().getGroup_4_1()); }
+ (rule__Zone__Group_4_1__0)
+ { after(grammarAccess.getZoneAccess().getGroup_4_1()); }
+ )
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 2)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 2);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getZoneAccess().getGroup_4_2()); }
+ (rule__Zone__Group_4_2__0)
+ { after(grammarAccess.getZoneAccess().getGroup_4_2()); }
+ )
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 3)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 3);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getZoneAccess().getGroup_4_3()); }
+ (rule__Zone__Group_4_3__0)
+ { after(grammarAccess.getZoneAccess().getGroup_4_3()); }
+ )
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 4)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 4);
+ }
+ {
+ selected = true;
+ }
+ (
+ (
+ { before(grammarAccess.getZoneAccess().getTagsAssignment_4_4()); }
+ (rule__Zone__TagsAssignment_4_4)
+ { after(grammarAccess.getZoneAccess().getTagsAssignment_4_4()); }
+ )
+ (
+ { before(grammarAccess.getZoneAccess().getTagsAssignment_4_4()); }
+ ((rule__Zone__TagsAssignment_4_4)=>rule__Zone__TagsAssignment_4_4)*
+ { after(grammarAccess.getZoneAccess().getTagsAssignment_4_4()); }
+ )
+ )
+ )
+ )
+ )
+;
+finally {
+ if (selected)
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getZoneAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+}
+
+rule__Zone__UnorderedGroup_4__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Zone__UnorderedGroup_4__Impl
+ rule__Zone__UnorderedGroup_4__1?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Zone__UnorderedGroup_4__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Zone__UnorderedGroup_4__Impl
+ rule__Zone__UnorderedGroup_4__2?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Zone__UnorderedGroup_4__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Zone__UnorderedGroup_4__Impl
+ rule__Zone__UnorderedGroup_4__3?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Zone__UnorderedGroup_4__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Zone__UnorderedGroup_4__Impl
+ rule__Zone__UnorderedGroup_4__4?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Zone__UnorderedGroup_4__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Zone__UnorderedGroup_4__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ViewContentState__UnorderedGroup_4
+ @init {
+ int stackSize = keepStackSize();
+ getUnorderedGroupHelper().enter(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4());
+ }
+:
+ rule__ViewContentState__UnorderedGroup_4__0
+ ?
+;
+finally {
+ getUnorderedGroupHelper().leave(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentState__UnorderedGroup_4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ boolean selected = false;
+ }
+:
+ (
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4(), 0)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4(), 0);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getViewContentStateAccess().getGroup_4_0()); }
+ (rule__ViewContentState__Group_4_0__0)
+ { after(grammarAccess.getViewContentStateAccess().getGroup_4_0()); }
+ )
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4(), 1)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4(), 1);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getViewContentStateAccess().getGroup_4_1()); }
+ (rule__ViewContentState__Group_4_1__0)
+ { after(grammarAccess.getViewContentStateAccess().getGroup_4_1()); }
+ )
+ )
+ )
+ )
+;
+finally {
+ if (selected)
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentState__UnorderedGroup_4__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContentState__UnorderedGroup_4__Impl
+ rule__ViewContentState__UnorderedGroup_4__1?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentState__UnorderedGroup_4__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContentState__UnorderedGroup_4__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__SoundContentState__UnorderedGroup_4
+ @init {
+ int stackSize = keepStackSize();
+ getUnorderedGroupHelper().enter(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4());
+ }
+:
+ rule__SoundContentState__UnorderedGroup_4__0
+ ?
+;
+finally {
+ getUnorderedGroupHelper().leave(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentState__UnorderedGroup_4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ boolean selected = false;
+ }
+:
+ (
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4(), 0)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4(), 0);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getSoundContentStateAccess().getGroup_4_0()); }
+ (rule__SoundContentState__Group_4_0__0)
+ { after(grammarAccess.getSoundContentStateAccess().getGroup_4_0()); }
+ )
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4(), 1)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4(), 1);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getSoundContentStateAccess().getGroup_4_1()); }
+ (rule__SoundContentState__Group_4_1__0)
+ { after(grammarAccess.getSoundContentStateAccess().getGroup_4_1()); }
+ )
+ )
+ )
+ )
+;
+finally {
+ if (selected)
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentState__UnorderedGroup_4__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContentState__UnorderedGroup_4__Impl
+ rule__SoundContentState__UnorderedGroup_4__1?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentState__UnorderedGroup_4__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContentState__UnorderedGroup_4__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ViewContentSet__UnorderedGroup_4
+ @init {
+ int stackSize = keepStackSize();
+ getUnorderedGroupHelper().enter(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4());
+ }
+:
+ rule__ViewContentSet__UnorderedGroup_4__0
+ ?
+;
+finally {
+ getUnorderedGroupHelper().leave(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__UnorderedGroup_4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ boolean selected = false;
+ }
+:
+ (
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 0)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 0);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getViewContentSetAccess().getGroup_4_0()); }
+ (rule__ViewContentSet__Group_4_0__0)
+ { after(grammarAccess.getViewContentSetAccess().getGroup_4_0()); }
+ )
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 1)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 1);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getViewContentSetAccess().getGroup_4_1()); }
+ (rule__ViewContentSet__Group_4_1__0)
+ { after(grammarAccess.getViewContentSetAccess().getGroup_4_1()); }
+ )
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 2)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 2);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getViewContentSetAccess().getGroup_4_2()); }
+ (rule__ViewContentSet__Group_4_2__0)
+ { after(grammarAccess.getViewContentSetAccess().getGroup_4_2()); }
+ )
+ )
+ )
+ )
+;
+finally {
+ if (selected)
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__UnorderedGroup_4__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContentSet__UnorderedGroup_4__Impl
+ rule__ViewContentSet__UnorderedGroup_4__1?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__UnorderedGroup_4__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContentSet__UnorderedGroup_4__Impl
+ rule__ViewContentSet__UnorderedGroup_4__2?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__UnorderedGroup_4__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewContentSet__UnorderedGroup_4__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__SoundContentSet__UnorderedGroup_4
+ @init {
+ int stackSize = keepStackSize();
+ getUnorderedGroupHelper().enter(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4());
+ }
+:
+ rule__SoundContentSet__UnorderedGroup_4__0
+ ?
+;
+finally {
+ getUnorderedGroupHelper().leave(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__UnorderedGroup_4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ boolean selected = false;
+ }
+:
+ (
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 0)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 0);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getSoundContentSetAccess().getGroup_4_0()); }
+ (rule__SoundContentSet__Group_4_0__0)
+ { after(grammarAccess.getSoundContentSetAccess().getGroup_4_0()); }
+ )
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 1)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 1);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getSoundContentSetAccess().getGroup_4_1()); }
+ (rule__SoundContentSet__Group_4_1__0)
+ { after(grammarAccess.getSoundContentSetAccess().getGroup_4_1()); }
+ )
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 2)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 2);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getSoundContentSetAccess().getGroup_4_2()); }
+ (rule__SoundContentSet__Group_4_2__0)
+ { after(grammarAccess.getSoundContentSetAccess().getGroup_4_2()); }
+ )
+ )
+ )
+ )
+;
+finally {
+ if (selected)
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__UnorderedGroup_4__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContentSet__UnorderedGroup_4__Impl
+ rule__SoundContentSet__UnorderedGroup_4__1?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__UnorderedGroup_4__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContentSet__UnorderedGroup_4__Impl
+ rule__SoundContentSet__UnorderedGroup_4__2?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__UnorderedGroup_4__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SoundContentSet__UnorderedGroup_4__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Scene__UnorderedGroup_4
+ @init {
+ int stackSize = keepStackSize();
+ getUnorderedGroupHelper().enter(grammarAccess.getSceneAccess().getUnorderedGroup_4());
+ }
+:
+ rule__Scene__UnorderedGroup_4__0
+ ?
+;
+finally {
+ getUnorderedGroupHelper().leave(grammarAccess.getSceneAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+}
+
+rule__Scene__UnorderedGroup_4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ boolean selected = false;
+ }
+:
+ (
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 0)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 0);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getSceneAccess().getGroup_4_0()); }
+ (rule__Scene__Group_4_0__0)
+ { after(grammarAccess.getSceneAccess().getGroup_4_0()); }
+ )
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 1)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 1);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getSceneAccess().getGroup_4_1()); }
+ (rule__Scene__Group_4_1__0)
+ { after(grammarAccess.getSceneAccess().getGroup_4_1()); }
+ )
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 2)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 2);
+ }
+ {
+ selected = true;
+ }
+ (
+ (
+ { before(grammarAccess.getSceneAccess().getPropertiesAssignment_4_2()); }
+ (rule__Scene__PropertiesAssignment_4_2)
+ { after(grammarAccess.getSceneAccess().getPropertiesAssignment_4_2()); }
+ )
+ (
+ { before(grammarAccess.getSceneAccess().getPropertiesAssignment_4_2()); }
+ ((rule__Scene__PropertiesAssignment_4_2)=>rule__Scene__PropertiesAssignment_4_2)*
+ { after(grammarAccess.getSceneAccess().getPropertiesAssignment_4_2()); }
+ )
+ )
+ )
+ )
+ )
+;
+finally {
+ if (selected)
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getSceneAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+}
+
+rule__Scene__UnorderedGroup_4__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Scene__UnorderedGroup_4__Impl
+ rule__Scene__UnorderedGroup_4__1?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Scene__UnorderedGroup_4__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Scene__UnorderedGroup_4__Impl
+ rule__Scene__UnorderedGroup_4__2?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Scene__UnorderedGroup_4__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Scene__UnorderedGroup_4__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__VerticalLayout__UnorderedGroup_3
+ @init {
+ int stackSize = keepStackSize();
+ getUnorderedGroupHelper().enter(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3());
+ }
+:
+ rule__VerticalLayout__UnorderedGroup_3__0
+ ?
+;
+finally {
+ getUnorderedGroupHelper().leave(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3());
+ restoreStackSize(stackSize);
+}
+
+rule__VerticalLayout__UnorderedGroup_3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ boolean selected = false;
+ }
+:
+ (
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3(), 0)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3(), 0);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getVerticalLayoutAccess().getGroup_3_0()); }
+ (rule__VerticalLayout__Group_3_0__0)
+ { after(grammarAccess.getVerticalLayoutAccess().getGroup_3_0()); }
+ )
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3(), 1)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3(), 1);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getVerticalLayoutAccess().getGroup_3_1()); }
+ (rule__VerticalLayout__Group_3_1__0)
+ { after(grammarAccess.getVerticalLayoutAccess().getGroup_3_1()); }
+ )
+ )
+ )
+ )
+;
+finally {
+ if (selected)
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3());
+ restoreStackSize(stackSize);
+}
+
+rule__VerticalLayout__UnorderedGroup_3__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VerticalLayout__UnorderedGroup_3__Impl
+ rule__VerticalLayout__UnorderedGroup_3__1?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VerticalLayout__UnorderedGroup_3__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__VerticalLayout__UnorderedGroup_3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__HorizontalLayout__UnorderedGroup_3
+ @init {
+ int stackSize = keepStackSize();
+ getUnorderedGroupHelper().enter(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3());
+ }
+:
+ rule__HorizontalLayout__UnorderedGroup_3__0
+ ?
+;
+finally {
+ getUnorderedGroupHelper().leave(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3());
+ restoreStackSize(stackSize);
+}
+
+rule__HorizontalLayout__UnorderedGroup_3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ boolean selected = false;
+ }
+:
+ (
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3(), 0)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3(), 0);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getHorizontalLayoutAccess().getGroup_3_0()); }
+ (rule__HorizontalLayout__Group_3_0__0)
+ { after(grammarAccess.getHorizontalLayoutAccess().getGroup_3_0()); }
+ )
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3(), 1)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3(), 1);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getHorizontalLayoutAccess().getGroup_3_1()); }
+ (rule__HorizontalLayout__Group_3_1__0)
+ { after(grammarAccess.getHorizontalLayoutAccess().getGroup_3_1()); }
+ )
+ )
+ )
+ )
+;
+finally {
+ if (selected)
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3());
+ restoreStackSize(stackSize);
+}
+
+rule__HorizontalLayout__UnorderedGroup_3__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__HorizontalLayout__UnorderedGroup_3__Impl
+ rule__HorizontalLayout__UnorderedGroup_3__1?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__HorizontalLayout__UnorderedGroup_3__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__HorizontalLayout__UnorderedGroup_3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__PositionContainer__UnorderedGroup_3
+ @init {
+ int stackSize = keepStackSize();
+ getUnorderedGroupHelper().enter(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3());
+ }
+:
+ rule__PositionContainer__UnorderedGroup_3__0
+ ?
+;
+finally {
+ getUnorderedGroupHelper().leave(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3());
+ restoreStackSize(stackSize);
+}
+
+rule__PositionContainer__UnorderedGroup_3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ boolean selected = false;
+ }
+:
+ (
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 0)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 0);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getPositionContainerAccess().getGroup_3_0()); }
+ (rule__PositionContainer__Group_3_0__0)
+ { after(grammarAccess.getPositionContainerAccess().getGroup_3_0()); }
+ )
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 1)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 1);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getPositionContainerAccess().getGroup_3_1()); }
+ (rule__PositionContainer__Group_3_1__0)
+ { after(grammarAccess.getPositionContainerAccess().getGroup_3_1()); }
+ )
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 2)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 2);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getPositionContainerAccess().getGroup_3_2()); }
+ (rule__PositionContainer__Group_3_2__0)
+ { after(grammarAccess.getPositionContainerAccess().getGroup_3_2()); }
+ )
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 3)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 3);
+ }
+ {
+ selected = true;
+ }
+ (
+ { before(grammarAccess.getPositionContainerAccess().getGroup_3_3()); }
+ (rule__PositionContainer__Group_3_3__0)
+ { after(grammarAccess.getPositionContainerAccess().getGroup_3_3()); }
+ )
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 4)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 4);
+ }
+ {
+ selected = true;
+ }
+ (
+ (
+ { before(grammarAccess.getPositionContainerAccess().getOffsetAssignment_3_4()); }
+ (rule__PositionContainer__OffsetAssignment_3_4)
+ { after(grammarAccess.getPositionContainerAccess().getOffsetAssignment_3_4()); }
+ )
+ (
+ { before(grammarAccess.getPositionContainerAccess().getOffsetAssignment_3_4()); }
+ ((rule__PositionContainer__OffsetAssignment_3_4)=>rule__PositionContainer__OffsetAssignment_3_4)*
+ { after(grammarAccess.getPositionContainerAccess().getOffsetAssignment_3_4()); }
+ )
+ )
+ )
+ )
+ )
+;
+finally {
+ if (selected)
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3());
+ restoreStackSize(stackSize);
+}
+
+rule__PositionContainer__UnorderedGroup_3__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__PositionContainer__UnorderedGroup_3__Impl
+ rule__PositionContainer__UnorderedGroup_3__1?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PositionContainer__UnorderedGroup_3__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__PositionContainer__UnorderedGroup_3__Impl
+ rule__PositionContainer__UnorderedGroup_3__2?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PositionContainer__UnorderedGroup_3__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__PositionContainer__UnorderedGroup_3__Impl
+ rule__PositionContainer__UnorderedGroup_3__3?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PositionContainer__UnorderedGroup_3__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__PositionContainer__UnorderedGroup_3__Impl
+ rule__PositionContainer__UnorderedGroup_3__4?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PositionContainer__UnorderedGroup_3__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__PositionContainer__UnorderedGroup_3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__TopLevel__ProjectAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getTopLevelAccess().getProjectProjectParserRuleCall_2_0()); }
+ ruleProject
+ { after(grammarAccess.getTopLevelAccess().getProjectProjectParserRuleCall_2_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__TopLevel__ImportsAssignment_3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getTopLevelAccess().getImportsImportParserRuleCall_3_0()); }
+ ruleImport
+ { after(grammarAccess.getTopLevelAccess().getImportsImportParserRuleCall_3_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__TopLevel__PackagesAssignment_4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getTopLevelAccess().getPackagesPackageParserRuleCall_4_0()); }
+ rulePackage
+ { after(grammarAccess.getTopLevelAccess().getPackagesPackageParserRuleCall_4_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Import__ImportedNamespaceAssignment_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getImportAccess().getImportedNamespaceQualifiedNameWithWildcardParserRuleCall_1_0()); }
+ ruleQualifiedNameWithWildcard
+ { after(grammarAccess.getImportAccess().getImportedNamespaceQualifiedNameWithWildcardParserRuleCall_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AbstractProperty__NameAssignment_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getAbstractPropertyAccess().getNameValidIDParserRuleCall_1_0()); }
+ ruleValidID
+ { after(grammarAccess.getAbstractPropertyAccess().getNameValidIDParserRuleCall_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AbstractProperty__ValueAssignment_2_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getAbstractPropertyAccess().getValueIntegerValueParserRuleCall_2_1_0()); }
+ ruleIntegerValue
+ { after(grammarAccess.getAbstractPropertyAccess().getValueIntegerValueParserRuleCall_2_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Tag__NameAssignment_0_0_0_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getTagAccess().getNameQualifiedNameParserRuleCall_0_0_0_2_0()); }
+ ruleQualifiedName
+ { after(grammarAccess.getTagAccess().getNameQualifiedNameParserRuleCall_0_0_0_2_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Tag__NameAssignment_0_0_1_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getTagAccess().getNameQualifiedNameParserRuleCall_0_0_1_2_0()); }
+ ruleQualifiedName
+ { after(grammarAccess.getTagAccess().getNameQualifiedNameParserRuleCall_0_0_1_2_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Tag__ValuesAssignment_1_1_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getTagAccess().getValuesEStringParserRuleCall_1_1_0_0()); }
+ ruleEString
+ { after(grammarAccess.getTagAccess().getValuesEStringParserRuleCall_1_1_0_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Tag__ValuesAssignment_1_1_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getTagAccess().getValuesEStringParserRuleCall_1_1_1_1_0()); }
+ ruleEString
+ { after(grammarAccess.getTagAccess().getValuesEStringParserRuleCall_1_1_1_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Package__NameAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getPackageAccess().getNameQualifiedNameParserRuleCall_2_0()); }
+ ruleQualifiedName
+ { after(grammarAccess.getPackageAccess().getNameQualifiedNameParserRuleCall_2_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Package__DescriptionAssignment_4_0_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getPackageAccess().getDescriptionEStringParserRuleCall_4_0_1_0()); }
+ ruleEString
+ { after(grammarAccess.getPackageAccess().getDescriptionEStringParserRuleCall_4_0_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Package__PackagableelementAssignment_4_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getPackageAccess().getPackagableelementPackagableElementParserRuleCall_4_1_0()); }
+ rulePackagableElement
+ { after(grammarAccess.getPackageAccess().getPackagableelementPackagableElementParserRuleCall_4_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Stereotype__TargetModelNameAssignment_3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getStereotypeAccess().getTargetModelNameStereotypableElementNameParserRuleCall_3_0()); }
+ ruleStereotypableElementName
+ { after(grammarAccess.getStereotypeAccess().getTargetModelNameStereotypableElementNameParserRuleCall_3_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Stereotype__NameAssignment_5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getStereotypeAccess().getNameQualifiedNameParserRuleCall_5_0()); }
+ ruleQualifiedName
+ { after(grammarAccess.getStereotypeAccess().getNameQualifiedNameParserRuleCall_5_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Stereotype__VariablesAssignment_7_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getStereotypeAccess().getVariablesVariableParserRuleCall_7_0_0()); }
+ ruleVariable
+ { after(grammarAccess.getStereotypeAccess().getVariablesVariableParserRuleCall_7_0_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Stereotype__VariablesAssignment_7_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getStereotypeAccess().getVariablesVariableParserRuleCall_7_1_1_0()); }
+ ruleVariable
+ { after(grammarAccess.getStereotypeAccess().getVariablesVariableParserRuleCall_7_1_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Stereotype__BodyTextAssignment_9
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getStereotypeAccess().getBodyTextRichStringParserRuleCall_9_0()); }
+ ruleRichString
+ { after(grammarAccess.getStereotypeAccess().getBodyTextRichStringParserRuleCall_9_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Display__NameAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getDisplayAccess().getNameQualifiedNameParserRuleCall_2_0()); }
+ ruleQualifiedName
+ { after(grammarAccess.getDisplayAccess().getNameQualifiedNameParserRuleCall_2_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Display__DescriptionAssignment_4_0_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getDisplayAccess().getDescriptionEStringParserRuleCall_4_0_1_0()); }
+ ruleEString
+ { after(grammarAccess.getDisplayAccess().getDescriptionEStringParserRuleCall_4_0_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Display__SizeAssignment_4_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getDisplayAccess().getSizeSizeIdentifierParserRuleCall_4_1_0()); }
+ ruleSizeIdentifier
+ { after(grammarAccess.getDisplayAccess().getSizeSizeIdentifierParserRuleCall_4_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Display__RootAssignment_4_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getDisplayAccess().getRootCompositeAreaParserRuleCall_4_2_0()); }
+ ruleCompositeArea
+ { after(grammarAccess.getDisplayAccess().getRootCompositeAreaParserRuleCall_4_2_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Constraint__NameAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getConstraintAccess().getNameQualifiedNameParserRuleCall_2_0()); }
+ ruleQualifiedName
+ { after(grammarAccess.getConstraintAccess().getNameQualifiedNameParserRuleCall_2_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Constraint__DescriptionAssignment_4_0_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getConstraintAccess().getDescriptionEStringParserRuleCall_4_0_1_0()); }
+ ruleEString
+ { after(grammarAccess.getConstraintAccess().getDescriptionEStringParserRuleCall_4_0_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Constraint__RuntimeAssignment_4_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getConstraintAccess().getRuntimeEBooleanParserRuleCall_4_1_1_0()); }
+ ruleEBoolean
+ { after(grammarAccess.getConstraintAccess().getRuntimeEBooleanParserRuleCall_4_1_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Constraint__ExpressionAssignment_4_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getConstraintAccess().getExpressionComplexExpressionParserRuleCall_4_2_0()); }
+ ruleComplexExpression
+ { after(grammarAccess.getConstraintAccess().getExpressionComplexExpressionParserRuleCall_4_2_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContent__NameAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getViewContentAccess().getNameQualifiedNameParserRuleCall_2_0()); }
+ ruleQualifiedName
+ { after(grammarAccess.getViewContentAccess().getNameQualifiedNameParserRuleCall_2_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContent__DescriptionAssignment_4_0_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getViewContentAccess().getDescriptionEStringParserRuleCall_4_0_1_0()); }
+ ruleEString
+ { after(grammarAccess.getViewContentAccess().getDescriptionEStringParserRuleCall_4_0_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContent__LoserTypeAssignment_4_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getViewContentAccess().getLoserTypeLoserTypeEnumRuleCall_4_1_1_0()); }
+ ruleLoserType
+ { after(grammarAccess.getViewContentAccess().getLoserTypeLoserTypeEnumRuleCall_4_1_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContent__AllocatableAssignment_4_2_2_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getViewContentAccess().getAllocatableAbstractAllocatableCrossReference_4_2_2_0_0()); }
+ (
+ { before(grammarAccess.getViewContentAccess().getAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_0_0_1()); }
+ ruleQualifiedName
+ { after(grammarAccess.getViewContentAccess().getAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_0_0_1()); }
+ )
+ { after(grammarAccess.getViewContentAccess().getAllocatableAbstractAllocatableCrossReference_4_2_2_0_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContent__AllocatableAssignment_4_2_2_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getViewContentAccess().getAllocatableAbstractAllocatableCrossReference_4_2_2_1_1_0()); }
+ (
+ { before(grammarAccess.getViewContentAccess().getAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_1_1_0_1()); }
+ ruleQualifiedName
+ { after(grammarAccess.getViewContentAccess().getAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_1_1_0_1()); }
+ )
+ { after(grammarAccess.getViewContentAccess().getAllocatableAbstractAllocatableCrossReference_4_2_2_1_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContent__StatesAssignment_4_3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getViewContentAccess().getStatesViewContentStateParserRuleCall_4_3_0()); }
+ ruleViewContentState
+ { after(grammarAccess.getViewContentAccess().getStatesViewContentStateParserRuleCall_4_3_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContent__SizeAssignment_4_4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getViewContentAccess().getSizeSizeIdentifierParserRuleCall_4_4_0()); }
+ ruleSizeIdentifier
+ { after(grammarAccess.getViewContentAccess().getSizeSizeIdentifierParserRuleCall_4_4_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContent__TagsAssignment_4_5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getViewContentAccess().getTagsTagParserRuleCall_4_5_0()); }
+ ruleTag
+ { after(grammarAccess.getViewContentAccess().getTagsTagParserRuleCall_4_5_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContent__NameAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getSoundContentAccess().getNameQualifiedNameParserRuleCall_2_0()); }
+ ruleQualifiedName
+ { after(grammarAccess.getSoundContentAccess().getNameQualifiedNameParserRuleCall_2_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContent__DescriptionAssignment_4_0_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getSoundContentAccess().getDescriptionEStringParserRuleCall_4_0_1_0()); }
+ ruleEString
+ { after(grammarAccess.getSoundContentAccess().getDescriptionEStringParserRuleCall_4_0_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContent__LoserTypeAssignment_4_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getSoundContentAccess().getLoserTypeLoserTypeEnumRuleCall_4_1_1_0()); }
+ ruleLoserType
+ { after(grammarAccess.getSoundContentAccess().getLoserTypeLoserTypeEnumRuleCall_4_1_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContent__AllocatableAssignment_4_2_2_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getSoundContentAccess().getAllocatableAbstractAllocatableCrossReference_4_2_2_0_0()); }
+ (
+ { before(grammarAccess.getSoundContentAccess().getAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_0_0_1()); }
+ ruleQualifiedName
+ { after(grammarAccess.getSoundContentAccess().getAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_0_0_1()); }
+ )
+ { after(grammarAccess.getSoundContentAccess().getAllocatableAbstractAllocatableCrossReference_4_2_2_0_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContent__AllocatableAssignment_4_2_2_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getSoundContentAccess().getAllocatableAbstractAllocatableCrossReference_4_2_2_1_1_0()); }
+ (
+ { before(grammarAccess.getSoundContentAccess().getAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_1_1_0_1()); }
+ ruleQualifiedName
+ { after(grammarAccess.getSoundContentAccess().getAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_1_1_0_1()); }
+ )
+ { after(grammarAccess.getSoundContentAccess().getAllocatableAbstractAllocatableCrossReference_4_2_2_1_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContent__StatesAssignment_4_3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getSoundContentAccess().getStatesSoundContentStateParserRuleCall_4_3_0()); }
+ ruleSoundContentState
+ { after(grammarAccess.getSoundContentAccess().getStatesSoundContentStateParserRuleCall_4_3_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContent__TagsAssignment_4_4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getSoundContentAccess().getTagsTagParserRuleCall_4_4_0()); }
+ ruleTag
+ { after(grammarAccess.getSoundContentAccess().getTagsTagParserRuleCall_4_4_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Size__NameAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getSizeAccess().getNameQualifiedNameParserRuleCall_2_0()); }
+ ruleQualifiedName
+ { after(grammarAccess.getSizeAccess().getNameQualifiedNameParserRuleCall_2_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Size__DescriptionAssignment_4_0_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getSizeAccess().getDescriptionEStringParserRuleCall_4_0_1_0()); }
+ ruleEString
+ { after(grammarAccess.getSizeAccess().getDescriptionEStringParserRuleCall_4_0_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Size__WidthAssignment_4_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getSizeAccess().getWidthEIntParserRuleCall_4_1_1_0()); }
+ ruleEInt
+ { after(grammarAccess.getSizeAccess().getWidthEIntParserRuleCall_4_1_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Size__HeightAssignment_4_2_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getSizeAccess().getHeightEIntParserRuleCall_4_2_1_0()); }
+ ruleEInt
+ { after(grammarAccess.getSizeAccess().getHeightEIntParserRuleCall_4_2_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SizeReference__SizeAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getSizeReferenceAccess().getSizeSizeCrossReference_2_0()); }
+ (
+ { before(grammarAccess.getSizeReferenceAccess().getSizeSizeQualifiedNameParserRuleCall_2_0_1()); }
+ ruleQualifiedName
+ { after(grammarAccess.getSizeReferenceAccess().getSizeSizeQualifiedNameParserRuleCall_2_0_1()); }
+ )
+ { after(grammarAccess.getSizeReferenceAccess().getSizeSizeCrossReference_2_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Offset__DescriptionAssignment_3_0_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getOffsetAccess().getDescriptionEStringParserRuleCall_3_0_1_0()); }
+ ruleEString
+ { after(grammarAccess.getOffsetAccess().getDescriptionEStringParserRuleCall_3_0_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Offset__XAssignment_3_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getOffsetAccess().getXEIntParserRuleCall_3_1_1_0()); }
+ ruleEInt
+ { after(grammarAccess.getOffsetAccess().getXEIntParserRuleCall_3_1_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Offset__YAssignment_3_2_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getOffsetAccess().getYEIntParserRuleCall_3_2_1_0()); }
+ ruleEInt
+ { after(grammarAccess.getOffsetAccess().getYEIntParserRuleCall_3_2_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Offset__SizeAssignment_3_3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getOffsetAccess().getSizeSizeReferenceParserRuleCall_3_3_0()); }
+ ruleSizeReference
+ { after(grammarAccess.getOffsetAccess().getSizeSizeReferenceParserRuleCall_3_3_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AreaSet__NameAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getAreaSetAccess().getNameQualifiedNameParserRuleCall_2_0()); }
+ ruleQualifiedName
+ { after(grammarAccess.getAreaSetAccess().getNameQualifiedNameParserRuleCall_2_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AreaSet__DescriptionAssignment_4_0_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getAreaSetAccess().getDescriptionEStringParserRuleCall_4_0_1_0()); }
+ ruleEString
+ { after(grammarAccess.getAreaSetAccess().getDescriptionEStringParserRuleCall_4_0_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AreaSet__TargetAssignment_4_1_2_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getAreaSetAccess().getTargetAbstractAllocatableCrossReference_4_1_2_0_0()); }
+ (
+ { before(grammarAccess.getAreaSetAccess().getTargetAbstractAllocatableQualifiedNameParserRuleCall_4_1_2_0_0_1()); }
+ ruleQualifiedName
+ { after(grammarAccess.getAreaSetAccess().getTargetAbstractAllocatableQualifiedNameParserRuleCall_4_1_2_0_0_1()); }
+ )
+ { after(grammarAccess.getAreaSetAccess().getTargetAbstractAllocatableCrossReference_4_1_2_0_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__AreaSet__TargetAssignment_4_1_2_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getAreaSetAccess().getTargetAbstractAllocatableCrossReference_4_1_2_1_1_0()); }
+ (
+ { before(grammarAccess.getAreaSetAccess().getTargetAbstractAllocatableQualifiedNameParserRuleCall_4_1_2_1_1_0_1()); }
+ ruleQualifiedName
+ { after(grammarAccess.getAreaSetAccess().getTargetAbstractAllocatableQualifiedNameParserRuleCall_4_1_2_1_1_0_1()); }
+ )
+ { after(grammarAccess.getAreaSetAccess().getTargetAbstractAllocatableCrossReference_4_1_2_1_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ZoneSet__NameAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getZoneSetAccess().getNameQualifiedNameParserRuleCall_2_0()); }
+ ruleQualifiedName
+ { after(grammarAccess.getZoneSetAccess().getNameQualifiedNameParserRuleCall_2_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ZoneSet__DescriptionAssignment_4_0_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getZoneSetAccess().getDescriptionEStringParserRuleCall_4_0_1_0()); }
+ ruleEString
+ { after(grammarAccess.getZoneSetAccess().getDescriptionEStringParserRuleCall_4_0_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ZoneSet__TargetAssignment_4_1_2_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getZoneSetAccess().getTargetAbstractAllocatableCrossReference_4_1_2_0_0()); }
+ (
+ { before(grammarAccess.getZoneSetAccess().getTargetAbstractAllocatableQualifiedNameParserRuleCall_4_1_2_0_0_1()); }
+ ruleQualifiedName
+ { after(grammarAccess.getZoneSetAccess().getTargetAbstractAllocatableQualifiedNameParserRuleCall_4_1_2_0_0_1()); }
+ )
+ { after(grammarAccess.getZoneSetAccess().getTargetAbstractAllocatableCrossReference_4_1_2_0_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ZoneSet__TargetAssignment_4_1_2_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getZoneSetAccess().getTargetAbstractAllocatableCrossReference_4_1_2_1_1_0()); }
+ (
+ { before(grammarAccess.getZoneSetAccess().getTargetAbstractAllocatableQualifiedNameParserRuleCall_4_1_2_1_1_0_1()); }
+ ruleQualifiedName
+ { after(grammarAccess.getZoneSetAccess().getTargetAbstractAllocatableQualifiedNameParserRuleCall_4_1_2_1_1_0_1()); }
+ )
+ { after(grammarAccess.getZoneSetAccess().getTargetAbstractAllocatableCrossReference_4_1_2_1_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompositeArea__NameAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getCompositeAreaAccess().getNameQualifiedNameParserRuleCall_2_0()); }
+ ruleQualifiedName
+ { after(grammarAccess.getCompositeAreaAccess().getNameQualifiedNameParserRuleCall_2_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompositeArea__DescriptionAssignment_4_0_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getCompositeAreaAccess().getDescriptionEStringParserRuleCall_4_0_1_0()); }
+ ruleEString
+ { after(grammarAccess.getCompositeAreaAccess().getDescriptionEStringParserRuleCall_4_0_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompositeArea__LayoutAssignment_4_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getCompositeAreaAccess().getLayoutLayoutManagerParserRuleCall_4_1_1_0()); }
+ ruleLayoutManager
+ { after(grammarAccess.getCompositeAreaAccess().getLayoutLayoutManagerParserRuleCall_4_1_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Area__NameAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getAreaAccess().getNameQualifiedNameParserRuleCall_2_0()); }
+ ruleQualifiedName
+ { after(grammarAccess.getAreaAccess().getNameQualifiedNameParserRuleCall_2_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Area__DescriptionAssignment_4_0_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getAreaAccess().getDescriptionEStringParserRuleCall_4_0_1_0()); }
+ ruleEString
+ { after(grammarAccess.getAreaAccess().getDescriptionEStringParserRuleCall_4_0_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Area__ArbitrationPolicyAssignment_4_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getAreaAccess().getArbitrationPolicyArbitrationPolicyEnumRuleCall_4_1_1_0()); }
+ ruleArbitrationPolicy
+ { after(grammarAccess.getAreaAccess().getArbitrationPolicyArbitrationPolicyEnumRuleCall_4_1_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Area__SizeAssignment_4_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getAreaAccess().getSizeSizeIdentifierParserRuleCall_4_2_0()); }
+ ruleSizeIdentifier
+ { after(grammarAccess.getAreaAccess().getSizeSizeIdentifierParserRuleCall_4_2_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Area__VisibilityAssignment_4_3_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getAreaAccess().getVisibilityVExpressionParserRuleCall_4_3_1_0()); }
+ ruleVExpression
+ { after(grammarAccess.getAreaAccess().getVisibilityVExpressionParserRuleCall_4_3_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Area__ZorderAssignment_4_4_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getAreaAccess().getZorderVExpressionParserRuleCall_4_4_1_0()); }
+ ruleVExpression
+ { after(grammarAccess.getAreaAccess().getZorderVExpressionParserRuleCall_4_4_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Area__TagsAssignment_4_5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getAreaAccess().getTagsTagParserRuleCall_4_5_0()); }
+ ruleTag
+ { after(grammarAccess.getAreaAccess().getTagsTagParserRuleCall_4_5_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Zone__NameAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getZoneAccess().getNameQualifiedNameParserRuleCall_2_0()); }
+ ruleQualifiedName
+ { after(grammarAccess.getZoneAccess().getNameQualifiedNameParserRuleCall_2_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Zone__DescriptionAssignment_4_0_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getZoneAccess().getDescriptionEStringParserRuleCall_4_0_1_0()); }
+ ruleEString
+ { after(grammarAccess.getZoneAccess().getDescriptionEStringParserRuleCall_4_0_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Zone__ArbitrationPolicyAssignment_4_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getZoneAccess().getArbitrationPolicyArbitrationPolicyEnumRuleCall_4_1_1_0()); }
+ ruleArbitrationPolicy
+ { after(grammarAccess.getZoneAccess().getArbitrationPolicyArbitrationPolicyEnumRuleCall_4_1_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Zone__VisibilityAssignment_4_2_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getZoneAccess().getVisibilityVExpressionParserRuleCall_4_2_1_0()); }
+ ruleVExpression
+ { after(grammarAccess.getZoneAccess().getVisibilityVExpressionParserRuleCall_4_2_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Zone__AttenuateAssignment_4_3_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getZoneAccess().getAttenuateIntegerValueParserRuleCall_4_3_1_0()); }
+ ruleIntegerValue
+ { after(grammarAccess.getZoneAccess().getAttenuateIntegerValueParserRuleCall_4_3_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Zone__TagsAssignment_4_4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getZoneAccess().getTagsTagParserRuleCall_4_4_0()); }
+ ruleTag
+ { after(grammarAccess.getZoneAccess().getTagsTagParserRuleCall_4_4_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentState__NameAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getViewContentStateAccess().getNameQualifiedNameParserRuleCall_2_0()); }
+ ruleQualifiedName
+ { after(grammarAccess.getViewContentStateAccess().getNameQualifiedNameParserRuleCall_2_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentState__DescriptionAssignment_4_0_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getViewContentStateAccess().getDescriptionEStringParserRuleCall_4_0_1_0()); }
+ ruleEString
+ { after(grammarAccess.getViewContentStateAccess().getDescriptionEStringParserRuleCall_4_0_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentState__ValueAssignment_4_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getViewContentStateAccess().getValueVExpressionParserRuleCall_4_1_1_0()); }
+ ruleVExpression
+ { after(grammarAccess.getViewContentStateAccess().getValueVExpressionParserRuleCall_4_1_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentState__NameAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getSoundContentStateAccess().getNameQualifiedNameParserRuleCall_2_0()); }
+ ruleQualifiedName
+ { after(grammarAccess.getSoundContentStateAccess().getNameQualifiedNameParserRuleCall_2_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentState__DescriptionAssignment_4_0_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getSoundContentStateAccess().getDescriptionEStringParserRuleCall_4_0_1_0()); }
+ ruleEString
+ { after(grammarAccess.getSoundContentStateAccess().getDescriptionEStringParserRuleCall_4_0_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentState__ValueAssignment_4_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getSoundContentStateAccess().getValueVExpressionParserRuleCall_4_1_1_0()); }
+ ruleVExpression
+ { after(grammarAccess.getSoundContentStateAccess().getValueVExpressionParserRuleCall_4_1_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Project__DummyNameAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getProjectAccess().getDummyNameQualifiedNameParserRuleCall_2_0()); }
+ ruleQualifiedName
+ { after(grammarAccess.getProjectAccess().getDummyNameQualifiedNameParserRuleCall_2_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Project__VersionAssignment_5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getProjectAccess().getVersionEStringParserRuleCall_5_0()); }
+ ruleEString
+ { after(grammarAccess.getProjectAccess().getVersionEStringParserRuleCall_5_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VPlusOperator__OperandAssignment_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getVPlusOperatorAccess().getOperandVComparisonAndParserRuleCall_1_1_0()); }
+ ruleVComparisonAnd
+ { after(grammarAccess.getVPlusOperatorAccess().getOperandVComparisonAndParserRuleCall_1_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VComparisonAnd__OperandAssignment_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getVComparisonAndAccess().getOperandVRelationalExpressionParserRuleCall_1_1_0()); }
+ ruleVRelationalExpression
+ { after(grammarAccess.getVComparisonAndAccess().getOperandVRelationalExpressionParserRuleCall_1_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VRelationalExpression__OperandAssignment_1_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getVRelationalExpressionAccess().getOperandVPrimaryExpressionParserRuleCall_1_2_0()); }
+ ruleVPrimaryExpression
+ { after(grammarAccess.getVRelationalExpressionAccess().getOperandVPrimaryExpressionParserRuleCall_1_2_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VRelationalExpression__OperandAssignment_2_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getVRelationalExpressionAccess().getOperandVPrimaryExpressionParserRuleCall_2_2_0()); }
+ ruleVPrimaryExpression
+ { after(grammarAccess.getVRelationalExpressionAccess().getOperandVPrimaryExpressionParserRuleCall_2_2_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VRelationalExpression__OperandAssignment_3_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getVRelationalExpressionAccess().getOperandVPrimaryExpressionParserRuleCall_3_2_0()); }
+ ruleVPrimaryExpression
+ { after(grammarAccess.getVRelationalExpressionAccess().getOperandVPrimaryExpressionParserRuleCall_3_2_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VRelationalExpression__OperandAssignment_4_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getVRelationalExpressionAccess().getOperandVPrimaryExpressionParserRuleCall_4_2_0()); }
+ ruleVPrimaryExpression
+ { after(grammarAccess.getVRelationalExpressionAccess().getOperandVPrimaryExpressionParserRuleCall_4_2_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ThatOfOperator__OperandAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getThatOfOperatorAccess().getOperandVMemberFeatureReferenceParserRuleCall_2_0()); }
+ ruleVMemberFeatureReference
+ { after(grammarAccess.getThatOfOperatorAccess().getOperandVMemberFeatureReferenceParserRuleCall_2_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VMemberFeatureReference__RefObjectAssignment_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getVMemberFeatureReferenceAccess().getRefObjectRuleObjectCrossReference_1_0()); }
+ (
+ { before(grammarAccess.getVMemberFeatureReferenceAccess().getRefObjectRuleObjectValidIDParserRuleCall_1_0_1()); }
+ ruleValidID
+ { after(grammarAccess.getVMemberFeatureReferenceAccess().getRefObjectRuleObjectValidIDParserRuleCall_1_0_1()); }
+ )
+ { after(grammarAccess.getVMemberFeatureReferenceAccess().getRefObjectRuleObjectCrossReference_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VMemberFeatureReference__RefObjectAssignment_2_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getVMemberFeatureReferenceAccess().getRefObjectRuleObjectCrossReference_2_2_0()); }
+ (
+ { before(grammarAccess.getVMemberFeatureReferenceAccess().getRefObjectRuleObjectValidIDParserRuleCall_2_2_0_1()); }
+ ruleValidID
+ { after(grammarAccess.getVMemberFeatureReferenceAccess().getRefObjectRuleObjectValidIDParserRuleCall_2_2_0_1()); }
+ )
+ { after(grammarAccess.getVMemberFeatureReferenceAccess().getRefObjectRuleObjectCrossReference_2_2_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__IntegerValue__ValueAssignment_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getIntegerValueAccess().getValueEIntParserRuleCall_1_0()); }
+ ruleEInt
+ { after(grammarAccess.getIntegerValueAccess().getValueEIntParserRuleCall_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CImpliesOperator__OperandAssignment_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getCImpliesOperatorAccess().getOperandCOrOperatorParserRuleCall_1_1_0()); }
+ ruleCOrOperator
+ { after(grammarAccess.getCImpliesOperatorAccess().getOperandCOrOperatorParserRuleCall_1_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COrOperator__OperandAssignment_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getCOrOperatorAccess().getOperandCAndOperatorParserRuleCall_1_1_0()); }
+ ruleCAndOperator
+ { after(grammarAccess.getCOrOperatorAccess().getOperandCAndOperatorParserRuleCall_1_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CAndOperator__OperandAssignment_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getCAndOperatorAccess().getOperandCEqualityExpressionParserRuleCall_1_1_0()); }
+ ruleCEqualityExpression
+ { after(grammarAccess.getCAndOperatorAccess().getOperandCEqualityExpressionParserRuleCall_1_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CEqualityExpression__OperandAssignment_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getCEqualityExpressionAccess().getOperandCRelationalExpressionParserRuleCall_1_1_0()); }
+ ruleCRelationalExpression
+ { after(grammarAccess.getCEqualityExpressionAccess().getOperandCRelationalExpressionParserRuleCall_1_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CRelationalExpression__OperandAssignment_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getCRelationalExpressionAccess().getOperandCUnaryOperationParserRuleCall_1_1_0()); }
+ ruleCUnaryOperation
+ { after(grammarAccess.getCRelationalExpressionAccess().getOperandCUnaryOperationParserRuleCall_1_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CUnaryOperation__OperandAssignment_0_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getCUnaryOperationAccess().getOperandCUnaryOperationParserRuleCall_0_2_0()); }
+ ruleCUnaryOperation
+ { after(grammarAccess.getCUnaryOperationAccess().getOperandCUnaryOperationParserRuleCall_0_2_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__OperandAssignment_1_1_0_1_0_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getCOperationFeatureCallAccess().getOperandCExpressionParserRuleCall_1_1_0_1_0_1_0()); }
+ ruleCExpression
+ { after(grammarAccess.getCOperationFeatureCallAccess().getOperandCExpressionParserRuleCall_1_1_0_1_0_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__TagNameAssignment_1_1_1_1_0_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getCOperationFeatureCallAccess().getTagNameEStringParserRuleCall_1_1_1_1_0_1_0()); }
+ ruleEString
+ { after(grammarAccess.getCOperationFeatureCallAccess().getTagNameEStringParserRuleCall_1_1_1_1_0_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__LambdaAssignment_1_1_2_0_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getCOperationFeatureCallAccess().getLambdaLambdaExpressionParserRuleCall_1_1_2_0_2_0()); }
+ ruleLambdaExpression
+ { after(grammarAccess.getCOperationFeatureCallAccess().getLambdaLambdaExpressionParserRuleCall_1_1_2_0_2_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__LambdaAssignment_1_1_2_1_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getCOperationFeatureCallAccess().getLambdaLambdaExpressionParserRuleCall_1_1_2_1_2_0()); }
+ ruleLambdaExpression
+ { after(grammarAccess.getCOperationFeatureCallAccess().getLambdaLambdaExpressionParserRuleCall_1_1_2_1_2_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__COperationFeatureCall__LambdaAssignment_1_1_2_2_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getCOperationFeatureCallAccess().getLambdaLambdaExpressionParserRuleCall_1_1_2_2_2_0()); }
+ ruleLambdaExpression
+ { after(grammarAccess.getCOperationFeatureCallAccess().getLambdaLambdaExpressionParserRuleCall_1_1_2_2_2_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PreviousModifier__ObjReferenceAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getPreviousModifierAccess().getObjReferenceCMemberFeatureReferenceParserRuleCall_2_0()); }
+ ruleCMemberFeatureReference
+ { after(grammarAccess.getPreviousModifierAccess().getObjReferenceCMemberFeatureReferenceParserRuleCall_2_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__HideLowerPriority__OperandAssignment_3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getHideLowerPriorityAccess().getOperandCExpressionParserRuleCall_3_0()); }
+ ruleCExpression
+ { after(grammarAccess.getHideLowerPriorityAccess().getOperandCExpressionParserRuleCall_3_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__HideLowerPriority__OperandAssignment_5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getHideLowerPriorityAccess().getOperandCExpressionParserRuleCall_5_0()); }
+ ruleCExpression
+ { after(grammarAccess.getHideLowerPriorityAccess().getOperandCExpressionParserRuleCall_5_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__MuteLowerPriority__OperandAssignment_3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getMuteLowerPriorityAccess().getOperandCExpressionParserRuleCall_3_0()); }
+ ruleCExpression
+ { after(grammarAccess.getMuteLowerPriorityAccess().getOperandCExpressionParserRuleCall_3_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__MuteLowerPriority__OperandAssignment_5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getMuteLowerPriorityAccess().getOperandCExpressionParserRuleCall_5_0()); }
+ ruleCExpression
+ { after(grammarAccess.getMuteLowerPriorityAccess().getOperandCExpressionParserRuleCall_5_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SetOfOperator__OperandAssignment_2_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getSetOfOperatorAccess().getOperandCExpressionParserRuleCall_2_0_0()); }
+ ruleCExpression
+ { after(grammarAccess.getSetOfOperatorAccess().getOperandCExpressionParserRuleCall_2_0_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SetOfOperator__OperandAssignment_2_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getSetOfOperatorAccess().getOperandCExpressionParserRuleCall_2_1_1_0()); }
+ ruleCExpression
+ { after(grammarAccess.getSetOfOperatorAccess().getOperandCExpressionParserRuleCall_2_1_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__IfStatement__ConditionAssignment_3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getIfStatementAccess().getConditionCExpressionParserRuleCall_3_0()); }
+ ruleCExpression
+ { after(grammarAccess.getIfStatementAccess().getConditionCExpressionParserRuleCall_3_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__IfStatement__ThenExpressionAssignment_5_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getIfStatementAccess().getThenExpressionCExpressionParserRuleCall_5_1_0()); }
+ ruleCExpression
+ { after(grammarAccess.getIfStatementAccess().getThenExpressionCExpressionParserRuleCall_5_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__IfStatement__ElseExpressionAssignment_6_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getIfStatementAccess().getElseExpressionCExpressionParserRuleCall_6_1_0()); }
+ ruleCExpression
+ { after(grammarAccess.getIfStatementAccess().getElseExpressionCExpressionParserRuleCall_6_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ForAllOperator__OperandAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getForAllOperatorAccess().getOperandCExpressionParserRuleCall_2_0()); }
+ ruleCExpression
+ { after(grammarAccess.getForAllOperatorAccess().getOperandCExpressionParserRuleCall_2_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ForAllOperator__LambdaAssignment_3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getForAllOperatorAccess().getLambdaLambdaExpressionParserRuleCall_3_0()); }
+ ruleLambdaExpression
+ { after(grammarAccess.getForAllOperatorAccess().getLambdaLambdaExpressionParserRuleCall_3_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ExistsOperator__OperandAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getExistsOperatorAccess().getOperandCExpressionParserRuleCall_2_0()); }
+ ruleCExpression
+ { after(grammarAccess.getExistsOperatorAccess().getOperandCExpressionParserRuleCall_2_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ExistsOperator__LambdaAssignment_3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getExistsOperatorAccess().getLambdaLambdaExpressionParserRuleCall_3_0()); }
+ ruleLambdaExpression
+ { after(grammarAccess.getExistsOperatorAccess().getLambdaLambdaExpressionParserRuleCall_3_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LambdaExpression__XAssignment_1_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getLambdaExpressionAccess().getXVariableParserRuleCall_1_0_0()); }
+ ruleVariable
+ { after(grammarAccess.getLambdaExpressionAccess().getXVariableParserRuleCall_1_0_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LambdaExpression__LetStatementsAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getLambdaExpressionAccess().getLetStatementsLetStatementParserRuleCall_2_0()); }
+ ruleLetStatement
+ { after(grammarAccess.getLambdaExpressionAccess().getLetStatementsLetStatementParserRuleCall_2_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LambdaExpression__BodyTextAssignment_3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getLambdaExpressionAccess().getBodyTextCExpressionParserRuleCall_3_0()); }
+ ruleCExpression
+ { after(grammarAccess.getLambdaExpressionAccess().getBodyTextCExpressionParserRuleCall_3_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Variable__NameAssignment_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getVariableAccess().getNameQualifiedNameParserRuleCall_1_0()); }
+ ruleQualifiedName
+ { after(grammarAccess.getVariableAccess().getNameQualifiedNameParserRuleCall_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CMemberFeatureReference__RefObjectAssignment_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getCMemberFeatureReferenceAccess().getRefObjectRuleObjectCrossReference_1_0()); }
+ (
+ { before(grammarAccess.getCMemberFeatureReferenceAccess().getRefObjectRuleObjectIdOrThisParserRuleCall_1_0_1()); }
+ ruleIdOrThis
+ { after(grammarAccess.getCMemberFeatureReferenceAccess().getRefObjectRuleObjectIdOrThisParserRuleCall_1_0_1()); }
+ )
+ { after(grammarAccess.getCMemberFeatureReferenceAccess().getRefObjectRuleObjectCrossReference_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CMemberFeatureReference__RefObjectAssignment_2_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getCMemberFeatureReferenceAccess().getRefObjectRuleObjectCrossReference_2_2_0()); }
+ (
+ { before(grammarAccess.getCMemberFeatureReferenceAccess().getRefObjectRuleObjectValidIDParserRuleCall_2_2_0_1()); }
+ ruleValidID
+ { after(grammarAccess.getCMemberFeatureReferenceAccess().getRefObjectRuleObjectValidIDParserRuleCall_2_2_0_1()); }
+ )
+ { after(grammarAccess.getCMemberFeatureReferenceAccess().getRefObjectRuleObjectCrossReference_2_2_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LetStatement__VariableAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getLetStatementAccess().getVariableVariableParserRuleCall_2_0()); }
+ ruleVariable
+ { after(grammarAccess.getLetStatementAccess().getVariableVariableParserRuleCall_2_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LetStatement__BodyAssignment_3_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getLetStatementAccess().getBodyCExpressionParserRuleCall_3_1_0()); }
+ ruleCExpression
+ { after(grammarAccess.getLetStatementAccess().getBodyCExpressionParserRuleCall_3_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ComplexExpression__LetStatementsAssignment_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getComplexExpressionAccess().getLetStatementsLetStatementParserRuleCall_1_0()); }
+ ruleLetStatement
+ { after(grammarAccess.getComplexExpressionAccess().getLetStatementsLetStatementParserRuleCall_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ComplexExpression__OtherExpressionAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getComplexExpressionAccess().getOtherExpressionCExpressionParserRuleCall_2_0()); }
+ ruleCExpression
+ { after(grammarAccess.getComplexExpressionAccess().getOtherExpressionCExpressionParserRuleCall_2_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LoserTypeExpression__ValueAssignment_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getLoserTypeExpressionAccess().getValueLoserTypeEnumRuleCall_1_0()); }
+ ruleLoserType
+ { after(grammarAccess.getLoserTypeExpressionAccess().getValueLoserTypeEnumRuleCall_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ArbitrationPolicyExpression__ValueAssignment_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getArbitrationPolicyExpressionAccess().getValueArbitrationPolicyEnumRuleCall_1_0()); }
+ ruleArbitrationPolicy
+ { after(grammarAccess.getArbitrationPolicyExpressionAccess().getValueArbitrationPolicyEnumRuleCall_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__NameAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getViewContentSetAccess().getNameQualifiedNameParserRuleCall_2_0()); }
+ ruleQualifiedName
+ { after(grammarAccess.getViewContentSetAccess().getNameQualifiedNameParserRuleCall_2_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__DescriptionAssignment_4_0_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getViewContentSetAccess().getDescriptionEStringParserRuleCall_4_0_1_0()); }
+ ruleEString
+ { after(grammarAccess.getViewContentSetAccess().getDescriptionEStringParserRuleCall_4_0_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__TargetAssignment_4_1_2_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getViewContentSetAccess().getTargetAbstractContentCrossReference_4_1_2_0_0()); }
+ (
+ { before(grammarAccess.getViewContentSetAccess().getTargetAbstractContentQualifiedNameParserRuleCall_4_1_2_0_0_1()); }
+ ruleQualifiedName
+ { after(grammarAccess.getViewContentSetAccess().getTargetAbstractContentQualifiedNameParserRuleCall_4_1_2_0_0_1()); }
+ )
+ { after(grammarAccess.getViewContentSetAccess().getTargetAbstractContentCrossReference_4_1_2_0_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__TargetAssignment_4_1_2_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getViewContentSetAccess().getTargetAbstractContentCrossReference_4_1_2_1_1_0()); }
+ (
+ { before(grammarAccess.getViewContentSetAccess().getTargetAbstractContentQualifiedNameParserRuleCall_4_1_2_1_1_0_1()); }
+ ruleQualifiedName
+ { after(grammarAccess.getViewContentSetAccess().getTargetAbstractContentQualifiedNameParserRuleCall_4_1_2_1_1_0_1()); }
+ )
+ { after(grammarAccess.getViewContentSetAccess().getTargetAbstractContentCrossReference_4_1_2_1_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__AllocatableAssignment_4_2_2_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getViewContentSetAccess().getAllocatableAbstractAllocatableCrossReference_4_2_2_0_0()); }
+ (
+ { before(grammarAccess.getViewContentSetAccess().getAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_0_0_1()); }
+ ruleQualifiedName
+ { after(grammarAccess.getViewContentSetAccess().getAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_0_0_1()); }
+ )
+ { after(grammarAccess.getViewContentSetAccess().getAllocatableAbstractAllocatableCrossReference_4_2_2_0_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewContentSet__AllocatableAssignment_4_2_2_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getViewContentSetAccess().getAllocatableAbstractAllocatableCrossReference_4_2_2_1_1_0()); }
+ (
+ { before(grammarAccess.getViewContentSetAccess().getAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_1_1_0_1()); }
+ ruleQualifiedName
+ { after(grammarAccess.getViewContentSetAccess().getAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_1_1_0_1()); }
+ )
+ { after(grammarAccess.getViewContentSetAccess().getAllocatableAbstractAllocatableCrossReference_4_2_2_1_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__NameAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getSoundContentSetAccess().getNameQualifiedNameParserRuleCall_2_0()); }
+ ruleQualifiedName
+ { after(grammarAccess.getSoundContentSetAccess().getNameQualifiedNameParserRuleCall_2_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__DescriptionAssignment_4_0_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getSoundContentSetAccess().getDescriptionEStringParserRuleCall_4_0_1_0()); }
+ ruleEString
+ { after(grammarAccess.getSoundContentSetAccess().getDescriptionEStringParserRuleCall_4_0_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__TargetAssignment_4_1_2_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getSoundContentSetAccess().getTargetAbstractContentCrossReference_4_1_2_0_0()); }
+ (
+ { before(grammarAccess.getSoundContentSetAccess().getTargetAbstractContentQualifiedNameParserRuleCall_4_1_2_0_0_1()); }
+ ruleQualifiedName
+ { after(grammarAccess.getSoundContentSetAccess().getTargetAbstractContentQualifiedNameParserRuleCall_4_1_2_0_0_1()); }
+ )
+ { after(grammarAccess.getSoundContentSetAccess().getTargetAbstractContentCrossReference_4_1_2_0_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__TargetAssignment_4_1_2_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getSoundContentSetAccess().getTargetAbstractContentCrossReference_4_1_2_1_1_0()); }
+ (
+ { before(grammarAccess.getSoundContentSetAccess().getTargetAbstractContentQualifiedNameParserRuleCall_4_1_2_1_1_0_1()); }
+ ruleQualifiedName
+ { after(grammarAccess.getSoundContentSetAccess().getTargetAbstractContentQualifiedNameParserRuleCall_4_1_2_1_1_0_1()); }
+ )
+ { after(grammarAccess.getSoundContentSetAccess().getTargetAbstractContentCrossReference_4_1_2_1_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__AllocatableAssignment_4_2_2_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getSoundContentSetAccess().getAllocatableAbstractAllocatableCrossReference_4_2_2_0_0()); }
+ (
+ { before(grammarAccess.getSoundContentSetAccess().getAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_0_0_1()); }
+ ruleQualifiedName
+ { after(grammarAccess.getSoundContentSetAccess().getAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_0_0_1()); }
+ )
+ { after(grammarAccess.getSoundContentSetAccess().getAllocatableAbstractAllocatableCrossReference_4_2_2_0_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SoundContentSet__AllocatableAssignment_4_2_2_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getSoundContentSetAccess().getAllocatableAbstractAllocatableCrossReference_4_2_2_1_1_0()); }
+ (
+ { before(grammarAccess.getSoundContentSetAccess().getAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_1_1_0_1()); }
+ ruleQualifiedName
+ { after(grammarAccess.getSoundContentSetAccess().getAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_1_1_0_1()); }
+ )
+ { after(grammarAccess.getSoundContentSetAccess().getAllocatableAbstractAllocatableCrossReference_4_2_2_1_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Scene__NameAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getSceneAccess().getNameQualifiedNameParserRuleCall_2_0()); }
+ ruleQualifiedName
+ { after(grammarAccess.getSceneAccess().getNameQualifiedNameParserRuleCall_2_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Scene__DescriptionAssignment_4_0_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getSceneAccess().getDescriptionEStringParserRuleCall_4_0_1_0()); }
+ ruleEString
+ { after(grammarAccess.getSceneAccess().getDescriptionEStringParserRuleCall_4_0_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Scene__GlobalAssignment_4_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getSceneAccess().getGlobalEBooleanParserRuleCall_4_1_1_0()); }
+ ruleEBoolean
+ { after(grammarAccess.getSceneAccess().getGlobalEBooleanParserRuleCall_4_1_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Scene__PropertiesAssignment_4_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getSceneAccess().getPropertiesAbstractPropertyParserRuleCall_4_2_0()); }
+ ruleAbstractProperty
+ { after(grammarAccess.getSceneAccess().getPropertiesAbstractPropertyParserRuleCall_4_2_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VerticalLayout__BasePointAssignment_3_0_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getVerticalLayoutAccess().getBasePointBasePointEnumRuleCall_3_0_1_0()); }
+ ruleBasePoint
+ { after(grammarAccess.getVerticalLayoutAccess().getBasePointBasePointEnumRuleCall_3_0_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VerticalLayout__SubareaAssignment_3_1_2_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getVerticalLayoutAccess().getSubareaAreaCrossReference_3_1_2_0_0()); }
+ (
+ { before(grammarAccess.getVerticalLayoutAccess().getSubareaAreaQualifiedNameParserRuleCall_3_1_2_0_0_1()); }
+ ruleQualifiedName
+ { after(grammarAccess.getVerticalLayoutAccess().getSubareaAreaQualifiedNameParserRuleCall_3_1_2_0_0_1()); }
+ )
+ { after(grammarAccess.getVerticalLayoutAccess().getSubareaAreaCrossReference_3_1_2_0_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__VerticalLayout__SubareaAssignment_3_1_2_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getVerticalLayoutAccess().getSubareaAreaCrossReference_3_1_2_1_1_0()); }
+ (
+ { before(grammarAccess.getVerticalLayoutAccess().getSubareaAreaQualifiedNameParserRuleCall_3_1_2_1_1_0_1()); }
+ ruleQualifiedName
+ { after(grammarAccess.getVerticalLayoutAccess().getSubareaAreaQualifiedNameParserRuleCall_3_1_2_1_1_0_1()); }
+ )
+ { after(grammarAccess.getVerticalLayoutAccess().getSubareaAreaCrossReference_3_1_2_1_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__HorizontalLayout__BasePointAssignment_3_0_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getHorizontalLayoutAccess().getBasePointBasePointEnumRuleCall_3_0_1_0()); }
+ ruleBasePoint
+ { after(grammarAccess.getHorizontalLayoutAccess().getBasePointBasePointEnumRuleCall_3_0_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__HorizontalLayout__SubareaAssignment_3_1_2_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getHorizontalLayoutAccess().getSubareaAreaCrossReference_3_1_2_0_0()); }
+ (
+ { before(grammarAccess.getHorizontalLayoutAccess().getSubareaAreaQualifiedNameParserRuleCall_3_1_2_0_0_1()); }
+ ruleQualifiedName
+ { after(grammarAccess.getHorizontalLayoutAccess().getSubareaAreaQualifiedNameParserRuleCall_3_1_2_0_0_1()); }
+ )
+ { after(grammarAccess.getHorizontalLayoutAccess().getSubareaAreaCrossReference_3_1_2_0_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__HorizontalLayout__SubareaAssignment_3_1_2_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getHorizontalLayoutAccess().getSubareaAreaCrossReference_3_1_2_1_1_0()); }
+ (
+ { before(grammarAccess.getHorizontalLayoutAccess().getSubareaAreaQualifiedNameParserRuleCall_3_1_2_1_1_0_1()); }
+ ruleQualifiedName
+ { after(grammarAccess.getHorizontalLayoutAccess().getSubareaAreaQualifiedNameParserRuleCall_3_1_2_1_1_0_1()); }
+ )
+ { after(grammarAccess.getHorizontalLayoutAccess().getSubareaAreaCrossReference_3_1_2_1_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FixedPositionLayout__SubAreaPositionAssignment_3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getFixedPositionLayoutAccess().getSubAreaPositionPositionContainerParserRuleCall_3_0()); }
+ rulePositionContainer
+ { after(grammarAccess.getFixedPositionLayoutAccess().getSubAreaPositionPositionContainerParserRuleCall_3_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PositionContainer__XAssignment_3_0_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getPositionContainerAccess().getXEIntParserRuleCall_3_0_1_0()); }
+ ruleEInt
+ { after(grammarAccess.getPositionContainerAccess().getXEIntParserRuleCall_3_0_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PositionContainer__YAssignment_3_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getPositionContainerAccess().getYEIntParserRuleCall_3_1_1_0()); }
+ ruleEInt
+ { after(grammarAccess.getPositionContainerAccess().getYEIntParserRuleCall_3_1_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PositionContainer__BasePointAssignment_3_2_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getPositionContainerAccess().getBasePointBasePointEnumRuleCall_3_2_1_0()); }
+ ruleBasePoint
+ { after(grammarAccess.getPositionContainerAccess().getBasePointBasePointEnumRuleCall_3_2_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PositionContainer__AreaAssignment_3_3_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getPositionContainerAccess().getAreaAreaCrossReference_3_3_1_0()); }
+ (
+ { before(grammarAccess.getPositionContainerAccess().getAreaAreaQualifiedNameParserRuleCall_3_3_1_0_1()); }
+ ruleQualifiedName
+ { after(grammarAccess.getPositionContainerAccess().getAreaAreaQualifiedNameParserRuleCall_3_3_1_0_1()); }
+ )
+ { after(grammarAccess.getPositionContainerAccess().getAreaAreaCrossReference_3_3_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PositionContainer__OffsetAssignment_3_4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getPositionContainerAccess().getOffsetOffsetParserRuleCall_3_4_0()); }
+ ruleOffset
+ { after(grammarAccess.getPositionContainerAccess().getOffsetOffsetParserRuleCall_3_4_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+RULE_ID : (RULE_IDENTIFIER_START|RULE_UNICODE_ESCAPE) (RULE_IDENTIFIER_PART|RULE_UNICODE_ESCAPE)*;
+
+fragment RULE_IDENTIFIER_START_IMPL : ('$'|'A'..'Z'|'\uFF08'..'\uFF09'|'_'|'a'..'z'|'\u00A2'..'\u00A5'|'\u00AA'|'\u00B5'|'\u00BA'|'\u00C0'..'\u00D6'|'\u00D8'..'\u00F6'|'\u00F8'..'\u0236'|'\u0250'..'\u02C1'|'\u02C6'..'\u02D1'|'\u02E0'..'\u02E4'|'\u02EE'|'\u037A'|'\u0386'|'\u0388'..'\u038A'|'\u038C'|'\u038E'..'\u03A1'|'\u03A3'..'\u03CE'|'\u03D0'..'\u03F5'|'\u03F7'..'\u03FB'|'\u0400'..'\u0481'|'\u048A'..'\u04CE'|'\u04D0'..'\u04F5'|'\u04F8'..'\u04F9'|'\u0500'..'\u050F'|'\u0531'..'\u0556'|'\u0559'|'\u0561'..'\u0587'|'\u05D0'..'\u05EA'|'\u05F0'..'\u05F2'|'\u0621'..'\u063A'|'\u0640'..'\u064A'|'\u066E'..'\u066F'|'\u0671'..'\u06D3'|'\u06D5'|'\u06E5'..'\u06E6'|'\u06EE'..'\u06EF'|'\u06FA'..'\u06FC'|'\u06FF'|'\u0710'|'\u0712'..'\u072F'|'\u074D'..'\u074F'|'\u0780'..'\u07A5'|'\u07B1'|'\u0904'..'\u0939'|'\u093D'|'\u0950'|'\u0958'..'\u0961'|'\u0985'..'\u098C'|'\u098F'..'\u0990'|'\u0993'..'\u09A8'|'\u09AA'..'\u09B0'|'\u09B2'|'\u09B6'..'\u09B9'|'\u09BD'|'\u09DC'..'\u09DD'|'\u09DF'..'\u09E1'|'\u09F0'..'\u09F3'|'\u0A05'..'\u0A0A'|'\u0A0F'..'\u0A10'|'\u0A13'..'\u0A28'|'\u0A2A'..'\u0A30'|'\u0A32'..'\u0A33'|'\u0A35'..'\u0A36'|'\u0A38'..'\u0A39'|'\u0A59'..'\u0A5C'|'\u0A5E'|'\u0A72'..'\u0A74'|'\u0A85'..'\u0A8D'|'\u0A8F'..'\u0A91'|'\u0A93'..'\u0AA8'|'\u0AAA'..'\u0AB0'|'\u0AB2'..'\u0AB3'|'\u0AB5'..'\u0AB9'|'\u0ABD'|'\u0AD0'|'\u0AE0'..'\u0AE1'|'\u0AF1'|'\u0B05'..'\u0B0C'|'\u0B0F'..'\u0B10'|'\u0B13'..'\u0B28'|'\u0B2A'..'\u0B30'|'\u0B32'..'\u0B33'|'\u0B35'..'\u0B39'|'\u0B3D'|'\u0B5C'..'\u0B5D'|'\u0B5F'..'\u0B61'|'\u0B71'|'\u0B83'|'\u0B85'..'\u0B8A'|'\u0B8E'..'\u0B90'|'\u0B92'..'\u0B95'|'\u0B99'..'\u0B9A'|'\u0B9C'|'\u0B9E'..'\u0B9F'|'\u0BA3'..'\u0BA4'|'\u0BA8'..'\u0BAA'|'\u0BAE'..'\u0BB5'|'\u0BB7'..'\u0BB9'|'\u0BF9'|'\u0C05'..'\u0C0C'|'\u0C0E'..'\u0C10'|'\u0C12'..'\u0C28'|'\u0C2A'..'\u0C33'|'\u0C35'..'\u0C39'|'\u0C60'..'\u0C61'|'\u0C85'..'\u0C8C'|'\u0C8E'..'\u0C90'|'\u0C92'..'\u0CA8'|'\u0CAA'..'\u0CB3'|'\u0CB5'..'\u0CB9'|'\u0CBD'|'\u0CDE'|'\u0CE0'..'\u0CE1'|'\u0D05'..'\u0D0C'|'\u0D0E'..'\u0D10'|'\u0D12'..'\u0D28'|'\u0D2A'..'\u0D39'|'\u0D60'..'\u0D61'|'\u0D85'..'\u0D96'|'\u0D9A'..'\u0DB1'|'\u0DB3'..'\u0DBB'|'\u0DBD'|'\u0DC0'..'\u0DC6'|'\u0E01'..'\u0E30'|'\u0E32'..'\u0E33'|'\u0E3F'..'\u0E46'|'\u0E81'..'\u0E82'|'\u0E84'|'\u0E87'..'\u0E88'|'\u0E8A'|'\u0E8D'|'\u0E94'..'\u0E97'|'\u0E99'..'\u0E9F'|'\u0EA1'..'\u0EA3'|'\u0EA5'|'\u0EA7'|'\u0EAA'..'\u0EAB'|'\u0EAD'..'\u0EB0'|'\u0EB2'..'\u0EB3'|'\u0EBD'|'\u0EC0'..'\u0EC4'|'\u0EC6'|'\u0EDC'..'\u0EDD'|'\u0F00'|'\u0F40'..'\u0F47'|'\u0F49'..'\u0F6A'|'\u0F88'..'\u0F8B'|'\u1000'..'\u1021'|'\u1023'..'\u1027'|'\u1029'..'\u102A'|'\u1050'..'\u1055'|'\u10A0'..'\u10C5'|'\u10D0'..'\u10F8'|'\u1100'..'\u1159'|'\u115F'..'\u11A2'|'\u11A8'..'\u11F9'|'\u1200'..'\u1206'|'\u1208'..'\u1246'|'\u1248'|'\u124A'..'\u124D'|'\u1250'..'\u1256'|'\u1258'|'\u125A'..'\u125D'|'\u1260'..'\u1286'|'\u1288'|'\u128A'..'\u128D'|'\u1290'..'\u12AE'|'\u12B0'|'\u12B2'..'\u12B5'|'\u12B8'..'\u12BE'|'\u12C0'|'\u12C2'..'\u12C5'|'\u12C8'..'\u12CE'|'\u12D0'..'\u12D6'|'\u12D8'..'\u12EE'|'\u12F0'..'\u130E'|'\u1310'|'\u1312'..'\u1315'|'\u1318'..'\u131E'|'\u1320'..'\u1346'|'\u1348'..'\u135A'|'\u13A0'..'\u13F4'|'\u1401'..'\u166C'|'\u166F'..'\u1676'|'\u1681'..'\u169A'|'\u16A0'..'\u16EA'|'\u16EE'..'\u16F0'|'\u1700'..'\u170C'|'\u170E'..'\u1711'|'\u1720'..'\u1731'|'\u1740'..'\u1751'|'\u1760'..'\u176C'|'\u176E'..'\u1770'|'\u1780'..'\u17B3'|'\u17D7'|'\u17DB'..'\u17DC'|'\u1820'..'\u1877'|'\u1880'..'\u18A8'|'\u1900'..'\u191C'|'\u1950'..'\u196D'|'\u1970'..'\u1974'|'\u1D00'..'\u1D6B'|'\u1E00'..'\u1E9B'|'\u1EA0'..'\u1EF9'|'\u1F00'..'\u1F15'|'\u1F18'..'\u1F1D'|'\u1F20'..'\u1F45'|'\u1F48'..'\u1F4D'|'\u1F50'..'\u1F57'|'\u1F59'|'\u1F5B'|'\u1F5D'|'\u1F5F'..'\u1F7D'|'\u1F80'..'\u1FB4'|'\u1FB6'..'\u1FBC'|'\u1FBE'|'\u1FC2'..'\u1FC4'|'\u1FC6'..'\u1FCC'|'\u1FD0'..'\u1FD3'|'\u1FD6'..'\u1FDB'|'\u1FE0'..'\u1FEC'|'\u1FF2'..'\u1FF4'|'\u1FF6'..'\u1FFC'|'\u203F'..'\u2040'|'\u2054'|'\u2071'|'\u207F'|'\u20A0'..'\u20B1'|'\u2102'|'\u2107'|'\u210A'..'\u2113'|'\u2115'|'\u2119'..'\u211D'|'\u2124'|'\u2126'|'\u2128'|'\u212A'..'\u212D'|'\u212F'..'\u2131'|'\u2133'..'\u2139'|'\u213D'..'\u213F'|'\u2145'..'\u2149'|'\u2160'..'\u2183'|'\u3005'..'\u3007'|'\u3021'..'\u3029'|'\u3031'..'\u3035'|'\u3038'..'\u303C'|'\u3041'..'\u3096'|'\u309D'..'\u309F'|'\u30A1'..'\u30FF'|'\u3105'..'\u312C'|'\u3131'..'\u318E'|'\u31A0'..'\u31B7'|'\u31F0'..'\u31FF'|'\u3400'..'\u4DB5'|'\u4E00'..'\u9FA5'|'\uA000'..'\uA48C'|'\uAC00'..'\uD7A3'|'\uF900'..'\uFA2D'|'\uFA30'..'\uFA6A'|'\uFB00'..'\uFB06'|'\uFB13'..'\uFB17'|'\uFB1D'|'\uFB1F'..'\uFB28'|'\uFB2A'..'\uFB36'|'\uFB38'..'\uFB3C'|'\uFB3E'|'\uFB40'..'\uFB41'|'\uFB43'..'\uFB44'|'\uFB46'..'\uFBB1'|'\uFBD3'..'\uFD3D'|'\uFD50'..'\uFD8F'|'\uFD92'..'\uFDC7'|'\uFDF0'..'\uFDFC'|'\uFE33'..'\uFE34'|'\uFE4D'..'\uFE4F'|'\uFE69'|'\uFE70'..'\uFE74'|'\uFE76'..'\uFEFC'|'\uFF04'|'\uFF1A'|'\uFF21'..'\uFF3A'|'\uFF3F'|'\uFF41'..'\uFF5A'|'\uFF65'..'\uFFBE'|'\uFFC2'..'\uFFC7'|'\uFFCA'..'\uFFCF'|'\uFFD2'..'\uFFD7'|'\uFFDA'..'\uFFDC'|'\uFFE0'..'\uFFE1'|'\uFFE5'..'\uFFE6');
+
+fragment RULE_IDENTIFIER_PART_IMPL : ('\u0000'..'\b'|'\u000E'..'\u001B'|'\u007F'..'\u009F'|'\u00AD'|'\u3001'..'\u3002'|'\u0300'..'\u0357'|'\u035D'..'\u036F'|'\u0483'..'\u0486'|'\u0591'..'\u05A1'|'\u05A3'..'\u05B9'|'\u05BB'..'\u05BD'|'\u05BF'|'\u05C1'..'\u05C2'|'\u05C4'|'\u0600'..'\u0603'|'\u0610'..'\u0615'|'\u064B'..'\u0658'|'\u0660'..'\u0669'|'\u0670'|'\u06D6'..'\u06DD'|'\u06DF'..'\u06E4'|'\u06E7'..'\u06E8'|'\u06EA'..'\u06ED'|'\u06F0'..'\u06F9'|'\u070F'|'\u0711'|'\u0730'..'\u074A'|'\u07A6'..'\u07B0'|'\u0901'..'\u0903'|'\u093C'|'\u093E'..'\u094D'|'\u0951'..'\u0954'|'\u0962'..'\u0963'|'\u0966'..'\u096F'|'\u0981'..'\u0983'|'\u09BC'|'\u09BE'..'\u09C4'|'\u09C7'..'\u09C8'|'\u09CB'..'\u09CD'|'\u09D7'|'\u09E2'..'\u09E3'|'\u09E6'..'\u09EF'|'\u0A01'..'\u0A03'|'\u0A3C'|'\u0A3E'..'\u0A42'|'\u0A47'..'\u0A48'|'\u0A4B'..'\u0A4D'|'\u0A66'..'\u0A71'|'\u0A81'..'\u0A83'|'\u0ABC'|'\u0ABE'..'\u0AC5'|'\u0AC7'..'\u0AC9'|'\u0ACB'..'\u0ACD'|'\u0AE2'..'\u0AE3'|'\u0AE6'..'\u0AEF'|'\u0B01'..'\u0B03'|'\u0B3C'|'\u0B3E'..'\u0B43'|'\u0B47'..'\u0B48'|'\u0B4B'..'\u0B4D'|'\u0B56'..'\u0B57'|'\u0B66'..'\u0B6F'|'\u0B82'|'\u0BBE'..'\u0BC2'|'\u0BC6'..'\u0BC8'|'\u0BCA'..'\u0BCD'|'\u0BD7'|'\u0BE7'..'\u0BEF'|'\u0C01'..'\u0C03'|'\u0C3E'..'\u0C44'|'\u0C46'..'\u0C48'|'\u0C4A'..'\u0C4D'|'\u0C55'..'\u0C56'|'\u0C66'..'\u0C6F'|'\u0C82'..'\u0C83'|'\u0CBC'|'\u0CBE'..'\u0CC4'|'\u0CC6'..'\u0CC8'|'\u0CCA'..'\u0CCD'|'\u0CD5'..'\u0CD6'|'\u0CE6'..'\u0CEF'|'\u0D02'..'\u0D03'|'\u0D3E'..'\u0D43'|'\u0D46'..'\u0D48'|'\u0D4A'..'\u0D4D'|'\u0D57'|'\u0D66'..'\u0D6F'|'\u0D82'..'\u0D83'|'\u0DCA'|'\u0DCF'..'\u0DD4'|'\u0DD6'|'\u0DD8'..'\u0DDF'|'\u0DF2'..'\u0DF3'|'\u0E31'|'\u0E34'..'\u0E3A'|'\u0E47'..'\u0E4E'|'\u0E50'..'\u0E59'|'\u0EB1'|'\u0EB4'..'\u0EB9'|'\u0EBB'..'\u0EBC'|'\u0EC8'..'\u0ECD'|'\u0ED0'..'\u0ED9'|'\u0F18'..'\u0F19'|'\u0F20'..'\u0F29'|'\u0F35'|'\u0F37'|'\u0F39'|'\u0F3E'..'\u0F3F'|'\u0F71'..'\u0F84'|'\u0F86'..'\u0F87'|'\u0F90'..'\u0F97'|'\u0F99'..'\u0FBC'|'\u0FC6'|'\u102C'..'\u1032'|'\u1036'..'\u1039'|'\u1040'..'\u1049'|'\u1056'..'\u1059'|'\u1369'..'\u1371'|'\u1712'..'\u1714'|'\u1732'..'\u1734'|'\u1752'..'\u1753'|'\u1772'..'\u1773'|'\u17B4'..'\u17D3'|'\u17DD'|'\u17E0'..'\u17E9'|'\u180B'..'\u180D'|'\u1810'..'\u1819'|'\u18A9'|'\u1920'..'\u192B'|'\u1930'..'\u193B'|'\u1946'..'\u194F'|'\u200C'..'\u200F'|'\u202A'..'\u202E'|'\u2060'..'\u2063'|'\u206A'..'\u206F'|'\u20D0'..'\u20DC'|'\u20E1'|'\u20E5'..'\u20EA'|'\u302A'..'\u302F'|'\u3099'..'\u309A'|'\uFB1E'|'\uFE00'..'\uFE0F'|'\uFE20'..'\uFE23'|'\uFEFF'|'\uFF10'..'\uFF19'|'\uFFF9'..'\uFFFB');
+
+fragment RULE_IDENTIFIER_DIGITS : '0'..'9';
+
+fragment RULE_HEX_DIGIT : ('0'..'9'|'a'..'f'|'A'..'F');
+
+fragment RULE_UNICODE_ESCAPE : '\\' 'u' (RULE_HEX_DIGIT (RULE_HEX_DIGIT (RULE_HEX_DIGIT RULE_HEX_DIGIT?)?)?)?;
+
+fragment RULE_IDENTIFIER_PART : (RULE_IDENTIFIER_START_IMPL|RULE_IDENTIFIER_DIGITS|RULE_IDENTIFIER_PART_IMPL);
+
+fragment RULE_IDENTIFIER_START : (RULE_IDENTIFIER_START_IMPL|RULE_IDENTIFIER_PART_IMPL);
+
+RULE_WS : (' '|'\t'|'\r'|'\n')+;
+
+RULE_INT : ('0'..'9')+;
+
+RULE_STRING : '"' ('\\' .|~(('\\'|'"'|'\''|'\n'|'\r')))* '"';
+
+RULE_RICH_STRING : '@BEGIN@' ( options {greedy=false;} : . )*'@END@';
+
+RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/';
+
+RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?;
diff --git a/rba.tool.editor.ide/src-gen/rba/tool/editor/ide/contentassist/antlr/internal/InternalRBAModel.tokens b/rba.tool.editor.ide/src-gen/rba/tool/editor/ide/contentassist/antlr/internal/InternalRBAModel.tokens
new file mode 100644
index 0000000..4f6cc55
--- /dev/null
+++ b/rba.tool.editor.ide/src-gen/rba/tool/editor/ide/contentassist/antlr/internal/InternalRBAModel.tokens
@@ -0,0 +1,314 @@
+'!'=30
+'!='=27
+'('=107
+'(pre)'=145
+')'=108
+'+'=18
+','=103
+'-'=166
+'->'=23
+'.'=135
+'.*'=167
+':'=97
+'<'=22
+'<<'=98
+'<='=29
+'='=20
+'=='=26
+'>'=21
+'>='=28
+'>>'=19
+'ALL_AREAS'=140
+'ALL_SOUNDCONTENTS'=143
+'ALL_VIEWCONTENTS'=141
+'ALL_ZONES'=142
+'AND'=25
+'Area'=67
+'AreaSet'=123
+'CENTER_BOTTOM'=90
+'CENTER_MIDDLE'=89
+'CENTER_TOP'=88
+'CompositeArea'=126
+'Constraint'=110
+'DEFAULT'=77
+'DO_NOT_GIVEUP_UNTIL_WIN'=93
+'Display'=109
+'ELSE'=150
+'Exists'=152
+'FIRST_COME_FIRST'=78
+'FixedPositionLayout'=163
+'For-All'=151
+'GOOD_LOSER'=92
+'HideLowerPriority'=146
+'HorizontalLayout'=162
+'IF'=148
+'LAST_COME_FIRST'=79
+'LEFT_BOTTOM'=84
+'LEFT_MIDDLE'=83
+'LEFT_TOP'=82
+'MAX_VALUE'=139
+'MIN_VALUE'=138
+'MuteLowerPriority'=147
+'NEVER_GIVEUP'=91
+'NONE_VALUE'=137
+'NULL'=144
+'OR'=24
+'Offset'=120
+'PRIORITY_FIRST_COME_FIRST'=80
+'PRIORITY_LAST_COME_FIRST'=81
+'Package'=104
+'PositionContainer'=164
+'Project'=132
+'RIGHT_BOTTOM'=87
+'RIGHT_MIDDLE'=86
+'RIGHT_TOP'=85
+'STANDARD_VALUE'=136
+'Scene'=157
+'Size'=116
+'SoundContent'=69
+'SoundContentSet'=156
+'State'=131
+'Stereotype'=106
+'THEN'=149
+'That-of'=134
+'VerticalLayout'=159
+'ViewContent'=70
+'ViewContentSet'=155
+'Zone'=68
+'ZoneSet'=125
+'['=114
+'\u00AB'=99
+'\u00BB'=100
+']'=115
+'activeContents'=60
+'activeState'=63
+'allocatable:'=113
+'allocatables'=36
+'allocatedContent'=37
+'arbitrationPolicy:'=128
+'areaReference:'=165
+'attenuateValue:'=130
+'basePoint:'=160
+'contentValue'=34
+'contentsList'=33
+'description:'=105
+'displayingContent'=40
+'false'=75
+'get'=31
+'global:'=158
+'hasBeenDisplayed'=62
+'hasComeEarlierThan'=47
+'hasComeLaterThan'=48
+'height:'=118
+'import'=95
+'int'=96
+'isActive'=35
+'isAllocatedTo'=50
+'isAttenuated'=46
+'isChanged'=51
+'isChangedDisplay'=54
+'isChangedOutput'=57
+'isDisplayed'=38
+'isDisplayedOn'=53
+'isHidden'=39
+'isMuted'=43
+'isOn'=32
+'isOutputted'=42
+'isOutputtedOn'=56
+'isSounding'=45
+'isTranslatedSoundTo'=58
+'isTranslatedTo'=52
+'isTranslatedViewTo'=55
+'isTypeOf'=59
+'isVisible'=41
+'layout:'=127
+'let'=154
+'loserType:'=112
+'max'=64
+'min'=65
+'module'=94
+'outputtingSound'=44
+'priority:'=72
+'runtime:'=111
+'select'=66
+'size'=61
+'sizeReference:'=119
+'stateValue'=49
+'subarea:'=161
+'target:'=124
+'this'=76
+'true'=74
+'value:'=73
+'version:'=133
+'visibility:'=71
+'width:'=117
+'x:'=121
+'y:'=122
+'zorder:'=129
+'{'=101
+'|'=153
+'}'=102
+RULE_HEX_DIGIT=14
+RULE_ID=6
+RULE_IDENTIFIER_DIGITS=13
+RULE_IDENTIFIER_PART=10
+RULE_IDENTIFIER_PART_IMPL=12
+RULE_IDENTIFIER_START=8
+RULE_IDENTIFIER_START_IMPL=11
+RULE_INT=7
+RULE_ML_COMMENT=16
+RULE_RICH_STRING=5
+RULE_SL_COMMENT=17
+RULE_STRING=4
+RULE_UNICODE_ESCAPE=9
+RULE_WS=15
+T__100=100
+T__101=101
+T__102=102
+T__103=103
+T__104=104
+T__105=105
+T__106=106
+T__107=107
+T__108=108
+T__109=109
+T__110=110
+T__111=111
+T__112=112
+T__113=113
+T__114=114
+T__115=115
+T__116=116
+T__117=117
+T__118=118
+T__119=119
+T__120=120
+T__121=121
+T__122=122
+T__123=123
+T__124=124
+T__125=125
+T__126=126
+T__127=127
+T__128=128
+T__129=129
+T__130=130
+T__131=131
+T__132=132
+T__133=133
+T__134=134
+T__135=135
+T__136=136
+T__137=137
+T__138=138
+T__139=139
+T__140=140
+T__141=141
+T__142=142
+T__143=143
+T__144=144
+T__145=145
+T__146=146
+T__147=147
+T__148=148
+T__149=149
+T__150=150
+T__151=151
+T__152=152
+T__153=153
+T__154=154
+T__155=155
+T__156=156
+T__157=157
+T__158=158
+T__159=159
+T__160=160
+T__161=161
+T__162=162
+T__163=163
+T__164=164
+T__165=165
+T__166=166
+T__167=167
+T__18=18
+T__19=19
+T__20=20
+T__21=21
+T__22=22
+T__23=23
+T__24=24
+T__25=25
+T__26=26
+T__27=27
+T__28=28
+T__29=29
+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
+T__40=40
+T__41=41
+T__42=42
+T__43=43
+T__44=44
+T__45=45
+T__46=46
+T__47=47
+T__48=48
+T__49=49
+T__50=50
+T__51=51
+T__52=52
+T__53=53
+T__54=54
+T__55=55
+T__56=56
+T__57=57
+T__58=58
+T__59=59
+T__60=60
+T__61=61
+T__62=62
+T__63=63
+T__64=64
+T__65=65
+T__66=66
+T__67=67
+T__68=68
+T__69=69
+T__70=70
+T__71=71
+T__72=72
+T__73=73
+T__74=74
+T__75=75
+T__76=76
+T__77=77
+T__78=78
+T__79=79
+T__80=80
+T__81=81
+T__82=82
+T__83=83
+T__84=84
+T__85=85
+T__86=86
+T__87=87
+T__88=88
+T__89=89
+T__90=90
+T__91=91
+T__92=92
+T__93=93
+T__94=94
+T__95=95
+T__96=96
+T__97=97
+T__98=98
+T__99=99
diff --git a/rba.tool.editor.ide/src-gen/rba/tool/editor/ide/contentassist/antlr/internal/InternalRBAModelLexer.java b/rba.tool.editor.ide/src-gen/rba/tool/editor/ide/contentassist/antlr/internal/InternalRBAModelLexer.java
new file mode 100644
index 0000000..a4f0871
--- /dev/null
+++ b/rba.tool.editor.ide/src-gen/rba/tool/editor/ide/contentassist/antlr/internal/InternalRBAModelLexer.java
@@ -0,0 +1,6319 @@
+package rba.tool.editor.ide.contentassist.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.ide.editor.contentassist.antlr.internal.Lexer;
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+@SuppressWarnings("all")
+public class InternalRBAModelLexer extends Lexer {
+ public static final int T__144=144;
+ public static final int T__143=143;
+ public static final int T__146=146;
+ public static final int T__50=50;
+ public static final int T__145=145;
+ public static final int T__140=140;
+ public static final int T__142=142;
+ public static final int T__141=141;
+ public static final int T__59=59;
+ 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__137=137;
+ public static final int T__52=52;
+ public static final int T__136=136;
+ public static final int T__53=53;
+ public static final int T__139=139;
+ public static final int T__54=54;
+ public static final int T__138=138;
+ public static final int T__133=133;
+ public static final int T__132=132;
+ public static final int T__60=60;
+ public static final int T__135=135;
+ public static final int T__61=61;
+ public static final int T__134=134;
+ public static final int RULE_ID=6;
+ public static final int T__131=131;
+ public static final int T__130=130;
+ public static final int RULE_INT=7;
+ public static final int T__66=66;
+ public static final int RULE_ML_COMMENT=16;
+ public static final int T__67=67;
+ public static final int T__129=129;
+ public static final int T__68=68;
+ public static final int T__69=69;
+ public static final int T__62=62;
+ public static final int T__126=126;
+ public static final int T__63=63;
+ public static final int T__125=125;
+ public static final int T__64=64;
+ public static final int T__128=128;
+ public static final int T__65=65;
+ public static final int T__127=127;
+ public static final int T__166=166;
+ public static final int T__165=165;
+ public static final int T__167=167;
+ public static final int T__162=162;
+ public static final int T__161=161;
+ public static final int T__164=164;
+ public static final int T__163=163;
+ public static final int T__160=160;
+ public static final int RULE_IDENTIFIER_DIGITS=13;
+ public static final int RULE_UNICODE_ESCAPE=9;
+ 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_IDENTIFIER_PART=10;
+ 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__159=159;
+ public static final int T__30=30;
+ public static final int T__158=158;
+ public static final int T__31=31;
+ public static final int T__32=32;
+ public static final int T__155=155;
+ public static final int T__154=154;
+ public static final int T__157=157;
+ public static final int T__156=156;
+ public static final int T__151=151;
+ public static final int T__150=150;
+ public static final int T__153=153;
+ public static final int T__152=152;
+ public static final int T__48=48;
+ public static final int T__49=49;
+ public static final int T__44=44;
+ public static final int T__45=45;
+ public static final int RULE_HEX_DIGIT=14;
+ public static final int T__46=46;
+ public static final int T__47=47;
+ public static final int T__40=40;
+ public static final int T__148=148;
+ public static final int T__41=41;
+ public static final int T__147=147;
+ public static final int T__42=42;
+ public static final int T__43=43;
+ public static final int T__149=149;
+ public static final int T__91=91;
+ public static final int T__100=100;
+ public static final int T__92=92;
+ public static final int T__93=93;
+ public static final int T__102=102;
+ public static final int T__94=94;
+ public static final int T__101=101;
+ public static final int T__90=90;
+ public static final int T__19=19;
+ public static final int RULE_IDENTIFIER_START=8;
+ public static final int T__18=18;
+ public static final int T__99=99;
+ public static final int T__95=95;
+ public static final int T__96=96;
+ public static final int T__97=97;
+ public static final int T__98=98;
+ public static final int T__26=26;
+ public static final int T__27=27;
+ public static final int T__28=28;
+ public static final int T__29=29;
+ public static final int T__22=22;
+ public static final int T__23=23;
+ public static final int T__24=24;
+ public static final int T__25=25;
+ public static final int T__20=20;
+ public static final int T__21=21;
+ public static final int T__122=122;
+ public static final int T__70=70;
+ public static final int T__121=121;
+ public static final int T__71=71;
+ public static final int T__124=124;
+ public static final int T__72=72;
+ public static final int T__123=123;
+ public static final int T__120=120;
+ public static final int RULE_STRING=4;
+ public static final int RULE_SL_COMMENT=17;
+ public static final int T__77=77;
+ public static final int T__119=119;
+ public static final int T__78=78;
+ public static final int T__118=118;
+ public static final int T__79=79;
+ public static final int T__73=73;
+ public static final int T__115=115;
+ public static final int EOF=-1;
+ public static final int T__74=74;
+ public static final int T__114=114;
+ public static final int T__75=75;
+ public static final int T__117=117;
+ public static final int T__76=76;
+ public static final int T__116=116;
+ public static final int T__80=80;
+ public static final int T__111=111;
+ public static final int T__81=81;
+ public static final int T__110=110;
+ public static final int RULE_RICH_STRING=5;
+ public static final int T__82=82;
+ public static final int T__113=113;
+ public static final int T__83=83;
+ public static final int T__112=112;
+ public static final int RULE_WS=15;
+ public static final int RULE_IDENTIFIER_PART_IMPL=12;
+ public static final int RULE_IDENTIFIER_START_IMPL=11;
+ public static final int T__88=88;
+ public static final int T__108=108;
+ public static final int T__89=89;
+ public static final int T__107=107;
+ public static final int T__109=109;
+ public static final int T__84=84;
+ public static final int T__104=104;
+ public static final int T__85=85;
+ public static final int T__103=103;
+ public static final int T__86=86;
+ public static final int T__106=106;
+ public static final int T__87=87;
+ public static final int T__105=105;
+
+ // delegates
+ // delegators
+
+ public InternalRBAModelLexer() {;}
+ public InternalRBAModelLexer(CharStream input) {
+ this(input, new RecognizerSharedState());
+ }
+ public InternalRBAModelLexer(CharStream input, RecognizerSharedState state) {
+ super(input,state);
+
+ }
+ public String getGrammarFileName() { return "InternalRBAModel.g"; }
+
+ // $ANTLR start "T__18"
+ public final void mT__18() throws RecognitionException {
+ try {
+ int _type = T__18;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:11:7: ( '+' )
+ // InternalRBAModel.g:11: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;
+ // InternalRBAModel.g:12:7: ( '>>' )
+ // InternalRBAModel.g:12: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;
+ // InternalRBAModel.g:13:7: ( '=' )
+ // InternalRBAModel.g:13: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;
+ // InternalRBAModel.g:14:7: ( '>' )
+ // InternalRBAModel.g:14: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;
+ // InternalRBAModel.g:15:7: ( '<' )
+ // InternalRBAModel.g:15: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;
+ // InternalRBAModel.g:16:7: ( '->' )
+ // InternalRBAModel.g:16: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;
+ // InternalRBAModel.g:17:7: ( 'OR' )
+ // InternalRBAModel.g:17:9: 'OR'
+ {
+ match("OR");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:18:7: ( 'AND' )
+ // InternalRBAModel.g:18:9: 'AND'
+ {
+ match("AND");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:19:7: ( '==' )
+ // InternalRBAModel.g:19: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;
+ // InternalRBAModel.g:20:7: ( '!=' )
+ // InternalRBAModel.g:20: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;
+ // InternalRBAModel.g:21:7: ( '>=' )
+ // InternalRBAModel.g:21: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;
+ // InternalRBAModel.g:22:7: ( '<=' )
+ // InternalRBAModel.g:22: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;
+ // InternalRBAModel.g:23:7: ( '!' )
+ // InternalRBAModel.g:23: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;
+ // InternalRBAModel.g:24:7: ( 'get' )
+ // InternalRBAModel.g:24:9: 'get'
+ {
+ match("get");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:25:7: ( 'isOn' )
+ // InternalRBAModel.g:25:9: 'isOn'
+ {
+ match("isOn");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:26:7: ( 'contentsList' )
+ // InternalRBAModel.g:26:9: 'contentsList'
+ {
+ match("contentsList");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:27:7: ( 'contentValue' )
+ // InternalRBAModel.g:27:9: 'contentValue'
+ {
+ match("contentValue");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:28:7: ( 'isActive' )
+ // InternalRBAModel.g:28:9: 'isActive'
+ {
+ match("isActive");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:29:7: ( 'allocatables' )
+ // InternalRBAModel.g:29:9: 'allocatables'
+ {
+ match("allocatables");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:30:7: ( 'allocatedContent' )
+ // InternalRBAModel.g:30:9: 'allocatedContent'
+ {
+ match("allocatedContent");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:31:7: ( 'isDisplayed' )
+ // InternalRBAModel.g:31:9: 'isDisplayed'
+ {
+ match("isDisplayed");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:32:7: ( 'isHidden' )
+ // InternalRBAModel.g:32:9: 'isHidden'
+ {
+ match("isHidden");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:33:7: ( 'displayingContent' )
+ // InternalRBAModel.g:33:9: 'displayingContent'
+ {
+ match("displayingContent");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:34:7: ( 'isVisible' )
+ // InternalRBAModel.g:34:9: 'isVisible'
+ {
+ match("isVisible");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:35:7: ( 'isOutputted' )
+ // InternalRBAModel.g:35:9: 'isOutputted'
+ {
+ match("isOutputted");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:36:7: ( 'isMuted' )
+ // InternalRBAModel.g:36:9: 'isMuted'
+ {
+ match("isMuted");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:37:7: ( 'outputtingSound' )
+ // InternalRBAModel.g:37:9: 'outputtingSound'
+ {
+ match("outputtingSound");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:38:7: ( 'isSounding' )
+ // InternalRBAModel.g:38:9: 'isSounding'
+ {
+ match("isSounding");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:39:7: ( 'isAttenuated' )
+ // InternalRBAModel.g:39:9: 'isAttenuated'
+ {
+ match("isAttenuated");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:40:7: ( 'hasComeEarlierThan' )
+ // InternalRBAModel.g:40:9: 'hasComeEarlierThan'
+ {
+ match("hasComeEarlierThan");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:41:7: ( 'hasComeLaterThan' )
+ // InternalRBAModel.g:41:9: 'hasComeLaterThan'
+ {
+ match("hasComeLaterThan");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:42:7: ( 'stateValue' )
+ // InternalRBAModel.g:42:9: 'stateValue'
+ {
+ match("stateValue");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:43:7: ( 'isAllocatedTo' )
+ // InternalRBAModel.g:43:9: 'isAllocatedTo'
+ {
+ match("isAllocatedTo");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:44:7: ( 'isChanged' )
+ // InternalRBAModel.g:44:9: 'isChanged'
+ {
+ match("isChanged");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:45:7: ( 'isTranslatedTo' )
+ // InternalRBAModel.g:45:9: 'isTranslatedTo'
+ {
+ match("isTranslatedTo");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:46:7: ( 'isDisplayedOn' )
+ // InternalRBAModel.g:46:9: 'isDisplayedOn'
+ {
+ match("isDisplayedOn");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:47:7: ( 'isChangedDisplay' )
+ // InternalRBAModel.g:47:9: 'isChangedDisplay'
+ {
+ match("isChangedDisplay");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:48:7: ( 'isTranslatedViewTo' )
+ // InternalRBAModel.g:48:9: 'isTranslatedViewTo'
+ {
+ match("isTranslatedViewTo");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:49:7: ( 'isOutputtedOn' )
+ // InternalRBAModel.g:49:9: 'isOutputtedOn'
+ {
+ match("isOutputtedOn");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:50:7: ( 'isChangedOutput' )
+ // InternalRBAModel.g:50:9: 'isChangedOutput'
+ {
+ match("isChangedOutput");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:51:7: ( 'isTranslatedSoundTo' )
+ // InternalRBAModel.g:51:9: 'isTranslatedSoundTo'
+ {
+ match("isTranslatedSoundTo");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:52:7: ( 'isTypeOf' )
+ // InternalRBAModel.g:52:9: 'isTypeOf'
+ {
+ match("isTypeOf");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:53:7: ( 'activeContents' )
+ // InternalRBAModel.g:53:9: 'activeContents'
+ {
+ match("activeContents");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:54:7: ( 'size' )
+ // InternalRBAModel.g:54:9: 'size'
+ {
+ match("size");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:55:7: ( 'hasBeenDisplayed' )
+ // InternalRBAModel.g:55:9: 'hasBeenDisplayed'
+ {
+ match("hasBeenDisplayed");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:56:7: ( 'activeState' )
+ // InternalRBAModel.g:56:9: 'activeState'
+ {
+ match("activeState");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:57:7: ( 'max' )
+ // InternalRBAModel.g:57:9: 'max'
+ {
+ match("max");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:58:7: ( 'min' )
+ // InternalRBAModel.g:58:9: 'min'
+ {
+ match("min");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:59:7: ( 'select' )
+ // InternalRBAModel.g:59:9: 'select'
+ {
+ match("select");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:60:7: ( 'Area' )
+ // InternalRBAModel.g:60:9: 'Area'
+ {
+ match("Area");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:61:7: ( 'Zone' )
+ // InternalRBAModel.g:61:9: 'Zone'
+ {
+ match("Zone");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:62:7: ( 'SoundContent' )
+ // InternalRBAModel.g:62:9: 'SoundContent'
+ {
+ match("SoundContent");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:63:7: ( 'ViewContent' )
+ // InternalRBAModel.g:63:9: 'ViewContent'
+ {
+ match("ViewContent");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:64:7: ( 'visibility:' )
+ // InternalRBAModel.g:64:9: 'visibility:'
+ {
+ match("visibility:");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:65:7: ( 'priority:' )
+ // InternalRBAModel.g:65:9: 'priority:'
+ {
+ match("priority:");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:66:7: ( 'value:' )
+ // InternalRBAModel.g:66:9: 'value:'
+ {
+ match("value:");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:67:7: ( 'true' )
+ // InternalRBAModel.g:67:9: 'true'
+ {
+ match("true");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:68:7: ( 'false' )
+ // InternalRBAModel.g:68:9: 'false'
+ {
+ match("false");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:69:7: ( 'this' )
+ // InternalRBAModel.g:69:9: 'this'
+ {
+ match("this");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:70:7: ( 'DEFAULT' )
+ // InternalRBAModel.g:70:9: 'DEFAULT'
+ {
+ match("DEFAULT");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:71:7: ( 'FIRST_COME_FIRST' )
+ // InternalRBAModel.g:71:9: 'FIRST_COME_FIRST'
+ {
+ match("FIRST_COME_FIRST");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:72:7: ( 'LAST_COME_FIRST' )
+ // InternalRBAModel.g:72:9: 'LAST_COME_FIRST'
+ {
+ match("LAST_COME_FIRST");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:73:7: ( 'PRIORITY_FIRST_COME_FIRST' )
+ // InternalRBAModel.g:73:9: 'PRIORITY_FIRST_COME_FIRST'
+ {
+ match("PRIORITY_FIRST_COME_FIRST");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:74:7: ( 'PRIORITY_LAST_COME_FIRST' )
+ // InternalRBAModel.g:74:9: 'PRIORITY_LAST_COME_FIRST'
+ {
+ match("PRIORITY_LAST_COME_FIRST");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:75:7: ( 'LEFT_TOP' )
+ // InternalRBAModel.g:75:9: 'LEFT_TOP'
+ {
+ match("LEFT_TOP");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:76:7: ( 'LEFT_MIDDLE' )
+ // InternalRBAModel.g:76:9: 'LEFT_MIDDLE'
+ {
+ match("LEFT_MIDDLE");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:77:7: ( 'LEFT_BOTTOM' )
+ // InternalRBAModel.g:77:9: 'LEFT_BOTTOM'
+ {
+ match("LEFT_BOTTOM");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:78:7: ( 'RIGHT_TOP' )
+ // InternalRBAModel.g:78:9: 'RIGHT_TOP'
+ {
+ match("RIGHT_TOP");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:79:7: ( 'RIGHT_MIDDLE' )
+ // InternalRBAModel.g:79:9: 'RIGHT_MIDDLE'
+ {
+ match("RIGHT_MIDDLE");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:80:7: ( 'RIGHT_BOTTOM' )
+ // InternalRBAModel.g:80:9: 'RIGHT_BOTTOM'
+ {
+ match("RIGHT_BOTTOM");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:81:7: ( 'CENTER_TOP' )
+ // InternalRBAModel.g:81:9: 'CENTER_TOP'
+ {
+ match("CENTER_TOP");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:82:7: ( 'CENTER_MIDDLE' )
+ // InternalRBAModel.g:82:9: 'CENTER_MIDDLE'
+ {
+ match("CENTER_MIDDLE");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:83:7: ( 'CENTER_BOTTOM' )
+ // InternalRBAModel.g:83:9: 'CENTER_BOTTOM'
+ {
+ match("CENTER_BOTTOM");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:84:7: ( 'NEVER_GIVEUP' )
+ // InternalRBAModel.g:84:9: 'NEVER_GIVEUP'
+ {
+ match("NEVER_GIVEUP");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:85:7: ( 'GOOD_LOSER' )
+ // InternalRBAModel.g:85:9: 'GOOD_LOSER'
+ {
+ match("GOOD_LOSER");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:86:7: ( 'DO_NOT_GIVEUP_UNTIL_WIN' )
+ // InternalRBAModel.g:86:9: 'DO_NOT_GIVEUP_UNTIL_WIN'
+ {
+ match("DO_NOT_GIVEUP_UNTIL_WIN");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:87:7: ( 'module' )
+ // InternalRBAModel.g:87:9: 'module'
+ {
+ match("module");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:88:7: ( 'import' )
+ // InternalRBAModel.g:88:9: 'import'
+ {
+ match("import");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:89:7: ( 'int' )
+ // InternalRBAModel.g:89:9: 'int'
+ {
+ match("int");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:90:7: ( ':' )
+ // InternalRBAModel.g:90:9: ':'
+ {
+ match(':');
+
+ }
+
+ 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;
+ // InternalRBAModel.g:91:7: ( '<<' )
+ // InternalRBAModel.g:91:9: '<<'
+ {
+ match("<<");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:92:7: ( '\\u00AB' )
+ // InternalRBAModel.g:92:9: '\\u00AB'
+ {
+ match('\u00AB');
+
+ }
+
+ 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;
+ // InternalRBAModel.g:93:8: ( '\\u00BB' )
+ // InternalRBAModel.g:93:10: '\\u00BB'
+ {
+ match('\u00BB');
+
+ }
+
+ 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;
+ // InternalRBAModel.g:94:8: ( '{' )
+ // InternalRBAModel.g:94:10: '{'
+ {
+ match('{');
+
+ }
+
+ 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;
+ // InternalRBAModel.g:95:8: ( '}' )
+ // InternalRBAModel.g:95:10: '}'
+ {
+ match('}');
+
+ }
+
+ 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;
+ // InternalRBAModel.g:96:8: ( ',' )
+ // InternalRBAModel.g:96: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;
+ // InternalRBAModel.g:97:8: ( 'Package' )
+ // InternalRBAModel.g:97:10: 'Package'
+ {
+ match("Package");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:98:8: ( 'description:' )
+ // InternalRBAModel.g:98:10: 'description:'
+ {
+ match("description:");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:99:8: ( 'Stereotype' )
+ // InternalRBAModel.g:99:10: 'Stereotype'
+ {
+ match("Stereotype");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:100:8: ( '(' )
+ // InternalRBAModel.g:100: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;
+ // InternalRBAModel.g:101:8: ( ')' )
+ // InternalRBAModel.g:101: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;
+ // InternalRBAModel.g:102:8: ( 'Display' )
+ // InternalRBAModel.g:102:10: 'Display'
+ {
+ match("Display");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:103:8: ( 'Constraint' )
+ // InternalRBAModel.g:103:10: 'Constraint'
+ {
+ match("Constraint");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:104:8: ( 'runtime:' )
+ // InternalRBAModel.g:104:10: 'runtime:'
+ {
+ match("runtime:");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:105:8: ( 'loserType:' )
+ // InternalRBAModel.g:105:10: 'loserType:'
+ {
+ match("loserType:");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:106:8: ( 'allocatable:' )
+ // InternalRBAModel.g:106:10: 'allocatable:'
+ {
+ match("allocatable:");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__113"
+
+ // $ANTLR start "T__114"
+ public final void mT__114() throws RecognitionException {
+ try {
+ int _type = T__114;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:107:8: ( '[' )
+ // InternalRBAModel.g:107:10: '['
+ {
+ match('[');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__114"
+
+ // $ANTLR start "T__115"
+ public final void mT__115() throws RecognitionException {
+ try {
+ int _type = T__115;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:108:8: ( ']' )
+ // InternalRBAModel.g:108:10: ']'
+ {
+ match(']');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__115"
+
+ // $ANTLR start "T__116"
+ public final void mT__116() throws RecognitionException {
+ try {
+ int _type = T__116;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:109:8: ( 'Size' )
+ // InternalRBAModel.g:109:10: 'Size'
+ {
+ match("Size");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__116"
+
+ // $ANTLR start "T__117"
+ public final void mT__117() throws RecognitionException {
+ try {
+ int _type = T__117;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:110:8: ( 'width:' )
+ // InternalRBAModel.g:110:10: 'width:'
+ {
+ match("width:");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__117"
+
+ // $ANTLR start "T__118"
+ public final void mT__118() throws RecognitionException {
+ try {
+ int _type = T__118;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:111:8: ( 'height:' )
+ // InternalRBAModel.g:111:10: 'height:'
+ {
+ match("height:");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__118"
+
+ // $ANTLR start "T__119"
+ public final void mT__119() throws RecognitionException {
+ try {
+ int _type = T__119;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:112:8: ( 'sizeReference:' )
+ // InternalRBAModel.g:112:10: 'sizeReference:'
+ {
+ match("sizeReference:");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__119"
+
+ // $ANTLR start "T__120"
+ public final void mT__120() throws RecognitionException {
+ try {
+ int _type = T__120;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:113:8: ( 'Offset' )
+ // InternalRBAModel.g:113:10: 'Offset'
+ {
+ match("Offset");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__120"
+
+ // $ANTLR start "T__121"
+ public final void mT__121() throws RecognitionException {
+ try {
+ int _type = T__121;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:114:8: ( 'x:' )
+ // InternalRBAModel.g:114:10: 'x:'
+ {
+ match("x:");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__121"
+
+ // $ANTLR start "T__122"
+ public final void mT__122() throws RecognitionException {
+ try {
+ int _type = T__122;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:115:8: ( 'y:' )
+ // InternalRBAModel.g:115:10: 'y:'
+ {
+ match("y:");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__122"
+
+ // $ANTLR start "T__123"
+ public final void mT__123() throws RecognitionException {
+ try {
+ int _type = T__123;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:116:8: ( 'AreaSet' )
+ // InternalRBAModel.g:116:10: 'AreaSet'
+ {
+ match("AreaSet");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__123"
+
+ // $ANTLR start "T__124"
+ public final void mT__124() throws RecognitionException {
+ try {
+ int _type = T__124;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:117:8: ( 'target:' )
+ // InternalRBAModel.g:117:10: 'target:'
+ {
+ match("target:");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__124"
+
+ // $ANTLR start "T__125"
+ public final void mT__125() throws RecognitionException {
+ try {
+ int _type = T__125;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:118:8: ( 'ZoneSet' )
+ // InternalRBAModel.g:118:10: 'ZoneSet'
+ {
+ match("ZoneSet");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__125"
+
+ // $ANTLR start "T__126"
+ public final void mT__126() throws RecognitionException {
+ try {
+ int _type = T__126;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:119:8: ( 'CompositeArea' )
+ // InternalRBAModel.g:119:10: 'CompositeArea'
+ {
+ match("CompositeArea");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__126"
+
+ // $ANTLR start "T__127"
+ public final void mT__127() throws RecognitionException {
+ try {
+ int _type = T__127;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:120:8: ( 'layout:' )
+ // InternalRBAModel.g:120:10: 'layout:'
+ {
+ match("layout:");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__127"
+
+ // $ANTLR start "T__128"
+ public final void mT__128() throws RecognitionException {
+ try {
+ int _type = T__128;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:121:8: ( 'arbitrationPolicy:' )
+ // InternalRBAModel.g:121:10: 'arbitrationPolicy:'
+ {
+ match("arbitrationPolicy:");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__128"
+
+ // $ANTLR start "T__129"
+ public final void mT__129() throws RecognitionException {
+ try {
+ int _type = T__129;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:122:8: ( 'zorder:' )
+ // InternalRBAModel.g:122:10: 'zorder:'
+ {
+ match("zorder:");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__129"
+
+ // $ANTLR start "T__130"
+ public final void mT__130() throws RecognitionException {
+ try {
+ int _type = T__130;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:123:8: ( 'attenuateValue:' )
+ // InternalRBAModel.g:123:10: 'attenuateValue:'
+ {
+ match("attenuateValue:");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__130"
+
+ // $ANTLR start "T__131"
+ public final void mT__131() throws RecognitionException {
+ try {
+ int _type = T__131;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:124:8: ( 'State' )
+ // InternalRBAModel.g:124:10: 'State'
+ {
+ match("State");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__131"
+
+ // $ANTLR start "T__132"
+ public final void mT__132() throws RecognitionException {
+ try {
+ int _type = T__132;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:125:8: ( 'Project' )
+ // InternalRBAModel.g:125:10: 'Project'
+ {
+ match("Project");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__132"
+
+ // $ANTLR start "T__133"
+ public final void mT__133() throws RecognitionException {
+ try {
+ int _type = T__133;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:126:8: ( 'version:' )
+ // InternalRBAModel.g:126:10: 'version:'
+ {
+ match("version:");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__133"
+
+ // $ANTLR start "T__134"
+ public final void mT__134() throws RecognitionException {
+ try {
+ int _type = T__134;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:127:8: ( 'That-of' )
+ // InternalRBAModel.g:127:10: 'That-of'
+ {
+ match("That-of");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__134"
+
+ // $ANTLR start "T__135"
+ public final void mT__135() throws RecognitionException {
+ try {
+ int _type = T__135;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:128:8: ( '.' )
+ // InternalRBAModel.g:128:10: '.'
+ {
+ match('.');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__135"
+
+ // $ANTLR start "T__136"
+ public final void mT__136() throws RecognitionException {
+ try {
+ int _type = T__136;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:129:8: ( 'STANDARD_VALUE' )
+ // InternalRBAModel.g:129:10: 'STANDARD_VALUE'
+ {
+ match("STANDARD_VALUE");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__136"
+
+ // $ANTLR start "T__137"
+ public final void mT__137() throws RecognitionException {
+ try {
+ int _type = T__137;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:130:8: ( 'NONE_VALUE' )
+ // InternalRBAModel.g:130:10: 'NONE_VALUE'
+ {
+ match("NONE_VALUE");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__137"
+
+ // $ANTLR start "T__138"
+ public final void mT__138() throws RecognitionException {
+ try {
+ int _type = T__138;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:131:8: ( 'MIN_VALUE' )
+ // InternalRBAModel.g:131:10: 'MIN_VALUE'
+ {
+ match("MIN_VALUE");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__138"
+
+ // $ANTLR start "T__139"
+ public final void mT__139() throws RecognitionException {
+ try {
+ int _type = T__139;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:132:8: ( 'MAX_VALUE' )
+ // InternalRBAModel.g:132:10: 'MAX_VALUE'
+ {
+ match("MAX_VALUE");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__139"
+
+ // $ANTLR start "T__140"
+ public final void mT__140() throws RecognitionException {
+ try {
+ int _type = T__140;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:133:8: ( 'ALL_AREAS' )
+ // InternalRBAModel.g:133:10: 'ALL_AREAS'
+ {
+ match("ALL_AREAS");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__140"
+
+ // $ANTLR start "T__141"
+ public final void mT__141() throws RecognitionException {
+ try {
+ int _type = T__141;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:134:8: ( 'ALL_VIEWCONTENTS' )
+ // InternalRBAModel.g:134:10: 'ALL_VIEWCONTENTS'
+ {
+ match("ALL_VIEWCONTENTS");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__141"
+
+ // $ANTLR start "T__142"
+ public final void mT__142() throws RecognitionException {
+ try {
+ int _type = T__142;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:135:8: ( 'ALL_ZONES' )
+ // InternalRBAModel.g:135:10: 'ALL_ZONES'
+ {
+ match("ALL_ZONES");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__142"
+
+ // $ANTLR start "T__143"
+ public final void mT__143() throws RecognitionException {
+ try {
+ int _type = T__143;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:136:8: ( 'ALL_SOUNDCONTENTS' )
+ // InternalRBAModel.g:136:10: 'ALL_SOUNDCONTENTS'
+ {
+ match("ALL_SOUNDCONTENTS");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__143"
+
+ // $ANTLR start "T__144"
+ public final void mT__144() throws RecognitionException {
+ try {
+ int _type = T__144;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:137:8: ( 'NULL' )
+ // InternalRBAModel.g:137:10: 'NULL'
+ {
+ match("NULL");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__144"
+
+ // $ANTLR start "T__145"
+ public final void mT__145() throws RecognitionException {
+ try {
+ int _type = T__145;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:138:8: ( '(pre)' )
+ // InternalRBAModel.g:138:10: '(pre)'
+ {
+ match("(pre)");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__145"
+
+ // $ANTLR start "T__146"
+ public final void mT__146() throws RecognitionException {
+ try {
+ int _type = T__146;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:139:8: ( 'HideLowerPriority' )
+ // InternalRBAModel.g:139:10: 'HideLowerPriority'
+ {
+ match("HideLowerPriority");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__146"
+
+ // $ANTLR start "T__147"
+ public final void mT__147() throws RecognitionException {
+ try {
+ int _type = T__147;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:140:8: ( 'MuteLowerPriority' )
+ // InternalRBAModel.g:140:10: 'MuteLowerPriority'
+ {
+ match("MuteLowerPriority");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__147"
+
+ // $ANTLR start "T__148"
+ public final void mT__148() throws RecognitionException {
+ try {
+ int _type = T__148;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:141:8: ( 'IF' )
+ // InternalRBAModel.g:141:10: 'IF'
+ {
+ match("IF");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__148"
+
+ // $ANTLR start "T__149"
+ public final void mT__149() throws RecognitionException {
+ try {
+ int _type = T__149;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:142:8: ( 'THEN' )
+ // InternalRBAModel.g:142:10: 'THEN'
+ {
+ match("THEN");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__149"
+
+ // $ANTLR start "T__150"
+ public final void mT__150() throws RecognitionException {
+ try {
+ int _type = T__150;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:143:8: ( 'ELSE' )
+ // InternalRBAModel.g:143:10: 'ELSE'
+ {
+ match("ELSE");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__150"
+
+ // $ANTLR start "T__151"
+ public final void mT__151() throws RecognitionException {
+ try {
+ int _type = T__151;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:144:8: ( 'For-All' )
+ // InternalRBAModel.g:144:10: 'For-All'
+ {
+ match("For-All");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__151"
+
+ // $ANTLR start "T__152"
+ public final void mT__152() throws RecognitionException {
+ try {
+ int _type = T__152;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:145:8: ( 'Exists' )
+ // InternalRBAModel.g:145:10: 'Exists'
+ {
+ match("Exists");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__152"
+
+ // $ANTLR start "T__153"
+ public final void mT__153() throws RecognitionException {
+ try {
+ int _type = T__153;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:146:8: ( '|' )
+ // InternalRBAModel.g:146:10: '|'
+ {
+ match('|');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__153"
+
+ // $ANTLR start "T__154"
+ public final void mT__154() throws RecognitionException {
+ try {
+ int _type = T__154;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:147:8: ( 'let' )
+ // InternalRBAModel.g:147:10: 'let'
+ {
+ match("let");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__154"
+
+ // $ANTLR start "T__155"
+ public final void mT__155() throws RecognitionException {
+ try {
+ int _type = T__155;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:148:8: ( 'ViewContentSet' )
+ // InternalRBAModel.g:148:10: 'ViewContentSet'
+ {
+ match("ViewContentSet");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__155"
+
+ // $ANTLR start "T__156"
+ public final void mT__156() throws RecognitionException {
+ try {
+ int _type = T__156;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:149:8: ( 'SoundContentSet' )
+ // InternalRBAModel.g:149:10: 'SoundContentSet'
+ {
+ match("SoundContentSet");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__156"
+
+ // $ANTLR start "T__157"
+ public final void mT__157() throws RecognitionException {
+ try {
+ int _type = T__157;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:150:8: ( 'Scene' )
+ // InternalRBAModel.g:150:10: 'Scene'
+ {
+ match("Scene");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__157"
+
+ // $ANTLR start "T__158"
+ public final void mT__158() throws RecognitionException {
+ try {
+ int _type = T__158;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:151:8: ( 'global:' )
+ // InternalRBAModel.g:151:10: 'global:'
+ {
+ match("global:");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__158"
+
+ // $ANTLR start "T__159"
+ public final void mT__159() throws RecognitionException {
+ try {
+ int _type = T__159;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:152:8: ( 'VerticalLayout' )
+ // InternalRBAModel.g:152:10: 'VerticalLayout'
+ {
+ match("VerticalLayout");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__159"
+
+ // $ANTLR start "T__160"
+ public final void mT__160() throws RecognitionException {
+ try {
+ int _type = T__160;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:153:8: ( 'basePoint:' )
+ // InternalRBAModel.g:153:10: 'basePoint:'
+ {
+ match("basePoint:");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__160"
+
+ // $ANTLR start "T__161"
+ public final void mT__161() throws RecognitionException {
+ try {
+ int _type = T__161;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:154:8: ( 'subarea:' )
+ // InternalRBAModel.g:154:10: 'subarea:'
+ {
+ match("subarea:");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__161"
+
+ // $ANTLR start "T__162"
+ public final void mT__162() throws RecognitionException {
+ try {
+ int _type = T__162;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:155:8: ( 'HorizontalLayout' )
+ // InternalRBAModel.g:155:10: 'HorizontalLayout'
+ {
+ match("HorizontalLayout");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__162"
+
+ // $ANTLR start "T__163"
+ public final void mT__163() throws RecognitionException {
+ try {
+ int _type = T__163;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:156:8: ( 'FixedPositionLayout' )
+ // InternalRBAModel.g:156:10: 'FixedPositionLayout'
+ {
+ match("FixedPositionLayout");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__163"
+
+ // $ANTLR start "T__164"
+ public final void mT__164() throws RecognitionException {
+ try {
+ int _type = T__164;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:157:8: ( 'PositionContainer' )
+ // InternalRBAModel.g:157:10: 'PositionContainer'
+ {
+ match("PositionContainer");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__164"
+
+ // $ANTLR start "T__165"
+ public final void mT__165() throws RecognitionException {
+ try {
+ int _type = T__165;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:158:8: ( 'areaReference:' )
+ // InternalRBAModel.g:158:10: 'areaReference:'
+ {
+ match("areaReference:");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__165"
+
+ // $ANTLR start "T__166"
+ public final void mT__166() throws RecognitionException {
+ try {
+ int _type = T__166;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:159:8: ( '-' )
+ // InternalRBAModel.g:159:10: '-'
+ {
+ match('-');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__166"
+
+ // $ANTLR start "T__167"
+ public final void mT__167() throws RecognitionException {
+ try {
+ int _type = T__167;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:160:8: ( '.*' )
+ // InternalRBAModel.g:160:10: '.*'
+ {
+ match(".*");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__167"
+
+ // $ANTLR start "RULE_ID"
+ public final void mRULE_ID() throws RecognitionException {
+ try {
+ int _type = RULE_ID;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:26636:9: ( ( RULE_IDENTIFIER_START | RULE_UNICODE_ESCAPE ) ( RULE_IDENTIFIER_PART | RULE_UNICODE_ESCAPE )* )
+ // InternalRBAModel.g:26636:11: ( RULE_IDENTIFIER_START | RULE_UNICODE_ESCAPE ) ( RULE_IDENTIFIER_PART | RULE_UNICODE_ESCAPE )*
+ {
+ // InternalRBAModel.g:26636:11: ( RULE_IDENTIFIER_START | RULE_UNICODE_ESCAPE )
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( ((LA1_0>='\u0000' && LA1_0<='\b')||(LA1_0>='\u000E' && LA1_0<='\u001B')||LA1_0=='$'||(LA1_0>='A' && LA1_0<='Z')||LA1_0=='_'||(LA1_0>='a' && LA1_0<='z')||(LA1_0>='\u007F' && LA1_0<='\u009F')||(LA1_0>='\u00A2' && LA1_0<='\u00A5')||LA1_0=='\u00AA'||LA1_0=='\u00AD'||LA1_0=='\u00B5'||LA1_0=='\u00BA'||(LA1_0>='\u00C0' && LA1_0<='\u00D6')||(LA1_0>='\u00D8' && LA1_0<='\u00F6')||(LA1_0>='\u00F8' && LA1_0<='\u0236')||(LA1_0>='\u0250' && LA1_0<='\u02C1')||(LA1_0>='\u02C6' && LA1_0<='\u02D1')||(LA1_0>='\u02E0' && LA1_0<='\u02E4')||LA1_0=='\u02EE'||(LA1_0>='\u0300' && LA1_0<='\u0357')||(LA1_0>='\u035D' && LA1_0<='\u036F')||LA1_0=='\u037A'||LA1_0=='\u0386'||(LA1_0>='\u0388' && LA1_0<='\u038A')||LA1_0=='\u038C'||(LA1_0>='\u038E' && LA1_0<='\u03A1')||(LA1_0>='\u03A3' && LA1_0<='\u03CE')||(LA1_0>='\u03D0' && LA1_0<='\u03F5')||(LA1_0>='\u03F7' && LA1_0<='\u03FB')||(LA1_0>='\u0400' && LA1_0<='\u0481')||(LA1_0>='\u0483' && LA1_0<='\u0486')||(LA1_0>='\u048A' && LA1_0<='\u04CE')||(LA1_0>='\u04D0' && LA1_0<='\u04F5')||(LA1_0>='\u04F8' && LA1_0<='\u04F9')||(LA1_0>='\u0500' && LA1_0<='\u050F')||(LA1_0>='\u0531' && LA1_0<='\u0556')||LA1_0=='\u0559'||(LA1_0>='\u0561' && LA1_0<='\u0587')||(LA1_0>='\u0591' && LA1_0<='\u05A1')||(LA1_0>='\u05A3' && LA1_0<='\u05B9')||(LA1_0>='\u05BB' && LA1_0<='\u05BD')||LA1_0=='\u05BF'||(LA1_0>='\u05C1' && LA1_0<='\u05C2')||LA1_0=='\u05C4'||(LA1_0>='\u05D0' && LA1_0<='\u05EA')||(LA1_0>='\u05F0' && LA1_0<='\u05F2')||(LA1_0>='\u0600' && LA1_0<='\u0603')||(LA1_0>='\u0610' && LA1_0<='\u0615')||(LA1_0>='\u0621' && LA1_0<='\u063A')||(LA1_0>='\u0640' && LA1_0<='\u0658')||(LA1_0>='\u0660' && LA1_0<='\u0669')||(LA1_0>='\u066E' && LA1_0<='\u06D3')||(LA1_0>='\u06D5' && LA1_0<='\u06DD')||(LA1_0>='\u06DF' && LA1_0<='\u06E8')||(LA1_0>='\u06EA' && LA1_0<='\u06FC')||LA1_0=='\u06FF'||(LA1_0>='\u070F' && LA1_0<='\u074A')||(LA1_0>='\u074D' && LA1_0<='\u074F')||(LA1_0>='\u0780' && LA1_0<='\u07B1')||(LA1_0>='\u0901' && LA1_0<='\u0939')||(LA1_0>='\u093C' && LA1_0<='\u094D')||(LA1_0>='\u0950' && LA1_0<='\u0954')||(LA1_0>='\u0958' && LA1_0<='\u0963')||(LA1_0>='\u0966' && LA1_0<='\u096F')||(LA1_0>='\u0981' && LA1_0<='\u0983')||(LA1_0>='\u0985' && LA1_0<='\u098C')||(LA1_0>='\u098F' && LA1_0<='\u0990')||(LA1_0>='\u0993' && LA1_0<='\u09A8')||(LA1_0>='\u09AA' && LA1_0<='\u09B0')||LA1_0=='\u09B2'||(LA1_0>='\u09B6' && LA1_0<='\u09B9')||(LA1_0>='\u09BC' && LA1_0<='\u09C4')||(LA1_0>='\u09C7' && LA1_0<='\u09C8')||(LA1_0>='\u09CB' && LA1_0<='\u09CD')||LA1_0=='\u09D7'||(LA1_0>='\u09DC' && LA1_0<='\u09DD')||(LA1_0>='\u09DF' && LA1_0<='\u09E3')||(LA1_0>='\u09E6' && LA1_0<='\u09F3')||(LA1_0>='\u0A01' && LA1_0<='\u0A03')||(LA1_0>='\u0A05' && LA1_0<='\u0A0A')||(LA1_0>='\u0A0F' && LA1_0<='\u0A10')||(LA1_0>='\u0A13' && LA1_0<='\u0A28')||(LA1_0>='\u0A2A' && LA1_0<='\u0A30')||(LA1_0>='\u0A32' && LA1_0<='\u0A33')||(LA1_0>='\u0A35' && LA1_0<='\u0A36')||(LA1_0>='\u0A38' && LA1_0<='\u0A39')||LA1_0=='\u0A3C'||(LA1_0>='\u0A3E' && LA1_0<='\u0A42')||(LA1_0>='\u0A47' && LA1_0<='\u0A48')||(LA1_0>='\u0A4B' && LA1_0<='\u0A4D')||(LA1_0>='\u0A59' && LA1_0<='\u0A5C')||LA1_0=='\u0A5E'||(LA1_0>='\u0A66' && LA1_0<='\u0A74')||(LA1_0>='\u0A81' && LA1_0<='\u0A83')||(LA1_0>='\u0A85' && LA1_0<='\u0A8D')||(LA1_0>='\u0A8F' && LA1_0<='\u0A91')||(LA1_0>='\u0A93' && LA1_0<='\u0AA8')||(LA1_0>='\u0AAA' && LA1_0<='\u0AB0')||(LA1_0>='\u0AB2' && LA1_0<='\u0AB3')||(LA1_0>='\u0AB5' && LA1_0<='\u0AB9')||(LA1_0>='\u0ABC' && LA1_0<='\u0AC5')||(LA1_0>='\u0AC7' && LA1_0<='\u0AC9')||(LA1_0>='\u0ACB' && LA1_0<='\u0ACD')||LA1_0=='\u0AD0'||(LA1_0>='\u0AE0' && LA1_0<='\u0AE3')||(LA1_0>='\u0AE6' && LA1_0<='\u0AEF')||LA1_0=='\u0AF1'||(LA1_0>='\u0B01' && LA1_0<='\u0B03')||(LA1_0>='\u0B05' && LA1_0<='\u0B0C')||(LA1_0>='\u0B0F' && LA1_0<='\u0B10')||(LA1_0>='\u0B13' && LA1_0<='\u0B28')||(LA1_0>='\u0B2A' && LA1_0<='\u0B30')||(LA1_0>='\u0B32' && LA1_0<='\u0B33')||(LA1_0>='\u0B35' && LA1_0<='\u0B39')||(LA1_0>='\u0B3C' && LA1_0<='\u0B43')||(LA1_0>='\u0B47' && LA1_0<='\u0B48')||(LA1_0>='\u0B4B' && LA1_0<='\u0B4D')||(LA1_0>='\u0B56' && LA1_0<='\u0B57')||(LA1_0>='\u0B5C' && LA1_0<='\u0B5D')||(LA1_0>='\u0B5F' && LA1_0<='\u0B61')||(LA1_0>='\u0B66' && LA1_0<='\u0B6F')||LA1_0=='\u0B71'||(LA1_0>='\u0B82' && LA1_0<='\u0B83')||(LA1_0>='\u0B85' && LA1_0<='\u0B8A')||(LA1_0>='\u0B8E' && LA1_0<='\u0B90')||(LA1_0>='\u0B92' && LA1_0<='\u0B95')||(LA1_0>='\u0B99' && LA1_0<='\u0B9A')||LA1_0=='\u0B9C'||(LA1_0>='\u0B9E' && LA1_0<='\u0B9F')||(LA1_0>='\u0BA3' && LA1_0<='\u0BA4')||(LA1_0>='\u0BA8' && LA1_0<='\u0BAA')||(LA1_0>='\u0BAE' && LA1_0<='\u0BB5')||(LA1_0>='\u0BB7' && LA1_0<='\u0BB9')||(LA1_0>='\u0BBE' && LA1_0<='\u0BC2')||(LA1_0>='\u0BC6' && LA1_0<='\u0BC8')||(LA1_0>='\u0BCA' && LA1_0<='\u0BCD')||LA1_0=='\u0BD7'||(LA1_0>='\u0BE7' && LA1_0<='\u0BEF')||LA1_0=='\u0BF9'||(LA1_0>='\u0C01' && LA1_0<='\u0C03')||(LA1_0>='\u0C05' && LA1_0<='\u0C0C')||(LA1_0>='\u0C0E' && LA1_0<='\u0C10')||(LA1_0>='\u0C12' && LA1_0<='\u0C28')||(LA1_0>='\u0C2A' && LA1_0<='\u0C33')||(LA1_0>='\u0C35' && LA1_0<='\u0C39')||(LA1_0>='\u0C3E' && LA1_0<='\u0C44')||(LA1_0>='\u0C46' && LA1_0<='\u0C48')||(LA1_0>='\u0C4A' && LA1_0<='\u0C4D')||(LA1_0>='\u0C55' && LA1_0<='\u0C56')||(LA1_0>='\u0C60' && LA1_0<='\u0C61')||(LA1_0>='\u0C66' && LA1_0<='\u0C6F')||(LA1_0>='\u0C82' && LA1_0<='\u0C83')||(LA1_0>='\u0C85' && LA1_0<='\u0C8C')||(LA1_0>='\u0C8E' && LA1_0<='\u0C90')||(LA1_0>='\u0C92' && LA1_0<='\u0CA8')||(LA1_0>='\u0CAA' && LA1_0<='\u0CB3')||(LA1_0>='\u0CB5' && LA1_0<='\u0CB9')||(LA1_0>='\u0CBC' && LA1_0<='\u0CC4')||(LA1_0>='\u0CC6' && LA1_0<='\u0CC8')||(LA1_0>='\u0CCA' && LA1_0<='\u0CCD')||(LA1_0>='\u0CD5' && LA1_0<='\u0CD6')||LA1_0=='\u0CDE'||(LA1_0>='\u0CE0' && LA1_0<='\u0CE1')||(LA1_0>='\u0CE6' && LA1_0<='\u0CEF')||(LA1_0>='\u0D02' && LA1_0<='\u0D03')||(LA1_0>='\u0D05' && LA1_0<='\u0D0C')||(LA1_0>='\u0D0E' && LA1_0<='\u0D10')||(LA1_0>='\u0D12' && LA1_0<='\u0D28')||(LA1_0>='\u0D2A' && LA1_0<='\u0D39')||(LA1_0>='\u0D3E' && LA1_0<='\u0D43')||(LA1_0>='\u0D46' && LA1_0<='\u0D48')||(LA1_0>='\u0D4A' && LA1_0<='\u0D4D')||LA1_0=='\u0D57'||(LA1_0>='\u0D60' && LA1_0<='\u0D61')||(LA1_0>='\u0D66' && LA1_0<='\u0D6F')||(LA1_0>='\u0D82' && LA1_0<='\u0D83')||(LA1_0>='\u0D85' && LA1_0<='\u0D96')||(LA1_0>='\u0D9A' && LA1_0<='\u0DB1')||(LA1_0>='\u0DB3' && LA1_0<='\u0DBB')||LA1_0=='\u0DBD'||(LA1_0>='\u0DC0' && LA1_0<='\u0DC6')||LA1_0=='\u0DCA'||(LA1_0>='\u0DCF' && LA1_0<='\u0DD4')||LA1_0=='\u0DD6'||(LA1_0>='\u0DD8' && LA1_0<='\u0DDF')||(LA1_0>='\u0DF2' && LA1_0<='\u0DF3')||(LA1_0>='\u0E01' && LA1_0<='\u0E3A')||(LA1_0>='\u0E3F' && LA1_0<='\u0E4E')||(LA1_0>='\u0E50' && LA1_0<='\u0E59')||(LA1_0>='\u0E81' && LA1_0<='\u0E82')||LA1_0=='\u0E84'||(LA1_0>='\u0E87' && LA1_0<='\u0E88')||LA1_0=='\u0E8A'||LA1_0=='\u0E8D'||(LA1_0>='\u0E94' && LA1_0<='\u0E97')||(LA1_0>='\u0E99' && LA1_0<='\u0E9F')||(LA1_0>='\u0EA1' && LA1_0<='\u0EA3')||LA1_0=='\u0EA5'||LA1_0=='\u0EA7'||(LA1_0>='\u0EAA' && LA1_0<='\u0EAB')||(LA1_0>='\u0EAD' && LA1_0<='\u0EB9')||(LA1_0>='\u0EBB' && LA1_0<='\u0EBD')||(LA1_0>='\u0EC0' && LA1_0<='\u0EC4')||LA1_0=='\u0EC6'||(LA1_0>='\u0EC8' && LA1_0<='\u0ECD')||(LA1_0>='\u0ED0' && LA1_0<='\u0ED9')||(LA1_0>='\u0EDC' && LA1_0<='\u0EDD')||LA1_0=='\u0F00'||(LA1_0>='\u0F18' && LA1_0<='\u0F19')||(LA1_0>='\u0F20' && LA1_0<='\u0F29')||LA1_0=='\u0F35'||LA1_0=='\u0F37'||LA1_0=='\u0F39'||(LA1_0>='\u0F3E' && LA1_0<='\u0F47')||(LA1_0>='\u0F49' && LA1_0<='\u0F6A')||(LA1_0>='\u0F71' && LA1_0<='\u0F84')||(LA1_0>='\u0F86' && LA1_0<='\u0F8B')||(LA1_0>='\u0F90' && LA1_0<='\u0F97')||(LA1_0>='\u0F99' && LA1_0<='\u0FBC')||LA1_0=='\u0FC6'||(LA1_0>='\u1000' && LA1_0<='\u1021')||(LA1_0>='\u1023' && LA1_0<='\u1027')||(LA1_0>='\u1029' && LA1_0<='\u102A')||(LA1_0>='\u102C' && LA1_0<='\u1032')||(LA1_0>='\u1036' && LA1_0<='\u1039')||(LA1_0>='\u1040' && LA1_0<='\u1049')||(LA1_0>='\u1050' && LA1_0<='\u1059')||(LA1_0>='\u10A0' && LA1_0<='\u10C5')||(LA1_0>='\u10D0' && LA1_0<='\u10F8')||(LA1_0>='\u1100' && LA1_0<='\u1159')||(LA1_0>='\u115F' && LA1_0<='\u11A2')||(LA1_0>='\u11A8' && LA1_0<='\u11F9')||(LA1_0>='\u1200' && LA1_0<='\u1206')||(LA1_0>='\u1208' && LA1_0<='\u1246')||LA1_0=='\u1248'||(LA1_0>='\u124A' && LA1_0<='\u124D')||(LA1_0>='\u1250' && LA1_0<='\u1256')||LA1_0=='\u1258'||(LA1_0>='\u125A' && LA1_0<='\u125D')||(LA1_0>='\u1260' && LA1_0<='\u1286')||LA1_0=='\u1288'||(LA1_0>='\u128A' && LA1_0<='\u128D')||(LA1_0>='\u1290' && LA1_0<='\u12AE')||LA1_0=='\u12B0'||(LA1_0>='\u12B2' && LA1_0<='\u12B5')||(LA1_0>='\u12B8' && LA1_0<='\u12BE')||LA1_0=='\u12C0'||(LA1_0>='\u12C2' && LA1_0<='\u12C5')||(LA1_0>='\u12C8' && LA1_0<='\u12CE')||(LA1_0>='\u12D0' && LA1_0<='\u12D6')||(LA1_0>='\u12D8' && LA1_0<='\u12EE')||(LA1_0>='\u12F0' && LA1_0<='\u130E')||LA1_0=='\u1310'||(LA1_0>='\u1312' && LA1_0<='\u1315')||(LA1_0>='\u1318' && LA1_0<='\u131E')||(LA1_0>='\u1320' && LA1_0<='\u1346')||(LA1_0>='\u1348' && LA1_0<='\u135A')||(LA1_0>='\u1369' && LA1_0<='\u1371')||(LA1_0>='\u13A0' && LA1_0<='\u13F4')||(LA1_0>='\u1401' && LA1_0<='\u166C')||(LA1_0>='\u166F' && LA1_0<='\u1676')||(LA1_0>='\u1681' && LA1_0<='\u169A')||(LA1_0>='\u16A0' && LA1_0<='\u16EA')||(LA1_0>='\u16EE' && LA1_0<='\u16F0')||(LA1_0>='\u1700' && LA1_0<='\u170C')||(LA1_0>='\u170E' && LA1_0<='\u1714')||(LA1_0>='\u1720' && LA1_0<='\u1734')||(LA1_0>='\u1740' && LA1_0<='\u1753')||(LA1_0>='\u1760' && LA1_0<='\u176C')||(LA1_0>='\u176E' && LA1_0<='\u1770')||(LA1_0>='\u1772' && LA1_0<='\u1773')||(LA1_0>='\u1780' && LA1_0<='\u17D3')||LA1_0=='\u17D7'||(LA1_0>='\u17DB' && LA1_0<='\u17DD')||(LA1_0>='\u17E0' && LA1_0<='\u17E9')||(LA1_0>='\u180B' && LA1_0<='\u180D')||(LA1_0>='\u1810' && LA1_0<='\u1819')||(LA1_0>='\u1820' && LA1_0<='\u1877')||(LA1_0>='\u1880' && LA1_0<='\u18A9')||(LA1_0>='\u1900' && LA1_0<='\u191C')||(LA1_0>='\u1920' && LA1_0<='\u192B')||(LA1_0>='\u1930' && LA1_0<='\u193B')||(LA1_0>='\u1946' && LA1_0<='\u196D')||(LA1_0>='\u1970' && LA1_0<='\u1974')||(LA1_0>='\u1D00' && LA1_0<='\u1D6B')||(LA1_0>='\u1E00' && LA1_0<='\u1E9B')||(LA1_0>='\u1EA0' && LA1_0<='\u1EF9')||(LA1_0>='\u1F00' && LA1_0<='\u1F15')||(LA1_0>='\u1F18' && LA1_0<='\u1F1D')||(LA1_0>='\u1F20' && LA1_0<='\u1F45')||(LA1_0>='\u1F48' && LA1_0<='\u1F4D')||(LA1_0>='\u1F50' && LA1_0<='\u1F57')||LA1_0=='\u1F59'||LA1_0=='\u1F5B'||LA1_0=='\u1F5D'||(LA1_0>='\u1F5F' && LA1_0<='\u1F7D')||(LA1_0>='\u1F80' && LA1_0<='\u1FB4')||(LA1_0>='\u1FB6' && LA1_0<='\u1FBC')||LA1_0=='\u1FBE'||(LA1_0>='\u1FC2' && LA1_0<='\u1FC4')||(LA1_0>='\u1FC6' && LA1_0<='\u1FCC')||(LA1_0>='\u1FD0' && LA1_0<='\u1FD3')||(LA1_0>='\u1FD6' && LA1_0<='\u1FDB')||(LA1_0>='\u1FE0' && LA1_0<='\u1FEC')||(LA1_0>='\u1FF2' && LA1_0<='\u1FF4')||(LA1_0>='\u1FF6' && LA1_0<='\u1FFC')||(LA1_0>='\u200C' && LA1_0<='\u200F')||(LA1_0>='\u202A' && LA1_0<='\u202E')||(LA1_0>='\u203F' && LA1_0<='\u2040')||LA1_0=='\u2054'||(LA1_0>='\u2060' && LA1_0<='\u2063')||(LA1_0>='\u206A' && LA1_0<='\u206F')||LA1_0=='\u2071'||LA1_0=='\u207F'||(LA1_0>='\u20A0' && LA1_0<='\u20B1')||(LA1_0>='\u20D0' && LA1_0<='\u20DC')||LA1_0=='\u20E1'||(LA1_0>='\u20E5' && LA1_0<='\u20EA')||LA1_0=='\u2102'||LA1_0=='\u2107'||(LA1_0>='\u210A' && LA1_0<='\u2113')||LA1_0=='\u2115'||(LA1_0>='\u2119' && LA1_0<='\u211D')||LA1_0=='\u2124'||LA1_0=='\u2126'||LA1_0=='\u2128'||(LA1_0>='\u212A' && LA1_0<='\u212D')||(LA1_0>='\u212F' && LA1_0<='\u2131')||(LA1_0>='\u2133' && LA1_0<='\u2139')||(LA1_0>='\u213D' && LA1_0<='\u213F')||(LA1_0>='\u2145' && LA1_0<='\u2149')||(LA1_0>='\u2160' && LA1_0<='\u2183')||(LA1_0>='\u3001' && LA1_0<='\u3002')||(LA1_0>='\u3005' && LA1_0<='\u3007')||(LA1_0>='\u3021' && LA1_0<='\u302F')||(LA1_0>='\u3031' && LA1_0<='\u3035')||(LA1_0>='\u3038' && LA1_0<='\u303C')||(LA1_0>='\u3041' && LA1_0<='\u3096')||(LA1_0>='\u3099' && LA1_0<='\u309A')||(LA1_0>='\u309D' && LA1_0<='\u309F')||(LA1_0>='\u30A1' && LA1_0<='\u30FF')||(LA1_0>='\u3105' && LA1_0<='\u312C')||(LA1_0>='\u3131' && LA1_0<='\u318E')||(LA1_0>='\u31A0' && LA1_0<='\u31B7')||(LA1_0>='\u31F0' && LA1_0<='\u31FF')||(LA1_0>='\u3400' && LA1_0<='\u4DB5')||(LA1_0>='\u4E00' && LA1_0<='\u9FA5')||(LA1_0>='\uA000' && LA1_0<='\uA48C')||(LA1_0>='\uAC00' && LA1_0<='\uD7A3')||(LA1_0>='\uF900' && LA1_0<='\uFA2D')||(LA1_0>='\uFA30' && LA1_0<='\uFA6A')||(LA1_0>='\uFB00' && LA1_0<='\uFB06')||(LA1_0>='\uFB13' && LA1_0<='\uFB17')||(LA1_0>='\uFB1D' && LA1_0<='\uFB28')||(LA1_0>='\uFB2A' && LA1_0<='\uFB36')||(LA1_0>='\uFB38' && LA1_0<='\uFB3C')||LA1_0=='\uFB3E'||(LA1_0>='\uFB40' && LA1_0<='\uFB41')||(LA1_0>='\uFB43' && LA1_0<='\uFB44')||(LA1_0>='\uFB46' && LA1_0<='\uFBB1')||(LA1_0>='\uFBD3' && LA1_0<='\uFD3D')||(LA1_0>='\uFD50' && LA1_0<='\uFD8F')||(LA1_0>='\uFD92' && LA1_0<='\uFDC7')||(LA1_0>='\uFDF0' && LA1_0<='\uFDFC')||(LA1_0>='\uFE00' && LA1_0<='\uFE0F')||(LA1_0>='\uFE20' && LA1_0<='\uFE23')||(LA1_0>='\uFE33' && LA1_0<='\uFE34')||(LA1_0>='\uFE4D' && LA1_0<='\uFE4F')||LA1_0=='\uFE69'||(LA1_0>='\uFE70' && LA1_0<='\uFE74')||(LA1_0>='\uFE76' && LA1_0<='\uFEFC')||LA1_0=='\uFEFF'||LA1_0=='\uFF04'||(LA1_0>='\uFF08' && LA1_0<='\uFF09')||(LA1_0>='\uFF10' && LA1_0<='\uFF1A')||(LA1_0>='\uFF21' && LA1_0<='\uFF3A')||LA1_0=='\uFF3F'||(LA1_0>='\uFF41' && LA1_0<='\uFF5A')||(LA1_0>='\uFF65' && LA1_0<='\uFFBE')||(LA1_0>='\uFFC2' && LA1_0<='\uFFC7')||(LA1_0>='\uFFCA' && LA1_0<='\uFFCF')||(LA1_0>='\uFFD2' && LA1_0<='\uFFD7')||(LA1_0>='\uFFDA' && LA1_0<='\uFFDC')||(LA1_0>='\uFFE0' && LA1_0<='\uFFE1')||(LA1_0>='\uFFE5' && LA1_0<='\uFFE6')||(LA1_0>='\uFFF9' && LA1_0<='\uFFFB')) ) {
+ alt1=1;
+ }
+ else if ( (LA1_0=='\\') ) {
+ alt1=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 1, 0, input);
+
+ throw nvae;
+ }
+ switch (alt1) {
+ case 1 :
+ // InternalRBAModel.g:26636:12: RULE_IDENTIFIER_START
+ {
+ mRULE_IDENTIFIER_START();
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:26636:34: RULE_UNICODE_ESCAPE
+ {
+ mRULE_UNICODE_ESCAPE();
+
+ }
+ break;
+
+ }
+
+ // InternalRBAModel.g:26636:55: ( RULE_IDENTIFIER_PART | RULE_UNICODE_ESCAPE )*
+ loop2:
+ do {
+ int alt2=3;
+ int LA2_0 = input.LA(1);
+
+ if ( ((LA2_0>='\u0000' && LA2_0<='\b')||(LA2_0>='\u000E' && LA2_0<='\u001B')||LA2_0=='$'||(LA2_0>='0' && LA2_0<='9')||(LA2_0>='A' && LA2_0<='Z')||LA2_0=='_'||(LA2_0>='a' && LA2_0<='z')||(LA2_0>='\u007F' && LA2_0<='\u009F')||(LA2_0>='\u00A2' && LA2_0<='\u00A5')||LA2_0=='\u00AA'||LA2_0=='\u00AD'||LA2_0=='\u00B5'||LA2_0=='\u00BA'||(LA2_0>='\u00C0' && LA2_0<='\u00D6')||(LA2_0>='\u00D8' && LA2_0<='\u00F6')||(LA2_0>='\u00F8' && LA2_0<='\u0236')||(LA2_0>='\u0250' && LA2_0<='\u02C1')||(LA2_0>='\u02C6' && LA2_0<='\u02D1')||(LA2_0>='\u02E0' && LA2_0<='\u02E4')||LA2_0=='\u02EE'||(LA2_0>='\u0300' && LA2_0<='\u0357')||(LA2_0>='\u035D' && LA2_0<='\u036F')||LA2_0=='\u037A'||LA2_0=='\u0386'||(LA2_0>='\u0388' && LA2_0<='\u038A')||LA2_0=='\u038C'||(LA2_0>='\u038E' && LA2_0<='\u03A1')||(LA2_0>='\u03A3' && LA2_0<='\u03CE')||(LA2_0>='\u03D0' && LA2_0<='\u03F5')||(LA2_0>='\u03F7' && LA2_0<='\u03FB')||(LA2_0>='\u0400' && LA2_0<='\u0481')||(LA2_0>='\u0483' && LA2_0<='\u0486')||(LA2_0>='\u048A' && LA2_0<='\u04CE')||(LA2_0>='\u04D0' && LA2_0<='\u04F5')||(LA2_0>='\u04F8' && LA2_0<='\u04F9')||(LA2_0>='\u0500' && LA2_0<='\u050F')||(LA2_0>='\u0531' && LA2_0<='\u0556')||LA2_0=='\u0559'||(LA2_0>='\u0561' && LA2_0<='\u0587')||(LA2_0>='\u0591' && LA2_0<='\u05A1')||(LA2_0>='\u05A3' && LA2_0<='\u05B9')||(LA2_0>='\u05BB' && LA2_0<='\u05BD')||LA2_0=='\u05BF'||(LA2_0>='\u05C1' && LA2_0<='\u05C2')||LA2_0=='\u05C4'||(LA2_0>='\u05D0' && LA2_0<='\u05EA')||(LA2_0>='\u05F0' && LA2_0<='\u05F2')||(LA2_0>='\u0600' && LA2_0<='\u0603')||(LA2_0>='\u0610' && LA2_0<='\u0615')||(LA2_0>='\u0621' && LA2_0<='\u063A')||(LA2_0>='\u0640' && LA2_0<='\u0658')||(LA2_0>='\u0660' && LA2_0<='\u0669')||(LA2_0>='\u066E' && LA2_0<='\u06D3')||(LA2_0>='\u06D5' && LA2_0<='\u06DD')||(LA2_0>='\u06DF' && LA2_0<='\u06E8')||(LA2_0>='\u06EA' && LA2_0<='\u06FC')||LA2_0=='\u06FF'||(LA2_0>='\u070F' && LA2_0<='\u074A')||(LA2_0>='\u074D' && LA2_0<='\u074F')||(LA2_0>='\u0780' && LA2_0<='\u07B1')||(LA2_0>='\u0901' && LA2_0<='\u0939')||(LA2_0>='\u093C' && LA2_0<='\u094D')||(LA2_0>='\u0950' && LA2_0<='\u0954')||(LA2_0>='\u0958' && LA2_0<='\u0963')||(LA2_0>='\u0966' && LA2_0<='\u096F')||(LA2_0>='\u0981' && LA2_0<='\u0983')||(LA2_0>='\u0985' && LA2_0<='\u098C')||(LA2_0>='\u098F' && LA2_0<='\u0990')||(LA2_0>='\u0993' && LA2_0<='\u09A8')||(LA2_0>='\u09AA' && LA2_0<='\u09B0')||LA2_0=='\u09B2'||(LA2_0>='\u09B6' && LA2_0<='\u09B9')||(LA2_0>='\u09BC' && LA2_0<='\u09C4')||(LA2_0>='\u09C7' && LA2_0<='\u09C8')||(LA2_0>='\u09CB' && LA2_0<='\u09CD')||LA2_0=='\u09D7'||(LA2_0>='\u09DC' && LA2_0<='\u09DD')||(LA2_0>='\u09DF' && LA2_0<='\u09E3')||(LA2_0>='\u09E6' && LA2_0<='\u09F3')||(LA2_0>='\u0A01' && LA2_0<='\u0A03')||(LA2_0>='\u0A05' && LA2_0<='\u0A0A')||(LA2_0>='\u0A0F' && LA2_0<='\u0A10')||(LA2_0>='\u0A13' && LA2_0<='\u0A28')||(LA2_0>='\u0A2A' && LA2_0<='\u0A30')||(LA2_0>='\u0A32' && LA2_0<='\u0A33')||(LA2_0>='\u0A35' && LA2_0<='\u0A36')||(LA2_0>='\u0A38' && LA2_0<='\u0A39')||LA2_0=='\u0A3C'||(LA2_0>='\u0A3E' && LA2_0<='\u0A42')||(LA2_0>='\u0A47' && LA2_0<='\u0A48')||(LA2_0>='\u0A4B' && LA2_0<='\u0A4D')||(LA2_0>='\u0A59' && LA2_0<='\u0A5C')||LA2_0=='\u0A5E'||(LA2_0>='\u0A66' && LA2_0<='\u0A74')||(LA2_0>='\u0A81' && LA2_0<='\u0A83')||(LA2_0>='\u0A85' && LA2_0<='\u0A8D')||(LA2_0>='\u0A8F' && LA2_0<='\u0A91')||(LA2_0>='\u0A93' && LA2_0<='\u0AA8')||(LA2_0>='\u0AAA' && LA2_0<='\u0AB0')||(LA2_0>='\u0AB2' && LA2_0<='\u0AB3')||(LA2_0>='\u0AB5' && LA2_0<='\u0AB9')||(LA2_0>='\u0ABC' && LA2_0<='\u0AC5')||(LA2_0>='\u0AC7' && LA2_0<='\u0AC9')||(LA2_0>='\u0ACB' && LA2_0<='\u0ACD')||LA2_0=='\u0AD0'||(LA2_0>='\u0AE0' && LA2_0<='\u0AE3')||(LA2_0>='\u0AE6' && LA2_0<='\u0AEF')||LA2_0=='\u0AF1'||(LA2_0>='\u0B01' && LA2_0<='\u0B03')||(LA2_0>='\u0B05' && LA2_0<='\u0B0C')||(LA2_0>='\u0B0F' && LA2_0<='\u0B10')||(LA2_0>='\u0B13' && LA2_0<='\u0B28')||(LA2_0>='\u0B2A' && LA2_0<='\u0B30')||(LA2_0>='\u0B32' && LA2_0<='\u0B33')||(LA2_0>='\u0B35' && LA2_0<='\u0B39')||(LA2_0>='\u0B3C' && LA2_0<='\u0B43')||(LA2_0>='\u0B47' && LA2_0<='\u0B48')||(LA2_0>='\u0B4B' && LA2_0<='\u0B4D')||(LA2_0>='\u0B56' && LA2_0<='\u0B57')||(LA2_0>='\u0B5C' && LA2_0<='\u0B5D')||(LA2_0>='\u0B5F' && LA2_0<='\u0B61')||(LA2_0>='\u0B66' && LA2_0<='\u0B6F')||LA2_0=='\u0B71'||(LA2_0>='\u0B82' && LA2_0<='\u0B83')||(LA2_0>='\u0B85' && LA2_0<='\u0B8A')||(LA2_0>='\u0B8E' && LA2_0<='\u0B90')||(LA2_0>='\u0B92' && LA2_0<='\u0B95')||(LA2_0>='\u0B99' && LA2_0<='\u0B9A')||LA2_0=='\u0B9C'||(LA2_0>='\u0B9E' && LA2_0<='\u0B9F')||(LA2_0>='\u0BA3' && LA2_0<='\u0BA4')||(LA2_0>='\u0BA8' && LA2_0<='\u0BAA')||(LA2_0>='\u0BAE' && LA2_0<='\u0BB5')||(LA2_0>='\u0BB7' && LA2_0<='\u0BB9')||(LA2_0>='\u0BBE' && LA2_0<='\u0BC2')||(LA2_0>='\u0BC6' && LA2_0<='\u0BC8')||(LA2_0>='\u0BCA' && LA2_0<='\u0BCD')||LA2_0=='\u0BD7'||(LA2_0>='\u0BE7' && LA2_0<='\u0BEF')||LA2_0=='\u0BF9'||(LA2_0>='\u0C01' && LA2_0<='\u0C03')||(LA2_0>='\u0C05' && LA2_0<='\u0C0C')||(LA2_0>='\u0C0E' && LA2_0<='\u0C10')||(LA2_0>='\u0C12' && LA2_0<='\u0C28')||(LA2_0>='\u0C2A' && LA2_0<='\u0C33')||(LA2_0>='\u0C35' && LA2_0<='\u0C39')||(LA2_0>='\u0C3E' && LA2_0<='\u0C44')||(LA2_0>='\u0C46' && LA2_0<='\u0C48')||(LA2_0>='\u0C4A' && LA2_0<='\u0C4D')||(LA2_0>='\u0C55' && LA2_0<='\u0C56')||(LA2_0>='\u0C60' && LA2_0<='\u0C61')||(LA2_0>='\u0C66' && LA2_0<='\u0C6F')||(LA2_0>='\u0C82' && LA2_0<='\u0C83')||(LA2_0>='\u0C85' && LA2_0<='\u0C8C')||(LA2_0>='\u0C8E' && LA2_0<='\u0C90')||(LA2_0>='\u0C92' && LA2_0<='\u0CA8')||(LA2_0>='\u0CAA' && LA2_0<='\u0CB3')||(LA2_0>='\u0CB5' && LA2_0<='\u0CB9')||(LA2_0>='\u0CBC' && LA2_0<='\u0CC4')||(LA2_0>='\u0CC6' && LA2_0<='\u0CC8')||(LA2_0>='\u0CCA' && LA2_0<='\u0CCD')||(LA2_0>='\u0CD5' && LA2_0<='\u0CD6')||LA2_0=='\u0CDE'||(LA2_0>='\u0CE0' && LA2_0<='\u0CE1')||(LA2_0>='\u0CE6' && LA2_0<='\u0CEF')||(LA2_0>='\u0D02' && LA2_0<='\u0D03')||(LA2_0>='\u0D05' && LA2_0<='\u0D0C')||(LA2_0>='\u0D0E' && LA2_0<='\u0D10')||(LA2_0>='\u0D12' && LA2_0<='\u0D28')||(LA2_0>='\u0D2A' && LA2_0<='\u0D39')||(LA2_0>='\u0D3E' && LA2_0<='\u0D43')||(LA2_0>='\u0D46' && LA2_0<='\u0D48')||(LA2_0>='\u0D4A' && LA2_0<='\u0D4D')||LA2_0=='\u0D57'||(LA2_0>='\u0D60' && LA2_0<='\u0D61')||(LA2_0>='\u0D66' && LA2_0<='\u0D6F')||(LA2_0>='\u0D82' && LA2_0<='\u0D83')||(LA2_0>='\u0D85' && LA2_0<='\u0D96')||(LA2_0>='\u0D9A' && LA2_0<='\u0DB1')||(LA2_0>='\u0DB3' && LA2_0<='\u0DBB')||LA2_0=='\u0DBD'||(LA2_0>='\u0DC0' && LA2_0<='\u0DC6')||LA2_0=='\u0DCA'||(LA2_0>='\u0DCF' && LA2_0<='\u0DD4')||LA2_0=='\u0DD6'||(LA2_0>='\u0DD8' && LA2_0<='\u0DDF')||(LA2_0>='\u0DF2' && LA2_0<='\u0DF3')||(LA2_0>='\u0E01' && LA2_0<='\u0E3A')||(LA2_0>='\u0E3F' && LA2_0<='\u0E4E')||(LA2_0>='\u0E50' && LA2_0<='\u0E59')||(LA2_0>='\u0E81' && LA2_0<='\u0E82')||LA2_0=='\u0E84'||(LA2_0>='\u0E87' && LA2_0<='\u0E88')||LA2_0=='\u0E8A'||LA2_0=='\u0E8D'||(LA2_0>='\u0E94' && LA2_0<='\u0E97')||(LA2_0>='\u0E99' && LA2_0<='\u0E9F')||(LA2_0>='\u0EA1' && LA2_0<='\u0EA3')||LA2_0=='\u0EA5'||LA2_0=='\u0EA7'||(LA2_0>='\u0EAA' && LA2_0<='\u0EAB')||(LA2_0>='\u0EAD' && LA2_0<='\u0EB9')||(LA2_0>='\u0EBB' && LA2_0<='\u0EBD')||(LA2_0>='\u0EC0' && LA2_0<='\u0EC4')||LA2_0=='\u0EC6'||(LA2_0>='\u0EC8' && LA2_0<='\u0ECD')||(LA2_0>='\u0ED0' && LA2_0<='\u0ED9')||(LA2_0>='\u0EDC' && LA2_0<='\u0EDD')||LA2_0=='\u0F00'||(LA2_0>='\u0F18' && LA2_0<='\u0F19')||(LA2_0>='\u0F20' && LA2_0<='\u0F29')||LA2_0=='\u0F35'||LA2_0=='\u0F37'||LA2_0=='\u0F39'||(LA2_0>='\u0F3E' && LA2_0<='\u0F47')||(LA2_0>='\u0F49' && LA2_0<='\u0F6A')||(LA2_0>='\u0F71' && LA2_0<='\u0F84')||(LA2_0>='\u0F86' && LA2_0<='\u0F8B')||(LA2_0>='\u0F90' && LA2_0<='\u0F97')||(LA2_0>='\u0F99' && LA2_0<='\u0FBC')||LA2_0=='\u0FC6'||(LA2_0>='\u1000' && LA2_0<='\u1021')||(LA2_0>='\u1023' && LA2_0<='\u1027')||(LA2_0>='\u1029' && LA2_0<='\u102A')||(LA2_0>='\u102C' && LA2_0<='\u1032')||(LA2_0>='\u1036' && LA2_0<='\u1039')||(LA2_0>='\u1040' && LA2_0<='\u1049')||(LA2_0>='\u1050' && LA2_0<='\u1059')||(LA2_0>='\u10A0' && LA2_0<='\u10C5')||(LA2_0>='\u10D0' && LA2_0<='\u10F8')||(LA2_0>='\u1100' && LA2_0<='\u1159')||(LA2_0>='\u115F' && LA2_0<='\u11A2')||(LA2_0>='\u11A8' && LA2_0<='\u11F9')||(LA2_0>='\u1200' && LA2_0<='\u1206')||(LA2_0>='\u1208' && LA2_0<='\u1246')||LA2_0=='\u1248'||(LA2_0>='\u124A' && LA2_0<='\u124D')||(LA2_0>='\u1250' && LA2_0<='\u1256')||LA2_0=='\u1258'||(LA2_0>='\u125A' && LA2_0<='\u125D')||(LA2_0>='\u1260' && LA2_0<='\u1286')||LA2_0=='\u1288'||(LA2_0>='\u128A' && LA2_0<='\u128D')||(LA2_0>='\u1290' && LA2_0<='\u12AE')||LA2_0=='\u12B0'||(LA2_0>='\u12B2' && LA2_0<='\u12B5')||(LA2_0>='\u12B8' && LA2_0<='\u12BE')||LA2_0=='\u12C0'||(LA2_0>='\u12C2' && LA2_0<='\u12C5')||(LA2_0>='\u12C8' && LA2_0<='\u12CE')||(LA2_0>='\u12D0' && LA2_0<='\u12D6')||(LA2_0>='\u12D8' && LA2_0<='\u12EE')||(LA2_0>='\u12F0' && LA2_0<='\u130E')||LA2_0=='\u1310'||(LA2_0>='\u1312' && LA2_0<='\u1315')||(LA2_0>='\u1318' && LA2_0<='\u131E')||(LA2_0>='\u1320' && LA2_0<='\u1346')||(LA2_0>='\u1348' && LA2_0<='\u135A')||(LA2_0>='\u1369' && LA2_0<='\u1371')||(LA2_0>='\u13A0' && LA2_0<='\u13F4')||(LA2_0>='\u1401' && LA2_0<='\u166C')||(LA2_0>='\u166F' && LA2_0<='\u1676')||(LA2_0>='\u1681' && LA2_0<='\u169A')||(LA2_0>='\u16A0' && LA2_0<='\u16EA')||(LA2_0>='\u16EE' && LA2_0<='\u16F0')||(LA2_0>='\u1700' && LA2_0<='\u170C')||(LA2_0>='\u170E' && LA2_0<='\u1714')||(LA2_0>='\u1720' && LA2_0<='\u1734')||(LA2_0>='\u1740' && LA2_0<='\u1753')||(LA2_0>='\u1760' && LA2_0<='\u176C')||(LA2_0>='\u176E' && LA2_0<='\u1770')||(LA2_0>='\u1772' && LA2_0<='\u1773')||(LA2_0>='\u1780' && LA2_0<='\u17D3')||LA2_0=='\u17D7'||(LA2_0>='\u17DB' && LA2_0<='\u17DD')||(LA2_0>='\u17E0' && LA2_0<='\u17E9')||(LA2_0>='\u180B' && LA2_0<='\u180D')||(LA2_0>='\u1810' && LA2_0<='\u1819')||(LA2_0>='\u1820' && LA2_0<='\u1877')||(LA2_0>='\u1880' && LA2_0<='\u18A9')||(LA2_0>='\u1900' && LA2_0<='\u191C')||(LA2_0>='\u1920' && LA2_0<='\u192B')||(LA2_0>='\u1930' && LA2_0<='\u193B')||(LA2_0>='\u1946' && LA2_0<='\u196D')||(LA2_0>='\u1970' && LA2_0<='\u1974')||(LA2_0>='\u1D00' && LA2_0<='\u1D6B')||(LA2_0>='\u1E00' && LA2_0<='\u1E9B')||(LA2_0>='\u1EA0' && LA2_0<='\u1EF9')||(LA2_0>='\u1F00' && LA2_0<='\u1F15')||(LA2_0>='\u1F18' && LA2_0<='\u1F1D')||(LA2_0>='\u1F20' && LA2_0<='\u1F45')||(LA2_0>='\u1F48' && LA2_0<='\u1F4D')||(LA2_0>='\u1F50' && LA2_0<='\u1F57')||LA2_0=='\u1F59'||LA2_0=='\u1F5B'||LA2_0=='\u1F5D'||(LA2_0>='\u1F5F' && LA2_0<='\u1F7D')||(LA2_0>='\u1F80' && LA2_0<='\u1FB4')||(LA2_0>='\u1FB6' && LA2_0<='\u1FBC')||LA2_0=='\u1FBE'||(LA2_0>='\u1FC2' && LA2_0<='\u1FC4')||(LA2_0>='\u1FC6' && LA2_0<='\u1FCC')||(LA2_0>='\u1FD0' && LA2_0<='\u1FD3')||(LA2_0>='\u1FD6' && LA2_0<='\u1FDB')||(LA2_0>='\u1FE0' && LA2_0<='\u1FEC')||(LA2_0>='\u1FF2' && LA2_0<='\u1FF4')||(LA2_0>='\u1FF6' && LA2_0<='\u1FFC')||(LA2_0>='\u200C' && LA2_0<='\u200F')||(LA2_0>='\u202A' && LA2_0<='\u202E')||(LA2_0>='\u203F' && LA2_0<='\u2040')||LA2_0=='\u2054'||(LA2_0>='\u2060' && LA2_0<='\u2063')||(LA2_0>='\u206A' && LA2_0<='\u206F')||LA2_0=='\u2071'||LA2_0=='\u207F'||(LA2_0>='\u20A0' && LA2_0<='\u20B1')||(LA2_0>='\u20D0' && LA2_0<='\u20DC')||LA2_0=='\u20E1'||(LA2_0>='\u20E5' && LA2_0<='\u20EA')||LA2_0=='\u2102'||LA2_0=='\u2107'||(LA2_0>='\u210A' && LA2_0<='\u2113')||LA2_0=='\u2115'||(LA2_0>='\u2119' && LA2_0<='\u211D')||LA2_0=='\u2124'||LA2_0=='\u2126'||LA2_0=='\u2128'||(LA2_0>='\u212A' && LA2_0<='\u212D')||(LA2_0>='\u212F' && LA2_0<='\u2131')||(LA2_0>='\u2133' && LA2_0<='\u2139')||(LA2_0>='\u213D' && LA2_0<='\u213F')||(LA2_0>='\u2145' && LA2_0<='\u2149')||(LA2_0>='\u2160' && LA2_0<='\u2183')||(LA2_0>='\u3001' && LA2_0<='\u3002')||(LA2_0>='\u3005' && LA2_0<='\u3007')||(LA2_0>='\u3021' && LA2_0<='\u302F')||(LA2_0>='\u3031' && LA2_0<='\u3035')||(LA2_0>='\u3038' && LA2_0<='\u303C')||(LA2_0>='\u3041' && LA2_0<='\u3096')||(LA2_0>='\u3099' && LA2_0<='\u309A')||(LA2_0>='\u309D' && LA2_0<='\u309F')||(LA2_0>='\u30A1' && LA2_0<='\u30FF')||(LA2_0>='\u3105' && LA2_0<='\u312C')||(LA2_0>='\u3131' && LA2_0<='\u318E')||(LA2_0>='\u31A0' && LA2_0<='\u31B7')||(LA2_0>='\u31F0' && LA2_0<='\u31FF')||(LA2_0>='\u3400' && LA2_0<='\u4DB5')||(LA2_0>='\u4E00' && LA2_0<='\u9FA5')||(LA2_0>='\uA000' && LA2_0<='\uA48C')||(LA2_0>='\uAC00' && LA2_0<='\uD7A3')||(LA2_0>='\uF900' && LA2_0<='\uFA2D')||(LA2_0>='\uFA30' && LA2_0<='\uFA6A')||(LA2_0>='\uFB00' && LA2_0<='\uFB06')||(LA2_0>='\uFB13' && LA2_0<='\uFB17')||(LA2_0>='\uFB1D' && LA2_0<='\uFB28')||(LA2_0>='\uFB2A' && LA2_0<='\uFB36')||(LA2_0>='\uFB38' && LA2_0<='\uFB3C')||LA2_0=='\uFB3E'||(LA2_0>='\uFB40' && LA2_0<='\uFB41')||(LA2_0>='\uFB43' && LA2_0<='\uFB44')||(LA2_0>='\uFB46' && LA2_0<='\uFBB1')||(LA2_0>='\uFBD3' && LA2_0<='\uFD3D')||(LA2_0>='\uFD50' && LA2_0<='\uFD8F')||(LA2_0>='\uFD92' && LA2_0<='\uFDC7')||(LA2_0>='\uFDF0' && LA2_0<='\uFDFC')||(LA2_0>='\uFE00' && LA2_0<='\uFE0F')||(LA2_0>='\uFE20' && LA2_0<='\uFE23')||(LA2_0>='\uFE33' && LA2_0<='\uFE34')||(LA2_0>='\uFE4D' && LA2_0<='\uFE4F')||LA2_0=='\uFE69'||(LA2_0>='\uFE70' && LA2_0<='\uFE74')||(LA2_0>='\uFE76' && LA2_0<='\uFEFC')||LA2_0=='\uFEFF'||LA2_0=='\uFF04'||(LA2_0>='\uFF08' && LA2_0<='\uFF09')||(LA2_0>='\uFF10' && LA2_0<='\uFF1A')||(LA2_0>='\uFF21' && LA2_0<='\uFF3A')||LA2_0=='\uFF3F'||(LA2_0>='\uFF41' && LA2_0<='\uFF5A')||(LA2_0>='\uFF65' && LA2_0<='\uFFBE')||(LA2_0>='\uFFC2' && LA2_0<='\uFFC7')||(LA2_0>='\uFFCA' && LA2_0<='\uFFCF')||(LA2_0>='\uFFD2' && LA2_0<='\uFFD7')||(LA2_0>='\uFFDA' && LA2_0<='\uFFDC')||(LA2_0>='\uFFE0' && LA2_0<='\uFFE1')||(LA2_0>='\uFFE5' && LA2_0<='\uFFE6')||(LA2_0>='\uFFF9' && LA2_0<='\uFFFB')) ) {
+ alt2=1;
+ }
+ else if ( (LA2_0=='\\') ) {
+ alt2=2;
+ }
+
+
+ switch (alt2) {
+ case 1 :
+ // InternalRBAModel.g:26636:56: RULE_IDENTIFIER_PART
+ {
+ mRULE_IDENTIFIER_PART();
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:26636:77: RULE_UNICODE_ESCAPE
+ {
+ mRULE_UNICODE_ESCAPE();
+
+ }
+ break;
+
+ default :
+ break loop2;
+ }
+ } while (true);
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_ID"
+
+ // $ANTLR start "RULE_IDENTIFIER_START_IMPL"
+ public final void mRULE_IDENTIFIER_START_IMPL() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:26638:37: ( ( '$' | 'A' .. 'Z' | '\\uFF08' .. '\\uFF09' | '_' | 'a' .. 'z' | '\\u00A2' .. '\\u00A5' | '\\u00AA' | '\\u00B5' | '\\u00BA' | '\\u00C0' .. '\\u00D6' | '\\u00D8' .. '\\u00F6' | '\\u00F8' .. '\\u0236' | '\\u0250' .. '\\u02C1' | '\\u02C6' .. '\\u02D1' | '\\u02E0' .. '\\u02E4' | '\\u02EE' | '\\u037A' | '\\u0386' | '\\u0388' .. '\\u038A' | '\\u038C' | '\\u038E' .. '\\u03A1' | '\\u03A3' .. '\\u03CE' | '\\u03D0' .. '\\u03F5' | '\\u03F7' .. '\\u03FB' | '\\u0400' .. '\\u0481' | '\\u048A' .. '\\u04CE' | '\\u04D0' .. '\\u04F5' | '\\u04F8' .. '\\u04F9' | '\\u0500' .. '\\u050F' | '\\u0531' .. '\\u0556' | '\\u0559' | '\\u0561' .. '\\u0587' | '\\u05D0' .. '\\u05EA' | '\\u05F0' .. '\\u05F2' | '\\u0621' .. '\\u063A' | '\\u0640' .. '\\u064A' | '\\u066E' .. '\\u066F' | '\\u0671' .. '\\u06D3' | '\\u06D5' | '\\u06E5' .. '\\u06E6' | '\\u06EE' .. '\\u06EF' | '\\u06FA' .. '\\u06FC' | '\\u06FF' | '\\u0710' | '\\u0712' .. '\\u072F' | '\\u074D' .. '\\u074F' | '\\u0780' .. '\\u07A5' | '\\u07B1' | '\\u0904' .. '\\u0939' | '\\u093D' | '\\u0950' | '\\u0958' .. '\\u0961' | '\\u0985' .. '\\u098C' | '\\u098F' .. '\\u0990' | '\\u0993' .. '\\u09A8' | '\\u09AA' .. '\\u09B0' | '\\u09B2' | '\\u09B6' .. '\\u09B9' | '\\u09BD' | '\\u09DC' .. '\\u09DD' | '\\u09DF' .. '\\u09E1' | '\\u09F0' .. '\\u09F3' | '\\u0A05' .. '\\u0A0A' | '\\u0A0F' .. '\\u0A10' | '\\u0A13' .. '\\u0A28' | '\\u0A2A' .. '\\u0A30' | '\\u0A32' .. '\\u0A33' | '\\u0A35' .. '\\u0A36' | '\\u0A38' .. '\\u0A39' | '\\u0A59' .. '\\u0A5C' | '\\u0A5E' | '\\u0A72' .. '\\u0A74' | '\\u0A85' .. '\\u0A8D' | '\\u0A8F' .. '\\u0A91' | '\\u0A93' .. '\\u0AA8' | '\\u0AAA' .. '\\u0AB0' | '\\u0AB2' .. '\\u0AB3' | '\\u0AB5' .. '\\u0AB9' | '\\u0ABD' | '\\u0AD0' | '\\u0AE0' .. '\\u0AE1' | '\\u0AF1' | '\\u0B05' .. '\\u0B0C' | '\\u0B0F' .. '\\u0B10' | '\\u0B13' .. '\\u0B28' | '\\u0B2A' .. '\\u0B30' | '\\u0B32' .. '\\u0B33' | '\\u0B35' .. '\\u0B39' | '\\u0B3D' | '\\u0B5C' .. '\\u0B5D' | '\\u0B5F' .. '\\u0B61' | '\\u0B71' | '\\u0B83' | '\\u0B85' .. '\\u0B8A' | '\\u0B8E' .. '\\u0B90' | '\\u0B92' .. '\\u0B95' | '\\u0B99' .. '\\u0B9A' | '\\u0B9C' | '\\u0B9E' .. '\\u0B9F' | '\\u0BA3' .. '\\u0BA4' | '\\u0BA8' .. '\\u0BAA' | '\\u0BAE' .. '\\u0BB5' | '\\u0BB7' .. '\\u0BB9' | '\\u0BF9' | '\\u0C05' .. '\\u0C0C' | '\\u0C0E' .. '\\u0C10' | '\\u0C12' .. '\\u0C28' | '\\u0C2A' .. '\\u0C33' | '\\u0C35' .. '\\u0C39' | '\\u0C60' .. '\\u0C61' | '\\u0C85' .. '\\u0C8C' | '\\u0C8E' .. '\\u0C90' | '\\u0C92' .. '\\u0CA8' | '\\u0CAA' .. '\\u0CB3' | '\\u0CB5' .. '\\u0CB9' | '\\u0CBD' | '\\u0CDE' | '\\u0CE0' .. '\\u0CE1' | '\\u0D05' .. '\\u0D0C' | '\\u0D0E' .. '\\u0D10' | '\\u0D12' .. '\\u0D28' | '\\u0D2A' .. '\\u0D39' | '\\u0D60' .. '\\u0D61' | '\\u0D85' .. '\\u0D96' | '\\u0D9A' .. '\\u0DB1' | '\\u0DB3' .. '\\u0DBB' | '\\u0DBD' | '\\u0DC0' .. '\\u0DC6' | '\\u0E01' .. '\\u0E30' | '\\u0E32' .. '\\u0E33' | '\\u0E3F' .. '\\u0E46' | '\\u0E81' .. '\\u0E82' | '\\u0E84' | '\\u0E87' .. '\\u0E88' | '\\u0E8A' | '\\u0E8D' | '\\u0E94' .. '\\u0E97' | '\\u0E99' .. '\\u0E9F' | '\\u0EA1' .. '\\u0EA3' | '\\u0EA5' | '\\u0EA7' | '\\u0EAA' .. '\\u0EAB' | '\\u0EAD' .. '\\u0EB0' | '\\u0EB2' .. '\\u0EB3' | '\\u0EBD' | '\\u0EC0' .. '\\u0EC4' | '\\u0EC6' | '\\u0EDC' .. '\\u0EDD' | '\\u0F00' | '\\u0F40' .. '\\u0F47' | '\\u0F49' .. '\\u0F6A' | '\\u0F88' .. '\\u0F8B' | '\\u1000' .. '\\u1021' | '\\u1023' .. '\\u1027' | '\\u1029' .. '\\u102A' | '\\u1050' .. '\\u1055' | '\\u10A0' .. '\\u10C5' | '\\u10D0' .. '\\u10F8' | '\\u1100' .. '\\u1159' | '\\u115F' .. '\\u11A2' | '\\u11A8' .. '\\u11F9' | '\\u1200' .. '\\u1206' | '\\u1208' .. '\\u1246' | '\\u1248' | '\\u124A' .. '\\u124D' | '\\u1250' .. '\\u1256' | '\\u1258' | '\\u125A' .. '\\u125D' | '\\u1260' .. '\\u1286' | '\\u1288' | '\\u128A' .. '\\u128D' | '\\u1290' .. '\\u12AE' | '\\u12B0' | '\\u12B2' .. '\\u12B5' | '\\u12B8' .. '\\u12BE' | '\\u12C0' | '\\u12C2' .. '\\u12C5' | '\\u12C8' .. '\\u12CE' | '\\u12D0' .. '\\u12D6' | '\\u12D8' .. '\\u12EE' | '\\u12F0' .. '\\u130E' | '\\u1310' | '\\u1312' .. '\\u1315' | '\\u1318' .. '\\u131E' | '\\u1320' .. '\\u1346' | '\\u1348' .. '\\u135A' | '\\u13A0' .. '\\u13F4' | '\\u1401' .. '\\u166C' | '\\u166F' .. '\\u1676' | '\\u1681' .. '\\u169A' | '\\u16A0' .. '\\u16EA' | '\\u16EE' .. '\\u16F0' | '\\u1700' .. '\\u170C' | '\\u170E' .. '\\u1711' | '\\u1720' .. '\\u1731' | '\\u1740' .. '\\u1751' | '\\u1760' .. '\\u176C' | '\\u176E' .. '\\u1770' | '\\u1780' .. '\\u17B3' | '\\u17D7' | '\\u17DB' .. '\\u17DC' | '\\u1820' .. '\\u1877' | '\\u1880' .. '\\u18A8' | '\\u1900' .. '\\u191C' | '\\u1950' .. '\\u196D' | '\\u1970' .. '\\u1974' | '\\u1D00' .. '\\u1D6B' | '\\u1E00' .. '\\u1E9B' | '\\u1EA0' .. '\\u1EF9' | '\\u1F00' .. '\\u1F15' | '\\u1F18' .. '\\u1F1D' | '\\u1F20' .. '\\u1F45' | '\\u1F48' .. '\\u1F4D' | '\\u1F50' .. '\\u1F57' | '\\u1F59' | '\\u1F5B' | '\\u1F5D' | '\\u1F5F' .. '\\u1F7D' | '\\u1F80' .. '\\u1FB4' | '\\u1FB6' .. '\\u1FBC' | '\\u1FBE' | '\\u1FC2' .. '\\u1FC4' | '\\u1FC6' .. '\\u1FCC' | '\\u1FD0' .. '\\u1FD3' | '\\u1FD6' .. '\\u1FDB' | '\\u1FE0' .. '\\u1FEC' | '\\u1FF2' .. '\\u1FF4' | '\\u1FF6' .. '\\u1FFC' | '\\u203F' .. '\\u2040' | '\\u2054' | '\\u2071' | '\\u207F' | '\\u20A0' .. '\\u20B1' | '\\u2102' | '\\u2107' | '\\u210A' .. '\\u2113' | '\\u2115' | '\\u2119' .. '\\u211D' | '\\u2124' | '\\u2126' | '\\u2128' | '\\u212A' .. '\\u212D' | '\\u212F' .. '\\u2131' | '\\u2133' .. '\\u2139' | '\\u213D' .. '\\u213F' | '\\u2145' .. '\\u2149' | '\\u2160' .. '\\u2183' | '\\u3005' .. '\\u3007' | '\\u3021' .. '\\u3029' | '\\u3031' .. '\\u3035' | '\\u3038' .. '\\u303C' | '\\u3041' .. '\\u3096' | '\\u309D' .. '\\u309F' | '\\u30A1' .. '\\u30FF' | '\\u3105' .. '\\u312C' | '\\u3131' .. '\\u318E' | '\\u31A0' .. '\\u31B7' | '\\u31F0' .. '\\u31FF' | '\\u3400' .. '\\u4DB5' | '\\u4E00' .. '\\u9FA5' | '\\uA000' .. '\\uA48C' | '\\uAC00' .. '\\uD7A3' | '\\uF900' .. '\\uFA2D' | '\\uFA30' .. '\\uFA6A' | '\\uFB00' .. '\\uFB06' | '\\uFB13' .. '\\uFB17' | '\\uFB1D' | '\\uFB1F' .. '\\uFB28' | '\\uFB2A' .. '\\uFB36' | '\\uFB38' .. '\\uFB3C' | '\\uFB3E' | '\\uFB40' .. '\\uFB41' | '\\uFB43' .. '\\uFB44' | '\\uFB46' .. '\\uFBB1' | '\\uFBD3' .. '\\uFD3D' | '\\uFD50' .. '\\uFD8F' | '\\uFD92' .. '\\uFDC7' | '\\uFDF0' .. '\\uFDFC' | '\\uFE33' .. '\\uFE34' | '\\uFE4D' .. '\\uFE4F' | '\\uFE69' | '\\uFE70' .. '\\uFE74' | '\\uFE76' .. '\\uFEFC' | '\\uFF04' | '\\uFF1A' | '\\uFF21' .. '\\uFF3A' | '\\uFF3F' | '\\uFF41' .. '\\uFF5A' | '\\uFF65' .. '\\uFFBE' | '\\uFFC2' .. '\\uFFC7' | '\\uFFCA' .. '\\uFFCF' | '\\uFFD2' .. '\\uFFD7' | '\\uFFDA' .. '\\uFFDC' | '\\uFFE0' .. '\\uFFE1' | '\\uFFE5' .. '\\uFFE6' ) )
+ // InternalRBAModel.g:26638:39: ( '$' | 'A' .. 'Z' | '\\uFF08' .. '\\uFF09' | '_' | 'a' .. 'z' | '\\u00A2' .. '\\u00A5' | '\\u00AA' | '\\u00B5' | '\\u00BA' | '\\u00C0' .. '\\u00D6' | '\\u00D8' .. '\\u00F6' | '\\u00F8' .. '\\u0236' | '\\u0250' .. '\\u02C1' | '\\u02C6' .. '\\u02D1' | '\\u02E0' .. '\\u02E4' | '\\u02EE' | '\\u037A' | '\\u0386' | '\\u0388' .. '\\u038A' | '\\u038C' | '\\u038E' .. '\\u03A1' | '\\u03A3' .. '\\u03CE' | '\\u03D0' .. '\\u03F5' | '\\u03F7' .. '\\u03FB' | '\\u0400' .. '\\u0481' | '\\u048A' .. '\\u04CE' | '\\u04D0' .. '\\u04F5' | '\\u04F8' .. '\\u04F9' | '\\u0500' .. '\\u050F' | '\\u0531' .. '\\u0556' | '\\u0559' | '\\u0561' .. '\\u0587' | '\\u05D0' .. '\\u05EA' | '\\u05F0' .. '\\u05F2' | '\\u0621' .. '\\u063A' | '\\u0640' .. '\\u064A' | '\\u066E' .. '\\u066F' | '\\u0671' .. '\\u06D3' | '\\u06D5' | '\\u06E5' .. '\\u06E6' | '\\u06EE' .. '\\u06EF' | '\\u06FA' .. '\\u06FC' | '\\u06FF' | '\\u0710' | '\\u0712' .. '\\u072F' | '\\u074D' .. '\\u074F' | '\\u0780' .. '\\u07A5' | '\\u07B1' | '\\u0904' .. '\\u0939' | '\\u093D' | '\\u0950' | '\\u0958' .. '\\u0961' | '\\u0985' .. '\\u098C' | '\\u098F' .. '\\u0990' | '\\u0993' .. '\\u09A8' | '\\u09AA' .. '\\u09B0' | '\\u09B2' | '\\u09B6' .. '\\u09B9' | '\\u09BD' | '\\u09DC' .. '\\u09DD' | '\\u09DF' .. '\\u09E1' | '\\u09F0' .. '\\u09F3' | '\\u0A05' .. '\\u0A0A' | '\\u0A0F' .. '\\u0A10' | '\\u0A13' .. '\\u0A28' | '\\u0A2A' .. '\\u0A30' | '\\u0A32' .. '\\u0A33' | '\\u0A35' .. '\\u0A36' | '\\u0A38' .. '\\u0A39' | '\\u0A59' .. '\\u0A5C' | '\\u0A5E' | '\\u0A72' .. '\\u0A74' | '\\u0A85' .. '\\u0A8D' | '\\u0A8F' .. '\\u0A91' | '\\u0A93' .. '\\u0AA8' | '\\u0AAA' .. '\\u0AB0' | '\\u0AB2' .. '\\u0AB3' | '\\u0AB5' .. '\\u0AB9' | '\\u0ABD' | '\\u0AD0' | '\\u0AE0' .. '\\u0AE1' | '\\u0AF1' | '\\u0B05' .. '\\u0B0C' | '\\u0B0F' .. '\\u0B10' | '\\u0B13' .. '\\u0B28' | '\\u0B2A' .. '\\u0B30' | '\\u0B32' .. '\\u0B33' | '\\u0B35' .. '\\u0B39' | '\\u0B3D' | '\\u0B5C' .. '\\u0B5D' | '\\u0B5F' .. '\\u0B61' | '\\u0B71' | '\\u0B83' | '\\u0B85' .. '\\u0B8A' | '\\u0B8E' .. '\\u0B90' | '\\u0B92' .. '\\u0B95' | '\\u0B99' .. '\\u0B9A' | '\\u0B9C' | '\\u0B9E' .. '\\u0B9F' | '\\u0BA3' .. '\\u0BA4' | '\\u0BA8' .. '\\u0BAA' | '\\u0BAE' .. '\\u0BB5' | '\\u0BB7' .. '\\u0BB9' | '\\u0BF9' | '\\u0C05' .. '\\u0C0C' | '\\u0C0E' .. '\\u0C10' | '\\u0C12' .. '\\u0C28' | '\\u0C2A' .. '\\u0C33' | '\\u0C35' .. '\\u0C39' | '\\u0C60' .. '\\u0C61' | '\\u0C85' .. '\\u0C8C' | '\\u0C8E' .. '\\u0C90' | '\\u0C92' .. '\\u0CA8' | '\\u0CAA' .. '\\u0CB3' | '\\u0CB5' .. '\\u0CB9' | '\\u0CBD' | '\\u0CDE' | '\\u0CE0' .. '\\u0CE1' | '\\u0D05' .. '\\u0D0C' | '\\u0D0E' .. '\\u0D10' | '\\u0D12' .. '\\u0D28' | '\\u0D2A' .. '\\u0D39' | '\\u0D60' .. '\\u0D61' | '\\u0D85' .. '\\u0D96' | '\\u0D9A' .. '\\u0DB1' | '\\u0DB3' .. '\\u0DBB' | '\\u0DBD' | '\\u0DC0' .. '\\u0DC6' | '\\u0E01' .. '\\u0E30' | '\\u0E32' .. '\\u0E33' | '\\u0E3F' .. '\\u0E46' | '\\u0E81' .. '\\u0E82' | '\\u0E84' | '\\u0E87' .. '\\u0E88' | '\\u0E8A' | '\\u0E8D' | '\\u0E94' .. '\\u0E97' | '\\u0E99' .. '\\u0E9F' | '\\u0EA1' .. '\\u0EA3' | '\\u0EA5' | '\\u0EA7' | '\\u0EAA' .. '\\u0EAB' | '\\u0EAD' .. '\\u0EB0' | '\\u0EB2' .. '\\u0EB3' | '\\u0EBD' | '\\u0EC0' .. '\\u0EC4' | '\\u0EC6' | '\\u0EDC' .. '\\u0EDD' | '\\u0F00' | '\\u0F40' .. '\\u0F47' | '\\u0F49' .. '\\u0F6A' | '\\u0F88' .. '\\u0F8B' | '\\u1000' .. '\\u1021' | '\\u1023' .. '\\u1027' | '\\u1029' .. '\\u102A' | '\\u1050' .. '\\u1055' | '\\u10A0' .. '\\u10C5' | '\\u10D0' .. '\\u10F8' | '\\u1100' .. '\\u1159' | '\\u115F' .. '\\u11A2' | '\\u11A8' .. '\\u11F9' | '\\u1200' .. '\\u1206' | '\\u1208' .. '\\u1246' | '\\u1248' | '\\u124A' .. '\\u124D' | '\\u1250' .. '\\u1256' | '\\u1258' | '\\u125A' .. '\\u125D' | '\\u1260' .. '\\u1286' | '\\u1288' | '\\u128A' .. '\\u128D' | '\\u1290' .. '\\u12AE' | '\\u12B0' | '\\u12B2' .. '\\u12B5' | '\\u12B8' .. '\\u12BE' | '\\u12C0' | '\\u12C2' .. '\\u12C5' | '\\u12C8' .. '\\u12CE' | '\\u12D0' .. '\\u12D6' | '\\u12D8' .. '\\u12EE' | '\\u12F0' .. '\\u130E' | '\\u1310' | '\\u1312' .. '\\u1315' | '\\u1318' .. '\\u131E' | '\\u1320' .. '\\u1346' | '\\u1348' .. '\\u135A' | '\\u13A0' .. '\\u13F4' | '\\u1401' .. '\\u166C' | '\\u166F' .. '\\u1676' | '\\u1681' .. '\\u169A' | '\\u16A0' .. '\\u16EA' | '\\u16EE' .. '\\u16F0' | '\\u1700' .. '\\u170C' | '\\u170E' .. '\\u1711' | '\\u1720' .. '\\u1731' | '\\u1740' .. '\\u1751' | '\\u1760' .. '\\u176C' | '\\u176E' .. '\\u1770' | '\\u1780' .. '\\u17B3' | '\\u17D7' | '\\u17DB' .. '\\u17DC' | '\\u1820' .. '\\u1877' | '\\u1880' .. '\\u18A8' | '\\u1900' .. '\\u191C' | '\\u1950' .. '\\u196D' | '\\u1970' .. '\\u1974' | '\\u1D00' .. '\\u1D6B' | '\\u1E00' .. '\\u1E9B' | '\\u1EA0' .. '\\u1EF9' | '\\u1F00' .. '\\u1F15' | '\\u1F18' .. '\\u1F1D' | '\\u1F20' .. '\\u1F45' | '\\u1F48' .. '\\u1F4D' | '\\u1F50' .. '\\u1F57' | '\\u1F59' | '\\u1F5B' | '\\u1F5D' | '\\u1F5F' .. '\\u1F7D' | '\\u1F80' .. '\\u1FB4' | '\\u1FB6' .. '\\u1FBC' | '\\u1FBE' | '\\u1FC2' .. '\\u1FC4' | '\\u1FC6' .. '\\u1FCC' | '\\u1FD0' .. '\\u1FD3' | '\\u1FD6' .. '\\u1FDB' | '\\u1FE0' .. '\\u1FEC' | '\\u1FF2' .. '\\u1FF4' | '\\u1FF6' .. '\\u1FFC' | '\\u203F' .. '\\u2040' | '\\u2054' | '\\u2071' | '\\u207F' | '\\u20A0' .. '\\u20B1' | '\\u2102' | '\\u2107' | '\\u210A' .. '\\u2113' | '\\u2115' | '\\u2119' .. '\\u211D' | '\\u2124' | '\\u2126' | '\\u2128' | '\\u212A' .. '\\u212D' | '\\u212F' .. '\\u2131' | '\\u2133' .. '\\u2139' | '\\u213D' .. '\\u213F' | '\\u2145' .. '\\u2149' | '\\u2160' .. '\\u2183' | '\\u3005' .. '\\u3007' | '\\u3021' .. '\\u3029' | '\\u3031' .. '\\u3035' | '\\u3038' .. '\\u303C' | '\\u3041' .. '\\u3096' | '\\u309D' .. '\\u309F' | '\\u30A1' .. '\\u30FF' | '\\u3105' .. '\\u312C' | '\\u3131' .. '\\u318E' | '\\u31A0' .. '\\u31B7' | '\\u31F0' .. '\\u31FF' | '\\u3400' .. '\\u4DB5' | '\\u4E00' .. '\\u9FA5' | '\\uA000' .. '\\uA48C' | '\\uAC00' .. '\\uD7A3' | '\\uF900' .. '\\uFA2D' | '\\uFA30' .. '\\uFA6A' | '\\uFB00' .. '\\uFB06' | '\\uFB13' .. '\\uFB17' | '\\uFB1D' | '\\uFB1F' .. '\\uFB28' | '\\uFB2A' .. '\\uFB36' | '\\uFB38' .. '\\uFB3C' | '\\uFB3E' | '\\uFB40' .. '\\uFB41' | '\\uFB43' .. '\\uFB44' | '\\uFB46' .. '\\uFBB1' | '\\uFBD3' .. '\\uFD3D' | '\\uFD50' .. '\\uFD8F' | '\\uFD92' .. '\\uFDC7' | '\\uFDF0' .. '\\uFDFC' | '\\uFE33' .. '\\uFE34' | '\\uFE4D' .. '\\uFE4F' | '\\uFE69' | '\\uFE70' .. '\\uFE74' | '\\uFE76' .. '\\uFEFC' | '\\uFF04' | '\\uFF1A' | '\\uFF21' .. '\\uFF3A' | '\\uFF3F' | '\\uFF41' .. '\\uFF5A' | '\\uFF65' .. '\\uFFBE' | '\\uFFC2' .. '\\uFFC7' | '\\uFFCA' .. '\\uFFCF' | '\\uFFD2' .. '\\uFFD7' | '\\uFFDA' .. '\\uFFDC' | '\\uFFE0' .. '\\uFFE1' | '\\uFFE5' .. '\\uFFE6' )
+ {
+ if ( input.LA(1)=='$'||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z')||(input.LA(1)>='\u00A2' && input.LA(1)<='\u00A5')||input.LA(1)=='\u00AA'||input.LA(1)=='\u00B5'||input.LA(1)=='\u00BA'||(input.LA(1)>='\u00C0' && input.LA(1)<='\u00D6')||(input.LA(1)>='\u00D8' && input.LA(1)<='\u00F6')||(input.LA(1)>='\u00F8' && input.LA(1)<='\u0236')||(input.LA(1)>='\u0250' && input.LA(1)<='\u02C1')||(input.LA(1)>='\u02C6' && input.LA(1)<='\u02D1')||(input.LA(1)>='\u02E0' && input.LA(1)<='\u02E4')||input.LA(1)=='\u02EE'||input.LA(1)=='\u037A'||input.LA(1)=='\u0386'||(input.LA(1)>='\u0388' && input.LA(1)<='\u038A')||input.LA(1)=='\u038C'||(input.LA(1)>='\u038E' && input.LA(1)<='\u03A1')||(input.LA(1)>='\u03A3' && input.LA(1)<='\u03CE')||(input.LA(1)>='\u03D0' && input.LA(1)<='\u03F5')||(input.LA(1)>='\u03F7' && input.LA(1)<='\u03FB')||(input.LA(1)>='\u0400' && input.LA(1)<='\u0481')||(input.LA(1)>='\u048A' && input.LA(1)<='\u04CE')||(input.LA(1)>='\u04D0' && input.LA(1)<='\u04F5')||(input.LA(1)>='\u04F8' && input.LA(1)<='\u04F9')||(input.LA(1)>='\u0500' && input.LA(1)<='\u050F')||(input.LA(1)>='\u0531' && input.LA(1)<='\u0556')||input.LA(1)=='\u0559'||(input.LA(1)>='\u0561' && input.LA(1)<='\u0587')||(input.LA(1)>='\u05D0' && input.LA(1)<='\u05EA')||(input.LA(1)>='\u05F0' && input.LA(1)<='\u05F2')||(input.LA(1)>='\u0621' && input.LA(1)<='\u063A')||(input.LA(1)>='\u0640' && input.LA(1)<='\u064A')||(input.LA(1)>='\u066E' && input.LA(1)<='\u066F')||(input.LA(1)>='\u0671' && input.LA(1)<='\u06D3')||input.LA(1)=='\u06D5'||(input.LA(1)>='\u06E5' && input.LA(1)<='\u06E6')||(input.LA(1)>='\u06EE' && input.LA(1)<='\u06EF')||(input.LA(1)>='\u06FA' && input.LA(1)<='\u06FC')||input.LA(1)=='\u06FF'||input.LA(1)=='\u0710'||(input.LA(1)>='\u0712' && input.LA(1)<='\u072F')||(input.LA(1)>='\u074D' && input.LA(1)<='\u074F')||(input.LA(1)>='\u0780' && input.LA(1)<='\u07A5')||input.LA(1)=='\u07B1'||(input.LA(1)>='\u0904' && input.LA(1)<='\u0939')||input.LA(1)=='\u093D'||input.LA(1)=='\u0950'||(input.LA(1)>='\u0958' && input.LA(1)<='\u0961')||(input.LA(1)>='\u0985' && input.LA(1)<='\u098C')||(input.LA(1)>='\u098F' && input.LA(1)<='\u0990')||(input.LA(1)>='\u0993' && input.LA(1)<='\u09A8')||(input.LA(1)>='\u09AA' && input.LA(1)<='\u09B0')||input.LA(1)=='\u09B2'||(input.LA(1)>='\u09B6' && input.LA(1)<='\u09B9')||input.LA(1)=='\u09BD'||(input.LA(1)>='\u09DC' && input.LA(1)<='\u09DD')||(input.LA(1)>='\u09DF' && input.LA(1)<='\u09E1')||(input.LA(1)>='\u09F0' && input.LA(1)<='\u09F3')||(input.LA(1)>='\u0A05' && input.LA(1)<='\u0A0A')||(input.LA(1)>='\u0A0F' && input.LA(1)<='\u0A10')||(input.LA(1)>='\u0A13' && input.LA(1)<='\u0A28')||(input.LA(1)>='\u0A2A' && input.LA(1)<='\u0A30')||(input.LA(1)>='\u0A32' && input.LA(1)<='\u0A33')||(input.LA(1)>='\u0A35' && input.LA(1)<='\u0A36')||(input.LA(1)>='\u0A38' && input.LA(1)<='\u0A39')||(input.LA(1)>='\u0A59' && input.LA(1)<='\u0A5C')||input.LA(1)=='\u0A5E'||(input.LA(1)>='\u0A72' && input.LA(1)<='\u0A74')||(input.LA(1)>='\u0A85' && input.LA(1)<='\u0A8D')||(input.LA(1)>='\u0A8F' && input.LA(1)<='\u0A91')||(input.LA(1)>='\u0A93' && input.LA(1)<='\u0AA8')||(input.LA(1)>='\u0AAA' && input.LA(1)<='\u0AB0')||(input.LA(1)>='\u0AB2' && input.LA(1)<='\u0AB3')||(input.LA(1)>='\u0AB5' && input.LA(1)<='\u0AB9')||input.LA(1)=='\u0ABD'||input.LA(1)=='\u0AD0'||(input.LA(1)>='\u0AE0' && input.LA(1)<='\u0AE1')||input.LA(1)=='\u0AF1'||(input.LA(1)>='\u0B05' && input.LA(1)<='\u0B0C')||(input.LA(1)>='\u0B0F' && input.LA(1)<='\u0B10')||(input.LA(1)>='\u0B13' && input.LA(1)<='\u0B28')||(input.LA(1)>='\u0B2A' && input.LA(1)<='\u0B30')||(input.LA(1)>='\u0B32' && input.LA(1)<='\u0B33')||(input.LA(1)>='\u0B35' && input.LA(1)<='\u0B39')||input.LA(1)=='\u0B3D'||(input.LA(1)>='\u0B5C' && input.LA(1)<='\u0B5D')||(input.LA(1)>='\u0B5F' && input.LA(1)<='\u0B61')||input.LA(1)=='\u0B71'||input.LA(1)=='\u0B83'||(input.LA(1)>='\u0B85' && input.LA(1)<='\u0B8A')||(input.LA(1)>='\u0B8E' && input.LA(1)<='\u0B90')||(input.LA(1)>='\u0B92' && input.LA(1)<='\u0B95')||(input.LA(1)>='\u0B99' && input.LA(1)<='\u0B9A')||input.LA(1)=='\u0B9C'||(input.LA(1)>='\u0B9E' && input.LA(1)<='\u0B9F')||(input.LA(1)>='\u0BA3' && input.LA(1)<='\u0BA4')||(input.LA(1)>='\u0BA8' && input.LA(1)<='\u0BAA')||(input.LA(1)>='\u0BAE' && input.LA(1)<='\u0BB5')||(input.LA(1)>='\u0BB7' && input.LA(1)<='\u0BB9')||input.LA(1)=='\u0BF9'||(input.LA(1)>='\u0C05' && input.LA(1)<='\u0C0C')||(input.LA(1)>='\u0C0E' && input.LA(1)<='\u0C10')||(input.LA(1)>='\u0C12' && input.LA(1)<='\u0C28')||(input.LA(1)>='\u0C2A' && input.LA(1)<='\u0C33')||(input.LA(1)>='\u0C35' && input.LA(1)<='\u0C39')||(input.LA(1)>='\u0C60' && input.LA(1)<='\u0C61')||(input.LA(1)>='\u0C85' && input.LA(1)<='\u0C8C')||(input.LA(1)>='\u0C8E' && input.LA(1)<='\u0C90')||(input.LA(1)>='\u0C92' && input.LA(1)<='\u0CA8')||(input.LA(1)>='\u0CAA' && input.LA(1)<='\u0CB3')||(input.LA(1)>='\u0CB5' && input.LA(1)<='\u0CB9')||input.LA(1)=='\u0CBD'||input.LA(1)=='\u0CDE'||(input.LA(1)>='\u0CE0' && input.LA(1)<='\u0CE1')||(input.LA(1)>='\u0D05' && input.LA(1)<='\u0D0C')||(input.LA(1)>='\u0D0E' && input.LA(1)<='\u0D10')||(input.LA(1)>='\u0D12' && input.LA(1)<='\u0D28')||(input.LA(1)>='\u0D2A' && input.LA(1)<='\u0D39')||(input.LA(1)>='\u0D60' && input.LA(1)<='\u0D61')||(input.LA(1)>='\u0D85' && input.LA(1)<='\u0D96')||(input.LA(1)>='\u0D9A' && input.LA(1)<='\u0DB1')||(input.LA(1)>='\u0DB3' && input.LA(1)<='\u0DBB')||input.LA(1)=='\u0DBD'||(input.LA(1)>='\u0DC0' && input.LA(1)<='\u0DC6')||(input.LA(1)>='\u0E01' && input.LA(1)<='\u0E30')||(input.LA(1)>='\u0E32' && input.LA(1)<='\u0E33')||(input.LA(1)>='\u0E3F' && input.LA(1)<='\u0E46')||(input.LA(1)>='\u0E81' && input.LA(1)<='\u0E82')||input.LA(1)=='\u0E84'||(input.LA(1)>='\u0E87' && input.LA(1)<='\u0E88')||input.LA(1)=='\u0E8A'||input.LA(1)=='\u0E8D'||(input.LA(1)>='\u0E94' && input.LA(1)<='\u0E97')||(input.LA(1)>='\u0E99' && input.LA(1)<='\u0E9F')||(input.LA(1)>='\u0EA1' && input.LA(1)<='\u0EA3')||input.LA(1)=='\u0EA5'||input.LA(1)=='\u0EA7'||(input.LA(1)>='\u0EAA' && input.LA(1)<='\u0EAB')||(input.LA(1)>='\u0EAD' && input.LA(1)<='\u0EB0')||(input.LA(1)>='\u0EB2' && input.LA(1)<='\u0EB3')||input.LA(1)=='\u0EBD'||(input.LA(1)>='\u0EC0' && input.LA(1)<='\u0EC4')||input.LA(1)=='\u0EC6'||(input.LA(1)>='\u0EDC' && input.LA(1)<='\u0EDD')||input.LA(1)=='\u0F00'||(input.LA(1)>='\u0F40' && input.LA(1)<='\u0F47')||(input.LA(1)>='\u0F49' && input.LA(1)<='\u0F6A')||(input.LA(1)>='\u0F88' && input.LA(1)<='\u0F8B')||(input.LA(1)>='\u1000' && input.LA(1)<='\u1021')||(input.LA(1)>='\u1023' && input.LA(1)<='\u1027')||(input.LA(1)>='\u1029' && input.LA(1)<='\u102A')||(input.LA(1)>='\u1050' && input.LA(1)<='\u1055')||(input.LA(1)>='\u10A0' && input.LA(1)<='\u10C5')||(input.LA(1)>='\u10D0' && input.LA(1)<='\u10F8')||(input.LA(1)>='\u1100' && input.LA(1)<='\u1159')||(input.LA(1)>='\u115F' && input.LA(1)<='\u11A2')||(input.LA(1)>='\u11A8' && input.LA(1)<='\u11F9')||(input.LA(1)>='\u1200' && input.LA(1)<='\u1206')||(input.LA(1)>='\u1208' && input.LA(1)<='\u1246')||input.LA(1)=='\u1248'||(input.LA(1)>='\u124A' && input.LA(1)<='\u124D')||(input.LA(1)>='\u1250' && input.LA(1)<='\u1256')||input.LA(1)=='\u1258'||(input.LA(1)>='\u125A' && input.LA(1)<='\u125D')||(input.LA(1)>='\u1260' && input.LA(1)<='\u1286')||input.LA(1)=='\u1288'||(input.LA(1)>='\u128A' && input.LA(1)<='\u128D')||(input.LA(1)>='\u1290' && input.LA(1)<='\u12AE')||input.LA(1)=='\u12B0'||(input.LA(1)>='\u12B2' && input.LA(1)<='\u12B5')||(input.LA(1)>='\u12B8' && input.LA(1)<='\u12BE')||input.LA(1)=='\u12C0'||(input.LA(1)>='\u12C2' && input.LA(1)<='\u12C5')||(input.LA(1)>='\u12C8' && input.LA(1)<='\u12CE')||(input.LA(1)>='\u12D0' && input.LA(1)<='\u12D6')||(input.LA(1)>='\u12D8' && input.LA(1)<='\u12EE')||(input.LA(1)>='\u12F0' && input.LA(1)<='\u130E')||input.LA(1)=='\u1310'||(input.LA(1)>='\u1312' && input.LA(1)<='\u1315')||(input.LA(1)>='\u1318' && input.LA(1)<='\u131E')||(input.LA(1)>='\u1320' && input.LA(1)<='\u1346')||(input.LA(1)>='\u1348' && input.LA(1)<='\u135A')||(input.LA(1)>='\u13A0' && input.LA(1)<='\u13F4')||(input.LA(1)>='\u1401' && input.LA(1)<='\u166C')||(input.LA(1)>='\u166F' && input.LA(1)<='\u1676')||(input.LA(1)>='\u1681' && input.LA(1)<='\u169A')||(input.LA(1)>='\u16A0' && input.LA(1)<='\u16EA')||(input.LA(1)>='\u16EE' && input.LA(1)<='\u16F0')||(input.LA(1)>='\u1700' && input.LA(1)<='\u170C')||(input.LA(1)>='\u170E' && input.LA(1)<='\u1711')||(input.LA(1)>='\u1720' && input.LA(1)<='\u1731')||(input.LA(1)>='\u1740' && input.LA(1)<='\u1751')||(input.LA(1)>='\u1760' && input.LA(1)<='\u176C')||(input.LA(1)>='\u176E' && input.LA(1)<='\u1770')||(input.LA(1)>='\u1780' && input.LA(1)<='\u17B3')||input.LA(1)=='\u17D7'||(input.LA(1)>='\u17DB' && input.LA(1)<='\u17DC')||(input.LA(1)>='\u1820' && input.LA(1)<='\u1877')||(input.LA(1)>='\u1880' && input.LA(1)<='\u18A8')||(input.LA(1)>='\u1900' && input.LA(1)<='\u191C')||(input.LA(1)>='\u1950' && input.LA(1)<='\u196D')||(input.LA(1)>='\u1970' && input.LA(1)<='\u1974')||(input.LA(1)>='\u1D00' && input.LA(1)<='\u1D6B')||(input.LA(1)>='\u1E00' && input.LA(1)<='\u1E9B')||(input.LA(1)>='\u1EA0' && input.LA(1)<='\u1EF9')||(input.LA(1)>='\u1F00' && input.LA(1)<='\u1F15')||(input.LA(1)>='\u1F18' && input.LA(1)<='\u1F1D')||(input.LA(1)>='\u1F20' && input.LA(1)<='\u1F45')||(input.LA(1)>='\u1F48' && input.LA(1)<='\u1F4D')||(input.LA(1)>='\u1F50' && input.LA(1)<='\u1F57')||input.LA(1)=='\u1F59'||input.LA(1)=='\u1F5B'||input.LA(1)=='\u1F5D'||(input.LA(1)>='\u1F5F' && input.LA(1)<='\u1F7D')||(input.LA(1)>='\u1F80' && input.LA(1)<='\u1FB4')||(input.LA(1)>='\u1FB6' && input.LA(1)<='\u1FBC')||input.LA(1)=='\u1FBE'||(input.LA(1)>='\u1FC2' && input.LA(1)<='\u1FC4')||(input.LA(1)>='\u1FC6' && input.LA(1)<='\u1FCC')||(input.LA(1)>='\u1FD0' && input.LA(1)<='\u1FD3')||(input.LA(1)>='\u1FD6' && input.LA(1)<='\u1FDB')||(input.LA(1)>='\u1FE0' && input.LA(1)<='\u1FEC')||(input.LA(1)>='\u1FF2' && input.LA(1)<='\u1FF4')||(input.LA(1)>='\u1FF6' && input.LA(1)<='\u1FFC')||(input.LA(1)>='\u203F' && input.LA(1)<='\u2040')||input.LA(1)=='\u2054'||input.LA(1)=='\u2071'||input.LA(1)=='\u207F'||(input.LA(1)>='\u20A0' && input.LA(1)<='\u20B1')||input.LA(1)=='\u2102'||input.LA(1)=='\u2107'||(input.LA(1)>='\u210A' && input.LA(1)<='\u2113')||input.LA(1)=='\u2115'||(input.LA(1)>='\u2119' && input.LA(1)<='\u211D')||input.LA(1)=='\u2124'||input.LA(1)=='\u2126'||input.LA(1)=='\u2128'||(input.LA(1)>='\u212A' && input.LA(1)<='\u212D')||(input.LA(1)>='\u212F' && input.LA(1)<='\u2131')||(input.LA(1)>='\u2133' && input.LA(1)<='\u2139')||(input.LA(1)>='\u213D' && input.LA(1)<='\u213F')||(input.LA(1)>='\u2145' && input.LA(1)<='\u2149')||(input.LA(1)>='\u2160' && input.LA(1)<='\u2183')||(input.LA(1)>='\u3005' && input.LA(1)<='\u3007')||(input.LA(1)>='\u3021' && input.LA(1)<='\u3029')||(input.LA(1)>='\u3031' && input.LA(1)<='\u3035')||(input.LA(1)>='\u3038' && input.LA(1)<='\u303C')||(input.LA(1)>='\u3041' && input.LA(1)<='\u3096')||(input.LA(1)>='\u309D' && input.LA(1)<='\u309F')||(input.LA(1)>='\u30A1' && input.LA(1)<='\u30FF')||(input.LA(1)>='\u3105' && input.LA(1)<='\u312C')||(input.LA(1)>='\u3131' && input.LA(1)<='\u318E')||(input.LA(1)>='\u31A0' && input.LA(1)<='\u31B7')||(input.LA(1)>='\u31F0' && input.LA(1)<='\u31FF')||(input.LA(1)>='\u3400' && input.LA(1)<='\u4DB5')||(input.LA(1)>='\u4E00' && input.LA(1)<='\u9FA5')||(input.LA(1)>='\uA000' && input.LA(1)<='\uA48C')||(input.LA(1)>='\uAC00' && input.LA(1)<='\uD7A3')||(input.LA(1)>='\uF900' && input.LA(1)<='\uFA2D')||(input.LA(1)>='\uFA30' && input.LA(1)<='\uFA6A')||(input.LA(1)>='\uFB00' && input.LA(1)<='\uFB06')||(input.LA(1)>='\uFB13' && input.LA(1)<='\uFB17')||input.LA(1)=='\uFB1D'||(input.LA(1)>='\uFB1F' && input.LA(1)<='\uFB28')||(input.LA(1)>='\uFB2A' && input.LA(1)<='\uFB36')||(input.LA(1)>='\uFB38' && input.LA(1)<='\uFB3C')||input.LA(1)=='\uFB3E'||(input.LA(1)>='\uFB40' && input.LA(1)<='\uFB41')||(input.LA(1)>='\uFB43' && input.LA(1)<='\uFB44')||(input.LA(1)>='\uFB46' && input.LA(1)<='\uFBB1')||(input.LA(1)>='\uFBD3' && input.LA(1)<='\uFD3D')||(input.LA(1)>='\uFD50' && input.LA(1)<='\uFD8F')||(input.LA(1)>='\uFD92' && input.LA(1)<='\uFDC7')||(input.LA(1)>='\uFDF0' && input.LA(1)<='\uFDFC')||(input.LA(1)>='\uFE33' && input.LA(1)<='\uFE34')||(input.LA(1)>='\uFE4D' && input.LA(1)<='\uFE4F')||input.LA(1)=='\uFE69'||(input.LA(1)>='\uFE70' && input.LA(1)<='\uFE74')||(input.LA(1)>='\uFE76' && input.LA(1)<='\uFEFC')||input.LA(1)=='\uFF04'||(input.LA(1)>='\uFF08' && input.LA(1)<='\uFF09')||input.LA(1)=='\uFF1A'||(input.LA(1)>='\uFF21' && input.LA(1)<='\uFF3A')||input.LA(1)=='\uFF3F'||(input.LA(1)>='\uFF41' && input.LA(1)<='\uFF5A')||(input.LA(1)>='\uFF65' && input.LA(1)<='\uFFBE')||(input.LA(1)>='\uFFC2' && input.LA(1)<='\uFFC7')||(input.LA(1)>='\uFFCA' && input.LA(1)<='\uFFCF')||(input.LA(1)>='\uFFD2' && input.LA(1)<='\uFFD7')||(input.LA(1)>='\uFFDA' && input.LA(1)<='\uFFDC')||(input.LA(1)>='\uFFE0' && input.LA(1)<='\uFFE1')||(input.LA(1)>='\uFFE5' && input.LA(1)<='\uFFE6') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_IDENTIFIER_START_IMPL"
+
+ // $ANTLR start "RULE_IDENTIFIER_PART_IMPL"
+ public final void mRULE_IDENTIFIER_PART_IMPL() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:26640:36: ( ( '\\u0000' .. '\\b' | '\\u000E' .. '\\u001B' | '\\u007F' .. '\\u009F' | '\\u00AD' | '\\u3001' .. '\\u3002' | '\\u0300' .. '\\u0357' | '\\u035D' .. '\\u036F' | '\\u0483' .. '\\u0486' | '\\u0591' .. '\\u05A1' | '\\u05A3' .. '\\u05B9' | '\\u05BB' .. '\\u05BD' | '\\u05BF' | '\\u05C1' .. '\\u05C2' | '\\u05C4' | '\\u0600' .. '\\u0603' | '\\u0610' .. '\\u0615' | '\\u064B' .. '\\u0658' | '\\u0660' .. '\\u0669' | '\\u0670' | '\\u06D6' .. '\\u06DD' | '\\u06DF' .. '\\u06E4' | '\\u06E7' .. '\\u06E8' | '\\u06EA' .. '\\u06ED' | '\\u06F0' .. '\\u06F9' | '\\u070F' | '\\u0711' | '\\u0730' .. '\\u074A' | '\\u07A6' .. '\\u07B0' | '\\u0901' .. '\\u0903' | '\\u093C' | '\\u093E' .. '\\u094D' | '\\u0951' .. '\\u0954' | '\\u0962' .. '\\u0963' | '\\u0966' .. '\\u096F' | '\\u0981' .. '\\u0983' | '\\u09BC' | '\\u09BE' .. '\\u09C4' | '\\u09C7' .. '\\u09C8' | '\\u09CB' .. '\\u09CD' | '\\u09D7' | '\\u09E2' .. '\\u09E3' | '\\u09E6' .. '\\u09EF' | '\\u0A01' .. '\\u0A03' | '\\u0A3C' | '\\u0A3E' .. '\\u0A42' | '\\u0A47' .. '\\u0A48' | '\\u0A4B' .. '\\u0A4D' | '\\u0A66' .. '\\u0A71' | '\\u0A81' .. '\\u0A83' | '\\u0ABC' | '\\u0ABE' .. '\\u0AC5' | '\\u0AC7' .. '\\u0AC9' | '\\u0ACB' .. '\\u0ACD' | '\\u0AE2' .. '\\u0AE3' | '\\u0AE6' .. '\\u0AEF' | '\\u0B01' .. '\\u0B03' | '\\u0B3C' | '\\u0B3E' .. '\\u0B43' | '\\u0B47' .. '\\u0B48' | '\\u0B4B' .. '\\u0B4D' | '\\u0B56' .. '\\u0B57' | '\\u0B66' .. '\\u0B6F' | '\\u0B82' | '\\u0BBE' .. '\\u0BC2' | '\\u0BC6' .. '\\u0BC8' | '\\u0BCA' .. '\\u0BCD' | '\\u0BD7' | '\\u0BE7' .. '\\u0BEF' | '\\u0C01' .. '\\u0C03' | '\\u0C3E' .. '\\u0C44' | '\\u0C46' .. '\\u0C48' | '\\u0C4A' .. '\\u0C4D' | '\\u0C55' .. '\\u0C56' | '\\u0C66' .. '\\u0C6F' | '\\u0C82' .. '\\u0C83' | '\\u0CBC' | '\\u0CBE' .. '\\u0CC4' | '\\u0CC6' .. '\\u0CC8' | '\\u0CCA' .. '\\u0CCD' | '\\u0CD5' .. '\\u0CD6' | '\\u0CE6' .. '\\u0CEF' | '\\u0D02' .. '\\u0D03' | '\\u0D3E' .. '\\u0D43' | '\\u0D46' .. '\\u0D48' | '\\u0D4A' .. '\\u0D4D' | '\\u0D57' | '\\u0D66' .. '\\u0D6F' | '\\u0D82' .. '\\u0D83' | '\\u0DCA' | '\\u0DCF' .. '\\u0DD4' | '\\u0DD6' | '\\u0DD8' .. '\\u0DDF' | '\\u0DF2' .. '\\u0DF3' | '\\u0E31' | '\\u0E34' .. '\\u0E3A' | '\\u0E47' .. '\\u0E4E' | '\\u0E50' .. '\\u0E59' | '\\u0EB1' | '\\u0EB4' .. '\\u0EB9' | '\\u0EBB' .. '\\u0EBC' | '\\u0EC8' .. '\\u0ECD' | '\\u0ED0' .. '\\u0ED9' | '\\u0F18' .. '\\u0F19' | '\\u0F20' .. '\\u0F29' | '\\u0F35' | '\\u0F37' | '\\u0F39' | '\\u0F3E' .. '\\u0F3F' | '\\u0F71' .. '\\u0F84' | '\\u0F86' .. '\\u0F87' | '\\u0F90' .. '\\u0F97' | '\\u0F99' .. '\\u0FBC' | '\\u0FC6' | '\\u102C' .. '\\u1032' | '\\u1036' .. '\\u1039' | '\\u1040' .. '\\u1049' | '\\u1056' .. '\\u1059' | '\\u1369' .. '\\u1371' | '\\u1712' .. '\\u1714' | '\\u1732' .. '\\u1734' | '\\u1752' .. '\\u1753' | '\\u1772' .. '\\u1773' | '\\u17B4' .. '\\u17D3' | '\\u17DD' | '\\u17E0' .. '\\u17E9' | '\\u180B' .. '\\u180D' | '\\u1810' .. '\\u1819' | '\\u18A9' | '\\u1920' .. '\\u192B' | '\\u1930' .. '\\u193B' | '\\u1946' .. '\\u194F' | '\\u200C' .. '\\u200F' | '\\u202A' .. '\\u202E' | '\\u2060' .. '\\u2063' | '\\u206A' .. '\\u206F' | '\\u20D0' .. '\\u20DC' | '\\u20E1' | '\\u20E5' .. '\\u20EA' | '\\u302A' .. '\\u302F' | '\\u3099' .. '\\u309A' | '\\uFB1E' | '\\uFE00' .. '\\uFE0F' | '\\uFE20' .. '\\uFE23' | '\\uFEFF' | '\\uFF10' .. '\\uFF19' | '\\uFFF9' .. '\\uFFFB' ) )
+ // InternalRBAModel.g:26640:38: ( '\\u0000' .. '\\b' | '\\u000E' .. '\\u001B' | '\\u007F' .. '\\u009F' | '\\u00AD' | '\\u3001' .. '\\u3002' | '\\u0300' .. '\\u0357' | '\\u035D' .. '\\u036F' | '\\u0483' .. '\\u0486' | '\\u0591' .. '\\u05A1' | '\\u05A3' .. '\\u05B9' | '\\u05BB' .. '\\u05BD' | '\\u05BF' | '\\u05C1' .. '\\u05C2' | '\\u05C4' | '\\u0600' .. '\\u0603' | '\\u0610' .. '\\u0615' | '\\u064B' .. '\\u0658' | '\\u0660' .. '\\u0669' | '\\u0670' | '\\u06D6' .. '\\u06DD' | '\\u06DF' .. '\\u06E4' | '\\u06E7' .. '\\u06E8' | '\\u06EA' .. '\\u06ED' | '\\u06F0' .. '\\u06F9' | '\\u070F' | '\\u0711' | '\\u0730' .. '\\u074A' | '\\u07A6' .. '\\u07B0' | '\\u0901' .. '\\u0903' | '\\u093C' | '\\u093E' .. '\\u094D' | '\\u0951' .. '\\u0954' | '\\u0962' .. '\\u0963' | '\\u0966' .. '\\u096F' | '\\u0981' .. '\\u0983' | '\\u09BC' | '\\u09BE' .. '\\u09C4' | '\\u09C7' .. '\\u09C8' | '\\u09CB' .. '\\u09CD' | '\\u09D7' | '\\u09E2' .. '\\u09E3' | '\\u09E6' .. '\\u09EF' | '\\u0A01' .. '\\u0A03' | '\\u0A3C' | '\\u0A3E' .. '\\u0A42' | '\\u0A47' .. '\\u0A48' | '\\u0A4B' .. '\\u0A4D' | '\\u0A66' .. '\\u0A71' | '\\u0A81' .. '\\u0A83' | '\\u0ABC' | '\\u0ABE' .. '\\u0AC5' | '\\u0AC7' .. '\\u0AC9' | '\\u0ACB' .. '\\u0ACD' | '\\u0AE2' .. '\\u0AE3' | '\\u0AE6' .. '\\u0AEF' | '\\u0B01' .. '\\u0B03' | '\\u0B3C' | '\\u0B3E' .. '\\u0B43' | '\\u0B47' .. '\\u0B48' | '\\u0B4B' .. '\\u0B4D' | '\\u0B56' .. '\\u0B57' | '\\u0B66' .. '\\u0B6F' | '\\u0B82' | '\\u0BBE' .. '\\u0BC2' | '\\u0BC6' .. '\\u0BC8' | '\\u0BCA' .. '\\u0BCD' | '\\u0BD7' | '\\u0BE7' .. '\\u0BEF' | '\\u0C01' .. '\\u0C03' | '\\u0C3E' .. '\\u0C44' | '\\u0C46' .. '\\u0C48' | '\\u0C4A' .. '\\u0C4D' | '\\u0C55' .. '\\u0C56' | '\\u0C66' .. '\\u0C6F' | '\\u0C82' .. '\\u0C83' | '\\u0CBC' | '\\u0CBE' .. '\\u0CC4' | '\\u0CC6' .. '\\u0CC8' | '\\u0CCA' .. '\\u0CCD' | '\\u0CD5' .. '\\u0CD6' | '\\u0CE6' .. '\\u0CEF' | '\\u0D02' .. '\\u0D03' | '\\u0D3E' .. '\\u0D43' | '\\u0D46' .. '\\u0D48' | '\\u0D4A' .. '\\u0D4D' | '\\u0D57' | '\\u0D66' .. '\\u0D6F' | '\\u0D82' .. '\\u0D83' | '\\u0DCA' | '\\u0DCF' .. '\\u0DD4' | '\\u0DD6' | '\\u0DD8' .. '\\u0DDF' | '\\u0DF2' .. '\\u0DF3' | '\\u0E31' | '\\u0E34' .. '\\u0E3A' | '\\u0E47' .. '\\u0E4E' | '\\u0E50' .. '\\u0E59' | '\\u0EB1' | '\\u0EB4' .. '\\u0EB9' | '\\u0EBB' .. '\\u0EBC' | '\\u0EC8' .. '\\u0ECD' | '\\u0ED0' .. '\\u0ED9' | '\\u0F18' .. '\\u0F19' | '\\u0F20' .. '\\u0F29' | '\\u0F35' | '\\u0F37' | '\\u0F39' | '\\u0F3E' .. '\\u0F3F' | '\\u0F71' .. '\\u0F84' | '\\u0F86' .. '\\u0F87' | '\\u0F90' .. '\\u0F97' | '\\u0F99' .. '\\u0FBC' | '\\u0FC6' | '\\u102C' .. '\\u1032' | '\\u1036' .. '\\u1039' | '\\u1040' .. '\\u1049' | '\\u1056' .. '\\u1059' | '\\u1369' .. '\\u1371' | '\\u1712' .. '\\u1714' | '\\u1732' .. '\\u1734' | '\\u1752' .. '\\u1753' | '\\u1772' .. '\\u1773' | '\\u17B4' .. '\\u17D3' | '\\u17DD' | '\\u17E0' .. '\\u17E9' | '\\u180B' .. '\\u180D' | '\\u1810' .. '\\u1819' | '\\u18A9' | '\\u1920' .. '\\u192B' | '\\u1930' .. '\\u193B' | '\\u1946' .. '\\u194F' | '\\u200C' .. '\\u200F' | '\\u202A' .. '\\u202E' | '\\u2060' .. '\\u2063' | '\\u206A' .. '\\u206F' | '\\u20D0' .. '\\u20DC' | '\\u20E1' | '\\u20E5' .. '\\u20EA' | '\\u302A' .. '\\u302F' | '\\u3099' .. '\\u309A' | '\\uFB1E' | '\\uFE00' .. '\\uFE0F' | '\\uFE20' .. '\\uFE23' | '\\uFEFF' | '\\uFF10' .. '\\uFF19' | '\\uFFF9' .. '\\uFFFB' )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='\b')||(input.LA(1)>='\u000E' && input.LA(1)<='\u001B')||(input.LA(1)>='\u007F' && input.LA(1)<='\u009F')||input.LA(1)=='\u00AD'||(input.LA(1)>='\u0300' && input.LA(1)<='\u0357')||(input.LA(1)>='\u035D' && input.LA(1)<='\u036F')||(input.LA(1)>='\u0483' && input.LA(1)<='\u0486')||(input.LA(1)>='\u0591' && input.LA(1)<='\u05A1')||(input.LA(1)>='\u05A3' && input.LA(1)<='\u05B9')||(input.LA(1)>='\u05BB' && input.LA(1)<='\u05BD')||input.LA(1)=='\u05BF'||(input.LA(1)>='\u05C1' && input.LA(1)<='\u05C2')||input.LA(1)=='\u05C4'||(input.LA(1)>='\u0600' && input.LA(1)<='\u0603')||(input.LA(1)>='\u0610' && input.LA(1)<='\u0615')||(input.LA(1)>='\u064B' && input.LA(1)<='\u0658')||(input.LA(1)>='\u0660' && input.LA(1)<='\u0669')||input.LA(1)=='\u0670'||(input.LA(1)>='\u06D6' && input.LA(1)<='\u06DD')||(input.LA(1)>='\u06DF' && input.LA(1)<='\u06E4')||(input.LA(1)>='\u06E7' && input.LA(1)<='\u06E8')||(input.LA(1)>='\u06EA' && input.LA(1)<='\u06ED')||(input.LA(1)>='\u06F0' && input.LA(1)<='\u06F9')||input.LA(1)=='\u070F'||input.LA(1)=='\u0711'||(input.LA(1)>='\u0730' && input.LA(1)<='\u074A')||(input.LA(1)>='\u07A6' && input.LA(1)<='\u07B0')||(input.LA(1)>='\u0901' && input.LA(1)<='\u0903')||input.LA(1)=='\u093C'||(input.LA(1)>='\u093E' && input.LA(1)<='\u094D')||(input.LA(1)>='\u0951' && input.LA(1)<='\u0954')||(input.LA(1)>='\u0962' && input.LA(1)<='\u0963')||(input.LA(1)>='\u0966' && input.LA(1)<='\u096F')||(input.LA(1)>='\u0981' && input.LA(1)<='\u0983')||input.LA(1)=='\u09BC'||(input.LA(1)>='\u09BE' && input.LA(1)<='\u09C4')||(input.LA(1)>='\u09C7' && input.LA(1)<='\u09C8')||(input.LA(1)>='\u09CB' && input.LA(1)<='\u09CD')||input.LA(1)=='\u09D7'||(input.LA(1)>='\u09E2' && input.LA(1)<='\u09E3')||(input.LA(1)>='\u09E6' && input.LA(1)<='\u09EF')||(input.LA(1)>='\u0A01' && input.LA(1)<='\u0A03')||input.LA(1)=='\u0A3C'||(input.LA(1)>='\u0A3E' && input.LA(1)<='\u0A42')||(input.LA(1)>='\u0A47' && input.LA(1)<='\u0A48')||(input.LA(1)>='\u0A4B' && input.LA(1)<='\u0A4D')||(input.LA(1)>='\u0A66' && input.LA(1)<='\u0A71')||(input.LA(1)>='\u0A81' && input.LA(1)<='\u0A83')||input.LA(1)=='\u0ABC'||(input.LA(1)>='\u0ABE' && input.LA(1)<='\u0AC5')||(input.LA(1)>='\u0AC7' && input.LA(1)<='\u0AC9')||(input.LA(1)>='\u0ACB' && input.LA(1)<='\u0ACD')||(input.LA(1)>='\u0AE2' && input.LA(1)<='\u0AE3')||(input.LA(1)>='\u0AE6' && input.LA(1)<='\u0AEF')||(input.LA(1)>='\u0B01' && input.LA(1)<='\u0B03')||input.LA(1)=='\u0B3C'||(input.LA(1)>='\u0B3E' && input.LA(1)<='\u0B43')||(input.LA(1)>='\u0B47' && input.LA(1)<='\u0B48')||(input.LA(1)>='\u0B4B' && input.LA(1)<='\u0B4D')||(input.LA(1)>='\u0B56' && input.LA(1)<='\u0B57')||(input.LA(1)>='\u0B66' && input.LA(1)<='\u0B6F')||input.LA(1)=='\u0B82'||(input.LA(1)>='\u0BBE' && input.LA(1)<='\u0BC2')||(input.LA(1)>='\u0BC6' && input.LA(1)<='\u0BC8')||(input.LA(1)>='\u0BCA' && input.LA(1)<='\u0BCD')||input.LA(1)=='\u0BD7'||(input.LA(1)>='\u0BE7' && input.LA(1)<='\u0BEF')||(input.LA(1)>='\u0C01' && input.LA(1)<='\u0C03')||(input.LA(1)>='\u0C3E' && input.LA(1)<='\u0C44')||(input.LA(1)>='\u0C46' && input.LA(1)<='\u0C48')||(input.LA(1)>='\u0C4A' && input.LA(1)<='\u0C4D')||(input.LA(1)>='\u0C55' && input.LA(1)<='\u0C56')||(input.LA(1)>='\u0C66' && input.LA(1)<='\u0C6F')||(input.LA(1)>='\u0C82' && input.LA(1)<='\u0C83')||input.LA(1)=='\u0CBC'||(input.LA(1)>='\u0CBE' && input.LA(1)<='\u0CC4')||(input.LA(1)>='\u0CC6' && input.LA(1)<='\u0CC8')||(input.LA(1)>='\u0CCA' && input.LA(1)<='\u0CCD')||(input.LA(1)>='\u0CD5' && input.LA(1)<='\u0CD6')||(input.LA(1)>='\u0CE6' && input.LA(1)<='\u0CEF')||(input.LA(1)>='\u0D02' && input.LA(1)<='\u0D03')||(input.LA(1)>='\u0D3E' && input.LA(1)<='\u0D43')||(input.LA(1)>='\u0D46' && input.LA(1)<='\u0D48')||(input.LA(1)>='\u0D4A' && input.LA(1)<='\u0D4D')||input.LA(1)=='\u0D57'||(input.LA(1)>='\u0D66' && input.LA(1)<='\u0D6F')||(input.LA(1)>='\u0D82' && input.LA(1)<='\u0D83')||input.LA(1)=='\u0DCA'||(input.LA(1)>='\u0DCF' && input.LA(1)<='\u0DD4')||input.LA(1)=='\u0DD6'||(input.LA(1)>='\u0DD8' && input.LA(1)<='\u0DDF')||(input.LA(1)>='\u0DF2' && input.LA(1)<='\u0DF3')||input.LA(1)=='\u0E31'||(input.LA(1)>='\u0E34' && input.LA(1)<='\u0E3A')||(input.LA(1)>='\u0E47' && input.LA(1)<='\u0E4E')||(input.LA(1)>='\u0E50' && input.LA(1)<='\u0E59')||input.LA(1)=='\u0EB1'||(input.LA(1)>='\u0EB4' && input.LA(1)<='\u0EB9')||(input.LA(1)>='\u0EBB' && input.LA(1)<='\u0EBC')||(input.LA(1)>='\u0EC8' && input.LA(1)<='\u0ECD')||(input.LA(1)>='\u0ED0' && input.LA(1)<='\u0ED9')||(input.LA(1)>='\u0F18' && input.LA(1)<='\u0F19')||(input.LA(1)>='\u0F20' && input.LA(1)<='\u0F29')||input.LA(1)=='\u0F35'||input.LA(1)=='\u0F37'||input.LA(1)=='\u0F39'||(input.LA(1)>='\u0F3E' && input.LA(1)<='\u0F3F')||(input.LA(1)>='\u0F71' && input.LA(1)<='\u0F84')||(input.LA(1)>='\u0F86' && input.LA(1)<='\u0F87')||(input.LA(1)>='\u0F90' && input.LA(1)<='\u0F97')||(input.LA(1)>='\u0F99' && input.LA(1)<='\u0FBC')||input.LA(1)=='\u0FC6'||(input.LA(1)>='\u102C' && input.LA(1)<='\u1032')||(input.LA(1)>='\u1036' && input.LA(1)<='\u1039')||(input.LA(1)>='\u1040' && input.LA(1)<='\u1049')||(input.LA(1)>='\u1056' && input.LA(1)<='\u1059')||(input.LA(1)>='\u1369' && input.LA(1)<='\u1371')||(input.LA(1)>='\u1712' && input.LA(1)<='\u1714')||(input.LA(1)>='\u1732' && input.LA(1)<='\u1734')||(input.LA(1)>='\u1752' && input.LA(1)<='\u1753')||(input.LA(1)>='\u1772' && input.LA(1)<='\u1773')||(input.LA(1)>='\u17B4' && input.LA(1)<='\u17D3')||input.LA(1)=='\u17DD'||(input.LA(1)>='\u17E0' && input.LA(1)<='\u17E9')||(input.LA(1)>='\u180B' && input.LA(1)<='\u180D')||(input.LA(1)>='\u1810' && input.LA(1)<='\u1819')||input.LA(1)=='\u18A9'||(input.LA(1)>='\u1920' && input.LA(1)<='\u192B')||(input.LA(1)>='\u1930' && input.LA(1)<='\u193B')||(input.LA(1)>='\u1946' && input.LA(1)<='\u194F')||(input.LA(1)>='\u200C' && input.LA(1)<='\u200F')||(input.LA(1)>='\u202A' && input.LA(1)<='\u202E')||(input.LA(1)>='\u2060' && input.LA(1)<='\u2063')||(input.LA(1)>='\u206A' && input.LA(1)<='\u206F')||(input.LA(1)>='\u20D0' && input.LA(1)<='\u20DC')||input.LA(1)=='\u20E1'||(input.LA(1)>='\u20E5' && input.LA(1)<='\u20EA')||(input.LA(1)>='\u3001' && input.LA(1)<='\u3002')||(input.LA(1)>='\u302A' && input.LA(1)<='\u302F')||(input.LA(1)>='\u3099' && input.LA(1)<='\u309A')||input.LA(1)=='\uFB1E'||(input.LA(1)>='\uFE00' && input.LA(1)<='\uFE0F')||(input.LA(1)>='\uFE20' && input.LA(1)<='\uFE23')||input.LA(1)=='\uFEFF'||(input.LA(1)>='\uFF10' && input.LA(1)<='\uFF19')||(input.LA(1)>='\uFFF9' && input.LA(1)<='\uFFFB') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_IDENTIFIER_PART_IMPL"
+
+ // $ANTLR start "RULE_IDENTIFIER_DIGITS"
+ public final void mRULE_IDENTIFIER_DIGITS() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:26642:33: ( '0' .. '9' )
+ // InternalRBAModel.g:26642:35: '0' .. '9'
+ {
+ matchRange('0','9');
+
+ }
+
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_IDENTIFIER_DIGITS"
+
+ // $ANTLR start "RULE_HEX_DIGIT"
+ public final void mRULE_HEX_DIGIT() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:26644:25: ( ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) )
+ // InternalRBAModel.g:26644:27: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )
+ {
+ 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;}
+
+
+ }
+
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_HEX_DIGIT"
+
+ // $ANTLR start "RULE_UNICODE_ESCAPE"
+ public final void mRULE_UNICODE_ESCAPE() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:26646:30: ( '\\\\' 'u' ( RULE_HEX_DIGIT ( RULE_HEX_DIGIT ( RULE_HEX_DIGIT ( RULE_HEX_DIGIT )? )? )? )? )
+ // InternalRBAModel.g:26646:32: '\\\\' 'u' ( RULE_HEX_DIGIT ( RULE_HEX_DIGIT ( RULE_HEX_DIGIT ( RULE_HEX_DIGIT )? )? )? )?
+ {
+ match('\\');
+ match('u');
+ // InternalRBAModel.g:26646:41: ( RULE_HEX_DIGIT ( RULE_HEX_DIGIT ( RULE_HEX_DIGIT ( RULE_HEX_DIGIT )? )? )? )?
+ int alt6=2;
+ int LA6_0 = input.LA(1);
+
+ if ( ((LA6_0>='0' && LA6_0<='9')||(LA6_0>='A' && LA6_0<='F')||(LA6_0>='a' && LA6_0<='f')) ) {
+ alt6=1;
+ }
+ switch (alt6) {
+ case 1 :
+ // InternalRBAModel.g:26646:42: RULE_HEX_DIGIT ( RULE_HEX_DIGIT ( RULE_HEX_DIGIT ( RULE_HEX_DIGIT )? )? )?
+ {
+ mRULE_HEX_DIGIT();
+ // InternalRBAModel.g:26646:57: ( RULE_HEX_DIGIT ( RULE_HEX_DIGIT ( RULE_HEX_DIGIT )? )? )?
+ int alt5=2;
+ int LA5_0 = input.LA(1);
+
+ if ( ((LA5_0>='0' && LA5_0<='9')||(LA5_0>='A' && LA5_0<='F')||(LA5_0>='a' && LA5_0<='f')) ) {
+ alt5=1;
+ }
+ switch (alt5) {
+ case 1 :
+ // InternalRBAModel.g:26646:58: RULE_HEX_DIGIT ( RULE_HEX_DIGIT ( RULE_HEX_DIGIT )? )?
+ {
+ mRULE_HEX_DIGIT();
+ // InternalRBAModel.g:26646:73: ( RULE_HEX_DIGIT ( RULE_HEX_DIGIT )? )?
+ int alt4=2;
+ int LA4_0 = input.LA(1);
+
+ if ( ((LA4_0>='0' && LA4_0<='9')||(LA4_0>='A' && LA4_0<='F')||(LA4_0>='a' && LA4_0<='f')) ) {
+ alt4=1;
+ }
+ switch (alt4) {
+ case 1 :
+ // InternalRBAModel.g:26646:74: RULE_HEX_DIGIT ( RULE_HEX_DIGIT )?
+ {
+ mRULE_HEX_DIGIT();
+ // InternalRBAModel.g:26646:89: ( RULE_HEX_DIGIT )?
+ int alt3=2;
+ int LA3_0 = input.LA(1);
+
+ if ( ((LA3_0>='0' && LA3_0<='9')||(LA3_0>='A' && LA3_0<='F')||(LA3_0>='a' && LA3_0<='f')) ) {
+ alt3=1;
+ }
+ switch (alt3) {
+ case 1 :
+ // InternalRBAModel.g:26646:89: RULE_HEX_DIGIT
+ {
+ mRULE_HEX_DIGIT();
+
+ }
+ break;
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_UNICODE_ESCAPE"
+
+ // $ANTLR start "RULE_IDENTIFIER_PART"
+ public final void mRULE_IDENTIFIER_PART() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:26648:31: ( ( RULE_IDENTIFIER_START_IMPL | RULE_IDENTIFIER_DIGITS | RULE_IDENTIFIER_PART_IMPL ) )
+ // InternalRBAModel.g:26648:33: ( RULE_IDENTIFIER_START_IMPL | RULE_IDENTIFIER_DIGITS | RULE_IDENTIFIER_PART_IMPL )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='\b')||(input.LA(1)>='\u000E' && input.LA(1)<='\u001B')||input.LA(1)=='$'||(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.LA(1)>='\u007F' && input.LA(1)<='\u009F')||(input.LA(1)>='\u00A2' && input.LA(1)<='\u00A5')||input.LA(1)=='\u00AA'||input.LA(1)=='\u00AD'||input.LA(1)=='\u00B5'||input.LA(1)=='\u00BA'||(input.LA(1)>='\u00C0' && input.LA(1)<='\u00D6')||(input.LA(1)>='\u00D8' && input.LA(1)<='\u00F6')||(input.LA(1)>='\u00F8' && input.LA(1)<='\u0236')||(input.LA(1)>='\u0250' && input.LA(1)<='\u02C1')||(input.LA(1)>='\u02C6' && input.LA(1)<='\u02D1')||(input.LA(1)>='\u02E0' && input.LA(1)<='\u02E4')||input.LA(1)=='\u02EE'||(input.LA(1)>='\u0300' && input.LA(1)<='\u0357')||(input.LA(1)>='\u035D' && input.LA(1)<='\u036F')||input.LA(1)=='\u037A'||input.LA(1)=='\u0386'||(input.LA(1)>='\u0388' && input.LA(1)<='\u038A')||input.LA(1)=='\u038C'||(input.LA(1)>='\u038E' && input.LA(1)<='\u03A1')||(input.LA(1)>='\u03A3' && input.LA(1)<='\u03CE')||(input.LA(1)>='\u03D0' && input.LA(1)<='\u03F5')||(input.LA(1)>='\u03F7' && input.LA(1)<='\u03FB')||(input.LA(1)>='\u0400' && input.LA(1)<='\u0481')||(input.LA(1)>='\u0483' && input.LA(1)<='\u0486')||(input.LA(1)>='\u048A' && input.LA(1)<='\u04CE')||(input.LA(1)>='\u04D0' && input.LA(1)<='\u04F5')||(input.LA(1)>='\u04F8' && input.LA(1)<='\u04F9')||(input.LA(1)>='\u0500' && input.LA(1)<='\u050F')||(input.LA(1)>='\u0531' && input.LA(1)<='\u0556')||input.LA(1)=='\u0559'||(input.LA(1)>='\u0561' && input.LA(1)<='\u0587')||(input.LA(1)>='\u0591' && input.LA(1)<='\u05A1')||(input.LA(1)>='\u05A3' && input.LA(1)<='\u05B9')||(input.LA(1)>='\u05BB' && input.LA(1)<='\u05BD')||input.LA(1)=='\u05BF'||(input.LA(1)>='\u05C1' && input.LA(1)<='\u05C2')||input.LA(1)=='\u05C4'||(input.LA(1)>='\u05D0' && input.LA(1)<='\u05EA')||(input.LA(1)>='\u05F0' && input.LA(1)<='\u05F2')||(input.LA(1)>='\u0600' && input.LA(1)<='\u0603')||(input.LA(1)>='\u0610' && input.LA(1)<='\u0615')||(input.LA(1)>='\u0621' && input.LA(1)<='\u063A')||(input.LA(1)>='\u0640' && input.LA(1)<='\u0658')||(input.LA(1)>='\u0660' && input.LA(1)<='\u0669')||(input.LA(1)>='\u066E' && input.LA(1)<='\u06D3')||(input.LA(1)>='\u06D5' && input.LA(1)<='\u06DD')||(input.LA(1)>='\u06DF' && input.LA(1)<='\u06E8')||(input.LA(1)>='\u06EA' && input.LA(1)<='\u06FC')||input.LA(1)=='\u06FF'||(input.LA(1)>='\u070F' && input.LA(1)<='\u074A')||(input.LA(1)>='\u074D' && input.LA(1)<='\u074F')||(input.LA(1)>='\u0780' && input.LA(1)<='\u07B1')||(input.LA(1)>='\u0901' && input.LA(1)<='\u0939')||(input.LA(1)>='\u093C' && input.LA(1)<='\u094D')||(input.LA(1)>='\u0950' && input.LA(1)<='\u0954')||(input.LA(1)>='\u0958' && input.LA(1)<='\u0963')||(input.LA(1)>='\u0966' && input.LA(1)<='\u096F')||(input.LA(1)>='\u0981' && input.LA(1)<='\u0983')||(input.LA(1)>='\u0985' && input.LA(1)<='\u098C')||(input.LA(1)>='\u098F' && input.LA(1)<='\u0990')||(input.LA(1)>='\u0993' && input.LA(1)<='\u09A8')||(input.LA(1)>='\u09AA' && input.LA(1)<='\u09B0')||input.LA(1)=='\u09B2'||(input.LA(1)>='\u09B6' && input.LA(1)<='\u09B9')||(input.LA(1)>='\u09BC' && input.LA(1)<='\u09C4')||(input.LA(1)>='\u09C7' && input.LA(1)<='\u09C8')||(input.LA(1)>='\u09CB' && input.LA(1)<='\u09CD')||input.LA(1)=='\u09D7'||(input.LA(1)>='\u09DC' && input.LA(1)<='\u09DD')||(input.LA(1)>='\u09DF' && input.LA(1)<='\u09E3')||(input.LA(1)>='\u09E6' && input.LA(1)<='\u09F3')||(input.LA(1)>='\u0A01' && input.LA(1)<='\u0A03')||(input.LA(1)>='\u0A05' && input.LA(1)<='\u0A0A')||(input.LA(1)>='\u0A0F' && input.LA(1)<='\u0A10')||(input.LA(1)>='\u0A13' && input.LA(1)<='\u0A28')||(input.LA(1)>='\u0A2A' && input.LA(1)<='\u0A30')||(input.LA(1)>='\u0A32' && input.LA(1)<='\u0A33')||(input.LA(1)>='\u0A35' && input.LA(1)<='\u0A36')||(input.LA(1)>='\u0A38' && input.LA(1)<='\u0A39')||input.LA(1)=='\u0A3C'||(input.LA(1)>='\u0A3E' && input.LA(1)<='\u0A42')||(input.LA(1)>='\u0A47' && input.LA(1)<='\u0A48')||(input.LA(1)>='\u0A4B' && input.LA(1)<='\u0A4D')||(input.LA(1)>='\u0A59' && input.LA(1)<='\u0A5C')||input.LA(1)=='\u0A5E'||(input.LA(1)>='\u0A66' && input.LA(1)<='\u0A74')||(input.LA(1)>='\u0A81' && input.LA(1)<='\u0A83')||(input.LA(1)>='\u0A85' && input.LA(1)<='\u0A8D')||(input.LA(1)>='\u0A8F' && input.LA(1)<='\u0A91')||(input.LA(1)>='\u0A93' && input.LA(1)<='\u0AA8')||(input.LA(1)>='\u0AAA' && input.LA(1)<='\u0AB0')||(input.LA(1)>='\u0AB2' && input.LA(1)<='\u0AB3')||(input.LA(1)>='\u0AB5' && input.LA(1)<='\u0AB9')||(input.LA(1)>='\u0ABC' && input.LA(1)<='\u0AC5')||(input.LA(1)>='\u0AC7' && input.LA(1)<='\u0AC9')||(input.LA(1)>='\u0ACB' && input.LA(1)<='\u0ACD')||input.LA(1)=='\u0AD0'||(input.LA(1)>='\u0AE0' && input.LA(1)<='\u0AE3')||(input.LA(1)>='\u0AE6' && input.LA(1)<='\u0AEF')||input.LA(1)=='\u0AF1'||(input.LA(1)>='\u0B01' && input.LA(1)<='\u0B03')||(input.LA(1)>='\u0B05' && input.LA(1)<='\u0B0C')||(input.LA(1)>='\u0B0F' && input.LA(1)<='\u0B10')||(input.LA(1)>='\u0B13' && input.LA(1)<='\u0B28')||(input.LA(1)>='\u0B2A' && input.LA(1)<='\u0B30')||(input.LA(1)>='\u0B32' && input.LA(1)<='\u0B33')||(input.LA(1)>='\u0B35' && input.LA(1)<='\u0B39')||(input.LA(1)>='\u0B3C' && input.LA(1)<='\u0B43')||(input.LA(1)>='\u0B47' && input.LA(1)<='\u0B48')||(input.LA(1)>='\u0B4B' && input.LA(1)<='\u0B4D')||(input.LA(1)>='\u0B56' && input.LA(1)<='\u0B57')||(input.LA(1)>='\u0B5C' && input.LA(1)<='\u0B5D')||(input.LA(1)>='\u0B5F' && input.LA(1)<='\u0B61')||(input.LA(1)>='\u0B66' && input.LA(1)<='\u0B6F')||input.LA(1)=='\u0B71'||(input.LA(1)>='\u0B82' && input.LA(1)<='\u0B83')||(input.LA(1)>='\u0B85' && input.LA(1)<='\u0B8A')||(input.LA(1)>='\u0B8E' && input.LA(1)<='\u0B90')||(input.LA(1)>='\u0B92' && input.LA(1)<='\u0B95')||(input.LA(1)>='\u0B99' && input.LA(1)<='\u0B9A')||input.LA(1)=='\u0B9C'||(input.LA(1)>='\u0B9E' && input.LA(1)<='\u0B9F')||(input.LA(1)>='\u0BA3' && input.LA(1)<='\u0BA4')||(input.LA(1)>='\u0BA8' && input.LA(1)<='\u0BAA')||(input.LA(1)>='\u0BAE' && input.LA(1)<='\u0BB5')||(input.LA(1)>='\u0BB7' && input.LA(1)<='\u0BB9')||(input.LA(1)>='\u0BBE' && input.LA(1)<='\u0BC2')||(input.LA(1)>='\u0BC6' && input.LA(1)<='\u0BC8')||(input.LA(1)>='\u0BCA' && input.LA(1)<='\u0BCD')||input.LA(1)=='\u0BD7'||(input.LA(1)>='\u0BE7' && input.LA(1)<='\u0BEF')||input.LA(1)=='\u0BF9'||(input.LA(1)>='\u0C01' && input.LA(1)<='\u0C03')||(input.LA(1)>='\u0C05' && input.LA(1)<='\u0C0C')||(input.LA(1)>='\u0C0E' && input.LA(1)<='\u0C10')||(input.LA(1)>='\u0C12' && input.LA(1)<='\u0C28')||(input.LA(1)>='\u0C2A' && input.LA(1)<='\u0C33')||(input.LA(1)>='\u0C35' && input.LA(1)<='\u0C39')||(input.LA(1)>='\u0C3E' && input.LA(1)<='\u0C44')||(input.LA(1)>='\u0C46' && input.LA(1)<='\u0C48')||(input.LA(1)>='\u0C4A' && input.LA(1)<='\u0C4D')||(input.LA(1)>='\u0C55' && input.LA(1)<='\u0C56')||(input.LA(1)>='\u0C60' && input.LA(1)<='\u0C61')||(input.LA(1)>='\u0C66' && input.LA(1)<='\u0C6F')||(input.LA(1)>='\u0C82' && input.LA(1)<='\u0C83')||(input.LA(1)>='\u0C85' && input.LA(1)<='\u0C8C')||(input.LA(1)>='\u0C8E' && input.LA(1)<='\u0C90')||(input.LA(1)>='\u0C92' && input.LA(1)<='\u0CA8')||(input.LA(1)>='\u0CAA' && input.LA(1)<='\u0CB3')||(input.LA(1)>='\u0CB5' && input.LA(1)<='\u0CB9')||(input.LA(1)>='\u0CBC' && input.LA(1)<='\u0CC4')||(input.LA(1)>='\u0CC6' && input.LA(1)<='\u0CC8')||(input.LA(1)>='\u0CCA' && input.LA(1)<='\u0CCD')||(input.LA(1)>='\u0CD5' && input.LA(1)<='\u0CD6')||input.LA(1)=='\u0CDE'||(input.LA(1)>='\u0CE0' && input.LA(1)<='\u0CE1')||(input.LA(1)>='\u0CE6' && input.LA(1)<='\u0CEF')||(input.LA(1)>='\u0D02' && input.LA(1)<='\u0D03')||(input.LA(1)>='\u0D05' && input.LA(1)<='\u0D0C')||(input.LA(1)>='\u0D0E' && input.LA(1)<='\u0D10')||(input.LA(1)>='\u0D12' && input.LA(1)<='\u0D28')||(input.LA(1)>='\u0D2A' && input.LA(1)<='\u0D39')||(input.LA(1)>='\u0D3E' && input.LA(1)<='\u0D43')||(input.LA(1)>='\u0D46' && input.LA(1)<='\u0D48')||(input.LA(1)>='\u0D4A' && input.LA(1)<='\u0D4D')||input.LA(1)=='\u0D57'||(input.LA(1)>='\u0D60' && input.LA(1)<='\u0D61')||(input.LA(1)>='\u0D66' && input.LA(1)<='\u0D6F')||(input.LA(1)>='\u0D82' && input.LA(1)<='\u0D83')||(input.LA(1)>='\u0D85' && input.LA(1)<='\u0D96')||(input.LA(1)>='\u0D9A' && input.LA(1)<='\u0DB1')||(input.LA(1)>='\u0DB3' && input.LA(1)<='\u0DBB')||input.LA(1)=='\u0DBD'||(input.LA(1)>='\u0DC0' && input.LA(1)<='\u0DC6')||input.LA(1)=='\u0DCA'||(input.LA(1)>='\u0DCF' && input.LA(1)<='\u0DD4')||input.LA(1)=='\u0DD6'||(input.LA(1)>='\u0DD8' && input.LA(1)<='\u0DDF')||(input.LA(1)>='\u0DF2' && input.LA(1)<='\u0DF3')||(input.LA(1)>='\u0E01' && input.LA(1)<='\u0E3A')||(input.LA(1)>='\u0E3F' && input.LA(1)<='\u0E4E')||(input.LA(1)>='\u0E50' && input.LA(1)<='\u0E59')||(input.LA(1)>='\u0E81' && input.LA(1)<='\u0E82')||input.LA(1)=='\u0E84'||(input.LA(1)>='\u0E87' && input.LA(1)<='\u0E88')||input.LA(1)=='\u0E8A'||input.LA(1)=='\u0E8D'||(input.LA(1)>='\u0E94' && input.LA(1)<='\u0E97')||(input.LA(1)>='\u0E99' && input.LA(1)<='\u0E9F')||(input.LA(1)>='\u0EA1' && input.LA(1)<='\u0EA3')||input.LA(1)=='\u0EA5'||input.LA(1)=='\u0EA7'||(input.LA(1)>='\u0EAA' && input.LA(1)<='\u0EAB')||(input.LA(1)>='\u0EAD' && input.LA(1)<='\u0EB9')||(input.LA(1)>='\u0EBB' && input.LA(1)<='\u0EBD')||(input.LA(1)>='\u0EC0' && input.LA(1)<='\u0EC4')||input.LA(1)=='\u0EC6'||(input.LA(1)>='\u0EC8' && input.LA(1)<='\u0ECD')||(input.LA(1)>='\u0ED0' && input.LA(1)<='\u0ED9')||(input.LA(1)>='\u0EDC' && input.LA(1)<='\u0EDD')||input.LA(1)=='\u0F00'||(input.LA(1)>='\u0F18' && input.LA(1)<='\u0F19')||(input.LA(1)>='\u0F20' && input.LA(1)<='\u0F29')||input.LA(1)=='\u0F35'||input.LA(1)=='\u0F37'||input.LA(1)=='\u0F39'||(input.LA(1)>='\u0F3E' && input.LA(1)<='\u0F47')||(input.LA(1)>='\u0F49' && input.LA(1)<='\u0F6A')||(input.LA(1)>='\u0F71' && input.LA(1)<='\u0F84')||(input.LA(1)>='\u0F86' && input.LA(1)<='\u0F8B')||(input.LA(1)>='\u0F90' && input.LA(1)<='\u0F97')||(input.LA(1)>='\u0F99' && input.LA(1)<='\u0FBC')||input.LA(1)=='\u0FC6'||(input.LA(1)>='\u1000' && input.LA(1)<='\u1021')||(input.LA(1)>='\u1023' && input.LA(1)<='\u1027')||(input.LA(1)>='\u1029' && input.LA(1)<='\u102A')||(input.LA(1)>='\u102C' && input.LA(1)<='\u1032')||(input.LA(1)>='\u1036' && input.LA(1)<='\u1039')||(input.LA(1)>='\u1040' && input.LA(1)<='\u1049')||(input.LA(1)>='\u1050' && input.LA(1)<='\u1059')||(input.LA(1)>='\u10A0' && input.LA(1)<='\u10C5')||(input.LA(1)>='\u10D0' && input.LA(1)<='\u10F8')||(input.LA(1)>='\u1100' && input.LA(1)<='\u1159')||(input.LA(1)>='\u115F' && input.LA(1)<='\u11A2')||(input.LA(1)>='\u11A8' && input.LA(1)<='\u11F9')||(input.LA(1)>='\u1200' && input.LA(1)<='\u1206')||(input.LA(1)>='\u1208' && input.LA(1)<='\u1246')||input.LA(1)=='\u1248'||(input.LA(1)>='\u124A' && input.LA(1)<='\u124D')||(input.LA(1)>='\u1250' && input.LA(1)<='\u1256')||input.LA(1)=='\u1258'||(input.LA(1)>='\u125A' && input.LA(1)<='\u125D')||(input.LA(1)>='\u1260' && input.LA(1)<='\u1286')||input.LA(1)=='\u1288'||(input.LA(1)>='\u128A' && input.LA(1)<='\u128D')||(input.LA(1)>='\u1290' && input.LA(1)<='\u12AE')||input.LA(1)=='\u12B0'||(input.LA(1)>='\u12B2' && input.LA(1)<='\u12B5')||(input.LA(1)>='\u12B8' && input.LA(1)<='\u12BE')||input.LA(1)=='\u12C0'||(input.LA(1)>='\u12C2' && input.LA(1)<='\u12C5')||(input.LA(1)>='\u12C8' && input.LA(1)<='\u12CE')||(input.LA(1)>='\u12D0' && input.LA(1)<='\u12D6')||(input.LA(1)>='\u12D8' && input.LA(1)<='\u12EE')||(input.LA(1)>='\u12F0' && input.LA(1)<='\u130E')||input.LA(1)=='\u1310'||(input.LA(1)>='\u1312' && input.LA(1)<='\u1315')||(input.LA(1)>='\u1318' && input.LA(1)<='\u131E')||(input.LA(1)>='\u1320' && input.LA(1)<='\u1346')||(input.LA(1)>='\u1348' && input.LA(1)<='\u135A')||(input.LA(1)>='\u1369' && input.LA(1)<='\u1371')||(input.LA(1)>='\u13A0' && input.LA(1)<='\u13F4')||(input.LA(1)>='\u1401' && input.LA(1)<='\u166C')||(input.LA(1)>='\u166F' && input.LA(1)<='\u1676')||(input.LA(1)>='\u1681' && input.LA(1)<='\u169A')||(input.LA(1)>='\u16A0' && input.LA(1)<='\u16EA')||(input.LA(1)>='\u16EE' && input.LA(1)<='\u16F0')||(input.LA(1)>='\u1700' && input.LA(1)<='\u170C')||(input.LA(1)>='\u170E' && input.LA(1)<='\u1714')||(input.LA(1)>='\u1720' && input.LA(1)<='\u1734')||(input.LA(1)>='\u1740' && input.LA(1)<='\u1753')||(input.LA(1)>='\u1760' && input.LA(1)<='\u176C')||(input.LA(1)>='\u176E' && input.LA(1)<='\u1770')||(input.LA(1)>='\u1772' && input.LA(1)<='\u1773')||(input.LA(1)>='\u1780' && input.LA(1)<='\u17D3')||input.LA(1)=='\u17D7'||(input.LA(1)>='\u17DB' && input.LA(1)<='\u17DD')||(input.LA(1)>='\u17E0' && input.LA(1)<='\u17E9')||(input.LA(1)>='\u180B' && input.LA(1)<='\u180D')||(input.LA(1)>='\u1810' && input.LA(1)<='\u1819')||(input.LA(1)>='\u1820' && input.LA(1)<='\u1877')||(input.LA(1)>='\u1880' && input.LA(1)<='\u18A9')||(input.LA(1)>='\u1900' && input.LA(1)<='\u191C')||(input.LA(1)>='\u1920' && input.LA(1)<='\u192B')||(input.LA(1)>='\u1930' && input.LA(1)<='\u193B')||(input.LA(1)>='\u1946' && input.LA(1)<='\u196D')||(input.LA(1)>='\u1970' && input.LA(1)<='\u1974')||(input.LA(1)>='\u1D00' && input.LA(1)<='\u1D6B')||(input.LA(1)>='\u1E00' && input.LA(1)<='\u1E9B')||(input.LA(1)>='\u1EA0' && input.LA(1)<='\u1EF9')||(input.LA(1)>='\u1F00' && input.LA(1)<='\u1F15')||(input.LA(1)>='\u1F18' && input.LA(1)<='\u1F1D')||(input.LA(1)>='\u1F20' && input.LA(1)<='\u1F45')||(input.LA(1)>='\u1F48' && input.LA(1)<='\u1F4D')||(input.LA(1)>='\u1F50' && input.LA(1)<='\u1F57')||input.LA(1)=='\u1F59'||input.LA(1)=='\u1F5B'||input.LA(1)=='\u1F5D'||(input.LA(1)>='\u1F5F' && input.LA(1)<='\u1F7D')||(input.LA(1)>='\u1F80' && input.LA(1)<='\u1FB4')||(input.LA(1)>='\u1FB6' && input.LA(1)<='\u1FBC')||input.LA(1)=='\u1FBE'||(input.LA(1)>='\u1FC2' && input.LA(1)<='\u1FC4')||(input.LA(1)>='\u1FC6' && input.LA(1)<='\u1FCC')||(input.LA(1)>='\u1FD0' && input.LA(1)<='\u1FD3')||(input.LA(1)>='\u1FD6' && input.LA(1)<='\u1FDB')||(input.LA(1)>='\u1FE0' && input.LA(1)<='\u1FEC')||(input.LA(1)>='\u1FF2' && input.LA(1)<='\u1FF4')||(input.LA(1)>='\u1FF6' && input.LA(1)<='\u1FFC')||(input.LA(1)>='\u200C' && input.LA(1)<='\u200F')||(input.LA(1)>='\u202A' && input.LA(1)<='\u202E')||(input.LA(1)>='\u203F' && input.LA(1)<='\u2040')||input.LA(1)=='\u2054'||(input.LA(1)>='\u2060' && input.LA(1)<='\u2063')||(input.LA(1)>='\u206A' && input.LA(1)<='\u206F')||input.LA(1)=='\u2071'||input.LA(1)=='\u207F'||(input.LA(1)>='\u20A0' && input.LA(1)<='\u20B1')||(input.LA(1)>='\u20D0' && input.LA(1)<='\u20DC')||input.LA(1)=='\u20E1'||(input.LA(1)>='\u20E5' && input.LA(1)<='\u20EA')||input.LA(1)=='\u2102'||input.LA(1)=='\u2107'||(input.LA(1)>='\u210A' && input.LA(1)<='\u2113')||input.LA(1)=='\u2115'||(input.LA(1)>='\u2119' && input.LA(1)<='\u211D')||input.LA(1)=='\u2124'||input.LA(1)=='\u2126'||input.LA(1)=='\u2128'||(input.LA(1)>='\u212A' && input.LA(1)<='\u212D')||(input.LA(1)>='\u212F' && input.LA(1)<='\u2131')||(input.LA(1)>='\u2133' && input.LA(1)<='\u2139')||(input.LA(1)>='\u213D' && input.LA(1)<='\u213F')||(input.LA(1)>='\u2145' && input.LA(1)<='\u2149')||(input.LA(1)>='\u2160' && input.LA(1)<='\u2183')||(input.LA(1)>='\u3001' && input.LA(1)<='\u3002')||(input.LA(1)>='\u3005' && input.LA(1)<='\u3007')||(input.LA(1)>='\u3021' && input.LA(1)<='\u302F')||(input.LA(1)>='\u3031' && input.LA(1)<='\u3035')||(input.LA(1)>='\u3038' && input.LA(1)<='\u303C')||(input.LA(1)>='\u3041' && input.LA(1)<='\u3096')||(input.LA(1)>='\u3099' && input.LA(1)<='\u309A')||(input.LA(1)>='\u309D' && input.LA(1)<='\u309F')||(input.LA(1)>='\u30A1' && input.LA(1)<='\u30FF')||(input.LA(1)>='\u3105' && input.LA(1)<='\u312C')||(input.LA(1)>='\u3131' && input.LA(1)<='\u318E')||(input.LA(1)>='\u31A0' && input.LA(1)<='\u31B7')||(input.LA(1)>='\u31F0' && input.LA(1)<='\u31FF')||(input.LA(1)>='\u3400' && input.LA(1)<='\u4DB5')||(input.LA(1)>='\u4E00' && input.LA(1)<='\u9FA5')||(input.LA(1)>='\uA000' && input.LA(1)<='\uA48C')||(input.LA(1)>='\uAC00' && input.LA(1)<='\uD7A3')||(input.LA(1)>='\uF900' && input.LA(1)<='\uFA2D')||(input.LA(1)>='\uFA30' && input.LA(1)<='\uFA6A')||(input.LA(1)>='\uFB00' && input.LA(1)<='\uFB06')||(input.LA(1)>='\uFB13' && input.LA(1)<='\uFB17')||(input.LA(1)>='\uFB1D' && input.LA(1)<='\uFB28')||(input.LA(1)>='\uFB2A' && input.LA(1)<='\uFB36')||(input.LA(1)>='\uFB38' && input.LA(1)<='\uFB3C')||input.LA(1)=='\uFB3E'||(input.LA(1)>='\uFB40' && input.LA(1)<='\uFB41')||(input.LA(1)>='\uFB43' && input.LA(1)<='\uFB44')||(input.LA(1)>='\uFB46' && input.LA(1)<='\uFBB1')||(input.LA(1)>='\uFBD3' && input.LA(1)<='\uFD3D')||(input.LA(1)>='\uFD50' && input.LA(1)<='\uFD8F')||(input.LA(1)>='\uFD92' && input.LA(1)<='\uFDC7')||(input.LA(1)>='\uFDF0' && input.LA(1)<='\uFDFC')||(input.LA(1)>='\uFE00' && input.LA(1)<='\uFE0F')||(input.LA(1)>='\uFE20' && input.LA(1)<='\uFE23')||(input.LA(1)>='\uFE33' && input.LA(1)<='\uFE34')||(input.LA(1)>='\uFE4D' && input.LA(1)<='\uFE4F')||input.LA(1)=='\uFE69'||(input.LA(1)>='\uFE70' && input.LA(1)<='\uFE74')||(input.LA(1)>='\uFE76' && input.LA(1)<='\uFEFC')||input.LA(1)=='\uFEFF'||input.LA(1)=='\uFF04'||(input.LA(1)>='\uFF08' && input.LA(1)<='\uFF09')||(input.LA(1)>='\uFF10' && input.LA(1)<='\uFF1A')||(input.LA(1)>='\uFF21' && input.LA(1)<='\uFF3A')||input.LA(1)=='\uFF3F'||(input.LA(1)>='\uFF41' && input.LA(1)<='\uFF5A')||(input.LA(1)>='\uFF65' && input.LA(1)<='\uFFBE')||(input.LA(1)>='\uFFC2' && input.LA(1)<='\uFFC7')||(input.LA(1)>='\uFFCA' && input.LA(1)<='\uFFCF')||(input.LA(1)>='\uFFD2' && input.LA(1)<='\uFFD7')||(input.LA(1)>='\uFFDA' && input.LA(1)<='\uFFDC')||(input.LA(1)>='\uFFE0' && input.LA(1)<='\uFFE1')||(input.LA(1)>='\uFFE5' && input.LA(1)<='\uFFE6')||(input.LA(1)>='\uFFF9' && input.LA(1)<='\uFFFB') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_IDENTIFIER_PART"
+
+ // $ANTLR start "RULE_IDENTIFIER_START"
+ public final void mRULE_IDENTIFIER_START() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:26650:32: ( ( RULE_IDENTIFIER_START_IMPL | RULE_IDENTIFIER_PART_IMPL ) )
+ // InternalRBAModel.g:26650:34: ( RULE_IDENTIFIER_START_IMPL | RULE_IDENTIFIER_PART_IMPL )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='\b')||(input.LA(1)>='\u000E' && input.LA(1)<='\u001B')||input.LA(1)=='$'||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z')||(input.LA(1)>='\u007F' && input.LA(1)<='\u009F')||(input.LA(1)>='\u00A2' && input.LA(1)<='\u00A5')||input.LA(1)=='\u00AA'||input.LA(1)=='\u00AD'||input.LA(1)=='\u00B5'||input.LA(1)=='\u00BA'||(input.LA(1)>='\u00C0' && input.LA(1)<='\u00D6')||(input.LA(1)>='\u00D8' && input.LA(1)<='\u00F6')||(input.LA(1)>='\u00F8' && input.LA(1)<='\u0236')||(input.LA(1)>='\u0250' && input.LA(1)<='\u02C1')||(input.LA(1)>='\u02C6' && input.LA(1)<='\u02D1')||(input.LA(1)>='\u02E0' && input.LA(1)<='\u02E4')||input.LA(1)=='\u02EE'||(input.LA(1)>='\u0300' && input.LA(1)<='\u0357')||(input.LA(1)>='\u035D' && input.LA(1)<='\u036F')||input.LA(1)=='\u037A'||input.LA(1)=='\u0386'||(input.LA(1)>='\u0388' && input.LA(1)<='\u038A')||input.LA(1)=='\u038C'||(input.LA(1)>='\u038E' && input.LA(1)<='\u03A1')||(input.LA(1)>='\u03A3' && input.LA(1)<='\u03CE')||(input.LA(1)>='\u03D0' && input.LA(1)<='\u03F5')||(input.LA(1)>='\u03F7' && input.LA(1)<='\u03FB')||(input.LA(1)>='\u0400' && input.LA(1)<='\u0481')||(input.LA(1)>='\u0483' && input.LA(1)<='\u0486')||(input.LA(1)>='\u048A' && input.LA(1)<='\u04CE')||(input.LA(1)>='\u04D0' && input.LA(1)<='\u04F5')||(input.LA(1)>='\u04F8' && input.LA(1)<='\u04F9')||(input.LA(1)>='\u0500' && input.LA(1)<='\u050F')||(input.LA(1)>='\u0531' && input.LA(1)<='\u0556')||input.LA(1)=='\u0559'||(input.LA(1)>='\u0561' && input.LA(1)<='\u0587')||(input.LA(1)>='\u0591' && input.LA(1)<='\u05A1')||(input.LA(1)>='\u05A3' && input.LA(1)<='\u05B9')||(input.LA(1)>='\u05BB' && input.LA(1)<='\u05BD')||input.LA(1)=='\u05BF'||(input.LA(1)>='\u05C1' && input.LA(1)<='\u05C2')||input.LA(1)=='\u05C4'||(input.LA(1)>='\u05D0' && input.LA(1)<='\u05EA')||(input.LA(1)>='\u05F0' && input.LA(1)<='\u05F2')||(input.LA(1)>='\u0600' && input.LA(1)<='\u0603')||(input.LA(1)>='\u0610' && input.LA(1)<='\u0615')||(input.LA(1)>='\u0621' && input.LA(1)<='\u063A')||(input.LA(1)>='\u0640' && input.LA(1)<='\u0658')||(input.LA(1)>='\u0660' && input.LA(1)<='\u0669')||(input.LA(1)>='\u066E' && input.LA(1)<='\u06D3')||(input.LA(1)>='\u06D5' && input.LA(1)<='\u06DD')||(input.LA(1)>='\u06DF' && input.LA(1)<='\u06E8')||(input.LA(1)>='\u06EA' && input.LA(1)<='\u06FC')||input.LA(1)=='\u06FF'||(input.LA(1)>='\u070F' && input.LA(1)<='\u074A')||(input.LA(1)>='\u074D' && input.LA(1)<='\u074F')||(input.LA(1)>='\u0780' && input.LA(1)<='\u07B1')||(input.LA(1)>='\u0901' && input.LA(1)<='\u0939')||(input.LA(1)>='\u093C' && input.LA(1)<='\u094D')||(input.LA(1)>='\u0950' && input.LA(1)<='\u0954')||(input.LA(1)>='\u0958' && input.LA(1)<='\u0963')||(input.LA(1)>='\u0966' && input.LA(1)<='\u096F')||(input.LA(1)>='\u0981' && input.LA(1)<='\u0983')||(input.LA(1)>='\u0985' && input.LA(1)<='\u098C')||(input.LA(1)>='\u098F' && input.LA(1)<='\u0990')||(input.LA(1)>='\u0993' && input.LA(1)<='\u09A8')||(input.LA(1)>='\u09AA' && input.LA(1)<='\u09B0')||input.LA(1)=='\u09B2'||(input.LA(1)>='\u09B6' && input.LA(1)<='\u09B9')||(input.LA(1)>='\u09BC' && input.LA(1)<='\u09C4')||(input.LA(1)>='\u09C7' && input.LA(1)<='\u09C8')||(input.LA(1)>='\u09CB' && input.LA(1)<='\u09CD')||input.LA(1)=='\u09D7'||(input.LA(1)>='\u09DC' && input.LA(1)<='\u09DD')||(input.LA(1)>='\u09DF' && input.LA(1)<='\u09E3')||(input.LA(1)>='\u09E6' && input.LA(1)<='\u09F3')||(input.LA(1)>='\u0A01' && input.LA(1)<='\u0A03')||(input.LA(1)>='\u0A05' && input.LA(1)<='\u0A0A')||(input.LA(1)>='\u0A0F' && input.LA(1)<='\u0A10')||(input.LA(1)>='\u0A13' && input.LA(1)<='\u0A28')||(input.LA(1)>='\u0A2A' && input.LA(1)<='\u0A30')||(input.LA(1)>='\u0A32' && input.LA(1)<='\u0A33')||(input.LA(1)>='\u0A35' && input.LA(1)<='\u0A36')||(input.LA(1)>='\u0A38' && input.LA(1)<='\u0A39')||input.LA(1)=='\u0A3C'||(input.LA(1)>='\u0A3E' && input.LA(1)<='\u0A42')||(input.LA(1)>='\u0A47' && input.LA(1)<='\u0A48')||(input.LA(1)>='\u0A4B' && input.LA(1)<='\u0A4D')||(input.LA(1)>='\u0A59' && input.LA(1)<='\u0A5C')||input.LA(1)=='\u0A5E'||(input.LA(1)>='\u0A66' && input.LA(1)<='\u0A74')||(input.LA(1)>='\u0A81' && input.LA(1)<='\u0A83')||(input.LA(1)>='\u0A85' && input.LA(1)<='\u0A8D')||(input.LA(1)>='\u0A8F' && input.LA(1)<='\u0A91')||(input.LA(1)>='\u0A93' && input.LA(1)<='\u0AA8')||(input.LA(1)>='\u0AAA' && input.LA(1)<='\u0AB0')||(input.LA(1)>='\u0AB2' && input.LA(1)<='\u0AB3')||(input.LA(1)>='\u0AB5' && input.LA(1)<='\u0AB9')||(input.LA(1)>='\u0ABC' && input.LA(1)<='\u0AC5')||(input.LA(1)>='\u0AC7' && input.LA(1)<='\u0AC9')||(input.LA(1)>='\u0ACB' && input.LA(1)<='\u0ACD')||input.LA(1)=='\u0AD0'||(input.LA(1)>='\u0AE0' && input.LA(1)<='\u0AE3')||(input.LA(1)>='\u0AE6' && input.LA(1)<='\u0AEF')||input.LA(1)=='\u0AF1'||(input.LA(1)>='\u0B01' && input.LA(1)<='\u0B03')||(input.LA(1)>='\u0B05' && input.LA(1)<='\u0B0C')||(input.LA(1)>='\u0B0F' && input.LA(1)<='\u0B10')||(input.LA(1)>='\u0B13' && input.LA(1)<='\u0B28')||(input.LA(1)>='\u0B2A' && input.LA(1)<='\u0B30')||(input.LA(1)>='\u0B32' && input.LA(1)<='\u0B33')||(input.LA(1)>='\u0B35' && input.LA(1)<='\u0B39')||(input.LA(1)>='\u0B3C' && input.LA(1)<='\u0B43')||(input.LA(1)>='\u0B47' && input.LA(1)<='\u0B48')||(input.LA(1)>='\u0B4B' && input.LA(1)<='\u0B4D')||(input.LA(1)>='\u0B56' && input.LA(1)<='\u0B57')||(input.LA(1)>='\u0B5C' && input.LA(1)<='\u0B5D')||(input.LA(1)>='\u0B5F' && input.LA(1)<='\u0B61')||(input.LA(1)>='\u0B66' && input.LA(1)<='\u0B6F')||input.LA(1)=='\u0B71'||(input.LA(1)>='\u0B82' && input.LA(1)<='\u0B83')||(input.LA(1)>='\u0B85' && input.LA(1)<='\u0B8A')||(input.LA(1)>='\u0B8E' && input.LA(1)<='\u0B90')||(input.LA(1)>='\u0B92' && input.LA(1)<='\u0B95')||(input.LA(1)>='\u0B99' && input.LA(1)<='\u0B9A')||input.LA(1)=='\u0B9C'||(input.LA(1)>='\u0B9E' && input.LA(1)<='\u0B9F')||(input.LA(1)>='\u0BA3' && input.LA(1)<='\u0BA4')||(input.LA(1)>='\u0BA8' && input.LA(1)<='\u0BAA')||(input.LA(1)>='\u0BAE' && input.LA(1)<='\u0BB5')||(input.LA(1)>='\u0BB7' && input.LA(1)<='\u0BB9')||(input.LA(1)>='\u0BBE' && input.LA(1)<='\u0BC2')||(input.LA(1)>='\u0BC6' && input.LA(1)<='\u0BC8')||(input.LA(1)>='\u0BCA' && input.LA(1)<='\u0BCD')||input.LA(1)=='\u0BD7'||(input.LA(1)>='\u0BE7' && input.LA(1)<='\u0BEF')||input.LA(1)=='\u0BF9'||(input.LA(1)>='\u0C01' && input.LA(1)<='\u0C03')||(input.LA(1)>='\u0C05' && input.LA(1)<='\u0C0C')||(input.LA(1)>='\u0C0E' && input.LA(1)<='\u0C10')||(input.LA(1)>='\u0C12' && input.LA(1)<='\u0C28')||(input.LA(1)>='\u0C2A' && input.LA(1)<='\u0C33')||(input.LA(1)>='\u0C35' && input.LA(1)<='\u0C39')||(input.LA(1)>='\u0C3E' && input.LA(1)<='\u0C44')||(input.LA(1)>='\u0C46' && input.LA(1)<='\u0C48')||(input.LA(1)>='\u0C4A' && input.LA(1)<='\u0C4D')||(input.LA(1)>='\u0C55' && input.LA(1)<='\u0C56')||(input.LA(1)>='\u0C60' && input.LA(1)<='\u0C61')||(input.LA(1)>='\u0C66' && input.LA(1)<='\u0C6F')||(input.LA(1)>='\u0C82' && input.LA(1)<='\u0C83')||(input.LA(1)>='\u0C85' && input.LA(1)<='\u0C8C')||(input.LA(1)>='\u0C8E' && input.LA(1)<='\u0C90')||(input.LA(1)>='\u0C92' && input.LA(1)<='\u0CA8')||(input.LA(1)>='\u0CAA' && input.LA(1)<='\u0CB3')||(input.LA(1)>='\u0CB5' && input.LA(1)<='\u0CB9')||(input.LA(1)>='\u0CBC' && input.LA(1)<='\u0CC4')||(input.LA(1)>='\u0CC6' && input.LA(1)<='\u0CC8')||(input.LA(1)>='\u0CCA' && input.LA(1)<='\u0CCD')||(input.LA(1)>='\u0CD5' && input.LA(1)<='\u0CD6')||input.LA(1)=='\u0CDE'||(input.LA(1)>='\u0CE0' && input.LA(1)<='\u0CE1')||(input.LA(1)>='\u0CE6' && input.LA(1)<='\u0CEF')||(input.LA(1)>='\u0D02' && input.LA(1)<='\u0D03')||(input.LA(1)>='\u0D05' && input.LA(1)<='\u0D0C')||(input.LA(1)>='\u0D0E' && input.LA(1)<='\u0D10')||(input.LA(1)>='\u0D12' && input.LA(1)<='\u0D28')||(input.LA(1)>='\u0D2A' && input.LA(1)<='\u0D39')||(input.LA(1)>='\u0D3E' && input.LA(1)<='\u0D43')||(input.LA(1)>='\u0D46' && input.LA(1)<='\u0D48')||(input.LA(1)>='\u0D4A' && input.LA(1)<='\u0D4D')||input.LA(1)=='\u0D57'||(input.LA(1)>='\u0D60' && input.LA(1)<='\u0D61')||(input.LA(1)>='\u0D66' && input.LA(1)<='\u0D6F')||(input.LA(1)>='\u0D82' && input.LA(1)<='\u0D83')||(input.LA(1)>='\u0D85' && input.LA(1)<='\u0D96')||(input.LA(1)>='\u0D9A' && input.LA(1)<='\u0DB1')||(input.LA(1)>='\u0DB3' && input.LA(1)<='\u0DBB')||input.LA(1)=='\u0DBD'||(input.LA(1)>='\u0DC0' && input.LA(1)<='\u0DC6')||input.LA(1)=='\u0DCA'||(input.LA(1)>='\u0DCF' && input.LA(1)<='\u0DD4')||input.LA(1)=='\u0DD6'||(input.LA(1)>='\u0DD8' && input.LA(1)<='\u0DDF')||(input.LA(1)>='\u0DF2' && input.LA(1)<='\u0DF3')||(input.LA(1)>='\u0E01' && input.LA(1)<='\u0E3A')||(input.LA(1)>='\u0E3F' && input.LA(1)<='\u0E4E')||(input.LA(1)>='\u0E50' && input.LA(1)<='\u0E59')||(input.LA(1)>='\u0E81' && input.LA(1)<='\u0E82')||input.LA(1)=='\u0E84'||(input.LA(1)>='\u0E87' && input.LA(1)<='\u0E88')||input.LA(1)=='\u0E8A'||input.LA(1)=='\u0E8D'||(input.LA(1)>='\u0E94' && input.LA(1)<='\u0E97')||(input.LA(1)>='\u0E99' && input.LA(1)<='\u0E9F')||(input.LA(1)>='\u0EA1' && input.LA(1)<='\u0EA3')||input.LA(1)=='\u0EA5'||input.LA(1)=='\u0EA7'||(input.LA(1)>='\u0EAA' && input.LA(1)<='\u0EAB')||(input.LA(1)>='\u0EAD' && input.LA(1)<='\u0EB9')||(input.LA(1)>='\u0EBB' && input.LA(1)<='\u0EBD')||(input.LA(1)>='\u0EC0' && input.LA(1)<='\u0EC4')||input.LA(1)=='\u0EC6'||(input.LA(1)>='\u0EC8' && input.LA(1)<='\u0ECD')||(input.LA(1)>='\u0ED0' && input.LA(1)<='\u0ED9')||(input.LA(1)>='\u0EDC' && input.LA(1)<='\u0EDD')||input.LA(1)=='\u0F00'||(input.LA(1)>='\u0F18' && input.LA(1)<='\u0F19')||(input.LA(1)>='\u0F20' && input.LA(1)<='\u0F29')||input.LA(1)=='\u0F35'||input.LA(1)=='\u0F37'||input.LA(1)=='\u0F39'||(input.LA(1)>='\u0F3E' && input.LA(1)<='\u0F47')||(input.LA(1)>='\u0F49' && input.LA(1)<='\u0F6A')||(input.LA(1)>='\u0F71' && input.LA(1)<='\u0F84')||(input.LA(1)>='\u0F86' && input.LA(1)<='\u0F8B')||(input.LA(1)>='\u0F90' && input.LA(1)<='\u0F97')||(input.LA(1)>='\u0F99' && input.LA(1)<='\u0FBC')||input.LA(1)=='\u0FC6'||(input.LA(1)>='\u1000' && input.LA(1)<='\u1021')||(input.LA(1)>='\u1023' && input.LA(1)<='\u1027')||(input.LA(1)>='\u1029' && input.LA(1)<='\u102A')||(input.LA(1)>='\u102C' && input.LA(1)<='\u1032')||(input.LA(1)>='\u1036' && input.LA(1)<='\u1039')||(input.LA(1)>='\u1040' && input.LA(1)<='\u1049')||(input.LA(1)>='\u1050' && input.LA(1)<='\u1059')||(input.LA(1)>='\u10A0' && input.LA(1)<='\u10C5')||(input.LA(1)>='\u10D0' && input.LA(1)<='\u10F8')||(input.LA(1)>='\u1100' && input.LA(1)<='\u1159')||(input.LA(1)>='\u115F' && input.LA(1)<='\u11A2')||(input.LA(1)>='\u11A8' && input.LA(1)<='\u11F9')||(input.LA(1)>='\u1200' && input.LA(1)<='\u1206')||(input.LA(1)>='\u1208' && input.LA(1)<='\u1246')||input.LA(1)=='\u1248'||(input.LA(1)>='\u124A' && input.LA(1)<='\u124D')||(input.LA(1)>='\u1250' && input.LA(1)<='\u1256')||input.LA(1)=='\u1258'||(input.LA(1)>='\u125A' && input.LA(1)<='\u125D')||(input.LA(1)>='\u1260' && input.LA(1)<='\u1286')||input.LA(1)=='\u1288'||(input.LA(1)>='\u128A' && input.LA(1)<='\u128D')||(input.LA(1)>='\u1290' && input.LA(1)<='\u12AE')||input.LA(1)=='\u12B0'||(input.LA(1)>='\u12B2' && input.LA(1)<='\u12B5')||(input.LA(1)>='\u12B8' && input.LA(1)<='\u12BE')||input.LA(1)=='\u12C0'||(input.LA(1)>='\u12C2' && input.LA(1)<='\u12C5')||(input.LA(1)>='\u12C8' && input.LA(1)<='\u12CE')||(input.LA(1)>='\u12D0' && input.LA(1)<='\u12D6')||(input.LA(1)>='\u12D8' && input.LA(1)<='\u12EE')||(input.LA(1)>='\u12F0' && input.LA(1)<='\u130E')||input.LA(1)=='\u1310'||(input.LA(1)>='\u1312' && input.LA(1)<='\u1315')||(input.LA(1)>='\u1318' && input.LA(1)<='\u131E')||(input.LA(1)>='\u1320' && input.LA(1)<='\u1346')||(input.LA(1)>='\u1348' && input.LA(1)<='\u135A')||(input.LA(1)>='\u1369' && input.LA(1)<='\u1371')||(input.LA(1)>='\u13A0' && input.LA(1)<='\u13F4')||(input.LA(1)>='\u1401' && input.LA(1)<='\u166C')||(input.LA(1)>='\u166F' && input.LA(1)<='\u1676')||(input.LA(1)>='\u1681' && input.LA(1)<='\u169A')||(input.LA(1)>='\u16A0' && input.LA(1)<='\u16EA')||(input.LA(1)>='\u16EE' && input.LA(1)<='\u16F0')||(input.LA(1)>='\u1700' && input.LA(1)<='\u170C')||(input.LA(1)>='\u170E' && input.LA(1)<='\u1714')||(input.LA(1)>='\u1720' && input.LA(1)<='\u1734')||(input.LA(1)>='\u1740' && input.LA(1)<='\u1753')||(input.LA(1)>='\u1760' && input.LA(1)<='\u176C')||(input.LA(1)>='\u176E' && input.LA(1)<='\u1770')||(input.LA(1)>='\u1772' && input.LA(1)<='\u1773')||(input.LA(1)>='\u1780' && input.LA(1)<='\u17D3')||input.LA(1)=='\u17D7'||(input.LA(1)>='\u17DB' && input.LA(1)<='\u17DD')||(input.LA(1)>='\u17E0' && input.LA(1)<='\u17E9')||(input.LA(1)>='\u180B' && input.LA(1)<='\u180D')||(input.LA(1)>='\u1810' && input.LA(1)<='\u1819')||(input.LA(1)>='\u1820' && input.LA(1)<='\u1877')||(input.LA(1)>='\u1880' && input.LA(1)<='\u18A9')||(input.LA(1)>='\u1900' && input.LA(1)<='\u191C')||(input.LA(1)>='\u1920' && input.LA(1)<='\u192B')||(input.LA(1)>='\u1930' && input.LA(1)<='\u193B')||(input.LA(1)>='\u1946' && input.LA(1)<='\u196D')||(input.LA(1)>='\u1970' && input.LA(1)<='\u1974')||(input.LA(1)>='\u1D00' && input.LA(1)<='\u1D6B')||(input.LA(1)>='\u1E00' && input.LA(1)<='\u1E9B')||(input.LA(1)>='\u1EA0' && input.LA(1)<='\u1EF9')||(input.LA(1)>='\u1F00' && input.LA(1)<='\u1F15')||(input.LA(1)>='\u1F18' && input.LA(1)<='\u1F1D')||(input.LA(1)>='\u1F20' && input.LA(1)<='\u1F45')||(input.LA(1)>='\u1F48' && input.LA(1)<='\u1F4D')||(input.LA(1)>='\u1F50' && input.LA(1)<='\u1F57')||input.LA(1)=='\u1F59'||input.LA(1)=='\u1F5B'||input.LA(1)=='\u1F5D'||(input.LA(1)>='\u1F5F' && input.LA(1)<='\u1F7D')||(input.LA(1)>='\u1F80' && input.LA(1)<='\u1FB4')||(input.LA(1)>='\u1FB6' && input.LA(1)<='\u1FBC')||input.LA(1)=='\u1FBE'||(input.LA(1)>='\u1FC2' && input.LA(1)<='\u1FC4')||(input.LA(1)>='\u1FC6' && input.LA(1)<='\u1FCC')||(input.LA(1)>='\u1FD0' && input.LA(1)<='\u1FD3')||(input.LA(1)>='\u1FD6' && input.LA(1)<='\u1FDB')||(input.LA(1)>='\u1FE0' && input.LA(1)<='\u1FEC')||(input.LA(1)>='\u1FF2' && input.LA(1)<='\u1FF4')||(input.LA(1)>='\u1FF6' && input.LA(1)<='\u1FFC')||(input.LA(1)>='\u200C' && input.LA(1)<='\u200F')||(input.LA(1)>='\u202A' && input.LA(1)<='\u202E')||(input.LA(1)>='\u203F' && input.LA(1)<='\u2040')||input.LA(1)=='\u2054'||(input.LA(1)>='\u2060' && input.LA(1)<='\u2063')||(input.LA(1)>='\u206A' && input.LA(1)<='\u206F')||input.LA(1)=='\u2071'||input.LA(1)=='\u207F'||(input.LA(1)>='\u20A0' && input.LA(1)<='\u20B1')||(input.LA(1)>='\u20D0' && input.LA(1)<='\u20DC')||input.LA(1)=='\u20E1'||(input.LA(1)>='\u20E5' && input.LA(1)<='\u20EA')||input.LA(1)=='\u2102'||input.LA(1)=='\u2107'||(input.LA(1)>='\u210A' && input.LA(1)<='\u2113')||input.LA(1)=='\u2115'||(input.LA(1)>='\u2119' && input.LA(1)<='\u211D')||input.LA(1)=='\u2124'||input.LA(1)=='\u2126'||input.LA(1)=='\u2128'||(input.LA(1)>='\u212A' && input.LA(1)<='\u212D')||(input.LA(1)>='\u212F' && input.LA(1)<='\u2131')||(input.LA(1)>='\u2133' && input.LA(1)<='\u2139')||(input.LA(1)>='\u213D' && input.LA(1)<='\u213F')||(input.LA(1)>='\u2145' && input.LA(1)<='\u2149')||(input.LA(1)>='\u2160' && input.LA(1)<='\u2183')||(input.LA(1)>='\u3001' && input.LA(1)<='\u3002')||(input.LA(1)>='\u3005' && input.LA(1)<='\u3007')||(input.LA(1)>='\u3021' && input.LA(1)<='\u302F')||(input.LA(1)>='\u3031' && input.LA(1)<='\u3035')||(input.LA(1)>='\u3038' && input.LA(1)<='\u303C')||(input.LA(1)>='\u3041' && input.LA(1)<='\u3096')||(input.LA(1)>='\u3099' && input.LA(1)<='\u309A')||(input.LA(1)>='\u309D' && input.LA(1)<='\u309F')||(input.LA(1)>='\u30A1' && input.LA(1)<='\u30FF')||(input.LA(1)>='\u3105' && input.LA(1)<='\u312C')||(input.LA(1)>='\u3131' && input.LA(1)<='\u318E')||(input.LA(1)>='\u31A0' && input.LA(1)<='\u31B7')||(input.LA(1)>='\u31F0' && input.LA(1)<='\u31FF')||(input.LA(1)>='\u3400' && input.LA(1)<='\u4DB5')||(input.LA(1)>='\u4E00' && input.LA(1)<='\u9FA5')||(input.LA(1)>='\uA000' && input.LA(1)<='\uA48C')||(input.LA(1)>='\uAC00' && input.LA(1)<='\uD7A3')||(input.LA(1)>='\uF900' && input.LA(1)<='\uFA2D')||(input.LA(1)>='\uFA30' && input.LA(1)<='\uFA6A')||(input.LA(1)>='\uFB00' && input.LA(1)<='\uFB06')||(input.LA(1)>='\uFB13' && input.LA(1)<='\uFB17')||(input.LA(1)>='\uFB1D' && input.LA(1)<='\uFB28')||(input.LA(1)>='\uFB2A' && input.LA(1)<='\uFB36')||(input.LA(1)>='\uFB38' && input.LA(1)<='\uFB3C')||input.LA(1)=='\uFB3E'||(input.LA(1)>='\uFB40' && input.LA(1)<='\uFB41')||(input.LA(1)>='\uFB43' && input.LA(1)<='\uFB44')||(input.LA(1)>='\uFB46' && input.LA(1)<='\uFBB1')||(input.LA(1)>='\uFBD3' && input.LA(1)<='\uFD3D')||(input.LA(1)>='\uFD50' && input.LA(1)<='\uFD8F')||(input.LA(1)>='\uFD92' && input.LA(1)<='\uFDC7')||(input.LA(1)>='\uFDF0' && input.LA(1)<='\uFDFC')||(input.LA(1)>='\uFE00' && input.LA(1)<='\uFE0F')||(input.LA(1)>='\uFE20' && input.LA(1)<='\uFE23')||(input.LA(1)>='\uFE33' && input.LA(1)<='\uFE34')||(input.LA(1)>='\uFE4D' && input.LA(1)<='\uFE4F')||input.LA(1)=='\uFE69'||(input.LA(1)>='\uFE70' && input.LA(1)<='\uFE74')||(input.LA(1)>='\uFE76' && input.LA(1)<='\uFEFC')||input.LA(1)=='\uFEFF'||input.LA(1)=='\uFF04'||(input.LA(1)>='\uFF08' && input.LA(1)<='\uFF09')||(input.LA(1)>='\uFF10' && input.LA(1)<='\uFF1A')||(input.LA(1)>='\uFF21' && input.LA(1)<='\uFF3A')||input.LA(1)=='\uFF3F'||(input.LA(1)>='\uFF41' && input.LA(1)<='\uFF5A')||(input.LA(1)>='\uFF65' && input.LA(1)<='\uFFBE')||(input.LA(1)>='\uFFC2' && input.LA(1)<='\uFFC7')||(input.LA(1)>='\uFFCA' && input.LA(1)<='\uFFCF')||(input.LA(1)>='\uFFD2' && input.LA(1)<='\uFFD7')||(input.LA(1)>='\uFFDA' && input.LA(1)<='\uFFDC')||(input.LA(1)>='\uFFE0' && input.LA(1)<='\uFFE1')||(input.LA(1)>='\uFFE5' && input.LA(1)<='\uFFE6')||(input.LA(1)>='\uFFF9' && input.LA(1)<='\uFFFB') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_IDENTIFIER_START"
+
+ // $ANTLR start "RULE_WS"
+ public final void mRULE_WS() throws RecognitionException {
+ try {
+ int _type = RULE_WS;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:26652:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+ // InternalRBAModel.g:26652:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+ {
+ // InternalRBAModel.g:26652:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+ int cnt7=0;
+ loop7:
+ do {
+ int alt7=2;
+ int LA7_0 = input.LA(1);
+
+ if ( ((LA7_0>='\t' && LA7_0<='\n')||LA7_0=='\r'||LA7_0==' ') ) {
+ alt7=1;
+ }
+
+
+ switch (alt7) {
+ case 1 :
+ // InternalRBAModel.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 ( cnt7 >= 1 ) break loop7;
+ EarlyExitException eee =
+ new EarlyExitException(7, input);
+ throw eee;
+ }
+ cnt7++;
+ } while (true);
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_WS"
+
+ // $ANTLR start "RULE_INT"
+ public final void mRULE_INT() throws RecognitionException {
+ try {
+ int _type = RULE_INT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:26654:10: ( ( '0' .. '9' )+ )
+ // InternalRBAModel.g:26654:12: ( '0' .. '9' )+
+ {
+ // InternalRBAModel.g:26654:12: ( '0' .. '9' )+
+ int cnt8=0;
+ loop8:
+ do {
+ int alt8=2;
+ int LA8_0 = input.LA(1);
+
+ if ( ((LA8_0>='0' && LA8_0<='9')) ) {
+ alt8=1;
+ }
+
+
+ switch (alt8) {
+ case 1 :
+ // InternalRBAModel.g:26654:13: '0' .. '9'
+ {
+ matchRange('0','9');
+
+ }
+ break;
+
+ default :
+ if ( cnt8 >= 1 ) break loop8;
+ EarlyExitException eee =
+ new EarlyExitException(8, input);
+ throw eee;
+ }
+ cnt8++;
+ } while (true);
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_INT"
+
+ // $ANTLR start "RULE_STRING"
+ public final void mRULE_STRING() throws RecognitionException {
+ try {
+ int _type = RULE_STRING;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:26656:13: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' | '\\'' | '\\n' | '\\r' ) ) )* '\"' )
+ // InternalRBAModel.g:26656:15: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' | '\\'' | '\\n' | '\\r' ) ) )* '\"'
+ {
+ match('\"');
+ // InternalRBAModel.g:26656:19: ( '\\\\' . | ~ ( ( '\\\\' | '\"' | '\\'' | '\\n' | '\\r' ) ) )*
+ loop9:
+ do {
+ int alt9=3;
+ int LA9_0 = input.LA(1);
+
+ if ( (LA9_0=='\\') ) {
+ alt9=1;
+ }
+ else if ( ((LA9_0>='\u0000' && LA9_0<='\t')||(LA9_0>='\u000B' && LA9_0<='\f')||(LA9_0>='\u000E' && LA9_0<='!')||(LA9_0>='#' && LA9_0<='&')||(LA9_0>='(' && LA9_0<='[')||(LA9_0>=']' && LA9_0<='\uFFFF')) ) {
+ alt9=2;
+ }
+
+
+ switch (alt9) {
+ case 1 :
+ // InternalRBAModel.g:26656:20: '\\\\' .
+ {
+ match('\\');
+ matchAny();
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:26656:27: ~ ( ( '\\\\' | '\"' | '\\'' | '\\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)>='#' && 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 loop9;
+ }
+ } while (true);
+
+ match('\"');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_STRING"
+
+ // $ANTLR start "RULE_RICH_STRING"
+ public final void mRULE_RICH_STRING() throws RecognitionException {
+ try {
+ int _type = RULE_RICH_STRING;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:26658:18: ( '@BEGIN@' ( options {greedy=false; } : . )* '@END@' )
+ // InternalRBAModel.g:26658:20: '@BEGIN@' ( options {greedy=false; } : . )* '@END@'
+ {
+ match("@BEGIN@");
+
+ // InternalRBAModel.g:26658:30: ( options {greedy=false; } : . )*
+ loop10:
+ do {
+ int alt10=2;
+ int LA10_0 = input.LA(1);
+
+ if ( (LA10_0=='@') ) {
+ int LA10_1 = input.LA(2);
+
+ if ( (LA10_1=='E') ) {
+ int LA10_3 = input.LA(3);
+
+ if ( (LA10_3=='N') ) {
+ int LA10_4 = input.LA(4);
+
+ if ( (LA10_4=='D') ) {
+ int LA10_5 = input.LA(5);
+
+ if ( (LA10_5=='@') ) {
+ alt10=2;
+ }
+ else if ( ((LA10_5>='\u0000' && LA10_5<='?')||(LA10_5>='A' && LA10_5<='\uFFFF')) ) {
+ alt10=1;
+ }
+
+
+ }
+ else if ( ((LA10_4>='\u0000' && LA10_4<='C')||(LA10_4>='E' && LA10_4<='\uFFFF')) ) {
+ alt10=1;
+ }
+
+
+ }
+ else if ( ((LA10_3>='\u0000' && LA10_3<='M')||(LA10_3>='O' && LA10_3<='\uFFFF')) ) {
+ alt10=1;
+ }
+
+
+ }
+ else if ( ((LA10_1>='\u0000' && LA10_1<='D')||(LA10_1>='F' && LA10_1<='\uFFFF')) ) {
+ alt10=1;
+ }
+
+
+ }
+ else if ( ((LA10_0>='\u0000' && LA10_0<='?')||(LA10_0>='A' && LA10_0<='\uFFFF')) ) {
+ alt10=1;
+ }
+
+
+ switch (alt10) {
+ case 1 :
+ // InternalRBAModel.g:26658:58: .
+ {
+ matchAny();
+
+ }
+ break;
+
+ default :
+ break loop10;
+ }
+ } while (true);
+
+ match("@END@");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_RICH_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;
+ // InternalRBAModel.g:26660:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+ // InternalRBAModel.g:26660:19: '/*' ( options {greedy=false; } : . )* '*/'
+ {
+ match("/*");
+
+ // InternalRBAModel.g:26660:24: ( options {greedy=false; } : . )*
+ loop11:
+ do {
+ int alt11=2;
+ int LA11_0 = input.LA(1);
+
+ if ( (LA11_0=='*') ) {
+ int LA11_1 = input.LA(2);
+
+ if ( (LA11_1=='/') ) {
+ alt11=2;
+ }
+ else if ( ((LA11_1>='\u0000' && LA11_1<='.')||(LA11_1>='0' && LA11_1<='\uFFFF')) ) {
+ alt11=1;
+ }
+
+
+ }
+ else if ( ((LA11_0>='\u0000' && LA11_0<=')')||(LA11_0>='+' && LA11_0<='\uFFFF')) ) {
+ alt11=1;
+ }
+
+
+ switch (alt11) {
+ case 1 :
+ // InternalRBAModel.g:26660:52: .
+ {
+ matchAny();
+
+ }
+ break;
+
+ default :
+ break loop11;
+ }
+ } 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;
+ // InternalRBAModel.g:26662:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+ // InternalRBAModel.g:26662:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+ {
+ match("//");
+
+ // InternalRBAModel.g:26662:24: (~ ( ( '\\n' | '\\r' ) ) )*
+ loop12:
+ do {
+ int alt12=2;
+ int LA12_0 = input.LA(1);
+
+ if ( ((LA12_0>='\u0000' && LA12_0<='\t')||(LA12_0>='\u000B' && LA12_0<='\f')||(LA12_0>='\u000E' && LA12_0<='\uFFFF')) ) {
+ alt12=1;
+ }
+
+
+ switch (alt12) {
+ case 1 :
+ // InternalRBAModel.g:26662: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)<='\uFFFF') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop12;
+ }
+ } while (true);
+
+ // InternalRBAModel.g:26662:40: ( ( '\\r' )? '\\n' )?
+ int alt14=2;
+ int LA14_0 = input.LA(1);
+
+ if ( (LA14_0=='\n'||LA14_0=='\r') ) {
+ alt14=1;
+ }
+ switch (alt14) {
+ case 1 :
+ // InternalRBAModel.g:26662:41: ( '\\r' )? '\\n'
+ {
+ // InternalRBAModel.g:26662:41: ( '\\r' )?
+ int alt13=2;
+ int LA13_0 = input.LA(1);
+
+ if ( (LA13_0=='\r') ) {
+ alt13=1;
+ }
+ switch (alt13) {
+ case 1 :
+ // InternalRBAModel.g:26662:41: '\\r'
+ {
+ match('\r');
+
+ }
+ break;
+
+ }
+
+ match('\n');
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_SL_COMMENT"
+
+ public void mTokens() throws RecognitionException {
+ // InternalRBAModel.g:1:8: ( 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 | T__114 | T__115 | T__116 | T__117 | T__118 | T__119 | T__120 | T__121 | T__122 | T__123 | T__124 | T__125 | T__126 | T__127 | T__128 | T__129 | T__130 | T__131 | T__132 | T__133 | T__134 | T__135 | T__136 | T__137 | T__138 | T__139 | T__140 | T__141 | T__142 | T__143 | T__144 | T__145 | T__146 | T__147 | T__148 | T__149 | T__150 | T__151 | T__152 | T__153 | T__154 | T__155 | T__156 | T__157 | T__158 | T__159 | T__160 | T__161 | T__162 | T__163 | T__164 | T__165 | T__166 | T__167 | RULE_ID | RULE_WS | RULE_INT | RULE_STRING | RULE_RICH_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT )
+ int alt15=157;
+ alt15 = dfa15.predict(input);
+ switch (alt15) {
+ case 1 :
+ // InternalRBAModel.g:1:10: T__18
+ {
+ mT__18();
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:1:16: T__19
+ {
+ mT__19();
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:1:22: T__20
+ {
+ mT__20();
+
+ }
+ break;
+ case 4 :
+ // InternalRBAModel.g:1:28: T__21
+ {
+ mT__21();
+
+ }
+ break;
+ case 5 :
+ // InternalRBAModel.g:1:34: T__22
+ {
+ mT__22();
+
+ }
+ break;
+ case 6 :
+ // InternalRBAModel.g:1:40: T__23
+ {
+ mT__23();
+
+ }
+ break;
+ case 7 :
+ // InternalRBAModel.g:1:46: T__24
+ {
+ mT__24();
+
+ }
+ break;
+ case 8 :
+ // InternalRBAModel.g:1:52: T__25
+ {
+ mT__25();
+
+ }
+ break;
+ case 9 :
+ // InternalRBAModel.g:1:58: T__26
+ {
+ mT__26();
+
+ }
+ break;
+ case 10 :
+ // InternalRBAModel.g:1:64: T__27
+ {
+ mT__27();
+
+ }
+ break;
+ case 11 :
+ // InternalRBAModel.g:1:70: T__28
+ {
+ mT__28();
+
+ }
+ break;
+ case 12 :
+ // InternalRBAModel.g:1:76: T__29
+ {
+ mT__29();
+
+ }
+ break;
+ case 13 :
+ // InternalRBAModel.g:1:82: T__30
+ {
+ mT__30();
+
+ }
+ break;
+ case 14 :
+ // InternalRBAModel.g:1:88: T__31
+ {
+ mT__31();
+
+ }
+ break;
+ case 15 :
+ // InternalRBAModel.g:1:94: T__32
+ {
+ mT__32();
+
+ }
+ break;
+ case 16 :
+ // InternalRBAModel.g:1:100: T__33
+ {
+ mT__33();
+
+ }
+ break;
+ case 17 :
+ // InternalRBAModel.g:1:106: T__34
+ {
+ mT__34();
+
+ }
+ break;
+ case 18 :
+ // InternalRBAModel.g:1:112: T__35
+ {
+ mT__35();
+
+ }
+ break;
+ case 19 :
+ // InternalRBAModel.g:1:118: T__36
+ {
+ mT__36();
+
+ }
+ break;
+ case 20 :
+ // InternalRBAModel.g:1:124: T__37
+ {
+ mT__37();
+
+ }
+ break;
+ case 21 :
+ // InternalRBAModel.g:1:130: T__38
+ {
+ mT__38();
+
+ }
+ break;
+ case 22 :
+ // InternalRBAModel.g:1:136: T__39
+ {
+ mT__39();
+
+ }
+ break;
+ case 23 :
+ // InternalRBAModel.g:1:142: T__40
+ {
+ mT__40();
+
+ }
+ break;
+ case 24 :
+ // InternalRBAModel.g:1:148: T__41
+ {
+ mT__41();
+
+ }
+ break;
+ case 25 :
+ // InternalRBAModel.g:1:154: T__42
+ {
+ mT__42();
+
+ }
+ break;
+ case 26 :
+ // InternalRBAModel.g:1:160: T__43
+ {
+ mT__43();
+
+ }
+ break;
+ case 27 :
+ // InternalRBAModel.g:1:166: T__44
+ {
+ mT__44();
+
+ }
+ break;
+ case 28 :
+ // InternalRBAModel.g:1:172: T__45
+ {
+ mT__45();
+
+ }
+ break;
+ case 29 :
+ // InternalRBAModel.g:1:178: T__46
+ {
+ mT__46();
+
+ }
+ break;
+ case 30 :
+ // InternalRBAModel.g:1:184: T__47
+ {
+ mT__47();
+
+ }
+ break;
+ case 31 :
+ // InternalRBAModel.g:1:190: T__48
+ {
+ mT__48();
+
+ }
+ break;
+ case 32 :
+ // InternalRBAModel.g:1:196: T__49
+ {
+ mT__49();
+
+ }
+ break;
+ case 33 :
+ // InternalRBAModel.g:1:202: T__50
+ {
+ mT__50();
+
+ }
+ break;
+ case 34 :
+ // InternalRBAModel.g:1:208: T__51
+ {
+ mT__51();
+
+ }
+ break;
+ case 35 :
+ // InternalRBAModel.g:1:214: T__52
+ {
+ mT__52();
+
+ }
+ break;
+ case 36 :
+ // InternalRBAModel.g:1:220: T__53
+ {
+ mT__53();
+
+ }
+ break;
+ case 37 :
+ // InternalRBAModel.g:1:226: T__54
+ {
+ mT__54();
+
+ }
+ break;
+ case 38 :
+ // InternalRBAModel.g:1:232: T__55
+ {
+ mT__55();
+
+ }
+ break;
+ case 39 :
+ // InternalRBAModel.g:1:238: T__56
+ {
+ mT__56();
+
+ }
+ break;
+ case 40 :
+ // InternalRBAModel.g:1:244: T__57
+ {
+ mT__57();
+
+ }
+ break;
+ case 41 :
+ // InternalRBAModel.g:1:250: T__58
+ {
+ mT__58();
+
+ }
+ break;
+ case 42 :
+ // InternalRBAModel.g:1:256: T__59
+ {
+ mT__59();
+
+ }
+ break;
+ case 43 :
+ // InternalRBAModel.g:1:262: T__60
+ {
+ mT__60();
+
+ }
+ break;
+ case 44 :
+ // InternalRBAModel.g:1:268: T__61
+ {
+ mT__61();
+
+ }
+ break;
+ case 45 :
+ // InternalRBAModel.g:1:274: T__62
+ {
+ mT__62();
+
+ }
+ break;
+ case 46 :
+ // InternalRBAModel.g:1:280: T__63
+ {
+ mT__63();
+
+ }
+ break;
+ case 47 :
+ // InternalRBAModel.g:1:286: T__64
+ {
+ mT__64();
+
+ }
+ break;
+ case 48 :
+ // InternalRBAModel.g:1:292: T__65
+ {
+ mT__65();
+
+ }
+ break;
+ case 49 :
+ // InternalRBAModel.g:1:298: T__66
+ {
+ mT__66();
+
+ }
+ break;
+ case 50 :
+ // InternalRBAModel.g:1:304: T__67
+ {
+ mT__67();
+
+ }
+ break;
+ case 51 :
+ // InternalRBAModel.g:1:310: T__68
+ {
+ mT__68();
+
+ }
+ break;
+ case 52 :
+ // InternalRBAModel.g:1:316: T__69
+ {
+ mT__69();
+
+ }
+ break;
+ case 53 :
+ // InternalRBAModel.g:1:322: T__70
+ {
+ mT__70();
+
+ }
+ break;
+ case 54 :
+ // InternalRBAModel.g:1:328: T__71
+ {
+ mT__71();
+
+ }
+ break;
+ case 55 :
+ // InternalRBAModel.g:1:334: T__72
+ {
+ mT__72();
+
+ }
+ break;
+ case 56 :
+ // InternalRBAModel.g:1:340: T__73
+ {
+ mT__73();
+
+ }
+ break;
+ case 57 :
+ // InternalRBAModel.g:1:346: T__74
+ {
+ mT__74();
+
+ }
+ break;
+ case 58 :
+ // InternalRBAModel.g:1:352: T__75
+ {
+ mT__75();
+
+ }
+ break;
+ case 59 :
+ // InternalRBAModel.g:1:358: T__76
+ {
+ mT__76();
+
+ }
+ break;
+ case 60 :
+ // InternalRBAModel.g:1:364: T__77
+ {
+ mT__77();
+
+ }
+ break;
+ case 61 :
+ // InternalRBAModel.g:1:370: T__78
+ {
+ mT__78();
+
+ }
+ break;
+ case 62 :
+ // InternalRBAModel.g:1:376: T__79
+ {
+ mT__79();
+
+ }
+ break;
+ case 63 :
+ // InternalRBAModel.g:1:382: T__80
+ {
+ mT__80();
+
+ }
+ break;
+ case 64 :
+ // InternalRBAModel.g:1:388: T__81
+ {
+ mT__81();
+
+ }
+ break;
+ case 65 :
+ // InternalRBAModel.g:1:394: T__82
+ {
+ mT__82();
+
+ }
+ break;
+ case 66 :
+ // InternalRBAModel.g:1:400: T__83
+ {
+ mT__83();
+
+ }
+ break;
+ case 67 :
+ // InternalRBAModel.g:1:406: T__84
+ {
+ mT__84();
+
+ }
+ break;
+ case 68 :
+ // InternalRBAModel.g:1:412: T__85
+ {
+ mT__85();
+
+ }
+ break;
+ case 69 :
+ // InternalRBAModel.g:1:418: T__86
+ {
+ mT__86();
+
+ }
+ break;
+ case 70 :
+ // InternalRBAModel.g:1:424: T__87
+ {
+ mT__87();
+
+ }
+ break;
+ case 71 :
+ // InternalRBAModel.g:1:430: T__88
+ {
+ mT__88();
+
+ }
+ break;
+ case 72 :
+ // InternalRBAModel.g:1:436: T__89
+ {
+ mT__89();
+
+ }
+ break;
+ case 73 :
+ // InternalRBAModel.g:1:442: T__90
+ {
+ mT__90();
+
+ }
+ break;
+ case 74 :
+ // InternalRBAModel.g:1:448: T__91
+ {
+ mT__91();
+
+ }
+ break;
+ case 75 :
+ // InternalRBAModel.g:1:454: T__92
+ {
+ mT__92();
+
+ }
+ break;
+ case 76 :
+ // InternalRBAModel.g:1:460: T__93
+ {
+ mT__93();
+
+ }
+ break;
+ case 77 :
+ // InternalRBAModel.g:1:466: T__94
+ {
+ mT__94();
+
+ }
+ break;
+ case 78 :
+ // InternalRBAModel.g:1:472: T__95
+ {
+ mT__95();
+
+ }
+ break;
+ case 79 :
+ // InternalRBAModel.g:1:478: T__96
+ {
+ mT__96();
+
+ }
+ break;
+ case 80 :
+ // InternalRBAModel.g:1:484: T__97
+ {
+ mT__97();
+
+ }
+ break;
+ case 81 :
+ // InternalRBAModel.g:1:490: T__98
+ {
+ mT__98();
+
+ }
+ break;
+ case 82 :
+ // InternalRBAModel.g:1:496: T__99
+ {
+ mT__99();
+
+ }
+ break;
+ case 83 :
+ // InternalRBAModel.g:1:502: T__100
+ {
+ mT__100();
+
+ }
+ break;
+ case 84 :
+ // InternalRBAModel.g:1:509: T__101
+ {
+ mT__101();
+
+ }
+ break;
+ case 85 :
+ // InternalRBAModel.g:1:516: T__102
+ {
+ mT__102();
+
+ }
+ break;
+ case 86 :
+ // InternalRBAModel.g:1:523: T__103
+ {
+ mT__103();
+
+ }
+ break;
+ case 87 :
+ // InternalRBAModel.g:1:530: T__104
+ {
+ mT__104();
+
+ }
+ break;
+ case 88 :
+ // InternalRBAModel.g:1:537: T__105
+ {
+ mT__105();
+
+ }
+ break;
+ case 89 :
+ // InternalRBAModel.g:1:544: T__106
+ {
+ mT__106();
+
+ }
+ break;
+ case 90 :
+ // InternalRBAModel.g:1:551: T__107
+ {
+ mT__107();
+
+ }
+ break;
+ case 91 :
+ // InternalRBAModel.g:1:558: T__108
+ {
+ mT__108();
+
+ }
+ break;
+ case 92 :
+ // InternalRBAModel.g:1:565: T__109
+ {
+ mT__109();
+
+ }
+ break;
+ case 93 :
+ // InternalRBAModel.g:1:572: T__110
+ {
+ mT__110();
+
+ }
+ break;
+ case 94 :
+ // InternalRBAModel.g:1:579: T__111
+ {
+ mT__111();
+
+ }
+ break;
+ case 95 :
+ // InternalRBAModel.g:1:586: T__112
+ {
+ mT__112();
+
+ }
+ break;
+ case 96 :
+ // InternalRBAModel.g:1:593: T__113
+ {
+ mT__113();
+
+ }
+ break;
+ case 97 :
+ // InternalRBAModel.g:1:600: T__114
+ {
+ mT__114();
+
+ }
+ break;
+ case 98 :
+ // InternalRBAModel.g:1:607: T__115
+ {
+ mT__115();
+
+ }
+ break;
+ case 99 :
+ // InternalRBAModel.g:1:614: T__116
+ {
+ mT__116();
+
+ }
+ break;
+ case 100 :
+ // InternalRBAModel.g:1:621: T__117
+ {
+ mT__117();
+
+ }
+ break;
+ case 101 :
+ // InternalRBAModel.g:1:628: T__118
+ {
+ mT__118();
+
+ }
+ break;
+ case 102 :
+ // InternalRBAModel.g:1:635: T__119
+ {
+ mT__119();
+
+ }
+ break;
+ case 103 :
+ // InternalRBAModel.g:1:642: T__120
+ {
+ mT__120();
+
+ }
+ break;
+ case 104 :
+ // InternalRBAModel.g:1:649: T__121
+ {
+ mT__121();
+
+ }
+ break;
+ case 105 :
+ // InternalRBAModel.g:1:656: T__122
+ {
+ mT__122();
+
+ }
+ break;
+ case 106 :
+ // InternalRBAModel.g:1:663: T__123
+ {
+ mT__123();
+
+ }
+ break;
+ case 107 :
+ // InternalRBAModel.g:1:670: T__124
+ {
+ mT__124();
+
+ }
+ break;
+ case 108 :
+ // InternalRBAModel.g:1:677: T__125
+ {
+ mT__125();
+
+ }
+ break;
+ case 109 :
+ // InternalRBAModel.g:1:684: T__126
+ {
+ mT__126();
+
+ }
+ break;
+ case 110 :
+ // InternalRBAModel.g:1:691: T__127
+ {
+ mT__127();
+
+ }
+ break;
+ case 111 :
+ // InternalRBAModel.g:1:698: T__128
+ {
+ mT__128();
+
+ }
+ break;
+ case 112 :
+ // InternalRBAModel.g:1:705: T__129
+ {
+ mT__129();
+
+ }
+ break;
+ case 113 :
+ // InternalRBAModel.g:1:712: T__130
+ {
+ mT__130();
+
+ }
+ break;
+ case 114 :
+ // InternalRBAModel.g:1:719: T__131
+ {
+ mT__131();
+
+ }
+ break;
+ case 115 :
+ // InternalRBAModel.g:1:726: T__132
+ {
+ mT__132();
+
+ }
+ break;
+ case 116 :
+ // InternalRBAModel.g:1:733: T__133
+ {
+ mT__133();
+
+ }
+ break;
+ case 117 :
+ // InternalRBAModel.g:1:740: T__134
+ {
+ mT__134();
+
+ }
+ break;
+ case 118 :
+ // InternalRBAModel.g:1:747: T__135
+ {
+ mT__135();
+
+ }
+ break;
+ case 119 :
+ // InternalRBAModel.g:1:754: T__136
+ {
+ mT__136();
+
+ }
+ break;
+ case 120 :
+ // InternalRBAModel.g:1:761: T__137
+ {
+ mT__137();
+
+ }
+ break;
+ case 121 :
+ // InternalRBAModel.g:1:768: T__138
+ {
+ mT__138();
+
+ }
+ break;
+ case 122 :
+ // InternalRBAModel.g:1:775: T__139
+ {
+ mT__139();
+
+ }
+ break;
+ case 123 :
+ // InternalRBAModel.g:1:782: T__140
+ {
+ mT__140();
+
+ }
+ break;
+ case 124 :
+ // InternalRBAModel.g:1:789: T__141
+ {
+ mT__141();
+
+ }
+ break;
+ case 125 :
+ // InternalRBAModel.g:1:796: T__142
+ {
+ mT__142();
+
+ }
+ break;
+ case 126 :
+ // InternalRBAModel.g:1:803: T__143
+ {
+ mT__143();
+
+ }
+ break;
+ case 127 :
+ // InternalRBAModel.g:1:810: T__144
+ {
+ mT__144();
+
+ }
+ break;
+ case 128 :
+ // InternalRBAModel.g:1:817: T__145
+ {
+ mT__145();
+
+ }
+ break;
+ case 129 :
+ // InternalRBAModel.g:1:824: T__146
+ {
+ mT__146();
+
+ }
+ break;
+ case 130 :
+ // InternalRBAModel.g:1:831: T__147
+ {
+ mT__147();
+
+ }
+ break;
+ case 131 :
+ // InternalRBAModel.g:1:838: T__148
+ {
+ mT__148();
+
+ }
+ break;
+ case 132 :
+ // InternalRBAModel.g:1:845: T__149
+ {
+ mT__149();
+
+ }
+ break;
+ case 133 :
+ // InternalRBAModel.g:1:852: T__150
+ {
+ mT__150();
+
+ }
+ break;
+ case 134 :
+ // InternalRBAModel.g:1:859: T__151
+ {
+ mT__151();
+
+ }
+ break;
+ case 135 :
+ // InternalRBAModel.g:1:866: T__152
+ {
+ mT__152();
+
+ }
+ break;
+ case 136 :
+ // InternalRBAModel.g:1:873: T__153
+ {
+ mT__153();
+
+ }
+ break;
+ case 137 :
+ // InternalRBAModel.g:1:880: T__154
+ {
+ mT__154();
+
+ }
+ break;
+ case 138 :
+ // InternalRBAModel.g:1:887: T__155
+ {
+ mT__155();
+
+ }
+ break;
+ case 139 :
+ // InternalRBAModel.g:1:894: T__156
+ {
+ mT__156();
+
+ }
+ break;
+ case 140 :
+ // InternalRBAModel.g:1:901: T__157
+ {
+ mT__157();
+
+ }
+ break;
+ case 141 :
+ // InternalRBAModel.g:1:908: T__158
+ {
+ mT__158();
+
+ }
+ break;
+ case 142 :
+ // InternalRBAModel.g:1:915: T__159
+ {
+ mT__159();
+
+ }
+ break;
+ case 143 :
+ // InternalRBAModel.g:1:922: T__160
+ {
+ mT__160();
+
+ }
+ break;
+ case 144 :
+ // InternalRBAModel.g:1:929: T__161
+ {
+ mT__161();
+
+ }
+ break;
+ case 145 :
+ // InternalRBAModel.g:1:936: T__162
+ {
+ mT__162();
+
+ }
+ break;
+ case 146 :
+ // InternalRBAModel.g:1:943: T__163
+ {
+ mT__163();
+
+ }
+ break;
+ case 147 :
+ // InternalRBAModel.g:1:950: T__164
+ {
+ mT__164();
+
+ }
+ break;
+ case 148 :
+ // InternalRBAModel.g:1:957: T__165
+ {
+ mT__165();
+
+ }
+ break;
+ case 149 :
+ // InternalRBAModel.g:1:964: T__166
+ {
+ mT__166();
+
+ }
+ break;
+ case 150 :
+ // InternalRBAModel.g:1:971: T__167
+ {
+ mT__167();
+
+ }
+ break;
+ case 151 :
+ // InternalRBAModel.g:1:978: RULE_ID
+ {
+ mRULE_ID();
+
+ }
+ break;
+ case 152 :
+ // InternalRBAModel.g:1:986: RULE_WS
+ {
+ mRULE_WS();
+
+ }
+ break;
+ case 153 :
+ // InternalRBAModel.g:1:994: RULE_INT
+ {
+ mRULE_INT();
+
+ }
+ break;
+ case 154 :
+ // InternalRBAModel.g:1:1003: RULE_STRING
+ {
+ mRULE_STRING();
+
+ }
+ break;
+ case 155 :
+ // InternalRBAModel.g:1:1015: RULE_RICH_STRING
+ {
+ mRULE_RICH_STRING();
+
+ }
+ break;
+ case 156 :
+ // InternalRBAModel.g:1:1032: RULE_ML_COMMENT
+ {
+ mRULE_ML_COMMENT();
+
+ }
+ break;
+ case 157 :
+ // InternalRBAModel.g:1:1048: RULE_SL_COMMENT
+ {
+ mRULE_SL_COMMENT();
+
+ }
+ break;
+
+ }
+
+ }
+
+
+ protected DFA15 dfa15 = new DFA15(this);
+ static final String DFA15_eotS =
+ "\2\uffff\1\101\1\103\1\106\1\110\2\71\1\117\30\71\6\uffff\1\u008a\1\uffff\2\71\2\uffff\5\71\1\u0096\4\71\1\uffff\1\71\20\uffff\1\u00a2\4\71\2\uffff\71\71\2\uffff\5\71\2\uffff\3\71\2\uffff\5\71\1\u00f8\3\71\3\uffff\1\71\1\u00fd\2\71\1\u0100\13\71\1\u0110\17\71\1\u0121\1\u0122\51\71\1\u014c\11\71\1\uffff\4\71\1\uffff\1\u015b\1\71\1\uffff\1\71\1\u0161\15\71\1\uffff\15\71\1\u017d\2\71\2\uffff\1\71\1\u0182\3\71\1\u0186\10\71\1\u018f\1\u0190\6\71\1\uffff\15\71\1\u01a4\4\71\1\uffff\3\71\1\u01ac\5\71\1\u01b2\4\71\1\uffff\5\71\1\uffff\33\71\1\uffff\4\71\1\uffff\2\71\1\u01dd\1\uffff\1\71\1\u01df\6\71\2\uffff\1\71\1\u01e7\21\71\1\uffff\6\71\2\uffff\5\71\1\uffff\2\71\1\u0208\22\71\1\u021b\16\71\1\u022b\1\71\1\u022d\3\71\1\uffff\1\71\1\uffff\3\71\1\uffff\3\71\1\uffff\27\71\1\uffff\6\71\1\u0257\1\71\1\uffff\1\u0259\4\71\1\uffff\7\71\1\u0265\4\71\1\uffff\14\71\1\uffff\2\71\1\uffff\1\71\1\uffff\1\u027c\10\71\1\uffff\1\u0285\1\71\1\u0287\7\71\1\u028f\1\u0290\14\71\2\uffff\5\71\1\uffff\1\71\1\uffff\5\71\1\u02aa\3\71\1\u02ae\1\71\1\uffff\3\71\1\u02b3\21\71\2\uffff\6\71\1\uffff\1\71\1\uffff\1\71\1\uffff\3\71\1\u02d0\3\71\2\uffff\14\71\1\uffff\7\71\1\u02e7\1\71\1\u02e9\2\71\1\uffff\3\71\1\uffff\1\u02ef\1\71\1\u02f3\1\71\1\uffff\27\71\1\uffff\4\71\1\uffff\4\71\1\u0315\13\71\1\u0321\1\u0322\4\71\1\uffff\1\71\1\uffff\5\71\1\uffff\1\u032d\2\71\1\uffff\20\71\1\u0340\2\71\1\u0343\15\71\1\uffff\2\71\1\u0353\2\71\1\u0356\2\71\1\u0359\1\u035a\3\uffff\3\71\1\uffff\2\71\1\u0361\2\71\1\u0365\1\uffff\10\71\1\u036f\11\71\1\uffff\2\71\1\uffff\1\71\1\u037d\1\71\1\uffff\4\71\1\u0383\1\u0384\5\71\1\uffff\2\71\1\uffff\2\71\2\uffff\6\71\1\uffff\1\u0394\2\71\1\uffff\3\71\1\u039c\1\u039d\1\u039e\1\uffff\2\71\1\uffff\4\71\1\uffff\5\71\1\u03ab\2\71\1\uffff\5\71\2\uffff\3\71\1\u03b6\1\u03b7\3\71\1\u03bb\5\71\1\u03c1\1\uffff\1\u03c2\1\u03c3\5\71\3\uffff\14\71\1\uffff\12\71\2\uffff\1\u03df\1\u03e0\1\u03e1\1\uffff\5\71\3\uffff\2\71\1\u03e9\3\71\1\u03ed\1\71\1\uffff\6\71\1\uffff\1\71\1\u03f6\1\u03f7\1\u03f8\7\71\3\uffff\6\71\1\u0406\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\1\u040c\3\71\1\u0410\3\uffff\3\71\1\u0414\6\71\1\u041b\1\71\1\u041d\1\uffff\2\71\1\u0420\2\71\1\uffff\1\71\1\u0424\1\u0425\1\uffff\1\71\1\u0427\1\71\1\uffff\5\71\1\u042e\1\uffff\1\u042f\1\uffff\2\71\1\uffff\1\71\1\u0433\1\71\2\uffff\1\71\1\uffff\3\71\1\u0439\1\u043a\1\u043b\2\uffff\1\u043c\1\71\2\uffff\1\u043e\4\71\4\uffff\1\u0443\1\uffff\1\71\1\u0445\2\71\1\uffff\1\71\1\uffff\10\71\1\u0451\2\71\1\uffff\1\71\1\u0455\1\u0456\2\uffff";
+ static final String DFA15_eofS =
+ "\u0457\uffff";
+ static final String DFA15_minS =
+ "\1\0\1\uffff\2\75\1\74\1\76\1\122\1\114\1\75\1\145\1\155\1\157\1\143\1\145\1\165\1\141\1\145\1\141\1\157\1\124\1\145\1\141\1\162\2\141\1\105\1\111\1\101\1\122\1\111\2\105\1\117\6\uffff\1\160\1\uffff\1\165\1\141\2\uffff\1\151\2\72\1\157\1\110\1\52\1\101\1\151\1\106\1\114\1\uffff\1\141\5\uffff\1\52\12\uffff\1\0\1\146\1\104\1\145\1\114\2\uffff\1\164\1\157\1\101\1\160\1\164\1\156\1\154\1\164\1\142\1\164\2\163\1\164\1\163\1\151\1\141\1\172\1\154\1\142\1\170\1\156\1\144\1\156\1\165\1\141\1\172\1\101\2\145\1\162\1\163\1\154\1\162\1\151\1\165\1\151\1\162\1\154\1\106\1\137\1\163\1\122\1\162\1\170\1\123\1\106\1\111\1\143\1\157\1\163\1\107\1\116\1\155\1\126\1\116\1\114\1\117\2\uffff\1\156\1\163\1\171\1\164\1\144\2\uffff\1\162\1\141\1\105\2\uffff\1\116\1\130\1\164\1\144\1\162\1\0\1\123\1\151\1\163\3\uffff\1\163\1\0\1\141\1\137\1\0\1\142\1\156\1\143\3\151\1\165\1\157\1\150\1\162\1\157\1\0\1\164\1\157\2\151\1\141\1\145\1\160\1\143\1\160\1\102\1\147\1\164\2\145\1\141\2\0\1\165\1\145\1\156\1\162\1\164\1\145\1\116\1\156\1\167\1\164\1\151\1\165\1\163\1\157\1\145\1\163\1\147\1\163\1\101\1\116\1\160\1\123\1\55\1\145\2\124\1\117\1\153\1\152\1\151\1\110\1\124\1\163\1\160\2\105\1\114\1\104\1\164\1\145\1\157\1\0\1\164\1\144\1\164\1\116\2\137\2\145\1\151\1\uffff\1\105\1\163\2\145\1\uffff\1\0\1\101\1\uffff\1\141\1\0\3\164\1\154\1\163\1\144\1\163\1\164\1\165\2\141\1\160\1\162\1\uffff\1\145\1\143\1\166\1\164\1\122\1\156\1\154\1\162\1\165\1\157\1\145\1\150\1\145\1\0\1\143\1\162\2\uffff\1\154\1\0\1\144\2\145\1\0\1\104\1\145\1\103\1\151\1\142\1\145\1\151\1\162\2\0\2\145\1\125\1\117\1\154\1\124\1\uffff\1\144\2\137\1\122\1\141\1\145\1\164\1\124\1\105\1\164\1\157\1\122\1\137\1\0\1\137\1\151\1\162\1\165\1\uffff\1\150\1\145\1\55\1\0\2\126\2\114\1\172\1\0\1\164\1\120\1\164\1\145\1\uffff\1\122\1\111\2\117\1\154\1\uffff\1\160\1\151\1\145\1\157\1\160\1\144\1\151\1\145\3\156\1\145\1\164\1\156\1\141\1\145\1\162\1\145\1\165\1\141\1\151\1\164\1\155\1\145\1\164\1\126\1\145\1\uffff\1\164\3\145\1\uffff\1\103\1\157\1\0\1\uffff\1\101\1\0\1\157\1\143\1\151\1\72\1\157\1\151\2\uffff\1\164\1\0\1\114\1\124\1\141\1\137\1\120\1\103\1\102\1\111\1\147\1\143\1\151\1\137\1\122\1\162\1\163\1\137\1\126\1\uffff\1\114\1\155\1\124\1\164\1\72\1\162\2\uffff\2\101\3\157\1\uffff\1\163\1\157\1\0\1\164\2\105\1\116\1\125\1\72\1\165\1\166\1\156\1\143\1\154\1\145\1\142\2\144\1\147\1\163\1\117\1\0\2\164\1\103\1\141\1\146\1\141\1\171\1\160\1\164\1\145\1\156\1\72\1\141\1\146\1\0\1\141\1\0\1\164\1\157\1\164\1\uffff\1\122\1\uffff\1\156\1\141\1\154\1\uffff\1\156\1\164\1\72\1\uffff\1\124\1\137\1\171\1\103\1\157\2\117\1\111\1\117\1\124\1\145\1\164\1\157\1\102\1\137\1\141\1\151\1\107\1\101\1\117\1\145\1\171\1\72\1\uffff\1\72\2\114\2\167\1\156\1\0\1\151\1\uffff\1\0\1\101\1\127\1\105\1\116\1\uffff\1\164\1\145\1\165\2\141\1\156\1\154\1\0\1\151\1\145\1\154\1\146\1\uffff\1\126\1\141\1\157\2\164\1\145\1\164\1\151\1\164\1\151\1\105\1\104\1\uffff\1\154\1\145\1\uffff\1\72\1\uffff\1\0\1\156\1\171\1\104\1\164\1\154\1\151\1\72\1\171\1\uffff\1\0\1\107\1\0\1\117\1\163\1\115\1\120\1\104\1\124\1\131\2\0\1\156\1\117\1\111\1\117\1\102\1\151\1\164\1\111\1\114\1\123\1\72\1\160\2\uffff\2\125\2\145\1\164\1\uffff\1\156\1\uffff\1\123\1\103\1\123\1\104\1\164\1\0\1\141\1\164\1\171\1\0\1\145\1\uffff\1\156\1\144\1\141\1\0\1\114\1\141\1\142\1\144\1\156\1\141\1\151\1\162\1\145\1\156\1\151\1\156\2\141\1\151\1\165\1\162\2\uffff\1\164\1\160\1\137\1\145\1\114\1\164\1\uffff\1\72\1\uffff\1\111\1\uffff\1\115\1\151\1\105\1\0\1\104\1\124\1\137\2\uffff\1\103\1\120\1\104\1\124\1\117\1\111\1\117\1\156\1\145\1\126\1\125\1\105\1\uffff\1\145\2\105\2\162\1\141\1\164\1\0\1\117\1\0\1\103\1\145\1\uffff\1\164\2\145\1\uffff\1\0\1\147\1\0\1\164\1\uffff\1\151\2\154\1\103\2\164\1\157\1\145\1\126\1\147\1\157\1\147\1\162\1\164\1\163\4\145\1\126\1\156\1\141\1\171\1\uffff\1\126\1\105\1\164\1\137\1\uffff\1\114\1\117\1\106\1\157\1\0\1\104\1\124\1\120\1\104\1\124\1\164\1\101\2\105\1\122\1\72\2\0\2\120\1\154\1\72\1\uffff\1\116\1\uffff\1\117\1\144\1\145\2\144\1\uffff\1\0\1\151\1\165\1\uffff\1\145\1\163\1\165\1\145\1\157\2\145\2\156\1\141\1\103\1\156\1\123\1\154\1\145\1\160\1\0\2\156\1\0\1\101\1\164\1\171\1\72\1\105\1\137\1\151\1\106\1\105\1\115\1\111\1\101\1\156\1\uffff\1\114\1\117\1\0\1\104\1\124\1\0\1\162\1\125\2\0\3\uffff\2\162\1\114\1\uffff\1\124\1\116\1\0\1\144\1\124\1\0\1\uffff\1\163\1\164\1\144\1\164\1\145\1\72\2\156\1\0\1\120\1\143\1\154\1\157\1\72\1\157\1\151\1\162\1\154\1\uffff\1\143\1\164\1\uffff\1\114\1\0\1\157\1\uffff\1\125\1\106\1\157\1\111\2\0\1\122\1\123\1\164\1\105\1\115\1\uffff\1\114\1\117\1\uffff\1\145\1\120\2\uffff\2\151\1\141\1\105\1\124\1\156\1\uffff\1\0\1\157\1\156\1\uffff\2\160\1\123\3\0\1\uffff\2\164\1\uffff\1\157\1\145\1\165\1\156\1\uffff\1\165\1\145\1\124\1\141\1\145\1\0\1\125\1\145\1\uffff\1\165\1\120\1\111\1\156\1\122\2\uffff\1\123\1\124\1\141\2\0\1\105\1\115\1\141\1\0\2\157\1\171\1\116\1\105\1\0\1\uffff\2\0\1\154\1\165\1\157\1\151\1\157\3\uffff\1\145\1\163\1\154\1\72\1\145\1\164\1\156\1\162\1\150\1\171\1\72\1\145\1\uffff\1\105\2\164\1\137\1\122\1\114\1\123\1\124\1\137\1\151\2\uffff\3\0\1\uffff\2\162\1\157\1\124\1\116\3\uffff\1\141\1\164\1\0\1\145\1\165\1\156\1\0\1\151\1\uffff\1\72\1\145\1\144\1\124\1\141\1\145\1\uffff\1\164\3\0\1\125\1\123\1\141\1\124\1\137\1\103\1\156\3\uffff\2\151\1\165\1\123\1\124\1\171\1\0\1\uffff\1\167\1\156\1\164\1\uffff\1\143\1\uffff\1\156\1\0\1\150\1\156\1\144\1\0\3\uffff\1\116\1\124\1\171\1\0\1\103\1\117\1\145\3\164\1\0\1\123\1\0\1\uffff\1\124\1\144\1\0\1\171\1\164\1\uffff\1\141\2\0\1\uffff\1\124\1\0\1\157\1\uffff\1\117\1\115\1\162\2\171\1\0\1\uffff\1\0\1\uffff\1\157\1\124\1\uffff\1\72\1\0\1\156\2\uffff\1\111\1\uffff\1\165\1\115\1\105\3\0\2\uffff\1\0\1\157\2\uffff\1\0\1\114\1\164\1\105\1\137\4\uffff\1\0\1\uffff\1\137\1\0\1\137\1\106\1\uffff\1\127\1\uffff\1\106\3\111\1\122\1\116\1\122\1\123\1\0\1\123\1\124\1\uffff\1\124\2\0\2\uffff";
+ static final String DFA15_maxS =
+ "\1\ufffb\1\uffff\1\76\2\75\1\76\1\146\1\162\1\75\1\154\1\163\1\157\1\164\1\151\1\165\1\145\1\165\2\157\1\164\2\151\2\162\1\141\1\151\1\157\1\105\1\162\1\111\1\157\1\125\1\117\6\uffff\1\160\1\uffff\1\165\1\157\2\uffff\1\151\2\72\1\157\1\150\1\52\1\165\1\157\1\106\1\170\1\uffff\1\141\5\uffff\1\57\12\uffff\1\ufffb\1\146\1\104\1\145\1\114\2\uffff\1\164\1\157\1\126\1\160\1\164\1\156\1\154\1\164\1\145\1\164\2\163\1\164\1\163\1\151\1\141\1\172\1\154\1\142\1\170\1\156\1\144\1\156\1\165\1\145\1\172\1\101\2\145\1\162\1\163\1\154\1\162\1\151\1\165\1\151\1\162\1\154\1\106\1\137\1\163\1\122\1\162\1\170\1\123\1\106\1\111\1\143\1\157\1\163\1\107\1\116\1\156\1\126\1\116\1\114\1\117\2\uffff\1\156\1\163\1\171\1\164\1\144\2\uffff\1\162\1\141\1\105\2\uffff\1\116\1\130\1\164\1\144\1\162\1\ufffb\1\123\1\151\1\163\3\uffff\1\163\1\ufffb\1\141\1\137\1\ufffb\1\142\1\165\1\164\3\151\1\165\1\157\1\150\1\171\1\157\1\ufffb\1\164\1\157\2\151\1\141\1\145\1\160\1\143\1\160\1\103\1\147\1\164\2\145\1\141\2\ufffb\1\165\1\145\1\156\1\162\1\164\1\145\1\116\1\156\1\167\1\164\1\151\1\165\1\163\1\157\1\145\1\163\1\147\1\163\1\101\1\116\1\160\1\123\1\55\1\145\2\124\1\117\1\153\1\152\1\151\1\110\1\124\1\163\1\160\2\105\1\114\1\104\1\164\1\145\1\157\1\ufffb\1\164\1\144\1\164\1\116\2\137\2\145\1\151\1\uffff\1\105\1\163\2\145\1\uffff\1\ufffb\1\132\1\uffff\1\141\1\ufffb\3\164\1\154\1\163\1\144\1\163\1\164\1\165\2\141\1\160\1\162\1\uffff\1\145\1\143\1\166\1\164\1\122\1\156\1\154\1\162\1\165\1\157\1\145\1\150\1\145\1\ufffb\1\143\1\162\2\uffff\1\154\1\ufffb\1\144\2\145\1\ufffb\1\104\1\145\1\103\1\151\1\142\1\145\1\151\1\162\2\ufffb\2\145\1\125\1\117\1\154\1\124\1\uffff\1\144\2\137\1\122\1\141\1\145\1\164\1\124\1\105\1\164\1\157\1\122\1\137\1\ufffb\1\137\1\151\1\162\1\165\1\uffff\1\150\1\145\1\55\1\ufffb\2\126\2\114\1\172\1\ufffb\1\164\1\120\1\164\1\145\1\uffff\1\122\1\111\2\117\1\154\1\uffff\1\160\1\151\1\145\1\157\1\160\1\144\1\151\1\145\3\156\1\145\1\164\1\156\1\141\1\145\1\162\1\145\1\165\1\141\1\151\1\164\1\155\1\145\1\164\1\126\1\145\1\uffff\1\164\3\145\1\uffff\1\103\1\157\1\ufffb\1\uffff\1\101\1\ufffb\1\157\1\143\1\151\1\72\1\157\1\151\2\uffff\1\164\1\ufffb\1\114\1\124\1\141\1\137\1\120\1\103\1\124\1\111\1\147\1\143\1\151\1\137\1\122\1\162\1\163\1\137\1\126\1\uffff\1\114\1\155\1\124\1\164\1\72\1\162\2\uffff\2\101\3\157\1\uffff\1\163\1\157\1\ufffb\1\164\2\105\1\116\1\125\1\72\1\165\1\166\1\156\1\143\1\154\1\145\1\142\2\144\1\147\1\163\1\117\1\ufffb\2\164\1\123\1\141\1\146\1\141\1\171\1\160\1\164\1\145\1\156\1\72\1\141\1\146\1\ufffb\1\141\1\ufffb\1\164\1\157\1\164\1\uffff\1\122\1\uffff\1\156\1\141\1\154\1\uffff\1\156\1\164\1\72\1\uffff\1\124\1\137\1\171\1\103\1\157\2\117\1\111\1\117\1\124\1\145\1\164\1\157\1\124\1\137\1\141\1\151\1\107\1\101\1\117\1\145\1\171\1\72\1\uffff\1\72\2\114\2\167\1\156\1\ufffb\1\151\1\uffff\1\ufffb\1\101\1\127\1\105\1\116\1\uffff\1\164\1\145\1\165\2\141\1\156\1\154\1\ufffb\1\151\1\145\1\154\1\146\1\uffff\1\163\1\145\1\157\2\164\1\145\1\164\1\151\1\164\1\151\1\114\1\104\1\uffff\1\154\1\145\1\uffff\1\72\1\uffff\1\ufffb\1\156\1\171\1\104\1\164\1\154\1\151\1\72\1\171\1\uffff\1\ufffb\1\107\1\ufffb\1\117\1\163\1\115\1\120\1\104\1\124\1\131\2\ufffb\1\156\1\117\1\111\1\117\1\124\1\151\1\164\1\111\1\114\1\123\1\72\1\160\2\uffff\2\125\2\145\1\164\1\uffff\1\156\1\uffff\1\123\1\103\1\123\1\104\1\164\1\ufffb\1\141\1\164\1\171\1\ufffb\1\145\1\uffff\1\156\1\144\1\141\1\ufffb\1\114\1\141\1\142\1\144\1\156\1\141\1\151\1\162\1\145\1\156\1\151\1\156\2\141\1\151\1\165\1\162\2\uffff\1\164\1\160\1\137\1\145\1\114\1\164\1\uffff\1\72\1\uffff\1\111\1\uffff\1\115\1\151\1\105\1\ufffb\1\104\1\124\1\137\2\uffff\1\103\1\120\1\104\1\124\1\117\1\111\1\117\1\156\1\145\1\126\1\125\1\105\1\uffff\1\145\2\105\2\162\1\141\1\164\1\ufffb\1\117\1\ufffb\1\103\1\145\1\uffff\1\164\2\145\1\uffff\1\ufffb\1\147\1\ufffb\1\164\1\uffff\1\151\2\154\1\103\2\164\1\157\1\145\1\126\1\147\1\157\1\147\1\162\1\164\1\163\4\145\1\126\1\156\1\141\1\171\1\uffff\1\126\1\105\1\164\1\137\1\uffff\1\114\1\117\1\114\1\157\1\ufffb\1\104\1\124\1\120\1\104\1\124\1\164\1\101\2\105\1\122\1\72\2\ufffb\2\120\1\154\1\72\1\uffff\1\116\1\uffff\1\117\1\144\1\145\2\144\1\uffff\1\ufffb\1\151\1\165\1\uffff\1\145\1\163\1\165\1\145\1\157\2\145\2\156\1\141\1\103\1\156\1\123\1\154\1\145\1\160\1\ufffb\2\156\1\ufffb\1\101\1\164\1\171\1\72\1\105\1\137\1\151\1\106\1\105\1\115\1\111\1\101\1\156\1\uffff\1\114\1\117\1\ufffb\1\104\1\124\1\ufffb\1\162\1\125\2\ufffb\3\uffff\2\162\1\114\1\uffff\1\124\1\116\1\ufffb\1\144\1\124\1\ufffb\1\uffff\1\163\1\164\1\144\1\164\1\145\1\163\2\156\1\ufffb\1\120\1\143\1\154\1\157\1\72\1\157\1\151\1\162\1\154\1\uffff\1\143\1\164\1\uffff\1\114\1\ufffb\1\157\1\uffff\1\125\1\106\1\157\1\111\2\ufffb\1\122\1\123\1\164\1\105\1\115\1\uffff\1\114\1\117\1\uffff\1\145\1\120\2\uffff\2\151\1\141\1\105\1\124\1\156\1\uffff\1\ufffb\1\157\1\156\1\uffff\2\160\1\126\3\ufffb\1\uffff\2\164\1\uffff\1\157\1\145\1\165\1\156\1\uffff\1\165\1\145\1\124\1\141\1\145\1\ufffb\1\125\1\145\1\uffff\1\165\1\120\1\111\1\156\1\122\2\uffff\1\123\1\124\1\141\2\ufffb\1\105\1\115\1\141\1\ufffb\2\157\1\171\1\116\1\105\1\ufffb\1\uffff\2\ufffb\1\154\1\165\1\157\1\151\1\157\3\uffff\1\145\1\163\1\154\1\72\1\145\1\164\1\156\1\162\1\150\1\171\1\72\1\145\1\uffff\1\105\2\164\1\137\1\122\1\114\1\123\1\124\1\137\1\151\2\uffff\3\ufffb\1\uffff\2\162\1\157\1\124\1\116\3\uffff\1\141\1\164\1\ufffb\1\145\1\165\1\156\1\ufffb\1\151\1\uffff\1\72\1\145\1\144\1\124\1\141\1\145\1\uffff\1\164\3\ufffb\1\125\1\123\1\141\1\124\1\137\1\103\1\156\3\uffff\2\151\1\165\1\123\1\124\1\171\1\ufffb\1\uffff\1\167\1\156\1\164\1\uffff\1\143\1\uffff\1\156\1\ufffb\1\150\1\156\1\144\1\ufffb\3\uffff\1\116\1\124\1\171\1\ufffb\1\103\1\117\1\145\3\164\1\ufffb\1\123\1\ufffb\1\uffff\1\124\1\144\1\ufffb\1\171\1\164\1\uffff\1\141\2\ufffb\1\uffff\1\124\1\ufffb\1\157\1\uffff\1\117\1\115\1\162\2\171\1\ufffb\1\uffff\1\ufffb\1\uffff\1\157\1\124\1\uffff\1\72\1\ufffb\1\156\2\uffff\1\111\1\uffff\1\165\1\115\1\105\3\ufffb\2\uffff\1\ufffb\1\157\2\uffff\1\ufffb\1\114\1\164\1\105\1\137\4\uffff\1\ufffb\1\uffff\1\137\1\ufffb\1\137\1\106\1\uffff\1\127\1\uffff\1\106\3\111\1\122\1\116\1\122\1\123\1\ufffb\1\123\1\124\1\uffff\1\124\2\ufffb\2\uffff";
+ static final String DFA15_acceptS =
+ "\1\uffff\1\1\37\uffff\1\120\1\122\1\123\1\124\1\125\1\126\1\uffff\1\133\2\uffff\1\141\1\142\12\uffff\1\u0088\1\uffff\1\u0097\1\u0098\1\u0099\1\u009a\1\u009b\1\uffff\1\2\1\13\1\4\1\11\1\3\1\14\1\121\1\5\1\6\1\u0095\5\uffff\1\12\1\15\71\uffff\1\u0080\1\132\5\uffff\1\150\1\151\3\uffff\1\u0096\1\166\11\uffff\1\u009c\1\u009d\1\7\125\uffff\1\u0083\4\uffff\1\10\2\uffff\1\16\17\uffff\1\117\20\uffff\1\57\1\60\26\uffff\1\u0086\22\uffff\1\u0089\16\uffff\1\62\5\uffff\1\17\33\uffff\1\54\4\uffff\1\63\3\uffff\1\143\10\uffff\1\71\1\73\23\uffff\1\177\6\uffff\1\165\1\u0084\5\uffff\1\u0085\52\uffff\1\162\1\uffff\1\u008c\3\uffff\1\70\3\uffff\1\72\27\uffff\1\144\10\uffff\1\147\5\uffff\1\u008d\14\uffff\1\116\14\uffff\1\145\2\uffff\1\61\1\uffff\1\115\11\uffff\1\153\30\uffff\1\156\1\160\5\uffff\1\u0087\1\uffff\1\152\13\uffff\1\32\25\uffff\1\u0090\1\154\6\uffff\1\164\1\uffff\1\74\1\uffff\1\134\7\uffff\1\127\1\163\14\uffff\1\136\14\uffff\1\22\3\uffff\1\26\4\uffff\1\52\27\uffff\1\67\4\uffff\1\101\26\uffff\1\173\1\uffff\1\175\5\uffff\1\30\3\uffff\1\42\41\uffff\1\104\12\uffff\1\137\1\171\1\172\3\uffff\1\u008f\6\uffff\1\34\22\uffff\1\40\2\uffff\1\131\3\uffff\1\66\13\uffff\1\107\2\uffff\1\135\2\uffff\1\170\1\113\6\uffff\1\31\3\uffff\1\25\6\uffff\1\140\2\uffff\1\56\4\uffff\1\130\10\uffff\1\65\5\uffff\1\102\1\103\17\uffff\1\35\7\uffff\1\20\1\21\1\23\14\uffff\1\64\12\uffff\1\105\1\106\3\uffff\1\112\5\uffff\1\47\1\41\1\44\10\uffff\1\u0094\6\uffff\1\146\13\uffff\1\110\1\111\1\155\7\uffff\1\43\3\uffff\1\53\1\uffff\1\161\6\uffff\1\167\1\u008a\1\u008e\15\uffff\1\50\5\uffff\1\33\3\uffff\1\u008b\3\uffff\1\76\6\uffff\1\174\1\uffff\1\45\2\uffff\1\24\3\uffff\1\37\1\55\1\uffff\1\75\6\uffff\1\u0091\1\176\2\uffff\1\157\1\27\5\uffff\1\u0093\1\u0082\1\u0081\1\46\1\uffff\1\36\4\uffff\1\51\1\uffff\1\u0092\13\uffff\1\114\3\uffff\1\100\1\77";
+ static final String DFA15_specialS =
+ "\u0457\uffff}>";
+ static final String[] DFA15_transitionS = {
+ "\11\71\2\72\2\uffff\1\72\16\71\4\uffff\1\72\1\10\1\74\1\uffff\1\71\3\uffff\1\47\1\50\1\uffff\1\1\1\46\1\5\1\62\1\76\12\73\1\41\1\uffff\1\4\1\3\1\2\1\uffff\1\75\1\7\1\71\1\36\1\31\1\66\1\32\1\40\1\64\1\65\2\71\1\33\1\63\1\37\1\6\1\34\1\71\1\35\1\23\1\61\1\71\1\24\3\71\1\22\1\53\1\71\1\54\1\uffff\1\71\1\uffff\1\14\1\70\1\13\1\15\1\71\1\30\1\11\1\17\1\12\2\71\1\52\1\21\1\71\1\16\1\26\1\71\1\51\1\20\1\27\1\71\1\25\1\55\1\56\1\57\1\60\1\44\1\67\1\45\1\uffff\41\71\2\uffff\4\71\4\uffff\1\71\1\42\1\uffff\1\71\7\uffff\1\71\4\uffff\1\71\1\43\4\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "",
+ "\1\100\1\77",
+ "\1\102",
+ "\1\105\1\104",
+ "\1\107",
+ "\1\111\23\uffff\1\112",
+ "\1\115\1\uffff\1\113\43\uffff\1\114",
+ "\1\116",
+ "\1\120\6\uffff\1\121",
+ "\1\123\1\124\4\uffff\1\122",
+ "\1\125",
+ "\1\127\10\uffff\1\126\5\uffff\1\130\1\uffff\1\131",
+ "\1\133\3\uffff\1\132",
+ "\1\134",
+ "\1\135\3\uffff\1\136",
+ "\1\141\3\uffff\1\140\12\uffff\1\137\1\142",
+ "\1\143\7\uffff\1\144\5\uffff\1\145",
+ "\1\146",
+ "\1\152\16\uffff\1\153\5\uffff\1\151\5\uffff\1\147\4\uffff\1\150",
+ "\1\155\3\uffff\1\154",
+ "\1\157\3\uffff\1\160\3\uffff\1\156",
+ "\1\161",
+ "\1\164\6\uffff\1\163\11\uffff\1\162",
+ "\1\165",
+ "\1\166\11\uffff\1\167\31\uffff\1\170",
+ "\1\171\37\uffff\1\173\5\uffff\1\172",
+ "\1\174\3\uffff\1\175",
+ "\1\176\16\uffff\1\177\15\uffff\1\u0081\2\uffff\1\u0080",
+ "\1\u0082",
+ "\1\u0083\51\uffff\1\u0084",
+ "\1\u0085\11\uffff\1\u0086\5\uffff\1\u0087",
+ "\1\u0088",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\1\u0089",
+ "",
+ "\1\u008b",
+ "\1\u008d\3\uffff\1\u008e\11\uffff\1\u008c",
+ "",
+ "",
+ "\1\u008f",
+ "\1\u0090",
+ "\1\u0091",
+ "\1\u0092",
+ "\1\u0094\37\uffff\1\u0093",
+ "\1\u0095",
+ "\1\u0098\7\uffff\1\u0097\53\uffff\1\u0099",
+ "\1\u009a\5\uffff\1\u009b",
+ "\1\u009c",
+ "\1\u009d\53\uffff\1\u009e",
+ "",
+ "\1\u009f",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\1\u00a0\4\uffff\1\u00a1",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u00a3",
+ "\1\u00a4",
+ "\1\u00a5",
+ "\1\u00a6",
+ "",
+ "",
+ "\1\u00a7",
+ "\1\u00a8",
+ "\1\u00aa\1\uffff\1\u00b0\1\u00ab\3\uffff\1\u00ac\4\uffff\1\u00ae\1\uffff\1\u00a9\3\uffff\1\u00af\1\u00b1\1\uffff\1\u00ad",
+ "\1\u00b2",
+ "\1\u00b3",
+ "\1\u00b4",
+ "\1\u00b5",
+ "\1\u00b6",
+ "\1\u00b7\2\uffff\1\u00b8",
+ "\1\u00b9",
+ "\1\u00ba",
+ "\1\u00bb",
+ "\1\u00bc",
+ "\1\u00bd",
+ "\1\u00be",
+ "\1\u00bf",
+ "\1\u00c0",
+ "\1\u00c1",
+ "\1\u00c2",
+ "\1\u00c3",
+ "\1\u00c4",
+ "\1\u00c5",
+ "\1\u00c6",
+ "\1\u00c7",
+ "\1\u00c9\3\uffff\1\u00c8",
+ "\1\u00ca",
+ "\1\u00cb",
+ "\1\u00cc",
+ "\1\u00cd",
+ "\1\u00ce",
+ "\1\u00cf",
+ "\1\u00d0",
+ "\1\u00d1",
+ "\1\u00d2",
+ "\1\u00d3",
+ "\1\u00d4",
+ "\1\u00d5",
+ "\1\u00d6",
+ "\1\u00d7",
+ "\1\u00d8",
+ "\1\u00d9",
+ "\1\u00da",
+ "\1\u00db",
+ "\1\u00dc",
+ "\1\u00dd",
+ "\1\u00de",
+ "\1\u00df",
+ "\1\u00e0",
+ "\1\u00e1",
+ "\1\u00e2",
+ "\1\u00e3",
+ "\1\u00e4",
+ "\1\u00e6\1\u00e5",
+ "\1\u00e7",
+ "\1\u00e8",
+ "\1\u00e9",
+ "\1\u00ea",
+ "",
+ "",
+ "\1\u00eb",
+ "\1\u00ec",
+ "\1\u00ed",
+ "\1\u00ee",
+ "\1\u00ef",
+ "",
+ "",
+ "\1\u00f0",
+ "\1\u00f1",
+ "\1\u00f2",
+ "",
+ "",
+ "\1\u00f3",
+ "\1\u00f4",
+ "\1\u00f5",
+ "\1\u00f6",
+ "\1\u00f7",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u00f9",
+ "\1\u00fa",
+ "\1\u00fb",
+ "",
+ "",
+ "",
+ "\1\u00fc",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u00fe",
+ "\1\u00ff",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0101",
+ "\1\u0102\6\uffff\1\u0103",
+ "\1\u0104\10\uffff\1\u0106\7\uffff\1\u0105",
+ "\1\u0107",
+ "\1\u0108",
+ "\1\u0109",
+ "\1\u010a",
+ "\1\u010b",
+ "\1\u010c",
+ "\1\u010d\6\uffff\1\u010e",
+ "\1\u010f",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0111",
+ "\1\u0112",
+ "\1\u0113",
+ "\1\u0114",
+ "\1\u0115",
+ "\1\u0116",
+ "\1\u0117",
+ "\1\u0118",
+ "\1\u0119",
+ "\1\u011b\1\u011a",
+ "\1\u011c",
+ "\1\u011d",
+ "\1\u011e",
+ "\1\u011f",
+ "\1\u0120",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\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",
+ "\1\u0130",
+ "\1\u0131",
+ "\1\u0132",
+ "\1\u0133",
+ "\1\u0134",
+ "\1\u0135",
+ "\1\u0136",
+ "\1\u0137",
+ "\1\u0138",
+ "\1\u0139",
+ "\1\u013a",
+ "\1\u013b",
+ "\1\u013c",
+ "\1\u013d",
+ "\1\u013e",
+ "\1\u013f",
+ "\1\u0140",
+ "\1\u0141",
+ "\1\u0142",
+ "\1\u0143",
+ "\1\u0144",
+ "\1\u0145",
+ "\1\u0146",
+ "\1\u0147",
+ "\1\u0148",
+ "\1\u0149",
+ "\1\u014a",
+ "\1\u014b",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u014d",
+ "\1\u014e",
+ "\1\u014f",
+ "\1\u0150",
+ "\1\u0151",
+ "\1\u0152",
+ "\1\u0153",
+ "\1\u0154",
+ "\1\u0155",
+ "",
+ "\1\u0156",
+ "\1\u0157",
+ "\1\u0158",
+ "\1\u0159",
+ "",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\22\71\1\u015a\7\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u015c\21\uffff\1\u015f\2\uffff\1\u015d\3\uffff\1\u015e",
+ "",
+ "\1\u0160",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0162",
+ "\1\u0163",
+ "\1\u0164",
+ "\1\u0165",
+ "\1\u0166",
+ "\1\u0167",
+ "\1\u0168",
+ "\1\u0169",
+ "\1\u016a",
+ "\1\u016b",
+ "\1\u016c",
+ "\1\u016d",
+ "\1\u016e",
+ "",
+ "\1\u016f",
+ "\1\u0170",
+ "\1\u0171",
+ "\1\u0172",
+ "\1\u0173",
+ "\1\u0174",
+ "\1\u0175",
+ "\1\u0176",
+ "\1\u0177",
+ "\1\u0178",
+ "\1\u0179",
+ "\1\u017a",
+ "\1\u017b",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\21\71\1\u017c\10\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u017e",
+ "\1\u017f",
+ "",
+ "",
+ "\1\u0180",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\22\71\1\u0181\7\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0183",
+ "\1\u0184",
+ "\1\u0185",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0187",
+ "\1\u0188",
+ "\1\u0189",
+ "\1\u018a",
+ "\1\u018b",
+ "\1\u018c",
+ "\1\u018d",
+ "\1\u018e",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0191",
+ "\1\u0192",
+ "\1\u0193",
+ "\1\u0194",
+ "\1\u0195",
+ "\1\u0196",
+ "",
+ "\1\u0197",
+ "\1\u0198",
+ "\1\u0199",
+ "\1\u019a",
+ "\1\u019b",
+ "\1\u019c",
+ "\1\u019d",
+ "\1\u019e",
+ "\1\u019f",
+ "\1\u01a0",
+ "\1\u01a1",
+ "\1\u01a2",
+ "\1\u01a3",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u01a5",
+ "\1\u01a6",
+ "\1\u01a7",
+ "\1\u01a8",
+ "",
+ "\1\u01a9",
+ "\1\u01aa",
+ "\1\u01ab",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u01ad",
+ "\1\u01ae",
+ "\1\u01af",
+ "\1\u01b0",
+ "\1\u01b1",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u01b3",
+ "\1\u01b4",
+ "\1\u01b5",
+ "\1\u01b6",
+ "",
+ "\1\u01b7",
+ "\1\u01b8",
+ "\1\u01b9",
+ "\1\u01ba",
+ "\1\u01bb",
+ "",
+ "\1\u01bc",
+ "\1\u01bd",
+ "\1\u01be",
+ "\1\u01bf",
+ "\1\u01c0",
+ "\1\u01c1",
+ "\1\u01c2",
+ "\1\u01c3",
+ "\1\u01c4",
+ "\1\u01c5",
+ "\1\u01c6",
+ "\1\u01c7",
+ "\1\u01c8",
+ "\1\u01c9",
+ "\1\u01ca",
+ "\1\u01cb",
+ "\1\u01cc",
+ "\1\u01cd",
+ "\1\u01ce",
+ "\1\u01cf",
+ "\1\u01d0",
+ "\1\u01d1",
+ "\1\u01d2",
+ "\1\u01d3",
+ "\1\u01d4",
+ "\1\u01d5",
+ "\1\u01d6",
+ "",
+ "\1\u01d7",
+ "\1\u01d8",
+ "\1\u01d9",
+ "\1\u01da",
+ "",
+ "\1\u01db",
+ "\1\u01dc",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "",
+ "\1\u01de",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u01e0",
+ "\1\u01e1",
+ "\1\u01e2",
+ "\1\u01e3",
+ "\1\u01e4",
+ "\1\u01e5",
+ "",
+ "",
+ "\1\u01e6",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u01e8",
+ "\1\u01e9",
+ "\1\u01ea",
+ "\1\u01eb",
+ "\1\u01ec",
+ "\1\u01ed",
+ "\1\u01f0\12\uffff\1\u01ef\6\uffff\1\u01ee",
+ "\1\u01f1",
+ "\1\u01f2",
+ "\1\u01f3",
+ "\1\u01f4",
+ "\1\u01f5",
+ "\1\u01f6",
+ "\1\u01f7",
+ "\1\u01f8",
+ "\1\u01f9",
+ "\1\u01fa",
+ "",
+ "\1\u01fb",
+ "\1\u01fc",
+ "\1\u01fd",
+ "\1\u01fe",
+ "\1\u01ff",
+ "\1\u0200",
+ "",
+ "",
+ "\1\u0201",
+ "\1\u0202",
+ "\1\u0203",
+ "\1\u0204",
+ "\1\u0205",
+ "",
+ "\1\u0206",
+ "\1\u0207",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0209",
+ "\1\u020a",
+ "\1\u020b",
+ "\1\u020c",
+ "\1\u020d",
+ "\1\u020e",
+ "\1\u020f",
+ "\1\u0210",
+ "\1\u0211",
+ "\1\u0212",
+ "\1\u0213",
+ "\1\u0214",
+ "\1\u0215",
+ "\1\u0216",
+ "\1\u0217",
+ "\1\u0218",
+ "\1\u0219",
+ "\1\u021a",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u021c",
+ "\1\u021d",
+ "\1\u021e\17\uffff\1\u021f",
+ "\1\u0220",
+ "\1\u0221",
+ "\1\u0222",
+ "\1\u0223",
+ "\1\u0224",
+ "\1\u0225",
+ "\1\u0226",
+ "\1\u0227",
+ "\1\u0228",
+ "\1\u0229",
+ "\1\u022a",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u022c",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u022e",
+ "\1\u022f",
+ "\1\u0230",
+ "",
+ "\1\u0231",
+ "",
+ "\1\u0232",
+ "\1\u0233",
+ "\1\u0234",
+ "",
+ "\1\u0235",
+ "\1\u0236",
+ "\1\u0237",
+ "",
+ "\1\u0238",
+ "\1\u0239",
+ "\1\u023a",
+ "\1\u023b",
+ "\1\u023c",
+ "\1\u023d",
+ "\1\u023e",
+ "\1\u023f",
+ "\1\u0240",
+ "\1\u0241",
+ "\1\u0242",
+ "\1\u0243",
+ "\1\u0244",
+ "\1\u0247\12\uffff\1\u0246\6\uffff\1\u0245",
+ "\1\u0248",
+ "\1\u0249",
+ "\1\u024a",
+ "\1\u024b",
+ "\1\u024c",
+ "\1\u024d",
+ "\1\u024e",
+ "\1\u024f",
+ "\1\u0250",
+ "",
+ "\1\u0251",
+ "\1\u0252",
+ "\1\u0253",
+ "\1\u0254",
+ "\1\u0255",
+ "\1\u0256",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0258",
+ "",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u025a",
+ "\1\u025b",
+ "\1\u025c",
+ "\1\u025d",
+ "",
+ "\1\u025e",
+ "\1\u025f",
+ "\1\u0260",
+ "\1\u0261",
+ "\1\u0262",
+ "\1\u0263",
+ "\1\u0264",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0266",
+ "\1\u0267",
+ "\1\u0268",
+ "\1\u0269",
+ "",
+ "\1\u026b\34\uffff\1\u026a",
+ "\1\u026c\3\uffff\1\u026d",
+ "\1\u026e",
+ "\1\u026f",
+ "\1\u0270",
+ "\1\u0271",
+ "\1\u0272",
+ "\1\u0273",
+ "\1\u0274",
+ "\1\u0275",
+ "\1\u0276\6\uffff\1\u0277",
+ "\1\u0278",
+ "",
+ "\1\u0279",
+ "\1\u027a",
+ "",
+ "\1\u027b",
+ "",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u027d",
+ "\1\u027e",
+ "\1\u027f",
+ "\1\u0280",
+ "\1\u0281",
+ "\1\u0282",
+ "\1\u0283",
+ "\1\u0284",
+ "",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0286",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0288",
+ "\1\u0289",
+ "\1\u028a",
+ "\1\u028b",
+ "\1\u028c",
+ "\1\u028d",
+ "\1\u028e",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0291",
+ "\1\u0292",
+ "\1\u0293",
+ "\1\u0294",
+ "\1\u0297\12\uffff\1\u0296\6\uffff\1\u0295",
+ "\1\u0298",
+ "\1\u0299",
+ "\1\u029a",
+ "\1\u029b",
+ "\1\u029c",
+ "\1\u029d",
+ "\1\u029e",
+ "",
+ "",
+ "\1\u029f",
+ "\1\u02a0",
+ "\1\u02a1",
+ "\1\u02a2",
+ "\1\u02a3",
+ "",
+ "\1\u02a4",
+ "",
+ "\1\u02a5",
+ "\1\u02a6",
+ "\1\u02a7",
+ "\1\u02a8",
+ "\1\u02a9",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u02ab",
+ "\1\u02ac",
+ "\1\u02ad",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u02af",
+ "",
+ "\1\u02b0",
+ "\1\u02b1",
+ "\1\u02b2",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u02b4",
+ "\1\u02b5",
+ "\1\u02b6",
+ "\1\u02b7",
+ "\1\u02b8",
+ "\1\u02b9",
+ "\1\u02ba",
+ "\1\u02bb",
+ "\1\u02bc",
+ "\1\u02bd",
+ "\1\u02be",
+ "\1\u02bf",
+ "\1\u02c0",
+ "\1\u02c1",
+ "\1\u02c2",
+ "\1\u02c3",
+ "\1\u02c4",
+ "",
+ "",
+ "\1\u02c5",
+ "\1\u02c6",
+ "\1\u02c7",
+ "\1\u02c8",
+ "\1\u02c9",
+ "\1\u02ca",
+ "",
+ "\1\u02cb",
+ "",
+ "\1\u02cc",
+ "",
+ "\1\u02cd",
+ "\1\u02ce",
+ "\1\u02cf",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u02d1",
+ "\1\u02d2",
+ "\1\u02d3",
+ "",
+ "",
+ "\1\u02d4",
+ "\1\u02d5",
+ "\1\u02d6",
+ "\1\u02d7",
+ "\1\u02d8",
+ "\1\u02d9",
+ "\1\u02da",
+ "\1\u02db",
+ "\1\u02dc",
+ "\1\u02dd",
+ "\1\u02de",
+ "\1\u02df",
+ "",
+ "\1\u02e0",
+ "\1\u02e1",
+ "\1\u02e2",
+ "\1\u02e3",
+ "\1\u02e4",
+ "\1\u02e5",
+ "\1\u02e6",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u02e8",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u02ea",
+ "\1\u02eb",
+ "",
+ "\1\u02ec",
+ "\1\u02ed",
+ "\1\u02ee",
+ "",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u02f0",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\3\71\1\u02f1\12\71\1\u02f2\13\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u02f4",
+ "",
+ "\1\u02f5",
+ "\1\u02f6",
+ "\1\u02f7",
+ "\1\u02f8",
+ "\1\u02f9",
+ "\1\u02fa",
+ "\1\u02fb",
+ "\1\u02fc",
+ "\1\u02fd",
+ "\1\u02fe",
+ "\1\u02ff",
+ "\1\u0300",
+ "\1\u0301",
+ "\1\u0302",
+ "\1\u0303",
+ "\1\u0304",
+ "\1\u0305",
+ "\1\u0306",
+ "\1\u0307",
+ "\1\u0308",
+ "\1\u0309",
+ "\1\u030a",
+ "\1\u030b",
+ "",
+ "\1\u030c",
+ "\1\u030d",
+ "\1\u030e",
+ "\1\u030f",
+ "",
+ "\1\u0310",
+ "\1\u0311",
+ "\1\u0312\5\uffff\1\u0313",
+ "\1\u0314",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0316",
+ "\1\u0317",
+ "\1\u0318",
+ "\1\u0319",
+ "\1\u031a",
+ "\1\u031b",
+ "\1\u031c",
+ "\1\u031d",
+ "\1\u031e",
+ "\1\u031f",
+ "\1\u0320",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0323",
+ "\1\u0324",
+ "\1\u0325",
+ "\1\u0326",
+ "",
+ "\1\u0327",
+ "",
+ "\1\u0328",
+ "\1\u0329",
+ "\1\u032a",
+ "\1\u032b",
+ "\1\u032c",
+ "",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u032e",
+ "\1\u032f",
+ "",
+ "\1\u0330",
+ "\1\u0331",
+ "\1\u0332",
+ "\1\u0333",
+ "\1\u0334",
+ "\1\u0335",
+ "\1\u0336",
+ "\1\u0337",
+ "\1\u0338",
+ "\1\u0339",
+ "\1\u033a",
+ "\1\u033b",
+ "\1\u033c",
+ "\1\u033d",
+ "\1\u033e",
+ "\1\u033f",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0341",
+ "\1\u0342",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0344",
+ "\1\u0345",
+ "\1\u0346",
+ "\1\u0347",
+ "\1\u0348",
+ "\1\u0349",
+ "\1\u034a",
+ "\1\u034b",
+ "\1\u034c",
+ "\1\u034d",
+ "\1\u034e",
+ "\1\u034f",
+ "\1\u0350",
+ "",
+ "\1\u0351",
+ "\1\u0352",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0354",
+ "\1\u0355",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0357",
+ "\1\u0358",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "",
+ "",
+ "",
+ "\1\u035b",
+ "\1\u035c",
+ "\1\u035d",
+ "",
+ "\1\u035e",
+ "\1\u035f",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\16\71\1\u0360\13\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0362",
+ "\1\u0363",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\16\71\1\u0364\13\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "",
+ "\1\u0366",
+ "\1\u0367",
+ "\1\u0368",
+ "\1\u0369",
+ "\1\u036a",
+ "\1\u036c\70\uffff\1\u036b",
+ "\1\u036d",
+ "\1\u036e",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0370",
+ "\1\u0371",
+ "\1\u0372",
+ "\1\u0373",
+ "\1\u0374",
+ "\1\u0375",
+ "\1\u0376",
+ "\1\u0377",
+ "\1\u0378",
+ "",
+ "\1\u0379",
+ "\1\u037a",
+ "",
+ "\1\u037b",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\22\71\1\u037c\7\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u037e",
+ "",
+ "\1\u037f",
+ "\1\u0380",
+ "\1\u0381",
+ "\1\u0382",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0385",
+ "\1\u0386",
+ "\1\u0387",
+ "\1\u0388",
+ "\1\u0389",
+ "",
+ "\1\u038a",
+ "\1\u038b",
+ "",
+ "\1\u038c",
+ "\1\u038d",
+ "",
+ "",
+ "\1\u038e",
+ "\1\u038f",
+ "\1\u0390",
+ "\1\u0391",
+ "\1\u0392",
+ "\1\u0393",
+ "",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0395",
+ "\1\u0396",
+ "",
+ "\1\u0397",
+ "\1\u0398",
+ "\1\u039b\1\u0399\1\uffff\1\u039a",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "",
+ "\1\u039f",
+ "\1\u03a0",
+ "",
+ "\1\u03a1",
+ "\1\u03a2",
+ "\1\u03a3",
+ "\1\u03a4",
+ "",
+ "\1\u03a5",
+ "\1\u03a6",
+ "\1\u03a7",
+ "\1\u03a8",
+ "\1\u03a9",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\22\71\1\u03aa\7\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u03ac",
+ "\1\u03ad",
+ "",
+ "\1\u03ae",
+ "\1\u03af",
+ "\1\u03b0",
+ "\1\u03b1",
+ "\1\u03b2",
+ "",
+ "",
+ "\1\u03b3",
+ "\1\u03b4",
+ "\1\u03b5",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u03b8",
+ "\1\u03b9",
+ "\1\u03ba",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u03bc",
+ "\1\u03bd",
+ "\1\u03be",
+ "\1\u03bf",
+ "\1\u03c0",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u03c4",
+ "\1\u03c5",
+ "\1\u03c6",
+ "\1\u03c7",
+ "\1\u03c8",
+ "",
+ "",
+ "",
+ "\1\u03c9",
+ "\1\u03ca",
+ "\1\u03cb",
+ "\1\u03cc",
+ "\1\u03cd",
+ "\1\u03ce",
+ "\1\u03cf",
+ "\1\u03d0",
+ "\1\u03d1",
+ "\1\u03d2",
+ "\1\u03d3",
+ "\1\u03d4",
+ "",
+ "\1\u03d5",
+ "\1\u03d6",
+ "\1\u03d7",
+ "\1\u03d8",
+ "\1\u03d9",
+ "\1\u03da",
+ "\1\u03db",
+ "\1\u03dc",
+ "\1\u03dd",
+ "\1\u03de",
+ "",
+ "",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "",
+ "\1\u03e2",
+ "\1\u03e3",
+ "\1\u03e4",
+ "\1\u03e5",
+ "\1\u03e6",
+ "",
+ "",
+ "",
+ "\1\u03e7",
+ "\1\u03e8",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u03ea",
+ "\1\u03eb",
+ "\1\u03ec",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u03ee",
+ "",
+ "\1\u03ef",
+ "\1\u03f0",
+ "\1\u03f1",
+ "\1\u03f2",
+ "\1\u03f3",
+ "\1\u03f4",
+ "",
+ "\1\u03f5",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u03f9",
+ "\1\u03fa",
+ "\1\u03fb",
+ "\1\u03fc",
+ "\1\u03fd",
+ "\1\u03fe",
+ "\1\u03ff",
+ "",
+ "",
+ "",
+ "\1\u0400",
+ "\1\u0401",
+ "\1\u0402",
+ "\1\u0403",
+ "\1\u0404",
+ "\1\u0405",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "",
+ "\1\u0407",
+ "\1\u0408",
+ "\1\u0409",
+ "",
+ "\1\u040a",
+ "",
+ "\1\u040b",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u040d",
+ "\1\u040e",
+ "\1\u040f",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "",
+ "",
+ "",
+ "\1\u0411",
+ "\1\u0412",
+ "\1\u0413",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0415",
+ "\1\u0416",
+ "\1\u0417",
+ "\1\u0418",
+ "\1\u0419",
+ "\1\u041a",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u041c",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "",
+ "\1\u041e",
+ "\1\u041f",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0421",
+ "\1\u0422",
+ "",
+ "\1\u0423",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "",
+ "\1\u0426",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0428",
+ "",
+ "\1\u0429",
+ "\1\u042a",
+ "\1\u042b",
+ "\1\u042c",
+ "\1\u042d",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "",
+ "\1\u0430",
+ "\1\u0431",
+ "",
+ "\1\u0432",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0434",
+ "",
+ "",
+ "\1\u0435",
+ "",
+ "\1\u0436",
+ "\1\u0437",
+ "\1\u0438",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "",
+ "",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u043d",
+ "",
+ "",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u043f",
+ "\1\u0440",
+ "\1\u0441",
+ "\1\u0442",
+ "",
+ "",
+ "",
+ "",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "",
+ "\1\u0444",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0446",
+ "\1\u0447",
+ "",
+ "\1\u0448",
+ "",
+ "\1\u0449",
+ "\1\u044a",
+ "\1\u044b",
+ "\1\u044c",
+ "\1\u044d",
+ "\1\u044e",
+ "\1\u044f",
+ "\1\u0450",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0452",
+ "\1\u0453",
+ "",
+ "\1\u0454",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "",
+ ""
+ };
+
+ static final short[] DFA15_eot = DFA.unpackEncodedString(DFA15_eotS);
+ static final short[] DFA15_eof = DFA.unpackEncodedString(DFA15_eofS);
+ static final char[] DFA15_min = DFA.unpackEncodedStringToUnsignedChars(DFA15_minS);
+ static final char[] DFA15_max = DFA.unpackEncodedStringToUnsignedChars(DFA15_maxS);
+ static final short[] DFA15_accept = DFA.unpackEncodedString(DFA15_acceptS);
+ static final short[] DFA15_special = DFA.unpackEncodedString(DFA15_specialS);
+ static final short[][] DFA15_transition;
+
+ static {
+ int numStates = DFA15_transitionS.length;
+ DFA15_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA15_transition[i] = DFA.unpackEncodedString(DFA15_transitionS[i]);
+ }
+ }
+
+ class DFA15 extends DFA {
+
+ public DFA15(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 15;
+ this.eot = DFA15_eot;
+ this.eof = DFA15_eof;
+ this.min = DFA15_min;
+ this.max = DFA15_max;
+ this.accept = DFA15_accept;
+ this.special = DFA15_special;
+ this.transition = DFA15_transition;
+ }
+ public String getDescription() {
+ return "1:1: Tokens : ( 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 | T__114 | T__115 | T__116 | T__117 | T__118 | T__119 | T__120 | T__121 | T__122 | T__123 | T__124 | T__125 | T__126 | T__127 | T__128 | T__129 | T__130 | T__131 | T__132 | T__133 | T__134 | T__135 | T__136 | T__137 | T__138 | T__139 | T__140 | T__141 | T__142 | T__143 | T__144 | T__145 | T__146 | T__147 | T__148 | T__149 | T__150 | T__151 | T__152 | T__153 | T__154 | T__155 | T__156 | T__157 | T__158 | T__159 | T__160 | T__161 | T__162 | T__163 | T__164 | T__165 | T__166 | T__167 | RULE_ID | RULE_WS | RULE_INT | RULE_STRING | RULE_RICH_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT );";
+ }
+ }
+
+
+} \ No newline at end of file
diff --git a/rba.tool.editor.ide/src-gen/rba/tool/editor/ide/contentassist/antlr/internal/InternalRBAModelParser.java b/rba.tool.editor.ide/src-gen/rba/tool/editor/ide/contentassist/antlr/internal/InternalRBAModelParser.java
new file mode 100644
index 0000000..40085bc
--- /dev/null
+++ b/rba.tool.editor.ide/src-gen/rba/tool/editor/ide/contentassist/antlr/internal/InternalRBAModelParser.java
@@ -0,0 +1,94035 @@
+package rba.tool.editor.ide.contentassist.antlr.internal;
+
+import java.io.InputStream;
+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.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.DFA;
+import rba.tool.editor.services.RBAModelGrammarAccess;
+
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+@SuppressWarnings("all")
+public class InternalRBAModelParser extends AbstractInternalContentAssistParser {
+ public static final String[] tokenNames = new String[] {
+ "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_STRING", "RULE_RICH_STRING", "RULE_ID", "RULE_INT", "RULE_IDENTIFIER_START", "RULE_UNICODE_ESCAPE", "RULE_IDENTIFIER_PART", "RULE_IDENTIFIER_START_IMPL", "RULE_IDENTIFIER_PART_IMPL", "RULE_IDENTIFIER_DIGITS", "RULE_HEX_DIGIT", "RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "'+'", "'>>'", "'='", "'>'", "'<'", "'->'", "'OR'", "'AND'", "'=='", "'!='", "'>='", "'<='", "'!'", "'get'", "'isOn'", "'contentsList'", "'contentValue'", "'isActive'", "'allocatables'", "'allocatedContent'", "'isDisplayed'", "'isHidden'", "'displayingContent'", "'isVisible'", "'isOutputted'", "'isMuted'", "'outputtingSound'", "'isSounding'", "'isAttenuated'", "'hasComeEarlierThan'", "'hasComeLaterThan'", "'stateValue'", "'isAllocatedTo'", "'isChanged'", "'isTranslatedTo'", "'isDisplayedOn'", "'isChangedDisplay'", "'isTranslatedViewTo'", "'isOutputtedOn'", "'isChangedOutput'", "'isTranslatedSoundTo'", "'isTypeOf'", "'activeContents'", "'size'", "'hasBeenDisplayed'", "'activeState'", "'max'", "'min'", "'select'", "'Area'", "'Zone'", "'SoundContent'", "'ViewContent'", "'visibility:'", "'priority:'", "'value:'", "'true'", "'false'", "'this'", "'DEFAULT'", "'FIRST_COME_FIRST'", "'LAST_COME_FIRST'", "'PRIORITY_FIRST_COME_FIRST'", "'PRIORITY_LAST_COME_FIRST'", "'LEFT_TOP'", "'LEFT_MIDDLE'", "'LEFT_BOTTOM'", "'RIGHT_TOP'", "'RIGHT_MIDDLE'", "'RIGHT_BOTTOM'", "'CENTER_TOP'", "'CENTER_MIDDLE'", "'CENTER_BOTTOM'", "'NEVER_GIVEUP'", "'GOOD_LOSER'", "'DO_NOT_GIVEUP_UNTIL_WIN'", "'module'", "'import'", "'int'", "':'", "'<<'", "'\\u00AB'", "'\\u00BB'", "'{'", "'}'", "','", "'Package'", "'description:'", "'Stereotype'", "'('", "')'", "'Display'", "'Constraint'", "'runtime:'", "'loserType:'", "'allocatable:'", "'['", "']'", "'Size'", "'width:'", "'height:'", "'sizeReference:'", "'Offset'", "'x:'", "'y:'", "'AreaSet'", "'target:'", "'ZoneSet'", "'CompositeArea'", "'layout:'", "'arbitrationPolicy:'", "'zorder:'", "'attenuateValue:'", "'State'", "'Project'", "'version:'", "'That-of'", "'.'", "'STANDARD_VALUE'", "'NONE_VALUE'", "'MIN_VALUE'", "'MAX_VALUE'", "'ALL_AREAS'", "'ALL_VIEWCONTENTS'", "'ALL_ZONES'", "'ALL_SOUNDCONTENTS'", "'NULL'", "'(pre)'", "'HideLowerPriority'", "'MuteLowerPriority'", "'IF'", "'THEN'", "'ELSE'", "'For-All'", "'Exists'", "'|'", "'let'", "'ViewContentSet'", "'SoundContentSet'", "'Scene'", "'global:'", "'VerticalLayout'", "'basePoint:'", "'subarea:'", "'HorizontalLayout'", "'FixedPositionLayout'", "'PositionContainer'", "'areaReference:'", "'-'", "'.*'"
+ };
+ public static final int T__144=144;
+ public static final int T__143=143;
+ public static final int T__146=146;
+ public static final int T__50=50;
+ public static final int T__145=145;
+ public static final int T__140=140;
+ public static final int T__142=142;
+ public static final int T__141=141;
+ public static final int T__59=59;
+ 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__137=137;
+ public static final int T__52=52;
+ public static final int T__136=136;
+ public static final int T__53=53;
+ public static final int T__139=139;
+ public static final int T__54=54;
+ public static final int T__138=138;
+ public static final int T__133=133;
+ public static final int T__132=132;
+ public static final int T__60=60;
+ public static final int T__135=135;
+ public static final int T__61=61;
+ public static final int T__134=134;
+ public static final int RULE_ID=6;
+ public static final int T__131=131;
+ public static final int T__130=130;
+ public static final int RULE_INT=7;
+ public static final int T__66=66;
+ public static final int RULE_ML_COMMENT=16;
+ public static final int T__67=67;
+ public static final int T__129=129;
+ public static final int T__68=68;
+ public static final int T__69=69;
+ public static final int T__62=62;
+ public static final int T__126=126;
+ public static final int T__63=63;
+ public static final int T__125=125;
+ public static final int T__64=64;
+ public static final int T__128=128;
+ public static final int T__65=65;
+ public static final int T__127=127;
+ public static final int T__166=166;
+ public static final int T__165=165;
+ public static final int T__167=167;
+ public static final int T__162=162;
+ public static final int T__161=161;
+ public static final int T__164=164;
+ public static final int T__163=163;
+ public static final int T__160=160;
+ public static final int RULE_IDENTIFIER_DIGITS=13;
+ public static final int RULE_UNICODE_ESCAPE=9;
+ 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_IDENTIFIER_PART=10;
+ 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__159=159;
+ public static final int T__30=30;
+ public static final int T__158=158;
+ public static final int T__31=31;
+ public static final int T__32=32;
+ public static final int T__155=155;
+ public static final int T__154=154;
+ public static final int T__157=157;
+ public static final int T__156=156;
+ public static final int T__151=151;
+ public static final int T__150=150;
+ public static final int T__153=153;
+ public static final int T__152=152;
+ public static final int T__48=48;
+ public static final int T__49=49;
+ public static final int T__44=44;
+ public static final int T__45=45;
+ public static final int RULE_HEX_DIGIT=14;
+ public static final int T__46=46;
+ public static final int T__47=47;
+ public static final int T__40=40;
+ public static final int T__148=148;
+ public static final int T__41=41;
+ public static final int T__147=147;
+ public static final int T__42=42;
+ public static final int T__43=43;
+ public static final int T__149=149;
+ public static final int T__91=91;
+ public static final int T__100=100;
+ public static final int T__92=92;
+ public static final int T__93=93;
+ public static final int T__102=102;
+ public static final int T__94=94;
+ public static final int T__101=101;
+ public static final int T__90=90;
+ public static final int T__19=19;
+ public static final int RULE_IDENTIFIER_START=8;
+ public static final int T__18=18;
+ public static final int T__99=99;
+ public static final int T__95=95;
+ public static final int T__96=96;
+ public static final int T__97=97;
+ public static final int T__98=98;
+ public static final int T__26=26;
+ public static final int T__27=27;
+ public static final int T__28=28;
+ public static final int T__29=29;
+ public static final int T__22=22;
+ public static final int T__23=23;
+ public static final int T__24=24;
+ public static final int T__25=25;
+ public static final int T__20=20;
+ public static final int T__21=21;
+ public static final int T__122=122;
+ public static final int T__70=70;
+ public static final int T__121=121;
+ public static final int T__71=71;
+ public static final int T__124=124;
+ public static final int T__72=72;
+ public static final int T__123=123;
+ public static final int T__120=120;
+ public static final int RULE_STRING=4;
+ public static final int RULE_SL_COMMENT=17;
+ public static final int T__77=77;
+ public static final int T__119=119;
+ public static final int T__78=78;
+ public static final int T__118=118;
+ public static final int T__79=79;
+ public static final int T__73=73;
+ public static final int T__115=115;
+ public static final int EOF=-1;
+ public static final int T__74=74;
+ public static final int T__114=114;
+ public static final int T__75=75;
+ public static final int T__117=117;
+ public static final int T__76=76;
+ public static final int T__116=116;
+ public static final int T__80=80;
+ public static final int T__111=111;
+ public static final int T__81=81;
+ public static final int T__110=110;
+ public static final int RULE_RICH_STRING=5;
+ public static final int T__82=82;
+ public static final int T__113=113;
+ public static final int T__83=83;
+ public static final int T__112=112;
+ public static final int RULE_WS=15;
+ public static final int RULE_IDENTIFIER_PART_IMPL=12;
+ public static final int RULE_IDENTIFIER_START_IMPL=11;
+ public static final int T__88=88;
+ public static final int T__108=108;
+ public static final int T__89=89;
+ public static final int T__107=107;
+ public static final int T__109=109;
+ public static final int T__84=84;
+ public static final int T__104=104;
+ public static final int T__85=85;
+ public static final int T__103=103;
+ public static final int T__86=86;
+ public static final int T__106=106;
+ public static final int T__87=87;
+ public static final int T__105=105;
+
+ // delegates
+ // delegators
+
+
+ public InternalRBAModelParser(TokenStream input) {
+ this(input, new RecognizerSharedState());
+ }
+ public InternalRBAModelParser(TokenStream input, RecognizerSharedState state) {
+ super(input, state);
+
+ }
+
+
+ public String[] getTokenNames() { return InternalRBAModelParser.tokenNames; }
+ public String getGrammarFileName() { return "InternalRBAModel.g"; }
+
+
+ private RBAModelGrammarAccess grammarAccess;
+
+ public void setGrammarAccess(RBAModelGrammarAccess grammarAccess) {
+ this.grammarAccess = grammarAccess;
+ }
+
+ @Override
+ protected Grammar getGrammar() {
+ return grammarAccess.getGrammar();
+ }
+
+ @Override
+ protected String getValueForTokenName(String tokenName) {
+ return tokenName;
+ }
+
+
+
+ // $ANTLR start "entryRuleTopLevel"
+ // InternalRBAModel.g:54:1: entryRuleTopLevel : ruleTopLevel EOF ;
+ public final void entryRuleTopLevel() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:55:1: ( ruleTopLevel EOF )
+ // InternalRBAModel.g:56:1: ruleTopLevel EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getTopLevelRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleTopLevel();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getTopLevelRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleTopLevel"
+
+
+ // $ANTLR start "ruleTopLevel"
+ // InternalRBAModel.g:63:1: ruleTopLevel : ( ( rule__TopLevel__Group__0 ) ) ;
+ public final void ruleTopLevel() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:67:2: ( ( ( rule__TopLevel__Group__0 ) ) )
+ // InternalRBAModel.g:68:2: ( ( rule__TopLevel__Group__0 ) )
+ {
+ // InternalRBAModel.g:68:2: ( ( rule__TopLevel__Group__0 ) )
+ // InternalRBAModel.g:69:3: ( rule__TopLevel__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getTopLevelAccess().getGroup());
+ }
+ // InternalRBAModel.g:70:3: ( rule__TopLevel__Group__0 )
+ // InternalRBAModel.g:70:4: rule__TopLevel__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__TopLevel__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getTopLevelAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleTopLevel"
+
+
+ // $ANTLR start "entryRuleImport"
+ // InternalRBAModel.g:79:1: entryRuleImport : ruleImport EOF ;
+ public final void entryRuleImport() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:80:1: ( ruleImport EOF )
+ // InternalRBAModel.g:81:1: ruleImport EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getImportRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleImport();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getImportRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleImport"
+
+
+ // $ANTLR start "ruleImport"
+ // InternalRBAModel.g:88:1: ruleImport : ( ( rule__Import__Group__0 ) ) ;
+ public final void ruleImport() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:92:2: ( ( ( rule__Import__Group__0 ) ) )
+ // InternalRBAModel.g:93:2: ( ( rule__Import__Group__0 ) )
+ {
+ // InternalRBAModel.g:93:2: ( ( rule__Import__Group__0 ) )
+ // InternalRBAModel.g:94:3: ( rule__Import__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getImportAccess().getGroup());
+ }
+ // InternalRBAModel.g:95:3: ( rule__Import__Group__0 )
+ // InternalRBAModel.g:95:4: rule__Import__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Import__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getImportAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleImport"
+
+
+ // $ANTLR start "entryRulePackagableElement"
+ // InternalRBAModel.g:104:1: entryRulePackagableElement : rulePackagableElement EOF ;
+ public final void entryRulePackagableElement() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:105:1: ( rulePackagableElement EOF )
+ // InternalRBAModel.g:106:1: rulePackagableElement EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPackagableElementRule());
+ }
+ pushFollow(FOLLOW_1);
+ rulePackagableElement();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPackagableElementRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRulePackagableElement"
+
+
+ // $ANTLR start "rulePackagableElement"
+ // InternalRBAModel.g:113:1: rulePackagableElement : ( ( rule__PackagableElement__Alternatives ) ) ;
+ public final void rulePackagableElement() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:117:2: ( ( ( rule__PackagableElement__Alternatives ) ) )
+ // InternalRBAModel.g:118:2: ( ( rule__PackagableElement__Alternatives ) )
+ {
+ // InternalRBAModel.g:118:2: ( ( rule__PackagableElement__Alternatives ) )
+ // InternalRBAModel.g:119:3: ( rule__PackagableElement__Alternatives )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPackagableElementAccess().getAlternatives());
+ }
+ // InternalRBAModel.g:120:3: ( rule__PackagableElement__Alternatives )
+ // InternalRBAModel.g:120:4: rule__PackagableElement__Alternatives
+ {
+ pushFollow(FOLLOW_2);
+ rule__PackagableElement__Alternatives();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPackagableElementAccess().getAlternatives());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rulePackagableElement"
+
+
+ // $ANTLR start "entryRuleAbstractConstraint"
+ // InternalRBAModel.g:129:1: entryRuleAbstractConstraint : ruleAbstractConstraint EOF ;
+ public final void entryRuleAbstractConstraint() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:130:1: ( ruleAbstractConstraint EOF )
+ // InternalRBAModel.g:131:1: ruleAbstractConstraint EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAbstractConstraintRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleAbstractConstraint();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAbstractConstraintRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleAbstractConstraint"
+
+
+ // $ANTLR start "ruleAbstractConstraint"
+ // InternalRBAModel.g:138:1: ruleAbstractConstraint : ( ruleConstraint ) ;
+ public final void ruleAbstractConstraint() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:142:2: ( ( ruleConstraint ) )
+ // InternalRBAModel.g:143:2: ( ruleConstraint )
+ {
+ // InternalRBAModel.g:143:2: ( ruleConstraint )
+ // InternalRBAModel.g:144:3: ruleConstraint
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAbstractConstraintAccess().getConstraintParserRuleCall());
+ }
+ pushFollow(FOLLOW_2);
+ ruleConstraint();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAbstractConstraintAccess().getConstraintParserRuleCall());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleAbstractConstraint"
+
+
+ // $ANTLR start "entryRuleSizeIdentifier"
+ // InternalRBAModel.g:154:1: entryRuleSizeIdentifier : ruleSizeIdentifier EOF ;
+ public final void entryRuleSizeIdentifier() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:155:1: ( ruleSizeIdentifier EOF )
+ // InternalRBAModel.g:156:1: ruleSizeIdentifier EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSizeIdentifierRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleSizeIdentifier();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSizeIdentifierRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleSizeIdentifier"
+
+
+ // $ANTLR start "ruleSizeIdentifier"
+ // InternalRBAModel.g:163:1: ruleSizeIdentifier : ( ( rule__SizeIdentifier__Alternatives ) ) ;
+ public final void ruleSizeIdentifier() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:167:2: ( ( ( rule__SizeIdentifier__Alternatives ) ) )
+ // InternalRBAModel.g:168:2: ( ( rule__SizeIdentifier__Alternatives ) )
+ {
+ // InternalRBAModel.g:168:2: ( ( rule__SizeIdentifier__Alternatives ) )
+ // InternalRBAModel.g:169:3: ( rule__SizeIdentifier__Alternatives )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSizeIdentifierAccess().getAlternatives());
+ }
+ // InternalRBAModel.g:170:3: ( rule__SizeIdentifier__Alternatives )
+ // InternalRBAModel.g:170:4: rule__SizeIdentifier__Alternatives
+ {
+ pushFollow(FOLLOW_2);
+ rule__SizeIdentifier__Alternatives();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSizeIdentifierAccess().getAlternatives());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleSizeIdentifier"
+
+
+ // $ANTLR start "entryRuleRuleObject"
+ // InternalRBAModel.g:179:1: entryRuleRuleObject : ruleRuleObject EOF ;
+ public final void entryRuleRuleObject() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:180:1: ( ruleRuleObject EOF )
+ // InternalRBAModel.g:181:1: ruleRuleObject EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getRuleObjectRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleRuleObject();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getRuleObjectRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleRuleObject"
+
+
+ // $ANTLR start "ruleRuleObject"
+ // InternalRBAModel.g:188:1: ruleRuleObject : ( ( rule__RuleObject__Alternatives ) ) ;
+ public final void ruleRuleObject() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:192:2: ( ( ( rule__RuleObject__Alternatives ) ) )
+ // InternalRBAModel.g:193:2: ( ( rule__RuleObject__Alternatives ) )
+ {
+ // InternalRBAModel.g:193:2: ( ( rule__RuleObject__Alternatives ) )
+ // InternalRBAModel.g:194:3: ( rule__RuleObject__Alternatives )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getRuleObjectAccess().getAlternatives());
+ }
+ // InternalRBAModel.g:195:3: ( rule__RuleObject__Alternatives )
+ // InternalRBAModel.g:195:4: rule__RuleObject__Alternatives
+ {
+ pushFollow(FOLLOW_2);
+ rule__RuleObject__Alternatives();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getRuleObjectAccess().getAlternatives());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleRuleObject"
+
+
+ // $ANTLR start "entryRuleAbstractAllocatable"
+ // InternalRBAModel.g:204:1: entryRuleAbstractAllocatable : ruleAbstractAllocatable EOF ;
+ public final void entryRuleAbstractAllocatable() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:205:1: ( ruleAbstractAllocatable EOF )
+ // InternalRBAModel.g:206:1: ruleAbstractAllocatable EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAbstractAllocatableRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleAbstractAllocatable();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAbstractAllocatableRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleAbstractAllocatable"
+
+
+ // $ANTLR start "ruleAbstractAllocatable"
+ // InternalRBAModel.g:213:1: ruleAbstractAllocatable : ( ( rule__AbstractAllocatable__Alternatives ) ) ;
+ public final void ruleAbstractAllocatable() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:217:2: ( ( ( rule__AbstractAllocatable__Alternatives ) ) )
+ // InternalRBAModel.g:218:2: ( ( rule__AbstractAllocatable__Alternatives ) )
+ {
+ // InternalRBAModel.g:218:2: ( ( rule__AbstractAllocatable__Alternatives ) )
+ // InternalRBAModel.g:219:3: ( rule__AbstractAllocatable__Alternatives )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAbstractAllocatableAccess().getAlternatives());
+ }
+ // InternalRBAModel.g:220:3: ( rule__AbstractAllocatable__Alternatives )
+ // InternalRBAModel.g:220:4: rule__AbstractAllocatable__Alternatives
+ {
+ pushFollow(FOLLOW_2);
+ rule__AbstractAllocatable__Alternatives();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAbstractAllocatableAccess().getAlternatives());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleAbstractAllocatable"
+
+
+ // $ANTLR start "entryRuleAllocatable"
+ // InternalRBAModel.g:229:1: entryRuleAllocatable : ruleAllocatable EOF ;
+ public final void entryRuleAllocatable() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:230:1: ( ruleAllocatable EOF )
+ // InternalRBAModel.g:231:1: ruleAllocatable EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAllocatableRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleAllocatable();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAllocatableRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleAllocatable"
+
+
+ // $ANTLR start "ruleAllocatable"
+ // InternalRBAModel.g:238:1: ruleAllocatable : ( ( rule__Allocatable__Alternatives ) ) ;
+ public final void ruleAllocatable() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:242:2: ( ( ( rule__Allocatable__Alternatives ) ) )
+ // InternalRBAModel.g:243:2: ( ( rule__Allocatable__Alternatives ) )
+ {
+ // InternalRBAModel.g:243:2: ( ( rule__Allocatable__Alternatives ) )
+ // InternalRBAModel.g:244:3: ( rule__Allocatable__Alternatives )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAllocatableAccess().getAlternatives());
+ }
+ // InternalRBAModel.g:245:3: ( rule__Allocatable__Alternatives )
+ // InternalRBAModel.g:245:4: rule__Allocatable__Alternatives
+ {
+ pushFollow(FOLLOW_2);
+ rule__Allocatable__Alternatives();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAllocatableAccess().getAlternatives());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleAllocatable"
+
+
+ // $ANTLR start "entryRuleAllocatableSet"
+ // InternalRBAModel.g:254:1: entryRuleAllocatableSet : ruleAllocatableSet EOF ;
+ public final void entryRuleAllocatableSet() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:255:1: ( ruleAllocatableSet EOF )
+ // InternalRBAModel.g:256:1: ruleAllocatableSet EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAllocatableSetRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleAllocatableSet();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAllocatableSetRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleAllocatableSet"
+
+
+ // $ANTLR start "ruleAllocatableSet"
+ // InternalRBAModel.g:263:1: ruleAllocatableSet : ( ( rule__AllocatableSet__Alternatives ) ) ;
+ public final void ruleAllocatableSet() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:267:2: ( ( ( rule__AllocatableSet__Alternatives ) ) )
+ // InternalRBAModel.g:268:2: ( ( rule__AllocatableSet__Alternatives ) )
+ {
+ // InternalRBAModel.g:268:2: ( ( rule__AllocatableSet__Alternatives ) )
+ // InternalRBAModel.g:269:3: ( rule__AllocatableSet__Alternatives )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAllocatableSetAccess().getAlternatives());
+ }
+ // InternalRBAModel.g:270:3: ( rule__AllocatableSet__Alternatives )
+ // InternalRBAModel.g:270:4: rule__AllocatableSet__Alternatives
+ {
+ pushFollow(FOLLOW_2);
+ rule__AllocatableSet__Alternatives();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAllocatableSetAccess().getAlternatives());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleAllocatableSet"
+
+
+ // $ANTLR start "entryRuleAbstractContent"
+ // InternalRBAModel.g:279:1: entryRuleAbstractContent : ruleAbstractContent EOF ;
+ public final void entryRuleAbstractContent() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:280:1: ( ruleAbstractContent EOF )
+ // InternalRBAModel.g:281:1: ruleAbstractContent EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAbstractContentRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleAbstractContent();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAbstractContentRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleAbstractContent"
+
+
+ // $ANTLR start "ruleAbstractContent"
+ // InternalRBAModel.g:288:1: ruleAbstractContent : ( ( rule__AbstractContent__Alternatives ) ) ;
+ public final void ruleAbstractContent() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:292:2: ( ( ( rule__AbstractContent__Alternatives ) ) )
+ // InternalRBAModel.g:293:2: ( ( rule__AbstractContent__Alternatives ) )
+ {
+ // InternalRBAModel.g:293:2: ( ( rule__AbstractContent__Alternatives ) )
+ // InternalRBAModel.g:294:3: ( rule__AbstractContent__Alternatives )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAbstractContentAccess().getAlternatives());
+ }
+ // InternalRBAModel.g:295:3: ( rule__AbstractContent__Alternatives )
+ // InternalRBAModel.g:295:4: rule__AbstractContent__Alternatives
+ {
+ pushFollow(FOLLOW_2);
+ rule__AbstractContent__Alternatives();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAbstractContentAccess().getAlternatives());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleAbstractContent"
+
+
+ // $ANTLR start "entryRuleContent"
+ // InternalRBAModel.g:304:1: entryRuleContent : ruleContent EOF ;
+ public final void entryRuleContent() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:305:1: ( ruleContent EOF )
+ // InternalRBAModel.g:306:1: ruleContent EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getContentRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleContent();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getContentRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleContent"
+
+
+ // $ANTLR start "ruleContent"
+ // InternalRBAModel.g:313:1: ruleContent : ( ( rule__Content__Alternatives ) ) ;
+ public final void ruleContent() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:317:2: ( ( ( rule__Content__Alternatives ) ) )
+ // InternalRBAModel.g:318:2: ( ( rule__Content__Alternatives ) )
+ {
+ // InternalRBAModel.g:318:2: ( ( rule__Content__Alternatives ) )
+ // InternalRBAModel.g:319:3: ( rule__Content__Alternatives )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getContentAccess().getAlternatives());
+ }
+ // InternalRBAModel.g:320:3: ( rule__Content__Alternatives )
+ // InternalRBAModel.g:320:4: rule__Content__Alternatives
+ {
+ pushFollow(FOLLOW_2);
+ rule__Content__Alternatives();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getContentAccess().getAlternatives());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleContent"
+
+
+ // $ANTLR start "entryRuleContentSet"
+ // InternalRBAModel.g:329:1: entryRuleContentSet : ruleContentSet EOF ;
+ public final void entryRuleContentSet() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:330:1: ( ruleContentSet EOF )
+ // InternalRBAModel.g:331:1: ruleContentSet EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getContentSetRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleContentSet();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getContentSetRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleContentSet"
+
+
+ // $ANTLR start "ruleContentSet"
+ // InternalRBAModel.g:338:1: ruleContentSet : ( ( rule__ContentSet__Alternatives ) ) ;
+ public final void ruleContentSet() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:342:2: ( ( ( rule__ContentSet__Alternatives ) ) )
+ // InternalRBAModel.g:343:2: ( ( rule__ContentSet__Alternatives ) )
+ {
+ // InternalRBAModel.g:343:2: ( ( rule__ContentSet__Alternatives ) )
+ // InternalRBAModel.g:344:3: ( rule__ContentSet__Alternatives )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getContentSetAccess().getAlternatives());
+ }
+ // InternalRBAModel.g:345:3: ( rule__ContentSet__Alternatives )
+ // InternalRBAModel.g:345:4: rule__ContentSet__Alternatives
+ {
+ pushFollow(FOLLOW_2);
+ rule__ContentSet__Alternatives();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getContentSetAccess().getAlternatives());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleContentSet"
+
+
+ // $ANTLR start "entryRuleAbstractScene"
+ // InternalRBAModel.g:354:1: entryRuleAbstractScene : ruleAbstractScene EOF ;
+ public final void entryRuleAbstractScene() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:355:1: ( ruleAbstractScene EOF )
+ // InternalRBAModel.g:356:1: ruleAbstractScene EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAbstractSceneRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleAbstractScene();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAbstractSceneRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleAbstractScene"
+
+
+ // $ANTLR start "ruleAbstractScene"
+ // InternalRBAModel.g:363:1: ruleAbstractScene : ( ruleScene ) ;
+ public final void ruleAbstractScene() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:367:2: ( ( ruleScene ) )
+ // InternalRBAModel.g:368:2: ( ruleScene )
+ {
+ // InternalRBAModel.g:368:2: ( ruleScene )
+ // InternalRBAModel.g:369:3: ruleScene
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAbstractSceneAccess().getSceneParserRuleCall());
+ }
+ pushFollow(FOLLOW_2);
+ ruleScene();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAbstractSceneAccess().getSceneParserRuleCall());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleAbstractScene"
+
+
+ // $ANTLR start "entryRuleAbstractProperty"
+ // InternalRBAModel.g:379:1: entryRuleAbstractProperty : ruleAbstractProperty EOF ;
+ public final void entryRuleAbstractProperty() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:380:1: ( ruleAbstractProperty EOF )
+ // InternalRBAModel.g:381:1: ruleAbstractProperty EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAbstractPropertyRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleAbstractProperty();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAbstractPropertyRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleAbstractProperty"
+
+
+ // $ANTLR start "ruleAbstractProperty"
+ // InternalRBAModel.g:388:1: ruleAbstractProperty : ( ( rule__AbstractProperty__Group__0 ) ) ;
+ public final void ruleAbstractProperty() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:392:2: ( ( ( rule__AbstractProperty__Group__0 ) ) )
+ // InternalRBAModel.g:393:2: ( ( rule__AbstractProperty__Group__0 ) )
+ {
+ // InternalRBAModel.g:393:2: ( ( rule__AbstractProperty__Group__0 ) )
+ // InternalRBAModel.g:394:3: ( rule__AbstractProperty__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAbstractPropertyAccess().getGroup());
+ }
+ // InternalRBAModel.g:395:3: ( rule__AbstractProperty__Group__0 )
+ // InternalRBAModel.g:395:4: rule__AbstractProperty__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__AbstractProperty__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAbstractPropertyAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleAbstractProperty"
+
+
+ // $ANTLR start "entryRuleLayoutManager"
+ // InternalRBAModel.g:404:1: entryRuleLayoutManager : ruleLayoutManager EOF ;
+ public final void entryRuleLayoutManager() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:405:1: ( ruleLayoutManager EOF )
+ // InternalRBAModel.g:406:1: ruleLayoutManager EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLayoutManagerRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleLayoutManager();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLayoutManagerRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleLayoutManager"
+
+
+ // $ANTLR start "ruleLayoutManager"
+ // InternalRBAModel.g:413:1: ruleLayoutManager : ( ( rule__LayoutManager__Alternatives ) ) ;
+ public final void ruleLayoutManager() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:417:2: ( ( ( rule__LayoutManager__Alternatives ) ) )
+ // InternalRBAModel.g:418:2: ( ( rule__LayoutManager__Alternatives ) )
+ {
+ // InternalRBAModel.g:418:2: ( ( rule__LayoutManager__Alternatives ) )
+ // InternalRBAModel.g:419:3: ( rule__LayoutManager__Alternatives )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLayoutManagerAccess().getAlternatives());
+ }
+ // InternalRBAModel.g:420:3: ( rule__LayoutManager__Alternatives )
+ // InternalRBAModel.g:420:4: rule__LayoutManager__Alternatives
+ {
+ pushFollow(FOLLOW_2);
+ rule__LayoutManager__Alternatives();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLayoutManagerAccess().getAlternatives());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleLayoutManager"
+
+
+ // $ANTLR start "entryRuleAlignedLayout"
+ // InternalRBAModel.g:429:1: entryRuleAlignedLayout : ruleAlignedLayout EOF ;
+ public final void entryRuleAlignedLayout() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:430:1: ( ruleAlignedLayout EOF )
+ // InternalRBAModel.g:431:1: ruleAlignedLayout EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAlignedLayoutRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleAlignedLayout();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAlignedLayoutRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleAlignedLayout"
+
+
+ // $ANTLR start "ruleAlignedLayout"
+ // InternalRBAModel.g:438:1: ruleAlignedLayout : ( ( rule__AlignedLayout__Alternatives ) ) ;
+ public final void ruleAlignedLayout() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:442:2: ( ( ( rule__AlignedLayout__Alternatives ) ) )
+ // InternalRBAModel.g:443:2: ( ( rule__AlignedLayout__Alternatives ) )
+ {
+ // InternalRBAModel.g:443:2: ( ( rule__AlignedLayout__Alternatives ) )
+ // InternalRBAModel.g:444:3: ( rule__AlignedLayout__Alternatives )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAlignedLayoutAccess().getAlternatives());
+ }
+ // InternalRBAModel.g:445:3: ( rule__AlignedLayout__Alternatives )
+ // InternalRBAModel.g:445:4: rule__AlignedLayout__Alternatives
+ {
+ pushFollow(FOLLOW_2);
+ rule__AlignedLayout__Alternatives();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAlignedLayoutAccess().getAlternatives());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleAlignedLayout"
+
+
+ // $ANTLR start "entryRuleTag"
+ // InternalRBAModel.g:454:1: entryRuleTag : ruleTag EOF ;
+ public final void entryRuleTag() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:455:1: ( ruleTag EOF )
+ // InternalRBAModel.g:456:1: ruleTag EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getTagRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleTag();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getTagRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleTag"
+
+
+ // $ANTLR start "ruleTag"
+ // InternalRBAModel.g:463:1: ruleTag : ( ( rule__Tag__Group__0 ) ) ;
+ public final void ruleTag() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:467:2: ( ( ( rule__Tag__Group__0 ) ) )
+ // InternalRBAModel.g:468:2: ( ( rule__Tag__Group__0 ) )
+ {
+ // InternalRBAModel.g:468:2: ( ( rule__Tag__Group__0 ) )
+ // InternalRBAModel.g:469:3: ( rule__Tag__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getTagAccess().getGroup());
+ }
+ // InternalRBAModel.g:470:3: ( rule__Tag__Group__0 )
+ // InternalRBAModel.g:470:4: rule__Tag__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Tag__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getTagAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleTag"
+
+
+ // $ANTLR start "entryRulePackage"
+ // InternalRBAModel.g:479:1: entryRulePackage : rulePackage EOF ;
+ public final void entryRulePackage() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:480:1: ( rulePackage EOF )
+ // InternalRBAModel.g:481:1: rulePackage EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPackageRule());
+ }
+ pushFollow(FOLLOW_1);
+ rulePackage();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPackageRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRulePackage"
+
+
+ // $ANTLR start "rulePackage"
+ // InternalRBAModel.g:488:1: rulePackage : ( ( rule__Package__Group__0 ) ) ;
+ public final void rulePackage() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:492:2: ( ( ( rule__Package__Group__0 ) ) )
+ // InternalRBAModel.g:493:2: ( ( rule__Package__Group__0 ) )
+ {
+ // InternalRBAModel.g:493:2: ( ( rule__Package__Group__0 ) )
+ // InternalRBAModel.g:494:3: ( rule__Package__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPackageAccess().getGroup());
+ }
+ // InternalRBAModel.g:495:3: ( rule__Package__Group__0 )
+ // InternalRBAModel.g:495:4: rule__Package__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Package__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPackageAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rulePackage"
+
+
+ // $ANTLR start "entryRuleStereotype"
+ // InternalRBAModel.g:504:1: entryRuleStereotype : ruleStereotype EOF ;
+ public final void entryRuleStereotype() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:505:1: ( ruleStereotype EOF )
+ // InternalRBAModel.g:506:1: ruleStereotype EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getStereotypeRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleStereotype();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getStereotypeRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleStereotype"
+
+
+ // $ANTLR start "ruleStereotype"
+ // InternalRBAModel.g:513:1: ruleStereotype : ( ( rule__Stereotype__Group__0 ) ) ;
+ public final void ruleStereotype() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:517:2: ( ( ( rule__Stereotype__Group__0 ) ) )
+ // InternalRBAModel.g:518:2: ( ( rule__Stereotype__Group__0 ) )
+ {
+ // InternalRBAModel.g:518:2: ( ( rule__Stereotype__Group__0 ) )
+ // InternalRBAModel.g:519:3: ( rule__Stereotype__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getStereotypeAccess().getGroup());
+ }
+ // InternalRBAModel.g:520:3: ( rule__Stereotype__Group__0 )
+ // InternalRBAModel.g:520:4: rule__Stereotype__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Stereotype__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getStereotypeAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleStereotype"
+
+
+ // $ANTLR start "entryRuleStereotypableElementName"
+ // InternalRBAModel.g:529:1: entryRuleStereotypableElementName : ruleStereotypableElementName EOF ;
+ public final void entryRuleStereotypableElementName() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:530:1: ( ruleStereotypableElementName EOF )
+ // InternalRBAModel.g:531:1: ruleStereotypableElementName EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getStereotypableElementNameRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleStereotypableElementName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getStereotypableElementNameRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleStereotypableElementName"
+
+
+ // $ANTLR start "ruleStereotypableElementName"
+ // InternalRBAModel.g:538:1: ruleStereotypableElementName : ( ( rule__StereotypableElementName__Alternatives ) ) ;
+ public final void ruleStereotypableElementName() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:542:2: ( ( ( rule__StereotypableElementName__Alternatives ) ) )
+ // InternalRBAModel.g:543:2: ( ( rule__StereotypableElementName__Alternatives ) )
+ {
+ // InternalRBAModel.g:543:2: ( ( rule__StereotypableElementName__Alternatives ) )
+ // InternalRBAModel.g:544:3: ( rule__StereotypableElementName__Alternatives )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getStereotypableElementNameAccess().getAlternatives());
+ }
+ // InternalRBAModel.g:545:3: ( rule__StereotypableElementName__Alternatives )
+ // InternalRBAModel.g:545:4: rule__StereotypableElementName__Alternatives
+ {
+ pushFollow(FOLLOW_2);
+ rule__StereotypableElementName__Alternatives();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getStereotypableElementNameAccess().getAlternatives());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleStereotypableElementName"
+
+
+ // $ANTLR start "entryRuleDisplay"
+ // InternalRBAModel.g:554:1: entryRuleDisplay : ruleDisplay EOF ;
+ public final void entryRuleDisplay() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:555:1: ( ruleDisplay EOF )
+ // InternalRBAModel.g:556:1: ruleDisplay EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getDisplayRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleDisplay();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getDisplayRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleDisplay"
+
+
+ // $ANTLR start "ruleDisplay"
+ // InternalRBAModel.g:563:1: ruleDisplay : ( ( rule__Display__Group__0 ) ) ;
+ public final void ruleDisplay() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:567:2: ( ( ( rule__Display__Group__0 ) ) )
+ // InternalRBAModel.g:568:2: ( ( rule__Display__Group__0 ) )
+ {
+ // InternalRBAModel.g:568:2: ( ( rule__Display__Group__0 ) )
+ // InternalRBAModel.g:569:3: ( rule__Display__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getDisplayAccess().getGroup());
+ }
+ // InternalRBAModel.g:570:3: ( rule__Display__Group__0 )
+ // InternalRBAModel.g:570:4: rule__Display__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Display__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getDisplayAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleDisplay"
+
+
+ // $ANTLR start "entryRuleConstraint"
+ // InternalRBAModel.g:579:1: entryRuleConstraint : ruleConstraint EOF ;
+ public final void entryRuleConstraint() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:580:1: ( ruleConstraint EOF )
+ // InternalRBAModel.g:581:1: ruleConstraint EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getConstraintRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleConstraint();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getConstraintRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleConstraint"
+
+
+ // $ANTLR start "ruleConstraint"
+ // InternalRBAModel.g:588:1: ruleConstraint : ( ( rule__Constraint__Group__0 ) ) ;
+ public final void ruleConstraint() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:592:2: ( ( ( rule__Constraint__Group__0 ) ) )
+ // InternalRBAModel.g:593:2: ( ( rule__Constraint__Group__0 ) )
+ {
+ // InternalRBAModel.g:593:2: ( ( rule__Constraint__Group__0 ) )
+ // InternalRBAModel.g:594:3: ( rule__Constraint__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getConstraintAccess().getGroup());
+ }
+ // InternalRBAModel.g:595:3: ( rule__Constraint__Group__0 )
+ // InternalRBAModel.g:595:4: rule__Constraint__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Constraint__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getConstraintAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleConstraint"
+
+
+ // $ANTLR start "entryRuleViewContent"
+ // InternalRBAModel.g:604:1: entryRuleViewContent : ruleViewContent EOF ;
+ public final void entryRuleViewContent() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:605:1: ( ruleViewContent EOF )
+ // InternalRBAModel.g:606:1: ruleViewContent EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleViewContent();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleViewContent"
+
+
+ // $ANTLR start "ruleViewContent"
+ // InternalRBAModel.g:613:1: ruleViewContent : ( ( rule__ViewContent__Group__0 ) ) ;
+ public final void ruleViewContent() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:617:2: ( ( ( rule__ViewContent__Group__0 ) ) )
+ // InternalRBAModel.g:618:2: ( ( rule__ViewContent__Group__0 ) )
+ {
+ // InternalRBAModel.g:618:2: ( ( rule__ViewContent__Group__0 ) )
+ // InternalRBAModel.g:619:3: ( rule__ViewContent__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentAccess().getGroup());
+ }
+ // InternalRBAModel.g:620:3: ( rule__ViewContent__Group__0 )
+ // InternalRBAModel.g:620:4: rule__ViewContent__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContent__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleViewContent"
+
+
+ // $ANTLR start "entryRuleSoundContent"
+ // InternalRBAModel.g:629:1: entryRuleSoundContent : ruleSoundContent EOF ;
+ public final void entryRuleSoundContent() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:630:1: ( ruleSoundContent EOF )
+ // InternalRBAModel.g:631:1: ruleSoundContent EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleSoundContent();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleSoundContent"
+
+
+ // $ANTLR start "ruleSoundContent"
+ // InternalRBAModel.g:638:1: ruleSoundContent : ( ( rule__SoundContent__Group__0 ) ) ;
+ public final void ruleSoundContent() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:642:2: ( ( ( rule__SoundContent__Group__0 ) ) )
+ // InternalRBAModel.g:643:2: ( ( rule__SoundContent__Group__0 ) )
+ {
+ // InternalRBAModel.g:643:2: ( ( rule__SoundContent__Group__0 ) )
+ // InternalRBAModel.g:644:3: ( rule__SoundContent__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentAccess().getGroup());
+ }
+ // InternalRBAModel.g:645:3: ( rule__SoundContent__Group__0 )
+ // InternalRBAModel.g:645:4: rule__SoundContent__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContent__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleSoundContent"
+
+
+ // $ANTLR start "entryRuleSize"
+ // InternalRBAModel.g:654:1: entryRuleSize : ruleSize EOF ;
+ public final void entryRuleSize() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:655:1: ( ruleSize EOF )
+ // InternalRBAModel.g:656:1: ruleSize EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSizeRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleSize();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSizeRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleSize"
+
+
+ // $ANTLR start "ruleSize"
+ // InternalRBAModel.g:663:1: ruleSize : ( ( rule__Size__Group__0 ) ) ;
+ public final void ruleSize() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:667:2: ( ( ( rule__Size__Group__0 ) ) )
+ // InternalRBAModel.g:668:2: ( ( rule__Size__Group__0 ) )
+ {
+ // InternalRBAModel.g:668:2: ( ( rule__Size__Group__0 ) )
+ // InternalRBAModel.g:669:3: ( rule__Size__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSizeAccess().getGroup());
+ }
+ // InternalRBAModel.g:670:3: ( rule__Size__Group__0 )
+ // InternalRBAModel.g:670:4: rule__Size__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Size__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSizeAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleSize"
+
+
+ // $ANTLR start "entryRuleSizeReference"
+ // InternalRBAModel.g:679:1: entryRuleSizeReference : ruleSizeReference EOF ;
+ public final void entryRuleSizeReference() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:680:1: ( ruleSizeReference EOF )
+ // InternalRBAModel.g:681:1: ruleSizeReference EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSizeReferenceRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleSizeReference();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSizeReferenceRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleSizeReference"
+
+
+ // $ANTLR start "ruleSizeReference"
+ // InternalRBAModel.g:688:1: ruleSizeReference : ( ( rule__SizeReference__Group__0 ) ) ;
+ public final void ruleSizeReference() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:692:2: ( ( ( rule__SizeReference__Group__0 ) ) )
+ // InternalRBAModel.g:693:2: ( ( rule__SizeReference__Group__0 ) )
+ {
+ // InternalRBAModel.g:693:2: ( ( rule__SizeReference__Group__0 ) )
+ // InternalRBAModel.g:694:3: ( rule__SizeReference__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSizeReferenceAccess().getGroup());
+ }
+ // InternalRBAModel.g:695:3: ( rule__SizeReference__Group__0 )
+ // InternalRBAModel.g:695:4: rule__SizeReference__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__SizeReference__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSizeReferenceAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleSizeReference"
+
+
+ // $ANTLR start "entryRuleOffset"
+ // InternalRBAModel.g:704:1: entryRuleOffset : ruleOffset EOF ;
+ public final void entryRuleOffset() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:705:1: ( ruleOffset EOF )
+ // InternalRBAModel.g:706:1: ruleOffset EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOffsetRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOffset();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOffsetRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOffset"
+
+
+ // $ANTLR start "ruleOffset"
+ // InternalRBAModel.g:713:1: ruleOffset : ( ( rule__Offset__Group__0 ) ) ;
+ public final void ruleOffset() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:717:2: ( ( ( rule__Offset__Group__0 ) ) )
+ // InternalRBAModel.g:718:2: ( ( rule__Offset__Group__0 ) )
+ {
+ // InternalRBAModel.g:718:2: ( ( rule__Offset__Group__0 ) )
+ // InternalRBAModel.g:719:3: ( rule__Offset__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOffsetAccess().getGroup());
+ }
+ // InternalRBAModel.g:720:3: ( rule__Offset__Group__0 )
+ // InternalRBAModel.g:720:4: rule__Offset__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Offset__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOffsetAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOffset"
+
+
+ // $ANTLR start "entryRuleAreaSet"
+ // InternalRBAModel.g:729:1: entryRuleAreaSet : ruleAreaSet EOF ;
+ public final void entryRuleAreaSet() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:730:1: ( ruleAreaSet EOF )
+ // InternalRBAModel.g:731:1: ruleAreaSet EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaSetRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleAreaSet();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaSetRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleAreaSet"
+
+
+ // $ANTLR start "ruleAreaSet"
+ // InternalRBAModel.g:738:1: ruleAreaSet : ( ( rule__AreaSet__Group__0 ) ) ;
+ public final void ruleAreaSet() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:742:2: ( ( ( rule__AreaSet__Group__0 ) ) )
+ // InternalRBAModel.g:743:2: ( ( rule__AreaSet__Group__0 ) )
+ {
+ // InternalRBAModel.g:743:2: ( ( rule__AreaSet__Group__0 ) )
+ // InternalRBAModel.g:744:3: ( rule__AreaSet__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaSetAccess().getGroup());
+ }
+ // InternalRBAModel.g:745:3: ( rule__AreaSet__Group__0 )
+ // InternalRBAModel.g:745:4: rule__AreaSet__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__AreaSet__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaSetAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleAreaSet"
+
+
+ // $ANTLR start "entryRuleZoneSet"
+ // InternalRBAModel.g:754:1: entryRuleZoneSet : ruleZoneSet EOF ;
+ public final void entryRuleZoneSet() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:755:1: ( ruleZoneSet EOF )
+ // InternalRBAModel.g:756:1: ruleZoneSet EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneSetRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleZoneSet();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneSetRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleZoneSet"
+
+
+ // $ANTLR start "ruleZoneSet"
+ // InternalRBAModel.g:763:1: ruleZoneSet : ( ( rule__ZoneSet__Group__0 ) ) ;
+ public final void ruleZoneSet() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:767:2: ( ( ( rule__ZoneSet__Group__0 ) ) )
+ // InternalRBAModel.g:768:2: ( ( rule__ZoneSet__Group__0 ) )
+ {
+ // InternalRBAModel.g:768:2: ( ( rule__ZoneSet__Group__0 ) )
+ // InternalRBAModel.g:769:3: ( rule__ZoneSet__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneSetAccess().getGroup());
+ }
+ // InternalRBAModel.g:770:3: ( rule__ZoneSet__Group__0 )
+ // InternalRBAModel.g:770:4: rule__ZoneSet__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ZoneSet__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneSetAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleZoneSet"
+
+
+ // $ANTLR start "entryRuleCompositeArea"
+ // InternalRBAModel.g:779:1: entryRuleCompositeArea : ruleCompositeArea EOF ;
+ public final void entryRuleCompositeArea() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:780:1: ( ruleCompositeArea EOF )
+ // InternalRBAModel.g:781:1: ruleCompositeArea EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCompositeAreaRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleCompositeArea();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCompositeAreaRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleCompositeArea"
+
+
+ // $ANTLR start "ruleCompositeArea"
+ // InternalRBAModel.g:788:1: ruleCompositeArea : ( ( rule__CompositeArea__Group__0 ) ) ;
+ public final void ruleCompositeArea() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:792:2: ( ( ( rule__CompositeArea__Group__0 ) ) )
+ // InternalRBAModel.g:793:2: ( ( rule__CompositeArea__Group__0 ) )
+ {
+ // InternalRBAModel.g:793:2: ( ( rule__CompositeArea__Group__0 ) )
+ // InternalRBAModel.g:794:3: ( rule__CompositeArea__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCompositeAreaAccess().getGroup());
+ }
+ // InternalRBAModel.g:795:3: ( rule__CompositeArea__Group__0 )
+ // InternalRBAModel.g:795:4: rule__CompositeArea__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__CompositeArea__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCompositeAreaAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleCompositeArea"
+
+
+ // $ANTLR start "entryRuleArea"
+ // InternalRBAModel.g:804:1: entryRuleArea : ruleArea EOF ;
+ public final void entryRuleArea() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:805:1: ( ruleArea EOF )
+ // InternalRBAModel.g:806:1: ruleArea EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleArea();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleArea"
+
+
+ // $ANTLR start "ruleArea"
+ // InternalRBAModel.g:813:1: ruleArea : ( ( rule__Area__Group__0 ) ) ;
+ public final void ruleArea() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:817:2: ( ( ( rule__Area__Group__0 ) ) )
+ // InternalRBAModel.g:818:2: ( ( rule__Area__Group__0 ) )
+ {
+ // InternalRBAModel.g:818:2: ( ( rule__Area__Group__0 ) )
+ // InternalRBAModel.g:819:3: ( rule__Area__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaAccess().getGroup());
+ }
+ // InternalRBAModel.g:820:3: ( rule__Area__Group__0 )
+ // InternalRBAModel.g:820:4: rule__Area__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Area__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleArea"
+
+
+ // $ANTLR start "entryRuleZone"
+ // InternalRBAModel.g:829:1: entryRuleZone : ruleZone EOF ;
+ public final void entryRuleZone() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:830:1: ( ruleZone EOF )
+ // InternalRBAModel.g:831:1: ruleZone EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleZone();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleZone"
+
+
+ // $ANTLR start "ruleZone"
+ // InternalRBAModel.g:838:1: ruleZone : ( ( rule__Zone__Group__0 ) ) ;
+ public final void ruleZone() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:842:2: ( ( ( rule__Zone__Group__0 ) ) )
+ // InternalRBAModel.g:843:2: ( ( rule__Zone__Group__0 ) )
+ {
+ // InternalRBAModel.g:843:2: ( ( rule__Zone__Group__0 ) )
+ // InternalRBAModel.g:844:3: ( rule__Zone__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneAccess().getGroup());
+ }
+ // InternalRBAModel.g:845:3: ( rule__Zone__Group__0 )
+ // InternalRBAModel.g:845:4: rule__Zone__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Zone__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleZone"
+
+
+ // $ANTLR start "entryRuleViewContentState"
+ // InternalRBAModel.g:854:1: entryRuleViewContentState : ruleViewContentState EOF ;
+ public final void entryRuleViewContentState() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:855:1: ( ruleViewContentState EOF )
+ // InternalRBAModel.g:856:1: ruleViewContentState EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentStateRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleViewContentState();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentStateRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleViewContentState"
+
+
+ // $ANTLR start "ruleViewContentState"
+ // InternalRBAModel.g:863:1: ruleViewContentState : ( ( rule__ViewContentState__Group__0 ) ) ;
+ public final void ruleViewContentState() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:867:2: ( ( ( rule__ViewContentState__Group__0 ) ) )
+ // InternalRBAModel.g:868:2: ( ( rule__ViewContentState__Group__0 ) )
+ {
+ // InternalRBAModel.g:868:2: ( ( rule__ViewContentState__Group__0 ) )
+ // InternalRBAModel.g:869:3: ( rule__ViewContentState__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentStateAccess().getGroup());
+ }
+ // InternalRBAModel.g:870:3: ( rule__ViewContentState__Group__0 )
+ // InternalRBAModel.g:870:4: rule__ViewContentState__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContentState__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentStateAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleViewContentState"
+
+
+ // $ANTLR start "entryRuleSoundContentState"
+ // InternalRBAModel.g:879:1: entryRuleSoundContentState : ruleSoundContentState EOF ;
+ public final void entryRuleSoundContentState() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:880:1: ( ruleSoundContentState EOF )
+ // InternalRBAModel.g:881:1: ruleSoundContentState EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentStateRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleSoundContentState();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentStateRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleSoundContentState"
+
+
+ // $ANTLR start "ruleSoundContentState"
+ // InternalRBAModel.g:888:1: ruleSoundContentState : ( ( rule__SoundContentState__Group__0 ) ) ;
+ public final void ruleSoundContentState() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:892:2: ( ( ( rule__SoundContentState__Group__0 ) ) )
+ // InternalRBAModel.g:893:2: ( ( rule__SoundContentState__Group__0 ) )
+ {
+ // InternalRBAModel.g:893:2: ( ( rule__SoundContentState__Group__0 ) )
+ // InternalRBAModel.g:894:3: ( rule__SoundContentState__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentStateAccess().getGroup());
+ }
+ // InternalRBAModel.g:895:3: ( rule__SoundContentState__Group__0 )
+ // InternalRBAModel.g:895:4: rule__SoundContentState__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContentState__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentStateAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleSoundContentState"
+
+
+ // $ANTLR start "entryRuleProject"
+ // InternalRBAModel.g:904:1: entryRuleProject : ruleProject EOF ;
+ public final void entryRuleProject() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:905:1: ( ruleProject EOF )
+ // InternalRBAModel.g:906:1: ruleProject EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getProjectRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleProject();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getProjectRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleProject"
+
+
+ // $ANTLR start "ruleProject"
+ // InternalRBAModel.g:913:1: ruleProject : ( ( rule__Project__Group__0 ) ) ;
+ public final void ruleProject() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:917:2: ( ( ( rule__Project__Group__0 ) ) )
+ // InternalRBAModel.g:918:2: ( ( rule__Project__Group__0 ) )
+ {
+ // InternalRBAModel.g:918:2: ( ( rule__Project__Group__0 ) )
+ // InternalRBAModel.g:919:3: ( rule__Project__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getProjectAccess().getGroup());
+ }
+ // InternalRBAModel.g:920:3: ( rule__Project__Group__0 )
+ // InternalRBAModel.g:920:4: rule__Project__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Project__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getProjectAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleProject"
+
+
+ // $ANTLR start "entryRuleVExpression"
+ // InternalRBAModel.g:929:1: entryRuleVExpression : ruleVExpression EOF ;
+ public final void entryRuleVExpression() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:930:1: ( ruleVExpression EOF )
+ // InternalRBAModel.g:931:1: ruleVExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVExpressionRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleVExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVExpressionRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleVExpression"
+
+
+ // $ANTLR start "ruleVExpression"
+ // InternalRBAModel.g:938:1: ruleVExpression : ( ruleVPlusOperator ) ;
+ public final void ruleVExpression() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:942:2: ( ( ruleVPlusOperator ) )
+ // InternalRBAModel.g:943:2: ( ruleVPlusOperator )
+ {
+ // InternalRBAModel.g:943:2: ( ruleVPlusOperator )
+ // InternalRBAModel.g:944:3: ruleVPlusOperator
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVExpressionAccess().getVPlusOperatorParserRuleCall());
+ }
+ pushFollow(FOLLOW_2);
+ ruleVPlusOperator();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVExpressionAccess().getVPlusOperatorParserRuleCall());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleVExpression"
+
+
+ // $ANTLR start "entryRuleVPlusOperator"
+ // InternalRBAModel.g:954:1: entryRuleVPlusOperator : ruleVPlusOperator EOF ;
+ public final void entryRuleVPlusOperator() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:955:1: ( ruleVPlusOperator EOF )
+ // InternalRBAModel.g:956:1: ruleVPlusOperator EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVPlusOperatorRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleVPlusOperator();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVPlusOperatorRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleVPlusOperator"
+
+
+ // $ANTLR start "ruleVPlusOperator"
+ // InternalRBAModel.g:963:1: ruleVPlusOperator : ( ( rule__VPlusOperator__Group__0 ) ) ;
+ public final void ruleVPlusOperator() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:967:2: ( ( ( rule__VPlusOperator__Group__0 ) ) )
+ // InternalRBAModel.g:968:2: ( ( rule__VPlusOperator__Group__0 ) )
+ {
+ // InternalRBAModel.g:968:2: ( ( rule__VPlusOperator__Group__0 ) )
+ // InternalRBAModel.g:969:3: ( rule__VPlusOperator__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVPlusOperatorAccess().getGroup());
+ }
+ // InternalRBAModel.g:970:3: ( rule__VPlusOperator__Group__0 )
+ // InternalRBAModel.g:970:4: rule__VPlusOperator__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__VPlusOperator__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVPlusOperatorAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleVPlusOperator"
+
+
+ // $ANTLR start "entryRuleOpPlus"
+ // InternalRBAModel.g:979:1: entryRuleOpPlus : ruleOpPlus EOF ;
+ public final void entryRuleOpPlus() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:980:1: ( ruleOpPlus EOF )
+ // InternalRBAModel.g:981:1: ruleOpPlus EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpPlusRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpPlus();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpPlusRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpPlus"
+
+
+ // $ANTLR start "ruleOpPlus"
+ // InternalRBAModel.g:988:1: ruleOpPlus : ( '+' ) ;
+ public final void ruleOpPlus() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:992:2: ( ( '+' ) )
+ // InternalRBAModel.g:993:2: ( '+' )
+ {
+ // InternalRBAModel.g:993:2: ( '+' )
+ // InternalRBAModel.g:994:3: '+'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpPlusAccess().getPlusSignKeyword());
+ }
+ match(input,18,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpPlusAccess().getPlusSignKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpPlus"
+
+
+ // $ANTLR start "entryRuleVComparisonAnd"
+ // InternalRBAModel.g:1004:1: entryRuleVComparisonAnd : ruleVComparisonAnd EOF ;
+ public final void entryRuleVComparisonAnd() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:1005:1: ( ruleVComparisonAnd EOF )
+ // InternalRBAModel.g:1006:1: ruleVComparisonAnd EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVComparisonAndRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleVComparisonAnd();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVComparisonAndRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleVComparisonAnd"
+
+
+ // $ANTLR start "ruleVComparisonAnd"
+ // InternalRBAModel.g:1013:1: ruleVComparisonAnd : ( ( rule__VComparisonAnd__Group__0 ) ) ;
+ public final void ruleVComparisonAnd() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:1017:2: ( ( ( rule__VComparisonAnd__Group__0 ) ) )
+ // InternalRBAModel.g:1018:2: ( ( rule__VComparisonAnd__Group__0 ) )
+ {
+ // InternalRBAModel.g:1018:2: ( ( rule__VComparisonAnd__Group__0 ) )
+ // InternalRBAModel.g:1019:3: ( rule__VComparisonAnd__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVComparisonAndAccess().getGroup());
+ }
+ // InternalRBAModel.g:1020:3: ( rule__VComparisonAnd__Group__0 )
+ // InternalRBAModel.g:1020:4: rule__VComparisonAnd__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__VComparisonAnd__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVComparisonAndAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleVComparisonAnd"
+
+
+ // $ANTLR start "entryRuleVRelationalExpression"
+ // InternalRBAModel.g:1029:1: entryRuleVRelationalExpression : ruleVRelationalExpression EOF ;
+ public final void entryRuleVRelationalExpression() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:1030:1: ( ruleVRelationalExpression EOF )
+ // InternalRBAModel.g:1031:1: ruleVRelationalExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVRelationalExpressionRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleVRelationalExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVRelationalExpressionRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleVRelationalExpression"
+
+
+ // $ANTLR start "ruleVRelationalExpression"
+ // InternalRBAModel.g:1038:1: ruleVRelationalExpression : ( ( rule__VRelationalExpression__Alternatives ) ) ;
+ public final void ruleVRelationalExpression() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:1042:2: ( ( ( rule__VRelationalExpression__Alternatives ) ) )
+ // InternalRBAModel.g:1043:2: ( ( rule__VRelationalExpression__Alternatives ) )
+ {
+ // InternalRBAModel.g:1043:2: ( ( rule__VRelationalExpression__Alternatives ) )
+ // InternalRBAModel.g:1044:3: ( rule__VRelationalExpression__Alternatives )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVRelationalExpressionAccess().getAlternatives());
+ }
+ // InternalRBAModel.g:1045:3: ( rule__VRelationalExpression__Alternatives )
+ // InternalRBAModel.g:1045:4: rule__VRelationalExpression__Alternatives
+ {
+ pushFollow(FOLLOW_2);
+ rule__VRelationalExpression__Alternatives();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVRelationalExpressionAccess().getAlternatives());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleVRelationalExpression"
+
+
+ // $ANTLR start "entryRuleOpMuchGreaterThan"
+ // InternalRBAModel.g:1054:1: entryRuleOpMuchGreaterThan : ruleOpMuchGreaterThan EOF ;
+ public final void entryRuleOpMuchGreaterThan() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:1055:1: ( ruleOpMuchGreaterThan EOF )
+ // InternalRBAModel.g:1056:1: ruleOpMuchGreaterThan EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpMuchGreaterThanRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpMuchGreaterThan();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpMuchGreaterThanRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpMuchGreaterThan"
+
+
+ // $ANTLR start "ruleOpMuchGreaterThan"
+ // InternalRBAModel.g:1063:1: ruleOpMuchGreaterThan : ( '>>' ) ;
+ public final void ruleOpMuchGreaterThan() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:1067:2: ( ( '>>' ) )
+ // InternalRBAModel.g:1068:2: ( '>>' )
+ {
+ // InternalRBAModel.g:1068:2: ( '>>' )
+ // InternalRBAModel.g:1069:3: '>>'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpMuchGreaterThanAccess().getGreaterThanSignGreaterThanSignKeyword());
+ }
+ match(input,19,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpMuchGreaterThanAccess().getGreaterThanSignGreaterThanSignKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpMuchGreaterThan"
+
+
+ // $ANTLR start "entryRuleOpEqualTo"
+ // InternalRBAModel.g:1079:1: entryRuleOpEqualTo : ruleOpEqualTo EOF ;
+ public final void entryRuleOpEqualTo() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:1080:1: ( ruleOpEqualTo EOF )
+ // InternalRBAModel.g:1081:1: ruleOpEqualTo EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpEqualToRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpEqualTo();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpEqualToRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpEqualTo"
+
+
+ // $ANTLR start "ruleOpEqualTo"
+ // InternalRBAModel.g:1088:1: ruleOpEqualTo : ( '=' ) ;
+ public final void ruleOpEqualTo() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:1092:2: ( ( '=' ) )
+ // InternalRBAModel.g:1093:2: ( '=' )
+ {
+ // InternalRBAModel.g:1093:2: ( '=' )
+ // InternalRBAModel.g:1094:3: '='
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpEqualToAccess().getEqualsSignKeyword());
+ }
+ match(input,20,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpEqualToAccess().getEqualsSignKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpEqualTo"
+
+
+ // $ANTLR start "entryRuleOpGreaterThan"
+ // InternalRBAModel.g:1104:1: entryRuleOpGreaterThan : ruleOpGreaterThan EOF ;
+ public final void entryRuleOpGreaterThan() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:1105:1: ( ruleOpGreaterThan EOF )
+ // InternalRBAModel.g:1106:1: ruleOpGreaterThan EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpGreaterThanRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpGreaterThan();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpGreaterThanRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpGreaterThan"
+
+
+ // $ANTLR start "ruleOpGreaterThan"
+ // InternalRBAModel.g:1113:1: ruleOpGreaterThan : ( '>' ) ;
+ public final void ruleOpGreaterThan() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:1117:2: ( ( '>' ) )
+ // InternalRBAModel.g:1118:2: ( '>' )
+ {
+ // InternalRBAModel.g:1118:2: ( '>' )
+ // InternalRBAModel.g:1119:3: '>'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpGreaterThanAccess().getGreaterThanSignKeyword());
+ }
+ match(input,21,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpGreaterThanAccess().getGreaterThanSignKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpGreaterThan"
+
+
+ // $ANTLR start "entryRuleOpLowerThan"
+ // InternalRBAModel.g:1129:1: entryRuleOpLowerThan : ruleOpLowerThan EOF ;
+ public final void entryRuleOpLowerThan() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:1130:1: ( ruleOpLowerThan EOF )
+ // InternalRBAModel.g:1131:1: ruleOpLowerThan EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpLowerThanRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpLowerThan();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpLowerThanRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpLowerThan"
+
+
+ // $ANTLR start "ruleOpLowerThan"
+ // InternalRBAModel.g:1138:1: ruleOpLowerThan : ( '<' ) ;
+ public final void ruleOpLowerThan() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:1142:2: ( ( '<' ) )
+ // InternalRBAModel.g:1143:2: ( '<' )
+ {
+ // InternalRBAModel.g:1143:2: ( '<' )
+ // InternalRBAModel.g:1144:3: '<'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpLowerThanAccess().getLessThanSignKeyword());
+ }
+ match(input,22,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpLowerThanAccess().getLessThanSignKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpLowerThan"
+
+
+ // $ANTLR start "entryRuleVPrimaryExpression"
+ // InternalRBAModel.g:1154:1: entryRuleVPrimaryExpression : ruleVPrimaryExpression EOF ;
+ public final void entryRuleVPrimaryExpression() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:1155:1: ( ruleVPrimaryExpression EOF )
+ // InternalRBAModel.g:1156:1: ruleVPrimaryExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVPrimaryExpressionRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleVPrimaryExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVPrimaryExpressionRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleVPrimaryExpression"
+
+
+ // $ANTLR start "ruleVPrimaryExpression"
+ // InternalRBAModel.g:1163:1: ruleVPrimaryExpression : ( ( rule__VPrimaryExpression__Alternatives ) ) ;
+ public final void ruleVPrimaryExpression() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:1167:2: ( ( ( rule__VPrimaryExpression__Alternatives ) ) )
+ // InternalRBAModel.g:1168:2: ( ( rule__VPrimaryExpression__Alternatives ) )
+ {
+ // InternalRBAModel.g:1168:2: ( ( rule__VPrimaryExpression__Alternatives ) )
+ // InternalRBAModel.g:1169:3: ( rule__VPrimaryExpression__Alternatives )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVPrimaryExpressionAccess().getAlternatives());
+ }
+ // InternalRBAModel.g:1170:3: ( rule__VPrimaryExpression__Alternatives )
+ // InternalRBAModel.g:1170:4: rule__VPrimaryExpression__Alternatives
+ {
+ pushFollow(FOLLOW_2);
+ rule__VPrimaryExpression__Alternatives();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVPrimaryExpressionAccess().getAlternatives());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleVPrimaryExpression"
+
+
+ // $ANTLR start "entryRuleVValueExpression"
+ // InternalRBAModel.g:1179:1: entryRuleVValueExpression : ruleVValueExpression EOF ;
+ public final void entryRuleVValueExpression() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:1180:1: ( ruleVValueExpression EOF )
+ // InternalRBAModel.g:1181:1: ruleVValueExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVValueExpressionRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleVValueExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVValueExpressionRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleVValueExpression"
+
+
+ // $ANTLR start "ruleVValueExpression"
+ // InternalRBAModel.g:1188:1: ruleVValueExpression : ( ( rule__VValueExpression__Alternatives ) ) ;
+ public final void ruleVValueExpression() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:1192:2: ( ( ( rule__VValueExpression__Alternatives ) ) )
+ // InternalRBAModel.g:1193:2: ( ( rule__VValueExpression__Alternatives ) )
+ {
+ // InternalRBAModel.g:1193:2: ( ( rule__VValueExpression__Alternatives ) )
+ // InternalRBAModel.g:1194:3: ( rule__VValueExpression__Alternatives )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVValueExpressionAccess().getAlternatives());
+ }
+ // InternalRBAModel.g:1195:3: ( rule__VValueExpression__Alternatives )
+ // InternalRBAModel.g:1195:4: rule__VValueExpression__Alternatives
+ {
+ pushFollow(FOLLOW_2);
+ rule__VValueExpression__Alternatives();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVValueExpressionAccess().getAlternatives());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleVValueExpression"
+
+
+ // $ANTLR start "entryRuleThatOfOperator"
+ // InternalRBAModel.g:1204:1: entryRuleThatOfOperator : ruleThatOfOperator EOF ;
+ public final void entryRuleThatOfOperator() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:1205:1: ( ruleThatOfOperator EOF )
+ // InternalRBAModel.g:1206:1: ruleThatOfOperator EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getThatOfOperatorRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleThatOfOperator();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getThatOfOperatorRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleThatOfOperator"
+
+
+ // $ANTLR start "ruleThatOfOperator"
+ // InternalRBAModel.g:1213:1: ruleThatOfOperator : ( ( rule__ThatOfOperator__Group__0 ) ) ;
+ public final void ruleThatOfOperator() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:1217:2: ( ( ( rule__ThatOfOperator__Group__0 ) ) )
+ // InternalRBAModel.g:1218:2: ( ( rule__ThatOfOperator__Group__0 ) )
+ {
+ // InternalRBAModel.g:1218:2: ( ( rule__ThatOfOperator__Group__0 ) )
+ // InternalRBAModel.g:1219:3: ( rule__ThatOfOperator__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getThatOfOperatorAccess().getGroup());
+ }
+ // InternalRBAModel.g:1220:3: ( rule__ThatOfOperator__Group__0 )
+ // InternalRBAModel.g:1220:4: rule__ThatOfOperator__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ThatOfOperator__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getThatOfOperatorAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleThatOfOperator"
+
+
+ // $ANTLR start "entryRuleVMemberFeatureReference"
+ // InternalRBAModel.g:1229:1: entryRuleVMemberFeatureReference : ruleVMemberFeatureReference EOF ;
+ public final void entryRuleVMemberFeatureReference() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:1230:1: ( ruleVMemberFeatureReference EOF )
+ // InternalRBAModel.g:1231:1: ruleVMemberFeatureReference EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVMemberFeatureReferenceRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleVMemberFeatureReference();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVMemberFeatureReferenceRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleVMemberFeatureReference"
+
+
+ // $ANTLR start "ruleVMemberFeatureReference"
+ // InternalRBAModel.g:1238:1: ruleVMemberFeatureReference : ( ( rule__VMemberFeatureReference__Group__0 ) ) ;
+ public final void ruleVMemberFeatureReference() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:1242:2: ( ( ( rule__VMemberFeatureReference__Group__0 ) ) )
+ // InternalRBAModel.g:1243:2: ( ( rule__VMemberFeatureReference__Group__0 ) )
+ {
+ // InternalRBAModel.g:1243:2: ( ( rule__VMemberFeatureReference__Group__0 ) )
+ // InternalRBAModel.g:1244:3: ( rule__VMemberFeatureReference__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVMemberFeatureReferenceAccess().getGroup());
+ }
+ // InternalRBAModel.g:1245:3: ( rule__VMemberFeatureReference__Group__0 )
+ // InternalRBAModel.g:1245:4: rule__VMemberFeatureReference__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__VMemberFeatureReference__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVMemberFeatureReferenceAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleVMemberFeatureReference"
+
+
+ // $ANTLR start "entryRuleIntegerValue"
+ // InternalRBAModel.g:1254:1: entryRuleIntegerValue : ruleIntegerValue EOF ;
+ public final void entryRuleIntegerValue() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:1255:1: ( ruleIntegerValue EOF )
+ // InternalRBAModel.g:1256:1: ruleIntegerValue EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getIntegerValueRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleIntegerValue();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getIntegerValueRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleIntegerValue"
+
+
+ // $ANTLR start "ruleIntegerValue"
+ // InternalRBAModel.g:1263:1: ruleIntegerValue : ( ( rule__IntegerValue__Group__0 ) ) ;
+ public final void ruleIntegerValue() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:1267:2: ( ( ( rule__IntegerValue__Group__0 ) ) )
+ // InternalRBAModel.g:1268:2: ( ( rule__IntegerValue__Group__0 ) )
+ {
+ // InternalRBAModel.g:1268:2: ( ( rule__IntegerValue__Group__0 ) )
+ // InternalRBAModel.g:1269:3: ( rule__IntegerValue__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getIntegerValueAccess().getGroup());
+ }
+ // InternalRBAModel.g:1270:3: ( rule__IntegerValue__Group__0 )
+ // InternalRBAModel.g:1270:4: rule__IntegerValue__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__IntegerValue__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getIntegerValueAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleIntegerValue"
+
+
+ // $ANTLR start "entryRuleStandardValue"
+ // InternalRBAModel.g:1279:1: entryRuleStandardValue : ruleStandardValue EOF ;
+ public final void entryRuleStandardValue() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:1280:1: ( ruleStandardValue EOF )
+ // InternalRBAModel.g:1281:1: ruleStandardValue EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getStandardValueRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleStandardValue();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getStandardValueRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleStandardValue"
+
+
+ // $ANTLR start "ruleStandardValue"
+ // InternalRBAModel.g:1288:1: ruleStandardValue : ( ( rule__StandardValue__Group__0 ) ) ;
+ public final void ruleStandardValue() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:1292:2: ( ( ( rule__StandardValue__Group__0 ) ) )
+ // InternalRBAModel.g:1293:2: ( ( rule__StandardValue__Group__0 ) )
+ {
+ // InternalRBAModel.g:1293:2: ( ( rule__StandardValue__Group__0 ) )
+ // InternalRBAModel.g:1294:3: ( rule__StandardValue__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getStandardValueAccess().getGroup());
+ }
+ // InternalRBAModel.g:1295:3: ( rule__StandardValue__Group__0 )
+ // InternalRBAModel.g:1295:4: rule__StandardValue__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__StandardValue__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getStandardValueAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleStandardValue"
+
+
+ // $ANTLR start "entryRuleNoneValue"
+ // InternalRBAModel.g:1304:1: entryRuleNoneValue : ruleNoneValue EOF ;
+ public final void entryRuleNoneValue() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:1305:1: ( ruleNoneValue EOF )
+ // InternalRBAModel.g:1306:1: ruleNoneValue EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getNoneValueRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleNoneValue();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getNoneValueRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleNoneValue"
+
+
+ // $ANTLR start "ruleNoneValue"
+ // InternalRBAModel.g:1313:1: ruleNoneValue : ( ( rule__NoneValue__Group__0 ) ) ;
+ public final void ruleNoneValue() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:1317:2: ( ( ( rule__NoneValue__Group__0 ) ) )
+ // InternalRBAModel.g:1318:2: ( ( rule__NoneValue__Group__0 ) )
+ {
+ // InternalRBAModel.g:1318:2: ( ( rule__NoneValue__Group__0 ) )
+ // InternalRBAModel.g:1319:3: ( rule__NoneValue__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getNoneValueAccess().getGroup());
+ }
+ // InternalRBAModel.g:1320:3: ( rule__NoneValue__Group__0 )
+ // InternalRBAModel.g:1320:4: rule__NoneValue__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__NoneValue__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getNoneValueAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleNoneValue"
+
+
+ // $ANTLR start "entryRuleMinValue"
+ // InternalRBAModel.g:1329:1: entryRuleMinValue : ruleMinValue EOF ;
+ public final void entryRuleMinValue() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:1330:1: ( ruleMinValue EOF )
+ // InternalRBAModel.g:1331:1: ruleMinValue EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getMinValueRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleMinValue();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getMinValueRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleMinValue"
+
+
+ // $ANTLR start "ruleMinValue"
+ // InternalRBAModel.g:1338:1: ruleMinValue : ( ( rule__MinValue__Group__0 ) ) ;
+ public final void ruleMinValue() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:1342:2: ( ( ( rule__MinValue__Group__0 ) ) )
+ // InternalRBAModel.g:1343:2: ( ( rule__MinValue__Group__0 ) )
+ {
+ // InternalRBAModel.g:1343:2: ( ( rule__MinValue__Group__0 ) )
+ // InternalRBAModel.g:1344:3: ( rule__MinValue__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getMinValueAccess().getGroup());
+ }
+ // InternalRBAModel.g:1345:3: ( rule__MinValue__Group__0 )
+ // InternalRBAModel.g:1345:4: rule__MinValue__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__MinValue__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getMinValueAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleMinValue"
+
+
+ // $ANTLR start "entryRuleMaxValue"
+ // InternalRBAModel.g:1354:1: entryRuleMaxValue : ruleMaxValue EOF ;
+ public final void entryRuleMaxValue() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:1355:1: ( ruleMaxValue EOF )
+ // InternalRBAModel.g:1356:1: ruleMaxValue EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getMaxValueRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleMaxValue();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getMaxValueRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleMaxValue"
+
+
+ // $ANTLR start "ruleMaxValue"
+ // InternalRBAModel.g:1363:1: ruleMaxValue : ( ( rule__MaxValue__Group__0 ) ) ;
+ public final void ruleMaxValue() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:1367:2: ( ( ( rule__MaxValue__Group__0 ) ) )
+ // InternalRBAModel.g:1368:2: ( ( rule__MaxValue__Group__0 ) )
+ {
+ // InternalRBAModel.g:1368:2: ( ( rule__MaxValue__Group__0 ) )
+ // InternalRBAModel.g:1369:3: ( rule__MaxValue__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getMaxValueAccess().getGroup());
+ }
+ // InternalRBAModel.g:1370:3: ( rule__MaxValue__Group__0 )
+ // InternalRBAModel.g:1370:4: rule__MaxValue__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__MaxValue__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getMaxValueAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleMaxValue"
+
+
+ // $ANTLR start "entryRuleCExpression"
+ // InternalRBAModel.g:1379:1: entryRuleCExpression : ruleCExpression EOF ;
+ public final void entryRuleCExpression() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:1380:1: ( ruleCExpression EOF )
+ // InternalRBAModel.g:1381:1: ruleCExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCExpressionRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleCExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCExpressionRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleCExpression"
+
+
+ // $ANTLR start "ruleCExpression"
+ // InternalRBAModel.g:1388:1: ruleCExpression : ( ruleCImpliesOperator ) ;
+ public final void ruleCExpression() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:1392:2: ( ( ruleCImpliesOperator ) )
+ // InternalRBAModel.g:1393:2: ( ruleCImpliesOperator )
+ {
+ // InternalRBAModel.g:1393:2: ( ruleCImpliesOperator )
+ // InternalRBAModel.g:1394:3: ruleCImpliesOperator
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCExpressionAccess().getCImpliesOperatorParserRuleCall());
+ }
+ pushFollow(FOLLOW_2);
+ ruleCImpliesOperator();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCExpressionAccess().getCImpliesOperatorParserRuleCall());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleCExpression"
+
+
+ // $ANTLR start "entryRuleCImpliesOperator"
+ // InternalRBAModel.g:1404:1: entryRuleCImpliesOperator : ruleCImpliesOperator EOF ;
+ public final void entryRuleCImpliesOperator() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:1405:1: ( ruleCImpliesOperator EOF )
+ // InternalRBAModel.g:1406:1: ruleCImpliesOperator EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCImpliesOperatorRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleCImpliesOperator();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCImpliesOperatorRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleCImpliesOperator"
+
+
+ // $ANTLR start "ruleCImpliesOperator"
+ // InternalRBAModel.g:1413:1: ruleCImpliesOperator : ( ( rule__CImpliesOperator__Group__0 ) ) ;
+ public final void ruleCImpliesOperator() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:1417:2: ( ( ( rule__CImpliesOperator__Group__0 ) ) )
+ // InternalRBAModel.g:1418:2: ( ( rule__CImpliesOperator__Group__0 ) )
+ {
+ // InternalRBAModel.g:1418:2: ( ( rule__CImpliesOperator__Group__0 ) )
+ // InternalRBAModel.g:1419:3: ( rule__CImpliesOperator__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCImpliesOperatorAccess().getGroup());
+ }
+ // InternalRBAModel.g:1420:3: ( rule__CImpliesOperator__Group__0 )
+ // InternalRBAModel.g:1420:4: rule__CImpliesOperator__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__CImpliesOperator__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCImpliesOperatorAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleCImpliesOperator"
+
+
+ // $ANTLR start "entryRuleOpImplies"
+ // InternalRBAModel.g:1429:1: entryRuleOpImplies : ruleOpImplies EOF ;
+ public final void entryRuleOpImplies() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:1430:1: ( ruleOpImplies EOF )
+ // InternalRBAModel.g:1431:1: ruleOpImplies EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpImpliesRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpImplies();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpImpliesRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpImplies"
+
+
+ // $ANTLR start "ruleOpImplies"
+ // InternalRBAModel.g:1438:1: ruleOpImplies : ( '->' ) ;
+ public final void ruleOpImplies() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:1442:2: ( ( '->' ) )
+ // InternalRBAModel.g:1443:2: ( '->' )
+ {
+ // InternalRBAModel.g:1443:2: ( '->' )
+ // InternalRBAModel.g:1444:3: '->'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpImpliesAccess().getHyphenMinusGreaterThanSignKeyword());
+ }
+ match(input,23,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpImpliesAccess().getHyphenMinusGreaterThanSignKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpImplies"
+
+
+ // $ANTLR start "entryRuleCOrOperator"
+ // InternalRBAModel.g:1454:1: entryRuleCOrOperator : ruleCOrOperator EOF ;
+ public final void entryRuleCOrOperator() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:1455:1: ( ruleCOrOperator EOF )
+ // InternalRBAModel.g:1456:1: ruleCOrOperator EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOrOperatorRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleCOrOperator();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOrOperatorRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleCOrOperator"
+
+
+ // $ANTLR start "ruleCOrOperator"
+ // InternalRBAModel.g:1463:1: ruleCOrOperator : ( ( rule__COrOperator__Group__0 ) ) ;
+ public final void ruleCOrOperator() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:1467:2: ( ( ( rule__COrOperator__Group__0 ) ) )
+ // InternalRBAModel.g:1468:2: ( ( rule__COrOperator__Group__0 ) )
+ {
+ // InternalRBAModel.g:1468:2: ( ( rule__COrOperator__Group__0 ) )
+ // InternalRBAModel.g:1469:3: ( rule__COrOperator__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOrOperatorAccess().getGroup());
+ }
+ // InternalRBAModel.g:1470:3: ( rule__COrOperator__Group__0 )
+ // InternalRBAModel.g:1470:4: rule__COrOperator__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COrOperator__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOrOperatorAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleCOrOperator"
+
+
+ // $ANTLR start "entryRuleOpOr"
+ // InternalRBAModel.g:1479:1: entryRuleOpOr : ruleOpOr EOF ;
+ public final void entryRuleOpOr() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:1480:1: ( ruleOpOr EOF )
+ // InternalRBAModel.g:1481:1: ruleOpOr EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpOrRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpOr();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpOrRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpOr"
+
+
+ // $ANTLR start "ruleOpOr"
+ // InternalRBAModel.g:1488:1: ruleOpOr : ( 'OR' ) ;
+ public final void ruleOpOr() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:1492:2: ( ( 'OR' ) )
+ // InternalRBAModel.g:1493:2: ( 'OR' )
+ {
+ // InternalRBAModel.g:1493:2: ( 'OR' )
+ // InternalRBAModel.g:1494:3: 'OR'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpOrAccess().getORKeyword());
+ }
+ match(input,24,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpOrAccess().getORKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpOr"
+
+
+ // $ANTLR start "entryRuleCAndOperator"
+ // InternalRBAModel.g:1504:1: entryRuleCAndOperator : ruleCAndOperator EOF ;
+ public final void entryRuleCAndOperator() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:1505:1: ( ruleCAndOperator EOF )
+ // InternalRBAModel.g:1506:1: ruleCAndOperator EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCAndOperatorRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleCAndOperator();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCAndOperatorRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleCAndOperator"
+
+
+ // $ANTLR start "ruleCAndOperator"
+ // InternalRBAModel.g:1513:1: ruleCAndOperator : ( ( rule__CAndOperator__Group__0 ) ) ;
+ public final void ruleCAndOperator() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:1517:2: ( ( ( rule__CAndOperator__Group__0 ) ) )
+ // InternalRBAModel.g:1518:2: ( ( rule__CAndOperator__Group__0 ) )
+ {
+ // InternalRBAModel.g:1518:2: ( ( rule__CAndOperator__Group__0 ) )
+ // InternalRBAModel.g:1519:3: ( rule__CAndOperator__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCAndOperatorAccess().getGroup());
+ }
+ // InternalRBAModel.g:1520:3: ( rule__CAndOperator__Group__0 )
+ // InternalRBAModel.g:1520:4: rule__CAndOperator__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__CAndOperator__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCAndOperatorAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleCAndOperator"
+
+
+ // $ANTLR start "entryRuleOpAnd"
+ // InternalRBAModel.g:1529:1: entryRuleOpAnd : ruleOpAnd EOF ;
+ public final void entryRuleOpAnd() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:1530:1: ( ruleOpAnd EOF )
+ // InternalRBAModel.g:1531:1: ruleOpAnd EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpAndRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpAnd();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpAndRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpAnd"
+
+
+ // $ANTLR start "ruleOpAnd"
+ // InternalRBAModel.g:1538:1: ruleOpAnd : ( 'AND' ) ;
+ public final void ruleOpAnd() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:1542:2: ( ( 'AND' ) )
+ // InternalRBAModel.g:1543:2: ( 'AND' )
+ {
+ // InternalRBAModel.g:1543:2: ( 'AND' )
+ // InternalRBAModel.g:1544:3: 'AND'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpAndAccess().getANDKeyword());
+ }
+ match(input,25,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpAndAccess().getANDKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpAnd"
+
+
+ // $ANTLR start "entryRuleCEqualityExpression"
+ // InternalRBAModel.g:1554:1: entryRuleCEqualityExpression : ruleCEqualityExpression EOF ;
+ public final void entryRuleCEqualityExpression() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:1555:1: ( ruleCEqualityExpression EOF )
+ // InternalRBAModel.g:1556:1: ruleCEqualityExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCEqualityExpressionRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleCEqualityExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCEqualityExpressionRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleCEqualityExpression"
+
+
+ // $ANTLR start "ruleCEqualityExpression"
+ // InternalRBAModel.g:1563:1: ruleCEqualityExpression : ( ( rule__CEqualityExpression__Group__0 ) ) ;
+ public final void ruleCEqualityExpression() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:1567:2: ( ( ( rule__CEqualityExpression__Group__0 ) ) )
+ // InternalRBAModel.g:1568:2: ( ( rule__CEqualityExpression__Group__0 ) )
+ {
+ // InternalRBAModel.g:1568:2: ( ( rule__CEqualityExpression__Group__0 ) )
+ // InternalRBAModel.g:1569:3: ( rule__CEqualityExpression__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCEqualityExpressionAccess().getGroup());
+ }
+ // InternalRBAModel.g:1570:3: ( rule__CEqualityExpression__Group__0 )
+ // InternalRBAModel.g:1570:4: rule__CEqualityExpression__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__CEqualityExpression__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCEqualityExpressionAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleCEqualityExpression"
+
+
+ // $ANTLR start "entryRuleOpObjectCompare"
+ // InternalRBAModel.g:1579:1: entryRuleOpObjectCompare : ruleOpObjectCompare EOF ;
+ public final void entryRuleOpObjectCompare() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:1580:1: ( ruleOpObjectCompare EOF )
+ // InternalRBAModel.g:1581:1: ruleOpObjectCompare EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpObjectCompareRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpObjectCompare();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpObjectCompareRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpObjectCompare"
+
+
+ // $ANTLR start "ruleOpObjectCompare"
+ // InternalRBAModel.g:1588:1: ruleOpObjectCompare : ( '==' ) ;
+ public final void ruleOpObjectCompare() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:1592:2: ( ( '==' ) )
+ // InternalRBAModel.g:1593:2: ( '==' )
+ {
+ // InternalRBAModel.g:1593:2: ( '==' )
+ // InternalRBAModel.g:1594:3: '=='
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpObjectCompareAccess().getEqualsSignEqualsSignKeyword());
+ }
+ match(input,26,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpObjectCompareAccess().getEqualsSignEqualsSignKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpObjectCompare"
+
+
+ // $ANTLR start "entryRuleOpObjectNotCompare"
+ // InternalRBAModel.g:1604:1: entryRuleOpObjectNotCompare : ruleOpObjectNotCompare EOF ;
+ public final void entryRuleOpObjectNotCompare() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:1605:1: ( ruleOpObjectNotCompare EOF )
+ // InternalRBAModel.g:1606:1: ruleOpObjectNotCompare EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpObjectNotCompareRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpObjectNotCompare();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpObjectNotCompareRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpObjectNotCompare"
+
+
+ // $ANTLR start "ruleOpObjectNotCompare"
+ // InternalRBAModel.g:1613:1: ruleOpObjectNotCompare : ( '!=' ) ;
+ public final void ruleOpObjectNotCompare() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:1617:2: ( ( '!=' ) )
+ // InternalRBAModel.g:1618:2: ( '!=' )
+ {
+ // InternalRBAModel.g:1618:2: ( '!=' )
+ // InternalRBAModel.g:1619:3: '!='
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpObjectNotCompareAccess().getExclamationMarkEqualsSignKeyword());
+ }
+ match(input,27,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpObjectNotCompareAccess().getExclamationMarkEqualsSignKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpObjectNotCompare"
+
+
+ // $ANTLR start "entryRuleOpEquality"
+ // InternalRBAModel.g:1629:1: entryRuleOpEquality : ruleOpEquality EOF ;
+ public final void entryRuleOpEquality() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:1630:1: ( ruleOpEquality EOF )
+ // InternalRBAModel.g:1631:1: ruleOpEquality EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpEqualityRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpEquality();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpEqualityRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpEquality"
+
+
+ // $ANTLR start "ruleOpEquality"
+ // InternalRBAModel.g:1638:1: ruleOpEquality : ( '=' ) ;
+ public final void ruleOpEquality() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:1642:2: ( ( '=' ) )
+ // InternalRBAModel.g:1643:2: ( '=' )
+ {
+ // InternalRBAModel.g:1643:2: ( '=' )
+ // InternalRBAModel.g:1644:3: '='
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpEqualityAccess().getEqualsSignKeyword());
+ }
+ match(input,20,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpEqualityAccess().getEqualsSignKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpEquality"
+
+
+ // $ANTLR start "entryRuleCRelationalExpression"
+ // InternalRBAModel.g:1654:1: entryRuleCRelationalExpression : ruleCRelationalExpression EOF ;
+ public final void entryRuleCRelationalExpression() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:1655:1: ( ruleCRelationalExpression EOF )
+ // InternalRBAModel.g:1656:1: ruleCRelationalExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCRelationalExpressionRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleCRelationalExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCRelationalExpressionRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleCRelationalExpression"
+
+
+ // $ANTLR start "ruleCRelationalExpression"
+ // InternalRBAModel.g:1663:1: ruleCRelationalExpression : ( ( rule__CRelationalExpression__Group__0 ) ) ;
+ public final void ruleCRelationalExpression() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:1667:2: ( ( ( rule__CRelationalExpression__Group__0 ) ) )
+ // InternalRBAModel.g:1668:2: ( ( rule__CRelationalExpression__Group__0 ) )
+ {
+ // InternalRBAModel.g:1668:2: ( ( rule__CRelationalExpression__Group__0 ) )
+ // InternalRBAModel.g:1669:3: ( rule__CRelationalExpression__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCRelationalExpressionAccess().getGroup());
+ }
+ // InternalRBAModel.g:1670:3: ( rule__CRelationalExpression__Group__0 )
+ // InternalRBAModel.g:1670:4: rule__CRelationalExpression__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__CRelationalExpression__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCRelationalExpressionAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleCRelationalExpression"
+
+
+ // $ANTLR start "entryRuleOpIsGreaterThanEqual"
+ // InternalRBAModel.g:1679:1: entryRuleOpIsGreaterThanEqual : ruleOpIsGreaterThanEqual EOF ;
+ public final void entryRuleOpIsGreaterThanEqual() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:1680:1: ( ruleOpIsGreaterThanEqual EOF )
+ // InternalRBAModel.g:1681:1: ruleOpIsGreaterThanEqual EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpIsGreaterThanEqualRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpIsGreaterThanEqual();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpIsGreaterThanEqualRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpIsGreaterThanEqual"
+
+
+ // $ANTLR start "ruleOpIsGreaterThanEqual"
+ // InternalRBAModel.g:1688:1: ruleOpIsGreaterThanEqual : ( '>=' ) ;
+ public final void ruleOpIsGreaterThanEqual() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:1692:2: ( ( '>=' ) )
+ // InternalRBAModel.g:1693:2: ( '>=' )
+ {
+ // InternalRBAModel.g:1693:2: ( '>=' )
+ // InternalRBAModel.g:1694:3: '>='
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpIsGreaterThanEqualAccess().getGreaterThanSignEqualsSignKeyword());
+ }
+ match(input,28,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpIsGreaterThanEqualAccess().getGreaterThanSignEqualsSignKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpIsGreaterThanEqual"
+
+
+ // $ANTLR start "entryRuleOpIsLowerThanEqual"
+ // InternalRBAModel.g:1704:1: entryRuleOpIsLowerThanEqual : ruleOpIsLowerThanEqual EOF ;
+ public final void entryRuleOpIsLowerThanEqual() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:1705:1: ( ruleOpIsLowerThanEqual EOF )
+ // InternalRBAModel.g:1706:1: ruleOpIsLowerThanEqual EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpIsLowerThanEqualRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpIsLowerThanEqual();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpIsLowerThanEqualRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpIsLowerThanEqual"
+
+
+ // $ANTLR start "ruleOpIsLowerThanEqual"
+ // InternalRBAModel.g:1713:1: ruleOpIsLowerThanEqual : ( '<=' ) ;
+ public final void ruleOpIsLowerThanEqual() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:1717:2: ( ( '<=' ) )
+ // InternalRBAModel.g:1718:2: ( '<=' )
+ {
+ // InternalRBAModel.g:1718:2: ( '<=' )
+ // InternalRBAModel.g:1719:3: '<='
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpIsLowerThanEqualAccess().getLessThanSignEqualsSignKeyword());
+ }
+ match(input,29,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpIsLowerThanEqualAccess().getLessThanSignEqualsSignKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpIsLowerThanEqual"
+
+
+ // $ANTLR start "entryRuleOpIsGreaterThan"
+ // InternalRBAModel.g:1729:1: entryRuleOpIsGreaterThan : ruleOpIsGreaterThan EOF ;
+ public final void entryRuleOpIsGreaterThan() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:1730:1: ( ruleOpIsGreaterThan EOF )
+ // InternalRBAModel.g:1731:1: ruleOpIsGreaterThan EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpIsGreaterThanRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpIsGreaterThan();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpIsGreaterThanRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpIsGreaterThan"
+
+
+ // $ANTLR start "ruleOpIsGreaterThan"
+ // InternalRBAModel.g:1738:1: ruleOpIsGreaterThan : ( '>' ) ;
+ public final void ruleOpIsGreaterThan() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:1742:2: ( ( '>' ) )
+ // InternalRBAModel.g:1743:2: ( '>' )
+ {
+ // InternalRBAModel.g:1743:2: ( '>' )
+ // InternalRBAModel.g:1744:3: '>'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpIsGreaterThanAccess().getGreaterThanSignKeyword());
+ }
+ match(input,21,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpIsGreaterThanAccess().getGreaterThanSignKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpIsGreaterThan"
+
+
+ // $ANTLR start "entryRuleOpIsLowerThan"
+ // InternalRBAModel.g:1754:1: entryRuleOpIsLowerThan : ruleOpIsLowerThan EOF ;
+ public final void entryRuleOpIsLowerThan() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:1755:1: ( ruleOpIsLowerThan EOF )
+ // InternalRBAModel.g:1756:1: ruleOpIsLowerThan EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpIsLowerThanRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpIsLowerThan();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpIsLowerThanRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpIsLowerThan"
+
+
+ // $ANTLR start "ruleOpIsLowerThan"
+ // InternalRBAModel.g:1763:1: ruleOpIsLowerThan : ( '<' ) ;
+ public final void ruleOpIsLowerThan() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:1767:2: ( ( '<' ) )
+ // InternalRBAModel.g:1768:2: ( '<' )
+ {
+ // InternalRBAModel.g:1768:2: ( '<' )
+ // InternalRBAModel.g:1769:3: '<'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpIsLowerThanAccess().getLessThanSignKeyword());
+ }
+ match(input,22,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpIsLowerThanAccess().getLessThanSignKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpIsLowerThan"
+
+
+ // $ANTLR start "entryRuleCUnaryOperation"
+ // InternalRBAModel.g:1779:1: entryRuleCUnaryOperation : ruleCUnaryOperation EOF ;
+ public final void entryRuleCUnaryOperation() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:1780:1: ( ruleCUnaryOperation EOF )
+ // InternalRBAModel.g:1781:1: ruleCUnaryOperation EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCUnaryOperationRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleCUnaryOperation();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCUnaryOperationRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleCUnaryOperation"
+
+
+ // $ANTLR start "ruleCUnaryOperation"
+ // InternalRBAModel.g:1788:1: ruleCUnaryOperation : ( ( rule__CUnaryOperation__Alternatives ) ) ;
+ public final void ruleCUnaryOperation() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:1792:2: ( ( ( rule__CUnaryOperation__Alternatives ) ) )
+ // InternalRBAModel.g:1793:2: ( ( rule__CUnaryOperation__Alternatives ) )
+ {
+ // InternalRBAModel.g:1793:2: ( ( rule__CUnaryOperation__Alternatives ) )
+ // InternalRBAModel.g:1794:3: ( rule__CUnaryOperation__Alternatives )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCUnaryOperationAccess().getAlternatives());
+ }
+ // InternalRBAModel.g:1795:3: ( rule__CUnaryOperation__Alternatives )
+ // InternalRBAModel.g:1795:4: rule__CUnaryOperation__Alternatives
+ {
+ pushFollow(FOLLOW_2);
+ rule__CUnaryOperation__Alternatives();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCUnaryOperationAccess().getAlternatives());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleCUnaryOperation"
+
+
+ // $ANTLR start "entryRuleOpNot"
+ // InternalRBAModel.g:1804:1: entryRuleOpNot : ruleOpNot EOF ;
+ public final void entryRuleOpNot() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:1805:1: ( ruleOpNot EOF )
+ // InternalRBAModel.g:1806:1: ruleOpNot EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpNotRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpNot();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpNotRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpNot"
+
+
+ // $ANTLR start "ruleOpNot"
+ // InternalRBAModel.g:1813:1: ruleOpNot : ( '!' ) ;
+ public final void ruleOpNot() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:1817:2: ( ( '!' ) )
+ // InternalRBAModel.g:1818:2: ( '!' )
+ {
+ // InternalRBAModel.g:1818:2: ( '!' )
+ // InternalRBAModel.g:1819:3: '!'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpNotAccess().getExclamationMarkKeyword());
+ }
+ match(input,30,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpNotAccess().getExclamationMarkKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpNot"
+
+
+ // $ANTLR start "entryRuleCOperationFeatureCall"
+ // InternalRBAModel.g:1829:1: entryRuleCOperationFeatureCall : ruleCOperationFeatureCall EOF ;
+ public final void entryRuleCOperationFeatureCall() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:1830:1: ( ruleCOperationFeatureCall EOF )
+ // InternalRBAModel.g:1831:1: ruleCOperationFeatureCall EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleCOperationFeatureCall();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleCOperationFeatureCall"
+
+
+ // $ANTLR start "ruleCOperationFeatureCall"
+ // InternalRBAModel.g:1838:1: ruleCOperationFeatureCall : ( ( rule__COperationFeatureCall__Group__0 ) ) ;
+ public final void ruleCOperationFeatureCall() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:1842:2: ( ( ( rule__COperationFeatureCall__Group__0 ) ) )
+ // InternalRBAModel.g:1843:2: ( ( rule__COperationFeatureCall__Group__0 ) )
+ {
+ // InternalRBAModel.g:1843:2: ( ( rule__COperationFeatureCall__Group__0 ) )
+ // InternalRBAModel.g:1844:3: ( rule__COperationFeatureCall__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getGroup());
+ }
+ // InternalRBAModel.g:1845:3: ( rule__COperationFeatureCall__Group__0 )
+ // InternalRBAModel.g:1845:4: rule__COperationFeatureCall__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleCOperationFeatureCall"
+
+
+ // $ANTLR start "entryRuleOpGetProperty"
+ // InternalRBAModel.g:1854:1: entryRuleOpGetProperty : ruleOpGetProperty EOF ;
+ public final void entryRuleOpGetProperty() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:1855:1: ( ruleOpGetProperty EOF )
+ // InternalRBAModel.g:1856:1: ruleOpGetProperty EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpGetPropertyRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpGetProperty();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpGetPropertyRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpGetProperty"
+
+
+ // $ANTLR start "ruleOpGetProperty"
+ // InternalRBAModel.g:1863:1: ruleOpGetProperty : ( 'get' ) ;
+ public final void ruleOpGetProperty() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:1867:2: ( ( 'get' ) )
+ // InternalRBAModel.g:1868:2: ( 'get' )
+ {
+ // InternalRBAModel.g:1868:2: ( 'get' )
+ // InternalRBAModel.g:1869:3: 'get'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpGetPropertyAccess().getGetKeyword());
+ }
+ match(input,31,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpGetPropertyAccess().getGetKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpGetProperty"
+
+
+ // $ANTLR start "entryRuleOpIsOn"
+ // InternalRBAModel.g:1879:1: entryRuleOpIsOn : ruleOpIsOn EOF ;
+ public final void entryRuleOpIsOn() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:1880:1: ( ruleOpIsOn EOF )
+ // InternalRBAModel.g:1881:1: ruleOpIsOn EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpIsOnRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpIsOn();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpIsOnRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpIsOn"
+
+
+ // $ANTLR start "ruleOpIsOn"
+ // InternalRBAModel.g:1888:1: ruleOpIsOn : ( 'isOn' ) ;
+ public final void ruleOpIsOn() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:1892:2: ( ( 'isOn' ) )
+ // InternalRBAModel.g:1893:2: ( 'isOn' )
+ {
+ // InternalRBAModel.g:1893:2: ( 'isOn' )
+ // InternalRBAModel.g:1894:3: 'isOn'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpIsOnAccess().getIsOnKeyword());
+ }
+ match(input,32,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpIsOnAccess().getIsOnKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpIsOn"
+
+
+ // $ANTLR start "entryRuleOpGetContentsList"
+ // InternalRBAModel.g:1904:1: entryRuleOpGetContentsList : ruleOpGetContentsList EOF ;
+ public final void entryRuleOpGetContentsList() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:1905:1: ( ruleOpGetContentsList EOF )
+ // InternalRBAModel.g:1906:1: ruleOpGetContentsList EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpGetContentsListRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpGetContentsList();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpGetContentsListRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpGetContentsList"
+
+
+ // $ANTLR start "ruleOpGetContentsList"
+ // InternalRBAModel.g:1913:1: ruleOpGetContentsList : ( 'contentsList' ) ;
+ public final void ruleOpGetContentsList() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:1917:2: ( ( 'contentsList' ) )
+ // InternalRBAModel.g:1918:2: ( 'contentsList' )
+ {
+ // InternalRBAModel.g:1918:2: ( 'contentsList' )
+ // InternalRBAModel.g:1919:3: 'contentsList'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpGetContentsListAccess().getContentsListKeyword());
+ }
+ match(input,33,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpGetContentsListAccess().getContentsListKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpGetContentsList"
+
+
+ // $ANTLR start "entryRuleOpContentValue"
+ // InternalRBAModel.g:1929:1: entryRuleOpContentValue : ruleOpContentValue EOF ;
+ public final void entryRuleOpContentValue() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:1930:1: ( ruleOpContentValue EOF )
+ // InternalRBAModel.g:1931:1: ruleOpContentValue EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpContentValueRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpContentValue();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpContentValueRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpContentValue"
+
+
+ // $ANTLR start "ruleOpContentValue"
+ // InternalRBAModel.g:1938:1: ruleOpContentValue : ( 'contentValue' ) ;
+ public final void ruleOpContentValue() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:1942:2: ( ( 'contentValue' ) )
+ // InternalRBAModel.g:1943:2: ( 'contentValue' )
+ {
+ // InternalRBAModel.g:1943:2: ( 'contentValue' )
+ // InternalRBAModel.g:1944:3: 'contentValue'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpContentValueAccess().getContentValueKeyword());
+ }
+ match(input,34,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpContentValueAccess().getContentValueKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpContentValue"
+
+
+ // $ANTLR start "entryRuleOpIsActive"
+ // InternalRBAModel.g:1954:1: entryRuleOpIsActive : ruleOpIsActive EOF ;
+ public final void entryRuleOpIsActive() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:1955:1: ( ruleOpIsActive EOF )
+ // InternalRBAModel.g:1956:1: ruleOpIsActive EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpIsActiveRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpIsActive();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpIsActiveRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpIsActive"
+
+
+ // $ANTLR start "ruleOpIsActive"
+ // InternalRBAModel.g:1963:1: ruleOpIsActive : ( 'isActive' ) ;
+ public final void ruleOpIsActive() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:1967:2: ( ( 'isActive' ) )
+ // InternalRBAModel.g:1968:2: ( 'isActive' )
+ {
+ // InternalRBAModel.g:1968:2: ( 'isActive' )
+ // InternalRBAModel.g:1969:3: 'isActive'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpIsActiveAccess().getIsActiveKeyword());
+ }
+ match(input,35,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpIsActiveAccess().getIsActiveKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpIsActive"
+
+
+ // $ANTLR start "entryRuleOpGetAllocatables"
+ // InternalRBAModel.g:1979:1: entryRuleOpGetAllocatables : ruleOpGetAllocatables EOF ;
+ public final void entryRuleOpGetAllocatables() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:1980:1: ( ruleOpGetAllocatables EOF )
+ // InternalRBAModel.g:1981:1: ruleOpGetAllocatables EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpGetAllocatablesRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpGetAllocatables();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpGetAllocatablesRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpGetAllocatables"
+
+
+ // $ANTLR start "ruleOpGetAllocatables"
+ // InternalRBAModel.g:1988:1: ruleOpGetAllocatables : ( 'allocatables' ) ;
+ public final void ruleOpGetAllocatables() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:1992:2: ( ( 'allocatables' ) )
+ // InternalRBAModel.g:1993:2: ( 'allocatables' )
+ {
+ // InternalRBAModel.g:1993:2: ( 'allocatables' )
+ // InternalRBAModel.g:1994:3: 'allocatables'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpGetAllocatablesAccess().getAllocatablesKeyword());
+ }
+ match(input,36,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpGetAllocatablesAccess().getAllocatablesKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpGetAllocatables"
+
+
+ // $ANTLR start "entryRuleOpAllocatedContent"
+ // InternalRBAModel.g:2004:1: entryRuleOpAllocatedContent : ruleOpAllocatedContent EOF ;
+ public final void entryRuleOpAllocatedContent() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:2005:1: ( ruleOpAllocatedContent EOF )
+ // InternalRBAModel.g:2006:1: ruleOpAllocatedContent EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpAllocatedContentRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpAllocatedContent();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpAllocatedContentRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpAllocatedContent"
+
+
+ // $ANTLR start "ruleOpAllocatedContent"
+ // InternalRBAModel.g:2013:1: ruleOpAllocatedContent : ( 'allocatedContent' ) ;
+ public final void ruleOpAllocatedContent() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:2017:2: ( ( 'allocatedContent' ) )
+ // InternalRBAModel.g:2018:2: ( 'allocatedContent' )
+ {
+ // InternalRBAModel.g:2018:2: ( 'allocatedContent' )
+ // InternalRBAModel.g:2019:3: 'allocatedContent'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpAllocatedContentAccess().getAllocatedContentKeyword());
+ }
+ match(input,37,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpAllocatedContentAccess().getAllocatedContentKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpAllocatedContent"
+
+
+ // $ANTLR start "entryRuleOpIsDisplayed"
+ // InternalRBAModel.g:2029:1: entryRuleOpIsDisplayed : ruleOpIsDisplayed EOF ;
+ public final void entryRuleOpIsDisplayed() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:2030:1: ( ruleOpIsDisplayed EOF )
+ // InternalRBAModel.g:2031:1: ruleOpIsDisplayed EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpIsDisplayedRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpIsDisplayed();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpIsDisplayedRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpIsDisplayed"
+
+
+ // $ANTLR start "ruleOpIsDisplayed"
+ // InternalRBAModel.g:2038:1: ruleOpIsDisplayed : ( 'isDisplayed' ) ;
+ public final void ruleOpIsDisplayed() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:2042:2: ( ( 'isDisplayed' ) )
+ // InternalRBAModel.g:2043:2: ( 'isDisplayed' )
+ {
+ // InternalRBAModel.g:2043:2: ( 'isDisplayed' )
+ // InternalRBAModel.g:2044:3: 'isDisplayed'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpIsDisplayedAccess().getIsDisplayedKeyword());
+ }
+ match(input,38,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpIsDisplayedAccess().getIsDisplayedKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpIsDisplayed"
+
+
+ // $ANTLR start "entryRuleOpIsHidden"
+ // InternalRBAModel.g:2054:1: entryRuleOpIsHidden : ruleOpIsHidden EOF ;
+ public final void entryRuleOpIsHidden() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:2055:1: ( ruleOpIsHidden EOF )
+ // InternalRBAModel.g:2056:1: ruleOpIsHidden EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpIsHiddenRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpIsHidden();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpIsHiddenRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpIsHidden"
+
+
+ // $ANTLR start "ruleOpIsHidden"
+ // InternalRBAModel.g:2063:1: ruleOpIsHidden : ( 'isHidden' ) ;
+ public final void ruleOpIsHidden() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:2067:2: ( ( 'isHidden' ) )
+ // InternalRBAModel.g:2068:2: ( 'isHidden' )
+ {
+ // InternalRBAModel.g:2068:2: ( 'isHidden' )
+ // InternalRBAModel.g:2069:3: 'isHidden'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpIsHiddenAccess().getIsHiddenKeyword());
+ }
+ match(input,39,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpIsHiddenAccess().getIsHiddenKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpIsHidden"
+
+
+ // $ANTLR start "entryRuleOpDisplayingContent"
+ // InternalRBAModel.g:2079:1: entryRuleOpDisplayingContent : ruleOpDisplayingContent EOF ;
+ public final void entryRuleOpDisplayingContent() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:2080:1: ( ruleOpDisplayingContent EOF )
+ // InternalRBAModel.g:2081:1: ruleOpDisplayingContent EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpDisplayingContentRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpDisplayingContent();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpDisplayingContentRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpDisplayingContent"
+
+
+ // $ANTLR start "ruleOpDisplayingContent"
+ // InternalRBAModel.g:2088:1: ruleOpDisplayingContent : ( 'displayingContent' ) ;
+ public final void ruleOpDisplayingContent() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:2092:2: ( ( 'displayingContent' ) )
+ // InternalRBAModel.g:2093:2: ( 'displayingContent' )
+ {
+ // InternalRBAModel.g:2093:2: ( 'displayingContent' )
+ // InternalRBAModel.g:2094:3: 'displayingContent'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpDisplayingContentAccess().getDisplayingContentKeyword());
+ }
+ match(input,40,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpDisplayingContentAccess().getDisplayingContentKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpDisplayingContent"
+
+
+ // $ANTLR start "entryRuleOpIsVisible"
+ // InternalRBAModel.g:2104:1: entryRuleOpIsVisible : ruleOpIsVisible EOF ;
+ public final void entryRuleOpIsVisible() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:2105:1: ( ruleOpIsVisible EOF )
+ // InternalRBAModel.g:2106:1: ruleOpIsVisible EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpIsVisibleRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpIsVisible();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpIsVisibleRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpIsVisible"
+
+
+ // $ANTLR start "ruleOpIsVisible"
+ // InternalRBAModel.g:2113:1: ruleOpIsVisible : ( 'isVisible' ) ;
+ public final void ruleOpIsVisible() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:2117:2: ( ( 'isVisible' ) )
+ // InternalRBAModel.g:2118:2: ( 'isVisible' )
+ {
+ // InternalRBAModel.g:2118:2: ( 'isVisible' )
+ // InternalRBAModel.g:2119:3: 'isVisible'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpIsVisibleAccess().getIsVisibleKeyword());
+ }
+ match(input,41,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpIsVisibleAccess().getIsVisibleKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpIsVisible"
+
+
+ // $ANTLR start "entryRuleOpIsOutputted"
+ // InternalRBAModel.g:2129:1: entryRuleOpIsOutputted : ruleOpIsOutputted EOF ;
+ public final void entryRuleOpIsOutputted() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:2130:1: ( ruleOpIsOutputted EOF )
+ // InternalRBAModel.g:2131:1: ruleOpIsOutputted EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpIsOutputtedRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpIsOutputted();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpIsOutputtedRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpIsOutputted"
+
+
+ // $ANTLR start "ruleOpIsOutputted"
+ // InternalRBAModel.g:2138:1: ruleOpIsOutputted : ( 'isOutputted' ) ;
+ public final void ruleOpIsOutputted() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:2142:2: ( ( 'isOutputted' ) )
+ // InternalRBAModel.g:2143:2: ( 'isOutputted' )
+ {
+ // InternalRBAModel.g:2143:2: ( 'isOutputted' )
+ // InternalRBAModel.g:2144:3: 'isOutputted'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpIsOutputtedAccess().getIsOutputtedKeyword());
+ }
+ match(input,42,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpIsOutputtedAccess().getIsOutputtedKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpIsOutputted"
+
+
+ // $ANTLR start "entryRuleOpIsMuted"
+ // InternalRBAModel.g:2154:1: entryRuleOpIsMuted : ruleOpIsMuted EOF ;
+ public final void entryRuleOpIsMuted() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:2155:1: ( ruleOpIsMuted EOF )
+ // InternalRBAModel.g:2156:1: ruleOpIsMuted EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpIsMutedRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpIsMuted();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpIsMutedRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpIsMuted"
+
+
+ // $ANTLR start "ruleOpIsMuted"
+ // InternalRBAModel.g:2163:1: ruleOpIsMuted : ( 'isMuted' ) ;
+ public final void ruleOpIsMuted() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:2167:2: ( ( 'isMuted' ) )
+ // InternalRBAModel.g:2168:2: ( 'isMuted' )
+ {
+ // InternalRBAModel.g:2168:2: ( 'isMuted' )
+ // InternalRBAModel.g:2169:3: 'isMuted'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpIsMutedAccess().getIsMutedKeyword());
+ }
+ match(input,43,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpIsMutedAccess().getIsMutedKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpIsMuted"
+
+
+ // $ANTLR start "entryRuleOpOutputtingSound"
+ // InternalRBAModel.g:2179:1: entryRuleOpOutputtingSound : ruleOpOutputtingSound EOF ;
+ public final void entryRuleOpOutputtingSound() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:2180:1: ( ruleOpOutputtingSound EOF )
+ // InternalRBAModel.g:2181:1: ruleOpOutputtingSound EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpOutputtingSoundRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpOutputtingSound();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpOutputtingSoundRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpOutputtingSound"
+
+
+ // $ANTLR start "ruleOpOutputtingSound"
+ // InternalRBAModel.g:2188:1: ruleOpOutputtingSound : ( 'outputtingSound' ) ;
+ public final void ruleOpOutputtingSound() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:2192:2: ( ( 'outputtingSound' ) )
+ // InternalRBAModel.g:2193:2: ( 'outputtingSound' )
+ {
+ // InternalRBAModel.g:2193:2: ( 'outputtingSound' )
+ // InternalRBAModel.g:2194:3: 'outputtingSound'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpOutputtingSoundAccess().getOutputtingSoundKeyword());
+ }
+ match(input,44,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpOutputtingSoundAccess().getOutputtingSoundKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpOutputtingSound"
+
+
+ // $ANTLR start "entryRuleOpIsSounding"
+ // InternalRBAModel.g:2204:1: entryRuleOpIsSounding : ruleOpIsSounding EOF ;
+ public final void entryRuleOpIsSounding() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:2205:1: ( ruleOpIsSounding EOF )
+ // InternalRBAModel.g:2206:1: ruleOpIsSounding EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpIsSoundingRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpIsSounding();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpIsSoundingRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpIsSounding"
+
+
+ // $ANTLR start "ruleOpIsSounding"
+ // InternalRBAModel.g:2213:1: ruleOpIsSounding : ( 'isSounding' ) ;
+ public final void ruleOpIsSounding() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:2217:2: ( ( 'isSounding' ) )
+ // InternalRBAModel.g:2218:2: ( 'isSounding' )
+ {
+ // InternalRBAModel.g:2218:2: ( 'isSounding' )
+ // InternalRBAModel.g:2219:3: 'isSounding'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpIsSoundingAccess().getIsSoundingKeyword());
+ }
+ match(input,45,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpIsSoundingAccess().getIsSoundingKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpIsSounding"
+
+
+ // $ANTLR start "entryRuleOpIsAttenuated"
+ // InternalRBAModel.g:2229:1: entryRuleOpIsAttenuated : ruleOpIsAttenuated EOF ;
+ public final void entryRuleOpIsAttenuated() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:2230:1: ( ruleOpIsAttenuated EOF )
+ // InternalRBAModel.g:2231:1: ruleOpIsAttenuated EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpIsAttenuatedRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpIsAttenuated();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpIsAttenuatedRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpIsAttenuated"
+
+
+ // $ANTLR start "ruleOpIsAttenuated"
+ // InternalRBAModel.g:2238:1: ruleOpIsAttenuated : ( 'isAttenuated' ) ;
+ public final void ruleOpIsAttenuated() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:2242:2: ( ( 'isAttenuated' ) )
+ // InternalRBAModel.g:2243:2: ( 'isAttenuated' )
+ {
+ // InternalRBAModel.g:2243:2: ( 'isAttenuated' )
+ // InternalRBAModel.g:2244:3: 'isAttenuated'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpIsAttenuatedAccess().getIsAttenuatedKeyword());
+ }
+ match(input,46,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpIsAttenuatedAccess().getIsAttenuatedKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpIsAttenuated"
+
+
+ // $ANTLR start "entryRuleOpHasComeEarlierThan"
+ // InternalRBAModel.g:2254:1: entryRuleOpHasComeEarlierThan : ruleOpHasComeEarlierThan EOF ;
+ public final void entryRuleOpHasComeEarlierThan() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:2255:1: ( ruleOpHasComeEarlierThan EOF )
+ // InternalRBAModel.g:2256:1: ruleOpHasComeEarlierThan EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpHasComeEarlierThanRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpHasComeEarlierThan();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpHasComeEarlierThanRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpHasComeEarlierThan"
+
+
+ // $ANTLR start "ruleOpHasComeEarlierThan"
+ // InternalRBAModel.g:2263:1: ruleOpHasComeEarlierThan : ( 'hasComeEarlierThan' ) ;
+ public final void ruleOpHasComeEarlierThan() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:2267:2: ( ( 'hasComeEarlierThan' ) )
+ // InternalRBAModel.g:2268:2: ( 'hasComeEarlierThan' )
+ {
+ // InternalRBAModel.g:2268:2: ( 'hasComeEarlierThan' )
+ // InternalRBAModel.g:2269:3: 'hasComeEarlierThan'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpHasComeEarlierThanAccess().getHasComeEarlierThanKeyword());
+ }
+ match(input,47,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpHasComeEarlierThanAccess().getHasComeEarlierThanKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpHasComeEarlierThan"
+
+
+ // $ANTLR start "entryRuleOpHasComeLaterThan"
+ // InternalRBAModel.g:2279:1: entryRuleOpHasComeLaterThan : ruleOpHasComeLaterThan EOF ;
+ public final void entryRuleOpHasComeLaterThan() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:2280:1: ( ruleOpHasComeLaterThan EOF )
+ // InternalRBAModel.g:2281:1: ruleOpHasComeLaterThan EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpHasComeLaterThanRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpHasComeLaterThan();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpHasComeLaterThanRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpHasComeLaterThan"
+
+
+ // $ANTLR start "ruleOpHasComeLaterThan"
+ // InternalRBAModel.g:2288:1: ruleOpHasComeLaterThan : ( 'hasComeLaterThan' ) ;
+ public final void ruleOpHasComeLaterThan() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:2292:2: ( ( 'hasComeLaterThan' ) )
+ // InternalRBAModel.g:2293:2: ( 'hasComeLaterThan' )
+ {
+ // InternalRBAModel.g:2293:2: ( 'hasComeLaterThan' )
+ // InternalRBAModel.g:2294:3: 'hasComeLaterThan'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpHasComeLaterThanAccess().getHasComeLaterThanKeyword());
+ }
+ match(input,48,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpHasComeLaterThanAccess().getHasComeLaterThanKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpHasComeLaterThan"
+
+
+ // $ANTLR start "entryRuleOpStateValue"
+ // InternalRBAModel.g:2304:1: entryRuleOpStateValue : ruleOpStateValue EOF ;
+ public final void entryRuleOpStateValue() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:2305:1: ( ruleOpStateValue EOF )
+ // InternalRBAModel.g:2306:1: ruleOpStateValue EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpStateValueRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpStateValue();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpStateValueRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpStateValue"
+
+
+ // $ANTLR start "ruleOpStateValue"
+ // InternalRBAModel.g:2313:1: ruleOpStateValue : ( 'stateValue' ) ;
+ public final void ruleOpStateValue() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:2317:2: ( ( 'stateValue' ) )
+ // InternalRBAModel.g:2318:2: ( 'stateValue' )
+ {
+ // InternalRBAModel.g:2318:2: ( 'stateValue' )
+ // InternalRBAModel.g:2319:3: 'stateValue'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpStateValueAccess().getStateValueKeyword());
+ }
+ match(input,49,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpStateValueAccess().getStateValueKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpStateValue"
+
+
+ // $ANTLR start "entryRuleOpIsAllocatedTo"
+ // InternalRBAModel.g:2329:1: entryRuleOpIsAllocatedTo : ruleOpIsAllocatedTo EOF ;
+ public final void entryRuleOpIsAllocatedTo() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:2330:1: ( ruleOpIsAllocatedTo EOF )
+ // InternalRBAModel.g:2331:1: ruleOpIsAllocatedTo EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpIsAllocatedToRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpIsAllocatedTo();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpIsAllocatedToRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpIsAllocatedTo"
+
+
+ // $ANTLR start "ruleOpIsAllocatedTo"
+ // InternalRBAModel.g:2338:1: ruleOpIsAllocatedTo : ( 'isAllocatedTo' ) ;
+ public final void ruleOpIsAllocatedTo() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:2342:2: ( ( 'isAllocatedTo' ) )
+ // InternalRBAModel.g:2343:2: ( 'isAllocatedTo' )
+ {
+ // InternalRBAModel.g:2343:2: ( 'isAllocatedTo' )
+ // InternalRBAModel.g:2344:3: 'isAllocatedTo'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpIsAllocatedToAccess().getIsAllocatedToKeyword());
+ }
+ match(input,50,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpIsAllocatedToAccess().getIsAllocatedToKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpIsAllocatedTo"
+
+
+ // $ANTLR start "entryRuleOpIsChanged"
+ // InternalRBAModel.g:2354:1: entryRuleOpIsChanged : ruleOpIsChanged EOF ;
+ public final void entryRuleOpIsChanged() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:2355:1: ( ruleOpIsChanged EOF )
+ // InternalRBAModel.g:2356:1: ruleOpIsChanged EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpIsChangedRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpIsChanged();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpIsChangedRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpIsChanged"
+
+
+ // $ANTLR start "ruleOpIsChanged"
+ // InternalRBAModel.g:2363:1: ruleOpIsChanged : ( 'isChanged' ) ;
+ public final void ruleOpIsChanged() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:2367:2: ( ( 'isChanged' ) )
+ // InternalRBAModel.g:2368:2: ( 'isChanged' )
+ {
+ // InternalRBAModel.g:2368:2: ( 'isChanged' )
+ // InternalRBAModel.g:2369:3: 'isChanged'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpIsChangedAccess().getIsChangedKeyword());
+ }
+ match(input,51,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpIsChangedAccess().getIsChangedKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpIsChanged"
+
+
+ // $ANTLR start "entryRuleOpIsTranslatedTo"
+ // InternalRBAModel.g:2379:1: entryRuleOpIsTranslatedTo : ruleOpIsTranslatedTo EOF ;
+ public final void entryRuleOpIsTranslatedTo() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:2380:1: ( ruleOpIsTranslatedTo EOF )
+ // InternalRBAModel.g:2381:1: ruleOpIsTranslatedTo EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpIsTranslatedToRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpIsTranslatedTo();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpIsTranslatedToRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpIsTranslatedTo"
+
+
+ // $ANTLR start "ruleOpIsTranslatedTo"
+ // InternalRBAModel.g:2388:1: ruleOpIsTranslatedTo : ( 'isTranslatedTo' ) ;
+ public final void ruleOpIsTranslatedTo() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:2392:2: ( ( 'isTranslatedTo' ) )
+ // InternalRBAModel.g:2393:2: ( 'isTranslatedTo' )
+ {
+ // InternalRBAModel.g:2393:2: ( 'isTranslatedTo' )
+ // InternalRBAModel.g:2394:3: 'isTranslatedTo'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpIsTranslatedToAccess().getIsTranslatedToKeyword());
+ }
+ match(input,52,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpIsTranslatedToAccess().getIsTranslatedToKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpIsTranslatedTo"
+
+
+ // $ANTLR start "entryRuleOpIsDisplayedOn"
+ // InternalRBAModel.g:2404:1: entryRuleOpIsDisplayedOn : ruleOpIsDisplayedOn EOF ;
+ public final void entryRuleOpIsDisplayedOn() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:2405:1: ( ruleOpIsDisplayedOn EOF )
+ // InternalRBAModel.g:2406:1: ruleOpIsDisplayedOn EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpIsDisplayedOnRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpIsDisplayedOn();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpIsDisplayedOnRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpIsDisplayedOn"
+
+
+ // $ANTLR start "ruleOpIsDisplayedOn"
+ // InternalRBAModel.g:2413:1: ruleOpIsDisplayedOn : ( 'isDisplayedOn' ) ;
+ public final void ruleOpIsDisplayedOn() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:2417:2: ( ( 'isDisplayedOn' ) )
+ // InternalRBAModel.g:2418:2: ( 'isDisplayedOn' )
+ {
+ // InternalRBAModel.g:2418:2: ( 'isDisplayedOn' )
+ // InternalRBAModel.g:2419:3: 'isDisplayedOn'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpIsDisplayedOnAccess().getIsDisplayedOnKeyword());
+ }
+ match(input,53,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpIsDisplayedOnAccess().getIsDisplayedOnKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpIsDisplayedOn"
+
+
+ // $ANTLR start "entryRuleOpIsChangedDisplay"
+ // InternalRBAModel.g:2429:1: entryRuleOpIsChangedDisplay : ruleOpIsChangedDisplay EOF ;
+ public final void entryRuleOpIsChangedDisplay() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:2430:1: ( ruleOpIsChangedDisplay EOF )
+ // InternalRBAModel.g:2431:1: ruleOpIsChangedDisplay EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpIsChangedDisplayRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpIsChangedDisplay();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpIsChangedDisplayRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpIsChangedDisplay"
+
+
+ // $ANTLR start "ruleOpIsChangedDisplay"
+ // InternalRBAModel.g:2438:1: ruleOpIsChangedDisplay : ( 'isChangedDisplay' ) ;
+ public final void ruleOpIsChangedDisplay() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:2442:2: ( ( 'isChangedDisplay' ) )
+ // InternalRBAModel.g:2443:2: ( 'isChangedDisplay' )
+ {
+ // InternalRBAModel.g:2443:2: ( 'isChangedDisplay' )
+ // InternalRBAModel.g:2444:3: 'isChangedDisplay'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpIsChangedDisplayAccess().getIsChangedDisplayKeyword());
+ }
+ match(input,54,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpIsChangedDisplayAccess().getIsChangedDisplayKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpIsChangedDisplay"
+
+
+ // $ANTLR start "entryRuleOpIsTranslatedViewTo"
+ // InternalRBAModel.g:2454:1: entryRuleOpIsTranslatedViewTo : ruleOpIsTranslatedViewTo EOF ;
+ public final void entryRuleOpIsTranslatedViewTo() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:2455:1: ( ruleOpIsTranslatedViewTo EOF )
+ // InternalRBAModel.g:2456:1: ruleOpIsTranslatedViewTo EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpIsTranslatedViewToRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpIsTranslatedViewTo();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpIsTranslatedViewToRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpIsTranslatedViewTo"
+
+
+ // $ANTLR start "ruleOpIsTranslatedViewTo"
+ // InternalRBAModel.g:2463:1: ruleOpIsTranslatedViewTo : ( 'isTranslatedViewTo' ) ;
+ public final void ruleOpIsTranslatedViewTo() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:2467:2: ( ( 'isTranslatedViewTo' ) )
+ // InternalRBAModel.g:2468:2: ( 'isTranslatedViewTo' )
+ {
+ // InternalRBAModel.g:2468:2: ( 'isTranslatedViewTo' )
+ // InternalRBAModel.g:2469:3: 'isTranslatedViewTo'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpIsTranslatedViewToAccess().getIsTranslatedViewToKeyword());
+ }
+ match(input,55,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpIsTranslatedViewToAccess().getIsTranslatedViewToKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpIsTranslatedViewTo"
+
+
+ // $ANTLR start "entryRuleOpIsOutputtedOn"
+ // InternalRBAModel.g:2479:1: entryRuleOpIsOutputtedOn : ruleOpIsOutputtedOn EOF ;
+ public final void entryRuleOpIsOutputtedOn() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:2480:1: ( ruleOpIsOutputtedOn EOF )
+ // InternalRBAModel.g:2481:1: ruleOpIsOutputtedOn EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpIsOutputtedOnRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpIsOutputtedOn();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpIsOutputtedOnRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpIsOutputtedOn"
+
+
+ // $ANTLR start "ruleOpIsOutputtedOn"
+ // InternalRBAModel.g:2488:1: ruleOpIsOutputtedOn : ( 'isOutputtedOn' ) ;
+ public final void ruleOpIsOutputtedOn() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:2492:2: ( ( 'isOutputtedOn' ) )
+ // InternalRBAModel.g:2493:2: ( 'isOutputtedOn' )
+ {
+ // InternalRBAModel.g:2493:2: ( 'isOutputtedOn' )
+ // InternalRBAModel.g:2494:3: 'isOutputtedOn'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpIsOutputtedOnAccess().getIsOutputtedOnKeyword());
+ }
+ match(input,56,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpIsOutputtedOnAccess().getIsOutputtedOnKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpIsOutputtedOn"
+
+
+ // $ANTLR start "entryRuleOpIsChangedOutput"
+ // InternalRBAModel.g:2504:1: entryRuleOpIsChangedOutput : ruleOpIsChangedOutput EOF ;
+ public final void entryRuleOpIsChangedOutput() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:2505:1: ( ruleOpIsChangedOutput EOF )
+ // InternalRBAModel.g:2506:1: ruleOpIsChangedOutput EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpIsChangedOutputRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpIsChangedOutput();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpIsChangedOutputRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpIsChangedOutput"
+
+
+ // $ANTLR start "ruleOpIsChangedOutput"
+ // InternalRBAModel.g:2513:1: ruleOpIsChangedOutput : ( 'isChangedOutput' ) ;
+ public final void ruleOpIsChangedOutput() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:2517:2: ( ( 'isChangedOutput' ) )
+ // InternalRBAModel.g:2518:2: ( 'isChangedOutput' )
+ {
+ // InternalRBAModel.g:2518:2: ( 'isChangedOutput' )
+ // InternalRBAModel.g:2519:3: 'isChangedOutput'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpIsChangedOutputAccess().getIsChangedOutputKeyword());
+ }
+ match(input,57,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpIsChangedOutputAccess().getIsChangedOutputKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpIsChangedOutput"
+
+
+ // $ANTLR start "entryRuleOpIsTranslatedSoundTo"
+ // InternalRBAModel.g:2529:1: entryRuleOpIsTranslatedSoundTo : ruleOpIsTranslatedSoundTo EOF ;
+ public final void entryRuleOpIsTranslatedSoundTo() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:2530:1: ( ruleOpIsTranslatedSoundTo EOF )
+ // InternalRBAModel.g:2531:1: ruleOpIsTranslatedSoundTo EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpIsTranslatedSoundToRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpIsTranslatedSoundTo();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpIsTranslatedSoundToRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpIsTranslatedSoundTo"
+
+
+ // $ANTLR start "ruleOpIsTranslatedSoundTo"
+ // InternalRBAModel.g:2538:1: ruleOpIsTranslatedSoundTo : ( 'isTranslatedSoundTo' ) ;
+ public final void ruleOpIsTranslatedSoundTo() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:2542:2: ( ( 'isTranslatedSoundTo' ) )
+ // InternalRBAModel.g:2543:2: ( 'isTranslatedSoundTo' )
+ {
+ // InternalRBAModel.g:2543:2: ( 'isTranslatedSoundTo' )
+ // InternalRBAModel.g:2544:3: 'isTranslatedSoundTo'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpIsTranslatedSoundToAccess().getIsTranslatedSoundToKeyword());
+ }
+ match(input,58,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpIsTranslatedSoundToAccess().getIsTranslatedSoundToKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpIsTranslatedSoundTo"
+
+
+ // $ANTLR start "entryRuleOpIsTypeOf"
+ // InternalRBAModel.g:2554:1: entryRuleOpIsTypeOf : ruleOpIsTypeOf EOF ;
+ public final void entryRuleOpIsTypeOf() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:2555:1: ( ruleOpIsTypeOf EOF )
+ // InternalRBAModel.g:2556:1: ruleOpIsTypeOf EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpIsTypeOfRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpIsTypeOf();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpIsTypeOfRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpIsTypeOf"
+
+
+ // $ANTLR start "ruleOpIsTypeOf"
+ // InternalRBAModel.g:2563:1: ruleOpIsTypeOf : ( 'isTypeOf' ) ;
+ public final void ruleOpIsTypeOf() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:2567:2: ( ( 'isTypeOf' ) )
+ // InternalRBAModel.g:2568:2: ( 'isTypeOf' )
+ {
+ // InternalRBAModel.g:2568:2: ( 'isTypeOf' )
+ // InternalRBAModel.g:2569:3: 'isTypeOf'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpIsTypeOfAccess().getIsTypeOfKeyword());
+ }
+ match(input,59,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpIsTypeOfAccess().getIsTypeOfKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpIsTypeOf"
+
+
+ // $ANTLR start "entryRuleOpActiveContents"
+ // InternalRBAModel.g:2579:1: entryRuleOpActiveContents : ruleOpActiveContents EOF ;
+ public final void entryRuleOpActiveContents() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:2580:1: ( ruleOpActiveContents EOF )
+ // InternalRBAModel.g:2581:1: ruleOpActiveContents EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpActiveContentsRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpActiveContents();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpActiveContentsRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpActiveContents"
+
+
+ // $ANTLR start "ruleOpActiveContents"
+ // InternalRBAModel.g:2588:1: ruleOpActiveContents : ( 'activeContents' ) ;
+ public final void ruleOpActiveContents() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:2592:2: ( ( 'activeContents' ) )
+ // InternalRBAModel.g:2593:2: ( 'activeContents' )
+ {
+ // InternalRBAModel.g:2593:2: ( 'activeContents' )
+ // InternalRBAModel.g:2594:3: 'activeContents'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpActiveContentsAccess().getActiveContentsKeyword());
+ }
+ match(input,60,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpActiveContentsAccess().getActiveContentsKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpActiveContents"
+
+
+ // $ANTLR start "entryRuleOpSizeOperator"
+ // InternalRBAModel.g:2604:1: entryRuleOpSizeOperator : ruleOpSizeOperator EOF ;
+ public final void entryRuleOpSizeOperator() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:2605:1: ( ruleOpSizeOperator EOF )
+ // InternalRBAModel.g:2606:1: ruleOpSizeOperator EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpSizeOperatorRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpSizeOperator();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpSizeOperatorRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpSizeOperator"
+
+
+ // $ANTLR start "ruleOpSizeOperator"
+ // InternalRBAModel.g:2613:1: ruleOpSizeOperator : ( 'size' ) ;
+ public final void ruleOpSizeOperator() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:2617:2: ( ( 'size' ) )
+ // InternalRBAModel.g:2618:2: ( 'size' )
+ {
+ // InternalRBAModel.g:2618:2: ( 'size' )
+ // InternalRBAModel.g:2619:3: 'size'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpSizeOperatorAccess().getSizeKeyword());
+ }
+ match(input,61,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpSizeOperatorAccess().getSizeKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpSizeOperator"
+
+
+ // $ANTLR start "entryRuleOpHasBeenDisplayed"
+ // InternalRBAModel.g:2629:1: entryRuleOpHasBeenDisplayed : ruleOpHasBeenDisplayed EOF ;
+ public final void entryRuleOpHasBeenDisplayed() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:2630:1: ( ruleOpHasBeenDisplayed EOF )
+ // InternalRBAModel.g:2631:1: ruleOpHasBeenDisplayed EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpHasBeenDisplayedRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpHasBeenDisplayed();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpHasBeenDisplayedRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpHasBeenDisplayed"
+
+
+ // $ANTLR start "ruleOpHasBeenDisplayed"
+ // InternalRBAModel.g:2638:1: ruleOpHasBeenDisplayed : ( 'hasBeenDisplayed' ) ;
+ public final void ruleOpHasBeenDisplayed() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:2642:2: ( ( 'hasBeenDisplayed' ) )
+ // InternalRBAModel.g:2643:2: ( 'hasBeenDisplayed' )
+ {
+ // InternalRBAModel.g:2643:2: ( 'hasBeenDisplayed' )
+ // InternalRBAModel.g:2644:3: 'hasBeenDisplayed'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpHasBeenDisplayedAccess().getHasBeenDisplayedKeyword());
+ }
+ match(input,62,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpHasBeenDisplayedAccess().getHasBeenDisplayedKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpHasBeenDisplayed"
+
+
+ // $ANTLR start "entryRuleOpActiveState"
+ // InternalRBAModel.g:2654:1: entryRuleOpActiveState : ruleOpActiveState EOF ;
+ public final void entryRuleOpActiveState() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:2655:1: ( ruleOpActiveState EOF )
+ // InternalRBAModel.g:2656:1: ruleOpActiveState EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpActiveStateRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpActiveState();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpActiveStateRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpActiveState"
+
+
+ // $ANTLR start "ruleOpActiveState"
+ // InternalRBAModel.g:2663:1: ruleOpActiveState : ( 'activeState' ) ;
+ public final void ruleOpActiveState() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:2667:2: ( ( 'activeState' ) )
+ // InternalRBAModel.g:2668:2: ( 'activeState' )
+ {
+ // InternalRBAModel.g:2668:2: ( 'activeState' )
+ // InternalRBAModel.g:2669:3: 'activeState'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpActiveStateAccess().getActiveStateKeyword());
+ }
+ match(input,63,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpActiveStateAccess().getActiveStateKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpActiveState"
+
+
+ // $ANTLR start "entryRuleOpMaxOperator"
+ // InternalRBAModel.g:2679:1: entryRuleOpMaxOperator : ruleOpMaxOperator EOF ;
+ public final void entryRuleOpMaxOperator() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:2680:1: ( ruleOpMaxOperator EOF )
+ // InternalRBAModel.g:2681:1: ruleOpMaxOperator EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpMaxOperatorRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpMaxOperator();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpMaxOperatorRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpMaxOperator"
+
+
+ // $ANTLR start "ruleOpMaxOperator"
+ // InternalRBAModel.g:2688:1: ruleOpMaxOperator : ( 'max' ) ;
+ public final void ruleOpMaxOperator() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:2692:2: ( ( 'max' ) )
+ // InternalRBAModel.g:2693:2: ( 'max' )
+ {
+ // InternalRBAModel.g:2693:2: ( 'max' )
+ // InternalRBAModel.g:2694:3: 'max'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpMaxOperatorAccess().getMaxKeyword());
+ }
+ match(input,64,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpMaxOperatorAccess().getMaxKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpMaxOperator"
+
+
+ // $ANTLR start "entryRuleOpMinOperator"
+ // InternalRBAModel.g:2704:1: entryRuleOpMinOperator : ruleOpMinOperator EOF ;
+ public final void entryRuleOpMinOperator() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:2705:1: ( ruleOpMinOperator EOF )
+ // InternalRBAModel.g:2706:1: ruleOpMinOperator EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpMinOperatorRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpMinOperator();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpMinOperatorRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpMinOperator"
+
+
+ // $ANTLR start "ruleOpMinOperator"
+ // InternalRBAModel.g:2713:1: ruleOpMinOperator : ( 'min' ) ;
+ public final void ruleOpMinOperator() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:2717:2: ( ( 'min' ) )
+ // InternalRBAModel.g:2718:2: ( 'min' )
+ {
+ // InternalRBAModel.g:2718:2: ( 'min' )
+ // InternalRBAModel.g:2719:3: 'min'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpMinOperatorAccess().getMinKeyword());
+ }
+ match(input,65,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpMinOperatorAccess().getMinKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpMinOperator"
+
+
+ // $ANTLR start "entryRuleOpSelectOperator"
+ // InternalRBAModel.g:2729:1: entryRuleOpSelectOperator : ruleOpSelectOperator EOF ;
+ public final void entryRuleOpSelectOperator() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:2730:1: ( ruleOpSelectOperator EOF )
+ // InternalRBAModel.g:2731:1: ruleOpSelectOperator EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpSelectOperatorRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleOpSelectOperator();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpSelectOperatorRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpSelectOperator"
+
+
+ // $ANTLR start "ruleOpSelectOperator"
+ // InternalRBAModel.g:2738:1: ruleOpSelectOperator : ( 'select' ) ;
+ public final void ruleOpSelectOperator() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:2742:2: ( ( 'select' ) )
+ // InternalRBAModel.g:2743:2: ( 'select' )
+ {
+ // InternalRBAModel.g:2743:2: ( 'select' )
+ // InternalRBAModel.g:2744:3: 'select'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpSelectOperatorAccess().getSelectKeyword());
+ }
+ match(input,66,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpSelectOperatorAccess().getSelectKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpSelectOperator"
+
+
+ // $ANTLR start "entryRuleCPrimaryExpression"
+ // InternalRBAModel.g:2754:1: entryRuleCPrimaryExpression : ruleCPrimaryExpression EOF ;
+ public final void entryRuleCPrimaryExpression() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:2755:1: ( ruleCPrimaryExpression EOF )
+ // InternalRBAModel.g:2756:1: ruleCPrimaryExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCPrimaryExpressionRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleCPrimaryExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCPrimaryExpressionRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleCPrimaryExpression"
+
+
+ // $ANTLR start "ruleCPrimaryExpression"
+ // InternalRBAModel.g:2763:1: ruleCPrimaryExpression : ( ( rule__CPrimaryExpression__Alternatives ) ) ;
+ public final void ruleCPrimaryExpression() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:2767:2: ( ( ( rule__CPrimaryExpression__Alternatives ) ) )
+ // InternalRBAModel.g:2768:2: ( ( rule__CPrimaryExpression__Alternatives ) )
+ {
+ // InternalRBAModel.g:2768:2: ( ( rule__CPrimaryExpression__Alternatives ) )
+ // InternalRBAModel.g:2769:3: ( rule__CPrimaryExpression__Alternatives )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCPrimaryExpressionAccess().getAlternatives());
+ }
+ // InternalRBAModel.g:2770:3: ( rule__CPrimaryExpression__Alternatives )
+ // InternalRBAModel.g:2770:4: rule__CPrimaryExpression__Alternatives
+ {
+ pushFollow(FOLLOW_2);
+ rule__CPrimaryExpression__Alternatives();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCPrimaryExpressionAccess().getAlternatives());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleCPrimaryExpression"
+
+
+ // $ANTLR start "entryRuleAllInstanceOfExpression"
+ // InternalRBAModel.g:2779:1: entryRuleAllInstanceOfExpression : ruleAllInstanceOfExpression EOF ;
+ public final void entryRuleAllInstanceOfExpression() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:2780:1: ( ruleAllInstanceOfExpression EOF )
+ // InternalRBAModel.g:2781:1: ruleAllInstanceOfExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAllInstanceOfExpressionRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleAllInstanceOfExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAllInstanceOfExpressionRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleAllInstanceOfExpression"
+
+
+ // $ANTLR start "ruleAllInstanceOfExpression"
+ // InternalRBAModel.g:2788:1: ruleAllInstanceOfExpression : ( ( rule__AllInstanceOfExpression__Group__0 ) ) ;
+ public final void ruleAllInstanceOfExpression() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:2792:2: ( ( ( rule__AllInstanceOfExpression__Group__0 ) ) )
+ // InternalRBAModel.g:2793:2: ( ( rule__AllInstanceOfExpression__Group__0 ) )
+ {
+ // InternalRBAModel.g:2793:2: ( ( rule__AllInstanceOfExpression__Group__0 ) )
+ // InternalRBAModel.g:2794:3: ( rule__AllInstanceOfExpression__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAllInstanceOfExpressionAccess().getGroup());
+ }
+ // InternalRBAModel.g:2795:3: ( rule__AllInstanceOfExpression__Group__0 )
+ // InternalRBAModel.g:2795:4: rule__AllInstanceOfExpression__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__AllInstanceOfExpression__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAllInstanceOfExpressionAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleAllInstanceOfExpression"
+
+
+ // $ANTLR start "entryRuleNullExpression"
+ // InternalRBAModel.g:2804:1: entryRuleNullExpression : ruleNullExpression EOF ;
+ public final void entryRuleNullExpression() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:2805:1: ( ruleNullExpression EOF )
+ // InternalRBAModel.g:2806:1: ruleNullExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getNullExpressionRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleNullExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getNullExpressionRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleNullExpression"
+
+
+ // $ANTLR start "ruleNullExpression"
+ // InternalRBAModel.g:2813:1: ruleNullExpression : ( ( rule__NullExpression__Group__0 ) ) ;
+ public final void ruleNullExpression() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:2817:2: ( ( ( rule__NullExpression__Group__0 ) ) )
+ // InternalRBAModel.g:2818:2: ( ( rule__NullExpression__Group__0 ) )
+ {
+ // InternalRBAModel.g:2818:2: ( ( rule__NullExpression__Group__0 ) )
+ // InternalRBAModel.g:2819:3: ( rule__NullExpression__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getNullExpressionAccess().getGroup());
+ }
+ // InternalRBAModel.g:2820:3: ( rule__NullExpression__Group__0 )
+ // InternalRBAModel.g:2820:4: rule__NullExpression__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__NullExpression__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getNullExpressionAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleNullExpression"
+
+
+ // $ANTLR start "entryRulePreviousModifier"
+ // InternalRBAModel.g:2829:1: entryRulePreviousModifier : rulePreviousModifier EOF ;
+ public final void entryRulePreviousModifier() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:2830:1: ( rulePreviousModifier EOF )
+ // InternalRBAModel.g:2831:1: rulePreviousModifier EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPreviousModifierRule());
+ }
+ pushFollow(FOLLOW_1);
+ rulePreviousModifier();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPreviousModifierRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRulePreviousModifier"
+
+
+ // $ANTLR start "rulePreviousModifier"
+ // InternalRBAModel.g:2838:1: rulePreviousModifier : ( ( rule__PreviousModifier__Group__0 ) ) ;
+ public final void rulePreviousModifier() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:2842:2: ( ( ( rule__PreviousModifier__Group__0 ) ) )
+ // InternalRBAModel.g:2843:2: ( ( rule__PreviousModifier__Group__0 ) )
+ {
+ // InternalRBAModel.g:2843:2: ( ( rule__PreviousModifier__Group__0 ) )
+ // InternalRBAModel.g:2844:3: ( rule__PreviousModifier__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPreviousModifierAccess().getGroup());
+ }
+ // InternalRBAModel.g:2845:3: ( rule__PreviousModifier__Group__0 )
+ // InternalRBAModel.g:2845:4: rule__PreviousModifier__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__PreviousModifier__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPreviousModifierAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rulePreviousModifier"
+
+
+ // $ANTLR start "entryRuleHideLowerPriority"
+ // InternalRBAModel.g:2854:1: entryRuleHideLowerPriority : ruleHideLowerPriority EOF ;
+ public final void entryRuleHideLowerPriority() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:2855:1: ( ruleHideLowerPriority EOF )
+ // InternalRBAModel.g:2856:1: ruleHideLowerPriority EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getHideLowerPriorityRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleHideLowerPriority();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getHideLowerPriorityRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleHideLowerPriority"
+
+
+ // $ANTLR start "ruleHideLowerPriority"
+ // InternalRBAModel.g:2863:1: ruleHideLowerPriority : ( ( rule__HideLowerPriority__Group__0 ) ) ;
+ public final void ruleHideLowerPriority() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:2867:2: ( ( ( rule__HideLowerPriority__Group__0 ) ) )
+ // InternalRBAModel.g:2868:2: ( ( rule__HideLowerPriority__Group__0 ) )
+ {
+ // InternalRBAModel.g:2868:2: ( ( rule__HideLowerPriority__Group__0 ) )
+ // InternalRBAModel.g:2869:3: ( rule__HideLowerPriority__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getHideLowerPriorityAccess().getGroup());
+ }
+ // InternalRBAModel.g:2870:3: ( rule__HideLowerPriority__Group__0 )
+ // InternalRBAModel.g:2870:4: rule__HideLowerPriority__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__HideLowerPriority__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getHideLowerPriorityAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleHideLowerPriority"
+
+
+ // $ANTLR start "entryRuleMuteLowerPriority"
+ // InternalRBAModel.g:2879:1: entryRuleMuteLowerPriority : ruleMuteLowerPriority EOF ;
+ public final void entryRuleMuteLowerPriority() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:2880:1: ( ruleMuteLowerPriority EOF )
+ // InternalRBAModel.g:2881:1: ruleMuteLowerPriority EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getMuteLowerPriorityRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleMuteLowerPriority();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getMuteLowerPriorityRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleMuteLowerPriority"
+
+
+ // $ANTLR start "ruleMuteLowerPriority"
+ // InternalRBAModel.g:2888:1: ruleMuteLowerPriority : ( ( rule__MuteLowerPriority__Group__0 ) ) ;
+ public final void ruleMuteLowerPriority() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:2892:2: ( ( ( rule__MuteLowerPriority__Group__0 ) ) )
+ // InternalRBAModel.g:2893:2: ( ( rule__MuteLowerPriority__Group__0 ) )
+ {
+ // InternalRBAModel.g:2893:2: ( ( rule__MuteLowerPriority__Group__0 ) )
+ // InternalRBAModel.g:2894:3: ( rule__MuteLowerPriority__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getMuteLowerPriorityAccess().getGroup());
+ }
+ // InternalRBAModel.g:2895:3: ( rule__MuteLowerPriority__Group__0 )
+ // InternalRBAModel.g:2895:4: rule__MuteLowerPriority__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__MuteLowerPriority__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getMuteLowerPriorityAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleMuteLowerPriority"
+
+
+ // $ANTLR start "entryRuleSetOfOperator"
+ // InternalRBAModel.g:2904:1: entryRuleSetOfOperator : ruleSetOfOperator EOF ;
+ public final void entryRuleSetOfOperator() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:2905:1: ( ruleSetOfOperator EOF )
+ // InternalRBAModel.g:2906:1: ruleSetOfOperator EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSetOfOperatorRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleSetOfOperator();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSetOfOperatorRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleSetOfOperator"
+
+
+ // $ANTLR start "ruleSetOfOperator"
+ // InternalRBAModel.g:2913:1: ruleSetOfOperator : ( ( rule__SetOfOperator__Group__0 ) ) ;
+ public final void ruleSetOfOperator() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:2917:2: ( ( ( rule__SetOfOperator__Group__0 ) ) )
+ // InternalRBAModel.g:2918:2: ( ( rule__SetOfOperator__Group__0 ) )
+ {
+ // InternalRBAModel.g:2918:2: ( ( rule__SetOfOperator__Group__0 ) )
+ // InternalRBAModel.g:2919:3: ( rule__SetOfOperator__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSetOfOperatorAccess().getGroup());
+ }
+ // InternalRBAModel.g:2920:3: ( rule__SetOfOperator__Group__0 )
+ // InternalRBAModel.g:2920:4: rule__SetOfOperator__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__SetOfOperator__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSetOfOperatorAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleSetOfOperator"
+
+
+ // $ANTLR start "entryRuleIfStatement"
+ // InternalRBAModel.g:2929:1: entryRuleIfStatement : ruleIfStatement EOF ;
+ public final void entryRuleIfStatement() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:2930:1: ( ruleIfStatement EOF )
+ // InternalRBAModel.g:2931:1: ruleIfStatement EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getIfStatementRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleIfStatement();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getIfStatementRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleIfStatement"
+
+
+ // $ANTLR start "ruleIfStatement"
+ // InternalRBAModel.g:2938:1: ruleIfStatement : ( ( rule__IfStatement__Group__0 ) ) ;
+ public final void ruleIfStatement() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:2942:2: ( ( ( rule__IfStatement__Group__0 ) ) )
+ // InternalRBAModel.g:2943:2: ( ( rule__IfStatement__Group__0 ) )
+ {
+ // InternalRBAModel.g:2943:2: ( ( rule__IfStatement__Group__0 ) )
+ // InternalRBAModel.g:2944:3: ( rule__IfStatement__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getIfStatementAccess().getGroup());
+ }
+ // InternalRBAModel.g:2945:3: ( rule__IfStatement__Group__0 )
+ // InternalRBAModel.g:2945:4: rule__IfStatement__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__IfStatement__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getIfStatementAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleIfStatement"
+
+
+ // $ANTLR start "entryRuleForAllOperator"
+ // InternalRBAModel.g:2954:1: entryRuleForAllOperator : ruleForAllOperator EOF ;
+ public final void entryRuleForAllOperator() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:2955:1: ( ruleForAllOperator EOF )
+ // InternalRBAModel.g:2956:1: ruleForAllOperator EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getForAllOperatorRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleForAllOperator();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getForAllOperatorRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleForAllOperator"
+
+
+ // $ANTLR start "ruleForAllOperator"
+ // InternalRBAModel.g:2963:1: ruleForAllOperator : ( ( rule__ForAllOperator__Group__0 ) ) ;
+ public final void ruleForAllOperator() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:2967:2: ( ( ( rule__ForAllOperator__Group__0 ) ) )
+ // InternalRBAModel.g:2968:2: ( ( rule__ForAllOperator__Group__0 ) )
+ {
+ // InternalRBAModel.g:2968:2: ( ( rule__ForAllOperator__Group__0 ) )
+ // InternalRBAModel.g:2969:3: ( rule__ForAllOperator__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getForAllOperatorAccess().getGroup());
+ }
+ // InternalRBAModel.g:2970:3: ( rule__ForAllOperator__Group__0 )
+ // InternalRBAModel.g:2970:4: rule__ForAllOperator__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ForAllOperator__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getForAllOperatorAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleForAllOperator"
+
+
+ // $ANTLR start "entryRuleExistsOperator"
+ // InternalRBAModel.g:2979:1: entryRuleExistsOperator : ruleExistsOperator EOF ;
+ public final void entryRuleExistsOperator() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:2980:1: ( ruleExistsOperator EOF )
+ // InternalRBAModel.g:2981:1: ruleExistsOperator EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getExistsOperatorRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleExistsOperator();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getExistsOperatorRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleExistsOperator"
+
+
+ // $ANTLR start "ruleExistsOperator"
+ // InternalRBAModel.g:2988:1: ruleExistsOperator : ( ( rule__ExistsOperator__Group__0 ) ) ;
+ public final void ruleExistsOperator() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:2992:2: ( ( ( rule__ExistsOperator__Group__0 ) ) )
+ // InternalRBAModel.g:2993:2: ( ( rule__ExistsOperator__Group__0 ) )
+ {
+ // InternalRBAModel.g:2993:2: ( ( rule__ExistsOperator__Group__0 ) )
+ // InternalRBAModel.g:2994:3: ( rule__ExistsOperator__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getExistsOperatorAccess().getGroup());
+ }
+ // InternalRBAModel.g:2995:3: ( rule__ExistsOperator__Group__0 )
+ // InternalRBAModel.g:2995:4: rule__ExistsOperator__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ExistsOperator__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getExistsOperatorAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleExistsOperator"
+
+
+ // $ANTLR start "entryRuleLambdaExpression"
+ // InternalRBAModel.g:3004:1: entryRuleLambdaExpression : ruleLambdaExpression EOF ;
+ public final void entryRuleLambdaExpression() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:3005:1: ( ruleLambdaExpression EOF )
+ // InternalRBAModel.g:3006:1: ruleLambdaExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLambdaExpressionRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleLambdaExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLambdaExpressionRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleLambdaExpression"
+
+
+ // $ANTLR start "ruleLambdaExpression"
+ // InternalRBAModel.g:3013:1: ruleLambdaExpression : ( ( rule__LambdaExpression__Group__0 ) ) ;
+ public final void ruleLambdaExpression() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:3017:2: ( ( ( rule__LambdaExpression__Group__0 ) ) )
+ // InternalRBAModel.g:3018:2: ( ( rule__LambdaExpression__Group__0 ) )
+ {
+ // InternalRBAModel.g:3018:2: ( ( rule__LambdaExpression__Group__0 ) )
+ // InternalRBAModel.g:3019:3: ( rule__LambdaExpression__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLambdaExpressionAccess().getGroup());
+ }
+ // InternalRBAModel.g:3020:3: ( rule__LambdaExpression__Group__0 )
+ // InternalRBAModel.g:3020:4: rule__LambdaExpression__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__LambdaExpression__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLambdaExpressionAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleLambdaExpression"
+
+
+ // $ANTLR start "entryRuleVariable"
+ // InternalRBAModel.g:3029:1: entryRuleVariable : ruleVariable EOF ;
+ public final void entryRuleVariable() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:3030:1: ( ruleVariable EOF )
+ // InternalRBAModel.g:3031:1: ruleVariable EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVariableRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleVariable();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVariableRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleVariable"
+
+
+ // $ANTLR start "ruleVariable"
+ // InternalRBAModel.g:3038:1: ruleVariable : ( ( rule__Variable__Group__0 ) ) ;
+ public final void ruleVariable() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:3042:2: ( ( ( rule__Variable__Group__0 ) ) )
+ // InternalRBAModel.g:3043:2: ( ( rule__Variable__Group__0 ) )
+ {
+ // InternalRBAModel.g:3043:2: ( ( rule__Variable__Group__0 ) )
+ // InternalRBAModel.g:3044:3: ( rule__Variable__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVariableAccess().getGroup());
+ }
+ // InternalRBAModel.g:3045:3: ( rule__Variable__Group__0 )
+ // InternalRBAModel.g:3045:4: rule__Variable__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Variable__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVariableAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleVariable"
+
+
+ // $ANTLR start "entryRuleCMemberFeatureReference"
+ // InternalRBAModel.g:3054:1: entryRuleCMemberFeatureReference : ruleCMemberFeatureReference EOF ;
+ public final void entryRuleCMemberFeatureReference() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:3055:1: ( ruleCMemberFeatureReference EOF )
+ // InternalRBAModel.g:3056:1: ruleCMemberFeatureReference EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCMemberFeatureReferenceRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleCMemberFeatureReference();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCMemberFeatureReferenceRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleCMemberFeatureReference"
+
+
+ // $ANTLR start "ruleCMemberFeatureReference"
+ // InternalRBAModel.g:3063:1: ruleCMemberFeatureReference : ( ( rule__CMemberFeatureReference__Group__0 ) ) ;
+ public final void ruleCMemberFeatureReference() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:3067:2: ( ( ( rule__CMemberFeatureReference__Group__0 ) ) )
+ // InternalRBAModel.g:3068:2: ( ( rule__CMemberFeatureReference__Group__0 ) )
+ {
+ // InternalRBAModel.g:3068:2: ( ( rule__CMemberFeatureReference__Group__0 ) )
+ // InternalRBAModel.g:3069:3: ( rule__CMemberFeatureReference__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCMemberFeatureReferenceAccess().getGroup());
+ }
+ // InternalRBAModel.g:3070:3: ( rule__CMemberFeatureReference__Group__0 )
+ // InternalRBAModel.g:3070:4: rule__CMemberFeatureReference__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__CMemberFeatureReference__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCMemberFeatureReferenceAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleCMemberFeatureReference"
+
+
+ // $ANTLR start "entryRuleLetStatement"
+ // InternalRBAModel.g:3079:1: entryRuleLetStatement : ruleLetStatement EOF ;
+ public final void entryRuleLetStatement() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:3080:1: ( ruleLetStatement EOF )
+ // InternalRBAModel.g:3081:1: ruleLetStatement EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLetStatementRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleLetStatement();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLetStatementRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleLetStatement"
+
+
+ // $ANTLR start "ruleLetStatement"
+ // InternalRBAModel.g:3088:1: ruleLetStatement : ( ( rule__LetStatement__Group__0 ) ) ;
+ public final void ruleLetStatement() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:3092:2: ( ( ( rule__LetStatement__Group__0 ) ) )
+ // InternalRBAModel.g:3093:2: ( ( rule__LetStatement__Group__0 ) )
+ {
+ // InternalRBAModel.g:3093:2: ( ( rule__LetStatement__Group__0 ) )
+ // InternalRBAModel.g:3094:3: ( rule__LetStatement__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLetStatementAccess().getGroup());
+ }
+ // InternalRBAModel.g:3095:3: ( rule__LetStatement__Group__0 )
+ // InternalRBAModel.g:3095:4: rule__LetStatement__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__LetStatement__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLetStatementAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleLetStatement"
+
+
+ // $ANTLR start "entryRuleComplexExpression"
+ // InternalRBAModel.g:3104:1: entryRuleComplexExpression : ruleComplexExpression EOF ;
+ public final void entryRuleComplexExpression() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:3105:1: ( ruleComplexExpression EOF )
+ // InternalRBAModel.g:3106:1: ruleComplexExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getComplexExpressionRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleComplexExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getComplexExpressionRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleComplexExpression"
+
+
+ // $ANTLR start "ruleComplexExpression"
+ // InternalRBAModel.g:3113:1: ruleComplexExpression : ( ( rule__ComplexExpression__Group__0 ) ) ;
+ public final void ruleComplexExpression() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:3117:2: ( ( ( rule__ComplexExpression__Group__0 ) ) )
+ // InternalRBAModel.g:3118:2: ( ( rule__ComplexExpression__Group__0 ) )
+ {
+ // InternalRBAModel.g:3118:2: ( ( rule__ComplexExpression__Group__0 ) )
+ // InternalRBAModel.g:3119:3: ( rule__ComplexExpression__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getComplexExpressionAccess().getGroup());
+ }
+ // InternalRBAModel.g:3120:3: ( rule__ComplexExpression__Group__0 )
+ // InternalRBAModel.g:3120:4: rule__ComplexExpression__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ComplexExpression__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getComplexExpressionAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleComplexExpression"
+
+
+ // $ANTLR start "entryRuleLoserTypeExpression"
+ // InternalRBAModel.g:3129:1: entryRuleLoserTypeExpression : ruleLoserTypeExpression EOF ;
+ public final void entryRuleLoserTypeExpression() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:3130:1: ( ruleLoserTypeExpression EOF )
+ // InternalRBAModel.g:3131:1: ruleLoserTypeExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLoserTypeExpressionRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleLoserTypeExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLoserTypeExpressionRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleLoserTypeExpression"
+
+
+ // $ANTLR start "ruleLoserTypeExpression"
+ // InternalRBAModel.g:3138:1: ruleLoserTypeExpression : ( ( rule__LoserTypeExpression__Group__0 ) ) ;
+ public final void ruleLoserTypeExpression() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:3142:2: ( ( ( rule__LoserTypeExpression__Group__0 ) ) )
+ // InternalRBAModel.g:3143:2: ( ( rule__LoserTypeExpression__Group__0 ) )
+ {
+ // InternalRBAModel.g:3143:2: ( ( rule__LoserTypeExpression__Group__0 ) )
+ // InternalRBAModel.g:3144:3: ( rule__LoserTypeExpression__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLoserTypeExpressionAccess().getGroup());
+ }
+ // InternalRBAModel.g:3145:3: ( rule__LoserTypeExpression__Group__0 )
+ // InternalRBAModel.g:3145:4: rule__LoserTypeExpression__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__LoserTypeExpression__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLoserTypeExpressionAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleLoserTypeExpression"
+
+
+ // $ANTLR start "entryRuleArbitrationPolicyExpression"
+ // InternalRBAModel.g:3154:1: entryRuleArbitrationPolicyExpression : ruleArbitrationPolicyExpression EOF ;
+ public final void entryRuleArbitrationPolicyExpression() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:3155:1: ( ruleArbitrationPolicyExpression EOF )
+ // InternalRBAModel.g:3156:1: ruleArbitrationPolicyExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getArbitrationPolicyExpressionRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleArbitrationPolicyExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getArbitrationPolicyExpressionRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleArbitrationPolicyExpression"
+
+
+ // $ANTLR start "ruleArbitrationPolicyExpression"
+ // InternalRBAModel.g:3163:1: ruleArbitrationPolicyExpression : ( ( rule__ArbitrationPolicyExpression__Group__0 ) ) ;
+ public final void ruleArbitrationPolicyExpression() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:3167:2: ( ( ( rule__ArbitrationPolicyExpression__Group__0 ) ) )
+ // InternalRBAModel.g:3168:2: ( ( rule__ArbitrationPolicyExpression__Group__0 ) )
+ {
+ // InternalRBAModel.g:3168:2: ( ( rule__ArbitrationPolicyExpression__Group__0 ) )
+ // InternalRBAModel.g:3169:3: ( rule__ArbitrationPolicyExpression__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getArbitrationPolicyExpressionAccess().getGroup());
+ }
+ // InternalRBAModel.g:3170:3: ( rule__ArbitrationPolicyExpression__Group__0 )
+ // InternalRBAModel.g:3170:4: rule__ArbitrationPolicyExpression__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ArbitrationPolicyExpression__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getArbitrationPolicyExpressionAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleArbitrationPolicyExpression"
+
+
+ // $ANTLR start "entryRuleViewContentSet"
+ // InternalRBAModel.g:3179:1: entryRuleViewContentSet : ruleViewContentSet EOF ;
+ public final void entryRuleViewContentSet() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:3180:1: ( ruleViewContentSet EOF )
+ // InternalRBAModel.g:3181:1: ruleViewContentSet EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentSetRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleViewContentSet();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentSetRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleViewContentSet"
+
+
+ // $ANTLR start "ruleViewContentSet"
+ // InternalRBAModel.g:3188:1: ruleViewContentSet : ( ( rule__ViewContentSet__Group__0 ) ) ;
+ public final void ruleViewContentSet() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:3192:2: ( ( ( rule__ViewContentSet__Group__0 ) ) )
+ // InternalRBAModel.g:3193:2: ( ( rule__ViewContentSet__Group__0 ) )
+ {
+ // InternalRBAModel.g:3193:2: ( ( rule__ViewContentSet__Group__0 ) )
+ // InternalRBAModel.g:3194:3: ( rule__ViewContentSet__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentSetAccess().getGroup());
+ }
+ // InternalRBAModel.g:3195:3: ( rule__ViewContentSet__Group__0 )
+ // InternalRBAModel.g:3195:4: rule__ViewContentSet__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContentSet__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentSetAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleViewContentSet"
+
+
+ // $ANTLR start "entryRuleSoundContentSet"
+ // InternalRBAModel.g:3204:1: entryRuleSoundContentSet : ruleSoundContentSet EOF ;
+ public final void entryRuleSoundContentSet() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:3205:1: ( ruleSoundContentSet EOF )
+ // InternalRBAModel.g:3206:1: ruleSoundContentSet EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentSetRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleSoundContentSet();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentSetRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleSoundContentSet"
+
+
+ // $ANTLR start "ruleSoundContentSet"
+ // InternalRBAModel.g:3213:1: ruleSoundContentSet : ( ( rule__SoundContentSet__Group__0 ) ) ;
+ public final void ruleSoundContentSet() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:3217:2: ( ( ( rule__SoundContentSet__Group__0 ) ) )
+ // InternalRBAModel.g:3218:2: ( ( rule__SoundContentSet__Group__0 ) )
+ {
+ // InternalRBAModel.g:3218:2: ( ( rule__SoundContentSet__Group__0 ) )
+ // InternalRBAModel.g:3219:3: ( rule__SoundContentSet__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentSetAccess().getGroup());
+ }
+ // InternalRBAModel.g:3220:3: ( rule__SoundContentSet__Group__0 )
+ // InternalRBAModel.g:3220:4: rule__SoundContentSet__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContentSet__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentSetAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleSoundContentSet"
+
+
+ // $ANTLR start "entryRuleScene"
+ // InternalRBAModel.g:3229:1: entryRuleScene : ruleScene EOF ;
+ public final void entryRuleScene() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:3230:1: ( ruleScene EOF )
+ // InternalRBAModel.g:3231:1: ruleScene EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSceneRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleScene();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSceneRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleScene"
+
+
+ // $ANTLR start "ruleScene"
+ // InternalRBAModel.g:3238:1: ruleScene : ( ( rule__Scene__Group__0 ) ) ;
+ public final void ruleScene() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:3242:2: ( ( ( rule__Scene__Group__0 ) ) )
+ // InternalRBAModel.g:3243:2: ( ( rule__Scene__Group__0 ) )
+ {
+ // InternalRBAModel.g:3243:2: ( ( rule__Scene__Group__0 ) )
+ // InternalRBAModel.g:3244:3: ( rule__Scene__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSceneAccess().getGroup());
+ }
+ // InternalRBAModel.g:3245:3: ( rule__Scene__Group__0 )
+ // InternalRBAModel.g:3245:4: rule__Scene__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Scene__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSceneAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleScene"
+
+
+ // $ANTLR start "entryRuleVerticalLayout"
+ // InternalRBAModel.g:3254:1: entryRuleVerticalLayout : ruleVerticalLayout EOF ;
+ public final void entryRuleVerticalLayout() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:3255:1: ( ruleVerticalLayout EOF )
+ // InternalRBAModel.g:3256:1: ruleVerticalLayout EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVerticalLayoutRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleVerticalLayout();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVerticalLayoutRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleVerticalLayout"
+
+
+ // $ANTLR start "ruleVerticalLayout"
+ // InternalRBAModel.g:3263:1: ruleVerticalLayout : ( ( rule__VerticalLayout__Group__0 ) ) ;
+ public final void ruleVerticalLayout() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:3267:2: ( ( ( rule__VerticalLayout__Group__0 ) ) )
+ // InternalRBAModel.g:3268:2: ( ( rule__VerticalLayout__Group__0 ) )
+ {
+ // InternalRBAModel.g:3268:2: ( ( rule__VerticalLayout__Group__0 ) )
+ // InternalRBAModel.g:3269:3: ( rule__VerticalLayout__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVerticalLayoutAccess().getGroup());
+ }
+ // InternalRBAModel.g:3270:3: ( rule__VerticalLayout__Group__0 )
+ // InternalRBAModel.g:3270:4: rule__VerticalLayout__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__VerticalLayout__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVerticalLayoutAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleVerticalLayout"
+
+
+ // $ANTLR start "entryRuleHorizontalLayout"
+ // InternalRBAModel.g:3279:1: entryRuleHorizontalLayout : ruleHorizontalLayout EOF ;
+ public final void entryRuleHorizontalLayout() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:3280:1: ( ruleHorizontalLayout EOF )
+ // InternalRBAModel.g:3281:1: ruleHorizontalLayout EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getHorizontalLayoutRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleHorizontalLayout();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getHorizontalLayoutRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleHorizontalLayout"
+
+
+ // $ANTLR start "ruleHorizontalLayout"
+ // InternalRBAModel.g:3288:1: ruleHorizontalLayout : ( ( rule__HorizontalLayout__Group__0 ) ) ;
+ public final void ruleHorizontalLayout() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:3292:2: ( ( ( rule__HorizontalLayout__Group__0 ) ) )
+ // InternalRBAModel.g:3293:2: ( ( rule__HorizontalLayout__Group__0 ) )
+ {
+ // InternalRBAModel.g:3293:2: ( ( rule__HorizontalLayout__Group__0 ) )
+ // InternalRBAModel.g:3294:3: ( rule__HorizontalLayout__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getHorizontalLayoutAccess().getGroup());
+ }
+ // InternalRBAModel.g:3295:3: ( rule__HorizontalLayout__Group__0 )
+ // InternalRBAModel.g:3295:4: rule__HorizontalLayout__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__HorizontalLayout__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getHorizontalLayoutAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleHorizontalLayout"
+
+
+ // $ANTLR start "entryRuleFixedPositionLayout"
+ // InternalRBAModel.g:3304:1: entryRuleFixedPositionLayout : ruleFixedPositionLayout EOF ;
+ public final void entryRuleFixedPositionLayout() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:3305:1: ( ruleFixedPositionLayout EOF )
+ // InternalRBAModel.g:3306:1: ruleFixedPositionLayout EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFixedPositionLayoutRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleFixedPositionLayout();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFixedPositionLayoutRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleFixedPositionLayout"
+
+
+ // $ANTLR start "ruleFixedPositionLayout"
+ // InternalRBAModel.g:3313:1: ruleFixedPositionLayout : ( ( rule__FixedPositionLayout__Group__0 ) ) ;
+ public final void ruleFixedPositionLayout() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:3317:2: ( ( ( rule__FixedPositionLayout__Group__0 ) ) )
+ // InternalRBAModel.g:3318:2: ( ( rule__FixedPositionLayout__Group__0 ) )
+ {
+ // InternalRBAModel.g:3318:2: ( ( rule__FixedPositionLayout__Group__0 ) )
+ // InternalRBAModel.g:3319:3: ( rule__FixedPositionLayout__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFixedPositionLayoutAccess().getGroup());
+ }
+ // InternalRBAModel.g:3320:3: ( rule__FixedPositionLayout__Group__0 )
+ // InternalRBAModel.g:3320:4: rule__FixedPositionLayout__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__FixedPositionLayout__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFixedPositionLayoutAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleFixedPositionLayout"
+
+
+ // $ANTLR start "entryRulePositionContainer"
+ // InternalRBAModel.g:3329:1: entryRulePositionContainer : rulePositionContainer EOF ;
+ public final void entryRulePositionContainer() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:3330:1: ( rulePositionContainer EOF )
+ // InternalRBAModel.g:3331:1: rulePositionContainer EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPositionContainerRule());
+ }
+ pushFollow(FOLLOW_1);
+ rulePositionContainer();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPositionContainerRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRulePositionContainer"
+
+
+ // $ANTLR start "rulePositionContainer"
+ // InternalRBAModel.g:3338:1: rulePositionContainer : ( ( rule__PositionContainer__Group__0 ) ) ;
+ public final void rulePositionContainer() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:3342:2: ( ( ( rule__PositionContainer__Group__0 ) ) )
+ // InternalRBAModel.g:3343:2: ( ( rule__PositionContainer__Group__0 ) )
+ {
+ // InternalRBAModel.g:3343:2: ( ( rule__PositionContainer__Group__0 ) )
+ // InternalRBAModel.g:3344:3: ( rule__PositionContainer__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPositionContainerAccess().getGroup());
+ }
+ // InternalRBAModel.g:3345:3: ( rule__PositionContainer__Group__0 )
+ // InternalRBAModel.g:3345:4: rule__PositionContainer__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__PositionContainer__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPositionContainerAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rulePositionContainer"
+
+
+ // $ANTLR start "entryRuleEBoolean"
+ // InternalRBAModel.g:3354:1: entryRuleEBoolean : ruleEBoolean EOF ;
+ public final void entryRuleEBoolean() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:3355:1: ( ruleEBoolean EOF )
+ // InternalRBAModel.g:3356:1: ruleEBoolean EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getEBooleanRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleEBoolean();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getEBooleanRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleEBoolean"
+
+
+ // $ANTLR start "ruleEBoolean"
+ // InternalRBAModel.g:3363:1: ruleEBoolean : ( ( rule__EBoolean__Alternatives ) ) ;
+ public final void ruleEBoolean() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:3367:2: ( ( ( rule__EBoolean__Alternatives ) ) )
+ // InternalRBAModel.g:3368:2: ( ( rule__EBoolean__Alternatives ) )
+ {
+ // InternalRBAModel.g:3368:2: ( ( rule__EBoolean__Alternatives ) )
+ // InternalRBAModel.g:3369:3: ( rule__EBoolean__Alternatives )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getEBooleanAccess().getAlternatives());
+ }
+ // InternalRBAModel.g:3370:3: ( rule__EBoolean__Alternatives )
+ // InternalRBAModel.g:3370:4: rule__EBoolean__Alternatives
+ {
+ pushFollow(FOLLOW_2);
+ rule__EBoolean__Alternatives();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getEBooleanAccess().getAlternatives());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleEBoolean"
+
+
+ // $ANTLR start "entryRuleEInt"
+ // InternalRBAModel.g:3379:1: entryRuleEInt : ruleEInt EOF ;
+ public final void entryRuleEInt() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:3380:1: ( ruleEInt EOF )
+ // InternalRBAModel.g:3381:1: ruleEInt EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getEIntRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleEInt();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getEIntRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleEInt"
+
+
+ // $ANTLR start "ruleEInt"
+ // InternalRBAModel.g:3388:1: ruleEInt : ( ( rule__EInt__Group__0 ) ) ;
+ public final void ruleEInt() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:3392:2: ( ( ( rule__EInt__Group__0 ) ) )
+ // InternalRBAModel.g:3393:2: ( ( rule__EInt__Group__0 ) )
+ {
+ // InternalRBAModel.g:3393:2: ( ( rule__EInt__Group__0 ) )
+ // InternalRBAModel.g:3394:3: ( rule__EInt__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getEIntAccess().getGroup());
+ }
+ // InternalRBAModel.g:3395:3: ( rule__EInt__Group__0 )
+ // InternalRBAModel.g:3395:4: rule__EInt__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__EInt__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getEIntAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleEInt"
+
+
+ // $ANTLR start "entryRuleEString"
+ // InternalRBAModel.g:3404:1: entryRuleEString : ruleEString EOF ;
+ public final void entryRuleEString() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:3405:1: ( ruleEString EOF )
+ // InternalRBAModel.g:3406:1: ruleEString EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getEStringRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleEString();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getEStringRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleEString"
+
+
+ // $ANTLR start "ruleEString"
+ // InternalRBAModel.g:3413:1: ruleEString : ( RULE_STRING ) ;
+ public final void ruleEString() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:3417:2: ( ( RULE_STRING ) )
+ // InternalRBAModel.g:3418:2: ( RULE_STRING )
+ {
+ // InternalRBAModel.g:3418:2: ( RULE_STRING )
+ // InternalRBAModel.g:3419:3: RULE_STRING
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getEStringAccess().getSTRINGTerminalRuleCall());
+ }
+ match(input,RULE_STRING,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getEStringAccess().getSTRINGTerminalRuleCall());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleEString"
+
+
+ // $ANTLR start "entryRuleRichString"
+ // InternalRBAModel.g:3429:1: entryRuleRichString : ruleRichString EOF ;
+ public final void entryRuleRichString() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:3430:1: ( ruleRichString EOF )
+ // InternalRBAModel.g:3431:1: ruleRichString EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getRichStringRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleRichString();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getRichStringRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleRichString"
+
+
+ // $ANTLR start "ruleRichString"
+ // InternalRBAModel.g:3438:1: ruleRichString : ( RULE_RICH_STRING ) ;
+ public final void ruleRichString() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:3442:2: ( ( RULE_RICH_STRING ) )
+ // InternalRBAModel.g:3443:2: ( RULE_RICH_STRING )
+ {
+ // InternalRBAModel.g:3443:2: ( RULE_RICH_STRING )
+ // InternalRBAModel.g:3444:3: RULE_RICH_STRING
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getRichStringAccess().getRICH_STRINGTerminalRuleCall());
+ }
+ match(input,RULE_RICH_STRING,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getRichStringAccess().getRICH_STRINGTerminalRuleCall());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleRichString"
+
+
+ // $ANTLR start "entryRuleQualifiedNameWithWildcard"
+ // InternalRBAModel.g:3454:1: entryRuleQualifiedNameWithWildcard : ruleQualifiedNameWithWildcard EOF ;
+ public final void entryRuleQualifiedNameWithWildcard() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:3455:1: ( ruleQualifiedNameWithWildcard EOF )
+ // InternalRBAModel.g:3456:1: ruleQualifiedNameWithWildcard EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getQualifiedNameWithWildcardRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleQualifiedNameWithWildcard();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getQualifiedNameWithWildcardRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleQualifiedNameWithWildcard"
+
+
+ // $ANTLR start "ruleQualifiedNameWithWildcard"
+ // InternalRBAModel.g:3463:1: ruleQualifiedNameWithWildcard : ( ( rule__QualifiedNameWithWildcard__Group__0 ) ) ;
+ public final void ruleQualifiedNameWithWildcard() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:3467:2: ( ( ( rule__QualifiedNameWithWildcard__Group__0 ) ) )
+ // InternalRBAModel.g:3468:2: ( ( rule__QualifiedNameWithWildcard__Group__0 ) )
+ {
+ // InternalRBAModel.g:3468:2: ( ( rule__QualifiedNameWithWildcard__Group__0 ) )
+ // InternalRBAModel.g:3469:3: ( rule__QualifiedNameWithWildcard__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getQualifiedNameWithWildcardAccess().getGroup());
+ }
+ // InternalRBAModel.g:3470:3: ( rule__QualifiedNameWithWildcard__Group__0 )
+ // InternalRBAModel.g:3470:4: rule__QualifiedNameWithWildcard__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__QualifiedNameWithWildcard__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getQualifiedNameWithWildcardAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleQualifiedNameWithWildcard"
+
+
+ // $ANTLR start "entryRuleQualifiedName"
+ // InternalRBAModel.g:3479:1: entryRuleQualifiedName : ruleQualifiedName EOF ;
+ public final void entryRuleQualifiedName() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:3480:1: ( ruleQualifiedName EOF )
+ // InternalRBAModel.g:3481:1: ruleQualifiedName EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getQualifiedNameRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getQualifiedNameRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleQualifiedName"
+
+
+ // $ANTLR start "ruleQualifiedName"
+ // InternalRBAModel.g:3488:1: ruleQualifiedName : ( ( rule__QualifiedName__Group__0 ) ) ;
+ public final void ruleQualifiedName() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:3492:2: ( ( ( rule__QualifiedName__Group__0 ) ) )
+ // InternalRBAModel.g:3493:2: ( ( rule__QualifiedName__Group__0 ) )
+ {
+ // InternalRBAModel.g:3493:2: ( ( rule__QualifiedName__Group__0 ) )
+ // InternalRBAModel.g:3494:3: ( rule__QualifiedName__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getQualifiedNameAccess().getGroup());
+ }
+ // InternalRBAModel.g:3495:3: ( rule__QualifiedName__Group__0 )
+ // InternalRBAModel.g:3495:4: rule__QualifiedName__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__QualifiedName__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getQualifiedNameAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleQualifiedName"
+
+
+ // $ANTLR start "entryRuleIdOrThis"
+ // InternalRBAModel.g:3504:1: entryRuleIdOrThis : ruleIdOrThis EOF ;
+ public final void entryRuleIdOrThis() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:3505:1: ( ruleIdOrThis EOF )
+ // InternalRBAModel.g:3506:1: ruleIdOrThis EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getIdOrThisRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleIdOrThis();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getIdOrThisRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleIdOrThis"
+
+
+ // $ANTLR start "ruleIdOrThis"
+ // InternalRBAModel.g:3513:1: ruleIdOrThis : ( ( rule__IdOrThis__Alternatives ) ) ;
+ public final void ruleIdOrThis() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:3517:2: ( ( ( rule__IdOrThis__Alternatives ) ) )
+ // InternalRBAModel.g:3518:2: ( ( rule__IdOrThis__Alternatives ) )
+ {
+ // InternalRBAModel.g:3518:2: ( ( rule__IdOrThis__Alternatives ) )
+ // InternalRBAModel.g:3519:3: ( rule__IdOrThis__Alternatives )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getIdOrThisAccess().getAlternatives());
+ }
+ // InternalRBAModel.g:3520:3: ( rule__IdOrThis__Alternatives )
+ // InternalRBAModel.g:3520:4: rule__IdOrThis__Alternatives
+ {
+ pushFollow(FOLLOW_2);
+ rule__IdOrThis__Alternatives();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getIdOrThisAccess().getAlternatives());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleIdOrThis"
+
+
+ // $ANTLR start "entryRuleValidID"
+ // InternalRBAModel.g:3529:1: entryRuleValidID : ruleValidID EOF ;
+ public final void entryRuleValidID() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:3530:1: ( ruleValidID EOF )
+ // InternalRBAModel.g:3531:1: ruleValidID EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getValidIDRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleValidID();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getValidIDRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleValidID"
+
+
+ // $ANTLR start "ruleValidID"
+ // InternalRBAModel.g:3538:1: ruleValidID : ( RULE_ID ) ;
+ public final void ruleValidID() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:3542:2: ( ( RULE_ID ) )
+ // InternalRBAModel.g:3543:2: ( RULE_ID )
+ {
+ // InternalRBAModel.g:3543:2: ( RULE_ID )
+ // InternalRBAModel.g:3544:3: RULE_ID
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getValidIDAccess().getIDTerminalRuleCall());
+ }
+ match(input,RULE_ID,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getValidIDAccess().getIDTerminalRuleCall());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleValidID"
+
+
+ // $ANTLR start "entryRuleContentOperatorsCommon"
+ // InternalRBAModel.g:3554:1: entryRuleContentOperatorsCommon : ruleContentOperatorsCommon EOF ;
+ public final void entryRuleContentOperatorsCommon() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:3555:1: ( ruleContentOperatorsCommon EOF )
+ // InternalRBAModel.g:3556:1: ruleContentOperatorsCommon EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getContentOperatorsCommonRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleContentOperatorsCommon();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getContentOperatorsCommonRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleContentOperatorsCommon"
+
+
+ // $ANTLR start "ruleContentOperatorsCommon"
+ // InternalRBAModel.g:3563:1: ruleContentOperatorsCommon : ( ( rule__ContentOperatorsCommon__Alternatives ) ) ;
+ public final void ruleContentOperatorsCommon() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:3567:2: ( ( ( rule__ContentOperatorsCommon__Alternatives ) ) )
+ // InternalRBAModel.g:3568:2: ( ( rule__ContentOperatorsCommon__Alternatives ) )
+ {
+ // InternalRBAModel.g:3568:2: ( ( rule__ContentOperatorsCommon__Alternatives ) )
+ // InternalRBAModel.g:3569:3: ( rule__ContentOperatorsCommon__Alternatives )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getContentOperatorsCommonAccess().getAlternatives());
+ }
+ // InternalRBAModel.g:3570:3: ( rule__ContentOperatorsCommon__Alternatives )
+ // InternalRBAModel.g:3570:4: rule__ContentOperatorsCommon__Alternatives
+ {
+ pushFollow(FOLLOW_2);
+ rule__ContentOperatorsCommon__Alternatives();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getContentOperatorsCommonAccess().getAlternatives());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleContentOperatorsCommon"
+
+
+ // $ANTLR start "entryRuleSoundOperatorsCommon"
+ // InternalRBAModel.g:3579:1: entryRuleSoundOperatorsCommon : ruleSoundOperatorsCommon EOF ;
+ public final void entryRuleSoundOperatorsCommon() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:3580:1: ( ruleSoundOperatorsCommon EOF )
+ // InternalRBAModel.g:3581:1: ruleSoundOperatorsCommon EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundOperatorsCommonRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleSoundOperatorsCommon();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundOperatorsCommonRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleSoundOperatorsCommon"
+
+
+ // $ANTLR start "ruleSoundOperatorsCommon"
+ // InternalRBAModel.g:3588:1: ruleSoundOperatorsCommon : ( ( rule__SoundOperatorsCommon__Alternatives ) ) ;
+ public final void ruleSoundOperatorsCommon() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:3592:2: ( ( ( rule__SoundOperatorsCommon__Alternatives ) ) )
+ // InternalRBAModel.g:3593:2: ( ( rule__SoundOperatorsCommon__Alternatives ) )
+ {
+ // InternalRBAModel.g:3593:2: ( ( rule__SoundOperatorsCommon__Alternatives ) )
+ // InternalRBAModel.g:3594:3: ( rule__SoundOperatorsCommon__Alternatives )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundOperatorsCommonAccess().getAlternatives());
+ }
+ // InternalRBAModel.g:3595:3: ( rule__SoundOperatorsCommon__Alternatives )
+ // InternalRBAModel.g:3595:4: rule__SoundOperatorsCommon__Alternatives
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundOperatorsCommon__Alternatives();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundOperatorsCommonAccess().getAlternatives());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleSoundOperatorsCommon"
+
+
+ // $ANTLR start "ruleArbitrationPolicy"
+ // InternalRBAModel.g:3604:1: ruleArbitrationPolicy : ( ( rule__ArbitrationPolicy__Alternatives ) ) ;
+ public final void ruleArbitrationPolicy() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:3608:1: ( ( ( rule__ArbitrationPolicy__Alternatives ) ) )
+ // InternalRBAModel.g:3609:2: ( ( rule__ArbitrationPolicy__Alternatives ) )
+ {
+ // InternalRBAModel.g:3609:2: ( ( rule__ArbitrationPolicy__Alternatives ) )
+ // InternalRBAModel.g:3610:3: ( rule__ArbitrationPolicy__Alternatives )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getArbitrationPolicyAccess().getAlternatives());
+ }
+ // InternalRBAModel.g:3611:3: ( rule__ArbitrationPolicy__Alternatives )
+ // InternalRBAModel.g:3611:4: rule__ArbitrationPolicy__Alternatives
+ {
+ pushFollow(FOLLOW_2);
+ rule__ArbitrationPolicy__Alternatives();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getArbitrationPolicyAccess().getAlternatives());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleArbitrationPolicy"
+
+
+ // $ANTLR start "ruleBasePoint"
+ // InternalRBAModel.g:3620:1: ruleBasePoint : ( ( rule__BasePoint__Alternatives ) ) ;
+ public final void ruleBasePoint() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:3624:1: ( ( ( rule__BasePoint__Alternatives ) ) )
+ // InternalRBAModel.g:3625:2: ( ( rule__BasePoint__Alternatives ) )
+ {
+ // InternalRBAModel.g:3625:2: ( ( rule__BasePoint__Alternatives ) )
+ // InternalRBAModel.g:3626:3: ( rule__BasePoint__Alternatives )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getBasePointAccess().getAlternatives());
+ }
+ // InternalRBAModel.g:3627:3: ( rule__BasePoint__Alternatives )
+ // InternalRBAModel.g:3627:4: rule__BasePoint__Alternatives
+ {
+ pushFollow(FOLLOW_2);
+ rule__BasePoint__Alternatives();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getBasePointAccess().getAlternatives());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleBasePoint"
+
+
+ // $ANTLR start "ruleLoserType"
+ // InternalRBAModel.g:3636:1: ruleLoserType : ( ( rule__LoserType__Alternatives ) ) ;
+ public final void ruleLoserType() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:3640:1: ( ( ( rule__LoserType__Alternatives ) ) )
+ // InternalRBAModel.g:3641:2: ( ( rule__LoserType__Alternatives ) )
+ {
+ // InternalRBAModel.g:3641:2: ( ( rule__LoserType__Alternatives ) )
+ // InternalRBAModel.g:3642:3: ( rule__LoserType__Alternatives )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLoserTypeAccess().getAlternatives());
+ }
+ // InternalRBAModel.g:3643:3: ( rule__LoserType__Alternatives )
+ // InternalRBAModel.g:3643:4: rule__LoserType__Alternatives
+ {
+ pushFollow(FOLLOW_2);
+ rule__LoserType__Alternatives();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLoserTypeAccess().getAlternatives());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleLoserType"
+
+
+ // $ANTLR start "rule__PackagableElement__Alternatives"
+ // InternalRBAModel.g:3651:1: rule__PackagableElement__Alternatives : ( ( rulePackage ) | ( ruleStereotype ) | ( ruleRuleObject ) | ( ruleDisplay ) | ( ruleAbstractConstraint ) | ( ruleSize ) );
+ public final void rule__PackagableElement__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:3655:1: ( ( rulePackage ) | ( ruleStereotype ) | ( ruleRuleObject ) | ( ruleDisplay ) | ( ruleAbstractConstraint ) | ( ruleSize ) )
+ int alt1=6;
+ switch ( input.LA(1) ) {
+ case 104:
+ {
+ alt1=1;
+ }
+ break;
+ case 106:
+ {
+ alt1=2;
+ }
+ break;
+ case 67:
+ case 68:
+ case 69:
+ case 70:
+ case 123:
+ case 125:
+ case 155:
+ case 156:
+ case 157:
+ {
+ alt1=3;
+ }
+ break;
+ case 109:
+ {
+ alt1=4;
+ }
+ break;
+ case 110:
+ {
+ alt1=5;
+ }
+ break;
+ case 116:
+ {
+ alt1=6;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 1, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt1) {
+ case 1 :
+ // InternalRBAModel.g:3656:2: ( rulePackage )
+ {
+ // InternalRBAModel.g:3656:2: ( rulePackage )
+ // InternalRBAModel.g:3657:3: rulePackage
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPackagableElementAccess().getPackageParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_2);
+ rulePackage();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPackagableElementAccess().getPackageParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:3662:2: ( ruleStereotype )
+ {
+ // InternalRBAModel.g:3662:2: ( ruleStereotype )
+ // InternalRBAModel.g:3663:3: ruleStereotype
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPackagableElementAccess().getStereotypeParserRuleCall_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleStereotype();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPackagableElementAccess().getStereotypeParserRuleCall_1());
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:3668:2: ( ruleRuleObject )
+ {
+ // InternalRBAModel.g:3668:2: ( ruleRuleObject )
+ // InternalRBAModel.g:3669:3: ruleRuleObject
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPackagableElementAccess().getRuleObjectParserRuleCall_2());
+ }
+ pushFollow(FOLLOW_2);
+ ruleRuleObject();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPackagableElementAccess().getRuleObjectParserRuleCall_2());
+ }
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // InternalRBAModel.g:3674:2: ( ruleDisplay )
+ {
+ // InternalRBAModel.g:3674:2: ( ruleDisplay )
+ // InternalRBAModel.g:3675:3: ruleDisplay
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPackagableElementAccess().getDisplayParserRuleCall_3());
+ }
+ pushFollow(FOLLOW_2);
+ ruleDisplay();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPackagableElementAccess().getDisplayParserRuleCall_3());
+ }
+
+ }
+
+
+ }
+ break;
+ case 5 :
+ // InternalRBAModel.g:3680:2: ( ruleAbstractConstraint )
+ {
+ // InternalRBAModel.g:3680:2: ( ruleAbstractConstraint )
+ // InternalRBAModel.g:3681:3: ruleAbstractConstraint
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPackagableElementAccess().getAbstractConstraintParserRuleCall_4());
+ }
+ pushFollow(FOLLOW_2);
+ ruleAbstractConstraint();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPackagableElementAccess().getAbstractConstraintParserRuleCall_4());
+ }
+
+ }
+
+
+ }
+ break;
+ case 6 :
+ // InternalRBAModel.g:3686:2: ( ruleSize )
+ {
+ // InternalRBAModel.g:3686:2: ( ruleSize )
+ // InternalRBAModel.g:3687:3: ruleSize
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPackagableElementAccess().getSizeParserRuleCall_5());
+ }
+ pushFollow(FOLLOW_2);
+ ruleSize();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPackagableElementAccess().getSizeParserRuleCall_5());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PackagableElement__Alternatives"
+
+
+ // $ANTLR start "rule__SizeIdentifier__Alternatives"
+ // InternalRBAModel.g:3696:1: rule__SizeIdentifier__Alternatives : ( ( ruleSizeReference ) | ( ruleSize ) );
+ public final void rule__SizeIdentifier__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:3700:1: ( ( ruleSizeReference ) | ( ruleSize ) )
+ int alt2=2;
+ int LA2_0 = input.LA(1);
+
+ if ( (LA2_0==119) ) {
+ alt2=1;
+ }
+ else if ( (LA2_0==116) ) {
+ alt2=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 2, 0, input);
+
+ throw nvae;
+ }
+ switch (alt2) {
+ case 1 :
+ // InternalRBAModel.g:3701:2: ( ruleSizeReference )
+ {
+ // InternalRBAModel.g:3701:2: ( ruleSizeReference )
+ // InternalRBAModel.g:3702:3: ruleSizeReference
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSizeIdentifierAccess().getSizeReferenceParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleSizeReference();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSizeIdentifierAccess().getSizeReferenceParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:3707:2: ( ruleSize )
+ {
+ // InternalRBAModel.g:3707:2: ( ruleSize )
+ // InternalRBAModel.g:3708:3: ruleSize
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSizeIdentifierAccess().getSizeParserRuleCall_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleSize();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSizeIdentifierAccess().getSizeParserRuleCall_1());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SizeIdentifier__Alternatives"
+
+
+ // $ANTLR start "rule__RuleObject__Alternatives"
+ // InternalRBAModel.g:3717:1: rule__RuleObject__Alternatives : ( ( ruleAbstractContent ) | ( ruleAbstractScene ) | ( ruleAbstractAllocatable ) );
+ public final void rule__RuleObject__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:3721:1: ( ( ruleAbstractContent ) | ( ruleAbstractScene ) | ( ruleAbstractAllocatable ) )
+ int alt3=3;
+ switch ( input.LA(1) ) {
+ case 69:
+ case 70:
+ case 155:
+ case 156:
+ {
+ alt3=1;
+ }
+ break;
+ case 157:
+ {
+ alt3=2;
+ }
+ break;
+ case 67:
+ case 68:
+ case 123:
+ case 125:
+ {
+ alt3=3;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 3, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt3) {
+ case 1 :
+ // InternalRBAModel.g:3722:2: ( ruleAbstractContent )
+ {
+ // InternalRBAModel.g:3722:2: ( ruleAbstractContent )
+ // InternalRBAModel.g:3723:3: ruleAbstractContent
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getRuleObjectAccess().getAbstractContentParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleAbstractContent();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getRuleObjectAccess().getAbstractContentParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:3728:2: ( ruleAbstractScene )
+ {
+ // InternalRBAModel.g:3728:2: ( ruleAbstractScene )
+ // InternalRBAModel.g:3729:3: ruleAbstractScene
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getRuleObjectAccess().getAbstractSceneParserRuleCall_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleAbstractScene();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getRuleObjectAccess().getAbstractSceneParserRuleCall_1());
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:3734:2: ( ruleAbstractAllocatable )
+ {
+ // InternalRBAModel.g:3734:2: ( ruleAbstractAllocatable )
+ // InternalRBAModel.g:3735:3: ruleAbstractAllocatable
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getRuleObjectAccess().getAbstractAllocatableParserRuleCall_2());
+ }
+ pushFollow(FOLLOW_2);
+ ruleAbstractAllocatable();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getRuleObjectAccess().getAbstractAllocatableParserRuleCall_2());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__RuleObject__Alternatives"
+
+
+ // $ANTLR start "rule__AbstractAllocatable__Alternatives"
+ // InternalRBAModel.g:3744:1: rule__AbstractAllocatable__Alternatives : ( ( ruleAllocatable ) | ( ruleAllocatableSet ) );
+ public final void rule__AbstractAllocatable__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:3748:1: ( ( ruleAllocatable ) | ( ruleAllocatableSet ) )
+ int alt4=2;
+ int LA4_0 = input.LA(1);
+
+ if ( ((LA4_0>=67 && LA4_0<=68)) ) {
+ alt4=1;
+ }
+ else if ( (LA4_0==123||LA4_0==125) ) {
+ alt4=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 4, 0, input);
+
+ throw nvae;
+ }
+ switch (alt4) {
+ case 1 :
+ // InternalRBAModel.g:3749:2: ( ruleAllocatable )
+ {
+ // InternalRBAModel.g:3749:2: ( ruleAllocatable )
+ // InternalRBAModel.g:3750:3: ruleAllocatable
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAbstractAllocatableAccess().getAllocatableParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleAllocatable();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAbstractAllocatableAccess().getAllocatableParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:3755:2: ( ruleAllocatableSet )
+ {
+ // InternalRBAModel.g:3755:2: ( ruleAllocatableSet )
+ // InternalRBAModel.g:3756:3: ruleAllocatableSet
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAbstractAllocatableAccess().getAllocatableSetParserRuleCall_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleAllocatableSet();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAbstractAllocatableAccess().getAllocatableSetParserRuleCall_1());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AbstractAllocatable__Alternatives"
+
+
+ // $ANTLR start "rule__Allocatable__Alternatives"
+ // InternalRBAModel.g:3765:1: rule__Allocatable__Alternatives : ( ( ruleArea ) | ( ruleZone ) );
+ public final void rule__Allocatable__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:3769:1: ( ( ruleArea ) | ( ruleZone ) )
+ int alt5=2;
+ int LA5_0 = input.LA(1);
+
+ if ( (LA5_0==67) ) {
+ alt5=1;
+ }
+ else if ( (LA5_0==68) ) {
+ alt5=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 5, 0, input);
+
+ throw nvae;
+ }
+ switch (alt5) {
+ case 1 :
+ // InternalRBAModel.g:3770:2: ( ruleArea )
+ {
+ // InternalRBAModel.g:3770:2: ( ruleArea )
+ // InternalRBAModel.g:3771:3: ruleArea
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAllocatableAccess().getAreaParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleArea();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAllocatableAccess().getAreaParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:3776:2: ( ruleZone )
+ {
+ // InternalRBAModel.g:3776:2: ( ruleZone )
+ // InternalRBAModel.g:3777:3: ruleZone
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAllocatableAccess().getZoneParserRuleCall_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleZone();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAllocatableAccess().getZoneParserRuleCall_1());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Allocatable__Alternatives"
+
+
+ // $ANTLR start "rule__AllocatableSet__Alternatives"
+ // InternalRBAModel.g:3786:1: rule__AllocatableSet__Alternatives : ( ( ruleAreaSet ) | ( ruleZoneSet ) );
+ public final void rule__AllocatableSet__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:3790:1: ( ( ruleAreaSet ) | ( ruleZoneSet ) )
+ int alt6=2;
+ int LA6_0 = input.LA(1);
+
+ if ( (LA6_0==123) ) {
+ alt6=1;
+ }
+ else if ( (LA6_0==125) ) {
+ alt6=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 6, 0, input);
+
+ throw nvae;
+ }
+ switch (alt6) {
+ case 1 :
+ // InternalRBAModel.g:3791:2: ( ruleAreaSet )
+ {
+ // InternalRBAModel.g:3791:2: ( ruleAreaSet )
+ // InternalRBAModel.g:3792:3: ruleAreaSet
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAllocatableSetAccess().getAreaSetParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleAreaSet();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAllocatableSetAccess().getAreaSetParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:3797:2: ( ruleZoneSet )
+ {
+ // InternalRBAModel.g:3797:2: ( ruleZoneSet )
+ // InternalRBAModel.g:3798:3: ruleZoneSet
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAllocatableSetAccess().getZoneSetParserRuleCall_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleZoneSet();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAllocatableSetAccess().getZoneSetParserRuleCall_1());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AllocatableSet__Alternatives"
+
+
+ // $ANTLR start "rule__AbstractContent__Alternatives"
+ // InternalRBAModel.g:3807:1: rule__AbstractContent__Alternatives : ( ( ruleContent ) | ( ruleContentSet ) );
+ public final void rule__AbstractContent__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:3811:1: ( ( ruleContent ) | ( ruleContentSet ) )
+ int alt7=2;
+ int LA7_0 = input.LA(1);
+
+ if ( ((LA7_0>=69 && LA7_0<=70)) ) {
+ alt7=1;
+ }
+ else if ( ((LA7_0>=155 && LA7_0<=156)) ) {
+ alt7=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 7, 0, input);
+
+ throw nvae;
+ }
+ switch (alt7) {
+ case 1 :
+ // InternalRBAModel.g:3812:2: ( ruleContent )
+ {
+ // InternalRBAModel.g:3812:2: ( ruleContent )
+ // InternalRBAModel.g:3813:3: ruleContent
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAbstractContentAccess().getContentParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleContent();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAbstractContentAccess().getContentParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:3818:2: ( ruleContentSet )
+ {
+ // InternalRBAModel.g:3818:2: ( ruleContentSet )
+ // InternalRBAModel.g:3819:3: ruleContentSet
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAbstractContentAccess().getContentSetParserRuleCall_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleContentSet();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAbstractContentAccess().getContentSetParserRuleCall_1());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AbstractContent__Alternatives"
+
+
+ // $ANTLR start "rule__Content__Alternatives"
+ // InternalRBAModel.g:3828:1: rule__Content__Alternatives : ( ( ruleViewContent ) | ( ruleSoundContent ) );
+ public final void rule__Content__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:3832:1: ( ( ruleViewContent ) | ( ruleSoundContent ) )
+ int alt8=2;
+ int LA8_0 = input.LA(1);
+
+ if ( (LA8_0==70) ) {
+ alt8=1;
+ }
+ else if ( (LA8_0==69) ) {
+ alt8=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 8, 0, input);
+
+ throw nvae;
+ }
+ switch (alt8) {
+ case 1 :
+ // InternalRBAModel.g:3833:2: ( ruleViewContent )
+ {
+ // InternalRBAModel.g:3833:2: ( ruleViewContent )
+ // InternalRBAModel.g:3834:3: ruleViewContent
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getContentAccess().getViewContentParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleViewContent();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getContentAccess().getViewContentParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:3839:2: ( ruleSoundContent )
+ {
+ // InternalRBAModel.g:3839:2: ( ruleSoundContent )
+ // InternalRBAModel.g:3840:3: ruleSoundContent
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getContentAccess().getSoundContentParserRuleCall_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleSoundContent();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getContentAccess().getSoundContentParserRuleCall_1());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Content__Alternatives"
+
+
+ // $ANTLR start "rule__ContentSet__Alternatives"
+ // InternalRBAModel.g:3849:1: rule__ContentSet__Alternatives : ( ( ruleViewContentSet ) | ( ruleSoundContentSet ) );
+ public final void rule__ContentSet__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:3853:1: ( ( ruleViewContentSet ) | ( ruleSoundContentSet ) )
+ int alt9=2;
+ int LA9_0 = input.LA(1);
+
+ if ( (LA9_0==155) ) {
+ alt9=1;
+ }
+ else if ( (LA9_0==156) ) {
+ alt9=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 9, 0, input);
+
+ throw nvae;
+ }
+ switch (alt9) {
+ case 1 :
+ // InternalRBAModel.g:3854:2: ( ruleViewContentSet )
+ {
+ // InternalRBAModel.g:3854:2: ( ruleViewContentSet )
+ // InternalRBAModel.g:3855:3: ruleViewContentSet
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getContentSetAccess().getViewContentSetParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleViewContentSet();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getContentSetAccess().getViewContentSetParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:3860:2: ( ruleSoundContentSet )
+ {
+ // InternalRBAModel.g:3860:2: ( ruleSoundContentSet )
+ // InternalRBAModel.g:3861:3: ruleSoundContentSet
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getContentSetAccess().getSoundContentSetParserRuleCall_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleSoundContentSet();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getContentSetAccess().getSoundContentSetParserRuleCall_1());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ContentSet__Alternatives"
+
+
+ // $ANTLR start "rule__LayoutManager__Alternatives"
+ // InternalRBAModel.g:3870:1: rule__LayoutManager__Alternatives : ( ( ruleAlignedLayout ) | ( ruleFixedPositionLayout ) );
+ public final void rule__LayoutManager__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:3874:1: ( ( ruleAlignedLayout ) | ( ruleFixedPositionLayout ) )
+ int alt10=2;
+ int LA10_0 = input.LA(1);
+
+ if ( (LA10_0==159||LA10_0==162) ) {
+ alt10=1;
+ }
+ else if ( (LA10_0==163) ) {
+ alt10=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 10, 0, input);
+
+ throw nvae;
+ }
+ switch (alt10) {
+ case 1 :
+ // InternalRBAModel.g:3875:2: ( ruleAlignedLayout )
+ {
+ // InternalRBAModel.g:3875:2: ( ruleAlignedLayout )
+ // InternalRBAModel.g:3876:3: ruleAlignedLayout
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLayoutManagerAccess().getAlignedLayoutParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleAlignedLayout();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLayoutManagerAccess().getAlignedLayoutParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:3881:2: ( ruleFixedPositionLayout )
+ {
+ // InternalRBAModel.g:3881:2: ( ruleFixedPositionLayout )
+ // InternalRBAModel.g:3882:3: ruleFixedPositionLayout
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLayoutManagerAccess().getFixedPositionLayoutParserRuleCall_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleFixedPositionLayout();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLayoutManagerAccess().getFixedPositionLayoutParserRuleCall_1());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LayoutManager__Alternatives"
+
+
+ // $ANTLR start "rule__AlignedLayout__Alternatives"
+ // InternalRBAModel.g:3891:1: rule__AlignedLayout__Alternatives : ( ( ruleVerticalLayout ) | ( ruleHorizontalLayout ) );
+ public final void rule__AlignedLayout__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:3895:1: ( ( ruleVerticalLayout ) | ( ruleHorizontalLayout ) )
+ int alt11=2;
+ int LA11_0 = input.LA(1);
+
+ if ( (LA11_0==159) ) {
+ alt11=1;
+ }
+ else if ( (LA11_0==162) ) {
+ alt11=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 11, 0, input);
+
+ throw nvae;
+ }
+ switch (alt11) {
+ case 1 :
+ // InternalRBAModel.g:3896:2: ( ruleVerticalLayout )
+ {
+ // InternalRBAModel.g:3896:2: ( ruleVerticalLayout )
+ // InternalRBAModel.g:3897:3: ruleVerticalLayout
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAlignedLayoutAccess().getVerticalLayoutParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleVerticalLayout();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAlignedLayoutAccess().getVerticalLayoutParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:3902:2: ( ruleHorizontalLayout )
+ {
+ // InternalRBAModel.g:3902:2: ( ruleHorizontalLayout )
+ // InternalRBAModel.g:3903:3: ruleHorizontalLayout
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAlignedLayoutAccess().getHorizontalLayoutParserRuleCall_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleHorizontalLayout();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAlignedLayoutAccess().getHorizontalLayoutParserRuleCall_1());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AlignedLayout__Alternatives"
+
+
+ // $ANTLR start "rule__Tag__Alternatives_0_0"
+ // InternalRBAModel.g:3912:1: rule__Tag__Alternatives_0_0 : ( ( ( rule__Tag__Group_0_0_0__0 ) ) | ( ( rule__Tag__Group_0_0_1__0 ) ) );
+ public final void rule__Tag__Alternatives_0_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:3916:1: ( ( ( rule__Tag__Group_0_0_0__0 ) ) | ( ( rule__Tag__Group_0_0_1__0 ) ) )
+ int alt12=2;
+ int LA12_0 = input.LA(1);
+
+ if ( (LA12_0==98) ) {
+ alt12=1;
+ }
+ else if ( (LA12_0==99) ) {
+ alt12=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 12, 0, input);
+
+ throw nvae;
+ }
+ switch (alt12) {
+ case 1 :
+ // InternalRBAModel.g:3917:2: ( ( rule__Tag__Group_0_0_0__0 ) )
+ {
+ // InternalRBAModel.g:3917:2: ( ( rule__Tag__Group_0_0_0__0 ) )
+ // InternalRBAModel.g:3918:3: ( rule__Tag__Group_0_0_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getTagAccess().getGroup_0_0_0());
+ }
+ // InternalRBAModel.g:3919:3: ( rule__Tag__Group_0_0_0__0 )
+ // InternalRBAModel.g:3919:4: rule__Tag__Group_0_0_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Tag__Group_0_0_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getTagAccess().getGroup_0_0_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:3923:2: ( ( rule__Tag__Group_0_0_1__0 ) )
+ {
+ // InternalRBAModel.g:3923:2: ( ( rule__Tag__Group_0_0_1__0 ) )
+ // InternalRBAModel.g:3924:3: ( rule__Tag__Group_0_0_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getTagAccess().getGroup_0_0_1());
+ }
+ // InternalRBAModel.g:3925:3: ( rule__Tag__Group_0_0_1__0 )
+ // InternalRBAModel.g:3925:4: rule__Tag__Group_0_0_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Tag__Group_0_0_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getTagAccess().getGroup_0_0_1());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Tag__Alternatives_0_0"
+
+
+ // $ANTLR start "rule__StereotypableElementName__Alternatives"
+ // InternalRBAModel.g:3933:1: rule__StereotypableElementName__Alternatives : ( ( 'Area' ) | ( 'Zone' ) | ( 'SoundContent' ) | ( 'ViewContent' ) );
+ public final void rule__StereotypableElementName__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:3937:1: ( ( 'Area' ) | ( 'Zone' ) | ( 'SoundContent' ) | ( 'ViewContent' ) )
+ int alt13=4;
+ switch ( input.LA(1) ) {
+ case 67:
+ {
+ alt13=1;
+ }
+ break;
+ case 68:
+ {
+ alt13=2;
+ }
+ break;
+ case 69:
+ {
+ alt13=3;
+ }
+ break;
+ case 70:
+ {
+ alt13=4;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 13, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt13) {
+ case 1 :
+ // InternalRBAModel.g:3938:2: ( 'Area' )
+ {
+ // InternalRBAModel.g:3938:2: ( 'Area' )
+ // InternalRBAModel.g:3939:3: 'Area'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getStereotypableElementNameAccess().getAreaKeyword_0());
+ }
+ match(input,67,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getStereotypableElementNameAccess().getAreaKeyword_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:3944:2: ( 'Zone' )
+ {
+ // InternalRBAModel.g:3944:2: ( 'Zone' )
+ // InternalRBAModel.g:3945:3: 'Zone'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getStereotypableElementNameAccess().getZoneKeyword_1());
+ }
+ match(input,68,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getStereotypableElementNameAccess().getZoneKeyword_1());
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:3950:2: ( 'SoundContent' )
+ {
+ // InternalRBAModel.g:3950:2: ( 'SoundContent' )
+ // InternalRBAModel.g:3951:3: 'SoundContent'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getStereotypableElementNameAccess().getSoundContentKeyword_2());
+ }
+ match(input,69,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getStereotypableElementNameAccess().getSoundContentKeyword_2());
+ }
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // InternalRBAModel.g:3956:2: ( 'ViewContent' )
+ {
+ // InternalRBAModel.g:3956:2: ( 'ViewContent' )
+ // InternalRBAModel.g:3957:3: 'ViewContent'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getStereotypableElementNameAccess().getViewContentKeyword_3());
+ }
+ match(input,70,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getStereotypableElementNameAccess().getViewContentKeyword_3());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__StereotypableElementName__Alternatives"
+
+
+ // $ANTLR start "rule__Area__Alternatives_4_3_0"
+ // InternalRBAModel.g:3966:1: rule__Area__Alternatives_4_3_0 : ( ( 'visibility:' ) | ( 'priority:' ) );
+ public final void rule__Area__Alternatives_4_3_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:3970:1: ( ( 'visibility:' ) | ( 'priority:' ) )
+ int alt14=2;
+ int LA14_0 = input.LA(1);
+
+ if ( (LA14_0==71) ) {
+ alt14=1;
+ }
+ else if ( (LA14_0==72) ) {
+ alt14=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 14, 0, input);
+
+ throw nvae;
+ }
+ switch (alt14) {
+ case 1 :
+ // InternalRBAModel.g:3971:2: ( 'visibility:' )
+ {
+ // InternalRBAModel.g:3971:2: ( 'visibility:' )
+ // InternalRBAModel.g:3972:3: 'visibility:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaAccess().getVisibilityKeyword_4_3_0_0());
+ }
+ match(input,71,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaAccess().getVisibilityKeyword_4_3_0_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:3977:2: ( 'priority:' )
+ {
+ // InternalRBAModel.g:3977:2: ( 'priority:' )
+ // InternalRBAModel.g:3978:3: 'priority:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaAccess().getPriorityKeyword_4_3_0_1());
+ }
+ match(input,72,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaAccess().getPriorityKeyword_4_3_0_1());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Area__Alternatives_4_3_0"
+
+
+ // $ANTLR start "rule__Zone__Alternatives_4_2_0"
+ // InternalRBAModel.g:3987:1: rule__Zone__Alternatives_4_2_0 : ( ( 'visibility:' ) | ( 'priority:' ) );
+ public final void rule__Zone__Alternatives_4_2_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:3991:1: ( ( 'visibility:' ) | ( 'priority:' ) )
+ int alt15=2;
+ int LA15_0 = input.LA(1);
+
+ if ( (LA15_0==71) ) {
+ alt15=1;
+ }
+ else if ( (LA15_0==72) ) {
+ alt15=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 15, 0, input);
+
+ throw nvae;
+ }
+ switch (alt15) {
+ case 1 :
+ // InternalRBAModel.g:3992:2: ( 'visibility:' )
+ {
+ // InternalRBAModel.g:3992:2: ( 'visibility:' )
+ // InternalRBAModel.g:3993:3: 'visibility:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneAccess().getVisibilityKeyword_4_2_0_0());
+ }
+ match(input,71,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneAccess().getVisibilityKeyword_4_2_0_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:3998:2: ( 'priority:' )
+ {
+ // InternalRBAModel.g:3998:2: ( 'priority:' )
+ // InternalRBAModel.g:3999:3: 'priority:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneAccess().getPriorityKeyword_4_2_0_1());
+ }
+ match(input,72,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneAccess().getPriorityKeyword_4_2_0_1());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Zone__Alternatives_4_2_0"
+
+
+ // $ANTLR start "rule__ViewContentState__Alternatives_4_1_0"
+ // InternalRBAModel.g:4008:1: rule__ViewContentState__Alternatives_4_1_0 : ( ( 'priority:' ) | ( 'value:' ) );
+ public final void rule__ViewContentState__Alternatives_4_1_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:4012:1: ( ( 'priority:' ) | ( 'value:' ) )
+ int alt16=2;
+ int LA16_0 = input.LA(1);
+
+ if ( (LA16_0==72) ) {
+ alt16=1;
+ }
+ else if ( (LA16_0==73) ) {
+ alt16=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 16, 0, input);
+
+ throw nvae;
+ }
+ switch (alt16) {
+ case 1 :
+ // InternalRBAModel.g:4013:2: ( 'priority:' )
+ {
+ // InternalRBAModel.g:4013:2: ( 'priority:' )
+ // InternalRBAModel.g:4014:3: 'priority:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentStateAccess().getPriorityKeyword_4_1_0_0());
+ }
+ match(input,72,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentStateAccess().getPriorityKeyword_4_1_0_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:4019:2: ( 'value:' )
+ {
+ // InternalRBAModel.g:4019:2: ( 'value:' )
+ // InternalRBAModel.g:4020:3: 'value:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentStateAccess().getValueKeyword_4_1_0_1());
+ }
+ match(input,73,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentStateAccess().getValueKeyword_4_1_0_1());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentState__Alternatives_4_1_0"
+
+
+ // $ANTLR start "rule__SoundContentState__Alternatives_4_1_0"
+ // InternalRBAModel.g:4029:1: rule__SoundContentState__Alternatives_4_1_0 : ( ( 'priority:' ) | ( 'value:' ) );
+ public final void rule__SoundContentState__Alternatives_4_1_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:4033:1: ( ( 'priority:' ) | ( 'value:' ) )
+ int alt17=2;
+ int LA17_0 = input.LA(1);
+
+ if ( (LA17_0==72) ) {
+ alt17=1;
+ }
+ else if ( (LA17_0==73) ) {
+ alt17=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 17, 0, input);
+
+ throw nvae;
+ }
+ switch (alt17) {
+ case 1 :
+ // InternalRBAModel.g:4034:2: ( 'priority:' )
+ {
+ // InternalRBAModel.g:4034:2: ( 'priority:' )
+ // InternalRBAModel.g:4035:3: 'priority:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentStateAccess().getPriorityKeyword_4_1_0_0());
+ }
+ match(input,72,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentStateAccess().getPriorityKeyword_4_1_0_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:4040:2: ( 'value:' )
+ {
+ // InternalRBAModel.g:4040:2: ( 'value:' )
+ // InternalRBAModel.g:4041:3: 'value:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentStateAccess().getValueKeyword_4_1_0_1());
+ }
+ match(input,73,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentStateAccess().getValueKeyword_4_1_0_1());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentState__Alternatives_4_1_0"
+
+
+ // $ANTLR start "rule__VRelationalExpression__Alternatives"
+ // InternalRBAModel.g:4050:1: rule__VRelationalExpression__Alternatives : ( ( ruleVPrimaryExpression ) | ( ( rule__VRelationalExpression__Group_1__0 ) ) | ( ( rule__VRelationalExpression__Group_2__0 ) ) | ( ( rule__VRelationalExpression__Group_3__0 ) ) | ( ( rule__VRelationalExpression__Group_4__0 ) ) );
+ public final void rule__VRelationalExpression__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:4054:1: ( ( ruleVPrimaryExpression ) | ( ( rule__VRelationalExpression__Group_1__0 ) ) | ( ( rule__VRelationalExpression__Group_2__0 ) ) | ( ( rule__VRelationalExpression__Group_3__0 ) ) | ( ( rule__VRelationalExpression__Group_4__0 ) ) )
+ int alt18=5;
+ switch ( input.LA(1) ) {
+ case RULE_INT:
+ case 107:
+ case 134:
+ case 136:
+ case 137:
+ case 138:
+ case 139:
+ case 166:
+ {
+ alt18=1;
+ }
+ break;
+ case 19:
+ {
+ alt18=2;
+ }
+ break;
+ case 20:
+ {
+ alt18=3;
+ }
+ break;
+ case 21:
+ {
+ alt18=4;
+ }
+ break;
+ case 22:
+ {
+ alt18=5;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 18, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt18) {
+ case 1 :
+ // InternalRBAModel.g:4055:2: ( ruleVPrimaryExpression )
+ {
+ // InternalRBAModel.g:4055:2: ( ruleVPrimaryExpression )
+ // InternalRBAModel.g:4056:3: ruleVPrimaryExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVRelationalExpressionAccess().getVPrimaryExpressionParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleVPrimaryExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVRelationalExpressionAccess().getVPrimaryExpressionParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:4061:2: ( ( rule__VRelationalExpression__Group_1__0 ) )
+ {
+ // InternalRBAModel.g:4061:2: ( ( rule__VRelationalExpression__Group_1__0 ) )
+ // InternalRBAModel.g:4062:3: ( rule__VRelationalExpression__Group_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVRelationalExpressionAccess().getGroup_1());
+ }
+ // InternalRBAModel.g:4063:3: ( rule__VRelationalExpression__Group_1__0 )
+ // InternalRBAModel.g:4063:4: rule__VRelationalExpression__Group_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__VRelationalExpression__Group_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVRelationalExpressionAccess().getGroup_1());
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:4067:2: ( ( rule__VRelationalExpression__Group_2__0 ) )
+ {
+ // InternalRBAModel.g:4067:2: ( ( rule__VRelationalExpression__Group_2__0 ) )
+ // InternalRBAModel.g:4068:3: ( rule__VRelationalExpression__Group_2__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVRelationalExpressionAccess().getGroup_2());
+ }
+ // InternalRBAModel.g:4069:3: ( rule__VRelationalExpression__Group_2__0 )
+ // InternalRBAModel.g:4069:4: rule__VRelationalExpression__Group_2__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__VRelationalExpression__Group_2__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVRelationalExpressionAccess().getGroup_2());
+ }
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // InternalRBAModel.g:4073:2: ( ( rule__VRelationalExpression__Group_3__0 ) )
+ {
+ // InternalRBAModel.g:4073:2: ( ( rule__VRelationalExpression__Group_3__0 ) )
+ // InternalRBAModel.g:4074:3: ( rule__VRelationalExpression__Group_3__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVRelationalExpressionAccess().getGroup_3());
+ }
+ // InternalRBAModel.g:4075:3: ( rule__VRelationalExpression__Group_3__0 )
+ // InternalRBAModel.g:4075:4: rule__VRelationalExpression__Group_3__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__VRelationalExpression__Group_3__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVRelationalExpressionAccess().getGroup_3());
+ }
+
+ }
+
+
+ }
+ break;
+ case 5 :
+ // InternalRBAModel.g:4079:2: ( ( rule__VRelationalExpression__Group_4__0 ) )
+ {
+ // InternalRBAModel.g:4079:2: ( ( rule__VRelationalExpression__Group_4__0 ) )
+ // InternalRBAModel.g:4080:3: ( rule__VRelationalExpression__Group_4__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVRelationalExpressionAccess().getGroup_4());
+ }
+ // InternalRBAModel.g:4081:3: ( rule__VRelationalExpression__Group_4__0 )
+ // InternalRBAModel.g:4081:4: rule__VRelationalExpression__Group_4__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__VRelationalExpression__Group_4__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVRelationalExpressionAccess().getGroup_4());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VRelationalExpression__Alternatives"
+
+
+ // $ANTLR start "rule__VPrimaryExpression__Alternatives"
+ // InternalRBAModel.g:4089:1: rule__VPrimaryExpression__Alternatives : ( ( ruleThatOfOperator ) | ( ruleVValueExpression ) | ( ( rule__VPrimaryExpression__Group_2__0 ) ) );
+ public final void rule__VPrimaryExpression__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:4093:1: ( ( ruleThatOfOperator ) | ( ruleVValueExpression ) | ( ( rule__VPrimaryExpression__Group_2__0 ) ) )
+ int alt19=3;
+ switch ( input.LA(1) ) {
+ case 134:
+ {
+ alt19=1;
+ }
+ break;
+ case RULE_INT:
+ case 136:
+ case 137:
+ case 138:
+ case 139:
+ case 166:
+ {
+ alt19=2;
+ }
+ break;
+ case 107:
+ {
+ alt19=3;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 19, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt19) {
+ case 1 :
+ // InternalRBAModel.g:4094:2: ( ruleThatOfOperator )
+ {
+ // InternalRBAModel.g:4094:2: ( ruleThatOfOperator )
+ // InternalRBAModel.g:4095:3: ruleThatOfOperator
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVPrimaryExpressionAccess().getThatOfOperatorParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleThatOfOperator();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVPrimaryExpressionAccess().getThatOfOperatorParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:4100:2: ( ruleVValueExpression )
+ {
+ // InternalRBAModel.g:4100:2: ( ruleVValueExpression )
+ // InternalRBAModel.g:4101:3: ruleVValueExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVPrimaryExpressionAccess().getVValueExpressionParserRuleCall_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleVValueExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVPrimaryExpressionAccess().getVValueExpressionParserRuleCall_1());
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:4106:2: ( ( rule__VPrimaryExpression__Group_2__0 ) )
+ {
+ // InternalRBAModel.g:4106:2: ( ( rule__VPrimaryExpression__Group_2__0 ) )
+ // InternalRBAModel.g:4107:3: ( rule__VPrimaryExpression__Group_2__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVPrimaryExpressionAccess().getGroup_2());
+ }
+ // InternalRBAModel.g:4108:3: ( rule__VPrimaryExpression__Group_2__0 )
+ // InternalRBAModel.g:4108:4: rule__VPrimaryExpression__Group_2__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__VPrimaryExpression__Group_2__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVPrimaryExpressionAccess().getGroup_2());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VPrimaryExpression__Alternatives"
+
+
+ // $ANTLR start "rule__VValueExpression__Alternatives"
+ // InternalRBAModel.g:4116:1: rule__VValueExpression__Alternatives : ( ( ruleIntegerValue ) | ( ruleStandardValue ) | ( ruleNoneValue ) | ( ruleMinValue ) | ( ruleMaxValue ) );
+ public final void rule__VValueExpression__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:4120:1: ( ( ruleIntegerValue ) | ( ruleStandardValue ) | ( ruleNoneValue ) | ( ruleMinValue ) | ( ruleMaxValue ) )
+ int alt20=5;
+ switch ( input.LA(1) ) {
+ case RULE_INT:
+ case 166:
+ {
+ alt20=1;
+ }
+ break;
+ case 136:
+ {
+ alt20=2;
+ }
+ break;
+ case 137:
+ {
+ alt20=3;
+ }
+ break;
+ case 138:
+ {
+ alt20=4;
+ }
+ break;
+ case 139:
+ {
+ alt20=5;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 20, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt20) {
+ case 1 :
+ // InternalRBAModel.g:4121:2: ( ruleIntegerValue )
+ {
+ // InternalRBAModel.g:4121:2: ( ruleIntegerValue )
+ // InternalRBAModel.g:4122:3: ruleIntegerValue
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVValueExpressionAccess().getIntegerValueParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleIntegerValue();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVValueExpressionAccess().getIntegerValueParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:4127:2: ( ruleStandardValue )
+ {
+ // InternalRBAModel.g:4127:2: ( ruleStandardValue )
+ // InternalRBAModel.g:4128:3: ruleStandardValue
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVValueExpressionAccess().getStandardValueParserRuleCall_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleStandardValue();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVValueExpressionAccess().getStandardValueParserRuleCall_1());
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:4133:2: ( ruleNoneValue )
+ {
+ // InternalRBAModel.g:4133:2: ( ruleNoneValue )
+ // InternalRBAModel.g:4134:3: ruleNoneValue
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVValueExpressionAccess().getNoneValueParserRuleCall_2());
+ }
+ pushFollow(FOLLOW_2);
+ ruleNoneValue();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVValueExpressionAccess().getNoneValueParserRuleCall_2());
+ }
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // InternalRBAModel.g:4139:2: ( ruleMinValue )
+ {
+ // InternalRBAModel.g:4139:2: ( ruleMinValue )
+ // InternalRBAModel.g:4140:3: ruleMinValue
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVValueExpressionAccess().getMinValueParserRuleCall_3());
+ }
+ pushFollow(FOLLOW_2);
+ ruleMinValue();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVValueExpressionAccess().getMinValueParserRuleCall_3());
+ }
+
+ }
+
+
+ }
+ break;
+ case 5 :
+ // InternalRBAModel.g:4145:2: ( ruleMaxValue )
+ {
+ // InternalRBAModel.g:4145:2: ( ruleMaxValue )
+ // InternalRBAModel.g:4146:3: ruleMaxValue
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVValueExpressionAccess().getMaxValueParserRuleCall_4());
+ }
+ pushFollow(FOLLOW_2);
+ ruleMaxValue();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVValueExpressionAccess().getMaxValueParserRuleCall_4());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VValueExpression__Alternatives"
+
+
+ // $ANTLR start "rule__CEqualityExpression__Alternatives_1_0_0"
+ // InternalRBAModel.g:4155:1: rule__CEqualityExpression__Alternatives_1_0_0 : ( ( ( rule__CEqualityExpression__Group_1_0_0_0__0 ) ) | ( ( rule__CEqualityExpression__Group_1_0_0_1__0 ) ) | ( ( rule__CEqualityExpression__Group_1_0_0_2__0 ) ) );
+ public final void rule__CEqualityExpression__Alternatives_1_0_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:4159:1: ( ( ( rule__CEqualityExpression__Group_1_0_0_0__0 ) ) | ( ( rule__CEqualityExpression__Group_1_0_0_1__0 ) ) | ( ( rule__CEqualityExpression__Group_1_0_0_2__0 ) ) )
+ int alt21=3;
+ switch ( input.LA(1) ) {
+ case 26:
+ {
+ alt21=1;
+ }
+ break;
+ case 27:
+ {
+ alt21=2;
+ }
+ break;
+ case 20:
+ {
+ alt21=3;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 21, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt21) {
+ case 1 :
+ // InternalRBAModel.g:4160:2: ( ( rule__CEqualityExpression__Group_1_0_0_0__0 ) )
+ {
+ // InternalRBAModel.g:4160:2: ( ( rule__CEqualityExpression__Group_1_0_0_0__0 ) )
+ // InternalRBAModel.g:4161:3: ( rule__CEqualityExpression__Group_1_0_0_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCEqualityExpressionAccess().getGroup_1_0_0_0());
+ }
+ // InternalRBAModel.g:4162:3: ( rule__CEqualityExpression__Group_1_0_0_0__0 )
+ // InternalRBAModel.g:4162:4: rule__CEqualityExpression__Group_1_0_0_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__CEqualityExpression__Group_1_0_0_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCEqualityExpressionAccess().getGroup_1_0_0_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:4166:2: ( ( rule__CEqualityExpression__Group_1_0_0_1__0 ) )
+ {
+ // InternalRBAModel.g:4166:2: ( ( rule__CEqualityExpression__Group_1_0_0_1__0 ) )
+ // InternalRBAModel.g:4167:3: ( rule__CEqualityExpression__Group_1_0_0_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCEqualityExpressionAccess().getGroup_1_0_0_1());
+ }
+ // InternalRBAModel.g:4168:3: ( rule__CEqualityExpression__Group_1_0_0_1__0 )
+ // InternalRBAModel.g:4168:4: rule__CEqualityExpression__Group_1_0_0_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__CEqualityExpression__Group_1_0_0_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCEqualityExpressionAccess().getGroup_1_0_0_1());
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:4172:2: ( ( rule__CEqualityExpression__Group_1_0_0_2__0 ) )
+ {
+ // InternalRBAModel.g:4172:2: ( ( rule__CEqualityExpression__Group_1_0_0_2__0 ) )
+ // InternalRBAModel.g:4173:3: ( rule__CEqualityExpression__Group_1_0_0_2__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCEqualityExpressionAccess().getGroup_1_0_0_2());
+ }
+ // InternalRBAModel.g:4174:3: ( rule__CEqualityExpression__Group_1_0_0_2__0 )
+ // InternalRBAModel.g:4174:4: rule__CEqualityExpression__Group_1_0_0_2__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__CEqualityExpression__Group_1_0_0_2__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCEqualityExpressionAccess().getGroup_1_0_0_2());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CEqualityExpression__Alternatives_1_0_0"
+
+
+ // $ANTLR start "rule__CRelationalExpression__Alternatives_1_0_0"
+ // InternalRBAModel.g:4182:1: rule__CRelationalExpression__Alternatives_1_0_0 : ( ( ( rule__CRelationalExpression__Group_1_0_0_0__0 ) ) | ( ( rule__CRelationalExpression__Group_1_0_0_1__0 ) ) | ( ( rule__CRelationalExpression__Group_1_0_0_2__0 ) ) | ( ( rule__CRelationalExpression__Group_1_0_0_3__0 ) ) );
+ public final void rule__CRelationalExpression__Alternatives_1_0_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:4186:1: ( ( ( rule__CRelationalExpression__Group_1_0_0_0__0 ) ) | ( ( rule__CRelationalExpression__Group_1_0_0_1__0 ) ) | ( ( rule__CRelationalExpression__Group_1_0_0_2__0 ) ) | ( ( rule__CRelationalExpression__Group_1_0_0_3__0 ) ) )
+ int alt22=4;
+ switch ( input.LA(1) ) {
+ case 28:
+ {
+ alt22=1;
+ }
+ break;
+ case 29:
+ {
+ alt22=2;
+ }
+ break;
+ case 21:
+ {
+ alt22=3;
+ }
+ break;
+ case 22:
+ {
+ alt22=4;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 22, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt22) {
+ case 1 :
+ // InternalRBAModel.g:4187:2: ( ( rule__CRelationalExpression__Group_1_0_0_0__0 ) )
+ {
+ // InternalRBAModel.g:4187:2: ( ( rule__CRelationalExpression__Group_1_0_0_0__0 ) )
+ // InternalRBAModel.g:4188:3: ( rule__CRelationalExpression__Group_1_0_0_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCRelationalExpressionAccess().getGroup_1_0_0_0());
+ }
+ // InternalRBAModel.g:4189:3: ( rule__CRelationalExpression__Group_1_0_0_0__0 )
+ // InternalRBAModel.g:4189:4: rule__CRelationalExpression__Group_1_0_0_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__CRelationalExpression__Group_1_0_0_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCRelationalExpressionAccess().getGroup_1_0_0_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:4193:2: ( ( rule__CRelationalExpression__Group_1_0_0_1__0 ) )
+ {
+ // InternalRBAModel.g:4193:2: ( ( rule__CRelationalExpression__Group_1_0_0_1__0 ) )
+ // InternalRBAModel.g:4194:3: ( rule__CRelationalExpression__Group_1_0_0_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCRelationalExpressionAccess().getGroup_1_0_0_1());
+ }
+ // InternalRBAModel.g:4195:3: ( rule__CRelationalExpression__Group_1_0_0_1__0 )
+ // InternalRBAModel.g:4195:4: rule__CRelationalExpression__Group_1_0_0_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__CRelationalExpression__Group_1_0_0_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCRelationalExpressionAccess().getGroup_1_0_0_1());
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:4199:2: ( ( rule__CRelationalExpression__Group_1_0_0_2__0 ) )
+ {
+ // InternalRBAModel.g:4199:2: ( ( rule__CRelationalExpression__Group_1_0_0_2__0 ) )
+ // InternalRBAModel.g:4200:3: ( rule__CRelationalExpression__Group_1_0_0_2__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCRelationalExpressionAccess().getGroup_1_0_0_2());
+ }
+ // InternalRBAModel.g:4201:3: ( rule__CRelationalExpression__Group_1_0_0_2__0 )
+ // InternalRBAModel.g:4201:4: rule__CRelationalExpression__Group_1_0_0_2__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__CRelationalExpression__Group_1_0_0_2__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCRelationalExpressionAccess().getGroup_1_0_0_2());
+ }
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // InternalRBAModel.g:4205:2: ( ( rule__CRelationalExpression__Group_1_0_0_3__0 ) )
+ {
+ // InternalRBAModel.g:4205:2: ( ( rule__CRelationalExpression__Group_1_0_0_3__0 ) )
+ // InternalRBAModel.g:4206:3: ( rule__CRelationalExpression__Group_1_0_0_3__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCRelationalExpressionAccess().getGroup_1_0_0_3());
+ }
+ // InternalRBAModel.g:4207:3: ( rule__CRelationalExpression__Group_1_0_0_3__0 )
+ // InternalRBAModel.g:4207:4: rule__CRelationalExpression__Group_1_0_0_3__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__CRelationalExpression__Group_1_0_0_3__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCRelationalExpressionAccess().getGroup_1_0_0_3());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CRelationalExpression__Alternatives_1_0_0"
+
+
+ // $ANTLR start "rule__CUnaryOperation__Alternatives"
+ // InternalRBAModel.g:4215:1: rule__CUnaryOperation__Alternatives : ( ( ( rule__CUnaryOperation__Group_0__0 ) ) | ( ruleCOperationFeatureCall ) );
+ public final void rule__CUnaryOperation__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:4219:1: ( ( ( rule__CUnaryOperation__Group_0__0 ) ) | ( ruleCOperationFeatureCall ) )
+ int alt23=2;
+ int LA23_0 = input.LA(1);
+
+ if ( (LA23_0==30) ) {
+ alt23=1;
+ }
+ else if ( ((LA23_0>=RULE_ID && LA23_0<=RULE_INT)||LA23_0==76||LA23_0==101||LA23_0==107||(LA23_0>=140 && LA23_0<=148)||(LA23_0>=151 && LA23_0<=152)||LA23_0==166) ) {
+ alt23=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 23, 0, input);
+
+ throw nvae;
+ }
+ switch (alt23) {
+ case 1 :
+ // InternalRBAModel.g:4220:2: ( ( rule__CUnaryOperation__Group_0__0 ) )
+ {
+ // InternalRBAModel.g:4220:2: ( ( rule__CUnaryOperation__Group_0__0 ) )
+ // InternalRBAModel.g:4221:3: ( rule__CUnaryOperation__Group_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCUnaryOperationAccess().getGroup_0());
+ }
+ // InternalRBAModel.g:4222:3: ( rule__CUnaryOperation__Group_0__0 )
+ // InternalRBAModel.g:4222:4: rule__CUnaryOperation__Group_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__CUnaryOperation__Group_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCUnaryOperationAccess().getGroup_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:4226:2: ( ruleCOperationFeatureCall )
+ {
+ // InternalRBAModel.g:4226:2: ( ruleCOperationFeatureCall )
+ // InternalRBAModel.g:4227:3: ruleCOperationFeatureCall
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCUnaryOperationAccess().getCOperationFeatureCallParserRuleCall_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleCOperationFeatureCall();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCUnaryOperationAccess().getCOperationFeatureCallParserRuleCall_1());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CUnaryOperation__Alternatives"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Alternatives_1_1"
+ // InternalRBAModel.g:4236:1: rule__COperationFeatureCall__Alternatives_1_1 : ( ( ( rule__COperationFeatureCall__Group_1_1_0__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_1__0 ) ) | ( ( rule__COperationFeatureCall__Alternatives_1_1_2 ) ) );
+ public final void rule__COperationFeatureCall__Alternatives_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:4240:1: ( ( ( rule__COperationFeatureCall__Group_1_1_0__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_1__0 ) ) | ( ( rule__COperationFeatureCall__Alternatives_1_1_2 ) ) )
+ int alt24=3;
+ switch ( input.LA(1) ) {
+ case 31:
+ case 32:
+ case 33:
+ case 34:
+ case 35:
+ case 36:
+ case 37:
+ case 38:
+ case 39:
+ case 40:
+ case 41:
+ case 42:
+ case 43:
+ case 44:
+ case 45:
+ case 46:
+ case 47:
+ case 48:
+ case 49:
+ case 50:
+ case 51:
+ case 52:
+ case 53:
+ case 54:
+ case 55:
+ case 56:
+ case 57:
+ case 58:
+ case 60:
+ case 61:
+ case 62:
+ case 63:
+ {
+ alt24=1;
+ }
+ break;
+ case 59:
+ {
+ alt24=2;
+ }
+ break;
+ case 64:
+ case 65:
+ case 66:
+ {
+ alt24=3;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 24, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt24) {
+ case 1 :
+ // InternalRBAModel.g:4241:2: ( ( rule__COperationFeatureCall__Group_1_1_0__0 ) )
+ {
+ // InternalRBAModel.g:4241:2: ( ( rule__COperationFeatureCall__Group_1_1_0__0 ) )
+ // InternalRBAModel.g:4242:3: ( rule__COperationFeatureCall__Group_1_1_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0());
+ }
+ // InternalRBAModel.g:4243:3: ( rule__COperationFeatureCall__Group_1_1_0__0 )
+ // InternalRBAModel.g:4243:4: rule__COperationFeatureCall__Group_1_1_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:4247:2: ( ( rule__COperationFeatureCall__Group_1_1_1__0 ) )
+ {
+ // InternalRBAModel.g:4247:2: ( ( rule__COperationFeatureCall__Group_1_1_1__0 ) )
+ // InternalRBAModel.g:4248:3: ( rule__COperationFeatureCall__Group_1_1_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_1());
+ }
+ // InternalRBAModel.g:4249:3: ( rule__COperationFeatureCall__Group_1_1_1__0 )
+ // InternalRBAModel.g:4249:4: rule__COperationFeatureCall__Group_1_1_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_1());
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:4253:2: ( ( rule__COperationFeatureCall__Alternatives_1_1_2 ) )
+ {
+ // InternalRBAModel.g:4253:2: ( ( rule__COperationFeatureCall__Alternatives_1_1_2 ) )
+ // InternalRBAModel.g:4254:3: ( rule__COperationFeatureCall__Alternatives_1_1_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getAlternatives_1_1_2());
+ }
+ // InternalRBAModel.g:4255:3: ( rule__COperationFeatureCall__Alternatives_1_1_2 )
+ // InternalRBAModel.g:4255:4: rule__COperationFeatureCall__Alternatives_1_1_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Alternatives_1_1_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getAlternatives_1_1_2());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Alternatives_1_1"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Alternatives_1_1_0_0"
+ // InternalRBAModel.g:4263:1: rule__COperationFeatureCall__Alternatives_1_1_0_0 : ( ( ( rule__COperationFeatureCall__Group_1_1_0_0_0__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_1__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_2__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_3__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_4__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_5__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_6__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_7__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_8__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_9__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_10__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_11__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_12__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_13__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_14__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_15__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_16__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_17__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_18__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_19__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_20__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_21__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_22__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_23__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_24__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_25__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_26__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_27__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_28__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_29__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_30__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_31__0 ) ) );
+ public final void rule__COperationFeatureCall__Alternatives_1_1_0_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:4267:1: ( ( ( rule__COperationFeatureCall__Group_1_1_0_0_0__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_1__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_2__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_3__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_4__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_5__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_6__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_7__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_8__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_9__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_10__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_11__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_12__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_13__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_14__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_15__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_16__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_17__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_18__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_19__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_20__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_21__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_22__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_23__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_24__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_25__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_26__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_27__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_28__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_29__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_30__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_0_0_31__0 ) ) )
+ int alt25=32;
+ switch ( input.LA(1) ) {
+ case 31:
+ {
+ alt25=1;
+ }
+ break;
+ case 32:
+ {
+ alt25=2;
+ }
+ break;
+ case 33:
+ {
+ alt25=3;
+ }
+ break;
+ case 34:
+ {
+ alt25=4;
+ }
+ break;
+ case 35:
+ {
+ alt25=5;
+ }
+ break;
+ case 36:
+ {
+ alt25=6;
+ }
+ break;
+ case 37:
+ {
+ alt25=7;
+ }
+ break;
+ case 47:
+ {
+ alt25=8;
+ }
+ break;
+ case 48:
+ {
+ alt25=9;
+ }
+ break;
+ case 49:
+ {
+ alt25=10;
+ }
+ break;
+ case 60:
+ {
+ alt25=11;
+ }
+ break;
+ case 61:
+ {
+ alt25=12;
+ }
+ break;
+ case 62:
+ {
+ alt25=13;
+ }
+ break;
+ case 63:
+ {
+ alt25=14;
+ }
+ break;
+ case 38:
+ {
+ alt25=15;
+ }
+ break;
+ case 39:
+ {
+ alt25=16;
+ }
+ break;
+ case 40:
+ {
+ alt25=17;
+ }
+ break;
+ case 41:
+ {
+ alt25=18;
+ }
+ break;
+ case 42:
+ {
+ alt25=19;
+ }
+ break;
+ case 43:
+ {
+ alt25=20;
+ }
+ break;
+ case 44:
+ {
+ alt25=21;
+ }
+ break;
+ case 45:
+ {
+ alt25=22;
+ }
+ break;
+ case 50:
+ {
+ alt25=23;
+ }
+ break;
+ case 51:
+ {
+ alt25=24;
+ }
+ break;
+ case 52:
+ {
+ alt25=25;
+ }
+ break;
+ case 53:
+ {
+ alt25=26;
+ }
+ break;
+ case 54:
+ {
+ alt25=27;
+ }
+ break;
+ case 55:
+ {
+ alt25=28;
+ }
+ break;
+ case 56:
+ {
+ alt25=29;
+ }
+ break;
+ case 57:
+ {
+ alt25=30;
+ }
+ break;
+ case 58:
+ {
+ alt25=31;
+ }
+ break;
+ case 46:
+ {
+ alt25=32;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 25, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt25) {
+ case 1 :
+ // InternalRBAModel.g:4268:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_0__0 ) )
+ {
+ // InternalRBAModel.g:4268:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_0__0 ) )
+ // InternalRBAModel.g:4269:3: ( rule__COperationFeatureCall__Group_1_1_0_0_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_0());
+ }
+ // InternalRBAModel.g:4270:3: ( rule__COperationFeatureCall__Group_1_1_0_0_0__0 )
+ // InternalRBAModel.g:4270:4: rule__COperationFeatureCall__Group_1_1_0_0_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:4274:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_1__0 ) )
+ {
+ // InternalRBAModel.g:4274:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_1__0 ) )
+ // InternalRBAModel.g:4275:3: ( rule__COperationFeatureCall__Group_1_1_0_0_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_1());
+ }
+ // InternalRBAModel.g:4276:3: ( rule__COperationFeatureCall__Group_1_1_0_0_1__0 )
+ // InternalRBAModel.g:4276:4: rule__COperationFeatureCall__Group_1_1_0_0_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_1());
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:4280:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_2__0 ) )
+ {
+ // InternalRBAModel.g:4280:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_2__0 ) )
+ // InternalRBAModel.g:4281:3: ( rule__COperationFeatureCall__Group_1_1_0_0_2__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_2());
+ }
+ // InternalRBAModel.g:4282:3: ( rule__COperationFeatureCall__Group_1_1_0_0_2__0 )
+ // InternalRBAModel.g:4282:4: rule__COperationFeatureCall__Group_1_1_0_0_2__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_2__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_2());
+ }
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // InternalRBAModel.g:4286:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_3__0 ) )
+ {
+ // InternalRBAModel.g:4286:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_3__0 ) )
+ // InternalRBAModel.g:4287:3: ( rule__COperationFeatureCall__Group_1_1_0_0_3__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_3());
+ }
+ // InternalRBAModel.g:4288:3: ( rule__COperationFeatureCall__Group_1_1_0_0_3__0 )
+ // InternalRBAModel.g:4288:4: rule__COperationFeatureCall__Group_1_1_0_0_3__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_3__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_3());
+ }
+
+ }
+
+
+ }
+ break;
+ case 5 :
+ // InternalRBAModel.g:4292:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_4__0 ) )
+ {
+ // InternalRBAModel.g:4292:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_4__0 ) )
+ // InternalRBAModel.g:4293:3: ( rule__COperationFeatureCall__Group_1_1_0_0_4__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_4());
+ }
+ // InternalRBAModel.g:4294:3: ( rule__COperationFeatureCall__Group_1_1_0_0_4__0 )
+ // InternalRBAModel.g:4294:4: rule__COperationFeatureCall__Group_1_1_0_0_4__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_4__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_4());
+ }
+
+ }
+
+
+ }
+ break;
+ case 6 :
+ // InternalRBAModel.g:4298:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_5__0 ) )
+ {
+ // InternalRBAModel.g:4298:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_5__0 ) )
+ // InternalRBAModel.g:4299:3: ( rule__COperationFeatureCall__Group_1_1_0_0_5__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_5());
+ }
+ // InternalRBAModel.g:4300:3: ( rule__COperationFeatureCall__Group_1_1_0_0_5__0 )
+ // InternalRBAModel.g:4300:4: rule__COperationFeatureCall__Group_1_1_0_0_5__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_5__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_5());
+ }
+
+ }
+
+
+ }
+ break;
+ case 7 :
+ // InternalRBAModel.g:4304:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_6__0 ) )
+ {
+ // InternalRBAModel.g:4304:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_6__0 ) )
+ // InternalRBAModel.g:4305:3: ( rule__COperationFeatureCall__Group_1_1_0_0_6__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_6());
+ }
+ // InternalRBAModel.g:4306:3: ( rule__COperationFeatureCall__Group_1_1_0_0_6__0 )
+ // InternalRBAModel.g:4306:4: rule__COperationFeatureCall__Group_1_1_0_0_6__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_6__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_6());
+ }
+
+ }
+
+
+ }
+ break;
+ case 8 :
+ // InternalRBAModel.g:4310:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_7__0 ) )
+ {
+ // InternalRBAModel.g:4310:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_7__0 ) )
+ // InternalRBAModel.g:4311:3: ( rule__COperationFeatureCall__Group_1_1_0_0_7__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_7());
+ }
+ // InternalRBAModel.g:4312:3: ( rule__COperationFeatureCall__Group_1_1_0_0_7__0 )
+ // InternalRBAModel.g:4312:4: rule__COperationFeatureCall__Group_1_1_0_0_7__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_7__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_7());
+ }
+
+ }
+
+
+ }
+ break;
+ case 9 :
+ // InternalRBAModel.g:4316:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_8__0 ) )
+ {
+ // InternalRBAModel.g:4316:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_8__0 ) )
+ // InternalRBAModel.g:4317:3: ( rule__COperationFeatureCall__Group_1_1_0_0_8__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_8());
+ }
+ // InternalRBAModel.g:4318:3: ( rule__COperationFeatureCall__Group_1_1_0_0_8__0 )
+ // InternalRBAModel.g:4318:4: rule__COperationFeatureCall__Group_1_1_0_0_8__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_8__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_8());
+ }
+
+ }
+
+
+ }
+ break;
+ case 10 :
+ // InternalRBAModel.g:4322:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_9__0 ) )
+ {
+ // InternalRBAModel.g:4322:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_9__0 ) )
+ // InternalRBAModel.g:4323:3: ( rule__COperationFeatureCall__Group_1_1_0_0_9__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_9());
+ }
+ // InternalRBAModel.g:4324:3: ( rule__COperationFeatureCall__Group_1_1_0_0_9__0 )
+ // InternalRBAModel.g:4324:4: rule__COperationFeatureCall__Group_1_1_0_0_9__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_9__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_9());
+ }
+
+ }
+
+
+ }
+ break;
+ case 11 :
+ // InternalRBAModel.g:4328:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_10__0 ) )
+ {
+ // InternalRBAModel.g:4328:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_10__0 ) )
+ // InternalRBAModel.g:4329:3: ( rule__COperationFeatureCall__Group_1_1_0_0_10__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_10());
+ }
+ // InternalRBAModel.g:4330:3: ( rule__COperationFeatureCall__Group_1_1_0_0_10__0 )
+ // InternalRBAModel.g:4330:4: rule__COperationFeatureCall__Group_1_1_0_0_10__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_10__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_10());
+ }
+
+ }
+
+
+ }
+ break;
+ case 12 :
+ // InternalRBAModel.g:4334:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_11__0 ) )
+ {
+ // InternalRBAModel.g:4334:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_11__0 ) )
+ // InternalRBAModel.g:4335:3: ( rule__COperationFeatureCall__Group_1_1_0_0_11__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_11());
+ }
+ // InternalRBAModel.g:4336:3: ( rule__COperationFeatureCall__Group_1_1_0_0_11__0 )
+ // InternalRBAModel.g:4336:4: rule__COperationFeatureCall__Group_1_1_0_0_11__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_11__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_11());
+ }
+
+ }
+
+
+ }
+ break;
+ case 13 :
+ // InternalRBAModel.g:4340:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_12__0 ) )
+ {
+ // InternalRBAModel.g:4340:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_12__0 ) )
+ // InternalRBAModel.g:4341:3: ( rule__COperationFeatureCall__Group_1_1_0_0_12__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_12());
+ }
+ // InternalRBAModel.g:4342:3: ( rule__COperationFeatureCall__Group_1_1_0_0_12__0 )
+ // InternalRBAModel.g:4342:4: rule__COperationFeatureCall__Group_1_1_0_0_12__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_12__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_12());
+ }
+
+ }
+
+
+ }
+ break;
+ case 14 :
+ // InternalRBAModel.g:4346:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_13__0 ) )
+ {
+ // InternalRBAModel.g:4346:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_13__0 ) )
+ // InternalRBAModel.g:4347:3: ( rule__COperationFeatureCall__Group_1_1_0_0_13__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_13());
+ }
+ // InternalRBAModel.g:4348:3: ( rule__COperationFeatureCall__Group_1_1_0_0_13__0 )
+ // InternalRBAModel.g:4348:4: rule__COperationFeatureCall__Group_1_1_0_0_13__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_13__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_13());
+ }
+
+ }
+
+
+ }
+ break;
+ case 15 :
+ // InternalRBAModel.g:4352:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_14__0 ) )
+ {
+ // InternalRBAModel.g:4352:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_14__0 ) )
+ // InternalRBAModel.g:4353:3: ( rule__COperationFeatureCall__Group_1_1_0_0_14__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_14());
+ }
+ // InternalRBAModel.g:4354:3: ( rule__COperationFeatureCall__Group_1_1_0_0_14__0 )
+ // InternalRBAModel.g:4354:4: rule__COperationFeatureCall__Group_1_1_0_0_14__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_14__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_14());
+ }
+
+ }
+
+
+ }
+ break;
+ case 16 :
+ // InternalRBAModel.g:4358:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_15__0 ) )
+ {
+ // InternalRBAModel.g:4358:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_15__0 ) )
+ // InternalRBAModel.g:4359:3: ( rule__COperationFeatureCall__Group_1_1_0_0_15__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_15());
+ }
+ // InternalRBAModel.g:4360:3: ( rule__COperationFeatureCall__Group_1_1_0_0_15__0 )
+ // InternalRBAModel.g:4360:4: rule__COperationFeatureCall__Group_1_1_0_0_15__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_15__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_15());
+ }
+
+ }
+
+
+ }
+ break;
+ case 17 :
+ // InternalRBAModel.g:4364:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_16__0 ) )
+ {
+ // InternalRBAModel.g:4364:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_16__0 ) )
+ // InternalRBAModel.g:4365:3: ( rule__COperationFeatureCall__Group_1_1_0_0_16__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_16());
+ }
+ // InternalRBAModel.g:4366:3: ( rule__COperationFeatureCall__Group_1_1_0_0_16__0 )
+ // InternalRBAModel.g:4366:4: rule__COperationFeatureCall__Group_1_1_0_0_16__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_16__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_16());
+ }
+
+ }
+
+
+ }
+ break;
+ case 18 :
+ // InternalRBAModel.g:4370:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_17__0 ) )
+ {
+ // InternalRBAModel.g:4370:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_17__0 ) )
+ // InternalRBAModel.g:4371:3: ( rule__COperationFeatureCall__Group_1_1_0_0_17__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_17());
+ }
+ // InternalRBAModel.g:4372:3: ( rule__COperationFeatureCall__Group_1_1_0_0_17__0 )
+ // InternalRBAModel.g:4372:4: rule__COperationFeatureCall__Group_1_1_0_0_17__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_17__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_17());
+ }
+
+ }
+
+
+ }
+ break;
+ case 19 :
+ // InternalRBAModel.g:4376:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_18__0 ) )
+ {
+ // InternalRBAModel.g:4376:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_18__0 ) )
+ // InternalRBAModel.g:4377:3: ( rule__COperationFeatureCall__Group_1_1_0_0_18__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_18());
+ }
+ // InternalRBAModel.g:4378:3: ( rule__COperationFeatureCall__Group_1_1_0_0_18__0 )
+ // InternalRBAModel.g:4378:4: rule__COperationFeatureCall__Group_1_1_0_0_18__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_18__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_18());
+ }
+
+ }
+
+
+ }
+ break;
+ case 20 :
+ // InternalRBAModel.g:4382:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_19__0 ) )
+ {
+ // InternalRBAModel.g:4382:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_19__0 ) )
+ // InternalRBAModel.g:4383:3: ( rule__COperationFeatureCall__Group_1_1_0_0_19__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_19());
+ }
+ // InternalRBAModel.g:4384:3: ( rule__COperationFeatureCall__Group_1_1_0_0_19__0 )
+ // InternalRBAModel.g:4384:4: rule__COperationFeatureCall__Group_1_1_0_0_19__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_19__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_19());
+ }
+
+ }
+
+
+ }
+ break;
+ case 21 :
+ // InternalRBAModel.g:4388:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_20__0 ) )
+ {
+ // InternalRBAModel.g:4388:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_20__0 ) )
+ // InternalRBAModel.g:4389:3: ( rule__COperationFeatureCall__Group_1_1_0_0_20__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_20());
+ }
+ // InternalRBAModel.g:4390:3: ( rule__COperationFeatureCall__Group_1_1_0_0_20__0 )
+ // InternalRBAModel.g:4390:4: rule__COperationFeatureCall__Group_1_1_0_0_20__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_20__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_20());
+ }
+
+ }
+
+
+ }
+ break;
+ case 22 :
+ // InternalRBAModel.g:4394:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_21__0 ) )
+ {
+ // InternalRBAModel.g:4394:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_21__0 ) )
+ // InternalRBAModel.g:4395:3: ( rule__COperationFeatureCall__Group_1_1_0_0_21__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_21());
+ }
+ // InternalRBAModel.g:4396:3: ( rule__COperationFeatureCall__Group_1_1_0_0_21__0 )
+ // InternalRBAModel.g:4396:4: rule__COperationFeatureCall__Group_1_1_0_0_21__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_21__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_21());
+ }
+
+ }
+
+
+ }
+ break;
+ case 23 :
+ // InternalRBAModel.g:4400:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_22__0 ) )
+ {
+ // InternalRBAModel.g:4400:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_22__0 ) )
+ // InternalRBAModel.g:4401:3: ( rule__COperationFeatureCall__Group_1_1_0_0_22__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_22());
+ }
+ // InternalRBAModel.g:4402:3: ( rule__COperationFeatureCall__Group_1_1_0_0_22__0 )
+ // InternalRBAModel.g:4402:4: rule__COperationFeatureCall__Group_1_1_0_0_22__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_22__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_22());
+ }
+
+ }
+
+
+ }
+ break;
+ case 24 :
+ // InternalRBAModel.g:4406:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_23__0 ) )
+ {
+ // InternalRBAModel.g:4406:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_23__0 ) )
+ // InternalRBAModel.g:4407:3: ( rule__COperationFeatureCall__Group_1_1_0_0_23__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_23());
+ }
+ // InternalRBAModel.g:4408:3: ( rule__COperationFeatureCall__Group_1_1_0_0_23__0 )
+ // InternalRBAModel.g:4408:4: rule__COperationFeatureCall__Group_1_1_0_0_23__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_23__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_23());
+ }
+
+ }
+
+
+ }
+ break;
+ case 25 :
+ // InternalRBAModel.g:4412:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_24__0 ) )
+ {
+ // InternalRBAModel.g:4412:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_24__0 ) )
+ // InternalRBAModel.g:4413:3: ( rule__COperationFeatureCall__Group_1_1_0_0_24__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_24());
+ }
+ // InternalRBAModel.g:4414:3: ( rule__COperationFeatureCall__Group_1_1_0_0_24__0 )
+ // InternalRBAModel.g:4414:4: rule__COperationFeatureCall__Group_1_1_0_0_24__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_24__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_24());
+ }
+
+ }
+
+
+ }
+ break;
+ case 26 :
+ // InternalRBAModel.g:4418:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_25__0 ) )
+ {
+ // InternalRBAModel.g:4418:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_25__0 ) )
+ // InternalRBAModel.g:4419:3: ( rule__COperationFeatureCall__Group_1_1_0_0_25__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_25());
+ }
+ // InternalRBAModel.g:4420:3: ( rule__COperationFeatureCall__Group_1_1_0_0_25__0 )
+ // InternalRBAModel.g:4420:4: rule__COperationFeatureCall__Group_1_1_0_0_25__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_25__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_25());
+ }
+
+ }
+
+
+ }
+ break;
+ case 27 :
+ // InternalRBAModel.g:4424:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_26__0 ) )
+ {
+ // InternalRBAModel.g:4424:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_26__0 ) )
+ // InternalRBAModel.g:4425:3: ( rule__COperationFeatureCall__Group_1_1_0_0_26__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_26());
+ }
+ // InternalRBAModel.g:4426:3: ( rule__COperationFeatureCall__Group_1_1_0_0_26__0 )
+ // InternalRBAModel.g:4426:4: rule__COperationFeatureCall__Group_1_1_0_0_26__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_26__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_26());
+ }
+
+ }
+
+
+ }
+ break;
+ case 28 :
+ // InternalRBAModel.g:4430:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_27__0 ) )
+ {
+ // InternalRBAModel.g:4430:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_27__0 ) )
+ // InternalRBAModel.g:4431:3: ( rule__COperationFeatureCall__Group_1_1_0_0_27__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_27());
+ }
+ // InternalRBAModel.g:4432:3: ( rule__COperationFeatureCall__Group_1_1_0_0_27__0 )
+ // InternalRBAModel.g:4432:4: rule__COperationFeatureCall__Group_1_1_0_0_27__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_27__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_27());
+ }
+
+ }
+
+
+ }
+ break;
+ case 29 :
+ // InternalRBAModel.g:4436:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_28__0 ) )
+ {
+ // InternalRBAModel.g:4436:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_28__0 ) )
+ // InternalRBAModel.g:4437:3: ( rule__COperationFeatureCall__Group_1_1_0_0_28__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_28());
+ }
+ // InternalRBAModel.g:4438:3: ( rule__COperationFeatureCall__Group_1_1_0_0_28__0 )
+ // InternalRBAModel.g:4438:4: rule__COperationFeatureCall__Group_1_1_0_0_28__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_28__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_28());
+ }
+
+ }
+
+
+ }
+ break;
+ case 30 :
+ // InternalRBAModel.g:4442:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_29__0 ) )
+ {
+ // InternalRBAModel.g:4442:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_29__0 ) )
+ // InternalRBAModel.g:4443:3: ( rule__COperationFeatureCall__Group_1_1_0_0_29__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_29());
+ }
+ // InternalRBAModel.g:4444:3: ( rule__COperationFeatureCall__Group_1_1_0_0_29__0 )
+ // InternalRBAModel.g:4444:4: rule__COperationFeatureCall__Group_1_1_0_0_29__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_29__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_29());
+ }
+
+ }
+
+
+ }
+ break;
+ case 31 :
+ // InternalRBAModel.g:4448:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_30__0 ) )
+ {
+ // InternalRBAModel.g:4448:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_30__0 ) )
+ // InternalRBAModel.g:4449:3: ( rule__COperationFeatureCall__Group_1_1_0_0_30__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_30());
+ }
+ // InternalRBAModel.g:4450:3: ( rule__COperationFeatureCall__Group_1_1_0_0_30__0 )
+ // InternalRBAModel.g:4450:4: rule__COperationFeatureCall__Group_1_1_0_0_30__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_30__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_30());
+ }
+
+ }
+
+
+ }
+ break;
+ case 32 :
+ // InternalRBAModel.g:4454:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_31__0 ) )
+ {
+ // InternalRBAModel.g:4454:2: ( ( rule__COperationFeatureCall__Group_1_1_0_0_31__0 ) )
+ // InternalRBAModel.g:4455:3: ( rule__COperationFeatureCall__Group_1_1_0_0_31__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_31());
+ }
+ // InternalRBAModel.g:4456:3: ( rule__COperationFeatureCall__Group_1_1_0_0_31__0 )
+ // InternalRBAModel.g:4456:4: rule__COperationFeatureCall__Group_1_1_0_0_31__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_31__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_0_31());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Alternatives_1_1_0_0"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Alternatives_1_1_2"
+ // InternalRBAModel.g:4464:1: rule__COperationFeatureCall__Alternatives_1_1_2 : ( ( ( rule__COperationFeatureCall__Group_1_1_2_0__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_2_1__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_2_2__0 ) ) );
+ public final void rule__COperationFeatureCall__Alternatives_1_1_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:4468:1: ( ( ( rule__COperationFeatureCall__Group_1_1_2_0__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_2_1__0 ) ) | ( ( rule__COperationFeatureCall__Group_1_1_2_2__0 ) ) )
+ int alt26=3;
+ switch ( input.LA(1) ) {
+ case 64:
+ {
+ alt26=1;
+ }
+ break;
+ case 65:
+ {
+ alt26=2;
+ }
+ break;
+ case 66:
+ {
+ alt26=3;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 26, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt26) {
+ case 1 :
+ // InternalRBAModel.g:4469:2: ( ( rule__COperationFeatureCall__Group_1_1_2_0__0 ) )
+ {
+ // InternalRBAModel.g:4469:2: ( ( rule__COperationFeatureCall__Group_1_1_2_0__0 ) )
+ // InternalRBAModel.g:4470:3: ( rule__COperationFeatureCall__Group_1_1_2_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_2_0());
+ }
+ // InternalRBAModel.g:4471:3: ( rule__COperationFeatureCall__Group_1_1_2_0__0 )
+ // InternalRBAModel.g:4471:4: rule__COperationFeatureCall__Group_1_1_2_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_2_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_2_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:4475:2: ( ( rule__COperationFeatureCall__Group_1_1_2_1__0 ) )
+ {
+ // InternalRBAModel.g:4475:2: ( ( rule__COperationFeatureCall__Group_1_1_2_1__0 ) )
+ // InternalRBAModel.g:4476:3: ( rule__COperationFeatureCall__Group_1_1_2_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_2_1());
+ }
+ // InternalRBAModel.g:4477:3: ( rule__COperationFeatureCall__Group_1_1_2_1__0 )
+ // InternalRBAModel.g:4477:4: rule__COperationFeatureCall__Group_1_1_2_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_2_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_2_1());
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:4481:2: ( ( rule__COperationFeatureCall__Group_1_1_2_2__0 ) )
+ {
+ // InternalRBAModel.g:4481:2: ( ( rule__COperationFeatureCall__Group_1_1_2_2__0 ) )
+ // InternalRBAModel.g:4482:3: ( rule__COperationFeatureCall__Group_1_1_2_2__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_2_2());
+ }
+ // InternalRBAModel.g:4483:3: ( rule__COperationFeatureCall__Group_1_1_2_2__0 )
+ // InternalRBAModel.g:4483:4: rule__COperationFeatureCall__Group_1_1_2_2__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_2_2__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_2_2());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Alternatives_1_1_2"
+
+
+ // $ANTLR start "rule__CPrimaryExpression__Alternatives"
+ // InternalRBAModel.g:4491:1: rule__CPrimaryExpression__Alternatives : ( ( ruleCMemberFeatureReference ) | ( rulePreviousModifier ) | ( ruleAllInstanceOfExpression ) | ( ruleNullExpression ) | ( ruleIntegerValue ) | ( ruleMuteLowerPriority ) | ( ruleHideLowerPriority ) | ( ruleSetOfOperator ) | ( ruleIfStatement ) | ( ruleForAllOperator ) | ( ruleExistsOperator ) | ( ( rule__CPrimaryExpression__Group_11__0 ) ) );
+ public final void rule__CPrimaryExpression__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:4495:1: ( ( ruleCMemberFeatureReference ) | ( rulePreviousModifier ) | ( ruleAllInstanceOfExpression ) | ( ruleNullExpression ) | ( ruleIntegerValue ) | ( ruleMuteLowerPriority ) | ( ruleHideLowerPriority ) | ( ruleSetOfOperator ) | ( ruleIfStatement ) | ( ruleForAllOperator ) | ( ruleExistsOperator ) | ( ( rule__CPrimaryExpression__Group_11__0 ) ) )
+ int alt27=12;
+ switch ( input.LA(1) ) {
+ case RULE_ID:
+ case 76:
+ {
+ alt27=1;
+ }
+ break;
+ case 145:
+ {
+ alt27=2;
+ }
+ break;
+ case 140:
+ case 141:
+ case 142:
+ case 143:
+ {
+ alt27=3;
+ }
+ break;
+ case 144:
+ {
+ alt27=4;
+ }
+ break;
+ case RULE_INT:
+ case 166:
+ {
+ alt27=5;
+ }
+ break;
+ case 147:
+ {
+ alt27=6;
+ }
+ break;
+ case 146:
+ {
+ alt27=7;
+ }
+ break;
+ case 101:
+ {
+ alt27=8;
+ }
+ break;
+ case 148:
+ {
+ alt27=9;
+ }
+ break;
+ case 151:
+ {
+ alt27=10;
+ }
+ break;
+ case 152:
+ {
+ alt27=11;
+ }
+ break;
+ case 107:
+ {
+ alt27=12;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 27, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt27) {
+ case 1 :
+ // InternalRBAModel.g:4496:2: ( ruleCMemberFeatureReference )
+ {
+ // InternalRBAModel.g:4496:2: ( ruleCMemberFeatureReference )
+ // InternalRBAModel.g:4497:3: ruleCMemberFeatureReference
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCPrimaryExpressionAccess().getCMemberFeatureReferenceParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleCMemberFeatureReference();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCPrimaryExpressionAccess().getCMemberFeatureReferenceParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:4502:2: ( rulePreviousModifier )
+ {
+ // InternalRBAModel.g:4502:2: ( rulePreviousModifier )
+ // InternalRBAModel.g:4503:3: rulePreviousModifier
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCPrimaryExpressionAccess().getPreviousModifierParserRuleCall_1());
+ }
+ pushFollow(FOLLOW_2);
+ rulePreviousModifier();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCPrimaryExpressionAccess().getPreviousModifierParserRuleCall_1());
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:4508:2: ( ruleAllInstanceOfExpression )
+ {
+ // InternalRBAModel.g:4508:2: ( ruleAllInstanceOfExpression )
+ // InternalRBAModel.g:4509:3: ruleAllInstanceOfExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCPrimaryExpressionAccess().getAllInstanceOfExpressionParserRuleCall_2());
+ }
+ pushFollow(FOLLOW_2);
+ ruleAllInstanceOfExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCPrimaryExpressionAccess().getAllInstanceOfExpressionParserRuleCall_2());
+ }
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // InternalRBAModel.g:4514:2: ( ruleNullExpression )
+ {
+ // InternalRBAModel.g:4514:2: ( ruleNullExpression )
+ // InternalRBAModel.g:4515:3: ruleNullExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCPrimaryExpressionAccess().getNullExpressionParserRuleCall_3());
+ }
+ pushFollow(FOLLOW_2);
+ ruleNullExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCPrimaryExpressionAccess().getNullExpressionParserRuleCall_3());
+ }
+
+ }
+
+
+ }
+ break;
+ case 5 :
+ // InternalRBAModel.g:4520:2: ( ruleIntegerValue )
+ {
+ // InternalRBAModel.g:4520:2: ( ruleIntegerValue )
+ // InternalRBAModel.g:4521:3: ruleIntegerValue
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCPrimaryExpressionAccess().getIntegerValueParserRuleCall_4());
+ }
+ pushFollow(FOLLOW_2);
+ ruleIntegerValue();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCPrimaryExpressionAccess().getIntegerValueParserRuleCall_4());
+ }
+
+ }
+
+
+ }
+ break;
+ case 6 :
+ // InternalRBAModel.g:4526:2: ( ruleMuteLowerPriority )
+ {
+ // InternalRBAModel.g:4526:2: ( ruleMuteLowerPriority )
+ // InternalRBAModel.g:4527:3: ruleMuteLowerPriority
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCPrimaryExpressionAccess().getMuteLowerPriorityParserRuleCall_5());
+ }
+ pushFollow(FOLLOW_2);
+ ruleMuteLowerPriority();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCPrimaryExpressionAccess().getMuteLowerPriorityParserRuleCall_5());
+ }
+
+ }
+
+
+ }
+ break;
+ case 7 :
+ // InternalRBAModel.g:4532:2: ( ruleHideLowerPriority )
+ {
+ // InternalRBAModel.g:4532:2: ( ruleHideLowerPriority )
+ // InternalRBAModel.g:4533:3: ruleHideLowerPriority
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCPrimaryExpressionAccess().getHideLowerPriorityParserRuleCall_6());
+ }
+ pushFollow(FOLLOW_2);
+ ruleHideLowerPriority();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCPrimaryExpressionAccess().getHideLowerPriorityParserRuleCall_6());
+ }
+
+ }
+
+
+ }
+ break;
+ case 8 :
+ // InternalRBAModel.g:4538:2: ( ruleSetOfOperator )
+ {
+ // InternalRBAModel.g:4538:2: ( ruleSetOfOperator )
+ // InternalRBAModel.g:4539:3: ruleSetOfOperator
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCPrimaryExpressionAccess().getSetOfOperatorParserRuleCall_7());
+ }
+ pushFollow(FOLLOW_2);
+ ruleSetOfOperator();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCPrimaryExpressionAccess().getSetOfOperatorParserRuleCall_7());
+ }
+
+ }
+
+
+ }
+ break;
+ case 9 :
+ // InternalRBAModel.g:4544:2: ( ruleIfStatement )
+ {
+ // InternalRBAModel.g:4544:2: ( ruleIfStatement )
+ // InternalRBAModel.g:4545:3: ruleIfStatement
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCPrimaryExpressionAccess().getIfStatementParserRuleCall_8());
+ }
+ pushFollow(FOLLOW_2);
+ ruleIfStatement();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCPrimaryExpressionAccess().getIfStatementParserRuleCall_8());
+ }
+
+ }
+
+
+ }
+ break;
+ case 10 :
+ // InternalRBAModel.g:4550:2: ( ruleForAllOperator )
+ {
+ // InternalRBAModel.g:4550:2: ( ruleForAllOperator )
+ // InternalRBAModel.g:4551:3: ruleForAllOperator
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCPrimaryExpressionAccess().getForAllOperatorParserRuleCall_9());
+ }
+ pushFollow(FOLLOW_2);
+ ruleForAllOperator();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCPrimaryExpressionAccess().getForAllOperatorParserRuleCall_9());
+ }
+
+ }
+
+
+ }
+ break;
+ case 11 :
+ // InternalRBAModel.g:4556:2: ( ruleExistsOperator )
+ {
+ // InternalRBAModel.g:4556:2: ( ruleExistsOperator )
+ // InternalRBAModel.g:4557:3: ruleExistsOperator
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCPrimaryExpressionAccess().getExistsOperatorParserRuleCall_10());
+ }
+ pushFollow(FOLLOW_2);
+ ruleExistsOperator();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCPrimaryExpressionAccess().getExistsOperatorParserRuleCall_10());
+ }
+
+ }
+
+
+ }
+ break;
+ case 12 :
+ // InternalRBAModel.g:4562:2: ( ( rule__CPrimaryExpression__Group_11__0 ) )
+ {
+ // InternalRBAModel.g:4562:2: ( ( rule__CPrimaryExpression__Group_11__0 ) )
+ // InternalRBAModel.g:4563:3: ( rule__CPrimaryExpression__Group_11__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCPrimaryExpressionAccess().getGroup_11());
+ }
+ // InternalRBAModel.g:4564:3: ( rule__CPrimaryExpression__Group_11__0 )
+ // InternalRBAModel.g:4564:4: rule__CPrimaryExpression__Group_11__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__CPrimaryExpression__Group_11__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCPrimaryExpressionAccess().getGroup_11());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CPrimaryExpression__Alternatives"
+
+
+ // $ANTLR start "rule__AllInstanceOfExpression__Alternatives_0"
+ // InternalRBAModel.g:4572:1: rule__AllInstanceOfExpression__Alternatives_0 : ( ( ( rule__AllInstanceOfExpression__Group_0_0__0 ) ) | ( ( rule__AllInstanceOfExpression__Group_0_1__0 ) ) | ( ( rule__AllInstanceOfExpression__Group_0_2__0 ) ) | ( ( rule__AllInstanceOfExpression__Group_0_3__0 ) ) );
+ public final void rule__AllInstanceOfExpression__Alternatives_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:4576:1: ( ( ( rule__AllInstanceOfExpression__Group_0_0__0 ) ) | ( ( rule__AllInstanceOfExpression__Group_0_1__0 ) ) | ( ( rule__AllInstanceOfExpression__Group_0_2__0 ) ) | ( ( rule__AllInstanceOfExpression__Group_0_3__0 ) ) )
+ int alt28=4;
+ switch ( input.LA(1) ) {
+ case 140:
+ {
+ alt28=1;
+ }
+ break;
+ case 141:
+ {
+ alt28=2;
+ }
+ break;
+ case 142:
+ {
+ alt28=3;
+ }
+ break;
+ case 143:
+ {
+ alt28=4;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 28, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt28) {
+ case 1 :
+ // InternalRBAModel.g:4577:2: ( ( rule__AllInstanceOfExpression__Group_0_0__0 ) )
+ {
+ // InternalRBAModel.g:4577:2: ( ( rule__AllInstanceOfExpression__Group_0_0__0 ) )
+ // InternalRBAModel.g:4578:3: ( rule__AllInstanceOfExpression__Group_0_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAllInstanceOfExpressionAccess().getGroup_0_0());
+ }
+ // InternalRBAModel.g:4579:3: ( rule__AllInstanceOfExpression__Group_0_0__0 )
+ // InternalRBAModel.g:4579:4: rule__AllInstanceOfExpression__Group_0_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__AllInstanceOfExpression__Group_0_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAllInstanceOfExpressionAccess().getGroup_0_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:4583:2: ( ( rule__AllInstanceOfExpression__Group_0_1__0 ) )
+ {
+ // InternalRBAModel.g:4583:2: ( ( rule__AllInstanceOfExpression__Group_0_1__0 ) )
+ // InternalRBAModel.g:4584:3: ( rule__AllInstanceOfExpression__Group_0_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAllInstanceOfExpressionAccess().getGroup_0_1());
+ }
+ // InternalRBAModel.g:4585:3: ( rule__AllInstanceOfExpression__Group_0_1__0 )
+ // InternalRBAModel.g:4585:4: rule__AllInstanceOfExpression__Group_0_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__AllInstanceOfExpression__Group_0_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAllInstanceOfExpressionAccess().getGroup_0_1());
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:4589:2: ( ( rule__AllInstanceOfExpression__Group_0_2__0 ) )
+ {
+ // InternalRBAModel.g:4589:2: ( ( rule__AllInstanceOfExpression__Group_0_2__0 ) )
+ // InternalRBAModel.g:4590:3: ( rule__AllInstanceOfExpression__Group_0_2__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAllInstanceOfExpressionAccess().getGroup_0_2());
+ }
+ // InternalRBAModel.g:4591:3: ( rule__AllInstanceOfExpression__Group_0_2__0 )
+ // InternalRBAModel.g:4591:4: rule__AllInstanceOfExpression__Group_0_2__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__AllInstanceOfExpression__Group_0_2__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAllInstanceOfExpressionAccess().getGroup_0_2());
+ }
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // InternalRBAModel.g:4595:2: ( ( rule__AllInstanceOfExpression__Group_0_3__0 ) )
+ {
+ // InternalRBAModel.g:4595:2: ( ( rule__AllInstanceOfExpression__Group_0_3__0 ) )
+ // InternalRBAModel.g:4596:3: ( rule__AllInstanceOfExpression__Group_0_3__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAllInstanceOfExpressionAccess().getGroup_0_3());
+ }
+ // InternalRBAModel.g:4597:3: ( rule__AllInstanceOfExpression__Group_0_3__0 )
+ // InternalRBAModel.g:4597:4: rule__AllInstanceOfExpression__Group_0_3__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__AllInstanceOfExpression__Group_0_3__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAllInstanceOfExpressionAccess().getGroup_0_3());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AllInstanceOfExpression__Alternatives_0"
+
+
+ // $ANTLR start "rule__EBoolean__Alternatives"
+ // InternalRBAModel.g:4605:1: rule__EBoolean__Alternatives : ( ( 'true' ) | ( 'false' ) );
+ public final void rule__EBoolean__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:4609:1: ( ( 'true' ) | ( 'false' ) )
+ int alt29=2;
+ int LA29_0 = input.LA(1);
+
+ if ( (LA29_0==74) ) {
+ alt29=1;
+ }
+ else if ( (LA29_0==75) ) {
+ alt29=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 29, 0, input);
+
+ throw nvae;
+ }
+ switch (alt29) {
+ case 1 :
+ // InternalRBAModel.g:4610:2: ( 'true' )
+ {
+ // InternalRBAModel.g:4610:2: ( 'true' )
+ // InternalRBAModel.g:4611:3: 'true'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getEBooleanAccess().getTrueKeyword_0());
+ }
+ match(input,74,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getEBooleanAccess().getTrueKeyword_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:4616:2: ( 'false' )
+ {
+ // InternalRBAModel.g:4616:2: ( 'false' )
+ // InternalRBAModel.g:4617:3: 'false'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getEBooleanAccess().getFalseKeyword_1());
+ }
+ match(input,75,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getEBooleanAccess().getFalseKeyword_1());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__EBoolean__Alternatives"
+
+
+ // $ANTLR start "rule__IdOrThis__Alternatives"
+ // InternalRBAModel.g:4626:1: rule__IdOrThis__Alternatives : ( ( ruleValidID ) | ( 'this' ) );
+ public final void rule__IdOrThis__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:4630:1: ( ( ruleValidID ) | ( 'this' ) )
+ int alt30=2;
+ int LA30_0 = input.LA(1);
+
+ if ( (LA30_0==RULE_ID) ) {
+ alt30=1;
+ }
+ else if ( (LA30_0==76) ) {
+ alt30=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 30, 0, input);
+
+ throw nvae;
+ }
+ switch (alt30) {
+ case 1 :
+ // InternalRBAModel.g:4631:2: ( ruleValidID )
+ {
+ // InternalRBAModel.g:4631:2: ( ruleValidID )
+ // InternalRBAModel.g:4632:3: ruleValidID
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getIdOrThisAccess().getValidIDParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleValidID();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getIdOrThisAccess().getValidIDParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:4637:2: ( 'this' )
+ {
+ // InternalRBAModel.g:4637:2: ( 'this' )
+ // InternalRBAModel.g:4638:3: 'this'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getIdOrThisAccess().getThisKeyword_1());
+ }
+ match(input,76,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getIdOrThisAccess().getThisKeyword_1());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__IdOrThis__Alternatives"
+
+
+ // $ANTLR start "rule__ContentOperatorsCommon__Alternatives"
+ // InternalRBAModel.g:4647:1: rule__ContentOperatorsCommon__Alternatives : ( ( ruleOpIsActive ) | ( ruleOpGetAllocatables ) | ( ruleOpIsVisible ) | ( ruleOpHasComeEarlierThan ) | ( ruleOpHasComeLaterThan ) | ( ruleOpStateValue ) | ( ruleOpIsAllocatedTo ) | ( ruleOpIsDisplayedOn ) );
+ public final void rule__ContentOperatorsCommon__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:4651:1: ( ( ruleOpIsActive ) | ( ruleOpGetAllocatables ) | ( ruleOpIsVisible ) | ( ruleOpHasComeEarlierThan ) | ( ruleOpHasComeLaterThan ) | ( ruleOpStateValue ) | ( ruleOpIsAllocatedTo ) | ( ruleOpIsDisplayedOn ) )
+ int alt31=8;
+ switch ( input.LA(1) ) {
+ case 35:
+ {
+ alt31=1;
+ }
+ break;
+ case 36:
+ {
+ alt31=2;
+ }
+ break;
+ case 41:
+ {
+ alt31=3;
+ }
+ break;
+ case 47:
+ {
+ alt31=4;
+ }
+ break;
+ case 48:
+ {
+ alt31=5;
+ }
+ break;
+ case 49:
+ {
+ alt31=6;
+ }
+ break;
+ case 50:
+ {
+ alt31=7;
+ }
+ break;
+ case 53:
+ {
+ alt31=8;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 31, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt31) {
+ case 1 :
+ // InternalRBAModel.g:4652:2: ( ruleOpIsActive )
+ {
+ // InternalRBAModel.g:4652:2: ( ruleOpIsActive )
+ // InternalRBAModel.g:4653:3: ruleOpIsActive
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getContentOperatorsCommonAccess().getOpIsActiveParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpIsActive();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getContentOperatorsCommonAccess().getOpIsActiveParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:4658:2: ( ruleOpGetAllocatables )
+ {
+ // InternalRBAModel.g:4658:2: ( ruleOpGetAllocatables )
+ // InternalRBAModel.g:4659:3: ruleOpGetAllocatables
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getContentOperatorsCommonAccess().getOpGetAllocatablesParserRuleCall_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpGetAllocatables();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getContentOperatorsCommonAccess().getOpGetAllocatablesParserRuleCall_1());
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:4664:2: ( ruleOpIsVisible )
+ {
+ // InternalRBAModel.g:4664:2: ( ruleOpIsVisible )
+ // InternalRBAModel.g:4665:3: ruleOpIsVisible
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getContentOperatorsCommonAccess().getOpIsVisibleParserRuleCall_2());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpIsVisible();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getContentOperatorsCommonAccess().getOpIsVisibleParserRuleCall_2());
+ }
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // InternalRBAModel.g:4670:2: ( ruleOpHasComeEarlierThan )
+ {
+ // InternalRBAModel.g:4670:2: ( ruleOpHasComeEarlierThan )
+ // InternalRBAModel.g:4671:3: ruleOpHasComeEarlierThan
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getContentOperatorsCommonAccess().getOpHasComeEarlierThanParserRuleCall_3());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpHasComeEarlierThan();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getContentOperatorsCommonAccess().getOpHasComeEarlierThanParserRuleCall_3());
+ }
+
+ }
+
+
+ }
+ break;
+ case 5 :
+ // InternalRBAModel.g:4676:2: ( ruleOpHasComeLaterThan )
+ {
+ // InternalRBAModel.g:4676:2: ( ruleOpHasComeLaterThan )
+ // InternalRBAModel.g:4677:3: ruleOpHasComeLaterThan
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getContentOperatorsCommonAccess().getOpHasComeLaterThanParserRuleCall_4());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpHasComeLaterThan();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getContentOperatorsCommonAccess().getOpHasComeLaterThanParserRuleCall_4());
+ }
+
+ }
+
+
+ }
+ break;
+ case 6 :
+ // InternalRBAModel.g:4682:2: ( ruleOpStateValue )
+ {
+ // InternalRBAModel.g:4682:2: ( ruleOpStateValue )
+ // InternalRBAModel.g:4683:3: ruleOpStateValue
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getContentOperatorsCommonAccess().getOpStateValueParserRuleCall_5());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpStateValue();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getContentOperatorsCommonAccess().getOpStateValueParserRuleCall_5());
+ }
+
+ }
+
+
+ }
+ break;
+ case 7 :
+ // InternalRBAModel.g:4688:2: ( ruleOpIsAllocatedTo )
+ {
+ // InternalRBAModel.g:4688:2: ( ruleOpIsAllocatedTo )
+ // InternalRBAModel.g:4689:3: ruleOpIsAllocatedTo
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getContentOperatorsCommonAccess().getOpIsAllocatedToParserRuleCall_6());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpIsAllocatedTo();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getContentOperatorsCommonAccess().getOpIsAllocatedToParserRuleCall_6());
+ }
+
+ }
+
+
+ }
+ break;
+ case 8 :
+ // InternalRBAModel.g:4694:2: ( ruleOpIsDisplayedOn )
+ {
+ // InternalRBAModel.g:4694:2: ( ruleOpIsDisplayedOn )
+ // InternalRBAModel.g:4695:3: ruleOpIsDisplayedOn
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getContentOperatorsCommonAccess().getOpIsDisplayedOnParserRuleCall_7());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpIsDisplayedOn();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getContentOperatorsCommonAccess().getOpIsDisplayedOnParserRuleCall_7());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ContentOperatorsCommon__Alternatives"
+
+
+ // $ANTLR start "rule__SoundOperatorsCommon__Alternatives"
+ // InternalRBAModel.g:4704:1: rule__SoundOperatorsCommon__Alternatives : ( ( ruleOpIsActive ) | ( ruleOpGetAllocatables ) | ( ruleOpIsSounding ) | ( ruleOpHasComeEarlierThan ) | ( ruleOpHasComeLaterThan ) | ( ruleOpStateValue ) | ( ruleOpIsAllocatedTo ) | ( ruleOpIsOutputtedOn ) );
+ public final void rule__SoundOperatorsCommon__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:4708:1: ( ( ruleOpIsActive ) | ( ruleOpGetAllocatables ) | ( ruleOpIsSounding ) | ( ruleOpHasComeEarlierThan ) | ( ruleOpHasComeLaterThan ) | ( ruleOpStateValue ) | ( ruleOpIsAllocatedTo ) | ( ruleOpIsOutputtedOn ) )
+ int alt32=8;
+ switch ( input.LA(1) ) {
+ case 35:
+ {
+ alt32=1;
+ }
+ break;
+ case 36:
+ {
+ alt32=2;
+ }
+ break;
+ case 45:
+ {
+ alt32=3;
+ }
+ break;
+ case 47:
+ {
+ alt32=4;
+ }
+ break;
+ case 48:
+ {
+ alt32=5;
+ }
+ break;
+ case 49:
+ {
+ alt32=6;
+ }
+ break;
+ case 50:
+ {
+ alt32=7;
+ }
+ break;
+ case 56:
+ {
+ alt32=8;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 32, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt32) {
+ case 1 :
+ // InternalRBAModel.g:4709:2: ( ruleOpIsActive )
+ {
+ // InternalRBAModel.g:4709:2: ( ruleOpIsActive )
+ // InternalRBAModel.g:4710:3: ruleOpIsActive
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundOperatorsCommonAccess().getOpIsActiveParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpIsActive();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundOperatorsCommonAccess().getOpIsActiveParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:4715:2: ( ruleOpGetAllocatables )
+ {
+ // InternalRBAModel.g:4715:2: ( ruleOpGetAllocatables )
+ // InternalRBAModel.g:4716:3: ruleOpGetAllocatables
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundOperatorsCommonAccess().getOpGetAllocatablesParserRuleCall_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpGetAllocatables();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundOperatorsCommonAccess().getOpGetAllocatablesParserRuleCall_1());
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:4721:2: ( ruleOpIsSounding )
+ {
+ // InternalRBAModel.g:4721:2: ( ruleOpIsSounding )
+ // InternalRBAModel.g:4722:3: ruleOpIsSounding
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundOperatorsCommonAccess().getOpIsSoundingParserRuleCall_2());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpIsSounding();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundOperatorsCommonAccess().getOpIsSoundingParserRuleCall_2());
+ }
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // InternalRBAModel.g:4727:2: ( ruleOpHasComeEarlierThan )
+ {
+ // InternalRBAModel.g:4727:2: ( ruleOpHasComeEarlierThan )
+ // InternalRBAModel.g:4728:3: ruleOpHasComeEarlierThan
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundOperatorsCommonAccess().getOpHasComeEarlierThanParserRuleCall_3());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpHasComeEarlierThan();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundOperatorsCommonAccess().getOpHasComeEarlierThanParserRuleCall_3());
+ }
+
+ }
+
+
+ }
+ break;
+ case 5 :
+ // InternalRBAModel.g:4733:2: ( ruleOpHasComeLaterThan )
+ {
+ // InternalRBAModel.g:4733:2: ( ruleOpHasComeLaterThan )
+ // InternalRBAModel.g:4734:3: ruleOpHasComeLaterThan
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundOperatorsCommonAccess().getOpHasComeLaterThanParserRuleCall_4());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpHasComeLaterThan();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundOperatorsCommonAccess().getOpHasComeLaterThanParserRuleCall_4());
+ }
+
+ }
+
+
+ }
+ break;
+ case 6 :
+ // InternalRBAModel.g:4739:2: ( ruleOpStateValue )
+ {
+ // InternalRBAModel.g:4739:2: ( ruleOpStateValue )
+ // InternalRBAModel.g:4740:3: ruleOpStateValue
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundOperatorsCommonAccess().getOpStateValueParserRuleCall_5());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpStateValue();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundOperatorsCommonAccess().getOpStateValueParserRuleCall_5());
+ }
+
+ }
+
+
+ }
+ break;
+ case 7 :
+ // InternalRBAModel.g:4745:2: ( ruleOpIsAllocatedTo )
+ {
+ // InternalRBAModel.g:4745:2: ( ruleOpIsAllocatedTo )
+ // InternalRBAModel.g:4746:3: ruleOpIsAllocatedTo
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundOperatorsCommonAccess().getOpIsAllocatedToParserRuleCall_6());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpIsAllocatedTo();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundOperatorsCommonAccess().getOpIsAllocatedToParserRuleCall_6());
+ }
+
+ }
+
+
+ }
+ break;
+ case 8 :
+ // InternalRBAModel.g:4751:2: ( ruleOpIsOutputtedOn )
+ {
+ // InternalRBAModel.g:4751:2: ( ruleOpIsOutputtedOn )
+ // InternalRBAModel.g:4752:3: ruleOpIsOutputtedOn
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundOperatorsCommonAccess().getOpIsOutputtedOnParserRuleCall_7());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpIsOutputtedOn();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundOperatorsCommonAccess().getOpIsOutputtedOnParserRuleCall_7());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundOperatorsCommon__Alternatives"
+
+
+ // $ANTLR start "rule__ArbitrationPolicy__Alternatives"
+ // InternalRBAModel.g:4761:1: rule__ArbitrationPolicy__Alternatives : ( ( ( 'DEFAULT' ) ) | ( ( 'FIRST_COME_FIRST' ) ) | ( ( 'LAST_COME_FIRST' ) ) | ( ( 'PRIORITY_FIRST_COME_FIRST' ) ) | ( ( 'PRIORITY_LAST_COME_FIRST' ) ) );
+ public final void rule__ArbitrationPolicy__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:4765:1: ( ( ( 'DEFAULT' ) ) | ( ( 'FIRST_COME_FIRST' ) ) | ( ( 'LAST_COME_FIRST' ) ) | ( ( 'PRIORITY_FIRST_COME_FIRST' ) ) | ( ( 'PRIORITY_LAST_COME_FIRST' ) ) )
+ int alt33=5;
+ switch ( input.LA(1) ) {
+ case 77:
+ {
+ alt33=1;
+ }
+ break;
+ case 78:
+ {
+ alt33=2;
+ }
+ break;
+ case 79:
+ {
+ alt33=3;
+ }
+ break;
+ case 80:
+ {
+ alt33=4;
+ }
+ break;
+ case 81:
+ {
+ alt33=5;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 33, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt33) {
+ case 1 :
+ // InternalRBAModel.g:4766:2: ( ( 'DEFAULT' ) )
+ {
+ // InternalRBAModel.g:4766:2: ( ( 'DEFAULT' ) )
+ // InternalRBAModel.g:4767:3: ( 'DEFAULT' )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getArbitrationPolicyAccess().getDEFAULTEnumLiteralDeclaration_0());
+ }
+ // InternalRBAModel.g:4768:3: ( 'DEFAULT' )
+ // InternalRBAModel.g:4768:4: 'DEFAULT'
+ {
+ match(input,77,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getArbitrationPolicyAccess().getDEFAULTEnumLiteralDeclaration_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:4772:2: ( ( 'FIRST_COME_FIRST' ) )
+ {
+ // InternalRBAModel.g:4772:2: ( ( 'FIRST_COME_FIRST' ) )
+ // InternalRBAModel.g:4773:3: ( 'FIRST_COME_FIRST' )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getArbitrationPolicyAccess().getFIRST_COME_FIRSTEnumLiteralDeclaration_1());
+ }
+ // InternalRBAModel.g:4774:3: ( 'FIRST_COME_FIRST' )
+ // InternalRBAModel.g:4774:4: 'FIRST_COME_FIRST'
+ {
+ match(input,78,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getArbitrationPolicyAccess().getFIRST_COME_FIRSTEnumLiteralDeclaration_1());
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:4778:2: ( ( 'LAST_COME_FIRST' ) )
+ {
+ // InternalRBAModel.g:4778:2: ( ( 'LAST_COME_FIRST' ) )
+ // InternalRBAModel.g:4779:3: ( 'LAST_COME_FIRST' )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getArbitrationPolicyAccess().getLAST_COME_FIRSTEnumLiteralDeclaration_2());
+ }
+ // InternalRBAModel.g:4780:3: ( 'LAST_COME_FIRST' )
+ // InternalRBAModel.g:4780:4: 'LAST_COME_FIRST'
+ {
+ match(input,79,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getArbitrationPolicyAccess().getLAST_COME_FIRSTEnumLiteralDeclaration_2());
+ }
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // InternalRBAModel.g:4784:2: ( ( 'PRIORITY_FIRST_COME_FIRST' ) )
+ {
+ // InternalRBAModel.g:4784:2: ( ( 'PRIORITY_FIRST_COME_FIRST' ) )
+ // InternalRBAModel.g:4785:3: ( 'PRIORITY_FIRST_COME_FIRST' )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getArbitrationPolicyAccess().getPRIORITY_FIRST_COME_FIRSTEnumLiteralDeclaration_3());
+ }
+ // InternalRBAModel.g:4786:3: ( 'PRIORITY_FIRST_COME_FIRST' )
+ // InternalRBAModel.g:4786:4: 'PRIORITY_FIRST_COME_FIRST'
+ {
+ match(input,80,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getArbitrationPolicyAccess().getPRIORITY_FIRST_COME_FIRSTEnumLiteralDeclaration_3());
+ }
+
+ }
+
+
+ }
+ break;
+ case 5 :
+ // InternalRBAModel.g:4790:2: ( ( 'PRIORITY_LAST_COME_FIRST' ) )
+ {
+ // InternalRBAModel.g:4790:2: ( ( 'PRIORITY_LAST_COME_FIRST' ) )
+ // InternalRBAModel.g:4791:3: ( 'PRIORITY_LAST_COME_FIRST' )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getArbitrationPolicyAccess().getPRIORITY_LAST_COME_FIRSTEnumLiteralDeclaration_4());
+ }
+ // InternalRBAModel.g:4792:3: ( 'PRIORITY_LAST_COME_FIRST' )
+ // InternalRBAModel.g:4792:4: 'PRIORITY_LAST_COME_FIRST'
+ {
+ match(input,81,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getArbitrationPolicyAccess().getPRIORITY_LAST_COME_FIRSTEnumLiteralDeclaration_4());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ArbitrationPolicy__Alternatives"
+
+
+ // $ANTLR start "rule__BasePoint__Alternatives"
+ // InternalRBAModel.g:4800:1: rule__BasePoint__Alternatives : ( ( ( 'LEFT_TOP' ) ) | ( ( 'LEFT_MIDDLE' ) ) | ( ( 'LEFT_BOTTOM' ) ) | ( ( 'RIGHT_TOP' ) ) | ( ( 'RIGHT_MIDDLE' ) ) | ( ( 'RIGHT_BOTTOM' ) ) | ( ( 'CENTER_TOP' ) ) | ( ( 'CENTER_MIDDLE' ) ) | ( ( 'CENTER_BOTTOM' ) ) );
+ public final void rule__BasePoint__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:4804:1: ( ( ( 'LEFT_TOP' ) ) | ( ( 'LEFT_MIDDLE' ) ) | ( ( 'LEFT_BOTTOM' ) ) | ( ( 'RIGHT_TOP' ) ) | ( ( 'RIGHT_MIDDLE' ) ) | ( ( 'RIGHT_BOTTOM' ) ) | ( ( 'CENTER_TOP' ) ) | ( ( 'CENTER_MIDDLE' ) ) | ( ( 'CENTER_BOTTOM' ) ) )
+ int alt34=9;
+ switch ( input.LA(1) ) {
+ case 82:
+ {
+ alt34=1;
+ }
+ break;
+ case 83:
+ {
+ alt34=2;
+ }
+ break;
+ case 84:
+ {
+ alt34=3;
+ }
+ break;
+ case 85:
+ {
+ alt34=4;
+ }
+ break;
+ case 86:
+ {
+ alt34=5;
+ }
+ break;
+ case 87:
+ {
+ alt34=6;
+ }
+ break;
+ case 88:
+ {
+ alt34=7;
+ }
+ break;
+ case 89:
+ {
+ alt34=8;
+ }
+ break;
+ case 90:
+ {
+ alt34=9;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 34, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt34) {
+ case 1 :
+ // InternalRBAModel.g:4805:2: ( ( 'LEFT_TOP' ) )
+ {
+ // InternalRBAModel.g:4805:2: ( ( 'LEFT_TOP' ) )
+ // InternalRBAModel.g:4806:3: ( 'LEFT_TOP' )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getBasePointAccess().getLEFT_TOPEnumLiteralDeclaration_0());
+ }
+ // InternalRBAModel.g:4807:3: ( 'LEFT_TOP' )
+ // InternalRBAModel.g:4807:4: 'LEFT_TOP'
+ {
+ match(input,82,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getBasePointAccess().getLEFT_TOPEnumLiteralDeclaration_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:4811:2: ( ( 'LEFT_MIDDLE' ) )
+ {
+ // InternalRBAModel.g:4811:2: ( ( 'LEFT_MIDDLE' ) )
+ // InternalRBAModel.g:4812:3: ( 'LEFT_MIDDLE' )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getBasePointAccess().getLEFT_MIDDLEEnumLiteralDeclaration_1());
+ }
+ // InternalRBAModel.g:4813:3: ( 'LEFT_MIDDLE' )
+ // InternalRBAModel.g:4813:4: 'LEFT_MIDDLE'
+ {
+ match(input,83,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getBasePointAccess().getLEFT_MIDDLEEnumLiteralDeclaration_1());
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:4817:2: ( ( 'LEFT_BOTTOM' ) )
+ {
+ // InternalRBAModel.g:4817:2: ( ( 'LEFT_BOTTOM' ) )
+ // InternalRBAModel.g:4818:3: ( 'LEFT_BOTTOM' )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getBasePointAccess().getLEFT_BOTTOMEnumLiteralDeclaration_2());
+ }
+ // InternalRBAModel.g:4819:3: ( 'LEFT_BOTTOM' )
+ // InternalRBAModel.g:4819:4: 'LEFT_BOTTOM'
+ {
+ match(input,84,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getBasePointAccess().getLEFT_BOTTOMEnumLiteralDeclaration_2());
+ }
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // InternalRBAModel.g:4823:2: ( ( 'RIGHT_TOP' ) )
+ {
+ // InternalRBAModel.g:4823:2: ( ( 'RIGHT_TOP' ) )
+ // InternalRBAModel.g:4824:3: ( 'RIGHT_TOP' )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getBasePointAccess().getRIGHT_TOPEnumLiteralDeclaration_3());
+ }
+ // InternalRBAModel.g:4825:3: ( 'RIGHT_TOP' )
+ // InternalRBAModel.g:4825:4: 'RIGHT_TOP'
+ {
+ match(input,85,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getBasePointAccess().getRIGHT_TOPEnumLiteralDeclaration_3());
+ }
+
+ }
+
+
+ }
+ break;
+ case 5 :
+ // InternalRBAModel.g:4829:2: ( ( 'RIGHT_MIDDLE' ) )
+ {
+ // InternalRBAModel.g:4829:2: ( ( 'RIGHT_MIDDLE' ) )
+ // InternalRBAModel.g:4830:3: ( 'RIGHT_MIDDLE' )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getBasePointAccess().getRIGHT_MIDDLEEnumLiteralDeclaration_4());
+ }
+ // InternalRBAModel.g:4831:3: ( 'RIGHT_MIDDLE' )
+ // InternalRBAModel.g:4831:4: 'RIGHT_MIDDLE'
+ {
+ match(input,86,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getBasePointAccess().getRIGHT_MIDDLEEnumLiteralDeclaration_4());
+ }
+
+ }
+
+
+ }
+ break;
+ case 6 :
+ // InternalRBAModel.g:4835:2: ( ( 'RIGHT_BOTTOM' ) )
+ {
+ // InternalRBAModel.g:4835:2: ( ( 'RIGHT_BOTTOM' ) )
+ // InternalRBAModel.g:4836:3: ( 'RIGHT_BOTTOM' )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getBasePointAccess().getRIGHT_BOTTOMEnumLiteralDeclaration_5());
+ }
+ // InternalRBAModel.g:4837:3: ( 'RIGHT_BOTTOM' )
+ // InternalRBAModel.g:4837:4: 'RIGHT_BOTTOM'
+ {
+ match(input,87,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getBasePointAccess().getRIGHT_BOTTOMEnumLiteralDeclaration_5());
+ }
+
+ }
+
+
+ }
+ break;
+ case 7 :
+ // InternalRBAModel.g:4841:2: ( ( 'CENTER_TOP' ) )
+ {
+ // InternalRBAModel.g:4841:2: ( ( 'CENTER_TOP' ) )
+ // InternalRBAModel.g:4842:3: ( 'CENTER_TOP' )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getBasePointAccess().getCENTER_TOPEnumLiteralDeclaration_6());
+ }
+ // InternalRBAModel.g:4843:3: ( 'CENTER_TOP' )
+ // InternalRBAModel.g:4843:4: 'CENTER_TOP'
+ {
+ match(input,88,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getBasePointAccess().getCENTER_TOPEnumLiteralDeclaration_6());
+ }
+
+ }
+
+
+ }
+ break;
+ case 8 :
+ // InternalRBAModel.g:4847:2: ( ( 'CENTER_MIDDLE' ) )
+ {
+ // InternalRBAModel.g:4847:2: ( ( 'CENTER_MIDDLE' ) )
+ // InternalRBAModel.g:4848:3: ( 'CENTER_MIDDLE' )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getBasePointAccess().getCENTER_MIDDLEEnumLiteralDeclaration_7());
+ }
+ // InternalRBAModel.g:4849:3: ( 'CENTER_MIDDLE' )
+ // InternalRBAModel.g:4849:4: 'CENTER_MIDDLE'
+ {
+ match(input,89,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getBasePointAccess().getCENTER_MIDDLEEnumLiteralDeclaration_7());
+ }
+
+ }
+
+
+ }
+ break;
+ case 9 :
+ // InternalRBAModel.g:4853:2: ( ( 'CENTER_BOTTOM' ) )
+ {
+ // InternalRBAModel.g:4853:2: ( ( 'CENTER_BOTTOM' ) )
+ // InternalRBAModel.g:4854:3: ( 'CENTER_BOTTOM' )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getBasePointAccess().getCENTER_BOTTOMEnumLiteralDeclaration_8());
+ }
+ // InternalRBAModel.g:4855:3: ( 'CENTER_BOTTOM' )
+ // InternalRBAModel.g:4855:4: 'CENTER_BOTTOM'
+ {
+ match(input,90,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getBasePointAccess().getCENTER_BOTTOMEnumLiteralDeclaration_8());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__BasePoint__Alternatives"
+
+
+ // $ANTLR start "rule__LoserType__Alternatives"
+ // InternalRBAModel.g:4863:1: rule__LoserType__Alternatives : ( ( ( 'NEVER_GIVEUP' ) ) | ( ( 'GOOD_LOSER' ) ) | ( ( 'DO_NOT_GIVEUP_UNTIL_WIN' ) ) );
+ public final void rule__LoserType__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:4867:1: ( ( ( 'NEVER_GIVEUP' ) ) | ( ( 'GOOD_LOSER' ) ) | ( ( 'DO_NOT_GIVEUP_UNTIL_WIN' ) ) )
+ int alt35=3;
+ switch ( input.LA(1) ) {
+ case 91:
+ {
+ alt35=1;
+ }
+ break;
+ case 92:
+ {
+ alt35=2;
+ }
+ break;
+ case 93:
+ {
+ alt35=3;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 35, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt35) {
+ case 1 :
+ // InternalRBAModel.g:4868:2: ( ( 'NEVER_GIVEUP' ) )
+ {
+ // InternalRBAModel.g:4868:2: ( ( 'NEVER_GIVEUP' ) )
+ // InternalRBAModel.g:4869:3: ( 'NEVER_GIVEUP' )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLoserTypeAccess().getNEVER_GIVEUPEnumLiteralDeclaration_0());
+ }
+ // InternalRBAModel.g:4870:3: ( 'NEVER_GIVEUP' )
+ // InternalRBAModel.g:4870:4: 'NEVER_GIVEUP'
+ {
+ match(input,91,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLoserTypeAccess().getNEVER_GIVEUPEnumLiteralDeclaration_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:4874:2: ( ( 'GOOD_LOSER' ) )
+ {
+ // InternalRBAModel.g:4874:2: ( ( 'GOOD_LOSER' ) )
+ // InternalRBAModel.g:4875:3: ( 'GOOD_LOSER' )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLoserTypeAccess().getGOOD_LOSEREnumLiteralDeclaration_1());
+ }
+ // InternalRBAModel.g:4876:3: ( 'GOOD_LOSER' )
+ // InternalRBAModel.g:4876:4: 'GOOD_LOSER'
+ {
+ match(input,92,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLoserTypeAccess().getGOOD_LOSEREnumLiteralDeclaration_1());
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:4880:2: ( ( 'DO_NOT_GIVEUP_UNTIL_WIN' ) )
+ {
+ // InternalRBAModel.g:4880:2: ( ( 'DO_NOT_GIVEUP_UNTIL_WIN' ) )
+ // InternalRBAModel.g:4881:3: ( 'DO_NOT_GIVEUP_UNTIL_WIN' )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLoserTypeAccess().getDO_NOT_GIVEUP_UNTIL_WINEnumLiteralDeclaration_2());
+ }
+ // InternalRBAModel.g:4882:3: ( 'DO_NOT_GIVEUP_UNTIL_WIN' )
+ // InternalRBAModel.g:4882:4: 'DO_NOT_GIVEUP_UNTIL_WIN'
+ {
+ match(input,93,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLoserTypeAccess().getDO_NOT_GIVEUP_UNTIL_WINEnumLiteralDeclaration_2());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LoserType__Alternatives"
+
+
+ // $ANTLR start "rule__TopLevel__Group__0"
+ // InternalRBAModel.g:4890:1: rule__TopLevel__Group__0 : rule__TopLevel__Group__0__Impl rule__TopLevel__Group__1 ;
+ public final void rule__TopLevel__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:4894:1: ( rule__TopLevel__Group__0__Impl rule__TopLevel__Group__1 )
+ // InternalRBAModel.g:4895:2: rule__TopLevel__Group__0__Impl rule__TopLevel__Group__1
+ {
+ pushFollow(FOLLOW_3);
+ rule__TopLevel__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__TopLevel__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__TopLevel__Group__0"
+
+
+ // $ANTLR start "rule__TopLevel__Group__0__Impl"
+ // InternalRBAModel.g:4902:1: rule__TopLevel__Group__0__Impl : ( () ) ;
+ public final void rule__TopLevel__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:4906:1: ( ( () ) )
+ // InternalRBAModel.g:4907:1: ( () )
+ {
+ // InternalRBAModel.g:4907:1: ( () )
+ // InternalRBAModel.g:4908:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getTopLevelAccess().getTopLevelAction_0());
+ }
+ // InternalRBAModel.g:4909:2: ()
+ // InternalRBAModel.g:4909:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getTopLevelAccess().getTopLevelAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__TopLevel__Group__0__Impl"
+
+
+ // $ANTLR start "rule__TopLevel__Group__1"
+ // InternalRBAModel.g:4917:1: rule__TopLevel__Group__1 : rule__TopLevel__Group__1__Impl rule__TopLevel__Group__2 ;
+ public final void rule__TopLevel__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:4921:1: ( rule__TopLevel__Group__1__Impl rule__TopLevel__Group__2 )
+ // InternalRBAModel.g:4922:2: rule__TopLevel__Group__1__Impl rule__TopLevel__Group__2
+ {
+ pushFollow(FOLLOW_3);
+ rule__TopLevel__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__TopLevel__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__TopLevel__Group__1"
+
+
+ // $ANTLR start "rule__TopLevel__Group__1__Impl"
+ // InternalRBAModel.g:4929:1: rule__TopLevel__Group__1__Impl : ( ( rule__TopLevel__Group_1__0 )? ) ;
+ public final void rule__TopLevel__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:4933:1: ( ( ( rule__TopLevel__Group_1__0 )? ) )
+ // InternalRBAModel.g:4934:1: ( ( rule__TopLevel__Group_1__0 )? )
+ {
+ // InternalRBAModel.g:4934:1: ( ( rule__TopLevel__Group_1__0 )? )
+ // InternalRBAModel.g:4935:2: ( rule__TopLevel__Group_1__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getTopLevelAccess().getGroup_1());
+ }
+ // InternalRBAModel.g:4936:2: ( rule__TopLevel__Group_1__0 )?
+ int alt36=2;
+ int LA36_0 = input.LA(1);
+
+ if ( (LA36_0==94) ) {
+ alt36=1;
+ }
+ switch (alt36) {
+ case 1 :
+ // InternalRBAModel.g:4936:3: rule__TopLevel__Group_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__TopLevel__Group_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getTopLevelAccess().getGroup_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__TopLevel__Group__1__Impl"
+
+
+ // $ANTLR start "rule__TopLevel__Group__2"
+ // InternalRBAModel.g:4944:1: rule__TopLevel__Group__2 : rule__TopLevel__Group__2__Impl rule__TopLevel__Group__3 ;
+ public final void rule__TopLevel__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:4948:1: ( rule__TopLevel__Group__2__Impl rule__TopLevel__Group__3 )
+ // InternalRBAModel.g:4949:2: rule__TopLevel__Group__2__Impl rule__TopLevel__Group__3
+ {
+ pushFollow(FOLLOW_3);
+ rule__TopLevel__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__TopLevel__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__TopLevel__Group__2"
+
+
+ // $ANTLR start "rule__TopLevel__Group__2__Impl"
+ // InternalRBAModel.g:4956:1: rule__TopLevel__Group__2__Impl : ( ( rule__TopLevel__ProjectAssignment_2 )* ) ;
+ public final void rule__TopLevel__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:4960:1: ( ( ( rule__TopLevel__ProjectAssignment_2 )* ) )
+ // InternalRBAModel.g:4961:1: ( ( rule__TopLevel__ProjectAssignment_2 )* )
+ {
+ // InternalRBAModel.g:4961:1: ( ( rule__TopLevel__ProjectAssignment_2 )* )
+ // InternalRBAModel.g:4962:2: ( rule__TopLevel__ProjectAssignment_2 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getTopLevelAccess().getProjectAssignment_2());
+ }
+ // InternalRBAModel.g:4963:2: ( rule__TopLevel__ProjectAssignment_2 )*
+ loop37:
+ do {
+ int alt37=2;
+ int LA37_0 = input.LA(1);
+
+ if ( (LA37_0==132) ) {
+ alt37=1;
+ }
+
+
+ switch (alt37) {
+ case 1 :
+ // InternalRBAModel.g:4963:3: rule__TopLevel__ProjectAssignment_2
+ {
+ pushFollow(FOLLOW_4);
+ rule__TopLevel__ProjectAssignment_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop37;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getTopLevelAccess().getProjectAssignment_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__TopLevel__Group__2__Impl"
+
+
+ // $ANTLR start "rule__TopLevel__Group__3"
+ // InternalRBAModel.g:4971:1: rule__TopLevel__Group__3 : rule__TopLevel__Group__3__Impl rule__TopLevel__Group__4 ;
+ public final void rule__TopLevel__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:4975:1: ( rule__TopLevel__Group__3__Impl rule__TopLevel__Group__4 )
+ // InternalRBAModel.g:4976:2: rule__TopLevel__Group__3__Impl rule__TopLevel__Group__4
+ {
+ pushFollow(FOLLOW_3);
+ rule__TopLevel__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__TopLevel__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__TopLevel__Group__3"
+
+
+ // $ANTLR start "rule__TopLevel__Group__3__Impl"
+ // InternalRBAModel.g:4983:1: rule__TopLevel__Group__3__Impl : ( ( rule__TopLevel__ImportsAssignment_3 )* ) ;
+ public final void rule__TopLevel__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:4987:1: ( ( ( rule__TopLevel__ImportsAssignment_3 )* ) )
+ // InternalRBAModel.g:4988:1: ( ( rule__TopLevel__ImportsAssignment_3 )* )
+ {
+ // InternalRBAModel.g:4988:1: ( ( rule__TopLevel__ImportsAssignment_3 )* )
+ // InternalRBAModel.g:4989:2: ( rule__TopLevel__ImportsAssignment_3 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getTopLevelAccess().getImportsAssignment_3());
+ }
+ // InternalRBAModel.g:4990:2: ( rule__TopLevel__ImportsAssignment_3 )*
+ loop38:
+ do {
+ int alt38=2;
+ int LA38_0 = input.LA(1);
+
+ if ( (LA38_0==95) ) {
+ alt38=1;
+ }
+
+
+ switch (alt38) {
+ case 1 :
+ // InternalRBAModel.g:4990:3: rule__TopLevel__ImportsAssignment_3
+ {
+ pushFollow(FOLLOW_5);
+ rule__TopLevel__ImportsAssignment_3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop38;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getTopLevelAccess().getImportsAssignment_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__TopLevel__Group__3__Impl"
+
+
+ // $ANTLR start "rule__TopLevel__Group__4"
+ // InternalRBAModel.g:4998:1: rule__TopLevel__Group__4 : rule__TopLevel__Group__4__Impl ;
+ public final void rule__TopLevel__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5002:1: ( rule__TopLevel__Group__4__Impl )
+ // InternalRBAModel.g:5003:2: rule__TopLevel__Group__4__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__TopLevel__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__TopLevel__Group__4"
+
+
+ // $ANTLR start "rule__TopLevel__Group__4__Impl"
+ // InternalRBAModel.g:5009:1: rule__TopLevel__Group__4__Impl : ( ( rule__TopLevel__PackagesAssignment_4 )* ) ;
+ public final void rule__TopLevel__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5013:1: ( ( ( rule__TopLevel__PackagesAssignment_4 )* ) )
+ // InternalRBAModel.g:5014:1: ( ( rule__TopLevel__PackagesAssignment_4 )* )
+ {
+ // InternalRBAModel.g:5014:1: ( ( rule__TopLevel__PackagesAssignment_4 )* )
+ // InternalRBAModel.g:5015:2: ( rule__TopLevel__PackagesAssignment_4 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getTopLevelAccess().getPackagesAssignment_4());
+ }
+ // InternalRBAModel.g:5016:2: ( rule__TopLevel__PackagesAssignment_4 )*
+ loop39:
+ do {
+ int alt39=2;
+ int LA39_0 = input.LA(1);
+
+ if ( (LA39_0==104) ) {
+ alt39=1;
+ }
+
+
+ switch (alt39) {
+ case 1 :
+ // InternalRBAModel.g:5016:3: rule__TopLevel__PackagesAssignment_4
+ {
+ pushFollow(FOLLOW_6);
+ rule__TopLevel__PackagesAssignment_4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop39;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getTopLevelAccess().getPackagesAssignment_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__TopLevel__Group__4__Impl"
+
+
+ // $ANTLR start "rule__TopLevel__Group_1__0"
+ // InternalRBAModel.g:5025:1: rule__TopLevel__Group_1__0 : rule__TopLevel__Group_1__0__Impl rule__TopLevel__Group_1__1 ;
+ public final void rule__TopLevel__Group_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5029:1: ( rule__TopLevel__Group_1__0__Impl rule__TopLevel__Group_1__1 )
+ // InternalRBAModel.g:5030:2: rule__TopLevel__Group_1__0__Impl rule__TopLevel__Group_1__1
+ {
+ pushFollow(FOLLOW_7);
+ rule__TopLevel__Group_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__TopLevel__Group_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__TopLevel__Group_1__0"
+
+
+ // $ANTLR start "rule__TopLevel__Group_1__0__Impl"
+ // InternalRBAModel.g:5037:1: rule__TopLevel__Group_1__0__Impl : ( 'module' ) ;
+ public final void rule__TopLevel__Group_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5041:1: ( ( 'module' ) )
+ // InternalRBAModel.g:5042:1: ( 'module' )
+ {
+ // InternalRBAModel.g:5042:1: ( 'module' )
+ // InternalRBAModel.g:5043:2: 'module'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getTopLevelAccess().getModuleKeyword_1_0());
+ }
+ match(input,94,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getTopLevelAccess().getModuleKeyword_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__TopLevel__Group_1__0__Impl"
+
+
+ // $ANTLR start "rule__TopLevel__Group_1__1"
+ // InternalRBAModel.g:5052:1: rule__TopLevel__Group_1__1 : rule__TopLevel__Group_1__1__Impl ;
+ public final void rule__TopLevel__Group_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5056:1: ( rule__TopLevel__Group_1__1__Impl )
+ // InternalRBAModel.g:5057:2: rule__TopLevel__Group_1__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__TopLevel__Group_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__TopLevel__Group_1__1"
+
+
+ // $ANTLR start "rule__TopLevel__Group_1__1__Impl"
+ // InternalRBAModel.g:5063:1: rule__TopLevel__Group_1__1__Impl : ( ruleQualifiedName ) ;
+ public final void rule__TopLevel__Group_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5067:1: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:5068:1: ( ruleQualifiedName )
+ {
+ // InternalRBAModel.g:5068:1: ( ruleQualifiedName )
+ // InternalRBAModel.g:5069:2: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getTopLevelAccess().getQualifiedNameParserRuleCall_1_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getTopLevelAccess().getQualifiedNameParserRuleCall_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__TopLevel__Group_1__1__Impl"
+
+
+ // $ANTLR start "rule__Import__Group__0"
+ // InternalRBAModel.g:5079:1: rule__Import__Group__0 : rule__Import__Group__0__Impl rule__Import__Group__1 ;
+ public final void rule__Import__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5083:1: ( rule__Import__Group__0__Impl rule__Import__Group__1 )
+ // InternalRBAModel.g:5084:2: rule__Import__Group__0__Impl rule__Import__Group__1
+ {
+ pushFollow(FOLLOW_7);
+ rule__Import__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Import__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Import__Group__0"
+
+
+ // $ANTLR start "rule__Import__Group__0__Impl"
+ // InternalRBAModel.g:5091:1: rule__Import__Group__0__Impl : ( 'import' ) ;
+ public final void rule__Import__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5095:1: ( ( 'import' ) )
+ // InternalRBAModel.g:5096:1: ( 'import' )
+ {
+ // InternalRBAModel.g:5096:1: ( 'import' )
+ // InternalRBAModel.g:5097:2: 'import'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getImportAccess().getImportKeyword_0());
+ }
+ match(input,95,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getImportAccess().getImportKeyword_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Import__Group__0__Impl"
+
+
+ // $ANTLR start "rule__Import__Group__1"
+ // InternalRBAModel.g:5106:1: rule__Import__Group__1 : rule__Import__Group__1__Impl ;
+ public final void rule__Import__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5110:1: ( rule__Import__Group__1__Impl )
+ // InternalRBAModel.g:5111:2: rule__Import__Group__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Import__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Import__Group__1"
+
+
+ // $ANTLR start "rule__Import__Group__1__Impl"
+ // InternalRBAModel.g:5117:1: rule__Import__Group__1__Impl : ( ( rule__Import__ImportedNamespaceAssignment_1 ) ) ;
+ public final void rule__Import__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5121:1: ( ( ( rule__Import__ImportedNamespaceAssignment_1 ) ) )
+ // InternalRBAModel.g:5122:1: ( ( rule__Import__ImportedNamespaceAssignment_1 ) )
+ {
+ // InternalRBAModel.g:5122:1: ( ( rule__Import__ImportedNamespaceAssignment_1 ) )
+ // InternalRBAModel.g:5123:2: ( rule__Import__ImportedNamespaceAssignment_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getImportAccess().getImportedNamespaceAssignment_1());
+ }
+ // InternalRBAModel.g:5124:2: ( rule__Import__ImportedNamespaceAssignment_1 )
+ // InternalRBAModel.g:5124:3: rule__Import__ImportedNamespaceAssignment_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__Import__ImportedNamespaceAssignment_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getImportAccess().getImportedNamespaceAssignment_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Import__Group__1__Impl"
+
+
+ // $ANTLR start "rule__AbstractProperty__Group__0"
+ // InternalRBAModel.g:5133:1: rule__AbstractProperty__Group__0 : rule__AbstractProperty__Group__0__Impl rule__AbstractProperty__Group__1 ;
+ public final void rule__AbstractProperty__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5137:1: ( rule__AbstractProperty__Group__0__Impl rule__AbstractProperty__Group__1 )
+ // InternalRBAModel.g:5138:2: rule__AbstractProperty__Group__0__Impl rule__AbstractProperty__Group__1
+ {
+ pushFollow(FOLLOW_7);
+ rule__AbstractProperty__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__AbstractProperty__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AbstractProperty__Group__0"
+
+
+ // $ANTLR start "rule__AbstractProperty__Group__0__Impl"
+ // InternalRBAModel.g:5145:1: rule__AbstractProperty__Group__0__Impl : ( ( rule__AbstractProperty__Group_0__0 ) ) ;
+ public final void rule__AbstractProperty__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5149:1: ( ( ( rule__AbstractProperty__Group_0__0 ) ) )
+ // InternalRBAModel.g:5150:1: ( ( rule__AbstractProperty__Group_0__0 ) )
+ {
+ // InternalRBAModel.g:5150:1: ( ( rule__AbstractProperty__Group_0__0 ) )
+ // InternalRBAModel.g:5151:2: ( rule__AbstractProperty__Group_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAbstractPropertyAccess().getGroup_0());
+ }
+ // InternalRBAModel.g:5152:2: ( rule__AbstractProperty__Group_0__0 )
+ // InternalRBAModel.g:5152:3: rule__AbstractProperty__Group_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__AbstractProperty__Group_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAbstractPropertyAccess().getGroup_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AbstractProperty__Group__0__Impl"
+
+
+ // $ANTLR start "rule__AbstractProperty__Group__1"
+ // InternalRBAModel.g:5160:1: rule__AbstractProperty__Group__1 : rule__AbstractProperty__Group__1__Impl rule__AbstractProperty__Group__2 ;
+ public final void rule__AbstractProperty__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5164:1: ( rule__AbstractProperty__Group__1__Impl rule__AbstractProperty__Group__2 )
+ // InternalRBAModel.g:5165:2: rule__AbstractProperty__Group__1__Impl rule__AbstractProperty__Group__2
+ {
+ pushFollow(FOLLOW_8);
+ rule__AbstractProperty__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__AbstractProperty__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AbstractProperty__Group__1"
+
+
+ // $ANTLR start "rule__AbstractProperty__Group__1__Impl"
+ // InternalRBAModel.g:5172:1: rule__AbstractProperty__Group__1__Impl : ( ( rule__AbstractProperty__NameAssignment_1 ) ) ;
+ public final void rule__AbstractProperty__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5176:1: ( ( ( rule__AbstractProperty__NameAssignment_1 ) ) )
+ // InternalRBAModel.g:5177:1: ( ( rule__AbstractProperty__NameAssignment_1 ) )
+ {
+ // InternalRBAModel.g:5177:1: ( ( rule__AbstractProperty__NameAssignment_1 ) )
+ // InternalRBAModel.g:5178:2: ( rule__AbstractProperty__NameAssignment_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAbstractPropertyAccess().getNameAssignment_1());
+ }
+ // InternalRBAModel.g:5179:2: ( rule__AbstractProperty__NameAssignment_1 )
+ // InternalRBAModel.g:5179:3: rule__AbstractProperty__NameAssignment_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__AbstractProperty__NameAssignment_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAbstractPropertyAccess().getNameAssignment_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AbstractProperty__Group__1__Impl"
+
+
+ // $ANTLR start "rule__AbstractProperty__Group__2"
+ // InternalRBAModel.g:5187:1: rule__AbstractProperty__Group__2 : rule__AbstractProperty__Group__2__Impl ;
+ public final void rule__AbstractProperty__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5191:1: ( rule__AbstractProperty__Group__2__Impl )
+ // InternalRBAModel.g:5192:2: rule__AbstractProperty__Group__2__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__AbstractProperty__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AbstractProperty__Group__2"
+
+
+ // $ANTLR start "rule__AbstractProperty__Group__2__Impl"
+ // InternalRBAModel.g:5198:1: rule__AbstractProperty__Group__2__Impl : ( ( rule__AbstractProperty__Group_2__0 )? ) ;
+ public final void rule__AbstractProperty__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5202:1: ( ( ( rule__AbstractProperty__Group_2__0 )? ) )
+ // InternalRBAModel.g:5203:1: ( ( rule__AbstractProperty__Group_2__0 )? )
+ {
+ // InternalRBAModel.g:5203:1: ( ( rule__AbstractProperty__Group_2__0 )? )
+ // InternalRBAModel.g:5204:2: ( rule__AbstractProperty__Group_2__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAbstractPropertyAccess().getGroup_2());
+ }
+ // InternalRBAModel.g:5205:2: ( rule__AbstractProperty__Group_2__0 )?
+ int alt40=2;
+ int LA40_0 = input.LA(1);
+
+ if ( (LA40_0==97) ) {
+ alt40=1;
+ }
+ switch (alt40) {
+ case 1 :
+ // InternalRBAModel.g:5205:3: rule__AbstractProperty__Group_2__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__AbstractProperty__Group_2__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAbstractPropertyAccess().getGroup_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AbstractProperty__Group__2__Impl"
+
+
+ // $ANTLR start "rule__AbstractProperty__Group_0__0"
+ // InternalRBAModel.g:5214:1: rule__AbstractProperty__Group_0__0 : rule__AbstractProperty__Group_0__0__Impl rule__AbstractProperty__Group_0__1 ;
+ public final void rule__AbstractProperty__Group_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5218:1: ( rule__AbstractProperty__Group_0__0__Impl rule__AbstractProperty__Group_0__1 )
+ // InternalRBAModel.g:5219:2: rule__AbstractProperty__Group_0__0__Impl rule__AbstractProperty__Group_0__1
+ {
+ pushFollow(FOLLOW_9);
+ rule__AbstractProperty__Group_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__AbstractProperty__Group_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AbstractProperty__Group_0__0"
+
+
+ // $ANTLR start "rule__AbstractProperty__Group_0__0__Impl"
+ // InternalRBAModel.g:5226:1: rule__AbstractProperty__Group_0__0__Impl : ( () ) ;
+ public final void rule__AbstractProperty__Group_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5230:1: ( ( () ) )
+ // InternalRBAModel.g:5231:1: ( () )
+ {
+ // InternalRBAModel.g:5231:1: ( () )
+ // InternalRBAModel.g:5232:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAbstractPropertyAccess().getIntegerPropertyAction_0_0());
+ }
+ // InternalRBAModel.g:5233:2: ()
+ // InternalRBAModel.g:5233:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAbstractPropertyAccess().getIntegerPropertyAction_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AbstractProperty__Group_0__0__Impl"
+
+
+ // $ANTLR start "rule__AbstractProperty__Group_0__1"
+ // InternalRBAModel.g:5241:1: rule__AbstractProperty__Group_0__1 : rule__AbstractProperty__Group_0__1__Impl ;
+ public final void rule__AbstractProperty__Group_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5245:1: ( rule__AbstractProperty__Group_0__1__Impl )
+ // InternalRBAModel.g:5246:2: rule__AbstractProperty__Group_0__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__AbstractProperty__Group_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AbstractProperty__Group_0__1"
+
+
+ // $ANTLR start "rule__AbstractProperty__Group_0__1__Impl"
+ // InternalRBAModel.g:5252:1: rule__AbstractProperty__Group_0__1__Impl : ( 'int' ) ;
+ public final void rule__AbstractProperty__Group_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5256:1: ( ( 'int' ) )
+ // InternalRBAModel.g:5257:1: ( 'int' )
+ {
+ // InternalRBAModel.g:5257:1: ( 'int' )
+ // InternalRBAModel.g:5258:2: 'int'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAbstractPropertyAccess().getIntKeyword_0_1());
+ }
+ match(input,96,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAbstractPropertyAccess().getIntKeyword_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AbstractProperty__Group_0__1__Impl"
+
+
+ // $ANTLR start "rule__AbstractProperty__Group_2__0"
+ // InternalRBAModel.g:5268:1: rule__AbstractProperty__Group_2__0 : rule__AbstractProperty__Group_2__0__Impl rule__AbstractProperty__Group_2__1 ;
+ public final void rule__AbstractProperty__Group_2__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5272:1: ( rule__AbstractProperty__Group_2__0__Impl rule__AbstractProperty__Group_2__1 )
+ // InternalRBAModel.g:5273:2: rule__AbstractProperty__Group_2__0__Impl rule__AbstractProperty__Group_2__1
+ {
+ pushFollow(FOLLOW_10);
+ rule__AbstractProperty__Group_2__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__AbstractProperty__Group_2__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AbstractProperty__Group_2__0"
+
+
+ // $ANTLR start "rule__AbstractProperty__Group_2__0__Impl"
+ // InternalRBAModel.g:5280:1: rule__AbstractProperty__Group_2__0__Impl : ( ':' ) ;
+ public final void rule__AbstractProperty__Group_2__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5284:1: ( ( ':' ) )
+ // InternalRBAModel.g:5285:1: ( ':' )
+ {
+ // InternalRBAModel.g:5285:1: ( ':' )
+ // InternalRBAModel.g:5286:2: ':'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAbstractPropertyAccess().getColonKeyword_2_0());
+ }
+ match(input,97,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAbstractPropertyAccess().getColonKeyword_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AbstractProperty__Group_2__0__Impl"
+
+
+ // $ANTLR start "rule__AbstractProperty__Group_2__1"
+ // InternalRBAModel.g:5295:1: rule__AbstractProperty__Group_2__1 : rule__AbstractProperty__Group_2__1__Impl ;
+ public final void rule__AbstractProperty__Group_2__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5299:1: ( rule__AbstractProperty__Group_2__1__Impl )
+ // InternalRBAModel.g:5300:2: rule__AbstractProperty__Group_2__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__AbstractProperty__Group_2__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AbstractProperty__Group_2__1"
+
+
+ // $ANTLR start "rule__AbstractProperty__Group_2__1__Impl"
+ // InternalRBAModel.g:5306:1: rule__AbstractProperty__Group_2__1__Impl : ( ( rule__AbstractProperty__ValueAssignment_2_1 ) ) ;
+ public final void rule__AbstractProperty__Group_2__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5310:1: ( ( ( rule__AbstractProperty__ValueAssignment_2_1 ) ) )
+ // InternalRBAModel.g:5311:1: ( ( rule__AbstractProperty__ValueAssignment_2_1 ) )
+ {
+ // InternalRBAModel.g:5311:1: ( ( rule__AbstractProperty__ValueAssignment_2_1 ) )
+ // InternalRBAModel.g:5312:2: ( rule__AbstractProperty__ValueAssignment_2_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAbstractPropertyAccess().getValueAssignment_2_1());
+ }
+ // InternalRBAModel.g:5313:2: ( rule__AbstractProperty__ValueAssignment_2_1 )
+ // InternalRBAModel.g:5313:3: rule__AbstractProperty__ValueAssignment_2_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__AbstractProperty__ValueAssignment_2_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAbstractPropertyAccess().getValueAssignment_2_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AbstractProperty__Group_2__1__Impl"
+
+
+ // $ANTLR start "rule__Tag__Group__0"
+ // InternalRBAModel.g:5322:1: rule__Tag__Group__0 : rule__Tag__Group__0__Impl rule__Tag__Group__1 ;
+ public final void rule__Tag__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5326:1: ( rule__Tag__Group__0__Impl rule__Tag__Group__1 )
+ // InternalRBAModel.g:5327:2: rule__Tag__Group__0__Impl rule__Tag__Group__1
+ {
+ pushFollow(FOLLOW_11);
+ rule__Tag__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Tag__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Tag__Group__0"
+
+
+ // $ANTLR start "rule__Tag__Group__0__Impl"
+ // InternalRBAModel.g:5334:1: rule__Tag__Group__0__Impl : ( ( rule__Tag__Group_0__0 ) ) ;
+ public final void rule__Tag__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5338:1: ( ( ( rule__Tag__Group_0__0 ) ) )
+ // InternalRBAModel.g:5339:1: ( ( rule__Tag__Group_0__0 ) )
+ {
+ // InternalRBAModel.g:5339:1: ( ( rule__Tag__Group_0__0 ) )
+ // InternalRBAModel.g:5340:2: ( rule__Tag__Group_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getTagAccess().getGroup_0());
+ }
+ // InternalRBAModel.g:5341:2: ( rule__Tag__Group_0__0 )
+ // InternalRBAModel.g:5341:3: rule__Tag__Group_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Tag__Group_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getTagAccess().getGroup_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Tag__Group__0__Impl"
+
+
+ // $ANTLR start "rule__Tag__Group__1"
+ // InternalRBAModel.g:5349:1: rule__Tag__Group__1 : rule__Tag__Group__1__Impl ;
+ public final void rule__Tag__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5353:1: ( rule__Tag__Group__1__Impl )
+ // InternalRBAModel.g:5354:2: rule__Tag__Group__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Tag__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Tag__Group__1"
+
+
+ // $ANTLR start "rule__Tag__Group__1__Impl"
+ // InternalRBAModel.g:5360:1: rule__Tag__Group__1__Impl : ( ( rule__Tag__Group_1__0 )? ) ;
+ public final void rule__Tag__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5364:1: ( ( ( rule__Tag__Group_1__0 )? ) )
+ // InternalRBAModel.g:5365:1: ( ( rule__Tag__Group_1__0 )? )
+ {
+ // InternalRBAModel.g:5365:1: ( ( rule__Tag__Group_1__0 )? )
+ // InternalRBAModel.g:5366:2: ( rule__Tag__Group_1__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getTagAccess().getGroup_1());
+ }
+ // InternalRBAModel.g:5367:2: ( rule__Tag__Group_1__0 )?
+ int alt41=2;
+ int LA41_0 = input.LA(1);
+
+ if ( (LA41_0==101) ) {
+ alt41=1;
+ }
+ switch (alt41) {
+ case 1 :
+ // InternalRBAModel.g:5367:3: rule__Tag__Group_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Tag__Group_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getTagAccess().getGroup_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Tag__Group__1__Impl"
+
+
+ // $ANTLR start "rule__Tag__Group_0__0"
+ // InternalRBAModel.g:5376:1: rule__Tag__Group_0__0 : rule__Tag__Group_0__0__Impl ;
+ public final void rule__Tag__Group_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5380:1: ( rule__Tag__Group_0__0__Impl )
+ // InternalRBAModel.g:5381:2: rule__Tag__Group_0__0__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Tag__Group_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Tag__Group_0__0"
+
+
+ // $ANTLR start "rule__Tag__Group_0__0__Impl"
+ // InternalRBAModel.g:5387:1: rule__Tag__Group_0__0__Impl : ( ( rule__Tag__Alternatives_0_0 ) ) ;
+ public final void rule__Tag__Group_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5391:1: ( ( ( rule__Tag__Alternatives_0_0 ) ) )
+ // InternalRBAModel.g:5392:1: ( ( rule__Tag__Alternatives_0_0 ) )
+ {
+ // InternalRBAModel.g:5392:1: ( ( rule__Tag__Alternatives_0_0 ) )
+ // InternalRBAModel.g:5393:2: ( rule__Tag__Alternatives_0_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getTagAccess().getAlternatives_0_0());
+ }
+ // InternalRBAModel.g:5394:2: ( rule__Tag__Alternatives_0_0 )
+ // InternalRBAModel.g:5394:3: rule__Tag__Alternatives_0_0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Tag__Alternatives_0_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getTagAccess().getAlternatives_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Tag__Group_0__0__Impl"
+
+
+ // $ANTLR start "rule__Tag__Group_0_0_0__0"
+ // InternalRBAModel.g:5403:1: rule__Tag__Group_0_0_0__0 : rule__Tag__Group_0_0_0__0__Impl rule__Tag__Group_0_0_0__1 ;
+ public final void rule__Tag__Group_0_0_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5407:1: ( rule__Tag__Group_0_0_0__0__Impl rule__Tag__Group_0_0_0__1 )
+ // InternalRBAModel.g:5408:2: rule__Tag__Group_0_0_0__0__Impl rule__Tag__Group_0_0_0__1
+ {
+ pushFollow(FOLLOW_12);
+ rule__Tag__Group_0_0_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Tag__Group_0_0_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Tag__Group_0_0_0__0"
+
+
+ // $ANTLR start "rule__Tag__Group_0_0_0__0__Impl"
+ // InternalRBAModel.g:5415:1: rule__Tag__Group_0_0_0__0__Impl : ( () ) ;
+ public final void rule__Tag__Group_0_0_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5419:1: ( ( () ) )
+ // InternalRBAModel.g:5420:1: ( () )
+ {
+ // InternalRBAModel.g:5420:1: ( () )
+ // InternalRBAModel.g:5421:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getTagAccess().getTagAction_0_0_0_0());
+ }
+ // InternalRBAModel.g:5422:2: ()
+ // InternalRBAModel.g:5422:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getTagAccess().getTagAction_0_0_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Tag__Group_0_0_0__0__Impl"
+
+
+ // $ANTLR start "rule__Tag__Group_0_0_0__1"
+ // InternalRBAModel.g:5430:1: rule__Tag__Group_0_0_0__1 : rule__Tag__Group_0_0_0__1__Impl rule__Tag__Group_0_0_0__2 ;
+ public final void rule__Tag__Group_0_0_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5434:1: ( rule__Tag__Group_0_0_0__1__Impl rule__Tag__Group_0_0_0__2 )
+ // InternalRBAModel.g:5435:2: rule__Tag__Group_0_0_0__1__Impl rule__Tag__Group_0_0_0__2
+ {
+ pushFollow(FOLLOW_7);
+ rule__Tag__Group_0_0_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Tag__Group_0_0_0__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Tag__Group_0_0_0__1"
+
+
+ // $ANTLR start "rule__Tag__Group_0_0_0__1__Impl"
+ // InternalRBAModel.g:5442:1: rule__Tag__Group_0_0_0__1__Impl : ( '<<' ) ;
+ public final void rule__Tag__Group_0_0_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5446:1: ( ( '<<' ) )
+ // InternalRBAModel.g:5447:1: ( '<<' )
+ {
+ // InternalRBAModel.g:5447:1: ( '<<' )
+ // InternalRBAModel.g:5448:2: '<<'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getTagAccess().getLessThanSignLessThanSignKeyword_0_0_0_1());
+ }
+ match(input,98,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getTagAccess().getLessThanSignLessThanSignKeyword_0_0_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Tag__Group_0_0_0__1__Impl"
+
+
+ // $ANTLR start "rule__Tag__Group_0_0_0__2"
+ // InternalRBAModel.g:5457:1: rule__Tag__Group_0_0_0__2 : rule__Tag__Group_0_0_0__2__Impl rule__Tag__Group_0_0_0__3 ;
+ public final void rule__Tag__Group_0_0_0__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5461:1: ( rule__Tag__Group_0_0_0__2__Impl rule__Tag__Group_0_0_0__3 )
+ // InternalRBAModel.g:5462:2: rule__Tag__Group_0_0_0__2__Impl rule__Tag__Group_0_0_0__3
+ {
+ pushFollow(FOLLOW_13);
+ rule__Tag__Group_0_0_0__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Tag__Group_0_0_0__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Tag__Group_0_0_0__2"
+
+
+ // $ANTLR start "rule__Tag__Group_0_0_0__2__Impl"
+ // InternalRBAModel.g:5469:1: rule__Tag__Group_0_0_0__2__Impl : ( ( rule__Tag__NameAssignment_0_0_0_2 ) ) ;
+ public final void rule__Tag__Group_0_0_0__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5473:1: ( ( ( rule__Tag__NameAssignment_0_0_0_2 ) ) )
+ // InternalRBAModel.g:5474:1: ( ( rule__Tag__NameAssignment_0_0_0_2 ) )
+ {
+ // InternalRBAModel.g:5474:1: ( ( rule__Tag__NameAssignment_0_0_0_2 ) )
+ // InternalRBAModel.g:5475:2: ( rule__Tag__NameAssignment_0_0_0_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getTagAccess().getNameAssignment_0_0_0_2());
+ }
+ // InternalRBAModel.g:5476:2: ( rule__Tag__NameAssignment_0_0_0_2 )
+ // InternalRBAModel.g:5476:3: rule__Tag__NameAssignment_0_0_0_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__Tag__NameAssignment_0_0_0_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getTagAccess().getNameAssignment_0_0_0_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Tag__Group_0_0_0__2__Impl"
+
+
+ // $ANTLR start "rule__Tag__Group_0_0_0__3"
+ // InternalRBAModel.g:5484:1: rule__Tag__Group_0_0_0__3 : rule__Tag__Group_0_0_0__3__Impl ;
+ public final void rule__Tag__Group_0_0_0__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5488:1: ( rule__Tag__Group_0_0_0__3__Impl )
+ // InternalRBAModel.g:5489:2: rule__Tag__Group_0_0_0__3__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Tag__Group_0_0_0__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Tag__Group_0_0_0__3"
+
+
+ // $ANTLR start "rule__Tag__Group_0_0_0__3__Impl"
+ // InternalRBAModel.g:5495:1: rule__Tag__Group_0_0_0__3__Impl : ( '>>' ) ;
+ public final void rule__Tag__Group_0_0_0__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5499:1: ( ( '>>' ) )
+ // InternalRBAModel.g:5500:1: ( '>>' )
+ {
+ // InternalRBAModel.g:5500:1: ( '>>' )
+ // InternalRBAModel.g:5501:2: '>>'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getTagAccess().getGreaterThanSignGreaterThanSignKeyword_0_0_0_3());
+ }
+ match(input,19,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getTagAccess().getGreaterThanSignGreaterThanSignKeyword_0_0_0_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Tag__Group_0_0_0__3__Impl"
+
+
+ // $ANTLR start "rule__Tag__Group_0_0_1__0"
+ // InternalRBAModel.g:5511:1: rule__Tag__Group_0_0_1__0 : rule__Tag__Group_0_0_1__0__Impl rule__Tag__Group_0_0_1__1 ;
+ public final void rule__Tag__Group_0_0_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5515:1: ( rule__Tag__Group_0_0_1__0__Impl rule__Tag__Group_0_0_1__1 )
+ // InternalRBAModel.g:5516:2: rule__Tag__Group_0_0_1__0__Impl rule__Tag__Group_0_0_1__1
+ {
+ pushFollow(FOLLOW_14);
+ rule__Tag__Group_0_0_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Tag__Group_0_0_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Tag__Group_0_0_1__0"
+
+
+ // $ANTLR start "rule__Tag__Group_0_0_1__0__Impl"
+ // InternalRBAModel.g:5523:1: rule__Tag__Group_0_0_1__0__Impl : ( () ) ;
+ public final void rule__Tag__Group_0_0_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5527:1: ( ( () ) )
+ // InternalRBAModel.g:5528:1: ( () )
+ {
+ // InternalRBAModel.g:5528:1: ( () )
+ // InternalRBAModel.g:5529:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getTagAccess().getCTagAction_0_0_1_0());
+ }
+ // InternalRBAModel.g:5530:2: ()
+ // InternalRBAModel.g:5530:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getTagAccess().getCTagAction_0_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Tag__Group_0_0_1__0__Impl"
+
+
+ // $ANTLR start "rule__Tag__Group_0_0_1__1"
+ // InternalRBAModel.g:5538:1: rule__Tag__Group_0_0_1__1 : rule__Tag__Group_0_0_1__1__Impl rule__Tag__Group_0_0_1__2 ;
+ public final void rule__Tag__Group_0_0_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5542:1: ( rule__Tag__Group_0_0_1__1__Impl rule__Tag__Group_0_0_1__2 )
+ // InternalRBAModel.g:5543:2: rule__Tag__Group_0_0_1__1__Impl rule__Tag__Group_0_0_1__2
+ {
+ pushFollow(FOLLOW_7);
+ rule__Tag__Group_0_0_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Tag__Group_0_0_1__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Tag__Group_0_0_1__1"
+
+
+ // $ANTLR start "rule__Tag__Group_0_0_1__1__Impl"
+ // InternalRBAModel.g:5550:1: rule__Tag__Group_0_0_1__1__Impl : ( '\\u00AB' ) ;
+ public final void rule__Tag__Group_0_0_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5554:1: ( ( '\\u00AB' ) )
+ // InternalRBAModel.g:5555:1: ( '\\u00AB' )
+ {
+ // InternalRBAModel.g:5555:1: ( '\\u00AB' )
+ // InternalRBAModel.g:5556:2: '\\u00AB'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getTagAccess().getLeftPointingDoubleAngleQuotationMarkKeyword_0_0_1_1());
+ }
+ match(input,99,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getTagAccess().getLeftPointingDoubleAngleQuotationMarkKeyword_0_0_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Tag__Group_0_0_1__1__Impl"
+
+
+ // $ANTLR start "rule__Tag__Group_0_0_1__2"
+ // InternalRBAModel.g:5565:1: rule__Tag__Group_0_0_1__2 : rule__Tag__Group_0_0_1__2__Impl rule__Tag__Group_0_0_1__3 ;
+ public final void rule__Tag__Group_0_0_1__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5569:1: ( rule__Tag__Group_0_0_1__2__Impl rule__Tag__Group_0_0_1__3 )
+ // InternalRBAModel.g:5570:2: rule__Tag__Group_0_0_1__2__Impl rule__Tag__Group_0_0_1__3
+ {
+ pushFollow(FOLLOW_15);
+ rule__Tag__Group_0_0_1__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Tag__Group_0_0_1__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Tag__Group_0_0_1__2"
+
+
+ // $ANTLR start "rule__Tag__Group_0_0_1__2__Impl"
+ // InternalRBAModel.g:5577:1: rule__Tag__Group_0_0_1__2__Impl : ( ( rule__Tag__NameAssignment_0_0_1_2 ) ) ;
+ public final void rule__Tag__Group_0_0_1__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5581:1: ( ( ( rule__Tag__NameAssignment_0_0_1_2 ) ) )
+ // InternalRBAModel.g:5582:1: ( ( rule__Tag__NameAssignment_0_0_1_2 ) )
+ {
+ // InternalRBAModel.g:5582:1: ( ( rule__Tag__NameAssignment_0_0_1_2 ) )
+ // InternalRBAModel.g:5583:2: ( rule__Tag__NameAssignment_0_0_1_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getTagAccess().getNameAssignment_0_0_1_2());
+ }
+ // InternalRBAModel.g:5584:2: ( rule__Tag__NameAssignment_0_0_1_2 )
+ // InternalRBAModel.g:5584:3: rule__Tag__NameAssignment_0_0_1_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__Tag__NameAssignment_0_0_1_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getTagAccess().getNameAssignment_0_0_1_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Tag__Group_0_0_1__2__Impl"
+
+
+ // $ANTLR start "rule__Tag__Group_0_0_1__3"
+ // InternalRBAModel.g:5592:1: rule__Tag__Group_0_0_1__3 : rule__Tag__Group_0_0_1__3__Impl ;
+ public final void rule__Tag__Group_0_0_1__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5596:1: ( rule__Tag__Group_0_0_1__3__Impl )
+ // InternalRBAModel.g:5597:2: rule__Tag__Group_0_0_1__3__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Tag__Group_0_0_1__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Tag__Group_0_0_1__3"
+
+
+ // $ANTLR start "rule__Tag__Group_0_0_1__3__Impl"
+ // InternalRBAModel.g:5603:1: rule__Tag__Group_0_0_1__3__Impl : ( '\\u00BB' ) ;
+ public final void rule__Tag__Group_0_0_1__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5607:1: ( ( '\\u00BB' ) )
+ // InternalRBAModel.g:5608:1: ( '\\u00BB' )
+ {
+ // InternalRBAModel.g:5608:1: ( '\\u00BB' )
+ // InternalRBAModel.g:5609:2: '\\u00BB'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getTagAccess().getRightPointingDoubleAngleQuotationMarkKeyword_0_0_1_3());
+ }
+ match(input,100,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getTagAccess().getRightPointingDoubleAngleQuotationMarkKeyword_0_0_1_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Tag__Group_0_0_1__3__Impl"
+
+
+ // $ANTLR start "rule__Tag__Group_1__0"
+ // InternalRBAModel.g:5619:1: rule__Tag__Group_1__0 : rule__Tag__Group_1__0__Impl rule__Tag__Group_1__1 ;
+ public final void rule__Tag__Group_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5623:1: ( rule__Tag__Group_1__0__Impl rule__Tag__Group_1__1 )
+ // InternalRBAModel.g:5624:2: rule__Tag__Group_1__0__Impl rule__Tag__Group_1__1
+ {
+ pushFollow(FOLLOW_16);
+ rule__Tag__Group_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Tag__Group_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Tag__Group_1__0"
+
+
+ // $ANTLR start "rule__Tag__Group_1__0__Impl"
+ // InternalRBAModel.g:5631:1: rule__Tag__Group_1__0__Impl : ( '{' ) ;
+ public final void rule__Tag__Group_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5635:1: ( ( '{' ) )
+ // InternalRBAModel.g:5636:1: ( '{' )
+ {
+ // InternalRBAModel.g:5636:1: ( '{' )
+ // InternalRBAModel.g:5637:2: '{'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getTagAccess().getLeftCurlyBracketKeyword_1_0());
+ }
+ match(input,101,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getTagAccess().getLeftCurlyBracketKeyword_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Tag__Group_1__0__Impl"
+
+
+ // $ANTLR start "rule__Tag__Group_1__1"
+ // InternalRBAModel.g:5646:1: rule__Tag__Group_1__1 : rule__Tag__Group_1__1__Impl rule__Tag__Group_1__2 ;
+ public final void rule__Tag__Group_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5650:1: ( rule__Tag__Group_1__1__Impl rule__Tag__Group_1__2 )
+ // InternalRBAModel.g:5651:2: rule__Tag__Group_1__1__Impl rule__Tag__Group_1__2
+ {
+ pushFollow(FOLLOW_16);
+ rule__Tag__Group_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Tag__Group_1__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Tag__Group_1__1"
+
+
+ // $ANTLR start "rule__Tag__Group_1__1__Impl"
+ // InternalRBAModel.g:5658:1: rule__Tag__Group_1__1__Impl : ( ( rule__Tag__Group_1_1__0 )? ) ;
+ public final void rule__Tag__Group_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5662:1: ( ( ( rule__Tag__Group_1_1__0 )? ) )
+ // InternalRBAModel.g:5663:1: ( ( rule__Tag__Group_1_1__0 )? )
+ {
+ // InternalRBAModel.g:5663:1: ( ( rule__Tag__Group_1_1__0 )? )
+ // InternalRBAModel.g:5664:2: ( rule__Tag__Group_1_1__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getTagAccess().getGroup_1_1());
+ }
+ // InternalRBAModel.g:5665:2: ( rule__Tag__Group_1_1__0 )?
+ int alt42=2;
+ int LA42_0 = input.LA(1);
+
+ if ( (LA42_0==RULE_STRING) ) {
+ alt42=1;
+ }
+ switch (alt42) {
+ case 1 :
+ // InternalRBAModel.g:5665:3: rule__Tag__Group_1_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Tag__Group_1_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getTagAccess().getGroup_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Tag__Group_1__1__Impl"
+
+
+ // $ANTLR start "rule__Tag__Group_1__2"
+ // InternalRBAModel.g:5673:1: rule__Tag__Group_1__2 : rule__Tag__Group_1__2__Impl ;
+ public final void rule__Tag__Group_1__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5677:1: ( rule__Tag__Group_1__2__Impl )
+ // InternalRBAModel.g:5678:2: rule__Tag__Group_1__2__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Tag__Group_1__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Tag__Group_1__2"
+
+
+ // $ANTLR start "rule__Tag__Group_1__2__Impl"
+ // InternalRBAModel.g:5684:1: rule__Tag__Group_1__2__Impl : ( '}' ) ;
+ public final void rule__Tag__Group_1__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5688:1: ( ( '}' ) )
+ // InternalRBAModel.g:5689:1: ( '}' )
+ {
+ // InternalRBAModel.g:5689:1: ( '}' )
+ // InternalRBAModel.g:5690:2: '}'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getTagAccess().getRightCurlyBracketKeyword_1_2());
+ }
+ match(input,102,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getTagAccess().getRightCurlyBracketKeyword_1_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Tag__Group_1__2__Impl"
+
+
+ // $ANTLR start "rule__Tag__Group_1_1__0"
+ // InternalRBAModel.g:5700:1: rule__Tag__Group_1_1__0 : rule__Tag__Group_1_1__0__Impl rule__Tag__Group_1_1__1 ;
+ public final void rule__Tag__Group_1_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5704:1: ( rule__Tag__Group_1_1__0__Impl rule__Tag__Group_1_1__1 )
+ // InternalRBAModel.g:5705:2: rule__Tag__Group_1_1__0__Impl rule__Tag__Group_1_1__1
+ {
+ pushFollow(FOLLOW_17);
+ rule__Tag__Group_1_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Tag__Group_1_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Tag__Group_1_1__0"
+
+
+ // $ANTLR start "rule__Tag__Group_1_1__0__Impl"
+ // InternalRBAModel.g:5712:1: rule__Tag__Group_1_1__0__Impl : ( ( rule__Tag__ValuesAssignment_1_1_0 ) ) ;
+ public final void rule__Tag__Group_1_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5716:1: ( ( ( rule__Tag__ValuesAssignment_1_1_0 ) ) )
+ // InternalRBAModel.g:5717:1: ( ( rule__Tag__ValuesAssignment_1_1_0 ) )
+ {
+ // InternalRBAModel.g:5717:1: ( ( rule__Tag__ValuesAssignment_1_1_0 ) )
+ // InternalRBAModel.g:5718:2: ( rule__Tag__ValuesAssignment_1_1_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getTagAccess().getValuesAssignment_1_1_0());
+ }
+ // InternalRBAModel.g:5719:2: ( rule__Tag__ValuesAssignment_1_1_0 )
+ // InternalRBAModel.g:5719:3: rule__Tag__ValuesAssignment_1_1_0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Tag__ValuesAssignment_1_1_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getTagAccess().getValuesAssignment_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Tag__Group_1_1__0__Impl"
+
+
+ // $ANTLR start "rule__Tag__Group_1_1__1"
+ // InternalRBAModel.g:5727:1: rule__Tag__Group_1_1__1 : rule__Tag__Group_1_1__1__Impl ;
+ public final void rule__Tag__Group_1_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5731:1: ( rule__Tag__Group_1_1__1__Impl )
+ // InternalRBAModel.g:5732:2: rule__Tag__Group_1_1__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Tag__Group_1_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Tag__Group_1_1__1"
+
+
+ // $ANTLR start "rule__Tag__Group_1_1__1__Impl"
+ // InternalRBAModel.g:5738:1: rule__Tag__Group_1_1__1__Impl : ( ( rule__Tag__Group_1_1_1__0 )* ) ;
+ public final void rule__Tag__Group_1_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5742:1: ( ( ( rule__Tag__Group_1_1_1__0 )* ) )
+ // InternalRBAModel.g:5743:1: ( ( rule__Tag__Group_1_1_1__0 )* )
+ {
+ // InternalRBAModel.g:5743:1: ( ( rule__Tag__Group_1_1_1__0 )* )
+ // InternalRBAModel.g:5744:2: ( rule__Tag__Group_1_1_1__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getTagAccess().getGroup_1_1_1());
+ }
+ // InternalRBAModel.g:5745:2: ( rule__Tag__Group_1_1_1__0 )*
+ loop43:
+ do {
+ int alt43=2;
+ int LA43_0 = input.LA(1);
+
+ if ( (LA43_0==103) ) {
+ alt43=1;
+ }
+
+
+ switch (alt43) {
+ case 1 :
+ // InternalRBAModel.g:5745:3: rule__Tag__Group_1_1_1__0
+ {
+ pushFollow(FOLLOW_18);
+ rule__Tag__Group_1_1_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop43;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getTagAccess().getGroup_1_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Tag__Group_1_1__1__Impl"
+
+
+ // $ANTLR start "rule__Tag__Group_1_1_1__0"
+ // InternalRBAModel.g:5754:1: rule__Tag__Group_1_1_1__0 : rule__Tag__Group_1_1_1__0__Impl rule__Tag__Group_1_1_1__1 ;
+ public final void rule__Tag__Group_1_1_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5758:1: ( rule__Tag__Group_1_1_1__0__Impl rule__Tag__Group_1_1_1__1 )
+ // InternalRBAModel.g:5759:2: rule__Tag__Group_1_1_1__0__Impl rule__Tag__Group_1_1_1__1
+ {
+ pushFollow(FOLLOW_19);
+ rule__Tag__Group_1_1_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Tag__Group_1_1_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Tag__Group_1_1_1__0"
+
+
+ // $ANTLR start "rule__Tag__Group_1_1_1__0__Impl"
+ // InternalRBAModel.g:5766:1: rule__Tag__Group_1_1_1__0__Impl : ( ',' ) ;
+ public final void rule__Tag__Group_1_1_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5770:1: ( ( ',' ) )
+ // InternalRBAModel.g:5771:1: ( ',' )
+ {
+ // InternalRBAModel.g:5771:1: ( ',' )
+ // InternalRBAModel.g:5772:2: ','
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getTagAccess().getCommaKeyword_1_1_1_0());
+ }
+ match(input,103,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getTagAccess().getCommaKeyword_1_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Tag__Group_1_1_1__0__Impl"
+
+
+ // $ANTLR start "rule__Tag__Group_1_1_1__1"
+ // InternalRBAModel.g:5781:1: rule__Tag__Group_1_1_1__1 : rule__Tag__Group_1_1_1__1__Impl ;
+ public final void rule__Tag__Group_1_1_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5785:1: ( rule__Tag__Group_1_1_1__1__Impl )
+ // InternalRBAModel.g:5786:2: rule__Tag__Group_1_1_1__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Tag__Group_1_1_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Tag__Group_1_1_1__1"
+
+
+ // $ANTLR start "rule__Tag__Group_1_1_1__1__Impl"
+ // InternalRBAModel.g:5792:1: rule__Tag__Group_1_1_1__1__Impl : ( ( rule__Tag__ValuesAssignment_1_1_1_1 ) ) ;
+ public final void rule__Tag__Group_1_1_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5796:1: ( ( ( rule__Tag__ValuesAssignment_1_1_1_1 ) ) )
+ // InternalRBAModel.g:5797:1: ( ( rule__Tag__ValuesAssignment_1_1_1_1 ) )
+ {
+ // InternalRBAModel.g:5797:1: ( ( rule__Tag__ValuesAssignment_1_1_1_1 ) )
+ // InternalRBAModel.g:5798:2: ( rule__Tag__ValuesAssignment_1_1_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getTagAccess().getValuesAssignment_1_1_1_1());
+ }
+ // InternalRBAModel.g:5799:2: ( rule__Tag__ValuesAssignment_1_1_1_1 )
+ // InternalRBAModel.g:5799:3: rule__Tag__ValuesAssignment_1_1_1_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__Tag__ValuesAssignment_1_1_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getTagAccess().getValuesAssignment_1_1_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Tag__Group_1_1_1__1__Impl"
+
+
+ // $ANTLR start "rule__Package__Group__0"
+ // InternalRBAModel.g:5808:1: rule__Package__Group__0 : rule__Package__Group__0__Impl rule__Package__Group__1 ;
+ public final void rule__Package__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5812:1: ( rule__Package__Group__0__Impl rule__Package__Group__1 )
+ // InternalRBAModel.g:5813:2: rule__Package__Group__0__Impl rule__Package__Group__1
+ {
+ pushFollow(FOLLOW_20);
+ rule__Package__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Package__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Package__Group__0"
+
+
+ // $ANTLR start "rule__Package__Group__0__Impl"
+ // InternalRBAModel.g:5820:1: rule__Package__Group__0__Impl : ( () ) ;
+ public final void rule__Package__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5824:1: ( ( () ) )
+ // InternalRBAModel.g:5825:1: ( () )
+ {
+ // InternalRBAModel.g:5825:1: ( () )
+ // InternalRBAModel.g:5826:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPackageAccess().getPackageAction_0());
+ }
+ // InternalRBAModel.g:5827:2: ()
+ // InternalRBAModel.g:5827:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPackageAccess().getPackageAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Package__Group__0__Impl"
+
+
+ // $ANTLR start "rule__Package__Group__1"
+ // InternalRBAModel.g:5835:1: rule__Package__Group__1 : rule__Package__Group__1__Impl rule__Package__Group__2 ;
+ public final void rule__Package__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5839:1: ( rule__Package__Group__1__Impl rule__Package__Group__2 )
+ // InternalRBAModel.g:5840:2: rule__Package__Group__1__Impl rule__Package__Group__2
+ {
+ pushFollow(FOLLOW_7);
+ rule__Package__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Package__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Package__Group__1"
+
+
+ // $ANTLR start "rule__Package__Group__1__Impl"
+ // InternalRBAModel.g:5847:1: rule__Package__Group__1__Impl : ( 'Package' ) ;
+ public final void rule__Package__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5851:1: ( ( 'Package' ) )
+ // InternalRBAModel.g:5852:1: ( 'Package' )
+ {
+ // InternalRBAModel.g:5852:1: ( 'Package' )
+ // InternalRBAModel.g:5853:2: 'Package'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPackageAccess().getPackageKeyword_1());
+ }
+ match(input,104,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPackageAccess().getPackageKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Package__Group__1__Impl"
+
+
+ // $ANTLR start "rule__Package__Group__2"
+ // InternalRBAModel.g:5862:1: rule__Package__Group__2 : rule__Package__Group__2__Impl rule__Package__Group__3 ;
+ public final void rule__Package__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5866:1: ( rule__Package__Group__2__Impl rule__Package__Group__3 )
+ // InternalRBAModel.g:5867:2: rule__Package__Group__2__Impl rule__Package__Group__3
+ {
+ pushFollow(FOLLOW_11);
+ rule__Package__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Package__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Package__Group__2"
+
+
+ // $ANTLR start "rule__Package__Group__2__Impl"
+ // InternalRBAModel.g:5874:1: rule__Package__Group__2__Impl : ( ( rule__Package__NameAssignment_2 ) ) ;
+ public final void rule__Package__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5878:1: ( ( ( rule__Package__NameAssignment_2 ) ) )
+ // InternalRBAModel.g:5879:1: ( ( rule__Package__NameAssignment_2 ) )
+ {
+ // InternalRBAModel.g:5879:1: ( ( rule__Package__NameAssignment_2 ) )
+ // InternalRBAModel.g:5880:2: ( rule__Package__NameAssignment_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPackageAccess().getNameAssignment_2());
+ }
+ // InternalRBAModel.g:5881:2: ( rule__Package__NameAssignment_2 )
+ // InternalRBAModel.g:5881:3: rule__Package__NameAssignment_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__Package__NameAssignment_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPackageAccess().getNameAssignment_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Package__Group__2__Impl"
+
+
+ // $ANTLR start "rule__Package__Group__3"
+ // InternalRBAModel.g:5889:1: rule__Package__Group__3 : rule__Package__Group__3__Impl rule__Package__Group__4 ;
+ public final void rule__Package__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5893:1: ( rule__Package__Group__3__Impl rule__Package__Group__4 )
+ // InternalRBAModel.g:5894:2: rule__Package__Group__3__Impl rule__Package__Group__4
+ {
+ pushFollow(FOLLOW_21);
+ rule__Package__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Package__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Package__Group__3"
+
+
+ // $ANTLR start "rule__Package__Group__3__Impl"
+ // InternalRBAModel.g:5901:1: rule__Package__Group__3__Impl : ( '{' ) ;
+ public final void rule__Package__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5905:1: ( ( '{' ) )
+ // InternalRBAModel.g:5906:1: ( '{' )
+ {
+ // InternalRBAModel.g:5906:1: ( '{' )
+ // InternalRBAModel.g:5907:2: '{'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPackageAccess().getLeftCurlyBracketKeyword_3());
+ }
+ match(input,101,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPackageAccess().getLeftCurlyBracketKeyword_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Package__Group__3__Impl"
+
+
+ // $ANTLR start "rule__Package__Group__4"
+ // InternalRBAModel.g:5916:1: rule__Package__Group__4 : rule__Package__Group__4__Impl rule__Package__Group__5 ;
+ public final void rule__Package__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5920:1: ( rule__Package__Group__4__Impl rule__Package__Group__5 )
+ // InternalRBAModel.g:5921:2: rule__Package__Group__4__Impl rule__Package__Group__5
+ {
+ pushFollow(FOLLOW_22);
+ rule__Package__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Package__Group__5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Package__Group__4"
+
+
+ // $ANTLR start "rule__Package__Group__4__Impl"
+ // InternalRBAModel.g:5928:1: rule__Package__Group__4__Impl : ( ( rule__Package__UnorderedGroup_4 ) ) ;
+ public final void rule__Package__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5932:1: ( ( ( rule__Package__UnorderedGroup_4 ) ) )
+ // InternalRBAModel.g:5933:1: ( ( rule__Package__UnorderedGroup_4 ) )
+ {
+ // InternalRBAModel.g:5933:1: ( ( rule__Package__UnorderedGroup_4 ) )
+ // InternalRBAModel.g:5934:2: ( rule__Package__UnorderedGroup_4 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPackageAccess().getUnorderedGroup_4());
+ }
+ // InternalRBAModel.g:5935:2: ( rule__Package__UnorderedGroup_4 )
+ // InternalRBAModel.g:5935:3: rule__Package__UnorderedGroup_4
+ {
+ pushFollow(FOLLOW_2);
+ rule__Package__UnorderedGroup_4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPackageAccess().getUnorderedGroup_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Package__Group__4__Impl"
+
+
+ // $ANTLR start "rule__Package__Group__5"
+ // InternalRBAModel.g:5943:1: rule__Package__Group__5 : rule__Package__Group__5__Impl ;
+ public final void rule__Package__Group__5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5947:1: ( rule__Package__Group__5__Impl )
+ // InternalRBAModel.g:5948:2: rule__Package__Group__5__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Package__Group__5__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Package__Group__5"
+
+
+ // $ANTLR start "rule__Package__Group__5__Impl"
+ // InternalRBAModel.g:5954:1: rule__Package__Group__5__Impl : ( '}' ) ;
+ public final void rule__Package__Group__5__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5958:1: ( ( '}' ) )
+ // InternalRBAModel.g:5959:1: ( '}' )
+ {
+ // InternalRBAModel.g:5959:1: ( '}' )
+ // InternalRBAModel.g:5960:2: '}'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPackageAccess().getRightCurlyBracketKeyword_5());
+ }
+ match(input,102,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPackageAccess().getRightCurlyBracketKeyword_5());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Package__Group__5__Impl"
+
+
+ // $ANTLR start "rule__Package__Group_4_0__0"
+ // InternalRBAModel.g:5970:1: rule__Package__Group_4_0__0 : rule__Package__Group_4_0__0__Impl rule__Package__Group_4_0__1 ;
+ public final void rule__Package__Group_4_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5974:1: ( rule__Package__Group_4_0__0__Impl rule__Package__Group_4_0__1 )
+ // InternalRBAModel.g:5975:2: rule__Package__Group_4_0__0__Impl rule__Package__Group_4_0__1
+ {
+ pushFollow(FOLLOW_19);
+ rule__Package__Group_4_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Package__Group_4_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Package__Group_4_0__0"
+
+
+ // $ANTLR start "rule__Package__Group_4_0__0__Impl"
+ // InternalRBAModel.g:5982:1: rule__Package__Group_4_0__0__Impl : ( 'description:' ) ;
+ public final void rule__Package__Group_4_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:5986:1: ( ( 'description:' ) )
+ // InternalRBAModel.g:5987:1: ( 'description:' )
+ {
+ // InternalRBAModel.g:5987:1: ( 'description:' )
+ // InternalRBAModel.g:5988:2: 'description:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPackageAccess().getDescriptionKeyword_4_0_0());
+ }
+ match(input,105,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPackageAccess().getDescriptionKeyword_4_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Package__Group_4_0__0__Impl"
+
+
+ // $ANTLR start "rule__Package__Group_4_0__1"
+ // InternalRBAModel.g:5997:1: rule__Package__Group_4_0__1 : rule__Package__Group_4_0__1__Impl ;
+ public final void rule__Package__Group_4_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6001:1: ( rule__Package__Group_4_0__1__Impl )
+ // InternalRBAModel.g:6002:2: rule__Package__Group_4_0__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Package__Group_4_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Package__Group_4_0__1"
+
+
+ // $ANTLR start "rule__Package__Group_4_0__1__Impl"
+ // InternalRBAModel.g:6008:1: rule__Package__Group_4_0__1__Impl : ( ( rule__Package__DescriptionAssignment_4_0_1 ) ) ;
+ public final void rule__Package__Group_4_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6012:1: ( ( ( rule__Package__DescriptionAssignment_4_0_1 ) ) )
+ // InternalRBAModel.g:6013:1: ( ( rule__Package__DescriptionAssignment_4_0_1 ) )
+ {
+ // InternalRBAModel.g:6013:1: ( ( rule__Package__DescriptionAssignment_4_0_1 ) )
+ // InternalRBAModel.g:6014:2: ( rule__Package__DescriptionAssignment_4_0_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPackageAccess().getDescriptionAssignment_4_0_1());
+ }
+ // InternalRBAModel.g:6015:2: ( rule__Package__DescriptionAssignment_4_0_1 )
+ // InternalRBAModel.g:6015:3: rule__Package__DescriptionAssignment_4_0_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__Package__DescriptionAssignment_4_0_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPackageAccess().getDescriptionAssignment_4_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Package__Group_4_0__1__Impl"
+
+
+ // $ANTLR start "rule__Stereotype__Group__0"
+ // InternalRBAModel.g:6024:1: rule__Stereotype__Group__0 : rule__Stereotype__Group__0__Impl rule__Stereotype__Group__1 ;
+ public final void rule__Stereotype__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6028:1: ( rule__Stereotype__Group__0__Impl rule__Stereotype__Group__1 )
+ // InternalRBAModel.g:6029:2: rule__Stereotype__Group__0__Impl rule__Stereotype__Group__1
+ {
+ pushFollow(FOLLOW_23);
+ rule__Stereotype__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Stereotype__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Stereotype__Group__0"
+
+
+ // $ANTLR start "rule__Stereotype__Group__0__Impl"
+ // InternalRBAModel.g:6036:1: rule__Stereotype__Group__0__Impl : ( () ) ;
+ public final void rule__Stereotype__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6040:1: ( ( () ) )
+ // InternalRBAModel.g:6041:1: ( () )
+ {
+ // InternalRBAModel.g:6041:1: ( () )
+ // InternalRBAModel.g:6042:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getStereotypeAccess().getStereotypeAction_0());
+ }
+ // InternalRBAModel.g:6043:2: ()
+ // InternalRBAModel.g:6043:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getStereotypeAccess().getStereotypeAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Stereotype__Group__0__Impl"
+
+
+ // $ANTLR start "rule__Stereotype__Group__1"
+ // InternalRBAModel.g:6051:1: rule__Stereotype__Group__1 : rule__Stereotype__Group__1__Impl rule__Stereotype__Group__2 ;
+ public final void rule__Stereotype__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6055:1: ( rule__Stereotype__Group__1__Impl rule__Stereotype__Group__2 )
+ // InternalRBAModel.g:6056:2: rule__Stereotype__Group__1__Impl rule__Stereotype__Group__2
+ {
+ pushFollow(FOLLOW_24);
+ rule__Stereotype__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Stereotype__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Stereotype__Group__1"
+
+
+ // $ANTLR start "rule__Stereotype__Group__1__Impl"
+ // InternalRBAModel.g:6063:1: rule__Stereotype__Group__1__Impl : ( 'Stereotype' ) ;
+ public final void rule__Stereotype__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6067:1: ( ( 'Stereotype' ) )
+ // InternalRBAModel.g:6068:1: ( 'Stereotype' )
+ {
+ // InternalRBAModel.g:6068:1: ( 'Stereotype' )
+ // InternalRBAModel.g:6069:2: 'Stereotype'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getStereotypeAccess().getStereotypeKeyword_1());
+ }
+ match(input,106,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getStereotypeAccess().getStereotypeKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Stereotype__Group__1__Impl"
+
+
+ // $ANTLR start "rule__Stereotype__Group__2"
+ // InternalRBAModel.g:6078:1: rule__Stereotype__Group__2 : rule__Stereotype__Group__2__Impl rule__Stereotype__Group__3 ;
+ public final void rule__Stereotype__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6082:1: ( rule__Stereotype__Group__2__Impl rule__Stereotype__Group__3 )
+ // InternalRBAModel.g:6083:2: rule__Stereotype__Group__2__Impl rule__Stereotype__Group__3
+ {
+ pushFollow(FOLLOW_25);
+ rule__Stereotype__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Stereotype__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Stereotype__Group__2"
+
+
+ // $ANTLR start "rule__Stereotype__Group__2__Impl"
+ // InternalRBAModel.g:6090:1: rule__Stereotype__Group__2__Impl : ( '<' ) ;
+ public final void rule__Stereotype__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6094:1: ( ( '<' ) )
+ // InternalRBAModel.g:6095:1: ( '<' )
+ {
+ // InternalRBAModel.g:6095:1: ( '<' )
+ // InternalRBAModel.g:6096:2: '<'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getStereotypeAccess().getLessThanSignKeyword_2());
+ }
+ match(input,22,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getStereotypeAccess().getLessThanSignKeyword_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Stereotype__Group__2__Impl"
+
+
+ // $ANTLR start "rule__Stereotype__Group__3"
+ // InternalRBAModel.g:6105:1: rule__Stereotype__Group__3 : rule__Stereotype__Group__3__Impl rule__Stereotype__Group__4 ;
+ public final void rule__Stereotype__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6109:1: ( rule__Stereotype__Group__3__Impl rule__Stereotype__Group__4 )
+ // InternalRBAModel.g:6110:2: rule__Stereotype__Group__3__Impl rule__Stereotype__Group__4
+ {
+ pushFollow(FOLLOW_26);
+ rule__Stereotype__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Stereotype__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Stereotype__Group__3"
+
+
+ // $ANTLR start "rule__Stereotype__Group__3__Impl"
+ // InternalRBAModel.g:6117:1: rule__Stereotype__Group__3__Impl : ( ( rule__Stereotype__TargetModelNameAssignment_3 ) ) ;
+ public final void rule__Stereotype__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6121:1: ( ( ( rule__Stereotype__TargetModelNameAssignment_3 ) ) )
+ // InternalRBAModel.g:6122:1: ( ( rule__Stereotype__TargetModelNameAssignment_3 ) )
+ {
+ // InternalRBAModel.g:6122:1: ( ( rule__Stereotype__TargetModelNameAssignment_3 ) )
+ // InternalRBAModel.g:6123:2: ( rule__Stereotype__TargetModelNameAssignment_3 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getStereotypeAccess().getTargetModelNameAssignment_3());
+ }
+ // InternalRBAModel.g:6124:2: ( rule__Stereotype__TargetModelNameAssignment_3 )
+ // InternalRBAModel.g:6124:3: rule__Stereotype__TargetModelNameAssignment_3
+ {
+ pushFollow(FOLLOW_2);
+ rule__Stereotype__TargetModelNameAssignment_3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getStereotypeAccess().getTargetModelNameAssignment_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Stereotype__Group__3__Impl"
+
+
+ // $ANTLR start "rule__Stereotype__Group__4"
+ // InternalRBAModel.g:6132:1: rule__Stereotype__Group__4 : rule__Stereotype__Group__4__Impl rule__Stereotype__Group__5 ;
+ public final void rule__Stereotype__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6136:1: ( rule__Stereotype__Group__4__Impl rule__Stereotype__Group__5 )
+ // InternalRBAModel.g:6137:2: rule__Stereotype__Group__4__Impl rule__Stereotype__Group__5
+ {
+ pushFollow(FOLLOW_7);
+ rule__Stereotype__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Stereotype__Group__5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Stereotype__Group__4"
+
+
+ // $ANTLR start "rule__Stereotype__Group__4__Impl"
+ // InternalRBAModel.g:6144:1: rule__Stereotype__Group__4__Impl : ( '>' ) ;
+ public final void rule__Stereotype__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6148:1: ( ( '>' ) )
+ // InternalRBAModel.g:6149:1: ( '>' )
+ {
+ // InternalRBAModel.g:6149:1: ( '>' )
+ // InternalRBAModel.g:6150:2: '>'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getStereotypeAccess().getGreaterThanSignKeyword_4());
+ }
+ match(input,21,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getStereotypeAccess().getGreaterThanSignKeyword_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Stereotype__Group__4__Impl"
+
+
+ // $ANTLR start "rule__Stereotype__Group__5"
+ // InternalRBAModel.g:6159:1: rule__Stereotype__Group__5 : rule__Stereotype__Group__5__Impl rule__Stereotype__Group__6 ;
+ public final void rule__Stereotype__Group__5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6163:1: ( rule__Stereotype__Group__5__Impl rule__Stereotype__Group__6 )
+ // InternalRBAModel.g:6164:2: rule__Stereotype__Group__5__Impl rule__Stereotype__Group__6
+ {
+ pushFollow(FOLLOW_27);
+ rule__Stereotype__Group__5__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Stereotype__Group__6();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Stereotype__Group__5"
+
+
+ // $ANTLR start "rule__Stereotype__Group__5__Impl"
+ // InternalRBAModel.g:6171:1: rule__Stereotype__Group__5__Impl : ( ( rule__Stereotype__NameAssignment_5 ) ) ;
+ public final void rule__Stereotype__Group__5__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6175:1: ( ( ( rule__Stereotype__NameAssignment_5 ) ) )
+ // InternalRBAModel.g:6176:1: ( ( rule__Stereotype__NameAssignment_5 ) )
+ {
+ // InternalRBAModel.g:6176:1: ( ( rule__Stereotype__NameAssignment_5 ) )
+ // InternalRBAModel.g:6177:2: ( rule__Stereotype__NameAssignment_5 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getStereotypeAccess().getNameAssignment_5());
+ }
+ // InternalRBAModel.g:6178:2: ( rule__Stereotype__NameAssignment_5 )
+ // InternalRBAModel.g:6178:3: rule__Stereotype__NameAssignment_5
+ {
+ pushFollow(FOLLOW_2);
+ rule__Stereotype__NameAssignment_5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getStereotypeAccess().getNameAssignment_5());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Stereotype__Group__5__Impl"
+
+
+ // $ANTLR start "rule__Stereotype__Group__6"
+ // InternalRBAModel.g:6186:1: rule__Stereotype__Group__6 : rule__Stereotype__Group__6__Impl rule__Stereotype__Group__7 ;
+ public final void rule__Stereotype__Group__6() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6190:1: ( rule__Stereotype__Group__6__Impl rule__Stereotype__Group__7 )
+ // InternalRBAModel.g:6191:2: rule__Stereotype__Group__6__Impl rule__Stereotype__Group__7
+ {
+ pushFollow(FOLLOW_28);
+ rule__Stereotype__Group__6__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Stereotype__Group__7();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Stereotype__Group__6"
+
+
+ // $ANTLR start "rule__Stereotype__Group__6__Impl"
+ // InternalRBAModel.g:6198:1: rule__Stereotype__Group__6__Impl : ( '(' ) ;
+ public final void rule__Stereotype__Group__6__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6202:1: ( ( '(' ) )
+ // InternalRBAModel.g:6203:1: ( '(' )
+ {
+ // InternalRBAModel.g:6203:1: ( '(' )
+ // InternalRBAModel.g:6204:2: '('
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getStereotypeAccess().getLeftParenthesisKeyword_6());
+ }
+ match(input,107,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getStereotypeAccess().getLeftParenthesisKeyword_6());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Stereotype__Group__6__Impl"
+
+
+ // $ANTLR start "rule__Stereotype__Group__7"
+ // InternalRBAModel.g:6213:1: rule__Stereotype__Group__7 : rule__Stereotype__Group__7__Impl rule__Stereotype__Group__8 ;
+ public final void rule__Stereotype__Group__7() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6217:1: ( rule__Stereotype__Group__7__Impl rule__Stereotype__Group__8 )
+ // InternalRBAModel.g:6218:2: rule__Stereotype__Group__7__Impl rule__Stereotype__Group__8
+ {
+ pushFollow(FOLLOW_28);
+ rule__Stereotype__Group__7__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Stereotype__Group__8();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Stereotype__Group__7"
+
+
+ // $ANTLR start "rule__Stereotype__Group__7__Impl"
+ // InternalRBAModel.g:6225:1: rule__Stereotype__Group__7__Impl : ( ( rule__Stereotype__Group_7__0 )? ) ;
+ public final void rule__Stereotype__Group__7__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6229:1: ( ( ( rule__Stereotype__Group_7__0 )? ) )
+ // InternalRBAModel.g:6230:1: ( ( rule__Stereotype__Group_7__0 )? )
+ {
+ // InternalRBAModel.g:6230:1: ( ( rule__Stereotype__Group_7__0 )? )
+ // InternalRBAModel.g:6231:2: ( rule__Stereotype__Group_7__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getStereotypeAccess().getGroup_7());
+ }
+ // InternalRBAModel.g:6232:2: ( rule__Stereotype__Group_7__0 )?
+ int alt44=2;
+ int LA44_0 = input.LA(1);
+
+ if ( (LA44_0==RULE_ID) ) {
+ alt44=1;
+ }
+ switch (alt44) {
+ case 1 :
+ // InternalRBAModel.g:6232:3: rule__Stereotype__Group_7__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Stereotype__Group_7__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getStereotypeAccess().getGroup_7());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Stereotype__Group__7__Impl"
+
+
+ // $ANTLR start "rule__Stereotype__Group__8"
+ // InternalRBAModel.g:6240:1: rule__Stereotype__Group__8 : rule__Stereotype__Group__8__Impl rule__Stereotype__Group__9 ;
+ public final void rule__Stereotype__Group__8() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6244:1: ( rule__Stereotype__Group__8__Impl rule__Stereotype__Group__9 )
+ // InternalRBAModel.g:6245:2: rule__Stereotype__Group__8__Impl rule__Stereotype__Group__9
+ {
+ pushFollow(FOLLOW_29);
+ rule__Stereotype__Group__8__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Stereotype__Group__9();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Stereotype__Group__8"
+
+
+ // $ANTLR start "rule__Stereotype__Group__8__Impl"
+ // InternalRBAModel.g:6252:1: rule__Stereotype__Group__8__Impl : ( ')' ) ;
+ public final void rule__Stereotype__Group__8__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6256:1: ( ( ')' ) )
+ // InternalRBAModel.g:6257:1: ( ')' )
+ {
+ // InternalRBAModel.g:6257:1: ( ')' )
+ // InternalRBAModel.g:6258:2: ')'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getStereotypeAccess().getRightParenthesisKeyword_8());
+ }
+ match(input,108,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getStereotypeAccess().getRightParenthesisKeyword_8());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Stereotype__Group__8__Impl"
+
+
+ // $ANTLR start "rule__Stereotype__Group__9"
+ // InternalRBAModel.g:6267:1: rule__Stereotype__Group__9 : rule__Stereotype__Group__9__Impl ;
+ public final void rule__Stereotype__Group__9() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6271:1: ( rule__Stereotype__Group__9__Impl )
+ // InternalRBAModel.g:6272:2: rule__Stereotype__Group__9__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Stereotype__Group__9__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Stereotype__Group__9"
+
+
+ // $ANTLR start "rule__Stereotype__Group__9__Impl"
+ // InternalRBAModel.g:6278:1: rule__Stereotype__Group__9__Impl : ( ( rule__Stereotype__BodyTextAssignment_9 )? ) ;
+ public final void rule__Stereotype__Group__9__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6282:1: ( ( ( rule__Stereotype__BodyTextAssignment_9 )? ) )
+ // InternalRBAModel.g:6283:1: ( ( rule__Stereotype__BodyTextAssignment_9 )? )
+ {
+ // InternalRBAModel.g:6283:1: ( ( rule__Stereotype__BodyTextAssignment_9 )? )
+ // InternalRBAModel.g:6284:2: ( rule__Stereotype__BodyTextAssignment_9 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getStereotypeAccess().getBodyTextAssignment_9());
+ }
+ // InternalRBAModel.g:6285:2: ( rule__Stereotype__BodyTextAssignment_9 )?
+ int alt45=2;
+ int LA45_0 = input.LA(1);
+
+ if ( (LA45_0==RULE_RICH_STRING) ) {
+ alt45=1;
+ }
+ switch (alt45) {
+ case 1 :
+ // InternalRBAModel.g:6285:3: rule__Stereotype__BodyTextAssignment_9
+ {
+ pushFollow(FOLLOW_2);
+ rule__Stereotype__BodyTextAssignment_9();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getStereotypeAccess().getBodyTextAssignment_9());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Stereotype__Group__9__Impl"
+
+
+ // $ANTLR start "rule__Stereotype__Group_7__0"
+ // InternalRBAModel.g:6294:1: rule__Stereotype__Group_7__0 : rule__Stereotype__Group_7__0__Impl rule__Stereotype__Group_7__1 ;
+ public final void rule__Stereotype__Group_7__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6298:1: ( rule__Stereotype__Group_7__0__Impl rule__Stereotype__Group_7__1 )
+ // InternalRBAModel.g:6299:2: rule__Stereotype__Group_7__0__Impl rule__Stereotype__Group_7__1
+ {
+ pushFollow(FOLLOW_17);
+ rule__Stereotype__Group_7__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Stereotype__Group_7__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Stereotype__Group_7__0"
+
+
+ // $ANTLR start "rule__Stereotype__Group_7__0__Impl"
+ // InternalRBAModel.g:6306:1: rule__Stereotype__Group_7__0__Impl : ( ( rule__Stereotype__VariablesAssignment_7_0 ) ) ;
+ public final void rule__Stereotype__Group_7__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6310:1: ( ( ( rule__Stereotype__VariablesAssignment_7_0 ) ) )
+ // InternalRBAModel.g:6311:1: ( ( rule__Stereotype__VariablesAssignment_7_0 ) )
+ {
+ // InternalRBAModel.g:6311:1: ( ( rule__Stereotype__VariablesAssignment_7_0 ) )
+ // InternalRBAModel.g:6312:2: ( rule__Stereotype__VariablesAssignment_7_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getStereotypeAccess().getVariablesAssignment_7_0());
+ }
+ // InternalRBAModel.g:6313:2: ( rule__Stereotype__VariablesAssignment_7_0 )
+ // InternalRBAModel.g:6313:3: rule__Stereotype__VariablesAssignment_7_0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Stereotype__VariablesAssignment_7_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getStereotypeAccess().getVariablesAssignment_7_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Stereotype__Group_7__0__Impl"
+
+
+ // $ANTLR start "rule__Stereotype__Group_7__1"
+ // InternalRBAModel.g:6321:1: rule__Stereotype__Group_7__1 : rule__Stereotype__Group_7__1__Impl ;
+ public final void rule__Stereotype__Group_7__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6325:1: ( rule__Stereotype__Group_7__1__Impl )
+ // InternalRBAModel.g:6326:2: rule__Stereotype__Group_7__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Stereotype__Group_7__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Stereotype__Group_7__1"
+
+
+ // $ANTLR start "rule__Stereotype__Group_7__1__Impl"
+ // InternalRBAModel.g:6332:1: rule__Stereotype__Group_7__1__Impl : ( ( rule__Stereotype__Group_7_1__0 )* ) ;
+ public final void rule__Stereotype__Group_7__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6336:1: ( ( ( rule__Stereotype__Group_7_1__0 )* ) )
+ // InternalRBAModel.g:6337:1: ( ( rule__Stereotype__Group_7_1__0 )* )
+ {
+ // InternalRBAModel.g:6337:1: ( ( rule__Stereotype__Group_7_1__0 )* )
+ // InternalRBAModel.g:6338:2: ( rule__Stereotype__Group_7_1__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getStereotypeAccess().getGroup_7_1());
+ }
+ // InternalRBAModel.g:6339:2: ( rule__Stereotype__Group_7_1__0 )*
+ loop46:
+ do {
+ int alt46=2;
+ int LA46_0 = input.LA(1);
+
+ if ( (LA46_0==103) ) {
+ alt46=1;
+ }
+
+
+ switch (alt46) {
+ case 1 :
+ // InternalRBAModel.g:6339:3: rule__Stereotype__Group_7_1__0
+ {
+ pushFollow(FOLLOW_18);
+ rule__Stereotype__Group_7_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop46;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getStereotypeAccess().getGroup_7_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Stereotype__Group_7__1__Impl"
+
+
+ // $ANTLR start "rule__Stereotype__Group_7_1__0"
+ // InternalRBAModel.g:6348:1: rule__Stereotype__Group_7_1__0 : rule__Stereotype__Group_7_1__0__Impl rule__Stereotype__Group_7_1__1 ;
+ public final void rule__Stereotype__Group_7_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6352:1: ( rule__Stereotype__Group_7_1__0__Impl rule__Stereotype__Group_7_1__1 )
+ // InternalRBAModel.g:6353:2: rule__Stereotype__Group_7_1__0__Impl rule__Stereotype__Group_7_1__1
+ {
+ pushFollow(FOLLOW_7);
+ rule__Stereotype__Group_7_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Stereotype__Group_7_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Stereotype__Group_7_1__0"
+
+
+ // $ANTLR start "rule__Stereotype__Group_7_1__0__Impl"
+ // InternalRBAModel.g:6360:1: rule__Stereotype__Group_7_1__0__Impl : ( ',' ) ;
+ public final void rule__Stereotype__Group_7_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6364:1: ( ( ',' ) )
+ // InternalRBAModel.g:6365:1: ( ',' )
+ {
+ // InternalRBAModel.g:6365:1: ( ',' )
+ // InternalRBAModel.g:6366:2: ','
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getStereotypeAccess().getCommaKeyword_7_1_0());
+ }
+ match(input,103,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getStereotypeAccess().getCommaKeyword_7_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Stereotype__Group_7_1__0__Impl"
+
+
+ // $ANTLR start "rule__Stereotype__Group_7_1__1"
+ // InternalRBAModel.g:6375:1: rule__Stereotype__Group_7_1__1 : rule__Stereotype__Group_7_1__1__Impl ;
+ public final void rule__Stereotype__Group_7_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6379:1: ( rule__Stereotype__Group_7_1__1__Impl )
+ // InternalRBAModel.g:6380:2: rule__Stereotype__Group_7_1__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Stereotype__Group_7_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Stereotype__Group_7_1__1"
+
+
+ // $ANTLR start "rule__Stereotype__Group_7_1__1__Impl"
+ // InternalRBAModel.g:6386:1: rule__Stereotype__Group_7_1__1__Impl : ( ( rule__Stereotype__VariablesAssignment_7_1_1 ) ) ;
+ public final void rule__Stereotype__Group_7_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6390:1: ( ( ( rule__Stereotype__VariablesAssignment_7_1_1 ) ) )
+ // InternalRBAModel.g:6391:1: ( ( rule__Stereotype__VariablesAssignment_7_1_1 ) )
+ {
+ // InternalRBAModel.g:6391:1: ( ( rule__Stereotype__VariablesAssignment_7_1_1 ) )
+ // InternalRBAModel.g:6392:2: ( rule__Stereotype__VariablesAssignment_7_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getStereotypeAccess().getVariablesAssignment_7_1_1());
+ }
+ // InternalRBAModel.g:6393:2: ( rule__Stereotype__VariablesAssignment_7_1_1 )
+ // InternalRBAModel.g:6393:3: rule__Stereotype__VariablesAssignment_7_1_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__Stereotype__VariablesAssignment_7_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getStereotypeAccess().getVariablesAssignment_7_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Stereotype__Group_7_1__1__Impl"
+
+
+ // $ANTLR start "rule__Display__Group__0"
+ // InternalRBAModel.g:6402:1: rule__Display__Group__0 : rule__Display__Group__0__Impl rule__Display__Group__1 ;
+ public final void rule__Display__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6406:1: ( rule__Display__Group__0__Impl rule__Display__Group__1 )
+ // InternalRBAModel.g:6407:2: rule__Display__Group__0__Impl rule__Display__Group__1
+ {
+ pushFollow(FOLLOW_30);
+ rule__Display__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Display__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Display__Group__0"
+
+
+ // $ANTLR start "rule__Display__Group__0__Impl"
+ // InternalRBAModel.g:6414:1: rule__Display__Group__0__Impl : ( () ) ;
+ public final void rule__Display__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6418:1: ( ( () ) )
+ // InternalRBAModel.g:6419:1: ( () )
+ {
+ // InternalRBAModel.g:6419:1: ( () )
+ // InternalRBAModel.g:6420:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getDisplayAccess().getDisplayAction_0());
+ }
+ // InternalRBAModel.g:6421:2: ()
+ // InternalRBAModel.g:6421:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getDisplayAccess().getDisplayAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Display__Group__0__Impl"
+
+
+ // $ANTLR start "rule__Display__Group__1"
+ // InternalRBAModel.g:6429:1: rule__Display__Group__1 : rule__Display__Group__1__Impl rule__Display__Group__2 ;
+ public final void rule__Display__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6433:1: ( rule__Display__Group__1__Impl rule__Display__Group__2 )
+ // InternalRBAModel.g:6434:2: rule__Display__Group__1__Impl rule__Display__Group__2
+ {
+ pushFollow(FOLLOW_7);
+ rule__Display__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Display__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Display__Group__1"
+
+
+ // $ANTLR start "rule__Display__Group__1__Impl"
+ // InternalRBAModel.g:6441:1: rule__Display__Group__1__Impl : ( 'Display' ) ;
+ public final void rule__Display__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6445:1: ( ( 'Display' ) )
+ // InternalRBAModel.g:6446:1: ( 'Display' )
+ {
+ // InternalRBAModel.g:6446:1: ( 'Display' )
+ // InternalRBAModel.g:6447:2: 'Display'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getDisplayAccess().getDisplayKeyword_1());
+ }
+ match(input,109,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getDisplayAccess().getDisplayKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Display__Group__1__Impl"
+
+
+ // $ANTLR start "rule__Display__Group__2"
+ // InternalRBAModel.g:6456:1: rule__Display__Group__2 : rule__Display__Group__2__Impl rule__Display__Group__3 ;
+ public final void rule__Display__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6460:1: ( rule__Display__Group__2__Impl rule__Display__Group__3 )
+ // InternalRBAModel.g:6461:2: rule__Display__Group__2__Impl rule__Display__Group__3
+ {
+ pushFollow(FOLLOW_11);
+ rule__Display__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Display__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Display__Group__2"
+
+
+ // $ANTLR start "rule__Display__Group__2__Impl"
+ // InternalRBAModel.g:6468:1: rule__Display__Group__2__Impl : ( ( rule__Display__NameAssignment_2 ) ) ;
+ public final void rule__Display__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6472:1: ( ( ( rule__Display__NameAssignment_2 ) ) )
+ // InternalRBAModel.g:6473:1: ( ( rule__Display__NameAssignment_2 ) )
+ {
+ // InternalRBAModel.g:6473:1: ( ( rule__Display__NameAssignment_2 ) )
+ // InternalRBAModel.g:6474:2: ( rule__Display__NameAssignment_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getDisplayAccess().getNameAssignment_2());
+ }
+ // InternalRBAModel.g:6475:2: ( rule__Display__NameAssignment_2 )
+ // InternalRBAModel.g:6475:3: rule__Display__NameAssignment_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__Display__NameAssignment_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getDisplayAccess().getNameAssignment_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Display__Group__2__Impl"
+
+
+ // $ANTLR start "rule__Display__Group__3"
+ // InternalRBAModel.g:6483:1: rule__Display__Group__3 : rule__Display__Group__3__Impl rule__Display__Group__4 ;
+ public final void rule__Display__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6487:1: ( rule__Display__Group__3__Impl rule__Display__Group__4 )
+ // InternalRBAModel.g:6488:2: rule__Display__Group__3__Impl rule__Display__Group__4
+ {
+ pushFollow(FOLLOW_31);
+ rule__Display__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Display__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Display__Group__3"
+
+
+ // $ANTLR start "rule__Display__Group__3__Impl"
+ // InternalRBAModel.g:6495:1: rule__Display__Group__3__Impl : ( '{' ) ;
+ public final void rule__Display__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6499:1: ( ( '{' ) )
+ // InternalRBAModel.g:6500:1: ( '{' )
+ {
+ // InternalRBAModel.g:6500:1: ( '{' )
+ // InternalRBAModel.g:6501:2: '{'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getDisplayAccess().getLeftCurlyBracketKeyword_3());
+ }
+ match(input,101,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getDisplayAccess().getLeftCurlyBracketKeyword_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Display__Group__3__Impl"
+
+
+ // $ANTLR start "rule__Display__Group__4"
+ // InternalRBAModel.g:6510:1: rule__Display__Group__4 : rule__Display__Group__4__Impl rule__Display__Group__5 ;
+ public final void rule__Display__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6514:1: ( rule__Display__Group__4__Impl rule__Display__Group__5 )
+ // InternalRBAModel.g:6515:2: rule__Display__Group__4__Impl rule__Display__Group__5
+ {
+ pushFollow(FOLLOW_22);
+ rule__Display__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Display__Group__5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Display__Group__4"
+
+
+ // $ANTLR start "rule__Display__Group__4__Impl"
+ // InternalRBAModel.g:6522:1: rule__Display__Group__4__Impl : ( ( rule__Display__UnorderedGroup_4 ) ) ;
+ public final void rule__Display__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6526:1: ( ( ( rule__Display__UnorderedGroup_4 ) ) )
+ // InternalRBAModel.g:6527:1: ( ( rule__Display__UnorderedGroup_4 ) )
+ {
+ // InternalRBAModel.g:6527:1: ( ( rule__Display__UnorderedGroup_4 ) )
+ // InternalRBAModel.g:6528:2: ( rule__Display__UnorderedGroup_4 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getDisplayAccess().getUnorderedGroup_4());
+ }
+ // InternalRBAModel.g:6529:2: ( rule__Display__UnorderedGroup_4 )
+ // InternalRBAModel.g:6529:3: rule__Display__UnorderedGroup_4
+ {
+ pushFollow(FOLLOW_2);
+ rule__Display__UnorderedGroup_4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getDisplayAccess().getUnorderedGroup_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Display__Group__4__Impl"
+
+
+ // $ANTLR start "rule__Display__Group__5"
+ // InternalRBAModel.g:6537:1: rule__Display__Group__5 : rule__Display__Group__5__Impl ;
+ public final void rule__Display__Group__5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6541:1: ( rule__Display__Group__5__Impl )
+ // InternalRBAModel.g:6542:2: rule__Display__Group__5__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Display__Group__5__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Display__Group__5"
+
+
+ // $ANTLR start "rule__Display__Group__5__Impl"
+ // InternalRBAModel.g:6548:1: rule__Display__Group__5__Impl : ( '}' ) ;
+ public final void rule__Display__Group__5__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6552:1: ( ( '}' ) )
+ // InternalRBAModel.g:6553:1: ( '}' )
+ {
+ // InternalRBAModel.g:6553:1: ( '}' )
+ // InternalRBAModel.g:6554:2: '}'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getDisplayAccess().getRightCurlyBracketKeyword_5());
+ }
+ match(input,102,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getDisplayAccess().getRightCurlyBracketKeyword_5());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Display__Group__5__Impl"
+
+
+ // $ANTLR start "rule__Display__Group_4_0__0"
+ // InternalRBAModel.g:6564:1: rule__Display__Group_4_0__0 : rule__Display__Group_4_0__0__Impl rule__Display__Group_4_0__1 ;
+ public final void rule__Display__Group_4_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6568:1: ( rule__Display__Group_4_0__0__Impl rule__Display__Group_4_0__1 )
+ // InternalRBAModel.g:6569:2: rule__Display__Group_4_0__0__Impl rule__Display__Group_4_0__1
+ {
+ pushFollow(FOLLOW_19);
+ rule__Display__Group_4_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Display__Group_4_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Display__Group_4_0__0"
+
+
+ // $ANTLR start "rule__Display__Group_4_0__0__Impl"
+ // InternalRBAModel.g:6576:1: rule__Display__Group_4_0__0__Impl : ( 'description:' ) ;
+ public final void rule__Display__Group_4_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6580:1: ( ( 'description:' ) )
+ // InternalRBAModel.g:6581:1: ( 'description:' )
+ {
+ // InternalRBAModel.g:6581:1: ( 'description:' )
+ // InternalRBAModel.g:6582:2: 'description:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getDisplayAccess().getDescriptionKeyword_4_0_0());
+ }
+ match(input,105,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getDisplayAccess().getDescriptionKeyword_4_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Display__Group_4_0__0__Impl"
+
+
+ // $ANTLR start "rule__Display__Group_4_0__1"
+ // InternalRBAModel.g:6591:1: rule__Display__Group_4_0__1 : rule__Display__Group_4_0__1__Impl ;
+ public final void rule__Display__Group_4_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6595:1: ( rule__Display__Group_4_0__1__Impl )
+ // InternalRBAModel.g:6596:2: rule__Display__Group_4_0__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Display__Group_4_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Display__Group_4_0__1"
+
+
+ // $ANTLR start "rule__Display__Group_4_0__1__Impl"
+ // InternalRBAModel.g:6602:1: rule__Display__Group_4_0__1__Impl : ( ( rule__Display__DescriptionAssignment_4_0_1 ) ) ;
+ public final void rule__Display__Group_4_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6606:1: ( ( ( rule__Display__DescriptionAssignment_4_0_1 ) ) )
+ // InternalRBAModel.g:6607:1: ( ( rule__Display__DescriptionAssignment_4_0_1 ) )
+ {
+ // InternalRBAModel.g:6607:1: ( ( rule__Display__DescriptionAssignment_4_0_1 ) )
+ // InternalRBAModel.g:6608:2: ( rule__Display__DescriptionAssignment_4_0_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getDisplayAccess().getDescriptionAssignment_4_0_1());
+ }
+ // InternalRBAModel.g:6609:2: ( rule__Display__DescriptionAssignment_4_0_1 )
+ // InternalRBAModel.g:6609:3: rule__Display__DescriptionAssignment_4_0_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__Display__DescriptionAssignment_4_0_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getDisplayAccess().getDescriptionAssignment_4_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Display__Group_4_0__1__Impl"
+
+
+ // $ANTLR start "rule__Constraint__Group__0"
+ // InternalRBAModel.g:6618:1: rule__Constraint__Group__0 : rule__Constraint__Group__0__Impl rule__Constraint__Group__1 ;
+ public final void rule__Constraint__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6622:1: ( rule__Constraint__Group__0__Impl rule__Constraint__Group__1 )
+ // InternalRBAModel.g:6623:2: rule__Constraint__Group__0__Impl rule__Constraint__Group__1
+ {
+ pushFollow(FOLLOW_32);
+ rule__Constraint__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Constraint__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Constraint__Group__0"
+
+
+ // $ANTLR start "rule__Constraint__Group__0__Impl"
+ // InternalRBAModel.g:6630:1: rule__Constraint__Group__0__Impl : ( () ) ;
+ public final void rule__Constraint__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6634:1: ( ( () ) )
+ // InternalRBAModel.g:6635:1: ( () )
+ {
+ // InternalRBAModel.g:6635:1: ( () )
+ // InternalRBAModel.g:6636:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getConstraintAccess().getConstraintAction_0());
+ }
+ // InternalRBAModel.g:6637:2: ()
+ // InternalRBAModel.g:6637:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getConstraintAccess().getConstraintAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Constraint__Group__0__Impl"
+
+
+ // $ANTLR start "rule__Constraint__Group__1"
+ // InternalRBAModel.g:6645:1: rule__Constraint__Group__1 : rule__Constraint__Group__1__Impl rule__Constraint__Group__2 ;
+ public final void rule__Constraint__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6649:1: ( rule__Constraint__Group__1__Impl rule__Constraint__Group__2 )
+ // InternalRBAModel.g:6650:2: rule__Constraint__Group__1__Impl rule__Constraint__Group__2
+ {
+ pushFollow(FOLLOW_7);
+ rule__Constraint__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Constraint__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Constraint__Group__1"
+
+
+ // $ANTLR start "rule__Constraint__Group__1__Impl"
+ // InternalRBAModel.g:6657:1: rule__Constraint__Group__1__Impl : ( 'Constraint' ) ;
+ public final void rule__Constraint__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6661:1: ( ( 'Constraint' ) )
+ // InternalRBAModel.g:6662:1: ( 'Constraint' )
+ {
+ // InternalRBAModel.g:6662:1: ( 'Constraint' )
+ // InternalRBAModel.g:6663:2: 'Constraint'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getConstraintAccess().getConstraintKeyword_1());
+ }
+ match(input,110,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getConstraintAccess().getConstraintKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Constraint__Group__1__Impl"
+
+
+ // $ANTLR start "rule__Constraint__Group__2"
+ // InternalRBAModel.g:6672:1: rule__Constraint__Group__2 : rule__Constraint__Group__2__Impl rule__Constraint__Group__3 ;
+ public final void rule__Constraint__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6676:1: ( rule__Constraint__Group__2__Impl rule__Constraint__Group__3 )
+ // InternalRBAModel.g:6677:2: rule__Constraint__Group__2__Impl rule__Constraint__Group__3
+ {
+ pushFollow(FOLLOW_11);
+ rule__Constraint__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Constraint__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Constraint__Group__2"
+
+
+ // $ANTLR start "rule__Constraint__Group__2__Impl"
+ // InternalRBAModel.g:6684:1: rule__Constraint__Group__2__Impl : ( ( rule__Constraint__NameAssignment_2 ) ) ;
+ public final void rule__Constraint__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6688:1: ( ( ( rule__Constraint__NameAssignment_2 ) ) )
+ // InternalRBAModel.g:6689:1: ( ( rule__Constraint__NameAssignment_2 ) )
+ {
+ // InternalRBAModel.g:6689:1: ( ( rule__Constraint__NameAssignment_2 ) )
+ // InternalRBAModel.g:6690:2: ( rule__Constraint__NameAssignment_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getConstraintAccess().getNameAssignment_2());
+ }
+ // InternalRBAModel.g:6691:2: ( rule__Constraint__NameAssignment_2 )
+ // InternalRBAModel.g:6691:3: rule__Constraint__NameAssignment_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__Constraint__NameAssignment_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getConstraintAccess().getNameAssignment_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Constraint__Group__2__Impl"
+
+
+ // $ANTLR start "rule__Constraint__Group__3"
+ // InternalRBAModel.g:6699:1: rule__Constraint__Group__3 : rule__Constraint__Group__3__Impl rule__Constraint__Group__4 ;
+ public final void rule__Constraint__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6703:1: ( rule__Constraint__Group__3__Impl rule__Constraint__Group__4 )
+ // InternalRBAModel.g:6704:2: rule__Constraint__Group__3__Impl rule__Constraint__Group__4
+ {
+ pushFollow(FOLLOW_33);
+ rule__Constraint__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Constraint__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Constraint__Group__3"
+
+
+ // $ANTLR start "rule__Constraint__Group__3__Impl"
+ // InternalRBAModel.g:6711:1: rule__Constraint__Group__3__Impl : ( '{' ) ;
+ public final void rule__Constraint__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6715:1: ( ( '{' ) )
+ // InternalRBAModel.g:6716:1: ( '{' )
+ {
+ // InternalRBAModel.g:6716:1: ( '{' )
+ // InternalRBAModel.g:6717:2: '{'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getConstraintAccess().getLeftCurlyBracketKeyword_3());
+ }
+ match(input,101,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getConstraintAccess().getLeftCurlyBracketKeyword_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Constraint__Group__3__Impl"
+
+
+ // $ANTLR start "rule__Constraint__Group__4"
+ // InternalRBAModel.g:6726:1: rule__Constraint__Group__4 : rule__Constraint__Group__4__Impl rule__Constraint__Group__5 ;
+ public final void rule__Constraint__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6730:1: ( rule__Constraint__Group__4__Impl rule__Constraint__Group__5 )
+ // InternalRBAModel.g:6731:2: rule__Constraint__Group__4__Impl rule__Constraint__Group__5
+ {
+ pushFollow(FOLLOW_22);
+ rule__Constraint__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Constraint__Group__5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Constraint__Group__4"
+
+
+ // $ANTLR start "rule__Constraint__Group__4__Impl"
+ // InternalRBAModel.g:6738:1: rule__Constraint__Group__4__Impl : ( ( rule__Constraint__UnorderedGroup_4 ) ) ;
+ public final void rule__Constraint__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6742:1: ( ( ( rule__Constraint__UnorderedGroup_4 ) ) )
+ // InternalRBAModel.g:6743:1: ( ( rule__Constraint__UnorderedGroup_4 ) )
+ {
+ // InternalRBAModel.g:6743:1: ( ( rule__Constraint__UnorderedGroup_4 ) )
+ // InternalRBAModel.g:6744:2: ( rule__Constraint__UnorderedGroup_4 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getConstraintAccess().getUnorderedGroup_4());
+ }
+ // InternalRBAModel.g:6745:2: ( rule__Constraint__UnorderedGroup_4 )
+ // InternalRBAModel.g:6745:3: rule__Constraint__UnorderedGroup_4
+ {
+ pushFollow(FOLLOW_2);
+ rule__Constraint__UnorderedGroup_4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getConstraintAccess().getUnorderedGroup_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Constraint__Group__4__Impl"
+
+
+ // $ANTLR start "rule__Constraint__Group__5"
+ // InternalRBAModel.g:6753:1: rule__Constraint__Group__5 : rule__Constraint__Group__5__Impl ;
+ public final void rule__Constraint__Group__5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6757:1: ( rule__Constraint__Group__5__Impl )
+ // InternalRBAModel.g:6758:2: rule__Constraint__Group__5__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Constraint__Group__5__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Constraint__Group__5"
+
+
+ // $ANTLR start "rule__Constraint__Group__5__Impl"
+ // InternalRBAModel.g:6764:1: rule__Constraint__Group__5__Impl : ( '}' ) ;
+ public final void rule__Constraint__Group__5__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6768:1: ( ( '}' ) )
+ // InternalRBAModel.g:6769:1: ( '}' )
+ {
+ // InternalRBAModel.g:6769:1: ( '}' )
+ // InternalRBAModel.g:6770:2: '}'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getConstraintAccess().getRightCurlyBracketKeyword_5());
+ }
+ match(input,102,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getConstraintAccess().getRightCurlyBracketKeyword_5());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Constraint__Group__5__Impl"
+
+
+ // $ANTLR start "rule__Constraint__Group_4_0__0"
+ // InternalRBAModel.g:6780:1: rule__Constraint__Group_4_0__0 : rule__Constraint__Group_4_0__0__Impl rule__Constraint__Group_4_0__1 ;
+ public final void rule__Constraint__Group_4_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6784:1: ( rule__Constraint__Group_4_0__0__Impl rule__Constraint__Group_4_0__1 )
+ // InternalRBAModel.g:6785:2: rule__Constraint__Group_4_0__0__Impl rule__Constraint__Group_4_0__1
+ {
+ pushFollow(FOLLOW_19);
+ rule__Constraint__Group_4_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Constraint__Group_4_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Constraint__Group_4_0__0"
+
+
+ // $ANTLR start "rule__Constraint__Group_4_0__0__Impl"
+ // InternalRBAModel.g:6792:1: rule__Constraint__Group_4_0__0__Impl : ( 'description:' ) ;
+ public final void rule__Constraint__Group_4_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6796:1: ( ( 'description:' ) )
+ // InternalRBAModel.g:6797:1: ( 'description:' )
+ {
+ // InternalRBAModel.g:6797:1: ( 'description:' )
+ // InternalRBAModel.g:6798:2: 'description:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getConstraintAccess().getDescriptionKeyword_4_0_0());
+ }
+ match(input,105,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getConstraintAccess().getDescriptionKeyword_4_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Constraint__Group_4_0__0__Impl"
+
+
+ // $ANTLR start "rule__Constraint__Group_4_0__1"
+ // InternalRBAModel.g:6807:1: rule__Constraint__Group_4_0__1 : rule__Constraint__Group_4_0__1__Impl ;
+ public final void rule__Constraint__Group_4_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6811:1: ( rule__Constraint__Group_4_0__1__Impl )
+ // InternalRBAModel.g:6812:2: rule__Constraint__Group_4_0__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Constraint__Group_4_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Constraint__Group_4_0__1"
+
+
+ // $ANTLR start "rule__Constraint__Group_4_0__1__Impl"
+ // InternalRBAModel.g:6818:1: rule__Constraint__Group_4_0__1__Impl : ( ( rule__Constraint__DescriptionAssignment_4_0_1 ) ) ;
+ public final void rule__Constraint__Group_4_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6822:1: ( ( ( rule__Constraint__DescriptionAssignment_4_0_1 ) ) )
+ // InternalRBAModel.g:6823:1: ( ( rule__Constraint__DescriptionAssignment_4_0_1 ) )
+ {
+ // InternalRBAModel.g:6823:1: ( ( rule__Constraint__DescriptionAssignment_4_0_1 ) )
+ // InternalRBAModel.g:6824:2: ( rule__Constraint__DescriptionAssignment_4_0_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getConstraintAccess().getDescriptionAssignment_4_0_1());
+ }
+ // InternalRBAModel.g:6825:2: ( rule__Constraint__DescriptionAssignment_4_0_1 )
+ // InternalRBAModel.g:6825:3: rule__Constraint__DescriptionAssignment_4_0_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__Constraint__DescriptionAssignment_4_0_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getConstraintAccess().getDescriptionAssignment_4_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Constraint__Group_4_0__1__Impl"
+
+
+ // $ANTLR start "rule__Constraint__Group_4_1__0"
+ // InternalRBAModel.g:6834:1: rule__Constraint__Group_4_1__0 : rule__Constraint__Group_4_1__0__Impl rule__Constraint__Group_4_1__1 ;
+ public final void rule__Constraint__Group_4_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6838:1: ( rule__Constraint__Group_4_1__0__Impl rule__Constraint__Group_4_1__1 )
+ // InternalRBAModel.g:6839:2: rule__Constraint__Group_4_1__0__Impl rule__Constraint__Group_4_1__1
+ {
+ pushFollow(FOLLOW_34);
+ rule__Constraint__Group_4_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Constraint__Group_4_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Constraint__Group_4_1__0"
+
+
+ // $ANTLR start "rule__Constraint__Group_4_1__0__Impl"
+ // InternalRBAModel.g:6846:1: rule__Constraint__Group_4_1__0__Impl : ( 'runtime:' ) ;
+ public final void rule__Constraint__Group_4_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6850:1: ( ( 'runtime:' ) )
+ // InternalRBAModel.g:6851:1: ( 'runtime:' )
+ {
+ // InternalRBAModel.g:6851:1: ( 'runtime:' )
+ // InternalRBAModel.g:6852:2: 'runtime:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getConstraintAccess().getRuntimeKeyword_4_1_0());
+ }
+ match(input,111,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getConstraintAccess().getRuntimeKeyword_4_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Constraint__Group_4_1__0__Impl"
+
+
+ // $ANTLR start "rule__Constraint__Group_4_1__1"
+ // InternalRBAModel.g:6861:1: rule__Constraint__Group_4_1__1 : rule__Constraint__Group_4_1__1__Impl ;
+ public final void rule__Constraint__Group_4_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6865:1: ( rule__Constraint__Group_4_1__1__Impl )
+ // InternalRBAModel.g:6866:2: rule__Constraint__Group_4_1__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Constraint__Group_4_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Constraint__Group_4_1__1"
+
+
+ // $ANTLR start "rule__Constraint__Group_4_1__1__Impl"
+ // InternalRBAModel.g:6872:1: rule__Constraint__Group_4_1__1__Impl : ( ( rule__Constraint__RuntimeAssignment_4_1_1 ) ) ;
+ public final void rule__Constraint__Group_4_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6876:1: ( ( ( rule__Constraint__RuntimeAssignment_4_1_1 ) ) )
+ // InternalRBAModel.g:6877:1: ( ( rule__Constraint__RuntimeAssignment_4_1_1 ) )
+ {
+ // InternalRBAModel.g:6877:1: ( ( rule__Constraint__RuntimeAssignment_4_1_1 ) )
+ // InternalRBAModel.g:6878:2: ( rule__Constraint__RuntimeAssignment_4_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getConstraintAccess().getRuntimeAssignment_4_1_1());
+ }
+ // InternalRBAModel.g:6879:2: ( rule__Constraint__RuntimeAssignment_4_1_1 )
+ // InternalRBAModel.g:6879:3: rule__Constraint__RuntimeAssignment_4_1_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__Constraint__RuntimeAssignment_4_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getConstraintAccess().getRuntimeAssignment_4_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Constraint__Group_4_1__1__Impl"
+
+
+ // $ANTLR start "rule__ViewContent__Group__0"
+ // InternalRBAModel.g:6888:1: rule__ViewContent__Group__0 : rule__ViewContent__Group__0__Impl rule__ViewContent__Group__1 ;
+ public final void rule__ViewContent__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6892:1: ( rule__ViewContent__Group__0__Impl rule__ViewContent__Group__1 )
+ // InternalRBAModel.g:6893:2: rule__ViewContent__Group__0__Impl rule__ViewContent__Group__1
+ {
+ pushFollow(FOLLOW_35);
+ rule__ViewContent__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ViewContent__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__Group__0"
+
+
+ // $ANTLR start "rule__ViewContent__Group__0__Impl"
+ // InternalRBAModel.g:6900:1: rule__ViewContent__Group__0__Impl : ( () ) ;
+ public final void rule__ViewContent__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6904:1: ( ( () ) )
+ // InternalRBAModel.g:6905:1: ( () )
+ {
+ // InternalRBAModel.g:6905:1: ( () )
+ // InternalRBAModel.g:6906:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentAccess().getViewContentAction_0());
+ }
+ // InternalRBAModel.g:6907:2: ()
+ // InternalRBAModel.g:6907:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentAccess().getViewContentAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__Group__0__Impl"
+
+
+ // $ANTLR start "rule__ViewContent__Group__1"
+ // InternalRBAModel.g:6915:1: rule__ViewContent__Group__1 : rule__ViewContent__Group__1__Impl rule__ViewContent__Group__2 ;
+ public final void rule__ViewContent__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6919:1: ( rule__ViewContent__Group__1__Impl rule__ViewContent__Group__2 )
+ // InternalRBAModel.g:6920:2: rule__ViewContent__Group__1__Impl rule__ViewContent__Group__2
+ {
+ pushFollow(FOLLOW_7);
+ rule__ViewContent__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ViewContent__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__Group__1"
+
+
+ // $ANTLR start "rule__ViewContent__Group__1__Impl"
+ // InternalRBAModel.g:6927:1: rule__ViewContent__Group__1__Impl : ( 'ViewContent' ) ;
+ public final void rule__ViewContent__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6931:1: ( ( 'ViewContent' ) )
+ // InternalRBAModel.g:6932:1: ( 'ViewContent' )
+ {
+ // InternalRBAModel.g:6932:1: ( 'ViewContent' )
+ // InternalRBAModel.g:6933:2: 'ViewContent'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentAccess().getViewContentKeyword_1());
+ }
+ match(input,70,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentAccess().getViewContentKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__Group__1__Impl"
+
+
+ // $ANTLR start "rule__ViewContent__Group__2"
+ // InternalRBAModel.g:6942:1: rule__ViewContent__Group__2 : rule__ViewContent__Group__2__Impl rule__ViewContent__Group__3 ;
+ public final void rule__ViewContent__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6946:1: ( rule__ViewContent__Group__2__Impl rule__ViewContent__Group__3 )
+ // InternalRBAModel.g:6947:2: rule__ViewContent__Group__2__Impl rule__ViewContent__Group__3
+ {
+ pushFollow(FOLLOW_11);
+ rule__ViewContent__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ViewContent__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__Group__2"
+
+
+ // $ANTLR start "rule__ViewContent__Group__2__Impl"
+ // InternalRBAModel.g:6954:1: rule__ViewContent__Group__2__Impl : ( ( rule__ViewContent__NameAssignment_2 ) ) ;
+ public final void rule__ViewContent__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6958:1: ( ( ( rule__ViewContent__NameAssignment_2 ) ) )
+ // InternalRBAModel.g:6959:1: ( ( rule__ViewContent__NameAssignment_2 ) )
+ {
+ // InternalRBAModel.g:6959:1: ( ( rule__ViewContent__NameAssignment_2 ) )
+ // InternalRBAModel.g:6960:2: ( rule__ViewContent__NameAssignment_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentAccess().getNameAssignment_2());
+ }
+ // InternalRBAModel.g:6961:2: ( rule__ViewContent__NameAssignment_2 )
+ // InternalRBAModel.g:6961:3: rule__ViewContent__NameAssignment_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContent__NameAssignment_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentAccess().getNameAssignment_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__Group__2__Impl"
+
+
+ // $ANTLR start "rule__ViewContent__Group__3"
+ // InternalRBAModel.g:6969:1: rule__ViewContent__Group__3 : rule__ViewContent__Group__3__Impl rule__ViewContent__Group__4 ;
+ public final void rule__ViewContent__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6973:1: ( rule__ViewContent__Group__3__Impl rule__ViewContent__Group__4 )
+ // InternalRBAModel.g:6974:2: rule__ViewContent__Group__3__Impl rule__ViewContent__Group__4
+ {
+ pushFollow(FOLLOW_36);
+ rule__ViewContent__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ViewContent__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__Group__3"
+
+
+ // $ANTLR start "rule__ViewContent__Group__3__Impl"
+ // InternalRBAModel.g:6981:1: rule__ViewContent__Group__3__Impl : ( '{' ) ;
+ public final void rule__ViewContent__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:6985:1: ( ( '{' ) )
+ // InternalRBAModel.g:6986:1: ( '{' )
+ {
+ // InternalRBAModel.g:6986:1: ( '{' )
+ // InternalRBAModel.g:6987:2: '{'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentAccess().getLeftCurlyBracketKeyword_3());
+ }
+ match(input,101,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentAccess().getLeftCurlyBracketKeyword_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__Group__3__Impl"
+
+
+ // $ANTLR start "rule__ViewContent__Group__4"
+ // InternalRBAModel.g:6996:1: rule__ViewContent__Group__4 : rule__ViewContent__Group__4__Impl rule__ViewContent__Group__5 ;
+ public final void rule__ViewContent__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7000:1: ( rule__ViewContent__Group__4__Impl rule__ViewContent__Group__5 )
+ // InternalRBAModel.g:7001:2: rule__ViewContent__Group__4__Impl rule__ViewContent__Group__5
+ {
+ pushFollow(FOLLOW_22);
+ rule__ViewContent__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ViewContent__Group__5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__Group__4"
+
+
+ // $ANTLR start "rule__ViewContent__Group__4__Impl"
+ // InternalRBAModel.g:7008:1: rule__ViewContent__Group__4__Impl : ( ( rule__ViewContent__UnorderedGroup_4 ) ) ;
+ public final void rule__ViewContent__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7012:1: ( ( ( rule__ViewContent__UnorderedGroup_4 ) ) )
+ // InternalRBAModel.g:7013:1: ( ( rule__ViewContent__UnorderedGroup_4 ) )
+ {
+ // InternalRBAModel.g:7013:1: ( ( rule__ViewContent__UnorderedGroup_4 ) )
+ // InternalRBAModel.g:7014:2: ( rule__ViewContent__UnorderedGroup_4 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentAccess().getUnorderedGroup_4());
+ }
+ // InternalRBAModel.g:7015:2: ( rule__ViewContent__UnorderedGroup_4 )
+ // InternalRBAModel.g:7015:3: rule__ViewContent__UnorderedGroup_4
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContent__UnorderedGroup_4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentAccess().getUnorderedGroup_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__Group__4__Impl"
+
+
+ // $ANTLR start "rule__ViewContent__Group__5"
+ // InternalRBAModel.g:7023:1: rule__ViewContent__Group__5 : rule__ViewContent__Group__5__Impl ;
+ public final void rule__ViewContent__Group__5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7027:1: ( rule__ViewContent__Group__5__Impl )
+ // InternalRBAModel.g:7028:2: rule__ViewContent__Group__5__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContent__Group__5__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__Group__5"
+
+
+ // $ANTLR start "rule__ViewContent__Group__5__Impl"
+ // InternalRBAModel.g:7034:1: rule__ViewContent__Group__5__Impl : ( '}' ) ;
+ public final void rule__ViewContent__Group__5__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7038:1: ( ( '}' ) )
+ // InternalRBAModel.g:7039:1: ( '}' )
+ {
+ // InternalRBAModel.g:7039:1: ( '}' )
+ // InternalRBAModel.g:7040:2: '}'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentAccess().getRightCurlyBracketKeyword_5());
+ }
+ match(input,102,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentAccess().getRightCurlyBracketKeyword_5());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__Group__5__Impl"
+
+
+ // $ANTLR start "rule__ViewContent__Group_4_0__0"
+ // InternalRBAModel.g:7050:1: rule__ViewContent__Group_4_0__0 : rule__ViewContent__Group_4_0__0__Impl rule__ViewContent__Group_4_0__1 ;
+ public final void rule__ViewContent__Group_4_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7054:1: ( rule__ViewContent__Group_4_0__0__Impl rule__ViewContent__Group_4_0__1 )
+ // InternalRBAModel.g:7055:2: rule__ViewContent__Group_4_0__0__Impl rule__ViewContent__Group_4_0__1
+ {
+ pushFollow(FOLLOW_19);
+ rule__ViewContent__Group_4_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ViewContent__Group_4_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__Group_4_0__0"
+
+
+ // $ANTLR start "rule__ViewContent__Group_4_0__0__Impl"
+ // InternalRBAModel.g:7062:1: rule__ViewContent__Group_4_0__0__Impl : ( 'description:' ) ;
+ public final void rule__ViewContent__Group_4_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7066:1: ( ( 'description:' ) )
+ // InternalRBAModel.g:7067:1: ( 'description:' )
+ {
+ // InternalRBAModel.g:7067:1: ( 'description:' )
+ // InternalRBAModel.g:7068:2: 'description:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentAccess().getDescriptionKeyword_4_0_0());
+ }
+ match(input,105,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentAccess().getDescriptionKeyword_4_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__Group_4_0__0__Impl"
+
+
+ // $ANTLR start "rule__ViewContent__Group_4_0__1"
+ // InternalRBAModel.g:7077:1: rule__ViewContent__Group_4_0__1 : rule__ViewContent__Group_4_0__1__Impl ;
+ public final void rule__ViewContent__Group_4_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7081:1: ( rule__ViewContent__Group_4_0__1__Impl )
+ // InternalRBAModel.g:7082:2: rule__ViewContent__Group_4_0__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContent__Group_4_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__Group_4_0__1"
+
+
+ // $ANTLR start "rule__ViewContent__Group_4_0__1__Impl"
+ // InternalRBAModel.g:7088:1: rule__ViewContent__Group_4_0__1__Impl : ( ( rule__ViewContent__DescriptionAssignment_4_0_1 ) ) ;
+ public final void rule__ViewContent__Group_4_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7092:1: ( ( ( rule__ViewContent__DescriptionAssignment_4_0_1 ) ) )
+ // InternalRBAModel.g:7093:1: ( ( rule__ViewContent__DescriptionAssignment_4_0_1 ) )
+ {
+ // InternalRBAModel.g:7093:1: ( ( rule__ViewContent__DescriptionAssignment_4_0_1 ) )
+ // InternalRBAModel.g:7094:2: ( rule__ViewContent__DescriptionAssignment_4_0_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentAccess().getDescriptionAssignment_4_0_1());
+ }
+ // InternalRBAModel.g:7095:2: ( rule__ViewContent__DescriptionAssignment_4_0_1 )
+ // InternalRBAModel.g:7095:3: rule__ViewContent__DescriptionAssignment_4_0_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContent__DescriptionAssignment_4_0_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentAccess().getDescriptionAssignment_4_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__Group_4_0__1__Impl"
+
+
+ // $ANTLR start "rule__ViewContent__Group_4_1__0"
+ // InternalRBAModel.g:7104:1: rule__ViewContent__Group_4_1__0 : rule__ViewContent__Group_4_1__0__Impl rule__ViewContent__Group_4_1__1 ;
+ public final void rule__ViewContent__Group_4_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7108:1: ( rule__ViewContent__Group_4_1__0__Impl rule__ViewContent__Group_4_1__1 )
+ // InternalRBAModel.g:7109:2: rule__ViewContent__Group_4_1__0__Impl rule__ViewContent__Group_4_1__1
+ {
+ pushFollow(FOLLOW_37);
+ rule__ViewContent__Group_4_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ViewContent__Group_4_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__Group_4_1__0"
+
+
+ // $ANTLR start "rule__ViewContent__Group_4_1__0__Impl"
+ // InternalRBAModel.g:7116:1: rule__ViewContent__Group_4_1__0__Impl : ( 'loserType:' ) ;
+ public final void rule__ViewContent__Group_4_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7120:1: ( ( 'loserType:' ) )
+ // InternalRBAModel.g:7121:1: ( 'loserType:' )
+ {
+ // InternalRBAModel.g:7121:1: ( 'loserType:' )
+ // InternalRBAModel.g:7122:2: 'loserType:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentAccess().getLoserTypeKeyword_4_1_0());
+ }
+ match(input,112,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentAccess().getLoserTypeKeyword_4_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__Group_4_1__0__Impl"
+
+
+ // $ANTLR start "rule__ViewContent__Group_4_1__1"
+ // InternalRBAModel.g:7131:1: rule__ViewContent__Group_4_1__1 : rule__ViewContent__Group_4_1__1__Impl ;
+ public final void rule__ViewContent__Group_4_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7135:1: ( rule__ViewContent__Group_4_1__1__Impl )
+ // InternalRBAModel.g:7136:2: rule__ViewContent__Group_4_1__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContent__Group_4_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__Group_4_1__1"
+
+
+ // $ANTLR start "rule__ViewContent__Group_4_1__1__Impl"
+ // InternalRBAModel.g:7142:1: rule__ViewContent__Group_4_1__1__Impl : ( ( rule__ViewContent__LoserTypeAssignment_4_1_1 ) ) ;
+ public final void rule__ViewContent__Group_4_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7146:1: ( ( ( rule__ViewContent__LoserTypeAssignment_4_1_1 ) ) )
+ // InternalRBAModel.g:7147:1: ( ( rule__ViewContent__LoserTypeAssignment_4_1_1 ) )
+ {
+ // InternalRBAModel.g:7147:1: ( ( rule__ViewContent__LoserTypeAssignment_4_1_1 ) )
+ // InternalRBAModel.g:7148:2: ( rule__ViewContent__LoserTypeAssignment_4_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentAccess().getLoserTypeAssignment_4_1_1());
+ }
+ // InternalRBAModel.g:7149:2: ( rule__ViewContent__LoserTypeAssignment_4_1_1 )
+ // InternalRBAModel.g:7149:3: rule__ViewContent__LoserTypeAssignment_4_1_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContent__LoserTypeAssignment_4_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentAccess().getLoserTypeAssignment_4_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__Group_4_1__1__Impl"
+
+
+ // $ANTLR start "rule__ViewContent__Group_4_2__0"
+ // InternalRBAModel.g:7158:1: rule__ViewContent__Group_4_2__0 : rule__ViewContent__Group_4_2__0__Impl rule__ViewContent__Group_4_2__1 ;
+ public final void rule__ViewContent__Group_4_2__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7162:1: ( rule__ViewContent__Group_4_2__0__Impl rule__ViewContent__Group_4_2__1 )
+ // InternalRBAModel.g:7163:2: rule__ViewContent__Group_4_2__0__Impl rule__ViewContent__Group_4_2__1
+ {
+ pushFollow(FOLLOW_38);
+ rule__ViewContent__Group_4_2__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ViewContent__Group_4_2__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__Group_4_2__0"
+
+
+ // $ANTLR start "rule__ViewContent__Group_4_2__0__Impl"
+ // InternalRBAModel.g:7170:1: rule__ViewContent__Group_4_2__0__Impl : ( 'allocatable:' ) ;
+ public final void rule__ViewContent__Group_4_2__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7174:1: ( ( 'allocatable:' ) )
+ // InternalRBAModel.g:7175:1: ( 'allocatable:' )
+ {
+ // InternalRBAModel.g:7175:1: ( 'allocatable:' )
+ // InternalRBAModel.g:7176:2: 'allocatable:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentAccess().getAllocatableKeyword_4_2_0());
+ }
+ match(input,113,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentAccess().getAllocatableKeyword_4_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__Group_4_2__0__Impl"
+
+
+ // $ANTLR start "rule__ViewContent__Group_4_2__1"
+ // InternalRBAModel.g:7185:1: rule__ViewContent__Group_4_2__1 : rule__ViewContent__Group_4_2__1__Impl rule__ViewContent__Group_4_2__2 ;
+ public final void rule__ViewContent__Group_4_2__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7189:1: ( rule__ViewContent__Group_4_2__1__Impl rule__ViewContent__Group_4_2__2 )
+ // InternalRBAModel.g:7190:2: rule__ViewContent__Group_4_2__1__Impl rule__ViewContent__Group_4_2__2
+ {
+ pushFollow(FOLLOW_39);
+ rule__ViewContent__Group_4_2__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ViewContent__Group_4_2__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__Group_4_2__1"
+
+
+ // $ANTLR start "rule__ViewContent__Group_4_2__1__Impl"
+ // InternalRBAModel.g:7197:1: rule__ViewContent__Group_4_2__1__Impl : ( '[' ) ;
+ public final void rule__ViewContent__Group_4_2__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7201:1: ( ( '[' ) )
+ // InternalRBAModel.g:7202:1: ( '[' )
+ {
+ // InternalRBAModel.g:7202:1: ( '[' )
+ // InternalRBAModel.g:7203:2: '['
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentAccess().getLeftSquareBracketKeyword_4_2_1());
+ }
+ match(input,114,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentAccess().getLeftSquareBracketKeyword_4_2_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__Group_4_2__1__Impl"
+
+
+ // $ANTLR start "rule__ViewContent__Group_4_2__2"
+ // InternalRBAModel.g:7212:1: rule__ViewContent__Group_4_2__2 : rule__ViewContent__Group_4_2__2__Impl rule__ViewContent__Group_4_2__3 ;
+ public final void rule__ViewContent__Group_4_2__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7216:1: ( rule__ViewContent__Group_4_2__2__Impl rule__ViewContent__Group_4_2__3 )
+ // InternalRBAModel.g:7217:2: rule__ViewContent__Group_4_2__2__Impl rule__ViewContent__Group_4_2__3
+ {
+ pushFollow(FOLLOW_39);
+ rule__ViewContent__Group_4_2__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ViewContent__Group_4_2__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__Group_4_2__2"
+
+
+ // $ANTLR start "rule__ViewContent__Group_4_2__2__Impl"
+ // InternalRBAModel.g:7224:1: rule__ViewContent__Group_4_2__2__Impl : ( ( rule__ViewContent__Group_4_2_2__0 )? ) ;
+ public final void rule__ViewContent__Group_4_2__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7228:1: ( ( ( rule__ViewContent__Group_4_2_2__0 )? ) )
+ // InternalRBAModel.g:7229:1: ( ( rule__ViewContent__Group_4_2_2__0 )? )
+ {
+ // InternalRBAModel.g:7229:1: ( ( rule__ViewContent__Group_4_2_2__0 )? )
+ // InternalRBAModel.g:7230:2: ( rule__ViewContent__Group_4_2_2__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentAccess().getGroup_4_2_2());
+ }
+ // InternalRBAModel.g:7231:2: ( rule__ViewContent__Group_4_2_2__0 )?
+ int alt47=2;
+ int LA47_0 = input.LA(1);
+
+ if ( (LA47_0==RULE_ID) ) {
+ alt47=1;
+ }
+ switch (alt47) {
+ case 1 :
+ // InternalRBAModel.g:7231:3: rule__ViewContent__Group_4_2_2__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContent__Group_4_2_2__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentAccess().getGroup_4_2_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__Group_4_2__2__Impl"
+
+
+ // $ANTLR start "rule__ViewContent__Group_4_2__3"
+ // InternalRBAModel.g:7239:1: rule__ViewContent__Group_4_2__3 : rule__ViewContent__Group_4_2__3__Impl ;
+ public final void rule__ViewContent__Group_4_2__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7243:1: ( rule__ViewContent__Group_4_2__3__Impl )
+ // InternalRBAModel.g:7244:2: rule__ViewContent__Group_4_2__3__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContent__Group_4_2__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__Group_4_2__3"
+
+
+ // $ANTLR start "rule__ViewContent__Group_4_2__3__Impl"
+ // InternalRBAModel.g:7250:1: rule__ViewContent__Group_4_2__3__Impl : ( ']' ) ;
+ public final void rule__ViewContent__Group_4_2__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7254:1: ( ( ']' ) )
+ // InternalRBAModel.g:7255:1: ( ']' )
+ {
+ // InternalRBAModel.g:7255:1: ( ']' )
+ // InternalRBAModel.g:7256:2: ']'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentAccess().getRightSquareBracketKeyword_4_2_3());
+ }
+ match(input,115,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentAccess().getRightSquareBracketKeyword_4_2_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__Group_4_2__3__Impl"
+
+
+ // $ANTLR start "rule__ViewContent__Group_4_2_2__0"
+ // InternalRBAModel.g:7266:1: rule__ViewContent__Group_4_2_2__0 : rule__ViewContent__Group_4_2_2__0__Impl rule__ViewContent__Group_4_2_2__1 ;
+ public final void rule__ViewContent__Group_4_2_2__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7270:1: ( rule__ViewContent__Group_4_2_2__0__Impl rule__ViewContent__Group_4_2_2__1 )
+ // InternalRBAModel.g:7271:2: rule__ViewContent__Group_4_2_2__0__Impl rule__ViewContent__Group_4_2_2__1
+ {
+ pushFollow(FOLLOW_17);
+ rule__ViewContent__Group_4_2_2__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ViewContent__Group_4_2_2__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__Group_4_2_2__0"
+
+
+ // $ANTLR start "rule__ViewContent__Group_4_2_2__0__Impl"
+ // InternalRBAModel.g:7278:1: rule__ViewContent__Group_4_2_2__0__Impl : ( ( rule__ViewContent__AllocatableAssignment_4_2_2_0 ) ) ;
+ public final void rule__ViewContent__Group_4_2_2__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7282:1: ( ( ( rule__ViewContent__AllocatableAssignment_4_2_2_0 ) ) )
+ // InternalRBAModel.g:7283:1: ( ( rule__ViewContent__AllocatableAssignment_4_2_2_0 ) )
+ {
+ // InternalRBAModel.g:7283:1: ( ( rule__ViewContent__AllocatableAssignment_4_2_2_0 ) )
+ // InternalRBAModel.g:7284:2: ( rule__ViewContent__AllocatableAssignment_4_2_2_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentAccess().getAllocatableAssignment_4_2_2_0());
+ }
+ // InternalRBAModel.g:7285:2: ( rule__ViewContent__AllocatableAssignment_4_2_2_0 )
+ // InternalRBAModel.g:7285:3: rule__ViewContent__AllocatableAssignment_4_2_2_0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContent__AllocatableAssignment_4_2_2_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentAccess().getAllocatableAssignment_4_2_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__Group_4_2_2__0__Impl"
+
+
+ // $ANTLR start "rule__ViewContent__Group_4_2_2__1"
+ // InternalRBAModel.g:7293:1: rule__ViewContent__Group_4_2_2__1 : rule__ViewContent__Group_4_2_2__1__Impl ;
+ public final void rule__ViewContent__Group_4_2_2__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7297:1: ( rule__ViewContent__Group_4_2_2__1__Impl )
+ // InternalRBAModel.g:7298:2: rule__ViewContent__Group_4_2_2__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContent__Group_4_2_2__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__Group_4_2_2__1"
+
+
+ // $ANTLR start "rule__ViewContent__Group_4_2_2__1__Impl"
+ // InternalRBAModel.g:7304:1: rule__ViewContent__Group_4_2_2__1__Impl : ( ( rule__ViewContent__Group_4_2_2_1__0 )* ) ;
+ public final void rule__ViewContent__Group_4_2_2__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7308:1: ( ( ( rule__ViewContent__Group_4_2_2_1__0 )* ) )
+ // InternalRBAModel.g:7309:1: ( ( rule__ViewContent__Group_4_2_2_1__0 )* )
+ {
+ // InternalRBAModel.g:7309:1: ( ( rule__ViewContent__Group_4_2_2_1__0 )* )
+ // InternalRBAModel.g:7310:2: ( rule__ViewContent__Group_4_2_2_1__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentAccess().getGroup_4_2_2_1());
+ }
+ // InternalRBAModel.g:7311:2: ( rule__ViewContent__Group_4_2_2_1__0 )*
+ loop48:
+ do {
+ int alt48=2;
+ int LA48_0 = input.LA(1);
+
+ if ( (LA48_0==103) ) {
+ alt48=1;
+ }
+
+
+ switch (alt48) {
+ case 1 :
+ // InternalRBAModel.g:7311:3: rule__ViewContent__Group_4_2_2_1__0
+ {
+ pushFollow(FOLLOW_18);
+ rule__ViewContent__Group_4_2_2_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop48;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentAccess().getGroup_4_2_2_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__Group_4_2_2__1__Impl"
+
+
+ // $ANTLR start "rule__ViewContent__Group_4_2_2_1__0"
+ // InternalRBAModel.g:7320:1: rule__ViewContent__Group_4_2_2_1__0 : rule__ViewContent__Group_4_2_2_1__0__Impl rule__ViewContent__Group_4_2_2_1__1 ;
+ public final void rule__ViewContent__Group_4_2_2_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7324:1: ( rule__ViewContent__Group_4_2_2_1__0__Impl rule__ViewContent__Group_4_2_2_1__1 )
+ // InternalRBAModel.g:7325:2: rule__ViewContent__Group_4_2_2_1__0__Impl rule__ViewContent__Group_4_2_2_1__1
+ {
+ pushFollow(FOLLOW_7);
+ rule__ViewContent__Group_4_2_2_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ViewContent__Group_4_2_2_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__Group_4_2_2_1__0"
+
+
+ // $ANTLR start "rule__ViewContent__Group_4_2_2_1__0__Impl"
+ // InternalRBAModel.g:7332:1: rule__ViewContent__Group_4_2_2_1__0__Impl : ( ',' ) ;
+ public final void rule__ViewContent__Group_4_2_2_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7336:1: ( ( ',' ) )
+ // InternalRBAModel.g:7337:1: ( ',' )
+ {
+ // InternalRBAModel.g:7337:1: ( ',' )
+ // InternalRBAModel.g:7338:2: ','
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentAccess().getCommaKeyword_4_2_2_1_0());
+ }
+ match(input,103,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentAccess().getCommaKeyword_4_2_2_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__Group_4_2_2_1__0__Impl"
+
+
+ // $ANTLR start "rule__ViewContent__Group_4_2_2_1__1"
+ // InternalRBAModel.g:7347:1: rule__ViewContent__Group_4_2_2_1__1 : rule__ViewContent__Group_4_2_2_1__1__Impl ;
+ public final void rule__ViewContent__Group_4_2_2_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7351:1: ( rule__ViewContent__Group_4_2_2_1__1__Impl )
+ // InternalRBAModel.g:7352:2: rule__ViewContent__Group_4_2_2_1__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContent__Group_4_2_2_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__Group_4_2_2_1__1"
+
+
+ // $ANTLR start "rule__ViewContent__Group_4_2_2_1__1__Impl"
+ // InternalRBAModel.g:7358:1: rule__ViewContent__Group_4_2_2_1__1__Impl : ( ( rule__ViewContent__AllocatableAssignment_4_2_2_1_1 ) ) ;
+ public final void rule__ViewContent__Group_4_2_2_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7362:1: ( ( ( rule__ViewContent__AllocatableAssignment_4_2_2_1_1 ) ) )
+ // InternalRBAModel.g:7363:1: ( ( rule__ViewContent__AllocatableAssignment_4_2_2_1_1 ) )
+ {
+ // InternalRBAModel.g:7363:1: ( ( rule__ViewContent__AllocatableAssignment_4_2_2_1_1 ) )
+ // InternalRBAModel.g:7364:2: ( rule__ViewContent__AllocatableAssignment_4_2_2_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentAccess().getAllocatableAssignment_4_2_2_1_1());
+ }
+ // InternalRBAModel.g:7365:2: ( rule__ViewContent__AllocatableAssignment_4_2_2_1_1 )
+ // InternalRBAModel.g:7365:3: rule__ViewContent__AllocatableAssignment_4_2_2_1_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContent__AllocatableAssignment_4_2_2_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentAccess().getAllocatableAssignment_4_2_2_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__Group_4_2_2_1__1__Impl"
+
+
+ // $ANTLR start "rule__SoundContent__Group__0"
+ // InternalRBAModel.g:7374:1: rule__SoundContent__Group__0 : rule__SoundContent__Group__0__Impl rule__SoundContent__Group__1 ;
+ public final void rule__SoundContent__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7378:1: ( rule__SoundContent__Group__0__Impl rule__SoundContent__Group__1 )
+ // InternalRBAModel.g:7379:2: rule__SoundContent__Group__0__Impl rule__SoundContent__Group__1
+ {
+ pushFollow(FOLLOW_40);
+ rule__SoundContent__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__SoundContent__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__Group__0"
+
+
+ // $ANTLR start "rule__SoundContent__Group__0__Impl"
+ // InternalRBAModel.g:7386:1: rule__SoundContent__Group__0__Impl : ( () ) ;
+ public final void rule__SoundContent__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7390:1: ( ( () ) )
+ // InternalRBAModel.g:7391:1: ( () )
+ {
+ // InternalRBAModel.g:7391:1: ( () )
+ // InternalRBAModel.g:7392:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentAccess().getSoundContentAction_0());
+ }
+ // InternalRBAModel.g:7393:2: ()
+ // InternalRBAModel.g:7393:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentAccess().getSoundContentAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__Group__0__Impl"
+
+
+ // $ANTLR start "rule__SoundContent__Group__1"
+ // InternalRBAModel.g:7401:1: rule__SoundContent__Group__1 : rule__SoundContent__Group__1__Impl rule__SoundContent__Group__2 ;
+ public final void rule__SoundContent__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7405:1: ( rule__SoundContent__Group__1__Impl rule__SoundContent__Group__2 )
+ // InternalRBAModel.g:7406:2: rule__SoundContent__Group__1__Impl rule__SoundContent__Group__2
+ {
+ pushFollow(FOLLOW_7);
+ rule__SoundContent__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__SoundContent__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__Group__1"
+
+
+ // $ANTLR start "rule__SoundContent__Group__1__Impl"
+ // InternalRBAModel.g:7413:1: rule__SoundContent__Group__1__Impl : ( 'SoundContent' ) ;
+ public final void rule__SoundContent__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7417:1: ( ( 'SoundContent' ) )
+ // InternalRBAModel.g:7418:1: ( 'SoundContent' )
+ {
+ // InternalRBAModel.g:7418:1: ( 'SoundContent' )
+ // InternalRBAModel.g:7419:2: 'SoundContent'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentAccess().getSoundContentKeyword_1());
+ }
+ match(input,69,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentAccess().getSoundContentKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__Group__1__Impl"
+
+
+ // $ANTLR start "rule__SoundContent__Group__2"
+ // InternalRBAModel.g:7428:1: rule__SoundContent__Group__2 : rule__SoundContent__Group__2__Impl rule__SoundContent__Group__3 ;
+ public final void rule__SoundContent__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7432:1: ( rule__SoundContent__Group__2__Impl rule__SoundContent__Group__3 )
+ // InternalRBAModel.g:7433:2: rule__SoundContent__Group__2__Impl rule__SoundContent__Group__3
+ {
+ pushFollow(FOLLOW_11);
+ rule__SoundContent__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__SoundContent__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__Group__2"
+
+
+ // $ANTLR start "rule__SoundContent__Group__2__Impl"
+ // InternalRBAModel.g:7440:1: rule__SoundContent__Group__2__Impl : ( ( rule__SoundContent__NameAssignment_2 ) ) ;
+ public final void rule__SoundContent__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7444:1: ( ( ( rule__SoundContent__NameAssignment_2 ) ) )
+ // InternalRBAModel.g:7445:1: ( ( rule__SoundContent__NameAssignment_2 ) )
+ {
+ // InternalRBAModel.g:7445:1: ( ( rule__SoundContent__NameAssignment_2 ) )
+ // InternalRBAModel.g:7446:2: ( rule__SoundContent__NameAssignment_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentAccess().getNameAssignment_2());
+ }
+ // InternalRBAModel.g:7447:2: ( rule__SoundContent__NameAssignment_2 )
+ // InternalRBAModel.g:7447:3: rule__SoundContent__NameAssignment_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContent__NameAssignment_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentAccess().getNameAssignment_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__Group__2__Impl"
+
+
+ // $ANTLR start "rule__SoundContent__Group__3"
+ // InternalRBAModel.g:7455:1: rule__SoundContent__Group__3 : rule__SoundContent__Group__3__Impl rule__SoundContent__Group__4 ;
+ public final void rule__SoundContent__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7459:1: ( rule__SoundContent__Group__3__Impl rule__SoundContent__Group__4 )
+ // InternalRBAModel.g:7460:2: rule__SoundContent__Group__3__Impl rule__SoundContent__Group__4
+ {
+ pushFollow(FOLLOW_36);
+ rule__SoundContent__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__SoundContent__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__Group__3"
+
+
+ // $ANTLR start "rule__SoundContent__Group__3__Impl"
+ // InternalRBAModel.g:7467:1: rule__SoundContent__Group__3__Impl : ( '{' ) ;
+ public final void rule__SoundContent__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7471:1: ( ( '{' ) )
+ // InternalRBAModel.g:7472:1: ( '{' )
+ {
+ // InternalRBAModel.g:7472:1: ( '{' )
+ // InternalRBAModel.g:7473:2: '{'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentAccess().getLeftCurlyBracketKeyword_3());
+ }
+ match(input,101,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentAccess().getLeftCurlyBracketKeyword_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__Group__3__Impl"
+
+
+ // $ANTLR start "rule__SoundContent__Group__4"
+ // InternalRBAModel.g:7482:1: rule__SoundContent__Group__4 : rule__SoundContent__Group__4__Impl rule__SoundContent__Group__5 ;
+ public final void rule__SoundContent__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7486:1: ( rule__SoundContent__Group__4__Impl rule__SoundContent__Group__5 )
+ // InternalRBAModel.g:7487:2: rule__SoundContent__Group__4__Impl rule__SoundContent__Group__5
+ {
+ pushFollow(FOLLOW_22);
+ rule__SoundContent__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__SoundContent__Group__5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__Group__4"
+
+
+ // $ANTLR start "rule__SoundContent__Group__4__Impl"
+ // InternalRBAModel.g:7494:1: rule__SoundContent__Group__4__Impl : ( ( rule__SoundContent__UnorderedGroup_4 ) ) ;
+ public final void rule__SoundContent__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7498:1: ( ( ( rule__SoundContent__UnorderedGroup_4 ) ) )
+ // InternalRBAModel.g:7499:1: ( ( rule__SoundContent__UnorderedGroup_4 ) )
+ {
+ // InternalRBAModel.g:7499:1: ( ( rule__SoundContent__UnorderedGroup_4 ) )
+ // InternalRBAModel.g:7500:2: ( rule__SoundContent__UnorderedGroup_4 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentAccess().getUnorderedGroup_4());
+ }
+ // InternalRBAModel.g:7501:2: ( rule__SoundContent__UnorderedGroup_4 )
+ // InternalRBAModel.g:7501:3: rule__SoundContent__UnorderedGroup_4
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContent__UnorderedGroup_4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentAccess().getUnorderedGroup_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__Group__4__Impl"
+
+
+ // $ANTLR start "rule__SoundContent__Group__5"
+ // InternalRBAModel.g:7509:1: rule__SoundContent__Group__5 : rule__SoundContent__Group__5__Impl ;
+ public final void rule__SoundContent__Group__5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7513:1: ( rule__SoundContent__Group__5__Impl )
+ // InternalRBAModel.g:7514:2: rule__SoundContent__Group__5__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContent__Group__5__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__Group__5"
+
+
+ // $ANTLR start "rule__SoundContent__Group__5__Impl"
+ // InternalRBAModel.g:7520:1: rule__SoundContent__Group__5__Impl : ( '}' ) ;
+ public final void rule__SoundContent__Group__5__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7524:1: ( ( '}' ) )
+ // InternalRBAModel.g:7525:1: ( '}' )
+ {
+ // InternalRBAModel.g:7525:1: ( '}' )
+ // InternalRBAModel.g:7526:2: '}'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentAccess().getRightCurlyBracketKeyword_5());
+ }
+ match(input,102,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentAccess().getRightCurlyBracketKeyword_5());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__Group__5__Impl"
+
+
+ // $ANTLR start "rule__SoundContent__Group_4_0__0"
+ // InternalRBAModel.g:7536:1: rule__SoundContent__Group_4_0__0 : rule__SoundContent__Group_4_0__0__Impl rule__SoundContent__Group_4_0__1 ;
+ public final void rule__SoundContent__Group_4_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7540:1: ( rule__SoundContent__Group_4_0__0__Impl rule__SoundContent__Group_4_0__1 )
+ // InternalRBAModel.g:7541:2: rule__SoundContent__Group_4_0__0__Impl rule__SoundContent__Group_4_0__1
+ {
+ pushFollow(FOLLOW_19);
+ rule__SoundContent__Group_4_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__SoundContent__Group_4_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__Group_4_0__0"
+
+
+ // $ANTLR start "rule__SoundContent__Group_4_0__0__Impl"
+ // InternalRBAModel.g:7548:1: rule__SoundContent__Group_4_0__0__Impl : ( 'description:' ) ;
+ public final void rule__SoundContent__Group_4_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7552:1: ( ( 'description:' ) )
+ // InternalRBAModel.g:7553:1: ( 'description:' )
+ {
+ // InternalRBAModel.g:7553:1: ( 'description:' )
+ // InternalRBAModel.g:7554:2: 'description:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentAccess().getDescriptionKeyword_4_0_0());
+ }
+ match(input,105,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentAccess().getDescriptionKeyword_4_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__Group_4_0__0__Impl"
+
+
+ // $ANTLR start "rule__SoundContent__Group_4_0__1"
+ // InternalRBAModel.g:7563:1: rule__SoundContent__Group_4_0__1 : rule__SoundContent__Group_4_0__1__Impl ;
+ public final void rule__SoundContent__Group_4_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7567:1: ( rule__SoundContent__Group_4_0__1__Impl )
+ // InternalRBAModel.g:7568:2: rule__SoundContent__Group_4_0__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContent__Group_4_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__Group_4_0__1"
+
+
+ // $ANTLR start "rule__SoundContent__Group_4_0__1__Impl"
+ // InternalRBAModel.g:7574:1: rule__SoundContent__Group_4_0__1__Impl : ( ( rule__SoundContent__DescriptionAssignment_4_0_1 ) ) ;
+ public final void rule__SoundContent__Group_4_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7578:1: ( ( ( rule__SoundContent__DescriptionAssignment_4_0_1 ) ) )
+ // InternalRBAModel.g:7579:1: ( ( rule__SoundContent__DescriptionAssignment_4_0_1 ) )
+ {
+ // InternalRBAModel.g:7579:1: ( ( rule__SoundContent__DescriptionAssignment_4_0_1 ) )
+ // InternalRBAModel.g:7580:2: ( rule__SoundContent__DescriptionAssignment_4_0_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentAccess().getDescriptionAssignment_4_0_1());
+ }
+ // InternalRBAModel.g:7581:2: ( rule__SoundContent__DescriptionAssignment_4_0_1 )
+ // InternalRBAModel.g:7581:3: rule__SoundContent__DescriptionAssignment_4_0_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContent__DescriptionAssignment_4_0_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentAccess().getDescriptionAssignment_4_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__Group_4_0__1__Impl"
+
+
+ // $ANTLR start "rule__SoundContent__Group_4_1__0"
+ // InternalRBAModel.g:7590:1: rule__SoundContent__Group_4_1__0 : rule__SoundContent__Group_4_1__0__Impl rule__SoundContent__Group_4_1__1 ;
+ public final void rule__SoundContent__Group_4_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7594:1: ( rule__SoundContent__Group_4_1__0__Impl rule__SoundContent__Group_4_1__1 )
+ // InternalRBAModel.g:7595:2: rule__SoundContent__Group_4_1__0__Impl rule__SoundContent__Group_4_1__1
+ {
+ pushFollow(FOLLOW_37);
+ rule__SoundContent__Group_4_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__SoundContent__Group_4_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__Group_4_1__0"
+
+
+ // $ANTLR start "rule__SoundContent__Group_4_1__0__Impl"
+ // InternalRBAModel.g:7602:1: rule__SoundContent__Group_4_1__0__Impl : ( 'loserType:' ) ;
+ public final void rule__SoundContent__Group_4_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7606:1: ( ( 'loserType:' ) )
+ // InternalRBAModel.g:7607:1: ( 'loserType:' )
+ {
+ // InternalRBAModel.g:7607:1: ( 'loserType:' )
+ // InternalRBAModel.g:7608:2: 'loserType:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentAccess().getLoserTypeKeyword_4_1_0());
+ }
+ match(input,112,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentAccess().getLoserTypeKeyword_4_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__Group_4_1__0__Impl"
+
+
+ // $ANTLR start "rule__SoundContent__Group_4_1__1"
+ // InternalRBAModel.g:7617:1: rule__SoundContent__Group_4_1__1 : rule__SoundContent__Group_4_1__1__Impl ;
+ public final void rule__SoundContent__Group_4_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7621:1: ( rule__SoundContent__Group_4_1__1__Impl )
+ // InternalRBAModel.g:7622:2: rule__SoundContent__Group_4_1__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContent__Group_4_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__Group_4_1__1"
+
+
+ // $ANTLR start "rule__SoundContent__Group_4_1__1__Impl"
+ // InternalRBAModel.g:7628:1: rule__SoundContent__Group_4_1__1__Impl : ( ( rule__SoundContent__LoserTypeAssignment_4_1_1 ) ) ;
+ public final void rule__SoundContent__Group_4_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7632:1: ( ( ( rule__SoundContent__LoserTypeAssignment_4_1_1 ) ) )
+ // InternalRBAModel.g:7633:1: ( ( rule__SoundContent__LoserTypeAssignment_4_1_1 ) )
+ {
+ // InternalRBAModel.g:7633:1: ( ( rule__SoundContent__LoserTypeAssignment_4_1_1 ) )
+ // InternalRBAModel.g:7634:2: ( rule__SoundContent__LoserTypeAssignment_4_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentAccess().getLoserTypeAssignment_4_1_1());
+ }
+ // InternalRBAModel.g:7635:2: ( rule__SoundContent__LoserTypeAssignment_4_1_1 )
+ // InternalRBAModel.g:7635:3: rule__SoundContent__LoserTypeAssignment_4_1_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContent__LoserTypeAssignment_4_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentAccess().getLoserTypeAssignment_4_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__Group_4_1__1__Impl"
+
+
+ // $ANTLR start "rule__SoundContent__Group_4_2__0"
+ // InternalRBAModel.g:7644:1: rule__SoundContent__Group_4_2__0 : rule__SoundContent__Group_4_2__0__Impl rule__SoundContent__Group_4_2__1 ;
+ public final void rule__SoundContent__Group_4_2__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7648:1: ( rule__SoundContent__Group_4_2__0__Impl rule__SoundContent__Group_4_2__1 )
+ // InternalRBAModel.g:7649:2: rule__SoundContent__Group_4_2__0__Impl rule__SoundContent__Group_4_2__1
+ {
+ pushFollow(FOLLOW_38);
+ rule__SoundContent__Group_4_2__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__SoundContent__Group_4_2__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__Group_4_2__0"
+
+
+ // $ANTLR start "rule__SoundContent__Group_4_2__0__Impl"
+ // InternalRBAModel.g:7656:1: rule__SoundContent__Group_4_2__0__Impl : ( 'allocatable:' ) ;
+ public final void rule__SoundContent__Group_4_2__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7660:1: ( ( 'allocatable:' ) )
+ // InternalRBAModel.g:7661:1: ( 'allocatable:' )
+ {
+ // InternalRBAModel.g:7661:1: ( 'allocatable:' )
+ // InternalRBAModel.g:7662:2: 'allocatable:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentAccess().getAllocatableKeyword_4_2_0());
+ }
+ match(input,113,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentAccess().getAllocatableKeyword_4_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__Group_4_2__0__Impl"
+
+
+ // $ANTLR start "rule__SoundContent__Group_4_2__1"
+ // InternalRBAModel.g:7671:1: rule__SoundContent__Group_4_2__1 : rule__SoundContent__Group_4_2__1__Impl rule__SoundContent__Group_4_2__2 ;
+ public final void rule__SoundContent__Group_4_2__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7675:1: ( rule__SoundContent__Group_4_2__1__Impl rule__SoundContent__Group_4_2__2 )
+ // InternalRBAModel.g:7676:2: rule__SoundContent__Group_4_2__1__Impl rule__SoundContent__Group_4_2__2
+ {
+ pushFollow(FOLLOW_39);
+ rule__SoundContent__Group_4_2__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__SoundContent__Group_4_2__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__Group_4_2__1"
+
+
+ // $ANTLR start "rule__SoundContent__Group_4_2__1__Impl"
+ // InternalRBAModel.g:7683:1: rule__SoundContent__Group_4_2__1__Impl : ( '[' ) ;
+ public final void rule__SoundContent__Group_4_2__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7687:1: ( ( '[' ) )
+ // InternalRBAModel.g:7688:1: ( '[' )
+ {
+ // InternalRBAModel.g:7688:1: ( '[' )
+ // InternalRBAModel.g:7689:2: '['
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentAccess().getLeftSquareBracketKeyword_4_2_1());
+ }
+ match(input,114,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentAccess().getLeftSquareBracketKeyword_4_2_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__Group_4_2__1__Impl"
+
+
+ // $ANTLR start "rule__SoundContent__Group_4_2__2"
+ // InternalRBAModel.g:7698:1: rule__SoundContent__Group_4_2__2 : rule__SoundContent__Group_4_2__2__Impl rule__SoundContent__Group_4_2__3 ;
+ public final void rule__SoundContent__Group_4_2__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7702:1: ( rule__SoundContent__Group_4_2__2__Impl rule__SoundContent__Group_4_2__3 )
+ // InternalRBAModel.g:7703:2: rule__SoundContent__Group_4_2__2__Impl rule__SoundContent__Group_4_2__3
+ {
+ pushFollow(FOLLOW_39);
+ rule__SoundContent__Group_4_2__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__SoundContent__Group_4_2__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__Group_4_2__2"
+
+
+ // $ANTLR start "rule__SoundContent__Group_4_2__2__Impl"
+ // InternalRBAModel.g:7710:1: rule__SoundContent__Group_4_2__2__Impl : ( ( rule__SoundContent__Group_4_2_2__0 )? ) ;
+ public final void rule__SoundContent__Group_4_2__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7714:1: ( ( ( rule__SoundContent__Group_4_2_2__0 )? ) )
+ // InternalRBAModel.g:7715:1: ( ( rule__SoundContent__Group_4_2_2__0 )? )
+ {
+ // InternalRBAModel.g:7715:1: ( ( rule__SoundContent__Group_4_2_2__0 )? )
+ // InternalRBAModel.g:7716:2: ( rule__SoundContent__Group_4_2_2__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentAccess().getGroup_4_2_2());
+ }
+ // InternalRBAModel.g:7717:2: ( rule__SoundContent__Group_4_2_2__0 )?
+ int alt49=2;
+ int LA49_0 = input.LA(1);
+
+ if ( (LA49_0==RULE_ID) ) {
+ alt49=1;
+ }
+ switch (alt49) {
+ case 1 :
+ // InternalRBAModel.g:7717:3: rule__SoundContent__Group_4_2_2__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContent__Group_4_2_2__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentAccess().getGroup_4_2_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__Group_4_2__2__Impl"
+
+
+ // $ANTLR start "rule__SoundContent__Group_4_2__3"
+ // InternalRBAModel.g:7725:1: rule__SoundContent__Group_4_2__3 : rule__SoundContent__Group_4_2__3__Impl ;
+ public final void rule__SoundContent__Group_4_2__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7729:1: ( rule__SoundContent__Group_4_2__3__Impl )
+ // InternalRBAModel.g:7730:2: rule__SoundContent__Group_4_2__3__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContent__Group_4_2__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__Group_4_2__3"
+
+
+ // $ANTLR start "rule__SoundContent__Group_4_2__3__Impl"
+ // InternalRBAModel.g:7736:1: rule__SoundContent__Group_4_2__3__Impl : ( ']' ) ;
+ public final void rule__SoundContent__Group_4_2__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7740:1: ( ( ']' ) )
+ // InternalRBAModel.g:7741:1: ( ']' )
+ {
+ // InternalRBAModel.g:7741:1: ( ']' )
+ // InternalRBAModel.g:7742:2: ']'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentAccess().getRightSquareBracketKeyword_4_2_3());
+ }
+ match(input,115,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentAccess().getRightSquareBracketKeyword_4_2_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__Group_4_2__3__Impl"
+
+
+ // $ANTLR start "rule__SoundContent__Group_4_2_2__0"
+ // InternalRBAModel.g:7752:1: rule__SoundContent__Group_4_2_2__0 : rule__SoundContent__Group_4_2_2__0__Impl rule__SoundContent__Group_4_2_2__1 ;
+ public final void rule__SoundContent__Group_4_2_2__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7756:1: ( rule__SoundContent__Group_4_2_2__0__Impl rule__SoundContent__Group_4_2_2__1 )
+ // InternalRBAModel.g:7757:2: rule__SoundContent__Group_4_2_2__0__Impl rule__SoundContent__Group_4_2_2__1
+ {
+ pushFollow(FOLLOW_17);
+ rule__SoundContent__Group_4_2_2__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__SoundContent__Group_4_2_2__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__Group_4_2_2__0"
+
+
+ // $ANTLR start "rule__SoundContent__Group_4_2_2__0__Impl"
+ // InternalRBAModel.g:7764:1: rule__SoundContent__Group_4_2_2__0__Impl : ( ( rule__SoundContent__AllocatableAssignment_4_2_2_0 ) ) ;
+ public final void rule__SoundContent__Group_4_2_2__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7768:1: ( ( ( rule__SoundContent__AllocatableAssignment_4_2_2_0 ) ) )
+ // InternalRBAModel.g:7769:1: ( ( rule__SoundContent__AllocatableAssignment_4_2_2_0 ) )
+ {
+ // InternalRBAModel.g:7769:1: ( ( rule__SoundContent__AllocatableAssignment_4_2_2_0 ) )
+ // InternalRBAModel.g:7770:2: ( rule__SoundContent__AllocatableAssignment_4_2_2_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentAccess().getAllocatableAssignment_4_2_2_0());
+ }
+ // InternalRBAModel.g:7771:2: ( rule__SoundContent__AllocatableAssignment_4_2_2_0 )
+ // InternalRBAModel.g:7771:3: rule__SoundContent__AllocatableAssignment_4_2_2_0
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContent__AllocatableAssignment_4_2_2_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentAccess().getAllocatableAssignment_4_2_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__Group_4_2_2__0__Impl"
+
+
+ // $ANTLR start "rule__SoundContent__Group_4_2_2__1"
+ // InternalRBAModel.g:7779:1: rule__SoundContent__Group_4_2_2__1 : rule__SoundContent__Group_4_2_2__1__Impl ;
+ public final void rule__SoundContent__Group_4_2_2__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7783:1: ( rule__SoundContent__Group_4_2_2__1__Impl )
+ // InternalRBAModel.g:7784:2: rule__SoundContent__Group_4_2_2__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContent__Group_4_2_2__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__Group_4_2_2__1"
+
+
+ // $ANTLR start "rule__SoundContent__Group_4_2_2__1__Impl"
+ // InternalRBAModel.g:7790:1: rule__SoundContent__Group_4_2_2__1__Impl : ( ( rule__SoundContent__Group_4_2_2_1__0 )* ) ;
+ public final void rule__SoundContent__Group_4_2_2__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7794:1: ( ( ( rule__SoundContent__Group_4_2_2_1__0 )* ) )
+ // InternalRBAModel.g:7795:1: ( ( rule__SoundContent__Group_4_2_2_1__0 )* )
+ {
+ // InternalRBAModel.g:7795:1: ( ( rule__SoundContent__Group_4_2_2_1__0 )* )
+ // InternalRBAModel.g:7796:2: ( rule__SoundContent__Group_4_2_2_1__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentAccess().getGroup_4_2_2_1());
+ }
+ // InternalRBAModel.g:7797:2: ( rule__SoundContent__Group_4_2_2_1__0 )*
+ loop50:
+ do {
+ int alt50=2;
+ int LA50_0 = input.LA(1);
+
+ if ( (LA50_0==103) ) {
+ alt50=1;
+ }
+
+
+ switch (alt50) {
+ case 1 :
+ // InternalRBAModel.g:7797:3: rule__SoundContent__Group_4_2_2_1__0
+ {
+ pushFollow(FOLLOW_18);
+ rule__SoundContent__Group_4_2_2_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop50;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentAccess().getGroup_4_2_2_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__Group_4_2_2__1__Impl"
+
+
+ // $ANTLR start "rule__SoundContent__Group_4_2_2_1__0"
+ // InternalRBAModel.g:7806:1: rule__SoundContent__Group_4_2_2_1__0 : rule__SoundContent__Group_4_2_2_1__0__Impl rule__SoundContent__Group_4_2_2_1__1 ;
+ public final void rule__SoundContent__Group_4_2_2_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7810:1: ( rule__SoundContent__Group_4_2_2_1__0__Impl rule__SoundContent__Group_4_2_2_1__1 )
+ // InternalRBAModel.g:7811:2: rule__SoundContent__Group_4_2_2_1__0__Impl rule__SoundContent__Group_4_2_2_1__1
+ {
+ pushFollow(FOLLOW_7);
+ rule__SoundContent__Group_4_2_2_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__SoundContent__Group_4_2_2_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__Group_4_2_2_1__0"
+
+
+ // $ANTLR start "rule__SoundContent__Group_4_2_2_1__0__Impl"
+ // InternalRBAModel.g:7818:1: rule__SoundContent__Group_4_2_2_1__0__Impl : ( ',' ) ;
+ public final void rule__SoundContent__Group_4_2_2_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7822:1: ( ( ',' ) )
+ // InternalRBAModel.g:7823:1: ( ',' )
+ {
+ // InternalRBAModel.g:7823:1: ( ',' )
+ // InternalRBAModel.g:7824:2: ','
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentAccess().getCommaKeyword_4_2_2_1_0());
+ }
+ match(input,103,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentAccess().getCommaKeyword_4_2_2_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__Group_4_2_2_1__0__Impl"
+
+
+ // $ANTLR start "rule__SoundContent__Group_4_2_2_1__1"
+ // InternalRBAModel.g:7833:1: rule__SoundContent__Group_4_2_2_1__1 : rule__SoundContent__Group_4_2_2_1__1__Impl ;
+ public final void rule__SoundContent__Group_4_2_2_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7837:1: ( rule__SoundContent__Group_4_2_2_1__1__Impl )
+ // InternalRBAModel.g:7838:2: rule__SoundContent__Group_4_2_2_1__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContent__Group_4_2_2_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__Group_4_2_2_1__1"
+
+
+ // $ANTLR start "rule__SoundContent__Group_4_2_2_1__1__Impl"
+ // InternalRBAModel.g:7844:1: rule__SoundContent__Group_4_2_2_1__1__Impl : ( ( rule__SoundContent__AllocatableAssignment_4_2_2_1_1 ) ) ;
+ public final void rule__SoundContent__Group_4_2_2_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7848:1: ( ( ( rule__SoundContent__AllocatableAssignment_4_2_2_1_1 ) ) )
+ // InternalRBAModel.g:7849:1: ( ( rule__SoundContent__AllocatableAssignment_4_2_2_1_1 ) )
+ {
+ // InternalRBAModel.g:7849:1: ( ( rule__SoundContent__AllocatableAssignment_4_2_2_1_1 ) )
+ // InternalRBAModel.g:7850:2: ( rule__SoundContent__AllocatableAssignment_4_2_2_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentAccess().getAllocatableAssignment_4_2_2_1_1());
+ }
+ // InternalRBAModel.g:7851:2: ( rule__SoundContent__AllocatableAssignment_4_2_2_1_1 )
+ // InternalRBAModel.g:7851:3: rule__SoundContent__AllocatableAssignment_4_2_2_1_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContent__AllocatableAssignment_4_2_2_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentAccess().getAllocatableAssignment_4_2_2_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__Group_4_2_2_1__1__Impl"
+
+
+ // $ANTLR start "rule__Size__Group__0"
+ // InternalRBAModel.g:7860:1: rule__Size__Group__0 : rule__Size__Group__0__Impl rule__Size__Group__1 ;
+ public final void rule__Size__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7864:1: ( rule__Size__Group__0__Impl rule__Size__Group__1 )
+ // InternalRBAModel.g:7865:2: rule__Size__Group__0__Impl rule__Size__Group__1
+ {
+ pushFollow(FOLLOW_21);
+ rule__Size__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Size__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Size__Group__0"
+
+
+ // $ANTLR start "rule__Size__Group__0__Impl"
+ // InternalRBAModel.g:7872:1: rule__Size__Group__0__Impl : ( () ) ;
+ public final void rule__Size__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7876:1: ( ( () ) )
+ // InternalRBAModel.g:7877:1: ( () )
+ {
+ // InternalRBAModel.g:7877:1: ( () )
+ // InternalRBAModel.g:7878:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSizeAccess().getSizeAction_0());
+ }
+ // InternalRBAModel.g:7879:2: ()
+ // InternalRBAModel.g:7879:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSizeAccess().getSizeAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Size__Group__0__Impl"
+
+
+ // $ANTLR start "rule__Size__Group__1"
+ // InternalRBAModel.g:7887:1: rule__Size__Group__1 : rule__Size__Group__1__Impl rule__Size__Group__2 ;
+ public final void rule__Size__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7891:1: ( rule__Size__Group__1__Impl rule__Size__Group__2 )
+ // InternalRBAModel.g:7892:2: rule__Size__Group__1__Impl rule__Size__Group__2
+ {
+ pushFollow(FOLLOW_7);
+ rule__Size__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Size__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Size__Group__1"
+
+
+ // $ANTLR start "rule__Size__Group__1__Impl"
+ // InternalRBAModel.g:7899:1: rule__Size__Group__1__Impl : ( 'Size' ) ;
+ public final void rule__Size__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7903:1: ( ( 'Size' ) )
+ // InternalRBAModel.g:7904:1: ( 'Size' )
+ {
+ // InternalRBAModel.g:7904:1: ( 'Size' )
+ // InternalRBAModel.g:7905:2: 'Size'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSizeAccess().getSizeKeyword_1());
+ }
+ match(input,116,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSizeAccess().getSizeKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Size__Group__1__Impl"
+
+
+ // $ANTLR start "rule__Size__Group__2"
+ // InternalRBAModel.g:7914:1: rule__Size__Group__2 : rule__Size__Group__2__Impl rule__Size__Group__3 ;
+ public final void rule__Size__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7918:1: ( rule__Size__Group__2__Impl rule__Size__Group__3 )
+ // InternalRBAModel.g:7919:2: rule__Size__Group__2__Impl rule__Size__Group__3
+ {
+ pushFollow(FOLLOW_11);
+ rule__Size__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Size__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Size__Group__2"
+
+
+ // $ANTLR start "rule__Size__Group__2__Impl"
+ // InternalRBAModel.g:7926:1: rule__Size__Group__2__Impl : ( ( rule__Size__NameAssignment_2 ) ) ;
+ public final void rule__Size__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7930:1: ( ( ( rule__Size__NameAssignment_2 ) ) )
+ // InternalRBAModel.g:7931:1: ( ( rule__Size__NameAssignment_2 ) )
+ {
+ // InternalRBAModel.g:7931:1: ( ( rule__Size__NameAssignment_2 ) )
+ // InternalRBAModel.g:7932:2: ( rule__Size__NameAssignment_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSizeAccess().getNameAssignment_2());
+ }
+ // InternalRBAModel.g:7933:2: ( rule__Size__NameAssignment_2 )
+ // InternalRBAModel.g:7933:3: rule__Size__NameAssignment_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__Size__NameAssignment_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSizeAccess().getNameAssignment_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Size__Group__2__Impl"
+
+
+ // $ANTLR start "rule__Size__Group__3"
+ // InternalRBAModel.g:7941:1: rule__Size__Group__3 : rule__Size__Group__3__Impl rule__Size__Group__4 ;
+ public final void rule__Size__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7945:1: ( rule__Size__Group__3__Impl rule__Size__Group__4 )
+ // InternalRBAModel.g:7946:2: rule__Size__Group__3__Impl rule__Size__Group__4
+ {
+ pushFollow(FOLLOW_41);
+ rule__Size__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Size__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Size__Group__3"
+
+
+ // $ANTLR start "rule__Size__Group__3__Impl"
+ // InternalRBAModel.g:7953:1: rule__Size__Group__3__Impl : ( '{' ) ;
+ public final void rule__Size__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7957:1: ( ( '{' ) )
+ // InternalRBAModel.g:7958:1: ( '{' )
+ {
+ // InternalRBAModel.g:7958:1: ( '{' )
+ // InternalRBAModel.g:7959:2: '{'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSizeAccess().getLeftCurlyBracketKeyword_3());
+ }
+ match(input,101,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSizeAccess().getLeftCurlyBracketKeyword_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Size__Group__3__Impl"
+
+
+ // $ANTLR start "rule__Size__Group__4"
+ // InternalRBAModel.g:7968:1: rule__Size__Group__4 : rule__Size__Group__4__Impl rule__Size__Group__5 ;
+ public final void rule__Size__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7972:1: ( rule__Size__Group__4__Impl rule__Size__Group__5 )
+ // InternalRBAModel.g:7973:2: rule__Size__Group__4__Impl rule__Size__Group__5
+ {
+ pushFollow(FOLLOW_22);
+ rule__Size__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Size__Group__5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Size__Group__4"
+
+
+ // $ANTLR start "rule__Size__Group__4__Impl"
+ // InternalRBAModel.g:7980:1: rule__Size__Group__4__Impl : ( ( rule__Size__UnorderedGroup_4 ) ) ;
+ public final void rule__Size__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7984:1: ( ( ( rule__Size__UnorderedGroup_4 ) ) )
+ // InternalRBAModel.g:7985:1: ( ( rule__Size__UnorderedGroup_4 ) )
+ {
+ // InternalRBAModel.g:7985:1: ( ( rule__Size__UnorderedGroup_4 ) )
+ // InternalRBAModel.g:7986:2: ( rule__Size__UnorderedGroup_4 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSizeAccess().getUnorderedGroup_4());
+ }
+ // InternalRBAModel.g:7987:2: ( rule__Size__UnorderedGroup_4 )
+ // InternalRBAModel.g:7987:3: rule__Size__UnorderedGroup_4
+ {
+ pushFollow(FOLLOW_2);
+ rule__Size__UnorderedGroup_4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSizeAccess().getUnorderedGroup_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Size__Group__4__Impl"
+
+
+ // $ANTLR start "rule__Size__Group__5"
+ // InternalRBAModel.g:7995:1: rule__Size__Group__5 : rule__Size__Group__5__Impl ;
+ public final void rule__Size__Group__5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:7999:1: ( rule__Size__Group__5__Impl )
+ // InternalRBAModel.g:8000:2: rule__Size__Group__5__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Size__Group__5__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Size__Group__5"
+
+
+ // $ANTLR start "rule__Size__Group__5__Impl"
+ // InternalRBAModel.g:8006:1: rule__Size__Group__5__Impl : ( '}' ) ;
+ public final void rule__Size__Group__5__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8010:1: ( ( '}' ) )
+ // InternalRBAModel.g:8011:1: ( '}' )
+ {
+ // InternalRBAModel.g:8011:1: ( '}' )
+ // InternalRBAModel.g:8012:2: '}'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSizeAccess().getRightCurlyBracketKeyword_5());
+ }
+ match(input,102,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSizeAccess().getRightCurlyBracketKeyword_5());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Size__Group__5__Impl"
+
+
+ // $ANTLR start "rule__Size__Group_4_0__0"
+ // InternalRBAModel.g:8022:1: rule__Size__Group_4_0__0 : rule__Size__Group_4_0__0__Impl rule__Size__Group_4_0__1 ;
+ public final void rule__Size__Group_4_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8026:1: ( rule__Size__Group_4_0__0__Impl rule__Size__Group_4_0__1 )
+ // InternalRBAModel.g:8027:2: rule__Size__Group_4_0__0__Impl rule__Size__Group_4_0__1
+ {
+ pushFollow(FOLLOW_19);
+ rule__Size__Group_4_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Size__Group_4_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Size__Group_4_0__0"
+
+
+ // $ANTLR start "rule__Size__Group_4_0__0__Impl"
+ // InternalRBAModel.g:8034:1: rule__Size__Group_4_0__0__Impl : ( 'description:' ) ;
+ public final void rule__Size__Group_4_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8038:1: ( ( 'description:' ) )
+ // InternalRBAModel.g:8039:1: ( 'description:' )
+ {
+ // InternalRBAModel.g:8039:1: ( 'description:' )
+ // InternalRBAModel.g:8040:2: 'description:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSizeAccess().getDescriptionKeyword_4_0_0());
+ }
+ match(input,105,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSizeAccess().getDescriptionKeyword_4_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Size__Group_4_0__0__Impl"
+
+
+ // $ANTLR start "rule__Size__Group_4_0__1"
+ // InternalRBAModel.g:8049:1: rule__Size__Group_4_0__1 : rule__Size__Group_4_0__1__Impl ;
+ public final void rule__Size__Group_4_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8053:1: ( rule__Size__Group_4_0__1__Impl )
+ // InternalRBAModel.g:8054:2: rule__Size__Group_4_0__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Size__Group_4_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Size__Group_4_0__1"
+
+
+ // $ANTLR start "rule__Size__Group_4_0__1__Impl"
+ // InternalRBAModel.g:8060:1: rule__Size__Group_4_0__1__Impl : ( ( rule__Size__DescriptionAssignment_4_0_1 ) ) ;
+ public final void rule__Size__Group_4_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8064:1: ( ( ( rule__Size__DescriptionAssignment_4_0_1 ) ) )
+ // InternalRBAModel.g:8065:1: ( ( rule__Size__DescriptionAssignment_4_0_1 ) )
+ {
+ // InternalRBAModel.g:8065:1: ( ( rule__Size__DescriptionAssignment_4_0_1 ) )
+ // InternalRBAModel.g:8066:2: ( rule__Size__DescriptionAssignment_4_0_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSizeAccess().getDescriptionAssignment_4_0_1());
+ }
+ // InternalRBAModel.g:8067:2: ( rule__Size__DescriptionAssignment_4_0_1 )
+ // InternalRBAModel.g:8067:3: rule__Size__DescriptionAssignment_4_0_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__Size__DescriptionAssignment_4_0_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSizeAccess().getDescriptionAssignment_4_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Size__Group_4_0__1__Impl"
+
+
+ // $ANTLR start "rule__Size__Group_4_1__0"
+ // InternalRBAModel.g:8076:1: rule__Size__Group_4_1__0 : rule__Size__Group_4_1__0__Impl rule__Size__Group_4_1__1 ;
+ public final void rule__Size__Group_4_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8080:1: ( rule__Size__Group_4_1__0__Impl rule__Size__Group_4_1__1 )
+ // InternalRBAModel.g:8081:2: rule__Size__Group_4_1__0__Impl rule__Size__Group_4_1__1
+ {
+ pushFollow(FOLLOW_10);
+ rule__Size__Group_4_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Size__Group_4_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Size__Group_4_1__0"
+
+
+ // $ANTLR start "rule__Size__Group_4_1__0__Impl"
+ // InternalRBAModel.g:8088:1: rule__Size__Group_4_1__0__Impl : ( 'width:' ) ;
+ public final void rule__Size__Group_4_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8092:1: ( ( 'width:' ) )
+ // InternalRBAModel.g:8093:1: ( 'width:' )
+ {
+ // InternalRBAModel.g:8093:1: ( 'width:' )
+ // InternalRBAModel.g:8094:2: 'width:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSizeAccess().getWidthKeyword_4_1_0());
+ }
+ match(input,117,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSizeAccess().getWidthKeyword_4_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Size__Group_4_1__0__Impl"
+
+
+ // $ANTLR start "rule__Size__Group_4_1__1"
+ // InternalRBAModel.g:8103:1: rule__Size__Group_4_1__1 : rule__Size__Group_4_1__1__Impl ;
+ public final void rule__Size__Group_4_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8107:1: ( rule__Size__Group_4_1__1__Impl )
+ // InternalRBAModel.g:8108:2: rule__Size__Group_4_1__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Size__Group_4_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Size__Group_4_1__1"
+
+
+ // $ANTLR start "rule__Size__Group_4_1__1__Impl"
+ // InternalRBAModel.g:8114:1: rule__Size__Group_4_1__1__Impl : ( ( rule__Size__WidthAssignment_4_1_1 ) ) ;
+ public final void rule__Size__Group_4_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8118:1: ( ( ( rule__Size__WidthAssignment_4_1_1 ) ) )
+ // InternalRBAModel.g:8119:1: ( ( rule__Size__WidthAssignment_4_1_1 ) )
+ {
+ // InternalRBAModel.g:8119:1: ( ( rule__Size__WidthAssignment_4_1_1 ) )
+ // InternalRBAModel.g:8120:2: ( rule__Size__WidthAssignment_4_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSizeAccess().getWidthAssignment_4_1_1());
+ }
+ // InternalRBAModel.g:8121:2: ( rule__Size__WidthAssignment_4_1_1 )
+ // InternalRBAModel.g:8121:3: rule__Size__WidthAssignment_4_1_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__Size__WidthAssignment_4_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSizeAccess().getWidthAssignment_4_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Size__Group_4_1__1__Impl"
+
+
+ // $ANTLR start "rule__Size__Group_4_2__0"
+ // InternalRBAModel.g:8130:1: rule__Size__Group_4_2__0 : rule__Size__Group_4_2__0__Impl rule__Size__Group_4_2__1 ;
+ public final void rule__Size__Group_4_2__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8134:1: ( rule__Size__Group_4_2__0__Impl rule__Size__Group_4_2__1 )
+ // InternalRBAModel.g:8135:2: rule__Size__Group_4_2__0__Impl rule__Size__Group_4_2__1
+ {
+ pushFollow(FOLLOW_10);
+ rule__Size__Group_4_2__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Size__Group_4_2__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Size__Group_4_2__0"
+
+
+ // $ANTLR start "rule__Size__Group_4_2__0__Impl"
+ // InternalRBAModel.g:8142:1: rule__Size__Group_4_2__0__Impl : ( 'height:' ) ;
+ public final void rule__Size__Group_4_2__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8146:1: ( ( 'height:' ) )
+ // InternalRBAModel.g:8147:1: ( 'height:' )
+ {
+ // InternalRBAModel.g:8147:1: ( 'height:' )
+ // InternalRBAModel.g:8148:2: 'height:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSizeAccess().getHeightKeyword_4_2_0());
+ }
+ match(input,118,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSizeAccess().getHeightKeyword_4_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Size__Group_4_2__0__Impl"
+
+
+ // $ANTLR start "rule__Size__Group_4_2__1"
+ // InternalRBAModel.g:8157:1: rule__Size__Group_4_2__1 : rule__Size__Group_4_2__1__Impl ;
+ public final void rule__Size__Group_4_2__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8161:1: ( rule__Size__Group_4_2__1__Impl )
+ // InternalRBAModel.g:8162:2: rule__Size__Group_4_2__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Size__Group_4_2__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Size__Group_4_2__1"
+
+
+ // $ANTLR start "rule__Size__Group_4_2__1__Impl"
+ // InternalRBAModel.g:8168:1: rule__Size__Group_4_2__1__Impl : ( ( rule__Size__HeightAssignment_4_2_1 ) ) ;
+ public final void rule__Size__Group_4_2__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8172:1: ( ( ( rule__Size__HeightAssignment_4_2_1 ) ) )
+ // InternalRBAModel.g:8173:1: ( ( rule__Size__HeightAssignment_4_2_1 ) )
+ {
+ // InternalRBAModel.g:8173:1: ( ( rule__Size__HeightAssignment_4_2_1 ) )
+ // InternalRBAModel.g:8174:2: ( rule__Size__HeightAssignment_4_2_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSizeAccess().getHeightAssignment_4_2_1());
+ }
+ // InternalRBAModel.g:8175:2: ( rule__Size__HeightAssignment_4_2_1 )
+ // InternalRBAModel.g:8175:3: rule__Size__HeightAssignment_4_2_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__Size__HeightAssignment_4_2_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSizeAccess().getHeightAssignment_4_2_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Size__Group_4_2__1__Impl"
+
+
+ // $ANTLR start "rule__SizeReference__Group__0"
+ // InternalRBAModel.g:8184:1: rule__SizeReference__Group__0 : rule__SizeReference__Group__0__Impl rule__SizeReference__Group__1 ;
+ public final void rule__SizeReference__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8188:1: ( rule__SizeReference__Group__0__Impl rule__SizeReference__Group__1 )
+ // InternalRBAModel.g:8189:2: rule__SizeReference__Group__0__Impl rule__SizeReference__Group__1
+ {
+ pushFollow(FOLLOW_42);
+ rule__SizeReference__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__SizeReference__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SizeReference__Group__0"
+
+
+ // $ANTLR start "rule__SizeReference__Group__0__Impl"
+ // InternalRBAModel.g:8196:1: rule__SizeReference__Group__0__Impl : ( () ) ;
+ public final void rule__SizeReference__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8200:1: ( ( () ) )
+ // InternalRBAModel.g:8201:1: ( () )
+ {
+ // InternalRBAModel.g:8201:1: ( () )
+ // InternalRBAModel.g:8202:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSizeReferenceAccess().getSizeReferenceAction_0());
+ }
+ // InternalRBAModel.g:8203:2: ()
+ // InternalRBAModel.g:8203:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSizeReferenceAccess().getSizeReferenceAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SizeReference__Group__0__Impl"
+
+
+ // $ANTLR start "rule__SizeReference__Group__1"
+ // InternalRBAModel.g:8211:1: rule__SizeReference__Group__1 : rule__SizeReference__Group__1__Impl rule__SizeReference__Group__2 ;
+ public final void rule__SizeReference__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8215:1: ( rule__SizeReference__Group__1__Impl rule__SizeReference__Group__2 )
+ // InternalRBAModel.g:8216:2: rule__SizeReference__Group__1__Impl rule__SizeReference__Group__2
+ {
+ pushFollow(FOLLOW_7);
+ rule__SizeReference__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__SizeReference__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SizeReference__Group__1"
+
+
+ // $ANTLR start "rule__SizeReference__Group__1__Impl"
+ // InternalRBAModel.g:8223:1: rule__SizeReference__Group__1__Impl : ( 'sizeReference:' ) ;
+ public final void rule__SizeReference__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8227:1: ( ( 'sizeReference:' ) )
+ // InternalRBAModel.g:8228:1: ( 'sizeReference:' )
+ {
+ // InternalRBAModel.g:8228:1: ( 'sizeReference:' )
+ // InternalRBAModel.g:8229:2: 'sizeReference:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSizeReferenceAccess().getSizeReferenceKeyword_1());
+ }
+ match(input,119,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSizeReferenceAccess().getSizeReferenceKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SizeReference__Group__1__Impl"
+
+
+ // $ANTLR start "rule__SizeReference__Group__2"
+ // InternalRBAModel.g:8238:1: rule__SizeReference__Group__2 : rule__SizeReference__Group__2__Impl ;
+ public final void rule__SizeReference__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8242:1: ( rule__SizeReference__Group__2__Impl )
+ // InternalRBAModel.g:8243:2: rule__SizeReference__Group__2__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__SizeReference__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SizeReference__Group__2"
+
+
+ // $ANTLR start "rule__SizeReference__Group__2__Impl"
+ // InternalRBAModel.g:8249:1: rule__SizeReference__Group__2__Impl : ( ( rule__SizeReference__SizeAssignment_2 ) ) ;
+ public final void rule__SizeReference__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8253:1: ( ( ( rule__SizeReference__SizeAssignment_2 ) ) )
+ // InternalRBAModel.g:8254:1: ( ( rule__SizeReference__SizeAssignment_2 ) )
+ {
+ // InternalRBAModel.g:8254:1: ( ( rule__SizeReference__SizeAssignment_2 ) )
+ // InternalRBAModel.g:8255:2: ( rule__SizeReference__SizeAssignment_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSizeReferenceAccess().getSizeAssignment_2());
+ }
+ // InternalRBAModel.g:8256:2: ( rule__SizeReference__SizeAssignment_2 )
+ // InternalRBAModel.g:8256:3: rule__SizeReference__SizeAssignment_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__SizeReference__SizeAssignment_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSizeReferenceAccess().getSizeAssignment_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SizeReference__Group__2__Impl"
+
+
+ // $ANTLR start "rule__Offset__Group__0"
+ // InternalRBAModel.g:8265:1: rule__Offset__Group__0 : rule__Offset__Group__0__Impl rule__Offset__Group__1 ;
+ public final void rule__Offset__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8269:1: ( rule__Offset__Group__0__Impl rule__Offset__Group__1 )
+ // InternalRBAModel.g:8270:2: rule__Offset__Group__0__Impl rule__Offset__Group__1
+ {
+ pushFollow(FOLLOW_43);
+ rule__Offset__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Offset__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Offset__Group__0"
+
+
+ // $ANTLR start "rule__Offset__Group__0__Impl"
+ // InternalRBAModel.g:8277:1: rule__Offset__Group__0__Impl : ( () ) ;
+ public final void rule__Offset__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8281:1: ( ( () ) )
+ // InternalRBAModel.g:8282:1: ( () )
+ {
+ // InternalRBAModel.g:8282:1: ( () )
+ // InternalRBAModel.g:8283:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOffsetAccess().getOffsetAction_0());
+ }
+ // InternalRBAModel.g:8284:2: ()
+ // InternalRBAModel.g:8284:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOffsetAccess().getOffsetAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Offset__Group__0__Impl"
+
+
+ // $ANTLR start "rule__Offset__Group__1"
+ // InternalRBAModel.g:8292:1: rule__Offset__Group__1 : rule__Offset__Group__1__Impl rule__Offset__Group__2 ;
+ public final void rule__Offset__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8296:1: ( rule__Offset__Group__1__Impl rule__Offset__Group__2 )
+ // InternalRBAModel.g:8297:2: rule__Offset__Group__1__Impl rule__Offset__Group__2
+ {
+ pushFollow(FOLLOW_11);
+ rule__Offset__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Offset__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Offset__Group__1"
+
+
+ // $ANTLR start "rule__Offset__Group__1__Impl"
+ // InternalRBAModel.g:8304:1: rule__Offset__Group__1__Impl : ( 'Offset' ) ;
+ public final void rule__Offset__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8308:1: ( ( 'Offset' ) )
+ // InternalRBAModel.g:8309:1: ( 'Offset' )
+ {
+ // InternalRBAModel.g:8309:1: ( 'Offset' )
+ // InternalRBAModel.g:8310:2: 'Offset'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOffsetAccess().getOffsetKeyword_1());
+ }
+ match(input,120,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOffsetAccess().getOffsetKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Offset__Group__1__Impl"
+
+
+ // $ANTLR start "rule__Offset__Group__2"
+ // InternalRBAModel.g:8319:1: rule__Offset__Group__2 : rule__Offset__Group__2__Impl rule__Offset__Group__3 ;
+ public final void rule__Offset__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8323:1: ( rule__Offset__Group__2__Impl rule__Offset__Group__3 )
+ // InternalRBAModel.g:8324:2: rule__Offset__Group__2__Impl rule__Offset__Group__3
+ {
+ pushFollow(FOLLOW_44);
+ rule__Offset__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Offset__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Offset__Group__2"
+
+
+ // $ANTLR start "rule__Offset__Group__2__Impl"
+ // InternalRBAModel.g:8331:1: rule__Offset__Group__2__Impl : ( '{' ) ;
+ public final void rule__Offset__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8335:1: ( ( '{' ) )
+ // InternalRBAModel.g:8336:1: ( '{' )
+ {
+ // InternalRBAModel.g:8336:1: ( '{' )
+ // InternalRBAModel.g:8337:2: '{'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOffsetAccess().getLeftCurlyBracketKeyword_2());
+ }
+ match(input,101,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOffsetAccess().getLeftCurlyBracketKeyword_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Offset__Group__2__Impl"
+
+
+ // $ANTLR start "rule__Offset__Group__3"
+ // InternalRBAModel.g:8346:1: rule__Offset__Group__3 : rule__Offset__Group__3__Impl rule__Offset__Group__4 ;
+ public final void rule__Offset__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8350:1: ( rule__Offset__Group__3__Impl rule__Offset__Group__4 )
+ // InternalRBAModel.g:8351:2: rule__Offset__Group__3__Impl rule__Offset__Group__4
+ {
+ pushFollow(FOLLOW_22);
+ rule__Offset__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Offset__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Offset__Group__3"
+
+
+ // $ANTLR start "rule__Offset__Group__3__Impl"
+ // InternalRBAModel.g:8358:1: rule__Offset__Group__3__Impl : ( ( rule__Offset__UnorderedGroup_3 ) ) ;
+ public final void rule__Offset__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8362:1: ( ( ( rule__Offset__UnorderedGroup_3 ) ) )
+ // InternalRBAModel.g:8363:1: ( ( rule__Offset__UnorderedGroup_3 ) )
+ {
+ // InternalRBAModel.g:8363:1: ( ( rule__Offset__UnorderedGroup_3 ) )
+ // InternalRBAModel.g:8364:2: ( rule__Offset__UnorderedGroup_3 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOffsetAccess().getUnorderedGroup_3());
+ }
+ // InternalRBAModel.g:8365:2: ( rule__Offset__UnorderedGroup_3 )
+ // InternalRBAModel.g:8365:3: rule__Offset__UnorderedGroup_3
+ {
+ pushFollow(FOLLOW_2);
+ rule__Offset__UnorderedGroup_3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOffsetAccess().getUnorderedGroup_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Offset__Group__3__Impl"
+
+
+ // $ANTLR start "rule__Offset__Group__4"
+ // InternalRBAModel.g:8373:1: rule__Offset__Group__4 : rule__Offset__Group__4__Impl ;
+ public final void rule__Offset__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8377:1: ( rule__Offset__Group__4__Impl )
+ // InternalRBAModel.g:8378:2: rule__Offset__Group__4__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Offset__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Offset__Group__4"
+
+
+ // $ANTLR start "rule__Offset__Group__4__Impl"
+ // InternalRBAModel.g:8384:1: rule__Offset__Group__4__Impl : ( '}' ) ;
+ public final void rule__Offset__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8388:1: ( ( '}' ) )
+ // InternalRBAModel.g:8389:1: ( '}' )
+ {
+ // InternalRBAModel.g:8389:1: ( '}' )
+ // InternalRBAModel.g:8390:2: '}'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOffsetAccess().getRightCurlyBracketKeyword_4());
+ }
+ match(input,102,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOffsetAccess().getRightCurlyBracketKeyword_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Offset__Group__4__Impl"
+
+
+ // $ANTLR start "rule__Offset__Group_3_0__0"
+ // InternalRBAModel.g:8400:1: rule__Offset__Group_3_0__0 : rule__Offset__Group_3_0__0__Impl rule__Offset__Group_3_0__1 ;
+ public final void rule__Offset__Group_3_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8404:1: ( rule__Offset__Group_3_0__0__Impl rule__Offset__Group_3_0__1 )
+ // InternalRBAModel.g:8405:2: rule__Offset__Group_3_0__0__Impl rule__Offset__Group_3_0__1
+ {
+ pushFollow(FOLLOW_19);
+ rule__Offset__Group_3_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Offset__Group_3_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Offset__Group_3_0__0"
+
+
+ // $ANTLR start "rule__Offset__Group_3_0__0__Impl"
+ // InternalRBAModel.g:8412:1: rule__Offset__Group_3_0__0__Impl : ( 'description:' ) ;
+ public final void rule__Offset__Group_3_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8416:1: ( ( 'description:' ) )
+ // InternalRBAModel.g:8417:1: ( 'description:' )
+ {
+ // InternalRBAModel.g:8417:1: ( 'description:' )
+ // InternalRBAModel.g:8418:2: 'description:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOffsetAccess().getDescriptionKeyword_3_0_0());
+ }
+ match(input,105,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOffsetAccess().getDescriptionKeyword_3_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Offset__Group_3_0__0__Impl"
+
+
+ // $ANTLR start "rule__Offset__Group_3_0__1"
+ // InternalRBAModel.g:8427:1: rule__Offset__Group_3_0__1 : rule__Offset__Group_3_0__1__Impl ;
+ public final void rule__Offset__Group_3_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8431:1: ( rule__Offset__Group_3_0__1__Impl )
+ // InternalRBAModel.g:8432:2: rule__Offset__Group_3_0__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Offset__Group_3_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Offset__Group_3_0__1"
+
+
+ // $ANTLR start "rule__Offset__Group_3_0__1__Impl"
+ // InternalRBAModel.g:8438:1: rule__Offset__Group_3_0__1__Impl : ( ( rule__Offset__DescriptionAssignment_3_0_1 ) ) ;
+ public final void rule__Offset__Group_3_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8442:1: ( ( ( rule__Offset__DescriptionAssignment_3_0_1 ) ) )
+ // InternalRBAModel.g:8443:1: ( ( rule__Offset__DescriptionAssignment_3_0_1 ) )
+ {
+ // InternalRBAModel.g:8443:1: ( ( rule__Offset__DescriptionAssignment_3_0_1 ) )
+ // InternalRBAModel.g:8444:2: ( rule__Offset__DescriptionAssignment_3_0_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOffsetAccess().getDescriptionAssignment_3_0_1());
+ }
+ // InternalRBAModel.g:8445:2: ( rule__Offset__DescriptionAssignment_3_0_1 )
+ // InternalRBAModel.g:8445:3: rule__Offset__DescriptionAssignment_3_0_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__Offset__DescriptionAssignment_3_0_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOffsetAccess().getDescriptionAssignment_3_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Offset__Group_3_0__1__Impl"
+
+
+ // $ANTLR start "rule__Offset__Group_3_1__0"
+ // InternalRBAModel.g:8454:1: rule__Offset__Group_3_1__0 : rule__Offset__Group_3_1__0__Impl rule__Offset__Group_3_1__1 ;
+ public final void rule__Offset__Group_3_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8458:1: ( rule__Offset__Group_3_1__0__Impl rule__Offset__Group_3_1__1 )
+ // InternalRBAModel.g:8459:2: rule__Offset__Group_3_1__0__Impl rule__Offset__Group_3_1__1
+ {
+ pushFollow(FOLLOW_10);
+ rule__Offset__Group_3_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Offset__Group_3_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Offset__Group_3_1__0"
+
+
+ // $ANTLR start "rule__Offset__Group_3_1__0__Impl"
+ // InternalRBAModel.g:8466:1: rule__Offset__Group_3_1__0__Impl : ( 'x:' ) ;
+ public final void rule__Offset__Group_3_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8470:1: ( ( 'x:' ) )
+ // InternalRBAModel.g:8471:1: ( 'x:' )
+ {
+ // InternalRBAModel.g:8471:1: ( 'x:' )
+ // InternalRBAModel.g:8472:2: 'x:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOffsetAccess().getXKeyword_3_1_0());
+ }
+ match(input,121,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOffsetAccess().getXKeyword_3_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Offset__Group_3_1__0__Impl"
+
+
+ // $ANTLR start "rule__Offset__Group_3_1__1"
+ // InternalRBAModel.g:8481:1: rule__Offset__Group_3_1__1 : rule__Offset__Group_3_1__1__Impl ;
+ public final void rule__Offset__Group_3_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8485:1: ( rule__Offset__Group_3_1__1__Impl )
+ // InternalRBAModel.g:8486:2: rule__Offset__Group_3_1__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Offset__Group_3_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Offset__Group_3_1__1"
+
+
+ // $ANTLR start "rule__Offset__Group_3_1__1__Impl"
+ // InternalRBAModel.g:8492:1: rule__Offset__Group_3_1__1__Impl : ( ( rule__Offset__XAssignment_3_1_1 ) ) ;
+ public final void rule__Offset__Group_3_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8496:1: ( ( ( rule__Offset__XAssignment_3_1_1 ) ) )
+ // InternalRBAModel.g:8497:1: ( ( rule__Offset__XAssignment_3_1_1 ) )
+ {
+ // InternalRBAModel.g:8497:1: ( ( rule__Offset__XAssignment_3_1_1 ) )
+ // InternalRBAModel.g:8498:2: ( rule__Offset__XAssignment_3_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOffsetAccess().getXAssignment_3_1_1());
+ }
+ // InternalRBAModel.g:8499:2: ( rule__Offset__XAssignment_3_1_1 )
+ // InternalRBAModel.g:8499:3: rule__Offset__XAssignment_3_1_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__Offset__XAssignment_3_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOffsetAccess().getXAssignment_3_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Offset__Group_3_1__1__Impl"
+
+
+ // $ANTLR start "rule__Offset__Group_3_2__0"
+ // InternalRBAModel.g:8508:1: rule__Offset__Group_3_2__0 : rule__Offset__Group_3_2__0__Impl rule__Offset__Group_3_2__1 ;
+ public final void rule__Offset__Group_3_2__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8512:1: ( rule__Offset__Group_3_2__0__Impl rule__Offset__Group_3_2__1 )
+ // InternalRBAModel.g:8513:2: rule__Offset__Group_3_2__0__Impl rule__Offset__Group_3_2__1
+ {
+ pushFollow(FOLLOW_10);
+ rule__Offset__Group_3_2__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Offset__Group_3_2__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Offset__Group_3_2__0"
+
+
+ // $ANTLR start "rule__Offset__Group_3_2__0__Impl"
+ // InternalRBAModel.g:8520:1: rule__Offset__Group_3_2__0__Impl : ( 'y:' ) ;
+ public final void rule__Offset__Group_3_2__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8524:1: ( ( 'y:' ) )
+ // InternalRBAModel.g:8525:1: ( 'y:' )
+ {
+ // InternalRBAModel.g:8525:1: ( 'y:' )
+ // InternalRBAModel.g:8526:2: 'y:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOffsetAccess().getYKeyword_3_2_0());
+ }
+ match(input,122,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOffsetAccess().getYKeyword_3_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Offset__Group_3_2__0__Impl"
+
+
+ // $ANTLR start "rule__Offset__Group_3_2__1"
+ // InternalRBAModel.g:8535:1: rule__Offset__Group_3_2__1 : rule__Offset__Group_3_2__1__Impl ;
+ public final void rule__Offset__Group_3_2__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8539:1: ( rule__Offset__Group_3_2__1__Impl )
+ // InternalRBAModel.g:8540:2: rule__Offset__Group_3_2__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Offset__Group_3_2__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Offset__Group_3_2__1"
+
+
+ // $ANTLR start "rule__Offset__Group_3_2__1__Impl"
+ // InternalRBAModel.g:8546:1: rule__Offset__Group_3_2__1__Impl : ( ( rule__Offset__YAssignment_3_2_1 ) ) ;
+ public final void rule__Offset__Group_3_2__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8550:1: ( ( ( rule__Offset__YAssignment_3_2_1 ) ) )
+ // InternalRBAModel.g:8551:1: ( ( rule__Offset__YAssignment_3_2_1 ) )
+ {
+ // InternalRBAModel.g:8551:1: ( ( rule__Offset__YAssignment_3_2_1 ) )
+ // InternalRBAModel.g:8552:2: ( rule__Offset__YAssignment_3_2_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOffsetAccess().getYAssignment_3_2_1());
+ }
+ // InternalRBAModel.g:8553:2: ( rule__Offset__YAssignment_3_2_1 )
+ // InternalRBAModel.g:8553:3: rule__Offset__YAssignment_3_2_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__Offset__YAssignment_3_2_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOffsetAccess().getYAssignment_3_2_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Offset__Group_3_2__1__Impl"
+
+
+ // $ANTLR start "rule__AreaSet__Group__0"
+ // InternalRBAModel.g:8562:1: rule__AreaSet__Group__0 : rule__AreaSet__Group__0__Impl rule__AreaSet__Group__1 ;
+ public final void rule__AreaSet__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8566:1: ( rule__AreaSet__Group__0__Impl rule__AreaSet__Group__1 )
+ // InternalRBAModel.g:8567:2: rule__AreaSet__Group__0__Impl rule__AreaSet__Group__1
+ {
+ pushFollow(FOLLOW_45);
+ rule__AreaSet__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__AreaSet__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AreaSet__Group__0"
+
+
+ // $ANTLR start "rule__AreaSet__Group__0__Impl"
+ // InternalRBAModel.g:8574:1: rule__AreaSet__Group__0__Impl : ( () ) ;
+ public final void rule__AreaSet__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8578:1: ( ( () ) )
+ // InternalRBAModel.g:8579:1: ( () )
+ {
+ // InternalRBAModel.g:8579:1: ( () )
+ // InternalRBAModel.g:8580:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaSetAccess().getAreaSetAction_0());
+ }
+ // InternalRBAModel.g:8581:2: ()
+ // InternalRBAModel.g:8581:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaSetAccess().getAreaSetAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AreaSet__Group__0__Impl"
+
+
+ // $ANTLR start "rule__AreaSet__Group__1"
+ // InternalRBAModel.g:8589:1: rule__AreaSet__Group__1 : rule__AreaSet__Group__1__Impl rule__AreaSet__Group__2 ;
+ public final void rule__AreaSet__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8593:1: ( rule__AreaSet__Group__1__Impl rule__AreaSet__Group__2 )
+ // InternalRBAModel.g:8594:2: rule__AreaSet__Group__1__Impl rule__AreaSet__Group__2
+ {
+ pushFollow(FOLLOW_7);
+ rule__AreaSet__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__AreaSet__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AreaSet__Group__1"
+
+
+ // $ANTLR start "rule__AreaSet__Group__1__Impl"
+ // InternalRBAModel.g:8601:1: rule__AreaSet__Group__1__Impl : ( 'AreaSet' ) ;
+ public final void rule__AreaSet__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8605:1: ( ( 'AreaSet' ) )
+ // InternalRBAModel.g:8606:1: ( 'AreaSet' )
+ {
+ // InternalRBAModel.g:8606:1: ( 'AreaSet' )
+ // InternalRBAModel.g:8607:2: 'AreaSet'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaSetAccess().getAreaSetKeyword_1());
+ }
+ match(input,123,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaSetAccess().getAreaSetKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AreaSet__Group__1__Impl"
+
+
+ // $ANTLR start "rule__AreaSet__Group__2"
+ // InternalRBAModel.g:8616:1: rule__AreaSet__Group__2 : rule__AreaSet__Group__2__Impl rule__AreaSet__Group__3 ;
+ public final void rule__AreaSet__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8620:1: ( rule__AreaSet__Group__2__Impl rule__AreaSet__Group__3 )
+ // InternalRBAModel.g:8621:2: rule__AreaSet__Group__2__Impl rule__AreaSet__Group__3
+ {
+ pushFollow(FOLLOW_11);
+ rule__AreaSet__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__AreaSet__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AreaSet__Group__2"
+
+
+ // $ANTLR start "rule__AreaSet__Group__2__Impl"
+ // InternalRBAModel.g:8628:1: rule__AreaSet__Group__2__Impl : ( ( rule__AreaSet__NameAssignment_2 ) ) ;
+ public final void rule__AreaSet__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8632:1: ( ( ( rule__AreaSet__NameAssignment_2 ) ) )
+ // InternalRBAModel.g:8633:1: ( ( rule__AreaSet__NameAssignment_2 ) )
+ {
+ // InternalRBAModel.g:8633:1: ( ( rule__AreaSet__NameAssignment_2 ) )
+ // InternalRBAModel.g:8634:2: ( rule__AreaSet__NameAssignment_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaSetAccess().getNameAssignment_2());
+ }
+ // InternalRBAModel.g:8635:2: ( rule__AreaSet__NameAssignment_2 )
+ // InternalRBAModel.g:8635:3: rule__AreaSet__NameAssignment_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__AreaSet__NameAssignment_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaSetAccess().getNameAssignment_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AreaSet__Group__2__Impl"
+
+
+ // $ANTLR start "rule__AreaSet__Group__3"
+ // InternalRBAModel.g:8643:1: rule__AreaSet__Group__3 : rule__AreaSet__Group__3__Impl rule__AreaSet__Group__4 ;
+ public final void rule__AreaSet__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8647:1: ( rule__AreaSet__Group__3__Impl rule__AreaSet__Group__4 )
+ // InternalRBAModel.g:8648:2: rule__AreaSet__Group__3__Impl rule__AreaSet__Group__4
+ {
+ pushFollow(FOLLOW_46);
+ rule__AreaSet__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__AreaSet__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AreaSet__Group__3"
+
+
+ // $ANTLR start "rule__AreaSet__Group__3__Impl"
+ // InternalRBAModel.g:8655:1: rule__AreaSet__Group__3__Impl : ( '{' ) ;
+ public final void rule__AreaSet__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8659:1: ( ( '{' ) )
+ // InternalRBAModel.g:8660:1: ( '{' )
+ {
+ // InternalRBAModel.g:8660:1: ( '{' )
+ // InternalRBAModel.g:8661:2: '{'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaSetAccess().getLeftCurlyBracketKeyword_3());
+ }
+ match(input,101,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaSetAccess().getLeftCurlyBracketKeyword_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AreaSet__Group__3__Impl"
+
+
+ // $ANTLR start "rule__AreaSet__Group__4"
+ // InternalRBAModel.g:8670:1: rule__AreaSet__Group__4 : rule__AreaSet__Group__4__Impl rule__AreaSet__Group__5 ;
+ public final void rule__AreaSet__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8674:1: ( rule__AreaSet__Group__4__Impl rule__AreaSet__Group__5 )
+ // InternalRBAModel.g:8675:2: rule__AreaSet__Group__4__Impl rule__AreaSet__Group__5
+ {
+ pushFollow(FOLLOW_22);
+ rule__AreaSet__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__AreaSet__Group__5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AreaSet__Group__4"
+
+
+ // $ANTLR start "rule__AreaSet__Group__4__Impl"
+ // InternalRBAModel.g:8682:1: rule__AreaSet__Group__4__Impl : ( ( rule__AreaSet__UnorderedGroup_4 ) ) ;
+ public final void rule__AreaSet__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8686:1: ( ( ( rule__AreaSet__UnorderedGroup_4 ) ) )
+ // InternalRBAModel.g:8687:1: ( ( rule__AreaSet__UnorderedGroup_4 ) )
+ {
+ // InternalRBAModel.g:8687:1: ( ( rule__AreaSet__UnorderedGroup_4 ) )
+ // InternalRBAModel.g:8688:2: ( rule__AreaSet__UnorderedGroup_4 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaSetAccess().getUnorderedGroup_4());
+ }
+ // InternalRBAModel.g:8689:2: ( rule__AreaSet__UnorderedGroup_4 )
+ // InternalRBAModel.g:8689:3: rule__AreaSet__UnorderedGroup_4
+ {
+ pushFollow(FOLLOW_2);
+ rule__AreaSet__UnorderedGroup_4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaSetAccess().getUnorderedGroup_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AreaSet__Group__4__Impl"
+
+
+ // $ANTLR start "rule__AreaSet__Group__5"
+ // InternalRBAModel.g:8697:1: rule__AreaSet__Group__5 : rule__AreaSet__Group__5__Impl ;
+ public final void rule__AreaSet__Group__5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8701:1: ( rule__AreaSet__Group__5__Impl )
+ // InternalRBAModel.g:8702:2: rule__AreaSet__Group__5__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__AreaSet__Group__5__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AreaSet__Group__5"
+
+
+ // $ANTLR start "rule__AreaSet__Group__5__Impl"
+ // InternalRBAModel.g:8708:1: rule__AreaSet__Group__5__Impl : ( '}' ) ;
+ public final void rule__AreaSet__Group__5__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8712:1: ( ( '}' ) )
+ // InternalRBAModel.g:8713:1: ( '}' )
+ {
+ // InternalRBAModel.g:8713:1: ( '}' )
+ // InternalRBAModel.g:8714:2: '}'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaSetAccess().getRightCurlyBracketKeyword_5());
+ }
+ match(input,102,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaSetAccess().getRightCurlyBracketKeyword_5());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AreaSet__Group__5__Impl"
+
+
+ // $ANTLR start "rule__AreaSet__Group_4_0__0"
+ // InternalRBAModel.g:8724:1: rule__AreaSet__Group_4_0__0 : rule__AreaSet__Group_4_0__0__Impl rule__AreaSet__Group_4_0__1 ;
+ public final void rule__AreaSet__Group_4_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8728:1: ( rule__AreaSet__Group_4_0__0__Impl rule__AreaSet__Group_4_0__1 )
+ // InternalRBAModel.g:8729:2: rule__AreaSet__Group_4_0__0__Impl rule__AreaSet__Group_4_0__1
+ {
+ pushFollow(FOLLOW_19);
+ rule__AreaSet__Group_4_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__AreaSet__Group_4_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AreaSet__Group_4_0__0"
+
+
+ // $ANTLR start "rule__AreaSet__Group_4_0__0__Impl"
+ // InternalRBAModel.g:8736:1: rule__AreaSet__Group_4_0__0__Impl : ( 'description:' ) ;
+ public final void rule__AreaSet__Group_4_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8740:1: ( ( 'description:' ) )
+ // InternalRBAModel.g:8741:1: ( 'description:' )
+ {
+ // InternalRBAModel.g:8741:1: ( 'description:' )
+ // InternalRBAModel.g:8742:2: 'description:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaSetAccess().getDescriptionKeyword_4_0_0());
+ }
+ match(input,105,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaSetAccess().getDescriptionKeyword_4_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AreaSet__Group_4_0__0__Impl"
+
+
+ // $ANTLR start "rule__AreaSet__Group_4_0__1"
+ // InternalRBAModel.g:8751:1: rule__AreaSet__Group_4_0__1 : rule__AreaSet__Group_4_0__1__Impl ;
+ public final void rule__AreaSet__Group_4_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8755:1: ( rule__AreaSet__Group_4_0__1__Impl )
+ // InternalRBAModel.g:8756:2: rule__AreaSet__Group_4_0__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__AreaSet__Group_4_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AreaSet__Group_4_0__1"
+
+
+ // $ANTLR start "rule__AreaSet__Group_4_0__1__Impl"
+ // InternalRBAModel.g:8762:1: rule__AreaSet__Group_4_0__1__Impl : ( ( rule__AreaSet__DescriptionAssignment_4_0_1 ) ) ;
+ public final void rule__AreaSet__Group_4_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8766:1: ( ( ( rule__AreaSet__DescriptionAssignment_4_0_1 ) ) )
+ // InternalRBAModel.g:8767:1: ( ( rule__AreaSet__DescriptionAssignment_4_0_1 ) )
+ {
+ // InternalRBAModel.g:8767:1: ( ( rule__AreaSet__DescriptionAssignment_4_0_1 ) )
+ // InternalRBAModel.g:8768:2: ( rule__AreaSet__DescriptionAssignment_4_0_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaSetAccess().getDescriptionAssignment_4_0_1());
+ }
+ // InternalRBAModel.g:8769:2: ( rule__AreaSet__DescriptionAssignment_4_0_1 )
+ // InternalRBAModel.g:8769:3: rule__AreaSet__DescriptionAssignment_4_0_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__AreaSet__DescriptionAssignment_4_0_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaSetAccess().getDescriptionAssignment_4_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AreaSet__Group_4_0__1__Impl"
+
+
+ // $ANTLR start "rule__AreaSet__Group_4_1__0"
+ // InternalRBAModel.g:8778:1: rule__AreaSet__Group_4_1__0 : rule__AreaSet__Group_4_1__0__Impl rule__AreaSet__Group_4_1__1 ;
+ public final void rule__AreaSet__Group_4_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8782:1: ( rule__AreaSet__Group_4_1__0__Impl rule__AreaSet__Group_4_1__1 )
+ // InternalRBAModel.g:8783:2: rule__AreaSet__Group_4_1__0__Impl rule__AreaSet__Group_4_1__1
+ {
+ pushFollow(FOLLOW_38);
+ rule__AreaSet__Group_4_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__AreaSet__Group_4_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AreaSet__Group_4_1__0"
+
+
+ // $ANTLR start "rule__AreaSet__Group_4_1__0__Impl"
+ // InternalRBAModel.g:8790:1: rule__AreaSet__Group_4_1__0__Impl : ( 'target:' ) ;
+ public final void rule__AreaSet__Group_4_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8794:1: ( ( 'target:' ) )
+ // InternalRBAModel.g:8795:1: ( 'target:' )
+ {
+ // InternalRBAModel.g:8795:1: ( 'target:' )
+ // InternalRBAModel.g:8796:2: 'target:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaSetAccess().getTargetKeyword_4_1_0());
+ }
+ match(input,124,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaSetAccess().getTargetKeyword_4_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AreaSet__Group_4_1__0__Impl"
+
+
+ // $ANTLR start "rule__AreaSet__Group_4_1__1"
+ // InternalRBAModel.g:8805:1: rule__AreaSet__Group_4_1__1 : rule__AreaSet__Group_4_1__1__Impl rule__AreaSet__Group_4_1__2 ;
+ public final void rule__AreaSet__Group_4_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8809:1: ( rule__AreaSet__Group_4_1__1__Impl rule__AreaSet__Group_4_1__2 )
+ // InternalRBAModel.g:8810:2: rule__AreaSet__Group_4_1__1__Impl rule__AreaSet__Group_4_1__2
+ {
+ pushFollow(FOLLOW_39);
+ rule__AreaSet__Group_4_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__AreaSet__Group_4_1__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AreaSet__Group_4_1__1"
+
+
+ // $ANTLR start "rule__AreaSet__Group_4_1__1__Impl"
+ // InternalRBAModel.g:8817:1: rule__AreaSet__Group_4_1__1__Impl : ( '[' ) ;
+ public final void rule__AreaSet__Group_4_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8821:1: ( ( '[' ) )
+ // InternalRBAModel.g:8822:1: ( '[' )
+ {
+ // InternalRBAModel.g:8822:1: ( '[' )
+ // InternalRBAModel.g:8823:2: '['
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaSetAccess().getLeftSquareBracketKeyword_4_1_1());
+ }
+ match(input,114,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaSetAccess().getLeftSquareBracketKeyword_4_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AreaSet__Group_4_1__1__Impl"
+
+
+ // $ANTLR start "rule__AreaSet__Group_4_1__2"
+ // InternalRBAModel.g:8832:1: rule__AreaSet__Group_4_1__2 : rule__AreaSet__Group_4_1__2__Impl rule__AreaSet__Group_4_1__3 ;
+ public final void rule__AreaSet__Group_4_1__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8836:1: ( rule__AreaSet__Group_4_1__2__Impl rule__AreaSet__Group_4_1__3 )
+ // InternalRBAModel.g:8837:2: rule__AreaSet__Group_4_1__2__Impl rule__AreaSet__Group_4_1__3
+ {
+ pushFollow(FOLLOW_39);
+ rule__AreaSet__Group_4_1__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__AreaSet__Group_4_1__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AreaSet__Group_4_1__2"
+
+
+ // $ANTLR start "rule__AreaSet__Group_4_1__2__Impl"
+ // InternalRBAModel.g:8844:1: rule__AreaSet__Group_4_1__2__Impl : ( ( rule__AreaSet__Group_4_1_2__0 )? ) ;
+ public final void rule__AreaSet__Group_4_1__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8848:1: ( ( ( rule__AreaSet__Group_4_1_2__0 )? ) )
+ // InternalRBAModel.g:8849:1: ( ( rule__AreaSet__Group_4_1_2__0 )? )
+ {
+ // InternalRBAModel.g:8849:1: ( ( rule__AreaSet__Group_4_1_2__0 )? )
+ // InternalRBAModel.g:8850:2: ( rule__AreaSet__Group_4_1_2__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaSetAccess().getGroup_4_1_2());
+ }
+ // InternalRBAModel.g:8851:2: ( rule__AreaSet__Group_4_1_2__0 )?
+ int alt51=2;
+ int LA51_0 = input.LA(1);
+
+ if ( (LA51_0==RULE_ID) ) {
+ alt51=1;
+ }
+ switch (alt51) {
+ case 1 :
+ // InternalRBAModel.g:8851:3: rule__AreaSet__Group_4_1_2__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__AreaSet__Group_4_1_2__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaSetAccess().getGroup_4_1_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AreaSet__Group_4_1__2__Impl"
+
+
+ // $ANTLR start "rule__AreaSet__Group_4_1__3"
+ // InternalRBAModel.g:8859:1: rule__AreaSet__Group_4_1__3 : rule__AreaSet__Group_4_1__3__Impl ;
+ public final void rule__AreaSet__Group_4_1__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8863:1: ( rule__AreaSet__Group_4_1__3__Impl )
+ // InternalRBAModel.g:8864:2: rule__AreaSet__Group_4_1__3__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__AreaSet__Group_4_1__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AreaSet__Group_4_1__3"
+
+
+ // $ANTLR start "rule__AreaSet__Group_4_1__3__Impl"
+ // InternalRBAModel.g:8870:1: rule__AreaSet__Group_4_1__3__Impl : ( ']' ) ;
+ public final void rule__AreaSet__Group_4_1__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8874:1: ( ( ']' ) )
+ // InternalRBAModel.g:8875:1: ( ']' )
+ {
+ // InternalRBAModel.g:8875:1: ( ']' )
+ // InternalRBAModel.g:8876:2: ']'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaSetAccess().getRightSquareBracketKeyword_4_1_3());
+ }
+ match(input,115,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaSetAccess().getRightSquareBracketKeyword_4_1_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AreaSet__Group_4_1__3__Impl"
+
+
+ // $ANTLR start "rule__AreaSet__Group_4_1_2__0"
+ // InternalRBAModel.g:8886:1: rule__AreaSet__Group_4_1_2__0 : rule__AreaSet__Group_4_1_2__0__Impl rule__AreaSet__Group_4_1_2__1 ;
+ public final void rule__AreaSet__Group_4_1_2__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8890:1: ( rule__AreaSet__Group_4_1_2__0__Impl rule__AreaSet__Group_4_1_2__1 )
+ // InternalRBAModel.g:8891:2: rule__AreaSet__Group_4_1_2__0__Impl rule__AreaSet__Group_4_1_2__1
+ {
+ pushFollow(FOLLOW_17);
+ rule__AreaSet__Group_4_1_2__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__AreaSet__Group_4_1_2__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AreaSet__Group_4_1_2__0"
+
+
+ // $ANTLR start "rule__AreaSet__Group_4_1_2__0__Impl"
+ // InternalRBAModel.g:8898:1: rule__AreaSet__Group_4_1_2__0__Impl : ( ( rule__AreaSet__TargetAssignment_4_1_2_0 ) ) ;
+ public final void rule__AreaSet__Group_4_1_2__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8902:1: ( ( ( rule__AreaSet__TargetAssignment_4_1_2_0 ) ) )
+ // InternalRBAModel.g:8903:1: ( ( rule__AreaSet__TargetAssignment_4_1_2_0 ) )
+ {
+ // InternalRBAModel.g:8903:1: ( ( rule__AreaSet__TargetAssignment_4_1_2_0 ) )
+ // InternalRBAModel.g:8904:2: ( rule__AreaSet__TargetAssignment_4_1_2_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaSetAccess().getTargetAssignment_4_1_2_0());
+ }
+ // InternalRBAModel.g:8905:2: ( rule__AreaSet__TargetAssignment_4_1_2_0 )
+ // InternalRBAModel.g:8905:3: rule__AreaSet__TargetAssignment_4_1_2_0
+ {
+ pushFollow(FOLLOW_2);
+ rule__AreaSet__TargetAssignment_4_1_2_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaSetAccess().getTargetAssignment_4_1_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AreaSet__Group_4_1_2__0__Impl"
+
+
+ // $ANTLR start "rule__AreaSet__Group_4_1_2__1"
+ // InternalRBAModel.g:8913:1: rule__AreaSet__Group_4_1_2__1 : rule__AreaSet__Group_4_1_2__1__Impl ;
+ public final void rule__AreaSet__Group_4_1_2__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8917:1: ( rule__AreaSet__Group_4_1_2__1__Impl )
+ // InternalRBAModel.g:8918:2: rule__AreaSet__Group_4_1_2__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__AreaSet__Group_4_1_2__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AreaSet__Group_4_1_2__1"
+
+
+ // $ANTLR start "rule__AreaSet__Group_4_1_2__1__Impl"
+ // InternalRBAModel.g:8924:1: rule__AreaSet__Group_4_1_2__1__Impl : ( ( rule__AreaSet__Group_4_1_2_1__0 )* ) ;
+ public final void rule__AreaSet__Group_4_1_2__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8928:1: ( ( ( rule__AreaSet__Group_4_1_2_1__0 )* ) )
+ // InternalRBAModel.g:8929:1: ( ( rule__AreaSet__Group_4_1_2_1__0 )* )
+ {
+ // InternalRBAModel.g:8929:1: ( ( rule__AreaSet__Group_4_1_2_1__0 )* )
+ // InternalRBAModel.g:8930:2: ( rule__AreaSet__Group_4_1_2_1__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaSetAccess().getGroup_4_1_2_1());
+ }
+ // InternalRBAModel.g:8931:2: ( rule__AreaSet__Group_4_1_2_1__0 )*
+ loop52:
+ do {
+ int alt52=2;
+ int LA52_0 = input.LA(1);
+
+ if ( (LA52_0==103) ) {
+ alt52=1;
+ }
+
+
+ switch (alt52) {
+ case 1 :
+ // InternalRBAModel.g:8931:3: rule__AreaSet__Group_4_1_2_1__0
+ {
+ pushFollow(FOLLOW_18);
+ rule__AreaSet__Group_4_1_2_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop52;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaSetAccess().getGroup_4_1_2_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AreaSet__Group_4_1_2__1__Impl"
+
+
+ // $ANTLR start "rule__AreaSet__Group_4_1_2_1__0"
+ // InternalRBAModel.g:8940:1: rule__AreaSet__Group_4_1_2_1__0 : rule__AreaSet__Group_4_1_2_1__0__Impl rule__AreaSet__Group_4_1_2_1__1 ;
+ public final void rule__AreaSet__Group_4_1_2_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8944:1: ( rule__AreaSet__Group_4_1_2_1__0__Impl rule__AreaSet__Group_4_1_2_1__1 )
+ // InternalRBAModel.g:8945:2: rule__AreaSet__Group_4_1_2_1__0__Impl rule__AreaSet__Group_4_1_2_1__1
+ {
+ pushFollow(FOLLOW_7);
+ rule__AreaSet__Group_4_1_2_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__AreaSet__Group_4_1_2_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AreaSet__Group_4_1_2_1__0"
+
+
+ // $ANTLR start "rule__AreaSet__Group_4_1_2_1__0__Impl"
+ // InternalRBAModel.g:8952:1: rule__AreaSet__Group_4_1_2_1__0__Impl : ( ',' ) ;
+ public final void rule__AreaSet__Group_4_1_2_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8956:1: ( ( ',' ) )
+ // InternalRBAModel.g:8957:1: ( ',' )
+ {
+ // InternalRBAModel.g:8957:1: ( ',' )
+ // InternalRBAModel.g:8958:2: ','
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaSetAccess().getCommaKeyword_4_1_2_1_0());
+ }
+ match(input,103,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaSetAccess().getCommaKeyword_4_1_2_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AreaSet__Group_4_1_2_1__0__Impl"
+
+
+ // $ANTLR start "rule__AreaSet__Group_4_1_2_1__1"
+ // InternalRBAModel.g:8967:1: rule__AreaSet__Group_4_1_2_1__1 : rule__AreaSet__Group_4_1_2_1__1__Impl ;
+ public final void rule__AreaSet__Group_4_1_2_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8971:1: ( rule__AreaSet__Group_4_1_2_1__1__Impl )
+ // InternalRBAModel.g:8972:2: rule__AreaSet__Group_4_1_2_1__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__AreaSet__Group_4_1_2_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AreaSet__Group_4_1_2_1__1"
+
+
+ // $ANTLR start "rule__AreaSet__Group_4_1_2_1__1__Impl"
+ // InternalRBAModel.g:8978:1: rule__AreaSet__Group_4_1_2_1__1__Impl : ( ( rule__AreaSet__TargetAssignment_4_1_2_1_1 ) ) ;
+ public final void rule__AreaSet__Group_4_1_2_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8982:1: ( ( ( rule__AreaSet__TargetAssignment_4_1_2_1_1 ) ) )
+ // InternalRBAModel.g:8983:1: ( ( rule__AreaSet__TargetAssignment_4_1_2_1_1 ) )
+ {
+ // InternalRBAModel.g:8983:1: ( ( rule__AreaSet__TargetAssignment_4_1_2_1_1 ) )
+ // InternalRBAModel.g:8984:2: ( rule__AreaSet__TargetAssignment_4_1_2_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaSetAccess().getTargetAssignment_4_1_2_1_1());
+ }
+ // InternalRBAModel.g:8985:2: ( rule__AreaSet__TargetAssignment_4_1_2_1_1 )
+ // InternalRBAModel.g:8985:3: rule__AreaSet__TargetAssignment_4_1_2_1_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__AreaSet__TargetAssignment_4_1_2_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaSetAccess().getTargetAssignment_4_1_2_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AreaSet__Group_4_1_2_1__1__Impl"
+
+
+ // $ANTLR start "rule__ZoneSet__Group__0"
+ // InternalRBAModel.g:8994:1: rule__ZoneSet__Group__0 : rule__ZoneSet__Group__0__Impl rule__ZoneSet__Group__1 ;
+ public final void rule__ZoneSet__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:8998:1: ( rule__ZoneSet__Group__0__Impl rule__ZoneSet__Group__1 )
+ // InternalRBAModel.g:8999:2: rule__ZoneSet__Group__0__Impl rule__ZoneSet__Group__1
+ {
+ pushFollow(FOLLOW_47);
+ rule__ZoneSet__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ZoneSet__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ZoneSet__Group__0"
+
+
+ // $ANTLR start "rule__ZoneSet__Group__0__Impl"
+ // InternalRBAModel.g:9006:1: rule__ZoneSet__Group__0__Impl : ( () ) ;
+ public final void rule__ZoneSet__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9010:1: ( ( () ) )
+ // InternalRBAModel.g:9011:1: ( () )
+ {
+ // InternalRBAModel.g:9011:1: ( () )
+ // InternalRBAModel.g:9012:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneSetAccess().getZoneSetAction_0());
+ }
+ // InternalRBAModel.g:9013:2: ()
+ // InternalRBAModel.g:9013:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneSetAccess().getZoneSetAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ZoneSet__Group__0__Impl"
+
+
+ // $ANTLR start "rule__ZoneSet__Group__1"
+ // InternalRBAModel.g:9021:1: rule__ZoneSet__Group__1 : rule__ZoneSet__Group__1__Impl rule__ZoneSet__Group__2 ;
+ public final void rule__ZoneSet__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9025:1: ( rule__ZoneSet__Group__1__Impl rule__ZoneSet__Group__2 )
+ // InternalRBAModel.g:9026:2: rule__ZoneSet__Group__1__Impl rule__ZoneSet__Group__2
+ {
+ pushFollow(FOLLOW_7);
+ rule__ZoneSet__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ZoneSet__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ZoneSet__Group__1"
+
+
+ // $ANTLR start "rule__ZoneSet__Group__1__Impl"
+ // InternalRBAModel.g:9033:1: rule__ZoneSet__Group__1__Impl : ( 'ZoneSet' ) ;
+ public final void rule__ZoneSet__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9037:1: ( ( 'ZoneSet' ) )
+ // InternalRBAModel.g:9038:1: ( 'ZoneSet' )
+ {
+ // InternalRBAModel.g:9038:1: ( 'ZoneSet' )
+ // InternalRBAModel.g:9039:2: 'ZoneSet'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneSetAccess().getZoneSetKeyword_1());
+ }
+ match(input,125,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneSetAccess().getZoneSetKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ZoneSet__Group__1__Impl"
+
+
+ // $ANTLR start "rule__ZoneSet__Group__2"
+ // InternalRBAModel.g:9048:1: rule__ZoneSet__Group__2 : rule__ZoneSet__Group__2__Impl rule__ZoneSet__Group__3 ;
+ public final void rule__ZoneSet__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9052:1: ( rule__ZoneSet__Group__2__Impl rule__ZoneSet__Group__3 )
+ // InternalRBAModel.g:9053:2: rule__ZoneSet__Group__2__Impl rule__ZoneSet__Group__3
+ {
+ pushFollow(FOLLOW_11);
+ rule__ZoneSet__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ZoneSet__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ZoneSet__Group__2"
+
+
+ // $ANTLR start "rule__ZoneSet__Group__2__Impl"
+ // InternalRBAModel.g:9060:1: rule__ZoneSet__Group__2__Impl : ( ( rule__ZoneSet__NameAssignment_2 ) ) ;
+ public final void rule__ZoneSet__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9064:1: ( ( ( rule__ZoneSet__NameAssignment_2 ) ) )
+ // InternalRBAModel.g:9065:1: ( ( rule__ZoneSet__NameAssignment_2 ) )
+ {
+ // InternalRBAModel.g:9065:1: ( ( rule__ZoneSet__NameAssignment_2 ) )
+ // InternalRBAModel.g:9066:2: ( rule__ZoneSet__NameAssignment_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneSetAccess().getNameAssignment_2());
+ }
+ // InternalRBAModel.g:9067:2: ( rule__ZoneSet__NameAssignment_2 )
+ // InternalRBAModel.g:9067:3: rule__ZoneSet__NameAssignment_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__ZoneSet__NameAssignment_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneSetAccess().getNameAssignment_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ZoneSet__Group__2__Impl"
+
+
+ // $ANTLR start "rule__ZoneSet__Group__3"
+ // InternalRBAModel.g:9075:1: rule__ZoneSet__Group__3 : rule__ZoneSet__Group__3__Impl rule__ZoneSet__Group__4 ;
+ public final void rule__ZoneSet__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9079:1: ( rule__ZoneSet__Group__3__Impl rule__ZoneSet__Group__4 )
+ // InternalRBAModel.g:9080:2: rule__ZoneSet__Group__3__Impl rule__ZoneSet__Group__4
+ {
+ pushFollow(FOLLOW_46);
+ rule__ZoneSet__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ZoneSet__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ZoneSet__Group__3"
+
+
+ // $ANTLR start "rule__ZoneSet__Group__3__Impl"
+ // InternalRBAModel.g:9087:1: rule__ZoneSet__Group__3__Impl : ( '{' ) ;
+ public final void rule__ZoneSet__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9091:1: ( ( '{' ) )
+ // InternalRBAModel.g:9092:1: ( '{' )
+ {
+ // InternalRBAModel.g:9092:1: ( '{' )
+ // InternalRBAModel.g:9093:2: '{'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneSetAccess().getLeftCurlyBracketKeyword_3());
+ }
+ match(input,101,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneSetAccess().getLeftCurlyBracketKeyword_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ZoneSet__Group__3__Impl"
+
+
+ // $ANTLR start "rule__ZoneSet__Group__4"
+ // InternalRBAModel.g:9102:1: rule__ZoneSet__Group__4 : rule__ZoneSet__Group__4__Impl rule__ZoneSet__Group__5 ;
+ public final void rule__ZoneSet__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9106:1: ( rule__ZoneSet__Group__4__Impl rule__ZoneSet__Group__5 )
+ // InternalRBAModel.g:9107:2: rule__ZoneSet__Group__4__Impl rule__ZoneSet__Group__5
+ {
+ pushFollow(FOLLOW_22);
+ rule__ZoneSet__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ZoneSet__Group__5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ZoneSet__Group__4"
+
+
+ // $ANTLR start "rule__ZoneSet__Group__4__Impl"
+ // InternalRBAModel.g:9114:1: rule__ZoneSet__Group__4__Impl : ( ( rule__ZoneSet__UnorderedGroup_4 ) ) ;
+ public final void rule__ZoneSet__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9118:1: ( ( ( rule__ZoneSet__UnorderedGroup_4 ) ) )
+ // InternalRBAModel.g:9119:1: ( ( rule__ZoneSet__UnorderedGroup_4 ) )
+ {
+ // InternalRBAModel.g:9119:1: ( ( rule__ZoneSet__UnorderedGroup_4 ) )
+ // InternalRBAModel.g:9120:2: ( rule__ZoneSet__UnorderedGroup_4 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneSetAccess().getUnorderedGroup_4());
+ }
+ // InternalRBAModel.g:9121:2: ( rule__ZoneSet__UnorderedGroup_4 )
+ // InternalRBAModel.g:9121:3: rule__ZoneSet__UnorderedGroup_4
+ {
+ pushFollow(FOLLOW_2);
+ rule__ZoneSet__UnorderedGroup_4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneSetAccess().getUnorderedGroup_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ZoneSet__Group__4__Impl"
+
+
+ // $ANTLR start "rule__ZoneSet__Group__5"
+ // InternalRBAModel.g:9129:1: rule__ZoneSet__Group__5 : rule__ZoneSet__Group__5__Impl ;
+ public final void rule__ZoneSet__Group__5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9133:1: ( rule__ZoneSet__Group__5__Impl )
+ // InternalRBAModel.g:9134:2: rule__ZoneSet__Group__5__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__ZoneSet__Group__5__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ZoneSet__Group__5"
+
+
+ // $ANTLR start "rule__ZoneSet__Group__5__Impl"
+ // InternalRBAModel.g:9140:1: rule__ZoneSet__Group__5__Impl : ( '}' ) ;
+ public final void rule__ZoneSet__Group__5__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9144:1: ( ( '}' ) )
+ // InternalRBAModel.g:9145:1: ( '}' )
+ {
+ // InternalRBAModel.g:9145:1: ( '}' )
+ // InternalRBAModel.g:9146:2: '}'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneSetAccess().getRightCurlyBracketKeyword_5());
+ }
+ match(input,102,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneSetAccess().getRightCurlyBracketKeyword_5());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ZoneSet__Group__5__Impl"
+
+
+ // $ANTLR start "rule__ZoneSet__Group_4_0__0"
+ // InternalRBAModel.g:9156:1: rule__ZoneSet__Group_4_0__0 : rule__ZoneSet__Group_4_0__0__Impl rule__ZoneSet__Group_4_0__1 ;
+ public final void rule__ZoneSet__Group_4_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9160:1: ( rule__ZoneSet__Group_4_0__0__Impl rule__ZoneSet__Group_4_0__1 )
+ // InternalRBAModel.g:9161:2: rule__ZoneSet__Group_4_0__0__Impl rule__ZoneSet__Group_4_0__1
+ {
+ pushFollow(FOLLOW_19);
+ rule__ZoneSet__Group_4_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ZoneSet__Group_4_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ZoneSet__Group_4_0__0"
+
+
+ // $ANTLR start "rule__ZoneSet__Group_4_0__0__Impl"
+ // InternalRBAModel.g:9168:1: rule__ZoneSet__Group_4_0__0__Impl : ( 'description:' ) ;
+ public final void rule__ZoneSet__Group_4_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9172:1: ( ( 'description:' ) )
+ // InternalRBAModel.g:9173:1: ( 'description:' )
+ {
+ // InternalRBAModel.g:9173:1: ( 'description:' )
+ // InternalRBAModel.g:9174:2: 'description:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneSetAccess().getDescriptionKeyword_4_0_0());
+ }
+ match(input,105,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneSetAccess().getDescriptionKeyword_4_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ZoneSet__Group_4_0__0__Impl"
+
+
+ // $ANTLR start "rule__ZoneSet__Group_4_0__1"
+ // InternalRBAModel.g:9183:1: rule__ZoneSet__Group_4_0__1 : rule__ZoneSet__Group_4_0__1__Impl ;
+ public final void rule__ZoneSet__Group_4_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9187:1: ( rule__ZoneSet__Group_4_0__1__Impl )
+ // InternalRBAModel.g:9188:2: rule__ZoneSet__Group_4_0__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__ZoneSet__Group_4_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ZoneSet__Group_4_0__1"
+
+
+ // $ANTLR start "rule__ZoneSet__Group_4_0__1__Impl"
+ // InternalRBAModel.g:9194:1: rule__ZoneSet__Group_4_0__1__Impl : ( ( rule__ZoneSet__DescriptionAssignment_4_0_1 ) ) ;
+ public final void rule__ZoneSet__Group_4_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9198:1: ( ( ( rule__ZoneSet__DescriptionAssignment_4_0_1 ) ) )
+ // InternalRBAModel.g:9199:1: ( ( rule__ZoneSet__DescriptionAssignment_4_0_1 ) )
+ {
+ // InternalRBAModel.g:9199:1: ( ( rule__ZoneSet__DescriptionAssignment_4_0_1 ) )
+ // InternalRBAModel.g:9200:2: ( rule__ZoneSet__DescriptionAssignment_4_0_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneSetAccess().getDescriptionAssignment_4_0_1());
+ }
+ // InternalRBAModel.g:9201:2: ( rule__ZoneSet__DescriptionAssignment_4_0_1 )
+ // InternalRBAModel.g:9201:3: rule__ZoneSet__DescriptionAssignment_4_0_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__ZoneSet__DescriptionAssignment_4_0_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneSetAccess().getDescriptionAssignment_4_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ZoneSet__Group_4_0__1__Impl"
+
+
+ // $ANTLR start "rule__ZoneSet__Group_4_1__0"
+ // InternalRBAModel.g:9210:1: rule__ZoneSet__Group_4_1__0 : rule__ZoneSet__Group_4_1__0__Impl rule__ZoneSet__Group_4_1__1 ;
+ public final void rule__ZoneSet__Group_4_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9214:1: ( rule__ZoneSet__Group_4_1__0__Impl rule__ZoneSet__Group_4_1__1 )
+ // InternalRBAModel.g:9215:2: rule__ZoneSet__Group_4_1__0__Impl rule__ZoneSet__Group_4_1__1
+ {
+ pushFollow(FOLLOW_38);
+ rule__ZoneSet__Group_4_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ZoneSet__Group_4_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ZoneSet__Group_4_1__0"
+
+
+ // $ANTLR start "rule__ZoneSet__Group_4_1__0__Impl"
+ // InternalRBAModel.g:9222:1: rule__ZoneSet__Group_4_1__0__Impl : ( 'target:' ) ;
+ public final void rule__ZoneSet__Group_4_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9226:1: ( ( 'target:' ) )
+ // InternalRBAModel.g:9227:1: ( 'target:' )
+ {
+ // InternalRBAModel.g:9227:1: ( 'target:' )
+ // InternalRBAModel.g:9228:2: 'target:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneSetAccess().getTargetKeyword_4_1_0());
+ }
+ match(input,124,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneSetAccess().getTargetKeyword_4_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ZoneSet__Group_4_1__0__Impl"
+
+
+ // $ANTLR start "rule__ZoneSet__Group_4_1__1"
+ // InternalRBAModel.g:9237:1: rule__ZoneSet__Group_4_1__1 : rule__ZoneSet__Group_4_1__1__Impl rule__ZoneSet__Group_4_1__2 ;
+ public final void rule__ZoneSet__Group_4_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9241:1: ( rule__ZoneSet__Group_4_1__1__Impl rule__ZoneSet__Group_4_1__2 )
+ // InternalRBAModel.g:9242:2: rule__ZoneSet__Group_4_1__1__Impl rule__ZoneSet__Group_4_1__2
+ {
+ pushFollow(FOLLOW_39);
+ rule__ZoneSet__Group_4_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ZoneSet__Group_4_1__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ZoneSet__Group_4_1__1"
+
+
+ // $ANTLR start "rule__ZoneSet__Group_4_1__1__Impl"
+ // InternalRBAModel.g:9249:1: rule__ZoneSet__Group_4_1__1__Impl : ( '[' ) ;
+ public final void rule__ZoneSet__Group_4_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9253:1: ( ( '[' ) )
+ // InternalRBAModel.g:9254:1: ( '[' )
+ {
+ // InternalRBAModel.g:9254:1: ( '[' )
+ // InternalRBAModel.g:9255:2: '['
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneSetAccess().getLeftSquareBracketKeyword_4_1_1());
+ }
+ match(input,114,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneSetAccess().getLeftSquareBracketKeyword_4_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ZoneSet__Group_4_1__1__Impl"
+
+
+ // $ANTLR start "rule__ZoneSet__Group_4_1__2"
+ // InternalRBAModel.g:9264:1: rule__ZoneSet__Group_4_1__2 : rule__ZoneSet__Group_4_1__2__Impl rule__ZoneSet__Group_4_1__3 ;
+ public final void rule__ZoneSet__Group_4_1__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9268:1: ( rule__ZoneSet__Group_4_1__2__Impl rule__ZoneSet__Group_4_1__3 )
+ // InternalRBAModel.g:9269:2: rule__ZoneSet__Group_4_1__2__Impl rule__ZoneSet__Group_4_1__3
+ {
+ pushFollow(FOLLOW_39);
+ rule__ZoneSet__Group_4_1__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ZoneSet__Group_4_1__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ZoneSet__Group_4_1__2"
+
+
+ // $ANTLR start "rule__ZoneSet__Group_4_1__2__Impl"
+ // InternalRBAModel.g:9276:1: rule__ZoneSet__Group_4_1__2__Impl : ( ( rule__ZoneSet__Group_4_1_2__0 )? ) ;
+ public final void rule__ZoneSet__Group_4_1__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9280:1: ( ( ( rule__ZoneSet__Group_4_1_2__0 )? ) )
+ // InternalRBAModel.g:9281:1: ( ( rule__ZoneSet__Group_4_1_2__0 )? )
+ {
+ // InternalRBAModel.g:9281:1: ( ( rule__ZoneSet__Group_4_1_2__0 )? )
+ // InternalRBAModel.g:9282:2: ( rule__ZoneSet__Group_4_1_2__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneSetAccess().getGroup_4_1_2());
+ }
+ // InternalRBAModel.g:9283:2: ( rule__ZoneSet__Group_4_1_2__0 )?
+ int alt53=2;
+ int LA53_0 = input.LA(1);
+
+ if ( (LA53_0==RULE_ID) ) {
+ alt53=1;
+ }
+ switch (alt53) {
+ case 1 :
+ // InternalRBAModel.g:9283:3: rule__ZoneSet__Group_4_1_2__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ZoneSet__Group_4_1_2__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneSetAccess().getGroup_4_1_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ZoneSet__Group_4_1__2__Impl"
+
+
+ // $ANTLR start "rule__ZoneSet__Group_4_1__3"
+ // InternalRBAModel.g:9291:1: rule__ZoneSet__Group_4_1__3 : rule__ZoneSet__Group_4_1__3__Impl ;
+ public final void rule__ZoneSet__Group_4_1__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9295:1: ( rule__ZoneSet__Group_4_1__3__Impl )
+ // InternalRBAModel.g:9296:2: rule__ZoneSet__Group_4_1__3__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__ZoneSet__Group_4_1__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ZoneSet__Group_4_1__3"
+
+
+ // $ANTLR start "rule__ZoneSet__Group_4_1__3__Impl"
+ // InternalRBAModel.g:9302:1: rule__ZoneSet__Group_4_1__3__Impl : ( ']' ) ;
+ public final void rule__ZoneSet__Group_4_1__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9306:1: ( ( ']' ) )
+ // InternalRBAModel.g:9307:1: ( ']' )
+ {
+ // InternalRBAModel.g:9307:1: ( ']' )
+ // InternalRBAModel.g:9308:2: ']'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneSetAccess().getRightSquareBracketKeyword_4_1_3());
+ }
+ match(input,115,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneSetAccess().getRightSquareBracketKeyword_4_1_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ZoneSet__Group_4_1__3__Impl"
+
+
+ // $ANTLR start "rule__ZoneSet__Group_4_1_2__0"
+ // InternalRBAModel.g:9318:1: rule__ZoneSet__Group_4_1_2__0 : rule__ZoneSet__Group_4_1_2__0__Impl rule__ZoneSet__Group_4_1_2__1 ;
+ public final void rule__ZoneSet__Group_4_1_2__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9322:1: ( rule__ZoneSet__Group_4_1_2__0__Impl rule__ZoneSet__Group_4_1_2__1 )
+ // InternalRBAModel.g:9323:2: rule__ZoneSet__Group_4_1_2__0__Impl rule__ZoneSet__Group_4_1_2__1
+ {
+ pushFollow(FOLLOW_17);
+ rule__ZoneSet__Group_4_1_2__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ZoneSet__Group_4_1_2__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ZoneSet__Group_4_1_2__0"
+
+
+ // $ANTLR start "rule__ZoneSet__Group_4_1_2__0__Impl"
+ // InternalRBAModel.g:9330:1: rule__ZoneSet__Group_4_1_2__0__Impl : ( ( rule__ZoneSet__TargetAssignment_4_1_2_0 ) ) ;
+ public final void rule__ZoneSet__Group_4_1_2__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9334:1: ( ( ( rule__ZoneSet__TargetAssignment_4_1_2_0 ) ) )
+ // InternalRBAModel.g:9335:1: ( ( rule__ZoneSet__TargetAssignment_4_1_2_0 ) )
+ {
+ // InternalRBAModel.g:9335:1: ( ( rule__ZoneSet__TargetAssignment_4_1_2_0 ) )
+ // InternalRBAModel.g:9336:2: ( rule__ZoneSet__TargetAssignment_4_1_2_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneSetAccess().getTargetAssignment_4_1_2_0());
+ }
+ // InternalRBAModel.g:9337:2: ( rule__ZoneSet__TargetAssignment_4_1_2_0 )
+ // InternalRBAModel.g:9337:3: rule__ZoneSet__TargetAssignment_4_1_2_0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ZoneSet__TargetAssignment_4_1_2_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneSetAccess().getTargetAssignment_4_1_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ZoneSet__Group_4_1_2__0__Impl"
+
+
+ // $ANTLR start "rule__ZoneSet__Group_4_1_2__1"
+ // InternalRBAModel.g:9345:1: rule__ZoneSet__Group_4_1_2__1 : rule__ZoneSet__Group_4_1_2__1__Impl ;
+ public final void rule__ZoneSet__Group_4_1_2__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9349:1: ( rule__ZoneSet__Group_4_1_2__1__Impl )
+ // InternalRBAModel.g:9350:2: rule__ZoneSet__Group_4_1_2__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__ZoneSet__Group_4_1_2__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ZoneSet__Group_4_1_2__1"
+
+
+ // $ANTLR start "rule__ZoneSet__Group_4_1_2__1__Impl"
+ // InternalRBAModel.g:9356:1: rule__ZoneSet__Group_4_1_2__1__Impl : ( ( rule__ZoneSet__Group_4_1_2_1__0 )* ) ;
+ public final void rule__ZoneSet__Group_4_1_2__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9360:1: ( ( ( rule__ZoneSet__Group_4_1_2_1__0 )* ) )
+ // InternalRBAModel.g:9361:1: ( ( rule__ZoneSet__Group_4_1_2_1__0 )* )
+ {
+ // InternalRBAModel.g:9361:1: ( ( rule__ZoneSet__Group_4_1_2_1__0 )* )
+ // InternalRBAModel.g:9362:2: ( rule__ZoneSet__Group_4_1_2_1__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneSetAccess().getGroup_4_1_2_1());
+ }
+ // InternalRBAModel.g:9363:2: ( rule__ZoneSet__Group_4_1_2_1__0 )*
+ loop54:
+ do {
+ int alt54=2;
+ int LA54_0 = input.LA(1);
+
+ if ( (LA54_0==103) ) {
+ alt54=1;
+ }
+
+
+ switch (alt54) {
+ case 1 :
+ // InternalRBAModel.g:9363:3: rule__ZoneSet__Group_4_1_2_1__0
+ {
+ pushFollow(FOLLOW_18);
+ rule__ZoneSet__Group_4_1_2_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop54;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneSetAccess().getGroup_4_1_2_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ZoneSet__Group_4_1_2__1__Impl"
+
+
+ // $ANTLR start "rule__ZoneSet__Group_4_1_2_1__0"
+ // InternalRBAModel.g:9372:1: rule__ZoneSet__Group_4_1_2_1__0 : rule__ZoneSet__Group_4_1_2_1__0__Impl rule__ZoneSet__Group_4_1_2_1__1 ;
+ public final void rule__ZoneSet__Group_4_1_2_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9376:1: ( rule__ZoneSet__Group_4_1_2_1__0__Impl rule__ZoneSet__Group_4_1_2_1__1 )
+ // InternalRBAModel.g:9377:2: rule__ZoneSet__Group_4_1_2_1__0__Impl rule__ZoneSet__Group_4_1_2_1__1
+ {
+ pushFollow(FOLLOW_7);
+ rule__ZoneSet__Group_4_1_2_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ZoneSet__Group_4_1_2_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ZoneSet__Group_4_1_2_1__0"
+
+
+ // $ANTLR start "rule__ZoneSet__Group_4_1_2_1__0__Impl"
+ // InternalRBAModel.g:9384:1: rule__ZoneSet__Group_4_1_2_1__0__Impl : ( ',' ) ;
+ public final void rule__ZoneSet__Group_4_1_2_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9388:1: ( ( ',' ) )
+ // InternalRBAModel.g:9389:1: ( ',' )
+ {
+ // InternalRBAModel.g:9389:1: ( ',' )
+ // InternalRBAModel.g:9390:2: ','
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneSetAccess().getCommaKeyword_4_1_2_1_0());
+ }
+ match(input,103,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneSetAccess().getCommaKeyword_4_1_2_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ZoneSet__Group_4_1_2_1__0__Impl"
+
+
+ // $ANTLR start "rule__ZoneSet__Group_4_1_2_1__1"
+ // InternalRBAModel.g:9399:1: rule__ZoneSet__Group_4_1_2_1__1 : rule__ZoneSet__Group_4_1_2_1__1__Impl ;
+ public final void rule__ZoneSet__Group_4_1_2_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9403:1: ( rule__ZoneSet__Group_4_1_2_1__1__Impl )
+ // InternalRBAModel.g:9404:2: rule__ZoneSet__Group_4_1_2_1__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__ZoneSet__Group_4_1_2_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ZoneSet__Group_4_1_2_1__1"
+
+
+ // $ANTLR start "rule__ZoneSet__Group_4_1_2_1__1__Impl"
+ // InternalRBAModel.g:9410:1: rule__ZoneSet__Group_4_1_2_1__1__Impl : ( ( rule__ZoneSet__TargetAssignment_4_1_2_1_1 ) ) ;
+ public final void rule__ZoneSet__Group_4_1_2_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9414:1: ( ( ( rule__ZoneSet__TargetAssignment_4_1_2_1_1 ) ) )
+ // InternalRBAModel.g:9415:1: ( ( rule__ZoneSet__TargetAssignment_4_1_2_1_1 ) )
+ {
+ // InternalRBAModel.g:9415:1: ( ( rule__ZoneSet__TargetAssignment_4_1_2_1_1 ) )
+ // InternalRBAModel.g:9416:2: ( rule__ZoneSet__TargetAssignment_4_1_2_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneSetAccess().getTargetAssignment_4_1_2_1_1());
+ }
+ // InternalRBAModel.g:9417:2: ( rule__ZoneSet__TargetAssignment_4_1_2_1_1 )
+ // InternalRBAModel.g:9417:3: rule__ZoneSet__TargetAssignment_4_1_2_1_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__ZoneSet__TargetAssignment_4_1_2_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneSetAccess().getTargetAssignment_4_1_2_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ZoneSet__Group_4_1_2_1__1__Impl"
+
+
+ // $ANTLR start "rule__CompositeArea__Group__0"
+ // InternalRBAModel.g:9426:1: rule__CompositeArea__Group__0 : rule__CompositeArea__Group__0__Impl rule__CompositeArea__Group__1 ;
+ public final void rule__CompositeArea__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9430:1: ( rule__CompositeArea__Group__0__Impl rule__CompositeArea__Group__1 )
+ // InternalRBAModel.g:9431:2: rule__CompositeArea__Group__0__Impl rule__CompositeArea__Group__1
+ {
+ pushFollow(FOLLOW_31);
+ rule__CompositeArea__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__CompositeArea__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompositeArea__Group__0"
+
+
+ // $ANTLR start "rule__CompositeArea__Group__0__Impl"
+ // InternalRBAModel.g:9438:1: rule__CompositeArea__Group__0__Impl : ( () ) ;
+ public final void rule__CompositeArea__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9442:1: ( ( () ) )
+ // InternalRBAModel.g:9443:1: ( () )
+ {
+ // InternalRBAModel.g:9443:1: ( () )
+ // InternalRBAModel.g:9444:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCompositeAreaAccess().getCompositeAreaAction_0());
+ }
+ // InternalRBAModel.g:9445:2: ()
+ // InternalRBAModel.g:9445:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCompositeAreaAccess().getCompositeAreaAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompositeArea__Group__0__Impl"
+
+
+ // $ANTLR start "rule__CompositeArea__Group__1"
+ // InternalRBAModel.g:9453:1: rule__CompositeArea__Group__1 : rule__CompositeArea__Group__1__Impl rule__CompositeArea__Group__2 ;
+ public final void rule__CompositeArea__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9457:1: ( rule__CompositeArea__Group__1__Impl rule__CompositeArea__Group__2 )
+ // InternalRBAModel.g:9458:2: rule__CompositeArea__Group__1__Impl rule__CompositeArea__Group__2
+ {
+ pushFollow(FOLLOW_7);
+ rule__CompositeArea__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__CompositeArea__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompositeArea__Group__1"
+
+
+ // $ANTLR start "rule__CompositeArea__Group__1__Impl"
+ // InternalRBAModel.g:9465:1: rule__CompositeArea__Group__1__Impl : ( 'CompositeArea' ) ;
+ public final void rule__CompositeArea__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9469:1: ( ( 'CompositeArea' ) )
+ // InternalRBAModel.g:9470:1: ( 'CompositeArea' )
+ {
+ // InternalRBAModel.g:9470:1: ( 'CompositeArea' )
+ // InternalRBAModel.g:9471:2: 'CompositeArea'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCompositeAreaAccess().getCompositeAreaKeyword_1());
+ }
+ match(input,126,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCompositeAreaAccess().getCompositeAreaKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompositeArea__Group__1__Impl"
+
+
+ // $ANTLR start "rule__CompositeArea__Group__2"
+ // InternalRBAModel.g:9480:1: rule__CompositeArea__Group__2 : rule__CompositeArea__Group__2__Impl rule__CompositeArea__Group__3 ;
+ public final void rule__CompositeArea__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9484:1: ( rule__CompositeArea__Group__2__Impl rule__CompositeArea__Group__3 )
+ // InternalRBAModel.g:9485:2: rule__CompositeArea__Group__2__Impl rule__CompositeArea__Group__3
+ {
+ pushFollow(FOLLOW_11);
+ rule__CompositeArea__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__CompositeArea__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompositeArea__Group__2"
+
+
+ // $ANTLR start "rule__CompositeArea__Group__2__Impl"
+ // InternalRBAModel.g:9492:1: rule__CompositeArea__Group__2__Impl : ( ( rule__CompositeArea__NameAssignment_2 ) ) ;
+ public final void rule__CompositeArea__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9496:1: ( ( ( rule__CompositeArea__NameAssignment_2 ) ) )
+ // InternalRBAModel.g:9497:1: ( ( rule__CompositeArea__NameAssignment_2 ) )
+ {
+ // InternalRBAModel.g:9497:1: ( ( rule__CompositeArea__NameAssignment_2 ) )
+ // InternalRBAModel.g:9498:2: ( rule__CompositeArea__NameAssignment_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCompositeAreaAccess().getNameAssignment_2());
+ }
+ // InternalRBAModel.g:9499:2: ( rule__CompositeArea__NameAssignment_2 )
+ // InternalRBAModel.g:9499:3: rule__CompositeArea__NameAssignment_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__CompositeArea__NameAssignment_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCompositeAreaAccess().getNameAssignment_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompositeArea__Group__2__Impl"
+
+
+ // $ANTLR start "rule__CompositeArea__Group__3"
+ // InternalRBAModel.g:9507:1: rule__CompositeArea__Group__3 : rule__CompositeArea__Group__3__Impl rule__CompositeArea__Group__4 ;
+ public final void rule__CompositeArea__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9511:1: ( rule__CompositeArea__Group__3__Impl rule__CompositeArea__Group__4 )
+ // InternalRBAModel.g:9512:2: rule__CompositeArea__Group__3__Impl rule__CompositeArea__Group__4
+ {
+ pushFollow(FOLLOW_48);
+ rule__CompositeArea__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__CompositeArea__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompositeArea__Group__3"
+
+
+ // $ANTLR start "rule__CompositeArea__Group__3__Impl"
+ // InternalRBAModel.g:9519:1: rule__CompositeArea__Group__3__Impl : ( '{' ) ;
+ public final void rule__CompositeArea__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9523:1: ( ( '{' ) )
+ // InternalRBAModel.g:9524:1: ( '{' )
+ {
+ // InternalRBAModel.g:9524:1: ( '{' )
+ // InternalRBAModel.g:9525:2: '{'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCompositeAreaAccess().getLeftCurlyBracketKeyword_3());
+ }
+ match(input,101,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCompositeAreaAccess().getLeftCurlyBracketKeyword_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompositeArea__Group__3__Impl"
+
+
+ // $ANTLR start "rule__CompositeArea__Group__4"
+ // InternalRBAModel.g:9534:1: rule__CompositeArea__Group__4 : rule__CompositeArea__Group__4__Impl rule__CompositeArea__Group__5 ;
+ public final void rule__CompositeArea__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9538:1: ( rule__CompositeArea__Group__4__Impl rule__CompositeArea__Group__5 )
+ // InternalRBAModel.g:9539:2: rule__CompositeArea__Group__4__Impl rule__CompositeArea__Group__5
+ {
+ pushFollow(FOLLOW_22);
+ rule__CompositeArea__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__CompositeArea__Group__5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompositeArea__Group__4"
+
+
+ // $ANTLR start "rule__CompositeArea__Group__4__Impl"
+ // InternalRBAModel.g:9546:1: rule__CompositeArea__Group__4__Impl : ( ( rule__CompositeArea__UnorderedGroup_4 ) ) ;
+ public final void rule__CompositeArea__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9550:1: ( ( ( rule__CompositeArea__UnorderedGroup_4 ) ) )
+ // InternalRBAModel.g:9551:1: ( ( rule__CompositeArea__UnorderedGroup_4 ) )
+ {
+ // InternalRBAModel.g:9551:1: ( ( rule__CompositeArea__UnorderedGroup_4 ) )
+ // InternalRBAModel.g:9552:2: ( rule__CompositeArea__UnorderedGroup_4 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4());
+ }
+ // InternalRBAModel.g:9553:2: ( rule__CompositeArea__UnorderedGroup_4 )
+ // InternalRBAModel.g:9553:3: rule__CompositeArea__UnorderedGroup_4
+ {
+ pushFollow(FOLLOW_2);
+ rule__CompositeArea__UnorderedGroup_4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompositeArea__Group__4__Impl"
+
+
+ // $ANTLR start "rule__CompositeArea__Group__5"
+ // InternalRBAModel.g:9561:1: rule__CompositeArea__Group__5 : rule__CompositeArea__Group__5__Impl ;
+ public final void rule__CompositeArea__Group__5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9565:1: ( rule__CompositeArea__Group__5__Impl )
+ // InternalRBAModel.g:9566:2: rule__CompositeArea__Group__5__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__CompositeArea__Group__5__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompositeArea__Group__5"
+
+
+ // $ANTLR start "rule__CompositeArea__Group__5__Impl"
+ // InternalRBAModel.g:9572:1: rule__CompositeArea__Group__5__Impl : ( '}' ) ;
+ public final void rule__CompositeArea__Group__5__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9576:1: ( ( '}' ) )
+ // InternalRBAModel.g:9577:1: ( '}' )
+ {
+ // InternalRBAModel.g:9577:1: ( '}' )
+ // InternalRBAModel.g:9578:2: '}'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCompositeAreaAccess().getRightCurlyBracketKeyword_5());
+ }
+ match(input,102,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCompositeAreaAccess().getRightCurlyBracketKeyword_5());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompositeArea__Group__5__Impl"
+
+
+ // $ANTLR start "rule__CompositeArea__Group_4_0__0"
+ // InternalRBAModel.g:9588:1: rule__CompositeArea__Group_4_0__0 : rule__CompositeArea__Group_4_0__0__Impl rule__CompositeArea__Group_4_0__1 ;
+ public final void rule__CompositeArea__Group_4_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9592:1: ( rule__CompositeArea__Group_4_0__0__Impl rule__CompositeArea__Group_4_0__1 )
+ // InternalRBAModel.g:9593:2: rule__CompositeArea__Group_4_0__0__Impl rule__CompositeArea__Group_4_0__1
+ {
+ pushFollow(FOLLOW_19);
+ rule__CompositeArea__Group_4_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__CompositeArea__Group_4_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompositeArea__Group_4_0__0"
+
+
+ // $ANTLR start "rule__CompositeArea__Group_4_0__0__Impl"
+ // InternalRBAModel.g:9600:1: rule__CompositeArea__Group_4_0__0__Impl : ( 'description:' ) ;
+ public final void rule__CompositeArea__Group_4_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9604:1: ( ( 'description:' ) )
+ // InternalRBAModel.g:9605:1: ( 'description:' )
+ {
+ // InternalRBAModel.g:9605:1: ( 'description:' )
+ // InternalRBAModel.g:9606:2: 'description:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCompositeAreaAccess().getDescriptionKeyword_4_0_0());
+ }
+ match(input,105,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCompositeAreaAccess().getDescriptionKeyword_4_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompositeArea__Group_4_0__0__Impl"
+
+
+ // $ANTLR start "rule__CompositeArea__Group_4_0__1"
+ // InternalRBAModel.g:9615:1: rule__CompositeArea__Group_4_0__1 : rule__CompositeArea__Group_4_0__1__Impl ;
+ public final void rule__CompositeArea__Group_4_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9619:1: ( rule__CompositeArea__Group_4_0__1__Impl )
+ // InternalRBAModel.g:9620:2: rule__CompositeArea__Group_4_0__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__CompositeArea__Group_4_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompositeArea__Group_4_0__1"
+
+
+ // $ANTLR start "rule__CompositeArea__Group_4_0__1__Impl"
+ // InternalRBAModel.g:9626:1: rule__CompositeArea__Group_4_0__1__Impl : ( ( rule__CompositeArea__DescriptionAssignment_4_0_1 ) ) ;
+ public final void rule__CompositeArea__Group_4_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9630:1: ( ( ( rule__CompositeArea__DescriptionAssignment_4_0_1 ) ) )
+ // InternalRBAModel.g:9631:1: ( ( rule__CompositeArea__DescriptionAssignment_4_0_1 ) )
+ {
+ // InternalRBAModel.g:9631:1: ( ( rule__CompositeArea__DescriptionAssignment_4_0_1 ) )
+ // InternalRBAModel.g:9632:2: ( rule__CompositeArea__DescriptionAssignment_4_0_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCompositeAreaAccess().getDescriptionAssignment_4_0_1());
+ }
+ // InternalRBAModel.g:9633:2: ( rule__CompositeArea__DescriptionAssignment_4_0_1 )
+ // InternalRBAModel.g:9633:3: rule__CompositeArea__DescriptionAssignment_4_0_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__CompositeArea__DescriptionAssignment_4_0_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCompositeAreaAccess().getDescriptionAssignment_4_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompositeArea__Group_4_0__1__Impl"
+
+
+ // $ANTLR start "rule__CompositeArea__Group_4_1__0"
+ // InternalRBAModel.g:9642:1: rule__CompositeArea__Group_4_1__0 : rule__CompositeArea__Group_4_1__0__Impl rule__CompositeArea__Group_4_1__1 ;
+ public final void rule__CompositeArea__Group_4_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9646:1: ( rule__CompositeArea__Group_4_1__0__Impl rule__CompositeArea__Group_4_1__1 )
+ // InternalRBAModel.g:9647:2: rule__CompositeArea__Group_4_1__0__Impl rule__CompositeArea__Group_4_1__1
+ {
+ pushFollow(FOLLOW_49);
+ rule__CompositeArea__Group_4_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__CompositeArea__Group_4_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompositeArea__Group_4_1__0"
+
+
+ // $ANTLR start "rule__CompositeArea__Group_4_1__0__Impl"
+ // InternalRBAModel.g:9654:1: rule__CompositeArea__Group_4_1__0__Impl : ( 'layout:' ) ;
+ public final void rule__CompositeArea__Group_4_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9658:1: ( ( 'layout:' ) )
+ // InternalRBAModel.g:9659:1: ( 'layout:' )
+ {
+ // InternalRBAModel.g:9659:1: ( 'layout:' )
+ // InternalRBAModel.g:9660:2: 'layout:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCompositeAreaAccess().getLayoutKeyword_4_1_0());
+ }
+ match(input,127,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCompositeAreaAccess().getLayoutKeyword_4_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompositeArea__Group_4_1__0__Impl"
+
+
+ // $ANTLR start "rule__CompositeArea__Group_4_1__1"
+ // InternalRBAModel.g:9669:1: rule__CompositeArea__Group_4_1__1 : rule__CompositeArea__Group_4_1__1__Impl ;
+ public final void rule__CompositeArea__Group_4_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9673:1: ( rule__CompositeArea__Group_4_1__1__Impl )
+ // InternalRBAModel.g:9674:2: rule__CompositeArea__Group_4_1__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__CompositeArea__Group_4_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompositeArea__Group_4_1__1"
+
+
+ // $ANTLR start "rule__CompositeArea__Group_4_1__1__Impl"
+ // InternalRBAModel.g:9680:1: rule__CompositeArea__Group_4_1__1__Impl : ( ( rule__CompositeArea__LayoutAssignment_4_1_1 ) ) ;
+ public final void rule__CompositeArea__Group_4_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9684:1: ( ( ( rule__CompositeArea__LayoutAssignment_4_1_1 ) ) )
+ // InternalRBAModel.g:9685:1: ( ( rule__CompositeArea__LayoutAssignment_4_1_1 ) )
+ {
+ // InternalRBAModel.g:9685:1: ( ( rule__CompositeArea__LayoutAssignment_4_1_1 ) )
+ // InternalRBAModel.g:9686:2: ( rule__CompositeArea__LayoutAssignment_4_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCompositeAreaAccess().getLayoutAssignment_4_1_1());
+ }
+ // InternalRBAModel.g:9687:2: ( rule__CompositeArea__LayoutAssignment_4_1_1 )
+ // InternalRBAModel.g:9687:3: rule__CompositeArea__LayoutAssignment_4_1_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__CompositeArea__LayoutAssignment_4_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCompositeAreaAccess().getLayoutAssignment_4_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompositeArea__Group_4_1__1__Impl"
+
+
+ // $ANTLR start "rule__Area__Group__0"
+ // InternalRBAModel.g:9696:1: rule__Area__Group__0 : rule__Area__Group__0__Impl rule__Area__Group__1 ;
+ public final void rule__Area__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9700:1: ( rule__Area__Group__0__Impl rule__Area__Group__1 )
+ // InternalRBAModel.g:9701:2: rule__Area__Group__0__Impl rule__Area__Group__1
+ {
+ pushFollow(FOLLOW_50);
+ rule__Area__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Area__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Area__Group__0"
+
+
+ // $ANTLR start "rule__Area__Group__0__Impl"
+ // InternalRBAModel.g:9708:1: rule__Area__Group__0__Impl : ( () ) ;
+ public final void rule__Area__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9712:1: ( ( () ) )
+ // InternalRBAModel.g:9713:1: ( () )
+ {
+ // InternalRBAModel.g:9713:1: ( () )
+ // InternalRBAModel.g:9714:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaAccess().getAreaAction_0());
+ }
+ // InternalRBAModel.g:9715:2: ()
+ // InternalRBAModel.g:9715:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaAccess().getAreaAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Area__Group__0__Impl"
+
+
+ // $ANTLR start "rule__Area__Group__1"
+ // InternalRBAModel.g:9723:1: rule__Area__Group__1 : rule__Area__Group__1__Impl rule__Area__Group__2 ;
+ public final void rule__Area__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9727:1: ( rule__Area__Group__1__Impl rule__Area__Group__2 )
+ // InternalRBAModel.g:9728:2: rule__Area__Group__1__Impl rule__Area__Group__2
+ {
+ pushFollow(FOLLOW_7);
+ rule__Area__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Area__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Area__Group__1"
+
+
+ // $ANTLR start "rule__Area__Group__1__Impl"
+ // InternalRBAModel.g:9735:1: rule__Area__Group__1__Impl : ( 'Area' ) ;
+ public final void rule__Area__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9739:1: ( ( 'Area' ) )
+ // InternalRBAModel.g:9740:1: ( 'Area' )
+ {
+ // InternalRBAModel.g:9740:1: ( 'Area' )
+ // InternalRBAModel.g:9741:2: 'Area'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaAccess().getAreaKeyword_1());
+ }
+ match(input,67,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaAccess().getAreaKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Area__Group__1__Impl"
+
+
+ // $ANTLR start "rule__Area__Group__2"
+ // InternalRBAModel.g:9750:1: rule__Area__Group__2 : rule__Area__Group__2__Impl rule__Area__Group__3 ;
+ public final void rule__Area__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9754:1: ( rule__Area__Group__2__Impl rule__Area__Group__3 )
+ // InternalRBAModel.g:9755:2: rule__Area__Group__2__Impl rule__Area__Group__3
+ {
+ pushFollow(FOLLOW_11);
+ rule__Area__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Area__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Area__Group__2"
+
+
+ // $ANTLR start "rule__Area__Group__2__Impl"
+ // InternalRBAModel.g:9762:1: rule__Area__Group__2__Impl : ( ( rule__Area__NameAssignment_2 ) ) ;
+ public final void rule__Area__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9766:1: ( ( ( rule__Area__NameAssignment_2 ) ) )
+ // InternalRBAModel.g:9767:1: ( ( rule__Area__NameAssignment_2 ) )
+ {
+ // InternalRBAModel.g:9767:1: ( ( rule__Area__NameAssignment_2 ) )
+ // InternalRBAModel.g:9768:2: ( rule__Area__NameAssignment_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaAccess().getNameAssignment_2());
+ }
+ // InternalRBAModel.g:9769:2: ( rule__Area__NameAssignment_2 )
+ // InternalRBAModel.g:9769:3: rule__Area__NameAssignment_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__Area__NameAssignment_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaAccess().getNameAssignment_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Area__Group__2__Impl"
+
+
+ // $ANTLR start "rule__Area__Group__3"
+ // InternalRBAModel.g:9777:1: rule__Area__Group__3 : rule__Area__Group__3__Impl rule__Area__Group__4 ;
+ public final void rule__Area__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9781:1: ( rule__Area__Group__3__Impl rule__Area__Group__4 )
+ // InternalRBAModel.g:9782:2: rule__Area__Group__3__Impl rule__Area__Group__4
+ {
+ pushFollow(FOLLOW_51);
+ rule__Area__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Area__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Area__Group__3"
+
+
+ // $ANTLR start "rule__Area__Group__3__Impl"
+ // InternalRBAModel.g:9789:1: rule__Area__Group__3__Impl : ( '{' ) ;
+ public final void rule__Area__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9793:1: ( ( '{' ) )
+ // InternalRBAModel.g:9794:1: ( '{' )
+ {
+ // InternalRBAModel.g:9794:1: ( '{' )
+ // InternalRBAModel.g:9795:2: '{'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaAccess().getLeftCurlyBracketKeyword_3());
+ }
+ match(input,101,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaAccess().getLeftCurlyBracketKeyword_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Area__Group__3__Impl"
+
+
+ // $ANTLR start "rule__Area__Group__4"
+ // InternalRBAModel.g:9804:1: rule__Area__Group__4 : rule__Area__Group__4__Impl rule__Area__Group__5 ;
+ public final void rule__Area__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9808:1: ( rule__Area__Group__4__Impl rule__Area__Group__5 )
+ // InternalRBAModel.g:9809:2: rule__Area__Group__4__Impl rule__Area__Group__5
+ {
+ pushFollow(FOLLOW_22);
+ rule__Area__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Area__Group__5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Area__Group__4"
+
+
+ // $ANTLR start "rule__Area__Group__4__Impl"
+ // InternalRBAModel.g:9816:1: rule__Area__Group__4__Impl : ( ( rule__Area__UnorderedGroup_4 ) ) ;
+ public final void rule__Area__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9820:1: ( ( ( rule__Area__UnorderedGroup_4 ) ) )
+ // InternalRBAModel.g:9821:1: ( ( rule__Area__UnorderedGroup_4 ) )
+ {
+ // InternalRBAModel.g:9821:1: ( ( rule__Area__UnorderedGroup_4 ) )
+ // InternalRBAModel.g:9822:2: ( rule__Area__UnorderedGroup_4 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaAccess().getUnorderedGroup_4());
+ }
+ // InternalRBAModel.g:9823:2: ( rule__Area__UnorderedGroup_4 )
+ // InternalRBAModel.g:9823:3: rule__Area__UnorderedGroup_4
+ {
+ pushFollow(FOLLOW_2);
+ rule__Area__UnorderedGroup_4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaAccess().getUnorderedGroup_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Area__Group__4__Impl"
+
+
+ // $ANTLR start "rule__Area__Group__5"
+ // InternalRBAModel.g:9831:1: rule__Area__Group__5 : rule__Area__Group__5__Impl ;
+ public final void rule__Area__Group__5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9835:1: ( rule__Area__Group__5__Impl )
+ // InternalRBAModel.g:9836:2: rule__Area__Group__5__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Area__Group__5__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Area__Group__5"
+
+
+ // $ANTLR start "rule__Area__Group__5__Impl"
+ // InternalRBAModel.g:9842:1: rule__Area__Group__5__Impl : ( '}' ) ;
+ public final void rule__Area__Group__5__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9846:1: ( ( '}' ) )
+ // InternalRBAModel.g:9847:1: ( '}' )
+ {
+ // InternalRBAModel.g:9847:1: ( '}' )
+ // InternalRBAModel.g:9848:2: '}'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaAccess().getRightCurlyBracketKeyword_5());
+ }
+ match(input,102,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaAccess().getRightCurlyBracketKeyword_5());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Area__Group__5__Impl"
+
+
+ // $ANTLR start "rule__Area__Group_4_0__0"
+ // InternalRBAModel.g:9858:1: rule__Area__Group_4_0__0 : rule__Area__Group_4_0__0__Impl rule__Area__Group_4_0__1 ;
+ public final void rule__Area__Group_4_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9862:1: ( rule__Area__Group_4_0__0__Impl rule__Area__Group_4_0__1 )
+ // InternalRBAModel.g:9863:2: rule__Area__Group_4_0__0__Impl rule__Area__Group_4_0__1
+ {
+ pushFollow(FOLLOW_19);
+ rule__Area__Group_4_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Area__Group_4_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Area__Group_4_0__0"
+
+
+ // $ANTLR start "rule__Area__Group_4_0__0__Impl"
+ // InternalRBAModel.g:9870:1: rule__Area__Group_4_0__0__Impl : ( 'description:' ) ;
+ public final void rule__Area__Group_4_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9874:1: ( ( 'description:' ) )
+ // InternalRBAModel.g:9875:1: ( 'description:' )
+ {
+ // InternalRBAModel.g:9875:1: ( 'description:' )
+ // InternalRBAModel.g:9876:2: 'description:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaAccess().getDescriptionKeyword_4_0_0());
+ }
+ match(input,105,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaAccess().getDescriptionKeyword_4_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Area__Group_4_0__0__Impl"
+
+
+ // $ANTLR start "rule__Area__Group_4_0__1"
+ // InternalRBAModel.g:9885:1: rule__Area__Group_4_0__1 : rule__Area__Group_4_0__1__Impl ;
+ public final void rule__Area__Group_4_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9889:1: ( rule__Area__Group_4_0__1__Impl )
+ // InternalRBAModel.g:9890:2: rule__Area__Group_4_0__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Area__Group_4_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Area__Group_4_0__1"
+
+
+ // $ANTLR start "rule__Area__Group_4_0__1__Impl"
+ // InternalRBAModel.g:9896:1: rule__Area__Group_4_0__1__Impl : ( ( rule__Area__DescriptionAssignment_4_0_1 ) ) ;
+ public final void rule__Area__Group_4_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9900:1: ( ( ( rule__Area__DescriptionAssignment_4_0_1 ) ) )
+ // InternalRBAModel.g:9901:1: ( ( rule__Area__DescriptionAssignment_4_0_1 ) )
+ {
+ // InternalRBAModel.g:9901:1: ( ( rule__Area__DescriptionAssignment_4_0_1 ) )
+ // InternalRBAModel.g:9902:2: ( rule__Area__DescriptionAssignment_4_0_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaAccess().getDescriptionAssignment_4_0_1());
+ }
+ // InternalRBAModel.g:9903:2: ( rule__Area__DescriptionAssignment_4_0_1 )
+ // InternalRBAModel.g:9903:3: rule__Area__DescriptionAssignment_4_0_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__Area__DescriptionAssignment_4_0_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaAccess().getDescriptionAssignment_4_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Area__Group_4_0__1__Impl"
+
+
+ // $ANTLR start "rule__Area__Group_4_1__0"
+ // InternalRBAModel.g:9912:1: rule__Area__Group_4_1__0 : rule__Area__Group_4_1__0__Impl rule__Area__Group_4_1__1 ;
+ public final void rule__Area__Group_4_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9916:1: ( rule__Area__Group_4_1__0__Impl rule__Area__Group_4_1__1 )
+ // InternalRBAModel.g:9917:2: rule__Area__Group_4_1__0__Impl rule__Area__Group_4_1__1
+ {
+ pushFollow(FOLLOW_52);
+ rule__Area__Group_4_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Area__Group_4_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Area__Group_4_1__0"
+
+
+ // $ANTLR start "rule__Area__Group_4_1__0__Impl"
+ // InternalRBAModel.g:9924:1: rule__Area__Group_4_1__0__Impl : ( 'arbitrationPolicy:' ) ;
+ public final void rule__Area__Group_4_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9928:1: ( ( 'arbitrationPolicy:' ) )
+ // InternalRBAModel.g:9929:1: ( 'arbitrationPolicy:' )
+ {
+ // InternalRBAModel.g:9929:1: ( 'arbitrationPolicy:' )
+ // InternalRBAModel.g:9930:2: 'arbitrationPolicy:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaAccess().getArbitrationPolicyKeyword_4_1_0());
+ }
+ match(input,128,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaAccess().getArbitrationPolicyKeyword_4_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Area__Group_4_1__0__Impl"
+
+
+ // $ANTLR start "rule__Area__Group_4_1__1"
+ // InternalRBAModel.g:9939:1: rule__Area__Group_4_1__1 : rule__Area__Group_4_1__1__Impl ;
+ public final void rule__Area__Group_4_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9943:1: ( rule__Area__Group_4_1__1__Impl )
+ // InternalRBAModel.g:9944:2: rule__Area__Group_4_1__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Area__Group_4_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Area__Group_4_1__1"
+
+
+ // $ANTLR start "rule__Area__Group_4_1__1__Impl"
+ // InternalRBAModel.g:9950:1: rule__Area__Group_4_1__1__Impl : ( ( rule__Area__ArbitrationPolicyAssignment_4_1_1 ) ) ;
+ public final void rule__Area__Group_4_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9954:1: ( ( ( rule__Area__ArbitrationPolicyAssignment_4_1_1 ) ) )
+ // InternalRBAModel.g:9955:1: ( ( rule__Area__ArbitrationPolicyAssignment_4_1_1 ) )
+ {
+ // InternalRBAModel.g:9955:1: ( ( rule__Area__ArbitrationPolicyAssignment_4_1_1 ) )
+ // InternalRBAModel.g:9956:2: ( rule__Area__ArbitrationPolicyAssignment_4_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaAccess().getArbitrationPolicyAssignment_4_1_1());
+ }
+ // InternalRBAModel.g:9957:2: ( rule__Area__ArbitrationPolicyAssignment_4_1_1 )
+ // InternalRBAModel.g:9957:3: rule__Area__ArbitrationPolicyAssignment_4_1_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__Area__ArbitrationPolicyAssignment_4_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaAccess().getArbitrationPolicyAssignment_4_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Area__Group_4_1__1__Impl"
+
+
+ // $ANTLR start "rule__Area__Group_4_3__0"
+ // InternalRBAModel.g:9966:1: rule__Area__Group_4_3__0 : rule__Area__Group_4_3__0__Impl rule__Area__Group_4_3__1 ;
+ public final void rule__Area__Group_4_3__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9970:1: ( rule__Area__Group_4_3__0__Impl rule__Area__Group_4_3__1 )
+ // InternalRBAModel.g:9971:2: rule__Area__Group_4_3__0__Impl rule__Area__Group_4_3__1
+ {
+ pushFollow(FOLLOW_53);
+ rule__Area__Group_4_3__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Area__Group_4_3__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Area__Group_4_3__0"
+
+
+ // $ANTLR start "rule__Area__Group_4_3__0__Impl"
+ // InternalRBAModel.g:9978:1: rule__Area__Group_4_3__0__Impl : ( ( rule__Area__Alternatives_4_3_0 ) ) ;
+ public final void rule__Area__Group_4_3__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9982:1: ( ( ( rule__Area__Alternatives_4_3_0 ) ) )
+ // InternalRBAModel.g:9983:1: ( ( rule__Area__Alternatives_4_3_0 ) )
+ {
+ // InternalRBAModel.g:9983:1: ( ( rule__Area__Alternatives_4_3_0 ) )
+ // InternalRBAModel.g:9984:2: ( rule__Area__Alternatives_4_3_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaAccess().getAlternatives_4_3_0());
+ }
+ // InternalRBAModel.g:9985:2: ( rule__Area__Alternatives_4_3_0 )
+ // InternalRBAModel.g:9985:3: rule__Area__Alternatives_4_3_0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Area__Alternatives_4_3_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaAccess().getAlternatives_4_3_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Area__Group_4_3__0__Impl"
+
+
+ // $ANTLR start "rule__Area__Group_4_3__1"
+ // InternalRBAModel.g:9993:1: rule__Area__Group_4_3__1 : rule__Area__Group_4_3__1__Impl ;
+ public final void rule__Area__Group_4_3__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:9997:1: ( rule__Area__Group_4_3__1__Impl )
+ // InternalRBAModel.g:9998:2: rule__Area__Group_4_3__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Area__Group_4_3__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Area__Group_4_3__1"
+
+
+ // $ANTLR start "rule__Area__Group_4_3__1__Impl"
+ // InternalRBAModel.g:10004:1: rule__Area__Group_4_3__1__Impl : ( ( rule__Area__VisibilityAssignment_4_3_1 ) ) ;
+ public final void rule__Area__Group_4_3__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10008:1: ( ( ( rule__Area__VisibilityAssignment_4_3_1 ) ) )
+ // InternalRBAModel.g:10009:1: ( ( rule__Area__VisibilityAssignment_4_3_1 ) )
+ {
+ // InternalRBAModel.g:10009:1: ( ( rule__Area__VisibilityAssignment_4_3_1 ) )
+ // InternalRBAModel.g:10010:2: ( rule__Area__VisibilityAssignment_4_3_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaAccess().getVisibilityAssignment_4_3_1());
+ }
+ // InternalRBAModel.g:10011:2: ( rule__Area__VisibilityAssignment_4_3_1 )
+ // InternalRBAModel.g:10011:3: rule__Area__VisibilityAssignment_4_3_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__Area__VisibilityAssignment_4_3_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaAccess().getVisibilityAssignment_4_3_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Area__Group_4_3__1__Impl"
+
+
+ // $ANTLR start "rule__Area__Group_4_4__0"
+ // InternalRBAModel.g:10020:1: rule__Area__Group_4_4__0 : rule__Area__Group_4_4__0__Impl rule__Area__Group_4_4__1 ;
+ public final void rule__Area__Group_4_4__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10024:1: ( rule__Area__Group_4_4__0__Impl rule__Area__Group_4_4__1 )
+ // InternalRBAModel.g:10025:2: rule__Area__Group_4_4__0__Impl rule__Area__Group_4_4__1
+ {
+ pushFollow(FOLLOW_53);
+ rule__Area__Group_4_4__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Area__Group_4_4__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Area__Group_4_4__0"
+
+
+ // $ANTLR start "rule__Area__Group_4_4__0__Impl"
+ // InternalRBAModel.g:10032:1: rule__Area__Group_4_4__0__Impl : ( 'zorder:' ) ;
+ public final void rule__Area__Group_4_4__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10036:1: ( ( 'zorder:' ) )
+ // InternalRBAModel.g:10037:1: ( 'zorder:' )
+ {
+ // InternalRBAModel.g:10037:1: ( 'zorder:' )
+ // InternalRBAModel.g:10038:2: 'zorder:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaAccess().getZorderKeyword_4_4_0());
+ }
+ match(input,129,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaAccess().getZorderKeyword_4_4_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Area__Group_4_4__0__Impl"
+
+
+ // $ANTLR start "rule__Area__Group_4_4__1"
+ // InternalRBAModel.g:10047:1: rule__Area__Group_4_4__1 : rule__Area__Group_4_4__1__Impl ;
+ public final void rule__Area__Group_4_4__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10051:1: ( rule__Area__Group_4_4__1__Impl )
+ // InternalRBAModel.g:10052:2: rule__Area__Group_4_4__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Area__Group_4_4__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Area__Group_4_4__1"
+
+
+ // $ANTLR start "rule__Area__Group_4_4__1__Impl"
+ // InternalRBAModel.g:10058:1: rule__Area__Group_4_4__1__Impl : ( ( rule__Area__ZorderAssignment_4_4_1 ) ) ;
+ public final void rule__Area__Group_4_4__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10062:1: ( ( ( rule__Area__ZorderAssignment_4_4_1 ) ) )
+ // InternalRBAModel.g:10063:1: ( ( rule__Area__ZorderAssignment_4_4_1 ) )
+ {
+ // InternalRBAModel.g:10063:1: ( ( rule__Area__ZorderAssignment_4_4_1 ) )
+ // InternalRBAModel.g:10064:2: ( rule__Area__ZorderAssignment_4_4_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaAccess().getZorderAssignment_4_4_1());
+ }
+ // InternalRBAModel.g:10065:2: ( rule__Area__ZorderAssignment_4_4_1 )
+ // InternalRBAModel.g:10065:3: rule__Area__ZorderAssignment_4_4_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__Area__ZorderAssignment_4_4_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaAccess().getZorderAssignment_4_4_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Area__Group_4_4__1__Impl"
+
+
+ // $ANTLR start "rule__Zone__Group__0"
+ // InternalRBAModel.g:10074:1: rule__Zone__Group__0 : rule__Zone__Group__0__Impl rule__Zone__Group__1 ;
+ public final void rule__Zone__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10078:1: ( rule__Zone__Group__0__Impl rule__Zone__Group__1 )
+ // InternalRBAModel.g:10079:2: rule__Zone__Group__0__Impl rule__Zone__Group__1
+ {
+ pushFollow(FOLLOW_54);
+ rule__Zone__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Zone__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Zone__Group__0"
+
+
+ // $ANTLR start "rule__Zone__Group__0__Impl"
+ // InternalRBAModel.g:10086:1: rule__Zone__Group__0__Impl : ( () ) ;
+ public final void rule__Zone__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10090:1: ( ( () ) )
+ // InternalRBAModel.g:10091:1: ( () )
+ {
+ // InternalRBAModel.g:10091:1: ( () )
+ // InternalRBAModel.g:10092:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneAccess().getZoneAction_0());
+ }
+ // InternalRBAModel.g:10093:2: ()
+ // InternalRBAModel.g:10093:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneAccess().getZoneAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Zone__Group__0__Impl"
+
+
+ // $ANTLR start "rule__Zone__Group__1"
+ // InternalRBAModel.g:10101:1: rule__Zone__Group__1 : rule__Zone__Group__1__Impl rule__Zone__Group__2 ;
+ public final void rule__Zone__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10105:1: ( rule__Zone__Group__1__Impl rule__Zone__Group__2 )
+ // InternalRBAModel.g:10106:2: rule__Zone__Group__1__Impl rule__Zone__Group__2
+ {
+ pushFollow(FOLLOW_7);
+ rule__Zone__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Zone__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Zone__Group__1"
+
+
+ // $ANTLR start "rule__Zone__Group__1__Impl"
+ // InternalRBAModel.g:10113:1: rule__Zone__Group__1__Impl : ( 'Zone' ) ;
+ public final void rule__Zone__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10117:1: ( ( 'Zone' ) )
+ // InternalRBAModel.g:10118:1: ( 'Zone' )
+ {
+ // InternalRBAModel.g:10118:1: ( 'Zone' )
+ // InternalRBAModel.g:10119:2: 'Zone'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneAccess().getZoneKeyword_1());
+ }
+ match(input,68,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneAccess().getZoneKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Zone__Group__1__Impl"
+
+
+ // $ANTLR start "rule__Zone__Group__2"
+ // InternalRBAModel.g:10128:1: rule__Zone__Group__2 : rule__Zone__Group__2__Impl rule__Zone__Group__3 ;
+ public final void rule__Zone__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10132:1: ( rule__Zone__Group__2__Impl rule__Zone__Group__3 )
+ // InternalRBAModel.g:10133:2: rule__Zone__Group__2__Impl rule__Zone__Group__3
+ {
+ pushFollow(FOLLOW_11);
+ rule__Zone__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Zone__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Zone__Group__2"
+
+
+ // $ANTLR start "rule__Zone__Group__2__Impl"
+ // InternalRBAModel.g:10140:1: rule__Zone__Group__2__Impl : ( ( rule__Zone__NameAssignment_2 ) ) ;
+ public final void rule__Zone__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10144:1: ( ( ( rule__Zone__NameAssignment_2 ) ) )
+ // InternalRBAModel.g:10145:1: ( ( rule__Zone__NameAssignment_2 ) )
+ {
+ // InternalRBAModel.g:10145:1: ( ( rule__Zone__NameAssignment_2 ) )
+ // InternalRBAModel.g:10146:2: ( rule__Zone__NameAssignment_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneAccess().getNameAssignment_2());
+ }
+ // InternalRBAModel.g:10147:2: ( rule__Zone__NameAssignment_2 )
+ // InternalRBAModel.g:10147:3: rule__Zone__NameAssignment_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__Zone__NameAssignment_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneAccess().getNameAssignment_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Zone__Group__2__Impl"
+
+
+ // $ANTLR start "rule__Zone__Group__3"
+ // InternalRBAModel.g:10155:1: rule__Zone__Group__3 : rule__Zone__Group__3__Impl rule__Zone__Group__4 ;
+ public final void rule__Zone__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10159:1: ( rule__Zone__Group__3__Impl rule__Zone__Group__4 )
+ // InternalRBAModel.g:10160:2: rule__Zone__Group__3__Impl rule__Zone__Group__4
+ {
+ pushFollow(FOLLOW_55);
+ rule__Zone__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Zone__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Zone__Group__3"
+
+
+ // $ANTLR start "rule__Zone__Group__3__Impl"
+ // InternalRBAModel.g:10167:1: rule__Zone__Group__3__Impl : ( '{' ) ;
+ public final void rule__Zone__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10171:1: ( ( '{' ) )
+ // InternalRBAModel.g:10172:1: ( '{' )
+ {
+ // InternalRBAModel.g:10172:1: ( '{' )
+ // InternalRBAModel.g:10173:2: '{'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneAccess().getLeftCurlyBracketKeyword_3());
+ }
+ match(input,101,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneAccess().getLeftCurlyBracketKeyword_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Zone__Group__3__Impl"
+
+
+ // $ANTLR start "rule__Zone__Group__4"
+ // InternalRBAModel.g:10182:1: rule__Zone__Group__4 : rule__Zone__Group__4__Impl rule__Zone__Group__5 ;
+ public final void rule__Zone__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10186:1: ( rule__Zone__Group__4__Impl rule__Zone__Group__5 )
+ // InternalRBAModel.g:10187:2: rule__Zone__Group__4__Impl rule__Zone__Group__5
+ {
+ pushFollow(FOLLOW_22);
+ rule__Zone__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Zone__Group__5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Zone__Group__4"
+
+
+ // $ANTLR start "rule__Zone__Group__4__Impl"
+ // InternalRBAModel.g:10194:1: rule__Zone__Group__4__Impl : ( ( rule__Zone__UnorderedGroup_4 ) ) ;
+ public final void rule__Zone__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10198:1: ( ( ( rule__Zone__UnorderedGroup_4 ) ) )
+ // InternalRBAModel.g:10199:1: ( ( rule__Zone__UnorderedGroup_4 ) )
+ {
+ // InternalRBAModel.g:10199:1: ( ( rule__Zone__UnorderedGroup_4 ) )
+ // InternalRBAModel.g:10200:2: ( rule__Zone__UnorderedGroup_4 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneAccess().getUnorderedGroup_4());
+ }
+ // InternalRBAModel.g:10201:2: ( rule__Zone__UnorderedGroup_4 )
+ // InternalRBAModel.g:10201:3: rule__Zone__UnorderedGroup_4
+ {
+ pushFollow(FOLLOW_2);
+ rule__Zone__UnorderedGroup_4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneAccess().getUnorderedGroup_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Zone__Group__4__Impl"
+
+
+ // $ANTLR start "rule__Zone__Group__5"
+ // InternalRBAModel.g:10209:1: rule__Zone__Group__5 : rule__Zone__Group__5__Impl ;
+ public final void rule__Zone__Group__5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10213:1: ( rule__Zone__Group__5__Impl )
+ // InternalRBAModel.g:10214:2: rule__Zone__Group__5__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Zone__Group__5__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Zone__Group__5"
+
+
+ // $ANTLR start "rule__Zone__Group__5__Impl"
+ // InternalRBAModel.g:10220:1: rule__Zone__Group__5__Impl : ( '}' ) ;
+ public final void rule__Zone__Group__5__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10224:1: ( ( '}' ) )
+ // InternalRBAModel.g:10225:1: ( '}' )
+ {
+ // InternalRBAModel.g:10225:1: ( '}' )
+ // InternalRBAModel.g:10226:2: '}'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneAccess().getRightCurlyBracketKeyword_5());
+ }
+ match(input,102,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneAccess().getRightCurlyBracketKeyword_5());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Zone__Group__5__Impl"
+
+
+ // $ANTLR start "rule__Zone__Group_4_0__0"
+ // InternalRBAModel.g:10236:1: rule__Zone__Group_4_0__0 : rule__Zone__Group_4_0__0__Impl rule__Zone__Group_4_0__1 ;
+ public final void rule__Zone__Group_4_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10240:1: ( rule__Zone__Group_4_0__0__Impl rule__Zone__Group_4_0__1 )
+ // InternalRBAModel.g:10241:2: rule__Zone__Group_4_0__0__Impl rule__Zone__Group_4_0__1
+ {
+ pushFollow(FOLLOW_19);
+ rule__Zone__Group_4_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Zone__Group_4_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Zone__Group_4_0__0"
+
+
+ // $ANTLR start "rule__Zone__Group_4_0__0__Impl"
+ // InternalRBAModel.g:10248:1: rule__Zone__Group_4_0__0__Impl : ( 'description:' ) ;
+ public final void rule__Zone__Group_4_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10252:1: ( ( 'description:' ) )
+ // InternalRBAModel.g:10253:1: ( 'description:' )
+ {
+ // InternalRBAModel.g:10253:1: ( 'description:' )
+ // InternalRBAModel.g:10254:2: 'description:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneAccess().getDescriptionKeyword_4_0_0());
+ }
+ match(input,105,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneAccess().getDescriptionKeyword_4_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Zone__Group_4_0__0__Impl"
+
+
+ // $ANTLR start "rule__Zone__Group_4_0__1"
+ // InternalRBAModel.g:10263:1: rule__Zone__Group_4_0__1 : rule__Zone__Group_4_0__1__Impl ;
+ public final void rule__Zone__Group_4_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10267:1: ( rule__Zone__Group_4_0__1__Impl )
+ // InternalRBAModel.g:10268:2: rule__Zone__Group_4_0__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Zone__Group_4_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Zone__Group_4_0__1"
+
+
+ // $ANTLR start "rule__Zone__Group_4_0__1__Impl"
+ // InternalRBAModel.g:10274:1: rule__Zone__Group_4_0__1__Impl : ( ( rule__Zone__DescriptionAssignment_4_0_1 ) ) ;
+ public final void rule__Zone__Group_4_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10278:1: ( ( ( rule__Zone__DescriptionAssignment_4_0_1 ) ) )
+ // InternalRBAModel.g:10279:1: ( ( rule__Zone__DescriptionAssignment_4_0_1 ) )
+ {
+ // InternalRBAModel.g:10279:1: ( ( rule__Zone__DescriptionAssignment_4_0_1 ) )
+ // InternalRBAModel.g:10280:2: ( rule__Zone__DescriptionAssignment_4_0_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneAccess().getDescriptionAssignment_4_0_1());
+ }
+ // InternalRBAModel.g:10281:2: ( rule__Zone__DescriptionAssignment_4_0_1 )
+ // InternalRBAModel.g:10281:3: rule__Zone__DescriptionAssignment_4_0_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__Zone__DescriptionAssignment_4_0_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneAccess().getDescriptionAssignment_4_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Zone__Group_4_0__1__Impl"
+
+
+ // $ANTLR start "rule__Zone__Group_4_1__0"
+ // InternalRBAModel.g:10290:1: rule__Zone__Group_4_1__0 : rule__Zone__Group_4_1__0__Impl rule__Zone__Group_4_1__1 ;
+ public final void rule__Zone__Group_4_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10294:1: ( rule__Zone__Group_4_1__0__Impl rule__Zone__Group_4_1__1 )
+ // InternalRBAModel.g:10295:2: rule__Zone__Group_4_1__0__Impl rule__Zone__Group_4_1__1
+ {
+ pushFollow(FOLLOW_52);
+ rule__Zone__Group_4_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Zone__Group_4_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Zone__Group_4_1__0"
+
+
+ // $ANTLR start "rule__Zone__Group_4_1__0__Impl"
+ // InternalRBAModel.g:10302:1: rule__Zone__Group_4_1__0__Impl : ( 'arbitrationPolicy:' ) ;
+ public final void rule__Zone__Group_4_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10306:1: ( ( 'arbitrationPolicy:' ) )
+ // InternalRBAModel.g:10307:1: ( 'arbitrationPolicy:' )
+ {
+ // InternalRBAModel.g:10307:1: ( 'arbitrationPolicy:' )
+ // InternalRBAModel.g:10308:2: 'arbitrationPolicy:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneAccess().getArbitrationPolicyKeyword_4_1_0());
+ }
+ match(input,128,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneAccess().getArbitrationPolicyKeyword_4_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Zone__Group_4_1__0__Impl"
+
+
+ // $ANTLR start "rule__Zone__Group_4_1__1"
+ // InternalRBAModel.g:10317:1: rule__Zone__Group_4_1__1 : rule__Zone__Group_4_1__1__Impl ;
+ public final void rule__Zone__Group_4_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10321:1: ( rule__Zone__Group_4_1__1__Impl )
+ // InternalRBAModel.g:10322:2: rule__Zone__Group_4_1__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Zone__Group_4_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Zone__Group_4_1__1"
+
+
+ // $ANTLR start "rule__Zone__Group_4_1__1__Impl"
+ // InternalRBAModel.g:10328:1: rule__Zone__Group_4_1__1__Impl : ( ( rule__Zone__ArbitrationPolicyAssignment_4_1_1 ) ) ;
+ public final void rule__Zone__Group_4_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10332:1: ( ( ( rule__Zone__ArbitrationPolicyAssignment_4_1_1 ) ) )
+ // InternalRBAModel.g:10333:1: ( ( rule__Zone__ArbitrationPolicyAssignment_4_1_1 ) )
+ {
+ // InternalRBAModel.g:10333:1: ( ( rule__Zone__ArbitrationPolicyAssignment_4_1_1 ) )
+ // InternalRBAModel.g:10334:2: ( rule__Zone__ArbitrationPolicyAssignment_4_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneAccess().getArbitrationPolicyAssignment_4_1_1());
+ }
+ // InternalRBAModel.g:10335:2: ( rule__Zone__ArbitrationPolicyAssignment_4_1_1 )
+ // InternalRBAModel.g:10335:3: rule__Zone__ArbitrationPolicyAssignment_4_1_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__Zone__ArbitrationPolicyAssignment_4_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneAccess().getArbitrationPolicyAssignment_4_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Zone__Group_4_1__1__Impl"
+
+
+ // $ANTLR start "rule__Zone__Group_4_2__0"
+ // InternalRBAModel.g:10344:1: rule__Zone__Group_4_2__0 : rule__Zone__Group_4_2__0__Impl rule__Zone__Group_4_2__1 ;
+ public final void rule__Zone__Group_4_2__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10348:1: ( rule__Zone__Group_4_2__0__Impl rule__Zone__Group_4_2__1 )
+ // InternalRBAModel.g:10349:2: rule__Zone__Group_4_2__0__Impl rule__Zone__Group_4_2__1
+ {
+ pushFollow(FOLLOW_53);
+ rule__Zone__Group_4_2__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Zone__Group_4_2__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Zone__Group_4_2__0"
+
+
+ // $ANTLR start "rule__Zone__Group_4_2__0__Impl"
+ // InternalRBAModel.g:10356:1: rule__Zone__Group_4_2__0__Impl : ( ( rule__Zone__Alternatives_4_2_0 ) ) ;
+ public final void rule__Zone__Group_4_2__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10360:1: ( ( ( rule__Zone__Alternatives_4_2_0 ) ) )
+ // InternalRBAModel.g:10361:1: ( ( rule__Zone__Alternatives_4_2_0 ) )
+ {
+ // InternalRBAModel.g:10361:1: ( ( rule__Zone__Alternatives_4_2_0 ) )
+ // InternalRBAModel.g:10362:2: ( rule__Zone__Alternatives_4_2_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneAccess().getAlternatives_4_2_0());
+ }
+ // InternalRBAModel.g:10363:2: ( rule__Zone__Alternatives_4_2_0 )
+ // InternalRBAModel.g:10363:3: rule__Zone__Alternatives_4_2_0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Zone__Alternatives_4_2_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneAccess().getAlternatives_4_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Zone__Group_4_2__0__Impl"
+
+
+ // $ANTLR start "rule__Zone__Group_4_2__1"
+ // InternalRBAModel.g:10371:1: rule__Zone__Group_4_2__1 : rule__Zone__Group_4_2__1__Impl ;
+ public final void rule__Zone__Group_4_2__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10375:1: ( rule__Zone__Group_4_2__1__Impl )
+ // InternalRBAModel.g:10376:2: rule__Zone__Group_4_2__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Zone__Group_4_2__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Zone__Group_4_2__1"
+
+
+ // $ANTLR start "rule__Zone__Group_4_2__1__Impl"
+ // InternalRBAModel.g:10382:1: rule__Zone__Group_4_2__1__Impl : ( ( rule__Zone__VisibilityAssignment_4_2_1 ) ) ;
+ public final void rule__Zone__Group_4_2__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10386:1: ( ( ( rule__Zone__VisibilityAssignment_4_2_1 ) ) )
+ // InternalRBAModel.g:10387:1: ( ( rule__Zone__VisibilityAssignment_4_2_1 ) )
+ {
+ // InternalRBAModel.g:10387:1: ( ( rule__Zone__VisibilityAssignment_4_2_1 ) )
+ // InternalRBAModel.g:10388:2: ( rule__Zone__VisibilityAssignment_4_2_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneAccess().getVisibilityAssignment_4_2_1());
+ }
+ // InternalRBAModel.g:10389:2: ( rule__Zone__VisibilityAssignment_4_2_1 )
+ // InternalRBAModel.g:10389:3: rule__Zone__VisibilityAssignment_4_2_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__Zone__VisibilityAssignment_4_2_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneAccess().getVisibilityAssignment_4_2_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Zone__Group_4_2__1__Impl"
+
+
+ // $ANTLR start "rule__Zone__Group_4_3__0"
+ // InternalRBAModel.g:10398:1: rule__Zone__Group_4_3__0 : rule__Zone__Group_4_3__0__Impl rule__Zone__Group_4_3__1 ;
+ public final void rule__Zone__Group_4_3__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10402:1: ( rule__Zone__Group_4_3__0__Impl rule__Zone__Group_4_3__1 )
+ // InternalRBAModel.g:10403:2: rule__Zone__Group_4_3__0__Impl rule__Zone__Group_4_3__1
+ {
+ pushFollow(FOLLOW_10);
+ rule__Zone__Group_4_3__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Zone__Group_4_3__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Zone__Group_4_3__0"
+
+
+ // $ANTLR start "rule__Zone__Group_4_3__0__Impl"
+ // InternalRBAModel.g:10410:1: rule__Zone__Group_4_3__0__Impl : ( 'attenuateValue:' ) ;
+ public final void rule__Zone__Group_4_3__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10414:1: ( ( 'attenuateValue:' ) )
+ // InternalRBAModel.g:10415:1: ( 'attenuateValue:' )
+ {
+ // InternalRBAModel.g:10415:1: ( 'attenuateValue:' )
+ // InternalRBAModel.g:10416:2: 'attenuateValue:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneAccess().getAttenuateValueKeyword_4_3_0());
+ }
+ match(input,130,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneAccess().getAttenuateValueKeyword_4_3_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Zone__Group_4_3__0__Impl"
+
+
+ // $ANTLR start "rule__Zone__Group_4_3__1"
+ // InternalRBAModel.g:10425:1: rule__Zone__Group_4_3__1 : rule__Zone__Group_4_3__1__Impl ;
+ public final void rule__Zone__Group_4_3__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10429:1: ( rule__Zone__Group_4_3__1__Impl )
+ // InternalRBAModel.g:10430:2: rule__Zone__Group_4_3__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Zone__Group_4_3__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Zone__Group_4_3__1"
+
+
+ // $ANTLR start "rule__Zone__Group_4_3__1__Impl"
+ // InternalRBAModel.g:10436:1: rule__Zone__Group_4_3__1__Impl : ( ( rule__Zone__AttenuateAssignment_4_3_1 ) ) ;
+ public final void rule__Zone__Group_4_3__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10440:1: ( ( ( rule__Zone__AttenuateAssignment_4_3_1 ) ) )
+ // InternalRBAModel.g:10441:1: ( ( rule__Zone__AttenuateAssignment_4_3_1 ) )
+ {
+ // InternalRBAModel.g:10441:1: ( ( rule__Zone__AttenuateAssignment_4_3_1 ) )
+ // InternalRBAModel.g:10442:2: ( rule__Zone__AttenuateAssignment_4_3_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneAccess().getAttenuateAssignment_4_3_1());
+ }
+ // InternalRBAModel.g:10443:2: ( rule__Zone__AttenuateAssignment_4_3_1 )
+ // InternalRBAModel.g:10443:3: rule__Zone__AttenuateAssignment_4_3_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__Zone__AttenuateAssignment_4_3_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneAccess().getAttenuateAssignment_4_3_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Zone__Group_4_3__1__Impl"
+
+
+ // $ANTLR start "rule__ViewContentState__Group__0"
+ // InternalRBAModel.g:10452:1: rule__ViewContentState__Group__0 : rule__ViewContentState__Group__0__Impl rule__ViewContentState__Group__1 ;
+ public final void rule__ViewContentState__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10456:1: ( rule__ViewContentState__Group__0__Impl rule__ViewContentState__Group__1 )
+ // InternalRBAModel.g:10457:2: rule__ViewContentState__Group__0__Impl rule__ViewContentState__Group__1
+ {
+ pushFollow(FOLLOW_56);
+ rule__ViewContentState__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ViewContentState__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentState__Group__0"
+
+
+ // $ANTLR start "rule__ViewContentState__Group__0__Impl"
+ // InternalRBAModel.g:10464:1: rule__ViewContentState__Group__0__Impl : ( () ) ;
+ public final void rule__ViewContentState__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10468:1: ( ( () ) )
+ // InternalRBAModel.g:10469:1: ( () )
+ {
+ // InternalRBAModel.g:10469:1: ( () )
+ // InternalRBAModel.g:10470:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentStateAccess().getViewContentStateAction_0());
+ }
+ // InternalRBAModel.g:10471:2: ()
+ // InternalRBAModel.g:10471:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentStateAccess().getViewContentStateAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentState__Group__0__Impl"
+
+
+ // $ANTLR start "rule__ViewContentState__Group__1"
+ // InternalRBAModel.g:10479:1: rule__ViewContentState__Group__1 : rule__ViewContentState__Group__1__Impl rule__ViewContentState__Group__2 ;
+ public final void rule__ViewContentState__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10483:1: ( rule__ViewContentState__Group__1__Impl rule__ViewContentState__Group__2 )
+ // InternalRBAModel.g:10484:2: rule__ViewContentState__Group__1__Impl rule__ViewContentState__Group__2
+ {
+ pushFollow(FOLLOW_7);
+ rule__ViewContentState__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ViewContentState__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentState__Group__1"
+
+
+ // $ANTLR start "rule__ViewContentState__Group__1__Impl"
+ // InternalRBAModel.g:10491:1: rule__ViewContentState__Group__1__Impl : ( 'State' ) ;
+ public final void rule__ViewContentState__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10495:1: ( ( 'State' ) )
+ // InternalRBAModel.g:10496:1: ( 'State' )
+ {
+ // InternalRBAModel.g:10496:1: ( 'State' )
+ // InternalRBAModel.g:10497:2: 'State'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentStateAccess().getStateKeyword_1());
+ }
+ match(input,131,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentStateAccess().getStateKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentState__Group__1__Impl"
+
+
+ // $ANTLR start "rule__ViewContentState__Group__2"
+ // InternalRBAModel.g:10506:1: rule__ViewContentState__Group__2 : rule__ViewContentState__Group__2__Impl rule__ViewContentState__Group__3 ;
+ public final void rule__ViewContentState__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10510:1: ( rule__ViewContentState__Group__2__Impl rule__ViewContentState__Group__3 )
+ // InternalRBAModel.g:10511:2: rule__ViewContentState__Group__2__Impl rule__ViewContentState__Group__3
+ {
+ pushFollow(FOLLOW_11);
+ rule__ViewContentState__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ViewContentState__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentState__Group__2"
+
+
+ // $ANTLR start "rule__ViewContentState__Group__2__Impl"
+ // InternalRBAModel.g:10518:1: rule__ViewContentState__Group__2__Impl : ( ( rule__ViewContentState__NameAssignment_2 ) ) ;
+ public final void rule__ViewContentState__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10522:1: ( ( ( rule__ViewContentState__NameAssignment_2 ) ) )
+ // InternalRBAModel.g:10523:1: ( ( rule__ViewContentState__NameAssignment_2 ) )
+ {
+ // InternalRBAModel.g:10523:1: ( ( rule__ViewContentState__NameAssignment_2 ) )
+ // InternalRBAModel.g:10524:2: ( rule__ViewContentState__NameAssignment_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentStateAccess().getNameAssignment_2());
+ }
+ // InternalRBAModel.g:10525:2: ( rule__ViewContentState__NameAssignment_2 )
+ // InternalRBAModel.g:10525:3: rule__ViewContentState__NameAssignment_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContentState__NameAssignment_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentStateAccess().getNameAssignment_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentState__Group__2__Impl"
+
+
+ // $ANTLR start "rule__ViewContentState__Group__3"
+ // InternalRBAModel.g:10533:1: rule__ViewContentState__Group__3 : rule__ViewContentState__Group__3__Impl rule__ViewContentState__Group__4 ;
+ public final void rule__ViewContentState__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10537:1: ( rule__ViewContentState__Group__3__Impl rule__ViewContentState__Group__4 )
+ // InternalRBAModel.g:10538:2: rule__ViewContentState__Group__3__Impl rule__ViewContentState__Group__4
+ {
+ pushFollow(FOLLOW_57);
+ rule__ViewContentState__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ViewContentState__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentState__Group__3"
+
+
+ // $ANTLR start "rule__ViewContentState__Group__3__Impl"
+ // InternalRBAModel.g:10545:1: rule__ViewContentState__Group__3__Impl : ( '{' ) ;
+ public final void rule__ViewContentState__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10549:1: ( ( '{' ) )
+ // InternalRBAModel.g:10550:1: ( '{' )
+ {
+ // InternalRBAModel.g:10550:1: ( '{' )
+ // InternalRBAModel.g:10551:2: '{'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentStateAccess().getLeftCurlyBracketKeyword_3());
+ }
+ match(input,101,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentStateAccess().getLeftCurlyBracketKeyword_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentState__Group__3__Impl"
+
+
+ // $ANTLR start "rule__ViewContentState__Group__4"
+ // InternalRBAModel.g:10560:1: rule__ViewContentState__Group__4 : rule__ViewContentState__Group__4__Impl rule__ViewContentState__Group__5 ;
+ public final void rule__ViewContentState__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10564:1: ( rule__ViewContentState__Group__4__Impl rule__ViewContentState__Group__5 )
+ // InternalRBAModel.g:10565:2: rule__ViewContentState__Group__4__Impl rule__ViewContentState__Group__5
+ {
+ pushFollow(FOLLOW_22);
+ rule__ViewContentState__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ViewContentState__Group__5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentState__Group__4"
+
+
+ // $ANTLR start "rule__ViewContentState__Group__4__Impl"
+ // InternalRBAModel.g:10572:1: rule__ViewContentState__Group__4__Impl : ( ( rule__ViewContentState__UnorderedGroup_4 ) ) ;
+ public final void rule__ViewContentState__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10576:1: ( ( ( rule__ViewContentState__UnorderedGroup_4 ) ) )
+ // InternalRBAModel.g:10577:1: ( ( rule__ViewContentState__UnorderedGroup_4 ) )
+ {
+ // InternalRBAModel.g:10577:1: ( ( rule__ViewContentState__UnorderedGroup_4 ) )
+ // InternalRBAModel.g:10578:2: ( rule__ViewContentState__UnorderedGroup_4 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4());
+ }
+ // InternalRBAModel.g:10579:2: ( rule__ViewContentState__UnorderedGroup_4 )
+ // InternalRBAModel.g:10579:3: rule__ViewContentState__UnorderedGroup_4
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContentState__UnorderedGroup_4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentState__Group__4__Impl"
+
+
+ // $ANTLR start "rule__ViewContentState__Group__5"
+ // InternalRBAModel.g:10587:1: rule__ViewContentState__Group__5 : rule__ViewContentState__Group__5__Impl ;
+ public final void rule__ViewContentState__Group__5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10591:1: ( rule__ViewContentState__Group__5__Impl )
+ // InternalRBAModel.g:10592:2: rule__ViewContentState__Group__5__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContentState__Group__5__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentState__Group__5"
+
+
+ // $ANTLR start "rule__ViewContentState__Group__5__Impl"
+ // InternalRBAModel.g:10598:1: rule__ViewContentState__Group__5__Impl : ( '}' ) ;
+ public final void rule__ViewContentState__Group__5__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10602:1: ( ( '}' ) )
+ // InternalRBAModel.g:10603:1: ( '}' )
+ {
+ // InternalRBAModel.g:10603:1: ( '}' )
+ // InternalRBAModel.g:10604:2: '}'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentStateAccess().getRightCurlyBracketKeyword_5());
+ }
+ match(input,102,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentStateAccess().getRightCurlyBracketKeyword_5());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentState__Group__5__Impl"
+
+
+ // $ANTLR start "rule__ViewContentState__Group_4_0__0"
+ // InternalRBAModel.g:10614:1: rule__ViewContentState__Group_4_0__0 : rule__ViewContentState__Group_4_0__0__Impl rule__ViewContentState__Group_4_0__1 ;
+ public final void rule__ViewContentState__Group_4_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10618:1: ( rule__ViewContentState__Group_4_0__0__Impl rule__ViewContentState__Group_4_0__1 )
+ // InternalRBAModel.g:10619:2: rule__ViewContentState__Group_4_0__0__Impl rule__ViewContentState__Group_4_0__1
+ {
+ pushFollow(FOLLOW_19);
+ rule__ViewContentState__Group_4_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ViewContentState__Group_4_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentState__Group_4_0__0"
+
+
+ // $ANTLR start "rule__ViewContentState__Group_4_0__0__Impl"
+ // InternalRBAModel.g:10626:1: rule__ViewContentState__Group_4_0__0__Impl : ( 'description:' ) ;
+ public final void rule__ViewContentState__Group_4_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10630:1: ( ( 'description:' ) )
+ // InternalRBAModel.g:10631:1: ( 'description:' )
+ {
+ // InternalRBAModel.g:10631:1: ( 'description:' )
+ // InternalRBAModel.g:10632:2: 'description:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentStateAccess().getDescriptionKeyword_4_0_0());
+ }
+ match(input,105,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentStateAccess().getDescriptionKeyword_4_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentState__Group_4_0__0__Impl"
+
+
+ // $ANTLR start "rule__ViewContentState__Group_4_0__1"
+ // InternalRBAModel.g:10641:1: rule__ViewContentState__Group_4_0__1 : rule__ViewContentState__Group_4_0__1__Impl ;
+ public final void rule__ViewContentState__Group_4_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10645:1: ( rule__ViewContentState__Group_4_0__1__Impl )
+ // InternalRBAModel.g:10646:2: rule__ViewContentState__Group_4_0__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContentState__Group_4_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentState__Group_4_0__1"
+
+
+ // $ANTLR start "rule__ViewContentState__Group_4_0__1__Impl"
+ // InternalRBAModel.g:10652:1: rule__ViewContentState__Group_4_0__1__Impl : ( ( rule__ViewContentState__DescriptionAssignment_4_0_1 ) ) ;
+ public final void rule__ViewContentState__Group_4_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10656:1: ( ( ( rule__ViewContentState__DescriptionAssignment_4_0_1 ) ) )
+ // InternalRBAModel.g:10657:1: ( ( rule__ViewContentState__DescriptionAssignment_4_0_1 ) )
+ {
+ // InternalRBAModel.g:10657:1: ( ( rule__ViewContentState__DescriptionAssignment_4_0_1 ) )
+ // InternalRBAModel.g:10658:2: ( rule__ViewContentState__DescriptionAssignment_4_0_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentStateAccess().getDescriptionAssignment_4_0_1());
+ }
+ // InternalRBAModel.g:10659:2: ( rule__ViewContentState__DescriptionAssignment_4_0_1 )
+ // InternalRBAModel.g:10659:3: rule__ViewContentState__DescriptionAssignment_4_0_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContentState__DescriptionAssignment_4_0_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentStateAccess().getDescriptionAssignment_4_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentState__Group_4_0__1__Impl"
+
+
+ // $ANTLR start "rule__ViewContentState__Group_4_1__0"
+ // InternalRBAModel.g:10668:1: rule__ViewContentState__Group_4_1__0 : rule__ViewContentState__Group_4_1__0__Impl rule__ViewContentState__Group_4_1__1 ;
+ public final void rule__ViewContentState__Group_4_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10672:1: ( rule__ViewContentState__Group_4_1__0__Impl rule__ViewContentState__Group_4_1__1 )
+ // InternalRBAModel.g:10673:2: rule__ViewContentState__Group_4_1__0__Impl rule__ViewContentState__Group_4_1__1
+ {
+ pushFollow(FOLLOW_53);
+ rule__ViewContentState__Group_4_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ViewContentState__Group_4_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentState__Group_4_1__0"
+
+
+ // $ANTLR start "rule__ViewContentState__Group_4_1__0__Impl"
+ // InternalRBAModel.g:10680:1: rule__ViewContentState__Group_4_1__0__Impl : ( ( rule__ViewContentState__Alternatives_4_1_0 ) ) ;
+ public final void rule__ViewContentState__Group_4_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10684:1: ( ( ( rule__ViewContentState__Alternatives_4_1_0 ) ) )
+ // InternalRBAModel.g:10685:1: ( ( rule__ViewContentState__Alternatives_4_1_0 ) )
+ {
+ // InternalRBAModel.g:10685:1: ( ( rule__ViewContentState__Alternatives_4_1_0 ) )
+ // InternalRBAModel.g:10686:2: ( rule__ViewContentState__Alternatives_4_1_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentStateAccess().getAlternatives_4_1_0());
+ }
+ // InternalRBAModel.g:10687:2: ( rule__ViewContentState__Alternatives_4_1_0 )
+ // InternalRBAModel.g:10687:3: rule__ViewContentState__Alternatives_4_1_0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContentState__Alternatives_4_1_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentStateAccess().getAlternatives_4_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentState__Group_4_1__0__Impl"
+
+
+ // $ANTLR start "rule__ViewContentState__Group_4_1__1"
+ // InternalRBAModel.g:10695:1: rule__ViewContentState__Group_4_1__1 : rule__ViewContentState__Group_4_1__1__Impl ;
+ public final void rule__ViewContentState__Group_4_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10699:1: ( rule__ViewContentState__Group_4_1__1__Impl )
+ // InternalRBAModel.g:10700:2: rule__ViewContentState__Group_4_1__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContentState__Group_4_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentState__Group_4_1__1"
+
+
+ // $ANTLR start "rule__ViewContentState__Group_4_1__1__Impl"
+ // InternalRBAModel.g:10706:1: rule__ViewContentState__Group_4_1__1__Impl : ( ( rule__ViewContentState__ValueAssignment_4_1_1 ) ) ;
+ public final void rule__ViewContentState__Group_4_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10710:1: ( ( ( rule__ViewContentState__ValueAssignment_4_1_1 ) ) )
+ // InternalRBAModel.g:10711:1: ( ( rule__ViewContentState__ValueAssignment_4_1_1 ) )
+ {
+ // InternalRBAModel.g:10711:1: ( ( rule__ViewContentState__ValueAssignment_4_1_1 ) )
+ // InternalRBAModel.g:10712:2: ( rule__ViewContentState__ValueAssignment_4_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentStateAccess().getValueAssignment_4_1_1());
+ }
+ // InternalRBAModel.g:10713:2: ( rule__ViewContentState__ValueAssignment_4_1_1 )
+ // InternalRBAModel.g:10713:3: rule__ViewContentState__ValueAssignment_4_1_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContentState__ValueAssignment_4_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentStateAccess().getValueAssignment_4_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentState__Group_4_1__1__Impl"
+
+
+ // $ANTLR start "rule__SoundContentState__Group__0"
+ // InternalRBAModel.g:10722:1: rule__SoundContentState__Group__0 : rule__SoundContentState__Group__0__Impl rule__SoundContentState__Group__1 ;
+ public final void rule__SoundContentState__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10726:1: ( rule__SoundContentState__Group__0__Impl rule__SoundContentState__Group__1 )
+ // InternalRBAModel.g:10727:2: rule__SoundContentState__Group__0__Impl rule__SoundContentState__Group__1
+ {
+ pushFollow(FOLLOW_56);
+ rule__SoundContentState__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__SoundContentState__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentState__Group__0"
+
+
+ // $ANTLR start "rule__SoundContentState__Group__0__Impl"
+ // InternalRBAModel.g:10734:1: rule__SoundContentState__Group__0__Impl : ( () ) ;
+ public final void rule__SoundContentState__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10738:1: ( ( () ) )
+ // InternalRBAModel.g:10739:1: ( () )
+ {
+ // InternalRBAModel.g:10739:1: ( () )
+ // InternalRBAModel.g:10740:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentStateAccess().getSoundContentStateAction_0());
+ }
+ // InternalRBAModel.g:10741:2: ()
+ // InternalRBAModel.g:10741:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentStateAccess().getSoundContentStateAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentState__Group__0__Impl"
+
+
+ // $ANTLR start "rule__SoundContentState__Group__1"
+ // InternalRBAModel.g:10749:1: rule__SoundContentState__Group__1 : rule__SoundContentState__Group__1__Impl rule__SoundContentState__Group__2 ;
+ public final void rule__SoundContentState__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10753:1: ( rule__SoundContentState__Group__1__Impl rule__SoundContentState__Group__2 )
+ // InternalRBAModel.g:10754:2: rule__SoundContentState__Group__1__Impl rule__SoundContentState__Group__2
+ {
+ pushFollow(FOLLOW_7);
+ rule__SoundContentState__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__SoundContentState__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentState__Group__1"
+
+
+ // $ANTLR start "rule__SoundContentState__Group__1__Impl"
+ // InternalRBAModel.g:10761:1: rule__SoundContentState__Group__1__Impl : ( 'State' ) ;
+ public final void rule__SoundContentState__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10765:1: ( ( 'State' ) )
+ // InternalRBAModel.g:10766:1: ( 'State' )
+ {
+ // InternalRBAModel.g:10766:1: ( 'State' )
+ // InternalRBAModel.g:10767:2: 'State'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentStateAccess().getStateKeyword_1());
+ }
+ match(input,131,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentStateAccess().getStateKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentState__Group__1__Impl"
+
+
+ // $ANTLR start "rule__SoundContentState__Group__2"
+ // InternalRBAModel.g:10776:1: rule__SoundContentState__Group__2 : rule__SoundContentState__Group__2__Impl rule__SoundContentState__Group__3 ;
+ public final void rule__SoundContentState__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10780:1: ( rule__SoundContentState__Group__2__Impl rule__SoundContentState__Group__3 )
+ // InternalRBAModel.g:10781:2: rule__SoundContentState__Group__2__Impl rule__SoundContentState__Group__3
+ {
+ pushFollow(FOLLOW_11);
+ rule__SoundContentState__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__SoundContentState__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentState__Group__2"
+
+
+ // $ANTLR start "rule__SoundContentState__Group__2__Impl"
+ // InternalRBAModel.g:10788:1: rule__SoundContentState__Group__2__Impl : ( ( rule__SoundContentState__NameAssignment_2 ) ) ;
+ public final void rule__SoundContentState__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10792:1: ( ( ( rule__SoundContentState__NameAssignment_2 ) ) )
+ // InternalRBAModel.g:10793:1: ( ( rule__SoundContentState__NameAssignment_2 ) )
+ {
+ // InternalRBAModel.g:10793:1: ( ( rule__SoundContentState__NameAssignment_2 ) )
+ // InternalRBAModel.g:10794:2: ( rule__SoundContentState__NameAssignment_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentStateAccess().getNameAssignment_2());
+ }
+ // InternalRBAModel.g:10795:2: ( rule__SoundContentState__NameAssignment_2 )
+ // InternalRBAModel.g:10795:3: rule__SoundContentState__NameAssignment_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContentState__NameAssignment_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentStateAccess().getNameAssignment_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentState__Group__2__Impl"
+
+
+ // $ANTLR start "rule__SoundContentState__Group__3"
+ // InternalRBAModel.g:10803:1: rule__SoundContentState__Group__3 : rule__SoundContentState__Group__3__Impl rule__SoundContentState__Group__4 ;
+ public final void rule__SoundContentState__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10807:1: ( rule__SoundContentState__Group__3__Impl rule__SoundContentState__Group__4 )
+ // InternalRBAModel.g:10808:2: rule__SoundContentState__Group__3__Impl rule__SoundContentState__Group__4
+ {
+ pushFollow(FOLLOW_57);
+ rule__SoundContentState__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__SoundContentState__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentState__Group__3"
+
+
+ // $ANTLR start "rule__SoundContentState__Group__3__Impl"
+ // InternalRBAModel.g:10815:1: rule__SoundContentState__Group__3__Impl : ( '{' ) ;
+ public final void rule__SoundContentState__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10819:1: ( ( '{' ) )
+ // InternalRBAModel.g:10820:1: ( '{' )
+ {
+ // InternalRBAModel.g:10820:1: ( '{' )
+ // InternalRBAModel.g:10821:2: '{'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentStateAccess().getLeftCurlyBracketKeyword_3());
+ }
+ match(input,101,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentStateAccess().getLeftCurlyBracketKeyword_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentState__Group__3__Impl"
+
+
+ // $ANTLR start "rule__SoundContentState__Group__4"
+ // InternalRBAModel.g:10830:1: rule__SoundContentState__Group__4 : rule__SoundContentState__Group__4__Impl rule__SoundContentState__Group__5 ;
+ public final void rule__SoundContentState__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10834:1: ( rule__SoundContentState__Group__4__Impl rule__SoundContentState__Group__5 )
+ // InternalRBAModel.g:10835:2: rule__SoundContentState__Group__4__Impl rule__SoundContentState__Group__5
+ {
+ pushFollow(FOLLOW_22);
+ rule__SoundContentState__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__SoundContentState__Group__5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentState__Group__4"
+
+
+ // $ANTLR start "rule__SoundContentState__Group__4__Impl"
+ // InternalRBAModel.g:10842:1: rule__SoundContentState__Group__4__Impl : ( ( rule__SoundContentState__UnorderedGroup_4 ) ) ;
+ public final void rule__SoundContentState__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10846:1: ( ( ( rule__SoundContentState__UnorderedGroup_4 ) ) )
+ // InternalRBAModel.g:10847:1: ( ( rule__SoundContentState__UnorderedGroup_4 ) )
+ {
+ // InternalRBAModel.g:10847:1: ( ( rule__SoundContentState__UnorderedGroup_4 ) )
+ // InternalRBAModel.g:10848:2: ( rule__SoundContentState__UnorderedGroup_4 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4());
+ }
+ // InternalRBAModel.g:10849:2: ( rule__SoundContentState__UnorderedGroup_4 )
+ // InternalRBAModel.g:10849:3: rule__SoundContentState__UnorderedGroup_4
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContentState__UnorderedGroup_4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentState__Group__4__Impl"
+
+
+ // $ANTLR start "rule__SoundContentState__Group__5"
+ // InternalRBAModel.g:10857:1: rule__SoundContentState__Group__5 : rule__SoundContentState__Group__5__Impl ;
+ public final void rule__SoundContentState__Group__5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10861:1: ( rule__SoundContentState__Group__5__Impl )
+ // InternalRBAModel.g:10862:2: rule__SoundContentState__Group__5__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContentState__Group__5__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentState__Group__5"
+
+
+ // $ANTLR start "rule__SoundContentState__Group__5__Impl"
+ // InternalRBAModel.g:10868:1: rule__SoundContentState__Group__5__Impl : ( '}' ) ;
+ public final void rule__SoundContentState__Group__5__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10872:1: ( ( '}' ) )
+ // InternalRBAModel.g:10873:1: ( '}' )
+ {
+ // InternalRBAModel.g:10873:1: ( '}' )
+ // InternalRBAModel.g:10874:2: '}'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentStateAccess().getRightCurlyBracketKeyword_5());
+ }
+ match(input,102,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentStateAccess().getRightCurlyBracketKeyword_5());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentState__Group__5__Impl"
+
+
+ // $ANTLR start "rule__SoundContentState__Group_4_0__0"
+ // InternalRBAModel.g:10884:1: rule__SoundContentState__Group_4_0__0 : rule__SoundContentState__Group_4_0__0__Impl rule__SoundContentState__Group_4_0__1 ;
+ public final void rule__SoundContentState__Group_4_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10888:1: ( rule__SoundContentState__Group_4_0__0__Impl rule__SoundContentState__Group_4_0__1 )
+ // InternalRBAModel.g:10889:2: rule__SoundContentState__Group_4_0__0__Impl rule__SoundContentState__Group_4_0__1
+ {
+ pushFollow(FOLLOW_19);
+ rule__SoundContentState__Group_4_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__SoundContentState__Group_4_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentState__Group_4_0__0"
+
+
+ // $ANTLR start "rule__SoundContentState__Group_4_0__0__Impl"
+ // InternalRBAModel.g:10896:1: rule__SoundContentState__Group_4_0__0__Impl : ( 'description:' ) ;
+ public final void rule__SoundContentState__Group_4_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10900:1: ( ( 'description:' ) )
+ // InternalRBAModel.g:10901:1: ( 'description:' )
+ {
+ // InternalRBAModel.g:10901:1: ( 'description:' )
+ // InternalRBAModel.g:10902:2: 'description:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentStateAccess().getDescriptionKeyword_4_0_0());
+ }
+ match(input,105,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentStateAccess().getDescriptionKeyword_4_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentState__Group_4_0__0__Impl"
+
+
+ // $ANTLR start "rule__SoundContentState__Group_4_0__1"
+ // InternalRBAModel.g:10911:1: rule__SoundContentState__Group_4_0__1 : rule__SoundContentState__Group_4_0__1__Impl ;
+ public final void rule__SoundContentState__Group_4_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10915:1: ( rule__SoundContentState__Group_4_0__1__Impl )
+ // InternalRBAModel.g:10916:2: rule__SoundContentState__Group_4_0__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContentState__Group_4_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentState__Group_4_0__1"
+
+
+ // $ANTLR start "rule__SoundContentState__Group_4_0__1__Impl"
+ // InternalRBAModel.g:10922:1: rule__SoundContentState__Group_4_0__1__Impl : ( ( rule__SoundContentState__DescriptionAssignment_4_0_1 ) ) ;
+ public final void rule__SoundContentState__Group_4_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10926:1: ( ( ( rule__SoundContentState__DescriptionAssignment_4_0_1 ) ) )
+ // InternalRBAModel.g:10927:1: ( ( rule__SoundContentState__DescriptionAssignment_4_0_1 ) )
+ {
+ // InternalRBAModel.g:10927:1: ( ( rule__SoundContentState__DescriptionAssignment_4_0_1 ) )
+ // InternalRBAModel.g:10928:2: ( rule__SoundContentState__DescriptionAssignment_4_0_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentStateAccess().getDescriptionAssignment_4_0_1());
+ }
+ // InternalRBAModel.g:10929:2: ( rule__SoundContentState__DescriptionAssignment_4_0_1 )
+ // InternalRBAModel.g:10929:3: rule__SoundContentState__DescriptionAssignment_4_0_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContentState__DescriptionAssignment_4_0_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentStateAccess().getDescriptionAssignment_4_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentState__Group_4_0__1__Impl"
+
+
+ // $ANTLR start "rule__SoundContentState__Group_4_1__0"
+ // InternalRBAModel.g:10938:1: rule__SoundContentState__Group_4_1__0 : rule__SoundContentState__Group_4_1__0__Impl rule__SoundContentState__Group_4_1__1 ;
+ public final void rule__SoundContentState__Group_4_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10942:1: ( rule__SoundContentState__Group_4_1__0__Impl rule__SoundContentState__Group_4_1__1 )
+ // InternalRBAModel.g:10943:2: rule__SoundContentState__Group_4_1__0__Impl rule__SoundContentState__Group_4_1__1
+ {
+ pushFollow(FOLLOW_53);
+ rule__SoundContentState__Group_4_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__SoundContentState__Group_4_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentState__Group_4_1__0"
+
+
+ // $ANTLR start "rule__SoundContentState__Group_4_1__0__Impl"
+ // InternalRBAModel.g:10950:1: rule__SoundContentState__Group_4_1__0__Impl : ( ( rule__SoundContentState__Alternatives_4_1_0 ) ) ;
+ public final void rule__SoundContentState__Group_4_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10954:1: ( ( ( rule__SoundContentState__Alternatives_4_1_0 ) ) )
+ // InternalRBAModel.g:10955:1: ( ( rule__SoundContentState__Alternatives_4_1_0 ) )
+ {
+ // InternalRBAModel.g:10955:1: ( ( rule__SoundContentState__Alternatives_4_1_0 ) )
+ // InternalRBAModel.g:10956:2: ( rule__SoundContentState__Alternatives_4_1_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentStateAccess().getAlternatives_4_1_0());
+ }
+ // InternalRBAModel.g:10957:2: ( rule__SoundContentState__Alternatives_4_1_0 )
+ // InternalRBAModel.g:10957:3: rule__SoundContentState__Alternatives_4_1_0
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContentState__Alternatives_4_1_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentStateAccess().getAlternatives_4_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentState__Group_4_1__0__Impl"
+
+
+ // $ANTLR start "rule__SoundContentState__Group_4_1__1"
+ // InternalRBAModel.g:10965:1: rule__SoundContentState__Group_4_1__1 : rule__SoundContentState__Group_4_1__1__Impl ;
+ public final void rule__SoundContentState__Group_4_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10969:1: ( rule__SoundContentState__Group_4_1__1__Impl )
+ // InternalRBAModel.g:10970:2: rule__SoundContentState__Group_4_1__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContentState__Group_4_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentState__Group_4_1__1"
+
+
+ // $ANTLR start "rule__SoundContentState__Group_4_1__1__Impl"
+ // InternalRBAModel.g:10976:1: rule__SoundContentState__Group_4_1__1__Impl : ( ( rule__SoundContentState__ValueAssignment_4_1_1 ) ) ;
+ public final void rule__SoundContentState__Group_4_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10980:1: ( ( ( rule__SoundContentState__ValueAssignment_4_1_1 ) ) )
+ // InternalRBAModel.g:10981:1: ( ( rule__SoundContentState__ValueAssignment_4_1_1 ) )
+ {
+ // InternalRBAModel.g:10981:1: ( ( rule__SoundContentState__ValueAssignment_4_1_1 ) )
+ // InternalRBAModel.g:10982:2: ( rule__SoundContentState__ValueAssignment_4_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentStateAccess().getValueAssignment_4_1_1());
+ }
+ // InternalRBAModel.g:10983:2: ( rule__SoundContentState__ValueAssignment_4_1_1 )
+ // InternalRBAModel.g:10983:3: rule__SoundContentState__ValueAssignment_4_1_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContentState__ValueAssignment_4_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentStateAccess().getValueAssignment_4_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentState__Group_4_1__1__Impl"
+
+
+ // $ANTLR start "rule__Project__Group__0"
+ // InternalRBAModel.g:10992:1: rule__Project__Group__0 : rule__Project__Group__0__Impl rule__Project__Group__1 ;
+ public final void rule__Project__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:10996:1: ( rule__Project__Group__0__Impl rule__Project__Group__1 )
+ // InternalRBAModel.g:10997:2: rule__Project__Group__0__Impl rule__Project__Group__1
+ {
+ pushFollow(FOLLOW_58);
+ rule__Project__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Project__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Project__Group__0"
+
+
+ // $ANTLR start "rule__Project__Group__0__Impl"
+ // InternalRBAModel.g:11004:1: rule__Project__Group__0__Impl : ( () ) ;
+ public final void rule__Project__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11008:1: ( ( () ) )
+ // InternalRBAModel.g:11009:1: ( () )
+ {
+ // InternalRBAModel.g:11009:1: ( () )
+ // InternalRBAModel.g:11010:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getProjectAccess().getProjectAction_0());
+ }
+ // InternalRBAModel.g:11011:2: ()
+ // InternalRBAModel.g:11011:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getProjectAccess().getProjectAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Project__Group__0__Impl"
+
+
+ // $ANTLR start "rule__Project__Group__1"
+ // InternalRBAModel.g:11019:1: rule__Project__Group__1 : rule__Project__Group__1__Impl rule__Project__Group__2 ;
+ public final void rule__Project__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11023:1: ( rule__Project__Group__1__Impl rule__Project__Group__2 )
+ // InternalRBAModel.g:11024:2: rule__Project__Group__1__Impl rule__Project__Group__2
+ {
+ pushFollow(FOLLOW_59);
+ rule__Project__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Project__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Project__Group__1"
+
+
+ // $ANTLR start "rule__Project__Group__1__Impl"
+ // InternalRBAModel.g:11031:1: rule__Project__Group__1__Impl : ( 'Project' ) ;
+ public final void rule__Project__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11035:1: ( ( 'Project' ) )
+ // InternalRBAModel.g:11036:1: ( 'Project' )
+ {
+ // InternalRBAModel.g:11036:1: ( 'Project' )
+ // InternalRBAModel.g:11037:2: 'Project'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getProjectAccess().getProjectKeyword_1());
+ }
+ match(input,132,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getProjectAccess().getProjectKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Project__Group__1__Impl"
+
+
+ // $ANTLR start "rule__Project__Group__2"
+ // InternalRBAModel.g:11046:1: rule__Project__Group__2 : rule__Project__Group__2__Impl rule__Project__Group__3 ;
+ public final void rule__Project__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11050:1: ( rule__Project__Group__2__Impl rule__Project__Group__3 )
+ // InternalRBAModel.g:11051:2: rule__Project__Group__2__Impl rule__Project__Group__3
+ {
+ pushFollow(FOLLOW_59);
+ rule__Project__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Project__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Project__Group__2"
+
+
+ // $ANTLR start "rule__Project__Group__2__Impl"
+ // InternalRBAModel.g:11058:1: rule__Project__Group__2__Impl : ( ( rule__Project__DummyNameAssignment_2 )? ) ;
+ public final void rule__Project__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11062:1: ( ( ( rule__Project__DummyNameAssignment_2 )? ) )
+ // InternalRBAModel.g:11063:1: ( ( rule__Project__DummyNameAssignment_2 )? )
+ {
+ // InternalRBAModel.g:11063:1: ( ( rule__Project__DummyNameAssignment_2 )? )
+ // InternalRBAModel.g:11064:2: ( rule__Project__DummyNameAssignment_2 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getProjectAccess().getDummyNameAssignment_2());
+ }
+ // InternalRBAModel.g:11065:2: ( rule__Project__DummyNameAssignment_2 )?
+ int alt55=2;
+ int LA55_0 = input.LA(1);
+
+ if ( (LA55_0==RULE_ID) ) {
+ alt55=1;
+ }
+ switch (alt55) {
+ case 1 :
+ // InternalRBAModel.g:11065:3: rule__Project__DummyNameAssignment_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__Project__DummyNameAssignment_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getProjectAccess().getDummyNameAssignment_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Project__Group__2__Impl"
+
+
+ // $ANTLR start "rule__Project__Group__3"
+ // InternalRBAModel.g:11073:1: rule__Project__Group__3 : rule__Project__Group__3__Impl rule__Project__Group__4 ;
+ public final void rule__Project__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11077:1: ( rule__Project__Group__3__Impl rule__Project__Group__4 )
+ // InternalRBAModel.g:11078:2: rule__Project__Group__3__Impl rule__Project__Group__4
+ {
+ pushFollow(FOLLOW_60);
+ rule__Project__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Project__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Project__Group__3"
+
+
+ // $ANTLR start "rule__Project__Group__3__Impl"
+ // InternalRBAModel.g:11085:1: rule__Project__Group__3__Impl : ( '{' ) ;
+ public final void rule__Project__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11089:1: ( ( '{' ) )
+ // InternalRBAModel.g:11090:1: ( '{' )
+ {
+ // InternalRBAModel.g:11090:1: ( '{' )
+ // InternalRBAModel.g:11091:2: '{'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getProjectAccess().getLeftCurlyBracketKeyword_3());
+ }
+ match(input,101,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getProjectAccess().getLeftCurlyBracketKeyword_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Project__Group__3__Impl"
+
+
+ // $ANTLR start "rule__Project__Group__4"
+ // InternalRBAModel.g:11100:1: rule__Project__Group__4 : rule__Project__Group__4__Impl rule__Project__Group__5 ;
+ public final void rule__Project__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11104:1: ( rule__Project__Group__4__Impl rule__Project__Group__5 )
+ // InternalRBAModel.g:11105:2: rule__Project__Group__4__Impl rule__Project__Group__5
+ {
+ pushFollow(FOLLOW_19);
+ rule__Project__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Project__Group__5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Project__Group__4"
+
+
+ // $ANTLR start "rule__Project__Group__4__Impl"
+ // InternalRBAModel.g:11112:1: rule__Project__Group__4__Impl : ( 'version:' ) ;
+ public final void rule__Project__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11116:1: ( ( 'version:' ) )
+ // InternalRBAModel.g:11117:1: ( 'version:' )
+ {
+ // InternalRBAModel.g:11117:1: ( 'version:' )
+ // InternalRBAModel.g:11118:2: 'version:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getProjectAccess().getVersionKeyword_4());
+ }
+ match(input,133,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getProjectAccess().getVersionKeyword_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Project__Group__4__Impl"
+
+
+ // $ANTLR start "rule__Project__Group__5"
+ // InternalRBAModel.g:11127:1: rule__Project__Group__5 : rule__Project__Group__5__Impl rule__Project__Group__6 ;
+ public final void rule__Project__Group__5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11131:1: ( rule__Project__Group__5__Impl rule__Project__Group__6 )
+ // InternalRBAModel.g:11132:2: rule__Project__Group__5__Impl rule__Project__Group__6
+ {
+ pushFollow(FOLLOW_22);
+ rule__Project__Group__5__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Project__Group__6();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Project__Group__5"
+
+
+ // $ANTLR start "rule__Project__Group__5__Impl"
+ // InternalRBAModel.g:11139:1: rule__Project__Group__5__Impl : ( ( rule__Project__VersionAssignment_5 ) ) ;
+ public final void rule__Project__Group__5__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11143:1: ( ( ( rule__Project__VersionAssignment_5 ) ) )
+ // InternalRBAModel.g:11144:1: ( ( rule__Project__VersionAssignment_5 ) )
+ {
+ // InternalRBAModel.g:11144:1: ( ( rule__Project__VersionAssignment_5 ) )
+ // InternalRBAModel.g:11145:2: ( rule__Project__VersionAssignment_5 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getProjectAccess().getVersionAssignment_5());
+ }
+ // InternalRBAModel.g:11146:2: ( rule__Project__VersionAssignment_5 )
+ // InternalRBAModel.g:11146:3: rule__Project__VersionAssignment_5
+ {
+ pushFollow(FOLLOW_2);
+ rule__Project__VersionAssignment_5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getProjectAccess().getVersionAssignment_5());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Project__Group__5__Impl"
+
+
+ // $ANTLR start "rule__Project__Group__6"
+ // InternalRBAModel.g:11154:1: rule__Project__Group__6 : rule__Project__Group__6__Impl ;
+ public final void rule__Project__Group__6() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11158:1: ( rule__Project__Group__6__Impl )
+ // InternalRBAModel.g:11159:2: rule__Project__Group__6__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Project__Group__6__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Project__Group__6"
+
+
+ // $ANTLR start "rule__Project__Group__6__Impl"
+ // InternalRBAModel.g:11165:1: rule__Project__Group__6__Impl : ( '}' ) ;
+ public final void rule__Project__Group__6__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11169:1: ( ( '}' ) )
+ // InternalRBAModel.g:11170:1: ( '}' )
+ {
+ // InternalRBAModel.g:11170:1: ( '}' )
+ // InternalRBAModel.g:11171:2: '}'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getProjectAccess().getRightCurlyBracketKeyword_6());
+ }
+ match(input,102,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getProjectAccess().getRightCurlyBracketKeyword_6());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Project__Group__6__Impl"
+
+
+ // $ANTLR start "rule__VPlusOperator__Group__0"
+ // InternalRBAModel.g:11181:1: rule__VPlusOperator__Group__0 : rule__VPlusOperator__Group__0__Impl rule__VPlusOperator__Group__1 ;
+ public final void rule__VPlusOperator__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11185:1: ( rule__VPlusOperator__Group__0__Impl rule__VPlusOperator__Group__1 )
+ // InternalRBAModel.g:11186:2: rule__VPlusOperator__Group__0__Impl rule__VPlusOperator__Group__1
+ {
+ pushFollow(FOLLOW_61);
+ rule__VPlusOperator__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__VPlusOperator__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VPlusOperator__Group__0"
+
+
+ // $ANTLR start "rule__VPlusOperator__Group__0__Impl"
+ // InternalRBAModel.g:11193:1: rule__VPlusOperator__Group__0__Impl : ( ruleVComparisonAnd ) ;
+ public final void rule__VPlusOperator__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11197:1: ( ( ruleVComparisonAnd ) )
+ // InternalRBAModel.g:11198:1: ( ruleVComparisonAnd )
+ {
+ // InternalRBAModel.g:11198:1: ( ruleVComparisonAnd )
+ // InternalRBAModel.g:11199:2: ruleVComparisonAnd
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVPlusOperatorAccess().getVComparisonAndParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleVComparisonAnd();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVPlusOperatorAccess().getVComparisonAndParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VPlusOperator__Group__0__Impl"
+
+
+ // $ANTLR start "rule__VPlusOperator__Group__1"
+ // InternalRBAModel.g:11208:1: rule__VPlusOperator__Group__1 : rule__VPlusOperator__Group__1__Impl ;
+ public final void rule__VPlusOperator__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11212:1: ( rule__VPlusOperator__Group__1__Impl )
+ // InternalRBAModel.g:11213:2: rule__VPlusOperator__Group__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__VPlusOperator__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VPlusOperator__Group__1"
+
+
+ // $ANTLR start "rule__VPlusOperator__Group__1__Impl"
+ // InternalRBAModel.g:11219:1: rule__VPlusOperator__Group__1__Impl : ( ( rule__VPlusOperator__Group_1__0 )* ) ;
+ public final void rule__VPlusOperator__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11223:1: ( ( ( rule__VPlusOperator__Group_1__0 )* ) )
+ // InternalRBAModel.g:11224:1: ( ( rule__VPlusOperator__Group_1__0 )* )
+ {
+ // InternalRBAModel.g:11224:1: ( ( rule__VPlusOperator__Group_1__0 )* )
+ // InternalRBAModel.g:11225:2: ( rule__VPlusOperator__Group_1__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVPlusOperatorAccess().getGroup_1());
+ }
+ // InternalRBAModel.g:11226:2: ( rule__VPlusOperator__Group_1__0 )*
+ loop56:
+ do {
+ int alt56=2;
+ int LA56_0 = input.LA(1);
+
+ if ( (LA56_0==18) ) {
+ alt56=1;
+ }
+
+
+ switch (alt56) {
+ case 1 :
+ // InternalRBAModel.g:11226:3: rule__VPlusOperator__Group_1__0
+ {
+ pushFollow(FOLLOW_62);
+ rule__VPlusOperator__Group_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop56;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVPlusOperatorAccess().getGroup_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VPlusOperator__Group__1__Impl"
+
+
+ // $ANTLR start "rule__VPlusOperator__Group_1__0"
+ // InternalRBAModel.g:11235:1: rule__VPlusOperator__Group_1__0 : rule__VPlusOperator__Group_1__0__Impl rule__VPlusOperator__Group_1__1 ;
+ public final void rule__VPlusOperator__Group_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11239:1: ( rule__VPlusOperator__Group_1__0__Impl rule__VPlusOperator__Group_1__1 )
+ // InternalRBAModel.g:11240:2: rule__VPlusOperator__Group_1__0__Impl rule__VPlusOperator__Group_1__1
+ {
+ pushFollow(FOLLOW_53);
+ rule__VPlusOperator__Group_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__VPlusOperator__Group_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VPlusOperator__Group_1__0"
+
+
+ // $ANTLR start "rule__VPlusOperator__Group_1__0__Impl"
+ // InternalRBAModel.g:11247:1: rule__VPlusOperator__Group_1__0__Impl : ( ( rule__VPlusOperator__Group_1_0__0 ) ) ;
+ public final void rule__VPlusOperator__Group_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11251:1: ( ( ( rule__VPlusOperator__Group_1_0__0 ) ) )
+ // InternalRBAModel.g:11252:1: ( ( rule__VPlusOperator__Group_1_0__0 ) )
+ {
+ // InternalRBAModel.g:11252:1: ( ( rule__VPlusOperator__Group_1_0__0 ) )
+ // InternalRBAModel.g:11253:2: ( rule__VPlusOperator__Group_1_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVPlusOperatorAccess().getGroup_1_0());
+ }
+ // InternalRBAModel.g:11254:2: ( rule__VPlusOperator__Group_1_0__0 )
+ // InternalRBAModel.g:11254:3: rule__VPlusOperator__Group_1_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__VPlusOperator__Group_1_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVPlusOperatorAccess().getGroup_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VPlusOperator__Group_1__0__Impl"
+
+
+ // $ANTLR start "rule__VPlusOperator__Group_1__1"
+ // InternalRBAModel.g:11262:1: rule__VPlusOperator__Group_1__1 : rule__VPlusOperator__Group_1__1__Impl ;
+ public final void rule__VPlusOperator__Group_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11266:1: ( rule__VPlusOperator__Group_1__1__Impl )
+ // InternalRBAModel.g:11267:2: rule__VPlusOperator__Group_1__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__VPlusOperator__Group_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VPlusOperator__Group_1__1"
+
+
+ // $ANTLR start "rule__VPlusOperator__Group_1__1__Impl"
+ // InternalRBAModel.g:11273:1: rule__VPlusOperator__Group_1__1__Impl : ( ( rule__VPlusOperator__OperandAssignment_1_1 ) ) ;
+ public final void rule__VPlusOperator__Group_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11277:1: ( ( ( rule__VPlusOperator__OperandAssignment_1_1 ) ) )
+ // InternalRBAModel.g:11278:1: ( ( rule__VPlusOperator__OperandAssignment_1_1 ) )
+ {
+ // InternalRBAModel.g:11278:1: ( ( rule__VPlusOperator__OperandAssignment_1_1 ) )
+ // InternalRBAModel.g:11279:2: ( rule__VPlusOperator__OperandAssignment_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVPlusOperatorAccess().getOperandAssignment_1_1());
+ }
+ // InternalRBAModel.g:11280:2: ( rule__VPlusOperator__OperandAssignment_1_1 )
+ // InternalRBAModel.g:11280:3: rule__VPlusOperator__OperandAssignment_1_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__VPlusOperator__OperandAssignment_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVPlusOperatorAccess().getOperandAssignment_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VPlusOperator__Group_1__1__Impl"
+
+
+ // $ANTLR start "rule__VPlusOperator__Group_1_0__0"
+ // InternalRBAModel.g:11289:1: rule__VPlusOperator__Group_1_0__0 : rule__VPlusOperator__Group_1_0__0__Impl ;
+ public final void rule__VPlusOperator__Group_1_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11293:1: ( rule__VPlusOperator__Group_1_0__0__Impl )
+ // InternalRBAModel.g:11294:2: rule__VPlusOperator__Group_1_0__0__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__VPlusOperator__Group_1_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VPlusOperator__Group_1_0__0"
+
+
+ // $ANTLR start "rule__VPlusOperator__Group_1_0__0__Impl"
+ // InternalRBAModel.g:11300:1: rule__VPlusOperator__Group_1_0__0__Impl : ( ( rule__VPlusOperator__Group_1_0_0__0 ) ) ;
+ public final void rule__VPlusOperator__Group_1_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11304:1: ( ( ( rule__VPlusOperator__Group_1_0_0__0 ) ) )
+ // InternalRBAModel.g:11305:1: ( ( rule__VPlusOperator__Group_1_0_0__0 ) )
+ {
+ // InternalRBAModel.g:11305:1: ( ( rule__VPlusOperator__Group_1_0_0__0 ) )
+ // InternalRBAModel.g:11306:2: ( rule__VPlusOperator__Group_1_0_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVPlusOperatorAccess().getGroup_1_0_0());
+ }
+ // InternalRBAModel.g:11307:2: ( rule__VPlusOperator__Group_1_0_0__0 )
+ // InternalRBAModel.g:11307:3: rule__VPlusOperator__Group_1_0_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__VPlusOperator__Group_1_0_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVPlusOperatorAccess().getGroup_1_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VPlusOperator__Group_1_0__0__Impl"
+
+
+ // $ANTLR start "rule__VPlusOperator__Group_1_0_0__0"
+ // InternalRBAModel.g:11316:1: rule__VPlusOperator__Group_1_0_0__0 : rule__VPlusOperator__Group_1_0_0__0__Impl rule__VPlusOperator__Group_1_0_0__1 ;
+ public final void rule__VPlusOperator__Group_1_0_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11320:1: ( rule__VPlusOperator__Group_1_0_0__0__Impl rule__VPlusOperator__Group_1_0_0__1 )
+ // InternalRBAModel.g:11321:2: rule__VPlusOperator__Group_1_0_0__0__Impl rule__VPlusOperator__Group_1_0_0__1
+ {
+ pushFollow(FOLLOW_61);
+ rule__VPlusOperator__Group_1_0_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__VPlusOperator__Group_1_0_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VPlusOperator__Group_1_0_0__0"
+
+
+ // $ANTLR start "rule__VPlusOperator__Group_1_0_0__0__Impl"
+ // InternalRBAModel.g:11328:1: rule__VPlusOperator__Group_1_0_0__0__Impl : ( () ) ;
+ public final void rule__VPlusOperator__Group_1_0_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11332:1: ( ( () ) )
+ // InternalRBAModel.g:11333:1: ( () )
+ {
+ // InternalRBAModel.g:11333:1: ( () )
+ // InternalRBAModel.g:11334:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVPlusOperatorAccess().getPlusOperatorOperandAction_1_0_0_0());
+ }
+ // InternalRBAModel.g:11335:2: ()
+ // InternalRBAModel.g:11335:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVPlusOperatorAccess().getPlusOperatorOperandAction_1_0_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VPlusOperator__Group_1_0_0__0__Impl"
+
+
+ // $ANTLR start "rule__VPlusOperator__Group_1_0_0__1"
+ // InternalRBAModel.g:11343:1: rule__VPlusOperator__Group_1_0_0__1 : rule__VPlusOperator__Group_1_0_0__1__Impl ;
+ public final void rule__VPlusOperator__Group_1_0_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11347:1: ( rule__VPlusOperator__Group_1_0_0__1__Impl )
+ // InternalRBAModel.g:11348:2: rule__VPlusOperator__Group_1_0_0__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__VPlusOperator__Group_1_0_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VPlusOperator__Group_1_0_0__1"
+
+
+ // $ANTLR start "rule__VPlusOperator__Group_1_0_0__1__Impl"
+ // InternalRBAModel.g:11354:1: rule__VPlusOperator__Group_1_0_0__1__Impl : ( ruleOpPlus ) ;
+ public final void rule__VPlusOperator__Group_1_0_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11358:1: ( ( ruleOpPlus ) )
+ // InternalRBAModel.g:11359:1: ( ruleOpPlus )
+ {
+ // InternalRBAModel.g:11359:1: ( ruleOpPlus )
+ // InternalRBAModel.g:11360:2: ruleOpPlus
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVPlusOperatorAccess().getOpPlusParserRuleCall_1_0_0_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpPlus();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVPlusOperatorAccess().getOpPlusParserRuleCall_1_0_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VPlusOperator__Group_1_0_0__1__Impl"
+
+
+ // $ANTLR start "rule__VComparisonAnd__Group__0"
+ // InternalRBAModel.g:11370:1: rule__VComparisonAnd__Group__0 : rule__VComparisonAnd__Group__0__Impl rule__VComparisonAnd__Group__1 ;
+ public final void rule__VComparisonAnd__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11374:1: ( rule__VComparisonAnd__Group__0__Impl rule__VComparisonAnd__Group__1 )
+ // InternalRBAModel.g:11375:2: rule__VComparisonAnd__Group__0__Impl rule__VComparisonAnd__Group__1
+ {
+ pushFollow(FOLLOW_63);
+ rule__VComparisonAnd__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__VComparisonAnd__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VComparisonAnd__Group__0"
+
+
+ // $ANTLR start "rule__VComparisonAnd__Group__0__Impl"
+ // InternalRBAModel.g:11382:1: rule__VComparisonAnd__Group__0__Impl : ( ruleVRelationalExpression ) ;
+ public final void rule__VComparisonAnd__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11386:1: ( ( ruleVRelationalExpression ) )
+ // InternalRBAModel.g:11387:1: ( ruleVRelationalExpression )
+ {
+ // InternalRBAModel.g:11387:1: ( ruleVRelationalExpression )
+ // InternalRBAModel.g:11388:2: ruleVRelationalExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVComparisonAndAccess().getVRelationalExpressionParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleVRelationalExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVComparisonAndAccess().getVRelationalExpressionParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VComparisonAnd__Group__0__Impl"
+
+
+ // $ANTLR start "rule__VComparisonAnd__Group__1"
+ // InternalRBAModel.g:11397:1: rule__VComparisonAnd__Group__1 : rule__VComparisonAnd__Group__1__Impl ;
+ public final void rule__VComparisonAnd__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11401:1: ( rule__VComparisonAnd__Group__1__Impl )
+ // InternalRBAModel.g:11402:2: rule__VComparisonAnd__Group__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__VComparisonAnd__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VComparisonAnd__Group__1"
+
+
+ // $ANTLR start "rule__VComparisonAnd__Group__1__Impl"
+ // InternalRBAModel.g:11408:1: rule__VComparisonAnd__Group__1__Impl : ( ( rule__VComparisonAnd__Group_1__0 )* ) ;
+ public final void rule__VComparisonAnd__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11412:1: ( ( ( rule__VComparisonAnd__Group_1__0 )* ) )
+ // InternalRBAModel.g:11413:1: ( ( rule__VComparisonAnd__Group_1__0 )* )
+ {
+ // InternalRBAModel.g:11413:1: ( ( rule__VComparisonAnd__Group_1__0 )* )
+ // InternalRBAModel.g:11414:2: ( rule__VComparisonAnd__Group_1__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVComparisonAndAccess().getGroup_1());
+ }
+ // InternalRBAModel.g:11415:2: ( rule__VComparisonAnd__Group_1__0 )*
+ loop57:
+ do {
+ int alt57=2;
+ int LA57_0 = input.LA(1);
+
+ if ( (LA57_0==25) ) {
+ alt57=1;
+ }
+
+
+ switch (alt57) {
+ case 1 :
+ // InternalRBAModel.g:11415:3: rule__VComparisonAnd__Group_1__0
+ {
+ pushFollow(FOLLOW_64);
+ rule__VComparisonAnd__Group_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop57;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVComparisonAndAccess().getGroup_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VComparisonAnd__Group__1__Impl"
+
+
+ // $ANTLR start "rule__VComparisonAnd__Group_1__0"
+ // InternalRBAModel.g:11424:1: rule__VComparisonAnd__Group_1__0 : rule__VComparisonAnd__Group_1__0__Impl rule__VComparisonAnd__Group_1__1 ;
+ public final void rule__VComparisonAnd__Group_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11428:1: ( rule__VComparisonAnd__Group_1__0__Impl rule__VComparisonAnd__Group_1__1 )
+ // InternalRBAModel.g:11429:2: rule__VComparisonAnd__Group_1__0__Impl rule__VComparisonAnd__Group_1__1
+ {
+ pushFollow(FOLLOW_53);
+ rule__VComparisonAnd__Group_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__VComparisonAnd__Group_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VComparisonAnd__Group_1__0"
+
+
+ // $ANTLR start "rule__VComparisonAnd__Group_1__0__Impl"
+ // InternalRBAModel.g:11436:1: rule__VComparisonAnd__Group_1__0__Impl : ( ( rule__VComparisonAnd__Group_1_0__0 ) ) ;
+ public final void rule__VComparisonAnd__Group_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11440:1: ( ( ( rule__VComparisonAnd__Group_1_0__0 ) ) )
+ // InternalRBAModel.g:11441:1: ( ( rule__VComparisonAnd__Group_1_0__0 ) )
+ {
+ // InternalRBAModel.g:11441:1: ( ( rule__VComparisonAnd__Group_1_0__0 ) )
+ // InternalRBAModel.g:11442:2: ( rule__VComparisonAnd__Group_1_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVComparisonAndAccess().getGroup_1_0());
+ }
+ // InternalRBAModel.g:11443:2: ( rule__VComparisonAnd__Group_1_0__0 )
+ // InternalRBAModel.g:11443:3: rule__VComparisonAnd__Group_1_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__VComparisonAnd__Group_1_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVComparisonAndAccess().getGroup_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VComparisonAnd__Group_1__0__Impl"
+
+
+ // $ANTLR start "rule__VComparisonAnd__Group_1__1"
+ // InternalRBAModel.g:11451:1: rule__VComparisonAnd__Group_1__1 : rule__VComparisonAnd__Group_1__1__Impl ;
+ public final void rule__VComparisonAnd__Group_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11455:1: ( rule__VComparisonAnd__Group_1__1__Impl )
+ // InternalRBAModel.g:11456:2: rule__VComparisonAnd__Group_1__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__VComparisonAnd__Group_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VComparisonAnd__Group_1__1"
+
+
+ // $ANTLR start "rule__VComparisonAnd__Group_1__1__Impl"
+ // InternalRBAModel.g:11462:1: rule__VComparisonAnd__Group_1__1__Impl : ( ( rule__VComparisonAnd__OperandAssignment_1_1 ) ) ;
+ public final void rule__VComparisonAnd__Group_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11466:1: ( ( ( rule__VComparisonAnd__OperandAssignment_1_1 ) ) )
+ // InternalRBAModel.g:11467:1: ( ( rule__VComparisonAnd__OperandAssignment_1_1 ) )
+ {
+ // InternalRBAModel.g:11467:1: ( ( rule__VComparisonAnd__OperandAssignment_1_1 ) )
+ // InternalRBAModel.g:11468:2: ( rule__VComparisonAnd__OperandAssignment_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVComparisonAndAccess().getOperandAssignment_1_1());
+ }
+ // InternalRBAModel.g:11469:2: ( rule__VComparisonAnd__OperandAssignment_1_1 )
+ // InternalRBAModel.g:11469:3: rule__VComparisonAnd__OperandAssignment_1_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__VComparisonAnd__OperandAssignment_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVComparisonAndAccess().getOperandAssignment_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VComparisonAnd__Group_1__1__Impl"
+
+
+ // $ANTLR start "rule__VComparisonAnd__Group_1_0__0"
+ // InternalRBAModel.g:11478:1: rule__VComparisonAnd__Group_1_0__0 : rule__VComparisonAnd__Group_1_0__0__Impl ;
+ public final void rule__VComparisonAnd__Group_1_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11482:1: ( rule__VComparisonAnd__Group_1_0__0__Impl )
+ // InternalRBAModel.g:11483:2: rule__VComparisonAnd__Group_1_0__0__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__VComparisonAnd__Group_1_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VComparisonAnd__Group_1_0__0"
+
+
+ // $ANTLR start "rule__VComparisonAnd__Group_1_0__0__Impl"
+ // InternalRBAModel.g:11489:1: rule__VComparisonAnd__Group_1_0__0__Impl : ( ( rule__VComparisonAnd__Group_1_0_0__0 ) ) ;
+ public final void rule__VComparisonAnd__Group_1_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11493:1: ( ( ( rule__VComparisonAnd__Group_1_0_0__0 ) ) )
+ // InternalRBAModel.g:11494:1: ( ( rule__VComparisonAnd__Group_1_0_0__0 ) )
+ {
+ // InternalRBAModel.g:11494:1: ( ( rule__VComparisonAnd__Group_1_0_0__0 ) )
+ // InternalRBAModel.g:11495:2: ( rule__VComparisonAnd__Group_1_0_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVComparisonAndAccess().getGroup_1_0_0());
+ }
+ // InternalRBAModel.g:11496:2: ( rule__VComparisonAnd__Group_1_0_0__0 )
+ // InternalRBAModel.g:11496:3: rule__VComparisonAnd__Group_1_0_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__VComparisonAnd__Group_1_0_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVComparisonAndAccess().getGroup_1_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VComparisonAnd__Group_1_0__0__Impl"
+
+
+ // $ANTLR start "rule__VComparisonAnd__Group_1_0_0__0"
+ // InternalRBAModel.g:11505:1: rule__VComparisonAnd__Group_1_0_0__0 : rule__VComparisonAnd__Group_1_0_0__0__Impl rule__VComparisonAnd__Group_1_0_0__1 ;
+ public final void rule__VComparisonAnd__Group_1_0_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11509:1: ( rule__VComparisonAnd__Group_1_0_0__0__Impl rule__VComparisonAnd__Group_1_0_0__1 )
+ // InternalRBAModel.g:11510:2: rule__VComparisonAnd__Group_1_0_0__0__Impl rule__VComparisonAnd__Group_1_0_0__1
+ {
+ pushFollow(FOLLOW_63);
+ rule__VComparisonAnd__Group_1_0_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__VComparisonAnd__Group_1_0_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VComparisonAnd__Group_1_0_0__0"
+
+
+ // $ANTLR start "rule__VComparisonAnd__Group_1_0_0__0__Impl"
+ // InternalRBAModel.g:11517:1: rule__VComparisonAnd__Group_1_0_0__0__Impl : ( () ) ;
+ public final void rule__VComparisonAnd__Group_1_0_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11521:1: ( ( () ) )
+ // InternalRBAModel.g:11522:1: ( () )
+ {
+ // InternalRBAModel.g:11522:1: ( () )
+ // InternalRBAModel.g:11523:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVComparisonAndAccess().getComparisonAndOperandAction_1_0_0_0());
+ }
+ // InternalRBAModel.g:11524:2: ()
+ // InternalRBAModel.g:11524:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVComparisonAndAccess().getComparisonAndOperandAction_1_0_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VComparisonAnd__Group_1_0_0__0__Impl"
+
+
+ // $ANTLR start "rule__VComparisonAnd__Group_1_0_0__1"
+ // InternalRBAModel.g:11532:1: rule__VComparisonAnd__Group_1_0_0__1 : rule__VComparisonAnd__Group_1_0_0__1__Impl ;
+ public final void rule__VComparisonAnd__Group_1_0_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11536:1: ( rule__VComparisonAnd__Group_1_0_0__1__Impl )
+ // InternalRBAModel.g:11537:2: rule__VComparisonAnd__Group_1_0_0__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__VComparisonAnd__Group_1_0_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VComparisonAnd__Group_1_0_0__1"
+
+
+ // $ANTLR start "rule__VComparisonAnd__Group_1_0_0__1__Impl"
+ // InternalRBAModel.g:11543:1: rule__VComparisonAnd__Group_1_0_0__1__Impl : ( ruleOpAnd ) ;
+ public final void rule__VComparisonAnd__Group_1_0_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11547:1: ( ( ruleOpAnd ) )
+ // InternalRBAModel.g:11548:1: ( ruleOpAnd )
+ {
+ // InternalRBAModel.g:11548:1: ( ruleOpAnd )
+ // InternalRBAModel.g:11549:2: ruleOpAnd
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVComparisonAndAccess().getOpAndParserRuleCall_1_0_0_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpAnd();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVComparisonAndAccess().getOpAndParserRuleCall_1_0_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VComparisonAnd__Group_1_0_0__1__Impl"
+
+
+ // $ANTLR start "rule__VRelationalExpression__Group_1__0"
+ // InternalRBAModel.g:11559:1: rule__VRelationalExpression__Group_1__0 : rule__VRelationalExpression__Group_1__0__Impl rule__VRelationalExpression__Group_1__1 ;
+ public final void rule__VRelationalExpression__Group_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11563:1: ( rule__VRelationalExpression__Group_1__0__Impl rule__VRelationalExpression__Group_1__1 )
+ // InternalRBAModel.g:11564:2: rule__VRelationalExpression__Group_1__0__Impl rule__VRelationalExpression__Group_1__1
+ {
+ pushFollow(FOLLOW_13);
+ rule__VRelationalExpression__Group_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__VRelationalExpression__Group_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VRelationalExpression__Group_1__0"
+
+
+ // $ANTLR start "rule__VRelationalExpression__Group_1__0__Impl"
+ // InternalRBAModel.g:11571:1: rule__VRelationalExpression__Group_1__0__Impl : ( () ) ;
+ public final void rule__VRelationalExpression__Group_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11575:1: ( ( () ) )
+ // InternalRBAModel.g:11576:1: ( () )
+ {
+ // InternalRBAModel.g:11576:1: ( () )
+ // InternalRBAModel.g:11577:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVRelationalExpressionAccess().getMuchGreaterThanOperatorAction_1_0());
+ }
+ // InternalRBAModel.g:11578:2: ()
+ // InternalRBAModel.g:11578:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVRelationalExpressionAccess().getMuchGreaterThanOperatorAction_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VRelationalExpression__Group_1__0__Impl"
+
+
+ // $ANTLR start "rule__VRelationalExpression__Group_1__1"
+ // InternalRBAModel.g:11586:1: rule__VRelationalExpression__Group_1__1 : rule__VRelationalExpression__Group_1__1__Impl rule__VRelationalExpression__Group_1__2 ;
+ public final void rule__VRelationalExpression__Group_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11590:1: ( rule__VRelationalExpression__Group_1__1__Impl rule__VRelationalExpression__Group_1__2 )
+ // InternalRBAModel.g:11591:2: rule__VRelationalExpression__Group_1__1__Impl rule__VRelationalExpression__Group_1__2
+ {
+ pushFollow(FOLLOW_65);
+ rule__VRelationalExpression__Group_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__VRelationalExpression__Group_1__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VRelationalExpression__Group_1__1"
+
+
+ // $ANTLR start "rule__VRelationalExpression__Group_1__1__Impl"
+ // InternalRBAModel.g:11598:1: rule__VRelationalExpression__Group_1__1__Impl : ( ruleOpMuchGreaterThan ) ;
+ public final void rule__VRelationalExpression__Group_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11602:1: ( ( ruleOpMuchGreaterThan ) )
+ // InternalRBAModel.g:11603:1: ( ruleOpMuchGreaterThan )
+ {
+ // InternalRBAModel.g:11603:1: ( ruleOpMuchGreaterThan )
+ // InternalRBAModel.g:11604:2: ruleOpMuchGreaterThan
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVRelationalExpressionAccess().getOpMuchGreaterThanParserRuleCall_1_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpMuchGreaterThan();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVRelationalExpressionAccess().getOpMuchGreaterThanParserRuleCall_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VRelationalExpression__Group_1__1__Impl"
+
+
+ // $ANTLR start "rule__VRelationalExpression__Group_1__2"
+ // InternalRBAModel.g:11613:1: rule__VRelationalExpression__Group_1__2 : rule__VRelationalExpression__Group_1__2__Impl ;
+ public final void rule__VRelationalExpression__Group_1__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11617:1: ( rule__VRelationalExpression__Group_1__2__Impl )
+ // InternalRBAModel.g:11618:2: rule__VRelationalExpression__Group_1__2__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__VRelationalExpression__Group_1__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VRelationalExpression__Group_1__2"
+
+
+ // $ANTLR start "rule__VRelationalExpression__Group_1__2__Impl"
+ // InternalRBAModel.g:11624:1: rule__VRelationalExpression__Group_1__2__Impl : ( ( rule__VRelationalExpression__OperandAssignment_1_2 ) ) ;
+ public final void rule__VRelationalExpression__Group_1__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11628:1: ( ( ( rule__VRelationalExpression__OperandAssignment_1_2 ) ) )
+ // InternalRBAModel.g:11629:1: ( ( rule__VRelationalExpression__OperandAssignment_1_2 ) )
+ {
+ // InternalRBAModel.g:11629:1: ( ( rule__VRelationalExpression__OperandAssignment_1_2 ) )
+ // InternalRBAModel.g:11630:2: ( rule__VRelationalExpression__OperandAssignment_1_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVRelationalExpressionAccess().getOperandAssignment_1_2());
+ }
+ // InternalRBAModel.g:11631:2: ( rule__VRelationalExpression__OperandAssignment_1_2 )
+ // InternalRBAModel.g:11631:3: rule__VRelationalExpression__OperandAssignment_1_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__VRelationalExpression__OperandAssignment_1_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVRelationalExpressionAccess().getOperandAssignment_1_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VRelationalExpression__Group_1__2__Impl"
+
+
+ // $ANTLR start "rule__VRelationalExpression__Group_2__0"
+ // InternalRBAModel.g:11640:1: rule__VRelationalExpression__Group_2__0 : rule__VRelationalExpression__Group_2__0__Impl rule__VRelationalExpression__Group_2__1 ;
+ public final void rule__VRelationalExpression__Group_2__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11644:1: ( rule__VRelationalExpression__Group_2__0__Impl rule__VRelationalExpression__Group_2__1 )
+ // InternalRBAModel.g:11645:2: rule__VRelationalExpression__Group_2__0__Impl rule__VRelationalExpression__Group_2__1
+ {
+ pushFollow(FOLLOW_66);
+ rule__VRelationalExpression__Group_2__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__VRelationalExpression__Group_2__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VRelationalExpression__Group_2__0"
+
+
+ // $ANTLR start "rule__VRelationalExpression__Group_2__0__Impl"
+ // InternalRBAModel.g:11652:1: rule__VRelationalExpression__Group_2__0__Impl : ( () ) ;
+ public final void rule__VRelationalExpression__Group_2__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11656:1: ( ( () ) )
+ // InternalRBAModel.g:11657:1: ( () )
+ {
+ // InternalRBAModel.g:11657:1: ( () )
+ // InternalRBAModel.g:11658:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVRelationalExpressionAccess().getEqualToOperatorAction_2_0());
+ }
+ // InternalRBAModel.g:11659:2: ()
+ // InternalRBAModel.g:11659:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVRelationalExpressionAccess().getEqualToOperatorAction_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VRelationalExpression__Group_2__0__Impl"
+
+
+ // $ANTLR start "rule__VRelationalExpression__Group_2__1"
+ // InternalRBAModel.g:11667:1: rule__VRelationalExpression__Group_2__1 : rule__VRelationalExpression__Group_2__1__Impl rule__VRelationalExpression__Group_2__2 ;
+ public final void rule__VRelationalExpression__Group_2__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11671:1: ( rule__VRelationalExpression__Group_2__1__Impl rule__VRelationalExpression__Group_2__2 )
+ // InternalRBAModel.g:11672:2: rule__VRelationalExpression__Group_2__1__Impl rule__VRelationalExpression__Group_2__2
+ {
+ pushFollow(FOLLOW_65);
+ rule__VRelationalExpression__Group_2__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__VRelationalExpression__Group_2__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VRelationalExpression__Group_2__1"
+
+
+ // $ANTLR start "rule__VRelationalExpression__Group_2__1__Impl"
+ // InternalRBAModel.g:11679:1: rule__VRelationalExpression__Group_2__1__Impl : ( ruleOpEqualTo ) ;
+ public final void rule__VRelationalExpression__Group_2__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11683:1: ( ( ruleOpEqualTo ) )
+ // InternalRBAModel.g:11684:1: ( ruleOpEqualTo )
+ {
+ // InternalRBAModel.g:11684:1: ( ruleOpEqualTo )
+ // InternalRBAModel.g:11685:2: ruleOpEqualTo
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVRelationalExpressionAccess().getOpEqualToParserRuleCall_2_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpEqualTo();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVRelationalExpressionAccess().getOpEqualToParserRuleCall_2_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VRelationalExpression__Group_2__1__Impl"
+
+
+ // $ANTLR start "rule__VRelationalExpression__Group_2__2"
+ // InternalRBAModel.g:11694:1: rule__VRelationalExpression__Group_2__2 : rule__VRelationalExpression__Group_2__2__Impl ;
+ public final void rule__VRelationalExpression__Group_2__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11698:1: ( rule__VRelationalExpression__Group_2__2__Impl )
+ // InternalRBAModel.g:11699:2: rule__VRelationalExpression__Group_2__2__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__VRelationalExpression__Group_2__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VRelationalExpression__Group_2__2"
+
+
+ // $ANTLR start "rule__VRelationalExpression__Group_2__2__Impl"
+ // InternalRBAModel.g:11705:1: rule__VRelationalExpression__Group_2__2__Impl : ( ( rule__VRelationalExpression__OperandAssignment_2_2 ) ) ;
+ public final void rule__VRelationalExpression__Group_2__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11709:1: ( ( ( rule__VRelationalExpression__OperandAssignment_2_2 ) ) )
+ // InternalRBAModel.g:11710:1: ( ( rule__VRelationalExpression__OperandAssignment_2_2 ) )
+ {
+ // InternalRBAModel.g:11710:1: ( ( rule__VRelationalExpression__OperandAssignment_2_2 ) )
+ // InternalRBAModel.g:11711:2: ( rule__VRelationalExpression__OperandAssignment_2_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVRelationalExpressionAccess().getOperandAssignment_2_2());
+ }
+ // InternalRBAModel.g:11712:2: ( rule__VRelationalExpression__OperandAssignment_2_2 )
+ // InternalRBAModel.g:11712:3: rule__VRelationalExpression__OperandAssignment_2_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__VRelationalExpression__OperandAssignment_2_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVRelationalExpressionAccess().getOperandAssignment_2_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VRelationalExpression__Group_2__2__Impl"
+
+
+ // $ANTLR start "rule__VRelationalExpression__Group_3__0"
+ // InternalRBAModel.g:11721:1: rule__VRelationalExpression__Group_3__0 : rule__VRelationalExpression__Group_3__0__Impl rule__VRelationalExpression__Group_3__1 ;
+ public final void rule__VRelationalExpression__Group_3__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11725:1: ( rule__VRelationalExpression__Group_3__0__Impl rule__VRelationalExpression__Group_3__1 )
+ // InternalRBAModel.g:11726:2: rule__VRelationalExpression__Group_3__0__Impl rule__VRelationalExpression__Group_3__1
+ {
+ pushFollow(FOLLOW_26);
+ rule__VRelationalExpression__Group_3__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__VRelationalExpression__Group_3__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VRelationalExpression__Group_3__0"
+
+
+ // $ANTLR start "rule__VRelationalExpression__Group_3__0__Impl"
+ // InternalRBAModel.g:11733:1: rule__VRelationalExpression__Group_3__0__Impl : ( () ) ;
+ public final void rule__VRelationalExpression__Group_3__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11737:1: ( ( () ) )
+ // InternalRBAModel.g:11738:1: ( () )
+ {
+ // InternalRBAModel.g:11738:1: ( () )
+ // InternalRBAModel.g:11739:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVRelationalExpressionAccess().getGreaterThanOperatorAction_3_0());
+ }
+ // InternalRBAModel.g:11740:2: ()
+ // InternalRBAModel.g:11740:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVRelationalExpressionAccess().getGreaterThanOperatorAction_3_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VRelationalExpression__Group_3__0__Impl"
+
+
+ // $ANTLR start "rule__VRelationalExpression__Group_3__1"
+ // InternalRBAModel.g:11748:1: rule__VRelationalExpression__Group_3__1 : rule__VRelationalExpression__Group_3__1__Impl rule__VRelationalExpression__Group_3__2 ;
+ public final void rule__VRelationalExpression__Group_3__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11752:1: ( rule__VRelationalExpression__Group_3__1__Impl rule__VRelationalExpression__Group_3__2 )
+ // InternalRBAModel.g:11753:2: rule__VRelationalExpression__Group_3__1__Impl rule__VRelationalExpression__Group_3__2
+ {
+ pushFollow(FOLLOW_65);
+ rule__VRelationalExpression__Group_3__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__VRelationalExpression__Group_3__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VRelationalExpression__Group_3__1"
+
+
+ // $ANTLR start "rule__VRelationalExpression__Group_3__1__Impl"
+ // InternalRBAModel.g:11760:1: rule__VRelationalExpression__Group_3__1__Impl : ( ruleOpGreaterThan ) ;
+ public final void rule__VRelationalExpression__Group_3__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11764:1: ( ( ruleOpGreaterThan ) )
+ // InternalRBAModel.g:11765:1: ( ruleOpGreaterThan )
+ {
+ // InternalRBAModel.g:11765:1: ( ruleOpGreaterThan )
+ // InternalRBAModel.g:11766:2: ruleOpGreaterThan
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVRelationalExpressionAccess().getOpGreaterThanParserRuleCall_3_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpGreaterThan();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVRelationalExpressionAccess().getOpGreaterThanParserRuleCall_3_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VRelationalExpression__Group_3__1__Impl"
+
+
+ // $ANTLR start "rule__VRelationalExpression__Group_3__2"
+ // InternalRBAModel.g:11775:1: rule__VRelationalExpression__Group_3__2 : rule__VRelationalExpression__Group_3__2__Impl ;
+ public final void rule__VRelationalExpression__Group_3__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11779:1: ( rule__VRelationalExpression__Group_3__2__Impl )
+ // InternalRBAModel.g:11780:2: rule__VRelationalExpression__Group_3__2__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__VRelationalExpression__Group_3__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VRelationalExpression__Group_3__2"
+
+
+ // $ANTLR start "rule__VRelationalExpression__Group_3__2__Impl"
+ // InternalRBAModel.g:11786:1: rule__VRelationalExpression__Group_3__2__Impl : ( ( rule__VRelationalExpression__OperandAssignment_3_2 ) ) ;
+ public final void rule__VRelationalExpression__Group_3__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11790:1: ( ( ( rule__VRelationalExpression__OperandAssignment_3_2 ) ) )
+ // InternalRBAModel.g:11791:1: ( ( rule__VRelationalExpression__OperandAssignment_3_2 ) )
+ {
+ // InternalRBAModel.g:11791:1: ( ( rule__VRelationalExpression__OperandAssignment_3_2 ) )
+ // InternalRBAModel.g:11792:2: ( rule__VRelationalExpression__OperandAssignment_3_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVRelationalExpressionAccess().getOperandAssignment_3_2());
+ }
+ // InternalRBAModel.g:11793:2: ( rule__VRelationalExpression__OperandAssignment_3_2 )
+ // InternalRBAModel.g:11793:3: rule__VRelationalExpression__OperandAssignment_3_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__VRelationalExpression__OperandAssignment_3_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVRelationalExpressionAccess().getOperandAssignment_3_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VRelationalExpression__Group_3__2__Impl"
+
+
+ // $ANTLR start "rule__VRelationalExpression__Group_4__0"
+ // InternalRBAModel.g:11802:1: rule__VRelationalExpression__Group_4__0 : rule__VRelationalExpression__Group_4__0__Impl rule__VRelationalExpression__Group_4__1 ;
+ public final void rule__VRelationalExpression__Group_4__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11806:1: ( rule__VRelationalExpression__Group_4__0__Impl rule__VRelationalExpression__Group_4__1 )
+ // InternalRBAModel.g:11807:2: rule__VRelationalExpression__Group_4__0__Impl rule__VRelationalExpression__Group_4__1
+ {
+ pushFollow(FOLLOW_53);
+ rule__VRelationalExpression__Group_4__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__VRelationalExpression__Group_4__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VRelationalExpression__Group_4__0"
+
+
+ // $ANTLR start "rule__VRelationalExpression__Group_4__0__Impl"
+ // InternalRBAModel.g:11814:1: rule__VRelationalExpression__Group_4__0__Impl : ( () ) ;
+ public final void rule__VRelationalExpression__Group_4__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11818:1: ( ( () ) )
+ // InternalRBAModel.g:11819:1: ( () )
+ {
+ // InternalRBAModel.g:11819:1: ( () )
+ // InternalRBAModel.g:11820:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVRelationalExpressionAccess().getLowerThanOperatorAction_4_0());
+ }
+ // InternalRBAModel.g:11821:2: ()
+ // InternalRBAModel.g:11821:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVRelationalExpressionAccess().getLowerThanOperatorAction_4_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VRelationalExpression__Group_4__0__Impl"
+
+
+ // $ANTLR start "rule__VRelationalExpression__Group_4__1"
+ // InternalRBAModel.g:11829:1: rule__VRelationalExpression__Group_4__1 : rule__VRelationalExpression__Group_4__1__Impl rule__VRelationalExpression__Group_4__2 ;
+ public final void rule__VRelationalExpression__Group_4__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11833:1: ( rule__VRelationalExpression__Group_4__1__Impl rule__VRelationalExpression__Group_4__2 )
+ // InternalRBAModel.g:11834:2: rule__VRelationalExpression__Group_4__1__Impl rule__VRelationalExpression__Group_4__2
+ {
+ pushFollow(FOLLOW_65);
+ rule__VRelationalExpression__Group_4__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__VRelationalExpression__Group_4__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VRelationalExpression__Group_4__1"
+
+
+ // $ANTLR start "rule__VRelationalExpression__Group_4__1__Impl"
+ // InternalRBAModel.g:11841:1: rule__VRelationalExpression__Group_4__1__Impl : ( ruleOpLowerThan ) ;
+ public final void rule__VRelationalExpression__Group_4__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11845:1: ( ( ruleOpLowerThan ) )
+ // InternalRBAModel.g:11846:1: ( ruleOpLowerThan )
+ {
+ // InternalRBAModel.g:11846:1: ( ruleOpLowerThan )
+ // InternalRBAModel.g:11847:2: ruleOpLowerThan
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVRelationalExpressionAccess().getOpLowerThanParserRuleCall_4_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpLowerThan();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVRelationalExpressionAccess().getOpLowerThanParserRuleCall_4_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VRelationalExpression__Group_4__1__Impl"
+
+
+ // $ANTLR start "rule__VRelationalExpression__Group_4__2"
+ // InternalRBAModel.g:11856:1: rule__VRelationalExpression__Group_4__2 : rule__VRelationalExpression__Group_4__2__Impl ;
+ public final void rule__VRelationalExpression__Group_4__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11860:1: ( rule__VRelationalExpression__Group_4__2__Impl )
+ // InternalRBAModel.g:11861:2: rule__VRelationalExpression__Group_4__2__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__VRelationalExpression__Group_4__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VRelationalExpression__Group_4__2"
+
+
+ // $ANTLR start "rule__VRelationalExpression__Group_4__2__Impl"
+ // InternalRBAModel.g:11867:1: rule__VRelationalExpression__Group_4__2__Impl : ( ( rule__VRelationalExpression__OperandAssignment_4_2 ) ) ;
+ public final void rule__VRelationalExpression__Group_4__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11871:1: ( ( ( rule__VRelationalExpression__OperandAssignment_4_2 ) ) )
+ // InternalRBAModel.g:11872:1: ( ( rule__VRelationalExpression__OperandAssignment_4_2 ) )
+ {
+ // InternalRBAModel.g:11872:1: ( ( rule__VRelationalExpression__OperandAssignment_4_2 ) )
+ // InternalRBAModel.g:11873:2: ( rule__VRelationalExpression__OperandAssignment_4_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVRelationalExpressionAccess().getOperandAssignment_4_2());
+ }
+ // InternalRBAModel.g:11874:2: ( rule__VRelationalExpression__OperandAssignment_4_2 )
+ // InternalRBAModel.g:11874:3: rule__VRelationalExpression__OperandAssignment_4_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__VRelationalExpression__OperandAssignment_4_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVRelationalExpressionAccess().getOperandAssignment_4_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VRelationalExpression__Group_4__2__Impl"
+
+
+ // $ANTLR start "rule__VPrimaryExpression__Group_2__0"
+ // InternalRBAModel.g:11883:1: rule__VPrimaryExpression__Group_2__0 : rule__VPrimaryExpression__Group_2__0__Impl rule__VPrimaryExpression__Group_2__1 ;
+ public final void rule__VPrimaryExpression__Group_2__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11887:1: ( rule__VPrimaryExpression__Group_2__0__Impl rule__VPrimaryExpression__Group_2__1 )
+ // InternalRBAModel.g:11888:2: rule__VPrimaryExpression__Group_2__0__Impl rule__VPrimaryExpression__Group_2__1
+ {
+ pushFollow(FOLLOW_53);
+ rule__VPrimaryExpression__Group_2__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__VPrimaryExpression__Group_2__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VPrimaryExpression__Group_2__0"
+
+
+ // $ANTLR start "rule__VPrimaryExpression__Group_2__0__Impl"
+ // InternalRBAModel.g:11895:1: rule__VPrimaryExpression__Group_2__0__Impl : ( '(' ) ;
+ public final void rule__VPrimaryExpression__Group_2__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11899:1: ( ( '(' ) )
+ // InternalRBAModel.g:11900:1: ( '(' )
+ {
+ // InternalRBAModel.g:11900:1: ( '(' )
+ // InternalRBAModel.g:11901:2: '('
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVPrimaryExpressionAccess().getLeftParenthesisKeyword_2_0());
+ }
+ match(input,107,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVPrimaryExpressionAccess().getLeftParenthesisKeyword_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VPrimaryExpression__Group_2__0__Impl"
+
+
+ // $ANTLR start "rule__VPrimaryExpression__Group_2__1"
+ // InternalRBAModel.g:11910:1: rule__VPrimaryExpression__Group_2__1 : rule__VPrimaryExpression__Group_2__1__Impl rule__VPrimaryExpression__Group_2__2 ;
+ public final void rule__VPrimaryExpression__Group_2__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11914:1: ( rule__VPrimaryExpression__Group_2__1__Impl rule__VPrimaryExpression__Group_2__2 )
+ // InternalRBAModel.g:11915:2: rule__VPrimaryExpression__Group_2__1__Impl rule__VPrimaryExpression__Group_2__2
+ {
+ pushFollow(FOLLOW_67);
+ rule__VPrimaryExpression__Group_2__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__VPrimaryExpression__Group_2__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VPrimaryExpression__Group_2__1"
+
+
+ // $ANTLR start "rule__VPrimaryExpression__Group_2__1__Impl"
+ // InternalRBAModel.g:11922:1: rule__VPrimaryExpression__Group_2__1__Impl : ( ruleVExpression ) ;
+ public final void rule__VPrimaryExpression__Group_2__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11926:1: ( ( ruleVExpression ) )
+ // InternalRBAModel.g:11927:1: ( ruleVExpression )
+ {
+ // InternalRBAModel.g:11927:1: ( ruleVExpression )
+ // InternalRBAModel.g:11928:2: ruleVExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVPrimaryExpressionAccess().getVExpressionParserRuleCall_2_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleVExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVPrimaryExpressionAccess().getVExpressionParserRuleCall_2_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VPrimaryExpression__Group_2__1__Impl"
+
+
+ // $ANTLR start "rule__VPrimaryExpression__Group_2__2"
+ // InternalRBAModel.g:11937:1: rule__VPrimaryExpression__Group_2__2 : rule__VPrimaryExpression__Group_2__2__Impl ;
+ public final void rule__VPrimaryExpression__Group_2__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11941:1: ( rule__VPrimaryExpression__Group_2__2__Impl )
+ // InternalRBAModel.g:11942:2: rule__VPrimaryExpression__Group_2__2__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__VPrimaryExpression__Group_2__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VPrimaryExpression__Group_2__2"
+
+
+ // $ANTLR start "rule__VPrimaryExpression__Group_2__2__Impl"
+ // InternalRBAModel.g:11948:1: rule__VPrimaryExpression__Group_2__2__Impl : ( ')' ) ;
+ public final void rule__VPrimaryExpression__Group_2__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11952:1: ( ( ')' ) )
+ // InternalRBAModel.g:11953:1: ( ')' )
+ {
+ // InternalRBAModel.g:11953:1: ( ')' )
+ // InternalRBAModel.g:11954:2: ')'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVPrimaryExpressionAccess().getRightParenthesisKeyword_2_2());
+ }
+ match(input,108,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVPrimaryExpressionAccess().getRightParenthesisKeyword_2_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VPrimaryExpression__Group_2__2__Impl"
+
+
+ // $ANTLR start "rule__ThatOfOperator__Group__0"
+ // InternalRBAModel.g:11964:1: rule__ThatOfOperator__Group__0 : rule__ThatOfOperator__Group__0__Impl rule__ThatOfOperator__Group__1 ;
+ public final void rule__ThatOfOperator__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11968:1: ( rule__ThatOfOperator__Group__0__Impl rule__ThatOfOperator__Group__1 )
+ // InternalRBAModel.g:11969:2: rule__ThatOfOperator__Group__0__Impl rule__ThatOfOperator__Group__1
+ {
+ pushFollow(FOLLOW_68);
+ rule__ThatOfOperator__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ThatOfOperator__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ThatOfOperator__Group__0"
+
+
+ // $ANTLR start "rule__ThatOfOperator__Group__0__Impl"
+ // InternalRBAModel.g:11976:1: rule__ThatOfOperator__Group__0__Impl : ( () ) ;
+ public final void rule__ThatOfOperator__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11980:1: ( ( () ) )
+ // InternalRBAModel.g:11981:1: ( () )
+ {
+ // InternalRBAModel.g:11981:1: ( () )
+ // InternalRBAModel.g:11982:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getThatOfOperatorAccess().getThatOfOperatorAction_0());
+ }
+ // InternalRBAModel.g:11983:2: ()
+ // InternalRBAModel.g:11983:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getThatOfOperatorAccess().getThatOfOperatorAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ThatOfOperator__Group__0__Impl"
+
+
+ // $ANTLR start "rule__ThatOfOperator__Group__1"
+ // InternalRBAModel.g:11991:1: rule__ThatOfOperator__Group__1 : rule__ThatOfOperator__Group__1__Impl rule__ThatOfOperator__Group__2 ;
+ public final void rule__ThatOfOperator__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:11995:1: ( rule__ThatOfOperator__Group__1__Impl rule__ThatOfOperator__Group__2 )
+ // InternalRBAModel.g:11996:2: rule__ThatOfOperator__Group__1__Impl rule__ThatOfOperator__Group__2
+ {
+ pushFollow(FOLLOW_7);
+ rule__ThatOfOperator__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ThatOfOperator__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ThatOfOperator__Group__1"
+
+
+ // $ANTLR start "rule__ThatOfOperator__Group__1__Impl"
+ // InternalRBAModel.g:12003:1: rule__ThatOfOperator__Group__1__Impl : ( 'That-of' ) ;
+ public final void rule__ThatOfOperator__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12007:1: ( ( 'That-of' ) )
+ // InternalRBAModel.g:12008:1: ( 'That-of' )
+ {
+ // InternalRBAModel.g:12008:1: ( 'That-of' )
+ // InternalRBAModel.g:12009:2: 'That-of'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getThatOfOperatorAccess().getThatOfKeyword_1());
+ }
+ match(input,134,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getThatOfOperatorAccess().getThatOfKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ThatOfOperator__Group__1__Impl"
+
+
+ // $ANTLR start "rule__ThatOfOperator__Group__2"
+ // InternalRBAModel.g:12018:1: rule__ThatOfOperator__Group__2 : rule__ThatOfOperator__Group__2__Impl ;
+ public final void rule__ThatOfOperator__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12022:1: ( rule__ThatOfOperator__Group__2__Impl )
+ // InternalRBAModel.g:12023:2: rule__ThatOfOperator__Group__2__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__ThatOfOperator__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ThatOfOperator__Group__2"
+
+
+ // $ANTLR start "rule__ThatOfOperator__Group__2__Impl"
+ // InternalRBAModel.g:12029:1: rule__ThatOfOperator__Group__2__Impl : ( ( rule__ThatOfOperator__OperandAssignment_2 )? ) ;
+ public final void rule__ThatOfOperator__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12033:1: ( ( ( rule__ThatOfOperator__OperandAssignment_2 )? ) )
+ // InternalRBAModel.g:12034:1: ( ( rule__ThatOfOperator__OperandAssignment_2 )? )
+ {
+ // InternalRBAModel.g:12034:1: ( ( rule__ThatOfOperator__OperandAssignment_2 )? )
+ // InternalRBAModel.g:12035:2: ( rule__ThatOfOperator__OperandAssignment_2 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getThatOfOperatorAccess().getOperandAssignment_2());
+ }
+ // InternalRBAModel.g:12036:2: ( rule__ThatOfOperator__OperandAssignment_2 )?
+ int alt58=2;
+ int LA58_0 = input.LA(1);
+
+ if ( (LA58_0==RULE_ID) ) {
+ alt58=1;
+ }
+ switch (alt58) {
+ case 1 :
+ // InternalRBAModel.g:12036:3: rule__ThatOfOperator__OperandAssignment_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__ThatOfOperator__OperandAssignment_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getThatOfOperatorAccess().getOperandAssignment_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ThatOfOperator__Group__2__Impl"
+
+
+ // $ANTLR start "rule__VMemberFeatureReference__Group__0"
+ // InternalRBAModel.g:12045:1: rule__VMemberFeatureReference__Group__0 : rule__VMemberFeatureReference__Group__0__Impl rule__VMemberFeatureReference__Group__1 ;
+ public final void rule__VMemberFeatureReference__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12049:1: ( rule__VMemberFeatureReference__Group__0__Impl rule__VMemberFeatureReference__Group__1 )
+ // InternalRBAModel.g:12050:2: rule__VMemberFeatureReference__Group__0__Impl rule__VMemberFeatureReference__Group__1
+ {
+ pushFollow(FOLLOW_7);
+ rule__VMemberFeatureReference__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__VMemberFeatureReference__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VMemberFeatureReference__Group__0"
+
+
+ // $ANTLR start "rule__VMemberFeatureReference__Group__0__Impl"
+ // InternalRBAModel.g:12057:1: rule__VMemberFeatureReference__Group__0__Impl : ( () ) ;
+ public final void rule__VMemberFeatureReference__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12061:1: ( ( () ) )
+ // InternalRBAModel.g:12062:1: ( () )
+ {
+ // InternalRBAModel.g:12062:1: ( () )
+ // InternalRBAModel.g:12063:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVMemberFeatureReferenceAccess().getObjectReferenceAction_0());
+ }
+ // InternalRBAModel.g:12064:2: ()
+ // InternalRBAModel.g:12064:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVMemberFeatureReferenceAccess().getObjectReferenceAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VMemberFeatureReference__Group__0__Impl"
+
+
+ // $ANTLR start "rule__VMemberFeatureReference__Group__1"
+ // InternalRBAModel.g:12072:1: rule__VMemberFeatureReference__Group__1 : rule__VMemberFeatureReference__Group__1__Impl rule__VMemberFeatureReference__Group__2 ;
+ public final void rule__VMemberFeatureReference__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12076:1: ( rule__VMemberFeatureReference__Group__1__Impl rule__VMemberFeatureReference__Group__2 )
+ // InternalRBAModel.g:12077:2: rule__VMemberFeatureReference__Group__1__Impl rule__VMemberFeatureReference__Group__2
+ {
+ pushFollow(FOLLOW_69);
+ rule__VMemberFeatureReference__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__VMemberFeatureReference__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VMemberFeatureReference__Group__1"
+
+
+ // $ANTLR start "rule__VMemberFeatureReference__Group__1__Impl"
+ // InternalRBAModel.g:12084:1: rule__VMemberFeatureReference__Group__1__Impl : ( ( rule__VMemberFeatureReference__RefObjectAssignment_1 ) ) ;
+ public final void rule__VMemberFeatureReference__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12088:1: ( ( ( rule__VMemberFeatureReference__RefObjectAssignment_1 ) ) )
+ // InternalRBAModel.g:12089:1: ( ( rule__VMemberFeatureReference__RefObjectAssignment_1 ) )
+ {
+ // InternalRBAModel.g:12089:1: ( ( rule__VMemberFeatureReference__RefObjectAssignment_1 ) )
+ // InternalRBAModel.g:12090:2: ( rule__VMemberFeatureReference__RefObjectAssignment_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVMemberFeatureReferenceAccess().getRefObjectAssignment_1());
+ }
+ // InternalRBAModel.g:12091:2: ( rule__VMemberFeatureReference__RefObjectAssignment_1 )
+ // InternalRBAModel.g:12091:3: rule__VMemberFeatureReference__RefObjectAssignment_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__VMemberFeatureReference__RefObjectAssignment_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVMemberFeatureReferenceAccess().getRefObjectAssignment_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VMemberFeatureReference__Group__1__Impl"
+
+
+ // $ANTLR start "rule__VMemberFeatureReference__Group__2"
+ // InternalRBAModel.g:12099:1: rule__VMemberFeatureReference__Group__2 : rule__VMemberFeatureReference__Group__2__Impl ;
+ public final void rule__VMemberFeatureReference__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12103:1: ( rule__VMemberFeatureReference__Group__2__Impl )
+ // InternalRBAModel.g:12104:2: rule__VMemberFeatureReference__Group__2__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__VMemberFeatureReference__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VMemberFeatureReference__Group__2"
+
+
+ // $ANTLR start "rule__VMemberFeatureReference__Group__2__Impl"
+ // InternalRBAModel.g:12110:1: rule__VMemberFeatureReference__Group__2__Impl : ( ( rule__VMemberFeatureReference__Group_2__0 )* ) ;
+ public final void rule__VMemberFeatureReference__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12114:1: ( ( ( rule__VMemberFeatureReference__Group_2__0 )* ) )
+ // InternalRBAModel.g:12115:1: ( ( rule__VMemberFeatureReference__Group_2__0 )* )
+ {
+ // InternalRBAModel.g:12115:1: ( ( rule__VMemberFeatureReference__Group_2__0 )* )
+ // InternalRBAModel.g:12116:2: ( rule__VMemberFeatureReference__Group_2__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVMemberFeatureReferenceAccess().getGroup_2());
+ }
+ // InternalRBAModel.g:12117:2: ( rule__VMemberFeatureReference__Group_2__0 )*
+ loop59:
+ do {
+ int alt59=2;
+ int LA59_0 = input.LA(1);
+
+ if ( (LA59_0==135) ) {
+ alt59=1;
+ }
+
+
+ switch (alt59) {
+ case 1 :
+ // InternalRBAModel.g:12117:3: rule__VMemberFeatureReference__Group_2__0
+ {
+ pushFollow(FOLLOW_70);
+ rule__VMemberFeatureReference__Group_2__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop59;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVMemberFeatureReferenceAccess().getGroup_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VMemberFeatureReference__Group__2__Impl"
+
+
+ // $ANTLR start "rule__VMemberFeatureReference__Group_2__0"
+ // InternalRBAModel.g:12126:1: rule__VMemberFeatureReference__Group_2__0 : rule__VMemberFeatureReference__Group_2__0__Impl rule__VMemberFeatureReference__Group_2__1 ;
+ public final void rule__VMemberFeatureReference__Group_2__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12130:1: ( rule__VMemberFeatureReference__Group_2__0__Impl rule__VMemberFeatureReference__Group_2__1 )
+ // InternalRBAModel.g:12131:2: rule__VMemberFeatureReference__Group_2__0__Impl rule__VMemberFeatureReference__Group_2__1
+ {
+ pushFollow(FOLLOW_69);
+ rule__VMemberFeatureReference__Group_2__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__VMemberFeatureReference__Group_2__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VMemberFeatureReference__Group_2__0"
+
+
+ // $ANTLR start "rule__VMemberFeatureReference__Group_2__0__Impl"
+ // InternalRBAModel.g:12138:1: rule__VMemberFeatureReference__Group_2__0__Impl : ( () ) ;
+ public final void rule__VMemberFeatureReference__Group_2__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12142:1: ( ( () ) )
+ // InternalRBAModel.g:12143:1: ( () )
+ {
+ // InternalRBAModel.g:12143:1: ( () )
+ // InternalRBAModel.g:12144:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVMemberFeatureReferenceAccess().getMemberFeatureReferenceOperandAction_2_0());
+ }
+ // InternalRBAModel.g:12145:2: ()
+ // InternalRBAModel.g:12145:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVMemberFeatureReferenceAccess().getMemberFeatureReferenceOperandAction_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VMemberFeatureReference__Group_2__0__Impl"
+
+
+ // $ANTLR start "rule__VMemberFeatureReference__Group_2__1"
+ // InternalRBAModel.g:12153:1: rule__VMemberFeatureReference__Group_2__1 : rule__VMemberFeatureReference__Group_2__1__Impl rule__VMemberFeatureReference__Group_2__2 ;
+ public final void rule__VMemberFeatureReference__Group_2__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12157:1: ( rule__VMemberFeatureReference__Group_2__1__Impl rule__VMemberFeatureReference__Group_2__2 )
+ // InternalRBAModel.g:12158:2: rule__VMemberFeatureReference__Group_2__1__Impl rule__VMemberFeatureReference__Group_2__2
+ {
+ pushFollow(FOLLOW_7);
+ rule__VMemberFeatureReference__Group_2__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__VMemberFeatureReference__Group_2__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VMemberFeatureReference__Group_2__1"
+
+
+ // $ANTLR start "rule__VMemberFeatureReference__Group_2__1__Impl"
+ // InternalRBAModel.g:12165:1: rule__VMemberFeatureReference__Group_2__1__Impl : ( '.' ) ;
+ public final void rule__VMemberFeatureReference__Group_2__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12169:1: ( ( '.' ) )
+ // InternalRBAModel.g:12170:1: ( '.' )
+ {
+ // InternalRBAModel.g:12170:1: ( '.' )
+ // InternalRBAModel.g:12171:2: '.'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVMemberFeatureReferenceAccess().getFullStopKeyword_2_1());
+ }
+ match(input,135,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVMemberFeatureReferenceAccess().getFullStopKeyword_2_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VMemberFeatureReference__Group_2__1__Impl"
+
+
+ // $ANTLR start "rule__VMemberFeatureReference__Group_2__2"
+ // InternalRBAModel.g:12180:1: rule__VMemberFeatureReference__Group_2__2 : rule__VMemberFeatureReference__Group_2__2__Impl ;
+ public final void rule__VMemberFeatureReference__Group_2__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12184:1: ( rule__VMemberFeatureReference__Group_2__2__Impl )
+ // InternalRBAModel.g:12185:2: rule__VMemberFeatureReference__Group_2__2__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__VMemberFeatureReference__Group_2__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VMemberFeatureReference__Group_2__2"
+
+
+ // $ANTLR start "rule__VMemberFeatureReference__Group_2__2__Impl"
+ // InternalRBAModel.g:12191:1: rule__VMemberFeatureReference__Group_2__2__Impl : ( ( rule__VMemberFeatureReference__RefObjectAssignment_2_2 ) ) ;
+ public final void rule__VMemberFeatureReference__Group_2__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12195:1: ( ( ( rule__VMemberFeatureReference__RefObjectAssignment_2_2 ) ) )
+ // InternalRBAModel.g:12196:1: ( ( rule__VMemberFeatureReference__RefObjectAssignment_2_2 ) )
+ {
+ // InternalRBAModel.g:12196:1: ( ( rule__VMemberFeatureReference__RefObjectAssignment_2_2 ) )
+ // InternalRBAModel.g:12197:2: ( rule__VMemberFeatureReference__RefObjectAssignment_2_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVMemberFeatureReferenceAccess().getRefObjectAssignment_2_2());
+ }
+ // InternalRBAModel.g:12198:2: ( rule__VMemberFeatureReference__RefObjectAssignment_2_2 )
+ // InternalRBAModel.g:12198:3: rule__VMemberFeatureReference__RefObjectAssignment_2_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__VMemberFeatureReference__RefObjectAssignment_2_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVMemberFeatureReferenceAccess().getRefObjectAssignment_2_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VMemberFeatureReference__Group_2__2__Impl"
+
+
+ // $ANTLR start "rule__IntegerValue__Group__0"
+ // InternalRBAModel.g:12207:1: rule__IntegerValue__Group__0 : rule__IntegerValue__Group__0__Impl rule__IntegerValue__Group__1 ;
+ public final void rule__IntegerValue__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12211:1: ( rule__IntegerValue__Group__0__Impl rule__IntegerValue__Group__1 )
+ // InternalRBAModel.g:12212:2: rule__IntegerValue__Group__0__Impl rule__IntegerValue__Group__1
+ {
+ pushFollow(FOLLOW_10);
+ rule__IntegerValue__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__IntegerValue__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__IntegerValue__Group__0"
+
+
+ // $ANTLR start "rule__IntegerValue__Group__0__Impl"
+ // InternalRBAModel.g:12219:1: rule__IntegerValue__Group__0__Impl : ( () ) ;
+ public final void rule__IntegerValue__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12223:1: ( ( () ) )
+ // InternalRBAModel.g:12224:1: ( () )
+ {
+ // InternalRBAModel.g:12224:1: ( () )
+ // InternalRBAModel.g:12225:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getIntegerValueAccess().getIntegerValueAction_0());
+ }
+ // InternalRBAModel.g:12226:2: ()
+ // InternalRBAModel.g:12226:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getIntegerValueAccess().getIntegerValueAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__IntegerValue__Group__0__Impl"
+
+
+ // $ANTLR start "rule__IntegerValue__Group__1"
+ // InternalRBAModel.g:12234:1: rule__IntegerValue__Group__1 : rule__IntegerValue__Group__1__Impl ;
+ public final void rule__IntegerValue__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12238:1: ( rule__IntegerValue__Group__1__Impl )
+ // InternalRBAModel.g:12239:2: rule__IntegerValue__Group__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__IntegerValue__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__IntegerValue__Group__1"
+
+
+ // $ANTLR start "rule__IntegerValue__Group__1__Impl"
+ // InternalRBAModel.g:12245:1: rule__IntegerValue__Group__1__Impl : ( ( rule__IntegerValue__ValueAssignment_1 ) ) ;
+ public final void rule__IntegerValue__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12249:1: ( ( ( rule__IntegerValue__ValueAssignment_1 ) ) )
+ // InternalRBAModel.g:12250:1: ( ( rule__IntegerValue__ValueAssignment_1 ) )
+ {
+ // InternalRBAModel.g:12250:1: ( ( rule__IntegerValue__ValueAssignment_1 ) )
+ // InternalRBAModel.g:12251:2: ( rule__IntegerValue__ValueAssignment_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getIntegerValueAccess().getValueAssignment_1());
+ }
+ // InternalRBAModel.g:12252:2: ( rule__IntegerValue__ValueAssignment_1 )
+ // InternalRBAModel.g:12252:3: rule__IntegerValue__ValueAssignment_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__IntegerValue__ValueAssignment_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getIntegerValueAccess().getValueAssignment_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__IntegerValue__Group__1__Impl"
+
+
+ // $ANTLR start "rule__StandardValue__Group__0"
+ // InternalRBAModel.g:12261:1: rule__StandardValue__Group__0 : rule__StandardValue__Group__0__Impl rule__StandardValue__Group__1 ;
+ public final void rule__StandardValue__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12265:1: ( rule__StandardValue__Group__0__Impl rule__StandardValue__Group__1 )
+ // InternalRBAModel.g:12266:2: rule__StandardValue__Group__0__Impl rule__StandardValue__Group__1
+ {
+ pushFollow(FOLLOW_71);
+ rule__StandardValue__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__StandardValue__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__StandardValue__Group__0"
+
+
+ // $ANTLR start "rule__StandardValue__Group__0__Impl"
+ // InternalRBAModel.g:12273:1: rule__StandardValue__Group__0__Impl : ( () ) ;
+ public final void rule__StandardValue__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12277:1: ( ( () ) )
+ // InternalRBAModel.g:12278:1: ( () )
+ {
+ // InternalRBAModel.g:12278:1: ( () )
+ // InternalRBAModel.g:12279:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getStandardValueAccess().getStandardValueAction_0());
+ }
+ // InternalRBAModel.g:12280:2: ()
+ // InternalRBAModel.g:12280:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getStandardValueAccess().getStandardValueAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__StandardValue__Group__0__Impl"
+
+
+ // $ANTLR start "rule__StandardValue__Group__1"
+ // InternalRBAModel.g:12288:1: rule__StandardValue__Group__1 : rule__StandardValue__Group__1__Impl ;
+ public final void rule__StandardValue__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12292:1: ( rule__StandardValue__Group__1__Impl )
+ // InternalRBAModel.g:12293:2: rule__StandardValue__Group__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__StandardValue__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__StandardValue__Group__1"
+
+
+ // $ANTLR start "rule__StandardValue__Group__1__Impl"
+ // InternalRBAModel.g:12299:1: rule__StandardValue__Group__1__Impl : ( 'STANDARD_VALUE' ) ;
+ public final void rule__StandardValue__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12303:1: ( ( 'STANDARD_VALUE' ) )
+ // InternalRBAModel.g:12304:1: ( 'STANDARD_VALUE' )
+ {
+ // InternalRBAModel.g:12304:1: ( 'STANDARD_VALUE' )
+ // InternalRBAModel.g:12305:2: 'STANDARD_VALUE'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getStandardValueAccess().getSTANDARD_VALUEKeyword_1());
+ }
+ match(input,136,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getStandardValueAccess().getSTANDARD_VALUEKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__StandardValue__Group__1__Impl"
+
+
+ // $ANTLR start "rule__NoneValue__Group__0"
+ // InternalRBAModel.g:12315:1: rule__NoneValue__Group__0 : rule__NoneValue__Group__0__Impl rule__NoneValue__Group__1 ;
+ public final void rule__NoneValue__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12319:1: ( rule__NoneValue__Group__0__Impl rule__NoneValue__Group__1 )
+ // InternalRBAModel.g:12320:2: rule__NoneValue__Group__0__Impl rule__NoneValue__Group__1
+ {
+ pushFollow(FOLLOW_72);
+ rule__NoneValue__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__NoneValue__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__NoneValue__Group__0"
+
+
+ // $ANTLR start "rule__NoneValue__Group__0__Impl"
+ // InternalRBAModel.g:12327:1: rule__NoneValue__Group__0__Impl : ( () ) ;
+ public final void rule__NoneValue__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12331:1: ( ( () ) )
+ // InternalRBAModel.g:12332:1: ( () )
+ {
+ // InternalRBAModel.g:12332:1: ( () )
+ // InternalRBAModel.g:12333:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getNoneValueAccess().getNoneValueAction_0());
+ }
+ // InternalRBAModel.g:12334:2: ()
+ // InternalRBAModel.g:12334:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getNoneValueAccess().getNoneValueAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__NoneValue__Group__0__Impl"
+
+
+ // $ANTLR start "rule__NoneValue__Group__1"
+ // InternalRBAModel.g:12342:1: rule__NoneValue__Group__1 : rule__NoneValue__Group__1__Impl ;
+ public final void rule__NoneValue__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12346:1: ( rule__NoneValue__Group__1__Impl )
+ // InternalRBAModel.g:12347:2: rule__NoneValue__Group__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__NoneValue__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__NoneValue__Group__1"
+
+
+ // $ANTLR start "rule__NoneValue__Group__1__Impl"
+ // InternalRBAModel.g:12353:1: rule__NoneValue__Group__1__Impl : ( 'NONE_VALUE' ) ;
+ public final void rule__NoneValue__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12357:1: ( ( 'NONE_VALUE' ) )
+ // InternalRBAModel.g:12358:1: ( 'NONE_VALUE' )
+ {
+ // InternalRBAModel.g:12358:1: ( 'NONE_VALUE' )
+ // InternalRBAModel.g:12359:2: 'NONE_VALUE'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getNoneValueAccess().getNONE_VALUEKeyword_1());
+ }
+ match(input,137,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getNoneValueAccess().getNONE_VALUEKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__NoneValue__Group__1__Impl"
+
+
+ // $ANTLR start "rule__MinValue__Group__0"
+ // InternalRBAModel.g:12369:1: rule__MinValue__Group__0 : rule__MinValue__Group__0__Impl rule__MinValue__Group__1 ;
+ public final void rule__MinValue__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12373:1: ( rule__MinValue__Group__0__Impl rule__MinValue__Group__1 )
+ // InternalRBAModel.g:12374:2: rule__MinValue__Group__0__Impl rule__MinValue__Group__1
+ {
+ pushFollow(FOLLOW_73);
+ rule__MinValue__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__MinValue__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__MinValue__Group__0"
+
+
+ // $ANTLR start "rule__MinValue__Group__0__Impl"
+ // InternalRBAModel.g:12381:1: rule__MinValue__Group__0__Impl : ( () ) ;
+ public final void rule__MinValue__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12385:1: ( ( () ) )
+ // InternalRBAModel.g:12386:1: ( () )
+ {
+ // InternalRBAModel.g:12386:1: ( () )
+ // InternalRBAModel.g:12387:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getMinValueAccess().getMinValueAction_0());
+ }
+ // InternalRBAModel.g:12388:2: ()
+ // InternalRBAModel.g:12388:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getMinValueAccess().getMinValueAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__MinValue__Group__0__Impl"
+
+
+ // $ANTLR start "rule__MinValue__Group__1"
+ // InternalRBAModel.g:12396:1: rule__MinValue__Group__1 : rule__MinValue__Group__1__Impl ;
+ public final void rule__MinValue__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12400:1: ( rule__MinValue__Group__1__Impl )
+ // InternalRBAModel.g:12401:2: rule__MinValue__Group__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__MinValue__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__MinValue__Group__1"
+
+
+ // $ANTLR start "rule__MinValue__Group__1__Impl"
+ // InternalRBAModel.g:12407:1: rule__MinValue__Group__1__Impl : ( 'MIN_VALUE' ) ;
+ public final void rule__MinValue__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12411:1: ( ( 'MIN_VALUE' ) )
+ // InternalRBAModel.g:12412:1: ( 'MIN_VALUE' )
+ {
+ // InternalRBAModel.g:12412:1: ( 'MIN_VALUE' )
+ // InternalRBAModel.g:12413:2: 'MIN_VALUE'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getMinValueAccess().getMIN_VALUEKeyword_1());
+ }
+ match(input,138,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getMinValueAccess().getMIN_VALUEKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__MinValue__Group__1__Impl"
+
+
+ // $ANTLR start "rule__MaxValue__Group__0"
+ // InternalRBAModel.g:12423:1: rule__MaxValue__Group__0 : rule__MaxValue__Group__0__Impl rule__MaxValue__Group__1 ;
+ public final void rule__MaxValue__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12427:1: ( rule__MaxValue__Group__0__Impl rule__MaxValue__Group__1 )
+ // InternalRBAModel.g:12428:2: rule__MaxValue__Group__0__Impl rule__MaxValue__Group__1
+ {
+ pushFollow(FOLLOW_74);
+ rule__MaxValue__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__MaxValue__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__MaxValue__Group__0"
+
+
+ // $ANTLR start "rule__MaxValue__Group__0__Impl"
+ // InternalRBAModel.g:12435:1: rule__MaxValue__Group__0__Impl : ( () ) ;
+ public final void rule__MaxValue__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12439:1: ( ( () ) )
+ // InternalRBAModel.g:12440:1: ( () )
+ {
+ // InternalRBAModel.g:12440:1: ( () )
+ // InternalRBAModel.g:12441:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getMaxValueAccess().getMaxValueAction_0());
+ }
+ // InternalRBAModel.g:12442:2: ()
+ // InternalRBAModel.g:12442:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getMaxValueAccess().getMaxValueAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__MaxValue__Group__0__Impl"
+
+
+ // $ANTLR start "rule__MaxValue__Group__1"
+ // InternalRBAModel.g:12450:1: rule__MaxValue__Group__1 : rule__MaxValue__Group__1__Impl ;
+ public final void rule__MaxValue__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12454:1: ( rule__MaxValue__Group__1__Impl )
+ // InternalRBAModel.g:12455:2: rule__MaxValue__Group__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__MaxValue__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__MaxValue__Group__1"
+
+
+ // $ANTLR start "rule__MaxValue__Group__1__Impl"
+ // InternalRBAModel.g:12461:1: rule__MaxValue__Group__1__Impl : ( 'MAX_VALUE' ) ;
+ public final void rule__MaxValue__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12465:1: ( ( 'MAX_VALUE' ) )
+ // InternalRBAModel.g:12466:1: ( 'MAX_VALUE' )
+ {
+ // InternalRBAModel.g:12466:1: ( 'MAX_VALUE' )
+ // InternalRBAModel.g:12467:2: 'MAX_VALUE'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getMaxValueAccess().getMAX_VALUEKeyword_1());
+ }
+ match(input,139,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getMaxValueAccess().getMAX_VALUEKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__MaxValue__Group__1__Impl"
+
+
+ // $ANTLR start "rule__CImpliesOperator__Group__0"
+ // InternalRBAModel.g:12477:1: rule__CImpliesOperator__Group__0 : rule__CImpliesOperator__Group__0__Impl rule__CImpliesOperator__Group__1 ;
+ public final void rule__CImpliesOperator__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12481:1: ( rule__CImpliesOperator__Group__0__Impl rule__CImpliesOperator__Group__1 )
+ // InternalRBAModel.g:12482:2: rule__CImpliesOperator__Group__0__Impl rule__CImpliesOperator__Group__1
+ {
+ pushFollow(FOLLOW_75);
+ rule__CImpliesOperator__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__CImpliesOperator__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CImpliesOperator__Group__0"
+
+
+ // $ANTLR start "rule__CImpliesOperator__Group__0__Impl"
+ // InternalRBAModel.g:12489:1: rule__CImpliesOperator__Group__0__Impl : ( ruleCOrOperator ) ;
+ public final void rule__CImpliesOperator__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12493:1: ( ( ruleCOrOperator ) )
+ // InternalRBAModel.g:12494:1: ( ruleCOrOperator )
+ {
+ // InternalRBAModel.g:12494:1: ( ruleCOrOperator )
+ // InternalRBAModel.g:12495:2: ruleCOrOperator
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCImpliesOperatorAccess().getCOrOperatorParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleCOrOperator();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCImpliesOperatorAccess().getCOrOperatorParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CImpliesOperator__Group__0__Impl"
+
+
+ // $ANTLR start "rule__CImpliesOperator__Group__1"
+ // InternalRBAModel.g:12504:1: rule__CImpliesOperator__Group__1 : rule__CImpliesOperator__Group__1__Impl ;
+ public final void rule__CImpliesOperator__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12508:1: ( rule__CImpliesOperator__Group__1__Impl )
+ // InternalRBAModel.g:12509:2: rule__CImpliesOperator__Group__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__CImpliesOperator__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CImpliesOperator__Group__1"
+
+
+ // $ANTLR start "rule__CImpliesOperator__Group__1__Impl"
+ // InternalRBAModel.g:12515:1: rule__CImpliesOperator__Group__1__Impl : ( ( rule__CImpliesOperator__Group_1__0 )* ) ;
+ public final void rule__CImpliesOperator__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12519:1: ( ( ( rule__CImpliesOperator__Group_1__0 )* ) )
+ // InternalRBAModel.g:12520:1: ( ( rule__CImpliesOperator__Group_1__0 )* )
+ {
+ // InternalRBAModel.g:12520:1: ( ( rule__CImpliesOperator__Group_1__0 )* )
+ // InternalRBAModel.g:12521:2: ( rule__CImpliesOperator__Group_1__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCImpliesOperatorAccess().getGroup_1());
+ }
+ // InternalRBAModel.g:12522:2: ( rule__CImpliesOperator__Group_1__0 )*
+ loop60:
+ do {
+ int alt60=2;
+ int LA60_0 = input.LA(1);
+
+ if ( (LA60_0==23) ) {
+ int LA60_2 = input.LA(2);
+
+ if ( (synpred144_InternalRBAModel()) ) {
+ alt60=1;
+ }
+
+
+ }
+
+
+ switch (alt60) {
+ case 1 :
+ // InternalRBAModel.g:12522:3: rule__CImpliesOperator__Group_1__0
+ {
+ pushFollow(FOLLOW_76);
+ rule__CImpliesOperator__Group_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop60;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCImpliesOperatorAccess().getGroup_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CImpliesOperator__Group__1__Impl"
+
+
+ // $ANTLR start "rule__CImpliesOperator__Group_1__0"
+ // InternalRBAModel.g:12531:1: rule__CImpliesOperator__Group_1__0 : rule__CImpliesOperator__Group_1__0__Impl rule__CImpliesOperator__Group_1__1 ;
+ public final void rule__CImpliesOperator__Group_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12535:1: ( rule__CImpliesOperator__Group_1__0__Impl rule__CImpliesOperator__Group_1__1 )
+ // InternalRBAModel.g:12536:2: rule__CImpliesOperator__Group_1__0__Impl rule__CImpliesOperator__Group_1__1
+ {
+ pushFollow(FOLLOW_33);
+ rule__CImpliesOperator__Group_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__CImpliesOperator__Group_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CImpliesOperator__Group_1__0"
+
+
+ // $ANTLR start "rule__CImpliesOperator__Group_1__0__Impl"
+ // InternalRBAModel.g:12543:1: rule__CImpliesOperator__Group_1__0__Impl : ( ( rule__CImpliesOperator__Group_1_0__0 ) ) ;
+ public final void rule__CImpliesOperator__Group_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12547:1: ( ( ( rule__CImpliesOperator__Group_1_0__0 ) ) )
+ // InternalRBAModel.g:12548:1: ( ( rule__CImpliesOperator__Group_1_0__0 ) )
+ {
+ // InternalRBAModel.g:12548:1: ( ( rule__CImpliesOperator__Group_1_0__0 ) )
+ // InternalRBAModel.g:12549:2: ( rule__CImpliesOperator__Group_1_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCImpliesOperatorAccess().getGroup_1_0());
+ }
+ // InternalRBAModel.g:12550:2: ( rule__CImpliesOperator__Group_1_0__0 )
+ // InternalRBAModel.g:12550:3: rule__CImpliesOperator__Group_1_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__CImpliesOperator__Group_1_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCImpliesOperatorAccess().getGroup_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CImpliesOperator__Group_1__0__Impl"
+
+
+ // $ANTLR start "rule__CImpliesOperator__Group_1__1"
+ // InternalRBAModel.g:12558:1: rule__CImpliesOperator__Group_1__1 : rule__CImpliesOperator__Group_1__1__Impl ;
+ public final void rule__CImpliesOperator__Group_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12562:1: ( rule__CImpliesOperator__Group_1__1__Impl )
+ // InternalRBAModel.g:12563:2: rule__CImpliesOperator__Group_1__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__CImpliesOperator__Group_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CImpliesOperator__Group_1__1"
+
+
+ // $ANTLR start "rule__CImpliesOperator__Group_1__1__Impl"
+ // InternalRBAModel.g:12569:1: rule__CImpliesOperator__Group_1__1__Impl : ( ( rule__CImpliesOperator__OperandAssignment_1_1 ) ) ;
+ public final void rule__CImpliesOperator__Group_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12573:1: ( ( ( rule__CImpliesOperator__OperandAssignment_1_1 ) ) )
+ // InternalRBAModel.g:12574:1: ( ( rule__CImpliesOperator__OperandAssignment_1_1 ) )
+ {
+ // InternalRBAModel.g:12574:1: ( ( rule__CImpliesOperator__OperandAssignment_1_1 ) )
+ // InternalRBAModel.g:12575:2: ( rule__CImpliesOperator__OperandAssignment_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCImpliesOperatorAccess().getOperandAssignment_1_1());
+ }
+ // InternalRBAModel.g:12576:2: ( rule__CImpliesOperator__OperandAssignment_1_1 )
+ // InternalRBAModel.g:12576:3: rule__CImpliesOperator__OperandAssignment_1_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__CImpliesOperator__OperandAssignment_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCImpliesOperatorAccess().getOperandAssignment_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CImpliesOperator__Group_1__1__Impl"
+
+
+ // $ANTLR start "rule__CImpliesOperator__Group_1_0__0"
+ // InternalRBAModel.g:12585:1: rule__CImpliesOperator__Group_1_0__0 : rule__CImpliesOperator__Group_1_0__0__Impl ;
+ public final void rule__CImpliesOperator__Group_1_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12589:1: ( rule__CImpliesOperator__Group_1_0__0__Impl )
+ // InternalRBAModel.g:12590:2: rule__CImpliesOperator__Group_1_0__0__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__CImpliesOperator__Group_1_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CImpliesOperator__Group_1_0__0"
+
+
+ // $ANTLR start "rule__CImpliesOperator__Group_1_0__0__Impl"
+ // InternalRBAModel.g:12596:1: rule__CImpliesOperator__Group_1_0__0__Impl : ( ( rule__CImpliesOperator__Group_1_0_0__0 ) ) ;
+ public final void rule__CImpliesOperator__Group_1_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12600:1: ( ( ( rule__CImpliesOperator__Group_1_0_0__0 ) ) )
+ // InternalRBAModel.g:12601:1: ( ( rule__CImpliesOperator__Group_1_0_0__0 ) )
+ {
+ // InternalRBAModel.g:12601:1: ( ( rule__CImpliesOperator__Group_1_0_0__0 ) )
+ // InternalRBAModel.g:12602:2: ( rule__CImpliesOperator__Group_1_0_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCImpliesOperatorAccess().getGroup_1_0_0());
+ }
+ // InternalRBAModel.g:12603:2: ( rule__CImpliesOperator__Group_1_0_0__0 )
+ // InternalRBAModel.g:12603:3: rule__CImpliesOperator__Group_1_0_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__CImpliesOperator__Group_1_0_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCImpliesOperatorAccess().getGroup_1_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CImpliesOperator__Group_1_0__0__Impl"
+
+
+ // $ANTLR start "rule__CImpliesOperator__Group_1_0_0__0"
+ // InternalRBAModel.g:12612:1: rule__CImpliesOperator__Group_1_0_0__0 : rule__CImpliesOperator__Group_1_0_0__0__Impl rule__CImpliesOperator__Group_1_0_0__1 ;
+ public final void rule__CImpliesOperator__Group_1_0_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12616:1: ( rule__CImpliesOperator__Group_1_0_0__0__Impl rule__CImpliesOperator__Group_1_0_0__1 )
+ // InternalRBAModel.g:12617:2: rule__CImpliesOperator__Group_1_0_0__0__Impl rule__CImpliesOperator__Group_1_0_0__1
+ {
+ pushFollow(FOLLOW_75);
+ rule__CImpliesOperator__Group_1_0_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__CImpliesOperator__Group_1_0_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CImpliesOperator__Group_1_0_0__0"
+
+
+ // $ANTLR start "rule__CImpliesOperator__Group_1_0_0__0__Impl"
+ // InternalRBAModel.g:12624:1: rule__CImpliesOperator__Group_1_0_0__0__Impl : ( () ) ;
+ public final void rule__CImpliesOperator__Group_1_0_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12628:1: ( ( () ) )
+ // InternalRBAModel.g:12629:1: ( () )
+ {
+ // InternalRBAModel.g:12629:1: ( () )
+ // InternalRBAModel.g:12630:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCImpliesOperatorAccess().getImpliesOperatorOperandAction_1_0_0_0());
+ }
+ // InternalRBAModel.g:12631:2: ()
+ // InternalRBAModel.g:12631:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCImpliesOperatorAccess().getImpliesOperatorOperandAction_1_0_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CImpliesOperator__Group_1_0_0__0__Impl"
+
+
+ // $ANTLR start "rule__CImpliesOperator__Group_1_0_0__1"
+ // InternalRBAModel.g:12639:1: rule__CImpliesOperator__Group_1_0_0__1 : rule__CImpliesOperator__Group_1_0_0__1__Impl ;
+ public final void rule__CImpliesOperator__Group_1_0_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12643:1: ( rule__CImpliesOperator__Group_1_0_0__1__Impl )
+ // InternalRBAModel.g:12644:2: rule__CImpliesOperator__Group_1_0_0__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__CImpliesOperator__Group_1_0_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CImpliesOperator__Group_1_0_0__1"
+
+
+ // $ANTLR start "rule__CImpliesOperator__Group_1_0_0__1__Impl"
+ // InternalRBAModel.g:12650:1: rule__CImpliesOperator__Group_1_0_0__1__Impl : ( ruleOpImplies ) ;
+ public final void rule__CImpliesOperator__Group_1_0_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12654:1: ( ( ruleOpImplies ) )
+ // InternalRBAModel.g:12655:1: ( ruleOpImplies )
+ {
+ // InternalRBAModel.g:12655:1: ( ruleOpImplies )
+ // InternalRBAModel.g:12656:2: ruleOpImplies
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCImpliesOperatorAccess().getOpImpliesParserRuleCall_1_0_0_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpImplies();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCImpliesOperatorAccess().getOpImpliesParserRuleCall_1_0_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CImpliesOperator__Group_1_0_0__1__Impl"
+
+
+ // $ANTLR start "rule__COrOperator__Group__0"
+ // InternalRBAModel.g:12666:1: rule__COrOperator__Group__0 : rule__COrOperator__Group__0__Impl rule__COrOperator__Group__1 ;
+ public final void rule__COrOperator__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12670:1: ( rule__COrOperator__Group__0__Impl rule__COrOperator__Group__1 )
+ // InternalRBAModel.g:12671:2: rule__COrOperator__Group__0__Impl rule__COrOperator__Group__1
+ {
+ pushFollow(FOLLOW_77);
+ rule__COrOperator__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COrOperator__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COrOperator__Group__0"
+
+
+ // $ANTLR start "rule__COrOperator__Group__0__Impl"
+ // InternalRBAModel.g:12678:1: rule__COrOperator__Group__0__Impl : ( ruleCAndOperator ) ;
+ public final void rule__COrOperator__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12682:1: ( ( ruleCAndOperator ) )
+ // InternalRBAModel.g:12683:1: ( ruleCAndOperator )
+ {
+ // InternalRBAModel.g:12683:1: ( ruleCAndOperator )
+ // InternalRBAModel.g:12684:2: ruleCAndOperator
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOrOperatorAccess().getCAndOperatorParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleCAndOperator();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOrOperatorAccess().getCAndOperatorParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COrOperator__Group__0__Impl"
+
+
+ // $ANTLR start "rule__COrOperator__Group__1"
+ // InternalRBAModel.g:12693:1: rule__COrOperator__Group__1 : rule__COrOperator__Group__1__Impl ;
+ public final void rule__COrOperator__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12697:1: ( rule__COrOperator__Group__1__Impl )
+ // InternalRBAModel.g:12698:2: rule__COrOperator__Group__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COrOperator__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COrOperator__Group__1"
+
+
+ // $ANTLR start "rule__COrOperator__Group__1__Impl"
+ // InternalRBAModel.g:12704:1: rule__COrOperator__Group__1__Impl : ( ( rule__COrOperator__Group_1__0 )* ) ;
+ public final void rule__COrOperator__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12708:1: ( ( ( rule__COrOperator__Group_1__0 )* ) )
+ // InternalRBAModel.g:12709:1: ( ( rule__COrOperator__Group_1__0 )* )
+ {
+ // InternalRBAModel.g:12709:1: ( ( rule__COrOperator__Group_1__0 )* )
+ // InternalRBAModel.g:12710:2: ( rule__COrOperator__Group_1__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOrOperatorAccess().getGroup_1());
+ }
+ // InternalRBAModel.g:12711:2: ( rule__COrOperator__Group_1__0 )*
+ loop61:
+ do {
+ int alt61=2;
+ int LA61_0 = input.LA(1);
+
+ if ( (LA61_0==24) ) {
+ int LA61_2 = input.LA(2);
+
+ if ( (synpred145_InternalRBAModel()) ) {
+ alt61=1;
+ }
+
+
+ }
+
+
+ switch (alt61) {
+ case 1 :
+ // InternalRBAModel.g:12711:3: rule__COrOperator__Group_1__0
+ {
+ pushFollow(FOLLOW_78);
+ rule__COrOperator__Group_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop61;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOrOperatorAccess().getGroup_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COrOperator__Group__1__Impl"
+
+
+ // $ANTLR start "rule__COrOperator__Group_1__0"
+ // InternalRBAModel.g:12720:1: rule__COrOperator__Group_1__0 : rule__COrOperator__Group_1__0__Impl rule__COrOperator__Group_1__1 ;
+ public final void rule__COrOperator__Group_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12724:1: ( rule__COrOperator__Group_1__0__Impl rule__COrOperator__Group_1__1 )
+ // InternalRBAModel.g:12725:2: rule__COrOperator__Group_1__0__Impl rule__COrOperator__Group_1__1
+ {
+ pushFollow(FOLLOW_33);
+ rule__COrOperator__Group_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COrOperator__Group_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COrOperator__Group_1__0"
+
+
+ // $ANTLR start "rule__COrOperator__Group_1__0__Impl"
+ // InternalRBAModel.g:12732:1: rule__COrOperator__Group_1__0__Impl : ( ( rule__COrOperator__Group_1_0__0 ) ) ;
+ public final void rule__COrOperator__Group_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12736:1: ( ( ( rule__COrOperator__Group_1_0__0 ) ) )
+ // InternalRBAModel.g:12737:1: ( ( rule__COrOperator__Group_1_0__0 ) )
+ {
+ // InternalRBAModel.g:12737:1: ( ( rule__COrOperator__Group_1_0__0 ) )
+ // InternalRBAModel.g:12738:2: ( rule__COrOperator__Group_1_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOrOperatorAccess().getGroup_1_0());
+ }
+ // InternalRBAModel.g:12739:2: ( rule__COrOperator__Group_1_0__0 )
+ // InternalRBAModel.g:12739:3: rule__COrOperator__Group_1_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COrOperator__Group_1_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOrOperatorAccess().getGroup_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COrOperator__Group_1__0__Impl"
+
+
+ // $ANTLR start "rule__COrOperator__Group_1__1"
+ // InternalRBAModel.g:12747:1: rule__COrOperator__Group_1__1 : rule__COrOperator__Group_1__1__Impl ;
+ public final void rule__COrOperator__Group_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12751:1: ( rule__COrOperator__Group_1__1__Impl )
+ // InternalRBAModel.g:12752:2: rule__COrOperator__Group_1__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COrOperator__Group_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COrOperator__Group_1__1"
+
+
+ // $ANTLR start "rule__COrOperator__Group_1__1__Impl"
+ // InternalRBAModel.g:12758:1: rule__COrOperator__Group_1__1__Impl : ( ( rule__COrOperator__OperandAssignment_1_1 ) ) ;
+ public final void rule__COrOperator__Group_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12762:1: ( ( ( rule__COrOperator__OperandAssignment_1_1 ) ) )
+ // InternalRBAModel.g:12763:1: ( ( rule__COrOperator__OperandAssignment_1_1 ) )
+ {
+ // InternalRBAModel.g:12763:1: ( ( rule__COrOperator__OperandAssignment_1_1 ) )
+ // InternalRBAModel.g:12764:2: ( rule__COrOperator__OperandAssignment_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOrOperatorAccess().getOperandAssignment_1_1());
+ }
+ // InternalRBAModel.g:12765:2: ( rule__COrOperator__OperandAssignment_1_1 )
+ // InternalRBAModel.g:12765:3: rule__COrOperator__OperandAssignment_1_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__COrOperator__OperandAssignment_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOrOperatorAccess().getOperandAssignment_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COrOperator__Group_1__1__Impl"
+
+
+ // $ANTLR start "rule__COrOperator__Group_1_0__0"
+ // InternalRBAModel.g:12774:1: rule__COrOperator__Group_1_0__0 : rule__COrOperator__Group_1_0__0__Impl ;
+ public final void rule__COrOperator__Group_1_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12778:1: ( rule__COrOperator__Group_1_0__0__Impl )
+ // InternalRBAModel.g:12779:2: rule__COrOperator__Group_1_0__0__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COrOperator__Group_1_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COrOperator__Group_1_0__0"
+
+
+ // $ANTLR start "rule__COrOperator__Group_1_0__0__Impl"
+ // InternalRBAModel.g:12785:1: rule__COrOperator__Group_1_0__0__Impl : ( ( rule__COrOperator__Group_1_0_0__0 ) ) ;
+ public final void rule__COrOperator__Group_1_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12789:1: ( ( ( rule__COrOperator__Group_1_0_0__0 ) ) )
+ // InternalRBAModel.g:12790:1: ( ( rule__COrOperator__Group_1_0_0__0 ) )
+ {
+ // InternalRBAModel.g:12790:1: ( ( rule__COrOperator__Group_1_0_0__0 ) )
+ // InternalRBAModel.g:12791:2: ( rule__COrOperator__Group_1_0_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOrOperatorAccess().getGroup_1_0_0());
+ }
+ // InternalRBAModel.g:12792:2: ( rule__COrOperator__Group_1_0_0__0 )
+ // InternalRBAModel.g:12792:3: rule__COrOperator__Group_1_0_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COrOperator__Group_1_0_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOrOperatorAccess().getGroup_1_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COrOperator__Group_1_0__0__Impl"
+
+
+ // $ANTLR start "rule__COrOperator__Group_1_0_0__0"
+ // InternalRBAModel.g:12801:1: rule__COrOperator__Group_1_0_0__0 : rule__COrOperator__Group_1_0_0__0__Impl rule__COrOperator__Group_1_0_0__1 ;
+ public final void rule__COrOperator__Group_1_0_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12805:1: ( rule__COrOperator__Group_1_0_0__0__Impl rule__COrOperator__Group_1_0_0__1 )
+ // InternalRBAModel.g:12806:2: rule__COrOperator__Group_1_0_0__0__Impl rule__COrOperator__Group_1_0_0__1
+ {
+ pushFollow(FOLLOW_77);
+ rule__COrOperator__Group_1_0_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COrOperator__Group_1_0_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COrOperator__Group_1_0_0__0"
+
+
+ // $ANTLR start "rule__COrOperator__Group_1_0_0__0__Impl"
+ // InternalRBAModel.g:12813:1: rule__COrOperator__Group_1_0_0__0__Impl : ( () ) ;
+ public final void rule__COrOperator__Group_1_0_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12817:1: ( ( () ) )
+ // InternalRBAModel.g:12818:1: ( () )
+ {
+ // InternalRBAModel.g:12818:1: ( () )
+ // InternalRBAModel.g:12819:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOrOperatorAccess().getOrOperatorOperandAction_1_0_0_0());
+ }
+ // InternalRBAModel.g:12820:2: ()
+ // InternalRBAModel.g:12820:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOrOperatorAccess().getOrOperatorOperandAction_1_0_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COrOperator__Group_1_0_0__0__Impl"
+
+
+ // $ANTLR start "rule__COrOperator__Group_1_0_0__1"
+ // InternalRBAModel.g:12828:1: rule__COrOperator__Group_1_0_0__1 : rule__COrOperator__Group_1_0_0__1__Impl ;
+ public final void rule__COrOperator__Group_1_0_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12832:1: ( rule__COrOperator__Group_1_0_0__1__Impl )
+ // InternalRBAModel.g:12833:2: rule__COrOperator__Group_1_0_0__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COrOperator__Group_1_0_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COrOperator__Group_1_0_0__1"
+
+
+ // $ANTLR start "rule__COrOperator__Group_1_0_0__1__Impl"
+ // InternalRBAModel.g:12839:1: rule__COrOperator__Group_1_0_0__1__Impl : ( ruleOpOr ) ;
+ public final void rule__COrOperator__Group_1_0_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12843:1: ( ( ruleOpOr ) )
+ // InternalRBAModel.g:12844:1: ( ruleOpOr )
+ {
+ // InternalRBAModel.g:12844:1: ( ruleOpOr )
+ // InternalRBAModel.g:12845:2: ruleOpOr
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOrOperatorAccess().getOpOrParserRuleCall_1_0_0_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpOr();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOrOperatorAccess().getOpOrParserRuleCall_1_0_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COrOperator__Group_1_0_0__1__Impl"
+
+
+ // $ANTLR start "rule__CAndOperator__Group__0"
+ // InternalRBAModel.g:12855:1: rule__CAndOperator__Group__0 : rule__CAndOperator__Group__0__Impl rule__CAndOperator__Group__1 ;
+ public final void rule__CAndOperator__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12859:1: ( rule__CAndOperator__Group__0__Impl rule__CAndOperator__Group__1 )
+ // InternalRBAModel.g:12860:2: rule__CAndOperator__Group__0__Impl rule__CAndOperator__Group__1
+ {
+ pushFollow(FOLLOW_63);
+ rule__CAndOperator__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__CAndOperator__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CAndOperator__Group__0"
+
+
+ // $ANTLR start "rule__CAndOperator__Group__0__Impl"
+ // InternalRBAModel.g:12867:1: rule__CAndOperator__Group__0__Impl : ( ruleCEqualityExpression ) ;
+ public final void rule__CAndOperator__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12871:1: ( ( ruleCEqualityExpression ) )
+ // InternalRBAModel.g:12872:1: ( ruleCEqualityExpression )
+ {
+ // InternalRBAModel.g:12872:1: ( ruleCEqualityExpression )
+ // InternalRBAModel.g:12873:2: ruleCEqualityExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCAndOperatorAccess().getCEqualityExpressionParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleCEqualityExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCAndOperatorAccess().getCEqualityExpressionParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CAndOperator__Group__0__Impl"
+
+
+ // $ANTLR start "rule__CAndOperator__Group__1"
+ // InternalRBAModel.g:12882:1: rule__CAndOperator__Group__1 : rule__CAndOperator__Group__1__Impl ;
+ public final void rule__CAndOperator__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12886:1: ( rule__CAndOperator__Group__1__Impl )
+ // InternalRBAModel.g:12887:2: rule__CAndOperator__Group__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__CAndOperator__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CAndOperator__Group__1"
+
+
+ // $ANTLR start "rule__CAndOperator__Group__1__Impl"
+ // InternalRBAModel.g:12893:1: rule__CAndOperator__Group__1__Impl : ( ( rule__CAndOperator__Group_1__0 )* ) ;
+ public final void rule__CAndOperator__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12897:1: ( ( ( rule__CAndOperator__Group_1__0 )* ) )
+ // InternalRBAModel.g:12898:1: ( ( rule__CAndOperator__Group_1__0 )* )
+ {
+ // InternalRBAModel.g:12898:1: ( ( rule__CAndOperator__Group_1__0 )* )
+ // InternalRBAModel.g:12899:2: ( rule__CAndOperator__Group_1__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCAndOperatorAccess().getGroup_1());
+ }
+ // InternalRBAModel.g:12900:2: ( rule__CAndOperator__Group_1__0 )*
+ loop62:
+ do {
+ int alt62=2;
+ int LA62_0 = input.LA(1);
+
+ if ( (LA62_0==25) ) {
+ int LA62_2 = input.LA(2);
+
+ if ( (synpred146_InternalRBAModel()) ) {
+ alt62=1;
+ }
+
+
+ }
+
+
+ switch (alt62) {
+ case 1 :
+ // InternalRBAModel.g:12900:3: rule__CAndOperator__Group_1__0
+ {
+ pushFollow(FOLLOW_64);
+ rule__CAndOperator__Group_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop62;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCAndOperatorAccess().getGroup_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CAndOperator__Group__1__Impl"
+
+
+ // $ANTLR start "rule__CAndOperator__Group_1__0"
+ // InternalRBAModel.g:12909:1: rule__CAndOperator__Group_1__0 : rule__CAndOperator__Group_1__0__Impl rule__CAndOperator__Group_1__1 ;
+ public final void rule__CAndOperator__Group_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12913:1: ( rule__CAndOperator__Group_1__0__Impl rule__CAndOperator__Group_1__1 )
+ // InternalRBAModel.g:12914:2: rule__CAndOperator__Group_1__0__Impl rule__CAndOperator__Group_1__1
+ {
+ pushFollow(FOLLOW_33);
+ rule__CAndOperator__Group_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__CAndOperator__Group_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CAndOperator__Group_1__0"
+
+
+ // $ANTLR start "rule__CAndOperator__Group_1__0__Impl"
+ // InternalRBAModel.g:12921:1: rule__CAndOperator__Group_1__0__Impl : ( ( rule__CAndOperator__Group_1_0__0 ) ) ;
+ public final void rule__CAndOperator__Group_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12925:1: ( ( ( rule__CAndOperator__Group_1_0__0 ) ) )
+ // InternalRBAModel.g:12926:1: ( ( rule__CAndOperator__Group_1_0__0 ) )
+ {
+ // InternalRBAModel.g:12926:1: ( ( rule__CAndOperator__Group_1_0__0 ) )
+ // InternalRBAModel.g:12927:2: ( rule__CAndOperator__Group_1_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCAndOperatorAccess().getGroup_1_0());
+ }
+ // InternalRBAModel.g:12928:2: ( rule__CAndOperator__Group_1_0__0 )
+ // InternalRBAModel.g:12928:3: rule__CAndOperator__Group_1_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__CAndOperator__Group_1_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCAndOperatorAccess().getGroup_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CAndOperator__Group_1__0__Impl"
+
+
+ // $ANTLR start "rule__CAndOperator__Group_1__1"
+ // InternalRBAModel.g:12936:1: rule__CAndOperator__Group_1__1 : rule__CAndOperator__Group_1__1__Impl ;
+ public final void rule__CAndOperator__Group_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12940:1: ( rule__CAndOperator__Group_1__1__Impl )
+ // InternalRBAModel.g:12941:2: rule__CAndOperator__Group_1__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__CAndOperator__Group_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CAndOperator__Group_1__1"
+
+
+ // $ANTLR start "rule__CAndOperator__Group_1__1__Impl"
+ // InternalRBAModel.g:12947:1: rule__CAndOperator__Group_1__1__Impl : ( ( rule__CAndOperator__OperandAssignment_1_1 ) ) ;
+ public final void rule__CAndOperator__Group_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12951:1: ( ( ( rule__CAndOperator__OperandAssignment_1_1 ) ) )
+ // InternalRBAModel.g:12952:1: ( ( rule__CAndOperator__OperandAssignment_1_1 ) )
+ {
+ // InternalRBAModel.g:12952:1: ( ( rule__CAndOperator__OperandAssignment_1_1 ) )
+ // InternalRBAModel.g:12953:2: ( rule__CAndOperator__OperandAssignment_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCAndOperatorAccess().getOperandAssignment_1_1());
+ }
+ // InternalRBAModel.g:12954:2: ( rule__CAndOperator__OperandAssignment_1_1 )
+ // InternalRBAModel.g:12954:3: rule__CAndOperator__OperandAssignment_1_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__CAndOperator__OperandAssignment_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCAndOperatorAccess().getOperandAssignment_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CAndOperator__Group_1__1__Impl"
+
+
+ // $ANTLR start "rule__CAndOperator__Group_1_0__0"
+ // InternalRBAModel.g:12963:1: rule__CAndOperator__Group_1_0__0 : rule__CAndOperator__Group_1_0__0__Impl ;
+ public final void rule__CAndOperator__Group_1_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12967:1: ( rule__CAndOperator__Group_1_0__0__Impl )
+ // InternalRBAModel.g:12968:2: rule__CAndOperator__Group_1_0__0__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__CAndOperator__Group_1_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CAndOperator__Group_1_0__0"
+
+
+ // $ANTLR start "rule__CAndOperator__Group_1_0__0__Impl"
+ // InternalRBAModel.g:12974:1: rule__CAndOperator__Group_1_0__0__Impl : ( ( rule__CAndOperator__Group_1_0_0__0 ) ) ;
+ public final void rule__CAndOperator__Group_1_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12978:1: ( ( ( rule__CAndOperator__Group_1_0_0__0 ) ) )
+ // InternalRBAModel.g:12979:1: ( ( rule__CAndOperator__Group_1_0_0__0 ) )
+ {
+ // InternalRBAModel.g:12979:1: ( ( rule__CAndOperator__Group_1_0_0__0 ) )
+ // InternalRBAModel.g:12980:2: ( rule__CAndOperator__Group_1_0_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCAndOperatorAccess().getGroup_1_0_0());
+ }
+ // InternalRBAModel.g:12981:2: ( rule__CAndOperator__Group_1_0_0__0 )
+ // InternalRBAModel.g:12981:3: rule__CAndOperator__Group_1_0_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__CAndOperator__Group_1_0_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCAndOperatorAccess().getGroup_1_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CAndOperator__Group_1_0__0__Impl"
+
+
+ // $ANTLR start "rule__CAndOperator__Group_1_0_0__0"
+ // InternalRBAModel.g:12990:1: rule__CAndOperator__Group_1_0_0__0 : rule__CAndOperator__Group_1_0_0__0__Impl rule__CAndOperator__Group_1_0_0__1 ;
+ public final void rule__CAndOperator__Group_1_0_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:12994:1: ( rule__CAndOperator__Group_1_0_0__0__Impl rule__CAndOperator__Group_1_0_0__1 )
+ // InternalRBAModel.g:12995:2: rule__CAndOperator__Group_1_0_0__0__Impl rule__CAndOperator__Group_1_0_0__1
+ {
+ pushFollow(FOLLOW_63);
+ rule__CAndOperator__Group_1_0_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__CAndOperator__Group_1_0_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CAndOperator__Group_1_0_0__0"
+
+
+ // $ANTLR start "rule__CAndOperator__Group_1_0_0__0__Impl"
+ // InternalRBAModel.g:13002:1: rule__CAndOperator__Group_1_0_0__0__Impl : ( () ) ;
+ public final void rule__CAndOperator__Group_1_0_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13006:1: ( ( () ) )
+ // InternalRBAModel.g:13007:1: ( () )
+ {
+ // InternalRBAModel.g:13007:1: ( () )
+ // InternalRBAModel.g:13008:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCAndOperatorAccess().getAndOperatorOperandAction_1_0_0_0());
+ }
+ // InternalRBAModel.g:13009:2: ()
+ // InternalRBAModel.g:13009:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCAndOperatorAccess().getAndOperatorOperandAction_1_0_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CAndOperator__Group_1_0_0__0__Impl"
+
+
+ // $ANTLR start "rule__CAndOperator__Group_1_0_0__1"
+ // InternalRBAModel.g:13017:1: rule__CAndOperator__Group_1_0_0__1 : rule__CAndOperator__Group_1_0_0__1__Impl ;
+ public final void rule__CAndOperator__Group_1_0_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13021:1: ( rule__CAndOperator__Group_1_0_0__1__Impl )
+ // InternalRBAModel.g:13022:2: rule__CAndOperator__Group_1_0_0__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__CAndOperator__Group_1_0_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CAndOperator__Group_1_0_0__1"
+
+
+ // $ANTLR start "rule__CAndOperator__Group_1_0_0__1__Impl"
+ // InternalRBAModel.g:13028:1: rule__CAndOperator__Group_1_0_0__1__Impl : ( ruleOpAnd ) ;
+ public final void rule__CAndOperator__Group_1_0_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13032:1: ( ( ruleOpAnd ) )
+ // InternalRBAModel.g:13033:1: ( ruleOpAnd )
+ {
+ // InternalRBAModel.g:13033:1: ( ruleOpAnd )
+ // InternalRBAModel.g:13034:2: ruleOpAnd
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCAndOperatorAccess().getOpAndParserRuleCall_1_0_0_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpAnd();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCAndOperatorAccess().getOpAndParserRuleCall_1_0_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CAndOperator__Group_1_0_0__1__Impl"
+
+
+ // $ANTLR start "rule__CEqualityExpression__Group__0"
+ // InternalRBAModel.g:13044:1: rule__CEqualityExpression__Group__0 : rule__CEqualityExpression__Group__0__Impl rule__CEqualityExpression__Group__1 ;
+ public final void rule__CEqualityExpression__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13048:1: ( rule__CEqualityExpression__Group__0__Impl rule__CEqualityExpression__Group__1 )
+ // InternalRBAModel.g:13049:2: rule__CEqualityExpression__Group__0__Impl rule__CEqualityExpression__Group__1
+ {
+ pushFollow(FOLLOW_79);
+ rule__CEqualityExpression__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__CEqualityExpression__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CEqualityExpression__Group__0"
+
+
+ // $ANTLR start "rule__CEqualityExpression__Group__0__Impl"
+ // InternalRBAModel.g:13056:1: rule__CEqualityExpression__Group__0__Impl : ( ruleCRelationalExpression ) ;
+ public final void rule__CEqualityExpression__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13060:1: ( ( ruleCRelationalExpression ) )
+ // InternalRBAModel.g:13061:1: ( ruleCRelationalExpression )
+ {
+ // InternalRBAModel.g:13061:1: ( ruleCRelationalExpression )
+ // InternalRBAModel.g:13062:2: ruleCRelationalExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCEqualityExpressionAccess().getCRelationalExpressionParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleCRelationalExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCEqualityExpressionAccess().getCRelationalExpressionParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CEqualityExpression__Group__0__Impl"
+
+
+ // $ANTLR start "rule__CEqualityExpression__Group__1"
+ // InternalRBAModel.g:13071:1: rule__CEqualityExpression__Group__1 : rule__CEqualityExpression__Group__1__Impl ;
+ public final void rule__CEqualityExpression__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13075:1: ( rule__CEqualityExpression__Group__1__Impl )
+ // InternalRBAModel.g:13076:2: rule__CEqualityExpression__Group__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__CEqualityExpression__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CEqualityExpression__Group__1"
+
+
+ // $ANTLR start "rule__CEqualityExpression__Group__1__Impl"
+ // InternalRBAModel.g:13082:1: rule__CEqualityExpression__Group__1__Impl : ( ( rule__CEqualityExpression__Group_1__0 )* ) ;
+ public final void rule__CEqualityExpression__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13086:1: ( ( ( rule__CEqualityExpression__Group_1__0 )* ) )
+ // InternalRBAModel.g:13087:1: ( ( rule__CEqualityExpression__Group_1__0 )* )
+ {
+ // InternalRBAModel.g:13087:1: ( ( rule__CEqualityExpression__Group_1__0 )* )
+ // InternalRBAModel.g:13088:2: ( rule__CEqualityExpression__Group_1__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCEqualityExpressionAccess().getGroup_1());
+ }
+ // InternalRBAModel.g:13089:2: ( rule__CEqualityExpression__Group_1__0 )*
+ loop63:
+ do {
+ int alt63=2;
+ switch ( input.LA(1) ) {
+ case 26:
+ {
+ int LA63_2 = input.LA(2);
+
+ if ( (synpred147_InternalRBAModel()) ) {
+ alt63=1;
+ }
+
+
+ }
+ break;
+ case 27:
+ {
+ int LA63_3 = input.LA(2);
+
+ if ( (synpred147_InternalRBAModel()) ) {
+ alt63=1;
+ }
+
+
+ }
+ break;
+ case 20:
+ {
+ int LA63_4 = input.LA(2);
+
+ if ( (synpred147_InternalRBAModel()) ) {
+ alt63=1;
+ }
+
+
+ }
+ break;
+
+ }
+
+ switch (alt63) {
+ case 1 :
+ // InternalRBAModel.g:13089:3: rule__CEqualityExpression__Group_1__0
+ {
+ pushFollow(FOLLOW_80);
+ rule__CEqualityExpression__Group_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop63;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCEqualityExpressionAccess().getGroup_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CEqualityExpression__Group__1__Impl"
+
+
+ // $ANTLR start "rule__CEqualityExpression__Group_1__0"
+ // InternalRBAModel.g:13098:1: rule__CEqualityExpression__Group_1__0 : rule__CEqualityExpression__Group_1__0__Impl rule__CEqualityExpression__Group_1__1 ;
+ public final void rule__CEqualityExpression__Group_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13102:1: ( rule__CEqualityExpression__Group_1__0__Impl rule__CEqualityExpression__Group_1__1 )
+ // InternalRBAModel.g:13103:2: rule__CEqualityExpression__Group_1__0__Impl rule__CEqualityExpression__Group_1__1
+ {
+ pushFollow(FOLLOW_33);
+ rule__CEqualityExpression__Group_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__CEqualityExpression__Group_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CEqualityExpression__Group_1__0"
+
+
+ // $ANTLR start "rule__CEqualityExpression__Group_1__0__Impl"
+ // InternalRBAModel.g:13110:1: rule__CEqualityExpression__Group_1__0__Impl : ( ( rule__CEqualityExpression__Group_1_0__0 ) ) ;
+ public final void rule__CEqualityExpression__Group_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13114:1: ( ( ( rule__CEqualityExpression__Group_1_0__0 ) ) )
+ // InternalRBAModel.g:13115:1: ( ( rule__CEqualityExpression__Group_1_0__0 ) )
+ {
+ // InternalRBAModel.g:13115:1: ( ( rule__CEqualityExpression__Group_1_0__0 ) )
+ // InternalRBAModel.g:13116:2: ( rule__CEqualityExpression__Group_1_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCEqualityExpressionAccess().getGroup_1_0());
+ }
+ // InternalRBAModel.g:13117:2: ( rule__CEqualityExpression__Group_1_0__0 )
+ // InternalRBAModel.g:13117:3: rule__CEqualityExpression__Group_1_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__CEqualityExpression__Group_1_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCEqualityExpressionAccess().getGroup_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CEqualityExpression__Group_1__0__Impl"
+
+
+ // $ANTLR start "rule__CEqualityExpression__Group_1__1"
+ // InternalRBAModel.g:13125:1: rule__CEqualityExpression__Group_1__1 : rule__CEqualityExpression__Group_1__1__Impl ;
+ public final void rule__CEqualityExpression__Group_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13129:1: ( rule__CEqualityExpression__Group_1__1__Impl )
+ // InternalRBAModel.g:13130:2: rule__CEqualityExpression__Group_1__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__CEqualityExpression__Group_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CEqualityExpression__Group_1__1"
+
+
+ // $ANTLR start "rule__CEqualityExpression__Group_1__1__Impl"
+ // InternalRBAModel.g:13136:1: rule__CEqualityExpression__Group_1__1__Impl : ( ( rule__CEqualityExpression__OperandAssignment_1_1 ) ) ;
+ public final void rule__CEqualityExpression__Group_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13140:1: ( ( ( rule__CEqualityExpression__OperandAssignment_1_1 ) ) )
+ // InternalRBAModel.g:13141:1: ( ( rule__CEqualityExpression__OperandAssignment_1_1 ) )
+ {
+ // InternalRBAModel.g:13141:1: ( ( rule__CEqualityExpression__OperandAssignment_1_1 ) )
+ // InternalRBAModel.g:13142:2: ( rule__CEqualityExpression__OperandAssignment_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCEqualityExpressionAccess().getOperandAssignment_1_1());
+ }
+ // InternalRBAModel.g:13143:2: ( rule__CEqualityExpression__OperandAssignment_1_1 )
+ // InternalRBAModel.g:13143:3: rule__CEqualityExpression__OperandAssignment_1_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__CEqualityExpression__OperandAssignment_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCEqualityExpressionAccess().getOperandAssignment_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CEqualityExpression__Group_1__1__Impl"
+
+
+ // $ANTLR start "rule__CEqualityExpression__Group_1_0__0"
+ // InternalRBAModel.g:13152:1: rule__CEqualityExpression__Group_1_0__0 : rule__CEqualityExpression__Group_1_0__0__Impl ;
+ public final void rule__CEqualityExpression__Group_1_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13156:1: ( rule__CEqualityExpression__Group_1_0__0__Impl )
+ // InternalRBAModel.g:13157:2: rule__CEqualityExpression__Group_1_0__0__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__CEqualityExpression__Group_1_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CEqualityExpression__Group_1_0__0"
+
+
+ // $ANTLR start "rule__CEqualityExpression__Group_1_0__0__Impl"
+ // InternalRBAModel.g:13163:1: rule__CEqualityExpression__Group_1_0__0__Impl : ( ( rule__CEqualityExpression__Alternatives_1_0_0 ) ) ;
+ public final void rule__CEqualityExpression__Group_1_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13167:1: ( ( ( rule__CEqualityExpression__Alternatives_1_0_0 ) ) )
+ // InternalRBAModel.g:13168:1: ( ( rule__CEqualityExpression__Alternatives_1_0_0 ) )
+ {
+ // InternalRBAModel.g:13168:1: ( ( rule__CEqualityExpression__Alternatives_1_0_0 ) )
+ // InternalRBAModel.g:13169:2: ( rule__CEqualityExpression__Alternatives_1_0_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCEqualityExpressionAccess().getAlternatives_1_0_0());
+ }
+ // InternalRBAModel.g:13170:2: ( rule__CEqualityExpression__Alternatives_1_0_0 )
+ // InternalRBAModel.g:13170:3: rule__CEqualityExpression__Alternatives_1_0_0
+ {
+ pushFollow(FOLLOW_2);
+ rule__CEqualityExpression__Alternatives_1_0_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCEqualityExpressionAccess().getAlternatives_1_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CEqualityExpression__Group_1_0__0__Impl"
+
+
+ // $ANTLR start "rule__CEqualityExpression__Group_1_0_0_0__0"
+ // InternalRBAModel.g:13179:1: rule__CEqualityExpression__Group_1_0_0_0__0 : rule__CEqualityExpression__Group_1_0_0_0__0__Impl rule__CEqualityExpression__Group_1_0_0_0__1 ;
+ public final void rule__CEqualityExpression__Group_1_0_0_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13183:1: ( rule__CEqualityExpression__Group_1_0_0_0__0__Impl rule__CEqualityExpression__Group_1_0_0_0__1 )
+ // InternalRBAModel.g:13184:2: rule__CEqualityExpression__Group_1_0_0_0__0__Impl rule__CEqualityExpression__Group_1_0_0_0__1
+ {
+ pushFollow(FOLLOW_81);
+ rule__CEqualityExpression__Group_1_0_0_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__CEqualityExpression__Group_1_0_0_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CEqualityExpression__Group_1_0_0_0__0"
+
+
+ // $ANTLR start "rule__CEqualityExpression__Group_1_0_0_0__0__Impl"
+ // InternalRBAModel.g:13191:1: rule__CEqualityExpression__Group_1_0_0_0__0__Impl : ( () ) ;
+ public final void rule__CEqualityExpression__Group_1_0_0_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13195:1: ( ( () ) )
+ // InternalRBAModel.g:13196:1: ( () )
+ {
+ // InternalRBAModel.g:13196:1: ( () )
+ // InternalRBAModel.g:13197:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCEqualityExpressionAccess().getObjectCompareOperandAction_1_0_0_0_0());
+ }
+ // InternalRBAModel.g:13198:2: ()
+ // InternalRBAModel.g:13198:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCEqualityExpressionAccess().getObjectCompareOperandAction_1_0_0_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CEqualityExpression__Group_1_0_0_0__0__Impl"
+
+
+ // $ANTLR start "rule__CEqualityExpression__Group_1_0_0_0__1"
+ // InternalRBAModel.g:13206:1: rule__CEqualityExpression__Group_1_0_0_0__1 : rule__CEqualityExpression__Group_1_0_0_0__1__Impl ;
+ public final void rule__CEqualityExpression__Group_1_0_0_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13210:1: ( rule__CEqualityExpression__Group_1_0_0_0__1__Impl )
+ // InternalRBAModel.g:13211:2: rule__CEqualityExpression__Group_1_0_0_0__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__CEqualityExpression__Group_1_0_0_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CEqualityExpression__Group_1_0_0_0__1"
+
+
+ // $ANTLR start "rule__CEqualityExpression__Group_1_0_0_0__1__Impl"
+ // InternalRBAModel.g:13217:1: rule__CEqualityExpression__Group_1_0_0_0__1__Impl : ( ruleOpObjectCompare ) ;
+ public final void rule__CEqualityExpression__Group_1_0_0_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13221:1: ( ( ruleOpObjectCompare ) )
+ // InternalRBAModel.g:13222:1: ( ruleOpObjectCompare )
+ {
+ // InternalRBAModel.g:13222:1: ( ruleOpObjectCompare )
+ // InternalRBAModel.g:13223:2: ruleOpObjectCompare
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCEqualityExpressionAccess().getOpObjectCompareParserRuleCall_1_0_0_0_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpObjectCompare();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCEqualityExpressionAccess().getOpObjectCompareParserRuleCall_1_0_0_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CEqualityExpression__Group_1_0_0_0__1__Impl"
+
+
+ // $ANTLR start "rule__CEqualityExpression__Group_1_0_0_1__0"
+ // InternalRBAModel.g:13233:1: rule__CEqualityExpression__Group_1_0_0_1__0 : rule__CEqualityExpression__Group_1_0_0_1__0__Impl rule__CEqualityExpression__Group_1_0_0_1__1 ;
+ public final void rule__CEqualityExpression__Group_1_0_0_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13237:1: ( rule__CEqualityExpression__Group_1_0_0_1__0__Impl rule__CEqualityExpression__Group_1_0_0_1__1 )
+ // InternalRBAModel.g:13238:2: rule__CEqualityExpression__Group_1_0_0_1__0__Impl rule__CEqualityExpression__Group_1_0_0_1__1
+ {
+ pushFollow(FOLLOW_82);
+ rule__CEqualityExpression__Group_1_0_0_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__CEqualityExpression__Group_1_0_0_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CEqualityExpression__Group_1_0_0_1__0"
+
+
+ // $ANTLR start "rule__CEqualityExpression__Group_1_0_0_1__0__Impl"
+ // InternalRBAModel.g:13245:1: rule__CEqualityExpression__Group_1_0_0_1__0__Impl : ( () ) ;
+ public final void rule__CEqualityExpression__Group_1_0_0_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13249:1: ( ( () ) )
+ // InternalRBAModel.g:13250:1: ( () )
+ {
+ // InternalRBAModel.g:13250:1: ( () )
+ // InternalRBAModel.g:13251:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCEqualityExpressionAccess().getObjectCompareNotOperandAction_1_0_0_1_0());
+ }
+ // InternalRBAModel.g:13252:2: ()
+ // InternalRBAModel.g:13252:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCEqualityExpressionAccess().getObjectCompareNotOperandAction_1_0_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CEqualityExpression__Group_1_0_0_1__0__Impl"
+
+
+ // $ANTLR start "rule__CEqualityExpression__Group_1_0_0_1__1"
+ // InternalRBAModel.g:13260:1: rule__CEqualityExpression__Group_1_0_0_1__1 : rule__CEqualityExpression__Group_1_0_0_1__1__Impl ;
+ public final void rule__CEqualityExpression__Group_1_0_0_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13264:1: ( rule__CEqualityExpression__Group_1_0_0_1__1__Impl )
+ // InternalRBAModel.g:13265:2: rule__CEqualityExpression__Group_1_0_0_1__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__CEqualityExpression__Group_1_0_0_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CEqualityExpression__Group_1_0_0_1__1"
+
+
+ // $ANTLR start "rule__CEqualityExpression__Group_1_0_0_1__1__Impl"
+ // InternalRBAModel.g:13271:1: rule__CEqualityExpression__Group_1_0_0_1__1__Impl : ( ruleOpObjectNotCompare ) ;
+ public final void rule__CEqualityExpression__Group_1_0_0_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13275:1: ( ( ruleOpObjectNotCompare ) )
+ // InternalRBAModel.g:13276:1: ( ruleOpObjectNotCompare )
+ {
+ // InternalRBAModel.g:13276:1: ( ruleOpObjectNotCompare )
+ // InternalRBAModel.g:13277:2: ruleOpObjectNotCompare
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCEqualityExpressionAccess().getOpObjectNotCompareParserRuleCall_1_0_0_1_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpObjectNotCompare();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCEqualityExpressionAccess().getOpObjectNotCompareParserRuleCall_1_0_0_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CEqualityExpression__Group_1_0_0_1__1__Impl"
+
+
+ // $ANTLR start "rule__CEqualityExpression__Group_1_0_0_2__0"
+ // InternalRBAModel.g:13287:1: rule__CEqualityExpression__Group_1_0_0_2__0 : rule__CEqualityExpression__Group_1_0_0_2__0__Impl rule__CEqualityExpression__Group_1_0_0_2__1 ;
+ public final void rule__CEqualityExpression__Group_1_0_0_2__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13291:1: ( rule__CEqualityExpression__Group_1_0_0_2__0__Impl rule__CEqualityExpression__Group_1_0_0_2__1 )
+ // InternalRBAModel.g:13292:2: rule__CEqualityExpression__Group_1_0_0_2__0__Impl rule__CEqualityExpression__Group_1_0_0_2__1
+ {
+ pushFollow(FOLLOW_79);
+ rule__CEqualityExpression__Group_1_0_0_2__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__CEqualityExpression__Group_1_0_0_2__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CEqualityExpression__Group_1_0_0_2__0"
+
+
+ // $ANTLR start "rule__CEqualityExpression__Group_1_0_0_2__0__Impl"
+ // InternalRBAModel.g:13299:1: rule__CEqualityExpression__Group_1_0_0_2__0__Impl : ( () ) ;
+ public final void rule__CEqualityExpression__Group_1_0_0_2__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13303:1: ( ( () ) )
+ // InternalRBAModel.g:13304:1: ( () )
+ {
+ // InternalRBAModel.g:13304:1: ( () )
+ // InternalRBAModel.g:13305:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCEqualityExpressionAccess().getIsEqualToOperatorOperandAction_1_0_0_2_0());
+ }
+ // InternalRBAModel.g:13306:2: ()
+ // InternalRBAModel.g:13306:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCEqualityExpressionAccess().getIsEqualToOperatorOperandAction_1_0_0_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CEqualityExpression__Group_1_0_0_2__0__Impl"
+
+
+ // $ANTLR start "rule__CEqualityExpression__Group_1_0_0_2__1"
+ // InternalRBAModel.g:13314:1: rule__CEqualityExpression__Group_1_0_0_2__1 : rule__CEqualityExpression__Group_1_0_0_2__1__Impl ;
+ public final void rule__CEqualityExpression__Group_1_0_0_2__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13318:1: ( rule__CEqualityExpression__Group_1_0_0_2__1__Impl )
+ // InternalRBAModel.g:13319:2: rule__CEqualityExpression__Group_1_0_0_2__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__CEqualityExpression__Group_1_0_0_2__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CEqualityExpression__Group_1_0_0_2__1"
+
+
+ // $ANTLR start "rule__CEqualityExpression__Group_1_0_0_2__1__Impl"
+ // InternalRBAModel.g:13325:1: rule__CEqualityExpression__Group_1_0_0_2__1__Impl : ( ruleOpEquality ) ;
+ public final void rule__CEqualityExpression__Group_1_0_0_2__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13329:1: ( ( ruleOpEquality ) )
+ // InternalRBAModel.g:13330:1: ( ruleOpEquality )
+ {
+ // InternalRBAModel.g:13330:1: ( ruleOpEquality )
+ // InternalRBAModel.g:13331:2: ruleOpEquality
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCEqualityExpressionAccess().getOpEqualityParserRuleCall_1_0_0_2_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpEquality();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCEqualityExpressionAccess().getOpEqualityParserRuleCall_1_0_0_2_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CEqualityExpression__Group_1_0_0_2__1__Impl"
+
+
+ // $ANTLR start "rule__CRelationalExpression__Group__0"
+ // InternalRBAModel.g:13341:1: rule__CRelationalExpression__Group__0 : rule__CRelationalExpression__Group__0__Impl rule__CRelationalExpression__Group__1 ;
+ public final void rule__CRelationalExpression__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13345:1: ( rule__CRelationalExpression__Group__0__Impl rule__CRelationalExpression__Group__1 )
+ // InternalRBAModel.g:13346:2: rule__CRelationalExpression__Group__0__Impl rule__CRelationalExpression__Group__1
+ {
+ pushFollow(FOLLOW_83);
+ rule__CRelationalExpression__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__CRelationalExpression__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CRelationalExpression__Group__0"
+
+
+ // $ANTLR start "rule__CRelationalExpression__Group__0__Impl"
+ // InternalRBAModel.g:13353:1: rule__CRelationalExpression__Group__0__Impl : ( ruleCUnaryOperation ) ;
+ public final void rule__CRelationalExpression__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13357:1: ( ( ruleCUnaryOperation ) )
+ // InternalRBAModel.g:13358:1: ( ruleCUnaryOperation )
+ {
+ // InternalRBAModel.g:13358:1: ( ruleCUnaryOperation )
+ // InternalRBAModel.g:13359:2: ruleCUnaryOperation
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCRelationalExpressionAccess().getCUnaryOperationParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleCUnaryOperation();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCRelationalExpressionAccess().getCUnaryOperationParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CRelationalExpression__Group__0__Impl"
+
+
+ // $ANTLR start "rule__CRelationalExpression__Group__1"
+ // InternalRBAModel.g:13368:1: rule__CRelationalExpression__Group__1 : rule__CRelationalExpression__Group__1__Impl ;
+ public final void rule__CRelationalExpression__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13372:1: ( rule__CRelationalExpression__Group__1__Impl )
+ // InternalRBAModel.g:13373:2: rule__CRelationalExpression__Group__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__CRelationalExpression__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CRelationalExpression__Group__1"
+
+
+ // $ANTLR start "rule__CRelationalExpression__Group__1__Impl"
+ // InternalRBAModel.g:13379:1: rule__CRelationalExpression__Group__1__Impl : ( ( rule__CRelationalExpression__Group_1__0 )* ) ;
+ public final void rule__CRelationalExpression__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13383:1: ( ( ( rule__CRelationalExpression__Group_1__0 )* ) )
+ // InternalRBAModel.g:13384:1: ( ( rule__CRelationalExpression__Group_1__0 )* )
+ {
+ // InternalRBAModel.g:13384:1: ( ( rule__CRelationalExpression__Group_1__0 )* )
+ // InternalRBAModel.g:13385:2: ( rule__CRelationalExpression__Group_1__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCRelationalExpressionAccess().getGroup_1());
+ }
+ // InternalRBAModel.g:13386:2: ( rule__CRelationalExpression__Group_1__0 )*
+ loop64:
+ do {
+ int alt64=2;
+ switch ( input.LA(1) ) {
+ case 28:
+ {
+ int LA64_2 = input.LA(2);
+
+ if ( (synpred148_InternalRBAModel()) ) {
+ alt64=1;
+ }
+
+
+ }
+ break;
+ case 29:
+ {
+ int LA64_3 = input.LA(2);
+
+ if ( (synpred148_InternalRBAModel()) ) {
+ alt64=1;
+ }
+
+
+ }
+ break;
+ case 21:
+ {
+ int LA64_4 = input.LA(2);
+
+ if ( (synpred148_InternalRBAModel()) ) {
+ alt64=1;
+ }
+
+
+ }
+ break;
+ case 22:
+ {
+ int LA64_5 = input.LA(2);
+
+ if ( (synpred148_InternalRBAModel()) ) {
+ alt64=1;
+ }
+
+
+ }
+ break;
+
+ }
+
+ switch (alt64) {
+ case 1 :
+ // InternalRBAModel.g:13386:3: rule__CRelationalExpression__Group_1__0
+ {
+ pushFollow(FOLLOW_84);
+ rule__CRelationalExpression__Group_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop64;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCRelationalExpressionAccess().getGroup_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CRelationalExpression__Group__1__Impl"
+
+
+ // $ANTLR start "rule__CRelationalExpression__Group_1__0"
+ // InternalRBAModel.g:13395:1: rule__CRelationalExpression__Group_1__0 : rule__CRelationalExpression__Group_1__0__Impl rule__CRelationalExpression__Group_1__1 ;
+ public final void rule__CRelationalExpression__Group_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13399:1: ( rule__CRelationalExpression__Group_1__0__Impl rule__CRelationalExpression__Group_1__1 )
+ // InternalRBAModel.g:13400:2: rule__CRelationalExpression__Group_1__0__Impl rule__CRelationalExpression__Group_1__1
+ {
+ pushFollow(FOLLOW_33);
+ rule__CRelationalExpression__Group_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__CRelationalExpression__Group_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CRelationalExpression__Group_1__0"
+
+
+ // $ANTLR start "rule__CRelationalExpression__Group_1__0__Impl"
+ // InternalRBAModel.g:13407:1: rule__CRelationalExpression__Group_1__0__Impl : ( ( rule__CRelationalExpression__Group_1_0__0 ) ) ;
+ public final void rule__CRelationalExpression__Group_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13411:1: ( ( ( rule__CRelationalExpression__Group_1_0__0 ) ) )
+ // InternalRBAModel.g:13412:1: ( ( rule__CRelationalExpression__Group_1_0__0 ) )
+ {
+ // InternalRBAModel.g:13412:1: ( ( rule__CRelationalExpression__Group_1_0__0 ) )
+ // InternalRBAModel.g:13413:2: ( rule__CRelationalExpression__Group_1_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCRelationalExpressionAccess().getGroup_1_0());
+ }
+ // InternalRBAModel.g:13414:2: ( rule__CRelationalExpression__Group_1_0__0 )
+ // InternalRBAModel.g:13414:3: rule__CRelationalExpression__Group_1_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__CRelationalExpression__Group_1_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCRelationalExpressionAccess().getGroup_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CRelationalExpression__Group_1__0__Impl"
+
+
+ // $ANTLR start "rule__CRelationalExpression__Group_1__1"
+ // InternalRBAModel.g:13422:1: rule__CRelationalExpression__Group_1__1 : rule__CRelationalExpression__Group_1__1__Impl ;
+ public final void rule__CRelationalExpression__Group_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13426:1: ( rule__CRelationalExpression__Group_1__1__Impl )
+ // InternalRBAModel.g:13427:2: rule__CRelationalExpression__Group_1__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__CRelationalExpression__Group_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CRelationalExpression__Group_1__1"
+
+
+ // $ANTLR start "rule__CRelationalExpression__Group_1__1__Impl"
+ // InternalRBAModel.g:13433:1: rule__CRelationalExpression__Group_1__1__Impl : ( ( rule__CRelationalExpression__OperandAssignment_1_1 ) ) ;
+ public final void rule__CRelationalExpression__Group_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13437:1: ( ( ( rule__CRelationalExpression__OperandAssignment_1_1 ) ) )
+ // InternalRBAModel.g:13438:1: ( ( rule__CRelationalExpression__OperandAssignment_1_1 ) )
+ {
+ // InternalRBAModel.g:13438:1: ( ( rule__CRelationalExpression__OperandAssignment_1_1 ) )
+ // InternalRBAModel.g:13439:2: ( rule__CRelationalExpression__OperandAssignment_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCRelationalExpressionAccess().getOperandAssignment_1_1());
+ }
+ // InternalRBAModel.g:13440:2: ( rule__CRelationalExpression__OperandAssignment_1_1 )
+ // InternalRBAModel.g:13440:3: rule__CRelationalExpression__OperandAssignment_1_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__CRelationalExpression__OperandAssignment_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCRelationalExpressionAccess().getOperandAssignment_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CRelationalExpression__Group_1__1__Impl"
+
+
+ // $ANTLR start "rule__CRelationalExpression__Group_1_0__0"
+ // InternalRBAModel.g:13449:1: rule__CRelationalExpression__Group_1_0__0 : rule__CRelationalExpression__Group_1_0__0__Impl ;
+ public final void rule__CRelationalExpression__Group_1_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13453:1: ( rule__CRelationalExpression__Group_1_0__0__Impl )
+ // InternalRBAModel.g:13454:2: rule__CRelationalExpression__Group_1_0__0__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__CRelationalExpression__Group_1_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CRelationalExpression__Group_1_0__0"
+
+
+ // $ANTLR start "rule__CRelationalExpression__Group_1_0__0__Impl"
+ // InternalRBAModel.g:13460:1: rule__CRelationalExpression__Group_1_0__0__Impl : ( ( rule__CRelationalExpression__Alternatives_1_0_0 ) ) ;
+ public final void rule__CRelationalExpression__Group_1_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13464:1: ( ( ( rule__CRelationalExpression__Alternatives_1_0_0 ) ) )
+ // InternalRBAModel.g:13465:1: ( ( rule__CRelationalExpression__Alternatives_1_0_0 ) )
+ {
+ // InternalRBAModel.g:13465:1: ( ( rule__CRelationalExpression__Alternatives_1_0_0 ) )
+ // InternalRBAModel.g:13466:2: ( rule__CRelationalExpression__Alternatives_1_0_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCRelationalExpressionAccess().getAlternatives_1_0_0());
+ }
+ // InternalRBAModel.g:13467:2: ( rule__CRelationalExpression__Alternatives_1_0_0 )
+ // InternalRBAModel.g:13467:3: rule__CRelationalExpression__Alternatives_1_0_0
+ {
+ pushFollow(FOLLOW_2);
+ rule__CRelationalExpression__Alternatives_1_0_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCRelationalExpressionAccess().getAlternatives_1_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CRelationalExpression__Group_1_0__0__Impl"
+
+
+ // $ANTLR start "rule__CRelationalExpression__Group_1_0_0_0__0"
+ // InternalRBAModel.g:13476:1: rule__CRelationalExpression__Group_1_0_0_0__0 : rule__CRelationalExpression__Group_1_0_0_0__0__Impl rule__CRelationalExpression__Group_1_0_0_0__1 ;
+ public final void rule__CRelationalExpression__Group_1_0_0_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13480:1: ( rule__CRelationalExpression__Group_1_0_0_0__0__Impl rule__CRelationalExpression__Group_1_0_0_0__1 )
+ // InternalRBAModel.g:13481:2: rule__CRelationalExpression__Group_1_0_0_0__0__Impl rule__CRelationalExpression__Group_1_0_0_0__1
+ {
+ pushFollow(FOLLOW_85);
+ rule__CRelationalExpression__Group_1_0_0_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__CRelationalExpression__Group_1_0_0_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CRelationalExpression__Group_1_0_0_0__0"
+
+
+ // $ANTLR start "rule__CRelationalExpression__Group_1_0_0_0__0__Impl"
+ // InternalRBAModel.g:13488:1: rule__CRelationalExpression__Group_1_0_0_0__0__Impl : ( () ) ;
+ public final void rule__CRelationalExpression__Group_1_0_0_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13492:1: ( ( () ) )
+ // InternalRBAModel.g:13493:1: ( () )
+ {
+ // InternalRBAModel.g:13493:1: ( () )
+ // InternalRBAModel.g:13494:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCRelationalExpressionAccess().getIsGreaterThanEqualOperatorOperandAction_1_0_0_0_0());
+ }
+ // InternalRBAModel.g:13495:2: ()
+ // InternalRBAModel.g:13495:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCRelationalExpressionAccess().getIsGreaterThanEqualOperatorOperandAction_1_0_0_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CRelationalExpression__Group_1_0_0_0__0__Impl"
+
+
+ // $ANTLR start "rule__CRelationalExpression__Group_1_0_0_0__1"
+ // InternalRBAModel.g:13503:1: rule__CRelationalExpression__Group_1_0_0_0__1 : rule__CRelationalExpression__Group_1_0_0_0__1__Impl ;
+ public final void rule__CRelationalExpression__Group_1_0_0_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13507:1: ( rule__CRelationalExpression__Group_1_0_0_0__1__Impl )
+ // InternalRBAModel.g:13508:2: rule__CRelationalExpression__Group_1_0_0_0__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__CRelationalExpression__Group_1_0_0_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CRelationalExpression__Group_1_0_0_0__1"
+
+
+ // $ANTLR start "rule__CRelationalExpression__Group_1_0_0_0__1__Impl"
+ // InternalRBAModel.g:13514:1: rule__CRelationalExpression__Group_1_0_0_0__1__Impl : ( ruleOpIsGreaterThanEqual ) ;
+ public final void rule__CRelationalExpression__Group_1_0_0_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13518:1: ( ( ruleOpIsGreaterThanEqual ) )
+ // InternalRBAModel.g:13519:1: ( ruleOpIsGreaterThanEqual )
+ {
+ // InternalRBAModel.g:13519:1: ( ruleOpIsGreaterThanEqual )
+ // InternalRBAModel.g:13520:2: ruleOpIsGreaterThanEqual
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCRelationalExpressionAccess().getOpIsGreaterThanEqualParserRuleCall_1_0_0_0_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpIsGreaterThanEqual();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCRelationalExpressionAccess().getOpIsGreaterThanEqualParserRuleCall_1_0_0_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CRelationalExpression__Group_1_0_0_0__1__Impl"
+
+
+ // $ANTLR start "rule__CRelationalExpression__Group_1_0_0_1__0"
+ // InternalRBAModel.g:13530:1: rule__CRelationalExpression__Group_1_0_0_1__0 : rule__CRelationalExpression__Group_1_0_0_1__0__Impl rule__CRelationalExpression__Group_1_0_0_1__1 ;
+ public final void rule__CRelationalExpression__Group_1_0_0_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13534:1: ( rule__CRelationalExpression__Group_1_0_0_1__0__Impl rule__CRelationalExpression__Group_1_0_0_1__1 )
+ // InternalRBAModel.g:13535:2: rule__CRelationalExpression__Group_1_0_0_1__0__Impl rule__CRelationalExpression__Group_1_0_0_1__1
+ {
+ pushFollow(FOLLOW_86);
+ rule__CRelationalExpression__Group_1_0_0_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__CRelationalExpression__Group_1_0_0_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CRelationalExpression__Group_1_0_0_1__0"
+
+
+ // $ANTLR start "rule__CRelationalExpression__Group_1_0_0_1__0__Impl"
+ // InternalRBAModel.g:13542:1: rule__CRelationalExpression__Group_1_0_0_1__0__Impl : ( () ) ;
+ public final void rule__CRelationalExpression__Group_1_0_0_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13546:1: ( ( () ) )
+ // InternalRBAModel.g:13547:1: ( () )
+ {
+ // InternalRBAModel.g:13547:1: ( () )
+ // InternalRBAModel.g:13548:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCRelationalExpressionAccess().getIsLowerThanEqualOperatorOperandAction_1_0_0_1_0());
+ }
+ // InternalRBAModel.g:13549:2: ()
+ // InternalRBAModel.g:13549:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCRelationalExpressionAccess().getIsLowerThanEqualOperatorOperandAction_1_0_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CRelationalExpression__Group_1_0_0_1__0__Impl"
+
+
+ // $ANTLR start "rule__CRelationalExpression__Group_1_0_0_1__1"
+ // InternalRBAModel.g:13557:1: rule__CRelationalExpression__Group_1_0_0_1__1 : rule__CRelationalExpression__Group_1_0_0_1__1__Impl ;
+ public final void rule__CRelationalExpression__Group_1_0_0_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13561:1: ( rule__CRelationalExpression__Group_1_0_0_1__1__Impl )
+ // InternalRBAModel.g:13562:2: rule__CRelationalExpression__Group_1_0_0_1__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__CRelationalExpression__Group_1_0_0_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CRelationalExpression__Group_1_0_0_1__1"
+
+
+ // $ANTLR start "rule__CRelationalExpression__Group_1_0_0_1__1__Impl"
+ // InternalRBAModel.g:13568:1: rule__CRelationalExpression__Group_1_0_0_1__1__Impl : ( ruleOpIsLowerThanEqual ) ;
+ public final void rule__CRelationalExpression__Group_1_0_0_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13572:1: ( ( ruleOpIsLowerThanEqual ) )
+ // InternalRBAModel.g:13573:1: ( ruleOpIsLowerThanEqual )
+ {
+ // InternalRBAModel.g:13573:1: ( ruleOpIsLowerThanEqual )
+ // InternalRBAModel.g:13574:2: ruleOpIsLowerThanEqual
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCRelationalExpressionAccess().getOpIsLowerThanEqualParserRuleCall_1_0_0_1_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpIsLowerThanEqual();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCRelationalExpressionAccess().getOpIsLowerThanEqualParserRuleCall_1_0_0_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CRelationalExpression__Group_1_0_0_1__1__Impl"
+
+
+ // $ANTLR start "rule__CRelationalExpression__Group_1_0_0_2__0"
+ // InternalRBAModel.g:13584:1: rule__CRelationalExpression__Group_1_0_0_2__0 : rule__CRelationalExpression__Group_1_0_0_2__0__Impl rule__CRelationalExpression__Group_1_0_0_2__1 ;
+ public final void rule__CRelationalExpression__Group_1_0_0_2__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13588:1: ( rule__CRelationalExpression__Group_1_0_0_2__0__Impl rule__CRelationalExpression__Group_1_0_0_2__1 )
+ // InternalRBAModel.g:13589:2: rule__CRelationalExpression__Group_1_0_0_2__0__Impl rule__CRelationalExpression__Group_1_0_0_2__1
+ {
+ pushFollow(FOLLOW_26);
+ rule__CRelationalExpression__Group_1_0_0_2__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__CRelationalExpression__Group_1_0_0_2__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CRelationalExpression__Group_1_0_0_2__0"
+
+
+ // $ANTLR start "rule__CRelationalExpression__Group_1_0_0_2__0__Impl"
+ // InternalRBAModel.g:13596:1: rule__CRelationalExpression__Group_1_0_0_2__0__Impl : ( () ) ;
+ public final void rule__CRelationalExpression__Group_1_0_0_2__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13600:1: ( ( () ) )
+ // InternalRBAModel.g:13601:1: ( () )
+ {
+ // InternalRBAModel.g:13601:1: ( () )
+ // InternalRBAModel.g:13602:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCRelationalExpressionAccess().getIsGreaterThanOperatorOperandAction_1_0_0_2_0());
+ }
+ // InternalRBAModel.g:13603:2: ()
+ // InternalRBAModel.g:13603:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCRelationalExpressionAccess().getIsGreaterThanOperatorOperandAction_1_0_0_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CRelationalExpression__Group_1_0_0_2__0__Impl"
+
+
+ // $ANTLR start "rule__CRelationalExpression__Group_1_0_0_2__1"
+ // InternalRBAModel.g:13611:1: rule__CRelationalExpression__Group_1_0_0_2__1 : rule__CRelationalExpression__Group_1_0_0_2__1__Impl ;
+ public final void rule__CRelationalExpression__Group_1_0_0_2__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13615:1: ( rule__CRelationalExpression__Group_1_0_0_2__1__Impl )
+ // InternalRBAModel.g:13616:2: rule__CRelationalExpression__Group_1_0_0_2__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__CRelationalExpression__Group_1_0_0_2__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CRelationalExpression__Group_1_0_0_2__1"
+
+
+ // $ANTLR start "rule__CRelationalExpression__Group_1_0_0_2__1__Impl"
+ // InternalRBAModel.g:13622:1: rule__CRelationalExpression__Group_1_0_0_2__1__Impl : ( ruleOpIsGreaterThan ) ;
+ public final void rule__CRelationalExpression__Group_1_0_0_2__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13626:1: ( ( ruleOpIsGreaterThan ) )
+ // InternalRBAModel.g:13627:1: ( ruleOpIsGreaterThan )
+ {
+ // InternalRBAModel.g:13627:1: ( ruleOpIsGreaterThan )
+ // InternalRBAModel.g:13628:2: ruleOpIsGreaterThan
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCRelationalExpressionAccess().getOpIsGreaterThanParserRuleCall_1_0_0_2_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpIsGreaterThan();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCRelationalExpressionAccess().getOpIsGreaterThanParserRuleCall_1_0_0_2_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CRelationalExpression__Group_1_0_0_2__1__Impl"
+
+
+ // $ANTLR start "rule__CRelationalExpression__Group_1_0_0_3__0"
+ // InternalRBAModel.g:13638:1: rule__CRelationalExpression__Group_1_0_0_3__0 : rule__CRelationalExpression__Group_1_0_0_3__0__Impl rule__CRelationalExpression__Group_1_0_0_3__1 ;
+ public final void rule__CRelationalExpression__Group_1_0_0_3__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13642:1: ( rule__CRelationalExpression__Group_1_0_0_3__0__Impl rule__CRelationalExpression__Group_1_0_0_3__1 )
+ // InternalRBAModel.g:13643:2: rule__CRelationalExpression__Group_1_0_0_3__0__Impl rule__CRelationalExpression__Group_1_0_0_3__1
+ {
+ pushFollow(FOLLOW_83);
+ rule__CRelationalExpression__Group_1_0_0_3__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__CRelationalExpression__Group_1_0_0_3__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CRelationalExpression__Group_1_0_0_3__0"
+
+
+ // $ANTLR start "rule__CRelationalExpression__Group_1_0_0_3__0__Impl"
+ // InternalRBAModel.g:13650:1: rule__CRelationalExpression__Group_1_0_0_3__0__Impl : ( () ) ;
+ public final void rule__CRelationalExpression__Group_1_0_0_3__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13654:1: ( ( () ) )
+ // InternalRBAModel.g:13655:1: ( () )
+ {
+ // InternalRBAModel.g:13655:1: ( () )
+ // InternalRBAModel.g:13656:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCRelationalExpressionAccess().getIsLowerThanOperatorOperandAction_1_0_0_3_0());
+ }
+ // InternalRBAModel.g:13657:2: ()
+ // InternalRBAModel.g:13657:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCRelationalExpressionAccess().getIsLowerThanOperatorOperandAction_1_0_0_3_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CRelationalExpression__Group_1_0_0_3__0__Impl"
+
+
+ // $ANTLR start "rule__CRelationalExpression__Group_1_0_0_3__1"
+ // InternalRBAModel.g:13665:1: rule__CRelationalExpression__Group_1_0_0_3__1 : rule__CRelationalExpression__Group_1_0_0_3__1__Impl ;
+ public final void rule__CRelationalExpression__Group_1_0_0_3__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13669:1: ( rule__CRelationalExpression__Group_1_0_0_3__1__Impl )
+ // InternalRBAModel.g:13670:2: rule__CRelationalExpression__Group_1_0_0_3__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__CRelationalExpression__Group_1_0_0_3__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CRelationalExpression__Group_1_0_0_3__1"
+
+
+ // $ANTLR start "rule__CRelationalExpression__Group_1_0_0_3__1__Impl"
+ // InternalRBAModel.g:13676:1: rule__CRelationalExpression__Group_1_0_0_3__1__Impl : ( ruleOpIsLowerThan ) ;
+ public final void rule__CRelationalExpression__Group_1_0_0_3__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13680:1: ( ( ruleOpIsLowerThan ) )
+ // InternalRBAModel.g:13681:1: ( ruleOpIsLowerThan )
+ {
+ // InternalRBAModel.g:13681:1: ( ruleOpIsLowerThan )
+ // InternalRBAModel.g:13682:2: ruleOpIsLowerThan
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCRelationalExpressionAccess().getOpIsLowerThanParserRuleCall_1_0_0_3_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpIsLowerThan();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCRelationalExpressionAccess().getOpIsLowerThanParserRuleCall_1_0_0_3_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CRelationalExpression__Group_1_0_0_3__1__Impl"
+
+
+ // $ANTLR start "rule__CUnaryOperation__Group_0__0"
+ // InternalRBAModel.g:13692:1: rule__CUnaryOperation__Group_0__0 : rule__CUnaryOperation__Group_0__0__Impl rule__CUnaryOperation__Group_0__1 ;
+ public final void rule__CUnaryOperation__Group_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13696:1: ( rule__CUnaryOperation__Group_0__0__Impl rule__CUnaryOperation__Group_0__1 )
+ // InternalRBAModel.g:13697:2: rule__CUnaryOperation__Group_0__0__Impl rule__CUnaryOperation__Group_0__1
+ {
+ pushFollow(FOLLOW_87);
+ rule__CUnaryOperation__Group_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__CUnaryOperation__Group_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CUnaryOperation__Group_0__0"
+
+
+ // $ANTLR start "rule__CUnaryOperation__Group_0__0__Impl"
+ // InternalRBAModel.g:13704:1: rule__CUnaryOperation__Group_0__0__Impl : ( () ) ;
+ public final void rule__CUnaryOperation__Group_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13708:1: ( ( () ) )
+ // InternalRBAModel.g:13709:1: ( () )
+ {
+ // InternalRBAModel.g:13709:1: ( () )
+ // InternalRBAModel.g:13710:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCUnaryOperationAccess().getNotOperatorAction_0_0());
+ }
+ // InternalRBAModel.g:13711:2: ()
+ // InternalRBAModel.g:13711:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCUnaryOperationAccess().getNotOperatorAction_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CUnaryOperation__Group_0__0__Impl"
+
+
+ // $ANTLR start "rule__CUnaryOperation__Group_0__1"
+ // InternalRBAModel.g:13719:1: rule__CUnaryOperation__Group_0__1 : rule__CUnaryOperation__Group_0__1__Impl rule__CUnaryOperation__Group_0__2 ;
+ public final void rule__CUnaryOperation__Group_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13723:1: ( rule__CUnaryOperation__Group_0__1__Impl rule__CUnaryOperation__Group_0__2 )
+ // InternalRBAModel.g:13724:2: rule__CUnaryOperation__Group_0__1__Impl rule__CUnaryOperation__Group_0__2
+ {
+ pushFollow(FOLLOW_33);
+ rule__CUnaryOperation__Group_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__CUnaryOperation__Group_0__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CUnaryOperation__Group_0__1"
+
+
+ // $ANTLR start "rule__CUnaryOperation__Group_0__1__Impl"
+ // InternalRBAModel.g:13731:1: rule__CUnaryOperation__Group_0__1__Impl : ( ruleOpNot ) ;
+ public final void rule__CUnaryOperation__Group_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13735:1: ( ( ruleOpNot ) )
+ // InternalRBAModel.g:13736:1: ( ruleOpNot )
+ {
+ // InternalRBAModel.g:13736:1: ( ruleOpNot )
+ // InternalRBAModel.g:13737:2: ruleOpNot
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCUnaryOperationAccess().getOpNotParserRuleCall_0_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpNot();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCUnaryOperationAccess().getOpNotParserRuleCall_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CUnaryOperation__Group_0__1__Impl"
+
+
+ // $ANTLR start "rule__CUnaryOperation__Group_0__2"
+ // InternalRBAModel.g:13746:1: rule__CUnaryOperation__Group_0__2 : rule__CUnaryOperation__Group_0__2__Impl ;
+ public final void rule__CUnaryOperation__Group_0__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13750:1: ( rule__CUnaryOperation__Group_0__2__Impl )
+ // InternalRBAModel.g:13751:2: rule__CUnaryOperation__Group_0__2__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__CUnaryOperation__Group_0__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CUnaryOperation__Group_0__2"
+
+
+ // $ANTLR start "rule__CUnaryOperation__Group_0__2__Impl"
+ // InternalRBAModel.g:13757:1: rule__CUnaryOperation__Group_0__2__Impl : ( ( rule__CUnaryOperation__OperandAssignment_0_2 ) ) ;
+ public final void rule__CUnaryOperation__Group_0__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13761:1: ( ( ( rule__CUnaryOperation__OperandAssignment_0_2 ) ) )
+ // InternalRBAModel.g:13762:1: ( ( rule__CUnaryOperation__OperandAssignment_0_2 ) )
+ {
+ // InternalRBAModel.g:13762:1: ( ( rule__CUnaryOperation__OperandAssignment_0_2 ) )
+ // InternalRBAModel.g:13763:2: ( rule__CUnaryOperation__OperandAssignment_0_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCUnaryOperationAccess().getOperandAssignment_0_2());
+ }
+ // InternalRBAModel.g:13764:2: ( rule__CUnaryOperation__OperandAssignment_0_2 )
+ // InternalRBAModel.g:13764:3: rule__CUnaryOperation__OperandAssignment_0_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__CUnaryOperation__OperandAssignment_0_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCUnaryOperationAccess().getOperandAssignment_0_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CUnaryOperation__Group_0__2__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group__0"
+ // InternalRBAModel.g:13773:1: rule__COperationFeatureCall__Group__0 : rule__COperationFeatureCall__Group__0__Impl rule__COperationFeatureCall__Group__1 ;
+ public final void rule__COperationFeatureCall__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13777:1: ( rule__COperationFeatureCall__Group__0__Impl rule__COperationFeatureCall__Group__1 )
+ // InternalRBAModel.g:13778:2: rule__COperationFeatureCall__Group__0__Impl rule__COperationFeatureCall__Group__1
+ {
+ pushFollow(FOLLOW_69);
+ rule__COperationFeatureCall__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group__0"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group__0__Impl"
+ // InternalRBAModel.g:13785:1: rule__COperationFeatureCall__Group__0__Impl : ( ruleCPrimaryExpression ) ;
+ public final void rule__COperationFeatureCall__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13789:1: ( ( ruleCPrimaryExpression ) )
+ // InternalRBAModel.g:13790:1: ( ruleCPrimaryExpression )
+ {
+ // InternalRBAModel.g:13790:1: ( ruleCPrimaryExpression )
+ // InternalRBAModel.g:13791:2: ruleCPrimaryExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getCPrimaryExpressionParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleCPrimaryExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getCPrimaryExpressionParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group__0__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group__1"
+ // InternalRBAModel.g:13800:1: rule__COperationFeatureCall__Group__1 : rule__COperationFeatureCall__Group__1__Impl ;
+ public final void rule__COperationFeatureCall__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13804:1: ( rule__COperationFeatureCall__Group__1__Impl )
+ // InternalRBAModel.g:13805:2: rule__COperationFeatureCall__Group__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group__1"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group__1__Impl"
+ // InternalRBAModel.g:13811:1: rule__COperationFeatureCall__Group__1__Impl : ( ( rule__COperationFeatureCall__Group_1__0 )* ) ;
+ public final void rule__COperationFeatureCall__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13815:1: ( ( ( rule__COperationFeatureCall__Group_1__0 )* ) )
+ // InternalRBAModel.g:13816:1: ( ( rule__COperationFeatureCall__Group_1__0 )* )
+ {
+ // InternalRBAModel.g:13816:1: ( ( rule__COperationFeatureCall__Group_1__0 )* )
+ // InternalRBAModel.g:13817:2: ( rule__COperationFeatureCall__Group_1__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1());
+ }
+ // InternalRBAModel.g:13818:2: ( rule__COperationFeatureCall__Group_1__0 )*
+ loop65:
+ do {
+ int alt65=2;
+ int LA65_0 = input.LA(1);
+
+ if ( (LA65_0==135) ) {
+ int LA65_2 = input.LA(2);
+
+ if ( (synpred149_InternalRBAModel()) ) {
+ alt65=1;
+ }
+
+
+ }
+
+
+ switch (alt65) {
+ case 1 :
+ // InternalRBAModel.g:13818:3: rule__COperationFeatureCall__Group_1__0
+ {
+ pushFollow(FOLLOW_70);
+ rule__COperationFeatureCall__Group_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop65;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group__1__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1__0"
+ // InternalRBAModel.g:13827:1: rule__COperationFeatureCall__Group_1__0 : rule__COperationFeatureCall__Group_1__0__Impl rule__COperationFeatureCall__Group_1__1 ;
+ public final void rule__COperationFeatureCall__Group_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13831:1: ( rule__COperationFeatureCall__Group_1__0__Impl rule__COperationFeatureCall__Group_1__1 )
+ // InternalRBAModel.g:13832:2: rule__COperationFeatureCall__Group_1__0__Impl rule__COperationFeatureCall__Group_1__1
+ {
+ pushFollow(FOLLOW_88);
+ rule__COperationFeatureCall__Group_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1__0"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1__0__Impl"
+ // InternalRBAModel.g:13839:1: rule__COperationFeatureCall__Group_1__0__Impl : ( ( rule__COperationFeatureCall__Group_1_0__0 ) ) ;
+ public final void rule__COperationFeatureCall__Group_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13843:1: ( ( ( rule__COperationFeatureCall__Group_1_0__0 ) ) )
+ // InternalRBAModel.g:13844:1: ( ( rule__COperationFeatureCall__Group_1_0__0 ) )
+ {
+ // InternalRBAModel.g:13844:1: ( ( rule__COperationFeatureCall__Group_1_0__0 ) )
+ // InternalRBAModel.g:13845:2: ( rule__COperationFeatureCall__Group_1_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_0());
+ }
+ // InternalRBAModel.g:13846:2: ( rule__COperationFeatureCall__Group_1_0__0 )
+ // InternalRBAModel.g:13846:3: rule__COperationFeatureCall__Group_1_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1__0__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1__1"
+ // InternalRBAModel.g:13854:1: rule__COperationFeatureCall__Group_1__1 : rule__COperationFeatureCall__Group_1__1__Impl ;
+ public final void rule__COperationFeatureCall__Group_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13858:1: ( rule__COperationFeatureCall__Group_1__1__Impl )
+ // InternalRBAModel.g:13859:2: rule__COperationFeatureCall__Group_1__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1__1"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1__1__Impl"
+ // InternalRBAModel.g:13865:1: rule__COperationFeatureCall__Group_1__1__Impl : ( ( rule__COperationFeatureCall__Alternatives_1_1 ) ) ;
+ public final void rule__COperationFeatureCall__Group_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13869:1: ( ( ( rule__COperationFeatureCall__Alternatives_1_1 ) ) )
+ // InternalRBAModel.g:13870:1: ( ( rule__COperationFeatureCall__Alternatives_1_1 ) )
+ {
+ // InternalRBAModel.g:13870:1: ( ( rule__COperationFeatureCall__Alternatives_1_1 ) )
+ // InternalRBAModel.g:13871:2: ( rule__COperationFeatureCall__Alternatives_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getAlternatives_1_1());
+ }
+ // InternalRBAModel.g:13872:2: ( rule__COperationFeatureCall__Alternatives_1_1 )
+ // InternalRBAModel.g:13872:3: rule__COperationFeatureCall__Alternatives_1_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Alternatives_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getAlternatives_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1__1__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_0__0"
+ // InternalRBAModel.g:13881:1: rule__COperationFeatureCall__Group_1_0__0 : rule__COperationFeatureCall__Group_1_0__0__Impl ;
+ public final void rule__COperationFeatureCall__Group_1_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13885:1: ( rule__COperationFeatureCall__Group_1_0__0__Impl )
+ // InternalRBAModel.g:13886:2: rule__COperationFeatureCall__Group_1_0__0__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_0__0"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_0__0__Impl"
+ // InternalRBAModel.g:13892:1: rule__COperationFeatureCall__Group_1_0__0__Impl : ( '.' ) ;
+ public final void rule__COperationFeatureCall__Group_1_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13896:1: ( ( '.' ) )
+ // InternalRBAModel.g:13897:1: ( '.' )
+ {
+ // InternalRBAModel.g:13897:1: ( '.' )
+ // InternalRBAModel.g:13898:2: '.'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getFullStopKeyword_1_0_0());
+ }
+ match(input,135,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getFullStopKeyword_1_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_0__0__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0__0"
+ // InternalRBAModel.g:13908:1: rule__COperationFeatureCall__Group_1_1_0__0 : rule__COperationFeatureCall__Group_1_1_0__0__Impl rule__COperationFeatureCall__Group_1_1_0__1 ;
+ public final void rule__COperationFeatureCall__Group_1_1_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13912:1: ( rule__COperationFeatureCall__Group_1_1_0__0__Impl rule__COperationFeatureCall__Group_1_1_0__1 )
+ // InternalRBAModel.g:13913:2: rule__COperationFeatureCall__Group_1_1_0__0__Impl rule__COperationFeatureCall__Group_1_1_0__1
+ {
+ pushFollow(FOLLOW_27);
+ rule__COperationFeatureCall__Group_1_1_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0__0"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0__0__Impl"
+ // InternalRBAModel.g:13920:1: rule__COperationFeatureCall__Group_1_1_0__0__Impl : ( ( rule__COperationFeatureCall__Alternatives_1_1_0_0 ) ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13924:1: ( ( ( rule__COperationFeatureCall__Alternatives_1_1_0_0 ) ) )
+ // InternalRBAModel.g:13925:1: ( ( rule__COperationFeatureCall__Alternatives_1_1_0_0 ) )
+ {
+ // InternalRBAModel.g:13925:1: ( ( rule__COperationFeatureCall__Alternatives_1_1_0_0 ) )
+ // InternalRBAModel.g:13926:2: ( rule__COperationFeatureCall__Alternatives_1_1_0_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getAlternatives_1_1_0_0());
+ }
+ // InternalRBAModel.g:13927:2: ( rule__COperationFeatureCall__Alternatives_1_1_0_0 )
+ // InternalRBAModel.g:13927:3: rule__COperationFeatureCall__Alternatives_1_1_0_0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Alternatives_1_1_0_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getAlternatives_1_1_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0__0__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0__1"
+ // InternalRBAModel.g:13935:1: rule__COperationFeatureCall__Group_1_1_0__1 : rule__COperationFeatureCall__Group_1_1_0__1__Impl ;
+ public final void rule__COperationFeatureCall__Group_1_1_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13939:1: ( rule__COperationFeatureCall__Group_1_1_0__1__Impl )
+ // InternalRBAModel.g:13940:2: rule__COperationFeatureCall__Group_1_1_0__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0__1"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0__1__Impl"
+ // InternalRBAModel.g:13946:1: rule__COperationFeatureCall__Group_1_1_0__1__Impl : ( ( rule__COperationFeatureCall__Group_1_1_0_1__0 ) ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13950:1: ( ( ( rule__COperationFeatureCall__Group_1_1_0_1__0 ) ) )
+ // InternalRBAModel.g:13951:1: ( ( rule__COperationFeatureCall__Group_1_1_0_1__0 ) )
+ {
+ // InternalRBAModel.g:13951:1: ( ( rule__COperationFeatureCall__Group_1_1_0_1__0 ) )
+ // InternalRBAModel.g:13952:2: ( rule__COperationFeatureCall__Group_1_1_0_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_1());
+ }
+ // InternalRBAModel.g:13953:2: ( rule__COperationFeatureCall__Group_1_1_0_1__0 )
+ // InternalRBAModel.g:13953:3: rule__COperationFeatureCall__Group_1_1_0_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0__1__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_0__0"
+ // InternalRBAModel.g:13962:1: rule__COperationFeatureCall__Group_1_1_0_0_0__0 : rule__COperationFeatureCall__Group_1_1_0_0_0__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_0__1 ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13966:1: ( rule__COperationFeatureCall__Group_1_1_0_0_0__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_0__1 )
+ // InternalRBAModel.g:13967:2: rule__COperationFeatureCall__Group_1_1_0_0_0__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_0__1
+ {
+ pushFollow(FOLLOW_89);
+ rule__COperationFeatureCall__Group_1_1_0_0_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_0__0"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_0__0__Impl"
+ // InternalRBAModel.g:13974:1: rule__COperationFeatureCall__Group_1_1_0_0_0__0__Impl : ( () ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13978:1: ( ( () ) )
+ // InternalRBAModel.g:13979:1: ( () )
+ {
+ // InternalRBAModel.g:13979:1: ( () )
+ // InternalRBAModel.g:13980:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getGetPropertyOperandAction_1_1_0_0_0_0());
+ }
+ // InternalRBAModel.g:13981:2: ()
+ // InternalRBAModel.g:13981:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getGetPropertyOperandAction_1_1_0_0_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_0__0__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_0__1"
+ // InternalRBAModel.g:13989:1: rule__COperationFeatureCall__Group_1_1_0_0_0__1 : rule__COperationFeatureCall__Group_1_1_0_0_0__1__Impl ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:13993:1: ( rule__COperationFeatureCall__Group_1_1_0_0_0__1__Impl )
+ // InternalRBAModel.g:13994:2: rule__COperationFeatureCall__Group_1_1_0_0_0__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_0__1"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_0__1__Impl"
+ // InternalRBAModel.g:14000:1: rule__COperationFeatureCall__Group_1_1_0_0_0__1__Impl : ( ruleOpGetProperty ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14004:1: ( ( ruleOpGetProperty ) )
+ // InternalRBAModel.g:14005:1: ( ruleOpGetProperty )
+ {
+ // InternalRBAModel.g:14005:1: ( ruleOpGetProperty )
+ // InternalRBAModel.g:14006:2: ruleOpGetProperty
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getOpGetPropertyParserRuleCall_1_1_0_0_0_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpGetProperty();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getOpGetPropertyParserRuleCall_1_1_0_0_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_0__1__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_1__0"
+ // InternalRBAModel.g:14016:1: rule__COperationFeatureCall__Group_1_1_0_0_1__0 : rule__COperationFeatureCall__Group_1_1_0_0_1__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_1__1 ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14020:1: ( rule__COperationFeatureCall__Group_1_1_0_0_1__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_1__1 )
+ // InternalRBAModel.g:14021:2: rule__COperationFeatureCall__Group_1_1_0_0_1__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_1__1
+ {
+ pushFollow(FOLLOW_90);
+ rule__COperationFeatureCall__Group_1_1_0_0_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_1__0"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_1__0__Impl"
+ // InternalRBAModel.g:14028:1: rule__COperationFeatureCall__Group_1_1_0_0_1__0__Impl : ( () ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14032:1: ( ( () ) )
+ // InternalRBAModel.g:14033:1: ( () )
+ {
+ // InternalRBAModel.g:14033:1: ( () )
+ // InternalRBAModel.g:14034:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getIsOnOperandAction_1_1_0_0_1_0());
+ }
+ // InternalRBAModel.g:14035:2: ()
+ // InternalRBAModel.g:14035:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getIsOnOperandAction_1_1_0_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_1__0__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_1__1"
+ // InternalRBAModel.g:14043:1: rule__COperationFeatureCall__Group_1_1_0_0_1__1 : rule__COperationFeatureCall__Group_1_1_0_0_1__1__Impl ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14047:1: ( rule__COperationFeatureCall__Group_1_1_0_0_1__1__Impl )
+ // InternalRBAModel.g:14048:2: rule__COperationFeatureCall__Group_1_1_0_0_1__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_1__1"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_1__1__Impl"
+ // InternalRBAModel.g:14054:1: rule__COperationFeatureCall__Group_1_1_0_0_1__1__Impl : ( ruleOpIsOn ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14058:1: ( ( ruleOpIsOn ) )
+ // InternalRBAModel.g:14059:1: ( ruleOpIsOn )
+ {
+ // InternalRBAModel.g:14059:1: ( ruleOpIsOn )
+ // InternalRBAModel.g:14060:2: ruleOpIsOn
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getOpIsOnParserRuleCall_1_1_0_0_1_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpIsOn();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getOpIsOnParserRuleCall_1_1_0_0_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_1__1__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_2__0"
+ // InternalRBAModel.g:14070:1: rule__COperationFeatureCall__Group_1_1_0_0_2__0 : rule__COperationFeatureCall__Group_1_1_0_0_2__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_2__1 ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_2__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14074:1: ( rule__COperationFeatureCall__Group_1_1_0_0_2__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_2__1 )
+ // InternalRBAModel.g:14075:2: rule__COperationFeatureCall__Group_1_1_0_0_2__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_2__1
+ {
+ pushFollow(FOLLOW_91);
+ rule__COperationFeatureCall__Group_1_1_0_0_2__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_2__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_2__0"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_2__0__Impl"
+ // InternalRBAModel.g:14082:1: rule__COperationFeatureCall__Group_1_1_0_0_2__0__Impl : ( () ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_2__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14086:1: ( ( () ) )
+ // InternalRBAModel.g:14087:1: ( () )
+ {
+ // InternalRBAModel.g:14087:1: ( () )
+ // InternalRBAModel.g:14088:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getGetContentsListOperandAction_1_1_0_0_2_0());
+ }
+ // InternalRBAModel.g:14089:2: ()
+ // InternalRBAModel.g:14089:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getGetContentsListOperandAction_1_1_0_0_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_2__0__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_2__1"
+ // InternalRBAModel.g:14097:1: rule__COperationFeatureCall__Group_1_1_0_0_2__1 : rule__COperationFeatureCall__Group_1_1_0_0_2__1__Impl ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_2__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14101:1: ( rule__COperationFeatureCall__Group_1_1_0_0_2__1__Impl )
+ // InternalRBAModel.g:14102:2: rule__COperationFeatureCall__Group_1_1_0_0_2__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_2__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_2__1"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_2__1__Impl"
+ // InternalRBAModel.g:14108:1: rule__COperationFeatureCall__Group_1_1_0_0_2__1__Impl : ( ruleOpGetContentsList ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_2__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14112:1: ( ( ruleOpGetContentsList ) )
+ // InternalRBAModel.g:14113:1: ( ruleOpGetContentsList )
+ {
+ // InternalRBAModel.g:14113:1: ( ruleOpGetContentsList )
+ // InternalRBAModel.g:14114:2: ruleOpGetContentsList
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getOpGetContentsListParserRuleCall_1_1_0_0_2_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpGetContentsList();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getOpGetContentsListParserRuleCall_1_1_0_0_2_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_2__1__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_3__0"
+ // InternalRBAModel.g:14124:1: rule__COperationFeatureCall__Group_1_1_0_0_3__0 : rule__COperationFeatureCall__Group_1_1_0_0_3__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_3__1 ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_3__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14128:1: ( rule__COperationFeatureCall__Group_1_1_0_0_3__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_3__1 )
+ // InternalRBAModel.g:14129:2: rule__COperationFeatureCall__Group_1_1_0_0_3__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_3__1
+ {
+ pushFollow(FOLLOW_92);
+ rule__COperationFeatureCall__Group_1_1_0_0_3__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_3__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_3__0"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_3__0__Impl"
+ // InternalRBAModel.g:14136:1: rule__COperationFeatureCall__Group_1_1_0_0_3__0__Impl : ( () ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_3__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14140:1: ( ( () ) )
+ // InternalRBAModel.g:14141:1: ( () )
+ {
+ // InternalRBAModel.g:14141:1: ( () )
+ // InternalRBAModel.g:14142:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getContentValueOperandAction_1_1_0_0_3_0());
+ }
+ // InternalRBAModel.g:14143:2: ()
+ // InternalRBAModel.g:14143:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getContentValueOperandAction_1_1_0_0_3_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_3__0__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_3__1"
+ // InternalRBAModel.g:14151:1: rule__COperationFeatureCall__Group_1_1_0_0_3__1 : rule__COperationFeatureCall__Group_1_1_0_0_3__1__Impl ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_3__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14155:1: ( rule__COperationFeatureCall__Group_1_1_0_0_3__1__Impl )
+ // InternalRBAModel.g:14156:2: rule__COperationFeatureCall__Group_1_1_0_0_3__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_3__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_3__1"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_3__1__Impl"
+ // InternalRBAModel.g:14162:1: rule__COperationFeatureCall__Group_1_1_0_0_3__1__Impl : ( ruleOpContentValue ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_3__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14166:1: ( ( ruleOpContentValue ) )
+ // InternalRBAModel.g:14167:1: ( ruleOpContentValue )
+ {
+ // InternalRBAModel.g:14167:1: ( ruleOpContentValue )
+ // InternalRBAModel.g:14168:2: ruleOpContentValue
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getOpContentValueParserRuleCall_1_1_0_0_3_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpContentValue();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getOpContentValueParserRuleCall_1_1_0_0_3_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_3__1__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_4__0"
+ // InternalRBAModel.g:14178:1: rule__COperationFeatureCall__Group_1_1_0_0_4__0 : rule__COperationFeatureCall__Group_1_1_0_0_4__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_4__1 ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_4__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14182:1: ( rule__COperationFeatureCall__Group_1_1_0_0_4__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_4__1 )
+ // InternalRBAModel.g:14183:2: rule__COperationFeatureCall__Group_1_1_0_0_4__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_4__1
+ {
+ pushFollow(FOLLOW_93);
+ rule__COperationFeatureCall__Group_1_1_0_0_4__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_4__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_4__0"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_4__0__Impl"
+ // InternalRBAModel.g:14190:1: rule__COperationFeatureCall__Group_1_1_0_0_4__0__Impl : ( () ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_4__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14194:1: ( ( () ) )
+ // InternalRBAModel.g:14195:1: ( () )
+ {
+ // InternalRBAModel.g:14195:1: ( () )
+ // InternalRBAModel.g:14196:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getIsActiveOperandAction_1_1_0_0_4_0());
+ }
+ // InternalRBAModel.g:14197:2: ()
+ // InternalRBAModel.g:14197:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getIsActiveOperandAction_1_1_0_0_4_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_4__0__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_4__1"
+ // InternalRBAModel.g:14205:1: rule__COperationFeatureCall__Group_1_1_0_0_4__1 : rule__COperationFeatureCall__Group_1_1_0_0_4__1__Impl ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_4__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14209:1: ( rule__COperationFeatureCall__Group_1_1_0_0_4__1__Impl )
+ // InternalRBAModel.g:14210:2: rule__COperationFeatureCall__Group_1_1_0_0_4__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_4__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_4__1"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_4__1__Impl"
+ // InternalRBAModel.g:14216:1: rule__COperationFeatureCall__Group_1_1_0_0_4__1__Impl : ( ruleOpIsActive ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_4__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14220:1: ( ( ruleOpIsActive ) )
+ // InternalRBAModel.g:14221:1: ( ruleOpIsActive )
+ {
+ // InternalRBAModel.g:14221:1: ( ruleOpIsActive )
+ // InternalRBAModel.g:14222:2: ruleOpIsActive
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getOpIsActiveParserRuleCall_1_1_0_0_4_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpIsActive();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getOpIsActiveParserRuleCall_1_1_0_0_4_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_4__1__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_5__0"
+ // InternalRBAModel.g:14232:1: rule__COperationFeatureCall__Group_1_1_0_0_5__0 : rule__COperationFeatureCall__Group_1_1_0_0_5__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_5__1 ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_5__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14236:1: ( rule__COperationFeatureCall__Group_1_1_0_0_5__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_5__1 )
+ // InternalRBAModel.g:14237:2: rule__COperationFeatureCall__Group_1_1_0_0_5__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_5__1
+ {
+ pushFollow(FOLLOW_94);
+ rule__COperationFeatureCall__Group_1_1_0_0_5__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_5__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_5__0"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_5__0__Impl"
+ // InternalRBAModel.g:14244:1: rule__COperationFeatureCall__Group_1_1_0_0_5__0__Impl : ( () ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_5__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14248:1: ( ( () ) )
+ // InternalRBAModel.g:14249:1: ( () )
+ {
+ // InternalRBAModel.g:14249:1: ( () )
+ // InternalRBAModel.g:14250:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getGetAllocatablesOperandAction_1_1_0_0_5_0());
+ }
+ // InternalRBAModel.g:14251:2: ()
+ // InternalRBAModel.g:14251:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getGetAllocatablesOperandAction_1_1_0_0_5_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_5__0__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_5__1"
+ // InternalRBAModel.g:14259:1: rule__COperationFeatureCall__Group_1_1_0_0_5__1 : rule__COperationFeatureCall__Group_1_1_0_0_5__1__Impl ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_5__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14263:1: ( rule__COperationFeatureCall__Group_1_1_0_0_5__1__Impl )
+ // InternalRBAModel.g:14264:2: rule__COperationFeatureCall__Group_1_1_0_0_5__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_5__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_5__1"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_5__1__Impl"
+ // InternalRBAModel.g:14270:1: rule__COperationFeatureCall__Group_1_1_0_0_5__1__Impl : ( ruleOpGetAllocatables ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_5__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14274:1: ( ( ruleOpGetAllocatables ) )
+ // InternalRBAModel.g:14275:1: ( ruleOpGetAllocatables )
+ {
+ // InternalRBAModel.g:14275:1: ( ruleOpGetAllocatables )
+ // InternalRBAModel.g:14276:2: ruleOpGetAllocatables
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getOpGetAllocatablesParserRuleCall_1_1_0_0_5_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpGetAllocatables();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getOpGetAllocatablesParserRuleCall_1_1_0_0_5_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_5__1__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_6__0"
+ // InternalRBAModel.g:14286:1: rule__COperationFeatureCall__Group_1_1_0_0_6__0 : rule__COperationFeatureCall__Group_1_1_0_0_6__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_6__1 ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_6__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14290:1: ( rule__COperationFeatureCall__Group_1_1_0_0_6__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_6__1 )
+ // InternalRBAModel.g:14291:2: rule__COperationFeatureCall__Group_1_1_0_0_6__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_6__1
+ {
+ pushFollow(FOLLOW_95);
+ rule__COperationFeatureCall__Group_1_1_0_0_6__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_6__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_6__0"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_6__0__Impl"
+ // InternalRBAModel.g:14298:1: rule__COperationFeatureCall__Group_1_1_0_0_6__0__Impl : ( () ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_6__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14302:1: ( ( () ) )
+ // InternalRBAModel.g:14303:1: ( () )
+ {
+ // InternalRBAModel.g:14303:1: ( () )
+ // InternalRBAModel.g:14304:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getAllocatedContentOperandAction_1_1_0_0_6_0());
+ }
+ // InternalRBAModel.g:14305:2: ()
+ // InternalRBAModel.g:14305:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getAllocatedContentOperandAction_1_1_0_0_6_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_6__0__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_6__1"
+ // InternalRBAModel.g:14313:1: rule__COperationFeatureCall__Group_1_1_0_0_6__1 : rule__COperationFeatureCall__Group_1_1_0_0_6__1__Impl ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_6__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14317:1: ( rule__COperationFeatureCall__Group_1_1_0_0_6__1__Impl )
+ // InternalRBAModel.g:14318:2: rule__COperationFeatureCall__Group_1_1_0_0_6__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_6__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_6__1"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_6__1__Impl"
+ // InternalRBAModel.g:14324:1: rule__COperationFeatureCall__Group_1_1_0_0_6__1__Impl : ( ruleOpAllocatedContent ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_6__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14328:1: ( ( ruleOpAllocatedContent ) )
+ // InternalRBAModel.g:14329:1: ( ruleOpAllocatedContent )
+ {
+ // InternalRBAModel.g:14329:1: ( ruleOpAllocatedContent )
+ // InternalRBAModel.g:14330:2: ruleOpAllocatedContent
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getOpAllocatedContentParserRuleCall_1_1_0_0_6_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpAllocatedContent();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getOpAllocatedContentParserRuleCall_1_1_0_0_6_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_6__1__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_7__0"
+ // InternalRBAModel.g:14340:1: rule__COperationFeatureCall__Group_1_1_0_0_7__0 : rule__COperationFeatureCall__Group_1_1_0_0_7__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_7__1 ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_7__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14344:1: ( rule__COperationFeatureCall__Group_1_1_0_0_7__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_7__1 )
+ // InternalRBAModel.g:14345:2: rule__COperationFeatureCall__Group_1_1_0_0_7__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_7__1
+ {
+ pushFollow(FOLLOW_96);
+ rule__COperationFeatureCall__Group_1_1_0_0_7__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_7__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_7__0"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_7__0__Impl"
+ // InternalRBAModel.g:14352:1: rule__COperationFeatureCall__Group_1_1_0_0_7__0__Impl : ( () ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_7__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14356:1: ( ( () ) )
+ // InternalRBAModel.g:14357:1: ( () )
+ {
+ // InternalRBAModel.g:14357:1: ( () )
+ // InternalRBAModel.g:14358:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getHasComeEarlierThanOperandAction_1_1_0_0_7_0());
+ }
+ // InternalRBAModel.g:14359:2: ()
+ // InternalRBAModel.g:14359:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getHasComeEarlierThanOperandAction_1_1_0_0_7_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_7__0__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_7__1"
+ // InternalRBAModel.g:14367:1: rule__COperationFeatureCall__Group_1_1_0_0_7__1 : rule__COperationFeatureCall__Group_1_1_0_0_7__1__Impl ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_7__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14371:1: ( rule__COperationFeatureCall__Group_1_1_0_0_7__1__Impl )
+ // InternalRBAModel.g:14372:2: rule__COperationFeatureCall__Group_1_1_0_0_7__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_7__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_7__1"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_7__1__Impl"
+ // InternalRBAModel.g:14378:1: rule__COperationFeatureCall__Group_1_1_0_0_7__1__Impl : ( ruleOpHasComeEarlierThan ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_7__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14382:1: ( ( ruleOpHasComeEarlierThan ) )
+ // InternalRBAModel.g:14383:1: ( ruleOpHasComeEarlierThan )
+ {
+ // InternalRBAModel.g:14383:1: ( ruleOpHasComeEarlierThan )
+ // InternalRBAModel.g:14384:2: ruleOpHasComeEarlierThan
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getOpHasComeEarlierThanParserRuleCall_1_1_0_0_7_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpHasComeEarlierThan();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getOpHasComeEarlierThanParserRuleCall_1_1_0_0_7_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_7__1__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_8__0"
+ // InternalRBAModel.g:14394:1: rule__COperationFeatureCall__Group_1_1_0_0_8__0 : rule__COperationFeatureCall__Group_1_1_0_0_8__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_8__1 ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_8__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14398:1: ( rule__COperationFeatureCall__Group_1_1_0_0_8__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_8__1 )
+ // InternalRBAModel.g:14399:2: rule__COperationFeatureCall__Group_1_1_0_0_8__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_8__1
+ {
+ pushFollow(FOLLOW_97);
+ rule__COperationFeatureCall__Group_1_1_0_0_8__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_8__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_8__0"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_8__0__Impl"
+ // InternalRBAModel.g:14406:1: rule__COperationFeatureCall__Group_1_1_0_0_8__0__Impl : ( () ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_8__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14410:1: ( ( () ) )
+ // InternalRBAModel.g:14411:1: ( () )
+ {
+ // InternalRBAModel.g:14411:1: ( () )
+ // InternalRBAModel.g:14412:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getHasComeLaterThanOperandAction_1_1_0_0_8_0());
+ }
+ // InternalRBAModel.g:14413:2: ()
+ // InternalRBAModel.g:14413:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getHasComeLaterThanOperandAction_1_1_0_0_8_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_8__0__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_8__1"
+ // InternalRBAModel.g:14421:1: rule__COperationFeatureCall__Group_1_1_0_0_8__1 : rule__COperationFeatureCall__Group_1_1_0_0_8__1__Impl ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_8__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14425:1: ( rule__COperationFeatureCall__Group_1_1_0_0_8__1__Impl )
+ // InternalRBAModel.g:14426:2: rule__COperationFeatureCall__Group_1_1_0_0_8__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_8__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_8__1"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_8__1__Impl"
+ // InternalRBAModel.g:14432:1: rule__COperationFeatureCall__Group_1_1_0_0_8__1__Impl : ( ruleOpHasComeLaterThan ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_8__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14436:1: ( ( ruleOpHasComeLaterThan ) )
+ // InternalRBAModel.g:14437:1: ( ruleOpHasComeLaterThan )
+ {
+ // InternalRBAModel.g:14437:1: ( ruleOpHasComeLaterThan )
+ // InternalRBAModel.g:14438:2: ruleOpHasComeLaterThan
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getOpHasComeLaterThanParserRuleCall_1_1_0_0_8_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpHasComeLaterThan();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getOpHasComeLaterThanParserRuleCall_1_1_0_0_8_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_8__1__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_9__0"
+ // InternalRBAModel.g:14448:1: rule__COperationFeatureCall__Group_1_1_0_0_9__0 : rule__COperationFeatureCall__Group_1_1_0_0_9__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_9__1 ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_9__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14452:1: ( rule__COperationFeatureCall__Group_1_1_0_0_9__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_9__1 )
+ // InternalRBAModel.g:14453:2: rule__COperationFeatureCall__Group_1_1_0_0_9__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_9__1
+ {
+ pushFollow(FOLLOW_98);
+ rule__COperationFeatureCall__Group_1_1_0_0_9__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_9__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_9__0"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_9__0__Impl"
+ // InternalRBAModel.g:14460:1: rule__COperationFeatureCall__Group_1_1_0_0_9__0__Impl : ( () ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_9__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14464:1: ( ( () ) )
+ // InternalRBAModel.g:14465:1: ( () )
+ {
+ // InternalRBAModel.g:14465:1: ( () )
+ // InternalRBAModel.g:14466:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getStateValueOperandAction_1_1_0_0_9_0());
+ }
+ // InternalRBAModel.g:14467:2: ()
+ // InternalRBAModel.g:14467:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getStateValueOperandAction_1_1_0_0_9_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_9__0__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_9__1"
+ // InternalRBAModel.g:14475:1: rule__COperationFeatureCall__Group_1_1_0_0_9__1 : rule__COperationFeatureCall__Group_1_1_0_0_9__1__Impl ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_9__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14479:1: ( rule__COperationFeatureCall__Group_1_1_0_0_9__1__Impl )
+ // InternalRBAModel.g:14480:2: rule__COperationFeatureCall__Group_1_1_0_0_9__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_9__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_9__1"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_9__1__Impl"
+ // InternalRBAModel.g:14486:1: rule__COperationFeatureCall__Group_1_1_0_0_9__1__Impl : ( ruleOpStateValue ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_9__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14490:1: ( ( ruleOpStateValue ) )
+ // InternalRBAModel.g:14491:1: ( ruleOpStateValue )
+ {
+ // InternalRBAModel.g:14491:1: ( ruleOpStateValue )
+ // InternalRBAModel.g:14492:2: ruleOpStateValue
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getOpStateValueParserRuleCall_1_1_0_0_9_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpStateValue();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getOpStateValueParserRuleCall_1_1_0_0_9_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_9__1__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_10__0"
+ // InternalRBAModel.g:14502:1: rule__COperationFeatureCall__Group_1_1_0_0_10__0 : rule__COperationFeatureCall__Group_1_1_0_0_10__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_10__1 ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_10__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14506:1: ( rule__COperationFeatureCall__Group_1_1_0_0_10__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_10__1 )
+ // InternalRBAModel.g:14507:2: rule__COperationFeatureCall__Group_1_1_0_0_10__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_10__1
+ {
+ pushFollow(FOLLOW_99);
+ rule__COperationFeatureCall__Group_1_1_0_0_10__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_10__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_10__0"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_10__0__Impl"
+ // InternalRBAModel.g:14514:1: rule__COperationFeatureCall__Group_1_1_0_0_10__0__Impl : ( () ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_10__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14518:1: ( ( () ) )
+ // InternalRBAModel.g:14519:1: ( () )
+ {
+ // InternalRBAModel.g:14519:1: ( () )
+ // InternalRBAModel.g:14520:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getActiveContentsOperandAction_1_1_0_0_10_0());
+ }
+ // InternalRBAModel.g:14521:2: ()
+ // InternalRBAModel.g:14521:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getActiveContentsOperandAction_1_1_0_0_10_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_10__0__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_10__1"
+ // InternalRBAModel.g:14529:1: rule__COperationFeatureCall__Group_1_1_0_0_10__1 : rule__COperationFeatureCall__Group_1_1_0_0_10__1__Impl ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_10__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14533:1: ( rule__COperationFeatureCall__Group_1_1_0_0_10__1__Impl )
+ // InternalRBAModel.g:14534:2: rule__COperationFeatureCall__Group_1_1_0_0_10__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_10__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_10__1"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_10__1__Impl"
+ // InternalRBAModel.g:14540:1: rule__COperationFeatureCall__Group_1_1_0_0_10__1__Impl : ( ruleOpActiveContents ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_10__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14544:1: ( ( ruleOpActiveContents ) )
+ // InternalRBAModel.g:14545:1: ( ruleOpActiveContents )
+ {
+ // InternalRBAModel.g:14545:1: ( ruleOpActiveContents )
+ // InternalRBAModel.g:14546:2: ruleOpActiveContents
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getOpActiveContentsParserRuleCall_1_1_0_0_10_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpActiveContents();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getOpActiveContentsParserRuleCall_1_1_0_0_10_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_10__1__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_11__0"
+ // InternalRBAModel.g:14556:1: rule__COperationFeatureCall__Group_1_1_0_0_11__0 : rule__COperationFeatureCall__Group_1_1_0_0_11__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_11__1 ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_11__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14560:1: ( rule__COperationFeatureCall__Group_1_1_0_0_11__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_11__1 )
+ // InternalRBAModel.g:14561:2: rule__COperationFeatureCall__Group_1_1_0_0_11__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_11__1
+ {
+ pushFollow(FOLLOW_100);
+ rule__COperationFeatureCall__Group_1_1_0_0_11__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_11__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_11__0"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_11__0__Impl"
+ // InternalRBAModel.g:14568:1: rule__COperationFeatureCall__Group_1_1_0_0_11__0__Impl : ( () ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_11__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14572:1: ( ( () ) )
+ // InternalRBAModel.g:14573:1: ( () )
+ {
+ // InternalRBAModel.g:14573:1: ( () )
+ // InternalRBAModel.g:14574:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getSizeOperatorOperandAction_1_1_0_0_11_0());
+ }
+ // InternalRBAModel.g:14575:2: ()
+ // InternalRBAModel.g:14575:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getSizeOperatorOperandAction_1_1_0_0_11_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_11__0__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_11__1"
+ // InternalRBAModel.g:14583:1: rule__COperationFeatureCall__Group_1_1_0_0_11__1 : rule__COperationFeatureCall__Group_1_1_0_0_11__1__Impl ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_11__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14587:1: ( rule__COperationFeatureCall__Group_1_1_0_0_11__1__Impl )
+ // InternalRBAModel.g:14588:2: rule__COperationFeatureCall__Group_1_1_0_0_11__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_11__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_11__1"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_11__1__Impl"
+ // InternalRBAModel.g:14594:1: rule__COperationFeatureCall__Group_1_1_0_0_11__1__Impl : ( ruleOpSizeOperator ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_11__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14598:1: ( ( ruleOpSizeOperator ) )
+ // InternalRBAModel.g:14599:1: ( ruleOpSizeOperator )
+ {
+ // InternalRBAModel.g:14599:1: ( ruleOpSizeOperator )
+ // InternalRBAModel.g:14600:2: ruleOpSizeOperator
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getOpSizeOperatorParserRuleCall_1_1_0_0_11_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpSizeOperator();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getOpSizeOperatorParserRuleCall_1_1_0_0_11_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_11__1__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_12__0"
+ // InternalRBAModel.g:14610:1: rule__COperationFeatureCall__Group_1_1_0_0_12__0 : rule__COperationFeatureCall__Group_1_1_0_0_12__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_12__1 ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_12__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14614:1: ( rule__COperationFeatureCall__Group_1_1_0_0_12__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_12__1 )
+ // InternalRBAModel.g:14615:2: rule__COperationFeatureCall__Group_1_1_0_0_12__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_12__1
+ {
+ pushFollow(FOLLOW_101);
+ rule__COperationFeatureCall__Group_1_1_0_0_12__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_12__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_12__0"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_12__0__Impl"
+ // InternalRBAModel.g:14622:1: rule__COperationFeatureCall__Group_1_1_0_0_12__0__Impl : ( () ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_12__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14626:1: ( ( () ) )
+ // InternalRBAModel.g:14627:1: ( () )
+ {
+ // InternalRBAModel.g:14627:1: ( () )
+ // InternalRBAModel.g:14628:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getHasBeenDisplayedOperandAction_1_1_0_0_12_0());
+ }
+ // InternalRBAModel.g:14629:2: ()
+ // InternalRBAModel.g:14629:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getHasBeenDisplayedOperandAction_1_1_0_0_12_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_12__0__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_12__1"
+ // InternalRBAModel.g:14637:1: rule__COperationFeatureCall__Group_1_1_0_0_12__1 : rule__COperationFeatureCall__Group_1_1_0_0_12__1__Impl ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_12__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14641:1: ( rule__COperationFeatureCall__Group_1_1_0_0_12__1__Impl )
+ // InternalRBAModel.g:14642:2: rule__COperationFeatureCall__Group_1_1_0_0_12__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_12__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_12__1"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_12__1__Impl"
+ // InternalRBAModel.g:14648:1: rule__COperationFeatureCall__Group_1_1_0_0_12__1__Impl : ( ruleOpHasBeenDisplayed ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_12__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14652:1: ( ( ruleOpHasBeenDisplayed ) )
+ // InternalRBAModel.g:14653:1: ( ruleOpHasBeenDisplayed )
+ {
+ // InternalRBAModel.g:14653:1: ( ruleOpHasBeenDisplayed )
+ // InternalRBAModel.g:14654:2: ruleOpHasBeenDisplayed
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getOpHasBeenDisplayedParserRuleCall_1_1_0_0_12_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpHasBeenDisplayed();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getOpHasBeenDisplayedParserRuleCall_1_1_0_0_12_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_12__1__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_13__0"
+ // InternalRBAModel.g:14664:1: rule__COperationFeatureCall__Group_1_1_0_0_13__0 : rule__COperationFeatureCall__Group_1_1_0_0_13__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_13__1 ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_13__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14668:1: ( rule__COperationFeatureCall__Group_1_1_0_0_13__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_13__1 )
+ // InternalRBAModel.g:14669:2: rule__COperationFeatureCall__Group_1_1_0_0_13__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_13__1
+ {
+ pushFollow(FOLLOW_102);
+ rule__COperationFeatureCall__Group_1_1_0_0_13__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_13__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_13__0"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_13__0__Impl"
+ // InternalRBAModel.g:14676:1: rule__COperationFeatureCall__Group_1_1_0_0_13__0__Impl : ( () ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_13__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14680:1: ( ( () ) )
+ // InternalRBAModel.g:14681:1: ( () )
+ {
+ // InternalRBAModel.g:14681:1: ( () )
+ // InternalRBAModel.g:14682:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getActiveStateOperandAction_1_1_0_0_13_0());
+ }
+ // InternalRBAModel.g:14683:2: ()
+ // InternalRBAModel.g:14683:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getActiveStateOperandAction_1_1_0_0_13_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_13__0__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_13__1"
+ // InternalRBAModel.g:14691:1: rule__COperationFeatureCall__Group_1_1_0_0_13__1 : rule__COperationFeatureCall__Group_1_1_0_0_13__1__Impl ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_13__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14695:1: ( rule__COperationFeatureCall__Group_1_1_0_0_13__1__Impl )
+ // InternalRBAModel.g:14696:2: rule__COperationFeatureCall__Group_1_1_0_0_13__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_13__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_13__1"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_13__1__Impl"
+ // InternalRBAModel.g:14702:1: rule__COperationFeatureCall__Group_1_1_0_0_13__1__Impl : ( ruleOpActiveState ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_13__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14706:1: ( ( ruleOpActiveState ) )
+ // InternalRBAModel.g:14707:1: ( ruleOpActiveState )
+ {
+ // InternalRBAModel.g:14707:1: ( ruleOpActiveState )
+ // InternalRBAModel.g:14708:2: ruleOpActiveState
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getOpActiveStateParserRuleCall_1_1_0_0_13_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpActiveState();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getOpActiveStateParserRuleCall_1_1_0_0_13_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_13__1__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_14__0"
+ // InternalRBAModel.g:14718:1: rule__COperationFeatureCall__Group_1_1_0_0_14__0 : rule__COperationFeatureCall__Group_1_1_0_0_14__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_14__1 ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_14__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14722:1: ( rule__COperationFeatureCall__Group_1_1_0_0_14__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_14__1 )
+ // InternalRBAModel.g:14723:2: rule__COperationFeatureCall__Group_1_1_0_0_14__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_14__1
+ {
+ pushFollow(FOLLOW_103);
+ rule__COperationFeatureCall__Group_1_1_0_0_14__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_14__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_14__0"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_14__0__Impl"
+ // InternalRBAModel.g:14730:1: rule__COperationFeatureCall__Group_1_1_0_0_14__0__Impl : ( () ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_14__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14734:1: ( ( () ) )
+ // InternalRBAModel.g:14735:1: ( () )
+ {
+ // InternalRBAModel.g:14735:1: ( () )
+ // InternalRBAModel.g:14736:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getIsDisplayedOperandAction_1_1_0_0_14_0());
+ }
+ // InternalRBAModel.g:14737:2: ()
+ // InternalRBAModel.g:14737:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getIsDisplayedOperandAction_1_1_0_0_14_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_14__0__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_14__1"
+ // InternalRBAModel.g:14745:1: rule__COperationFeatureCall__Group_1_1_0_0_14__1 : rule__COperationFeatureCall__Group_1_1_0_0_14__1__Impl ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_14__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14749:1: ( rule__COperationFeatureCall__Group_1_1_0_0_14__1__Impl )
+ // InternalRBAModel.g:14750:2: rule__COperationFeatureCall__Group_1_1_0_0_14__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_14__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_14__1"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_14__1__Impl"
+ // InternalRBAModel.g:14756:1: rule__COperationFeatureCall__Group_1_1_0_0_14__1__Impl : ( ruleOpIsDisplayed ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_14__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14760:1: ( ( ruleOpIsDisplayed ) )
+ // InternalRBAModel.g:14761:1: ( ruleOpIsDisplayed )
+ {
+ // InternalRBAModel.g:14761:1: ( ruleOpIsDisplayed )
+ // InternalRBAModel.g:14762:2: ruleOpIsDisplayed
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getOpIsDisplayedParserRuleCall_1_1_0_0_14_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpIsDisplayed();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getOpIsDisplayedParserRuleCall_1_1_0_0_14_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_14__1__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_15__0"
+ // InternalRBAModel.g:14772:1: rule__COperationFeatureCall__Group_1_1_0_0_15__0 : rule__COperationFeatureCall__Group_1_1_0_0_15__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_15__1 ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_15__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14776:1: ( rule__COperationFeatureCall__Group_1_1_0_0_15__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_15__1 )
+ // InternalRBAModel.g:14777:2: rule__COperationFeatureCall__Group_1_1_0_0_15__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_15__1
+ {
+ pushFollow(FOLLOW_104);
+ rule__COperationFeatureCall__Group_1_1_0_0_15__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_15__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_15__0"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_15__0__Impl"
+ // InternalRBAModel.g:14784:1: rule__COperationFeatureCall__Group_1_1_0_0_15__0__Impl : ( () ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_15__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14788:1: ( ( () ) )
+ // InternalRBAModel.g:14789:1: ( () )
+ {
+ // InternalRBAModel.g:14789:1: ( () )
+ // InternalRBAModel.g:14790:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getIsHiddenOperandAction_1_1_0_0_15_0());
+ }
+ // InternalRBAModel.g:14791:2: ()
+ // InternalRBAModel.g:14791:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getIsHiddenOperandAction_1_1_0_0_15_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_15__0__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_15__1"
+ // InternalRBAModel.g:14799:1: rule__COperationFeatureCall__Group_1_1_0_0_15__1 : rule__COperationFeatureCall__Group_1_1_0_0_15__1__Impl ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_15__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14803:1: ( rule__COperationFeatureCall__Group_1_1_0_0_15__1__Impl )
+ // InternalRBAModel.g:14804:2: rule__COperationFeatureCall__Group_1_1_0_0_15__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_15__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_15__1"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_15__1__Impl"
+ // InternalRBAModel.g:14810:1: rule__COperationFeatureCall__Group_1_1_0_0_15__1__Impl : ( ruleOpIsHidden ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_15__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14814:1: ( ( ruleOpIsHidden ) )
+ // InternalRBAModel.g:14815:1: ( ruleOpIsHidden )
+ {
+ // InternalRBAModel.g:14815:1: ( ruleOpIsHidden )
+ // InternalRBAModel.g:14816:2: ruleOpIsHidden
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getOpIsHiddenParserRuleCall_1_1_0_0_15_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpIsHidden();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getOpIsHiddenParserRuleCall_1_1_0_0_15_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_15__1__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_16__0"
+ // InternalRBAModel.g:14826:1: rule__COperationFeatureCall__Group_1_1_0_0_16__0 : rule__COperationFeatureCall__Group_1_1_0_0_16__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_16__1 ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_16__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14830:1: ( rule__COperationFeatureCall__Group_1_1_0_0_16__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_16__1 )
+ // InternalRBAModel.g:14831:2: rule__COperationFeatureCall__Group_1_1_0_0_16__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_16__1
+ {
+ pushFollow(FOLLOW_105);
+ rule__COperationFeatureCall__Group_1_1_0_0_16__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_16__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_16__0"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_16__0__Impl"
+ // InternalRBAModel.g:14838:1: rule__COperationFeatureCall__Group_1_1_0_0_16__0__Impl : ( () ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_16__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14842:1: ( ( () ) )
+ // InternalRBAModel.g:14843:1: ( () )
+ {
+ // InternalRBAModel.g:14843:1: ( () )
+ // InternalRBAModel.g:14844:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getDisplayingContentOperandAction_1_1_0_0_16_0());
+ }
+ // InternalRBAModel.g:14845:2: ()
+ // InternalRBAModel.g:14845:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getDisplayingContentOperandAction_1_1_0_0_16_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_16__0__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_16__1"
+ // InternalRBAModel.g:14853:1: rule__COperationFeatureCall__Group_1_1_0_0_16__1 : rule__COperationFeatureCall__Group_1_1_0_0_16__1__Impl ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_16__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14857:1: ( rule__COperationFeatureCall__Group_1_1_0_0_16__1__Impl )
+ // InternalRBAModel.g:14858:2: rule__COperationFeatureCall__Group_1_1_0_0_16__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_16__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_16__1"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_16__1__Impl"
+ // InternalRBAModel.g:14864:1: rule__COperationFeatureCall__Group_1_1_0_0_16__1__Impl : ( ruleOpDisplayingContent ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_16__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14868:1: ( ( ruleOpDisplayingContent ) )
+ // InternalRBAModel.g:14869:1: ( ruleOpDisplayingContent )
+ {
+ // InternalRBAModel.g:14869:1: ( ruleOpDisplayingContent )
+ // InternalRBAModel.g:14870:2: ruleOpDisplayingContent
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getOpDisplayingContentParserRuleCall_1_1_0_0_16_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpDisplayingContent();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getOpDisplayingContentParserRuleCall_1_1_0_0_16_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_16__1__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_17__0"
+ // InternalRBAModel.g:14880:1: rule__COperationFeatureCall__Group_1_1_0_0_17__0 : rule__COperationFeatureCall__Group_1_1_0_0_17__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_17__1 ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_17__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14884:1: ( rule__COperationFeatureCall__Group_1_1_0_0_17__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_17__1 )
+ // InternalRBAModel.g:14885:2: rule__COperationFeatureCall__Group_1_1_0_0_17__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_17__1
+ {
+ pushFollow(FOLLOW_106);
+ rule__COperationFeatureCall__Group_1_1_0_0_17__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_17__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_17__0"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_17__0__Impl"
+ // InternalRBAModel.g:14892:1: rule__COperationFeatureCall__Group_1_1_0_0_17__0__Impl : ( () ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_17__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14896:1: ( ( () ) )
+ // InternalRBAModel.g:14897:1: ( () )
+ {
+ // InternalRBAModel.g:14897:1: ( () )
+ // InternalRBAModel.g:14898:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getIsVisibleOperandAction_1_1_0_0_17_0());
+ }
+ // InternalRBAModel.g:14899:2: ()
+ // InternalRBAModel.g:14899:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getIsVisibleOperandAction_1_1_0_0_17_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_17__0__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_17__1"
+ // InternalRBAModel.g:14907:1: rule__COperationFeatureCall__Group_1_1_0_0_17__1 : rule__COperationFeatureCall__Group_1_1_0_0_17__1__Impl ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_17__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14911:1: ( rule__COperationFeatureCall__Group_1_1_0_0_17__1__Impl )
+ // InternalRBAModel.g:14912:2: rule__COperationFeatureCall__Group_1_1_0_0_17__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_17__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_17__1"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_17__1__Impl"
+ // InternalRBAModel.g:14918:1: rule__COperationFeatureCall__Group_1_1_0_0_17__1__Impl : ( ruleOpIsVisible ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_17__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14922:1: ( ( ruleOpIsVisible ) )
+ // InternalRBAModel.g:14923:1: ( ruleOpIsVisible )
+ {
+ // InternalRBAModel.g:14923:1: ( ruleOpIsVisible )
+ // InternalRBAModel.g:14924:2: ruleOpIsVisible
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getOpIsVisibleParserRuleCall_1_1_0_0_17_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpIsVisible();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getOpIsVisibleParserRuleCall_1_1_0_0_17_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_17__1__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_18__0"
+ // InternalRBAModel.g:14934:1: rule__COperationFeatureCall__Group_1_1_0_0_18__0 : rule__COperationFeatureCall__Group_1_1_0_0_18__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_18__1 ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_18__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14938:1: ( rule__COperationFeatureCall__Group_1_1_0_0_18__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_18__1 )
+ // InternalRBAModel.g:14939:2: rule__COperationFeatureCall__Group_1_1_0_0_18__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_18__1
+ {
+ pushFollow(FOLLOW_107);
+ rule__COperationFeatureCall__Group_1_1_0_0_18__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_18__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_18__0"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_18__0__Impl"
+ // InternalRBAModel.g:14946:1: rule__COperationFeatureCall__Group_1_1_0_0_18__0__Impl : ( () ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_18__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14950:1: ( ( () ) )
+ // InternalRBAModel.g:14951:1: ( () )
+ {
+ // InternalRBAModel.g:14951:1: ( () )
+ // InternalRBAModel.g:14952:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getIsOutputtedOperandAction_1_1_0_0_18_0());
+ }
+ // InternalRBAModel.g:14953:2: ()
+ // InternalRBAModel.g:14953:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getIsOutputtedOperandAction_1_1_0_0_18_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_18__0__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_18__1"
+ // InternalRBAModel.g:14961:1: rule__COperationFeatureCall__Group_1_1_0_0_18__1 : rule__COperationFeatureCall__Group_1_1_0_0_18__1__Impl ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_18__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14965:1: ( rule__COperationFeatureCall__Group_1_1_0_0_18__1__Impl )
+ // InternalRBAModel.g:14966:2: rule__COperationFeatureCall__Group_1_1_0_0_18__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_18__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_18__1"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_18__1__Impl"
+ // InternalRBAModel.g:14972:1: rule__COperationFeatureCall__Group_1_1_0_0_18__1__Impl : ( ruleOpIsOutputted ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_18__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14976:1: ( ( ruleOpIsOutputted ) )
+ // InternalRBAModel.g:14977:1: ( ruleOpIsOutputted )
+ {
+ // InternalRBAModel.g:14977:1: ( ruleOpIsOutputted )
+ // InternalRBAModel.g:14978:2: ruleOpIsOutputted
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getOpIsOutputtedParserRuleCall_1_1_0_0_18_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpIsOutputted();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getOpIsOutputtedParserRuleCall_1_1_0_0_18_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_18__1__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_19__0"
+ // InternalRBAModel.g:14988:1: rule__COperationFeatureCall__Group_1_1_0_0_19__0 : rule__COperationFeatureCall__Group_1_1_0_0_19__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_19__1 ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_19__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:14992:1: ( rule__COperationFeatureCall__Group_1_1_0_0_19__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_19__1 )
+ // InternalRBAModel.g:14993:2: rule__COperationFeatureCall__Group_1_1_0_0_19__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_19__1
+ {
+ pushFollow(FOLLOW_108);
+ rule__COperationFeatureCall__Group_1_1_0_0_19__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_19__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_19__0"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_19__0__Impl"
+ // InternalRBAModel.g:15000:1: rule__COperationFeatureCall__Group_1_1_0_0_19__0__Impl : ( () ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_19__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15004:1: ( ( () ) )
+ // InternalRBAModel.g:15005:1: ( () )
+ {
+ // InternalRBAModel.g:15005:1: ( () )
+ // InternalRBAModel.g:15006:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getIsMutedOperandAction_1_1_0_0_19_0());
+ }
+ // InternalRBAModel.g:15007:2: ()
+ // InternalRBAModel.g:15007:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getIsMutedOperandAction_1_1_0_0_19_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_19__0__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_19__1"
+ // InternalRBAModel.g:15015:1: rule__COperationFeatureCall__Group_1_1_0_0_19__1 : rule__COperationFeatureCall__Group_1_1_0_0_19__1__Impl ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_19__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15019:1: ( rule__COperationFeatureCall__Group_1_1_0_0_19__1__Impl )
+ // InternalRBAModel.g:15020:2: rule__COperationFeatureCall__Group_1_1_0_0_19__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_19__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_19__1"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_19__1__Impl"
+ // InternalRBAModel.g:15026:1: rule__COperationFeatureCall__Group_1_1_0_0_19__1__Impl : ( ruleOpIsMuted ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_19__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15030:1: ( ( ruleOpIsMuted ) )
+ // InternalRBAModel.g:15031:1: ( ruleOpIsMuted )
+ {
+ // InternalRBAModel.g:15031:1: ( ruleOpIsMuted )
+ // InternalRBAModel.g:15032:2: ruleOpIsMuted
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getOpIsMutedParserRuleCall_1_1_0_0_19_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpIsMuted();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getOpIsMutedParserRuleCall_1_1_0_0_19_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_19__1__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_20__0"
+ // InternalRBAModel.g:15042:1: rule__COperationFeatureCall__Group_1_1_0_0_20__0 : rule__COperationFeatureCall__Group_1_1_0_0_20__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_20__1 ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_20__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15046:1: ( rule__COperationFeatureCall__Group_1_1_0_0_20__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_20__1 )
+ // InternalRBAModel.g:15047:2: rule__COperationFeatureCall__Group_1_1_0_0_20__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_20__1
+ {
+ pushFollow(FOLLOW_109);
+ rule__COperationFeatureCall__Group_1_1_0_0_20__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_20__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_20__0"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_20__0__Impl"
+ // InternalRBAModel.g:15054:1: rule__COperationFeatureCall__Group_1_1_0_0_20__0__Impl : ( () ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_20__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15058:1: ( ( () ) )
+ // InternalRBAModel.g:15059:1: ( () )
+ {
+ // InternalRBAModel.g:15059:1: ( () )
+ // InternalRBAModel.g:15060:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getOutputtingSoundOperandAction_1_1_0_0_20_0());
+ }
+ // InternalRBAModel.g:15061:2: ()
+ // InternalRBAModel.g:15061:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getOutputtingSoundOperandAction_1_1_0_0_20_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_20__0__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_20__1"
+ // InternalRBAModel.g:15069:1: rule__COperationFeatureCall__Group_1_1_0_0_20__1 : rule__COperationFeatureCall__Group_1_1_0_0_20__1__Impl ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_20__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15073:1: ( rule__COperationFeatureCall__Group_1_1_0_0_20__1__Impl )
+ // InternalRBAModel.g:15074:2: rule__COperationFeatureCall__Group_1_1_0_0_20__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_20__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_20__1"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_20__1__Impl"
+ // InternalRBAModel.g:15080:1: rule__COperationFeatureCall__Group_1_1_0_0_20__1__Impl : ( ruleOpOutputtingSound ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_20__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15084:1: ( ( ruleOpOutputtingSound ) )
+ // InternalRBAModel.g:15085:1: ( ruleOpOutputtingSound )
+ {
+ // InternalRBAModel.g:15085:1: ( ruleOpOutputtingSound )
+ // InternalRBAModel.g:15086:2: ruleOpOutputtingSound
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getOpOutputtingSoundParserRuleCall_1_1_0_0_20_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpOutputtingSound();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getOpOutputtingSoundParserRuleCall_1_1_0_0_20_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_20__1__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_21__0"
+ // InternalRBAModel.g:15096:1: rule__COperationFeatureCall__Group_1_1_0_0_21__0 : rule__COperationFeatureCall__Group_1_1_0_0_21__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_21__1 ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_21__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15100:1: ( rule__COperationFeatureCall__Group_1_1_0_0_21__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_21__1 )
+ // InternalRBAModel.g:15101:2: rule__COperationFeatureCall__Group_1_1_0_0_21__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_21__1
+ {
+ pushFollow(FOLLOW_110);
+ rule__COperationFeatureCall__Group_1_1_0_0_21__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_21__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_21__0"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_21__0__Impl"
+ // InternalRBAModel.g:15108:1: rule__COperationFeatureCall__Group_1_1_0_0_21__0__Impl : ( () ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_21__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15112:1: ( ( () ) )
+ // InternalRBAModel.g:15113:1: ( () )
+ {
+ // InternalRBAModel.g:15113:1: ( () )
+ // InternalRBAModel.g:15114:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getIsSoundingOperandAction_1_1_0_0_21_0());
+ }
+ // InternalRBAModel.g:15115:2: ()
+ // InternalRBAModel.g:15115:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getIsSoundingOperandAction_1_1_0_0_21_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_21__0__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_21__1"
+ // InternalRBAModel.g:15123:1: rule__COperationFeatureCall__Group_1_1_0_0_21__1 : rule__COperationFeatureCall__Group_1_1_0_0_21__1__Impl ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_21__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15127:1: ( rule__COperationFeatureCall__Group_1_1_0_0_21__1__Impl )
+ // InternalRBAModel.g:15128:2: rule__COperationFeatureCall__Group_1_1_0_0_21__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_21__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_21__1"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_21__1__Impl"
+ // InternalRBAModel.g:15134:1: rule__COperationFeatureCall__Group_1_1_0_0_21__1__Impl : ( ruleOpIsSounding ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_21__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15138:1: ( ( ruleOpIsSounding ) )
+ // InternalRBAModel.g:15139:1: ( ruleOpIsSounding )
+ {
+ // InternalRBAModel.g:15139:1: ( ruleOpIsSounding )
+ // InternalRBAModel.g:15140:2: ruleOpIsSounding
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getOpIsSoundingParserRuleCall_1_1_0_0_21_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpIsSounding();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getOpIsSoundingParserRuleCall_1_1_0_0_21_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_21__1__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_22__0"
+ // InternalRBAModel.g:15150:1: rule__COperationFeatureCall__Group_1_1_0_0_22__0 : rule__COperationFeatureCall__Group_1_1_0_0_22__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_22__1 ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_22__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15154:1: ( rule__COperationFeatureCall__Group_1_1_0_0_22__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_22__1 )
+ // InternalRBAModel.g:15155:2: rule__COperationFeatureCall__Group_1_1_0_0_22__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_22__1
+ {
+ pushFollow(FOLLOW_111);
+ rule__COperationFeatureCall__Group_1_1_0_0_22__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_22__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_22__0"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_22__0__Impl"
+ // InternalRBAModel.g:15162:1: rule__COperationFeatureCall__Group_1_1_0_0_22__0__Impl : ( () ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_22__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15166:1: ( ( () ) )
+ // InternalRBAModel.g:15167:1: ( () )
+ {
+ // InternalRBAModel.g:15167:1: ( () )
+ // InternalRBAModel.g:15168:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getIsAllocatedToOperandAction_1_1_0_0_22_0());
+ }
+ // InternalRBAModel.g:15169:2: ()
+ // InternalRBAModel.g:15169:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getIsAllocatedToOperandAction_1_1_0_0_22_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_22__0__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_22__1"
+ // InternalRBAModel.g:15177:1: rule__COperationFeatureCall__Group_1_1_0_0_22__1 : rule__COperationFeatureCall__Group_1_1_0_0_22__1__Impl ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_22__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15181:1: ( rule__COperationFeatureCall__Group_1_1_0_0_22__1__Impl )
+ // InternalRBAModel.g:15182:2: rule__COperationFeatureCall__Group_1_1_0_0_22__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_22__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_22__1"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_22__1__Impl"
+ // InternalRBAModel.g:15188:1: rule__COperationFeatureCall__Group_1_1_0_0_22__1__Impl : ( ruleOpIsAllocatedTo ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_22__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15192:1: ( ( ruleOpIsAllocatedTo ) )
+ // InternalRBAModel.g:15193:1: ( ruleOpIsAllocatedTo )
+ {
+ // InternalRBAModel.g:15193:1: ( ruleOpIsAllocatedTo )
+ // InternalRBAModel.g:15194:2: ruleOpIsAllocatedTo
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getOpIsAllocatedToParserRuleCall_1_1_0_0_22_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpIsAllocatedTo();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getOpIsAllocatedToParserRuleCall_1_1_0_0_22_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_22__1__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_23__0"
+ // InternalRBAModel.g:15204:1: rule__COperationFeatureCall__Group_1_1_0_0_23__0 : rule__COperationFeatureCall__Group_1_1_0_0_23__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_23__1 ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_23__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15208:1: ( rule__COperationFeatureCall__Group_1_1_0_0_23__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_23__1 )
+ // InternalRBAModel.g:15209:2: rule__COperationFeatureCall__Group_1_1_0_0_23__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_23__1
+ {
+ pushFollow(FOLLOW_112);
+ rule__COperationFeatureCall__Group_1_1_0_0_23__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_23__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_23__0"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_23__0__Impl"
+ // InternalRBAModel.g:15216:1: rule__COperationFeatureCall__Group_1_1_0_0_23__0__Impl : ( () ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_23__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15220:1: ( ( () ) )
+ // InternalRBAModel.g:15221:1: ( () )
+ {
+ // InternalRBAModel.g:15221:1: ( () )
+ // InternalRBAModel.g:15222:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getIsChangedOperandAction_1_1_0_0_23_0());
+ }
+ // InternalRBAModel.g:15223:2: ()
+ // InternalRBAModel.g:15223:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getIsChangedOperandAction_1_1_0_0_23_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_23__0__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_23__1"
+ // InternalRBAModel.g:15231:1: rule__COperationFeatureCall__Group_1_1_0_0_23__1 : rule__COperationFeatureCall__Group_1_1_0_0_23__1__Impl ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_23__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15235:1: ( rule__COperationFeatureCall__Group_1_1_0_0_23__1__Impl )
+ // InternalRBAModel.g:15236:2: rule__COperationFeatureCall__Group_1_1_0_0_23__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_23__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_23__1"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_23__1__Impl"
+ // InternalRBAModel.g:15242:1: rule__COperationFeatureCall__Group_1_1_0_0_23__1__Impl : ( ruleOpIsChanged ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_23__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15246:1: ( ( ruleOpIsChanged ) )
+ // InternalRBAModel.g:15247:1: ( ruleOpIsChanged )
+ {
+ // InternalRBAModel.g:15247:1: ( ruleOpIsChanged )
+ // InternalRBAModel.g:15248:2: ruleOpIsChanged
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getOpIsChangedParserRuleCall_1_1_0_0_23_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpIsChanged();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getOpIsChangedParserRuleCall_1_1_0_0_23_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_23__1__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_24__0"
+ // InternalRBAModel.g:15258:1: rule__COperationFeatureCall__Group_1_1_0_0_24__0 : rule__COperationFeatureCall__Group_1_1_0_0_24__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_24__1 ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_24__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15262:1: ( rule__COperationFeatureCall__Group_1_1_0_0_24__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_24__1 )
+ // InternalRBAModel.g:15263:2: rule__COperationFeatureCall__Group_1_1_0_0_24__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_24__1
+ {
+ pushFollow(FOLLOW_113);
+ rule__COperationFeatureCall__Group_1_1_0_0_24__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_24__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_24__0"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_24__0__Impl"
+ // InternalRBAModel.g:15270:1: rule__COperationFeatureCall__Group_1_1_0_0_24__0__Impl : ( () ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_24__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15274:1: ( ( () ) )
+ // InternalRBAModel.g:15275:1: ( () )
+ {
+ // InternalRBAModel.g:15275:1: ( () )
+ // InternalRBAModel.g:15276:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getIsTranslatedToOperandAction_1_1_0_0_24_0());
+ }
+ // InternalRBAModel.g:15277:2: ()
+ // InternalRBAModel.g:15277:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getIsTranslatedToOperandAction_1_1_0_0_24_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_24__0__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_24__1"
+ // InternalRBAModel.g:15285:1: rule__COperationFeatureCall__Group_1_1_0_0_24__1 : rule__COperationFeatureCall__Group_1_1_0_0_24__1__Impl ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_24__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15289:1: ( rule__COperationFeatureCall__Group_1_1_0_0_24__1__Impl )
+ // InternalRBAModel.g:15290:2: rule__COperationFeatureCall__Group_1_1_0_0_24__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_24__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_24__1"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_24__1__Impl"
+ // InternalRBAModel.g:15296:1: rule__COperationFeatureCall__Group_1_1_0_0_24__1__Impl : ( ruleOpIsTranslatedTo ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_24__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15300:1: ( ( ruleOpIsTranslatedTo ) )
+ // InternalRBAModel.g:15301:1: ( ruleOpIsTranslatedTo )
+ {
+ // InternalRBAModel.g:15301:1: ( ruleOpIsTranslatedTo )
+ // InternalRBAModel.g:15302:2: ruleOpIsTranslatedTo
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getOpIsTranslatedToParserRuleCall_1_1_0_0_24_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpIsTranslatedTo();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getOpIsTranslatedToParserRuleCall_1_1_0_0_24_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_24__1__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_25__0"
+ // InternalRBAModel.g:15312:1: rule__COperationFeatureCall__Group_1_1_0_0_25__0 : rule__COperationFeatureCall__Group_1_1_0_0_25__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_25__1 ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_25__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15316:1: ( rule__COperationFeatureCall__Group_1_1_0_0_25__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_25__1 )
+ // InternalRBAModel.g:15317:2: rule__COperationFeatureCall__Group_1_1_0_0_25__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_25__1
+ {
+ pushFollow(FOLLOW_114);
+ rule__COperationFeatureCall__Group_1_1_0_0_25__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_25__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_25__0"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_25__0__Impl"
+ // InternalRBAModel.g:15324:1: rule__COperationFeatureCall__Group_1_1_0_0_25__0__Impl : ( () ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_25__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15328:1: ( ( () ) )
+ // InternalRBAModel.g:15329:1: ( () )
+ {
+ // InternalRBAModel.g:15329:1: ( () )
+ // InternalRBAModel.g:15330:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getIsDisplayedOnOperandAction_1_1_0_0_25_0());
+ }
+ // InternalRBAModel.g:15331:2: ()
+ // InternalRBAModel.g:15331:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getIsDisplayedOnOperandAction_1_1_0_0_25_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_25__0__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_25__1"
+ // InternalRBAModel.g:15339:1: rule__COperationFeatureCall__Group_1_1_0_0_25__1 : rule__COperationFeatureCall__Group_1_1_0_0_25__1__Impl ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_25__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15343:1: ( rule__COperationFeatureCall__Group_1_1_0_0_25__1__Impl )
+ // InternalRBAModel.g:15344:2: rule__COperationFeatureCall__Group_1_1_0_0_25__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_25__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_25__1"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_25__1__Impl"
+ // InternalRBAModel.g:15350:1: rule__COperationFeatureCall__Group_1_1_0_0_25__1__Impl : ( ruleOpIsDisplayedOn ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_25__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15354:1: ( ( ruleOpIsDisplayedOn ) )
+ // InternalRBAModel.g:15355:1: ( ruleOpIsDisplayedOn )
+ {
+ // InternalRBAModel.g:15355:1: ( ruleOpIsDisplayedOn )
+ // InternalRBAModel.g:15356:2: ruleOpIsDisplayedOn
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getOpIsDisplayedOnParserRuleCall_1_1_0_0_25_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpIsDisplayedOn();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getOpIsDisplayedOnParserRuleCall_1_1_0_0_25_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_25__1__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_26__0"
+ // InternalRBAModel.g:15366:1: rule__COperationFeatureCall__Group_1_1_0_0_26__0 : rule__COperationFeatureCall__Group_1_1_0_0_26__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_26__1 ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_26__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15370:1: ( rule__COperationFeatureCall__Group_1_1_0_0_26__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_26__1 )
+ // InternalRBAModel.g:15371:2: rule__COperationFeatureCall__Group_1_1_0_0_26__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_26__1
+ {
+ pushFollow(FOLLOW_115);
+ rule__COperationFeatureCall__Group_1_1_0_0_26__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_26__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_26__0"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_26__0__Impl"
+ // InternalRBAModel.g:15378:1: rule__COperationFeatureCall__Group_1_1_0_0_26__0__Impl : ( () ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_26__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15382:1: ( ( () ) )
+ // InternalRBAModel.g:15383:1: ( () )
+ {
+ // InternalRBAModel.g:15383:1: ( () )
+ // InternalRBAModel.g:15384:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getIsChangedDisplayOperandAction_1_1_0_0_26_0());
+ }
+ // InternalRBAModel.g:15385:2: ()
+ // InternalRBAModel.g:15385:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getIsChangedDisplayOperandAction_1_1_0_0_26_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_26__0__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_26__1"
+ // InternalRBAModel.g:15393:1: rule__COperationFeatureCall__Group_1_1_0_0_26__1 : rule__COperationFeatureCall__Group_1_1_0_0_26__1__Impl ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_26__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15397:1: ( rule__COperationFeatureCall__Group_1_1_0_0_26__1__Impl )
+ // InternalRBAModel.g:15398:2: rule__COperationFeatureCall__Group_1_1_0_0_26__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_26__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_26__1"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_26__1__Impl"
+ // InternalRBAModel.g:15404:1: rule__COperationFeatureCall__Group_1_1_0_0_26__1__Impl : ( ruleOpIsChangedDisplay ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_26__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15408:1: ( ( ruleOpIsChangedDisplay ) )
+ // InternalRBAModel.g:15409:1: ( ruleOpIsChangedDisplay )
+ {
+ // InternalRBAModel.g:15409:1: ( ruleOpIsChangedDisplay )
+ // InternalRBAModel.g:15410:2: ruleOpIsChangedDisplay
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getOpIsChangedDisplayParserRuleCall_1_1_0_0_26_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpIsChangedDisplay();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getOpIsChangedDisplayParserRuleCall_1_1_0_0_26_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_26__1__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_27__0"
+ // InternalRBAModel.g:15420:1: rule__COperationFeatureCall__Group_1_1_0_0_27__0 : rule__COperationFeatureCall__Group_1_1_0_0_27__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_27__1 ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_27__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15424:1: ( rule__COperationFeatureCall__Group_1_1_0_0_27__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_27__1 )
+ // InternalRBAModel.g:15425:2: rule__COperationFeatureCall__Group_1_1_0_0_27__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_27__1
+ {
+ pushFollow(FOLLOW_116);
+ rule__COperationFeatureCall__Group_1_1_0_0_27__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_27__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_27__0"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_27__0__Impl"
+ // InternalRBAModel.g:15432:1: rule__COperationFeatureCall__Group_1_1_0_0_27__0__Impl : ( () ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_27__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15436:1: ( ( () ) )
+ // InternalRBAModel.g:15437:1: ( () )
+ {
+ // InternalRBAModel.g:15437:1: ( () )
+ // InternalRBAModel.g:15438:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getIsTranslatedViewToOperandAction_1_1_0_0_27_0());
+ }
+ // InternalRBAModel.g:15439:2: ()
+ // InternalRBAModel.g:15439:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getIsTranslatedViewToOperandAction_1_1_0_0_27_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_27__0__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_27__1"
+ // InternalRBAModel.g:15447:1: rule__COperationFeatureCall__Group_1_1_0_0_27__1 : rule__COperationFeatureCall__Group_1_1_0_0_27__1__Impl ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_27__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15451:1: ( rule__COperationFeatureCall__Group_1_1_0_0_27__1__Impl )
+ // InternalRBAModel.g:15452:2: rule__COperationFeatureCall__Group_1_1_0_0_27__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_27__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_27__1"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_27__1__Impl"
+ // InternalRBAModel.g:15458:1: rule__COperationFeatureCall__Group_1_1_0_0_27__1__Impl : ( ruleOpIsTranslatedViewTo ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_27__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15462:1: ( ( ruleOpIsTranslatedViewTo ) )
+ // InternalRBAModel.g:15463:1: ( ruleOpIsTranslatedViewTo )
+ {
+ // InternalRBAModel.g:15463:1: ( ruleOpIsTranslatedViewTo )
+ // InternalRBAModel.g:15464:2: ruleOpIsTranslatedViewTo
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getOpIsTranslatedViewToParserRuleCall_1_1_0_0_27_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpIsTranslatedViewTo();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getOpIsTranslatedViewToParserRuleCall_1_1_0_0_27_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_27__1__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_28__0"
+ // InternalRBAModel.g:15474:1: rule__COperationFeatureCall__Group_1_1_0_0_28__0 : rule__COperationFeatureCall__Group_1_1_0_0_28__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_28__1 ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_28__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15478:1: ( rule__COperationFeatureCall__Group_1_1_0_0_28__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_28__1 )
+ // InternalRBAModel.g:15479:2: rule__COperationFeatureCall__Group_1_1_0_0_28__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_28__1
+ {
+ pushFollow(FOLLOW_117);
+ rule__COperationFeatureCall__Group_1_1_0_0_28__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_28__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_28__0"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_28__0__Impl"
+ // InternalRBAModel.g:15486:1: rule__COperationFeatureCall__Group_1_1_0_0_28__0__Impl : ( () ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_28__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15490:1: ( ( () ) )
+ // InternalRBAModel.g:15491:1: ( () )
+ {
+ // InternalRBAModel.g:15491:1: ( () )
+ // InternalRBAModel.g:15492:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getIsOutputtedOnOperandAction_1_1_0_0_28_0());
+ }
+ // InternalRBAModel.g:15493:2: ()
+ // InternalRBAModel.g:15493:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getIsOutputtedOnOperandAction_1_1_0_0_28_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_28__0__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_28__1"
+ // InternalRBAModel.g:15501:1: rule__COperationFeatureCall__Group_1_1_0_0_28__1 : rule__COperationFeatureCall__Group_1_1_0_0_28__1__Impl ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_28__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15505:1: ( rule__COperationFeatureCall__Group_1_1_0_0_28__1__Impl )
+ // InternalRBAModel.g:15506:2: rule__COperationFeatureCall__Group_1_1_0_0_28__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_28__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_28__1"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_28__1__Impl"
+ // InternalRBAModel.g:15512:1: rule__COperationFeatureCall__Group_1_1_0_0_28__1__Impl : ( ruleOpIsOutputtedOn ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_28__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15516:1: ( ( ruleOpIsOutputtedOn ) )
+ // InternalRBAModel.g:15517:1: ( ruleOpIsOutputtedOn )
+ {
+ // InternalRBAModel.g:15517:1: ( ruleOpIsOutputtedOn )
+ // InternalRBAModel.g:15518:2: ruleOpIsOutputtedOn
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getOpIsOutputtedOnParserRuleCall_1_1_0_0_28_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpIsOutputtedOn();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getOpIsOutputtedOnParserRuleCall_1_1_0_0_28_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_28__1__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_29__0"
+ // InternalRBAModel.g:15528:1: rule__COperationFeatureCall__Group_1_1_0_0_29__0 : rule__COperationFeatureCall__Group_1_1_0_0_29__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_29__1 ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_29__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15532:1: ( rule__COperationFeatureCall__Group_1_1_0_0_29__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_29__1 )
+ // InternalRBAModel.g:15533:2: rule__COperationFeatureCall__Group_1_1_0_0_29__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_29__1
+ {
+ pushFollow(FOLLOW_118);
+ rule__COperationFeatureCall__Group_1_1_0_0_29__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_29__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_29__0"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_29__0__Impl"
+ // InternalRBAModel.g:15540:1: rule__COperationFeatureCall__Group_1_1_0_0_29__0__Impl : ( () ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_29__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15544:1: ( ( () ) )
+ // InternalRBAModel.g:15545:1: ( () )
+ {
+ // InternalRBAModel.g:15545:1: ( () )
+ // InternalRBAModel.g:15546:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getIsChangedOutputOperandAction_1_1_0_0_29_0());
+ }
+ // InternalRBAModel.g:15547:2: ()
+ // InternalRBAModel.g:15547:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getIsChangedOutputOperandAction_1_1_0_0_29_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_29__0__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_29__1"
+ // InternalRBAModel.g:15555:1: rule__COperationFeatureCall__Group_1_1_0_0_29__1 : rule__COperationFeatureCall__Group_1_1_0_0_29__1__Impl ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_29__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15559:1: ( rule__COperationFeatureCall__Group_1_1_0_0_29__1__Impl )
+ // InternalRBAModel.g:15560:2: rule__COperationFeatureCall__Group_1_1_0_0_29__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_29__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_29__1"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_29__1__Impl"
+ // InternalRBAModel.g:15566:1: rule__COperationFeatureCall__Group_1_1_0_0_29__1__Impl : ( ruleOpIsChangedOutput ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_29__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15570:1: ( ( ruleOpIsChangedOutput ) )
+ // InternalRBAModel.g:15571:1: ( ruleOpIsChangedOutput )
+ {
+ // InternalRBAModel.g:15571:1: ( ruleOpIsChangedOutput )
+ // InternalRBAModel.g:15572:2: ruleOpIsChangedOutput
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getOpIsChangedOutputParserRuleCall_1_1_0_0_29_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpIsChangedOutput();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getOpIsChangedOutputParserRuleCall_1_1_0_0_29_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_29__1__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_30__0"
+ // InternalRBAModel.g:15582:1: rule__COperationFeatureCall__Group_1_1_0_0_30__0 : rule__COperationFeatureCall__Group_1_1_0_0_30__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_30__1 ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_30__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15586:1: ( rule__COperationFeatureCall__Group_1_1_0_0_30__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_30__1 )
+ // InternalRBAModel.g:15587:2: rule__COperationFeatureCall__Group_1_1_0_0_30__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_30__1
+ {
+ pushFollow(FOLLOW_119);
+ rule__COperationFeatureCall__Group_1_1_0_0_30__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_30__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_30__0"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_30__0__Impl"
+ // InternalRBAModel.g:15594:1: rule__COperationFeatureCall__Group_1_1_0_0_30__0__Impl : ( () ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_30__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15598:1: ( ( () ) )
+ // InternalRBAModel.g:15599:1: ( () )
+ {
+ // InternalRBAModel.g:15599:1: ( () )
+ // InternalRBAModel.g:15600:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getIsTranslatedSoundToOperandAction_1_1_0_0_30_0());
+ }
+ // InternalRBAModel.g:15601:2: ()
+ // InternalRBAModel.g:15601:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getIsTranslatedSoundToOperandAction_1_1_0_0_30_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_30__0__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_30__1"
+ // InternalRBAModel.g:15609:1: rule__COperationFeatureCall__Group_1_1_0_0_30__1 : rule__COperationFeatureCall__Group_1_1_0_0_30__1__Impl ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_30__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15613:1: ( rule__COperationFeatureCall__Group_1_1_0_0_30__1__Impl )
+ // InternalRBAModel.g:15614:2: rule__COperationFeatureCall__Group_1_1_0_0_30__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_30__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_30__1"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_30__1__Impl"
+ // InternalRBAModel.g:15620:1: rule__COperationFeatureCall__Group_1_1_0_0_30__1__Impl : ( ruleOpIsTranslatedSoundTo ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_30__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15624:1: ( ( ruleOpIsTranslatedSoundTo ) )
+ // InternalRBAModel.g:15625:1: ( ruleOpIsTranslatedSoundTo )
+ {
+ // InternalRBAModel.g:15625:1: ( ruleOpIsTranslatedSoundTo )
+ // InternalRBAModel.g:15626:2: ruleOpIsTranslatedSoundTo
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getOpIsTranslatedSoundToParserRuleCall_1_1_0_0_30_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpIsTranslatedSoundTo();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getOpIsTranslatedSoundToParserRuleCall_1_1_0_0_30_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_30__1__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_31__0"
+ // InternalRBAModel.g:15636:1: rule__COperationFeatureCall__Group_1_1_0_0_31__0 : rule__COperationFeatureCall__Group_1_1_0_0_31__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_31__1 ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_31__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15640:1: ( rule__COperationFeatureCall__Group_1_1_0_0_31__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_31__1 )
+ // InternalRBAModel.g:15641:2: rule__COperationFeatureCall__Group_1_1_0_0_31__0__Impl rule__COperationFeatureCall__Group_1_1_0_0_31__1
+ {
+ pushFollow(FOLLOW_120);
+ rule__COperationFeatureCall__Group_1_1_0_0_31__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_31__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_31__0"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_31__0__Impl"
+ // InternalRBAModel.g:15648:1: rule__COperationFeatureCall__Group_1_1_0_0_31__0__Impl : ( () ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_31__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15652:1: ( ( () ) )
+ // InternalRBAModel.g:15653:1: ( () )
+ {
+ // InternalRBAModel.g:15653:1: ( () )
+ // InternalRBAModel.g:15654:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getIsAttenuatedOperandAction_1_1_0_0_31_0());
+ }
+ // InternalRBAModel.g:15655:2: ()
+ // InternalRBAModel.g:15655:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getIsAttenuatedOperandAction_1_1_0_0_31_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_31__0__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_31__1"
+ // InternalRBAModel.g:15663:1: rule__COperationFeatureCall__Group_1_1_0_0_31__1 : rule__COperationFeatureCall__Group_1_1_0_0_31__1__Impl ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_31__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15667:1: ( rule__COperationFeatureCall__Group_1_1_0_0_31__1__Impl )
+ // InternalRBAModel.g:15668:2: rule__COperationFeatureCall__Group_1_1_0_0_31__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_0_31__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_31__1"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_0_31__1__Impl"
+ // InternalRBAModel.g:15674:1: rule__COperationFeatureCall__Group_1_1_0_0_31__1__Impl : ( ruleOpIsAttenuated ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_0_31__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15678:1: ( ( ruleOpIsAttenuated ) )
+ // InternalRBAModel.g:15679:1: ( ruleOpIsAttenuated )
+ {
+ // InternalRBAModel.g:15679:1: ( ruleOpIsAttenuated )
+ // InternalRBAModel.g:15680:2: ruleOpIsAttenuated
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getOpIsAttenuatedParserRuleCall_1_1_0_0_31_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpIsAttenuated();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getOpIsAttenuatedParserRuleCall_1_1_0_0_31_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_0_31__1__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_1__0"
+ // InternalRBAModel.g:15690:1: rule__COperationFeatureCall__Group_1_1_0_1__0 : rule__COperationFeatureCall__Group_1_1_0_1__0__Impl ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15694:1: ( rule__COperationFeatureCall__Group_1_1_0_1__0__Impl )
+ // InternalRBAModel.g:15695:2: rule__COperationFeatureCall__Group_1_1_0_1__0__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_1__0"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_1__0__Impl"
+ // InternalRBAModel.g:15701:1: rule__COperationFeatureCall__Group_1_1_0_1__0__Impl : ( ( rule__COperationFeatureCall__Group_1_1_0_1_0__0 ) ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15705:1: ( ( ( rule__COperationFeatureCall__Group_1_1_0_1_0__0 ) ) )
+ // InternalRBAModel.g:15706:1: ( ( rule__COperationFeatureCall__Group_1_1_0_1_0__0 ) )
+ {
+ // InternalRBAModel.g:15706:1: ( ( rule__COperationFeatureCall__Group_1_1_0_1_0__0 ) )
+ // InternalRBAModel.g:15707:2: ( rule__COperationFeatureCall__Group_1_1_0_1_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_1_0());
+ }
+ // InternalRBAModel.g:15708:2: ( rule__COperationFeatureCall__Group_1_1_0_1_0__0 )
+ // InternalRBAModel.g:15708:3: rule__COperationFeatureCall__Group_1_1_0_1_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_1_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_1__0__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_1_0__0"
+ // InternalRBAModel.g:15717:1: rule__COperationFeatureCall__Group_1_1_0_1_0__0 : rule__COperationFeatureCall__Group_1_1_0_1_0__0__Impl rule__COperationFeatureCall__Group_1_1_0_1_0__1 ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_1_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15721:1: ( rule__COperationFeatureCall__Group_1_1_0_1_0__0__Impl rule__COperationFeatureCall__Group_1_1_0_1_0__1 )
+ // InternalRBAModel.g:15722:2: rule__COperationFeatureCall__Group_1_1_0_1_0__0__Impl rule__COperationFeatureCall__Group_1_1_0_1_0__1
+ {
+ pushFollow(FOLLOW_121);
+ rule__COperationFeatureCall__Group_1_1_0_1_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_1_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_1_0__0"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_1_0__0__Impl"
+ // InternalRBAModel.g:15729:1: rule__COperationFeatureCall__Group_1_1_0_1_0__0__Impl : ( '(' ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_1_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15733:1: ( ( '(' ) )
+ // InternalRBAModel.g:15734:1: ( '(' )
+ {
+ // InternalRBAModel.g:15734:1: ( '(' )
+ // InternalRBAModel.g:15735:2: '('
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getLeftParenthesisKeyword_1_1_0_1_0_0());
+ }
+ match(input,107,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getLeftParenthesisKeyword_1_1_0_1_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_1_0__0__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_1_0__1"
+ // InternalRBAModel.g:15744:1: rule__COperationFeatureCall__Group_1_1_0_1_0__1 : rule__COperationFeatureCall__Group_1_1_0_1_0__1__Impl rule__COperationFeatureCall__Group_1_1_0_1_0__2 ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_1_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15748:1: ( rule__COperationFeatureCall__Group_1_1_0_1_0__1__Impl rule__COperationFeatureCall__Group_1_1_0_1_0__2 )
+ // InternalRBAModel.g:15749:2: rule__COperationFeatureCall__Group_1_1_0_1_0__1__Impl rule__COperationFeatureCall__Group_1_1_0_1_0__2
+ {
+ pushFollow(FOLLOW_121);
+ rule__COperationFeatureCall__Group_1_1_0_1_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_1_0__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_1_0__1"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_1_0__1__Impl"
+ // InternalRBAModel.g:15756:1: rule__COperationFeatureCall__Group_1_1_0_1_0__1__Impl : ( ( rule__COperationFeatureCall__OperandAssignment_1_1_0_1_0_1 )? ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_1_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15760:1: ( ( ( rule__COperationFeatureCall__OperandAssignment_1_1_0_1_0_1 )? ) )
+ // InternalRBAModel.g:15761:1: ( ( rule__COperationFeatureCall__OperandAssignment_1_1_0_1_0_1 )? )
+ {
+ // InternalRBAModel.g:15761:1: ( ( rule__COperationFeatureCall__OperandAssignment_1_1_0_1_0_1 )? )
+ // InternalRBAModel.g:15762:2: ( rule__COperationFeatureCall__OperandAssignment_1_1_0_1_0_1 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getOperandAssignment_1_1_0_1_0_1());
+ }
+ // InternalRBAModel.g:15763:2: ( rule__COperationFeatureCall__OperandAssignment_1_1_0_1_0_1 )?
+ int alt66=2;
+ int LA66_0 = input.LA(1);
+
+ if ( ((LA66_0>=RULE_ID && LA66_0<=RULE_INT)||LA66_0==30||LA66_0==76||LA66_0==101||LA66_0==107||(LA66_0>=140 && LA66_0<=148)||(LA66_0>=151 && LA66_0<=152)||LA66_0==166) ) {
+ alt66=1;
+ }
+ switch (alt66) {
+ case 1 :
+ // InternalRBAModel.g:15763:3: rule__COperationFeatureCall__OperandAssignment_1_1_0_1_0_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__OperandAssignment_1_1_0_1_0_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getOperandAssignment_1_1_0_1_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_1_0__1__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_1_0__2"
+ // InternalRBAModel.g:15771:1: rule__COperationFeatureCall__Group_1_1_0_1_0__2 : rule__COperationFeatureCall__Group_1_1_0_1_0__2__Impl ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_1_0__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15775:1: ( rule__COperationFeatureCall__Group_1_1_0_1_0__2__Impl )
+ // InternalRBAModel.g:15776:2: rule__COperationFeatureCall__Group_1_1_0_1_0__2__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_0_1_0__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_1_0__2"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_0_1_0__2__Impl"
+ // InternalRBAModel.g:15782:1: rule__COperationFeatureCall__Group_1_1_0_1_0__2__Impl : ( ')' ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_0_1_0__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15786:1: ( ( ')' ) )
+ // InternalRBAModel.g:15787:1: ( ')' )
+ {
+ // InternalRBAModel.g:15787:1: ( ')' )
+ // InternalRBAModel.g:15788:2: ')'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getRightParenthesisKeyword_1_1_0_1_0_2());
+ }
+ match(input,108,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getRightParenthesisKeyword_1_1_0_1_0_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_0_1_0__2__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_1__0"
+ // InternalRBAModel.g:15798:1: rule__COperationFeatureCall__Group_1_1_1__0 : rule__COperationFeatureCall__Group_1_1_1__0__Impl rule__COperationFeatureCall__Group_1_1_1__1 ;
+ public final void rule__COperationFeatureCall__Group_1_1_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15802:1: ( rule__COperationFeatureCall__Group_1_1_1__0__Impl rule__COperationFeatureCall__Group_1_1_1__1 )
+ // InternalRBAModel.g:15803:2: rule__COperationFeatureCall__Group_1_1_1__0__Impl rule__COperationFeatureCall__Group_1_1_1__1
+ {
+ pushFollow(FOLLOW_27);
+ rule__COperationFeatureCall__Group_1_1_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_1__0"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_1__0__Impl"
+ // InternalRBAModel.g:15810:1: rule__COperationFeatureCall__Group_1_1_1__0__Impl : ( ( rule__COperationFeatureCall__Group_1_1_1_0__0 ) ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15814:1: ( ( ( rule__COperationFeatureCall__Group_1_1_1_0__0 ) ) )
+ // InternalRBAModel.g:15815:1: ( ( rule__COperationFeatureCall__Group_1_1_1_0__0 ) )
+ {
+ // InternalRBAModel.g:15815:1: ( ( rule__COperationFeatureCall__Group_1_1_1_0__0 ) )
+ // InternalRBAModel.g:15816:2: ( rule__COperationFeatureCall__Group_1_1_1_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_1_0());
+ }
+ // InternalRBAModel.g:15817:2: ( rule__COperationFeatureCall__Group_1_1_1_0__0 )
+ // InternalRBAModel.g:15817:3: rule__COperationFeatureCall__Group_1_1_1_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_1_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_1__0__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_1__1"
+ // InternalRBAModel.g:15825:1: rule__COperationFeatureCall__Group_1_1_1__1 : rule__COperationFeatureCall__Group_1_1_1__1__Impl ;
+ public final void rule__COperationFeatureCall__Group_1_1_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15829:1: ( rule__COperationFeatureCall__Group_1_1_1__1__Impl )
+ // InternalRBAModel.g:15830:2: rule__COperationFeatureCall__Group_1_1_1__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_1__1"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_1__1__Impl"
+ // InternalRBAModel.g:15836:1: rule__COperationFeatureCall__Group_1_1_1__1__Impl : ( ( rule__COperationFeatureCall__Group_1_1_1_1__0 )? ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15840:1: ( ( ( rule__COperationFeatureCall__Group_1_1_1_1__0 )? ) )
+ // InternalRBAModel.g:15841:1: ( ( rule__COperationFeatureCall__Group_1_1_1_1__0 )? )
+ {
+ // InternalRBAModel.g:15841:1: ( ( rule__COperationFeatureCall__Group_1_1_1_1__0 )? )
+ // InternalRBAModel.g:15842:2: ( rule__COperationFeatureCall__Group_1_1_1_1__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_1_1());
+ }
+ // InternalRBAModel.g:15843:2: ( rule__COperationFeatureCall__Group_1_1_1_1__0 )?
+ int alt67=2;
+ int LA67_0 = input.LA(1);
+
+ if ( (LA67_0==107) ) {
+ int LA67_1 = input.LA(2);
+
+ if ( (LA67_1==RULE_STRING||LA67_1==108) ) {
+ alt67=1;
+ }
+ }
+ switch (alt67) {
+ case 1 :
+ // InternalRBAModel.g:15843:3: rule__COperationFeatureCall__Group_1_1_1_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_1_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_1__1__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_1_0__0"
+ // InternalRBAModel.g:15852:1: rule__COperationFeatureCall__Group_1_1_1_0__0 : rule__COperationFeatureCall__Group_1_1_1_0__0__Impl rule__COperationFeatureCall__Group_1_1_1_0__1 ;
+ public final void rule__COperationFeatureCall__Group_1_1_1_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15856:1: ( rule__COperationFeatureCall__Group_1_1_1_0__0__Impl rule__COperationFeatureCall__Group_1_1_1_0__1 )
+ // InternalRBAModel.g:15857:2: rule__COperationFeatureCall__Group_1_1_1_0__0__Impl rule__COperationFeatureCall__Group_1_1_1_0__1
+ {
+ pushFollow(FOLLOW_122);
+ rule__COperationFeatureCall__Group_1_1_1_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_1_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_1_0__0"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_1_0__0__Impl"
+ // InternalRBAModel.g:15864:1: rule__COperationFeatureCall__Group_1_1_1_0__0__Impl : ( () ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_1_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15868:1: ( ( () ) )
+ // InternalRBAModel.g:15869:1: ( () )
+ {
+ // InternalRBAModel.g:15869:1: ( () )
+ // InternalRBAModel.g:15870:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getIsTypeOfOperandAction_1_1_1_0_0());
+ }
+ // InternalRBAModel.g:15871:2: ()
+ // InternalRBAModel.g:15871:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getIsTypeOfOperandAction_1_1_1_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_1_0__0__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_1_0__1"
+ // InternalRBAModel.g:15879:1: rule__COperationFeatureCall__Group_1_1_1_0__1 : rule__COperationFeatureCall__Group_1_1_1_0__1__Impl ;
+ public final void rule__COperationFeatureCall__Group_1_1_1_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15883:1: ( rule__COperationFeatureCall__Group_1_1_1_0__1__Impl )
+ // InternalRBAModel.g:15884:2: rule__COperationFeatureCall__Group_1_1_1_0__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_1_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_1_0__1"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_1_0__1__Impl"
+ // InternalRBAModel.g:15890:1: rule__COperationFeatureCall__Group_1_1_1_0__1__Impl : ( ruleOpIsTypeOf ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_1_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15894:1: ( ( ruleOpIsTypeOf ) )
+ // InternalRBAModel.g:15895:1: ( ruleOpIsTypeOf )
+ {
+ // InternalRBAModel.g:15895:1: ( ruleOpIsTypeOf )
+ // InternalRBAModel.g:15896:2: ruleOpIsTypeOf
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getOpIsTypeOfParserRuleCall_1_1_1_0_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpIsTypeOf();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getOpIsTypeOfParserRuleCall_1_1_1_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_1_0__1__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_1_1__0"
+ // InternalRBAModel.g:15906:1: rule__COperationFeatureCall__Group_1_1_1_1__0 : rule__COperationFeatureCall__Group_1_1_1_1__0__Impl ;
+ public final void rule__COperationFeatureCall__Group_1_1_1_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15910:1: ( rule__COperationFeatureCall__Group_1_1_1_1__0__Impl )
+ // InternalRBAModel.g:15911:2: rule__COperationFeatureCall__Group_1_1_1_1__0__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_1_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_1_1__0"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_1_1__0__Impl"
+ // InternalRBAModel.g:15917:1: rule__COperationFeatureCall__Group_1_1_1_1__0__Impl : ( ( rule__COperationFeatureCall__Group_1_1_1_1_0__0 ) ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_1_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15921:1: ( ( ( rule__COperationFeatureCall__Group_1_1_1_1_0__0 ) ) )
+ // InternalRBAModel.g:15922:1: ( ( rule__COperationFeatureCall__Group_1_1_1_1_0__0 ) )
+ {
+ // InternalRBAModel.g:15922:1: ( ( rule__COperationFeatureCall__Group_1_1_1_1_0__0 ) )
+ // InternalRBAModel.g:15923:2: ( rule__COperationFeatureCall__Group_1_1_1_1_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_1_1_0());
+ }
+ // InternalRBAModel.g:15924:2: ( rule__COperationFeatureCall__Group_1_1_1_1_0__0 )
+ // InternalRBAModel.g:15924:3: rule__COperationFeatureCall__Group_1_1_1_1_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_1_1_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getGroup_1_1_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_1_1__0__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_1_1_0__0"
+ // InternalRBAModel.g:15933:1: rule__COperationFeatureCall__Group_1_1_1_1_0__0 : rule__COperationFeatureCall__Group_1_1_1_1_0__0__Impl rule__COperationFeatureCall__Group_1_1_1_1_0__1 ;
+ public final void rule__COperationFeatureCall__Group_1_1_1_1_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15937:1: ( rule__COperationFeatureCall__Group_1_1_1_1_0__0__Impl rule__COperationFeatureCall__Group_1_1_1_1_0__1 )
+ // InternalRBAModel.g:15938:2: rule__COperationFeatureCall__Group_1_1_1_1_0__0__Impl rule__COperationFeatureCall__Group_1_1_1_1_0__1
+ {
+ pushFollow(FOLLOW_123);
+ rule__COperationFeatureCall__Group_1_1_1_1_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_1_1_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_1_1_0__0"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_1_1_0__0__Impl"
+ // InternalRBAModel.g:15945:1: rule__COperationFeatureCall__Group_1_1_1_1_0__0__Impl : ( '(' ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_1_1_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15949:1: ( ( '(' ) )
+ // InternalRBAModel.g:15950:1: ( '(' )
+ {
+ // InternalRBAModel.g:15950:1: ( '(' )
+ // InternalRBAModel.g:15951:2: '('
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getLeftParenthesisKeyword_1_1_1_1_0_0());
+ }
+ match(input,107,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getLeftParenthesisKeyword_1_1_1_1_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_1_1_0__0__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_1_1_0__1"
+ // InternalRBAModel.g:15960:1: rule__COperationFeatureCall__Group_1_1_1_1_0__1 : rule__COperationFeatureCall__Group_1_1_1_1_0__1__Impl rule__COperationFeatureCall__Group_1_1_1_1_0__2 ;
+ public final void rule__COperationFeatureCall__Group_1_1_1_1_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15964:1: ( rule__COperationFeatureCall__Group_1_1_1_1_0__1__Impl rule__COperationFeatureCall__Group_1_1_1_1_0__2 )
+ // InternalRBAModel.g:15965:2: rule__COperationFeatureCall__Group_1_1_1_1_0__1__Impl rule__COperationFeatureCall__Group_1_1_1_1_0__2
+ {
+ pushFollow(FOLLOW_123);
+ rule__COperationFeatureCall__Group_1_1_1_1_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_1_1_0__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_1_1_0__1"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_1_1_0__1__Impl"
+ // InternalRBAModel.g:15972:1: rule__COperationFeatureCall__Group_1_1_1_1_0__1__Impl : ( ( rule__COperationFeatureCall__TagNameAssignment_1_1_1_1_0_1 )? ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_1_1_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15976:1: ( ( ( rule__COperationFeatureCall__TagNameAssignment_1_1_1_1_0_1 )? ) )
+ // InternalRBAModel.g:15977:1: ( ( rule__COperationFeatureCall__TagNameAssignment_1_1_1_1_0_1 )? )
+ {
+ // InternalRBAModel.g:15977:1: ( ( rule__COperationFeatureCall__TagNameAssignment_1_1_1_1_0_1 )? )
+ // InternalRBAModel.g:15978:2: ( rule__COperationFeatureCall__TagNameAssignment_1_1_1_1_0_1 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getTagNameAssignment_1_1_1_1_0_1());
+ }
+ // InternalRBAModel.g:15979:2: ( rule__COperationFeatureCall__TagNameAssignment_1_1_1_1_0_1 )?
+ int alt68=2;
+ int LA68_0 = input.LA(1);
+
+ if ( (LA68_0==RULE_STRING) ) {
+ alt68=1;
+ }
+ switch (alt68) {
+ case 1 :
+ // InternalRBAModel.g:15979:3: rule__COperationFeatureCall__TagNameAssignment_1_1_1_1_0_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__TagNameAssignment_1_1_1_1_0_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getTagNameAssignment_1_1_1_1_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_1_1_0__1__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_1_1_0__2"
+ // InternalRBAModel.g:15987:1: rule__COperationFeatureCall__Group_1_1_1_1_0__2 : rule__COperationFeatureCall__Group_1_1_1_1_0__2__Impl ;
+ public final void rule__COperationFeatureCall__Group_1_1_1_1_0__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:15991:1: ( rule__COperationFeatureCall__Group_1_1_1_1_0__2__Impl )
+ // InternalRBAModel.g:15992:2: rule__COperationFeatureCall__Group_1_1_1_1_0__2__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_1_1_0__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_1_1_0__2"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_1_1_0__2__Impl"
+ // InternalRBAModel.g:15998:1: rule__COperationFeatureCall__Group_1_1_1_1_0__2__Impl : ( ')' ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_1_1_0__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16002:1: ( ( ')' ) )
+ // InternalRBAModel.g:16003:1: ( ')' )
+ {
+ // InternalRBAModel.g:16003:1: ( ')' )
+ // InternalRBAModel.g:16004:2: ')'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getRightParenthesisKeyword_1_1_1_1_0_2());
+ }
+ match(input,108,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getRightParenthesisKeyword_1_1_1_1_0_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_1_1_0__2__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_2_0__0"
+ // InternalRBAModel.g:16014:1: rule__COperationFeatureCall__Group_1_1_2_0__0 : rule__COperationFeatureCall__Group_1_1_2_0__0__Impl rule__COperationFeatureCall__Group_1_1_2_0__1 ;
+ public final void rule__COperationFeatureCall__Group_1_1_2_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16018:1: ( rule__COperationFeatureCall__Group_1_1_2_0__0__Impl rule__COperationFeatureCall__Group_1_1_2_0__1 )
+ // InternalRBAModel.g:16019:2: rule__COperationFeatureCall__Group_1_1_2_0__0__Impl rule__COperationFeatureCall__Group_1_1_2_0__1
+ {
+ pushFollow(FOLLOW_124);
+ rule__COperationFeatureCall__Group_1_1_2_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_2_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_2_0__0"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_2_0__0__Impl"
+ // InternalRBAModel.g:16026:1: rule__COperationFeatureCall__Group_1_1_2_0__0__Impl : ( () ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_2_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16030:1: ( ( () ) )
+ // InternalRBAModel.g:16031:1: ( () )
+ {
+ // InternalRBAModel.g:16031:1: ( () )
+ // InternalRBAModel.g:16032:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getMaxOperatorOperandAction_1_1_2_0_0());
+ }
+ // InternalRBAModel.g:16033:2: ()
+ // InternalRBAModel.g:16033:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getMaxOperatorOperandAction_1_1_2_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_2_0__0__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_2_0__1"
+ // InternalRBAModel.g:16041:1: rule__COperationFeatureCall__Group_1_1_2_0__1 : rule__COperationFeatureCall__Group_1_1_2_0__1__Impl rule__COperationFeatureCall__Group_1_1_2_0__2 ;
+ public final void rule__COperationFeatureCall__Group_1_1_2_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16045:1: ( rule__COperationFeatureCall__Group_1_1_2_0__1__Impl rule__COperationFeatureCall__Group_1_1_2_0__2 )
+ // InternalRBAModel.g:16046:2: rule__COperationFeatureCall__Group_1_1_2_0__1__Impl rule__COperationFeatureCall__Group_1_1_2_0__2
+ {
+ pushFollow(FOLLOW_11);
+ rule__COperationFeatureCall__Group_1_1_2_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_2_0__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_2_0__1"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_2_0__1__Impl"
+ // InternalRBAModel.g:16053:1: rule__COperationFeatureCall__Group_1_1_2_0__1__Impl : ( ruleOpMaxOperator ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_2_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16057:1: ( ( ruleOpMaxOperator ) )
+ // InternalRBAModel.g:16058:1: ( ruleOpMaxOperator )
+ {
+ // InternalRBAModel.g:16058:1: ( ruleOpMaxOperator )
+ // InternalRBAModel.g:16059:2: ruleOpMaxOperator
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getOpMaxOperatorParserRuleCall_1_1_2_0_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpMaxOperator();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getOpMaxOperatorParserRuleCall_1_1_2_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_2_0__1__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_2_0__2"
+ // InternalRBAModel.g:16068:1: rule__COperationFeatureCall__Group_1_1_2_0__2 : rule__COperationFeatureCall__Group_1_1_2_0__2__Impl ;
+ public final void rule__COperationFeatureCall__Group_1_1_2_0__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16072:1: ( rule__COperationFeatureCall__Group_1_1_2_0__2__Impl )
+ // InternalRBAModel.g:16073:2: rule__COperationFeatureCall__Group_1_1_2_0__2__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_2_0__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_2_0__2"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_2_0__2__Impl"
+ // InternalRBAModel.g:16079:1: rule__COperationFeatureCall__Group_1_1_2_0__2__Impl : ( ( rule__COperationFeatureCall__LambdaAssignment_1_1_2_0_2 ) ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_2_0__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16083:1: ( ( ( rule__COperationFeatureCall__LambdaAssignment_1_1_2_0_2 ) ) )
+ // InternalRBAModel.g:16084:1: ( ( rule__COperationFeatureCall__LambdaAssignment_1_1_2_0_2 ) )
+ {
+ // InternalRBAModel.g:16084:1: ( ( rule__COperationFeatureCall__LambdaAssignment_1_1_2_0_2 ) )
+ // InternalRBAModel.g:16085:2: ( rule__COperationFeatureCall__LambdaAssignment_1_1_2_0_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getLambdaAssignment_1_1_2_0_2());
+ }
+ // InternalRBAModel.g:16086:2: ( rule__COperationFeatureCall__LambdaAssignment_1_1_2_0_2 )
+ // InternalRBAModel.g:16086:3: rule__COperationFeatureCall__LambdaAssignment_1_1_2_0_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__LambdaAssignment_1_1_2_0_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getLambdaAssignment_1_1_2_0_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_2_0__2__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_2_1__0"
+ // InternalRBAModel.g:16095:1: rule__COperationFeatureCall__Group_1_1_2_1__0 : rule__COperationFeatureCall__Group_1_1_2_1__0__Impl rule__COperationFeatureCall__Group_1_1_2_1__1 ;
+ public final void rule__COperationFeatureCall__Group_1_1_2_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16099:1: ( rule__COperationFeatureCall__Group_1_1_2_1__0__Impl rule__COperationFeatureCall__Group_1_1_2_1__1 )
+ // InternalRBAModel.g:16100:2: rule__COperationFeatureCall__Group_1_1_2_1__0__Impl rule__COperationFeatureCall__Group_1_1_2_1__1
+ {
+ pushFollow(FOLLOW_125);
+ rule__COperationFeatureCall__Group_1_1_2_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_2_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_2_1__0"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_2_1__0__Impl"
+ // InternalRBAModel.g:16107:1: rule__COperationFeatureCall__Group_1_1_2_1__0__Impl : ( () ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_2_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16111:1: ( ( () ) )
+ // InternalRBAModel.g:16112:1: ( () )
+ {
+ // InternalRBAModel.g:16112:1: ( () )
+ // InternalRBAModel.g:16113:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getMinOperatorOperandAction_1_1_2_1_0());
+ }
+ // InternalRBAModel.g:16114:2: ()
+ // InternalRBAModel.g:16114:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getMinOperatorOperandAction_1_1_2_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_2_1__0__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_2_1__1"
+ // InternalRBAModel.g:16122:1: rule__COperationFeatureCall__Group_1_1_2_1__1 : rule__COperationFeatureCall__Group_1_1_2_1__1__Impl rule__COperationFeatureCall__Group_1_1_2_1__2 ;
+ public final void rule__COperationFeatureCall__Group_1_1_2_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16126:1: ( rule__COperationFeatureCall__Group_1_1_2_1__1__Impl rule__COperationFeatureCall__Group_1_1_2_1__2 )
+ // InternalRBAModel.g:16127:2: rule__COperationFeatureCall__Group_1_1_2_1__1__Impl rule__COperationFeatureCall__Group_1_1_2_1__2
+ {
+ pushFollow(FOLLOW_11);
+ rule__COperationFeatureCall__Group_1_1_2_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_2_1__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_2_1__1"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_2_1__1__Impl"
+ // InternalRBAModel.g:16134:1: rule__COperationFeatureCall__Group_1_1_2_1__1__Impl : ( ruleOpMinOperator ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_2_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16138:1: ( ( ruleOpMinOperator ) )
+ // InternalRBAModel.g:16139:1: ( ruleOpMinOperator )
+ {
+ // InternalRBAModel.g:16139:1: ( ruleOpMinOperator )
+ // InternalRBAModel.g:16140:2: ruleOpMinOperator
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getOpMinOperatorParserRuleCall_1_1_2_1_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpMinOperator();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getOpMinOperatorParserRuleCall_1_1_2_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_2_1__1__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_2_1__2"
+ // InternalRBAModel.g:16149:1: rule__COperationFeatureCall__Group_1_1_2_1__2 : rule__COperationFeatureCall__Group_1_1_2_1__2__Impl ;
+ public final void rule__COperationFeatureCall__Group_1_1_2_1__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16153:1: ( rule__COperationFeatureCall__Group_1_1_2_1__2__Impl )
+ // InternalRBAModel.g:16154:2: rule__COperationFeatureCall__Group_1_1_2_1__2__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_2_1__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_2_1__2"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_2_1__2__Impl"
+ // InternalRBAModel.g:16160:1: rule__COperationFeatureCall__Group_1_1_2_1__2__Impl : ( ( rule__COperationFeatureCall__LambdaAssignment_1_1_2_1_2 ) ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_2_1__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16164:1: ( ( ( rule__COperationFeatureCall__LambdaAssignment_1_1_2_1_2 ) ) )
+ // InternalRBAModel.g:16165:1: ( ( rule__COperationFeatureCall__LambdaAssignment_1_1_2_1_2 ) )
+ {
+ // InternalRBAModel.g:16165:1: ( ( rule__COperationFeatureCall__LambdaAssignment_1_1_2_1_2 ) )
+ // InternalRBAModel.g:16166:2: ( rule__COperationFeatureCall__LambdaAssignment_1_1_2_1_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getLambdaAssignment_1_1_2_1_2());
+ }
+ // InternalRBAModel.g:16167:2: ( rule__COperationFeatureCall__LambdaAssignment_1_1_2_1_2 )
+ // InternalRBAModel.g:16167:3: rule__COperationFeatureCall__LambdaAssignment_1_1_2_1_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__LambdaAssignment_1_1_2_1_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getLambdaAssignment_1_1_2_1_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_2_1__2__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_2_2__0"
+ // InternalRBAModel.g:16176:1: rule__COperationFeatureCall__Group_1_1_2_2__0 : rule__COperationFeatureCall__Group_1_1_2_2__0__Impl rule__COperationFeatureCall__Group_1_1_2_2__1 ;
+ public final void rule__COperationFeatureCall__Group_1_1_2_2__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16180:1: ( rule__COperationFeatureCall__Group_1_1_2_2__0__Impl rule__COperationFeatureCall__Group_1_1_2_2__1 )
+ // InternalRBAModel.g:16181:2: rule__COperationFeatureCall__Group_1_1_2_2__0__Impl rule__COperationFeatureCall__Group_1_1_2_2__1
+ {
+ pushFollow(FOLLOW_88);
+ rule__COperationFeatureCall__Group_1_1_2_2__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_2_2__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_2_2__0"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_2_2__0__Impl"
+ // InternalRBAModel.g:16188:1: rule__COperationFeatureCall__Group_1_1_2_2__0__Impl : ( () ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_2_2__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16192:1: ( ( () ) )
+ // InternalRBAModel.g:16193:1: ( () )
+ {
+ // InternalRBAModel.g:16193:1: ( () )
+ // InternalRBAModel.g:16194:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getSelectOperatorOperandAction_1_1_2_2_0());
+ }
+ // InternalRBAModel.g:16195:2: ()
+ // InternalRBAModel.g:16195:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getSelectOperatorOperandAction_1_1_2_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_2_2__0__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_2_2__1"
+ // InternalRBAModel.g:16203:1: rule__COperationFeatureCall__Group_1_1_2_2__1 : rule__COperationFeatureCall__Group_1_1_2_2__1__Impl rule__COperationFeatureCall__Group_1_1_2_2__2 ;
+ public final void rule__COperationFeatureCall__Group_1_1_2_2__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16207:1: ( rule__COperationFeatureCall__Group_1_1_2_2__1__Impl rule__COperationFeatureCall__Group_1_1_2_2__2 )
+ // InternalRBAModel.g:16208:2: rule__COperationFeatureCall__Group_1_1_2_2__1__Impl rule__COperationFeatureCall__Group_1_1_2_2__2
+ {
+ pushFollow(FOLLOW_11);
+ rule__COperationFeatureCall__Group_1_1_2_2__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_2_2__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_2_2__1"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_2_2__1__Impl"
+ // InternalRBAModel.g:16215:1: rule__COperationFeatureCall__Group_1_1_2_2__1__Impl : ( ruleOpSelectOperator ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_2_2__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16219:1: ( ( ruleOpSelectOperator ) )
+ // InternalRBAModel.g:16220:1: ( ruleOpSelectOperator )
+ {
+ // InternalRBAModel.g:16220:1: ( ruleOpSelectOperator )
+ // InternalRBAModel.g:16221:2: ruleOpSelectOperator
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getOpSelectOperatorParserRuleCall_1_1_2_2_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOpSelectOperator();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getOpSelectOperatorParserRuleCall_1_1_2_2_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_2_2__1__Impl"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_2_2__2"
+ // InternalRBAModel.g:16230:1: rule__COperationFeatureCall__Group_1_1_2_2__2 : rule__COperationFeatureCall__Group_1_1_2_2__2__Impl ;
+ public final void rule__COperationFeatureCall__Group_1_1_2_2__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16234:1: ( rule__COperationFeatureCall__Group_1_1_2_2__2__Impl )
+ // InternalRBAModel.g:16235:2: rule__COperationFeatureCall__Group_1_1_2_2__2__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1_1_2_2__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_2_2__2"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__Group_1_1_2_2__2__Impl"
+ // InternalRBAModel.g:16241:1: rule__COperationFeatureCall__Group_1_1_2_2__2__Impl : ( ( rule__COperationFeatureCall__LambdaAssignment_1_1_2_2_2 ) ) ;
+ public final void rule__COperationFeatureCall__Group_1_1_2_2__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16245:1: ( ( ( rule__COperationFeatureCall__LambdaAssignment_1_1_2_2_2 ) ) )
+ // InternalRBAModel.g:16246:1: ( ( rule__COperationFeatureCall__LambdaAssignment_1_1_2_2_2 ) )
+ {
+ // InternalRBAModel.g:16246:1: ( ( rule__COperationFeatureCall__LambdaAssignment_1_1_2_2_2 ) )
+ // InternalRBAModel.g:16247:2: ( rule__COperationFeatureCall__LambdaAssignment_1_1_2_2_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getLambdaAssignment_1_1_2_2_2());
+ }
+ // InternalRBAModel.g:16248:2: ( rule__COperationFeatureCall__LambdaAssignment_1_1_2_2_2 )
+ // InternalRBAModel.g:16248:3: rule__COperationFeatureCall__LambdaAssignment_1_1_2_2_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__LambdaAssignment_1_1_2_2_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getLambdaAssignment_1_1_2_2_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__Group_1_1_2_2__2__Impl"
+
+
+ // $ANTLR start "rule__CPrimaryExpression__Group_11__0"
+ // InternalRBAModel.g:16257:1: rule__CPrimaryExpression__Group_11__0 : rule__CPrimaryExpression__Group_11__0__Impl rule__CPrimaryExpression__Group_11__1 ;
+ public final void rule__CPrimaryExpression__Group_11__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16261:1: ( rule__CPrimaryExpression__Group_11__0__Impl rule__CPrimaryExpression__Group_11__1 )
+ // InternalRBAModel.g:16262:2: rule__CPrimaryExpression__Group_11__0__Impl rule__CPrimaryExpression__Group_11__1
+ {
+ pushFollow(FOLLOW_33);
+ rule__CPrimaryExpression__Group_11__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__CPrimaryExpression__Group_11__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CPrimaryExpression__Group_11__0"
+
+
+ // $ANTLR start "rule__CPrimaryExpression__Group_11__0__Impl"
+ // InternalRBAModel.g:16269:1: rule__CPrimaryExpression__Group_11__0__Impl : ( '(' ) ;
+ public final void rule__CPrimaryExpression__Group_11__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16273:1: ( ( '(' ) )
+ // InternalRBAModel.g:16274:1: ( '(' )
+ {
+ // InternalRBAModel.g:16274:1: ( '(' )
+ // InternalRBAModel.g:16275:2: '('
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCPrimaryExpressionAccess().getLeftParenthesisKeyword_11_0());
+ }
+ match(input,107,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCPrimaryExpressionAccess().getLeftParenthesisKeyword_11_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CPrimaryExpression__Group_11__0__Impl"
+
+
+ // $ANTLR start "rule__CPrimaryExpression__Group_11__1"
+ // InternalRBAModel.g:16284:1: rule__CPrimaryExpression__Group_11__1 : rule__CPrimaryExpression__Group_11__1__Impl rule__CPrimaryExpression__Group_11__2 ;
+ public final void rule__CPrimaryExpression__Group_11__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16288:1: ( rule__CPrimaryExpression__Group_11__1__Impl rule__CPrimaryExpression__Group_11__2 )
+ // InternalRBAModel.g:16289:2: rule__CPrimaryExpression__Group_11__1__Impl rule__CPrimaryExpression__Group_11__2
+ {
+ pushFollow(FOLLOW_67);
+ rule__CPrimaryExpression__Group_11__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__CPrimaryExpression__Group_11__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CPrimaryExpression__Group_11__1"
+
+
+ // $ANTLR start "rule__CPrimaryExpression__Group_11__1__Impl"
+ // InternalRBAModel.g:16296:1: rule__CPrimaryExpression__Group_11__1__Impl : ( ruleCExpression ) ;
+ public final void rule__CPrimaryExpression__Group_11__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16300:1: ( ( ruleCExpression ) )
+ // InternalRBAModel.g:16301:1: ( ruleCExpression )
+ {
+ // InternalRBAModel.g:16301:1: ( ruleCExpression )
+ // InternalRBAModel.g:16302:2: ruleCExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCPrimaryExpressionAccess().getCExpressionParserRuleCall_11_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleCExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCPrimaryExpressionAccess().getCExpressionParserRuleCall_11_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CPrimaryExpression__Group_11__1__Impl"
+
+
+ // $ANTLR start "rule__CPrimaryExpression__Group_11__2"
+ // InternalRBAModel.g:16311:1: rule__CPrimaryExpression__Group_11__2 : rule__CPrimaryExpression__Group_11__2__Impl ;
+ public final void rule__CPrimaryExpression__Group_11__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16315:1: ( rule__CPrimaryExpression__Group_11__2__Impl )
+ // InternalRBAModel.g:16316:2: rule__CPrimaryExpression__Group_11__2__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__CPrimaryExpression__Group_11__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CPrimaryExpression__Group_11__2"
+
+
+ // $ANTLR start "rule__CPrimaryExpression__Group_11__2__Impl"
+ // InternalRBAModel.g:16322:1: rule__CPrimaryExpression__Group_11__2__Impl : ( ')' ) ;
+ public final void rule__CPrimaryExpression__Group_11__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16326:1: ( ( ')' ) )
+ // InternalRBAModel.g:16327:1: ( ')' )
+ {
+ // InternalRBAModel.g:16327:1: ( ')' )
+ // InternalRBAModel.g:16328:2: ')'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCPrimaryExpressionAccess().getRightParenthesisKeyword_11_2());
+ }
+ match(input,108,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCPrimaryExpressionAccess().getRightParenthesisKeyword_11_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CPrimaryExpression__Group_11__2__Impl"
+
+
+ // $ANTLR start "rule__AllInstanceOfExpression__Group__0"
+ // InternalRBAModel.g:16338:1: rule__AllInstanceOfExpression__Group__0 : rule__AllInstanceOfExpression__Group__0__Impl ;
+ public final void rule__AllInstanceOfExpression__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16342:1: ( rule__AllInstanceOfExpression__Group__0__Impl )
+ // InternalRBAModel.g:16343:2: rule__AllInstanceOfExpression__Group__0__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__AllInstanceOfExpression__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AllInstanceOfExpression__Group__0"
+
+
+ // $ANTLR start "rule__AllInstanceOfExpression__Group__0__Impl"
+ // InternalRBAModel.g:16349:1: rule__AllInstanceOfExpression__Group__0__Impl : ( ( rule__AllInstanceOfExpression__Alternatives_0 ) ) ;
+ public final void rule__AllInstanceOfExpression__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16353:1: ( ( ( rule__AllInstanceOfExpression__Alternatives_0 ) ) )
+ // InternalRBAModel.g:16354:1: ( ( rule__AllInstanceOfExpression__Alternatives_0 ) )
+ {
+ // InternalRBAModel.g:16354:1: ( ( rule__AllInstanceOfExpression__Alternatives_0 ) )
+ // InternalRBAModel.g:16355:2: ( rule__AllInstanceOfExpression__Alternatives_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAllInstanceOfExpressionAccess().getAlternatives_0());
+ }
+ // InternalRBAModel.g:16356:2: ( rule__AllInstanceOfExpression__Alternatives_0 )
+ // InternalRBAModel.g:16356:3: rule__AllInstanceOfExpression__Alternatives_0
+ {
+ pushFollow(FOLLOW_2);
+ rule__AllInstanceOfExpression__Alternatives_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAllInstanceOfExpressionAccess().getAlternatives_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AllInstanceOfExpression__Group__0__Impl"
+
+
+ // $ANTLR start "rule__AllInstanceOfExpression__Group_0_0__0"
+ // InternalRBAModel.g:16365:1: rule__AllInstanceOfExpression__Group_0_0__0 : rule__AllInstanceOfExpression__Group_0_0__0__Impl rule__AllInstanceOfExpression__Group_0_0__1 ;
+ public final void rule__AllInstanceOfExpression__Group_0_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16369:1: ( rule__AllInstanceOfExpression__Group_0_0__0__Impl rule__AllInstanceOfExpression__Group_0_0__1 )
+ // InternalRBAModel.g:16370:2: rule__AllInstanceOfExpression__Group_0_0__0__Impl rule__AllInstanceOfExpression__Group_0_0__1
+ {
+ pushFollow(FOLLOW_126);
+ rule__AllInstanceOfExpression__Group_0_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__AllInstanceOfExpression__Group_0_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AllInstanceOfExpression__Group_0_0__0"
+
+
+ // $ANTLR start "rule__AllInstanceOfExpression__Group_0_0__0__Impl"
+ // InternalRBAModel.g:16377:1: rule__AllInstanceOfExpression__Group_0_0__0__Impl : ( () ) ;
+ public final void rule__AllInstanceOfExpression__Group_0_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16381:1: ( ( () ) )
+ // InternalRBAModel.g:16382:1: ( () )
+ {
+ // InternalRBAModel.g:16382:1: ( () )
+ // InternalRBAModel.g:16383:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAllInstanceOfExpressionAccess().getAllInstanceOfAreaAction_0_0_0());
+ }
+ // InternalRBAModel.g:16384:2: ()
+ // InternalRBAModel.g:16384:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAllInstanceOfExpressionAccess().getAllInstanceOfAreaAction_0_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AllInstanceOfExpression__Group_0_0__0__Impl"
+
+
+ // $ANTLR start "rule__AllInstanceOfExpression__Group_0_0__1"
+ // InternalRBAModel.g:16392:1: rule__AllInstanceOfExpression__Group_0_0__1 : rule__AllInstanceOfExpression__Group_0_0__1__Impl ;
+ public final void rule__AllInstanceOfExpression__Group_0_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16396:1: ( rule__AllInstanceOfExpression__Group_0_0__1__Impl )
+ // InternalRBAModel.g:16397:2: rule__AllInstanceOfExpression__Group_0_0__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__AllInstanceOfExpression__Group_0_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AllInstanceOfExpression__Group_0_0__1"
+
+
+ // $ANTLR start "rule__AllInstanceOfExpression__Group_0_0__1__Impl"
+ // InternalRBAModel.g:16403:1: rule__AllInstanceOfExpression__Group_0_0__1__Impl : ( 'ALL_AREAS' ) ;
+ public final void rule__AllInstanceOfExpression__Group_0_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16407:1: ( ( 'ALL_AREAS' ) )
+ // InternalRBAModel.g:16408:1: ( 'ALL_AREAS' )
+ {
+ // InternalRBAModel.g:16408:1: ( 'ALL_AREAS' )
+ // InternalRBAModel.g:16409:2: 'ALL_AREAS'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAllInstanceOfExpressionAccess().getALL_AREASKeyword_0_0_1());
+ }
+ match(input,140,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAllInstanceOfExpressionAccess().getALL_AREASKeyword_0_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AllInstanceOfExpression__Group_0_0__1__Impl"
+
+
+ // $ANTLR start "rule__AllInstanceOfExpression__Group_0_1__0"
+ // InternalRBAModel.g:16419:1: rule__AllInstanceOfExpression__Group_0_1__0 : rule__AllInstanceOfExpression__Group_0_1__0__Impl rule__AllInstanceOfExpression__Group_0_1__1 ;
+ public final void rule__AllInstanceOfExpression__Group_0_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16423:1: ( rule__AllInstanceOfExpression__Group_0_1__0__Impl rule__AllInstanceOfExpression__Group_0_1__1 )
+ // InternalRBAModel.g:16424:2: rule__AllInstanceOfExpression__Group_0_1__0__Impl rule__AllInstanceOfExpression__Group_0_1__1
+ {
+ pushFollow(FOLLOW_127);
+ rule__AllInstanceOfExpression__Group_0_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__AllInstanceOfExpression__Group_0_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AllInstanceOfExpression__Group_0_1__0"
+
+
+ // $ANTLR start "rule__AllInstanceOfExpression__Group_0_1__0__Impl"
+ // InternalRBAModel.g:16431:1: rule__AllInstanceOfExpression__Group_0_1__0__Impl : ( () ) ;
+ public final void rule__AllInstanceOfExpression__Group_0_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16435:1: ( ( () ) )
+ // InternalRBAModel.g:16436:1: ( () )
+ {
+ // InternalRBAModel.g:16436:1: ( () )
+ // InternalRBAModel.g:16437:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAllInstanceOfExpressionAccess().getAllInstanceOfViewContentAction_0_1_0());
+ }
+ // InternalRBAModel.g:16438:2: ()
+ // InternalRBAModel.g:16438:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAllInstanceOfExpressionAccess().getAllInstanceOfViewContentAction_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AllInstanceOfExpression__Group_0_1__0__Impl"
+
+
+ // $ANTLR start "rule__AllInstanceOfExpression__Group_0_1__1"
+ // InternalRBAModel.g:16446:1: rule__AllInstanceOfExpression__Group_0_1__1 : rule__AllInstanceOfExpression__Group_0_1__1__Impl ;
+ public final void rule__AllInstanceOfExpression__Group_0_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16450:1: ( rule__AllInstanceOfExpression__Group_0_1__1__Impl )
+ // InternalRBAModel.g:16451:2: rule__AllInstanceOfExpression__Group_0_1__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__AllInstanceOfExpression__Group_0_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AllInstanceOfExpression__Group_0_1__1"
+
+
+ // $ANTLR start "rule__AllInstanceOfExpression__Group_0_1__1__Impl"
+ // InternalRBAModel.g:16457:1: rule__AllInstanceOfExpression__Group_0_1__1__Impl : ( 'ALL_VIEWCONTENTS' ) ;
+ public final void rule__AllInstanceOfExpression__Group_0_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16461:1: ( ( 'ALL_VIEWCONTENTS' ) )
+ // InternalRBAModel.g:16462:1: ( 'ALL_VIEWCONTENTS' )
+ {
+ // InternalRBAModel.g:16462:1: ( 'ALL_VIEWCONTENTS' )
+ // InternalRBAModel.g:16463:2: 'ALL_VIEWCONTENTS'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAllInstanceOfExpressionAccess().getALL_VIEWCONTENTSKeyword_0_1_1());
+ }
+ match(input,141,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAllInstanceOfExpressionAccess().getALL_VIEWCONTENTSKeyword_0_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AllInstanceOfExpression__Group_0_1__1__Impl"
+
+
+ // $ANTLR start "rule__AllInstanceOfExpression__Group_0_2__0"
+ // InternalRBAModel.g:16473:1: rule__AllInstanceOfExpression__Group_0_2__0 : rule__AllInstanceOfExpression__Group_0_2__0__Impl rule__AllInstanceOfExpression__Group_0_2__1 ;
+ public final void rule__AllInstanceOfExpression__Group_0_2__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16477:1: ( rule__AllInstanceOfExpression__Group_0_2__0__Impl rule__AllInstanceOfExpression__Group_0_2__1 )
+ // InternalRBAModel.g:16478:2: rule__AllInstanceOfExpression__Group_0_2__0__Impl rule__AllInstanceOfExpression__Group_0_2__1
+ {
+ pushFollow(FOLLOW_128);
+ rule__AllInstanceOfExpression__Group_0_2__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__AllInstanceOfExpression__Group_0_2__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AllInstanceOfExpression__Group_0_2__0"
+
+
+ // $ANTLR start "rule__AllInstanceOfExpression__Group_0_2__0__Impl"
+ // InternalRBAModel.g:16485:1: rule__AllInstanceOfExpression__Group_0_2__0__Impl : ( () ) ;
+ public final void rule__AllInstanceOfExpression__Group_0_2__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16489:1: ( ( () ) )
+ // InternalRBAModel.g:16490:1: ( () )
+ {
+ // InternalRBAModel.g:16490:1: ( () )
+ // InternalRBAModel.g:16491:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAllInstanceOfExpressionAccess().getAllInstanceOfZoneAction_0_2_0());
+ }
+ // InternalRBAModel.g:16492:2: ()
+ // InternalRBAModel.g:16492:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAllInstanceOfExpressionAccess().getAllInstanceOfZoneAction_0_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AllInstanceOfExpression__Group_0_2__0__Impl"
+
+
+ // $ANTLR start "rule__AllInstanceOfExpression__Group_0_2__1"
+ // InternalRBAModel.g:16500:1: rule__AllInstanceOfExpression__Group_0_2__1 : rule__AllInstanceOfExpression__Group_0_2__1__Impl ;
+ public final void rule__AllInstanceOfExpression__Group_0_2__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16504:1: ( rule__AllInstanceOfExpression__Group_0_2__1__Impl )
+ // InternalRBAModel.g:16505:2: rule__AllInstanceOfExpression__Group_0_2__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__AllInstanceOfExpression__Group_0_2__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AllInstanceOfExpression__Group_0_2__1"
+
+
+ // $ANTLR start "rule__AllInstanceOfExpression__Group_0_2__1__Impl"
+ // InternalRBAModel.g:16511:1: rule__AllInstanceOfExpression__Group_0_2__1__Impl : ( 'ALL_ZONES' ) ;
+ public final void rule__AllInstanceOfExpression__Group_0_2__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16515:1: ( ( 'ALL_ZONES' ) )
+ // InternalRBAModel.g:16516:1: ( 'ALL_ZONES' )
+ {
+ // InternalRBAModel.g:16516:1: ( 'ALL_ZONES' )
+ // InternalRBAModel.g:16517:2: 'ALL_ZONES'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAllInstanceOfExpressionAccess().getALL_ZONESKeyword_0_2_1());
+ }
+ match(input,142,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAllInstanceOfExpressionAccess().getALL_ZONESKeyword_0_2_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AllInstanceOfExpression__Group_0_2__1__Impl"
+
+
+ // $ANTLR start "rule__AllInstanceOfExpression__Group_0_3__0"
+ // InternalRBAModel.g:16527:1: rule__AllInstanceOfExpression__Group_0_3__0 : rule__AllInstanceOfExpression__Group_0_3__0__Impl rule__AllInstanceOfExpression__Group_0_3__1 ;
+ public final void rule__AllInstanceOfExpression__Group_0_3__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16531:1: ( rule__AllInstanceOfExpression__Group_0_3__0__Impl rule__AllInstanceOfExpression__Group_0_3__1 )
+ // InternalRBAModel.g:16532:2: rule__AllInstanceOfExpression__Group_0_3__0__Impl rule__AllInstanceOfExpression__Group_0_3__1
+ {
+ pushFollow(FOLLOW_129);
+ rule__AllInstanceOfExpression__Group_0_3__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__AllInstanceOfExpression__Group_0_3__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AllInstanceOfExpression__Group_0_3__0"
+
+
+ // $ANTLR start "rule__AllInstanceOfExpression__Group_0_3__0__Impl"
+ // InternalRBAModel.g:16539:1: rule__AllInstanceOfExpression__Group_0_3__0__Impl : ( () ) ;
+ public final void rule__AllInstanceOfExpression__Group_0_3__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16543:1: ( ( () ) )
+ // InternalRBAModel.g:16544:1: ( () )
+ {
+ // InternalRBAModel.g:16544:1: ( () )
+ // InternalRBAModel.g:16545:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAllInstanceOfExpressionAccess().getAllInstanceOfSoundContentAction_0_3_0());
+ }
+ // InternalRBAModel.g:16546:2: ()
+ // InternalRBAModel.g:16546:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAllInstanceOfExpressionAccess().getAllInstanceOfSoundContentAction_0_3_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AllInstanceOfExpression__Group_0_3__0__Impl"
+
+
+ // $ANTLR start "rule__AllInstanceOfExpression__Group_0_3__1"
+ // InternalRBAModel.g:16554:1: rule__AllInstanceOfExpression__Group_0_3__1 : rule__AllInstanceOfExpression__Group_0_3__1__Impl ;
+ public final void rule__AllInstanceOfExpression__Group_0_3__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16558:1: ( rule__AllInstanceOfExpression__Group_0_3__1__Impl )
+ // InternalRBAModel.g:16559:2: rule__AllInstanceOfExpression__Group_0_3__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__AllInstanceOfExpression__Group_0_3__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AllInstanceOfExpression__Group_0_3__1"
+
+
+ // $ANTLR start "rule__AllInstanceOfExpression__Group_0_3__1__Impl"
+ // InternalRBAModel.g:16565:1: rule__AllInstanceOfExpression__Group_0_3__1__Impl : ( 'ALL_SOUNDCONTENTS' ) ;
+ public final void rule__AllInstanceOfExpression__Group_0_3__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16569:1: ( ( 'ALL_SOUNDCONTENTS' ) )
+ // InternalRBAModel.g:16570:1: ( 'ALL_SOUNDCONTENTS' )
+ {
+ // InternalRBAModel.g:16570:1: ( 'ALL_SOUNDCONTENTS' )
+ // InternalRBAModel.g:16571:2: 'ALL_SOUNDCONTENTS'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAllInstanceOfExpressionAccess().getALL_SOUNDCONTENTSKeyword_0_3_1());
+ }
+ match(input,143,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAllInstanceOfExpressionAccess().getALL_SOUNDCONTENTSKeyword_0_3_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AllInstanceOfExpression__Group_0_3__1__Impl"
+
+
+ // $ANTLR start "rule__NullExpression__Group__0"
+ // InternalRBAModel.g:16581:1: rule__NullExpression__Group__0 : rule__NullExpression__Group__0__Impl ;
+ public final void rule__NullExpression__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16585:1: ( rule__NullExpression__Group__0__Impl )
+ // InternalRBAModel.g:16586:2: rule__NullExpression__Group__0__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__NullExpression__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__NullExpression__Group__0"
+
+
+ // $ANTLR start "rule__NullExpression__Group__0__Impl"
+ // InternalRBAModel.g:16592:1: rule__NullExpression__Group__0__Impl : ( ( rule__NullExpression__Group_0__0 ) ) ;
+ public final void rule__NullExpression__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16596:1: ( ( ( rule__NullExpression__Group_0__0 ) ) )
+ // InternalRBAModel.g:16597:1: ( ( rule__NullExpression__Group_0__0 ) )
+ {
+ // InternalRBAModel.g:16597:1: ( ( rule__NullExpression__Group_0__0 ) )
+ // InternalRBAModel.g:16598:2: ( rule__NullExpression__Group_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getNullExpressionAccess().getGroup_0());
+ }
+ // InternalRBAModel.g:16599:2: ( rule__NullExpression__Group_0__0 )
+ // InternalRBAModel.g:16599:3: rule__NullExpression__Group_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__NullExpression__Group_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getNullExpressionAccess().getGroup_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__NullExpression__Group__0__Impl"
+
+
+ // $ANTLR start "rule__NullExpression__Group_0__0"
+ // InternalRBAModel.g:16608:1: rule__NullExpression__Group_0__0 : rule__NullExpression__Group_0__0__Impl rule__NullExpression__Group_0__1 ;
+ public final void rule__NullExpression__Group_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16612:1: ( rule__NullExpression__Group_0__0__Impl rule__NullExpression__Group_0__1 )
+ // InternalRBAModel.g:16613:2: rule__NullExpression__Group_0__0__Impl rule__NullExpression__Group_0__1
+ {
+ pushFollow(FOLLOW_130);
+ rule__NullExpression__Group_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__NullExpression__Group_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__NullExpression__Group_0__0"
+
+
+ // $ANTLR start "rule__NullExpression__Group_0__0__Impl"
+ // InternalRBAModel.g:16620:1: rule__NullExpression__Group_0__0__Impl : ( () ) ;
+ public final void rule__NullExpression__Group_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16624:1: ( ( () ) )
+ // InternalRBAModel.g:16625:1: ( () )
+ {
+ // InternalRBAModel.g:16625:1: ( () )
+ // InternalRBAModel.g:16626:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getNullExpressionAccess().getNullExpressionAction_0_0());
+ }
+ // InternalRBAModel.g:16627:2: ()
+ // InternalRBAModel.g:16627:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getNullExpressionAccess().getNullExpressionAction_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__NullExpression__Group_0__0__Impl"
+
+
+ // $ANTLR start "rule__NullExpression__Group_0__1"
+ // InternalRBAModel.g:16635:1: rule__NullExpression__Group_0__1 : rule__NullExpression__Group_0__1__Impl ;
+ public final void rule__NullExpression__Group_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16639:1: ( rule__NullExpression__Group_0__1__Impl )
+ // InternalRBAModel.g:16640:2: rule__NullExpression__Group_0__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__NullExpression__Group_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__NullExpression__Group_0__1"
+
+
+ // $ANTLR start "rule__NullExpression__Group_0__1__Impl"
+ // InternalRBAModel.g:16646:1: rule__NullExpression__Group_0__1__Impl : ( 'NULL' ) ;
+ public final void rule__NullExpression__Group_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16650:1: ( ( 'NULL' ) )
+ // InternalRBAModel.g:16651:1: ( 'NULL' )
+ {
+ // InternalRBAModel.g:16651:1: ( 'NULL' )
+ // InternalRBAModel.g:16652:2: 'NULL'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getNullExpressionAccess().getNULLKeyword_0_1());
+ }
+ match(input,144,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getNullExpressionAccess().getNULLKeyword_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__NullExpression__Group_0__1__Impl"
+
+
+ // $ANTLR start "rule__PreviousModifier__Group__0"
+ // InternalRBAModel.g:16662:1: rule__PreviousModifier__Group__0 : rule__PreviousModifier__Group__0__Impl rule__PreviousModifier__Group__1 ;
+ public final void rule__PreviousModifier__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16666:1: ( rule__PreviousModifier__Group__0__Impl rule__PreviousModifier__Group__1 )
+ // InternalRBAModel.g:16667:2: rule__PreviousModifier__Group__0__Impl rule__PreviousModifier__Group__1
+ {
+ pushFollow(FOLLOW_131);
+ rule__PreviousModifier__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__PreviousModifier__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PreviousModifier__Group__0"
+
+
+ // $ANTLR start "rule__PreviousModifier__Group__0__Impl"
+ // InternalRBAModel.g:16674:1: rule__PreviousModifier__Group__0__Impl : ( () ) ;
+ public final void rule__PreviousModifier__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16678:1: ( ( () ) )
+ // InternalRBAModel.g:16679:1: ( () )
+ {
+ // InternalRBAModel.g:16679:1: ( () )
+ // InternalRBAModel.g:16680:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPreviousModifierAccess().getPreviousModifierAction_0());
+ }
+ // InternalRBAModel.g:16681:2: ()
+ // InternalRBAModel.g:16681:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPreviousModifierAccess().getPreviousModifierAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PreviousModifier__Group__0__Impl"
+
+
+ // $ANTLR start "rule__PreviousModifier__Group__1"
+ // InternalRBAModel.g:16689:1: rule__PreviousModifier__Group__1 : rule__PreviousModifier__Group__1__Impl rule__PreviousModifier__Group__2 ;
+ public final void rule__PreviousModifier__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16693:1: ( rule__PreviousModifier__Group__1__Impl rule__PreviousModifier__Group__2 )
+ // InternalRBAModel.g:16694:2: rule__PreviousModifier__Group__1__Impl rule__PreviousModifier__Group__2
+ {
+ pushFollow(FOLLOW_132);
+ rule__PreviousModifier__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__PreviousModifier__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PreviousModifier__Group__1"
+
+
+ // $ANTLR start "rule__PreviousModifier__Group__1__Impl"
+ // InternalRBAModel.g:16701:1: rule__PreviousModifier__Group__1__Impl : ( '(pre)' ) ;
+ public final void rule__PreviousModifier__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16705:1: ( ( '(pre)' ) )
+ // InternalRBAModel.g:16706:1: ( '(pre)' )
+ {
+ // InternalRBAModel.g:16706:1: ( '(pre)' )
+ // InternalRBAModel.g:16707:2: '(pre)'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPreviousModifierAccess().getPreKeyword_1());
+ }
+ match(input,145,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPreviousModifierAccess().getPreKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PreviousModifier__Group__1__Impl"
+
+
+ // $ANTLR start "rule__PreviousModifier__Group__2"
+ // InternalRBAModel.g:16716:1: rule__PreviousModifier__Group__2 : rule__PreviousModifier__Group__2__Impl ;
+ public final void rule__PreviousModifier__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16720:1: ( rule__PreviousModifier__Group__2__Impl )
+ // InternalRBAModel.g:16721:2: rule__PreviousModifier__Group__2__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__PreviousModifier__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PreviousModifier__Group__2"
+
+
+ // $ANTLR start "rule__PreviousModifier__Group__2__Impl"
+ // InternalRBAModel.g:16727:1: rule__PreviousModifier__Group__2__Impl : ( ( rule__PreviousModifier__ObjReferenceAssignment_2 ) ) ;
+ public final void rule__PreviousModifier__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16731:1: ( ( ( rule__PreviousModifier__ObjReferenceAssignment_2 ) ) )
+ // InternalRBAModel.g:16732:1: ( ( rule__PreviousModifier__ObjReferenceAssignment_2 ) )
+ {
+ // InternalRBAModel.g:16732:1: ( ( rule__PreviousModifier__ObjReferenceAssignment_2 ) )
+ // InternalRBAModel.g:16733:2: ( rule__PreviousModifier__ObjReferenceAssignment_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPreviousModifierAccess().getObjReferenceAssignment_2());
+ }
+ // InternalRBAModel.g:16734:2: ( rule__PreviousModifier__ObjReferenceAssignment_2 )
+ // InternalRBAModel.g:16734:3: rule__PreviousModifier__ObjReferenceAssignment_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__PreviousModifier__ObjReferenceAssignment_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPreviousModifierAccess().getObjReferenceAssignment_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PreviousModifier__Group__2__Impl"
+
+
+ // $ANTLR start "rule__HideLowerPriority__Group__0"
+ // InternalRBAModel.g:16743:1: rule__HideLowerPriority__Group__0 : rule__HideLowerPriority__Group__0__Impl rule__HideLowerPriority__Group__1 ;
+ public final void rule__HideLowerPriority__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16747:1: ( rule__HideLowerPriority__Group__0__Impl rule__HideLowerPriority__Group__1 )
+ // InternalRBAModel.g:16748:2: rule__HideLowerPriority__Group__0__Impl rule__HideLowerPriority__Group__1
+ {
+ pushFollow(FOLLOW_133);
+ rule__HideLowerPriority__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__HideLowerPriority__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HideLowerPriority__Group__0"
+
+
+ // $ANTLR start "rule__HideLowerPriority__Group__0__Impl"
+ // InternalRBAModel.g:16755:1: rule__HideLowerPriority__Group__0__Impl : ( () ) ;
+ public final void rule__HideLowerPriority__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16759:1: ( ( () ) )
+ // InternalRBAModel.g:16760:1: ( () )
+ {
+ // InternalRBAModel.g:16760:1: ( () )
+ // InternalRBAModel.g:16761:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getHideLowerPriorityAccess().getHideLowerPriorityAction_0());
+ }
+ // InternalRBAModel.g:16762:2: ()
+ // InternalRBAModel.g:16762:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getHideLowerPriorityAccess().getHideLowerPriorityAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HideLowerPriority__Group__0__Impl"
+
+
+ // $ANTLR start "rule__HideLowerPriority__Group__1"
+ // InternalRBAModel.g:16770:1: rule__HideLowerPriority__Group__1 : rule__HideLowerPriority__Group__1__Impl rule__HideLowerPriority__Group__2 ;
+ public final void rule__HideLowerPriority__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16774:1: ( rule__HideLowerPriority__Group__1__Impl rule__HideLowerPriority__Group__2 )
+ // InternalRBAModel.g:16775:2: rule__HideLowerPriority__Group__1__Impl rule__HideLowerPriority__Group__2
+ {
+ pushFollow(FOLLOW_27);
+ rule__HideLowerPriority__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__HideLowerPriority__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HideLowerPriority__Group__1"
+
+
+ // $ANTLR start "rule__HideLowerPriority__Group__1__Impl"
+ // InternalRBAModel.g:16782:1: rule__HideLowerPriority__Group__1__Impl : ( 'HideLowerPriority' ) ;
+ public final void rule__HideLowerPriority__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16786:1: ( ( 'HideLowerPriority' ) )
+ // InternalRBAModel.g:16787:1: ( 'HideLowerPriority' )
+ {
+ // InternalRBAModel.g:16787:1: ( 'HideLowerPriority' )
+ // InternalRBAModel.g:16788:2: 'HideLowerPriority'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getHideLowerPriorityAccess().getHideLowerPriorityKeyword_1());
+ }
+ match(input,146,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getHideLowerPriorityAccess().getHideLowerPriorityKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HideLowerPriority__Group__1__Impl"
+
+
+ // $ANTLR start "rule__HideLowerPriority__Group__2"
+ // InternalRBAModel.g:16797:1: rule__HideLowerPriority__Group__2 : rule__HideLowerPriority__Group__2__Impl rule__HideLowerPriority__Group__3 ;
+ public final void rule__HideLowerPriority__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16801:1: ( rule__HideLowerPriority__Group__2__Impl rule__HideLowerPriority__Group__3 )
+ // InternalRBAModel.g:16802:2: rule__HideLowerPriority__Group__2__Impl rule__HideLowerPriority__Group__3
+ {
+ pushFollow(FOLLOW_33);
+ rule__HideLowerPriority__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__HideLowerPriority__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HideLowerPriority__Group__2"
+
+
+ // $ANTLR start "rule__HideLowerPriority__Group__2__Impl"
+ // InternalRBAModel.g:16809:1: rule__HideLowerPriority__Group__2__Impl : ( '(' ) ;
+ public final void rule__HideLowerPriority__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16813:1: ( ( '(' ) )
+ // InternalRBAModel.g:16814:1: ( '(' )
+ {
+ // InternalRBAModel.g:16814:1: ( '(' )
+ // InternalRBAModel.g:16815:2: '('
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getHideLowerPriorityAccess().getLeftParenthesisKeyword_2());
+ }
+ match(input,107,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getHideLowerPriorityAccess().getLeftParenthesisKeyword_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HideLowerPriority__Group__2__Impl"
+
+
+ // $ANTLR start "rule__HideLowerPriority__Group__3"
+ // InternalRBAModel.g:16824:1: rule__HideLowerPriority__Group__3 : rule__HideLowerPriority__Group__3__Impl rule__HideLowerPriority__Group__4 ;
+ public final void rule__HideLowerPriority__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16828:1: ( rule__HideLowerPriority__Group__3__Impl rule__HideLowerPriority__Group__4 )
+ // InternalRBAModel.g:16829:2: rule__HideLowerPriority__Group__3__Impl rule__HideLowerPriority__Group__4
+ {
+ pushFollow(FOLLOW_17);
+ rule__HideLowerPriority__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__HideLowerPriority__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HideLowerPriority__Group__3"
+
+
+ // $ANTLR start "rule__HideLowerPriority__Group__3__Impl"
+ // InternalRBAModel.g:16836:1: rule__HideLowerPriority__Group__3__Impl : ( ( rule__HideLowerPriority__OperandAssignment_3 ) ) ;
+ public final void rule__HideLowerPriority__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16840:1: ( ( ( rule__HideLowerPriority__OperandAssignment_3 ) ) )
+ // InternalRBAModel.g:16841:1: ( ( rule__HideLowerPriority__OperandAssignment_3 ) )
+ {
+ // InternalRBAModel.g:16841:1: ( ( rule__HideLowerPriority__OperandAssignment_3 ) )
+ // InternalRBAModel.g:16842:2: ( rule__HideLowerPriority__OperandAssignment_3 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getHideLowerPriorityAccess().getOperandAssignment_3());
+ }
+ // InternalRBAModel.g:16843:2: ( rule__HideLowerPriority__OperandAssignment_3 )
+ // InternalRBAModel.g:16843:3: rule__HideLowerPriority__OperandAssignment_3
+ {
+ pushFollow(FOLLOW_2);
+ rule__HideLowerPriority__OperandAssignment_3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getHideLowerPriorityAccess().getOperandAssignment_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HideLowerPriority__Group__3__Impl"
+
+
+ // $ANTLR start "rule__HideLowerPriority__Group__4"
+ // InternalRBAModel.g:16851:1: rule__HideLowerPriority__Group__4 : rule__HideLowerPriority__Group__4__Impl rule__HideLowerPriority__Group__5 ;
+ public final void rule__HideLowerPriority__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16855:1: ( rule__HideLowerPriority__Group__4__Impl rule__HideLowerPriority__Group__5 )
+ // InternalRBAModel.g:16856:2: rule__HideLowerPriority__Group__4__Impl rule__HideLowerPriority__Group__5
+ {
+ pushFollow(FOLLOW_33);
+ rule__HideLowerPriority__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__HideLowerPriority__Group__5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HideLowerPriority__Group__4"
+
+
+ // $ANTLR start "rule__HideLowerPriority__Group__4__Impl"
+ // InternalRBAModel.g:16863:1: rule__HideLowerPriority__Group__4__Impl : ( ',' ) ;
+ public final void rule__HideLowerPriority__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16867:1: ( ( ',' ) )
+ // InternalRBAModel.g:16868:1: ( ',' )
+ {
+ // InternalRBAModel.g:16868:1: ( ',' )
+ // InternalRBAModel.g:16869:2: ','
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getHideLowerPriorityAccess().getCommaKeyword_4());
+ }
+ match(input,103,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getHideLowerPriorityAccess().getCommaKeyword_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HideLowerPriority__Group__4__Impl"
+
+
+ // $ANTLR start "rule__HideLowerPriority__Group__5"
+ // InternalRBAModel.g:16878:1: rule__HideLowerPriority__Group__5 : rule__HideLowerPriority__Group__5__Impl rule__HideLowerPriority__Group__6 ;
+ public final void rule__HideLowerPriority__Group__5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16882:1: ( rule__HideLowerPriority__Group__5__Impl rule__HideLowerPriority__Group__6 )
+ // InternalRBAModel.g:16883:2: rule__HideLowerPriority__Group__5__Impl rule__HideLowerPriority__Group__6
+ {
+ pushFollow(FOLLOW_67);
+ rule__HideLowerPriority__Group__5__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__HideLowerPriority__Group__6();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HideLowerPriority__Group__5"
+
+
+ // $ANTLR start "rule__HideLowerPriority__Group__5__Impl"
+ // InternalRBAModel.g:16890:1: rule__HideLowerPriority__Group__5__Impl : ( ( rule__HideLowerPriority__OperandAssignment_5 ) ) ;
+ public final void rule__HideLowerPriority__Group__5__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16894:1: ( ( ( rule__HideLowerPriority__OperandAssignment_5 ) ) )
+ // InternalRBAModel.g:16895:1: ( ( rule__HideLowerPriority__OperandAssignment_5 ) )
+ {
+ // InternalRBAModel.g:16895:1: ( ( rule__HideLowerPriority__OperandAssignment_5 ) )
+ // InternalRBAModel.g:16896:2: ( rule__HideLowerPriority__OperandAssignment_5 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getHideLowerPriorityAccess().getOperandAssignment_5());
+ }
+ // InternalRBAModel.g:16897:2: ( rule__HideLowerPriority__OperandAssignment_5 )
+ // InternalRBAModel.g:16897:3: rule__HideLowerPriority__OperandAssignment_5
+ {
+ pushFollow(FOLLOW_2);
+ rule__HideLowerPriority__OperandAssignment_5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getHideLowerPriorityAccess().getOperandAssignment_5());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HideLowerPriority__Group__5__Impl"
+
+
+ // $ANTLR start "rule__HideLowerPriority__Group__6"
+ // InternalRBAModel.g:16905:1: rule__HideLowerPriority__Group__6 : rule__HideLowerPriority__Group__6__Impl ;
+ public final void rule__HideLowerPriority__Group__6() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16909:1: ( rule__HideLowerPriority__Group__6__Impl )
+ // InternalRBAModel.g:16910:2: rule__HideLowerPriority__Group__6__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__HideLowerPriority__Group__6__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HideLowerPriority__Group__6"
+
+
+ // $ANTLR start "rule__HideLowerPriority__Group__6__Impl"
+ // InternalRBAModel.g:16916:1: rule__HideLowerPriority__Group__6__Impl : ( ')' ) ;
+ public final void rule__HideLowerPriority__Group__6__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16920:1: ( ( ')' ) )
+ // InternalRBAModel.g:16921:1: ( ')' )
+ {
+ // InternalRBAModel.g:16921:1: ( ')' )
+ // InternalRBAModel.g:16922:2: ')'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getHideLowerPriorityAccess().getRightParenthesisKeyword_6());
+ }
+ match(input,108,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getHideLowerPriorityAccess().getRightParenthesisKeyword_6());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HideLowerPriority__Group__6__Impl"
+
+
+ // $ANTLR start "rule__MuteLowerPriority__Group__0"
+ // InternalRBAModel.g:16932:1: rule__MuteLowerPriority__Group__0 : rule__MuteLowerPriority__Group__0__Impl rule__MuteLowerPriority__Group__1 ;
+ public final void rule__MuteLowerPriority__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16936:1: ( rule__MuteLowerPriority__Group__0__Impl rule__MuteLowerPriority__Group__1 )
+ // InternalRBAModel.g:16937:2: rule__MuteLowerPriority__Group__0__Impl rule__MuteLowerPriority__Group__1
+ {
+ pushFollow(FOLLOW_134);
+ rule__MuteLowerPriority__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__MuteLowerPriority__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__MuteLowerPriority__Group__0"
+
+
+ // $ANTLR start "rule__MuteLowerPriority__Group__0__Impl"
+ // InternalRBAModel.g:16944:1: rule__MuteLowerPriority__Group__0__Impl : ( () ) ;
+ public final void rule__MuteLowerPriority__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16948:1: ( ( () ) )
+ // InternalRBAModel.g:16949:1: ( () )
+ {
+ // InternalRBAModel.g:16949:1: ( () )
+ // InternalRBAModel.g:16950:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getMuteLowerPriorityAccess().getMuteLowerPriorityAction_0());
+ }
+ // InternalRBAModel.g:16951:2: ()
+ // InternalRBAModel.g:16951:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getMuteLowerPriorityAccess().getMuteLowerPriorityAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__MuteLowerPriority__Group__0__Impl"
+
+
+ // $ANTLR start "rule__MuteLowerPriority__Group__1"
+ // InternalRBAModel.g:16959:1: rule__MuteLowerPriority__Group__1 : rule__MuteLowerPriority__Group__1__Impl rule__MuteLowerPriority__Group__2 ;
+ public final void rule__MuteLowerPriority__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16963:1: ( rule__MuteLowerPriority__Group__1__Impl rule__MuteLowerPriority__Group__2 )
+ // InternalRBAModel.g:16964:2: rule__MuteLowerPriority__Group__1__Impl rule__MuteLowerPriority__Group__2
+ {
+ pushFollow(FOLLOW_27);
+ rule__MuteLowerPriority__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__MuteLowerPriority__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__MuteLowerPriority__Group__1"
+
+
+ // $ANTLR start "rule__MuteLowerPriority__Group__1__Impl"
+ // InternalRBAModel.g:16971:1: rule__MuteLowerPriority__Group__1__Impl : ( 'MuteLowerPriority' ) ;
+ public final void rule__MuteLowerPriority__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16975:1: ( ( 'MuteLowerPriority' ) )
+ // InternalRBAModel.g:16976:1: ( 'MuteLowerPriority' )
+ {
+ // InternalRBAModel.g:16976:1: ( 'MuteLowerPriority' )
+ // InternalRBAModel.g:16977:2: 'MuteLowerPriority'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getMuteLowerPriorityAccess().getMuteLowerPriorityKeyword_1());
+ }
+ match(input,147,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getMuteLowerPriorityAccess().getMuteLowerPriorityKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__MuteLowerPriority__Group__1__Impl"
+
+
+ // $ANTLR start "rule__MuteLowerPriority__Group__2"
+ // InternalRBAModel.g:16986:1: rule__MuteLowerPriority__Group__2 : rule__MuteLowerPriority__Group__2__Impl rule__MuteLowerPriority__Group__3 ;
+ public final void rule__MuteLowerPriority__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:16990:1: ( rule__MuteLowerPriority__Group__2__Impl rule__MuteLowerPriority__Group__3 )
+ // InternalRBAModel.g:16991:2: rule__MuteLowerPriority__Group__2__Impl rule__MuteLowerPriority__Group__3
+ {
+ pushFollow(FOLLOW_33);
+ rule__MuteLowerPriority__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__MuteLowerPriority__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__MuteLowerPriority__Group__2"
+
+
+ // $ANTLR start "rule__MuteLowerPriority__Group__2__Impl"
+ // InternalRBAModel.g:16998:1: rule__MuteLowerPriority__Group__2__Impl : ( '(' ) ;
+ public final void rule__MuteLowerPriority__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17002:1: ( ( '(' ) )
+ // InternalRBAModel.g:17003:1: ( '(' )
+ {
+ // InternalRBAModel.g:17003:1: ( '(' )
+ // InternalRBAModel.g:17004:2: '('
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getMuteLowerPriorityAccess().getLeftParenthesisKeyword_2());
+ }
+ match(input,107,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getMuteLowerPriorityAccess().getLeftParenthesisKeyword_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__MuteLowerPriority__Group__2__Impl"
+
+
+ // $ANTLR start "rule__MuteLowerPriority__Group__3"
+ // InternalRBAModel.g:17013:1: rule__MuteLowerPriority__Group__3 : rule__MuteLowerPriority__Group__3__Impl rule__MuteLowerPriority__Group__4 ;
+ public final void rule__MuteLowerPriority__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17017:1: ( rule__MuteLowerPriority__Group__3__Impl rule__MuteLowerPriority__Group__4 )
+ // InternalRBAModel.g:17018:2: rule__MuteLowerPriority__Group__3__Impl rule__MuteLowerPriority__Group__4
+ {
+ pushFollow(FOLLOW_17);
+ rule__MuteLowerPriority__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__MuteLowerPriority__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__MuteLowerPriority__Group__3"
+
+
+ // $ANTLR start "rule__MuteLowerPriority__Group__3__Impl"
+ // InternalRBAModel.g:17025:1: rule__MuteLowerPriority__Group__3__Impl : ( ( rule__MuteLowerPriority__OperandAssignment_3 ) ) ;
+ public final void rule__MuteLowerPriority__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17029:1: ( ( ( rule__MuteLowerPriority__OperandAssignment_3 ) ) )
+ // InternalRBAModel.g:17030:1: ( ( rule__MuteLowerPriority__OperandAssignment_3 ) )
+ {
+ // InternalRBAModel.g:17030:1: ( ( rule__MuteLowerPriority__OperandAssignment_3 ) )
+ // InternalRBAModel.g:17031:2: ( rule__MuteLowerPriority__OperandAssignment_3 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getMuteLowerPriorityAccess().getOperandAssignment_3());
+ }
+ // InternalRBAModel.g:17032:2: ( rule__MuteLowerPriority__OperandAssignment_3 )
+ // InternalRBAModel.g:17032:3: rule__MuteLowerPriority__OperandAssignment_3
+ {
+ pushFollow(FOLLOW_2);
+ rule__MuteLowerPriority__OperandAssignment_3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getMuteLowerPriorityAccess().getOperandAssignment_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__MuteLowerPriority__Group__3__Impl"
+
+
+ // $ANTLR start "rule__MuteLowerPriority__Group__4"
+ // InternalRBAModel.g:17040:1: rule__MuteLowerPriority__Group__4 : rule__MuteLowerPriority__Group__4__Impl rule__MuteLowerPriority__Group__5 ;
+ public final void rule__MuteLowerPriority__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17044:1: ( rule__MuteLowerPriority__Group__4__Impl rule__MuteLowerPriority__Group__5 )
+ // InternalRBAModel.g:17045:2: rule__MuteLowerPriority__Group__4__Impl rule__MuteLowerPriority__Group__5
+ {
+ pushFollow(FOLLOW_33);
+ rule__MuteLowerPriority__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__MuteLowerPriority__Group__5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__MuteLowerPriority__Group__4"
+
+
+ // $ANTLR start "rule__MuteLowerPriority__Group__4__Impl"
+ // InternalRBAModel.g:17052:1: rule__MuteLowerPriority__Group__4__Impl : ( ',' ) ;
+ public final void rule__MuteLowerPriority__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17056:1: ( ( ',' ) )
+ // InternalRBAModel.g:17057:1: ( ',' )
+ {
+ // InternalRBAModel.g:17057:1: ( ',' )
+ // InternalRBAModel.g:17058:2: ','
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getMuteLowerPriorityAccess().getCommaKeyword_4());
+ }
+ match(input,103,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getMuteLowerPriorityAccess().getCommaKeyword_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__MuteLowerPriority__Group__4__Impl"
+
+
+ // $ANTLR start "rule__MuteLowerPriority__Group__5"
+ // InternalRBAModel.g:17067:1: rule__MuteLowerPriority__Group__5 : rule__MuteLowerPriority__Group__5__Impl rule__MuteLowerPriority__Group__6 ;
+ public final void rule__MuteLowerPriority__Group__5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17071:1: ( rule__MuteLowerPriority__Group__5__Impl rule__MuteLowerPriority__Group__6 )
+ // InternalRBAModel.g:17072:2: rule__MuteLowerPriority__Group__5__Impl rule__MuteLowerPriority__Group__6
+ {
+ pushFollow(FOLLOW_67);
+ rule__MuteLowerPriority__Group__5__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__MuteLowerPriority__Group__6();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__MuteLowerPriority__Group__5"
+
+
+ // $ANTLR start "rule__MuteLowerPriority__Group__5__Impl"
+ // InternalRBAModel.g:17079:1: rule__MuteLowerPriority__Group__5__Impl : ( ( rule__MuteLowerPriority__OperandAssignment_5 ) ) ;
+ public final void rule__MuteLowerPriority__Group__5__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17083:1: ( ( ( rule__MuteLowerPriority__OperandAssignment_5 ) ) )
+ // InternalRBAModel.g:17084:1: ( ( rule__MuteLowerPriority__OperandAssignment_5 ) )
+ {
+ // InternalRBAModel.g:17084:1: ( ( rule__MuteLowerPriority__OperandAssignment_5 ) )
+ // InternalRBAModel.g:17085:2: ( rule__MuteLowerPriority__OperandAssignment_5 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getMuteLowerPriorityAccess().getOperandAssignment_5());
+ }
+ // InternalRBAModel.g:17086:2: ( rule__MuteLowerPriority__OperandAssignment_5 )
+ // InternalRBAModel.g:17086:3: rule__MuteLowerPriority__OperandAssignment_5
+ {
+ pushFollow(FOLLOW_2);
+ rule__MuteLowerPriority__OperandAssignment_5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getMuteLowerPriorityAccess().getOperandAssignment_5());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__MuteLowerPriority__Group__5__Impl"
+
+
+ // $ANTLR start "rule__MuteLowerPriority__Group__6"
+ // InternalRBAModel.g:17094:1: rule__MuteLowerPriority__Group__6 : rule__MuteLowerPriority__Group__6__Impl ;
+ public final void rule__MuteLowerPriority__Group__6() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17098:1: ( rule__MuteLowerPriority__Group__6__Impl )
+ // InternalRBAModel.g:17099:2: rule__MuteLowerPriority__Group__6__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__MuteLowerPriority__Group__6__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__MuteLowerPriority__Group__6"
+
+
+ // $ANTLR start "rule__MuteLowerPriority__Group__6__Impl"
+ // InternalRBAModel.g:17105:1: rule__MuteLowerPriority__Group__6__Impl : ( ')' ) ;
+ public final void rule__MuteLowerPriority__Group__6__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17109:1: ( ( ')' ) )
+ // InternalRBAModel.g:17110:1: ( ')' )
+ {
+ // InternalRBAModel.g:17110:1: ( ')' )
+ // InternalRBAModel.g:17111:2: ')'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getMuteLowerPriorityAccess().getRightParenthesisKeyword_6());
+ }
+ match(input,108,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getMuteLowerPriorityAccess().getRightParenthesisKeyword_6());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__MuteLowerPriority__Group__6__Impl"
+
+
+ // $ANTLR start "rule__SetOfOperator__Group__0"
+ // InternalRBAModel.g:17121:1: rule__SetOfOperator__Group__0 : rule__SetOfOperator__Group__0__Impl rule__SetOfOperator__Group__1 ;
+ public final void rule__SetOfOperator__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17125:1: ( rule__SetOfOperator__Group__0__Impl rule__SetOfOperator__Group__1 )
+ // InternalRBAModel.g:17126:2: rule__SetOfOperator__Group__0__Impl rule__SetOfOperator__Group__1
+ {
+ pushFollow(FOLLOW_11);
+ rule__SetOfOperator__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__SetOfOperator__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SetOfOperator__Group__0"
+
+
+ // $ANTLR start "rule__SetOfOperator__Group__0__Impl"
+ // InternalRBAModel.g:17133:1: rule__SetOfOperator__Group__0__Impl : ( () ) ;
+ public final void rule__SetOfOperator__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17137:1: ( ( () ) )
+ // InternalRBAModel.g:17138:1: ( () )
+ {
+ // InternalRBAModel.g:17138:1: ( () )
+ // InternalRBAModel.g:17139:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSetOfOperatorAccess().getSetOfOperatorAction_0());
+ }
+ // InternalRBAModel.g:17140:2: ()
+ // InternalRBAModel.g:17140:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSetOfOperatorAccess().getSetOfOperatorAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SetOfOperator__Group__0__Impl"
+
+
+ // $ANTLR start "rule__SetOfOperator__Group__1"
+ // InternalRBAModel.g:17148:1: rule__SetOfOperator__Group__1 : rule__SetOfOperator__Group__1__Impl rule__SetOfOperator__Group__2 ;
+ public final void rule__SetOfOperator__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17152:1: ( rule__SetOfOperator__Group__1__Impl rule__SetOfOperator__Group__2 )
+ // InternalRBAModel.g:17153:2: rule__SetOfOperator__Group__1__Impl rule__SetOfOperator__Group__2
+ {
+ pushFollow(FOLLOW_135);
+ rule__SetOfOperator__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__SetOfOperator__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SetOfOperator__Group__1"
+
+
+ // $ANTLR start "rule__SetOfOperator__Group__1__Impl"
+ // InternalRBAModel.g:17160:1: rule__SetOfOperator__Group__1__Impl : ( '{' ) ;
+ public final void rule__SetOfOperator__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17164:1: ( ( '{' ) )
+ // InternalRBAModel.g:17165:1: ( '{' )
+ {
+ // InternalRBAModel.g:17165:1: ( '{' )
+ // InternalRBAModel.g:17166:2: '{'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSetOfOperatorAccess().getLeftCurlyBracketKeyword_1());
+ }
+ match(input,101,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSetOfOperatorAccess().getLeftCurlyBracketKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SetOfOperator__Group__1__Impl"
+
+
+ // $ANTLR start "rule__SetOfOperator__Group__2"
+ // InternalRBAModel.g:17175:1: rule__SetOfOperator__Group__2 : rule__SetOfOperator__Group__2__Impl rule__SetOfOperator__Group__3 ;
+ public final void rule__SetOfOperator__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17179:1: ( rule__SetOfOperator__Group__2__Impl rule__SetOfOperator__Group__3 )
+ // InternalRBAModel.g:17180:2: rule__SetOfOperator__Group__2__Impl rule__SetOfOperator__Group__3
+ {
+ pushFollow(FOLLOW_135);
+ rule__SetOfOperator__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__SetOfOperator__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SetOfOperator__Group__2"
+
+
+ // $ANTLR start "rule__SetOfOperator__Group__2__Impl"
+ // InternalRBAModel.g:17187:1: rule__SetOfOperator__Group__2__Impl : ( ( rule__SetOfOperator__Group_2__0 )? ) ;
+ public final void rule__SetOfOperator__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17191:1: ( ( ( rule__SetOfOperator__Group_2__0 )? ) )
+ // InternalRBAModel.g:17192:1: ( ( rule__SetOfOperator__Group_2__0 )? )
+ {
+ // InternalRBAModel.g:17192:1: ( ( rule__SetOfOperator__Group_2__0 )? )
+ // InternalRBAModel.g:17193:2: ( rule__SetOfOperator__Group_2__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSetOfOperatorAccess().getGroup_2());
+ }
+ // InternalRBAModel.g:17194:2: ( rule__SetOfOperator__Group_2__0 )?
+ int alt69=2;
+ int LA69_0 = input.LA(1);
+
+ if ( ((LA69_0>=RULE_ID && LA69_0<=RULE_INT)||LA69_0==30||LA69_0==76||LA69_0==101||LA69_0==107||(LA69_0>=140 && LA69_0<=148)||(LA69_0>=151 && LA69_0<=152)||LA69_0==166) ) {
+ alt69=1;
+ }
+ switch (alt69) {
+ case 1 :
+ // InternalRBAModel.g:17194:3: rule__SetOfOperator__Group_2__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__SetOfOperator__Group_2__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSetOfOperatorAccess().getGroup_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SetOfOperator__Group__2__Impl"
+
+
+ // $ANTLR start "rule__SetOfOperator__Group__3"
+ // InternalRBAModel.g:17202:1: rule__SetOfOperator__Group__3 : rule__SetOfOperator__Group__3__Impl ;
+ public final void rule__SetOfOperator__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17206:1: ( rule__SetOfOperator__Group__3__Impl )
+ // InternalRBAModel.g:17207:2: rule__SetOfOperator__Group__3__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__SetOfOperator__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SetOfOperator__Group__3"
+
+
+ // $ANTLR start "rule__SetOfOperator__Group__3__Impl"
+ // InternalRBAModel.g:17213:1: rule__SetOfOperator__Group__3__Impl : ( '}' ) ;
+ public final void rule__SetOfOperator__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17217:1: ( ( '}' ) )
+ // InternalRBAModel.g:17218:1: ( '}' )
+ {
+ // InternalRBAModel.g:17218:1: ( '}' )
+ // InternalRBAModel.g:17219:2: '}'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSetOfOperatorAccess().getRightCurlyBracketKeyword_3());
+ }
+ match(input,102,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSetOfOperatorAccess().getRightCurlyBracketKeyword_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SetOfOperator__Group__3__Impl"
+
+
+ // $ANTLR start "rule__SetOfOperator__Group_2__0"
+ // InternalRBAModel.g:17229:1: rule__SetOfOperator__Group_2__0 : rule__SetOfOperator__Group_2__0__Impl rule__SetOfOperator__Group_2__1 ;
+ public final void rule__SetOfOperator__Group_2__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17233:1: ( rule__SetOfOperator__Group_2__0__Impl rule__SetOfOperator__Group_2__1 )
+ // InternalRBAModel.g:17234:2: rule__SetOfOperator__Group_2__0__Impl rule__SetOfOperator__Group_2__1
+ {
+ pushFollow(FOLLOW_17);
+ rule__SetOfOperator__Group_2__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__SetOfOperator__Group_2__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SetOfOperator__Group_2__0"
+
+
+ // $ANTLR start "rule__SetOfOperator__Group_2__0__Impl"
+ // InternalRBAModel.g:17241:1: rule__SetOfOperator__Group_2__0__Impl : ( ( rule__SetOfOperator__OperandAssignment_2_0 ) ) ;
+ public final void rule__SetOfOperator__Group_2__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17245:1: ( ( ( rule__SetOfOperator__OperandAssignment_2_0 ) ) )
+ // InternalRBAModel.g:17246:1: ( ( rule__SetOfOperator__OperandAssignment_2_0 ) )
+ {
+ // InternalRBAModel.g:17246:1: ( ( rule__SetOfOperator__OperandAssignment_2_0 ) )
+ // InternalRBAModel.g:17247:2: ( rule__SetOfOperator__OperandAssignment_2_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSetOfOperatorAccess().getOperandAssignment_2_0());
+ }
+ // InternalRBAModel.g:17248:2: ( rule__SetOfOperator__OperandAssignment_2_0 )
+ // InternalRBAModel.g:17248:3: rule__SetOfOperator__OperandAssignment_2_0
+ {
+ pushFollow(FOLLOW_2);
+ rule__SetOfOperator__OperandAssignment_2_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSetOfOperatorAccess().getOperandAssignment_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SetOfOperator__Group_2__0__Impl"
+
+
+ // $ANTLR start "rule__SetOfOperator__Group_2__1"
+ // InternalRBAModel.g:17256:1: rule__SetOfOperator__Group_2__1 : rule__SetOfOperator__Group_2__1__Impl ;
+ public final void rule__SetOfOperator__Group_2__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17260:1: ( rule__SetOfOperator__Group_2__1__Impl )
+ // InternalRBAModel.g:17261:2: rule__SetOfOperator__Group_2__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__SetOfOperator__Group_2__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SetOfOperator__Group_2__1"
+
+
+ // $ANTLR start "rule__SetOfOperator__Group_2__1__Impl"
+ // InternalRBAModel.g:17267:1: rule__SetOfOperator__Group_2__1__Impl : ( ( rule__SetOfOperator__Group_2_1__0 )* ) ;
+ public final void rule__SetOfOperator__Group_2__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17271:1: ( ( ( rule__SetOfOperator__Group_2_1__0 )* ) )
+ // InternalRBAModel.g:17272:1: ( ( rule__SetOfOperator__Group_2_1__0 )* )
+ {
+ // InternalRBAModel.g:17272:1: ( ( rule__SetOfOperator__Group_2_1__0 )* )
+ // InternalRBAModel.g:17273:2: ( rule__SetOfOperator__Group_2_1__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSetOfOperatorAccess().getGroup_2_1());
+ }
+ // InternalRBAModel.g:17274:2: ( rule__SetOfOperator__Group_2_1__0 )*
+ loop70:
+ do {
+ int alt70=2;
+ int LA70_0 = input.LA(1);
+
+ if ( (LA70_0==103) ) {
+ alt70=1;
+ }
+
+
+ switch (alt70) {
+ case 1 :
+ // InternalRBAModel.g:17274:3: rule__SetOfOperator__Group_2_1__0
+ {
+ pushFollow(FOLLOW_18);
+ rule__SetOfOperator__Group_2_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop70;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSetOfOperatorAccess().getGroup_2_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SetOfOperator__Group_2__1__Impl"
+
+
+ // $ANTLR start "rule__SetOfOperator__Group_2_1__0"
+ // InternalRBAModel.g:17283:1: rule__SetOfOperator__Group_2_1__0 : rule__SetOfOperator__Group_2_1__0__Impl rule__SetOfOperator__Group_2_1__1 ;
+ public final void rule__SetOfOperator__Group_2_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17287:1: ( rule__SetOfOperator__Group_2_1__0__Impl rule__SetOfOperator__Group_2_1__1 )
+ // InternalRBAModel.g:17288:2: rule__SetOfOperator__Group_2_1__0__Impl rule__SetOfOperator__Group_2_1__1
+ {
+ pushFollow(FOLLOW_33);
+ rule__SetOfOperator__Group_2_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__SetOfOperator__Group_2_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SetOfOperator__Group_2_1__0"
+
+
+ // $ANTLR start "rule__SetOfOperator__Group_2_1__0__Impl"
+ // InternalRBAModel.g:17295:1: rule__SetOfOperator__Group_2_1__0__Impl : ( ',' ) ;
+ public final void rule__SetOfOperator__Group_2_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17299:1: ( ( ',' ) )
+ // InternalRBAModel.g:17300:1: ( ',' )
+ {
+ // InternalRBAModel.g:17300:1: ( ',' )
+ // InternalRBAModel.g:17301:2: ','
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSetOfOperatorAccess().getCommaKeyword_2_1_0());
+ }
+ match(input,103,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSetOfOperatorAccess().getCommaKeyword_2_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SetOfOperator__Group_2_1__0__Impl"
+
+
+ // $ANTLR start "rule__SetOfOperator__Group_2_1__1"
+ // InternalRBAModel.g:17310:1: rule__SetOfOperator__Group_2_1__1 : rule__SetOfOperator__Group_2_1__1__Impl ;
+ public final void rule__SetOfOperator__Group_2_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17314:1: ( rule__SetOfOperator__Group_2_1__1__Impl )
+ // InternalRBAModel.g:17315:2: rule__SetOfOperator__Group_2_1__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__SetOfOperator__Group_2_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SetOfOperator__Group_2_1__1"
+
+
+ // $ANTLR start "rule__SetOfOperator__Group_2_1__1__Impl"
+ // InternalRBAModel.g:17321:1: rule__SetOfOperator__Group_2_1__1__Impl : ( ( rule__SetOfOperator__OperandAssignment_2_1_1 ) ) ;
+ public final void rule__SetOfOperator__Group_2_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17325:1: ( ( ( rule__SetOfOperator__OperandAssignment_2_1_1 ) ) )
+ // InternalRBAModel.g:17326:1: ( ( rule__SetOfOperator__OperandAssignment_2_1_1 ) )
+ {
+ // InternalRBAModel.g:17326:1: ( ( rule__SetOfOperator__OperandAssignment_2_1_1 ) )
+ // InternalRBAModel.g:17327:2: ( rule__SetOfOperator__OperandAssignment_2_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSetOfOperatorAccess().getOperandAssignment_2_1_1());
+ }
+ // InternalRBAModel.g:17328:2: ( rule__SetOfOperator__OperandAssignment_2_1_1 )
+ // InternalRBAModel.g:17328:3: rule__SetOfOperator__OperandAssignment_2_1_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__SetOfOperator__OperandAssignment_2_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSetOfOperatorAccess().getOperandAssignment_2_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SetOfOperator__Group_2_1__1__Impl"
+
+
+ // $ANTLR start "rule__IfStatement__Group__0"
+ // InternalRBAModel.g:17337:1: rule__IfStatement__Group__0 : rule__IfStatement__Group__0__Impl rule__IfStatement__Group__1 ;
+ public final void rule__IfStatement__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17341:1: ( rule__IfStatement__Group__0__Impl rule__IfStatement__Group__1 )
+ // InternalRBAModel.g:17342:2: rule__IfStatement__Group__0__Impl rule__IfStatement__Group__1
+ {
+ pushFollow(FOLLOW_136);
+ rule__IfStatement__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__IfStatement__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__IfStatement__Group__0"
+
+
+ // $ANTLR start "rule__IfStatement__Group__0__Impl"
+ // InternalRBAModel.g:17349:1: rule__IfStatement__Group__0__Impl : ( () ) ;
+ public final void rule__IfStatement__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17353:1: ( ( () ) )
+ // InternalRBAModel.g:17354:1: ( () )
+ {
+ // InternalRBAModel.g:17354:1: ( () )
+ // InternalRBAModel.g:17355:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getIfStatementAccess().getIfStatementAction_0());
+ }
+ // InternalRBAModel.g:17356:2: ()
+ // InternalRBAModel.g:17356:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getIfStatementAccess().getIfStatementAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__IfStatement__Group__0__Impl"
+
+
+ // $ANTLR start "rule__IfStatement__Group__1"
+ // InternalRBAModel.g:17364:1: rule__IfStatement__Group__1 : rule__IfStatement__Group__1__Impl rule__IfStatement__Group__2 ;
+ public final void rule__IfStatement__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17368:1: ( rule__IfStatement__Group__1__Impl rule__IfStatement__Group__2 )
+ // InternalRBAModel.g:17369:2: rule__IfStatement__Group__1__Impl rule__IfStatement__Group__2
+ {
+ pushFollow(FOLLOW_27);
+ rule__IfStatement__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__IfStatement__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__IfStatement__Group__1"
+
+
+ // $ANTLR start "rule__IfStatement__Group__1__Impl"
+ // InternalRBAModel.g:17376:1: rule__IfStatement__Group__1__Impl : ( 'IF' ) ;
+ public final void rule__IfStatement__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17380:1: ( ( 'IF' ) )
+ // InternalRBAModel.g:17381:1: ( 'IF' )
+ {
+ // InternalRBAModel.g:17381:1: ( 'IF' )
+ // InternalRBAModel.g:17382:2: 'IF'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getIfStatementAccess().getIFKeyword_1());
+ }
+ match(input,148,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getIfStatementAccess().getIFKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__IfStatement__Group__1__Impl"
+
+
+ // $ANTLR start "rule__IfStatement__Group__2"
+ // InternalRBAModel.g:17391:1: rule__IfStatement__Group__2 : rule__IfStatement__Group__2__Impl rule__IfStatement__Group__3 ;
+ public final void rule__IfStatement__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17395:1: ( rule__IfStatement__Group__2__Impl rule__IfStatement__Group__3 )
+ // InternalRBAModel.g:17396:2: rule__IfStatement__Group__2__Impl rule__IfStatement__Group__3
+ {
+ pushFollow(FOLLOW_121);
+ rule__IfStatement__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__IfStatement__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__IfStatement__Group__2"
+
+
+ // $ANTLR start "rule__IfStatement__Group__2__Impl"
+ // InternalRBAModel.g:17403:1: rule__IfStatement__Group__2__Impl : ( '(' ) ;
+ public final void rule__IfStatement__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17407:1: ( ( '(' ) )
+ // InternalRBAModel.g:17408:1: ( '(' )
+ {
+ // InternalRBAModel.g:17408:1: ( '(' )
+ // InternalRBAModel.g:17409:2: '('
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getIfStatementAccess().getLeftParenthesisKeyword_2());
+ }
+ match(input,107,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getIfStatementAccess().getLeftParenthesisKeyword_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__IfStatement__Group__2__Impl"
+
+
+ // $ANTLR start "rule__IfStatement__Group__3"
+ // InternalRBAModel.g:17418:1: rule__IfStatement__Group__3 : rule__IfStatement__Group__3__Impl rule__IfStatement__Group__4 ;
+ public final void rule__IfStatement__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17422:1: ( rule__IfStatement__Group__3__Impl rule__IfStatement__Group__4 )
+ // InternalRBAModel.g:17423:2: rule__IfStatement__Group__3__Impl rule__IfStatement__Group__4
+ {
+ pushFollow(FOLLOW_121);
+ rule__IfStatement__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__IfStatement__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__IfStatement__Group__3"
+
+
+ // $ANTLR start "rule__IfStatement__Group__3__Impl"
+ // InternalRBAModel.g:17430:1: rule__IfStatement__Group__3__Impl : ( ( rule__IfStatement__ConditionAssignment_3 )? ) ;
+ public final void rule__IfStatement__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17434:1: ( ( ( rule__IfStatement__ConditionAssignment_3 )? ) )
+ // InternalRBAModel.g:17435:1: ( ( rule__IfStatement__ConditionAssignment_3 )? )
+ {
+ // InternalRBAModel.g:17435:1: ( ( rule__IfStatement__ConditionAssignment_3 )? )
+ // InternalRBAModel.g:17436:2: ( rule__IfStatement__ConditionAssignment_3 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getIfStatementAccess().getConditionAssignment_3());
+ }
+ // InternalRBAModel.g:17437:2: ( rule__IfStatement__ConditionAssignment_3 )?
+ int alt71=2;
+ int LA71_0 = input.LA(1);
+
+ if ( ((LA71_0>=RULE_ID && LA71_0<=RULE_INT)||LA71_0==30||LA71_0==76||LA71_0==101||LA71_0==107||(LA71_0>=140 && LA71_0<=148)||(LA71_0>=151 && LA71_0<=152)||LA71_0==166) ) {
+ alt71=1;
+ }
+ switch (alt71) {
+ case 1 :
+ // InternalRBAModel.g:17437:3: rule__IfStatement__ConditionAssignment_3
+ {
+ pushFollow(FOLLOW_2);
+ rule__IfStatement__ConditionAssignment_3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getIfStatementAccess().getConditionAssignment_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__IfStatement__Group__3__Impl"
+
+
+ // $ANTLR start "rule__IfStatement__Group__4"
+ // InternalRBAModel.g:17445:1: rule__IfStatement__Group__4 : rule__IfStatement__Group__4__Impl rule__IfStatement__Group__5 ;
+ public final void rule__IfStatement__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17449:1: ( rule__IfStatement__Group__4__Impl rule__IfStatement__Group__5 )
+ // InternalRBAModel.g:17450:2: rule__IfStatement__Group__4__Impl rule__IfStatement__Group__5
+ {
+ pushFollow(FOLLOW_137);
+ rule__IfStatement__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__IfStatement__Group__5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__IfStatement__Group__4"
+
+
+ // $ANTLR start "rule__IfStatement__Group__4__Impl"
+ // InternalRBAModel.g:17457:1: rule__IfStatement__Group__4__Impl : ( ')' ) ;
+ public final void rule__IfStatement__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17461:1: ( ( ')' ) )
+ // InternalRBAModel.g:17462:1: ( ')' )
+ {
+ // InternalRBAModel.g:17462:1: ( ')' )
+ // InternalRBAModel.g:17463:2: ')'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getIfStatementAccess().getRightParenthesisKeyword_4());
+ }
+ match(input,108,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getIfStatementAccess().getRightParenthesisKeyword_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__IfStatement__Group__4__Impl"
+
+
+ // $ANTLR start "rule__IfStatement__Group__5"
+ // InternalRBAModel.g:17472:1: rule__IfStatement__Group__5 : rule__IfStatement__Group__5__Impl rule__IfStatement__Group__6 ;
+ public final void rule__IfStatement__Group__5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17476:1: ( rule__IfStatement__Group__5__Impl rule__IfStatement__Group__6 )
+ // InternalRBAModel.g:17477:2: rule__IfStatement__Group__5__Impl rule__IfStatement__Group__6
+ {
+ pushFollow(FOLLOW_137);
+ rule__IfStatement__Group__5__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__IfStatement__Group__6();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__IfStatement__Group__5"
+
+
+ // $ANTLR start "rule__IfStatement__Group__5__Impl"
+ // InternalRBAModel.g:17484:1: rule__IfStatement__Group__5__Impl : ( ( rule__IfStatement__Group_5__0 )? ) ;
+ public final void rule__IfStatement__Group__5__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17488:1: ( ( ( rule__IfStatement__Group_5__0 )? ) )
+ // InternalRBAModel.g:17489:1: ( ( rule__IfStatement__Group_5__0 )? )
+ {
+ // InternalRBAModel.g:17489:1: ( ( rule__IfStatement__Group_5__0 )? )
+ // InternalRBAModel.g:17490:2: ( rule__IfStatement__Group_5__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getIfStatementAccess().getGroup_5());
+ }
+ // InternalRBAModel.g:17491:2: ( rule__IfStatement__Group_5__0 )?
+ int alt72=2;
+ int LA72_0 = input.LA(1);
+
+ if ( (LA72_0==149) ) {
+ alt72=1;
+ }
+ switch (alt72) {
+ case 1 :
+ // InternalRBAModel.g:17491:3: rule__IfStatement__Group_5__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__IfStatement__Group_5__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getIfStatementAccess().getGroup_5());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__IfStatement__Group__5__Impl"
+
+
+ // $ANTLR start "rule__IfStatement__Group__6"
+ // InternalRBAModel.g:17499:1: rule__IfStatement__Group__6 : rule__IfStatement__Group__6__Impl ;
+ public final void rule__IfStatement__Group__6() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17503:1: ( rule__IfStatement__Group__6__Impl )
+ // InternalRBAModel.g:17504:2: rule__IfStatement__Group__6__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__IfStatement__Group__6__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__IfStatement__Group__6"
+
+
+ // $ANTLR start "rule__IfStatement__Group__6__Impl"
+ // InternalRBAModel.g:17510:1: rule__IfStatement__Group__6__Impl : ( ( rule__IfStatement__Group_6__0 )? ) ;
+ public final void rule__IfStatement__Group__6__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17514:1: ( ( ( rule__IfStatement__Group_6__0 )? ) )
+ // InternalRBAModel.g:17515:1: ( ( rule__IfStatement__Group_6__0 )? )
+ {
+ // InternalRBAModel.g:17515:1: ( ( rule__IfStatement__Group_6__0 )? )
+ // InternalRBAModel.g:17516:2: ( rule__IfStatement__Group_6__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getIfStatementAccess().getGroup_6());
+ }
+ // InternalRBAModel.g:17517:2: ( rule__IfStatement__Group_6__0 )?
+ int alt73=2;
+ int LA73_0 = input.LA(1);
+
+ if ( (LA73_0==150) ) {
+ int LA73_1 = input.LA(2);
+
+ if ( (synpred157_InternalRBAModel()) ) {
+ alt73=1;
+ }
+ }
+ switch (alt73) {
+ case 1 :
+ // InternalRBAModel.g:17517:3: rule__IfStatement__Group_6__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__IfStatement__Group_6__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getIfStatementAccess().getGroup_6());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__IfStatement__Group__6__Impl"
+
+
+ // $ANTLR start "rule__IfStatement__Group_5__0"
+ // InternalRBAModel.g:17526:1: rule__IfStatement__Group_5__0 : rule__IfStatement__Group_5__0__Impl rule__IfStatement__Group_5__1 ;
+ public final void rule__IfStatement__Group_5__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17530:1: ( rule__IfStatement__Group_5__0__Impl rule__IfStatement__Group_5__1 )
+ // InternalRBAModel.g:17531:2: rule__IfStatement__Group_5__0__Impl rule__IfStatement__Group_5__1
+ {
+ pushFollow(FOLLOW_33);
+ rule__IfStatement__Group_5__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__IfStatement__Group_5__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__IfStatement__Group_5__0"
+
+
+ // $ANTLR start "rule__IfStatement__Group_5__0__Impl"
+ // InternalRBAModel.g:17538:1: rule__IfStatement__Group_5__0__Impl : ( ( 'THEN' ) ) ;
+ public final void rule__IfStatement__Group_5__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17542:1: ( ( ( 'THEN' ) ) )
+ // InternalRBAModel.g:17543:1: ( ( 'THEN' ) )
+ {
+ // InternalRBAModel.g:17543:1: ( ( 'THEN' ) )
+ // InternalRBAModel.g:17544:2: ( 'THEN' )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getIfStatementAccess().getTHENKeyword_5_0());
+ }
+ // InternalRBAModel.g:17545:2: ( 'THEN' )
+ // InternalRBAModel.g:17545:3: 'THEN'
+ {
+ match(input,149,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getIfStatementAccess().getTHENKeyword_5_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__IfStatement__Group_5__0__Impl"
+
+
+ // $ANTLR start "rule__IfStatement__Group_5__1"
+ // InternalRBAModel.g:17553:1: rule__IfStatement__Group_5__1 : rule__IfStatement__Group_5__1__Impl ;
+ public final void rule__IfStatement__Group_5__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17557:1: ( rule__IfStatement__Group_5__1__Impl )
+ // InternalRBAModel.g:17558:2: rule__IfStatement__Group_5__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__IfStatement__Group_5__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__IfStatement__Group_5__1"
+
+
+ // $ANTLR start "rule__IfStatement__Group_5__1__Impl"
+ // InternalRBAModel.g:17564:1: rule__IfStatement__Group_5__1__Impl : ( ( rule__IfStatement__ThenExpressionAssignment_5_1 ) ) ;
+ public final void rule__IfStatement__Group_5__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17568:1: ( ( ( rule__IfStatement__ThenExpressionAssignment_5_1 ) ) )
+ // InternalRBAModel.g:17569:1: ( ( rule__IfStatement__ThenExpressionAssignment_5_1 ) )
+ {
+ // InternalRBAModel.g:17569:1: ( ( rule__IfStatement__ThenExpressionAssignment_5_1 ) )
+ // InternalRBAModel.g:17570:2: ( rule__IfStatement__ThenExpressionAssignment_5_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getIfStatementAccess().getThenExpressionAssignment_5_1());
+ }
+ // InternalRBAModel.g:17571:2: ( rule__IfStatement__ThenExpressionAssignment_5_1 )
+ // InternalRBAModel.g:17571:3: rule__IfStatement__ThenExpressionAssignment_5_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__IfStatement__ThenExpressionAssignment_5_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getIfStatementAccess().getThenExpressionAssignment_5_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__IfStatement__Group_5__1__Impl"
+
+
+ // $ANTLR start "rule__IfStatement__Group_6__0"
+ // InternalRBAModel.g:17580:1: rule__IfStatement__Group_6__0 : rule__IfStatement__Group_6__0__Impl rule__IfStatement__Group_6__1 ;
+ public final void rule__IfStatement__Group_6__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17584:1: ( rule__IfStatement__Group_6__0__Impl rule__IfStatement__Group_6__1 )
+ // InternalRBAModel.g:17585:2: rule__IfStatement__Group_6__0__Impl rule__IfStatement__Group_6__1
+ {
+ pushFollow(FOLLOW_33);
+ rule__IfStatement__Group_6__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__IfStatement__Group_6__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__IfStatement__Group_6__0"
+
+
+ // $ANTLR start "rule__IfStatement__Group_6__0__Impl"
+ // InternalRBAModel.g:17592:1: rule__IfStatement__Group_6__0__Impl : ( ( 'ELSE' ) ) ;
+ public final void rule__IfStatement__Group_6__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17596:1: ( ( ( 'ELSE' ) ) )
+ // InternalRBAModel.g:17597:1: ( ( 'ELSE' ) )
+ {
+ // InternalRBAModel.g:17597:1: ( ( 'ELSE' ) )
+ // InternalRBAModel.g:17598:2: ( 'ELSE' )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getIfStatementAccess().getELSEKeyword_6_0());
+ }
+ // InternalRBAModel.g:17599:2: ( 'ELSE' )
+ // InternalRBAModel.g:17599:3: 'ELSE'
+ {
+ match(input,150,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getIfStatementAccess().getELSEKeyword_6_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__IfStatement__Group_6__0__Impl"
+
+
+ // $ANTLR start "rule__IfStatement__Group_6__1"
+ // InternalRBAModel.g:17607:1: rule__IfStatement__Group_6__1 : rule__IfStatement__Group_6__1__Impl ;
+ public final void rule__IfStatement__Group_6__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17611:1: ( rule__IfStatement__Group_6__1__Impl )
+ // InternalRBAModel.g:17612:2: rule__IfStatement__Group_6__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__IfStatement__Group_6__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__IfStatement__Group_6__1"
+
+
+ // $ANTLR start "rule__IfStatement__Group_6__1__Impl"
+ // InternalRBAModel.g:17618:1: rule__IfStatement__Group_6__1__Impl : ( ( rule__IfStatement__ElseExpressionAssignment_6_1 ) ) ;
+ public final void rule__IfStatement__Group_6__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17622:1: ( ( ( rule__IfStatement__ElseExpressionAssignment_6_1 ) ) )
+ // InternalRBAModel.g:17623:1: ( ( rule__IfStatement__ElseExpressionAssignment_6_1 ) )
+ {
+ // InternalRBAModel.g:17623:1: ( ( rule__IfStatement__ElseExpressionAssignment_6_1 ) )
+ // InternalRBAModel.g:17624:2: ( rule__IfStatement__ElseExpressionAssignment_6_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getIfStatementAccess().getElseExpressionAssignment_6_1());
+ }
+ // InternalRBAModel.g:17625:2: ( rule__IfStatement__ElseExpressionAssignment_6_1 )
+ // InternalRBAModel.g:17625:3: rule__IfStatement__ElseExpressionAssignment_6_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__IfStatement__ElseExpressionAssignment_6_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getIfStatementAccess().getElseExpressionAssignment_6_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__IfStatement__Group_6__1__Impl"
+
+
+ // $ANTLR start "rule__ForAllOperator__Group__0"
+ // InternalRBAModel.g:17634:1: rule__ForAllOperator__Group__0 : rule__ForAllOperator__Group__0__Impl rule__ForAllOperator__Group__1 ;
+ public final void rule__ForAllOperator__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17638:1: ( rule__ForAllOperator__Group__0__Impl rule__ForAllOperator__Group__1 )
+ // InternalRBAModel.g:17639:2: rule__ForAllOperator__Group__0__Impl rule__ForAllOperator__Group__1
+ {
+ pushFollow(FOLLOW_138);
+ rule__ForAllOperator__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ForAllOperator__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ForAllOperator__Group__0"
+
+
+ // $ANTLR start "rule__ForAllOperator__Group__0__Impl"
+ // InternalRBAModel.g:17646:1: rule__ForAllOperator__Group__0__Impl : ( () ) ;
+ public final void rule__ForAllOperator__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17650:1: ( ( () ) )
+ // InternalRBAModel.g:17651:1: ( () )
+ {
+ // InternalRBAModel.g:17651:1: ( () )
+ // InternalRBAModel.g:17652:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getForAllOperatorAccess().getForAllOperatorAction_0());
+ }
+ // InternalRBAModel.g:17653:2: ()
+ // InternalRBAModel.g:17653:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getForAllOperatorAccess().getForAllOperatorAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ForAllOperator__Group__0__Impl"
+
+
+ // $ANTLR start "rule__ForAllOperator__Group__1"
+ // InternalRBAModel.g:17661:1: rule__ForAllOperator__Group__1 : rule__ForAllOperator__Group__1__Impl rule__ForAllOperator__Group__2 ;
+ public final void rule__ForAllOperator__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17665:1: ( rule__ForAllOperator__Group__1__Impl rule__ForAllOperator__Group__2 )
+ // InternalRBAModel.g:17666:2: rule__ForAllOperator__Group__1__Impl rule__ForAllOperator__Group__2
+ {
+ pushFollow(FOLLOW_33);
+ rule__ForAllOperator__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ForAllOperator__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ForAllOperator__Group__1"
+
+
+ // $ANTLR start "rule__ForAllOperator__Group__1__Impl"
+ // InternalRBAModel.g:17673:1: rule__ForAllOperator__Group__1__Impl : ( 'For-All' ) ;
+ public final void rule__ForAllOperator__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17677:1: ( ( 'For-All' ) )
+ // InternalRBAModel.g:17678:1: ( 'For-All' )
+ {
+ // InternalRBAModel.g:17678:1: ( 'For-All' )
+ // InternalRBAModel.g:17679:2: 'For-All'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getForAllOperatorAccess().getForAllKeyword_1());
+ }
+ match(input,151,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getForAllOperatorAccess().getForAllKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ForAllOperator__Group__1__Impl"
+
+
+ // $ANTLR start "rule__ForAllOperator__Group__2"
+ // InternalRBAModel.g:17688:1: rule__ForAllOperator__Group__2 : rule__ForAllOperator__Group__2__Impl rule__ForAllOperator__Group__3 ;
+ public final void rule__ForAllOperator__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17692:1: ( rule__ForAllOperator__Group__2__Impl rule__ForAllOperator__Group__3 )
+ // InternalRBAModel.g:17693:2: rule__ForAllOperator__Group__2__Impl rule__ForAllOperator__Group__3
+ {
+ pushFollow(FOLLOW_11);
+ rule__ForAllOperator__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ForAllOperator__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ForAllOperator__Group__2"
+
+
+ // $ANTLR start "rule__ForAllOperator__Group__2__Impl"
+ // InternalRBAModel.g:17700:1: rule__ForAllOperator__Group__2__Impl : ( ( rule__ForAllOperator__OperandAssignment_2 ) ) ;
+ public final void rule__ForAllOperator__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17704:1: ( ( ( rule__ForAllOperator__OperandAssignment_2 ) ) )
+ // InternalRBAModel.g:17705:1: ( ( rule__ForAllOperator__OperandAssignment_2 ) )
+ {
+ // InternalRBAModel.g:17705:1: ( ( rule__ForAllOperator__OperandAssignment_2 ) )
+ // InternalRBAModel.g:17706:2: ( rule__ForAllOperator__OperandAssignment_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getForAllOperatorAccess().getOperandAssignment_2());
+ }
+ // InternalRBAModel.g:17707:2: ( rule__ForAllOperator__OperandAssignment_2 )
+ // InternalRBAModel.g:17707:3: rule__ForAllOperator__OperandAssignment_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__ForAllOperator__OperandAssignment_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getForAllOperatorAccess().getOperandAssignment_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ForAllOperator__Group__2__Impl"
+
+
+ // $ANTLR start "rule__ForAllOperator__Group__3"
+ // InternalRBAModel.g:17715:1: rule__ForAllOperator__Group__3 : rule__ForAllOperator__Group__3__Impl ;
+ public final void rule__ForAllOperator__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17719:1: ( rule__ForAllOperator__Group__3__Impl )
+ // InternalRBAModel.g:17720:2: rule__ForAllOperator__Group__3__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__ForAllOperator__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ForAllOperator__Group__3"
+
+
+ // $ANTLR start "rule__ForAllOperator__Group__3__Impl"
+ // InternalRBAModel.g:17726:1: rule__ForAllOperator__Group__3__Impl : ( ( rule__ForAllOperator__LambdaAssignment_3 ) ) ;
+ public final void rule__ForAllOperator__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17730:1: ( ( ( rule__ForAllOperator__LambdaAssignment_3 ) ) )
+ // InternalRBAModel.g:17731:1: ( ( rule__ForAllOperator__LambdaAssignment_3 ) )
+ {
+ // InternalRBAModel.g:17731:1: ( ( rule__ForAllOperator__LambdaAssignment_3 ) )
+ // InternalRBAModel.g:17732:2: ( rule__ForAllOperator__LambdaAssignment_3 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getForAllOperatorAccess().getLambdaAssignment_3());
+ }
+ // InternalRBAModel.g:17733:2: ( rule__ForAllOperator__LambdaAssignment_3 )
+ // InternalRBAModel.g:17733:3: rule__ForAllOperator__LambdaAssignment_3
+ {
+ pushFollow(FOLLOW_2);
+ rule__ForAllOperator__LambdaAssignment_3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getForAllOperatorAccess().getLambdaAssignment_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ForAllOperator__Group__3__Impl"
+
+
+ // $ANTLR start "rule__ExistsOperator__Group__0"
+ // InternalRBAModel.g:17742:1: rule__ExistsOperator__Group__0 : rule__ExistsOperator__Group__0__Impl rule__ExistsOperator__Group__1 ;
+ public final void rule__ExistsOperator__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17746:1: ( rule__ExistsOperator__Group__0__Impl rule__ExistsOperator__Group__1 )
+ // InternalRBAModel.g:17747:2: rule__ExistsOperator__Group__0__Impl rule__ExistsOperator__Group__1
+ {
+ pushFollow(FOLLOW_139);
+ rule__ExistsOperator__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ExistsOperator__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ExistsOperator__Group__0"
+
+
+ // $ANTLR start "rule__ExistsOperator__Group__0__Impl"
+ // InternalRBAModel.g:17754:1: rule__ExistsOperator__Group__0__Impl : ( () ) ;
+ public final void rule__ExistsOperator__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17758:1: ( ( () ) )
+ // InternalRBAModel.g:17759:1: ( () )
+ {
+ // InternalRBAModel.g:17759:1: ( () )
+ // InternalRBAModel.g:17760:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getExistsOperatorAccess().getExistsOperatorAction_0());
+ }
+ // InternalRBAModel.g:17761:2: ()
+ // InternalRBAModel.g:17761:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getExistsOperatorAccess().getExistsOperatorAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ExistsOperator__Group__0__Impl"
+
+
+ // $ANTLR start "rule__ExistsOperator__Group__1"
+ // InternalRBAModel.g:17769:1: rule__ExistsOperator__Group__1 : rule__ExistsOperator__Group__1__Impl rule__ExistsOperator__Group__2 ;
+ public final void rule__ExistsOperator__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17773:1: ( rule__ExistsOperator__Group__1__Impl rule__ExistsOperator__Group__2 )
+ // InternalRBAModel.g:17774:2: rule__ExistsOperator__Group__1__Impl rule__ExistsOperator__Group__2
+ {
+ pushFollow(FOLLOW_33);
+ rule__ExistsOperator__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ExistsOperator__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ExistsOperator__Group__1"
+
+
+ // $ANTLR start "rule__ExistsOperator__Group__1__Impl"
+ // InternalRBAModel.g:17781:1: rule__ExistsOperator__Group__1__Impl : ( 'Exists' ) ;
+ public final void rule__ExistsOperator__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17785:1: ( ( 'Exists' ) )
+ // InternalRBAModel.g:17786:1: ( 'Exists' )
+ {
+ // InternalRBAModel.g:17786:1: ( 'Exists' )
+ // InternalRBAModel.g:17787:2: 'Exists'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getExistsOperatorAccess().getExistsKeyword_1());
+ }
+ match(input,152,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getExistsOperatorAccess().getExistsKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ExistsOperator__Group__1__Impl"
+
+
+ // $ANTLR start "rule__ExistsOperator__Group__2"
+ // InternalRBAModel.g:17796:1: rule__ExistsOperator__Group__2 : rule__ExistsOperator__Group__2__Impl rule__ExistsOperator__Group__3 ;
+ public final void rule__ExistsOperator__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17800:1: ( rule__ExistsOperator__Group__2__Impl rule__ExistsOperator__Group__3 )
+ // InternalRBAModel.g:17801:2: rule__ExistsOperator__Group__2__Impl rule__ExistsOperator__Group__3
+ {
+ pushFollow(FOLLOW_11);
+ rule__ExistsOperator__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ExistsOperator__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ExistsOperator__Group__2"
+
+
+ // $ANTLR start "rule__ExistsOperator__Group__2__Impl"
+ // InternalRBAModel.g:17808:1: rule__ExistsOperator__Group__2__Impl : ( ( rule__ExistsOperator__OperandAssignment_2 ) ) ;
+ public final void rule__ExistsOperator__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17812:1: ( ( ( rule__ExistsOperator__OperandAssignment_2 ) ) )
+ // InternalRBAModel.g:17813:1: ( ( rule__ExistsOperator__OperandAssignment_2 ) )
+ {
+ // InternalRBAModel.g:17813:1: ( ( rule__ExistsOperator__OperandAssignment_2 ) )
+ // InternalRBAModel.g:17814:2: ( rule__ExistsOperator__OperandAssignment_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getExistsOperatorAccess().getOperandAssignment_2());
+ }
+ // InternalRBAModel.g:17815:2: ( rule__ExistsOperator__OperandAssignment_2 )
+ // InternalRBAModel.g:17815:3: rule__ExistsOperator__OperandAssignment_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__ExistsOperator__OperandAssignment_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getExistsOperatorAccess().getOperandAssignment_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ExistsOperator__Group__2__Impl"
+
+
+ // $ANTLR start "rule__ExistsOperator__Group__3"
+ // InternalRBAModel.g:17823:1: rule__ExistsOperator__Group__3 : rule__ExistsOperator__Group__3__Impl ;
+ public final void rule__ExistsOperator__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17827:1: ( rule__ExistsOperator__Group__3__Impl )
+ // InternalRBAModel.g:17828:2: rule__ExistsOperator__Group__3__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__ExistsOperator__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ExistsOperator__Group__3"
+
+
+ // $ANTLR start "rule__ExistsOperator__Group__3__Impl"
+ // InternalRBAModel.g:17834:1: rule__ExistsOperator__Group__3__Impl : ( ( rule__ExistsOperator__LambdaAssignment_3 ) ) ;
+ public final void rule__ExistsOperator__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17838:1: ( ( ( rule__ExistsOperator__LambdaAssignment_3 ) ) )
+ // InternalRBAModel.g:17839:1: ( ( rule__ExistsOperator__LambdaAssignment_3 ) )
+ {
+ // InternalRBAModel.g:17839:1: ( ( rule__ExistsOperator__LambdaAssignment_3 ) )
+ // InternalRBAModel.g:17840:2: ( rule__ExistsOperator__LambdaAssignment_3 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getExistsOperatorAccess().getLambdaAssignment_3());
+ }
+ // InternalRBAModel.g:17841:2: ( rule__ExistsOperator__LambdaAssignment_3 )
+ // InternalRBAModel.g:17841:3: rule__ExistsOperator__LambdaAssignment_3
+ {
+ pushFollow(FOLLOW_2);
+ rule__ExistsOperator__LambdaAssignment_3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getExistsOperatorAccess().getLambdaAssignment_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ExistsOperator__Group__3__Impl"
+
+
+ // $ANTLR start "rule__LambdaExpression__Group__0"
+ // InternalRBAModel.g:17850:1: rule__LambdaExpression__Group__0 : rule__LambdaExpression__Group__0__Impl rule__LambdaExpression__Group__1 ;
+ public final void rule__LambdaExpression__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17854:1: ( rule__LambdaExpression__Group__0__Impl rule__LambdaExpression__Group__1 )
+ // InternalRBAModel.g:17855:2: rule__LambdaExpression__Group__0__Impl rule__LambdaExpression__Group__1
+ {
+ pushFollow(FOLLOW_140);
+ rule__LambdaExpression__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__LambdaExpression__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LambdaExpression__Group__0"
+
+
+ // $ANTLR start "rule__LambdaExpression__Group__0__Impl"
+ // InternalRBAModel.g:17862:1: rule__LambdaExpression__Group__0__Impl : ( ( rule__LambdaExpression__Group_0__0 ) ) ;
+ public final void rule__LambdaExpression__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17866:1: ( ( ( rule__LambdaExpression__Group_0__0 ) ) )
+ // InternalRBAModel.g:17867:1: ( ( rule__LambdaExpression__Group_0__0 ) )
+ {
+ // InternalRBAModel.g:17867:1: ( ( rule__LambdaExpression__Group_0__0 ) )
+ // InternalRBAModel.g:17868:2: ( rule__LambdaExpression__Group_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLambdaExpressionAccess().getGroup_0());
+ }
+ // InternalRBAModel.g:17869:2: ( rule__LambdaExpression__Group_0__0 )
+ // InternalRBAModel.g:17869:3: rule__LambdaExpression__Group_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__LambdaExpression__Group_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLambdaExpressionAccess().getGroup_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LambdaExpression__Group__0__Impl"
+
+
+ // $ANTLR start "rule__LambdaExpression__Group__1"
+ // InternalRBAModel.g:17877:1: rule__LambdaExpression__Group__1 : rule__LambdaExpression__Group__1__Impl rule__LambdaExpression__Group__2 ;
+ public final void rule__LambdaExpression__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17881:1: ( rule__LambdaExpression__Group__1__Impl rule__LambdaExpression__Group__2 )
+ // InternalRBAModel.g:17882:2: rule__LambdaExpression__Group__1__Impl rule__LambdaExpression__Group__2
+ {
+ pushFollow(FOLLOW_140);
+ rule__LambdaExpression__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__LambdaExpression__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LambdaExpression__Group__1"
+
+
+ // $ANTLR start "rule__LambdaExpression__Group__1__Impl"
+ // InternalRBAModel.g:17889:1: rule__LambdaExpression__Group__1__Impl : ( ( rule__LambdaExpression__Group_1__0 )? ) ;
+ public final void rule__LambdaExpression__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17893:1: ( ( ( rule__LambdaExpression__Group_1__0 )? ) )
+ // InternalRBAModel.g:17894:1: ( ( rule__LambdaExpression__Group_1__0 )? )
+ {
+ // InternalRBAModel.g:17894:1: ( ( rule__LambdaExpression__Group_1__0 )? )
+ // InternalRBAModel.g:17895:2: ( rule__LambdaExpression__Group_1__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLambdaExpressionAccess().getGroup_1());
+ }
+ // InternalRBAModel.g:17896:2: ( rule__LambdaExpression__Group_1__0 )?
+ int alt74=2;
+ alt74 = dfa74.predict(input);
+ switch (alt74) {
+ case 1 :
+ // InternalRBAModel.g:17896:3: rule__LambdaExpression__Group_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__LambdaExpression__Group_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLambdaExpressionAccess().getGroup_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LambdaExpression__Group__1__Impl"
+
+
+ // $ANTLR start "rule__LambdaExpression__Group__2"
+ // InternalRBAModel.g:17904:1: rule__LambdaExpression__Group__2 : rule__LambdaExpression__Group__2__Impl rule__LambdaExpression__Group__3 ;
+ public final void rule__LambdaExpression__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17908:1: ( rule__LambdaExpression__Group__2__Impl rule__LambdaExpression__Group__3 )
+ // InternalRBAModel.g:17909:2: rule__LambdaExpression__Group__2__Impl rule__LambdaExpression__Group__3
+ {
+ pushFollow(FOLLOW_140);
+ rule__LambdaExpression__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__LambdaExpression__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LambdaExpression__Group__2"
+
+
+ // $ANTLR start "rule__LambdaExpression__Group__2__Impl"
+ // InternalRBAModel.g:17916:1: rule__LambdaExpression__Group__2__Impl : ( ( rule__LambdaExpression__LetStatementsAssignment_2 )* ) ;
+ public final void rule__LambdaExpression__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17920:1: ( ( ( rule__LambdaExpression__LetStatementsAssignment_2 )* ) )
+ // InternalRBAModel.g:17921:1: ( ( rule__LambdaExpression__LetStatementsAssignment_2 )* )
+ {
+ // InternalRBAModel.g:17921:1: ( ( rule__LambdaExpression__LetStatementsAssignment_2 )* )
+ // InternalRBAModel.g:17922:2: ( rule__LambdaExpression__LetStatementsAssignment_2 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLambdaExpressionAccess().getLetStatementsAssignment_2());
+ }
+ // InternalRBAModel.g:17923:2: ( rule__LambdaExpression__LetStatementsAssignment_2 )*
+ loop75:
+ do {
+ int alt75=2;
+ int LA75_0 = input.LA(1);
+
+ if ( (LA75_0==154) ) {
+ alt75=1;
+ }
+
+
+ switch (alt75) {
+ case 1 :
+ // InternalRBAModel.g:17923:3: rule__LambdaExpression__LetStatementsAssignment_2
+ {
+ pushFollow(FOLLOW_141);
+ rule__LambdaExpression__LetStatementsAssignment_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop75;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLambdaExpressionAccess().getLetStatementsAssignment_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LambdaExpression__Group__2__Impl"
+
+
+ // $ANTLR start "rule__LambdaExpression__Group__3"
+ // InternalRBAModel.g:17931:1: rule__LambdaExpression__Group__3 : rule__LambdaExpression__Group__3__Impl rule__LambdaExpression__Group__4 ;
+ public final void rule__LambdaExpression__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17935:1: ( rule__LambdaExpression__Group__3__Impl rule__LambdaExpression__Group__4 )
+ // InternalRBAModel.g:17936:2: rule__LambdaExpression__Group__3__Impl rule__LambdaExpression__Group__4
+ {
+ pushFollow(FOLLOW_22);
+ rule__LambdaExpression__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__LambdaExpression__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LambdaExpression__Group__3"
+
+
+ // $ANTLR start "rule__LambdaExpression__Group__3__Impl"
+ // InternalRBAModel.g:17943:1: rule__LambdaExpression__Group__3__Impl : ( ( rule__LambdaExpression__BodyTextAssignment_3 ) ) ;
+ public final void rule__LambdaExpression__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17947:1: ( ( ( rule__LambdaExpression__BodyTextAssignment_3 ) ) )
+ // InternalRBAModel.g:17948:1: ( ( rule__LambdaExpression__BodyTextAssignment_3 ) )
+ {
+ // InternalRBAModel.g:17948:1: ( ( rule__LambdaExpression__BodyTextAssignment_3 ) )
+ // InternalRBAModel.g:17949:2: ( rule__LambdaExpression__BodyTextAssignment_3 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLambdaExpressionAccess().getBodyTextAssignment_3());
+ }
+ // InternalRBAModel.g:17950:2: ( rule__LambdaExpression__BodyTextAssignment_3 )
+ // InternalRBAModel.g:17950:3: rule__LambdaExpression__BodyTextAssignment_3
+ {
+ pushFollow(FOLLOW_2);
+ rule__LambdaExpression__BodyTextAssignment_3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLambdaExpressionAccess().getBodyTextAssignment_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LambdaExpression__Group__3__Impl"
+
+
+ // $ANTLR start "rule__LambdaExpression__Group__4"
+ // InternalRBAModel.g:17958:1: rule__LambdaExpression__Group__4 : rule__LambdaExpression__Group__4__Impl ;
+ public final void rule__LambdaExpression__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17962:1: ( rule__LambdaExpression__Group__4__Impl )
+ // InternalRBAModel.g:17963:2: rule__LambdaExpression__Group__4__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__LambdaExpression__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LambdaExpression__Group__4"
+
+
+ // $ANTLR start "rule__LambdaExpression__Group__4__Impl"
+ // InternalRBAModel.g:17969:1: rule__LambdaExpression__Group__4__Impl : ( '}' ) ;
+ public final void rule__LambdaExpression__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17973:1: ( ( '}' ) )
+ // InternalRBAModel.g:17974:1: ( '}' )
+ {
+ // InternalRBAModel.g:17974:1: ( '}' )
+ // InternalRBAModel.g:17975:2: '}'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLambdaExpressionAccess().getRightCurlyBracketKeyword_4());
+ }
+ match(input,102,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLambdaExpressionAccess().getRightCurlyBracketKeyword_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LambdaExpression__Group__4__Impl"
+
+
+ // $ANTLR start "rule__LambdaExpression__Group_0__0"
+ // InternalRBAModel.g:17985:1: rule__LambdaExpression__Group_0__0 : rule__LambdaExpression__Group_0__0__Impl ;
+ public final void rule__LambdaExpression__Group_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:17989:1: ( rule__LambdaExpression__Group_0__0__Impl )
+ // InternalRBAModel.g:17990:2: rule__LambdaExpression__Group_0__0__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__LambdaExpression__Group_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LambdaExpression__Group_0__0"
+
+
+ // $ANTLR start "rule__LambdaExpression__Group_0__0__Impl"
+ // InternalRBAModel.g:17996:1: rule__LambdaExpression__Group_0__0__Impl : ( ( rule__LambdaExpression__Group_0_0__0 ) ) ;
+ public final void rule__LambdaExpression__Group_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18000:1: ( ( ( rule__LambdaExpression__Group_0_0__0 ) ) )
+ // InternalRBAModel.g:18001:1: ( ( rule__LambdaExpression__Group_0_0__0 ) )
+ {
+ // InternalRBAModel.g:18001:1: ( ( rule__LambdaExpression__Group_0_0__0 ) )
+ // InternalRBAModel.g:18002:2: ( rule__LambdaExpression__Group_0_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLambdaExpressionAccess().getGroup_0_0());
+ }
+ // InternalRBAModel.g:18003:2: ( rule__LambdaExpression__Group_0_0__0 )
+ // InternalRBAModel.g:18003:3: rule__LambdaExpression__Group_0_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__LambdaExpression__Group_0_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLambdaExpressionAccess().getGroup_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LambdaExpression__Group_0__0__Impl"
+
+
+ // $ANTLR start "rule__LambdaExpression__Group_0_0__0"
+ // InternalRBAModel.g:18012:1: rule__LambdaExpression__Group_0_0__0 : rule__LambdaExpression__Group_0_0__0__Impl rule__LambdaExpression__Group_0_0__1 ;
+ public final void rule__LambdaExpression__Group_0_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18016:1: ( rule__LambdaExpression__Group_0_0__0__Impl rule__LambdaExpression__Group_0_0__1 )
+ // InternalRBAModel.g:18017:2: rule__LambdaExpression__Group_0_0__0__Impl rule__LambdaExpression__Group_0_0__1
+ {
+ pushFollow(FOLLOW_11);
+ rule__LambdaExpression__Group_0_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__LambdaExpression__Group_0_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LambdaExpression__Group_0_0__0"
+
+
+ // $ANTLR start "rule__LambdaExpression__Group_0_0__0__Impl"
+ // InternalRBAModel.g:18024:1: rule__LambdaExpression__Group_0_0__0__Impl : ( () ) ;
+ public final void rule__LambdaExpression__Group_0_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18028:1: ( ( () ) )
+ // InternalRBAModel.g:18029:1: ( () )
+ {
+ // InternalRBAModel.g:18029:1: ( () )
+ // InternalRBAModel.g:18030:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLambdaExpressionAccess().getLambdaExpressionAction_0_0_0());
+ }
+ // InternalRBAModel.g:18031:2: ()
+ // InternalRBAModel.g:18031:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLambdaExpressionAccess().getLambdaExpressionAction_0_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LambdaExpression__Group_0_0__0__Impl"
+
+
+ // $ANTLR start "rule__LambdaExpression__Group_0_0__1"
+ // InternalRBAModel.g:18039:1: rule__LambdaExpression__Group_0_0__1 : rule__LambdaExpression__Group_0_0__1__Impl ;
+ public final void rule__LambdaExpression__Group_0_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18043:1: ( rule__LambdaExpression__Group_0_0__1__Impl )
+ // InternalRBAModel.g:18044:2: rule__LambdaExpression__Group_0_0__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__LambdaExpression__Group_0_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LambdaExpression__Group_0_0__1"
+
+
+ // $ANTLR start "rule__LambdaExpression__Group_0_0__1__Impl"
+ // InternalRBAModel.g:18050:1: rule__LambdaExpression__Group_0_0__1__Impl : ( '{' ) ;
+ public final void rule__LambdaExpression__Group_0_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18054:1: ( ( '{' ) )
+ // InternalRBAModel.g:18055:1: ( '{' )
+ {
+ // InternalRBAModel.g:18055:1: ( '{' )
+ // InternalRBAModel.g:18056:2: '{'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLambdaExpressionAccess().getLeftCurlyBracketKeyword_0_0_1());
+ }
+ match(input,101,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLambdaExpressionAccess().getLeftCurlyBracketKeyword_0_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LambdaExpression__Group_0_0__1__Impl"
+
+
+ // $ANTLR start "rule__LambdaExpression__Group_1__0"
+ // InternalRBAModel.g:18066:1: rule__LambdaExpression__Group_1__0 : rule__LambdaExpression__Group_1__0__Impl rule__LambdaExpression__Group_1__1 ;
+ public final void rule__LambdaExpression__Group_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18070:1: ( rule__LambdaExpression__Group_1__0__Impl rule__LambdaExpression__Group_1__1 )
+ // InternalRBAModel.g:18071:2: rule__LambdaExpression__Group_1__0__Impl rule__LambdaExpression__Group_1__1
+ {
+ pushFollow(FOLLOW_142);
+ rule__LambdaExpression__Group_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__LambdaExpression__Group_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LambdaExpression__Group_1__0"
+
+
+ // $ANTLR start "rule__LambdaExpression__Group_1__0__Impl"
+ // InternalRBAModel.g:18078:1: rule__LambdaExpression__Group_1__0__Impl : ( ( rule__LambdaExpression__XAssignment_1_0 )? ) ;
+ public final void rule__LambdaExpression__Group_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18082:1: ( ( ( rule__LambdaExpression__XAssignment_1_0 )? ) )
+ // InternalRBAModel.g:18083:1: ( ( rule__LambdaExpression__XAssignment_1_0 )? )
+ {
+ // InternalRBAModel.g:18083:1: ( ( rule__LambdaExpression__XAssignment_1_0 )? )
+ // InternalRBAModel.g:18084:2: ( rule__LambdaExpression__XAssignment_1_0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLambdaExpressionAccess().getXAssignment_1_0());
+ }
+ // InternalRBAModel.g:18085:2: ( rule__LambdaExpression__XAssignment_1_0 )?
+ int alt76=2;
+ int LA76_0 = input.LA(1);
+
+ if ( (LA76_0==RULE_ID) ) {
+ alt76=1;
+ }
+ switch (alt76) {
+ case 1 :
+ // InternalRBAModel.g:18085:3: rule__LambdaExpression__XAssignment_1_0
+ {
+ pushFollow(FOLLOW_2);
+ rule__LambdaExpression__XAssignment_1_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLambdaExpressionAccess().getXAssignment_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LambdaExpression__Group_1__0__Impl"
+
+
+ // $ANTLR start "rule__LambdaExpression__Group_1__1"
+ // InternalRBAModel.g:18093:1: rule__LambdaExpression__Group_1__1 : rule__LambdaExpression__Group_1__1__Impl ;
+ public final void rule__LambdaExpression__Group_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18097:1: ( rule__LambdaExpression__Group_1__1__Impl )
+ // InternalRBAModel.g:18098:2: rule__LambdaExpression__Group_1__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__LambdaExpression__Group_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LambdaExpression__Group_1__1"
+
+
+ // $ANTLR start "rule__LambdaExpression__Group_1__1__Impl"
+ // InternalRBAModel.g:18104:1: rule__LambdaExpression__Group_1__1__Impl : ( '|' ) ;
+ public final void rule__LambdaExpression__Group_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18108:1: ( ( '|' ) )
+ // InternalRBAModel.g:18109:1: ( '|' )
+ {
+ // InternalRBAModel.g:18109:1: ( '|' )
+ // InternalRBAModel.g:18110:2: '|'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLambdaExpressionAccess().getVerticalLineKeyword_1_1());
+ }
+ match(input,153,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLambdaExpressionAccess().getVerticalLineKeyword_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LambdaExpression__Group_1__1__Impl"
+
+
+ // $ANTLR start "rule__Variable__Group__0"
+ // InternalRBAModel.g:18120:1: rule__Variable__Group__0 : rule__Variable__Group__0__Impl rule__Variable__Group__1 ;
+ public final void rule__Variable__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18124:1: ( rule__Variable__Group__0__Impl rule__Variable__Group__1 )
+ // InternalRBAModel.g:18125:2: rule__Variable__Group__0__Impl rule__Variable__Group__1
+ {
+ pushFollow(FOLLOW_7);
+ rule__Variable__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Variable__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Variable__Group__0"
+
+
+ // $ANTLR start "rule__Variable__Group__0__Impl"
+ // InternalRBAModel.g:18132:1: rule__Variable__Group__0__Impl : ( () ) ;
+ public final void rule__Variable__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18136:1: ( ( () ) )
+ // InternalRBAModel.g:18137:1: ( () )
+ {
+ // InternalRBAModel.g:18137:1: ( () )
+ // InternalRBAModel.g:18138:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVariableAccess().getVariableAction_0());
+ }
+ // InternalRBAModel.g:18139:2: ()
+ // InternalRBAModel.g:18139:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVariableAccess().getVariableAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Variable__Group__0__Impl"
+
+
+ // $ANTLR start "rule__Variable__Group__1"
+ // InternalRBAModel.g:18147:1: rule__Variable__Group__1 : rule__Variable__Group__1__Impl ;
+ public final void rule__Variable__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18151:1: ( rule__Variable__Group__1__Impl )
+ // InternalRBAModel.g:18152:2: rule__Variable__Group__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Variable__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Variable__Group__1"
+
+
+ // $ANTLR start "rule__Variable__Group__1__Impl"
+ // InternalRBAModel.g:18158:1: rule__Variable__Group__1__Impl : ( ( rule__Variable__NameAssignment_1 ) ) ;
+ public final void rule__Variable__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18162:1: ( ( ( rule__Variable__NameAssignment_1 ) ) )
+ // InternalRBAModel.g:18163:1: ( ( rule__Variable__NameAssignment_1 ) )
+ {
+ // InternalRBAModel.g:18163:1: ( ( rule__Variable__NameAssignment_1 ) )
+ // InternalRBAModel.g:18164:2: ( rule__Variable__NameAssignment_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVariableAccess().getNameAssignment_1());
+ }
+ // InternalRBAModel.g:18165:2: ( rule__Variable__NameAssignment_1 )
+ // InternalRBAModel.g:18165:3: rule__Variable__NameAssignment_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__Variable__NameAssignment_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVariableAccess().getNameAssignment_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Variable__Group__1__Impl"
+
+
+ // $ANTLR start "rule__CMemberFeatureReference__Group__0"
+ // InternalRBAModel.g:18174:1: rule__CMemberFeatureReference__Group__0 : rule__CMemberFeatureReference__Group__0__Impl rule__CMemberFeatureReference__Group__1 ;
+ public final void rule__CMemberFeatureReference__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18178:1: ( rule__CMemberFeatureReference__Group__0__Impl rule__CMemberFeatureReference__Group__1 )
+ // InternalRBAModel.g:18179:2: rule__CMemberFeatureReference__Group__0__Impl rule__CMemberFeatureReference__Group__1
+ {
+ pushFollow(FOLLOW_132);
+ rule__CMemberFeatureReference__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__CMemberFeatureReference__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CMemberFeatureReference__Group__0"
+
+
+ // $ANTLR start "rule__CMemberFeatureReference__Group__0__Impl"
+ // InternalRBAModel.g:18186:1: rule__CMemberFeatureReference__Group__0__Impl : ( () ) ;
+ public final void rule__CMemberFeatureReference__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18190:1: ( ( () ) )
+ // InternalRBAModel.g:18191:1: ( () )
+ {
+ // InternalRBAModel.g:18191:1: ( () )
+ // InternalRBAModel.g:18192:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCMemberFeatureReferenceAccess().getObjectReferenceAction_0());
+ }
+ // InternalRBAModel.g:18193:2: ()
+ // InternalRBAModel.g:18193:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCMemberFeatureReferenceAccess().getObjectReferenceAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CMemberFeatureReference__Group__0__Impl"
+
+
+ // $ANTLR start "rule__CMemberFeatureReference__Group__1"
+ // InternalRBAModel.g:18201:1: rule__CMemberFeatureReference__Group__1 : rule__CMemberFeatureReference__Group__1__Impl rule__CMemberFeatureReference__Group__2 ;
+ public final void rule__CMemberFeatureReference__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18205:1: ( rule__CMemberFeatureReference__Group__1__Impl rule__CMemberFeatureReference__Group__2 )
+ // InternalRBAModel.g:18206:2: rule__CMemberFeatureReference__Group__1__Impl rule__CMemberFeatureReference__Group__2
+ {
+ pushFollow(FOLLOW_69);
+ rule__CMemberFeatureReference__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__CMemberFeatureReference__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CMemberFeatureReference__Group__1"
+
+
+ // $ANTLR start "rule__CMemberFeatureReference__Group__1__Impl"
+ // InternalRBAModel.g:18213:1: rule__CMemberFeatureReference__Group__1__Impl : ( ( rule__CMemberFeatureReference__RefObjectAssignment_1 ) ) ;
+ public final void rule__CMemberFeatureReference__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18217:1: ( ( ( rule__CMemberFeatureReference__RefObjectAssignment_1 ) ) )
+ // InternalRBAModel.g:18218:1: ( ( rule__CMemberFeatureReference__RefObjectAssignment_1 ) )
+ {
+ // InternalRBAModel.g:18218:1: ( ( rule__CMemberFeatureReference__RefObjectAssignment_1 ) )
+ // InternalRBAModel.g:18219:2: ( rule__CMemberFeatureReference__RefObjectAssignment_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCMemberFeatureReferenceAccess().getRefObjectAssignment_1());
+ }
+ // InternalRBAModel.g:18220:2: ( rule__CMemberFeatureReference__RefObjectAssignment_1 )
+ // InternalRBAModel.g:18220:3: rule__CMemberFeatureReference__RefObjectAssignment_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__CMemberFeatureReference__RefObjectAssignment_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCMemberFeatureReferenceAccess().getRefObjectAssignment_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CMemberFeatureReference__Group__1__Impl"
+
+
+ // $ANTLR start "rule__CMemberFeatureReference__Group__2"
+ // InternalRBAModel.g:18228:1: rule__CMemberFeatureReference__Group__2 : rule__CMemberFeatureReference__Group__2__Impl ;
+ public final void rule__CMemberFeatureReference__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18232:1: ( rule__CMemberFeatureReference__Group__2__Impl )
+ // InternalRBAModel.g:18233:2: rule__CMemberFeatureReference__Group__2__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__CMemberFeatureReference__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CMemberFeatureReference__Group__2"
+
+
+ // $ANTLR start "rule__CMemberFeatureReference__Group__2__Impl"
+ // InternalRBAModel.g:18239:1: rule__CMemberFeatureReference__Group__2__Impl : ( ( rule__CMemberFeatureReference__Group_2__0 )* ) ;
+ public final void rule__CMemberFeatureReference__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18243:1: ( ( ( rule__CMemberFeatureReference__Group_2__0 )* ) )
+ // InternalRBAModel.g:18244:1: ( ( rule__CMemberFeatureReference__Group_2__0 )* )
+ {
+ // InternalRBAModel.g:18244:1: ( ( rule__CMemberFeatureReference__Group_2__0 )* )
+ // InternalRBAModel.g:18245:2: ( rule__CMemberFeatureReference__Group_2__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCMemberFeatureReferenceAccess().getGroup_2());
+ }
+ // InternalRBAModel.g:18246:2: ( rule__CMemberFeatureReference__Group_2__0 )*
+ loop77:
+ do {
+ int alt77=2;
+ int LA77_0 = input.LA(1);
+
+ if ( (LA77_0==135) ) {
+ int LA77_2 = input.LA(2);
+
+ if ( (LA77_2==RULE_ID) ) {
+ alt77=1;
+ }
+
+
+ }
+
+
+ switch (alt77) {
+ case 1 :
+ // InternalRBAModel.g:18246:3: rule__CMemberFeatureReference__Group_2__0
+ {
+ pushFollow(FOLLOW_70);
+ rule__CMemberFeatureReference__Group_2__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop77;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCMemberFeatureReferenceAccess().getGroup_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CMemberFeatureReference__Group__2__Impl"
+
+
+ // $ANTLR start "rule__CMemberFeatureReference__Group_2__0"
+ // InternalRBAModel.g:18255:1: rule__CMemberFeatureReference__Group_2__0 : rule__CMemberFeatureReference__Group_2__0__Impl rule__CMemberFeatureReference__Group_2__1 ;
+ public final void rule__CMemberFeatureReference__Group_2__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18259:1: ( rule__CMemberFeatureReference__Group_2__0__Impl rule__CMemberFeatureReference__Group_2__1 )
+ // InternalRBAModel.g:18260:2: rule__CMemberFeatureReference__Group_2__0__Impl rule__CMemberFeatureReference__Group_2__1
+ {
+ pushFollow(FOLLOW_69);
+ rule__CMemberFeatureReference__Group_2__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__CMemberFeatureReference__Group_2__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CMemberFeatureReference__Group_2__0"
+
+
+ // $ANTLR start "rule__CMemberFeatureReference__Group_2__0__Impl"
+ // InternalRBAModel.g:18267:1: rule__CMemberFeatureReference__Group_2__0__Impl : ( () ) ;
+ public final void rule__CMemberFeatureReference__Group_2__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18271:1: ( ( () ) )
+ // InternalRBAModel.g:18272:1: ( () )
+ {
+ // InternalRBAModel.g:18272:1: ( () )
+ // InternalRBAModel.g:18273:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCMemberFeatureReferenceAccess().getMemberFeatureReferenceOperandAction_2_0());
+ }
+ // InternalRBAModel.g:18274:2: ()
+ // InternalRBAModel.g:18274:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCMemberFeatureReferenceAccess().getMemberFeatureReferenceOperandAction_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CMemberFeatureReference__Group_2__0__Impl"
+
+
+ // $ANTLR start "rule__CMemberFeatureReference__Group_2__1"
+ // InternalRBAModel.g:18282:1: rule__CMemberFeatureReference__Group_2__1 : rule__CMemberFeatureReference__Group_2__1__Impl rule__CMemberFeatureReference__Group_2__2 ;
+ public final void rule__CMemberFeatureReference__Group_2__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18286:1: ( rule__CMemberFeatureReference__Group_2__1__Impl rule__CMemberFeatureReference__Group_2__2 )
+ // InternalRBAModel.g:18287:2: rule__CMemberFeatureReference__Group_2__1__Impl rule__CMemberFeatureReference__Group_2__2
+ {
+ pushFollow(FOLLOW_7);
+ rule__CMemberFeatureReference__Group_2__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__CMemberFeatureReference__Group_2__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CMemberFeatureReference__Group_2__1"
+
+
+ // $ANTLR start "rule__CMemberFeatureReference__Group_2__1__Impl"
+ // InternalRBAModel.g:18294:1: rule__CMemberFeatureReference__Group_2__1__Impl : ( '.' ) ;
+ public final void rule__CMemberFeatureReference__Group_2__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18298:1: ( ( '.' ) )
+ // InternalRBAModel.g:18299:1: ( '.' )
+ {
+ // InternalRBAModel.g:18299:1: ( '.' )
+ // InternalRBAModel.g:18300:2: '.'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCMemberFeatureReferenceAccess().getFullStopKeyword_2_1());
+ }
+ match(input,135,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCMemberFeatureReferenceAccess().getFullStopKeyword_2_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CMemberFeatureReference__Group_2__1__Impl"
+
+
+ // $ANTLR start "rule__CMemberFeatureReference__Group_2__2"
+ // InternalRBAModel.g:18309:1: rule__CMemberFeatureReference__Group_2__2 : rule__CMemberFeatureReference__Group_2__2__Impl ;
+ public final void rule__CMemberFeatureReference__Group_2__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18313:1: ( rule__CMemberFeatureReference__Group_2__2__Impl )
+ // InternalRBAModel.g:18314:2: rule__CMemberFeatureReference__Group_2__2__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__CMemberFeatureReference__Group_2__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CMemberFeatureReference__Group_2__2"
+
+
+ // $ANTLR start "rule__CMemberFeatureReference__Group_2__2__Impl"
+ // InternalRBAModel.g:18320:1: rule__CMemberFeatureReference__Group_2__2__Impl : ( ( rule__CMemberFeatureReference__RefObjectAssignment_2_2 ) ) ;
+ public final void rule__CMemberFeatureReference__Group_2__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18324:1: ( ( ( rule__CMemberFeatureReference__RefObjectAssignment_2_2 ) ) )
+ // InternalRBAModel.g:18325:1: ( ( rule__CMemberFeatureReference__RefObjectAssignment_2_2 ) )
+ {
+ // InternalRBAModel.g:18325:1: ( ( rule__CMemberFeatureReference__RefObjectAssignment_2_2 ) )
+ // InternalRBAModel.g:18326:2: ( rule__CMemberFeatureReference__RefObjectAssignment_2_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCMemberFeatureReferenceAccess().getRefObjectAssignment_2_2());
+ }
+ // InternalRBAModel.g:18327:2: ( rule__CMemberFeatureReference__RefObjectAssignment_2_2 )
+ // InternalRBAModel.g:18327:3: rule__CMemberFeatureReference__RefObjectAssignment_2_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__CMemberFeatureReference__RefObjectAssignment_2_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCMemberFeatureReferenceAccess().getRefObjectAssignment_2_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CMemberFeatureReference__Group_2__2__Impl"
+
+
+ // $ANTLR start "rule__LetStatement__Group__0"
+ // InternalRBAModel.g:18336:1: rule__LetStatement__Group__0 : rule__LetStatement__Group__0__Impl rule__LetStatement__Group__1 ;
+ public final void rule__LetStatement__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18340:1: ( rule__LetStatement__Group__0__Impl rule__LetStatement__Group__1 )
+ // InternalRBAModel.g:18341:2: rule__LetStatement__Group__0__Impl rule__LetStatement__Group__1
+ {
+ pushFollow(FOLLOW_143);
+ rule__LetStatement__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__LetStatement__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LetStatement__Group__0"
+
+
+ // $ANTLR start "rule__LetStatement__Group__0__Impl"
+ // InternalRBAModel.g:18348:1: rule__LetStatement__Group__0__Impl : ( () ) ;
+ public final void rule__LetStatement__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18352:1: ( ( () ) )
+ // InternalRBAModel.g:18353:1: ( () )
+ {
+ // InternalRBAModel.g:18353:1: ( () )
+ // InternalRBAModel.g:18354:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLetStatementAccess().getLetStatementAction_0());
+ }
+ // InternalRBAModel.g:18355:2: ()
+ // InternalRBAModel.g:18355:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLetStatementAccess().getLetStatementAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LetStatement__Group__0__Impl"
+
+
+ // $ANTLR start "rule__LetStatement__Group__1"
+ // InternalRBAModel.g:18363:1: rule__LetStatement__Group__1 : rule__LetStatement__Group__1__Impl rule__LetStatement__Group__2 ;
+ public final void rule__LetStatement__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18367:1: ( rule__LetStatement__Group__1__Impl rule__LetStatement__Group__2 )
+ // InternalRBAModel.g:18368:2: rule__LetStatement__Group__1__Impl rule__LetStatement__Group__2
+ {
+ pushFollow(FOLLOW_7);
+ rule__LetStatement__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__LetStatement__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LetStatement__Group__1"
+
+
+ // $ANTLR start "rule__LetStatement__Group__1__Impl"
+ // InternalRBAModel.g:18375:1: rule__LetStatement__Group__1__Impl : ( 'let' ) ;
+ public final void rule__LetStatement__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18379:1: ( ( 'let' ) )
+ // InternalRBAModel.g:18380:1: ( 'let' )
+ {
+ // InternalRBAModel.g:18380:1: ( 'let' )
+ // InternalRBAModel.g:18381:2: 'let'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLetStatementAccess().getLetKeyword_1());
+ }
+ match(input,154,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLetStatementAccess().getLetKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LetStatement__Group__1__Impl"
+
+
+ // $ANTLR start "rule__LetStatement__Group__2"
+ // InternalRBAModel.g:18390:1: rule__LetStatement__Group__2 : rule__LetStatement__Group__2__Impl rule__LetStatement__Group__3 ;
+ public final void rule__LetStatement__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18394:1: ( rule__LetStatement__Group__2__Impl rule__LetStatement__Group__3 )
+ // InternalRBAModel.g:18395:2: rule__LetStatement__Group__2__Impl rule__LetStatement__Group__3
+ {
+ pushFollow(FOLLOW_66);
+ rule__LetStatement__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__LetStatement__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LetStatement__Group__2"
+
+
+ // $ANTLR start "rule__LetStatement__Group__2__Impl"
+ // InternalRBAModel.g:18402:1: rule__LetStatement__Group__2__Impl : ( ( rule__LetStatement__VariableAssignment_2 ) ) ;
+ public final void rule__LetStatement__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18406:1: ( ( ( rule__LetStatement__VariableAssignment_2 ) ) )
+ // InternalRBAModel.g:18407:1: ( ( rule__LetStatement__VariableAssignment_2 ) )
+ {
+ // InternalRBAModel.g:18407:1: ( ( rule__LetStatement__VariableAssignment_2 ) )
+ // InternalRBAModel.g:18408:2: ( rule__LetStatement__VariableAssignment_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLetStatementAccess().getVariableAssignment_2());
+ }
+ // InternalRBAModel.g:18409:2: ( rule__LetStatement__VariableAssignment_2 )
+ // InternalRBAModel.g:18409:3: rule__LetStatement__VariableAssignment_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__LetStatement__VariableAssignment_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLetStatementAccess().getVariableAssignment_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LetStatement__Group__2__Impl"
+
+
+ // $ANTLR start "rule__LetStatement__Group__3"
+ // InternalRBAModel.g:18417:1: rule__LetStatement__Group__3 : rule__LetStatement__Group__3__Impl ;
+ public final void rule__LetStatement__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18421:1: ( rule__LetStatement__Group__3__Impl )
+ // InternalRBAModel.g:18422:2: rule__LetStatement__Group__3__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__LetStatement__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LetStatement__Group__3"
+
+
+ // $ANTLR start "rule__LetStatement__Group__3__Impl"
+ // InternalRBAModel.g:18428:1: rule__LetStatement__Group__3__Impl : ( ( rule__LetStatement__Group_3__0 )? ) ;
+ public final void rule__LetStatement__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18432:1: ( ( ( rule__LetStatement__Group_3__0 )? ) )
+ // InternalRBAModel.g:18433:1: ( ( rule__LetStatement__Group_3__0 )? )
+ {
+ // InternalRBAModel.g:18433:1: ( ( rule__LetStatement__Group_3__0 )? )
+ // InternalRBAModel.g:18434:2: ( rule__LetStatement__Group_3__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLetStatementAccess().getGroup_3());
+ }
+ // InternalRBAModel.g:18435:2: ( rule__LetStatement__Group_3__0 )?
+ int alt78=2;
+ int LA78_0 = input.LA(1);
+
+ if ( (LA78_0==20) ) {
+ alt78=1;
+ }
+ switch (alt78) {
+ case 1 :
+ // InternalRBAModel.g:18435:3: rule__LetStatement__Group_3__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__LetStatement__Group_3__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLetStatementAccess().getGroup_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LetStatement__Group__3__Impl"
+
+
+ // $ANTLR start "rule__LetStatement__Group_3__0"
+ // InternalRBAModel.g:18444:1: rule__LetStatement__Group_3__0 : rule__LetStatement__Group_3__0__Impl rule__LetStatement__Group_3__1 ;
+ public final void rule__LetStatement__Group_3__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18448:1: ( rule__LetStatement__Group_3__0__Impl rule__LetStatement__Group_3__1 )
+ // InternalRBAModel.g:18449:2: rule__LetStatement__Group_3__0__Impl rule__LetStatement__Group_3__1
+ {
+ pushFollow(FOLLOW_33);
+ rule__LetStatement__Group_3__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__LetStatement__Group_3__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LetStatement__Group_3__0"
+
+
+ // $ANTLR start "rule__LetStatement__Group_3__0__Impl"
+ // InternalRBAModel.g:18456:1: rule__LetStatement__Group_3__0__Impl : ( '=' ) ;
+ public final void rule__LetStatement__Group_3__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18460:1: ( ( '=' ) )
+ // InternalRBAModel.g:18461:1: ( '=' )
+ {
+ // InternalRBAModel.g:18461:1: ( '=' )
+ // InternalRBAModel.g:18462:2: '='
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLetStatementAccess().getEqualsSignKeyword_3_0());
+ }
+ match(input,20,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLetStatementAccess().getEqualsSignKeyword_3_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LetStatement__Group_3__0__Impl"
+
+
+ // $ANTLR start "rule__LetStatement__Group_3__1"
+ // InternalRBAModel.g:18471:1: rule__LetStatement__Group_3__1 : rule__LetStatement__Group_3__1__Impl ;
+ public final void rule__LetStatement__Group_3__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18475:1: ( rule__LetStatement__Group_3__1__Impl )
+ // InternalRBAModel.g:18476:2: rule__LetStatement__Group_3__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__LetStatement__Group_3__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LetStatement__Group_3__1"
+
+
+ // $ANTLR start "rule__LetStatement__Group_3__1__Impl"
+ // InternalRBAModel.g:18482:1: rule__LetStatement__Group_3__1__Impl : ( ( rule__LetStatement__BodyAssignment_3_1 ) ) ;
+ public final void rule__LetStatement__Group_3__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18486:1: ( ( ( rule__LetStatement__BodyAssignment_3_1 ) ) )
+ // InternalRBAModel.g:18487:1: ( ( rule__LetStatement__BodyAssignment_3_1 ) )
+ {
+ // InternalRBAModel.g:18487:1: ( ( rule__LetStatement__BodyAssignment_3_1 ) )
+ // InternalRBAModel.g:18488:2: ( rule__LetStatement__BodyAssignment_3_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLetStatementAccess().getBodyAssignment_3_1());
+ }
+ // InternalRBAModel.g:18489:2: ( rule__LetStatement__BodyAssignment_3_1 )
+ // InternalRBAModel.g:18489:3: rule__LetStatement__BodyAssignment_3_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__LetStatement__BodyAssignment_3_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLetStatementAccess().getBodyAssignment_3_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LetStatement__Group_3__1__Impl"
+
+
+ // $ANTLR start "rule__ComplexExpression__Group__0"
+ // InternalRBAModel.g:18498:1: rule__ComplexExpression__Group__0 : rule__ComplexExpression__Group__0__Impl rule__ComplexExpression__Group__1 ;
+ public final void rule__ComplexExpression__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18502:1: ( rule__ComplexExpression__Group__0__Impl rule__ComplexExpression__Group__1 )
+ // InternalRBAModel.g:18503:2: rule__ComplexExpression__Group__0__Impl rule__ComplexExpression__Group__1
+ {
+ pushFollow(FOLLOW_33);
+ rule__ComplexExpression__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ComplexExpression__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ComplexExpression__Group__0"
+
+
+ // $ANTLR start "rule__ComplexExpression__Group__0__Impl"
+ // InternalRBAModel.g:18510:1: rule__ComplexExpression__Group__0__Impl : ( () ) ;
+ public final void rule__ComplexExpression__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18514:1: ( ( () ) )
+ // InternalRBAModel.g:18515:1: ( () )
+ {
+ // InternalRBAModel.g:18515:1: ( () )
+ // InternalRBAModel.g:18516:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getComplexExpressionAccess().getComplexExpressionAction_0());
+ }
+ // InternalRBAModel.g:18517:2: ()
+ // InternalRBAModel.g:18517:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getComplexExpressionAccess().getComplexExpressionAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ComplexExpression__Group__0__Impl"
+
+
+ // $ANTLR start "rule__ComplexExpression__Group__1"
+ // InternalRBAModel.g:18525:1: rule__ComplexExpression__Group__1 : rule__ComplexExpression__Group__1__Impl rule__ComplexExpression__Group__2 ;
+ public final void rule__ComplexExpression__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18529:1: ( rule__ComplexExpression__Group__1__Impl rule__ComplexExpression__Group__2 )
+ // InternalRBAModel.g:18530:2: rule__ComplexExpression__Group__1__Impl rule__ComplexExpression__Group__2
+ {
+ pushFollow(FOLLOW_33);
+ rule__ComplexExpression__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ComplexExpression__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ComplexExpression__Group__1"
+
+
+ // $ANTLR start "rule__ComplexExpression__Group__1__Impl"
+ // InternalRBAModel.g:18537:1: rule__ComplexExpression__Group__1__Impl : ( ( rule__ComplexExpression__LetStatementsAssignment_1 )* ) ;
+ public final void rule__ComplexExpression__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18541:1: ( ( ( rule__ComplexExpression__LetStatementsAssignment_1 )* ) )
+ // InternalRBAModel.g:18542:1: ( ( rule__ComplexExpression__LetStatementsAssignment_1 )* )
+ {
+ // InternalRBAModel.g:18542:1: ( ( rule__ComplexExpression__LetStatementsAssignment_1 )* )
+ // InternalRBAModel.g:18543:2: ( rule__ComplexExpression__LetStatementsAssignment_1 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getComplexExpressionAccess().getLetStatementsAssignment_1());
+ }
+ // InternalRBAModel.g:18544:2: ( rule__ComplexExpression__LetStatementsAssignment_1 )*
+ loop79:
+ do {
+ int alt79=2;
+ int LA79_0 = input.LA(1);
+
+ if ( (LA79_0==154) ) {
+ alt79=1;
+ }
+
+
+ switch (alt79) {
+ case 1 :
+ // InternalRBAModel.g:18544:3: rule__ComplexExpression__LetStatementsAssignment_1
+ {
+ pushFollow(FOLLOW_141);
+ rule__ComplexExpression__LetStatementsAssignment_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop79;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getComplexExpressionAccess().getLetStatementsAssignment_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ComplexExpression__Group__1__Impl"
+
+
+ // $ANTLR start "rule__ComplexExpression__Group__2"
+ // InternalRBAModel.g:18552:1: rule__ComplexExpression__Group__2 : rule__ComplexExpression__Group__2__Impl ;
+ public final void rule__ComplexExpression__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18556:1: ( rule__ComplexExpression__Group__2__Impl )
+ // InternalRBAModel.g:18557:2: rule__ComplexExpression__Group__2__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__ComplexExpression__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ComplexExpression__Group__2"
+
+
+ // $ANTLR start "rule__ComplexExpression__Group__2__Impl"
+ // InternalRBAModel.g:18563:1: rule__ComplexExpression__Group__2__Impl : ( ( rule__ComplexExpression__OtherExpressionAssignment_2 ) ) ;
+ public final void rule__ComplexExpression__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18567:1: ( ( ( rule__ComplexExpression__OtherExpressionAssignment_2 ) ) )
+ // InternalRBAModel.g:18568:1: ( ( rule__ComplexExpression__OtherExpressionAssignment_2 ) )
+ {
+ // InternalRBAModel.g:18568:1: ( ( rule__ComplexExpression__OtherExpressionAssignment_2 ) )
+ // InternalRBAModel.g:18569:2: ( rule__ComplexExpression__OtherExpressionAssignment_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getComplexExpressionAccess().getOtherExpressionAssignment_2());
+ }
+ // InternalRBAModel.g:18570:2: ( rule__ComplexExpression__OtherExpressionAssignment_2 )
+ // InternalRBAModel.g:18570:3: rule__ComplexExpression__OtherExpressionAssignment_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__ComplexExpression__OtherExpressionAssignment_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getComplexExpressionAccess().getOtherExpressionAssignment_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ComplexExpression__Group__2__Impl"
+
+
+ // $ANTLR start "rule__LoserTypeExpression__Group__0"
+ // InternalRBAModel.g:18579:1: rule__LoserTypeExpression__Group__0 : rule__LoserTypeExpression__Group__0__Impl rule__LoserTypeExpression__Group__1 ;
+ public final void rule__LoserTypeExpression__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18583:1: ( rule__LoserTypeExpression__Group__0__Impl rule__LoserTypeExpression__Group__1 )
+ // InternalRBAModel.g:18584:2: rule__LoserTypeExpression__Group__0__Impl rule__LoserTypeExpression__Group__1
+ {
+ pushFollow(FOLLOW_37);
+ rule__LoserTypeExpression__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__LoserTypeExpression__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LoserTypeExpression__Group__0"
+
+
+ // $ANTLR start "rule__LoserTypeExpression__Group__0__Impl"
+ // InternalRBAModel.g:18591:1: rule__LoserTypeExpression__Group__0__Impl : ( () ) ;
+ public final void rule__LoserTypeExpression__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18595:1: ( ( () ) )
+ // InternalRBAModel.g:18596:1: ( () )
+ {
+ // InternalRBAModel.g:18596:1: ( () )
+ // InternalRBAModel.g:18597:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLoserTypeExpressionAccess().getLoserTypeExpressionAction_0());
+ }
+ // InternalRBAModel.g:18598:2: ()
+ // InternalRBAModel.g:18598:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLoserTypeExpressionAccess().getLoserTypeExpressionAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LoserTypeExpression__Group__0__Impl"
+
+
+ // $ANTLR start "rule__LoserTypeExpression__Group__1"
+ // InternalRBAModel.g:18606:1: rule__LoserTypeExpression__Group__1 : rule__LoserTypeExpression__Group__1__Impl ;
+ public final void rule__LoserTypeExpression__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18610:1: ( rule__LoserTypeExpression__Group__1__Impl )
+ // InternalRBAModel.g:18611:2: rule__LoserTypeExpression__Group__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__LoserTypeExpression__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LoserTypeExpression__Group__1"
+
+
+ // $ANTLR start "rule__LoserTypeExpression__Group__1__Impl"
+ // InternalRBAModel.g:18617:1: rule__LoserTypeExpression__Group__1__Impl : ( ( rule__LoserTypeExpression__ValueAssignment_1 ) ) ;
+ public final void rule__LoserTypeExpression__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18621:1: ( ( ( rule__LoserTypeExpression__ValueAssignment_1 ) ) )
+ // InternalRBAModel.g:18622:1: ( ( rule__LoserTypeExpression__ValueAssignment_1 ) )
+ {
+ // InternalRBAModel.g:18622:1: ( ( rule__LoserTypeExpression__ValueAssignment_1 ) )
+ // InternalRBAModel.g:18623:2: ( rule__LoserTypeExpression__ValueAssignment_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLoserTypeExpressionAccess().getValueAssignment_1());
+ }
+ // InternalRBAModel.g:18624:2: ( rule__LoserTypeExpression__ValueAssignment_1 )
+ // InternalRBAModel.g:18624:3: rule__LoserTypeExpression__ValueAssignment_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__LoserTypeExpression__ValueAssignment_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLoserTypeExpressionAccess().getValueAssignment_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LoserTypeExpression__Group__1__Impl"
+
+
+ // $ANTLR start "rule__ArbitrationPolicyExpression__Group__0"
+ // InternalRBAModel.g:18633:1: rule__ArbitrationPolicyExpression__Group__0 : rule__ArbitrationPolicyExpression__Group__0__Impl rule__ArbitrationPolicyExpression__Group__1 ;
+ public final void rule__ArbitrationPolicyExpression__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18637:1: ( rule__ArbitrationPolicyExpression__Group__0__Impl rule__ArbitrationPolicyExpression__Group__1 )
+ // InternalRBAModel.g:18638:2: rule__ArbitrationPolicyExpression__Group__0__Impl rule__ArbitrationPolicyExpression__Group__1
+ {
+ pushFollow(FOLLOW_52);
+ rule__ArbitrationPolicyExpression__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ArbitrationPolicyExpression__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ArbitrationPolicyExpression__Group__0"
+
+
+ // $ANTLR start "rule__ArbitrationPolicyExpression__Group__0__Impl"
+ // InternalRBAModel.g:18645:1: rule__ArbitrationPolicyExpression__Group__0__Impl : ( () ) ;
+ public final void rule__ArbitrationPolicyExpression__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18649:1: ( ( () ) )
+ // InternalRBAModel.g:18650:1: ( () )
+ {
+ // InternalRBAModel.g:18650:1: ( () )
+ // InternalRBAModel.g:18651:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getArbitrationPolicyExpressionAccess().getArbitrationPolicyExpressionAction_0());
+ }
+ // InternalRBAModel.g:18652:2: ()
+ // InternalRBAModel.g:18652:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getArbitrationPolicyExpressionAccess().getArbitrationPolicyExpressionAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ArbitrationPolicyExpression__Group__0__Impl"
+
+
+ // $ANTLR start "rule__ArbitrationPolicyExpression__Group__1"
+ // InternalRBAModel.g:18660:1: rule__ArbitrationPolicyExpression__Group__1 : rule__ArbitrationPolicyExpression__Group__1__Impl ;
+ public final void rule__ArbitrationPolicyExpression__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18664:1: ( rule__ArbitrationPolicyExpression__Group__1__Impl )
+ // InternalRBAModel.g:18665:2: rule__ArbitrationPolicyExpression__Group__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__ArbitrationPolicyExpression__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ArbitrationPolicyExpression__Group__1"
+
+
+ // $ANTLR start "rule__ArbitrationPolicyExpression__Group__1__Impl"
+ // InternalRBAModel.g:18671:1: rule__ArbitrationPolicyExpression__Group__1__Impl : ( ( rule__ArbitrationPolicyExpression__ValueAssignment_1 ) ) ;
+ public final void rule__ArbitrationPolicyExpression__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18675:1: ( ( ( rule__ArbitrationPolicyExpression__ValueAssignment_1 ) ) )
+ // InternalRBAModel.g:18676:1: ( ( rule__ArbitrationPolicyExpression__ValueAssignment_1 ) )
+ {
+ // InternalRBAModel.g:18676:1: ( ( rule__ArbitrationPolicyExpression__ValueAssignment_1 ) )
+ // InternalRBAModel.g:18677:2: ( rule__ArbitrationPolicyExpression__ValueAssignment_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getArbitrationPolicyExpressionAccess().getValueAssignment_1());
+ }
+ // InternalRBAModel.g:18678:2: ( rule__ArbitrationPolicyExpression__ValueAssignment_1 )
+ // InternalRBAModel.g:18678:3: rule__ArbitrationPolicyExpression__ValueAssignment_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__ArbitrationPolicyExpression__ValueAssignment_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getArbitrationPolicyExpressionAccess().getValueAssignment_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ArbitrationPolicyExpression__Group__1__Impl"
+
+
+ // $ANTLR start "rule__ViewContentSet__Group__0"
+ // InternalRBAModel.g:18687:1: rule__ViewContentSet__Group__0 : rule__ViewContentSet__Group__0__Impl rule__ViewContentSet__Group__1 ;
+ public final void rule__ViewContentSet__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18691:1: ( rule__ViewContentSet__Group__0__Impl rule__ViewContentSet__Group__1 )
+ // InternalRBAModel.g:18692:2: rule__ViewContentSet__Group__0__Impl rule__ViewContentSet__Group__1
+ {
+ pushFollow(FOLLOW_144);
+ rule__ViewContentSet__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ViewContentSet__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__Group__0"
+
+
+ // $ANTLR start "rule__ViewContentSet__Group__0__Impl"
+ // InternalRBAModel.g:18699:1: rule__ViewContentSet__Group__0__Impl : ( () ) ;
+ public final void rule__ViewContentSet__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18703:1: ( ( () ) )
+ // InternalRBAModel.g:18704:1: ( () )
+ {
+ // InternalRBAModel.g:18704:1: ( () )
+ // InternalRBAModel.g:18705:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentSetAccess().getViewContentSetAction_0());
+ }
+ // InternalRBAModel.g:18706:2: ()
+ // InternalRBAModel.g:18706:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentSetAccess().getViewContentSetAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__Group__0__Impl"
+
+
+ // $ANTLR start "rule__ViewContentSet__Group__1"
+ // InternalRBAModel.g:18714:1: rule__ViewContentSet__Group__1 : rule__ViewContentSet__Group__1__Impl rule__ViewContentSet__Group__2 ;
+ public final void rule__ViewContentSet__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18718:1: ( rule__ViewContentSet__Group__1__Impl rule__ViewContentSet__Group__2 )
+ // InternalRBAModel.g:18719:2: rule__ViewContentSet__Group__1__Impl rule__ViewContentSet__Group__2
+ {
+ pushFollow(FOLLOW_7);
+ rule__ViewContentSet__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ViewContentSet__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__Group__1"
+
+
+ // $ANTLR start "rule__ViewContentSet__Group__1__Impl"
+ // InternalRBAModel.g:18726:1: rule__ViewContentSet__Group__1__Impl : ( 'ViewContentSet' ) ;
+ public final void rule__ViewContentSet__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18730:1: ( ( 'ViewContentSet' ) )
+ // InternalRBAModel.g:18731:1: ( 'ViewContentSet' )
+ {
+ // InternalRBAModel.g:18731:1: ( 'ViewContentSet' )
+ // InternalRBAModel.g:18732:2: 'ViewContentSet'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentSetAccess().getViewContentSetKeyword_1());
+ }
+ match(input,155,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentSetAccess().getViewContentSetKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__Group__1__Impl"
+
+
+ // $ANTLR start "rule__ViewContentSet__Group__2"
+ // InternalRBAModel.g:18741:1: rule__ViewContentSet__Group__2 : rule__ViewContentSet__Group__2__Impl rule__ViewContentSet__Group__3 ;
+ public final void rule__ViewContentSet__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18745:1: ( rule__ViewContentSet__Group__2__Impl rule__ViewContentSet__Group__3 )
+ // InternalRBAModel.g:18746:2: rule__ViewContentSet__Group__2__Impl rule__ViewContentSet__Group__3
+ {
+ pushFollow(FOLLOW_11);
+ rule__ViewContentSet__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ViewContentSet__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__Group__2"
+
+
+ // $ANTLR start "rule__ViewContentSet__Group__2__Impl"
+ // InternalRBAModel.g:18753:1: rule__ViewContentSet__Group__2__Impl : ( ( rule__ViewContentSet__NameAssignment_2 ) ) ;
+ public final void rule__ViewContentSet__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18757:1: ( ( ( rule__ViewContentSet__NameAssignment_2 ) ) )
+ // InternalRBAModel.g:18758:1: ( ( rule__ViewContentSet__NameAssignment_2 ) )
+ {
+ // InternalRBAModel.g:18758:1: ( ( rule__ViewContentSet__NameAssignment_2 ) )
+ // InternalRBAModel.g:18759:2: ( rule__ViewContentSet__NameAssignment_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentSetAccess().getNameAssignment_2());
+ }
+ // InternalRBAModel.g:18760:2: ( rule__ViewContentSet__NameAssignment_2 )
+ // InternalRBAModel.g:18760:3: rule__ViewContentSet__NameAssignment_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContentSet__NameAssignment_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentSetAccess().getNameAssignment_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__Group__2__Impl"
+
+
+ // $ANTLR start "rule__ViewContentSet__Group__3"
+ // InternalRBAModel.g:18768:1: rule__ViewContentSet__Group__3 : rule__ViewContentSet__Group__3__Impl rule__ViewContentSet__Group__4 ;
+ public final void rule__ViewContentSet__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18772:1: ( rule__ViewContentSet__Group__3__Impl rule__ViewContentSet__Group__4 )
+ // InternalRBAModel.g:18773:2: rule__ViewContentSet__Group__3__Impl rule__ViewContentSet__Group__4
+ {
+ pushFollow(FOLLOW_145);
+ rule__ViewContentSet__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ViewContentSet__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__Group__3"
+
+
+ // $ANTLR start "rule__ViewContentSet__Group__3__Impl"
+ // InternalRBAModel.g:18780:1: rule__ViewContentSet__Group__3__Impl : ( '{' ) ;
+ public final void rule__ViewContentSet__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18784:1: ( ( '{' ) )
+ // InternalRBAModel.g:18785:1: ( '{' )
+ {
+ // InternalRBAModel.g:18785:1: ( '{' )
+ // InternalRBAModel.g:18786:2: '{'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentSetAccess().getLeftCurlyBracketKeyword_3());
+ }
+ match(input,101,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentSetAccess().getLeftCurlyBracketKeyword_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__Group__3__Impl"
+
+
+ // $ANTLR start "rule__ViewContentSet__Group__4"
+ // InternalRBAModel.g:18795:1: rule__ViewContentSet__Group__4 : rule__ViewContentSet__Group__4__Impl rule__ViewContentSet__Group__5 ;
+ public final void rule__ViewContentSet__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18799:1: ( rule__ViewContentSet__Group__4__Impl rule__ViewContentSet__Group__5 )
+ // InternalRBAModel.g:18800:2: rule__ViewContentSet__Group__4__Impl rule__ViewContentSet__Group__5
+ {
+ pushFollow(FOLLOW_22);
+ rule__ViewContentSet__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ViewContentSet__Group__5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__Group__4"
+
+
+ // $ANTLR start "rule__ViewContentSet__Group__4__Impl"
+ // InternalRBAModel.g:18807:1: rule__ViewContentSet__Group__4__Impl : ( ( rule__ViewContentSet__UnorderedGroup_4 ) ) ;
+ public final void rule__ViewContentSet__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18811:1: ( ( ( rule__ViewContentSet__UnorderedGroup_4 ) ) )
+ // InternalRBAModel.g:18812:1: ( ( rule__ViewContentSet__UnorderedGroup_4 ) )
+ {
+ // InternalRBAModel.g:18812:1: ( ( rule__ViewContentSet__UnorderedGroup_4 ) )
+ // InternalRBAModel.g:18813:2: ( rule__ViewContentSet__UnorderedGroup_4 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4());
+ }
+ // InternalRBAModel.g:18814:2: ( rule__ViewContentSet__UnorderedGroup_4 )
+ // InternalRBAModel.g:18814:3: rule__ViewContentSet__UnorderedGroup_4
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContentSet__UnorderedGroup_4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__Group__4__Impl"
+
+
+ // $ANTLR start "rule__ViewContentSet__Group__5"
+ // InternalRBAModel.g:18822:1: rule__ViewContentSet__Group__5 : rule__ViewContentSet__Group__5__Impl ;
+ public final void rule__ViewContentSet__Group__5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18826:1: ( rule__ViewContentSet__Group__5__Impl )
+ // InternalRBAModel.g:18827:2: rule__ViewContentSet__Group__5__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContentSet__Group__5__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__Group__5"
+
+
+ // $ANTLR start "rule__ViewContentSet__Group__5__Impl"
+ // InternalRBAModel.g:18833:1: rule__ViewContentSet__Group__5__Impl : ( '}' ) ;
+ public final void rule__ViewContentSet__Group__5__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18837:1: ( ( '}' ) )
+ // InternalRBAModel.g:18838:1: ( '}' )
+ {
+ // InternalRBAModel.g:18838:1: ( '}' )
+ // InternalRBAModel.g:18839:2: '}'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentSetAccess().getRightCurlyBracketKeyword_5());
+ }
+ match(input,102,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentSetAccess().getRightCurlyBracketKeyword_5());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__Group__5__Impl"
+
+
+ // $ANTLR start "rule__ViewContentSet__Group_4_0__0"
+ // InternalRBAModel.g:18849:1: rule__ViewContentSet__Group_4_0__0 : rule__ViewContentSet__Group_4_0__0__Impl rule__ViewContentSet__Group_4_0__1 ;
+ public final void rule__ViewContentSet__Group_4_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18853:1: ( rule__ViewContentSet__Group_4_0__0__Impl rule__ViewContentSet__Group_4_0__1 )
+ // InternalRBAModel.g:18854:2: rule__ViewContentSet__Group_4_0__0__Impl rule__ViewContentSet__Group_4_0__1
+ {
+ pushFollow(FOLLOW_19);
+ rule__ViewContentSet__Group_4_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ViewContentSet__Group_4_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__Group_4_0__0"
+
+
+ // $ANTLR start "rule__ViewContentSet__Group_4_0__0__Impl"
+ // InternalRBAModel.g:18861:1: rule__ViewContentSet__Group_4_0__0__Impl : ( 'description:' ) ;
+ public final void rule__ViewContentSet__Group_4_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18865:1: ( ( 'description:' ) )
+ // InternalRBAModel.g:18866:1: ( 'description:' )
+ {
+ // InternalRBAModel.g:18866:1: ( 'description:' )
+ // InternalRBAModel.g:18867:2: 'description:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentSetAccess().getDescriptionKeyword_4_0_0());
+ }
+ match(input,105,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentSetAccess().getDescriptionKeyword_4_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__Group_4_0__0__Impl"
+
+
+ // $ANTLR start "rule__ViewContentSet__Group_4_0__1"
+ // InternalRBAModel.g:18876:1: rule__ViewContentSet__Group_4_0__1 : rule__ViewContentSet__Group_4_0__1__Impl ;
+ public final void rule__ViewContentSet__Group_4_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18880:1: ( rule__ViewContentSet__Group_4_0__1__Impl )
+ // InternalRBAModel.g:18881:2: rule__ViewContentSet__Group_4_0__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContentSet__Group_4_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__Group_4_0__1"
+
+
+ // $ANTLR start "rule__ViewContentSet__Group_4_0__1__Impl"
+ // InternalRBAModel.g:18887:1: rule__ViewContentSet__Group_4_0__1__Impl : ( ( rule__ViewContentSet__DescriptionAssignment_4_0_1 ) ) ;
+ public final void rule__ViewContentSet__Group_4_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18891:1: ( ( ( rule__ViewContentSet__DescriptionAssignment_4_0_1 ) ) )
+ // InternalRBAModel.g:18892:1: ( ( rule__ViewContentSet__DescriptionAssignment_4_0_1 ) )
+ {
+ // InternalRBAModel.g:18892:1: ( ( rule__ViewContentSet__DescriptionAssignment_4_0_1 ) )
+ // InternalRBAModel.g:18893:2: ( rule__ViewContentSet__DescriptionAssignment_4_0_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentSetAccess().getDescriptionAssignment_4_0_1());
+ }
+ // InternalRBAModel.g:18894:2: ( rule__ViewContentSet__DescriptionAssignment_4_0_1 )
+ // InternalRBAModel.g:18894:3: rule__ViewContentSet__DescriptionAssignment_4_0_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContentSet__DescriptionAssignment_4_0_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentSetAccess().getDescriptionAssignment_4_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__Group_4_0__1__Impl"
+
+
+ // $ANTLR start "rule__ViewContentSet__Group_4_1__0"
+ // InternalRBAModel.g:18903:1: rule__ViewContentSet__Group_4_1__0 : rule__ViewContentSet__Group_4_1__0__Impl rule__ViewContentSet__Group_4_1__1 ;
+ public final void rule__ViewContentSet__Group_4_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18907:1: ( rule__ViewContentSet__Group_4_1__0__Impl rule__ViewContentSet__Group_4_1__1 )
+ // InternalRBAModel.g:18908:2: rule__ViewContentSet__Group_4_1__0__Impl rule__ViewContentSet__Group_4_1__1
+ {
+ pushFollow(FOLLOW_38);
+ rule__ViewContentSet__Group_4_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ViewContentSet__Group_4_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__Group_4_1__0"
+
+
+ // $ANTLR start "rule__ViewContentSet__Group_4_1__0__Impl"
+ // InternalRBAModel.g:18915:1: rule__ViewContentSet__Group_4_1__0__Impl : ( 'target:' ) ;
+ public final void rule__ViewContentSet__Group_4_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18919:1: ( ( 'target:' ) )
+ // InternalRBAModel.g:18920:1: ( 'target:' )
+ {
+ // InternalRBAModel.g:18920:1: ( 'target:' )
+ // InternalRBAModel.g:18921:2: 'target:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentSetAccess().getTargetKeyword_4_1_0());
+ }
+ match(input,124,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentSetAccess().getTargetKeyword_4_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__Group_4_1__0__Impl"
+
+
+ // $ANTLR start "rule__ViewContentSet__Group_4_1__1"
+ // InternalRBAModel.g:18930:1: rule__ViewContentSet__Group_4_1__1 : rule__ViewContentSet__Group_4_1__1__Impl rule__ViewContentSet__Group_4_1__2 ;
+ public final void rule__ViewContentSet__Group_4_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18934:1: ( rule__ViewContentSet__Group_4_1__1__Impl rule__ViewContentSet__Group_4_1__2 )
+ // InternalRBAModel.g:18935:2: rule__ViewContentSet__Group_4_1__1__Impl rule__ViewContentSet__Group_4_1__2
+ {
+ pushFollow(FOLLOW_39);
+ rule__ViewContentSet__Group_4_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ViewContentSet__Group_4_1__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__Group_4_1__1"
+
+
+ // $ANTLR start "rule__ViewContentSet__Group_4_1__1__Impl"
+ // InternalRBAModel.g:18942:1: rule__ViewContentSet__Group_4_1__1__Impl : ( '[' ) ;
+ public final void rule__ViewContentSet__Group_4_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18946:1: ( ( '[' ) )
+ // InternalRBAModel.g:18947:1: ( '[' )
+ {
+ // InternalRBAModel.g:18947:1: ( '[' )
+ // InternalRBAModel.g:18948:2: '['
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentSetAccess().getLeftSquareBracketKeyword_4_1_1());
+ }
+ match(input,114,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentSetAccess().getLeftSquareBracketKeyword_4_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__Group_4_1__1__Impl"
+
+
+ // $ANTLR start "rule__ViewContentSet__Group_4_1__2"
+ // InternalRBAModel.g:18957:1: rule__ViewContentSet__Group_4_1__2 : rule__ViewContentSet__Group_4_1__2__Impl rule__ViewContentSet__Group_4_1__3 ;
+ public final void rule__ViewContentSet__Group_4_1__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18961:1: ( rule__ViewContentSet__Group_4_1__2__Impl rule__ViewContentSet__Group_4_1__3 )
+ // InternalRBAModel.g:18962:2: rule__ViewContentSet__Group_4_1__2__Impl rule__ViewContentSet__Group_4_1__3
+ {
+ pushFollow(FOLLOW_39);
+ rule__ViewContentSet__Group_4_1__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ViewContentSet__Group_4_1__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__Group_4_1__2"
+
+
+ // $ANTLR start "rule__ViewContentSet__Group_4_1__2__Impl"
+ // InternalRBAModel.g:18969:1: rule__ViewContentSet__Group_4_1__2__Impl : ( ( rule__ViewContentSet__Group_4_1_2__0 )? ) ;
+ public final void rule__ViewContentSet__Group_4_1__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18973:1: ( ( ( rule__ViewContentSet__Group_4_1_2__0 )? ) )
+ // InternalRBAModel.g:18974:1: ( ( rule__ViewContentSet__Group_4_1_2__0 )? )
+ {
+ // InternalRBAModel.g:18974:1: ( ( rule__ViewContentSet__Group_4_1_2__0 )? )
+ // InternalRBAModel.g:18975:2: ( rule__ViewContentSet__Group_4_1_2__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentSetAccess().getGroup_4_1_2());
+ }
+ // InternalRBAModel.g:18976:2: ( rule__ViewContentSet__Group_4_1_2__0 )?
+ int alt80=2;
+ int LA80_0 = input.LA(1);
+
+ if ( (LA80_0==RULE_ID) ) {
+ alt80=1;
+ }
+ switch (alt80) {
+ case 1 :
+ // InternalRBAModel.g:18976:3: rule__ViewContentSet__Group_4_1_2__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContentSet__Group_4_1_2__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentSetAccess().getGroup_4_1_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__Group_4_1__2__Impl"
+
+
+ // $ANTLR start "rule__ViewContentSet__Group_4_1__3"
+ // InternalRBAModel.g:18984:1: rule__ViewContentSet__Group_4_1__3 : rule__ViewContentSet__Group_4_1__3__Impl ;
+ public final void rule__ViewContentSet__Group_4_1__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18988:1: ( rule__ViewContentSet__Group_4_1__3__Impl )
+ // InternalRBAModel.g:18989:2: rule__ViewContentSet__Group_4_1__3__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContentSet__Group_4_1__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__Group_4_1__3"
+
+
+ // $ANTLR start "rule__ViewContentSet__Group_4_1__3__Impl"
+ // InternalRBAModel.g:18995:1: rule__ViewContentSet__Group_4_1__3__Impl : ( ']' ) ;
+ public final void rule__ViewContentSet__Group_4_1__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:18999:1: ( ( ']' ) )
+ // InternalRBAModel.g:19000:1: ( ']' )
+ {
+ // InternalRBAModel.g:19000:1: ( ']' )
+ // InternalRBAModel.g:19001:2: ']'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentSetAccess().getRightSquareBracketKeyword_4_1_3());
+ }
+ match(input,115,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentSetAccess().getRightSquareBracketKeyword_4_1_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__Group_4_1__3__Impl"
+
+
+ // $ANTLR start "rule__ViewContentSet__Group_4_1_2__0"
+ // InternalRBAModel.g:19011:1: rule__ViewContentSet__Group_4_1_2__0 : rule__ViewContentSet__Group_4_1_2__0__Impl rule__ViewContentSet__Group_4_1_2__1 ;
+ public final void rule__ViewContentSet__Group_4_1_2__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19015:1: ( rule__ViewContentSet__Group_4_1_2__0__Impl rule__ViewContentSet__Group_4_1_2__1 )
+ // InternalRBAModel.g:19016:2: rule__ViewContentSet__Group_4_1_2__0__Impl rule__ViewContentSet__Group_4_1_2__1
+ {
+ pushFollow(FOLLOW_17);
+ rule__ViewContentSet__Group_4_1_2__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ViewContentSet__Group_4_1_2__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__Group_4_1_2__0"
+
+
+ // $ANTLR start "rule__ViewContentSet__Group_4_1_2__0__Impl"
+ // InternalRBAModel.g:19023:1: rule__ViewContentSet__Group_4_1_2__0__Impl : ( ( rule__ViewContentSet__TargetAssignment_4_1_2_0 ) ) ;
+ public final void rule__ViewContentSet__Group_4_1_2__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19027:1: ( ( ( rule__ViewContentSet__TargetAssignment_4_1_2_0 ) ) )
+ // InternalRBAModel.g:19028:1: ( ( rule__ViewContentSet__TargetAssignment_4_1_2_0 ) )
+ {
+ // InternalRBAModel.g:19028:1: ( ( rule__ViewContentSet__TargetAssignment_4_1_2_0 ) )
+ // InternalRBAModel.g:19029:2: ( rule__ViewContentSet__TargetAssignment_4_1_2_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentSetAccess().getTargetAssignment_4_1_2_0());
+ }
+ // InternalRBAModel.g:19030:2: ( rule__ViewContentSet__TargetAssignment_4_1_2_0 )
+ // InternalRBAModel.g:19030:3: rule__ViewContentSet__TargetAssignment_4_1_2_0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContentSet__TargetAssignment_4_1_2_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentSetAccess().getTargetAssignment_4_1_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__Group_4_1_2__0__Impl"
+
+
+ // $ANTLR start "rule__ViewContentSet__Group_4_1_2__1"
+ // InternalRBAModel.g:19038:1: rule__ViewContentSet__Group_4_1_2__1 : rule__ViewContentSet__Group_4_1_2__1__Impl ;
+ public final void rule__ViewContentSet__Group_4_1_2__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19042:1: ( rule__ViewContentSet__Group_4_1_2__1__Impl )
+ // InternalRBAModel.g:19043:2: rule__ViewContentSet__Group_4_1_2__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContentSet__Group_4_1_2__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__Group_4_1_2__1"
+
+
+ // $ANTLR start "rule__ViewContentSet__Group_4_1_2__1__Impl"
+ // InternalRBAModel.g:19049:1: rule__ViewContentSet__Group_4_1_2__1__Impl : ( ( rule__ViewContentSet__Group_4_1_2_1__0 )* ) ;
+ public final void rule__ViewContentSet__Group_4_1_2__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19053:1: ( ( ( rule__ViewContentSet__Group_4_1_2_1__0 )* ) )
+ // InternalRBAModel.g:19054:1: ( ( rule__ViewContentSet__Group_4_1_2_1__0 )* )
+ {
+ // InternalRBAModel.g:19054:1: ( ( rule__ViewContentSet__Group_4_1_2_1__0 )* )
+ // InternalRBAModel.g:19055:2: ( rule__ViewContentSet__Group_4_1_2_1__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentSetAccess().getGroup_4_1_2_1());
+ }
+ // InternalRBAModel.g:19056:2: ( rule__ViewContentSet__Group_4_1_2_1__0 )*
+ loop81:
+ do {
+ int alt81=2;
+ int LA81_0 = input.LA(1);
+
+ if ( (LA81_0==103) ) {
+ alt81=1;
+ }
+
+
+ switch (alt81) {
+ case 1 :
+ // InternalRBAModel.g:19056:3: rule__ViewContentSet__Group_4_1_2_1__0
+ {
+ pushFollow(FOLLOW_18);
+ rule__ViewContentSet__Group_4_1_2_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop81;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentSetAccess().getGroup_4_1_2_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__Group_4_1_2__1__Impl"
+
+
+ // $ANTLR start "rule__ViewContentSet__Group_4_1_2_1__0"
+ // InternalRBAModel.g:19065:1: rule__ViewContentSet__Group_4_1_2_1__0 : rule__ViewContentSet__Group_4_1_2_1__0__Impl rule__ViewContentSet__Group_4_1_2_1__1 ;
+ public final void rule__ViewContentSet__Group_4_1_2_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19069:1: ( rule__ViewContentSet__Group_4_1_2_1__0__Impl rule__ViewContentSet__Group_4_1_2_1__1 )
+ // InternalRBAModel.g:19070:2: rule__ViewContentSet__Group_4_1_2_1__0__Impl rule__ViewContentSet__Group_4_1_2_1__1
+ {
+ pushFollow(FOLLOW_7);
+ rule__ViewContentSet__Group_4_1_2_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ViewContentSet__Group_4_1_2_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__Group_4_1_2_1__0"
+
+
+ // $ANTLR start "rule__ViewContentSet__Group_4_1_2_1__0__Impl"
+ // InternalRBAModel.g:19077:1: rule__ViewContentSet__Group_4_1_2_1__0__Impl : ( ',' ) ;
+ public final void rule__ViewContentSet__Group_4_1_2_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19081:1: ( ( ',' ) )
+ // InternalRBAModel.g:19082:1: ( ',' )
+ {
+ // InternalRBAModel.g:19082:1: ( ',' )
+ // InternalRBAModel.g:19083:2: ','
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentSetAccess().getCommaKeyword_4_1_2_1_0());
+ }
+ match(input,103,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentSetAccess().getCommaKeyword_4_1_2_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__Group_4_1_2_1__0__Impl"
+
+
+ // $ANTLR start "rule__ViewContentSet__Group_4_1_2_1__1"
+ // InternalRBAModel.g:19092:1: rule__ViewContentSet__Group_4_1_2_1__1 : rule__ViewContentSet__Group_4_1_2_1__1__Impl ;
+ public final void rule__ViewContentSet__Group_4_1_2_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19096:1: ( rule__ViewContentSet__Group_4_1_2_1__1__Impl )
+ // InternalRBAModel.g:19097:2: rule__ViewContentSet__Group_4_1_2_1__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContentSet__Group_4_1_2_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__Group_4_1_2_1__1"
+
+
+ // $ANTLR start "rule__ViewContentSet__Group_4_1_2_1__1__Impl"
+ // InternalRBAModel.g:19103:1: rule__ViewContentSet__Group_4_1_2_1__1__Impl : ( ( rule__ViewContentSet__TargetAssignment_4_1_2_1_1 ) ) ;
+ public final void rule__ViewContentSet__Group_4_1_2_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19107:1: ( ( ( rule__ViewContentSet__TargetAssignment_4_1_2_1_1 ) ) )
+ // InternalRBAModel.g:19108:1: ( ( rule__ViewContentSet__TargetAssignment_4_1_2_1_1 ) )
+ {
+ // InternalRBAModel.g:19108:1: ( ( rule__ViewContentSet__TargetAssignment_4_1_2_1_1 ) )
+ // InternalRBAModel.g:19109:2: ( rule__ViewContentSet__TargetAssignment_4_1_2_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentSetAccess().getTargetAssignment_4_1_2_1_1());
+ }
+ // InternalRBAModel.g:19110:2: ( rule__ViewContentSet__TargetAssignment_4_1_2_1_1 )
+ // InternalRBAModel.g:19110:3: rule__ViewContentSet__TargetAssignment_4_1_2_1_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContentSet__TargetAssignment_4_1_2_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentSetAccess().getTargetAssignment_4_1_2_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__Group_4_1_2_1__1__Impl"
+
+
+ // $ANTLR start "rule__ViewContentSet__Group_4_2__0"
+ // InternalRBAModel.g:19119:1: rule__ViewContentSet__Group_4_2__0 : rule__ViewContentSet__Group_4_2__0__Impl rule__ViewContentSet__Group_4_2__1 ;
+ public final void rule__ViewContentSet__Group_4_2__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19123:1: ( rule__ViewContentSet__Group_4_2__0__Impl rule__ViewContentSet__Group_4_2__1 )
+ // InternalRBAModel.g:19124:2: rule__ViewContentSet__Group_4_2__0__Impl rule__ViewContentSet__Group_4_2__1
+ {
+ pushFollow(FOLLOW_38);
+ rule__ViewContentSet__Group_4_2__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ViewContentSet__Group_4_2__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__Group_4_2__0"
+
+
+ // $ANTLR start "rule__ViewContentSet__Group_4_2__0__Impl"
+ // InternalRBAModel.g:19131:1: rule__ViewContentSet__Group_4_2__0__Impl : ( 'allocatable:' ) ;
+ public final void rule__ViewContentSet__Group_4_2__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19135:1: ( ( 'allocatable:' ) )
+ // InternalRBAModel.g:19136:1: ( 'allocatable:' )
+ {
+ // InternalRBAModel.g:19136:1: ( 'allocatable:' )
+ // InternalRBAModel.g:19137:2: 'allocatable:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentSetAccess().getAllocatableKeyword_4_2_0());
+ }
+ match(input,113,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentSetAccess().getAllocatableKeyword_4_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__Group_4_2__0__Impl"
+
+
+ // $ANTLR start "rule__ViewContentSet__Group_4_2__1"
+ // InternalRBAModel.g:19146:1: rule__ViewContentSet__Group_4_2__1 : rule__ViewContentSet__Group_4_2__1__Impl rule__ViewContentSet__Group_4_2__2 ;
+ public final void rule__ViewContentSet__Group_4_2__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19150:1: ( rule__ViewContentSet__Group_4_2__1__Impl rule__ViewContentSet__Group_4_2__2 )
+ // InternalRBAModel.g:19151:2: rule__ViewContentSet__Group_4_2__1__Impl rule__ViewContentSet__Group_4_2__2
+ {
+ pushFollow(FOLLOW_39);
+ rule__ViewContentSet__Group_4_2__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ViewContentSet__Group_4_2__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__Group_4_2__1"
+
+
+ // $ANTLR start "rule__ViewContentSet__Group_4_2__1__Impl"
+ // InternalRBAModel.g:19158:1: rule__ViewContentSet__Group_4_2__1__Impl : ( '[' ) ;
+ public final void rule__ViewContentSet__Group_4_2__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19162:1: ( ( '[' ) )
+ // InternalRBAModel.g:19163:1: ( '[' )
+ {
+ // InternalRBAModel.g:19163:1: ( '[' )
+ // InternalRBAModel.g:19164:2: '['
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentSetAccess().getLeftSquareBracketKeyword_4_2_1());
+ }
+ match(input,114,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentSetAccess().getLeftSquareBracketKeyword_4_2_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__Group_4_2__1__Impl"
+
+
+ // $ANTLR start "rule__ViewContentSet__Group_4_2__2"
+ // InternalRBAModel.g:19173:1: rule__ViewContentSet__Group_4_2__2 : rule__ViewContentSet__Group_4_2__2__Impl rule__ViewContentSet__Group_4_2__3 ;
+ public final void rule__ViewContentSet__Group_4_2__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19177:1: ( rule__ViewContentSet__Group_4_2__2__Impl rule__ViewContentSet__Group_4_2__3 )
+ // InternalRBAModel.g:19178:2: rule__ViewContentSet__Group_4_2__2__Impl rule__ViewContentSet__Group_4_2__3
+ {
+ pushFollow(FOLLOW_39);
+ rule__ViewContentSet__Group_4_2__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ViewContentSet__Group_4_2__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__Group_4_2__2"
+
+
+ // $ANTLR start "rule__ViewContentSet__Group_4_2__2__Impl"
+ // InternalRBAModel.g:19185:1: rule__ViewContentSet__Group_4_2__2__Impl : ( ( rule__ViewContentSet__Group_4_2_2__0 )? ) ;
+ public final void rule__ViewContentSet__Group_4_2__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19189:1: ( ( ( rule__ViewContentSet__Group_4_2_2__0 )? ) )
+ // InternalRBAModel.g:19190:1: ( ( rule__ViewContentSet__Group_4_2_2__0 )? )
+ {
+ // InternalRBAModel.g:19190:1: ( ( rule__ViewContentSet__Group_4_2_2__0 )? )
+ // InternalRBAModel.g:19191:2: ( rule__ViewContentSet__Group_4_2_2__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentSetAccess().getGroup_4_2_2());
+ }
+ // InternalRBAModel.g:19192:2: ( rule__ViewContentSet__Group_4_2_2__0 )?
+ int alt82=2;
+ int LA82_0 = input.LA(1);
+
+ if ( (LA82_0==RULE_ID) ) {
+ alt82=1;
+ }
+ switch (alt82) {
+ case 1 :
+ // InternalRBAModel.g:19192:3: rule__ViewContentSet__Group_4_2_2__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContentSet__Group_4_2_2__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentSetAccess().getGroup_4_2_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__Group_4_2__2__Impl"
+
+
+ // $ANTLR start "rule__ViewContentSet__Group_4_2__3"
+ // InternalRBAModel.g:19200:1: rule__ViewContentSet__Group_4_2__3 : rule__ViewContentSet__Group_4_2__3__Impl ;
+ public final void rule__ViewContentSet__Group_4_2__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19204:1: ( rule__ViewContentSet__Group_4_2__3__Impl )
+ // InternalRBAModel.g:19205:2: rule__ViewContentSet__Group_4_2__3__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContentSet__Group_4_2__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__Group_4_2__3"
+
+
+ // $ANTLR start "rule__ViewContentSet__Group_4_2__3__Impl"
+ // InternalRBAModel.g:19211:1: rule__ViewContentSet__Group_4_2__3__Impl : ( ']' ) ;
+ public final void rule__ViewContentSet__Group_4_2__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19215:1: ( ( ']' ) )
+ // InternalRBAModel.g:19216:1: ( ']' )
+ {
+ // InternalRBAModel.g:19216:1: ( ']' )
+ // InternalRBAModel.g:19217:2: ']'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentSetAccess().getRightSquareBracketKeyword_4_2_3());
+ }
+ match(input,115,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentSetAccess().getRightSquareBracketKeyword_4_2_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__Group_4_2__3__Impl"
+
+
+ // $ANTLR start "rule__ViewContentSet__Group_4_2_2__0"
+ // InternalRBAModel.g:19227:1: rule__ViewContentSet__Group_4_2_2__0 : rule__ViewContentSet__Group_4_2_2__0__Impl rule__ViewContentSet__Group_4_2_2__1 ;
+ public final void rule__ViewContentSet__Group_4_2_2__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19231:1: ( rule__ViewContentSet__Group_4_2_2__0__Impl rule__ViewContentSet__Group_4_2_2__1 )
+ // InternalRBAModel.g:19232:2: rule__ViewContentSet__Group_4_2_2__0__Impl rule__ViewContentSet__Group_4_2_2__1
+ {
+ pushFollow(FOLLOW_17);
+ rule__ViewContentSet__Group_4_2_2__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ViewContentSet__Group_4_2_2__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__Group_4_2_2__0"
+
+
+ // $ANTLR start "rule__ViewContentSet__Group_4_2_2__0__Impl"
+ // InternalRBAModel.g:19239:1: rule__ViewContentSet__Group_4_2_2__0__Impl : ( ( rule__ViewContentSet__AllocatableAssignment_4_2_2_0 ) ) ;
+ public final void rule__ViewContentSet__Group_4_2_2__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19243:1: ( ( ( rule__ViewContentSet__AllocatableAssignment_4_2_2_0 ) ) )
+ // InternalRBAModel.g:19244:1: ( ( rule__ViewContentSet__AllocatableAssignment_4_2_2_0 ) )
+ {
+ // InternalRBAModel.g:19244:1: ( ( rule__ViewContentSet__AllocatableAssignment_4_2_2_0 ) )
+ // InternalRBAModel.g:19245:2: ( rule__ViewContentSet__AllocatableAssignment_4_2_2_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentSetAccess().getAllocatableAssignment_4_2_2_0());
+ }
+ // InternalRBAModel.g:19246:2: ( rule__ViewContentSet__AllocatableAssignment_4_2_2_0 )
+ // InternalRBAModel.g:19246:3: rule__ViewContentSet__AllocatableAssignment_4_2_2_0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContentSet__AllocatableAssignment_4_2_2_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentSetAccess().getAllocatableAssignment_4_2_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__Group_4_2_2__0__Impl"
+
+
+ // $ANTLR start "rule__ViewContentSet__Group_4_2_2__1"
+ // InternalRBAModel.g:19254:1: rule__ViewContentSet__Group_4_2_2__1 : rule__ViewContentSet__Group_4_2_2__1__Impl ;
+ public final void rule__ViewContentSet__Group_4_2_2__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19258:1: ( rule__ViewContentSet__Group_4_2_2__1__Impl )
+ // InternalRBAModel.g:19259:2: rule__ViewContentSet__Group_4_2_2__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContentSet__Group_4_2_2__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__Group_4_2_2__1"
+
+
+ // $ANTLR start "rule__ViewContentSet__Group_4_2_2__1__Impl"
+ // InternalRBAModel.g:19265:1: rule__ViewContentSet__Group_4_2_2__1__Impl : ( ( rule__ViewContentSet__Group_4_2_2_1__0 )* ) ;
+ public final void rule__ViewContentSet__Group_4_2_2__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19269:1: ( ( ( rule__ViewContentSet__Group_4_2_2_1__0 )* ) )
+ // InternalRBAModel.g:19270:1: ( ( rule__ViewContentSet__Group_4_2_2_1__0 )* )
+ {
+ // InternalRBAModel.g:19270:1: ( ( rule__ViewContentSet__Group_4_2_2_1__0 )* )
+ // InternalRBAModel.g:19271:2: ( rule__ViewContentSet__Group_4_2_2_1__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentSetAccess().getGroup_4_2_2_1());
+ }
+ // InternalRBAModel.g:19272:2: ( rule__ViewContentSet__Group_4_2_2_1__0 )*
+ loop83:
+ do {
+ int alt83=2;
+ int LA83_0 = input.LA(1);
+
+ if ( (LA83_0==103) ) {
+ alt83=1;
+ }
+
+
+ switch (alt83) {
+ case 1 :
+ // InternalRBAModel.g:19272:3: rule__ViewContentSet__Group_4_2_2_1__0
+ {
+ pushFollow(FOLLOW_18);
+ rule__ViewContentSet__Group_4_2_2_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop83;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentSetAccess().getGroup_4_2_2_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__Group_4_2_2__1__Impl"
+
+
+ // $ANTLR start "rule__ViewContentSet__Group_4_2_2_1__0"
+ // InternalRBAModel.g:19281:1: rule__ViewContentSet__Group_4_2_2_1__0 : rule__ViewContentSet__Group_4_2_2_1__0__Impl rule__ViewContentSet__Group_4_2_2_1__1 ;
+ public final void rule__ViewContentSet__Group_4_2_2_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19285:1: ( rule__ViewContentSet__Group_4_2_2_1__0__Impl rule__ViewContentSet__Group_4_2_2_1__1 )
+ // InternalRBAModel.g:19286:2: rule__ViewContentSet__Group_4_2_2_1__0__Impl rule__ViewContentSet__Group_4_2_2_1__1
+ {
+ pushFollow(FOLLOW_7);
+ rule__ViewContentSet__Group_4_2_2_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ViewContentSet__Group_4_2_2_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__Group_4_2_2_1__0"
+
+
+ // $ANTLR start "rule__ViewContentSet__Group_4_2_2_1__0__Impl"
+ // InternalRBAModel.g:19293:1: rule__ViewContentSet__Group_4_2_2_1__0__Impl : ( ',' ) ;
+ public final void rule__ViewContentSet__Group_4_2_2_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19297:1: ( ( ',' ) )
+ // InternalRBAModel.g:19298:1: ( ',' )
+ {
+ // InternalRBAModel.g:19298:1: ( ',' )
+ // InternalRBAModel.g:19299:2: ','
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentSetAccess().getCommaKeyword_4_2_2_1_0());
+ }
+ match(input,103,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentSetAccess().getCommaKeyword_4_2_2_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__Group_4_2_2_1__0__Impl"
+
+
+ // $ANTLR start "rule__ViewContentSet__Group_4_2_2_1__1"
+ // InternalRBAModel.g:19308:1: rule__ViewContentSet__Group_4_2_2_1__1 : rule__ViewContentSet__Group_4_2_2_1__1__Impl ;
+ public final void rule__ViewContentSet__Group_4_2_2_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19312:1: ( rule__ViewContentSet__Group_4_2_2_1__1__Impl )
+ // InternalRBAModel.g:19313:2: rule__ViewContentSet__Group_4_2_2_1__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContentSet__Group_4_2_2_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__Group_4_2_2_1__1"
+
+
+ // $ANTLR start "rule__ViewContentSet__Group_4_2_2_1__1__Impl"
+ // InternalRBAModel.g:19319:1: rule__ViewContentSet__Group_4_2_2_1__1__Impl : ( ( rule__ViewContentSet__AllocatableAssignment_4_2_2_1_1 ) ) ;
+ public final void rule__ViewContentSet__Group_4_2_2_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19323:1: ( ( ( rule__ViewContentSet__AllocatableAssignment_4_2_2_1_1 ) ) )
+ // InternalRBAModel.g:19324:1: ( ( rule__ViewContentSet__AllocatableAssignment_4_2_2_1_1 ) )
+ {
+ // InternalRBAModel.g:19324:1: ( ( rule__ViewContentSet__AllocatableAssignment_4_2_2_1_1 ) )
+ // InternalRBAModel.g:19325:2: ( rule__ViewContentSet__AllocatableAssignment_4_2_2_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentSetAccess().getAllocatableAssignment_4_2_2_1_1());
+ }
+ // InternalRBAModel.g:19326:2: ( rule__ViewContentSet__AllocatableAssignment_4_2_2_1_1 )
+ // InternalRBAModel.g:19326:3: rule__ViewContentSet__AllocatableAssignment_4_2_2_1_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContentSet__AllocatableAssignment_4_2_2_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentSetAccess().getAllocatableAssignment_4_2_2_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__Group_4_2_2_1__1__Impl"
+
+
+ // $ANTLR start "rule__SoundContentSet__Group__0"
+ // InternalRBAModel.g:19335:1: rule__SoundContentSet__Group__0 : rule__SoundContentSet__Group__0__Impl rule__SoundContentSet__Group__1 ;
+ public final void rule__SoundContentSet__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19339:1: ( rule__SoundContentSet__Group__0__Impl rule__SoundContentSet__Group__1 )
+ // InternalRBAModel.g:19340:2: rule__SoundContentSet__Group__0__Impl rule__SoundContentSet__Group__1
+ {
+ pushFollow(FOLLOW_146);
+ rule__SoundContentSet__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__SoundContentSet__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__Group__0"
+
+
+ // $ANTLR start "rule__SoundContentSet__Group__0__Impl"
+ // InternalRBAModel.g:19347:1: rule__SoundContentSet__Group__0__Impl : ( () ) ;
+ public final void rule__SoundContentSet__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19351:1: ( ( () ) )
+ // InternalRBAModel.g:19352:1: ( () )
+ {
+ // InternalRBAModel.g:19352:1: ( () )
+ // InternalRBAModel.g:19353:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentSetAccess().getSoundContentSetAction_0());
+ }
+ // InternalRBAModel.g:19354:2: ()
+ // InternalRBAModel.g:19354:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentSetAccess().getSoundContentSetAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__Group__0__Impl"
+
+
+ // $ANTLR start "rule__SoundContentSet__Group__1"
+ // InternalRBAModel.g:19362:1: rule__SoundContentSet__Group__1 : rule__SoundContentSet__Group__1__Impl rule__SoundContentSet__Group__2 ;
+ public final void rule__SoundContentSet__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19366:1: ( rule__SoundContentSet__Group__1__Impl rule__SoundContentSet__Group__2 )
+ // InternalRBAModel.g:19367:2: rule__SoundContentSet__Group__1__Impl rule__SoundContentSet__Group__2
+ {
+ pushFollow(FOLLOW_7);
+ rule__SoundContentSet__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__SoundContentSet__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__Group__1"
+
+
+ // $ANTLR start "rule__SoundContentSet__Group__1__Impl"
+ // InternalRBAModel.g:19374:1: rule__SoundContentSet__Group__1__Impl : ( 'SoundContentSet' ) ;
+ public final void rule__SoundContentSet__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19378:1: ( ( 'SoundContentSet' ) )
+ // InternalRBAModel.g:19379:1: ( 'SoundContentSet' )
+ {
+ // InternalRBAModel.g:19379:1: ( 'SoundContentSet' )
+ // InternalRBAModel.g:19380:2: 'SoundContentSet'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentSetAccess().getSoundContentSetKeyword_1());
+ }
+ match(input,156,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentSetAccess().getSoundContentSetKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__Group__1__Impl"
+
+
+ // $ANTLR start "rule__SoundContentSet__Group__2"
+ // InternalRBAModel.g:19389:1: rule__SoundContentSet__Group__2 : rule__SoundContentSet__Group__2__Impl rule__SoundContentSet__Group__3 ;
+ public final void rule__SoundContentSet__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19393:1: ( rule__SoundContentSet__Group__2__Impl rule__SoundContentSet__Group__3 )
+ // InternalRBAModel.g:19394:2: rule__SoundContentSet__Group__2__Impl rule__SoundContentSet__Group__3
+ {
+ pushFollow(FOLLOW_11);
+ rule__SoundContentSet__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__SoundContentSet__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__Group__2"
+
+
+ // $ANTLR start "rule__SoundContentSet__Group__2__Impl"
+ // InternalRBAModel.g:19401:1: rule__SoundContentSet__Group__2__Impl : ( ( rule__SoundContentSet__NameAssignment_2 ) ) ;
+ public final void rule__SoundContentSet__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19405:1: ( ( ( rule__SoundContentSet__NameAssignment_2 ) ) )
+ // InternalRBAModel.g:19406:1: ( ( rule__SoundContentSet__NameAssignment_2 ) )
+ {
+ // InternalRBAModel.g:19406:1: ( ( rule__SoundContentSet__NameAssignment_2 ) )
+ // InternalRBAModel.g:19407:2: ( rule__SoundContentSet__NameAssignment_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentSetAccess().getNameAssignment_2());
+ }
+ // InternalRBAModel.g:19408:2: ( rule__SoundContentSet__NameAssignment_2 )
+ // InternalRBAModel.g:19408:3: rule__SoundContentSet__NameAssignment_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContentSet__NameAssignment_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentSetAccess().getNameAssignment_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__Group__2__Impl"
+
+
+ // $ANTLR start "rule__SoundContentSet__Group__3"
+ // InternalRBAModel.g:19416:1: rule__SoundContentSet__Group__3 : rule__SoundContentSet__Group__3__Impl rule__SoundContentSet__Group__4 ;
+ public final void rule__SoundContentSet__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19420:1: ( rule__SoundContentSet__Group__3__Impl rule__SoundContentSet__Group__4 )
+ // InternalRBAModel.g:19421:2: rule__SoundContentSet__Group__3__Impl rule__SoundContentSet__Group__4
+ {
+ pushFollow(FOLLOW_145);
+ rule__SoundContentSet__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__SoundContentSet__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__Group__3"
+
+
+ // $ANTLR start "rule__SoundContentSet__Group__3__Impl"
+ // InternalRBAModel.g:19428:1: rule__SoundContentSet__Group__3__Impl : ( '{' ) ;
+ public final void rule__SoundContentSet__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19432:1: ( ( '{' ) )
+ // InternalRBAModel.g:19433:1: ( '{' )
+ {
+ // InternalRBAModel.g:19433:1: ( '{' )
+ // InternalRBAModel.g:19434:2: '{'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentSetAccess().getLeftCurlyBracketKeyword_3());
+ }
+ match(input,101,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentSetAccess().getLeftCurlyBracketKeyword_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__Group__3__Impl"
+
+
+ // $ANTLR start "rule__SoundContentSet__Group__4"
+ // InternalRBAModel.g:19443:1: rule__SoundContentSet__Group__4 : rule__SoundContentSet__Group__4__Impl rule__SoundContentSet__Group__5 ;
+ public final void rule__SoundContentSet__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19447:1: ( rule__SoundContentSet__Group__4__Impl rule__SoundContentSet__Group__5 )
+ // InternalRBAModel.g:19448:2: rule__SoundContentSet__Group__4__Impl rule__SoundContentSet__Group__5
+ {
+ pushFollow(FOLLOW_22);
+ rule__SoundContentSet__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__SoundContentSet__Group__5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__Group__4"
+
+
+ // $ANTLR start "rule__SoundContentSet__Group__4__Impl"
+ // InternalRBAModel.g:19455:1: rule__SoundContentSet__Group__4__Impl : ( ( rule__SoundContentSet__UnorderedGroup_4 ) ) ;
+ public final void rule__SoundContentSet__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19459:1: ( ( ( rule__SoundContentSet__UnorderedGroup_4 ) ) )
+ // InternalRBAModel.g:19460:1: ( ( rule__SoundContentSet__UnorderedGroup_4 ) )
+ {
+ // InternalRBAModel.g:19460:1: ( ( rule__SoundContentSet__UnorderedGroup_4 ) )
+ // InternalRBAModel.g:19461:2: ( rule__SoundContentSet__UnorderedGroup_4 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4());
+ }
+ // InternalRBAModel.g:19462:2: ( rule__SoundContentSet__UnorderedGroup_4 )
+ // InternalRBAModel.g:19462:3: rule__SoundContentSet__UnorderedGroup_4
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContentSet__UnorderedGroup_4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__Group__4__Impl"
+
+
+ // $ANTLR start "rule__SoundContentSet__Group__5"
+ // InternalRBAModel.g:19470:1: rule__SoundContentSet__Group__5 : rule__SoundContentSet__Group__5__Impl ;
+ public final void rule__SoundContentSet__Group__5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19474:1: ( rule__SoundContentSet__Group__5__Impl )
+ // InternalRBAModel.g:19475:2: rule__SoundContentSet__Group__5__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContentSet__Group__5__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__Group__5"
+
+
+ // $ANTLR start "rule__SoundContentSet__Group__5__Impl"
+ // InternalRBAModel.g:19481:1: rule__SoundContentSet__Group__5__Impl : ( '}' ) ;
+ public final void rule__SoundContentSet__Group__5__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19485:1: ( ( '}' ) )
+ // InternalRBAModel.g:19486:1: ( '}' )
+ {
+ // InternalRBAModel.g:19486:1: ( '}' )
+ // InternalRBAModel.g:19487:2: '}'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentSetAccess().getRightCurlyBracketKeyword_5());
+ }
+ match(input,102,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentSetAccess().getRightCurlyBracketKeyword_5());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__Group__5__Impl"
+
+
+ // $ANTLR start "rule__SoundContentSet__Group_4_0__0"
+ // InternalRBAModel.g:19497:1: rule__SoundContentSet__Group_4_0__0 : rule__SoundContentSet__Group_4_0__0__Impl rule__SoundContentSet__Group_4_0__1 ;
+ public final void rule__SoundContentSet__Group_4_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19501:1: ( rule__SoundContentSet__Group_4_0__0__Impl rule__SoundContentSet__Group_4_0__1 )
+ // InternalRBAModel.g:19502:2: rule__SoundContentSet__Group_4_0__0__Impl rule__SoundContentSet__Group_4_0__1
+ {
+ pushFollow(FOLLOW_19);
+ rule__SoundContentSet__Group_4_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__SoundContentSet__Group_4_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__Group_4_0__0"
+
+
+ // $ANTLR start "rule__SoundContentSet__Group_4_0__0__Impl"
+ // InternalRBAModel.g:19509:1: rule__SoundContentSet__Group_4_0__0__Impl : ( 'description:' ) ;
+ public final void rule__SoundContentSet__Group_4_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19513:1: ( ( 'description:' ) )
+ // InternalRBAModel.g:19514:1: ( 'description:' )
+ {
+ // InternalRBAModel.g:19514:1: ( 'description:' )
+ // InternalRBAModel.g:19515:2: 'description:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentSetAccess().getDescriptionKeyword_4_0_0());
+ }
+ match(input,105,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentSetAccess().getDescriptionKeyword_4_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__Group_4_0__0__Impl"
+
+
+ // $ANTLR start "rule__SoundContentSet__Group_4_0__1"
+ // InternalRBAModel.g:19524:1: rule__SoundContentSet__Group_4_0__1 : rule__SoundContentSet__Group_4_0__1__Impl ;
+ public final void rule__SoundContentSet__Group_4_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19528:1: ( rule__SoundContentSet__Group_4_0__1__Impl )
+ // InternalRBAModel.g:19529:2: rule__SoundContentSet__Group_4_0__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContentSet__Group_4_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__Group_4_0__1"
+
+
+ // $ANTLR start "rule__SoundContentSet__Group_4_0__1__Impl"
+ // InternalRBAModel.g:19535:1: rule__SoundContentSet__Group_4_0__1__Impl : ( ( rule__SoundContentSet__DescriptionAssignment_4_0_1 ) ) ;
+ public final void rule__SoundContentSet__Group_4_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19539:1: ( ( ( rule__SoundContentSet__DescriptionAssignment_4_0_1 ) ) )
+ // InternalRBAModel.g:19540:1: ( ( rule__SoundContentSet__DescriptionAssignment_4_0_1 ) )
+ {
+ // InternalRBAModel.g:19540:1: ( ( rule__SoundContentSet__DescriptionAssignment_4_0_1 ) )
+ // InternalRBAModel.g:19541:2: ( rule__SoundContentSet__DescriptionAssignment_4_0_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentSetAccess().getDescriptionAssignment_4_0_1());
+ }
+ // InternalRBAModel.g:19542:2: ( rule__SoundContentSet__DescriptionAssignment_4_0_1 )
+ // InternalRBAModel.g:19542:3: rule__SoundContentSet__DescriptionAssignment_4_0_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContentSet__DescriptionAssignment_4_0_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentSetAccess().getDescriptionAssignment_4_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__Group_4_0__1__Impl"
+
+
+ // $ANTLR start "rule__SoundContentSet__Group_4_1__0"
+ // InternalRBAModel.g:19551:1: rule__SoundContentSet__Group_4_1__0 : rule__SoundContentSet__Group_4_1__0__Impl rule__SoundContentSet__Group_4_1__1 ;
+ public final void rule__SoundContentSet__Group_4_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19555:1: ( rule__SoundContentSet__Group_4_1__0__Impl rule__SoundContentSet__Group_4_1__1 )
+ // InternalRBAModel.g:19556:2: rule__SoundContentSet__Group_4_1__0__Impl rule__SoundContentSet__Group_4_1__1
+ {
+ pushFollow(FOLLOW_38);
+ rule__SoundContentSet__Group_4_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__SoundContentSet__Group_4_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__Group_4_1__0"
+
+
+ // $ANTLR start "rule__SoundContentSet__Group_4_1__0__Impl"
+ // InternalRBAModel.g:19563:1: rule__SoundContentSet__Group_4_1__0__Impl : ( 'target:' ) ;
+ public final void rule__SoundContentSet__Group_4_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19567:1: ( ( 'target:' ) )
+ // InternalRBAModel.g:19568:1: ( 'target:' )
+ {
+ // InternalRBAModel.g:19568:1: ( 'target:' )
+ // InternalRBAModel.g:19569:2: 'target:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentSetAccess().getTargetKeyword_4_1_0());
+ }
+ match(input,124,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentSetAccess().getTargetKeyword_4_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__Group_4_1__0__Impl"
+
+
+ // $ANTLR start "rule__SoundContentSet__Group_4_1__1"
+ // InternalRBAModel.g:19578:1: rule__SoundContentSet__Group_4_1__1 : rule__SoundContentSet__Group_4_1__1__Impl rule__SoundContentSet__Group_4_1__2 ;
+ public final void rule__SoundContentSet__Group_4_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19582:1: ( rule__SoundContentSet__Group_4_1__1__Impl rule__SoundContentSet__Group_4_1__2 )
+ // InternalRBAModel.g:19583:2: rule__SoundContentSet__Group_4_1__1__Impl rule__SoundContentSet__Group_4_1__2
+ {
+ pushFollow(FOLLOW_39);
+ rule__SoundContentSet__Group_4_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__SoundContentSet__Group_4_1__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__Group_4_1__1"
+
+
+ // $ANTLR start "rule__SoundContentSet__Group_4_1__1__Impl"
+ // InternalRBAModel.g:19590:1: rule__SoundContentSet__Group_4_1__1__Impl : ( '[' ) ;
+ public final void rule__SoundContentSet__Group_4_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19594:1: ( ( '[' ) )
+ // InternalRBAModel.g:19595:1: ( '[' )
+ {
+ // InternalRBAModel.g:19595:1: ( '[' )
+ // InternalRBAModel.g:19596:2: '['
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentSetAccess().getLeftSquareBracketKeyword_4_1_1());
+ }
+ match(input,114,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentSetAccess().getLeftSquareBracketKeyword_4_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__Group_4_1__1__Impl"
+
+
+ // $ANTLR start "rule__SoundContentSet__Group_4_1__2"
+ // InternalRBAModel.g:19605:1: rule__SoundContentSet__Group_4_1__2 : rule__SoundContentSet__Group_4_1__2__Impl rule__SoundContentSet__Group_4_1__3 ;
+ public final void rule__SoundContentSet__Group_4_1__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19609:1: ( rule__SoundContentSet__Group_4_1__2__Impl rule__SoundContentSet__Group_4_1__3 )
+ // InternalRBAModel.g:19610:2: rule__SoundContentSet__Group_4_1__2__Impl rule__SoundContentSet__Group_4_1__3
+ {
+ pushFollow(FOLLOW_39);
+ rule__SoundContentSet__Group_4_1__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__SoundContentSet__Group_4_1__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__Group_4_1__2"
+
+
+ // $ANTLR start "rule__SoundContentSet__Group_4_1__2__Impl"
+ // InternalRBAModel.g:19617:1: rule__SoundContentSet__Group_4_1__2__Impl : ( ( rule__SoundContentSet__Group_4_1_2__0 )? ) ;
+ public final void rule__SoundContentSet__Group_4_1__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19621:1: ( ( ( rule__SoundContentSet__Group_4_1_2__0 )? ) )
+ // InternalRBAModel.g:19622:1: ( ( rule__SoundContentSet__Group_4_1_2__0 )? )
+ {
+ // InternalRBAModel.g:19622:1: ( ( rule__SoundContentSet__Group_4_1_2__0 )? )
+ // InternalRBAModel.g:19623:2: ( rule__SoundContentSet__Group_4_1_2__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentSetAccess().getGroup_4_1_2());
+ }
+ // InternalRBAModel.g:19624:2: ( rule__SoundContentSet__Group_4_1_2__0 )?
+ int alt84=2;
+ int LA84_0 = input.LA(1);
+
+ if ( (LA84_0==RULE_ID) ) {
+ alt84=1;
+ }
+ switch (alt84) {
+ case 1 :
+ // InternalRBAModel.g:19624:3: rule__SoundContentSet__Group_4_1_2__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContentSet__Group_4_1_2__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentSetAccess().getGroup_4_1_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__Group_4_1__2__Impl"
+
+
+ // $ANTLR start "rule__SoundContentSet__Group_4_1__3"
+ // InternalRBAModel.g:19632:1: rule__SoundContentSet__Group_4_1__3 : rule__SoundContentSet__Group_4_1__3__Impl ;
+ public final void rule__SoundContentSet__Group_4_1__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19636:1: ( rule__SoundContentSet__Group_4_1__3__Impl )
+ // InternalRBAModel.g:19637:2: rule__SoundContentSet__Group_4_1__3__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContentSet__Group_4_1__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__Group_4_1__3"
+
+
+ // $ANTLR start "rule__SoundContentSet__Group_4_1__3__Impl"
+ // InternalRBAModel.g:19643:1: rule__SoundContentSet__Group_4_1__3__Impl : ( ']' ) ;
+ public final void rule__SoundContentSet__Group_4_1__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19647:1: ( ( ']' ) )
+ // InternalRBAModel.g:19648:1: ( ']' )
+ {
+ // InternalRBAModel.g:19648:1: ( ']' )
+ // InternalRBAModel.g:19649:2: ']'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentSetAccess().getRightSquareBracketKeyword_4_1_3());
+ }
+ match(input,115,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentSetAccess().getRightSquareBracketKeyword_4_1_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__Group_4_1__3__Impl"
+
+
+ // $ANTLR start "rule__SoundContentSet__Group_4_1_2__0"
+ // InternalRBAModel.g:19659:1: rule__SoundContentSet__Group_4_1_2__0 : rule__SoundContentSet__Group_4_1_2__0__Impl rule__SoundContentSet__Group_4_1_2__1 ;
+ public final void rule__SoundContentSet__Group_4_1_2__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19663:1: ( rule__SoundContentSet__Group_4_1_2__0__Impl rule__SoundContentSet__Group_4_1_2__1 )
+ // InternalRBAModel.g:19664:2: rule__SoundContentSet__Group_4_1_2__0__Impl rule__SoundContentSet__Group_4_1_2__1
+ {
+ pushFollow(FOLLOW_17);
+ rule__SoundContentSet__Group_4_1_2__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__SoundContentSet__Group_4_1_2__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__Group_4_1_2__0"
+
+
+ // $ANTLR start "rule__SoundContentSet__Group_4_1_2__0__Impl"
+ // InternalRBAModel.g:19671:1: rule__SoundContentSet__Group_4_1_2__0__Impl : ( ( rule__SoundContentSet__TargetAssignment_4_1_2_0 ) ) ;
+ public final void rule__SoundContentSet__Group_4_1_2__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19675:1: ( ( ( rule__SoundContentSet__TargetAssignment_4_1_2_0 ) ) )
+ // InternalRBAModel.g:19676:1: ( ( rule__SoundContentSet__TargetAssignment_4_1_2_0 ) )
+ {
+ // InternalRBAModel.g:19676:1: ( ( rule__SoundContentSet__TargetAssignment_4_1_2_0 ) )
+ // InternalRBAModel.g:19677:2: ( rule__SoundContentSet__TargetAssignment_4_1_2_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentSetAccess().getTargetAssignment_4_1_2_0());
+ }
+ // InternalRBAModel.g:19678:2: ( rule__SoundContentSet__TargetAssignment_4_1_2_0 )
+ // InternalRBAModel.g:19678:3: rule__SoundContentSet__TargetAssignment_4_1_2_0
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContentSet__TargetAssignment_4_1_2_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentSetAccess().getTargetAssignment_4_1_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__Group_4_1_2__0__Impl"
+
+
+ // $ANTLR start "rule__SoundContentSet__Group_4_1_2__1"
+ // InternalRBAModel.g:19686:1: rule__SoundContentSet__Group_4_1_2__1 : rule__SoundContentSet__Group_4_1_2__1__Impl ;
+ public final void rule__SoundContentSet__Group_4_1_2__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19690:1: ( rule__SoundContentSet__Group_4_1_2__1__Impl )
+ // InternalRBAModel.g:19691:2: rule__SoundContentSet__Group_4_1_2__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContentSet__Group_4_1_2__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__Group_4_1_2__1"
+
+
+ // $ANTLR start "rule__SoundContentSet__Group_4_1_2__1__Impl"
+ // InternalRBAModel.g:19697:1: rule__SoundContentSet__Group_4_1_2__1__Impl : ( ( rule__SoundContentSet__Group_4_1_2_1__0 )* ) ;
+ public final void rule__SoundContentSet__Group_4_1_2__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19701:1: ( ( ( rule__SoundContentSet__Group_4_1_2_1__0 )* ) )
+ // InternalRBAModel.g:19702:1: ( ( rule__SoundContentSet__Group_4_1_2_1__0 )* )
+ {
+ // InternalRBAModel.g:19702:1: ( ( rule__SoundContentSet__Group_4_1_2_1__0 )* )
+ // InternalRBAModel.g:19703:2: ( rule__SoundContentSet__Group_4_1_2_1__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentSetAccess().getGroup_4_1_2_1());
+ }
+ // InternalRBAModel.g:19704:2: ( rule__SoundContentSet__Group_4_1_2_1__0 )*
+ loop85:
+ do {
+ int alt85=2;
+ int LA85_0 = input.LA(1);
+
+ if ( (LA85_0==103) ) {
+ alt85=1;
+ }
+
+
+ switch (alt85) {
+ case 1 :
+ // InternalRBAModel.g:19704:3: rule__SoundContentSet__Group_4_1_2_1__0
+ {
+ pushFollow(FOLLOW_18);
+ rule__SoundContentSet__Group_4_1_2_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop85;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentSetAccess().getGroup_4_1_2_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__Group_4_1_2__1__Impl"
+
+
+ // $ANTLR start "rule__SoundContentSet__Group_4_1_2_1__0"
+ // InternalRBAModel.g:19713:1: rule__SoundContentSet__Group_4_1_2_1__0 : rule__SoundContentSet__Group_4_1_2_1__0__Impl rule__SoundContentSet__Group_4_1_2_1__1 ;
+ public final void rule__SoundContentSet__Group_4_1_2_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19717:1: ( rule__SoundContentSet__Group_4_1_2_1__0__Impl rule__SoundContentSet__Group_4_1_2_1__1 )
+ // InternalRBAModel.g:19718:2: rule__SoundContentSet__Group_4_1_2_1__0__Impl rule__SoundContentSet__Group_4_1_2_1__1
+ {
+ pushFollow(FOLLOW_7);
+ rule__SoundContentSet__Group_4_1_2_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__SoundContentSet__Group_4_1_2_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__Group_4_1_2_1__0"
+
+
+ // $ANTLR start "rule__SoundContentSet__Group_4_1_2_1__0__Impl"
+ // InternalRBAModel.g:19725:1: rule__SoundContentSet__Group_4_1_2_1__0__Impl : ( ',' ) ;
+ public final void rule__SoundContentSet__Group_4_1_2_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19729:1: ( ( ',' ) )
+ // InternalRBAModel.g:19730:1: ( ',' )
+ {
+ // InternalRBAModel.g:19730:1: ( ',' )
+ // InternalRBAModel.g:19731:2: ','
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentSetAccess().getCommaKeyword_4_1_2_1_0());
+ }
+ match(input,103,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentSetAccess().getCommaKeyword_4_1_2_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__Group_4_1_2_1__0__Impl"
+
+
+ // $ANTLR start "rule__SoundContentSet__Group_4_1_2_1__1"
+ // InternalRBAModel.g:19740:1: rule__SoundContentSet__Group_4_1_2_1__1 : rule__SoundContentSet__Group_4_1_2_1__1__Impl ;
+ public final void rule__SoundContentSet__Group_4_1_2_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19744:1: ( rule__SoundContentSet__Group_4_1_2_1__1__Impl )
+ // InternalRBAModel.g:19745:2: rule__SoundContentSet__Group_4_1_2_1__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContentSet__Group_4_1_2_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__Group_4_1_2_1__1"
+
+
+ // $ANTLR start "rule__SoundContentSet__Group_4_1_2_1__1__Impl"
+ // InternalRBAModel.g:19751:1: rule__SoundContentSet__Group_4_1_2_1__1__Impl : ( ( rule__SoundContentSet__TargetAssignment_4_1_2_1_1 ) ) ;
+ public final void rule__SoundContentSet__Group_4_1_2_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19755:1: ( ( ( rule__SoundContentSet__TargetAssignment_4_1_2_1_1 ) ) )
+ // InternalRBAModel.g:19756:1: ( ( rule__SoundContentSet__TargetAssignment_4_1_2_1_1 ) )
+ {
+ // InternalRBAModel.g:19756:1: ( ( rule__SoundContentSet__TargetAssignment_4_1_2_1_1 ) )
+ // InternalRBAModel.g:19757:2: ( rule__SoundContentSet__TargetAssignment_4_1_2_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentSetAccess().getTargetAssignment_4_1_2_1_1());
+ }
+ // InternalRBAModel.g:19758:2: ( rule__SoundContentSet__TargetAssignment_4_1_2_1_1 )
+ // InternalRBAModel.g:19758:3: rule__SoundContentSet__TargetAssignment_4_1_2_1_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContentSet__TargetAssignment_4_1_2_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentSetAccess().getTargetAssignment_4_1_2_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__Group_4_1_2_1__1__Impl"
+
+
+ // $ANTLR start "rule__SoundContentSet__Group_4_2__0"
+ // InternalRBAModel.g:19767:1: rule__SoundContentSet__Group_4_2__0 : rule__SoundContentSet__Group_4_2__0__Impl rule__SoundContentSet__Group_4_2__1 ;
+ public final void rule__SoundContentSet__Group_4_2__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19771:1: ( rule__SoundContentSet__Group_4_2__0__Impl rule__SoundContentSet__Group_4_2__1 )
+ // InternalRBAModel.g:19772:2: rule__SoundContentSet__Group_4_2__0__Impl rule__SoundContentSet__Group_4_2__1
+ {
+ pushFollow(FOLLOW_38);
+ rule__SoundContentSet__Group_4_2__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__SoundContentSet__Group_4_2__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__Group_4_2__0"
+
+
+ // $ANTLR start "rule__SoundContentSet__Group_4_2__0__Impl"
+ // InternalRBAModel.g:19779:1: rule__SoundContentSet__Group_4_2__0__Impl : ( 'allocatable:' ) ;
+ public final void rule__SoundContentSet__Group_4_2__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19783:1: ( ( 'allocatable:' ) )
+ // InternalRBAModel.g:19784:1: ( 'allocatable:' )
+ {
+ // InternalRBAModel.g:19784:1: ( 'allocatable:' )
+ // InternalRBAModel.g:19785:2: 'allocatable:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentSetAccess().getAllocatableKeyword_4_2_0());
+ }
+ match(input,113,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentSetAccess().getAllocatableKeyword_4_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__Group_4_2__0__Impl"
+
+
+ // $ANTLR start "rule__SoundContentSet__Group_4_2__1"
+ // InternalRBAModel.g:19794:1: rule__SoundContentSet__Group_4_2__1 : rule__SoundContentSet__Group_4_2__1__Impl rule__SoundContentSet__Group_4_2__2 ;
+ public final void rule__SoundContentSet__Group_4_2__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19798:1: ( rule__SoundContentSet__Group_4_2__1__Impl rule__SoundContentSet__Group_4_2__2 )
+ // InternalRBAModel.g:19799:2: rule__SoundContentSet__Group_4_2__1__Impl rule__SoundContentSet__Group_4_2__2
+ {
+ pushFollow(FOLLOW_39);
+ rule__SoundContentSet__Group_4_2__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__SoundContentSet__Group_4_2__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__Group_4_2__1"
+
+
+ // $ANTLR start "rule__SoundContentSet__Group_4_2__1__Impl"
+ // InternalRBAModel.g:19806:1: rule__SoundContentSet__Group_4_2__1__Impl : ( '[' ) ;
+ public final void rule__SoundContentSet__Group_4_2__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19810:1: ( ( '[' ) )
+ // InternalRBAModel.g:19811:1: ( '[' )
+ {
+ // InternalRBAModel.g:19811:1: ( '[' )
+ // InternalRBAModel.g:19812:2: '['
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentSetAccess().getLeftSquareBracketKeyword_4_2_1());
+ }
+ match(input,114,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentSetAccess().getLeftSquareBracketKeyword_4_2_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__Group_4_2__1__Impl"
+
+
+ // $ANTLR start "rule__SoundContentSet__Group_4_2__2"
+ // InternalRBAModel.g:19821:1: rule__SoundContentSet__Group_4_2__2 : rule__SoundContentSet__Group_4_2__2__Impl rule__SoundContentSet__Group_4_2__3 ;
+ public final void rule__SoundContentSet__Group_4_2__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19825:1: ( rule__SoundContentSet__Group_4_2__2__Impl rule__SoundContentSet__Group_4_2__3 )
+ // InternalRBAModel.g:19826:2: rule__SoundContentSet__Group_4_2__2__Impl rule__SoundContentSet__Group_4_2__3
+ {
+ pushFollow(FOLLOW_39);
+ rule__SoundContentSet__Group_4_2__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__SoundContentSet__Group_4_2__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__Group_4_2__2"
+
+
+ // $ANTLR start "rule__SoundContentSet__Group_4_2__2__Impl"
+ // InternalRBAModel.g:19833:1: rule__SoundContentSet__Group_4_2__2__Impl : ( ( rule__SoundContentSet__Group_4_2_2__0 )? ) ;
+ public final void rule__SoundContentSet__Group_4_2__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19837:1: ( ( ( rule__SoundContentSet__Group_4_2_2__0 )? ) )
+ // InternalRBAModel.g:19838:1: ( ( rule__SoundContentSet__Group_4_2_2__0 )? )
+ {
+ // InternalRBAModel.g:19838:1: ( ( rule__SoundContentSet__Group_4_2_2__0 )? )
+ // InternalRBAModel.g:19839:2: ( rule__SoundContentSet__Group_4_2_2__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentSetAccess().getGroup_4_2_2());
+ }
+ // InternalRBAModel.g:19840:2: ( rule__SoundContentSet__Group_4_2_2__0 )?
+ int alt86=2;
+ int LA86_0 = input.LA(1);
+
+ if ( (LA86_0==RULE_ID) ) {
+ alt86=1;
+ }
+ switch (alt86) {
+ case 1 :
+ // InternalRBAModel.g:19840:3: rule__SoundContentSet__Group_4_2_2__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContentSet__Group_4_2_2__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentSetAccess().getGroup_4_2_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__Group_4_2__2__Impl"
+
+
+ // $ANTLR start "rule__SoundContentSet__Group_4_2__3"
+ // InternalRBAModel.g:19848:1: rule__SoundContentSet__Group_4_2__3 : rule__SoundContentSet__Group_4_2__3__Impl ;
+ public final void rule__SoundContentSet__Group_4_2__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19852:1: ( rule__SoundContentSet__Group_4_2__3__Impl )
+ // InternalRBAModel.g:19853:2: rule__SoundContentSet__Group_4_2__3__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContentSet__Group_4_2__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__Group_4_2__3"
+
+
+ // $ANTLR start "rule__SoundContentSet__Group_4_2__3__Impl"
+ // InternalRBAModel.g:19859:1: rule__SoundContentSet__Group_4_2__3__Impl : ( ']' ) ;
+ public final void rule__SoundContentSet__Group_4_2__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19863:1: ( ( ']' ) )
+ // InternalRBAModel.g:19864:1: ( ']' )
+ {
+ // InternalRBAModel.g:19864:1: ( ']' )
+ // InternalRBAModel.g:19865:2: ']'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentSetAccess().getRightSquareBracketKeyword_4_2_3());
+ }
+ match(input,115,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentSetAccess().getRightSquareBracketKeyword_4_2_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__Group_4_2__3__Impl"
+
+
+ // $ANTLR start "rule__SoundContentSet__Group_4_2_2__0"
+ // InternalRBAModel.g:19875:1: rule__SoundContentSet__Group_4_2_2__0 : rule__SoundContentSet__Group_4_2_2__0__Impl rule__SoundContentSet__Group_4_2_2__1 ;
+ public final void rule__SoundContentSet__Group_4_2_2__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19879:1: ( rule__SoundContentSet__Group_4_2_2__0__Impl rule__SoundContentSet__Group_4_2_2__1 )
+ // InternalRBAModel.g:19880:2: rule__SoundContentSet__Group_4_2_2__0__Impl rule__SoundContentSet__Group_4_2_2__1
+ {
+ pushFollow(FOLLOW_17);
+ rule__SoundContentSet__Group_4_2_2__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__SoundContentSet__Group_4_2_2__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__Group_4_2_2__0"
+
+
+ // $ANTLR start "rule__SoundContentSet__Group_4_2_2__0__Impl"
+ // InternalRBAModel.g:19887:1: rule__SoundContentSet__Group_4_2_2__0__Impl : ( ( rule__SoundContentSet__AllocatableAssignment_4_2_2_0 ) ) ;
+ public final void rule__SoundContentSet__Group_4_2_2__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19891:1: ( ( ( rule__SoundContentSet__AllocatableAssignment_4_2_2_0 ) ) )
+ // InternalRBAModel.g:19892:1: ( ( rule__SoundContentSet__AllocatableAssignment_4_2_2_0 ) )
+ {
+ // InternalRBAModel.g:19892:1: ( ( rule__SoundContentSet__AllocatableAssignment_4_2_2_0 ) )
+ // InternalRBAModel.g:19893:2: ( rule__SoundContentSet__AllocatableAssignment_4_2_2_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentSetAccess().getAllocatableAssignment_4_2_2_0());
+ }
+ // InternalRBAModel.g:19894:2: ( rule__SoundContentSet__AllocatableAssignment_4_2_2_0 )
+ // InternalRBAModel.g:19894:3: rule__SoundContentSet__AllocatableAssignment_4_2_2_0
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContentSet__AllocatableAssignment_4_2_2_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentSetAccess().getAllocatableAssignment_4_2_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__Group_4_2_2__0__Impl"
+
+
+ // $ANTLR start "rule__SoundContentSet__Group_4_2_2__1"
+ // InternalRBAModel.g:19902:1: rule__SoundContentSet__Group_4_2_2__1 : rule__SoundContentSet__Group_4_2_2__1__Impl ;
+ public final void rule__SoundContentSet__Group_4_2_2__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19906:1: ( rule__SoundContentSet__Group_4_2_2__1__Impl )
+ // InternalRBAModel.g:19907:2: rule__SoundContentSet__Group_4_2_2__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContentSet__Group_4_2_2__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__Group_4_2_2__1"
+
+
+ // $ANTLR start "rule__SoundContentSet__Group_4_2_2__1__Impl"
+ // InternalRBAModel.g:19913:1: rule__SoundContentSet__Group_4_2_2__1__Impl : ( ( rule__SoundContentSet__Group_4_2_2_1__0 )* ) ;
+ public final void rule__SoundContentSet__Group_4_2_2__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19917:1: ( ( ( rule__SoundContentSet__Group_4_2_2_1__0 )* ) )
+ // InternalRBAModel.g:19918:1: ( ( rule__SoundContentSet__Group_4_2_2_1__0 )* )
+ {
+ // InternalRBAModel.g:19918:1: ( ( rule__SoundContentSet__Group_4_2_2_1__0 )* )
+ // InternalRBAModel.g:19919:2: ( rule__SoundContentSet__Group_4_2_2_1__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentSetAccess().getGroup_4_2_2_1());
+ }
+ // InternalRBAModel.g:19920:2: ( rule__SoundContentSet__Group_4_2_2_1__0 )*
+ loop87:
+ do {
+ int alt87=2;
+ int LA87_0 = input.LA(1);
+
+ if ( (LA87_0==103) ) {
+ alt87=1;
+ }
+
+
+ switch (alt87) {
+ case 1 :
+ // InternalRBAModel.g:19920:3: rule__SoundContentSet__Group_4_2_2_1__0
+ {
+ pushFollow(FOLLOW_18);
+ rule__SoundContentSet__Group_4_2_2_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop87;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentSetAccess().getGroup_4_2_2_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__Group_4_2_2__1__Impl"
+
+
+ // $ANTLR start "rule__SoundContentSet__Group_4_2_2_1__0"
+ // InternalRBAModel.g:19929:1: rule__SoundContentSet__Group_4_2_2_1__0 : rule__SoundContentSet__Group_4_2_2_1__0__Impl rule__SoundContentSet__Group_4_2_2_1__1 ;
+ public final void rule__SoundContentSet__Group_4_2_2_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19933:1: ( rule__SoundContentSet__Group_4_2_2_1__0__Impl rule__SoundContentSet__Group_4_2_2_1__1 )
+ // InternalRBAModel.g:19934:2: rule__SoundContentSet__Group_4_2_2_1__0__Impl rule__SoundContentSet__Group_4_2_2_1__1
+ {
+ pushFollow(FOLLOW_7);
+ rule__SoundContentSet__Group_4_2_2_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__SoundContentSet__Group_4_2_2_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__Group_4_2_2_1__0"
+
+
+ // $ANTLR start "rule__SoundContentSet__Group_4_2_2_1__0__Impl"
+ // InternalRBAModel.g:19941:1: rule__SoundContentSet__Group_4_2_2_1__0__Impl : ( ',' ) ;
+ public final void rule__SoundContentSet__Group_4_2_2_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19945:1: ( ( ',' ) )
+ // InternalRBAModel.g:19946:1: ( ',' )
+ {
+ // InternalRBAModel.g:19946:1: ( ',' )
+ // InternalRBAModel.g:19947:2: ','
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentSetAccess().getCommaKeyword_4_2_2_1_0());
+ }
+ match(input,103,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentSetAccess().getCommaKeyword_4_2_2_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__Group_4_2_2_1__0__Impl"
+
+
+ // $ANTLR start "rule__SoundContentSet__Group_4_2_2_1__1"
+ // InternalRBAModel.g:19956:1: rule__SoundContentSet__Group_4_2_2_1__1 : rule__SoundContentSet__Group_4_2_2_1__1__Impl ;
+ public final void rule__SoundContentSet__Group_4_2_2_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19960:1: ( rule__SoundContentSet__Group_4_2_2_1__1__Impl )
+ // InternalRBAModel.g:19961:2: rule__SoundContentSet__Group_4_2_2_1__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContentSet__Group_4_2_2_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__Group_4_2_2_1__1"
+
+
+ // $ANTLR start "rule__SoundContentSet__Group_4_2_2_1__1__Impl"
+ // InternalRBAModel.g:19967:1: rule__SoundContentSet__Group_4_2_2_1__1__Impl : ( ( rule__SoundContentSet__AllocatableAssignment_4_2_2_1_1 ) ) ;
+ public final void rule__SoundContentSet__Group_4_2_2_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19971:1: ( ( ( rule__SoundContentSet__AllocatableAssignment_4_2_2_1_1 ) ) )
+ // InternalRBAModel.g:19972:1: ( ( rule__SoundContentSet__AllocatableAssignment_4_2_2_1_1 ) )
+ {
+ // InternalRBAModel.g:19972:1: ( ( rule__SoundContentSet__AllocatableAssignment_4_2_2_1_1 ) )
+ // InternalRBAModel.g:19973:2: ( rule__SoundContentSet__AllocatableAssignment_4_2_2_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentSetAccess().getAllocatableAssignment_4_2_2_1_1());
+ }
+ // InternalRBAModel.g:19974:2: ( rule__SoundContentSet__AllocatableAssignment_4_2_2_1_1 )
+ // InternalRBAModel.g:19974:3: rule__SoundContentSet__AllocatableAssignment_4_2_2_1_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContentSet__AllocatableAssignment_4_2_2_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentSetAccess().getAllocatableAssignment_4_2_2_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__Group_4_2_2_1__1__Impl"
+
+
+ // $ANTLR start "rule__Scene__Group__0"
+ // InternalRBAModel.g:19983:1: rule__Scene__Group__0 : rule__Scene__Group__0__Impl rule__Scene__Group__1 ;
+ public final void rule__Scene__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19987:1: ( rule__Scene__Group__0__Impl rule__Scene__Group__1 )
+ // InternalRBAModel.g:19988:2: rule__Scene__Group__0__Impl rule__Scene__Group__1
+ {
+ pushFollow(FOLLOW_147);
+ rule__Scene__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Scene__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Scene__Group__0"
+
+
+ // $ANTLR start "rule__Scene__Group__0__Impl"
+ // InternalRBAModel.g:19995:1: rule__Scene__Group__0__Impl : ( () ) ;
+ public final void rule__Scene__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:19999:1: ( ( () ) )
+ // InternalRBAModel.g:20000:1: ( () )
+ {
+ // InternalRBAModel.g:20000:1: ( () )
+ // InternalRBAModel.g:20001:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSceneAccess().getSceneAction_0());
+ }
+ // InternalRBAModel.g:20002:2: ()
+ // InternalRBAModel.g:20002:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSceneAccess().getSceneAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Scene__Group__0__Impl"
+
+
+ // $ANTLR start "rule__Scene__Group__1"
+ // InternalRBAModel.g:20010:1: rule__Scene__Group__1 : rule__Scene__Group__1__Impl rule__Scene__Group__2 ;
+ public final void rule__Scene__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20014:1: ( rule__Scene__Group__1__Impl rule__Scene__Group__2 )
+ // InternalRBAModel.g:20015:2: rule__Scene__Group__1__Impl rule__Scene__Group__2
+ {
+ pushFollow(FOLLOW_7);
+ rule__Scene__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Scene__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Scene__Group__1"
+
+
+ // $ANTLR start "rule__Scene__Group__1__Impl"
+ // InternalRBAModel.g:20022:1: rule__Scene__Group__1__Impl : ( 'Scene' ) ;
+ public final void rule__Scene__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20026:1: ( ( 'Scene' ) )
+ // InternalRBAModel.g:20027:1: ( 'Scene' )
+ {
+ // InternalRBAModel.g:20027:1: ( 'Scene' )
+ // InternalRBAModel.g:20028:2: 'Scene'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSceneAccess().getSceneKeyword_1());
+ }
+ match(input,157,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSceneAccess().getSceneKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Scene__Group__1__Impl"
+
+
+ // $ANTLR start "rule__Scene__Group__2"
+ // InternalRBAModel.g:20037:1: rule__Scene__Group__2 : rule__Scene__Group__2__Impl rule__Scene__Group__3 ;
+ public final void rule__Scene__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20041:1: ( rule__Scene__Group__2__Impl rule__Scene__Group__3 )
+ // InternalRBAModel.g:20042:2: rule__Scene__Group__2__Impl rule__Scene__Group__3
+ {
+ pushFollow(FOLLOW_11);
+ rule__Scene__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Scene__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Scene__Group__2"
+
+
+ // $ANTLR start "rule__Scene__Group__2__Impl"
+ // InternalRBAModel.g:20049:1: rule__Scene__Group__2__Impl : ( ( rule__Scene__NameAssignment_2 ) ) ;
+ public final void rule__Scene__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20053:1: ( ( ( rule__Scene__NameAssignment_2 ) ) )
+ // InternalRBAModel.g:20054:1: ( ( rule__Scene__NameAssignment_2 ) )
+ {
+ // InternalRBAModel.g:20054:1: ( ( rule__Scene__NameAssignment_2 ) )
+ // InternalRBAModel.g:20055:2: ( rule__Scene__NameAssignment_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSceneAccess().getNameAssignment_2());
+ }
+ // InternalRBAModel.g:20056:2: ( rule__Scene__NameAssignment_2 )
+ // InternalRBAModel.g:20056:3: rule__Scene__NameAssignment_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__Scene__NameAssignment_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSceneAccess().getNameAssignment_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Scene__Group__2__Impl"
+
+
+ // $ANTLR start "rule__Scene__Group__3"
+ // InternalRBAModel.g:20064:1: rule__Scene__Group__3 : rule__Scene__Group__3__Impl rule__Scene__Group__4 ;
+ public final void rule__Scene__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20068:1: ( rule__Scene__Group__3__Impl rule__Scene__Group__4 )
+ // InternalRBAModel.g:20069:2: rule__Scene__Group__3__Impl rule__Scene__Group__4
+ {
+ pushFollow(FOLLOW_148);
+ rule__Scene__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Scene__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Scene__Group__3"
+
+
+ // $ANTLR start "rule__Scene__Group__3__Impl"
+ // InternalRBAModel.g:20076:1: rule__Scene__Group__3__Impl : ( '{' ) ;
+ public final void rule__Scene__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20080:1: ( ( '{' ) )
+ // InternalRBAModel.g:20081:1: ( '{' )
+ {
+ // InternalRBAModel.g:20081:1: ( '{' )
+ // InternalRBAModel.g:20082:2: '{'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSceneAccess().getLeftCurlyBracketKeyword_3());
+ }
+ match(input,101,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSceneAccess().getLeftCurlyBracketKeyword_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Scene__Group__3__Impl"
+
+
+ // $ANTLR start "rule__Scene__Group__4"
+ // InternalRBAModel.g:20091:1: rule__Scene__Group__4 : rule__Scene__Group__4__Impl rule__Scene__Group__5 ;
+ public final void rule__Scene__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20095:1: ( rule__Scene__Group__4__Impl rule__Scene__Group__5 )
+ // InternalRBAModel.g:20096:2: rule__Scene__Group__4__Impl rule__Scene__Group__5
+ {
+ pushFollow(FOLLOW_22);
+ rule__Scene__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Scene__Group__5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Scene__Group__4"
+
+
+ // $ANTLR start "rule__Scene__Group__4__Impl"
+ // InternalRBAModel.g:20103:1: rule__Scene__Group__4__Impl : ( ( rule__Scene__UnorderedGroup_4 ) ) ;
+ public final void rule__Scene__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20107:1: ( ( ( rule__Scene__UnorderedGroup_4 ) ) )
+ // InternalRBAModel.g:20108:1: ( ( rule__Scene__UnorderedGroup_4 ) )
+ {
+ // InternalRBAModel.g:20108:1: ( ( rule__Scene__UnorderedGroup_4 ) )
+ // InternalRBAModel.g:20109:2: ( rule__Scene__UnorderedGroup_4 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSceneAccess().getUnorderedGroup_4());
+ }
+ // InternalRBAModel.g:20110:2: ( rule__Scene__UnorderedGroup_4 )
+ // InternalRBAModel.g:20110:3: rule__Scene__UnorderedGroup_4
+ {
+ pushFollow(FOLLOW_2);
+ rule__Scene__UnorderedGroup_4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSceneAccess().getUnorderedGroup_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Scene__Group__4__Impl"
+
+
+ // $ANTLR start "rule__Scene__Group__5"
+ // InternalRBAModel.g:20118:1: rule__Scene__Group__5 : rule__Scene__Group__5__Impl ;
+ public final void rule__Scene__Group__5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20122:1: ( rule__Scene__Group__5__Impl )
+ // InternalRBAModel.g:20123:2: rule__Scene__Group__5__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Scene__Group__5__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Scene__Group__5"
+
+
+ // $ANTLR start "rule__Scene__Group__5__Impl"
+ // InternalRBAModel.g:20129:1: rule__Scene__Group__5__Impl : ( '}' ) ;
+ public final void rule__Scene__Group__5__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20133:1: ( ( '}' ) )
+ // InternalRBAModel.g:20134:1: ( '}' )
+ {
+ // InternalRBAModel.g:20134:1: ( '}' )
+ // InternalRBAModel.g:20135:2: '}'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSceneAccess().getRightCurlyBracketKeyword_5());
+ }
+ match(input,102,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSceneAccess().getRightCurlyBracketKeyword_5());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Scene__Group__5__Impl"
+
+
+ // $ANTLR start "rule__Scene__Group_4_0__0"
+ // InternalRBAModel.g:20145:1: rule__Scene__Group_4_0__0 : rule__Scene__Group_4_0__0__Impl rule__Scene__Group_4_0__1 ;
+ public final void rule__Scene__Group_4_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20149:1: ( rule__Scene__Group_4_0__0__Impl rule__Scene__Group_4_0__1 )
+ // InternalRBAModel.g:20150:2: rule__Scene__Group_4_0__0__Impl rule__Scene__Group_4_0__1
+ {
+ pushFollow(FOLLOW_19);
+ rule__Scene__Group_4_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Scene__Group_4_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Scene__Group_4_0__0"
+
+
+ // $ANTLR start "rule__Scene__Group_4_0__0__Impl"
+ // InternalRBAModel.g:20157:1: rule__Scene__Group_4_0__0__Impl : ( 'description:' ) ;
+ public final void rule__Scene__Group_4_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20161:1: ( ( 'description:' ) )
+ // InternalRBAModel.g:20162:1: ( 'description:' )
+ {
+ // InternalRBAModel.g:20162:1: ( 'description:' )
+ // InternalRBAModel.g:20163:2: 'description:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSceneAccess().getDescriptionKeyword_4_0_0());
+ }
+ match(input,105,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSceneAccess().getDescriptionKeyword_4_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Scene__Group_4_0__0__Impl"
+
+
+ // $ANTLR start "rule__Scene__Group_4_0__1"
+ // InternalRBAModel.g:20172:1: rule__Scene__Group_4_0__1 : rule__Scene__Group_4_0__1__Impl ;
+ public final void rule__Scene__Group_4_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20176:1: ( rule__Scene__Group_4_0__1__Impl )
+ // InternalRBAModel.g:20177:2: rule__Scene__Group_4_0__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Scene__Group_4_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Scene__Group_4_0__1"
+
+
+ // $ANTLR start "rule__Scene__Group_4_0__1__Impl"
+ // InternalRBAModel.g:20183:1: rule__Scene__Group_4_0__1__Impl : ( ( rule__Scene__DescriptionAssignment_4_0_1 ) ) ;
+ public final void rule__Scene__Group_4_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20187:1: ( ( ( rule__Scene__DescriptionAssignment_4_0_1 ) ) )
+ // InternalRBAModel.g:20188:1: ( ( rule__Scene__DescriptionAssignment_4_0_1 ) )
+ {
+ // InternalRBAModel.g:20188:1: ( ( rule__Scene__DescriptionAssignment_4_0_1 ) )
+ // InternalRBAModel.g:20189:2: ( rule__Scene__DescriptionAssignment_4_0_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSceneAccess().getDescriptionAssignment_4_0_1());
+ }
+ // InternalRBAModel.g:20190:2: ( rule__Scene__DescriptionAssignment_4_0_1 )
+ // InternalRBAModel.g:20190:3: rule__Scene__DescriptionAssignment_4_0_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__Scene__DescriptionAssignment_4_0_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSceneAccess().getDescriptionAssignment_4_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Scene__Group_4_0__1__Impl"
+
+
+ // $ANTLR start "rule__Scene__Group_4_1__0"
+ // InternalRBAModel.g:20199:1: rule__Scene__Group_4_1__0 : rule__Scene__Group_4_1__0__Impl rule__Scene__Group_4_1__1 ;
+ public final void rule__Scene__Group_4_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20203:1: ( rule__Scene__Group_4_1__0__Impl rule__Scene__Group_4_1__1 )
+ // InternalRBAModel.g:20204:2: rule__Scene__Group_4_1__0__Impl rule__Scene__Group_4_1__1
+ {
+ pushFollow(FOLLOW_34);
+ rule__Scene__Group_4_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Scene__Group_4_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Scene__Group_4_1__0"
+
+
+ // $ANTLR start "rule__Scene__Group_4_1__0__Impl"
+ // InternalRBAModel.g:20211:1: rule__Scene__Group_4_1__0__Impl : ( 'global:' ) ;
+ public final void rule__Scene__Group_4_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20215:1: ( ( 'global:' ) )
+ // InternalRBAModel.g:20216:1: ( 'global:' )
+ {
+ // InternalRBAModel.g:20216:1: ( 'global:' )
+ // InternalRBAModel.g:20217:2: 'global:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSceneAccess().getGlobalKeyword_4_1_0());
+ }
+ match(input,158,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSceneAccess().getGlobalKeyword_4_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Scene__Group_4_1__0__Impl"
+
+
+ // $ANTLR start "rule__Scene__Group_4_1__1"
+ // InternalRBAModel.g:20226:1: rule__Scene__Group_4_1__1 : rule__Scene__Group_4_1__1__Impl ;
+ public final void rule__Scene__Group_4_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20230:1: ( rule__Scene__Group_4_1__1__Impl )
+ // InternalRBAModel.g:20231:2: rule__Scene__Group_4_1__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Scene__Group_4_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Scene__Group_4_1__1"
+
+
+ // $ANTLR start "rule__Scene__Group_4_1__1__Impl"
+ // InternalRBAModel.g:20237:1: rule__Scene__Group_4_1__1__Impl : ( ( rule__Scene__GlobalAssignment_4_1_1 ) ) ;
+ public final void rule__Scene__Group_4_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20241:1: ( ( ( rule__Scene__GlobalAssignment_4_1_1 ) ) )
+ // InternalRBAModel.g:20242:1: ( ( rule__Scene__GlobalAssignment_4_1_1 ) )
+ {
+ // InternalRBAModel.g:20242:1: ( ( rule__Scene__GlobalAssignment_4_1_1 ) )
+ // InternalRBAModel.g:20243:2: ( rule__Scene__GlobalAssignment_4_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSceneAccess().getGlobalAssignment_4_1_1());
+ }
+ // InternalRBAModel.g:20244:2: ( rule__Scene__GlobalAssignment_4_1_1 )
+ // InternalRBAModel.g:20244:3: rule__Scene__GlobalAssignment_4_1_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__Scene__GlobalAssignment_4_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSceneAccess().getGlobalAssignment_4_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Scene__Group_4_1__1__Impl"
+
+
+ // $ANTLR start "rule__VerticalLayout__Group__0"
+ // InternalRBAModel.g:20253:1: rule__VerticalLayout__Group__0 : rule__VerticalLayout__Group__0__Impl rule__VerticalLayout__Group__1 ;
+ public final void rule__VerticalLayout__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20257:1: ( rule__VerticalLayout__Group__0__Impl rule__VerticalLayout__Group__1 )
+ // InternalRBAModel.g:20258:2: rule__VerticalLayout__Group__0__Impl rule__VerticalLayout__Group__1
+ {
+ pushFollow(FOLLOW_149);
+ rule__VerticalLayout__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__VerticalLayout__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VerticalLayout__Group__0"
+
+
+ // $ANTLR start "rule__VerticalLayout__Group__0__Impl"
+ // InternalRBAModel.g:20265:1: rule__VerticalLayout__Group__0__Impl : ( () ) ;
+ public final void rule__VerticalLayout__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20269:1: ( ( () ) )
+ // InternalRBAModel.g:20270:1: ( () )
+ {
+ // InternalRBAModel.g:20270:1: ( () )
+ // InternalRBAModel.g:20271:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVerticalLayoutAccess().getVerticalLayoutAction_0());
+ }
+ // InternalRBAModel.g:20272:2: ()
+ // InternalRBAModel.g:20272:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVerticalLayoutAccess().getVerticalLayoutAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VerticalLayout__Group__0__Impl"
+
+
+ // $ANTLR start "rule__VerticalLayout__Group__1"
+ // InternalRBAModel.g:20280:1: rule__VerticalLayout__Group__1 : rule__VerticalLayout__Group__1__Impl rule__VerticalLayout__Group__2 ;
+ public final void rule__VerticalLayout__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20284:1: ( rule__VerticalLayout__Group__1__Impl rule__VerticalLayout__Group__2 )
+ // InternalRBAModel.g:20285:2: rule__VerticalLayout__Group__1__Impl rule__VerticalLayout__Group__2
+ {
+ pushFollow(FOLLOW_11);
+ rule__VerticalLayout__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__VerticalLayout__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VerticalLayout__Group__1"
+
+
+ // $ANTLR start "rule__VerticalLayout__Group__1__Impl"
+ // InternalRBAModel.g:20292:1: rule__VerticalLayout__Group__1__Impl : ( 'VerticalLayout' ) ;
+ public final void rule__VerticalLayout__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20296:1: ( ( 'VerticalLayout' ) )
+ // InternalRBAModel.g:20297:1: ( 'VerticalLayout' )
+ {
+ // InternalRBAModel.g:20297:1: ( 'VerticalLayout' )
+ // InternalRBAModel.g:20298:2: 'VerticalLayout'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVerticalLayoutAccess().getVerticalLayoutKeyword_1());
+ }
+ match(input,159,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVerticalLayoutAccess().getVerticalLayoutKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VerticalLayout__Group__1__Impl"
+
+
+ // $ANTLR start "rule__VerticalLayout__Group__2"
+ // InternalRBAModel.g:20307:1: rule__VerticalLayout__Group__2 : rule__VerticalLayout__Group__2__Impl rule__VerticalLayout__Group__3 ;
+ public final void rule__VerticalLayout__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20311:1: ( rule__VerticalLayout__Group__2__Impl rule__VerticalLayout__Group__3 )
+ // InternalRBAModel.g:20312:2: rule__VerticalLayout__Group__2__Impl rule__VerticalLayout__Group__3
+ {
+ pushFollow(FOLLOW_150);
+ rule__VerticalLayout__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__VerticalLayout__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VerticalLayout__Group__2"
+
+
+ // $ANTLR start "rule__VerticalLayout__Group__2__Impl"
+ // InternalRBAModel.g:20319:1: rule__VerticalLayout__Group__2__Impl : ( '{' ) ;
+ public final void rule__VerticalLayout__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20323:1: ( ( '{' ) )
+ // InternalRBAModel.g:20324:1: ( '{' )
+ {
+ // InternalRBAModel.g:20324:1: ( '{' )
+ // InternalRBAModel.g:20325:2: '{'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVerticalLayoutAccess().getLeftCurlyBracketKeyword_2());
+ }
+ match(input,101,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVerticalLayoutAccess().getLeftCurlyBracketKeyword_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VerticalLayout__Group__2__Impl"
+
+
+ // $ANTLR start "rule__VerticalLayout__Group__3"
+ // InternalRBAModel.g:20334:1: rule__VerticalLayout__Group__3 : rule__VerticalLayout__Group__3__Impl rule__VerticalLayout__Group__4 ;
+ public final void rule__VerticalLayout__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20338:1: ( rule__VerticalLayout__Group__3__Impl rule__VerticalLayout__Group__4 )
+ // InternalRBAModel.g:20339:2: rule__VerticalLayout__Group__3__Impl rule__VerticalLayout__Group__4
+ {
+ pushFollow(FOLLOW_22);
+ rule__VerticalLayout__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__VerticalLayout__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VerticalLayout__Group__3"
+
+
+ // $ANTLR start "rule__VerticalLayout__Group__3__Impl"
+ // InternalRBAModel.g:20346:1: rule__VerticalLayout__Group__3__Impl : ( ( rule__VerticalLayout__UnorderedGroup_3 ) ) ;
+ public final void rule__VerticalLayout__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20350:1: ( ( ( rule__VerticalLayout__UnorderedGroup_3 ) ) )
+ // InternalRBAModel.g:20351:1: ( ( rule__VerticalLayout__UnorderedGroup_3 ) )
+ {
+ // InternalRBAModel.g:20351:1: ( ( rule__VerticalLayout__UnorderedGroup_3 ) )
+ // InternalRBAModel.g:20352:2: ( rule__VerticalLayout__UnorderedGroup_3 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3());
+ }
+ // InternalRBAModel.g:20353:2: ( rule__VerticalLayout__UnorderedGroup_3 )
+ // InternalRBAModel.g:20353:3: rule__VerticalLayout__UnorderedGroup_3
+ {
+ pushFollow(FOLLOW_2);
+ rule__VerticalLayout__UnorderedGroup_3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VerticalLayout__Group__3__Impl"
+
+
+ // $ANTLR start "rule__VerticalLayout__Group__4"
+ // InternalRBAModel.g:20361:1: rule__VerticalLayout__Group__4 : rule__VerticalLayout__Group__4__Impl ;
+ public final void rule__VerticalLayout__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20365:1: ( rule__VerticalLayout__Group__4__Impl )
+ // InternalRBAModel.g:20366:2: rule__VerticalLayout__Group__4__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__VerticalLayout__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VerticalLayout__Group__4"
+
+
+ // $ANTLR start "rule__VerticalLayout__Group__4__Impl"
+ // InternalRBAModel.g:20372:1: rule__VerticalLayout__Group__4__Impl : ( '}' ) ;
+ public final void rule__VerticalLayout__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20376:1: ( ( '}' ) )
+ // InternalRBAModel.g:20377:1: ( '}' )
+ {
+ // InternalRBAModel.g:20377:1: ( '}' )
+ // InternalRBAModel.g:20378:2: '}'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVerticalLayoutAccess().getRightCurlyBracketKeyword_4());
+ }
+ match(input,102,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVerticalLayoutAccess().getRightCurlyBracketKeyword_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VerticalLayout__Group__4__Impl"
+
+
+ // $ANTLR start "rule__VerticalLayout__Group_3_0__0"
+ // InternalRBAModel.g:20388:1: rule__VerticalLayout__Group_3_0__0 : rule__VerticalLayout__Group_3_0__0__Impl rule__VerticalLayout__Group_3_0__1 ;
+ public final void rule__VerticalLayout__Group_3_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20392:1: ( rule__VerticalLayout__Group_3_0__0__Impl rule__VerticalLayout__Group_3_0__1 )
+ // InternalRBAModel.g:20393:2: rule__VerticalLayout__Group_3_0__0__Impl rule__VerticalLayout__Group_3_0__1
+ {
+ pushFollow(FOLLOW_151);
+ rule__VerticalLayout__Group_3_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__VerticalLayout__Group_3_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VerticalLayout__Group_3_0__0"
+
+
+ // $ANTLR start "rule__VerticalLayout__Group_3_0__0__Impl"
+ // InternalRBAModel.g:20400:1: rule__VerticalLayout__Group_3_0__0__Impl : ( 'basePoint:' ) ;
+ public final void rule__VerticalLayout__Group_3_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20404:1: ( ( 'basePoint:' ) )
+ // InternalRBAModel.g:20405:1: ( 'basePoint:' )
+ {
+ // InternalRBAModel.g:20405:1: ( 'basePoint:' )
+ // InternalRBAModel.g:20406:2: 'basePoint:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVerticalLayoutAccess().getBasePointKeyword_3_0_0());
+ }
+ match(input,160,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVerticalLayoutAccess().getBasePointKeyword_3_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VerticalLayout__Group_3_0__0__Impl"
+
+
+ // $ANTLR start "rule__VerticalLayout__Group_3_0__1"
+ // InternalRBAModel.g:20415:1: rule__VerticalLayout__Group_3_0__1 : rule__VerticalLayout__Group_3_0__1__Impl ;
+ public final void rule__VerticalLayout__Group_3_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20419:1: ( rule__VerticalLayout__Group_3_0__1__Impl )
+ // InternalRBAModel.g:20420:2: rule__VerticalLayout__Group_3_0__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__VerticalLayout__Group_3_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VerticalLayout__Group_3_0__1"
+
+
+ // $ANTLR start "rule__VerticalLayout__Group_3_0__1__Impl"
+ // InternalRBAModel.g:20426:1: rule__VerticalLayout__Group_3_0__1__Impl : ( ( rule__VerticalLayout__BasePointAssignment_3_0_1 ) ) ;
+ public final void rule__VerticalLayout__Group_3_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20430:1: ( ( ( rule__VerticalLayout__BasePointAssignment_3_0_1 ) ) )
+ // InternalRBAModel.g:20431:1: ( ( rule__VerticalLayout__BasePointAssignment_3_0_1 ) )
+ {
+ // InternalRBAModel.g:20431:1: ( ( rule__VerticalLayout__BasePointAssignment_3_0_1 ) )
+ // InternalRBAModel.g:20432:2: ( rule__VerticalLayout__BasePointAssignment_3_0_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVerticalLayoutAccess().getBasePointAssignment_3_0_1());
+ }
+ // InternalRBAModel.g:20433:2: ( rule__VerticalLayout__BasePointAssignment_3_0_1 )
+ // InternalRBAModel.g:20433:3: rule__VerticalLayout__BasePointAssignment_3_0_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__VerticalLayout__BasePointAssignment_3_0_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVerticalLayoutAccess().getBasePointAssignment_3_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VerticalLayout__Group_3_0__1__Impl"
+
+
+ // $ANTLR start "rule__VerticalLayout__Group_3_1__0"
+ // InternalRBAModel.g:20442:1: rule__VerticalLayout__Group_3_1__0 : rule__VerticalLayout__Group_3_1__0__Impl rule__VerticalLayout__Group_3_1__1 ;
+ public final void rule__VerticalLayout__Group_3_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20446:1: ( rule__VerticalLayout__Group_3_1__0__Impl rule__VerticalLayout__Group_3_1__1 )
+ // InternalRBAModel.g:20447:2: rule__VerticalLayout__Group_3_1__0__Impl rule__VerticalLayout__Group_3_1__1
+ {
+ pushFollow(FOLLOW_38);
+ rule__VerticalLayout__Group_3_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__VerticalLayout__Group_3_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VerticalLayout__Group_3_1__0"
+
+
+ // $ANTLR start "rule__VerticalLayout__Group_3_1__0__Impl"
+ // InternalRBAModel.g:20454:1: rule__VerticalLayout__Group_3_1__0__Impl : ( 'subarea:' ) ;
+ public final void rule__VerticalLayout__Group_3_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20458:1: ( ( 'subarea:' ) )
+ // InternalRBAModel.g:20459:1: ( 'subarea:' )
+ {
+ // InternalRBAModel.g:20459:1: ( 'subarea:' )
+ // InternalRBAModel.g:20460:2: 'subarea:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVerticalLayoutAccess().getSubareaKeyword_3_1_0());
+ }
+ match(input,161,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVerticalLayoutAccess().getSubareaKeyword_3_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VerticalLayout__Group_3_1__0__Impl"
+
+
+ // $ANTLR start "rule__VerticalLayout__Group_3_1__1"
+ // InternalRBAModel.g:20469:1: rule__VerticalLayout__Group_3_1__1 : rule__VerticalLayout__Group_3_1__1__Impl rule__VerticalLayout__Group_3_1__2 ;
+ public final void rule__VerticalLayout__Group_3_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20473:1: ( rule__VerticalLayout__Group_3_1__1__Impl rule__VerticalLayout__Group_3_1__2 )
+ // InternalRBAModel.g:20474:2: rule__VerticalLayout__Group_3_1__1__Impl rule__VerticalLayout__Group_3_1__2
+ {
+ pushFollow(FOLLOW_39);
+ rule__VerticalLayout__Group_3_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__VerticalLayout__Group_3_1__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VerticalLayout__Group_3_1__1"
+
+
+ // $ANTLR start "rule__VerticalLayout__Group_3_1__1__Impl"
+ // InternalRBAModel.g:20481:1: rule__VerticalLayout__Group_3_1__1__Impl : ( '[' ) ;
+ public final void rule__VerticalLayout__Group_3_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20485:1: ( ( '[' ) )
+ // InternalRBAModel.g:20486:1: ( '[' )
+ {
+ // InternalRBAModel.g:20486:1: ( '[' )
+ // InternalRBAModel.g:20487:2: '['
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVerticalLayoutAccess().getLeftSquareBracketKeyword_3_1_1());
+ }
+ match(input,114,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVerticalLayoutAccess().getLeftSquareBracketKeyword_3_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VerticalLayout__Group_3_1__1__Impl"
+
+
+ // $ANTLR start "rule__VerticalLayout__Group_3_1__2"
+ // InternalRBAModel.g:20496:1: rule__VerticalLayout__Group_3_1__2 : rule__VerticalLayout__Group_3_1__2__Impl rule__VerticalLayout__Group_3_1__3 ;
+ public final void rule__VerticalLayout__Group_3_1__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20500:1: ( rule__VerticalLayout__Group_3_1__2__Impl rule__VerticalLayout__Group_3_1__3 )
+ // InternalRBAModel.g:20501:2: rule__VerticalLayout__Group_3_1__2__Impl rule__VerticalLayout__Group_3_1__3
+ {
+ pushFollow(FOLLOW_39);
+ rule__VerticalLayout__Group_3_1__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__VerticalLayout__Group_3_1__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VerticalLayout__Group_3_1__2"
+
+
+ // $ANTLR start "rule__VerticalLayout__Group_3_1__2__Impl"
+ // InternalRBAModel.g:20508:1: rule__VerticalLayout__Group_3_1__2__Impl : ( ( rule__VerticalLayout__Group_3_1_2__0 )? ) ;
+ public final void rule__VerticalLayout__Group_3_1__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20512:1: ( ( ( rule__VerticalLayout__Group_3_1_2__0 )? ) )
+ // InternalRBAModel.g:20513:1: ( ( rule__VerticalLayout__Group_3_1_2__0 )? )
+ {
+ // InternalRBAModel.g:20513:1: ( ( rule__VerticalLayout__Group_3_1_2__0 )? )
+ // InternalRBAModel.g:20514:2: ( rule__VerticalLayout__Group_3_1_2__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVerticalLayoutAccess().getGroup_3_1_2());
+ }
+ // InternalRBAModel.g:20515:2: ( rule__VerticalLayout__Group_3_1_2__0 )?
+ int alt88=2;
+ int LA88_0 = input.LA(1);
+
+ if ( (LA88_0==RULE_ID) ) {
+ alt88=1;
+ }
+ switch (alt88) {
+ case 1 :
+ // InternalRBAModel.g:20515:3: rule__VerticalLayout__Group_3_1_2__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__VerticalLayout__Group_3_1_2__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVerticalLayoutAccess().getGroup_3_1_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VerticalLayout__Group_3_1__2__Impl"
+
+
+ // $ANTLR start "rule__VerticalLayout__Group_3_1__3"
+ // InternalRBAModel.g:20523:1: rule__VerticalLayout__Group_3_1__3 : rule__VerticalLayout__Group_3_1__3__Impl ;
+ public final void rule__VerticalLayout__Group_3_1__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20527:1: ( rule__VerticalLayout__Group_3_1__3__Impl )
+ // InternalRBAModel.g:20528:2: rule__VerticalLayout__Group_3_1__3__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__VerticalLayout__Group_3_1__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VerticalLayout__Group_3_1__3"
+
+
+ // $ANTLR start "rule__VerticalLayout__Group_3_1__3__Impl"
+ // InternalRBAModel.g:20534:1: rule__VerticalLayout__Group_3_1__3__Impl : ( ']' ) ;
+ public final void rule__VerticalLayout__Group_3_1__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20538:1: ( ( ']' ) )
+ // InternalRBAModel.g:20539:1: ( ']' )
+ {
+ // InternalRBAModel.g:20539:1: ( ']' )
+ // InternalRBAModel.g:20540:2: ']'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVerticalLayoutAccess().getRightSquareBracketKeyword_3_1_3());
+ }
+ match(input,115,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVerticalLayoutAccess().getRightSquareBracketKeyword_3_1_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VerticalLayout__Group_3_1__3__Impl"
+
+
+ // $ANTLR start "rule__VerticalLayout__Group_3_1_2__0"
+ // InternalRBAModel.g:20550:1: rule__VerticalLayout__Group_3_1_2__0 : rule__VerticalLayout__Group_3_1_2__0__Impl rule__VerticalLayout__Group_3_1_2__1 ;
+ public final void rule__VerticalLayout__Group_3_1_2__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20554:1: ( rule__VerticalLayout__Group_3_1_2__0__Impl rule__VerticalLayout__Group_3_1_2__1 )
+ // InternalRBAModel.g:20555:2: rule__VerticalLayout__Group_3_1_2__0__Impl rule__VerticalLayout__Group_3_1_2__1
+ {
+ pushFollow(FOLLOW_17);
+ rule__VerticalLayout__Group_3_1_2__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__VerticalLayout__Group_3_1_2__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VerticalLayout__Group_3_1_2__0"
+
+
+ // $ANTLR start "rule__VerticalLayout__Group_3_1_2__0__Impl"
+ // InternalRBAModel.g:20562:1: rule__VerticalLayout__Group_3_1_2__0__Impl : ( ( rule__VerticalLayout__SubareaAssignment_3_1_2_0 ) ) ;
+ public final void rule__VerticalLayout__Group_3_1_2__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20566:1: ( ( ( rule__VerticalLayout__SubareaAssignment_3_1_2_0 ) ) )
+ // InternalRBAModel.g:20567:1: ( ( rule__VerticalLayout__SubareaAssignment_3_1_2_0 ) )
+ {
+ // InternalRBAModel.g:20567:1: ( ( rule__VerticalLayout__SubareaAssignment_3_1_2_0 ) )
+ // InternalRBAModel.g:20568:2: ( rule__VerticalLayout__SubareaAssignment_3_1_2_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVerticalLayoutAccess().getSubareaAssignment_3_1_2_0());
+ }
+ // InternalRBAModel.g:20569:2: ( rule__VerticalLayout__SubareaAssignment_3_1_2_0 )
+ // InternalRBAModel.g:20569:3: rule__VerticalLayout__SubareaAssignment_3_1_2_0
+ {
+ pushFollow(FOLLOW_2);
+ rule__VerticalLayout__SubareaAssignment_3_1_2_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVerticalLayoutAccess().getSubareaAssignment_3_1_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VerticalLayout__Group_3_1_2__0__Impl"
+
+
+ // $ANTLR start "rule__VerticalLayout__Group_3_1_2__1"
+ // InternalRBAModel.g:20577:1: rule__VerticalLayout__Group_3_1_2__1 : rule__VerticalLayout__Group_3_1_2__1__Impl ;
+ public final void rule__VerticalLayout__Group_3_1_2__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20581:1: ( rule__VerticalLayout__Group_3_1_2__1__Impl )
+ // InternalRBAModel.g:20582:2: rule__VerticalLayout__Group_3_1_2__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__VerticalLayout__Group_3_1_2__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VerticalLayout__Group_3_1_2__1"
+
+
+ // $ANTLR start "rule__VerticalLayout__Group_3_1_2__1__Impl"
+ // InternalRBAModel.g:20588:1: rule__VerticalLayout__Group_3_1_2__1__Impl : ( ( rule__VerticalLayout__Group_3_1_2_1__0 )* ) ;
+ public final void rule__VerticalLayout__Group_3_1_2__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20592:1: ( ( ( rule__VerticalLayout__Group_3_1_2_1__0 )* ) )
+ // InternalRBAModel.g:20593:1: ( ( rule__VerticalLayout__Group_3_1_2_1__0 )* )
+ {
+ // InternalRBAModel.g:20593:1: ( ( rule__VerticalLayout__Group_3_1_2_1__0 )* )
+ // InternalRBAModel.g:20594:2: ( rule__VerticalLayout__Group_3_1_2_1__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVerticalLayoutAccess().getGroup_3_1_2_1());
+ }
+ // InternalRBAModel.g:20595:2: ( rule__VerticalLayout__Group_3_1_2_1__0 )*
+ loop89:
+ do {
+ int alt89=2;
+ int LA89_0 = input.LA(1);
+
+ if ( (LA89_0==103) ) {
+ alt89=1;
+ }
+
+
+ switch (alt89) {
+ case 1 :
+ // InternalRBAModel.g:20595:3: rule__VerticalLayout__Group_3_1_2_1__0
+ {
+ pushFollow(FOLLOW_18);
+ rule__VerticalLayout__Group_3_1_2_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop89;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVerticalLayoutAccess().getGroup_3_1_2_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VerticalLayout__Group_3_1_2__1__Impl"
+
+
+ // $ANTLR start "rule__VerticalLayout__Group_3_1_2_1__0"
+ // InternalRBAModel.g:20604:1: rule__VerticalLayout__Group_3_1_2_1__0 : rule__VerticalLayout__Group_3_1_2_1__0__Impl rule__VerticalLayout__Group_3_1_2_1__1 ;
+ public final void rule__VerticalLayout__Group_3_1_2_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20608:1: ( rule__VerticalLayout__Group_3_1_2_1__0__Impl rule__VerticalLayout__Group_3_1_2_1__1 )
+ // InternalRBAModel.g:20609:2: rule__VerticalLayout__Group_3_1_2_1__0__Impl rule__VerticalLayout__Group_3_1_2_1__1
+ {
+ pushFollow(FOLLOW_7);
+ rule__VerticalLayout__Group_3_1_2_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__VerticalLayout__Group_3_1_2_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VerticalLayout__Group_3_1_2_1__0"
+
+
+ // $ANTLR start "rule__VerticalLayout__Group_3_1_2_1__0__Impl"
+ // InternalRBAModel.g:20616:1: rule__VerticalLayout__Group_3_1_2_1__0__Impl : ( ',' ) ;
+ public final void rule__VerticalLayout__Group_3_1_2_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20620:1: ( ( ',' ) )
+ // InternalRBAModel.g:20621:1: ( ',' )
+ {
+ // InternalRBAModel.g:20621:1: ( ',' )
+ // InternalRBAModel.g:20622:2: ','
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVerticalLayoutAccess().getCommaKeyword_3_1_2_1_0());
+ }
+ match(input,103,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVerticalLayoutAccess().getCommaKeyword_3_1_2_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VerticalLayout__Group_3_1_2_1__0__Impl"
+
+
+ // $ANTLR start "rule__VerticalLayout__Group_3_1_2_1__1"
+ // InternalRBAModel.g:20631:1: rule__VerticalLayout__Group_3_1_2_1__1 : rule__VerticalLayout__Group_3_1_2_1__1__Impl ;
+ public final void rule__VerticalLayout__Group_3_1_2_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20635:1: ( rule__VerticalLayout__Group_3_1_2_1__1__Impl )
+ // InternalRBAModel.g:20636:2: rule__VerticalLayout__Group_3_1_2_1__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__VerticalLayout__Group_3_1_2_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VerticalLayout__Group_3_1_2_1__1"
+
+
+ // $ANTLR start "rule__VerticalLayout__Group_3_1_2_1__1__Impl"
+ // InternalRBAModel.g:20642:1: rule__VerticalLayout__Group_3_1_2_1__1__Impl : ( ( rule__VerticalLayout__SubareaAssignment_3_1_2_1_1 ) ) ;
+ public final void rule__VerticalLayout__Group_3_1_2_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20646:1: ( ( ( rule__VerticalLayout__SubareaAssignment_3_1_2_1_1 ) ) )
+ // InternalRBAModel.g:20647:1: ( ( rule__VerticalLayout__SubareaAssignment_3_1_2_1_1 ) )
+ {
+ // InternalRBAModel.g:20647:1: ( ( rule__VerticalLayout__SubareaAssignment_3_1_2_1_1 ) )
+ // InternalRBAModel.g:20648:2: ( rule__VerticalLayout__SubareaAssignment_3_1_2_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVerticalLayoutAccess().getSubareaAssignment_3_1_2_1_1());
+ }
+ // InternalRBAModel.g:20649:2: ( rule__VerticalLayout__SubareaAssignment_3_1_2_1_1 )
+ // InternalRBAModel.g:20649:3: rule__VerticalLayout__SubareaAssignment_3_1_2_1_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__VerticalLayout__SubareaAssignment_3_1_2_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVerticalLayoutAccess().getSubareaAssignment_3_1_2_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VerticalLayout__Group_3_1_2_1__1__Impl"
+
+
+ // $ANTLR start "rule__HorizontalLayout__Group__0"
+ // InternalRBAModel.g:20658:1: rule__HorizontalLayout__Group__0 : rule__HorizontalLayout__Group__0__Impl rule__HorizontalLayout__Group__1 ;
+ public final void rule__HorizontalLayout__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20662:1: ( rule__HorizontalLayout__Group__0__Impl rule__HorizontalLayout__Group__1 )
+ // InternalRBAModel.g:20663:2: rule__HorizontalLayout__Group__0__Impl rule__HorizontalLayout__Group__1
+ {
+ pushFollow(FOLLOW_152);
+ rule__HorizontalLayout__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__HorizontalLayout__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HorizontalLayout__Group__0"
+
+
+ // $ANTLR start "rule__HorizontalLayout__Group__0__Impl"
+ // InternalRBAModel.g:20670:1: rule__HorizontalLayout__Group__0__Impl : ( () ) ;
+ public final void rule__HorizontalLayout__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20674:1: ( ( () ) )
+ // InternalRBAModel.g:20675:1: ( () )
+ {
+ // InternalRBAModel.g:20675:1: ( () )
+ // InternalRBAModel.g:20676:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getHorizontalLayoutAccess().getHorizontalLayoutAction_0());
+ }
+ // InternalRBAModel.g:20677:2: ()
+ // InternalRBAModel.g:20677:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getHorizontalLayoutAccess().getHorizontalLayoutAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HorizontalLayout__Group__0__Impl"
+
+
+ // $ANTLR start "rule__HorizontalLayout__Group__1"
+ // InternalRBAModel.g:20685:1: rule__HorizontalLayout__Group__1 : rule__HorizontalLayout__Group__1__Impl rule__HorizontalLayout__Group__2 ;
+ public final void rule__HorizontalLayout__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20689:1: ( rule__HorizontalLayout__Group__1__Impl rule__HorizontalLayout__Group__2 )
+ // InternalRBAModel.g:20690:2: rule__HorizontalLayout__Group__1__Impl rule__HorizontalLayout__Group__2
+ {
+ pushFollow(FOLLOW_11);
+ rule__HorizontalLayout__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__HorizontalLayout__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HorizontalLayout__Group__1"
+
+
+ // $ANTLR start "rule__HorizontalLayout__Group__1__Impl"
+ // InternalRBAModel.g:20697:1: rule__HorizontalLayout__Group__1__Impl : ( 'HorizontalLayout' ) ;
+ public final void rule__HorizontalLayout__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20701:1: ( ( 'HorizontalLayout' ) )
+ // InternalRBAModel.g:20702:1: ( 'HorizontalLayout' )
+ {
+ // InternalRBAModel.g:20702:1: ( 'HorizontalLayout' )
+ // InternalRBAModel.g:20703:2: 'HorizontalLayout'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getHorizontalLayoutAccess().getHorizontalLayoutKeyword_1());
+ }
+ match(input,162,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getHorizontalLayoutAccess().getHorizontalLayoutKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HorizontalLayout__Group__1__Impl"
+
+
+ // $ANTLR start "rule__HorizontalLayout__Group__2"
+ // InternalRBAModel.g:20712:1: rule__HorizontalLayout__Group__2 : rule__HorizontalLayout__Group__2__Impl rule__HorizontalLayout__Group__3 ;
+ public final void rule__HorizontalLayout__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20716:1: ( rule__HorizontalLayout__Group__2__Impl rule__HorizontalLayout__Group__3 )
+ // InternalRBAModel.g:20717:2: rule__HorizontalLayout__Group__2__Impl rule__HorizontalLayout__Group__3
+ {
+ pushFollow(FOLLOW_150);
+ rule__HorizontalLayout__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__HorizontalLayout__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HorizontalLayout__Group__2"
+
+
+ // $ANTLR start "rule__HorizontalLayout__Group__2__Impl"
+ // InternalRBAModel.g:20724:1: rule__HorizontalLayout__Group__2__Impl : ( '{' ) ;
+ public final void rule__HorizontalLayout__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20728:1: ( ( '{' ) )
+ // InternalRBAModel.g:20729:1: ( '{' )
+ {
+ // InternalRBAModel.g:20729:1: ( '{' )
+ // InternalRBAModel.g:20730:2: '{'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getHorizontalLayoutAccess().getLeftCurlyBracketKeyword_2());
+ }
+ match(input,101,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getHorizontalLayoutAccess().getLeftCurlyBracketKeyword_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HorizontalLayout__Group__2__Impl"
+
+
+ // $ANTLR start "rule__HorizontalLayout__Group__3"
+ // InternalRBAModel.g:20739:1: rule__HorizontalLayout__Group__3 : rule__HorizontalLayout__Group__3__Impl rule__HorizontalLayout__Group__4 ;
+ public final void rule__HorizontalLayout__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20743:1: ( rule__HorizontalLayout__Group__3__Impl rule__HorizontalLayout__Group__4 )
+ // InternalRBAModel.g:20744:2: rule__HorizontalLayout__Group__3__Impl rule__HorizontalLayout__Group__4
+ {
+ pushFollow(FOLLOW_22);
+ rule__HorizontalLayout__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__HorizontalLayout__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HorizontalLayout__Group__3"
+
+
+ // $ANTLR start "rule__HorizontalLayout__Group__3__Impl"
+ // InternalRBAModel.g:20751:1: rule__HorizontalLayout__Group__3__Impl : ( ( rule__HorizontalLayout__UnorderedGroup_3 ) ) ;
+ public final void rule__HorizontalLayout__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20755:1: ( ( ( rule__HorizontalLayout__UnorderedGroup_3 ) ) )
+ // InternalRBAModel.g:20756:1: ( ( rule__HorizontalLayout__UnorderedGroup_3 ) )
+ {
+ // InternalRBAModel.g:20756:1: ( ( rule__HorizontalLayout__UnorderedGroup_3 ) )
+ // InternalRBAModel.g:20757:2: ( rule__HorizontalLayout__UnorderedGroup_3 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3());
+ }
+ // InternalRBAModel.g:20758:2: ( rule__HorizontalLayout__UnorderedGroup_3 )
+ // InternalRBAModel.g:20758:3: rule__HorizontalLayout__UnorderedGroup_3
+ {
+ pushFollow(FOLLOW_2);
+ rule__HorizontalLayout__UnorderedGroup_3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HorizontalLayout__Group__3__Impl"
+
+
+ // $ANTLR start "rule__HorizontalLayout__Group__4"
+ // InternalRBAModel.g:20766:1: rule__HorizontalLayout__Group__4 : rule__HorizontalLayout__Group__4__Impl ;
+ public final void rule__HorizontalLayout__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20770:1: ( rule__HorizontalLayout__Group__4__Impl )
+ // InternalRBAModel.g:20771:2: rule__HorizontalLayout__Group__4__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__HorizontalLayout__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HorizontalLayout__Group__4"
+
+
+ // $ANTLR start "rule__HorizontalLayout__Group__4__Impl"
+ // InternalRBAModel.g:20777:1: rule__HorizontalLayout__Group__4__Impl : ( '}' ) ;
+ public final void rule__HorizontalLayout__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20781:1: ( ( '}' ) )
+ // InternalRBAModel.g:20782:1: ( '}' )
+ {
+ // InternalRBAModel.g:20782:1: ( '}' )
+ // InternalRBAModel.g:20783:2: '}'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getHorizontalLayoutAccess().getRightCurlyBracketKeyword_4());
+ }
+ match(input,102,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getHorizontalLayoutAccess().getRightCurlyBracketKeyword_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HorizontalLayout__Group__4__Impl"
+
+
+ // $ANTLR start "rule__HorizontalLayout__Group_3_0__0"
+ // InternalRBAModel.g:20793:1: rule__HorizontalLayout__Group_3_0__0 : rule__HorizontalLayout__Group_3_0__0__Impl rule__HorizontalLayout__Group_3_0__1 ;
+ public final void rule__HorizontalLayout__Group_3_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20797:1: ( rule__HorizontalLayout__Group_3_0__0__Impl rule__HorizontalLayout__Group_3_0__1 )
+ // InternalRBAModel.g:20798:2: rule__HorizontalLayout__Group_3_0__0__Impl rule__HorizontalLayout__Group_3_0__1
+ {
+ pushFollow(FOLLOW_151);
+ rule__HorizontalLayout__Group_3_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__HorizontalLayout__Group_3_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HorizontalLayout__Group_3_0__0"
+
+
+ // $ANTLR start "rule__HorizontalLayout__Group_3_0__0__Impl"
+ // InternalRBAModel.g:20805:1: rule__HorizontalLayout__Group_3_0__0__Impl : ( 'basePoint:' ) ;
+ public final void rule__HorizontalLayout__Group_3_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20809:1: ( ( 'basePoint:' ) )
+ // InternalRBAModel.g:20810:1: ( 'basePoint:' )
+ {
+ // InternalRBAModel.g:20810:1: ( 'basePoint:' )
+ // InternalRBAModel.g:20811:2: 'basePoint:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getHorizontalLayoutAccess().getBasePointKeyword_3_0_0());
+ }
+ match(input,160,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getHorizontalLayoutAccess().getBasePointKeyword_3_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HorizontalLayout__Group_3_0__0__Impl"
+
+
+ // $ANTLR start "rule__HorizontalLayout__Group_3_0__1"
+ // InternalRBAModel.g:20820:1: rule__HorizontalLayout__Group_3_0__1 : rule__HorizontalLayout__Group_3_0__1__Impl ;
+ public final void rule__HorizontalLayout__Group_3_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20824:1: ( rule__HorizontalLayout__Group_3_0__1__Impl )
+ // InternalRBAModel.g:20825:2: rule__HorizontalLayout__Group_3_0__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__HorizontalLayout__Group_3_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HorizontalLayout__Group_3_0__1"
+
+
+ // $ANTLR start "rule__HorizontalLayout__Group_3_0__1__Impl"
+ // InternalRBAModel.g:20831:1: rule__HorizontalLayout__Group_3_0__1__Impl : ( ( rule__HorizontalLayout__BasePointAssignment_3_0_1 ) ) ;
+ public final void rule__HorizontalLayout__Group_3_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20835:1: ( ( ( rule__HorizontalLayout__BasePointAssignment_3_0_1 ) ) )
+ // InternalRBAModel.g:20836:1: ( ( rule__HorizontalLayout__BasePointAssignment_3_0_1 ) )
+ {
+ // InternalRBAModel.g:20836:1: ( ( rule__HorizontalLayout__BasePointAssignment_3_0_1 ) )
+ // InternalRBAModel.g:20837:2: ( rule__HorizontalLayout__BasePointAssignment_3_0_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getHorizontalLayoutAccess().getBasePointAssignment_3_0_1());
+ }
+ // InternalRBAModel.g:20838:2: ( rule__HorizontalLayout__BasePointAssignment_3_0_1 )
+ // InternalRBAModel.g:20838:3: rule__HorizontalLayout__BasePointAssignment_3_0_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__HorizontalLayout__BasePointAssignment_3_0_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getHorizontalLayoutAccess().getBasePointAssignment_3_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HorizontalLayout__Group_3_0__1__Impl"
+
+
+ // $ANTLR start "rule__HorizontalLayout__Group_3_1__0"
+ // InternalRBAModel.g:20847:1: rule__HorizontalLayout__Group_3_1__0 : rule__HorizontalLayout__Group_3_1__0__Impl rule__HorizontalLayout__Group_3_1__1 ;
+ public final void rule__HorizontalLayout__Group_3_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20851:1: ( rule__HorizontalLayout__Group_3_1__0__Impl rule__HorizontalLayout__Group_3_1__1 )
+ // InternalRBAModel.g:20852:2: rule__HorizontalLayout__Group_3_1__0__Impl rule__HorizontalLayout__Group_3_1__1
+ {
+ pushFollow(FOLLOW_38);
+ rule__HorizontalLayout__Group_3_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__HorizontalLayout__Group_3_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HorizontalLayout__Group_3_1__0"
+
+
+ // $ANTLR start "rule__HorizontalLayout__Group_3_1__0__Impl"
+ // InternalRBAModel.g:20859:1: rule__HorizontalLayout__Group_3_1__0__Impl : ( 'subarea:' ) ;
+ public final void rule__HorizontalLayout__Group_3_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20863:1: ( ( 'subarea:' ) )
+ // InternalRBAModel.g:20864:1: ( 'subarea:' )
+ {
+ // InternalRBAModel.g:20864:1: ( 'subarea:' )
+ // InternalRBAModel.g:20865:2: 'subarea:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getHorizontalLayoutAccess().getSubareaKeyword_3_1_0());
+ }
+ match(input,161,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getHorizontalLayoutAccess().getSubareaKeyword_3_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HorizontalLayout__Group_3_1__0__Impl"
+
+
+ // $ANTLR start "rule__HorizontalLayout__Group_3_1__1"
+ // InternalRBAModel.g:20874:1: rule__HorizontalLayout__Group_3_1__1 : rule__HorizontalLayout__Group_3_1__1__Impl rule__HorizontalLayout__Group_3_1__2 ;
+ public final void rule__HorizontalLayout__Group_3_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20878:1: ( rule__HorizontalLayout__Group_3_1__1__Impl rule__HorizontalLayout__Group_3_1__2 )
+ // InternalRBAModel.g:20879:2: rule__HorizontalLayout__Group_3_1__1__Impl rule__HorizontalLayout__Group_3_1__2
+ {
+ pushFollow(FOLLOW_39);
+ rule__HorizontalLayout__Group_3_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__HorizontalLayout__Group_3_1__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HorizontalLayout__Group_3_1__1"
+
+
+ // $ANTLR start "rule__HorizontalLayout__Group_3_1__1__Impl"
+ // InternalRBAModel.g:20886:1: rule__HorizontalLayout__Group_3_1__1__Impl : ( '[' ) ;
+ public final void rule__HorizontalLayout__Group_3_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20890:1: ( ( '[' ) )
+ // InternalRBAModel.g:20891:1: ( '[' )
+ {
+ // InternalRBAModel.g:20891:1: ( '[' )
+ // InternalRBAModel.g:20892:2: '['
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getHorizontalLayoutAccess().getLeftSquareBracketKeyword_3_1_1());
+ }
+ match(input,114,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getHorizontalLayoutAccess().getLeftSquareBracketKeyword_3_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HorizontalLayout__Group_3_1__1__Impl"
+
+
+ // $ANTLR start "rule__HorizontalLayout__Group_3_1__2"
+ // InternalRBAModel.g:20901:1: rule__HorizontalLayout__Group_3_1__2 : rule__HorizontalLayout__Group_3_1__2__Impl rule__HorizontalLayout__Group_3_1__3 ;
+ public final void rule__HorizontalLayout__Group_3_1__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20905:1: ( rule__HorizontalLayout__Group_3_1__2__Impl rule__HorizontalLayout__Group_3_1__3 )
+ // InternalRBAModel.g:20906:2: rule__HorizontalLayout__Group_3_1__2__Impl rule__HorizontalLayout__Group_3_1__3
+ {
+ pushFollow(FOLLOW_39);
+ rule__HorizontalLayout__Group_3_1__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__HorizontalLayout__Group_3_1__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HorizontalLayout__Group_3_1__2"
+
+
+ // $ANTLR start "rule__HorizontalLayout__Group_3_1__2__Impl"
+ // InternalRBAModel.g:20913:1: rule__HorizontalLayout__Group_3_1__2__Impl : ( ( rule__HorizontalLayout__Group_3_1_2__0 )? ) ;
+ public final void rule__HorizontalLayout__Group_3_1__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20917:1: ( ( ( rule__HorizontalLayout__Group_3_1_2__0 )? ) )
+ // InternalRBAModel.g:20918:1: ( ( rule__HorizontalLayout__Group_3_1_2__0 )? )
+ {
+ // InternalRBAModel.g:20918:1: ( ( rule__HorizontalLayout__Group_3_1_2__0 )? )
+ // InternalRBAModel.g:20919:2: ( rule__HorizontalLayout__Group_3_1_2__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getHorizontalLayoutAccess().getGroup_3_1_2());
+ }
+ // InternalRBAModel.g:20920:2: ( rule__HorizontalLayout__Group_3_1_2__0 )?
+ int alt90=2;
+ int LA90_0 = input.LA(1);
+
+ if ( (LA90_0==RULE_ID) ) {
+ alt90=1;
+ }
+ switch (alt90) {
+ case 1 :
+ // InternalRBAModel.g:20920:3: rule__HorizontalLayout__Group_3_1_2__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__HorizontalLayout__Group_3_1_2__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getHorizontalLayoutAccess().getGroup_3_1_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HorizontalLayout__Group_3_1__2__Impl"
+
+
+ // $ANTLR start "rule__HorizontalLayout__Group_3_1__3"
+ // InternalRBAModel.g:20928:1: rule__HorizontalLayout__Group_3_1__3 : rule__HorizontalLayout__Group_3_1__3__Impl ;
+ public final void rule__HorizontalLayout__Group_3_1__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20932:1: ( rule__HorizontalLayout__Group_3_1__3__Impl )
+ // InternalRBAModel.g:20933:2: rule__HorizontalLayout__Group_3_1__3__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__HorizontalLayout__Group_3_1__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HorizontalLayout__Group_3_1__3"
+
+
+ // $ANTLR start "rule__HorizontalLayout__Group_3_1__3__Impl"
+ // InternalRBAModel.g:20939:1: rule__HorizontalLayout__Group_3_1__3__Impl : ( ']' ) ;
+ public final void rule__HorizontalLayout__Group_3_1__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20943:1: ( ( ']' ) )
+ // InternalRBAModel.g:20944:1: ( ']' )
+ {
+ // InternalRBAModel.g:20944:1: ( ']' )
+ // InternalRBAModel.g:20945:2: ']'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getHorizontalLayoutAccess().getRightSquareBracketKeyword_3_1_3());
+ }
+ match(input,115,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getHorizontalLayoutAccess().getRightSquareBracketKeyword_3_1_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HorizontalLayout__Group_3_1__3__Impl"
+
+
+ // $ANTLR start "rule__HorizontalLayout__Group_3_1_2__0"
+ // InternalRBAModel.g:20955:1: rule__HorizontalLayout__Group_3_1_2__0 : rule__HorizontalLayout__Group_3_1_2__0__Impl rule__HorizontalLayout__Group_3_1_2__1 ;
+ public final void rule__HorizontalLayout__Group_3_1_2__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20959:1: ( rule__HorizontalLayout__Group_3_1_2__0__Impl rule__HorizontalLayout__Group_3_1_2__1 )
+ // InternalRBAModel.g:20960:2: rule__HorizontalLayout__Group_3_1_2__0__Impl rule__HorizontalLayout__Group_3_1_2__1
+ {
+ pushFollow(FOLLOW_17);
+ rule__HorizontalLayout__Group_3_1_2__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__HorizontalLayout__Group_3_1_2__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HorizontalLayout__Group_3_1_2__0"
+
+
+ // $ANTLR start "rule__HorizontalLayout__Group_3_1_2__0__Impl"
+ // InternalRBAModel.g:20967:1: rule__HorizontalLayout__Group_3_1_2__0__Impl : ( ( rule__HorizontalLayout__SubareaAssignment_3_1_2_0 ) ) ;
+ public final void rule__HorizontalLayout__Group_3_1_2__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20971:1: ( ( ( rule__HorizontalLayout__SubareaAssignment_3_1_2_0 ) ) )
+ // InternalRBAModel.g:20972:1: ( ( rule__HorizontalLayout__SubareaAssignment_3_1_2_0 ) )
+ {
+ // InternalRBAModel.g:20972:1: ( ( rule__HorizontalLayout__SubareaAssignment_3_1_2_0 ) )
+ // InternalRBAModel.g:20973:2: ( rule__HorizontalLayout__SubareaAssignment_3_1_2_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getHorizontalLayoutAccess().getSubareaAssignment_3_1_2_0());
+ }
+ // InternalRBAModel.g:20974:2: ( rule__HorizontalLayout__SubareaAssignment_3_1_2_0 )
+ // InternalRBAModel.g:20974:3: rule__HorizontalLayout__SubareaAssignment_3_1_2_0
+ {
+ pushFollow(FOLLOW_2);
+ rule__HorizontalLayout__SubareaAssignment_3_1_2_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getHorizontalLayoutAccess().getSubareaAssignment_3_1_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HorizontalLayout__Group_3_1_2__0__Impl"
+
+
+ // $ANTLR start "rule__HorizontalLayout__Group_3_1_2__1"
+ // InternalRBAModel.g:20982:1: rule__HorizontalLayout__Group_3_1_2__1 : rule__HorizontalLayout__Group_3_1_2__1__Impl ;
+ public final void rule__HorizontalLayout__Group_3_1_2__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20986:1: ( rule__HorizontalLayout__Group_3_1_2__1__Impl )
+ // InternalRBAModel.g:20987:2: rule__HorizontalLayout__Group_3_1_2__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__HorizontalLayout__Group_3_1_2__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HorizontalLayout__Group_3_1_2__1"
+
+
+ // $ANTLR start "rule__HorizontalLayout__Group_3_1_2__1__Impl"
+ // InternalRBAModel.g:20993:1: rule__HorizontalLayout__Group_3_1_2__1__Impl : ( ( rule__HorizontalLayout__Group_3_1_2_1__0 )* ) ;
+ public final void rule__HorizontalLayout__Group_3_1_2__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:20997:1: ( ( ( rule__HorizontalLayout__Group_3_1_2_1__0 )* ) )
+ // InternalRBAModel.g:20998:1: ( ( rule__HorizontalLayout__Group_3_1_2_1__0 )* )
+ {
+ // InternalRBAModel.g:20998:1: ( ( rule__HorizontalLayout__Group_3_1_2_1__0 )* )
+ // InternalRBAModel.g:20999:2: ( rule__HorizontalLayout__Group_3_1_2_1__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getHorizontalLayoutAccess().getGroup_3_1_2_1());
+ }
+ // InternalRBAModel.g:21000:2: ( rule__HorizontalLayout__Group_3_1_2_1__0 )*
+ loop91:
+ do {
+ int alt91=2;
+ int LA91_0 = input.LA(1);
+
+ if ( (LA91_0==103) ) {
+ alt91=1;
+ }
+
+
+ switch (alt91) {
+ case 1 :
+ // InternalRBAModel.g:21000:3: rule__HorizontalLayout__Group_3_1_2_1__0
+ {
+ pushFollow(FOLLOW_18);
+ rule__HorizontalLayout__Group_3_1_2_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop91;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getHorizontalLayoutAccess().getGroup_3_1_2_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HorizontalLayout__Group_3_1_2__1__Impl"
+
+
+ // $ANTLR start "rule__HorizontalLayout__Group_3_1_2_1__0"
+ // InternalRBAModel.g:21009:1: rule__HorizontalLayout__Group_3_1_2_1__0 : rule__HorizontalLayout__Group_3_1_2_1__0__Impl rule__HorizontalLayout__Group_3_1_2_1__1 ;
+ public final void rule__HorizontalLayout__Group_3_1_2_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21013:1: ( rule__HorizontalLayout__Group_3_1_2_1__0__Impl rule__HorizontalLayout__Group_3_1_2_1__1 )
+ // InternalRBAModel.g:21014:2: rule__HorizontalLayout__Group_3_1_2_1__0__Impl rule__HorizontalLayout__Group_3_1_2_1__1
+ {
+ pushFollow(FOLLOW_7);
+ rule__HorizontalLayout__Group_3_1_2_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__HorizontalLayout__Group_3_1_2_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HorizontalLayout__Group_3_1_2_1__0"
+
+
+ // $ANTLR start "rule__HorizontalLayout__Group_3_1_2_1__0__Impl"
+ // InternalRBAModel.g:21021:1: rule__HorizontalLayout__Group_3_1_2_1__0__Impl : ( ',' ) ;
+ public final void rule__HorizontalLayout__Group_3_1_2_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21025:1: ( ( ',' ) )
+ // InternalRBAModel.g:21026:1: ( ',' )
+ {
+ // InternalRBAModel.g:21026:1: ( ',' )
+ // InternalRBAModel.g:21027:2: ','
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getHorizontalLayoutAccess().getCommaKeyword_3_1_2_1_0());
+ }
+ match(input,103,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getHorizontalLayoutAccess().getCommaKeyword_3_1_2_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HorizontalLayout__Group_3_1_2_1__0__Impl"
+
+
+ // $ANTLR start "rule__HorizontalLayout__Group_3_1_2_1__1"
+ // InternalRBAModel.g:21036:1: rule__HorizontalLayout__Group_3_1_2_1__1 : rule__HorizontalLayout__Group_3_1_2_1__1__Impl ;
+ public final void rule__HorizontalLayout__Group_3_1_2_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21040:1: ( rule__HorizontalLayout__Group_3_1_2_1__1__Impl )
+ // InternalRBAModel.g:21041:2: rule__HorizontalLayout__Group_3_1_2_1__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__HorizontalLayout__Group_3_1_2_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HorizontalLayout__Group_3_1_2_1__1"
+
+
+ // $ANTLR start "rule__HorizontalLayout__Group_3_1_2_1__1__Impl"
+ // InternalRBAModel.g:21047:1: rule__HorizontalLayout__Group_3_1_2_1__1__Impl : ( ( rule__HorizontalLayout__SubareaAssignment_3_1_2_1_1 ) ) ;
+ public final void rule__HorizontalLayout__Group_3_1_2_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21051:1: ( ( ( rule__HorizontalLayout__SubareaAssignment_3_1_2_1_1 ) ) )
+ // InternalRBAModel.g:21052:1: ( ( rule__HorizontalLayout__SubareaAssignment_3_1_2_1_1 ) )
+ {
+ // InternalRBAModel.g:21052:1: ( ( rule__HorizontalLayout__SubareaAssignment_3_1_2_1_1 ) )
+ // InternalRBAModel.g:21053:2: ( rule__HorizontalLayout__SubareaAssignment_3_1_2_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getHorizontalLayoutAccess().getSubareaAssignment_3_1_2_1_1());
+ }
+ // InternalRBAModel.g:21054:2: ( rule__HorizontalLayout__SubareaAssignment_3_1_2_1_1 )
+ // InternalRBAModel.g:21054:3: rule__HorizontalLayout__SubareaAssignment_3_1_2_1_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__HorizontalLayout__SubareaAssignment_3_1_2_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getHorizontalLayoutAccess().getSubareaAssignment_3_1_2_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HorizontalLayout__Group_3_1_2_1__1__Impl"
+
+
+ // $ANTLR start "rule__FixedPositionLayout__Group__0"
+ // InternalRBAModel.g:21063:1: rule__FixedPositionLayout__Group__0 : rule__FixedPositionLayout__Group__0__Impl rule__FixedPositionLayout__Group__1 ;
+ public final void rule__FixedPositionLayout__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21067:1: ( rule__FixedPositionLayout__Group__0__Impl rule__FixedPositionLayout__Group__1 )
+ // InternalRBAModel.g:21068:2: rule__FixedPositionLayout__Group__0__Impl rule__FixedPositionLayout__Group__1
+ {
+ pushFollow(FOLLOW_49);
+ rule__FixedPositionLayout__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__FixedPositionLayout__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FixedPositionLayout__Group__0"
+
+
+ // $ANTLR start "rule__FixedPositionLayout__Group__0__Impl"
+ // InternalRBAModel.g:21075:1: rule__FixedPositionLayout__Group__0__Impl : ( () ) ;
+ public final void rule__FixedPositionLayout__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21079:1: ( ( () ) )
+ // InternalRBAModel.g:21080:1: ( () )
+ {
+ // InternalRBAModel.g:21080:1: ( () )
+ // InternalRBAModel.g:21081:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFixedPositionLayoutAccess().getFixedPositionLayoutAction_0());
+ }
+ // InternalRBAModel.g:21082:2: ()
+ // InternalRBAModel.g:21082:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFixedPositionLayoutAccess().getFixedPositionLayoutAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FixedPositionLayout__Group__0__Impl"
+
+
+ // $ANTLR start "rule__FixedPositionLayout__Group__1"
+ // InternalRBAModel.g:21090:1: rule__FixedPositionLayout__Group__1 : rule__FixedPositionLayout__Group__1__Impl rule__FixedPositionLayout__Group__2 ;
+ public final void rule__FixedPositionLayout__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21094:1: ( rule__FixedPositionLayout__Group__1__Impl rule__FixedPositionLayout__Group__2 )
+ // InternalRBAModel.g:21095:2: rule__FixedPositionLayout__Group__1__Impl rule__FixedPositionLayout__Group__2
+ {
+ pushFollow(FOLLOW_11);
+ rule__FixedPositionLayout__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__FixedPositionLayout__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FixedPositionLayout__Group__1"
+
+
+ // $ANTLR start "rule__FixedPositionLayout__Group__1__Impl"
+ // InternalRBAModel.g:21102:1: rule__FixedPositionLayout__Group__1__Impl : ( 'FixedPositionLayout' ) ;
+ public final void rule__FixedPositionLayout__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21106:1: ( ( 'FixedPositionLayout' ) )
+ // InternalRBAModel.g:21107:1: ( 'FixedPositionLayout' )
+ {
+ // InternalRBAModel.g:21107:1: ( 'FixedPositionLayout' )
+ // InternalRBAModel.g:21108:2: 'FixedPositionLayout'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFixedPositionLayoutAccess().getFixedPositionLayoutKeyword_1());
+ }
+ match(input,163,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFixedPositionLayoutAccess().getFixedPositionLayoutKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FixedPositionLayout__Group__1__Impl"
+
+
+ // $ANTLR start "rule__FixedPositionLayout__Group__2"
+ // InternalRBAModel.g:21117:1: rule__FixedPositionLayout__Group__2 : rule__FixedPositionLayout__Group__2__Impl rule__FixedPositionLayout__Group__3 ;
+ public final void rule__FixedPositionLayout__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21121:1: ( rule__FixedPositionLayout__Group__2__Impl rule__FixedPositionLayout__Group__3 )
+ // InternalRBAModel.g:21122:2: rule__FixedPositionLayout__Group__2__Impl rule__FixedPositionLayout__Group__3
+ {
+ pushFollow(FOLLOW_153);
+ rule__FixedPositionLayout__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__FixedPositionLayout__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FixedPositionLayout__Group__2"
+
+
+ // $ANTLR start "rule__FixedPositionLayout__Group__2__Impl"
+ // InternalRBAModel.g:21129:1: rule__FixedPositionLayout__Group__2__Impl : ( '{' ) ;
+ public final void rule__FixedPositionLayout__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21133:1: ( ( '{' ) )
+ // InternalRBAModel.g:21134:1: ( '{' )
+ {
+ // InternalRBAModel.g:21134:1: ( '{' )
+ // InternalRBAModel.g:21135:2: '{'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFixedPositionLayoutAccess().getLeftCurlyBracketKeyword_2());
+ }
+ match(input,101,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFixedPositionLayoutAccess().getLeftCurlyBracketKeyword_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FixedPositionLayout__Group__2__Impl"
+
+
+ // $ANTLR start "rule__FixedPositionLayout__Group__3"
+ // InternalRBAModel.g:21144:1: rule__FixedPositionLayout__Group__3 : rule__FixedPositionLayout__Group__3__Impl rule__FixedPositionLayout__Group__4 ;
+ public final void rule__FixedPositionLayout__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21148:1: ( rule__FixedPositionLayout__Group__3__Impl rule__FixedPositionLayout__Group__4 )
+ // InternalRBAModel.g:21149:2: rule__FixedPositionLayout__Group__3__Impl rule__FixedPositionLayout__Group__4
+ {
+ pushFollow(FOLLOW_153);
+ rule__FixedPositionLayout__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__FixedPositionLayout__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FixedPositionLayout__Group__3"
+
+
+ // $ANTLR start "rule__FixedPositionLayout__Group__3__Impl"
+ // InternalRBAModel.g:21156:1: rule__FixedPositionLayout__Group__3__Impl : ( ( rule__FixedPositionLayout__SubAreaPositionAssignment_3 )* ) ;
+ public final void rule__FixedPositionLayout__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21160:1: ( ( ( rule__FixedPositionLayout__SubAreaPositionAssignment_3 )* ) )
+ // InternalRBAModel.g:21161:1: ( ( rule__FixedPositionLayout__SubAreaPositionAssignment_3 )* )
+ {
+ // InternalRBAModel.g:21161:1: ( ( rule__FixedPositionLayout__SubAreaPositionAssignment_3 )* )
+ // InternalRBAModel.g:21162:2: ( rule__FixedPositionLayout__SubAreaPositionAssignment_3 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFixedPositionLayoutAccess().getSubAreaPositionAssignment_3());
+ }
+ // InternalRBAModel.g:21163:2: ( rule__FixedPositionLayout__SubAreaPositionAssignment_3 )*
+ loop92:
+ do {
+ int alt92=2;
+ int LA92_0 = input.LA(1);
+
+ if ( (LA92_0==164) ) {
+ alt92=1;
+ }
+
+
+ switch (alt92) {
+ case 1 :
+ // InternalRBAModel.g:21163:3: rule__FixedPositionLayout__SubAreaPositionAssignment_3
+ {
+ pushFollow(FOLLOW_154);
+ rule__FixedPositionLayout__SubAreaPositionAssignment_3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop92;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFixedPositionLayoutAccess().getSubAreaPositionAssignment_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FixedPositionLayout__Group__3__Impl"
+
+
+ // $ANTLR start "rule__FixedPositionLayout__Group__4"
+ // InternalRBAModel.g:21171:1: rule__FixedPositionLayout__Group__4 : rule__FixedPositionLayout__Group__4__Impl ;
+ public final void rule__FixedPositionLayout__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21175:1: ( rule__FixedPositionLayout__Group__4__Impl )
+ // InternalRBAModel.g:21176:2: rule__FixedPositionLayout__Group__4__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__FixedPositionLayout__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FixedPositionLayout__Group__4"
+
+
+ // $ANTLR start "rule__FixedPositionLayout__Group__4__Impl"
+ // InternalRBAModel.g:21182:1: rule__FixedPositionLayout__Group__4__Impl : ( '}' ) ;
+ public final void rule__FixedPositionLayout__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21186:1: ( ( '}' ) )
+ // InternalRBAModel.g:21187:1: ( '}' )
+ {
+ // InternalRBAModel.g:21187:1: ( '}' )
+ // InternalRBAModel.g:21188:2: '}'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFixedPositionLayoutAccess().getRightCurlyBracketKeyword_4());
+ }
+ match(input,102,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFixedPositionLayoutAccess().getRightCurlyBracketKeyword_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FixedPositionLayout__Group__4__Impl"
+
+
+ // $ANTLR start "rule__PositionContainer__Group__0"
+ // InternalRBAModel.g:21198:1: rule__PositionContainer__Group__0 : rule__PositionContainer__Group__0__Impl rule__PositionContainer__Group__1 ;
+ public final void rule__PositionContainer__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21202:1: ( rule__PositionContainer__Group__0__Impl rule__PositionContainer__Group__1 )
+ // InternalRBAModel.g:21203:2: rule__PositionContainer__Group__0__Impl rule__PositionContainer__Group__1
+ {
+ pushFollow(FOLLOW_155);
+ rule__PositionContainer__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__PositionContainer__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PositionContainer__Group__0"
+
+
+ // $ANTLR start "rule__PositionContainer__Group__0__Impl"
+ // InternalRBAModel.g:21210:1: rule__PositionContainer__Group__0__Impl : ( () ) ;
+ public final void rule__PositionContainer__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21214:1: ( ( () ) )
+ // InternalRBAModel.g:21215:1: ( () )
+ {
+ // InternalRBAModel.g:21215:1: ( () )
+ // InternalRBAModel.g:21216:2: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPositionContainerAccess().getPositionContainerAction_0());
+ }
+ // InternalRBAModel.g:21217:2: ()
+ // InternalRBAModel.g:21217:3:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPositionContainerAccess().getPositionContainerAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PositionContainer__Group__0__Impl"
+
+
+ // $ANTLR start "rule__PositionContainer__Group__1"
+ // InternalRBAModel.g:21225:1: rule__PositionContainer__Group__1 : rule__PositionContainer__Group__1__Impl rule__PositionContainer__Group__2 ;
+ public final void rule__PositionContainer__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21229:1: ( rule__PositionContainer__Group__1__Impl rule__PositionContainer__Group__2 )
+ // InternalRBAModel.g:21230:2: rule__PositionContainer__Group__1__Impl rule__PositionContainer__Group__2
+ {
+ pushFollow(FOLLOW_11);
+ rule__PositionContainer__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__PositionContainer__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PositionContainer__Group__1"
+
+
+ // $ANTLR start "rule__PositionContainer__Group__1__Impl"
+ // InternalRBAModel.g:21237:1: rule__PositionContainer__Group__1__Impl : ( 'PositionContainer' ) ;
+ public final void rule__PositionContainer__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21241:1: ( ( 'PositionContainer' ) )
+ // InternalRBAModel.g:21242:1: ( 'PositionContainer' )
+ {
+ // InternalRBAModel.g:21242:1: ( 'PositionContainer' )
+ // InternalRBAModel.g:21243:2: 'PositionContainer'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPositionContainerAccess().getPositionContainerKeyword_1());
+ }
+ match(input,164,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPositionContainerAccess().getPositionContainerKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PositionContainer__Group__1__Impl"
+
+
+ // $ANTLR start "rule__PositionContainer__Group__2"
+ // InternalRBAModel.g:21252:1: rule__PositionContainer__Group__2 : rule__PositionContainer__Group__2__Impl rule__PositionContainer__Group__3 ;
+ public final void rule__PositionContainer__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21256:1: ( rule__PositionContainer__Group__2__Impl rule__PositionContainer__Group__3 )
+ // InternalRBAModel.g:21257:2: rule__PositionContainer__Group__2__Impl rule__PositionContainer__Group__3
+ {
+ pushFollow(FOLLOW_156);
+ rule__PositionContainer__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__PositionContainer__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PositionContainer__Group__2"
+
+
+ // $ANTLR start "rule__PositionContainer__Group__2__Impl"
+ // InternalRBAModel.g:21264:1: rule__PositionContainer__Group__2__Impl : ( '{' ) ;
+ public final void rule__PositionContainer__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21268:1: ( ( '{' ) )
+ // InternalRBAModel.g:21269:1: ( '{' )
+ {
+ // InternalRBAModel.g:21269:1: ( '{' )
+ // InternalRBAModel.g:21270:2: '{'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPositionContainerAccess().getLeftCurlyBracketKeyword_2());
+ }
+ match(input,101,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPositionContainerAccess().getLeftCurlyBracketKeyword_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PositionContainer__Group__2__Impl"
+
+
+ // $ANTLR start "rule__PositionContainer__Group__3"
+ // InternalRBAModel.g:21279:1: rule__PositionContainer__Group__3 : rule__PositionContainer__Group__3__Impl rule__PositionContainer__Group__4 ;
+ public final void rule__PositionContainer__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21283:1: ( rule__PositionContainer__Group__3__Impl rule__PositionContainer__Group__4 )
+ // InternalRBAModel.g:21284:2: rule__PositionContainer__Group__3__Impl rule__PositionContainer__Group__4
+ {
+ pushFollow(FOLLOW_22);
+ rule__PositionContainer__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__PositionContainer__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PositionContainer__Group__3"
+
+
+ // $ANTLR start "rule__PositionContainer__Group__3__Impl"
+ // InternalRBAModel.g:21291:1: rule__PositionContainer__Group__3__Impl : ( ( rule__PositionContainer__UnorderedGroup_3 ) ) ;
+ public final void rule__PositionContainer__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21295:1: ( ( ( rule__PositionContainer__UnorderedGroup_3 ) ) )
+ // InternalRBAModel.g:21296:1: ( ( rule__PositionContainer__UnorderedGroup_3 ) )
+ {
+ // InternalRBAModel.g:21296:1: ( ( rule__PositionContainer__UnorderedGroup_3 ) )
+ // InternalRBAModel.g:21297:2: ( rule__PositionContainer__UnorderedGroup_3 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3());
+ }
+ // InternalRBAModel.g:21298:2: ( rule__PositionContainer__UnorderedGroup_3 )
+ // InternalRBAModel.g:21298:3: rule__PositionContainer__UnorderedGroup_3
+ {
+ pushFollow(FOLLOW_2);
+ rule__PositionContainer__UnorderedGroup_3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PositionContainer__Group__3__Impl"
+
+
+ // $ANTLR start "rule__PositionContainer__Group__4"
+ // InternalRBAModel.g:21306:1: rule__PositionContainer__Group__4 : rule__PositionContainer__Group__4__Impl ;
+ public final void rule__PositionContainer__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21310:1: ( rule__PositionContainer__Group__4__Impl )
+ // InternalRBAModel.g:21311:2: rule__PositionContainer__Group__4__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__PositionContainer__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PositionContainer__Group__4"
+
+
+ // $ANTLR start "rule__PositionContainer__Group__4__Impl"
+ // InternalRBAModel.g:21317:1: rule__PositionContainer__Group__4__Impl : ( '}' ) ;
+ public final void rule__PositionContainer__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21321:1: ( ( '}' ) )
+ // InternalRBAModel.g:21322:1: ( '}' )
+ {
+ // InternalRBAModel.g:21322:1: ( '}' )
+ // InternalRBAModel.g:21323:2: '}'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPositionContainerAccess().getRightCurlyBracketKeyword_4());
+ }
+ match(input,102,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPositionContainerAccess().getRightCurlyBracketKeyword_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PositionContainer__Group__4__Impl"
+
+
+ // $ANTLR start "rule__PositionContainer__Group_3_0__0"
+ // InternalRBAModel.g:21333:1: rule__PositionContainer__Group_3_0__0 : rule__PositionContainer__Group_3_0__0__Impl rule__PositionContainer__Group_3_0__1 ;
+ public final void rule__PositionContainer__Group_3_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21337:1: ( rule__PositionContainer__Group_3_0__0__Impl rule__PositionContainer__Group_3_0__1 )
+ // InternalRBAModel.g:21338:2: rule__PositionContainer__Group_3_0__0__Impl rule__PositionContainer__Group_3_0__1
+ {
+ pushFollow(FOLLOW_10);
+ rule__PositionContainer__Group_3_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__PositionContainer__Group_3_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PositionContainer__Group_3_0__0"
+
+
+ // $ANTLR start "rule__PositionContainer__Group_3_0__0__Impl"
+ // InternalRBAModel.g:21345:1: rule__PositionContainer__Group_3_0__0__Impl : ( 'x:' ) ;
+ public final void rule__PositionContainer__Group_3_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21349:1: ( ( 'x:' ) )
+ // InternalRBAModel.g:21350:1: ( 'x:' )
+ {
+ // InternalRBAModel.g:21350:1: ( 'x:' )
+ // InternalRBAModel.g:21351:2: 'x:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPositionContainerAccess().getXKeyword_3_0_0());
+ }
+ match(input,121,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPositionContainerAccess().getXKeyword_3_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PositionContainer__Group_3_0__0__Impl"
+
+
+ // $ANTLR start "rule__PositionContainer__Group_3_0__1"
+ // InternalRBAModel.g:21360:1: rule__PositionContainer__Group_3_0__1 : rule__PositionContainer__Group_3_0__1__Impl ;
+ public final void rule__PositionContainer__Group_3_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21364:1: ( rule__PositionContainer__Group_3_0__1__Impl )
+ // InternalRBAModel.g:21365:2: rule__PositionContainer__Group_3_0__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__PositionContainer__Group_3_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PositionContainer__Group_3_0__1"
+
+
+ // $ANTLR start "rule__PositionContainer__Group_3_0__1__Impl"
+ // InternalRBAModel.g:21371:1: rule__PositionContainer__Group_3_0__1__Impl : ( ( rule__PositionContainer__XAssignment_3_0_1 ) ) ;
+ public final void rule__PositionContainer__Group_3_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21375:1: ( ( ( rule__PositionContainer__XAssignment_3_0_1 ) ) )
+ // InternalRBAModel.g:21376:1: ( ( rule__PositionContainer__XAssignment_3_0_1 ) )
+ {
+ // InternalRBAModel.g:21376:1: ( ( rule__PositionContainer__XAssignment_3_0_1 ) )
+ // InternalRBAModel.g:21377:2: ( rule__PositionContainer__XAssignment_3_0_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPositionContainerAccess().getXAssignment_3_0_1());
+ }
+ // InternalRBAModel.g:21378:2: ( rule__PositionContainer__XAssignment_3_0_1 )
+ // InternalRBAModel.g:21378:3: rule__PositionContainer__XAssignment_3_0_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__PositionContainer__XAssignment_3_0_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPositionContainerAccess().getXAssignment_3_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PositionContainer__Group_3_0__1__Impl"
+
+
+ // $ANTLR start "rule__PositionContainer__Group_3_1__0"
+ // InternalRBAModel.g:21387:1: rule__PositionContainer__Group_3_1__0 : rule__PositionContainer__Group_3_1__0__Impl rule__PositionContainer__Group_3_1__1 ;
+ public final void rule__PositionContainer__Group_3_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21391:1: ( rule__PositionContainer__Group_3_1__0__Impl rule__PositionContainer__Group_3_1__1 )
+ // InternalRBAModel.g:21392:2: rule__PositionContainer__Group_3_1__0__Impl rule__PositionContainer__Group_3_1__1
+ {
+ pushFollow(FOLLOW_10);
+ rule__PositionContainer__Group_3_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__PositionContainer__Group_3_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PositionContainer__Group_3_1__0"
+
+
+ // $ANTLR start "rule__PositionContainer__Group_3_1__0__Impl"
+ // InternalRBAModel.g:21399:1: rule__PositionContainer__Group_3_1__0__Impl : ( 'y:' ) ;
+ public final void rule__PositionContainer__Group_3_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21403:1: ( ( 'y:' ) )
+ // InternalRBAModel.g:21404:1: ( 'y:' )
+ {
+ // InternalRBAModel.g:21404:1: ( 'y:' )
+ // InternalRBAModel.g:21405:2: 'y:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPositionContainerAccess().getYKeyword_3_1_0());
+ }
+ match(input,122,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPositionContainerAccess().getYKeyword_3_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PositionContainer__Group_3_1__0__Impl"
+
+
+ // $ANTLR start "rule__PositionContainer__Group_3_1__1"
+ // InternalRBAModel.g:21414:1: rule__PositionContainer__Group_3_1__1 : rule__PositionContainer__Group_3_1__1__Impl ;
+ public final void rule__PositionContainer__Group_3_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21418:1: ( rule__PositionContainer__Group_3_1__1__Impl )
+ // InternalRBAModel.g:21419:2: rule__PositionContainer__Group_3_1__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__PositionContainer__Group_3_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PositionContainer__Group_3_1__1"
+
+
+ // $ANTLR start "rule__PositionContainer__Group_3_1__1__Impl"
+ // InternalRBAModel.g:21425:1: rule__PositionContainer__Group_3_1__1__Impl : ( ( rule__PositionContainer__YAssignment_3_1_1 ) ) ;
+ public final void rule__PositionContainer__Group_3_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21429:1: ( ( ( rule__PositionContainer__YAssignment_3_1_1 ) ) )
+ // InternalRBAModel.g:21430:1: ( ( rule__PositionContainer__YAssignment_3_1_1 ) )
+ {
+ // InternalRBAModel.g:21430:1: ( ( rule__PositionContainer__YAssignment_3_1_1 ) )
+ // InternalRBAModel.g:21431:2: ( rule__PositionContainer__YAssignment_3_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPositionContainerAccess().getYAssignment_3_1_1());
+ }
+ // InternalRBAModel.g:21432:2: ( rule__PositionContainer__YAssignment_3_1_1 )
+ // InternalRBAModel.g:21432:3: rule__PositionContainer__YAssignment_3_1_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__PositionContainer__YAssignment_3_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPositionContainerAccess().getYAssignment_3_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PositionContainer__Group_3_1__1__Impl"
+
+
+ // $ANTLR start "rule__PositionContainer__Group_3_2__0"
+ // InternalRBAModel.g:21441:1: rule__PositionContainer__Group_3_2__0 : rule__PositionContainer__Group_3_2__0__Impl rule__PositionContainer__Group_3_2__1 ;
+ public final void rule__PositionContainer__Group_3_2__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21445:1: ( rule__PositionContainer__Group_3_2__0__Impl rule__PositionContainer__Group_3_2__1 )
+ // InternalRBAModel.g:21446:2: rule__PositionContainer__Group_3_2__0__Impl rule__PositionContainer__Group_3_2__1
+ {
+ pushFollow(FOLLOW_151);
+ rule__PositionContainer__Group_3_2__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__PositionContainer__Group_3_2__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PositionContainer__Group_3_2__0"
+
+
+ // $ANTLR start "rule__PositionContainer__Group_3_2__0__Impl"
+ // InternalRBAModel.g:21453:1: rule__PositionContainer__Group_3_2__0__Impl : ( 'basePoint:' ) ;
+ public final void rule__PositionContainer__Group_3_2__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21457:1: ( ( 'basePoint:' ) )
+ // InternalRBAModel.g:21458:1: ( 'basePoint:' )
+ {
+ // InternalRBAModel.g:21458:1: ( 'basePoint:' )
+ // InternalRBAModel.g:21459:2: 'basePoint:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPositionContainerAccess().getBasePointKeyword_3_2_0());
+ }
+ match(input,160,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPositionContainerAccess().getBasePointKeyword_3_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PositionContainer__Group_3_2__0__Impl"
+
+
+ // $ANTLR start "rule__PositionContainer__Group_3_2__1"
+ // InternalRBAModel.g:21468:1: rule__PositionContainer__Group_3_2__1 : rule__PositionContainer__Group_3_2__1__Impl ;
+ public final void rule__PositionContainer__Group_3_2__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21472:1: ( rule__PositionContainer__Group_3_2__1__Impl )
+ // InternalRBAModel.g:21473:2: rule__PositionContainer__Group_3_2__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__PositionContainer__Group_3_2__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PositionContainer__Group_3_2__1"
+
+
+ // $ANTLR start "rule__PositionContainer__Group_3_2__1__Impl"
+ // InternalRBAModel.g:21479:1: rule__PositionContainer__Group_3_2__1__Impl : ( ( rule__PositionContainer__BasePointAssignment_3_2_1 ) ) ;
+ public final void rule__PositionContainer__Group_3_2__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21483:1: ( ( ( rule__PositionContainer__BasePointAssignment_3_2_1 ) ) )
+ // InternalRBAModel.g:21484:1: ( ( rule__PositionContainer__BasePointAssignment_3_2_1 ) )
+ {
+ // InternalRBAModel.g:21484:1: ( ( rule__PositionContainer__BasePointAssignment_3_2_1 ) )
+ // InternalRBAModel.g:21485:2: ( rule__PositionContainer__BasePointAssignment_3_2_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPositionContainerAccess().getBasePointAssignment_3_2_1());
+ }
+ // InternalRBAModel.g:21486:2: ( rule__PositionContainer__BasePointAssignment_3_2_1 )
+ // InternalRBAModel.g:21486:3: rule__PositionContainer__BasePointAssignment_3_2_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__PositionContainer__BasePointAssignment_3_2_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPositionContainerAccess().getBasePointAssignment_3_2_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PositionContainer__Group_3_2__1__Impl"
+
+
+ // $ANTLR start "rule__PositionContainer__Group_3_3__0"
+ // InternalRBAModel.g:21495:1: rule__PositionContainer__Group_3_3__0 : rule__PositionContainer__Group_3_3__0__Impl rule__PositionContainer__Group_3_3__1 ;
+ public final void rule__PositionContainer__Group_3_3__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21499:1: ( rule__PositionContainer__Group_3_3__0__Impl rule__PositionContainer__Group_3_3__1 )
+ // InternalRBAModel.g:21500:2: rule__PositionContainer__Group_3_3__0__Impl rule__PositionContainer__Group_3_3__1
+ {
+ pushFollow(FOLLOW_7);
+ rule__PositionContainer__Group_3_3__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__PositionContainer__Group_3_3__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PositionContainer__Group_3_3__0"
+
+
+ // $ANTLR start "rule__PositionContainer__Group_3_3__0__Impl"
+ // InternalRBAModel.g:21507:1: rule__PositionContainer__Group_3_3__0__Impl : ( 'areaReference:' ) ;
+ public final void rule__PositionContainer__Group_3_3__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21511:1: ( ( 'areaReference:' ) )
+ // InternalRBAModel.g:21512:1: ( 'areaReference:' )
+ {
+ // InternalRBAModel.g:21512:1: ( 'areaReference:' )
+ // InternalRBAModel.g:21513:2: 'areaReference:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPositionContainerAccess().getAreaReferenceKeyword_3_3_0());
+ }
+ match(input,165,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPositionContainerAccess().getAreaReferenceKeyword_3_3_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PositionContainer__Group_3_3__0__Impl"
+
+
+ // $ANTLR start "rule__PositionContainer__Group_3_3__1"
+ // InternalRBAModel.g:21522:1: rule__PositionContainer__Group_3_3__1 : rule__PositionContainer__Group_3_3__1__Impl ;
+ public final void rule__PositionContainer__Group_3_3__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21526:1: ( rule__PositionContainer__Group_3_3__1__Impl )
+ // InternalRBAModel.g:21527:2: rule__PositionContainer__Group_3_3__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__PositionContainer__Group_3_3__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PositionContainer__Group_3_3__1"
+
+
+ // $ANTLR start "rule__PositionContainer__Group_3_3__1__Impl"
+ // InternalRBAModel.g:21533:1: rule__PositionContainer__Group_3_3__1__Impl : ( ( rule__PositionContainer__AreaAssignment_3_3_1 ) ) ;
+ public final void rule__PositionContainer__Group_3_3__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21537:1: ( ( ( rule__PositionContainer__AreaAssignment_3_3_1 ) ) )
+ // InternalRBAModel.g:21538:1: ( ( rule__PositionContainer__AreaAssignment_3_3_1 ) )
+ {
+ // InternalRBAModel.g:21538:1: ( ( rule__PositionContainer__AreaAssignment_3_3_1 ) )
+ // InternalRBAModel.g:21539:2: ( rule__PositionContainer__AreaAssignment_3_3_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPositionContainerAccess().getAreaAssignment_3_3_1());
+ }
+ // InternalRBAModel.g:21540:2: ( rule__PositionContainer__AreaAssignment_3_3_1 )
+ // InternalRBAModel.g:21540:3: rule__PositionContainer__AreaAssignment_3_3_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__PositionContainer__AreaAssignment_3_3_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPositionContainerAccess().getAreaAssignment_3_3_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PositionContainer__Group_3_3__1__Impl"
+
+
+ // $ANTLR start "rule__EInt__Group__0"
+ // InternalRBAModel.g:21549:1: rule__EInt__Group__0 : rule__EInt__Group__0__Impl rule__EInt__Group__1 ;
+ public final void rule__EInt__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21553:1: ( rule__EInt__Group__0__Impl rule__EInt__Group__1 )
+ // InternalRBAModel.g:21554:2: rule__EInt__Group__0__Impl rule__EInt__Group__1
+ {
+ pushFollow(FOLLOW_10);
+ rule__EInt__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__EInt__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__EInt__Group__0"
+
+
+ // $ANTLR start "rule__EInt__Group__0__Impl"
+ // InternalRBAModel.g:21561:1: rule__EInt__Group__0__Impl : ( ( '-' )? ) ;
+ public final void rule__EInt__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21565:1: ( ( ( '-' )? ) )
+ // InternalRBAModel.g:21566:1: ( ( '-' )? )
+ {
+ // InternalRBAModel.g:21566:1: ( ( '-' )? )
+ // InternalRBAModel.g:21567:2: ( '-' )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getEIntAccess().getHyphenMinusKeyword_0());
+ }
+ // InternalRBAModel.g:21568:2: ( '-' )?
+ int alt93=2;
+ int LA93_0 = input.LA(1);
+
+ if ( (LA93_0==166) ) {
+ alt93=1;
+ }
+ switch (alt93) {
+ case 1 :
+ // InternalRBAModel.g:21568:3: '-'
+ {
+ match(input,166,FOLLOW_2); if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getEIntAccess().getHyphenMinusKeyword_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__EInt__Group__0__Impl"
+
+
+ // $ANTLR start "rule__EInt__Group__1"
+ // InternalRBAModel.g:21576:1: rule__EInt__Group__1 : rule__EInt__Group__1__Impl ;
+ public final void rule__EInt__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21580:1: ( rule__EInt__Group__1__Impl )
+ // InternalRBAModel.g:21581:2: rule__EInt__Group__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__EInt__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__EInt__Group__1"
+
+
+ // $ANTLR start "rule__EInt__Group__1__Impl"
+ // InternalRBAModel.g:21587:1: rule__EInt__Group__1__Impl : ( RULE_INT ) ;
+ public final void rule__EInt__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21591:1: ( ( RULE_INT ) )
+ // InternalRBAModel.g:21592:1: ( RULE_INT )
+ {
+ // InternalRBAModel.g:21592:1: ( RULE_INT )
+ // InternalRBAModel.g:21593:2: RULE_INT
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getEIntAccess().getINTTerminalRuleCall_1());
+ }
+ match(input,RULE_INT,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getEIntAccess().getINTTerminalRuleCall_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__EInt__Group__1__Impl"
+
+
+ // $ANTLR start "rule__QualifiedNameWithWildcard__Group__0"
+ // InternalRBAModel.g:21603:1: rule__QualifiedNameWithWildcard__Group__0 : rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1 ;
+ public final void rule__QualifiedNameWithWildcard__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21607:1: ( rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1 )
+ // InternalRBAModel.g:21608:2: rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1
+ {
+ pushFollow(FOLLOW_157);
+ rule__QualifiedNameWithWildcard__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__QualifiedNameWithWildcard__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__QualifiedNameWithWildcard__Group__0"
+
+
+ // $ANTLR start "rule__QualifiedNameWithWildcard__Group__0__Impl"
+ // InternalRBAModel.g:21615:1: rule__QualifiedNameWithWildcard__Group__0__Impl : ( ruleQualifiedName ) ;
+ public final void rule__QualifiedNameWithWildcard__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21619:1: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:21620:1: ( ruleQualifiedName )
+ {
+ // InternalRBAModel.g:21620:1: ( ruleQualifiedName )
+ // InternalRBAModel.g:21621:2: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getQualifiedNameWithWildcardAccess().getQualifiedNameParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getQualifiedNameWithWildcardAccess().getQualifiedNameParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__QualifiedNameWithWildcard__Group__0__Impl"
+
+
+ // $ANTLR start "rule__QualifiedNameWithWildcard__Group__1"
+ // InternalRBAModel.g:21630:1: rule__QualifiedNameWithWildcard__Group__1 : rule__QualifiedNameWithWildcard__Group__1__Impl ;
+ public final void rule__QualifiedNameWithWildcard__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21634:1: ( rule__QualifiedNameWithWildcard__Group__1__Impl )
+ // InternalRBAModel.g:21635:2: rule__QualifiedNameWithWildcard__Group__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__QualifiedNameWithWildcard__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__QualifiedNameWithWildcard__Group__1"
+
+
+ // $ANTLR start "rule__QualifiedNameWithWildcard__Group__1__Impl"
+ // InternalRBAModel.g:21641:1: rule__QualifiedNameWithWildcard__Group__1__Impl : ( ( '.*' )? ) ;
+ public final void rule__QualifiedNameWithWildcard__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21645:1: ( ( ( '.*' )? ) )
+ // InternalRBAModel.g:21646:1: ( ( '.*' )? )
+ {
+ // InternalRBAModel.g:21646:1: ( ( '.*' )? )
+ // InternalRBAModel.g:21647:2: ( '.*' )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getQualifiedNameWithWildcardAccess().getFullStopAsteriskKeyword_1());
+ }
+ // InternalRBAModel.g:21648:2: ( '.*' )?
+ int alt94=2;
+ int LA94_0 = input.LA(1);
+
+ if ( (LA94_0==167) ) {
+ alt94=1;
+ }
+ switch (alt94) {
+ case 1 :
+ // InternalRBAModel.g:21648:3: '.*'
+ {
+ match(input,167,FOLLOW_2); if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getQualifiedNameWithWildcardAccess().getFullStopAsteriskKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__QualifiedNameWithWildcard__Group__1__Impl"
+
+
+ // $ANTLR start "rule__QualifiedName__Group__0"
+ // InternalRBAModel.g:21657:1: rule__QualifiedName__Group__0 : rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 ;
+ public final void rule__QualifiedName__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21661:1: ( rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 )
+ // InternalRBAModel.g:21662:2: rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1
+ {
+ pushFollow(FOLLOW_69);
+ rule__QualifiedName__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__QualifiedName__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__QualifiedName__Group__0"
+
+
+ // $ANTLR start "rule__QualifiedName__Group__0__Impl"
+ // InternalRBAModel.g:21669:1: rule__QualifiedName__Group__0__Impl : ( RULE_ID ) ;
+ public final void rule__QualifiedName__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21673:1: ( ( RULE_ID ) )
+ // InternalRBAModel.g:21674:1: ( RULE_ID )
+ {
+ // InternalRBAModel.g:21674:1: ( RULE_ID )
+ // InternalRBAModel.g:21675:2: RULE_ID
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_0());
+ }
+ match(input,RULE_ID,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__QualifiedName__Group__0__Impl"
+
+
+ // $ANTLR start "rule__QualifiedName__Group__1"
+ // InternalRBAModel.g:21684:1: rule__QualifiedName__Group__1 : rule__QualifiedName__Group__1__Impl ;
+ public final void rule__QualifiedName__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21688:1: ( rule__QualifiedName__Group__1__Impl )
+ // InternalRBAModel.g:21689:2: rule__QualifiedName__Group__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__QualifiedName__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__QualifiedName__Group__1"
+
+
+ // $ANTLR start "rule__QualifiedName__Group__1__Impl"
+ // InternalRBAModel.g:21695:1: rule__QualifiedName__Group__1__Impl : ( ( rule__QualifiedName__Group_1__0 )* ) ;
+ public final void rule__QualifiedName__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21699:1: ( ( ( rule__QualifiedName__Group_1__0 )* ) )
+ // InternalRBAModel.g:21700:1: ( ( rule__QualifiedName__Group_1__0 )* )
+ {
+ // InternalRBAModel.g:21700:1: ( ( rule__QualifiedName__Group_1__0 )* )
+ // InternalRBAModel.g:21701:2: ( rule__QualifiedName__Group_1__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getQualifiedNameAccess().getGroup_1());
+ }
+ // InternalRBAModel.g:21702:2: ( rule__QualifiedName__Group_1__0 )*
+ loop95:
+ do {
+ int alt95=2;
+ int LA95_0 = input.LA(1);
+
+ if ( (LA95_0==135) ) {
+ alt95=1;
+ }
+
+
+ switch (alt95) {
+ case 1 :
+ // InternalRBAModel.g:21702:3: rule__QualifiedName__Group_1__0
+ {
+ pushFollow(FOLLOW_70);
+ rule__QualifiedName__Group_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop95;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getQualifiedNameAccess().getGroup_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__QualifiedName__Group__1__Impl"
+
+
+ // $ANTLR start "rule__QualifiedName__Group_1__0"
+ // InternalRBAModel.g:21711:1: rule__QualifiedName__Group_1__0 : rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 ;
+ public final void rule__QualifiedName__Group_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21715:1: ( rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 )
+ // InternalRBAModel.g:21716:2: rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1
+ {
+ pushFollow(FOLLOW_7);
+ rule__QualifiedName__Group_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__QualifiedName__Group_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__QualifiedName__Group_1__0"
+
+
+ // $ANTLR start "rule__QualifiedName__Group_1__0__Impl"
+ // InternalRBAModel.g:21723:1: rule__QualifiedName__Group_1__0__Impl : ( '.' ) ;
+ public final void rule__QualifiedName__Group_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21727:1: ( ( '.' ) )
+ // InternalRBAModel.g:21728:1: ( '.' )
+ {
+ // InternalRBAModel.g:21728:1: ( '.' )
+ // InternalRBAModel.g:21729:2: '.'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0());
+ }
+ match(input,135,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__QualifiedName__Group_1__0__Impl"
+
+
+ // $ANTLR start "rule__QualifiedName__Group_1__1"
+ // InternalRBAModel.g:21738:1: rule__QualifiedName__Group_1__1 : rule__QualifiedName__Group_1__1__Impl ;
+ public final void rule__QualifiedName__Group_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21742:1: ( rule__QualifiedName__Group_1__1__Impl )
+ // InternalRBAModel.g:21743:2: rule__QualifiedName__Group_1__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__QualifiedName__Group_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__QualifiedName__Group_1__1"
+
+
+ // $ANTLR start "rule__QualifiedName__Group_1__1__Impl"
+ // InternalRBAModel.g:21749:1: rule__QualifiedName__Group_1__1__Impl : ( RULE_ID ) ;
+ public final void rule__QualifiedName__Group_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21753:1: ( ( RULE_ID ) )
+ // InternalRBAModel.g:21754:1: ( RULE_ID )
+ {
+ // InternalRBAModel.g:21754:1: ( RULE_ID )
+ // InternalRBAModel.g:21755:2: RULE_ID
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_1_1());
+ }
+ match(input,RULE_ID,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__QualifiedName__Group_1__1__Impl"
+
+
+ // $ANTLR start "rule__Package__UnorderedGroup_4"
+ // InternalRBAModel.g:21765:1: rule__Package__UnorderedGroup_4 : ( rule__Package__UnorderedGroup_4__0 )? ;
+ public final void rule__Package__UnorderedGroup_4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+ getUnorderedGroupHelper().enter(grammarAccess.getPackageAccess().getUnorderedGroup_4());
+
+ try {
+ // InternalRBAModel.g:21770:1: ( ( rule__Package__UnorderedGroup_4__0 )? )
+ // InternalRBAModel.g:21771:2: ( rule__Package__UnorderedGroup_4__0 )?
+ {
+ // InternalRBAModel.g:21771:2: ( rule__Package__UnorderedGroup_4__0 )?
+ int alt96=2;
+ alt96 = dfa96.predict(input);
+ switch (alt96) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__Package__UnorderedGroup_4__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Package__UnorderedGroup_4__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ getUnorderedGroupHelper().leave(grammarAccess.getPackageAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Package__UnorderedGroup_4"
+
+
+ // $ANTLR start "rule__Package__UnorderedGroup_4__Impl"
+ // InternalRBAModel.g:21779:1: rule__Package__UnorderedGroup_4__Impl : ( ({...}? => ( ( ( rule__Package__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( ( rule__Package__PackagableelementAssignment_4_1 ) ) ( ( ( rule__Package__PackagableelementAssignment_4_1 )=> rule__Package__PackagableelementAssignment_4_1 )* ) ) ) ) ) ;
+ public final void rule__Package__UnorderedGroup_4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+ boolean selected = false;
+
+ try {
+ // InternalRBAModel.g:21784:1: ( ( ({...}? => ( ( ( rule__Package__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( ( rule__Package__PackagableelementAssignment_4_1 ) ) ( ( ( rule__Package__PackagableelementAssignment_4_1 )=> rule__Package__PackagableelementAssignment_4_1 )* ) ) ) ) ) )
+ // InternalRBAModel.g:21785:3: ( ({...}? => ( ( ( rule__Package__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( ( rule__Package__PackagableelementAssignment_4_1 ) ) ( ( ( rule__Package__PackagableelementAssignment_4_1 )=> rule__Package__PackagableelementAssignment_4_1 )* ) ) ) ) )
+ {
+ // InternalRBAModel.g:21785:3: ( ({...}? => ( ( ( rule__Package__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( ( rule__Package__PackagableelementAssignment_4_1 ) ) ( ( ( rule__Package__PackagableelementAssignment_4_1 )=> rule__Package__PackagableelementAssignment_4_1 )* ) ) ) ) )
+ int alt98=2;
+ int LA98_0 = input.LA(1);
+
+ if ( LA98_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 0) ) {
+ alt98=1;
+ }
+ else if ( ( LA98_0 >= 67 && LA98_0 <= 70 || LA98_0 == 104 || LA98_0 == 106 || LA98_0 >= 109 && LA98_0 <= 110 || LA98_0 == 116 || LA98_0 == 123 || LA98_0 == 125 || LA98_0 >= 155 && LA98_0 <= 157 ) && getUnorderedGroupHelper().canSelect(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 1) ) {
+ alt98=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 98, 0, input);
+
+ throw nvae;
+ }
+ switch (alt98) {
+ case 1 :
+ // InternalRBAModel.g:21786:3: ({...}? => ( ( ( rule__Package__Group_4_0__0 ) ) ) )
+ {
+ // InternalRBAModel.g:21786:3: ({...}? => ( ( ( rule__Package__Group_4_0__0 ) ) ) )
+ // InternalRBAModel.g:21787:4: {...}? => ( ( ( rule__Package__Group_4_0__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__Package__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 0)");
+ }
+ // InternalRBAModel.g:21787:103: ( ( ( rule__Package__Group_4_0__0 ) ) )
+ // InternalRBAModel.g:21788:5: ( ( rule__Package__Group_4_0__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 0);
+ selected = true;
+ // InternalRBAModel.g:21794:5: ( ( rule__Package__Group_4_0__0 ) )
+ // InternalRBAModel.g:21795:6: ( rule__Package__Group_4_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPackageAccess().getGroup_4_0());
+ }
+ // InternalRBAModel.g:21796:6: ( rule__Package__Group_4_0__0 )
+ // InternalRBAModel.g:21796:7: rule__Package__Group_4_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Package__Group_4_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPackageAccess().getGroup_4_0());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:21801:3: ({...}? => ( ( ( ( rule__Package__PackagableelementAssignment_4_1 ) ) ( ( ( rule__Package__PackagableelementAssignment_4_1 )=> rule__Package__PackagableelementAssignment_4_1 )* ) ) ) )
+ {
+ // InternalRBAModel.g:21801:3: ({...}? => ( ( ( ( rule__Package__PackagableelementAssignment_4_1 ) ) ( ( ( rule__Package__PackagableelementAssignment_4_1 )=> rule__Package__PackagableelementAssignment_4_1 )* ) ) ) )
+ // InternalRBAModel.g:21802:4: {...}? => ( ( ( ( rule__Package__PackagableelementAssignment_4_1 ) ) ( ( ( rule__Package__PackagableelementAssignment_4_1 )=> rule__Package__PackagableelementAssignment_4_1 )* ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__Package__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 1)");
+ }
+ // InternalRBAModel.g:21802:103: ( ( ( ( rule__Package__PackagableelementAssignment_4_1 ) ) ( ( ( rule__Package__PackagableelementAssignment_4_1 )=> rule__Package__PackagableelementAssignment_4_1 )* ) ) )
+ // InternalRBAModel.g:21803:5: ( ( ( rule__Package__PackagableelementAssignment_4_1 ) ) ( ( ( rule__Package__PackagableelementAssignment_4_1 )=> rule__Package__PackagableelementAssignment_4_1 )* ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 1);
+ selected = true;
+ // InternalRBAModel.g:21809:5: ( ( ( rule__Package__PackagableelementAssignment_4_1 ) ) ( ( ( rule__Package__PackagableelementAssignment_4_1 )=> rule__Package__PackagableelementAssignment_4_1 )* ) )
+ // InternalRBAModel.g:21810:6: ( ( rule__Package__PackagableelementAssignment_4_1 ) ) ( ( ( rule__Package__PackagableelementAssignment_4_1 )=> rule__Package__PackagableelementAssignment_4_1 )* )
+ {
+ // InternalRBAModel.g:21810:6: ( ( rule__Package__PackagableelementAssignment_4_1 ) )
+ // InternalRBAModel.g:21811:7: ( rule__Package__PackagableelementAssignment_4_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPackageAccess().getPackagableelementAssignment_4_1());
+ }
+ // InternalRBAModel.g:21812:7: ( rule__Package__PackagableelementAssignment_4_1 )
+ // InternalRBAModel.g:21812:8: rule__Package__PackagableelementAssignment_4_1
+ {
+ pushFollow(FOLLOW_158);
+ rule__Package__PackagableelementAssignment_4_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPackageAccess().getPackagableelementAssignment_4_1());
+ }
+
+ }
+
+ // InternalRBAModel.g:21815:6: ( ( ( rule__Package__PackagableelementAssignment_4_1 )=> rule__Package__PackagableelementAssignment_4_1 )* )
+ // InternalRBAModel.g:21816:7: ( ( rule__Package__PackagableelementAssignment_4_1 )=> rule__Package__PackagableelementAssignment_4_1 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPackageAccess().getPackagableelementAssignment_4_1());
+ }
+ // InternalRBAModel.g:21817:7: ( ( rule__Package__PackagableelementAssignment_4_1 )=> rule__Package__PackagableelementAssignment_4_1 )*
+ loop97:
+ do {
+ int alt97=2;
+ alt97 = dfa97.predict(input);
+ switch (alt97) {
+ case 1 :
+ // InternalRBAModel.g:21817:8: ( rule__Package__PackagableelementAssignment_4_1 )=> rule__Package__PackagableelementAssignment_4_1
+ {
+ pushFollow(FOLLOW_158);
+ rule__Package__PackagableelementAssignment_4_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop97;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPackageAccess().getPackagableelementAssignment_4_1());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ if (selected)
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getPackageAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Package__UnorderedGroup_4__Impl"
+
+
+ // $ANTLR start "rule__Package__UnorderedGroup_4__0"
+ // InternalRBAModel.g:21831:1: rule__Package__UnorderedGroup_4__0 : rule__Package__UnorderedGroup_4__Impl ( rule__Package__UnorderedGroup_4__1 )? ;
+ public final void rule__Package__UnorderedGroup_4__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21835:1: ( rule__Package__UnorderedGroup_4__Impl ( rule__Package__UnorderedGroup_4__1 )? )
+ // InternalRBAModel.g:21836:2: rule__Package__UnorderedGroup_4__Impl ( rule__Package__UnorderedGroup_4__1 )?
+ {
+ pushFollow(FOLLOW_158);
+ rule__Package__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // InternalRBAModel.g:21837:2: ( rule__Package__UnorderedGroup_4__1 )?
+ int alt99=2;
+ alt99 = dfa99.predict(input);
+ switch (alt99) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__Package__UnorderedGroup_4__1
+ {
+ pushFollow(FOLLOW_2);
+ rule__Package__UnorderedGroup_4__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Package__UnorderedGroup_4__0"
+
+
+ // $ANTLR start "rule__Package__UnorderedGroup_4__1"
+ // InternalRBAModel.g:21843:1: rule__Package__UnorderedGroup_4__1 : rule__Package__UnorderedGroup_4__Impl ;
+ public final void rule__Package__UnorderedGroup_4__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21847:1: ( rule__Package__UnorderedGroup_4__Impl )
+ // InternalRBAModel.g:21848:2: rule__Package__UnorderedGroup_4__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Package__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Package__UnorderedGroup_4__1"
+
+
+ // $ANTLR start "rule__Display__UnorderedGroup_4"
+ // InternalRBAModel.g:21855:1: rule__Display__UnorderedGroup_4 : ( rule__Display__UnorderedGroup_4__0 )? ;
+ public final void rule__Display__UnorderedGroup_4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+ getUnorderedGroupHelper().enter(grammarAccess.getDisplayAccess().getUnorderedGroup_4());
+
+ try {
+ // InternalRBAModel.g:21860:1: ( ( rule__Display__UnorderedGroup_4__0 )? )
+ // InternalRBAModel.g:21861:2: ( rule__Display__UnorderedGroup_4__0 )?
+ {
+ // InternalRBAModel.g:21861:2: ( rule__Display__UnorderedGroup_4__0 )?
+ int alt100=2;
+ int LA100_0 = input.LA(1);
+
+ if ( LA100_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 0) ) {
+ alt100=1;
+ }
+ else if ( LA100_0 == 119 && getUnorderedGroupHelper().canSelect(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 1) ) {
+ alt100=1;
+ }
+ else if ( LA100_0 == 116 && getUnorderedGroupHelper().canSelect(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 1) ) {
+ alt100=1;
+ }
+ else if ( LA100_0 == 126 && getUnorderedGroupHelper().canSelect(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 2) ) {
+ alt100=1;
+ }
+ switch (alt100) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__Display__UnorderedGroup_4__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Display__UnorderedGroup_4__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ getUnorderedGroupHelper().leave(grammarAccess.getDisplayAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Display__UnorderedGroup_4"
+
+
+ // $ANTLR start "rule__Display__UnorderedGroup_4__Impl"
+ // InternalRBAModel.g:21869:1: rule__Display__UnorderedGroup_4__Impl : ( ({...}? => ( ( ( rule__Display__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Display__SizeAssignment_4_1 ) ) ) ) | ({...}? => ( ( ( rule__Display__RootAssignment_4_2 ) ) ) ) ) ;
+ public final void rule__Display__UnorderedGroup_4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+ boolean selected = false;
+
+ try {
+ // InternalRBAModel.g:21874:1: ( ( ({...}? => ( ( ( rule__Display__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Display__SizeAssignment_4_1 ) ) ) ) | ({...}? => ( ( ( rule__Display__RootAssignment_4_2 ) ) ) ) ) )
+ // InternalRBAModel.g:21875:3: ( ({...}? => ( ( ( rule__Display__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Display__SizeAssignment_4_1 ) ) ) ) | ({...}? => ( ( ( rule__Display__RootAssignment_4_2 ) ) ) ) )
+ {
+ // InternalRBAModel.g:21875:3: ( ({...}? => ( ( ( rule__Display__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Display__SizeAssignment_4_1 ) ) ) ) | ({...}? => ( ( ( rule__Display__RootAssignment_4_2 ) ) ) ) )
+ int alt101=3;
+ int LA101_0 = input.LA(1);
+
+ if ( LA101_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 0) ) {
+ alt101=1;
+ }
+ else if ( LA101_0 == 119 && getUnorderedGroupHelper().canSelect(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 1) ) {
+ alt101=2;
+ }
+ else if ( LA101_0 == 116 && getUnorderedGroupHelper().canSelect(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 1) ) {
+ alt101=2;
+ }
+ else if ( LA101_0 == 126 && getUnorderedGroupHelper().canSelect(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 2) ) {
+ alt101=3;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 101, 0, input);
+
+ throw nvae;
+ }
+ switch (alt101) {
+ case 1 :
+ // InternalRBAModel.g:21876:3: ({...}? => ( ( ( rule__Display__Group_4_0__0 ) ) ) )
+ {
+ // InternalRBAModel.g:21876:3: ({...}? => ( ( ( rule__Display__Group_4_0__0 ) ) ) )
+ // InternalRBAModel.g:21877:4: {...}? => ( ( ( rule__Display__Group_4_0__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__Display__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 0)");
+ }
+ // InternalRBAModel.g:21877:103: ( ( ( rule__Display__Group_4_0__0 ) ) )
+ // InternalRBAModel.g:21878:5: ( ( rule__Display__Group_4_0__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 0);
+ selected = true;
+ // InternalRBAModel.g:21884:5: ( ( rule__Display__Group_4_0__0 ) )
+ // InternalRBAModel.g:21885:6: ( rule__Display__Group_4_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getDisplayAccess().getGroup_4_0());
+ }
+ // InternalRBAModel.g:21886:6: ( rule__Display__Group_4_0__0 )
+ // InternalRBAModel.g:21886:7: rule__Display__Group_4_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Display__Group_4_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getDisplayAccess().getGroup_4_0());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:21891:3: ({...}? => ( ( ( rule__Display__SizeAssignment_4_1 ) ) ) )
+ {
+ // InternalRBAModel.g:21891:3: ({...}? => ( ( ( rule__Display__SizeAssignment_4_1 ) ) ) )
+ // InternalRBAModel.g:21892:4: {...}? => ( ( ( rule__Display__SizeAssignment_4_1 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__Display__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 1)");
+ }
+ // InternalRBAModel.g:21892:103: ( ( ( rule__Display__SizeAssignment_4_1 ) ) )
+ // InternalRBAModel.g:21893:5: ( ( rule__Display__SizeAssignment_4_1 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 1);
+ selected = true;
+ // InternalRBAModel.g:21899:5: ( ( rule__Display__SizeAssignment_4_1 ) )
+ // InternalRBAModel.g:21900:6: ( rule__Display__SizeAssignment_4_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getDisplayAccess().getSizeAssignment_4_1());
+ }
+ // InternalRBAModel.g:21901:6: ( rule__Display__SizeAssignment_4_1 )
+ // InternalRBAModel.g:21901:7: rule__Display__SizeAssignment_4_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__Display__SizeAssignment_4_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getDisplayAccess().getSizeAssignment_4_1());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:21906:3: ({...}? => ( ( ( rule__Display__RootAssignment_4_2 ) ) ) )
+ {
+ // InternalRBAModel.g:21906:3: ({...}? => ( ( ( rule__Display__RootAssignment_4_2 ) ) ) )
+ // InternalRBAModel.g:21907:4: {...}? => ( ( ( rule__Display__RootAssignment_4_2 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 2) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__Display__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 2)");
+ }
+ // InternalRBAModel.g:21907:103: ( ( ( rule__Display__RootAssignment_4_2 ) ) )
+ // InternalRBAModel.g:21908:5: ( ( rule__Display__RootAssignment_4_2 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 2);
+ selected = true;
+ // InternalRBAModel.g:21914:5: ( ( rule__Display__RootAssignment_4_2 ) )
+ // InternalRBAModel.g:21915:6: ( rule__Display__RootAssignment_4_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getDisplayAccess().getRootAssignment_4_2());
+ }
+ // InternalRBAModel.g:21916:6: ( rule__Display__RootAssignment_4_2 )
+ // InternalRBAModel.g:21916:7: rule__Display__RootAssignment_4_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__Display__RootAssignment_4_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getDisplayAccess().getRootAssignment_4_2());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ if (selected)
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getDisplayAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Display__UnorderedGroup_4__Impl"
+
+
+ // $ANTLR start "rule__Display__UnorderedGroup_4__0"
+ // InternalRBAModel.g:21929:1: rule__Display__UnorderedGroup_4__0 : rule__Display__UnorderedGroup_4__Impl ( rule__Display__UnorderedGroup_4__1 )? ;
+ public final void rule__Display__UnorderedGroup_4__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21933:1: ( rule__Display__UnorderedGroup_4__Impl ( rule__Display__UnorderedGroup_4__1 )? )
+ // InternalRBAModel.g:21934:2: rule__Display__UnorderedGroup_4__Impl ( rule__Display__UnorderedGroup_4__1 )?
+ {
+ pushFollow(FOLLOW_159);
+ rule__Display__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // InternalRBAModel.g:21935:2: ( rule__Display__UnorderedGroup_4__1 )?
+ int alt102=2;
+ int LA102_0 = input.LA(1);
+
+ if ( LA102_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 0) ) {
+ alt102=1;
+ }
+ else if ( LA102_0 == 119 && getUnorderedGroupHelper().canSelect(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 1) ) {
+ alt102=1;
+ }
+ else if ( LA102_0 == 116 && getUnorderedGroupHelper().canSelect(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 1) ) {
+ alt102=1;
+ }
+ else if ( LA102_0 == 126 && getUnorderedGroupHelper().canSelect(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 2) ) {
+ alt102=1;
+ }
+ switch (alt102) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__Display__UnorderedGroup_4__1
+ {
+ pushFollow(FOLLOW_2);
+ rule__Display__UnorderedGroup_4__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Display__UnorderedGroup_4__0"
+
+
+ // $ANTLR start "rule__Display__UnorderedGroup_4__1"
+ // InternalRBAModel.g:21941:1: rule__Display__UnorderedGroup_4__1 : rule__Display__UnorderedGroup_4__Impl ( rule__Display__UnorderedGroup_4__2 )? ;
+ public final void rule__Display__UnorderedGroup_4__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21945:1: ( rule__Display__UnorderedGroup_4__Impl ( rule__Display__UnorderedGroup_4__2 )? )
+ // InternalRBAModel.g:21946:2: rule__Display__UnorderedGroup_4__Impl ( rule__Display__UnorderedGroup_4__2 )?
+ {
+ pushFollow(FOLLOW_159);
+ rule__Display__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // InternalRBAModel.g:21947:2: ( rule__Display__UnorderedGroup_4__2 )?
+ int alt103=2;
+ int LA103_0 = input.LA(1);
+
+ if ( LA103_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 0) ) {
+ alt103=1;
+ }
+ else if ( LA103_0 == 119 && getUnorderedGroupHelper().canSelect(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 1) ) {
+ alt103=1;
+ }
+ else if ( LA103_0 == 116 && getUnorderedGroupHelper().canSelect(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 1) ) {
+ alt103=1;
+ }
+ else if ( LA103_0 == 126 && getUnorderedGroupHelper().canSelect(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 2) ) {
+ alt103=1;
+ }
+ switch (alt103) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__Display__UnorderedGroup_4__2
+ {
+ pushFollow(FOLLOW_2);
+ rule__Display__UnorderedGroup_4__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Display__UnorderedGroup_4__1"
+
+
+ // $ANTLR start "rule__Display__UnorderedGroup_4__2"
+ // InternalRBAModel.g:21953:1: rule__Display__UnorderedGroup_4__2 : rule__Display__UnorderedGroup_4__Impl ;
+ public final void rule__Display__UnorderedGroup_4__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:21957:1: ( rule__Display__UnorderedGroup_4__Impl )
+ // InternalRBAModel.g:21958:2: rule__Display__UnorderedGroup_4__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Display__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Display__UnorderedGroup_4__2"
+
+
+ // $ANTLR start "rule__Constraint__UnorderedGroup_4"
+ // InternalRBAModel.g:21965:1: rule__Constraint__UnorderedGroup_4 : ( rule__Constraint__UnorderedGroup_4__0 )? ;
+ public final void rule__Constraint__UnorderedGroup_4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+ getUnorderedGroupHelper().enter(grammarAccess.getConstraintAccess().getUnorderedGroup_4());
+
+ try {
+ // InternalRBAModel.g:21970:1: ( ( rule__Constraint__UnorderedGroup_4__0 )? )
+ // InternalRBAModel.g:21971:2: ( rule__Constraint__UnorderedGroup_4__0 )?
+ {
+ // InternalRBAModel.g:21971:2: ( rule__Constraint__UnorderedGroup_4__0 )?
+ int alt104=2;
+ alt104 = dfa104.predict(input);
+ switch (alt104) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__Constraint__UnorderedGroup_4__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Constraint__UnorderedGroup_4__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ getUnorderedGroupHelper().leave(grammarAccess.getConstraintAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Constraint__UnorderedGroup_4"
+
+
+ // $ANTLR start "rule__Constraint__UnorderedGroup_4__Impl"
+ // InternalRBAModel.g:21979:1: rule__Constraint__UnorderedGroup_4__Impl : ( ({...}? => ( ( ( rule__Constraint__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Constraint__Group_4_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Constraint__ExpressionAssignment_4_2 ) ) ) ) ) ;
+ public final void rule__Constraint__UnorderedGroup_4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+ boolean selected = false;
+
+ try {
+ // InternalRBAModel.g:21984:1: ( ( ({...}? => ( ( ( rule__Constraint__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Constraint__Group_4_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Constraint__ExpressionAssignment_4_2 ) ) ) ) ) )
+ // InternalRBAModel.g:21985:3: ( ({...}? => ( ( ( rule__Constraint__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Constraint__Group_4_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Constraint__ExpressionAssignment_4_2 ) ) ) ) )
+ {
+ // InternalRBAModel.g:21985:3: ( ({...}? => ( ( ( rule__Constraint__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Constraint__Group_4_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Constraint__ExpressionAssignment_4_2 ) ) ) ) )
+ int alt105=3;
+ int LA105_0 = input.LA(1);
+
+ if ( LA105_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 0) ) {
+ alt105=1;
+ }
+ else if ( LA105_0 == 111 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 1) ) {
+ alt105=2;
+ }
+ else if ( ( LA105_0 >= RULE_ID && LA105_0 <= RULE_INT || LA105_0 == 30 || LA105_0 == 76 || LA105_0 == 101 || LA105_0 == 107 || LA105_0 >= 140 && LA105_0 <= 148 || LA105_0 >= 151 && LA105_0 <= 152 || LA105_0 == 154 || LA105_0 == 166 ) && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {
+ alt105=3;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 105, 0, input);
+
+ throw nvae;
+ }
+ switch (alt105) {
+ case 1 :
+ // InternalRBAModel.g:21986:3: ({...}? => ( ( ( rule__Constraint__Group_4_0__0 ) ) ) )
+ {
+ // InternalRBAModel.g:21986:3: ({...}? => ( ( ( rule__Constraint__Group_4_0__0 ) ) ) )
+ // InternalRBAModel.g:21987:4: {...}? => ( ( ( rule__Constraint__Group_4_0__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__Constraint__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 0)");
+ }
+ // InternalRBAModel.g:21987:106: ( ( ( rule__Constraint__Group_4_0__0 ) ) )
+ // InternalRBAModel.g:21988:5: ( ( rule__Constraint__Group_4_0__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 0);
+ selected = true;
+ // InternalRBAModel.g:21994:5: ( ( rule__Constraint__Group_4_0__0 ) )
+ // InternalRBAModel.g:21995:6: ( rule__Constraint__Group_4_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getConstraintAccess().getGroup_4_0());
+ }
+ // InternalRBAModel.g:21996:6: ( rule__Constraint__Group_4_0__0 )
+ // InternalRBAModel.g:21996:7: rule__Constraint__Group_4_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Constraint__Group_4_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getConstraintAccess().getGroup_4_0());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:22001:3: ({...}? => ( ( ( rule__Constraint__Group_4_1__0 ) ) ) )
+ {
+ // InternalRBAModel.g:22001:3: ({...}? => ( ( ( rule__Constraint__Group_4_1__0 ) ) ) )
+ // InternalRBAModel.g:22002:4: {...}? => ( ( ( rule__Constraint__Group_4_1__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__Constraint__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 1)");
+ }
+ // InternalRBAModel.g:22002:106: ( ( ( rule__Constraint__Group_4_1__0 ) ) )
+ // InternalRBAModel.g:22003:5: ( ( rule__Constraint__Group_4_1__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 1);
+ selected = true;
+ // InternalRBAModel.g:22009:5: ( ( rule__Constraint__Group_4_1__0 ) )
+ // InternalRBAModel.g:22010:6: ( rule__Constraint__Group_4_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getConstraintAccess().getGroup_4_1());
+ }
+ // InternalRBAModel.g:22011:6: ( rule__Constraint__Group_4_1__0 )
+ // InternalRBAModel.g:22011:7: rule__Constraint__Group_4_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Constraint__Group_4_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getConstraintAccess().getGroup_4_1());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:22016:3: ({...}? => ( ( ( rule__Constraint__ExpressionAssignment_4_2 ) ) ) )
+ {
+ // InternalRBAModel.g:22016:3: ({...}? => ( ( ( rule__Constraint__ExpressionAssignment_4_2 ) ) ) )
+ // InternalRBAModel.g:22017:4: {...}? => ( ( ( rule__Constraint__ExpressionAssignment_4_2 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__Constraint__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2)");
+ }
+ // InternalRBAModel.g:22017:106: ( ( ( rule__Constraint__ExpressionAssignment_4_2 ) ) )
+ // InternalRBAModel.g:22018:5: ( ( rule__Constraint__ExpressionAssignment_4_2 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2);
+ selected = true;
+ // InternalRBAModel.g:22024:5: ( ( rule__Constraint__ExpressionAssignment_4_2 ) )
+ // InternalRBAModel.g:22025:6: ( rule__Constraint__ExpressionAssignment_4_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getConstraintAccess().getExpressionAssignment_4_2());
+ }
+ // InternalRBAModel.g:22026:6: ( rule__Constraint__ExpressionAssignment_4_2 )
+ // InternalRBAModel.g:22026:7: rule__Constraint__ExpressionAssignment_4_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__Constraint__ExpressionAssignment_4_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getConstraintAccess().getExpressionAssignment_4_2());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ if (selected)
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getConstraintAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Constraint__UnorderedGroup_4__Impl"
+
+
+ // $ANTLR start "rule__Constraint__UnorderedGroup_4__0"
+ // InternalRBAModel.g:22039:1: rule__Constraint__UnorderedGroup_4__0 : rule__Constraint__UnorderedGroup_4__Impl ( rule__Constraint__UnorderedGroup_4__1 )? ;
+ public final void rule__Constraint__UnorderedGroup_4__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:22043:1: ( rule__Constraint__UnorderedGroup_4__Impl ( rule__Constraint__UnorderedGroup_4__1 )? )
+ // InternalRBAModel.g:22044:2: rule__Constraint__UnorderedGroup_4__Impl ( rule__Constraint__UnorderedGroup_4__1 )?
+ {
+ pushFollow(FOLLOW_160);
+ rule__Constraint__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // InternalRBAModel.g:22045:2: ( rule__Constraint__UnorderedGroup_4__1 )?
+ int alt106=2;
+ alt106 = dfa106.predict(input);
+ switch (alt106) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__Constraint__UnorderedGroup_4__1
+ {
+ pushFollow(FOLLOW_2);
+ rule__Constraint__UnorderedGroup_4__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Constraint__UnorderedGroup_4__0"
+
+
+ // $ANTLR start "rule__Constraint__UnorderedGroup_4__1"
+ // InternalRBAModel.g:22051:1: rule__Constraint__UnorderedGroup_4__1 : rule__Constraint__UnorderedGroup_4__Impl ( rule__Constraint__UnorderedGroup_4__2 )? ;
+ public final void rule__Constraint__UnorderedGroup_4__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:22055:1: ( rule__Constraint__UnorderedGroup_4__Impl ( rule__Constraint__UnorderedGroup_4__2 )? )
+ // InternalRBAModel.g:22056:2: rule__Constraint__UnorderedGroup_4__Impl ( rule__Constraint__UnorderedGroup_4__2 )?
+ {
+ pushFollow(FOLLOW_160);
+ rule__Constraint__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // InternalRBAModel.g:22057:2: ( rule__Constraint__UnorderedGroup_4__2 )?
+ int alt107=2;
+ alt107 = dfa107.predict(input);
+ switch (alt107) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__Constraint__UnorderedGroup_4__2
+ {
+ pushFollow(FOLLOW_2);
+ rule__Constraint__UnorderedGroup_4__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Constraint__UnorderedGroup_4__1"
+
+
+ // $ANTLR start "rule__Constraint__UnorderedGroup_4__2"
+ // InternalRBAModel.g:22063:1: rule__Constraint__UnorderedGroup_4__2 : rule__Constraint__UnorderedGroup_4__Impl ;
+ public final void rule__Constraint__UnorderedGroup_4__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:22067:1: ( rule__Constraint__UnorderedGroup_4__Impl )
+ // InternalRBAModel.g:22068:2: rule__Constraint__UnorderedGroup_4__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Constraint__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Constraint__UnorderedGroup_4__2"
+
+
+ // $ANTLR start "rule__ViewContent__UnorderedGroup_4"
+ // InternalRBAModel.g:22075:1: rule__ViewContent__UnorderedGroup_4 : ( rule__ViewContent__UnorderedGroup_4__0 )? ;
+ public final void rule__ViewContent__UnorderedGroup_4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+ getUnorderedGroupHelper().enter(grammarAccess.getViewContentAccess().getUnorderedGroup_4());
+
+ try {
+ // InternalRBAModel.g:22080:1: ( ( rule__ViewContent__UnorderedGroup_4__0 )? )
+ // InternalRBAModel.g:22081:2: ( rule__ViewContent__UnorderedGroup_4__0 )?
+ {
+ // InternalRBAModel.g:22081:2: ( rule__ViewContent__UnorderedGroup_4__0 )?
+ int alt108=2;
+ alt108 = dfa108.predict(input);
+ switch (alt108) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__ViewContent__UnorderedGroup_4__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContent__UnorderedGroup_4__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ getUnorderedGroupHelper().leave(grammarAccess.getViewContentAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__UnorderedGroup_4"
+
+
+ // $ANTLR start "rule__ViewContent__UnorderedGroup_4__Impl"
+ // InternalRBAModel.g:22089:1: rule__ViewContent__UnorderedGroup_4__Impl : ( ({...}? => ( ( ( rule__ViewContent__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__ViewContent__Group_4_1__0 ) ) ) ) | ({...}? => ( ( ( rule__ViewContent__Group_4_2__0 ) ) ) ) | ({...}? => ( ( ( ( rule__ViewContent__StatesAssignment_4_3 ) ) ( ( ( rule__ViewContent__StatesAssignment_4_3 )=> rule__ViewContent__StatesAssignment_4_3 )* ) ) ) ) | ({...}? => ( ( ( ( rule__ViewContent__SizeAssignment_4_4 ) ) ( ( ( rule__ViewContent__SizeAssignment_4_4 )=> rule__ViewContent__SizeAssignment_4_4 )* ) ) ) ) | ({...}? => ( ( ( ( rule__ViewContent__TagsAssignment_4_5 ) ) ( ( ( rule__ViewContent__TagsAssignment_4_5 )=> rule__ViewContent__TagsAssignment_4_5 )* ) ) ) ) ) ;
+ public final void rule__ViewContent__UnorderedGroup_4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+ boolean selected = false;
+
+ try {
+ // InternalRBAModel.g:22094:1: ( ( ({...}? => ( ( ( rule__ViewContent__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__ViewContent__Group_4_1__0 ) ) ) ) | ({...}? => ( ( ( rule__ViewContent__Group_4_2__0 ) ) ) ) | ({...}? => ( ( ( ( rule__ViewContent__StatesAssignment_4_3 ) ) ( ( ( rule__ViewContent__StatesAssignment_4_3 )=> rule__ViewContent__StatesAssignment_4_3 )* ) ) ) ) | ({...}? => ( ( ( ( rule__ViewContent__SizeAssignment_4_4 ) ) ( ( ( rule__ViewContent__SizeAssignment_4_4 )=> rule__ViewContent__SizeAssignment_4_4 )* ) ) ) ) | ({...}? => ( ( ( ( rule__ViewContent__TagsAssignment_4_5 ) ) ( ( ( rule__ViewContent__TagsAssignment_4_5 )=> rule__ViewContent__TagsAssignment_4_5 )* ) ) ) ) ) )
+ // InternalRBAModel.g:22095:3: ( ({...}? => ( ( ( rule__ViewContent__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__ViewContent__Group_4_1__0 ) ) ) ) | ({...}? => ( ( ( rule__ViewContent__Group_4_2__0 ) ) ) ) | ({...}? => ( ( ( ( rule__ViewContent__StatesAssignment_4_3 ) ) ( ( ( rule__ViewContent__StatesAssignment_4_3 )=> rule__ViewContent__StatesAssignment_4_3 )* ) ) ) ) | ({...}? => ( ( ( ( rule__ViewContent__SizeAssignment_4_4 ) ) ( ( ( rule__ViewContent__SizeAssignment_4_4 )=> rule__ViewContent__SizeAssignment_4_4 )* ) ) ) ) | ({...}? => ( ( ( ( rule__ViewContent__TagsAssignment_4_5 ) ) ( ( ( rule__ViewContent__TagsAssignment_4_5 )=> rule__ViewContent__TagsAssignment_4_5 )* ) ) ) ) )
+ {
+ // InternalRBAModel.g:22095:3: ( ({...}? => ( ( ( rule__ViewContent__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__ViewContent__Group_4_1__0 ) ) ) ) | ({...}? => ( ( ( rule__ViewContent__Group_4_2__0 ) ) ) ) | ({...}? => ( ( ( ( rule__ViewContent__StatesAssignment_4_3 ) ) ( ( ( rule__ViewContent__StatesAssignment_4_3 )=> rule__ViewContent__StatesAssignment_4_3 )* ) ) ) ) | ({...}? => ( ( ( ( rule__ViewContent__SizeAssignment_4_4 ) ) ( ( ( rule__ViewContent__SizeAssignment_4_4 )=> rule__ViewContent__SizeAssignment_4_4 )* ) ) ) ) | ({...}? => ( ( ( ( rule__ViewContent__TagsAssignment_4_5 ) ) ( ( ( rule__ViewContent__TagsAssignment_4_5 )=> rule__ViewContent__TagsAssignment_4_5 )* ) ) ) ) )
+ int alt112=6;
+ int LA112_0 = input.LA(1);
+
+ if ( LA112_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 0) ) {
+ alt112=1;
+ }
+ else if ( LA112_0 == 112 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 1) ) {
+ alt112=2;
+ }
+ else if ( LA112_0 == 113 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 2) ) {
+ alt112=3;
+ }
+ else if ( LA112_0 == 131 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 3) ) {
+ alt112=4;
+ }
+ else if ( LA112_0 == 119 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 4) ) {
+ alt112=5;
+ }
+ else if ( LA112_0 == 116 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 4) ) {
+ alt112=5;
+ }
+ else if ( LA112_0 >= 98 && LA112_0 <= 99 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 5) ) {
+ alt112=6;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 112, 0, input);
+
+ throw nvae;
+ }
+ switch (alt112) {
+ case 1 :
+ // InternalRBAModel.g:22096:3: ({...}? => ( ( ( rule__ViewContent__Group_4_0__0 ) ) ) )
+ {
+ // InternalRBAModel.g:22096:3: ({...}? => ( ( ( rule__ViewContent__Group_4_0__0 ) ) ) )
+ // InternalRBAModel.g:22097:4: {...}? => ( ( ( rule__ViewContent__Group_4_0__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__ViewContent__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 0)");
+ }
+ // InternalRBAModel.g:22097:107: ( ( ( rule__ViewContent__Group_4_0__0 ) ) )
+ // InternalRBAModel.g:22098:5: ( ( rule__ViewContent__Group_4_0__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 0);
+ selected = true;
+ // InternalRBAModel.g:22104:5: ( ( rule__ViewContent__Group_4_0__0 ) )
+ // InternalRBAModel.g:22105:6: ( rule__ViewContent__Group_4_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentAccess().getGroup_4_0());
+ }
+ // InternalRBAModel.g:22106:6: ( rule__ViewContent__Group_4_0__0 )
+ // InternalRBAModel.g:22106:7: rule__ViewContent__Group_4_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContent__Group_4_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentAccess().getGroup_4_0());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:22111:3: ({...}? => ( ( ( rule__ViewContent__Group_4_1__0 ) ) ) )
+ {
+ // InternalRBAModel.g:22111:3: ({...}? => ( ( ( rule__ViewContent__Group_4_1__0 ) ) ) )
+ // InternalRBAModel.g:22112:4: {...}? => ( ( ( rule__ViewContent__Group_4_1__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__ViewContent__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 1)");
+ }
+ // InternalRBAModel.g:22112:107: ( ( ( rule__ViewContent__Group_4_1__0 ) ) )
+ // InternalRBAModel.g:22113:5: ( ( rule__ViewContent__Group_4_1__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 1);
+ selected = true;
+ // InternalRBAModel.g:22119:5: ( ( rule__ViewContent__Group_4_1__0 ) )
+ // InternalRBAModel.g:22120:6: ( rule__ViewContent__Group_4_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentAccess().getGroup_4_1());
+ }
+ // InternalRBAModel.g:22121:6: ( rule__ViewContent__Group_4_1__0 )
+ // InternalRBAModel.g:22121:7: rule__ViewContent__Group_4_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContent__Group_4_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentAccess().getGroup_4_1());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:22126:3: ({...}? => ( ( ( rule__ViewContent__Group_4_2__0 ) ) ) )
+ {
+ // InternalRBAModel.g:22126:3: ({...}? => ( ( ( rule__ViewContent__Group_4_2__0 ) ) ) )
+ // InternalRBAModel.g:22127:4: {...}? => ( ( ( rule__ViewContent__Group_4_2__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 2) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__ViewContent__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 2)");
+ }
+ // InternalRBAModel.g:22127:107: ( ( ( rule__ViewContent__Group_4_2__0 ) ) )
+ // InternalRBAModel.g:22128:5: ( ( rule__ViewContent__Group_4_2__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 2);
+ selected = true;
+ // InternalRBAModel.g:22134:5: ( ( rule__ViewContent__Group_4_2__0 ) )
+ // InternalRBAModel.g:22135:6: ( rule__ViewContent__Group_4_2__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentAccess().getGroup_4_2());
+ }
+ // InternalRBAModel.g:22136:6: ( rule__ViewContent__Group_4_2__0 )
+ // InternalRBAModel.g:22136:7: rule__ViewContent__Group_4_2__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContent__Group_4_2__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentAccess().getGroup_4_2());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // InternalRBAModel.g:22141:3: ({...}? => ( ( ( ( rule__ViewContent__StatesAssignment_4_3 ) ) ( ( ( rule__ViewContent__StatesAssignment_4_3 )=> rule__ViewContent__StatesAssignment_4_3 )* ) ) ) )
+ {
+ // InternalRBAModel.g:22141:3: ({...}? => ( ( ( ( rule__ViewContent__StatesAssignment_4_3 ) ) ( ( ( rule__ViewContent__StatesAssignment_4_3 )=> rule__ViewContent__StatesAssignment_4_3 )* ) ) ) )
+ // InternalRBAModel.g:22142:4: {...}? => ( ( ( ( rule__ViewContent__StatesAssignment_4_3 ) ) ( ( ( rule__ViewContent__StatesAssignment_4_3 )=> rule__ViewContent__StatesAssignment_4_3 )* ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 3) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__ViewContent__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 3)");
+ }
+ // InternalRBAModel.g:22142:107: ( ( ( ( rule__ViewContent__StatesAssignment_4_3 ) ) ( ( ( rule__ViewContent__StatesAssignment_4_3 )=> rule__ViewContent__StatesAssignment_4_3 )* ) ) )
+ // InternalRBAModel.g:22143:5: ( ( ( rule__ViewContent__StatesAssignment_4_3 ) ) ( ( ( rule__ViewContent__StatesAssignment_4_3 )=> rule__ViewContent__StatesAssignment_4_3 )* ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 3);
+ selected = true;
+ // InternalRBAModel.g:22149:5: ( ( ( rule__ViewContent__StatesAssignment_4_3 ) ) ( ( ( rule__ViewContent__StatesAssignment_4_3 )=> rule__ViewContent__StatesAssignment_4_3 )* ) )
+ // InternalRBAModel.g:22150:6: ( ( rule__ViewContent__StatesAssignment_4_3 ) ) ( ( ( rule__ViewContent__StatesAssignment_4_3 )=> rule__ViewContent__StatesAssignment_4_3 )* )
+ {
+ // InternalRBAModel.g:22150:6: ( ( rule__ViewContent__StatesAssignment_4_3 ) )
+ // InternalRBAModel.g:22151:7: ( rule__ViewContent__StatesAssignment_4_3 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentAccess().getStatesAssignment_4_3());
+ }
+ // InternalRBAModel.g:22152:7: ( rule__ViewContent__StatesAssignment_4_3 )
+ // InternalRBAModel.g:22152:8: rule__ViewContent__StatesAssignment_4_3
+ {
+ pushFollow(FOLLOW_161);
+ rule__ViewContent__StatesAssignment_4_3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentAccess().getStatesAssignment_4_3());
+ }
+
+ }
+
+ // InternalRBAModel.g:22155:6: ( ( ( rule__ViewContent__StatesAssignment_4_3 )=> rule__ViewContent__StatesAssignment_4_3 )* )
+ // InternalRBAModel.g:22156:7: ( ( rule__ViewContent__StatesAssignment_4_3 )=> rule__ViewContent__StatesAssignment_4_3 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentAccess().getStatesAssignment_4_3());
+ }
+ // InternalRBAModel.g:22157:7: ( ( rule__ViewContent__StatesAssignment_4_3 )=> rule__ViewContent__StatesAssignment_4_3 )*
+ loop109:
+ do {
+ int alt109=2;
+ alt109 = dfa109.predict(input);
+ switch (alt109) {
+ case 1 :
+ // InternalRBAModel.g:22157:8: ( rule__ViewContent__StatesAssignment_4_3 )=> rule__ViewContent__StatesAssignment_4_3
+ {
+ pushFollow(FOLLOW_161);
+ rule__ViewContent__StatesAssignment_4_3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop109;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentAccess().getStatesAssignment_4_3());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 5 :
+ // InternalRBAModel.g:22163:3: ({...}? => ( ( ( ( rule__ViewContent__SizeAssignment_4_4 ) ) ( ( ( rule__ViewContent__SizeAssignment_4_4 )=> rule__ViewContent__SizeAssignment_4_4 )* ) ) ) )
+ {
+ // InternalRBAModel.g:22163:3: ({...}? => ( ( ( ( rule__ViewContent__SizeAssignment_4_4 ) ) ( ( ( rule__ViewContent__SizeAssignment_4_4 )=> rule__ViewContent__SizeAssignment_4_4 )* ) ) ) )
+ // InternalRBAModel.g:22164:4: {...}? => ( ( ( ( rule__ViewContent__SizeAssignment_4_4 ) ) ( ( ( rule__ViewContent__SizeAssignment_4_4 )=> rule__ViewContent__SizeAssignment_4_4 )* ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 4) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__ViewContent__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 4)");
+ }
+ // InternalRBAModel.g:22164:107: ( ( ( ( rule__ViewContent__SizeAssignment_4_4 ) ) ( ( ( rule__ViewContent__SizeAssignment_4_4 )=> rule__ViewContent__SizeAssignment_4_4 )* ) ) )
+ // InternalRBAModel.g:22165:5: ( ( ( rule__ViewContent__SizeAssignment_4_4 ) ) ( ( ( rule__ViewContent__SizeAssignment_4_4 )=> rule__ViewContent__SizeAssignment_4_4 )* ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 4);
+ selected = true;
+ // InternalRBAModel.g:22171:5: ( ( ( rule__ViewContent__SizeAssignment_4_4 ) ) ( ( ( rule__ViewContent__SizeAssignment_4_4 )=> rule__ViewContent__SizeAssignment_4_4 )* ) )
+ // InternalRBAModel.g:22172:6: ( ( rule__ViewContent__SizeAssignment_4_4 ) ) ( ( ( rule__ViewContent__SizeAssignment_4_4 )=> rule__ViewContent__SizeAssignment_4_4 )* )
+ {
+ // InternalRBAModel.g:22172:6: ( ( rule__ViewContent__SizeAssignment_4_4 ) )
+ // InternalRBAModel.g:22173:7: ( rule__ViewContent__SizeAssignment_4_4 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentAccess().getSizeAssignment_4_4());
+ }
+ // InternalRBAModel.g:22174:7: ( rule__ViewContent__SizeAssignment_4_4 )
+ // InternalRBAModel.g:22174:8: rule__ViewContent__SizeAssignment_4_4
+ {
+ pushFollow(FOLLOW_162);
+ rule__ViewContent__SizeAssignment_4_4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentAccess().getSizeAssignment_4_4());
+ }
+
+ }
+
+ // InternalRBAModel.g:22177:6: ( ( ( rule__ViewContent__SizeAssignment_4_4 )=> rule__ViewContent__SizeAssignment_4_4 )* )
+ // InternalRBAModel.g:22178:7: ( ( rule__ViewContent__SizeAssignment_4_4 )=> rule__ViewContent__SizeAssignment_4_4 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentAccess().getSizeAssignment_4_4());
+ }
+ // InternalRBAModel.g:22179:7: ( ( rule__ViewContent__SizeAssignment_4_4 )=> rule__ViewContent__SizeAssignment_4_4 )*
+ loop110:
+ do {
+ int alt110=2;
+ alt110 = dfa110.predict(input);
+ switch (alt110) {
+ case 1 :
+ // InternalRBAModel.g:22179:8: ( rule__ViewContent__SizeAssignment_4_4 )=> rule__ViewContent__SizeAssignment_4_4
+ {
+ pushFollow(FOLLOW_162);
+ rule__ViewContent__SizeAssignment_4_4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop110;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentAccess().getSizeAssignment_4_4());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 6 :
+ // InternalRBAModel.g:22185:3: ({...}? => ( ( ( ( rule__ViewContent__TagsAssignment_4_5 ) ) ( ( ( rule__ViewContent__TagsAssignment_4_5 )=> rule__ViewContent__TagsAssignment_4_5 )* ) ) ) )
+ {
+ // InternalRBAModel.g:22185:3: ({...}? => ( ( ( ( rule__ViewContent__TagsAssignment_4_5 ) ) ( ( ( rule__ViewContent__TagsAssignment_4_5 )=> rule__ViewContent__TagsAssignment_4_5 )* ) ) ) )
+ // InternalRBAModel.g:22186:4: {...}? => ( ( ( ( rule__ViewContent__TagsAssignment_4_5 ) ) ( ( ( rule__ViewContent__TagsAssignment_4_5 )=> rule__ViewContent__TagsAssignment_4_5 )* ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 5) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__ViewContent__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 5)");
+ }
+ // InternalRBAModel.g:22186:107: ( ( ( ( rule__ViewContent__TagsAssignment_4_5 ) ) ( ( ( rule__ViewContent__TagsAssignment_4_5 )=> rule__ViewContent__TagsAssignment_4_5 )* ) ) )
+ // InternalRBAModel.g:22187:5: ( ( ( rule__ViewContent__TagsAssignment_4_5 ) ) ( ( ( rule__ViewContent__TagsAssignment_4_5 )=> rule__ViewContent__TagsAssignment_4_5 )* ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 5);
+ selected = true;
+ // InternalRBAModel.g:22193:5: ( ( ( rule__ViewContent__TagsAssignment_4_5 ) ) ( ( ( rule__ViewContent__TagsAssignment_4_5 )=> rule__ViewContent__TagsAssignment_4_5 )* ) )
+ // InternalRBAModel.g:22194:6: ( ( rule__ViewContent__TagsAssignment_4_5 ) ) ( ( ( rule__ViewContent__TagsAssignment_4_5 )=> rule__ViewContent__TagsAssignment_4_5 )* )
+ {
+ // InternalRBAModel.g:22194:6: ( ( rule__ViewContent__TagsAssignment_4_5 ) )
+ // InternalRBAModel.g:22195:7: ( rule__ViewContent__TagsAssignment_4_5 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentAccess().getTagsAssignment_4_5());
+ }
+ // InternalRBAModel.g:22196:7: ( rule__ViewContent__TagsAssignment_4_5 )
+ // InternalRBAModel.g:22196:8: rule__ViewContent__TagsAssignment_4_5
+ {
+ pushFollow(FOLLOW_163);
+ rule__ViewContent__TagsAssignment_4_5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentAccess().getTagsAssignment_4_5());
+ }
+
+ }
+
+ // InternalRBAModel.g:22199:6: ( ( ( rule__ViewContent__TagsAssignment_4_5 )=> rule__ViewContent__TagsAssignment_4_5 )* )
+ // InternalRBAModel.g:22200:7: ( ( rule__ViewContent__TagsAssignment_4_5 )=> rule__ViewContent__TagsAssignment_4_5 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentAccess().getTagsAssignment_4_5());
+ }
+ // InternalRBAModel.g:22201:7: ( ( rule__ViewContent__TagsAssignment_4_5 )=> rule__ViewContent__TagsAssignment_4_5 )*
+ loop111:
+ do {
+ int alt111=2;
+ alt111 = dfa111.predict(input);
+ switch (alt111) {
+ case 1 :
+ // InternalRBAModel.g:22201:8: ( rule__ViewContent__TagsAssignment_4_5 )=> rule__ViewContent__TagsAssignment_4_5
+ {
+ pushFollow(FOLLOW_163);
+ rule__ViewContent__TagsAssignment_4_5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop111;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentAccess().getTagsAssignment_4_5());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ if (selected)
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getViewContentAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__UnorderedGroup_4__Impl"
+
+
+ // $ANTLR start "rule__ViewContent__UnorderedGroup_4__0"
+ // InternalRBAModel.g:22215:1: rule__ViewContent__UnorderedGroup_4__0 : rule__ViewContent__UnorderedGroup_4__Impl ( rule__ViewContent__UnorderedGroup_4__1 )? ;
+ public final void rule__ViewContent__UnorderedGroup_4__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:22219:1: ( rule__ViewContent__UnorderedGroup_4__Impl ( rule__ViewContent__UnorderedGroup_4__1 )? )
+ // InternalRBAModel.g:22220:2: rule__ViewContent__UnorderedGroup_4__Impl ( rule__ViewContent__UnorderedGroup_4__1 )?
+ {
+ pushFollow(FOLLOW_163);
+ rule__ViewContent__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // InternalRBAModel.g:22221:2: ( rule__ViewContent__UnorderedGroup_4__1 )?
+ int alt113=2;
+ alt113 = dfa113.predict(input);
+ switch (alt113) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__ViewContent__UnorderedGroup_4__1
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContent__UnorderedGroup_4__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__UnorderedGroup_4__0"
+
+
+ // $ANTLR start "rule__ViewContent__UnorderedGroup_4__1"
+ // InternalRBAModel.g:22227:1: rule__ViewContent__UnorderedGroup_4__1 : rule__ViewContent__UnorderedGroup_4__Impl ( rule__ViewContent__UnorderedGroup_4__2 )? ;
+ public final void rule__ViewContent__UnorderedGroup_4__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:22231:1: ( rule__ViewContent__UnorderedGroup_4__Impl ( rule__ViewContent__UnorderedGroup_4__2 )? )
+ // InternalRBAModel.g:22232:2: rule__ViewContent__UnorderedGroup_4__Impl ( rule__ViewContent__UnorderedGroup_4__2 )?
+ {
+ pushFollow(FOLLOW_163);
+ rule__ViewContent__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // InternalRBAModel.g:22233:2: ( rule__ViewContent__UnorderedGroup_4__2 )?
+ int alt114=2;
+ alt114 = dfa114.predict(input);
+ switch (alt114) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__ViewContent__UnorderedGroup_4__2
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContent__UnorderedGroup_4__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__UnorderedGroup_4__1"
+
+
+ // $ANTLR start "rule__ViewContent__UnorderedGroup_4__2"
+ // InternalRBAModel.g:22239:1: rule__ViewContent__UnorderedGroup_4__2 : rule__ViewContent__UnorderedGroup_4__Impl ( rule__ViewContent__UnorderedGroup_4__3 )? ;
+ public final void rule__ViewContent__UnorderedGroup_4__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:22243:1: ( rule__ViewContent__UnorderedGroup_4__Impl ( rule__ViewContent__UnorderedGroup_4__3 )? )
+ // InternalRBAModel.g:22244:2: rule__ViewContent__UnorderedGroup_4__Impl ( rule__ViewContent__UnorderedGroup_4__3 )?
+ {
+ pushFollow(FOLLOW_163);
+ rule__ViewContent__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // InternalRBAModel.g:22245:2: ( rule__ViewContent__UnorderedGroup_4__3 )?
+ int alt115=2;
+ alt115 = dfa115.predict(input);
+ switch (alt115) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__ViewContent__UnorderedGroup_4__3
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContent__UnorderedGroup_4__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__UnorderedGroup_4__2"
+
+
+ // $ANTLR start "rule__ViewContent__UnorderedGroup_4__3"
+ // InternalRBAModel.g:22251:1: rule__ViewContent__UnorderedGroup_4__3 : rule__ViewContent__UnorderedGroup_4__Impl ( rule__ViewContent__UnorderedGroup_4__4 )? ;
+ public final void rule__ViewContent__UnorderedGroup_4__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:22255:1: ( rule__ViewContent__UnorderedGroup_4__Impl ( rule__ViewContent__UnorderedGroup_4__4 )? )
+ // InternalRBAModel.g:22256:2: rule__ViewContent__UnorderedGroup_4__Impl ( rule__ViewContent__UnorderedGroup_4__4 )?
+ {
+ pushFollow(FOLLOW_163);
+ rule__ViewContent__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // InternalRBAModel.g:22257:2: ( rule__ViewContent__UnorderedGroup_4__4 )?
+ int alt116=2;
+ alt116 = dfa116.predict(input);
+ switch (alt116) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__ViewContent__UnorderedGroup_4__4
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContent__UnorderedGroup_4__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__UnorderedGroup_4__3"
+
+
+ // $ANTLR start "rule__ViewContent__UnorderedGroup_4__4"
+ // InternalRBAModel.g:22263:1: rule__ViewContent__UnorderedGroup_4__4 : rule__ViewContent__UnorderedGroup_4__Impl ( rule__ViewContent__UnorderedGroup_4__5 )? ;
+ public final void rule__ViewContent__UnorderedGroup_4__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:22267:1: ( rule__ViewContent__UnorderedGroup_4__Impl ( rule__ViewContent__UnorderedGroup_4__5 )? )
+ // InternalRBAModel.g:22268:2: rule__ViewContent__UnorderedGroup_4__Impl ( rule__ViewContent__UnorderedGroup_4__5 )?
+ {
+ pushFollow(FOLLOW_163);
+ rule__ViewContent__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // InternalRBAModel.g:22269:2: ( rule__ViewContent__UnorderedGroup_4__5 )?
+ int alt117=2;
+ alt117 = dfa117.predict(input);
+ switch (alt117) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__ViewContent__UnorderedGroup_4__5
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContent__UnorderedGroup_4__5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__UnorderedGroup_4__4"
+
+
+ // $ANTLR start "rule__ViewContent__UnorderedGroup_4__5"
+ // InternalRBAModel.g:22275:1: rule__ViewContent__UnorderedGroup_4__5 : rule__ViewContent__UnorderedGroup_4__Impl ;
+ public final void rule__ViewContent__UnorderedGroup_4__5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:22279:1: ( rule__ViewContent__UnorderedGroup_4__Impl )
+ // InternalRBAModel.g:22280:2: rule__ViewContent__UnorderedGroup_4__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContent__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__UnorderedGroup_4__5"
+
+
+ // $ANTLR start "rule__SoundContent__UnorderedGroup_4"
+ // InternalRBAModel.g:22287:1: rule__SoundContent__UnorderedGroup_4 : ( rule__SoundContent__UnorderedGroup_4__0 )? ;
+ public final void rule__SoundContent__UnorderedGroup_4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+ getUnorderedGroupHelper().enter(grammarAccess.getSoundContentAccess().getUnorderedGroup_4());
+
+ try {
+ // InternalRBAModel.g:22292:1: ( ( rule__SoundContent__UnorderedGroup_4__0 )? )
+ // InternalRBAModel.g:22293:2: ( rule__SoundContent__UnorderedGroup_4__0 )?
+ {
+ // InternalRBAModel.g:22293:2: ( rule__SoundContent__UnorderedGroup_4__0 )?
+ int alt118=2;
+ int LA118_0 = input.LA(1);
+
+ if ( LA118_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 0) ) {
+ alt118=1;
+ }
+ else if ( LA118_0 == 112 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 1) ) {
+ alt118=1;
+ }
+ else if ( LA118_0 == 113 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 2) ) {
+ alt118=1;
+ }
+ else if ( LA118_0 == 131 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 3) ) {
+ alt118=1;
+ }
+ else if ( LA118_0 == 98 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 4) ) {
+ alt118=1;
+ }
+ else if ( LA118_0 == 99 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 4) ) {
+ alt118=1;
+ }
+ switch (alt118) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__SoundContent__UnorderedGroup_4__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContent__UnorderedGroup_4__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ getUnorderedGroupHelper().leave(grammarAccess.getSoundContentAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__UnorderedGroup_4"
+
+
+ // $ANTLR start "rule__SoundContent__UnorderedGroup_4__Impl"
+ // InternalRBAModel.g:22301:1: rule__SoundContent__UnorderedGroup_4__Impl : ( ({...}? => ( ( ( rule__SoundContent__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__SoundContent__Group_4_1__0 ) ) ) ) | ({...}? => ( ( ( rule__SoundContent__Group_4_2__0 ) ) ) ) | ({...}? => ( ( ( ( rule__SoundContent__StatesAssignment_4_3 ) ) ( ( ( rule__SoundContent__StatesAssignment_4_3 )=> rule__SoundContent__StatesAssignment_4_3 )* ) ) ) ) | ({...}? => ( ( ( ( rule__SoundContent__TagsAssignment_4_4 ) ) ( ( ( rule__SoundContent__TagsAssignment_4_4 )=> rule__SoundContent__TagsAssignment_4_4 )* ) ) ) ) ) ;
+ public final void rule__SoundContent__UnorderedGroup_4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+ boolean selected = false;
+
+ try {
+ // InternalRBAModel.g:22306:1: ( ( ({...}? => ( ( ( rule__SoundContent__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__SoundContent__Group_4_1__0 ) ) ) ) | ({...}? => ( ( ( rule__SoundContent__Group_4_2__0 ) ) ) ) | ({...}? => ( ( ( ( rule__SoundContent__StatesAssignment_4_3 ) ) ( ( ( rule__SoundContent__StatesAssignment_4_3 )=> rule__SoundContent__StatesAssignment_4_3 )* ) ) ) ) | ({...}? => ( ( ( ( rule__SoundContent__TagsAssignment_4_4 ) ) ( ( ( rule__SoundContent__TagsAssignment_4_4 )=> rule__SoundContent__TagsAssignment_4_4 )* ) ) ) ) ) )
+ // InternalRBAModel.g:22307:3: ( ({...}? => ( ( ( rule__SoundContent__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__SoundContent__Group_4_1__0 ) ) ) ) | ({...}? => ( ( ( rule__SoundContent__Group_4_2__0 ) ) ) ) | ({...}? => ( ( ( ( rule__SoundContent__StatesAssignment_4_3 ) ) ( ( ( rule__SoundContent__StatesAssignment_4_3 )=> rule__SoundContent__StatesAssignment_4_3 )* ) ) ) ) | ({...}? => ( ( ( ( rule__SoundContent__TagsAssignment_4_4 ) ) ( ( ( rule__SoundContent__TagsAssignment_4_4 )=> rule__SoundContent__TagsAssignment_4_4 )* ) ) ) ) )
+ {
+ // InternalRBAModel.g:22307:3: ( ({...}? => ( ( ( rule__SoundContent__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__SoundContent__Group_4_1__0 ) ) ) ) | ({...}? => ( ( ( rule__SoundContent__Group_4_2__0 ) ) ) ) | ({...}? => ( ( ( ( rule__SoundContent__StatesAssignment_4_3 ) ) ( ( ( rule__SoundContent__StatesAssignment_4_3 )=> rule__SoundContent__StatesAssignment_4_3 )* ) ) ) ) | ({...}? => ( ( ( ( rule__SoundContent__TagsAssignment_4_4 ) ) ( ( ( rule__SoundContent__TagsAssignment_4_4 )=> rule__SoundContent__TagsAssignment_4_4 )* ) ) ) ) )
+ int alt121=5;
+ int LA121_0 = input.LA(1);
+
+ if ( LA121_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 0) ) {
+ alt121=1;
+ }
+ else if ( LA121_0 == 112 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 1) ) {
+ alt121=2;
+ }
+ else if ( LA121_0 == 113 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 2) ) {
+ alt121=3;
+ }
+ else if ( LA121_0 == 131 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 3) ) {
+ alt121=4;
+ }
+ else if ( LA121_0 >= 98 && LA121_0 <= 99 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 4) ) {
+ alt121=5;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 121, 0, input);
+
+ throw nvae;
+ }
+ switch (alt121) {
+ case 1 :
+ // InternalRBAModel.g:22308:3: ({...}? => ( ( ( rule__SoundContent__Group_4_0__0 ) ) ) )
+ {
+ // InternalRBAModel.g:22308:3: ({...}? => ( ( ( rule__SoundContent__Group_4_0__0 ) ) ) )
+ // InternalRBAModel.g:22309:4: {...}? => ( ( ( rule__SoundContent__Group_4_0__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__SoundContent__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 0)");
+ }
+ // InternalRBAModel.g:22309:108: ( ( ( rule__SoundContent__Group_4_0__0 ) ) )
+ // InternalRBAModel.g:22310:5: ( ( rule__SoundContent__Group_4_0__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 0);
+ selected = true;
+ // InternalRBAModel.g:22316:5: ( ( rule__SoundContent__Group_4_0__0 ) )
+ // InternalRBAModel.g:22317:6: ( rule__SoundContent__Group_4_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentAccess().getGroup_4_0());
+ }
+ // InternalRBAModel.g:22318:6: ( rule__SoundContent__Group_4_0__0 )
+ // InternalRBAModel.g:22318:7: rule__SoundContent__Group_4_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContent__Group_4_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentAccess().getGroup_4_0());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:22323:3: ({...}? => ( ( ( rule__SoundContent__Group_4_1__0 ) ) ) )
+ {
+ // InternalRBAModel.g:22323:3: ({...}? => ( ( ( rule__SoundContent__Group_4_1__0 ) ) ) )
+ // InternalRBAModel.g:22324:4: {...}? => ( ( ( rule__SoundContent__Group_4_1__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__SoundContent__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 1)");
+ }
+ // InternalRBAModel.g:22324:108: ( ( ( rule__SoundContent__Group_4_1__0 ) ) )
+ // InternalRBAModel.g:22325:5: ( ( rule__SoundContent__Group_4_1__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 1);
+ selected = true;
+ // InternalRBAModel.g:22331:5: ( ( rule__SoundContent__Group_4_1__0 ) )
+ // InternalRBAModel.g:22332:6: ( rule__SoundContent__Group_4_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentAccess().getGroup_4_1());
+ }
+ // InternalRBAModel.g:22333:6: ( rule__SoundContent__Group_4_1__0 )
+ // InternalRBAModel.g:22333:7: rule__SoundContent__Group_4_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContent__Group_4_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentAccess().getGroup_4_1());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:22338:3: ({...}? => ( ( ( rule__SoundContent__Group_4_2__0 ) ) ) )
+ {
+ // InternalRBAModel.g:22338:3: ({...}? => ( ( ( rule__SoundContent__Group_4_2__0 ) ) ) )
+ // InternalRBAModel.g:22339:4: {...}? => ( ( ( rule__SoundContent__Group_4_2__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 2) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__SoundContent__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 2)");
+ }
+ // InternalRBAModel.g:22339:108: ( ( ( rule__SoundContent__Group_4_2__0 ) ) )
+ // InternalRBAModel.g:22340:5: ( ( rule__SoundContent__Group_4_2__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 2);
+ selected = true;
+ // InternalRBAModel.g:22346:5: ( ( rule__SoundContent__Group_4_2__0 ) )
+ // InternalRBAModel.g:22347:6: ( rule__SoundContent__Group_4_2__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentAccess().getGroup_4_2());
+ }
+ // InternalRBAModel.g:22348:6: ( rule__SoundContent__Group_4_2__0 )
+ // InternalRBAModel.g:22348:7: rule__SoundContent__Group_4_2__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContent__Group_4_2__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentAccess().getGroup_4_2());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // InternalRBAModel.g:22353:3: ({...}? => ( ( ( ( rule__SoundContent__StatesAssignment_4_3 ) ) ( ( ( rule__SoundContent__StatesAssignment_4_3 )=> rule__SoundContent__StatesAssignment_4_3 )* ) ) ) )
+ {
+ // InternalRBAModel.g:22353:3: ({...}? => ( ( ( ( rule__SoundContent__StatesAssignment_4_3 ) ) ( ( ( rule__SoundContent__StatesAssignment_4_3 )=> rule__SoundContent__StatesAssignment_4_3 )* ) ) ) )
+ // InternalRBAModel.g:22354:4: {...}? => ( ( ( ( rule__SoundContent__StatesAssignment_4_3 ) ) ( ( ( rule__SoundContent__StatesAssignment_4_3 )=> rule__SoundContent__StatesAssignment_4_3 )* ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 3) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__SoundContent__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 3)");
+ }
+ // InternalRBAModel.g:22354:108: ( ( ( ( rule__SoundContent__StatesAssignment_4_3 ) ) ( ( ( rule__SoundContent__StatesAssignment_4_3 )=> rule__SoundContent__StatesAssignment_4_3 )* ) ) )
+ // InternalRBAModel.g:22355:5: ( ( ( rule__SoundContent__StatesAssignment_4_3 ) ) ( ( ( rule__SoundContent__StatesAssignment_4_3 )=> rule__SoundContent__StatesAssignment_4_3 )* ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 3);
+ selected = true;
+ // InternalRBAModel.g:22361:5: ( ( ( rule__SoundContent__StatesAssignment_4_3 ) ) ( ( ( rule__SoundContent__StatesAssignment_4_3 )=> rule__SoundContent__StatesAssignment_4_3 )* ) )
+ // InternalRBAModel.g:22362:6: ( ( rule__SoundContent__StatesAssignment_4_3 ) ) ( ( ( rule__SoundContent__StatesAssignment_4_3 )=> rule__SoundContent__StatesAssignment_4_3 )* )
+ {
+ // InternalRBAModel.g:22362:6: ( ( rule__SoundContent__StatesAssignment_4_3 ) )
+ // InternalRBAModel.g:22363:7: ( rule__SoundContent__StatesAssignment_4_3 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentAccess().getStatesAssignment_4_3());
+ }
+ // InternalRBAModel.g:22364:7: ( rule__SoundContent__StatesAssignment_4_3 )
+ // InternalRBAModel.g:22364:8: rule__SoundContent__StatesAssignment_4_3
+ {
+ pushFollow(FOLLOW_161);
+ rule__SoundContent__StatesAssignment_4_3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentAccess().getStatesAssignment_4_3());
+ }
+
+ }
+
+ // InternalRBAModel.g:22367:6: ( ( ( rule__SoundContent__StatesAssignment_4_3 )=> rule__SoundContent__StatesAssignment_4_3 )* )
+ // InternalRBAModel.g:22368:7: ( ( rule__SoundContent__StatesAssignment_4_3 )=> rule__SoundContent__StatesAssignment_4_3 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentAccess().getStatesAssignment_4_3());
+ }
+ // InternalRBAModel.g:22369:7: ( ( rule__SoundContent__StatesAssignment_4_3 )=> rule__SoundContent__StatesAssignment_4_3 )*
+ loop119:
+ do {
+ int alt119=2;
+ alt119 = dfa119.predict(input);
+ switch (alt119) {
+ case 1 :
+ // InternalRBAModel.g:22369:8: ( rule__SoundContent__StatesAssignment_4_3 )=> rule__SoundContent__StatesAssignment_4_3
+ {
+ pushFollow(FOLLOW_161);
+ rule__SoundContent__StatesAssignment_4_3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop119;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentAccess().getStatesAssignment_4_3());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 5 :
+ // InternalRBAModel.g:22375:3: ({...}? => ( ( ( ( rule__SoundContent__TagsAssignment_4_4 ) ) ( ( ( rule__SoundContent__TagsAssignment_4_4 )=> rule__SoundContent__TagsAssignment_4_4 )* ) ) ) )
+ {
+ // InternalRBAModel.g:22375:3: ({...}? => ( ( ( ( rule__SoundContent__TagsAssignment_4_4 ) ) ( ( ( rule__SoundContent__TagsAssignment_4_4 )=> rule__SoundContent__TagsAssignment_4_4 )* ) ) ) )
+ // InternalRBAModel.g:22376:4: {...}? => ( ( ( ( rule__SoundContent__TagsAssignment_4_4 ) ) ( ( ( rule__SoundContent__TagsAssignment_4_4 )=> rule__SoundContent__TagsAssignment_4_4 )* ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 4) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__SoundContent__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 4)");
+ }
+ // InternalRBAModel.g:22376:108: ( ( ( ( rule__SoundContent__TagsAssignment_4_4 ) ) ( ( ( rule__SoundContent__TagsAssignment_4_4 )=> rule__SoundContent__TagsAssignment_4_4 )* ) ) )
+ // InternalRBAModel.g:22377:5: ( ( ( rule__SoundContent__TagsAssignment_4_4 ) ) ( ( ( rule__SoundContent__TagsAssignment_4_4 )=> rule__SoundContent__TagsAssignment_4_4 )* ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 4);
+ selected = true;
+ // InternalRBAModel.g:22383:5: ( ( ( rule__SoundContent__TagsAssignment_4_4 ) ) ( ( ( rule__SoundContent__TagsAssignment_4_4 )=> rule__SoundContent__TagsAssignment_4_4 )* ) )
+ // InternalRBAModel.g:22384:6: ( ( rule__SoundContent__TagsAssignment_4_4 ) ) ( ( ( rule__SoundContent__TagsAssignment_4_4 )=> rule__SoundContent__TagsAssignment_4_4 )* )
+ {
+ // InternalRBAModel.g:22384:6: ( ( rule__SoundContent__TagsAssignment_4_4 ) )
+ // InternalRBAModel.g:22385:7: ( rule__SoundContent__TagsAssignment_4_4 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentAccess().getTagsAssignment_4_4());
+ }
+ // InternalRBAModel.g:22386:7: ( rule__SoundContent__TagsAssignment_4_4 )
+ // InternalRBAModel.g:22386:8: rule__SoundContent__TagsAssignment_4_4
+ {
+ pushFollow(FOLLOW_163);
+ rule__SoundContent__TagsAssignment_4_4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentAccess().getTagsAssignment_4_4());
+ }
+
+ }
+
+ // InternalRBAModel.g:22389:6: ( ( ( rule__SoundContent__TagsAssignment_4_4 )=> rule__SoundContent__TagsAssignment_4_4 )* )
+ // InternalRBAModel.g:22390:7: ( ( rule__SoundContent__TagsAssignment_4_4 )=> rule__SoundContent__TagsAssignment_4_4 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentAccess().getTagsAssignment_4_4());
+ }
+ // InternalRBAModel.g:22391:7: ( ( rule__SoundContent__TagsAssignment_4_4 )=> rule__SoundContent__TagsAssignment_4_4 )*
+ loop120:
+ do {
+ int alt120=2;
+ alt120 = dfa120.predict(input);
+ switch (alt120) {
+ case 1 :
+ // InternalRBAModel.g:22391:8: ( rule__SoundContent__TagsAssignment_4_4 )=> rule__SoundContent__TagsAssignment_4_4
+ {
+ pushFollow(FOLLOW_163);
+ rule__SoundContent__TagsAssignment_4_4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop120;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentAccess().getTagsAssignment_4_4());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ if (selected)
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getSoundContentAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__UnorderedGroup_4__Impl"
+
+
+ // $ANTLR start "rule__SoundContent__UnorderedGroup_4__0"
+ // InternalRBAModel.g:22405:1: rule__SoundContent__UnorderedGroup_4__0 : rule__SoundContent__UnorderedGroup_4__Impl ( rule__SoundContent__UnorderedGroup_4__1 )? ;
+ public final void rule__SoundContent__UnorderedGroup_4__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:22409:1: ( rule__SoundContent__UnorderedGroup_4__Impl ( rule__SoundContent__UnorderedGroup_4__1 )? )
+ // InternalRBAModel.g:22410:2: rule__SoundContent__UnorderedGroup_4__Impl ( rule__SoundContent__UnorderedGroup_4__1 )?
+ {
+ pushFollow(FOLLOW_163);
+ rule__SoundContent__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // InternalRBAModel.g:22411:2: ( rule__SoundContent__UnorderedGroup_4__1 )?
+ int alt122=2;
+ int LA122_0 = input.LA(1);
+
+ if ( LA122_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 0) ) {
+ alt122=1;
+ }
+ else if ( LA122_0 == 112 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 1) ) {
+ alt122=1;
+ }
+ else if ( LA122_0 == 113 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 2) ) {
+ alt122=1;
+ }
+ else if ( LA122_0 == 131 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 3) ) {
+ alt122=1;
+ }
+ else if ( LA122_0 == 98 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 4) ) {
+ alt122=1;
+ }
+ else if ( LA122_0 == 99 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 4) ) {
+ alt122=1;
+ }
+ switch (alt122) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__SoundContent__UnorderedGroup_4__1
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContent__UnorderedGroup_4__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__UnorderedGroup_4__0"
+
+
+ // $ANTLR start "rule__SoundContent__UnorderedGroup_4__1"
+ // InternalRBAModel.g:22417:1: rule__SoundContent__UnorderedGroup_4__1 : rule__SoundContent__UnorderedGroup_4__Impl ( rule__SoundContent__UnorderedGroup_4__2 )? ;
+ public final void rule__SoundContent__UnorderedGroup_4__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:22421:1: ( rule__SoundContent__UnorderedGroup_4__Impl ( rule__SoundContent__UnorderedGroup_4__2 )? )
+ // InternalRBAModel.g:22422:2: rule__SoundContent__UnorderedGroup_4__Impl ( rule__SoundContent__UnorderedGroup_4__2 )?
+ {
+ pushFollow(FOLLOW_163);
+ rule__SoundContent__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // InternalRBAModel.g:22423:2: ( rule__SoundContent__UnorderedGroup_4__2 )?
+ int alt123=2;
+ int LA123_0 = input.LA(1);
+
+ if ( LA123_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 0) ) {
+ alt123=1;
+ }
+ else if ( LA123_0 == 112 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 1) ) {
+ alt123=1;
+ }
+ else if ( LA123_0 == 113 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 2) ) {
+ alt123=1;
+ }
+ else if ( LA123_0 == 131 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 3) ) {
+ alt123=1;
+ }
+ else if ( LA123_0 == 98 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 4) ) {
+ alt123=1;
+ }
+ else if ( LA123_0 == 99 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 4) ) {
+ alt123=1;
+ }
+ switch (alt123) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__SoundContent__UnorderedGroup_4__2
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContent__UnorderedGroup_4__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__UnorderedGroup_4__1"
+
+
+ // $ANTLR start "rule__SoundContent__UnorderedGroup_4__2"
+ // InternalRBAModel.g:22429:1: rule__SoundContent__UnorderedGroup_4__2 : rule__SoundContent__UnorderedGroup_4__Impl ( rule__SoundContent__UnorderedGroup_4__3 )? ;
+ public final void rule__SoundContent__UnorderedGroup_4__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:22433:1: ( rule__SoundContent__UnorderedGroup_4__Impl ( rule__SoundContent__UnorderedGroup_4__3 )? )
+ // InternalRBAModel.g:22434:2: rule__SoundContent__UnorderedGroup_4__Impl ( rule__SoundContent__UnorderedGroup_4__3 )?
+ {
+ pushFollow(FOLLOW_163);
+ rule__SoundContent__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // InternalRBAModel.g:22435:2: ( rule__SoundContent__UnorderedGroup_4__3 )?
+ int alt124=2;
+ int LA124_0 = input.LA(1);
+
+ if ( LA124_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 0) ) {
+ alt124=1;
+ }
+ else if ( LA124_0 == 112 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 1) ) {
+ alt124=1;
+ }
+ else if ( LA124_0 == 113 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 2) ) {
+ alt124=1;
+ }
+ else if ( LA124_0 == 131 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 3) ) {
+ alt124=1;
+ }
+ else if ( LA124_0 == 98 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 4) ) {
+ alt124=1;
+ }
+ else if ( LA124_0 == 99 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 4) ) {
+ alt124=1;
+ }
+ switch (alt124) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__SoundContent__UnorderedGroup_4__3
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContent__UnorderedGroup_4__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__UnorderedGroup_4__2"
+
+
+ // $ANTLR start "rule__SoundContent__UnorderedGroup_4__3"
+ // InternalRBAModel.g:22441:1: rule__SoundContent__UnorderedGroup_4__3 : rule__SoundContent__UnorderedGroup_4__Impl ( rule__SoundContent__UnorderedGroup_4__4 )? ;
+ public final void rule__SoundContent__UnorderedGroup_4__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:22445:1: ( rule__SoundContent__UnorderedGroup_4__Impl ( rule__SoundContent__UnorderedGroup_4__4 )? )
+ // InternalRBAModel.g:22446:2: rule__SoundContent__UnorderedGroup_4__Impl ( rule__SoundContent__UnorderedGroup_4__4 )?
+ {
+ pushFollow(FOLLOW_163);
+ rule__SoundContent__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // InternalRBAModel.g:22447:2: ( rule__SoundContent__UnorderedGroup_4__4 )?
+ int alt125=2;
+ int LA125_0 = input.LA(1);
+
+ if ( LA125_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 0) ) {
+ alt125=1;
+ }
+ else if ( LA125_0 == 112 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 1) ) {
+ alt125=1;
+ }
+ else if ( LA125_0 == 113 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 2) ) {
+ alt125=1;
+ }
+ else if ( LA125_0 == 131 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 3) ) {
+ alt125=1;
+ }
+ else if ( LA125_0 == 98 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 4) ) {
+ alt125=1;
+ }
+ else if ( LA125_0 == 99 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 4) ) {
+ alt125=1;
+ }
+ switch (alt125) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__SoundContent__UnorderedGroup_4__4
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContent__UnorderedGroup_4__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__UnorderedGroup_4__3"
+
+
+ // $ANTLR start "rule__SoundContent__UnorderedGroup_4__4"
+ // InternalRBAModel.g:22453:1: rule__SoundContent__UnorderedGroup_4__4 : rule__SoundContent__UnorderedGroup_4__Impl ;
+ public final void rule__SoundContent__UnorderedGroup_4__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:22457:1: ( rule__SoundContent__UnorderedGroup_4__Impl )
+ // InternalRBAModel.g:22458:2: rule__SoundContent__UnorderedGroup_4__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContent__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__UnorderedGroup_4__4"
+
+
+ // $ANTLR start "rule__Size__UnorderedGroup_4"
+ // InternalRBAModel.g:22465:1: rule__Size__UnorderedGroup_4 : ( rule__Size__UnorderedGroup_4__0 )? ;
+ public final void rule__Size__UnorderedGroup_4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+ getUnorderedGroupHelper().enter(grammarAccess.getSizeAccess().getUnorderedGroup_4());
+
+ try {
+ // InternalRBAModel.g:22470:1: ( ( rule__Size__UnorderedGroup_4__0 )? )
+ // InternalRBAModel.g:22471:2: ( rule__Size__UnorderedGroup_4__0 )?
+ {
+ // InternalRBAModel.g:22471:2: ( rule__Size__UnorderedGroup_4__0 )?
+ int alt126=2;
+ int LA126_0 = input.LA(1);
+
+ if ( LA126_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 0) ) {
+ alt126=1;
+ }
+ else if ( LA126_0 == 117 && getUnorderedGroupHelper().canSelect(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 1) ) {
+ alt126=1;
+ }
+ else if ( LA126_0 == 118 && getUnorderedGroupHelper().canSelect(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 2) ) {
+ alt126=1;
+ }
+ switch (alt126) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__Size__UnorderedGroup_4__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Size__UnorderedGroup_4__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ getUnorderedGroupHelper().leave(grammarAccess.getSizeAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Size__UnorderedGroup_4"
+
+
+ // $ANTLR start "rule__Size__UnorderedGroup_4__Impl"
+ // InternalRBAModel.g:22479:1: rule__Size__UnorderedGroup_4__Impl : ( ({...}? => ( ( ( rule__Size__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Size__Group_4_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Size__Group_4_2__0 ) ) ) ) ) ;
+ public final void rule__Size__UnorderedGroup_4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+ boolean selected = false;
+
+ try {
+ // InternalRBAModel.g:22484:1: ( ( ({...}? => ( ( ( rule__Size__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Size__Group_4_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Size__Group_4_2__0 ) ) ) ) ) )
+ // InternalRBAModel.g:22485:3: ( ({...}? => ( ( ( rule__Size__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Size__Group_4_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Size__Group_4_2__0 ) ) ) ) )
+ {
+ // InternalRBAModel.g:22485:3: ( ({...}? => ( ( ( rule__Size__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Size__Group_4_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Size__Group_4_2__0 ) ) ) ) )
+ int alt127=3;
+ int LA127_0 = input.LA(1);
+
+ if ( LA127_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 0) ) {
+ alt127=1;
+ }
+ else if ( LA127_0 == 117 && getUnorderedGroupHelper().canSelect(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 1) ) {
+ alt127=2;
+ }
+ else if ( LA127_0 == 118 && getUnorderedGroupHelper().canSelect(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 2) ) {
+ alt127=3;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 127, 0, input);
+
+ throw nvae;
+ }
+ switch (alt127) {
+ case 1 :
+ // InternalRBAModel.g:22486:3: ({...}? => ( ( ( rule__Size__Group_4_0__0 ) ) ) )
+ {
+ // InternalRBAModel.g:22486:3: ({...}? => ( ( ( rule__Size__Group_4_0__0 ) ) ) )
+ // InternalRBAModel.g:22487:4: {...}? => ( ( ( rule__Size__Group_4_0__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__Size__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 0)");
+ }
+ // InternalRBAModel.g:22487:100: ( ( ( rule__Size__Group_4_0__0 ) ) )
+ // InternalRBAModel.g:22488:5: ( ( rule__Size__Group_4_0__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 0);
+ selected = true;
+ // InternalRBAModel.g:22494:5: ( ( rule__Size__Group_4_0__0 ) )
+ // InternalRBAModel.g:22495:6: ( rule__Size__Group_4_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSizeAccess().getGroup_4_0());
+ }
+ // InternalRBAModel.g:22496:6: ( rule__Size__Group_4_0__0 )
+ // InternalRBAModel.g:22496:7: rule__Size__Group_4_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Size__Group_4_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSizeAccess().getGroup_4_0());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:22501:3: ({...}? => ( ( ( rule__Size__Group_4_1__0 ) ) ) )
+ {
+ // InternalRBAModel.g:22501:3: ({...}? => ( ( ( rule__Size__Group_4_1__0 ) ) ) )
+ // InternalRBAModel.g:22502:4: {...}? => ( ( ( rule__Size__Group_4_1__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__Size__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 1)");
+ }
+ // InternalRBAModel.g:22502:100: ( ( ( rule__Size__Group_4_1__0 ) ) )
+ // InternalRBAModel.g:22503:5: ( ( rule__Size__Group_4_1__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 1);
+ selected = true;
+ // InternalRBAModel.g:22509:5: ( ( rule__Size__Group_4_1__0 ) )
+ // InternalRBAModel.g:22510:6: ( rule__Size__Group_4_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSizeAccess().getGroup_4_1());
+ }
+ // InternalRBAModel.g:22511:6: ( rule__Size__Group_4_1__0 )
+ // InternalRBAModel.g:22511:7: rule__Size__Group_4_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Size__Group_4_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSizeAccess().getGroup_4_1());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:22516:3: ({...}? => ( ( ( rule__Size__Group_4_2__0 ) ) ) )
+ {
+ // InternalRBAModel.g:22516:3: ({...}? => ( ( ( rule__Size__Group_4_2__0 ) ) ) )
+ // InternalRBAModel.g:22517:4: {...}? => ( ( ( rule__Size__Group_4_2__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 2) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__Size__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 2)");
+ }
+ // InternalRBAModel.g:22517:100: ( ( ( rule__Size__Group_4_2__0 ) ) )
+ // InternalRBAModel.g:22518:5: ( ( rule__Size__Group_4_2__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 2);
+ selected = true;
+ // InternalRBAModel.g:22524:5: ( ( rule__Size__Group_4_2__0 ) )
+ // InternalRBAModel.g:22525:6: ( rule__Size__Group_4_2__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSizeAccess().getGroup_4_2());
+ }
+ // InternalRBAModel.g:22526:6: ( rule__Size__Group_4_2__0 )
+ // InternalRBAModel.g:22526:7: rule__Size__Group_4_2__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Size__Group_4_2__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSizeAccess().getGroup_4_2());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ if (selected)
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getSizeAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Size__UnorderedGroup_4__Impl"
+
+
+ // $ANTLR start "rule__Size__UnorderedGroup_4__0"
+ // InternalRBAModel.g:22539:1: rule__Size__UnorderedGroup_4__0 : rule__Size__UnorderedGroup_4__Impl ( rule__Size__UnorderedGroup_4__1 )? ;
+ public final void rule__Size__UnorderedGroup_4__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:22543:1: ( rule__Size__UnorderedGroup_4__Impl ( rule__Size__UnorderedGroup_4__1 )? )
+ // InternalRBAModel.g:22544:2: rule__Size__UnorderedGroup_4__Impl ( rule__Size__UnorderedGroup_4__1 )?
+ {
+ pushFollow(FOLLOW_164);
+ rule__Size__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // InternalRBAModel.g:22545:2: ( rule__Size__UnorderedGroup_4__1 )?
+ int alt128=2;
+ int LA128_0 = input.LA(1);
+
+ if ( LA128_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 0) ) {
+ alt128=1;
+ }
+ else if ( LA128_0 == 117 && getUnorderedGroupHelper().canSelect(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 1) ) {
+ alt128=1;
+ }
+ else if ( LA128_0 == 118 && getUnorderedGroupHelper().canSelect(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 2) ) {
+ alt128=1;
+ }
+ switch (alt128) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__Size__UnorderedGroup_4__1
+ {
+ pushFollow(FOLLOW_2);
+ rule__Size__UnorderedGroup_4__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Size__UnorderedGroup_4__0"
+
+
+ // $ANTLR start "rule__Size__UnorderedGroup_4__1"
+ // InternalRBAModel.g:22551:1: rule__Size__UnorderedGroup_4__1 : rule__Size__UnorderedGroup_4__Impl ( rule__Size__UnorderedGroup_4__2 )? ;
+ public final void rule__Size__UnorderedGroup_4__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:22555:1: ( rule__Size__UnorderedGroup_4__Impl ( rule__Size__UnorderedGroup_4__2 )? )
+ // InternalRBAModel.g:22556:2: rule__Size__UnorderedGroup_4__Impl ( rule__Size__UnorderedGroup_4__2 )?
+ {
+ pushFollow(FOLLOW_164);
+ rule__Size__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // InternalRBAModel.g:22557:2: ( rule__Size__UnorderedGroup_4__2 )?
+ int alt129=2;
+ int LA129_0 = input.LA(1);
+
+ if ( LA129_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 0) ) {
+ alt129=1;
+ }
+ else if ( LA129_0 == 117 && getUnorderedGroupHelper().canSelect(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 1) ) {
+ alt129=1;
+ }
+ else if ( LA129_0 == 118 && getUnorderedGroupHelper().canSelect(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 2) ) {
+ alt129=1;
+ }
+ switch (alt129) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__Size__UnorderedGroup_4__2
+ {
+ pushFollow(FOLLOW_2);
+ rule__Size__UnorderedGroup_4__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Size__UnorderedGroup_4__1"
+
+
+ // $ANTLR start "rule__Size__UnorderedGroup_4__2"
+ // InternalRBAModel.g:22563:1: rule__Size__UnorderedGroup_4__2 : rule__Size__UnorderedGroup_4__Impl ;
+ public final void rule__Size__UnorderedGroup_4__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:22567:1: ( rule__Size__UnorderedGroup_4__Impl )
+ // InternalRBAModel.g:22568:2: rule__Size__UnorderedGroup_4__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Size__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Size__UnorderedGroup_4__2"
+
+
+ // $ANTLR start "rule__Offset__UnorderedGroup_3"
+ // InternalRBAModel.g:22575:1: rule__Offset__UnorderedGroup_3 : ( rule__Offset__UnorderedGroup_3__0 )? ;
+ public final void rule__Offset__UnorderedGroup_3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+ getUnorderedGroupHelper().enter(grammarAccess.getOffsetAccess().getUnorderedGroup_3());
+
+ try {
+ // InternalRBAModel.g:22580:1: ( ( rule__Offset__UnorderedGroup_3__0 )? )
+ // InternalRBAModel.g:22581:2: ( rule__Offset__UnorderedGroup_3__0 )?
+ {
+ // InternalRBAModel.g:22581:2: ( rule__Offset__UnorderedGroup_3__0 )?
+ int alt130=2;
+ int LA130_0 = input.LA(1);
+
+ if ( LA130_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 0) ) {
+ alt130=1;
+ }
+ else if ( LA130_0 == 121 && getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 1) ) {
+ alt130=1;
+ }
+ else if ( LA130_0 == 122 && getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 2) ) {
+ alt130=1;
+ }
+ else if ( LA130_0 == 119 && getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 3) ) {
+ alt130=1;
+ }
+ switch (alt130) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__Offset__UnorderedGroup_3__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Offset__UnorderedGroup_3__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ getUnorderedGroupHelper().leave(grammarAccess.getOffsetAccess().getUnorderedGroup_3());
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Offset__UnorderedGroup_3"
+
+
+ // $ANTLR start "rule__Offset__UnorderedGroup_3__Impl"
+ // InternalRBAModel.g:22589:1: rule__Offset__UnorderedGroup_3__Impl : ( ({...}? => ( ( ( rule__Offset__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Offset__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Offset__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__Offset__SizeAssignment_3_3 ) ) ) ) ) ;
+ public final void rule__Offset__UnorderedGroup_3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+ boolean selected = false;
+
+ try {
+ // InternalRBAModel.g:22594:1: ( ( ({...}? => ( ( ( rule__Offset__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Offset__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Offset__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__Offset__SizeAssignment_3_3 ) ) ) ) ) )
+ // InternalRBAModel.g:22595:3: ( ({...}? => ( ( ( rule__Offset__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Offset__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Offset__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__Offset__SizeAssignment_3_3 ) ) ) ) )
+ {
+ // InternalRBAModel.g:22595:3: ( ({...}? => ( ( ( rule__Offset__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Offset__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Offset__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__Offset__SizeAssignment_3_3 ) ) ) ) )
+ int alt131=4;
+ int LA131_0 = input.LA(1);
+
+ if ( LA131_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 0) ) {
+ alt131=1;
+ }
+ else if ( LA131_0 == 121 && getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 1) ) {
+ alt131=2;
+ }
+ else if ( LA131_0 == 122 && getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 2) ) {
+ alt131=3;
+ }
+ else if ( LA131_0 == 119 && getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 3) ) {
+ alt131=4;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 131, 0, input);
+
+ throw nvae;
+ }
+ switch (alt131) {
+ case 1 :
+ // InternalRBAModel.g:22596:3: ({...}? => ( ( ( rule__Offset__Group_3_0__0 ) ) ) )
+ {
+ // InternalRBAModel.g:22596:3: ({...}? => ( ( ( rule__Offset__Group_3_0__0 ) ) ) )
+ // InternalRBAModel.g:22597:4: {...}? => ( ( ( rule__Offset__Group_3_0__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__Offset__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 0)");
+ }
+ // InternalRBAModel.g:22597:102: ( ( ( rule__Offset__Group_3_0__0 ) ) )
+ // InternalRBAModel.g:22598:5: ( ( rule__Offset__Group_3_0__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 0);
+ selected = true;
+ // InternalRBAModel.g:22604:5: ( ( rule__Offset__Group_3_0__0 ) )
+ // InternalRBAModel.g:22605:6: ( rule__Offset__Group_3_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOffsetAccess().getGroup_3_0());
+ }
+ // InternalRBAModel.g:22606:6: ( rule__Offset__Group_3_0__0 )
+ // InternalRBAModel.g:22606:7: rule__Offset__Group_3_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Offset__Group_3_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOffsetAccess().getGroup_3_0());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:22611:3: ({...}? => ( ( ( rule__Offset__Group_3_1__0 ) ) ) )
+ {
+ // InternalRBAModel.g:22611:3: ({...}? => ( ( ( rule__Offset__Group_3_1__0 ) ) ) )
+ // InternalRBAModel.g:22612:4: {...}? => ( ( ( rule__Offset__Group_3_1__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__Offset__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 1)");
+ }
+ // InternalRBAModel.g:22612:102: ( ( ( rule__Offset__Group_3_1__0 ) ) )
+ // InternalRBAModel.g:22613:5: ( ( rule__Offset__Group_3_1__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 1);
+ selected = true;
+ // InternalRBAModel.g:22619:5: ( ( rule__Offset__Group_3_1__0 ) )
+ // InternalRBAModel.g:22620:6: ( rule__Offset__Group_3_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOffsetAccess().getGroup_3_1());
+ }
+ // InternalRBAModel.g:22621:6: ( rule__Offset__Group_3_1__0 )
+ // InternalRBAModel.g:22621:7: rule__Offset__Group_3_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Offset__Group_3_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOffsetAccess().getGroup_3_1());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:22626:3: ({...}? => ( ( ( rule__Offset__Group_3_2__0 ) ) ) )
+ {
+ // InternalRBAModel.g:22626:3: ({...}? => ( ( ( rule__Offset__Group_3_2__0 ) ) ) )
+ // InternalRBAModel.g:22627:4: {...}? => ( ( ( rule__Offset__Group_3_2__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 2) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__Offset__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 2)");
+ }
+ // InternalRBAModel.g:22627:102: ( ( ( rule__Offset__Group_3_2__0 ) ) )
+ // InternalRBAModel.g:22628:5: ( ( rule__Offset__Group_3_2__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 2);
+ selected = true;
+ // InternalRBAModel.g:22634:5: ( ( rule__Offset__Group_3_2__0 ) )
+ // InternalRBAModel.g:22635:6: ( rule__Offset__Group_3_2__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOffsetAccess().getGroup_3_2());
+ }
+ // InternalRBAModel.g:22636:6: ( rule__Offset__Group_3_2__0 )
+ // InternalRBAModel.g:22636:7: rule__Offset__Group_3_2__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Offset__Group_3_2__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOffsetAccess().getGroup_3_2());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // InternalRBAModel.g:22641:3: ({...}? => ( ( ( rule__Offset__SizeAssignment_3_3 ) ) ) )
+ {
+ // InternalRBAModel.g:22641:3: ({...}? => ( ( ( rule__Offset__SizeAssignment_3_3 ) ) ) )
+ // InternalRBAModel.g:22642:4: {...}? => ( ( ( rule__Offset__SizeAssignment_3_3 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 3) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__Offset__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 3)");
+ }
+ // InternalRBAModel.g:22642:102: ( ( ( rule__Offset__SizeAssignment_3_3 ) ) )
+ // InternalRBAModel.g:22643:5: ( ( rule__Offset__SizeAssignment_3_3 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 3);
+ selected = true;
+ // InternalRBAModel.g:22649:5: ( ( rule__Offset__SizeAssignment_3_3 ) )
+ // InternalRBAModel.g:22650:6: ( rule__Offset__SizeAssignment_3_3 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOffsetAccess().getSizeAssignment_3_3());
+ }
+ // InternalRBAModel.g:22651:6: ( rule__Offset__SizeAssignment_3_3 )
+ // InternalRBAModel.g:22651:7: rule__Offset__SizeAssignment_3_3
+ {
+ pushFollow(FOLLOW_2);
+ rule__Offset__SizeAssignment_3_3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOffsetAccess().getSizeAssignment_3_3());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ if (selected)
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getOffsetAccess().getUnorderedGroup_3());
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Offset__UnorderedGroup_3__Impl"
+
+
+ // $ANTLR start "rule__Offset__UnorderedGroup_3__0"
+ // InternalRBAModel.g:22664:1: rule__Offset__UnorderedGroup_3__0 : rule__Offset__UnorderedGroup_3__Impl ( rule__Offset__UnorderedGroup_3__1 )? ;
+ public final void rule__Offset__UnorderedGroup_3__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:22668:1: ( rule__Offset__UnorderedGroup_3__Impl ( rule__Offset__UnorderedGroup_3__1 )? )
+ // InternalRBAModel.g:22669:2: rule__Offset__UnorderedGroup_3__Impl ( rule__Offset__UnorderedGroup_3__1 )?
+ {
+ pushFollow(FOLLOW_165);
+ rule__Offset__UnorderedGroup_3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // InternalRBAModel.g:22670:2: ( rule__Offset__UnorderedGroup_3__1 )?
+ int alt132=2;
+ int LA132_0 = input.LA(1);
+
+ if ( LA132_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 0) ) {
+ alt132=1;
+ }
+ else if ( LA132_0 == 121 && getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 1) ) {
+ alt132=1;
+ }
+ else if ( LA132_0 == 122 && getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 2) ) {
+ alt132=1;
+ }
+ else if ( LA132_0 == 119 && getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 3) ) {
+ alt132=1;
+ }
+ switch (alt132) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__Offset__UnorderedGroup_3__1
+ {
+ pushFollow(FOLLOW_2);
+ rule__Offset__UnorderedGroup_3__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Offset__UnorderedGroup_3__0"
+
+
+ // $ANTLR start "rule__Offset__UnorderedGroup_3__1"
+ // InternalRBAModel.g:22676:1: rule__Offset__UnorderedGroup_3__1 : rule__Offset__UnorderedGroup_3__Impl ( rule__Offset__UnorderedGroup_3__2 )? ;
+ public final void rule__Offset__UnorderedGroup_3__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:22680:1: ( rule__Offset__UnorderedGroup_3__Impl ( rule__Offset__UnorderedGroup_3__2 )? )
+ // InternalRBAModel.g:22681:2: rule__Offset__UnorderedGroup_3__Impl ( rule__Offset__UnorderedGroup_3__2 )?
+ {
+ pushFollow(FOLLOW_165);
+ rule__Offset__UnorderedGroup_3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // InternalRBAModel.g:22682:2: ( rule__Offset__UnorderedGroup_3__2 )?
+ int alt133=2;
+ int LA133_0 = input.LA(1);
+
+ if ( LA133_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 0) ) {
+ alt133=1;
+ }
+ else if ( LA133_0 == 121 && getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 1) ) {
+ alt133=1;
+ }
+ else if ( LA133_0 == 122 && getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 2) ) {
+ alt133=1;
+ }
+ else if ( LA133_0 == 119 && getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 3) ) {
+ alt133=1;
+ }
+ switch (alt133) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__Offset__UnorderedGroup_3__2
+ {
+ pushFollow(FOLLOW_2);
+ rule__Offset__UnorderedGroup_3__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Offset__UnorderedGroup_3__1"
+
+
+ // $ANTLR start "rule__Offset__UnorderedGroup_3__2"
+ // InternalRBAModel.g:22688:1: rule__Offset__UnorderedGroup_3__2 : rule__Offset__UnorderedGroup_3__Impl ( rule__Offset__UnorderedGroup_3__3 )? ;
+ public final void rule__Offset__UnorderedGroup_3__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:22692:1: ( rule__Offset__UnorderedGroup_3__Impl ( rule__Offset__UnorderedGroup_3__3 )? )
+ // InternalRBAModel.g:22693:2: rule__Offset__UnorderedGroup_3__Impl ( rule__Offset__UnorderedGroup_3__3 )?
+ {
+ pushFollow(FOLLOW_165);
+ rule__Offset__UnorderedGroup_3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // InternalRBAModel.g:22694:2: ( rule__Offset__UnorderedGroup_3__3 )?
+ int alt134=2;
+ int LA134_0 = input.LA(1);
+
+ if ( LA134_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 0) ) {
+ alt134=1;
+ }
+ else if ( LA134_0 == 121 && getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 1) ) {
+ alt134=1;
+ }
+ else if ( LA134_0 == 122 && getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 2) ) {
+ alt134=1;
+ }
+ else if ( LA134_0 == 119 && getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 3) ) {
+ alt134=1;
+ }
+ switch (alt134) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__Offset__UnorderedGroup_3__3
+ {
+ pushFollow(FOLLOW_2);
+ rule__Offset__UnorderedGroup_3__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Offset__UnorderedGroup_3__2"
+
+
+ // $ANTLR start "rule__Offset__UnorderedGroup_3__3"
+ // InternalRBAModel.g:22700:1: rule__Offset__UnorderedGroup_3__3 : rule__Offset__UnorderedGroup_3__Impl ;
+ public final void rule__Offset__UnorderedGroup_3__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:22704:1: ( rule__Offset__UnorderedGroup_3__Impl )
+ // InternalRBAModel.g:22705:2: rule__Offset__UnorderedGroup_3__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Offset__UnorderedGroup_3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Offset__UnorderedGroup_3__3"
+
+
+ // $ANTLR start "rule__AreaSet__UnorderedGroup_4"
+ // InternalRBAModel.g:22712:1: rule__AreaSet__UnorderedGroup_4 : ( rule__AreaSet__UnorderedGroup_4__0 )? ;
+ public final void rule__AreaSet__UnorderedGroup_4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+ getUnorderedGroupHelper().enter(grammarAccess.getAreaSetAccess().getUnorderedGroup_4());
+
+ try {
+ // InternalRBAModel.g:22717:1: ( ( rule__AreaSet__UnorderedGroup_4__0 )? )
+ // InternalRBAModel.g:22718:2: ( rule__AreaSet__UnorderedGroup_4__0 )?
+ {
+ // InternalRBAModel.g:22718:2: ( rule__AreaSet__UnorderedGroup_4__0 )?
+ int alt135=2;
+ int LA135_0 = input.LA(1);
+
+ if ( LA135_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaSetAccess().getUnorderedGroup_4(), 0) ) {
+ alt135=1;
+ }
+ else if ( LA135_0 == 124 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaSetAccess().getUnorderedGroup_4(), 1) ) {
+ alt135=1;
+ }
+ switch (alt135) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__AreaSet__UnorderedGroup_4__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__AreaSet__UnorderedGroup_4__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ getUnorderedGroupHelper().leave(grammarAccess.getAreaSetAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AreaSet__UnorderedGroup_4"
+
+
+ // $ANTLR start "rule__AreaSet__UnorderedGroup_4__Impl"
+ // InternalRBAModel.g:22726:1: rule__AreaSet__UnorderedGroup_4__Impl : ( ({...}? => ( ( ( rule__AreaSet__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__AreaSet__Group_4_1__0 ) ) ) ) ) ;
+ public final void rule__AreaSet__UnorderedGroup_4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+ boolean selected = false;
+
+ try {
+ // InternalRBAModel.g:22731:1: ( ( ({...}? => ( ( ( rule__AreaSet__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__AreaSet__Group_4_1__0 ) ) ) ) ) )
+ // InternalRBAModel.g:22732:3: ( ({...}? => ( ( ( rule__AreaSet__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__AreaSet__Group_4_1__0 ) ) ) ) )
+ {
+ // InternalRBAModel.g:22732:3: ( ({...}? => ( ( ( rule__AreaSet__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__AreaSet__Group_4_1__0 ) ) ) ) )
+ int alt136=2;
+ int LA136_0 = input.LA(1);
+
+ if ( LA136_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaSetAccess().getUnorderedGroup_4(), 0) ) {
+ alt136=1;
+ }
+ else if ( LA136_0 == 124 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaSetAccess().getUnorderedGroup_4(), 1) ) {
+ alt136=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 136, 0, input);
+
+ throw nvae;
+ }
+ switch (alt136) {
+ case 1 :
+ // InternalRBAModel.g:22733:3: ({...}? => ( ( ( rule__AreaSet__Group_4_0__0 ) ) ) )
+ {
+ // InternalRBAModel.g:22733:3: ({...}? => ( ( ( rule__AreaSet__Group_4_0__0 ) ) ) )
+ // InternalRBAModel.g:22734:4: {...}? => ( ( ( rule__AreaSet__Group_4_0__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getAreaSetAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__AreaSet__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getAreaSetAccess().getUnorderedGroup_4(), 0)");
+ }
+ // InternalRBAModel.g:22734:103: ( ( ( rule__AreaSet__Group_4_0__0 ) ) )
+ // InternalRBAModel.g:22735:5: ( ( rule__AreaSet__Group_4_0__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getAreaSetAccess().getUnorderedGroup_4(), 0);
+ selected = true;
+ // InternalRBAModel.g:22741:5: ( ( rule__AreaSet__Group_4_0__0 ) )
+ // InternalRBAModel.g:22742:6: ( rule__AreaSet__Group_4_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaSetAccess().getGroup_4_0());
+ }
+ // InternalRBAModel.g:22743:6: ( rule__AreaSet__Group_4_0__0 )
+ // InternalRBAModel.g:22743:7: rule__AreaSet__Group_4_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__AreaSet__Group_4_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaSetAccess().getGroup_4_0());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:22748:3: ({...}? => ( ( ( rule__AreaSet__Group_4_1__0 ) ) ) )
+ {
+ // InternalRBAModel.g:22748:3: ({...}? => ( ( ( rule__AreaSet__Group_4_1__0 ) ) ) )
+ // InternalRBAModel.g:22749:4: {...}? => ( ( ( rule__AreaSet__Group_4_1__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getAreaSetAccess().getUnorderedGroup_4(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__AreaSet__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getAreaSetAccess().getUnorderedGroup_4(), 1)");
+ }
+ // InternalRBAModel.g:22749:103: ( ( ( rule__AreaSet__Group_4_1__0 ) ) )
+ // InternalRBAModel.g:22750:5: ( ( rule__AreaSet__Group_4_1__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getAreaSetAccess().getUnorderedGroup_4(), 1);
+ selected = true;
+ // InternalRBAModel.g:22756:5: ( ( rule__AreaSet__Group_4_1__0 ) )
+ // InternalRBAModel.g:22757:6: ( rule__AreaSet__Group_4_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaSetAccess().getGroup_4_1());
+ }
+ // InternalRBAModel.g:22758:6: ( rule__AreaSet__Group_4_1__0 )
+ // InternalRBAModel.g:22758:7: rule__AreaSet__Group_4_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__AreaSet__Group_4_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaSetAccess().getGroup_4_1());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ if (selected)
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getAreaSetAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AreaSet__UnorderedGroup_4__Impl"
+
+
+ // $ANTLR start "rule__AreaSet__UnorderedGroup_4__0"
+ // InternalRBAModel.g:22771:1: rule__AreaSet__UnorderedGroup_4__0 : rule__AreaSet__UnorderedGroup_4__Impl ( rule__AreaSet__UnorderedGroup_4__1 )? ;
+ public final void rule__AreaSet__UnorderedGroup_4__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:22775:1: ( rule__AreaSet__UnorderedGroup_4__Impl ( rule__AreaSet__UnorderedGroup_4__1 )? )
+ // InternalRBAModel.g:22776:2: rule__AreaSet__UnorderedGroup_4__Impl ( rule__AreaSet__UnorderedGroup_4__1 )?
+ {
+ pushFollow(FOLLOW_166);
+ rule__AreaSet__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // InternalRBAModel.g:22777:2: ( rule__AreaSet__UnorderedGroup_4__1 )?
+ int alt137=2;
+ int LA137_0 = input.LA(1);
+
+ if ( LA137_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaSetAccess().getUnorderedGroup_4(), 0) ) {
+ alt137=1;
+ }
+ else if ( LA137_0 == 124 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaSetAccess().getUnorderedGroup_4(), 1) ) {
+ alt137=1;
+ }
+ switch (alt137) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__AreaSet__UnorderedGroup_4__1
+ {
+ pushFollow(FOLLOW_2);
+ rule__AreaSet__UnorderedGroup_4__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AreaSet__UnorderedGroup_4__0"
+
+
+ // $ANTLR start "rule__AreaSet__UnorderedGroup_4__1"
+ // InternalRBAModel.g:22783:1: rule__AreaSet__UnorderedGroup_4__1 : rule__AreaSet__UnorderedGroup_4__Impl ;
+ public final void rule__AreaSet__UnorderedGroup_4__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:22787:1: ( rule__AreaSet__UnorderedGroup_4__Impl )
+ // InternalRBAModel.g:22788:2: rule__AreaSet__UnorderedGroup_4__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__AreaSet__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AreaSet__UnorderedGroup_4__1"
+
+
+ // $ANTLR start "rule__ZoneSet__UnorderedGroup_4"
+ // InternalRBAModel.g:22795:1: rule__ZoneSet__UnorderedGroup_4 : ( rule__ZoneSet__UnorderedGroup_4__0 )? ;
+ public final void rule__ZoneSet__UnorderedGroup_4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+ getUnorderedGroupHelper().enter(grammarAccess.getZoneSetAccess().getUnorderedGroup_4());
+
+ try {
+ // InternalRBAModel.g:22800:1: ( ( rule__ZoneSet__UnorderedGroup_4__0 )? )
+ // InternalRBAModel.g:22801:2: ( rule__ZoneSet__UnorderedGroup_4__0 )?
+ {
+ // InternalRBAModel.g:22801:2: ( rule__ZoneSet__UnorderedGroup_4__0 )?
+ int alt138=2;
+ int LA138_0 = input.LA(1);
+
+ if ( LA138_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneSetAccess().getUnorderedGroup_4(), 0) ) {
+ alt138=1;
+ }
+ else if ( LA138_0 == 124 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneSetAccess().getUnorderedGroup_4(), 1) ) {
+ alt138=1;
+ }
+ switch (alt138) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__ZoneSet__UnorderedGroup_4__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ZoneSet__UnorderedGroup_4__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ getUnorderedGroupHelper().leave(grammarAccess.getZoneSetAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ZoneSet__UnorderedGroup_4"
+
+
+ // $ANTLR start "rule__ZoneSet__UnorderedGroup_4__Impl"
+ // InternalRBAModel.g:22809:1: rule__ZoneSet__UnorderedGroup_4__Impl : ( ({...}? => ( ( ( rule__ZoneSet__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__ZoneSet__Group_4_1__0 ) ) ) ) ) ;
+ public final void rule__ZoneSet__UnorderedGroup_4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+ boolean selected = false;
+
+ try {
+ // InternalRBAModel.g:22814:1: ( ( ({...}? => ( ( ( rule__ZoneSet__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__ZoneSet__Group_4_1__0 ) ) ) ) ) )
+ // InternalRBAModel.g:22815:3: ( ({...}? => ( ( ( rule__ZoneSet__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__ZoneSet__Group_4_1__0 ) ) ) ) )
+ {
+ // InternalRBAModel.g:22815:3: ( ({...}? => ( ( ( rule__ZoneSet__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__ZoneSet__Group_4_1__0 ) ) ) ) )
+ int alt139=2;
+ int LA139_0 = input.LA(1);
+
+ if ( LA139_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneSetAccess().getUnorderedGroup_4(), 0) ) {
+ alt139=1;
+ }
+ else if ( LA139_0 == 124 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneSetAccess().getUnorderedGroup_4(), 1) ) {
+ alt139=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 139, 0, input);
+
+ throw nvae;
+ }
+ switch (alt139) {
+ case 1 :
+ // InternalRBAModel.g:22816:3: ({...}? => ( ( ( rule__ZoneSet__Group_4_0__0 ) ) ) )
+ {
+ // InternalRBAModel.g:22816:3: ({...}? => ( ( ( rule__ZoneSet__Group_4_0__0 ) ) ) )
+ // InternalRBAModel.g:22817:4: {...}? => ( ( ( rule__ZoneSet__Group_4_0__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getZoneSetAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__ZoneSet__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getZoneSetAccess().getUnorderedGroup_4(), 0)");
+ }
+ // InternalRBAModel.g:22817:103: ( ( ( rule__ZoneSet__Group_4_0__0 ) ) )
+ // InternalRBAModel.g:22818:5: ( ( rule__ZoneSet__Group_4_0__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getZoneSetAccess().getUnorderedGroup_4(), 0);
+ selected = true;
+ // InternalRBAModel.g:22824:5: ( ( rule__ZoneSet__Group_4_0__0 ) )
+ // InternalRBAModel.g:22825:6: ( rule__ZoneSet__Group_4_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneSetAccess().getGroup_4_0());
+ }
+ // InternalRBAModel.g:22826:6: ( rule__ZoneSet__Group_4_0__0 )
+ // InternalRBAModel.g:22826:7: rule__ZoneSet__Group_4_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ZoneSet__Group_4_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneSetAccess().getGroup_4_0());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:22831:3: ({...}? => ( ( ( rule__ZoneSet__Group_4_1__0 ) ) ) )
+ {
+ // InternalRBAModel.g:22831:3: ({...}? => ( ( ( rule__ZoneSet__Group_4_1__0 ) ) ) )
+ // InternalRBAModel.g:22832:4: {...}? => ( ( ( rule__ZoneSet__Group_4_1__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getZoneSetAccess().getUnorderedGroup_4(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__ZoneSet__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getZoneSetAccess().getUnorderedGroup_4(), 1)");
+ }
+ // InternalRBAModel.g:22832:103: ( ( ( rule__ZoneSet__Group_4_1__0 ) ) )
+ // InternalRBAModel.g:22833:5: ( ( rule__ZoneSet__Group_4_1__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getZoneSetAccess().getUnorderedGroup_4(), 1);
+ selected = true;
+ // InternalRBAModel.g:22839:5: ( ( rule__ZoneSet__Group_4_1__0 ) )
+ // InternalRBAModel.g:22840:6: ( rule__ZoneSet__Group_4_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneSetAccess().getGroup_4_1());
+ }
+ // InternalRBAModel.g:22841:6: ( rule__ZoneSet__Group_4_1__0 )
+ // InternalRBAModel.g:22841:7: rule__ZoneSet__Group_4_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ZoneSet__Group_4_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneSetAccess().getGroup_4_1());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ if (selected)
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getZoneSetAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ZoneSet__UnorderedGroup_4__Impl"
+
+
+ // $ANTLR start "rule__ZoneSet__UnorderedGroup_4__0"
+ // InternalRBAModel.g:22854:1: rule__ZoneSet__UnorderedGroup_4__0 : rule__ZoneSet__UnorderedGroup_4__Impl ( rule__ZoneSet__UnorderedGroup_4__1 )? ;
+ public final void rule__ZoneSet__UnorderedGroup_4__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:22858:1: ( rule__ZoneSet__UnorderedGroup_4__Impl ( rule__ZoneSet__UnorderedGroup_4__1 )? )
+ // InternalRBAModel.g:22859:2: rule__ZoneSet__UnorderedGroup_4__Impl ( rule__ZoneSet__UnorderedGroup_4__1 )?
+ {
+ pushFollow(FOLLOW_166);
+ rule__ZoneSet__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // InternalRBAModel.g:22860:2: ( rule__ZoneSet__UnorderedGroup_4__1 )?
+ int alt140=2;
+ int LA140_0 = input.LA(1);
+
+ if ( LA140_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneSetAccess().getUnorderedGroup_4(), 0) ) {
+ alt140=1;
+ }
+ else if ( LA140_0 == 124 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneSetAccess().getUnorderedGroup_4(), 1) ) {
+ alt140=1;
+ }
+ switch (alt140) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__ZoneSet__UnorderedGroup_4__1
+ {
+ pushFollow(FOLLOW_2);
+ rule__ZoneSet__UnorderedGroup_4__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ZoneSet__UnorderedGroup_4__0"
+
+
+ // $ANTLR start "rule__ZoneSet__UnorderedGroup_4__1"
+ // InternalRBAModel.g:22866:1: rule__ZoneSet__UnorderedGroup_4__1 : rule__ZoneSet__UnorderedGroup_4__Impl ;
+ public final void rule__ZoneSet__UnorderedGroup_4__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:22870:1: ( rule__ZoneSet__UnorderedGroup_4__Impl )
+ // InternalRBAModel.g:22871:2: rule__ZoneSet__UnorderedGroup_4__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__ZoneSet__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ZoneSet__UnorderedGroup_4__1"
+
+
+ // $ANTLR start "rule__CompositeArea__UnorderedGroup_4"
+ // InternalRBAModel.g:22878:1: rule__CompositeArea__UnorderedGroup_4 : ( rule__CompositeArea__UnorderedGroup_4__0 )? ;
+ public final void rule__CompositeArea__UnorderedGroup_4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+ getUnorderedGroupHelper().enter(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4());
+
+ try {
+ // InternalRBAModel.g:22883:1: ( ( rule__CompositeArea__UnorderedGroup_4__0 )? )
+ // InternalRBAModel.g:22884:2: ( rule__CompositeArea__UnorderedGroup_4__0 )?
+ {
+ // InternalRBAModel.g:22884:2: ( rule__CompositeArea__UnorderedGroup_4__0 )?
+ int alt141=2;
+ int LA141_0 = input.LA(1);
+
+ if ( LA141_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4(), 0) ) {
+ alt141=1;
+ }
+ else if ( LA141_0 == 127 && getUnorderedGroupHelper().canSelect(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4(), 1) ) {
+ alt141=1;
+ }
+ switch (alt141) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__CompositeArea__UnorderedGroup_4__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__CompositeArea__UnorderedGroup_4__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ getUnorderedGroupHelper().leave(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompositeArea__UnorderedGroup_4"
+
+
+ // $ANTLR start "rule__CompositeArea__UnorderedGroup_4__Impl"
+ // InternalRBAModel.g:22892:1: rule__CompositeArea__UnorderedGroup_4__Impl : ( ({...}? => ( ( ( rule__CompositeArea__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__CompositeArea__Group_4_1__0 ) ) ) ) ) ;
+ public final void rule__CompositeArea__UnorderedGroup_4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+ boolean selected = false;
+
+ try {
+ // InternalRBAModel.g:22897:1: ( ( ({...}? => ( ( ( rule__CompositeArea__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__CompositeArea__Group_4_1__0 ) ) ) ) ) )
+ // InternalRBAModel.g:22898:3: ( ({...}? => ( ( ( rule__CompositeArea__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__CompositeArea__Group_4_1__0 ) ) ) ) )
+ {
+ // InternalRBAModel.g:22898:3: ( ({...}? => ( ( ( rule__CompositeArea__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__CompositeArea__Group_4_1__0 ) ) ) ) )
+ int alt142=2;
+ int LA142_0 = input.LA(1);
+
+ if ( LA142_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4(), 0) ) {
+ alt142=1;
+ }
+ else if ( LA142_0 == 127 && getUnorderedGroupHelper().canSelect(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4(), 1) ) {
+ alt142=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 142, 0, input);
+
+ throw nvae;
+ }
+ switch (alt142) {
+ case 1 :
+ // InternalRBAModel.g:22899:3: ({...}? => ( ( ( rule__CompositeArea__Group_4_0__0 ) ) ) )
+ {
+ // InternalRBAModel.g:22899:3: ({...}? => ( ( ( rule__CompositeArea__Group_4_0__0 ) ) ) )
+ // InternalRBAModel.g:22900:4: {...}? => ( ( ( rule__CompositeArea__Group_4_0__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__CompositeArea__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4(), 0)");
+ }
+ // InternalRBAModel.g:22900:109: ( ( ( rule__CompositeArea__Group_4_0__0 ) ) )
+ // InternalRBAModel.g:22901:5: ( ( rule__CompositeArea__Group_4_0__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4(), 0);
+ selected = true;
+ // InternalRBAModel.g:22907:5: ( ( rule__CompositeArea__Group_4_0__0 ) )
+ // InternalRBAModel.g:22908:6: ( rule__CompositeArea__Group_4_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCompositeAreaAccess().getGroup_4_0());
+ }
+ // InternalRBAModel.g:22909:6: ( rule__CompositeArea__Group_4_0__0 )
+ // InternalRBAModel.g:22909:7: rule__CompositeArea__Group_4_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__CompositeArea__Group_4_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCompositeAreaAccess().getGroup_4_0());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:22914:3: ({...}? => ( ( ( rule__CompositeArea__Group_4_1__0 ) ) ) )
+ {
+ // InternalRBAModel.g:22914:3: ({...}? => ( ( ( rule__CompositeArea__Group_4_1__0 ) ) ) )
+ // InternalRBAModel.g:22915:4: {...}? => ( ( ( rule__CompositeArea__Group_4_1__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__CompositeArea__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4(), 1)");
+ }
+ // InternalRBAModel.g:22915:109: ( ( ( rule__CompositeArea__Group_4_1__0 ) ) )
+ // InternalRBAModel.g:22916:5: ( ( rule__CompositeArea__Group_4_1__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4(), 1);
+ selected = true;
+ // InternalRBAModel.g:22922:5: ( ( rule__CompositeArea__Group_4_1__0 ) )
+ // InternalRBAModel.g:22923:6: ( rule__CompositeArea__Group_4_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCompositeAreaAccess().getGroup_4_1());
+ }
+ // InternalRBAModel.g:22924:6: ( rule__CompositeArea__Group_4_1__0 )
+ // InternalRBAModel.g:22924:7: rule__CompositeArea__Group_4_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__CompositeArea__Group_4_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCompositeAreaAccess().getGroup_4_1());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ if (selected)
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompositeArea__UnorderedGroup_4__Impl"
+
+
+ // $ANTLR start "rule__CompositeArea__UnorderedGroup_4__0"
+ // InternalRBAModel.g:22937:1: rule__CompositeArea__UnorderedGroup_4__0 : rule__CompositeArea__UnorderedGroup_4__Impl ( rule__CompositeArea__UnorderedGroup_4__1 )? ;
+ public final void rule__CompositeArea__UnorderedGroup_4__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:22941:1: ( rule__CompositeArea__UnorderedGroup_4__Impl ( rule__CompositeArea__UnorderedGroup_4__1 )? )
+ // InternalRBAModel.g:22942:2: rule__CompositeArea__UnorderedGroup_4__Impl ( rule__CompositeArea__UnorderedGroup_4__1 )?
+ {
+ pushFollow(FOLLOW_167);
+ rule__CompositeArea__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // InternalRBAModel.g:22943:2: ( rule__CompositeArea__UnorderedGroup_4__1 )?
+ int alt143=2;
+ int LA143_0 = input.LA(1);
+
+ if ( LA143_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4(), 0) ) {
+ alt143=1;
+ }
+ else if ( LA143_0 == 127 && getUnorderedGroupHelper().canSelect(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4(), 1) ) {
+ alt143=1;
+ }
+ switch (alt143) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__CompositeArea__UnorderedGroup_4__1
+ {
+ pushFollow(FOLLOW_2);
+ rule__CompositeArea__UnorderedGroup_4__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompositeArea__UnorderedGroup_4__0"
+
+
+ // $ANTLR start "rule__CompositeArea__UnorderedGroup_4__1"
+ // InternalRBAModel.g:22949:1: rule__CompositeArea__UnorderedGroup_4__1 : rule__CompositeArea__UnorderedGroup_4__Impl ;
+ public final void rule__CompositeArea__UnorderedGroup_4__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:22953:1: ( rule__CompositeArea__UnorderedGroup_4__Impl )
+ // InternalRBAModel.g:22954:2: rule__CompositeArea__UnorderedGroup_4__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__CompositeArea__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompositeArea__UnorderedGroup_4__1"
+
+
+ // $ANTLR start "rule__Area__UnorderedGroup_4"
+ // InternalRBAModel.g:22961:1: rule__Area__UnorderedGroup_4 : ( rule__Area__UnorderedGroup_4__0 )? ;
+ public final void rule__Area__UnorderedGroup_4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+ getUnorderedGroupHelper().enter(grammarAccess.getAreaAccess().getUnorderedGroup_4());
+
+ try {
+ // InternalRBAModel.g:22966:1: ( ( rule__Area__UnorderedGroup_4__0 )? )
+ // InternalRBAModel.g:22967:2: ( rule__Area__UnorderedGroup_4__0 )?
+ {
+ // InternalRBAModel.g:22967:2: ( rule__Area__UnorderedGroup_4__0 )?
+ int alt144=2;
+ alt144 = dfa144.predict(input);
+ switch (alt144) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__Area__UnorderedGroup_4__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Area__UnorderedGroup_4__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ getUnorderedGroupHelper().leave(grammarAccess.getAreaAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Area__UnorderedGroup_4"
+
+
+ // $ANTLR start "rule__Area__UnorderedGroup_4__Impl"
+ // InternalRBAModel.g:22975:1: rule__Area__UnorderedGroup_4__Impl : ( ({...}? => ( ( ( rule__Area__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Area__Group_4_1__0 ) ) ) ) | ({...}? => ( ( ( ( rule__Area__SizeAssignment_4_2 ) ) ( ( ( rule__Area__SizeAssignment_4_2 )=> rule__Area__SizeAssignment_4_2 )* ) ) ) ) | ({...}? => ( ( ( rule__Area__Group_4_3__0 ) ) ) ) | ({...}? => ( ( ( rule__Area__Group_4_4__0 ) ) ) ) | ({...}? => ( ( ( ( rule__Area__TagsAssignment_4_5 ) ) ( ( ( rule__Area__TagsAssignment_4_5 )=> rule__Area__TagsAssignment_4_5 )* ) ) ) ) ) ;
+ public final void rule__Area__UnorderedGroup_4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+ boolean selected = false;
+
+ try {
+ // InternalRBAModel.g:22980:1: ( ( ({...}? => ( ( ( rule__Area__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Area__Group_4_1__0 ) ) ) ) | ({...}? => ( ( ( ( rule__Area__SizeAssignment_4_2 ) ) ( ( ( rule__Area__SizeAssignment_4_2 )=> rule__Area__SizeAssignment_4_2 )* ) ) ) ) | ({...}? => ( ( ( rule__Area__Group_4_3__0 ) ) ) ) | ({...}? => ( ( ( rule__Area__Group_4_4__0 ) ) ) ) | ({...}? => ( ( ( ( rule__Area__TagsAssignment_4_5 ) ) ( ( ( rule__Area__TagsAssignment_4_5 )=> rule__Area__TagsAssignment_4_5 )* ) ) ) ) ) )
+ // InternalRBAModel.g:22981:3: ( ({...}? => ( ( ( rule__Area__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Area__Group_4_1__0 ) ) ) ) | ({...}? => ( ( ( ( rule__Area__SizeAssignment_4_2 ) ) ( ( ( rule__Area__SizeAssignment_4_2 )=> rule__Area__SizeAssignment_4_2 )* ) ) ) ) | ({...}? => ( ( ( rule__Area__Group_4_3__0 ) ) ) ) | ({...}? => ( ( ( rule__Area__Group_4_4__0 ) ) ) ) | ({...}? => ( ( ( ( rule__Area__TagsAssignment_4_5 ) ) ( ( ( rule__Area__TagsAssignment_4_5 )=> rule__Area__TagsAssignment_4_5 )* ) ) ) ) )
+ {
+ // InternalRBAModel.g:22981:3: ( ({...}? => ( ( ( rule__Area__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Area__Group_4_1__0 ) ) ) ) | ({...}? => ( ( ( ( rule__Area__SizeAssignment_4_2 ) ) ( ( ( rule__Area__SizeAssignment_4_2 )=> rule__Area__SizeAssignment_4_2 )* ) ) ) ) | ({...}? => ( ( ( rule__Area__Group_4_3__0 ) ) ) ) | ({...}? => ( ( ( rule__Area__Group_4_4__0 ) ) ) ) | ({...}? => ( ( ( ( rule__Area__TagsAssignment_4_5 ) ) ( ( ( rule__Area__TagsAssignment_4_5 )=> rule__Area__TagsAssignment_4_5 )* ) ) ) ) )
+ int alt147=6;
+ int LA147_0 = input.LA(1);
+
+ if ( LA147_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 0) ) {
+ alt147=1;
+ }
+ else if ( LA147_0 == 128 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 1) ) {
+ alt147=2;
+ }
+ else if ( LA147_0 == 119 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 2) ) {
+ alt147=3;
+ }
+ else if ( LA147_0 == 116 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 2) ) {
+ alt147=3;
+ }
+ else if ( LA147_0 == 71 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 3) ) {
+ alt147=4;
+ }
+ else if ( LA147_0 == 72 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 3) ) {
+ alt147=4;
+ }
+ else if ( LA147_0 == 129 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 4) ) {
+ alt147=5;
+ }
+ else if ( LA147_0 >= 98 && LA147_0 <= 99 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 5) ) {
+ alt147=6;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 147, 0, input);
+
+ throw nvae;
+ }
+ switch (alt147) {
+ case 1 :
+ // InternalRBAModel.g:22982:3: ({...}? => ( ( ( rule__Area__Group_4_0__0 ) ) ) )
+ {
+ // InternalRBAModel.g:22982:3: ({...}? => ( ( ( rule__Area__Group_4_0__0 ) ) ) )
+ // InternalRBAModel.g:22983:4: {...}? => ( ( ( rule__Area__Group_4_0__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__Area__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 0)");
+ }
+ // InternalRBAModel.g:22983:100: ( ( ( rule__Area__Group_4_0__0 ) ) )
+ // InternalRBAModel.g:22984:5: ( ( rule__Area__Group_4_0__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 0);
+ selected = true;
+ // InternalRBAModel.g:22990:5: ( ( rule__Area__Group_4_0__0 ) )
+ // InternalRBAModel.g:22991:6: ( rule__Area__Group_4_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaAccess().getGroup_4_0());
+ }
+ // InternalRBAModel.g:22992:6: ( rule__Area__Group_4_0__0 )
+ // InternalRBAModel.g:22992:7: rule__Area__Group_4_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Area__Group_4_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaAccess().getGroup_4_0());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:22997:3: ({...}? => ( ( ( rule__Area__Group_4_1__0 ) ) ) )
+ {
+ // InternalRBAModel.g:22997:3: ({...}? => ( ( ( rule__Area__Group_4_1__0 ) ) ) )
+ // InternalRBAModel.g:22998:4: {...}? => ( ( ( rule__Area__Group_4_1__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__Area__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 1)");
+ }
+ // InternalRBAModel.g:22998:100: ( ( ( rule__Area__Group_4_1__0 ) ) )
+ // InternalRBAModel.g:22999:5: ( ( rule__Area__Group_4_1__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 1);
+ selected = true;
+ // InternalRBAModel.g:23005:5: ( ( rule__Area__Group_4_1__0 ) )
+ // InternalRBAModel.g:23006:6: ( rule__Area__Group_4_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaAccess().getGroup_4_1());
+ }
+ // InternalRBAModel.g:23007:6: ( rule__Area__Group_4_1__0 )
+ // InternalRBAModel.g:23007:7: rule__Area__Group_4_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Area__Group_4_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaAccess().getGroup_4_1());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:23012:3: ({...}? => ( ( ( ( rule__Area__SizeAssignment_4_2 ) ) ( ( ( rule__Area__SizeAssignment_4_2 )=> rule__Area__SizeAssignment_4_2 )* ) ) ) )
+ {
+ // InternalRBAModel.g:23012:3: ({...}? => ( ( ( ( rule__Area__SizeAssignment_4_2 ) ) ( ( ( rule__Area__SizeAssignment_4_2 )=> rule__Area__SizeAssignment_4_2 )* ) ) ) )
+ // InternalRBAModel.g:23013:4: {...}? => ( ( ( ( rule__Area__SizeAssignment_4_2 ) ) ( ( ( rule__Area__SizeAssignment_4_2 )=> rule__Area__SizeAssignment_4_2 )* ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 2) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__Area__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 2)");
+ }
+ // InternalRBAModel.g:23013:100: ( ( ( ( rule__Area__SizeAssignment_4_2 ) ) ( ( ( rule__Area__SizeAssignment_4_2 )=> rule__Area__SizeAssignment_4_2 )* ) ) )
+ // InternalRBAModel.g:23014:5: ( ( ( rule__Area__SizeAssignment_4_2 ) ) ( ( ( rule__Area__SizeAssignment_4_2 )=> rule__Area__SizeAssignment_4_2 )* ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 2);
+ selected = true;
+ // InternalRBAModel.g:23020:5: ( ( ( rule__Area__SizeAssignment_4_2 ) ) ( ( ( rule__Area__SizeAssignment_4_2 )=> rule__Area__SizeAssignment_4_2 )* ) )
+ // InternalRBAModel.g:23021:6: ( ( rule__Area__SizeAssignment_4_2 ) ) ( ( ( rule__Area__SizeAssignment_4_2 )=> rule__Area__SizeAssignment_4_2 )* )
+ {
+ // InternalRBAModel.g:23021:6: ( ( rule__Area__SizeAssignment_4_2 ) )
+ // InternalRBAModel.g:23022:7: ( rule__Area__SizeAssignment_4_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaAccess().getSizeAssignment_4_2());
+ }
+ // InternalRBAModel.g:23023:7: ( rule__Area__SizeAssignment_4_2 )
+ // InternalRBAModel.g:23023:8: rule__Area__SizeAssignment_4_2
+ {
+ pushFollow(FOLLOW_162);
+ rule__Area__SizeAssignment_4_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaAccess().getSizeAssignment_4_2());
+ }
+
+ }
+
+ // InternalRBAModel.g:23026:6: ( ( ( rule__Area__SizeAssignment_4_2 )=> rule__Area__SizeAssignment_4_2 )* )
+ // InternalRBAModel.g:23027:7: ( ( rule__Area__SizeAssignment_4_2 )=> rule__Area__SizeAssignment_4_2 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaAccess().getSizeAssignment_4_2());
+ }
+ // InternalRBAModel.g:23028:7: ( ( rule__Area__SizeAssignment_4_2 )=> rule__Area__SizeAssignment_4_2 )*
+ loop145:
+ do {
+ int alt145=2;
+ alt145 = dfa145.predict(input);
+ switch (alt145) {
+ case 1 :
+ // InternalRBAModel.g:23028:8: ( rule__Area__SizeAssignment_4_2 )=> rule__Area__SizeAssignment_4_2
+ {
+ pushFollow(FOLLOW_162);
+ rule__Area__SizeAssignment_4_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop145;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaAccess().getSizeAssignment_4_2());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // InternalRBAModel.g:23034:3: ({...}? => ( ( ( rule__Area__Group_4_3__0 ) ) ) )
+ {
+ // InternalRBAModel.g:23034:3: ({...}? => ( ( ( rule__Area__Group_4_3__0 ) ) ) )
+ // InternalRBAModel.g:23035:4: {...}? => ( ( ( rule__Area__Group_4_3__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 3) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__Area__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 3)");
+ }
+ // InternalRBAModel.g:23035:100: ( ( ( rule__Area__Group_4_3__0 ) ) )
+ // InternalRBAModel.g:23036:5: ( ( rule__Area__Group_4_3__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 3);
+ selected = true;
+ // InternalRBAModel.g:23042:5: ( ( rule__Area__Group_4_3__0 ) )
+ // InternalRBAModel.g:23043:6: ( rule__Area__Group_4_3__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaAccess().getGroup_4_3());
+ }
+ // InternalRBAModel.g:23044:6: ( rule__Area__Group_4_3__0 )
+ // InternalRBAModel.g:23044:7: rule__Area__Group_4_3__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Area__Group_4_3__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaAccess().getGroup_4_3());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 5 :
+ // InternalRBAModel.g:23049:3: ({...}? => ( ( ( rule__Area__Group_4_4__0 ) ) ) )
+ {
+ // InternalRBAModel.g:23049:3: ({...}? => ( ( ( rule__Area__Group_4_4__0 ) ) ) )
+ // InternalRBAModel.g:23050:4: {...}? => ( ( ( rule__Area__Group_4_4__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 4) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__Area__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 4)");
+ }
+ // InternalRBAModel.g:23050:100: ( ( ( rule__Area__Group_4_4__0 ) ) )
+ // InternalRBAModel.g:23051:5: ( ( rule__Area__Group_4_4__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 4);
+ selected = true;
+ // InternalRBAModel.g:23057:5: ( ( rule__Area__Group_4_4__0 ) )
+ // InternalRBAModel.g:23058:6: ( rule__Area__Group_4_4__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaAccess().getGroup_4_4());
+ }
+ // InternalRBAModel.g:23059:6: ( rule__Area__Group_4_4__0 )
+ // InternalRBAModel.g:23059:7: rule__Area__Group_4_4__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Area__Group_4_4__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaAccess().getGroup_4_4());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 6 :
+ // InternalRBAModel.g:23064:3: ({...}? => ( ( ( ( rule__Area__TagsAssignment_4_5 ) ) ( ( ( rule__Area__TagsAssignment_4_5 )=> rule__Area__TagsAssignment_4_5 )* ) ) ) )
+ {
+ // InternalRBAModel.g:23064:3: ({...}? => ( ( ( ( rule__Area__TagsAssignment_4_5 ) ) ( ( ( rule__Area__TagsAssignment_4_5 )=> rule__Area__TagsAssignment_4_5 )* ) ) ) )
+ // InternalRBAModel.g:23065:4: {...}? => ( ( ( ( rule__Area__TagsAssignment_4_5 ) ) ( ( ( rule__Area__TagsAssignment_4_5 )=> rule__Area__TagsAssignment_4_5 )* ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 5) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__Area__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 5)");
+ }
+ // InternalRBAModel.g:23065:100: ( ( ( ( rule__Area__TagsAssignment_4_5 ) ) ( ( ( rule__Area__TagsAssignment_4_5 )=> rule__Area__TagsAssignment_4_5 )* ) ) )
+ // InternalRBAModel.g:23066:5: ( ( ( rule__Area__TagsAssignment_4_5 ) ) ( ( ( rule__Area__TagsAssignment_4_5 )=> rule__Area__TagsAssignment_4_5 )* ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 5);
+ selected = true;
+ // InternalRBAModel.g:23072:5: ( ( ( rule__Area__TagsAssignment_4_5 ) ) ( ( ( rule__Area__TagsAssignment_4_5 )=> rule__Area__TagsAssignment_4_5 )* ) )
+ // InternalRBAModel.g:23073:6: ( ( rule__Area__TagsAssignment_4_5 ) ) ( ( ( rule__Area__TagsAssignment_4_5 )=> rule__Area__TagsAssignment_4_5 )* )
+ {
+ // InternalRBAModel.g:23073:6: ( ( rule__Area__TagsAssignment_4_5 ) )
+ // InternalRBAModel.g:23074:7: ( rule__Area__TagsAssignment_4_5 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaAccess().getTagsAssignment_4_5());
+ }
+ // InternalRBAModel.g:23075:7: ( rule__Area__TagsAssignment_4_5 )
+ // InternalRBAModel.g:23075:8: rule__Area__TagsAssignment_4_5
+ {
+ pushFollow(FOLLOW_168);
+ rule__Area__TagsAssignment_4_5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaAccess().getTagsAssignment_4_5());
+ }
+
+ }
+
+ // InternalRBAModel.g:23078:6: ( ( ( rule__Area__TagsAssignment_4_5 )=> rule__Area__TagsAssignment_4_5 )* )
+ // InternalRBAModel.g:23079:7: ( ( rule__Area__TagsAssignment_4_5 )=> rule__Area__TagsAssignment_4_5 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaAccess().getTagsAssignment_4_5());
+ }
+ // InternalRBAModel.g:23080:7: ( ( rule__Area__TagsAssignment_4_5 )=> rule__Area__TagsAssignment_4_5 )*
+ loop146:
+ do {
+ int alt146=2;
+ alt146 = dfa146.predict(input);
+ switch (alt146) {
+ case 1 :
+ // InternalRBAModel.g:23080:8: ( rule__Area__TagsAssignment_4_5 )=> rule__Area__TagsAssignment_4_5
+ {
+ pushFollow(FOLLOW_168);
+ rule__Area__TagsAssignment_4_5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop146;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaAccess().getTagsAssignment_4_5());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ if (selected)
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getAreaAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Area__UnorderedGroup_4__Impl"
+
+
+ // $ANTLR start "rule__Area__UnorderedGroup_4__0"
+ // InternalRBAModel.g:23094:1: rule__Area__UnorderedGroup_4__0 : rule__Area__UnorderedGroup_4__Impl ( rule__Area__UnorderedGroup_4__1 )? ;
+ public final void rule__Area__UnorderedGroup_4__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:23098:1: ( rule__Area__UnorderedGroup_4__Impl ( rule__Area__UnorderedGroup_4__1 )? )
+ // InternalRBAModel.g:23099:2: rule__Area__UnorderedGroup_4__Impl ( rule__Area__UnorderedGroup_4__1 )?
+ {
+ pushFollow(FOLLOW_168);
+ rule__Area__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // InternalRBAModel.g:23100:2: ( rule__Area__UnorderedGroup_4__1 )?
+ int alt148=2;
+ alt148 = dfa148.predict(input);
+ switch (alt148) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__Area__UnorderedGroup_4__1
+ {
+ pushFollow(FOLLOW_2);
+ rule__Area__UnorderedGroup_4__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Area__UnorderedGroup_4__0"
+
+
+ // $ANTLR start "rule__Area__UnorderedGroup_4__1"
+ // InternalRBAModel.g:23106:1: rule__Area__UnorderedGroup_4__1 : rule__Area__UnorderedGroup_4__Impl ( rule__Area__UnorderedGroup_4__2 )? ;
+ public final void rule__Area__UnorderedGroup_4__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:23110:1: ( rule__Area__UnorderedGroup_4__Impl ( rule__Area__UnorderedGroup_4__2 )? )
+ // InternalRBAModel.g:23111:2: rule__Area__UnorderedGroup_4__Impl ( rule__Area__UnorderedGroup_4__2 )?
+ {
+ pushFollow(FOLLOW_168);
+ rule__Area__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // InternalRBAModel.g:23112:2: ( rule__Area__UnorderedGroup_4__2 )?
+ int alt149=2;
+ alt149 = dfa149.predict(input);
+ switch (alt149) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__Area__UnorderedGroup_4__2
+ {
+ pushFollow(FOLLOW_2);
+ rule__Area__UnorderedGroup_4__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Area__UnorderedGroup_4__1"
+
+
+ // $ANTLR start "rule__Area__UnorderedGroup_4__2"
+ // InternalRBAModel.g:23118:1: rule__Area__UnorderedGroup_4__2 : rule__Area__UnorderedGroup_4__Impl ( rule__Area__UnorderedGroup_4__3 )? ;
+ public final void rule__Area__UnorderedGroup_4__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:23122:1: ( rule__Area__UnorderedGroup_4__Impl ( rule__Area__UnorderedGroup_4__3 )? )
+ // InternalRBAModel.g:23123:2: rule__Area__UnorderedGroup_4__Impl ( rule__Area__UnorderedGroup_4__3 )?
+ {
+ pushFollow(FOLLOW_168);
+ rule__Area__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // InternalRBAModel.g:23124:2: ( rule__Area__UnorderedGroup_4__3 )?
+ int alt150=2;
+ alt150 = dfa150.predict(input);
+ switch (alt150) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__Area__UnorderedGroup_4__3
+ {
+ pushFollow(FOLLOW_2);
+ rule__Area__UnorderedGroup_4__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Area__UnorderedGroup_4__2"
+
+
+ // $ANTLR start "rule__Area__UnorderedGroup_4__3"
+ // InternalRBAModel.g:23130:1: rule__Area__UnorderedGroup_4__3 : rule__Area__UnorderedGroup_4__Impl ( rule__Area__UnorderedGroup_4__4 )? ;
+ public final void rule__Area__UnorderedGroup_4__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:23134:1: ( rule__Area__UnorderedGroup_4__Impl ( rule__Area__UnorderedGroup_4__4 )? )
+ // InternalRBAModel.g:23135:2: rule__Area__UnorderedGroup_4__Impl ( rule__Area__UnorderedGroup_4__4 )?
+ {
+ pushFollow(FOLLOW_168);
+ rule__Area__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // InternalRBAModel.g:23136:2: ( rule__Area__UnorderedGroup_4__4 )?
+ int alt151=2;
+ alt151 = dfa151.predict(input);
+ switch (alt151) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__Area__UnorderedGroup_4__4
+ {
+ pushFollow(FOLLOW_2);
+ rule__Area__UnorderedGroup_4__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Area__UnorderedGroup_4__3"
+
+
+ // $ANTLR start "rule__Area__UnorderedGroup_4__4"
+ // InternalRBAModel.g:23142:1: rule__Area__UnorderedGroup_4__4 : rule__Area__UnorderedGroup_4__Impl ( rule__Area__UnorderedGroup_4__5 )? ;
+ public final void rule__Area__UnorderedGroup_4__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:23146:1: ( rule__Area__UnorderedGroup_4__Impl ( rule__Area__UnorderedGroup_4__5 )? )
+ // InternalRBAModel.g:23147:2: rule__Area__UnorderedGroup_4__Impl ( rule__Area__UnorderedGroup_4__5 )?
+ {
+ pushFollow(FOLLOW_168);
+ rule__Area__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // InternalRBAModel.g:23148:2: ( rule__Area__UnorderedGroup_4__5 )?
+ int alt152=2;
+ alt152 = dfa152.predict(input);
+ switch (alt152) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__Area__UnorderedGroup_4__5
+ {
+ pushFollow(FOLLOW_2);
+ rule__Area__UnorderedGroup_4__5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Area__UnorderedGroup_4__4"
+
+
+ // $ANTLR start "rule__Area__UnorderedGroup_4__5"
+ // InternalRBAModel.g:23154:1: rule__Area__UnorderedGroup_4__5 : rule__Area__UnorderedGroup_4__Impl ;
+ public final void rule__Area__UnorderedGroup_4__5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:23158:1: ( rule__Area__UnorderedGroup_4__Impl )
+ // InternalRBAModel.g:23159:2: rule__Area__UnorderedGroup_4__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Area__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Area__UnorderedGroup_4__5"
+
+
+ // $ANTLR start "rule__Zone__UnorderedGroup_4"
+ // InternalRBAModel.g:23166:1: rule__Zone__UnorderedGroup_4 : ( rule__Zone__UnorderedGroup_4__0 )? ;
+ public final void rule__Zone__UnorderedGroup_4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+ getUnorderedGroupHelper().enter(grammarAccess.getZoneAccess().getUnorderedGroup_4());
+
+ try {
+ // InternalRBAModel.g:23171:1: ( ( rule__Zone__UnorderedGroup_4__0 )? )
+ // InternalRBAModel.g:23172:2: ( rule__Zone__UnorderedGroup_4__0 )?
+ {
+ // InternalRBAModel.g:23172:2: ( rule__Zone__UnorderedGroup_4__0 )?
+ int alt153=2;
+ int LA153_0 = input.LA(1);
+
+ if ( LA153_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 0) ) {
+ alt153=1;
+ }
+ else if ( LA153_0 == 128 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 1) ) {
+ alt153=1;
+ }
+ else if ( LA153_0 == 71 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 2) ) {
+ alt153=1;
+ }
+ else if ( LA153_0 == 72 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 2) ) {
+ alt153=1;
+ }
+ else if ( LA153_0 == 130 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 3) ) {
+ alt153=1;
+ }
+ else if ( LA153_0 == 98 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 4) ) {
+ alt153=1;
+ }
+ else if ( LA153_0 == 99 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 4) ) {
+ alt153=1;
+ }
+ switch (alt153) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__Zone__UnorderedGroup_4__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Zone__UnorderedGroup_4__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ getUnorderedGroupHelper().leave(grammarAccess.getZoneAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Zone__UnorderedGroup_4"
+
+
+ // $ANTLR start "rule__Zone__UnorderedGroup_4__Impl"
+ // InternalRBAModel.g:23180:1: rule__Zone__UnorderedGroup_4__Impl : ( ({...}? => ( ( ( rule__Zone__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Zone__Group_4_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Zone__Group_4_2__0 ) ) ) ) | ({...}? => ( ( ( rule__Zone__Group_4_3__0 ) ) ) ) | ({...}? => ( ( ( ( rule__Zone__TagsAssignment_4_4 ) ) ( ( ( rule__Zone__TagsAssignment_4_4 )=> rule__Zone__TagsAssignment_4_4 )* ) ) ) ) ) ;
+ public final void rule__Zone__UnorderedGroup_4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+ boolean selected = false;
+
+ try {
+ // InternalRBAModel.g:23185:1: ( ( ({...}? => ( ( ( rule__Zone__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Zone__Group_4_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Zone__Group_4_2__0 ) ) ) ) | ({...}? => ( ( ( rule__Zone__Group_4_3__0 ) ) ) ) | ({...}? => ( ( ( ( rule__Zone__TagsAssignment_4_4 ) ) ( ( ( rule__Zone__TagsAssignment_4_4 )=> rule__Zone__TagsAssignment_4_4 )* ) ) ) ) ) )
+ // InternalRBAModel.g:23186:3: ( ({...}? => ( ( ( rule__Zone__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Zone__Group_4_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Zone__Group_4_2__0 ) ) ) ) | ({...}? => ( ( ( rule__Zone__Group_4_3__0 ) ) ) ) | ({...}? => ( ( ( ( rule__Zone__TagsAssignment_4_4 ) ) ( ( ( rule__Zone__TagsAssignment_4_4 )=> rule__Zone__TagsAssignment_4_4 )* ) ) ) ) )
+ {
+ // InternalRBAModel.g:23186:3: ( ({...}? => ( ( ( rule__Zone__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Zone__Group_4_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Zone__Group_4_2__0 ) ) ) ) | ({...}? => ( ( ( rule__Zone__Group_4_3__0 ) ) ) ) | ({...}? => ( ( ( ( rule__Zone__TagsAssignment_4_4 ) ) ( ( ( rule__Zone__TagsAssignment_4_4 )=> rule__Zone__TagsAssignment_4_4 )* ) ) ) ) )
+ int alt155=5;
+ int LA155_0 = input.LA(1);
+
+ if ( LA155_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 0) ) {
+ alt155=1;
+ }
+ else if ( LA155_0 == 128 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 1) ) {
+ alt155=2;
+ }
+ else if ( LA155_0 == 71 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 2) ) {
+ alt155=3;
+ }
+ else if ( LA155_0 == 72 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 2) ) {
+ alt155=3;
+ }
+ else if ( LA155_0 == 130 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 3) ) {
+ alt155=4;
+ }
+ else if ( LA155_0 >= 98 && LA155_0 <= 99 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 4) ) {
+ alt155=5;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 155, 0, input);
+
+ throw nvae;
+ }
+ switch (alt155) {
+ case 1 :
+ // InternalRBAModel.g:23187:3: ({...}? => ( ( ( rule__Zone__Group_4_0__0 ) ) ) )
+ {
+ // InternalRBAModel.g:23187:3: ({...}? => ( ( ( rule__Zone__Group_4_0__0 ) ) ) )
+ // InternalRBAModel.g:23188:4: {...}? => ( ( ( rule__Zone__Group_4_0__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__Zone__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 0)");
+ }
+ // InternalRBAModel.g:23188:100: ( ( ( rule__Zone__Group_4_0__0 ) ) )
+ // InternalRBAModel.g:23189:5: ( ( rule__Zone__Group_4_0__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 0);
+ selected = true;
+ // InternalRBAModel.g:23195:5: ( ( rule__Zone__Group_4_0__0 ) )
+ // InternalRBAModel.g:23196:6: ( rule__Zone__Group_4_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneAccess().getGroup_4_0());
+ }
+ // InternalRBAModel.g:23197:6: ( rule__Zone__Group_4_0__0 )
+ // InternalRBAModel.g:23197:7: rule__Zone__Group_4_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Zone__Group_4_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneAccess().getGroup_4_0());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:23202:3: ({...}? => ( ( ( rule__Zone__Group_4_1__0 ) ) ) )
+ {
+ // InternalRBAModel.g:23202:3: ({...}? => ( ( ( rule__Zone__Group_4_1__0 ) ) ) )
+ // InternalRBAModel.g:23203:4: {...}? => ( ( ( rule__Zone__Group_4_1__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__Zone__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 1)");
+ }
+ // InternalRBAModel.g:23203:100: ( ( ( rule__Zone__Group_4_1__0 ) ) )
+ // InternalRBAModel.g:23204:5: ( ( rule__Zone__Group_4_1__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 1);
+ selected = true;
+ // InternalRBAModel.g:23210:5: ( ( rule__Zone__Group_4_1__0 ) )
+ // InternalRBAModel.g:23211:6: ( rule__Zone__Group_4_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneAccess().getGroup_4_1());
+ }
+ // InternalRBAModel.g:23212:6: ( rule__Zone__Group_4_1__0 )
+ // InternalRBAModel.g:23212:7: rule__Zone__Group_4_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Zone__Group_4_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneAccess().getGroup_4_1());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:23217:3: ({...}? => ( ( ( rule__Zone__Group_4_2__0 ) ) ) )
+ {
+ // InternalRBAModel.g:23217:3: ({...}? => ( ( ( rule__Zone__Group_4_2__0 ) ) ) )
+ // InternalRBAModel.g:23218:4: {...}? => ( ( ( rule__Zone__Group_4_2__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 2) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__Zone__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 2)");
+ }
+ // InternalRBAModel.g:23218:100: ( ( ( rule__Zone__Group_4_2__0 ) ) )
+ // InternalRBAModel.g:23219:5: ( ( rule__Zone__Group_4_2__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 2);
+ selected = true;
+ // InternalRBAModel.g:23225:5: ( ( rule__Zone__Group_4_2__0 ) )
+ // InternalRBAModel.g:23226:6: ( rule__Zone__Group_4_2__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneAccess().getGroup_4_2());
+ }
+ // InternalRBAModel.g:23227:6: ( rule__Zone__Group_4_2__0 )
+ // InternalRBAModel.g:23227:7: rule__Zone__Group_4_2__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Zone__Group_4_2__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneAccess().getGroup_4_2());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // InternalRBAModel.g:23232:3: ({...}? => ( ( ( rule__Zone__Group_4_3__0 ) ) ) )
+ {
+ // InternalRBAModel.g:23232:3: ({...}? => ( ( ( rule__Zone__Group_4_3__0 ) ) ) )
+ // InternalRBAModel.g:23233:4: {...}? => ( ( ( rule__Zone__Group_4_3__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 3) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__Zone__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 3)");
+ }
+ // InternalRBAModel.g:23233:100: ( ( ( rule__Zone__Group_4_3__0 ) ) )
+ // InternalRBAModel.g:23234:5: ( ( rule__Zone__Group_4_3__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 3);
+ selected = true;
+ // InternalRBAModel.g:23240:5: ( ( rule__Zone__Group_4_3__0 ) )
+ // InternalRBAModel.g:23241:6: ( rule__Zone__Group_4_3__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneAccess().getGroup_4_3());
+ }
+ // InternalRBAModel.g:23242:6: ( rule__Zone__Group_4_3__0 )
+ // InternalRBAModel.g:23242:7: rule__Zone__Group_4_3__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Zone__Group_4_3__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneAccess().getGroup_4_3());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 5 :
+ // InternalRBAModel.g:23247:3: ({...}? => ( ( ( ( rule__Zone__TagsAssignment_4_4 ) ) ( ( ( rule__Zone__TagsAssignment_4_4 )=> rule__Zone__TagsAssignment_4_4 )* ) ) ) )
+ {
+ // InternalRBAModel.g:23247:3: ({...}? => ( ( ( ( rule__Zone__TagsAssignment_4_4 ) ) ( ( ( rule__Zone__TagsAssignment_4_4 )=> rule__Zone__TagsAssignment_4_4 )* ) ) ) )
+ // InternalRBAModel.g:23248:4: {...}? => ( ( ( ( rule__Zone__TagsAssignment_4_4 ) ) ( ( ( rule__Zone__TagsAssignment_4_4 )=> rule__Zone__TagsAssignment_4_4 )* ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 4) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__Zone__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 4)");
+ }
+ // InternalRBAModel.g:23248:100: ( ( ( ( rule__Zone__TagsAssignment_4_4 ) ) ( ( ( rule__Zone__TagsAssignment_4_4 )=> rule__Zone__TagsAssignment_4_4 )* ) ) )
+ // InternalRBAModel.g:23249:5: ( ( ( rule__Zone__TagsAssignment_4_4 ) ) ( ( ( rule__Zone__TagsAssignment_4_4 )=> rule__Zone__TagsAssignment_4_4 )* ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 4);
+ selected = true;
+ // InternalRBAModel.g:23255:5: ( ( ( rule__Zone__TagsAssignment_4_4 ) ) ( ( ( rule__Zone__TagsAssignment_4_4 )=> rule__Zone__TagsAssignment_4_4 )* ) )
+ // InternalRBAModel.g:23256:6: ( ( rule__Zone__TagsAssignment_4_4 ) ) ( ( ( rule__Zone__TagsAssignment_4_4 )=> rule__Zone__TagsAssignment_4_4 )* )
+ {
+ // InternalRBAModel.g:23256:6: ( ( rule__Zone__TagsAssignment_4_4 ) )
+ // InternalRBAModel.g:23257:7: ( rule__Zone__TagsAssignment_4_4 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneAccess().getTagsAssignment_4_4());
+ }
+ // InternalRBAModel.g:23258:7: ( rule__Zone__TagsAssignment_4_4 )
+ // InternalRBAModel.g:23258:8: rule__Zone__TagsAssignment_4_4
+ {
+ pushFollow(FOLLOW_169);
+ rule__Zone__TagsAssignment_4_4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneAccess().getTagsAssignment_4_4());
+ }
+
+ }
+
+ // InternalRBAModel.g:23261:6: ( ( ( rule__Zone__TagsAssignment_4_4 )=> rule__Zone__TagsAssignment_4_4 )* )
+ // InternalRBAModel.g:23262:7: ( ( rule__Zone__TagsAssignment_4_4 )=> rule__Zone__TagsAssignment_4_4 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneAccess().getTagsAssignment_4_4());
+ }
+ // InternalRBAModel.g:23263:7: ( ( rule__Zone__TagsAssignment_4_4 )=> rule__Zone__TagsAssignment_4_4 )*
+ loop154:
+ do {
+ int alt154=2;
+ alt154 = dfa154.predict(input);
+ switch (alt154) {
+ case 1 :
+ // InternalRBAModel.g:23263:8: ( rule__Zone__TagsAssignment_4_4 )=> rule__Zone__TagsAssignment_4_4
+ {
+ pushFollow(FOLLOW_169);
+ rule__Zone__TagsAssignment_4_4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop154;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneAccess().getTagsAssignment_4_4());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ if (selected)
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getZoneAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Zone__UnorderedGroup_4__Impl"
+
+
+ // $ANTLR start "rule__Zone__UnorderedGroup_4__0"
+ // InternalRBAModel.g:23277:1: rule__Zone__UnorderedGroup_4__0 : rule__Zone__UnorderedGroup_4__Impl ( rule__Zone__UnorderedGroup_4__1 )? ;
+ public final void rule__Zone__UnorderedGroup_4__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:23281:1: ( rule__Zone__UnorderedGroup_4__Impl ( rule__Zone__UnorderedGroup_4__1 )? )
+ // InternalRBAModel.g:23282:2: rule__Zone__UnorderedGroup_4__Impl ( rule__Zone__UnorderedGroup_4__1 )?
+ {
+ pushFollow(FOLLOW_169);
+ rule__Zone__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // InternalRBAModel.g:23283:2: ( rule__Zone__UnorderedGroup_4__1 )?
+ int alt156=2;
+ int LA156_0 = input.LA(1);
+
+ if ( LA156_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 0) ) {
+ alt156=1;
+ }
+ else if ( LA156_0 == 128 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 1) ) {
+ alt156=1;
+ }
+ else if ( LA156_0 == 71 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 2) ) {
+ alt156=1;
+ }
+ else if ( LA156_0 == 72 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 2) ) {
+ alt156=1;
+ }
+ else if ( LA156_0 == 130 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 3) ) {
+ alt156=1;
+ }
+ else if ( LA156_0 == 98 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 4) ) {
+ alt156=1;
+ }
+ else if ( LA156_0 == 99 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 4) ) {
+ alt156=1;
+ }
+ switch (alt156) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__Zone__UnorderedGroup_4__1
+ {
+ pushFollow(FOLLOW_2);
+ rule__Zone__UnorderedGroup_4__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Zone__UnorderedGroup_4__0"
+
+
+ // $ANTLR start "rule__Zone__UnorderedGroup_4__1"
+ // InternalRBAModel.g:23289:1: rule__Zone__UnorderedGroup_4__1 : rule__Zone__UnorderedGroup_4__Impl ( rule__Zone__UnorderedGroup_4__2 )? ;
+ public final void rule__Zone__UnorderedGroup_4__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:23293:1: ( rule__Zone__UnorderedGroup_4__Impl ( rule__Zone__UnorderedGroup_4__2 )? )
+ // InternalRBAModel.g:23294:2: rule__Zone__UnorderedGroup_4__Impl ( rule__Zone__UnorderedGroup_4__2 )?
+ {
+ pushFollow(FOLLOW_169);
+ rule__Zone__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // InternalRBAModel.g:23295:2: ( rule__Zone__UnorderedGroup_4__2 )?
+ int alt157=2;
+ int LA157_0 = input.LA(1);
+
+ if ( LA157_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 0) ) {
+ alt157=1;
+ }
+ else if ( LA157_0 == 128 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 1) ) {
+ alt157=1;
+ }
+ else if ( LA157_0 == 71 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 2) ) {
+ alt157=1;
+ }
+ else if ( LA157_0 == 72 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 2) ) {
+ alt157=1;
+ }
+ else if ( LA157_0 == 130 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 3) ) {
+ alt157=1;
+ }
+ else if ( LA157_0 == 98 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 4) ) {
+ alt157=1;
+ }
+ else if ( LA157_0 == 99 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 4) ) {
+ alt157=1;
+ }
+ switch (alt157) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__Zone__UnorderedGroup_4__2
+ {
+ pushFollow(FOLLOW_2);
+ rule__Zone__UnorderedGroup_4__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Zone__UnorderedGroup_4__1"
+
+
+ // $ANTLR start "rule__Zone__UnorderedGroup_4__2"
+ // InternalRBAModel.g:23301:1: rule__Zone__UnorderedGroup_4__2 : rule__Zone__UnorderedGroup_4__Impl ( rule__Zone__UnorderedGroup_4__3 )? ;
+ public final void rule__Zone__UnorderedGroup_4__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:23305:1: ( rule__Zone__UnorderedGroup_4__Impl ( rule__Zone__UnorderedGroup_4__3 )? )
+ // InternalRBAModel.g:23306:2: rule__Zone__UnorderedGroup_4__Impl ( rule__Zone__UnorderedGroup_4__3 )?
+ {
+ pushFollow(FOLLOW_169);
+ rule__Zone__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // InternalRBAModel.g:23307:2: ( rule__Zone__UnorderedGroup_4__3 )?
+ int alt158=2;
+ int LA158_0 = input.LA(1);
+
+ if ( LA158_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 0) ) {
+ alt158=1;
+ }
+ else if ( LA158_0 == 128 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 1) ) {
+ alt158=1;
+ }
+ else if ( LA158_0 == 71 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 2) ) {
+ alt158=1;
+ }
+ else if ( LA158_0 == 72 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 2) ) {
+ alt158=1;
+ }
+ else if ( LA158_0 == 130 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 3) ) {
+ alt158=1;
+ }
+ else if ( LA158_0 == 98 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 4) ) {
+ alt158=1;
+ }
+ else if ( LA158_0 == 99 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 4) ) {
+ alt158=1;
+ }
+ switch (alt158) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__Zone__UnorderedGroup_4__3
+ {
+ pushFollow(FOLLOW_2);
+ rule__Zone__UnorderedGroup_4__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Zone__UnorderedGroup_4__2"
+
+
+ // $ANTLR start "rule__Zone__UnorderedGroup_4__3"
+ // InternalRBAModel.g:23313:1: rule__Zone__UnorderedGroup_4__3 : rule__Zone__UnorderedGroup_4__Impl ( rule__Zone__UnorderedGroup_4__4 )? ;
+ public final void rule__Zone__UnorderedGroup_4__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:23317:1: ( rule__Zone__UnorderedGroup_4__Impl ( rule__Zone__UnorderedGroup_4__4 )? )
+ // InternalRBAModel.g:23318:2: rule__Zone__UnorderedGroup_4__Impl ( rule__Zone__UnorderedGroup_4__4 )?
+ {
+ pushFollow(FOLLOW_169);
+ rule__Zone__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // InternalRBAModel.g:23319:2: ( rule__Zone__UnorderedGroup_4__4 )?
+ int alt159=2;
+ int LA159_0 = input.LA(1);
+
+ if ( LA159_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 0) ) {
+ alt159=1;
+ }
+ else if ( LA159_0 == 128 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 1) ) {
+ alt159=1;
+ }
+ else if ( LA159_0 == 71 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 2) ) {
+ alt159=1;
+ }
+ else if ( LA159_0 == 72 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 2) ) {
+ alt159=1;
+ }
+ else if ( LA159_0 == 130 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 3) ) {
+ alt159=1;
+ }
+ else if ( LA159_0 == 98 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 4) ) {
+ alt159=1;
+ }
+ else if ( LA159_0 == 99 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 4) ) {
+ alt159=1;
+ }
+ switch (alt159) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__Zone__UnorderedGroup_4__4
+ {
+ pushFollow(FOLLOW_2);
+ rule__Zone__UnorderedGroup_4__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Zone__UnorderedGroup_4__3"
+
+
+ // $ANTLR start "rule__Zone__UnorderedGroup_4__4"
+ // InternalRBAModel.g:23325:1: rule__Zone__UnorderedGroup_4__4 : rule__Zone__UnorderedGroup_4__Impl ;
+ public final void rule__Zone__UnorderedGroup_4__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:23329:1: ( rule__Zone__UnorderedGroup_4__Impl )
+ // InternalRBAModel.g:23330:2: rule__Zone__UnorderedGroup_4__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Zone__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Zone__UnorderedGroup_4__4"
+
+
+ // $ANTLR start "rule__ViewContentState__UnorderedGroup_4"
+ // InternalRBAModel.g:23337:1: rule__ViewContentState__UnorderedGroup_4 : ( rule__ViewContentState__UnorderedGroup_4__0 )? ;
+ public final void rule__ViewContentState__UnorderedGroup_4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+ getUnorderedGroupHelper().enter(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4());
+
+ try {
+ // InternalRBAModel.g:23342:1: ( ( rule__ViewContentState__UnorderedGroup_4__0 )? )
+ // InternalRBAModel.g:23343:2: ( rule__ViewContentState__UnorderedGroup_4__0 )?
+ {
+ // InternalRBAModel.g:23343:2: ( rule__ViewContentState__UnorderedGroup_4__0 )?
+ int alt160=2;
+ int LA160_0 = input.LA(1);
+
+ if ( LA160_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4(), 0) ) {
+ alt160=1;
+ }
+ else if ( LA160_0 == 72 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4(), 1) ) {
+ alt160=1;
+ }
+ else if ( LA160_0 == 73 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4(), 1) ) {
+ alt160=1;
+ }
+ switch (alt160) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__ViewContentState__UnorderedGroup_4__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContentState__UnorderedGroup_4__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ getUnorderedGroupHelper().leave(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentState__UnorderedGroup_4"
+
+
+ // $ANTLR start "rule__ViewContentState__UnorderedGroup_4__Impl"
+ // InternalRBAModel.g:23351:1: rule__ViewContentState__UnorderedGroup_4__Impl : ( ({...}? => ( ( ( rule__ViewContentState__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__ViewContentState__Group_4_1__0 ) ) ) ) ) ;
+ public final void rule__ViewContentState__UnorderedGroup_4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+ boolean selected = false;
+
+ try {
+ // InternalRBAModel.g:23356:1: ( ( ({...}? => ( ( ( rule__ViewContentState__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__ViewContentState__Group_4_1__0 ) ) ) ) ) )
+ // InternalRBAModel.g:23357:3: ( ({...}? => ( ( ( rule__ViewContentState__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__ViewContentState__Group_4_1__0 ) ) ) ) )
+ {
+ // InternalRBAModel.g:23357:3: ( ({...}? => ( ( ( rule__ViewContentState__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__ViewContentState__Group_4_1__0 ) ) ) ) )
+ int alt161=2;
+ int LA161_0 = input.LA(1);
+
+ if ( LA161_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4(), 0) ) {
+ alt161=1;
+ }
+ else if ( LA161_0 >= 72 && LA161_0 <= 73 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4(), 1) ) {
+ alt161=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 161, 0, input);
+
+ throw nvae;
+ }
+ switch (alt161) {
+ case 1 :
+ // InternalRBAModel.g:23358:3: ({...}? => ( ( ( rule__ViewContentState__Group_4_0__0 ) ) ) )
+ {
+ // InternalRBAModel.g:23358:3: ({...}? => ( ( ( rule__ViewContentState__Group_4_0__0 ) ) ) )
+ // InternalRBAModel.g:23359:4: {...}? => ( ( ( rule__ViewContentState__Group_4_0__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__ViewContentState__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4(), 0)");
+ }
+ // InternalRBAModel.g:23359:112: ( ( ( rule__ViewContentState__Group_4_0__0 ) ) )
+ // InternalRBAModel.g:23360:5: ( ( rule__ViewContentState__Group_4_0__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4(), 0);
+ selected = true;
+ // InternalRBAModel.g:23366:5: ( ( rule__ViewContentState__Group_4_0__0 ) )
+ // InternalRBAModel.g:23367:6: ( rule__ViewContentState__Group_4_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentStateAccess().getGroup_4_0());
+ }
+ // InternalRBAModel.g:23368:6: ( rule__ViewContentState__Group_4_0__0 )
+ // InternalRBAModel.g:23368:7: rule__ViewContentState__Group_4_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContentState__Group_4_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentStateAccess().getGroup_4_0());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:23373:3: ({...}? => ( ( ( rule__ViewContentState__Group_4_1__0 ) ) ) )
+ {
+ // InternalRBAModel.g:23373:3: ({...}? => ( ( ( rule__ViewContentState__Group_4_1__0 ) ) ) )
+ // InternalRBAModel.g:23374:4: {...}? => ( ( ( rule__ViewContentState__Group_4_1__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__ViewContentState__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4(), 1)");
+ }
+ // InternalRBAModel.g:23374:112: ( ( ( rule__ViewContentState__Group_4_1__0 ) ) )
+ // InternalRBAModel.g:23375:5: ( ( rule__ViewContentState__Group_4_1__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4(), 1);
+ selected = true;
+ // InternalRBAModel.g:23381:5: ( ( rule__ViewContentState__Group_4_1__0 ) )
+ // InternalRBAModel.g:23382:6: ( rule__ViewContentState__Group_4_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentStateAccess().getGroup_4_1());
+ }
+ // InternalRBAModel.g:23383:6: ( rule__ViewContentState__Group_4_1__0 )
+ // InternalRBAModel.g:23383:7: rule__ViewContentState__Group_4_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContentState__Group_4_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentStateAccess().getGroup_4_1());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ if (selected)
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentState__UnorderedGroup_4__Impl"
+
+
+ // $ANTLR start "rule__ViewContentState__UnorderedGroup_4__0"
+ // InternalRBAModel.g:23396:1: rule__ViewContentState__UnorderedGroup_4__0 : rule__ViewContentState__UnorderedGroup_4__Impl ( rule__ViewContentState__UnorderedGroup_4__1 )? ;
+ public final void rule__ViewContentState__UnorderedGroup_4__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:23400:1: ( rule__ViewContentState__UnorderedGroup_4__Impl ( rule__ViewContentState__UnorderedGroup_4__1 )? )
+ // InternalRBAModel.g:23401:2: rule__ViewContentState__UnorderedGroup_4__Impl ( rule__ViewContentState__UnorderedGroup_4__1 )?
+ {
+ pushFollow(FOLLOW_170);
+ rule__ViewContentState__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // InternalRBAModel.g:23402:2: ( rule__ViewContentState__UnorderedGroup_4__1 )?
+ int alt162=2;
+ int LA162_0 = input.LA(1);
+
+ if ( LA162_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4(), 0) ) {
+ alt162=1;
+ }
+ else if ( LA162_0 == 72 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4(), 1) ) {
+ alt162=1;
+ }
+ else if ( LA162_0 == 73 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4(), 1) ) {
+ alt162=1;
+ }
+ switch (alt162) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__ViewContentState__UnorderedGroup_4__1
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContentState__UnorderedGroup_4__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentState__UnorderedGroup_4__0"
+
+
+ // $ANTLR start "rule__ViewContentState__UnorderedGroup_4__1"
+ // InternalRBAModel.g:23408:1: rule__ViewContentState__UnorderedGroup_4__1 : rule__ViewContentState__UnorderedGroup_4__Impl ;
+ public final void rule__ViewContentState__UnorderedGroup_4__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:23412:1: ( rule__ViewContentState__UnorderedGroup_4__Impl )
+ // InternalRBAModel.g:23413:2: rule__ViewContentState__UnorderedGroup_4__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContentState__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentState__UnorderedGroup_4__1"
+
+
+ // $ANTLR start "rule__SoundContentState__UnorderedGroup_4"
+ // InternalRBAModel.g:23420:1: rule__SoundContentState__UnorderedGroup_4 : ( rule__SoundContentState__UnorderedGroup_4__0 )? ;
+ public final void rule__SoundContentState__UnorderedGroup_4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+ getUnorderedGroupHelper().enter(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4());
+
+ try {
+ // InternalRBAModel.g:23425:1: ( ( rule__SoundContentState__UnorderedGroup_4__0 )? )
+ // InternalRBAModel.g:23426:2: ( rule__SoundContentState__UnorderedGroup_4__0 )?
+ {
+ // InternalRBAModel.g:23426:2: ( rule__SoundContentState__UnorderedGroup_4__0 )?
+ int alt163=2;
+ int LA163_0 = input.LA(1);
+
+ if ( LA163_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4(), 0) ) {
+ alt163=1;
+ }
+ else if ( LA163_0 == 72 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4(), 1) ) {
+ alt163=1;
+ }
+ else if ( LA163_0 == 73 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4(), 1) ) {
+ alt163=1;
+ }
+ switch (alt163) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__SoundContentState__UnorderedGroup_4__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContentState__UnorderedGroup_4__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ getUnorderedGroupHelper().leave(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentState__UnorderedGroup_4"
+
+
+ // $ANTLR start "rule__SoundContentState__UnorderedGroup_4__Impl"
+ // InternalRBAModel.g:23434:1: rule__SoundContentState__UnorderedGroup_4__Impl : ( ({...}? => ( ( ( rule__SoundContentState__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__SoundContentState__Group_4_1__0 ) ) ) ) ) ;
+ public final void rule__SoundContentState__UnorderedGroup_4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+ boolean selected = false;
+
+ try {
+ // InternalRBAModel.g:23439:1: ( ( ({...}? => ( ( ( rule__SoundContentState__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__SoundContentState__Group_4_1__0 ) ) ) ) ) )
+ // InternalRBAModel.g:23440:3: ( ({...}? => ( ( ( rule__SoundContentState__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__SoundContentState__Group_4_1__0 ) ) ) ) )
+ {
+ // InternalRBAModel.g:23440:3: ( ({...}? => ( ( ( rule__SoundContentState__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__SoundContentState__Group_4_1__0 ) ) ) ) )
+ int alt164=2;
+ int LA164_0 = input.LA(1);
+
+ if ( LA164_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4(), 0) ) {
+ alt164=1;
+ }
+ else if ( LA164_0 >= 72 && LA164_0 <= 73 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4(), 1) ) {
+ alt164=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 164, 0, input);
+
+ throw nvae;
+ }
+ switch (alt164) {
+ case 1 :
+ // InternalRBAModel.g:23441:3: ({...}? => ( ( ( rule__SoundContentState__Group_4_0__0 ) ) ) )
+ {
+ // InternalRBAModel.g:23441:3: ({...}? => ( ( ( rule__SoundContentState__Group_4_0__0 ) ) ) )
+ // InternalRBAModel.g:23442:4: {...}? => ( ( ( rule__SoundContentState__Group_4_0__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__SoundContentState__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4(), 0)");
+ }
+ // InternalRBAModel.g:23442:113: ( ( ( rule__SoundContentState__Group_4_0__0 ) ) )
+ // InternalRBAModel.g:23443:5: ( ( rule__SoundContentState__Group_4_0__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4(), 0);
+ selected = true;
+ // InternalRBAModel.g:23449:5: ( ( rule__SoundContentState__Group_4_0__0 ) )
+ // InternalRBAModel.g:23450:6: ( rule__SoundContentState__Group_4_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentStateAccess().getGroup_4_0());
+ }
+ // InternalRBAModel.g:23451:6: ( rule__SoundContentState__Group_4_0__0 )
+ // InternalRBAModel.g:23451:7: rule__SoundContentState__Group_4_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContentState__Group_4_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentStateAccess().getGroup_4_0());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:23456:3: ({...}? => ( ( ( rule__SoundContentState__Group_4_1__0 ) ) ) )
+ {
+ // InternalRBAModel.g:23456:3: ({...}? => ( ( ( rule__SoundContentState__Group_4_1__0 ) ) ) )
+ // InternalRBAModel.g:23457:4: {...}? => ( ( ( rule__SoundContentState__Group_4_1__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__SoundContentState__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4(), 1)");
+ }
+ // InternalRBAModel.g:23457:113: ( ( ( rule__SoundContentState__Group_4_1__0 ) ) )
+ // InternalRBAModel.g:23458:5: ( ( rule__SoundContentState__Group_4_1__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4(), 1);
+ selected = true;
+ // InternalRBAModel.g:23464:5: ( ( rule__SoundContentState__Group_4_1__0 ) )
+ // InternalRBAModel.g:23465:6: ( rule__SoundContentState__Group_4_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentStateAccess().getGroup_4_1());
+ }
+ // InternalRBAModel.g:23466:6: ( rule__SoundContentState__Group_4_1__0 )
+ // InternalRBAModel.g:23466:7: rule__SoundContentState__Group_4_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContentState__Group_4_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentStateAccess().getGroup_4_1());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ if (selected)
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentState__UnorderedGroup_4__Impl"
+
+
+ // $ANTLR start "rule__SoundContentState__UnorderedGroup_4__0"
+ // InternalRBAModel.g:23479:1: rule__SoundContentState__UnorderedGroup_4__0 : rule__SoundContentState__UnorderedGroup_4__Impl ( rule__SoundContentState__UnorderedGroup_4__1 )? ;
+ public final void rule__SoundContentState__UnorderedGroup_4__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:23483:1: ( rule__SoundContentState__UnorderedGroup_4__Impl ( rule__SoundContentState__UnorderedGroup_4__1 )? )
+ // InternalRBAModel.g:23484:2: rule__SoundContentState__UnorderedGroup_4__Impl ( rule__SoundContentState__UnorderedGroup_4__1 )?
+ {
+ pushFollow(FOLLOW_170);
+ rule__SoundContentState__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // InternalRBAModel.g:23485:2: ( rule__SoundContentState__UnorderedGroup_4__1 )?
+ int alt165=2;
+ int LA165_0 = input.LA(1);
+
+ if ( LA165_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4(), 0) ) {
+ alt165=1;
+ }
+ else if ( LA165_0 == 72 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4(), 1) ) {
+ alt165=1;
+ }
+ else if ( LA165_0 == 73 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4(), 1) ) {
+ alt165=1;
+ }
+ switch (alt165) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__SoundContentState__UnorderedGroup_4__1
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContentState__UnorderedGroup_4__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentState__UnorderedGroup_4__0"
+
+
+ // $ANTLR start "rule__SoundContentState__UnorderedGroup_4__1"
+ // InternalRBAModel.g:23491:1: rule__SoundContentState__UnorderedGroup_4__1 : rule__SoundContentState__UnorderedGroup_4__Impl ;
+ public final void rule__SoundContentState__UnorderedGroup_4__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:23495:1: ( rule__SoundContentState__UnorderedGroup_4__Impl )
+ // InternalRBAModel.g:23496:2: rule__SoundContentState__UnorderedGroup_4__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContentState__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentState__UnorderedGroup_4__1"
+
+
+ // $ANTLR start "rule__ViewContentSet__UnorderedGroup_4"
+ // InternalRBAModel.g:23503:1: rule__ViewContentSet__UnorderedGroup_4 : ( rule__ViewContentSet__UnorderedGroup_4__0 )? ;
+ public final void rule__ViewContentSet__UnorderedGroup_4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+ getUnorderedGroupHelper().enter(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4());
+
+ try {
+ // InternalRBAModel.g:23508:1: ( ( rule__ViewContentSet__UnorderedGroup_4__0 )? )
+ // InternalRBAModel.g:23509:2: ( rule__ViewContentSet__UnorderedGroup_4__0 )?
+ {
+ // InternalRBAModel.g:23509:2: ( rule__ViewContentSet__UnorderedGroup_4__0 )?
+ int alt166=2;
+ int LA166_0 = input.LA(1);
+
+ if ( LA166_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 0) ) {
+ alt166=1;
+ }
+ else if ( LA166_0 == 124 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 1) ) {
+ alt166=1;
+ }
+ else if ( LA166_0 == 113 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 2) ) {
+ alt166=1;
+ }
+ switch (alt166) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__ViewContentSet__UnorderedGroup_4__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContentSet__UnorderedGroup_4__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ getUnorderedGroupHelper().leave(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__UnorderedGroup_4"
+
+
+ // $ANTLR start "rule__ViewContentSet__UnorderedGroup_4__Impl"
+ // InternalRBAModel.g:23517:1: rule__ViewContentSet__UnorderedGroup_4__Impl : ( ({...}? => ( ( ( rule__ViewContentSet__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__ViewContentSet__Group_4_1__0 ) ) ) ) | ({...}? => ( ( ( rule__ViewContentSet__Group_4_2__0 ) ) ) ) ) ;
+ public final void rule__ViewContentSet__UnorderedGroup_4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+ boolean selected = false;
+
+ try {
+ // InternalRBAModel.g:23522:1: ( ( ({...}? => ( ( ( rule__ViewContentSet__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__ViewContentSet__Group_4_1__0 ) ) ) ) | ({...}? => ( ( ( rule__ViewContentSet__Group_4_2__0 ) ) ) ) ) )
+ // InternalRBAModel.g:23523:3: ( ({...}? => ( ( ( rule__ViewContentSet__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__ViewContentSet__Group_4_1__0 ) ) ) ) | ({...}? => ( ( ( rule__ViewContentSet__Group_4_2__0 ) ) ) ) )
+ {
+ // InternalRBAModel.g:23523:3: ( ({...}? => ( ( ( rule__ViewContentSet__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__ViewContentSet__Group_4_1__0 ) ) ) ) | ({...}? => ( ( ( rule__ViewContentSet__Group_4_2__0 ) ) ) ) )
+ int alt167=3;
+ int LA167_0 = input.LA(1);
+
+ if ( LA167_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 0) ) {
+ alt167=1;
+ }
+ else if ( LA167_0 == 124 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 1) ) {
+ alt167=2;
+ }
+ else if ( LA167_0 == 113 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 2) ) {
+ alt167=3;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 167, 0, input);
+
+ throw nvae;
+ }
+ switch (alt167) {
+ case 1 :
+ // InternalRBAModel.g:23524:3: ({...}? => ( ( ( rule__ViewContentSet__Group_4_0__0 ) ) ) )
+ {
+ // InternalRBAModel.g:23524:3: ({...}? => ( ( ( rule__ViewContentSet__Group_4_0__0 ) ) ) )
+ // InternalRBAModel.g:23525:4: {...}? => ( ( ( rule__ViewContentSet__Group_4_0__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__ViewContentSet__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 0)");
+ }
+ // InternalRBAModel.g:23525:110: ( ( ( rule__ViewContentSet__Group_4_0__0 ) ) )
+ // InternalRBAModel.g:23526:5: ( ( rule__ViewContentSet__Group_4_0__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 0);
+ selected = true;
+ // InternalRBAModel.g:23532:5: ( ( rule__ViewContentSet__Group_4_0__0 ) )
+ // InternalRBAModel.g:23533:6: ( rule__ViewContentSet__Group_4_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentSetAccess().getGroup_4_0());
+ }
+ // InternalRBAModel.g:23534:6: ( rule__ViewContentSet__Group_4_0__0 )
+ // InternalRBAModel.g:23534:7: rule__ViewContentSet__Group_4_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContentSet__Group_4_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentSetAccess().getGroup_4_0());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:23539:3: ({...}? => ( ( ( rule__ViewContentSet__Group_4_1__0 ) ) ) )
+ {
+ // InternalRBAModel.g:23539:3: ({...}? => ( ( ( rule__ViewContentSet__Group_4_1__0 ) ) ) )
+ // InternalRBAModel.g:23540:4: {...}? => ( ( ( rule__ViewContentSet__Group_4_1__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__ViewContentSet__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 1)");
+ }
+ // InternalRBAModel.g:23540:110: ( ( ( rule__ViewContentSet__Group_4_1__0 ) ) )
+ // InternalRBAModel.g:23541:5: ( ( rule__ViewContentSet__Group_4_1__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 1);
+ selected = true;
+ // InternalRBAModel.g:23547:5: ( ( rule__ViewContentSet__Group_4_1__0 ) )
+ // InternalRBAModel.g:23548:6: ( rule__ViewContentSet__Group_4_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentSetAccess().getGroup_4_1());
+ }
+ // InternalRBAModel.g:23549:6: ( rule__ViewContentSet__Group_4_1__0 )
+ // InternalRBAModel.g:23549:7: rule__ViewContentSet__Group_4_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContentSet__Group_4_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentSetAccess().getGroup_4_1());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:23554:3: ({...}? => ( ( ( rule__ViewContentSet__Group_4_2__0 ) ) ) )
+ {
+ // InternalRBAModel.g:23554:3: ({...}? => ( ( ( rule__ViewContentSet__Group_4_2__0 ) ) ) )
+ // InternalRBAModel.g:23555:4: {...}? => ( ( ( rule__ViewContentSet__Group_4_2__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 2) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__ViewContentSet__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 2)");
+ }
+ // InternalRBAModel.g:23555:110: ( ( ( rule__ViewContentSet__Group_4_2__0 ) ) )
+ // InternalRBAModel.g:23556:5: ( ( rule__ViewContentSet__Group_4_2__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 2);
+ selected = true;
+ // InternalRBAModel.g:23562:5: ( ( rule__ViewContentSet__Group_4_2__0 ) )
+ // InternalRBAModel.g:23563:6: ( rule__ViewContentSet__Group_4_2__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentSetAccess().getGroup_4_2());
+ }
+ // InternalRBAModel.g:23564:6: ( rule__ViewContentSet__Group_4_2__0 )
+ // InternalRBAModel.g:23564:7: rule__ViewContentSet__Group_4_2__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContentSet__Group_4_2__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentSetAccess().getGroup_4_2());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ if (selected)
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__UnorderedGroup_4__Impl"
+
+
+ // $ANTLR start "rule__ViewContentSet__UnorderedGroup_4__0"
+ // InternalRBAModel.g:23577:1: rule__ViewContentSet__UnorderedGroup_4__0 : rule__ViewContentSet__UnorderedGroup_4__Impl ( rule__ViewContentSet__UnorderedGroup_4__1 )? ;
+ public final void rule__ViewContentSet__UnorderedGroup_4__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:23581:1: ( rule__ViewContentSet__UnorderedGroup_4__Impl ( rule__ViewContentSet__UnorderedGroup_4__1 )? )
+ // InternalRBAModel.g:23582:2: rule__ViewContentSet__UnorderedGroup_4__Impl ( rule__ViewContentSet__UnorderedGroup_4__1 )?
+ {
+ pushFollow(FOLLOW_171);
+ rule__ViewContentSet__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // InternalRBAModel.g:23583:2: ( rule__ViewContentSet__UnorderedGroup_4__1 )?
+ int alt168=2;
+ int LA168_0 = input.LA(1);
+
+ if ( LA168_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 0) ) {
+ alt168=1;
+ }
+ else if ( LA168_0 == 124 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 1) ) {
+ alt168=1;
+ }
+ else if ( LA168_0 == 113 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 2) ) {
+ alt168=1;
+ }
+ switch (alt168) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__ViewContentSet__UnorderedGroup_4__1
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContentSet__UnorderedGroup_4__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__UnorderedGroup_4__0"
+
+
+ // $ANTLR start "rule__ViewContentSet__UnorderedGroup_4__1"
+ // InternalRBAModel.g:23589:1: rule__ViewContentSet__UnorderedGroup_4__1 : rule__ViewContentSet__UnorderedGroup_4__Impl ( rule__ViewContentSet__UnorderedGroup_4__2 )? ;
+ public final void rule__ViewContentSet__UnorderedGroup_4__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:23593:1: ( rule__ViewContentSet__UnorderedGroup_4__Impl ( rule__ViewContentSet__UnorderedGroup_4__2 )? )
+ // InternalRBAModel.g:23594:2: rule__ViewContentSet__UnorderedGroup_4__Impl ( rule__ViewContentSet__UnorderedGroup_4__2 )?
+ {
+ pushFollow(FOLLOW_171);
+ rule__ViewContentSet__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // InternalRBAModel.g:23595:2: ( rule__ViewContentSet__UnorderedGroup_4__2 )?
+ int alt169=2;
+ int LA169_0 = input.LA(1);
+
+ if ( LA169_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 0) ) {
+ alt169=1;
+ }
+ else if ( LA169_0 == 124 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 1) ) {
+ alt169=1;
+ }
+ else if ( LA169_0 == 113 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 2) ) {
+ alt169=1;
+ }
+ switch (alt169) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__ViewContentSet__UnorderedGroup_4__2
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContentSet__UnorderedGroup_4__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__UnorderedGroup_4__1"
+
+
+ // $ANTLR start "rule__ViewContentSet__UnorderedGroup_4__2"
+ // InternalRBAModel.g:23601:1: rule__ViewContentSet__UnorderedGroup_4__2 : rule__ViewContentSet__UnorderedGroup_4__Impl ;
+ public final void rule__ViewContentSet__UnorderedGroup_4__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:23605:1: ( rule__ViewContentSet__UnorderedGroup_4__Impl )
+ // InternalRBAModel.g:23606:2: rule__ViewContentSet__UnorderedGroup_4__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContentSet__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__UnorderedGroup_4__2"
+
+
+ // $ANTLR start "rule__SoundContentSet__UnorderedGroup_4"
+ // InternalRBAModel.g:23613:1: rule__SoundContentSet__UnorderedGroup_4 : ( rule__SoundContentSet__UnorderedGroup_4__0 )? ;
+ public final void rule__SoundContentSet__UnorderedGroup_4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+ getUnorderedGroupHelper().enter(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4());
+
+ try {
+ // InternalRBAModel.g:23618:1: ( ( rule__SoundContentSet__UnorderedGroup_4__0 )? )
+ // InternalRBAModel.g:23619:2: ( rule__SoundContentSet__UnorderedGroup_4__0 )?
+ {
+ // InternalRBAModel.g:23619:2: ( rule__SoundContentSet__UnorderedGroup_4__0 )?
+ int alt170=2;
+ int LA170_0 = input.LA(1);
+
+ if ( LA170_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 0) ) {
+ alt170=1;
+ }
+ else if ( LA170_0 == 124 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 1) ) {
+ alt170=1;
+ }
+ else if ( LA170_0 == 113 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 2) ) {
+ alt170=1;
+ }
+ switch (alt170) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__SoundContentSet__UnorderedGroup_4__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContentSet__UnorderedGroup_4__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ getUnorderedGroupHelper().leave(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__UnorderedGroup_4"
+
+
+ // $ANTLR start "rule__SoundContentSet__UnorderedGroup_4__Impl"
+ // InternalRBAModel.g:23627:1: rule__SoundContentSet__UnorderedGroup_4__Impl : ( ({...}? => ( ( ( rule__SoundContentSet__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__SoundContentSet__Group_4_1__0 ) ) ) ) | ({...}? => ( ( ( rule__SoundContentSet__Group_4_2__0 ) ) ) ) ) ;
+ public final void rule__SoundContentSet__UnorderedGroup_4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+ boolean selected = false;
+
+ try {
+ // InternalRBAModel.g:23632:1: ( ( ({...}? => ( ( ( rule__SoundContentSet__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__SoundContentSet__Group_4_1__0 ) ) ) ) | ({...}? => ( ( ( rule__SoundContentSet__Group_4_2__0 ) ) ) ) ) )
+ // InternalRBAModel.g:23633:3: ( ({...}? => ( ( ( rule__SoundContentSet__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__SoundContentSet__Group_4_1__0 ) ) ) ) | ({...}? => ( ( ( rule__SoundContentSet__Group_4_2__0 ) ) ) ) )
+ {
+ // InternalRBAModel.g:23633:3: ( ({...}? => ( ( ( rule__SoundContentSet__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__SoundContentSet__Group_4_1__0 ) ) ) ) | ({...}? => ( ( ( rule__SoundContentSet__Group_4_2__0 ) ) ) ) )
+ int alt171=3;
+ int LA171_0 = input.LA(1);
+
+ if ( LA171_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 0) ) {
+ alt171=1;
+ }
+ else if ( LA171_0 == 124 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 1) ) {
+ alt171=2;
+ }
+ else if ( LA171_0 == 113 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 2) ) {
+ alt171=3;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 171, 0, input);
+
+ throw nvae;
+ }
+ switch (alt171) {
+ case 1 :
+ // InternalRBAModel.g:23634:3: ({...}? => ( ( ( rule__SoundContentSet__Group_4_0__0 ) ) ) )
+ {
+ // InternalRBAModel.g:23634:3: ({...}? => ( ( ( rule__SoundContentSet__Group_4_0__0 ) ) ) )
+ // InternalRBAModel.g:23635:4: {...}? => ( ( ( rule__SoundContentSet__Group_4_0__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__SoundContentSet__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 0)");
+ }
+ // InternalRBAModel.g:23635:111: ( ( ( rule__SoundContentSet__Group_4_0__0 ) ) )
+ // InternalRBAModel.g:23636:5: ( ( rule__SoundContentSet__Group_4_0__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 0);
+ selected = true;
+ // InternalRBAModel.g:23642:5: ( ( rule__SoundContentSet__Group_4_0__0 ) )
+ // InternalRBAModel.g:23643:6: ( rule__SoundContentSet__Group_4_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentSetAccess().getGroup_4_0());
+ }
+ // InternalRBAModel.g:23644:6: ( rule__SoundContentSet__Group_4_0__0 )
+ // InternalRBAModel.g:23644:7: rule__SoundContentSet__Group_4_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContentSet__Group_4_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentSetAccess().getGroup_4_0());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:23649:3: ({...}? => ( ( ( rule__SoundContentSet__Group_4_1__0 ) ) ) )
+ {
+ // InternalRBAModel.g:23649:3: ({...}? => ( ( ( rule__SoundContentSet__Group_4_1__0 ) ) ) )
+ // InternalRBAModel.g:23650:4: {...}? => ( ( ( rule__SoundContentSet__Group_4_1__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__SoundContentSet__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 1)");
+ }
+ // InternalRBAModel.g:23650:111: ( ( ( rule__SoundContentSet__Group_4_1__0 ) ) )
+ // InternalRBAModel.g:23651:5: ( ( rule__SoundContentSet__Group_4_1__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 1);
+ selected = true;
+ // InternalRBAModel.g:23657:5: ( ( rule__SoundContentSet__Group_4_1__0 ) )
+ // InternalRBAModel.g:23658:6: ( rule__SoundContentSet__Group_4_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentSetAccess().getGroup_4_1());
+ }
+ // InternalRBAModel.g:23659:6: ( rule__SoundContentSet__Group_4_1__0 )
+ // InternalRBAModel.g:23659:7: rule__SoundContentSet__Group_4_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContentSet__Group_4_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentSetAccess().getGroup_4_1());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:23664:3: ({...}? => ( ( ( rule__SoundContentSet__Group_4_2__0 ) ) ) )
+ {
+ // InternalRBAModel.g:23664:3: ({...}? => ( ( ( rule__SoundContentSet__Group_4_2__0 ) ) ) )
+ // InternalRBAModel.g:23665:4: {...}? => ( ( ( rule__SoundContentSet__Group_4_2__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 2) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__SoundContentSet__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 2)");
+ }
+ // InternalRBAModel.g:23665:111: ( ( ( rule__SoundContentSet__Group_4_2__0 ) ) )
+ // InternalRBAModel.g:23666:5: ( ( rule__SoundContentSet__Group_4_2__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 2);
+ selected = true;
+ // InternalRBAModel.g:23672:5: ( ( rule__SoundContentSet__Group_4_2__0 ) )
+ // InternalRBAModel.g:23673:6: ( rule__SoundContentSet__Group_4_2__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentSetAccess().getGroup_4_2());
+ }
+ // InternalRBAModel.g:23674:6: ( rule__SoundContentSet__Group_4_2__0 )
+ // InternalRBAModel.g:23674:7: rule__SoundContentSet__Group_4_2__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContentSet__Group_4_2__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentSetAccess().getGroup_4_2());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ if (selected)
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__UnorderedGroup_4__Impl"
+
+
+ // $ANTLR start "rule__SoundContentSet__UnorderedGroup_4__0"
+ // InternalRBAModel.g:23687:1: rule__SoundContentSet__UnorderedGroup_4__0 : rule__SoundContentSet__UnorderedGroup_4__Impl ( rule__SoundContentSet__UnorderedGroup_4__1 )? ;
+ public final void rule__SoundContentSet__UnorderedGroup_4__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:23691:1: ( rule__SoundContentSet__UnorderedGroup_4__Impl ( rule__SoundContentSet__UnorderedGroup_4__1 )? )
+ // InternalRBAModel.g:23692:2: rule__SoundContentSet__UnorderedGroup_4__Impl ( rule__SoundContentSet__UnorderedGroup_4__1 )?
+ {
+ pushFollow(FOLLOW_171);
+ rule__SoundContentSet__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // InternalRBAModel.g:23693:2: ( rule__SoundContentSet__UnorderedGroup_4__1 )?
+ int alt172=2;
+ int LA172_0 = input.LA(1);
+
+ if ( LA172_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 0) ) {
+ alt172=1;
+ }
+ else if ( LA172_0 == 124 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 1) ) {
+ alt172=1;
+ }
+ else if ( LA172_0 == 113 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 2) ) {
+ alt172=1;
+ }
+ switch (alt172) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__SoundContentSet__UnorderedGroup_4__1
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContentSet__UnorderedGroup_4__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__UnorderedGroup_4__0"
+
+
+ // $ANTLR start "rule__SoundContentSet__UnorderedGroup_4__1"
+ // InternalRBAModel.g:23699:1: rule__SoundContentSet__UnorderedGroup_4__1 : rule__SoundContentSet__UnorderedGroup_4__Impl ( rule__SoundContentSet__UnorderedGroup_4__2 )? ;
+ public final void rule__SoundContentSet__UnorderedGroup_4__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:23703:1: ( rule__SoundContentSet__UnorderedGroup_4__Impl ( rule__SoundContentSet__UnorderedGroup_4__2 )? )
+ // InternalRBAModel.g:23704:2: rule__SoundContentSet__UnorderedGroup_4__Impl ( rule__SoundContentSet__UnorderedGroup_4__2 )?
+ {
+ pushFollow(FOLLOW_171);
+ rule__SoundContentSet__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // InternalRBAModel.g:23705:2: ( rule__SoundContentSet__UnorderedGroup_4__2 )?
+ int alt173=2;
+ int LA173_0 = input.LA(1);
+
+ if ( LA173_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 0) ) {
+ alt173=1;
+ }
+ else if ( LA173_0 == 124 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 1) ) {
+ alt173=1;
+ }
+ else if ( LA173_0 == 113 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 2) ) {
+ alt173=1;
+ }
+ switch (alt173) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__SoundContentSet__UnorderedGroup_4__2
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContentSet__UnorderedGroup_4__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__UnorderedGroup_4__1"
+
+
+ // $ANTLR start "rule__SoundContentSet__UnorderedGroup_4__2"
+ // InternalRBAModel.g:23711:1: rule__SoundContentSet__UnorderedGroup_4__2 : rule__SoundContentSet__UnorderedGroup_4__Impl ;
+ public final void rule__SoundContentSet__UnorderedGroup_4__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:23715:1: ( rule__SoundContentSet__UnorderedGroup_4__Impl )
+ // InternalRBAModel.g:23716:2: rule__SoundContentSet__UnorderedGroup_4__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContentSet__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__UnorderedGroup_4__2"
+
+
+ // $ANTLR start "rule__Scene__UnorderedGroup_4"
+ // InternalRBAModel.g:23723:1: rule__Scene__UnorderedGroup_4 : ( rule__Scene__UnorderedGroup_4__0 )? ;
+ public final void rule__Scene__UnorderedGroup_4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+ getUnorderedGroupHelper().enter(grammarAccess.getSceneAccess().getUnorderedGroup_4());
+
+ try {
+ // InternalRBAModel.g:23728:1: ( ( rule__Scene__UnorderedGroup_4__0 )? )
+ // InternalRBAModel.g:23729:2: ( rule__Scene__UnorderedGroup_4__0 )?
+ {
+ // InternalRBAModel.g:23729:2: ( rule__Scene__UnorderedGroup_4__0 )?
+ int alt174=2;
+ int LA174_0 = input.LA(1);
+
+ if ( LA174_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 0) ) {
+ alt174=1;
+ }
+ else if ( LA174_0 == 158 && getUnorderedGroupHelper().canSelect(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 1) ) {
+ alt174=1;
+ }
+ else if ( LA174_0 == 96 && getUnorderedGroupHelper().canSelect(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 2) ) {
+ alt174=1;
+ }
+ switch (alt174) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__Scene__UnorderedGroup_4__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Scene__UnorderedGroup_4__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ getUnorderedGroupHelper().leave(grammarAccess.getSceneAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Scene__UnorderedGroup_4"
+
+
+ // $ANTLR start "rule__Scene__UnorderedGroup_4__Impl"
+ // InternalRBAModel.g:23737:1: rule__Scene__UnorderedGroup_4__Impl : ( ({...}? => ( ( ( rule__Scene__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Scene__Group_4_1__0 ) ) ) ) | ({...}? => ( ( ( ( rule__Scene__PropertiesAssignment_4_2 ) ) ( ( ( rule__Scene__PropertiesAssignment_4_2 )=> rule__Scene__PropertiesAssignment_4_2 )* ) ) ) ) ) ;
+ public final void rule__Scene__UnorderedGroup_4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+ boolean selected = false;
+
+ try {
+ // InternalRBAModel.g:23742:1: ( ( ({...}? => ( ( ( rule__Scene__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Scene__Group_4_1__0 ) ) ) ) | ({...}? => ( ( ( ( rule__Scene__PropertiesAssignment_4_2 ) ) ( ( ( rule__Scene__PropertiesAssignment_4_2 )=> rule__Scene__PropertiesAssignment_4_2 )* ) ) ) ) ) )
+ // InternalRBAModel.g:23743:3: ( ({...}? => ( ( ( rule__Scene__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Scene__Group_4_1__0 ) ) ) ) | ({...}? => ( ( ( ( rule__Scene__PropertiesAssignment_4_2 ) ) ( ( ( rule__Scene__PropertiesAssignment_4_2 )=> rule__Scene__PropertiesAssignment_4_2 )* ) ) ) ) )
+ {
+ // InternalRBAModel.g:23743:3: ( ({...}? => ( ( ( rule__Scene__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Scene__Group_4_1__0 ) ) ) ) | ({...}? => ( ( ( ( rule__Scene__PropertiesAssignment_4_2 ) ) ( ( ( rule__Scene__PropertiesAssignment_4_2 )=> rule__Scene__PropertiesAssignment_4_2 )* ) ) ) ) )
+ int alt176=3;
+ int LA176_0 = input.LA(1);
+
+ if ( LA176_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 0) ) {
+ alt176=1;
+ }
+ else if ( LA176_0 == 158 && getUnorderedGroupHelper().canSelect(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 1) ) {
+ alt176=2;
+ }
+ else if ( LA176_0 == 96 && getUnorderedGroupHelper().canSelect(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 2) ) {
+ alt176=3;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 176, 0, input);
+
+ throw nvae;
+ }
+ switch (alt176) {
+ case 1 :
+ // InternalRBAModel.g:23744:3: ({...}? => ( ( ( rule__Scene__Group_4_0__0 ) ) ) )
+ {
+ // InternalRBAModel.g:23744:3: ({...}? => ( ( ( rule__Scene__Group_4_0__0 ) ) ) )
+ // InternalRBAModel.g:23745:4: {...}? => ( ( ( rule__Scene__Group_4_0__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__Scene__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 0)");
+ }
+ // InternalRBAModel.g:23745:101: ( ( ( rule__Scene__Group_4_0__0 ) ) )
+ // InternalRBAModel.g:23746:5: ( ( rule__Scene__Group_4_0__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 0);
+ selected = true;
+ // InternalRBAModel.g:23752:5: ( ( rule__Scene__Group_4_0__0 ) )
+ // InternalRBAModel.g:23753:6: ( rule__Scene__Group_4_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSceneAccess().getGroup_4_0());
+ }
+ // InternalRBAModel.g:23754:6: ( rule__Scene__Group_4_0__0 )
+ // InternalRBAModel.g:23754:7: rule__Scene__Group_4_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Scene__Group_4_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSceneAccess().getGroup_4_0());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:23759:3: ({...}? => ( ( ( rule__Scene__Group_4_1__0 ) ) ) )
+ {
+ // InternalRBAModel.g:23759:3: ({...}? => ( ( ( rule__Scene__Group_4_1__0 ) ) ) )
+ // InternalRBAModel.g:23760:4: {...}? => ( ( ( rule__Scene__Group_4_1__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__Scene__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 1)");
+ }
+ // InternalRBAModel.g:23760:101: ( ( ( rule__Scene__Group_4_1__0 ) ) )
+ // InternalRBAModel.g:23761:5: ( ( rule__Scene__Group_4_1__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 1);
+ selected = true;
+ // InternalRBAModel.g:23767:5: ( ( rule__Scene__Group_4_1__0 ) )
+ // InternalRBAModel.g:23768:6: ( rule__Scene__Group_4_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSceneAccess().getGroup_4_1());
+ }
+ // InternalRBAModel.g:23769:6: ( rule__Scene__Group_4_1__0 )
+ // InternalRBAModel.g:23769:7: rule__Scene__Group_4_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Scene__Group_4_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSceneAccess().getGroup_4_1());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:23774:3: ({...}? => ( ( ( ( rule__Scene__PropertiesAssignment_4_2 ) ) ( ( ( rule__Scene__PropertiesAssignment_4_2 )=> rule__Scene__PropertiesAssignment_4_2 )* ) ) ) )
+ {
+ // InternalRBAModel.g:23774:3: ({...}? => ( ( ( ( rule__Scene__PropertiesAssignment_4_2 ) ) ( ( ( rule__Scene__PropertiesAssignment_4_2 )=> rule__Scene__PropertiesAssignment_4_2 )* ) ) ) )
+ // InternalRBAModel.g:23775:4: {...}? => ( ( ( ( rule__Scene__PropertiesAssignment_4_2 ) ) ( ( ( rule__Scene__PropertiesAssignment_4_2 )=> rule__Scene__PropertiesAssignment_4_2 )* ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 2) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__Scene__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 2)");
+ }
+ // InternalRBAModel.g:23775:101: ( ( ( ( rule__Scene__PropertiesAssignment_4_2 ) ) ( ( ( rule__Scene__PropertiesAssignment_4_2 )=> rule__Scene__PropertiesAssignment_4_2 )* ) ) )
+ // InternalRBAModel.g:23776:5: ( ( ( rule__Scene__PropertiesAssignment_4_2 ) ) ( ( ( rule__Scene__PropertiesAssignment_4_2 )=> rule__Scene__PropertiesAssignment_4_2 )* ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 2);
+ selected = true;
+ // InternalRBAModel.g:23782:5: ( ( ( rule__Scene__PropertiesAssignment_4_2 ) ) ( ( ( rule__Scene__PropertiesAssignment_4_2 )=> rule__Scene__PropertiesAssignment_4_2 )* ) )
+ // InternalRBAModel.g:23783:6: ( ( rule__Scene__PropertiesAssignment_4_2 ) ) ( ( ( rule__Scene__PropertiesAssignment_4_2 )=> rule__Scene__PropertiesAssignment_4_2 )* )
+ {
+ // InternalRBAModel.g:23783:6: ( ( rule__Scene__PropertiesAssignment_4_2 ) )
+ // InternalRBAModel.g:23784:7: ( rule__Scene__PropertiesAssignment_4_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSceneAccess().getPropertiesAssignment_4_2());
+ }
+ // InternalRBAModel.g:23785:7: ( rule__Scene__PropertiesAssignment_4_2 )
+ // InternalRBAModel.g:23785:8: rule__Scene__PropertiesAssignment_4_2
+ {
+ pushFollow(FOLLOW_172);
+ rule__Scene__PropertiesAssignment_4_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSceneAccess().getPropertiesAssignment_4_2());
+ }
+
+ }
+
+ // InternalRBAModel.g:23788:6: ( ( ( rule__Scene__PropertiesAssignment_4_2 )=> rule__Scene__PropertiesAssignment_4_2 )* )
+ // InternalRBAModel.g:23789:7: ( ( rule__Scene__PropertiesAssignment_4_2 )=> rule__Scene__PropertiesAssignment_4_2 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSceneAccess().getPropertiesAssignment_4_2());
+ }
+ // InternalRBAModel.g:23790:7: ( ( rule__Scene__PropertiesAssignment_4_2 )=> rule__Scene__PropertiesAssignment_4_2 )*
+ loop175:
+ do {
+ int alt175=2;
+ int LA175_0 = input.LA(1);
+
+ if ( (LA175_0==96) ) {
+ int LA175_2 = input.LA(2);
+
+ if ( (LA175_2==RULE_ID) ) {
+ int LA175_3 = input.LA(3);
+
+ if ( (synpred282_InternalRBAModel()) ) {
+ alt175=1;
+ }
+
+
+ }
+
+
+ }
+
+
+ switch (alt175) {
+ case 1 :
+ // InternalRBAModel.g:23790:8: ( rule__Scene__PropertiesAssignment_4_2 )=> rule__Scene__PropertiesAssignment_4_2
+ {
+ pushFollow(FOLLOW_172);
+ rule__Scene__PropertiesAssignment_4_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop175;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSceneAccess().getPropertiesAssignment_4_2());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ if (selected)
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getSceneAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Scene__UnorderedGroup_4__Impl"
+
+
+ // $ANTLR start "rule__Scene__UnorderedGroup_4__0"
+ // InternalRBAModel.g:23804:1: rule__Scene__UnorderedGroup_4__0 : rule__Scene__UnorderedGroup_4__Impl ( rule__Scene__UnorderedGroup_4__1 )? ;
+ public final void rule__Scene__UnorderedGroup_4__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:23808:1: ( rule__Scene__UnorderedGroup_4__Impl ( rule__Scene__UnorderedGroup_4__1 )? )
+ // InternalRBAModel.g:23809:2: rule__Scene__UnorderedGroup_4__Impl ( rule__Scene__UnorderedGroup_4__1 )?
+ {
+ pushFollow(FOLLOW_172);
+ rule__Scene__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // InternalRBAModel.g:23810:2: ( rule__Scene__UnorderedGroup_4__1 )?
+ int alt177=2;
+ int LA177_0 = input.LA(1);
+
+ if ( LA177_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 0) ) {
+ alt177=1;
+ }
+ else if ( LA177_0 == 158 && getUnorderedGroupHelper().canSelect(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 1) ) {
+ alt177=1;
+ }
+ else if ( LA177_0 == 96 && getUnorderedGroupHelper().canSelect(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 2) ) {
+ alt177=1;
+ }
+ switch (alt177) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__Scene__UnorderedGroup_4__1
+ {
+ pushFollow(FOLLOW_2);
+ rule__Scene__UnorderedGroup_4__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Scene__UnorderedGroup_4__0"
+
+
+ // $ANTLR start "rule__Scene__UnorderedGroup_4__1"
+ // InternalRBAModel.g:23816:1: rule__Scene__UnorderedGroup_4__1 : rule__Scene__UnorderedGroup_4__Impl ( rule__Scene__UnorderedGroup_4__2 )? ;
+ public final void rule__Scene__UnorderedGroup_4__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:23820:1: ( rule__Scene__UnorderedGroup_4__Impl ( rule__Scene__UnorderedGroup_4__2 )? )
+ // InternalRBAModel.g:23821:2: rule__Scene__UnorderedGroup_4__Impl ( rule__Scene__UnorderedGroup_4__2 )?
+ {
+ pushFollow(FOLLOW_172);
+ rule__Scene__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // InternalRBAModel.g:23822:2: ( rule__Scene__UnorderedGroup_4__2 )?
+ int alt178=2;
+ int LA178_0 = input.LA(1);
+
+ if ( LA178_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 0) ) {
+ alt178=1;
+ }
+ else if ( LA178_0 == 158 && getUnorderedGroupHelper().canSelect(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 1) ) {
+ alt178=1;
+ }
+ else if ( LA178_0 == 96 && getUnorderedGroupHelper().canSelect(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 2) ) {
+ alt178=1;
+ }
+ switch (alt178) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__Scene__UnorderedGroup_4__2
+ {
+ pushFollow(FOLLOW_2);
+ rule__Scene__UnorderedGroup_4__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Scene__UnorderedGroup_4__1"
+
+
+ // $ANTLR start "rule__Scene__UnorderedGroup_4__2"
+ // InternalRBAModel.g:23828:1: rule__Scene__UnorderedGroup_4__2 : rule__Scene__UnorderedGroup_4__Impl ;
+ public final void rule__Scene__UnorderedGroup_4__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:23832:1: ( rule__Scene__UnorderedGroup_4__Impl )
+ // InternalRBAModel.g:23833:2: rule__Scene__UnorderedGroup_4__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Scene__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Scene__UnorderedGroup_4__2"
+
+
+ // $ANTLR start "rule__VerticalLayout__UnorderedGroup_3"
+ // InternalRBAModel.g:23840:1: rule__VerticalLayout__UnorderedGroup_3 : ( rule__VerticalLayout__UnorderedGroup_3__0 )? ;
+ public final void rule__VerticalLayout__UnorderedGroup_3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+ getUnorderedGroupHelper().enter(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3());
+
+ try {
+ // InternalRBAModel.g:23845:1: ( ( rule__VerticalLayout__UnorderedGroup_3__0 )? )
+ // InternalRBAModel.g:23846:2: ( rule__VerticalLayout__UnorderedGroup_3__0 )?
+ {
+ // InternalRBAModel.g:23846:2: ( rule__VerticalLayout__UnorderedGroup_3__0 )?
+ int alt179=2;
+ int LA179_0 = input.LA(1);
+
+ if ( LA179_0 == 160 && getUnorderedGroupHelper().canSelect(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3(), 0) ) {
+ alt179=1;
+ }
+ else if ( LA179_0 == 161 && getUnorderedGroupHelper().canSelect(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3(), 1) ) {
+ alt179=1;
+ }
+ switch (alt179) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__VerticalLayout__UnorderedGroup_3__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__VerticalLayout__UnorderedGroup_3__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ getUnorderedGroupHelper().leave(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3());
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VerticalLayout__UnorderedGroup_3"
+
+
+ // $ANTLR start "rule__VerticalLayout__UnorderedGroup_3__Impl"
+ // InternalRBAModel.g:23854:1: rule__VerticalLayout__UnorderedGroup_3__Impl : ( ({...}? => ( ( ( rule__VerticalLayout__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__VerticalLayout__Group_3_1__0 ) ) ) ) ) ;
+ public final void rule__VerticalLayout__UnorderedGroup_3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+ boolean selected = false;
+
+ try {
+ // InternalRBAModel.g:23859:1: ( ( ({...}? => ( ( ( rule__VerticalLayout__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__VerticalLayout__Group_3_1__0 ) ) ) ) ) )
+ // InternalRBAModel.g:23860:3: ( ({...}? => ( ( ( rule__VerticalLayout__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__VerticalLayout__Group_3_1__0 ) ) ) ) )
+ {
+ // InternalRBAModel.g:23860:3: ( ({...}? => ( ( ( rule__VerticalLayout__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__VerticalLayout__Group_3_1__0 ) ) ) ) )
+ int alt180=2;
+ int LA180_0 = input.LA(1);
+
+ if ( LA180_0 == 160 && getUnorderedGroupHelper().canSelect(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3(), 0) ) {
+ alt180=1;
+ }
+ else if ( LA180_0 == 161 && getUnorderedGroupHelper().canSelect(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3(), 1) ) {
+ alt180=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 180, 0, input);
+
+ throw nvae;
+ }
+ switch (alt180) {
+ case 1 :
+ // InternalRBAModel.g:23861:3: ({...}? => ( ( ( rule__VerticalLayout__Group_3_0__0 ) ) ) )
+ {
+ // InternalRBAModel.g:23861:3: ({...}? => ( ( ( rule__VerticalLayout__Group_3_0__0 ) ) ) )
+ // InternalRBAModel.g:23862:4: {...}? => ( ( ( rule__VerticalLayout__Group_3_0__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__VerticalLayout__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3(), 0)");
+ }
+ // InternalRBAModel.g:23862:110: ( ( ( rule__VerticalLayout__Group_3_0__0 ) ) )
+ // InternalRBAModel.g:23863:5: ( ( rule__VerticalLayout__Group_3_0__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3(), 0);
+ selected = true;
+ // InternalRBAModel.g:23869:5: ( ( rule__VerticalLayout__Group_3_0__0 ) )
+ // InternalRBAModel.g:23870:6: ( rule__VerticalLayout__Group_3_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVerticalLayoutAccess().getGroup_3_0());
+ }
+ // InternalRBAModel.g:23871:6: ( rule__VerticalLayout__Group_3_0__0 )
+ // InternalRBAModel.g:23871:7: rule__VerticalLayout__Group_3_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__VerticalLayout__Group_3_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVerticalLayoutAccess().getGroup_3_0());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:23876:3: ({...}? => ( ( ( rule__VerticalLayout__Group_3_1__0 ) ) ) )
+ {
+ // InternalRBAModel.g:23876:3: ({...}? => ( ( ( rule__VerticalLayout__Group_3_1__0 ) ) ) )
+ // InternalRBAModel.g:23877:4: {...}? => ( ( ( rule__VerticalLayout__Group_3_1__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__VerticalLayout__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3(), 1)");
+ }
+ // InternalRBAModel.g:23877:110: ( ( ( rule__VerticalLayout__Group_3_1__0 ) ) )
+ // InternalRBAModel.g:23878:5: ( ( rule__VerticalLayout__Group_3_1__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3(), 1);
+ selected = true;
+ // InternalRBAModel.g:23884:5: ( ( rule__VerticalLayout__Group_3_1__0 ) )
+ // InternalRBAModel.g:23885:6: ( rule__VerticalLayout__Group_3_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVerticalLayoutAccess().getGroup_3_1());
+ }
+ // InternalRBAModel.g:23886:6: ( rule__VerticalLayout__Group_3_1__0 )
+ // InternalRBAModel.g:23886:7: rule__VerticalLayout__Group_3_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__VerticalLayout__Group_3_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVerticalLayoutAccess().getGroup_3_1());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ if (selected)
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3());
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VerticalLayout__UnorderedGroup_3__Impl"
+
+
+ // $ANTLR start "rule__VerticalLayout__UnorderedGroup_3__0"
+ // InternalRBAModel.g:23899:1: rule__VerticalLayout__UnorderedGroup_3__0 : rule__VerticalLayout__UnorderedGroup_3__Impl ( rule__VerticalLayout__UnorderedGroup_3__1 )? ;
+ public final void rule__VerticalLayout__UnorderedGroup_3__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:23903:1: ( rule__VerticalLayout__UnorderedGroup_3__Impl ( rule__VerticalLayout__UnorderedGroup_3__1 )? )
+ // InternalRBAModel.g:23904:2: rule__VerticalLayout__UnorderedGroup_3__Impl ( rule__VerticalLayout__UnorderedGroup_3__1 )?
+ {
+ pushFollow(FOLLOW_173);
+ rule__VerticalLayout__UnorderedGroup_3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // InternalRBAModel.g:23905:2: ( rule__VerticalLayout__UnorderedGroup_3__1 )?
+ int alt181=2;
+ int LA181_0 = input.LA(1);
+
+ if ( LA181_0 == 160 && getUnorderedGroupHelper().canSelect(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3(), 0) ) {
+ alt181=1;
+ }
+ else if ( LA181_0 == 161 && getUnorderedGroupHelper().canSelect(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3(), 1) ) {
+ alt181=1;
+ }
+ switch (alt181) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__VerticalLayout__UnorderedGroup_3__1
+ {
+ pushFollow(FOLLOW_2);
+ rule__VerticalLayout__UnorderedGroup_3__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VerticalLayout__UnorderedGroup_3__0"
+
+
+ // $ANTLR start "rule__VerticalLayout__UnorderedGroup_3__1"
+ // InternalRBAModel.g:23911:1: rule__VerticalLayout__UnorderedGroup_3__1 : rule__VerticalLayout__UnorderedGroup_3__Impl ;
+ public final void rule__VerticalLayout__UnorderedGroup_3__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:23915:1: ( rule__VerticalLayout__UnorderedGroup_3__Impl )
+ // InternalRBAModel.g:23916:2: rule__VerticalLayout__UnorderedGroup_3__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__VerticalLayout__UnorderedGroup_3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VerticalLayout__UnorderedGroup_3__1"
+
+
+ // $ANTLR start "rule__HorizontalLayout__UnorderedGroup_3"
+ // InternalRBAModel.g:23923:1: rule__HorizontalLayout__UnorderedGroup_3 : ( rule__HorizontalLayout__UnorderedGroup_3__0 )? ;
+ public final void rule__HorizontalLayout__UnorderedGroup_3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+ getUnorderedGroupHelper().enter(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3());
+
+ try {
+ // InternalRBAModel.g:23928:1: ( ( rule__HorizontalLayout__UnorderedGroup_3__0 )? )
+ // InternalRBAModel.g:23929:2: ( rule__HorizontalLayout__UnorderedGroup_3__0 )?
+ {
+ // InternalRBAModel.g:23929:2: ( rule__HorizontalLayout__UnorderedGroup_3__0 )?
+ int alt182=2;
+ int LA182_0 = input.LA(1);
+
+ if ( LA182_0 == 160 && getUnorderedGroupHelper().canSelect(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3(), 0) ) {
+ alt182=1;
+ }
+ else if ( LA182_0 == 161 && getUnorderedGroupHelper().canSelect(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3(), 1) ) {
+ alt182=1;
+ }
+ switch (alt182) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__HorizontalLayout__UnorderedGroup_3__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__HorizontalLayout__UnorderedGroup_3__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ getUnorderedGroupHelper().leave(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3());
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HorizontalLayout__UnorderedGroup_3"
+
+
+ // $ANTLR start "rule__HorizontalLayout__UnorderedGroup_3__Impl"
+ // InternalRBAModel.g:23937:1: rule__HorizontalLayout__UnorderedGroup_3__Impl : ( ({...}? => ( ( ( rule__HorizontalLayout__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__HorizontalLayout__Group_3_1__0 ) ) ) ) ) ;
+ public final void rule__HorizontalLayout__UnorderedGroup_3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+ boolean selected = false;
+
+ try {
+ // InternalRBAModel.g:23942:1: ( ( ({...}? => ( ( ( rule__HorizontalLayout__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__HorizontalLayout__Group_3_1__0 ) ) ) ) ) )
+ // InternalRBAModel.g:23943:3: ( ({...}? => ( ( ( rule__HorizontalLayout__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__HorizontalLayout__Group_3_1__0 ) ) ) ) )
+ {
+ // InternalRBAModel.g:23943:3: ( ({...}? => ( ( ( rule__HorizontalLayout__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__HorizontalLayout__Group_3_1__0 ) ) ) ) )
+ int alt183=2;
+ int LA183_0 = input.LA(1);
+
+ if ( LA183_0 == 160 && getUnorderedGroupHelper().canSelect(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3(), 0) ) {
+ alt183=1;
+ }
+ else if ( LA183_0 == 161 && getUnorderedGroupHelper().canSelect(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3(), 1) ) {
+ alt183=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 183, 0, input);
+
+ throw nvae;
+ }
+ switch (alt183) {
+ case 1 :
+ // InternalRBAModel.g:23944:3: ({...}? => ( ( ( rule__HorizontalLayout__Group_3_0__0 ) ) ) )
+ {
+ // InternalRBAModel.g:23944:3: ({...}? => ( ( ( rule__HorizontalLayout__Group_3_0__0 ) ) ) )
+ // InternalRBAModel.g:23945:4: {...}? => ( ( ( rule__HorizontalLayout__Group_3_0__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__HorizontalLayout__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3(), 0)");
+ }
+ // InternalRBAModel.g:23945:112: ( ( ( rule__HorizontalLayout__Group_3_0__0 ) ) )
+ // InternalRBAModel.g:23946:5: ( ( rule__HorizontalLayout__Group_3_0__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3(), 0);
+ selected = true;
+ // InternalRBAModel.g:23952:5: ( ( rule__HorizontalLayout__Group_3_0__0 ) )
+ // InternalRBAModel.g:23953:6: ( rule__HorizontalLayout__Group_3_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getHorizontalLayoutAccess().getGroup_3_0());
+ }
+ // InternalRBAModel.g:23954:6: ( rule__HorizontalLayout__Group_3_0__0 )
+ // InternalRBAModel.g:23954:7: rule__HorizontalLayout__Group_3_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__HorizontalLayout__Group_3_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getHorizontalLayoutAccess().getGroup_3_0());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:23959:3: ({...}? => ( ( ( rule__HorizontalLayout__Group_3_1__0 ) ) ) )
+ {
+ // InternalRBAModel.g:23959:3: ({...}? => ( ( ( rule__HorizontalLayout__Group_3_1__0 ) ) ) )
+ // InternalRBAModel.g:23960:4: {...}? => ( ( ( rule__HorizontalLayout__Group_3_1__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__HorizontalLayout__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3(), 1)");
+ }
+ // InternalRBAModel.g:23960:112: ( ( ( rule__HorizontalLayout__Group_3_1__0 ) ) )
+ // InternalRBAModel.g:23961:5: ( ( rule__HorizontalLayout__Group_3_1__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3(), 1);
+ selected = true;
+ // InternalRBAModel.g:23967:5: ( ( rule__HorizontalLayout__Group_3_1__0 ) )
+ // InternalRBAModel.g:23968:6: ( rule__HorizontalLayout__Group_3_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getHorizontalLayoutAccess().getGroup_3_1());
+ }
+ // InternalRBAModel.g:23969:6: ( rule__HorizontalLayout__Group_3_1__0 )
+ // InternalRBAModel.g:23969:7: rule__HorizontalLayout__Group_3_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__HorizontalLayout__Group_3_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getHorizontalLayoutAccess().getGroup_3_1());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ if (selected)
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3());
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HorizontalLayout__UnorderedGroup_3__Impl"
+
+
+ // $ANTLR start "rule__HorizontalLayout__UnorderedGroup_3__0"
+ // InternalRBAModel.g:23982:1: rule__HorizontalLayout__UnorderedGroup_3__0 : rule__HorizontalLayout__UnorderedGroup_3__Impl ( rule__HorizontalLayout__UnorderedGroup_3__1 )? ;
+ public final void rule__HorizontalLayout__UnorderedGroup_3__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:23986:1: ( rule__HorizontalLayout__UnorderedGroup_3__Impl ( rule__HorizontalLayout__UnorderedGroup_3__1 )? )
+ // InternalRBAModel.g:23987:2: rule__HorizontalLayout__UnorderedGroup_3__Impl ( rule__HorizontalLayout__UnorderedGroup_3__1 )?
+ {
+ pushFollow(FOLLOW_173);
+ rule__HorizontalLayout__UnorderedGroup_3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // InternalRBAModel.g:23988:2: ( rule__HorizontalLayout__UnorderedGroup_3__1 )?
+ int alt184=2;
+ int LA184_0 = input.LA(1);
+
+ if ( LA184_0 == 160 && getUnorderedGroupHelper().canSelect(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3(), 0) ) {
+ alt184=1;
+ }
+ else if ( LA184_0 == 161 && getUnorderedGroupHelper().canSelect(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3(), 1) ) {
+ alt184=1;
+ }
+ switch (alt184) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__HorizontalLayout__UnorderedGroup_3__1
+ {
+ pushFollow(FOLLOW_2);
+ rule__HorizontalLayout__UnorderedGroup_3__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HorizontalLayout__UnorderedGroup_3__0"
+
+
+ // $ANTLR start "rule__HorizontalLayout__UnorderedGroup_3__1"
+ // InternalRBAModel.g:23994:1: rule__HorizontalLayout__UnorderedGroup_3__1 : rule__HorizontalLayout__UnorderedGroup_3__Impl ;
+ public final void rule__HorizontalLayout__UnorderedGroup_3__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:23998:1: ( rule__HorizontalLayout__UnorderedGroup_3__Impl )
+ // InternalRBAModel.g:23999:2: rule__HorizontalLayout__UnorderedGroup_3__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__HorizontalLayout__UnorderedGroup_3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HorizontalLayout__UnorderedGroup_3__1"
+
+
+ // $ANTLR start "rule__PositionContainer__UnorderedGroup_3"
+ // InternalRBAModel.g:24006:1: rule__PositionContainer__UnorderedGroup_3 : ( rule__PositionContainer__UnorderedGroup_3__0 )? ;
+ public final void rule__PositionContainer__UnorderedGroup_3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+ getUnorderedGroupHelper().enter(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3());
+
+ try {
+ // InternalRBAModel.g:24011:1: ( ( rule__PositionContainer__UnorderedGroup_3__0 )? )
+ // InternalRBAModel.g:24012:2: ( rule__PositionContainer__UnorderedGroup_3__0 )?
+ {
+ // InternalRBAModel.g:24012:2: ( rule__PositionContainer__UnorderedGroup_3__0 )?
+ int alt185=2;
+ int LA185_0 = input.LA(1);
+
+ if ( LA185_0 == 121 && getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 0) ) {
+ alt185=1;
+ }
+ else if ( LA185_0 == 122 && getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 1) ) {
+ alt185=1;
+ }
+ else if ( LA185_0 == 160 && getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 2) ) {
+ alt185=1;
+ }
+ else if ( LA185_0 == 165 && getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 3) ) {
+ alt185=1;
+ }
+ else if ( LA185_0 == 120 && getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 4) ) {
+ alt185=1;
+ }
+ switch (alt185) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__PositionContainer__UnorderedGroup_3__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__PositionContainer__UnorderedGroup_3__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ getUnorderedGroupHelper().leave(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3());
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PositionContainer__UnorderedGroup_3"
+
+
+ // $ANTLR start "rule__PositionContainer__UnorderedGroup_3__Impl"
+ // InternalRBAModel.g:24020:1: rule__PositionContainer__UnorderedGroup_3__Impl : ( ({...}? => ( ( ( rule__PositionContainer__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PositionContainer__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PositionContainer__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__PositionContainer__Group_3_3__0 ) ) ) ) | ({...}? => ( ( ( ( rule__PositionContainer__OffsetAssignment_3_4 ) ) ( ( ( rule__PositionContainer__OffsetAssignment_3_4 )=> rule__PositionContainer__OffsetAssignment_3_4 )* ) ) ) ) ) ;
+ public final void rule__PositionContainer__UnorderedGroup_3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+ boolean selected = false;
+
+ try {
+ // InternalRBAModel.g:24025:1: ( ( ({...}? => ( ( ( rule__PositionContainer__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PositionContainer__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PositionContainer__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__PositionContainer__Group_3_3__0 ) ) ) ) | ({...}? => ( ( ( ( rule__PositionContainer__OffsetAssignment_3_4 ) ) ( ( ( rule__PositionContainer__OffsetAssignment_3_4 )=> rule__PositionContainer__OffsetAssignment_3_4 )* ) ) ) ) ) )
+ // InternalRBAModel.g:24026:3: ( ({...}? => ( ( ( rule__PositionContainer__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PositionContainer__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PositionContainer__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__PositionContainer__Group_3_3__0 ) ) ) ) | ({...}? => ( ( ( ( rule__PositionContainer__OffsetAssignment_3_4 ) ) ( ( ( rule__PositionContainer__OffsetAssignment_3_4 )=> rule__PositionContainer__OffsetAssignment_3_4 )* ) ) ) ) )
+ {
+ // InternalRBAModel.g:24026:3: ( ({...}? => ( ( ( rule__PositionContainer__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__PositionContainer__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__PositionContainer__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__PositionContainer__Group_3_3__0 ) ) ) ) | ({...}? => ( ( ( ( rule__PositionContainer__OffsetAssignment_3_4 ) ) ( ( ( rule__PositionContainer__OffsetAssignment_3_4 )=> rule__PositionContainer__OffsetAssignment_3_4 )* ) ) ) ) )
+ int alt187=5;
+ int LA187_0 = input.LA(1);
+
+ if ( LA187_0 == 121 && getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 0) ) {
+ alt187=1;
+ }
+ else if ( LA187_0 == 122 && getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 1) ) {
+ alt187=2;
+ }
+ else if ( LA187_0 == 160 && getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 2) ) {
+ alt187=3;
+ }
+ else if ( LA187_0 == 165 && getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 3) ) {
+ alt187=4;
+ }
+ else if ( LA187_0 == 120 && getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 4) ) {
+ alt187=5;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 187, 0, input);
+
+ throw nvae;
+ }
+ switch (alt187) {
+ case 1 :
+ // InternalRBAModel.g:24027:3: ({...}? => ( ( ( rule__PositionContainer__Group_3_0__0 ) ) ) )
+ {
+ // InternalRBAModel.g:24027:3: ({...}? => ( ( ( rule__PositionContainer__Group_3_0__0 ) ) ) )
+ // InternalRBAModel.g:24028:4: {...}? => ( ( ( rule__PositionContainer__Group_3_0__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__PositionContainer__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 0)");
+ }
+ // InternalRBAModel.g:24028:113: ( ( ( rule__PositionContainer__Group_3_0__0 ) ) )
+ // InternalRBAModel.g:24029:5: ( ( rule__PositionContainer__Group_3_0__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 0);
+ selected = true;
+ // InternalRBAModel.g:24035:5: ( ( rule__PositionContainer__Group_3_0__0 ) )
+ // InternalRBAModel.g:24036:6: ( rule__PositionContainer__Group_3_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPositionContainerAccess().getGroup_3_0());
+ }
+ // InternalRBAModel.g:24037:6: ( rule__PositionContainer__Group_3_0__0 )
+ // InternalRBAModel.g:24037:7: rule__PositionContainer__Group_3_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__PositionContainer__Group_3_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPositionContainerAccess().getGroup_3_0());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:24042:3: ({...}? => ( ( ( rule__PositionContainer__Group_3_1__0 ) ) ) )
+ {
+ // InternalRBAModel.g:24042:3: ({...}? => ( ( ( rule__PositionContainer__Group_3_1__0 ) ) ) )
+ // InternalRBAModel.g:24043:4: {...}? => ( ( ( rule__PositionContainer__Group_3_1__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__PositionContainer__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 1)");
+ }
+ // InternalRBAModel.g:24043:113: ( ( ( rule__PositionContainer__Group_3_1__0 ) ) )
+ // InternalRBAModel.g:24044:5: ( ( rule__PositionContainer__Group_3_1__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 1);
+ selected = true;
+ // InternalRBAModel.g:24050:5: ( ( rule__PositionContainer__Group_3_1__0 ) )
+ // InternalRBAModel.g:24051:6: ( rule__PositionContainer__Group_3_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPositionContainerAccess().getGroup_3_1());
+ }
+ // InternalRBAModel.g:24052:6: ( rule__PositionContainer__Group_3_1__0 )
+ // InternalRBAModel.g:24052:7: rule__PositionContainer__Group_3_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__PositionContainer__Group_3_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPositionContainerAccess().getGroup_3_1());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:24057:3: ({...}? => ( ( ( rule__PositionContainer__Group_3_2__0 ) ) ) )
+ {
+ // InternalRBAModel.g:24057:3: ({...}? => ( ( ( rule__PositionContainer__Group_3_2__0 ) ) ) )
+ // InternalRBAModel.g:24058:4: {...}? => ( ( ( rule__PositionContainer__Group_3_2__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 2) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__PositionContainer__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 2)");
+ }
+ // InternalRBAModel.g:24058:113: ( ( ( rule__PositionContainer__Group_3_2__0 ) ) )
+ // InternalRBAModel.g:24059:5: ( ( rule__PositionContainer__Group_3_2__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 2);
+ selected = true;
+ // InternalRBAModel.g:24065:5: ( ( rule__PositionContainer__Group_3_2__0 ) )
+ // InternalRBAModel.g:24066:6: ( rule__PositionContainer__Group_3_2__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPositionContainerAccess().getGroup_3_2());
+ }
+ // InternalRBAModel.g:24067:6: ( rule__PositionContainer__Group_3_2__0 )
+ // InternalRBAModel.g:24067:7: rule__PositionContainer__Group_3_2__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__PositionContainer__Group_3_2__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPositionContainerAccess().getGroup_3_2());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // InternalRBAModel.g:24072:3: ({...}? => ( ( ( rule__PositionContainer__Group_3_3__0 ) ) ) )
+ {
+ // InternalRBAModel.g:24072:3: ({...}? => ( ( ( rule__PositionContainer__Group_3_3__0 ) ) ) )
+ // InternalRBAModel.g:24073:4: {...}? => ( ( ( rule__PositionContainer__Group_3_3__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 3) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__PositionContainer__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 3)");
+ }
+ // InternalRBAModel.g:24073:113: ( ( ( rule__PositionContainer__Group_3_3__0 ) ) )
+ // InternalRBAModel.g:24074:5: ( ( rule__PositionContainer__Group_3_3__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 3);
+ selected = true;
+ // InternalRBAModel.g:24080:5: ( ( rule__PositionContainer__Group_3_3__0 ) )
+ // InternalRBAModel.g:24081:6: ( rule__PositionContainer__Group_3_3__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPositionContainerAccess().getGroup_3_3());
+ }
+ // InternalRBAModel.g:24082:6: ( rule__PositionContainer__Group_3_3__0 )
+ // InternalRBAModel.g:24082:7: rule__PositionContainer__Group_3_3__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__PositionContainer__Group_3_3__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPositionContainerAccess().getGroup_3_3());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 5 :
+ // InternalRBAModel.g:24087:3: ({...}? => ( ( ( ( rule__PositionContainer__OffsetAssignment_3_4 ) ) ( ( ( rule__PositionContainer__OffsetAssignment_3_4 )=> rule__PositionContainer__OffsetAssignment_3_4 )* ) ) ) )
+ {
+ // InternalRBAModel.g:24087:3: ({...}? => ( ( ( ( rule__PositionContainer__OffsetAssignment_3_4 ) ) ( ( ( rule__PositionContainer__OffsetAssignment_3_4 )=> rule__PositionContainer__OffsetAssignment_3_4 )* ) ) ) )
+ // InternalRBAModel.g:24088:4: {...}? => ( ( ( ( rule__PositionContainer__OffsetAssignment_3_4 ) ) ( ( ( rule__PositionContainer__OffsetAssignment_3_4 )=> rule__PositionContainer__OffsetAssignment_3_4 )* ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 4) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__PositionContainer__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 4)");
+ }
+ // InternalRBAModel.g:24088:113: ( ( ( ( rule__PositionContainer__OffsetAssignment_3_4 ) ) ( ( ( rule__PositionContainer__OffsetAssignment_3_4 )=> rule__PositionContainer__OffsetAssignment_3_4 )* ) ) )
+ // InternalRBAModel.g:24089:5: ( ( ( rule__PositionContainer__OffsetAssignment_3_4 ) ) ( ( ( rule__PositionContainer__OffsetAssignment_3_4 )=> rule__PositionContainer__OffsetAssignment_3_4 )* ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 4);
+ selected = true;
+ // InternalRBAModel.g:24095:5: ( ( ( rule__PositionContainer__OffsetAssignment_3_4 ) ) ( ( ( rule__PositionContainer__OffsetAssignment_3_4 )=> rule__PositionContainer__OffsetAssignment_3_4 )* ) )
+ // InternalRBAModel.g:24096:6: ( ( rule__PositionContainer__OffsetAssignment_3_4 ) ) ( ( ( rule__PositionContainer__OffsetAssignment_3_4 )=> rule__PositionContainer__OffsetAssignment_3_4 )* )
+ {
+ // InternalRBAModel.g:24096:6: ( ( rule__PositionContainer__OffsetAssignment_3_4 ) )
+ // InternalRBAModel.g:24097:7: ( rule__PositionContainer__OffsetAssignment_3_4 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPositionContainerAccess().getOffsetAssignment_3_4());
+ }
+ // InternalRBAModel.g:24098:7: ( rule__PositionContainer__OffsetAssignment_3_4 )
+ // InternalRBAModel.g:24098:8: rule__PositionContainer__OffsetAssignment_3_4
+ {
+ pushFollow(FOLLOW_174);
+ rule__PositionContainer__OffsetAssignment_3_4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPositionContainerAccess().getOffsetAssignment_3_4());
+ }
+
+ }
+
+ // InternalRBAModel.g:24101:6: ( ( ( rule__PositionContainer__OffsetAssignment_3_4 )=> rule__PositionContainer__OffsetAssignment_3_4 )* )
+ // InternalRBAModel.g:24102:7: ( ( rule__PositionContainer__OffsetAssignment_3_4 )=> rule__PositionContainer__OffsetAssignment_3_4 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPositionContainerAccess().getOffsetAssignment_3_4());
+ }
+ // InternalRBAModel.g:24103:7: ( ( rule__PositionContainer__OffsetAssignment_3_4 )=> rule__PositionContainer__OffsetAssignment_3_4 )*
+ loop186:
+ do {
+ int alt186=2;
+ alt186 = dfa186.predict(input);
+ switch (alt186) {
+ case 1 :
+ // InternalRBAModel.g:24103:8: ( rule__PositionContainer__OffsetAssignment_3_4 )=> rule__PositionContainer__OffsetAssignment_3_4
+ {
+ pushFollow(FOLLOW_174);
+ rule__PositionContainer__OffsetAssignment_3_4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop186;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPositionContainerAccess().getOffsetAssignment_3_4());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ if (selected)
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3());
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PositionContainer__UnorderedGroup_3__Impl"
+
+
+ // $ANTLR start "rule__PositionContainer__UnorderedGroup_3__0"
+ // InternalRBAModel.g:24117:1: rule__PositionContainer__UnorderedGroup_3__0 : rule__PositionContainer__UnorderedGroup_3__Impl ( rule__PositionContainer__UnorderedGroup_3__1 )? ;
+ public final void rule__PositionContainer__UnorderedGroup_3__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24121:1: ( rule__PositionContainer__UnorderedGroup_3__Impl ( rule__PositionContainer__UnorderedGroup_3__1 )? )
+ // InternalRBAModel.g:24122:2: rule__PositionContainer__UnorderedGroup_3__Impl ( rule__PositionContainer__UnorderedGroup_3__1 )?
+ {
+ pushFollow(FOLLOW_174);
+ rule__PositionContainer__UnorderedGroup_3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // InternalRBAModel.g:24123:2: ( rule__PositionContainer__UnorderedGroup_3__1 )?
+ int alt188=2;
+ int LA188_0 = input.LA(1);
+
+ if ( LA188_0 == 121 && getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 0) ) {
+ alt188=1;
+ }
+ else if ( LA188_0 == 122 && getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 1) ) {
+ alt188=1;
+ }
+ else if ( LA188_0 == 160 && getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 2) ) {
+ alt188=1;
+ }
+ else if ( LA188_0 == 165 && getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 3) ) {
+ alt188=1;
+ }
+ else if ( LA188_0 == 120 && getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 4) ) {
+ alt188=1;
+ }
+ switch (alt188) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__PositionContainer__UnorderedGroup_3__1
+ {
+ pushFollow(FOLLOW_2);
+ rule__PositionContainer__UnorderedGroup_3__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PositionContainer__UnorderedGroup_3__0"
+
+
+ // $ANTLR start "rule__PositionContainer__UnorderedGroup_3__1"
+ // InternalRBAModel.g:24129:1: rule__PositionContainer__UnorderedGroup_3__1 : rule__PositionContainer__UnorderedGroup_3__Impl ( rule__PositionContainer__UnorderedGroup_3__2 )? ;
+ public final void rule__PositionContainer__UnorderedGroup_3__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24133:1: ( rule__PositionContainer__UnorderedGroup_3__Impl ( rule__PositionContainer__UnorderedGroup_3__2 )? )
+ // InternalRBAModel.g:24134:2: rule__PositionContainer__UnorderedGroup_3__Impl ( rule__PositionContainer__UnorderedGroup_3__2 )?
+ {
+ pushFollow(FOLLOW_174);
+ rule__PositionContainer__UnorderedGroup_3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // InternalRBAModel.g:24135:2: ( rule__PositionContainer__UnorderedGroup_3__2 )?
+ int alt189=2;
+ int LA189_0 = input.LA(1);
+
+ if ( LA189_0 == 121 && getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 0) ) {
+ alt189=1;
+ }
+ else if ( LA189_0 == 122 && getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 1) ) {
+ alt189=1;
+ }
+ else if ( LA189_0 == 160 && getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 2) ) {
+ alt189=1;
+ }
+ else if ( LA189_0 == 165 && getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 3) ) {
+ alt189=1;
+ }
+ else if ( LA189_0 == 120 && getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 4) ) {
+ alt189=1;
+ }
+ switch (alt189) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__PositionContainer__UnorderedGroup_3__2
+ {
+ pushFollow(FOLLOW_2);
+ rule__PositionContainer__UnorderedGroup_3__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PositionContainer__UnorderedGroup_3__1"
+
+
+ // $ANTLR start "rule__PositionContainer__UnorderedGroup_3__2"
+ // InternalRBAModel.g:24141:1: rule__PositionContainer__UnorderedGroup_3__2 : rule__PositionContainer__UnorderedGroup_3__Impl ( rule__PositionContainer__UnorderedGroup_3__3 )? ;
+ public final void rule__PositionContainer__UnorderedGroup_3__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24145:1: ( rule__PositionContainer__UnorderedGroup_3__Impl ( rule__PositionContainer__UnorderedGroup_3__3 )? )
+ // InternalRBAModel.g:24146:2: rule__PositionContainer__UnorderedGroup_3__Impl ( rule__PositionContainer__UnorderedGroup_3__3 )?
+ {
+ pushFollow(FOLLOW_174);
+ rule__PositionContainer__UnorderedGroup_3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // InternalRBAModel.g:24147:2: ( rule__PositionContainer__UnorderedGroup_3__3 )?
+ int alt190=2;
+ int LA190_0 = input.LA(1);
+
+ if ( LA190_0 == 121 && getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 0) ) {
+ alt190=1;
+ }
+ else if ( LA190_0 == 122 && getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 1) ) {
+ alt190=1;
+ }
+ else if ( LA190_0 == 160 && getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 2) ) {
+ alt190=1;
+ }
+ else if ( LA190_0 == 165 && getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 3) ) {
+ alt190=1;
+ }
+ else if ( LA190_0 == 120 && getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 4) ) {
+ alt190=1;
+ }
+ switch (alt190) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__PositionContainer__UnorderedGroup_3__3
+ {
+ pushFollow(FOLLOW_2);
+ rule__PositionContainer__UnorderedGroup_3__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PositionContainer__UnorderedGroup_3__2"
+
+
+ // $ANTLR start "rule__PositionContainer__UnorderedGroup_3__3"
+ // InternalRBAModel.g:24153:1: rule__PositionContainer__UnorderedGroup_3__3 : rule__PositionContainer__UnorderedGroup_3__Impl ( rule__PositionContainer__UnorderedGroup_3__4 )? ;
+ public final void rule__PositionContainer__UnorderedGroup_3__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24157:1: ( rule__PositionContainer__UnorderedGroup_3__Impl ( rule__PositionContainer__UnorderedGroup_3__4 )? )
+ // InternalRBAModel.g:24158:2: rule__PositionContainer__UnorderedGroup_3__Impl ( rule__PositionContainer__UnorderedGroup_3__4 )?
+ {
+ pushFollow(FOLLOW_174);
+ rule__PositionContainer__UnorderedGroup_3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // InternalRBAModel.g:24159:2: ( rule__PositionContainer__UnorderedGroup_3__4 )?
+ int alt191=2;
+ int LA191_0 = input.LA(1);
+
+ if ( LA191_0 == 121 && getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 0) ) {
+ alt191=1;
+ }
+ else if ( LA191_0 == 122 && getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 1) ) {
+ alt191=1;
+ }
+ else if ( LA191_0 == 160 && getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 2) ) {
+ alt191=1;
+ }
+ else if ( LA191_0 == 165 && getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 3) ) {
+ alt191=1;
+ }
+ else if ( LA191_0 == 120 && getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 4) ) {
+ alt191=1;
+ }
+ switch (alt191) {
+ case 1 :
+ // InternalRBAModel.g:0:0: rule__PositionContainer__UnorderedGroup_3__4
+ {
+ pushFollow(FOLLOW_2);
+ rule__PositionContainer__UnorderedGroup_3__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PositionContainer__UnorderedGroup_3__3"
+
+
+ // $ANTLR start "rule__PositionContainer__UnorderedGroup_3__4"
+ // InternalRBAModel.g:24165:1: rule__PositionContainer__UnorderedGroup_3__4 : rule__PositionContainer__UnorderedGroup_3__Impl ;
+ public final void rule__PositionContainer__UnorderedGroup_3__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24169:1: ( rule__PositionContainer__UnorderedGroup_3__Impl )
+ // InternalRBAModel.g:24170:2: rule__PositionContainer__UnorderedGroup_3__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__PositionContainer__UnorderedGroup_3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PositionContainer__UnorderedGroup_3__4"
+
+
+ // $ANTLR start "rule__TopLevel__ProjectAssignment_2"
+ // InternalRBAModel.g:24177:1: rule__TopLevel__ProjectAssignment_2 : ( ruleProject ) ;
+ public final void rule__TopLevel__ProjectAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24181:1: ( ( ruleProject ) )
+ // InternalRBAModel.g:24182:2: ( ruleProject )
+ {
+ // InternalRBAModel.g:24182:2: ( ruleProject )
+ // InternalRBAModel.g:24183:3: ruleProject
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getTopLevelAccess().getProjectProjectParserRuleCall_2_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleProject();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getTopLevelAccess().getProjectProjectParserRuleCall_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__TopLevel__ProjectAssignment_2"
+
+
+ // $ANTLR start "rule__TopLevel__ImportsAssignment_3"
+ // InternalRBAModel.g:24192:1: rule__TopLevel__ImportsAssignment_3 : ( ruleImport ) ;
+ public final void rule__TopLevel__ImportsAssignment_3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24196:1: ( ( ruleImport ) )
+ // InternalRBAModel.g:24197:2: ( ruleImport )
+ {
+ // InternalRBAModel.g:24197:2: ( ruleImport )
+ // InternalRBAModel.g:24198:3: ruleImport
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getTopLevelAccess().getImportsImportParserRuleCall_3_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleImport();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getTopLevelAccess().getImportsImportParserRuleCall_3_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__TopLevel__ImportsAssignment_3"
+
+
+ // $ANTLR start "rule__TopLevel__PackagesAssignment_4"
+ // InternalRBAModel.g:24207:1: rule__TopLevel__PackagesAssignment_4 : ( rulePackage ) ;
+ public final void rule__TopLevel__PackagesAssignment_4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24211:1: ( ( rulePackage ) )
+ // InternalRBAModel.g:24212:2: ( rulePackage )
+ {
+ // InternalRBAModel.g:24212:2: ( rulePackage )
+ // InternalRBAModel.g:24213:3: rulePackage
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getTopLevelAccess().getPackagesPackageParserRuleCall_4_0());
+ }
+ pushFollow(FOLLOW_2);
+ rulePackage();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getTopLevelAccess().getPackagesPackageParserRuleCall_4_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__TopLevel__PackagesAssignment_4"
+
+
+ // $ANTLR start "rule__Import__ImportedNamespaceAssignment_1"
+ // InternalRBAModel.g:24222:1: rule__Import__ImportedNamespaceAssignment_1 : ( ruleQualifiedNameWithWildcard ) ;
+ public final void rule__Import__ImportedNamespaceAssignment_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24226:1: ( ( ruleQualifiedNameWithWildcard ) )
+ // InternalRBAModel.g:24227:2: ( ruleQualifiedNameWithWildcard )
+ {
+ // InternalRBAModel.g:24227:2: ( ruleQualifiedNameWithWildcard )
+ // InternalRBAModel.g:24228:3: ruleQualifiedNameWithWildcard
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getImportAccess().getImportedNamespaceQualifiedNameWithWildcardParserRuleCall_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleQualifiedNameWithWildcard();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getImportAccess().getImportedNamespaceQualifiedNameWithWildcardParserRuleCall_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Import__ImportedNamespaceAssignment_1"
+
+
+ // $ANTLR start "rule__AbstractProperty__NameAssignment_1"
+ // InternalRBAModel.g:24237:1: rule__AbstractProperty__NameAssignment_1 : ( ruleValidID ) ;
+ public final void rule__AbstractProperty__NameAssignment_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24241:1: ( ( ruleValidID ) )
+ // InternalRBAModel.g:24242:2: ( ruleValidID )
+ {
+ // InternalRBAModel.g:24242:2: ( ruleValidID )
+ // InternalRBAModel.g:24243:3: ruleValidID
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAbstractPropertyAccess().getNameValidIDParserRuleCall_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleValidID();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAbstractPropertyAccess().getNameValidIDParserRuleCall_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AbstractProperty__NameAssignment_1"
+
+
+ // $ANTLR start "rule__AbstractProperty__ValueAssignment_2_1"
+ // InternalRBAModel.g:24252:1: rule__AbstractProperty__ValueAssignment_2_1 : ( ruleIntegerValue ) ;
+ public final void rule__AbstractProperty__ValueAssignment_2_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24256:1: ( ( ruleIntegerValue ) )
+ // InternalRBAModel.g:24257:2: ( ruleIntegerValue )
+ {
+ // InternalRBAModel.g:24257:2: ( ruleIntegerValue )
+ // InternalRBAModel.g:24258:3: ruleIntegerValue
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAbstractPropertyAccess().getValueIntegerValueParserRuleCall_2_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleIntegerValue();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAbstractPropertyAccess().getValueIntegerValueParserRuleCall_2_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AbstractProperty__ValueAssignment_2_1"
+
+
+ // $ANTLR start "rule__Tag__NameAssignment_0_0_0_2"
+ // InternalRBAModel.g:24267:1: rule__Tag__NameAssignment_0_0_0_2 : ( ruleQualifiedName ) ;
+ public final void rule__Tag__NameAssignment_0_0_0_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24271:1: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:24272:2: ( ruleQualifiedName )
+ {
+ // InternalRBAModel.g:24272:2: ( ruleQualifiedName )
+ // InternalRBAModel.g:24273:3: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getTagAccess().getNameQualifiedNameParserRuleCall_0_0_0_2_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getTagAccess().getNameQualifiedNameParserRuleCall_0_0_0_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Tag__NameAssignment_0_0_0_2"
+
+
+ // $ANTLR start "rule__Tag__NameAssignment_0_0_1_2"
+ // InternalRBAModel.g:24282:1: rule__Tag__NameAssignment_0_0_1_2 : ( ruleQualifiedName ) ;
+ public final void rule__Tag__NameAssignment_0_0_1_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24286:1: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:24287:2: ( ruleQualifiedName )
+ {
+ // InternalRBAModel.g:24287:2: ( ruleQualifiedName )
+ // InternalRBAModel.g:24288:3: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getTagAccess().getNameQualifiedNameParserRuleCall_0_0_1_2_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getTagAccess().getNameQualifiedNameParserRuleCall_0_0_1_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Tag__NameAssignment_0_0_1_2"
+
+
+ // $ANTLR start "rule__Tag__ValuesAssignment_1_1_0"
+ // InternalRBAModel.g:24297:1: rule__Tag__ValuesAssignment_1_1_0 : ( ruleEString ) ;
+ public final void rule__Tag__ValuesAssignment_1_1_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24301:1: ( ( ruleEString ) )
+ // InternalRBAModel.g:24302:2: ( ruleEString )
+ {
+ // InternalRBAModel.g:24302:2: ( ruleEString )
+ // InternalRBAModel.g:24303:3: ruleEString
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getTagAccess().getValuesEStringParserRuleCall_1_1_0_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleEString();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getTagAccess().getValuesEStringParserRuleCall_1_1_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Tag__ValuesAssignment_1_1_0"
+
+
+ // $ANTLR start "rule__Tag__ValuesAssignment_1_1_1_1"
+ // InternalRBAModel.g:24312:1: rule__Tag__ValuesAssignment_1_1_1_1 : ( ruleEString ) ;
+ public final void rule__Tag__ValuesAssignment_1_1_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24316:1: ( ( ruleEString ) )
+ // InternalRBAModel.g:24317:2: ( ruleEString )
+ {
+ // InternalRBAModel.g:24317:2: ( ruleEString )
+ // InternalRBAModel.g:24318:3: ruleEString
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getTagAccess().getValuesEStringParserRuleCall_1_1_1_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleEString();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getTagAccess().getValuesEStringParserRuleCall_1_1_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Tag__ValuesAssignment_1_1_1_1"
+
+
+ // $ANTLR start "rule__Package__NameAssignment_2"
+ // InternalRBAModel.g:24327:1: rule__Package__NameAssignment_2 : ( ruleQualifiedName ) ;
+ public final void rule__Package__NameAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24331:1: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:24332:2: ( ruleQualifiedName )
+ {
+ // InternalRBAModel.g:24332:2: ( ruleQualifiedName )
+ // InternalRBAModel.g:24333:3: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPackageAccess().getNameQualifiedNameParserRuleCall_2_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPackageAccess().getNameQualifiedNameParserRuleCall_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Package__NameAssignment_2"
+
+
+ // $ANTLR start "rule__Package__DescriptionAssignment_4_0_1"
+ // InternalRBAModel.g:24342:1: rule__Package__DescriptionAssignment_4_0_1 : ( ruleEString ) ;
+ public final void rule__Package__DescriptionAssignment_4_0_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24346:1: ( ( ruleEString ) )
+ // InternalRBAModel.g:24347:2: ( ruleEString )
+ {
+ // InternalRBAModel.g:24347:2: ( ruleEString )
+ // InternalRBAModel.g:24348:3: ruleEString
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPackageAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleEString();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPackageAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Package__DescriptionAssignment_4_0_1"
+
+
+ // $ANTLR start "rule__Package__PackagableelementAssignment_4_1"
+ // InternalRBAModel.g:24357:1: rule__Package__PackagableelementAssignment_4_1 : ( rulePackagableElement ) ;
+ public final void rule__Package__PackagableelementAssignment_4_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24361:1: ( ( rulePackagableElement ) )
+ // InternalRBAModel.g:24362:2: ( rulePackagableElement )
+ {
+ // InternalRBAModel.g:24362:2: ( rulePackagableElement )
+ // InternalRBAModel.g:24363:3: rulePackagableElement
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPackageAccess().getPackagableelementPackagableElementParserRuleCall_4_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ rulePackagableElement();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPackageAccess().getPackagableelementPackagableElementParserRuleCall_4_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Package__PackagableelementAssignment_4_1"
+
+
+ // $ANTLR start "rule__Stereotype__TargetModelNameAssignment_3"
+ // InternalRBAModel.g:24372:1: rule__Stereotype__TargetModelNameAssignment_3 : ( ruleStereotypableElementName ) ;
+ public final void rule__Stereotype__TargetModelNameAssignment_3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24376:1: ( ( ruleStereotypableElementName ) )
+ // InternalRBAModel.g:24377:2: ( ruleStereotypableElementName )
+ {
+ // InternalRBAModel.g:24377:2: ( ruleStereotypableElementName )
+ // InternalRBAModel.g:24378:3: ruleStereotypableElementName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getStereotypeAccess().getTargetModelNameStereotypableElementNameParserRuleCall_3_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleStereotypableElementName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getStereotypeAccess().getTargetModelNameStereotypableElementNameParserRuleCall_3_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Stereotype__TargetModelNameAssignment_3"
+
+
+ // $ANTLR start "rule__Stereotype__NameAssignment_5"
+ // InternalRBAModel.g:24387:1: rule__Stereotype__NameAssignment_5 : ( ruleQualifiedName ) ;
+ public final void rule__Stereotype__NameAssignment_5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24391:1: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:24392:2: ( ruleQualifiedName )
+ {
+ // InternalRBAModel.g:24392:2: ( ruleQualifiedName )
+ // InternalRBAModel.g:24393:3: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getStereotypeAccess().getNameQualifiedNameParserRuleCall_5_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getStereotypeAccess().getNameQualifiedNameParserRuleCall_5_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Stereotype__NameAssignment_5"
+
+
+ // $ANTLR start "rule__Stereotype__VariablesAssignment_7_0"
+ // InternalRBAModel.g:24402:1: rule__Stereotype__VariablesAssignment_7_0 : ( ruleVariable ) ;
+ public final void rule__Stereotype__VariablesAssignment_7_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24406:1: ( ( ruleVariable ) )
+ // InternalRBAModel.g:24407:2: ( ruleVariable )
+ {
+ // InternalRBAModel.g:24407:2: ( ruleVariable )
+ // InternalRBAModel.g:24408:3: ruleVariable
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getStereotypeAccess().getVariablesVariableParserRuleCall_7_0_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleVariable();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getStereotypeAccess().getVariablesVariableParserRuleCall_7_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Stereotype__VariablesAssignment_7_0"
+
+
+ // $ANTLR start "rule__Stereotype__VariablesAssignment_7_1_1"
+ // InternalRBAModel.g:24417:1: rule__Stereotype__VariablesAssignment_7_1_1 : ( ruleVariable ) ;
+ public final void rule__Stereotype__VariablesAssignment_7_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24421:1: ( ( ruleVariable ) )
+ // InternalRBAModel.g:24422:2: ( ruleVariable )
+ {
+ // InternalRBAModel.g:24422:2: ( ruleVariable )
+ // InternalRBAModel.g:24423:3: ruleVariable
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getStereotypeAccess().getVariablesVariableParserRuleCall_7_1_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleVariable();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getStereotypeAccess().getVariablesVariableParserRuleCall_7_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Stereotype__VariablesAssignment_7_1_1"
+
+
+ // $ANTLR start "rule__Stereotype__BodyTextAssignment_9"
+ // InternalRBAModel.g:24432:1: rule__Stereotype__BodyTextAssignment_9 : ( ruleRichString ) ;
+ public final void rule__Stereotype__BodyTextAssignment_9() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24436:1: ( ( ruleRichString ) )
+ // InternalRBAModel.g:24437:2: ( ruleRichString )
+ {
+ // InternalRBAModel.g:24437:2: ( ruleRichString )
+ // InternalRBAModel.g:24438:3: ruleRichString
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getStereotypeAccess().getBodyTextRichStringParserRuleCall_9_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleRichString();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getStereotypeAccess().getBodyTextRichStringParserRuleCall_9_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Stereotype__BodyTextAssignment_9"
+
+
+ // $ANTLR start "rule__Display__NameAssignment_2"
+ // InternalRBAModel.g:24447:1: rule__Display__NameAssignment_2 : ( ruleQualifiedName ) ;
+ public final void rule__Display__NameAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24451:1: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:24452:2: ( ruleQualifiedName )
+ {
+ // InternalRBAModel.g:24452:2: ( ruleQualifiedName )
+ // InternalRBAModel.g:24453:3: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getDisplayAccess().getNameQualifiedNameParserRuleCall_2_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getDisplayAccess().getNameQualifiedNameParserRuleCall_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Display__NameAssignment_2"
+
+
+ // $ANTLR start "rule__Display__DescriptionAssignment_4_0_1"
+ // InternalRBAModel.g:24462:1: rule__Display__DescriptionAssignment_4_0_1 : ( ruleEString ) ;
+ public final void rule__Display__DescriptionAssignment_4_0_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24466:1: ( ( ruleEString ) )
+ // InternalRBAModel.g:24467:2: ( ruleEString )
+ {
+ // InternalRBAModel.g:24467:2: ( ruleEString )
+ // InternalRBAModel.g:24468:3: ruleEString
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getDisplayAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleEString();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getDisplayAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Display__DescriptionAssignment_4_0_1"
+
+
+ // $ANTLR start "rule__Display__SizeAssignment_4_1"
+ // InternalRBAModel.g:24477:1: rule__Display__SizeAssignment_4_1 : ( ruleSizeIdentifier ) ;
+ public final void rule__Display__SizeAssignment_4_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24481:1: ( ( ruleSizeIdentifier ) )
+ // InternalRBAModel.g:24482:2: ( ruleSizeIdentifier )
+ {
+ // InternalRBAModel.g:24482:2: ( ruleSizeIdentifier )
+ // InternalRBAModel.g:24483:3: ruleSizeIdentifier
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getDisplayAccess().getSizeSizeIdentifierParserRuleCall_4_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleSizeIdentifier();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getDisplayAccess().getSizeSizeIdentifierParserRuleCall_4_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Display__SizeAssignment_4_1"
+
+
+ // $ANTLR start "rule__Display__RootAssignment_4_2"
+ // InternalRBAModel.g:24492:1: rule__Display__RootAssignment_4_2 : ( ruleCompositeArea ) ;
+ public final void rule__Display__RootAssignment_4_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24496:1: ( ( ruleCompositeArea ) )
+ // InternalRBAModel.g:24497:2: ( ruleCompositeArea )
+ {
+ // InternalRBAModel.g:24497:2: ( ruleCompositeArea )
+ // InternalRBAModel.g:24498:3: ruleCompositeArea
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getDisplayAccess().getRootCompositeAreaParserRuleCall_4_2_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleCompositeArea();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getDisplayAccess().getRootCompositeAreaParserRuleCall_4_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Display__RootAssignment_4_2"
+
+
+ // $ANTLR start "rule__Constraint__NameAssignment_2"
+ // InternalRBAModel.g:24507:1: rule__Constraint__NameAssignment_2 : ( ruleQualifiedName ) ;
+ public final void rule__Constraint__NameAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24511:1: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:24512:2: ( ruleQualifiedName )
+ {
+ // InternalRBAModel.g:24512:2: ( ruleQualifiedName )
+ // InternalRBAModel.g:24513:3: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getConstraintAccess().getNameQualifiedNameParserRuleCall_2_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getConstraintAccess().getNameQualifiedNameParserRuleCall_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Constraint__NameAssignment_2"
+
+
+ // $ANTLR start "rule__Constraint__DescriptionAssignment_4_0_1"
+ // InternalRBAModel.g:24522:1: rule__Constraint__DescriptionAssignment_4_0_1 : ( ruleEString ) ;
+ public final void rule__Constraint__DescriptionAssignment_4_0_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24526:1: ( ( ruleEString ) )
+ // InternalRBAModel.g:24527:2: ( ruleEString )
+ {
+ // InternalRBAModel.g:24527:2: ( ruleEString )
+ // InternalRBAModel.g:24528:3: ruleEString
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getConstraintAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleEString();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getConstraintAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Constraint__DescriptionAssignment_4_0_1"
+
+
+ // $ANTLR start "rule__Constraint__RuntimeAssignment_4_1_1"
+ // InternalRBAModel.g:24537:1: rule__Constraint__RuntimeAssignment_4_1_1 : ( ruleEBoolean ) ;
+ public final void rule__Constraint__RuntimeAssignment_4_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24541:1: ( ( ruleEBoolean ) )
+ // InternalRBAModel.g:24542:2: ( ruleEBoolean )
+ {
+ // InternalRBAModel.g:24542:2: ( ruleEBoolean )
+ // InternalRBAModel.g:24543:3: ruleEBoolean
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getConstraintAccess().getRuntimeEBooleanParserRuleCall_4_1_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleEBoolean();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getConstraintAccess().getRuntimeEBooleanParserRuleCall_4_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Constraint__RuntimeAssignment_4_1_1"
+
+
+ // $ANTLR start "rule__Constraint__ExpressionAssignment_4_2"
+ // InternalRBAModel.g:24552:1: rule__Constraint__ExpressionAssignment_4_2 : ( ruleComplexExpression ) ;
+ public final void rule__Constraint__ExpressionAssignment_4_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24556:1: ( ( ruleComplexExpression ) )
+ // InternalRBAModel.g:24557:2: ( ruleComplexExpression )
+ {
+ // InternalRBAModel.g:24557:2: ( ruleComplexExpression )
+ // InternalRBAModel.g:24558:3: ruleComplexExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getConstraintAccess().getExpressionComplexExpressionParserRuleCall_4_2_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleComplexExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getConstraintAccess().getExpressionComplexExpressionParserRuleCall_4_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Constraint__ExpressionAssignment_4_2"
+
+
+ // $ANTLR start "rule__ViewContent__NameAssignment_2"
+ // InternalRBAModel.g:24567:1: rule__ViewContent__NameAssignment_2 : ( ruleQualifiedName ) ;
+ public final void rule__ViewContent__NameAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24571:1: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:24572:2: ( ruleQualifiedName )
+ {
+ // InternalRBAModel.g:24572:2: ( ruleQualifiedName )
+ // InternalRBAModel.g:24573:3: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentAccess().getNameQualifiedNameParserRuleCall_2_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentAccess().getNameQualifiedNameParserRuleCall_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__NameAssignment_2"
+
+
+ // $ANTLR start "rule__ViewContent__DescriptionAssignment_4_0_1"
+ // InternalRBAModel.g:24582:1: rule__ViewContent__DescriptionAssignment_4_0_1 : ( ruleEString ) ;
+ public final void rule__ViewContent__DescriptionAssignment_4_0_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24586:1: ( ( ruleEString ) )
+ // InternalRBAModel.g:24587:2: ( ruleEString )
+ {
+ // InternalRBAModel.g:24587:2: ( ruleEString )
+ // InternalRBAModel.g:24588:3: ruleEString
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleEString();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__DescriptionAssignment_4_0_1"
+
+
+ // $ANTLR start "rule__ViewContent__LoserTypeAssignment_4_1_1"
+ // InternalRBAModel.g:24597:1: rule__ViewContent__LoserTypeAssignment_4_1_1 : ( ruleLoserType ) ;
+ public final void rule__ViewContent__LoserTypeAssignment_4_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24601:1: ( ( ruleLoserType ) )
+ // InternalRBAModel.g:24602:2: ( ruleLoserType )
+ {
+ // InternalRBAModel.g:24602:2: ( ruleLoserType )
+ // InternalRBAModel.g:24603:3: ruleLoserType
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentAccess().getLoserTypeLoserTypeEnumRuleCall_4_1_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleLoserType();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentAccess().getLoserTypeLoserTypeEnumRuleCall_4_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__LoserTypeAssignment_4_1_1"
+
+
+ // $ANTLR start "rule__ViewContent__AllocatableAssignment_4_2_2_0"
+ // InternalRBAModel.g:24612:1: rule__ViewContent__AllocatableAssignment_4_2_2_0 : ( ( ruleQualifiedName ) ) ;
+ public final void rule__ViewContent__AllocatableAssignment_4_2_2_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24616:1: ( ( ( ruleQualifiedName ) ) )
+ // InternalRBAModel.g:24617:2: ( ( ruleQualifiedName ) )
+ {
+ // InternalRBAModel.g:24617:2: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:24618:3: ( ruleQualifiedName )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentAccess().getAllocatableAbstractAllocatableCrossReference_4_2_2_0_0());
+ }
+ // InternalRBAModel.g:24619:3: ( ruleQualifiedName )
+ // InternalRBAModel.g:24620:4: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentAccess().getAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_0_0_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentAccess().getAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_0_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentAccess().getAllocatableAbstractAllocatableCrossReference_4_2_2_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__AllocatableAssignment_4_2_2_0"
+
+
+ // $ANTLR start "rule__ViewContent__AllocatableAssignment_4_2_2_1_1"
+ // InternalRBAModel.g:24631:1: rule__ViewContent__AllocatableAssignment_4_2_2_1_1 : ( ( ruleQualifiedName ) ) ;
+ public final void rule__ViewContent__AllocatableAssignment_4_2_2_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24635:1: ( ( ( ruleQualifiedName ) ) )
+ // InternalRBAModel.g:24636:2: ( ( ruleQualifiedName ) )
+ {
+ // InternalRBAModel.g:24636:2: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:24637:3: ( ruleQualifiedName )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentAccess().getAllocatableAbstractAllocatableCrossReference_4_2_2_1_1_0());
+ }
+ // InternalRBAModel.g:24638:3: ( ruleQualifiedName )
+ // InternalRBAModel.g:24639:4: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentAccess().getAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_1_1_0_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentAccess().getAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_1_1_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentAccess().getAllocatableAbstractAllocatableCrossReference_4_2_2_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__AllocatableAssignment_4_2_2_1_1"
+
+
+ // $ANTLR start "rule__ViewContent__StatesAssignment_4_3"
+ // InternalRBAModel.g:24650:1: rule__ViewContent__StatesAssignment_4_3 : ( ruleViewContentState ) ;
+ public final void rule__ViewContent__StatesAssignment_4_3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24654:1: ( ( ruleViewContentState ) )
+ // InternalRBAModel.g:24655:2: ( ruleViewContentState )
+ {
+ // InternalRBAModel.g:24655:2: ( ruleViewContentState )
+ // InternalRBAModel.g:24656:3: ruleViewContentState
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentAccess().getStatesViewContentStateParserRuleCall_4_3_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleViewContentState();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentAccess().getStatesViewContentStateParserRuleCall_4_3_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__StatesAssignment_4_3"
+
+
+ // $ANTLR start "rule__ViewContent__SizeAssignment_4_4"
+ // InternalRBAModel.g:24665:1: rule__ViewContent__SizeAssignment_4_4 : ( ruleSizeIdentifier ) ;
+ public final void rule__ViewContent__SizeAssignment_4_4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24669:1: ( ( ruleSizeIdentifier ) )
+ // InternalRBAModel.g:24670:2: ( ruleSizeIdentifier )
+ {
+ // InternalRBAModel.g:24670:2: ( ruleSizeIdentifier )
+ // InternalRBAModel.g:24671:3: ruleSizeIdentifier
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentAccess().getSizeSizeIdentifierParserRuleCall_4_4_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleSizeIdentifier();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentAccess().getSizeSizeIdentifierParserRuleCall_4_4_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__SizeAssignment_4_4"
+
+
+ // $ANTLR start "rule__ViewContent__TagsAssignment_4_5"
+ // InternalRBAModel.g:24680:1: rule__ViewContent__TagsAssignment_4_5 : ( ruleTag ) ;
+ public final void rule__ViewContent__TagsAssignment_4_5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24684:1: ( ( ruleTag ) )
+ // InternalRBAModel.g:24685:2: ( ruleTag )
+ {
+ // InternalRBAModel.g:24685:2: ( ruleTag )
+ // InternalRBAModel.g:24686:3: ruleTag
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentAccess().getTagsTagParserRuleCall_4_5_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleTag();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentAccess().getTagsTagParserRuleCall_4_5_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContent__TagsAssignment_4_5"
+
+
+ // $ANTLR start "rule__SoundContent__NameAssignment_2"
+ // InternalRBAModel.g:24695:1: rule__SoundContent__NameAssignment_2 : ( ruleQualifiedName ) ;
+ public final void rule__SoundContent__NameAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24699:1: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:24700:2: ( ruleQualifiedName )
+ {
+ // InternalRBAModel.g:24700:2: ( ruleQualifiedName )
+ // InternalRBAModel.g:24701:3: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentAccess().getNameQualifiedNameParserRuleCall_2_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentAccess().getNameQualifiedNameParserRuleCall_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__NameAssignment_2"
+
+
+ // $ANTLR start "rule__SoundContent__DescriptionAssignment_4_0_1"
+ // InternalRBAModel.g:24710:1: rule__SoundContent__DescriptionAssignment_4_0_1 : ( ruleEString ) ;
+ public final void rule__SoundContent__DescriptionAssignment_4_0_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24714:1: ( ( ruleEString ) )
+ // InternalRBAModel.g:24715:2: ( ruleEString )
+ {
+ // InternalRBAModel.g:24715:2: ( ruleEString )
+ // InternalRBAModel.g:24716:3: ruleEString
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleEString();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__DescriptionAssignment_4_0_1"
+
+
+ // $ANTLR start "rule__SoundContent__LoserTypeAssignment_4_1_1"
+ // InternalRBAModel.g:24725:1: rule__SoundContent__LoserTypeAssignment_4_1_1 : ( ruleLoserType ) ;
+ public final void rule__SoundContent__LoserTypeAssignment_4_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24729:1: ( ( ruleLoserType ) )
+ // InternalRBAModel.g:24730:2: ( ruleLoserType )
+ {
+ // InternalRBAModel.g:24730:2: ( ruleLoserType )
+ // InternalRBAModel.g:24731:3: ruleLoserType
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentAccess().getLoserTypeLoserTypeEnumRuleCall_4_1_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleLoserType();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentAccess().getLoserTypeLoserTypeEnumRuleCall_4_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__LoserTypeAssignment_4_1_1"
+
+
+ // $ANTLR start "rule__SoundContent__AllocatableAssignment_4_2_2_0"
+ // InternalRBAModel.g:24740:1: rule__SoundContent__AllocatableAssignment_4_2_2_0 : ( ( ruleQualifiedName ) ) ;
+ public final void rule__SoundContent__AllocatableAssignment_4_2_2_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24744:1: ( ( ( ruleQualifiedName ) ) )
+ // InternalRBAModel.g:24745:2: ( ( ruleQualifiedName ) )
+ {
+ // InternalRBAModel.g:24745:2: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:24746:3: ( ruleQualifiedName )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentAccess().getAllocatableAbstractAllocatableCrossReference_4_2_2_0_0());
+ }
+ // InternalRBAModel.g:24747:3: ( ruleQualifiedName )
+ // InternalRBAModel.g:24748:4: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentAccess().getAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_0_0_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentAccess().getAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_0_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentAccess().getAllocatableAbstractAllocatableCrossReference_4_2_2_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__AllocatableAssignment_4_2_2_0"
+
+
+ // $ANTLR start "rule__SoundContent__AllocatableAssignment_4_2_2_1_1"
+ // InternalRBAModel.g:24759:1: rule__SoundContent__AllocatableAssignment_4_2_2_1_1 : ( ( ruleQualifiedName ) ) ;
+ public final void rule__SoundContent__AllocatableAssignment_4_2_2_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24763:1: ( ( ( ruleQualifiedName ) ) )
+ // InternalRBAModel.g:24764:2: ( ( ruleQualifiedName ) )
+ {
+ // InternalRBAModel.g:24764:2: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:24765:3: ( ruleQualifiedName )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentAccess().getAllocatableAbstractAllocatableCrossReference_4_2_2_1_1_0());
+ }
+ // InternalRBAModel.g:24766:3: ( ruleQualifiedName )
+ // InternalRBAModel.g:24767:4: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentAccess().getAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_1_1_0_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentAccess().getAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_1_1_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentAccess().getAllocatableAbstractAllocatableCrossReference_4_2_2_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__AllocatableAssignment_4_2_2_1_1"
+
+
+ // $ANTLR start "rule__SoundContent__StatesAssignment_4_3"
+ // InternalRBAModel.g:24778:1: rule__SoundContent__StatesAssignment_4_3 : ( ruleSoundContentState ) ;
+ public final void rule__SoundContent__StatesAssignment_4_3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24782:1: ( ( ruleSoundContentState ) )
+ // InternalRBAModel.g:24783:2: ( ruleSoundContentState )
+ {
+ // InternalRBAModel.g:24783:2: ( ruleSoundContentState )
+ // InternalRBAModel.g:24784:3: ruleSoundContentState
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentAccess().getStatesSoundContentStateParserRuleCall_4_3_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleSoundContentState();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentAccess().getStatesSoundContentStateParserRuleCall_4_3_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__StatesAssignment_4_3"
+
+
+ // $ANTLR start "rule__SoundContent__TagsAssignment_4_4"
+ // InternalRBAModel.g:24793:1: rule__SoundContent__TagsAssignment_4_4 : ( ruleTag ) ;
+ public final void rule__SoundContent__TagsAssignment_4_4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24797:1: ( ( ruleTag ) )
+ // InternalRBAModel.g:24798:2: ( ruleTag )
+ {
+ // InternalRBAModel.g:24798:2: ( ruleTag )
+ // InternalRBAModel.g:24799:3: ruleTag
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentAccess().getTagsTagParserRuleCall_4_4_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleTag();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentAccess().getTagsTagParserRuleCall_4_4_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContent__TagsAssignment_4_4"
+
+
+ // $ANTLR start "rule__Size__NameAssignment_2"
+ // InternalRBAModel.g:24808:1: rule__Size__NameAssignment_2 : ( ruleQualifiedName ) ;
+ public final void rule__Size__NameAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24812:1: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:24813:2: ( ruleQualifiedName )
+ {
+ // InternalRBAModel.g:24813:2: ( ruleQualifiedName )
+ // InternalRBAModel.g:24814:3: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSizeAccess().getNameQualifiedNameParserRuleCall_2_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSizeAccess().getNameQualifiedNameParserRuleCall_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Size__NameAssignment_2"
+
+
+ // $ANTLR start "rule__Size__DescriptionAssignment_4_0_1"
+ // InternalRBAModel.g:24823:1: rule__Size__DescriptionAssignment_4_0_1 : ( ruleEString ) ;
+ public final void rule__Size__DescriptionAssignment_4_0_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24827:1: ( ( ruleEString ) )
+ // InternalRBAModel.g:24828:2: ( ruleEString )
+ {
+ // InternalRBAModel.g:24828:2: ( ruleEString )
+ // InternalRBAModel.g:24829:3: ruleEString
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSizeAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleEString();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSizeAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Size__DescriptionAssignment_4_0_1"
+
+
+ // $ANTLR start "rule__Size__WidthAssignment_4_1_1"
+ // InternalRBAModel.g:24838:1: rule__Size__WidthAssignment_4_1_1 : ( ruleEInt ) ;
+ public final void rule__Size__WidthAssignment_4_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24842:1: ( ( ruleEInt ) )
+ // InternalRBAModel.g:24843:2: ( ruleEInt )
+ {
+ // InternalRBAModel.g:24843:2: ( ruleEInt )
+ // InternalRBAModel.g:24844:3: ruleEInt
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSizeAccess().getWidthEIntParserRuleCall_4_1_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleEInt();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSizeAccess().getWidthEIntParserRuleCall_4_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Size__WidthAssignment_4_1_1"
+
+
+ // $ANTLR start "rule__Size__HeightAssignment_4_2_1"
+ // InternalRBAModel.g:24853:1: rule__Size__HeightAssignment_4_2_1 : ( ruleEInt ) ;
+ public final void rule__Size__HeightAssignment_4_2_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24857:1: ( ( ruleEInt ) )
+ // InternalRBAModel.g:24858:2: ( ruleEInt )
+ {
+ // InternalRBAModel.g:24858:2: ( ruleEInt )
+ // InternalRBAModel.g:24859:3: ruleEInt
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSizeAccess().getHeightEIntParserRuleCall_4_2_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleEInt();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSizeAccess().getHeightEIntParserRuleCall_4_2_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Size__HeightAssignment_4_2_1"
+
+
+ // $ANTLR start "rule__SizeReference__SizeAssignment_2"
+ // InternalRBAModel.g:24868:1: rule__SizeReference__SizeAssignment_2 : ( ( ruleQualifiedName ) ) ;
+ public final void rule__SizeReference__SizeAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24872:1: ( ( ( ruleQualifiedName ) ) )
+ // InternalRBAModel.g:24873:2: ( ( ruleQualifiedName ) )
+ {
+ // InternalRBAModel.g:24873:2: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:24874:3: ( ruleQualifiedName )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSizeReferenceAccess().getSizeSizeCrossReference_2_0());
+ }
+ // InternalRBAModel.g:24875:3: ( ruleQualifiedName )
+ // InternalRBAModel.g:24876:4: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSizeReferenceAccess().getSizeSizeQualifiedNameParserRuleCall_2_0_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSizeReferenceAccess().getSizeSizeQualifiedNameParserRuleCall_2_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSizeReferenceAccess().getSizeSizeCrossReference_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SizeReference__SizeAssignment_2"
+
+
+ // $ANTLR start "rule__Offset__DescriptionAssignment_3_0_1"
+ // InternalRBAModel.g:24887:1: rule__Offset__DescriptionAssignment_3_0_1 : ( ruleEString ) ;
+ public final void rule__Offset__DescriptionAssignment_3_0_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24891:1: ( ( ruleEString ) )
+ // InternalRBAModel.g:24892:2: ( ruleEString )
+ {
+ // InternalRBAModel.g:24892:2: ( ruleEString )
+ // InternalRBAModel.g:24893:3: ruleEString
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOffsetAccess().getDescriptionEStringParserRuleCall_3_0_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleEString();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOffsetAccess().getDescriptionEStringParserRuleCall_3_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Offset__DescriptionAssignment_3_0_1"
+
+
+ // $ANTLR start "rule__Offset__XAssignment_3_1_1"
+ // InternalRBAModel.g:24902:1: rule__Offset__XAssignment_3_1_1 : ( ruleEInt ) ;
+ public final void rule__Offset__XAssignment_3_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24906:1: ( ( ruleEInt ) )
+ // InternalRBAModel.g:24907:2: ( ruleEInt )
+ {
+ // InternalRBAModel.g:24907:2: ( ruleEInt )
+ // InternalRBAModel.g:24908:3: ruleEInt
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOffsetAccess().getXEIntParserRuleCall_3_1_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleEInt();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOffsetAccess().getXEIntParserRuleCall_3_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Offset__XAssignment_3_1_1"
+
+
+ // $ANTLR start "rule__Offset__YAssignment_3_2_1"
+ // InternalRBAModel.g:24917:1: rule__Offset__YAssignment_3_2_1 : ( ruleEInt ) ;
+ public final void rule__Offset__YAssignment_3_2_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24921:1: ( ( ruleEInt ) )
+ // InternalRBAModel.g:24922:2: ( ruleEInt )
+ {
+ // InternalRBAModel.g:24922:2: ( ruleEInt )
+ // InternalRBAModel.g:24923:3: ruleEInt
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOffsetAccess().getYEIntParserRuleCall_3_2_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleEInt();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOffsetAccess().getYEIntParserRuleCall_3_2_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Offset__YAssignment_3_2_1"
+
+
+ // $ANTLR start "rule__Offset__SizeAssignment_3_3"
+ // InternalRBAModel.g:24932:1: rule__Offset__SizeAssignment_3_3 : ( ruleSizeReference ) ;
+ public final void rule__Offset__SizeAssignment_3_3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24936:1: ( ( ruleSizeReference ) )
+ // InternalRBAModel.g:24937:2: ( ruleSizeReference )
+ {
+ // InternalRBAModel.g:24937:2: ( ruleSizeReference )
+ // InternalRBAModel.g:24938:3: ruleSizeReference
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOffsetAccess().getSizeSizeReferenceParserRuleCall_3_3_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleSizeReference();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOffsetAccess().getSizeSizeReferenceParserRuleCall_3_3_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Offset__SizeAssignment_3_3"
+
+
+ // $ANTLR start "rule__AreaSet__NameAssignment_2"
+ // InternalRBAModel.g:24947:1: rule__AreaSet__NameAssignment_2 : ( ruleQualifiedName ) ;
+ public final void rule__AreaSet__NameAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24951:1: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:24952:2: ( ruleQualifiedName )
+ {
+ // InternalRBAModel.g:24952:2: ( ruleQualifiedName )
+ // InternalRBAModel.g:24953:3: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaSetAccess().getNameQualifiedNameParserRuleCall_2_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaSetAccess().getNameQualifiedNameParserRuleCall_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AreaSet__NameAssignment_2"
+
+
+ // $ANTLR start "rule__AreaSet__DescriptionAssignment_4_0_1"
+ // InternalRBAModel.g:24962:1: rule__AreaSet__DescriptionAssignment_4_0_1 : ( ruleEString ) ;
+ public final void rule__AreaSet__DescriptionAssignment_4_0_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24966:1: ( ( ruleEString ) )
+ // InternalRBAModel.g:24967:2: ( ruleEString )
+ {
+ // InternalRBAModel.g:24967:2: ( ruleEString )
+ // InternalRBAModel.g:24968:3: ruleEString
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaSetAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleEString();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaSetAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AreaSet__DescriptionAssignment_4_0_1"
+
+
+ // $ANTLR start "rule__AreaSet__TargetAssignment_4_1_2_0"
+ // InternalRBAModel.g:24977:1: rule__AreaSet__TargetAssignment_4_1_2_0 : ( ( ruleQualifiedName ) ) ;
+ public final void rule__AreaSet__TargetAssignment_4_1_2_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:24981:1: ( ( ( ruleQualifiedName ) ) )
+ // InternalRBAModel.g:24982:2: ( ( ruleQualifiedName ) )
+ {
+ // InternalRBAModel.g:24982:2: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:24983:3: ( ruleQualifiedName )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaSetAccess().getTargetAbstractAllocatableCrossReference_4_1_2_0_0());
+ }
+ // InternalRBAModel.g:24984:3: ( ruleQualifiedName )
+ // InternalRBAModel.g:24985:4: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaSetAccess().getTargetAbstractAllocatableQualifiedNameParserRuleCall_4_1_2_0_0_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaSetAccess().getTargetAbstractAllocatableQualifiedNameParserRuleCall_4_1_2_0_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaSetAccess().getTargetAbstractAllocatableCrossReference_4_1_2_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AreaSet__TargetAssignment_4_1_2_0"
+
+
+ // $ANTLR start "rule__AreaSet__TargetAssignment_4_1_2_1_1"
+ // InternalRBAModel.g:24996:1: rule__AreaSet__TargetAssignment_4_1_2_1_1 : ( ( ruleQualifiedName ) ) ;
+ public final void rule__AreaSet__TargetAssignment_4_1_2_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25000:1: ( ( ( ruleQualifiedName ) ) )
+ // InternalRBAModel.g:25001:2: ( ( ruleQualifiedName ) )
+ {
+ // InternalRBAModel.g:25001:2: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:25002:3: ( ruleQualifiedName )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaSetAccess().getTargetAbstractAllocatableCrossReference_4_1_2_1_1_0());
+ }
+ // InternalRBAModel.g:25003:3: ( ruleQualifiedName )
+ // InternalRBAModel.g:25004:4: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaSetAccess().getTargetAbstractAllocatableQualifiedNameParserRuleCall_4_1_2_1_1_0_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaSetAccess().getTargetAbstractAllocatableQualifiedNameParserRuleCall_4_1_2_1_1_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaSetAccess().getTargetAbstractAllocatableCrossReference_4_1_2_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__AreaSet__TargetAssignment_4_1_2_1_1"
+
+
+ // $ANTLR start "rule__ZoneSet__NameAssignment_2"
+ // InternalRBAModel.g:25015:1: rule__ZoneSet__NameAssignment_2 : ( ruleQualifiedName ) ;
+ public final void rule__ZoneSet__NameAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25019:1: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:25020:2: ( ruleQualifiedName )
+ {
+ // InternalRBAModel.g:25020:2: ( ruleQualifiedName )
+ // InternalRBAModel.g:25021:3: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneSetAccess().getNameQualifiedNameParserRuleCall_2_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneSetAccess().getNameQualifiedNameParserRuleCall_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ZoneSet__NameAssignment_2"
+
+
+ // $ANTLR start "rule__ZoneSet__DescriptionAssignment_4_0_1"
+ // InternalRBAModel.g:25030:1: rule__ZoneSet__DescriptionAssignment_4_0_1 : ( ruleEString ) ;
+ public final void rule__ZoneSet__DescriptionAssignment_4_0_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25034:1: ( ( ruleEString ) )
+ // InternalRBAModel.g:25035:2: ( ruleEString )
+ {
+ // InternalRBAModel.g:25035:2: ( ruleEString )
+ // InternalRBAModel.g:25036:3: ruleEString
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneSetAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleEString();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneSetAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ZoneSet__DescriptionAssignment_4_0_1"
+
+
+ // $ANTLR start "rule__ZoneSet__TargetAssignment_4_1_2_0"
+ // InternalRBAModel.g:25045:1: rule__ZoneSet__TargetAssignment_4_1_2_0 : ( ( ruleQualifiedName ) ) ;
+ public final void rule__ZoneSet__TargetAssignment_4_1_2_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25049:1: ( ( ( ruleQualifiedName ) ) )
+ // InternalRBAModel.g:25050:2: ( ( ruleQualifiedName ) )
+ {
+ // InternalRBAModel.g:25050:2: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:25051:3: ( ruleQualifiedName )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneSetAccess().getTargetAbstractAllocatableCrossReference_4_1_2_0_0());
+ }
+ // InternalRBAModel.g:25052:3: ( ruleQualifiedName )
+ // InternalRBAModel.g:25053:4: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneSetAccess().getTargetAbstractAllocatableQualifiedNameParserRuleCall_4_1_2_0_0_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneSetAccess().getTargetAbstractAllocatableQualifiedNameParserRuleCall_4_1_2_0_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneSetAccess().getTargetAbstractAllocatableCrossReference_4_1_2_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ZoneSet__TargetAssignment_4_1_2_0"
+
+
+ // $ANTLR start "rule__ZoneSet__TargetAssignment_4_1_2_1_1"
+ // InternalRBAModel.g:25064:1: rule__ZoneSet__TargetAssignment_4_1_2_1_1 : ( ( ruleQualifiedName ) ) ;
+ public final void rule__ZoneSet__TargetAssignment_4_1_2_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25068:1: ( ( ( ruleQualifiedName ) ) )
+ // InternalRBAModel.g:25069:2: ( ( ruleQualifiedName ) )
+ {
+ // InternalRBAModel.g:25069:2: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:25070:3: ( ruleQualifiedName )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneSetAccess().getTargetAbstractAllocatableCrossReference_4_1_2_1_1_0());
+ }
+ // InternalRBAModel.g:25071:3: ( ruleQualifiedName )
+ // InternalRBAModel.g:25072:4: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneSetAccess().getTargetAbstractAllocatableQualifiedNameParserRuleCall_4_1_2_1_1_0_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneSetAccess().getTargetAbstractAllocatableQualifiedNameParserRuleCall_4_1_2_1_1_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneSetAccess().getTargetAbstractAllocatableCrossReference_4_1_2_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ZoneSet__TargetAssignment_4_1_2_1_1"
+
+
+ // $ANTLR start "rule__CompositeArea__NameAssignment_2"
+ // InternalRBAModel.g:25083:1: rule__CompositeArea__NameAssignment_2 : ( ruleQualifiedName ) ;
+ public final void rule__CompositeArea__NameAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25087:1: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:25088:2: ( ruleQualifiedName )
+ {
+ // InternalRBAModel.g:25088:2: ( ruleQualifiedName )
+ // InternalRBAModel.g:25089:3: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCompositeAreaAccess().getNameQualifiedNameParserRuleCall_2_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCompositeAreaAccess().getNameQualifiedNameParserRuleCall_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompositeArea__NameAssignment_2"
+
+
+ // $ANTLR start "rule__CompositeArea__DescriptionAssignment_4_0_1"
+ // InternalRBAModel.g:25098:1: rule__CompositeArea__DescriptionAssignment_4_0_1 : ( ruleEString ) ;
+ public final void rule__CompositeArea__DescriptionAssignment_4_0_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25102:1: ( ( ruleEString ) )
+ // InternalRBAModel.g:25103:2: ( ruleEString )
+ {
+ // InternalRBAModel.g:25103:2: ( ruleEString )
+ // InternalRBAModel.g:25104:3: ruleEString
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCompositeAreaAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleEString();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCompositeAreaAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompositeArea__DescriptionAssignment_4_0_1"
+
+
+ // $ANTLR start "rule__CompositeArea__LayoutAssignment_4_1_1"
+ // InternalRBAModel.g:25113:1: rule__CompositeArea__LayoutAssignment_4_1_1 : ( ruleLayoutManager ) ;
+ public final void rule__CompositeArea__LayoutAssignment_4_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25117:1: ( ( ruleLayoutManager ) )
+ // InternalRBAModel.g:25118:2: ( ruleLayoutManager )
+ {
+ // InternalRBAModel.g:25118:2: ( ruleLayoutManager )
+ // InternalRBAModel.g:25119:3: ruleLayoutManager
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCompositeAreaAccess().getLayoutLayoutManagerParserRuleCall_4_1_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleLayoutManager();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCompositeAreaAccess().getLayoutLayoutManagerParserRuleCall_4_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompositeArea__LayoutAssignment_4_1_1"
+
+
+ // $ANTLR start "rule__Area__NameAssignment_2"
+ // InternalRBAModel.g:25128:1: rule__Area__NameAssignment_2 : ( ruleQualifiedName ) ;
+ public final void rule__Area__NameAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25132:1: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:25133:2: ( ruleQualifiedName )
+ {
+ // InternalRBAModel.g:25133:2: ( ruleQualifiedName )
+ // InternalRBAModel.g:25134:3: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaAccess().getNameQualifiedNameParserRuleCall_2_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaAccess().getNameQualifiedNameParserRuleCall_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Area__NameAssignment_2"
+
+
+ // $ANTLR start "rule__Area__DescriptionAssignment_4_0_1"
+ // InternalRBAModel.g:25143:1: rule__Area__DescriptionAssignment_4_0_1 : ( ruleEString ) ;
+ public final void rule__Area__DescriptionAssignment_4_0_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25147:1: ( ( ruleEString ) )
+ // InternalRBAModel.g:25148:2: ( ruleEString )
+ {
+ // InternalRBAModel.g:25148:2: ( ruleEString )
+ // InternalRBAModel.g:25149:3: ruleEString
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleEString();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Area__DescriptionAssignment_4_0_1"
+
+
+ // $ANTLR start "rule__Area__ArbitrationPolicyAssignment_4_1_1"
+ // InternalRBAModel.g:25158:1: rule__Area__ArbitrationPolicyAssignment_4_1_1 : ( ruleArbitrationPolicy ) ;
+ public final void rule__Area__ArbitrationPolicyAssignment_4_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25162:1: ( ( ruleArbitrationPolicy ) )
+ // InternalRBAModel.g:25163:2: ( ruleArbitrationPolicy )
+ {
+ // InternalRBAModel.g:25163:2: ( ruleArbitrationPolicy )
+ // InternalRBAModel.g:25164:3: ruleArbitrationPolicy
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaAccess().getArbitrationPolicyArbitrationPolicyEnumRuleCall_4_1_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleArbitrationPolicy();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaAccess().getArbitrationPolicyArbitrationPolicyEnumRuleCall_4_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Area__ArbitrationPolicyAssignment_4_1_1"
+
+
+ // $ANTLR start "rule__Area__SizeAssignment_4_2"
+ // InternalRBAModel.g:25173:1: rule__Area__SizeAssignment_4_2 : ( ruleSizeIdentifier ) ;
+ public final void rule__Area__SizeAssignment_4_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25177:1: ( ( ruleSizeIdentifier ) )
+ // InternalRBAModel.g:25178:2: ( ruleSizeIdentifier )
+ {
+ // InternalRBAModel.g:25178:2: ( ruleSizeIdentifier )
+ // InternalRBAModel.g:25179:3: ruleSizeIdentifier
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaAccess().getSizeSizeIdentifierParserRuleCall_4_2_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleSizeIdentifier();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaAccess().getSizeSizeIdentifierParserRuleCall_4_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Area__SizeAssignment_4_2"
+
+
+ // $ANTLR start "rule__Area__VisibilityAssignment_4_3_1"
+ // InternalRBAModel.g:25188:1: rule__Area__VisibilityAssignment_4_3_1 : ( ruleVExpression ) ;
+ public final void rule__Area__VisibilityAssignment_4_3_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25192:1: ( ( ruleVExpression ) )
+ // InternalRBAModel.g:25193:2: ( ruleVExpression )
+ {
+ // InternalRBAModel.g:25193:2: ( ruleVExpression )
+ // InternalRBAModel.g:25194:3: ruleVExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaAccess().getVisibilityVExpressionParserRuleCall_4_3_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleVExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaAccess().getVisibilityVExpressionParserRuleCall_4_3_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Area__VisibilityAssignment_4_3_1"
+
+
+ // $ANTLR start "rule__Area__ZorderAssignment_4_4_1"
+ // InternalRBAModel.g:25203:1: rule__Area__ZorderAssignment_4_4_1 : ( ruleVExpression ) ;
+ public final void rule__Area__ZorderAssignment_4_4_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25207:1: ( ( ruleVExpression ) )
+ // InternalRBAModel.g:25208:2: ( ruleVExpression )
+ {
+ // InternalRBAModel.g:25208:2: ( ruleVExpression )
+ // InternalRBAModel.g:25209:3: ruleVExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaAccess().getZorderVExpressionParserRuleCall_4_4_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleVExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaAccess().getZorderVExpressionParserRuleCall_4_4_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Area__ZorderAssignment_4_4_1"
+
+
+ // $ANTLR start "rule__Area__TagsAssignment_4_5"
+ // InternalRBAModel.g:25218:1: rule__Area__TagsAssignment_4_5 : ( ruleTag ) ;
+ public final void rule__Area__TagsAssignment_4_5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25222:1: ( ( ruleTag ) )
+ // InternalRBAModel.g:25223:2: ( ruleTag )
+ {
+ // InternalRBAModel.g:25223:2: ( ruleTag )
+ // InternalRBAModel.g:25224:3: ruleTag
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaAccess().getTagsTagParserRuleCall_4_5_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleTag();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getAreaAccess().getTagsTagParserRuleCall_4_5_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Area__TagsAssignment_4_5"
+
+
+ // $ANTLR start "rule__Zone__NameAssignment_2"
+ // InternalRBAModel.g:25233:1: rule__Zone__NameAssignment_2 : ( ruleQualifiedName ) ;
+ public final void rule__Zone__NameAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25237:1: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:25238:2: ( ruleQualifiedName )
+ {
+ // InternalRBAModel.g:25238:2: ( ruleQualifiedName )
+ // InternalRBAModel.g:25239:3: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneAccess().getNameQualifiedNameParserRuleCall_2_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneAccess().getNameQualifiedNameParserRuleCall_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Zone__NameAssignment_2"
+
+
+ // $ANTLR start "rule__Zone__DescriptionAssignment_4_0_1"
+ // InternalRBAModel.g:25248:1: rule__Zone__DescriptionAssignment_4_0_1 : ( ruleEString ) ;
+ public final void rule__Zone__DescriptionAssignment_4_0_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25252:1: ( ( ruleEString ) )
+ // InternalRBAModel.g:25253:2: ( ruleEString )
+ {
+ // InternalRBAModel.g:25253:2: ( ruleEString )
+ // InternalRBAModel.g:25254:3: ruleEString
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleEString();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Zone__DescriptionAssignment_4_0_1"
+
+
+ // $ANTLR start "rule__Zone__ArbitrationPolicyAssignment_4_1_1"
+ // InternalRBAModel.g:25263:1: rule__Zone__ArbitrationPolicyAssignment_4_1_1 : ( ruleArbitrationPolicy ) ;
+ public final void rule__Zone__ArbitrationPolicyAssignment_4_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25267:1: ( ( ruleArbitrationPolicy ) )
+ // InternalRBAModel.g:25268:2: ( ruleArbitrationPolicy )
+ {
+ // InternalRBAModel.g:25268:2: ( ruleArbitrationPolicy )
+ // InternalRBAModel.g:25269:3: ruleArbitrationPolicy
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneAccess().getArbitrationPolicyArbitrationPolicyEnumRuleCall_4_1_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleArbitrationPolicy();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneAccess().getArbitrationPolicyArbitrationPolicyEnumRuleCall_4_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Zone__ArbitrationPolicyAssignment_4_1_1"
+
+
+ // $ANTLR start "rule__Zone__VisibilityAssignment_4_2_1"
+ // InternalRBAModel.g:25278:1: rule__Zone__VisibilityAssignment_4_2_1 : ( ruleVExpression ) ;
+ public final void rule__Zone__VisibilityAssignment_4_2_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25282:1: ( ( ruleVExpression ) )
+ // InternalRBAModel.g:25283:2: ( ruleVExpression )
+ {
+ // InternalRBAModel.g:25283:2: ( ruleVExpression )
+ // InternalRBAModel.g:25284:3: ruleVExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneAccess().getVisibilityVExpressionParserRuleCall_4_2_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleVExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneAccess().getVisibilityVExpressionParserRuleCall_4_2_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Zone__VisibilityAssignment_4_2_1"
+
+
+ // $ANTLR start "rule__Zone__AttenuateAssignment_4_3_1"
+ // InternalRBAModel.g:25293:1: rule__Zone__AttenuateAssignment_4_3_1 : ( ruleIntegerValue ) ;
+ public final void rule__Zone__AttenuateAssignment_4_3_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25297:1: ( ( ruleIntegerValue ) )
+ // InternalRBAModel.g:25298:2: ( ruleIntegerValue )
+ {
+ // InternalRBAModel.g:25298:2: ( ruleIntegerValue )
+ // InternalRBAModel.g:25299:3: ruleIntegerValue
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneAccess().getAttenuateIntegerValueParserRuleCall_4_3_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleIntegerValue();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneAccess().getAttenuateIntegerValueParserRuleCall_4_3_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Zone__AttenuateAssignment_4_3_1"
+
+
+ // $ANTLR start "rule__Zone__TagsAssignment_4_4"
+ // InternalRBAModel.g:25308:1: rule__Zone__TagsAssignment_4_4 : ( ruleTag ) ;
+ public final void rule__Zone__TagsAssignment_4_4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25312:1: ( ( ruleTag ) )
+ // InternalRBAModel.g:25313:2: ( ruleTag )
+ {
+ // InternalRBAModel.g:25313:2: ( ruleTag )
+ // InternalRBAModel.g:25314:3: ruleTag
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneAccess().getTagsTagParserRuleCall_4_4_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleTag();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getZoneAccess().getTagsTagParserRuleCall_4_4_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Zone__TagsAssignment_4_4"
+
+
+ // $ANTLR start "rule__ViewContentState__NameAssignment_2"
+ // InternalRBAModel.g:25323:1: rule__ViewContentState__NameAssignment_2 : ( ruleQualifiedName ) ;
+ public final void rule__ViewContentState__NameAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25327:1: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:25328:2: ( ruleQualifiedName )
+ {
+ // InternalRBAModel.g:25328:2: ( ruleQualifiedName )
+ // InternalRBAModel.g:25329:3: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentStateAccess().getNameQualifiedNameParserRuleCall_2_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentStateAccess().getNameQualifiedNameParserRuleCall_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentState__NameAssignment_2"
+
+
+ // $ANTLR start "rule__ViewContentState__DescriptionAssignment_4_0_1"
+ // InternalRBAModel.g:25338:1: rule__ViewContentState__DescriptionAssignment_4_0_1 : ( ruleEString ) ;
+ public final void rule__ViewContentState__DescriptionAssignment_4_0_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25342:1: ( ( ruleEString ) )
+ // InternalRBAModel.g:25343:2: ( ruleEString )
+ {
+ // InternalRBAModel.g:25343:2: ( ruleEString )
+ // InternalRBAModel.g:25344:3: ruleEString
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentStateAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleEString();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentStateAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentState__DescriptionAssignment_4_0_1"
+
+
+ // $ANTLR start "rule__ViewContentState__ValueAssignment_4_1_1"
+ // InternalRBAModel.g:25353:1: rule__ViewContentState__ValueAssignment_4_1_1 : ( ruleVExpression ) ;
+ public final void rule__ViewContentState__ValueAssignment_4_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25357:1: ( ( ruleVExpression ) )
+ // InternalRBAModel.g:25358:2: ( ruleVExpression )
+ {
+ // InternalRBAModel.g:25358:2: ( ruleVExpression )
+ // InternalRBAModel.g:25359:3: ruleVExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentStateAccess().getValueVExpressionParserRuleCall_4_1_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleVExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentStateAccess().getValueVExpressionParserRuleCall_4_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentState__ValueAssignment_4_1_1"
+
+
+ // $ANTLR start "rule__SoundContentState__NameAssignment_2"
+ // InternalRBAModel.g:25368:1: rule__SoundContentState__NameAssignment_2 : ( ruleQualifiedName ) ;
+ public final void rule__SoundContentState__NameAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25372:1: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:25373:2: ( ruleQualifiedName )
+ {
+ // InternalRBAModel.g:25373:2: ( ruleQualifiedName )
+ // InternalRBAModel.g:25374:3: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentStateAccess().getNameQualifiedNameParserRuleCall_2_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentStateAccess().getNameQualifiedNameParserRuleCall_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentState__NameAssignment_2"
+
+
+ // $ANTLR start "rule__SoundContentState__DescriptionAssignment_4_0_1"
+ // InternalRBAModel.g:25383:1: rule__SoundContentState__DescriptionAssignment_4_0_1 : ( ruleEString ) ;
+ public final void rule__SoundContentState__DescriptionAssignment_4_0_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25387:1: ( ( ruleEString ) )
+ // InternalRBAModel.g:25388:2: ( ruleEString )
+ {
+ // InternalRBAModel.g:25388:2: ( ruleEString )
+ // InternalRBAModel.g:25389:3: ruleEString
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentStateAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleEString();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentStateAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentState__DescriptionAssignment_4_0_1"
+
+
+ // $ANTLR start "rule__SoundContentState__ValueAssignment_4_1_1"
+ // InternalRBAModel.g:25398:1: rule__SoundContentState__ValueAssignment_4_1_1 : ( ruleVExpression ) ;
+ public final void rule__SoundContentState__ValueAssignment_4_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25402:1: ( ( ruleVExpression ) )
+ // InternalRBAModel.g:25403:2: ( ruleVExpression )
+ {
+ // InternalRBAModel.g:25403:2: ( ruleVExpression )
+ // InternalRBAModel.g:25404:3: ruleVExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentStateAccess().getValueVExpressionParserRuleCall_4_1_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleVExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentStateAccess().getValueVExpressionParserRuleCall_4_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentState__ValueAssignment_4_1_1"
+
+
+ // $ANTLR start "rule__Project__DummyNameAssignment_2"
+ // InternalRBAModel.g:25413:1: rule__Project__DummyNameAssignment_2 : ( ruleQualifiedName ) ;
+ public final void rule__Project__DummyNameAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25417:1: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:25418:2: ( ruleQualifiedName )
+ {
+ // InternalRBAModel.g:25418:2: ( ruleQualifiedName )
+ // InternalRBAModel.g:25419:3: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getProjectAccess().getDummyNameQualifiedNameParserRuleCall_2_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getProjectAccess().getDummyNameQualifiedNameParserRuleCall_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Project__DummyNameAssignment_2"
+
+
+ // $ANTLR start "rule__Project__VersionAssignment_5"
+ // InternalRBAModel.g:25428:1: rule__Project__VersionAssignment_5 : ( ruleEString ) ;
+ public final void rule__Project__VersionAssignment_5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25432:1: ( ( ruleEString ) )
+ // InternalRBAModel.g:25433:2: ( ruleEString )
+ {
+ // InternalRBAModel.g:25433:2: ( ruleEString )
+ // InternalRBAModel.g:25434:3: ruleEString
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getProjectAccess().getVersionEStringParserRuleCall_5_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleEString();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getProjectAccess().getVersionEStringParserRuleCall_5_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Project__VersionAssignment_5"
+
+
+ // $ANTLR start "rule__VPlusOperator__OperandAssignment_1_1"
+ // InternalRBAModel.g:25443:1: rule__VPlusOperator__OperandAssignment_1_1 : ( ruleVComparisonAnd ) ;
+ public final void rule__VPlusOperator__OperandAssignment_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25447:1: ( ( ruleVComparisonAnd ) )
+ // InternalRBAModel.g:25448:2: ( ruleVComparisonAnd )
+ {
+ // InternalRBAModel.g:25448:2: ( ruleVComparisonAnd )
+ // InternalRBAModel.g:25449:3: ruleVComparisonAnd
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVPlusOperatorAccess().getOperandVComparisonAndParserRuleCall_1_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleVComparisonAnd();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVPlusOperatorAccess().getOperandVComparisonAndParserRuleCall_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VPlusOperator__OperandAssignment_1_1"
+
+
+ // $ANTLR start "rule__VComparisonAnd__OperandAssignment_1_1"
+ // InternalRBAModel.g:25458:1: rule__VComparisonAnd__OperandAssignment_1_1 : ( ruleVRelationalExpression ) ;
+ public final void rule__VComparisonAnd__OperandAssignment_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25462:1: ( ( ruleVRelationalExpression ) )
+ // InternalRBAModel.g:25463:2: ( ruleVRelationalExpression )
+ {
+ // InternalRBAModel.g:25463:2: ( ruleVRelationalExpression )
+ // InternalRBAModel.g:25464:3: ruleVRelationalExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVComparisonAndAccess().getOperandVRelationalExpressionParserRuleCall_1_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleVRelationalExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVComparisonAndAccess().getOperandVRelationalExpressionParserRuleCall_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VComparisonAnd__OperandAssignment_1_1"
+
+
+ // $ANTLR start "rule__VRelationalExpression__OperandAssignment_1_2"
+ // InternalRBAModel.g:25473:1: rule__VRelationalExpression__OperandAssignment_1_2 : ( ruleVPrimaryExpression ) ;
+ public final void rule__VRelationalExpression__OperandAssignment_1_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25477:1: ( ( ruleVPrimaryExpression ) )
+ // InternalRBAModel.g:25478:2: ( ruleVPrimaryExpression )
+ {
+ // InternalRBAModel.g:25478:2: ( ruleVPrimaryExpression )
+ // InternalRBAModel.g:25479:3: ruleVPrimaryExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVRelationalExpressionAccess().getOperandVPrimaryExpressionParserRuleCall_1_2_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleVPrimaryExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVRelationalExpressionAccess().getOperandVPrimaryExpressionParserRuleCall_1_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VRelationalExpression__OperandAssignment_1_2"
+
+
+ // $ANTLR start "rule__VRelationalExpression__OperandAssignment_2_2"
+ // InternalRBAModel.g:25488:1: rule__VRelationalExpression__OperandAssignment_2_2 : ( ruleVPrimaryExpression ) ;
+ public final void rule__VRelationalExpression__OperandAssignment_2_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25492:1: ( ( ruleVPrimaryExpression ) )
+ // InternalRBAModel.g:25493:2: ( ruleVPrimaryExpression )
+ {
+ // InternalRBAModel.g:25493:2: ( ruleVPrimaryExpression )
+ // InternalRBAModel.g:25494:3: ruleVPrimaryExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVRelationalExpressionAccess().getOperandVPrimaryExpressionParserRuleCall_2_2_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleVPrimaryExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVRelationalExpressionAccess().getOperandVPrimaryExpressionParserRuleCall_2_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VRelationalExpression__OperandAssignment_2_2"
+
+
+ // $ANTLR start "rule__VRelationalExpression__OperandAssignment_3_2"
+ // InternalRBAModel.g:25503:1: rule__VRelationalExpression__OperandAssignment_3_2 : ( ruleVPrimaryExpression ) ;
+ public final void rule__VRelationalExpression__OperandAssignment_3_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25507:1: ( ( ruleVPrimaryExpression ) )
+ // InternalRBAModel.g:25508:2: ( ruleVPrimaryExpression )
+ {
+ // InternalRBAModel.g:25508:2: ( ruleVPrimaryExpression )
+ // InternalRBAModel.g:25509:3: ruleVPrimaryExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVRelationalExpressionAccess().getOperandVPrimaryExpressionParserRuleCall_3_2_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleVPrimaryExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVRelationalExpressionAccess().getOperandVPrimaryExpressionParserRuleCall_3_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VRelationalExpression__OperandAssignment_3_2"
+
+
+ // $ANTLR start "rule__VRelationalExpression__OperandAssignment_4_2"
+ // InternalRBAModel.g:25518:1: rule__VRelationalExpression__OperandAssignment_4_2 : ( ruleVPrimaryExpression ) ;
+ public final void rule__VRelationalExpression__OperandAssignment_4_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25522:1: ( ( ruleVPrimaryExpression ) )
+ // InternalRBAModel.g:25523:2: ( ruleVPrimaryExpression )
+ {
+ // InternalRBAModel.g:25523:2: ( ruleVPrimaryExpression )
+ // InternalRBAModel.g:25524:3: ruleVPrimaryExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVRelationalExpressionAccess().getOperandVPrimaryExpressionParserRuleCall_4_2_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleVPrimaryExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVRelationalExpressionAccess().getOperandVPrimaryExpressionParserRuleCall_4_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VRelationalExpression__OperandAssignment_4_2"
+
+
+ // $ANTLR start "rule__ThatOfOperator__OperandAssignment_2"
+ // InternalRBAModel.g:25533:1: rule__ThatOfOperator__OperandAssignment_2 : ( ruleVMemberFeatureReference ) ;
+ public final void rule__ThatOfOperator__OperandAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25537:1: ( ( ruleVMemberFeatureReference ) )
+ // InternalRBAModel.g:25538:2: ( ruleVMemberFeatureReference )
+ {
+ // InternalRBAModel.g:25538:2: ( ruleVMemberFeatureReference )
+ // InternalRBAModel.g:25539:3: ruleVMemberFeatureReference
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getThatOfOperatorAccess().getOperandVMemberFeatureReferenceParserRuleCall_2_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleVMemberFeatureReference();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getThatOfOperatorAccess().getOperandVMemberFeatureReferenceParserRuleCall_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ThatOfOperator__OperandAssignment_2"
+
+
+ // $ANTLR start "rule__VMemberFeatureReference__RefObjectAssignment_1"
+ // InternalRBAModel.g:25548:1: rule__VMemberFeatureReference__RefObjectAssignment_1 : ( ( ruleValidID ) ) ;
+ public final void rule__VMemberFeatureReference__RefObjectAssignment_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25552:1: ( ( ( ruleValidID ) ) )
+ // InternalRBAModel.g:25553:2: ( ( ruleValidID ) )
+ {
+ // InternalRBAModel.g:25553:2: ( ( ruleValidID ) )
+ // InternalRBAModel.g:25554:3: ( ruleValidID )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVMemberFeatureReferenceAccess().getRefObjectRuleObjectCrossReference_1_0());
+ }
+ // InternalRBAModel.g:25555:3: ( ruleValidID )
+ // InternalRBAModel.g:25556:4: ruleValidID
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVMemberFeatureReferenceAccess().getRefObjectRuleObjectValidIDParserRuleCall_1_0_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleValidID();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVMemberFeatureReferenceAccess().getRefObjectRuleObjectValidIDParserRuleCall_1_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVMemberFeatureReferenceAccess().getRefObjectRuleObjectCrossReference_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VMemberFeatureReference__RefObjectAssignment_1"
+
+
+ // $ANTLR start "rule__VMemberFeatureReference__RefObjectAssignment_2_2"
+ // InternalRBAModel.g:25567:1: rule__VMemberFeatureReference__RefObjectAssignment_2_2 : ( ( ruleValidID ) ) ;
+ public final void rule__VMemberFeatureReference__RefObjectAssignment_2_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25571:1: ( ( ( ruleValidID ) ) )
+ // InternalRBAModel.g:25572:2: ( ( ruleValidID ) )
+ {
+ // InternalRBAModel.g:25572:2: ( ( ruleValidID ) )
+ // InternalRBAModel.g:25573:3: ( ruleValidID )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVMemberFeatureReferenceAccess().getRefObjectRuleObjectCrossReference_2_2_0());
+ }
+ // InternalRBAModel.g:25574:3: ( ruleValidID )
+ // InternalRBAModel.g:25575:4: ruleValidID
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVMemberFeatureReferenceAccess().getRefObjectRuleObjectValidIDParserRuleCall_2_2_0_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleValidID();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVMemberFeatureReferenceAccess().getRefObjectRuleObjectValidIDParserRuleCall_2_2_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVMemberFeatureReferenceAccess().getRefObjectRuleObjectCrossReference_2_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VMemberFeatureReference__RefObjectAssignment_2_2"
+
+
+ // $ANTLR start "rule__IntegerValue__ValueAssignment_1"
+ // InternalRBAModel.g:25586:1: rule__IntegerValue__ValueAssignment_1 : ( ruleEInt ) ;
+ public final void rule__IntegerValue__ValueAssignment_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25590:1: ( ( ruleEInt ) )
+ // InternalRBAModel.g:25591:2: ( ruleEInt )
+ {
+ // InternalRBAModel.g:25591:2: ( ruleEInt )
+ // InternalRBAModel.g:25592:3: ruleEInt
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getIntegerValueAccess().getValueEIntParserRuleCall_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleEInt();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getIntegerValueAccess().getValueEIntParserRuleCall_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__IntegerValue__ValueAssignment_1"
+
+
+ // $ANTLR start "rule__CImpliesOperator__OperandAssignment_1_1"
+ // InternalRBAModel.g:25601:1: rule__CImpliesOperator__OperandAssignment_1_1 : ( ruleCOrOperator ) ;
+ public final void rule__CImpliesOperator__OperandAssignment_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25605:1: ( ( ruleCOrOperator ) )
+ // InternalRBAModel.g:25606:2: ( ruleCOrOperator )
+ {
+ // InternalRBAModel.g:25606:2: ( ruleCOrOperator )
+ // InternalRBAModel.g:25607:3: ruleCOrOperator
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCImpliesOperatorAccess().getOperandCOrOperatorParserRuleCall_1_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleCOrOperator();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCImpliesOperatorAccess().getOperandCOrOperatorParserRuleCall_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CImpliesOperator__OperandAssignment_1_1"
+
+
+ // $ANTLR start "rule__COrOperator__OperandAssignment_1_1"
+ // InternalRBAModel.g:25616:1: rule__COrOperator__OperandAssignment_1_1 : ( ruleCAndOperator ) ;
+ public final void rule__COrOperator__OperandAssignment_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25620:1: ( ( ruleCAndOperator ) )
+ // InternalRBAModel.g:25621:2: ( ruleCAndOperator )
+ {
+ // InternalRBAModel.g:25621:2: ( ruleCAndOperator )
+ // InternalRBAModel.g:25622:3: ruleCAndOperator
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOrOperatorAccess().getOperandCAndOperatorParserRuleCall_1_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleCAndOperator();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOrOperatorAccess().getOperandCAndOperatorParserRuleCall_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COrOperator__OperandAssignment_1_1"
+
+
+ // $ANTLR start "rule__CAndOperator__OperandAssignment_1_1"
+ // InternalRBAModel.g:25631:1: rule__CAndOperator__OperandAssignment_1_1 : ( ruleCEqualityExpression ) ;
+ public final void rule__CAndOperator__OperandAssignment_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25635:1: ( ( ruleCEqualityExpression ) )
+ // InternalRBAModel.g:25636:2: ( ruleCEqualityExpression )
+ {
+ // InternalRBAModel.g:25636:2: ( ruleCEqualityExpression )
+ // InternalRBAModel.g:25637:3: ruleCEqualityExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCAndOperatorAccess().getOperandCEqualityExpressionParserRuleCall_1_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleCEqualityExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCAndOperatorAccess().getOperandCEqualityExpressionParserRuleCall_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CAndOperator__OperandAssignment_1_1"
+
+
+ // $ANTLR start "rule__CEqualityExpression__OperandAssignment_1_1"
+ // InternalRBAModel.g:25646:1: rule__CEqualityExpression__OperandAssignment_1_1 : ( ruleCRelationalExpression ) ;
+ public final void rule__CEqualityExpression__OperandAssignment_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25650:1: ( ( ruleCRelationalExpression ) )
+ // InternalRBAModel.g:25651:2: ( ruleCRelationalExpression )
+ {
+ // InternalRBAModel.g:25651:2: ( ruleCRelationalExpression )
+ // InternalRBAModel.g:25652:3: ruleCRelationalExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCEqualityExpressionAccess().getOperandCRelationalExpressionParserRuleCall_1_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleCRelationalExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCEqualityExpressionAccess().getOperandCRelationalExpressionParserRuleCall_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CEqualityExpression__OperandAssignment_1_1"
+
+
+ // $ANTLR start "rule__CRelationalExpression__OperandAssignment_1_1"
+ // InternalRBAModel.g:25661:1: rule__CRelationalExpression__OperandAssignment_1_1 : ( ruleCUnaryOperation ) ;
+ public final void rule__CRelationalExpression__OperandAssignment_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25665:1: ( ( ruleCUnaryOperation ) )
+ // InternalRBAModel.g:25666:2: ( ruleCUnaryOperation )
+ {
+ // InternalRBAModel.g:25666:2: ( ruleCUnaryOperation )
+ // InternalRBAModel.g:25667:3: ruleCUnaryOperation
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCRelationalExpressionAccess().getOperandCUnaryOperationParserRuleCall_1_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleCUnaryOperation();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCRelationalExpressionAccess().getOperandCUnaryOperationParserRuleCall_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CRelationalExpression__OperandAssignment_1_1"
+
+
+ // $ANTLR start "rule__CUnaryOperation__OperandAssignment_0_2"
+ // InternalRBAModel.g:25676:1: rule__CUnaryOperation__OperandAssignment_0_2 : ( ruleCUnaryOperation ) ;
+ public final void rule__CUnaryOperation__OperandAssignment_0_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25680:1: ( ( ruleCUnaryOperation ) )
+ // InternalRBAModel.g:25681:2: ( ruleCUnaryOperation )
+ {
+ // InternalRBAModel.g:25681:2: ( ruleCUnaryOperation )
+ // InternalRBAModel.g:25682:3: ruleCUnaryOperation
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCUnaryOperationAccess().getOperandCUnaryOperationParserRuleCall_0_2_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleCUnaryOperation();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCUnaryOperationAccess().getOperandCUnaryOperationParserRuleCall_0_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CUnaryOperation__OperandAssignment_0_2"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__OperandAssignment_1_1_0_1_0_1"
+ // InternalRBAModel.g:25691:1: rule__COperationFeatureCall__OperandAssignment_1_1_0_1_0_1 : ( ruleCExpression ) ;
+ public final void rule__COperationFeatureCall__OperandAssignment_1_1_0_1_0_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25695:1: ( ( ruleCExpression ) )
+ // InternalRBAModel.g:25696:2: ( ruleCExpression )
+ {
+ // InternalRBAModel.g:25696:2: ( ruleCExpression )
+ // InternalRBAModel.g:25697:3: ruleCExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getOperandCExpressionParserRuleCall_1_1_0_1_0_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleCExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getOperandCExpressionParserRuleCall_1_1_0_1_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__OperandAssignment_1_1_0_1_0_1"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__TagNameAssignment_1_1_1_1_0_1"
+ // InternalRBAModel.g:25706:1: rule__COperationFeatureCall__TagNameAssignment_1_1_1_1_0_1 : ( ruleEString ) ;
+ public final void rule__COperationFeatureCall__TagNameAssignment_1_1_1_1_0_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25710:1: ( ( ruleEString ) )
+ // InternalRBAModel.g:25711:2: ( ruleEString )
+ {
+ // InternalRBAModel.g:25711:2: ( ruleEString )
+ // InternalRBAModel.g:25712:3: ruleEString
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getTagNameEStringParserRuleCall_1_1_1_1_0_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleEString();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getTagNameEStringParserRuleCall_1_1_1_1_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__TagNameAssignment_1_1_1_1_0_1"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__LambdaAssignment_1_1_2_0_2"
+ // InternalRBAModel.g:25721:1: rule__COperationFeatureCall__LambdaAssignment_1_1_2_0_2 : ( ruleLambdaExpression ) ;
+ public final void rule__COperationFeatureCall__LambdaAssignment_1_1_2_0_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25725:1: ( ( ruleLambdaExpression ) )
+ // InternalRBAModel.g:25726:2: ( ruleLambdaExpression )
+ {
+ // InternalRBAModel.g:25726:2: ( ruleLambdaExpression )
+ // InternalRBAModel.g:25727:3: ruleLambdaExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getLambdaLambdaExpressionParserRuleCall_1_1_2_0_2_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleLambdaExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getLambdaLambdaExpressionParserRuleCall_1_1_2_0_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__LambdaAssignment_1_1_2_0_2"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__LambdaAssignment_1_1_2_1_2"
+ // InternalRBAModel.g:25736:1: rule__COperationFeatureCall__LambdaAssignment_1_1_2_1_2 : ( ruleLambdaExpression ) ;
+ public final void rule__COperationFeatureCall__LambdaAssignment_1_1_2_1_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25740:1: ( ( ruleLambdaExpression ) )
+ // InternalRBAModel.g:25741:2: ( ruleLambdaExpression )
+ {
+ // InternalRBAModel.g:25741:2: ( ruleLambdaExpression )
+ // InternalRBAModel.g:25742:3: ruleLambdaExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getLambdaLambdaExpressionParserRuleCall_1_1_2_1_2_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleLambdaExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getLambdaLambdaExpressionParserRuleCall_1_1_2_1_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__LambdaAssignment_1_1_2_1_2"
+
+
+ // $ANTLR start "rule__COperationFeatureCall__LambdaAssignment_1_1_2_2_2"
+ // InternalRBAModel.g:25751:1: rule__COperationFeatureCall__LambdaAssignment_1_1_2_2_2 : ( ruleLambdaExpression ) ;
+ public final void rule__COperationFeatureCall__LambdaAssignment_1_1_2_2_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25755:1: ( ( ruleLambdaExpression ) )
+ // InternalRBAModel.g:25756:2: ( ruleLambdaExpression )
+ {
+ // InternalRBAModel.g:25756:2: ( ruleLambdaExpression )
+ // InternalRBAModel.g:25757:3: ruleLambdaExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCOperationFeatureCallAccess().getLambdaLambdaExpressionParserRuleCall_1_1_2_2_2_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleLambdaExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCOperationFeatureCallAccess().getLambdaLambdaExpressionParserRuleCall_1_1_2_2_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__COperationFeatureCall__LambdaAssignment_1_1_2_2_2"
+
+
+ // $ANTLR start "rule__PreviousModifier__ObjReferenceAssignment_2"
+ // InternalRBAModel.g:25766:1: rule__PreviousModifier__ObjReferenceAssignment_2 : ( ruleCMemberFeatureReference ) ;
+ public final void rule__PreviousModifier__ObjReferenceAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25770:1: ( ( ruleCMemberFeatureReference ) )
+ // InternalRBAModel.g:25771:2: ( ruleCMemberFeatureReference )
+ {
+ // InternalRBAModel.g:25771:2: ( ruleCMemberFeatureReference )
+ // InternalRBAModel.g:25772:3: ruleCMemberFeatureReference
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPreviousModifierAccess().getObjReferenceCMemberFeatureReferenceParserRuleCall_2_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleCMemberFeatureReference();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPreviousModifierAccess().getObjReferenceCMemberFeatureReferenceParserRuleCall_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PreviousModifier__ObjReferenceAssignment_2"
+
+
+ // $ANTLR start "rule__HideLowerPriority__OperandAssignment_3"
+ // InternalRBAModel.g:25781:1: rule__HideLowerPriority__OperandAssignment_3 : ( ruleCExpression ) ;
+ public final void rule__HideLowerPriority__OperandAssignment_3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25785:1: ( ( ruleCExpression ) )
+ // InternalRBAModel.g:25786:2: ( ruleCExpression )
+ {
+ // InternalRBAModel.g:25786:2: ( ruleCExpression )
+ // InternalRBAModel.g:25787:3: ruleCExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getHideLowerPriorityAccess().getOperandCExpressionParserRuleCall_3_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleCExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getHideLowerPriorityAccess().getOperandCExpressionParserRuleCall_3_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HideLowerPriority__OperandAssignment_3"
+
+
+ // $ANTLR start "rule__HideLowerPriority__OperandAssignment_5"
+ // InternalRBAModel.g:25796:1: rule__HideLowerPriority__OperandAssignment_5 : ( ruleCExpression ) ;
+ public final void rule__HideLowerPriority__OperandAssignment_5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25800:1: ( ( ruleCExpression ) )
+ // InternalRBAModel.g:25801:2: ( ruleCExpression )
+ {
+ // InternalRBAModel.g:25801:2: ( ruleCExpression )
+ // InternalRBAModel.g:25802:3: ruleCExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getHideLowerPriorityAccess().getOperandCExpressionParserRuleCall_5_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleCExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getHideLowerPriorityAccess().getOperandCExpressionParserRuleCall_5_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HideLowerPriority__OperandAssignment_5"
+
+
+ // $ANTLR start "rule__MuteLowerPriority__OperandAssignment_3"
+ // InternalRBAModel.g:25811:1: rule__MuteLowerPriority__OperandAssignment_3 : ( ruleCExpression ) ;
+ public final void rule__MuteLowerPriority__OperandAssignment_3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25815:1: ( ( ruleCExpression ) )
+ // InternalRBAModel.g:25816:2: ( ruleCExpression )
+ {
+ // InternalRBAModel.g:25816:2: ( ruleCExpression )
+ // InternalRBAModel.g:25817:3: ruleCExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getMuteLowerPriorityAccess().getOperandCExpressionParserRuleCall_3_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleCExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getMuteLowerPriorityAccess().getOperandCExpressionParserRuleCall_3_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__MuteLowerPriority__OperandAssignment_3"
+
+
+ // $ANTLR start "rule__MuteLowerPriority__OperandAssignment_5"
+ // InternalRBAModel.g:25826:1: rule__MuteLowerPriority__OperandAssignment_5 : ( ruleCExpression ) ;
+ public final void rule__MuteLowerPriority__OperandAssignment_5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25830:1: ( ( ruleCExpression ) )
+ // InternalRBAModel.g:25831:2: ( ruleCExpression )
+ {
+ // InternalRBAModel.g:25831:2: ( ruleCExpression )
+ // InternalRBAModel.g:25832:3: ruleCExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getMuteLowerPriorityAccess().getOperandCExpressionParserRuleCall_5_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleCExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getMuteLowerPriorityAccess().getOperandCExpressionParserRuleCall_5_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__MuteLowerPriority__OperandAssignment_5"
+
+
+ // $ANTLR start "rule__SetOfOperator__OperandAssignment_2_0"
+ // InternalRBAModel.g:25841:1: rule__SetOfOperator__OperandAssignment_2_0 : ( ruleCExpression ) ;
+ public final void rule__SetOfOperator__OperandAssignment_2_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25845:1: ( ( ruleCExpression ) )
+ // InternalRBAModel.g:25846:2: ( ruleCExpression )
+ {
+ // InternalRBAModel.g:25846:2: ( ruleCExpression )
+ // InternalRBAModel.g:25847:3: ruleCExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSetOfOperatorAccess().getOperandCExpressionParserRuleCall_2_0_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleCExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSetOfOperatorAccess().getOperandCExpressionParserRuleCall_2_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SetOfOperator__OperandAssignment_2_0"
+
+
+ // $ANTLR start "rule__SetOfOperator__OperandAssignment_2_1_1"
+ // InternalRBAModel.g:25856:1: rule__SetOfOperator__OperandAssignment_2_1_1 : ( ruleCExpression ) ;
+ public final void rule__SetOfOperator__OperandAssignment_2_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25860:1: ( ( ruleCExpression ) )
+ // InternalRBAModel.g:25861:2: ( ruleCExpression )
+ {
+ // InternalRBAModel.g:25861:2: ( ruleCExpression )
+ // InternalRBAModel.g:25862:3: ruleCExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSetOfOperatorAccess().getOperandCExpressionParserRuleCall_2_1_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleCExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSetOfOperatorAccess().getOperandCExpressionParserRuleCall_2_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SetOfOperator__OperandAssignment_2_1_1"
+
+
+ // $ANTLR start "rule__IfStatement__ConditionAssignment_3"
+ // InternalRBAModel.g:25871:1: rule__IfStatement__ConditionAssignment_3 : ( ruleCExpression ) ;
+ public final void rule__IfStatement__ConditionAssignment_3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25875:1: ( ( ruleCExpression ) )
+ // InternalRBAModel.g:25876:2: ( ruleCExpression )
+ {
+ // InternalRBAModel.g:25876:2: ( ruleCExpression )
+ // InternalRBAModel.g:25877:3: ruleCExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getIfStatementAccess().getConditionCExpressionParserRuleCall_3_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleCExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getIfStatementAccess().getConditionCExpressionParserRuleCall_3_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__IfStatement__ConditionAssignment_3"
+
+
+ // $ANTLR start "rule__IfStatement__ThenExpressionAssignment_5_1"
+ // InternalRBAModel.g:25886:1: rule__IfStatement__ThenExpressionAssignment_5_1 : ( ruleCExpression ) ;
+ public final void rule__IfStatement__ThenExpressionAssignment_5_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25890:1: ( ( ruleCExpression ) )
+ // InternalRBAModel.g:25891:2: ( ruleCExpression )
+ {
+ // InternalRBAModel.g:25891:2: ( ruleCExpression )
+ // InternalRBAModel.g:25892:3: ruleCExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getIfStatementAccess().getThenExpressionCExpressionParserRuleCall_5_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleCExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getIfStatementAccess().getThenExpressionCExpressionParserRuleCall_5_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__IfStatement__ThenExpressionAssignment_5_1"
+
+
+ // $ANTLR start "rule__IfStatement__ElseExpressionAssignment_6_1"
+ // InternalRBAModel.g:25901:1: rule__IfStatement__ElseExpressionAssignment_6_1 : ( ruleCExpression ) ;
+ public final void rule__IfStatement__ElseExpressionAssignment_6_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25905:1: ( ( ruleCExpression ) )
+ // InternalRBAModel.g:25906:2: ( ruleCExpression )
+ {
+ // InternalRBAModel.g:25906:2: ( ruleCExpression )
+ // InternalRBAModel.g:25907:3: ruleCExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getIfStatementAccess().getElseExpressionCExpressionParserRuleCall_6_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleCExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getIfStatementAccess().getElseExpressionCExpressionParserRuleCall_6_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__IfStatement__ElseExpressionAssignment_6_1"
+
+
+ // $ANTLR start "rule__ForAllOperator__OperandAssignment_2"
+ // InternalRBAModel.g:25916:1: rule__ForAllOperator__OperandAssignment_2 : ( ruleCExpression ) ;
+ public final void rule__ForAllOperator__OperandAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25920:1: ( ( ruleCExpression ) )
+ // InternalRBAModel.g:25921:2: ( ruleCExpression )
+ {
+ // InternalRBAModel.g:25921:2: ( ruleCExpression )
+ // InternalRBAModel.g:25922:3: ruleCExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getForAllOperatorAccess().getOperandCExpressionParserRuleCall_2_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleCExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getForAllOperatorAccess().getOperandCExpressionParserRuleCall_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ForAllOperator__OperandAssignment_2"
+
+
+ // $ANTLR start "rule__ForAllOperator__LambdaAssignment_3"
+ // InternalRBAModel.g:25931:1: rule__ForAllOperator__LambdaAssignment_3 : ( ruleLambdaExpression ) ;
+ public final void rule__ForAllOperator__LambdaAssignment_3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25935:1: ( ( ruleLambdaExpression ) )
+ // InternalRBAModel.g:25936:2: ( ruleLambdaExpression )
+ {
+ // InternalRBAModel.g:25936:2: ( ruleLambdaExpression )
+ // InternalRBAModel.g:25937:3: ruleLambdaExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getForAllOperatorAccess().getLambdaLambdaExpressionParserRuleCall_3_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleLambdaExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getForAllOperatorAccess().getLambdaLambdaExpressionParserRuleCall_3_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ForAllOperator__LambdaAssignment_3"
+
+
+ // $ANTLR start "rule__ExistsOperator__OperandAssignment_2"
+ // InternalRBAModel.g:25946:1: rule__ExistsOperator__OperandAssignment_2 : ( ruleCExpression ) ;
+ public final void rule__ExistsOperator__OperandAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25950:1: ( ( ruleCExpression ) )
+ // InternalRBAModel.g:25951:2: ( ruleCExpression )
+ {
+ // InternalRBAModel.g:25951:2: ( ruleCExpression )
+ // InternalRBAModel.g:25952:3: ruleCExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getExistsOperatorAccess().getOperandCExpressionParserRuleCall_2_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleCExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getExistsOperatorAccess().getOperandCExpressionParserRuleCall_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ExistsOperator__OperandAssignment_2"
+
+
+ // $ANTLR start "rule__ExistsOperator__LambdaAssignment_3"
+ // InternalRBAModel.g:25961:1: rule__ExistsOperator__LambdaAssignment_3 : ( ruleLambdaExpression ) ;
+ public final void rule__ExistsOperator__LambdaAssignment_3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25965:1: ( ( ruleLambdaExpression ) )
+ // InternalRBAModel.g:25966:2: ( ruleLambdaExpression )
+ {
+ // InternalRBAModel.g:25966:2: ( ruleLambdaExpression )
+ // InternalRBAModel.g:25967:3: ruleLambdaExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getExistsOperatorAccess().getLambdaLambdaExpressionParserRuleCall_3_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleLambdaExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getExistsOperatorAccess().getLambdaLambdaExpressionParserRuleCall_3_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ExistsOperator__LambdaAssignment_3"
+
+
+ // $ANTLR start "rule__LambdaExpression__XAssignment_1_0"
+ // InternalRBAModel.g:25976:1: rule__LambdaExpression__XAssignment_1_0 : ( ruleVariable ) ;
+ public final void rule__LambdaExpression__XAssignment_1_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25980:1: ( ( ruleVariable ) )
+ // InternalRBAModel.g:25981:2: ( ruleVariable )
+ {
+ // InternalRBAModel.g:25981:2: ( ruleVariable )
+ // InternalRBAModel.g:25982:3: ruleVariable
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLambdaExpressionAccess().getXVariableParserRuleCall_1_0_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleVariable();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLambdaExpressionAccess().getXVariableParserRuleCall_1_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LambdaExpression__XAssignment_1_0"
+
+
+ // $ANTLR start "rule__LambdaExpression__LetStatementsAssignment_2"
+ // InternalRBAModel.g:25991:1: rule__LambdaExpression__LetStatementsAssignment_2 : ( ruleLetStatement ) ;
+ public final void rule__LambdaExpression__LetStatementsAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:25995:1: ( ( ruleLetStatement ) )
+ // InternalRBAModel.g:25996:2: ( ruleLetStatement )
+ {
+ // InternalRBAModel.g:25996:2: ( ruleLetStatement )
+ // InternalRBAModel.g:25997:3: ruleLetStatement
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLambdaExpressionAccess().getLetStatementsLetStatementParserRuleCall_2_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleLetStatement();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLambdaExpressionAccess().getLetStatementsLetStatementParserRuleCall_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LambdaExpression__LetStatementsAssignment_2"
+
+
+ // $ANTLR start "rule__LambdaExpression__BodyTextAssignment_3"
+ // InternalRBAModel.g:26006:1: rule__LambdaExpression__BodyTextAssignment_3 : ( ruleCExpression ) ;
+ public final void rule__LambdaExpression__BodyTextAssignment_3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:26010:1: ( ( ruleCExpression ) )
+ // InternalRBAModel.g:26011:2: ( ruleCExpression )
+ {
+ // InternalRBAModel.g:26011:2: ( ruleCExpression )
+ // InternalRBAModel.g:26012:3: ruleCExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLambdaExpressionAccess().getBodyTextCExpressionParserRuleCall_3_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleCExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLambdaExpressionAccess().getBodyTextCExpressionParserRuleCall_3_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LambdaExpression__BodyTextAssignment_3"
+
+
+ // $ANTLR start "rule__Variable__NameAssignment_1"
+ // InternalRBAModel.g:26021:1: rule__Variable__NameAssignment_1 : ( ruleQualifiedName ) ;
+ public final void rule__Variable__NameAssignment_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:26025:1: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:26026:2: ( ruleQualifiedName )
+ {
+ // InternalRBAModel.g:26026:2: ( ruleQualifiedName )
+ // InternalRBAModel.g:26027:3: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVariableAccess().getNameQualifiedNameParserRuleCall_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVariableAccess().getNameQualifiedNameParserRuleCall_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Variable__NameAssignment_1"
+
+
+ // $ANTLR start "rule__CMemberFeatureReference__RefObjectAssignment_1"
+ // InternalRBAModel.g:26036:1: rule__CMemberFeatureReference__RefObjectAssignment_1 : ( ( ruleIdOrThis ) ) ;
+ public final void rule__CMemberFeatureReference__RefObjectAssignment_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:26040:1: ( ( ( ruleIdOrThis ) ) )
+ // InternalRBAModel.g:26041:2: ( ( ruleIdOrThis ) )
+ {
+ // InternalRBAModel.g:26041:2: ( ( ruleIdOrThis ) )
+ // InternalRBAModel.g:26042:3: ( ruleIdOrThis )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCMemberFeatureReferenceAccess().getRefObjectRuleObjectCrossReference_1_0());
+ }
+ // InternalRBAModel.g:26043:3: ( ruleIdOrThis )
+ // InternalRBAModel.g:26044:4: ruleIdOrThis
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCMemberFeatureReferenceAccess().getRefObjectRuleObjectIdOrThisParserRuleCall_1_0_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleIdOrThis();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCMemberFeatureReferenceAccess().getRefObjectRuleObjectIdOrThisParserRuleCall_1_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCMemberFeatureReferenceAccess().getRefObjectRuleObjectCrossReference_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CMemberFeatureReference__RefObjectAssignment_1"
+
+
+ // $ANTLR start "rule__CMemberFeatureReference__RefObjectAssignment_2_2"
+ // InternalRBAModel.g:26055:1: rule__CMemberFeatureReference__RefObjectAssignment_2_2 : ( ( ruleValidID ) ) ;
+ public final void rule__CMemberFeatureReference__RefObjectAssignment_2_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:26059:1: ( ( ( ruleValidID ) ) )
+ // InternalRBAModel.g:26060:2: ( ( ruleValidID ) )
+ {
+ // InternalRBAModel.g:26060:2: ( ( ruleValidID ) )
+ // InternalRBAModel.g:26061:3: ( ruleValidID )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCMemberFeatureReferenceAccess().getRefObjectRuleObjectCrossReference_2_2_0());
+ }
+ // InternalRBAModel.g:26062:3: ( ruleValidID )
+ // InternalRBAModel.g:26063:4: ruleValidID
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCMemberFeatureReferenceAccess().getRefObjectRuleObjectValidIDParserRuleCall_2_2_0_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleValidID();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCMemberFeatureReferenceAccess().getRefObjectRuleObjectValidIDParserRuleCall_2_2_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getCMemberFeatureReferenceAccess().getRefObjectRuleObjectCrossReference_2_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CMemberFeatureReference__RefObjectAssignment_2_2"
+
+
+ // $ANTLR start "rule__LetStatement__VariableAssignment_2"
+ // InternalRBAModel.g:26074:1: rule__LetStatement__VariableAssignment_2 : ( ruleVariable ) ;
+ public final void rule__LetStatement__VariableAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:26078:1: ( ( ruleVariable ) )
+ // InternalRBAModel.g:26079:2: ( ruleVariable )
+ {
+ // InternalRBAModel.g:26079:2: ( ruleVariable )
+ // InternalRBAModel.g:26080:3: ruleVariable
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLetStatementAccess().getVariableVariableParserRuleCall_2_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleVariable();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLetStatementAccess().getVariableVariableParserRuleCall_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LetStatement__VariableAssignment_2"
+
+
+ // $ANTLR start "rule__LetStatement__BodyAssignment_3_1"
+ // InternalRBAModel.g:26089:1: rule__LetStatement__BodyAssignment_3_1 : ( ruleCExpression ) ;
+ public final void rule__LetStatement__BodyAssignment_3_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:26093:1: ( ( ruleCExpression ) )
+ // InternalRBAModel.g:26094:2: ( ruleCExpression )
+ {
+ // InternalRBAModel.g:26094:2: ( ruleCExpression )
+ // InternalRBAModel.g:26095:3: ruleCExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLetStatementAccess().getBodyCExpressionParserRuleCall_3_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleCExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLetStatementAccess().getBodyCExpressionParserRuleCall_3_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LetStatement__BodyAssignment_3_1"
+
+
+ // $ANTLR start "rule__ComplexExpression__LetStatementsAssignment_1"
+ // InternalRBAModel.g:26104:1: rule__ComplexExpression__LetStatementsAssignment_1 : ( ruleLetStatement ) ;
+ public final void rule__ComplexExpression__LetStatementsAssignment_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:26108:1: ( ( ruleLetStatement ) )
+ // InternalRBAModel.g:26109:2: ( ruleLetStatement )
+ {
+ // InternalRBAModel.g:26109:2: ( ruleLetStatement )
+ // InternalRBAModel.g:26110:3: ruleLetStatement
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getComplexExpressionAccess().getLetStatementsLetStatementParserRuleCall_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleLetStatement();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getComplexExpressionAccess().getLetStatementsLetStatementParserRuleCall_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ComplexExpression__LetStatementsAssignment_1"
+
+
+ // $ANTLR start "rule__ComplexExpression__OtherExpressionAssignment_2"
+ // InternalRBAModel.g:26119:1: rule__ComplexExpression__OtherExpressionAssignment_2 : ( ruleCExpression ) ;
+ public final void rule__ComplexExpression__OtherExpressionAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:26123:1: ( ( ruleCExpression ) )
+ // InternalRBAModel.g:26124:2: ( ruleCExpression )
+ {
+ // InternalRBAModel.g:26124:2: ( ruleCExpression )
+ // InternalRBAModel.g:26125:3: ruleCExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getComplexExpressionAccess().getOtherExpressionCExpressionParserRuleCall_2_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleCExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getComplexExpressionAccess().getOtherExpressionCExpressionParserRuleCall_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ComplexExpression__OtherExpressionAssignment_2"
+
+
+ // $ANTLR start "rule__LoserTypeExpression__ValueAssignment_1"
+ // InternalRBAModel.g:26134:1: rule__LoserTypeExpression__ValueAssignment_1 : ( ruleLoserType ) ;
+ public final void rule__LoserTypeExpression__ValueAssignment_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:26138:1: ( ( ruleLoserType ) )
+ // InternalRBAModel.g:26139:2: ( ruleLoserType )
+ {
+ // InternalRBAModel.g:26139:2: ( ruleLoserType )
+ // InternalRBAModel.g:26140:3: ruleLoserType
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLoserTypeExpressionAccess().getValueLoserTypeEnumRuleCall_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleLoserType();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLoserTypeExpressionAccess().getValueLoserTypeEnumRuleCall_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LoserTypeExpression__ValueAssignment_1"
+
+
+ // $ANTLR start "rule__ArbitrationPolicyExpression__ValueAssignment_1"
+ // InternalRBAModel.g:26149:1: rule__ArbitrationPolicyExpression__ValueAssignment_1 : ( ruleArbitrationPolicy ) ;
+ public final void rule__ArbitrationPolicyExpression__ValueAssignment_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:26153:1: ( ( ruleArbitrationPolicy ) )
+ // InternalRBAModel.g:26154:2: ( ruleArbitrationPolicy )
+ {
+ // InternalRBAModel.g:26154:2: ( ruleArbitrationPolicy )
+ // InternalRBAModel.g:26155:3: ruleArbitrationPolicy
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getArbitrationPolicyExpressionAccess().getValueArbitrationPolicyEnumRuleCall_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleArbitrationPolicy();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getArbitrationPolicyExpressionAccess().getValueArbitrationPolicyEnumRuleCall_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ArbitrationPolicyExpression__ValueAssignment_1"
+
+
+ // $ANTLR start "rule__ViewContentSet__NameAssignment_2"
+ // InternalRBAModel.g:26164:1: rule__ViewContentSet__NameAssignment_2 : ( ruleQualifiedName ) ;
+ public final void rule__ViewContentSet__NameAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:26168:1: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:26169:2: ( ruleQualifiedName )
+ {
+ // InternalRBAModel.g:26169:2: ( ruleQualifiedName )
+ // InternalRBAModel.g:26170:3: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentSetAccess().getNameQualifiedNameParserRuleCall_2_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentSetAccess().getNameQualifiedNameParserRuleCall_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__NameAssignment_2"
+
+
+ // $ANTLR start "rule__ViewContentSet__DescriptionAssignment_4_0_1"
+ // InternalRBAModel.g:26179:1: rule__ViewContentSet__DescriptionAssignment_4_0_1 : ( ruleEString ) ;
+ public final void rule__ViewContentSet__DescriptionAssignment_4_0_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:26183:1: ( ( ruleEString ) )
+ // InternalRBAModel.g:26184:2: ( ruleEString )
+ {
+ // InternalRBAModel.g:26184:2: ( ruleEString )
+ // InternalRBAModel.g:26185:3: ruleEString
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentSetAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleEString();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentSetAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__DescriptionAssignment_4_0_1"
+
+
+ // $ANTLR start "rule__ViewContentSet__TargetAssignment_4_1_2_0"
+ // InternalRBAModel.g:26194:1: rule__ViewContentSet__TargetAssignment_4_1_2_0 : ( ( ruleQualifiedName ) ) ;
+ public final void rule__ViewContentSet__TargetAssignment_4_1_2_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:26198:1: ( ( ( ruleQualifiedName ) ) )
+ // InternalRBAModel.g:26199:2: ( ( ruleQualifiedName ) )
+ {
+ // InternalRBAModel.g:26199:2: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:26200:3: ( ruleQualifiedName )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentSetAccess().getTargetAbstractContentCrossReference_4_1_2_0_0());
+ }
+ // InternalRBAModel.g:26201:3: ( ruleQualifiedName )
+ // InternalRBAModel.g:26202:4: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentSetAccess().getTargetAbstractContentQualifiedNameParserRuleCall_4_1_2_0_0_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentSetAccess().getTargetAbstractContentQualifiedNameParserRuleCall_4_1_2_0_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentSetAccess().getTargetAbstractContentCrossReference_4_1_2_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__TargetAssignment_4_1_2_0"
+
+
+ // $ANTLR start "rule__ViewContentSet__TargetAssignment_4_1_2_1_1"
+ // InternalRBAModel.g:26213:1: rule__ViewContentSet__TargetAssignment_4_1_2_1_1 : ( ( ruleQualifiedName ) ) ;
+ public final void rule__ViewContentSet__TargetAssignment_4_1_2_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:26217:1: ( ( ( ruleQualifiedName ) ) )
+ // InternalRBAModel.g:26218:2: ( ( ruleQualifiedName ) )
+ {
+ // InternalRBAModel.g:26218:2: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:26219:3: ( ruleQualifiedName )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentSetAccess().getTargetAbstractContentCrossReference_4_1_2_1_1_0());
+ }
+ // InternalRBAModel.g:26220:3: ( ruleQualifiedName )
+ // InternalRBAModel.g:26221:4: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentSetAccess().getTargetAbstractContentQualifiedNameParserRuleCall_4_1_2_1_1_0_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentSetAccess().getTargetAbstractContentQualifiedNameParserRuleCall_4_1_2_1_1_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentSetAccess().getTargetAbstractContentCrossReference_4_1_2_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__TargetAssignment_4_1_2_1_1"
+
+
+ // $ANTLR start "rule__ViewContentSet__AllocatableAssignment_4_2_2_0"
+ // InternalRBAModel.g:26232:1: rule__ViewContentSet__AllocatableAssignment_4_2_2_0 : ( ( ruleQualifiedName ) ) ;
+ public final void rule__ViewContentSet__AllocatableAssignment_4_2_2_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:26236:1: ( ( ( ruleQualifiedName ) ) )
+ // InternalRBAModel.g:26237:2: ( ( ruleQualifiedName ) )
+ {
+ // InternalRBAModel.g:26237:2: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:26238:3: ( ruleQualifiedName )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentSetAccess().getAllocatableAbstractAllocatableCrossReference_4_2_2_0_0());
+ }
+ // InternalRBAModel.g:26239:3: ( ruleQualifiedName )
+ // InternalRBAModel.g:26240:4: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentSetAccess().getAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_0_0_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentSetAccess().getAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_0_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentSetAccess().getAllocatableAbstractAllocatableCrossReference_4_2_2_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__AllocatableAssignment_4_2_2_0"
+
+
+ // $ANTLR start "rule__ViewContentSet__AllocatableAssignment_4_2_2_1_1"
+ // InternalRBAModel.g:26251:1: rule__ViewContentSet__AllocatableAssignment_4_2_2_1_1 : ( ( ruleQualifiedName ) ) ;
+ public final void rule__ViewContentSet__AllocatableAssignment_4_2_2_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:26255:1: ( ( ( ruleQualifiedName ) ) )
+ // InternalRBAModel.g:26256:2: ( ( ruleQualifiedName ) )
+ {
+ // InternalRBAModel.g:26256:2: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:26257:3: ( ruleQualifiedName )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentSetAccess().getAllocatableAbstractAllocatableCrossReference_4_2_2_1_1_0());
+ }
+ // InternalRBAModel.g:26258:3: ( ruleQualifiedName )
+ // InternalRBAModel.g:26259:4: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentSetAccess().getAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_1_1_0_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentSetAccess().getAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_1_1_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewContentSetAccess().getAllocatableAbstractAllocatableCrossReference_4_2_2_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewContentSet__AllocatableAssignment_4_2_2_1_1"
+
+
+ // $ANTLR start "rule__SoundContentSet__NameAssignment_2"
+ // InternalRBAModel.g:26270:1: rule__SoundContentSet__NameAssignment_2 : ( ruleQualifiedName ) ;
+ public final void rule__SoundContentSet__NameAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:26274:1: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:26275:2: ( ruleQualifiedName )
+ {
+ // InternalRBAModel.g:26275:2: ( ruleQualifiedName )
+ // InternalRBAModel.g:26276:3: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentSetAccess().getNameQualifiedNameParserRuleCall_2_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentSetAccess().getNameQualifiedNameParserRuleCall_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__NameAssignment_2"
+
+
+ // $ANTLR start "rule__SoundContentSet__DescriptionAssignment_4_0_1"
+ // InternalRBAModel.g:26285:1: rule__SoundContentSet__DescriptionAssignment_4_0_1 : ( ruleEString ) ;
+ public final void rule__SoundContentSet__DescriptionAssignment_4_0_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:26289:1: ( ( ruleEString ) )
+ // InternalRBAModel.g:26290:2: ( ruleEString )
+ {
+ // InternalRBAModel.g:26290:2: ( ruleEString )
+ // InternalRBAModel.g:26291:3: ruleEString
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentSetAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleEString();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentSetAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__DescriptionAssignment_4_0_1"
+
+
+ // $ANTLR start "rule__SoundContentSet__TargetAssignment_4_1_2_0"
+ // InternalRBAModel.g:26300:1: rule__SoundContentSet__TargetAssignment_4_1_2_0 : ( ( ruleQualifiedName ) ) ;
+ public final void rule__SoundContentSet__TargetAssignment_4_1_2_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:26304:1: ( ( ( ruleQualifiedName ) ) )
+ // InternalRBAModel.g:26305:2: ( ( ruleQualifiedName ) )
+ {
+ // InternalRBAModel.g:26305:2: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:26306:3: ( ruleQualifiedName )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentSetAccess().getTargetAbstractContentCrossReference_4_1_2_0_0());
+ }
+ // InternalRBAModel.g:26307:3: ( ruleQualifiedName )
+ // InternalRBAModel.g:26308:4: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentSetAccess().getTargetAbstractContentQualifiedNameParserRuleCall_4_1_2_0_0_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentSetAccess().getTargetAbstractContentQualifiedNameParserRuleCall_4_1_2_0_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentSetAccess().getTargetAbstractContentCrossReference_4_1_2_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__TargetAssignment_4_1_2_0"
+
+
+ // $ANTLR start "rule__SoundContentSet__TargetAssignment_4_1_2_1_1"
+ // InternalRBAModel.g:26319:1: rule__SoundContentSet__TargetAssignment_4_1_2_1_1 : ( ( ruleQualifiedName ) ) ;
+ public final void rule__SoundContentSet__TargetAssignment_4_1_2_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:26323:1: ( ( ( ruleQualifiedName ) ) )
+ // InternalRBAModel.g:26324:2: ( ( ruleQualifiedName ) )
+ {
+ // InternalRBAModel.g:26324:2: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:26325:3: ( ruleQualifiedName )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentSetAccess().getTargetAbstractContentCrossReference_4_1_2_1_1_0());
+ }
+ // InternalRBAModel.g:26326:3: ( ruleQualifiedName )
+ // InternalRBAModel.g:26327:4: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentSetAccess().getTargetAbstractContentQualifiedNameParserRuleCall_4_1_2_1_1_0_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentSetAccess().getTargetAbstractContentQualifiedNameParserRuleCall_4_1_2_1_1_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentSetAccess().getTargetAbstractContentCrossReference_4_1_2_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__TargetAssignment_4_1_2_1_1"
+
+
+ // $ANTLR start "rule__SoundContentSet__AllocatableAssignment_4_2_2_0"
+ // InternalRBAModel.g:26338:1: rule__SoundContentSet__AllocatableAssignment_4_2_2_0 : ( ( ruleQualifiedName ) ) ;
+ public final void rule__SoundContentSet__AllocatableAssignment_4_2_2_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:26342:1: ( ( ( ruleQualifiedName ) ) )
+ // InternalRBAModel.g:26343:2: ( ( ruleQualifiedName ) )
+ {
+ // InternalRBAModel.g:26343:2: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:26344:3: ( ruleQualifiedName )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentSetAccess().getAllocatableAbstractAllocatableCrossReference_4_2_2_0_0());
+ }
+ // InternalRBAModel.g:26345:3: ( ruleQualifiedName )
+ // InternalRBAModel.g:26346:4: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentSetAccess().getAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_0_0_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentSetAccess().getAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_0_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentSetAccess().getAllocatableAbstractAllocatableCrossReference_4_2_2_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__AllocatableAssignment_4_2_2_0"
+
+
+ // $ANTLR start "rule__SoundContentSet__AllocatableAssignment_4_2_2_1_1"
+ // InternalRBAModel.g:26357:1: rule__SoundContentSet__AllocatableAssignment_4_2_2_1_1 : ( ( ruleQualifiedName ) ) ;
+ public final void rule__SoundContentSet__AllocatableAssignment_4_2_2_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:26361:1: ( ( ( ruleQualifiedName ) ) )
+ // InternalRBAModel.g:26362:2: ( ( ruleQualifiedName ) )
+ {
+ // InternalRBAModel.g:26362:2: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:26363:3: ( ruleQualifiedName )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentSetAccess().getAllocatableAbstractAllocatableCrossReference_4_2_2_1_1_0());
+ }
+ // InternalRBAModel.g:26364:3: ( ruleQualifiedName )
+ // InternalRBAModel.g:26365:4: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentSetAccess().getAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_1_1_0_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentSetAccess().getAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_1_1_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSoundContentSetAccess().getAllocatableAbstractAllocatableCrossReference_4_2_2_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SoundContentSet__AllocatableAssignment_4_2_2_1_1"
+
+
+ // $ANTLR start "rule__Scene__NameAssignment_2"
+ // InternalRBAModel.g:26376:1: rule__Scene__NameAssignment_2 : ( ruleQualifiedName ) ;
+ public final void rule__Scene__NameAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:26380:1: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:26381:2: ( ruleQualifiedName )
+ {
+ // InternalRBAModel.g:26381:2: ( ruleQualifiedName )
+ // InternalRBAModel.g:26382:3: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSceneAccess().getNameQualifiedNameParserRuleCall_2_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSceneAccess().getNameQualifiedNameParserRuleCall_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Scene__NameAssignment_2"
+
+
+ // $ANTLR start "rule__Scene__DescriptionAssignment_4_0_1"
+ // InternalRBAModel.g:26391:1: rule__Scene__DescriptionAssignment_4_0_1 : ( ruleEString ) ;
+ public final void rule__Scene__DescriptionAssignment_4_0_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:26395:1: ( ( ruleEString ) )
+ // InternalRBAModel.g:26396:2: ( ruleEString )
+ {
+ // InternalRBAModel.g:26396:2: ( ruleEString )
+ // InternalRBAModel.g:26397:3: ruleEString
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSceneAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleEString();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSceneAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Scene__DescriptionAssignment_4_0_1"
+
+
+ // $ANTLR start "rule__Scene__GlobalAssignment_4_1_1"
+ // InternalRBAModel.g:26406:1: rule__Scene__GlobalAssignment_4_1_1 : ( ruleEBoolean ) ;
+ public final void rule__Scene__GlobalAssignment_4_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:26410:1: ( ( ruleEBoolean ) )
+ // InternalRBAModel.g:26411:2: ( ruleEBoolean )
+ {
+ // InternalRBAModel.g:26411:2: ( ruleEBoolean )
+ // InternalRBAModel.g:26412:3: ruleEBoolean
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSceneAccess().getGlobalEBooleanParserRuleCall_4_1_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleEBoolean();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSceneAccess().getGlobalEBooleanParserRuleCall_4_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Scene__GlobalAssignment_4_1_1"
+
+
+ // $ANTLR start "rule__Scene__PropertiesAssignment_4_2"
+ // InternalRBAModel.g:26421:1: rule__Scene__PropertiesAssignment_4_2 : ( ruleAbstractProperty ) ;
+ public final void rule__Scene__PropertiesAssignment_4_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:26425:1: ( ( ruleAbstractProperty ) )
+ // InternalRBAModel.g:26426:2: ( ruleAbstractProperty )
+ {
+ // InternalRBAModel.g:26426:2: ( ruleAbstractProperty )
+ // InternalRBAModel.g:26427:3: ruleAbstractProperty
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSceneAccess().getPropertiesAbstractPropertyParserRuleCall_4_2_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleAbstractProperty();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSceneAccess().getPropertiesAbstractPropertyParserRuleCall_4_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Scene__PropertiesAssignment_4_2"
+
+
+ // $ANTLR start "rule__VerticalLayout__BasePointAssignment_3_0_1"
+ // InternalRBAModel.g:26436:1: rule__VerticalLayout__BasePointAssignment_3_0_1 : ( ruleBasePoint ) ;
+ public final void rule__VerticalLayout__BasePointAssignment_3_0_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:26440:1: ( ( ruleBasePoint ) )
+ // InternalRBAModel.g:26441:2: ( ruleBasePoint )
+ {
+ // InternalRBAModel.g:26441:2: ( ruleBasePoint )
+ // InternalRBAModel.g:26442:3: ruleBasePoint
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVerticalLayoutAccess().getBasePointBasePointEnumRuleCall_3_0_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleBasePoint();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVerticalLayoutAccess().getBasePointBasePointEnumRuleCall_3_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VerticalLayout__BasePointAssignment_3_0_1"
+
+
+ // $ANTLR start "rule__VerticalLayout__SubareaAssignment_3_1_2_0"
+ // InternalRBAModel.g:26451:1: rule__VerticalLayout__SubareaAssignment_3_1_2_0 : ( ( ruleQualifiedName ) ) ;
+ public final void rule__VerticalLayout__SubareaAssignment_3_1_2_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:26455:1: ( ( ( ruleQualifiedName ) ) )
+ // InternalRBAModel.g:26456:2: ( ( ruleQualifiedName ) )
+ {
+ // InternalRBAModel.g:26456:2: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:26457:3: ( ruleQualifiedName )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVerticalLayoutAccess().getSubareaAreaCrossReference_3_1_2_0_0());
+ }
+ // InternalRBAModel.g:26458:3: ( ruleQualifiedName )
+ // InternalRBAModel.g:26459:4: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVerticalLayoutAccess().getSubareaAreaQualifiedNameParserRuleCall_3_1_2_0_0_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVerticalLayoutAccess().getSubareaAreaQualifiedNameParserRuleCall_3_1_2_0_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVerticalLayoutAccess().getSubareaAreaCrossReference_3_1_2_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VerticalLayout__SubareaAssignment_3_1_2_0"
+
+
+ // $ANTLR start "rule__VerticalLayout__SubareaAssignment_3_1_2_1_1"
+ // InternalRBAModel.g:26470:1: rule__VerticalLayout__SubareaAssignment_3_1_2_1_1 : ( ( ruleQualifiedName ) ) ;
+ public final void rule__VerticalLayout__SubareaAssignment_3_1_2_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:26474:1: ( ( ( ruleQualifiedName ) ) )
+ // InternalRBAModel.g:26475:2: ( ( ruleQualifiedName ) )
+ {
+ // InternalRBAModel.g:26475:2: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:26476:3: ( ruleQualifiedName )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVerticalLayoutAccess().getSubareaAreaCrossReference_3_1_2_1_1_0());
+ }
+ // InternalRBAModel.g:26477:3: ( ruleQualifiedName )
+ // InternalRBAModel.g:26478:4: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVerticalLayoutAccess().getSubareaAreaQualifiedNameParserRuleCall_3_1_2_1_1_0_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVerticalLayoutAccess().getSubareaAreaQualifiedNameParserRuleCall_3_1_2_1_1_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getVerticalLayoutAccess().getSubareaAreaCrossReference_3_1_2_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__VerticalLayout__SubareaAssignment_3_1_2_1_1"
+
+
+ // $ANTLR start "rule__HorizontalLayout__BasePointAssignment_3_0_1"
+ // InternalRBAModel.g:26489:1: rule__HorizontalLayout__BasePointAssignment_3_0_1 : ( ruleBasePoint ) ;
+ public final void rule__HorizontalLayout__BasePointAssignment_3_0_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:26493:1: ( ( ruleBasePoint ) )
+ // InternalRBAModel.g:26494:2: ( ruleBasePoint )
+ {
+ // InternalRBAModel.g:26494:2: ( ruleBasePoint )
+ // InternalRBAModel.g:26495:3: ruleBasePoint
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getHorizontalLayoutAccess().getBasePointBasePointEnumRuleCall_3_0_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleBasePoint();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getHorizontalLayoutAccess().getBasePointBasePointEnumRuleCall_3_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HorizontalLayout__BasePointAssignment_3_0_1"
+
+
+ // $ANTLR start "rule__HorizontalLayout__SubareaAssignment_3_1_2_0"
+ // InternalRBAModel.g:26504:1: rule__HorizontalLayout__SubareaAssignment_3_1_2_0 : ( ( ruleQualifiedName ) ) ;
+ public final void rule__HorizontalLayout__SubareaAssignment_3_1_2_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:26508:1: ( ( ( ruleQualifiedName ) ) )
+ // InternalRBAModel.g:26509:2: ( ( ruleQualifiedName ) )
+ {
+ // InternalRBAModel.g:26509:2: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:26510:3: ( ruleQualifiedName )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getHorizontalLayoutAccess().getSubareaAreaCrossReference_3_1_2_0_0());
+ }
+ // InternalRBAModel.g:26511:3: ( ruleQualifiedName )
+ // InternalRBAModel.g:26512:4: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getHorizontalLayoutAccess().getSubareaAreaQualifiedNameParserRuleCall_3_1_2_0_0_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getHorizontalLayoutAccess().getSubareaAreaQualifiedNameParserRuleCall_3_1_2_0_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getHorizontalLayoutAccess().getSubareaAreaCrossReference_3_1_2_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HorizontalLayout__SubareaAssignment_3_1_2_0"
+
+
+ // $ANTLR start "rule__HorizontalLayout__SubareaAssignment_3_1_2_1_1"
+ // InternalRBAModel.g:26523:1: rule__HorizontalLayout__SubareaAssignment_3_1_2_1_1 : ( ( ruleQualifiedName ) ) ;
+ public final void rule__HorizontalLayout__SubareaAssignment_3_1_2_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:26527:1: ( ( ( ruleQualifiedName ) ) )
+ // InternalRBAModel.g:26528:2: ( ( ruleQualifiedName ) )
+ {
+ // InternalRBAModel.g:26528:2: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:26529:3: ( ruleQualifiedName )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getHorizontalLayoutAccess().getSubareaAreaCrossReference_3_1_2_1_1_0());
+ }
+ // InternalRBAModel.g:26530:3: ( ruleQualifiedName )
+ // InternalRBAModel.g:26531:4: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getHorizontalLayoutAccess().getSubareaAreaQualifiedNameParserRuleCall_3_1_2_1_1_0_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getHorizontalLayoutAccess().getSubareaAreaQualifiedNameParserRuleCall_3_1_2_1_1_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getHorizontalLayoutAccess().getSubareaAreaCrossReference_3_1_2_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__HorizontalLayout__SubareaAssignment_3_1_2_1_1"
+
+
+ // $ANTLR start "rule__FixedPositionLayout__SubAreaPositionAssignment_3"
+ // InternalRBAModel.g:26542:1: rule__FixedPositionLayout__SubAreaPositionAssignment_3 : ( rulePositionContainer ) ;
+ public final void rule__FixedPositionLayout__SubAreaPositionAssignment_3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:26546:1: ( ( rulePositionContainer ) )
+ // InternalRBAModel.g:26547:2: ( rulePositionContainer )
+ {
+ // InternalRBAModel.g:26547:2: ( rulePositionContainer )
+ // InternalRBAModel.g:26548:3: rulePositionContainer
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFixedPositionLayoutAccess().getSubAreaPositionPositionContainerParserRuleCall_3_0());
+ }
+ pushFollow(FOLLOW_2);
+ rulePositionContainer();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFixedPositionLayoutAccess().getSubAreaPositionPositionContainerParserRuleCall_3_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FixedPositionLayout__SubAreaPositionAssignment_3"
+
+
+ // $ANTLR start "rule__PositionContainer__XAssignment_3_0_1"
+ // InternalRBAModel.g:26557:1: rule__PositionContainer__XAssignment_3_0_1 : ( ruleEInt ) ;
+ public final void rule__PositionContainer__XAssignment_3_0_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:26561:1: ( ( ruleEInt ) )
+ // InternalRBAModel.g:26562:2: ( ruleEInt )
+ {
+ // InternalRBAModel.g:26562:2: ( ruleEInt )
+ // InternalRBAModel.g:26563:3: ruleEInt
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPositionContainerAccess().getXEIntParserRuleCall_3_0_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleEInt();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPositionContainerAccess().getXEIntParserRuleCall_3_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PositionContainer__XAssignment_3_0_1"
+
+
+ // $ANTLR start "rule__PositionContainer__YAssignment_3_1_1"
+ // InternalRBAModel.g:26572:1: rule__PositionContainer__YAssignment_3_1_1 : ( ruleEInt ) ;
+ public final void rule__PositionContainer__YAssignment_3_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:26576:1: ( ( ruleEInt ) )
+ // InternalRBAModel.g:26577:2: ( ruleEInt )
+ {
+ // InternalRBAModel.g:26577:2: ( ruleEInt )
+ // InternalRBAModel.g:26578:3: ruleEInt
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPositionContainerAccess().getYEIntParserRuleCall_3_1_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleEInt();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPositionContainerAccess().getYEIntParserRuleCall_3_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PositionContainer__YAssignment_3_1_1"
+
+
+ // $ANTLR start "rule__PositionContainer__BasePointAssignment_3_2_1"
+ // InternalRBAModel.g:26587:1: rule__PositionContainer__BasePointAssignment_3_2_1 : ( ruleBasePoint ) ;
+ public final void rule__PositionContainer__BasePointAssignment_3_2_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:26591:1: ( ( ruleBasePoint ) )
+ // InternalRBAModel.g:26592:2: ( ruleBasePoint )
+ {
+ // InternalRBAModel.g:26592:2: ( ruleBasePoint )
+ // InternalRBAModel.g:26593:3: ruleBasePoint
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPositionContainerAccess().getBasePointBasePointEnumRuleCall_3_2_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleBasePoint();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPositionContainerAccess().getBasePointBasePointEnumRuleCall_3_2_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PositionContainer__BasePointAssignment_3_2_1"
+
+
+ // $ANTLR start "rule__PositionContainer__AreaAssignment_3_3_1"
+ // InternalRBAModel.g:26602:1: rule__PositionContainer__AreaAssignment_3_3_1 : ( ( ruleQualifiedName ) ) ;
+ public final void rule__PositionContainer__AreaAssignment_3_3_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:26606:1: ( ( ( ruleQualifiedName ) ) )
+ // InternalRBAModel.g:26607:2: ( ( ruleQualifiedName ) )
+ {
+ // InternalRBAModel.g:26607:2: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:26608:3: ( ruleQualifiedName )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPositionContainerAccess().getAreaAreaCrossReference_3_3_1_0());
+ }
+ // InternalRBAModel.g:26609:3: ( ruleQualifiedName )
+ // InternalRBAModel.g:26610:4: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPositionContainerAccess().getAreaAreaQualifiedNameParserRuleCall_3_3_1_0_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPositionContainerAccess().getAreaAreaQualifiedNameParserRuleCall_3_3_1_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPositionContainerAccess().getAreaAreaCrossReference_3_3_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PositionContainer__AreaAssignment_3_3_1"
+
+
+ // $ANTLR start "rule__PositionContainer__OffsetAssignment_3_4"
+ // InternalRBAModel.g:26621:1: rule__PositionContainer__OffsetAssignment_3_4 : ( ruleOffset ) ;
+ public final void rule__PositionContainer__OffsetAssignment_3_4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalRBAModel.g:26625:1: ( ( ruleOffset ) )
+ // InternalRBAModel.g:26626:2: ( ruleOffset )
+ {
+ // InternalRBAModel.g:26626:2: ( ruleOffset )
+ // InternalRBAModel.g:26627:3: ruleOffset
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPositionContainerAccess().getOffsetOffsetParserRuleCall_3_4_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleOffset();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPositionContainerAccess().getOffsetOffsetParserRuleCall_3_4_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PositionContainer__OffsetAssignment_3_4"
+
+ // $ANTLR start synpred144_InternalRBAModel
+ public final void synpred144_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:12522:3: ( rule__CImpliesOperator__Group_1__0 )
+ // InternalRBAModel.g:12522:3: rule__CImpliesOperator__Group_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__CImpliesOperator__Group_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred144_InternalRBAModel
+
+ // $ANTLR start synpred145_InternalRBAModel
+ public final void synpred145_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:12711:3: ( rule__COrOperator__Group_1__0 )
+ // InternalRBAModel.g:12711:3: rule__COrOperator__Group_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COrOperator__Group_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred145_InternalRBAModel
+
+ // $ANTLR start synpred146_InternalRBAModel
+ public final void synpred146_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:12900:3: ( rule__CAndOperator__Group_1__0 )
+ // InternalRBAModel.g:12900:3: rule__CAndOperator__Group_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__CAndOperator__Group_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred146_InternalRBAModel
+
+ // $ANTLR start synpred147_InternalRBAModel
+ public final void synpred147_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:13089:3: ( rule__CEqualityExpression__Group_1__0 )
+ // InternalRBAModel.g:13089:3: rule__CEqualityExpression__Group_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__CEqualityExpression__Group_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred147_InternalRBAModel
+
+ // $ANTLR start synpred148_InternalRBAModel
+ public final void synpred148_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:13386:3: ( rule__CRelationalExpression__Group_1__0 )
+ // InternalRBAModel.g:13386:3: rule__CRelationalExpression__Group_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__CRelationalExpression__Group_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred148_InternalRBAModel
+
+ // $ANTLR start synpred149_InternalRBAModel
+ public final void synpred149_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:13818:3: ( rule__COperationFeatureCall__Group_1__0 )
+ // InternalRBAModel.g:13818:3: rule__COperationFeatureCall__Group_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__COperationFeatureCall__Group_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred149_InternalRBAModel
+
+ // $ANTLR start synpred157_InternalRBAModel
+ public final void synpred157_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:17517:3: ( rule__IfStatement__Group_6__0 )
+ // InternalRBAModel.g:17517:3: rule__IfStatement__Group_6__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__IfStatement__Group_6__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred157_InternalRBAModel
+
+ // $ANTLR start synpred180_InternalRBAModel
+ public final void synpred180_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:21771:2: ( rule__Package__UnorderedGroup_4__0 )
+ // InternalRBAModel.g:21771:2: rule__Package__UnorderedGroup_4__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Package__UnorderedGroup_4__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred180_InternalRBAModel
+
+ // $ANTLR start synpred181_InternalRBAModel
+ public final void synpred181_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:21786:3: ( ({...}? => ( ( ( rule__Package__Group_4_0__0 ) ) ) ) )
+ // InternalRBAModel.g:21786:3: ({...}? => ( ( ( rule__Package__Group_4_0__0 ) ) ) )
+ {
+ // InternalRBAModel.g:21786:3: ({...}? => ( ( ( rule__Package__Group_4_0__0 ) ) ) )
+ // InternalRBAModel.g:21787:4: {...}? => ( ( ( rule__Package__Group_4_0__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred181_InternalRBAModel", "getUnorderedGroupHelper().canSelect(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 0)");
+ }
+ // InternalRBAModel.g:21787:103: ( ( ( rule__Package__Group_4_0__0 ) ) )
+ // InternalRBAModel.g:21788:5: ( ( rule__Package__Group_4_0__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 0);
+ // InternalRBAModel.g:21794:5: ( ( rule__Package__Group_4_0__0 ) )
+ // InternalRBAModel.g:21795:6: ( rule__Package__Group_4_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPackageAccess().getGroup_4_0());
+ }
+ // InternalRBAModel.g:21796:6: ( rule__Package__Group_4_0__0 )
+ // InternalRBAModel.g:21796:7: rule__Package__Group_4_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Package__Group_4_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred181_InternalRBAModel
+
+ // $ANTLR start synpred182_InternalRBAModel
+ public final void synpred182_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:21817:8: ( rule__Package__PackagableelementAssignment_4_1 )
+ // InternalRBAModel.g:21817:9: rule__Package__PackagableelementAssignment_4_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__Package__PackagableelementAssignment_4_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred182_InternalRBAModel
+
+ // $ANTLR start synpred183_InternalRBAModel
+ public final void synpred183_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:21837:2: ( rule__Package__UnorderedGroup_4__1 )
+ // InternalRBAModel.g:21837:2: rule__Package__UnorderedGroup_4__1
+ {
+ pushFollow(FOLLOW_2);
+ rule__Package__UnorderedGroup_4__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred183_InternalRBAModel
+
+ // $ANTLR start synpred184_InternalRBAModel
+ public final void synpred184_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:21861:2: ( rule__Display__UnorderedGroup_4__0 )
+ // InternalRBAModel.g:21861:2: rule__Display__UnorderedGroup_4__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Display__UnorderedGroup_4__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred184_InternalRBAModel
+
+ // $ANTLR start synpred185_InternalRBAModel
+ public final void synpred185_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:21876:3: ( ({...}? => ( ( ( rule__Display__Group_4_0__0 ) ) ) ) )
+ // InternalRBAModel.g:21876:3: ({...}? => ( ( ( rule__Display__Group_4_0__0 ) ) ) )
+ {
+ // InternalRBAModel.g:21876:3: ({...}? => ( ( ( rule__Display__Group_4_0__0 ) ) ) )
+ // InternalRBAModel.g:21877:4: {...}? => ( ( ( rule__Display__Group_4_0__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred185_InternalRBAModel", "getUnorderedGroupHelper().canSelect(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 0)");
+ }
+ // InternalRBAModel.g:21877:103: ( ( ( rule__Display__Group_4_0__0 ) ) )
+ // InternalRBAModel.g:21878:5: ( ( rule__Display__Group_4_0__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 0);
+ // InternalRBAModel.g:21884:5: ( ( rule__Display__Group_4_0__0 ) )
+ // InternalRBAModel.g:21885:6: ( rule__Display__Group_4_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getDisplayAccess().getGroup_4_0());
+ }
+ // InternalRBAModel.g:21886:6: ( rule__Display__Group_4_0__0 )
+ // InternalRBAModel.g:21886:7: rule__Display__Group_4_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Display__Group_4_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred185_InternalRBAModel
+
+ // $ANTLR start synpred186_InternalRBAModel
+ public final void synpred186_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:21891:3: ( ({...}? => ( ( ( rule__Display__SizeAssignment_4_1 ) ) ) ) )
+ // InternalRBAModel.g:21891:3: ({...}? => ( ( ( rule__Display__SizeAssignment_4_1 ) ) ) )
+ {
+ // InternalRBAModel.g:21891:3: ({...}? => ( ( ( rule__Display__SizeAssignment_4_1 ) ) ) )
+ // InternalRBAModel.g:21892:4: {...}? => ( ( ( rule__Display__SizeAssignment_4_1 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred186_InternalRBAModel", "getUnorderedGroupHelper().canSelect(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 1)");
+ }
+ // InternalRBAModel.g:21892:103: ( ( ( rule__Display__SizeAssignment_4_1 ) ) )
+ // InternalRBAModel.g:21893:5: ( ( rule__Display__SizeAssignment_4_1 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 1);
+ // InternalRBAModel.g:21899:5: ( ( rule__Display__SizeAssignment_4_1 ) )
+ // InternalRBAModel.g:21900:6: ( rule__Display__SizeAssignment_4_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getDisplayAccess().getSizeAssignment_4_1());
+ }
+ // InternalRBAModel.g:21901:6: ( rule__Display__SizeAssignment_4_1 )
+ // InternalRBAModel.g:21901:7: rule__Display__SizeAssignment_4_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__Display__SizeAssignment_4_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred186_InternalRBAModel
+
+ // $ANTLR start synpred187_InternalRBAModel
+ public final void synpred187_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:21935:2: ( rule__Display__UnorderedGroup_4__1 )
+ // InternalRBAModel.g:21935:2: rule__Display__UnorderedGroup_4__1
+ {
+ pushFollow(FOLLOW_2);
+ rule__Display__UnorderedGroup_4__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred187_InternalRBAModel
+
+ // $ANTLR start synpred188_InternalRBAModel
+ public final void synpred188_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:21947:2: ( rule__Display__UnorderedGroup_4__2 )
+ // InternalRBAModel.g:21947:2: rule__Display__UnorderedGroup_4__2
+ {
+ pushFollow(FOLLOW_2);
+ rule__Display__UnorderedGroup_4__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred188_InternalRBAModel
+
+ // $ANTLR start synpred189_InternalRBAModel
+ public final void synpred189_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:21971:2: ( rule__Constraint__UnorderedGroup_4__0 )
+ // InternalRBAModel.g:21971:2: rule__Constraint__UnorderedGroup_4__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Constraint__UnorderedGroup_4__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred189_InternalRBAModel
+
+ // $ANTLR start synpred190_InternalRBAModel
+ public final void synpred190_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:21986:3: ( ({...}? => ( ( ( rule__Constraint__Group_4_0__0 ) ) ) ) )
+ // InternalRBAModel.g:21986:3: ({...}? => ( ( ( rule__Constraint__Group_4_0__0 ) ) ) )
+ {
+ // InternalRBAModel.g:21986:3: ({...}? => ( ( ( rule__Constraint__Group_4_0__0 ) ) ) )
+ // InternalRBAModel.g:21987:4: {...}? => ( ( ( rule__Constraint__Group_4_0__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred190_InternalRBAModel", "getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 0)");
+ }
+ // InternalRBAModel.g:21987:106: ( ( ( rule__Constraint__Group_4_0__0 ) ) )
+ // InternalRBAModel.g:21988:5: ( ( rule__Constraint__Group_4_0__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 0);
+ // InternalRBAModel.g:21994:5: ( ( rule__Constraint__Group_4_0__0 ) )
+ // InternalRBAModel.g:21995:6: ( rule__Constraint__Group_4_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getConstraintAccess().getGroup_4_0());
+ }
+ // InternalRBAModel.g:21996:6: ( rule__Constraint__Group_4_0__0 )
+ // InternalRBAModel.g:21996:7: rule__Constraint__Group_4_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Constraint__Group_4_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred190_InternalRBAModel
+
+ // $ANTLR start synpred191_InternalRBAModel
+ public final void synpred191_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22001:3: ( ({...}? => ( ( ( rule__Constraint__Group_4_1__0 ) ) ) ) )
+ // InternalRBAModel.g:22001:3: ({...}? => ( ( ( rule__Constraint__Group_4_1__0 ) ) ) )
+ {
+ // InternalRBAModel.g:22001:3: ({...}? => ( ( ( rule__Constraint__Group_4_1__0 ) ) ) )
+ // InternalRBAModel.g:22002:4: {...}? => ( ( ( rule__Constraint__Group_4_1__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred191_InternalRBAModel", "getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 1)");
+ }
+ // InternalRBAModel.g:22002:106: ( ( ( rule__Constraint__Group_4_1__0 ) ) )
+ // InternalRBAModel.g:22003:5: ( ( rule__Constraint__Group_4_1__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 1);
+ // InternalRBAModel.g:22009:5: ( ( rule__Constraint__Group_4_1__0 ) )
+ // InternalRBAModel.g:22010:6: ( rule__Constraint__Group_4_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getConstraintAccess().getGroup_4_1());
+ }
+ // InternalRBAModel.g:22011:6: ( rule__Constraint__Group_4_1__0 )
+ // InternalRBAModel.g:22011:7: rule__Constraint__Group_4_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Constraint__Group_4_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred191_InternalRBAModel
+
+ // $ANTLR start synpred192_InternalRBAModel
+ public final void synpred192_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22045:2: ( rule__Constraint__UnorderedGroup_4__1 )
+ // InternalRBAModel.g:22045:2: rule__Constraint__UnorderedGroup_4__1
+ {
+ pushFollow(FOLLOW_2);
+ rule__Constraint__UnorderedGroup_4__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred192_InternalRBAModel
+
+ // $ANTLR start synpred193_InternalRBAModel
+ public final void synpred193_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22057:2: ( rule__Constraint__UnorderedGroup_4__2 )
+ // InternalRBAModel.g:22057:2: rule__Constraint__UnorderedGroup_4__2
+ {
+ pushFollow(FOLLOW_2);
+ rule__Constraint__UnorderedGroup_4__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred193_InternalRBAModel
+
+ // $ANTLR start synpred194_InternalRBAModel
+ public final void synpred194_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22081:2: ( rule__ViewContent__UnorderedGroup_4__0 )
+ // InternalRBAModel.g:22081:2: rule__ViewContent__UnorderedGroup_4__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContent__UnorderedGroup_4__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred194_InternalRBAModel
+
+ // $ANTLR start synpred195_InternalRBAModel
+ public final void synpred195_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22096:3: ( ({...}? => ( ( ( rule__ViewContent__Group_4_0__0 ) ) ) ) )
+ // InternalRBAModel.g:22096:3: ({...}? => ( ( ( rule__ViewContent__Group_4_0__0 ) ) ) )
+ {
+ // InternalRBAModel.g:22096:3: ({...}? => ( ( ( rule__ViewContent__Group_4_0__0 ) ) ) )
+ // InternalRBAModel.g:22097:4: {...}? => ( ( ( rule__ViewContent__Group_4_0__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred195_InternalRBAModel", "getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 0)");
+ }
+ // InternalRBAModel.g:22097:107: ( ( ( rule__ViewContent__Group_4_0__0 ) ) )
+ // InternalRBAModel.g:22098:5: ( ( rule__ViewContent__Group_4_0__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 0);
+ // InternalRBAModel.g:22104:5: ( ( rule__ViewContent__Group_4_0__0 ) )
+ // InternalRBAModel.g:22105:6: ( rule__ViewContent__Group_4_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentAccess().getGroup_4_0());
+ }
+ // InternalRBAModel.g:22106:6: ( rule__ViewContent__Group_4_0__0 )
+ // InternalRBAModel.g:22106:7: rule__ViewContent__Group_4_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContent__Group_4_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred195_InternalRBAModel
+
+ // $ANTLR start synpred196_InternalRBAModel
+ public final void synpred196_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22111:3: ( ({...}? => ( ( ( rule__ViewContent__Group_4_1__0 ) ) ) ) )
+ // InternalRBAModel.g:22111:3: ({...}? => ( ( ( rule__ViewContent__Group_4_1__0 ) ) ) )
+ {
+ // InternalRBAModel.g:22111:3: ({...}? => ( ( ( rule__ViewContent__Group_4_1__0 ) ) ) )
+ // InternalRBAModel.g:22112:4: {...}? => ( ( ( rule__ViewContent__Group_4_1__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred196_InternalRBAModel", "getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 1)");
+ }
+ // InternalRBAModel.g:22112:107: ( ( ( rule__ViewContent__Group_4_1__0 ) ) )
+ // InternalRBAModel.g:22113:5: ( ( rule__ViewContent__Group_4_1__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 1);
+ // InternalRBAModel.g:22119:5: ( ( rule__ViewContent__Group_4_1__0 ) )
+ // InternalRBAModel.g:22120:6: ( rule__ViewContent__Group_4_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentAccess().getGroup_4_1());
+ }
+ // InternalRBAModel.g:22121:6: ( rule__ViewContent__Group_4_1__0 )
+ // InternalRBAModel.g:22121:7: rule__ViewContent__Group_4_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContent__Group_4_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred196_InternalRBAModel
+
+ // $ANTLR start synpred197_InternalRBAModel
+ public final void synpred197_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22126:3: ( ({...}? => ( ( ( rule__ViewContent__Group_4_2__0 ) ) ) ) )
+ // InternalRBAModel.g:22126:3: ({...}? => ( ( ( rule__ViewContent__Group_4_2__0 ) ) ) )
+ {
+ // InternalRBAModel.g:22126:3: ({...}? => ( ( ( rule__ViewContent__Group_4_2__0 ) ) ) )
+ // InternalRBAModel.g:22127:4: {...}? => ( ( ( rule__ViewContent__Group_4_2__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 2) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred197_InternalRBAModel", "getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 2)");
+ }
+ // InternalRBAModel.g:22127:107: ( ( ( rule__ViewContent__Group_4_2__0 ) ) )
+ // InternalRBAModel.g:22128:5: ( ( rule__ViewContent__Group_4_2__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 2);
+ // InternalRBAModel.g:22134:5: ( ( rule__ViewContent__Group_4_2__0 ) )
+ // InternalRBAModel.g:22135:6: ( rule__ViewContent__Group_4_2__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentAccess().getGroup_4_2());
+ }
+ // InternalRBAModel.g:22136:6: ( rule__ViewContent__Group_4_2__0 )
+ // InternalRBAModel.g:22136:7: rule__ViewContent__Group_4_2__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContent__Group_4_2__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred197_InternalRBAModel
+
+ // $ANTLR start synpred198_InternalRBAModel
+ public final void synpred198_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22157:8: ( rule__ViewContent__StatesAssignment_4_3 )
+ // InternalRBAModel.g:22157:9: rule__ViewContent__StatesAssignment_4_3
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContent__StatesAssignment_4_3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred198_InternalRBAModel
+
+ // $ANTLR start synpred199_InternalRBAModel
+ public final void synpred199_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22141:3: ( ({...}? => ( ( ( ( rule__ViewContent__StatesAssignment_4_3 ) ) ( ( ( rule__ViewContent__StatesAssignment_4_3 )=> rule__ViewContent__StatesAssignment_4_3 )* ) ) ) ) )
+ // InternalRBAModel.g:22141:3: ({...}? => ( ( ( ( rule__ViewContent__StatesAssignment_4_3 ) ) ( ( ( rule__ViewContent__StatesAssignment_4_3 )=> rule__ViewContent__StatesAssignment_4_3 )* ) ) ) )
+ {
+ // InternalRBAModel.g:22141:3: ({...}? => ( ( ( ( rule__ViewContent__StatesAssignment_4_3 ) ) ( ( ( rule__ViewContent__StatesAssignment_4_3 )=> rule__ViewContent__StatesAssignment_4_3 )* ) ) ) )
+ // InternalRBAModel.g:22142:4: {...}? => ( ( ( ( rule__ViewContent__StatesAssignment_4_3 ) ) ( ( ( rule__ViewContent__StatesAssignment_4_3 )=> rule__ViewContent__StatesAssignment_4_3 )* ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 3) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred199_InternalRBAModel", "getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 3)");
+ }
+ // InternalRBAModel.g:22142:107: ( ( ( ( rule__ViewContent__StatesAssignment_4_3 ) ) ( ( ( rule__ViewContent__StatesAssignment_4_3 )=> rule__ViewContent__StatesAssignment_4_3 )* ) ) )
+ // InternalRBAModel.g:22143:5: ( ( ( rule__ViewContent__StatesAssignment_4_3 ) ) ( ( ( rule__ViewContent__StatesAssignment_4_3 )=> rule__ViewContent__StatesAssignment_4_3 )* ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 3);
+ // InternalRBAModel.g:22149:5: ( ( ( rule__ViewContent__StatesAssignment_4_3 ) ) ( ( ( rule__ViewContent__StatesAssignment_4_3 )=> rule__ViewContent__StatesAssignment_4_3 )* ) )
+ // InternalRBAModel.g:22150:6: ( ( rule__ViewContent__StatesAssignment_4_3 ) ) ( ( ( rule__ViewContent__StatesAssignment_4_3 )=> rule__ViewContent__StatesAssignment_4_3 )* )
+ {
+ // InternalRBAModel.g:22150:6: ( ( rule__ViewContent__StatesAssignment_4_3 ) )
+ // InternalRBAModel.g:22151:7: ( rule__ViewContent__StatesAssignment_4_3 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentAccess().getStatesAssignment_4_3());
+ }
+ // InternalRBAModel.g:22152:7: ( rule__ViewContent__StatesAssignment_4_3 )
+ // InternalRBAModel.g:22152:8: rule__ViewContent__StatesAssignment_4_3
+ {
+ pushFollow(FOLLOW_161);
+ rule__ViewContent__StatesAssignment_4_3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+ // InternalRBAModel.g:22155:6: ( ( ( rule__ViewContent__StatesAssignment_4_3 )=> rule__ViewContent__StatesAssignment_4_3 )* )
+ // InternalRBAModel.g:22156:7: ( ( rule__ViewContent__StatesAssignment_4_3 )=> rule__ViewContent__StatesAssignment_4_3 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentAccess().getStatesAssignment_4_3());
+ }
+ // InternalRBAModel.g:22157:7: ( ( rule__ViewContent__StatesAssignment_4_3 )=> rule__ViewContent__StatesAssignment_4_3 )*
+ loop192:
+ do {
+ int alt192=2;
+ int LA192_0 = input.LA(1);
+
+ if ( (LA192_0==131) && (synpred198_InternalRBAModel())) {
+ alt192=1;
+ }
+
+
+ switch (alt192) {
+ case 1 :
+ // InternalRBAModel.g:22157:8: ( rule__ViewContent__StatesAssignment_4_3 )=> rule__ViewContent__StatesAssignment_4_3
+ {
+ pushFollow(FOLLOW_161);
+ rule__ViewContent__StatesAssignment_4_3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop192;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred199_InternalRBAModel
+
+ // $ANTLR start synpred200_InternalRBAModel
+ public final void synpred200_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22179:8: ( rule__ViewContent__SizeAssignment_4_4 )
+ // InternalRBAModel.g:22179:9: rule__ViewContent__SizeAssignment_4_4
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContent__SizeAssignment_4_4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred200_InternalRBAModel
+
+ // $ANTLR start synpred201_InternalRBAModel
+ public final void synpred201_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22163:3: ( ({...}? => ( ( ( ( rule__ViewContent__SizeAssignment_4_4 ) ) ( ( ( rule__ViewContent__SizeAssignment_4_4 )=> rule__ViewContent__SizeAssignment_4_4 )* ) ) ) ) )
+ // InternalRBAModel.g:22163:3: ({...}? => ( ( ( ( rule__ViewContent__SizeAssignment_4_4 ) ) ( ( ( rule__ViewContent__SizeAssignment_4_4 )=> rule__ViewContent__SizeAssignment_4_4 )* ) ) ) )
+ {
+ // InternalRBAModel.g:22163:3: ({...}? => ( ( ( ( rule__ViewContent__SizeAssignment_4_4 ) ) ( ( ( rule__ViewContent__SizeAssignment_4_4 )=> rule__ViewContent__SizeAssignment_4_4 )* ) ) ) )
+ // InternalRBAModel.g:22164:4: {...}? => ( ( ( ( rule__ViewContent__SizeAssignment_4_4 ) ) ( ( ( rule__ViewContent__SizeAssignment_4_4 )=> rule__ViewContent__SizeAssignment_4_4 )* ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 4) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred201_InternalRBAModel", "getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 4)");
+ }
+ // InternalRBAModel.g:22164:107: ( ( ( ( rule__ViewContent__SizeAssignment_4_4 ) ) ( ( ( rule__ViewContent__SizeAssignment_4_4 )=> rule__ViewContent__SizeAssignment_4_4 )* ) ) )
+ // InternalRBAModel.g:22165:5: ( ( ( rule__ViewContent__SizeAssignment_4_4 ) ) ( ( ( rule__ViewContent__SizeAssignment_4_4 )=> rule__ViewContent__SizeAssignment_4_4 )* ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 4);
+ // InternalRBAModel.g:22171:5: ( ( ( rule__ViewContent__SizeAssignment_4_4 ) ) ( ( ( rule__ViewContent__SizeAssignment_4_4 )=> rule__ViewContent__SizeAssignment_4_4 )* ) )
+ // InternalRBAModel.g:22172:6: ( ( rule__ViewContent__SizeAssignment_4_4 ) ) ( ( ( rule__ViewContent__SizeAssignment_4_4 )=> rule__ViewContent__SizeAssignment_4_4 )* )
+ {
+ // InternalRBAModel.g:22172:6: ( ( rule__ViewContent__SizeAssignment_4_4 ) )
+ // InternalRBAModel.g:22173:7: ( rule__ViewContent__SizeAssignment_4_4 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentAccess().getSizeAssignment_4_4());
+ }
+ // InternalRBAModel.g:22174:7: ( rule__ViewContent__SizeAssignment_4_4 )
+ // InternalRBAModel.g:22174:8: rule__ViewContent__SizeAssignment_4_4
+ {
+ pushFollow(FOLLOW_162);
+ rule__ViewContent__SizeAssignment_4_4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+ // InternalRBAModel.g:22177:6: ( ( ( rule__ViewContent__SizeAssignment_4_4 )=> rule__ViewContent__SizeAssignment_4_4 )* )
+ // InternalRBAModel.g:22178:7: ( ( rule__ViewContent__SizeAssignment_4_4 )=> rule__ViewContent__SizeAssignment_4_4 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentAccess().getSizeAssignment_4_4());
+ }
+ // InternalRBAModel.g:22179:7: ( ( rule__ViewContent__SizeAssignment_4_4 )=> rule__ViewContent__SizeAssignment_4_4 )*
+ loop193:
+ do {
+ int alt193=2;
+ int LA193_0 = input.LA(1);
+
+ if ( (LA193_0==119) && (synpred200_InternalRBAModel())) {
+ alt193=1;
+ }
+ else if ( (LA193_0==116) && (synpred200_InternalRBAModel())) {
+ alt193=1;
+ }
+
+
+ switch (alt193) {
+ case 1 :
+ // InternalRBAModel.g:22179:8: ( rule__ViewContent__SizeAssignment_4_4 )=> rule__ViewContent__SizeAssignment_4_4
+ {
+ pushFollow(FOLLOW_162);
+ rule__ViewContent__SizeAssignment_4_4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop193;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred201_InternalRBAModel
+
+ // $ANTLR start synpred202_InternalRBAModel
+ public final void synpred202_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22201:8: ( rule__ViewContent__TagsAssignment_4_5 )
+ // InternalRBAModel.g:22201:9: rule__ViewContent__TagsAssignment_4_5
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContent__TagsAssignment_4_5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred202_InternalRBAModel
+
+ // $ANTLR start synpred203_InternalRBAModel
+ public final void synpred203_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22221:2: ( rule__ViewContent__UnorderedGroup_4__1 )
+ // InternalRBAModel.g:22221:2: rule__ViewContent__UnorderedGroup_4__1
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContent__UnorderedGroup_4__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred203_InternalRBAModel
+
+ // $ANTLR start synpred204_InternalRBAModel
+ public final void synpred204_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22233:2: ( rule__ViewContent__UnorderedGroup_4__2 )
+ // InternalRBAModel.g:22233:2: rule__ViewContent__UnorderedGroup_4__2
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContent__UnorderedGroup_4__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred204_InternalRBAModel
+
+ // $ANTLR start synpred205_InternalRBAModel
+ public final void synpred205_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22245:2: ( rule__ViewContent__UnorderedGroup_4__3 )
+ // InternalRBAModel.g:22245:2: rule__ViewContent__UnorderedGroup_4__3
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContent__UnorderedGroup_4__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred205_InternalRBAModel
+
+ // $ANTLR start synpred206_InternalRBAModel
+ public final void synpred206_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22257:2: ( rule__ViewContent__UnorderedGroup_4__4 )
+ // InternalRBAModel.g:22257:2: rule__ViewContent__UnorderedGroup_4__4
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContent__UnorderedGroup_4__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred206_InternalRBAModel
+
+ // $ANTLR start synpred207_InternalRBAModel
+ public final void synpred207_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22269:2: ( rule__ViewContent__UnorderedGroup_4__5 )
+ // InternalRBAModel.g:22269:2: rule__ViewContent__UnorderedGroup_4__5
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContent__UnorderedGroup_4__5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred207_InternalRBAModel
+
+ // $ANTLR start synpred208_InternalRBAModel
+ public final void synpred208_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22293:2: ( rule__SoundContent__UnorderedGroup_4__0 )
+ // InternalRBAModel.g:22293:2: rule__SoundContent__UnorderedGroup_4__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContent__UnorderedGroup_4__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred208_InternalRBAModel
+
+ // $ANTLR start synpred209_InternalRBAModel
+ public final void synpred209_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22308:3: ( ({...}? => ( ( ( rule__SoundContent__Group_4_0__0 ) ) ) ) )
+ // InternalRBAModel.g:22308:3: ({...}? => ( ( ( rule__SoundContent__Group_4_0__0 ) ) ) )
+ {
+ // InternalRBAModel.g:22308:3: ({...}? => ( ( ( rule__SoundContent__Group_4_0__0 ) ) ) )
+ // InternalRBAModel.g:22309:4: {...}? => ( ( ( rule__SoundContent__Group_4_0__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred209_InternalRBAModel", "getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 0)");
+ }
+ // InternalRBAModel.g:22309:108: ( ( ( rule__SoundContent__Group_4_0__0 ) ) )
+ // InternalRBAModel.g:22310:5: ( ( rule__SoundContent__Group_4_0__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 0);
+ // InternalRBAModel.g:22316:5: ( ( rule__SoundContent__Group_4_0__0 ) )
+ // InternalRBAModel.g:22317:6: ( rule__SoundContent__Group_4_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentAccess().getGroup_4_0());
+ }
+ // InternalRBAModel.g:22318:6: ( rule__SoundContent__Group_4_0__0 )
+ // InternalRBAModel.g:22318:7: rule__SoundContent__Group_4_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContent__Group_4_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred209_InternalRBAModel
+
+ // $ANTLR start synpred210_InternalRBAModel
+ public final void synpred210_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22323:3: ( ({...}? => ( ( ( rule__SoundContent__Group_4_1__0 ) ) ) ) )
+ // InternalRBAModel.g:22323:3: ({...}? => ( ( ( rule__SoundContent__Group_4_1__0 ) ) ) )
+ {
+ // InternalRBAModel.g:22323:3: ({...}? => ( ( ( rule__SoundContent__Group_4_1__0 ) ) ) )
+ // InternalRBAModel.g:22324:4: {...}? => ( ( ( rule__SoundContent__Group_4_1__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred210_InternalRBAModel", "getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 1)");
+ }
+ // InternalRBAModel.g:22324:108: ( ( ( rule__SoundContent__Group_4_1__0 ) ) )
+ // InternalRBAModel.g:22325:5: ( ( rule__SoundContent__Group_4_1__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 1);
+ // InternalRBAModel.g:22331:5: ( ( rule__SoundContent__Group_4_1__0 ) )
+ // InternalRBAModel.g:22332:6: ( rule__SoundContent__Group_4_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentAccess().getGroup_4_1());
+ }
+ // InternalRBAModel.g:22333:6: ( rule__SoundContent__Group_4_1__0 )
+ // InternalRBAModel.g:22333:7: rule__SoundContent__Group_4_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContent__Group_4_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred210_InternalRBAModel
+
+ // $ANTLR start synpred211_InternalRBAModel
+ public final void synpred211_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22338:3: ( ({...}? => ( ( ( rule__SoundContent__Group_4_2__0 ) ) ) ) )
+ // InternalRBAModel.g:22338:3: ({...}? => ( ( ( rule__SoundContent__Group_4_2__0 ) ) ) )
+ {
+ // InternalRBAModel.g:22338:3: ({...}? => ( ( ( rule__SoundContent__Group_4_2__0 ) ) ) )
+ // InternalRBAModel.g:22339:4: {...}? => ( ( ( rule__SoundContent__Group_4_2__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 2) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred211_InternalRBAModel", "getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 2)");
+ }
+ // InternalRBAModel.g:22339:108: ( ( ( rule__SoundContent__Group_4_2__0 ) ) )
+ // InternalRBAModel.g:22340:5: ( ( rule__SoundContent__Group_4_2__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 2);
+ // InternalRBAModel.g:22346:5: ( ( rule__SoundContent__Group_4_2__0 ) )
+ // InternalRBAModel.g:22347:6: ( rule__SoundContent__Group_4_2__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentAccess().getGroup_4_2());
+ }
+ // InternalRBAModel.g:22348:6: ( rule__SoundContent__Group_4_2__0 )
+ // InternalRBAModel.g:22348:7: rule__SoundContent__Group_4_2__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContent__Group_4_2__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred211_InternalRBAModel
+
+ // $ANTLR start synpred212_InternalRBAModel
+ public final void synpred212_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22369:8: ( rule__SoundContent__StatesAssignment_4_3 )
+ // InternalRBAModel.g:22369:9: rule__SoundContent__StatesAssignment_4_3
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContent__StatesAssignment_4_3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred212_InternalRBAModel
+
+ // $ANTLR start synpred213_InternalRBAModel
+ public final void synpred213_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22353:3: ( ({...}? => ( ( ( ( rule__SoundContent__StatesAssignment_4_3 ) ) ( ( ( rule__SoundContent__StatesAssignment_4_3 )=> rule__SoundContent__StatesAssignment_4_3 )* ) ) ) ) )
+ // InternalRBAModel.g:22353:3: ({...}? => ( ( ( ( rule__SoundContent__StatesAssignment_4_3 ) ) ( ( ( rule__SoundContent__StatesAssignment_4_3 )=> rule__SoundContent__StatesAssignment_4_3 )* ) ) ) )
+ {
+ // InternalRBAModel.g:22353:3: ({...}? => ( ( ( ( rule__SoundContent__StatesAssignment_4_3 ) ) ( ( ( rule__SoundContent__StatesAssignment_4_3 )=> rule__SoundContent__StatesAssignment_4_3 )* ) ) ) )
+ // InternalRBAModel.g:22354:4: {...}? => ( ( ( ( rule__SoundContent__StatesAssignment_4_3 ) ) ( ( ( rule__SoundContent__StatesAssignment_4_3 )=> rule__SoundContent__StatesAssignment_4_3 )* ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 3) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred213_InternalRBAModel", "getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 3)");
+ }
+ // InternalRBAModel.g:22354:108: ( ( ( ( rule__SoundContent__StatesAssignment_4_3 ) ) ( ( ( rule__SoundContent__StatesAssignment_4_3 )=> rule__SoundContent__StatesAssignment_4_3 )* ) ) )
+ // InternalRBAModel.g:22355:5: ( ( ( rule__SoundContent__StatesAssignment_4_3 ) ) ( ( ( rule__SoundContent__StatesAssignment_4_3 )=> rule__SoundContent__StatesAssignment_4_3 )* ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 3);
+ // InternalRBAModel.g:22361:5: ( ( ( rule__SoundContent__StatesAssignment_4_3 ) ) ( ( ( rule__SoundContent__StatesAssignment_4_3 )=> rule__SoundContent__StatesAssignment_4_3 )* ) )
+ // InternalRBAModel.g:22362:6: ( ( rule__SoundContent__StatesAssignment_4_3 ) ) ( ( ( rule__SoundContent__StatesAssignment_4_3 )=> rule__SoundContent__StatesAssignment_4_3 )* )
+ {
+ // InternalRBAModel.g:22362:6: ( ( rule__SoundContent__StatesAssignment_4_3 ) )
+ // InternalRBAModel.g:22363:7: ( rule__SoundContent__StatesAssignment_4_3 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentAccess().getStatesAssignment_4_3());
+ }
+ // InternalRBAModel.g:22364:7: ( rule__SoundContent__StatesAssignment_4_3 )
+ // InternalRBAModel.g:22364:8: rule__SoundContent__StatesAssignment_4_3
+ {
+ pushFollow(FOLLOW_161);
+ rule__SoundContent__StatesAssignment_4_3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+ // InternalRBAModel.g:22367:6: ( ( ( rule__SoundContent__StatesAssignment_4_3 )=> rule__SoundContent__StatesAssignment_4_3 )* )
+ // InternalRBAModel.g:22368:7: ( ( rule__SoundContent__StatesAssignment_4_3 )=> rule__SoundContent__StatesAssignment_4_3 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentAccess().getStatesAssignment_4_3());
+ }
+ // InternalRBAModel.g:22369:7: ( ( rule__SoundContent__StatesAssignment_4_3 )=> rule__SoundContent__StatesAssignment_4_3 )*
+ loop194:
+ do {
+ int alt194=2;
+ int LA194_0 = input.LA(1);
+
+ if ( (LA194_0==131) && (synpred212_InternalRBAModel())) {
+ alt194=1;
+ }
+
+
+ switch (alt194) {
+ case 1 :
+ // InternalRBAModel.g:22369:8: ( rule__SoundContent__StatesAssignment_4_3 )=> rule__SoundContent__StatesAssignment_4_3
+ {
+ pushFollow(FOLLOW_161);
+ rule__SoundContent__StatesAssignment_4_3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop194;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred213_InternalRBAModel
+
+ // $ANTLR start synpred214_InternalRBAModel
+ public final void synpred214_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22391:8: ( rule__SoundContent__TagsAssignment_4_4 )
+ // InternalRBAModel.g:22391:9: rule__SoundContent__TagsAssignment_4_4
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContent__TagsAssignment_4_4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred214_InternalRBAModel
+
+ // $ANTLR start synpred215_InternalRBAModel
+ public final void synpred215_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22411:2: ( rule__SoundContent__UnorderedGroup_4__1 )
+ // InternalRBAModel.g:22411:2: rule__SoundContent__UnorderedGroup_4__1
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContent__UnorderedGroup_4__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred215_InternalRBAModel
+
+ // $ANTLR start synpred216_InternalRBAModel
+ public final void synpred216_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22423:2: ( rule__SoundContent__UnorderedGroup_4__2 )
+ // InternalRBAModel.g:22423:2: rule__SoundContent__UnorderedGroup_4__2
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContent__UnorderedGroup_4__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred216_InternalRBAModel
+
+ // $ANTLR start synpred217_InternalRBAModel
+ public final void synpred217_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22435:2: ( rule__SoundContent__UnorderedGroup_4__3 )
+ // InternalRBAModel.g:22435:2: rule__SoundContent__UnorderedGroup_4__3
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContent__UnorderedGroup_4__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred217_InternalRBAModel
+
+ // $ANTLR start synpred218_InternalRBAModel
+ public final void synpred218_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22447:2: ( rule__SoundContent__UnorderedGroup_4__4 )
+ // InternalRBAModel.g:22447:2: rule__SoundContent__UnorderedGroup_4__4
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContent__UnorderedGroup_4__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred218_InternalRBAModel
+
+ // $ANTLR start synpred219_InternalRBAModel
+ public final void synpred219_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22471:2: ( rule__Size__UnorderedGroup_4__0 )
+ // InternalRBAModel.g:22471:2: rule__Size__UnorderedGroup_4__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Size__UnorderedGroup_4__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred219_InternalRBAModel
+
+ // $ANTLR start synpred220_InternalRBAModel
+ public final void synpred220_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22486:3: ( ({...}? => ( ( ( rule__Size__Group_4_0__0 ) ) ) ) )
+ // InternalRBAModel.g:22486:3: ({...}? => ( ( ( rule__Size__Group_4_0__0 ) ) ) )
+ {
+ // InternalRBAModel.g:22486:3: ({...}? => ( ( ( rule__Size__Group_4_0__0 ) ) ) )
+ // InternalRBAModel.g:22487:4: {...}? => ( ( ( rule__Size__Group_4_0__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred220_InternalRBAModel", "getUnorderedGroupHelper().canSelect(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 0)");
+ }
+ // InternalRBAModel.g:22487:100: ( ( ( rule__Size__Group_4_0__0 ) ) )
+ // InternalRBAModel.g:22488:5: ( ( rule__Size__Group_4_0__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 0);
+ // InternalRBAModel.g:22494:5: ( ( rule__Size__Group_4_0__0 ) )
+ // InternalRBAModel.g:22495:6: ( rule__Size__Group_4_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSizeAccess().getGroup_4_0());
+ }
+ // InternalRBAModel.g:22496:6: ( rule__Size__Group_4_0__0 )
+ // InternalRBAModel.g:22496:7: rule__Size__Group_4_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Size__Group_4_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred220_InternalRBAModel
+
+ // $ANTLR start synpred221_InternalRBAModel
+ public final void synpred221_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22501:3: ( ({...}? => ( ( ( rule__Size__Group_4_1__0 ) ) ) ) )
+ // InternalRBAModel.g:22501:3: ({...}? => ( ( ( rule__Size__Group_4_1__0 ) ) ) )
+ {
+ // InternalRBAModel.g:22501:3: ({...}? => ( ( ( rule__Size__Group_4_1__0 ) ) ) )
+ // InternalRBAModel.g:22502:4: {...}? => ( ( ( rule__Size__Group_4_1__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred221_InternalRBAModel", "getUnorderedGroupHelper().canSelect(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 1)");
+ }
+ // InternalRBAModel.g:22502:100: ( ( ( rule__Size__Group_4_1__0 ) ) )
+ // InternalRBAModel.g:22503:5: ( ( rule__Size__Group_4_1__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 1);
+ // InternalRBAModel.g:22509:5: ( ( rule__Size__Group_4_1__0 ) )
+ // InternalRBAModel.g:22510:6: ( rule__Size__Group_4_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSizeAccess().getGroup_4_1());
+ }
+ // InternalRBAModel.g:22511:6: ( rule__Size__Group_4_1__0 )
+ // InternalRBAModel.g:22511:7: rule__Size__Group_4_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Size__Group_4_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred221_InternalRBAModel
+
+ // $ANTLR start synpred222_InternalRBAModel
+ public final void synpred222_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22545:2: ( rule__Size__UnorderedGroup_4__1 )
+ // InternalRBAModel.g:22545:2: rule__Size__UnorderedGroup_4__1
+ {
+ pushFollow(FOLLOW_2);
+ rule__Size__UnorderedGroup_4__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred222_InternalRBAModel
+
+ // $ANTLR start synpred223_InternalRBAModel
+ public final void synpred223_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22557:2: ( rule__Size__UnorderedGroup_4__2 )
+ // InternalRBAModel.g:22557:2: rule__Size__UnorderedGroup_4__2
+ {
+ pushFollow(FOLLOW_2);
+ rule__Size__UnorderedGroup_4__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred223_InternalRBAModel
+
+ // $ANTLR start synpred224_InternalRBAModel
+ public final void synpred224_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22581:2: ( rule__Offset__UnorderedGroup_3__0 )
+ // InternalRBAModel.g:22581:2: rule__Offset__UnorderedGroup_3__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Offset__UnorderedGroup_3__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred224_InternalRBAModel
+
+ // $ANTLR start synpred225_InternalRBAModel
+ public final void synpred225_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22596:3: ( ({...}? => ( ( ( rule__Offset__Group_3_0__0 ) ) ) ) )
+ // InternalRBAModel.g:22596:3: ({...}? => ( ( ( rule__Offset__Group_3_0__0 ) ) ) )
+ {
+ // InternalRBAModel.g:22596:3: ({...}? => ( ( ( rule__Offset__Group_3_0__0 ) ) ) )
+ // InternalRBAModel.g:22597:4: {...}? => ( ( ( rule__Offset__Group_3_0__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred225_InternalRBAModel", "getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 0)");
+ }
+ // InternalRBAModel.g:22597:102: ( ( ( rule__Offset__Group_3_0__0 ) ) )
+ // InternalRBAModel.g:22598:5: ( ( rule__Offset__Group_3_0__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 0);
+ // InternalRBAModel.g:22604:5: ( ( rule__Offset__Group_3_0__0 ) )
+ // InternalRBAModel.g:22605:6: ( rule__Offset__Group_3_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOffsetAccess().getGroup_3_0());
+ }
+ // InternalRBAModel.g:22606:6: ( rule__Offset__Group_3_0__0 )
+ // InternalRBAModel.g:22606:7: rule__Offset__Group_3_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Offset__Group_3_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred225_InternalRBAModel
+
+ // $ANTLR start synpred226_InternalRBAModel
+ public final void synpred226_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22611:3: ( ({...}? => ( ( ( rule__Offset__Group_3_1__0 ) ) ) ) )
+ // InternalRBAModel.g:22611:3: ({...}? => ( ( ( rule__Offset__Group_3_1__0 ) ) ) )
+ {
+ // InternalRBAModel.g:22611:3: ({...}? => ( ( ( rule__Offset__Group_3_1__0 ) ) ) )
+ // InternalRBAModel.g:22612:4: {...}? => ( ( ( rule__Offset__Group_3_1__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred226_InternalRBAModel", "getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 1)");
+ }
+ // InternalRBAModel.g:22612:102: ( ( ( rule__Offset__Group_3_1__0 ) ) )
+ // InternalRBAModel.g:22613:5: ( ( rule__Offset__Group_3_1__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 1);
+ // InternalRBAModel.g:22619:5: ( ( rule__Offset__Group_3_1__0 ) )
+ // InternalRBAModel.g:22620:6: ( rule__Offset__Group_3_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOffsetAccess().getGroup_3_1());
+ }
+ // InternalRBAModel.g:22621:6: ( rule__Offset__Group_3_1__0 )
+ // InternalRBAModel.g:22621:7: rule__Offset__Group_3_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Offset__Group_3_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred226_InternalRBAModel
+
+ // $ANTLR start synpred227_InternalRBAModel
+ public final void synpred227_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22626:3: ( ({...}? => ( ( ( rule__Offset__Group_3_2__0 ) ) ) ) )
+ // InternalRBAModel.g:22626:3: ({...}? => ( ( ( rule__Offset__Group_3_2__0 ) ) ) )
+ {
+ // InternalRBAModel.g:22626:3: ({...}? => ( ( ( rule__Offset__Group_3_2__0 ) ) ) )
+ // InternalRBAModel.g:22627:4: {...}? => ( ( ( rule__Offset__Group_3_2__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 2) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred227_InternalRBAModel", "getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 2)");
+ }
+ // InternalRBAModel.g:22627:102: ( ( ( rule__Offset__Group_3_2__0 ) ) )
+ // InternalRBAModel.g:22628:5: ( ( rule__Offset__Group_3_2__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 2);
+ // InternalRBAModel.g:22634:5: ( ( rule__Offset__Group_3_2__0 ) )
+ // InternalRBAModel.g:22635:6: ( rule__Offset__Group_3_2__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOffsetAccess().getGroup_3_2());
+ }
+ // InternalRBAModel.g:22636:6: ( rule__Offset__Group_3_2__0 )
+ // InternalRBAModel.g:22636:7: rule__Offset__Group_3_2__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Offset__Group_3_2__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred227_InternalRBAModel
+
+ // $ANTLR start synpred228_InternalRBAModel
+ public final void synpred228_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22670:2: ( rule__Offset__UnorderedGroup_3__1 )
+ // InternalRBAModel.g:22670:2: rule__Offset__UnorderedGroup_3__1
+ {
+ pushFollow(FOLLOW_2);
+ rule__Offset__UnorderedGroup_3__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred228_InternalRBAModel
+
+ // $ANTLR start synpred229_InternalRBAModel
+ public final void synpred229_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22682:2: ( rule__Offset__UnorderedGroup_3__2 )
+ // InternalRBAModel.g:22682:2: rule__Offset__UnorderedGroup_3__2
+ {
+ pushFollow(FOLLOW_2);
+ rule__Offset__UnorderedGroup_3__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred229_InternalRBAModel
+
+ // $ANTLR start synpred230_InternalRBAModel
+ public final void synpred230_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22694:2: ( rule__Offset__UnorderedGroup_3__3 )
+ // InternalRBAModel.g:22694:2: rule__Offset__UnorderedGroup_3__3
+ {
+ pushFollow(FOLLOW_2);
+ rule__Offset__UnorderedGroup_3__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred230_InternalRBAModel
+
+ // $ANTLR start synpred231_InternalRBAModel
+ public final void synpred231_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22718:2: ( rule__AreaSet__UnorderedGroup_4__0 )
+ // InternalRBAModel.g:22718:2: rule__AreaSet__UnorderedGroup_4__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__AreaSet__UnorderedGroup_4__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred231_InternalRBAModel
+
+ // $ANTLR start synpred232_InternalRBAModel
+ public final void synpred232_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22733:3: ( ({...}? => ( ( ( rule__AreaSet__Group_4_0__0 ) ) ) ) )
+ // InternalRBAModel.g:22733:3: ({...}? => ( ( ( rule__AreaSet__Group_4_0__0 ) ) ) )
+ {
+ // InternalRBAModel.g:22733:3: ({...}? => ( ( ( rule__AreaSet__Group_4_0__0 ) ) ) )
+ // InternalRBAModel.g:22734:4: {...}? => ( ( ( rule__AreaSet__Group_4_0__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getAreaSetAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred232_InternalRBAModel", "getUnorderedGroupHelper().canSelect(grammarAccess.getAreaSetAccess().getUnorderedGroup_4(), 0)");
+ }
+ // InternalRBAModel.g:22734:103: ( ( ( rule__AreaSet__Group_4_0__0 ) ) )
+ // InternalRBAModel.g:22735:5: ( ( rule__AreaSet__Group_4_0__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getAreaSetAccess().getUnorderedGroup_4(), 0);
+ // InternalRBAModel.g:22741:5: ( ( rule__AreaSet__Group_4_0__0 ) )
+ // InternalRBAModel.g:22742:6: ( rule__AreaSet__Group_4_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaSetAccess().getGroup_4_0());
+ }
+ // InternalRBAModel.g:22743:6: ( rule__AreaSet__Group_4_0__0 )
+ // InternalRBAModel.g:22743:7: rule__AreaSet__Group_4_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__AreaSet__Group_4_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred232_InternalRBAModel
+
+ // $ANTLR start synpred233_InternalRBAModel
+ public final void synpred233_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22777:2: ( rule__AreaSet__UnorderedGroup_4__1 )
+ // InternalRBAModel.g:22777:2: rule__AreaSet__UnorderedGroup_4__1
+ {
+ pushFollow(FOLLOW_2);
+ rule__AreaSet__UnorderedGroup_4__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred233_InternalRBAModel
+
+ // $ANTLR start synpred234_InternalRBAModel
+ public final void synpred234_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22801:2: ( rule__ZoneSet__UnorderedGroup_4__0 )
+ // InternalRBAModel.g:22801:2: rule__ZoneSet__UnorderedGroup_4__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ZoneSet__UnorderedGroup_4__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred234_InternalRBAModel
+
+ // $ANTLR start synpred235_InternalRBAModel
+ public final void synpred235_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22816:3: ( ({...}? => ( ( ( rule__ZoneSet__Group_4_0__0 ) ) ) ) )
+ // InternalRBAModel.g:22816:3: ({...}? => ( ( ( rule__ZoneSet__Group_4_0__0 ) ) ) )
+ {
+ // InternalRBAModel.g:22816:3: ({...}? => ( ( ( rule__ZoneSet__Group_4_0__0 ) ) ) )
+ // InternalRBAModel.g:22817:4: {...}? => ( ( ( rule__ZoneSet__Group_4_0__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getZoneSetAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred235_InternalRBAModel", "getUnorderedGroupHelper().canSelect(grammarAccess.getZoneSetAccess().getUnorderedGroup_4(), 0)");
+ }
+ // InternalRBAModel.g:22817:103: ( ( ( rule__ZoneSet__Group_4_0__0 ) ) )
+ // InternalRBAModel.g:22818:5: ( ( rule__ZoneSet__Group_4_0__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getZoneSetAccess().getUnorderedGroup_4(), 0);
+ // InternalRBAModel.g:22824:5: ( ( rule__ZoneSet__Group_4_0__0 ) )
+ // InternalRBAModel.g:22825:6: ( rule__ZoneSet__Group_4_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneSetAccess().getGroup_4_0());
+ }
+ // InternalRBAModel.g:22826:6: ( rule__ZoneSet__Group_4_0__0 )
+ // InternalRBAModel.g:22826:7: rule__ZoneSet__Group_4_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ZoneSet__Group_4_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred235_InternalRBAModel
+
+ // $ANTLR start synpred236_InternalRBAModel
+ public final void synpred236_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22860:2: ( rule__ZoneSet__UnorderedGroup_4__1 )
+ // InternalRBAModel.g:22860:2: rule__ZoneSet__UnorderedGroup_4__1
+ {
+ pushFollow(FOLLOW_2);
+ rule__ZoneSet__UnorderedGroup_4__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred236_InternalRBAModel
+
+ // $ANTLR start synpred237_InternalRBAModel
+ public final void synpred237_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22884:2: ( rule__CompositeArea__UnorderedGroup_4__0 )
+ // InternalRBAModel.g:22884:2: rule__CompositeArea__UnorderedGroup_4__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__CompositeArea__UnorderedGroup_4__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred237_InternalRBAModel
+
+ // $ANTLR start synpred238_InternalRBAModel
+ public final void synpred238_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22899:3: ( ({...}? => ( ( ( rule__CompositeArea__Group_4_0__0 ) ) ) ) )
+ // InternalRBAModel.g:22899:3: ({...}? => ( ( ( rule__CompositeArea__Group_4_0__0 ) ) ) )
+ {
+ // InternalRBAModel.g:22899:3: ({...}? => ( ( ( rule__CompositeArea__Group_4_0__0 ) ) ) )
+ // InternalRBAModel.g:22900:4: {...}? => ( ( ( rule__CompositeArea__Group_4_0__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred238_InternalRBAModel", "getUnorderedGroupHelper().canSelect(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4(), 0)");
+ }
+ // InternalRBAModel.g:22900:109: ( ( ( rule__CompositeArea__Group_4_0__0 ) ) )
+ // InternalRBAModel.g:22901:5: ( ( rule__CompositeArea__Group_4_0__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4(), 0);
+ // InternalRBAModel.g:22907:5: ( ( rule__CompositeArea__Group_4_0__0 ) )
+ // InternalRBAModel.g:22908:6: ( rule__CompositeArea__Group_4_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getCompositeAreaAccess().getGroup_4_0());
+ }
+ // InternalRBAModel.g:22909:6: ( rule__CompositeArea__Group_4_0__0 )
+ // InternalRBAModel.g:22909:7: rule__CompositeArea__Group_4_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__CompositeArea__Group_4_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred238_InternalRBAModel
+
+ // $ANTLR start synpred239_InternalRBAModel
+ public final void synpred239_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22943:2: ( rule__CompositeArea__UnorderedGroup_4__1 )
+ // InternalRBAModel.g:22943:2: rule__CompositeArea__UnorderedGroup_4__1
+ {
+ pushFollow(FOLLOW_2);
+ rule__CompositeArea__UnorderedGroup_4__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred239_InternalRBAModel
+
+ // $ANTLR start synpred240_InternalRBAModel
+ public final void synpred240_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22967:2: ( rule__Area__UnorderedGroup_4__0 )
+ // InternalRBAModel.g:22967:2: rule__Area__UnorderedGroup_4__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Area__UnorderedGroup_4__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred240_InternalRBAModel
+
+ // $ANTLR start synpred241_InternalRBAModel
+ public final void synpred241_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22982:3: ( ({...}? => ( ( ( rule__Area__Group_4_0__0 ) ) ) ) )
+ // InternalRBAModel.g:22982:3: ({...}? => ( ( ( rule__Area__Group_4_0__0 ) ) ) )
+ {
+ // InternalRBAModel.g:22982:3: ({...}? => ( ( ( rule__Area__Group_4_0__0 ) ) ) )
+ // InternalRBAModel.g:22983:4: {...}? => ( ( ( rule__Area__Group_4_0__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred241_InternalRBAModel", "getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 0)");
+ }
+ // InternalRBAModel.g:22983:100: ( ( ( rule__Area__Group_4_0__0 ) ) )
+ // InternalRBAModel.g:22984:5: ( ( rule__Area__Group_4_0__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 0);
+ // InternalRBAModel.g:22990:5: ( ( rule__Area__Group_4_0__0 ) )
+ // InternalRBAModel.g:22991:6: ( rule__Area__Group_4_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaAccess().getGroup_4_0());
+ }
+ // InternalRBAModel.g:22992:6: ( rule__Area__Group_4_0__0 )
+ // InternalRBAModel.g:22992:7: rule__Area__Group_4_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Area__Group_4_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred241_InternalRBAModel
+
+ // $ANTLR start synpred242_InternalRBAModel
+ public final void synpred242_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:22997:3: ( ({...}? => ( ( ( rule__Area__Group_4_1__0 ) ) ) ) )
+ // InternalRBAModel.g:22997:3: ({...}? => ( ( ( rule__Area__Group_4_1__0 ) ) ) )
+ {
+ // InternalRBAModel.g:22997:3: ({...}? => ( ( ( rule__Area__Group_4_1__0 ) ) ) )
+ // InternalRBAModel.g:22998:4: {...}? => ( ( ( rule__Area__Group_4_1__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred242_InternalRBAModel", "getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 1)");
+ }
+ // InternalRBAModel.g:22998:100: ( ( ( rule__Area__Group_4_1__0 ) ) )
+ // InternalRBAModel.g:22999:5: ( ( rule__Area__Group_4_1__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 1);
+ // InternalRBAModel.g:23005:5: ( ( rule__Area__Group_4_1__0 ) )
+ // InternalRBAModel.g:23006:6: ( rule__Area__Group_4_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaAccess().getGroup_4_1());
+ }
+ // InternalRBAModel.g:23007:6: ( rule__Area__Group_4_1__0 )
+ // InternalRBAModel.g:23007:7: rule__Area__Group_4_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Area__Group_4_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred242_InternalRBAModel
+
+ // $ANTLR start synpred243_InternalRBAModel
+ public final void synpred243_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:23028:8: ( rule__Area__SizeAssignment_4_2 )
+ // InternalRBAModel.g:23028:9: rule__Area__SizeAssignment_4_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__Area__SizeAssignment_4_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred243_InternalRBAModel
+
+ // $ANTLR start synpred244_InternalRBAModel
+ public final void synpred244_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:23012:3: ( ({...}? => ( ( ( ( rule__Area__SizeAssignment_4_2 ) ) ( ( ( rule__Area__SizeAssignment_4_2 )=> rule__Area__SizeAssignment_4_2 )* ) ) ) ) )
+ // InternalRBAModel.g:23012:3: ({...}? => ( ( ( ( rule__Area__SizeAssignment_4_2 ) ) ( ( ( rule__Area__SizeAssignment_4_2 )=> rule__Area__SizeAssignment_4_2 )* ) ) ) )
+ {
+ // InternalRBAModel.g:23012:3: ({...}? => ( ( ( ( rule__Area__SizeAssignment_4_2 ) ) ( ( ( rule__Area__SizeAssignment_4_2 )=> rule__Area__SizeAssignment_4_2 )* ) ) ) )
+ // InternalRBAModel.g:23013:4: {...}? => ( ( ( ( rule__Area__SizeAssignment_4_2 ) ) ( ( ( rule__Area__SizeAssignment_4_2 )=> rule__Area__SizeAssignment_4_2 )* ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 2) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred244_InternalRBAModel", "getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 2)");
+ }
+ // InternalRBAModel.g:23013:100: ( ( ( ( rule__Area__SizeAssignment_4_2 ) ) ( ( ( rule__Area__SizeAssignment_4_2 )=> rule__Area__SizeAssignment_4_2 )* ) ) )
+ // InternalRBAModel.g:23014:5: ( ( ( rule__Area__SizeAssignment_4_2 ) ) ( ( ( rule__Area__SizeAssignment_4_2 )=> rule__Area__SizeAssignment_4_2 )* ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 2);
+ // InternalRBAModel.g:23020:5: ( ( ( rule__Area__SizeAssignment_4_2 ) ) ( ( ( rule__Area__SizeAssignment_4_2 )=> rule__Area__SizeAssignment_4_2 )* ) )
+ // InternalRBAModel.g:23021:6: ( ( rule__Area__SizeAssignment_4_2 ) ) ( ( ( rule__Area__SizeAssignment_4_2 )=> rule__Area__SizeAssignment_4_2 )* )
+ {
+ // InternalRBAModel.g:23021:6: ( ( rule__Area__SizeAssignment_4_2 ) )
+ // InternalRBAModel.g:23022:7: ( rule__Area__SizeAssignment_4_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaAccess().getSizeAssignment_4_2());
+ }
+ // InternalRBAModel.g:23023:7: ( rule__Area__SizeAssignment_4_2 )
+ // InternalRBAModel.g:23023:8: rule__Area__SizeAssignment_4_2
+ {
+ pushFollow(FOLLOW_162);
+ rule__Area__SizeAssignment_4_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+ // InternalRBAModel.g:23026:6: ( ( ( rule__Area__SizeAssignment_4_2 )=> rule__Area__SizeAssignment_4_2 )* )
+ // InternalRBAModel.g:23027:7: ( ( rule__Area__SizeAssignment_4_2 )=> rule__Area__SizeAssignment_4_2 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaAccess().getSizeAssignment_4_2());
+ }
+ // InternalRBAModel.g:23028:7: ( ( rule__Area__SizeAssignment_4_2 )=> rule__Area__SizeAssignment_4_2 )*
+ loop195:
+ do {
+ int alt195=2;
+ int LA195_0 = input.LA(1);
+
+ if ( (LA195_0==119) && (synpred243_InternalRBAModel())) {
+ alt195=1;
+ }
+ else if ( (LA195_0==116) && (synpred243_InternalRBAModel())) {
+ alt195=1;
+ }
+
+
+ switch (alt195) {
+ case 1 :
+ // InternalRBAModel.g:23028:8: ( rule__Area__SizeAssignment_4_2 )=> rule__Area__SizeAssignment_4_2
+ {
+ pushFollow(FOLLOW_162);
+ rule__Area__SizeAssignment_4_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop195;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred244_InternalRBAModel
+
+ // $ANTLR start synpred245_InternalRBAModel
+ public final void synpred245_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:23034:3: ( ({...}? => ( ( ( rule__Area__Group_4_3__0 ) ) ) ) )
+ // InternalRBAModel.g:23034:3: ({...}? => ( ( ( rule__Area__Group_4_3__0 ) ) ) )
+ {
+ // InternalRBAModel.g:23034:3: ({...}? => ( ( ( rule__Area__Group_4_3__0 ) ) ) )
+ // InternalRBAModel.g:23035:4: {...}? => ( ( ( rule__Area__Group_4_3__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 3) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred245_InternalRBAModel", "getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 3)");
+ }
+ // InternalRBAModel.g:23035:100: ( ( ( rule__Area__Group_4_3__0 ) ) )
+ // InternalRBAModel.g:23036:5: ( ( rule__Area__Group_4_3__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 3);
+ // InternalRBAModel.g:23042:5: ( ( rule__Area__Group_4_3__0 ) )
+ // InternalRBAModel.g:23043:6: ( rule__Area__Group_4_3__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaAccess().getGroup_4_3());
+ }
+ // InternalRBAModel.g:23044:6: ( rule__Area__Group_4_3__0 )
+ // InternalRBAModel.g:23044:7: rule__Area__Group_4_3__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Area__Group_4_3__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred245_InternalRBAModel
+
+ // $ANTLR start synpred246_InternalRBAModel
+ public final void synpred246_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:23049:3: ( ({...}? => ( ( ( rule__Area__Group_4_4__0 ) ) ) ) )
+ // InternalRBAModel.g:23049:3: ({...}? => ( ( ( rule__Area__Group_4_4__0 ) ) ) )
+ {
+ // InternalRBAModel.g:23049:3: ({...}? => ( ( ( rule__Area__Group_4_4__0 ) ) ) )
+ // InternalRBAModel.g:23050:4: {...}? => ( ( ( rule__Area__Group_4_4__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 4) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred246_InternalRBAModel", "getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 4)");
+ }
+ // InternalRBAModel.g:23050:100: ( ( ( rule__Area__Group_4_4__0 ) ) )
+ // InternalRBAModel.g:23051:5: ( ( rule__Area__Group_4_4__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 4);
+ // InternalRBAModel.g:23057:5: ( ( rule__Area__Group_4_4__0 ) )
+ // InternalRBAModel.g:23058:6: ( rule__Area__Group_4_4__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getAreaAccess().getGroup_4_4());
+ }
+ // InternalRBAModel.g:23059:6: ( rule__Area__Group_4_4__0 )
+ // InternalRBAModel.g:23059:7: rule__Area__Group_4_4__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Area__Group_4_4__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred246_InternalRBAModel
+
+ // $ANTLR start synpred247_InternalRBAModel
+ public final void synpred247_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:23080:8: ( rule__Area__TagsAssignment_4_5 )
+ // InternalRBAModel.g:23080:9: rule__Area__TagsAssignment_4_5
+ {
+ pushFollow(FOLLOW_2);
+ rule__Area__TagsAssignment_4_5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred247_InternalRBAModel
+
+ // $ANTLR start synpred248_InternalRBAModel
+ public final void synpred248_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:23100:2: ( rule__Area__UnorderedGroup_4__1 )
+ // InternalRBAModel.g:23100:2: rule__Area__UnorderedGroup_4__1
+ {
+ pushFollow(FOLLOW_2);
+ rule__Area__UnorderedGroup_4__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred248_InternalRBAModel
+
+ // $ANTLR start synpred249_InternalRBAModel
+ public final void synpred249_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:23112:2: ( rule__Area__UnorderedGroup_4__2 )
+ // InternalRBAModel.g:23112:2: rule__Area__UnorderedGroup_4__2
+ {
+ pushFollow(FOLLOW_2);
+ rule__Area__UnorderedGroup_4__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred249_InternalRBAModel
+
+ // $ANTLR start synpred250_InternalRBAModel
+ public final void synpred250_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:23124:2: ( rule__Area__UnorderedGroup_4__3 )
+ // InternalRBAModel.g:23124:2: rule__Area__UnorderedGroup_4__3
+ {
+ pushFollow(FOLLOW_2);
+ rule__Area__UnorderedGroup_4__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred250_InternalRBAModel
+
+ // $ANTLR start synpred251_InternalRBAModel
+ public final void synpred251_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:23136:2: ( rule__Area__UnorderedGroup_4__4 )
+ // InternalRBAModel.g:23136:2: rule__Area__UnorderedGroup_4__4
+ {
+ pushFollow(FOLLOW_2);
+ rule__Area__UnorderedGroup_4__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred251_InternalRBAModel
+
+ // $ANTLR start synpred252_InternalRBAModel
+ public final void synpred252_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:23148:2: ( rule__Area__UnorderedGroup_4__5 )
+ // InternalRBAModel.g:23148:2: rule__Area__UnorderedGroup_4__5
+ {
+ pushFollow(FOLLOW_2);
+ rule__Area__UnorderedGroup_4__5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred252_InternalRBAModel
+
+ // $ANTLR start synpred253_InternalRBAModel
+ public final void synpred253_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:23172:2: ( rule__Zone__UnorderedGroup_4__0 )
+ // InternalRBAModel.g:23172:2: rule__Zone__UnorderedGroup_4__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Zone__UnorderedGroup_4__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred253_InternalRBAModel
+
+ // $ANTLR start synpred254_InternalRBAModel
+ public final void synpred254_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:23187:3: ( ({...}? => ( ( ( rule__Zone__Group_4_0__0 ) ) ) ) )
+ // InternalRBAModel.g:23187:3: ({...}? => ( ( ( rule__Zone__Group_4_0__0 ) ) ) )
+ {
+ // InternalRBAModel.g:23187:3: ({...}? => ( ( ( rule__Zone__Group_4_0__0 ) ) ) )
+ // InternalRBAModel.g:23188:4: {...}? => ( ( ( rule__Zone__Group_4_0__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred254_InternalRBAModel", "getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 0)");
+ }
+ // InternalRBAModel.g:23188:100: ( ( ( rule__Zone__Group_4_0__0 ) ) )
+ // InternalRBAModel.g:23189:5: ( ( rule__Zone__Group_4_0__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 0);
+ // InternalRBAModel.g:23195:5: ( ( rule__Zone__Group_4_0__0 ) )
+ // InternalRBAModel.g:23196:6: ( rule__Zone__Group_4_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneAccess().getGroup_4_0());
+ }
+ // InternalRBAModel.g:23197:6: ( rule__Zone__Group_4_0__0 )
+ // InternalRBAModel.g:23197:7: rule__Zone__Group_4_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Zone__Group_4_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred254_InternalRBAModel
+
+ // $ANTLR start synpred255_InternalRBAModel
+ public final void synpred255_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:23202:3: ( ({...}? => ( ( ( rule__Zone__Group_4_1__0 ) ) ) ) )
+ // InternalRBAModel.g:23202:3: ({...}? => ( ( ( rule__Zone__Group_4_1__0 ) ) ) )
+ {
+ // InternalRBAModel.g:23202:3: ({...}? => ( ( ( rule__Zone__Group_4_1__0 ) ) ) )
+ // InternalRBAModel.g:23203:4: {...}? => ( ( ( rule__Zone__Group_4_1__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred255_InternalRBAModel", "getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 1)");
+ }
+ // InternalRBAModel.g:23203:100: ( ( ( rule__Zone__Group_4_1__0 ) ) )
+ // InternalRBAModel.g:23204:5: ( ( rule__Zone__Group_4_1__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 1);
+ // InternalRBAModel.g:23210:5: ( ( rule__Zone__Group_4_1__0 ) )
+ // InternalRBAModel.g:23211:6: ( rule__Zone__Group_4_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneAccess().getGroup_4_1());
+ }
+ // InternalRBAModel.g:23212:6: ( rule__Zone__Group_4_1__0 )
+ // InternalRBAModel.g:23212:7: rule__Zone__Group_4_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Zone__Group_4_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred255_InternalRBAModel
+
+ // $ANTLR start synpred256_InternalRBAModel
+ public final void synpred256_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:23217:3: ( ({...}? => ( ( ( rule__Zone__Group_4_2__0 ) ) ) ) )
+ // InternalRBAModel.g:23217:3: ({...}? => ( ( ( rule__Zone__Group_4_2__0 ) ) ) )
+ {
+ // InternalRBAModel.g:23217:3: ({...}? => ( ( ( rule__Zone__Group_4_2__0 ) ) ) )
+ // InternalRBAModel.g:23218:4: {...}? => ( ( ( rule__Zone__Group_4_2__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 2) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred256_InternalRBAModel", "getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 2)");
+ }
+ // InternalRBAModel.g:23218:100: ( ( ( rule__Zone__Group_4_2__0 ) ) )
+ // InternalRBAModel.g:23219:5: ( ( rule__Zone__Group_4_2__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 2);
+ // InternalRBAModel.g:23225:5: ( ( rule__Zone__Group_4_2__0 ) )
+ // InternalRBAModel.g:23226:6: ( rule__Zone__Group_4_2__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneAccess().getGroup_4_2());
+ }
+ // InternalRBAModel.g:23227:6: ( rule__Zone__Group_4_2__0 )
+ // InternalRBAModel.g:23227:7: rule__Zone__Group_4_2__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Zone__Group_4_2__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred256_InternalRBAModel
+
+ // $ANTLR start synpred257_InternalRBAModel
+ public final void synpred257_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:23232:3: ( ({...}? => ( ( ( rule__Zone__Group_4_3__0 ) ) ) ) )
+ // InternalRBAModel.g:23232:3: ({...}? => ( ( ( rule__Zone__Group_4_3__0 ) ) ) )
+ {
+ // InternalRBAModel.g:23232:3: ({...}? => ( ( ( rule__Zone__Group_4_3__0 ) ) ) )
+ // InternalRBAModel.g:23233:4: {...}? => ( ( ( rule__Zone__Group_4_3__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 3) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred257_InternalRBAModel", "getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 3)");
+ }
+ // InternalRBAModel.g:23233:100: ( ( ( rule__Zone__Group_4_3__0 ) ) )
+ // InternalRBAModel.g:23234:5: ( ( rule__Zone__Group_4_3__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 3);
+ // InternalRBAModel.g:23240:5: ( ( rule__Zone__Group_4_3__0 ) )
+ // InternalRBAModel.g:23241:6: ( rule__Zone__Group_4_3__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getZoneAccess().getGroup_4_3());
+ }
+ // InternalRBAModel.g:23242:6: ( rule__Zone__Group_4_3__0 )
+ // InternalRBAModel.g:23242:7: rule__Zone__Group_4_3__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Zone__Group_4_3__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred257_InternalRBAModel
+
+ // $ANTLR start synpred258_InternalRBAModel
+ public final void synpred258_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:23263:8: ( rule__Zone__TagsAssignment_4_4 )
+ // InternalRBAModel.g:23263:9: rule__Zone__TagsAssignment_4_4
+ {
+ pushFollow(FOLLOW_2);
+ rule__Zone__TagsAssignment_4_4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred258_InternalRBAModel
+
+ // $ANTLR start synpred259_InternalRBAModel
+ public final void synpred259_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:23283:2: ( rule__Zone__UnorderedGroup_4__1 )
+ // InternalRBAModel.g:23283:2: rule__Zone__UnorderedGroup_4__1
+ {
+ pushFollow(FOLLOW_2);
+ rule__Zone__UnorderedGroup_4__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred259_InternalRBAModel
+
+ // $ANTLR start synpred260_InternalRBAModel
+ public final void synpred260_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:23295:2: ( rule__Zone__UnorderedGroup_4__2 )
+ // InternalRBAModel.g:23295:2: rule__Zone__UnorderedGroup_4__2
+ {
+ pushFollow(FOLLOW_2);
+ rule__Zone__UnorderedGroup_4__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred260_InternalRBAModel
+
+ // $ANTLR start synpred261_InternalRBAModel
+ public final void synpred261_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:23307:2: ( rule__Zone__UnorderedGroup_4__3 )
+ // InternalRBAModel.g:23307:2: rule__Zone__UnorderedGroup_4__3
+ {
+ pushFollow(FOLLOW_2);
+ rule__Zone__UnorderedGroup_4__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred261_InternalRBAModel
+
+ // $ANTLR start synpred262_InternalRBAModel
+ public final void synpred262_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:23319:2: ( rule__Zone__UnorderedGroup_4__4 )
+ // InternalRBAModel.g:23319:2: rule__Zone__UnorderedGroup_4__4
+ {
+ pushFollow(FOLLOW_2);
+ rule__Zone__UnorderedGroup_4__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred262_InternalRBAModel
+
+ // $ANTLR start synpred263_InternalRBAModel
+ public final void synpred263_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:23343:2: ( rule__ViewContentState__UnorderedGroup_4__0 )
+ // InternalRBAModel.g:23343:2: rule__ViewContentState__UnorderedGroup_4__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContentState__UnorderedGroup_4__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred263_InternalRBAModel
+
+ // $ANTLR start synpred264_InternalRBAModel
+ public final void synpred264_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:23358:3: ( ({...}? => ( ( ( rule__ViewContentState__Group_4_0__0 ) ) ) ) )
+ // InternalRBAModel.g:23358:3: ({...}? => ( ( ( rule__ViewContentState__Group_4_0__0 ) ) ) )
+ {
+ // InternalRBAModel.g:23358:3: ({...}? => ( ( ( rule__ViewContentState__Group_4_0__0 ) ) ) )
+ // InternalRBAModel.g:23359:4: {...}? => ( ( ( rule__ViewContentState__Group_4_0__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred264_InternalRBAModel", "getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4(), 0)");
+ }
+ // InternalRBAModel.g:23359:112: ( ( ( rule__ViewContentState__Group_4_0__0 ) ) )
+ // InternalRBAModel.g:23360:5: ( ( rule__ViewContentState__Group_4_0__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4(), 0);
+ // InternalRBAModel.g:23366:5: ( ( rule__ViewContentState__Group_4_0__0 ) )
+ // InternalRBAModel.g:23367:6: ( rule__ViewContentState__Group_4_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentStateAccess().getGroup_4_0());
+ }
+ // InternalRBAModel.g:23368:6: ( rule__ViewContentState__Group_4_0__0 )
+ // InternalRBAModel.g:23368:7: rule__ViewContentState__Group_4_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContentState__Group_4_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred264_InternalRBAModel
+
+ // $ANTLR start synpred265_InternalRBAModel
+ public final void synpred265_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:23402:2: ( rule__ViewContentState__UnorderedGroup_4__1 )
+ // InternalRBAModel.g:23402:2: rule__ViewContentState__UnorderedGroup_4__1
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContentState__UnorderedGroup_4__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred265_InternalRBAModel
+
+ // $ANTLR start synpred266_InternalRBAModel
+ public final void synpred266_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:23426:2: ( rule__SoundContentState__UnorderedGroup_4__0 )
+ // InternalRBAModel.g:23426:2: rule__SoundContentState__UnorderedGroup_4__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContentState__UnorderedGroup_4__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred266_InternalRBAModel
+
+ // $ANTLR start synpred267_InternalRBAModel
+ public final void synpred267_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:23441:3: ( ({...}? => ( ( ( rule__SoundContentState__Group_4_0__0 ) ) ) ) )
+ // InternalRBAModel.g:23441:3: ({...}? => ( ( ( rule__SoundContentState__Group_4_0__0 ) ) ) )
+ {
+ // InternalRBAModel.g:23441:3: ({...}? => ( ( ( rule__SoundContentState__Group_4_0__0 ) ) ) )
+ // InternalRBAModel.g:23442:4: {...}? => ( ( ( rule__SoundContentState__Group_4_0__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred267_InternalRBAModel", "getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4(), 0)");
+ }
+ // InternalRBAModel.g:23442:113: ( ( ( rule__SoundContentState__Group_4_0__0 ) ) )
+ // InternalRBAModel.g:23443:5: ( ( rule__SoundContentState__Group_4_0__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4(), 0);
+ // InternalRBAModel.g:23449:5: ( ( rule__SoundContentState__Group_4_0__0 ) )
+ // InternalRBAModel.g:23450:6: ( rule__SoundContentState__Group_4_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentStateAccess().getGroup_4_0());
+ }
+ // InternalRBAModel.g:23451:6: ( rule__SoundContentState__Group_4_0__0 )
+ // InternalRBAModel.g:23451:7: rule__SoundContentState__Group_4_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContentState__Group_4_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred267_InternalRBAModel
+
+ // $ANTLR start synpred268_InternalRBAModel
+ public final void synpred268_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:23485:2: ( rule__SoundContentState__UnorderedGroup_4__1 )
+ // InternalRBAModel.g:23485:2: rule__SoundContentState__UnorderedGroup_4__1
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContentState__UnorderedGroup_4__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred268_InternalRBAModel
+
+ // $ANTLR start synpred269_InternalRBAModel
+ public final void synpred269_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:23509:2: ( rule__ViewContentSet__UnorderedGroup_4__0 )
+ // InternalRBAModel.g:23509:2: rule__ViewContentSet__UnorderedGroup_4__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContentSet__UnorderedGroup_4__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred269_InternalRBAModel
+
+ // $ANTLR start synpred270_InternalRBAModel
+ public final void synpred270_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:23524:3: ( ({...}? => ( ( ( rule__ViewContentSet__Group_4_0__0 ) ) ) ) )
+ // InternalRBAModel.g:23524:3: ({...}? => ( ( ( rule__ViewContentSet__Group_4_0__0 ) ) ) )
+ {
+ // InternalRBAModel.g:23524:3: ({...}? => ( ( ( rule__ViewContentSet__Group_4_0__0 ) ) ) )
+ // InternalRBAModel.g:23525:4: {...}? => ( ( ( rule__ViewContentSet__Group_4_0__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred270_InternalRBAModel", "getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 0)");
+ }
+ // InternalRBAModel.g:23525:110: ( ( ( rule__ViewContentSet__Group_4_0__0 ) ) )
+ // InternalRBAModel.g:23526:5: ( ( rule__ViewContentSet__Group_4_0__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 0);
+ // InternalRBAModel.g:23532:5: ( ( rule__ViewContentSet__Group_4_0__0 ) )
+ // InternalRBAModel.g:23533:6: ( rule__ViewContentSet__Group_4_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentSetAccess().getGroup_4_0());
+ }
+ // InternalRBAModel.g:23534:6: ( rule__ViewContentSet__Group_4_0__0 )
+ // InternalRBAModel.g:23534:7: rule__ViewContentSet__Group_4_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContentSet__Group_4_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred270_InternalRBAModel
+
+ // $ANTLR start synpred271_InternalRBAModel
+ public final void synpred271_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:23539:3: ( ({...}? => ( ( ( rule__ViewContentSet__Group_4_1__0 ) ) ) ) )
+ // InternalRBAModel.g:23539:3: ({...}? => ( ( ( rule__ViewContentSet__Group_4_1__0 ) ) ) )
+ {
+ // InternalRBAModel.g:23539:3: ({...}? => ( ( ( rule__ViewContentSet__Group_4_1__0 ) ) ) )
+ // InternalRBAModel.g:23540:4: {...}? => ( ( ( rule__ViewContentSet__Group_4_1__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred271_InternalRBAModel", "getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 1)");
+ }
+ // InternalRBAModel.g:23540:110: ( ( ( rule__ViewContentSet__Group_4_1__0 ) ) )
+ // InternalRBAModel.g:23541:5: ( ( rule__ViewContentSet__Group_4_1__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 1);
+ // InternalRBAModel.g:23547:5: ( ( rule__ViewContentSet__Group_4_1__0 ) )
+ // InternalRBAModel.g:23548:6: ( rule__ViewContentSet__Group_4_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewContentSetAccess().getGroup_4_1());
+ }
+ // InternalRBAModel.g:23549:6: ( rule__ViewContentSet__Group_4_1__0 )
+ // InternalRBAModel.g:23549:7: rule__ViewContentSet__Group_4_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContentSet__Group_4_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred271_InternalRBAModel
+
+ // $ANTLR start synpred272_InternalRBAModel
+ public final void synpred272_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:23583:2: ( rule__ViewContentSet__UnorderedGroup_4__1 )
+ // InternalRBAModel.g:23583:2: rule__ViewContentSet__UnorderedGroup_4__1
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContentSet__UnorderedGroup_4__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred272_InternalRBAModel
+
+ // $ANTLR start synpred273_InternalRBAModel
+ public final void synpred273_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:23595:2: ( rule__ViewContentSet__UnorderedGroup_4__2 )
+ // InternalRBAModel.g:23595:2: rule__ViewContentSet__UnorderedGroup_4__2
+ {
+ pushFollow(FOLLOW_2);
+ rule__ViewContentSet__UnorderedGroup_4__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred273_InternalRBAModel
+
+ // $ANTLR start synpred274_InternalRBAModel
+ public final void synpred274_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:23619:2: ( rule__SoundContentSet__UnorderedGroup_4__0 )
+ // InternalRBAModel.g:23619:2: rule__SoundContentSet__UnorderedGroup_4__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContentSet__UnorderedGroup_4__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred274_InternalRBAModel
+
+ // $ANTLR start synpred275_InternalRBAModel
+ public final void synpred275_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:23634:3: ( ({...}? => ( ( ( rule__SoundContentSet__Group_4_0__0 ) ) ) ) )
+ // InternalRBAModel.g:23634:3: ({...}? => ( ( ( rule__SoundContentSet__Group_4_0__0 ) ) ) )
+ {
+ // InternalRBAModel.g:23634:3: ({...}? => ( ( ( rule__SoundContentSet__Group_4_0__0 ) ) ) )
+ // InternalRBAModel.g:23635:4: {...}? => ( ( ( rule__SoundContentSet__Group_4_0__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred275_InternalRBAModel", "getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 0)");
+ }
+ // InternalRBAModel.g:23635:111: ( ( ( rule__SoundContentSet__Group_4_0__0 ) ) )
+ // InternalRBAModel.g:23636:5: ( ( rule__SoundContentSet__Group_4_0__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 0);
+ // InternalRBAModel.g:23642:5: ( ( rule__SoundContentSet__Group_4_0__0 ) )
+ // InternalRBAModel.g:23643:6: ( rule__SoundContentSet__Group_4_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentSetAccess().getGroup_4_0());
+ }
+ // InternalRBAModel.g:23644:6: ( rule__SoundContentSet__Group_4_0__0 )
+ // InternalRBAModel.g:23644:7: rule__SoundContentSet__Group_4_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContentSet__Group_4_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred275_InternalRBAModel
+
+ // $ANTLR start synpred276_InternalRBAModel
+ public final void synpred276_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:23649:3: ( ({...}? => ( ( ( rule__SoundContentSet__Group_4_1__0 ) ) ) ) )
+ // InternalRBAModel.g:23649:3: ({...}? => ( ( ( rule__SoundContentSet__Group_4_1__0 ) ) ) )
+ {
+ // InternalRBAModel.g:23649:3: ({...}? => ( ( ( rule__SoundContentSet__Group_4_1__0 ) ) ) )
+ // InternalRBAModel.g:23650:4: {...}? => ( ( ( rule__SoundContentSet__Group_4_1__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred276_InternalRBAModel", "getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 1)");
+ }
+ // InternalRBAModel.g:23650:111: ( ( ( rule__SoundContentSet__Group_4_1__0 ) ) )
+ // InternalRBAModel.g:23651:5: ( ( rule__SoundContentSet__Group_4_1__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 1);
+ // InternalRBAModel.g:23657:5: ( ( rule__SoundContentSet__Group_4_1__0 ) )
+ // InternalRBAModel.g:23658:6: ( rule__SoundContentSet__Group_4_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSoundContentSetAccess().getGroup_4_1());
+ }
+ // InternalRBAModel.g:23659:6: ( rule__SoundContentSet__Group_4_1__0 )
+ // InternalRBAModel.g:23659:7: rule__SoundContentSet__Group_4_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContentSet__Group_4_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred276_InternalRBAModel
+
+ // $ANTLR start synpred277_InternalRBAModel
+ public final void synpred277_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:23693:2: ( rule__SoundContentSet__UnorderedGroup_4__1 )
+ // InternalRBAModel.g:23693:2: rule__SoundContentSet__UnorderedGroup_4__1
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContentSet__UnorderedGroup_4__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred277_InternalRBAModel
+
+ // $ANTLR start synpred278_InternalRBAModel
+ public final void synpred278_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:23705:2: ( rule__SoundContentSet__UnorderedGroup_4__2 )
+ // InternalRBAModel.g:23705:2: rule__SoundContentSet__UnorderedGroup_4__2
+ {
+ pushFollow(FOLLOW_2);
+ rule__SoundContentSet__UnorderedGroup_4__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred278_InternalRBAModel
+
+ // $ANTLR start synpred279_InternalRBAModel
+ public final void synpred279_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:23729:2: ( rule__Scene__UnorderedGroup_4__0 )
+ // InternalRBAModel.g:23729:2: rule__Scene__UnorderedGroup_4__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Scene__UnorderedGroup_4__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred279_InternalRBAModel
+
+ // $ANTLR start synpred280_InternalRBAModel
+ public final void synpred280_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:23744:3: ( ({...}? => ( ( ( rule__Scene__Group_4_0__0 ) ) ) ) )
+ // InternalRBAModel.g:23744:3: ({...}? => ( ( ( rule__Scene__Group_4_0__0 ) ) ) )
+ {
+ // InternalRBAModel.g:23744:3: ({...}? => ( ( ( rule__Scene__Group_4_0__0 ) ) ) )
+ // InternalRBAModel.g:23745:4: {...}? => ( ( ( rule__Scene__Group_4_0__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred280_InternalRBAModel", "getUnorderedGroupHelper().canSelect(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 0)");
+ }
+ // InternalRBAModel.g:23745:101: ( ( ( rule__Scene__Group_4_0__0 ) ) )
+ // InternalRBAModel.g:23746:5: ( ( rule__Scene__Group_4_0__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 0);
+ // InternalRBAModel.g:23752:5: ( ( rule__Scene__Group_4_0__0 ) )
+ // InternalRBAModel.g:23753:6: ( rule__Scene__Group_4_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSceneAccess().getGroup_4_0());
+ }
+ // InternalRBAModel.g:23754:6: ( rule__Scene__Group_4_0__0 )
+ // InternalRBAModel.g:23754:7: rule__Scene__Group_4_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Scene__Group_4_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred280_InternalRBAModel
+
+ // $ANTLR start synpred281_InternalRBAModel
+ public final void synpred281_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:23759:3: ( ({...}? => ( ( ( rule__Scene__Group_4_1__0 ) ) ) ) )
+ // InternalRBAModel.g:23759:3: ({...}? => ( ( ( rule__Scene__Group_4_1__0 ) ) ) )
+ {
+ // InternalRBAModel.g:23759:3: ({...}? => ( ( ( rule__Scene__Group_4_1__0 ) ) ) )
+ // InternalRBAModel.g:23760:4: {...}? => ( ( ( rule__Scene__Group_4_1__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred281_InternalRBAModel", "getUnorderedGroupHelper().canSelect(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 1)");
+ }
+ // InternalRBAModel.g:23760:101: ( ( ( rule__Scene__Group_4_1__0 ) ) )
+ // InternalRBAModel.g:23761:5: ( ( rule__Scene__Group_4_1__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 1);
+ // InternalRBAModel.g:23767:5: ( ( rule__Scene__Group_4_1__0 ) )
+ // InternalRBAModel.g:23768:6: ( rule__Scene__Group_4_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSceneAccess().getGroup_4_1());
+ }
+ // InternalRBAModel.g:23769:6: ( rule__Scene__Group_4_1__0 )
+ // InternalRBAModel.g:23769:7: rule__Scene__Group_4_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Scene__Group_4_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred281_InternalRBAModel
+
+ // $ANTLR start synpred282_InternalRBAModel
+ public final void synpred282_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:23790:8: ( rule__Scene__PropertiesAssignment_4_2 )
+ // InternalRBAModel.g:23790:9: rule__Scene__PropertiesAssignment_4_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__Scene__PropertiesAssignment_4_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred282_InternalRBAModel
+
+ // $ANTLR start synpred283_InternalRBAModel
+ public final void synpred283_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:23810:2: ( rule__Scene__UnorderedGroup_4__1 )
+ // InternalRBAModel.g:23810:2: rule__Scene__UnorderedGroup_4__1
+ {
+ pushFollow(FOLLOW_2);
+ rule__Scene__UnorderedGroup_4__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred283_InternalRBAModel
+
+ // $ANTLR start synpred284_InternalRBAModel
+ public final void synpred284_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:23822:2: ( rule__Scene__UnorderedGroup_4__2 )
+ // InternalRBAModel.g:23822:2: rule__Scene__UnorderedGroup_4__2
+ {
+ pushFollow(FOLLOW_2);
+ rule__Scene__UnorderedGroup_4__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred284_InternalRBAModel
+
+ // $ANTLR start synpred285_InternalRBAModel
+ public final void synpred285_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:23846:2: ( rule__VerticalLayout__UnorderedGroup_3__0 )
+ // InternalRBAModel.g:23846:2: rule__VerticalLayout__UnorderedGroup_3__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__VerticalLayout__UnorderedGroup_3__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred285_InternalRBAModel
+
+ // $ANTLR start synpred286_InternalRBAModel
+ public final void synpred286_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:23861:3: ( ({...}? => ( ( ( rule__VerticalLayout__Group_3_0__0 ) ) ) ) )
+ // InternalRBAModel.g:23861:3: ({...}? => ( ( ( rule__VerticalLayout__Group_3_0__0 ) ) ) )
+ {
+ // InternalRBAModel.g:23861:3: ({...}? => ( ( ( rule__VerticalLayout__Group_3_0__0 ) ) ) )
+ // InternalRBAModel.g:23862:4: {...}? => ( ( ( rule__VerticalLayout__Group_3_0__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred286_InternalRBAModel", "getUnorderedGroupHelper().canSelect(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3(), 0)");
+ }
+ // InternalRBAModel.g:23862:110: ( ( ( rule__VerticalLayout__Group_3_0__0 ) ) )
+ // InternalRBAModel.g:23863:5: ( ( rule__VerticalLayout__Group_3_0__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3(), 0);
+ // InternalRBAModel.g:23869:5: ( ( rule__VerticalLayout__Group_3_0__0 ) )
+ // InternalRBAModel.g:23870:6: ( rule__VerticalLayout__Group_3_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getVerticalLayoutAccess().getGroup_3_0());
+ }
+ // InternalRBAModel.g:23871:6: ( rule__VerticalLayout__Group_3_0__0 )
+ // InternalRBAModel.g:23871:7: rule__VerticalLayout__Group_3_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__VerticalLayout__Group_3_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred286_InternalRBAModel
+
+ // $ANTLR start synpred287_InternalRBAModel
+ public final void synpred287_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:23905:2: ( rule__VerticalLayout__UnorderedGroup_3__1 )
+ // InternalRBAModel.g:23905:2: rule__VerticalLayout__UnorderedGroup_3__1
+ {
+ pushFollow(FOLLOW_2);
+ rule__VerticalLayout__UnorderedGroup_3__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred287_InternalRBAModel
+
+ // $ANTLR start synpred288_InternalRBAModel
+ public final void synpred288_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:23929:2: ( rule__HorizontalLayout__UnorderedGroup_3__0 )
+ // InternalRBAModel.g:23929:2: rule__HorizontalLayout__UnorderedGroup_3__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__HorizontalLayout__UnorderedGroup_3__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred288_InternalRBAModel
+
+ // $ANTLR start synpred289_InternalRBAModel
+ public final void synpred289_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:23944:3: ( ({...}? => ( ( ( rule__HorizontalLayout__Group_3_0__0 ) ) ) ) )
+ // InternalRBAModel.g:23944:3: ({...}? => ( ( ( rule__HorizontalLayout__Group_3_0__0 ) ) ) )
+ {
+ // InternalRBAModel.g:23944:3: ({...}? => ( ( ( rule__HorizontalLayout__Group_3_0__0 ) ) ) )
+ // InternalRBAModel.g:23945:4: {...}? => ( ( ( rule__HorizontalLayout__Group_3_0__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred289_InternalRBAModel", "getUnorderedGroupHelper().canSelect(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3(), 0)");
+ }
+ // InternalRBAModel.g:23945:112: ( ( ( rule__HorizontalLayout__Group_3_0__0 ) ) )
+ // InternalRBAModel.g:23946:5: ( ( rule__HorizontalLayout__Group_3_0__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3(), 0);
+ // InternalRBAModel.g:23952:5: ( ( rule__HorizontalLayout__Group_3_0__0 ) )
+ // InternalRBAModel.g:23953:6: ( rule__HorizontalLayout__Group_3_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getHorizontalLayoutAccess().getGroup_3_0());
+ }
+ // InternalRBAModel.g:23954:6: ( rule__HorizontalLayout__Group_3_0__0 )
+ // InternalRBAModel.g:23954:7: rule__HorizontalLayout__Group_3_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__HorizontalLayout__Group_3_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred289_InternalRBAModel
+
+ // $ANTLR start synpred290_InternalRBAModel
+ public final void synpred290_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:23988:2: ( rule__HorizontalLayout__UnorderedGroup_3__1 )
+ // InternalRBAModel.g:23988:2: rule__HorizontalLayout__UnorderedGroup_3__1
+ {
+ pushFollow(FOLLOW_2);
+ rule__HorizontalLayout__UnorderedGroup_3__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred290_InternalRBAModel
+
+ // $ANTLR start synpred291_InternalRBAModel
+ public final void synpred291_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:24012:2: ( rule__PositionContainer__UnorderedGroup_3__0 )
+ // InternalRBAModel.g:24012:2: rule__PositionContainer__UnorderedGroup_3__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__PositionContainer__UnorderedGroup_3__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred291_InternalRBAModel
+
+ // $ANTLR start synpred292_InternalRBAModel
+ public final void synpred292_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:24027:3: ( ({...}? => ( ( ( rule__PositionContainer__Group_3_0__0 ) ) ) ) )
+ // InternalRBAModel.g:24027:3: ({...}? => ( ( ( rule__PositionContainer__Group_3_0__0 ) ) ) )
+ {
+ // InternalRBAModel.g:24027:3: ({...}? => ( ( ( rule__PositionContainer__Group_3_0__0 ) ) ) )
+ // InternalRBAModel.g:24028:4: {...}? => ( ( ( rule__PositionContainer__Group_3_0__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred292_InternalRBAModel", "getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 0)");
+ }
+ // InternalRBAModel.g:24028:113: ( ( ( rule__PositionContainer__Group_3_0__0 ) ) )
+ // InternalRBAModel.g:24029:5: ( ( rule__PositionContainer__Group_3_0__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 0);
+ // InternalRBAModel.g:24035:5: ( ( rule__PositionContainer__Group_3_0__0 ) )
+ // InternalRBAModel.g:24036:6: ( rule__PositionContainer__Group_3_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPositionContainerAccess().getGroup_3_0());
+ }
+ // InternalRBAModel.g:24037:6: ( rule__PositionContainer__Group_3_0__0 )
+ // InternalRBAModel.g:24037:7: rule__PositionContainer__Group_3_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__PositionContainer__Group_3_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred292_InternalRBAModel
+
+ // $ANTLR start synpred293_InternalRBAModel
+ public final void synpred293_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:24042:3: ( ({...}? => ( ( ( rule__PositionContainer__Group_3_1__0 ) ) ) ) )
+ // InternalRBAModel.g:24042:3: ({...}? => ( ( ( rule__PositionContainer__Group_3_1__0 ) ) ) )
+ {
+ // InternalRBAModel.g:24042:3: ({...}? => ( ( ( rule__PositionContainer__Group_3_1__0 ) ) ) )
+ // InternalRBAModel.g:24043:4: {...}? => ( ( ( rule__PositionContainer__Group_3_1__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred293_InternalRBAModel", "getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 1)");
+ }
+ // InternalRBAModel.g:24043:113: ( ( ( rule__PositionContainer__Group_3_1__0 ) ) )
+ // InternalRBAModel.g:24044:5: ( ( rule__PositionContainer__Group_3_1__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 1);
+ // InternalRBAModel.g:24050:5: ( ( rule__PositionContainer__Group_3_1__0 ) )
+ // InternalRBAModel.g:24051:6: ( rule__PositionContainer__Group_3_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPositionContainerAccess().getGroup_3_1());
+ }
+ // InternalRBAModel.g:24052:6: ( rule__PositionContainer__Group_3_1__0 )
+ // InternalRBAModel.g:24052:7: rule__PositionContainer__Group_3_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__PositionContainer__Group_3_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred293_InternalRBAModel
+
+ // $ANTLR start synpred294_InternalRBAModel
+ public final void synpred294_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:24057:3: ( ({...}? => ( ( ( rule__PositionContainer__Group_3_2__0 ) ) ) ) )
+ // InternalRBAModel.g:24057:3: ({...}? => ( ( ( rule__PositionContainer__Group_3_2__0 ) ) ) )
+ {
+ // InternalRBAModel.g:24057:3: ({...}? => ( ( ( rule__PositionContainer__Group_3_2__0 ) ) ) )
+ // InternalRBAModel.g:24058:4: {...}? => ( ( ( rule__PositionContainer__Group_3_2__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 2) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred294_InternalRBAModel", "getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 2)");
+ }
+ // InternalRBAModel.g:24058:113: ( ( ( rule__PositionContainer__Group_3_2__0 ) ) )
+ // InternalRBAModel.g:24059:5: ( ( rule__PositionContainer__Group_3_2__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 2);
+ // InternalRBAModel.g:24065:5: ( ( rule__PositionContainer__Group_3_2__0 ) )
+ // InternalRBAModel.g:24066:6: ( rule__PositionContainer__Group_3_2__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPositionContainerAccess().getGroup_3_2());
+ }
+ // InternalRBAModel.g:24067:6: ( rule__PositionContainer__Group_3_2__0 )
+ // InternalRBAModel.g:24067:7: rule__PositionContainer__Group_3_2__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__PositionContainer__Group_3_2__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred294_InternalRBAModel
+
+ // $ANTLR start synpred295_InternalRBAModel
+ public final void synpred295_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:24072:3: ( ({...}? => ( ( ( rule__PositionContainer__Group_3_3__0 ) ) ) ) )
+ // InternalRBAModel.g:24072:3: ({...}? => ( ( ( rule__PositionContainer__Group_3_3__0 ) ) ) )
+ {
+ // InternalRBAModel.g:24072:3: ({...}? => ( ( ( rule__PositionContainer__Group_3_3__0 ) ) ) )
+ // InternalRBAModel.g:24073:4: {...}? => ( ( ( rule__PositionContainer__Group_3_3__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 3) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred295_InternalRBAModel", "getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 3)");
+ }
+ // InternalRBAModel.g:24073:113: ( ( ( rule__PositionContainer__Group_3_3__0 ) ) )
+ // InternalRBAModel.g:24074:5: ( ( rule__PositionContainer__Group_3_3__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 3);
+ // InternalRBAModel.g:24080:5: ( ( rule__PositionContainer__Group_3_3__0 ) )
+ // InternalRBAModel.g:24081:6: ( rule__PositionContainer__Group_3_3__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPositionContainerAccess().getGroup_3_3());
+ }
+ // InternalRBAModel.g:24082:6: ( rule__PositionContainer__Group_3_3__0 )
+ // InternalRBAModel.g:24082:7: rule__PositionContainer__Group_3_3__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__PositionContainer__Group_3_3__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred295_InternalRBAModel
+
+ // $ANTLR start synpred296_InternalRBAModel
+ public final void synpred296_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:24103:8: ( rule__PositionContainer__OffsetAssignment_3_4 )
+ // InternalRBAModel.g:24103:9: rule__PositionContainer__OffsetAssignment_3_4
+ {
+ pushFollow(FOLLOW_2);
+ rule__PositionContainer__OffsetAssignment_3_4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred296_InternalRBAModel
+
+ // $ANTLR start synpred297_InternalRBAModel
+ public final void synpred297_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:24123:2: ( rule__PositionContainer__UnorderedGroup_3__1 )
+ // InternalRBAModel.g:24123:2: rule__PositionContainer__UnorderedGroup_3__1
+ {
+ pushFollow(FOLLOW_2);
+ rule__PositionContainer__UnorderedGroup_3__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred297_InternalRBAModel
+
+ // $ANTLR start synpred298_InternalRBAModel
+ public final void synpred298_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:24135:2: ( rule__PositionContainer__UnorderedGroup_3__2 )
+ // InternalRBAModel.g:24135:2: rule__PositionContainer__UnorderedGroup_3__2
+ {
+ pushFollow(FOLLOW_2);
+ rule__PositionContainer__UnorderedGroup_3__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred298_InternalRBAModel
+
+ // $ANTLR start synpred299_InternalRBAModel
+ public final void synpred299_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:24147:2: ( rule__PositionContainer__UnorderedGroup_3__3 )
+ // InternalRBAModel.g:24147:2: rule__PositionContainer__UnorderedGroup_3__3
+ {
+ pushFollow(FOLLOW_2);
+ rule__PositionContainer__UnorderedGroup_3__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred299_InternalRBAModel
+
+ // $ANTLR start synpred300_InternalRBAModel
+ public final void synpred300_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:24159:2: ( rule__PositionContainer__UnorderedGroup_3__4 )
+ // InternalRBAModel.g:24159:2: rule__PositionContainer__UnorderedGroup_3__4
+ {
+ pushFollow(FOLLOW_2);
+ rule__PositionContainer__UnorderedGroup_3__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred300_InternalRBAModel
+
+ // Delegated rules
+
+ public final boolean synpred257_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred257_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred206_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred206_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred214_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred214_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred249_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred249_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred194_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred194_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred240_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred240_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred281_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred281_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred283_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred283_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred247_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred247_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred273_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred273_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred230_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred230_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred222_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred222_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred186_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred186_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred291_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred291_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred265_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred265_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred239_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred239_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred220_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred220_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred204_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred204_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred298_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred298_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred259_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred259_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred285_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred285_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred212_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred212_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred198_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred198_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred196_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred196_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred288_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred288_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred188_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred188_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred202_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred202_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred275_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred275_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred293_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred293_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred267_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred267_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred201_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred201_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred190_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred190_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred244_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred244_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred260_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred260_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred219_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred219_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred236_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred236_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred227_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred227_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred294_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred294_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred210_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred210_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred269_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred269_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred251_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred251_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred191_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred191_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred147_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred147_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred243_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred243_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred277_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred277_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred235_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred235_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred278_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred278_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred286_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred286_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred252_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred252_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred182_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred182_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred189_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred189_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred263_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred263_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred271_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred271_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred208_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred208_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred289_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred289_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred216_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred216_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred255_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred255_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred258_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred258_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred232_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred232_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred224_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred224_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred297_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred297_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred197_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred197_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred290_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred290_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred144_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred144_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred231_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred231_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred274_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred274_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred223_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred223_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred266_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred266_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred187_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred187_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred300_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred300_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred213_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred213_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred256_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred256_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred221_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred221_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred264_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred264_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred205_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred205_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred248_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred248_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred299_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred299_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred195_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred195_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred282_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred282_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred146_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred146_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred238_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred238_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred246_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred246_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred217_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred217_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred233_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred233_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred185_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred185_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred183_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred183_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred225_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred225_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred207_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred207_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred262_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred262_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred272_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred272_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred193_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred193_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred254_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred254_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred280_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred280_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred228_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred228_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred241_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred241_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred215_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred215_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred180_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred180_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred295_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred295_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred157_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred157_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred287_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred287_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred149_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred149_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred148_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred148_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred181_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred181_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred279_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred279_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred253_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred253_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred296_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred296_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred200_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred200_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred270_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred270_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred234_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred234_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred218_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred218_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred199_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred199_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred261_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred261_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred209_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred209_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred226_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred226_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred276_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred276_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred184_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred184_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred203_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred203_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred292_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred292_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred229_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred229_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred192_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred192_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred242_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred242_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred268_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred268_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred245_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred245_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred145_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred145_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred237_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred237_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred250_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred250_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred284_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred284_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred211_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred211_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+
+
+ protected DFA74 dfa74 = new DFA74(this);
+ protected DFA96 dfa96 = new DFA96(this);
+ protected DFA97 dfa97 = new DFA97(this);
+ protected DFA99 dfa99 = new DFA99(this);
+ protected DFA104 dfa104 = new DFA104(this);
+ protected DFA106 dfa106 = new DFA106(this);
+ protected DFA107 dfa107 = new DFA107(this);
+ protected DFA108 dfa108 = new DFA108(this);
+ protected DFA109 dfa109 = new DFA109(this);
+ protected DFA110 dfa110 = new DFA110(this);
+ protected DFA111 dfa111 = new DFA111(this);
+ protected DFA113 dfa113 = new DFA113(this);
+ protected DFA114 dfa114 = new DFA114(this);
+ protected DFA115 dfa115 = new DFA115(this);
+ protected DFA116 dfa116 = new DFA116(this);
+ protected DFA117 dfa117 = new DFA117(this);
+ protected DFA119 dfa119 = new DFA119(this);
+ protected DFA120 dfa120 = new DFA120(this);
+ protected DFA144 dfa144 = new DFA144(this);
+ protected DFA145 dfa145 = new DFA145(this);
+ protected DFA146 dfa146 = new DFA146(this);
+ protected DFA148 dfa148 = new DFA148(this);
+ protected DFA149 dfa149 = new DFA149(this);
+ protected DFA150 dfa150 = new DFA150(this);
+ protected DFA151 dfa151 = new DFA151(this);
+ protected DFA152 dfa152 = new DFA152(this);
+ protected DFA154 dfa154 = new DFA154(this);
+ protected DFA186 dfa186 = new DFA186(this);
+ static final String dfa_1s = "\6\uffff";
+ static final String dfa_2s = "\1\6\1\24\2\uffff\1\6\1\24";
+ static final String dfa_3s = "\1\u00a6\1\u0099\2\uffff\1\102\1\u0099";
+ static final String dfa_4s = "\2\uffff\1\1\1\2\2\uffff";
+ static final String dfa_5s = "\6\uffff}>";
+ static final String[] dfa_6s = {
+ "\1\1\1\3\26\uffff\1\3\55\uffff\1\3\30\uffff\1\3\5\uffff\1\3\40\uffff\11\3\2\uffff\2\3\1\2\1\3\13\uffff\1\3",
+ "\12\3\110\uffff\1\3\40\uffff\1\4\21\uffff\1\2",
+ "",
+ "",
+ "\1\5\30\uffff\44\3",
+ "\12\3\110\uffff\1\3\40\uffff\1\4\21\uffff\1\2"
+ };
+
+ static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s);
+ static final char[] dfa_2 = DFA.unpackEncodedStringToUnsignedChars(dfa_2s);
+ static final char[] dfa_3 = DFA.unpackEncodedStringToUnsignedChars(dfa_3s);
+ static final short[] dfa_4 = DFA.unpackEncodedString(dfa_4s);
+ static final short[] dfa_5 = DFA.unpackEncodedString(dfa_5s);
+ static final short[][] dfa_6 = unpackEncodedStringArray(dfa_6s);
+
+ class DFA74 extends DFA {
+
+ public DFA74(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 74;
+ this.eot = dfa_1;
+ this.eof = dfa_1;
+ this.min = dfa_2;
+ this.max = dfa_3;
+ this.accept = dfa_4;
+ this.special = dfa_5;
+ this.transition = dfa_6;
+ }
+ public String getDescription() {
+ return "17896:2: ( rule__LambdaExpression__Group_1__0 )?";
+ }
+ }
+ static final String dfa_7s = "\21\uffff";
+ static final String dfa_8s = "\1\103\20\uffff";
+ static final String dfa_9s = "\1\u009d\20\uffff";
+ static final String dfa_10s = "\1\uffff\17\1\1\2";
+ static final String dfa_11s = "\1\0\20\uffff}>";
+ static final String[] dfa_12s = {
+ "\1\11\1\12\1\5\1\4\37\uffff\1\20\1\uffff\1\2\1\1\1\3\2\uffff\1\15\1\16\5\uffff\1\17\6\uffff\1\13\1\uffff\1\14\35\uffff\1\6\1\7\1\10",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ };
+
+ static final short[] dfa_7 = DFA.unpackEncodedString(dfa_7s);
+ static final char[] dfa_8 = DFA.unpackEncodedStringToUnsignedChars(dfa_8s);
+ static final char[] dfa_9 = DFA.unpackEncodedStringToUnsignedChars(dfa_9s);
+ static final short[] dfa_10 = DFA.unpackEncodedString(dfa_10s);
+ static final short[] dfa_11 = DFA.unpackEncodedString(dfa_11s);
+ static final short[][] dfa_12 = unpackEncodedStringArray(dfa_12s);
+
+ class DFA96 extends DFA {
+
+ public DFA96(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 96;
+ this.eot = dfa_7;
+ this.eof = dfa_7;
+ this.min = dfa_8;
+ this.max = dfa_9;
+ this.accept = dfa_10;
+ this.special = dfa_11;
+ this.transition = dfa_12;
+ }
+ public String getDescription() {
+ return "21771:2: ( rule__Package__UnorderedGroup_4__0 )?";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA96_0 = input.LA(1);
+
+
+ int index96_0 = input.index();
+ input.rewind();
+ s = -1;
+ if ( LA96_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 0) ) {s = 1;}
+
+ else if ( LA96_0 == 104 && getUnorderedGroupHelper().canSelect(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 1) ) {s = 2;}
+
+ else if ( LA96_0 == 106 && getUnorderedGroupHelper().canSelect(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 1) ) {s = 3;}
+
+ else if ( LA96_0 == 70 && getUnorderedGroupHelper().canSelect(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 1) ) {s = 4;}
+
+ else if ( LA96_0 == 69 && getUnorderedGroupHelper().canSelect(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 1) ) {s = 5;}
+
+ else if ( LA96_0 == 155 && getUnorderedGroupHelper().canSelect(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 1) ) {s = 6;}
+
+ else if ( LA96_0 == 156 && getUnorderedGroupHelper().canSelect(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 1) ) {s = 7;}
+
+ else if ( LA96_0 == 157 && getUnorderedGroupHelper().canSelect(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 1) ) {s = 8;}
+
+ else if ( LA96_0 == 67 && getUnorderedGroupHelper().canSelect(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 1) ) {s = 9;}
+
+ else if ( LA96_0 == 68 && getUnorderedGroupHelper().canSelect(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 1) ) {s = 10;}
+
+ else if ( LA96_0 == 123 && getUnorderedGroupHelper().canSelect(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 1) ) {s = 11;}
+
+ else if ( LA96_0 == 125 && getUnorderedGroupHelper().canSelect(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 1) ) {s = 12;}
+
+ else if ( LA96_0 == 109 && getUnorderedGroupHelper().canSelect(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 1) ) {s = 13;}
+
+ else if ( LA96_0 == 110 && getUnorderedGroupHelper().canSelect(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 1) ) {s = 14;}
+
+ else if ( LA96_0 == 116 && getUnorderedGroupHelper().canSelect(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 1) ) {s = 15;}
+
+ else if ( (LA96_0==102) ) {s = 16;}
+
+
+ input.seek(index96_0);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 96, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String dfa_13s = "\23\uffff";
+ static final String dfa_14s = "\1\1\22\uffff";
+ static final String dfa_15s = "\1\103\1\uffff\16\0\3\uffff";
+ static final String dfa_16s = "\1\u009d\1\uffff\16\0\3\uffff";
+ static final String dfa_17s = "\1\uffff\1\2\20\uffff\1\1";
+ static final String dfa_18s = "\2\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1\15\3\uffff}>";
+ static final String[] dfa_19s = {
+ "\1\11\1\12\1\5\1\4\37\uffff\1\1\1\uffff\1\2\1\1\1\3\2\uffff\1\15\1\16\5\uffff\1\17\6\uffff\1\13\1\uffff\1\14\35\uffff\1\6\1\7\1\10",
+ "",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "",
+ "",
+ ""
+ };
+
+ static final short[] dfa_13 = DFA.unpackEncodedString(dfa_13s);
+ static final short[] dfa_14 = DFA.unpackEncodedString(dfa_14s);
+ static final char[] dfa_15 = DFA.unpackEncodedStringToUnsignedChars(dfa_15s);
+ static final char[] dfa_16 = DFA.unpackEncodedStringToUnsignedChars(dfa_16s);
+ static final short[] dfa_17 = DFA.unpackEncodedString(dfa_17s);
+ static final short[] dfa_18 = DFA.unpackEncodedString(dfa_18s);
+ static final short[][] dfa_19 = unpackEncodedStringArray(dfa_19s);
+
+ class DFA97 extends DFA {
+
+ public DFA97(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 97;
+ this.eot = dfa_13;
+ this.eof = dfa_14;
+ this.min = dfa_15;
+ this.max = dfa_16;
+ this.accept = dfa_17;
+ this.special = dfa_18;
+ this.transition = dfa_19;
+ }
+ public String getDescription() {
+ return "()* loopback of 21817:7: ( ( rule__Package__PackagableelementAssignment_4_1 )=> rule__Package__PackagableelementAssignment_4_1 )*";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA97_2 = input.LA(1);
+
+
+ int index97_2 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred182_InternalRBAModel()) ) {s = 18;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index97_2);
+ if ( s>=0 ) return s;
+ break;
+ case 1 :
+ int LA97_3 = input.LA(1);
+
+
+ int index97_3 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred182_InternalRBAModel()) ) {s = 18;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index97_3);
+ if ( s>=0 ) return s;
+ break;
+ case 2 :
+ int LA97_4 = input.LA(1);
+
+
+ int index97_4 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred182_InternalRBAModel()) ) {s = 18;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index97_4);
+ if ( s>=0 ) return s;
+ break;
+ case 3 :
+ int LA97_5 = input.LA(1);
+
+
+ int index97_5 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred182_InternalRBAModel()) ) {s = 18;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index97_5);
+ if ( s>=0 ) return s;
+ break;
+ case 4 :
+ int LA97_6 = input.LA(1);
+
+
+ int index97_6 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred182_InternalRBAModel()) ) {s = 18;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index97_6);
+ if ( s>=0 ) return s;
+ break;
+ case 5 :
+ int LA97_7 = input.LA(1);
+
+
+ int index97_7 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred182_InternalRBAModel()) ) {s = 18;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index97_7);
+ if ( s>=0 ) return s;
+ break;
+ case 6 :
+ int LA97_8 = input.LA(1);
+
+
+ int index97_8 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred182_InternalRBAModel()) ) {s = 18;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index97_8);
+ if ( s>=0 ) return s;
+ break;
+ case 7 :
+ int LA97_9 = input.LA(1);
+
+
+ int index97_9 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred182_InternalRBAModel()) ) {s = 18;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index97_9);
+ if ( s>=0 ) return s;
+ break;
+ case 8 :
+ int LA97_10 = input.LA(1);
+
+
+ int index97_10 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred182_InternalRBAModel()) ) {s = 18;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index97_10);
+ if ( s>=0 ) return s;
+ break;
+ case 9 :
+ int LA97_11 = input.LA(1);
+
+
+ int index97_11 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred182_InternalRBAModel()) ) {s = 18;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index97_11);
+ if ( s>=0 ) return s;
+ break;
+ case 10 :
+ int LA97_12 = input.LA(1);
+
+
+ int index97_12 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred182_InternalRBAModel()) ) {s = 18;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index97_12);
+ if ( s>=0 ) return s;
+ break;
+ case 11 :
+ int LA97_13 = input.LA(1);
+
+
+ int index97_13 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred182_InternalRBAModel()) ) {s = 18;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index97_13);
+ if ( s>=0 ) return s;
+ break;
+ case 12 :
+ int LA97_14 = input.LA(1);
+
+
+ int index97_14 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred182_InternalRBAModel()) ) {s = 18;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index97_14);
+ if ( s>=0 ) return s;
+ break;
+ case 13 :
+ int LA97_15 = input.LA(1);
+
+
+ int index97_15 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred182_InternalRBAModel()) ) {s = 18;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index97_15);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 97, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String dfa_20s = "\1\20\20\uffff";
+ static final short[] dfa_20 = DFA.unpackEncodedString(dfa_20s);
+
+ class DFA99 extends DFA {
+
+ public DFA99(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 99;
+ this.eot = dfa_7;
+ this.eof = dfa_20;
+ this.min = dfa_8;
+ this.max = dfa_9;
+ this.accept = dfa_10;
+ this.special = dfa_11;
+ this.transition = dfa_12;
+ }
+ public String getDescription() {
+ return "21837:2: ( rule__Package__UnorderedGroup_4__1 )?";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA99_0 = input.LA(1);
+
+
+ int index99_0 = input.index();
+ input.rewind();
+ s = -1;
+ if ( LA99_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 0) ) {s = 1;}
+
+ else if ( LA99_0 == 104 && getUnorderedGroupHelper().canSelect(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 1) ) {s = 2;}
+
+ else if ( LA99_0 == 106 && getUnorderedGroupHelper().canSelect(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 1) ) {s = 3;}
+
+ else if ( LA99_0 == 70 && getUnorderedGroupHelper().canSelect(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 1) ) {s = 4;}
+
+ else if ( LA99_0 == 69 && getUnorderedGroupHelper().canSelect(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 1) ) {s = 5;}
+
+ else if ( LA99_0 == 155 && getUnorderedGroupHelper().canSelect(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 1) ) {s = 6;}
+
+ else if ( LA99_0 == 156 && getUnorderedGroupHelper().canSelect(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 1) ) {s = 7;}
+
+ else if ( LA99_0 == 157 && getUnorderedGroupHelper().canSelect(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 1) ) {s = 8;}
+
+ else if ( LA99_0 == 67 && getUnorderedGroupHelper().canSelect(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 1) ) {s = 9;}
+
+ else if ( LA99_0 == 68 && getUnorderedGroupHelper().canSelect(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 1) ) {s = 10;}
+
+ else if ( LA99_0 == 123 && getUnorderedGroupHelper().canSelect(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 1) ) {s = 11;}
+
+ else if ( LA99_0 == 125 && getUnorderedGroupHelper().canSelect(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 1) ) {s = 12;}
+
+ else if ( LA99_0 == 109 && getUnorderedGroupHelper().canSelect(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 1) ) {s = 13;}
+
+ else if ( LA99_0 == 110 && getUnorderedGroupHelper().canSelect(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 1) ) {s = 14;}
+
+ else if ( LA99_0 == 116 && getUnorderedGroupHelper().canSelect(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 1) ) {s = 15;}
+
+ else if ( (LA99_0==EOF||LA99_0==102) ) {s = 16;}
+
+
+ input.seek(index99_0);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 99, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String dfa_21s = "\27\uffff";
+ static final String dfa_22s = "\1\6\26\uffff";
+ static final String dfa_23s = "\1\u00a6\26\uffff";
+ static final String dfa_24s = "\1\uffff\25\1\1\2";
+ static final String dfa_25s = "\1\0\26\uffff}>";
+ static final String[] dfa_26s = {
+ "\1\5\1\16\26\uffff\1\4\55\uffff\1\6\30\uffff\1\21\1\26\2\uffff\1\1\1\uffff\1\25\3\uffff\1\2\34\uffff\1\10\1\11\1\12\1\13\1\14\1\7\1\20\1\17\1\22\2\uffff\1\23\1\24\1\uffff\1\3\13\uffff\1\15",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ };
+
+ static final short[] dfa_21 = DFA.unpackEncodedString(dfa_21s);
+ static final char[] dfa_22 = DFA.unpackEncodedStringToUnsignedChars(dfa_22s);
+ static final char[] dfa_23 = DFA.unpackEncodedStringToUnsignedChars(dfa_23s);
+ static final short[] dfa_24 = DFA.unpackEncodedString(dfa_24s);
+ static final short[] dfa_25 = DFA.unpackEncodedString(dfa_25s);
+ static final short[][] dfa_26 = unpackEncodedStringArray(dfa_26s);
+
+ class DFA104 extends DFA {
+
+ public DFA104(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 104;
+ this.eot = dfa_21;
+ this.eof = dfa_21;
+ this.min = dfa_22;
+ this.max = dfa_23;
+ this.accept = dfa_24;
+ this.special = dfa_25;
+ this.transition = dfa_26;
+ }
+ public String getDescription() {
+ return "21971:2: ( rule__Constraint__UnorderedGroup_4__0 )?";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA104_0 = input.LA(1);
+
+
+ int index104_0 = input.index();
+ input.rewind();
+ s = -1;
+ if ( LA104_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 0) ) {s = 1;}
+
+ else if ( LA104_0 == 111 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 1) ) {s = 2;}
+
+ else if ( LA104_0 == 154 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 3;}
+
+ else if ( LA104_0 == 30 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 4;}
+
+ else if ( LA104_0 == RULE_ID && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 5;}
+
+ else if ( LA104_0 == 76 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 6;}
+
+ else if ( LA104_0 == 145 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 7;}
+
+ else if ( LA104_0 == 140 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 8;}
+
+ else if ( LA104_0 == 141 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 9;}
+
+ else if ( LA104_0 == 142 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 10;}
+
+ else if ( LA104_0 == 143 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 11;}
+
+ else if ( LA104_0 == 144 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 12;}
+
+ else if ( LA104_0 == 166 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 13;}
+
+ else if ( LA104_0 == RULE_INT && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 14;}
+
+ else if ( LA104_0 == 147 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 15;}
+
+ else if ( LA104_0 == 146 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 16;}
+
+ else if ( LA104_0 == 101 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 17;}
+
+ else if ( LA104_0 == 148 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 18;}
+
+ else if ( LA104_0 == 151 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 19;}
+
+ else if ( LA104_0 == 152 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 20;}
+
+ else if ( LA104_0 == 107 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 21;}
+
+ else if ( (LA104_0==102) ) {s = 22;}
+
+
+ input.seek(index104_0);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 104, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String dfa_27s = "\1\26\26\uffff";
+ static final short[] dfa_27 = DFA.unpackEncodedString(dfa_27s);
+
+ class DFA106 extends DFA {
+
+ public DFA106(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 106;
+ this.eot = dfa_21;
+ this.eof = dfa_27;
+ this.min = dfa_22;
+ this.max = dfa_23;
+ this.accept = dfa_24;
+ this.special = dfa_25;
+ this.transition = dfa_26;
+ }
+ public String getDescription() {
+ return "22045:2: ( rule__Constraint__UnorderedGroup_4__1 )?";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA106_0 = input.LA(1);
+
+
+ int index106_0 = input.index();
+ input.rewind();
+ s = -1;
+ if ( LA106_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 0) ) {s = 1;}
+
+ else if ( LA106_0 == 111 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 1) ) {s = 2;}
+
+ else if ( LA106_0 == 154 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 3;}
+
+ else if ( LA106_0 == 30 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 4;}
+
+ else if ( LA106_0 == RULE_ID && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 5;}
+
+ else if ( LA106_0 == 76 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 6;}
+
+ else if ( LA106_0 == 145 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 7;}
+
+ else if ( LA106_0 == 140 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 8;}
+
+ else if ( LA106_0 == 141 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 9;}
+
+ else if ( LA106_0 == 142 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 10;}
+
+ else if ( LA106_0 == 143 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 11;}
+
+ else if ( LA106_0 == 144 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 12;}
+
+ else if ( LA106_0 == 166 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 13;}
+
+ else if ( LA106_0 == RULE_INT && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 14;}
+
+ else if ( LA106_0 == 147 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 15;}
+
+ else if ( LA106_0 == 146 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 16;}
+
+ else if ( LA106_0 == 101 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 17;}
+
+ else if ( LA106_0 == 148 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 18;}
+
+ else if ( LA106_0 == 151 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 19;}
+
+ else if ( LA106_0 == 152 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 20;}
+
+ else if ( LA106_0 == 107 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 21;}
+
+ else if ( (LA106_0==EOF||LA106_0==102) ) {s = 22;}
+
+
+ input.seek(index106_0);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 106, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+
+ class DFA107 extends DFA {
+
+ public DFA107(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 107;
+ this.eot = dfa_21;
+ this.eof = dfa_27;
+ this.min = dfa_22;
+ this.max = dfa_23;
+ this.accept = dfa_24;
+ this.special = dfa_25;
+ this.transition = dfa_26;
+ }
+ public String getDescription() {
+ return "22057:2: ( rule__Constraint__UnorderedGroup_4__2 )?";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA107_0 = input.LA(1);
+
+
+ int index107_0 = input.index();
+ input.rewind();
+ s = -1;
+ if ( LA107_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 0) ) {s = 1;}
+
+ else if ( LA107_0 == 111 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 1) ) {s = 2;}
+
+ else if ( LA107_0 == 154 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 3;}
+
+ else if ( LA107_0 == 30 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 4;}
+
+ else if ( LA107_0 == RULE_ID && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 5;}
+
+ else if ( LA107_0 == 76 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 6;}
+
+ else if ( LA107_0 == 145 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 7;}
+
+ else if ( LA107_0 == 140 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 8;}
+
+ else if ( LA107_0 == 141 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 9;}
+
+ else if ( LA107_0 == 142 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 10;}
+
+ else if ( LA107_0 == 143 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 11;}
+
+ else if ( LA107_0 == 144 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 12;}
+
+ else if ( LA107_0 == 166 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 13;}
+
+ else if ( LA107_0 == RULE_INT && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 14;}
+
+ else if ( LA107_0 == 147 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 15;}
+
+ else if ( LA107_0 == 146 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 16;}
+
+ else if ( LA107_0 == 101 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 17;}
+
+ else if ( LA107_0 == 148 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 18;}
+
+ else if ( LA107_0 == 151 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 19;}
+
+ else if ( LA107_0 == 152 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 20;}
+
+ else if ( LA107_0 == 107 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {s = 21;}
+
+ else if ( (LA107_0==EOF||LA107_0==102) ) {s = 22;}
+
+
+ input.seek(index107_0);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 107, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String dfa_28s = "\12\uffff";
+ static final String dfa_29s = "\1\142\11\uffff";
+ static final String dfa_30s = "\1\u0083\11\uffff";
+ static final String dfa_31s = "\1\uffff\10\1\1\2";
+ static final String dfa_32s = "\1\0\11\uffff}>";
+ static final String[] dfa_33s = {
+ "\1\7\1\10\2\uffff\1\11\2\uffff\1\1\6\uffff\1\2\1\3\2\uffff\1\6\2\uffff\1\5\13\uffff\1\4",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ };
+
+ static final short[] dfa_28 = DFA.unpackEncodedString(dfa_28s);
+ static final char[] dfa_29 = DFA.unpackEncodedStringToUnsignedChars(dfa_29s);
+ static final char[] dfa_30 = DFA.unpackEncodedStringToUnsignedChars(dfa_30s);
+ static final short[] dfa_31 = DFA.unpackEncodedString(dfa_31s);
+ static final short[] dfa_32 = DFA.unpackEncodedString(dfa_32s);
+ static final short[][] dfa_33 = unpackEncodedStringArray(dfa_33s);
+
+ class DFA108 extends DFA {
+
+ public DFA108(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 108;
+ this.eot = dfa_28;
+ this.eof = dfa_28;
+ this.min = dfa_29;
+ this.max = dfa_30;
+ this.accept = dfa_31;
+ this.special = dfa_32;
+ this.transition = dfa_33;
+ }
+ public String getDescription() {
+ return "22081:2: ( rule__ViewContent__UnorderedGroup_4__0 )?";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA108_0 = input.LA(1);
+
+
+ int index108_0 = input.index();
+ input.rewind();
+ s = -1;
+ if ( LA108_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 0) ) {s = 1;}
+
+ else if ( LA108_0 == 112 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 1) ) {s = 2;}
+
+ else if ( LA108_0 == 113 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 2) ) {s = 3;}
+
+ else if ( LA108_0 == 131 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 3) ) {s = 4;}
+
+ else if ( LA108_0 == 119 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 4) ) {s = 5;}
+
+ else if ( LA108_0 == 116 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 4) ) {s = 6;}
+
+ else if ( LA108_0 == 98 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 5) ) {s = 7;}
+
+ else if ( LA108_0 == 99 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 5) ) {s = 8;}
+
+ else if ( (LA108_0==102) ) {s = 9;}
+
+
+ input.seek(index108_0);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 108, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String dfa_34s = "\14\uffff";
+ static final String dfa_35s = "\1\1\13\uffff";
+ static final String dfa_36s = "\1\142\3\uffff\1\0\7\uffff";
+ static final String dfa_37s = "\1\u0083\3\uffff\1\0\7\uffff";
+ static final String dfa_38s = "\1\uffff\1\2\11\uffff\1\1";
+ static final String dfa_39s = "\4\uffff\1\0\7\uffff}>";
+ static final String[] dfa_40s = {
+ "\2\1\2\uffff\1\1\2\uffff\1\1\6\uffff\2\1\2\uffff\1\1\2\uffff\1\1\13\uffff\1\4",
+ "",
+ "",
+ "",
+ "\1\uffff",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ };
+
+ static final short[] dfa_34 = DFA.unpackEncodedString(dfa_34s);
+ static final short[] dfa_35 = DFA.unpackEncodedString(dfa_35s);
+ static final char[] dfa_36 = DFA.unpackEncodedStringToUnsignedChars(dfa_36s);
+ static final char[] dfa_37 = DFA.unpackEncodedStringToUnsignedChars(dfa_37s);
+ static final short[] dfa_38 = DFA.unpackEncodedString(dfa_38s);
+ static final short[] dfa_39 = DFA.unpackEncodedString(dfa_39s);
+ static final short[][] dfa_40 = unpackEncodedStringArray(dfa_40s);
+
+ class DFA109 extends DFA {
+
+ public DFA109(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 109;
+ this.eot = dfa_34;
+ this.eof = dfa_35;
+ this.min = dfa_36;
+ this.max = dfa_37;
+ this.accept = dfa_38;
+ this.special = dfa_39;
+ this.transition = dfa_40;
+ }
+ public String getDescription() {
+ return "()* loopback of 22157:7: ( ( rule__ViewContent__StatesAssignment_4_3 )=> rule__ViewContent__StatesAssignment_4_3 )*";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA109_4 = input.LA(1);
+
+
+ int index109_4 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred198_InternalRBAModel()) ) {s = 11;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index109_4);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 109, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String dfa_41s = "\43\uffff";
+ static final String dfa_42s = "\1\1\42\uffff";
+ static final String dfa_43s = "\1\142\1\uffff\2\6\1\0\1\145\1\uffff\1\6\1\146\1\145\1\4\2\7\1\0\1\146\1\7\1\146\1\7\1\146\1\4\2\7\1\146\1\7\1\146\1\7\1\146\1\4\2\7\1\146\1\7\1\146\1\7\1\146";
+ static final String dfa_44s = "\1\u0083\1\uffff\2\6\1\0\1\u0087\1\uffff\1\6\1\166\1\u0087\1\4\2\u00a6\1\0\1\166\1\7\1\166\1\7\1\166\1\4\2\u00a6\1\166\1\7\1\166\1\7\1\166\1\4\2\u00a6\1\146\1\7\1\146\1\7\1\146";
+ static final String dfa_45s = "\1\uffff\1\2\4\uffff\1\1\34\uffff";
+ static final String dfa_46s = "\4\uffff\1\1\10\uffff\1\0\25\uffff}>";
+ static final String[] dfa_47s = {
+ "\2\1\2\uffff\1\1\2\uffff\1\1\6\uffff\2\1\2\uffff\1\3\2\uffff\1\2\13\uffff\1\1",
+ "",
+ "\1\4",
+ "\1\5",
+ "\1\uffff",
+ "\1\10\41\uffff\1\7",
+ "",
+ "\1\11",
+ "\1\15\2\uffff\1\12\13\uffff\1\13\1\14",
+ "\1\10\41\uffff\1\7",
+ "\1\16",
+ "\1\20\u009e\uffff\1\17",
+ "\1\22\u009e\uffff\1\21",
+ "\1\uffff",
+ "\1\15\2\uffff\1\23\13\uffff\1\24\1\25",
+ "\1\20",
+ "\1\15\2\uffff\1\23\13\uffff\1\24\1\25",
+ "\1\22",
+ "\1\15\2\uffff\1\23\13\uffff\1\24\1\25",
+ "\1\26",
+ "\1\30\u009e\uffff\1\27",
+ "\1\32\u009e\uffff\1\31",
+ "\1\15\2\uffff\1\33\13\uffff\1\34\1\35",
+ "\1\30",
+ "\1\15\2\uffff\1\33\13\uffff\1\34\1\35",
+ "\1\32",
+ "\1\15\2\uffff\1\33\13\uffff\1\34\1\35",
+ "\1\36",
+ "\1\40\u009e\uffff\1\37",
+ "\1\42\u009e\uffff\1\41",
+ "\1\15",
+ "\1\40",
+ "\1\15",
+ "\1\42",
+ "\1\15"
+ };
+
+ static final short[] dfa_41 = DFA.unpackEncodedString(dfa_41s);
+ static final short[] dfa_42 = DFA.unpackEncodedString(dfa_42s);
+ static final char[] dfa_43 = DFA.unpackEncodedStringToUnsignedChars(dfa_43s);
+ static final char[] dfa_44 = DFA.unpackEncodedStringToUnsignedChars(dfa_44s);
+ static final short[] dfa_45 = DFA.unpackEncodedString(dfa_45s);
+ static final short[] dfa_46 = DFA.unpackEncodedString(dfa_46s);
+ static final short[][] dfa_47 = unpackEncodedStringArray(dfa_47s);
+
+ class DFA110 extends DFA {
+
+ public DFA110(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 110;
+ this.eot = dfa_41;
+ this.eof = dfa_42;
+ this.min = dfa_43;
+ this.max = dfa_44;
+ this.accept = dfa_45;
+ this.special = dfa_46;
+ this.transition = dfa_47;
+ }
+ public String getDescription() {
+ return "()* loopback of 22179:7: ( ( rule__ViewContent__SizeAssignment_4_4 )=> rule__ViewContent__SizeAssignment_4_4 )*";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA110_13 = input.LA(1);
+
+
+ int index110_13 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred200_InternalRBAModel()) ) {s = 6;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index110_13);
+ if ( s>=0 ) return s;
+ break;
+ case 1 :
+ int LA110_4 = input.LA(1);
+
+
+ int index110_4 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred200_InternalRBAModel()) ) {s = 6;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index110_4);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 110, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String dfa_48s = "\15\uffff";
+ static final String dfa_49s = "\1\1\14\uffff";
+ static final String dfa_50s = "\1\142\1\uffff\2\6\1\23\1\144\1\6\1\0\1\6\1\0\1\23\1\uffff\1\144";
+ static final String dfa_51s = "\1\u0083\1\uffff\2\6\2\u0087\1\6\1\0\1\6\1\0\1\u0087\1\uffff\1\u0087";
+ static final String dfa_52s = "\1\uffff\1\2\11\uffff\1\1\1\uffff";
+ static final String dfa_53s = "\7\uffff\1\0\1\uffff\1\1\3\uffff}>";
+ static final String[] dfa_54s = {
+ "\1\2\1\3\2\uffff\1\1\2\uffff\1\1\6\uffff\2\1\2\uffff\1\1\2\uffff\1\1\13\uffff\1\1",
+ "",
+ "\1\4",
+ "\1\5",
+ "\1\7\163\uffff\1\6",
+ "\1\11\42\uffff\1\10",
+ "\1\12",
+ "\1\uffff",
+ "\1\14",
+ "\1\uffff",
+ "\1\7\163\uffff\1\6",
+ "",
+ "\1\11\42\uffff\1\10"
+ };
+
+ static final short[] dfa_48 = DFA.unpackEncodedString(dfa_48s);
+ static final short[] dfa_49 = DFA.unpackEncodedString(dfa_49s);
+ static final char[] dfa_50 = DFA.unpackEncodedStringToUnsignedChars(dfa_50s);
+ static final char[] dfa_51 = DFA.unpackEncodedStringToUnsignedChars(dfa_51s);
+ static final short[] dfa_52 = DFA.unpackEncodedString(dfa_52s);
+ static final short[] dfa_53 = DFA.unpackEncodedString(dfa_53s);
+ static final short[][] dfa_54 = unpackEncodedStringArray(dfa_54s);
+
+ class DFA111 extends DFA {
+
+ public DFA111(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 111;
+ this.eot = dfa_48;
+ this.eof = dfa_49;
+ this.min = dfa_50;
+ this.max = dfa_51;
+ this.accept = dfa_52;
+ this.special = dfa_53;
+ this.transition = dfa_54;
+ }
+ public String getDescription() {
+ return "()* loopback of 22201:7: ( ( rule__ViewContent__TagsAssignment_4_5 )=> rule__ViewContent__TagsAssignment_4_5 )*";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA111_7 = input.LA(1);
+
+
+ int index111_7 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred202_InternalRBAModel()) ) {s = 11;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index111_7);
+ if ( s>=0 ) return s;
+ break;
+ case 1 :
+ int LA111_9 = input.LA(1);
+
+
+ int index111_9 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred202_InternalRBAModel()) ) {s = 11;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index111_9);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 111, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String dfa_55s = "\1\11\11\uffff";
+ static final short[] dfa_55 = DFA.unpackEncodedString(dfa_55s);
+
+ class DFA113 extends DFA {
+
+ public DFA113(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 113;
+ this.eot = dfa_28;
+ this.eof = dfa_55;
+ this.min = dfa_29;
+ this.max = dfa_30;
+ this.accept = dfa_31;
+ this.special = dfa_32;
+ this.transition = dfa_33;
+ }
+ public String getDescription() {
+ return "22221:2: ( rule__ViewContent__UnorderedGroup_4__1 )?";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA113_0 = input.LA(1);
+
+
+ int index113_0 = input.index();
+ input.rewind();
+ s = -1;
+ if ( LA113_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 0) ) {s = 1;}
+
+ else if ( LA113_0 == 112 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 1) ) {s = 2;}
+
+ else if ( LA113_0 == 113 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 2) ) {s = 3;}
+
+ else if ( LA113_0 == 131 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 3) ) {s = 4;}
+
+ else if ( LA113_0 == 119 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 4) ) {s = 5;}
+
+ else if ( LA113_0 == 116 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 4) ) {s = 6;}
+
+ else if ( LA113_0 == 98 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 5) ) {s = 7;}
+
+ else if ( LA113_0 == 99 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 5) ) {s = 8;}
+
+ else if ( (LA113_0==EOF||LA113_0==102) ) {s = 9;}
+
+
+ input.seek(index113_0);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 113, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+
+ class DFA114 extends DFA {
+
+ public DFA114(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 114;
+ this.eot = dfa_28;
+ this.eof = dfa_55;
+ this.min = dfa_29;
+ this.max = dfa_30;
+ this.accept = dfa_31;
+ this.special = dfa_32;
+ this.transition = dfa_33;
+ }
+ public String getDescription() {
+ return "22233:2: ( rule__ViewContent__UnorderedGroup_4__2 )?";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA114_0 = input.LA(1);
+
+
+ int index114_0 = input.index();
+ input.rewind();
+ s = -1;
+ if ( LA114_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 0) ) {s = 1;}
+
+ else if ( LA114_0 == 112 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 1) ) {s = 2;}
+
+ else if ( LA114_0 == 113 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 2) ) {s = 3;}
+
+ else if ( LA114_0 == 131 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 3) ) {s = 4;}
+
+ else if ( LA114_0 == 119 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 4) ) {s = 5;}
+
+ else if ( LA114_0 == 116 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 4) ) {s = 6;}
+
+ else if ( LA114_0 == 98 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 5) ) {s = 7;}
+
+ else if ( LA114_0 == 99 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 5) ) {s = 8;}
+
+ else if ( (LA114_0==EOF||LA114_0==102) ) {s = 9;}
+
+
+ input.seek(index114_0);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 114, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+
+ class DFA115 extends DFA {
+
+ public DFA115(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 115;
+ this.eot = dfa_28;
+ this.eof = dfa_55;
+ this.min = dfa_29;
+ this.max = dfa_30;
+ this.accept = dfa_31;
+ this.special = dfa_32;
+ this.transition = dfa_33;
+ }
+ public String getDescription() {
+ return "22245:2: ( rule__ViewContent__UnorderedGroup_4__3 )?";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA115_0 = input.LA(1);
+
+
+ int index115_0 = input.index();
+ input.rewind();
+ s = -1;
+ if ( LA115_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 0) ) {s = 1;}
+
+ else if ( LA115_0 == 112 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 1) ) {s = 2;}
+
+ else if ( LA115_0 == 113 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 2) ) {s = 3;}
+
+ else if ( LA115_0 == 131 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 3) ) {s = 4;}
+
+ else if ( LA115_0 == 119 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 4) ) {s = 5;}
+
+ else if ( LA115_0 == 116 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 4) ) {s = 6;}
+
+ else if ( LA115_0 == 98 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 5) ) {s = 7;}
+
+ else if ( LA115_0 == 99 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 5) ) {s = 8;}
+
+ else if ( (LA115_0==EOF||LA115_0==102) ) {s = 9;}
+
+
+ input.seek(index115_0);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 115, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+
+ class DFA116 extends DFA {
+
+ public DFA116(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 116;
+ this.eot = dfa_28;
+ this.eof = dfa_55;
+ this.min = dfa_29;
+ this.max = dfa_30;
+ this.accept = dfa_31;
+ this.special = dfa_32;
+ this.transition = dfa_33;
+ }
+ public String getDescription() {
+ return "22257:2: ( rule__ViewContent__UnorderedGroup_4__4 )?";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA116_0 = input.LA(1);
+
+
+ int index116_0 = input.index();
+ input.rewind();
+ s = -1;
+ if ( LA116_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 0) ) {s = 1;}
+
+ else if ( LA116_0 == 112 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 1) ) {s = 2;}
+
+ else if ( LA116_0 == 113 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 2) ) {s = 3;}
+
+ else if ( LA116_0 == 131 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 3) ) {s = 4;}
+
+ else if ( LA116_0 == 119 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 4) ) {s = 5;}
+
+ else if ( LA116_0 == 116 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 4) ) {s = 6;}
+
+ else if ( LA116_0 == 98 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 5) ) {s = 7;}
+
+ else if ( LA116_0 == 99 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 5) ) {s = 8;}
+
+ else if ( (LA116_0==EOF||LA116_0==102) ) {s = 9;}
+
+
+ input.seek(index116_0);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 116, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+
+ class DFA117 extends DFA {
+
+ public DFA117(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 117;
+ this.eot = dfa_28;
+ this.eof = dfa_55;
+ this.min = dfa_29;
+ this.max = dfa_30;
+ this.accept = dfa_31;
+ this.special = dfa_32;
+ this.transition = dfa_33;
+ }
+ public String getDescription() {
+ return "22269:2: ( rule__ViewContent__UnorderedGroup_4__5 )?";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA117_0 = input.LA(1);
+
+
+ int index117_0 = input.index();
+ input.rewind();
+ s = -1;
+ if ( LA117_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 0) ) {s = 1;}
+
+ else if ( LA117_0 == 112 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 1) ) {s = 2;}
+
+ else if ( LA117_0 == 113 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 2) ) {s = 3;}
+
+ else if ( LA117_0 == 131 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 3) ) {s = 4;}
+
+ else if ( LA117_0 == 119 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 4) ) {s = 5;}
+
+ else if ( LA117_0 == 116 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 4) ) {s = 6;}
+
+ else if ( LA117_0 == 98 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 5) ) {s = 7;}
+
+ else if ( LA117_0 == 99 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 5) ) {s = 8;}
+
+ else if ( (LA117_0==EOF||LA117_0==102) ) {s = 9;}
+
+
+ input.seek(index117_0);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 117, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String dfa_56s = "\1\1\11\uffff";
+ static final String dfa_57s = "\1\142\3\uffff\1\0\5\uffff";
+ static final String dfa_58s = "\1\u0083\3\uffff\1\0\5\uffff";
+ static final String dfa_59s = "\1\uffff\1\2\7\uffff\1\1";
+ static final String dfa_60s = "\4\uffff\1\0\5\uffff}>";
+ static final String[] dfa_61s = {
+ "\2\1\2\uffff\1\1\2\uffff\1\1\6\uffff\2\1\21\uffff\1\4",
+ "",
+ "",
+ "",
+ "\1\uffff",
+ "",
+ "",
+ "",
+ "",
+ ""
+ };
+ static final short[] dfa_56 = DFA.unpackEncodedString(dfa_56s);
+ static final char[] dfa_57 = DFA.unpackEncodedStringToUnsignedChars(dfa_57s);
+ static final char[] dfa_58 = DFA.unpackEncodedStringToUnsignedChars(dfa_58s);
+ static final short[] dfa_59 = DFA.unpackEncodedString(dfa_59s);
+ static final short[] dfa_60 = DFA.unpackEncodedString(dfa_60s);
+ static final short[][] dfa_61 = unpackEncodedStringArray(dfa_61s);
+
+ class DFA119 extends DFA {
+
+ public DFA119(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 119;
+ this.eot = dfa_28;
+ this.eof = dfa_56;
+ this.min = dfa_57;
+ this.max = dfa_58;
+ this.accept = dfa_59;
+ this.special = dfa_60;
+ this.transition = dfa_61;
+ }
+ public String getDescription() {
+ return "()* loopback of 22369:7: ( ( rule__SoundContent__StatesAssignment_4_3 )=> rule__SoundContent__StatesAssignment_4_3 )*";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA119_4 = input.LA(1);
+
+
+ int index119_4 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred212_InternalRBAModel()) ) {s = 9;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index119_4);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 119, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String[] dfa_62s = {
+ "\1\2\1\3\2\uffff\1\1\2\uffff\1\1\6\uffff\2\1\21\uffff\1\1",
+ "",
+ "\1\4",
+ "\1\5",
+ "\1\7\163\uffff\1\6",
+ "\1\11\42\uffff\1\10",
+ "\1\12",
+ "\1\uffff",
+ "\1\14",
+ "\1\uffff",
+ "\1\7\163\uffff\1\6",
+ "",
+ "\1\11\42\uffff\1\10"
+ };
+ static final short[][] dfa_62 = unpackEncodedStringArray(dfa_62s);
+
+ class DFA120 extends DFA {
+
+ public DFA120(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 120;
+ this.eot = dfa_48;
+ this.eof = dfa_49;
+ this.min = dfa_50;
+ this.max = dfa_51;
+ this.accept = dfa_52;
+ this.special = dfa_53;
+ this.transition = dfa_62;
+ }
+ public String getDescription() {
+ return "()* loopback of 22391:7: ( ( rule__SoundContent__TagsAssignment_4_4 )=> rule__SoundContent__TagsAssignment_4_4 )*";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA120_7 = input.LA(1);
+
+
+ int index120_7 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred214_InternalRBAModel()) ) {s = 11;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index120_7);
+ if ( s>=0 ) return s;
+ break;
+ case 1 :
+ int LA120_9 = input.LA(1);
+
+
+ int index120_9 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred214_InternalRBAModel()) ) {s = 11;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index120_9);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 120, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String dfa_63s = "\13\uffff";
+ static final String dfa_64s = "\1\107\12\uffff";
+ static final String dfa_65s = "\1\u0081\12\uffff";
+ static final String dfa_66s = "\1\uffff\11\1\1\2";
+ static final String dfa_67s = "\1\0\12\uffff}>";
+ static final String[] dfa_68s = {
+ "\1\5\1\6\31\uffff\1\10\1\11\2\uffff\1\12\2\uffff\1\1\12\uffff\1\4\2\uffff\1\3\10\uffff\1\2\1\7",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ };
+
+ static final short[] dfa_63 = DFA.unpackEncodedString(dfa_63s);
+ static final char[] dfa_64 = DFA.unpackEncodedStringToUnsignedChars(dfa_64s);
+ static final char[] dfa_65 = DFA.unpackEncodedStringToUnsignedChars(dfa_65s);
+ static final short[] dfa_66 = DFA.unpackEncodedString(dfa_66s);
+ static final short[] dfa_67 = DFA.unpackEncodedString(dfa_67s);
+ static final short[][] dfa_68 = unpackEncodedStringArray(dfa_68s);
+
+ class DFA144 extends DFA {
+
+ public DFA144(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 144;
+ this.eot = dfa_63;
+ this.eof = dfa_63;
+ this.min = dfa_64;
+ this.max = dfa_65;
+ this.accept = dfa_66;
+ this.special = dfa_67;
+ this.transition = dfa_68;
+ }
+ public String getDescription() {
+ return "22967:2: ( rule__Area__UnorderedGroup_4__0 )?";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA144_0 = input.LA(1);
+
+
+ int index144_0 = input.index();
+ input.rewind();
+ s = -1;
+ if ( LA144_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 0) ) {s = 1;}
+
+ else if ( LA144_0 == 128 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 1) ) {s = 2;}
+
+ else if ( LA144_0 == 119 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 2) ) {s = 3;}
+
+ else if ( LA144_0 == 116 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 2) ) {s = 4;}
+
+ else if ( LA144_0 == 71 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 3) ) {s = 5;}
+
+ else if ( LA144_0 == 72 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 3) ) {s = 6;}
+
+ else if ( LA144_0 == 129 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 4) ) {s = 7;}
+
+ else if ( LA144_0 == 98 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 5) ) {s = 8;}
+
+ else if ( LA144_0 == 99 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 5) ) {s = 9;}
+
+ else if ( (LA144_0==102) ) {s = 10;}
+
+
+ input.seek(index144_0);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 144, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String dfa_69s = "\1\107\1\uffff\2\6\1\0\1\145\1\uffff\1\6\1\146\1\145\1\4\2\7\1\0\1\146\1\7\1\146\1\7\1\146\1\4\2\7\1\146\1\7\1\146\1\7\1\146\1\4\2\7\1\146\1\7\1\146\1\7\1\146";
+ static final String dfa_70s = "\1\u0081\1\uffff\2\6\1\0\1\u0087\1\uffff\1\6\1\166\1\u0087\1\4\2\u00a6\1\0\1\166\1\7\1\166\1\7\1\166\1\4\2\u00a6\1\166\1\7\1\166\1\7\1\166\1\4\2\u00a6\1\146\1\7\1\146\1\7\1\146";
+ static final String dfa_71s = "\4\uffff\1\0\10\uffff\1\1\25\uffff}>";
+ static final String[] dfa_72s = {
+ "\2\1\31\uffff\2\1\2\uffff\1\1\2\uffff\1\1\12\uffff\1\3\2\uffff\1\2\10\uffff\2\1",
+ "",
+ "\1\4",
+ "\1\5",
+ "\1\uffff",
+ "\1\10\41\uffff\1\7",
+ "",
+ "\1\11",
+ "\1\15\2\uffff\1\12\13\uffff\1\13\1\14",
+ "\1\10\41\uffff\1\7",
+ "\1\16",
+ "\1\20\u009e\uffff\1\17",
+ "\1\22\u009e\uffff\1\21",
+ "\1\uffff",
+ "\1\15\2\uffff\1\23\13\uffff\1\24\1\25",
+ "\1\20",
+ "\1\15\2\uffff\1\23\13\uffff\1\24\1\25",
+ "\1\22",
+ "\1\15\2\uffff\1\23\13\uffff\1\24\1\25",
+ "\1\26",
+ "\1\30\u009e\uffff\1\27",
+ "\1\32\u009e\uffff\1\31",
+ "\1\15\2\uffff\1\33\13\uffff\1\34\1\35",
+ "\1\30",
+ "\1\15\2\uffff\1\33\13\uffff\1\34\1\35",
+ "\1\32",
+ "\1\15\2\uffff\1\33\13\uffff\1\34\1\35",
+ "\1\36",
+ "\1\40\u009e\uffff\1\37",
+ "\1\42\u009e\uffff\1\41",
+ "\1\15",
+ "\1\40",
+ "\1\15",
+ "\1\42",
+ "\1\15"
+ };
+ static final char[] dfa_69 = DFA.unpackEncodedStringToUnsignedChars(dfa_69s);
+ static final char[] dfa_70 = DFA.unpackEncodedStringToUnsignedChars(dfa_70s);
+ static final short[] dfa_71 = DFA.unpackEncodedString(dfa_71s);
+ static final short[][] dfa_72 = unpackEncodedStringArray(dfa_72s);
+
+ class DFA145 extends DFA {
+
+ public DFA145(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 145;
+ this.eot = dfa_41;
+ this.eof = dfa_42;
+ this.min = dfa_69;
+ this.max = dfa_70;
+ this.accept = dfa_45;
+ this.special = dfa_71;
+ this.transition = dfa_72;
+ }
+ public String getDescription() {
+ return "()* loopback of 23028:7: ( ( rule__Area__SizeAssignment_4_2 )=> rule__Area__SizeAssignment_4_2 )*";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA145_4 = input.LA(1);
+
+
+ int index145_4 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred243_InternalRBAModel()) ) {s = 6;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index145_4);
+ if ( s>=0 ) return s;
+ break;
+ case 1 :
+ int LA145_13 = input.LA(1);
+
+
+ int index145_13 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred243_InternalRBAModel()) ) {s = 6;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index145_13);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 145, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String dfa_73s = "\1\107\1\uffff\2\6\1\23\1\144\1\6\1\0\1\6\1\0\1\23\1\uffff\1\144";
+ static final String dfa_74s = "\1\u0081\1\uffff\2\6\2\u0087\1\6\1\0\1\6\1\0\1\u0087\1\uffff\1\u0087";
+ static final String[] dfa_75s = {
+ "\2\1\31\uffff\1\2\1\3\2\uffff\1\1\2\uffff\1\1\12\uffff\1\1\2\uffff\1\1\10\uffff\2\1",
+ "",
+ "\1\4",
+ "\1\5",
+ "\1\7\163\uffff\1\6",
+ "\1\11\42\uffff\1\10",
+ "\1\12",
+ "\1\uffff",
+ "\1\14",
+ "\1\uffff",
+ "\1\7\163\uffff\1\6",
+ "",
+ "\1\11\42\uffff\1\10"
+ };
+ static final char[] dfa_73 = DFA.unpackEncodedStringToUnsignedChars(dfa_73s);
+ static final char[] dfa_74 = DFA.unpackEncodedStringToUnsignedChars(dfa_74s);
+ static final short[][] dfa_75 = unpackEncodedStringArray(dfa_75s);
+
+ class DFA146 extends DFA {
+
+ public DFA146(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 146;
+ this.eot = dfa_48;
+ this.eof = dfa_49;
+ this.min = dfa_73;
+ this.max = dfa_74;
+ this.accept = dfa_52;
+ this.special = dfa_53;
+ this.transition = dfa_75;
+ }
+ public String getDescription() {
+ return "()* loopback of 23080:7: ( ( rule__Area__TagsAssignment_4_5 )=> rule__Area__TagsAssignment_4_5 )*";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA146_7 = input.LA(1);
+
+
+ int index146_7 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred247_InternalRBAModel()) ) {s = 11;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index146_7);
+ if ( s>=0 ) return s;
+ break;
+ case 1 :
+ int LA146_9 = input.LA(1);
+
+
+ int index146_9 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred247_InternalRBAModel()) ) {s = 11;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index146_9);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 146, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String dfa_76s = "\1\12\12\uffff";
+ static final short[] dfa_76 = DFA.unpackEncodedString(dfa_76s);
+
+ class DFA148 extends DFA {
+
+ public DFA148(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 148;
+ this.eot = dfa_63;
+ this.eof = dfa_76;
+ this.min = dfa_64;
+ this.max = dfa_65;
+ this.accept = dfa_66;
+ this.special = dfa_67;
+ this.transition = dfa_68;
+ }
+ public String getDescription() {
+ return "23100:2: ( rule__Area__UnorderedGroup_4__1 )?";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA148_0 = input.LA(1);
+
+
+ int index148_0 = input.index();
+ input.rewind();
+ s = -1;
+ if ( LA148_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 0) ) {s = 1;}
+
+ else if ( LA148_0 == 128 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 1) ) {s = 2;}
+
+ else if ( LA148_0 == 119 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 2) ) {s = 3;}
+
+ else if ( LA148_0 == 116 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 2) ) {s = 4;}
+
+ else if ( LA148_0 == 71 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 3) ) {s = 5;}
+
+ else if ( LA148_0 == 72 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 3) ) {s = 6;}
+
+ else if ( LA148_0 == 129 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 4) ) {s = 7;}
+
+ else if ( LA148_0 == 98 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 5) ) {s = 8;}
+
+ else if ( LA148_0 == 99 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 5) ) {s = 9;}
+
+ else if ( (LA148_0==EOF||LA148_0==102) ) {s = 10;}
+
+
+ input.seek(index148_0);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 148, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+
+ class DFA149 extends DFA {
+
+ public DFA149(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 149;
+ this.eot = dfa_63;
+ this.eof = dfa_76;
+ this.min = dfa_64;
+ this.max = dfa_65;
+ this.accept = dfa_66;
+ this.special = dfa_67;
+ this.transition = dfa_68;
+ }
+ public String getDescription() {
+ return "23112:2: ( rule__Area__UnorderedGroup_4__2 )?";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA149_0 = input.LA(1);
+
+
+ int index149_0 = input.index();
+ input.rewind();
+ s = -1;
+ if ( LA149_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 0) ) {s = 1;}
+
+ else if ( LA149_0 == 128 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 1) ) {s = 2;}
+
+ else if ( LA149_0 == 119 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 2) ) {s = 3;}
+
+ else if ( LA149_0 == 116 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 2) ) {s = 4;}
+
+ else if ( LA149_0 == 71 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 3) ) {s = 5;}
+
+ else if ( LA149_0 == 72 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 3) ) {s = 6;}
+
+ else if ( LA149_0 == 129 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 4) ) {s = 7;}
+
+ else if ( LA149_0 == 98 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 5) ) {s = 8;}
+
+ else if ( LA149_0 == 99 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 5) ) {s = 9;}
+
+ else if ( (LA149_0==EOF||LA149_0==102) ) {s = 10;}
+
+
+ input.seek(index149_0);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 149, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+
+ class DFA150 extends DFA {
+
+ public DFA150(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 150;
+ this.eot = dfa_63;
+ this.eof = dfa_76;
+ this.min = dfa_64;
+ this.max = dfa_65;
+ this.accept = dfa_66;
+ this.special = dfa_67;
+ this.transition = dfa_68;
+ }
+ public String getDescription() {
+ return "23124:2: ( rule__Area__UnorderedGroup_4__3 )?";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA150_0 = input.LA(1);
+
+
+ int index150_0 = input.index();
+ input.rewind();
+ s = -1;
+ if ( LA150_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 0) ) {s = 1;}
+
+ else if ( LA150_0 == 128 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 1) ) {s = 2;}
+
+ else if ( LA150_0 == 119 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 2) ) {s = 3;}
+
+ else if ( LA150_0 == 116 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 2) ) {s = 4;}
+
+ else if ( LA150_0 == 71 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 3) ) {s = 5;}
+
+ else if ( LA150_0 == 72 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 3) ) {s = 6;}
+
+ else if ( LA150_0 == 129 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 4) ) {s = 7;}
+
+ else if ( LA150_0 == 98 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 5) ) {s = 8;}
+
+ else if ( LA150_0 == 99 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 5) ) {s = 9;}
+
+ else if ( (LA150_0==EOF||LA150_0==102) ) {s = 10;}
+
+
+ input.seek(index150_0);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 150, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+
+ class DFA151 extends DFA {
+
+ public DFA151(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 151;
+ this.eot = dfa_63;
+ this.eof = dfa_76;
+ this.min = dfa_64;
+ this.max = dfa_65;
+ this.accept = dfa_66;
+ this.special = dfa_67;
+ this.transition = dfa_68;
+ }
+ public String getDescription() {
+ return "23136:2: ( rule__Area__UnorderedGroup_4__4 )?";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA151_0 = input.LA(1);
+
+
+ int index151_0 = input.index();
+ input.rewind();
+ s = -1;
+ if ( LA151_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 0) ) {s = 1;}
+
+ else if ( LA151_0 == 128 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 1) ) {s = 2;}
+
+ else if ( LA151_0 == 119 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 2) ) {s = 3;}
+
+ else if ( LA151_0 == 116 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 2) ) {s = 4;}
+
+ else if ( LA151_0 == 71 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 3) ) {s = 5;}
+
+ else if ( LA151_0 == 72 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 3) ) {s = 6;}
+
+ else if ( LA151_0 == 129 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 4) ) {s = 7;}
+
+ else if ( LA151_0 == 98 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 5) ) {s = 8;}
+
+ else if ( LA151_0 == 99 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 5) ) {s = 9;}
+
+ else if ( (LA151_0==EOF||LA151_0==102) ) {s = 10;}
+
+
+ input.seek(index151_0);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 151, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+
+ class DFA152 extends DFA {
+
+ public DFA152(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 152;
+ this.eot = dfa_63;
+ this.eof = dfa_76;
+ this.min = dfa_64;
+ this.max = dfa_65;
+ this.accept = dfa_66;
+ this.special = dfa_67;
+ this.transition = dfa_68;
+ }
+ public String getDescription() {
+ return "23148:2: ( rule__Area__UnorderedGroup_4__5 )?";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA152_0 = input.LA(1);
+
+
+ int index152_0 = input.index();
+ input.rewind();
+ s = -1;
+ if ( LA152_0 == 105 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 0) ) {s = 1;}
+
+ else if ( LA152_0 == 128 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 1) ) {s = 2;}
+
+ else if ( LA152_0 == 119 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 2) ) {s = 3;}
+
+ else if ( LA152_0 == 116 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 2) ) {s = 4;}
+
+ else if ( LA152_0 == 71 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 3) ) {s = 5;}
+
+ else if ( LA152_0 == 72 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 3) ) {s = 6;}
+
+ else if ( LA152_0 == 129 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 4) ) {s = 7;}
+
+ else if ( LA152_0 == 98 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 5) ) {s = 8;}
+
+ else if ( LA152_0 == 99 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 5) ) {s = 9;}
+
+ else if ( (LA152_0==EOF||LA152_0==102) ) {s = 10;}
+
+
+ input.seek(index152_0);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 152, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String dfa_77s = "\1\u0082\1\uffff\2\6\2\u0087\1\6\1\0\1\6\1\0\1\u0087\1\uffff\1\u0087";
+ static final String dfa_78s = "\7\uffff\1\1\1\uffff\1\0\3\uffff}>";
+ static final String[] dfa_79s = {
+ "\2\1\31\uffff\1\2\1\3\2\uffff\1\1\2\uffff\1\1\26\uffff\1\1\1\uffff\1\1",
+ "",
+ "\1\4",
+ "\1\5",
+ "\1\7\163\uffff\1\6",
+ "\1\11\42\uffff\1\10",
+ "\1\12",
+ "\1\uffff",
+ "\1\14",
+ "\1\uffff",
+ "\1\7\163\uffff\1\6",
+ "",
+ "\1\11\42\uffff\1\10"
+ };
+ static final char[] dfa_77 = DFA.unpackEncodedStringToUnsignedChars(dfa_77s);
+ static final short[] dfa_78 = DFA.unpackEncodedString(dfa_78s);
+ static final short[][] dfa_79 = unpackEncodedStringArray(dfa_79s);
+
+ class DFA154 extends DFA {
+
+ public DFA154(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 154;
+ this.eot = dfa_48;
+ this.eof = dfa_49;
+ this.min = dfa_73;
+ this.max = dfa_77;
+ this.accept = dfa_52;
+ this.special = dfa_78;
+ this.transition = dfa_79;
+ }
+ public String getDescription() {
+ return "()* loopback of 23263:7: ( ( rule__Zone__TagsAssignment_4_4 )=> rule__Zone__TagsAssignment_4_4 )*";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA154_9 = input.LA(1);
+
+
+ int index154_9 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred258_InternalRBAModel()) ) {s = 11;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index154_9);
+ if ( s>=0 ) return s;
+ break;
+ case 1 :
+ int LA154_7 = input.LA(1);
+
+
+ int index154_7 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred258_InternalRBAModel()) ) {s = 11;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index154_7);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 154, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String dfa_80s = "\66\uffff";
+ static final String dfa_81s = "\1\1\65\uffff";
+ static final String dfa_82s = "\1\146\1\uffff\1\145\1\146\1\4\2\7\1\6\1\0\1\146\1\7\1\146\1\7\2\146\1\uffff\1\4\2\7\2\6\1\146\1\7\1\146\1\7\3\146\1\4\2\7\2\6\1\146\1\7\1\146\1\7\3\146\1\4\2\7\2\6\1\146\1\7\1\146\1\7\3\146\1\6\1\146";
+ static final String dfa_83s = "\1\u00a5\1\uffff\1\145\1\172\1\4\2\u00a6\1\6\1\0\1\172\1\7\1\172\1\7\1\172\1\u0087\1\uffff\1\4\2\u00a6\2\6\1\172\1\7\1\172\1\7\1\172\2\u0087\1\4\2\u00a6\2\6\1\172\1\7\1\172\1\7\1\172\2\u0087\1\4\2\u00a6\2\6\1\146\1\7\1\146\1\7\1\146\2\u0087\1\6\1\u0087";
+ static final String dfa_84s = "\1\uffff\1\2\15\uffff\1\1\46\uffff";
+ static final String dfa_85s = "\10\uffff\1\0\55\uffff}>";
+ static final String[] dfa_86s = {
+ "\1\1\21\uffff\1\2\2\1\45\uffff\1\1\4\uffff\1\1",
+ "",
+ "\1\3",
+ "\1\10\2\uffff\1\4\15\uffff\1\7\1\uffff\1\5\1\6",
+ "\1\11",
+ "\1\13\u009e\uffff\1\12",
+ "\1\15\u009e\uffff\1\14",
+ "\1\16",
+ "\1\uffff",
+ "\1\10\2\uffff\1\20\15\uffff\1\23\1\uffff\1\21\1\22",
+ "\1\13",
+ "\1\10\2\uffff\1\20\15\uffff\1\23\1\uffff\1\21\1\22",
+ "\1\15",
+ "\1\10\2\uffff\1\20\15\uffff\1\23\1\uffff\1\21\1\22",
+ "\1\10\2\uffff\1\20\15\uffff\1\23\1\uffff\1\21\1\22\14\uffff\1\24",
+ "",
+ "\1\25",
+ "\1\27\u009e\uffff\1\26",
+ "\1\31\u009e\uffff\1\30",
+ "\1\32",
+ "\1\33",
+ "\1\10\2\uffff\1\34\15\uffff\1\37\1\uffff\1\35\1\36",
+ "\1\27",
+ "\1\10\2\uffff\1\34\15\uffff\1\37\1\uffff\1\35\1\36",
+ "\1\31",
+ "\1\10\2\uffff\1\34\15\uffff\1\37\1\uffff\1\35\1\36",
+ "\1\10\2\uffff\1\34\15\uffff\1\37\1\uffff\1\35\1\36\14\uffff\1\40",
+ "\1\10\2\uffff\1\20\15\uffff\1\23\1\uffff\1\21\1\22\14\uffff\1\24",
+ "\1\41",
+ "\1\43\u009e\uffff\1\42",
+ "\1\45\u009e\uffff\1\44",
+ "\1\46",
+ "\1\47",
+ "\1\10\2\uffff\1\50\15\uffff\1\53\1\uffff\1\51\1\52",
+ "\1\43",
+ "\1\10\2\uffff\1\50\15\uffff\1\53\1\uffff\1\51\1\52",
+ "\1\45",
+ "\1\10\2\uffff\1\50\15\uffff\1\53\1\uffff\1\51\1\52",
+ "\1\10\2\uffff\1\50\15\uffff\1\53\1\uffff\1\51\1\52\14\uffff\1\54",
+ "\1\10\2\uffff\1\34\15\uffff\1\37\1\uffff\1\35\1\36\14\uffff\1\40",
+ "\1\55",
+ "\1\57\u009e\uffff\1\56",
+ "\1\61\u009e\uffff\1\60",
+ "\1\62",
+ "\1\63",
+ "\1\10",
+ "\1\57",
+ "\1\10",
+ "\1\61",
+ "\1\10",
+ "\1\10\40\uffff\1\64",
+ "\1\10\2\uffff\1\50\15\uffff\1\53\1\uffff\1\51\1\52\14\uffff\1\54",
+ "\1\65",
+ "\1\10\40\uffff\1\64"
+ };
+
+ static final short[] dfa_80 = DFA.unpackEncodedString(dfa_80s);
+ static final short[] dfa_81 = DFA.unpackEncodedString(dfa_81s);
+ static final char[] dfa_82 = DFA.unpackEncodedStringToUnsignedChars(dfa_82s);
+ static final char[] dfa_83 = DFA.unpackEncodedStringToUnsignedChars(dfa_83s);
+ static final short[] dfa_84 = DFA.unpackEncodedString(dfa_84s);
+ static final short[] dfa_85 = DFA.unpackEncodedString(dfa_85s);
+ static final short[][] dfa_86 = unpackEncodedStringArray(dfa_86s);
+
+ class DFA186 extends DFA {
+
+ public DFA186(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 186;
+ this.eot = dfa_80;
+ this.eof = dfa_81;
+ this.min = dfa_82;
+ this.max = dfa_83;
+ this.accept = dfa_84;
+ this.special = dfa_85;
+ this.transition = dfa_86;
+ }
+ public String getDescription() {
+ return "()* loopback of 24103:7: ( ( rule__PositionContainer__OffsetAssignment_3_4 )=> rule__PositionContainer__OffsetAssignment_3_4 )*";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA186_8 = input.LA(1);
+
+
+ int index186_8 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred296_InternalRBAModel()) ) {s = 15;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index186_8);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 186, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+
+
+ public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_2 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x0000000000000000L,0x00000100C0000000L,0x0000000000000010L});
+ public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000010L});
+ public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000000000002L,0x0000000080000000L});
+ public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000000000002L,0x0000010000000000L});
+ public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000000000000L,0x0000000200000000L});
+ public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000000000L,0x0000000100000000L});
+ public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000000000080L,0x0000000000000000L,0x0000004000000000L});
+ public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
+ public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000000000000L,0x0000000400000000L});
+ public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000000080000L});
+ public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
+ public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000000000000L,0x0000001000000000L});
+ public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000000000010L,0x0000004000000000L});
+ public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
+ public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000000000002L,0x0000008000000000L});
+ public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
+ public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000000000000L,0x2810670000000078L,0x0000000038000000L});
+ public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000000000000000L,0x0000004000000000L});
+ public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000000000000000L,0x0000040000000000L});
+ public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000000400000L});
+ public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000078L});
+ public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000000200000L});
+ public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
+ public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000000000000040L,0x0000100000000000L});
+ public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000000000000020L});
+ public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0000000000000000L,0x0000200000000000L});
+ public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000000000000000L,0x6890670000000078L,0x0000000038000000L});
+ public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000000L});
+ public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x00000000400000C0L,0x00008A2000001000L,0x00000040059FF000L});
+ public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000C00L});
+ public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
+ public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0000000000000000L,0x2893670C00000078L,0x0000000038000008L});
+ public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0000000000000000L,0x0000000038000000L});
+ public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x0000000000000000L,0x0004000000000000L});
+ public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x0000000000000040L,0x0008000000000000L});
+ public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000060L});
+ public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x0000000000000000L,0x0060020000000000L});
+ public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L});
+ public static final BitSet FOLLOW_43 = new BitSet(new long[]{0x0000000000000000L,0x0100000000000000L});
+ public static final BitSet FOLLOW_44 = new BitSet(new long[]{0x0000000000000000L,0x0680020000000000L});
+ public static final BitSet FOLLOW_45 = new BitSet(new long[]{0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_46 = new BitSet(new long[]{0x0000000000000000L,0x1000020000000000L});
+ public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x0000000000000000L,0x2800000000000078L,0x0000000038000000L});
+ public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x0000000000000000L,0x8000020000000000L});
+ public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000C80000000L});
+ public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
+ public static final BitSet FOLLOW_51 = new BitSet(new long[]{0x0000000000000000L,0x2893670C000001F8L,0x000000003800000BL});
+ public static final BitSet FOLLOW_52 = new BitSet(new long[]{0x0000000000000000L,0x000000000003E000L});
+ public static final BitSet FOLLOW_53 = new BitSet(new long[]{0x0000000000780080L,0x0000080000000000L,0x0000004000000F40L});
+ public static final BitSet FOLLOW_54 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000018L});
+ public static final BitSet FOLLOW_55 = new BitSet(new long[]{0x0000000000000000L,0x2893670C000001F8L,0x000000003800000DL});
+ public static final BitSet FOLLOW_56 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000008L});
+ public static final BitSet FOLLOW_57 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000300L});
+ public static final BitSet FOLLOW_58 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000010L});
+ public static final BitSet FOLLOW_59 = new BitSet(new long[]{0x0000000000000040L,0x0000002000000000L});
+ public static final BitSet FOLLOW_60 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000020L});
+ public static final BitSet FOLLOW_61 = new BitSet(new long[]{0x0000000000040000L});
+ public static final BitSet FOLLOW_62 = new BitSet(new long[]{0x0000000000040002L});
+ public static final BitSet FOLLOW_63 = new BitSet(new long[]{0x0000000002000000L});
+ public static final BitSet FOLLOW_64 = new BitSet(new long[]{0x0000000002000002L});
+ public static final BitSet FOLLOW_65 = new BitSet(new long[]{0x0000000000000080L,0x0000080000000000L,0x0000004000000F40L});
+ public static final BitSet FOLLOW_66 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_67 = new BitSet(new long[]{0x0000000000000000L,0x0000100000000000L});
+ public static final BitSet FOLLOW_68 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000040L});
+ public static final BitSet FOLLOW_69 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000080L});
+ public static final BitSet FOLLOW_70 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000080L});
+ public static final BitSet FOLLOW_71 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000100L});
+ public static final BitSet FOLLOW_72 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000200L});
+ public static final BitSet FOLLOW_73 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000400L});
+ public static final BitSet FOLLOW_74 = new BitSet(new long[]{0x0000000000000080L,0x0000000000000000L,0x0000004000000F00L});
+ public static final BitSet FOLLOW_75 = new BitSet(new long[]{0x0000000000800000L});
+ public static final BitSet FOLLOW_76 = new BitSet(new long[]{0x0000000000800002L});
+ public static final BitSet FOLLOW_77 = new BitSet(new long[]{0x0000000001000000L});
+ public static final BitSet FOLLOW_78 = new BitSet(new long[]{0x0000000001000002L});
+ public static final BitSet FOLLOW_79 = new BitSet(new long[]{0x000000000C100000L});
+ public static final BitSet FOLLOW_80 = new BitSet(new long[]{0x000000000C100002L});
+ public static final BitSet FOLLOW_81 = new BitSet(new long[]{0x0000000004000000L});
+ public static final BitSet FOLLOW_82 = new BitSet(new long[]{0x0000000008000000L});
+ public static final BitSet FOLLOW_83 = new BitSet(new long[]{0x0000000030600000L});
+ public static final BitSet FOLLOW_84 = new BitSet(new long[]{0x0000000030600002L});
+ public static final BitSet FOLLOW_85 = new BitSet(new long[]{0x0000000010000000L});
+ public static final BitSet FOLLOW_86 = new BitSet(new long[]{0x0000000020000000L});
+ public static final BitSet FOLLOW_87 = new BitSet(new long[]{0x0000000040000000L});
+ public static final BitSet FOLLOW_88 = new BitSet(new long[]{0xFFFFFFFF80000000L,0x0000000000000007L});
+ public static final BitSet FOLLOW_89 = new BitSet(new long[]{0x0000000080000000L});
+ public static final BitSet FOLLOW_90 = new BitSet(new long[]{0x0000000100000000L});
+ public static final BitSet FOLLOW_91 = new BitSet(new long[]{0x0000000200000000L});
+ public static final BitSet FOLLOW_92 = new BitSet(new long[]{0x0000000400000000L});
+ public static final BitSet FOLLOW_93 = new BitSet(new long[]{0x0000000800000000L});
+ public static final BitSet FOLLOW_94 = new BitSet(new long[]{0x0000001000000000L});
+ public static final BitSet FOLLOW_95 = new BitSet(new long[]{0x0000002000000000L});
+ public static final BitSet FOLLOW_96 = new BitSet(new long[]{0x0000800000000000L});
+ public static final BitSet FOLLOW_97 = new BitSet(new long[]{0x0001000000000000L});
+ public static final BitSet FOLLOW_98 = new BitSet(new long[]{0x0002000000000000L});
+ public static final BitSet FOLLOW_99 = new BitSet(new long[]{0x1000000000000000L});
+ public static final BitSet FOLLOW_100 = new BitSet(new long[]{0x2000000000000000L});
+ public static final BitSet FOLLOW_101 = new BitSet(new long[]{0x4000000000000000L});
+ public static final BitSet FOLLOW_102 = new BitSet(new long[]{0x8000000000000000L});
+ public static final BitSet FOLLOW_103 = new BitSet(new long[]{0x0000004000000000L});
+ public static final BitSet FOLLOW_104 = new BitSet(new long[]{0x0000008000000000L});
+ public static final BitSet FOLLOW_105 = new BitSet(new long[]{0x0000010000000000L});
+ public static final BitSet FOLLOW_106 = new BitSet(new long[]{0x0000020000000000L});
+ public static final BitSet FOLLOW_107 = new BitSet(new long[]{0x0000040000000000L});
+ public static final BitSet FOLLOW_108 = new BitSet(new long[]{0x0000080000000000L});
+ public static final BitSet FOLLOW_109 = new BitSet(new long[]{0x0000100000000000L});
+ public static final BitSet FOLLOW_110 = new BitSet(new long[]{0x0000200000000000L});
+ public static final BitSet FOLLOW_111 = new BitSet(new long[]{0x0004000000000000L});
+ public static final BitSet FOLLOW_112 = new BitSet(new long[]{0x0008000000000000L});
+ public static final BitSet FOLLOW_113 = new BitSet(new long[]{0x0010000000000000L});
+ public static final BitSet FOLLOW_114 = new BitSet(new long[]{0x0020000000000000L});
+ public static final BitSet FOLLOW_115 = new BitSet(new long[]{0x0040000000000000L});
+ public static final BitSet FOLLOW_116 = new BitSet(new long[]{0x0080000000000000L});
+ public static final BitSet FOLLOW_117 = new BitSet(new long[]{0x0100000000000000L});
+ public static final BitSet FOLLOW_118 = new BitSet(new long[]{0x0200000000000000L});
+ public static final BitSet FOLLOW_119 = new BitSet(new long[]{0x0400000000000000L});
+ public static final BitSet FOLLOW_120 = new BitSet(new long[]{0xF7FFFFFF80000000L});
+ public static final BitSet FOLLOW_121 = new BitSet(new long[]{0x00000000400000C0L,0x00009A2000001000L,0x00000040059FF000L});
+ public static final BitSet FOLLOW_122 = new BitSet(new long[]{0x0800000000000000L});
+ public static final BitSet FOLLOW_123 = new BitSet(new long[]{0x0000000000000010L,0x0000100000000000L});
+ public static final BitSet FOLLOW_124 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L});
+ public static final BitSet FOLLOW_125 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
+ public static final BitSet FOLLOW_126 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
+ public static final BitSet FOLLOW_127 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000002000L});
+ public static final BitSet FOLLOW_128 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000004000L});
+ public static final BitSet FOLLOW_129 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x000000000000F000L});
+ public static final BitSet FOLLOW_130 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000010000L});
+ public static final BitSet FOLLOW_131 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000020000L});
+ public static final BitSet FOLLOW_132 = new BitSet(new long[]{0x0000000000000040L,0x0000000000001000L});
+ public static final BitSet FOLLOW_133 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000040000L});
+ public static final BitSet FOLLOW_134 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000080000L});
+ public static final BitSet FOLLOW_135 = new BitSet(new long[]{0x00000000400000C0L,0x00008A6000001000L,0x00000040059FF000L});
+ public static final BitSet FOLLOW_136 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000100000L});
+ public static final BitSet FOLLOW_137 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000600000L});
+ public static final BitSet FOLLOW_138 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000800000L});
+ public static final BitSet FOLLOW_139 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000001000000L});
+ public static final BitSet FOLLOW_140 = new BitSet(new long[]{0x00000000400000C0L,0x00008A2000001000L,0x00000040079FF000L});
+ public static final BitSet FOLLOW_141 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000004000000L});
+ public static final BitSet FOLLOW_142 = new BitSet(new long[]{0x0000000000000040L,0x0000000000000000L,0x0000000002000000L});
+ public static final BitSet FOLLOW_143 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000004000000L});
+ public static final BitSet FOLLOW_144 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000008000000L});
+ public static final BitSet FOLLOW_145 = new BitSet(new long[]{0x0000000000000000L,0x1002020000000000L});
+ public static final BitSet FOLLOW_146 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000060L,0x0000000018000000L});
+ public static final BitSet FOLLOW_147 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000020000000L});
+ public static final BitSet FOLLOW_148 = new BitSet(new long[]{0x0000000000000000L,0x0000020100000000L,0x0000000040000000L});
+ public static final BitSet FOLLOW_149 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
+ public static final BitSet FOLLOW_150 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000300000000L});
+ public static final BitSet FOLLOW_151 = new BitSet(new long[]{0x0000000000000000L,0x0000000007FC0000L});
+ public static final BitSet FOLLOW_152 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000480000000L});
+ public static final BitSet FOLLOW_153 = new BitSet(new long[]{0x0000000000000000L,0x0000004000000000L,0x0000001000000000L});
+ public static final BitSet FOLLOW_154 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000001000000000L});
+ public static final BitSet FOLLOW_155 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000001000000000L});
+ public static final BitSet FOLLOW_156 = new BitSet(new long[]{0x0000000000000000L,0x0700000000000000L,0x0000002100000000L});
+ public static final BitSet FOLLOW_157 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000008000000000L});
+ public static final BitSet FOLLOW_158 = new BitSet(new long[]{0x0000000000000002L,0x2810670000000078L,0x0000000038000000L});
+ public static final BitSet FOLLOW_159 = new BitSet(new long[]{0x0000000000000002L,0x6890670000000078L,0x0000000038000000L});
+ public static final BitSet FOLLOW_160 = new BitSet(new long[]{0x00000000400000C2L,0x00008A2000001000L,0x00000040059FF000L});
+ public static final BitSet FOLLOW_161 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000008L});
+ public static final BitSet FOLLOW_162 = new BitSet(new long[]{0x0000000000000002L,0x2890670000000078L,0x0000000038000000L});
+ public static final BitSet FOLLOW_163 = new BitSet(new long[]{0x0000000000000002L,0x2893670C00000078L,0x0000000038000008L});
+ public static final BitSet FOLLOW_164 = new BitSet(new long[]{0x0000000000000002L,0x0060020000000000L});
+ public static final BitSet FOLLOW_165 = new BitSet(new long[]{0x0000000000000002L,0x0680020000000000L});
+ public static final BitSet FOLLOW_166 = new BitSet(new long[]{0x0000000000000002L,0x1000020000000000L});
+ public static final BitSet FOLLOW_167 = new BitSet(new long[]{0x0000000000000002L,0x8000020000000000L});
+ public static final BitSet FOLLOW_168 = new BitSet(new long[]{0x0000000000000002L,0x2893670C000001F8L,0x000000003800000BL});
+ public static final BitSet FOLLOW_169 = new BitSet(new long[]{0x0000000000000002L,0x2893670C000001F8L,0x000000003800000DL});
+ public static final BitSet FOLLOW_170 = new BitSet(new long[]{0x0000000000000002L,0x0000020000000300L});
+ public static final BitSet FOLLOW_171 = new BitSet(new long[]{0x0000000000000002L,0x1002020000000000L});
+ public static final BitSet FOLLOW_172 = new BitSet(new long[]{0x0000000000000002L,0x0000020100000000L,0x0000000040000000L});
+ public static final BitSet FOLLOW_173 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000300000000L});
+ public static final BitSet FOLLOW_174 = new BitSet(new long[]{0x0000000000000002L,0x0700000000000000L,0x0000002100000000L});
+
+}
diff --git a/rba.tool.editor.ide/src/rba/tool/editor/ide/RBAModelIdeModule.xtend b/rba.tool.editor.ide/src/rba/tool/editor/ide/RBAModelIdeModule.xtend
new file mode 100644
index 0000000..eacf7c5
--- /dev/null
+++ b/rba.tool.editor.ide/src/rba/tool/editor/ide/RBAModelIdeModule.xtend
@@ -0,0 +1,11 @@
+/*
+ * generated by Xtext 2.12.0
+ */
+package rba.tool.editor.ide
+
+
+/**
+ * Use this class to register ide components.
+ */
+class RBAModelIdeModule extends AbstractRBAModelIdeModule {
+}
diff --git a/rba.tool.editor.ide/src/rba/tool/editor/ide/RBAModelIdeSetup.xtend b/rba.tool.editor.ide/src/rba/tool/editor/ide/RBAModelIdeSetup.xtend
new file mode 100644
index 0000000..566b33c
--- /dev/null
+++ b/rba.tool.editor.ide/src/rba/tool/editor/ide/RBAModelIdeSetup.xtend
@@ -0,0 +1,20 @@
+/*
+ * generated by Xtext 2.12.0
+ */
+package rba.tool.editor.ide
+
+import com.google.inject.Guice
+import org.eclipse.xtext.util.Modules2
+import rba.tool.editor.RBAModelRuntimeModule
+import rba.tool.editor.RBAModelStandaloneSetup
+
+/**
+ * Initialization support for running Xtext languages as language servers.
+ */
+class RBAModelIdeSetup extends RBAModelStandaloneSetup {
+
+ override createInjector() {
+ Guice.createInjector(Modules2.mixin(new RBAModelRuntimeModule, new RBAModelIdeModule))
+ }
+
+}
diff --git a/rba.tool.editor.ide/xtend-gen/rba/tool/editor/ide/.gitignore b/rba.tool.editor.ide/xtend-gen/rba/tool/editor/ide/.gitignore
new file mode 100644
index 0000000..9b23ecb
--- /dev/null
+++ b/rba.tool.editor.ide/xtend-gen/rba/tool/editor/ide/.gitignore
@@ -0,0 +1,10 @@
+/.RBAModelIdeModule.java._trace
+/.RBAModelIdeModule.xtendbin
+/.RBAModelIdeSetup.java._trace
+/.RBAModelIdeSetup.xtendbin
+/RBAModelIdeModule.java
+/RBAModelIdeSetup.java
+/.RBATemplateModelIdeModule.java._trace
+/.RBATemplateModelIdeSetup.java._trace
+/RBATemplateModelIdeModule.java
+/RBATemplateModelIdeSetup.java
diff --git a/rba.tool.editor.ui/.classpath b/rba.tool.editor.ui/.classpath
new file mode 100644
index 0000000..9081d4f
--- /dev/null
+++ b/rba.tool.editor.ui/.classpath
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="src-gen"/>
+ <classpathentry kind="src" path="xtend-gen"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/rba.tool.editor.ui/.project b/rba.tool.editor.ui/.project
new file mode 100644
index 0000000..da522ba
--- /dev/null
+++ b/rba.tool.editor.ui/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>rba.tool.editor.ui</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <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>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/rba.tool.editor.ui/.settings/org.eclipse.core.resources.prefs b/rba.tool.editor.ui/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/rba.tool.editor.ui/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/rba.tool.editor.ui/.settings/org.eclipse.jdt.core.prefs b/rba.tool.editor.ui/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..0c68a61
--- /dev/null
+++ b/rba.tool.editor.ui/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/rba.tool.editor.ui/META-INF/MANIFEST.MF b/rba.tool.editor.ui/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..f358c33
--- /dev/null
+++ b/rba.tool.editor.ui/META-INF/MANIFEST.MF
@@ -0,0 +1,37 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-Version: 1.0.0.qualifier
+Bundle-SymbolicName: rba.tool.editor.ui; singleton:=true
+Bundle-ActivationPolicy: lazy
+Require-Bundle: rba.tool.editor;visibility:=reexport,
+ rba.tool.editor.ide,
+ org.eclipse.xtext.ui,
+ org.eclipse.xtext.ui.shared,
+ org.eclipse.xtext.ui.codetemplates.ui,
+ org.eclipse.ui.editors;bundle-version="3.5.0",
+ org.eclipse.ui.ide;bundle-version="3.5.0";visibility:=reexport,
+ org.eclipse.ui,
+ org.eclipse.compare,
+ org.eclipse.xtext.builder,
+ org.eclipse.xtend.lib;resolution:=optional,
+ org.eclipse.xtext.xbase.lib;bundle-version="2.13.0",
+ org.eclipse.core.runtime,
+ org.eclipse.core.resources,
+ org.eclipse.emf.emfstore.common
+Import-Package: org.apache.log4j
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: rba.tool.editor.ui.activator,
+ rba.tool.editor.ui.builder.resourceloader;x-friends:="rba.tool.editor.ui.tests",
+ rba.tool.editor.ui.contentassist,
+ rba.tool.editor.ui.coverage,
+ rba.tool.editor.ui.editor.model.manager,
+ rba.tool.editor.ui.internal,
+ rba.tool.editor.ui.quickfix,
+ rba.tool.editor.ui.recordandplay,
+ rba.tool.editor.ui.resource,
+ rba.tool.editor.ui.util,
+ rba.tool.editor.ui.util.concurrent
+Bundle-Activator: rba.tool.editor.ui.activator.ExtensionEditorActivator
diff --git a/rba.tool.editor.ui/build.properties b/rba.tool.editor.ui/build.properties
new file mode 100644
index 0000000..246a1c0
--- /dev/null
+++ b/rba.tool.editor.ui/build.properties
@@ -0,0 +1,10 @@
+source.. = src/,\
+ src-gen/,\
+ xtend-gen/
+bin.includes = .,\
+ META-INF/,\
+ plugin.xml,\
+ icons/,\
+ plugin.properties
+bin.excludes = **/*.xtend
+javacDefaultEncoding.. = UTF-8
diff --git a/rba.tool.editor.ui/icons/newProject.gif b/rba.tool.editor.ui/icons/newProject.gif
new file mode 100644
index 0000000..dcabada
--- /dev/null
+++ b/rba.tool.editor.ui/icons/newProject.gif
Binary files differ
diff --git a/rba.tool.editor.ui/plugin.properties b/rba.tool.editor.ui/plugin.properties
new file mode 100644
index 0000000..33dbc45
--- /dev/null
+++ b/rba.tool.editor.ui/plugin.properties
@@ -0,0 +1,2 @@
+pluginName = RBA Tool Editor UI
+providerName=DENSO CORPORATION
diff --git a/rba.tool.editor.ui/plugin.xml b/rba.tool.editor.ui/plugin.xml
new file mode 100644
index 0000000..734ec32
--- /dev/null
+++ b/rba.tool.editor.ui/plugin.xml
@@ -0,0 +1,500 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+<plugin>
+ <!--
+ <extension
+ point="org.eclipse.ui.editors">
+ <editor
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.XtextEditor"
+ contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor"
+ default="true"
+ extensions="rba"
+ id="rba.tool.editor.RBAModel"
+ name="RBAModel Editor">
+ </editor>
+ </extension>
+ -->
+ <extension
+ point="org.eclipse.ui.editors">
+ <editor
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.XtextEditor"
+ contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor"
+ default="true"
+ extensions="rba"
+ id="rba.tool.editor.RBAModel"
+ name="RBAModel Editor">
+ </editor>
+ </extension>
+
+ <extension
+ point="org.eclipse.ui.handlers">
+ <handler
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclarationHandler"
+ commandId="org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclaration">
+ <activeWhen>
+ <reference
+ definitionId="rba.tool.editor.RBAModel.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ <handler
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.handler.ValidateActionHandler"
+ commandId="rba.tool.editor.RBAModel.validate">
+ <activeWhen>
+ <reference
+ definitionId="rba.tool.editor.RBAModel.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ <!-- copy qualified name -->
+ <handler
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedNameHandler"
+ commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName">
+ <activeWhen>
+ <reference definitionId="rba.tool.editor.RBAModel.Editor.opened" />
+ </activeWhen>
+ </handler>
+ <handler
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedNameHandler"
+ commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName">
+ <activeWhen>
+ <and>
+ <reference definitionId="rba.tool.editor.RBAModel.XtextEditor.opened" />
+ <iterate>
+ <adapt type="org.eclipse.xtext.ui.editor.outline.IOutlineNode" />
+ </iterate>
+ </and>
+ </activeWhen>
+ </handler>
+ </extension>
+ <extension point="org.eclipse.core.expressions.definitions">
+ <definition id="rba.tool.editor.RBAModel.Editor.opened">
+ <and>
+ <reference definitionId="isActiveEditorAnInstanceOfXtextEditor"/>
+ <with variable="activeEditor">
+ <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName"
+ value="rba.tool.editor.RBAModel"
+ forcePluginActivation="true"/>
+ </with>
+ </and>
+ </definition>
+ <definition id="rba.tool.editor.RBAModel.XtextEditor.opened">
+ <and>
+ <reference definitionId="isXtextEditorActive"/>
+ <with variable="activeEditor">
+ <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName"
+ value="rba.tool.editor.RBAModel"
+ forcePluginActivation="true"/>
+ </with>
+ </and>
+ </definition>
+ </extension>
+ <extension
+ point="org.eclipse.ui.preferencePages">
+ <page
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+ id="rba.tool.editor.RBAModel"
+ name="RBATool">
+ <keywordReference id="rba.tool.editor.ui.keyword_RBAModel"/>
+ </page>
+ <page
+ category="rba.tool.editor.RBAModel"
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.syntaxcoloring.SyntaxColoringPreferencePage"
+ id="rba.tool.editor.RBAModel.coloring"
+ name="Syntax Coloring">
+ <keywordReference id="rba.tool.editor.ui.keyword_RBAModel"/>
+ </page>
+ <page
+ category="rba.tool.editor.RBAModel"
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage"
+ id="rba.tool.editor.RBAModel.templates"
+ name="Templates">
+ <keywordReference id="rba.tool.editor.ui.keyword_RBAModel"/>
+ </page>
+
+ <!-- RBA Record Data -->
+ <page
+ category="rba.tool.editor.RBAModel"
+ class="rba.tool.editor.ui.recordandplay.RBASimulationRecordPage"
+ id="rba.tool.editor.ui.record.simulation"
+ name="Record Simulation">
+ <keywordReference
+ id="rba.tool.editor.ui.keyword_RBAModel">
+ </keywordReference>
+ </page>
+<!-- comment out because this feature has memory leak
+ <page
+ category="rba.tool.editor.RBAModel"
+ class="rba.tool.editor.ui.coverage.TCLogFormatPreferencePage"
+ id="rba.tool.editor.ui.coverage.tclogFormat"
+ name="Default tclog Format">
+ <keywordReference
+ id="rba.tool.editor.ui.keyword_RBAModel">
+ </keywordReference>
+ </page>
+-->
+ </extension>
+ <extension
+ point="org.eclipse.ui.propertyPages">
+ <page
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+ id="rba.tool.editor.RBAModel"
+ name="RBATool">
+ <keywordReference id="rba.tool.editor.ui.keyword_RBAModel"/>
+ <enabledWhen>
+ <adapt type="org.eclipse.core.resources.IProject"/>
+ </enabledWhen>
+ <filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/>
+ </page>
+ <page
+ category="rba.tool.editor.RBAModel"
+ class="rba.tool.editor.ui.properties.RBAServerPropertySettingPage"
+ id="rba.tool.editor.ui.RBAServer"
+ name="RBAServer">
+ <keywordReference
+ id="rba.tool.editor.ui.keyword_RBAModel">
+ </keywordReference>
+ </page>
+ </extension>
+ <extension
+ point="org.eclipse.ui.keywords">
+ <keyword
+ id="rba.tool.editor.ui.keyword_RBAModel"
+ label="RBAModel"/>
+ </extension>
+ <extension
+ point="org.eclipse.ui.commands">
+ <command
+ description="Trigger expensive validation"
+ id="rba.tool.editor.RBAModel.validate"
+ name="Validate">
+ </command>
+ <!-- copy qualified name -->
+ <command
+ id="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
+ categoryId="org.eclipse.ui.category.edit"
+ description="Copy the qualified name for the selected element"
+ name="Copy Qualified Name">
+ </command>
+ <command
+ id="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName"
+ categoryId="org.eclipse.ui.category.edit"
+ description="Copy the qualified name for the selected element"
+ name="Copy Qualified Name">
+ </command>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.edit">
+ <command
+ commandId="rba.tool.editor.RBAModel.validate"
+ style="push"
+ tooltip="Trigger expensive validation">
+ <visibleWhen checkEnabled="false">
+ <reference
+ definitionId="rba.tool.editor.RBAModel.Editor.opened">
+ </reference>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ <!-- copy qualified name -->
+ <menuContribution locationURI="popup:#TextEditorContext?after=copy">
+ <command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
+ style="push" tooltip="Copy Qualified Name">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="rba.tool.editor.RBAModel.Editor.opened" />
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ <menuContribution locationURI="menu:edit?after=copy">
+ <command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
+ style="push" tooltip="Copy Qualified Name">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="rba.tool.editor.RBAModel.Editor.opened" />
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ <menuContribution locationURI="popup:org.eclipse.xtext.ui.outline?after=additions">
+ <command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName"
+ style="push" tooltip="Copy Qualified Name">
+ <visibleWhen checkEnabled="false">
+ <and>
+ <reference definitionId="rba.tool.editor.RBAModel.XtextEditor.opened" />
+ <iterate>
+ <adapt type="org.eclipse.xtext.ui.editor.outline.IOutlineNode" />
+ </iterate>
+ </and>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution locationURI="popup:#TextEditorContext?endof=group.find">
+ <command commandId="org.eclipse.xtext.ui.editor.FindReferences">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="rba.tool.editor.RBAModel.Editor.opened">
+ </reference>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension point="org.eclipse.ui.handlers">
+ <handler
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.findrefs.FindReferencesHandler"
+ commandId="org.eclipse.xtext.ui.editor.FindReferences">
+ <activeWhen>
+ <reference
+ definitionId="rba.tool.editor.RBAModel.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+ <!-- adding resource factories -->
+ <extension
+ point="org.eclipse.emf.ecore.extension_parser">
+ <parser
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.resource.IResourceFactory"
+ type="rba">
+ </parser>
+ </extension>
+ <extension point="org.eclipse.xtext.extension_resourceServiceProvider">
+ <resourceServiceProvider
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:rba.tool.editor.ui.resource.RBAModelResourceUIServiceProvider"
+ uriExtension="rba">
+ </resourceServiceProvider>
+ </extension>
+ <!-- marker definitions for rba.tool.editor.RBAModel -->
+ <extension
+ id="rbamodel.check.fast"
+ name="RBAModel Problem"
+ point="org.eclipse.core.resources.markers">
+ <super type="org.eclipse.xtext.ui.check.fast"/>
+ <persistent value="true"/>
+ </extension>
+ <extension
+ id="rbamodel.check.normal"
+ name="RBAModel Problem"
+ point="org.eclipse.core.resources.markers">
+ <super type="org.eclipse.xtext.ui.check.normal"/>
+ <persistent value="true"/>
+ </extension>
+ <extension
+ id="rbamodel.check.expensive"
+ name="RBAModel Problem"
+ point="org.eclipse.core.resources.markers">
+ <super type="org.eclipse.xtext.ui.check.expensive"/>
+ <persistent value="true"/>
+ </extension>
+ <extension point="org.eclipse.xtext.builder.participant">
+ <participant
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.builder.IXtextBuilderParticipant"
+ fileExtensions="rba"/>
+ </extension>
+ <extension point="org.eclipse.ui.preferencePages">
+ <page
+ category="rba.tool.editor.RBAModel"
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+ id="rba.tool.editor.RBAModel.compiler.preferencePage"
+ name="Compiler">
+ <keywordReference id="rba.tool.editor.ui.keyword_RBAModel"/>
+ </page>
+ </extension>
+ <extension point="org.eclipse.ui.propertyPages">
+ <page
+ category="rba.tool.editor.RBAModel"
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+ id="rba.tool.editor.RBAModel.compiler.propertyPage"
+ name="Compiler">
+ <keywordReference id="rba.tool.editor.ui.keyword_RBAModel"/>
+ <enabledWhen>
+ <adapt type="org.eclipse.core.resources.IProject"/>
+ </enabledWhen>
+ <filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/>
+ </page>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution locationURI="popup:#TextEditorContext?after=xtext.ui.openDeclaration">
+ <command
+ commandId="org.eclipse.xtext.ui.OpenGeneratedFileCommand"
+ id="rba.tool.editor.RBAModel.OpenGeneratedCode"
+ style="push">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="rba.tool.editor.RBAModel.Editor.opened" />
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension point="org.eclipse.ui.handlers">
+ <handler
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.generator.trace.OpenGeneratedFileHandler"
+ commandId="org.eclipse.xtext.ui.OpenGeneratedFileCommand">
+ <activeWhen>
+ <reference definitionId="rba.tool.editor.RBAModel.Editor.opened" />
+ </activeWhen>
+ </handler>
+ </extension>
+ <!-- Quick Outline -->
+ <extension
+ point="org.eclipse.ui.handlers">
+ <handler
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.outline.quickoutline.ShowQuickOutlineActionHandler"
+ commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline">
+ <activeWhen>
+ <reference
+ definitionId="rba.tool.editor.RBAModel.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+ <extension
+ point="org.eclipse.ui.commands">
+ <command
+ description="Open the quick outline."
+ id="org.eclipse.xtext.ui.editor.outline.QuickOutline"
+ name="Quick Outline">
+ </command>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.open">
+ <command commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline"
+ style="push"
+ tooltip="Open Quick Outline">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="rba.tool.editor.RBAModel.Editor.opened"/>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <!-- quickfix marker resolution generator for rba.tool.editor.RBAModel -->
+ <extension
+ point="org.eclipse.ui.ide.markerResolution">
+ <markerResolutionGenerator
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+ markerType="rba.tool.editor.ui.rbamodel.check.fast">
+ <attribute
+ name="FIXABLE_KEY"
+ value="true">
+ </attribute>
+ </markerResolutionGenerator>
+ <markerResolutionGenerator
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+ markerType="rba.tool.editor.ui.rbamodel.check.normal">
+ <attribute
+ name="FIXABLE_KEY"
+ value="true">
+ </attribute>
+ </markerResolutionGenerator>
+ <markerResolutionGenerator
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+ markerType="rba.tool.editor.ui.rbamodel.check.expensive">
+ <attribute
+ name="FIXABLE_KEY"
+ value="true">
+ </attribute>
+ </markerResolutionGenerator>
+ </extension>
+ <!-- Rename Refactoring -->
+ <extension point="org.eclipse.ui.handlers">
+ <handler
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.DefaultRenameElementHandler"
+ commandId="org.eclipse.xtext.ui.refactoring.RenameElement">
+ <activeWhen>
+ <reference
+ definitionId="rba.tool.editor.RBAModel.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.edit">
+ <command commandId="org.eclipse.xtext.ui.refactoring.RenameElement"
+ style="push">
+ <visibleWhen checkEnabled="false">
+ <reference
+ definitionId="rba.tool.editor.RBAModel.Editor.opened">
+ </reference>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension point="org.eclipse.ui.preferencePages">
+ <page
+ category="rba.tool.editor.RBAModel"
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferencePage"
+ id="rba.tool.editor.RBAModel.refactoring"
+ name="Refactoring">
+ <keywordReference id="rba.tool.editor.ui.keyword_RBAModel"/>
+ </page>
+ </extension>
+ <extension point="org.eclipse.compare.contentViewers">
+ <viewer id="rba.tool.editor.RBAModel.compare.contentViewers"
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+ extensions="rba">
+ </viewer>
+ </extension>
+ <extension point="org.eclipse.compare.contentMergeViewers">
+ <viewer id="rba.tool.editor.RBAModel.compare.contentMergeViewers"
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+ extensions="rba" label="RBAModel Compare">
+ </viewer>
+ </extension>
+ <extension point="org.eclipse.ui.editors.documentProviders">
+ <provider id="rba.tool.editor.RBAModel.editors.documentProviders"
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.model.XtextDocumentProvider"
+ extensions="rba">
+ </provider>
+ </extension>
+ <extension point="org.eclipse.team.core.fileTypes">
+ <fileTypes
+ extension="rba"
+ type="text">
+ </fileTypes>
+ </extension>
+ <extension
+ point="org.eclipse.ui.newWizards">
+ <category
+ name="RBA Tool"
+ id="RbaProjectCategory">
+ </category>
+
+ <wizard
+ category="RbaProjectCategory"
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:rba.tool.editor.ui.wizard.RBAModelNewProjectWizardEx"
+ id="rba.tool.editor.ui.wizard.RBAModelNewProjectWizard"
+ name="RBAModel Project Sample"
+ icon="icons/newProject.gif"
+ project="true">
+ </wizard>
+ <wizard
+ category="RbaProjectCategory"
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:rba.tool.editor.ui.wizard.RBAEmptyModelNewProjectWizardEx"
+ icon="icons/newProject.gif"
+ id="rba.tool.editor.ui.wizard.RBAEmptyModelNewProjectWizardEx"
+ name="Empty RBAModel Project"
+ project="true">
+ </wizard>
+ </extension>
+ <extension
+ point="org.eclipse.ui.navigator.navigatorContent">
+ <commonWizard
+ menuGroupId="rba.tool.core.isResource"
+ type="new"
+ wizardId="rba.tool.editor.ui.wizard.RBAModelNewProjectWizard">
+ <enablement></enablement>
+ </commonWizard>
+ <commonWizard
+ menuGroupId="rba.tool.core.isResource"
+ type="new"
+ wizardId="rba.tool.editor.ui.wizard.RBAEmptyModelNewProjectWizardEx">
+ <enablement></enablement>
+ </commonWizard>
+ </extension>
+ <extension
+ point="org.eclipse.xtext.ui.shared.overridingGuiceModule">
+ <module
+ class="rba.tool.editor.ui.template.RBATemplateApplyModule">
+ </module>
+ </extension>
+</plugin>
diff --git a/rba.tool.editor.ui/plugin.xml_gen b/rba.tool.editor.ui/plugin.xml_gen
new file mode 100644
index 0000000..fd9509e
--- /dev/null
+++ b/rba.tool.editor.ui/plugin.xml_gen
@@ -0,0 +1,429 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+<plugin>
+ <extension
+ point="org.eclipse.ui.editors">
+ <editor
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.XtextEditor"
+ contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor"
+ default="true"
+ extensions="rba"
+ id="rba.tool.editor.RBAModel"
+ name="RBAModel Editor">
+ </editor>
+ </extension>
+ <extension
+ point="org.eclipse.ui.handlers">
+ <handler
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclarationHandler"
+ commandId="org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclaration">
+ <activeWhen>
+ <reference
+ definitionId="rba.tool.editor.RBAModel.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ <handler
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.handler.ValidateActionHandler"
+ commandId="rba.tool.editor.RBAModel.validate">
+ <activeWhen>
+ <reference
+ definitionId="rba.tool.editor.RBAModel.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ <!-- copy qualified name -->
+ <handler
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedNameHandler"
+ commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName">
+ <activeWhen>
+ <reference definitionId="rba.tool.editor.RBAModel.Editor.opened" />
+ </activeWhen>
+ </handler>
+ <handler
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedNameHandler"
+ commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName">
+ <activeWhen>
+ <and>
+ <reference definitionId="rba.tool.editor.RBAModel.XtextEditor.opened" />
+ <iterate>
+ <adapt type="org.eclipse.xtext.ui.editor.outline.IOutlineNode" />
+ </iterate>
+ </and>
+ </activeWhen>
+ </handler>
+ </extension>
+ <extension point="org.eclipse.core.expressions.definitions">
+ <definition id="rba.tool.editor.RBAModel.Editor.opened">
+ <and>
+ <reference definitionId="isActiveEditorAnInstanceOfXtextEditor"/>
+ <with variable="activeEditor">
+ <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName"
+ value="rba.tool.editor.RBAModel"
+ forcePluginActivation="true"/>
+ </with>
+ </and>
+ </definition>
+ <definition id="rba.tool.editor.RBAModel.XtextEditor.opened">
+ <and>
+ <reference definitionId="isXtextEditorActive"/>
+ <with variable="activeEditor">
+ <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName"
+ value="rba.tool.editor.RBAModel"
+ forcePluginActivation="true"/>
+ </with>
+ </and>
+ </definition>
+ </extension>
+ <extension
+ point="org.eclipse.ui.preferencePages">
+ <page
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+ id="rba.tool.editor.RBAModel"
+ name="RBAModel">
+ <keywordReference id="rba.tool.editor.ui.keyword_RBAModel"/>
+ </page>
+ <page
+ category="rba.tool.editor.RBAModel"
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.syntaxcoloring.SyntaxColoringPreferencePage"
+ id="rba.tool.editor.RBAModel.coloring"
+ name="Syntax Coloring">
+ <keywordReference id="rba.tool.editor.ui.keyword_RBAModel"/>
+ </page>
+ <page
+ category="rba.tool.editor.RBAModel"
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage"
+ id="rba.tool.editor.RBAModel.templates"
+ name="Templates">
+ <keywordReference id="rba.tool.editor.ui.keyword_RBAModel"/>
+ </page>
+ </extension>
+ <extension
+ point="org.eclipse.ui.propertyPages">
+ <page
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+ id="rba.tool.editor.RBAModel"
+ name="RBAModel">
+ <keywordReference id="rba.tool.editor.ui.keyword_RBAModel"/>
+ <enabledWhen>
+ <adapt type="org.eclipse.core.resources.IProject"/>
+ </enabledWhen>
+ <filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/>
+ </page>
+ </extension>
+ <extension
+ point="org.eclipse.ui.keywords">
+ <keyword
+ id="rba.tool.editor.ui.keyword_RBAModel"
+ label="RBAModel"/>
+ </extension>
+ <extension
+ point="org.eclipse.ui.commands">
+ <command
+ description="Trigger expensive validation"
+ id="rba.tool.editor.RBAModel.validate"
+ name="Validate">
+ </command>
+ <!-- copy qualified name -->
+ <command
+ id="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
+ categoryId="org.eclipse.ui.category.edit"
+ description="Copy the qualified name for the selected element"
+ name="Copy Qualified Name">
+ </command>
+ <command
+ id="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName"
+ categoryId="org.eclipse.ui.category.edit"
+ description="Copy the qualified name for the selected element"
+ name="Copy Qualified Name">
+ </command>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.edit">
+ <command
+ commandId="rba.tool.editor.RBAModel.validate"
+ style="push"
+ tooltip="Trigger expensive validation">
+ <visibleWhen checkEnabled="false">
+ <reference
+ definitionId="rba.tool.editor.RBAModel.Editor.opened">
+ </reference>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ <!-- copy qualified name -->
+ <menuContribution locationURI="popup:#TextEditorContext?after=copy">
+ <command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
+ style="push" tooltip="Copy Qualified Name">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="rba.tool.editor.RBAModel.Editor.opened" />
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ <menuContribution locationURI="menu:edit?after=copy">
+ <command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
+ style="push" tooltip="Copy Qualified Name">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="rba.tool.editor.RBAModel.Editor.opened" />
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ <menuContribution locationURI="popup:org.eclipse.xtext.ui.outline?after=additions">
+ <command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName"
+ style="push" tooltip="Copy Qualified Name">
+ <visibleWhen checkEnabled="false">
+ <and>
+ <reference definitionId="rba.tool.editor.RBAModel.XtextEditor.opened" />
+ <iterate>
+ <adapt type="org.eclipse.xtext.ui.editor.outline.IOutlineNode" />
+ </iterate>
+ </and>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution locationURI="popup:#TextEditorContext?endof=group.find">
+ <command commandId="org.eclipse.xtext.ui.editor.FindReferences">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="rba.tool.editor.RBAModel.Editor.opened">
+ </reference>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension point="org.eclipse.ui.handlers">
+ <handler
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.findrefs.FindReferencesHandler"
+ commandId="org.eclipse.xtext.ui.editor.FindReferences">
+ <activeWhen>
+ <reference
+ definitionId="rba.tool.editor.RBAModel.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+ <extension point="org.eclipse.core.contenttype.contentTypes">
+ <content-type
+ base-type="org.eclipse.core.runtime.text"
+ file-extensions="rba"
+ id="rba.tool.editor.RBAModel.contenttype"
+ name="RBAModel File"
+ priority="normal">
+ </content-type>
+ </extension>
+ <!-- adding resource factories -->
+ <extension
+ point="org.eclipse.emf.ecore.extension_parser">
+ <parser
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.resource.IResourceFactory"
+ type="rba">
+ </parser>
+ </extension>
+ <extension point="org.eclipse.xtext.extension_resourceServiceProvider">
+ <resourceServiceProvider
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.resource.IResourceUIServiceProvider"
+ uriExtension="rba">
+ </resourceServiceProvider>
+ </extension>
+ <!-- marker definitions for rba.tool.editor.RBAModel -->
+ <extension
+ id="rbamodel.check.fast"
+ name="RBAModel Problem"
+ point="org.eclipse.core.resources.markers">
+ <super type="org.eclipse.xtext.ui.check.fast"/>
+ <persistent value="true"/>
+ </extension>
+ <extension
+ id="rbamodel.check.normal"
+ name="RBAModel Problem"
+ point="org.eclipse.core.resources.markers">
+ <super type="org.eclipse.xtext.ui.check.normal"/>
+ <persistent value="true"/>
+ </extension>
+ <extension
+ id="rbamodel.check.expensive"
+ name="RBAModel Problem"
+ point="org.eclipse.core.resources.markers">
+ <super type="org.eclipse.xtext.ui.check.expensive"/>
+ <persistent value="true"/>
+ </extension>
+ <extension point="org.eclipse.xtext.builder.participant">
+ <participant
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.builder.IXtextBuilderParticipant"
+ fileExtensions="rba"/>
+ </extension>
+ <extension point="org.eclipse.ui.preferencePages">
+ <page
+ category="rba.tool.editor.RBAModel"
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+ id="rba.tool.editor.RBAModel.compiler.preferencePage"
+ name="Compiler">
+ <keywordReference id="rba.tool.editor.ui.keyword_RBAModel"/>
+ </page>
+ </extension>
+ <extension point="org.eclipse.ui.propertyPages">
+ <page
+ category="rba.tool.editor.RBAModel"
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+ id="rba.tool.editor.RBAModel.compiler.propertyPage"
+ name="Compiler">
+ <keywordReference id="rba.tool.editor.ui.keyword_RBAModel"/>
+ <enabledWhen>
+ <adapt type="org.eclipse.core.resources.IProject"/>
+ </enabledWhen>
+ <filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/>
+ </page>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution locationURI="popup:#TextEditorContext?after=xtext.ui.openDeclaration">
+ <command
+ commandId="org.eclipse.xtext.ui.OpenGeneratedFileCommand"
+ id="rba.tool.editor.RBAModel.OpenGeneratedCode"
+ style="push">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="rba.tool.editor.RBAModel.Editor.opened" />
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension point="org.eclipse.ui.handlers">
+ <handler
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.generator.trace.OpenGeneratedFileHandler"
+ commandId="org.eclipse.xtext.ui.OpenGeneratedFileCommand">
+ <activeWhen>
+ <reference definitionId="rba.tool.editor.RBAModel.Editor.opened" />
+ </activeWhen>
+ </handler>
+ </extension>
+ <!-- Quick Outline -->
+ <extension
+ point="org.eclipse.ui.handlers">
+ <handler
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.outline.quickoutline.ShowQuickOutlineActionHandler"
+ commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline">
+ <activeWhen>
+ <reference
+ definitionId="rba.tool.editor.RBAModel.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+ <extension
+ point="org.eclipse.ui.commands">
+ <command
+ description="Open the quick outline."
+ id="org.eclipse.xtext.ui.editor.outline.QuickOutline"
+ name="Quick Outline">
+ </command>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.open">
+ <command commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline"
+ style="push"
+ tooltip="Open Quick Outline">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="rba.tool.editor.RBAModel.Editor.opened"/>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <!-- quickfix marker resolution generator for rba.tool.editor.RBAModel -->
+ <extension
+ point="org.eclipse.ui.ide.markerResolution">
+ <markerResolutionGenerator
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+ markerType="rba.tool.editor.ui.rbamodel.check.fast">
+ <attribute
+ name="FIXABLE_KEY"
+ value="true">
+ </attribute>
+ </markerResolutionGenerator>
+ <markerResolutionGenerator
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+ markerType="rba.tool.editor.ui.rbamodel.check.normal">
+ <attribute
+ name="FIXABLE_KEY"
+ value="true">
+ </attribute>
+ </markerResolutionGenerator>
+ <markerResolutionGenerator
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+ markerType="rba.tool.editor.ui.rbamodel.check.expensive">
+ <attribute
+ name="FIXABLE_KEY"
+ value="true">
+ </attribute>
+ </markerResolutionGenerator>
+ </extension>
+ <!-- Rename Refactoring -->
+ <extension point="org.eclipse.ui.handlers">
+ <handler
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.DefaultRenameElementHandler"
+ commandId="org.eclipse.xtext.ui.refactoring.RenameElement">
+ <activeWhen>
+ <reference
+ definitionId="rba.tool.editor.RBAModel.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.edit">
+ <command commandId="org.eclipse.xtext.ui.refactoring.RenameElement"
+ style="push">
+ <visibleWhen checkEnabled="false">
+ <reference
+ definitionId="rba.tool.editor.RBAModel.Editor.opened">
+ </reference>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension point="org.eclipse.ui.preferencePages">
+ <page
+ category="rba.tool.editor.RBAModel"
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferencePage"
+ id="rba.tool.editor.RBAModel.refactoring"
+ name="Refactoring">
+ <keywordReference id="rba.tool.editor.ui.keyword_RBAModel"/>
+ </page>
+ </extension>
+ <extension point="org.eclipse.compare.contentViewers">
+ <viewer id="rba.tool.editor.RBAModel.compare.contentViewers"
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+ extensions="rba">
+ </viewer>
+ </extension>
+ <extension point="org.eclipse.compare.contentMergeViewers">
+ <viewer id="rba.tool.editor.RBAModel.compare.contentMergeViewers"
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+ extensions="rba" label="RBAModel Compare">
+ </viewer>
+ </extension>
+ <extension point="org.eclipse.ui.editors.documentProviders">
+ <provider id="rba.tool.editor.RBAModel.editors.documentProviders"
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.model.XtextDocumentProvider"
+ extensions="rba">
+ </provider>
+ </extension>
+ <extension point="org.eclipse.team.core.fileTypes">
+ <fileTypes
+ extension="rba"
+ type="text">
+ </fileTypes>
+ </extension>
+ <extension
+ point="org.eclipse.ui.newWizards">
+ <wizard
+ category="org.eclipse.xtext.projectwiz"
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:rba.tool.editor.ui.wizard.RBAModelNewProjectWizard"
+ id="rba.tool.editor.ui.wizard.RBAModelNewProjectWizard"
+ name="RBAModel Project"
+ project="true">
+ </wizard>
+ </extension>
+</plugin>
diff --git a/rba.tool.editor.ui/src-gen/rba/tool/editor/ui/AbstractRBAModelUiModule.java b/rba.tool.editor.ui/src-gen/rba/tool/editor/ui/AbstractRBAModelUiModule.java
new file mode 100644
index 0000000..4ded68e
--- /dev/null
+++ b/rba.tool.editor.ui/src-gen/rba/tool/editor/ui/AbstractRBAModelUiModule.java
@@ -0,0 +1,300 @@
+/*
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.ui;
+
+import com.google.inject.Binder;
+import com.google.inject.Provider;
+import com.google.inject.name.Names;
+import org.eclipse.compare.IViewerCreator;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.eclipse.xtext.builder.BuilderParticipant;
+import org.eclipse.xtext.builder.EclipseOutputConfigurationProvider;
+import org.eclipse.xtext.builder.IXtextBuilderParticipant;
+import org.eclipse.xtext.builder.builderState.IBuilderState;
+import org.eclipse.xtext.builder.clustering.CurrentDescriptions;
+import org.eclipse.xtext.builder.impl.PersistentDataAwareDirtyResource;
+import org.eclipse.xtext.builder.nature.NatureAddingEditorCallback;
+import org.eclipse.xtext.builder.preferences.BuilderPreferenceAccess;
+import org.eclipse.xtext.generator.IContextualOutputConfigurationProvider;
+import org.eclipse.xtext.ide.LexerIdeBindings;
+import org.eclipse.xtext.ide.editor.contentassist.antlr.IContentAssistParser;
+import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.Lexer;
+import org.eclipse.xtext.ide.editor.partialEditing.IPartialEditingContentAssistParser;
+import org.eclipse.xtext.parser.antlr.AntlrTokenDefProvider;
+import org.eclipse.xtext.parser.antlr.ITokenDefProvider;
+import org.eclipse.xtext.parser.antlr.LexerProvider;
+import org.eclipse.xtext.resource.IResourceDescriptions;
+import org.eclipse.xtext.resource.containers.IAllContainersState;
+import org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider;
+import org.eclipse.xtext.service.SingletonBinding;
+import org.eclipse.xtext.ui.DefaultUiModule;
+import org.eclipse.xtext.ui.UIBindings;
+import org.eclipse.xtext.ui.codetemplates.ui.AccessibleCodetemplatesActivator;
+import org.eclipse.xtext.ui.codetemplates.ui.partialEditing.IPartialEditingContentAssistContextFactory;
+import org.eclipse.xtext.ui.codetemplates.ui.partialEditing.PartialEditingContentAssistContextFactory;
+import org.eclipse.xtext.ui.codetemplates.ui.preferences.AdvancedTemplatesPreferencePage;
+import org.eclipse.xtext.ui.codetemplates.ui.preferences.TemplatesLanguageConfiguration;
+import org.eclipse.xtext.ui.codetemplates.ui.registry.LanguageRegistrar;
+import org.eclipse.xtext.ui.codetemplates.ui.registry.LanguageRegistry;
+import org.eclipse.xtext.ui.compare.DefaultViewerCreator;
+import org.eclipse.xtext.ui.editor.DocumentBasedDirtyResource;
+import org.eclipse.xtext.ui.editor.IXtextEditorCallback;
+import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext;
+import org.eclipse.xtext.ui.editor.contentassist.FQNPrefixMatcher;
+import org.eclipse.xtext.ui.editor.contentassist.IContentProposalProvider;
+import org.eclipse.xtext.ui.editor.contentassist.IProposalConflictHelper;
+import org.eclipse.xtext.ui.editor.contentassist.PrefixMatcher;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.AntlrProposalConflictHelper;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.DelegatingContentAssistContextFactory;
+import org.eclipse.xtext.ui.editor.formatting.IContentFormatterFactory;
+import org.eclipse.xtext.ui.editor.formatting2.ContentFormatterFactory;
+import org.eclipse.xtext.ui.editor.outline.IOutlineTreeProvider;
+import org.eclipse.xtext.ui.editor.outline.impl.IOutlineTreeStructureProvider;
+import org.eclipse.xtext.ui.editor.preferences.IPreferenceStoreInitializer;
+import org.eclipse.xtext.ui.editor.quickfix.IssueResolutionProvider;
+import org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage;
+import org.eclipse.xtext.ui.refactoring.IDependentElementsCalculator;
+import org.eclipse.xtext.ui.refactoring.IReferenceUpdater;
+import org.eclipse.xtext.ui.refactoring.IRenameRefactoringProvider;
+import org.eclipse.xtext.ui.refactoring.IRenameStrategy;
+import org.eclipse.xtext.ui.refactoring.impl.DefaultDependentElementsCalculator;
+import org.eclipse.xtext.ui.refactoring.impl.DefaultReferenceUpdater;
+import org.eclipse.xtext.ui.refactoring.impl.DefaultRenameRefactoringProvider;
+import org.eclipse.xtext.ui.refactoring.impl.DefaultRenameStrategy;
+import org.eclipse.xtext.ui.refactoring.ui.DefaultRenameSupport;
+import org.eclipse.xtext.ui.refactoring.ui.IRenameSupport;
+import org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferences;
+import org.eclipse.xtext.ui.resource.ResourceServiceDescriptionLabelProvider;
+import org.eclipse.xtext.ui.shared.Access;
+import org.eclipse.xtext.ui.wizard.IProjectCreator;
+import rba.tool.editor.ide.contentassist.antlr.PartialRBAModelContentAssistParser;
+import rba.tool.editor.ide.contentassist.antlr.RBAModelParser;
+import rba.tool.editor.ide.contentassist.antlr.internal.InternalRBAModelLexer;
+import rba.tool.editor.ui.contentassist.RBAModelProposalProvider;
+import rba.tool.editor.ui.labeling.RBAModelDescriptionLabelProvider;
+import rba.tool.editor.ui.labeling.RBAModelLabelProvider;
+import rba.tool.editor.ui.outline.RBAModelOutlineTreeProvider;
+import rba.tool.editor.ui.quickfix.RBAModelQuickfixProvider;
+import rba.tool.editor.ui.wizard.RBAModelProjectCreator;
+
+/**
+ * Manual modifications go to {@link RBAModelUiModule}.
+ */
+@SuppressWarnings("all")
+public abstract class AbstractRBAModelUiModule extends DefaultUiModule {
+
+ public AbstractRBAModelUiModule(AbstractUIPlugin plugin) {
+ super(plugin);
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ImplicitFragment
+ public Provider<? extends IAllContainersState> provideIAllContainersState() {
+ return Access.getJavaProjectsState();
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+ public Class<? extends IProposalConflictHelper> bindIProposalConflictHelper() {
+ return AntlrProposalConflictHelper.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+ public void configureContentAssistLexer(Binder binder) {
+ binder.bind(Lexer.class)
+ .annotatedWith(Names.named(LexerIdeBindings.CONTENT_ASSIST))
+ .to(InternalRBAModelLexer.class);
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+ public void configureHighlightingLexer(Binder binder) {
+ binder.bind(org.eclipse.xtext.parser.antlr.Lexer.class)
+ .annotatedWith(Names.named(LexerIdeBindings.HIGHLIGHTING))
+ .to(rba.tool.editor.parser.antlr.internal.InternalRBAModelLexer.class);
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+ public void configureHighlightingTokenDefProvider(Binder binder) {
+ binder.bind(ITokenDefProvider.class)
+ .annotatedWith(Names.named(LexerIdeBindings.HIGHLIGHTING))
+ .to(AntlrTokenDefProvider.class);
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+ public Class<? extends ContentAssistContext.Factory> bindContentAssistContext$Factory() {
+ return DelegatingContentAssistContextFactory.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+ public Class<? extends IContentAssistParser> bindIContentAssistParser() {
+ return RBAModelParser.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+ public void configureContentAssistLexerProvider(Binder binder) {
+ binder.bind(InternalRBAModelLexer.class).toProvider(LexerProvider.create(InternalRBAModelLexer.class));
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.exporting.QualifiedNamesFragment2
+ public Class<? extends PrefixMatcher> bindPrefixMatcher() {
+ return FQNPrefixMatcher.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.generator.GeneratorFragment2
+ public Class<? extends IXtextBuilderParticipant> bindIXtextBuilderParticipant() {
+ return BuilderParticipant.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.generator.GeneratorFragment2
+ public IWorkspaceRoot bindIWorkspaceRootToInstance() {
+ return ResourcesPlugin.getWorkspace().getRoot();
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.generator.GeneratorFragment2
+ public void configureBuilderPreferenceStoreInitializer(Binder binder) {
+ binder.bind(IPreferenceStoreInitializer.class)
+ .annotatedWith(Names.named("builderPreferenceInitializer"))
+ .to(BuilderPreferenceAccess.Initializer.class);
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.formatting.Formatter2Fragment2
+ public Class<? extends IContentFormatterFactory> bindIContentFormatterFactory() {
+ return ContentFormatterFactory.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.labeling.LabelProviderFragment2
+ public Class<? extends ILabelProvider> bindILabelProvider() {
+ return RBAModelLabelProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.labeling.LabelProviderFragment2
+ public void configureResourceUIServiceLabelProvider(Binder binder) {
+ binder.bind(ILabelProvider.class).annotatedWith(ResourceServiceDescriptionLabelProvider.class).to(RBAModelDescriptionLabelProvider.class);
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.outline.OutlineTreeProviderFragment2
+ public Class<? extends IOutlineTreeProvider> bindIOutlineTreeProvider() {
+ return RBAModelOutlineTreeProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.outline.OutlineTreeProviderFragment2
+ public Class<? extends IOutlineTreeStructureProvider> bindIOutlineTreeStructureProvider() {
+ return RBAModelOutlineTreeProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.quickfix.QuickfixProviderFragment2
+ public Class<? extends IssueResolutionProvider> bindIssueResolutionProvider() {
+ return RBAModelQuickfixProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.contentAssist.ContentAssistFragment2
+ public Class<? extends IContentProposalProvider> bindIContentProposalProvider() {
+ return RBAModelProposalProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2
+ public void configureIPreferenceStoreInitializer(Binder binder) {
+ binder.bind(IPreferenceStoreInitializer.class)
+ .annotatedWith(Names.named("RefactoringPreferences"))
+ .to(RefactoringPreferences.Initializer.class);
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2
+ public Class<? extends IRenameStrategy> bindIRenameStrategy() {
+ return DefaultRenameStrategy.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2
+ public Class<? extends IReferenceUpdater> bindIReferenceUpdater() {
+ return DefaultReferenceUpdater.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2
+ public Class<? extends IRenameRefactoringProvider> bindIRenameRefactoringProvider() {
+ return DefaultRenameRefactoringProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2
+ public Class<? extends IRenameSupport.Factory> bindIRenameSupport$Factory() {
+ return DefaultRenameSupport.Factory.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.templates.CodetemplatesGeneratorFragment2
+ public Provider<? extends TemplatesLanguageConfiguration> provideTemplatesLanguageConfiguration() {
+ return AccessibleCodetemplatesActivator.getTemplatesLanguageConfigurationProvider();
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.templates.CodetemplatesGeneratorFragment2
+ public Provider<? extends LanguageRegistry> provideLanguageRegistry() {
+ return AccessibleCodetemplatesActivator.getLanguageRegistry();
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.templates.CodetemplatesGeneratorFragment2
+ @SingletonBinding(eager=true)
+ public Class<? extends LanguageRegistrar> bindLanguageRegistrar() {
+ return LanguageRegistrar.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.templates.CodetemplatesGeneratorFragment2
+ public Class<? extends XtextTemplatePreferencePage> bindXtextTemplatePreferencePage() {
+ return AdvancedTemplatesPreferencePage.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.templates.CodetemplatesGeneratorFragment2
+ public Class<? extends IPartialEditingContentAssistParser> bindIPartialEditingContentAssistParser() {
+ return PartialRBAModelContentAssistParser.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.templates.CodetemplatesGeneratorFragment2
+ public Class<? extends IPartialEditingContentAssistContextFactory> bindIPartialEditingContentAssistContextFactory() {
+ return PartialEditingContentAssistContextFactory.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.compare.CompareFragment2
+ public Class<? extends IViewerCreator> bindIViewerCreator() {
+ return DefaultViewerCreator.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.compare.CompareFragment2
+ public void configureCompareViewerTitle(Binder binder) {
+ binder.bind(String.class).annotatedWith(Names.named(UIBindings.COMPARE_VIEWER_TITLE)).toInstance("RBAModel Compare");
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.projectWizard.SimpleProjectWizardFragment2
+ public Class<? extends IProjectCreator> bindIProjectCreator() {
+ return RBAModelProjectCreator.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.exporting.SimpleNamesFragment2
+ public Class<? extends IDependentElementsCalculator> bindIDependentElementsCalculator() {
+ return DefaultDependentElementsCalculator.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2
+ public void configureIResourceDescriptionsBuilderScope(Binder binder) {
+ binder.bind(IResourceDescriptions.class).annotatedWith(Names.named(ResourceDescriptionsProvider.NAMED_BUILDER_SCOPE)).to(CurrentDescriptions.ResourceSetAware.class);
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2
+ public Class<? extends IXtextEditorCallback> bindIXtextEditorCallback() {
+ return NatureAddingEditorCallback.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2
+ public Class<? extends IContextualOutputConfigurationProvider> bindIContextualOutputConfigurationProvider() {
+ return EclipseOutputConfigurationProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2
+ public void configureIResourceDescriptionsPersisted(Binder binder) {
+ binder.bind(IResourceDescriptions.class).annotatedWith(Names.named(ResourceDescriptionsProvider.PERSISTED_DESCRIPTIONS)).to(IBuilderState.class);
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2
+ public Class<? extends DocumentBasedDirtyResource> bindDocumentBasedDirtyResource() {
+ return PersistentDataAwareDirtyResource.class;
+ }
+
+}
diff --git a/rba.tool.editor.ui/src-gen/rba/tool/editor/ui/RBAModelExecutableExtensionFactory.java b/rba.tool.editor.ui/src-gen/rba/tool/editor/ui/RBAModelExecutableExtensionFactory.java
new file mode 100644
index 0000000..694e882
--- /dev/null
+++ b/rba.tool.editor.ui/src-gen/rba/tool/editor/ui/RBAModelExecutableExtensionFactory.java
@@ -0,0 +1,29 @@
+/*
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.ui;
+
+import com.google.inject.Injector;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.xtext.ui.guice.AbstractGuiceAwareExecutableExtensionFactory;
+import org.osgi.framework.Bundle;
+import rba.tool.editor.ui.internal.EditorActivator;
+
+/**
+ * This class was generated. Customizations should only happen in a newly
+ * introduced subclass.
+ */
+public class RBAModelExecutableExtensionFactory extends AbstractGuiceAwareExecutableExtensionFactory {
+
+ @Override
+ protected Bundle getBundle() {
+ return Platform.getBundle(EditorActivator.PLUGIN_ID);
+ }
+
+ @Override
+ protected Injector getInjector() {
+ EditorActivator activator = EditorActivator.getInstance();
+ return activator != null ? activator.getInjector(EditorActivator.RBA_TOOL_EDITOR_RBAMODEL) : null;
+ }
+
+}
diff --git a/rba.tool.editor.ui/src-gen/rba/tool/editor/ui/contentassist/AbstractRBAModelProposalProvider.java b/rba.tool.editor.ui/src-gen/rba/tool/editor/ui/contentassist/AbstractRBAModelProposalProvider.java
new file mode 100644
index 0000000..f25e37b
--- /dev/null
+++ b/rba.tool.editor.ui/src-gen/rba/tool/editor/ui/contentassist/AbstractRBAModelProposalProvider.java
@@ -0,0 +1,943 @@
+/*
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.ui.contentassist;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.Assignment;
+import org.eclipse.xtext.CrossReference;
+import org.eclipse.xtext.RuleCall;
+import org.eclipse.xtext.ui.editor.contentassist.AbstractJavaBasedContentProposalProvider;
+import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext;
+import org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor;
+
+/**
+ * Represents a generated, default implementation of superclass {@link AbstractJavaBasedContentProposalProvider}.
+ * Methods are dynamically dispatched on the first parameter, i.e., you can override them
+ * with a more concrete subtype.
+ */
+public abstract class AbstractRBAModelProposalProvider extends AbstractJavaBasedContentProposalProvider {
+
+ public void completeTopLevel_Project(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeTopLevel_Imports(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeTopLevel_Packages(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeImport_ImportedNamespace(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeAbstractProperty_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeAbstractProperty_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeTag_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeTag_Values(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completePackage_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completePackage_Description(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completePackage_Packagableelement(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeStereotype_TargetModelName(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeStereotype_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeStereotype_Variables(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeStereotype_BodyText(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeDisplay_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeDisplay_Description(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeDisplay_Size(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeDisplay_Root(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeConstraint_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeConstraint_Description(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeConstraint_Runtime(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeConstraint_Expression(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeViewContent_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeViewContent_Description(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeViewContent_LoserType(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeViewContent_Allocatable(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeViewContent_States(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeViewContent_Size(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeViewContent_Tags(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSoundContent_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSoundContent_Description(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSoundContent_LoserType(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSoundContent_Allocatable(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSoundContent_States(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSoundContent_Tags(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSize_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSize_Description(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSize_Width(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSize_Height(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSizeReference_Size(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeOffset_Description(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeOffset_X(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeOffset_Y(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeOffset_Size(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeAreaSet_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeAreaSet_Description(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeAreaSet_Target(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeZoneSet_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeZoneSet_Description(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeZoneSet_Target(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeCompositeArea_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeCompositeArea_Description(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeCompositeArea_Layout(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeArea_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeArea_Description(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeArea_ArbitrationPolicy(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeArea_Size(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeArea_Visibility(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeArea_Zorder(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeArea_Tags(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeZone_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeZone_Description(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeZone_ArbitrationPolicy(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeZone_Visibility(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeZone_Attenuate(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeZone_Tags(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeViewContentState_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeViewContentState_Description(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeViewContentState_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSoundContentState_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSoundContentState_Description(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSoundContentState_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeProject_DummyName(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeProject_Version(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeVPlusOperator_Operand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeVComparisonAnd_Operand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeVRelationalExpression_Operand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeThatOfOperator_Operand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeVMemberFeatureReference_RefObject(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeIntegerValue_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeCImpliesOperator_Operand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeCOrOperator_Operand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeCAndOperator_Operand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeCEqualityExpression_Operand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeCRelationalExpression_Operand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeCUnaryOperation_Operand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeCOperationFeatureCall_Operand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeCOperationFeatureCall_TagName(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeCOperationFeatureCall_Lambda(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completePreviousModifier_ObjReference(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeHideLowerPriority_Operand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeMuteLowerPriority_Operand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSetOfOperator_Operand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeIfStatement_Condition(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeIfStatement_ThenExpression(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeIfStatement_ElseExpression(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeForAllOperator_Operand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeForAllOperator_Lambda(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeExistsOperator_Operand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeExistsOperator_Lambda(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeLambdaExpression_X(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeLambdaExpression_LetStatements(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeLambdaExpression_BodyText(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeVariable_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeCObjectReference_RefObject(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeCMemberFeatureReference_RefObject(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeLetStatement_Variable(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeLetStatement_Body(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeComplexExpression_LetStatements(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeComplexExpression_OtherExpression(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeLoserTypeExpression_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeArbitrationPolicyExpression_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeViewContentSet_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeViewContentSet_Description(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeViewContentSet_Target(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeViewContentSet_Allocatable(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSoundContentSet_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSoundContentSet_Description(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSoundContentSet_Target(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSoundContentSet_Allocatable(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeScene_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeScene_Description(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeScene_Global(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeScene_Properties(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeVerticalLayout_BasePoint(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeVerticalLayout_Subarea(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeHorizontalLayout_BasePoint(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeHorizontalLayout_Subarea(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeFixedPositionLayout_SubAreaPosition(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completePositionContainer_X(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completePositionContainer_Y(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completePositionContainer_BasePoint(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completePositionContainer_Area(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+ public void completePositionContainer_Offset(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+
+ public void complete_TopLevel(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Import(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_PackagableElement(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_AbstractConstraint(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_SizeIdentifier(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_RuleObject(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_AbstractAllocatable(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Allocatable(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_AllocatableSet(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_AbstractContent(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Content(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ContentSet(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_AbstractScene(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_AbstractProperty(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_LayoutManager(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_AlignedLayout(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Tag(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Package(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Stereotype(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_StereotypableElementName(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Display(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Constraint(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ViewContent(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_SoundContent(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Size(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_SizeReference(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Offset(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_AreaSet(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ZoneSet(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_CompositeArea(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Area(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Zone(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ViewContentState(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_SoundContentState(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Project(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_VExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_VPlusOperator(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpPlus(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_VComparisonAnd(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_VRelationalExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpMuchGreaterThan(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpEqualTo(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpGreaterThan(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpLowerThan(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_VPrimaryExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_VValueExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ThatOfOperator(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_VMemberFeatureReference(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_IntegerValue(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_StandardValue(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_NoneValue(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_MinValue(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_MaxValue(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_CExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_CImpliesOperator(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpImplies(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_COrOperator(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpOr(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_CAndOperator(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpAnd(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_CEqualityExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpObjectCompare(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpObjectNotCompare(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpEquality(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_CRelationalExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpIsGreaterThanEqual(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpIsLowerThanEqual(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpIsGreaterThan(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpIsLowerThan(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_CUnaryOperation(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpNot(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_COperationFeatureCall(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpGetProperty(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpIsOn(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpGetContentsList(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpContentValue(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpIsActive(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpGetAllocatables(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpAllocatedContent(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpIsDisplayed(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpIsHidden(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpDisplayingContent(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpIsVisible(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpIsOutputted(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpIsMuted(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpOutputtingSound(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpIsSounding(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpIsAttenuated(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpHasComeEarlierThan(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpHasComeLaterThan(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpStateValue(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpIsAllocatedTo(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpIsChanged(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpIsTranslatedTo(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpIsDisplayedOn(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpIsChangedDisplay(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpIsTranslatedViewTo(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpIsOutputtedOn(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpIsChangedOutput(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpIsTranslatedSoundTo(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpIsTypeOf(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpActiveContents(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpSizeOperator(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpHasBeenDisplayed(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpActiveState(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpGetState(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpMaxOperator(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpMinOperator(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpSelectOperator(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpStartOprator(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpStopOprator(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpActivateOprator(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_CPrimaryExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_AllInstanceOfExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_NullExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_PreviousModifier(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_HideLowerPriority(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_MuteLowerPriority(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_SetOfOperator(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_IfStatement(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ForAllOperator(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ExistsOperator(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_LambdaExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Variable(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_CObjectReference(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_CMemberFeatureReference(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_LetStatement(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ComplexExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_EnumExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_LoserTypeExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ArbitrationPolicyExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ViewContentSet(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_SoundContentSet(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Scene(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_VerticalLayout(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_HorizontalLayout(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_FixedPositionLayout(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_PositionContainer(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_EBoolean(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_EInt(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_EString(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_RichString(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_QualifiedNameWithWildcard(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_QualifiedName(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_IdOrThis(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ValidID(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ArbitrationPolicy(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_BasePoint(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_LoserType(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ID(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_IDENTIFIER_START_IMPL(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_IDENTIFIER_PART_IMPL(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_IDENTIFIER_DIGITS(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_HEX_DIGIT(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_UNICODE_ESCAPE(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_IDENTIFIER_PART(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_IDENTIFIER_START(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_WS(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_INT(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_STRING(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_RICH_STRING(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ML_COMMENT(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_SL_COMMENT(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ConfigurationParserRule_OperatorWithMultipleOperand(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ConfigurationParserRule_AreaOperatorForConstraint(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ContentOperatorsCommon(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ConfigurationParserRule_ContentOperatorForConstraint(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ConfigurationParserRule_ZoneOperatorForConstraint(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_SoundOperatorsCommon(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ConfigurationParserRule_SoundOperatorForConstraint(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ConfigurationParserRule_SceneOperatorForConstraint(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ConfigurationParserRule_PropertyOperatorForConstraint(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+}
diff --git a/rba.tool.editor.ui/src-gen/rba/tool/editor/ui/internal/EditorActivator.java b/rba.tool.editor.ui/src-gen/rba/tool/editor/ui/internal/EditorActivator.java
new file mode 100644
index 0000000..40bd9ba
--- /dev/null
+++ b/rba.tool.editor.ui/src-gen/rba/tool/editor/ui/internal/EditorActivator.java
@@ -0,0 +1,95 @@
+/*
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.ui.internal;
+
+import com.google.common.collect.Maps;
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+import com.google.inject.Module;
+import java.util.Collections;
+import java.util.Map;
+import org.apache.log4j.Logger;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.eclipse.xtext.ui.shared.SharedStateModule;
+import org.eclipse.xtext.util.Modules2;
+import org.osgi.framework.BundleContext;
+import rba.tool.editor.RBAModelRuntimeModule;
+import rba.tool.editor.ui.RBAModelUiModule;
+
+/**
+ * This class was generated. Customizations should only happen in a newly
+ * introduced subclass.
+ */
+public class EditorActivator extends AbstractUIPlugin {
+
+ public static final String PLUGIN_ID = "rba.tool.editor.ui";
+ public static final String RBA_TOOL_EDITOR_RBAMODEL = "rba.tool.editor.RBAModel";
+
+ private static final Logger logger = Logger.getLogger(EditorActivator.class);
+
+ private static EditorActivator INSTANCE;
+
+ private Map<String, Injector> injectors = Collections.synchronizedMap(Maps.<String, Injector> newHashMapWithExpectedSize(1));
+
+ @Override
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ INSTANCE = this;
+ }
+
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ injectors.clear();
+ INSTANCE = null;
+ super.stop(context);
+ }
+
+ public static EditorActivator getInstance() {
+ return INSTANCE;
+ }
+
+ public Injector getInjector(String language) {
+ synchronized (injectors) {
+ Injector injector = injectors.get(language);
+ if (injector == null) {
+ injectors.put(language, injector = createInjector(language));
+ }
+ return injector;
+ }
+ }
+
+ protected Injector createInjector(String language) {
+ try {
+ Module runtimeModule = getRuntimeModule(language);
+ Module sharedStateModule = getSharedStateModule();
+ Module uiModule = getUiModule(language);
+ Module mergedModule = Modules2.mixin(runtimeModule, sharedStateModule, uiModule);
+ return Guice.createInjector(mergedModule);
+ } catch (Exception e) {
+ logger.error("Failed to create injector for " + language);
+ logger.error(e.getMessage(), e);
+ throw new RuntimeException("Failed to create injector for " + language, e);
+ }
+ }
+
+ protected Module getRuntimeModule(String grammar) {
+ if (RBA_TOOL_EDITOR_RBAMODEL.equals(grammar)) {
+ return new RBAModelRuntimeModule();
+ }
+ throw new IllegalArgumentException(grammar);
+ }
+
+ protected Module getUiModule(String grammar) {
+ if (RBA_TOOL_EDITOR_RBAMODEL.equals(grammar)) {
+ return new RBAModelUiModule(this);
+ }
+ throw new IllegalArgumentException(grammar);
+ }
+
+ protected Module getSharedStateModule() {
+ return new SharedStateModule();
+ }
+
+
+}
diff --git a/rba.tool.editor.ui/src-gen/rba/tool/editor/ui/wizard/RBAModelNewProjectWizard.java b/rba.tool.editor.ui/src-gen/rba/tool/editor/ui/wizard/RBAModelNewProjectWizard.java
new file mode 100644
index 0000000..565be93
--- /dev/null
+++ b/rba.tool.editor.ui/src-gen/rba/tool/editor/ui/wizard/RBAModelNewProjectWizard.java
@@ -0,0 +1,55 @@
+/*
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.ui.wizard;
+
+import org.eclipse.xtext.ui.wizard.XtextNewProjectWizard;
+
+import org.eclipse.xtext.ui.wizard.IExtendedProjectInfo;
+import org.eclipse.xtext.ui.wizard.IProjectCreator;
+import com.google.inject.Inject;
+
+public class RBAModelNewProjectWizard extends XtextNewProjectWizard {
+
+ private RBAModelWizardNewProjectCreationPage mainPage;
+
+ @Inject
+ public RBAModelNewProjectWizard(IProjectCreator projectCreator) {
+ super(projectCreator);
+ setWindowTitle("New RBAModel Project");
+ }
+
+ protected RBAModelWizardNewProjectCreationPage getMainPage() {
+ return mainPage;
+ }
+
+ /**
+ * Use this method to add pages to the wizard.
+ * The one-time generated version of this class will add a default new project page to the wizard.
+ */
+ @Override
+ public void addPages() {
+ mainPage = createMainPage("basicNewProjectPage");
+ mainPage.setTitle("RBAModel Project");
+ mainPage.setDescription("Create a new RBAModel project.");
+ addPage(mainPage);
+ }
+
+ protected RBAModelWizardNewProjectCreationPage createMainPage(String pageName) {
+ return new RBAModelWizardNewProjectCreationPage(pageName);
+ }
+
+ /**
+ * Use this method to read the project settings from the wizard pages and feed them into the project info class.
+ */
+ @Override
+ protected IExtendedProjectInfo getProjectInfo() {
+ RBAModelProjectInfo projectInfo = new RBAModelProjectInfo();
+ projectInfo.setProjectName(mainPage.getProjectName());
+ if (!mainPage.useDefaults()) {
+ projectInfo.setLocationPath(mainPage.getLocationPath());
+ }
+ return projectInfo;
+ }
+
+}
diff --git a/rba.tool.editor.ui/src-gen/rba/tool/editor/ui/wizard/RBAModelProjectCreator.java b/rba.tool.editor.ui/src-gen/rba/tool/editor/ui/wizard/RBAModelProjectCreator.java
new file mode 100644
index 0000000..78b2ec9
--- /dev/null
+++ b/rba.tool.editor.ui/src-gen/rba/tool/editor/ui/wizard/RBAModelProjectCreator.java
@@ -0,0 +1,93 @@
+/*
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.ui.wizard;
+
+import org.eclipse.xtext.ui.wizard.AbstractProjectCreator;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.xtext.builder.EclipseResourceFileSystemAccess2;
+import org.eclipse.xtext.generator.IFileSystemAccess;
+import org.eclipse.xtext.generator.IFileSystemAccess2;
+import org.eclipse.xtext.generator.IOutputConfigurationProvider;
+import org.eclipse.xtext.generator.OutputConfiguration;
+import org.eclipse.xtext.ui.util.ProjectFactory;
+import com.google.common.collect.ImmutableList;
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+
+public class RBAModelProjectCreator extends AbstractProjectCreator {
+ protected static final String DSL_PROJECT_NAME = "rba.tool.editor";
+
+ @Inject
+ private RBAModelNewProjectWizardInitialContents initialContents;
+
+ @Inject
+ private Provider<EclipseResourceFileSystemAccess2> fileSystemAccessProvider;
+
+ @Inject
+ private IOutputConfigurationProvider outputConfigurationProvider;
+
+ @Inject
+ private Provider<ProjectFactory> projectFactoryProvider;
+
+ @Override
+ protected ProjectFactory createProjectFactory() {
+ return projectFactoryProvider.get();
+ }
+
+ @Override
+ protected RBAModelProjectInfo getProjectInfo() {
+ return (RBAModelProjectInfo) super.getProjectInfo();
+ }
+
+ @Override
+ protected String getModelFolderName() {
+ return "src";
+ }
+
+ @Override
+ protected List<String> getAllFolders() {
+ Set<OutputConfiguration> outputConfigurations = outputConfigurationProvider.getOutputConfigurations();
+ String outputFolder = "src-gen";
+ for (OutputConfiguration outputConfiguration : outputConfigurations) {
+ if (IFileSystemAccess.DEFAULT_OUTPUT.equals(outputConfiguration.getName())) {
+ outputFolder = outputConfiguration.getOutputDirectory();
+ break;
+ }
+ }
+ return ImmutableList.of(getModelFolderName(), outputFolder);
+ }
+
+ @Override
+ protected void enhanceProject(final IProject project, final IProgressMonitor monitor) throws CoreException {
+ IFileSystemAccess2 access = getFileSystemAccess(project, monitor);
+ initialContents.generateInitialContents(access);
+ project.refreshLocal(IResource.DEPTH_INFINITE, monitor);
+ }
+
+ protected IFileSystemAccess2 getFileSystemAccess(final IProject project, final IProgressMonitor monitor) {
+ EclipseResourceFileSystemAccess2 access = fileSystemAccessProvider.get();
+ access.setContext(project);
+ access.setMonitor(monitor);
+ OutputConfiguration defaultOutput = new OutputConfiguration(IFileSystemAccess.DEFAULT_OUTPUT);
+ defaultOutput.setDescription("Output Folder");
+ defaultOutput.setOutputDirectory("./");
+ defaultOutput.setOverrideExistingResources(true);
+ defaultOutput.setCreateOutputDirectory(true);
+ defaultOutput.setCleanUpDerivedResources(false);
+ defaultOutput.setSetDerivedProperty(false);
+ defaultOutput.setKeepLocalHistory(false);
+ HashMap<String, OutputConfiguration> outputConfigurations = new HashMap<String, OutputConfiguration>();
+ outputConfigurations.put(IFileSystemAccess.DEFAULT_OUTPUT, defaultOutput);
+ access.setOutputConfigurations(outputConfigurations);
+ return access;
+ }
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/RBAModelUiModule.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/RBAModelUiModule.xtend
new file mode 100644
index 0000000..5458f5d
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/RBAModelUiModule.xtend
@@ -0,0 +1,101 @@
+/*
+ * generated by Xtext 2.12.0
+ */
+package rba.tool.editor.ui
+
+import org.eclipse.xtend.lib.annotations.FinalFieldsConstructor
+import org.eclipse.xtext.ui.editor.IURIEditorOpener
+import org.eclipse.xtext.ui.editor.contentassist.FQNPrefixMatcher.LastSegmentFinder
+import org.eclipse.xtext.ui.editor.syntaxcoloring.AbstractAntlrTokenToAttributeIdMapper
+import org.eclipse.xtext.ui.editor.syntaxcoloring.IHighlightingConfiguration
+import org.eclipse.xtext.ui.editor.validation.MarkerCreator
+import org.eclipse.xtext.ui.validation.DefaultResourceUIValidatorExtension
+import rba.tool.editor.resource.IRBAModelResourceLoader
+import rba.tool.editor.ui.builder.RBAModelBuilderParticipant
+import rba.tool.editor.ui.builder.resourceloader.RBAModelResourceLoader
+import rba.tool.editor.ui.contentassist.RBAModelExpressionScopeCreator
+import rba.tool.editor.ui.contentassist.RBAModelLastSegmentFinder
+import rba.tool.editor.ui.editor.model.edit.refactoring.RBAModelRenameRefactoringController
+import rba.tool.editor.ui.editor.model.edit.refactoring.RBAModelSyncUtil
+import rba.tool.editor.ui.editor.templates.RBAModelTemplateRegistry
+import rba.tool.editor.ui.editor.templates.RBAModelTemplateStore
+import rba.tool.editor.ui.editor.templates.TemplateRegistry
+import rba.tool.editor.ui.marker.RBAModelMarkerCreator
+import rba.tool.editor.ui.marker.RBAModelResourceUIValidatorExtension
+import rba.tool.editor.ui.opener.RBAModelURIEditorOpener
+import rba.tool.editor.ui.resource.RBADocumentResourceSetProvider
+import rba.tool.editor.ui.resource.RBAModelResourceSetProvider
+import rba.tool.editor.ui.syntaxcoloring.RBAModelAntlrTokenToAttributeIdMapper
+import rba.tool.editor.ui.syntaxcoloring.RBAModelHighlightingConfiguration
+import rba.tool.editor.ui.wizard.ExtendRBAModelProjectCreator
+
+/**
+ * Use this class to register components to be used within the Eclipse IDE.
+ */
+@FinalFieldsConstructor
+class RBAModelUiModule extends AbstractRBAModelUiModule {
+
+ def public Class<? extends IHighlightingConfiguration> bindILexicalHighlightingConfiguration() {
+ return RBAModelHighlightingConfiguration;
+ }
+
+ def Class<? extends AbstractAntlrTokenToAttributeIdMapper> bindAbstractAntlrTokenToAttributeIdMapper() {
+ return RBAModelAntlrTokenToAttributeIdMapper;
+ }
+
+ def public Class<? extends RBAModelRenameRefactoringController> bindRenameRefactoringController() {
+ return RBAModelRenameRefactoringController;
+ }
+
+ override bindIProjectCreator() {
+ return ExtendRBAModelProjectCreator;
+ }
+
+ override bindIXtextBuilderParticipant() {
+ return RBAModelBuilderParticipant;
+ }
+
+ override bindIResourceSetProvider() {
+ return RBADocumentResourceSetProvider;
+ }
+
+ def public Class<? extends RBAModelResourceSetProvider> bindRBAModelResourceSetProvider() {
+ return RBAModelResourceSetProvider;
+ }
+
+ def public Class<? extends RBAModelSyncUtil> bindRBAModelSyncUtil() {
+ return RBAModelSyncUtil;
+ }
+
+ def public Class<? extends LastSegmentFinder> bindILastSegmentFinder() {
+ return RBAModelLastSegmentFinder;
+ }
+
+ def public Class<? extends RBAModelExpressionScopeCreator> bindRBAModelExpressionScopeCreator() {
+ return RBAModelExpressionScopeCreator;
+ }
+
+ def public Class<? extends TemplateRegistry> bindTemplateRegistry() {
+ return RBAModelTemplateRegistry;
+ }
+
+ override bindTemplateStore() {
+ return RBAModelTemplateStore;
+ }
+
+ def public Class<? extends IRBAModelResourceLoader> bindIRBAModelResourceLoader() {
+ return RBAModelResourceLoader;
+ }
+
+ def public Class<? extends DefaultResourceUIValidatorExtension> bindDefaultResourceUIValidatorExtension() {
+ return RBAModelResourceUIValidatorExtension;
+ }
+
+ def public Class<? extends MarkerCreator> bindMarkerCreator() {
+ return RBAModelMarkerCreator
+ }
+
+ def public Class<? extends IURIEditorOpener> bindIURIEditorOpener() {
+ return RBAModelURIEditorOpener
+ }
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/activator/ExtensionEditorActivator.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/activator/ExtensionEditorActivator.xtend
new file mode 100644
index 0000000..aa974ca
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/activator/ExtensionEditorActivator.xtend
@@ -0,0 +1,41 @@
+package rba.tool.editor.ui.activator
+
+import com.google.inject.Guice
+import com.google.inject.Module
+import org.apache.log4j.Logger
+import org.eclipse.xtext.util.Modules2
+import rba.tool.editor.ui.internal.EditorActivator
+import rba.tool.editor.util.ExtensionModuleManager
+
+class ExtensionEditorActivator extends EditorActivator {
+
+ private static final Logger logger = Logger.getLogger(ExtensionEditorActivator);
+
+ override createInjector(String language) {
+ try {
+ val runtimeModule = getRuntimeModule(language);
+ val sharedStateModule = getSharedStateModule();
+ val uiModule = getUiModule(language);
+ val extensionModule = getExtensionModule();
+ val mergedModule = Modules2.mixin(runtimeModule, sharedStateModule, uiModule, extensionModule);
+ return Guice.createInjector(mergedModule);
+ } catch(Exception e) {
+ logger.error("Failed to create injector for " + language);
+ logger.error(e.getMessage(), e);
+ throw new RuntimeException("Failed to create injector for " + language, e);
+ }
+ }
+
+ def public static ExtensionEditorActivator getInstance() {
+ return EditorActivator.getInstance() as ExtensionEditorActivator;
+ }
+
+ def public injectMembers(Object object) {
+ getInjector(EditorActivator.RBA_TOOL_EDITOR_RBAMODEL).injectMembers(object);
+ }
+
+ def protected Module getExtensionModule() {
+ val modules = ExtensionModuleManager.INSTANCE.getExtensionModules();
+ return Modules2.mixin(modules);
+ }
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/builder/RBAModelBuilderParticipant.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/builder/RBAModelBuilderParticipant.xtend
new file mode 100644
index 0000000..e146f43
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/builder/RBAModelBuilderParticipant.xtend
@@ -0,0 +1,253 @@
+package rba.tool.editor.ui.builder
+
+import com.google.common.base.Function
+import com.google.inject.Inject
+import com.google.inject.Provider
+import java.util.ArrayList
+import java.util.List
+import java.util.Map
+import java.util.Set
+import java.util.concurrent.atomic.AtomicInteger
+import org.eclipse.core.resources.IMarker
+import org.eclipse.core.runtime.CoreException
+import org.eclipse.core.runtime.IProgressMonitor
+import org.eclipse.core.runtime.NullProgressMonitor
+import org.eclipse.core.runtime.OperationCanceledException
+import org.eclipse.core.runtime.SubMonitor
+import org.eclipse.emf.common.util.URI
+import org.eclipse.emf.ecore.resource.ResourceSet
+import org.eclipse.xtext.builder.BuilderParticipant
+import org.eclipse.xtext.builder.EclipseResourceFileSystemAccess2
+import org.eclipse.xtext.builder.IXtextBuilderParticipant.IBuildContext
+import org.eclipse.xtext.builder.MonitorBasedCancelIndicator
+import org.eclipse.xtext.builder.builderState.IMarkerUpdater
+import org.eclipse.xtext.generator.GeneratorContext
+import org.eclipse.xtext.generator.IFileSystemAccess
+import org.eclipse.xtext.generator.OutputConfiguration
+import org.eclipse.xtext.resource.IResourceDescription.Delta
+import org.eclipse.xtext.resource.impl.DefaultResourceDescriptionDelta
+import org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider
+import org.eclipse.xtext.util.internal.Stopwatches
+import org.eclipse.xtext.xbase.lib.util.ReflectExtensions
+import rba.core.Tag
+import rba.tool.editor.generator.RBAModelGeneratorDelegate
+import rba.tool.editor.ui.editor.model.manager.ResourceManagerUI
+import rba.tool.editor.ui.resource.RBAModelResourceSetProvider
+
+import static com.google.common.collect.Maps.uniqueIndex
+
+class RBAModelBuilderParticipant extends BuilderParticipant {
+
+ @Inject extension ReflectExtensions
+
+ @Inject private ResourceDescriptionsProvider resourceDescriptionsProvider;
+
+ @Inject private Provider<EclipseResourceFileSystemAccess2> fileSystemAccessProvider;
+
+ @Inject private RBAModelGeneratorDelegate generatorDelegate;
+
+ @Inject private RBAModelResourceSetProvider resourceSetProvider;
+
+ @Inject private IMarkerUpdater markerUpdater;
+
+ override build(IBuildContext context, IProgressMonitor monitor) throws CoreException {
+ if(!isEnabled(context)) {
+ return;
+ }
+ val deltas = getRelevantDeltas(context);
+ if(deltas.isEmpty()) {
+ return;
+ }
+
+ val task = Stopwatches.forTask("org.eclipse.xtext.builder.BuilderParticipant.build(IBuildContext, IProgressMonitor)");
+ try {
+ task.start();
+
+ val builtProject = context.getBuiltProject();
+ if(!ResourceManagerUI.INSTANCE.isCurrentProject(builtProject)) {
+ return;
+ }
+
+ // monitor handling
+ if(monitor.isCanceled()) {
+ throw new OperationCanceledException();
+ }
+ val subMonitor = SubMonitor.convert(monitor, if(context.getBuildType() == BuildType.RECOVERY) 5 else 3);
+ val access = fileSystemAccessProvider.get();
+ access.setProject(builtProject);
+ val outputConfigurations = getOutputConfigurations(context);
+ refreshOutputFolders(context, outputConfigurations, subMonitor.newChild(1));
+ if(subMonitor.isCanceled()) {
+ throw new OperationCanceledException();
+ }
+ access.setOutputConfigurations(outputConfigurations);
+ if(context.getBuildType() == BuildType.CLEAN || context.getBuildType() == BuildType.RECOVERY) {
+ val cleanMonitor = SubMonitor.convert(subMonitor.newChild(2), outputConfigurations.size());
+ for (config : outputConfigurations.values()) {
+ cleanOutput(context, config, access, cleanMonitor.newChild(1));
+ }
+ if(context.getBuildType() == BuildType.CLEAN)
+ return;
+ }
+ val generatorMarkers = getGeneratorMarkers(builtProject, outputConfigurations.values());
+ if(subMonitor.isCanceled()) {
+ throw new OperationCanceledException();
+ }
+
+ doBuild(deltas, outputConfigurations, generatorMarkers, context, access, subMonitor.newChild(2));
+ } finally {
+ task.stop();
+ }
+ }
+
+ override protected getOutputConfigurations(IBuildContext context) {
+ val Set<OutputConfiguration> configurations = outputConfigurationProvider.getOutputConfigurations(context.getBuiltProject());
+ configurations.addAll(generatorDelegate.RBAModelGeneratorOutputConfigurations);
+ return uniqueIndex(configurations, new Function<OutputConfiguration, String>() {
+ override apply(OutputConfiguration from) {
+ return from.getName();
+ }
+ });
+ }
+
+ override protected doBuild(List<Delta> deltas, Map<String, OutputConfiguration> outputConfigurations, Map<OutputConfiguration, Iterable<IMarker>> generatorMarkers, IBuildContext context,
+ EclipseResourceFileSystemAccess2 access, IProgressMonitor progressMonitor) throws CoreException {
+ if(generatorDelegate !== null) {
+ generatorDelegate.setRBAModelInBuilding(false);
+ super.doBuild(deltas, outputConfigurations, generatorMarkers, context, access, progressMonitor)
+ }
+ }
+
+ override protected doGenerate(Delta delta, IBuildContext context, IFileSystemAccess access) {
+ if(delta.getNew() !== null) {
+ try {
+ handleChangedContents(delta, context, access);
+ } catch(OperationCanceledException e) {
+ throw e;
+ } catch(Exception e) {
+ addMarkerAndLogError(delta.getUri(), e);
+ }
+ return true;
+ } else {
+ try {
+ handleDeletedContents(delta, context, access);
+ } catch(OperationCanceledException e) {
+ throw e;
+ } catch(Exception e) {
+ // do nothing
+ }
+ return true;
+ }
+ }
+
+ def protected void handleDeletedContents(Delta delta, IBuildContext context, IFileSystemAccess access) throws CoreException {
+ handleDeletedContents(delta, context, access as EclipseResourceFileSystemAccess2);
+ }
+
+ override protected handleChangedContents(Delta delta, IBuildContext context, EclipseResourceFileSystemAccess2 fileSystemAccess) throws CoreException {
+ if(generatorDelegate.isRBAModelInBuilding())
+ return;
+ val URI uri = delta.getUri();
+ if(!getResourceServiceProvider().canHandle(uri))
+ return;
+ var resourceSet = context.getResourceSet();
+ val resource = resourceSet.getResource(uri, true);
+ registerCurrentSourceFolder(context, delta, fileSystemAccess);
+ saveResourceStorage(resource, fileSystemAccess);
+ demandGetResources(uri, resourceSet);
+ if(shouldGenerate(resourceSet, context)) {
+ try {
+ val monitor = fileSystemAccess.invoke("getMonitor") ?: new NullProgressMonitor();
+ val cancelIndicator = new MonitorBasedCancelIndicator(monitor as IProgressMonitor);
+ val generatorContext = new GeneratorContext();
+ generatorContext.setCancelIndicator(cancelIndicator);
+ generatorDelegate.generate(resourceSet, fileSystemAccess, generatorContext);
+ } catch(OperationCanceledException e) {
+ // don't look into the cause for OCE
+ throw e;
+ } catch(RuntimeException e) {
+ if(e.getCause() instanceof CoreException) {
+ throw e.getCause() as CoreException;
+ }
+ throw e;
+ }
+ }
+ }
+
+ def protected boolean shouldGenerate(ResourceSet resourceSet, IBuildContext context) {
+ for (resource : resourceSet.resources) {
+ if(!super.shouldGenerate(resource, context)) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ def protected void handleDeletedContents(Delta delta, IBuildContext context, EclipseResourceFileSystemAccess2 fileSystemAccess) throws CoreException {
+ if(generatorDelegate.isRBAModelInBuilding())
+ return;
+ val URI uri = delta.getUri();
+ if(!getResourceServiceProvider().canHandle(uri))
+ return;
+ val resourceSet = context.getResourceSet();
+ demandGetResources(uri, resourceSet);
+ if(shouldGenerate(resourceSet, context)) {
+ try {
+ val monitor = fileSystemAccess.invoke("getMonitor") ?: new NullProgressMonitor();
+ val cancelIndicator = new MonitorBasedCancelIndicator(monitor as IProgressMonitor);
+ val generatorContext = new GeneratorContext();
+ generatorContext.setCancelIndicator(cancelIndicator);
+ generatorDelegate.generate(resourceSet, fileSystemAccess, generatorContext);
+ } catch(OperationCanceledException e) {
+ // don't look into the cause for OCE
+ throw e;
+ } catch(RuntimeException e) {
+ if(e.getCause() instanceof CoreException) {
+ throw e.getCause() as CoreException;
+ }
+ throw e;
+ }
+ }
+ }
+
+ @Deprecated
+ override getGenerator() {
+ return generatorDelegate;
+ }
+
+ override getGenerator2() {
+ return generatorDelegate;
+ }
+
+ def private demandGetResources(URI uri, ResourceSet resourceSet) {
+ val projectName = if(uri.segmentCount > 2) URI.decode(uri.segment(1)) else "";
+ val resourceDescriptions = resourceDescriptionsProvider.createResourceDescriptions();
+ val URIs = resourceDescriptions.allResourceDescriptions.map(d|d.URI).filter(u|projectName.equals(if(u.segmentCount > 2) URI.decode(u.segment(1)) else null));
+ ResourceManagerUI.INSTANCE.loadAndResolveResource(resourceSet, URIs, ResourceManagerUI.INSTANCE.currentProject);
+ resourceSet.reloadAllStereotypes;
+ for (description : resourceDescriptions.allResourceDescriptions) {
+ if(projectName.equals(if(description.URI.segmentCount > 2) URI.decode(description.URI.segment(1)) else null)) {
+ markerUpdater.updateMarkers(new DefaultResourceDescriptionDelta(null, description), resourceSet, new NullProgressMonitor());
+ }
+ }
+ }
+
+ def private reloadAllStereotypes(ResourceSet resourceSet) {
+ val appliedCounter = new AtomicInteger(0);
+ val List<URI> URIs = new ArrayList<URI>();
+ resourceSet.resources.forEach [ resource |
+ val tags = resource.allContents.toIterable.filter(Tag);
+ if(tags.empty) {
+ URIs.add(URI.createURI(resource.URI.toString));
+ } else {
+ appliedCounter.incrementAndGet;
+ URIs.add(URI.createURI(resource.URI.toString.replace("/model/", "/.applied/")));
+ }
+ ]
+ if(appliedCounter.get == 0)
+ return;
+
+ resourceSet.clearResourceSet;
+ ResourceManagerUI.INSTANCE.loadAndResolveResource(resourceSet, URIs, ResourceManagerUI.INSTANCE.currentProject);
+ }
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/builder/resourceloader/RBAModelResourceLoader.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/builder/resourceloader/RBAModelResourceLoader.xtend
new file mode 100644
index 0000000..74010b7
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/builder/resourceloader/RBAModelResourceLoader.xtend
@@ -0,0 +1,183 @@
+package rba.tool.editor.ui.builder.resourceloader
+
+import com.google.common.collect.Iterators
+import com.google.inject.Inject
+import java.util.AbstractQueue
+import java.util.HashSet
+import java.util.LinkedList
+import java.util.Queue
+import java.util.Set
+import org.eclipse.core.resources.IProject
+import org.eclipse.core.runtime.NullProgressMonitor
+import org.eclipse.core.runtime.SubMonitor
+import org.eclipse.emf.common.util.URI
+import org.eclipse.emf.common.util.WrappedException
+import org.eclipse.emf.ecore.resource.Resource
+import org.eclipse.emf.ecore.resource.ResourceSet
+import org.eclipse.emf.ecore.util.EcoreUtil
+import org.eclipse.xtext.EcoreUtil2
+import org.eclipse.xtext.builder.builderState.IBuilderState
+import org.eclipse.xtext.builder.impl.QueuedBuildData
+import org.eclipse.xtext.builder.impl.ToBeBuiltComputer
+import org.eclipse.xtext.builder.resourceloader.IResourceLoader
+import org.eclipse.xtext.builder.resourceloader.IResourceLoader.LoadOperation
+import org.eclipse.xtext.builder.resourceloader.IResourceLoader.LoadResult
+import org.eclipse.xtext.builder.resourceloader.IResourceLoader.Sorter
+import org.eclipse.xtext.builder.resourceloader.SerialResourceLoader
+import org.eclipse.xtext.ui.resource.IResourceSetProvider
+import org.eclipse.xtext.util.CancelIndicator
+import rba.tool.editor.resource.IRBAModelResourceLoader
+import org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider
+import org.eclipse.xtext.builder.impl.BuildData
+
+class RBAModelResourceLoader implements IRBAModelResourceLoader {
+
+ @Inject
+ private ToBeBuiltComputer toBeBuiltComputer;
+
+ @Inject
+ private QueuedBuildData queuedBuildData;
+
+ @Inject
+ private IBuilderState builderState;
+
+ @Inject
+ private IResourceSetProvider resourceSetProvider;
+
+ @Inject
+ private Sorter resourceSorter;
+
+ private IResourceLoader globalIndexResourceLoader;
+
+ private IResourceLoader crossLinkingResourceLoader;
+
+ public new() {
+ }
+
+ override synchronized loadAndResolveResource(ResourceSet resourceSet, URI[] URIs, IProject project) {
+ globalIndexResourceLoader = new SerialResourceLoader(resourceSetProvider, resourceSorter);
+ crossLinkingResourceLoader = new SerialResourceLoader(resourceSetProvider, resourceSorter);
+ loadResource(resourceSet, project, URIs);
+ crossLinkingResource(resourceSet, project, URIs);
+ EcoreUtil.resolveAll(resourceSet);
+
+ resourceSet.getLoadOptions().put(ResourceDescriptionsProvider.NAMED_BUILDER_SCOPE, Boolean.TRUE);
+ val progress = SubMonitor.convert(new NullProgressMonitor, 3);
+ val toBeBuilt = toBeBuiltComputer.updateProject(project, progress.newChild(2));
+ val buildData = new BuildData(project.getName(), resourceSet, toBeBuilt, queuedBuildData, false);
+ builderState.update(buildData, progress.newChild(1));
+ }
+
+ def synchronized protected void loadResource(ResourceSet resourceSet, IProject project, URI[] URIs) {
+ val Set<URI> toBeUpdated = new HashSet<URI>(URIs);
+ var LoadOperation loadOperation = null;
+
+ try {
+ loadOperation = globalIndexResourceLoader.create(resourceSet, project);
+ loadOperation.load(toBeUpdated);
+
+ while(loadOperation.hasNext()) {
+ var URI uri = null;
+ var Resource resource = null;
+ try {
+ val LoadResult loadResult = loadOperation.next();
+ uri = loadResult.getUri();
+ resource = addResource(loadResult.getResource(), resourceSet);
+ } catch(RuntimeException ex) {
+ if(resource !== null) {
+ resourceSet.getResources().remove(resource);
+ }
+ }
+ }
+ } finally {
+ if(loadOperation !== null) loadOperation.cancel();
+ }
+ }
+
+ def synchronized protected void crossLinkingResource(ResourceSet resourceSet, IProject project, URI[] URIs) {
+ val Queue<URI> queue = getQueue(URIs);
+ var LoadOperation loadOperation = null;
+
+ try {
+ loadOperation = crossLinkingResourceLoader.create(resourceSet, project);
+ loadOperation.load(queue);
+ while(!queue.isEmpty()) {
+ var URI uri = null;
+ var Resource resource = null;
+ try {
+ val LoadResult loadResult = loadOperation.next();
+ uri = loadResult.getUri();
+ resource = addResource(loadResult.getResource(), resourceSet);
+ queue.remove(uri);
+ EcoreUtil2.resolveLazyCrossReferences(resource, CancelIndicator.NullImpl);
+ } catch(WrappedException ex) {
+ if(resource !== null) {
+ resourceSet.getResources().remove(resource);
+ }
+ }
+ }
+
+ loadOperation.cancel();
+ if(queue.size() > 0) {
+ loadOperation = crossLinkingResourceLoader.create(resourceSet, project);
+ loadOperation.load(queue);
+ }
+
+ if(!queue.isEmpty()) {
+ // clearResourceSet(resourceSet);
+ }
+ } finally {
+ if(loadOperation !== null) loadOperation.cancel();
+ }
+ }
+
+ def protected void clearResourceSet(ResourceSet resourceSet) {
+ val boolean wasDeliver = resourceSet.eDeliver();
+ try {
+ resourceSet.eSetDeliver(false);
+ resourceSet.getResources().clear();
+ } finally {
+ resourceSet.eSetDeliver(wasDeliver);
+ }
+ }
+
+ def protected Resource addResource(Resource resource, ResourceSet resourceSet) {
+ val URI uri = resource.getURI();
+ val Resource r = resourceSet.getResource(uri, false);
+ if(r === null) {
+ resourceSet.getResources().add(resource);
+ return resource;
+ } else {
+ return r;
+ }
+ }
+
+ def protected Queue<URI> getQueue(URI[] URIs) {
+ val LinkedList<URI> list = new LinkedList<URI>(URIs);
+ return new AbstractQueue<URI>() {
+ override offer(URI o) {
+ return list.offer(o);
+ }
+
+ override poll() {
+ if(list.isEmpty())
+ return list.poll();
+ return list.poll();
+ }
+
+ override peek() {
+ if(list.isEmpty())
+ return list.peek();
+ return list.peek();
+ }
+
+ override iterator() {
+ return Iterators.concat(list.iterator(), list.iterator());
+ }
+
+ override size() {
+ return list.size() + list.size();
+ }
+ };
+ }
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/contentassist/RBAModelExpressionScopeCreator.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/contentassist/RBAModelExpressionScopeCreator.xtend
new file mode 100644
index 0000000..16d8122
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/contentassist/RBAModelExpressionScopeCreator.xtend
@@ -0,0 +1,74 @@
+package rba.tool.editor.ui.contentassist
+
+import com.google.inject.Inject
+import java.util.List
+import org.apache.commons.lang.StringUtils
+import org.eclipse.emf.ecore.EObject
+import org.eclipse.xtext.EcoreUtil2
+import org.eclipse.xtext.Keyword
+import org.eclipse.xtext.nodemodel.INode
+import org.eclipse.xtext.nodemodel.util.NodeModelUtils
+import org.eclipse.xtext.scoping.IScope
+import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext
+import rba.core.Constraint
+import rba.core.ObjectReference
+import rba.core.Operator
+import rba.core.PreviousModifier
+import rba.tool.editor.rbaEditorModel.MemberFeatureReference
+import rba.tool.editor.scoping.IExpressionScope
+
+class RBAModelExpressionScopeCreator {
+
+ @Inject(optional=true) IExpressionScope expressionScope;
+
+ def public IScope getExpressionScope(EObject model, ContentAssistContext contentAssistContext) {
+ if (contentAssistContext.lastCompleteNode !== null) {
+ val EObject grammarElement = contentAssistContext.lastCompleteNode.grammarElement;
+ if (grammarElement instanceof Keyword && ".".equals((grammarElement as Keyword).value)) {
+ val INode lastCompleteNodeParent = contentAssistContext.lastCompleteNode.parent;
+ val semanticObject = NodeModelUtils.findActualSemanticObjectFor(lastCompleteNodeParent);
+ val boolean inner = isInnerPrefix(lastCompleteNodeParent.text, contentAssistContext.offset, lastCompleteNodeParent.endOffset);
+ val EObject eObject = getTargetObject(semanticObject, inner);
+ return expressionScope.getFeatureScope(eObject, getOwnerAnchorType(model));
+ }
+ }
+ return null;
+ }
+
+ def private EObject getTargetObject(EObject eObject, boolean inner) {
+ if (eObject instanceof Operator) {
+ return eObject;
+ }
+
+ var ObjectReference objectReference;
+ if (eObject instanceof MemberFeatureReference) {
+ val MemberFeatureReference reference = eObject as MemberFeatureReference;
+ objectReference = ( if (reference.refObject === null) reference.operand.get(0) else reference) as ObjectReference;
+ } else if (eObject instanceof ObjectReference) {
+ objectReference = eObject;
+ } else if (eObject instanceof PreviousModifier) {
+ val List<ObjectReference> objectReferences = EcoreUtil2.getAllContentsOfType(eObject, ObjectReference);
+ objectReference = if (objectReferences.size > 0) objectReferences.last else null;
+ }
+
+ if (inner && objectReference instanceof MemberFeatureReference) {
+ val operand0 = (objectReference as MemberFeatureReference).operand.get(0);
+ objectReference = if(operand0 instanceof ObjectReference) operand0 as ObjectReference else null;
+ }
+ return if (objectReference !== null) objectReference.refObject else null;
+ }
+
+ def private boolean isInnerPrefix(String text, int offset, int endOffset) {
+ val boolean isInnerOffset = offset <= endOffset;
+ val boolean isInnerPrefix = !StringUtils.endsWith(text, ".");
+ return (isInnerOffset && isInnerPrefix);
+ }
+
+ def private IExpressionScope.Anchor getOwnerAnchorType(EObject model) {
+ var EObject owner = EcoreUtil2.getContainerOfType(model, Constraint);
+ if (owner !== null) {
+ return IExpressionScope.Anchor.CONSTRAINT;
+ }
+ return IExpressionScope.Anchor.UNKNOWN;
+ }
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/contentassist/RBAModelLastSegmentFinder.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/contentassist/RBAModelLastSegmentFinder.xtend
new file mode 100644
index 0000000..e844018
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/contentassist/RBAModelLastSegmentFinder.xtend
@@ -0,0 +1,31 @@
+package rba.tool.editor.ui.contentassist
+
+import org.eclipse.xtext.ui.editor.contentassist.FQNPrefixMatcher.LastSegmentFinder
+
+class RBAModelLastSegmentFinder implements LastSegmentFinder {
+
+ override String getLastSegment(String fqn, char delimiter) {
+ if(fqn === null || fqn.length() == 0) {
+ return null;
+ }
+
+ var lookForUppercase = false;
+ var lastDelimiterIndex = -1;
+ for (var int i = 0; i < fqn.length(); i.operator_plusPlus()) {
+ if(lookForUppercase) {
+ if(Character.isUpperCase(fqn.charAt(i))) {
+ return fqn.substring(i);
+ }
+ }
+ lookForUppercase = delimiter == fqn.charAt(i);
+ if(lookForUppercase) {
+ lastDelimiterIndex = i;
+ }
+ }
+ if(lastDelimiterIndex >= 0 && lastDelimiterIndex < fqn.length() - 1) {
+ return fqn.substring(lastDelimiterIndex + 1);
+ }
+ return null;
+ }
+
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/contentassist/RBAModelProposalProvider.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/contentassist/RBAModelProposalProvider.xtend
new file mode 100644
index 0000000..c3af655
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/contentassist/RBAModelProposalProvider.xtend
@@ -0,0 +1,250 @@
+/*
+ * generated by Xtext 2.12.0
+ */
+package rba.tool.editor.ui.contentassist
+
+import com.google.common.base.Predicate
+import com.google.common.base.Predicates
+import com.google.inject.Inject
+import org.apache.log4j.Logger
+import org.eclipse.emf.ecore.EObject
+import org.eclipse.emf.ecore.util.EcoreUtil
+import org.eclipse.jface.text.contentassist.ICompletionProposal
+import org.eclipse.jface.viewers.StyledString
+import org.eclipse.swt.graphics.Image
+import org.eclipse.xtext.Assignment
+import org.eclipse.xtext.CrossReference
+import org.eclipse.xtext.Keyword
+import org.eclipse.xtext.RuleCall
+import org.eclipse.xtext.conversion.ValueConverterException
+import org.eclipse.xtext.resource.IEObjectDescription
+import org.eclipse.xtext.scoping.IScope
+import org.eclipse.xtext.ui.editor.contentassist.AbstractJavaBasedContentProposalProvider.DefaultProposalCreator
+import org.eclipse.xtext.ui.editor.contentassist.ConfigurableCompletionProposal
+import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext
+import org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor
+import rba.core.Content
+import rba.core.LambdaExpression
+import rba.core.RBACorePackage
+import rba.core.Variable
+import rba.sound.SoundContent
+import rba.sound.SoundContentSet
+import rba.sound.Zone
+import rba.sound.ZoneSet
+import rba.tool.editor.resource.RBAModelEObjectDescription
+import rba.tool.editor.ui.util.CharacterUtil
+import rba.view.Area
+import rba.view.AreaSet
+import rba.view.Display
+import rba.view.Size
+import rba.view.ViewContent
+import rba.view.ViewContentSet
+
+/**
+ * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#content-assist
+ * on how to customize the content assistant.
+ */
+class RBAModelProposalProvider extends AbstractRBAModelProposalProvider {
+
+ private final static Logger log = Logger.getLogger(RBAModelProposalProvider);
+
+ @Inject RBAModelExpressionScopeCreator expressionScopeCreator;
+
+ override completeKeyword(Keyword keyword, ContentAssistContext contentAssistContext, ICompletionProposalAcceptor acceptor) {
+ if (!CharacterUtil.isKeywordWorthyToPropose(keyword)) {
+ super.completeKeyword(keyword, contentAssistContext, acceptor)
+ }
+ }
+
+ override lookupCrossReference(CrossReference crossReference, ContentAssistContext contentAssistContext, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(crossReference, contentAssistContext, acceptor, getFeatureDescriptionPredicate(crossReference, contentAssistContext));
+ }
+
+ def protected Predicate<IEObjectDescription> getFeatureDescriptionPredicate(CrossReference crossReference, ContentAssistContext contentAssistContext) {
+ return Predicates.and(new Predicate<IEObjectDescription>() {
+ override public boolean apply(IEObjectDescription input) {
+ if (input.EObjectOrProxy instanceof Variable) {
+ return contentAssistContext.currentModel.internalLambdaExpression(input.EObjectOrProxy);
+ }
+
+ if (input.EObjectOrProxy instanceof Size) {
+ return isValidSizeModel(input.EObjectOrProxy, crossReference)
+ }
+
+ return true;
+ }
+ });
+ }
+
+ def private boolean isValidSizeModel(EObject objectOrProxy, CrossReference crossReference) {
+ var EObject tmpObj
+ if (objectOrProxy.eIsProxy) {
+ // resolve proxy object with crossReference
+ tmpObj = EcoreUtil.resolve(objectOrProxy, crossReference);
+ } else {
+ tmpObj = objectOrProxy
+ }
+ // get the container of the real object
+ if (tmpObj instanceof Size) {
+ if (!(tmpObj.eContainer instanceof Area) && !(tmpObj.eContainer instanceof Content) && !(tmpObj.eContainer instanceof Display)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ def protected boolean internalLambdaExpression(EObject eObj1, EObject eObj2) {
+ if (eObj1 === null || !(eObj2 instanceof Variable)) {
+ return false;
+ }
+
+ if (eObj1 instanceof LambdaExpression && (eObj1 as LambdaExpression).x === eObj2) {
+ return true;
+ }
+
+ return internalLambdaExpression(eObj1.eContainer, eObj2);
+ }
+
+ override protected getProposalFactory(String ruleName, ContentAssistContext contentAssistContext) {
+ return new DefaultProposalCreator(contentAssistContext, ruleName, getQualifiedNameConverter()) {
+ override apply(IEObjectDescription candidate) {
+ if (candidate === null)
+ return null;
+ var ICompletionProposal result = null;
+ var String proposal = qualifiedNameConverter.toString(candidate.getName());
+ if (valueConverter !== null) {
+ try {
+ proposal = valueConverter.toString(proposal);
+ } catch (ValueConverterException e) {
+ log.debug(e.getMessage(), e);
+ return null;
+ }
+ } else if (ruleName !== null) {
+ try {
+ proposal = getValueConverter().toString(proposal, ruleName);
+ } catch (ValueConverterException e) {
+ log.debug(e.getMessage(), e);
+ return null;
+ }
+ }
+ val EObject objectOrProxy = candidate.getEObjectOrProxy();
+ val StyledString displayString = getStyledDisplayString(candidate);
+ val Image image = getImage(candidate);
+ result = createCompletionProposal(proposal, displayString, image, contentAssistContext);
+ if (result instanceof ConfigurableCompletionProposal) {
+ (result as ConfigurableCompletionProposal).setProposalContextResource(contentAssistContext.getResource());
+ (result as ConfigurableCompletionProposal).setAdditionalProposalInfo(objectOrProxy);
+ (result as ConfigurableCompletionProposal).setHover(hover);
+
+ if (candidate instanceof RBAModelEObjectDescription) {
+ (result as ConfigurableCompletionProposal).setCursorPosition((result as ConfigurableCompletionProposal).cursorPosition +
+ (candidate as RBAModelEObjectDescription).getAdditionalInfo().get(0));
+ (result as ConfigurableCompletionProposal).setPriority((result as ConfigurableCompletionProposal).priority +
+ (candidate as RBAModelEObjectDescription).getAdditionalInfo().get(1));
+ }
+ }
+ getPriorityHelper().adjustCrossReferencePriority(result, contentAssistContext.getPrefix());
+ return result;
+ }
+ };
+ }
+
+ override completeAreaSet_Target(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ val Predicate<IEObjectDescription> filter = Predicates.and(new Predicate<IEObjectDescription>() {
+ override public boolean apply(IEObjectDescription input) {
+ return (input.EObjectOrProxy instanceof Area || input.EObjectOrProxy instanceof AreaSet);
+ }
+ });
+ lookupCrossReference((assignment.getTerminal() as CrossReference), context, acceptor, filter);
+ }
+
+ override completeViewContentSet_Target(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ val Predicate<IEObjectDescription> filter = Predicates.and(new Predicate<IEObjectDescription>() {
+ override public boolean apply(IEObjectDescription input) {
+ return (input.EObjectOrProxy instanceof ViewContent || input.EObjectOrProxy instanceof ViewContentSet);
+ }
+ });
+ lookupCrossReference((assignment.getTerminal() as CrossReference), context, acceptor, filter);
+ }
+
+ override completeViewContentSet_Allocatable(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ val Predicate<IEObjectDescription> filter = Predicates.and(new Predicate<IEObjectDescription>() {
+ override public boolean apply(IEObjectDescription input) {
+ return (input.EObjectOrProxy instanceof Area || input.EObjectOrProxy instanceof AreaSet);
+ }
+ });
+ lookupCrossReference((assignment.getTerminal() as CrossReference), context, acceptor, filter);
+ }
+
+ override completeZoneSet_Target(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ val Predicate<IEObjectDescription> filter = Predicates.and(new Predicate<IEObjectDescription>() {
+ override public boolean apply(IEObjectDescription input) {
+ return (input.EObjectOrProxy instanceof Zone || input.EObjectOrProxy instanceof ZoneSet);
+ }
+ });
+ lookupCrossReference((assignment.getTerminal() as CrossReference), context, acceptor, filter);
+ }
+
+ override completeSoundContentSet_Target(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ val Predicate<IEObjectDescription> filter = Predicates.and(new Predicate<IEObjectDescription>() {
+ override public boolean apply(IEObjectDescription input) {
+ return (input.EObjectOrProxy instanceof SoundContent || input.EObjectOrProxy instanceof SoundContentSet);
+ }
+ });
+ lookupCrossReference((assignment.getTerminal() as CrossReference), context, acceptor, filter);
+ }
+
+ override completeSoundContentSet_Allocatable(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ val Predicate<IEObjectDescription> filter = Predicates.and(new Predicate<IEObjectDescription>() {
+ override public boolean apply(IEObjectDescription input) {
+ return (input.EObjectOrProxy instanceof Zone || input.EObjectOrProxy instanceof ZoneSet);
+ }
+ });
+ lookupCrossReference((assignment.getTerminal() as CrossReference), context, acceptor, filter);
+ }
+
+ override completeViewContent_Allocatable(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ val Predicate<IEObjectDescription> filter = Predicates.and(new Predicate<IEObjectDescription>() {
+ override public boolean apply(IEObjectDescription input) {
+ return (input.EObjectOrProxy instanceof Area || input.EObjectOrProxy instanceof AreaSet);
+ }
+ });
+ lookupCrossReference((assignment.getTerminal() as CrossReference), context, acceptor, filter);
+ }
+
+ override completeSoundContent_Allocatable(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ val Predicate<IEObjectDescription> filter = Predicates.and(new Predicate<IEObjectDescription>() {
+ override public boolean apply(IEObjectDescription input) {
+ return (input.EObjectOrProxy instanceof Zone || input.EObjectOrProxy instanceof ZoneSet);
+ }
+ });
+ lookupCrossReference((assignment.getTerminal() as CrossReference), context, acceptor, filter);
+ }
+
+ override completeCMemberFeatureReference_RefObject(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ createMemberAndOperatorProposals(model, assignment, context, acceptor);
+ }
+
+ override completeVMemberFeatureReference_RefObject(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ createMemberAndOperatorProposals(model, assignment, context, acceptor);
+ }
+
+ def protected void createMemberAndOperatorProposals(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ val IScope scope = expressionScopeCreator.getExpressionScope(model, context);
+ if (scope === null) {
+ lookupCrossReference((assignment.getTerminal() as CrossReference), context, acceptor);
+ } else {
+ getCrossReferenceProposalCreator().lookupCrossReference(scope, model, RBACorePackage.Literals.OBJECT_REFERENCE__REF_OBJECT, acceptor,
+ getFeatureDescriptionPredicate((assignment.getTerminal() as CrossReference), context), getProposalFactory("ValidID", context));
+ }
+ }
+
+ override complete_OpGetProperty(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ val IScope scope = expressionScopeCreator.getExpressionScope(model, context);
+ if (scope !== null) {
+ getCrossReferenceProposalCreator().lookupCrossReference(scope, model, RBACorePackage.Literals.OPERATOR__OPERAND, acceptor, Predicates.<IEObjectDescription>alwaysTrue(),
+ getProposalFactory(null, context));
+ }
+ }
+
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/coverage/TCLogFormatPreferencePage.java b/rba.tool.editor.ui/src/rba/tool/editor/ui/coverage/TCLogFormatPreferencePage.java
new file mode 100644
index 0000000..fd6afdf
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/coverage/TCLogFormatPreferencePage.java
@@ -0,0 +1,83 @@
+package rba.tool.editor.ui.coverage;
+
+import org.eclipse.core.runtime.preferences.InstanceScope;
+import org.eclipse.jface.preference.FieldEditorPreferencePage;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.preference.RadioGroupFieldEditor;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+import org.eclipse.ui.preferences.ScopedPreferenceStore;
+
+public class TCLogFormatPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
+
+ private IPreferenceStore preferenceStore;
+
+ private RadioGroupFieldEditor tclogFileFormat;
+
+ private static final String DESCRIPTION = "tclog File Format";
+
+ private static final String TEXT_FORMAT = "text";
+
+ private static final String ZIP_FORMAT = "zip";
+
+ private String selectedFormat = TEXT_FORMAT;
+
+ private TCLogFormatSettingManager manager = TCLogFormatSettingManager.INSTANCE;
+
+ public TCLogFormatPreferencePage() {
+ super(GRID);
+ }
+
+ @Override
+ public void init(IWorkbench workbench) {
+ if (!getPreferenceStore().getString("FileFormat").isEmpty()) {
+ selectedFormat = getPreferenceStore().getString("FileFormat");
+ }
+ }
+
+ @Override
+ protected void createFieldEditors() {
+
+ String[][] btnArr = new String[][] { { "&Text", TEXT_FORMAT }, { "&Zip", ZIP_FORMAT } };
+ tclogFileFormat = new RadioGroupFieldEditor("FileFormat", DESCRIPTION, 2, btnArr, getFieldEditorParent(), true);
+
+ Composite composite = tclogFileFormat.getRadioBoxControl(getFieldEditorParent());
+ Control[] controls = composite.getChildren();
+
+ for (Control control : controls) {
+ control.addListener(SWT.Selection, new Listener() {
+
+ @Override
+ public void handleEvent(Event event) {
+
+ Button btn = (Button) event.widget;
+ selectedFormat = (String) btn.getData();
+ }
+ });
+ }
+
+ addField(tclogFileFormat);
+ }
+
+ @Override
+ public boolean performOk() {
+
+ manager.saveTCLogFileFormat(selectedFormat);
+ return super.performOk();
+ }
+
+ @Override
+ public IPreferenceStore getPreferenceStore() {
+ if (preferenceStore == null) {
+ preferenceStore = new ScopedPreferenceStore(InstanceScope.INSTANCE, manager.ID_PREFERENCE_NODE);
+ }
+ return preferenceStore;
+ }
+
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/coverage/TCLogFormatSettingManager.java b/rba.tool.editor.ui/src/rba/tool/editor/ui/coverage/TCLogFormatSettingManager.java
new file mode 100644
index 0000000..c8bed99
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/coverage/TCLogFormatSettingManager.java
@@ -0,0 +1,42 @@
+package rba.tool.editor.ui.coverage;
+
+import org.eclipse.core.runtime.preferences.IEclipsePreferences;
+import org.eclipse.core.runtime.preferences.InstanceScope;
+import org.osgi.service.prefs.BackingStoreException;
+import org.osgi.service.prefs.Preferences;
+
+public class TCLogFormatSettingManager {
+
+ public static final TCLogFormatSettingManager INSTANCE = new TCLogFormatSettingManager();
+
+ public static final String ID_PREFERENCE_NODE = "rba.model.tool"; //$NON-NLS-1$
+
+ private static final String ID_PREFERENCES = "rba.model.tool.coverage.tclogFormat"; //$NON-NLS-1$
+
+ private static final String ID_TCLOG_FORMAT = "TCLogFormat"; //$NON-NLS-1$
+
+ public void saveTCLogFileFormat(final String format) {
+ final String oldFormat = TCLogFormatSettingManager.INSTANCE.getTCLogFileFormat();
+ if (!oldFormat.equals(format)) {
+ IEclipsePreferences preferences = getPreferences();
+ Preferences sub = preferences.node(ID_PREFERENCES);
+ sub.put(ID_TCLOG_FORMAT, format);
+ try {
+ // forces the application to save the preferences
+ preferences.flush();
+ } catch (BackingStoreException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ public String getTCLogFileFormat() {
+ IEclipsePreferences preferences = getPreferences();
+ Preferences sub = preferences.node(ID_PREFERENCES);
+ return sub.get(ID_TCLOG_FORMAT, "text");
+ }
+
+ private IEclipsePreferences getPreferences() {
+ return InstanceScope.INSTANCE.getNode(ID_PREFERENCE_NODE);
+ }
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/model/edit/processor/RBAModelProcessorUtil.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/model/edit/processor/RBAModelProcessorUtil.xtend
new file mode 100644
index 0000000..5eebb92
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/model/edit/processor/RBAModelProcessorUtil.xtend
@@ -0,0 +1,177 @@
+package rba.tool.editor.ui.editor.model.edit.processor
+
+import java.util.ArrayList
+import java.util.Collection
+import java.util.Collections
+import java.util.List
+import java.util.ListIterator
+import org.eclipse.emf.common.util.BasicEList
+import org.eclipse.emf.common.util.EList
+import org.eclipse.emf.common.util.URI
+import org.eclipse.emf.common.util.WrappedException
+import org.eclipse.emf.ecore.EObject
+import org.eclipse.emf.ecore.EStructuralFeature
+import org.eclipse.emf.ecore.util.EcoreUtil
+import org.eclipse.xtext.resource.XtextResource
+import org.eclipse.xtext.util.concurrent.IUnitOfWork
+import rba.tool.editor.ui.editor.model.edit.refactoring.RBAModelRenameElementUtil
+
+class RBAModelProcessorUtil {
+
+ public static final int NO_INDEX = -1;
+ public static final Object UNSET_VALUE = new Object();
+
+ def public static IUnitOfWork.Void<XtextResource> getAddProcessor(EObject owner, EStructuralFeature feature, Object object, int index) {
+ return new IUnitOfWork.Void<XtextResource>() {
+ override process(XtextResource xtextResource) throws Exception {
+ val allOwners = xtextResource.allContents.toIterable.filter[it === owner].toList();
+ if(!allOwners.isEmpty()) {
+ doAddProcess(allOwners.get(0), feature, object, index);
+ }
+ }
+ };
+ }
+
+ def public static IUnitOfWork.Void<XtextResource> getRemoveProcessor(EObject owner, EStructuralFeature feature, Collection<Object> collection) {
+ return new IUnitOfWork.Void<XtextResource>() {
+ override process(XtextResource xtextResource) throws Exception {
+ val allOwners = xtextResource.allContents.toIterable.filter[it === owner].toList();
+ if(!allOwners.isEmpty()) {
+ doRemoveProcess(allOwners.get(0), feature, collection);
+ }
+ }
+ };
+ }
+
+ def public static IUnitOfWork.Void<XtextResource> getSetProcessor(EObject owner, EStructuralFeature feature, Object value) {
+ return new IUnitOfWork.Void<XtextResource>() {
+ override process(XtextResource xtextResource) throws Exception {
+ val EObject docOwner = RBAModelProcessorUtil.findEObjectByURI(owner, xtextResource);
+ if(docOwner !== null && !docOwner.eIsProxy) {
+ doSetProcess(docOwner, feature, value);
+ }
+ }
+ };
+ }
+
+ def public static void doSetNameProcess(String value) {
+ RBAModelRenameElementUtil.INSTANCE.execute(value);
+ }
+
+ def public static IUnitOfWork.Void<XtextResource> getUnexecutableProcessor() {
+ return new IUnitOfWork.Void<XtextResource>() {
+ override process(XtextResource xtextResource) throws Exception {
+ return;
+ }
+ };
+ }
+
+ def public static void doAddProcess(EObject owner, EStructuralFeature feature, Object object, int index) {
+ if(feature.isMany()) {
+ val sibling = owner.eGet(feature) as List<Object>;
+ if(!sibling.contains(object)) {
+ sibling.add(if(index === NO_INDEX || index > sibling.size()) sibling.size() else index, object);
+ }
+ } else {
+ owner.eSet(feature, object);
+ }
+ }
+
+ def public static void doRemoveProcess(EObject owner, EStructuralFeature feature, Collection<Object> collection) {
+ if(feature.isMany()) {
+ val List<Object> objects = new ArrayList<Object>(collection);
+ val List<Object> sibling = owner.eGet(feature) as List<Object>;
+ for (obj : objects) {
+ if(sibling.contains(obj)) {
+ sibling.remove(obj);
+ }
+ }
+ } else {
+ if(feature.isUnsettable()) {
+ owner.eUnset(feature);
+ }
+ }
+ }
+
+ def public static void doSetProcess(EObject owner, EStructuralFeature feature, Object value) {
+ if(feature.isMany()) {
+ val List<Object> values = if(value == UNSET_VALUE) Collections.EMPTY_LIST else value as List<Object>;
+ val EList<Object> oldValues = owner.eGet(feature) as EList<Object>;
+
+ if(!oldValues.isEmpty()) {
+ if(!values.isEmpty()) {
+ val List<Object> removedValues = new BasicEList.FastCompare<Object>(oldValues);
+ removedValues.removeAll(values);
+
+ // If we aren't simply removing all the old values...
+ if(!removedValues.equals(oldValues)) {
+ // If there are values to remove, append a command for them.
+ if(!removedValues.isEmpty()) {
+ oldValues.removeAll(removedValues);
+ }
+
+ // Determine the values that will remain and move them into the right order, if necessary.
+ val EList<Object> remainingValues = new BasicEList.FastCompare<Object>(oldValues);
+ var count = -1;
+ for (object : values) {
+ val position = remainingValues.indexOf(object);
+ if(position != -1 && position != count.operator_plusPlus()) {
+ oldValues.move(count, position);
+ remainingValues.move(count, position);
+ }
+ }
+
+ // Determine the values to be added and add them at the right position.
+ val List<Object> addedValues = new BasicEList.FastCompare<Object>(values);
+ addedValues.removeAll(remainingValues);
+ if(!addedValues.isEmpty()) {
+ var addIndex = remainingValues.size();
+ for (val ListIterator<?> i = values.listIterator(values.size()); i.hasPrevious();) {
+ val Object object = i.previous();
+ if(addedValues.contains(object)) {
+ doAddProcess(owner, feature, object, addIndex);
+ } else {
+ addIndex.operator_minusMinus();
+ }
+ }
+ }
+ return;
+ }
+ }
+ oldValues.clear();
+ }
+
+ if(!values.isEmpty()) {
+ oldValues.addAll(values);
+ } else if(value == UNSET_VALUE && feature.isUnsettable()) {
+ owner.eUnset(feature);
+ }
+ } else {
+ if(value == UNSET_VALUE && feature.isUnsettable()) {
+ owner.eUnset(feature);
+ } else {
+ owner.eSet(feature, value);
+ }
+ }
+ }
+
+ def public static EObject findEObjectByURI(EObject object, XtextResource resource) {
+ val URI uri = EcoreUtil.getURI(object);
+ if(uri !== null) {
+ return findEObjectByURI(uri, resource);
+ }
+ return null;
+ }
+
+ def public static EObject findEObjectByURI(URI uri, XtextResource resource) {
+ if(uri.fragment() !== null) {
+ try {
+ val EObject result = resource.getEObject(uri.fragment());
+ return result;
+ } catch(IllegalArgumentException e) {
+ } catch(WrappedException e) {
+ }
+ }
+ return null;
+ }
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/model/edit/refactoring/RBAModelRenameElementUtil.java b/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/model/edit/refactoring/RBAModelRenameElementUtil.java
new file mode 100644
index 0000000..cd84388
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/model/edit/refactoring/RBAModelRenameElementUtil.java
@@ -0,0 +1,143 @@
+package rba.tool.editor.ui.editor.model.edit.refactoring;
+
+import org.eclipse.core.runtime.OperationCanceledException;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.text.ITextSelection;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.xtext.ide.refactoring.IRenameStrategy2;
+import org.eclipse.xtext.nodemodel.INode;
+import org.eclipse.xtext.resource.EObjectAtOffsetHelper;
+import org.eclipse.xtext.resource.IGlobalServiceProvider;
+import org.eclipse.xtext.resource.ILocationInFileProvider;
+import org.eclipse.xtext.resource.XtextResource;
+import org.eclipse.xtext.ui.editor.XtextEditor;
+import org.eclipse.xtext.ui.editor.utils.EditorUtils;
+import org.eclipse.xtext.ui.refactoring.IRenameStrategy;
+import org.eclipse.xtext.ui.refactoring.IRenameStrategy.Provider.NoSuchStrategyException;
+import org.eclipse.xtext.ui.refactoring.ui.IRenameContextFactory;
+import org.eclipse.xtext.ui.refactoring.ui.IRenameElementContext;
+import org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferences;
+import org.eclipse.xtext.ui.refactoring.ui.RefactoringType;
+import org.eclipse.xtext.ui.refactoring2.rename.ISimpleNameProvider;
+import org.eclipse.xtext.util.ITextRegion;
+import org.eclipse.xtext.util.TextRegion;
+import org.eclipse.xtext.util.concurrent.IUnitOfWork;
+
+import com.google.inject.Inject;
+
+import rba.tool.editor.ui.activator.ExtensionEditorActivator;
+
+public class RBAModelRenameElementUtil {
+
+ public static RBAModelRenameElementUtil INSTANCE = new RBAModelRenameElementUtil();
+
+ @Inject
+ private EObjectAtOffsetHelper eObjectAtOffsetHelper;
+
+ @Inject
+ private ILocationInFileProvider locationInFileProvider;
+
+ @Inject
+ protected RBAModelRenameRefactoringController renameRefactoringController;
+
+ @Inject
+ protected IGlobalServiceProvider globalServiceProvider;
+
+ @Inject
+ protected RefactoringPreferences preferences;
+
+ @Inject
+ protected IRenameContextFactory renameContextFactory;
+
+ @Inject
+ protected RBAModelSyncUtil syncUtil;
+
+ private RBAModelRenameElementUtil() {
+ ExtensionEditorActivator.getInstance().injectMembers(this);
+ }
+
+ public void execute(String value) {
+ try {
+ final XtextEditor editor = EditorUtils.getActiveXtextEditor();
+ if (editor != null) {
+ syncUtil.totalSync(preferences.isSaveAllBeforeRefactoring(), renameRefactoringController.getActiveLinkedMode() == null);
+ final ITextSelection selection = (ITextSelection) editor.getSelectionProvider().getSelection();
+ IRenameElementContext renameElementContext = editor.getDocument().priorityReadOnly(new IUnitOfWork<IRenameElementContext, XtextResource>() {
+ @Override
+ public IRenameElementContext exec(XtextResource resource) throws Exception {
+ EObject selectedElement = eObjectAtOffsetHelper.resolveElementAt(resource, selection.getOffset());
+ if (selectedElement != null) {
+ IRenameElementContext renameElementContext = renameContextFactory.createRenameElementContext(selectedElement, editor, selection, resource);
+ if (isRefactoringEnabled(renameElementContext, resource))
+ return renameElementContext;
+ }
+ return null;
+ }
+ });
+ if (renameElementContext != null) {
+ startRenameElement(renameElementContext, value);
+ }
+ }
+ } catch (OperationCanceledException e) {
+ MessageDialog.openError(Display.getCurrent().getActiveShell(), "Error initializing refactoring 1", "\nSee log for details");
+ // cancelled by user, ok
+ return;
+ } catch (InterruptedException e) {
+ MessageDialog.openError(Display.getCurrent().getActiveShell(), "Error initializing refactoring 2", "\nSee log for details");
+ // cancelled by user, ok
+ return;
+ } catch (Exception exc) {
+ exc.printStackTrace();
+ MessageDialog.openError(Display.getCurrent().getActiveShell(), "Error initializing refactoring", exc.getMessage() + "\nSee log for details");
+ }
+ }
+
+ public IRenameElementContext createRenameElementContext(EObject targetElement, final XtextEditor triggeringEditor, final ITextSelection selection,
+ XtextResource triggeringResource) {
+ return renameContextFactory.createRenameElementContext(targetElement, triggeringEditor, selection, triggeringResource);
+ }
+
+ protected boolean isRefactoringEnabled(IRenameElementContext renameElementContext, XtextResource resource) {
+ ResourceSet resourceSet = resource.getResourceSet();
+ if (renameElementContext != null && resourceSet != null) {
+ EObject targetElement = resourceSet.getEObject(renameElementContext.getTargetElementURI(), true);
+ if (targetElement != null && !targetElement.eIsProxy()) {
+ if (targetElement.eResource() == resource && renameElementContext.getTriggeringEditorSelection() instanceof ITextSelection) {
+ ITextSelection textSelection = (ITextSelection) renameElementContext.getTriggeringEditorSelection();
+ ITextRegion selectedRegion = new TextRegion(textSelection.getOffset(), textSelection.getLength());
+ INode crossReferenceNode = eObjectAtOffsetHelper.getCrossReferenceNode(resource, selectedRegion);
+ if (crossReferenceNode == null) {
+ // selection is on the declaration. make sure it's the name
+ ITextRegion significantRegion = locationInFileProvider.getSignificantTextRegion(targetElement);
+ if (!significantRegion.contains(selectedRegion))
+ return false;
+ }
+ }
+ IRenameStrategy.Provider renameStrategyProvider = globalServiceProvider.findService(targetElement, IRenameStrategy.Provider.class);
+ try {
+ if (renameStrategyProvider.get(targetElement, renameElementContext) != null) {
+ return true;
+ } else {
+ IRenameStrategy2 strategy2 = globalServiceProvider.findService(targetElement, IRenameStrategy2.class);
+ ISimpleNameProvider simpleNameProvider = globalServiceProvider.findService(targetElement, ISimpleNameProvider.class);
+ return strategy2 != null && simpleNameProvider.canRename(targetElement);
+ }
+
+ } catch (NoSuchStrategyException e) {
+ MessageDialog.openInformation(Display.getCurrent().getActiveShell(), "Cannot rename element", e.getMessage());
+ }
+ }
+ }
+ return false;
+ }
+
+ protected void startRenameElement(IRenameElementContext renameElementContext, String value) throws InterruptedException {
+ // renameRefactoringController.startRefactoring(renameElementContext);
+ // renameRefactoringController.startRefactoring(RefactoringType.REFACTORING_DIALOG);
+ renameRefactoringController.initialize(renameElementContext);
+ renameRefactoringController.setNewNameText(value);
+ renameRefactoringController.startRefactoring(RefactoringType.REFACTORING_DIALOG);
+ }
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/model/edit/refactoring/RBAModelRenameRefactoringController.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/model/edit/refactoring/RBAModelRenameRefactoringController.xtend
new file mode 100644
index 0000000..737d004
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/model/edit/refactoring/RBAModelRenameRefactoringController.xtend
@@ -0,0 +1,24 @@
+package rba.tool.editor.ui.editor.model.edit.refactoring
+
+import com.google.inject.Singleton
+import org.eclipse.xtext.ui.editor.XtextEditor
+import org.eclipse.xtext.ui.refactoring.ui.RenameRefactoringController
+
+@Singleton
+class RBAModelRenameRefactoringController extends RenameRefactoringController {
+
+ private String newNameText;
+
+ override protected getOriginalName(XtextEditor xtextEditor) {
+ if(this instanceof RBAModelRenameRefactoringController) {
+ return newNameText;
+ } else {
+ super.getOriginalName(xtextEditor);
+ }
+ }
+
+ def public void setNewNameText(String name) {
+ this.newNameText = name;
+ }
+
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/model/edit/refactoring/RBAModelSyncUtil.java b/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/model/edit/refactoring/RBAModelSyncUtil.java
new file mode 100644
index 0000000..ae6cfb3
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/model/edit/refactoring/RBAModelSyncUtil.java
@@ -0,0 +1,175 @@
+package rba.tool.editor.ui.editor.model.edit.refactoring;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.core.resources.IWorkspace;
+import org.eclipse.core.resources.IncrementalProjectBuilder;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.OperationCanceledException;
+import org.eclipse.core.runtime.SubMonitor;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IEditorReference;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.xtext.resource.XtextResource;
+import org.eclipse.xtext.service.OperationCanceledError;
+import org.eclipse.xtext.ui.editor.XtextEditor;
+import org.eclipse.xtext.ui.editor.model.XtextDocument;
+import org.eclipse.xtext.util.concurrent.IUnitOfWork;
+
+import com.google.inject.Inject;
+
+public class RBAModelSyncUtil {
+
+ @Inject(optional = true)
+ private IWorkbench workbench;
+
+ @Inject(optional = true)
+ private IWorkspace workspace;
+
+ public void totalSync(final boolean saveAll, boolean useProgressDialog) throws InvocationTargetException, InterruptedException {
+ totalSync(saveAll, useProgressDialog, true);
+ }
+
+ public void totalSync(final boolean saveAll, boolean useProgressDialog, boolean fork) throws InvocationTargetException, InterruptedException {
+ if (Display.getCurrent() != null && workbench != null) {
+ if (useProgressDialog) {
+ workbench.getProgressService().run(fork, true, new IRunnableWithProgress() {
+ @Override
+ public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
+ doReconcileAndBuild(saveAll, monitor);
+ }
+ });
+ } else {
+ doReconcileAndBuild(saveAll, null);
+ }
+ }
+ }
+
+ private void doReconcileAndBuild(final boolean saveAll, IProgressMonitor monitor) throws InterruptedException {
+ try {
+ SubMonitor progress = SubMonitor.convert(monitor, 10);
+ reconcileAllEditors(workbench, saveAll, progress.newChild(1));
+ if (progress.isCanceled()) {
+ throw new InterruptedException();
+ }
+ waitForBuild(progress.newChild(4));
+ if (progress.isCanceled()) {
+ throw new InterruptedException();
+ }
+ yieldToQueuedDisplayJobs(progress.newChild(1));
+ if (progress.isCanceled()) {
+ throw new InterruptedException();
+ }
+ waitForAutoBuild(progress.newChild(4));
+ } catch (OperationCanceledException e) {
+ throw new InterruptedException();
+ }
+ }
+
+ public void totalSync(final boolean saveAll) throws InvocationTargetException, InterruptedException {
+ totalSync(saveAll, true);
+ }
+
+ public void reconcileAllEditors(IWorkbench workbench, final boolean saveAll, final IProgressMonitor monitor) {
+ for (IWorkbenchWindow window : workbench.getWorkbenchWindows()) {
+ for (IWorkbenchPage page : window.getPages()) {
+ for (IEditorReference editorReference : page.getEditorReferences()) {
+ if (monitor.isCanceled())
+ return;
+ final IEditorPart editor = editorReference.getEditor(false);
+ if (editor != null) {
+ if (editor instanceof XtextEditor) {
+ waitForReconciler((XtextEditor) editor);
+ }
+ if (saveAll) {
+ Display display = workbench.getDisplay();
+ display.syncExec(new Runnable() {
+ @Override
+ public void run() {
+ if (editor.isDirty()) {
+ editor.doSave(monitor);
+ }
+ }
+ });
+ }
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * this methods blocks until the following jobs have finished, - the reconciler - the editor validation job - the dirty
+ * state editor updater job
+ */
+ public void waitForReconciler(XtextEditor editor) {
+ try {
+ editor.getDocument().readOnly(new IUnitOfWork.Void<XtextResource>() {
+ @Override
+ public void process(XtextResource state) throws Exception {
+ // this doesn't execute before the reconciler has finished
+ }
+ });
+ // reconciling schedules both, validation and dirty state
+ Job validationJob = ((XtextDocument) editor.getDocument()).getValidationJob();
+ validationJob.join();
+ editor.getDirtyStateEditorSupport().waitForUpdateEditorJob();
+ } catch (OperationCanceledException e) {
+ } catch (OperationCanceledError e) {
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ public void waitForBuild(IProgressMonitor monitor) {
+ try {
+ workspace.build(IncrementalProjectBuilder.INCREMENTAL_BUILD, monitor);
+ } catch (CoreException e) {
+ throw new OperationCanceledException(e.getMessage());
+ }
+ }
+
+ /**
+ * @deprecated we should not rely on auto build to be triggered. Use {@link #waitForBuild(IProgressMonitor)} instead.
+ */
+ @Deprecated
+ public void waitForAutoBuild(IProgressMonitor monitor) {
+ boolean wasInterrupted = false;
+ do {
+ try {
+ Job.getJobManager().join(ResourcesPlugin.FAMILY_AUTO_BUILD, monitor);
+ wasInterrupted = false;
+ } catch (OperationCanceledException e) {
+ throw e;
+ } catch (InterruptedException e) {
+ wasInterrupted = true;
+ }
+ } while (wasInterrupted);
+ }
+
+ public void yieldToQueuedDisplayJobs(IProgressMonitor monitor) {
+ yieldToQueuedDisplayJobs(monitor, 50000);
+ }
+
+ public void yieldToQueuedDisplayJobs(IProgressMonitor monitor, int maxJobsToYieldTo) {
+ int count = 0;
+ if (Display.getCurrent() != null) {
+ while (count < maxJobsToYieldTo && Display.getCurrent().readAndDispatch()) {
+ if (monitor.isCanceled())
+ throw new OperationCanceledException();
+ ++count;
+ }
+ if (count == maxJobsToYieldTo) {
+ System.out.println("maxJobsToYieldTo probably exceeded. Worked: " + count);
+ }
+ }
+ }
+
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/model/manager/ResourceManagerUI.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/model/manager/ResourceManagerUI.xtend
new file mode 100644
index 0000000..105d9de
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/model/manager/ResourceManagerUI.xtend
@@ -0,0 +1,428 @@
+package rba.tool.editor.ui.editor.model.manager
+
+import com.google.inject.Inject
+import java.util.ArrayList
+import java.util.Collection
+import java.util.Collections
+import java.util.List
+import org.eclipse.core.resources.IProject
+import org.eclipse.core.resources.IncrementalProjectBuilder
+import org.eclipse.core.resources.ResourcesPlugin
+import org.eclipse.core.runtime.IProgressMonitor
+import org.eclipse.core.runtime.OperationCanceledException
+import org.eclipse.core.runtime.SubMonitor
+import org.eclipse.core.runtime.jobs.Job
+import org.eclipse.emf.common.util.URI
+import org.eclipse.emf.ecore.EAttribute
+import org.eclipse.emf.ecore.EObject
+import org.eclipse.emf.ecore.EReference
+import org.eclipse.emf.ecore.EStructuralFeature
+import org.eclipse.emf.ecore.resource.ResourceSet
+import org.eclipse.emf.ecore.util.EcoreUtil
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider
+import org.eclipse.jface.dialogs.MessageDialog
+import org.eclipse.swt.widgets.Display
+import org.eclipse.ui.IEditorPart
+import org.eclipse.xtext.resource.ILocationInFileProvider
+import org.eclipse.xtext.resource.XtextResource
+import org.eclipse.xtext.serializer.ISerializer
+import org.eclipse.xtext.service.OperationCanceledError
+import org.eclipse.xtext.ui.editor.LanguageSpecificURIEditorOpener
+import org.eclipse.xtext.ui.editor.XtextEditor
+import org.eclipse.xtext.ui.editor.model.IXtextDocument
+import org.eclipse.xtext.ui.editor.utils.EditorUtils
+import org.eclipse.xtext.util.ITextRegion
+import org.eclipse.xtext.util.concurrent.IUnitOfWork
+import rba.core.provider.RBACoreItemProviderAdapterFactory
+import rba.sound.provider.RBASoundItemProviderAdapterFactory
+import rba.tool.editor.resource.IRBAModelResourceLoader
+import rba.tool.editor.ui.activator.ExtensionEditorActivator
+import rba.tool.editor.ui.editor.model.edit.processor.RBAModelProcessorUtil
+import rba.tool.editor.ui.resource.RBAModelResourceSetProvider
+import rba.view.provider.RBAViewItemProviderAdapterFactory
+
+class ResourceManagerUI {
+
+ public static ResourceManagerUI INSTANCE = new ResourceManagerUI();
+
+ @Inject private RBAModelResourceSetProvider resourceSetProvider;
+
+ @Inject private LanguageSpecificURIEditorOpener editorOpener ;
+
+ @Inject private ILocationInFileProvider locationProvider;
+
+ @Inject private ISerializer serializer;
+
+ @Inject IRBAModelResourceLoader resourceLoader;
+
+ private List<ComposeableAdapterFactory> adapterFactorys = new ArrayList<ComposeableAdapterFactory>;
+
+ private IProject currentProject;
+
+ private new() {
+ ExtensionEditorActivator.getInstance().injectMembers(this);
+ adapterFactorys.add(new RBACoreItemProviderAdapterFactory());
+ adapterFactorys.add(new RBAViewItemProviderAdapterFactory());
+ adapterFactorys.add(new RBASoundItemProviderAdapterFactory());
+ }
+
+ def public IProject getCurrentProject() {
+ return currentProject;
+ }
+
+ def public void setCurrentProject(IProject project) {
+ currentProject = project;
+ }
+
+ def public boolean isCurrentProject(IProject project) {
+ if (project === null || !project.isOpen()) {
+ return false;
+ }
+
+ if (project.equals(currentProject)) {
+ return true;
+ }
+
+ return false;
+ }
+
+ def public ResourceSet getCurrentResourceSet() {
+ return resourceSetProvider.getResourceSet(currentProject);
+ }
+
+ def public void setCurrentResourceSet(ResourceSet resourceSet) {
+ resourceSetProvider.setResourceSet(currentProject, resourceSet);
+ }
+
+ def public IXtextDocument getXtextDocument(IEditorPart openEditor) {
+ val XtextEditor xtextEditor = EditorUtils.getXtextEditor(openEditor);
+ if (xtextEditor !== null) {
+ return xtextEditor.getDocument();
+ }
+ return null;
+ }
+
+ def public void add(EObject owner, EStructuralFeature feature, Object object, int index) {
+ val Object outerOwner = owner ?: getParent(object);
+ if (outerOwner === null) {
+ return;
+ }
+ if (!(outerOwner instanceof EObject)) {
+ return;
+ }
+
+ if (feature === null || object === null) {
+ return;
+ }
+
+ if (!isValid(outerOwner as EObject, feature)) {
+ return;
+ }
+
+ val editorPart = open(outerOwner as EObject, false);
+ var IXtextDocument document = getXtextDocument(editorPart);
+
+ if (document !== null) {
+ document.modify(RBAModelProcessorUtil.getAddProcessor(outerOwner as EObject, feature, object, if (index < 0) RBAModelProcessorUtil.NO_INDEX else index));
+ }
+ }
+
+ def public void remove(EObject owner, EStructuralFeature feature, Object object) {
+ val Object outerOwner = owner ?: getParent(object);
+ if (outerOwner === null) {
+ return;
+ }
+ if (!(outerOwner instanceof EObject)) {
+ return;
+ }
+
+ remove(outerOwner as EObject, feature, Collections.singleton(object));
+ }
+
+ def public void remove(EObject owner, EStructuralFeature feature, Collection<Object> collection) {
+ if (owner !== null) {
+ if (feature === null || collection === null || collection.isEmpty()) {
+ return;
+ }
+
+ if (!isValid(owner, feature)) {
+ return;
+ }
+
+ val editorPart = open(owner as EObject, false);
+ var IXtextDocument document = getXtextDocument(editorPart);
+
+ if (document !== null) {
+ document.modify(RBAModelProcessorUtil.getRemoveProcessor(owner as EObject, feature, collection));
+ }
+ } else {
+ remove(feature, collection);
+ }
+ }
+
+ def public void remove(EStructuralFeature feature, Collection<Object> collection) {
+ if (feature === null || collection === null || collection.isEmpty()) {
+ return;
+ }
+
+ val List<Object> objects = new ArrayList<Object>(collection);
+ while (!objects.isEmpty()) {
+ // We will iterate over the whole collection, removing some as we go.
+ val remainingObjects = objects.listIterator();
+
+ // Take the first object, and remove it.
+ val object = remainingObjects.next();
+ remainingObjects.remove();
+
+ // Determine the object's parent.
+ val parent = getParent(object);
+ if (parent instanceof EObject) {
+ // Now we want to find all the other objects with this same parent.
+ // So we can collection siblings together and give the parent control over their removal.
+ val List<Object> siblings = new ArrayList<Object>();
+ siblings.add(object);
+
+ while (remainingObjects.hasNext()) {
+ // Get the next object and check if it has the same parent.
+ val otherObject = remainingObjects.next();
+ val otherParent = getParent(otherObject);
+ if (otherParent == parent) {
+ // Remove the object and add it as a sibling.
+ remainingObjects.remove();
+ siblings.add(otherObject);
+ }
+ }
+ remove(parent as EObject, feature, siblings);
+ }
+ }
+ }
+
+ def public void set(EObject owner, EStructuralFeature feature, Object value) {
+ val Object outerOwner = owner ?: getParent(value);
+ if (outerOwner === null) {
+ return;
+ }
+ if (!(outerOwner instanceof EObject)) {
+ return;
+ }
+
+ if (feature === null) {
+ return;
+ }
+
+ if (!isValid(owner, feature)) {
+ return;
+ }
+
+ val innerValue = value ?: RBAModelProcessorUtil.UNSET_VALUE;
+ val editorPart = open(outerOwner as EObject, false);
+ var IXtextDocument document = getXtextDocument(editorPart);
+
+ if (document !== null) {
+ document.modify(RBAModelProcessorUtil.getSetProcessor(outerOwner as EObject, feature, innerValue));
+ selectAndReveal(editorPart, EcoreUtil.getURI(outerOwner as EObject), feature, true);
+ }
+ }
+
+ def public void unset(EObject owner, EStructuralFeature feature) {
+ if (owner === null || feature === null) {
+ return;
+ }
+
+ if (!isValid(owner, feature)) {
+ return;
+ }
+
+ val editorPart = open(owner as EObject, false);
+ var IXtextDocument document = getXtextDocument(editorPart);
+
+ if (document !== null) {
+ document.modify(RBAModelProcessorUtil.getSetProcessor(owner, feature, RBAModelProcessorUtil.UNSET_VALUE));
+ }
+ }
+
+ def public void setName(EObject owner, EStructuralFeature feature, Object value) {
+ val Object outerOwner = owner ?: getParent(value);
+ if (outerOwner === null) {
+ return;
+ }
+ if (!(outerOwner instanceof EObject)) {
+ return;
+ }
+
+ val XtextEditor editor = open(outerOwner as EObject, true);
+ if (editor === null) {
+ return;
+ }
+
+ if (feature === null) {
+ return;
+ }
+
+ if (!isValid(owner, feature)) {
+ return;
+ }
+
+ if (!(value instanceof String)) {
+ return;
+ }
+ val innerValue = value as String;
+
+ RBAModelProcessorUtil.doSetNameProcess(innerValue)
+ }
+
+ def public void waitForBuildProgress(Object family, IProgressMonitor monitor) {
+ var boolean wasInterrupted = false;
+ do {
+ try {
+ Job.getJobManager().join(family, monitor);
+ wasInterrupted = false;
+ } catch (OperationCanceledException e) {
+ throw e;
+ } catch (InterruptedException e) {
+ wasInterrupted = true;
+ }
+ } while (wasInterrupted);
+ }
+
+ def public XtextEditor open(EObject eObject, boolean select) {
+ val resource = eObject.eResource();
+ if (resource === null) {
+ return null;
+ }
+
+ val editorPart = editorOpener.open(EcoreUtil.getURI(eObject), select);
+ if (!(editorPart instanceof XtextEditor)) {
+ return null;
+ }
+
+ return (editorPart as XtextEditor);
+ }
+
+ def public XtextEditor open(URI uri, boolean select) {
+ if (uri === null || uri.isEmpty()) {
+ return null
+ }
+
+ val editorPart = editorOpener.open(uri, select);
+ if (!(editorPart instanceof XtextEditor)) {
+ return null;
+ }
+
+ return (editorPart as XtextEditor);
+ }
+
+ def private Object getParent(Object object) {
+ for (adapterFactory : adapterFactorys) {
+ val IEditingDomainItemProvider editingDomainItemProvider = adapterFactory.adapt(object, IEditingDomainItemProvider) as IEditingDomainItemProvider;
+ if (editingDomainItemProvider !== null) {
+ return editingDomainItemProvider.getParent(object);
+ }
+ }
+ return null;
+ }
+
+ def private static isValid(EObject owner, EStructuralFeature feature) {
+ if (feature instanceof EReference && owner.eClass().getEAllReferences().contains(feature)) {
+ return true;
+ }
+ if (feature instanceof EAttribute && owner.eClass().getEAllAttributes().contains(feature)) {
+ return true;
+ }
+ return false;
+ }
+
+ def public void switchToProject(IProject project, IProgressMonitor monitor) throws InterruptedException {
+ if (project === null) {
+ return;
+ }
+
+ try {
+ val SubMonitor progress = SubMonitor.convert(monitor, 10);
+ doSwitch(project, progress.newChild(2));
+ if (progress.isCanceled()) {
+ throw new InterruptedException();
+ }
+ doBuild(project, progress.newChild(6));
+ if (progress.isCanceled()) {
+ throw new InterruptedException();
+ }
+ waitForBuildProgress(ResourcesPlugin.FAMILY_MANUAL_BUILD, progress.newChild(2));
+ } catch (Exception e) {
+ throw new InterruptedException(e.getMessage());
+ }
+ }
+
+ def public boolean doConfirm(IProject project, boolean showConfirmDialog) throws InterruptedException {
+ if (project === null || !project.isOpen()) {
+ throw new InterruptedException();
+ }
+ if (isCurrentProject(project)) {
+ return true;
+ }
+
+ val boolean confirm = if (showConfirmDialog)
+ MessageDialog.openConfirm(Display.getCurrent().getActiveShell(), "Switch Project", "Do you want to switch to [" + project.getName() + "] project?")
+ else
+ true;
+
+ return confirm;
+ }
+
+ def private void doSwitch(IProject project, IProgressMonitor monitor) {
+ try {
+ setCurrentProject(project);
+ } catch (Exception e) {
+ throw new InterruptedException(e.getMessage());
+ }
+ }
+
+ def private void doBuild(IProject project, IProgressMonitor monitor) {
+ try {
+ project.build(IncrementalProjectBuilder.FULL_BUILD, monitor);
+ } catch (Exception e) {
+ throw new InterruptedException(e.getMessage());
+ }
+ }
+
+ def private void selectAndReveal(IEditorPart openEditor, URI uri, EStructuralFeature feature, boolean select) {
+ if (openEditor instanceof XtextEditor && select) {
+ val xtextEditor = openEditor as XtextEditor;
+ var boolean success = false;
+ var int tries = 0;
+ while (!success || tries >= 5) {
+ try {
+ xtextEditor.getDocument().readOnly(new IUnitOfWork.Void<XtextResource>() {
+ override process(XtextResource resource) throws Exception {
+ if (resource !== null) {
+ val EObject object = RBAModelProcessorUtil.findEObjectByURI(uri, resource);
+ if (object !== null) {
+ val ITextRegion location = if (feature !== null)
+ locationProvider.getSignificantTextRegion(object, feature, 0)
+ else
+ locationProvider.getSignificantTextRegion(object);
+ xtextEditor.selectAndReveal(location.getOffset(), location.getLength());
+ }
+ }
+ }
+ });
+ xtextEditor.doSave(null)
+ success = true;
+ } catch (OperationCanceledException e) {
+ } catch (OperationCanceledError e) {
+ } finally {
+ tries++;
+ }
+ }
+ }
+ }
+
+ def public String serialize(EObject object) {
+ return serializer.serialize(object)
+ }
+
+ def public void loadAndResolveResource(ResourceSet resourceSet, URI[] URIs, IProject project) {
+ resourceLoader.loadAndResolveResource(resourceSet, URIs, project);
+ }
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/templates/RBAModelTemplateRegistry.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/templates/RBAModelTemplateRegistry.xtend
new file mode 100644
index 0000000..0b1126c
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/templates/RBAModelTemplateRegistry.xtend
@@ -0,0 +1,99 @@
+package rba.tool.editor.ui.editor.templates
+
+import com.google.common.collect.Lists
+import com.google.inject.Inject
+import com.google.inject.Singleton
+import java.util.List
+import java.util.Map
+import org.apache.commons.lang.StringUtils
+import org.eclipse.jface.text.templates.Template
+import org.eclipse.xtext.EcoreUtil2
+import org.eclipse.xtext.GrammarUtil
+import org.eclipse.xtext.IGrammarAccess
+import org.eclipse.xtext.Keyword
+import org.eclipse.xtext.ui.editor.templates.ContextTypeIdHelper
+import rba.tool.editor.ui.util.CharacterUtil
+
+@Singleton
+class RBAModelTemplateRegistry extends TemplateRegistry {
+
+ private final Map<String, String> PATTERNS = newLinkedHashMap(
+ "rba.tool.editor.RBAModel.kw_runtime:" -> "${true}",
+ "rba.tool.editor.RBAModel.kw_global:" -> "${false}",
+ "rba.tool.editor.RBAModel.kw_description:" -> "\"${}\"",
+ "rba.tool.editor.RBAModel.kw_width:" -> "${0}",
+ "rba.tool.editor.RBAModel.kw_height:" -> "${0}",
+ "rba.tool.editor.RBAModel.kw_x:" -> "${0}",
+ "rba.tool.editor.RBAModel.kw_y:" -> "${0}",
+ "rba.tool.editor.RBAModel.kw_attenuateValue:" -> "${0}",
+ "rba.tool.editor.RBAModel.kw_loserType:" -> "${NEVER_GIVEUP}",
+ "rba.tool.editor.RBAModel.kw_arbitrationPolicy:" -> "${DEFAULT}",
+ "rba.tool.editor.RBAModel.kw_basePoint:" -> "${LEFT_TOP}",
+ "rba.tool.editor.RBAModel.kw_type:" -> "${DEFAULT}",
+ "rba.tool.editor.RBAModel.kw_allocatable:" -> "[${cursor}]",
+ "rba.tool.editor.RBAModel.kw_subarea:" -> "[${cursor}]",
+ "rba.tool.editor.RBAModel.kw_sizeReference:" -> "${size_id}",
+ "rba.tool.editor.RBAModel.kw_layout:" -> "",
+ "rba.tool.editor.RBAModel.kw_visibility:" -> "${STANDARD_VALUE}",
+ "rba.tool.editor.RBAModel.kw_priority:" -> "${STANDARD_VALUE}",
+ "rba.tool.editor.RBAModel.kw_value:" -> "${STANDARD_VALUE}",
+ "rba.tool.editor.RBAModel.kw_zorder:" -> "${STANDARD_VALUE}",
+ "rba.tool.editor.RBAModel.kw_contentStateRef:" -> "${contentState_id}",
+ "rba.tool.editor.RBAModel.kw_areaReference:" -> "${area_id}",
+ "rba.tool.editor.RBAModel.kw_condition:" -> "",
+ "rba.tool.editor.RBAModel.kw_area:" -> "${area_id}",
+ "rba.tool.editor.RBAModel.kw_content:" -> "${content_id}"
+ ) ;
+
+ private final ContextTypeIdHelper helper;
+
+ @Inject
+ public new(IGrammarAccess grammarAccess, ContextTypeIdHelper helper) {
+ this.helper = helper;
+ registerTemplates(grammarAccess);
+ }
+
+ def protected void registerTemplates(IGrammarAccess grammarAccess) {
+ val List<Template> allTemplates = Lists.newArrayList();
+ for (parserRule : GrammarUtil.allParserRules(grammarAccess.getGrammar())) {
+ var Template template;
+ for (keyword : EcoreUtil2.getAllContentsOfType(parserRule, Keyword)) {
+ if (CharacterUtil.isKeywordWorthyToPropose(keyword)) {
+ val name = keyword.value;
+ if (!StringUtils.isEmpty(name)) {
+ if (StringUtils.endsWith(name, ":")) {
+ template = new Template(name, "", getId(keyword), getPattern(keyword), true);
+ } else {
+ template = new Template(name, "", getId(keyword), name, true);
+ }
+ allTemplates.add(template);
+ }
+ }
+ }
+ }
+ for (enumRule : GrammarUtil.allEnumRules(grammarAccess.getGrammar())) {
+ var Template template;
+ for (keyword : EcoreUtil2.getAllContentsOfType(enumRule, Keyword)) {
+ if (CharacterUtil.isKeywordWorthyToPropose(keyword)) {
+ val name = keyword.value;
+ if (!StringUtils.isEmpty(name)) {
+ template = new Template(name, "", getId(keyword), name, true);
+ allTemplates.add(template);
+ }
+ }
+ }
+ }
+
+ for (template : allTemplates) {
+ addTemplate(template);
+ }
+ }
+
+ def public String getId(Keyword k) {
+ return helper.getId(k);
+ }
+
+ def private String getPattern(Keyword k) {
+ return StringUtils.join(#[k.value, " ", PATTERNS.get(getId(k)) ?: ""]);
+ }
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/templates/RBAModelTemplateStore.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/templates/RBAModelTemplateStore.xtend
new file mode 100644
index 0000000..7330f91
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/templates/RBAModelTemplateStore.xtend
@@ -0,0 +1,30 @@
+package rba.tool.editor.ui.editor.templates
+
+import com.google.inject.Inject
+import com.google.inject.Singleton
+import java.util.ArrayList
+import java.util.List
+import org.eclipse.jface.preference.IPreferenceStore
+import org.eclipse.jface.text.templates.ContextTypeRegistry
+import org.eclipse.jface.text.templates.Template
+import org.eclipse.ui.plugin.AbstractUIPlugin
+import org.eclipse.xtext.ui.editor.templates.XtextTemplateStore
+
+@Singleton
+class RBAModelTemplateStore extends XtextTemplateStore {
+
+ private TemplateRegistry templateRegistry;
+
+ @Inject
+ new(TemplateRegistry templateRegistry, ContextTypeRegistry registry, IPreferenceStore store, String key, AbstractUIPlugin plugin) {
+ super(registry, store, key, plugin);
+ this.templateRegistry = templateRegistry;
+ }
+
+ override getTemplates(String contextTypeId) {
+ val List<Template> templates = new ArrayList<Template>(super.getTemplates(contextTypeId));
+ val template = templateRegistry.getTemplate(contextTypeId);
+ if (template !== null) templates.add(template);
+ return templates.toArray(newArrayOfSize(templates.size()));
+ }
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/templates/TemplateRegistry.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/templates/TemplateRegistry.xtend
new file mode 100644
index 0000000..edba477
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/templates/TemplateRegistry.xtend
@@ -0,0 +1,23 @@
+package rba.tool.editor.ui.editor.templates
+
+import java.util.Iterator
+import java.util.LinkedHashMap
+import java.util.Map
+import org.eclipse.jface.text.templates.Template
+
+class TemplateRegistry {
+
+ private final Map<String, Template> fTemplates = new LinkedHashMap<String, Template>();
+
+ def public void addTemplate(Template template) {
+ fTemplates.put(template.contextTypeId, template);
+ }
+
+ def public Template getTemplate(String id) {
+ return fTemplates.get(id);
+ }
+
+ def public Iterator<Template> templates() {
+ return fTemplates.values().iterator();
+ }
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/labeling/RBAModelDescriptionLabelProvider.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/labeling/RBAModelDescriptionLabelProvider.xtend
new file mode 100644
index 0000000..c1660a7
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/labeling/RBAModelDescriptionLabelProvider.xtend
@@ -0,0 +1,24 @@
+/*
+ * generated by Xtext 2.12.0
+ */
+package rba.tool.editor.ui.labeling
+
+import org.eclipse.xtext.ui.label.DefaultDescriptionLabelProvider
+
+/**
+ * Provides labels for IEObjectDescriptions and IResourceDescriptions.
+ *
+ * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#label-provider
+ */
+class RBAModelDescriptionLabelProvider extends DefaultDescriptionLabelProvider {
+
+ // Labels and icons can be computed like this:
+
+// override text(IEObjectDescription ele) {
+// ele.name.toString
+// }
+//
+// override image(IEObjectDescription ele) {
+// ele.EClass.name + '.gif'
+// }
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/labeling/RBAModelLabelProvider.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/labeling/RBAModelLabelProvider.xtend
new file mode 100644
index 0000000..0f55a06
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/labeling/RBAModelLabelProvider.xtend
@@ -0,0 +1,31 @@
+/*
+ * generated by Xtext 2.12.0
+ */
+package rba.tool.editor.ui.labeling
+
+import com.google.inject.Inject
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider
+import org.eclipse.xtext.ui.label.DefaultEObjectLabelProvider
+
+/**
+ * Provides labels for EObjects.
+ *
+ * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#label-provider
+ */
+class RBAModelLabelProvider extends DefaultEObjectLabelProvider {
+
+ @Inject
+ new(AdapterFactoryLabelProvider delegate) {
+ super(delegate);
+ }
+
+ // Labels and icons can be computed like this:
+
+// def text(Greeting ele) {
+// 'A greeting to ' + ele.name
+// }
+//
+// def image(Greeting ele) {
+// 'Greeting.gif'
+// }
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/labeling/RBATemplateModelDescriptionLabelProvider.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/labeling/RBATemplateModelDescriptionLabelProvider.xtend
new file mode 100644
index 0000000..5f722d3
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/labeling/RBATemplateModelDescriptionLabelProvider.xtend
@@ -0,0 +1,24 @@
+/*
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.ui.labeling
+
+import org.eclipse.xtext.ui.label.DefaultDescriptionLabelProvider
+
+/**
+ * Provides labels for IEObjectDescriptions and IResourceDescriptions.
+ *
+ * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#label-provider
+ */
+class RBATemplateModelDescriptionLabelProvider extends DefaultDescriptionLabelProvider {
+
+ // Labels and icons can be computed like this:
+
+// override text(IEObjectDescription ele) {
+// ele.name.toString
+// }
+//
+// override image(IEObjectDescription ele) {
+// ele.EClass.name + '.gif'
+// }
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/labeling/RBATemplateModelLabelProvider.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/labeling/RBATemplateModelLabelProvider.xtend
new file mode 100644
index 0000000..cc8d296
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/labeling/RBATemplateModelLabelProvider.xtend
@@ -0,0 +1,31 @@
+/*
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.ui.labeling
+
+import com.google.inject.Inject
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider
+import org.eclipse.xtext.ui.label.DefaultEObjectLabelProvider
+
+/**
+ * Provides labels for EObjects.
+ *
+ * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#label-provider
+ */
+class RBATemplateModelLabelProvider extends DefaultEObjectLabelProvider {
+
+ @Inject
+ new(AdapterFactoryLabelProvider delegate) {
+ super(delegate);
+ }
+
+ // Labels and icons can be computed like this:
+
+// def text(Greeting ele) {
+// 'A greeting to ' + ele.name
+// }
+//
+// def image(Greeting ele) {
+// 'Greeting.gif'
+// }
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/marker/PositionInfo.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/marker/PositionInfo.xtend
new file mode 100644
index 0000000..a43191a
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/marker/PositionInfo.xtend
@@ -0,0 +1,76 @@
+package rba.tool.editor.ui.marker
+
+class PositionInfo {
+ private int beforeStartLine
+ private int beforeOffset
+ private int beforeCharCount
+ private int beforeEndLine
+ private int afterStartLine
+ private int afterOffset
+ private int afterCharCount
+ private int afterExpendedLine
+
+ def void setBeforeStartLine(int start) {
+ this.beforeStartLine = start
+ }
+
+ def void setBeforeOffset(int offset) {
+ this.beforeOffset = offset
+ }
+
+ def void setBeforeCharCount(int charCount) {
+ this.beforeCharCount = charCount
+ }
+
+ def void setBeforeEndLine(int end) {
+ this.beforeEndLine = end
+ }
+
+ def void setAfterStartLine(int start) {
+ this.afterStartLine = start
+ }
+
+ def void setAfterOffset(int offset) {
+ this.afterOffset = offset
+ }
+
+ def void setAfterCharCount(int charCount) {
+ this.afterCharCount = charCount
+ }
+
+ def void setAfterExpendedLine(int expendLine) {
+ this.afterExpendedLine = expendLine
+ }
+
+ def int getBeforeStartLine() {
+ return this.beforeStartLine
+ }
+
+ def int getBeforeOffset() {
+ return this.beforeOffset
+ }
+
+ def int getBeforeCharCount() {
+ return this.beforeCharCount
+ }
+
+ def int getBeforeEndLine() {
+ return this.beforeEndLine
+ }
+
+ def int getAfterStartLine() {
+ return this.afterStartLine
+ }
+
+ def int getAfterOffset() {
+ return this.afterOffset
+ }
+
+ def int getAfterCharCount() {
+ return this.afterCharCount
+ }
+
+ def int getAfterExpendedLine() {
+ return this.afterExpendedLine
+ }
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/marker/RBAModelMarkerCreator.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/marker/RBAModelMarkerCreator.xtend
new file mode 100644
index 0000000..c982375
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/marker/RBAModelMarkerCreator.xtend
@@ -0,0 +1,34 @@
+package rba.tool.editor.ui.marker
+
+import org.eclipse.core.resources.IMarker
+import org.eclipse.core.resources.IResource
+import org.eclipse.core.runtime.CoreException
+import org.eclipse.xtext.ui.editor.validation.MarkerCreator
+import org.eclipse.xtext.validation.Issue
+import rba.tool.editor.util.RBAModelEditorNameUtil
+
+class RBAModelMarkerCreator extends MarkerCreator {
+
+ override protected setMarkerAttributes(Issue issue, IResource resource, IMarker marker) throws CoreException {
+ super.setMarkerAttributes(issue, resource, marker)
+ var isInModelFolder = false
+ var isInBuildFolder = false
+ var uri = issue.uriToProblem
+ if (uri !== null) {
+ for (seg : uri.segments) {
+ if (seg.equals(RBAModelEditorNameUtil.BUILD_FOLDER_NAME)) {
+ isInBuildFolder = true
+ }
+ }
+ }
+ var path = marker.resource.fullPath
+ if (path !== null) {
+ for (seg : path.segments) {
+ if (seg.equals(RBAModelEditorNameUtil.MODEL_FOLDER_NAME)) {
+ isInModelFolder = true
+ }
+ }
+ }
+ }
+
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/marker/RBAModelResourceUIValidatorExtension.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/marker/RBAModelResourceUIValidatorExtension.xtend
new file mode 100644
index 0000000..cbb9b51
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/marker/RBAModelResourceUIValidatorExtension.xtend
@@ -0,0 +1,67 @@
+package rba.tool.editor.ui.marker
+
+import org.eclipse.core.resources.IFile
+import org.eclipse.core.resources.IFolder
+import org.eclipse.core.resources.IMarker
+import org.eclipse.core.resources.IResource
+import org.eclipse.core.runtime.CoreException
+import org.eclipse.core.runtime.IProgressMonitor
+import org.eclipse.core.runtime.OperationCanceledException
+import org.eclipse.emf.ecore.resource.Resource
+import org.eclipse.xtext.ui.validation.DefaultResourceUIValidatorExtension
+import org.eclipse.xtext.validation.CheckMode
+import rba.tool.editor.util.RBAModelEditorNameUtil
+
+class RBAModelResourceUIValidatorExtension extends DefaultResourceUIValidatorExtension {
+
+ private var path = new String
+
+ override updateValidationMarkers(IFile file, Resource resource, CheckMode mode,
+ IProgressMonitor monitor) throws OperationCanceledException {
+ path = new String
+ var exist = existInBuildFolder(file.parent)
+ if (exist) {
+ if (!path.equals("")) {
+ path = "model" + "//" + path
+ } else {
+ path = "model"
+ }
+ val p = file.project
+ val d = p.getFolder(path)
+ val f = d.getFile(file.name)
+ super.updateValidationMarkers(f, resource, mode, monitor)
+ }
+ }
+
+ def boolean existInBuildFolder(IResource res) {
+ if (res instanceof IFolder) {
+ if (res.name.equals(RBAModelEditorNameUtil.BUILD_FOLDER_NAME)) {
+ return true
+ } else {
+ if (!path.equals("")) {
+ path = res.name + "//" + path
+ } else {
+ path = res.name
+ }
+ return existInBuildFolder(res.parent)
+ }
+ }
+ return false
+ }
+
+ override deleteValidationMarkers(IFile file, CheckMode checkMode, IProgressMonitor monitor) {
+ path = new String
+ var exist = existInBuildFolder(file.parent)
+ if (exist) {
+ if (!path.equals("")) {
+ path += "model" + "//" + path
+ } else {
+ path = "model"
+ }
+ val p = file.project
+ val d = p.getFolder(path)
+ val f = d.getFile(file.name)
+ super.deleteValidationMarkers(f, checkMode, monitor)
+ }
+ }
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/messages/Messages.java b/rba.tool.editor.ui/src/rba/tool/editor/ui/messages/Messages.java
new file mode 100644
index 0000000..aaebbb9
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/messages/Messages.java
@@ -0,0 +1,29 @@
+package rba.tool.editor.ui.messages;
+
+import org.eclipse.osgi.util.NLS;
+
+public class Messages extends NLS {
+ public static final String BUNDLE_NAME = "rba.tool.editor.ui.messages.messages";
+
+ public static String PAGE_INFORMATION;
+
+ public static String LBL_IPADDRESS;
+
+ public static String LBL_PORT;
+
+ public static String LBL_APPNAME;
+
+ public static String ERR_EMPTY_IP;
+
+ public static String ERR_EMPTY_PORT;
+
+ public static String PORT_NUMERIC_ERR;
+
+ public static String IP_FORMAT_ERR;
+
+ static {
+ // initialize resource bundle
+ NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+ }
+
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/messages/messages.properties b/rba.tool.editor.ui/src/rba/tool/editor/ui/messages/messages.properties
new file mode 100644
index 0000000..7b4c196
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/messages/messages.properties
@@ -0,0 +1,9 @@
+PAGE_INFORMATION=This page allows you to set settings for communicate other RBAModel Project
+LBL_IPADDRESS=IP Address :
+LBL_PORT=Port :
+LBL_APPNAME=App Name :
+#Error Message
+ERR_EMPTY_IP=[IP Address] doesn't allow empty value.
+ERR_EMPTY_PORT=[Port] doesn't allow empty value.
+PORT_NUMERIC_ERR=[Port] must be number.
+IP_FORMAT_ERR=[IP Address] is incorrect format. Enter 'localhost' or valid IP Address. \ No newline at end of file
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/opener/RBAModelURIEditorOpener.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/opener/RBAModelURIEditorOpener.xtend
new file mode 100644
index 0000000..6d017c4
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/opener/RBAModelURIEditorOpener.xtend
@@ -0,0 +1,129 @@
+package rba.tool.editor.ui.opener
+
+import com.google.inject.Inject
+import org.apache.log4j.Logger
+import org.eclipse.core.resources.IFile
+import org.eclipse.core.resources.IStorage
+import org.eclipse.emf.common.util.URI
+import org.eclipse.emf.common.util.WrappedException
+import org.eclipse.emf.ecore.EReference
+import org.eclipse.ui.IEditorPart
+import org.eclipse.ui.IWorkbench
+import org.eclipse.ui.PartInitException
+import org.eclipse.ui.PlatformUI
+import org.eclipse.ui.ide.IDE
+import org.eclipse.xtext.resource.ILocationInFileProvider
+import org.eclipse.xtext.resource.IResourceServiceProvider
+import org.eclipse.xtext.resource.XtextResource
+import org.eclipse.xtext.ui.editor.IURIEditorOpener
+import org.eclipse.xtext.ui.editor.utils.EditorUtils
+import org.eclipse.xtext.ui.resource.IResourceUIServiceProvider
+import org.eclipse.xtext.ui.resource.IStorage2UriMapper
+import org.eclipse.xtext.util.concurrent.IUnitOfWork
+
+class RBAModelURIEditorOpener implements IURIEditorOpener {
+
+ private static final Logger logger = Logger.getLogger(RBAModelURIEditorOpener);
+
+ @Inject
+ private IResourceServiceProvider.Registry resourceServiceProviderRegistry;
+
+ @Inject
+ private IStorage2UriMapper mapper;
+
+ @Inject(optional=true)
+ private IWorkbench workbench;
+
+ /**
+ * @since 2.2
+ */
+ def IEditorPart open(URI uri, Object context, boolean select) {
+ return open(uri, select);
+ }
+
+ override open(URI uri, boolean select) {
+ val resourceServiceProvider = resourceServiceProviderRegistry.getResourceServiceProvider(uri.trimFragment());
+ if(resourceServiceProvider instanceof IResourceUIServiceProvider) {
+ val editorOpener = ( resourceServiceProvider as IResourceUIServiceProvider).getURIEditorOpener();
+ if(editorOpener !== null) {
+ return editorOpener.open(URI.createURI(uri.toString.replace("/.applied/", "/model/")), select);
+ }
+ }
+ return openDefaultEditor(URI.createURI(uri.toString.replace("/.applied/", "/model/")), null, -1, select);
+ }
+
+ override open(URI referenceOwnerURI, EReference reference, int indexInList, boolean select) {
+ val resourceServiceProvider = resourceServiceProviderRegistry.getResourceServiceProvider(referenceOwnerURI.trimFragment());
+ if(resourceServiceProvider instanceof IResourceUIServiceProvider) {
+ val editorOpener = (resourceServiceProvider as IResourceUIServiceProvider).getURIEditorOpener();
+ if(editorOpener !== null) {
+ return editorOpener.open(referenceOwnerURI, reference, indexInList, select);
+ }
+ }
+ return openDefaultEditor(referenceOwnerURI, reference, indexInList, select);
+ }
+
+ def protected IEditorPart openDefaultEditor(URI uri, EReference crossReference, int indexInList, boolean select) {
+ val storages = mapper.getStorages(uri.trimFragment()).iterator();
+ if(storages !== null && storages.hasNext()) {
+ try {
+ val storage = storages.next().getFirst();
+ var IEditorPart editor = null;
+ if(storage instanceof IFile) {
+ editor = openDefaultEditor(storage as IFile);
+ } else {
+ editor = openDefaultEditor(storage, uri);
+ }
+ selectAndReveal(editor, uri, crossReference, indexInList, select);
+ return editor;
+ } catch(WrappedException e) {
+ logger.error("Error while opening editor part for EMF URI '" + uri + "'", e.getCause());
+ } catch(PartInitException partInitException) {
+ logger.error("Error while opening editor part for EMF URI '" + uri + "'", partInitException);
+ }
+ }
+ return null;
+ }
+
+ def protected void selectAndReveal(IEditorPart openEditor, URI uri, EReference crossReference, int indexInList, boolean select) {
+ val xtextEditor = EditorUtils.getXtextEditor(openEditor);
+ if(xtextEditor !== null) {
+ if(uri.fragment() !== null) {
+ xtextEditor.getDocument().priorityReadOnly(new IUnitOfWork.Void<XtextResource>() {
+ override process(XtextResource resource) throws Exception {
+ if(resource !== null) {
+ val object = resource.getEObject(uri.fragment());
+ val locationProvider = resource.getResourceServiceProvider().get(ILocationInFileProvider);
+ val location = if(crossReference !== null)
+ locationProvider.getSignificantTextRegion(object, crossReference, indexInList)
+ else
+ locationProvider.getSignificantTextRegion(object);
+ if(select) {
+ xtextEditor.selectAndReveal(location.getOffset(), location.getLength());
+ } else {
+ xtextEditor.reveal(location.getOffset(), location.getLength());
+ }
+ }
+ }
+ });
+ }
+ }
+ }
+
+ def protected IEditorPart openDefaultEditor(IFile file) throws PartInitException {
+ val page = getWorkbench().getActiveWorkbenchWindow().getActivePage();
+ return IDE.openEditor(page, file);
+ }
+
+ def protected IEditorPart openDefaultEditor(IStorage storage, URI uri) throws PartInitException {
+ val editorInput = EditorUtils.createEditorInput(storage);
+ val page = getWorkbench().getActiveWorkbenchWindow().getActivePage();
+ return IDE.openEditor(page, editorInput, PlatformUI.getWorkbench().getEditorRegistry().getDefaultEditor(uri.lastSegment()).getId());
+ }
+
+ def protected IWorkbench getWorkbench() {
+ if(workbench === null)
+ throw new IllegalStateException("No workbench");
+ return workbench;
+ }
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/outline/RBAModelOutlineTreeProvider.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/outline/RBAModelOutlineTreeProvider.xtend
new file mode 100644
index 0000000..46aa0cd
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/outline/RBAModelOutlineTreeProvider.xtend
@@ -0,0 +1,15 @@
+/*
+ * generated by Xtext 2.12.0
+ */
+package rba.tool.editor.ui.outline
+
+import org.eclipse.xtext.ui.editor.outline.impl.DefaultOutlineTreeProvider
+
+/**
+ * Customization of the default outline structure.
+ *
+ * See https://www.eclipse.org/Xtext/documentation/310_eclipse_support.html#outline
+ */
+class RBAModelOutlineTreeProvider extends DefaultOutlineTreeProvider {
+
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/outline/RBATemplateModelOutlineTreeProvider.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/outline/RBATemplateModelOutlineTreeProvider.xtend
new file mode 100644
index 0000000..d5da808
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/outline/RBATemplateModelOutlineTreeProvider.xtend
@@ -0,0 +1,15 @@
+/*
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.ui.outline
+
+import org.eclipse.xtext.ui.editor.outline.impl.DefaultOutlineTreeProvider
+
+/**
+ * Customization of the default outline structure.
+ *
+ * See https://www.eclipse.org/Xtext/documentation/310_eclipse_support.html#outline
+ */
+class RBATemplateModelOutlineTreeProvider extends DefaultOutlineTreeProvider {
+
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/properties/RBAServerPropertySettingPage.java b/rba.tool.editor.ui/src/rba/tool/editor/ui/properties/RBAServerPropertySettingPage.java
new file mode 100644
index 0000000..b2db925
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/properties/RBAServerPropertySettingPage.java
@@ -0,0 +1,219 @@
+package rba.tool.editor.ui.properties;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.apache.commons.lang.StringUtils;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.Adapters;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.QualifiedName;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.IWorkbenchPropertyPage;
+import org.eclipse.ui.dialogs.PropertyPage;
+import rba.tool.editor.ui.messages.Messages;
+
+public class RBAServerPropertySettingPage extends PropertyPage implements IWorkbenchPropertyPage {
+
+ private Text txt_IPAddress;
+
+ private Text txt_AppName;
+
+ private Text txt_Port;
+
+ private static QualifiedName ID_IP_ADDRESS = new QualifiedName("IpAddress", "IpAddress");
+
+ private static QualifiedName ID_PORT = new QualifiedName("Port", "Port");
+
+ private static QualifiedName ID_APP_NAME = new QualifiedName("AppName", "AppName");
+
+ private static final String IPADDRESS_PATTERN = "^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." + "([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." + "([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\."
+ + "([01]?\\d\\d?|2[0-4]\\d|25[0-5])$";
+
+ private static final String DEF_IP = "localhost";
+
+ private static final String DEF_PORT = "65530";
+
+ private Pattern pattern;
+
+ private Matcher matcher;
+
+ public RBAServerPropertySettingPage() {
+ super();
+ }
+
+ protected Control createContents(Composite parent) {
+ Composite mComposite = new Composite(parent, SWT.NULL);
+ mComposite.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true));
+ mComposite.setLayout(new GridLayout());
+ Label mylabel = new Label(mComposite, SWT.NONE);
+ mylabel.setLayoutData(new GridData());
+ mylabel.setText(Messages.PAGE_INFORMATION);
+
+ // Create a horizontal separator
+ Label separator = new Label(mComposite, SWT.HORIZONTAL | SWT.SEPARATOR);
+ separator.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+
+ Composite sComposite = new Composite(mComposite, SWT.NONE);
+ GridLayout layout = new GridLayout();
+ layout.numColumns = 4;
+ sComposite.setLayout(layout);
+ sComposite.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));
+
+ Label lbl_IPAddress = new Label(sComposite, SWT.NONE);
+ lbl_IPAddress.setLayoutData(new GridData());
+ lbl_IPAddress.setText(Messages.LBL_IPADDRESS);
+ txt_IPAddress = new Text(sComposite, SWT.BORDER);
+ txt_IPAddress.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ txt_IPAddress.setText(getIP());
+
+ Label lbl_Port = new Label(sComposite, SWT.NONE);
+ lbl_Port.setLayoutData(new GridData());
+ lbl_Port.setText(Messages.LBL_PORT);
+ txt_Port = new Text(sComposite, SWT.BORDER);
+ txt_Port.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ txt_Port.setText(getPort());
+
+ Label lbl_AppName = new Label(sComposite, SWT.NULL);
+ lbl_AppName.setLayoutData(new GridData(GridData.FILL));
+ lbl_AppName.setText(Messages.LBL_APPNAME);
+ txt_AppName = new Text(sComposite, SWT.BORDER);
+ txt_AppName.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ txt_AppName.setText(getName());
+ return mComposite;
+ }
+
+ protected String getIP() {
+ IResource resource = Adapters.adapt(getElement(), IResource.class);
+ try {
+ String value = resource.getPersistentProperty(ID_IP_ADDRESS);
+ if (value == null)
+ // Set Default IP Address.
+ return DEF_IP;
+ return value;
+ } catch (CoreException e) {
+ return e.getMessage();
+ }
+ }
+
+ protected void setIP(String ip) {
+ IResource resource = Adapters.adapt(getElement(), IResource.class);
+ String value = ip;
+ if (value.equals(""))
+ value = null;
+ try {
+ resource.setPersistentProperty(ID_IP_ADDRESS, value);
+ } catch (CoreException e) {
+ }
+ }
+
+ protected String getPort() {
+ IResource resource = Adapters.adapt(getElement(), IResource.class);
+ try {
+ String value = resource.getPersistentProperty(ID_PORT);
+ if (value == null)
+ // Set Default Port Number.
+ return DEF_PORT;
+ return value;
+ } catch (CoreException e) {
+ return e.getMessage();
+ }
+ }
+
+ protected void setPort(String port) {
+ IResource resource = Adapters.adapt(getElement(), IResource.class);
+ String value = port;
+ if (value.equals(""))
+ value = null;
+ try {
+ resource.setPersistentProperty(ID_PORT, value);
+ } catch (CoreException e) {
+ }
+ }
+
+ protected String getName() {
+ IResource resource = Adapters.adapt(getElement(), IResource.class);
+ try {
+ String value = resource.getPersistentProperty(ID_APP_NAME);
+ if (value == null)
+ return "";
+ return value;
+ } catch (CoreException e) {
+ return e.getMessage();
+ }
+ }
+
+ protected void setName(String port) {
+ IResource resource = Adapters.adapt(getElement(), IResource.class);
+ String value = port;
+ if (value.equals(""))
+ value = null;
+ try {
+ resource.setPersistentProperty(ID_APP_NAME, value);
+ } catch (CoreException e) {
+ }
+ }
+
+ @Override
+ public boolean performOk() {
+ IResource resource = Adapters.adapt(getElement(), IResource.class);
+ IProject project = resource.getProject();
+ if (validate()) {
+ setIP(txt_IPAddress.getText());
+ setPort(txt_Port.getText());
+ // Set Default Project Name if txt_AppName is blank.
+ if (txt_AppName.getText().toString().equals("")) {
+ txt_AppName.setText(project.getName());
+ }
+ setName(txt_AppName.getText());
+ return super.performOk();
+ }
+ return false;
+ }
+
+ @Override
+ protected void performDefaults() {
+ super.performDefaults();
+ txt_IPAddress.setText(DEF_IP);
+ txt_Port.setText(DEF_PORT);
+ txt_AppName.setText("");
+ }
+
+ // Check IP Address
+ public boolean validateIpAddress(final String ip) {
+ pattern = Pattern.compile(IPADDRESS_PATTERN);
+ matcher = pattern.matcher(ip);
+ return matcher.matches();
+ }
+
+ // Validation
+ protected boolean validate() {
+ if (StringUtils.isEmpty(txt_IPAddress.getText().toString())) {
+ setErrorMessage(Messages.ERR_EMPTY_IP);
+ return false;
+ }
+ if (!DEF_IP.equals(txt_IPAddress.getText().toString()) && !validateIpAddress(txt_IPAddress.getText())) {
+ setErrorMessage(Messages.IP_FORMAT_ERR);
+ return false;
+ }
+ if (StringUtils.isEmpty(txt_Port.getText().toString())) {
+ setErrorMessage(Messages.ERR_EMPTY_PORT);
+ return false;
+ }
+ if (!StringUtils.isNumeric(txt_Port.getText().toString())) {
+ setErrorMessage(Messages.PORT_NUMERIC_ERR);
+ return false;
+ } else {
+ setErrorMessage(null);
+ return true;
+ }
+ }
+
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/quickfix/RBAModelQuickfixProvider.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/quickfix/RBAModelQuickfixProvider.xtend
new file mode 100644
index 0000000..2cd10e4
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/quickfix/RBAModelQuickfixProvider.xtend
@@ -0,0 +1,24 @@
+/*
+ * generated by Xtext 2.12.0
+ */
+package rba.tool.editor.ui.quickfix
+
+import org.eclipse.xtext.ui.editor.quickfix.DefaultQuickfixProvider
+
+/**
+ * Custom quickfixes.
+ *
+ * See https://www.eclipse.org/Xtext/documentation/310_eclipse_support.html#quick-fixes
+ */
+class RBAModelQuickfixProvider extends DefaultQuickfixProvider {
+
+// @Fix(RBAModelValidator.INVALID_NAME)
+// def capitalizeName(Issue issue, IssueResolutionAcceptor acceptor) {
+// acceptor.accept(issue, 'Capitalize name', 'Capitalize the name.', 'upcase.png') [
+// context |
+// val xtextDocument = context.xtextDocument
+// val firstLetter = xtextDocument.get(issue.offset, 1)
+// xtextDocument.replace(issue.offset, 1, firstLetter.toUpperCase)
+// ]
+// }
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/quickfix/RBATemplateModelQuickfixProvider.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/quickfix/RBATemplateModelQuickfixProvider.xtend
new file mode 100644
index 0000000..900a53f
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/quickfix/RBATemplateModelQuickfixProvider.xtend
@@ -0,0 +1,23 @@
+/*
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.ui.quickfix
+
+
+/**
+ * Custom quickfixes.
+ *
+ * See https://www.eclipse.org/Xtext/documentation/310_eclipse_support.html#quick-fixes
+ */
+class RBATemplateModelQuickfixProvider extends RBAModelQuickfixProvider {
+
+// @Fix(RBATemplateModelValidator.INVALID_NAME)
+// def capitalizeName(Issue issue, IssueResolutionAcceptor acceptor) {
+// acceptor.accept(issue, 'Capitalize name', 'Capitalize the name.', 'upcase.png') [
+// context |
+// val xtextDocument = context.xtextDocument
+// val firstLetter = xtextDocument.get(issue.offset, 1)
+// xtextDocument.replace(issue.offset, 1, firstLetter.toUpperCase)
+// ]
+// }
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/recordandplay/RBASimulationRecordPage.java b/rba.tool.editor.ui/src/rba/tool/editor/ui/recordandplay/RBASimulationRecordPage.java
new file mode 100644
index 0000000..c55581d
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/recordandplay/RBASimulationRecordPage.java
@@ -0,0 +1,50 @@
+package rba.tool.editor.ui.recordandplay;
+
+import org.eclipse.core.runtime.preferences.InstanceScope;
+import org.eclipse.jface.preference.DirectoryFieldEditor;
+import org.eclipse.jface.preference.FieldEditorPreferencePage;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+import org.eclipse.ui.preferences.ScopedPreferenceStore;
+
+public class RBASimulationRecordPage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
+
+ private DirectoryFieldEditor recordPathBrowser;
+
+ private IPreferenceStore preferenceStore;
+
+ private RBASimulationRecordSettingManager manager = RBASimulationRecordSettingManager.INSTANCE;
+
+ private static final String DESCRIPTION = "RBA Simulation Record Path"; //$NON-NLS-1$
+
+ public RBASimulationRecordPage() {
+ super(GRID);
+ }
+
+ @Override
+ protected void createFieldEditors() {
+ recordPathBrowser = new DirectoryFieldEditor("RbaToolRecordPath", "", getFieldEditorParent());
+ addField(recordPathBrowser);
+ }
+
+ @Override
+ public boolean performOk() {
+ manager.saveRecordFilePath(recordPathBrowser.getStringValue());
+ return super.performOk();
+ }
+
+ @Override
+ public void init(IWorkbench workbench) {
+ setDescription(DESCRIPTION);
+ }
+
+ @Override
+ public IPreferenceStore getPreferenceStore() {
+ if (preferenceStore == null) {
+ preferenceStore = new ScopedPreferenceStore(InstanceScope.INSTANCE, manager.ID_PREFERENCE_NODE);
+ }
+ return preferenceStore;
+ }
+
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/recordandplay/RBASimulationRecordSettingManager.java b/rba.tool.editor.ui/src/rba/tool/editor/ui/recordandplay/RBASimulationRecordSettingManager.java
new file mode 100644
index 0000000..21ff588
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/recordandplay/RBASimulationRecordSettingManager.java
@@ -0,0 +1,71 @@
+package rba.tool.editor.ui.recordandplay;
+
+import org.eclipse.core.runtime.preferences.IEclipsePreferences;
+import org.eclipse.core.runtime.preferences.InstanceScope;
+import org.osgi.service.prefs.Preferences;
+
+
+public class RBASimulationRecordSettingManager {
+
+ public static final RBASimulationRecordSettingManager INSTANCE = new RBASimulationRecordSettingManager();
+
+ public static final String ID_PREFERENCE_NODE = "rba.model.tool"; //$NON-NLS-1$
+
+ private static final String ID_PREFERENCES = "rba.model.tool.recordAndPlay"; //$NON-NLS-1$
+
+ private static final String ID_RECORD_PATH = "RecordFilePath"; //$NON-NLS-1$
+
+ /**
+ * Save record file path
+ * @param path
+ */
+ public void saveRecordFilePath(final String path) {
+ final String oldPath = RBASimulationRecordSettingManager.INSTANCE.getRecordFilePath();
+ if (!equals(oldPath, path)) {
+ IEclipsePreferences preferences = getPreferences();
+ Preferences sub = preferences.node(ID_PREFERENCES);
+ sub.put(ID_RECORD_PATH, path);
+ }
+ }
+
+ /**
+ * Get record file path
+ * @return path
+ */
+ public String getRecordFilePath() {
+ IEclipsePreferences preferences = getPreferences();
+ Preferences sub = preferences.node(ID_PREFERENCES);
+ return sub.get(ID_RECORD_PATH, "");
+ }
+
+ private IEclipsePreferences getPreferences() {
+ return InstanceScope.INSTANCE.getNode(ID_PREFERENCE_NODE);
+ }
+
+ /**
+ * String equality check
+ * @param cs1
+ * @param cs2
+ * @return
+ */
+ private boolean equals(String cs1, String cs2) {
+
+ boolean result = false;
+
+ if (cs1 == cs2) {
+ result = true;
+ }
+ if (cs1 == null || cs2 == null) {
+ result = false;
+ }
+ if (cs1.length() != cs2.length()) {
+ result = false;
+ }
+ if (cs1 instanceof String && cs2 instanceof String) {
+ result = cs1.equals(cs2);
+ }
+
+ return result;
+ }
+
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/resource/RBADocumentResourceSetProvider.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/resource/RBADocumentResourceSetProvider.xtend
new file mode 100644
index 0000000..33cd0dc
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/resource/RBADocumentResourceSetProvider.xtend
@@ -0,0 +1,27 @@
+package rba.tool.editor.ui.resource
+
+import com.google.inject.Singleton
+import org.eclipse.core.resources.IProject
+import org.eclipse.emf.ecore.resource.ResourceSet
+import org.eclipse.swt.widgets.Display
+import org.eclipse.xtext.ui.resource.SimpleResourceSetProvider
+import rba.tool.editor.ui.editor.model.manager.ResourceManagerUI
+import rba.tool.editor.ui.util.UnitOfProgressUtil
+
+@Singleton
+class RBADocumentResourceSetProvider extends SimpleResourceSetProvider {
+
+ override get(IProject project) {
+ val ResourceSet result = super.get(project);
+ if(project !== null) {
+ Display.getDefault().asyncExec(new Runnable() {
+ override run() {
+ if(ResourceManagerUI.INSTANCE.currentProject === null) {
+ UnitOfProgressUtil.doProjectSwitchProgress(project, false);
+ }
+ }
+ });
+ }
+ return result;
+ }
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/resource/RBAModelResourceSetProvider.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/resource/RBAModelResourceSetProvider.xtend
new file mode 100644
index 0000000..5c4a6dd
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/resource/RBAModelResourceSetProvider.xtend
@@ -0,0 +1,37 @@
+package rba.tool.editor.ui.resource
+
+import com.google.inject.Singleton
+import java.util.concurrent.ConcurrentHashMap
+import org.eclipse.core.resources.IProject
+import org.eclipse.emf.ecore.resource.ResourceSet
+import org.eclipse.xtext.ui.resource.SimpleResourceSetProvider
+
+@Singleton
+class RBAModelResourceSetProvider extends SimpleResourceSetProvider {
+
+ private ConcurrentHashMap<IProject, ResourceSet> projectXtextResourceSetMap = new ConcurrentHashMap<IProject, ResourceSet>();
+
+ override get(IProject project) {
+ val ResourceSet result = super.get(project);
+ if(project !== null) {
+ if(projectXtextResourceSetMap.containsKey(project)) {
+ projectXtextResourceSetMap.remove(project);
+ }
+ projectXtextResourceSetMap.put(project, result);
+ }
+ return result;
+ }
+
+ def public ResourceSet getResourceSet(IProject project) {
+ if(project === null) {
+ return get(project);
+ } else {
+ return projectXtextResourceSetMap.get(project) ?: get(project);
+ }
+ }
+
+ def public void setResourceSet(IProject project, ResourceSet resourceSet) {
+ projectXtextResourceSetMap.put(project, resourceSet);
+ }
+
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/resource/RBAModelResourceUIServiceProvider.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/resource/RBAModelResourceUIServiceProvider.xtend
new file mode 100644
index 0000000..fb795a1
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/resource/RBAModelResourceUIServiceProvider.xtend
@@ -0,0 +1,36 @@
+package rba.tool.editor.ui.resource
+
+import com.google.inject.Inject
+import org.eclipse.core.resources.IFile
+import org.eclipse.core.resources.IStorage
+import org.eclipse.core.resources.IWorkspace
+import org.eclipse.emf.common.util.URI
+import org.eclipse.xtext.resource.IResourceServiceProvider
+import org.eclipse.xtext.ui.resource.DefaultResourceUIServiceProvider
+import rba.tool.editor.ui.wizard.ExtendRBAModelProjectCreator
+
+class RBAModelResourceUIServiceProvider extends DefaultResourceUIServiceProvider {
+
+ @Inject private IWorkspace workspace;
+
+ @Inject private ExtendRBAModelProjectCreator projectCreator;
+
+ @Inject public new(IResourceServiceProvider delegate) {
+ super(delegate)
+ }
+
+ override canHandle(URI uri, IStorage storage) {
+ if(!super.canHandle(uri, storage)) {
+ return false;
+ }
+ if(workspace !== null) {
+ if(storage instanceof IFile) {
+ val folderName = URI.decode(if(uri.segmentCount > 3) uri.segment(2) else null);
+ if(!projectCreator.modelFolderName.equals(folderName)) {
+ return false;
+ }
+ }
+ }
+ return true;
+ }
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/syntaxcoloring/RBAModelAntlrTokenToAttributeIdMapper.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/syntaxcoloring/RBAModelAntlrTokenToAttributeIdMapper.xtend
new file mode 100644
index 0000000..f4118b9
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/syntaxcoloring/RBAModelAntlrTokenToAttributeIdMapper.xtend
@@ -0,0 +1,14 @@
+package rba.tool.editor.ui.syntaxcoloring
+
+import org.eclipse.xtext.ui.editor.syntaxcoloring.DefaultAntlrTokenToAttributeIdMapper
+
+class RBAModelAntlrTokenToAttributeIdMapper extends DefaultAntlrTokenToAttributeIdMapper {
+
+ override protected calculateId(String tokenName, int tokenType) {
+ if ("\'Area\'".equals(tokenName)) {
+ return RBAModelHighlightingConfiguration.AREA;
+ }
+ return super.calculateId(tokenName, tokenType);
+ }
+
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/syntaxcoloring/RBAModelHighlightingConfiguration.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/syntaxcoloring/RBAModelHighlightingConfiguration.xtend
new file mode 100644
index 0000000..266be2a
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/syntaxcoloring/RBAModelHighlightingConfiguration.xtend
@@ -0,0 +1,27 @@
+package rba.tool.editor.ui.syntaxcoloring
+
+import org.eclipse.swt.SWT
+import org.eclipse.swt.graphics.RGB
+import org.eclipse.xtext.ui.editor.syntaxcoloring.DefaultHighlightingConfiguration
+import org.eclipse.xtext.ui.editor.syntaxcoloring.IHighlightingConfigurationAcceptor
+import org.eclipse.xtext.ui.editor.utils.TextStyle
+
+class RBAModelHighlightingConfiguration extends DefaultHighlightingConfiguration {
+
+ public static final String AREA = "Area";
+
+ override public void configure(IHighlightingConfigurationAcceptor acceptor) {
+ super.configure(acceptor);
+ acceptor.acceptDefaultHighlighting(AREA, "Area", areaStyle());
+ }
+
+ def public TextStyle areaStyle() {
+ val textStyle = defaultTextStyle().copy();
+ //val color = JFaceResources.getColorRegistry().getRGB(JFacePreferences.ACTIVE_HYPERLINK_COLOR);
+ textStyle.color = new RGB(0, 0, 255);
+ //val backgroundColor = JFaceResources.getColorRegistry().getRGB(JFacePreferences.CONTENT_ASSIST_FOREGROUND_COLOR);
+ //textStyle.backgroundColor = backgroundColor;
+ textStyle.setStyle(SWT.BOLD);
+ return textStyle;
+ }
+} \ No newline at end of file
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/template/RBATemplateApplyModule.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/template/RBATemplateApplyModule.xtend
new file mode 100644
index 0000000..b2fc0fa
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/template/RBATemplateApplyModule.xtend
@@ -0,0 +1,13 @@
+package rba.tool.editor.ui.template
+
+import com.google.inject.Module
+import com.google.inject.Binder
+import org.eclipse.xtext.builder.impl.ToBeBuiltComputer
+
+class RBATemplateApplyModule implements Module {
+
+ override configure(Binder binder) {
+ binder.bind(ToBeBuiltComputer).to(RBATemplateApplyToBeBuiltComputer)
+ }
+
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/template/RBATemplateApplyToBeBuiltComputer.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/template/RBATemplateApplyToBeBuiltComputer.xtend
new file mode 100644
index 0000000..133482d
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/template/RBATemplateApplyToBeBuiltComputer.xtend
@@ -0,0 +1,23 @@
+package rba.tool.editor.ui.template
+
+import javax.inject.Inject
+import org.eclipse.core.resources.IFile
+import org.eclipse.core.resources.IStorage
+import org.eclipse.emf.common.util.URI
+import org.eclipse.xtext.builder.impl.ToBeBuiltComputer
+import org.eclipse.xtext.ui.resource.IStorage2UriMapper
+import rba.tool.editor.util.RBAModelEditorNameUtil
+
+class RBATemplateApplyToBeBuiltComputer extends ToBeBuiltComputer {
+ @Inject
+ private IStorage2UriMapper mapper;
+
+ override protected getUri(IStorage file) {
+ var uri = mapper.getUri(file);
+ var IStorage f = file
+ if (uri !== null && !isValid(uri, f)) {
+ uri = null
+ }
+ return uri;
+ }
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/util/CharacterUtil.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/util/CharacterUtil.xtend
new file mode 100644
index 0000000..28cbe08
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/util/CharacterUtil.xtend
@@ -0,0 +1,10 @@
+package rba.tool.editor.ui.util
+
+import org.eclipse.xtext.Keyword
+
+class CharacterUtil {
+
+ def public static boolean isKeywordWorthyToPropose(Keyword keyword) {
+ return keyword.getValue().length() > 1 && Character.isLetter(keyword.getValue().charAt(0));
+ }
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/util/UnitOfProgressUtil.java b/rba.tool.editor.ui/src/rba/tool/editor/ui/util/UnitOfProgressUtil.java
new file mode 100644
index 0000000..3fd41b2
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/util/UnitOfProgressUtil.java
@@ -0,0 +1,84 @@
+package rba.tool.editor.ui.util;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
+
+import rba.tool.editor.ui.editor.model.manager.ResourceManagerUI;
+import rba.tool.editor.ui.util.concurrent.IUnitOfProgress;
+
+public class UnitOfProgressUtil {
+
+ public static void doProjectSwitchProgress(final IProject project, final boolean showConfirmDialog) throws Exception {
+ IUnitOfProgress.Void<IProject> progress = new IUnitOfProgress.Void<IProject>() {
+ @Override
+ public void process(IProject state) throws Exception {
+ Job projectSwitchJob = new Job("[RBA Tool]- Switch Project") {
+ @Override
+ protected IStatus run(IProgressMonitor monitor) {
+ monitor.beginTask("Switch Project...", 1); //$NON-NLS-1$
+ try {
+ ResourceManagerUI.INSTANCE.switchToProject(state, monitor);
+ } catch (Exception e) {
+ e.printStackTrace();
+ return Status.CANCEL_STATUS;
+ } finally {
+ monitor.done();
+ }
+ return Status.OK_STATUS;
+ }
+
+ @Override
+ public boolean belongsTo(Object family) {
+ return IUnitOfProgress.FAMILY_UNIT_OF_PROGRESS == family;
+ }
+ };
+ projectSwitchJob.schedule();
+ }
+ };
+
+ if (ResourceManagerUI.INSTANCE.doConfirm(project, showConfirmDialog)) {
+ progress.exec(project);
+ }
+ }
+
+ public static void doProjectSwitchProgressWithRunnable(final IProject project, final boolean showConfirmDialog, final Runnable run) throws Exception {
+ IUnitOfProgress.Void<IProject> progress = new IUnitOfProgress.Void<IProject>() {
+ @Override
+ public void process(IProject state) throws Exception {
+ Job projectSwitchJob = new Job("[RBA Tool]- Switch Project") {
+ @Override
+ protected IStatus run(IProgressMonitor monitor) {
+ monitor.beginTask("Switch Project...", 1); //$NON-NLS-1$
+ try {
+ ResourceManagerUI.INSTANCE.switchToProject(state, monitor);
+ if (monitor.isCanceled()) {
+ throw new InterruptedException();
+ }
+ run.run();
+ } catch (Exception e) {
+ e.printStackTrace();
+ return Status.CANCEL_STATUS;
+ } finally {
+ monitor.done();
+ }
+ return Status.OK_STATUS;
+ }
+
+ @Override
+ public boolean belongsTo(Object family) {
+ return IUnitOfProgress.FAMILY_UNIT_OF_PROGRESS == family;
+ }
+ };
+ projectSwitchJob.schedule();
+ }
+ };
+
+ if (ResourceManagerUI.INSTANCE.doConfirm(project, showConfirmDialog)) {
+ progress.exec(project);
+ }
+ }
+
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/util/concurrent/AbstractSwitchProjectProgress.java b/rba.tool.editor.ui/src/rba/tool/editor/ui/util/concurrent/AbstractSwitchProjectProgress.java
new file mode 100644
index 0000000..2d640d3
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/util/concurrent/AbstractSwitchProjectProgress.java
@@ -0,0 +1,40 @@
+package rba.tool.editor.ui.util.concurrent;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.SubMonitor;
+
+import rba.tool.editor.ui.editor.model.manager.ResourceManagerUI;
+
+public abstract class AbstractSwitchProjectProgress<R, P> implements IUnitOfProgress<Object, IProject> {
+
+ private final boolean showConfirmDialog;
+
+ public AbstractSwitchProjectProgress() {
+ this(true);
+ }
+
+ public AbstractSwitchProjectProgress(boolean showConfirmDialog) {
+ this.showConfirmDialog = showConfirmDialog;
+ }
+
+ @Override
+ public R exec(IProject state) throws Exception {
+ SubMonitor progress = SubMonitor.convert(null, 6);
+ if (!ResourceManagerUI.INSTANCE.isCurrentProject(state)) {
+ if (ResourceManagerUI.INSTANCE.doConfirm(state, showConfirmDialog)) {
+ ResourceManagerUI.INSTANCE.switchToProject(state, progress.newChild(2));
+
+ if (progress.isCanceled()) {
+ throw new InterruptedException();
+ }
+ return internalExec(state, progress.newChild(4));
+ } else {
+ throw new InterruptedException();
+ }
+ }
+ return internalExec(state, progress.newChild(4));
+ }
+
+ protected abstract R internalExec(IProject state, IProgressMonitor monitor);
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/util/concurrent/IUnitOfProgress.java b/rba.tool.editor.ui/src/rba/tool/editor/ui/util/concurrent/IUnitOfProgress.java
new file mode 100644
index 0000000..f7141b1
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/util/concurrent/IUnitOfProgress.java
@@ -0,0 +1,18 @@
+package rba.tool.editor.ui.util.concurrent;
+
+public interface IUnitOfProgress<R, P> {
+
+ public static final Object FAMILY_UNIT_OF_PROGRESS = new Object();
+
+ R exec(P state) throws Exception;
+
+ public static abstract class Void<T> implements IUnitOfProgress<Object, T> {
+ @Override
+ public final Object exec(T state) throws Exception {
+ process(state);
+ return null;
+ }
+
+ public abstract void process(T state) throws Exception;
+ }
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/ExtendRBAModelProjectCreator.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/ExtendRBAModelProjectCreator.xtend
new file mode 100644
index 0000000..70114cc
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/ExtendRBAModelProjectCreator.xtend
@@ -0,0 +1,12 @@
+package rba.tool.editor.ui.wizard
+
+import rba.tool.editor.ui.wizard.RBAModelProjectCreator
+import rba.tool.editor.util.RBAModelEditorNameUtil
+
+class ExtendRBAModelProjectCreator extends RBAModelProjectCreator {
+
+ override public getModelFolderName() {
+ return RBAModelEditorNameUtil.BUILD_FOLDER_NAME;
+ }
+
+} \ No newline at end of file
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAEmptyModelNewProjectWizardEx.java b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAEmptyModelNewProjectWizardEx.java
new file mode 100644
index 0000000..f845fa9
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAEmptyModelNewProjectWizardEx.java
@@ -0,0 +1,48 @@
+package rba.tool.editor.ui.wizard;
+
+import java.io.File;
+import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.nio.file.Paths;
+
+import org.apache.commons.io.FileUtils;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.xtext.ui.wizard.IProjectCreator;
+
+import com.google.inject.Inject;
+
+public class RBAEmptyModelNewProjectWizardEx extends RBAModelNewProjectWizardEx {
+
+ private static final String DEFAULT_TEMPLATE_PATH = "RBATool\\empty_project"; //$NON-NLS-1$
+
+ @Inject
+ public RBAEmptyModelNewProjectWizardEx(IProjectCreator projectCreator) {
+ super(projectCreator);
+ }
+
+ @Override
+ protected void copyResources(IProject project) throws IOException, URISyntaxException, CoreException {
+ URL installLocationUrl = Platform.getInstallLocation().getURL();
+ String installLocationPath = new File(installLocationUrl.getPath()).toString();
+
+ java.nio.file.Path runtimePath = Paths.get(installLocationPath, DEFAULT_TEMPLATE_PATH);
+
+ URI locationURI = project.getLocationURI();
+
+ File srcRuntime = new File(runtimePath.toString());
+ File dst = new File(locationURI.getPath());
+
+ if (srcRuntime.exists()) {
+ FileUtils.copyDirectory(srcRuntime, dst);
+ }
+
+ project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
+ }
+
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAModelNewProjectWizardEx.java b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAModelNewProjectWizardEx.java
new file mode 100644
index 0000000..47cda5f
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAModelNewProjectWizardEx.java
@@ -0,0 +1,115 @@
+package rba.tool.editor.ui.wizard;
+
+import java.io.File;
+import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.nio.file.Paths;
+
+import org.apache.commons.io.FileUtils;
+import org.eclipse.core.internal.events.BuildCommand;
+import org.eclipse.core.resources.ICommand;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IProjectDescription;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.ide.IDE;
+import org.eclipse.xtext.ui.wizard.IProjectCreator;
+
+import com.google.inject.Inject;
+
+public class RBAModelNewProjectWizardEx extends RBAModelNewProjectWizard {
+
+ private static final String DEFAULT_TEMPLATE_PATH = "RBATool\\Project"; //$NON-NLS-1$
+
+ @Inject
+ public RBAModelNewProjectWizardEx(IProjectCreator projectCreator) {
+ super(projectCreator);
+ }
+
+ @Override
+ public boolean performFinish() {
+
+ boolean performFinish = super.performFinish();
+
+ String projectName = getMainPage().getProjectName();
+ IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
+
+ try {
+ setProjectSettings(project, projectName);
+ copyResources(project);
+
+ String pathStr = project.getName() + "/model";
+ IFolder ifolder = ResourcesPlugin.getWorkspace().getRoot().getFolder(new Path(pathStr));
+
+ if (ifolder.exists()) {
+ IResource[] members = ifolder.members();
+ if (members.length > 0 && members[0] instanceof IFile) {
+ IFile ifile = (IFile) members[0];
+ IWorkbench workbench = PlatformUI.getWorkbench();
+ IWorkbenchWindow window = workbench.getActiveWorkbenchWindow();
+ try {
+ IDE.openEditor(window.getActivePage(), ifile);
+ } catch (PartInitException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ } catch (IOException e) {
+ e.printStackTrace();
+ } catch (URISyntaxException e) {
+ e.printStackTrace();
+ } catch (CoreException e) {
+ e.printStackTrace();
+ }
+
+ return performFinish;
+ }
+
+ @SuppressWarnings("restriction")
+ private void setProjectSettings(IProject project, String projectName) throws CoreException {
+
+ IProjectDescription description = ResourcesPlugin.getWorkspace().getRoot().getWorkspace().newProjectDescription(projectName);
+ BuildCommand rbacommand = new BuildCommand();
+ rbacommand.setBuilderName("rba.tool.RBAToolBuilder"); //$NON-NLS-1$
+ BuildCommand xcommand = new BuildCommand();
+ xcommand.setBuilderName("org.eclipse.xtext.ui.shared.xtextBuilder"); //$NON-NLS-1$
+ ICommand[] commands = new BuildCommand[] { rbacommand, xcommand };
+ description.setBuildSpec(commands);
+
+ String[] natures = new String[] { "org.eclipse.xtext.ui.shared.xtextNature" }; //$NON-NLS-1$ //$NON-NLS-2$
+ description.setNatureIds(natures);
+
+ project.setDescription(description, new NullProgressMonitor());
+ }
+
+ protected void copyResources(IProject project) throws IOException, URISyntaxException, CoreException {
+ URL installLocationUrl = Platform.getInstallLocation().getURL();
+ String installLocationPath = new File(installLocationUrl.getPath()).toString();
+
+ java.nio.file.Path runtimePath = Paths.get(installLocationPath, DEFAULT_TEMPLATE_PATH);
+
+ URI locationURI = project.getLocationURI();
+
+ File srcRuntime = new File(runtimePath.toString());
+ File dst = new File(locationURI.getPath());
+
+ if (srcRuntime.exists()) {
+ FileUtils.copyDirectory(srcRuntime, dst);
+ }
+
+ project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
+ }
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAModelNewProjectWizardInitialContents.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAModelNewProjectWizardInitialContents.xtend
new file mode 100644
index 0000000..61ded06
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAModelNewProjectWizardInitialContents.xtend
@@ -0,0 +1,12 @@
+/*
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.ui.wizard
+
+import org.eclipse.xtext.generator.IFileSystemAccess2
+
+class RBAModelNewProjectWizardInitialContents {
+
+ def generateInitialContents(IFileSystemAccess2 fsa) {
+ }
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAModelProjectInfo.java b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAModelProjectInfo.java
new file mode 100644
index 0000000..7d6894e
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAModelProjectInfo.java
@@ -0,0 +1,10 @@
+/*
+ * generated by Xtext 2.12.0
+ */
+package rba.tool.editor.ui.wizard;
+
+import org.eclipse.xtext.ui.wizard.DefaultProjectInfo;
+
+public class RBAModelProjectInfo extends DefaultProjectInfo {
+
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAModelWizardNewProjectCreationPage.java b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAModelWizardNewProjectCreationPage.java
new file mode 100644
index 0000000..f207276
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAModelWizardNewProjectCreationPage.java
@@ -0,0 +1,14 @@
+/*
+ * generated by Xtext 2.12.0
+ */
+package rba.tool.editor.ui.wizard;
+
+import org.eclipse.ui.dialogs.WizardNewProjectCreationPage;
+
+public class RBAModelWizardNewProjectCreationPage extends WizardNewProjectCreationPage {
+
+ public RBAModelWizardNewProjectCreationPage(String pageName) {
+ super(pageName);
+ }
+
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBATemplateModelNewProjectWizardInitialContents.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBATemplateModelNewProjectWizardInitialContents.xtend
new file mode 100644
index 0000000..d2c9c92
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBATemplateModelNewProjectWizardInitialContents.xtend
@@ -0,0 +1,26 @@
+/*
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.ui.wizard
+
+
+import com.google.inject.Inject
+import org.eclipse.xtext.generator.IFileSystemAccess2
+import org.eclipse.xtext.resource.FileExtensionProvider
+
+class RBATemplateModelNewProjectWizardInitialContents {
+ @Inject
+ FileExtensionProvider fileExtensionProvider
+
+ def generateInitialContents(IFileSystemAccess2 fsa) {
+ fsa.generateFile(
+ "src/model/Model." + fileExtensionProvider.primaryFileExtension,
+ '''
+ /*
+ * This is an example model
+ */
+ Hello Xtext!
+ '''
+ )
+ }
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBATemplateModelProjectInfo.java b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBATemplateModelProjectInfo.java
new file mode 100644
index 0000000..c22d512
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBATemplateModelProjectInfo.java
@@ -0,0 +1,10 @@
+/*
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.ui.wizard;
+
+import org.eclipse.xtext.ui.wizard.DefaultProjectInfo;
+
+public class RBATemplateModelProjectInfo extends DefaultProjectInfo {
+
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBATemplateModelWizardNewProjectCreationPage.java b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBATemplateModelWizardNewProjectCreationPage.java
new file mode 100644
index 0000000..27da49b
--- /dev/null
+++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBATemplateModelWizardNewProjectCreationPage.java
@@ -0,0 +1,14 @@
+/*
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.ui.wizard;
+
+import org.eclipse.ui.dialogs.WizardNewProjectCreationPage;
+
+public class RBATemplateModelWizardNewProjectCreationPage extends WizardNewProjectCreationPage {
+
+ public RBATemplateModelWizardNewProjectCreationPage(String pageName) {
+ super(pageName);
+ }
+
+}
diff --git a/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/.gitignore b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/.gitignore
new file mode 100644
index 0000000..2dce6db
--- /dev/null
+++ b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/.gitignore
@@ -0,0 +1,6 @@
+/.RBAModelUiModule.java._trace
+/.RBAModelUiModule.xtendbin
+/RBAModelUiModule.java
+/.ExtensionEditorActivator.java._trace
+/.RBATemplateModelUiModule.java._trace
+/RBATemplateModelUiModule.java
diff --git a/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/activator/.gitignore b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/activator/.gitignore
new file mode 100644
index 0000000..ad00ef9
--- /dev/null
+++ b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/activator/.gitignore
@@ -0,0 +1,2 @@
+/.ExtensionEditorActivator.java._trace
+/ExtensionEditorActivator.java
diff --git a/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/builder/.gitignore b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/builder/.gitignore
new file mode 100644
index 0000000..13880eb
--- /dev/null
+++ b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/builder/.gitignore
@@ -0,0 +1,4 @@
+/.RBAModelBuilderParticipant.java._trace
+/RBAModelBuilderParticipant.java
+/.RBAModelShouldGenerate.java._trace
+/RBAModelShouldGenerate.java
diff --git a/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/builder/resourceloader/.gitignore b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/builder/resourceloader/.gitignore
new file mode 100644
index 0000000..b0dffca
--- /dev/null
+++ b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/builder/resourceloader/.gitignore
@@ -0,0 +1,2 @@
+/.RBAModelResourceLoader.java._trace
+/RBAModelResourceLoader.java
diff --git a/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/compare/.gitignore b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/compare/.gitignore
new file mode 100644
index 0000000..5dfcbce
--- /dev/null
+++ b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/compare/.gitignore
@@ -0,0 +1,2 @@
+/.RBAModelStreamContentDocumentProvider.java._trace
+/RBAModelStreamContentDocumentProvider.java
diff --git a/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/contentassist/.gitignore b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/contentassist/.gitignore
new file mode 100644
index 0000000..d362915
--- /dev/null
+++ b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/contentassist/.gitignore
@@ -0,0 +1,11 @@
+/.RBAModelProposalProvider.java._trace
+/.RBAModelProposalProvider.xtendbin
+/RBAModelProposalProvider.java
+/.RBAModelLastSegmentFinder.java._trace
+/.RBAModelLastSegmentFinder.xtendbin
+/RBAModelLastSegmentFinder.java
+/.RBAModelExpressionScopeCreator.java._trace
+/.RBAModelExpressionScopeCreator.xtendbin
+/RBAModelExpressionScopeCreator.java
+/.RBATemplateModelProposalProvider.java._trace
+/RBATemplateModelProposalProvider.java
diff --git a/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/.gitignore b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/.gitignore
new file mode 100644
index 0000000..64d912e
--- /dev/null
+++ b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/.gitignore
@@ -0,0 +1,3 @@
+/.RBAModelDirtyStateEditorSupport.java._trace
+/.RBAModelDirtyStateEditorSupport.xtendbin
+/RBAModelDirtyStateEditorSupport.java \ No newline at end of file
diff --git a/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/model/.gitignore b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/model/.gitignore
new file mode 100644
index 0000000..016c829
--- /dev/null
+++ b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/model/.gitignore
@@ -0,0 +1,6 @@
+/.RBAModelDocumentProvider.java._trace
+/.RBAModelDocumentProvider.xtendbin
+/RBAModelDocumentProvider.java
+/.RBAModelResourceForIEditorInputFactory.java._trace
+/.RBAModelResourceForIEditorInputFactory.xtendbin
+/RBAModelResourceForIEditorInputFactory.java
diff --git a/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/model/edit/.gitignore b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/model/edit/.gitignore
new file mode 100644
index 0000000..7e2c071
--- /dev/null
+++ b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/model/edit/.gitignore
@@ -0,0 +1,3 @@
+/.RBAModelTextEditComposer.java._trace
+/.RBAModelTextEditComposer.xtendbin
+/RBAModelTextEditComposer.java
diff --git a/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/model/edit/processor/.gitignore b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/model/edit/processor/.gitignore
new file mode 100644
index 0000000..2e11919
--- /dev/null
+++ b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/model/edit/processor/.gitignore
@@ -0,0 +1,3 @@
+/.RBAModelProcessorUtil.java._trace
+/.RBAModelProcessorUtil.xtendbin
+/RBAModelProcessorUtil.java
diff --git a/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/model/edit/refactoring/.gitignore b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/model/edit/refactoring/.gitignore
new file mode 100644
index 0000000..fe606f6
--- /dev/null
+++ b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/model/edit/refactoring/.gitignore
@@ -0,0 +1,7 @@
+/.RBAModelRenameRefactoringController.java._trace
+/.RBAModelRenameRefactoringController.xtendbin
+/RBAModelRenameRefactoringController.java
+/.RBAModelRenameRefactoringSupport.java._trace
+/.RBAModelRenameRefactoringSupport.xtendbin
+/RBAModelRenameRefactoringSupport.java
+/.RBAModelSyncUtil.java._trace
diff --git a/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/model/manager/.gitignore b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/model/manager/.gitignore
new file mode 100644
index 0000000..827d3f2
--- /dev/null
+++ b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/model/manager/.gitignore
@@ -0,0 +1,3 @@
+/.ResourceManagerUI.java._trace
+/.ResourceManagerUI.xtendbin
+/ResourceManagerUI.java
diff --git a/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/reconciler/.gitignore b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/reconciler/.gitignore
new file mode 100644
index 0000000..69893f7
--- /dev/null
+++ b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/reconciler/.gitignore
@@ -0,0 +1,3 @@
+/.RBAModelReconciler.java._trace
+/.DocumentListener.java._trace
+/.TextInputListener.java._trace
diff --git a/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/templates/.gitignore b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/templates/.gitignore
new file mode 100644
index 0000000..2a6c97d
--- /dev/null
+++ b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/templates/.gitignore
@@ -0,0 +1,10 @@
+/.RBAModelTemplateStore.java._trace
+/.RBAModelTemplateRegistry.java._trace
+/.TemplateRegistry.java._trace
+/.RBAModelTemplateProposalProvider.java._trace
+/.RBAModelTemplateContext.java._trace
+/RBAModelTemplateStore.java
+/RBAModelTemplateRegistry.java
+/TemplateRegistry.java
+/RBAModelTemplateProposalProvider.java
+/RBAModelTemplateContext.java
diff --git a/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/labeling/.gitignore b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/labeling/.gitignore
new file mode 100644
index 0000000..e290a94
--- /dev/null
+++ b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/labeling/.gitignore
@@ -0,0 +1,10 @@
+/.RBAModelDescriptionLabelProvider.java._trace
+/.RBAModelDescriptionLabelProvider.xtendbin
+/.RBAModelLabelProvider.java._trace
+/.RBAModelLabelProvider.xtendbin
+/RBAModelDescriptionLabelProvider.java
+/RBAModelLabelProvider.java
+/.RBATemplateModelDescriptionLabelProvider.java._trace
+/.RBATemplateModelLabelProvider.java._trace
+/RBATemplateModelDescriptionLabelProvider.java
+/RBATemplateModelLabelProvider.java
diff --git a/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/marker/.gitignore b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/marker/.gitignore
new file mode 100644
index 0000000..e648b3a
--- /dev/null
+++ b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/marker/.gitignore
@@ -0,0 +1,6 @@
+/.PositionInfo.java._trace
+/.RBAModelMarkerCreator.java._trace
+/.RBAModelResourceUIValidatorExtension.java._trace
+/PositionInfo.java
+/RBAModelMarkerCreator.java
+/RBAModelResourceUIValidatorExtension.java
diff --git a/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/opener/.gitignore b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/opener/.gitignore
new file mode 100644
index 0000000..2401cda
--- /dev/null
+++ b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/opener/.gitignore
@@ -0,0 +1,2 @@
+/.RBAModelURIEditorOpener.java._trace
+/RBAModelURIEditorOpener.java
diff --git a/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/outline/.gitignore b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/outline/.gitignore
new file mode 100644
index 0000000..7b10163
--- /dev/null
+++ b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/outline/.gitignore
@@ -0,0 +1,5 @@
+/.RBAModelOutlineTreeProvider.java._trace
+/.RBAModelOutlineTreeProvider.xtendbin
+/RBAModelOutlineTreeProvider.java
+/.RBATemplateModelOutlineTreeProvider.java._trace
+/RBATemplateModelOutlineTreeProvider.java
diff --git a/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/quickfix/.gitignore b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/quickfix/.gitignore
new file mode 100644
index 0000000..5b0de15
--- /dev/null
+++ b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/quickfix/.gitignore
@@ -0,0 +1,5 @@
+/.RBAModelQuickfixProvider.java._trace
+/.RBAModelQuickfixProvider.xtendbin
+/RBAModelQuickfixProvider.java
+/.RBATemplateModelQuickfixProvider.java._trace
+/RBATemplateModelQuickfixProvider.java
diff --git a/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/resource/.gitignore b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/resource/.gitignore
new file mode 100644
index 0000000..f334c45
--- /dev/null
+++ b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/resource/.gitignore
@@ -0,0 +1,9 @@
+/.RBAModelResourceUIServiceProvider.java._trace
+/.RBAModelResourceUIServiceProvider.xtendbin
+/RBAModelResourceUIServiceProvider.java
+/.RBAModelResourceSetProvider.java._trace
+/.RBAModelResourceSetProvider.xtendbin
+/RBAModelResourceSetProvider.java
+/.RBADocumentResourceSetProvider.java._trace
+/.RBADocumentResourceSetProvider.xtendbin
+/RBADocumentResourceSetProvider.java
diff --git a/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/syntaxcoloring/.gitignore b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/syntaxcoloring/.gitignore
new file mode 100644
index 0000000..a3adb77
--- /dev/null
+++ b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/syntaxcoloring/.gitignore
@@ -0,0 +1,4 @@
+/.RBAModelHighlightingConfiguration.java._trace
+/.RBAModelAntlrTokenToAttributeIdMapper.java._trace
+/RBAModelAntlrTokenToAttributeIdMapper.java
+/RBAModelHighlightingConfiguration.java
diff --git a/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/template/.gitignore b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/template/.gitignore
new file mode 100644
index 0000000..0e2212d
--- /dev/null
+++ b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/template/.gitignore
@@ -0,0 +1,9 @@
+/.RBATemplateApplyModule.java._trace
+/.RBATemplateApplyToBeBuiltComputer.java._trace
+/.RBATemplateTool.java._trace
+/RBATemplateApplyModule.java
+/RBATemplateApplyToBeBuiltComputer.java
+/RBATemplateTool.java
+/.AdjustPositionInfo.java._trace
+/.InnerTemplate.java._trace
+/.StereoTemplate.java._trace
diff --git a/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/util/.gitignore b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/util/.gitignore
new file mode 100644
index 0000000..8b8706b
--- /dev/null
+++ b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/util/.gitignore
@@ -0,0 +1,2 @@
+/.CharacterUtil.java._trace
+/CharacterUtil.java
diff --git a/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/wizard/.gitignore b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/wizard/.gitignore
new file mode 100644
index 0000000..ba1388f
--- /dev/null
+++ b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/wizard/.gitignore
@@ -0,0 +1,7 @@
+/.RBAModelNewProjectWizardInitialContents.java._trace
+/.RBAModelNewProjectWizardInitialContents.xtendbin
+/RBAModelNewProjectWizardInitialContents.java
+/.ExtendRBAModelProjectCreator.java._trace
+/ExtendRBAModelProjectCreator.java
+/.RBATemplateModelNewProjectWizardInitialContents.java._trace
+/RBATemplateModelNewProjectWizardInitialContents.java
diff --git a/rba.tool.editor/.antlr-generator-3.2.0-patch.jar b/rba.tool.editor/.antlr-generator-3.2.0-patch.jar
new file mode 100644
index 0000000..90516fd
--- /dev/null
+++ b/rba.tool.editor/.antlr-generator-3.2.0-patch.jar
Binary files differ
diff --git a/rba.tool.editor/.classpath b/rba.tool.editor/.classpath
new file mode 100644
index 0000000..9081d4f
--- /dev/null
+++ b/rba.tool.editor/.classpath
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="src-gen"/>
+ <classpathentry kind="src" path="xtend-gen"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/rba.tool.editor/.launch/Generate RBAModel (rba) Language Infrastructure.launch b/rba.tool.editor/.launch/Generate RBAModel (rba) Language Infrastructure.launch
new file mode 100644
index 0000000..88dd099
--- /dev/null
+++ b/rba.tool.editor/.launch/Generate RBAModel (rba) Language Infrastructure.launch
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.emf.mwe2.launch.Mwe2LaunchConfigurationType">
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/rba.tool.editor"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="4"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
+<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
+<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${working_set:&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;resources&gt;&#10;&lt;item path=&quot;/rba.tool.editor&quot; type=&quot;4&quot;/&gt;&#10;&lt;item path=&quot;/rba.tool.editor.ide&quot; type=&quot;4&quot;/&gt;&#10;&lt;item path=&quot;/rba.tool.editor.ui&quot; type=&quot;4&quot;/&gt;&#10;&lt;item path=&quot;/rba.tool.editor.tests&quot; type=&quot;4&quot;/&gt;&#10;&lt;item path=&quot;/rba.tool.editor.ui.tests&quot; type=&quot;4&quot;/&gt;&#10;&lt;item path=&quot;/rba.tool.editor.tests&quot; type=&quot;4&quot;/&gt;&#10;&lt;item path=&quot;/rba.tool.editor.ui.tests&quot; type=&quot;4&quot;/&gt;&#10;;&lt;/resources&gt;}"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="rba.tool.editor.GenerateRBAModel"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="rba.tool.editor"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx512m"/>
+</launchConfiguration>
diff --git a/rba.tool.editor/.launch/Launch Runtime Eclipse.launch b/rba.tool.editor/.launch/Launch Runtime Eclipse.launch
new file mode 100644
index 0000000..0da2e1f
--- /dev/null
+++ b/rba.tool.editor/.launch/Launch Runtime Eclipse.launch
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.RuntimeWorkbench">
+<booleanAttribute key="append.args" value="true"/>
+<booleanAttribute key="askclear" value="true"/>
+<booleanAttribute key="automaticAdd" value="true"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bad_container_name" value="/rba.tool.editor/.launch/"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="false"/>
+<booleanAttribute key="clearws" value="false"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/Launch Runtime Eclipse"/>
+<booleanAttribute key="default" value="true"/>
+<booleanAttribute key="includeOptional" value="true"/>
+<stringAttribute key="location" value="${workspace_loc}/../runtime-EclipseXtext"/>
+<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
+<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
+<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xms1024m -Xmx4096m"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.eclipse.platform.ide"/>
+<booleanAttribute key="show_selected_only" value="false"/>
+<stringAttribute key="templateConfig" value="${target_home}/configuration/config.ini"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useCustomFeatures" value="false"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="true"/>
+<booleanAttribute key="useProduct" value="true"/>
+<booleanAttribute key="usefeatures" value="false"/>
+</launchConfiguration>
diff --git a/rba.tool.editor/.project b/rba.tool.editor/.project
new file mode 100644
index 0000000..0ea57cf
--- /dev/null
+++ b/rba.tool.editor/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>rba.tool.editor</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <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>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/rba.tool.editor/.settings/org.eclipse.core.resources.prefs b/rba.tool.editor/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/rba.tool.editor/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/rba.tool.editor/.settings/org.eclipse.jdt.core.prefs b/rba.tool.editor/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..0c68a61
--- /dev/null
+++ b/rba.tool.editor/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/rba.tool.editor/META-INF/MANIFEST.MF b/rba.tool.editor/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..4f9119c
--- /dev/null
+++ b/rba.tool.editor/META-INF/MANIFEST.MF
@@ -0,0 +1,51 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-Vendor: %providerName
+Bundle-Version: 1.0.0.qualifier
+Bundle-SymbolicName: rba.tool.editor; singleton:=true
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.eclipse.xtext;visibility:=reexport,
+ org.eclipse.xtext.xbase;visibility:=reexport,
+ org.eclipse.equinox.common;bundle-version="3.5.0",
+ org.eclipse.emf.ecore,
+ org.eclipse.xtext.xbase.lib;bundle-version="2.13.0",
+ org.antlr.runtime,
+ org.eclipse.xtext.util,
+ org.eclipse.xtend.lib;bundle-version="2.13.0",
+ org.eclipse.emf.common,
+ org.eclipse.core.resources,
+ org.eclipse.osgi,
+ org.eclipse.emf.workspace;visibility:=reexport,
+ org.eclipse.jface,
+ rba.model.core;visibility:=reexport,
+ rba.model.core.edit;visibility:=reexport,
+ rba.model.sound;visibility:=reexport,
+ rba.model.sound.edit;visibility:=reexport,
+ rba.model.view;visibility:=reexport,
+ rba.model.view.edit;visibility:=reexport,
+ org.eclipse.xtext.generator;visibility:=reexport,
+ rba.tool.lib.groovy
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: rba.tool.editor,
+ rba.tool.editor.formatting2,
+ rba.tool.editor.generator,
+ rba.tool.editor.generator.java,
+ rba.tool.editor.generator.json,
+ rba.tool.editor.generator.rtmodel,
+ rba.tool.editor.generator.z3,
+ rba.tool.editor.model.manager,
+ rba.tool.editor.parser.antlr,
+ rba.tool.editor.parser.antlr.internal,
+ rba.tool.editor.rbaEditorModel,
+ rba.tool.editor.rbaEditorModel.impl,
+ rba.tool.editor.rbaEditorModel.util,
+ rba.tool.editor.resource,
+ rba.tool.editor.scoping,
+ rba.tool.editor.serializer,
+ rba.tool.editor.services,
+ rba.tool.editor.util,
+ rba.tool.editor.validation,
+ rba.tool.editor.validation.validators;x-friends:="rba.tool.editor.tests"
+Import-Package: org.apache.log4j
+Bundle-Localization: plugin
diff --git a/rba.tool.editor/build.properties b/rba.tool.editor/build.properties
new file mode 100644
index 0000000..a496e45
--- /dev/null
+++ b/rba.tool.editor/build.properties
@@ -0,0 +1,25 @@
+source.. = src/,\
+ src-gen/,\
+ xtend-gen/
+bin.includes = model/generated/,\
+ .,\
+ META-INF/,\
+ plugin.xml,\
+ schema/,\
+ build.properties,\
+ plugin.properties
+bin.excludes = **/*.mwe2,\
+ **/*.xtend
+additional.bundles = org.eclipse.xtext.xbase,\
+ org.eclipse.xtext.common.types,\
+ org.eclipse.xtext.xtext.generator,\
+ org.eclipse.emf.codegen.ecore,\
+ org.eclipse.emf.mwe.utils,\
+ org.eclipse.emf.mwe2.launch,\
+ org.eclipse.emf.mwe2.lib,\
+ org.objectweb.asm,\
+ org.apache.commons.logging,\
+ org.apache.log4j,\
+ com.ibm.icu,\
+ org.eclipse.xtext.generator
+javacDefaultEncoding.. = UTF-8
diff --git a/rba.tool.editor/model/generated/RBAModel.ecore b/rba.tool.editor/model/generated/RBAModel.ecore
new file mode 100644
index 0000000..3167d4b
--- /dev/null
+++ b/rba.tool.editor/model/generated/RBAModel.ecore
@@ -0,0 +1,24 @@
+<?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="rbaEditorModel" nsURI="http://www.denso.com/ict/rbatooleditor"
+ nsPrefix="rbaEditorModel">
+ <eClassifiers xsi:type="ecore:EClass" name="TopLevel">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="project" upperBound="-1"
+ eType="ecore:EClass platform:/resource/rba.model.core/model/rbacore.ecore#//Project"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="imports" upperBound="-1"
+ eType="#//Import" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="packages" upperBound="-1"
+ eType="ecore:EClass platform:/resource/rba.model.core/model/rbacore.ecore#//Package"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Import">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="importedNamespace" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CTag" eSuperTypes="platform:/resource/rba.model.core/model/rbacore.ecore#//Tag"/>
+ <eClassifiers xsi:type="ecore:EClass" name="MemberFeatureReference" eSuperTypes="platform:/resource/rba.model.core/model/rbacore.ecore#//ObjectReference">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="operand" upperBound="-1"
+ eType="ecore:EClass platform:/resource/rba.model.core/model/rbacore.ecore#//ObjectReference"
+ containment="true"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/rba.tool.editor/model/generated/RBAModel.genmodel b/rba.tool.editor/model/generated/RBAModel.genmodel
new file mode 100644
index 0000000..4e794fb
--- /dev/null
+++ b/rba.tool.editor/model/generated/RBAModel.genmodel
@@ -0,0 +1,22 @@
+<?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" copyrightText="generated by Xtext 2.13.0" modelDirectory="/rba.tool.editor/src-gen"
+ modelPluginID="rba.tool.editor" forceOverwrite="true" modelName="RBAModel" updateClasspath="false"
+ rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container" complianceLevel="6.0"
+ copyrightFields="false" runtimeVersion="2.13" usedGenPackages="platform:/resource/rba.model.core/model/rbacore.genmodel#//core">
+ <genPackages prefix="RbaEditorModel" basePackage="rba.tool.editor" disposableProviderFactory="true"
+ fileExtensions="rba" ecorePackage="RBAModel.ecore#/">
+ <genClasses ecoreClass="RBAModel.ecore#//TopLevel">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference RBAModel.ecore#//TopLevel/project"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference RBAModel.ecore#//TopLevel/imports"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference RBAModel.ecore#//TopLevel/packages"/>
+ </genClasses>
+ <genClasses ecoreClass="RBAModel.ecore#//Import">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute RBAModel.ecore#//Import/importedNamespace"/>
+ </genClasses>
+ <genClasses ecoreClass="RBAModel.ecore#//CTag"/>
+ <genClasses ecoreClass="RBAModel.ecore#//MemberFeatureReference">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference RBAModel.ecore#//MemberFeatureReference/operand"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/rba.tool.editor/plugin.properties b/rba.tool.editor/plugin.properties
new file mode 100644
index 0000000..e13e0a5
--- /dev/null
+++ b/rba.tool.editor/plugin.properties
@@ -0,0 +1,2 @@
+pluginName = RBA Tool Editor
+providerName=DENSO CORPORATION \ No newline at end of file
diff --git a/rba.tool.editor/plugin.xml b/rba.tool.editor/plugin.xml
new file mode 100644
index 0000000..90b4225
--- /dev/null
+++ b/rba.tool.editor/plugin.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+<plugin>
+ <extension-point id="rbaToolEditorExtensionModule" name="rbaToolEditorExtensionModule" schema="schema/rbaToolEditorExtensionModule.exsd"/>
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <package
+ uri = "http://www.denso.com/ict/rbatooleditor"
+ class = "rba.tool.editor.rbaEditorModel.RbaEditorModelPackage"
+ genModel = "model/generated/RBAModel.genmodel" />
+ </extension>
+</plugin>
diff --git a/rba.tool.editor/plugin.xml_gen b/rba.tool.editor/plugin.xml_gen
new file mode 100644
index 0000000..2636e39
--- /dev/null
+++ b/rba.tool.editor/plugin.xml_gen
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+<plugin>
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <package
+ uri = "http://www.denso.com/ict/rbatooleditor"
+ class = "rba.tool.editor.rbaEditorModel.RbaEditorModelPackage"
+ genModel = "model/generated/RBAModel.genmodel" />
+ </extension>
+</plugin>
diff --git a/rba.tool.editor/schema/rbaToolEditorExtensionModule.exsd b/rba.tool.editor/schema/rbaToolEditorExtensionModule.exsd
new file mode 100644
index 0000000..901f29e
--- /dev/null
+++ b/rba.tool.editor/schema/rbaToolEditorExtensionModule.exsd
@@ -0,0 +1,99 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="rba.tool.editor" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="rba.tool.editor" id="rbaToolEditorExtensionModule" name="rbaToolEditorExtensionModule"/>
+ </appInfo>
+ <documentation>
+ [Enter description of this extension point.]
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <annotation>
+ <appInfo>
+ <meta.element />
+ </appInfo>
+ </annotation>
+ <complexType>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="extensionModule">
+ <complexType>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn=":com.google.inject.Module"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="since"/>
+ </appInfo>
+ <documentation>
+ [Enter the first release in which this extension point appears.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ [Enter extension point usage example here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiinfo"/>
+ </appInfo>
+ <documentation>
+ [Enter API information here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="implementation"/>
+ </appInfo>
+ <documentation>
+ [Enter information about supplied implementation of this extension point.]
+ </documentation>
+ </annotation>
+
+
+</schema>
diff --git a/rba.tool.editor/src-gen/rba/tool/editor/AbstractRBAModelRuntimeModule.java b/rba.tool.editor/src-gen/rba/tool/editor/AbstractRBAModelRuntimeModule.java
new file mode 100644
index 0000000..ea17282
--- /dev/null
+++ b/rba.tool.editor/src-gen/rba/tool/editor/AbstractRBAModelRuntimeModule.java
@@ -0,0 +1,209 @@
+/*
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor;
+
+import com.google.inject.Binder;
+import com.google.inject.Provider;
+import com.google.inject.name.Names;
+import java.util.Properties;
+import org.eclipse.xtext.Constants;
+import org.eclipse.xtext.IGrammarAccess;
+import org.eclipse.xtext.formatting2.FormatterPreferenceValuesProvider;
+import org.eclipse.xtext.formatting2.FormatterPreferences;
+import org.eclipse.xtext.formatting2.IFormatter2;
+import org.eclipse.xtext.naming.IQualifiedNameProvider;
+import org.eclipse.xtext.naming.SimpleNameProvider;
+import org.eclipse.xtext.parser.IParser;
+import org.eclipse.xtext.parser.ITokenToStringConverter;
+import org.eclipse.xtext.parser.antlr.AntlrTokenDefProvider;
+import org.eclipse.xtext.parser.antlr.AntlrTokenToStringConverter;
+import org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider;
+import org.eclipse.xtext.parser.antlr.ITokenDefProvider;
+import org.eclipse.xtext.parser.antlr.IUnorderedGroupHelper;
+import org.eclipse.xtext.parser.antlr.Lexer;
+import org.eclipse.xtext.parser.antlr.LexerBindings;
+import org.eclipse.xtext.parser.antlr.LexerProvider;
+import org.eclipse.xtext.parser.antlr.UnorderedGroupHelper;
+import org.eclipse.xtext.preferences.IPreferenceValuesProvider;
+import org.eclipse.xtext.resource.IContainer;
+import org.eclipse.xtext.resource.IResourceDescriptions;
+import org.eclipse.xtext.resource.containers.IAllContainersState;
+import org.eclipse.xtext.resource.containers.ResourceSetBasedAllContainersStateProvider;
+import org.eclipse.xtext.resource.containers.StateBasedContainerManager;
+import org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider;
+import org.eclipse.xtext.resource.impl.ResourceSetBasedResourceDescriptions;
+import org.eclipse.xtext.scoping.IGlobalScopeProvider;
+import org.eclipse.xtext.scoping.IScopeProvider;
+import org.eclipse.xtext.scoping.IgnoreCaseLinking;
+import org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider;
+import org.eclipse.xtext.scoping.impl.DefaultGlobalScopeProvider;
+import org.eclipse.xtext.scoping.impl.ImportedNamespaceAwareLocalScopeProvider;
+import org.eclipse.xtext.serializer.ISerializer;
+import org.eclipse.xtext.serializer.impl.Serializer;
+import org.eclipse.xtext.serializer.sequencer.ISemanticSequencer;
+import org.eclipse.xtext.serializer.sequencer.ISyntacticSequencer;
+import org.eclipse.xtext.service.DefaultRuntimeModule;
+import org.eclipse.xtext.service.SingletonBinding;
+import rba.tool.editor.formatting2.RBAModelFormatter;
+import rba.tool.editor.parser.antlr.RBAModelAntlrTokenFileProvider;
+import rba.tool.editor.parser.antlr.RBAModelParser;
+import rba.tool.editor.parser.antlr.internal.InternalRBAModelLexer;
+import rba.tool.editor.scoping.RBAModelScopeProvider;
+import rba.tool.editor.serializer.RBAModelSemanticSequencer;
+import rba.tool.editor.serializer.RBAModelSyntacticSequencer;
+import rba.tool.editor.services.RBAModelGrammarAccess;
+import rba.tool.editor.validation.RBAModelValidator;
+
+/**
+ * Manual modifications go to {@link RBAModelRuntimeModule}.
+ */
+@SuppressWarnings("all")
+public abstract class AbstractRBAModelRuntimeModule extends DefaultRuntimeModule {
+
+ protected Properties properties = null;
+
+ @Override
+ public void configure(Binder binder) {
+ properties = tryBindProperties(binder, "rba/tool/editor/RBAModel.properties");
+ super.configure(binder);
+ }
+
+ public void configureLanguageName(Binder binder) {
+ binder.bind(String.class).annotatedWith(Names.named(Constants.LANGUAGE_NAME)).toInstance("rba.tool.editor.RBAModel");
+ }
+
+ 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("rba");
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.grammarAccess.GrammarAccessFragment2
+ public ClassLoader bindClassLoaderToInstance() {
+ return getClass().getClassLoader();
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.grammarAccess.GrammarAccessFragment2
+ public Class<? extends IGrammarAccess> bindIGrammarAccess() {
+ return RBAModelGrammarAccess.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.serializer.SerializerFragment2
+ public Class<? extends ISemanticSequencer> bindISemanticSequencer() {
+ return RBAModelSemanticSequencer.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.serializer.SerializerFragment2
+ public Class<? extends ISyntacticSequencer> bindISyntacticSequencer() {
+ return RBAModelSyntacticSequencer.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.serializer.SerializerFragment2
+ public Class<? extends ISerializer> bindISerializer() {
+ return Serializer.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+ public Class<? extends IParser> bindIParser() {
+ return RBAModelParser.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+ public Class<? extends ITokenToStringConverter> bindITokenToStringConverter() {
+ return AntlrTokenToStringConverter.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+ public Class<? extends IAntlrTokenFileProvider> bindIAntlrTokenFileProvider() {
+ return RBAModelAntlrTokenFileProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+ public Class<? extends Lexer> bindLexer() {
+ return InternalRBAModelLexer.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+ public Class<? extends ITokenDefProvider> bindITokenDefProvider() {
+ return AntlrTokenDefProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+ public Provider<? extends InternalRBAModelLexer> provideInternalRBAModelLexer() {
+ return LexerProvider.create(InternalRBAModelLexer.class);
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+ public void configureRuntimeLexer(Binder binder) {
+ binder.bind(Lexer.class)
+ .annotatedWith(Names.named(LexerBindings.RUNTIME))
+ .to(InternalRBAModelLexer.class);
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+ public Class<? extends IUnorderedGroupHelper> bindIUnorderedGroupHelper() {
+ return UnorderedGroupHelper.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.validation.ValidatorFragment2
+ @SingletonBinding(eager=true)
+ public Class<? extends RBAModelValidator> bindRBAModelValidator() {
+ return RBAModelValidator.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.formatting.Formatter2Fragment2
+ public Class<? extends IFormatter2> bindIFormatter2() {
+ return RBAModelFormatter.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.formatting.Formatter2Fragment2
+ public void configureFormatterPreferences(Binder binder) {
+ binder.bind(IPreferenceValuesProvider.class).annotatedWith(FormatterPreferences.class).to(FormatterPreferenceValuesProvider.class);
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.exporting.SimpleNamesFragment2
+ public Class<? extends IQualifiedNameProvider> bindIQualifiedNameProvider() {
+ return SimpleNameProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2
+ public Class<? extends IContainer.Manager> bindIContainer$Manager() {
+ return StateBasedContainerManager.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2
+ public Class<? extends IAllContainersState.Provider> bindIAllContainersState$Provider() {
+ return ResourceSetBasedAllContainersStateProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2
+ public void configureIResourceDescriptions(Binder binder) {
+ binder.bind(IResourceDescriptions.class).to(ResourceSetBasedResourceDescriptions.class);
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2
+ public void configureIResourceDescriptionsPersisted(Binder binder) {
+ binder.bind(IResourceDescriptions.class).annotatedWith(Names.named(ResourceDescriptionsProvider.PERSISTED_DESCRIPTIONS)).to(ResourceSetBasedResourceDescriptions.class);
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.scoping.ImportNamespacesScopingFragment2
+ public Class<? extends IScopeProvider> bindIScopeProvider() {
+ return RBAModelScopeProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.scoping.ImportNamespacesScopingFragment2
+ public void configureIScopeProviderDelegate(Binder binder) {
+ binder.bind(IScopeProvider.class).annotatedWith(Names.named(AbstractDeclarativeScopeProvider.NAMED_DELEGATE)).to(ImportedNamespaceAwareLocalScopeProvider.class);
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.scoping.ImportNamespacesScopingFragment2
+ public Class<? extends IGlobalScopeProvider> bindIGlobalScopeProvider() {
+ return DefaultGlobalScopeProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.scoping.ImportNamespacesScopingFragment2
+ public void configureIgnoreCaseLinking(Binder binder) {
+ binder.bindConstant().annotatedWith(IgnoreCaseLinking.class).to(false);
+ }
+
+}
diff --git a/rba.tool.editor/src-gen/rba/tool/editor/RBAModel.xtextbin b/rba.tool.editor/src-gen/rba/tool/editor/RBAModel.xtextbin
new file mode 100644
index 0000000..37a34da
--- /dev/null
+++ b/rba.tool.editor/src-gen/rba/tool/editor/RBAModel.xtextbin
Binary files differ
diff --git a/rba.tool.editor/src-gen/rba/tool/editor/RBAModelStandaloneSetupGenerated.java b/rba.tool.editor/src-gen/rba/tool/editor/RBAModelStandaloneSetupGenerated.java
new file mode 100644
index 0000000..ee7c115
--- /dev/null
+++ b/rba.tool.editor/src-gen/rba/tool/editor/RBAModelStandaloneSetupGenerated.java
@@ -0,0 +1,56 @@
+/*
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor;
+
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.xmi.impl.EcoreResourceFactoryImpl;
+import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
+import org.eclipse.xtext.ISetup;
+import org.eclipse.xtext.XtextPackage;
+import org.eclipse.xtext.resource.IResourceFactory;
+import org.eclipse.xtext.resource.IResourceServiceProvider;
+import org.eclipse.xtext.resource.impl.BinaryGrammarResourceFactoryImpl;
+import rba.tool.editor.rbaEditorModel.RbaEditorModelPackage;
+
+@SuppressWarnings("all")
+public class RBAModelStandaloneSetupGenerated implements ISetup {
+
+ @Override
+ public Injector createInjectorAndDoEMFRegistration() {
+ // register default ePackages
+ if (!Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().containsKey("ecore"))
+ Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put(
+ "ecore", new EcoreResourceFactoryImpl());
+ if (!Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().containsKey("xmi"))
+ Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put(
+ "xmi", new XMIResourceFactoryImpl());
+ if (!Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().containsKey("xtextbin"))
+ Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put(
+ "xtextbin", new BinaryGrammarResourceFactoryImpl());
+ if (!EPackage.Registry.INSTANCE.containsKey(XtextPackage.eNS_URI))
+ EPackage.Registry.INSTANCE.put(XtextPackage.eNS_URI, XtextPackage.eINSTANCE);
+
+ Injector injector = createInjector();
+ register(injector);
+ return injector;
+ }
+
+ public Injector createInjector() {
+ return Guice.createInjector(new RBAModelRuntimeModule());
+ }
+
+ public void register(Injector injector) {
+ if (!EPackage.Registry.INSTANCE.containsKey("http://www.denso.com/ict/rbatooleditor")) {
+ EPackage.Registry.INSTANCE.put("http://www.denso.com/ict/rbatooleditor", RbaEditorModelPackage.eINSTANCE);
+ }
+ IResourceFactory resourceFactory = injector.getInstance(IResourceFactory.class);
+ IResourceServiceProvider serviceProvider = injector.getInstance(IResourceServiceProvider.class);
+
+ Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("rba", resourceFactory);
+ IResourceServiceProvider.Registry.INSTANCE.getExtensionToFactoryMap().put("rba", serviceProvider);
+ }
+}
diff --git a/rba.tool.editor/src-gen/rba/tool/editor/parser/antlr/RBAModelAntlrTokenFileProvider.java b/rba.tool.editor/src-gen/rba/tool/editor/parser/antlr/RBAModelAntlrTokenFileProvider.java
new file mode 100644
index 0000000..613ab20
--- /dev/null
+++ b/rba.tool.editor/src-gen/rba/tool/editor/parser/antlr/RBAModelAntlrTokenFileProvider.java
@@ -0,0 +1,16 @@
+/*
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.parser.antlr;
+
+import java.io.InputStream;
+import org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider;
+
+public class RBAModelAntlrTokenFileProvider implements IAntlrTokenFileProvider {
+
+ @Override
+ public InputStream getAntlrTokenFile() {
+ ClassLoader classLoader = getClass().getClassLoader();
+ return classLoader.getResourceAsStream("rba/tool/editor/parser/antlr/internal/InternalRBAModel.tokens");
+ }
+}
diff --git a/rba.tool.editor/src-gen/rba/tool/editor/parser/antlr/RBAModelParser.java b/rba.tool.editor/src-gen/rba/tool/editor/parser/antlr/RBAModelParser.java
new file mode 100644
index 0000000..1eeb1a6
--- /dev/null
+++ b/rba.tool.editor/src-gen/rba/tool/editor/parser/antlr/RBAModelParser.java
@@ -0,0 +1,40 @@
+/*
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.parser.antlr;
+
+import com.google.inject.Inject;
+import org.eclipse.xtext.parser.antlr.AbstractAntlrParser;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import rba.tool.editor.parser.antlr.internal.InternalRBAModelParser;
+import rba.tool.editor.services.RBAModelGrammarAccess;
+
+public class RBAModelParser extends AbstractAntlrParser {
+
+ @Inject
+ private RBAModelGrammarAccess grammarAccess;
+
+ @Override
+ protected void setInitialHiddenTokens(XtextTokenStream tokenStream) {
+ tokenStream.setInitialHiddenTokens("RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT");
+ }
+
+
+ @Override
+ protected InternalRBAModelParser createParser(XtextTokenStream stream) {
+ return new InternalRBAModelParser(stream, getGrammarAccess());
+ }
+
+ @Override
+ protected String getDefaultRuleName() {
+ return "TopLevel";
+ }
+
+ public RBAModelGrammarAccess getGrammarAccess() {
+ return this.grammarAccess;
+ }
+
+ public void setGrammarAccess(RBAModelGrammarAccess grammarAccess) {
+ this.grammarAccess = grammarAccess;
+ }
+}
diff --git a/rba.tool.editor/src-gen/rba/tool/editor/parser/antlr/internal/InternalRBAModel.g b/rba.tool.editor/src-gen/rba/tool/editor/parser/antlr/internal/InternalRBAModel.g
new file mode 100644
index 0000000..4a85846
--- /dev/null
+++ b/rba.tool.editor/src-gen/rba/tool/editor/parser/antlr/internal/InternalRBAModel.g
@@ -0,0 +1,10307 @@
+/*
+ * generated by Xtext 2.13.0
+ */
+grammar InternalRBAModel;
+
+options {
+ superClass=AbstractInternalAntlrParser;
+}
+
+@lexer::header {
+package rba.tool.editor.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 rba.tool.editor.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 rba.tool.editor.services.RBAModelGrammarAccess;
+
+}
+
+@parser::members {
+
+ private RBAModelGrammarAccess grammarAccess;
+
+ public InternalRBAModelParser(TokenStream input, RBAModelGrammarAccess grammarAccess) {
+ this(input);
+ this.grammarAccess = grammarAccess;
+ registerRules(grammarAccess.getGrammar());
+ }
+
+ @Override
+ protected String getFirstRuleName() {
+ return "TopLevel";
+ }
+
+ @Override
+ protected RBAModelGrammarAccess getGrammarAccess() {
+ return grammarAccess;
+ }
+
+}
+
+@rulecatch {
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+}
+
+// Entry rule entryRuleTopLevel
+entryRuleTopLevel returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getTopLevelRule()); }
+ iv_ruleTopLevel=ruleTopLevel
+ { $current=$iv_ruleTopLevel.current; }
+ EOF;
+
+// Rule TopLevel
+ruleTopLevel returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getTopLevelAccess().getTopLevelAction_0(),
+ $current);
+ }
+ )
+ (
+ otherlv_1='module'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getTopLevelAccess().getModuleKeyword_1_0());
+ }
+ {
+ newCompositeNode(grammarAccess.getTopLevelAccess().getQualifiedNameParserRuleCall_1_1());
+ }
+ ruleQualifiedName
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )?
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getTopLevelAccess().getProjectProjectParserRuleCall_2_0());
+ }
+ lv_project_3_0=ruleProject
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getTopLevelRule());
+ }
+ add(
+ $current,
+ "project",
+ lv_project_3_0,
+ "rba.tool.editor.RBAModel.Project");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )*
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getTopLevelAccess().getImportsImportParserRuleCall_3_0());
+ }
+ lv_imports_4_0=ruleImport
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getTopLevelRule());
+ }
+ add(
+ $current,
+ "imports",
+ lv_imports_4_0,
+ "rba.tool.editor.RBAModel.Import");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )*
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getTopLevelAccess().getPackagesPackageParserRuleCall_4_0());
+ }
+ lv_packages_5_0=rulePackage
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getTopLevelRule());
+ }
+ add(
+ $current,
+ "packages",
+ lv_packages_5_0,
+ "rba.tool.editor.RBAModel.Package");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )*
+ )
+;
+
+// Entry rule entryRuleImport
+entryRuleImport returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getImportRule()); }
+ iv_ruleImport=ruleImport
+ { $current=$iv_ruleImport.current; }
+ EOF;
+
+// Rule Import
+ruleImport returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ otherlv_0='import'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getImportAccess().getImportKeyword_0());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getImportAccess().getImportedNamespaceQualifiedNameWithWildcardParserRuleCall_1_0());
+ }
+ lv_importedNamespace_1_0=ruleQualifiedNameWithWildcard
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getImportRule());
+ }
+ set(
+ $current,
+ "importedNamespace",
+ lv_importedNamespace_1_0,
+ "rba.tool.editor.RBAModel.QualifiedNameWithWildcard");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ )
+;
+
+// Entry rule entryRulePackagableElement
+entryRulePackagableElement returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getPackagableElementRule()); }
+ iv_rulePackagableElement=rulePackagableElement
+ { $current=$iv_rulePackagableElement.current; }
+ EOF;
+
+// Rule PackagableElement
+rulePackagableElement returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ {
+ newCompositeNode(grammarAccess.getPackagableElementAccess().getPackageParserRuleCall_0());
+ }
+ this_Package_0=rulePackage
+ {
+ $current = $this_Package_0.current;
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getPackagableElementAccess().getStereotypeParserRuleCall_1());
+ }
+ this_Stereotype_1=ruleStereotype
+ {
+ $current = $this_Stereotype_1.current;
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getPackagableElementAccess().getRuleObjectParserRuleCall_2());
+ }
+ this_RuleObject_2=ruleRuleObject
+ {
+ $current = $this_RuleObject_2.current;
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getPackagableElementAccess().getDisplayParserRuleCall_3());
+ }
+ this_Display_3=ruleDisplay
+ {
+ $current = $this_Display_3.current;
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getPackagableElementAccess().getAbstractConstraintParserRuleCall_4());
+ }
+ this_AbstractConstraint_4=ruleAbstractConstraint
+ {
+ $current = $this_AbstractConstraint_4.current;
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getPackagableElementAccess().getSizeParserRuleCall_5());
+ }
+ this_Size_5=ruleSize
+ {
+ $current = $this_Size_5.current;
+ afterParserOrEnumRuleCall();
+ }
+ )
+;
+
+// Entry rule entryRuleAbstractConstraint
+entryRuleAbstractConstraint returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getAbstractConstraintRule()); }
+ iv_ruleAbstractConstraint=ruleAbstractConstraint
+ { $current=$iv_ruleAbstractConstraint.current; }
+ EOF;
+
+// Rule AbstractConstraint
+ruleAbstractConstraint returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ {
+ newCompositeNode(grammarAccess.getAbstractConstraintAccess().getConstraintParserRuleCall());
+ }
+ this_Constraint_0=ruleConstraint
+ {
+ $current = $this_Constraint_0.current;
+ afterParserOrEnumRuleCall();
+ }
+;
+
+// Entry rule entryRuleSizeIdentifier
+entryRuleSizeIdentifier returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getSizeIdentifierRule()); }
+ iv_ruleSizeIdentifier=ruleSizeIdentifier
+ { $current=$iv_ruleSizeIdentifier.current; }
+ EOF;
+
+// Rule SizeIdentifier
+ruleSizeIdentifier returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ {
+ newCompositeNode(grammarAccess.getSizeIdentifierAccess().getSizeReferenceParserRuleCall_0());
+ }
+ this_SizeReference_0=ruleSizeReference
+ {
+ $current = $this_SizeReference_0.current;
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getSizeIdentifierAccess().getSizeParserRuleCall_1());
+ }
+ this_Size_1=ruleSize
+ {
+ $current = $this_Size_1.current;
+ afterParserOrEnumRuleCall();
+ }
+ )
+;
+
+// Entry rule entryRuleRuleObject
+entryRuleRuleObject returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getRuleObjectRule()); }
+ iv_ruleRuleObject=ruleRuleObject
+ { $current=$iv_ruleRuleObject.current; }
+ EOF;
+
+// Rule RuleObject
+ruleRuleObject returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ {
+ newCompositeNode(grammarAccess.getRuleObjectAccess().getAbstractContentParserRuleCall_0());
+ }
+ this_AbstractContent_0=ruleAbstractContent
+ {
+ $current = $this_AbstractContent_0.current;
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getRuleObjectAccess().getAbstractSceneParserRuleCall_1());
+ }
+ this_AbstractScene_1=ruleAbstractScene
+ {
+ $current = $this_AbstractScene_1.current;
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getRuleObjectAccess().getAbstractAllocatableParserRuleCall_2());
+ }
+ this_AbstractAllocatable_2=ruleAbstractAllocatable
+ {
+ $current = $this_AbstractAllocatable_2.current;
+ afterParserOrEnumRuleCall();
+ }
+ )
+;
+
+// Entry rule entryRuleAbstractAllocatable
+entryRuleAbstractAllocatable returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getAbstractAllocatableRule()); }
+ iv_ruleAbstractAllocatable=ruleAbstractAllocatable
+ { $current=$iv_ruleAbstractAllocatable.current; }
+ EOF;
+
+// Rule AbstractAllocatable
+ruleAbstractAllocatable returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ {
+ newCompositeNode(grammarAccess.getAbstractAllocatableAccess().getAllocatableParserRuleCall_0());
+ }
+ this_Allocatable_0=ruleAllocatable
+ {
+ $current = $this_Allocatable_0.current;
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getAbstractAllocatableAccess().getAllocatableSetParserRuleCall_1());
+ }
+ this_AllocatableSet_1=ruleAllocatableSet
+ {
+ $current = $this_AllocatableSet_1.current;
+ afterParserOrEnumRuleCall();
+ }
+ )
+;
+
+// Entry rule entryRuleAllocatable
+entryRuleAllocatable returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getAllocatableRule()); }
+ iv_ruleAllocatable=ruleAllocatable
+ { $current=$iv_ruleAllocatable.current; }
+ EOF;
+
+// Rule Allocatable
+ruleAllocatable returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ {
+ newCompositeNode(grammarAccess.getAllocatableAccess().getAreaParserRuleCall_0());
+ }
+ this_Area_0=ruleArea
+ {
+ $current = $this_Area_0.current;
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getAllocatableAccess().getZoneParserRuleCall_1());
+ }
+ this_Zone_1=ruleZone
+ {
+ $current = $this_Zone_1.current;
+ afterParserOrEnumRuleCall();
+ }
+ )
+;
+
+// Entry rule entryRuleAllocatableSet
+entryRuleAllocatableSet returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getAllocatableSetRule()); }
+ iv_ruleAllocatableSet=ruleAllocatableSet
+ { $current=$iv_ruleAllocatableSet.current; }
+ EOF;
+
+// Rule AllocatableSet
+ruleAllocatableSet returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ {
+ newCompositeNode(grammarAccess.getAllocatableSetAccess().getAreaSetParserRuleCall_0());
+ }
+ this_AreaSet_0=ruleAreaSet
+ {
+ $current = $this_AreaSet_0.current;
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getAllocatableSetAccess().getZoneSetParserRuleCall_1());
+ }
+ this_ZoneSet_1=ruleZoneSet
+ {
+ $current = $this_ZoneSet_1.current;
+ afterParserOrEnumRuleCall();
+ }
+ )
+;
+
+// Entry rule entryRuleAbstractContent
+entryRuleAbstractContent returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getAbstractContentRule()); }
+ iv_ruleAbstractContent=ruleAbstractContent
+ { $current=$iv_ruleAbstractContent.current; }
+ EOF;
+
+// Rule AbstractContent
+ruleAbstractContent returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ {
+ newCompositeNode(grammarAccess.getAbstractContentAccess().getContentParserRuleCall_0());
+ }
+ this_Content_0=ruleContent
+ {
+ $current = $this_Content_0.current;
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getAbstractContentAccess().getContentSetParserRuleCall_1());
+ }
+ this_ContentSet_1=ruleContentSet
+ {
+ $current = $this_ContentSet_1.current;
+ afterParserOrEnumRuleCall();
+ }
+ )
+;
+
+// Entry rule entryRuleContent
+entryRuleContent returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getContentRule()); }
+ iv_ruleContent=ruleContent
+ { $current=$iv_ruleContent.current; }
+ EOF;
+
+// Rule Content
+ruleContent returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ {
+ newCompositeNode(grammarAccess.getContentAccess().getViewContentParserRuleCall_0());
+ }
+ this_ViewContent_0=ruleViewContent
+ {
+ $current = $this_ViewContent_0.current;
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getContentAccess().getSoundContentParserRuleCall_1());
+ }
+ this_SoundContent_1=ruleSoundContent
+ {
+ $current = $this_SoundContent_1.current;
+ afterParserOrEnumRuleCall();
+ }
+ )
+;
+
+// Entry rule entryRuleContentSet
+entryRuleContentSet returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getContentSetRule()); }
+ iv_ruleContentSet=ruleContentSet
+ { $current=$iv_ruleContentSet.current; }
+ EOF;
+
+// Rule ContentSet
+ruleContentSet returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ {
+ newCompositeNode(grammarAccess.getContentSetAccess().getViewContentSetParserRuleCall_0());
+ }
+ this_ViewContentSet_0=ruleViewContentSet
+ {
+ $current = $this_ViewContentSet_0.current;
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getContentSetAccess().getSoundContentSetParserRuleCall_1());
+ }
+ this_SoundContentSet_1=ruleSoundContentSet
+ {
+ $current = $this_SoundContentSet_1.current;
+ afterParserOrEnumRuleCall();
+ }
+ )
+;
+
+// Entry rule entryRuleAbstractScene
+entryRuleAbstractScene returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getAbstractSceneRule()); }
+ iv_ruleAbstractScene=ruleAbstractScene
+ { $current=$iv_ruleAbstractScene.current; }
+ EOF;
+
+// Rule AbstractScene
+ruleAbstractScene returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ {
+ newCompositeNode(grammarAccess.getAbstractSceneAccess().getSceneParserRuleCall());
+ }
+ this_Scene_0=ruleScene
+ {
+ $current = $this_Scene_0.current;
+ afterParserOrEnumRuleCall();
+ }
+;
+
+// Entry rule entryRuleAbstractProperty
+entryRuleAbstractProperty returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getAbstractPropertyRule()); }
+ iv_ruleAbstractProperty=ruleAbstractProperty
+ { $current=$iv_ruleAbstractProperty.current; }
+ EOF;
+
+// Rule AbstractProperty
+ruleAbstractProperty returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getAbstractPropertyAccess().getIntegerPropertyAction_0_0(),
+ $current);
+ }
+ )
+ otherlv_1='int'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getAbstractPropertyAccess().getIntKeyword_0_1());
+ }
+ )
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getAbstractPropertyAccess().getNameValidIDParserRuleCall_1_0());
+ }
+ lv_name_2_0=ruleValidID
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAbstractPropertyRule());
+ }
+ set(
+ $current,
+ "name",
+ lv_name_2_0,
+ "rba.tool.editor.RBAModel.ValidID");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ (
+ otherlv_3=':'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getAbstractPropertyAccess().getColonKeyword_2_0());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getAbstractPropertyAccess().getValueIntegerValueParserRuleCall_2_1_0());
+ }
+ lv_value_4_0=ruleIntegerValue
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAbstractPropertyRule());
+ }
+ set(
+ $current,
+ "value",
+ lv_value_4_0,
+ "rba.tool.editor.RBAModel.IntegerValue");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ )?
+ )
+;
+
+// Entry rule entryRuleLayoutManager
+entryRuleLayoutManager returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getLayoutManagerRule()); }
+ iv_ruleLayoutManager=ruleLayoutManager
+ { $current=$iv_ruleLayoutManager.current; }
+ EOF;
+
+// Rule LayoutManager
+ruleLayoutManager returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ {
+ newCompositeNode(grammarAccess.getLayoutManagerAccess().getAlignedLayoutParserRuleCall_0());
+ }
+ this_AlignedLayout_0=ruleAlignedLayout
+ {
+ $current = $this_AlignedLayout_0.current;
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getLayoutManagerAccess().getFixedPositionLayoutParserRuleCall_1());
+ }
+ this_FixedPositionLayout_1=ruleFixedPositionLayout
+ {
+ $current = $this_FixedPositionLayout_1.current;
+ afterParserOrEnumRuleCall();
+ }
+ )
+;
+
+// Entry rule entryRuleAlignedLayout
+entryRuleAlignedLayout returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getAlignedLayoutRule()); }
+ iv_ruleAlignedLayout=ruleAlignedLayout
+ { $current=$iv_ruleAlignedLayout.current; }
+ EOF;
+
+// Rule AlignedLayout
+ruleAlignedLayout returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ {
+ newCompositeNode(grammarAccess.getAlignedLayoutAccess().getVerticalLayoutParserRuleCall_0());
+ }
+ this_VerticalLayout_0=ruleVerticalLayout
+ {
+ $current = $this_VerticalLayout_0.current;
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getAlignedLayoutAccess().getHorizontalLayoutParserRuleCall_1());
+ }
+ this_HorizontalLayout_1=ruleHorizontalLayout
+ {
+ $current = $this_HorizontalLayout_1.current;
+ afterParserOrEnumRuleCall();
+ }
+ )
+;
+
+// Entry rule entryRuleTag
+entryRuleTag returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getTagRule()); }
+ iv_ruleTag=ruleTag
+ { $current=$iv_ruleTag.current; }
+ EOF;
+
+// Rule Tag
+ruleTag returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ ((
+ (
+ (
+ )
+ '<<'
+ (
+ (
+ ruleQualifiedName
+ )
+ )
+ '>>'
+ )
+ |
+ (
+ (
+ )
+ '\u00AB'
+ (
+ (
+ ruleQualifiedName
+ )
+ )
+ '\u00BB'
+ )
+ )
+ )=>
+ (
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getTagAccess().getTagAction_0_0_0_0(),
+ $current);
+ }
+ )
+ otherlv_1='<<'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getTagAccess().getLessThanSignLessThanSignKeyword_0_0_0_1());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getTagAccess().getNameQualifiedNameParserRuleCall_0_0_0_2_0());
+ }
+ lv_name_2_0=ruleQualifiedName
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getTagRule());
+ }
+ set(
+ $current,
+ "name",
+ lv_name_2_0,
+ "rba.tool.editor.RBAModel.QualifiedName");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ otherlv_3='>>'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getTagAccess().getGreaterThanSignGreaterThanSignKeyword_0_0_0_3());
+ }
+ )
+ |
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getTagAccess().getCTagAction_0_0_1_0(),
+ $current);
+ }
+ )
+ otherlv_5='\u00AB'
+ {
+ newLeafNode(otherlv_5, grammarAccess.getTagAccess().getLeftPointingDoubleAngleQuotationMarkKeyword_0_0_1_1());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getTagAccess().getNameQualifiedNameParserRuleCall_0_0_1_2_0());
+ }
+ lv_name_6_0=ruleQualifiedName
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getTagRule());
+ }
+ set(
+ $current,
+ "name",
+ lv_name_6_0,
+ "rba.tool.editor.RBAModel.QualifiedName");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ otherlv_7='\u00BB'
+ {
+ newLeafNode(otherlv_7, grammarAccess.getTagAccess().getRightPointingDoubleAngleQuotationMarkKeyword_0_0_1_3());
+ }
+ )
+ )
+ )
+ (
+ otherlv_8='{'
+ {
+ newLeafNode(otherlv_8, grammarAccess.getTagAccess().getLeftCurlyBracketKeyword_1_0());
+ }
+ (
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getTagAccess().getValuesEStringParserRuleCall_1_1_0_0());
+ }
+ lv_values_9_0=ruleEString
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getTagRule());
+ }
+ add(
+ $current,
+ "values",
+ lv_values_9_0,
+ "rba.tool.editor.RBAModel.EString");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ (
+ otherlv_10=','
+ {
+ newLeafNode(otherlv_10, grammarAccess.getTagAccess().getCommaKeyword_1_1_1_0());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getTagAccess().getValuesEStringParserRuleCall_1_1_1_1_0());
+ }
+ lv_values_11_0=ruleEString
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getTagRule());
+ }
+ add(
+ $current,
+ "values",
+ lv_values_11_0,
+ "rba.tool.editor.RBAModel.EString");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ )*
+ )?
+ otherlv_12='}'
+ {
+ newLeafNode(otherlv_12, grammarAccess.getTagAccess().getRightCurlyBracketKeyword_1_2());
+ }
+ )?
+ )
+;
+
+// Entry rule entryRulePackage
+entryRulePackage returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getPackageRule()); }
+ iv_rulePackage=rulePackage
+ { $current=$iv_rulePackage.current; }
+ EOF;
+
+// Rule Package
+rulePackage returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getPackageAccess().getPackageAction_0(),
+ $current);
+ }
+ )
+ otherlv_1='Package'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getPackageAccess().getPackageKeyword_1());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getPackageAccess().getNameQualifiedNameParserRuleCall_2_0());
+ }
+ lv_name_2_0=ruleQualifiedName
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPackageRule());
+ }
+ set(
+ $current,
+ "name",
+ lv_name_2_0,
+ "rba.tool.editor.RBAModel.QualifiedName");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ otherlv_3='{'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getPackageAccess().getLeftCurlyBracketKeyword_3());
+ }
+ (
+ (
+ {
+ getUnorderedGroupHelper().enter(grammarAccess.getPackageAccess().getUnorderedGroup_4());
+ }
+ (
+ (
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 0)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 0);
+ }
+ ({true}?=>(otherlv_5='description:'
+ {
+ newLeafNode(otherlv_5, grammarAccess.getPackageAccess().getDescriptionKeyword_4_0_0());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getPackageAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+ }
+ lv_description_6_0=ruleEString
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPackageRule());
+ }
+ set(
+ $current,
+ "description",
+ lv_description_6_0,
+ "rba.tool.editor.RBAModel.EString");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getPackageAccess().getUnorderedGroup_4());
+ }
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 1)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 1);
+ }
+ ({true}?=>((
+ {
+ newCompositeNode(grammarAccess.getPackageAccess().getPackagableelementPackagableElementParserRuleCall_4_1_0());
+ }
+ lv_packagableelement_7_0=rulePackagableElement
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPackageRule());
+ }
+ add(
+ $current,
+ "packagableelement",
+ lv_packagableelement_7_0,
+ "rba.tool.editor.RBAModel.PackagableElement");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ ))+
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getPackageAccess().getUnorderedGroup_4());
+ }
+ )
+ )
+ )*
+ )
+ )
+ {
+ getUnorderedGroupHelper().leave(grammarAccess.getPackageAccess().getUnorderedGroup_4());
+ }
+ )
+ otherlv_8='}'
+ {
+ newLeafNode(otherlv_8, grammarAccess.getPackageAccess().getRightCurlyBracketKeyword_5());
+ }
+ )
+;
+
+// Entry rule entryRuleStereotype
+entryRuleStereotype returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getStereotypeRule()); }
+ iv_ruleStereotype=ruleStereotype
+ { $current=$iv_ruleStereotype.current; }
+ EOF;
+
+// Rule Stereotype
+ruleStereotype returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getStereotypeAccess().getStereotypeAction_0(),
+ $current);
+ }
+ )
+ otherlv_1='Stereotype'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getStereotypeAccess().getStereotypeKeyword_1());
+ }
+ otherlv_2='<'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getStereotypeAccess().getLessThanSignKeyword_2());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getStereotypeAccess().getTargetModelNameStereotypableElementNameParserRuleCall_3_0());
+ }
+ lv_targetModelName_3_0=ruleStereotypableElementName
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getStereotypeRule());
+ }
+ set(
+ $current,
+ "targetModelName",
+ lv_targetModelName_3_0,
+ "rba.tool.editor.RBAModel.StereotypableElementName");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ otherlv_4='>'
+ {
+ newLeafNode(otherlv_4, grammarAccess.getStereotypeAccess().getGreaterThanSignKeyword_4());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getStereotypeAccess().getNameQualifiedNameParserRuleCall_5_0());
+ }
+ lv_name_5_0=ruleQualifiedName
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getStereotypeRule());
+ }
+ set(
+ $current,
+ "name",
+ lv_name_5_0,
+ "rba.tool.editor.RBAModel.QualifiedName");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ otherlv_6='('
+ {
+ newLeafNode(otherlv_6, grammarAccess.getStereotypeAccess().getLeftParenthesisKeyword_6());
+ }
+ (
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getStereotypeAccess().getVariablesVariableParserRuleCall_7_0_0());
+ }
+ lv_variables_7_0=ruleVariable
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getStereotypeRule());
+ }
+ add(
+ $current,
+ "variables",
+ lv_variables_7_0,
+ "rba.tool.editor.RBAModel.Variable");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ (
+ otherlv_8=','
+ {
+ newLeafNode(otherlv_8, grammarAccess.getStereotypeAccess().getCommaKeyword_7_1_0());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getStereotypeAccess().getVariablesVariableParserRuleCall_7_1_1_0());
+ }
+ lv_variables_9_0=ruleVariable
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getStereotypeRule());
+ }
+ add(
+ $current,
+ "variables",
+ lv_variables_9_0,
+ "rba.tool.editor.RBAModel.Variable");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ )*
+ )?
+ otherlv_10=')'
+ {
+ newLeafNode(otherlv_10, grammarAccess.getStereotypeAccess().getRightParenthesisKeyword_8());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getStereotypeAccess().getBodyTextRichStringParserRuleCall_9_0());
+ }
+ lv_bodyText_11_0=ruleRichString
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getStereotypeRule());
+ }
+ set(
+ $current,
+ "bodyText",
+ lv_bodyText_11_0,
+ "rba.tool.editor.RBAModel.RichString");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )?
+ )
+;
+
+// Entry rule entryRuleStereotypableElementName
+entryRuleStereotypableElementName returns [String current=null]:
+ { newCompositeNode(grammarAccess.getStereotypableElementNameRule()); }
+ iv_ruleStereotypableElementName=ruleStereotypableElementName
+ { $current=$iv_ruleStereotypableElementName.current.getText(); }
+ EOF;
+
+// Rule StereotypableElementName
+ruleStereotypableElementName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ kw='Area'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getStereotypableElementNameAccess().getAreaKeyword_0());
+ }
+ |
+ kw='Zone'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getStereotypableElementNameAccess().getZoneKeyword_1());
+ }
+ |
+ kw='SoundContent'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getStereotypableElementNameAccess().getSoundContentKeyword_2());
+ }
+ |
+ kw='ViewContent'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getStereotypableElementNameAccess().getViewContentKeyword_3());
+ }
+ )
+;
+
+// Entry rule entryRuleDisplay
+entryRuleDisplay returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getDisplayRule()); }
+ iv_ruleDisplay=ruleDisplay
+ { $current=$iv_ruleDisplay.current; }
+ EOF;
+
+// Rule Display
+ruleDisplay returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getDisplayAccess().getDisplayAction_0(),
+ $current);
+ }
+ )
+ otherlv_1='Display'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getDisplayAccess().getDisplayKeyword_1());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getDisplayAccess().getNameQualifiedNameParserRuleCall_2_0());
+ }
+ lv_name_2_0=ruleQualifiedName
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getDisplayRule());
+ }
+ set(
+ $current,
+ "name",
+ lv_name_2_0,
+ "rba.tool.editor.RBAModel.QualifiedName");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ otherlv_3='{'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getDisplayAccess().getLeftCurlyBracketKeyword_3());
+ }
+ (
+ (
+ {
+ getUnorderedGroupHelper().enter(grammarAccess.getDisplayAccess().getUnorderedGroup_4());
+ }
+ (
+ (
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 0)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 0);
+ }
+ ({true}?=>(otherlv_5='description:'
+ {
+ newLeafNode(otherlv_5, grammarAccess.getDisplayAccess().getDescriptionKeyword_4_0_0());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getDisplayAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+ }
+ lv_description_6_0=ruleEString
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getDisplayRule());
+ }
+ set(
+ $current,
+ "description",
+ lv_description_6_0,
+ "rba.tool.editor.RBAModel.EString");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getDisplayAccess().getUnorderedGroup_4());
+ }
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 1)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 1);
+ }
+ ({true}?=>((
+ {
+ newCompositeNode(grammarAccess.getDisplayAccess().getSizeSizeIdentifierParserRuleCall_4_1_0());
+ }
+ lv_size_7_0=ruleSizeIdentifier
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getDisplayRule());
+ }
+ set(
+ $current,
+ "size",
+ lv_size_7_0,
+ "rba.tool.editor.RBAModel.SizeIdentifier");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getDisplayAccess().getUnorderedGroup_4());
+ }
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 2)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 2);
+ }
+ ({true}?=>((
+ {
+ newCompositeNode(grammarAccess.getDisplayAccess().getRootCompositeAreaParserRuleCall_4_2_0());
+ }
+ lv_root_8_0=ruleCompositeArea
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getDisplayRule());
+ }
+ set(
+ $current,
+ "root",
+ lv_root_8_0,
+ "rba.tool.editor.RBAModel.CompositeArea");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getDisplayAccess().getUnorderedGroup_4());
+ }
+ )
+ )
+ )*
+ )
+ )
+ {
+ getUnorderedGroupHelper().leave(grammarAccess.getDisplayAccess().getUnorderedGroup_4());
+ }
+ )
+ otherlv_9='}'
+ {
+ newLeafNode(otherlv_9, grammarAccess.getDisplayAccess().getRightCurlyBracketKeyword_5());
+ }
+ )
+;
+
+// Entry rule entryRuleConstraint
+entryRuleConstraint returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getConstraintRule()); }
+ iv_ruleConstraint=ruleConstraint
+ { $current=$iv_ruleConstraint.current; }
+ EOF;
+
+// Rule Constraint
+ruleConstraint returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getConstraintAccess().getConstraintAction_0(),
+ $current);
+ }
+ )
+ otherlv_1='Constraint'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getConstraintAccess().getConstraintKeyword_1());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getConstraintAccess().getNameQualifiedNameParserRuleCall_2_0());
+ }
+ lv_name_2_0=ruleQualifiedName
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getConstraintRule());
+ }
+ set(
+ $current,
+ "name",
+ lv_name_2_0,
+ "rba.tool.editor.RBAModel.QualifiedName");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ otherlv_3='{'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getConstraintAccess().getLeftCurlyBracketKeyword_3());
+ }
+ (
+ (
+ {
+ getUnorderedGroupHelper().enter(grammarAccess.getConstraintAccess().getUnorderedGroup_4());
+ }
+ (
+ (
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 0)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 0);
+ }
+ ({true}?=>(otherlv_5='description:'
+ {
+ newLeafNode(otherlv_5, grammarAccess.getConstraintAccess().getDescriptionKeyword_4_0_0());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getConstraintAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+ }
+ lv_description_6_0=ruleEString
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getConstraintRule());
+ }
+ set(
+ $current,
+ "description",
+ lv_description_6_0,
+ "rba.tool.editor.RBAModel.EString");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getConstraintAccess().getUnorderedGroup_4());
+ }
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 1)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 1);
+ }
+ ({true}?=>(otherlv_7='runtime:'
+ {
+ newLeafNode(otherlv_7, grammarAccess.getConstraintAccess().getRuntimeKeyword_4_1_0());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getConstraintAccess().getRuntimeEBooleanParserRuleCall_4_1_1_0());
+ }
+ lv_runtime_8_0=ruleEBoolean
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getConstraintRule());
+ }
+ set(
+ $current,
+ "runtime",
+ lv_runtime_8_0,
+ "rba.tool.editor.RBAModel.EBoolean");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getConstraintAccess().getUnorderedGroup_4());
+ }
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2);
+ }
+ ({true}?=>((
+ {
+ newCompositeNode(grammarAccess.getConstraintAccess().getExpressionComplexExpressionParserRuleCall_4_2_0());
+ }
+ lv_expression_9_0=ruleComplexExpression
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getConstraintRule());
+ }
+ set(
+ $current,
+ "expression",
+ lv_expression_9_0,
+ "rba.tool.editor.RBAModel.ComplexExpression");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getConstraintAccess().getUnorderedGroup_4());
+ }
+ )
+ )
+ )*
+ )
+ )
+ {
+ getUnorderedGroupHelper().leave(grammarAccess.getConstraintAccess().getUnorderedGroup_4());
+ }
+ )
+ otherlv_10='}'
+ {
+ newLeafNode(otherlv_10, grammarAccess.getConstraintAccess().getRightCurlyBracketKeyword_5());
+ }
+ )
+;
+
+// Entry rule entryRuleViewContent
+entryRuleViewContent returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getViewContentRule()); }
+ iv_ruleViewContent=ruleViewContent
+ { $current=$iv_ruleViewContent.current; }
+ EOF;
+
+// Rule ViewContent
+ruleViewContent returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getViewContentAccess().getViewContentAction_0(),
+ $current);
+ }
+ )
+ otherlv_1='ViewContent'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getViewContentAccess().getViewContentKeyword_1());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getViewContentAccess().getNameQualifiedNameParserRuleCall_2_0());
+ }
+ lv_name_2_0=ruleQualifiedName
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getViewContentRule());
+ }
+ set(
+ $current,
+ "name",
+ lv_name_2_0,
+ "rba.tool.editor.RBAModel.QualifiedName");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ otherlv_3='{'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getViewContentAccess().getLeftCurlyBracketKeyword_3());
+ }
+ (
+ (
+ {
+ getUnorderedGroupHelper().enter(grammarAccess.getViewContentAccess().getUnorderedGroup_4());
+ }
+ (
+ (
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 0)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 0);
+ }
+ ({true}?=>(otherlv_5='description:'
+ {
+ newLeafNode(otherlv_5, grammarAccess.getViewContentAccess().getDescriptionKeyword_4_0_0());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getViewContentAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+ }
+ lv_description_6_0=ruleEString
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getViewContentRule());
+ }
+ set(
+ $current,
+ "description",
+ lv_description_6_0,
+ "rba.tool.editor.RBAModel.EString");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getViewContentAccess().getUnorderedGroup_4());
+ }
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 1)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 1);
+ }
+ ({true}?=>(otherlv_7='loserType:'
+ {
+ newLeafNode(otherlv_7, grammarAccess.getViewContentAccess().getLoserTypeKeyword_4_1_0());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getViewContentAccess().getLoserTypeLoserTypeEnumRuleCall_4_1_1_0());
+ }
+ lv_loserType_8_0=ruleLoserType
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getViewContentRule());
+ }
+ set(
+ $current,
+ "loserType",
+ lv_loserType_8_0,
+ "rba.tool.editor.RBAModel.LoserType");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getViewContentAccess().getUnorderedGroup_4());
+ }
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 2)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 2);
+ }
+ ({true}?=>(otherlv_9='allocatable:'
+ {
+ newLeafNode(otherlv_9, grammarAccess.getViewContentAccess().getAllocatableKeyword_4_2_0());
+ }
+ otherlv_10='['
+ {
+ newLeafNode(otherlv_10, grammarAccess.getViewContentAccess().getLeftSquareBracketKeyword_4_2_1());
+ }
+ (
+ (
+ (
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getViewContentRule());
+ }
+ }
+ {
+ newCompositeNode(grammarAccess.getViewContentAccess().getAllocatableAbstractAllocatableCrossReference_4_2_2_0_0());
+ }
+ ruleQualifiedName
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ (
+ otherlv_12=','
+ {
+ newLeafNode(otherlv_12, grammarAccess.getViewContentAccess().getCommaKeyword_4_2_2_1_0());
+ }
+ (
+ (
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getViewContentRule());
+ }
+ }
+ {
+ newCompositeNode(grammarAccess.getViewContentAccess().getAllocatableAbstractAllocatableCrossReference_4_2_2_1_1_0());
+ }
+ ruleQualifiedName
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ )*
+ )?
+ otherlv_14=']'
+ {
+ newLeafNode(otherlv_14, grammarAccess.getViewContentAccess().getRightSquareBracketKeyword_4_2_3());
+ }
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getViewContentAccess().getUnorderedGroup_4());
+ }
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 3)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 3);
+ }
+ ({true}?=>((
+ {
+ newCompositeNode(grammarAccess.getViewContentAccess().getStatesViewContentStateParserRuleCall_4_3_0());
+ }
+ lv_states_15_0=ruleViewContentState
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getViewContentRule());
+ }
+ add(
+ $current,
+ "states",
+ lv_states_15_0,
+ "rba.tool.editor.RBAModel.ViewContentState");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ ))+
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getViewContentAccess().getUnorderedGroup_4());
+ }
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 4)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 4);
+ }
+ ({true}?=>((
+ {
+ newCompositeNode(grammarAccess.getViewContentAccess().getSizeSizeIdentifierParserRuleCall_4_4_0());
+ }
+ lv_size_16_0=ruleSizeIdentifier
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getViewContentRule());
+ }
+ add(
+ $current,
+ "size",
+ lv_size_16_0,
+ "rba.tool.editor.RBAModel.SizeIdentifier");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ ))+
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getViewContentAccess().getUnorderedGroup_4());
+ }
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 5)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 5);
+ }
+ ({true}?=>((
+ {
+ newCompositeNode(grammarAccess.getViewContentAccess().getTagsTagParserRuleCall_4_5_0());
+ }
+ lv_tags_17_0=ruleTag
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getViewContentRule());
+ }
+ add(
+ $current,
+ "tags",
+ lv_tags_17_0,
+ "rba.tool.editor.RBAModel.Tag");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ ))+
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getViewContentAccess().getUnorderedGroup_4());
+ }
+ )
+ )
+ )*
+ )
+ )
+ {
+ getUnorderedGroupHelper().leave(grammarAccess.getViewContentAccess().getUnorderedGroup_4());
+ }
+ )
+ otherlv_18='}'
+ {
+ newLeafNode(otherlv_18, grammarAccess.getViewContentAccess().getRightCurlyBracketKeyword_5());
+ }
+ )
+;
+
+// Entry rule entryRuleSoundContent
+entryRuleSoundContent returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getSoundContentRule()); }
+ iv_ruleSoundContent=ruleSoundContent
+ { $current=$iv_ruleSoundContent.current; }
+ EOF;
+
+// Rule SoundContent
+ruleSoundContent returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getSoundContentAccess().getSoundContentAction_0(),
+ $current);
+ }
+ )
+ otherlv_1='SoundContent'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getSoundContentAccess().getSoundContentKeyword_1());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getSoundContentAccess().getNameQualifiedNameParserRuleCall_2_0());
+ }
+ lv_name_2_0=ruleQualifiedName
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSoundContentRule());
+ }
+ set(
+ $current,
+ "name",
+ lv_name_2_0,
+ "rba.tool.editor.RBAModel.QualifiedName");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ otherlv_3='{'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getSoundContentAccess().getLeftCurlyBracketKeyword_3());
+ }
+ (
+ (
+ {
+ getUnorderedGroupHelper().enter(grammarAccess.getSoundContentAccess().getUnorderedGroup_4());
+ }
+ (
+ (
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 0)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 0);
+ }
+ ({true}?=>(otherlv_5='description:'
+ {
+ newLeafNode(otherlv_5, grammarAccess.getSoundContentAccess().getDescriptionKeyword_4_0_0());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getSoundContentAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+ }
+ lv_description_6_0=ruleEString
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSoundContentRule());
+ }
+ set(
+ $current,
+ "description",
+ lv_description_6_0,
+ "rba.tool.editor.RBAModel.EString");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getSoundContentAccess().getUnorderedGroup_4());
+ }
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 1)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 1);
+ }
+ ({true}?=>(otherlv_7='loserType:'
+ {
+ newLeafNode(otherlv_7, grammarAccess.getSoundContentAccess().getLoserTypeKeyword_4_1_0());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getSoundContentAccess().getLoserTypeLoserTypeEnumRuleCall_4_1_1_0());
+ }
+ lv_loserType_8_0=ruleLoserType
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSoundContentRule());
+ }
+ set(
+ $current,
+ "loserType",
+ lv_loserType_8_0,
+ "rba.tool.editor.RBAModel.LoserType");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getSoundContentAccess().getUnorderedGroup_4());
+ }
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 2)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 2);
+ }
+ ({true}?=>(otherlv_9='allocatable:'
+ {
+ newLeafNode(otherlv_9, grammarAccess.getSoundContentAccess().getAllocatableKeyword_4_2_0());
+ }
+ otherlv_10='['
+ {
+ newLeafNode(otherlv_10, grammarAccess.getSoundContentAccess().getLeftSquareBracketKeyword_4_2_1());
+ }
+ (
+ (
+ (
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getSoundContentRule());
+ }
+ }
+ {
+ newCompositeNode(grammarAccess.getSoundContentAccess().getAllocatableAbstractAllocatableCrossReference_4_2_2_0_0());
+ }
+ ruleQualifiedName
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ (
+ otherlv_12=','
+ {
+ newLeafNode(otherlv_12, grammarAccess.getSoundContentAccess().getCommaKeyword_4_2_2_1_0());
+ }
+ (
+ (
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getSoundContentRule());
+ }
+ }
+ {
+ newCompositeNode(grammarAccess.getSoundContentAccess().getAllocatableAbstractAllocatableCrossReference_4_2_2_1_1_0());
+ }
+ ruleQualifiedName
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ )*
+ )?
+ otherlv_14=']'
+ {
+ newLeafNode(otherlv_14, grammarAccess.getSoundContentAccess().getRightSquareBracketKeyword_4_2_3());
+ }
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getSoundContentAccess().getUnorderedGroup_4());
+ }
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 3)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 3);
+ }
+ ({true}?=>((
+ {
+ newCompositeNode(grammarAccess.getSoundContentAccess().getStatesSoundContentStateParserRuleCall_4_3_0());
+ }
+ lv_states_15_0=ruleSoundContentState
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSoundContentRule());
+ }
+ add(
+ $current,
+ "states",
+ lv_states_15_0,
+ "rba.tool.editor.RBAModel.SoundContentState");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ ))+
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getSoundContentAccess().getUnorderedGroup_4());
+ }
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 4)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 4);
+ }
+ ({true}?=>((
+ {
+ newCompositeNode(grammarAccess.getSoundContentAccess().getTagsTagParserRuleCall_4_4_0());
+ }
+ lv_tags_16_0=ruleTag
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSoundContentRule());
+ }
+ add(
+ $current,
+ "tags",
+ lv_tags_16_0,
+ "rba.tool.editor.RBAModel.Tag");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ ))+
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getSoundContentAccess().getUnorderedGroup_4());
+ }
+ )
+ )
+ )*
+ )
+ )
+ {
+ getUnorderedGroupHelper().leave(grammarAccess.getSoundContentAccess().getUnorderedGroup_4());
+ }
+ )
+ otherlv_17='}'
+ {
+ newLeafNode(otherlv_17, grammarAccess.getSoundContentAccess().getRightCurlyBracketKeyword_5());
+ }
+ )
+;
+
+// Entry rule entryRuleSize
+entryRuleSize returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getSizeRule()); }
+ iv_ruleSize=ruleSize
+ { $current=$iv_ruleSize.current; }
+ EOF;
+
+// Rule Size
+ruleSize returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getSizeAccess().getSizeAction_0(),
+ $current);
+ }
+ )
+ otherlv_1='Size'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getSizeAccess().getSizeKeyword_1());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getSizeAccess().getNameQualifiedNameParserRuleCall_2_0());
+ }
+ lv_name_2_0=ruleQualifiedName
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSizeRule());
+ }
+ set(
+ $current,
+ "name",
+ lv_name_2_0,
+ "rba.tool.editor.RBAModel.QualifiedName");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ otherlv_3='{'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getSizeAccess().getLeftCurlyBracketKeyword_3());
+ }
+ (
+ (
+ {
+ getUnorderedGroupHelper().enter(grammarAccess.getSizeAccess().getUnorderedGroup_4());
+ }
+ (
+ (
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 0)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 0);
+ }
+ ({true}?=>(otherlv_5='description:'
+ {
+ newLeafNode(otherlv_5, grammarAccess.getSizeAccess().getDescriptionKeyword_4_0_0());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getSizeAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+ }
+ lv_description_6_0=ruleEString
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSizeRule());
+ }
+ set(
+ $current,
+ "description",
+ lv_description_6_0,
+ "rba.tool.editor.RBAModel.EString");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getSizeAccess().getUnorderedGroup_4());
+ }
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 1)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 1);
+ }
+ ({true}?=>(otherlv_7='width:'
+ {
+ newLeafNode(otherlv_7, grammarAccess.getSizeAccess().getWidthKeyword_4_1_0());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getSizeAccess().getWidthEIntParserRuleCall_4_1_1_0());
+ }
+ lv_width_8_0=ruleEInt
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSizeRule());
+ }
+ set(
+ $current,
+ "width",
+ lv_width_8_0,
+ "rba.tool.editor.RBAModel.EInt");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getSizeAccess().getUnorderedGroup_4());
+ }
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 2)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 2);
+ }
+ ({true}?=>(otherlv_9='height:'
+ {
+ newLeafNode(otherlv_9, grammarAccess.getSizeAccess().getHeightKeyword_4_2_0());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getSizeAccess().getHeightEIntParserRuleCall_4_2_1_0());
+ }
+ lv_height_10_0=ruleEInt
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSizeRule());
+ }
+ set(
+ $current,
+ "height",
+ lv_height_10_0,
+ "rba.tool.editor.RBAModel.EInt");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getSizeAccess().getUnorderedGroup_4());
+ }
+ )
+ )
+ )*
+ )
+ )
+ {
+ getUnorderedGroupHelper().leave(grammarAccess.getSizeAccess().getUnorderedGroup_4());
+ }
+ )
+ otherlv_11='}'
+ {
+ newLeafNode(otherlv_11, grammarAccess.getSizeAccess().getRightCurlyBracketKeyword_5());
+ }
+ )
+;
+
+// Entry rule entryRuleSizeReference
+entryRuleSizeReference returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getSizeReferenceRule()); }
+ iv_ruleSizeReference=ruleSizeReference
+ { $current=$iv_ruleSizeReference.current; }
+ EOF;
+
+// Rule SizeReference
+ruleSizeReference returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getSizeReferenceAccess().getSizeReferenceAction_0(),
+ $current);
+ }
+ )
+ otherlv_1='sizeReference:'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getSizeReferenceAccess().getSizeReferenceKeyword_1());
+ }
+ (
+ (
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getSizeReferenceRule());
+ }
+ }
+ {
+ newCompositeNode(grammarAccess.getSizeReferenceAccess().getSizeSizeCrossReference_2_0());
+ }
+ ruleQualifiedName
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ )
+;
+
+// Entry rule entryRuleOffset
+entryRuleOffset returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getOffsetRule()); }
+ iv_ruleOffset=ruleOffset
+ { $current=$iv_ruleOffset.current; }
+ EOF;
+
+// Rule Offset
+ruleOffset returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getOffsetAccess().getOffsetAction_0(),
+ $current);
+ }
+ )
+ otherlv_1='Offset'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getOffsetAccess().getOffsetKeyword_1());
+ }
+ otherlv_2='{'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getOffsetAccess().getLeftCurlyBracketKeyword_2());
+ }
+ (
+ (
+ {
+ getUnorderedGroupHelper().enter(grammarAccess.getOffsetAccess().getUnorderedGroup_3());
+ }
+ (
+ (
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 0)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 0);
+ }
+ ({true}?=>(otherlv_4='description:'
+ {
+ newLeafNode(otherlv_4, grammarAccess.getOffsetAccess().getDescriptionKeyword_3_0_0());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getOffsetAccess().getDescriptionEStringParserRuleCall_3_0_1_0());
+ }
+ lv_description_5_0=ruleEString
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getOffsetRule());
+ }
+ set(
+ $current,
+ "description",
+ lv_description_5_0,
+ "rba.tool.editor.RBAModel.EString");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getOffsetAccess().getUnorderedGroup_3());
+ }
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 1)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 1);
+ }
+ ({true}?=>(otherlv_6='x:'
+ {
+ newLeafNode(otherlv_6, grammarAccess.getOffsetAccess().getXKeyword_3_1_0());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getOffsetAccess().getXEIntParserRuleCall_3_1_1_0());
+ }
+ lv_x_7_0=ruleEInt
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getOffsetRule());
+ }
+ set(
+ $current,
+ "x",
+ lv_x_7_0,
+ "rba.tool.editor.RBAModel.EInt");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getOffsetAccess().getUnorderedGroup_3());
+ }
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 2)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 2);
+ }
+ ({true}?=>(otherlv_8='y:'
+ {
+ newLeafNode(otherlv_8, grammarAccess.getOffsetAccess().getYKeyword_3_2_0());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getOffsetAccess().getYEIntParserRuleCall_3_2_1_0());
+ }
+ lv_y_9_0=ruleEInt
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getOffsetRule());
+ }
+ set(
+ $current,
+ "y",
+ lv_y_9_0,
+ "rba.tool.editor.RBAModel.EInt");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getOffsetAccess().getUnorderedGroup_3());
+ }
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 3)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 3);
+ }
+ ({true}?=>((
+ {
+ newCompositeNode(grammarAccess.getOffsetAccess().getSizeSizeReferenceParserRuleCall_3_3_0());
+ }
+ lv_size_10_0=ruleSizeReference
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getOffsetRule());
+ }
+ set(
+ $current,
+ "size",
+ lv_size_10_0,
+ "rba.tool.editor.RBAModel.SizeReference");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getOffsetAccess().getUnorderedGroup_3());
+ }
+ )
+ )
+ )*
+ )
+ )
+ {
+ getUnorderedGroupHelper().leave(grammarAccess.getOffsetAccess().getUnorderedGroup_3());
+ }
+ )
+ otherlv_11='}'
+ {
+ newLeafNode(otherlv_11, grammarAccess.getOffsetAccess().getRightCurlyBracketKeyword_4());
+ }
+ )
+;
+
+// Entry rule entryRuleAreaSet
+entryRuleAreaSet returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getAreaSetRule()); }
+ iv_ruleAreaSet=ruleAreaSet
+ { $current=$iv_ruleAreaSet.current; }
+ EOF;
+
+// Rule AreaSet
+ruleAreaSet returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getAreaSetAccess().getAreaSetAction_0(),
+ $current);
+ }
+ )
+ otherlv_1='AreaSet'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getAreaSetAccess().getAreaSetKeyword_1());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getAreaSetAccess().getNameQualifiedNameParserRuleCall_2_0());
+ }
+ lv_name_2_0=ruleQualifiedName
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAreaSetRule());
+ }
+ set(
+ $current,
+ "name",
+ lv_name_2_0,
+ "rba.tool.editor.RBAModel.QualifiedName");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ otherlv_3='{'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getAreaSetAccess().getLeftCurlyBracketKeyword_3());
+ }
+ (
+ (
+ {
+ getUnorderedGroupHelper().enter(grammarAccess.getAreaSetAccess().getUnorderedGroup_4());
+ }
+ (
+ (
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getAreaSetAccess().getUnorderedGroup_4(), 0)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getAreaSetAccess().getUnorderedGroup_4(), 0);
+ }
+ ({true}?=>(otherlv_5='description:'
+ {
+ newLeafNode(otherlv_5, grammarAccess.getAreaSetAccess().getDescriptionKeyword_4_0_0());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getAreaSetAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+ }
+ lv_description_6_0=ruleEString
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAreaSetRule());
+ }
+ set(
+ $current,
+ "description",
+ lv_description_6_0,
+ "rba.tool.editor.RBAModel.EString");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getAreaSetAccess().getUnorderedGroup_4());
+ }
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getAreaSetAccess().getUnorderedGroup_4(), 1)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getAreaSetAccess().getUnorderedGroup_4(), 1);
+ }
+ ({true}?=>(otherlv_7='target:'
+ {
+ newLeafNode(otherlv_7, grammarAccess.getAreaSetAccess().getTargetKeyword_4_1_0());
+ }
+ otherlv_8='['
+ {
+ newLeafNode(otherlv_8, grammarAccess.getAreaSetAccess().getLeftSquareBracketKeyword_4_1_1());
+ }
+ (
+ (
+ (
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getAreaSetRule());
+ }
+ }
+ {
+ newCompositeNode(grammarAccess.getAreaSetAccess().getTargetAbstractAllocatableCrossReference_4_1_2_0_0());
+ }
+ ruleQualifiedName
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ (
+ otherlv_10=','
+ {
+ newLeafNode(otherlv_10, grammarAccess.getAreaSetAccess().getCommaKeyword_4_1_2_1_0());
+ }
+ (
+ (
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getAreaSetRule());
+ }
+ }
+ {
+ newCompositeNode(grammarAccess.getAreaSetAccess().getTargetAbstractAllocatableCrossReference_4_1_2_1_1_0());
+ }
+ ruleQualifiedName
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ )*
+ )?
+ otherlv_12=']'
+ {
+ newLeafNode(otherlv_12, grammarAccess.getAreaSetAccess().getRightSquareBracketKeyword_4_1_3());
+ }
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getAreaSetAccess().getUnorderedGroup_4());
+ }
+ )
+ )
+ )*
+ )
+ )
+ {
+ getUnorderedGroupHelper().leave(grammarAccess.getAreaSetAccess().getUnorderedGroup_4());
+ }
+ )
+ otherlv_13='}'
+ {
+ newLeafNode(otherlv_13, grammarAccess.getAreaSetAccess().getRightCurlyBracketKeyword_5());
+ }
+ )
+;
+
+// Entry rule entryRuleZoneSet
+entryRuleZoneSet returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getZoneSetRule()); }
+ iv_ruleZoneSet=ruleZoneSet
+ { $current=$iv_ruleZoneSet.current; }
+ EOF;
+
+// Rule ZoneSet
+ruleZoneSet returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getZoneSetAccess().getZoneSetAction_0(),
+ $current);
+ }
+ )
+ otherlv_1='ZoneSet'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getZoneSetAccess().getZoneSetKeyword_1());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getZoneSetAccess().getNameQualifiedNameParserRuleCall_2_0());
+ }
+ lv_name_2_0=ruleQualifiedName
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getZoneSetRule());
+ }
+ set(
+ $current,
+ "name",
+ lv_name_2_0,
+ "rba.tool.editor.RBAModel.QualifiedName");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ otherlv_3='{'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getZoneSetAccess().getLeftCurlyBracketKeyword_3());
+ }
+ (
+ (
+ {
+ getUnorderedGroupHelper().enter(grammarAccess.getZoneSetAccess().getUnorderedGroup_4());
+ }
+ (
+ (
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getZoneSetAccess().getUnorderedGroup_4(), 0)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getZoneSetAccess().getUnorderedGroup_4(), 0);
+ }
+ ({true}?=>(otherlv_5='description:'
+ {
+ newLeafNode(otherlv_5, grammarAccess.getZoneSetAccess().getDescriptionKeyword_4_0_0());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getZoneSetAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+ }
+ lv_description_6_0=ruleEString
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getZoneSetRule());
+ }
+ set(
+ $current,
+ "description",
+ lv_description_6_0,
+ "rba.tool.editor.RBAModel.EString");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getZoneSetAccess().getUnorderedGroup_4());
+ }
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getZoneSetAccess().getUnorderedGroup_4(), 1)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getZoneSetAccess().getUnorderedGroup_4(), 1);
+ }
+ ({true}?=>(otherlv_7='target:'
+ {
+ newLeafNode(otherlv_7, grammarAccess.getZoneSetAccess().getTargetKeyword_4_1_0());
+ }
+ otherlv_8='['
+ {
+ newLeafNode(otherlv_8, grammarAccess.getZoneSetAccess().getLeftSquareBracketKeyword_4_1_1());
+ }
+ (
+ (
+ (
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getZoneSetRule());
+ }
+ }
+ {
+ newCompositeNode(grammarAccess.getZoneSetAccess().getTargetAbstractAllocatableCrossReference_4_1_2_0_0());
+ }
+ ruleQualifiedName
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ (
+ otherlv_10=','
+ {
+ newLeafNode(otherlv_10, grammarAccess.getZoneSetAccess().getCommaKeyword_4_1_2_1_0());
+ }
+ (
+ (
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getZoneSetRule());
+ }
+ }
+ {
+ newCompositeNode(grammarAccess.getZoneSetAccess().getTargetAbstractAllocatableCrossReference_4_1_2_1_1_0());
+ }
+ ruleQualifiedName
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ )*
+ )?
+ otherlv_12=']'
+ {
+ newLeafNode(otherlv_12, grammarAccess.getZoneSetAccess().getRightSquareBracketKeyword_4_1_3());
+ }
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getZoneSetAccess().getUnorderedGroup_4());
+ }
+ )
+ )
+ )*
+ )
+ )
+ {
+ getUnorderedGroupHelper().leave(grammarAccess.getZoneSetAccess().getUnorderedGroup_4());
+ }
+ )
+ otherlv_13='}'
+ {
+ newLeafNode(otherlv_13, grammarAccess.getZoneSetAccess().getRightCurlyBracketKeyword_5());
+ }
+ )
+;
+
+// Entry rule entryRuleCompositeArea
+entryRuleCompositeArea returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getCompositeAreaRule()); }
+ iv_ruleCompositeArea=ruleCompositeArea
+ { $current=$iv_ruleCompositeArea.current; }
+ EOF;
+
+// Rule CompositeArea
+ruleCompositeArea returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getCompositeAreaAccess().getCompositeAreaAction_0(),
+ $current);
+ }
+ )
+ otherlv_1='CompositeArea'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getCompositeAreaAccess().getCompositeAreaKeyword_1());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getCompositeAreaAccess().getNameQualifiedNameParserRuleCall_2_0());
+ }
+ lv_name_2_0=ruleQualifiedName
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getCompositeAreaRule());
+ }
+ set(
+ $current,
+ "name",
+ lv_name_2_0,
+ "rba.tool.editor.RBAModel.QualifiedName");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ otherlv_3='{'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getCompositeAreaAccess().getLeftCurlyBracketKeyword_3());
+ }
+ (
+ (
+ {
+ getUnorderedGroupHelper().enter(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4());
+ }
+ (
+ (
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4(), 0)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4(), 0);
+ }
+ ({true}?=>(otherlv_5='description:'
+ {
+ newLeafNode(otherlv_5, grammarAccess.getCompositeAreaAccess().getDescriptionKeyword_4_0_0());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getCompositeAreaAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+ }
+ lv_description_6_0=ruleEString
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getCompositeAreaRule());
+ }
+ set(
+ $current,
+ "description",
+ lv_description_6_0,
+ "rba.tool.editor.RBAModel.EString");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4());
+ }
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4(), 1)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4(), 1);
+ }
+ ({true}?=>(otherlv_7='layout:'
+ {
+ newLeafNode(otherlv_7, grammarAccess.getCompositeAreaAccess().getLayoutKeyword_4_1_0());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getCompositeAreaAccess().getLayoutLayoutManagerParserRuleCall_4_1_1_0());
+ }
+ lv_layout_8_0=ruleLayoutManager
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getCompositeAreaRule());
+ }
+ set(
+ $current,
+ "layout",
+ lv_layout_8_0,
+ "rba.tool.editor.RBAModel.LayoutManager");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4());
+ }
+ )
+ )
+ )*
+ )
+ )
+ {
+ getUnorderedGroupHelper().leave(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4());
+ }
+ )
+ otherlv_9='}'
+ {
+ newLeafNode(otherlv_9, grammarAccess.getCompositeAreaAccess().getRightCurlyBracketKeyword_5());
+ }
+ )
+;
+
+// Entry rule entryRuleArea
+entryRuleArea returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getAreaRule()); }
+ iv_ruleArea=ruleArea
+ { $current=$iv_ruleArea.current; }
+ EOF;
+
+// Rule Area
+ruleArea returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getAreaAccess().getAreaAction_0(),
+ $current);
+ }
+ )
+ otherlv_1='Area'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getAreaAccess().getAreaKeyword_1());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getAreaAccess().getNameQualifiedNameParserRuleCall_2_0());
+ }
+ lv_name_2_0=ruleQualifiedName
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAreaRule());
+ }
+ set(
+ $current,
+ "name",
+ lv_name_2_0,
+ "rba.tool.editor.RBAModel.QualifiedName");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ otherlv_3='{'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getAreaAccess().getLeftCurlyBracketKeyword_3());
+ }
+ (
+ (
+ {
+ getUnorderedGroupHelper().enter(grammarAccess.getAreaAccess().getUnorderedGroup_4());
+ }
+ (
+ (
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 0)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 0);
+ }
+ ({true}?=>(otherlv_5='description:'
+ {
+ newLeafNode(otherlv_5, grammarAccess.getAreaAccess().getDescriptionKeyword_4_0_0());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getAreaAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+ }
+ lv_description_6_0=ruleEString
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAreaRule());
+ }
+ set(
+ $current,
+ "description",
+ lv_description_6_0,
+ "rba.tool.editor.RBAModel.EString");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getAreaAccess().getUnorderedGroup_4());
+ }
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 1)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 1);
+ }
+ ({true}?=>(otherlv_7='arbitrationPolicy:'
+ {
+ newLeafNode(otherlv_7, grammarAccess.getAreaAccess().getArbitrationPolicyKeyword_4_1_0());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getAreaAccess().getArbitrationPolicyArbitrationPolicyEnumRuleCall_4_1_1_0());
+ }
+ lv_arbitrationPolicy_8_0=ruleArbitrationPolicy
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAreaRule());
+ }
+ set(
+ $current,
+ "arbitrationPolicy",
+ lv_arbitrationPolicy_8_0,
+ "rba.tool.editor.RBAModel.ArbitrationPolicy");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getAreaAccess().getUnorderedGroup_4());
+ }
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 2)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 2);
+ }
+ ({true}?=>((
+ {
+ newCompositeNode(grammarAccess.getAreaAccess().getSizeSizeIdentifierParserRuleCall_4_2_0());
+ }
+ lv_size_9_0=ruleSizeIdentifier
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAreaRule());
+ }
+ add(
+ $current,
+ "size",
+ lv_size_9_0,
+ "rba.tool.editor.RBAModel.SizeIdentifier");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ ))+
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getAreaAccess().getUnorderedGroup_4());
+ }
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 3)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 3);
+ }
+ ({true}?=>((
+ otherlv_10='visibility:'
+ {
+ newLeafNode(otherlv_10, grammarAccess.getAreaAccess().getVisibilityKeyword_4_3_0_0());
+ }
+ |
+ otherlv_11='priority:'
+ {
+ newLeafNode(otherlv_11, grammarAccess.getAreaAccess().getPriorityKeyword_4_3_0_1());
+ }
+ )
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getAreaAccess().getVisibilityVExpressionParserRuleCall_4_3_1_0());
+ }
+ lv_visibility_12_0=ruleVExpression
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAreaRule());
+ }
+ set(
+ $current,
+ "visibility",
+ lv_visibility_12_0,
+ "rba.tool.editor.RBAModel.VExpression");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getAreaAccess().getUnorderedGroup_4());
+ }
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 4)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 4);
+ }
+ ({true}?=>(otherlv_13='zorder:'
+ {
+ newLeafNode(otherlv_13, grammarAccess.getAreaAccess().getZorderKeyword_4_4_0());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getAreaAccess().getZorderVExpressionParserRuleCall_4_4_1_0());
+ }
+ lv_zorder_14_0=ruleVExpression
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAreaRule());
+ }
+ set(
+ $current,
+ "zorder",
+ lv_zorder_14_0,
+ "rba.tool.editor.RBAModel.VExpression");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getAreaAccess().getUnorderedGroup_4());
+ }
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 5)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 5);
+ }
+ ({true}?=>((
+ {
+ newCompositeNode(grammarAccess.getAreaAccess().getTagsTagParserRuleCall_4_5_0());
+ }
+ lv_tags_15_0=ruleTag
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAreaRule());
+ }
+ add(
+ $current,
+ "tags",
+ lv_tags_15_0,
+ "rba.tool.editor.RBAModel.Tag");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ ))+
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getAreaAccess().getUnorderedGroup_4());
+ }
+ )
+ )
+ )*
+ )
+ )
+ {
+ getUnorderedGroupHelper().leave(grammarAccess.getAreaAccess().getUnorderedGroup_4());
+ }
+ )
+ otherlv_16='}'
+ {
+ newLeafNode(otherlv_16, grammarAccess.getAreaAccess().getRightCurlyBracketKeyword_5());
+ }
+ )
+;
+
+// Entry rule entryRuleZone
+entryRuleZone returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getZoneRule()); }
+ iv_ruleZone=ruleZone
+ { $current=$iv_ruleZone.current; }
+ EOF;
+
+// Rule Zone
+ruleZone returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getZoneAccess().getZoneAction_0(),
+ $current);
+ }
+ )
+ otherlv_1='Zone'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getZoneAccess().getZoneKeyword_1());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getZoneAccess().getNameQualifiedNameParserRuleCall_2_0());
+ }
+ lv_name_2_0=ruleQualifiedName
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getZoneRule());
+ }
+ set(
+ $current,
+ "name",
+ lv_name_2_0,
+ "rba.tool.editor.RBAModel.QualifiedName");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ otherlv_3='{'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getZoneAccess().getLeftCurlyBracketKeyword_3());
+ }
+ (
+ (
+ {
+ getUnorderedGroupHelper().enter(grammarAccess.getZoneAccess().getUnorderedGroup_4());
+ }
+ (
+ (
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 0)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 0);
+ }
+ ({true}?=>(otherlv_5='description:'
+ {
+ newLeafNode(otherlv_5, grammarAccess.getZoneAccess().getDescriptionKeyword_4_0_0());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getZoneAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+ }
+ lv_description_6_0=ruleEString
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getZoneRule());
+ }
+ set(
+ $current,
+ "description",
+ lv_description_6_0,
+ "rba.tool.editor.RBAModel.EString");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getZoneAccess().getUnorderedGroup_4());
+ }
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 1)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 1);
+ }
+ ({true}?=>(otherlv_7='arbitrationPolicy:'
+ {
+ newLeafNode(otherlv_7, grammarAccess.getZoneAccess().getArbitrationPolicyKeyword_4_1_0());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getZoneAccess().getArbitrationPolicyArbitrationPolicyEnumRuleCall_4_1_1_0());
+ }
+ lv_arbitrationPolicy_8_0=ruleArbitrationPolicy
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getZoneRule());
+ }
+ set(
+ $current,
+ "arbitrationPolicy",
+ lv_arbitrationPolicy_8_0,
+ "rba.tool.editor.RBAModel.ArbitrationPolicy");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getZoneAccess().getUnorderedGroup_4());
+ }
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 2)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 2);
+ }
+ ({true}?=>((
+ otherlv_9='visibility:'
+ {
+ newLeafNode(otherlv_9, grammarAccess.getZoneAccess().getVisibilityKeyword_4_2_0_0());
+ }
+ |
+ otherlv_10='priority:'
+ {
+ newLeafNode(otherlv_10, grammarAccess.getZoneAccess().getPriorityKeyword_4_2_0_1());
+ }
+ )
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getZoneAccess().getVisibilityVExpressionParserRuleCall_4_2_1_0());
+ }
+ lv_visibility_11_0=ruleVExpression
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getZoneRule());
+ }
+ set(
+ $current,
+ "visibility",
+ lv_visibility_11_0,
+ "rba.tool.editor.RBAModel.VExpression");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getZoneAccess().getUnorderedGroup_4());
+ }
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 3)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 3);
+ }
+ ({true}?=>(otherlv_12='attenuateValue:'
+ {
+ newLeafNode(otherlv_12, grammarAccess.getZoneAccess().getAttenuateValueKeyword_4_3_0());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getZoneAccess().getAttenuateIntegerValueParserRuleCall_4_3_1_0());
+ }
+ lv_attenuate_13_0=ruleIntegerValue
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getZoneRule());
+ }
+ set(
+ $current,
+ "attenuate",
+ lv_attenuate_13_0,
+ "rba.tool.editor.RBAModel.IntegerValue");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getZoneAccess().getUnorderedGroup_4());
+ }
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 4)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 4);
+ }
+ ({true}?=>((
+ {
+ newCompositeNode(grammarAccess.getZoneAccess().getTagsTagParserRuleCall_4_4_0());
+ }
+ lv_tags_14_0=ruleTag
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getZoneRule());
+ }
+ add(
+ $current,
+ "tags",
+ lv_tags_14_0,
+ "rba.tool.editor.RBAModel.Tag");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ ))+
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getZoneAccess().getUnorderedGroup_4());
+ }
+ )
+ )
+ )*
+ )
+ )
+ {
+ getUnorderedGroupHelper().leave(grammarAccess.getZoneAccess().getUnorderedGroup_4());
+ }
+ )
+ otherlv_15='}'
+ {
+ newLeafNode(otherlv_15, grammarAccess.getZoneAccess().getRightCurlyBracketKeyword_5());
+ }
+ )
+;
+
+// Entry rule entryRuleViewContentState
+entryRuleViewContentState returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getViewContentStateRule()); }
+ iv_ruleViewContentState=ruleViewContentState
+ { $current=$iv_ruleViewContentState.current; }
+ EOF;
+
+// Rule ViewContentState
+ruleViewContentState returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getViewContentStateAccess().getViewContentStateAction_0(),
+ $current);
+ }
+ )
+ otherlv_1='State'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getViewContentStateAccess().getStateKeyword_1());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getViewContentStateAccess().getNameQualifiedNameParserRuleCall_2_0());
+ }
+ lv_name_2_0=ruleQualifiedName
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getViewContentStateRule());
+ }
+ set(
+ $current,
+ "name",
+ lv_name_2_0,
+ "rba.tool.editor.RBAModel.QualifiedName");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ otherlv_3='{'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getViewContentStateAccess().getLeftCurlyBracketKeyword_3());
+ }
+ (
+ (
+ {
+ getUnorderedGroupHelper().enter(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4());
+ }
+ (
+ (
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4(), 0)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4(), 0);
+ }
+ ({true}?=>(otherlv_5='description:'
+ {
+ newLeafNode(otherlv_5, grammarAccess.getViewContentStateAccess().getDescriptionKeyword_4_0_0());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getViewContentStateAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+ }
+ lv_description_6_0=ruleEString
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getViewContentStateRule());
+ }
+ set(
+ $current,
+ "description",
+ lv_description_6_0,
+ "rba.tool.editor.RBAModel.EString");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4());
+ }
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4(), 1)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4(), 1);
+ }
+ ({true}?=>((
+ otherlv_7='priority:'
+ {
+ newLeafNode(otherlv_7, grammarAccess.getViewContentStateAccess().getPriorityKeyword_4_1_0_0());
+ }
+ |
+ otherlv_8='value:'
+ {
+ newLeafNode(otherlv_8, grammarAccess.getViewContentStateAccess().getValueKeyword_4_1_0_1());
+ }
+ )
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getViewContentStateAccess().getValueVExpressionParserRuleCall_4_1_1_0());
+ }
+ lv_value_9_0=ruleVExpression
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getViewContentStateRule());
+ }
+ set(
+ $current,
+ "value",
+ lv_value_9_0,
+ "rba.tool.editor.RBAModel.VExpression");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4());
+ }
+ )
+ )
+ )*
+ )
+ )
+ {
+ getUnorderedGroupHelper().leave(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4());
+ }
+ )
+ otherlv_10='}'
+ {
+ newLeafNode(otherlv_10, grammarAccess.getViewContentStateAccess().getRightCurlyBracketKeyword_5());
+ }
+ )
+;
+
+// Entry rule entryRuleSoundContentState
+entryRuleSoundContentState returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getSoundContentStateRule()); }
+ iv_ruleSoundContentState=ruleSoundContentState
+ { $current=$iv_ruleSoundContentState.current; }
+ EOF;
+
+// Rule SoundContentState
+ruleSoundContentState returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getSoundContentStateAccess().getSoundContentStateAction_0(),
+ $current);
+ }
+ )
+ otherlv_1='State'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getSoundContentStateAccess().getStateKeyword_1());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getSoundContentStateAccess().getNameQualifiedNameParserRuleCall_2_0());
+ }
+ lv_name_2_0=ruleQualifiedName
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSoundContentStateRule());
+ }
+ set(
+ $current,
+ "name",
+ lv_name_2_0,
+ "rba.tool.editor.RBAModel.QualifiedName");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ otherlv_3='{'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getSoundContentStateAccess().getLeftCurlyBracketKeyword_3());
+ }
+ (
+ (
+ {
+ getUnorderedGroupHelper().enter(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4());
+ }
+ (
+ (
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4(), 0)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4(), 0);
+ }
+ ({true}?=>(otherlv_5='description:'
+ {
+ newLeafNode(otherlv_5, grammarAccess.getSoundContentStateAccess().getDescriptionKeyword_4_0_0());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getSoundContentStateAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+ }
+ lv_description_6_0=ruleEString
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSoundContentStateRule());
+ }
+ set(
+ $current,
+ "description",
+ lv_description_6_0,
+ "rba.tool.editor.RBAModel.EString");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4());
+ }
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4(), 1)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4(), 1);
+ }
+ ({true}?=>((
+ otherlv_7='priority:'
+ {
+ newLeafNode(otherlv_7, grammarAccess.getSoundContentStateAccess().getPriorityKeyword_4_1_0_0());
+ }
+ |
+ otherlv_8='value:'
+ {
+ newLeafNode(otherlv_8, grammarAccess.getSoundContentStateAccess().getValueKeyword_4_1_0_1());
+ }
+ )
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getSoundContentStateAccess().getValueVExpressionParserRuleCall_4_1_1_0());
+ }
+ lv_value_9_0=ruleVExpression
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSoundContentStateRule());
+ }
+ set(
+ $current,
+ "value",
+ lv_value_9_0,
+ "rba.tool.editor.RBAModel.VExpression");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4());
+ }
+ )
+ )
+ )*
+ )
+ )
+ {
+ getUnorderedGroupHelper().leave(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4());
+ }
+ )
+ otherlv_10='}'
+ {
+ newLeafNode(otherlv_10, grammarAccess.getSoundContentStateAccess().getRightCurlyBracketKeyword_5());
+ }
+ )
+;
+
+// Entry rule entryRuleProject
+entryRuleProject returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getProjectRule()); }
+ iv_ruleProject=ruleProject
+ { $current=$iv_ruleProject.current; }
+ EOF;
+
+// Rule Project
+ruleProject returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getProjectAccess().getProjectAction_0(),
+ $current);
+ }
+ )
+ otherlv_1='Project'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getProjectAccess().getProjectKeyword_1());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getProjectAccess().getDummyNameQualifiedNameParserRuleCall_2_0());
+ }
+ lv_dummyName_2_0=ruleQualifiedName
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getProjectRule());
+ }
+ set(
+ $current,
+ "dummyName",
+ lv_dummyName_2_0,
+ "rba.tool.editor.RBAModel.QualifiedName");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )?
+ otherlv_3='{'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getProjectAccess().getLeftCurlyBracketKeyword_3());
+ }
+ otherlv_4='version:'
+ {
+ newLeafNode(otherlv_4, grammarAccess.getProjectAccess().getVersionKeyword_4());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getProjectAccess().getVersionEStringParserRuleCall_5_0());
+ }
+ lv_version_5_0=ruleEString
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getProjectRule());
+ }
+ set(
+ $current,
+ "version",
+ lv_version_5_0,
+ "rba.tool.editor.RBAModel.EString");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ otherlv_6='}'
+ {
+ newLeafNode(otherlv_6, grammarAccess.getProjectAccess().getRightCurlyBracketKeyword_6());
+ }
+ )
+;
+
+// Entry rule entryRuleVExpression
+entryRuleVExpression returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getVExpressionRule()); }
+ iv_ruleVExpression=ruleVExpression
+ { $current=$iv_ruleVExpression.current; }
+ EOF;
+
+// Rule VExpression
+ruleVExpression returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ {
+ newCompositeNode(grammarAccess.getVExpressionAccess().getVPlusOperatorParserRuleCall());
+ }
+ this_VPlusOperator_0=ruleVPlusOperator
+ {
+ $current = $this_VPlusOperator_0.current;
+ afterParserOrEnumRuleCall();
+ }
+;
+
+// Entry rule entryRuleVPlusOperator
+entryRuleVPlusOperator returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getVPlusOperatorRule()); }
+ iv_ruleVPlusOperator=ruleVPlusOperator
+ { $current=$iv_ruleVPlusOperator.current; }
+ EOF;
+
+// Rule VPlusOperator
+ruleVPlusOperator returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ {
+ newCompositeNode(grammarAccess.getVPlusOperatorAccess().getVComparisonAndParserRuleCall_0());
+ }
+ this_VComparisonAnd_0=ruleVComparisonAnd
+ {
+ $current = $this_VComparisonAnd_0.current;
+ afterParserOrEnumRuleCall();
+ }
+ (
+ (
+ ((
+ (
+ )
+ ruleOpPlus
+ )
+ )=>
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getVPlusOperatorAccess().getPlusOperatorOperandAction_1_0_0_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getVPlusOperatorAccess().getOpPlusParserRuleCall_1_0_0_1());
+ }
+ ruleOpPlus
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getVPlusOperatorAccess().getOperandVComparisonAndParserRuleCall_1_1_0());
+ }
+ lv_operand_3_0=ruleVComparisonAnd
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getVPlusOperatorRule());
+ }
+ add(
+ $current,
+ "operand",
+ lv_operand_3_0,
+ "rba.tool.editor.RBAModel.VComparisonAnd");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ )*
+ )
+;
+
+// Entry rule entryRuleOpPlus
+entryRuleOpPlus returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpPlusRule()); }
+ iv_ruleOpPlus=ruleOpPlus
+ { $current=$iv_ruleOpPlus.current.getText(); }
+ EOF;
+
+// Rule OpPlus
+ruleOpPlus returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='+'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpPlusAccess().getPlusSignKeyword());
+ }
+;
+
+// Entry rule entryRuleVComparisonAnd
+entryRuleVComparisonAnd returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getVComparisonAndRule()); }
+ iv_ruleVComparisonAnd=ruleVComparisonAnd
+ { $current=$iv_ruleVComparisonAnd.current; }
+ EOF;
+
+// Rule VComparisonAnd
+ruleVComparisonAnd returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ {
+ newCompositeNode(grammarAccess.getVComparisonAndAccess().getVRelationalExpressionParserRuleCall_0());
+ }
+ this_VRelationalExpression_0=ruleVRelationalExpression
+ {
+ $current = $this_VRelationalExpression_0.current;
+ afterParserOrEnumRuleCall();
+ }
+ (
+ (
+ ((
+ (
+ )
+ ruleOpAnd
+ )
+ )=>
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getVComparisonAndAccess().getComparisonAndOperandAction_1_0_0_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getVComparisonAndAccess().getOpAndParserRuleCall_1_0_0_1());
+ }
+ ruleOpAnd
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getVComparisonAndAccess().getOperandVRelationalExpressionParserRuleCall_1_1_0());
+ }
+ lv_operand_3_0=ruleVRelationalExpression
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getVComparisonAndRule());
+ }
+ add(
+ $current,
+ "operand",
+ lv_operand_3_0,
+ "rba.tool.editor.RBAModel.VRelationalExpression");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ )*
+ )
+;
+
+// Entry rule entryRuleVRelationalExpression
+entryRuleVRelationalExpression returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getVRelationalExpressionRule()); }
+ iv_ruleVRelationalExpression=ruleVRelationalExpression
+ { $current=$iv_ruleVRelationalExpression.current; }
+ EOF;
+
+// Rule VRelationalExpression
+ruleVRelationalExpression returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ {
+ newCompositeNode(grammarAccess.getVRelationalExpressionAccess().getVPrimaryExpressionParserRuleCall_0());
+ }
+ this_VPrimaryExpression_0=ruleVPrimaryExpression
+ {
+ $current = $this_VPrimaryExpression_0.current;
+ afterParserOrEnumRuleCall();
+ }
+ |
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getVRelationalExpressionAccess().getMuchGreaterThanOperatorAction_1_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getVRelationalExpressionAccess().getOpMuchGreaterThanParserRuleCall_1_1());
+ }
+ ruleOpMuchGreaterThan
+ {
+ afterParserOrEnumRuleCall();
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getVRelationalExpressionAccess().getOperandVPrimaryExpressionParserRuleCall_1_2_0());
+ }
+ lv_operand_3_0=ruleVPrimaryExpression
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getVRelationalExpressionRule());
+ }
+ add(
+ $current,
+ "operand",
+ lv_operand_3_0,
+ "rba.tool.editor.RBAModel.VPrimaryExpression");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ )
+ |
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getVRelationalExpressionAccess().getEqualToOperatorAction_2_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getVRelationalExpressionAccess().getOpEqualToParserRuleCall_2_1());
+ }
+ ruleOpEqualTo
+ {
+ afterParserOrEnumRuleCall();
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getVRelationalExpressionAccess().getOperandVPrimaryExpressionParserRuleCall_2_2_0());
+ }
+ lv_operand_6_0=ruleVPrimaryExpression
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getVRelationalExpressionRule());
+ }
+ add(
+ $current,
+ "operand",
+ lv_operand_6_0,
+ "rba.tool.editor.RBAModel.VPrimaryExpression");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ )
+ |
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getVRelationalExpressionAccess().getGreaterThanOperatorAction_3_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getVRelationalExpressionAccess().getOpGreaterThanParserRuleCall_3_1());
+ }
+ ruleOpGreaterThan
+ {
+ afterParserOrEnumRuleCall();
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getVRelationalExpressionAccess().getOperandVPrimaryExpressionParserRuleCall_3_2_0());
+ }
+ lv_operand_9_0=ruleVPrimaryExpression
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getVRelationalExpressionRule());
+ }
+ add(
+ $current,
+ "operand",
+ lv_operand_9_0,
+ "rba.tool.editor.RBAModel.VPrimaryExpression");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ )
+ |
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getVRelationalExpressionAccess().getLowerThanOperatorAction_4_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getVRelationalExpressionAccess().getOpLowerThanParserRuleCall_4_1());
+ }
+ ruleOpLowerThan
+ {
+ afterParserOrEnumRuleCall();
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getVRelationalExpressionAccess().getOperandVPrimaryExpressionParserRuleCall_4_2_0());
+ }
+ lv_operand_12_0=ruleVPrimaryExpression
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getVRelationalExpressionRule());
+ }
+ add(
+ $current,
+ "operand",
+ lv_operand_12_0,
+ "rba.tool.editor.RBAModel.VPrimaryExpression");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ )
+ )
+;
+
+// Entry rule entryRuleOpMuchGreaterThan
+entryRuleOpMuchGreaterThan returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpMuchGreaterThanRule()); }
+ iv_ruleOpMuchGreaterThan=ruleOpMuchGreaterThan
+ { $current=$iv_ruleOpMuchGreaterThan.current.getText(); }
+ EOF;
+
+// Rule OpMuchGreaterThan
+ruleOpMuchGreaterThan returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='>>'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpMuchGreaterThanAccess().getGreaterThanSignGreaterThanSignKeyword());
+ }
+;
+
+// Entry rule entryRuleOpEqualTo
+entryRuleOpEqualTo returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpEqualToRule()); }
+ iv_ruleOpEqualTo=ruleOpEqualTo
+ { $current=$iv_ruleOpEqualTo.current.getText(); }
+ EOF;
+
+// Rule OpEqualTo
+ruleOpEqualTo returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='='
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpEqualToAccess().getEqualsSignKeyword());
+ }
+;
+
+// Entry rule entryRuleOpGreaterThan
+entryRuleOpGreaterThan returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpGreaterThanRule()); }
+ iv_ruleOpGreaterThan=ruleOpGreaterThan
+ { $current=$iv_ruleOpGreaterThan.current.getText(); }
+ EOF;
+
+// Rule OpGreaterThan
+ruleOpGreaterThan returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='>'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpGreaterThanAccess().getGreaterThanSignKeyword());
+ }
+;
+
+// Entry rule entryRuleOpLowerThan
+entryRuleOpLowerThan returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpLowerThanRule()); }
+ iv_ruleOpLowerThan=ruleOpLowerThan
+ { $current=$iv_ruleOpLowerThan.current.getText(); }
+ EOF;
+
+// Rule OpLowerThan
+ruleOpLowerThan returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='<'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpLowerThanAccess().getLessThanSignKeyword());
+ }
+;
+
+// Entry rule entryRuleVPrimaryExpression
+entryRuleVPrimaryExpression returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getVPrimaryExpressionRule()); }
+ iv_ruleVPrimaryExpression=ruleVPrimaryExpression
+ { $current=$iv_ruleVPrimaryExpression.current; }
+ EOF;
+
+// Rule VPrimaryExpression
+ruleVPrimaryExpression returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ {
+ newCompositeNode(grammarAccess.getVPrimaryExpressionAccess().getThatOfOperatorParserRuleCall_0());
+ }
+ this_ThatOfOperator_0=ruleThatOfOperator
+ {
+ $current = $this_ThatOfOperator_0.current;
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getVPrimaryExpressionAccess().getVValueExpressionParserRuleCall_1());
+ }
+ this_VValueExpression_1=ruleVValueExpression
+ {
+ $current = $this_VValueExpression_1.current;
+ afterParserOrEnumRuleCall();
+ }
+ |
+ (
+ otherlv_2='('
+ {
+ newLeafNode(otherlv_2, grammarAccess.getVPrimaryExpressionAccess().getLeftParenthesisKeyword_2_0());
+ }
+ {
+ newCompositeNode(grammarAccess.getVPrimaryExpressionAccess().getVExpressionParserRuleCall_2_1());
+ }
+ this_VExpression_3=ruleVExpression
+ {
+ $current = $this_VExpression_3.current;
+ afterParserOrEnumRuleCall();
+ }
+ otherlv_4=')'
+ {
+ newLeafNode(otherlv_4, grammarAccess.getVPrimaryExpressionAccess().getRightParenthesisKeyword_2_2());
+ }
+ )
+ )
+;
+
+// Entry rule entryRuleVValueExpression
+entryRuleVValueExpression returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getVValueExpressionRule()); }
+ iv_ruleVValueExpression=ruleVValueExpression
+ { $current=$iv_ruleVValueExpression.current; }
+ EOF;
+
+// Rule VValueExpression
+ruleVValueExpression returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ {
+ newCompositeNode(grammarAccess.getVValueExpressionAccess().getIntegerValueParserRuleCall_0());
+ }
+ this_IntegerValue_0=ruleIntegerValue
+ {
+ $current = $this_IntegerValue_0.current;
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getVValueExpressionAccess().getStandardValueParserRuleCall_1());
+ }
+ this_StandardValue_1=ruleStandardValue
+ {
+ $current = $this_StandardValue_1.current;
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getVValueExpressionAccess().getNoneValueParserRuleCall_2());
+ }
+ this_NoneValue_2=ruleNoneValue
+ {
+ $current = $this_NoneValue_2.current;
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getVValueExpressionAccess().getMinValueParserRuleCall_3());
+ }
+ this_MinValue_3=ruleMinValue
+ {
+ $current = $this_MinValue_3.current;
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getVValueExpressionAccess().getMaxValueParserRuleCall_4());
+ }
+ this_MaxValue_4=ruleMaxValue
+ {
+ $current = $this_MaxValue_4.current;
+ afterParserOrEnumRuleCall();
+ }
+ )
+;
+
+// Entry rule entryRuleThatOfOperator
+entryRuleThatOfOperator returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getThatOfOperatorRule()); }
+ iv_ruleThatOfOperator=ruleThatOfOperator
+ { $current=$iv_ruleThatOfOperator.current; }
+ EOF;
+
+// Rule ThatOfOperator
+ruleThatOfOperator returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getThatOfOperatorAccess().getThatOfOperatorAction_0(),
+ $current);
+ }
+ )
+ otherlv_1='That-of'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getThatOfOperatorAccess().getThatOfKeyword_1());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getThatOfOperatorAccess().getOperandVMemberFeatureReferenceParserRuleCall_2_0());
+ }
+ lv_operand_2_0=ruleVMemberFeatureReference
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getThatOfOperatorRule());
+ }
+ add(
+ $current,
+ "operand",
+ lv_operand_2_0,
+ "rba.tool.editor.RBAModel.VMemberFeatureReference");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )?
+ )
+;
+
+// Entry rule entryRuleVMemberFeatureReference
+entryRuleVMemberFeatureReference returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getVMemberFeatureReferenceRule()); }
+ iv_ruleVMemberFeatureReference=ruleVMemberFeatureReference
+ { $current=$iv_ruleVMemberFeatureReference.current; }
+ EOF;
+
+// Rule VMemberFeatureReference
+ruleVMemberFeatureReference returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getVMemberFeatureReferenceAccess().getObjectReferenceAction_0(),
+ $current);
+ }
+ )
+ (
+ (
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getVMemberFeatureReferenceRule());
+ }
+ }
+ {
+ newCompositeNode(grammarAccess.getVMemberFeatureReferenceAccess().getRefObjectRuleObjectCrossReference_1_0());
+ }
+ ruleValidID
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getVMemberFeatureReferenceAccess().getMemberFeatureReferenceOperandAction_2_0(),
+ $current);
+ }
+ )
+ otherlv_3='.'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getVMemberFeatureReferenceAccess().getFullStopKeyword_2_1());
+ }
+ (
+ (
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getVMemberFeatureReferenceRule());
+ }
+ }
+ {
+ newCompositeNode(grammarAccess.getVMemberFeatureReferenceAccess().getRefObjectRuleObjectCrossReference_2_2_0());
+ }
+ ruleValidID
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ )*
+ )
+;
+
+// Entry rule entryRuleIntegerValue
+entryRuleIntegerValue returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getIntegerValueRule()); }
+ iv_ruleIntegerValue=ruleIntegerValue
+ { $current=$iv_ruleIntegerValue.current; }
+ EOF;
+
+// Rule IntegerValue
+ruleIntegerValue returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getIntegerValueAccess().getIntegerValueAction_0(),
+ $current);
+ }
+ )
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getIntegerValueAccess().getValueEIntParserRuleCall_1_0());
+ }
+ lv_value_1_0=ruleEInt
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getIntegerValueRule());
+ }
+ set(
+ $current,
+ "value",
+ lv_value_1_0,
+ "rba.tool.editor.RBAModel.EInt");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ )
+;
+
+// Entry rule entryRuleStandardValue
+entryRuleStandardValue returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getStandardValueRule()); }
+ iv_ruleStandardValue=ruleStandardValue
+ { $current=$iv_ruleStandardValue.current; }
+ EOF;
+
+// Rule StandardValue
+ruleStandardValue returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getStandardValueAccess().getStandardValueAction_0(),
+ $current);
+ }
+ )
+ otherlv_1='STANDARD_VALUE'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getStandardValueAccess().getSTANDARD_VALUEKeyword_1());
+ }
+ )
+;
+
+// Entry rule entryRuleNoneValue
+entryRuleNoneValue returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getNoneValueRule()); }
+ iv_ruleNoneValue=ruleNoneValue
+ { $current=$iv_ruleNoneValue.current; }
+ EOF;
+
+// Rule NoneValue
+ruleNoneValue returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getNoneValueAccess().getNoneValueAction_0(),
+ $current);
+ }
+ )
+ otherlv_1='NONE_VALUE'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getNoneValueAccess().getNONE_VALUEKeyword_1());
+ }
+ )
+;
+
+// Entry rule entryRuleMinValue
+entryRuleMinValue returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getMinValueRule()); }
+ iv_ruleMinValue=ruleMinValue
+ { $current=$iv_ruleMinValue.current; }
+ EOF;
+
+// Rule MinValue
+ruleMinValue returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getMinValueAccess().getMinValueAction_0(),
+ $current);
+ }
+ )
+ otherlv_1='MIN_VALUE'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getMinValueAccess().getMIN_VALUEKeyword_1());
+ }
+ )
+;
+
+// Entry rule entryRuleMaxValue
+entryRuleMaxValue returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getMaxValueRule()); }
+ iv_ruleMaxValue=ruleMaxValue
+ { $current=$iv_ruleMaxValue.current; }
+ EOF;
+
+// Rule MaxValue
+ruleMaxValue returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getMaxValueAccess().getMaxValueAction_0(),
+ $current);
+ }
+ )
+ otherlv_1='MAX_VALUE'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getMaxValueAccess().getMAX_VALUEKeyword_1());
+ }
+ )
+;
+
+// Entry rule entryRuleCExpression
+entryRuleCExpression returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getCExpressionRule()); }
+ iv_ruleCExpression=ruleCExpression
+ { $current=$iv_ruleCExpression.current; }
+ EOF;
+
+// Rule CExpression
+ruleCExpression returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ {
+ newCompositeNode(grammarAccess.getCExpressionAccess().getCImpliesOperatorParserRuleCall());
+ }
+ this_CImpliesOperator_0=ruleCImpliesOperator
+ {
+ $current = $this_CImpliesOperator_0.current;
+ afterParserOrEnumRuleCall();
+ }
+;
+
+// Entry rule entryRuleCImpliesOperator
+entryRuleCImpliesOperator returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getCImpliesOperatorRule()); }
+ iv_ruleCImpliesOperator=ruleCImpliesOperator
+ { $current=$iv_ruleCImpliesOperator.current; }
+ EOF;
+
+// Rule CImpliesOperator
+ruleCImpliesOperator returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ {
+ newCompositeNode(grammarAccess.getCImpliesOperatorAccess().getCOrOperatorParserRuleCall_0());
+ }
+ this_COrOperator_0=ruleCOrOperator
+ {
+ $current = $this_COrOperator_0.current;
+ afterParserOrEnumRuleCall();
+ }
+ (
+ (
+ ((
+ (
+ )
+ ruleOpImplies
+ )
+ )=>
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getCImpliesOperatorAccess().getImpliesOperatorOperandAction_1_0_0_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getCImpliesOperatorAccess().getOpImpliesParserRuleCall_1_0_0_1());
+ }
+ ruleOpImplies
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getCImpliesOperatorAccess().getOperandCOrOperatorParserRuleCall_1_1_0());
+ }
+ lv_operand_3_0=ruleCOrOperator
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getCImpliesOperatorRule());
+ }
+ add(
+ $current,
+ "operand",
+ lv_operand_3_0,
+ "rba.tool.editor.RBAModel.COrOperator");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ )*
+ )
+;
+
+// Entry rule entryRuleOpImplies
+entryRuleOpImplies returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpImpliesRule()); }
+ iv_ruleOpImplies=ruleOpImplies
+ { $current=$iv_ruleOpImplies.current.getText(); }
+ EOF;
+
+// Rule OpImplies
+ruleOpImplies returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='->'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpImpliesAccess().getHyphenMinusGreaterThanSignKeyword());
+ }
+;
+
+// Entry rule entryRuleCOrOperator
+entryRuleCOrOperator returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getCOrOperatorRule()); }
+ iv_ruleCOrOperator=ruleCOrOperator
+ { $current=$iv_ruleCOrOperator.current; }
+ EOF;
+
+// Rule COrOperator
+ruleCOrOperator returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ {
+ newCompositeNode(grammarAccess.getCOrOperatorAccess().getCAndOperatorParserRuleCall_0());
+ }
+ this_CAndOperator_0=ruleCAndOperator
+ {
+ $current = $this_CAndOperator_0.current;
+ afterParserOrEnumRuleCall();
+ }
+ (
+ (
+ ((
+ (
+ )
+ ruleOpOr
+ )
+ )=>
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOrOperatorAccess().getOrOperatorOperandAction_1_0_0_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getCOrOperatorAccess().getOpOrParserRuleCall_1_0_0_1());
+ }
+ ruleOpOr
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getCOrOperatorAccess().getOperandCAndOperatorParserRuleCall_1_1_0());
+ }
+ lv_operand_3_0=ruleCAndOperator
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getCOrOperatorRule());
+ }
+ add(
+ $current,
+ "operand",
+ lv_operand_3_0,
+ "rba.tool.editor.RBAModel.CAndOperator");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ )*
+ )
+;
+
+// Entry rule entryRuleOpOr
+entryRuleOpOr returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpOrRule()); }
+ iv_ruleOpOr=ruleOpOr
+ { $current=$iv_ruleOpOr.current.getText(); }
+ EOF;
+
+// Rule OpOr
+ruleOpOr returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='OR'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpOrAccess().getORKeyword());
+ }
+;
+
+// Entry rule entryRuleCAndOperator
+entryRuleCAndOperator returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getCAndOperatorRule()); }
+ iv_ruleCAndOperator=ruleCAndOperator
+ { $current=$iv_ruleCAndOperator.current; }
+ EOF;
+
+// Rule CAndOperator
+ruleCAndOperator returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ {
+ newCompositeNode(grammarAccess.getCAndOperatorAccess().getCEqualityExpressionParserRuleCall_0());
+ }
+ this_CEqualityExpression_0=ruleCEqualityExpression
+ {
+ $current = $this_CEqualityExpression_0.current;
+ afterParserOrEnumRuleCall();
+ }
+ (
+ (
+ ((
+ (
+ )
+ ruleOpAnd
+ )
+ )=>
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getCAndOperatorAccess().getAndOperatorOperandAction_1_0_0_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getCAndOperatorAccess().getOpAndParserRuleCall_1_0_0_1());
+ }
+ ruleOpAnd
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getCAndOperatorAccess().getOperandCEqualityExpressionParserRuleCall_1_1_0());
+ }
+ lv_operand_3_0=ruleCEqualityExpression
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getCAndOperatorRule());
+ }
+ add(
+ $current,
+ "operand",
+ lv_operand_3_0,
+ "rba.tool.editor.RBAModel.CEqualityExpression");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ )*
+ )
+;
+
+// Entry rule entryRuleOpAnd
+entryRuleOpAnd returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpAndRule()); }
+ iv_ruleOpAnd=ruleOpAnd
+ { $current=$iv_ruleOpAnd.current.getText(); }
+ EOF;
+
+// Rule OpAnd
+ruleOpAnd returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='AND'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpAndAccess().getANDKeyword());
+ }
+;
+
+// Entry rule entryRuleCEqualityExpression
+entryRuleCEqualityExpression returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getCEqualityExpressionRule()); }
+ iv_ruleCEqualityExpression=ruleCEqualityExpression
+ { $current=$iv_ruleCEqualityExpression.current; }
+ EOF;
+
+// Rule CEqualityExpression
+ruleCEqualityExpression returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ {
+ newCompositeNode(grammarAccess.getCEqualityExpressionAccess().getCRelationalExpressionParserRuleCall_0());
+ }
+ this_CRelationalExpression_0=ruleCRelationalExpression
+ {
+ $current = $this_CRelationalExpression_0.current;
+ afterParserOrEnumRuleCall();
+ }
+ (
+ (
+ ((
+ (
+ (
+ )
+ ruleOpObjectCompare
+ )
+ |
+ (
+ (
+ )
+ ruleOpObjectNotCompare
+ )
+ |
+ (
+ (
+ )
+ ruleOpEquality
+ )
+ )
+ )=>
+ (
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getCEqualityExpressionAccess().getObjectCompareOperandAction_1_0_0_0_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getCEqualityExpressionAccess().getOpObjectCompareParserRuleCall_1_0_0_0_1());
+ }
+ ruleOpObjectCompare
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ |
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getCEqualityExpressionAccess().getObjectCompareNotOperandAction_1_0_0_1_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getCEqualityExpressionAccess().getOpObjectNotCompareParserRuleCall_1_0_0_1_1());
+ }
+ ruleOpObjectNotCompare
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ |
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getCEqualityExpressionAccess().getIsEqualToOperatorOperandAction_1_0_0_2_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getCEqualityExpressionAccess().getOpEqualityParserRuleCall_1_0_0_2_1());
+ }
+ ruleOpEquality
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ )
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getCEqualityExpressionAccess().getOperandCRelationalExpressionParserRuleCall_1_1_0());
+ }
+ lv_operand_7_0=ruleCRelationalExpression
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getCEqualityExpressionRule());
+ }
+ add(
+ $current,
+ "operand",
+ lv_operand_7_0,
+ "rba.tool.editor.RBAModel.CRelationalExpression");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ )*
+ )
+;
+
+// Entry rule entryRuleOpObjectCompare
+entryRuleOpObjectCompare returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpObjectCompareRule()); }
+ iv_ruleOpObjectCompare=ruleOpObjectCompare
+ { $current=$iv_ruleOpObjectCompare.current.getText(); }
+ EOF;
+
+// Rule OpObjectCompare
+ruleOpObjectCompare returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='=='
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpObjectCompareAccess().getEqualsSignEqualsSignKeyword());
+ }
+;
+
+// Entry rule entryRuleOpObjectNotCompare
+entryRuleOpObjectNotCompare returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpObjectNotCompareRule()); }
+ iv_ruleOpObjectNotCompare=ruleOpObjectNotCompare
+ { $current=$iv_ruleOpObjectNotCompare.current.getText(); }
+ EOF;
+
+// Rule OpObjectNotCompare
+ruleOpObjectNotCompare returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='!='
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpObjectNotCompareAccess().getExclamationMarkEqualsSignKeyword());
+ }
+;
+
+// Entry rule entryRuleOpEquality
+entryRuleOpEquality returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpEqualityRule()); }
+ iv_ruleOpEquality=ruleOpEquality
+ { $current=$iv_ruleOpEquality.current.getText(); }
+ EOF;
+
+// Rule OpEquality
+ruleOpEquality returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='='
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpEqualityAccess().getEqualsSignKeyword());
+ }
+;
+
+// Entry rule entryRuleCRelationalExpression
+entryRuleCRelationalExpression returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getCRelationalExpressionRule()); }
+ iv_ruleCRelationalExpression=ruleCRelationalExpression
+ { $current=$iv_ruleCRelationalExpression.current; }
+ EOF;
+
+// Rule CRelationalExpression
+ruleCRelationalExpression returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ {
+ newCompositeNode(grammarAccess.getCRelationalExpressionAccess().getCUnaryOperationParserRuleCall_0());
+ }
+ this_CUnaryOperation_0=ruleCUnaryOperation
+ {
+ $current = $this_CUnaryOperation_0.current;
+ afterParserOrEnumRuleCall();
+ }
+ (
+ (
+ ((
+ (
+ (
+ )
+ ruleOpIsGreaterThanEqual
+ )
+ |
+ (
+ (
+ )
+ ruleOpIsLowerThanEqual
+ )
+ |
+ (
+ (
+ )
+ ruleOpIsGreaterThan
+ )
+ |
+ (
+ (
+ )
+ ruleOpIsLowerThan
+ )
+ )
+ )=>
+ (
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getCRelationalExpressionAccess().getIsGreaterThanEqualOperatorOperandAction_1_0_0_0_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getCRelationalExpressionAccess().getOpIsGreaterThanEqualParserRuleCall_1_0_0_0_1());
+ }
+ ruleOpIsGreaterThanEqual
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ |
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getCRelationalExpressionAccess().getIsLowerThanEqualOperatorOperandAction_1_0_0_1_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getCRelationalExpressionAccess().getOpIsLowerThanEqualParserRuleCall_1_0_0_1_1());
+ }
+ ruleOpIsLowerThanEqual
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ |
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getCRelationalExpressionAccess().getIsGreaterThanOperatorOperandAction_1_0_0_2_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getCRelationalExpressionAccess().getOpIsGreaterThanParserRuleCall_1_0_0_2_1());
+ }
+ ruleOpIsGreaterThan
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ |
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getCRelationalExpressionAccess().getIsLowerThanOperatorOperandAction_1_0_0_3_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getCRelationalExpressionAccess().getOpIsLowerThanParserRuleCall_1_0_0_3_1());
+ }
+ ruleOpIsLowerThan
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ )
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getCRelationalExpressionAccess().getOperandCUnaryOperationParserRuleCall_1_1_0());
+ }
+ lv_operand_9_0=ruleCUnaryOperation
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getCRelationalExpressionRule());
+ }
+ add(
+ $current,
+ "operand",
+ lv_operand_9_0,
+ "rba.tool.editor.RBAModel.CUnaryOperation");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ )*
+ )
+;
+
+// Entry rule entryRuleOpIsGreaterThanEqual
+entryRuleOpIsGreaterThanEqual returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpIsGreaterThanEqualRule()); }
+ iv_ruleOpIsGreaterThanEqual=ruleOpIsGreaterThanEqual
+ { $current=$iv_ruleOpIsGreaterThanEqual.current.getText(); }
+ EOF;
+
+// Rule OpIsGreaterThanEqual
+ruleOpIsGreaterThanEqual returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='>='
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpIsGreaterThanEqualAccess().getGreaterThanSignEqualsSignKeyword());
+ }
+;
+
+// Entry rule entryRuleOpIsLowerThanEqual
+entryRuleOpIsLowerThanEqual returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpIsLowerThanEqualRule()); }
+ iv_ruleOpIsLowerThanEqual=ruleOpIsLowerThanEqual
+ { $current=$iv_ruleOpIsLowerThanEqual.current.getText(); }
+ EOF;
+
+// Rule OpIsLowerThanEqual
+ruleOpIsLowerThanEqual returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='<='
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpIsLowerThanEqualAccess().getLessThanSignEqualsSignKeyword());
+ }
+;
+
+// Entry rule entryRuleOpIsGreaterThan
+entryRuleOpIsGreaterThan returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpIsGreaterThanRule()); }
+ iv_ruleOpIsGreaterThan=ruleOpIsGreaterThan
+ { $current=$iv_ruleOpIsGreaterThan.current.getText(); }
+ EOF;
+
+// Rule OpIsGreaterThan
+ruleOpIsGreaterThan returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='>'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpIsGreaterThanAccess().getGreaterThanSignKeyword());
+ }
+;
+
+// Entry rule entryRuleOpIsLowerThan
+entryRuleOpIsLowerThan returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpIsLowerThanRule()); }
+ iv_ruleOpIsLowerThan=ruleOpIsLowerThan
+ { $current=$iv_ruleOpIsLowerThan.current.getText(); }
+ EOF;
+
+// Rule OpIsLowerThan
+ruleOpIsLowerThan returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='<'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpIsLowerThanAccess().getLessThanSignKeyword());
+ }
+;
+
+// Entry rule entryRuleCUnaryOperation
+entryRuleCUnaryOperation returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getCUnaryOperationRule()); }
+ iv_ruleCUnaryOperation=ruleCUnaryOperation
+ { $current=$iv_ruleCUnaryOperation.current; }
+ EOF;
+
+// Rule CUnaryOperation
+ruleCUnaryOperation returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getCUnaryOperationAccess().getNotOperatorAction_0_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getCUnaryOperationAccess().getOpNotParserRuleCall_0_1());
+ }
+ ruleOpNot
+ {
+ afterParserOrEnumRuleCall();
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getCUnaryOperationAccess().getOperandCUnaryOperationParserRuleCall_0_2_0());
+ }
+ lv_operand_2_0=ruleCUnaryOperation
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getCUnaryOperationRule());
+ }
+ add(
+ $current,
+ "operand",
+ lv_operand_2_0,
+ "rba.tool.editor.RBAModel.CUnaryOperation");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ )
+ |
+ {
+ newCompositeNode(grammarAccess.getCUnaryOperationAccess().getCOperationFeatureCallParserRuleCall_1());
+ }
+ this_COperationFeatureCall_3=ruleCOperationFeatureCall
+ {
+ $current = $this_COperationFeatureCall_3.current;
+ afterParserOrEnumRuleCall();
+ }
+ )
+;
+
+// Entry rule entryRuleOpNot
+entryRuleOpNot returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpNotRule()); }
+ iv_ruleOpNot=ruleOpNot
+ { $current=$iv_ruleOpNot.current.getText(); }
+ EOF;
+
+// Rule OpNot
+ruleOpNot returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='!'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpNotAccess().getExclamationMarkKeyword());
+ }
+;
+
+// Entry rule entryRuleCOperationFeatureCall
+entryRuleCOperationFeatureCall returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getCOperationFeatureCallRule()); }
+ iv_ruleCOperationFeatureCall=ruleCOperationFeatureCall
+ { $current=$iv_ruleCOperationFeatureCall.current; }
+ EOF;
+
+// Rule COperationFeatureCall
+ruleCOperationFeatureCall returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ {
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getCPrimaryExpressionParserRuleCall_0());
+ }
+ this_CPrimaryExpression_0=ruleCPrimaryExpression
+ {
+ $current = $this_CPrimaryExpression_0.current;
+ afterParserOrEnumRuleCall();
+ }
+ (
+ (
+ ('.'
+ )=>
+ otherlv_1='.'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getCOperationFeatureCallAccess().getFullStopKeyword_1_0_0());
+ }
+ )
+ (
+ (
+ (
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getGetPropertyOperandAction_1_1_0_0_0_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpGetPropertyParserRuleCall_1_1_0_0_0_1());
+ }
+ ruleOpGetProperty
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ |
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getIsOnOperandAction_1_1_0_0_1_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpIsOnParserRuleCall_1_1_0_0_1_1());
+ }
+ ruleOpIsOn
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ |
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getGetContentsListOperandAction_1_1_0_0_2_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpGetContentsListParserRuleCall_1_1_0_0_2_1());
+ }
+ ruleOpGetContentsList
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ |
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getContentValueOperandAction_1_1_0_0_3_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpContentValueParserRuleCall_1_1_0_0_3_1());
+ }
+ ruleOpContentValue
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ |
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getIsActiveOperandAction_1_1_0_0_4_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpIsActiveParserRuleCall_1_1_0_0_4_1());
+ }
+ ruleOpIsActive
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ |
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getGetAllocatablesOperandAction_1_1_0_0_5_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpGetAllocatablesParserRuleCall_1_1_0_0_5_1());
+ }
+ ruleOpGetAllocatables
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ |
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getAllocatedContentOperandAction_1_1_0_0_6_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpAllocatedContentParserRuleCall_1_1_0_0_6_1());
+ }
+ ruleOpAllocatedContent
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ |
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getHasComeEarlierThanOperandAction_1_1_0_0_7_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpHasComeEarlierThanParserRuleCall_1_1_0_0_7_1());
+ }
+ ruleOpHasComeEarlierThan
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ |
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getHasComeLaterThanOperandAction_1_1_0_0_8_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpHasComeLaterThanParserRuleCall_1_1_0_0_8_1());
+ }
+ ruleOpHasComeLaterThan
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ |
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getStateValueOperandAction_1_1_0_0_9_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpStateValueParserRuleCall_1_1_0_0_9_1());
+ }
+ ruleOpStateValue
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ |
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getActiveContentsOperandAction_1_1_0_0_10_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpActiveContentsParserRuleCall_1_1_0_0_10_1());
+ }
+ ruleOpActiveContents
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ |
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getSizeOperatorOperandAction_1_1_0_0_11_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpSizeOperatorParserRuleCall_1_1_0_0_11_1());
+ }
+ ruleOpSizeOperator
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ |
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getHasBeenDisplayedOperandAction_1_1_0_0_12_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpHasBeenDisplayedParserRuleCall_1_1_0_0_12_1());
+ }
+ ruleOpHasBeenDisplayed
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ |
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getActiveStateOperandAction_1_1_0_0_13_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpActiveStateParserRuleCall_1_1_0_0_13_1());
+ }
+ ruleOpActiveState
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ |
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getIsDisplayedOperandAction_1_1_0_0_14_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpIsDisplayedParserRuleCall_1_1_0_0_14_1());
+ }
+ ruleOpIsDisplayed
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ |
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getIsHiddenOperandAction_1_1_0_0_15_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpIsHiddenParserRuleCall_1_1_0_0_15_1());
+ }
+ ruleOpIsHidden
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ |
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getDisplayingContentOperandAction_1_1_0_0_16_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpDisplayingContentParserRuleCall_1_1_0_0_16_1());
+ }
+ ruleOpDisplayingContent
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ |
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getIsVisibleOperandAction_1_1_0_0_17_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpIsVisibleParserRuleCall_1_1_0_0_17_1());
+ }
+ ruleOpIsVisible
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ |
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getIsOutputtedOperandAction_1_1_0_0_18_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpIsOutputtedParserRuleCall_1_1_0_0_18_1());
+ }
+ ruleOpIsOutputted
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ |
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getIsMutedOperandAction_1_1_0_0_19_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpIsMutedParserRuleCall_1_1_0_0_19_1());
+ }
+ ruleOpIsMuted
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ |
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getOutputtingSoundOperandAction_1_1_0_0_20_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpOutputtingSoundParserRuleCall_1_1_0_0_20_1());
+ }
+ ruleOpOutputtingSound
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ |
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getIsSoundingOperandAction_1_1_0_0_21_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpIsSoundingParserRuleCall_1_1_0_0_21_1());
+ }
+ ruleOpIsSounding
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ |
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getIsAllocatedToOperandAction_1_1_0_0_22_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpIsAllocatedToParserRuleCall_1_1_0_0_22_1());
+ }
+ ruleOpIsAllocatedTo
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ |
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getIsChangedOperandAction_1_1_0_0_23_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpIsChangedParserRuleCall_1_1_0_0_23_1());
+ }
+ ruleOpIsChanged
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ |
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getIsTranslatedToOperandAction_1_1_0_0_24_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpIsTranslatedToParserRuleCall_1_1_0_0_24_1());
+ }
+ ruleOpIsTranslatedTo
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ |
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getIsDisplayedOnOperandAction_1_1_0_0_25_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpIsDisplayedOnParserRuleCall_1_1_0_0_25_1());
+ }
+ ruleOpIsDisplayedOn
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ |
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getIsChangedDisplayOperandAction_1_1_0_0_26_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpIsChangedDisplayParserRuleCall_1_1_0_0_26_1());
+ }
+ ruleOpIsChangedDisplay
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ |
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getIsTranslatedViewToOperandAction_1_1_0_0_27_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpIsTranslatedViewToParserRuleCall_1_1_0_0_27_1());
+ }
+ ruleOpIsTranslatedViewTo
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ |
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getIsOutputtedOnOperandAction_1_1_0_0_28_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpIsOutputtedOnParserRuleCall_1_1_0_0_28_1());
+ }
+ ruleOpIsOutputtedOn
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ |
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getIsChangedOutputOperandAction_1_1_0_0_29_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpIsChangedOutputParserRuleCall_1_1_0_0_29_1());
+ }
+ ruleOpIsChangedOutput
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ |
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getIsTranslatedSoundToOperandAction_1_1_0_0_30_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpIsTranslatedSoundToParserRuleCall_1_1_0_0_30_1());
+ }
+ ruleOpIsTranslatedSoundTo
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ |
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getIsAttenuatedOperandAction_1_1_0_0_31_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpIsAttenuatedParserRuleCall_1_1_0_0_31_1());
+ }
+ ruleOpIsAttenuated
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ (
+ ((
+ '('
+ (
+ (
+ ruleCExpression
+ )
+ )?
+ ')'
+ )
+ )=>
+ (
+ otherlv_66='('
+ {
+ newLeafNode(otherlv_66, grammarAccess.getCOperationFeatureCallAccess().getLeftParenthesisKeyword_1_1_0_1_0_0());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOperandCExpressionParserRuleCall_1_1_0_1_0_1_0());
+ }
+ lv_operand_67_0=ruleCExpression
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getCOperationFeatureCallRule());
+ }
+ add(
+ $current,
+ "operand",
+ lv_operand_67_0,
+ "rba.tool.editor.RBAModel.CExpression");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )?
+ otherlv_68=')'
+ {
+ newLeafNode(otherlv_68, grammarAccess.getCOperationFeatureCallAccess().getRightParenthesisKeyword_1_1_0_1_0_2());
+ }
+ )
+ )
+ )
+ |
+ (
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getIsTypeOfOperandAction_1_1_1_0_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpIsTypeOfParserRuleCall_1_1_1_0_1());
+ }
+ ruleOpIsTypeOf
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ (
+ ((
+ '('
+ (
+ (
+ ruleEString
+ )
+ )?
+ ')'
+ )
+ )=>
+ (
+ otherlv_71='('
+ {
+ newLeafNode(otherlv_71, grammarAccess.getCOperationFeatureCallAccess().getLeftParenthesisKeyword_1_1_1_1_0_0());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getTagNameEStringParserRuleCall_1_1_1_1_0_1_0());
+ }
+ lv_tagName_72_0=ruleEString
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getCOperationFeatureCallRule());
+ }
+ set(
+ $current,
+ "tagName",
+ lv_tagName_72_0,
+ "rba.tool.editor.RBAModel.EString");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )?
+ otherlv_73=')'
+ {
+ newLeafNode(otherlv_73, grammarAccess.getCOperationFeatureCallAccess().getRightParenthesisKeyword_1_1_1_1_0_2());
+ }
+ )
+ )?
+ )
+ |
+ (
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getMaxOperatorOperandAction_1_1_2_0_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpMaxOperatorParserRuleCall_1_1_2_0_1());
+ }
+ ruleOpMaxOperator
+ {
+ afterParserOrEnumRuleCall();
+ }
+ (
+ ((
+ (
+ )
+ '{'
+ )
+ )=>
+ (
+ {
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getLambdaLambdaExpressionParserRuleCall_1_1_2_0_2_0());
+ }
+ lv_lambda_76_0=ruleLambdaExpression
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getCOperationFeatureCallRule());
+ }
+ set(
+ $current,
+ "lambda",
+ lv_lambda_76_0,
+ "rba.tool.editor.RBAModel.LambdaExpression");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ )
+ |
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getMinOperatorOperandAction_1_1_2_1_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpMinOperatorParserRuleCall_1_1_2_1_1());
+ }
+ ruleOpMinOperator
+ {
+ afterParserOrEnumRuleCall();
+ }
+ (
+ ((
+ (
+ )
+ '{'
+ )
+ )=>
+ (
+ {
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getLambdaLambdaExpressionParserRuleCall_1_1_2_1_2_0());
+ }
+ lv_lambda_79_0=ruleLambdaExpression
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getCOperationFeatureCallRule());
+ }
+ set(
+ $current,
+ "lambda",
+ lv_lambda_79_0,
+ "rba.tool.editor.RBAModel.LambdaExpression");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ )
+ |
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getSelectOperatorOperandAction_1_1_2_2_0(),
+ $current);
+ }
+ )
+ {
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpSelectOperatorParserRuleCall_1_1_2_2_1());
+ }
+ ruleOpSelectOperator
+ {
+ afterParserOrEnumRuleCall();
+ }
+ (
+ ((
+ (
+ )
+ '{'
+ )
+ )=>
+ (
+ {
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getLambdaLambdaExpressionParserRuleCall_1_1_2_2_2_0());
+ }
+ lv_lambda_82_0=ruleLambdaExpression
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getCOperationFeatureCallRule());
+ }
+ set(
+ $current,
+ "lambda",
+ lv_lambda_82_0,
+ "rba.tool.editor.RBAModel.LambdaExpression");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ )
+ )
+ )
+ )*
+ )
+;
+
+// Entry rule entryRuleOpGetProperty
+entryRuleOpGetProperty returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpGetPropertyRule()); }
+ iv_ruleOpGetProperty=ruleOpGetProperty
+ { $current=$iv_ruleOpGetProperty.current.getText(); }
+ EOF;
+
+// Rule OpGetProperty
+ruleOpGetProperty returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='get'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpGetPropertyAccess().getGetKeyword());
+ }
+;
+
+// Entry rule entryRuleOpIsOn
+entryRuleOpIsOn returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpIsOnRule()); }
+ iv_ruleOpIsOn=ruleOpIsOn
+ { $current=$iv_ruleOpIsOn.current.getText(); }
+ EOF;
+
+// Rule OpIsOn
+ruleOpIsOn returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='isOn'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpIsOnAccess().getIsOnKeyword());
+ }
+;
+
+// Entry rule entryRuleOpGetContentsList
+entryRuleOpGetContentsList returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpGetContentsListRule()); }
+ iv_ruleOpGetContentsList=ruleOpGetContentsList
+ { $current=$iv_ruleOpGetContentsList.current.getText(); }
+ EOF;
+
+// Rule OpGetContentsList
+ruleOpGetContentsList returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='contentsList'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpGetContentsListAccess().getContentsListKeyword());
+ }
+;
+
+// Entry rule entryRuleOpContentValue
+entryRuleOpContentValue returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpContentValueRule()); }
+ iv_ruleOpContentValue=ruleOpContentValue
+ { $current=$iv_ruleOpContentValue.current.getText(); }
+ EOF;
+
+// Rule OpContentValue
+ruleOpContentValue returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='contentValue'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpContentValueAccess().getContentValueKeyword());
+ }
+;
+
+// Entry rule entryRuleOpIsActive
+entryRuleOpIsActive returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpIsActiveRule()); }
+ iv_ruleOpIsActive=ruleOpIsActive
+ { $current=$iv_ruleOpIsActive.current.getText(); }
+ EOF;
+
+// Rule OpIsActive
+ruleOpIsActive returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='isActive'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpIsActiveAccess().getIsActiveKeyword());
+ }
+;
+
+// Entry rule entryRuleOpGetAllocatables
+entryRuleOpGetAllocatables returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpGetAllocatablesRule()); }
+ iv_ruleOpGetAllocatables=ruleOpGetAllocatables
+ { $current=$iv_ruleOpGetAllocatables.current.getText(); }
+ EOF;
+
+// Rule OpGetAllocatables
+ruleOpGetAllocatables returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='allocatables'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpGetAllocatablesAccess().getAllocatablesKeyword());
+ }
+;
+
+// Entry rule entryRuleOpAllocatedContent
+entryRuleOpAllocatedContent returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpAllocatedContentRule()); }
+ iv_ruleOpAllocatedContent=ruleOpAllocatedContent
+ { $current=$iv_ruleOpAllocatedContent.current.getText(); }
+ EOF;
+
+// Rule OpAllocatedContent
+ruleOpAllocatedContent returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='allocatedContent'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpAllocatedContentAccess().getAllocatedContentKeyword());
+ }
+;
+
+// Entry rule entryRuleOpIsDisplayed
+entryRuleOpIsDisplayed returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpIsDisplayedRule()); }
+ iv_ruleOpIsDisplayed=ruleOpIsDisplayed
+ { $current=$iv_ruleOpIsDisplayed.current.getText(); }
+ EOF;
+
+// Rule OpIsDisplayed
+ruleOpIsDisplayed returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='isDisplayed'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpIsDisplayedAccess().getIsDisplayedKeyword());
+ }
+;
+
+// Entry rule entryRuleOpIsHidden
+entryRuleOpIsHidden returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpIsHiddenRule()); }
+ iv_ruleOpIsHidden=ruleOpIsHidden
+ { $current=$iv_ruleOpIsHidden.current.getText(); }
+ EOF;
+
+// Rule OpIsHidden
+ruleOpIsHidden returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='isHidden'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpIsHiddenAccess().getIsHiddenKeyword());
+ }
+;
+
+// Entry rule entryRuleOpDisplayingContent
+entryRuleOpDisplayingContent returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpDisplayingContentRule()); }
+ iv_ruleOpDisplayingContent=ruleOpDisplayingContent
+ { $current=$iv_ruleOpDisplayingContent.current.getText(); }
+ EOF;
+
+// Rule OpDisplayingContent
+ruleOpDisplayingContent returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='displayingContent'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpDisplayingContentAccess().getDisplayingContentKeyword());
+ }
+;
+
+// Entry rule entryRuleOpIsVisible
+entryRuleOpIsVisible returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpIsVisibleRule()); }
+ iv_ruleOpIsVisible=ruleOpIsVisible
+ { $current=$iv_ruleOpIsVisible.current.getText(); }
+ EOF;
+
+// Rule OpIsVisible
+ruleOpIsVisible returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='isVisible'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpIsVisibleAccess().getIsVisibleKeyword());
+ }
+;
+
+// Entry rule entryRuleOpIsOutputted
+entryRuleOpIsOutputted returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpIsOutputtedRule()); }
+ iv_ruleOpIsOutputted=ruleOpIsOutputted
+ { $current=$iv_ruleOpIsOutputted.current.getText(); }
+ EOF;
+
+// Rule OpIsOutputted
+ruleOpIsOutputted returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='isOutputted'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpIsOutputtedAccess().getIsOutputtedKeyword());
+ }
+;
+
+// Entry rule entryRuleOpIsMuted
+entryRuleOpIsMuted returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpIsMutedRule()); }
+ iv_ruleOpIsMuted=ruleOpIsMuted
+ { $current=$iv_ruleOpIsMuted.current.getText(); }
+ EOF;
+
+// Rule OpIsMuted
+ruleOpIsMuted returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='isMuted'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpIsMutedAccess().getIsMutedKeyword());
+ }
+;
+
+// Entry rule entryRuleOpOutputtingSound
+entryRuleOpOutputtingSound returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpOutputtingSoundRule()); }
+ iv_ruleOpOutputtingSound=ruleOpOutputtingSound
+ { $current=$iv_ruleOpOutputtingSound.current.getText(); }
+ EOF;
+
+// Rule OpOutputtingSound
+ruleOpOutputtingSound returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='outputtingSound'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpOutputtingSoundAccess().getOutputtingSoundKeyword());
+ }
+;
+
+// Entry rule entryRuleOpIsSounding
+entryRuleOpIsSounding returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpIsSoundingRule()); }
+ iv_ruleOpIsSounding=ruleOpIsSounding
+ { $current=$iv_ruleOpIsSounding.current.getText(); }
+ EOF;
+
+// Rule OpIsSounding
+ruleOpIsSounding returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='isSounding'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpIsSoundingAccess().getIsSoundingKeyword());
+ }
+;
+
+// Entry rule entryRuleOpIsAttenuated
+entryRuleOpIsAttenuated returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpIsAttenuatedRule()); }
+ iv_ruleOpIsAttenuated=ruleOpIsAttenuated
+ { $current=$iv_ruleOpIsAttenuated.current.getText(); }
+ EOF;
+
+// Rule OpIsAttenuated
+ruleOpIsAttenuated returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='isAttenuated'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpIsAttenuatedAccess().getIsAttenuatedKeyword());
+ }
+;
+
+// Entry rule entryRuleOpHasComeEarlierThan
+entryRuleOpHasComeEarlierThan returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpHasComeEarlierThanRule()); }
+ iv_ruleOpHasComeEarlierThan=ruleOpHasComeEarlierThan
+ { $current=$iv_ruleOpHasComeEarlierThan.current.getText(); }
+ EOF;
+
+// Rule OpHasComeEarlierThan
+ruleOpHasComeEarlierThan returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='hasComeEarlierThan'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpHasComeEarlierThanAccess().getHasComeEarlierThanKeyword());
+ }
+;
+
+// Entry rule entryRuleOpHasComeLaterThan
+entryRuleOpHasComeLaterThan returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpHasComeLaterThanRule()); }
+ iv_ruleOpHasComeLaterThan=ruleOpHasComeLaterThan
+ { $current=$iv_ruleOpHasComeLaterThan.current.getText(); }
+ EOF;
+
+// Rule OpHasComeLaterThan
+ruleOpHasComeLaterThan returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='hasComeLaterThan'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpHasComeLaterThanAccess().getHasComeLaterThanKeyword());
+ }
+;
+
+// Entry rule entryRuleOpStateValue
+entryRuleOpStateValue returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpStateValueRule()); }
+ iv_ruleOpStateValue=ruleOpStateValue
+ { $current=$iv_ruleOpStateValue.current.getText(); }
+ EOF;
+
+// Rule OpStateValue
+ruleOpStateValue returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='stateValue'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpStateValueAccess().getStateValueKeyword());
+ }
+;
+
+// Entry rule entryRuleOpIsAllocatedTo
+entryRuleOpIsAllocatedTo returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpIsAllocatedToRule()); }
+ iv_ruleOpIsAllocatedTo=ruleOpIsAllocatedTo
+ { $current=$iv_ruleOpIsAllocatedTo.current.getText(); }
+ EOF;
+
+// Rule OpIsAllocatedTo
+ruleOpIsAllocatedTo returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='isAllocatedTo'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpIsAllocatedToAccess().getIsAllocatedToKeyword());
+ }
+;
+
+// Entry rule entryRuleOpIsChanged
+entryRuleOpIsChanged returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpIsChangedRule()); }
+ iv_ruleOpIsChanged=ruleOpIsChanged
+ { $current=$iv_ruleOpIsChanged.current.getText(); }
+ EOF;
+
+// Rule OpIsChanged
+ruleOpIsChanged returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='isChanged'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpIsChangedAccess().getIsChangedKeyword());
+ }
+;
+
+// Entry rule entryRuleOpIsTranslatedTo
+entryRuleOpIsTranslatedTo returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpIsTranslatedToRule()); }
+ iv_ruleOpIsTranslatedTo=ruleOpIsTranslatedTo
+ { $current=$iv_ruleOpIsTranslatedTo.current.getText(); }
+ EOF;
+
+// Rule OpIsTranslatedTo
+ruleOpIsTranslatedTo returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='isTranslatedTo'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpIsTranslatedToAccess().getIsTranslatedToKeyword());
+ }
+;
+
+// Entry rule entryRuleOpIsDisplayedOn
+entryRuleOpIsDisplayedOn returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpIsDisplayedOnRule()); }
+ iv_ruleOpIsDisplayedOn=ruleOpIsDisplayedOn
+ { $current=$iv_ruleOpIsDisplayedOn.current.getText(); }
+ EOF;
+
+// Rule OpIsDisplayedOn
+ruleOpIsDisplayedOn returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='isDisplayedOn'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpIsDisplayedOnAccess().getIsDisplayedOnKeyword());
+ }
+;
+
+// Entry rule entryRuleOpIsChangedDisplay
+entryRuleOpIsChangedDisplay returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpIsChangedDisplayRule()); }
+ iv_ruleOpIsChangedDisplay=ruleOpIsChangedDisplay
+ { $current=$iv_ruleOpIsChangedDisplay.current.getText(); }
+ EOF;
+
+// Rule OpIsChangedDisplay
+ruleOpIsChangedDisplay returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='isChangedDisplay'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpIsChangedDisplayAccess().getIsChangedDisplayKeyword());
+ }
+;
+
+// Entry rule entryRuleOpIsTranslatedViewTo
+entryRuleOpIsTranslatedViewTo returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpIsTranslatedViewToRule()); }
+ iv_ruleOpIsTranslatedViewTo=ruleOpIsTranslatedViewTo
+ { $current=$iv_ruleOpIsTranslatedViewTo.current.getText(); }
+ EOF;
+
+// Rule OpIsTranslatedViewTo
+ruleOpIsTranslatedViewTo returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='isTranslatedViewTo'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpIsTranslatedViewToAccess().getIsTranslatedViewToKeyword());
+ }
+;
+
+// Entry rule entryRuleOpIsOutputtedOn
+entryRuleOpIsOutputtedOn returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpIsOutputtedOnRule()); }
+ iv_ruleOpIsOutputtedOn=ruleOpIsOutputtedOn
+ { $current=$iv_ruleOpIsOutputtedOn.current.getText(); }
+ EOF;
+
+// Rule OpIsOutputtedOn
+ruleOpIsOutputtedOn returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='isOutputtedOn'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpIsOutputtedOnAccess().getIsOutputtedOnKeyword());
+ }
+;
+
+// Entry rule entryRuleOpIsChangedOutput
+entryRuleOpIsChangedOutput returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpIsChangedOutputRule()); }
+ iv_ruleOpIsChangedOutput=ruleOpIsChangedOutput
+ { $current=$iv_ruleOpIsChangedOutput.current.getText(); }
+ EOF;
+
+// Rule OpIsChangedOutput
+ruleOpIsChangedOutput returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='isChangedOutput'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpIsChangedOutputAccess().getIsChangedOutputKeyword());
+ }
+;
+
+// Entry rule entryRuleOpIsTranslatedSoundTo
+entryRuleOpIsTranslatedSoundTo returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpIsTranslatedSoundToRule()); }
+ iv_ruleOpIsTranslatedSoundTo=ruleOpIsTranslatedSoundTo
+ { $current=$iv_ruleOpIsTranslatedSoundTo.current.getText(); }
+ EOF;
+
+// Rule OpIsTranslatedSoundTo
+ruleOpIsTranslatedSoundTo returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='isTranslatedSoundTo'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpIsTranslatedSoundToAccess().getIsTranslatedSoundToKeyword());
+ }
+;
+
+// Entry rule entryRuleOpIsTypeOf
+entryRuleOpIsTypeOf returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpIsTypeOfRule()); }
+ iv_ruleOpIsTypeOf=ruleOpIsTypeOf
+ { $current=$iv_ruleOpIsTypeOf.current.getText(); }
+ EOF;
+
+// Rule OpIsTypeOf
+ruleOpIsTypeOf returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='isTypeOf'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpIsTypeOfAccess().getIsTypeOfKeyword());
+ }
+;
+
+// Entry rule entryRuleOpActiveContents
+entryRuleOpActiveContents returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpActiveContentsRule()); }
+ iv_ruleOpActiveContents=ruleOpActiveContents
+ { $current=$iv_ruleOpActiveContents.current.getText(); }
+ EOF;
+
+// Rule OpActiveContents
+ruleOpActiveContents returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='activeContents'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpActiveContentsAccess().getActiveContentsKeyword());
+ }
+;
+
+// Entry rule entryRuleOpSizeOperator
+entryRuleOpSizeOperator returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpSizeOperatorRule()); }
+ iv_ruleOpSizeOperator=ruleOpSizeOperator
+ { $current=$iv_ruleOpSizeOperator.current.getText(); }
+ EOF;
+
+// Rule OpSizeOperator
+ruleOpSizeOperator returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='size'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpSizeOperatorAccess().getSizeKeyword());
+ }
+;
+
+// Entry rule entryRuleOpHasBeenDisplayed
+entryRuleOpHasBeenDisplayed returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpHasBeenDisplayedRule()); }
+ iv_ruleOpHasBeenDisplayed=ruleOpHasBeenDisplayed
+ { $current=$iv_ruleOpHasBeenDisplayed.current.getText(); }
+ EOF;
+
+// Rule OpHasBeenDisplayed
+ruleOpHasBeenDisplayed returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='hasBeenDisplayed'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpHasBeenDisplayedAccess().getHasBeenDisplayedKeyword());
+ }
+;
+
+// Entry rule entryRuleOpActiveState
+entryRuleOpActiveState returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpActiveStateRule()); }
+ iv_ruleOpActiveState=ruleOpActiveState
+ { $current=$iv_ruleOpActiveState.current.getText(); }
+ EOF;
+
+// Rule OpActiveState
+ruleOpActiveState returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='activeState'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpActiveStateAccess().getActiveStateKeyword());
+ }
+;
+
+// Entry rule entryRuleOpMaxOperator
+entryRuleOpMaxOperator returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpMaxOperatorRule()); }
+ iv_ruleOpMaxOperator=ruleOpMaxOperator
+ { $current=$iv_ruleOpMaxOperator.current.getText(); }
+ EOF;
+
+// Rule OpMaxOperator
+ruleOpMaxOperator returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='max'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpMaxOperatorAccess().getMaxKeyword());
+ }
+;
+
+// Entry rule entryRuleOpMinOperator
+entryRuleOpMinOperator returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpMinOperatorRule()); }
+ iv_ruleOpMinOperator=ruleOpMinOperator
+ { $current=$iv_ruleOpMinOperator.current.getText(); }
+ EOF;
+
+// Rule OpMinOperator
+ruleOpMinOperator returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='min'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpMinOperatorAccess().getMinKeyword());
+ }
+;
+
+// Entry rule entryRuleOpSelectOperator
+entryRuleOpSelectOperator returns [String current=null]:
+ { newCompositeNode(grammarAccess.getOpSelectOperatorRule()); }
+ iv_ruleOpSelectOperator=ruleOpSelectOperator
+ { $current=$iv_ruleOpSelectOperator.current.getText(); }
+ EOF;
+
+// Rule OpSelectOperator
+ruleOpSelectOperator returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ kw='select'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpSelectOperatorAccess().getSelectKeyword());
+ }
+;
+
+// Entry rule entryRuleCPrimaryExpression
+entryRuleCPrimaryExpression returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getCPrimaryExpressionRule()); }
+ iv_ruleCPrimaryExpression=ruleCPrimaryExpression
+ { $current=$iv_ruleCPrimaryExpression.current; }
+ EOF;
+
+// Rule CPrimaryExpression
+ruleCPrimaryExpression returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ {
+ newCompositeNode(grammarAccess.getCPrimaryExpressionAccess().getCMemberFeatureReferenceParserRuleCall_0());
+ }
+ this_CMemberFeatureReference_0=ruleCMemberFeatureReference
+ {
+ $current = $this_CMemberFeatureReference_0.current;
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getCPrimaryExpressionAccess().getPreviousModifierParserRuleCall_1());
+ }
+ this_PreviousModifier_1=rulePreviousModifier
+ {
+ $current = $this_PreviousModifier_1.current;
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getCPrimaryExpressionAccess().getAllInstanceOfExpressionParserRuleCall_2());
+ }
+ this_AllInstanceOfExpression_2=ruleAllInstanceOfExpression
+ {
+ $current = $this_AllInstanceOfExpression_2.current;
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getCPrimaryExpressionAccess().getNullExpressionParserRuleCall_3());
+ }
+ this_NullExpression_3=ruleNullExpression
+ {
+ $current = $this_NullExpression_3.current;
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getCPrimaryExpressionAccess().getIntegerValueParserRuleCall_4());
+ }
+ this_IntegerValue_4=ruleIntegerValue
+ {
+ $current = $this_IntegerValue_4.current;
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getCPrimaryExpressionAccess().getMuteLowerPriorityParserRuleCall_5());
+ }
+ this_MuteLowerPriority_5=ruleMuteLowerPriority
+ {
+ $current = $this_MuteLowerPriority_5.current;
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getCPrimaryExpressionAccess().getHideLowerPriorityParserRuleCall_6());
+ }
+ this_HideLowerPriority_6=ruleHideLowerPriority
+ {
+ $current = $this_HideLowerPriority_6.current;
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getCPrimaryExpressionAccess().getSetOfOperatorParserRuleCall_7());
+ }
+ this_SetOfOperator_7=ruleSetOfOperator
+ {
+ $current = $this_SetOfOperator_7.current;
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getCPrimaryExpressionAccess().getIfStatementParserRuleCall_8());
+ }
+ this_IfStatement_8=ruleIfStatement
+ {
+ $current = $this_IfStatement_8.current;
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getCPrimaryExpressionAccess().getForAllOperatorParserRuleCall_9());
+ }
+ this_ForAllOperator_9=ruleForAllOperator
+ {
+ $current = $this_ForAllOperator_9.current;
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getCPrimaryExpressionAccess().getExistsOperatorParserRuleCall_10());
+ }
+ this_ExistsOperator_10=ruleExistsOperator
+ {
+ $current = $this_ExistsOperator_10.current;
+ afterParserOrEnumRuleCall();
+ }
+ |
+ (
+ otherlv_11='('
+ {
+ newLeafNode(otherlv_11, grammarAccess.getCPrimaryExpressionAccess().getLeftParenthesisKeyword_11_0());
+ }
+ {
+ newCompositeNode(grammarAccess.getCPrimaryExpressionAccess().getCExpressionParserRuleCall_11_1());
+ }
+ this_CExpression_12=ruleCExpression
+ {
+ $current = $this_CExpression_12.current;
+ afterParserOrEnumRuleCall();
+ }
+ otherlv_13=')'
+ {
+ newLeafNode(otherlv_13, grammarAccess.getCPrimaryExpressionAccess().getRightParenthesisKeyword_11_2());
+ }
+ )
+ )
+;
+
+// Entry rule entryRuleAllInstanceOfExpression
+entryRuleAllInstanceOfExpression returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getAllInstanceOfExpressionRule()); }
+ iv_ruleAllInstanceOfExpression=ruleAllInstanceOfExpression
+ { $current=$iv_ruleAllInstanceOfExpression.current; }
+ EOF;
+
+// Rule AllInstanceOfExpression
+ruleAllInstanceOfExpression returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ ((
+ (
+ (
+ )
+ 'ALL_AREAS'
+ )
+ |
+ (
+ (
+ )
+ 'ALL_VIEWCONTENTS'
+ )
+ |
+ (
+ (
+ )
+ 'ALL_ZONES'
+ )
+ |
+ (
+ (
+ )
+ 'ALL_SOUNDCONTENTS'
+ )
+ )
+ )=>
+ (
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getAllInstanceOfExpressionAccess().getAllInstanceOfAreaAction_0_0_0(),
+ $current);
+ }
+ )
+ otherlv_1='ALL_AREAS'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getAllInstanceOfExpressionAccess().getALL_AREASKeyword_0_0_1());
+ }
+ )
+ |
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getAllInstanceOfExpressionAccess().getAllInstanceOfViewContentAction_0_1_0(),
+ $current);
+ }
+ )
+ otherlv_3='ALL_VIEWCONTENTS'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getAllInstanceOfExpressionAccess().getALL_VIEWCONTENTSKeyword_0_1_1());
+ }
+ )
+ |
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getAllInstanceOfExpressionAccess().getAllInstanceOfZoneAction_0_2_0(),
+ $current);
+ }
+ )
+ otherlv_5='ALL_ZONES'
+ {
+ newLeafNode(otherlv_5, grammarAccess.getAllInstanceOfExpressionAccess().getALL_ZONESKeyword_0_2_1());
+ }
+ )
+ |
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getAllInstanceOfExpressionAccess().getAllInstanceOfSoundContentAction_0_3_0(),
+ $current);
+ }
+ )
+ otherlv_7='ALL_SOUNDCONTENTS'
+ {
+ newLeafNode(otherlv_7, grammarAccess.getAllInstanceOfExpressionAccess().getALL_SOUNDCONTENTSKeyword_0_3_1());
+ }
+ )
+ )
+ )
+;
+
+// 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();
+}:
+ (
+ ((
+ (
+ )
+ 'NULL'
+ )
+ )=>
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getNullExpressionAccess().getNullExpressionAction_0_0(),
+ $current);
+ }
+ )
+ otherlv_1='NULL'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getNullExpressionAccess().getNULLKeyword_0_1());
+ }
+ )
+ )
+;
+
+// Entry rule entryRulePreviousModifier
+entryRulePreviousModifier returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getPreviousModifierRule()); }
+ iv_rulePreviousModifier=rulePreviousModifier
+ { $current=$iv_rulePreviousModifier.current; }
+ EOF;
+
+// Rule PreviousModifier
+rulePreviousModifier returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getPreviousModifierAccess().getPreviousModifierAction_0(),
+ $current);
+ }
+ )
+ otherlv_1='(pre)'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getPreviousModifierAccess().getPreKeyword_1());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getPreviousModifierAccess().getObjReferenceCMemberFeatureReferenceParserRuleCall_2_0());
+ }
+ lv_objReference_2_0=ruleCMemberFeatureReference
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPreviousModifierRule());
+ }
+ set(
+ $current,
+ "objReference",
+ lv_objReference_2_0,
+ "rba.tool.editor.RBAModel.CMemberFeatureReference");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ )
+;
+
+// Entry rule entryRuleHideLowerPriority
+entryRuleHideLowerPriority returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getHideLowerPriorityRule()); }
+ iv_ruleHideLowerPriority=ruleHideLowerPriority
+ { $current=$iv_ruleHideLowerPriority.current; }
+ EOF;
+
+// Rule HideLowerPriority
+ruleHideLowerPriority returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getHideLowerPriorityAccess().getHideLowerPriorityAction_0(),
+ $current);
+ }
+ )
+ otherlv_1='HideLowerPriority'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getHideLowerPriorityAccess().getHideLowerPriorityKeyword_1());
+ }
+ otherlv_2='('
+ {
+ newLeafNode(otherlv_2, grammarAccess.getHideLowerPriorityAccess().getLeftParenthesisKeyword_2());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getHideLowerPriorityAccess().getOperandCExpressionParserRuleCall_3_0());
+ }
+ lv_operand_3_0=ruleCExpression
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getHideLowerPriorityRule());
+ }
+ add(
+ $current,
+ "operand",
+ lv_operand_3_0,
+ "rba.tool.editor.RBAModel.CExpression");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ otherlv_4=','
+ {
+ newLeafNode(otherlv_4, grammarAccess.getHideLowerPriorityAccess().getCommaKeyword_4());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getHideLowerPriorityAccess().getOperandCExpressionParserRuleCall_5_0());
+ }
+ lv_operand_5_0=ruleCExpression
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getHideLowerPriorityRule());
+ }
+ add(
+ $current,
+ "operand",
+ lv_operand_5_0,
+ "rba.tool.editor.RBAModel.CExpression");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ otherlv_6=')'
+ {
+ newLeafNode(otherlv_6, grammarAccess.getHideLowerPriorityAccess().getRightParenthesisKeyword_6());
+ }
+ )
+;
+
+// Entry rule entryRuleMuteLowerPriority
+entryRuleMuteLowerPriority returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getMuteLowerPriorityRule()); }
+ iv_ruleMuteLowerPriority=ruleMuteLowerPriority
+ { $current=$iv_ruleMuteLowerPriority.current; }
+ EOF;
+
+// Rule MuteLowerPriority
+ruleMuteLowerPriority returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getMuteLowerPriorityAccess().getMuteLowerPriorityAction_0(),
+ $current);
+ }
+ )
+ otherlv_1='MuteLowerPriority'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getMuteLowerPriorityAccess().getMuteLowerPriorityKeyword_1());
+ }
+ otherlv_2='('
+ {
+ newLeafNode(otherlv_2, grammarAccess.getMuteLowerPriorityAccess().getLeftParenthesisKeyword_2());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getMuteLowerPriorityAccess().getOperandCExpressionParserRuleCall_3_0());
+ }
+ lv_operand_3_0=ruleCExpression
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getMuteLowerPriorityRule());
+ }
+ add(
+ $current,
+ "operand",
+ lv_operand_3_0,
+ "rba.tool.editor.RBAModel.CExpression");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ otherlv_4=','
+ {
+ newLeafNode(otherlv_4, grammarAccess.getMuteLowerPriorityAccess().getCommaKeyword_4());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getMuteLowerPriorityAccess().getOperandCExpressionParserRuleCall_5_0());
+ }
+ lv_operand_5_0=ruleCExpression
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getMuteLowerPriorityRule());
+ }
+ add(
+ $current,
+ "operand",
+ lv_operand_5_0,
+ "rba.tool.editor.RBAModel.CExpression");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ otherlv_6=')'
+ {
+ newLeafNode(otherlv_6, grammarAccess.getMuteLowerPriorityAccess().getRightParenthesisKeyword_6());
+ }
+ )
+;
+
+// Entry rule entryRuleSetOfOperator
+entryRuleSetOfOperator returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getSetOfOperatorRule()); }
+ iv_ruleSetOfOperator=ruleSetOfOperator
+ { $current=$iv_ruleSetOfOperator.current; }
+ EOF;
+
+// Rule SetOfOperator
+ruleSetOfOperator returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getSetOfOperatorAccess().getSetOfOperatorAction_0(),
+ $current);
+ }
+ )
+ otherlv_1='{'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getSetOfOperatorAccess().getLeftCurlyBracketKeyword_1());
+ }
+ (
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getSetOfOperatorAccess().getOperandCExpressionParserRuleCall_2_0_0());
+ }
+ lv_operand_2_0=ruleCExpression
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSetOfOperatorRule());
+ }
+ add(
+ $current,
+ "operand",
+ lv_operand_2_0,
+ "rba.tool.editor.RBAModel.CExpression");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ (
+ otherlv_3=','
+ {
+ newLeafNode(otherlv_3, grammarAccess.getSetOfOperatorAccess().getCommaKeyword_2_1_0());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getSetOfOperatorAccess().getOperandCExpressionParserRuleCall_2_1_1_0());
+ }
+ lv_operand_4_0=ruleCExpression
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSetOfOperatorRule());
+ }
+ add(
+ $current,
+ "operand",
+ lv_operand_4_0,
+ "rba.tool.editor.RBAModel.CExpression");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ )*
+ )?
+ otherlv_5='}'
+ {
+ newLeafNode(otherlv_5, grammarAccess.getSetOfOperatorAccess().getRightCurlyBracketKeyword_3());
+ }
+ )
+;
+
+// 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();
+}:
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getIfStatementAccess().getIfStatementAction_0(),
+ $current);
+ }
+ )
+ otherlv_1='IF'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getIfStatementAccess().getIFKeyword_1());
+ }
+ otherlv_2='('
+ {
+ newLeafNode(otherlv_2, grammarAccess.getIfStatementAccess().getLeftParenthesisKeyword_2());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getIfStatementAccess().getConditionCExpressionParserRuleCall_3_0());
+ }
+ lv_condition_3_0=ruleCExpression
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getIfStatementRule());
+ }
+ set(
+ $current,
+ "condition",
+ lv_condition_3_0,
+ "rba.tool.editor.RBAModel.CExpression");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )?
+ otherlv_4=')'
+ {
+ newLeafNode(otherlv_4, grammarAccess.getIfStatementAccess().getRightParenthesisKeyword_4());
+ }
+ (
+ (
+ ('THEN')=>
+ otherlv_5='THEN'
+ {
+ newLeafNode(otherlv_5, grammarAccess.getIfStatementAccess().getTHENKeyword_5_0());
+ }
+ )
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getIfStatementAccess().getThenExpressionCExpressionParserRuleCall_5_1_0());
+ }
+ lv_thenExpression_6_0=ruleCExpression
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getIfStatementRule());
+ }
+ set(
+ $current,
+ "thenExpression",
+ lv_thenExpression_6_0,
+ "rba.tool.editor.RBAModel.CExpression");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ )?
+ (
+ (
+ ('ELSE')=>
+ otherlv_7='ELSE'
+ {
+ newLeafNode(otherlv_7, grammarAccess.getIfStatementAccess().getELSEKeyword_6_0());
+ }
+ )
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getIfStatementAccess().getElseExpressionCExpressionParserRuleCall_6_1_0());
+ }
+ lv_elseExpression_8_0=ruleCExpression
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getIfStatementRule());
+ }
+ set(
+ $current,
+ "elseExpression",
+ lv_elseExpression_8_0,
+ "rba.tool.editor.RBAModel.CExpression");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ )?
+ )
+;
+
+// Entry rule entryRuleForAllOperator
+entryRuleForAllOperator returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getForAllOperatorRule()); }
+ iv_ruleForAllOperator=ruleForAllOperator
+ { $current=$iv_ruleForAllOperator.current; }
+ EOF;
+
+// Rule ForAllOperator
+ruleForAllOperator returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getForAllOperatorAccess().getForAllOperatorAction_0(),
+ $current);
+ }
+ )
+ otherlv_1='For-All'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getForAllOperatorAccess().getForAllKeyword_1());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getForAllOperatorAccess().getOperandCExpressionParserRuleCall_2_0());
+ }
+ lv_operand_2_0=ruleCExpression
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getForAllOperatorRule());
+ }
+ add(
+ $current,
+ "operand",
+ lv_operand_2_0,
+ "rba.tool.editor.RBAModel.CExpression");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ (
+ ((
+ (
+ )
+ '{'
+ )
+ )=>
+ (
+ {
+ newCompositeNode(grammarAccess.getForAllOperatorAccess().getLambdaLambdaExpressionParserRuleCall_3_0());
+ }
+ lv_lambda_3_0=ruleLambdaExpression
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getForAllOperatorRule());
+ }
+ set(
+ $current,
+ "lambda",
+ lv_lambda_3_0,
+ "rba.tool.editor.RBAModel.LambdaExpression");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ )
+;
+
+// Entry rule entryRuleExistsOperator
+entryRuleExistsOperator returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getExistsOperatorRule()); }
+ iv_ruleExistsOperator=ruleExistsOperator
+ { $current=$iv_ruleExistsOperator.current; }
+ EOF;
+
+// Rule ExistsOperator
+ruleExistsOperator returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getExistsOperatorAccess().getExistsOperatorAction_0(),
+ $current);
+ }
+ )
+ otherlv_1='Exists'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getExistsOperatorAccess().getExistsKeyword_1());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getExistsOperatorAccess().getOperandCExpressionParserRuleCall_2_0());
+ }
+ lv_operand_2_0=ruleCExpression
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getExistsOperatorRule());
+ }
+ add(
+ $current,
+ "operand",
+ lv_operand_2_0,
+ "rba.tool.editor.RBAModel.CExpression");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ (
+ ((
+ (
+ )
+ '{'
+ )
+ )=>
+ (
+ {
+ newCompositeNode(grammarAccess.getExistsOperatorAccess().getLambdaLambdaExpressionParserRuleCall_3_0());
+ }
+ lv_lambda_3_0=ruleLambdaExpression
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getExistsOperatorRule());
+ }
+ set(
+ $current,
+ "lambda",
+ lv_lambda_3_0,
+ "rba.tool.editor.RBAModel.LambdaExpression");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ )
+;
+
+// Entry rule entryRuleLambdaExpression
+entryRuleLambdaExpression returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getLambdaExpressionRule()); }
+ iv_ruleLambdaExpression=ruleLambdaExpression
+ { $current=$iv_ruleLambdaExpression.current; }
+ EOF;
+
+// Rule LambdaExpression
+ruleLambdaExpression returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ ((
+ (
+ )
+ '{'
+ )
+ )=>
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getLambdaExpressionAccess().getLambdaExpressionAction_0_0_0(),
+ $current);
+ }
+ )
+ otherlv_1='{'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getLambdaExpressionAccess().getLeftCurlyBracketKeyword_0_0_1());
+ }
+ )
+ )
+ (
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getLambdaExpressionAccess().getXVariableParserRuleCall_1_0_0());
+ }
+ lv_x_2_0=ruleVariable
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getLambdaExpressionRule());
+ }
+ set(
+ $current,
+ "x",
+ lv_x_2_0,
+ "rba.tool.editor.RBAModel.Variable");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )?
+ otherlv_3='|'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getLambdaExpressionAccess().getVerticalLineKeyword_1_1());
+ }
+ )?
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getLambdaExpressionAccess().getLetStatementsLetStatementParserRuleCall_2_0());
+ }
+ lv_letStatements_4_0=ruleLetStatement
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getLambdaExpressionRule());
+ }
+ add(
+ $current,
+ "letStatements",
+ lv_letStatements_4_0,
+ "rba.tool.editor.RBAModel.LetStatement");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )*
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getLambdaExpressionAccess().getBodyTextCExpressionParserRuleCall_3_0());
+ }
+ lv_bodyText_5_0=ruleCExpression
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getLambdaExpressionRule());
+ }
+ set(
+ $current,
+ "bodyText",
+ lv_bodyText_5_0,
+ "rba.tool.editor.RBAModel.CExpression");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ otherlv_6='}'
+ {
+ newLeafNode(otherlv_6, grammarAccess.getLambdaExpressionAccess().getRightCurlyBracketKeyword_4());
+ }
+ )
+;
+
+// Entry rule entryRuleVariable
+entryRuleVariable returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getVariableRule()); }
+ iv_ruleVariable=ruleVariable
+ { $current=$iv_ruleVariable.current; }
+ EOF;
+
+// Rule Variable
+ruleVariable returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getVariableAccess().getVariableAction_0(),
+ $current);
+ }
+ )
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getVariableAccess().getNameQualifiedNameParserRuleCall_1_0());
+ }
+ lv_name_1_0=ruleQualifiedName
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getVariableRule());
+ }
+ set(
+ $current,
+ "name",
+ lv_name_1_0,
+ "rba.tool.editor.RBAModel.QualifiedName");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ )
+;
+
+// Entry rule entryRuleCMemberFeatureReference
+entryRuleCMemberFeatureReference returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getCMemberFeatureReferenceRule()); }
+ iv_ruleCMemberFeatureReference=ruleCMemberFeatureReference
+ { $current=$iv_ruleCMemberFeatureReference.current; }
+ EOF;
+
+// Rule CMemberFeatureReference
+ruleCMemberFeatureReference returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getCMemberFeatureReferenceAccess().getObjectReferenceAction_0(),
+ $current);
+ }
+ )
+ (
+ (
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getCMemberFeatureReferenceRule());
+ }
+ }
+ {
+ newCompositeNode(grammarAccess.getCMemberFeatureReferenceAccess().getRefObjectRuleObjectCrossReference_1_0());
+ }
+ ruleIdOrThis
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ (
+ (
+ {
+ $current = forceCreateModelElementAndAdd(
+ grammarAccess.getCMemberFeatureReferenceAccess().getMemberFeatureReferenceOperandAction_2_0(),
+ $current);
+ }
+ )
+ otherlv_3='.'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getCMemberFeatureReferenceAccess().getFullStopKeyword_2_1());
+ }
+ (
+ (
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getCMemberFeatureReferenceRule());
+ }
+ }
+ {
+ newCompositeNode(grammarAccess.getCMemberFeatureReferenceAccess().getRefObjectRuleObjectCrossReference_2_2_0());
+ }
+ ruleValidID
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ )*
+ )
+;
+
+// Entry rule entryRuleLetStatement
+entryRuleLetStatement returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getLetStatementRule()); }
+ iv_ruleLetStatement=ruleLetStatement
+ { $current=$iv_ruleLetStatement.current; }
+ EOF;
+
+// Rule LetStatement
+ruleLetStatement returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getLetStatementAccess().getLetStatementAction_0(),
+ $current);
+ }
+ )
+ otherlv_1='let'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getLetStatementAccess().getLetKeyword_1());
+ }
+ (
+ ((
+ ruleVariable
+ )
+ )=>
+ (
+ {
+ newCompositeNode(grammarAccess.getLetStatementAccess().getVariableVariableParserRuleCall_2_0());
+ }
+ lv_variable_2_0=ruleVariable
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getLetStatementRule());
+ }
+ set(
+ $current,
+ "variable",
+ lv_variable_2_0,
+ "rba.tool.editor.RBAModel.Variable");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ (
+ otherlv_3='='
+ {
+ newLeafNode(otherlv_3, grammarAccess.getLetStatementAccess().getEqualsSignKeyword_3_0());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getLetStatementAccess().getBodyCExpressionParserRuleCall_3_1_0());
+ }
+ lv_body_4_0=ruleCExpression
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getLetStatementRule());
+ }
+ set(
+ $current,
+ "body",
+ lv_body_4_0,
+ "rba.tool.editor.RBAModel.CExpression");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ )?
+ )
+;
+
+// Entry rule entryRuleComplexExpression
+entryRuleComplexExpression returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getComplexExpressionRule()); }
+ iv_ruleComplexExpression=ruleComplexExpression
+ { $current=$iv_ruleComplexExpression.current; }
+ EOF;
+
+// Rule ComplexExpression
+ruleComplexExpression returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getComplexExpressionAccess().getComplexExpressionAction_0(),
+ $current);
+ }
+ )
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getComplexExpressionAccess().getLetStatementsLetStatementParserRuleCall_1_0());
+ }
+ lv_letStatements_1_0=ruleLetStatement
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getComplexExpressionRule());
+ }
+ add(
+ $current,
+ "letStatements",
+ lv_letStatements_1_0,
+ "rba.tool.editor.RBAModel.LetStatement");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )*
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getComplexExpressionAccess().getOtherExpressionCExpressionParserRuleCall_2_0());
+ }
+ lv_otherExpression_2_0=ruleCExpression
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getComplexExpressionRule());
+ }
+ set(
+ $current,
+ "otherExpression",
+ lv_otherExpression_2_0,
+ "rba.tool.editor.RBAModel.CExpression");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ )
+;
+
+// Entry rule entryRuleLoserTypeExpression
+entryRuleLoserTypeExpression returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getLoserTypeExpressionRule()); }
+ iv_ruleLoserTypeExpression=ruleLoserTypeExpression
+ { $current=$iv_ruleLoserTypeExpression.current; }
+ EOF;
+
+// Rule LoserTypeExpression
+ruleLoserTypeExpression returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getLoserTypeExpressionAccess().getLoserTypeExpressionAction_0(),
+ $current);
+ }
+ )
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getLoserTypeExpressionAccess().getValueLoserTypeEnumRuleCall_1_0());
+ }
+ lv_value_1_0=ruleLoserType
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getLoserTypeExpressionRule());
+ }
+ set(
+ $current,
+ "value",
+ lv_value_1_0,
+ "rba.tool.editor.RBAModel.LoserType");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ )
+;
+
+// Entry rule entryRuleArbitrationPolicyExpression
+entryRuleArbitrationPolicyExpression returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getArbitrationPolicyExpressionRule()); }
+ iv_ruleArbitrationPolicyExpression=ruleArbitrationPolicyExpression
+ { $current=$iv_ruleArbitrationPolicyExpression.current; }
+ EOF;
+
+// Rule ArbitrationPolicyExpression
+ruleArbitrationPolicyExpression returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getArbitrationPolicyExpressionAccess().getArbitrationPolicyExpressionAction_0(),
+ $current);
+ }
+ )
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getArbitrationPolicyExpressionAccess().getValueArbitrationPolicyEnumRuleCall_1_0());
+ }
+ lv_value_1_0=ruleArbitrationPolicy
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getArbitrationPolicyExpressionRule());
+ }
+ set(
+ $current,
+ "value",
+ lv_value_1_0,
+ "rba.tool.editor.RBAModel.ArbitrationPolicy");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ )
+;
+
+// Entry rule entryRuleViewContentSet
+entryRuleViewContentSet returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getViewContentSetRule()); }
+ iv_ruleViewContentSet=ruleViewContentSet
+ { $current=$iv_ruleViewContentSet.current; }
+ EOF;
+
+// Rule ViewContentSet
+ruleViewContentSet returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getViewContentSetAccess().getViewContentSetAction_0(),
+ $current);
+ }
+ )
+ otherlv_1='ViewContentSet'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getViewContentSetAccess().getViewContentSetKeyword_1());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getViewContentSetAccess().getNameQualifiedNameParserRuleCall_2_0());
+ }
+ lv_name_2_0=ruleQualifiedName
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getViewContentSetRule());
+ }
+ set(
+ $current,
+ "name",
+ lv_name_2_0,
+ "rba.tool.editor.RBAModel.QualifiedName");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ otherlv_3='{'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getViewContentSetAccess().getLeftCurlyBracketKeyword_3());
+ }
+ (
+ (
+ {
+ getUnorderedGroupHelper().enter(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4());
+ }
+ (
+ (
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 0)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 0);
+ }
+ ({true}?=>(otherlv_5='description:'
+ {
+ newLeafNode(otherlv_5, grammarAccess.getViewContentSetAccess().getDescriptionKeyword_4_0_0());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getViewContentSetAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+ }
+ lv_description_6_0=ruleEString
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getViewContentSetRule());
+ }
+ set(
+ $current,
+ "description",
+ lv_description_6_0,
+ "rba.tool.editor.RBAModel.EString");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4());
+ }
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 1)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 1);
+ }
+ ({true}?=>(otherlv_7='target:'
+ {
+ newLeafNode(otherlv_7, grammarAccess.getViewContentSetAccess().getTargetKeyword_4_1_0());
+ }
+ otherlv_8='['
+ {
+ newLeafNode(otherlv_8, grammarAccess.getViewContentSetAccess().getLeftSquareBracketKeyword_4_1_1());
+ }
+ (
+ (
+ (
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getViewContentSetRule());
+ }
+ }
+ {
+ newCompositeNode(grammarAccess.getViewContentSetAccess().getTargetAbstractContentCrossReference_4_1_2_0_0());
+ }
+ ruleQualifiedName
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ (
+ otherlv_10=','
+ {
+ newLeafNode(otherlv_10, grammarAccess.getViewContentSetAccess().getCommaKeyword_4_1_2_1_0());
+ }
+ (
+ (
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getViewContentSetRule());
+ }
+ }
+ {
+ newCompositeNode(grammarAccess.getViewContentSetAccess().getTargetAbstractContentCrossReference_4_1_2_1_1_0());
+ }
+ ruleQualifiedName
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ )*
+ )?
+ otherlv_12=']'
+ {
+ newLeafNode(otherlv_12, grammarAccess.getViewContentSetAccess().getRightSquareBracketKeyword_4_1_3());
+ }
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4());
+ }
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 2)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 2);
+ }
+ ({true}?=>(otherlv_13='allocatable:'
+ {
+ newLeafNode(otherlv_13, grammarAccess.getViewContentSetAccess().getAllocatableKeyword_4_2_0());
+ }
+ otherlv_14='['
+ {
+ newLeafNode(otherlv_14, grammarAccess.getViewContentSetAccess().getLeftSquareBracketKeyword_4_2_1());
+ }
+ (
+ (
+ (
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getViewContentSetRule());
+ }
+ }
+ {
+ newCompositeNode(grammarAccess.getViewContentSetAccess().getAllocatableAbstractAllocatableCrossReference_4_2_2_0_0());
+ }
+ ruleQualifiedName
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ (
+ otherlv_16=','
+ {
+ newLeafNode(otherlv_16, grammarAccess.getViewContentSetAccess().getCommaKeyword_4_2_2_1_0());
+ }
+ (
+ (
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getViewContentSetRule());
+ }
+ }
+ {
+ newCompositeNode(grammarAccess.getViewContentSetAccess().getAllocatableAbstractAllocatableCrossReference_4_2_2_1_1_0());
+ }
+ ruleQualifiedName
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ )*
+ )?
+ otherlv_18=']'
+ {
+ newLeafNode(otherlv_18, grammarAccess.getViewContentSetAccess().getRightSquareBracketKeyword_4_2_3());
+ }
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4());
+ }
+ )
+ )
+ )*
+ )
+ )
+ {
+ getUnorderedGroupHelper().leave(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4());
+ }
+ )
+ otherlv_19='}'
+ {
+ newLeafNode(otherlv_19, grammarAccess.getViewContentSetAccess().getRightCurlyBracketKeyword_5());
+ }
+ )
+;
+
+// Entry rule entryRuleSoundContentSet
+entryRuleSoundContentSet returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getSoundContentSetRule()); }
+ iv_ruleSoundContentSet=ruleSoundContentSet
+ { $current=$iv_ruleSoundContentSet.current; }
+ EOF;
+
+// Rule SoundContentSet
+ruleSoundContentSet returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getSoundContentSetAccess().getSoundContentSetAction_0(),
+ $current);
+ }
+ )
+ otherlv_1='SoundContentSet'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getSoundContentSetAccess().getSoundContentSetKeyword_1());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getSoundContentSetAccess().getNameQualifiedNameParserRuleCall_2_0());
+ }
+ lv_name_2_0=ruleQualifiedName
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSoundContentSetRule());
+ }
+ set(
+ $current,
+ "name",
+ lv_name_2_0,
+ "rba.tool.editor.RBAModel.QualifiedName");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ otherlv_3='{'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getSoundContentSetAccess().getLeftCurlyBracketKeyword_3());
+ }
+ (
+ (
+ {
+ getUnorderedGroupHelper().enter(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4());
+ }
+ (
+ (
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 0)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 0);
+ }
+ ({true}?=>(otherlv_5='description:'
+ {
+ newLeafNode(otherlv_5, grammarAccess.getSoundContentSetAccess().getDescriptionKeyword_4_0_0());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getSoundContentSetAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+ }
+ lv_description_6_0=ruleEString
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSoundContentSetRule());
+ }
+ set(
+ $current,
+ "description",
+ lv_description_6_0,
+ "rba.tool.editor.RBAModel.EString");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4());
+ }
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 1)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 1);
+ }
+ ({true}?=>(otherlv_7='target:'
+ {
+ newLeafNode(otherlv_7, grammarAccess.getSoundContentSetAccess().getTargetKeyword_4_1_0());
+ }
+ otherlv_8='['
+ {
+ newLeafNode(otherlv_8, grammarAccess.getSoundContentSetAccess().getLeftSquareBracketKeyword_4_1_1());
+ }
+ (
+ (
+ (
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getSoundContentSetRule());
+ }
+ }
+ {
+ newCompositeNode(grammarAccess.getSoundContentSetAccess().getTargetAbstractContentCrossReference_4_1_2_0_0());
+ }
+ ruleQualifiedName
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ (
+ otherlv_10=','
+ {
+ newLeafNode(otherlv_10, grammarAccess.getSoundContentSetAccess().getCommaKeyword_4_1_2_1_0());
+ }
+ (
+ (
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getSoundContentSetRule());
+ }
+ }
+ {
+ newCompositeNode(grammarAccess.getSoundContentSetAccess().getTargetAbstractContentCrossReference_4_1_2_1_1_0());
+ }
+ ruleQualifiedName
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ )*
+ )?
+ otherlv_12=']'
+ {
+ newLeafNode(otherlv_12, grammarAccess.getSoundContentSetAccess().getRightSquareBracketKeyword_4_1_3());
+ }
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4());
+ }
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 2)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 2);
+ }
+ ({true}?=>(otherlv_13='allocatable:'
+ {
+ newLeafNode(otherlv_13, grammarAccess.getSoundContentSetAccess().getAllocatableKeyword_4_2_0());
+ }
+ otherlv_14='['
+ {
+ newLeafNode(otherlv_14, grammarAccess.getSoundContentSetAccess().getLeftSquareBracketKeyword_4_2_1());
+ }
+ (
+ (
+ (
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getSoundContentSetRule());
+ }
+ }
+ {
+ newCompositeNode(grammarAccess.getSoundContentSetAccess().getAllocatableAbstractAllocatableCrossReference_4_2_2_0_0());
+ }
+ ruleQualifiedName
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ (
+ otherlv_16=','
+ {
+ newLeafNode(otherlv_16, grammarAccess.getSoundContentSetAccess().getCommaKeyword_4_2_2_1_0());
+ }
+ (
+ (
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getSoundContentSetRule());
+ }
+ }
+ {
+ newCompositeNode(grammarAccess.getSoundContentSetAccess().getAllocatableAbstractAllocatableCrossReference_4_2_2_1_1_0());
+ }
+ ruleQualifiedName
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ )*
+ )?
+ otherlv_18=']'
+ {
+ newLeafNode(otherlv_18, grammarAccess.getSoundContentSetAccess().getRightSquareBracketKeyword_4_2_3());
+ }
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4());
+ }
+ )
+ )
+ )*
+ )
+ )
+ {
+ getUnorderedGroupHelper().leave(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4());
+ }
+ )
+ otherlv_19='}'
+ {
+ newLeafNode(otherlv_19, grammarAccess.getSoundContentSetAccess().getRightCurlyBracketKeyword_5());
+ }
+ )
+;
+
+// Entry rule entryRuleScene
+entryRuleScene returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getSceneRule()); }
+ iv_ruleScene=ruleScene
+ { $current=$iv_ruleScene.current; }
+ EOF;
+
+// Rule Scene
+ruleScene returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getSceneAccess().getSceneAction_0(),
+ $current);
+ }
+ )
+ otherlv_1='Scene'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getSceneAccess().getSceneKeyword_1());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getSceneAccess().getNameQualifiedNameParserRuleCall_2_0());
+ }
+ lv_name_2_0=ruleQualifiedName
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSceneRule());
+ }
+ set(
+ $current,
+ "name",
+ lv_name_2_0,
+ "rba.tool.editor.RBAModel.QualifiedName");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ otherlv_3='{'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getSceneAccess().getLeftCurlyBracketKeyword_3());
+ }
+ (
+ (
+ {
+ getUnorderedGroupHelper().enter(grammarAccess.getSceneAccess().getUnorderedGroup_4());
+ }
+ (
+ (
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 0)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 0);
+ }
+ ({true}?=>(otherlv_5='description:'
+ {
+ newLeafNode(otherlv_5, grammarAccess.getSceneAccess().getDescriptionKeyword_4_0_0());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getSceneAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+ }
+ lv_description_6_0=ruleEString
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSceneRule());
+ }
+ set(
+ $current,
+ "description",
+ lv_description_6_0,
+ "rba.tool.editor.RBAModel.EString");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getSceneAccess().getUnorderedGroup_4());
+ }
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 1)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 1);
+ }
+ ({true}?=>(otherlv_7='global:'
+ {
+ newLeafNode(otherlv_7, grammarAccess.getSceneAccess().getGlobalKeyword_4_1_0());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getSceneAccess().getGlobalEBooleanParserRuleCall_4_1_1_0());
+ }
+ lv_global_8_0=ruleEBoolean
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSceneRule());
+ }
+ set(
+ $current,
+ "global",
+ lv_global_8_0,
+ "rba.tool.editor.RBAModel.EBoolean");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getSceneAccess().getUnorderedGroup_4());
+ }
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 2)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 2);
+ }
+ ({true}?=>((
+ {
+ newCompositeNode(grammarAccess.getSceneAccess().getPropertiesAbstractPropertyParserRuleCall_4_2_0());
+ }
+ lv_properties_9_0=ruleAbstractProperty
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSceneRule());
+ }
+ add(
+ $current,
+ "properties",
+ lv_properties_9_0,
+ "rba.tool.editor.RBAModel.AbstractProperty");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ ))+
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getSceneAccess().getUnorderedGroup_4());
+ }
+ )
+ )
+ )*
+ )
+ )
+ {
+ getUnorderedGroupHelper().leave(grammarAccess.getSceneAccess().getUnorderedGroup_4());
+ }
+ )
+ otherlv_10='}'
+ {
+ newLeafNode(otherlv_10, grammarAccess.getSceneAccess().getRightCurlyBracketKeyword_5());
+ }
+ )
+;
+
+// Entry rule entryRuleVerticalLayout
+entryRuleVerticalLayout returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getVerticalLayoutRule()); }
+ iv_ruleVerticalLayout=ruleVerticalLayout
+ { $current=$iv_ruleVerticalLayout.current; }
+ EOF;
+
+// Rule VerticalLayout
+ruleVerticalLayout returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getVerticalLayoutAccess().getVerticalLayoutAction_0(),
+ $current);
+ }
+ )
+ otherlv_1='VerticalLayout'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getVerticalLayoutAccess().getVerticalLayoutKeyword_1());
+ }
+ otherlv_2='{'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getVerticalLayoutAccess().getLeftCurlyBracketKeyword_2());
+ }
+ (
+ (
+ {
+ getUnorderedGroupHelper().enter(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3());
+ }
+ (
+ (
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3(), 0)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3(), 0);
+ }
+ ({true}?=>(otherlv_4='basePoint:'
+ {
+ newLeafNode(otherlv_4, grammarAccess.getVerticalLayoutAccess().getBasePointKeyword_3_0_0());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getVerticalLayoutAccess().getBasePointBasePointEnumRuleCall_3_0_1_0());
+ }
+ lv_basePoint_5_0=ruleBasePoint
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getVerticalLayoutRule());
+ }
+ set(
+ $current,
+ "basePoint",
+ lv_basePoint_5_0,
+ "rba.tool.editor.RBAModel.BasePoint");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3());
+ }
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3(), 1)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3(), 1);
+ }
+ ({true}?=>(otherlv_6='subarea:'
+ {
+ newLeafNode(otherlv_6, grammarAccess.getVerticalLayoutAccess().getSubareaKeyword_3_1_0());
+ }
+ otherlv_7='['
+ {
+ newLeafNode(otherlv_7, grammarAccess.getVerticalLayoutAccess().getLeftSquareBracketKeyword_3_1_1());
+ }
+ (
+ (
+ (
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getVerticalLayoutRule());
+ }
+ }
+ {
+ newCompositeNode(grammarAccess.getVerticalLayoutAccess().getSubareaAreaCrossReference_3_1_2_0_0());
+ }
+ ruleQualifiedName
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ (
+ otherlv_9=','
+ {
+ newLeafNode(otherlv_9, grammarAccess.getVerticalLayoutAccess().getCommaKeyword_3_1_2_1_0());
+ }
+ (
+ (
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getVerticalLayoutRule());
+ }
+ }
+ {
+ newCompositeNode(grammarAccess.getVerticalLayoutAccess().getSubareaAreaCrossReference_3_1_2_1_1_0());
+ }
+ ruleQualifiedName
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ )*
+ )?
+ otherlv_11=']'
+ {
+ newLeafNode(otherlv_11, grammarAccess.getVerticalLayoutAccess().getRightSquareBracketKeyword_3_1_3());
+ }
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3());
+ }
+ )
+ )
+ )*
+ )
+ )
+ {
+ getUnorderedGroupHelper().leave(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3());
+ }
+ )
+ otherlv_12='}'
+ {
+ newLeafNode(otherlv_12, grammarAccess.getVerticalLayoutAccess().getRightCurlyBracketKeyword_4());
+ }
+ )
+;
+
+// Entry rule entryRuleHorizontalLayout
+entryRuleHorizontalLayout returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getHorizontalLayoutRule()); }
+ iv_ruleHorizontalLayout=ruleHorizontalLayout
+ { $current=$iv_ruleHorizontalLayout.current; }
+ EOF;
+
+// Rule HorizontalLayout
+ruleHorizontalLayout returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getHorizontalLayoutAccess().getHorizontalLayoutAction_0(),
+ $current);
+ }
+ )
+ otherlv_1='HorizontalLayout'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getHorizontalLayoutAccess().getHorizontalLayoutKeyword_1());
+ }
+ otherlv_2='{'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getHorizontalLayoutAccess().getLeftCurlyBracketKeyword_2());
+ }
+ (
+ (
+ {
+ getUnorderedGroupHelper().enter(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3());
+ }
+ (
+ (
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3(), 0)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3(), 0);
+ }
+ ({true}?=>(otherlv_4='basePoint:'
+ {
+ newLeafNode(otherlv_4, grammarAccess.getHorizontalLayoutAccess().getBasePointKeyword_3_0_0());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getHorizontalLayoutAccess().getBasePointBasePointEnumRuleCall_3_0_1_0());
+ }
+ lv_basePoint_5_0=ruleBasePoint
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getHorizontalLayoutRule());
+ }
+ set(
+ $current,
+ "basePoint",
+ lv_basePoint_5_0,
+ "rba.tool.editor.RBAModel.BasePoint");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3());
+ }
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3(), 1)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3(), 1);
+ }
+ ({true}?=>(otherlv_6='subarea:'
+ {
+ newLeafNode(otherlv_6, grammarAccess.getHorizontalLayoutAccess().getSubareaKeyword_3_1_0());
+ }
+ otherlv_7='['
+ {
+ newLeafNode(otherlv_7, grammarAccess.getHorizontalLayoutAccess().getLeftSquareBracketKeyword_3_1_1());
+ }
+ (
+ (
+ (
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getHorizontalLayoutRule());
+ }
+ }
+ {
+ newCompositeNode(grammarAccess.getHorizontalLayoutAccess().getSubareaAreaCrossReference_3_1_2_0_0());
+ }
+ ruleQualifiedName
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ (
+ otherlv_9=','
+ {
+ newLeafNode(otherlv_9, grammarAccess.getHorizontalLayoutAccess().getCommaKeyword_3_1_2_1_0());
+ }
+ (
+ (
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getHorizontalLayoutRule());
+ }
+ }
+ {
+ newCompositeNode(grammarAccess.getHorizontalLayoutAccess().getSubareaAreaCrossReference_3_1_2_1_1_0());
+ }
+ ruleQualifiedName
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ )*
+ )?
+ otherlv_11=']'
+ {
+ newLeafNode(otherlv_11, grammarAccess.getHorizontalLayoutAccess().getRightSquareBracketKeyword_3_1_3());
+ }
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3());
+ }
+ )
+ )
+ )*
+ )
+ )
+ {
+ getUnorderedGroupHelper().leave(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3());
+ }
+ )
+ otherlv_12='}'
+ {
+ newLeafNode(otherlv_12, grammarAccess.getHorizontalLayoutAccess().getRightCurlyBracketKeyword_4());
+ }
+ )
+;
+
+// Entry rule entryRuleFixedPositionLayout
+entryRuleFixedPositionLayout returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getFixedPositionLayoutRule()); }
+ iv_ruleFixedPositionLayout=ruleFixedPositionLayout
+ { $current=$iv_ruleFixedPositionLayout.current; }
+ EOF;
+
+// Rule FixedPositionLayout
+ruleFixedPositionLayout returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getFixedPositionLayoutAccess().getFixedPositionLayoutAction_0(),
+ $current);
+ }
+ )
+ otherlv_1='FixedPositionLayout'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getFixedPositionLayoutAccess().getFixedPositionLayoutKeyword_1());
+ }
+ otherlv_2='{'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getFixedPositionLayoutAccess().getLeftCurlyBracketKeyword_2());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getFixedPositionLayoutAccess().getSubAreaPositionPositionContainerParserRuleCall_3_0());
+ }
+ lv_subAreaPosition_3_0=rulePositionContainer
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getFixedPositionLayoutRule());
+ }
+ add(
+ $current,
+ "subAreaPosition",
+ lv_subAreaPosition_3_0,
+ "rba.tool.editor.RBAModel.PositionContainer");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )*
+ otherlv_4='}'
+ {
+ newLeafNode(otherlv_4, grammarAccess.getFixedPositionLayoutAccess().getRightCurlyBracketKeyword_4());
+ }
+ )
+;
+
+// Entry rule entryRulePositionContainer
+entryRulePositionContainer returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getPositionContainerRule()); }
+ iv_rulePositionContainer=rulePositionContainer
+ { $current=$iv_rulePositionContainer.current; }
+ EOF;
+
+// Rule PositionContainer
+rulePositionContainer returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getPositionContainerAccess().getPositionContainerAction_0(),
+ $current);
+ }
+ )
+ otherlv_1='PositionContainer'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getPositionContainerAccess().getPositionContainerKeyword_1());
+ }
+ otherlv_2='{'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getPositionContainerAccess().getLeftCurlyBracketKeyword_2());
+ }
+ (
+ (
+ {
+ getUnorderedGroupHelper().enter(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3());
+ }
+ (
+ (
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 0)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 0);
+ }
+ ({true}?=>(otherlv_4='x:'
+ {
+ newLeafNode(otherlv_4, grammarAccess.getPositionContainerAccess().getXKeyword_3_0_0());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getPositionContainerAccess().getXEIntParserRuleCall_3_0_1_0());
+ }
+ lv_x_5_0=ruleEInt
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPositionContainerRule());
+ }
+ set(
+ $current,
+ "x",
+ lv_x_5_0,
+ "rba.tool.editor.RBAModel.EInt");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3());
+ }
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 1)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 1);
+ }
+ ({true}?=>(otherlv_6='y:'
+ {
+ newLeafNode(otherlv_6, grammarAccess.getPositionContainerAccess().getYKeyword_3_1_0());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getPositionContainerAccess().getYEIntParserRuleCall_3_1_1_0());
+ }
+ lv_y_7_0=ruleEInt
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPositionContainerRule());
+ }
+ set(
+ $current,
+ "y",
+ lv_y_7_0,
+ "rba.tool.editor.RBAModel.EInt");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3());
+ }
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 2)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 2);
+ }
+ ({true}?=>(otherlv_8='basePoint:'
+ {
+ newLeafNode(otherlv_8, grammarAccess.getPositionContainerAccess().getBasePointKeyword_3_2_0());
+ }
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getPositionContainerAccess().getBasePointBasePointEnumRuleCall_3_2_1_0());
+ }
+ lv_basePoint_9_0=ruleBasePoint
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPositionContainerRule());
+ }
+ set(
+ $current,
+ "basePoint",
+ lv_basePoint_9_0,
+ "rba.tool.editor.RBAModel.BasePoint");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3());
+ }
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 3)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 3);
+ }
+ ({true}?=>(otherlv_10='areaReference:'
+ {
+ newLeafNode(otherlv_10, grammarAccess.getPositionContainerAccess().getAreaReferenceKeyword_3_3_0());
+ }
+ (
+ (
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getPositionContainerRule());
+ }
+ }
+ {
+ newCompositeNode(grammarAccess.getPositionContainerAccess().getAreaAreaCrossReference_3_3_1_0());
+ }
+ ruleQualifiedName
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ ))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3());
+ }
+ )
+ )|
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 4)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 4);
+ }
+ ({true}?=>((
+ {
+ newCompositeNode(grammarAccess.getPositionContainerAccess().getOffsetOffsetParserRuleCall_3_4_0());
+ }
+ lv_offset_12_0=ruleOffset
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPositionContainerRule());
+ }
+ add(
+ $current,
+ "offset",
+ lv_offset_12_0,
+ "rba.tool.editor.RBAModel.Offset");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ ))+
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3());
+ }
+ )
+ )
+ )*
+ )
+ )
+ {
+ getUnorderedGroupHelper().leave(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3());
+ }
+ )
+ otherlv_13='}'
+ {
+ newLeafNode(otherlv_13, grammarAccess.getPositionContainerAccess().getRightCurlyBracketKeyword_4());
+ }
+ )
+;
+
+// Entry rule entryRuleEBoolean
+entryRuleEBoolean returns [String current=null]:
+ { newCompositeNode(grammarAccess.getEBooleanRule()); }
+ iv_ruleEBoolean=ruleEBoolean
+ { $current=$iv_ruleEBoolean.current.getText(); }
+ EOF;
+
+// Rule EBoolean
+ruleEBoolean returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ kw='true'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getEBooleanAccess().getTrueKeyword_0());
+ }
+ |
+ kw='false'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getEBooleanAccess().getFalseKeyword_1());
+ }
+ )
+;
+
+// Entry rule entryRuleEInt
+entryRuleEInt returns [String current=null]:
+ { newCompositeNode(grammarAccess.getEIntRule()); }
+ iv_ruleEInt=ruleEInt
+ { $current=$iv_ruleEInt.current.getText(); }
+ EOF;
+
+// Rule EInt
+ruleEInt returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ kw='-'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getEIntAccess().getHyphenMinusKeyword_0());
+ }
+ )?
+ this_INT_1=RULE_INT
+ {
+ $current.merge(this_INT_1);
+ }
+ {
+ newLeafNode(this_INT_1, grammarAccess.getEIntAccess().getINTTerminalRuleCall_1());
+ }
+ )
+;
+
+// Entry rule entryRuleEString
+entryRuleEString returns [String current=null]:
+ { newCompositeNode(grammarAccess.getEStringRule()); }
+ iv_ruleEString=ruleEString
+ { $current=$iv_ruleEString.current.getText(); }
+ EOF;
+
+// Rule EString
+ruleEString returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ this_STRING_0=RULE_STRING
+ {
+ $current.merge(this_STRING_0);
+ }
+ {
+ newLeafNode(this_STRING_0, grammarAccess.getEStringAccess().getSTRINGTerminalRuleCall());
+ }
+;
+
+// Entry rule entryRuleRichString
+entryRuleRichString returns [String current=null]:
+ { newCompositeNode(grammarAccess.getRichStringRule()); }
+ iv_ruleRichString=ruleRichString
+ { $current=$iv_ruleRichString.current.getText(); }
+ EOF;
+
+// Rule RichString
+ruleRichString returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ this_RICH_STRING_0=RULE_RICH_STRING
+ {
+ $current.merge(this_RICH_STRING_0);
+ }
+ {
+ newLeafNode(this_RICH_STRING_0, grammarAccess.getRichStringAccess().getRICH_STRINGTerminalRuleCall());
+ }
+;
+
+// Entry rule entryRuleQualifiedNameWithWildcard
+entryRuleQualifiedNameWithWildcard returns [String current=null]:
+ { newCompositeNode(grammarAccess.getQualifiedNameWithWildcardRule()); }
+ iv_ruleQualifiedNameWithWildcard=ruleQualifiedNameWithWildcard
+ { $current=$iv_ruleQualifiedNameWithWildcard.current.getText(); }
+ EOF;
+
+// Rule QualifiedNameWithWildcard
+ruleQualifiedNameWithWildcard returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ {
+ newCompositeNode(grammarAccess.getQualifiedNameWithWildcardAccess().getQualifiedNameParserRuleCall_0());
+ }
+ this_QualifiedName_0=ruleQualifiedName
+ {
+ $current.merge(this_QualifiedName_0);
+ }
+ {
+ afterParserOrEnumRuleCall();
+ }
+ (
+ kw='.*'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getQualifiedNameWithWildcardAccess().getFullStopAsteriskKeyword_1());
+ }
+ )?
+ )
+;
+
+// Entry rule entryRuleQualifiedName
+entryRuleQualifiedName returns [String current=null]:
+ { newCompositeNode(grammarAccess.getQualifiedNameRule()); }
+ iv_ruleQualifiedName=ruleQualifiedName
+ { $current=$iv_ruleQualifiedName.current.getText(); }
+ EOF;
+
+// Rule QualifiedName
+ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ this_ID_0=RULE_ID
+ {
+ $current.merge(this_ID_0);
+ }
+ {
+ newLeafNode(this_ID_0, grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_0());
+ }
+ (
+ kw='.'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0());
+ }
+ this_ID_2=RULE_ID
+ {
+ $current.merge(this_ID_2);
+ }
+ {
+ newLeafNode(this_ID_2, grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_1_1());
+ }
+ )*
+ )
+;
+
+// Entry rule entryRuleIdOrThis
+entryRuleIdOrThis returns [String current=null]:
+ { newCompositeNode(grammarAccess.getIdOrThisRule()); }
+ iv_ruleIdOrThis=ruleIdOrThis
+ { $current=$iv_ruleIdOrThis.current.getText(); }
+ EOF;
+
+// Rule IdOrThis
+ruleIdOrThis returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ {
+ newCompositeNode(grammarAccess.getIdOrThisAccess().getValidIDParserRuleCall_0());
+ }
+ this_ValidID_0=ruleValidID
+ {
+ $current.merge(this_ValidID_0);
+ }
+ {
+ afterParserOrEnumRuleCall();
+ }
+ |
+ kw='this'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getIdOrThisAccess().getThisKeyword_1());
+ }
+ )
+;
+
+// Entry rule entryRuleValidID
+entryRuleValidID returns [String current=null]:
+ { newCompositeNode(grammarAccess.getValidIDRule()); }
+ iv_ruleValidID=ruleValidID
+ { $current=$iv_ruleValidID.current.getText(); }
+ EOF;
+
+// Rule ValidID
+ruleValidID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ this_ID_0=RULE_ID
+ {
+ $current.merge(this_ID_0);
+ }
+ {
+ newLeafNode(this_ID_0, grammarAccess.getValidIDAccess().getIDTerminalRuleCall());
+ }
+;
+
+// Entry rule entryRuleContentOperatorsCommon
+entryRuleContentOperatorsCommon returns [String current=null]:
+ { newCompositeNode(grammarAccess.getContentOperatorsCommonRule()); }
+ iv_ruleContentOperatorsCommon=ruleContentOperatorsCommon
+ { $current=$iv_ruleContentOperatorsCommon.current.getText(); }
+ EOF;
+
+// Rule ContentOperatorsCommon
+ruleContentOperatorsCommon returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ {
+ newCompositeNode(grammarAccess.getContentOperatorsCommonAccess().getOpIsActiveParserRuleCall_0());
+ }
+ this_OpIsActive_0=ruleOpIsActive
+ {
+ $current.merge(this_OpIsActive_0);
+ }
+ {
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getContentOperatorsCommonAccess().getOpGetAllocatablesParserRuleCall_1());
+ }
+ this_OpGetAllocatables_1=ruleOpGetAllocatables
+ {
+ $current.merge(this_OpGetAllocatables_1);
+ }
+ {
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getContentOperatorsCommonAccess().getOpIsVisibleParserRuleCall_2());
+ }
+ this_OpIsVisible_2=ruleOpIsVisible
+ {
+ $current.merge(this_OpIsVisible_2);
+ }
+ {
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getContentOperatorsCommonAccess().getOpHasComeEarlierThanParserRuleCall_3());
+ }
+ this_OpHasComeEarlierThan_3=ruleOpHasComeEarlierThan
+ {
+ $current.merge(this_OpHasComeEarlierThan_3);
+ }
+ {
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getContentOperatorsCommonAccess().getOpHasComeLaterThanParserRuleCall_4());
+ }
+ this_OpHasComeLaterThan_4=ruleOpHasComeLaterThan
+ {
+ $current.merge(this_OpHasComeLaterThan_4);
+ }
+ {
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getContentOperatorsCommonAccess().getOpStateValueParserRuleCall_5());
+ }
+ this_OpStateValue_5=ruleOpStateValue
+ {
+ $current.merge(this_OpStateValue_5);
+ }
+ {
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getContentOperatorsCommonAccess().getOpIsAllocatedToParserRuleCall_6());
+ }
+ this_OpIsAllocatedTo_6=ruleOpIsAllocatedTo
+ {
+ $current.merge(this_OpIsAllocatedTo_6);
+ }
+ {
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getContentOperatorsCommonAccess().getOpIsDisplayedOnParserRuleCall_7());
+ }
+ this_OpIsDisplayedOn_7=ruleOpIsDisplayedOn
+ {
+ $current.merge(this_OpIsDisplayedOn_7);
+ }
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+;
+
+// Entry rule entryRuleSoundOperatorsCommon
+entryRuleSoundOperatorsCommon returns [String current=null]:
+ { newCompositeNode(grammarAccess.getSoundOperatorsCommonRule()); }
+ iv_ruleSoundOperatorsCommon=ruleSoundOperatorsCommon
+ { $current=$iv_ruleSoundOperatorsCommon.current.getText(); }
+ EOF;
+
+// Rule SoundOperatorsCommon
+ruleSoundOperatorsCommon returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ {
+ newCompositeNode(grammarAccess.getSoundOperatorsCommonAccess().getOpIsActiveParserRuleCall_0());
+ }
+ this_OpIsActive_0=ruleOpIsActive
+ {
+ $current.merge(this_OpIsActive_0);
+ }
+ {
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getSoundOperatorsCommonAccess().getOpGetAllocatablesParserRuleCall_1());
+ }
+ this_OpGetAllocatables_1=ruleOpGetAllocatables
+ {
+ $current.merge(this_OpGetAllocatables_1);
+ }
+ {
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getSoundOperatorsCommonAccess().getOpIsSoundingParserRuleCall_2());
+ }
+ this_OpIsSounding_2=ruleOpIsSounding
+ {
+ $current.merge(this_OpIsSounding_2);
+ }
+ {
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getSoundOperatorsCommonAccess().getOpHasComeEarlierThanParserRuleCall_3());
+ }
+ this_OpHasComeEarlierThan_3=ruleOpHasComeEarlierThan
+ {
+ $current.merge(this_OpHasComeEarlierThan_3);
+ }
+ {
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getSoundOperatorsCommonAccess().getOpHasComeLaterThanParserRuleCall_4());
+ }
+ this_OpHasComeLaterThan_4=ruleOpHasComeLaterThan
+ {
+ $current.merge(this_OpHasComeLaterThan_4);
+ }
+ {
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getSoundOperatorsCommonAccess().getOpStateValueParserRuleCall_5());
+ }
+ this_OpStateValue_5=ruleOpStateValue
+ {
+ $current.merge(this_OpStateValue_5);
+ }
+ {
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getSoundOperatorsCommonAccess().getOpIsAllocatedToParserRuleCall_6());
+ }
+ this_OpIsAllocatedTo_6=ruleOpIsAllocatedTo
+ {
+ $current.merge(this_OpIsAllocatedTo_6);
+ }
+ {
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getSoundOperatorsCommonAccess().getOpIsOutputtedOnParserRuleCall_7());
+ }
+ this_OpIsOutputtedOn_7=ruleOpIsOutputtedOn
+ {
+ $current.merge(this_OpIsOutputtedOn_7);
+ }
+ {
+ afterParserOrEnumRuleCall();
+ }
+ )
+;
+
+// Rule ArbitrationPolicy
+ruleArbitrationPolicy returns [Enumerator current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ enumLiteral_0='DEFAULT'
+ {
+ $current = grammarAccess.getArbitrationPolicyAccess().getDEFAULTEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_0, grammarAccess.getArbitrationPolicyAccess().getDEFAULTEnumLiteralDeclaration_0());
+ }
+ )
+ |
+ (
+ enumLiteral_1='FIRST_COME_FIRST'
+ {
+ $current = grammarAccess.getArbitrationPolicyAccess().getFIRST_COME_FIRSTEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_1, grammarAccess.getArbitrationPolicyAccess().getFIRST_COME_FIRSTEnumLiteralDeclaration_1());
+ }
+ )
+ |
+ (
+ enumLiteral_2='LAST_COME_FIRST'
+ {
+ $current = grammarAccess.getArbitrationPolicyAccess().getLAST_COME_FIRSTEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_2, grammarAccess.getArbitrationPolicyAccess().getLAST_COME_FIRSTEnumLiteralDeclaration_2());
+ }
+ )
+ |
+ (
+ enumLiteral_3='PRIORITY_FIRST_COME_FIRST'
+ {
+ $current = grammarAccess.getArbitrationPolicyAccess().getPRIORITY_FIRST_COME_FIRSTEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_3, grammarAccess.getArbitrationPolicyAccess().getPRIORITY_FIRST_COME_FIRSTEnumLiteralDeclaration_3());
+ }
+ )
+ |
+ (
+ enumLiteral_4='PRIORITY_LAST_COME_FIRST'
+ {
+ $current = grammarAccess.getArbitrationPolicyAccess().getPRIORITY_LAST_COME_FIRSTEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_4, grammarAccess.getArbitrationPolicyAccess().getPRIORITY_LAST_COME_FIRSTEnumLiteralDeclaration_4());
+ }
+ )
+ )
+;
+
+// Rule BasePoint
+ruleBasePoint returns [Enumerator current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ enumLiteral_0='LEFT_TOP'
+ {
+ $current = grammarAccess.getBasePointAccess().getLEFT_TOPEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_0, grammarAccess.getBasePointAccess().getLEFT_TOPEnumLiteralDeclaration_0());
+ }
+ )
+ |
+ (
+ enumLiteral_1='LEFT_MIDDLE'
+ {
+ $current = grammarAccess.getBasePointAccess().getLEFT_MIDDLEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_1, grammarAccess.getBasePointAccess().getLEFT_MIDDLEEnumLiteralDeclaration_1());
+ }
+ )
+ |
+ (
+ enumLiteral_2='LEFT_BOTTOM'
+ {
+ $current = grammarAccess.getBasePointAccess().getLEFT_BOTTOMEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_2, grammarAccess.getBasePointAccess().getLEFT_BOTTOMEnumLiteralDeclaration_2());
+ }
+ )
+ |
+ (
+ enumLiteral_3='RIGHT_TOP'
+ {
+ $current = grammarAccess.getBasePointAccess().getRIGHT_TOPEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_3, grammarAccess.getBasePointAccess().getRIGHT_TOPEnumLiteralDeclaration_3());
+ }
+ )
+ |
+ (
+ enumLiteral_4='RIGHT_MIDDLE'
+ {
+ $current = grammarAccess.getBasePointAccess().getRIGHT_MIDDLEEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_4, grammarAccess.getBasePointAccess().getRIGHT_MIDDLEEnumLiteralDeclaration_4());
+ }
+ )
+ |
+ (
+ enumLiteral_5='RIGHT_BOTTOM'
+ {
+ $current = grammarAccess.getBasePointAccess().getRIGHT_BOTTOMEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_5, grammarAccess.getBasePointAccess().getRIGHT_BOTTOMEnumLiteralDeclaration_5());
+ }
+ )
+ |
+ (
+ enumLiteral_6='CENTER_TOP'
+ {
+ $current = grammarAccess.getBasePointAccess().getCENTER_TOPEnumLiteralDeclaration_6().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_6, grammarAccess.getBasePointAccess().getCENTER_TOPEnumLiteralDeclaration_6());
+ }
+ )
+ |
+ (
+ enumLiteral_7='CENTER_MIDDLE'
+ {
+ $current = grammarAccess.getBasePointAccess().getCENTER_MIDDLEEnumLiteralDeclaration_7().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_7, grammarAccess.getBasePointAccess().getCENTER_MIDDLEEnumLiteralDeclaration_7());
+ }
+ )
+ |
+ (
+ enumLiteral_8='CENTER_BOTTOM'
+ {
+ $current = grammarAccess.getBasePointAccess().getCENTER_BOTTOMEnumLiteralDeclaration_8().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_8, grammarAccess.getBasePointAccess().getCENTER_BOTTOMEnumLiteralDeclaration_8());
+ }
+ )
+ )
+;
+
+// Rule LoserType
+ruleLoserType returns [Enumerator current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ enumLiteral_0='NEVER_GIVEUP'
+ {
+ $current = grammarAccess.getLoserTypeAccess().getNEVER_GIVEUPEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_0, grammarAccess.getLoserTypeAccess().getNEVER_GIVEUPEnumLiteralDeclaration_0());
+ }
+ )
+ |
+ (
+ enumLiteral_1='GOOD_LOSER'
+ {
+ $current = grammarAccess.getLoserTypeAccess().getGOOD_LOSEREnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_1, grammarAccess.getLoserTypeAccess().getGOOD_LOSEREnumLiteralDeclaration_1());
+ }
+ )
+ |
+ (
+ enumLiteral_2='DO_NOT_GIVEUP_UNTIL_WIN'
+ {
+ $current = grammarAccess.getLoserTypeAccess().getDO_NOT_GIVEUP_UNTIL_WINEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_2, grammarAccess.getLoserTypeAccess().getDO_NOT_GIVEUP_UNTIL_WINEnumLiteralDeclaration_2());
+ }
+ )
+ )
+;
+
+RULE_ID : (RULE_IDENTIFIER_START|RULE_UNICODE_ESCAPE) (RULE_IDENTIFIER_PART|RULE_UNICODE_ESCAPE)*;
+
+fragment RULE_IDENTIFIER_START_IMPL : ('$'|'A'..'Z'|'\uFF08'..'\uFF09'|'_'|'a'..'z'|'\u00A2'..'\u00A5'|'\u00AA'|'\u00B5'|'\u00BA'|'\u00C0'..'\u00D6'|'\u00D8'..'\u00F6'|'\u00F8'..'\u0236'|'\u0250'..'\u02C1'|'\u02C6'..'\u02D1'|'\u02E0'..'\u02E4'|'\u02EE'|'\u037A'|'\u0386'|'\u0388'..'\u038A'|'\u038C'|'\u038E'..'\u03A1'|'\u03A3'..'\u03CE'|'\u03D0'..'\u03F5'|'\u03F7'..'\u03FB'|'\u0400'..'\u0481'|'\u048A'..'\u04CE'|'\u04D0'..'\u04F5'|'\u04F8'..'\u04F9'|'\u0500'..'\u050F'|'\u0531'..'\u0556'|'\u0559'|'\u0561'..'\u0587'|'\u05D0'..'\u05EA'|'\u05F0'..'\u05F2'|'\u0621'..'\u063A'|'\u0640'..'\u064A'|'\u066E'..'\u066F'|'\u0671'..'\u06D3'|'\u06D5'|'\u06E5'..'\u06E6'|'\u06EE'..'\u06EF'|'\u06FA'..'\u06FC'|'\u06FF'|'\u0710'|'\u0712'..'\u072F'|'\u074D'..'\u074F'|'\u0780'..'\u07A5'|'\u07B1'|'\u0904'..'\u0939'|'\u093D'|'\u0950'|'\u0958'..'\u0961'|'\u0985'..'\u098C'|'\u098F'..'\u0990'|'\u0993'..'\u09A8'|'\u09AA'..'\u09B0'|'\u09B2'|'\u09B6'..'\u09B9'|'\u09BD'|'\u09DC'..'\u09DD'|'\u09DF'..'\u09E1'|'\u09F0'..'\u09F3'|'\u0A05'..'\u0A0A'|'\u0A0F'..'\u0A10'|'\u0A13'..'\u0A28'|'\u0A2A'..'\u0A30'|'\u0A32'..'\u0A33'|'\u0A35'..'\u0A36'|'\u0A38'..'\u0A39'|'\u0A59'..'\u0A5C'|'\u0A5E'|'\u0A72'..'\u0A74'|'\u0A85'..'\u0A8D'|'\u0A8F'..'\u0A91'|'\u0A93'..'\u0AA8'|'\u0AAA'..'\u0AB0'|'\u0AB2'..'\u0AB3'|'\u0AB5'..'\u0AB9'|'\u0ABD'|'\u0AD0'|'\u0AE0'..'\u0AE1'|'\u0AF1'|'\u0B05'..'\u0B0C'|'\u0B0F'..'\u0B10'|'\u0B13'..'\u0B28'|'\u0B2A'..'\u0B30'|'\u0B32'..'\u0B33'|'\u0B35'..'\u0B39'|'\u0B3D'|'\u0B5C'..'\u0B5D'|'\u0B5F'..'\u0B61'|'\u0B71'|'\u0B83'|'\u0B85'..'\u0B8A'|'\u0B8E'..'\u0B90'|'\u0B92'..'\u0B95'|'\u0B99'..'\u0B9A'|'\u0B9C'|'\u0B9E'..'\u0B9F'|'\u0BA3'..'\u0BA4'|'\u0BA8'..'\u0BAA'|'\u0BAE'..'\u0BB5'|'\u0BB7'..'\u0BB9'|'\u0BF9'|'\u0C05'..'\u0C0C'|'\u0C0E'..'\u0C10'|'\u0C12'..'\u0C28'|'\u0C2A'..'\u0C33'|'\u0C35'..'\u0C39'|'\u0C60'..'\u0C61'|'\u0C85'..'\u0C8C'|'\u0C8E'..'\u0C90'|'\u0C92'..'\u0CA8'|'\u0CAA'..'\u0CB3'|'\u0CB5'..'\u0CB9'|'\u0CBD'|'\u0CDE'|'\u0CE0'..'\u0CE1'|'\u0D05'..'\u0D0C'|'\u0D0E'..'\u0D10'|'\u0D12'..'\u0D28'|'\u0D2A'..'\u0D39'|'\u0D60'..'\u0D61'|'\u0D85'..'\u0D96'|'\u0D9A'..'\u0DB1'|'\u0DB3'..'\u0DBB'|'\u0DBD'|'\u0DC0'..'\u0DC6'|'\u0E01'..'\u0E30'|'\u0E32'..'\u0E33'|'\u0E3F'..'\u0E46'|'\u0E81'..'\u0E82'|'\u0E84'|'\u0E87'..'\u0E88'|'\u0E8A'|'\u0E8D'|'\u0E94'..'\u0E97'|'\u0E99'..'\u0E9F'|'\u0EA1'..'\u0EA3'|'\u0EA5'|'\u0EA7'|'\u0EAA'..'\u0EAB'|'\u0EAD'..'\u0EB0'|'\u0EB2'..'\u0EB3'|'\u0EBD'|'\u0EC0'..'\u0EC4'|'\u0EC6'|'\u0EDC'..'\u0EDD'|'\u0F00'|'\u0F40'..'\u0F47'|'\u0F49'..'\u0F6A'|'\u0F88'..'\u0F8B'|'\u1000'..'\u1021'|'\u1023'..'\u1027'|'\u1029'..'\u102A'|'\u1050'..'\u1055'|'\u10A0'..'\u10C5'|'\u10D0'..'\u10F8'|'\u1100'..'\u1159'|'\u115F'..'\u11A2'|'\u11A8'..'\u11F9'|'\u1200'..'\u1206'|'\u1208'..'\u1246'|'\u1248'|'\u124A'..'\u124D'|'\u1250'..'\u1256'|'\u1258'|'\u125A'..'\u125D'|'\u1260'..'\u1286'|'\u1288'|'\u128A'..'\u128D'|'\u1290'..'\u12AE'|'\u12B0'|'\u12B2'..'\u12B5'|'\u12B8'..'\u12BE'|'\u12C0'|'\u12C2'..'\u12C5'|'\u12C8'..'\u12CE'|'\u12D0'..'\u12D6'|'\u12D8'..'\u12EE'|'\u12F0'..'\u130E'|'\u1310'|'\u1312'..'\u1315'|'\u1318'..'\u131E'|'\u1320'..'\u1346'|'\u1348'..'\u135A'|'\u13A0'..'\u13F4'|'\u1401'..'\u166C'|'\u166F'..'\u1676'|'\u1681'..'\u169A'|'\u16A0'..'\u16EA'|'\u16EE'..'\u16F0'|'\u1700'..'\u170C'|'\u170E'..'\u1711'|'\u1720'..'\u1731'|'\u1740'..'\u1751'|'\u1760'..'\u176C'|'\u176E'..'\u1770'|'\u1780'..'\u17B3'|'\u17D7'|'\u17DB'..'\u17DC'|'\u1820'..'\u1877'|'\u1880'..'\u18A8'|'\u1900'..'\u191C'|'\u1950'..'\u196D'|'\u1970'..'\u1974'|'\u1D00'..'\u1D6B'|'\u1E00'..'\u1E9B'|'\u1EA0'..'\u1EF9'|'\u1F00'..'\u1F15'|'\u1F18'..'\u1F1D'|'\u1F20'..'\u1F45'|'\u1F48'..'\u1F4D'|'\u1F50'..'\u1F57'|'\u1F59'|'\u1F5B'|'\u1F5D'|'\u1F5F'..'\u1F7D'|'\u1F80'..'\u1FB4'|'\u1FB6'..'\u1FBC'|'\u1FBE'|'\u1FC2'..'\u1FC4'|'\u1FC6'..'\u1FCC'|'\u1FD0'..'\u1FD3'|'\u1FD6'..'\u1FDB'|'\u1FE0'..'\u1FEC'|'\u1FF2'..'\u1FF4'|'\u1FF6'..'\u1FFC'|'\u203F'..'\u2040'|'\u2054'|'\u2071'|'\u207F'|'\u20A0'..'\u20B1'|'\u2102'|'\u2107'|'\u210A'..'\u2113'|'\u2115'|'\u2119'..'\u211D'|'\u2124'|'\u2126'|'\u2128'|'\u212A'..'\u212D'|'\u212F'..'\u2131'|'\u2133'..'\u2139'|'\u213D'..'\u213F'|'\u2145'..'\u2149'|'\u2160'..'\u2183'|'\u3005'..'\u3007'|'\u3021'..'\u3029'|'\u3031'..'\u3035'|'\u3038'..'\u303C'|'\u3041'..'\u3096'|'\u309D'..'\u309F'|'\u30A1'..'\u30FF'|'\u3105'..'\u312C'|'\u3131'..'\u318E'|'\u31A0'..'\u31B7'|'\u31F0'..'\u31FF'|'\u3400'..'\u4DB5'|'\u4E00'..'\u9FA5'|'\uA000'..'\uA48C'|'\uAC00'..'\uD7A3'|'\uF900'..'\uFA2D'|'\uFA30'..'\uFA6A'|'\uFB00'..'\uFB06'|'\uFB13'..'\uFB17'|'\uFB1D'|'\uFB1F'..'\uFB28'|'\uFB2A'..'\uFB36'|'\uFB38'..'\uFB3C'|'\uFB3E'|'\uFB40'..'\uFB41'|'\uFB43'..'\uFB44'|'\uFB46'..'\uFBB1'|'\uFBD3'..'\uFD3D'|'\uFD50'..'\uFD8F'|'\uFD92'..'\uFDC7'|'\uFDF0'..'\uFDFC'|'\uFE33'..'\uFE34'|'\uFE4D'..'\uFE4F'|'\uFE69'|'\uFE70'..'\uFE74'|'\uFE76'..'\uFEFC'|'\uFF04'|'\uFF1A'|'\uFF21'..'\uFF3A'|'\uFF3F'|'\uFF41'..'\uFF5A'|'\uFF65'..'\uFFBE'|'\uFFC2'..'\uFFC7'|'\uFFCA'..'\uFFCF'|'\uFFD2'..'\uFFD7'|'\uFFDA'..'\uFFDC'|'\uFFE0'..'\uFFE1'|'\uFFE5'..'\uFFE6');
+
+fragment RULE_IDENTIFIER_PART_IMPL : ('\u0000'..'\b'|'\u000E'..'\u001B'|'\u007F'..'\u009F'|'\u00AD'|'\u3001'..'\u3002'|'\u0300'..'\u0357'|'\u035D'..'\u036F'|'\u0483'..'\u0486'|'\u0591'..'\u05A1'|'\u05A3'..'\u05B9'|'\u05BB'..'\u05BD'|'\u05BF'|'\u05C1'..'\u05C2'|'\u05C4'|'\u0600'..'\u0603'|'\u0610'..'\u0615'|'\u064B'..'\u0658'|'\u0660'..'\u0669'|'\u0670'|'\u06D6'..'\u06DD'|'\u06DF'..'\u06E4'|'\u06E7'..'\u06E8'|'\u06EA'..'\u06ED'|'\u06F0'..'\u06F9'|'\u070F'|'\u0711'|'\u0730'..'\u074A'|'\u07A6'..'\u07B0'|'\u0901'..'\u0903'|'\u093C'|'\u093E'..'\u094D'|'\u0951'..'\u0954'|'\u0962'..'\u0963'|'\u0966'..'\u096F'|'\u0981'..'\u0983'|'\u09BC'|'\u09BE'..'\u09C4'|'\u09C7'..'\u09C8'|'\u09CB'..'\u09CD'|'\u09D7'|'\u09E2'..'\u09E3'|'\u09E6'..'\u09EF'|'\u0A01'..'\u0A03'|'\u0A3C'|'\u0A3E'..'\u0A42'|'\u0A47'..'\u0A48'|'\u0A4B'..'\u0A4D'|'\u0A66'..'\u0A71'|'\u0A81'..'\u0A83'|'\u0ABC'|'\u0ABE'..'\u0AC5'|'\u0AC7'..'\u0AC9'|'\u0ACB'..'\u0ACD'|'\u0AE2'..'\u0AE3'|'\u0AE6'..'\u0AEF'|'\u0B01'..'\u0B03'|'\u0B3C'|'\u0B3E'..'\u0B43'|'\u0B47'..'\u0B48'|'\u0B4B'..'\u0B4D'|'\u0B56'..'\u0B57'|'\u0B66'..'\u0B6F'|'\u0B82'|'\u0BBE'..'\u0BC2'|'\u0BC6'..'\u0BC8'|'\u0BCA'..'\u0BCD'|'\u0BD7'|'\u0BE7'..'\u0BEF'|'\u0C01'..'\u0C03'|'\u0C3E'..'\u0C44'|'\u0C46'..'\u0C48'|'\u0C4A'..'\u0C4D'|'\u0C55'..'\u0C56'|'\u0C66'..'\u0C6F'|'\u0C82'..'\u0C83'|'\u0CBC'|'\u0CBE'..'\u0CC4'|'\u0CC6'..'\u0CC8'|'\u0CCA'..'\u0CCD'|'\u0CD5'..'\u0CD6'|'\u0CE6'..'\u0CEF'|'\u0D02'..'\u0D03'|'\u0D3E'..'\u0D43'|'\u0D46'..'\u0D48'|'\u0D4A'..'\u0D4D'|'\u0D57'|'\u0D66'..'\u0D6F'|'\u0D82'..'\u0D83'|'\u0DCA'|'\u0DCF'..'\u0DD4'|'\u0DD6'|'\u0DD8'..'\u0DDF'|'\u0DF2'..'\u0DF3'|'\u0E31'|'\u0E34'..'\u0E3A'|'\u0E47'..'\u0E4E'|'\u0E50'..'\u0E59'|'\u0EB1'|'\u0EB4'..'\u0EB9'|'\u0EBB'..'\u0EBC'|'\u0EC8'..'\u0ECD'|'\u0ED0'..'\u0ED9'|'\u0F18'..'\u0F19'|'\u0F20'..'\u0F29'|'\u0F35'|'\u0F37'|'\u0F39'|'\u0F3E'..'\u0F3F'|'\u0F71'..'\u0F84'|'\u0F86'..'\u0F87'|'\u0F90'..'\u0F97'|'\u0F99'..'\u0FBC'|'\u0FC6'|'\u102C'..'\u1032'|'\u1036'..'\u1039'|'\u1040'..'\u1049'|'\u1056'..'\u1059'|'\u1369'..'\u1371'|'\u1712'..'\u1714'|'\u1732'..'\u1734'|'\u1752'..'\u1753'|'\u1772'..'\u1773'|'\u17B4'..'\u17D3'|'\u17DD'|'\u17E0'..'\u17E9'|'\u180B'..'\u180D'|'\u1810'..'\u1819'|'\u18A9'|'\u1920'..'\u192B'|'\u1930'..'\u193B'|'\u1946'..'\u194F'|'\u200C'..'\u200F'|'\u202A'..'\u202E'|'\u2060'..'\u2063'|'\u206A'..'\u206F'|'\u20D0'..'\u20DC'|'\u20E1'|'\u20E5'..'\u20EA'|'\u302A'..'\u302F'|'\u3099'..'\u309A'|'\uFB1E'|'\uFE00'..'\uFE0F'|'\uFE20'..'\uFE23'|'\uFEFF'|'\uFF10'..'\uFF19'|'\uFFF9'..'\uFFFB');
+
+fragment RULE_IDENTIFIER_DIGITS : '0'..'9';
+
+fragment RULE_HEX_DIGIT : ('0'..'9'|'a'..'f'|'A'..'F');
+
+fragment RULE_UNICODE_ESCAPE : '\\' 'u' (RULE_HEX_DIGIT (RULE_HEX_DIGIT (RULE_HEX_DIGIT RULE_HEX_DIGIT?)?)?)?;
+
+fragment RULE_IDENTIFIER_PART : (RULE_IDENTIFIER_START_IMPL|RULE_IDENTIFIER_DIGITS|RULE_IDENTIFIER_PART_IMPL);
+
+fragment RULE_IDENTIFIER_START : (RULE_IDENTIFIER_START_IMPL|RULE_IDENTIFIER_PART_IMPL);
+
+RULE_WS : (' '|'\t'|'\r'|'\n')+;
+
+RULE_INT : ('0'..'9')+;
+
+RULE_STRING : '"' ('\\' .|~(('\\'|'"'|'\''|'\n'|'\r')))* '"';
+
+RULE_RICH_STRING : '@BEGIN@' ( options {greedy=false;} : . )*'@END@';
+
+RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/';
+
+RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?;
diff --git a/rba.tool.editor/src-gen/rba/tool/editor/parser/antlr/internal/InternalRBAModel.tokens b/rba.tool.editor/src-gen/rba/tool/editor/parser/antlr/internal/InternalRBAModel.tokens
new file mode 100644
index 0000000..f88fb84
--- /dev/null
+++ b/rba.tool.editor/src-gen/rba/tool/editor/parser/antlr/internal/InternalRBAModel.tokens
@@ -0,0 +1,314 @@
+'!'=83
+'!='=80
+'('=34
+'(pre)'=125
+')'=35
+'+'=68
+','=27
+'-'=148
+'->'=76
+'.'=71
+'.*'=149
+':'=21
+'<'=32
+'<<'=22
+'<='=82
+'='=69
+'=='=79
+'>'=33
+'>='=81
+'>>'=23
+'ALL_AREAS'=120
+'ALL_SOUNDCONTENTS'=123
+'ALL_VIEWCONTENTS'=121
+'ALL_ZONES'=122
+'AND'=78
+'Area'=36
+'AreaSet'=54
+'CENTER_BOTTOM'=164
+'CENTER_MIDDLE'=163
+'CENTER_TOP'=162
+'CompositeArea'=57
+'Constraint'=41
+'DEFAULT'=151
+'DO_NOT_GIVEUP_UNTIL_WIN'=167
+'Display'=40
+'ELSE'=130
+'Exists'=132
+'FIRST_COME_FIRST'=152
+'FixedPositionLayout'=143
+'For-All'=131
+'GOOD_LOSER'=166
+'HideLowerPriority'=126
+'HorizontalLayout'=142
+'IF'=128
+'LAST_COME_FIRST'=153
+'LEFT_BOTTOM'=158
+'LEFT_MIDDLE'=157
+'LEFT_TOP'=156
+'MAX_VALUE'=75
+'MIN_VALUE'=74
+'MuteLowerPriority'=127
+'NEVER_GIVEUP'=165
+'NONE_VALUE'=73
+'NULL'=124
+'OR'=77
+'Offset'=51
+'PRIORITY_FIRST_COME_FIRST'=154
+'PRIORITY_LAST_COME_FIRST'=155
+'Package'=29
+'PositionContainer'=144
+'Project'=66
+'RIGHT_BOTTOM'=161
+'RIGHT_MIDDLE'=160
+'RIGHT_TOP'=159
+'STANDARD_VALUE'=72
+'Scene'=137
+'Size'=47
+'SoundContent'=38
+'SoundContentSet'=136
+'State'=64
+'Stereotype'=31
+'THEN'=129
+'That-of'=70
+'VerticalLayout'=139
+'ViewContent'=39
+'ViewContentSet'=135
+'Zone'=37
+'ZoneSet'=56
+'['=45
+'\u00AB'=24
+'\u00BB'=25
+']'=46
+'activeContents'=113
+'activeState'=116
+'allocatable:'=44
+'allocatables'=89
+'allocatedContent'=90
+'arbitrationPolicy:'=59
+'areaReference:'=145
+'attenuateValue:'=63
+'basePoint:'=140
+'contentValue'=87
+'contentsList'=86
+'description:'=30
+'displayingContent'=93
+'false'=147
+'get'=84
+'global:'=138
+'hasBeenDisplayed'=115
+'hasComeEarlierThan'=100
+'hasComeLaterThan'=101
+'height:'=49
+'import'=19
+'int'=20
+'isActive'=88
+'isAllocatedTo'=103
+'isAttenuated'=99
+'isChanged'=104
+'isChangedDisplay'=107
+'isChangedOutput'=110
+'isDisplayed'=91
+'isDisplayedOn'=106
+'isHidden'=92
+'isMuted'=96
+'isOn'=85
+'isOutputted'=95
+'isOutputtedOn'=109
+'isSounding'=98
+'isTranslatedSoundTo'=111
+'isTranslatedTo'=105
+'isTranslatedViewTo'=108
+'isTypeOf'=112
+'isVisible'=94
+'layout:'=58
+'let'=134
+'loserType:'=43
+'max'=117
+'min'=118
+'module'=18
+'outputtingSound'=97
+'priority:'=61
+'runtime:'=42
+'select'=119
+'size'=114
+'sizeReference:'=50
+'stateValue'=102
+'subarea:'=141
+'target:'=55
+'this'=150
+'true'=146
+'value:'=65
+'version:'=67
+'visibility:'=60
+'width:'=48
+'x:'=52
+'y:'=53
+'zorder:'=62
+'{'=26
+'|'=133
+'}'=28
+RULE_HEX_DIGIT=14
+RULE_ID=7
+RULE_IDENTIFIER_DIGITS=13
+RULE_IDENTIFIER_PART=10
+RULE_IDENTIFIER_PART_IMPL=12
+RULE_IDENTIFIER_START=8
+RULE_IDENTIFIER_START_IMPL=11
+RULE_INT=4
+RULE_ML_COMMENT=16
+RULE_RICH_STRING=6
+RULE_SL_COMMENT=17
+RULE_STRING=5
+RULE_UNICODE_ESCAPE=9
+RULE_WS=15
+T__100=100
+T__101=101
+T__102=102
+T__103=103
+T__104=104
+T__105=105
+T__106=106
+T__107=107
+T__108=108
+T__109=109
+T__110=110
+T__111=111
+T__112=112
+T__113=113
+T__114=114
+T__115=115
+T__116=116
+T__117=117
+T__118=118
+T__119=119
+T__120=120
+T__121=121
+T__122=122
+T__123=123
+T__124=124
+T__125=125
+T__126=126
+T__127=127
+T__128=128
+T__129=129
+T__130=130
+T__131=131
+T__132=132
+T__133=133
+T__134=134
+T__135=135
+T__136=136
+T__137=137
+T__138=138
+T__139=139
+T__140=140
+T__141=141
+T__142=142
+T__143=143
+T__144=144
+T__145=145
+T__146=146
+T__147=147
+T__148=148
+T__149=149
+T__150=150
+T__151=151
+T__152=152
+T__153=153
+T__154=154
+T__155=155
+T__156=156
+T__157=157
+T__158=158
+T__159=159
+T__160=160
+T__161=161
+T__162=162
+T__163=163
+T__164=164
+T__165=165
+T__166=166
+T__167=167
+T__18=18
+T__19=19
+T__20=20
+T__21=21
+T__22=22
+T__23=23
+T__24=24
+T__25=25
+T__26=26
+T__27=27
+T__28=28
+T__29=29
+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
+T__40=40
+T__41=41
+T__42=42
+T__43=43
+T__44=44
+T__45=45
+T__46=46
+T__47=47
+T__48=48
+T__49=49
+T__50=50
+T__51=51
+T__52=52
+T__53=53
+T__54=54
+T__55=55
+T__56=56
+T__57=57
+T__58=58
+T__59=59
+T__60=60
+T__61=61
+T__62=62
+T__63=63
+T__64=64
+T__65=65
+T__66=66
+T__67=67
+T__68=68
+T__69=69
+T__70=70
+T__71=71
+T__72=72
+T__73=73
+T__74=74
+T__75=75
+T__76=76
+T__77=77
+T__78=78
+T__79=79
+T__80=80
+T__81=81
+T__82=82
+T__83=83
+T__84=84
+T__85=85
+T__86=86
+T__87=87
+T__88=88
+T__89=89
+T__90=90
+T__91=91
+T__92=92
+T__93=93
+T__94=94
+T__95=95
+T__96=96
+T__97=97
+T__98=98
+T__99=99
diff --git a/rba.tool.editor/src-gen/rba/tool/editor/parser/antlr/internal/InternalRBAModelLexer.java b/rba.tool.editor/src-gen/rba/tool/editor/parser/antlr/internal/InternalRBAModelLexer.java
new file mode 100644
index 0000000..3717ff7
--- /dev/null
+++ b/rba.tool.editor/src-gen/rba/tool/editor/parser/antlr/internal/InternalRBAModelLexer.java
@@ -0,0 +1,6319 @@
+package rba.tool.editor.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 InternalRBAModelLexer extends Lexer {
+ public static final int T__144=144;
+ public static final int T__143=143;
+ public static final int T__146=146;
+ public static final int T__50=50;
+ public static final int T__145=145;
+ public static final int T__140=140;
+ public static final int T__142=142;
+ public static final int T__141=141;
+ public static final int T__59=59;
+ 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__137=137;
+ public static final int T__52=52;
+ public static final int T__136=136;
+ public static final int T__53=53;
+ public static final int T__139=139;
+ public static final int T__54=54;
+ public static final int T__138=138;
+ public static final int T__133=133;
+ public static final int T__132=132;
+ public static final int T__60=60;
+ public static final int T__135=135;
+ public static final int T__61=61;
+ public static final int T__134=134;
+ public static final int RULE_ID=7;
+ public static final int T__131=131;
+ public static final int T__130=130;
+ public static final int RULE_INT=4;
+ public static final int T__66=66;
+ public static final int RULE_ML_COMMENT=16;
+ public static final int T__67=67;
+ public static final int T__129=129;
+ public static final int T__68=68;
+ public static final int T__69=69;
+ public static final int T__62=62;
+ public static final int T__126=126;
+ public static final int T__63=63;
+ public static final int T__125=125;
+ public static final int T__64=64;
+ public static final int T__128=128;
+ public static final int T__65=65;
+ public static final int T__127=127;
+ public static final int T__166=166;
+ public static final int T__165=165;
+ public static final int T__167=167;
+ public static final int T__162=162;
+ public static final int T__161=161;
+ public static final int T__164=164;
+ public static final int T__163=163;
+ public static final int T__160=160;
+ public static final int RULE_IDENTIFIER_DIGITS=13;
+ public static final int RULE_UNICODE_ESCAPE=9;
+ 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_IDENTIFIER_PART=10;
+ 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__159=159;
+ public static final int T__30=30;
+ public static final int T__158=158;
+ public static final int T__31=31;
+ public static final int T__32=32;
+ public static final int T__155=155;
+ public static final int T__154=154;
+ public static final int T__157=157;
+ public static final int T__156=156;
+ public static final int T__151=151;
+ public static final int T__150=150;
+ public static final int T__153=153;
+ public static final int T__152=152;
+ public static final int T__48=48;
+ public static final int T__49=49;
+ public static final int T__44=44;
+ public static final int T__45=45;
+ public static final int RULE_HEX_DIGIT=14;
+ public static final int T__46=46;
+ public static final int T__47=47;
+ public static final int T__40=40;
+ public static final int T__148=148;
+ public static final int T__41=41;
+ public static final int T__147=147;
+ public static final int T__42=42;
+ public static final int T__43=43;
+ public static final int T__149=149;
+ public static final int T__91=91;
+ public static final int T__100=100;
+ public static final int T__92=92;
+ public static final int T__93=93;
+ public static final int T__102=102;
+ public static final int T__94=94;
+ public static final int T__101=101;
+ public static final int T__90=90;
+ public static final int T__19=19;
+ public static final int RULE_IDENTIFIER_START=8;
+ public static final int T__18=18;
+ public static final int T__99=99;
+ public static final int T__95=95;
+ public static final int T__96=96;
+ public static final int T__97=97;
+ public static final int T__98=98;
+ public static final int T__26=26;
+ public static final int T__27=27;
+ public static final int T__28=28;
+ public static final int T__29=29;
+ public static final int T__22=22;
+ public static final int T__23=23;
+ public static final int T__24=24;
+ public static final int T__25=25;
+ public static final int T__20=20;
+ public static final int T__21=21;
+ public static final int T__122=122;
+ public static final int T__70=70;
+ public static final int T__121=121;
+ public static final int T__71=71;
+ public static final int T__124=124;
+ public static final int T__72=72;
+ public static final int T__123=123;
+ public static final int T__120=120;
+ public static final int RULE_STRING=5;
+ public static final int RULE_SL_COMMENT=17;
+ public static final int T__77=77;
+ public static final int T__119=119;
+ public static final int T__78=78;
+ public static final int T__118=118;
+ public static final int T__79=79;
+ public static final int T__73=73;
+ public static final int T__115=115;
+ public static final int EOF=-1;
+ public static final int T__74=74;
+ public static final int T__114=114;
+ public static final int T__75=75;
+ public static final int T__117=117;
+ public static final int T__76=76;
+ public static final int T__116=116;
+ public static final int T__80=80;
+ public static final int T__111=111;
+ public static final int T__81=81;
+ public static final int T__110=110;
+ public static final int RULE_RICH_STRING=6;
+ public static final int T__82=82;
+ public static final int T__113=113;
+ public static final int T__83=83;
+ public static final int T__112=112;
+ public static final int RULE_WS=15;
+ public static final int RULE_IDENTIFIER_PART_IMPL=12;
+ public static final int RULE_IDENTIFIER_START_IMPL=11;
+ public static final int T__88=88;
+ public static final int T__108=108;
+ public static final int T__89=89;
+ public static final int T__107=107;
+ public static final int T__109=109;
+ public static final int T__84=84;
+ public static final int T__104=104;
+ public static final int T__85=85;
+ public static final int T__103=103;
+ public static final int T__86=86;
+ public static final int T__106=106;
+ public static final int T__87=87;
+ public static final int T__105=105;
+
+ // delegates
+ // delegators
+
+ public InternalRBAModelLexer() {;}
+ public InternalRBAModelLexer(CharStream input) {
+ this(input, new RecognizerSharedState());
+ }
+ public InternalRBAModelLexer(CharStream input, RecognizerSharedState state) {
+ super(input,state);
+
+ }
+ public String getGrammarFileName() { return "InternalRBAModel.g"; }
+
+ // $ANTLR start "T__18"
+ public final void mT__18() throws RecognitionException {
+ try {
+ int _type = T__18;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:11:7: ( 'module' )
+ // InternalRBAModel.g:11:9: 'module'
+ {
+ match("module");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:12:7: ( 'import' )
+ // InternalRBAModel.g:12:9: 'import'
+ {
+ match("import");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:13:7: ( 'int' )
+ // InternalRBAModel.g:13:9: 'int'
+ {
+ match("int");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:14:7: ( ':' )
+ // InternalRBAModel.g:14: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;
+ // InternalRBAModel.g:15:7: ( '<<' )
+ // InternalRBAModel.g:15: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;
+ // InternalRBAModel.g:16:7: ( '>>' )
+ // InternalRBAModel.g:16: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;
+ // InternalRBAModel.g:17:7: ( '\\u00AB' )
+ // InternalRBAModel.g:17:9: '\\u00AB'
+ {
+ match('\u00AB');
+
+ }
+
+ 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;
+ // InternalRBAModel.g:18:7: ( '\\u00BB' )
+ // InternalRBAModel.g:18:9: '\\u00BB'
+ {
+ match('\u00BB');
+
+ }
+
+ 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;
+ // InternalRBAModel.g:19:7: ( '{' )
+ // InternalRBAModel.g:19: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;
+ // InternalRBAModel.g:20:7: ( ',' )
+ // InternalRBAModel.g:20: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;
+ // InternalRBAModel.g:21:7: ( '}' )
+ // InternalRBAModel.g:21: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;
+ // InternalRBAModel.g:22:7: ( 'Package' )
+ // InternalRBAModel.g:22:9: 'Package'
+ {
+ match("Package");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:23:7: ( 'description:' )
+ // InternalRBAModel.g:23:9: 'description:'
+ {
+ match("description:");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:24:7: ( 'Stereotype' )
+ // InternalRBAModel.g:24:9: 'Stereotype'
+ {
+ match("Stereotype");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:25:7: ( '<' )
+ // InternalRBAModel.g:25: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;
+ // InternalRBAModel.g:26:7: ( '>' )
+ // InternalRBAModel.g:26: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;
+ // InternalRBAModel.g:27:7: ( '(' )
+ // InternalRBAModel.g:27: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;
+ // InternalRBAModel.g:28:7: ( ')' )
+ // InternalRBAModel.g:28:9: ')'
+ {
+ match(')');
+
+ }
+
+ 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;
+ // InternalRBAModel.g:29:7: ( 'Area' )
+ // InternalRBAModel.g:29:9: 'Area'
+ {
+ match("Area");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:30:7: ( 'Zone' )
+ // InternalRBAModel.g:30:9: 'Zone'
+ {
+ match("Zone");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:31:7: ( 'SoundContent' )
+ // InternalRBAModel.g:31:9: 'SoundContent'
+ {
+ match("SoundContent");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:32:7: ( 'ViewContent' )
+ // InternalRBAModel.g:32:9: 'ViewContent'
+ {
+ match("ViewContent");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:33:7: ( 'Display' )
+ // InternalRBAModel.g:33:9: 'Display'
+ {
+ match("Display");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:34:7: ( 'Constraint' )
+ // InternalRBAModel.g:34:9: 'Constraint'
+ {
+ match("Constraint");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:35:7: ( 'runtime:' )
+ // InternalRBAModel.g:35:9: 'runtime:'
+ {
+ match("runtime:");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:36:7: ( 'loserType:' )
+ // InternalRBAModel.g:36:9: 'loserType:'
+ {
+ match("loserType:");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:37:7: ( 'allocatable:' )
+ // InternalRBAModel.g:37:9: 'allocatable:'
+ {
+ match("allocatable:");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:38:7: ( '[' )
+ // InternalRBAModel.g:38: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;
+ // InternalRBAModel.g:39:7: ( ']' )
+ // InternalRBAModel.g:39: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;
+ // InternalRBAModel.g:40:7: ( 'Size' )
+ // InternalRBAModel.g:40:9: 'Size'
+ {
+ match("Size");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:41:7: ( 'width:' )
+ // InternalRBAModel.g:41:9: 'width:'
+ {
+ match("width:");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:42:7: ( 'height:' )
+ // InternalRBAModel.g:42:9: 'height:'
+ {
+ match("height:");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:43:7: ( 'sizeReference:' )
+ // InternalRBAModel.g:43:9: 'sizeReference:'
+ {
+ match("sizeReference:");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:44:7: ( 'Offset' )
+ // InternalRBAModel.g:44:9: 'Offset'
+ {
+ match("Offset");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:45:7: ( 'x:' )
+ // InternalRBAModel.g:45:9: 'x:'
+ {
+ match("x:");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:46:7: ( 'y:' )
+ // InternalRBAModel.g:46:9: 'y:'
+ {
+ match("y:");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:47:7: ( 'AreaSet' )
+ // InternalRBAModel.g:47:9: 'AreaSet'
+ {
+ match("AreaSet");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:48:7: ( 'target:' )
+ // InternalRBAModel.g:48:9: 'target:'
+ {
+ match("target:");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:49:7: ( 'ZoneSet' )
+ // InternalRBAModel.g:49:9: 'ZoneSet'
+ {
+ match("ZoneSet");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:50:7: ( 'CompositeArea' )
+ // InternalRBAModel.g:50:9: 'CompositeArea'
+ {
+ match("CompositeArea");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:51:7: ( 'layout:' )
+ // InternalRBAModel.g:51:9: 'layout:'
+ {
+ match("layout:");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:52:7: ( 'arbitrationPolicy:' )
+ // InternalRBAModel.g:52:9: 'arbitrationPolicy:'
+ {
+ match("arbitrationPolicy:");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:53:7: ( 'visibility:' )
+ // InternalRBAModel.g:53:9: 'visibility:'
+ {
+ match("visibility:");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:54:7: ( 'priority:' )
+ // InternalRBAModel.g:54:9: 'priority:'
+ {
+ match("priority:");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:55:7: ( 'zorder:' )
+ // InternalRBAModel.g:55:9: 'zorder:'
+ {
+ match("zorder:");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:56:7: ( 'attenuateValue:' )
+ // InternalRBAModel.g:56:9: 'attenuateValue:'
+ {
+ match("attenuateValue:");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:57:7: ( 'State' )
+ // InternalRBAModel.g:57:9: 'State'
+ {
+ match("State");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:58:7: ( 'value:' )
+ // InternalRBAModel.g:58:9: 'value:'
+ {
+ match("value:");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:59:7: ( 'Project' )
+ // InternalRBAModel.g:59:9: 'Project'
+ {
+ match("Project");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:60:7: ( 'version:' )
+ // InternalRBAModel.g:60:9: 'version:'
+ {
+ match("version:");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:61:7: ( '+' )
+ // InternalRBAModel.g:61: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;
+ // InternalRBAModel.g:62:7: ( '=' )
+ // InternalRBAModel.g:62:9: '='
+ {
+ match('=');
+
+ }
+
+ 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;
+ // InternalRBAModel.g:63:7: ( 'That-of' )
+ // InternalRBAModel.g:63:9: 'That-of'
+ {
+ match("That-of");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:64:7: ( '.' )
+ // InternalRBAModel.g:64:9: '.'
+ {
+ match('.');
+
+ }
+
+ 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;
+ // InternalRBAModel.g:65:7: ( 'STANDARD_VALUE' )
+ // InternalRBAModel.g:65:9: 'STANDARD_VALUE'
+ {
+ match("STANDARD_VALUE");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:66:7: ( 'NONE_VALUE' )
+ // InternalRBAModel.g:66:9: 'NONE_VALUE'
+ {
+ match("NONE_VALUE");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:67:7: ( 'MIN_VALUE' )
+ // InternalRBAModel.g:67:9: 'MIN_VALUE'
+ {
+ match("MIN_VALUE");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:68:7: ( 'MAX_VALUE' )
+ // InternalRBAModel.g:68:9: 'MAX_VALUE'
+ {
+ match("MAX_VALUE");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:69:7: ( '->' )
+ // InternalRBAModel.g:69:9: '->'
+ {
+ match("->");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:70:7: ( 'OR' )
+ // InternalRBAModel.g:70:9: 'OR'
+ {
+ match("OR");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:71:7: ( 'AND' )
+ // InternalRBAModel.g:71:9: 'AND'
+ {
+ match("AND");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:72:7: ( '==' )
+ // InternalRBAModel.g:72:9: '=='
+ {
+ match("==");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:73:7: ( '!=' )
+ // InternalRBAModel.g:73:9: '!='
+ {
+ match("!=");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:74:7: ( '>=' )
+ // InternalRBAModel.g:74:9: '>='
+ {
+ match(">=");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:75:7: ( '<=' )
+ // InternalRBAModel.g:75:9: '<='
+ {
+ match("<=");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:76:7: ( '!' )
+ // InternalRBAModel.g:76:9: '!'
+ {
+ match('!');
+
+ }
+
+ 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;
+ // InternalRBAModel.g:77:7: ( 'get' )
+ // InternalRBAModel.g:77:9: 'get'
+ {
+ match("get");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:78:7: ( 'isOn' )
+ // InternalRBAModel.g:78:9: 'isOn'
+ {
+ match("isOn");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:79:7: ( 'contentsList' )
+ // InternalRBAModel.g:79:9: 'contentsList'
+ {
+ match("contentsList");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:80:7: ( 'contentValue' )
+ // InternalRBAModel.g:80:9: 'contentValue'
+ {
+ match("contentValue");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:81:7: ( 'isActive' )
+ // InternalRBAModel.g:81:9: 'isActive'
+ {
+ match("isActive");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:82:7: ( 'allocatables' )
+ // InternalRBAModel.g:82:9: 'allocatables'
+ {
+ match("allocatables");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:83:7: ( 'allocatedContent' )
+ // InternalRBAModel.g:83:9: 'allocatedContent'
+ {
+ match("allocatedContent");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:84:7: ( 'isDisplayed' )
+ // InternalRBAModel.g:84:9: 'isDisplayed'
+ {
+ match("isDisplayed");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:85:7: ( 'isHidden' )
+ // InternalRBAModel.g:85:9: 'isHidden'
+ {
+ match("isHidden");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:86:7: ( 'displayingContent' )
+ // InternalRBAModel.g:86:9: 'displayingContent'
+ {
+ match("displayingContent");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:87:7: ( 'isVisible' )
+ // InternalRBAModel.g:87:9: 'isVisible'
+ {
+ match("isVisible");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:88:7: ( 'isOutputted' )
+ // InternalRBAModel.g:88:9: 'isOutputted'
+ {
+ match("isOutputted");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:89:7: ( 'isMuted' )
+ // InternalRBAModel.g:89:9: 'isMuted'
+ {
+ match("isMuted");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:90:7: ( 'outputtingSound' )
+ // InternalRBAModel.g:90:9: 'outputtingSound'
+ {
+ match("outputtingSound");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:91:7: ( 'isSounding' )
+ // InternalRBAModel.g:91:9: 'isSounding'
+ {
+ match("isSounding");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:92:7: ( 'isAttenuated' )
+ // InternalRBAModel.g:92:9: 'isAttenuated'
+ {
+ match("isAttenuated");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:93:8: ( 'hasComeEarlierThan' )
+ // InternalRBAModel.g:93:10: 'hasComeEarlierThan'
+ {
+ match("hasComeEarlierThan");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:94:8: ( 'hasComeLaterThan' )
+ // InternalRBAModel.g:94:10: 'hasComeLaterThan'
+ {
+ match("hasComeLaterThan");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:95:8: ( 'stateValue' )
+ // InternalRBAModel.g:95:10: 'stateValue'
+ {
+ match("stateValue");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:96:8: ( 'isAllocatedTo' )
+ // InternalRBAModel.g:96:10: 'isAllocatedTo'
+ {
+ match("isAllocatedTo");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:97:8: ( 'isChanged' )
+ // InternalRBAModel.g:97:10: 'isChanged'
+ {
+ match("isChanged");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:98:8: ( 'isTranslatedTo' )
+ // InternalRBAModel.g:98:10: 'isTranslatedTo'
+ {
+ match("isTranslatedTo");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:99:8: ( 'isDisplayedOn' )
+ // InternalRBAModel.g:99:10: 'isDisplayedOn'
+ {
+ match("isDisplayedOn");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:100:8: ( 'isChangedDisplay' )
+ // InternalRBAModel.g:100:10: 'isChangedDisplay'
+ {
+ match("isChangedDisplay");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:101:8: ( 'isTranslatedViewTo' )
+ // InternalRBAModel.g:101:10: 'isTranslatedViewTo'
+ {
+ match("isTranslatedViewTo");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:102:8: ( 'isOutputtedOn' )
+ // InternalRBAModel.g:102:10: 'isOutputtedOn'
+ {
+ match("isOutputtedOn");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:103:8: ( 'isChangedOutput' )
+ // InternalRBAModel.g:103:10: 'isChangedOutput'
+ {
+ match("isChangedOutput");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:104:8: ( 'isTranslatedSoundTo' )
+ // InternalRBAModel.g:104:10: 'isTranslatedSoundTo'
+ {
+ match("isTranslatedSoundTo");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:105:8: ( 'isTypeOf' )
+ // InternalRBAModel.g:105:10: 'isTypeOf'
+ {
+ match("isTypeOf");
+
+
+ }
+
+ 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;
+ // InternalRBAModel.g:106:8: ( 'activeContents' )
+ // InternalRBAModel.g:106:10: 'activeContents'
+ {
+ match("activeContents");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__113"
+
+ // $ANTLR start "T__114"
+ public final void mT__114() throws RecognitionException {
+ try {
+ int _type = T__114;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:107:8: ( 'size' )
+ // InternalRBAModel.g:107:10: 'size'
+ {
+ match("size");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__114"
+
+ // $ANTLR start "T__115"
+ public final void mT__115() throws RecognitionException {
+ try {
+ int _type = T__115;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:108:8: ( 'hasBeenDisplayed' )
+ // InternalRBAModel.g:108:10: 'hasBeenDisplayed'
+ {
+ match("hasBeenDisplayed");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__115"
+
+ // $ANTLR start "T__116"
+ public final void mT__116() throws RecognitionException {
+ try {
+ int _type = T__116;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:109:8: ( 'activeState' )
+ // InternalRBAModel.g:109:10: 'activeState'
+ {
+ match("activeState");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__116"
+
+ // $ANTLR start "T__117"
+ public final void mT__117() throws RecognitionException {
+ try {
+ int _type = T__117;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:110:8: ( 'max' )
+ // InternalRBAModel.g:110:10: 'max'
+ {
+ match("max");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__117"
+
+ // $ANTLR start "T__118"
+ public final void mT__118() throws RecognitionException {
+ try {
+ int _type = T__118;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:111:8: ( 'min' )
+ // InternalRBAModel.g:111:10: 'min'
+ {
+ match("min");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__118"
+
+ // $ANTLR start "T__119"
+ public final void mT__119() throws RecognitionException {
+ try {
+ int _type = T__119;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:112:8: ( 'select' )
+ // InternalRBAModel.g:112:10: 'select'
+ {
+ match("select");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__119"
+
+ // $ANTLR start "T__120"
+ public final void mT__120() throws RecognitionException {
+ try {
+ int _type = T__120;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:113:8: ( 'ALL_AREAS' )
+ // InternalRBAModel.g:113:10: 'ALL_AREAS'
+ {
+ match("ALL_AREAS");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__120"
+
+ // $ANTLR start "T__121"
+ public final void mT__121() throws RecognitionException {
+ try {
+ int _type = T__121;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:114:8: ( 'ALL_VIEWCONTENTS' )
+ // InternalRBAModel.g:114:10: 'ALL_VIEWCONTENTS'
+ {
+ match("ALL_VIEWCONTENTS");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__121"
+
+ // $ANTLR start "T__122"
+ public final void mT__122() throws RecognitionException {
+ try {
+ int _type = T__122;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:115:8: ( 'ALL_ZONES' )
+ // InternalRBAModel.g:115:10: 'ALL_ZONES'
+ {
+ match("ALL_ZONES");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__122"
+
+ // $ANTLR start "T__123"
+ public final void mT__123() throws RecognitionException {
+ try {
+ int _type = T__123;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:116:8: ( 'ALL_SOUNDCONTENTS' )
+ // InternalRBAModel.g:116:10: 'ALL_SOUNDCONTENTS'
+ {
+ match("ALL_SOUNDCONTENTS");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__123"
+
+ // $ANTLR start "T__124"
+ public final void mT__124() throws RecognitionException {
+ try {
+ int _type = T__124;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:117:8: ( 'NULL' )
+ // InternalRBAModel.g:117:10: 'NULL'
+ {
+ match("NULL");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__124"
+
+ // $ANTLR start "T__125"
+ public final void mT__125() throws RecognitionException {
+ try {
+ int _type = T__125;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:118:8: ( '(pre)' )
+ // InternalRBAModel.g:118:10: '(pre)'
+ {
+ match("(pre)");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__125"
+
+ // $ANTLR start "T__126"
+ public final void mT__126() throws RecognitionException {
+ try {
+ int _type = T__126;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:119:8: ( 'HideLowerPriority' )
+ // InternalRBAModel.g:119:10: 'HideLowerPriority'
+ {
+ match("HideLowerPriority");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__126"
+
+ // $ANTLR start "T__127"
+ public final void mT__127() throws RecognitionException {
+ try {
+ int _type = T__127;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:120:8: ( 'MuteLowerPriority' )
+ // InternalRBAModel.g:120:10: 'MuteLowerPriority'
+ {
+ match("MuteLowerPriority");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__127"
+
+ // $ANTLR start "T__128"
+ public final void mT__128() throws RecognitionException {
+ try {
+ int _type = T__128;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:121:8: ( 'IF' )
+ // InternalRBAModel.g:121:10: 'IF'
+ {
+ match("IF");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__128"
+
+ // $ANTLR start "T__129"
+ public final void mT__129() throws RecognitionException {
+ try {
+ int _type = T__129;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:122:8: ( 'THEN' )
+ // InternalRBAModel.g:122:10: 'THEN'
+ {
+ match("THEN");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__129"
+
+ // $ANTLR start "T__130"
+ public final void mT__130() throws RecognitionException {
+ try {
+ int _type = T__130;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:123:8: ( 'ELSE' )
+ // InternalRBAModel.g:123:10: 'ELSE'
+ {
+ match("ELSE");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__130"
+
+ // $ANTLR start "T__131"
+ public final void mT__131() throws RecognitionException {
+ try {
+ int _type = T__131;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:124:8: ( 'For-All' )
+ // InternalRBAModel.g:124:10: 'For-All'
+ {
+ match("For-All");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__131"
+
+ // $ANTLR start "T__132"
+ public final void mT__132() throws RecognitionException {
+ try {
+ int _type = T__132;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:125:8: ( 'Exists' )
+ // InternalRBAModel.g:125:10: 'Exists'
+ {
+ match("Exists");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__132"
+
+ // $ANTLR start "T__133"
+ public final void mT__133() throws RecognitionException {
+ try {
+ int _type = T__133;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:126:8: ( '|' )
+ // InternalRBAModel.g:126:10: '|'
+ {
+ match('|');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__133"
+
+ // $ANTLR start "T__134"
+ public final void mT__134() throws RecognitionException {
+ try {
+ int _type = T__134;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:127:8: ( 'let' )
+ // InternalRBAModel.g:127:10: 'let'
+ {
+ match("let");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__134"
+
+ // $ANTLR start "T__135"
+ public final void mT__135() throws RecognitionException {
+ try {
+ int _type = T__135;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:128:8: ( 'ViewContentSet' )
+ // InternalRBAModel.g:128:10: 'ViewContentSet'
+ {
+ match("ViewContentSet");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__135"
+
+ // $ANTLR start "T__136"
+ public final void mT__136() throws RecognitionException {
+ try {
+ int _type = T__136;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:129:8: ( 'SoundContentSet' )
+ // InternalRBAModel.g:129:10: 'SoundContentSet'
+ {
+ match("SoundContentSet");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__136"
+
+ // $ANTLR start "T__137"
+ public final void mT__137() throws RecognitionException {
+ try {
+ int _type = T__137;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:130:8: ( 'Scene' )
+ // InternalRBAModel.g:130:10: 'Scene'
+ {
+ match("Scene");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__137"
+
+ // $ANTLR start "T__138"
+ public final void mT__138() throws RecognitionException {
+ try {
+ int _type = T__138;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:131:8: ( 'global:' )
+ // InternalRBAModel.g:131:10: 'global:'
+ {
+ match("global:");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__138"
+
+ // $ANTLR start "T__139"
+ public final void mT__139() throws RecognitionException {
+ try {
+ int _type = T__139;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:132:8: ( 'VerticalLayout' )
+ // InternalRBAModel.g:132:10: 'VerticalLayout'
+ {
+ match("VerticalLayout");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__139"
+
+ // $ANTLR start "T__140"
+ public final void mT__140() throws RecognitionException {
+ try {
+ int _type = T__140;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:133:8: ( 'basePoint:' )
+ // InternalRBAModel.g:133:10: 'basePoint:'
+ {
+ match("basePoint:");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__140"
+
+ // $ANTLR start "T__141"
+ public final void mT__141() throws RecognitionException {
+ try {
+ int _type = T__141;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:134:8: ( 'subarea:' )
+ // InternalRBAModel.g:134:10: 'subarea:'
+ {
+ match("subarea:");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__141"
+
+ // $ANTLR start "T__142"
+ public final void mT__142() throws RecognitionException {
+ try {
+ int _type = T__142;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:135:8: ( 'HorizontalLayout' )
+ // InternalRBAModel.g:135:10: 'HorizontalLayout'
+ {
+ match("HorizontalLayout");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__142"
+
+ // $ANTLR start "T__143"
+ public final void mT__143() throws RecognitionException {
+ try {
+ int _type = T__143;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:136:8: ( 'FixedPositionLayout' )
+ // InternalRBAModel.g:136:10: 'FixedPositionLayout'
+ {
+ match("FixedPositionLayout");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__143"
+
+ // $ANTLR start "T__144"
+ public final void mT__144() throws RecognitionException {
+ try {
+ int _type = T__144;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:137:8: ( 'PositionContainer' )
+ // InternalRBAModel.g:137:10: 'PositionContainer'
+ {
+ match("PositionContainer");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__144"
+
+ // $ANTLR start "T__145"
+ public final void mT__145() throws RecognitionException {
+ try {
+ int _type = T__145;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:138:8: ( 'areaReference:' )
+ // InternalRBAModel.g:138:10: 'areaReference:'
+ {
+ match("areaReference:");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__145"
+
+ // $ANTLR start "T__146"
+ public final void mT__146() throws RecognitionException {
+ try {
+ int _type = T__146;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:139:8: ( 'true' )
+ // InternalRBAModel.g:139:10: 'true'
+ {
+ match("true");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__146"
+
+ // $ANTLR start "T__147"
+ public final void mT__147() throws RecognitionException {
+ try {
+ int _type = T__147;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:140:8: ( 'false' )
+ // InternalRBAModel.g:140:10: 'false'
+ {
+ match("false");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__147"
+
+ // $ANTLR start "T__148"
+ public final void mT__148() throws RecognitionException {
+ try {
+ int _type = T__148;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:141:8: ( '-' )
+ // InternalRBAModel.g:141:10: '-'
+ {
+ match('-');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__148"
+
+ // $ANTLR start "T__149"
+ public final void mT__149() throws RecognitionException {
+ try {
+ int _type = T__149;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:142:8: ( '.*' )
+ // InternalRBAModel.g:142:10: '.*'
+ {
+ match(".*");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__149"
+
+ // $ANTLR start "T__150"
+ public final void mT__150() throws RecognitionException {
+ try {
+ int _type = T__150;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:143:8: ( 'this' )
+ // InternalRBAModel.g:143:10: 'this'
+ {
+ match("this");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__150"
+
+ // $ANTLR start "T__151"
+ public final void mT__151() throws RecognitionException {
+ try {
+ int _type = T__151;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:144:8: ( 'DEFAULT' )
+ // InternalRBAModel.g:144:10: 'DEFAULT'
+ {
+ match("DEFAULT");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__151"
+
+ // $ANTLR start "T__152"
+ public final void mT__152() throws RecognitionException {
+ try {
+ int _type = T__152;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:145:8: ( 'FIRST_COME_FIRST' )
+ // InternalRBAModel.g:145:10: 'FIRST_COME_FIRST'
+ {
+ match("FIRST_COME_FIRST");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__152"
+
+ // $ANTLR start "T__153"
+ public final void mT__153() throws RecognitionException {
+ try {
+ int _type = T__153;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:146:8: ( 'LAST_COME_FIRST' )
+ // InternalRBAModel.g:146:10: 'LAST_COME_FIRST'
+ {
+ match("LAST_COME_FIRST");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__153"
+
+ // $ANTLR start "T__154"
+ public final void mT__154() throws RecognitionException {
+ try {
+ int _type = T__154;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:147:8: ( 'PRIORITY_FIRST_COME_FIRST' )
+ // InternalRBAModel.g:147:10: 'PRIORITY_FIRST_COME_FIRST'
+ {
+ match("PRIORITY_FIRST_COME_FIRST");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__154"
+
+ // $ANTLR start "T__155"
+ public final void mT__155() throws RecognitionException {
+ try {
+ int _type = T__155;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:148:8: ( 'PRIORITY_LAST_COME_FIRST' )
+ // InternalRBAModel.g:148:10: 'PRIORITY_LAST_COME_FIRST'
+ {
+ match("PRIORITY_LAST_COME_FIRST");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__155"
+
+ // $ANTLR start "T__156"
+ public final void mT__156() throws RecognitionException {
+ try {
+ int _type = T__156;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:149:8: ( 'LEFT_TOP' )
+ // InternalRBAModel.g:149:10: 'LEFT_TOP'
+ {
+ match("LEFT_TOP");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__156"
+
+ // $ANTLR start "T__157"
+ public final void mT__157() throws RecognitionException {
+ try {
+ int _type = T__157;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:150:8: ( 'LEFT_MIDDLE' )
+ // InternalRBAModel.g:150:10: 'LEFT_MIDDLE'
+ {
+ match("LEFT_MIDDLE");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__157"
+
+ // $ANTLR start "T__158"
+ public final void mT__158() throws RecognitionException {
+ try {
+ int _type = T__158;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:151:8: ( 'LEFT_BOTTOM' )
+ // InternalRBAModel.g:151:10: 'LEFT_BOTTOM'
+ {
+ match("LEFT_BOTTOM");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__158"
+
+ // $ANTLR start "T__159"
+ public final void mT__159() throws RecognitionException {
+ try {
+ int _type = T__159;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:152:8: ( 'RIGHT_TOP' )
+ // InternalRBAModel.g:152:10: 'RIGHT_TOP'
+ {
+ match("RIGHT_TOP");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__159"
+
+ // $ANTLR start "T__160"
+ public final void mT__160() throws RecognitionException {
+ try {
+ int _type = T__160;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:153:8: ( 'RIGHT_MIDDLE' )
+ // InternalRBAModel.g:153:10: 'RIGHT_MIDDLE'
+ {
+ match("RIGHT_MIDDLE");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__160"
+
+ // $ANTLR start "T__161"
+ public final void mT__161() throws RecognitionException {
+ try {
+ int _type = T__161;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:154:8: ( 'RIGHT_BOTTOM' )
+ // InternalRBAModel.g:154:10: 'RIGHT_BOTTOM'
+ {
+ match("RIGHT_BOTTOM");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__161"
+
+ // $ANTLR start "T__162"
+ public final void mT__162() throws RecognitionException {
+ try {
+ int _type = T__162;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:155:8: ( 'CENTER_TOP' )
+ // InternalRBAModel.g:155:10: 'CENTER_TOP'
+ {
+ match("CENTER_TOP");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__162"
+
+ // $ANTLR start "T__163"
+ public final void mT__163() throws RecognitionException {
+ try {
+ int _type = T__163;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:156:8: ( 'CENTER_MIDDLE' )
+ // InternalRBAModel.g:156:10: 'CENTER_MIDDLE'
+ {
+ match("CENTER_MIDDLE");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__163"
+
+ // $ANTLR start "T__164"
+ public final void mT__164() throws RecognitionException {
+ try {
+ int _type = T__164;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:157:8: ( 'CENTER_BOTTOM' )
+ // InternalRBAModel.g:157:10: 'CENTER_BOTTOM'
+ {
+ match("CENTER_BOTTOM");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__164"
+
+ // $ANTLR start "T__165"
+ public final void mT__165() throws RecognitionException {
+ try {
+ int _type = T__165;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:158:8: ( 'NEVER_GIVEUP' )
+ // InternalRBAModel.g:158:10: 'NEVER_GIVEUP'
+ {
+ match("NEVER_GIVEUP");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__165"
+
+ // $ANTLR start "T__166"
+ public final void mT__166() throws RecognitionException {
+ try {
+ int _type = T__166;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:159:8: ( 'GOOD_LOSER' )
+ // InternalRBAModel.g:159:10: 'GOOD_LOSER'
+ {
+ match("GOOD_LOSER");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__166"
+
+ // $ANTLR start "T__167"
+ public final void mT__167() throws RecognitionException {
+ try {
+ int _type = T__167;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:160:8: ( 'DO_NOT_GIVEUP_UNTIL_WIN' )
+ // InternalRBAModel.g:160:10: 'DO_NOT_GIVEUP_UNTIL_WIN'
+ {
+ match("DO_NOT_GIVEUP_UNTIL_WIN");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__167"
+
+ // $ANTLR start "RULE_ID"
+ public final void mRULE_ID() throws RecognitionException {
+ try {
+ int _type = RULE_ID;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:10281:9: ( ( RULE_IDENTIFIER_START | RULE_UNICODE_ESCAPE ) ( RULE_IDENTIFIER_PART | RULE_UNICODE_ESCAPE )* )
+ // InternalRBAModel.g:10281:11: ( RULE_IDENTIFIER_START | RULE_UNICODE_ESCAPE ) ( RULE_IDENTIFIER_PART | RULE_UNICODE_ESCAPE )*
+ {
+ // InternalRBAModel.g:10281:11: ( RULE_IDENTIFIER_START | RULE_UNICODE_ESCAPE )
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( ((LA1_0>='\u0000' && LA1_0<='\b')||(LA1_0>='\u000E' && LA1_0<='\u001B')||LA1_0=='$'||(LA1_0>='A' && LA1_0<='Z')||LA1_0=='_'||(LA1_0>='a' && LA1_0<='z')||(LA1_0>='\u007F' && LA1_0<='\u009F')||(LA1_0>='\u00A2' && LA1_0<='\u00A5')||LA1_0=='\u00AA'||LA1_0=='\u00AD'||LA1_0=='\u00B5'||LA1_0=='\u00BA'||(LA1_0>='\u00C0' && LA1_0<='\u00D6')||(LA1_0>='\u00D8' && LA1_0<='\u00F6')||(LA1_0>='\u00F8' && LA1_0<='\u0236')||(LA1_0>='\u0250' && LA1_0<='\u02C1')||(LA1_0>='\u02C6' && LA1_0<='\u02D1')||(LA1_0>='\u02E0' && LA1_0<='\u02E4')||LA1_0=='\u02EE'||(LA1_0>='\u0300' && LA1_0<='\u0357')||(LA1_0>='\u035D' && LA1_0<='\u036F')||LA1_0=='\u037A'||LA1_0=='\u0386'||(LA1_0>='\u0388' && LA1_0<='\u038A')||LA1_0=='\u038C'||(LA1_0>='\u038E' && LA1_0<='\u03A1')||(LA1_0>='\u03A3' && LA1_0<='\u03CE')||(LA1_0>='\u03D0' && LA1_0<='\u03F5')||(LA1_0>='\u03F7' && LA1_0<='\u03FB')||(LA1_0>='\u0400' && LA1_0<='\u0481')||(LA1_0>='\u0483' && LA1_0<='\u0486')||(LA1_0>='\u048A' && LA1_0<='\u04CE')||(LA1_0>='\u04D0' && LA1_0<='\u04F5')||(LA1_0>='\u04F8' && LA1_0<='\u04F9')||(LA1_0>='\u0500' && LA1_0<='\u050F')||(LA1_0>='\u0531' && LA1_0<='\u0556')||LA1_0=='\u0559'||(LA1_0>='\u0561' && LA1_0<='\u0587')||(LA1_0>='\u0591' && LA1_0<='\u05A1')||(LA1_0>='\u05A3' && LA1_0<='\u05B9')||(LA1_0>='\u05BB' && LA1_0<='\u05BD')||LA1_0=='\u05BF'||(LA1_0>='\u05C1' && LA1_0<='\u05C2')||LA1_0=='\u05C4'||(LA1_0>='\u05D0' && LA1_0<='\u05EA')||(LA1_0>='\u05F0' && LA1_0<='\u05F2')||(LA1_0>='\u0600' && LA1_0<='\u0603')||(LA1_0>='\u0610' && LA1_0<='\u0615')||(LA1_0>='\u0621' && LA1_0<='\u063A')||(LA1_0>='\u0640' && LA1_0<='\u0658')||(LA1_0>='\u0660' && LA1_0<='\u0669')||(LA1_0>='\u066E' && LA1_0<='\u06D3')||(LA1_0>='\u06D5' && LA1_0<='\u06DD')||(LA1_0>='\u06DF' && LA1_0<='\u06E8')||(LA1_0>='\u06EA' && LA1_0<='\u06FC')||LA1_0=='\u06FF'||(LA1_0>='\u070F' && LA1_0<='\u074A')||(LA1_0>='\u074D' && LA1_0<='\u074F')||(LA1_0>='\u0780' && LA1_0<='\u07B1')||(LA1_0>='\u0901' && LA1_0<='\u0939')||(LA1_0>='\u093C' && LA1_0<='\u094D')||(LA1_0>='\u0950' && LA1_0<='\u0954')||(LA1_0>='\u0958' && LA1_0<='\u0963')||(LA1_0>='\u0966' && LA1_0<='\u096F')||(LA1_0>='\u0981' && LA1_0<='\u0983')||(LA1_0>='\u0985' && LA1_0<='\u098C')||(LA1_0>='\u098F' && LA1_0<='\u0990')||(LA1_0>='\u0993' && LA1_0<='\u09A8')||(LA1_0>='\u09AA' && LA1_0<='\u09B0')||LA1_0=='\u09B2'||(LA1_0>='\u09B6' && LA1_0<='\u09B9')||(LA1_0>='\u09BC' && LA1_0<='\u09C4')||(LA1_0>='\u09C7' && LA1_0<='\u09C8')||(LA1_0>='\u09CB' && LA1_0<='\u09CD')||LA1_0=='\u09D7'||(LA1_0>='\u09DC' && LA1_0<='\u09DD')||(LA1_0>='\u09DF' && LA1_0<='\u09E3')||(LA1_0>='\u09E6' && LA1_0<='\u09F3')||(LA1_0>='\u0A01' && LA1_0<='\u0A03')||(LA1_0>='\u0A05' && LA1_0<='\u0A0A')||(LA1_0>='\u0A0F' && LA1_0<='\u0A10')||(LA1_0>='\u0A13' && LA1_0<='\u0A28')||(LA1_0>='\u0A2A' && LA1_0<='\u0A30')||(LA1_0>='\u0A32' && LA1_0<='\u0A33')||(LA1_0>='\u0A35' && LA1_0<='\u0A36')||(LA1_0>='\u0A38' && LA1_0<='\u0A39')||LA1_0=='\u0A3C'||(LA1_0>='\u0A3E' && LA1_0<='\u0A42')||(LA1_0>='\u0A47' && LA1_0<='\u0A48')||(LA1_0>='\u0A4B' && LA1_0<='\u0A4D')||(LA1_0>='\u0A59' && LA1_0<='\u0A5C')||LA1_0=='\u0A5E'||(LA1_0>='\u0A66' && LA1_0<='\u0A74')||(LA1_0>='\u0A81' && LA1_0<='\u0A83')||(LA1_0>='\u0A85' && LA1_0<='\u0A8D')||(LA1_0>='\u0A8F' && LA1_0<='\u0A91')||(LA1_0>='\u0A93' && LA1_0<='\u0AA8')||(LA1_0>='\u0AAA' && LA1_0<='\u0AB0')||(LA1_0>='\u0AB2' && LA1_0<='\u0AB3')||(LA1_0>='\u0AB5' && LA1_0<='\u0AB9')||(LA1_0>='\u0ABC' && LA1_0<='\u0AC5')||(LA1_0>='\u0AC7' && LA1_0<='\u0AC9')||(LA1_0>='\u0ACB' && LA1_0<='\u0ACD')||LA1_0=='\u0AD0'||(LA1_0>='\u0AE0' && LA1_0<='\u0AE3')||(LA1_0>='\u0AE6' && LA1_0<='\u0AEF')||LA1_0=='\u0AF1'||(LA1_0>='\u0B01' && LA1_0<='\u0B03')||(LA1_0>='\u0B05' && LA1_0<='\u0B0C')||(LA1_0>='\u0B0F' && LA1_0<='\u0B10')||(LA1_0>='\u0B13' && LA1_0<='\u0B28')||(LA1_0>='\u0B2A' && LA1_0<='\u0B30')||(LA1_0>='\u0B32' && LA1_0<='\u0B33')||(LA1_0>='\u0B35' && LA1_0<='\u0B39')||(LA1_0>='\u0B3C' && LA1_0<='\u0B43')||(LA1_0>='\u0B47' && LA1_0<='\u0B48')||(LA1_0>='\u0B4B' && LA1_0<='\u0B4D')||(LA1_0>='\u0B56' && LA1_0<='\u0B57')||(LA1_0>='\u0B5C' && LA1_0<='\u0B5D')||(LA1_0>='\u0B5F' && LA1_0<='\u0B61')||(LA1_0>='\u0B66' && LA1_0<='\u0B6F')||LA1_0=='\u0B71'||(LA1_0>='\u0B82' && LA1_0<='\u0B83')||(LA1_0>='\u0B85' && LA1_0<='\u0B8A')||(LA1_0>='\u0B8E' && LA1_0<='\u0B90')||(LA1_0>='\u0B92' && LA1_0<='\u0B95')||(LA1_0>='\u0B99' && LA1_0<='\u0B9A')||LA1_0=='\u0B9C'||(LA1_0>='\u0B9E' && LA1_0<='\u0B9F')||(LA1_0>='\u0BA3' && LA1_0<='\u0BA4')||(LA1_0>='\u0BA8' && LA1_0<='\u0BAA')||(LA1_0>='\u0BAE' && LA1_0<='\u0BB5')||(LA1_0>='\u0BB7' && LA1_0<='\u0BB9')||(LA1_0>='\u0BBE' && LA1_0<='\u0BC2')||(LA1_0>='\u0BC6' && LA1_0<='\u0BC8')||(LA1_0>='\u0BCA' && LA1_0<='\u0BCD')||LA1_0=='\u0BD7'||(LA1_0>='\u0BE7' && LA1_0<='\u0BEF')||LA1_0=='\u0BF9'||(LA1_0>='\u0C01' && LA1_0<='\u0C03')||(LA1_0>='\u0C05' && LA1_0<='\u0C0C')||(LA1_0>='\u0C0E' && LA1_0<='\u0C10')||(LA1_0>='\u0C12' && LA1_0<='\u0C28')||(LA1_0>='\u0C2A' && LA1_0<='\u0C33')||(LA1_0>='\u0C35' && LA1_0<='\u0C39')||(LA1_0>='\u0C3E' && LA1_0<='\u0C44')||(LA1_0>='\u0C46' && LA1_0<='\u0C48')||(LA1_0>='\u0C4A' && LA1_0<='\u0C4D')||(LA1_0>='\u0C55' && LA1_0<='\u0C56')||(LA1_0>='\u0C60' && LA1_0<='\u0C61')||(LA1_0>='\u0C66' && LA1_0<='\u0C6F')||(LA1_0>='\u0C82' && LA1_0<='\u0C83')||(LA1_0>='\u0C85' && LA1_0<='\u0C8C')||(LA1_0>='\u0C8E' && LA1_0<='\u0C90')||(LA1_0>='\u0C92' && LA1_0<='\u0CA8')||(LA1_0>='\u0CAA' && LA1_0<='\u0CB3')||(LA1_0>='\u0CB5' && LA1_0<='\u0CB9')||(LA1_0>='\u0CBC' && LA1_0<='\u0CC4')||(LA1_0>='\u0CC6' && LA1_0<='\u0CC8')||(LA1_0>='\u0CCA' && LA1_0<='\u0CCD')||(LA1_0>='\u0CD5' && LA1_0<='\u0CD6')||LA1_0=='\u0CDE'||(LA1_0>='\u0CE0' && LA1_0<='\u0CE1')||(LA1_0>='\u0CE6' && LA1_0<='\u0CEF')||(LA1_0>='\u0D02' && LA1_0<='\u0D03')||(LA1_0>='\u0D05' && LA1_0<='\u0D0C')||(LA1_0>='\u0D0E' && LA1_0<='\u0D10')||(LA1_0>='\u0D12' && LA1_0<='\u0D28')||(LA1_0>='\u0D2A' && LA1_0<='\u0D39')||(LA1_0>='\u0D3E' && LA1_0<='\u0D43')||(LA1_0>='\u0D46' && LA1_0<='\u0D48')||(LA1_0>='\u0D4A' && LA1_0<='\u0D4D')||LA1_0=='\u0D57'||(LA1_0>='\u0D60' && LA1_0<='\u0D61')||(LA1_0>='\u0D66' && LA1_0<='\u0D6F')||(LA1_0>='\u0D82' && LA1_0<='\u0D83')||(LA1_0>='\u0D85' && LA1_0<='\u0D96')||(LA1_0>='\u0D9A' && LA1_0<='\u0DB1')||(LA1_0>='\u0DB3' && LA1_0<='\u0DBB')||LA1_0=='\u0DBD'||(LA1_0>='\u0DC0' && LA1_0<='\u0DC6')||LA1_0=='\u0DCA'||(LA1_0>='\u0DCF' && LA1_0<='\u0DD4')||LA1_0=='\u0DD6'||(LA1_0>='\u0DD8' && LA1_0<='\u0DDF')||(LA1_0>='\u0DF2' && LA1_0<='\u0DF3')||(LA1_0>='\u0E01' && LA1_0<='\u0E3A')||(LA1_0>='\u0E3F' && LA1_0<='\u0E4E')||(LA1_0>='\u0E50' && LA1_0<='\u0E59')||(LA1_0>='\u0E81' && LA1_0<='\u0E82')||LA1_0=='\u0E84'||(LA1_0>='\u0E87' && LA1_0<='\u0E88')||LA1_0=='\u0E8A'||LA1_0=='\u0E8D'||(LA1_0>='\u0E94' && LA1_0<='\u0E97')||(LA1_0>='\u0E99' && LA1_0<='\u0E9F')||(LA1_0>='\u0EA1' && LA1_0<='\u0EA3')||LA1_0=='\u0EA5'||LA1_0=='\u0EA7'||(LA1_0>='\u0EAA' && LA1_0<='\u0EAB')||(LA1_0>='\u0EAD' && LA1_0<='\u0EB9')||(LA1_0>='\u0EBB' && LA1_0<='\u0EBD')||(LA1_0>='\u0EC0' && LA1_0<='\u0EC4')||LA1_0=='\u0EC6'||(LA1_0>='\u0EC8' && LA1_0<='\u0ECD')||(LA1_0>='\u0ED0' && LA1_0<='\u0ED9')||(LA1_0>='\u0EDC' && LA1_0<='\u0EDD')||LA1_0=='\u0F00'||(LA1_0>='\u0F18' && LA1_0<='\u0F19')||(LA1_0>='\u0F20' && LA1_0<='\u0F29')||LA1_0=='\u0F35'||LA1_0=='\u0F37'||LA1_0=='\u0F39'||(LA1_0>='\u0F3E' && LA1_0<='\u0F47')||(LA1_0>='\u0F49' && LA1_0<='\u0F6A')||(LA1_0>='\u0F71' && LA1_0<='\u0F84')||(LA1_0>='\u0F86' && LA1_0<='\u0F8B')||(LA1_0>='\u0F90' && LA1_0<='\u0F97')||(LA1_0>='\u0F99' && LA1_0<='\u0FBC')||LA1_0=='\u0FC6'||(LA1_0>='\u1000' && LA1_0<='\u1021')||(LA1_0>='\u1023' && LA1_0<='\u1027')||(LA1_0>='\u1029' && LA1_0<='\u102A')||(LA1_0>='\u102C' && LA1_0<='\u1032')||(LA1_0>='\u1036' && LA1_0<='\u1039')||(LA1_0>='\u1040' && LA1_0<='\u1049')||(LA1_0>='\u1050' && LA1_0<='\u1059')||(LA1_0>='\u10A0' && LA1_0<='\u10C5')||(LA1_0>='\u10D0' && LA1_0<='\u10F8')||(LA1_0>='\u1100' && LA1_0<='\u1159')||(LA1_0>='\u115F' && LA1_0<='\u11A2')||(LA1_0>='\u11A8' && LA1_0<='\u11F9')||(LA1_0>='\u1200' && LA1_0<='\u1206')||(LA1_0>='\u1208' && LA1_0<='\u1246')||LA1_0=='\u1248'||(LA1_0>='\u124A' && LA1_0<='\u124D')||(LA1_0>='\u1250' && LA1_0<='\u1256')||LA1_0=='\u1258'||(LA1_0>='\u125A' && LA1_0<='\u125D')||(LA1_0>='\u1260' && LA1_0<='\u1286')||LA1_0=='\u1288'||(LA1_0>='\u128A' && LA1_0<='\u128D')||(LA1_0>='\u1290' && LA1_0<='\u12AE')||LA1_0=='\u12B0'||(LA1_0>='\u12B2' && LA1_0<='\u12B5')||(LA1_0>='\u12B8' && LA1_0<='\u12BE')||LA1_0=='\u12C0'||(LA1_0>='\u12C2' && LA1_0<='\u12C5')||(LA1_0>='\u12C8' && LA1_0<='\u12CE')||(LA1_0>='\u12D0' && LA1_0<='\u12D6')||(LA1_0>='\u12D8' && LA1_0<='\u12EE')||(LA1_0>='\u12F0' && LA1_0<='\u130E')||LA1_0=='\u1310'||(LA1_0>='\u1312' && LA1_0<='\u1315')||(LA1_0>='\u1318' && LA1_0<='\u131E')||(LA1_0>='\u1320' && LA1_0<='\u1346')||(LA1_0>='\u1348' && LA1_0<='\u135A')||(LA1_0>='\u1369' && LA1_0<='\u1371')||(LA1_0>='\u13A0' && LA1_0<='\u13F4')||(LA1_0>='\u1401' && LA1_0<='\u166C')||(LA1_0>='\u166F' && LA1_0<='\u1676')||(LA1_0>='\u1681' && LA1_0<='\u169A')||(LA1_0>='\u16A0' && LA1_0<='\u16EA')||(LA1_0>='\u16EE' && LA1_0<='\u16F0')||(LA1_0>='\u1700' && LA1_0<='\u170C')||(LA1_0>='\u170E' && LA1_0<='\u1714')||(LA1_0>='\u1720' && LA1_0<='\u1734')||(LA1_0>='\u1740' && LA1_0<='\u1753')||(LA1_0>='\u1760' && LA1_0<='\u176C')||(LA1_0>='\u176E' && LA1_0<='\u1770')||(LA1_0>='\u1772' && LA1_0<='\u1773')||(LA1_0>='\u1780' && LA1_0<='\u17D3')||LA1_0=='\u17D7'||(LA1_0>='\u17DB' && LA1_0<='\u17DD')||(LA1_0>='\u17E0' && LA1_0<='\u17E9')||(LA1_0>='\u180B' && LA1_0<='\u180D')||(LA1_0>='\u1810' && LA1_0<='\u1819')||(LA1_0>='\u1820' && LA1_0<='\u1877')||(LA1_0>='\u1880' && LA1_0<='\u18A9')||(LA1_0>='\u1900' && LA1_0<='\u191C')||(LA1_0>='\u1920' && LA1_0<='\u192B')||(LA1_0>='\u1930' && LA1_0<='\u193B')||(LA1_0>='\u1946' && LA1_0<='\u196D')||(LA1_0>='\u1970' && LA1_0<='\u1974')||(LA1_0>='\u1D00' && LA1_0<='\u1D6B')||(LA1_0>='\u1E00' && LA1_0<='\u1E9B')||(LA1_0>='\u1EA0' && LA1_0<='\u1EF9')||(LA1_0>='\u1F00' && LA1_0<='\u1F15')||(LA1_0>='\u1F18' && LA1_0<='\u1F1D')||(LA1_0>='\u1F20' && LA1_0<='\u1F45')||(LA1_0>='\u1F48' && LA1_0<='\u1F4D')||(LA1_0>='\u1F50' && LA1_0<='\u1F57')||LA1_0=='\u1F59'||LA1_0=='\u1F5B'||LA1_0=='\u1F5D'||(LA1_0>='\u1F5F' && LA1_0<='\u1F7D')||(LA1_0>='\u1F80' && LA1_0<='\u1FB4')||(LA1_0>='\u1FB6' && LA1_0<='\u1FBC')||LA1_0=='\u1FBE'||(LA1_0>='\u1FC2' && LA1_0<='\u1FC4')||(LA1_0>='\u1FC6' && LA1_0<='\u1FCC')||(LA1_0>='\u1FD0' && LA1_0<='\u1FD3')||(LA1_0>='\u1FD6' && LA1_0<='\u1FDB')||(LA1_0>='\u1FE0' && LA1_0<='\u1FEC')||(LA1_0>='\u1FF2' && LA1_0<='\u1FF4')||(LA1_0>='\u1FF6' && LA1_0<='\u1FFC')||(LA1_0>='\u200C' && LA1_0<='\u200F')||(LA1_0>='\u202A' && LA1_0<='\u202E')||(LA1_0>='\u203F' && LA1_0<='\u2040')||LA1_0=='\u2054'||(LA1_0>='\u2060' && LA1_0<='\u2063')||(LA1_0>='\u206A' && LA1_0<='\u206F')||LA1_0=='\u2071'||LA1_0=='\u207F'||(LA1_0>='\u20A0' && LA1_0<='\u20B1')||(LA1_0>='\u20D0' && LA1_0<='\u20DC')||LA1_0=='\u20E1'||(LA1_0>='\u20E5' && LA1_0<='\u20EA')||LA1_0=='\u2102'||LA1_0=='\u2107'||(LA1_0>='\u210A' && LA1_0<='\u2113')||LA1_0=='\u2115'||(LA1_0>='\u2119' && LA1_0<='\u211D')||LA1_0=='\u2124'||LA1_0=='\u2126'||LA1_0=='\u2128'||(LA1_0>='\u212A' && LA1_0<='\u212D')||(LA1_0>='\u212F' && LA1_0<='\u2131')||(LA1_0>='\u2133' && LA1_0<='\u2139')||(LA1_0>='\u213D' && LA1_0<='\u213F')||(LA1_0>='\u2145' && LA1_0<='\u2149')||(LA1_0>='\u2160' && LA1_0<='\u2183')||(LA1_0>='\u3001' && LA1_0<='\u3002')||(LA1_0>='\u3005' && LA1_0<='\u3007')||(LA1_0>='\u3021' && LA1_0<='\u302F')||(LA1_0>='\u3031' && LA1_0<='\u3035')||(LA1_0>='\u3038' && LA1_0<='\u303C')||(LA1_0>='\u3041' && LA1_0<='\u3096')||(LA1_0>='\u3099' && LA1_0<='\u309A')||(LA1_0>='\u309D' && LA1_0<='\u309F')||(LA1_0>='\u30A1' && LA1_0<='\u30FF')||(LA1_0>='\u3105' && LA1_0<='\u312C')||(LA1_0>='\u3131' && LA1_0<='\u318E')||(LA1_0>='\u31A0' && LA1_0<='\u31B7')||(LA1_0>='\u31F0' && LA1_0<='\u31FF')||(LA1_0>='\u3400' && LA1_0<='\u4DB5')||(LA1_0>='\u4E00' && LA1_0<='\u9FA5')||(LA1_0>='\uA000' && LA1_0<='\uA48C')||(LA1_0>='\uAC00' && LA1_0<='\uD7A3')||(LA1_0>='\uF900' && LA1_0<='\uFA2D')||(LA1_0>='\uFA30' && LA1_0<='\uFA6A')||(LA1_0>='\uFB00' && LA1_0<='\uFB06')||(LA1_0>='\uFB13' && LA1_0<='\uFB17')||(LA1_0>='\uFB1D' && LA1_0<='\uFB28')||(LA1_0>='\uFB2A' && LA1_0<='\uFB36')||(LA1_0>='\uFB38' && LA1_0<='\uFB3C')||LA1_0=='\uFB3E'||(LA1_0>='\uFB40' && LA1_0<='\uFB41')||(LA1_0>='\uFB43' && LA1_0<='\uFB44')||(LA1_0>='\uFB46' && LA1_0<='\uFBB1')||(LA1_0>='\uFBD3' && LA1_0<='\uFD3D')||(LA1_0>='\uFD50' && LA1_0<='\uFD8F')||(LA1_0>='\uFD92' && LA1_0<='\uFDC7')||(LA1_0>='\uFDF0' && LA1_0<='\uFDFC')||(LA1_0>='\uFE00' && LA1_0<='\uFE0F')||(LA1_0>='\uFE20' && LA1_0<='\uFE23')||(LA1_0>='\uFE33' && LA1_0<='\uFE34')||(LA1_0>='\uFE4D' && LA1_0<='\uFE4F')||LA1_0=='\uFE69'||(LA1_0>='\uFE70' && LA1_0<='\uFE74')||(LA1_0>='\uFE76' && LA1_0<='\uFEFC')||LA1_0=='\uFEFF'||LA1_0=='\uFF04'||(LA1_0>='\uFF08' && LA1_0<='\uFF09')||(LA1_0>='\uFF10' && LA1_0<='\uFF1A')||(LA1_0>='\uFF21' && LA1_0<='\uFF3A')||LA1_0=='\uFF3F'||(LA1_0>='\uFF41' && LA1_0<='\uFF5A')||(LA1_0>='\uFF65' && LA1_0<='\uFFBE')||(LA1_0>='\uFFC2' && LA1_0<='\uFFC7')||(LA1_0>='\uFFCA' && LA1_0<='\uFFCF')||(LA1_0>='\uFFD2' && LA1_0<='\uFFD7')||(LA1_0>='\uFFDA' && LA1_0<='\uFFDC')||(LA1_0>='\uFFE0' && LA1_0<='\uFFE1')||(LA1_0>='\uFFE5' && LA1_0<='\uFFE6')||(LA1_0>='\uFFF9' && LA1_0<='\uFFFB')) ) {
+ alt1=1;
+ }
+ else if ( (LA1_0=='\\') ) {
+ alt1=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 1, 0, input);
+
+ throw nvae;
+ }
+ switch (alt1) {
+ case 1 :
+ // InternalRBAModel.g:10281:12: RULE_IDENTIFIER_START
+ {
+ mRULE_IDENTIFIER_START();
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:10281:34: RULE_UNICODE_ESCAPE
+ {
+ mRULE_UNICODE_ESCAPE();
+
+ }
+ break;
+
+ }
+
+ // InternalRBAModel.g:10281:55: ( RULE_IDENTIFIER_PART | RULE_UNICODE_ESCAPE )*
+ loop2:
+ do {
+ int alt2=3;
+ int LA2_0 = input.LA(1);
+
+ if ( ((LA2_0>='\u0000' && LA2_0<='\b')||(LA2_0>='\u000E' && LA2_0<='\u001B')||LA2_0=='$'||(LA2_0>='0' && LA2_0<='9')||(LA2_0>='A' && LA2_0<='Z')||LA2_0=='_'||(LA2_0>='a' && LA2_0<='z')||(LA2_0>='\u007F' && LA2_0<='\u009F')||(LA2_0>='\u00A2' && LA2_0<='\u00A5')||LA2_0=='\u00AA'||LA2_0=='\u00AD'||LA2_0=='\u00B5'||LA2_0=='\u00BA'||(LA2_0>='\u00C0' && LA2_0<='\u00D6')||(LA2_0>='\u00D8' && LA2_0<='\u00F6')||(LA2_0>='\u00F8' && LA2_0<='\u0236')||(LA2_0>='\u0250' && LA2_0<='\u02C1')||(LA2_0>='\u02C6' && LA2_0<='\u02D1')||(LA2_0>='\u02E0' && LA2_0<='\u02E4')||LA2_0=='\u02EE'||(LA2_0>='\u0300' && LA2_0<='\u0357')||(LA2_0>='\u035D' && LA2_0<='\u036F')||LA2_0=='\u037A'||LA2_0=='\u0386'||(LA2_0>='\u0388' && LA2_0<='\u038A')||LA2_0=='\u038C'||(LA2_0>='\u038E' && LA2_0<='\u03A1')||(LA2_0>='\u03A3' && LA2_0<='\u03CE')||(LA2_0>='\u03D0' && LA2_0<='\u03F5')||(LA2_0>='\u03F7' && LA2_0<='\u03FB')||(LA2_0>='\u0400' && LA2_0<='\u0481')||(LA2_0>='\u0483' && LA2_0<='\u0486')||(LA2_0>='\u048A' && LA2_0<='\u04CE')||(LA2_0>='\u04D0' && LA2_0<='\u04F5')||(LA2_0>='\u04F8' && LA2_0<='\u04F9')||(LA2_0>='\u0500' && LA2_0<='\u050F')||(LA2_0>='\u0531' && LA2_0<='\u0556')||LA2_0=='\u0559'||(LA2_0>='\u0561' && LA2_0<='\u0587')||(LA2_0>='\u0591' && LA2_0<='\u05A1')||(LA2_0>='\u05A3' && LA2_0<='\u05B9')||(LA2_0>='\u05BB' && LA2_0<='\u05BD')||LA2_0=='\u05BF'||(LA2_0>='\u05C1' && LA2_0<='\u05C2')||LA2_0=='\u05C4'||(LA2_0>='\u05D0' && LA2_0<='\u05EA')||(LA2_0>='\u05F0' && LA2_0<='\u05F2')||(LA2_0>='\u0600' && LA2_0<='\u0603')||(LA2_0>='\u0610' && LA2_0<='\u0615')||(LA2_0>='\u0621' && LA2_0<='\u063A')||(LA2_0>='\u0640' && LA2_0<='\u0658')||(LA2_0>='\u0660' && LA2_0<='\u0669')||(LA2_0>='\u066E' && LA2_0<='\u06D3')||(LA2_0>='\u06D5' && LA2_0<='\u06DD')||(LA2_0>='\u06DF' && LA2_0<='\u06E8')||(LA2_0>='\u06EA' && LA2_0<='\u06FC')||LA2_0=='\u06FF'||(LA2_0>='\u070F' && LA2_0<='\u074A')||(LA2_0>='\u074D' && LA2_0<='\u074F')||(LA2_0>='\u0780' && LA2_0<='\u07B1')||(LA2_0>='\u0901' && LA2_0<='\u0939')||(LA2_0>='\u093C' && LA2_0<='\u094D')||(LA2_0>='\u0950' && LA2_0<='\u0954')||(LA2_0>='\u0958' && LA2_0<='\u0963')||(LA2_0>='\u0966' && LA2_0<='\u096F')||(LA2_0>='\u0981' && LA2_0<='\u0983')||(LA2_0>='\u0985' && LA2_0<='\u098C')||(LA2_0>='\u098F' && LA2_0<='\u0990')||(LA2_0>='\u0993' && LA2_0<='\u09A8')||(LA2_0>='\u09AA' && LA2_0<='\u09B0')||LA2_0=='\u09B2'||(LA2_0>='\u09B6' && LA2_0<='\u09B9')||(LA2_0>='\u09BC' && LA2_0<='\u09C4')||(LA2_0>='\u09C7' && LA2_0<='\u09C8')||(LA2_0>='\u09CB' && LA2_0<='\u09CD')||LA2_0=='\u09D7'||(LA2_0>='\u09DC' && LA2_0<='\u09DD')||(LA2_0>='\u09DF' && LA2_0<='\u09E3')||(LA2_0>='\u09E6' && LA2_0<='\u09F3')||(LA2_0>='\u0A01' && LA2_0<='\u0A03')||(LA2_0>='\u0A05' && LA2_0<='\u0A0A')||(LA2_0>='\u0A0F' && LA2_0<='\u0A10')||(LA2_0>='\u0A13' && LA2_0<='\u0A28')||(LA2_0>='\u0A2A' && LA2_0<='\u0A30')||(LA2_0>='\u0A32' && LA2_0<='\u0A33')||(LA2_0>='\u0A35' && LA2_0<='\u0A36')||(LA2_0>='\u0A38' && LA2_0<='\u0A39')||LA2_0=='\u0A3C'||(LA2_0>='\u0A3E' && LA2_0<='\u0A42')||(LA2_0>='\u0A47' && LA2_0<='\u0A48')||(LA2_0>='\u0A4B' && LA2_0<='\u0A4D')||(LA2_0>='\u0A59' && LA2_0<='\u0A5C')||LA2_0=='\u0A5E'||(LA2_0>='\u0A66' && LA2_0<='\u0A74')||(LA2_0>='\u0A81' && LA2_0<='\u0A83')||(LA2_0>='\u0A85' && LA2_0<='\u0A8D')||(LA2_0>='\u0A8F' && LA2_0<='\u0A91')||(LA2_0>='\u0A93' && LA2_0<='\u0AA8')||(LA2_0>='\u0AAA' && LA2_0<='\u0AB0')||(LA2_0>='\u0AB2' && LA2_0<='\u0AB3')||(LA2_0>='\u0AB5' && LA2_0<='\u0AB9')||(LA2_0>='\u0ABC' && LA2_0<='\u0AC5')||(LA2_0>='\u0AC7' && LA2_0<='\u0AC9')||(LA2_0>='\u0ACB' && LA2_0<='\u0ACD')||LA2_0=='\u0AD0'||(LA2_0>='\u0AE0' && LA2_0<='\u0AE3')||(LA2_0>='\u0AE6' && LA2_0<='\u0AEF')||LA2_0=='\u0AF1'||(LA2_0>='\u0B01' && LA2_0<='\u0B03')||(LA2_0>='\u0B05' && LA2_0<='\u0B0C')||(LA2_0>='\u0B0F' && LA2_0<='\u0B10')||(LA2_0>='\u0B13' && LA2_0<='\u0B28')||(LA2_0>='\u0B2A' && LA2_0<='\u0B30')||(LA2_0>='\u0B32' && LA2_0<='\u0B33')||(LA2_0>='\u0B35' && LA2_0<='\u0B39')||(LA2_0>='\u0B3C' && LA2_0<='\u0B43')||(LA2_0>='\u0B47' && LA2_0<='\u0B48')||(LA2_0>='\u0B4B' && LA2_0<='\u0B4D')||(LA2_0>='\u0B56' && LA2_0<='\u0B57')||(LA2_0>='\u0B5C' && LA2_0<='\u0B5D')||(LA2_0>='\u0B5F' && LA2_0<='\u0B61')||(LA2_0>='\u0B66' && LA2_0<='\u0B6F')||LA2_0=='\u0B71'||(LA2_0>='\u0B82' && LA2_0<='\u0B83')||(LA2_0>='\u0B85' && LA2_0<='\u0B8A')||(LA2_0>='\u0B8E' && LA2_0<='\u0B90')||(LA2_0>='\u0B92' && LA2_0<='\u0B95')||(LA2_0>='\u0B99' && LA2_0<='\u0B9A')||LA2_0=='\u0B9C'||(LA2_0>='\u0B9E' && LA2_0<='\u0B9F')||(LA2_0>='\u0BA3' && LA2_0<='\u0BA4')||(LA2_0>='\u0BA8' && LA2_0<='\u0BAA')||(LA2_0>='\u0BAE' && LA2_0<='\u0BB5')||(LA2_0>='\u0BB7' && LA2_0<='\u0BB9')||(LA2_0>='\u0BBE' && LA2_0<='\u0BC2')||(LA2_0>='\u0BC6' && LA2_0<='\u0BC8')||(LA2_0>='\u0BCA' && LA2_0<='\u0BCD')||LA2_0=='\u0BD7'||(LA2_0>='\u0BE7' && LA2_0<='\u0BEF')||LA2_0=='\u0BF9'||(LA2_0>='\u0C01' && LA2_0<='\u0C03')||(LA2_0>='\u0C05' && LA2_0<='\u0C0C')||(LA2_0>='\u0C0E' && LA2_0<='\u0C10')||(LA2_0>='\u0C12' && LA2_0<='\u0C28')||(LA2_0>='\u0C2A' && LA2_0<='\u0C33')||(LA2_0>='\u0C35' && LA2_0<='\u0C39')||(LA2_0>='\u0C3E' && LA2_0<='\u0C44')||(LA2_0>='\u0C46' && LA2_0<='\u0C48')||(LA2_0>='\u0C4A' && LA2_0<='\u0C4D')||(LA2_0>='\u0C55' && LA2_0<='\u0C56')||(LA2_0>='\u0C60' && LA2_0<='\u0C61')||(LA2_0>='\u0C66' && LA2_0<='\u0C6F')||(LA2_0>='\u0C82' && LA2_0<='\u0C83')||(LA2_0>='\u0C85' && LA2_0<='\u0C8C')||(LA2_0>='\u0C8E' && LA2_0<='\u0C90')||(LA2_0>='\u0C92' && LA2_0<='\u0CA8')||(LA2_0>='\u0CAA' && LA2_0<='\u0CB3')||(LA2_0>='\u0CB5' && LA2_0<='\u0CB9')||(LA2_0>='\u0CBC' && LA2_0<='\u0CC4')||(LA2_0>='\u0CC6' && LA2_0<='\u0CC8')||(LA2_0>='\u0CCA' && LA2_0<='\u0CCD')||(LA2_0>='\u0CD5' && LA2_0<='\u0CD6')||LA2_0=='\u0CDE'||(LA2_0>='\u0CE0' && LA2_0<='\u0CE1')||(LA2_0>='\u0CE6' && LA2_0<='\u0CEF')||(LA2_0>='\u0D02' && LA2_0<='\u0D03')||(LA2_0>='\u0D05' && LA2_0<='\u0D0C')||(LA2_0>='\u0D0E' && LA2_0<='\u0D10')||(LA2_0>='\u0D12' && LA2_0<='\u0D28')||(LA2_0>='\u0D2A' && LA2_0<='\u0D39')||(LA2_0>='\u0D3E' && LA2_0<='\u0D43')||(LA2_0>='\u0D46' && LA2_0<='\u0D48')||(LA2_0>='\u0D4A' && LA2_0<='\u0D4D')||LA2_0=='\u0D57'||(LA2_0>='\u0D60' && LA2_0<='\u0D61')||(LA2_0>='\u0D66' && LA2_0<='\u0D6F')||(LA2_0>='\u0D82' && LA2_0<='\u0D83')||(LA2_0>='\u0D85' && LA2_0<='\u0D96')||(LA2_0>='\u0D9A' && LA2_0<='\u0DB1')||(LA2_0>='\u0DB3' && LA2_0<='\u0DBB')||LA2_0=='\u0DBD'||(LA2_0>='\u0DC0' && LA2_0<='\u0DC6')||LA2_0=='\u0DCA'||(LA2_0>='\u0DCF' && LA2_0<='\u0DD4')||LA2_0=='\u0DD6'||(LA2_0>='\u0DD8' && LA2_0<='\u0DDF')||(LA2_0>='\u0DF2' && LA2_0<='\u0DF3')||(LA2_0>='\u0E01' && LA2_0<='\u0E3A')||(LA2_0>='\u0E3F' && LA2_0<='\u0E4E')||(LA2_0>='\u0E50' && LA2_0<='\u0E59')||(LA2_0>='\u0E81' && LA2_0<='\u0E82')||LA2_0=='\u0E84'||(LA2_0>='\u0E87' && LA2_0<='\u0E88')||LA2_0=='\u0E8A'||LA2_0=='\u0E8D'||(LA2_0>='\u0E94' && LA2_0<='\u0E97')||(LA2_0>='\u0E99' && LA2_0<='\u0E9F')||(LA2_0>='\u0EA1' && LA2_0<='\u0EA3')||LA2_0=='\u0EA5'||LA2_0=='\u0EA7'||(LA2_0>='\u0EAA' && LA2_0<='\u0EAB')||(LA2_0>='\u0EAD' && LA2_0<='\u0EB9')||(LA2_0>='\u0EBB' && LA2_0<='\u0EBD')||(LA2_0>='\u0EC0' && LA2_0<='\u0EC4')||LA2_0=='\u0EC6'||(LA2_0>='\u0EC8' && LA2_0<='\u0ECD')||(LA2_0>='\u0ED0' && LA2_0<='\u0ED9')||(LA2_0>='\u0EDC' && LA2_0<='\u0EDD')||LA2_0=='\u0F00'||(LA2_0>='\u0F18' && LA2_0<='\u0F19')||(LA2_0>='\u0F20' && LA2_0<='\u0F29')||LA2_0=='\u0F35'||LA2_0=='\u0F37'||LA2_0=='\u0F39'||(LA2_0>='\u0F3E' && LA2_0<='\u0F47')||(LA2_0>='\u0F49' && LA2_0<='\u0F6A')||(LA2_0>='\u0F71' && LA2_0<='\u0F84')||(LA2_0>='\u0F86' && LA2_0<='\u0F8B')||(LA2_0>='\u0F90' && LA2_0<='\u0F97')||(LA2_0>='\u0F99' && LA2_0<='\u0FBC')||LA2_0=='\u0FC6'||(LA2_0>='\u1000' && LA2_0<='\u1021')||(LA2_0>='\u1023' && LA2_0<='\u1027')||(LA2_0>='\u1029' && LA2_0<='\u102A')||(LA2_0>='\u102C' && LA2_0<='\u1032')||(LA2_0>='\u1036' && LA2_0<='\u1039')||(LA2_0>='\u1040' && LA2_0<='\u1049')||(LA2_0>='\u1050' && LA2_0<='\u1059')||(LA2_0>='\u10A0' && LA2_0<='\u10C5')||(LA2_0>='\u10D0' && LA2_0<='\u10F8')||(LA2_0>='\u1100' && LA2_0<='\u1159')||(LA2_0>='\u115F' && LA2_0<='\u11A2')||(LA2_0>='\u11A8' && LA2_0<='\u11F9')||(LA2_0>='\u1200' && LA2_0<='\u1206')||(LA2_0>='\u1208' && LA2_0<='\u1246')||LA2_0=='\u1248'||(LA2_0>='\u124A' && LA2_0<='\u124D')||(LA2_0>='\u1250' && LA2_0<='\u1256')||LA2_0=='\u1258'||(LA2_0>='\u125A' && LA2_0<='\u125D')||(LA2_0>='\u1260' && LA2_0<='\u1286')||LA2_0=='\u1288'||(LA2_0>='\u128A' && LA2_0<='\u128D')||(LA2_0>='\u1290' && LA2_0<='\u12AE')||LA2_0=='\u12B0'||(LA2_0>='\u12B2' && LA2_0<='\u12B5')||(LA2_0>='\u12B8' && LA2_0<='\u12BE')||LA2_0=='\u12C0'||(LA2_0>='\u12C2' && LA2_0<='\u12C5')||(LA2_0>='\u12C8' && LA2_0<='\u12CE')||(LA2_0>='\u12D0' && LA2_0<='\u12D6')||(LA2_0>='\u12D8' && LA2_0<='\u12EE')||(LA2_0>='\u12F0' && LA2_0<='\u130E')||LA2_0=='\u1310'||(LA2_0>='\u1312' && LA2_0<='\u1315')||(LA2_0>='\u1318' && LA2_0<='\u131E')||(LA2_0>='\u1320' && LA2_0<='\u1346')||(LA2_0>='\u1348' && LA2_0<='\u135A')||(LA2_0>='\u1369' && LA2_0<='\u1371')||(LA2_0>='\u13A0' && LA2_0<='\u13F4')||(LA2_0>='\u1401' && LA2_0<='\u166C')||(LA2_0>='\u166F' && LA2_0<='\u1676')||(LA2_0>='\u1681' && LA2_0<='\u169A')||(LA2_0>='\u16A0' && LA2_0<='\u16EA')||(LA2_0>='\u16EE' && LA2_0<='\u16F0')||(LA2_0>='\u1700' && LA2_0<='\u170C')||(LA2_0>='\u170E' && LA2_0<='\u1714')||(LA2_0>='\u1720' && LA2_0<='\u1734')||(LA2_0>='\u1740' && LA2_0<='\u1753')||(LA2_0>='\u1760' && LA2_0<='\u176C')||(LA2_0>='\u176E' && LA2_0<='\u1770')||(LA2_0>='\u1772' && LA2_0<='\u1773')||(LA2_0>='\u1780' && LA2_0<='\u17D3')||LA2_0=='\u17D7'||(LA2_0>='\u17DB' && LA2_0<='\u17DD')||(LA2_0>='\u17E0' && LA2_0<='\u17E9')||(LA2_0>='\u180B' && LA2_0<='\u180D')||(LA2_0>='\u1810' && LA2_0<='\u1819')||(LA2_0>='\u1820' && LA2_0<='\u1877')||(LA2_0>='\u1880' && LA2_0<='\u18A9')||(LA2_0>='\u1900' && LA2_0<='\u191C')||(LA2_0>='\u1920' && LA2_0<='\u192B')||(LA2_0>='\u1930' && LA2_0<='\u193B')||(LA2_0>='\u1946' && LA2_0<='\u196D')||(LA2_0>='\u1970' && LA2_0<='\u1974')||(LA2_0>='\u1D00' && LA2_0<='\u1D6B')||(LA2_0>='\u1E00' && LA2_0<='\u1E9B')||(LA2_0>='\u1EA0' && LA2_0<='\u1EF9')||(LA2_0>='\u1F00' && LA2_0<='\u1F15')||(LA2_0>='\u1F18' && LA2_0<='\u1F1D')||(LA2_0>='\u1F20' && LA2_0<='\u1F45')||(LA2_0>='\u1F48' && LA2_0<='\u1F4D')||(LA2_0>='\u1F50' && LA2_0<='\u1F57')||LA2_0=='\u1F59'||LA2_0=='\u1F5B'||LA2_0=='\u1F5D'||(LA2_0>='\u1F5F' && LA2_0<='\u1F7D')||(LA2_0>='\u1F80' && LA2_0<='\u1FB4')||(LA2_0>='\u1FB6' && LA2_0<='\u1FBC')||LA2_0=='\u1FBE'||(LA2_0>='\u1FC2' && LA2_0<='\u1FC4')||(LA2_0>='\u1FC6' && LA2_0<='\u1FCC')||(LA2_0>='\u1FD0' && LA2_0<='\u1FD3')||(LA2_0>='\u1FD6' && LA2_0<='\u1FDB')||(LA2_0>='\u1FE0' && LA2_0<='\u1FEC')||(LA2_0>='\u1FF2' && LA2_0<='\u1FF4')||(LA2_0>='\u1FF6' && LA2_0<='\u1FFC')||(LA2_0>='\u200C' && LA2_0<='\u200F')||(LA2_0>='\u202A' && LA2_0<='\u202E')||(LA2_0>='\u203F' && LA2_0<='\u2040')||LA2_0=='\u2054'||(LA2_0>='\u2060' && LA2_0<='\u2063')||(LA2_0>='\u206A' && LA2_0<='\u206F')||LA2_0=='\u2071'||LA2_0=='\u207F'||(LA2_0>='\u20A0' && LA2_0<='\u20B1')||(LA2_0>='\u20D0' && LA2_0<='\u20DC')||LA2_0=='\u20E1'||(LA2_0>='\u20E5' && LA2_0<='\u20EA')||LA2_0=='\u2102'||LA2_0=='\u2107'||(LA2_0>='\u210A' && LA2_0<='\u2113')||LA2_0=='\u2115'||(LA2_0>='\u2119' && LA2_0<='\u211D')||LA2_0=='\u2124'||LA2_0=='\u2126'||LA2_0=='\u2128'||(LA2_0>='\u212A' && LA2_0<='\u212D')||(LA2_0>='\u212F' && LA2_0<='\u2131')||(LA2_0>='\u2133' && LA2_0<='\u2139')||(LA2_0>='\u213D' && LA2_0<='\u213F')||(LA2_0>='\u2145' && LA2_0<='\u2149')||(LA2_0>='\u2160' && LA2_0<='\u2183')||(LA2_0>='\u3001' && LA2_0<='\u3002')||(LA2_0>='\u3005' && LA2_0<='\u3007')||(LA2_0>='\u3021' && LA2_0<='\u302F')||(LA2_0>='\u3031' && LA2_0<='\u3035')||(LA2_0>='\u3038' && LA2_0<='\u303C')||(LA2_0>='\u3041' && LA2_0<='\u3096')||(LA2_0>='\u3099' && LA2_0<='\u309A')||(LA2_0>='\u309D' && LA2_0<='\u309F')||(LA2_0>='\u30A1' && LA2_0<='\u30FF')||(LA2_0>='\u3105' && LA2_0<='\u312C')||(LA2_0>='\u3131' && LA2_0<='\u318E')||(LA2_0>='\u31A0' && LA2_0<='\u31B7')||(LA2_0>='\u31F0' && LA2_0<='\u31FF')||(LA2_0>='\u3400' && LA2_0<='\u4DB5')||(LA2_0>='\u4E00' && LA2_0<='\u9FA5')||(LA2_0>='\uA000' && LA2_0<='\uA48C')||(LA2_0>='\uAC00' && LA2_0<='\uD7A3')||(LA2_0>='\uF900' && LA2_0<='\uFA2D')||(LA2_0>='\uFA30' && LA2_0<='\uFA6A')||(LA2_0>='\uFB00' && LA2_0<='\uFB06')||(LA2_0>='\uFB13' && LA2_0<='\uFB17')||(LA2_0>='\uFB1D' && LA2_0<='\uFB28')||(LA2_0>='\uFB2A' && LA2_0<='\uFB36')||(LA2_0>='\uFB38' && LA2_0<='\uFB3C')||LA2_0=='\uFB3E'||(LA2_0>='\uFB40' && LA2_0<='\uFB41')||(LA2_0>='\uFB43' && LA2_0<='\uFB44')||(LA2_0>='\uFB46' && LA2_0<='\uFBB1')||(LA2_0>='\uFBD3' && LA2_0<='\uFD3D')||(LA2_0>='\uFD50' && LA2_0<='\uFD8F')||(LA2_0>='\uFD92' && LA2_0<='\uFDC7')||(LA2_0>='\uFDF0' && LA2_0<='\uFDFC')||(LA2_0>='\uFE00' && LA2_0<='\uFE0F')||(LA2_0>='\uFE20' && LA2_0<='\uFE23')||(LA2_0>='\uFE33' && LA2_0<='\uFE34')||(LA2_0>='\uFE4D' && LA2_0<='\uFE4F')||LA2_0=='\uFE69'||(LA2_0>='\uFE70' && LA2_0<='\uFE74')||(LA2_0>='\uFE76' && LA2_0<='\uFEFC')||LA2_0=='\uFEFF'||LA2_0=='\uFF04'||(LA2_0>='\uFF08' && LA2_0<='\uFF09')||(LA2_0>='\uFF10' && LA2_0<='\uFF1A')||(LA2_0>='\uFF21' && LA2_0<='\uFF3A')||LA2_0=='\uFF3F'||(LA2_0>='\uFF41' && LA2_0<='\uFF5A')||(LA2_0>='\uFF65' && LA2_0<='\uFFBE')||(LA2_0>='\uFFC2' && LA2_0<='\uFFC7')||(LA2_0>='\uFFCA' && LA2_0<='\uFFCF')||(LA2_0>='\uFFD2' && LA2_0<='\uFFD7')||(LA2_0>='\uFFDA' && LA2_0<='\uFFDC')||(LA2_0>='\uFFE0' && LA2_0<='\uFFE1')||(LA2_0>='\uFFE5' && LA2_0<='\uFFE6')||(LA2_0>='\uFFF9' && LA2_0<='\uFFFB')) ) {
+ alt2=1;
+ }
+ else if ( (LA2_0=='\\') ) {
+ alt2=2;
+ }
+
+
+ switch (alt2) {
+ case 1 :
+ // InternalRBAModel.g:10281:56: RULE_IDENTIFIER_PART
+ {
+ mRULE_IDENTIFIER_PART();
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:10281:77: RULE_UNICODE_ESCAPE
+ {
+ mRULE_UNICODE_ESCAPE();
+
+ }
+ break;
+
+ default :
+ break loop2;
+ }
+ } while (true);
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_ID"
+
+ // $ANTLR start "RULE_IDENTIFIER_START_IMPL"
+ public final void mRULE_IDENTIFIER_START_IMPL() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:10283:37: ( ( '$' | 'A' .. 'Z' | '\\uFF08' .. '\\uFF09' | '_' | 'a' .. 'z' | '\\u00A2' .. '\\u00A5' | '\\u00AA' | '\\u00B5' | '\\u00BA' | '\\u00C0' .. '\\u00D6' | '\\u00D8' .. '\\u00F6' | '\\u00F8' .. '\\u0236' | '\\u0250' .. '\\u02C1' | '\\u02C6' .. '\\u02D1' | '\\u02E0' .. '\\u02E4' | '\\u02EE' | '\\u037A' | '\\u0386' | '\\u0388' .. '\\u038A' | '\\u038C' | '\\u038E' .. '\\u03A1' | '\\u03A3' .. '\\u03CE' | '\\u03D0' .. '\\u03F5' | '\\u03F7' .. '\\u03FB' | '\\u0400' .. '\\u0481' | '\\u048A' .. '\\u04CE' | '\\u04D0' .. '\\u04F5' | '\\u04F8' .. '\\u04F9' | '\\u0500' .. '\\u050F' | '\\u0531' .. '\\u0556' | '\\u0559' | '\\u0561' .. '\\u0587' | '\\u05D0' .. '\\u05EA' | '\\u05F0' .. '\\u05F2' | '\\u0621' .. '\\u063A' | '\\u0640' .. '\\u064A' | '\\u066E' .. '\\u066F' | '\\u0671' .. '\\u06D3' | '\\u06D5' | '\\u06E5' .. '\\u06E6' | '\\u06EE' .. '\\u06EF' | '\\u06FA' .. '\\u06FC' | '\\u06FF' | '\\u0710' | '\\u0712' .. '\\u072F' | '\\u074D' .. '\\u074F' | '\\u0780' .. '\\u07A5' | '\\u07B1' | '\\u0904' .. '\\u0939' | '\\u093D' | '\\u0950' | '\\u0958' .. '\\u0961' | '\\u0985' .. '\\u098C' | '\\u098F' .. '\\u0990' | '\\u0993' .. '\\u09A8' | '\\u09AA' .. '\\u09B0' | '\\u09B2' | '\\u09B6' .. '\\u09B9' | '\\u09BD' | '\\u09DC' .. '\\u09DD' | '\\u09DF' .. '\\u09E1' | '\\u09F0' .. '\\u09F3' | '\\u0A05' .. '\\u0A0A' | '\\u0A0F' .. '\\u0A10' | '\\u0A13' .. '\\u0A28' | '\\u0A2A' .. '\\u0A30' | '\\u0A32' .. '\\u0A33' | '\\u0A35' .. '\\u0A36' | '\\u0A38' .. '\\u0A39' | '\\u0A59' .. '\\u0A5C' | '\\u0A5E' | '\\u0A72' .. '\\u0A74' | '\\u0A85' .. '\\u0A8D' | '\\u0A8F' .. '\\u0A91' | '\\u0A93' .. '\\u0AA8' | '\\u0AAA' .. '\\u0AB0' | '\\u0AB2' .. '\\u0AB3' | '\\u0AB5' .. '\\u0AB9' | '\\u0ABD' | '\\u0AD0' | '\\u0AE0' .. '\\u0AE1' | '\\u0AF1' | '\\u0B05' .. '\\u0B0C' | '\\u0B0F' .. '\\u0B10' | '\\u0B13' .. '\\u0B28' | '\\u0B2A' .. '\\u0B30' | '\\u0B32' .. '\\u0B33' | '\\u0B35' .. '\\u0B39' | '\\u0B3D' | '\\u0B5C' .. '\\u0B5D' | '\\u0B5F' .. '\\u0B61' | '\\u0B71' | '\\u0B83' | '\\u0B85' .. '\\u0B8A' | '\\u0B8E' .. '\\u0B90' | '\\u0B92' .. '\\u0B95' | '\\u0B99' .. '\\u0B9A' | '\\u0B9C' | '\\u0B9E' .. '\\u0B9F' | '\\u0BA3' .. '\\u0BA4' | '\\u0BA8' .. '\\u0BAA' | '\\u0BAE' .. '\\u0BB5' | '\\u0BB7' .. '\\u0BB9' | '\\u0BF9' | '\\u0C05' .. '\\u0C0C' | '\\u0C0E' .. '\\u0C10' | '\\u0C12' .. '\\u0C28' | '\\u0C2A' .. '\\u0C33' | '\\u0C35' .. '\\u0C39' | '\\u0C60' .. '\\u0C61' | '\\u0C85' .. '\\u0C8C' | '\\u0C8E' .. '\\u0C90' | '\\u0C92' .. '\\u0CA8' | '\\u0CAA' .. '\\u0CB3' | '\\u0CB5' .. '\\u0CB9' | '\\u0CBD' | '\\u0CDE' | '\\u0CE0' .. '\\u0CE1' | '\\u0D05' .. '\\u0D0C' | '\\u0D0E' .. '\\u0D10' | '\\u0D12' .. '\\u0D28' | '\\u0D2A' .. '\\u0D39' | '\\u0D60' .. '\\u0D61' | '\\u0D85' .. '\\u0D96' | '\\u0D9A' .. '\\u0DB1' | '\\u0DB3' .. '\\u0DBB' | '\\u0DBD' | '\\u0DC0' .. '\\u0DC6' | '\\u0E01' .. '\\u0E30' | '\\u0E32' .. '\\u0E33' | '\\u0E3F' .. '\\u0E46' | '\\u0E81' .. '\\u0E82' | '\\u0E84' | '\\u0E87' .. '\\u0E88' | '\\u0E8A' | '\\u0E8D' | '\\u0E94' .. '\\u0E97' | '\\u0E99' .. '\\u0E9F' | '\\u0EA1' .. '\\u0EA3' | '\\u0EA5' | '\\u0EA7' | '\\u0EAA' .. '\\u0EAB' | '\\u0EAD' .. '\\u0EB0' | '\\u0EB2' .. '\\u0EB3' | '\\u0EBD' | '\\u0EC0' .. '\\u0EC4' | '\\u0EC6' | '\\u0EDC' .. '\\u0EDD' | '\\u0F00' | '\\u0F40' .. '\\u0F47' | '\\u0F49' .. '\\u0F6A' | '\\u0F88' .. '\\u0F8B' | '\\u1000' .. '\\u1021' | '\\u1023' .. '\\u1027' | '\\u1029' .. '\\u102A' | '\\u1050' .. '\\u1055' | '\\u10A0' .. '\\u10C5' | '\\u10D0' .. '\\u10F8' | '\\u1100' .. '\\u1159' | '\\u115F' .. '\\u11A2' | '\\u11A8' .. '\\u11F9' | '\\u1200' .. '\\u1206' | '\\u1208' .. '\\u1246' | '\\u1248' | '\\u124A' .. '\\u124D' | '\\u1250' .. '\\u1256' | '\\u1258' | '\\u125A' .. '\\u125D' | '\\u1260' .. '\\u1286' | '\\u1288' | '\\u128A' .. '\\u128D' | '\\u1290' .. '\\u12AE' | '\\u12B0' | '\\u12B2' .. '\\u12B5' | '\\u12B8' .. '\\u12BE' | '\\u12C0' | '\\u12C2' .. '\\u12C5' | '\\u12C8' .. '\\u12CE' | '\\u12D0' .. '\\u12D6' | '\\u12D8' .. '\\u12EE' | '\\u12F0' .. '\\u130E' | '\\u1310' | '\\u1312' .. '\\u1315' | '\\u1318' .. '\\u131E' | '\\u1320' .. '\\u1346' | '\\u1348' .. '\\u135A' | '\\u13A0' .. '\\u13F4' | '\\u1401' .. '\\u166C' | '\\u166F' .. '\\u1676' | '\\u1681' .. '\\u169A' | '\\u16A0' .. '\\u16EA' | '\\u16EE' .. '\\u16F0' | '\\u1700' .. '\\u170C' | '\\u170E' .. '\\u1711' | '\\u1720' .. '\\u1731' | '\\u1740' .. '\\u1751' | '\\u1760' .. '\\u176C' | '\\u176E' .. '\\u1770' | '\\u1780' .. '\\u17B3' | '\\u17D7' | '\\u17DB' .. '\\u17DC' | '\\u1820' .. '\\u1877' | '\\u1880' .. '\\u18A8' | '\\u1900' .. '\\u191C' | '\\u1950' .. '\\u196D' | '\\u1970' .. '\\u1974' | '\\u1D00' .. '\\u1D6B' | '\\u1E00' .. '\\u1E9B' | '\\u1EA0' .. '\\u1EF9' | '\\u1F00' .. '\\u1F15' | '\\u1F18' .. '\\u1F1D' | '\\u1F20' .. '\\u1F45' | '\\u1F48' .. '\\u1F4D' | '\\u1F50' .. '\\u1F57' | '\\u1F59' | '\\u1F5B' | '\\u1F5D' | '\\u1F5F' .. '\\u1F7D' | '\\u1F80' .. '\\u1FB4' | '\\u1FB6' .. '\\u1FBC' | '\\u1FBE' | '\\u1FC2' .. '\\u1FC4' | '\\u1FC6' .. '\\u1FCC' | '\\u1FD0' .. '\\u1FD3' | '\\u1FD6' .. '\\u1FDB' | '\\u1FE0' .. '\\u1FEC' | '\\u1FF2' .. '\\u1FF4' | '\\u1FF6' .. '\\u1FFC' | '\\u203F' .. '\\u2040' | '\\u2054' | '\\u2071' | '\\u207F' | '\\u20A0' .. '\\u20B1' | '\\u2102' | '\\u2107' | '\\u210A' .. '\\u2113' | '\\u2115' | '\\u2119' .. '\\u211D' | '\\u2124' | '\\u2126' | '\\u2128' | '\\u212A' .. '\\u212D' | '\\u212F' .. '\\u2131' | '\\u2133' .. '\\u2139' | '\\u213D' .. '\\u213F' | '\\u2145' .. '\\u2149' | '\\u2160' .. '\\u2183' | '\\u3005' .. '\\u3007' | '\\u3021' .. '\\u3029' | '\\u3031' .. '\\u3035' | '\\u3038' .. '\\u303C' | '\\u3041' .. '\\u3096' | '\\u309D' .. '\\u309F' | '\\u30A1' .. '\\u30FF' | '\\u3105' .. '\\u312C' | '\\u3131' .. '\\u318E' | '\\u31A0' .. '\\u31B7' | '\\u31F0' .. '\\u31FF' | '\\u3400' .. '\\u4DB5' | '\\u4E00' .. '\\u9FA5' | '\\uA000' .. '\\uA48C' | '\\uAC00' .. '\\uD7A3' | '\\uF900' .. '\\uFA2D' | '\\uFA30' .. '\\uFA6A' | '\\uFB00' .. '\\uFB06' | '\\uFB13' .. '\\uFB17' | '\\uFB1D' | '\\uFB1F' .. '\\uFB28' | '\\uFB2A' .. '\\uFB36' | '\\uFB38' .. '\\uFB3C' | '\\uFB3E' | '\\uFB40' .. '\\uFB41' | '\\uFB43' .. '\\uFB44' | '\\uFB46' .. '\\uFBB1' | '\\uFBD3' .. '\\uFD3D' | '\\uFD50' .. '\\uFD8F' | '\\uFD92' .. '\\uFDC7' | '\\uFDF0' .. '\\uFDFC' | '\\uFE33' .. '\\uFE34' | '\\uFE4D' .. '\\uFE4F' | '\\uFE69' | '\\uFE70' .. '\\uFE74' | '\\uFE76' .. '\\uFEFC' | '\\uFF04' | '\\uFF1A' | '\\uFF21' .. '\\uFF3A' | '\\uFF3F' | '\\uFF41' .. '\\uFF5A' | '\\uFF65' .. '\\uFFBE' | '\\uFFC2' .. '\\uFFC7' | '\\uFFCA' .. '\\uFFCF' | '\\uFFD2' .. '\\uFFD7' | '\\uFFDA' .. '\\uFFDC' | '\\uFFE0' .. '\\uFFE1' | '\\uFFE5' .. '\\uFFE6' ) )
+ // InternalRBAModel.g:10283:39: ( '$' | 'A' .. 'Z' | '\\uFF08' .. '\\uFF09' | '_' | 'a' .. 'z' | '\\u00A2' .. '\\u00A5' | '\\u00AA' | '\\u00B5' | '\\u00BA' | '\\u00C0' .. '\\u00D6' | '\\u00D8' .. '\\u00F6' | '\\u00F8' .. '\\u0236' | '\\u0250' .. '\\u02C1' | '\\u02C6' .. '\\u02D1' | '\\u02E0' .. '\\u02E4' | '\\u02EE' | '\\u037A' | '\\u0386' | '\\u0388' .. '\\u038A' | '\\u038C' | '\\u038E' .. '\\u03A1' | '\\u03A3' .. '\\u03CE' | '\\u03D0' .. '\\u03F5' | '\\u03F7' .. '\\u03FB' | '\\u0400' .. '\\u0481' | '\\u048A' .. '\\u04CE' | '\\u04D0' .. '\\u04F5' | '\\u04F8' .. '\\u04F9' | '\\u0500' .. '\\u050F' | '\\u0531' .. '\\u0556' | '\\u0559' | '\\u0561' .. '\\u0587' | '\\u05D0' .. '\\u05EA' | '\\u05F0' .. '\\u05F2' | '\\u0621' .. '\\u063A' | '\\u0640' .. '\\u064A' | '\\u066E' .. '\\u066F' | '\\u0671' .. '\\u06D3' | '\\u06D5' | '\\u06E5' .. '\\u06E6' | '\\u06EE' .. '\\u06EF' | '\\u06FA' .. '\\u06FC' | '\\u06FF' | '\\u0710' | '\\u0712' .. '\\u072F' | '\\u074D' .. '\\u074F' | '\\u0780' .. '\\u07A5' | '\\u07B1' | '\\u0904' .. '\\u0939' | '\\u093D' | '\\u0950' | '\\u0958' .. '\\u0961' | '\\u0985' .. '\\u098C' | '\\u098F' .. '\\u0990' | '\\u0993' .. '\\u09A8' | '\\u09AA' .. '\\u09B0' | '\\u09B2' | '\\u09B6' .. '\\u09B9' | '\\u09BD' | '\\u09DC' .. '\\u09DD' | '\\u09DF' .. '\\u09E1' | '\\u09F0' .. '\\u09F3' | '\\u0A05' .. '\\u0A0A' | '\\u0A0F' .. '\\u0A10' | '\\u0A13' .. '\\u0A28' | '\\u0A2A' .. '\\u0A30' | '\\u0A32' .. '\\u0A33' | '\\u0A35' .. '\\u0A36' | '\\u0A38' .. '\\u0A39' | '\\u0A59' .. '\\u0A5C' | '\\u0A5E' | '\\u0A72' .. '\\u0A74' | '\\u0A85' .. '\\u0A8D' | '\\u0A8F' .. '\\u0A91' | '\\u0A93' .. '\\u0AA8' | '\\u0AAA' .. '\\u0AB0' | '\\u0AB2' .. '\\u0AB3' | '\\u0AB5' .. '\\u0AB9' | '\\u0ABD' | '\\u0AD0' | '\\u0AE0' .. '\\u0AE1' | '\\u0AF1' | '\\u0B05' .. '\\u0B0C' | '\\u0B0F' .. '\\u0B10' | '\\u0B13' .. '\\u0B28' | '\\u0B2A' .. '\\u0B30' | '\\u0B32' .. '\\u0B33' | '\\u0B35' .. '\\u0B39' | '\\u0B3D' | '\\u0B5C' .. '\\u0B5D' | '\\u0B5F' .. '\\u0B61' | '\\u0B71' | '\\u0B83' | '\\u0B85' .. '\\u0B8A' | '\\u0B8E' .. '\\u0B90' | '\\u0B92' .. '\\u0B95' | '\\u0B99' .. '\\u0B9A' | '\\u0B9C' | '\\u0B9E' .. '\\u0B9F' | '\\u0BA3' .. '\\u0BA4' | '\\u0BA8' .. '\\u0BAA' | '\\u0BAE' .. '\\u0BB5' | '\\u0BB7' .. '\\u0BB9' | '\\u0BF9' | '\\u0C05' .. '\\u0C0C' | '\\u0C0E' .. '\\u0C10' | '\\u0C12' .. '\\u0C28' | '\\u0C2A' .. '\\u0C33' | '\\u0C35' .. '\\u0C39' | '\\u0C60' .. '\\u0C61' | '\\u0C85' .. '\\u0C8C' | '\\u0C8E' .. '\\u0C90' | '\\u0C92' .. '\\u0CA8' | '\\u0CAA' .. '\\u0CB3' | '\\u0CB5' .. '\\u0CB9' | '\\u0CBD' | '\\u0CDE' | '\\u0CE0' .. '\\u0CE1' | '\\u0D05' .. '\\u0D0C' | '\\u0D0E' .. '\\u0D10' | '\\u0D12' .. '\\u0D28' | '\\u0D2A' .. '\\u0D39' | '\\u0D60' .. '\\u0D61' | '\\u0D85' .. '\\u0D96' | '\\u0D9A' .. '\\u0DB1' | '\\u0DB3' .. '\\u0DBB' | '\\u0DBD' | '\\u0DC0' .. '\\u0DC6' | '\\u0E01' .. '\\u0E30' | '\\u0E32' .. '\\u0E33' | '\\u0E3F' .. '\\u0E46' | '\\u0E81' .. '\\u0E82' | '\\u0E84' | '\\u0E87' .. '\\u0E88' | '\\u0E8A' | '\\u0E8D' | '\\u0E94' .. '\\u0E97' | '\\u0E99' .. '\\u0E9F' | '\\u0EA1' .. '\\u0EA3' | '\\u0EA5' | '\\u0EA7' | '\\u0EAA' .. '\\u0EAB' | '\\u0EAD' .. '\\u0EB0' | '\\u0EB2' .. '\\u0EB3' | '\\u0EBD' | '\\u0EC0' .. '\\u0EC4' | '\\u0EC6' | '\\u0EDC' .. '\\u0EDD' | '\\u0F00' | '\\u0F40' .. '\\u0F47' | '\\u0F49' .. '\\u0F6A' | '\\u0F88' .. '\\u0F8B' | '\\u1000' .. '\\u1021' | '\\u1023' .. '\\u1027' | '\\u1029' .. '\\u102A' | '\\u1050' .. '\\u1055' | '\\u10A0' .. '\\u10C5' | '\\u10D0' .. '\\u10F8' | '\\u1100' .. '\\u1159' | '\\u115F' .. '\\u11A2' | '\\u11A8' .. '\\u11F9' | '\\u1200' .. '\\u1206' | '\\u1208' .. '\\u1246' | '\\u1248' | '\\u124A' .. '\\u124D' | '\\u1250' .. '\\u1256' | '\\u1258' | '\\u125A' .. '\\u125D' | '\\u1260' .. '\\u1286' | '\\u1288' | '\\u128A' .. '\\u128D' | '\\u1290' .. '\\u12AE' | '\\u12B0' | '\\u12B2' .. '\\u12B5' | '\\u12B8' .. '\\u12BE' | '\\u12C0' | '\\u12C2' .. '\\u12C5' | '\\u12C8' .. '\\u12CE' | '\\u12D0' .. '\\u12D6' | '\\u12D8' .. '\\u12EE' | '\\u12F0' .. '\\u130E' | '\\u1310' | '\\u1312' .. '\\u1315' | '\\u1318' .. '\\u131E' | '\\u1320' .. '\\u1346' | '\\u1348' .. '\\u135A' | '\\u13A0' .. '\\u13F4' | '\\u1401' .. '\\u166C' | '\\u166F' .. '\\u1676' | '\\u1681' .. '\\u169A' | '\\u16A0' .. '\\u16EA' | '\\u16EE' .. '\\u16F0' | '\\u1700' .. '\\u170C' | '\\u170E' .. '\\u1711' | '\\u1720' .. '\\u1731' | '\\u1740' .. '\\u1751' | '\\u1760' .. '\\u176C' | '\\u176E' .. '\\u1770' | '\\u1780' .. '\\u17B3' | '\\u17D7' | '\\u17DB' .. '\\u17DC' | '\\u1820' .. '\\u1877' | '\\u1880' .. '\\u18A8' | '\\u1900' .. '\\u191C' | '\\u1950' .. '\\u196D' | '\\u1970' .. '\\u1974' | '\\u1D00' .. '\\u1D6B' | '\\u1E00' .. '\\u1E9B' | '\\u1EA0' .. '\\u1EF9' | '\\u1F00' .. '\\u1F15' | '\\u1F18' .. '\\u1F1D' | '\\u1F20' .. '\\u1F45' | '\\u1F48' .. '\\u1F4D' | '\\u1F50' .. '\\u1F57' | '\\u1F59' | '\\u1F5B' | '\\u1F5D' | '\\u1F5F' .. '\\u1F7D' | '\\u1F80' .. '\\u1FB4' | '\\u1FB6' .. '\\u1FBC' | '\\u1FBE' | '\\u1FC2' .. '\\u1FC4' | '\\u1FC6' .. '\\u1FCC' | '\\u1FD0' .. '\\u1FD3' | '\\u1FD6' .. '\\u1FDB' | '\\u1FE0' .. '\\u1FEC' | '\\u1FF2' .. '\\u1FF4' | '\\u1FF6' .. '\\u1FFC' | '\\u203F' .. '\\u2040' | '\\u2054' | '\\u2071' | '\\u207F' | '\\u20A0' .. '\\u20B1' | '\\u2102' | '\\u2107' | '\\u210A' .. '\\u2113' | '\\u2115' | '\\u2119' .. '\\u211D' | '\\u2124' | '\\u2126' | '\\u2128' | '\\u212A' .. '\\u212D' | '\\u212F' .. '\\u2131' | '\\u2133' .. '\\u2139' | '\\u213D' .. '\\u213F' | '\\u2145' .. '\\u2149' | '\\u2160' .. '\\u2183' | '\\u3005' .. '\\u3007' | '\\u3021' .. '\\u3029' | '\\u3031' .. '\\u3035' | '\\u3038' .. '\\u303C' | '\\u3041' .. '\\u3096' | '\\u309D' .. '\\u309F' | '\\u30A1' .. '\\u30FF' | '\\u3105' .. '\\u312C' | '\\u3131' .. '\\u318E' | '\\u31A0' .. '\\u31B7' | '\\u31F0' .. '\\u31FF' | '\\u3400' .. '\\u4DB5' | '\\u4E00' .. '\\u9FA5' | '\\uA000' .. '\\uA48C' | '\\uAC00' .. '\\uD7A3' | '\\uF900' .. '\\uFA2D' | '\\uFA30' .. '\\uFA6A' | '\\uFB00' .. '\\uFB06' | '\\uFB13' .. '\\uFB17' | '\\uFB1D' | '\\uFB1F' .. '\\uFB28' | '\\uFB2A' .. '\\uFB36' | '\\uFB38' .. '\\uFB3C' | '\\uFB3E' | '\\uFB40' .. '\\uFB41' | '\\uFB43' .. '\\uFB44' | '\\uFB46' .. '\\uFBB1' | '\\uFBD3' .. '\\uFD3D' | '\\uFD50' .. '\\uFD8F' | '\\uFD92' .. '\\uFDC7' | '\\uFDF0' .. '\\uFDFC' | '\\uFE33' .. '\\uFE34' | '\\uFE4D' .. '\\uFE4F' | '\\uFE69' | '\\uFE70' .. '\\uFE74' | '\\uFE76' .. '\\uFEFC' | '\\uFF04' | '\\uFF1A' | '\\uFF21' .. '\\uFF3A' | '\\uFF3F' | '\\uFF41' .. '\\uFF5A' | '\\uFF65' .. '\\uFFBE' | '\\uFFC2' .. '\\uFFC7' | '\\uFFCA' .. '\\uFFCF' | '\\uFFD2' .. '\\uFFD7' | '\\uFFDA' .. '\\uFFDC' | '\\uFFE0' .. '\\uFFE1' | '\\uFFE5' .. '\\uFFE6' )
+ {
+ if ( input.LA(1)=='$'||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z')||(input.LA(1)>='\u00A2' && input.LA(1)<='\u00A5')||input.LA(1)=='\u00AA'||input.LA(1)=='\u00B5'||input.LA(1)=='\u00BA'||(input.LA(1)>='\u00C0' && input.LA(1)<='\u00D6')||(input.LA(1)>='\u00D8' && input.LA(1)<='\u00F6')||(input.LA(1)>='\u00F8' && input.LA(1)<='\u0236')||(input.LA(1)>='\u0250' && input.LA(1)<='\u02C1')||(input.LA(1)>='\u02C6' && input.LA(1)<='\u02D1')||(input.LA(1)>='\u02E0' && input.LA(1)<='\u02E4')||input.LA(1)=='\u02EE'||input.LA(1)=='\u037A'||input.LA(1)=='\u0386'||(input.LA(1)>='\u0388' && input.LA(1)<='\u038A')||input.LA(1)=='\u038C'||(input.LA(1)>='\u038E' && input.LA(1)<='\u03A1')||(input.LA(1)>='\u03A3' && input.LA(1)<='\u03CE')||(input.LA(1)>='\u03D0' && input.LA(1)<='\u03F5')||(input.LA(1)>='\u03F7' && input.LA(1)<='\u03FB')||(input.LA(1)>='\u0400' && input.LA(1)<='\u0481')||(input.LA(1)>='\u048A' && input.LA(1)<='\u04CE')||(input.LA(1)>='\u04D0' && input.LA(1)<='\u04F5')||(input.LA(1)>='\u04F8' && input.LA(1)<='\u04F9')||(input.LA(1)>='\u0500' && input.LA(1)<='\u050F')||(input.LA(1)>='\u0531' && input.LA(1)<='\u0556')||input.LA(1)=='\u0559'||(input.LA(1)>='\u0561' && input.LA(1)<='\u0587')||(input.LA(1)>='\u05D0' && input.LA(1)<='\u05EA')||(input.LA(1)>='\u05F0' && input.LA(1)<='\u05F2')||(input.LA(1)>='\u0621' && input.LA(1)<='\u063A')||(input.LA(1)>='\u0640' && input.LA(1)<='\u064A')||(input.LA(1)>='\u066E' && input.LA(1)<='\u066F')||(input.LA(1)>='\u0671' && input.LA(1)<='\u06D3')||input.LA(1)=='\u06D5'||(input.LA(1)>='\u06E5' && input.LA(1)<='\u06E6')||(input.LA(1)>='\u06EE' && input.LA(1)<='\u06EF')||(input.LA(1)>='\u06FA' && input.LA(1)<='\u06FC')||input.LA(1)=='\u06FF'||input.LA(1)=='\u0710'||(input.LA(1)>='\u0712' && input.LA(1)<='\u072F')||(input.LA(1)>='\u074D' && input.LA(1)<='\u074F')||(input.LA(1)>='\u0780' && input.LA(1)<='\u07A5')||input.LA(1)=='\u07B1'||(input.LA(1)>='\u0904' && input.LA(1)<='\u0939')||input.LA(1)=='\u093D'||input.LA(1)=='\u0950'||(input.LA(1)>='\u0958' && input.LA(1)<='\u0961')||(input.LA(1)>='\u0985' && input.LA(1)<='\u098C')||(input.LA(1)>='\u098F' && input.LA(1)<='\u0990')||(input.LA(1)>='\u0993' && input.LA(1)<='\u09A8')||(input.LA(1)>='\u09AA' && input.LA(1)<='\u09B0')||input.LA(1)=='\u09B2'||(input.LA(1)>='\u09B6' && input.LA(1)<='\u09B9')||input.LA(1)=='\u09BD'||(input.LA(1)>='\u09DC' && input.LA(1)<='\u09DD')||(input.LA(1)>='\u09DF' && input.LA(1)<='\u09E1')||(input.LA(1)>='\u09F0' && input.LA(1)<='\u09F3')||(input.LA(1)>='\u0A05' && input.LA(1)<='\u0A0A')||(input.LA(1)>='\u0A0F' && input.LA(1)<='\u0A10')||(input.LA(1)>='\u0A13' && input.LA(1)<='\u0A28')||(input.LA(1)>='\u0A2A' && input.LA(1)<='\u0A30')||(input.LA(1)>='\u0A32' && input.LA(1)<='\u0A33')||(input.LA(1)>='\u0A35' && input.LA(1)<='\u0A36')||(input.LA(1)>='\u0A38' && input.LA(1)<='\u0A39')||(input.LA(1)>='\u0A59' && input.LA(1)<='\u0A5C')||input.LA(1)=='\u0A5E'||(input.LA(1)>='\u0A72' && input.LA(1)<='\u0A74')||(input.LA(1)>='\u0A85' && input.LA(1)<='\u0A8D')||(input.LA(1)>='\u0A8F' && input.LA(1)<='\u0A91')||(input.LA(1)>='\u0A93' && input.LA(1)<='\u0AA8')||(input.LA(1)>='\u0AAA' && input.LA(1)<='\u0AB0')||(input.LA(1)>='\u0AB2' && input.LA(1)<='\u0AB3')||(input.LA(1)>='\u0AB5' && input.LA(1)<='\u0AB9')||input.LA(1)=='\u0ABD'||input.LA(1)=='\u0AD0'||(input.LA(1)>='\u0AE0' && input.LA(1)<='\u0AE1')||input.LA(1)=='\u0AF1'||(input.LA(1)>='\u0B05' && input.LA(1)<='\u0B0C')||(input.LA(1)>='\u0B0F' && input.LA(1)<='\u0B10')||(input.LA(1)>='\u0B13' && input.LA(1)<='\u0B28')||(input.LA(1)>='\u0B2A' && input.LA(1)<='\u0B30')||(input.LA(1)>='\u0B32' && input.LA(1)<='\u0B33')||(input.LA(1)>='\u0B35' && input.LA(1)<='\u0B39')||input.LA(1)=='\u0B3D'||(input.LA(1)>='\u0B5C' && input.LA(1)<='\u0B5D')||(input.LA(1)>='\u0B5F' && input.LA(1)<='\u0B61')||input.LA(1)=='\u0B71'||input.LA(1)=='\u0B83'||(input.LA(1)>='\u0B85' && input.LA(1)<='\u0B8A')||(input.LA(1)>='\u0B8E' && input.LA(1)<='\u0B90')||(input.LA(1)>='\u0B92' && input.LA(1)<='\u0B95')||(input.LA(1)>='\u0B99' && input.LA(1)<='\u0B9A')||input.LA(1)=='\u0B9C'||(input.LA(1)>='\u0B9E' && input.LA(1)<='\u0B9F')||(input.LA(1)>='\u0BA3' && input.LA(1)<='\u0BA4')||(input.LA(1)>='\u0BA8' && input.LA(1)<='\u0BAA')||(input.LA(1)>='\u0BAE' && input.LA(1)<='\u0BB5')||(input.LA(1)>='\u0BB7' && input.LA(1)<='\u0BB9')||input.LA(1)=='\u0BF9'||(input.LA(1)>='\u0C05' && input.LA(1)<='\u0C0C')||(input.LA(1)>='\u0C0E' && input.LA(1)<='\u0C10')||(input.LA(1)>='\u0C12' && input.LA(1)<='\u0C28')||(input.LA(1)>='\u0C2A' && input.LA(1)<='\u0C33')||(input.LA(1)>='\u0C35' && input.LA(1)<='\u0C39')||(input.LA(1)>='\u0C60' && input.LA(1)<='\u0C61')||(input.LA(1)>='\u0C85' && input.LA(1)<='\u0C8C')||(input.LA(1)>='\u0C8E' && input.LA(1)<='\u0C90')||(input.LA(1)>='\u0C92' && input.LA(1)<='\u0CA8')||(input.LA(1)>='\u0CAA' && input.LA(1)<='\u0CB3')||(input.LA(1)>='\u0CB5' && input.LA(1)<='\u0CB9')||input.LA(1)=='\u0CBD'||input.LA(1)=='\u0CDE'||(input.LA(1)>='\u0CE0' && input.LA(1)<='\u0CE1')||(input.LA(1)>='\u0D05' && input.LA(1)<='\u0D0C')||(input.LA(1)>='\u0D0E' && input.LA(1)<='\u0D10')||(input.LA(1)>='\u0D12' && input.LA(1)<='\u0D28')||(input.LA(1)>='\u0D2A' && input.LA(1)<='\u0D39')||(input.LA(1)>='\u0D60' && input.LA(1)<='\u0D61')||(input.LA(1)>='\u0D85' && input.LA(1)<='\u0D96')||(input.LA(1)>='\u0D9A' && input.LA(1)<='\u0DB1')||(input.LA(1)>='\u0DB3' && input.LA(1)<='\u0DBB')||input.LA(1)=='\u0DBD'||(input.LA(1)>='\u0DC0' && input.LA(1)<='\u0DC6')||(input.LA(1)>='\u0E01' && input.LA(1)<='\u0E30')||(input.LA(1)>='\u0E32' && input.LA(1)<='\u0E33')||(input.LA(1)>='\u0E3F' && input.LA(1)<='\u0E46')||(input.LA(1)>='\u0E81' && input.LA(1)<='\u0E82')||input.LA(1)=='\u0E84'||(input.LA(1)>='\u0E87' && input.LA(1)<='\u0E88')||input.LA(1)=='\u0E8A'||input.LA(1)=='\u0E8D'||(input.LA(1)>='\u0E94' && input.LA(1)<='\u0E97')||(input.LA(1)>='\u0E99' && input.LA(1)<='\u0E9F')||(input.LA(1)>='\u0EA1' && input.LA(1)<='\u0EA3')||input.LA(1)=='\u0EA5'||input.LA(1)=='\u0EA7'||(input.LA(1)>='\u0EAA' && input.LA(1)<='\u0EAB')||(input.LA(1)>='\u0EAD' && input.LA(1)<='\u0EB0')||(input.LA(1)>='\u0EB2' && input.LA(1)<='\u0EB3')||input.LA(1)=='\u0EBD'||(input.LA(1)>='\u0EC0' && input.LA(1)<='\u0EC4')||input.LA(1)=='\u0EC6'||(input.LA(1)>='\u0EDC' && input.LA(1)<='\u0EDD')||input.LA(1)=='\u0F00'||(input.LA(1)>='\u0F40' && input.LA(1)<='\u0F47')||(input.LA(1)>='\u0F49' && input.LA(1)<='\u0F6A')||(input.LA(1)>='\u0F88' && input.LA(1)<='\u0F8B')||(input.LA(1)>='\u1000' && input.LA(1)<='\u1021')||(input.LA(1)>='\u1023' && input.LA(1)<='\u1027')||(input.LA(1)>='\u1029' && input.LA(1)<='\u102A')||(input.LA(1)>='\u1050' && input.LA(1)<='\u1055')||(input.LA(1)>='\u10A0' && input.LA(1)<='\u10C5')||(input.LA(1)>='\u10D0' && input.LA(1)<='\u10F8')||(input.LA(1)>='\u1100' && input.LA(1)<='\u1159')||(input.LA(1)>='\u115F' && input.LA(1)<='\u11A2')||(input.LA(1)>='\u11A8' && input.LA(1)<='\u11F9')||(input.LA(1)>='\u1200' && input.LA(1)<='\u1206')||(input.LA(1)>='\u1208' && input.LA(1)<='\u1246')||input.LA(1)=='\u1248'||(input.LA(1)>='\u124A' && input.LA(1)<='\u124D')||(input.LA(1)>='\u1250' && input.LA(1)<='\u1256')||input.LA(1)=='\u1258'||(input.LA(1)>='\u125A' && input.LA(1)<='\u125D')||(input.LA(1)>='\u1260' && input.LA(1)<='\u1286')||input.LA(1)=='\u1288'||(input.LA(1)>='\u128A' && input.LA(1)<='\u128D')||(input.LA(1)>='\u1290' && input.LA(1)<='\u12AE')||input.LA(1)=='\u12B0'||(input.LA(1)>='\u12B2' && input.LA(1)<='\u12B5')||(input.LA(1)>='\u12B8' && input.LA(1)<='\u12BE')||input.LA(1)=='\u12C0'||(input.LA(1)>='\u12C2' && input.LA(1)<='\u12C5')||(input.LA(1)>='\u12C8' && input.LA(1)<='\u12CE')||(input.LA(1)>='\u12D0' && input.LA(1)<='\u12D6')||(input.LA(1)>='\u12D8' && input.LA(1)<='\u12EE')||(input.LA(1)>='\u12F0' && input.LA(1)<='\u130E')||input.LA(1)=='\u1310'||(input.LA(1)>='\u1312' && input.LA(1)<='\u1315')||(input.LA(1)>='\u1318' && input.LA(1)<='\u131E')||(input.LA(1)>='\u1320' && input.LA(1)<='\u1346')||(input.LA(1)>='\u1348' && input.LA(1)<='\u135A')||(input.LA(1)>='\u13A0' && input.LA(1)<='\u13F4')||(input.LA(1)>='\u1401' && input.LA(1)<='\u166C')||(input.LA(1)>='\u166F' && input.LA(1)<='\u1676')||(input.LA(1)>='\u1681' && input.LA(1)<='\u169A')||(input.LA(1)>='\u16A0' && input.LA(1)<='\u16EA')||(input.LA(1)>='\u16EE' && input.LA(1)<='\u16F0')||(input.LA(1)>='\u1700' && input.LA(1)<='\u170C')||(input.LA(1)>='\u170E' && input.LA(1)<='\u1711')||(input.LA(1)>='\u1720' && input.LA(1)<='\u1731')||(input.LA(1)>='\u1740' && input.LA(1)<='\u1751')||(input.LA(1)>='\u1760' && input.LA(1)<='\u176C')||(input.LA(1)>='\u176E' && input.LA(1)<='\u1770')||(input.LA(1)>='\u1780' && input.LA(1)<='\u17B3')||input.LA(1)=='\u17D7'||(input.LA(1)>='\u17DB' && input.LA(1)<='\u17DC')||(input.LA(1)>='\u1820' && input.LA(1)<='\u1877')||(input.LA(1)>='\u1880' && input.LA(1)<='\u18A8')||(input.LA(1)>='\u1900' && input.LA(1)<='\u191C')||(input.LA(1)>='\u1950' && input.LA(1)<='\u196D')||(input.LA(1)>='\u1970' && input.LA(1)<='\u1974')||(input.LA(1)>='\u1D00' && input.LA(1)<='\u1D6B')||(input.LA(1)>='\u1E00' && input.LA(1)<='\u1E9B')||(input.LA(1)>='\u1EA0' && input.LA(1)<='\u1EF9')||(input.LA(1)>='\u1F00' && input.LA(1)<='\u1F15')||(input.LA(1)>='\u1F18' && input.LA(1)<='\u1F1D')||(input.LA(1)>='\u1F20' && input.LA(1)<='\u1F45')||(input.LA(1)>='\u1F48' && input.LA(1)<='\u1F4D')||(input.LA(1)>='\u1F50' && input.LA(1)<='\u1F57')||input.LA(1)=='\u1F59'||input.LA(1)=='\u1F5B'||input.LA(1)=='\u1F5D'||(input.LA(1)>='\u1F5F' && input.LA(1)<='\u1F7D')||(input.LA(1)>='\u1F80' && input.LA(1)<='\u1FB4')||(input.LA(1)>='\u1FB6' && input.LA(1)<='\u1FBC')||input.LA(1)=='\u1FBE'||(input.LA(1)>='\u1FC2' && input.LA(1)<='\u1FC4')||(input.LA(1)>='\u1FC6' && input.LA(1)<='\u1FCC')||(input.LA(1)>='\u1FD0' && input.LA(1)<='\u1FD3')||(input.LA(1)>='\u1FD6' && input.LA(1)<='\u1FDB')||(input.LA(1)>='\u1FE0' && input.LA(1)<='\u1FEC')||(input.LA(1)>='\u1FF2' && input.LA(1)<='\u1FF4')||(input.LA(1)>='\u1FF6' && input.LA(1)<='\u1FFC')||(input.LA(1)>='\u203F' && input.LA(1)<='\u2040')||input.LA(1)=='\u2054'||input.LA(1)=='\u2071'||input.LA(1)=='\u207F'||(input.LA(1)>='\u20A0' && input.LA(1)<='\u20B1')||input.LA(1)=='\u2102'||input.LA(1)=='\u2107'||(input.LA(1)>='\u210A' && input.LA(1)<='\u2113')||input.LA(1)=='\u2115'||(input.LA(1)>='\u2119' && input.LA(1)<='\u211D')||input.LA(1)=='\u2124'||input.LA(1)=='\u2126'||input.LA(1)=='\u2128'||(input.LA(1)>='\u212A' && input.LA(1)<='\u212D')||(input.LA(1)>='\u212F' && input.LA(1)<='\u2131')||(input.LA(1)>='\u2133' && input.LA(1)<='\u2139')||(input.LA(1)>='\u213D' && input.LA(1)<='\u213F')||(input.LA(1)>='\u2145' && input.LA(1)<='\u2149')||(input.LA(1)>='\u2160' && input.LA(1)<='\u2183')||(input.LA(1)>='\u3005' && input.LA(1)<='\u3007')||(input.LA(1)>='\u3021' && input.LA(1)<='\u3029')||(input.LA(1)>='\u3031' && input.LA(1)<='\u3035')||(input.LA(1)>='\u3038' && input.LA(1)<='\u303C')||(input.LA(1)>='\u3041' && input.LA(1)<='\u3096')||(input.LA(1)>='\u309D' && input.LA(1)<='\u309F')||(input.LA(1)>='\u30A1' && input.LA(1)<='\u30FF')||(input.LA(1)>='\u3105' && input.LA(1)<='\u312C')||(input.LA(1)>='\u3131' && input.LA(1)<='\u318E')||(input.LA(1)>='\u31A0' && input.LA(1)<='\u31B7')||(input.LA(1)>='\u31F0' && input.LA(1)<='\u31FF')||(input.LA(1)>='\u3400' && input.LA(1)<='\u4DB5')||(input.LA(1)>='\u4E00' && input.LA(1)<='\u9FA5')||(input.LA(1)>='\uA000' && input.LA(1)<='\uA48C')||(input.LA(1)>='\uAC00' && input.LA(1)<='\uD7A3')||(input.LA(1)>='\uF900' && input.LA(1)<='\uFA2D')||(input.LA(1)>='\uFA30' && input.LA(1)<='\uFA6A')||(input.LA(1)>='\uFB00' && input.LA(1)<='\uFB06')||(input.LA(1)>='\uFB13' && input.LA(1)<='\uFB17')||input.LA(1)=='\uFB1D'||(input.LA(1)>='\uFB1F' && input.LA(1)<='\uFB28')||(input.LA(1)>='\uFB2A' && input.LA(1)<='\uFB36')||(input.LA(1)>='\uFB38' && input.LA(1)<='\uFB3C')||input.LA(1)=='\uFB3E'||(input.LA(1)>='\uFB40' && input.LA(1)<='\uFB41')||(input.LA(1)>='\uFB43' && input.LA(1)<='\uFB44')||(input.LA(1)>='\uFB46' && input.LA(1)<='\uFBB1')||(input.LA(1)>='\uFBD3' && input.LA(1)<='\uFD3D')||(input.LA(1)>='\uFD50' && input.LA(1)<='\uFD8F')||(input.LA(1)>='\uFD92' && input.LA(1)<='\uFDC7')||(input.LA(1)>='\uFDF0' && input.LA(1)<='\uFDFC')||(input.LA(1)>='\uFE33' && input.LA(1)<='\uFE34')||(input.LA(1)>='\uFE4D' && input.LA(1)<='\uFE4F')||input.LA(1)=='\uFE69'||(input.LA(1)>='\uFE70' && input.LA(1)<='\uFE74')||(input.LA(1)>='\uFE76' && input.LA(1)<='\uFEFC')||input.LA(1)=='\uFF04'||(input.LA(1)>='\uFF08' && input.LA(1)<='\uFF09')||input.LA(1)=='\uFF1A'||(input.LA(1)>='\uFF21' && input.LA(1)<='\uFF3A')||input.LA(1)=='\uFF3F'||(input.LA(1)>='\uFF41' && input.LA(1)<='\uFF5A')||(input.LA(1)>='\uFF65' && input.LA(1)<='\uFFBE')||(input.LA(1)>='\uFFC2' && input.LA(1)<='\uFFC7')||(input.LA(1)>='\uFFCA' && input.LA(1)<='\uFFCF')||(input.LA(1)>='\uFFD2' && input.LA(1)<='\uFFD7')||(input.LA(1)>='\uFFDA' && input.LA(1)<='\uFFDC')||(input.LA(1)>='\uFFE0' && input.LA(1)<='\uFFE1')||(input.LA(1)>='\uFFE5' && input.LA(1)<='\uFFE6') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_IDENTIFIER_START_IMPL"
+
+ // $ANTLR start "RULE_IDENTIFIER_PART_IMPL"
+ public final void mRULE_IDENTIFIER_PART_IMPL() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:10285:36: ( ( '\\u0000' .. '\\b' | '\\u000E' .. '\\u001B' | '\\u007F' .. '\\u009F' | '\\u00AD' | '\\u3001' .. '\\u3002' | '\\u0300' .. '\\u0357' | '\\u035D' .. '\\u036F' | '\\u0483' .. '\\u0486' | '\\u0591' .. '\\u05A1' | '\\u05A3' .. '\\u05B9' | '\\u05BB' .. '\\u05BD' | '\\u05BF' | '\\u05C1' .. '\\u05C2' | '\\u05C4' | '\\u0600' .. '\\u0603' | '\\u0610' .. '\\u0615' | '\\u064B' .. '\\u0658' | '\\u0660' .. '\\u0669' | '\\u0670' | '\\u06D6' .. '\\u06DD' | '\\u06DF' .. '\\u06E4' | '\\u06E7' .. '\\u06E8' | '\\u06EA' .. '\\u06ED' | '\\u06F0' .. '\\u06F9' | '\\u070F' | '\\u0711' | '\\u0730' .. '\\u074A' | '\\u07A6' .. '\\u07B0' | '\\u0901' .. '\\u0903' | '\\u093C' | '\\u093E' .. '\\u094D' | '\\u0951' .. '\\u0954' | '\\u0962' .. '\\u0963' | '\\u0966' .. '\\u096F' | '\\u0981' .. '\\u0983' | '\\u09BC' | '\\u09BE' .. '\\u09C4' | '\\u09C7' .. '\\u09C8' | '\\u09CB' .. '\\u09CD' | '\\u09D7' | '\\u09E2' .. '\\u09E3' | '\\u09E6' .. '\\u09EF' | '\\u0A01' .. '\\u0A03' | '\\u0A3C' | '\\u0A3E' .. '\\u0A42' | '\\u0A47' .. '\\u0A48' | '\\u0A4B' .. '\\u0A4D' | '\\u0A66' .. '\\u0A71' | '\\u0A81' .. '\\u0A83' | '\\u0ABC' | '\\u0ABE' .. '\\u0AC5' | '\\u0AC7' .. '\\u0AC9' | '\\u0ACB' .. '\\u0ACD' | '\\u0AE2' .. '\\u0AE3' | '\\u0AE6' .. '\\u0AEF' | '\\u0B01' .. '\\u0B03' | '\\u0B3C' | '\\u0B3E' .. '\\u0B43' | '\\u0B47' .. '\\u0B48' | '\\u0B4B' .. '\\u0B4D' | '\\u0B56' .. '\\u0B57' | '\\u0B66' .. '\\u0B6F' | '\\u0B82' | '\\u0BBE' .. '\\u0BC2' | '\\u0BC6' .. '\\u0BC8' | '\\u0BCA' .. '\\u0BCD' | '\\u0BD7' | '\\u0BE7' .. '\\u0BEF' | '\\u0C01' .. '\\u0C03' | '\\u0C3E' .. '\\u0C44' | '\\u0C46' .. '\\u0C48' | '\\u0C4A' .. '\\u0C4D' | '\\u0C55' .. '\\u0C56' | '\\u0C66' .. '\\u0C6F' | '\\u0C82' .. '\\u0C83' | '\\u0CBC' | '\\u0CBE' .. '\\u0CC4' | '\\u0CC6' .. '\\u0CC8' | '\\u0CCA' .. '\\u0CCD' | '\\u0CD5' .. '\\u0CD6' | '\\u0CE6' .. '\\u0CEF' | '\\u0D02' .. '\\u0D03' | '\\u0D3E' .. '\\u0D43' | '\\u0D46' .. '\\u0D48' | '\\u0D4A' .. '\\u0D4D' | '\\u0D57' | '\\u0D66' .. '\\u0D6F' | '\\u0D82' .. '\\u0D83' | '\\u0DCA' | '\\u0DCF' .. '\\u0DD4' | '\\u0DD6' | '\\u0DD8' .. '\\u0DDF' | '\\u0DF2' .. '\\u0DF3' | '\\u0E31' | '\\u0E34' .. '\\u0E3A' | '\\u0E47' .. '\\u0E4E' | '\\u0E50' .. '\\u0E59' | '\\u0EB1' | '\\u0EB4' .. '\\u0EB9' | '\\u0EBB' .. '\\u0EBC' | '\\u0EC8' .. '\\u0ECD' | '\\u0ED0' .. '\\u0ED9' | '\\u0F18' .. '\\u0F19' | '\\u0F20' .. '\\u0F29' | '\\u0F35' | '\\u0F37' | '\\u0F39' | '\\u0F3E' .. '\\u0F3F' | '\\u0F71' .. '\\u0F84' | '\\u0F86' .. '\\u0F87' | '\\u0F90' .. '\\u0F97' | '\\u0F99' .. '\\u0FBC' | '\\u0FC6' | '\\u102C' .. '\\u1032' | '\\u1036' .. '\\u1039' | '\\u1040' .. '\\u1049' | '\\u1056' .. '\\u1059' | '\\u1369' .. '\\u1371' | '\\u1712' .. '\\u1714' | '\\u1732' .. '\\u1734' | '\\u1752' .. '\\u1753' | '\\u1772' .. '\\u1773' | '\\u17B4' .. '\\u17D3' | '\\u17DD' | '\\u17E0' .. '\\u17E9' | '\\u180B' .. '\\u180D' | '\\u1810' .. '\\u1819' | '\\u18A9' | '\\u1920' .. '\\u192B' | '\\u1930' .. '\\u193B' | '\\u1946' .. '\\u194F' | '\\u200C' .. '\\u200F' | '\\u202A' .. '\\u202E' | '\\u2060' .. '\\u2063' | '\\u206A' .. '\\u206F' | '\\u20D0' .. '\\u20DC' | '\\u20E1' | '\\u20E5' .. '\\u20EA' | '\\u302A' .. '\\u302F' | '\\u3099' .. '\\u309A' | '\\uFB1E' | '\\uFE00' .. '\\uFE0F' | '\\uFE20' .. '\\uFE23' | '\\uFEFF' | '\\uFF10' .. '\\uFF19' | '\\uFFF9' .. '\\uFFFB' ) )
+ // InternalRBAModel.g:10285:38: ( '\\u0000' .. '\\b' | '\\u000E' .. '\\u001B' | '\\u007F' .. '\\u009F' | '\\u00AD' | '\\u3001' .. '\\u3002' | '\\u0300' .. '\\u0357' | '\\u035D' .. '\\u036F' | '\\u0483' .. '\\u0486' | '\\u0591' .. '\\u05A1' | '\\u05A3' .. '\\u05B9' | '\\u05BB' .. '\\u05BD' | '\\u05BF' | '\\u05C1' .. '\\u05C2' | '\\u05C4' | '\\u0600' .. '\\u0603' | '\\u0610' .. '\\u0615' | '\\u064B' .. '\\u0658' | '\\u0660' .. '\\u0669' | '\\u0670' | '\\u06D6' .. '\\u06DD' | '\\u06DF' .. '\\u06E4' | '\\u06E7' .. '\\u06E8' | '\\u06EA' .. '\\u06ED' | '\\u06F0' .. '\\u06F9' | '\\u070F' | '\\u0711' | '\\u0730' .. '\\u074A' | '\\u07A6' .. '\\u07B0' | '\\u0901' .. '\\u0903' | '\\u093C' | '\\u093E' .. '\\u094D' | '\\u0951' .. '\\u0954' | '\\u0962' .. '\\u0963' | '\\u0966' .. '\\u096F' | '\\u0981' .. '\\u0983' | '\\u09BC' | '\\u09BE' .. '\\u09C4' | '\\u09C7' .. '\\u09C8' | '\\u09CB' .. '\\u09CD' | '\\u09D7' | '\\u09E2' .. '\\u09E3' | '\\u09E6' .. '\\u09EF' | '\\u0A01' .. '\\u0A03' | '\\u0A3C' | '\\u0A3E' .. '\\u0A42' | '\\u0A47' .. '\\u0A48' | '\\u0A4B' .. '\\u0A4D' | '\\u0A66' .. '\\u0A71' | '\\u0A81' .. '\\u0A83' | '\\u0ABC' | '\\u0ABE' .. '\\u0AC5' | '\\u0AC7' .. '\\u0AC9' | '\\u0ACB' .. '\\u0ACD' | '\\u0AE2' .. '\\u0AE3' | '\\u0AE6' .. '\\u0AEF' | '\\u0B01' .. '\\u0B03' | '\\u0B3C' | '\\u0B3E' .. '\\u0B43' | '\\u0B47' .. '\\u0B48' | '\\u0B4B' .. '\\u0B4D' | '\\u0B56' .. '\\u0B57' | '\\u0B66' .. '\\u0B6F' | '\\u0B82' | '\\u0BBE' .. '\\u0BC2' | '\\u0BC6' .. '\\u0BC8' | '\\u0BCA' .. '\\u0BCD' | '\\u0BD7' | '\\u0BE7' .. '\\u0BEF' | '\\u0C01' .. '\\u0C03' | '\\u0C3E' .. '\\u0C44' | '\\u0C46' .. '\\u0C48' | '\\u0C4A' .. '\\u0C4D' | '\\u0C55' .. '\\u0C56' | '\\u0C66' .. '\\u0C6F' | '\\u0C82' .. '\\u0C83' | '\\u0CBC' | '\\u0CBE' .. '\\u0CC4' | '\\u0CC6' .. '\\u0CC8' | '\\u0CCA' .. '\\u0CCD' | '\\u0CD5' .. '\\u0CD6' | '\\u0CE6' .. '\\u0CEF' | '\\u0D02' .. '\\u0D03' | '\\u0D3E' .. '\\u0D43' | '\\u0D46' .. '\\u0D48' | '\\u0D4A' .. '\\u0D4D' | '\\u0D57' | '\\u0D66' .. '\\u0D6F' | '\\u0D82' .. '\\u0D83' | '\\u0DCA' | '\\u0DCF' .. '\\u0DD4' | '\\u0DD6' | '\\u0DD8' .. '\\u0DDF' | '\\u0DF2' .. '\\u0DF3' | '\\u0E31' | '\\u0E34' .. '\\u0E3A' | '\\u0E47' .. '\\u0E4E' | '\\u0E50' .. '\\u0E59' | '\\u0EB1' | '\\u0EB4' .. '\\u0EB9' | '\\u0EBB' .. '\\u0EBC' | '\\u0EC8' .. '\\u0ECD' | '\\u0ED0' .. '\\u0ED9' | '\\u0F18' .. '\\u0F19' | '\\u0F20' .. '\\u0F29' | '\\u0F35' | '\\u0F37' | '\\u0F39' | '\\u0F3E' .. '\\u0F3F' | '\\u0F71' .. '\\u0F84' | '\\u0F86' .. '\\u0F87' | '\\u0F90' .. '\\u0F97' | '\\u0F99' .. '\\u0FBC' | '\\u0FC6' | '\\u102C' .. '\\u1032' | '\\u1036' .. '\\u1039' | '\\u1040' .. '\\u1049' | '\\u1056' .. '\\u1059' | '\\u1369' .. '\\u1371' | '\\u1712' .. '\\u1714' | '\\u1732' .. '\\u1734' | '\\u1752' .. '\\u1753' | '\\u1772' .. '\\u1773' | '\\u17B4' .. '\\u17D3' | '\\u17DD' | '\\u17E0' .. '\\u17E9' | '\\u180B' .. '\\u180D' | '\\u1810' .. '\\u1819' | '\\u18A9' | '\\u1920' .. '\\u192B' | '\\u1930' .. '\\u193B' | '\\u1946' .. '\\u194F' | '\\u200C' .. '\\u200F' | '\\u202A' .. '\\u202E' | '\\u2060' .. '\\u2063' | '\\u206A' .. '\\u206F' | '\\u20D0' .. '\\u20DC' | '\\u20E1' | '\\u20E5' .. '\\u20EA' | '\\u302A' .. '\\u302F' | '\\u3099' .. '\\u309A' | '\\uFB1E' | '\\uFE00' .. '\\uFE0F' | '\\uFE20' .. '\\uFE23' | '\\uFEFF' | '\\uFF10' .. '\\uFF19' | '\\uFFF9' .. '\\uFFFB' )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='\b')||(input.LA(1)>='\u000E' && input.LA(1)<='\u001B')||(input.LA(1)>='\u007F' && input.LA(1)<='\u009F')||input.LA(1)=='\u00AD'||(input.LA(1)>='\u0300' && input.LA(1)<='\u0357')||(input.LA(1)>='\u035D' && input.LA(1)<='\u036F')||(input.LA(1)>='\u0483' && input.LA(1)<='\u0486')||(input.LA(1)>='\u0591' && input.LA(1)<='\u05A1')||(input.LA(1)>='\u05A3' && input.LA(1)<='\u05B9')||(input.LA(1)>='\u05BB' && input.LA(1)<='\u05BD')||input.LA(1)=='\u05BF'||(input.LA(1)>='\u05C1' && input.LA(1)<='\u05C2')||input.LA(1)=='\u05C4'||(input.LA(1)>='\u0600' && input.LA(1)<='\u0603')||(input.LA(1)>='\u0610' && input.LA(1)<='\u0615')||(input.LA(1)>='\u064B' && input.LA(1)<='\u0658')||(input.LA(1)>='\u0660' && input.LA(1)<='\u0669')||input.LA(1)=='\u0670'||(input.LA(1)>='\u06D6' && input.LA(1)<='\u06DD')||(input.LA(1)>='\u06DF' && input.LA(1)<='\u06E4')||(input.LA(1)>='\u06E7' && input.LA(1)<='\u06E8')||(input.LA(1)>='\u06EA' && input.LA(1)<='\u06ED')||(input.LA(1)>='\u06F0' && input.LA(1)<='\u06F9')||input.LA(1)=='\u070F'||input.LA(1)=='\u0711'||(input.LA(1)>='\u0730' && input.LA(1)<='\u074A')||(input.LA(1)>='\u07A6' && input.LA(1)<='\u07B0')||(input.LA(1)>='\u0901' && input.LA(1)<='\u0903')||input.LA(1)=='\u093C'||(input.LA(1)>='\u093E' && input.LA(1)<='\u094D')||(input.LA(1)>='\u0951' && input.LA(1)<='\u0954')||(input.LA(1)>='\u0962' && input.LA(1)<='\u0963')||(input.LA(1)>='\u0966' && input.LA(1)<='\u096F')||(input.LA(1)>='\u0981' && input.LA(1)<='\u0983')||input.LA(1)=='\u09BC'||(input.LA(1)>='\u09BE' && input.LA(1)<='\u09C4')||(input.LA(1)>='\u09C7' && input.LA(1)<='\u09C8')||(input.LA(1)>='\u09CB' && input.LA(1)<='\u09CD')||input.LA(1)=='\u09D7'||(input.LA(1)>='\u09E2' && input.LA(1)<='\u09E3')||(input.LA(1)>='\u09E6' && input.LA(1)<='\u09EF')||(input.LA(1)>='\u0A01' && input.LA(1)<='\u0A03')||input.LA(1)=='\u0A3C'||(input.LA(1)>='\u0A3E' && input.LA(1)<='\u0A42')||(input.LA(1)>='\u0A47' && input.LA(1)<='\u0A48')||(input.LA(1)>='\u0A4B' && input.LA(1)<='\u0A4D')||(input.LA(1)>='\u0A66' && input.LA(1)<='\u0A71')||(input.LA(1)>='\u0A81' && input.LA(1)<='\u0A83')||input.LA(1)=='\u0ABC'||(input.LA(1)>='\u0ABE' && input.LA(1)<='\u0AC5')||(input.LA(1)>='\u0AC7' && input.LA(1)<='\u0AC9')||(input.LA(1)>='\u0ACB' && input.LA(1)<='\u0ACD')||(input.LA(1)>='\u0AE2' && input.LA(1)<='\u0AE3')||(input.LA(1)>='\u0AE6' && input.LA(1)<='\u0AEF')||(input.LA(1)>='\u0B01' && input.LA(1)<='\u0B03')||input.LA(1)=='\u0B3C'||(input.LA(1)>='\u0B3E' && input.LA(1)<='\u0B43')||(input.LA(1)>='\u0B47' && input.LA(1)<='\u0B48')||(input.LA(1)>='\u0B4B' && input.LA(1)<='\u0B4D')||(input.LA(1)>='\u0B56' && input.LA(1)<='\u0B57')||(input.LA(1)>='\u0B66' && input.LA(1)<='\u0B6F')||input.LA(1)=='\u0B82'||(input.LA(1)>='\u0BBE' && input.LA(1)<='\u0BC2')||(input.LA(1)>='\u0BC6' && input.LA(1)<='\u0BC8')||(input.LA(1)>='\u0BCA' && input.LA(1)<='\u0BCD')||input.LA(1)=='\u0BD7'||(input.LA(1)>='\u0BE7' && input.LA(1)<='\u0BEF')||(input.LA(1)>='\u0C01' && input.LA(1)<='\u0C03')||(input.LA(1)>='\u0C3E' && input.LA(1)<='\u0C44')||(input.LA(1)>='\u0C46' && input.LA(1)<='\u0C48')||(input.LA(1)>='\u0C4A' && input.LA(1)<='\u0C4D')||(input.LA(1)>='\u0C55' && input.LA(1)<='\u0C56')||(input.LA(1)>='\u0C66' && input.LA(1)<='\u0C6F')||(input.LA(1)>='\u0C82' && input.LA(1)<='\u0C83')||input.LA(1)=='\u0CBC'||(input.LA(1)>='\u0CBE' && input.LA(1)<='\u0CC4')||(input.LA(1)>='\u0CC6' && input.LA(1)<='\u0CC8')||(input.LA(1)>='\u0CCA' && input.LA(1)<='\u0CCD')||(input.LA(1)>='\u0CD5' && input.LA(1)<='\u0CD6')||(input.LA(1)>='\u0CE6' && input.LA(1)<='\u0CEF')||(input.LA(1)>='\u0D02' && input.LA(1)<='\u0D03')||(input.LA(1)>='\u0D3E' && input.LA(1)<='\u0D43')||(input.LA(1)>='\u0D46' && input.LA(1)<='\u0D48')||(input.LA(1)>='\u0D4A' && input.LA(1)<='\u0D4D')||input.LA(1)=='\u0D57'||(input.LA(1)>='\u0D66' && input.LA(1)<='\u0D6F')||(input.LA(1)>='\u0D82' && input.LA(1)<='\u0D83')||input.LA(1)=='\u0DCA'||(input.LA(1)>='\u0DCF' && input.LA(1)<='\u0DD4')||input.LA(1)=='\u0DD6'||(input.LA(1)>='\u0DD8' && input.LA(1)<='\u0DDF')||(input.LA(1)>='\u0DF2' && input.LA(1)<='\u0DF3')||input.LA(1)=='\u0E31'||(input.LA(1)>='\u0E34' && input.LA(1)<='\u0E3A')||(input.LA(1)>='\u0E47' && input.LA(1)<='\u0E4E')||(input.LA(1)>='\u0E50' && input.LA(1)<='\u0E59')||input.LA(1)=='\u0EB1'||(input.LA(1)>='\u0EB4' && input.LA(1)<='\u0EB9')||(input.LA(1)>='\u0EBB' && input.LA(1)<='\u0EBC')||(input.LA(1)>='\u0EC8' && input.LA(1)<='\u0ECD')||(input.LA(1)>='\u0ED0' && input.LA(1)<='\u0ED9')||(input.LA(1)>='\u0F18' && input.LA(1)<='\u0F19')||(input.LA(1)>='\u0F20' && input.LA(1)<='\u0F29')||input.LA(1)=='\u0F35'||input.LA(1)=='\u0F37'||input.LA(1)=='\u0F39'||(input.LA(1)>='\u0F3E' && input.LA(1)<='\u0F3F')||(input.LA(1)>='\u0F71' && input.LA(1)<='\u0F84')||(input.LA(1)>='\u0F86' && input.LA(1)<='\u0F87')||(input.LA(1)>='\u0F90' && input.LA(1)<='\u0F97')||(input.LA(1)>='\u0F99' && input.LA(1)<='\u0FBC')||input.LA(1)=='\u0FC6'||(input.LA(1)>='\u102C' && input.LA(1)<='\u1032')||(input.LA(1)>='\u1036' && input.LA(1)<='\u1039')||(input.LA(1)>='\u1040' && input.LA(1)<='\u1049')||(input.LA(1)>='\u1056' && input.LA(1)<='\u1059')||(input.LA(1)>='\u1369' && input.LA(1)<='\u1371')||(input.LA(1)>='\u1712' && input.LA(1)<='\u1714')||(input.LA(1)>='\u1732' && input.LA(1)<='\u1734')||(input.LA(1)>='\u1752' && input.LA(1)<='\u1753')||(input.LA(1)>='\u1772' && input.LA(1)<='\u1773')||(input.LA(1)>='\u17B4' && input.LA(1)<='\u17D3')||input.LA(1)=='\u17DD'||(input.LA(1)>='\u17E0' && input.LA(1)<='\u17E9')||(input.LA(1)>='\u180B' && input.LA(1)<='\u180D')||(input.LA(1)>='\u1810' && input.LA(1)<='\u1819')||input.LA(1)=='\u18A9'||(input.LA(1)>='\u1920' && input.LA(1)<='\u192B')||(input.LA(1)>='\u1930' && input.LA(1)<='\u193B')||(input.LA(1)>='\u1946' && input.LA(1)<='\u194F')||(input.LA(1)>='\u200C' && input.LA(1)<='\u200F')||(input.LA(1)>='\u202A' && input.LA(1)<='\u202E')||(input.LA(1)>='\u2060' && input.LA(1)<='\u2063')||(input.LA(1)>='\u206A' && input.LA(1)<='\u206F')||(input.LA(1)>='\u20D0' && input.LA(1)<='\u20DC')||input.LA(1)=='\u20E1'||(input.LA(1)>='\u20E5' && input.LA(1)<='\u20EA')||(input.LA(1)>='\u3001' && input.LA(1)<='\u3002')||(input.LA(1)>='\u302A' && input.LA(1)<='\u302F')||(input.LA(1)>='\u3099' && input.LA(1)<='\u309A')||input.LA(1)=='\uFB1E'||(input.LA(1)>='\uFE00' && input.LA(1)<='\uFE0F')||(input.LA(1)>='\uFE20' && input.LA(1)<='\uFE23')||input.LA(1)=='\uFEFF'||(input.LA(1)>='\uFF10' && input.LA(1)<='\uFF19')||(input.LA(1)>='\uFFF9' && input.LA(1)<='\uFFFB') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_IDENTIFIER_PART_IMPL"
+
+ // $ANTLR start "RULE_IDENTIFIER_DIGITS"
+ public final void mRULE_IDENTIFIER_DIGITS() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:10287:33: ( '0' .. '9' )
+ // InternalRBAModel.g:10287:35: '0' .. '9'
+ {
+ matchRange('0','9');
+
+ }
+
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_IDENTIFIER_DIGITS"
+
+ // $ANTLR start "RULE_HEX_DIGIT"
+ public final void mRULE_HEX_DIGIT() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:10289:25: ( ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) )
+ // InternalRBAModel.g:10289:27: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )
+ {
+ 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;}
+
+
+ }
+
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_HEX_DIGIT"
+
+ // $ANTLR start "RULE_UNICODE_ESCAPE"
+ public final void mRULE_UNICODE_ESCAPE() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:10291:30: ( '\\\\' 'u' ( RULE_HEX_DIGIT ( RULE_HEX_DIGIT ( RULE_HEX_DIGIT ( RULE_HEX_DIGIT )? )? )? )? )
+ // InternalRBAModel.g:10291:32: '\\\\' 'u' ( RULE_HEX_DIGIT ( RULE_HEX_DIGIT ( RULE_HEX_DIGIT ( RULE_HEX_DIGIT )? )? )? )?
+ {
+ match('\\');
+ match('u');
+ // InternalRBAModel.g:10291:41: ( RULE_HEX_DIGIT ( RULE_HEX_DIGIT ( RULE_HEX_DIGIT ( RULE_HEX_DIGIT )? )? )? )?
+ int alt6=2;
+ int LA6_0 = input.LA(1);
+
+ if ( ((LA6_0>='0' && LA6_0<='9')||(LA6_0>='A' && LA6_0<='F')||(LA6_0>='a' && LA6_0<='f')) ) {
+ alt6=1;
+ }
+ switch (alt6) {
+ case 1 :
+ // InternalRBAModel.g:10291:42: RULE_HEX_DIGIT ( RULE_HEX_DIGIT ( RULE_HEX_DIGIT ( RULE_HEX_DIGIT )? )? )?
+ {
+ mRULE_HEX_DIGIT();
+ // InternalRBAModel.g:10291:57: ( RULE_HEX_DIGIT ( RULE_HEX_DIGIT ( RULE_HEX_DIGIT )? )? )?
+ int alt5=2;
+ int LA5_0 = input.LA(1);
+
+ if ( ((LA5_0>='0' && LA5_0<='9')||(LA5_0>='A' && LA5_0<='F')||(LA5_0>='a' && LA5_0<='f')) ) {
+ alt5=1;
+ }
+ switch (alt5) {
+ case 1 :
+ // InternalRBAModel.g:10291:58: RULE_HEX_DIGIT ( RULE_HEX_DIGIT ( RULE_HEX_DIGIT )? )?
+ {
+ mRULE_HEX_DIGIT();
+ // InternalRBAModel.g:10291:73: ( RULE_HEX_DIGIT ( RULE_HEX_DIGIT )? )?
+ int alt4=2;
+ int LA4_0 = input.LA(1);
+
+ if ( ((LA4_0>='0' && LA4_0<='9')||(LA4_0>='A' && LA4_0<='F')||(LA4_0>='a' && LA4_0<='f')) ) {
+ alt4=1;
+ }
+ switch (alt4) {
+ case 1 :
+ // InternalRBAModel.g:10291:74: RULE_HEX_DIGIT ( RULE_HEX_DIGIT )?
+ {
+ mRULE_HEX_DIGIT();
+ // InternalRBAModel.g:10291:89: ( RULE_HEX_DIGIT )?
+ int alt3=2;
+ int LA3_0 = input.LA(1);
+
+ if ( ((LA3_0>='0' && LA3_0<='9')||(LA3_0>='A' && LA3_0<='F')||(LA3_0>='a' && LA3_0<='f')) ) {
+ alt3=1;
+ }
+ switch (alt3) {
+ case 1 :
+ // InternalRBAModel.g:10291:89: RULE_HEX_DIGIT
+ {
+ mRULE_HEX_DIGIT();
+
+ }
+ break;
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_UNICODE_ESCAPE"
+
+ // $ANTLR start "RULE_IDENTIFIER_PART"
+ public final void mRULE_IDENTIFIER_PART() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:10293:31: ( ( RULE_IDENTIFIER_START_IMPL | RULE_IDENTIFIER_DIGITS | RULE_IDENTIFIER_PART_IMPL ) )
+ // InternalRBAModel.g:10293:33: ( RULE_IDENTIFIER_START_IMPL | RULE_IDENTIFIER_DIGITS | RULE_IDENTIFIER_PART_IMPL )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='\b')||(input.LA(1)>='\u000E' && input.LA(1)<='\u001B')||input.LA(1)=='$'||(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.LA(1)>='\u007F' && input.LA(1)<='\u009F')||(input.LA(1)>='\u00A2' && input.LA(1)<='\u00A5')||input.LA(1)=='\u00AA'||input.LA(1)=='\u00AD'||input.LA(1)=='\u00B5'||input.LA(1)=='\u00BA'||(input.LA(1)>='\u00C0' && input.LA(1)<='\u00D6')||(input.LA(1)>='\u00D8' && input.LA(1)<='\u00F6')||(input.LA(1)>='\u00F8' && input.LA(1)<='\u0236')||(input.LA(1)>='\u0250' && input.LA(1)<='\u02C1')||(input.LA(1)>='\u02C6' && input.LA(1)<='\u02D1')||(input.LA(1)>='\u02E0' && input.LA(1)<='\u02E4')||input.LA(1)=='\u02EE'||(input.LA(1)>='\u0300' && input.LA(1)<='\u0357')||(input.LA(1)>='\u035D' && input.LA(1)<='\u036F')||input.LA(1)=='\u037A'||input.LA(1)=='\u0386'||(input.LA(1)>='\u0388' && input.LA(1)<='\u038A')||input.LA(1)=='\u038C'||(input.LA(1)>='\u038E' && input.LA(1)<='\u03A1')||(input.LA(1)>='\u03A3' && input.LA(1)<='\u03CE')||(input.LA(1)>='\u03D0' && input.LA(1)<='\u03F5')||(input.LA(1)>='\u03F7' && input.LA(1)<='\u03FB')||(input.LA(1)>='\u0400' && input.LA(1)<='\u0481')||(input.LA(1)>='\u0483' && input.LA(1)<='\u0486')||(input.LA(1)>='\u048A' && input.LA(1)<='\u04CE')||(input.LA(1)>='\u04D0' && input.LA(1)<='\u04F5')||(input.LA(1)>='\u04F8' && input.LA(1)<='\u04F9')||(input.LA(1)>='\u0500' && input.LA(1)<='\u050F')||(input.LA(1)>='\u0531' && input.LA(1)<='\u0556')||input.LA(1)=='\u0559'||(input.LA(1)>='\u0561' && input.LA(1)<='\u0587')||(input.LA(1)>='\u0591' && input.LA(1)<='\u05A1')||(input.LA(1)>='\u05A3' && input.LA(1)<='\u05B9')||(input.LA(1)>='\u05BB' && input.LA(1)<='\u05BD')||input.LA(1)=='\u05BF'||(input.LA(1)>='\u05C1' && input.LA(1)<='\u05C2')||input.LA(1)=='\u05C4'||(input.LA(1)>='\u05D0' && input.LA(1)<='\u05EA')||(input.LA(1)>='\u05F0' && input.LA(1)<='\u05F2')||(input.LA(1)>='\u0600' && input.LA(1)<='\u0603')||(input.LA(1)>='\u0610' && input.LA(1)<='\u0615')||(input.LA(1)>='\u0621' && input.LA(1)<='\u063A')||(input.LA(1)>='\u0640' && input.LA(1)<='\u0658')||(input.LA(1)>='\u0660' && input.LA(1)<='\u0669')||(input.LA(1)>='\u066E' && input.LA(1)<='\u06D3')||(input.LA(1)>='\u06D5' && input.LA(1)<='\u06DD')||(input.LA(1)>='\u06DF' && input.LA(1)<='\u06E8')||(input.LA(1)>='\u06EA' && input.LA(1)<='\u06FC')||input.LA(1)=='\u06FF'||(input.LA(1)>='\u070F' && input.LA(1)<='\u074A')||(input.LA(1)>='\u074D' && input.LA(1)<='\u074F')||(input.LA(1)>='\u0780' && input.LA(1)<='\u07B1')||(input.LA(1)>='\u0901' && input.LA(1)<='\u0939')||(input.LA(1)>='\u093C' && input.LA(1)<='\u094D')||(input.LA(1)>='\u0950' && input.LA(1)<='\u0954')||(input.LA(1)>='\u0958' && input.LA(1)<='\u0963')||(input.LA(1)>='\u0966' && input.LA(1)<='\u096F')||(input.LA(1)>='\u0981' && input.LA(1)<='\u0983')||(input.LA(1)>='\u0985' && input.LA(1)<='\u098C')||(input.LA(1)>='\u098F' && input.LA(1)<='\u0990')||(input.LA(1)>='\u0993' && input.LA(1)<='\u09A8')||(input.LA(1)>='\u09AA' && input.LA(1)<='\u09B0')||input.LA(1)=='\u09B2'||(input.LA(1)>='\u09B6' && input.LA(1)<='\u09B9')||(input.LA(1)>='\u09BC' && input.LA(1)<='\u09C4')||(input.LA(1)>='\u09C7' && input.LA(1)<='\u09C8')||(input.LA(1)>='\u09CB' && input.LA(1)<='\u09CD')||input.LA(1)=='\u09D7'||(input.LA(1)>='\u09DC' && input.LA(1)<='\u09DD')||(input.LA(1)>='\u09DF' && input.LA(1)<='\u09E3')||(input.LA(1)>='\u09E6' && input.LA(1)<='\u09F3')||(input.LA(1)>='\u0A01' && input.LA(1)<='\u0A03')||(input.LA(1)>='\u0A05' && input.LA(1)<='\u0A0A')||(input.LA(1)>='\u0A0F' && input.LA(1)<='\u0A10')||(input.LA(1)>='\u0A13' && input.LA(1)<='\u0A28')||(input.LA(1)>='\u0A2A' && input.LA(1)<='\u0A30')||(input.LA(1)>='\u0A32' && input.LA(1)<='\u0A33')||(input.LA(1)>='\u0A35' && input.LA(1)<='\u0A36')||(input.LA(1)>='\u0A38' && input.LA(1)<='\u0A39')||input.LA(1)=='\u0A3C'||(input.LA(1)>='\u0A3E' && input.LA(1)<='\u0A42')||(input.LA(1)>='\u0A47' && input.LA(1)<='\u0A48')||(input.LA(1)>='\u0A4B' && input.LA(1)<='\u0A4D')||(input.LA(1)>='\u0A59' && input.LA(1)<='\u0A5C')||input.LA(1)=='\u0A5E'||(input.LA(1)>='\u0A66' && input.LA(1)<='\u0A74')||(input.LA(1)>='\u0A81' && input.LA(1)<='\u0A83')||(input.LA(1)>='\u0A85' && input.LA(1)<='\u0A8D')||(input.LA(1)>='\u0A8F' && input.LA(1)<='\u0A91')||(input.LA(1)>='\u0A93' && input.LA(1)<='\u0AA8')||(input.LA(1)>='\u0AAA' && input.LA(1)<='\u0AB0')||(input.LA(1)>='\u0AB2' && input.LA(1)<='\u0AB3')||(input.LA(1)>='\u0AB5' && input.LA(1)<='\u0AB9')||(input.LA(1)>='\u0ABC' && input.LA(1)<='\u0AC5')||(input.LA(1)>='\u0AC7' && input.LA(1)<='\u0AC9')||(input.LA(1)>='\u0ACB' && input.LA(1)<='\u0ACD')||input.LA(1)=='\u0AD0'||(input.LA(1)>='\u0AE0' && input.LA(1)<='\u0AE3')||(input.LA(1)>='\u0AE6' && input.LA(1)<='\u0AEF')||input.LA(1)=='\u0AF1'||(input.LA(1)>='\u0B01' && input.LA(1)<='\u0B03')||(input.LA(1)>='\u0B05' && input.LA(1)<='\u0B0C')||(input.LA(1)>='\u0B0F' && input.LA(1)<='\u0B10')||(input.LA(1)>='\u0B13' && input.LA(1)<='\u0B28')||(input.LA(1)>='\u0B2A' && input.LA(1)<='\u0B30')||(input.LA(1)>='\u0B32' && input.LA(1)<='\u0B33')||(input.LA(1)>='\u0B35' && input.LA(1)<='\u0B39')||(input.LA(1)>='\u0B3C' && input.LA(1)<='\u0B43')||(input.LA(1)>='\u0B47' && input.LA(1)<='\u0B48')||(input.LA(1)>='\u0B4B' && input.LA(1)<='\u0B4D')||(input.LA(1)>='\u0B56' && input.LA(1)<='\u0B57')||(input.LA(1)>='\u0B5C' && input.LA(1)<='\u0B5D')||(input.LA(1)>='\u0B5F' && input.LA(1)<='\u0B61')||(input.LA(1)>='\u0B66' && input.LA(1)<='\u0B6F')||input.LA(1)=='\u0B71'||(input.LA(1)>='\u0B82' && input.LA(1)<='\u0B83')||(input.LA(1)>='\u0B85' && input.LA(1)<='\u0B8A')||(input.LA(1)>='\u0B8E' && input.LA(1)<='\u0B90')||(input.LA(1)>='\u0B92' && input.LA(1)<='\u0B95')||(input.LA(1)>='\u0B99' && input.LA(1)<='\u0B9A')||input.LA(1)=='\u0B9C'||(input.LA(1)>='\u0B9E' && input.LA(1)<='\u0B9F')||(input.LA(1)>='\u0BA3' && input.LA(1)<='\u0BA4')||(input.LA(1)>='\u0BA8' && input.LA(1)<='\u0BAA')||(input.LA(1)>='\u0BAE' && input.LA(1)<='\u0BB5')||(input.LA(1)>='\u0BB7' && input.LA(1)<='\u0BB9')||(input.LA(1)>='\u0BBE' && input.LA(1)<='\u0BC2')||(input.LA(1)>='\u0BC6' && input.LA(1)<='\u0BC8')||(input.LA(1)>='\u0BCA' && input.LA(1)<='\u0BCD')||input.LA(1)=='\u0BD7'||(input.LA(1)>='\u0BE7' && input.LA(1)<='\u0BEF')||input.LA(1)=='\u0BF9'||(input.LA(1)>='\u0C01' && input.LA(1)<='\u0C03')||(input.LA(1)>='\u0C05' && input.LA(1)<='\u0C0C')||(input.LA(1)>='\u0C0E' && input.LA(1)<='\u0C10')||(input.LA(1)>='\u0C12' && input.LA(1)<='\u0C28')||(input.LA(1)>='\u0C2A' && input.LA(1)<='\u0C33')||(input.LA(1)>='\u0C35' && input.LA(1)<='\u0C39')||(input.LA(1)>='\u0C3E' && input.LA(1)<='\u0C44')||(input.LA(1)>='\u0C46' && input.LA(1)<='\u0C48')||(input.LA(1)>='\u0C4A' && input.LA(1)<='\u0C4D')||(input.LA(1)>='\u0C55' && input.LA(1)<='\u0C56')||(input.LA(1)>='\u0C60' && input.LA(1)<='\u0C61')||(input.LA(1)>='\u0C66' && input.LA(1)<='\u0C6F')||(input.LA(1)>='\u0C82' && input.LA(1)<='\u0C83')||(input.LA(1)>='\u0C85' && input.LA(1)<='\u0C8C')||(input.LA(1)>='\u0C8E' && input.LA(1)<='\u0C90')||(input.LA(1)>='\u0C92' && input.LA(1)<='\u0CA8')||(input.LA(1)>='\u0CAA' && input.LA(1)<='\u0CB3')||(input.LA(1)>='\u0CB5' && input.LA(1)<='\u0CB9')||(input.LA(1)>='\u0CBC' && input.LA(1)<='\u0CC4')||(input.LA(1)>='\u0CC6' && input.LA(1)<='\u0CC8')||(input.LA(1)>='\u0CCA' && input.LA(1)<='\u0CCD')||(input.LA(1)>='\u0CD5' && input.LA(1)<='\u0CD6')||input.LA(1)=='\u0CDE'||(input.LA(1)>='\u0CE0' && input.LA(1)<='\u0CE1')||(input.LA(1)>='\u0CE6' && input.LA(1)<='\u0CEF')||(input.LA(1)>='\u0D02' && input.LA(1)<='\u0D03')||(input.LA(1)>='\u0D05' && input.LA(1)<='\u0D0C')||(input.LA(1)>='\u0D0E' && input.LA(1)<='\u0D10')||(input.LA(1)>='\u0D12' && input.LA(1)<='\u0D28')||(input.LA(1)>='\u0D2A' && input.LA(1)<='\u0D39')||(input.LA(1)>='\u0D3E' && input.LA(1)<='\u0D43')||(input.LA(1)>='\u0D46' && input.LA(1)<='\u0D48')||(input.LA(1)>='\u0D4A' && input.LA(1)<='\u0D4D')||input.LA(1)=='\u0D57'||(input.LA(1)>='\u0D60' && input.LA(1)<='\u0D61')||(input.LA(1)>='\u0D66' && input.LA(1)<='\u0D6F')||(input.LA(1)>='\u0D82' && input.LA(1)<='\u0D83')||(input.LA(1)>='\u0D85' && input.LA(1)<='\u0D96')||(input.LA(1)>='\u0D9A' && input.LA(1)<='\u0DB1')||(input.LA(1)>='\u0DB3' && input.LA(1)<='\u0DBB')||input.LA(1)=='\u0DBD'||(input.LA(1)>='\u0DC0' && input.LA(1)<='\u0DC6')||input.LA(1)=='\u0DCA'||(input.LA(1)>='\u0DCF' && input.LA(1)<='\u0DD4')||input.LA(1)=='\u0DD6'||(input.LA(1)>='\u0DD8' && input.LA(1)<='\u0DDF')||(input.LA(1)>='\u0DF2' && input.LA(1)<='\u0DF3')||(input.LA(1)>='\u0E01' && input.LA(1)<='\u0E3A')||(input.LA(1)>='\u0E3F' && input.LA(1)<='\u0E4E')||(input.LA(1)>='\u0E50' && input.LA(1)<='\u0E59')||(input.LA(1)>='\u0E81' && input.LA(1)<='\u0E82')||input.LA(1)=='\u0E84'||(input.LA(1)>='\u0E87' && input.LA(1)<='\u0E88')||input.LA(1)=='\u0E8A'||input.LA(1)=='\u0E8D'||(input.LA(1)>='\u0E94' && input.LA(1)<='\u0E97')||(input.LA(1)>='\u0E99' && input.LA(1)<='\u0E9F')||(input.LA(1)>='\u0EA1' && input.LA(1)<='\u0EA3')||input.LA(1)=='\u0EA5'||input.LA(1)=='\u0EA7'||(input.LA(1)>='\u0EAA' && input.LA(1)<='\u0EAB')||(input.LA(1)>='\u0EAD' && input.LA(1)<='\u0EB9')||(input.LA(1)>='\u0EBB' && input.LA(1)<='\u0EBD')||(input.LA(1)>='\u0EC0' && input.LA(1)<='\u0EC4')||input.LA(1)=='\u0EC6'||(input.LA(1)>='\u0EC8' && input.LA(1)<='\u0ECD')||(input.LA(1)>='\u0ED0' && input.LA(1)<='\u0ED9')||(input.LA(1)>='\u0EDC' && input.LA(1)<='\u0EDD')||input.LA(1)=='\u0F00'||(input.LA(1)>='\u0F18' && input.LA(1)<='\u0F19')||(input.LA(1)>='\u0F20' && input.LA(1)<='\u0F29')||input.LA(1)=='\u0F35'||input.LA(1)=='\u0F37'||input.LA(1)=='\u0F39'||(input.LA(1)>='\u0F3E' && input.LA(1)<='\u0F47')||(input.LA(1)>='\u0F49' && input.LA(1)<='\u0F6A')||(input.LA(1)>='\u0F71' && input.LA(1)<='\u0F84')||(input.LA(1)>='\u0F86' && input.LA(1)<='\u0F8B')||(input.LA(1)>='\u0F90' && input.LA(1)<='\u0F97')||(input.LA(1)>='\u0F99' && input.LA(1)<='\u0FBC')||input.LA(1)=='\u0FC6'||(input.LA(1)>='\u1000' && input.LA(1)<='\u1021')||(input.LA(1)>='\u1023' && input.LA(1)<='\u1027')||(input.LA(1)>='\u1029' && input.LA(1)<='\u102A')||(input.LA(1)>='\u102C' && input.LA(1)<='\u1032')||(input.LA(1)>='\u1036' && input.LA(1)<='\u1039')||(input.LA(1)>='\u1040' && input.LA(1)<='\u1049')||(input.LA(1)>='\u1050' && input.LA(1)<='\u1059')||(input.LA(1)>='\u10A0' && input.LA(1)<='\u10C5')||(input.LA(1)>='\u10D0' && input.LA(1)<='\u10F8')||(input.LA(1)>='\u1100' && input.LA(1)<='\u1159')||(input.LA(1)>='\u115F' && input.LA(1)<='\u11A2')||(input.LA(1)>='\u11A8' && input.LA(1)<='\u11F9')||(input.LA(1)>='\u1200' && input.LA(1)<='\u1206')||(input.LA(1)>='\u1208' && input.LA(1)<='\u1246')||input.LA(1)=='\u1248'||(input.LA(1)>='\u124A' && input.LA(1)<='\u124D')||(input.LA(1)>='\u1250' && input.LA(1)<='\u1256')||input.LA(1)=='\u1258'||(input.LA(1)>='\u125A' && input.LA(1)<='\u125D')||(input.LA(1)>='\u1260' && input.LA(1)<='\u1286')||input.LA(1)=='\u1288'||(input.LA(1)>='\u128A' && input.LA(1)<='\u128D')||(input.LA(1)>='\u1290' && input.LA(1)<='\u12AE')||input.LA(1)=='\u12B0'||(input.LA(1)>='\u12B2' && input.LA(1)<='\u12B5')||(input.LA(1)>='\u12B8' && input.LA(1)<='\u12BE')||input.LA(1)=='\u12C0'||(input.LA(1)>='\u12C2' && input.LA(1)<='\u12C5')||(input.LA(1)>='\u12C8' && input.LA(1)<='\u12CE')||(input.LA(1)>='\u12D0' && input.LA(1)<='\u12D6')||(input.LA(1)>='\u12D8' && input.LA(1)<='\u12EE')||(input.LA(1)>='\u12F0' && input.LA(1)<='\u130E')||input.LA(1)=='\u1310'||(input.LA(1)>='\u1312' && input.LA(1)<='\u1315')||(input.LA(1)>='\u1318' && input.LA(1)<='\u131E')||(input.LA(1)>='\u1320' && input.LA(1)<='\u1346')||(input.LA(1)>='\u1348' && input.LA(1)<='\u135A')||(input.LA(1)>='\u1369' && input.LA(1)<='\u1371')||(input.LA(1)>='\u13A0' && input.LA(1)<='\u13F4')||(input.LA(1)>='\u1401' && input.LA(1)<='\u166C')||(input.LA(1)>='\u166F' && input.LA(1)<='\u1676')||(input.LA(1)>='\u1681' && input.LA(1)<='\u169A')||(input.LA(1)>='\u16A0' && input.LA(1)<='\u16EA')||(input.LA(1)>='\u16EE' && input.LA(1)<='\u16F0')||(input.LA(1)>='\u1700' && input.LA(1)<='\u170C')||(input.LA(1)>='\u170E' && input.LA(1)<='\u1714')||(input.LA(1)>='\u1720' && input.LA(1)<='\u1734')||(input.LA(1)>='\u1740' && input.LA(1)<='\u1753')||(input.LA(1)>='\u1760' && input.LA(1)<='\u176C')||(input.LA(1)>='\u176E' && input.LA(1)<='\u1770')||(input.LA(1)>='\u1772' && input.LA(1)<='\u1773')||(input.LA(1)>='\u1780' && input.LA(1)<='\u17D3')||input.LA(1)=='\u17D7'||(input.LA(1)>='\u17DB' && input.LA(1)<='\u17DD')||(input.LA(1)>='\u17E0' && input.LA(1)<='\u17E9')||(input.LA(1)>='\u180B' && input.LA(1)<='\u180D')||(input.LA(1)>='\u1810' && input.LA(1)<='\u1819')||(input.LA(1)>='\u1820' && input.LA(1)<='\u1877')||(input.LA(1)>='\u1880' && input.LA(1)<='\u18A9')||(input.LA(1)>='\u1900' && input.LA(1)<='\u191C')||(input.LA(1)>='\u1920' && input.LA(1)<='\u192B')||(input.LA(1)>='\u1930' && input.LA(1)<='\u193B')||(input.LA(1)>='\u1946' && input.LA(1)<='\u196D')||(input.LA(1)>='\u1970' && input.LA(1)<='\u1974')||(input.LA(1)>='\u1D00' && input.LA(1)<='\u1D6B')||(input.LA(1)>='\u1E00' && input.LA(1)<='\u1E9B')||(input.LA(1)>='\u1EA0' && input.LA(1)<='\u1EF9')||(input.LA(1)>='\u1F00' && input.LA(1)<='\u1F15')||(input.LA(1)>='\u1F18' && input.LA(1)<='\u1F1D')||(input.LA(1)>='\u1F20' && input.LA(1)<='\u1F45')||(input.LA(1)>='\u1F48' && input.LA(1)<='\u1F4D')||(input.LA(1)>='\u1F50' && input.LA(1)<='\u1F57')||input.LA(1)=='\u1F59'||input.LA(1)=='\u1F5B'||input.LA(1)=='\u1F5D'||(input.LA(1)>='\u1F5F' && input.LA(1)<='\u1F7D')||(input.LA(1)>='\u1F80' && input.LA(1)<='\u1FB4')||(input.LA(1)>='\u1FB6' && input.LA(1)<='\u1FBC')||input.LA(1)=='\u1FBE'||(input.LA(1)>='\u1FC2' && input.LA(1)<='\u1FC4')||(input.LA(1)>='\u1FC6' && input.LA(1)<='\u1FCC')||(input.LA(1)>='\u1FD0' && input.LA(1)<='\u1FD3')||(input.LA(1)>='\u1FD6' && input.LA(1)<='\u1FDB')||(input.LA(1)>='\u1FE0' && input.LA(1)<='\u1FEC')||(input.LA(1)>='\u1FF2' && input.LA(1)<='\u1FF4')||(input.LA(1)>='\u1FF6' && input.LA(1)<='\u1FFC')||(input.LA(1)>='\u200C' && input.LA(1)<='\u200F')||(input.LA(1)>='\u202A' && input.LA(1)<='\u202E')||(input.LA(1)>='\u203F' && input.LA(1)<='\u2040')||input.LA(1)=='\u2054'||(input.LA(1)>='\u2060' && input.LA(1)<='\u2063')||(input.LA(1)>='\u206A' && input.LA(1)<='\u206F')||input.LA(1)=='\u2071'||input.LA(1)=='\u207F'||(input.LA(1)>='\u20A0' && input.LA(1)<='\u20B1')||(input.LA(1)>='\u20D0' && input.LA(1)<='\u20DC')||input.LA(1)=='\u20E1'||(input.LA(1)>='\u20E5' && input.LA(1)<='\u20EA')||input.LA(1)=='\u2102'||input.LA(1)=='\u2107'||(input.LA(1)>='\u210A' && input.LA(1)<='\u2113')||input.LA(1)=='\u2115'||(input.LA(1)>='\u2119' && input.LA(1)<='\u211D')||input.LA(1)=='\u2124'||input.LA(1)=='\u2126'||input.LA(1)=='\u2128'||(input.LA(1)>='\u212A' && input.LA(1)<='\u212D')||(input.LA(1)>='\u212F' && input.LA(1)<='\u2131')||(input.LA(1)>='\u2133' && input.LA(1)<='\u2139')||(input.LA(1)>='\u213D' && input.LA(1)<='\u213F')||(input.LA(1)>='\u2145' && input.LA(1)<='\u2149')||(input.LA(1)>='\u2160' && input.LA(1)<='\u2183')||(input.LA(1)>='\u3001' && input.LA(1)<='\u3002')||(input.LA(1)>='\u3005' && input.LA(1)<='\u3007')||(input.LA(1)>='\u3021' && input.LA(1)<='\u302F')||(input.LA(1)>='\u3031' && input.LA(1)<='\u3035')||(input.LA(1)>='\u3038' && input.LA(1)<='\u303C')||(input.LA(1)>='\u3041' && input.LA(1)<='\u3096')||(input.LA(1)>='\u3099' && input.LA(1)<='\u309A')||(input.LA(1)>='\u309D' && input.LA(1)<='\u309F')||(input.LA(1)>='\u30A1' && input.LA(1)<='\u30FF')||(input.LA(1)>='\u3105' && input.LA(1)<='\u312C')||(input.LA(1)>='\u3131' && input.LA(1)<='\u318E')||(input.LA(1)>='\u31A0' && input.LA(1)<='\u31B7')||(input.LA(1)>='\u31F0' && input.LA(1)<='\u31FF')||(input.LA(1)>='\u3400' && input.LA(1)<='\u4DB5')||(input.LA(1)>='\u4E00' && input.LA(1)<='\u9FA5')||(input.LA(1)>='\uA000' && input.LA(1)<='\uA48C')||(input.LA(1)>='\uAC00' && input.LA(1)<='\uD7A3')||(input.LA(1)>='\uF900' && input.LA(1)<='\uFA2D')||(input.LA(1)>='\uFA30' && input.LA(1)<='\uFA6A')||(input.LA(1)>='\uFB00' && input.LA(1)<='\uFB06')||(input.LA(1)>='\uFB13' && input.LA(1)<='\uFB17')||(input.LA(1)>='\uFB1D' && input.LA(1)<='\uFB28')||(input.LA(1)>='\uFB2A' && input.LA(1)<='\uFB36')||(input.LA(1)>='\uFB38' && input.LA(1)<='\uFB3C')||input.LA(1)=='\uFB3E'||(input.LA(1)>='\uFB40' && input.LA(1)<='\uFB41')||(input.LA(1)>='\uFB43' && input.LA(1)<='\uFB44')||(input.LA(1)>='\uFB46' && input.LA(1)<='\uFBB1')||(input.LA(1)>='\uFBD3' && input.LA(1)<='\uFD3D')||(input.LA(1)>='\uFD50' && input.LA(1)<='\uFD8F')||(input.LA(1)>='\uFD92' && input.LA(1)<='\uFDC7')||(input.LA(1)>='\uFDF0' && input.LA(1)<='\uFDFC')||(input.LA(1)>='\uFE00' && input.LA(1)<='\uFE0F')||(input.LA(1)>='\uFE20' && input.LA(1)<='\uFE23')||(input.LA(1)>='\uFE33' && input.LA(1)<='\uFE34')||(input.LA(1)>='\uFE4D' && input.LA(1)<='\uFE4F')||input.LA(1)=='\uFE69'||(input.LA(1)>='\uFE70' && input.LA(1)<='\uFE74')||(input.LA(1)>='\uFE76' && input.LA(1)<='\uFEFC')||input.LA(1)=='\uFEFF'||input.LA(1)=='\uFF04'||(input.LA(1)>='\uFF08' && input.LA(1)<='\uFF09')||(input.LA(1)>='\uFF10' && input.LA(1)<='\uFF1A')||(input.LA(1)>='\uFF21' && input.LA(1)<='\uFF3A')||input.LA(1)=='\uFF3F'||(input.LA(1)>='\uFF41' && input.LA(1)<='\uFF5A')||(input.LA(1)>='\uFF65' && input.LA(1)<='\uFFBE')||(input.LA(1)>='\uFFC2' && input.LA(1)<='\uFFC7')||(input.LA(1)>='\uFFCA' && input.LA(1)<='\uFFCF')||(input.LA(1)>='\uFFD2' && input.LA(1)<='\uFFD7')||(input.LA(1)>='\uFFDA' && input.LA(1)<='\uFFDC')||(input.LA(1)>='\uFFE0' && input.LA(1)<='\uFFE1')||(input.LA(1)>='\uFFE5' && input.LA(1)<='\uFFE6')||(input.LA(1)>='\uFFF9' && input.LA(1)<='\uFFFB') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_IDENTIFIER_PART"
+
+ // $ANTLR start "RULE_IDENTIFIER_START"
+ public final void mRULE_IDENTIFIER_START() throws RecognitionException {
+ try {
+ // InternalRBAModel.g:10295:32: ( ( RULE_IDENTIFIER_START_IMPL | RULE_IDENTIFIER_PART_IMPL ) )
+ // InternalRBAModel.g:10295:34: ( RULE_IDENTIFIER_START_IMPL | RULE_IDENTIFIER_PART_IMPL )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='\b')||(input.LA(1)>='\u000E' && input.LA(1)<='\u001B')||input.LA(1)=='$'||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z')||(input.LA(1)>='\u007F' && input.LA(1)<='\u009F')||(input.LA(1)>='\u00A2' && input.LA(1)<='\u00A5')||input.LA(1)=='\u00AA'||input.LA(1)=='\u00AD'||input.LA(1)=='\u00B5'||input.LA(1)=='\u00BA'||(input.LA(1)>='\u00C0' && input.LA(1)<='\u00D6')||(input.LA(1)>='\u00D8' && input.LA(1)<='\u00F6')||(input.LA(1)>='\u00F8' && input.LA(1)<='\u0236')||(input.LA(1)>='\u0250' && input.LA(1)<='\u02C1')||(input.LA(1)>='\u02C6' && input.LA(1)<='\u02D1')||(input.LA(1)>='\u02E0' && input.LA(1)<='\u02E4')||input.LA(1)=='\u02EE'||(input.LA(1)>='\u0300' && input.LA(1)<='\u0357')||(input.LA(1)>='\u035D' && input.LA(1)<='\u036F')||input.LA(1)=='\u037A'||input.LA(1)=='\u0386'||(input.LA(1)>='\u0388' && input.LA(1)<='\u038A')||input.LA(1)=='\u038C'||(input.LA(1)>='\u038E' && input.LA(1)<='\u03A1')||(input.LA(1)>='\u03A3' && input.LA(1)<='\u03CE')||(input.LA(1)>='\u03D0' && input.LA(1)<='\u03F5')||(input.LA(1)>='\u03F7' && input.LA(1)<='\u03FB')||(input.LA(1)>='\u0400' && input.LA(1)<='\u0481')||(input.LA(1)>='\u0483' && input.LA(1)<='\u0486')||(input.LA(1)>='\u048A' && input.LA(1)<='\u04CE')||(input.LA(1)>='\u04D0' && input.LA(1)<='\u04F5')||(input.LA(1)>='\u04F8' && input.LA(1)<='\u04F9')||(input.LA(1)>='\u0500' && input.LA(1)<='\u050F')||(input.LA(1)>='\u0531' && input.LA(1)<='\u0556')||input.LA(1)=='\u0559'||(input.LA(1)>='\u0561' && input.LA(1)<='\u0587')||(input.LA(1)>='\u0591' && input.LA(1)<='\u05A1')||(input.LA(1)>='\u05A3' && input.LA(1)<='\u05B9')||(input.LA(1)>='\u05BB' && input.LA(1)<='\u05BD')||input.LA(1)=='\u05BF'||(input.LA(1)>='\u05C1' && input.LA(1)<='\u05C2')||input.LA(1)=='\u05C4'||(input.LA(1)>='\u05D0' && input.LA(1)<='\u05EA')||(input.LA(1)>='\u05F0' && input.LA(1)<='\u05F2')||(input.LA(1)>='\u0600' && input.LA(1)<='\u0603')||(input.LA(1)>='\u0610' && input.LA(1)<='\u0615')||(input.LA(1)>='\u0621' && input.LA(1)<='\u063A')||(input.LA(1)>='\u0640' && input.LA(1)<='\u0658')||(input.LA(1)>='\u0660' && input.LA(1)<='\u0669')||(input.LA(1)>='\u066E' && input.LA(1)<='\u06D3')||(input.LA(1)>='\u06D5' && input.LA(1)<='\u06DD')||(input.LA(1)>='\u06DF' && input.LA(1)<='\u06E8')||(input.LA(1)>='\u06EA' && input.LA(1)<='\u06FC')||input.LA(1)=='\u06FF'||(input.LA(1)>='\u070F' && input.LA(1)<='\u074A')||(input.LA(1)>='\u074D' && input.LA(1)<='\u074F')||(input.LA(1)>='\u0780' && input.LA(1)<='\u07B1')||(input.LA(1)>='\u0901' && input.LA(1)<='\u0939')||(input.LA(1)>='\u093C' && input.LA(1)<='\u094D')||(input.LA(1)>='\u0950' && input.LA(1)<='\u0954')||(input.LA(1)>='\u0958' && input.LA(1)<='\u0963')||(input.LA(1)>='\u0966' && input.LA(1)<='\u096F')||(input.LA(1)>='\u0981' && input.LA(1)<='\u0983')||(input.LA(1)>='\u0985' && input.LA(1)<='\u098C')||(input.LA(1)>='\u098F' && input.LA(1)<='\u0990')||(input.LA(1)>='\u0993' && input.LA(1)<='\u09A8')||(input.LA(1)>='\u09AA' && input.LA(1)<='\u09B0')||input.LA(1)=='\u09B2'||(input.LA(1)>='\u09B6' && input.LA(1)<='\u09B9')||(input.LA(1)>='\u09BC' && input.LA(1)<='\u09C4')||(input.LA(1)>='\u09C7' && input.LA(1)<='\u09C8')||(input.LA(1)>='\u09CB' && input.LA(1)<='\u09CD')||input.LA(1)=='\u09D7'||(input.LA(1)>='\u09DC' && input.LA(1)<='\u09DD')||(input.LA(1)>='\u09DF' && input.LA(1)<='\u09E3')||(input.LA(1)>='\u09E6' && input.LA(1)<='\u09F3')||(input.LA(1)>='\u0A01' && input.LA(1)<='\u0A03')||(input.LA(1)>='\u0A05' && input.LA(1)<='\u0A0A')||(input.LA(1)>='\u0A0F' && input.LA(1)<='\u0A10')||(input.LA(1)>='\u0A13' && input.LA(1)<='\u0A28')||(input.LA(1)>='\u0A2A' && input.LA(1)<='\u0A30')||(input.LA(1)>='\u0A32' && input.LA(1)<='\u0A33')||(input.LA(1)>='\u0A35' && input.LA(1)<='\u0A36')||(input.LA(1)>='\u0A38' && input.LA(1)<='\u0A39')||input.LA(1)=='\u0A3C'||(input.LA(1)>='\u0A3E' && input.LA(1)<='\u0A42')||(input.LA(1)>='\u0A47' && input.LA(1)<='\u0A48')||(input.LA(1)>='\u0A4B' && input.LA(1)<='\u0A4D')||(input.LA(1)>='\u0A59' && input.LA(1)<='\u0A5C')||input.LA(1)=='\u0A5E'||(input.LA(1)>='\u0A66' && input.LA(1)<='\u0A74')||(input.LA(1)>='\u0A81' && input.LA(1)<='\u0A83')||(input.LA(1)>='\u0A85' && input.LA(1)<='\u0A8D')||(input.LA(1)>='\u0A8F' && input.LA(1)<='\u0A91')||(input.LA(1)>='\u0A93' && input.LA(1)<='\u0AA8')||(input.LA(1)>='\u0AAA' && input.LA(1)<='\u0AB0')||(input.LA(1)>='\u0AB2' && input.LA(1)<='\u0AB3')||(input.LA(1)>='\u0AB5' && input.LA(1)<='\u0AB9')||(input.LA(1)>='\u0ABC' && input.LA(1)<='\u0AC5')||(input.LA(1)>='\u0AC7' && input.LA(1)<='\u0AC9')||(input.LA(1)>='\u0ACB' && input.LA(1)<='\u0ACD')||input.LA(1)=='\u0AD0'||(input.LA(1)>='\u0AE0' && input.LA(1)<='\u0AE3')||(input.LA(1)>='\u0AE6' && input.LA(1)<='\u0AEF')||input.LA(1)=='\u0AF1'||(input.LA(1)>='\u0B01' && input.LA(1)<='\u0B03')||(input.LA(1)>='\u0B05' && input.LA(1)<='\u0B0C')||(input.LA(1)>='\u0B0F' && input.LA(1)<='\u0B10')||(input.LA(1)>='\u0B13' && input.LA(1)<='\u0B28')||(input.LA(1)>='\u0B2A' && input.LA(1)<='\u0B30')||(input.LA(1)>='\u0B32' && input.LA(1)<='\u0B33')||(input.LA(1)>='\u0B35' && input.LA(1)<='\u0B39')||(input.LA(1)>='\u0B3C' && input.LA(1)<='\u0B43')||(input.LA(1)>='\u0B47' && input.LA(1)<='\u0B48')||(input.LA(1)>='\u0B4B' && input.LA(1)<='\u0B4D')||(input.LA(1)>='\u0B56' && input.LA(1)<='\u0B57')||(input.LA(1)>='\u0B5C' && input.LA(1)<='\u0B5D')||(input.LA(1)>='\u0B5F' && input.LA(1)<='\u0B61')||(input.LA(1)>='\u0B66' && input.LA(1)<='\u0B6F')||input.LA(1)=='\u0B71'||(input.LA(1)>='\u0B82' && input.LA(1)<='\u0B83')||(input.LA(1)>='\u0B85' && input.LA(1)<='\u0B8A')||(input.LA(1)>='\u0B8E' && input.LA(1)<='\u0B90')||(input.LA(1)>='\u0B92' && input.LA(1)<='\u0B95')||(input.LA(1)>='\u0B99' && input.LA(1)<='\u0B9A')||input.LA(1)=='\u0B9C'||(input.LA(1)>='\u0B9E' && input.LA(1)<='\u0B9F')||(input.LA(1)>='\u0BA3' && input.LA(1)<='\u0BA4')||(input.LA(1)>='\u0BA8' && input.LA(1)<='\u0BAA')||(input.LA(1)>='\u0BAE' && input.LA(1)<='\u0BB5')||(input.LA(1)>='\u0BB7' && input.LA(1)<='\u0BB9')||(input.LA(1)>='\u0BBE' && input.LA(1)<='\u0BC2')||(input.LA(1)>='\u0BC6' && input.LA(1)<='\u0BC8')||(input.LA(1)>='\u0BCA' && input.LA(1)<='\u0BCD')||input.LA(1)=='\u0BD7'||(input.LA(1)>='\u0BE7' && input.LA(1)<='\u0BEF')||input.LA(1)=='\u0BF9'||(input.LA(1)>='\u0C01' && input.LA(1)<='\u0C03')||(input.LA(1)>='\u0C05' && input.LA(1)<='\u0C0C')||(input.LA(1)>='\u0C0E' && input.LA(1)<='\u0C10')||(input.LA(1)>='\u0C12' && input.LA(1)<='\u0C28')||(input.LA(1)>='\u0C2A' && input.LA(1)<='\u0C33')||(input.LA(1)>='\u0C35' && input.LA(1)<='\u0C39')||(input.LA(1)>='\u0C3E' && input.LA(1)<='\u0C44')||(input.LA(1)>='\u0C46' && input.LA(1)<='\u0C48')||(input.LA(1)>='\u0C4A' && input.LA(1)<='\u0C4D')||(input.LA(1)>='\u0C55' && input.LA(1)<='\u0C56')||(input.LA(1)>='\u0C60' && input.LA(1)<='\u0C61')||(input.LA(1)>='\u0C66' && input.LA(1)<='\u0C6F')||(input.LA(1)>='\u0C82' && input.LA(1)<='\u0C83')||(input.LA(1)>='\u0C85' && input.LA(1)<='\u0C8C')||(input.LA(1)>='\u0C8E' && input.LA(1)<='\u0C90')||(input.LA(1)>='\u0C92' && input.LA(1)<='\u0CA8')||(input.LA(1)>='\u0CAA' && input.LA(1)<='\u0CB3')||(input.LA(1)>='\u0CB5' && input.LA(1)<='\u0CB9')||(input.LA(1)>='\u0CBC' && input.LA(1)<='\u0CC4')||(input.LA(1)>='\u0CC6' && input.LA(1)<='\u0CC8')||(input.LA(1)>='\u0CCA' && input.LA(1)<='\u0CCD')||(input.LA(1)>='\u0CD5' && input.LA(1)<='\u0CD6')||input.LA(1)=='\u0CDE'||(input.LA(1)>='\u0CE0' && input.LA(1)<='\u0CE1')||(input.LA(1)>='\u0CE6' && input.LA(1)<='\u0CEF')||(input.LA(1)>='\u0D02' && input.LA(1)<='\u0D03')||(input.LA(1)>='\u0D05' && input.LA(1)<='\u0D0C')||(input.LA(1)>='\u0D0E' && input.LA(1)<='\u0D10')||(input.LA(1)>='\u0D12' && input.LA(1)<='\u0D28')||(input.LA(1)>='\u0D2A' && input.LA(1)<='\u0D39')||(input.LA(1)>='\u0D3E' && input.LA(1)<='\u0D43')||(input.LA(1)>='\u0D46' && input.LA(1)<='\u0D48')||(input.LA(1)>='\u0D4A' && input.LA(1)<='\u0D4D')||input.LA(1)=='\u0D57'||(input.LA(1)>='\u0D60' && input.LA(1)<='\u0D61')||(input.LA(1)>='\u0D66' && input.LA(1)<='\u0D6F')||(input.LA(1)>='\u0D82' && input.LA(1)<='\u0D83')||(input.LA(1)>='\u0D85' && input.LA(1)<='\u0D96')||(input.LA(1)>='\u0D9A' && input.LA(1)<='\u0DB1')||(input.LA(1)>='\u0DB3' && input.LA(1)<='\u0DBB')||input.LA(1)=='\u0DBD'||(input.LA(1)>='\u0DC0' && input.LA(1)<='\u0DC6')||input.LA(1)=='\u0DCA'||(input.LA(1)>='\u0DCF' && input.LA(1)<='\u0DD4')||input.LA(1)=='\u0DD6'||(input.LA(1)>='\u0DD8' && input.LA(1)<='\u0DDF')||(input.LA(1)>='\u0DF2' && input.LA(1)<='\u0DF3')||(input.LA(1)>='\u0E01' && input.LA(1)<='\u0E3A')||(input.LA(1)>='\u0E3F' && input.LA(1)<='\u0E4E')||(input.LA(1)>='\u0E50' && input.LA(1)<='\u0E59')||(input.LA(1)>='\u0E81' && input.LA(1)<='\u0E82')||input.LA(1)=='\u0E84'||(input.LA(1)>='\u0E87' && input.LA(1)<='\u0E88')||input.LA(1)=='\u0E8A'||input.LA(1)=='\u0E8D'||(input.LA(1)>='\u0E94' && input.LA(1)<='\u0E97')||(input.LA(1)>='\u0E99' && input.LA(1)<='\u0E9F')||(input.LA(1)>='\u0EA1' && input.LA(1)<='\u0EA3')||input.LA(1)=='\u0EA5'||input.LA(1)=='\u0EA7'||(input.LA(1)>='\u0EAA' && input.LA(1)<='\u0EAB')||(input.LA(1)>='\u0EAD' && input.LA(1)<='\u0EB9')||(input.LA(1)>='\u0EBB' && input.LA(1)<='\u0EBD')||(input.LA(1)>='\u0EC0' && input.LA(1)<='\u0EC4')||input.LA(1)=='\u0EC6'||(input.LA(1)>='\u0EC8' && input.LA(1)<='\u0ECD')||(input.LA(1)>='\u0ED0' && input.LA(1)<='\u0ED9')||(input.LA(1)>='\u0EDC' && input.LA(1)<='\u0EDD')||input.LA(1)=='\u0F00'||(input.LA(1)>='\u0F18' && input.LA(1)<='\u0F19')||(input.LA(1)>='\u0F20' && input.LA(1)<='\u0F29')||input.LA(1)=='\u0F35'||input.LA(1)=='\u0F37'||input.LA(1)=='\u0F39'||(input.LA(1)>='\u0F3E' && input.LA(1)<='\u0F47')||(input.LA(1)>='\u0F49' && input.LA(1)<='\u0F6A')||(input.LA(1)>='\u0F71' && input.LA(1)<='\u0F84')||(input.LA(1)>='\u0F86' && input.LA(1)<='\u0F8B')||(input.LA(1)>='\u0F90' && input.LA(1)<='\u0F97')||(input.LA(1)>='\u0F99' && input.LA(1)<='\u0FBC')||input.LA(1)=='\u0FC6'||(input.LA(1)>='\u1000' && input.LA(1)<='\u1021')||(input.LA(1)>='\u1023' && input.LA(1)<='\u1027')||(input.LA(1)>='\u1029' && input.LA(1)<='\u102A')||(input.LA(1)>='\u102C' && input.LA(1)<='\u1032')||(input.LA(1)>='\u1036' && input.LA(1)<='\u1039')||(input.LA(1)>='\u1040' && input.LA(1)<='\u1049')||(input.LA(1)>='\u1050' && input.LA(1)<='\u1059')||(input.LA(1)>='\u10A0' && input.LA(1)<='\u10C5')||(input.LA(1)>='\u10D0' && input.LA(1)<='\u10F8')||(input.LA(1)>='\u1100' && input.LA(1)<='\u1159')||(input.LA(1)>='\u115F' && input.LA(1)<='\u11A2')||(input.LA(1)>='\u11A8' && input.LA(1)<='\u11F9')||(input.LA(1)>='\u1200' && input.LA(1)<='\u1206')||(input.LA(1)>='\u1208' && input.LA(1)<='\u1246')||input.LA(1)=='\u1248'||(input.LA(1)>='\u124A' && input.LA(1)<='\u124D')||(input.LA(1)>='\u1250' && input.LA(1)<='\u1256')||input.LA(1)=='\u1258'||(input.LA(1)>='\u125A' && input.LA(1)<='\u125D')||(input.LA(1)>='\u1260' && input.LA(1)<='\u1286')||input.LA(1)=='\u1288'||(input.LA(1)>='\u128A' && input.LA(1)<='\u128D')||(input.LA(1)>='\u1290' && input.LA(1)<='\u12AE')||input.LA(1)=='\u12B0'||(input.LA(1)>='\u12B2' && input.LA(1)<='\u12B5')||(input.LA(1)>='\u12B8' && input.LA(1)<='\u12BE')||input.LA(1)=='\u12C0'||(input.LA(1)>='\u12C2' && input.LA(1)<='\u12C5')||(input.LA(1)>='\u12C8' && input.LA(1)<='\u12CE')||(input.LA(1)>='\u12D0' && input.LA(1)<='\u12D6')||(input.LA(1)>='\u12D8' && input.LA(1)<='\u12EE')||(input.LA(1)>='\u12F0' && input.LA(1)<='\u130E')||input.LA(1)=='\u1310'||(input.LA(1)>='\u1312' && input.LA(1)<='\u1315')||(input.LA(1)>='\u1318' && input.LA(1)<='\u131E')||(input.LA(1)>='\u1320' && input.LA(1)<='\u1346')||(input.LA(1)>='\u1348' && input.LA(1)<='\u135A')||(input.LA(1)>='\u1369' && input.LA(1)<='\u1371')||(input.LA(1)>='\u13A0' && input.LA(1)<='\u13F4')||(input.LA(1)>='\u1401' && input.LA(1)<='\u166C')||(input.LA(1)>='\u166F' && input.LA(1)<='\u1676')||(input.LA(1)>='\u1681' && input.LA(1)<='\u169A')||(input.LA(1)>='\u16A0' && input.LA(1)<='\u16EA')||(input.LA(1)>='\u16EE' && input.LA(1)<='\u16F0')||(input.LA(1)>='\u1700' && input.LA(1)<='\u170C')||(input.LA(1)>='\u170E' && input.LA(1)<='\u1714')||(input.LA(1)>='\u1720' && input.LA(1)<='\u1734')||(input.LA(1)>='\u1740' && input.LA(1)<='\u1753')||(input.LA(1)>='\u1760' && input.LA(1)<='\u176C')||(input.LA(1)>='\u176E' && input.LA(1)<='\u1770')||(input.LA(1)>='\u1772' && input.LA(1)<='\u1773')||(input.LA(1)>='\u1780' && input.LA(1)<='\u17D3')||input.LA(1)=='\u17D7'||(input.LA(1)>='\u17DB' && input.LA(1)<='\u17DD')||(input.LA(1)>='\u17E0' && input.LA(1)<='\u17E9')||(input.LA(1)>='\u180B' && input.LA(1)<='\u180D')||(input.LA(1)>='\u1810' && input.LA(1)<='\u1819')||(input.LA(1)>='\u1820' && input.LA(1)<='\u1877')||(input.LA(1)>='\u1880' && input.LA(1)<='\u18A9')||(input.LA(1)>='\u1900' && input.LA(1)<='\u191C')||(input.LA(1)>='\u1920' && input.LA(1)<='\u192B')||(input.LA(1)>='\u1930' && input.LA(1)<='\u193B')||(input.LA(1)>='\u1946' && input.LA(1)<='\u196D')||(input.LA(1)>='\u1970' && input.LA(1)<='\u1974')||(input.LA(1)>='\u1D00' && input.LA(1)<='\u1D6B')||(input.LA(1)>='\u1E00' && input.LA(1)<='\u1E9B')||(input.LA(1)>='\u1EA0' && input.LA(1)<='\u1EF9')||(input.LA(1)>='\u1F00' && input.LA(1)<='\u1F15')||(input.LA(1)>='\u1F18' && input.LA(1)<='\u1F1D')||(input.LA(1)>='\u1F20' && input.LA(1)<='\u1F45')||(input.LA(1)>='\u1F48' && input.LA(1)<='\u1F4D')||(input.LA(1)>='\u1F50' && input.LA(1)<='\u1F57')||input.LA(1)=='\u1F59'||input.LA(1)=='\u1F5B'||input.LA(1)=='\u1F5D'||(input.LA(1)>='\u1F5F' && input.LA(1)<='\u1F7D')||(input.LA(1)>='\u1F80' && input.LA(1)<='\u1FB4')||(input.LA(1)>='\u1FB6' && input.LA(1)<='\u1FBC')||input.LA(1)=='\u1FBE'||(input.LA(1)>='\u1FC2' && input.LA(1)<='\u1FC4')||(input.LA(1)>='\u1FC6' && input.LA(1)<='\u1FCC')||(input.LA(1)>='\u1FD0' && input.LA(1)<='\u1FD3')||(input.LA(1)>='\u1FD6' && input.LA(1)<='\u1FDB')||(input.LA(1)>='\u1FE0' && input.LA(1)<='\u1FEC')||(input.LA(1)>='\u1FF2' && input.LA(1)<='\u1FF4')||(input.LA(1)>='\u1FF6' && input.LA(1)<='\u1FFC')||(input.LA(1)>='\u200C' && input.LA(1)<='\u200F')||(input.LA(1)>='\u202A' && input.LA(1)<='\u202E')||(input.LA(1)>='\u203F' && input.LA(1)<='\u2040')||input.LA(1)=='\u2054'||(input.LA(1)>='\u2060' && input.LA(1)<='\u2063')||(input.LA(1)>='\u206A' && input.LA(1)<='\u206F')||input.LA(1)=='\u2071'||input.LA(1)=='\u207F'||(input.LA(1)>='\u20A0' && input.LA(1)<='\u20B1')||(input.LA(1)>='\u20D0' && input.LA(1)<='\u20DC')||input.LA(1)=='\u20E1'||(input.LA(1)>='\u20E5' && input.LA(1)<='\u20EA')||input.LA(1)=='\u2102'||input.LA(1)=='\u2107'||(input.LA(1)>='\u210A' && input.LA(1)<='\u2113')||input.LA(1)=='\u2115'||(input.LA(1)>='\u2119' && input.LA(1)<='\u211D')||input.LA(1)=='\u2124'||input.LA(1)=='\u2126'||input.LA(1)=='\u2128'||(input.LA(1)>='\u212A' && input.LA(1)<='\u212D')||(input.LA(1)>='\u212F' && input.LA(1)<='\u2131')||(input.LA(1)>='\u2133' && input.LA(1)<='\u2139')||(input.LA(1)>='\u213D' && input.LA(1)<='\u213F')||(input.LA(1)>='\u2145' && input.LA(1)<='\u2149')||(input.LA(1)>='\u2160' && input.LA(1)<='\u2183')||(input.LA(1)>='\u3001' && input.LA(1)<='\u3002')||(input.LA(1)>='\u3005' && input.LA(1)<='\u3007')||(input.LA(1)>='\u3021' && input.LA(1)<='\u302F')||(input.LA(1)>='\u3031' && input.LA(1)<='\u3035')||(input.LA(1)>='\u3038' && input.LA(1)<='\u303C')||(input.LA(1)>='\u3041' && input.LA(1)<='\u3096')||(input.LA(1)>='\u3099' && input.LA(1)<='\u309A')||(input.LA(1)>='\u309D' && input.LA(1)<='\u309F')||(input.LA(1)>='\u30A1' && input.LA(1)<='\u30FF')||(input.LA(1)>='\u3105' && input.LA(1)<='\u312C')||(input.LA(1)>='\u3131' && input.LA(1)<='\u318E')||(input.LA(1)>='\u31A0' && input.LA(1)<='\u31B7')||(input.LA(1)>='\u31F0' && input.LA(1)<='\u31FF')||(input.LA(1)>='\u3400' && input.LA(1)<='\u4DB5')||(input.LA(1)>='\u4E00' && input.LA(1)<='\u9FA5')||(input.LA(1)>='\uA000' && input.LA(1)<='\uA48C')||(input.LA(1)>='\uAC00' && input.LA(1)<='\uD7A3')||(input.LA(1)>='\uF900' && input.LA(1)<='\uFA2D')||(input.LA(1)>='\uFA30' && input.LA(1)<='\uFA6A')||(input.LA(1)>='\uFB00' && input.LA(1)<='\uFB06')||(input.LA(1)>='\uFB13' && input.LA(1)<='\uFB17')||(input.LA(1)>='\uFB1D' && input.LA(1)<='\uFB28')||(input.LA(1)>='\uFB2A' && input.LA(1)<='\uFB36')||(input.LA(1)>='\uFB38' && input.LA(1)<='\uFB3C')||input.LA(1)=='\uFB3E'||(input.LA(1)>='\uFB40' && input.LA(1)<='\uFB41')||(input.LA(1)>='\uFB43' && input.LA(1)<='\uFB44')||(input.LA(1)>='\uFB46' && input.LA(1)<='\uFBB1')||(input.LA(1)>='\uFBD3' && input.LA(1)<='\uFD3D')||(input.LA(1)>='\uFD50' && input.LA(1)<='\uFD8F')||(input.LA(1)>='\uFD92' && input.LA(1)<='\uFDC7')||(input.LA(1)>='\uFDF0' && input.LA(1)<='\uFDFC')||(input.LA(1)>='\uFE00' && input.LA(1)<='\uFE0F')||(input.LA(1)>='\uFE20' && input.LA(1)<='\uFE23')||(input.LA(1)>='\uFE33' && input.LA(1)<='\uFE34')||(input.LA(1)>='\uFE4D' && input.LA(1)<='\uFE4F')||input.LA(1)=='\uFE69'||(input.LA(1)>='\uFE70' && input.LA(1)<='\uFE74')||(input.LA(1)>='\uFE76' && input.LA(1)<='\uFEFC')||input.LA(1)=='\uFEFF'||input.LA(1)=='\uFF04'||(input.LA(1)>='\uFF08' && input.LA(1)<='\uFF09')||(input.LA(1)>='\uFF10' && input.LA(1)<='\uFF1A')||(input.LA(1)>='\uFF21' && input.LA(1)<='\uFF3A')||input.LA(1)=='\uFF3F'||(input.LA(1)>='\uFF41' && input.LA(1)<='\uFF5A')||(input.LA(1)>='\uFF65' && input.LA(1)<='\uFFBE')||(input.LA(1)>='\uFFC2' && input.LA(1)<='\uFFC7')||(input.LA(1)>='\uFFCA' && input.LA(1)<='\uFFCF')||(input.LA(1)>='\uFFD2' && input.LA(1)<='\uFFD7')||(input.LA(1)>='\uFFDA' && input.LA(1)<='\uFFDC')||(input.LA(1)>='\uFFE0' && input.LA(1)<='\uFFE1')||(input.LA(1)>='\uFFE5' && input.LA(1)<='\uFFE6')||(input.LA(1)>='\uFFF9' && input.LA(1)<='\uFFFB') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_IDENTIFIER_START"
+
+ // $ANTLR start "RULE_WS"
+ public final void mRULE_WS() throws RecognitionException {
+ try {
+ int _type = RULE_WS;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:10297:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+ // InternalRBAModel.g:10297:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+ {
+ // InternalRBAModel.g:10297:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+ int cnt7=0;
+ loop7:
+ do {
+ int alt7=2;
+ int LA7_0 = input.LA(1);
+
+ if ( ((LA7_0>='\t' && LA7_0<='\n')||LA7_0=='\r'||LA7_0==' ') ) {
+ alt7=1;
+ }
+
+
+ switch (alt7) {
+ case 1 :
+ // InternalRBAModel.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 ( cnt7 >= 1 ) break loop7;
+ EarlyExitException eee =
+ new EarlyExitException(7, input);
+ throw eee;
+ }
+ cnt7++;
+ } while (true);
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_WS"
+
+ // $ANTLR start "RULE_INT"
+ public final void mRULE_INT() throws RecognitionException {
+ try {
+ int _type = RULE_INT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:10299:10: ( ( '0' .. '9' )+ )
+ // InternalRBAModel.g:10299:12: ( '0' .. '9' )+
+ {
+ // InternalRBAModel.g:10299:12: ( '0' .. '9' )+
+ int cnt8=0;
+ loop8:
+ do {
+ int alt8=2;
+ int LA8_0 = input.LA(1);
+
+ if ( ((LA8_0>='0' && LA8_0<='9')) ) {
+ alt8=1;
+ }
+
+
+ switch (alt8) {
+ case 1 :
+ // InternalRBAModel.g:10299:13: '0' .. '9'
+ {
+ matchRange('0','9');
+
+ }
+ break;
+
+ default :
+ if ( cnt8 >= 1 ) break loop8;
+ EarlyExitException eee =
+ new EarlyExitException(8, input);
+ throw eee;
+ }
+ cnt8++;
+ } while (true);
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_INT"
+
+ // $ANTLR start "RULE_STRING"
+ public final void mRULE_STRING() throws RecognitionException {
+ try {
+ int _type = RULE_STRING;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:10301:13: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' | '\\'' | '\\n' | '\\r' ) ) )* '\"' )
+ // InternalRBAModel.g:10301:15: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' | '\\'' | '\\n' | '\\r' ) ) )* '\"'
+ {
+ match('\"');
+ // InternalRBAModel.g:10301:19: ( '\\\\' . | ~ ( ( '\\\\' | '\"' | '\\'' | '\\n' | '\\r' ) ) )*
+ loop9:
+ do {
+ int alt9=3;
+ int LA9_0 = input.LA(1);
+
+ if ( (LA9_0=='\\') ) {
+ alt9=1;
+ }
+ else if ( ((LA9_0>='\u0000' && LA9_0<='\t')||(LA9_0>='\u000B' && LA9_0<='\f')||(LA9_0>='\u000E' && LA9_0<='!')||(LA9_0>='#' && LA9_0<='&')||(LA9_0>='(' && LA9_0<='[')||(LA9_0>=']' && LA9_0<='\uFFFF')) ) {
+ alt9=2;
+ }
+
+
+ switch (alt9) {
+ case 1 :
+ // InternalRBAModel.g:10301:20: '\\\\' .
+ {
+ match('\\');
+ matchAny();
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:10301:27: ~ ( ( '\\\\' | '\"' | '\\'' | '\\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)>='#' && 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 loop9;
+ }
+ } while (true);
+
+ match('\"');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_STRING"
+
+ // $ANTLR start "RULE_RICH_STRING"
+ public final void mRULE_RICH_STRING() throws RecognitionException {
+ try {
+ int _type = RULE_RICH_STRING;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalRBAModel.g:10303:18: ( '@BEGIN@' ( options {greedy=false; } : . )* '@END@' )
+ // InternalRBAModel.g:10303:20: '@BEGIN@' ( options {greedy=false; } : . )* '@END@'
+ {
+ match("@BEGIN@");
+
+ // InternalRBAModel.g:10303:30: ( options {greedy=false; } : . )*
+ loop10:
+ do {
+ int alt10=2;
+ int LA10_0 = input.LA(1);
+
+ if ( (LA10_0=='@') ) {
+ int LA10_1 = input.LA(2);
+
+ if ( (LA10_1=='E') ) {
+ int LA10_3 = input.LA(3);
+
+ if ( (LA10_3=='N') ) {
+ int LA10_4 = input.LA(4);
+
+ if ( (LA10_4=='D') ) {
+ int LA10_5 = input.LA(5);
+
+ if ( (LA10_5=='@') ) {
+ alt10=2;
+ }
+ else if ( ((LA10_5>='\u0000' && LA10_5<='?')||(LA10_5>='A' && LA10_5<='\uFFFF')) ) {
+ alt10=1;
+ }
+
+
+ }
+ else if ( ((LA10_4>='\u0000' && LA10_4<='C')||(LA10_4>='E' && LA10_4<='\uFFFF')) ) {
+ alt10=1;
+ }
+
+
+ }
+ else if ( ((LA10_3>='\u0000' && LA10_3<='M')||(LA10_3>='O' && LA10_3<='\uFFFF')) ) {
+ alt10=1;
+ }
+
+
+ }
+ else if ( ((LA10_1>='\u0000' && LA10_1<='D')||(LA10_1>='F' && LA10_1<='\uFFFF')) ) {
+ alt10=1;
+ }
+
+
+ }
+ else if ( ((LA10_0>='\u0000' && LA10_0<='?')||(LA10_0>='A' && LA10_0<='\uFFFF')) ) {
+ alt10=1;
+ }
+
+
+ switch (alt10) {
+ case 1 :
+ // InternalRBAModel.g:10303:58: .
+ {
+ matchAny();
+
+ }
+ break;
+
+ default :
+ break loop10;
+ }
+ } while (true);
+
+ match("@END@");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_RICH_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;
+ // InternalRBAModel.g:10305:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+ // InternalRBAModel.g:10305:19: '/*' ( options {greedy=false; } : . )* '*/'
+ {
+ match("/*");
+
+ // InternalRBAModel.g:10305:24: ( options {greedy=false; } : . )*
+ loop11:
+ do {
+ int alt11=2;
+ int LA11_0 = input.LA(1);
+
+ if ( (LA11_0=='*') ) {
+ int LA11_1 = input.LA(2);
+
+ if ( (LA11_1=='/') ) {
+ alt11=2;
+ }
+ else if ( ((LA11_1>='\u0000' && LA11_1<='.')||(LA11_1>='0' && LA11_1<='\uFFFF')) ) {
+ alt11=1;
+ }
+
+
+ }
+ else if ( ((LA11_0>='\u0000' && LA11_0<=')')||(LA11_0>='+' && LA11_0<='\uFFFF')) ) {
+ alt11=1;
+ }
+
+
+ switch (alt11) {
+ case 1 :
+ // InternalRBAModel.g:10305:52: .
+ {
+ matchAny();
+
+ }
+ break;
+
+ default :
+ break loop11;
+ }
+ } 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;
+ // InternalRBAModel.g:10307:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+ // InternalRBAModel.g:10307:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+ {
+ match("//");
+
+ // InternalRBAModel.g:10307:24: (~ ( ( '\\n' | '\\r' ) ) )*
+ loop12:
+ do {
+ int alt12=2;
+ int LA12_0 = input.LA(1);
+
+ if ( ((LA12_0>='\u0000' && LA12_0<='\t')||(LA12_0>='\u000B' && LA12_0<='\f')||(LA12_0>='\u000E' && LA12_0<='\uFFFF')) ) {
+ alt12=1;
+ }
+
+
+ switch (alt12) {
+ case 1 :
+ // InternalRBAModel.g:10307: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)<='\uFFFF') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop12;
+ }
+ } while (true);
+
+ // InternalRBAModel.g:10307:40: ( ( '\\r' )? '\\n' )?
+ int alt14=2;
+ int LA14_0 = input.LA(1);
+
+ if ( (LA14_0=='\n'||LA14_0=='\r') ) {
+ alt14=1;
+ }
+ switch (alt14) {
+ case 1 :
+ // InternalRBAModel.g:10307:41: ( '\\r' )? '\\n'
+ {
+ // InternalRBAModel.g:10307:41: ( '\\r' )?
+ int alt13=2;
+ int LA13_0 = input.LA(1);
+
+ if ( (LA13_0=='\r') ) {
+ alt13=1;
+ }
+ switch (alt13) {
+ case 1 :
+ // InternalRBAModel.g:10307:41: '\\r'
+ {
+ match('\r');
+
+ }
+ break;
+
+ }
+
+ match('\n');
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_SL_COMMENT"
+
+ public void mTokens() throws RecognitionException {
+ // InternalRBAModel.g:1:8: ( 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 | T__114 | T__115 | T__116 | T__117 | T__118 | T__119 | T__120 | T__121 | T__122 | T__123 | T__124 | T__125 | T__126 | T__127 | T__128 | T__129 | T__130 | T__131 | T__132 | T__133 | T__134 | T__135 | T__136 | T__137 | T__138 | T__139 | T__140 | T__141 | T__142 | T__143 | T__144 | T__145 | T__146 | T__147 | T__148 | T__149 | T__150 | T__151 | T__152 | T__153 | T__154 | T__155 | T__156 | T__157 | T__158 | T__159 | T__160 | T__161 | T__162 | T__163 | T__164 | T__165 | T__166 | T__167 | RULE_ID | RULE_WS | RULE_INT | RULE_STRING | RULE_RICH_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT )
+ int alt15=157;
+ alt15 = dfa15.predict(input);
+ switch (alt15) {
+ case 1 :
+ // InternalRBAModel.g:1:10: T__18
+ {
+ mT__18();
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:1:16: T__19
+ {
+ mT__19();
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:1:22: T__20
+ {
+ mT__20();
+
+ }
+ break;
+ case 4 :
+ // InternalRBAModel.g:1:28: T__21
+ {
+ mT__21();
+
+ }
+ break;
+ case 5 :
+ // InternalRBAModel.g:1:34: T__22
+ {
+ mT__22();
+
+ }
+ break;
+ case 6 :
+ // InternalRBAModel.g:1:40: T__23
+ {
+ mT__23();
+
+ }
+ break;
+ case 7 :
+ // InternalRBAModel.g:1:46: T__24
+ {
+ mT__24();
+
+ }
+ break;
+ case 8 :
+ // InternalRBAModel.g:1:52: T__25
+ {
+ mT__25();
+
+ }
+ break;
+ case 9 :
+ // InternalRBAModel.g:1:58: T__26
+ {
+ mT__26();
+
+ }
+ break;
+ case 10 :
+ // InternalRBAModel.g:1:64: T__27
+ {
+ mT__27();
+
+ }
+ break;
+ case 11 :
+ // InternalRBAModel.g:1:70: T__28
+ {
+ mT__28();
+
+ }
+ break;
+ case 12 :
+ // InternalRBAModel.g:1:76: T__29
+ {
+ mT__29();
+
+ }
+ break;
+ case 13 :
+ // InternalRBAModel.g:1:82: T__30
+ {
+ mT__30();
+
+ }
+ break;
+ case 14 :
+ // InternalRBAModel.g:1:88: T__31
+ {
+ mT__31();
+
+ }
+ break;
+ case 15 :
+ // InternalRBAModel.g:1:94: T__32
+ {
+ mT__32();
+
+ }
+ break;
+ case 16 :
+ // InternalRBAModel.g:1:100: T__33
+ {
+ mT__33();
+
+ }
+ break;
+ case 17 :
+ // InternalRBAModel.g:1:106: T__34
+ {
+ mT__34();
+
+ }
+ break;
+ case 18 :
+ // InternalRBAModel.g:1:112: T__35
+ {
+ mT__35();
+
+ }
+ break;
+ case 19 :
+ // InternalRBAModel.g:1:118: T__36
+ {
+ mT__36();
+
+ }
+ break;
+ case 20 :
+ // InternalRBAModel.g:1:124: T__37
+ {
+ mT__37();
+
+ }
+ break;
+ case 21 :
+ // InternalRBAModel.g:1:130: T__38
+ {
+ mT__38();
+
+ }
+ break;
+ case 22 :
+ // InternalRBAModel.g:1:136: T__39
+ {
+ mT__39();
+
+ }
+ break;
+ case 23 :
+ // InternalRBAModel.g:1:142: T__40
+ {
+ mT__40();
+
+ }
+ break;
+ case 24 :
+ // InternalRBAModel.g:1:148: T__41
+ {
+ mT__41();
+
+ }
+ break;
+ case 25 :
+ // InternalRBAModel.g:1:154: T__42
+ {
+ mT__42();
+
+ }
+ break;
+ case 26 :
+ // InternalRBAModel.g:1:160: T__43
+ {
+ mT__43();
+
+ }
+ break;
+ case 27 :
+ // InternalRBAModel.g:1:166: T__44
+ {
+ mT__44();
+
+ }
+ break;
+ case 28 :
+ // InternalRBAModel.g:1:172: T__45
+ {
+ mT__45();
+
+ }
+ break;
+ case 29 :
+ // InternalRBAModel.g:1:178: T__46
+ {
+ mT__46();
+
+ }
+ break;
+ case 30 :
+ // InternalRBAModel.g:1:184: T__47
+ {
+ mT__47();
+
+ }
+ break;
+ case 31 :
+ // InternalRBAModel.g:1:190: T__48
+ {
+ mT__48();
+
+ }
+ break;
+ case 32 :
+ // InternalRBAModel.g:1:196: T__49
+ {
+ mT__49();
+
+ }
+ break;
+ case 33 :
+ // InternalRBAModel.g:1:202: T__50
+ {
+ mT__50();
+
+ }
+ break;
+ case 34 :
+ // InternalRBAModel.g:1:208: T__51
+ {
+ mT__51();
+
+ }
+ break;
+ case 35 :
+ // InternalRBAModel.g:1:214: T__52
+ {
+ mT__52();
+
+ }
+ break;
+ case 36 :
+ // InternalRBAModel.g:1:220: T__53
+ {
+ mT__53();
+
+ }
+ break;
+ case 37 :
+ // InternalRBAModel.g:1:226: T__54
+ {
+ mT__54();
+
+ }
+ break;
+ case 38 :
+ // InternalRBAModel.g:1:232: T__55
+ {
+ mT__55();
+
+ }
+ break;
+ case 39 :
+ // InternalRBAModel.g:1:238: T__56
+ {
+ mT__56();
+
+ }
+ break;
+ case 40 :
+ // InternalRBAModel.g:1:244: T__57
+ {
+ mT__57();
+
+ }
+ break;
+ case 41 :
+ // InternalRBAModel.g:1:250: T__58
+ {
+ mT__58();
+
+ }
+ break;
+ case 42 :
+ // InternalRBAModel.g:1:256: T__59
+ {
+ mT__59();
+
+ }
+ break;
+ case 43 :
+ // InternalRBAModel.g:1:262: T__60
+ {
+ mT__60();
+
+ }
+ break;
+ case 44 :
+ // InternalRBAModel.g:1:268: T__61
+ {
+ mT__61();
+
+ }
+ break;
+ case 45 :
+ // InternalRBAModel.g:1:274: T__62
+ {
+ mT__62();
+
+ }
+ break;
+ case 46 :
+ // InternalRBAModel.g:1:280: T__63
+ {
+ mT__63();
+
+ }
+ break;
+ case 47 :
+ // InternalRBAModel.g:1:286: T__64
+ {
+ mT__64();
+
+ }
+ break;
+ case 48 :
+ // InternalRBAModel.g:1:292: T__65
+ {
+ mT__65();
+
+ }
+ break;
+ case 49 :
+ // InternalRBAModel.g:1:298: T__66
+ {
+ mT__66();
+
+ }
+ break;
+ case 50 :
+ // InternalRBAModel.g:1:304: T__67
+ {
+ mT__67();
+
+ }
+ break;
+ case 51 :
+ // InternalRBAModel.g:1:310: T__68
+ {
+ mT__68();
+
+ }
+ break;
+ case 52 :
+ // InternalRBAModel.g:1:316: T__69
+ {
+ mT__69();
+
+ }
+ break;
+ case 53 :
+ // InternalRBAModel.g:1:322: T__70
+ {
+ mT__70();
+
+ }
+ break;
+ case 54 :
+ // InternalRBAModel.g:1:328: T__71
+ {
+ mT__71();
+
+ }
+ break;
+ case 55 :
+ // InternalRBAModel.g:1:334: T__72
+ {
+ mT__72();
+
+ }
+ break;
+ case 56 :
+ // InternalRBAModel.g:1:340: T__73
+ {
+ mT__73();
+
+ }
+ break;
+ case 57 :
+ // InternalRBAModel.g:1:346: T__74
+ {
+ mT__74();
+
+ }
+ break;
+ case 58 :
+ // InternalRBAModel.g:1:352: T__75
+ {
+ mT__75();
+
+ }
+ break;
+ case 59 :
+ // InternalRBAModel.g:1:358: T__76
+ {
+ mT__76();
+
+ }
+ break;
+ case 60 :
+ // InternalRBAModel.g:1:364: T__77
+ {
+ mT__77();
+
+ }
+ break;
+ case 61 :
+ // InternalRBAModel.g:1:370: T__78
+ {
+ mT__78();
+
+ }
+ break;
+ case 62 :
+ // InternalRBAModel.g:1:376: T__79
+ {
+ mT__79();
+
+ }
+ break;
+ case 63 :
+ // InternalRBAModel.g:1:382: T__80
+ {
+ mT__80();
+
+ }
+ break;
+ case 64 :
+ // InternalRBAModel.g:1:388: T__81
+ {
+ mT__81();
+
+ }
+ break;
+ case 65 :
+ // InternalRBAModel.g:1:394: T__82
+ {
+ mT__82();
+
+ }
+ break;
+ case 66 :
+ // InternalRBAModel.g:1:400: T__83
+ {
+ mT__83();
+
+ }
+ break;
+ case 67 :
+ // InternalRBAModel.g:1:406: T__84
+ {
+ mT__84();
+
+ }
+ break;
+ case 68 :
+ // InternalRBAModel.g:1:412: T__85
+ {
+ mT__85();
+
+ }
+ break;
+ case 69 :
+ // InternalRBAModel.g:1:418: T__86
+ {
+ mT__86();
+
+ }
+ break;
+ case 70 :
+ // InternalRBAModel.g:1:424: T__87
+ {
+ mT__87();
+
+ }
+ break;
+ case 71 :
+ // InternalRBAModel.g:1:430: T__88
+ {
+ mT__88();
+
+ }
+ break;
+ case 72 :
+ // InternalRBAModel.g:1:436: T__89
+ {
+ mT__89();
+
+ }
+ break;
+ case 73 :
+ // InternalRBAModel.g:1:442: T__90
+ {
+ mT__90();
+
+ }
+ break;
+ case 74 :
+ // InternalRBAModel.g:1:448: T__91
+ {
+ mT__91();
+
+ }
+ break;
+ case 75 :
+ // InternalRBAModel.g:1:454: T__92
+ {
+ mT__92();
+
+ }
+ break;
+ case 76 :
+ // InternalRBAModel.g:1:460: T__93
+ {
+ mT__93();
+
+ }
+ break;
+ case 77 :
+ // InternalRBAModel.g:1:466: T__94
+ {
+ mT__94();
+
+ }
+ break;
+ case 78 :
+ // InternalRBAModel.g:1:472: T__95
+ {
+ mT__95();
+
+ }
+ break;
+ case 79 :
+ // InternalRBAModel.g:1:478: T__96
+ {
+ mT__96();
+
+ }
+ break;
+ case 80 :
+ // InternalRBAModel.g:1:484: T__97
+ {
+ mT__97();
+
+ }
+ break;
+ case 81 :
+ // InternalRBAModel.g:1:490: T__98
+ {
+ mT__98();
+
+ }
+ break;
+ case 82 :
+ // InternalRBAModel.g:1:496: T__99
+ {
+ mT__99();
+
+ }
+ break;
+ case 83 :
+ // InternalRBAModel.g:1:502: T__100
+ {
+ mT__100();
+
+ }
+ break;
+ case 84 :
+ // InternalRBAModel.g:1:509: T__101
+ {
+ mT__101();
+
+ }
+ break;
+ case 85 :
+ // InternalRBAModel.g:1:516: T__102
+ {
+ mT__102();
+
+ }
+ break;
+ case 86 :
+ // InternalRBAModel.g:1:523: T__103
+ {
+ mT__103();
+
+ }
+ break;
+ case 87 :
+ // InternalRBAModel.g:1:530: T__104
+ {
+ mT__104();
+
+ }
+ break;
+ case 88 :
+ // InternalRBAModel.g:1:537: T__105
+ {
+ mT__105();
+
+ }
+ break;
+ case 89 :
+ // InternalRBAModel.g:1:544: T__106
+ {
+ mT__106();
+
+ }
+ break;
+ case 90 :
+ // InternalRBAModel.g:1:551: T__107
+ {
+ mT__107();
+
+ }
+ break;
+ case 91 :
+ // InternalRBAModel.g:1:558: T__108
+ {
+ mT__108();
+
+ }
+ break;
+ case 92 :
+ // InternalRBAModel.g:1:565: T__109
+ {
+ mT__109();
+
+ }
+ break;
+ case 93 :
+ // InternalRBAModel.g:1:572: T__110
+ {
+ mT__110();
+
+ }
+ break;
+ case 94 :
+ // InternalRBAModel.g:1:579: T__111
+ {
+ mT__111();
+
+ }
+ break;
+ case 95 :
+ // InternalRBAModel.g:1:586: T__112
+ {
+ mT__112();
+
+ }
+ break;
+ case 96 :
+ // InternalRBAModel.g:1:593: T__113
+ {
+ mT__113();
+
+ }
+ break;
+ case 97 :
+ // InternalRBAModel.g:1:600: T__114
+ {
+ mT__114();
+
+ }
+ break;
+ case 98 :
+ // InternalRBAModel.g:1:607: T__115
+ {
+ mT__115();
+
+ }
+ break;
+ case 99 :
+ // InternalRBAModel.g:1:614: T__116
+ {
+ mT__116();
+
+ }
+ break;
+ case 100 :
+ // InternalRBAModel.g:1:621: T__117
+ {
+ mT__117();
+
+ }
+ break;
+ case 101 :
+ // InternalRBAModel.g:1:628: T__118
+ {
+ mT__118();
+
+ }
+ break;
+ case 102 :
+ // InternalRBAModel.g:1:635: T__119
+ {
+ mT__119();
+
+ }
+ break;
+ case 103 :
+ // InternalRBAModel.g:1:642: T__120
+ {
+ mT__120();
+
+ }
+ break;
+ case 104 :
+ // InternalRBAModel.g:1:649: T__121
+ {
+ mT__121();
+
+ }
+ break;
+ case 105 :
+ // InternalRBAModel.g:1:656: T__122
+ {
+ mT__122();
+
+ }
+ break;
+ case 106 :
+ // InternalRBAModel.g:1:663: T__123
+ {
+ mT__123();
+
+ }
+ break;
+ case 107 :
+ // InternalRBAModel.g:1:670: T__124
+ {
+ mT__124();
+
+ }
+ break;
+ case 108 :
+ // InternalRBAModel.g:1:677: T__125
+ {
+ mT__125();
+
+ }
+ break;
+ case 109 :
+ // InternalRBAModel.g:1:684: T__126
+ {
+ mT__126();
+
+ }
+ break;
+ case 110 :
+ // InternalRBAModel.g:1:691: T__127
+ {
+ mT__127();
+
+ }
+ break;
+ case 111 :
+ // InternalRBAModel.g:1:698: T__128
+ {
+ mT__128();
+
+ }
+ break;
+ case 112 :
+ // InternalRBAModel.g:1:705: T__129
+ {
+ mT__129();
+
+ }
+ break;
+ case 113 :
+ // InternalRBAModel.g:1:712: T__130
+ {
+ mT__130();
+
+ }
+ break;
+ case 114 :
+ // InternalRBAModel.g:1:719: T__131
+ {
+ mT__131();
+
+ }
+ break;
+ case 115 :
+ // InternalRBAModel.g:1:726: T__132
+ {
+ mT__132();
+
+ }
+ break;
+ case 116 :
+ // InternalRBAModel.g:1:733: T__133
+ {
+ mT__133();
+
+ }
+ break;
+ case 117 :
+ // InternalRBAModel.g:1:740: T__134
+ {
+ mT__134();
+
+ }
+ break;
+ case 118 :
+ // InternalRBAModel.g:1:747: T__135
+ {
+ mT__135();
+
+ }
+ break;
+ case 119 :
+ // InternalRBAModel.g:1:754: T__136
+ {
+ mT__136();
+
+ }
+ break;
+ case 120 :
+ // InternalRBAModel.g:1:761: T__137
+ {
+ mT__137();
+
+ }
+ break;
+ case 121 :
+ // InternalRBAModel.g:1:768: T__138
+ {
+ mT__138();
+
+ }
+ break;
+ case 122 :
+ // InternalRBAModel.g:1:775: T__139
+ {
+ mT__139();
+
+ }
+ break;
+ case 123 :
+ // InternalRBAModel.g:1:782: T__140
+ {
+ mT__140();
+
+ }
+ break;
+ case 124 :
+ // InternalRBAModel.g:1:789: T__141
+ {
+ mT__141();
+
+ }
+ break;
+ case 125 :
+ // InternalRBAModel.g:1:796: T__142
+ {
+ mT__142();
+
+ }
+ break;
+ case 126 :
+ // InternalRBAModel.g:1:803: T__143
+ {
+ mT__143();
+
+ }
+ break;
+ case 127 :
+ // InternalRBAModel.g:1:810: T__144
+ {
+ mT__144();
+
+ }
+ break;
+ case 128 :
+ // InternalRBAModel.g:1:817: T__145
+ {
+ mT__145();
+
+ }
+ break;
+ case 129 :
+ // InternalRBAModel.g:1:824: T__146
+ {
+ mT__146();
+
+ }
+ break;
+ case 130 :
+ // InternalRBAModel.g:1:831: T__147
+ {
+ mT__147();
+
+ }
+ break;
+ case 131 :
+ // InternalRBAModel.g:1:838: T__148
+ {
+ mT__148();
+
+ }
+ break;
+ case 132 :
+ // InternalRBAModel.g:1:845: T__149
+ {
+ mT__149();
+
+ }
+ break;
+ case 133 :
+ // InternalRBAModel.g:1:852: T__150
+ {
+ mT__150();
+
+ }
+ break;
+ case 134 :
+ // InternalRBAModel.g:1:859: T__151
+ {
+ mT__151();
+
+ }
+ break;
+ case 135 :
+ // InternalRBAModel.g:1:866: T__152
+ {
+ mT__152();
+
+ }
+ break;
+ case 136 :
+ // InternalRBAModel.g:1:873: T__153
+ {
+ mT__153();
+
+ }
+ break;
+ case 137 :
+ // InternalRBAModel.g:1:880: T__154
+ {
+ mT__154();
+
+ }
+ break;
+ case 138 :
+ // InternalRBAModel.g:1:887: T__155
+ {
+ mT__155();
+
+ }
+ break;
+ case 139 :
+ // InternalRBAModel.g:1:894: T__156
+ {
+ mT__156();
+
+ }
+ break;
+ case 140 :
+ // InternalRBAModel.g:1:901: T__157
+ {
+ mT__157();
+
+ }
+ break;
+ case 141 :
+ // InternalRBAModel.g:1:908: T__158
+ {
+ mT__158();
+
+ }
+ break;
+ case 142 :
+ // InternalRBAModel.g:1:915: T__159
+ {
+ mT__159();
+
+ }
+ break;
+ case 143 :
+ // InternalRBAModel.g:1:922: T__160
+ {
+ mT__160();
+
+ }
+ break;
+ case 144 :
+ // InternalRBAModel.g:1:929: T__161
+ {
+ mT__161();
+
+ }
+ break;
+ case 145 :
+ // InternalRBAModel.g:1:936: T__162
+ {
+ mT__162();
+
+ }
+ break;
+ case 146 :
+ // InternalRBAModel.g:1:943: T__163
+ {
+ mT__163();
+
+ }
+ break;
+ case 147 :
+ // InternalRBAModel.g:1:950: T__164
+ {
+ mT__164();
+
+ }
+ break;
+ case 148 :
+ // InternalRBAModel.g:1:957: T__165
+ {
+ mT__165();
+
+ }
+ break;
+ case 149 :
+ // InternalRBAModel.g:1:964: T__166
+ {
+ mT__166();
+
+ }
+ break;
+ case 150 :
+ // InternalRBAModel.g:1:971: T__167
+ {
+ mT__167();
+
+ }
+ break;
+ case 151 :
+ // InternalRBAModel.g:1:978: RULE_ID
+ {
+ mRULE_ID();
+
+ }
+ break;
+ case 152 :
+ // InternalRBAModel.g:1:986: RULE_WS
+ {
+ mRULE_WS();
+
+ }
+ break;
+ case 153 :
+ // InternalRBAModel.g:1:994: RULE_INT
+ {
+ mRULE_INT();
+
+ }
+ break;
+ case 154 :
+ // InternalRBAModel.g:1:1003: RULE_STRING
+ {
+ mRULE_STRING();
+
+ }
+ break;
+ case 155 :
+ // InternalRBAModel.g:1:1015: RULE_RICH_STRING
+ {
+ mRULE_RICH_STRING();
+
+ }
+ break;
+ case 156 :
+ // InternalRBAModel.g:1:1032: RULE_ML_COMMENT
+ {
+ mRULE_ML_COMMENT();
+
+ }
+ break;
+ case 157 :
+ // InternalRBAModel.g:1:1048: RULE_SL_COMMENT
+ {
+ mRULE_SL_COMMENT();
+
+ }
+ break;
+
+ }
+
+ }
+
+
+ protected DFA15 dfa15 = new DFA15(this);
+ static final String DFA15_eotS =
+ "\1\uffff\2\71\1\uffff\1\107\1\112\5\uffff\3\71\1\127\1\uffff\10\71\2\uffff\12\71\1\uffff\1\177\1\71\1\u0083\2\71\1\u008b\1\u008d\7\71\1\uffff\5\71\6\uffff\6\71\6\uffff\13\71\2\uffff\33\71\1\u00d9\2\uffff\10\71\2\uffff\2\71\2\uffff\6\71\4\uffff\6\71\1\u00f0\13\71\2\uffff\1\71\1\u00fd\1\u00fe\1\71\1\u0100\26\71\1\u011b\15\71\1\u0129\15\71\1\uffff\20\71\1\u0148\5\71\1\uffff\14\71\2\uffff\1\71\1\uffff\1\u015b\25\71\1\u0171\2\71\1\u0175\1\uffff\1\71\1\u017b\13\71\1\uffff\11\71\1\u0191\5\71\1\u0197\1\u0198\6\71\1\u019f\1\71\1\u01a1\4\71\1\uffff\5\71\1\u01ab\1\71\1\uffff\12\71\1\uffff\23\71\1\u01ca\1\71\1\uffff\1\71\1\u01cd\1\71\1\uffff\5\71\1\uffff\25\71\1\uffff\5\71\2\uffff\5\71\2\uffff\1\71\1\uffff\11\71\1\uffff\4\71\1\u0201\4\71\1\u0208\1\u0209\23\71\1\uffff\2\71\1\uffff\26\71\1\uffff\5\71\1\u023b\1\71\1\u023d\2\71\1\uffff\15\71\1\u024d\3\71\1\uffff\6\71\2\uffff\7\71\1\u0260\4\71\1\u0265\1\u0266\7\71\1\u026e\4\71\1\u0273\2\71\1\u0276\1\u0277\6\71\1\uffff\6\71\1\uffff\4\71\1\uffff\1\71\2\uffff\3\71\1\uffff\5\71\1\uffff\4\71\1\uffff\14\71\1\u02a6\3\71\1\u02aa\1\71\1\uffff\3\71\1\u02af\2\uffff\7\71\1\uffff\4\71\1\uffff\2\71\2\uffff\6\71\1\uffff\15\71\1\uffff\1\71\1\uffff\17\71\1\u02e0\7\71\1\uffff\3\71\1\uffff\1\u02eb\1\71\1\u02ef\1\71\1\uffff\7\71\1\u02f9\1\71\1\u02fb\27\71\1\uffff\2\71\1\u0315\1\u0316\12\71\1\uffff\2\71\1\u0323\7\71\1\uffff\1\u032b\2\71\1\uffff\6\71\1\u0334\2\71\1\uffff\1\71\1\uffff\4\71\1\u033c\1\71\1\u033e\2\71\1\uffff\13\71\1\u034c\1\71\1\u034e\1\71\2\uffff\10\71\1\uffff\3\71\1\uffff\2\71\1\u035d\1\u035f\2\71\1\u0363\1\uffff\10\71\1\uffff\4\71\1\u0371\2\71\1\uffff\1\71\1\uffff\10\71\1\u037e\4\71\3\uffff\12\71\1\u038d\1\u038e\2\71\1\uffff\1\71\1\uffff\1\u0392\2\71\1\uffff\6\71\1\uffff\1\71\1\u039f\4\71\1\uffff\5\71\1\uffff\1\u03a9\5\71\1\uffff\4\71\1\u03b3\1\71\1\u03b5\1\u03b6\6\71\2\uffff\1\u03bd\1\u03be\1\u03bf\1\uffff\1\u03c0\1\u03c1\12\71\1\uffff\6\71\1\u03d2\1\u03d3\1\u03d4\1\uffff\11\71\1\uffff\1\71\2\uffff\6\71\5\uffff\2\71\1\u03e7\7\71\1\u03ef\2\71\1\u03f2\1\u03f3\1\71\3\uffff\2\71\1\uffff\1\71\1\u03f8\3\71\1\uffff\10\71\1\u0404\1\uffff\6\71\1\u040b\1\uffff\2\71\2\uffff\3\71\2\uffff\4\71\1\u0415\4\71\1\u041a\1\u041b\1\uffff\6\71\1\uffff\1\u0422\2\71\1\u0425\2\71\1\u0428\1\u0429\1\71\1\uffff\1\71\1\u042c\1\71\1\u042e\2\uffff\2\71\1\u0431\2\71\1\u0434\1\uffff\1\u0435\1\71\1\uffff\2\71\2\uffff\1\u0439\1\u043a\1\uffff\1\71\1\uffff\1\u043c\1\71\1\uffff\2\71\2\uffff\1\71\1\uffff\1\u0441\2\uffff\1\71\1\uffff\1\u0443\3\71\1\uffff\1\u0447\1\uffff\3\71\1\uffff\10\71\1\u0453\1\71\1\u0455\1\uffff\1\u0456\2\uffff";
+ static final String DFA15_eofS =
+ "\u0457\uffff";
+ static final String DFA15_minS =
+ "\1\0\1\141\1\155\1\uffff\1\74\1\75\5\uffff\1\122\1\145\1\124\1\160\1\uffff\1\114\1\157\1\145\2\105\1\165\1\141\1\143\2\uffff\1\151\1\141\1\145\1\122\2\72\2\141\1\162\1\157\1\uffff\1\75\1\110\1\52\1\105\1\101\1\76\1\75\1\145\1\157\1\165\1\151\1\106\1\114\1\111\1\uffff\2\141\1\101\1\111\1\117\5\uffff\1\52\1\144\1\170\1\156\1\160\1\164\1\101\6\uffff\1\143\1\157\1\163\1\111\2\163\1\141\1\165\1\172\1\101\1\145\2\uffff\1\145\1\104\1\114\1\156\1\145\1\162\1\163\1\106\1\137\1\155\1\116\1\156\1\163\1\171\1\164\1\154\1\142\2\164\1\144\1\151\1\163\1\172\1\141\1\154\1\142\1\146\1\0\2\uffff\1\162\1\165\1\151\1\163\1\154\1\162\1\151\1\162\2\uffff\1\141\1\105\2\uffff\1\116\1\114\1\126\1\116\1\130\1\164\4\uffff\1\164\1\157\1\156\1\164\1\144\1\162\1\0\1\123\1\151\1\162\1\170\1\122\1\163\1\154\1\123\1\106\1\107\1\117\2\uffff\1\165\2\0\1\157\1\0\1\156\1\143\3\151\1\165\1\157\1\150\1\162\1\153\1\152\1\151\1\117\1\143\1\160\1\162\1\164\1\156\1\145\1\116\1\156\1\141\1\0\1\137\1\145\1\167\1\164\1\160\1\101\1\116\1\163\1\160\1\124\1\164\1\145\1\157\1\0\1\157\1\151\1\141\1\145\1\151\1\164\1\147\1\102\1\145\1\164\1\145\1\141\1\163\1\uffff\1\147\1\145\1\163\1\151\1\165\1\163\1\157\1\144\1\164\1\116\1\105\1\114\1\105\2\137\1\145\1\0\1\142\1\164\1\160\1\145\1\151\1\uffff\1\105\1\163\1\55\1\145\1\123\1\145\1\163\2\124\1\110\1\104\1\154\2\uffff\1\162\1\uffff\1\0\3\164\1\154\1\163\1\144\1\163\1\164\1\165\2\141\1\160\1\141\1\145\1\164\1\122\1\162\1\154\2\145\1\144\1\0\1\104\1\145\1\0\1\uffff\1\101\1\0\1\103\1\151\1\154\1\125\1\117\1\164\1\157\1\105\1\151\1\162\1\165\1\uffff\1\143\1\164\1\122\1\156\1\166\2\150\1\157\1\145\1\0\1\145\1\143\1\162\2\145\2\0\1\142\1\145\1\151\1\162\1\145\1\55\1\0\1\137\1\0\1\122\2\126\1\114\1\uffff\1\141\1\145\1\165\1\114\1\172\1\0\1\164\1\uffff\1\144\1\124\1\120\1\145\2\137\1\124\1\137\1\145\1\164\1\uffff\1\160\1\151\1\145\1\157\1\160\1\144\1\151\1\145\3\156\1\145\1\147\1\143\1\151\1\111\1\151\1\141\1\157\1\0\1\103\1\uffff\1\101\1\0\1\145\1\uffff\1\122\1\111\2\117\1\145\1\uffff\1\157\1\143\1\141\1\114\1\124\1\162\1\163\1\122\1\155\1\124\1\164\1\141\1\162\1\145\1\165\1\145\1\72\1\164\1\155\2\145\1\uffff\1\126\1\164\1\145\2\164\2\uffff\1\151\1\72\1\157\1\151\1\162\2\uffff\1\126\1\uffff\1\137\2\101\1\157\1\154\1\156\1\164\2\157\1\uffff\1\163\1\120\1\137\1\157\1\0\1\103\1\102\1\137\1\114\2\0\1\165\1\166\1\156\1\143\1\154\1\145\1\142\2\144\1\147\1\163\1\117\1\145\1\164\1\157\1\124\1\160\1\171\1\164\1\uffff\1\157\1\122\1\uffff\1\164\2\105\1\116\1\125\1\164\1\156\1\141\1\171\1\124\1\137\1\141\1\151\1\137\1\145\1\171\1\72\1\164\1\141\1\146\1\141\1\103\1\uffff\1\72\1\145\1\156\1\146\1\141\1\0\1\141\1\0\1\72\1\154\1\uffff\1\156\1\164\1\72\1\101\1\107\2\114\1\167\1\72\2\164\1\167\1\156\1\0\1\157\1\103\1\151\1\uffff\2\117\1\111\1\117\1\102\1\117\2\uffff\1\164\1\145\1\165\2\141\1\156\1\154\1\0\1\151\1\145\1\154\1\146\2\0\1\156\1\131\1\164\1\151\1\171\1\156\1\104\1\0\1\101\1\127\1\105\1\116\1\0\1\164\1\154\2\0\1\107\1\151\1\164\1\102\1\72\1\160\1\uffff\1\141\1\164\1\145\1\164\1\157\1\164\1\uffff\1\105\1\104\1\145\1\154\1\uffff\1\72\2\uffff\1\151\1\72\1\171\1\uffff\1\114\1\111\2\125\1\145\1\uffff\1\126\1\151\1\145\1\164\1\uffff\1\163\1\117\1\156\1\115\1\120\1\104\1\124\1\117\1\111\1\117\1\123\1\164\1\0\1\141\1\164\1\171\1\0\1\145\1\uffff\1\156\1\144\1\141\1\0\2\uffff\1\103\1\137\1\151\1\156\1\160\1\164\1\137\1\uffff\1\123\1\103\1\123\1\104\1\uffff\1\145\1\114\2\uffff\1\111\1\156\1\145\1\117\1\111\1\117\1\uffff\1\145\1\142\1\144\1\151\1\162\1\145\1\156\3\141\1\151\1\162\1\165\1\uffff\1\164\1\uffff\1\72\1\125\1\126\2\105\1\162\1\114\1\141\1\156\1\162\1\141\1\151\1\115\1\164\1\105\1\0\1\104\1\124\1\120\1\104\1\124\1\105\1\145\1\uffff\1\164\2\145\1\uffff\1\0\1\147\1\0\1\164\1\uffff\1\157\1\106\1\157\1\147\2\145\1\126\1\0\1\117\1\0\1\103\1\156\1\141\1\126\1\164\1\101\1\120\1\104\1\124\1\72\1\154\1\103\1\157\1\145\1\126\2\164\1\162\1\164\1\163\2\145\1\171\1\uffff\2\105\2\0\1\120\1\151\1\154\1\147\1\120\1\154\1\164\1\105\1\72\1\137\1\uffff\1\114\1\117\1\0\1\104\1\124\1\122\1\144\1\145\2\144\1\uffff\1\0\1\151\1\165\1\uffff\1\145\1\156\1\111\1\101\1\156\1\103\1\0\1\156\1\101\1\uffff\1\116\1\uffff\1\117\1\164\1\171\1\105\1\0\1\162\1\0\1\104\1\124\1\uffff\1\145\1\157\2\156\1\141\2\145\1\154\1\145\1\160\1\156\1\0\1\72\1\0\1\125\2\uffff\1\162\1\163\1\165\1\123\1\162\1\114\1\151\1\137\1\uffff\1\106\1\105\1\115\1\uffff\1\114\1\117\2\0\1\144\1\124\1\0\1\uffff\1\163\1\164\1\144\1\164\1\122\1\123\1\72\1\157\1\uffff\1\164\1\114\1\124\1\116\1\0\1\157\1\125\1\uffff\1\145\1\uffff\1\114\1\117\1\72\1\156\1\120\1\143\1\154\1\156\1\0\1\151\1\162\1\154\1\143\3\uffff\1\120\1\151\1\164\1\145\1\157\1\151\1\141\1\157\1\106\1\111\2\0\1\105\1\115\1\uffff\1\156\1\uffff\1\0\1\157\1\156\1\uffff\2\160\1\123\1\141\1\123\1\124\1\uffff\1\156\1\0\1\125\1\105\1\124\1\145\1\uffff\1\165\1\120\1\141\1\105\1\115\1\uffff\1\0\1\164\1\157\1\145\1\165\1\164\1\uffff\1\145\1\124\1\141\1\145\1\0\1\157\2\0\1\165\1\157\1\171\1\156\1\111\1\122\2\uffff\3\0\1\uffff\2\0\1\154\1\165\1\157\1\151\1\157\1\151\1\124\1\137\1\164\1\145\1\uffff\1\105\1\116\1\105\2\164\1\137\3\0\1\uffff\1\145\1\154\1\72\1\145\1\163\1\162\1\150\1\171\1\72\1\uffff\1\162\2\uffff\1\156\1\162\1\157\1\114\1\122\1\123\5\uffff\1\141\1\164\1\0\1\145\1\165\1\156\1\137\1\103\1\145\1\164\1\0\1\124\1\116\2\0\1\125\3\uffff\1\156\1\151\1\uffff\1\72\1\0\1\124\1\141\1\145\1\uffff\1\151\1\144\1\151\1\165\1\141\1\123\1\124\1\171\1\0\1\uffff\1\167\1\156\1\145\1\103\1\117\1\156\1\0\1\uffff\1\123\1\124\2\uffff\1\116\1\164\1\143\2\uffff\1\150\1\156\1\144\1\164\1\0\2\164\1\171\1\124\2\0\1\uffff\1\124\1\144\1\162\1\117\1\115\1\164\1\uffff\1\0\1\123\1\124\1\0\1\171\1\141\2\0\1\171\1\uffff\1\171\1\0\1\157\1\0\2\uffff\1\157\1\124\1\0\1\115\1\105\1\0\1\uffff\1\0\1\111\1\uffff\1\72\1\156\2\uffff\2\0\1\uffff\1\165\1\uffff\1\0\1\157\1\uffff\1\105\1\137\2\uffff\1\114\1\uffff\1\0\2\uffff\1\164\1\uffff\1\0\1\137\1\106\1\137\1\uffff\1\0\1\uffff\1\106\1\111\1\127\1\uffff\1\111\1\122\1\111\1\122\1\123\1\116\1\123\1\124\1\0\1\124\1\0\1\uffff\1\0\2\uffff";
+ static final String DFA15_maxS =
+ "\1\ufffb\1\157\1\163\1\uffff\1\75\1\76\5\uffff\1\162\1\151\1\164\1\160\1\uffff\1\162\1\157\2\151\1\157\1\165\1\157\1\164\2\uffff\1\151\1\145\1\165\1\146\2\72\1\162\1\151\1\162\1\157\1\uffff\1\75\1\150\1\52\1\125\1\165\1\76\1\75\1\154\1\157\1\165\1\157\1\106\1\170\1\157\1\uffff\2\141\1\105\1\111\1\117\5\uffff\1\57\1\144\1\170\1\156\1\160\1\164\1\126\6\uffff\1\143\1\157\1\163\1\111\2\163\1\145\1\165\1\172\1\101\1\145\2\uffff\1\145\1\104\1\114\1\156\1\145\1\162\1\163\1\106\1\137\1\156\1\116\1\156\1\163\1\171\1\164\1\154\1\145\2\164\1\144\1\151\1\163\1\172\1\141\1\154\1\142\1\146\1\ufffb\2\uffff\1\162\1\165\1\151\1\163\1\154\1\162\1\151\1\162\2\uffff\1\141\1\105\2\uffff\1\116\1\114\1\126\1\116\1\130\1\164\4\uffff\1\164\1\157\1\156\1\164\1\144\1\162\1\ufffb\1\123\1\151\1\162\1\170\1\122\1\163\1\154\1\123\1\106\1\107\1\117\2\uffff\1\165\2\ufffb\1\157\1\ufffb\1\165\1\164\3\151\1\165\1\157\1\150\1\171\1\153\1\152\1\151\1\117\1\143\1\160\1\162\1\164\1\156\1\145\1\116\1\156\1\141\1\ufffb\1\137\1\145\1\167\1\164\1\160\1\101\1\116\1\163\1\160\1\124\1\164\1\145\1\157\1\ufffb\1\157\1\151\1\141\1\145\1\151\1\164\1\147\1\103\1\145\1\164\1\145\1\141\1\163\1\uffff\1\147\1\145\1\163\1\151\1\165\1\163\1\157\1\144\1\164\1\116\1\105\1\114\1\105\2\137\1\145\1\ufffb\1\142\1\164\1\160\1\145\1\151\1\uffff\1\105\1\163\1\55\1\145\1\123\1\145\1\163\2\124\1\110\1\104\1\154\2\uffff\1\162\1\uffff\1\ufffb\3\164\1\154\1\163\1\144\1\163\1\164\1\165\2\141\1\160\1\141\1\145\1\164\1\122\1\162\1\154\2\145\1\144\1\ufffb\1\104\1\145\1\ufffb\1\uffff\1\132\1\ufffb\1\103\1\151\1\154\1\125\1\117\1\164\1\157\1\105\1\151\1\162\1\165\1\uffff\1\143\1\164\1\122\1\156\1\166\2\150\1\157\1\145\1\ufffb\1\145\1\143\1\162\2\145\2\ufffb\1\142\1\145\1\151\1\162\1\145\1\55\1\ufffb\1\137\1\ufffb\1\122\2\126\1\114\1\uffff\1\141\1\145\1\165\1\114\1\172\1\ufffb\1\164\1\uffff\1\144\1\124\1\120\1\145\2\137\1\124\1\137\1\145\1\164\1\uffff\1\160\1\151\1\145\1\157\1\160\1\144\1\151\1\145\3\156\1\145\1\147\1\143\1\151\1\111\1\151\1\141\1\157\1\ufffb\1\103\1\uffff\1\101\1\ufffb\1\145\1\uffff\1\122\1\111\2\117\1\145\1\uffff\1\157\1\143\1\141\1\114\1\124\1\162\1\163\1\122\1\155\1\124\1\164\1\141\1\162\1\145\1\165\1\145\1\72\1\164\1\155\2\145\1\uffff\1\126\1\164\1\145\2\164\2\uffff\1\151\1\72\1\157\1\151\1\162\2\uffff\1\126\1\uffff\1\137\2\101\1\157\1\154\1\156\1\164\2\157\1\uffff\1\163\1\120\1\137\1\157\1\ufffb\1\103\1\124\1\137\1\114\2\ufffb\1\165\1\166\1\156\1\143\1\154\1\145\1\142\2\144\1\147\1\163\1\117\1\145\1\164\1\157\1\124\1\160\1\171\1\164\1\uffff\1\157\1\122\1\uffff\1\164\2\105\1\116\1\125\1\164\1\156\1\141\1\171\1\124\1\137\1\141\1\151\1\137\1\145\1\171\1\72\1\164\1\141\1\146\1\141\1\123\1\uffff\1\72\1\145\1\156\1\146\1\141\1\ufffb\1\141\1\ufffb\1\72\1\154\1\uffff\1\156\1\164\1\72\1\101\1\107\2\114\1\167\1\72\2\164\1\167\1\156\1\ufffb\1\157\1\103\1\151\1\uffff\2\117\1\111\1\117\1\124\1\117\2\uffff\1\164\1\145\1\165\2\141\1\156\1\154\1\ufffb\1\151\1\145\1\154\1\146\2\ufffb\1\156\1\131\1\164\1\151\1\171\1\156\1\104\1\ufffb\1\101\1\127\1\105\1\116\1\ufffb\1\164\1\154\2\ufffb\1\107\1\151\1\164\1\124\1\72\1\160\1\uffff\1\145\1\164\1\145\1\164\1\157\1\164\1\uffff\1\114\1\104\1\145\1\154\1\uffff\1\72\2\uffff\1\151\1\72\1\171\1\uffff\1\114\1\111\2\125\1\145\1\uffff\1\163\1\151\1\145\1\164\1\uffff\1\163\1\117\1\156\1\115\1\120\1\104\1\124\1\117\1\111\1\117\1\123\1\164\1\ufffb\1\141\1\164\1\171\1\ufffb\1\145\1\uffff\1\156\1\144\1\141\1\ufffb\2\uffff\1\103\1\137\1\151\1\156\1\160\1\164\1\137\1\uffff\1\123\1\103\1\123\1\104\1\uffff\1\145\1\114\2\uffff\1\111\1\156\1\145\1\117\1\111\1\117\1\uffff\1\145\1\142\1\144\1\151\1\162\1\145\1\156\3\141\1\151\1\162\1\165\1\uffff\1\164\1\uffff\1\72\1\125\1\126\2\105\1\162\1\114\1\141\1\156\1\162\1\141\1\151\1\115\1\164\1\105\1\ufffb\1\104\1\124\1\120\1\104\1\124\1\105\1\145\1\uffff\1\164\2\145\1\uffff\1\ufffb\1\147\1\ufffb\1\164\1\uffff\1\157\1\114\1\157\1\147\2\145\1\126\1\ufffb\1\117\1\ufffb\1\103\1\156\1\141\1\126\1\164\1\101\1\120\1\104\1\124\1\72\1\154\1\103\1\157\1\145\1\126\2\164\1\162\1\164\1\163\2\145\1\171\1\uffff\2\105\2\ufffb\1\120\1\151\1\154\1\147\1\120\1\154\1\164\1\105\1\72\1\137\1\uffff\1\114\1\117\1\ufffb\1\104\1\124\1\122\1\144\1\145\2\144\1\uffff\1\ufffb\1\151\1\165\1\uffff\1\145\1\156\1\111\1\101\1\156\1\103\1\ufffb\1\156\1\101\1\uffff\1\116\1\uffff\1\117\1\164\1\171\1\105\1\ufffb\1\162\1\ufffb\1\104\1\124\1\uffff\1\145\1\157\2\156\1\141\2\145\1\154\1\145\1\160\1\156\1\ufffb\1\72\1\ufffb\1\125\2\uffff\1\162\1\163\1\165\1\123\1\162\1\114\1\151\1\137\1\uffff\1\106\1\105\1\115\1\uffff\1\114\1\117\2\ufffb\1\144\1\124\1\ufffb\1\uffff\1\163\1\164\1\144\1\164\1\122\1\123\1\72\1\157\1\uffff\1\164\1\114\1\124\1\116\1\ufffb\1\157\1\125\1\uffff\1\145\1\uffff\1\114\1\117\1\163\1\156\1\120\1\143\1\154\1\156\1\ufffb\1\151\1\162\1\154\1\143\3\uffff\1\120\1\151\1\164\1\145\1\157\1\151\1\141\1\157\1\106\1\111\2\ufffb\1\105\1\115\1\uffff\1\156\1\uffff\1\ufffb\1\157\1\156\1\uffff\2\160\1\126\1\141\1\123\1\124\1\uffff\1\156\1\ufffb\1\125\1\105\1\124\1\145\1\uffff\1\165\1\120\1\141\1\105\1\115\1\uffff\1\ufffb\1\164\1\157\1\145\1\165\1\164\1\uffff\1\145\1\124\1\141\1\145\1\ufffb\1\157\2\ufffb\1\165\1\157\1\171\1\156\1\111\1\122\2\uffff\3\ufffb\1\uffff\2\ufffb\1\154\1\165\1\157\1\151\1\157\1\151\1\124\1\137\1\164\1\145\1\uffff\1\105\1\116\1\105\2\164\1\137\3\ufffb\1\uffff\1\145\1\154\1\72\1\145\1\163\1\162\1\150\1\171\1\72\1\uffff\1\162\2\uffff\1\156\1\162\1\157\1\114\1\122\1\123\5\uffff\1\141\1\164\1\ufffb\1\145\1\165\1\156\1\137\1\103\1\145\1\164\1\ufffb\1\124\1\116\2\ufffb\1\125\3\uffff\1\156\1\151\1\uffff\1\72\1\ufffb\1\124\1\141\1\145\1\uffff\1\151\1\144\1\151\1\165\1\141\1\123\1\124\1\171\1\ufffb\1\uffff\1\167\1\156\1\145\1\103\1\117\1\156\1\ufffb\1\uffff\1\123\1\124\2\uffff\1\116\1\164\1\143\2\uffff\1\150\1\156\1\144\1\164\1\ufffb\2\164\1\171\1\124\2\ufffb\1\uffff\1\124\1\144\1\162\1\117\1\115\1\164\1\uffff\1\ufffb\1\123\1\124\1\ufffb\1\171\1\141\2\ufffb\1\171\1\uffff\1\171\1\ufffb\1\157\1\ufffb\2\uffff\1\157\1\124\1\ufffb\1\115\1\105\1\ufffb\1\uffff\1\ufffb\1\111\1\uffff\1\72\1\156\2\uffff\2\ufffb\1\uffff\1\165\1\uffff\1\ufffb\1\157\1\uffff\1\105\1\137\2\uffff\1\114\1\uffff\1\ufffb\2\uffff\1\164\1\uffff\1\ufffb\1\137\1\106\1\137\1\uffff\1\ufffb\1\uffff\1\106\1\111\1\127\1\uffff\1\111\1\122\1\111\1\122\1\123\1\116\1\123\1\124\1\ufffb\1\124\1\ufffb\1\uffff\1\ufffb\2\uffff";
+ static final String DFA15_acceptS =
+ "\3\uffff\1\4\2\uffff\1\7\1\10\1\11\1\12\1\13\4\uffff\1\22\10\uffff\1\34\1\35\12\uffff\1\63\16\uffff\1\164\5\uffff\1\u0097\1\u0098\1\u0099\1\u009a\1\u009b\7\uffff\1\5\1\101\1\17\1\6\1\100\1\20\13\uffff\1\154\1\21\34\uffff\1\43\1\44\10\uffff\1\76\1\64\2\uffff\1\u0084\1\66\6\uffff\1\73\1\u0083\1\77\1\102\22\uffff\1\u009c\1\u009d\67\uffff\1\74\26\uffff\1\157\14\uffff\1\144\1\145\1\uffff\1\3\32\uffff\1\75\15\uffff\1\165\36\uffff\1\103\7\uffff\1\162\12\uffff\1\104\25\uffff\1\36\3\uffff\1\23\5\uffff\1\24\25\uffff\1\141\5\uffff\1\u0081\1\u0085\5\uffff\1\65\1\160\1\uffff\1\153\11\uffff\1\161\36\uffff\1\57\2\uffff\1\170\26\uffff\1\37\12\uffff\1\60\21\uffff\1\u0082\6\uffff\1\1\1\2\45\uffff\1\51\6\uffff\1\40\4\uffff\1\146\1\uffff\1\42\1\46\3\uffff\1\55\5\uffff\1\171\4\uffff\1\163\22\uffff\1\117\4\uffff\1\14\1\61\7\uffff\1\45\4\uffff\1\47\2\uffff\1\27\1\u0086\6\uffff\1\31\15\uffff\1\174\1\uffff\1\62\27\uffff\1\107\3\uffff\1\113\4\uffff\1\137\41\uffff\1\54\16\uffff\1\u008b\12\uffff\1\115\3\uffff\1\127\11\uffff\1\147\1\uffff\1\151\11\uffff\1\32\17\uffff\1\71\1\72\10\uffff\1\173\3\uffff\1\u008e\7\uffff\1\121\10\uffff\1\16\7\uffff\1\30\1\uffff\1\u0091\15\uffff\1\125\1\53\1\70\16\uffff\1\u0095\1\uffff\1\116\3\uffff\1\112\6\uffff\1\15\6\uffff\1\26\5\uffff\1\33\6\uffff\1\143\16\uffff\1\u008c\1\u008d\3\uffff\1\122\14\uffff\1\25\11\uffff\1\110\11\uffff\1\u0094\1\uffff\1\105\1\106\6\uffff\1\u008f\1\u0090\1\134\1\126\1\131\20\uffff\1\50\1\u0092\1\u0093\2\uffff\1\u0080\5\uffff\1\41\11\uffff\1\130\7\uffff\1\67\2\uffff\1\166\1\172\3\uffff\1\56\1\140\13\uffff\1\135\6\uffff\1\167\11\uffff\1\120\4\uffff\1\u0088\1\132\6\uffff\1\150\2\uffff\1\111\2\uffff\1\124\1\142\2\uffff\1\175\1\uffff\1\u0087\2\uffff\1\177\2\uffff\1\114\1\152\1\uffff\1\52\1\uffff\1\156\1\155\1\uffff\1\133\4\uffff\1\123\1\uffff\1\136\3\uffff\1\176\13\uffff\1\u0096\1\uffff\1\u008a\1\u0089";
+ static final String DFA15_specialS =
+ "\u0457\uffff}>";
+ static final String[] DFA15_transitionS = {
+ "\11\71\2\72\2\uffff\1\72\16\71\4\uffff\1\72\1\53\1\74\1\uffff\1\71\3\uffff\1\16\1\17\1\uffff\1\44\1\11\1\52\1\47\1\76\12\73\1\3\1\uffff\1\4\1\45\1\5\1\uffff\1\75\1\20\1\71\1\24\1\23\1\61\1\62\1\70\1\57\1\60\2\71\1\66\1\51\1\50\1\35\1\13\1\71\1\67\1\15\1\46\1\71\1\22\3\71\1\21\1\30\1\71\1\31\1\uffff\1\71\1\uffff\1\27\1\64\1\55\1\14\1\71\1\65\1\54\1\33\1\2\2\71\1\26\1\1\1\71\1\56\1\42\1\71\1\25\1\34\1\40\1\71\1\41\1\32\1\36\1\37\1\43\1\10\1\63\1\12\1\uffff\41\71\2\uffff\4\71\4\uffff\1\71\1\6\1\uffff\1\71\7\uffff\1\71\4\uffff\1\71\1\7\4\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\100\7\uffff\1\101\5\uffff\1\77",
+ "\1\102\1\103\4\uffff\1\104",
+ "",
+ "\1\105\1\106",
+ "\1\111\1\110",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\1\116\16\uffff\1\113\15\uffff\1\115\2\uffff\1\114",
+ "\1\117\3\uffff\1\120",
+ "\1\124\16\uffff\1\125\5\uffff\1\123\5\uffff\1\122\4\uffff\1\121",
+ "\1\126",
+ "",
+ "\1\132\1\uffff\1\131\43\uffff\1\130",
+ "\1\133",
+ "\1\135\3\uffff\1\134",
+ "\1\137\11\uffff\1\140\31\uffff\1\136",
+ "\1\142\51\uffff\1\141",
+ "\1\143",
+ "\1\145\3\uffff\1\146\11\uffff\1\144",
+ "\1\152\10\uffff\1\147\5\uffff\1\150\1\uffff\1\151",
+ "",
+ "",
+ "\1\153",
+ "\1\155\3\uffff\1\154",
+ "\1\160\3\uffff\1\156\12\uffff\1\157\1\161",
+ "\1\163\23\uffff\1\162",
+ "\1\164",
+ "\1\165",
+ "\1\166\6\uffff\1\170\11\uffff\1\167",
+ "\1\172\3\uffff\1\173\3\uffff\1\171",
+ "\1\174",
+ "\1\175",
+ "",
+ "\1\176",
+ "\1\u0081\37\uffff\1\u0080",
+ "\1\u0082",
+ "\1\u0086\11\uffff\1\u0084\5\uffff\1\u0085",
+ "\1\u0088\7\uffff\1\u0087\53\uffff\1\u0089",
+ "\1\u008a",
+ "\1\u008c",
+ "\1\u008e\6\uffff\1\u008f",
+ "\1\u0090",
+ "\1\u0091",
+ "\1\u0092\5\uffff\1\u0093",
+ "\1\u0094",
+ "\1\u0095\53\uffff\1\u0096",
+ "\1\u0099\37\uffff\1\u0098\5\uffff\1\u0097",
+ "",
+ "\1\u009a",
+ "\1\u009b",
+ "\1\u009c\3\uffff\1\u009d",
+ "\1\u009e",
+ "\1\u009f",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\1\u00a0\4\uffff\1\u00a1",
+ "\1\u00a2",
+ "\1\u00a3",
+ "\1\u00a4",
+ "\1\u00a5",
+ "\1\u00a6",
+ "\1\u00a8\1\uffff\1\u00ae\1\u00a9\3\uffff\1\u00aa\4\uffff\1\u00ac\1\uffff\1\u00a7\3\uffff\1\u00ad\1\u00af\1\uffff\1\u00ab",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\1\u00b0",
+ "\1\u00b1",
+ "\1\u00b2",
+ "\1\u00b3",
+ "\1\u00b4",
+ "\1\u00b5",
+ "\1\u00b7\3\uffff\1\u00b6",
+ "\1\u00b8",
+ "\1\u00b9",
+ "\1\u00ba",
+ "\1\u00bb",
+ "",
+ "",
+ "\1\u00bc",
+ "\1\u00bd",
+ "\1\u00be",
+ "\1\u00bf",
+ "\1\u00c0",
+ "\1\u00c1",
+ "\1\u00c2",
+ "\1\u00c3",
+ "\1\u00c4",
+ "\1\u00c6\1\u00c5",
+ "\1\u00c7",
+ "\1\u00c8",
+ "\1\u00c9",
+ "\1\u00ca",
+ "\1\u00cb",
+ "\1\u00cc",
+ "\1\u00cd\2\uffff\1\u00ce",
+ "\1\u00cf",
+ "\1\u00d0",
+ "\1\u00d1",
+ "\1\u00d2",
+ "\1\u00d3",
+ "\1\u00d4",
+ "\1\u00d5",
+ "\1\u00d6",
+ "\1\u00d7",
+ "\1\u00d8",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "",
+ "",
+ "\1\u00da",
+ "\1\u00db",
+ "\1\u00dc",
+ "\1\u00dd",
+ "\1\u00de",
+ "\1\u00df",
+ "\1\u00e0",
+ "\1\u00e1",
+ "",
+ "",
+ "\1\u00e2",
+ "\1\u00e3",
+ "",
+ "",
+ "\1\u00e4",
+ "\1\u00e5",
+ "\1\u00e6",
+ "\1\u00e7",
+ "\1\u00e8",
+ "\1\u00e9",
+ "",
+ "",
+ "",
+ "",
+ "\1\u00ea",
+ "\1\u00eb",
+ "\1\u00ec",
+ "\1\u00ed",
+ "\1\u00ee",
+ "\1\u00ef",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u00f1",
+ "\1\u00f2",
+ "\1\u00f3",
+ "\1\u00f4",
+ "\1\u00f5",
+ "\1\u00f6",
+ "\1\u00f7",
+ "\1\u00f8",
+ "\1\u00f9",
+ "\1\u00fa",
+ "\1\u00fb",
+ "",
+ "",
+ "\1\u00fc",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u00ff",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0101\6\uffff\1\u0102",
+ "\1\u0103\10\uffff\1\u0105\7\uffff\1\u0104",
+ "\1\u0106",
+ "\1\u0107",
+ "\1\u0108",
+ "\1\u0109",
+ "\1\u010a",
+ "\1\u010b",
+ "\1\u010c\6\uffff\1\u010d",
+ "\1\u010e",
+ "\1\u010f",
+ "\1\u0110",
+ "\1\u0111",
+ "\1\u0112",
+ "\1\u0113",
+ "\1\u0114",
+ "\1\u0115",
+ "\1\u0116",
+ "\1\u0117",
+ "\1\u0118",
+ "\1\u0119",
+ "\1\u011a",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u011c",
+ "\1\u011d",
+ "\1\u011e",
+ "\1\u011f",
+ "\1\u0120",
+ "\1\u0121",
+ "\1\u0122",
+ "\1\u0123",
+ "\1\u0124",
+ "\1\u0125",
+ "\1\u0126",
+ "\1\u0127",
+ "\1\u0128",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u012a",
+ "\1\u012b",
+ "\1\u012c",
+ "\1\u012d",
+ "\1\u012e",
+ "\1\u012f",
+ "\1\u0130",
+ "\1\u0132\1\u0131",
+ "\1\u0133",
+ "\1\u0134",
+ "\1\u0135",
+ "\1\u0136",
+ "\1\u0137",
+ "",
+ "\1\u0138",
+ "\1\u0139",
+ "\1\u013a",
+ "\1\u013b",
+ "\1\u013c",
+ "\1\u013d",
+ "\1\u013e",
+ "\1\u013f",
+ "\1\u0140",
+ "\1\u0141",
+ "\1\u0142",
+ "\1\u0143",
+ "\1\u0144",
+ "\1\u0145",
+ "\1\u0146",
+ "\1\u0147",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0149",
+ "\1\u014a",
+ "\1\u014b",
+ "\1\u014c",
+ "\1\u014d",
+ "",
+ "\1\u014e",
+ "\1\u014f",
+ "\1\u0150",
+ "\1\u0151",
+ "\1\u0152",
+ "\1\u0153",
+ "\1\u0154",
+ "\1\u0155",
+ "\1\u0156",
+ "\1\u0157",
+ "\1\u0158",
+ "\1\u0159",
+ "",
+ "",
+ "\1\u015a",
+ "",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u015c",
+ "\1\u015d",
+ "\1\u015e",
+ "\1\u015f",
+ "\1\u0160",
+ "\1\u0161",
+ "\1\u0162",
+ "\1\u0163",
+ "\1\u0164",
+ "\1\u0165",
+ "\1\u0166",
+ "\1\u0167",
+ "\1\u0168",
+ "\1\u0169",
+ "\1\u016a",
+ "\1\u016b",
+ "\1\u016c",
+ "\1\u016d",
+ "\1\u016e",
+ "\1\u016f",
+ "\1\u0170",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0172",
+ "\1\u0173",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\22\71\1\u0174\7\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "",
+ "\1\u0176\21\uffff\1\u0179\2\uffff\1\u0177\3\uffff\1\u0178",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\22\71\1\u017a\7\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u017c",
+ "\1\u017d",
+ "\1\u017e",
+ "\1\u017f",
+ "\1\u0180",
+ "\1\u0181",
+ "\1\u0182",
+ "\1\u0183",
+ "\1\u0184",
+ "\1\u0185",
+ "\1\u0186",
+ "",
+ "\1\u0187",
+ "\1\u0188",
+ "\1\u0189",
+ "\1\u018a",
+ "\1\u018b",
+ "\1\u018c",
+ "\1\u018d",
+ "\1\u018e",
+ "\1\u018f",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\21\71\1\u0190\10\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0192",
+ "\1\u0193",
+ "\1\u0194",
+ "\1\u0195",
+ "\1\u0196",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0199",
+ "\1\u019a",
+ "\1\u019b",
+ "\1\u019c",
+ "\1\u019d",
+ "\1\u019e",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u01a0",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u01a2",
+ "\1\u01a3",
+ "\1\u01a4",
+ "\1\u01a5",
+ "",
+ "\1\u01a6",
+ "\1\u01a7",
+ "\1\u01a8",
+ "\1\u01a9",
+ "\1\u01aa",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u01ac",
+ "",
+ "\1\u01ad",
+ "\1\u01ae",
+ "\1\u01af",
+ "\1\u01b0",
+ "\1\u01b1",
+ "\1\u01b2",
+ "\1\u01b3",
+ "\1\u01b4",
+ "\1\u01b5",
+ "\1\u01b6",
+ "",
+ "\1\u01b7",
+ "\1\u01b8",
+ "\1\u01b9",
+ "\1\u01ba",
+ "\1\u01bb",
+ "\1\u01bc",
+ "\1\u01bd",
+ "\1\u01be",
+ "\1\u01bf",
+ "\1\u01c0",
+ "\1\u01c1",
+ "\1\u01c2",
+ "\1\u01c3",
+ "\1\u01c4",
+ "\1\u01c5",
+ "\1\u01c6",
+ "\1\u01c7",
+ "\1\u01c8",
+ "\1\u01c9",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u01cb",
+ "",
+ "\1\u01cc",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u01ce",
+ "",
+ "\1\u01cf",
+ "\1\u01d0",
+ "\1\u01d1",
+ "\1\u01d2",
+ "\1\u01d3",
+ "",
+ "\1\u01d4",
+ "\1\u01d5",
+ "\1\u01d6",
+ "\1\u01d7",
+ "\1\u01d8",
+ "\1\u01d9",
+ "\1\u01da",
+ "\1\u01db",
+ "\1\u01dc",
+ "\1\u01dd",
+ "\1\u01de",
+ "\1\u01df",
+ "\1\u01e0",
+ "\1\u01e1",
+ "\1\u01e2",
+ "\1\u01e3",
+ "\1\u01e4",
+ "\1\u01e5",
+ "\1\u01e6",
+ "\1\u01e7",
+ "\1\u01e8",
+ "",
+ "\1\u01e9",
+ "\1\u01ea",
+ "\1\u01eb",
+ "\1\u01ec",
+ "\1\u01ed",
+ "",
+ "",
+ "\1\u01ee",
+ "\1\u01ef",
+ "\1\u01f0",
+ "\1\u01f1",
+ "\1\u01f2",
+ "",
+ "",
+ "\1\u01f3",
+ "",
+ "\1\u01f4",
+ "\1\u01f5",
+ "\1\u01f6",
+ "\1\u01f7",
+ "\1\u01f8",
+ "\1\u01f9",
+ "\1\u01fa",
+ "\1\u01fb",
+ "\1\u01fc",
+ "",
+ "\1\u01fd",
+ "\1\u01fe",
+ "\1\u01ff",
+ "\1\u0200",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0202",
+ "\1\u0205\12\uffff\1\u0204\6\uffff\1\u0203",
+ "\1\u0206",
+ "\1\u0207",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u020a",
+ "\1\u020b",
+ "\1\u020c",
+ "\1\u020d",
+ "\1\u020e",
+ "\1\u020f",
+ "\1\u0210",
+ "\1\u0211",
+ "\1\u0212",
+ "\1\u0213",
+ "\1\u0214",
+ "\1\u0215",
+ "\1\u0216",
+ "\1\u0217",
+ "\1\u0218",
+ "\1\u0219",
+ "\1\u021a",
+ "\1\u021b",
+ "\1\u021c",
+ "",
+ "\1\u021d",
+ "\1\u021e",
+ "",
+ "\1\u021f",
+ "\1\u0220",
+ "\1\u0221",
+ "\1\u0222",
+ "\1\u0223",
+ "\1\u0224",
+ "\1\u0225",
+ "\1\u0226",
+ "\1\u0227",
+ "\1\u0228",
+ "\1\u0229",
+ "\1\u022a",
+ "\1\u022b",
+ "\1\u022c",
+ "\1\u022d",
+ "\1\u022e",
+ "\1\u022f",
+ "\1\u0230",
+ "\1\u0231",
+ "\1\u0232",
+ "\1\u0233",
+ "\1\u0234\17\uffff\1\u0235",
+ "",
+ "\1\u0236",
+ "\1\u0237",
+ "\1\u0238",
+ "\1\u0239",
+ "\1\u023a",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u023c",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u023e",
+ "\1\u023f",
+ "",
+ "\1\u0240",
+ "\1\u0241",
+ "\1\u0242",
+ "\1\u0243",
+ "\1\u0244",
+ "\1\u0245",
+ "\1\u0246",
+ "\1\u0247",
+ "\1\u0248",
+ "\1\u0249",
+ "\1\u024a",
+ "\1\u024b",
+ "\1\u024c",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u024e",
+ "\1\u024f",
+ "\1\u0250",
+ "",
+ "\1\u0251",
+ "\1\u0252",
+ "\1\u0253",
+ "\1\u0254",
+ "\1\u0257\12\uffff\1\u0256\6\uffff\1\u0255",
+ "\1\u0258",
+ "",
+ "",
+ "\1\u0259",
+ "\1\u025a",
+ "\1\u025b",
+ "\1\u025c",
+ "\1\u025d",
+ "\1\u025e",
+ "\1\u025f",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0261",
+ "\1\u0262",
+ "\1\u0263",
+ "\1\u0264",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0267",
+ "\1\u0268",
+ "\1\u0269",
+ "\1\u026a",
+ "\1\u026b",
+ "\1\u026c",
+ "\1\u026d",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u026f",
+ "\1\u0270",
+ "\1\u0271",
+ "\1\u0272",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0274",
+ "\1\u0275",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0278",
+ "\1\u0279",
+ "\1\u027a",
+ "\1\u027d\12\uffff\1\u027c\6\uffff\1\u027b",
+ "\1\u027e",
+ "\1\u027f",
+ "",
+ "\1\u0280\3\uffff\1\u0281",
+ "\1\u0282",
+ "\1\u0283",
+ "\1\u0284",
+ "\1\u0285",
+ "\1\u0286",
+ "",
+ "\1\u0287\6\uffff\1\u0288",
+ "\1\u0289",
+ "\1\u028a",
+ "\1\u028b",
+ "",
+ "\1\u028c",
+ "",
+ "",
+ "\1\u028d",
+ "\1\u028e",
+ "\1\u028f",
+ "",
+ "\1\u0290",
+ "\1\u0291",
+ "\1\u0292",
+ "\1\u0293",
+ "\1\u0294",
+ "",
+ "\1\u0296\34\uffff\1\u0295",
+ "\1\u0297",
+ "\1\u0298",
+ "\1\u0299",
+ "",
+ "\1\u029a",
+ "\1\u029b",
+ "\1\u029c",
+ "\1\u029d",
+ "\1\u029e",
+ "\1\u029f",
+ "\1\u02a0",
+ "\1\u02a1",
+ "\1\u02a2",
+ "\1\u02a3",
+ "\1\u02a4",
+ "\1\u02a5",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u02a7",
+ "\1\u02a8",
+ "\1\u02a9",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u02ab",
+ "",
+ "\1\u02ac",
+ "\1\u02ad",
+ "\1\u02ae",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "",
+ "",
+ "\1\u02b0",
+ "\1\u02b1",
+ "\1\u02b2",
+ "\1\u02b3",
+ "\1\u02b4",
+ "\1\u02b5",
+ "\1\u02b6",
+ "",
+ "\1\u02b7",
+ "\1\u02b8",
+ "\1\u02b9",
+ "\1\u02ba",
+ "",
+ "\1\u02bb",
+ "\1\u02bc",
+ "",
+ "",
+ "\1\u02bd",
+ "\1\u02be",
+ "\1\u02bf",
+ "\1\u02c0",
+ "\1\u02c1",
+ "\1\u02c2",
+ "",
+ "\1\u02c3",
+ "\1\u02c4",
+ "\1\u02c5",
+ "\1\u02c6",
+ "\1\u02c7",
+ "\1\u02c8",
+ "\1\u02c9",
+ "\1\u02ca",
+ "\1\u02cb",
+ "\1\u02cc",
+ "\1\u02cd",
+ "\1\u02ce",
+ "\1\u02cf",
+ "",
+ "\1\u02d0",
+ "",
+ "\1\u02d1",
+ "\1\u02d2",
+ "\1\u02d3",
+ "\1\u02d4",
+ "\1\u02d5",
+ "\1\u02d6",
+ "\1\u02d7",
+ "\1\u02d8",
+ "\1\u02d9",
+ "\1\u02da",
+ "\1\u02db",
+ "\1\u02dc",
+ "\1\u02dd",
+ "\1\u02de",
+ "\1\u02df",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u02e1",
+ "\1\u02e2",
+ "\1\u02e3",
+ "\1\u02e4",
+ "\1\u02e5",
+ "\1\u02e6",
+ "\1\u02e7",
+ "",
+ "\1\u02e8",
+ "\1\u02e9",
+ "\1\u02ea",
+ "",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u02ec",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\3\71\1\u02ed\12\71\1\u02ee\13\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u02f0",
+ "",
+ "\1\u02f1",
+ "\1\u02f2\5\uffff\1\u02f3",
+ "\1\u02f4",
+ "\1\u02f5",
+ "\1\u02f6",
+ "\1\u02f7",
+ "\1\u02f8",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u02fa",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u02fc",
+ "\1\u02fd",
+ "\1\u02fe",
+ "\1\u02ff",
+ "\1\u0300",
+ "\1\u0301",
+ "\1\u0302",
+ "\1\u0303",
+ "\1\u0304",
+ "\1\u0305",
+ "\1\u0306",
+ "\1\u0307",
+ "\1\u0308",
+ "\1\u0309",
+ "\1\u030a",
+ "\1\u030b",
+ "\1\u030c",
+ "\1\u030d",
+ "\1\u030e",
+ "\1\u030f",
+ "\1\u0310",
+ "\1\u0311",
+ "\1\u0312",
+ "",
+ "\1\u0313",
+ "\1\u0314",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0317",
+ "\1\u0318",
+ "\1\u0319",
+ "\1\u031a",
+ "\1\u031b",
+ "\1\u031c",
+ "\1\u031d",
+ "\1\u031e",
+ "\1\u031f",
+ "\1\u0320",
+ "",
+ "\1\u0321",
+ "\1\u0322",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0324",
+ "\1\u0325",
+ "\1\u0326",
+ "\1\u0327",
+ "\1\u0328",
+ "\1\u0329",
+ "\1\u032a",
+ "",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u032c",
+ "\1\u032d",
+ "",
+ "\1\u032e",
+ "\1\u032f",
+ "\1\u0330",
+ "\1\u0331",
+ "\1\u0332",
+ "\1\u0333",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0335",
+ "\1\u0336",
+ "",
+ "\1\u0337",
+ "",
+ "\1\u0338",
+ "\1\u0339",
+ "\1\u033a",
+ "\1\u033b",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u033d",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u033f",
+ "\1\u0340",
+ "",
+ "\1\u0341",
+ "\1\u0342",
+ "\1\u0343",
+ "\1\u0344",
+ "\1\u0345",
+ "\1\u0346",
+ "\1\u0347",
+ "\1\u0348",
+ "\1\u0349",
+ "\1\u034a",
+ "\1\u034b",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u034d",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u034f",
+ "",
+ "",
+ "\1\u0350",
+ "\1\u0351",
+ "\1\u0352",
+ "\1\u0353",
+ "\1\u0354",
+ "\1\u0355",
+ "\1\u0356",
+ "\1\u0357",
+ "",
+ "\1\u0358",
+ "\1\u0359",
+ "\1\u035a",
+ "",
+ "\1\u035b",
+ "\1\u035c",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\16\71\1\u035e\13\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0360",
+ "\1\u0361",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\16\71\1\u0362\13\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "",
+ "\1\u0364",
+ "\1\u0365",
+ "\1\u0366",
+ "\1\u0367",
+ "\1\u0368",
+ "\1\u0369",
+ "\1\u036a",
+ "\1\u036b",
+ "",
+ "\1\u036c",
+ "\1\u036d",
+ "\1\u036e",
+ "\1\u036f",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\22\71\1\u0370\7\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0372",
+ "\1\u0373",
+ "",
+ "\1\u0374",
+ "",
+ "\1\u0375",
+ "\1\u0376",
+ "\1\u0377\70\uffff\1\u0378",
+ "\1\u0379",
+ "\1\u037a",
+ "\1\u037b",
+ "\1\u037c",
+ "\1\u037d",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u037f",
+ "\1\u0380",
+ "\1\u0381",
+ "\1\u0382",
+ "",
+ "",
+ "",
+ "\1\u0383",
+ "\1\u0384",
+ "\1\u0385",
+ "\1\u0386",
+ "\1\u0387",
+ "\1\u0388",
+ "\1\u0389",
+ "\1\u038a",
+ "\1\u038b",
+ "\1\u038c",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u038f",
+ "\1\u0390",
+ "",
+ "\1\u0391",
+ "",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0393",
+ "\1\u0394",
+ "",
+ "\1\u0395",
+ "\1\u0396",
+ "\1\u0399\1\u0397\1\uffff\1\u0398",
+ "\1\u039a",
+ "\1\u039b",
+ "\1\u039c",
+ "",
+ "\1\u039d",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\22\71\1\u039e\7\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u03a0",
+ "\1\u03a1",
+ "\1\u03a2",
+ "\1\u03a3",
+ "",
+ "\1\u03a4",
+ "\1\u03a5",
+ "\1\u03a6",
+ "\1\u03a7",
+ "\1\u03a8",
+ "",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u03aa",
+ "\1\u03ab",
+ "\1\u03ac",
+ "\1\u03ad",
+ "\1\u03ae",
+ "",
+ "\1\u03af",
+ "\1\u03b0",
+ "\1\u03b1",
+ "\1\u03b2",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u03b4",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u03b7",
+ "\1\u03b8",
+ "\1\u03b9",
+ "\1\u03ba",
+ "\1\u03bb",
+ "\1\u03bc",
+ "",
+ "",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u03c2",
+ "\1\u03c3",
+ "\1\u03c4",
+ "\1\u03c5",
+ "\1\u03c6",
+ "\1\u03c7",
+ "\1\u03c8",
+ "\1\u03c9",
+ "\1\u03ca",
+ "\1\u03cb",
+ "",
+ "\1\u03cc",
+ "\1\u03cd",
+ "\1\u03ce",
+ "\1\u03cf",
+ "\1\u03d0",
+ "\1\u03d1",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "",
+ "\1\u03d5",
+ "\1\u03d6",
+ "\1\u03d7",
+ "\1\u03d8",
+ "\1\u03d9",
+ "\1\u03da",
+ "\1\u03db",
+ "\1\u03dc",
+ "\1\u03dd",
+ "",
+ "\1\u03de",
+ "",
+ "",
+ "\1\u03df",
+ "\1\u03e0",
+ "\1\u03e1",
+ "\1\u03e2",
+ "\1\u03e3",
+ "\1\u03e4",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\1\u03e5",
+ "\1\u03e6",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u03e8",
+ "\1\u03e9",
+ "\1\u03ea",
+ "\1\u03eb",
+ "\1\u03ec",
+ "\1\u03ed",
+ "\1\u03ee",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u03f0",
+ "\1\u03f1",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u03f4",
+ "",
+ "",
+ "",
+ "\1\u03f5",
+ "\1\u03f6",
+ "",
+ "\1\u03f7",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u03f9",
+ "\1\u03fa",
+ "\1\u03fb",
+ "",
+ "\1\u03fc",
+ "\1\u03fd",
+ "\1\u03fe",
+ "\1\u03ff",
+ "\1\u0400",
+ "\1\u0401",
+ "\1\u0402",
+ "\1\u0403",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "",
+ "\1\u0405",
+ "\1\u0406",
+ "\1\u0407",
+ "\1\u0408",
+ "\1\u0409",
+ "\1\u040a",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "",
+ "\1\u040c",
+ "\1\u040d",
+ "",
+ "",
+ "\1\u040e",
+ "\1\u040f",
+ "\1\u0410",
+ "",
+ "",
+ "\1\u0411",
+ "\1\u0412",
+ "\1\u0413",
+ "\1\u0414",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0416",
+ "\1\u0417",
+ "\1\u0418",
+ "\1\u0419",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "",
+ "\1\u041c",
+ "\1\u041d",
+ "\1\u041e",
+ "\1\u041f",
+ "\1\u0420",
+ "\1\u0421",
+ "",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0423",
+ "\1\u0424",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0426",
+ "\1\u0427",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u042a",
+ "",
+ "\1\u042b",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u042d",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "",
+ "",
+ "\1\u042f",
+ "\1\u0430",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0432",
+ "\1\u0433",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0436",
+ "",
+ "\1\u0437",
+ "\1\u0438",
+ "",
+ "",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "",
+ "\1\u043b",
+ "",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u043d",
+ "",
+ "\1\u043e",
+ "\1\u043f",
+ "",
+ "",
+ "\1\u0440",
+ "",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "",
+ "",
+ "\1\u0442",
+ "",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0444",
+ "\1\u0445",
+ "\1\u0446",
+ "",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "",
+ "\1\u0448",
+ "\1\u0449",
+ "\1\u044a",
+ "",
+ "\1\u044b",
+ "\1\u044c",
+ "\1\u044d",
+ "\1\u044e",
+ "\1\u044f",
+ "\1\u0450",
+ "\1\u0451",
+ "\1\u0452",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "\1\u0454",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "",
+ "\11\71\5\uffff\16\71\10\uffff\1\71\13\uffff\12\71\7\uffff\32\71\1\uffff\1\71\2\uffff\1\71\1\uffff\32\71\4\uffff\41\71\2\uffff\4\71\4\uffff\1\71\2\uffff\1\71\7\uffff\1\71\4\uffff\1\71\5\uffff\27\71\1\uffff\37\71\1\uffff\u013f\71\31\uffff\162\71\4\uffff\14\71\16\uffff\5\71\11\uffff\1\71\21\uffff\130\71\5\uffff\23\71\12\uffff\1\71\13\uffff\1\71\1\uffff\3\71\1\uffff\1\71\1\uffff\24\71\1\uffff\54\71\1\uffff\46\71\1\uffff\5\71\4\uffff\u0082\71\1\uffff\4\71\3\uffff\105\71\1\uffff\46\71\2\uffff\2\71\6\uffff\20\71\41\uffff\46\71\2\uffff\1\71\7\uffff\47\71\11\uffff\21\71\1\uffff\27\71\1\uffff\3\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\13\uffff\33\71\5\uffff\3\71\15\uffff\4\71\14\uffff\6\71\13\uffff\32\71\5\uffff\31\71\7\uffff\12\71\4\uffff\146\71\1\uffff\11\71\1\uffff\12\71\1\uffff\23\71\2\uffff\1\71\17\uffff\74\71\2\uffff\3\71\60\uffff\62\71\u014f\uffff\71\71\2\uffff\22\71\2\uffff\5\71\3\uffff\14\71\2\uffff\12\71\21\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\1\71\3\uffff\4\71\2\uffff\11\71\2\uffff\2\71\2\uffff\3\71\11\uffff\1\71\4\uffff\2\71\1\uffff\5\71\2\uffff\16\71\15\uffff\3\71\1\uffff\6\71\4\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\2\71\1\uffff\2\71\2\uffff\1\71\1\uffff\5\71\4\uffff\2\71\2\uffff\3\71\13\uffff\4\71\1\uffff\1\71\7\uffff\17\71\14\uffff\3\71\1\uffff\11\71\1\uffff\3\71\1\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\12\71\1\uffff\3\71\1\uffff\3\71\2\uffff\1\71\17\uffff\4\71\2\uffff\12\71\1\uffff\1\71\17\uffff\3\71\1\uffff\10\71\2\uffff\2\71\2\uffff\26\71\1\uffff\7\71\1\uffff\2\71\1\uffff\5\71\2\uffff\10\71\3\uffff\2\71\2\uffff\3\71\10\uffff\2\71\4\uffff\2\71\1\uffff\3\71\4\uffff\12\71\1\uffff\1\71\20\uffff\2\71\1\uffff\6\71\3\uffff\3\71\1\uffff\4\71\3\uffff\2\71\1\uffff\1\71\1\uffff\2\71\3\uffff\2\71\3\uffff\3\71\3\uffff\10\71\1\uffff\3\71\4\uffff\5\71\3\uffff\3\71\1\uffff\4\71\11\uffff\1\71\17\uffff\11\71\11\uffff\1\71\7\uffff\3\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\4\uffff\7\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\11\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\12\71\1\uffff\5\71\2\uffff\11\71\1\uffff\3\71\1\uffff\4\71\7\uffff\2\71\7\uffff\1\71\1\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\10\71\1\uffff\3\71\1\uffff\27\71\1\uffff\20\71\4\uffff\6\71\2\uffff\3\71\1\uffff\4\71\11\uffff\1\71\10\uffff\2\71\4\uffff\12\71\22\uffff\2\71\1\uffff\22\71\3\uffff\30\71\1\uffff\11\71\1\uffff\1\71\2\uffff\7\71\3\uffff\1\71\4\uffff\6\71\1\uffff\1\71\1\uffff\10\71\22\uffff\2\71\15\uffff\72\71\4\uffff\20\71\1\uffff\12\71\47\uffff\2\71\1\uffff\1\71\2\uffff\2\71\1\uffff\1\71\2\uffff\1\71\6\uffff\4\71\1\uffff\7\71\1\uffff\3\71\1\uffff\1\71\1\uffff\1\71\2\uffff\2\71\1\uffff\15\71\1\uffff\3\71\2\uffff\5\71\1\uffff\1\71\1\uffff\6\71\2\uffff\12\71\2\uffff\2\71\42\uffff\1\71\27\uffff\2\71\6\uffff\12\71\13\uffff\1\71\1\uffff\1\71\1\uffff\1\71\4\uffff\12\71\1\uffff\42\71\6\uffff\24\71\1\uffff\6\71\4\uffff\10\71\1\uffff\44\71\11\uffff\1\71\71\uffff\42\71\1\uffff\5\71\1\uffff\2\71\1\uffff\7\71\3\uffff\4\71\6\uffff\12\71\6\uffff\12\71\106\uffff\46\71\12\uffff\51\71\7\uffff\132\71\5\uffff\104\71\5\uffff\122\71\6\uffff\7\71\1\uffff\77\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\47\71\1\uffff\1\71\1\uffff\4\71\2\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\7\71\1\uffff\27\71\1\uffff\37\71\1\uffff\1\71\1\uffff\4\71\2\uffff\7\71\1\uffff\47\71\1\uffff\23\71\16\uffff\11\71\56\uffff\125\71\14\uffff\u026c\71\2\uffff\10\71\12\uffff\32\71\5\uffff\113\71\3\uffff\3\71\17\uffff\15\71\1\uffff\7\71\13\uffff\25\71\13\uffff\24\71\14\uffff\15\71\1\uffff\3\71\1\uffff\2\71\14\uffff\124\71\3\uffff\1\71\3\uffff\3\71\2\uffff\12\71\41\uffff\3\71\2\uffff\12\71\6\uffff\130\71\10\uffff\52\71\126\uffff\35\71\3\uffff\14\71\4\uffff\14\71\12\uffff\50\71\2\uffff\5\71\u038b\uffff\154\71\u0094\uffff\u009c\71\4\uffff\132\71\6\uffff\26\71\2\uffff\6\71\2\uffff\46\71\2\uffff\6\71\2\uffff\10\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\37\71\2\uffff\65\71\1\uffff\7\71\1\uffff\1\71\3\uffff\3\71\1\uffff\7\71\3\uffff\4\71\2\uffff\6\71\4\uffff\15\71\5\uffff\3\71\1\uffff\7\71\17\uffff\4\71\32\uffff\5\71\20\uffff\2\71\23\uffff\1\71\13\uffff\4\71\6\uffff\6\71\1\uffff\1\71\15\uffff\1\71\40\uffff\22\71\36\uffff\15\71\4\uffff\1\71\3\uffff\6\71\27\uffff\1\71\4\uffff\1\71\2\uffff\12\71\1\uffff\1\71\3\uffff\5\71\6\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\uffff\4\71\1\uffff\3\71\1\uffff\7\71\3\uffff\3\71\5\uffff\5\71\26\uffff\44\71\u0e7d\uffff\2\71\2\uffff\3\71\31\uffff\17\71\1\uffff\5\71\2\uffff\5\71\4\uffff\126\71\2\uffff\2\71\2\uffff\3\71\1\uffff\137\71\5\uffff\50\71\4\uffff\136\71\21\uffff\30\71\70\uffff\20\71\u0200\uffff\u19b6\71\112\uffff\u51a6\71\132\uffff\u048d\71\u0773\uffff\u2ba4\71\u215c\uffff\u012e\71\2\uffff\73\71\u0095\uffff\7\71\14\uffff\5\71\5\uffff\14\71\1\uffff\15\71\1\uffff\5\71\1\uffff\1\71\1\uffff\2\71\1\uffff\2\71\1\uffff\154\71\41\uffff\u016b\71\22\uffff\100\71\2\uffff\66\71\50\uffff\15\71\3\uffff\20\71\20\uffff\4\71\17\uffff\2\71\30\uffff\3\71\31\uffff\1\71\6\uffff\5\71\1\uffff\u0087\71\2\uffff\1\71\4\uffff\1\71\3\uffff\2\71\6\uffff\13\71\6\uffff\32\71\4\uffff\1\71\1\uffff\32\71\12\uffff\132\71\3\uffff\6\71\2\uffff\6\71\2\uffff\6\71\2\uffff\3\71\3\uffff\2\71\3\uffff\2\71\22\uffff\3\71",
+ "",
+ ""
+ };
+
+ static final short[] DFA15_eot = DFA.unpackEncodedString(DFA15_eotS);
+ static final short[] DFA15_eof = DFA.unpackEncodedString(DFA15_eofS);
+ static final char[] DFA15_min = DFA.unpackEncodedStringToUnsignedChars(DFA15_minS);
+ static final char[] DFA15_max = DFA.unpackEncodedStringToUnsignedChars(DFA15_maxS);
+ static final short[] DFA15_accept = DFA.unpackEncodedString(DFA15_acceptS);
+ static final short[] DFA15_special = DFA.unpackEncodedString(DFA15_specialS);
+ static final short[][] DFA15_transition;
+
+ static {
+ int numStates = DFA15_transitionS.length;
+ DFA15_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA15_transition[i] = DFA.unpackEncodedString(DFA15_transitionS[i]);
+ }
+ }
+
+ class DFA15 extends DFA {
+
+ public DFA15(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 15;
+ this.eot = DFA15_eot;
+ this.eof = DFA15_eof;
+ this.min = DFA15_min;
+ this.max = DFA15_max;
+ this.accept = DFA15_accept;
+ this.special = DFA15_special;
+ this.transition = DFA15_transition;
+ }
+ public String getDescription() {
+ return "1:1: Tokens : ( 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 | T__114 | T__115 | T__116 | T__117 | T__118 | T__119 | T__120 | T__121 | T__122 | T__123 | T__124 | T__125 | T__126 | T__127 | T__128 | T__129 | T__130 | T__131 | T__132 | T__133 | T__134 | T__135 | T__136 | T__137 | T__138 | T__139 | T__140 | T__141 | T__142 | T__143 | T__144 | T__145 | T__146 | T__147 | T__148 | T__149 | T__150 | T__151 | T__152 | T__153 | T__154 | T__155 | T__156 | T__157 | T__158 | T__159 | T__160 | T__161 | T__162 | T__163 | T__164 | T__165 | T__166 | T__167 | RULE_ID | RULE_WS | RULE_INT | RULE_STRING | RULE_RICH_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT );";
+ }
+ }
+
+
+} \ No newline at end of file
diff --git a/rba.tool.editor/src-gen/rba/tool/editor/parser/antlr/internal/InternalRBAModelParser.java b/rba.tool.editor/src-gen/rba/tool/editor/parser/antlr/internal/InternalRBAModelParser.java
new file mode 100644
index 0000000..f2ff5e6
--- /dev/null
+++ b/rba.tool.editor/src-gen/rba/tool/editor/parser/antlr/internal/InternalRBAModelParser.java
@@ -0,0 +1,31671 @@
+package rba.tool.editor.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 rba.tool.editor.services.RBAModelGrammarAccess;
+
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+@SuppressWarnings("all")
+public class InternalRBAModelParser extends AbstractInternalAntlrParser {
+ public static final String[] tokenNames = new String[] {
+ "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_INT", "RULE_STRING", "RULE_RICH_STRING", "RULE_ID", "RULE_IDENTIFIER_START", "RULE_UNICODE_ESCAPE", "RULE_IDENTIFIER_PART", "RULE_IDENTIFIER_START_IMPL", "RULE_IDENTIFIER_PART_IMPL", "RULE_IDENTIFIER_DIGITS", "RULE_HEX_DIGIT", "RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "'module'", "'import'", "'int'", "':'", "'<<'", "'>>'", "'\\u00AB'", "'\\u00BB'", "'{'", "','", "'}'", "'Package'", "'description:'", "'Stereotype'", "'<'", "'>'", "'('", "')'", "'Area'", "'Zone'", "'SoundContent'", "'ViewContent'", "'Display'", "'Constraint'", "'runtime:'", "'loserType:'", "'allocatable:'", "'['", "']'", "'Size'", "'width:'", "'height:'", "'sizeReference:'", "'Offset'", "'x:'", "'y:'", "'AreaSet'", "'target:'", "'ZoneSet'", "'CompositeArea'", "'layout:'", "'arbitrationPolicy:'", "'visibility:'", "'priority:'", "'zorder:'", "'attenuateValue:'", "'State'", "'value:'", "'Project'", "'version:'", "'+'", "'='", "'That-of'", "'.'", "'STANDARD_VALUE'", "'NONE_VALUE'", "'MIN_VALUE'", "'MAX_VALUE'", "'->'", "'OR'", "'AND'", "'=='", "'!='", "'>='", "'<='", "'!'", "'get'", "'isOn'", "'contentsList'", "'contentValue'", "'isActive'", "'allocatables'", "'allocatedContent'", "'isDisplayed'", "'isHidden'", "'displayingContent'", "'isVisible'", "'isOutputted'", "'isMuted'", "'outputtingSound'", "'isSounding'", "'isAttenuated'", "'hasComeEarlierThan'", "'hasComeLaterThan'", "'stateValue'", "'isAllocatedTo'", "'isChanged'", "'isTranslatedTo'", "'isDisplayedOn'", "'isChangedDisplay'", "'isTranslatedViewTo'", "'isOutputtedOn'", "'isChangedOutput'", "'isTranslatedSoundTo'", "'isTypeOf'", "'activeContents'", "'size'", "'hasBeenDisplayed'", "'activeState'", "'max'", "'min'", "'select'", "'ALL_AREAS'", "'ALL_VIEWCONTENTS'", "'ALL_ZONES'", "'ALL_SOUNDCONTENTS'", "'NULL'", "'(pre)'", "'HideLowerPriority'", "'MuteLowerPriority'", "'IF'", "'THEN'", "'ELSE'", "'For-All'", "'Exists'", "'|'", "'let'", "'ViewContentSet'", "'SoundContentSet'", "'Scene'", "'global:'", "'VerticalLayout'", "'basePoint:'", "'subarea:'", "'HorizontalLayout'", "'FixedPositionLayout'", "'PositionContainer'", "'areaReference:'", "'true'", "'false'", "'-'", "'.*'", "'this'", "'DEFAULT'", "'FIRST_COME_FIRST'", "'LAST_COME_FIRST'", "'PRIORITY_FIRST_COME_FIRST'", "'PRIORITY_LAST_COME_FIRST'", "'LEFT_TOP'", "'LEFT_MIDDLE'", "'LEFT_BOTTOM'", "'RIGHT_TOP'", "'RIGHT_MIDDLE'", "'RIGHT_BOTTOM'", "'CENTER_TOP'", "'CENTER_MIDDLE'", "'CENTER_BOTTOM'", "'NEVER_GIVEUP'", "'GOOD_LOSER'", "'DO_NOT_GIVEUP_UNTIL_WIN'"
+ };
+ public static final int T__144=144;
+ public static final int T__143=143;
+ public static final int T__146=146;
+ public static final int T__50=50;
+ public static final int T__145=145;
+ public static final int T__140=140;
+ public static final int T__142=142;
+ public static final int T__141=141;
+ public static final int T__59=59;
+ 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__137=137;
+ public static final int T__52=52;
+ public static final int T__136=136;
+ public static final int T__53=53;
+ public static final int T__139=139;
+ public static final int T__54=54;
+ public static final int T__138=138;
+ public static final int T__133=133;
+ public static final int T__132=132;
+ public static final int T__60=60;
+ public static final int T__135=135;
+ public static final int T__61=61;
+ public static final int T__134=134;
+ public static final int RULE_ID=7;
+ public static final int T__131=131;
+ public static final int T__130=130;
+ public static final int RULE_INT=4;
+ public static final int T__66=66;
+ public static final int RULE_ML_COMMENT=16;
+ public static final int T__67=67;
+ public static final int T__129=129;
+ public static final int T__68=68;
+ public static final int T__69=69;
+ public static final int T__62=62;
+ public static final int T__126=126;
+ public static final int T__63=63;
+ public static final int T__125=125;
+ public static final int T__64=64;
+ public static final int T__128=128;
+ public static final int T__65=65;
+ public static final int T__127=127;
+ public static final int T__166=166;
+ public static final int T__165=165;
+ public static final int T__167=167;
+ public static final int T__162=162;
+ public static final int T__161=161;
+ public static final int T__164=164;
+ public static final int T__163=163;
+ public static final int T__160=160;
+ public static final int RULE_IDENTIFIER_DIGITS=13;
+ public static final int RULE_UNICODE_ESCAPE=9;
+ 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_IDENTIFIER_PART=10;
+ 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__159=159;
+ public static final int T__30=30;
+ public static final int T__158=158;
+ public static final int T__31=31;
+ public static final int T__32=32;
+ public static final int T__155=155;
+ public static final int T__154=154;
+ public static final int T__157=157;
+ public static final int T__156=156;
+ public static final int T__151=151;
+ public static final int T__150=150;
+ public static final int T__153=153;
+ public static final int T__152=152;
+ public static final int T__48=48;
+ public static final int T__49=49;
+ public static final int T__44=44;
+ public static final int T__45=45;
+ public static final int RULE_HEX_DIGIT=14;
+ public static final int T__46=46;
+ public static final int T__47=47;
+ public static final int T__40=40;
+ public static final int T__148=148;
+ public static final int T__41=41;
+ public static final int T__147=147;
+ public static final int T__42=42;
+ public static final int T__43=43;
+ public static final int T__149=149;
+ public static final int T__91=91;
+ public static final int T__100=100;
+ public static final int T__92=92;
+ public static final int T__93=93;
+ public static final int T__102=102;
+ public static final int T__94=94;
+ public static final int T__101=101;
+ public static final int T__90=90;
+ public static final int T__19=19;
+ public static final int RULE_IDENTIFIER_START=8;
+ public static final int T__18=18;
+ public static final int T__99=99;
+ public static final int T__95=95;
+ public static final int T__96=96;
+ public static final int T__97=97;
+ public static final int T__98=98;
+ public static final int T__26=26;
+ public static final int T__27=27;
+ public static final int T__28=28;
+ public static final int T__29=29;
+ public static final int T__22=22;
+ public static final int T__23=23;
+ public static final int T__24=24;
+ public static final int T__25=25;
+ public static final int T__20=20;
+ public static final int T__21=21;
+ public static final int T__122=122;
+ public static final int T__70=70;
+ public static final int T__121=121;
+ public static final int T__71=71;
+ public static final int T__124=124;
+ public static final int T__72=72;
+ public static final int T__123=123;
+ public static final int T__120=120;
+ public static final int RULE_STRING=5;
+ public static final int RULE_SL_COMMENT=17;
+ public static final int T__77=77;
+ public static final int T__119=119;
+ public static final int T__78=78;
+ public static final int T__118=118;
+ public static final int T__79=79;
+ public static final int T__73=73;
+ public static final int T__115=115;
+ public static final int EOF=-1;
+ public static final int T__74=74;
+ public static final int T__114=114;
+ public static final int T__75=75;
+ public static final int T__117=117;
+ public static final int T__76=76;
+ public static final int T__116=116;
+ public static final int T__80=80;
+ public static final int T__111=111;
+ public static final int T__81=81;
+ public static final int T__110=110;
+ public static final int RULE_RICH_STRING=6;
+ public static final int T__82=82;
+ public static final int T__113=113;
+ public static final int T__83=83;
+ public static final int T__112=112;
+ public static final int RULE_WS=15;
+ public static final int RULE_IDENTIFIER_PART_IMPL=12;
+ public static final int RULE_IDENTIFIER_START_IMPL=11;
+ public static final int T__88=88;
+ public static final int T__108=108;
+ public static final int T__89=89;
+ public static final int T__107=107;
+ public static final int T__109=109;
+ public static final int T__84=84;
+ public static final int T__104=104;
+ public static final int T__85=85;
+ public static final int T__103=103;
+ public static final int T__86=86;
+ public static final int T__106=106;
+ public static final int T__87=87;
+ public static final int T__105=105;
+
+ // delegates
+ // delegators
+
+
+ public InternalRBAModelParser(TokenStream input) {
+ this(input, new RecognizerSharedState());
+ }
+ public InternalRBAModelParser(TokenStream input, RecognizerSharedState state) {
+ super(input, state);
+
+ }
+
+
+ public String[] getTokenNames() { return InternalRBAModelParser.tokenNames; }
+ public String getGrammarFileName() { return "InternalRBAModel.g"; }
+
+
+
+ private RBAModelGrammarAccess grammarAccess;
+
+ public InternalRBAModelParser(TokenStream input, RBAModelGrammarAccess grammarAccess) {
+ this(input);
+ this.grammarAccess = grammarAccess;
+ registerRules(grammarAccess.getGrammar());
+ }
+
+ @Override
+ protected String getFirstRuleName() {
+ return "TopLevel";
+ }
+
+ @Override
+ protected RBAModelGrammarAccess getGrammarAccess() {
+ return grammarAccess;
+ }
+
+
+
+
+ // $ANTLR start "entryRuleTopLevel"
+ // InternalRBAModel.g:65:1: entryRuleTopLevel returns [EObject current=null] : iv_ruleTopLevel= ruleTopLevel EOF ;
+ public final EObject entryRuleTopLevel() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleTopLevel = null;
+
+
+ try {
+ // InternalRBAModel.g:65:49: (iv_ruleTopLevel= ruleTopLevel EOF )
+ // InternalRBAModel.g:66:2: iv_ruleTopLevel= ruleTopLevel EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getTopLevelRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleTopLevel=ruleTopLevel();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleTopLevel;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleTopLevel"
+
+
+ // $ANTLR start "ruleTopLevel"
+ // InternalRBAModel.g:72:1: ruleTopLevel returns [EObject current=null] : ( () (otherlv_1= 'module' ruleQualifiedName )? ( (lv_project_3_0= ruleProject ) )* ( (lv_imports_4_0= ruleImport ) )* ( (lv_packages_5_0= rulePackage ) )* ) ;
+ public final EObject ruleTopLevel() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ EObject lv_project_3_0 = null;
+
+ EObject lv_imports_4_0 = null;
+
+ EObject lv_packages_5_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:78:2: ( ( () (otherlv_1= 'module' ruleQualifiedName )? ( (lv_project_3_0= ruleProject ) )* ( (lv_imports_4_0= ruleImport ) )* ( (lv_packages_5_0= rulePackage ) )* ) )
+ // InternalRBAModel.g:79:2: ( () (otherlv_1= 'module' ruleQualifiedName )? ( (lv_project_3_0= ruleProject ) )* ( (lv_imports_4_0= ruleImport ) )* ( (lv_packages_5_0= rulePackage ) )* )
+ {
+ // InternalRBAModel.g:79:2: ( () (otherlv_1= 'module' ruleQualifiedName )? ( (lv_project_3_0= ruleProject ) )* ( (lv_imports_4_0= ruleImport ) )* ( (lv_packages_5_0= rulePackage ) )* )
+ // InternalRBAModel.g:80:3: () (otherlv_1= 'module' ruleQualifiedName )? ( (lv_project_3_0= ruleProject ) )* ( (lv_imports_4_0= ruleImport ) )* ( (lv_packages_5_0= rulePackage ) )*
+ {
+ // InternalRBAModel.g:80:3: ()
+ // InternalRBAModel.g:81:4:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getTopLevelAccess().getTopLevelAction_0(),
+ current);
+
+ }
+
+ }
+
+ // InternalRBAModel.g:87:3: (otherlv_1= 'module' ruleQualifiedName )?
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( (LA1_0==18) ) {
+ alt1=1;
+ }
+ switch (alt1) {
+ case 1 :
+ // InternalRBAModel.g:88:4: otherlv_1= 'module' ruleQualifiedName
+ {
+ otherlv_1=(Token)match(input,18,FOLLOW_3); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getTopLevelAccess().getModuleKeyword_1_0());
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getTopLevelAccess().getQualifiedNameParserRuleCall_1_1());
+
+ }
+ pushFollow(FOLLOW_4);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+
+ }
+
+ // InternalRBAModel.g:100:3: ( (lv_project_3_0= ruleProject ) )*
+ loop2:
+ do {
+ int alt2=2;
+ int LA2_0 = input.LA(1);
+
+ if ( (LA2_0==66) ) {
+ alt2=1;
+ }
+
+
+ switch (alt2) {
+ case 1 :
+ // InternalRBAModel.g:101:4: (lv_project_3_0= ruleProject )
+ {
+ // InternalRBAModel.g:101:4: (lv_project_3_0= ruleProject )
+ // InternalRBAModel.g:102:5: lv_project_3_0= ruleProject
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getTopLevelAccess().getProjectProjectParserRuleCall_2_0());
+
+ }
+ pushFollow(FOLLOW_4);
+ lv_project_3_0=ruleProject();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getTopLevelRule());
+ }
+ add(
+ current,
+ "project",
+ lv_project_3_0,
+ "rba.tool.editor.RBAModel.Project");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop2;
+ }
+ } while (true);
+
+ // InternalRBAModel.g:119:3: ( (lv_imports_4_0= ruleImport ) )*
+ loop3:
+ do {
+ int alt3=2;
+ int LA3_0 = input.LA(1);
+
+ if ( (LA3_0==19) ) {
+ alt3=1;
+ }
+
+
+ switch (alt3) {
+ case 1 :
+ // InternalRBAModel.g:120:4: (lv_imports_4_0= ruleImport )
+ {
+ // InternalRBAModel.g:120:4: (lv_imports_4_0= ruleImport )
+ // InternalRBAModel.g:121:5: lv_imports_4_0= ruleImport
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getTopLevelAccess().getImportsImportParserRuleCall_3_0());
+
+ }
+ pushFollow(FOLLOW_5);
+ lv_imports_4_0=ruleImport();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getTopLevelRule());
+ }
+ add(
+ current,
+ "imports",
+ lv_imports_4_0,
+ "rba.tool.editor.RBAModel.Import");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop3;
+ }
+ } while (true);
+
+ // InternalRBAModel.g:138:3: ( (lv_packages_5_0= rulePackage ) )*
+ loop4:
+ do {
+ int alt4=2;
+ int LA4_0 = input.LA(1);
+
+ if ( (LA4_0==29) ) {
+ alt4=1;
+ }
+
+
+ switch (alt4) {
+ case 1 :
+ // InternalRBAModel.g:139:4: (lv_packages_5_0= rulePackage )
+ {
+ // InternalRBAModel.g:139:4: (lv_packages_5_0= rulePackage )
+ // InternalRBAModel.g:140:5: lv_packages_5_0= rulePackage
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getTopLevelAccess().getPackagesPackageParserRuleCall_4_0());
+
+ }
+ pushFollow(FOLLOW_6);
+ lv_packages_5_0=rulePackage();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getTopLevelRule());
+ }
+ add(
+ current,
+ "packages",
+ lv_packages_5_0,
+ "rba.tool.editor.RBAModel.Package");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop4;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleTopLevel"
+
+
+ // $ANTLR start "entryRuleImport"
+ // InternalRBAModel.g:161:1: entryRuleImport returns [EObject current=null] : iv_ruleImport= ruleImport EOF ;
+ public final EObject entryRuleImport() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleImport = null;
+
+
+ try {
+ // InternalRBAModel.g:161:47: (iv_ruleImport= ruleImport EOF )
+ // InternalRBAModel.g:162:2: iv_ruleImport= ruleImport EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getImportRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleImport=ruleImport();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleImport;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleImport"
+
+
+ // $ANTLR start "ruleImport"
+ // InternalRBAModel.g:168:1: ruleImport returns [EObject current=null] : (otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleQualifiedNameWithWildcard ) ) ) ;
+ public final EObject ruleImport() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ AntlrDatatypeRuleToken lv_importedNamespace_1_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:174:2: ( (otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleQualifiedNameWithWildcard ) ) ) )
+ // InternalRBAModel.g:175:2: (otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleQualifiedNameWithWildcard ) ) )
+ {
+ // InternalRBAModel.g:175:2: (otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleQualifiedNameWithWildcard ) ) )
+ // InternalRBAModel.g:176:3: otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleQualifiedNameWithWildcard ) )
+ {
+ otherlv_0=(Token)match(input,19,FOLLOW_3); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_0, grammarAccess.getImportAccess().getImportKeyword_0());
+
+ }
+ // InternalRBAModel.g:180:3: ( (lv_importedNamespace_1_0= ruleQualifiedNameWithWildcard ) )
+ // InternalRBAModel.g:181:4: (lv_importedNamespace_1_0= ruleQualifiedNameWithWildcard )
+ {
+ // InternalRBAModel.g:181:4: (lv_importedNamespace_1_0= ruleQualifiedNameWithWildcard )
+ // InternalRBAModel.g:182:5: lv_importedNamespace_1_0= ruleQualifiedNameWithWildcard
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getImportAccess().getImportedNamespaceQualifiedNameWithWildcardParserRuleCall_1_0());
+
+ }
+ pushFollow(FOLLOW_2);
+ lv_importedNamespace_1_0=ruleQualifiedNameWithWildcard();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getImportRule());
+ }
+ set(
+ current,
+ "importedNamespace",
+ lv_importedNamespace_1_0,
+ "rba.tool.editor.RBAModel.QualifiedNameWithWildcard");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleImport"
+
+
+ // $ANTLR start "entryRulePackagableElement"
+ // InternalRBAModel.g:203:1: entryRulePackagableElement returns [EObject current=null] : iv_rulePackagableElement= rulePackagableElement EOF ;
+ public final EObject entryRulePackagableElement() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_rulePackagableElement = null;
+
+
+ try {
+ // InternalRBAModel.g:203:58: (iv_rulePackagableElement= rulePackagableElement EOF )
+ // InternalRBAModel.g:204:2: iv_rulePackagableElement= rulePackagableElement EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getPackagableElementRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_rulePackagableElement=rulePackagableElement();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_rulePackagableElement;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRulePackagableElement"
+
+
+ // $ANTLR start "rulePackagableElement"
+ // InternalRBAModel.g:210:1: rulePackagableElement returns [EObject current=null] : (this_Package_0= rulePackage | this_Stereotype_1= ruleStereotype | this_RuleObject_2= ruleRuleObject | this_Display_3= ruleDisplay | this_AbstractConstraint_4= ruleAbstractConstraint | this_Size_5= ruleSize ) ;
+ public final EObject rulePackagableElement() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_Package_0 = null;
+
+ EObject this_Stereotype_1 = null;
+
+ EObject this_RuleObject_2 = null;
+
+ EObject this_Display_3 = null;
+
+ EObject this_AbstractConstraint_4 = null;
+
+ EObject this_Size_5 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:216:2: ( (this_Package_0= rulePackage | this_Stereotype_1= ruleStereotype | this_RuleObject_2= ruleRuleObject | this_Display_3= ruleDisplay | this_AbstractConstraint_4= ruleAbstractConstraint | this_Size_5= ruleSize ) )
+ // InternalRBAModel.g:217:2: (this_Package_0= rulePackage | this_Stereotype_1= ruleStereotype | this_RuleObject_2= ruleRuleObject | this_Display_3= ruleDisplay | this_AbstractConstraint_4= ruleAbstractConstraint | this_Size_5= ruleSize )
+ {
+ // InternalRBAModel.g:217:2: (this_Package_0= rulePackage | this_Stereotype_1= ruleStereotype | this_RuleObject_2= ruleRuleObject | this_Display_3= ruleDisplay | this_AbstractConstraint_4= ruleAbstractConstraint | this_Size_5= ruleSize )
+ int alt5=6;
+ switch ( input.LA(1) ) {
+ case 29:
+ {
+ alt5=1;
+ }
+ break;
+ case 31:
+ {
+ alt5=2;
+ }
+ break;
+ case 36:
+ case 37:
+ case 38:
+ case 39:
+ case 54:
+ case 56:
+ case 135:
+ case 136:
+ case 137:
+ {
+ alt5=3;
+ }
+ break;
+ case 40:
+ {
+ alt5=4;
+ }
+ break;
+ case 41:
+ {
+ alt5=5;
+ }
+ break;
+ case 47:
+ {
+ alt5=6;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 5, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt5) {
+ case 1 :
+ // InternalRBAModel.g:218:3: this_Package_0= rulePackage
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getPackagableElementAccess().getPackageParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_Package_0=rulePackage();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_Package_0;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:227:3: this_Stereotype_1= ruleStereotype
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getPackagableElementAccess().getStereotypeParserRuleCall_1());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_Stereotype_1=ruleStereotype();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_Stereotype_1;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:236:3: this_RuleObject_2= ruleRuleObject
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getPackagableElementAccess().getRuleObjectParserRuleCall_2());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_RuleObject_2=ruleRuleObject();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_RuleObject_2;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 4 :
+ // InternalRBAModel.g:245:3: this_Display_3= ruleDisplay
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getPackagableElementAccess().getDisplayParserRuleCall_3());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_Display_3=ruleDisplay();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_Display_3;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 5 :
+ // InternalRBAModel.g:254:3: this_AbstractConstraint_4= ruleAbstractConstraint
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getPackagableElementAccess().getAbstractConstraintParserRuleCall_4());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_AbstractConstraint_4=ruleAbstractConstraint();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_AbstractConstraint_4;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 6 :
+ // InternalRBAModel.g:263:3: this_Size_5= ruleSize
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getPackagableElementAccess().getSizeParserRuleCall_5());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_Size_5=ruleSize();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_Size_5;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "rulePackagableElement"
+
+
+ // $ANTLR start "entryRuleAbstractConstraint"
+ // InternalRBAModel.g:275:1: entryRuleAbstractConstraint returns [EObject current=null] : iv_ruleAbstractConstraint= ruleAbstractConstraint EOF ;
+ public final EObject entryRuleAbstractConstraint() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleAbstractConstraint = null;
+
+
+ try {
+ // InternalRBAModel.g:275:59: (iv_ruleAbstractConstraint= ruleAbstractConstraint EOF )
+ // InternalRBAModel.g:276:2: iv_ruleAbstractConstraint= ruleAbstractConstraint EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getAbstractConstraintRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleAbstractConstraint=ruleAbstractConstraint();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleAbstractConstraint;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleAbstractConstraint"
+
+
+ // $ANTLR start "ruleAbstractConstraint"
+ // InternalRBAModel.g:282:1: ruleAbstractConstraint returns [EObject current=null] : this_Constraint_0= ruleConstraint ;
+ public final EObject ruleAbstractConstraint() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_Constraint_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:288:2: (this_Constraint_0= ruleConstraint )
+ // InternalRBAModel.g:289:2: this_Constraint_0= ruleConstraint
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getAbstractConstraintAccess().getConstraintParserRuleCall());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_Constraint_0=ruleConstraint();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_Constraint_0;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleAbstractConstraint"
+
+
+ // $ANTLR start "entryRuleSizeIdentifier"
+ // InternalRBAModel.g:300:1: entryRuleSizeIdentifier returns [EObject current=null] : iv_ruleSizeIdentifier= ruleSizeIdentifier EOF ;
+ public final EObject entryRuleSizeIdentifier() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleSizeIdentifier = null;
+
+
+ try {
+ // InternalRBAModel.g:300:55: (iv_ruleSizeIdentifier= ruleSizeIdentifier EOF )
+ // InternalRBAModel.g:301:2: iv_ruleSizeIdentifier= ruleSizeIdentifier EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getSizeIdentifierRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleSizeIdentifier=ruleSizeIdentifier();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleSizeIdentifier;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleSizeIdentifier"
+
+
+ // $ANTLR start "ruleSizeIdentifier"
+ // InternalRBAModel.g:307:1: ruleSizeIdentifier returns [EObject current=null] : (this_SizeReference_0= ruleSizeReference | this_Size_1= ruleSize ) ;
+ public final EObject ruleSizeIdentifier() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_SizeReference_0 = null;
+
+ EObject this_Size_1 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:313:2: ( (this_SizeReference_0= ruleSizeReference | this_Size_1= ruleSize ) )
+ // InternalRBAModel.g:314:2: (this_SizeReference_0= ruleSizeReference | this_Size_1= ruleSize )
+ {
+ // InternalRBAModel.g:314:2: (this_SizeReference_0= ruleSizeReference | this_Size_1= ruleSize )
+ int alt6=2;
+ int LA6_0 = input.LA(1);
+
+ if ( (LA6_0==50) ) {
+ alt6=1;
+ }
+ else if ( (LA6_0==47) ) {
+ alt6=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 6, 0, input);
+
+ throw nvae;
+ }
+ switch (alt6) {
+ case 1 :
+ // InternalRBAModel.g:315:3: this_SizeReference_0= ruleSizeReference
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getSizeIdentifierAccess().getSizeReferenceParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_SizeReference_0=ruleSizeReference();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_SizeReference_0;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:324:3: this_Size_1= ruleSize
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getSizeIdentifierAccess().getSizeParserRuleCall_1());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_Size_1=ruleSize();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_Size_1;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleSizeIdentifier"
+
+
+ // $ANTLR start "entryRuleRuleObject"
+ // InternalRBAModel.g:336:1: entryRuleRuleObject returns [EObject current=null] : iv_ruleRuleObject= ruleRuleObject EOF ;
+ public final EObject entryRuleRuleObject() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleRuleObject = null;
+
+
+ try {
+ // InternalRBAModel.g:336:51: (iv_ruleRuleObject= ruleRuleObject EOF )
+ // InternalRBAModel.g:337:2: iv_ruleRuleObject= ruleRuleObject EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getRuleObjectRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleRuleObject=ruleRuleObject();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleRuleObject;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleRuleObject"
+
+
+ // $ANTLR start "ruleRuleObject"
+ // InternalRBAModel.g:343:1: ruleRuleObject returns [EObject current=null] : (this_AbstractContent_0= ruleAbstractContent | this_AbstractScene_1= ruleAbstractScene | this_AbstractAllocatable_2= ruleAbstractAllocatable ) ;
+ public final EObject ruleRuleObject() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_AbstractContent_0 = null;
+
+ EObject this_AbstractScene_1 = null;
+
+ EObject this_AbstractAllocatable_2 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:349:2: ( (this_AbstractContent_0= ruleAbstractContent | this_AbstractScene_1= ruleAbstractScene | this_AbstractAllocatable_2= ruleAbstractAllocatable ) )
+ // InternalRBAModel.g:350:2: (this_AbstractContent_0= ruleAbstractContent | this_AbstractScene_1= ruleAbstractScene | this_AbstractAllocatable_2= ruleAbstractAllocatable )
+ {
+ // InternalRBAModel.g:350:2: (this_AbstractContent_0= ruleAbstractContent | this_AbstractScene_1= ruleAbstractScene | this_AbstractAllocatable_2= ruleAbstractAllocatable )
+ int alt7=3;
+ switch ( input.LA(1) ) {
+ case 38:
+ case 39:
+ case 135:
+ case 136:
+ {
+ alt7=1;
+ }
+ break;
+ case 137:
+ {
+ alt7=2;
+ }
+ break;
+ case 36:
+ case 37:
+ case 54:
+ case 56:
+ {
+ alt7=3;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 7, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt7) {
+ case 1 :
+ // InternalRBAModel.g:351:3: this_AbstractContent_0= ruleAbstractContent
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getRuleObjectAccess().getAbstractContentParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_AbstractContent_0=ruleAbstractContent();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_AbstractContent_0;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:360:3: this_AbstractScene_1= ruleAbstractScene
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getRuleObjectAccess().getAbstractSceneParserRuleCall_1());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_AbstractScene_1=ruleAbstractScene();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_AbstractScene_1;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:369:3: this_AbstractAllocatable_2= ruleAbstractAllocatable
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getRuleObjectAccess().getAbstractAllocatableParserRuleCall_2());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_AbstractAllocatable_2=ruleAbstractAllocatable();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_AbstractAllocatable_2;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleRuleObject"
+
+
+ // $ANTLR start "entryRuleAbstractAllocatable"
+ // InternalRBAModel.g:381:1: entryRuleAbstractAllocatable returns [EObject current=null] : iv_ruleAbstractAllocatable= ruleAbstractAllocatable EOF ;
+ public final EObject entryRuleAbstractAllocatable() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleAbstractAllocatable = null;
+
+
+ try {
+ // InternalRBAModel.g:381:60: (iv_ruleAbstractAllocatable= ruleAbstractAllocatable EOF )
+ // InternalRBAModel.g:382:2: iv_ruleAbstractAllocatable= ruleAbstractAllocatable EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getAbstractAllocatableRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleAbstractAllocatable=ruleAbstractAllocatable();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleAbstractAllocatable;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleAbstractAllocatable"
+
+
+ // $ANTLR start "ruleAbstractAllocatable"
+ // InternalRBAModel.g:388:1: ruleAbstractAllocatable returns [EObject current=null] : (this_Allocatable_0= ruleAllocatable | this_AllocatableSet_1= ruleAllocatableSet ) ;
+ public final EObject ruleAbstractAllocatable() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_Allocatable_0 = null;
+
+ EObject this_AllocatableSet_1 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:394:2: ( (this_Allocatable_0= ruleAllocatable | this_AllocatableSet_1= ruleAllocatableSet ) )
+ // InternalRBAModel.g:395:2: (this_Allocatable_0= ruleAllocatable | this_AllocatableSet_1= ruleAllocatableSet )
+ {
+ // InternalRBAModel.g:395:2: (this_Allocatable_0= ruleAllocatable | this_AllocatableSet_1= ruleAllocatableSet )
+ int alt8=2;
+ int LA8_0 = input.LA(1);
+
+ if ( ((LA8_0>=36 && LA8_0<=37)) ) {
+ alt8=1;
+ }
+ else if ( (LA8_0==54||LA8_0==56) ) {
+ alt8=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 8, 0, input);
+
+ throw nvae;
+ }
+ switch (alt8) {
+ case 1 :
+ // InternalRBAModel.g:396:3: this_Allocatable_0= ruleAllocatable
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getAbstractAllocatableAccess().getAllocatableParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_Allocatable_0=ruleAllocatable();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_Allocatable_0;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:405:3: this_AllocatableSet_1= ruleAllocatableSet
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getAbstractAllocatableAccess().getAllocatableSetParserRuleCall_1());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_AllocatableSet_1=ruleAllocatableSet();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_AllocatableSet_1;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleAbstractAllocatable"
+
+
+ // $ANTLR start "entryRuleAllocatable"
+ // InternalRBAModel.g:417:1: entryRuleAllocatable returns [EObject current=null] : iv_ruleAllocatable= ruleAllocatable EOF ;
+ public final EObject entryRuleAllocatable() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleAllocatable = null;
+
+
+ try {
+ // InternalRBAModel.g:417:52: (iv_ruleAllocatable= ruleAllocatable EOF )
+ // InternalRBAModel.g:418:2: iv_ruleAllocatable= ruleAllocatable EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getAllocatableRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleAllocatable=ruleAllocatable();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleAllocatable;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleAllocatable"
+
+
+ // $ANTLR start "ruleAllocatable"
+ // InternalRBAModel.g:424:1: ruleAllocatable returns [EObject current=null] : (this_Area_0= ruleArea | this_Zone_1= ruleZone ) ;
+ public final EObject ruleAllocatable() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_Area_0 = null;
+
+ EObject this_Zone_1 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:430:2: ( (this_Area_0= ruleArea | this_Zone_1= ruleZone ) )
+ // InternalRBAModel.g:431:2: (this_Area_0= ruleArea | this_Zone_1= ruleZone )
+ {
+ // InternalRBAModel.g:431:2: (this_Area_0= ruleArea | this_Zone_1= ruleZone )
+ int alt9=2;
+ int LA9_0 = input.LA(1);
+
+ if ( (LA9_0==36) ) {
+ alt9=1;
+ }
+ else if ( (LA9_0==37) ) {
+ alt9=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 9, 0, input);
+
+ throw nvae;
+ }
+ switch (alt9) {
+ case 1 :
+ // InternalRBAModel.g:432:3: this_Area_0= ruleArea
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getAllocatableAccess().getAreaParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_Area_0=ruleArea();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_Area_0;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:441:3: this_Zone_1= ruleZone
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getAllocatableAccess().getZoneParserRuleCall_1());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_Zone_1=ruleZone();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_Zone_1;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleAllocatable"
+
+
+ // $ANTLR start "entryRuleAllocatableSet"
+ // InternalRBAModel.g:453:1: entryRuleAllocatableSet returns [EObject current=null] : iv_ruleAllocatableSet= ruleAllocatableSet EOF ;
+ public final EObject entryRuleAllocatableSet() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleAllocatableSet = null;
+
+
+ try {
+ // InternalRBAModel.g:453:55: (iv_ruleAllocatableSet= ruleAllocatableSet EOF )
+ // InternalRBAModel.g:454:2: iv_ruleAllocatableSet= ruleAllocatableSet EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getAllocatableSetRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleAllocatableSet=ruleAllocatableSet();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleAllocatableSet;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleAllocatableSet"
+
+
+ // $ANTLR start "ruleAllocatableSet"
+ // InternalRBAModel.g:460:1: ruleAllocatableSet returns [EObject current=null] : (this_AreaSet_0= ruleAreaSet | this_ZoneSet_1= ruleZoneSet ) ;
+ public final EObject ruleAllocatableSet() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_AreaSet_0 = null;
+
+ EObject this_ZoneSet_1 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:466:2: ( (this_AreaSet_0= ruleAreaSet | this_ZoneSet_1= ruleZoneSet ) )
+ // InternalRBAModel.g:467:2: (this_AreaSet_0= ruleAreaSet | this_ZoneSet_1= ruleZoneSet )
+ {
+ // InternalRBAModel.g:467:2: (this_AreaSet_0= ruleAreaSet | this_ZoneSet_1= ruleZoneSet )
+ int alt10=2;
+ int LA10_0 = input.LA(1);
+
+ if ( (LA10_0==54) ) {
+ alt10=1;
+ }
+ else if ( (LA10_0==56) ) {
+ alt10=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 10, 0, input);
+
+ throw nvae;
+ }
+ switch (alt10) {
+ case 1 :
+ // InternalRBAModel.g:468:3: this_AreaSet_0= ruleAreaSet
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getAllocatableSetAccess().getAreaSetParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_AreaSet_0=ruleAreaSet();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_AreaSet_0;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:477:3: this_ZoneSet_1= ruleZoneSet
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getAllocatableSetAccess().getZoneSetParserRuleCall_1());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_ZoneSet_1=ruleZoneSet();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_ZoneSet_1;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleAllocatableSet"
+
+
+ // $ANTLR start "entryRuleAbstractContent"
+ // InternalRBAModel.g:489:1: entryRuleAbstractContent returns [EObject current=null] : iv_ruleAbstractContent= ruleAbstractContent EOF ;
+ public final EObject entryRuleAbstractContent() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleAbstractContent = null;
+
+
+ try {
+ // InternalRBAModel.g:489:56: (iv_ruleAbstractContent= ruleAbstractContent EOF )
+ // InternalRBAModel.g:490:2: iv_ruleAbstractContent= ruleAbstractContent EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getAbstractContentRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleAbstractContent=ruleAbstractContent();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleAbstractContent;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleAbstractContent"
+
+
+ // $ANTLR start "ruleAbstractContent"
+ // InternalRBAModel.g:496:1: ruleAbstractContent returns [EObject current=null] : (this_Content_0= ruleContent | this_ContentSet_1= ruleContentSet ) ;
+ public final EObject ruleAbstractContent() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_Content_0 = null;
+
+ EObject this_ContentSet_1 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:502:2: ( (this_Content_0= ruleContent | this_ContentSet_1= ruleContentSet ) )
+ // InternalRBAModel.g:503:2: (this_Content_0= ruleContent | this_ContentSet_1= ruleContentSet )
+ {
+ // InternalRBAModel.g:503:2: (this_Content_0= ruleContent | this_ContentSet_1= ruleContentSet )
+ int alt11=2;
+ int LA11_0 = input.LA(1);
+
+ if ( ((LA11_0>=38 && LA11_0<=39)) ) {
+ alt11=1;
+ }
+ else if ( ((LA11_0>=135 && LA11_0<=136)) ) {
+ alt11=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 11, 0, input);
+
+ throw nvae;
+ }
+ switch (alt11) {
+ case 1 :
+ // InternalRBAModel.g:504:3: this_Content_0= ruleContent
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getAbstractContentAccess().getContentParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_Content_0=ruleContent();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_Content_0;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:513:3: this_ContentSet_1= ruleContentSet
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getAbstractContentAccess().getContentSetParserRuleCall_1());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_ContentSet_1=ruleContentSet();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_ContentSet_1;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleAbstractContent"
+
+
+ // $ANTLR start "entryRuleContent"
+ // InternalRBAModel.g:525:1: entryRuleContent returns [EObject current=null] : iv_ruleContent= ruleContent EOF ;
+ public final EObject entryRuleContent() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleContent = null;
+
+
+ try {
+ // InternalRBAModel.g:525:48: (iv_ruleContent= ruleContent EOF )
+ // InternalRBAModel.g:526:2: iv_ruleContent= ruleContent EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getContentRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleContent=ruleContent();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleContent;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleContent"
+
+
+ // $ANTLR start "ruleContent"
+ // InternalRBAModel.g:532:1: ruleContent returns [EObject current=null] : (this_ViewContent_0= ruleViewContent | this_SoundContent_1= ruleSoundContent ) ;
+ public final EObject ruleContent() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_ViewContent_0 = null;
+
+ EObject this_SoundContent_1 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:538:2: ( (this_ViewContent_0= ruleViewContent | this_SoundContent_1= ruleSoundContent ) )
+ // InternalRBAModel.g:539:2: (this_ViewContent_0= ruleViewContent | this_SoundContent_1= ruleSoundContent )
+ {
+ // InternalRBAModel.g:539:2: (this_ViewContent_0= ruleViewContent | this_SoundContent_1= ruleSoundContent )
+ int alt12=2;
+ int LA12_0 = input.LA(1);
+
+ if ( (LA12_0==39) ) {
+ alt12=1;
+ }
+ else if ( (LA12_0==38) ) {
+ alt12=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 12, 0, input);
+
+ throw nvae;
+ }
+ switch (alt12) {
+ case 1 :
+ // InternalRBAModel.g:540:3: this_ViewContent_0= ruleViewContent
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getContentAccess().getViewContentParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_ViewContent_0=ruleViewContent();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_ViewContent_0;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:549:3: this_SoundContent_1= ruleSoundContent
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getContentAccess().getSoundContentParserRuleCall_1());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_SoundContent_1=ruleSoundContent();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_SoundContent_1;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleContent"
+
+
+ // $ANTLR start "entryRuleContentSet"
+ // InternalRBAModel.g:561:1: entryRuleContentSet returns [EObject current=null] : iv_ruleContentSet= ruleContentSet EOF ;
+ public final EObject entryRuleContentSet() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleContentSet = null;
+
+
+ try {
+ // InternalRBAModel.g:561:51: (iv_ruleContentSet= ruleContentSet EOF )
+ // InternalRBAModel.g:562:2: iv_ruleContentSet= ruleContentSet EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getContentSetRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleContentSet=ruleContentSet();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleContentSet;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleContentSet"
+
+
+ // $ANTLR start "ruleContentSet"
+ // InternalRBAModel.g:568:1: ruleContentSet returns [EObject current=null] : (this_ViewContentSet_0= ruleViewContentSet | this_SoundContentSet_1= ruleSoundContentSet ) ;
+ public final EObject ruleContentSet() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_ViewContentSet_0 = null;
+
+ EObject this_SoundContentSet_1 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:574:2: ( (this_ViewContentSet_0= ruleViewContentSet | this_SoundContentSet_1= ruleSoundContentSet ) )
+ // InternalRBAModel.g:575:2: (this_ViewContentSet_0= ruleViewContentSet | this_SoundContentSet_1= ruleSoundContentSet )
+ {
+ // InternalRBAModel.g:575:2: (this_ViewContentSet_0= ruleViewContentSet | this_SoundContentSet_1= ruleSoundContentSet )
+ int alt13=2;
+ int LA13_0 = input.LA(1);
+
+ if ( (LA13_0==135) ) {
+ alt13=1;
+ }
+ else if ( (LA13_0==136) ) {
+ alt13=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 13, 0, input);
+
+ throw nvae;
+ }
+ switch (alt13) {
+ case 1 :
+ // InternalRBAModel.g:576:3: this_ViewContentSet_0= ruleViewContentSet
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getContentSetAccess().getViewContentSetParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_ViewContentSet_0=ruleViewContentSet();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_ViewContentSet_0;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:585:3: this_SoundContentSet_1= ruleSoundContentSet
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getContentSetAccess().getSoundContentSetParserRuleCall_1());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_SoundContentSet_1=ruleSoundContentSet();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_SoundContentSet_1;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleContentSet"
+
+
+ // $ANTLR start "entryRuleAbstractScene"
+ // InternalRBAModel.g:597:1: entryRuleAbstractScene returns [EObject current=null] : iv_ruleAbstractScene= ruleAbstractScene EOF ;
+ public final EObject entryRuleAbstractScene() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleAbstractScene = null;
+
+
+ try {
+ // InternalRBAModel.g:597:54: (iv_ruleAbstractScene= ruleAbstractScene EOF )
+ // InternalRBAModel.g:598:2: iv_ruleAbstractScene= ruleAbstractScene EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getAbstractSceneRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleAbstractScene=ruleAbstractScene();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleAbstractScene;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleAbstractScene"
+
+
+ // $ANTLR start "ruleAbstractScene"
+ // InternalRBAModel.g:604:1: ruleAbstractScene returns [EObject current=null] : this_Scene_0= ruleScene ;
+ public final EObject ruleAbstractScene() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_Scene_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:610:2: (this_Scene_0= ruleScene )
+ // InternalRBAModel.g:611:2: this_Scene_0= ruleScene
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getAbstractSceneAccess().getSceneParserRuleCall());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_Scene_0=ruleScene();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_Scene_0;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleAbstractScene"
+
+
+ // $ANTLR start "entryRuleAbstractProperty"
+ // InternalRBAModel.g:622:1: entryRuleAbstractProperty returns [EObject current=null] : iv_ruleAbstractProperty= ruleAbstractProperty EOF ;
+ public final EObject entryRuleAbstractProperty() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleAbstractProperty = null;
+
+
+ try {
+ // InternalRBAModel.g:622:57: (iv_ruleAbstractProperty= ruleAbstractProperty EOF )
+ // InternalRBAModel.g:623:2: iv_ruleAbstractProperty= ruleAbstractProperty EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getAbstractPropertyRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleAbstractProperty=ruleAbstractProperty();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleAbstractProperty;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleAbstractProperty"
+
+
+ // $ANTLR start "ruleAbstractProperty"
+ // InternalRBAModel.g:629:1: ruleAbstractProperty returns [EObject current=null] : ( ( () otherlv_1= 'int' ) ( (lv_name_2_0= ruleValidID ) ) (otherlv_3= ':' ( (lv_value_4_0= ruleIntegerValue ) ) )? ) ;
+ public final EObject ruleAbstractProperty() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_3=null;
+ AntlrDatatypeRuleToken lv_name_2_0 = null;
+
+ EObject lv_value_4_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:635:2: ( ( ( () otherlv_1= 'int' ) ( (lv_name_2_0= ruleValidID ) ) (otherlv_3= ':' ( (lv_value_4_0= ruleIntegerValue ) ) )? ) )
+ // InternalRBAModel.g:636:2: ( ( () otherlv_1= 'int' ) ( (lv_name_2_0= ruleValidID ) ) (otherlv_3= ':' ( (lv_value_4_0= ruleIntegerValue ) ) )? )
+ {
+ // InternalRBAModel.g:636:2: ( ( () otherlv_1= 'int' ) ( (lv_name_2_0= ruleValidID ) ) (otherlv_3= ':' ( (lv_value_4_0= ruleIntegerValue ) ) )? )
+ // InternalRBAModel.g:637:3: ( () otherlv_1= 'int' ) ( (lv_name_2_0= ruleValidID ) ) (otherlv_3= ':' ( (lv_value_4_0= ruleIntegerValue ) ) )?
+ {
+ // InternalRBAModel.g:637:3: ( () otherlv_1= 'int' )
+ // InternalRBAModel.g:638:4: () otherlv_1= 'int'
+ {
+ // InternalRBAModel.g:638:4: ()
+ // InternalRBAModel.g:639:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getAbstractPropertyAccess().getIntegerPropertyAction_0_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,20,FOLLOW_3); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getAbstractPropertyAccess().getIntKeyword_0_1());
+
+ }
+
+ }
+
+ // InternalRBAModel.g:650:3: ( (lv_name_2_0= ruleValidID ) )
+ // InternalRBAModel.g:651:4: (lv_name_2_0= ruleValidID )
+ {
+ // InternalRBAModel.g:651:4: (lv_name_2_0= ruleValidID )
+ // InternalRBAModel.g:652:5: lv_name_2_0= ruleValidID
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getAbstractPropertyAccess().getNameValidIDParserRuleCall_1_0());
+
+ }
+ pushFollow(FOLLOW_7);
+ lv_name_2_0=ruleValidID();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getAbstractPropertyRule());
+ }
+ set(
+ current,
+ "name",
+ lv_name_2_0,
+ "rba.tool.editor.RBAModel.ValidID");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // InternalRBAModel.g:669:3: (otherlv_3= ':' ( (lv_value_4_0= ruleIntegerValue ) ) )?
+ int alt14=2;
+ int LA14_0 = input.LA(1);
+
+ if ( (LA14_0==21) ) {
+ alt14=1;
+ }
+ switch (alt14) {
+ case 1 :
+ // InternalRBAModel.g:670:4: otherlv_3= ':' ( (lv_value_4_0= ruleIntegerValue ) )
+ {
+ otherlv_3=(Token)match(input,21,FOLLOW_8); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_3, grammarAccess.getAbstractPropertyAccess().getColonKeyword_2_0());
+
+ }
+ // InternalRBAModel.g:674:4: ( (lv_value_4_0= ruleIntegerValue ) )
+ // InternalRBAModel.g:675:5: (lv_value_4_0= ruleIntegerValue )
+ {
+ // InternalRBAModel.g:675:5: (lv_value_4_0= ruleIntegerValue )
+ // InternalRBAModel.g:676:6: lv_value_4_0= ruleIntegerValue
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getAbstractPropertyAccess().getValueIntegerValueParserRuleCall_2_1_0());
+
+ }
+ pushFollow(FOLLOW_2);
+ lv_value_4_0=ruleIntegerValue();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getAbstractPropertyRule());
+ }
+ set(
+ current,
+ "value",
+ lv_value_4_0,
+ "rba.tool.editor.RBAModel.IntegerValue");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleAbstractProperty"
+
+
+ // $ANTLR start "entryRuleLayoutManager"
+ // InternalRBAModel.g:698:1: entryRuleLayoutManager returns [EObject current=null] : iv_ruleLayoutManager= ruleLayoutManager EOF ;
+ public final EObject entryRuleLayoutManager() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleLayoutManager = null;
+
+
+ try {
+ // InternalRBAModel.g:698:54: (iv_ruleLayoutManager= ruleLayoutManager EOF )
+ // InternalRBAModel.g:699:2: iv_ruleLayoutManager= ruleLayoutManager EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getLayoutManagerRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleLayoutManager=ruleLayoutManager();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleLayoutManager;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleLayoutManager"
+
+
+ // $ANTLR start "ruleLayoutManager"
+ // InternalRBAModel.g:705:1: ruleLayoutManager returns [EObject current=null] : (this_AlignedLayout_0= ruleAlignedLayout | this_FixedPositionLayout_1= ruleFixedPositionLayout ) ;
+ public final EObject ruleLayoutManager() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_AlignedLayout_0 = null;
+
+ EObject this_FixedPositionLayout_1 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:711:2: ( (this_AlignedLayout_0= ruleAlignedLayout | this_FixedPositionLayout_1= ruleFixedPositionLayout ) )
+ // InternalRBAModel.g:712:2: (this_AlignedLayout_0= ruleAlignedLayout | this_FixedPositionLayout_1= ruleFixedPositionLayout )
+ {
+ // InternalRBAModel.g:712:2: (this_AlignedLayout_0= ruleAlignedLayout | this_FixedPositionLayout_1= ruleFixedPositionLayout )
+ int alt15=2;
+ int LA15_0 = input.LA(1);
+
+ if ( (LA15_0==139||LA15_0==142) ) {
+ alt15=1;
+ }
+ else if ( (LA15_0==143) ) {
+ alt15=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 15, 0, input);
+
+ throw nvae;
+ }
+ switch (alt15) {
+ case 1 :
+ // InternalRBAModel.g:713:3: this_AlignedLayout_0= ruleAlignedLayout
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getLayoutManagerAccess().getAlignedLayoutParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_AlignedLayout_0=ruleAlignedLayout();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_AlignedLayout_0;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:722:3: this_FixedPositionLayout_1= ruleFixedPositionLayout
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getLayoutManagerAccess().getFixedPositionLayoutParserRuleCall_1());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_FixedPositionLayout_1=ruleFixedPositionLayout();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_FixedPositionLayout_1;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleLayoutManager"
+
+
+ // $ANTLR start "entryRuleAlignedLayout"
+ // InternalRBAModel.g:734:1: entryRuleAlignedLayout returns [EObject current=null] : iv_ruleAlignedLayout= ruleAlignedLayout EOF ;
+ public final EObject entryRuleAlignedLayout() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleAlignedLayout = null;
+
+
+ try {
+ // InternalRBAModel.g:734:54: (iv_ruleAlignedLayout= ruleAlignedLayout EOF )
+ // InternalRBAModel.g:735:2: iv_ruleAlignedLayout= ruleAlignedLayout EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getAlignedLayoutRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleAlignedLayout=ruleAlignedLayout();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleAlignedLayout;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleAlignedLayout"
+
+
+ // $ANTLR start "ruleAlignedLayout"
+ // InternalRBAModel.g:741:1: ruleAlignedLayout returns [EObject current=null] : (this_VerticalLayout_0= ruleVerticalLayout | this_HorizontalLayout_1= ruleHorizontalLayout ) ;
+ public final EObject ruleAlignedLayout() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_VerticalLayout_0 = null;
+
+ EObject this_HorizontalLayout_1 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:747:2: ( (this_VerticalLayout_0= ruleVerticalLayout | this_HorizontalLayout_1= ruleHorizontalLayout ) )
+ // InternalRBAModel.g:748:2: (this_VerticalLayout_0= ruleVerticalLayout | this_HorizontalLayout_1= ruleHorizontalLayout )
+ {
+ // InternalRBAModel.g:748:2: (this_VerticalLayout_0= ruleVerticalLayout | this_HorizontalLayout_1= ruleHorizontalLayout )
+ int alt16=2;
+ int LA16_0 = input.LA(1);
+
+ if ( (LA16_0==139) ) {
+ alt16=1;
+ }
+ else if ( (LA16_0==142) ) {
+ alt16=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 16, 0, input);
+
+ throw nvae;
+ }
+ switch (alt16) {
+ case 1 :
+ // InternalRBAModel.g:749:3: this_VerticalLayout_0= ruleVerticalLayout
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getAlignedLayoutAccess().getVerticalLayoutParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_VerticalLayout_0=ruleVerticalLayout();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_VerticalLayout_0;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:758:3: this_HorizontalLayout_1= ruleHorizontalLayout
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getAlignedLayoutAccess().getHorizontalLayoutParserRuleCall_1());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_HorizontalLayout_1=ruleHorizontalLayout();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_HorizontalLayout_1;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleAlignedLayout"
+
+
+ // $ANTLR start "entryRuleTag"
+ // InternalRBAModel.g:770:1: entryRuleTag returns [EObject current=null] : iv_ruleTag= ruleTag EOF ;
+ public final EObject entryRuleTag() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleTag = null;
+
+
+ try {
+ // InternalRBAModel.g:770:44: (iv_ruleTag= ruleTag EOF )
+ // InternalRBAModel.g:771:2: iv_ruleTag= ruleTag EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getTagRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleTag=ruleTag();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleTag;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleTag"
+
+
+ // $ANTLR start "ruleTag"
+ // InternalRBAModel.g:777:1: ruleTag returns [EObject current=null] : ( ( ( ( ( () '<<' ( ( ruleQualifiedName ) ) '>>' ) | ( () '\\u00AB' ( ( ruleQualifiedName ) ) '\\u00BB' ) ) )=> ( ( () otherlv_1= '<<' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '>>' ) | ( () otherlv_5= '\\u00AB' ( (lv_name_6_0= ruleQualifiedName ) ) otherlv_7= '\\u00BB' ) ) ) (otherlv_8= '{' ( ( (lv_values_9_0= ruleEString ) ) (otherlv_10= ',' ( (lv_values_11_0= ruleEString ) ) )* )? otherlv_12= '}' )? ) ;
+ public final EObject ruleTag() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_3=null;
+ Token otherlv_5=null;
+ Token otherlv_7=null;
+ Token otherlv_8=null;
+ Token otherlv_10=null;
+ Token otherlv_12=null;
+ AntlrDatatypeRuleToken lv_name_2_0 = null;
+
+ AntlrDatatypeRuleToken lv_name_6_0 = null;
+
+ AntlrDatatypeRuleToken lv_values_9_0 = null;
+
+ AntlrDatatypeRuleToken lv_values_11_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:783:2: ( ( ( ( ( ( () '<<' ( ( ruleQualifiedName ) ) '>>' ) | ( () '\\u00AB' ( ( ruleQualifiedName ) ) '\\u00BB' ) ) )=> ( ( () otherlv_1= '<<' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '>>' ) | ( () otherlv_5= '\\u00AB' ( (lv_name_6_0= ruleQualifiedName ) ) otherlv_7= '\\u00BB' ) ) ) (otherlv_8= '{' ( ( (lv_values_9_0= ruleEString ) ) (otherlv_10= ',' ( (lv_values_11_0= ruleEString ) ) )* )? otherlv_12= '}' )? ) )
+ // InternalRBAModel.g:784:2: ( ( ( ( ( () '<<' ( ( ruleQualifiedName ) ) '>>' ) | ( () '\\u00AB' ( ( ruleQualifiedName ) ) '\\u00BB' ) ) )=> ( ( () otherlv_1= '<<' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '>>' ) | ( () otherlv_5= '\\u00AB' ( (lv_name_6_0= ruleQualifiedName ) ) otherlv_7= '\\u00BB' ) ) ) (otherlv_8= '{' ( ( (lv_values_9_0= ruleEString ) ) (otherlv_10= ',' ( (lv_values_11_0= ruleEString ) ) )* )? otherlv_12= '}' )? )
+ {
+ // InternalRBAModel.g:784:2: ( ( ( ( ( () '<<' ( ( ruleQualifiedName ) ) '>>' ) | ( () '\\u00AB' ( ( ruleQualifiedName ) ) '\\u00BB' ) ) )=> ( ( () otherlv_1= '<<' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '>>' ) | ( () otherlv_5= '\\u00AB' ( (lv_name_6_0= ruleQualifiedName ) ) otherlv_7= '\\u00BB' ) ) ) (otherlv_8= '{' ( ( (lv_values_9_0= ruleEString ) ) (otherlv_10= ',' ( (lv_values_11_0= ruleEString ) ) )* )? otherlv_12= '}' )? )
+ // InternalRBAModel.g:785:3: ( ( ( ( () '<<' ( ( ruleQualifiedName ) ) '>>' ) | ( () '\\u00AB' ( ( ruleQualifiedName ) ) '\\u00BB' ) ) )=> ( ( () otherlv_1= '<<' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '>>' ) | ( () otherlv_5= '\\u00AB' ( (lv_name_6_0= ruleQualifiedName ) ) otherlv_7= '\\u00BB' ) ) ) (otherlv_8= '{' ( ( (lv_values_9_0= ruleEString ) ) (otherlv_10= ',' ( (lv_values_11_0= ruleEString ) ) )* )? otherlv_12= '}' )?
+ {
+ // InternalRBAModel.g:785:3: ( ( ( ( () '<<' ( ( ruleQualifiedName ) ) '>>' ) | ( () '\\u00AB' ( ( ruleQualifiedName ) ) '\\u00BB' ) ) )=> ( ( () otherlv_1= '<<' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '>>' ) | ( () otherlv_5= '\\u00AB' ( (lv_name_6_0= ruleQualifiedName ) ) otherlv_7= '\\u00BB' ) ) )
+ // InternalRBAModel.g:786:4: ( ( ( () '<<' ( ( ruleQualifiedName ) ) '>>' ) | ( () '\\u00AB' ( ( ruleQualifiedName ) ) '\\u00BB' ) ) )=> ( ( () otherlv_1= '<<' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '>>' ) | ( () otherlv_5= '\\u00AB' ( (lv_name_6_0= ruleQualifiedName ) ) otherlv_7= '\\u00BB' ) )
+ {
+ // InternalRBAModel.g:812:4: ( ( () otherlv_1= '<<' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '>>' ) | ( () otherlv_5= '\\u00AB' ( (lv_name_6_0= ruleQualifiedName ) ) otherlv_7= '\\u00BB' ) )
+ int alt17=2;
+ int LA17_0 = input.LA(1);
+
+ if ( (LA17_0==22) ) {
+ alt17=1;
+ }
+ else if ( (LA17_0==24) ) {
+ alt17=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 17, 0, input);
+
+ throw nvae;
+ }
+ switch (alt17) {
+ case 1 :
+ // InternalRBAModel.g:813:5: ( () otherlv_1= '<<' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '>>' )
+ {
+ // InternalRBAModel.g:813:5: ( () otherlv_1= '<<' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '>>' )
+ // InternalRBAModel.g:814:6: () otherlv_1= '<<' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '>>'
+ {
+ // InternalRBAModel.g:814:6: ()
+ // InternalRBAModel.g:815:7:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getTagAccess().getTagAction_0_0_0_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,22,FOLLOW_3); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getTagAccess().getLessThanSignLessThanSignKeyword_0_0_0_1());
+
+ }
+ // InternalRBAModel.g:825:6: ( (lv_name_2_0= ruleQualifiedName ) )
+ // InternalRBAModel.g:826:7: (lv_name_2_0= ruleQualifiedName )
+ {
+ // InternalRBAModel.g:826:7: (lv_name_2_0= ruleQualifiedName )
+ // InternalRBAModel.g:827:8: lv_name_2_0= ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getTagAccess().getNameQualifiedNameParserRuleCall_0_0_0_2_0());
+
+ }
+ pushFollow(FOLLOW_9);
+ lv_name_2_0=ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getTagRule());
+ }
+ set(
+ current,
+ "name",
+ lv_name_2_0,
+ "rba.tool.editor.RBAModel.QualifiedName");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_3=(Token)match(input,23,FOLLOW_10); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_3, grammarAccess.getTagAccess().getGreaterThanSignGreaterThanSignKeyword_0_0_0_3());
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:850:5: ( () otherlv_5= '\\u00AB' ( (lv_name_6_0= ruleQualifiedName ) ) otherlv_7= '\\u00BB' )
+ {
+ // InternalRBAModel.g:850:5: ( () otherlv_5= '\\u00AB' ( (lv_name_6_0= ruleQualifiedName ) ) otherlv_7= '\\u00BB' )
+ // InternalRBAModel.g:851:6: () otherlv_5= '\\u00AB' ( (lv_name_6_0= ruleQualifiedName ) ) otherlv_7= '\\u00BB'
+ {
+ // InternalRBAModel.g:851:6: ()
+ // InternalRBAModel.g:852:7:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getTagAccess().getCTagAction_0_0_1_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_5=(Token)match(input,24,FOLLOW_3); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_5, grammarAccess.getTagAccess().getLeftPointingDoubleAngleQuotationMarkKeyword_0_0_1_1());
+
+ }
+ // InternalRBAModel.g:862:6: ( (lv_name_6_0= ruleQualifiedName ) )
+ // InternalRBAModel.g:863:7: (lv_name_6_0= ruleQualifiedName )
+ {
+ // InternalRBAModel.g:863:7: (lv_name_6_0= ruleQualifiedName )
+ // InternalRBAModel.g:864:8: lv_name_6_0= ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getTagAccess().getNameQualifiedNameParserRuleCall_0_0_1_2_0());
+
+ }
+ pushFollow(FOLLOW_11);
+ lv_name_6_0=ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getTagRule());
+ }
+ set(
+ current,
+ "name",
+ lv_name_6_0,
+ "rba.tool.editor.RBAModel.QualifiedName");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_7=(Token)match(input,25,FOLLOW_10); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_7, grammarAccess.getTagAccess().getRightPointingDoubleAngleQuotationMarkKeyword_0_0_1_3());
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ // InternalRBAModel.g:888:3: (otherlv_8= '{' ( ( (lv_values_9_0= ruleEString ) ) (otherlv_10= ',' ( (lv_values_11_0= ruleEString ) ) )* )? otherlv_12= '}' )?
+ int alt20=2;
+ int LA20_0 = input.LA(1);
+
+ if ( (LA20_0==26) ) {
+ alt20=1;
+ }
+ switch (alt20) {
+ case 1 :
+ // InternalRBAModel.g:889:4: otherlv_8= '{' ( ( (lv_values_9_0= ruleEString ) ) (otherlv_10= ',' ( (lv_values_11_0= ruleEString ) ) )* )? otherlv_12= '}'
+ {
+ otherlv_8=(Token)match(input,26,FOLLOW_12); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_8, grammarAccess.getTagAccess().getLeftCurlyBracketKeyword_1_0());
+
+ }
+ // InternalRBAModel.g:893:4: ( ( (lv_values_9_0= ruleEString ) ) (otherlv_10= ',' ( (lv_values_11_0= ruleEString ) ) )* )?
+ int alt19=2;
+ int LA19_0 = input.LA(1);
+
+ if ( (LA19_0==RULE_STRING) ) {
+ alt19=1;
+ }
+ switch (alt19) {
+ case 1 :
+ // InternalRBAModel.g:894:5: ( (lv_values_9_0= ruleEString ) ) (otherlv_10= ',' ( (lv_values_11_0= ruleEString ) ) )*
+ {
+ // InternalRBAModel.g:894:5: ( (lv_values_9_0= ruleEString ) )
+ // InternalRBAModel.g:895:6: (lv_values_9_0= ruleEString )
+ {
+ // InternalRBAModel.g:895:6: (lv_values_9_0= ruleEString )
+ // InternalRBAModel.g:896:7: lv_values_9_0= ruleEString
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getTagAccess().getValuesEStringParserRuleCall_1_1_0_0());
+
+ }
+ pushFollow(FOLLOW_13);
+ lv_values_9_0=ruleEString();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getTagRule());
+ }
+ add(
+ current,
+ "values",
+ lv_values_9_0,
+ "rba.tool.editor.RBAModel.EString");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // InternalRBAModel.g:913:5: (otherlv_10= ',' ( (lv_values_11_0= ruleEString ) ) )*
+ loop18:
+ do {
+ int alt18=2;
+ int LA18_0 = input.LA(1);
+
+ if ( (LA18_0==27) ) {
+ alt18=1;
+ }
+
+
+ switch (alt18) {
+ case 1 :
+ // InternalRBAModel.g:914:6: otherlv_10= ',' ( (lv_values_11_0= ruleEString ) )
+ {
+ otherlv_10=(Token)match(input,27,FOLLOW_14); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_10, grammarAccess.getTagAccess().getCommaKeyword_1_1_1_0());
+
+ }
+ // InternalRBAModel.g:918:6: ( (lv_values_11_0= ruleEString ) )
+ // InternalRBAModel.g:919:7: (lv_values_11_0= ruleEString )
+ {
+ // InternalRBAModel.g:919:7: (lv_values_11_0= ruleEString )
+ // InternalRBAModel.g:920:8: lv_values_11_0= ruleEString
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getTagAccess().getValuesEStringParserRuleCall_1_1_1_1_0());
+
+ }
+ pushFollow(FOLLOW_13);
+ lv_values_11_0=ruleEString();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getTagRule());
+ }
+ add(
+ current,
+ "values",
+ lv_values_11_0,
+ "rba.tool.editor.RBAModel.EString");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop18;
+ }
+ } while (true);
+
+
+ }
+ break;
+
+ }
+
+ otherlv_12=(Token)match(input,28,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_12, grammarAccess.getTagAccess().getRightCurlyBracketKeyword_1_2());
+
+ }
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleTag"
+
+
+ // $ANTLR start "entryRulePackage"
+ // InternalRBAModel.g:948:1: entryRulePackage returns [EObject current=null] : iv_rulePackage= rulePackage EOF ;
+ public final EObject entryRulePackage() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_rulePackage = null;
+
+
+ try {
+ // InternalRBAModel.g:948:48: (iv_rulePackage= rulePackage EOF )
+ // InternalRBAModel.g:949:2: iv_rulePackage= rulePackage EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getPackageRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_rulePackage=rulePackage();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_rulePackage;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRulePackage"
+
+
+ // $ANTLR start "rulePackage"
+ // InternalRBAModel.g:955:1: rulePackage returns [EObject current=null] : ( () otherlv_1= 'Package' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_packagableelement_7_0= rulePackagableElement ) ) )+ ) ) )* ) ) ) otherlv_8= '}' ) ;
+ public final EObject rulePackage() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_3=null;
+ Token otherlv_5=null;
+ Token otherlv_8=null;
+ AntlrDatatypeRuleToken lv_name_2_0 = null;
+
+ AntlrDatatypeRuleToken lv_description_6_0 = null;
+
+ EObject lv_packagableelement_7_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:961:2: ( ( () otherlv_1= 'Package' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_packagableelement_7_0= rulePackagableElement ) ) )+ ) ) )* ) ) ) otherlv_8= '}' ) )
+ // InternalRBAModel.g:962:2: ( () otherlv_1= 'Package' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_packagableelement_7_0= rulePackagableElement ) ) )+ ) ) )* ) ) ) otherlv_8= '}' )
+ {
+ // InternalRBAModel.g:962:2: ( () otherlv_1= 'Package' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_packagableelement_7_0= rulePackagableElement ) ) )+ ) ) )* ) ) ) otherlv_8= '}' )
+ // InternalRBAModel.g:963:3: () otherlv_1= 'Package' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_packagableelement_7_0= rulePackagableElement ) ) )+ ) ) )* ) ) ) otherlv_8= '}'
+ {
+ // InternalRBAModel.g:963:3: ()
+ // InternalRBAModel.g:964:4:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getPackageAccess().getPackageAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,29,FOLLOW_3); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getPackageAccess().getPackageKeyword_1());
+
+ }
+ // InternalRBAModel.g:974:3: ( (lv_name_2_0= ruleQualifiedName ) )
+ // InternalRBAModel.g:975:4: (lv_name_2_0= ruleQualifiedName )
+ {
+ // InternalRBAModel.g:975:4: (lv_name_2_0= ruleQualifiedName )
+ // InternalRBAModel.g:976:5: lv_name_2_0= ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getPackageAccess().getNameQualifiedNameParserRuleCall_2_0());
+
+ }
+ pushFollow(FOLLOW_15);
+ lv_name_2_0=ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getPackageRule());
+ }
+ set(
+ current,
+ "name",
+ lv_name_2_0,
+ "rba.tool.editor.RBAModel.QualifiedName");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_3=(Token)match(input,26,FOLLOW_16); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_3, grammarAccess.getPackageAccess().getLeftCurlyBracketKeyword_3());
+
+ }
+ // InternalRBAModel.g:997:3: ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_packagableelement_7_0= rulePackagableElement ) ) )+ ) ) )* ) ) )
+ // InternalRBAModel.g:998:4: ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_packagableelement_7_0= rulePackagableElement ) ) )+ ) ) )* ) )
+ {
+ // InternalRBAModel.g:998:4: ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_packagableelement_7_0= rulePackagableElement ) ) )+ ) ) )* ) )
+ // InternalRBAModel.g:999:5: ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_packagableelement_7_0= rulePackagableElement ) ) )+ ) ) )* )
+ {
+ getUnorderedGroupHelper().enter(grammarAccess.getPackageAccess().getUnorderedGroup_4());
+ // InternalRBAModel.g:1002:5: ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_packagableelement_7_0= rulePackagableElement ) ) )+ ) ) )* )
+ // InternalRBAModel.g:1003:6: ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_packagableelement_7_0= rulePackagableElement ) ) )+ ) ) )*
+ {
+ // InternalRBAModel.g:1003:6: ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_packagableelement_7_0= rulePackagableElement ) ) )+ ) ) )*
+ loop22:
+ do {
+ int alt22=3;
+ int LA22_0 = input.LA(1);
+
+ if ( LA22_0 == 30 && getUnorderedGroupHelper().canSelect(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 0) ) {
+ alt22=1;
+ }
+ else if ( ( LA22_0 == 29 || LA22_0 == 31 || LA22_0 >= 36 && LA22_0 <= 41 || LA22_0 == 47 || LA22_0 == 54 || LA22_0 == 56 || LA22_0 >= 135 && LA22_0 <= 137 ) && getUnorderedGroupHelper().canSelect(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 1) ) {
+ alt22=2;
+ }
+
+
+ switch (alt22) {
+ case 1 :
+ // InternalRBAModel.g:1004:4: ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) )
+ {
+ // InternalRBAModel.g:1004:4: ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) )
+ // InternalRBAModel.g:1005:5: {...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "rulePackage", "getUnorderedGroupHelper().canSelect(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 0)");
+ }
+ // InternalRBAModel.g:1005:104: ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) )
+ // InternalRBAModel.g:1006:6: ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 0);
+ // InternalRBAModel.g:1009:9: ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) )
+ // InternalRBAModel.g:1009:10: {...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "rulePackage", "true");
+ }
+ // InternalRBAModel.g:1009:19: (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) )
+ // InternalRBAModel.g:1009:20: otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) )
+ {
+ otherlv_5=(Token)match(input,30,FOLLOW_14); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_5, grammarAccess.getPackageAccess().getDescriptionKeyword_4_0_0());
+
+ }
+ // InternalRBAModel.g:1013:9: ( (lv_description_6_0= ruleEString ) )
+ // InternalRBAModel.g:1014:10: (lv_description_6_0= ruleEString )
+ {
+ // InternalRBAModel.g:1014:10: (lv_description_6_0= ruleEString )
+ // InternalRBAModel.g:1015:11: lv_description_6_0= ruleEString
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getPackageAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+
+ }
+ pushFollow(FOLLOW_16);
+ lv_description_6_0=ruleEString();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getPackageRule());
+ }
+ set(
+ current,
+ "description",
+ lv_description_6_0,
+ "rba.tool.editor.RBAModel.EString");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getPackageAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:1038:4: ({...}? => ( ({...}? => ( (lv_packagableelement_7_0= rulePackagableElement ) ) )+ ) )
+ {
+ // InternalRBAModel.g:1038:4: ({...}? => ( ({...}? => ( (lv_packagableelement_7_0= rulePackagableElement ) ) )+ ) )
+ // InternalRBAModel.g:1039:5: {...}? => ( ({...}? => ( (lv_packagableelement_7_0= rulePackagableElement ) ) )+ )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "rulePackage", "getUnorderedGroupHelper().canSelect(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 1)");
+ }
+ // InternalRBAModel.g:1039:104: ( ({...}? => ( (lv_packagableelement_7_0= rulePackagableElement ) ) )+ )
+ // InternalRBAModel.g:1040:6: ({...}? => ( (lv_packagableelement_7_0= rulePackagableElement ) ) )+
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getPackageAccess().getUnorderedGroup_4(), 1);
+ // InternalRBAModel.g:1043:9: ({...}? => ( (lv_packagableelement_7_0= rulePackagableElement ) ) )+
+ int cnt21=0;
+ loop21:
+ do {
+ int alt21=2;
+ alt21 = dfa21.predict(input);
+ switch (alt21) {
+ case 1 :
+ // InternalRBAModel.g:1043:10: {...}? => ( (lv_packagableelement_7_0= rulePackagableElement ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "rulePackage", "true");
+ }
+ // InternalRBAModel.g:1043:19: ( (lv_packagableelement_7_0= rulePackagableElement ) )
+ // InternalRBAModel.g:1043:20: (lv_packagableelement_7_0= rulePackagableElement )
+ {
+ // InternalRBAModel.g:1043:20: (lv_packagableelement_7_0= rulePackagableElement )
+ // InternalRBAModel.g:1044:10: lv_packagableelement_7_0= rulePackagableElement
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getPackageAccess().getPackagableelementPackagableElementParserRuleCall_4_1_0());
+
+ }
+ pushFollow(FOLLOW_16);
+ lv_packagableelement_7_0=rulePackagableElement();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getPackageRule());
+ }
+ add(
+ current,
+ "packagableelement",
+ lv_packagableelement_7_0,
+ "rba.tool.editor.RBAModel.PackagableElement");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ if ( cnt21 >= 1 ) break loop21;
+ if (state.backtracking>0) {state.failed=true; return current;}
+ EarlyExitException eee =
+ new EarlyExitException(21, input);
+ throw eee;
+ }
+ cnt21++;
+ } while (true);
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getPackageAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop22;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().leave(grammarAccess.getPackageAccess().getUnorderedGroup_4());
+
+ }
+
+ otherlv_8=(Token)match(input,28,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_8, grammarAccess.getPackageAccess().getRightCurlyBracketKeyword_5());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "rulePackage"
+
+
+ // $ANTLR start "entryRuleStereotype"
+ // InternalRBAModel.g:1081:1: entryRuleStereotype returns [EObject current=null] : iv_ruleStereotype= ruleStereotype EOF ;
+ public final EObject entryRuleStereotype() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleStereotype = null;
+
+
+ try {
+ // InternalRBAModel.g:1081:51: (iv_ruleStereotype= ruleStereotype EOF )
+ // InternalRBAModel.g:1082:2: iv_ruleStereotype= ruleStereotype EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getStereotypeRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleStereotype=ruleStereotype();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleStereotype;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleStereotype"
+
+
+ // $ANTLR start "ruleStereotype"
+ // InternalRBAModel.g:1088:1: ruleStereotype returns [EObject current=null] : ( () otherlv_1= 'Stereotype' otherlv_2= '<' ( (lv_targetModelName_3_0= ruleStereotypableElementName ) ) otherlv_4= '>' ( (lv_name_5_0= ruleQualifiedName ) ) otherlv_6= '(' ( ( (lv_variables_7_0= ruleVariable ) ) (otherlv_8= ',' ( (lv_variables_9_0= ruleVariable ) ) )* )? otherlv_10= ')' ( (lv_bodyText_11_0= ruleRichString ) )? ) ;
+ public final EObject ruleStereotype() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_2=null;
+ Token otherlv_4=null;
+ Token otherlv_6=null;
+ Token otherlv_8=null;
+ Token otherlv_10=null;
+ AntlrDatatypeRuleToken lv_targetModelName_3_0 = null;
+
+ AntlrDatatypeRuleToken lv_name_5_0 = null;
+
+ EObject lv_variables_7_0 = null;
+
+ EObject lv_variables_9_0 = null;
+
+ AntlrDatatypeRuleToken lv_bodyText_11_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:1094:2: ( ( () otherlv_1= 'Stereotype' otherlv_2= '<' ( (lv_targetModelName_3_0= ruleStereotypableElementName ) ) otherlv_4= '>' ( (lv_name_5_0= ruleQualifiedName ) ) otherlv_6= '(' ( ( (lv_variables_7_0= ruleVariable ) ) (otherlv_8= ',' ( (lv_variables_9_0= ruleVariable ) ) )* )? otherlv_10= ')' ( (lv_bodyText_11_0= ruleRichString ) )? ) )
+ // InternalRBAModel.g:1095:2: ( () otherlv_1= 'Stereotype' otherlv_2= '<' ( (lv_targetModelName_3_0= ruleStereotypableElementName ) ) otherlv_4= '>' ( (lv_name_5_0= ruleQualifiedName ) ) otherlv_6= '(' ( ( (lv_variables_7_0= ruleVariable ) ) (otherlv_8= ',' ( (lv_variables_9_0= ruleVariable ) ) )* )? otherlv_10= ')' ( (lv_bodyText_11_0= ruleRichString ) )? )
+ {
+ // InternalRBAModel.g:1095:2: ( () otherlv_1= 'Stereotype' otherlv_2= '<' ( (lv_targetModelName_3_0= ruleStereotypableElementName ) ) otherlv_4= '>' ( (lv_name_5_0= ruleQualifiedName ) ) otherlv_6= '(' ( ( (lv_variables_7_0= ruleVariable ) ) (otherlv_8= ',' ( (lv_variables_9_0= ruleVariable ) ) )* )? otherlv_10= ')' ( (lv_bodyText_11_0= ruleRichString ) )? )
+ // InternalRBAModel.g:1096:3: () otherlv_1= 'Stereotype' otherlv_2= '<' ( (lv_targetModelName_3_0= ruleStereotypableElementName ) ) otherlv_4= '>' ( (lv_name_5_0= ruleQualifiedName ) ) otherlv_6= '(' ( ( (lv_variables_7_0= ruleVariable ) ) (otherlv_8= ',' ( (lv_variables_9_0= ruleVariable ) ) )* )? otherlv_10= ')' ( (lv_bodyText_11_0= ruleRichString ) )?
+ {
+ // InternalRBAModel.g:1096:3: ()
+ // InternalRBAModel.g:1097:4:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getStereotypeAccess().getStereotypeAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,31,FOLLOW_17); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getStereotypeAccess().getStereotypeKeyword_1());
+
+ }
+ otherlv_2=(Token)match(input,32,FOLLOW_18); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_2, grammarAccess.getStereotypeAccess().getLessThanSignKeyword_2());
+
+ }
+ // InternalRBAModel.g:1111:3: ( (lv_targetModelName_3_0= ruleStereotypableElementName ) )
+ // InternalRBAModel.g:1112:4: (lv_targetModelName_3_0= ruleStereotypableElementName )
+ {
+ // InternalRBAModel.g:1112:4: (lv_targetModelName_3_0= ruleStereotypableElementName )
+ // InternalRBAModel.g:1113:5: lv_targetModelName_3_0= ruleStereotypableElementName
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getStereotypeAccess().getTargetModelNameStereotypableElementNameParserRuleCall_3_0());
+
+ }
+ pushFollow(FOLLOW_19);
+ lv_targetModelName_3_0=ruleStereotypableElementName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getStereotypeRule());
+ }
+ set(
+ current,
+ "targetModelName",
+ lv_targetModelName_3_0,
+ "rba.tool.editor.RBAModel.StereotypableElementName");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_4=(Token)match(input,33,FOLLOW_3); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_4, grammarAccess.getStereotypeAccess().getGreaterThanSignKeyword_4());
+
+ }
+ // InternalRBAModel.g:1134:3: ( (lv_name_5_0= ruleQualifiedName ) )
+ // InternalRBAModel.g:1135:4: (lv_name_5_0= ruleQualifiedName )
+ {
+ // InternalRBAModel.g:1135:4: (lv_name_5_0= ruleQualifiedName )
+ // InternalRBAModel.g:1136:5: lv_name_5_0= ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getStereotypeAccess().getNameQualifiedNameParserRuleCall_5_0());
+
+ }
+ pushFollow(FOLLOW_20);
+ lv_name_5_0=ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getStereotypeRule());
+ }
+ set(
+ current,
+ "name",
+ lv_name_5_0,
+ "rba.tool.editor.RBAModel.QualifiedName");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_6=(Token)match(input,34,FOLLOW_21); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_6, grammarAccess.getStereotypeAccess().getLeftParenthesisKeyword_6());
+
+ }
+ // InternalRBAModel.g:1157:3: ( ( (lv_variables_7_0= ruleVariable ) ) (otherlv_8= ',' ( (lv_variables_9_0= ruleVariable ) ) )* )?
+ int alt24=2;
+ int LA24_0 = input.LA(1);
+
+ if ( (LA24_0==RULE_ID) ) {
+ alt24=1;
+ }
+ switch (alt24) {
+ case 1 :
+ // InternalRBAModel.g:1158:4: ( (lv_variables_7_0= ruleVariable ) ) (otherlv_8= ',' ( (lv_variables_9_0= ruleVariable ) ) )*
+ {
+ // InternalRBAModel.g:1158:4: ( (lv_variables_7_0= ruleVariable ) )
+ // InternalRBAModel.g:1159:5: (lv_variables_7_0= ruleVariable )
+ {
+ // InternalRBAModel.g:1159:5: (lv_variables_7_0= ruleVariable )
+ // InternalRBAModel.g:1160:6: lv_variables_7_0= ruleVariable
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getStereotypeAccess().getVariablesVariableParserRuleCall_7_0_0());
+
+ }
+ pushFollow(FOLLOW_22);
+ lv_variables_7_0=ruleVariable();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getStereotypeRule());
+ }
+ add(
+ current,
+ "variables",
+ lv_variables_7_0,
+ "rba.tool.editor.RBAModel.Variable");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // InternalRBAModel.g:1177:4: (otherlv_8= ',' ( (lv_variables_9_0= ruleVariable ) ) )*
+ loop23:
+ do {
+ int alt23=2;
+ int LA23_0 = input.LA(1);
+
+ if ( (LA23_0==27) ) {
+ alt23=1;
+ }
+
+
+ switch (alt23) {
+ case 1 :
+ // InternalRBAModel.g:1178:5: otherlv_8= ',' ( (lv_variables_9_0= ruleVariable ) )
+ {
+ otherlv_8=(Token)match(input,27,FOLLOW_3); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_8, grammarAccess.getStereotypeAccess().getCommaKeyword_7_1_0());
+
+ }
+ // InternalRBAModel.g:1182:5: ( (lv_variables_9_0= ruleVariable ) )
+ // InternalRBAModel.g:1183:6: (lv_variables_9_0= ruleVariable )
+ {
+ // InternalRBAModel.g:1183:6: (lv_variables_9_0= ruleVariable )
+ // InternalRBAModel.g:1184:7: lv_variables_9_0= ruleVariable
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getStereotypeAccess().getVariablesVariableParserRuleCall_7_1_1_0());
+
+ }
+ pushFollow(FOLLOW_22);
+ lv_variables_9_0=ruleVariable();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getStereotypeRule());
+ }
+ add(
+ current,
+ "variables",
+ lv_variables_9_0,
+ "rba.tool.editor.RBAModel.Variable");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop23;
+ }
+ } while (true);
+
+
+ }
+ break;
+
+ }
+
+ otherlv_10=(Token)match(input,35,FOLLOW_23); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_10, grammarAccess.getStereotypeAccess().getRightParenthesisKeyword_8());
+
+ }
+ // InternalRBAModel.g:1207:3: ( (lv_bodyText_11_0= ruleRichString ) )?
+ int alt25=2;
+ int LA25_0 = input.LA(1);
+
+ if ( (LA25_0==RULE_RICH_STRING) ) {
+ alt25=1;
+ }
+ switch (alt25) {
+ case 1 :
+ // InternalRBAModel.g:1208:4: (lv_bodyText_11_0= ruleRichString )
+ {
+ // InternalRBAModel.g:1208:4: (lv_bodyText_11_0= ruleRichString )
+ // InternalRBAModel.g:1209:5: lv_bodyText_11_0= ruleRichString
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getStereotypeAccess().getBodyTextRichStringParserRuleCall_9_0());
+
+ }
+ pushFollow(FOLLOW_2);
+ lv_bodyText_11_0=ruleRichString();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getStereotypeRule());
+ }
+ set(
+ current,
+ "bodyText",
+ lv_bodyText_11_0,
+ "rba.tool.editor.RBAModel.RichString");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleStereotype"
+
+
+ // $ANTLR start "entryRuleStereotypableElementName"
+ // InternalRBAModel.g:1230:1: entryRuleStereotypableElementName returns [String current=null] : iv_ruleStereotypableElementName= ruleStereotypableElementName EOF ;
+ public final String entryRuleStereotypableElementName() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleStereotypableElementName = null;
+
+
+ try {
+ // InternalRBAModel.g:1230:64: (iv_ruleStereotypableElementName= ruleStereotypableElementName EOF )
+ // InternalRBAModel.g:1231:2: iv_ruleStereotypableElementName= ruleStereotypableElementName EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getStereotypableElementNameRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleStereotypableElementName=ruleStereotypableElementName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleStereotypableElementName.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleStereotypableElementName"
+
+
+ // $ANTLR start "ruleStereotypableElementName"
+ // InternalRBAModel.g:1237:1: ruleStereotypableElementName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= 'Area' | kw= 'Zone' | kw= 'SoundContent' | kw= 'ViewContent' ) ;
+ public final AntlrDatatypeRuleToken ruleStereotypableElementName() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:1243:2: ( (kw= 'Area' | kw= 'Zone' | kw= 'SoundContent' | kw= 'ViewContent' ) )
+ // InternalRBAModel.g:1244:2: (kw= 'Area' | kw= 'Zone' | kw= 'SoundContent' | kw= 'ViewContent' )
+ {
+ // InternalRBAModel.g:1244:2: (kw= 'Area' | kw= 'Zone' | kw= 'SoundContent' | kw= 'ViewContent' )
+ int alt26=4;
+ switch ( input.LA(1) ) {
+ case 36:
+ {
+ alt26=1;
+ }
+ break;
+ case 37:
+ {
+ alt26=2;
+ }
+ break;
+ case 38:
+ {
+ alt26=3;
+ }
+ break;
+ case 39:
+ {
+ alt26=4;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 26, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt26) {
+ case 1 :
+ // InternalRBAModel.g:1245:3: kw= 'Area'
+ {
+ kw=(Token)match(input,36,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getStereotypableElementNameAccess().getAreaKeyword_0());
+
+ }
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:1251:3: kw= 'Zone'
+ {
+ kw=(Token)match(input,37,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getStereotypableElementNameAccess().getZoneKeyword_1());
+
+ }
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:1257:3: kw= 'SoundContent'
+ {
+ kw=(Token)match(input,38,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getStereotypableElementNameAccess().getSoundContentKeyword_2());
+
+ }
+
+ }
+ break;
+ case 4 :
+ // InternalRBAModel.g:1263:3: kw= 'ViewContent'
+ {
+ kw=(Token)match(input,39,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getStereotypableElementNameAccess().getViewContentKeyword_3());
+
+ }
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleStereotypableElementName"
+
+
+ // $ANTLR start "entryRuleDisplay"
+ // InternalRBAModel.g:1272:1: entryRuleDisplay returns [EObject current=null] : iv_ruleDisplay= ruleDisplay EOF ;
+ public final EObject entryRuleDisplay() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleDisplay = null;
+
+
+ try {
+ // InternalRBAModel.g:1272:48: (iv_ruleDisplay= ruleDisplay EOF )
+ // InternalRBAModel.g:1273:2: iv_ruleDisplay= ruleDisplay EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getDisplayRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleDisplay=ruleDisplay();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleDisplay;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleDisplay"
+
+
+ // $ANTLR start "ruleDisplay"
+ // InternalRBAModel.g:1279:1: ruleDisplay returns [EObject current=null] : ( () otherlv_1= 'Display' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_size_7_0= ruleSizeIdentifier ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_root_8_0= ruleCompositeArea ) ) ) ) ) )* ) ) ) otherlv_9= '}' ) ;
+ public final EObject ruleDisplay() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_3=null;
+ Token otherlv_5=null;
+ Token otherlv_9=null;
+ AntlrDatatypeRuleToken lv_name_2_0 = null;
+
+ AntlrDatatypeRuleToken lv_description_6_0 = null;
+
+ EObject lv_size_7_0 = null;
+
+ EObject lv_root_8_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:1285:2: ( ( () otherlv_1= 'Display' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_size_7_0= ruleSizeIdentifier ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_root_8_0= ruleCompositeArea ) ) ) ) ) )* ) ) ) otherlv_9= '}' ) )
+ // InternalRBAModel.g:1286:2: ( () otherlv_1= 'Display' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_size_7_0= ruleSizeIdentifier ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_root_8_0= ruleCompositeArea ) ) ) ) ) )* ) ) ) otherlv_9= '}' )
+ {
+ // InternalRBAModel.g:1286:2: ( () otherlv_1= 'Display' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_size_7_0= ruleSizeIdentifier ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_root_8_0= ruleCompositeArea ) ) ) ) ) )* ) ) ) otherlv_9= '}' )
+ // InternalRBAModel.g:1287:3: () otherlv_1= 'Display' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_size_7_0= ruleSizeIdentifier ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_root_8_0= ruleCompositeArea ) ) ) ) ) )* ) ) ) otherlv_9= '}'
+ {
+ // InternalRBAModel.g:1287:3: ()
+ // InternalRBAModel.g:1288:4:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getDisplayAccess().getDisplayAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,40,FOLLOW_3); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getDisplayAccess().getDisplayKeyword_1());
+
+ }
+ // InternalRBAModel.g:1298:3: ( (lv_name_2_0= ruleQualifiedName ) )
+ // InternalRBAModel.g:1299:4: (lv_name_2_0= ruleQualifiedName )
+ {
+ // InternalRBAModel.g:1299:4: (lv_name_2_0= ruleQualifiedName )
+ // InternalRBAModel.g:1300:5: lv_name_2_0= ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getDisplayAccess().getNameQualifiedNameParserRuleCall_2_0());
+
+ }
+ pushFollow(FOLLOW_15);
+ lv_name_2_0=ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getDisplayRule());
+ }
+ set(
+ current,
+ "name",
+ lv_name_2_0,
+ "rba.tool.editor.RBAModel.QualifiedName");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_3=(Token)match(input,26,FOLLOW_24); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_3, grammarAccess.getDisplayAccess().getLeftCurlyBracketKeyword_3());
+
+ }
+ // InternalRBAModel.g:1321:3: ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_size_7_0= ruleSizeIdentifier ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_root_8_0= ruleCompositeArea ) ) ) ) ) )* ) ) )
+ // InternalRBAModel.g:1322:4: ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_size_7_0= ruleSizeIdentifier ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_root_8_0= ruleCompositeArea ) ) ) ) ) )* ) )
+ {
+ // InternalRBAModel.g:1322:4: ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_size_7_0= ruleSizeIdentifier ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_root_8_0= ruleCompositeArea ) ) ) ) ) )* ) )
+ // InternalRBAModel.g:1323:5: ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_size_7_0= ruleSizeIdentifier ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_root_8_0= ruleCompositeArea ) ) ) ) ) )* )
+ {
+ getUnorderedGroupHelper().enter(grammarAccess.getDisplayAccess().getUnorderedGroup_4());
+ // InternalRBAModel.g:1326:5: ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_size_7_0= ruleSizeIdentifier ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_root_8_0= ruleCompositeArea ) ) ) ) ) )* )
+ // InternalRBAModel.g:1327:6: ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_size_7_0= ruleSizeIdentifier ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_root_8_0= ruleCompositeArea ) ) ) ) ) )*
+ {
+ // InternalRBAModel.g:1327:6: ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_size_7_0= ruleSizeIdentifier ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_root_8_0= ruleCompositeArea ) ) ) ) ) )*
+ loop27:
+ do {
+ int alt27=4;
+ int LA27_0 = input.LA(1);
+
+ if ( LA27_0 == 30 && getUnorderedGroupHelper().canSelect(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 0) ) {
+ alt27=1;
+ }
+ else if ( ( LA27_0 == 47 || LA27_0 == 50 ) && getUnorderedGroupHelper().canSelect(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 1) ) {
+ alt27=2;
+ }
+ else if ( LA27_0 == 57 && getUnorderedGroupHelper().canSelect(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 2) ) {
+ alt27=3;
+ }
+
+
+ switch (alt27) {
+ case 1 :
+ // InternalRBAModel.g:1328:4: ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) )
+ {
+ // InternalRBAModel.g:1328:4: ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) )
+ // InternalRBAModel.g:1329:5: {...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleDisplay", "getUnorderedGroupHelper().canSelect(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 0)");
+ }
+ // InternalRBAModel.g:1329:104: ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) )
+ // InternalRBAModel.g:1330:6: ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 0);
+ // InternalRBAModel.g:1333:9: ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) )
+ // InternalRBAModel.g:1333:10: {...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleDisplay", "true");
+ }
+ // InternalRBAModel.g:1333:19: (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) )
+ // InternalRBAModel.g:1333:20: otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) )
+ {
+ otherlv_5=(Token)match(input,30,FOLLOW_14); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_5, grammarAccess.getDisplayAccess().getDescriptionKeyword_4_0_0());
+
+ }
+ // InternalRBAModel.g:1337:9: ( (lv_description_6_0= ruleEString ) )
+ // InternalRBAModel.g:1338:10: (lv_description_6_0= ruleEString )
+ {
+ // InternalRBAModel.g:1338:10: (lv_description_6_0= ruleEString )
+ // InternalRBAModel.g:1339:11: lv_description_6_0= ruleEString
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getDisplayAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+
+ }
+ pushFollow(FOLLOW_24);
+ lv_description_6_0=ruleEString();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getDisplayRule());
+ }
+ set(
+ current,
+ "description",
+ lv_description_6_0,
+ "rba.tool.editor.RBAModel.EString");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getDisplayAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:1362:4: ({...}? => ( ({...}? => ( (lv_size_7_0= ruleSizeIdentifier ) ) ) ) )
+ {
+ // InternalRBAModel.g:1362:4: ({...}? => ( ({...}? => ( (lv_size_7_0= ruleSizeIdentifier ) ) ) ) )
+ // InternalRBAModel.g:1363:5: {...}? => ( ({...}? => ( (lv_size_7_0= ruleSizeIdentifier ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleDisplay", "getUnorderedGroupHelper().canSelect(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 1)");
+ }
+ // InternalRBAModel.g:1363:104: ( ({...}? => ( (lv_size_7_0= ruleSizeIdentifier ) ) ) )
+ // InternalRBAModel.g:1364:6: ({...}? => ( (lv_size_7_0= ruleSizeIdentifier ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 1);
+ // InternalRBAModel.g:1367:9: ({...}? => ( (lv_size_7_0= ruleSizeIdentifier ) ) )
+ // InternalRBAModel.g:1367:10: {...}? => ( (lv_size_7_0= ruleSizeIdentifier ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleDisplay", "true");
+ }
+ // InternalRBAModel.g:1367:19: ( (lv_size_7_0= ruleSizeIdentifier ) )
+ // InternalRBAModel.g:1367:20: (lv_size_7_0= ruleSizeIdentifier )
+ {
+ // InternalRBAModel.g:1367:20: (lv_size_7_0= ruleSizeIdentifier )
+ // InternalRBAModel.g:1368:10: lv_size_7_0= ruleSizeIdentifier
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getDisplayAccess().getSizeSizeIdentifierParserRuleCall_4_1_0());
+
+ }
+ pushFollow(FOLLOW_24);
+ lv_size_7_0=ruleSizeIdentifier();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getDisplayRule());
+ }
+ set(
+ current,
+ "size",
+ lv_size_7_0,
+ "rba.tool.editor.RBAModel.SizeIdentifier");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getDisplayAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:1390:4: ({...}? => ( ({...}? => ( (lv_root_8_0= ruleCompositeArea ) ) ) ) )
+ {
+ // InternalRBAModel.g:1390:4: ({...}? => ( ({...}? => ( (lv_root_8_0= ruleCompositeArea ) ) ) ) )
+ // InternalRBAModel.g:1391:5: {...}? => ( ({...}? => ( (lv_root_8_0= ruleCompositeArea ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 2) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleDisplay", "getUnorderedGroupHelper().canSelect(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 2)");
+ }
+ // InternalRBAModel.g:1391:104: ( ({...}? => ( (lv_root_8_0= ruleCompositeArea ) ) ) )
+ // InternalRBAModel.g:1392:6: ({...}? => ( (lv_root_8_0= ruleCompositeArea ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getDisplayAccess().getUnorderedGroup_4(), 2);
+ // InternalRBAModel.g:1395:9: ({...}? => ( (lv_root_8_0= ruleCompositeArea ) ) )
+ // InternalRBAModel.g:1395:10: {...}? => ( (lv_root_8_0= ruleCompositeArea ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleDisplay", "true");
+ }
+ // InternalRBAModel.g:1395:19: ( (lv_root_8_0= ruleCompositeArea ) )
+ // InternalRBAModel.g:1395:20: (lv_root_8_0= ruleCompositeArea )
+ {
+ // InternalRBAModel.g:1395:20: (lv_root_8_0= ruleCompositeArea )
+ // InternalRBAModel.g:1396:10: lv_root_8_0= ruleCompositeArea
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getDisplayAccess().getRootCompositeAreaParserRuleCall_4_2_0());
+
+ }
+ pushFollow(FOLLOW_24);
+ lv_root_8_0=ruleCompositeArea();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getDisplayRule());
+ }
+ set(
+ current,
+ "root",
+ lv_root_8_0,
+ "rba.tool.editor.RBAModel.CompositeArea");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getDisplayAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop27;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().leave(grammarAccess.getDisplayAccess().getUnorderedGroup_4());
+
+ }
+
+ otherlv_9=(Token)match(input,28,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_9, grammarAccess.getDisplayAccess().getRightCurlyBracketKeyword_5());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleDisplay"
+
+
+ // $ANTLR start "entryRuleConstraint"
+ // InternalRBAModel.g:1433:1: entryRuleConstraint returns [EObject current=null] : iv_ruleConstraint= ruleConstraint EOF ;
+ public final EObject entryRuleConstraint() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleConstraint = null;
+
+
+ try {
+ // InternalRBAModel.g:1433:51: (iv_ruleConstraint= ruleConstraint EOF )
+ // InternalRBAModel.g:1434:2: iv_ruleConstraint= ruleConstraint EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getConstraintRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleConstraint=ruleConstraint();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleConstraint;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleConstraint"
+
+
+ // $ANTLR start "ruleConstraint"
+ // InternalRBAModel.g:1440:1: ruleConstraint returns [EObject current=null] : ( () otherlv_1= 'Constraint' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'runtime:' ( (lv_runtime_8_0= ruleEBoolean ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_expression_9_0= ruleComplexExpression ) ) ) ) ) )* ) ) ) otherlv_10= '}' ) ;
+ public final EObject ruleConstraint() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_3=null;
+ Token otherlv_5=null;
+ Token otherlv_7=null;
+ Token otherlv_10=null;
+ AntlrDatatypeRuleToken lv_name_2_0 = null;
+
+ AntlrDatatypeRuleToken lv_description_6_0 = null;
+
+ AntlrDatatypeRuleToken lv_runtime_8_0 = null;
+
+ EObject lv_expression_9_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:1446:2: ( ( () otherlv_1= 'Constraint' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'runtime:' ( (lv_runtime_8_0= ruleEBoolean ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_expression_9_0= ruleComplexExpression ) ) ) ) ) )* ) ) ) otherlv_10= '}' ) )
+ // InternalRBAModel.g:1447:2: ( () otherlv_1= 'Constraint' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'runtime:' ( (lv_runtime_8_0= ruleEBoolean ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_expression_9_0= ruleComplexExpression ) ) ) ) ) )* ) ) ) otherlv_10= '}' )
+ {
+ // InternalRBAModel.g:1447:2: ( () otherlv_1= 'Constraint' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'runtime:' ( (lv_runtime_8_0= ruleEBoolean ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_expression_9_0= ruleComplexExpression ) ) ) ) ) )* ) ) ) otherlv_10= '}' )
+ // InternalRBAModel.g:1448:3: () otherlv_1= 'Constraint' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'runtime:' ( (lv_runtime_8_0= ruleEBoolean ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_expression_9_0= ruleComplexExpression ) ) ) ) ) )* ) ) ) otherlv_10= '}'
+ {
+ // InternalRBAModel.g:1448:3: ()
+ // InternalRBAModel.g:1449:4:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getConstraintAccess().getConstraintAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,41,FOLLOW_3); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getConstraintAccess().getConstraintKeyword_1());
+
+ }
+ // InternalRBAModel.g:1459:3: ( (lv_name_2_0= ruleQualifiedName ) )
+ // InternalRBAModel.g:1460:4: (lv_name_2_0= ruleQualifiedName )
+ {
+ // InternalRBAModel.g:1460:4: (lv_name_2_0= ruleQualifiedName )
+ // InternalRBAModel.g:1461:5: lv_name_2_0= ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getConstraintAccess().getNameQualifiedNameParserRuleCall_2_0());
+
+ }
+ pushFollow(FOLLOW_15);
+ lv_name_2_0=ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getConstraintRule());
+ }
+ set(
+ current,
+ "name",
+ lv_name_2_0,
+ "rba.tool.editor.RBAModel.QualifiedName");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_3=(Token)match(input,26,FOLLOW_25); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_3, grammarAccess.getConstraintAccess().getLeftCurlyBracketKeyword_3());
+
+ }
+ // InternalRBAModel.g:1482:3: ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'runtime:' ( (lv_runtime_8_0= ruleEBoolean ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_expression_9_0= ruleComplexExpression ) ) ) ) ) )* ) ) )
+ // InternalRBAModel.g:1483:4: ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'runtime:' ( (lv_runtime_8_0= ruleEBoolean ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_expression_9_0= ruleComplexExpression ) ) ) ) ) )* ) )
+ {
+ // InternalRBAModel.g:1483:4: ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'runtime:' ( (lv_runtime_8_0= ruleEBoolean ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_expression_9_0= ruleComplexExpression ) ) ) ) ) )* ) )
+ // InternalRBAModel.g:1484:5: ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'runtime:' ( (lv_runtime_8_0= ruleEBoolean ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_expression_9_0= ruleComplexExpression ) ) ) ) ) )* )
+ {
+ getUnorderedGroupHelper().enter(grammarAccess.getConstraintAccess().getUnorderedGroup_4());
+ // InternalRBAModel.g:1487:5: ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'runtime:' ( (lv_runtime_8_0= ruleEBoolean ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_expression_9_0= ruleComplexExpression ) ) ) ) ) )* )
+ // InternalRBAModel.g:1488:6: ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'runtime:' ( (lv_runtime_8_0= ruleEBoolean ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_expression_9_0= ruleComplexExpression ) ) ) ) ) )*
+ {
+ // InternalRBAModel.g:1488:6: ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'runtime:' ( (lv_runtime_8_0= ruleEBoolean ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_expression_9_0= ruleComplexExpression ) ) ) ) ) )*
+ loop28:
+ do {
+ int alt28=4;
+ int LA28_0 = input.LA(1);
+
+ if ( LA28_0 == 30 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 0) ) {
+ alt28=1;
+ }
+ else if ( LA28_0 == 42 && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 1) ) {
+ alt28=2;
+ }
+ else if ( ( LA28_0 == RULE_INT || LA28_0 == RULE_ID || LA28_0 == 26 || LA28_0 == 34 || LA28_0 == 83 || LA28_0 >= 120 && LA28_0 <= 128 || LA28_0 >= 131 && LA28_0 <= 132 || LA28_0 == 134 || LA28_0 == 148 || LA28_0 == 150 ) && getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {
+ alt28=3;
+ }
+
+
+ switch (alt28) {
+ case 1 :
+ // InternalRBAModel.g:1489:4: ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) )
+ {
+ // InternalRBAModel.g:1489:4: ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) )
+ // InternalRBAModel.g:1490:5: {...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleConstraint", "getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 0)");
+ }
+ // InternalRBAModel.g:1490:107: ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) )
+ // InternalRBAModel.g:1491:6: ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 0);
+ // InternalRBAModel.g:1494:9: ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) )
+ // InternalRBAModel.g:1494:10: {...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleConstraint", "true");
+ }
+ // InternalRBAModel.g:1494:19: (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) )
+ // InternalRBAModel.g:1494:20: otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) )
+ {
+ otherlv_5=(Token)match(input,30,FOLLOW_14); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_5, grammarAccess.getConstraintAccess().getDescriptionKeyword_4_0_0());
+
+ }
+ // InternalRBAModel.g:1498:9: ( (lv_description_6_0= ruleEString ) )
+ // InternalRBAModel.g:1499:10: (lv_description_6_0= ruleEString )
+ {
+ // InternalRBAModel.g:1499:10: (lv_description_6_0= ruleEString )
+ // InternalRBAModel.g:1500:11: lv_description_6_0= ruleEString
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getConstraintAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+
+ }
+ pushFollow(FOLLOW_25);
+ lv_description_6_0=ruleEString();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getConstraintRule());
+ }
+ set(
+ current,
+ "description",
+ lv_description_6_0,
+ "rba.tool.editor.RBAModel.EString");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getConstraintAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:1523:4: ({...}? => ( ({...}? => (otherlv_7= 'runtime:' ( (lv_runtime_8_0= ruleEBoolean ) ) ) ) ) )
+ {
+ // InternalRBAModel.g:1523:4: ({...}? => ( ({...}? => (otherlv_7= 'runtime:' ( (lv_runtime_8_0= ruleEBoolean ) ) ) ) ) )
+ // InternalRBAModel.g:1524:5: {...}? => ( ({...}? => (otherlv_7= 'runtime:' ( (lv_runtime_8_0= ruleEBoolean ) ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleConstraint", "getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 1)");
+ }
+ // InternalRBAModel.g:1524:107: ( ({...}? => (otherlv_7= 'runtime:' ( (lv_runtime_8_0= ruleEBoolean ) ) ) ) )
+ // InternalRBAModel.g:1525:6: ({...}? => (otherlv_7= 'runtime:' ( (lv_runtime_8_0= ruleEBoolean ) ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 1);
+ // InternalRBAModel.g:1528:9: ({...}? => (otherlv_7= 'runtime:' ( (lv_runtime_8_0= ruleEBoolean ) ) ) )
+ // InternalRBAModel.g:1528:10: {...}? => (otherlv_7= 'runtime:' ( (lv_runtime_8_0= ruleEBoolean ) ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleConstraint", "true");
+ }
+ // InternalRBAModel.g:1528:19: (otherlv_7= 'runtime:' ( (lv_runtime_8_0= ruleEBoolean ) ) )
+ // InternalRBAModel.g:1528:20: otherlv_7= 'runtime:' ( (lv_runtime_8_0= ruleEBoolean ) )
+ {
+ otherlv_7=(Token)match(input,42,FOLLOW_26); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_7, grammarAccess.getConstraintAccess().getRuntimeKeyword_4_1_0());
+
+ }
+ // InternalRBAModel.g:1532:9: ( (lv_runtime_8_0= ruleEBoolean ) )
+ // InternalRBAModel.g:1533:10: (lv_runtime_8_0= ruleEBoolean )
+ {
+ // InternalRBAModel.g:1533:10: (lv_runtime_8_0= ruleEBoolean )
+ // InternalRBAModel.g:1534:11: lv_runtime_8_0= ruleEBoolean
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getConstraintAccess().getRuntimeEBooleanParserRuleCall_4_1_1_0());
+
+ }
+ pushFollow(FOLLOW_25);
+ lv_runtime_8_0=ruleEBoolean();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getConstraintRule());
+ }
+ set(
+ current,
+ "runtime",
+ lv_runtime_8_0,
+ "rba.tool.editor.RBAModel.EBoolean");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getConstraintAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:1557:4: ({...}? => ( ({...}? => ( (lv_expression_9_0= ruleComplexExpression ) ) ) ) )
+ {
+ // InternalRBAModel.g:1557:4: ({...}? => ( ({...}? => ( (lv_expression_9_0= ruleComplexExpression ) ) ) ) )
+ // InternalRBAModel.g:1558:5: {...}? => ( ({...}? => ( (lv_expression_9_0= ruleComplexExpression ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleConstraint", "getUnorderedGroupHelper().canSelect(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2)");
+ }
+ // InternalRBAModel.g:1558:107: ( ({...}? => ( (lv_expression_9_0= ruleComplexExpression ) ) ) )
+ // InternalRBAModel.g:1559:6: ({...}? => ( (lv_expression_9_0= ruleComplexExpression ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getConstraintAccess().getUnorderedGroup_4(), 2);
+ // InternalRBAModel.g:1562:9: ({...}? => ( (lv_expression_9_0= ruleComplexExpression ) ) )
+ // InternalRBAModel.g:1562:10: {...}? => ( (lv_expression_9_0= ruleComplexExpression ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleConstraint", "true");
+ }
+ // InternalRBAModel.g:1562:19: ( (lv_expression_9_0= ruleComplexExpression ) )
+ // InternalRBAModel.g:1562:20: (lv_expression_9_0= ruleComplexExpression )
+ {
+ // InternalRBAModel.g:1562:20: (lv_expression_9_0= ruleComplexExpression )
+ // InternalRBAModel.g:1563:10: lv_expression_9_0= ruleComplexExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getConstraintAccess().getExpressionComplexExpressionParserRuleCall_4_2_0());
+
+ }
+ pushFollow(FOLLOW_25);
+ lv_expression_9_0=ruleComplexExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getConstraintRule());
+ }
+ set(
+ current,
+ "expression",
+ lv_expression_9_0,
+ "rba.tool.editor.RBAModel.ComplexExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getConstraintAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop28;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().leave(grammarAccess.getConstraintAccess().getUnorderedGroup_4());
+
+ }
+
+ otherlv_10=(Token)match(input,28,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_10, grammarAccess.getConstraintAccess().getRightCurlyBracketKeyword_5());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleConstraint"
+
+
+ // $ANTLR start "entryRuleViewContent"
+ // InternalRBAModel.g:1600:1: entryRuleViewContent returns [EObject current=null] : iv_ruleViewContent= ruleViewContent EOF ;
+ public final EObject entryRuleViewContent() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleViewContent = null;
+
+
+ try {
+ // InternalRBAModel.g:1600:52: (iv_ruleViewContent= ruleViewContent EOF )
+ // InternalRBAModel.g:1601:2: iv_ruleViewContent= ruleViewContent EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getViewContentRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleViewContent=ruleViewContent();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleViewContent;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleViewContent"
+
+
+ // $ANTLR start "ruleViewContent"
+ // InternalRBAModel.g:1607:1: ruleViewContent returns [EObject current=null] : ( () otherlv_1= 'ViewContent' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'loserType:' ( (lv_loserType_8_0= ruleLoserType ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'allocatable:' otherlv_10= '[' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ']' ) ) ) ) | ({...}? => ( ({...}? => ( (lv_states_15_0= ruleViewContentState ) ) )+ ) ) | ({...}? => ( ({...}? => ( (lv_size_16_0= ruleSizeIdentifier ) ) )+ ) ) | ({...}? => ( ({...}? => ( (lv_tags_17_0= ruleTag ) ) )+ ) ) )* ) ) ) otherlv_18= '}' ) ;
+ public final EObject ruleViewContent() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_3=null;
+ Token otherlv_5=null;
+ Token otherlv_7=null;
+ Token otherlv_9=null;
+ Token otherlv_10=null;
+ Token otherlv_12=null;
+ Token otherlv_14=null;
+ Token otherlv_18=null;
+ AntlrDatatypeRuleToken lv_name_2_0 = null;
+
+ AntlrDatatypeRuleToken lv_description_6_0 = null;
+
+ Enumerator lv_loserType_8_0 = null;
+
+ EObject lv_states_15_0 = null;
+
+ EObject lv_size_16_0 = null;
+
+ EObject lv_tags_17_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:1613:2: ( ( () otherlv_1= 'ViewContent' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'loserType:' ( (lv_loserType_8_0= ruleLoserType ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'allocatable:' otherlv_10= '[' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ']' ) ) ) ) | ({...}? => ( ({...}? => ( (lv_states_15_0= ruleViewContentState ) ) )+ ) ) | ({...}? => ( ({...}? => ( (lv_size_16_0= ruleSizeIdentifier ) ) )+ ) ) | ({...}? => ( ({...}? => ( (lv_tags_17_0= ruleTag ) ) )+ ) ) )* ) ) ) otherlv_18= '}' ) )
+ // InternalRBAModel.g:1614:2: ( () otherlv_1= 'ViewContent' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'loserType:' ( (lv_loserType_8_0= ruleLoserType ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'allocatable:' otherlv_10= '[' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ']' ) ) ) ) | ({...}? => ( ({...}? => ( (lv_states_15_0= ruleViewContentState ) ) )+ ) ) | ({...}? => ( ({...}? => ( (lv_size_16_0= ruleSizeIdentifier ) ) )+ ) ) | ({...}? => ( ({...}? => ( (lv_tags_17_0= ruleTag ) ) )+ ) ) )* ) ) ) otherlv_18= '}' )
+ {
+ // InternalRBAModel.g:1614:2: ( () otherlv_1= 'ViewContent' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'loserType:' ( (lv_loserType_8_0= ruleLoserType ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'allocatable:' otherlv_10= '[' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ']' ) ) ) ) | ({...}? => ( ({...}? => ( (lv_states_15_0= ruleViewContentState ) ) )+ ) ) | ({...}? => ( ({...}? => ( (lv_size_16_0= ruleSizeIdentifier ) ) )+ ) ) | ({...}? => ( ({...}? => ( (lv_tags_17_0= ruleTag ) ) )+ ) ) )* ) ) ) otherlv_18= '}' )
+ // InternalRBAModel.g:1615:3: () otherlv_1= 'ViewContent' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'loserType:' ( (lv_loserType_8_0= ruleLoserType ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'allocatable:' otherlv_10= '[' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ']' ) ) ) ) | ({...}? => ( ({...}? => ( (lv_states_15_0= ruleViewContentState ) ) )+ ) ) | ({...}? => ( ({...}? => ( (lv_size_16_0= ruleSizeIdentifier ) ) )+ ) ) | ({...}? => ( ({...}? => ( (lv_tags_17_0= ruleTag ) ) )+ ) ) )* ) ) ) otherlv_18= '}'
+ {
+ // InternalRBAModel.g:1615:3: ()
+ // InternalRBAModel.g:1616:4:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getViewContentAccess().getViewContentAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,39,FOLLOW_3); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getViewContentAccess().getViewContentKeyword_1());
+
+ }
+ // InternalRBAModel.g:1626:3: ( (lv_name_2_0= ruleQualifiedName ) )
+ // InternalRBAModel.g:1627:4: (lv_name_2_0= ruleQualifiedName )
+ {
+ // InternalRBAModel.g:1627:4: (lv_name_2_0= ruleQualifiedName )
+ // InternalRBAModel.g:1628:5: lv_name_2_0= ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getViewContentAccess().getNameQualifiedNameParserRuleCall_2_0());
+
+ }
+ pushFollow(FOLLOW_15);
+ lv_name_2_0=ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getViewContentRule());
+ }
+ set(
+ current,
+ "name",
+ lv_name_2_0,
+ "rba.tool.editor.RBAModel.QualifiedName");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_3=(Token)match(input,26,FOLLOW_27); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_3, grammarAccess.getViewContentAccess().getLeftCurlyBracketKeyword_3());
+
+ }
+ // InternalRBAModel.g:1649:3: ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'loserType:' ( (lv_loserType_8_0= ruleLoserType ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'allocatable:' otherlv_10= '[' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ']' ) ) ) ) | ({...}? => ( ({...}? => ( (lv_states_15_0= ruleViewContentState ) ) )+ ) ) | ({...}? => ( ({...}? => ( (lv_size_16_0= ruleSizeIdentifier ) ) )+ ) ) | ({...}? => ( ({...}? => ( (lv_tags_17_0= ruleTag ) ) )+ ) ) )* ) ) )
+ // InternalRBAModel.g:1650:4: ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'loserType:' ( (lv_loserType_8_0= ruleLoserType ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'allocatable:' otherlv_10= '[' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ']' ) ) ) ) | ({...}? => ( ({...}? => ( (lv_states_15_0= ruleViewContentState ) ) )+ ) ) | ({...}? => ( ({...}? => ( (lv_size_16_0= ruleSizeIdentifier ) ) )+ ) ) | ({...}? => ( ({...}? => ( (lv_tags_17_0= ruleTag ) ) )+ ) ) )* ) )
+ {
+ // InternalRBAModel.g:1650:4: ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'loserType:' ( (lv_loserType_8_0= ruleLoserType ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'allocatable:' otherlv_10= '[' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ']' ) ) ) ) | ({...}? => ( ({...}? => ( (lv_states_15_0= ruleViewContentState ) ) )+ ) ) | ({...}? => ( ({...}? => ( (lv_size_16_0= ruleSizeIdentifier ) ) )+ ) ) | ({...}? => ( ({...}? => ( (lv_tags_17_0= ruleTag ) ) )+ ) ) )* ) )
+ // InternalRBAModel.g:1651:5: ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'loserType:' ( (lv_loserType_8_0= ruleLoserType ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'allocatable:' otherlv_10= '[' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ']' ) ) ) ) | ({...}? => ( ({...}? => ( (lv_states_15_0= ruleViewContentState ) ) )+ ) ) | ({...}? => ( ({...}? => ( (lv_size_16_0= ruleSizeIdentifier ) ) )+ ) ) | ({...}? => ( ({...}? => ( (lv_tags_17_0= ruleTag ) ) )+ ) ) )* )
+ {
+ getUnorderedGroupHelper().enter(grammarAccess.getViewContentAccess().getUnorderedGroup_4());
+ // InternalRBAModel.g:1654:5: ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'loserType:' ( (lv_loserType_8_0= ruleLoserType ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'allocatable:' otherlv_10= '[' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ']' ) ) ) ) | ({...}? => ( ({...}? => ( (lv_states_15_0= ruleViewContentState ) ) )+ ) ) | ({...}? => ( ({...}? => ( (lv_size_16_0= ruleSizeIdentifier ) ) )+ ) ) | ({...}? => ( ({...}? => ( (lv_tags_17_0= ruleTag ) ) )+ ) ) )* )
+ // InternalRBAModel.g:1655:6: ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'loserType:' ( (lv_loserType_8_0= ruleLoserType ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'allocatable:' otherlv_10= '[' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ']' ) ) ) ) | ({...}? => ( ({...}? => ( (lv_states_15_0= ruleViewContentState ) ) )+ ) ) | ({...}? => ( ({...}? => ( (lv_size_16_0= ruleSizeIdentifier ) ) )+ ) ) | ({...}? => ( ({...}? => ( (lv_tags_17_0= ruleTag ) ) )+ ) ) )*
+ {
+ // InternalRBAModel.g:1655:6: ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'loserType:' ( (lv_loserType_8_0= ruleLoserType ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'allocatable:' otherlv_10= '[' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ']' ) ) ) ) | ({...}? => ( ({...}? => ( (lv_states_15_0= ruleViewContentState ) ) )+ ) ) | ({...}? => ( ({...}? => ( (lv_size_16_0= ruleSizeIdentifier ) ) )+ ) ) | ({...}? => ( ({...}? => ( (lv_tags_17_0= ruleTag ) ) )+ ) ) )*
+ loop34:
+ do {
+ int alt34=7;
+ int LA34_0 = input.LA(1);
+
+ if ( LA34_0 == 30 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 0) ) {
+ alt34=1;
+ }
+ else if ( LA34_0 == 43 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 1) ) {
+ alt34=2;
+ }
+ else if ( LA34_0 == 44 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 2) ) {
+ alt34=3;
+ }
+ else if ( LA34_0 == 64 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 3) ) {
+ alt34=4;
+ }
+ else if ( ( LA34_0 == 47 || LA34_0 == 50 ) && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 4) ) {
+ alt34=5;
+ }
+ else if ( ( LA34_0 == 22 || LA34_0 == 24 ) && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 5) ) {
+ alt34=6;
+ }
+
+
+ switch (alt34) {
+ case 1 :
+ // InternalRBAModel.g:1656:4: ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) )
+ {
+ // InternalRBAModel.g:1656:4: ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) )
+ // InternalRBAModel.g:1657:5: {...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleViewContent", "getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 0)");
+ }
+ // InternalRBAModel.g:1657:108: ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) )
+ // InternalRBAModel.g:1658:6: ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 0);
+ // InternalRBAModel.g:1661:9: ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) )
+ // InternalRBAModel.g:1661:10: {...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleViewContent", "true");
+ }
+ // InternalRBAModel.g:1661:19: (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) )
+ // InternalRBAModel.g:1661:20: otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) )
+ {
+ otherlv_5=(Token)match(input,30,FOLLOW_14); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_5, grammarAccess.getViewContentAccess().getDescriptionKeyword_4_0_0());
+
+ }
+ // InternalRBAModel.g:1665:9: ( (lv_description_6_0= ruleEString ) )
+ // InternalRBAModel.g:1666:10: (lv_description_6_0= ruleEString )
+ {
+ // InternalRBAModel.g:1666:10: (lv_description_6_0= ruleEString )
+ // InternalRBAModel.g:1667:11: lv_description_6_0= ruleEString
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getViewContentAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+
+ }
+ pushFollow(FOLLOW_27);
+ lv_description_6_0=ruleEString();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getViewContentRule());
+ }
+ set(
+ current,
+ "description",
+ lv_description_6_0,
+ "rba.tool.editor.RBAModel.EString");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getViewContentAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:1690:4: ({...}? => ( ({...}? => (otherlv_7= 'loserType:' ( (lv_loserType_8_0= ruleLoserType ) ) ) ) ) )
+ {
+ // InternalRBAModel.g:1690:4: ({...}? => ( ({...}? => (otherlv_7= 'loserType:' ( (lv_loserType_8_0= ruleLoserType ) ) ) ) ) )
+ // InternalRBAModel.g:1691:5: {...}? => ( ({...}? => (otherlv_7= 'loserType:' ( (lv_loserType_8_0= ruleLoserType ) ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleViewContent", "getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 1)");
+ }
+ // InternalRBAModel.g:1691:108: ( ({...}? => (otherlv_7= 'loserType:' ( (lv_loserType_8_0= ruleLoserType ) ) ) ) )
+ // InternalRBAModel.g:1692:6: ({...}? => (otherlv_7= 'loserType:' ( (lv_loserType_8_0= ruleLoserType ) ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 1);
+ // InternalRBAModel.g:1695:9: ({...}? => (otherlv_7= 'loserType:' ( (lv_loserType_8_0= ruleLoserType ) ) ) )
+ // InternalRBAModel.g:1695:10: {...}? => (otherlv_7= 'loserType:' ( (lv_loserType_8_0= ruleLoserType ) ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleViewContent", "true");
+ }
+ // InternalRBAModel.g:1695:19: (otherlv_7= 'loserType:' ( (lv_loserType_8_0= ruleLoserType ) ) )
+ // InternalRBAModel.g:1695:20: otherlv_7= 'loserType:' ( (lv_loserType_8_0= ruleLoserType ) )
+ {
+ otherlv_7=(Token)match(input,43,FOLLOW_28); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_7, grammarAccess.getViewContentAccess().getLoserTypeKeyword_4_1_0());
+
+ }
+ // InternalRBAModel.g:1699:9: ( (lv_loserType_8_0= ruleLoserType ) )
+ // InternalRBAModel.g:1700:10: (lv_loserType_8_0= ruleLoserType )
+ {
+ // InternalRBAModel.g:1700:10: (lv_loserType_8_0= ruleLoserType )
+ // InternalRBAModel.g:1701:11: lv_loserType_8_0= ruleLoserType
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getViewContentAccess().getLoserTypeLoserTypeEnumRuleCall_4_1_1_0());
+
+ }
+ pushFollow(FOLLOW_27);
+ lv_loserType_8_0=ruleLoserType();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getViewContentRule());
+ }
+ set(
+ current,
+ "loserType",
+ lv_loserType_8_0,
+ "rba.tool.editor.RBAModel.LoserType");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getViewContentAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:1724:4: ({...}? => ( ({...}? => (otherlv_9= 'allocatable:' otherlv_10= '[' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ']' ) ) ) )
+ {
+ // InternalRBAModel.g:1724:4: ({...}? => ( ({...}? => (otherlv_9= 'allocatable:' otherlv_10= '[' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ']' ) ) ) )
+ // InternalRBAModel.g:1725:5: {...}? => ( ({...}? => (otherlv_9= 'allocatable:' otherlv_10= '[' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ']' ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 2) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleViewContent", "getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 2)");
+ }
+ // InternalRBAModel.g:1725:108: ( ({...}? => (otherlv_9= 'allocatable:' otherlv_10= '[' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ']' ) ) )
+ // InternalRBAModel.g:1726:6: ({...}? => (otherlv_9= 'allocatable:' otherlv_10= '[' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ']' ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 2);
+ // InternalRBAModel.g:1729:9: ({...}? => (otherlv_9= 'allocatable:' otherlv_10= '[' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ']' ) )
+ // InternalRBAModel.g:1729:10: {...}? => (otherlv_9= 'allocatable:' otherlv_10= '[' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ']' )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleViewContent", "true");
+ }
+ // InternalRBAModel.g:1729:19: (otherlv_9= 'allocatable:' otherlv_10= '[' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ']' )
+ // InternalRBAModel.g:1729:20: otherlv_9= 'allocatable:' otherlv_10= '[' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ']'
+ {
+ otherlv_9=(Token)match(input,44,FOLLOW_29); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_9, grammarAccess.getViewContentAccess().getAllocatableKeyword_4_2_0());
+
+ }
+ otherlv_10=(Token)match(input,45,FOLLOW_30); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_10, grammarAccess.getViewContentAccess().getLeftSquareBracketKeyword_4_2_1());
+
+ }
+ // InternalRBAModel.g:1737:9: ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )?
+ int alt30=2;
+ int LA30_0 = input.LA(1);
+
+ if ( (LA30_0==RULE_ID) ) {
+ alt30=1;
+ }
+ switch (alt30) {
+ case 1 :
+ // InternalRBAModel.g:1738:10: ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )*
+ {
+ // InternalRBAModel.g:1738:10: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:1739:11: ( ruleQualifiedName )
+ {
+ // InternalRBAModel.g:1739:11: ( ruleQualifiedName )
+ // InternalRBAModel.g:1740:12: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getViewContentRule());
+ }
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getViewContentAccess().getAllocatableAbstractAllocatableCrossReference_4_2_2_0_0());
+
+ }
+ pushFollow(FOLLOW_31);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // InternalRBAModel.g:1754:10: (otherlv_12= ',' ( ( ruleQualifiedName ) ) )*
+ loop29:
+ do {
+ int alt29=2;
+ int LA29_0 = input.LA(1);
+
+ if ( (LA29_0==27) ) {
+ alt29=1;
+ }
+
+
+ switch (alt29) {
+ case 1 :
+ // InternalRBAModel.g:1755:11: otherlv_12= ',' ( ( ruleQualifiedName ) )
+ {
+ otherlv_12=(Token)match(input,27,FOLLOW_3); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_12, grammarAccess.getViewContentAccess().getCommaKeyword_4_2_2_1_0());
+
+ }
+ // InternalRBAModel.g:1759:11: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:1760:12: ( ruleQualifiedName )
+ {
+ // InternalRBAModel.g:1760:12: ( ruleQualifiedName )
+ // InternalRBAModel.g:1761:13: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getViewContentRule());
+ }
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getViewContentAccess().getAllocatableAbstractAllocatableCrossReference_4_2_2_1_1_0());
+
+ }
+ pushFollow(FOLLOW_31);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop29;
+ }
+ } while (true);
+
+
+ }
+ break;
+
+ }
+
+ otherlv_14=(Token)match(input,46,FOLLOW_27); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_14, grammarAccess.getViewContentAccess().getRightSquareBracketKeyword_4_2_3());
+
+ }
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getViewContentAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // InternalRBAModel.g:1787:4: ({...}? => ( ({...}? => ( (lv_states_15_0= ruleViewContentState ) ) )+ ) )
+ {
+ // InternalRBAModel.g:1787:4: ({...}? => ( ({...}? => ( (lv_states_15_0= ruleViewContentState ) ) )+ ) )
+ // InternalRBAModel.g:1788:5: {...}? => ( ({...}? => ( (lv_states_15_0= ruleViewContentState ) ) )+ )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 3) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleViewContent", "getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 3)");
+ }
+ // InternalRBAModel.g:1788:108: ( ({...}? => ( (lv_states_15_0= ruleViewContentState ) ) )+ )
+ // InternalRBAModel.g:1789:6: ({...}? => ( (lv_states_15_0= ruleViewContentState ) ) )+
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 3);
+ // InternalRBAModel.g:1792:9: ({...}? => ( (lv_states_15_0= ruleViewContentState ) ) )+
+ int cnt31=0;
+ loop31:
+ do {
+ int alt31=2;
+ int LA31_0 = input.LA(1);
+
+ if ( (LA31_0==64) ) {
+ int LA31_2 = input.LA(2);
+
+ if ( ((true)) ) {
+ alt31=1;
+ }
+
+
+ }
+
+
+ switch (alt31) {
+ case 1 :
+ // InternalRBAModel.g:1792:10: {...}? => ( (lv_states_15_0= ruleViewContentState ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleViewContent", "true");
+ }
+ // InternalRBAModel.g:1792:19: ( (lv_states_15_0= ruleViewContentState ) )
+ // InternalRBAModel.g:1792:20: (lv_states_15_0= ruleViewContentState )
+ {
+ // InternalRBAModel.g:1792:20: (lv_states_15_0= ruleViewContentState )
+ // InternalRBAModel.g:1793:10: lv_states_15_0= ruleViewContentState
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getViewContentAccess().getStatesViewContentStateParserRuleCall_4_3_0());
+
+ }
+ pushFollow(FOLLOW_27);
+ lv_states_15_0=ruleViewContentState();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getViewContentRule());
+ }
+ add(
+ current,
+ "states",
+ lv_states_15_0,
+ "rba.tool.editor.RBAModel.ViewContentState");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ if ( cnt31 >= 1 ) break loop31;
+ if (state.backtracking>0) {state.failed=true; return current;}
+ EarlyExitException eee =
+ new EarlyExitException(31, input);
+ throw eee;
+ }
+ cnt31++;
+ } while (true);
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getViewContentAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 5 :
+ // InternalRBAModel.g:1815:4: ({...}? => ( ({...}? => ( (lv_size_16_0= ruleSizeIdentifier ) ) )+ ) )
+ {
+ // InternalRBAModel.g:1815:4: ({...}? => ( ({...}? => ( (lv_size_16_0= ruleSizeIdentifier ) ) )+ ) )
+ // InternalRBAModel.g:1816:5: {...}? => ( ({...}? => ( (lv_size_16_0= ruleSizeIdentifier ) ) )+ )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 4) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleViewContent", "getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 4)");
+ }
+ // InternalRBAModel.g:1816:108: ( ({...}? => ( (lv_size_16_0= ruleSizeIdentifier ) ) )+ )
+ // InternalRBAModel.g:1817:6: ({...}? => ( (lv_size_16_0= ruleSizeIdentifier ) ) )+
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 4);
+ // InternalRBAModel.g:1820:9: ({...}? => ( (lv_size_16_0= ruleSizeIdentifier ) ) )+
+ int cnt32=0;
+ loop32:
+ do {
+ int alt32=2;
+ int LA32_0 = input.LA(1);
+
+ if ( (LA32_0==50) ) {
+ int LA32_2 = input.LA(2);
+
+ if ( ((true)) ) {
+ alt32=1;
+ }
+
+
+ }
+ else if ( (LA32_0==47) ) {
+ int LA32_3 = input.LA(2);
+
+ if ( ((true)) ) {
+ alt32=1;
+ }
+
+
+ }
+
+
+ switch (alt32) {
+ case 1 :
+ // InternalRBAModel.g:1820:10: {...}? => ( (lv_size_16_0= ruleSizeIdentifier ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleViewContent", "true");
+ }
+ // InternalRBAModel.g:1820:19: ( (lv_size_16_0= ruleSizeIdentifier ) )
+ // InternalRBAModel.g:1820:20: (lv_size_16_0= ruleSizeIdentifier )
+ {
+ // InternalRBAModel.g:1820:20: (lv_size_16_0= ruleSizeIdentifier )
+ // InternalRBAModel.g:1821:10: lv_size_16_0= ruleSizeIdentifier
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getViewContentAccess().getSizeSizeIdentifierParserRuleCall_4_4_0());
+
+ }
+ pushFollow(FOLLOW_27);
+ lv_size_16_0=ruleSizeIdentifier();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getViewContentRule());
+ }
+ add(
+ current,
+ "size",
+ lv_size_16_0,
+ "rba.tool.editor.RBAModel.SizeIdentifier");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ if ( cnt32 >= 1 ) break loop32;
+ if (state.backtracking>0) {state.failed=true; return current;}
+ EarlyExitException eee =
+ new EarlyExitException(32, input);
+ throw eee;
+ }
+ cnt32++;
+ } while (true);
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getViewContentAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 6 :
+ // InternalRBAModel.g:1843:4: ({...}? => ( ({...}? => ( (lv_tags_17_0= ruleTag ) ) )+ ) )
+ {
+ // InternalRBAModel.g:1843:4: ({...}? => ( ({...}? => ( (lv_tags_17_0= ruleTag ) ) )+ ) )
+ // InternalRBAModel.g:1844:5: {...}? => ( ({...}? => ( (lv_tags_17_0= ruleTag ) ) )+ )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 5) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleViewContent", "getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 5)");
+ }
+ // InternalRBAModel.g:1844:108: ( ({...}? => ( (lv_tags_17_0= ruleTag ) ) )+ )
+ // InternalRBAModel.g:1845:6: ({...}? => ( (lv_tags_17_0= ruleTag ) ) )+
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentAccess().getUnorderedGroup_4(), 5);
+ // InternalRBAModel.g:1848:9: ({...}? => ( (lv_tags_17_0= ruleTag ) ) )+
+ int cnt33=0;
+ loop33:
+ do {
+ int alt33=2;
+ int LA33_0 = input.LA(1);
+
+ if ( (LA33_0==22) ) {
+ int LA33_2 = input.LA(2);
+
+ if ( ((true)) ) {
+ alt33=1;
+ }
+
+
+ }
+ else if ( (LA33_0==24) ) {
+ int LA33_3 = input.LA(2);
+
+ if ( ((true)) ) {
+ alt33=1;
+ }
+
+
+ }
+
+
+ switch (alt33) {
+ case 1 :
+ // InternalRBAModel.g:1848:10: {...}? => ( (lv_tags_17_0= ruleTag ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleViewContent", "true");
+ }
+ // InternalRBAModel.g:1848:19: ( (lv_tags_17_0= ruleTag ) )
+ // InternalRBAModel.g:1848:20: (lv_tags_17_0= ruleTag )
+ {
+ // InternalRBAModel.g:1848:20: (lv_tags_17_0= ruleTag )
+ // InternalRBAModel.g:1849:10: lv_tags_17_0= ruleTag
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getViewContentAccess().getTagsTagParserRuleCall_4_5_0());
+
+ }
+ pushFollow(FOLLOW_27);
+ lv_tags_17_0=ruleTag();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getViewContentRule());
+ }
+ add(
+ current,
+ "tags",
+ lv_tags_17_0,
+ "rba.tool.editor.RBAModel.Tag");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ if ( cnt33 >= 1 ) break loop33;
+ if (state.backtracking>0) {state.failed=true; return current;}
+ EarlyExitException eee =
+ new EarlyExitException(33, input);
+ throw eee;
+ }
+ cnt33++;
+ } while (true);
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getViewContentAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop34;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().leave(grammarAccess.getViewContentAccess().getUnorderedGroup_4());
+
+ }
+
+ otherlv_18=(Token)match(input,28,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_18, grammarAccess.getViewContentAccess().getRightCurlyBracketKeyword_5());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleViewContent"
+
+
+ // $ANTLR start "entryRuleSoundContent"
+ // InternalRBAModel.g:1886:1: entryRuleSoundContent returns [EObject current=null] : iv_ruleSoundContent= ruleSoundContent EOF ;
+ public final EObject entryRuleSoundContent() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleSoundContent = null;
+
+
+ try {
+ // InternalRBAModel.g:1886:53: (iv_ruleSoundContent= ruleSoundContent EOF )
+ // InternalRBAModel.g:1887:2: iv_ruleSoundContent= ruleSoundContent EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getSoundContentRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleSoundContent=ruleSoundContent();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleSoundContent;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleSoundContent"
+
+
+ // $ANTLR start "ruleSoundContent"
+ // InternalRBAModel.g:1893:1: ruleSoundContent returns [EObject current=null] : ( () otherlv_1= 'SoundContent' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'loserType:' ( (lv_loserType_8_0= ruleLoserType ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'allocatable:' otherlv_10= '[' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ']' ) ) ) ) | ({...}? => ( ({...}? => ( (lv_states_15_0= ruleSoundContentState ) ) )+ ) ) | ({...}? => ( ({...}? => ( (lv_tags_16_0= ruleTag ) ) )+ ) ) )* ) ) ) otherlv_17= '}' ) ;
+ public final EObject ruleSoundContent() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_3=null;
+ Token otherlv_5=null;
+ Token otherlv_7=null;
+ Token otherlv_9=null;
+ Token otherlv_10=null;
+ Token otherlv_12=null;
+ Token otherlv_14=null;
+ Token otherlv_17=null;
+ AntlrDatatypeRuleToken lv_name_2_0 = null;
+
+ AntlrDatatypeRuleToken lv_description_6_0 = null;
+
+ Enumerator lv_loserType_8_0 = null;
+
+ EObject lv_states_15_0 = null;
+
+ EObject lv_tags_16_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:1899:2: ( ( () otherlv_1= 'SoundContent' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'loserType:' ( (lv_loserType_8_0= ruleLoserType ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'allocatable:' otherlv_10= '[' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ']' ) ) ) ) | ({...}? => ( ({...}? => ( (lv_states_15_0= ruleSoundContentState ) ) )+ ) ) | ({...}? => ( ({...}? => ( (lv_tags_16_0= ruleTag ) ) )+ ) ) )* ) ) ) otherlv_17= '}' ) )
+ // InternalRBAModel.g:1900:2: ( () otherlv_1= 'SoundContent' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'loserType:' ( (lv_loserType_8_0= ruleLoserType ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'allocatable:' otherlv_10= '[' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ']' ) ) ) ) | ({...}? => ( ({...}? => ( (lv_states_15_0= ruleSoundContentState ) ) )+ ) ) | ({...}? => ( ({...}? => ( (lv_tags_16_0= ruleTag ) ) )+ ) ) )* ) ) ) otherlv_17= '}' )
+ {
+ // InternalRBAModel.g:1900:2: ( () otherlv_1= 'SoundContent' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'loserType:' ( (lv_loserType_8_0= ruleLoserType ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'allocatable:' otherlv_10= '[' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ']' ) ) ) ) | ({...}? => ( ({...}? => ( (lv_states_15_0= ruleSoundContentState ) ) )+ ) ) | ({...}? => ( ({...}? => ( (lv_tags_16_0= ruleTag ) ) )+ ) ) )* ) ) ) otherlv_17= '}' )
+ // InternalRBAModel.g:1901:3: () otherlv_1= 'SoundContent' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'loserType:' ( (lv_loserType_8_0= ruleLoserType ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'allocatable:' otherlv_10= '[' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ']' ) ) ) ) | ({...}? => ( ({...}? => ( (lv_states_15_0= ruleSoundContentState ) ) )+ ) ) | ({...}? => ( ({...}? => ( (lv_tags_16_0= ruleTag ) ) )+ ) ) )* ) ) ) otherlv_17= '}'
+ {
+ // InternalRBAModel.g:1901:3: ()
+ // InternalRBAModel.g:1902:4:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getSoundContentAccess().getSoundContentAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,38,FOLLOW_3); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getSoundContentAccess().getSoundContentKeyword_1());
+
+ }
+ // InternalRBAModel.g:1912:3: ( (lv_name_2_0= ruleQualifiedName ) )
+ // InternalRBAModel.g:1913:4: (lv_name_2_0= ruleQualifiedName )
+ {
+ // InternalRBAModel.g:1913:4: (lv_name_2_0= ruleQualifiedName )
+ // InternalRBAModel.g:1914:5: lv_name_2_0= ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getSoundContentAccess().getNameQualifiedNameParserRuleCall_2_0());
+
+ }
+ pushFollow(FOLLOW_15);
+ lv_name_2_0=ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSoundContentRule());
+ }
+ set(
+ current,
+ "name",
+ lv_name_2_0,
+ "rba.tool.editor.RBAModel.QualifiedName");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_3=(Token)match(input,26,FOLLOW_27); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_3, grammarAccess.getSoundContentAccess().getLeftCurlyBracketKeyword_3());
+
+ }
+ // InternalRBAModel.g:1935:3: ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'loserType:' ( (lv_loserType_8_0= ruleLoserType ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'allocatable:' otherlv_10= '[' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ']' ) ) ) ) | ({...}? => ( ({...}? => ( (lv_states_15_0= ruleSoundContentState ) ) )+ ) ) | ({...}? => ( ({...}? => ( (lv_tags_16_0= ruleTag ) ) )+ ) ) )* ) ) )
+ // InternalRBAModel.g:1936:4: ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'loserType:' ( (lv_loserType_8_0= ruleLoserType ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'allocatable:' otherlv_10= '[' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ']' ) ) ) ) | ({...}? => ( ({...}? => ( (lv_states_15_0= ruleSoundContentState ) ) )+ ) ) | ({...}? => ( ({...}? => ( (lv_tags_16_0= ruleTag ) ) )+ ) ) )* ) )
+ {
+ // InternalRBAModel.g:1936:4: ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'loserType:' ( (lv_loserType_8_0= ruleLoserType ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'allocatable:' otherlv_10= '[' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ']' ) ) ) ) | ({...}? => ( ({...}? => ( (lv_states_15_0= ruleSoundContentState ) ) )+ ) ) | ({...}? => ( ({...}? => ( (lv_tags_16_0= ruleTag ) ) )+ ) ) )* ) )
+ // InternalRBAModel.g:1937:5: ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'loserType:' ( (lv_loserType_8_0= ruleLoserType ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'allocatable:' otherlv_10= '[' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ']' ) ) ) ) | ({...}? => ( ({...}? => ( (lv_states_15_0= ruleSoundContentState ) ) )+ ) ) | ({...}? => ( ({...}? => ( (lv_tags_16_0= ruleTag ) ) )+ ) ) )* )
+ {
+ getUnorderedGroupHelper().enter(grammarAccess.getSoundContentAccess().getUnorderedGroup_4());
+ // InternalRBAModel.g:1940:5: ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'loserType:' ( (lv_loserType_8_0= ruleLoserType ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'allocatable:' otherlv_10= '[' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ']' ) ) ) ) | ({...}? => ( ({...}? => ( (lv_states_15_0= ruleSoundContentState ) ) )+ ) ) | ({...}? => ( ({...}? => ( (lv_tags_16_0= ruleTag ) ) )+ ) ) )* )
+ // InternalRBAModel.g:1941:6: ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'loserType:' ( (lv_loserType_8_0= ruleLoserType ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'allocatable:' otherlv_10= '[' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ']' ) ) ) ) | ({...}? => ( ({...}? => ( (lv_states_15_0= ruleSoundContentState ) ) )+ ) ) | ({...}? => ( ({...}? => ( (lv_tags_16_0= ruleTag ) ) )+ ) ) )*
+ {
+ // InternalRBAModel.g:1941:6: ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'loserType:' ( (lv_loserType_8_0= ruleLoserType ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'allocatable:' otherlv_10= '[' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ']' ) ) ) ) | ({...}? => ( ({...}? => ( (lv_states_15_0= ruleSoundContentState ) ) )+ ) ) | ({...}? => ( ({...}? => ( (lv_tags_16_0= ruleTag ) ) )+ ) ) )*
+ loop39:
+ do {
+ int alt39=6;
+ int LA39_0 = input.LA(1);
+
+ if ( LA39_0 == 30 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 0) ) {
+ alt39=1;
+ }
+ else if ( LA39_0 == 43 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 1) ) {
+ alt39=2;
+ }
+ else if ( LA39_0 == 44 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 2) ) {
+ alt39=3;
+ }
+ else if ( LA39_0 == 64 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 3) ) {
+ alt39=4;
+ }
+ else if ( ( LA39_0 == 22 || LA39_0 == 24 ) && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 4) ) {
+ alt39=5;
+ }
+
+
+ switch (alt39) {
+ case 1 :
+ // InternalRBAModel.g:1942:4: ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) )
+ {
+ // InternalRBAModel.g:1942:4: ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) )
+ // InternalRBAModel.g:1943:5: {...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleSoundContent", "getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 0)");
+ }
+ // InternalRBAModel.g:1943:109: ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) )
+ // InternalRBAModel.g:1944:6: ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 0);
+ // InternalRBAModel.g:1947:9: ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) )
+ // InternalRBAModel.g:1947:10: {...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleSoundContent", "true");
+ }
+ // InternalRBAModel.g:1947:19: (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) )
+ // InternalRBAModel.g:1947:20: otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) )
+ {
+ otherlv_5=(Token)match(input,30,FOLLOW_14); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_5, grammarAccess.getSoundContentAccess().getDescriptionKeyword_4_0_0());
+
+ }
+ // InternalRBAModel.g:1951:9: ( (lv_description_6_0= ruleEString ) )
+ // InternalRBAModel.g:1952:10: (lv_description_6_0= ruleEString )
+ {
+ // InternalRBAModel.g:1952:10: (lv_description_6_0= ruleEString )
+ // InternalRBAModel.g:1953:11: lv_description_6_0= ruleEString
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getSoundContentAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+
+ }
+ pushFollow(FOLLOW_27);
+ lv_description_6_0=ruleEString();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSoundContentRule());
+ }
+ set(
+ current,
+ "description",
+ lv_description_6_0,
+ "rba.tool.editor.RBAModel.EString");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getSoundContentAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:1976:4: ({...}? => ( ({...}? => (otherlv_7= 'loserType:' ( (lv_loserType_8_0= ruleLoserType ) ) ) ) ) )
+ {
+ // InternalRBAModel.g:1976:4: ({...}? => ( ({...}? => (otherlv_7= 'loserType:' ( (lv_loserType_8_0= ruleLoserType ) ) ) ) ) )
+ // InternalRBAModel.g:1977:5: {...}? => ( ({...}? => (otherlv_7= 'loserType:' ( (lv_loserType_8_0= ruleLoserType ) ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleSoundContent", "getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 1)");
+ }
+ // InternalRBAModel.g:1977:109: ( ({...}? => (otherlv_7= 'loserType:' ( (lv_loserType_8_0= ruleLoserType ) ) ) ) )
+ // InternalRBAModel.g:1978:6: ({...}? => (otherlv_7= 'loserType:' ( (lv_loserType_8_0= ruleLoserType ) ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 1);
+ // InternalRBAModel.g:1981:9: ({...}? => (otherlv_7= 'loserType:' ( (lv_loserType_8_0= ruleLoserType ) ) ) )
+ // InternalRBAModel.g:1981:10: {...}? => (otherlv_7= 'loserType:' ( (lv_loserType_8_0= ruleLoserType ) ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleSoundContent", "true");
+ }
+ // InternalRBAModel.g:1981:19: (otherlv_7= 'loserType:' ( (lv_loserType_8_0= ruleLoserType ) ) )
+ // InternalRBAModel.g:1981:20: otherlv_7= 'loserType:' ( (lv_loserType_8_0= ruleLoserType ) )
+ {
+ otherlv_7=(Token)match(input,43,FOLLOW_28); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_7, grammarAccess.getSoundContentAccess().getLoserTypeKeyword_4_1_0());
+
+ }
+ // InternalRBAModel.g:1985:9: ( (lv_loserType_8_0= ruleLoserType ) )
+ // InternalRBAModel.g:1986:10: (lv_loserType_8_0= ruleLoserType )
+ {
+ // InternalRBAModel.g:1986:10: (lv_loserType_8_0= ruleLoserType )
+ // InternalRBAModel.g:1987:11: lv_loserType_8_0= ruleLoserType
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getSoundContentAccess().getLoserTypeLoserTypeEnumRuleCall_4_1_1_0());
+
+ }
+ pushFollow(FOLLOW_27);
+ lv_loserType_8_0=ruleLoserType();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSoundContentRule());
+ }
+ set(
+ current,
+ "loserType",
+ lv_loserType_8_0,
+ "rba.tool.editor.RBAModel.LoserType");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getSoundContentAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:2010:4: ({...}? => ( ({...}? => (otherlv_9= 'allocatable:' otherlv_10= '[' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ']' ) ) ) )
+ {
+ // InternalRBAModel.g:2010:4: ({...}? => ( ({...}? => (otherlv_9= 'allocatable:' otherlv_10= '[' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ']' ) ) ) )
+ // InternalRBAModel.g:2011:5: {...}? => ( ({...}? => (otherlv_9= 'allocatable:' otherlv_10= '[' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ']' ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 2) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleSoundContent", "getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 2)");
+ }
+ // InternalRBAModel.g:2011:109: ( ({...}? => (otherlv_9= 'allocatable:' otherlv_10= '[' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ']' ) ) )
+ // InternalRBAModel.g:2012:6: ({...}? => (otherlv_9= 'allocatable:' otherlv_10= '[' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ']' ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 2);
+ // InternalRBAModel.g:2015:9: ({...}? => (otherlv_9= 'allocatable:' otherlv_10= '[' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ']' ) )
+ // InternalRBAModel.g:2015:10: {...}? => (otherlv_9= 'allocatable:' otherlv_10= '[' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ']' )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleSoundContent", "true");
+ }
+ // InternalRBAModel.g:2015:19: (otherlv_9= 'allocatable:' otherlv_10= '[' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ']' )
+ // InternalRBAModel.g:2015:20: otherlv_9= 'allocatable:' otherlv_10= '[' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ']'
+ {
+ otherlv_9=(Token)match(input,44,FOLLOW_29); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_9, grammarAccess.getSoundContentAccess().getAllocatableKeyword_4_2_0());
+
+ }
+ otherlv_10=(Token)match(input,45,FOLLOW_30); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_10, grammarAccess.getSoundContentAccess().getLeftSquareBracketKeyword_4_2_1());
+
+ }
+ // InternalRBAModel.g:2023:9: ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )?
+ int alt36=2;
+ int LA36_0 = input.LA(1);
+
+ if ( (LA36_0==RULE_ID) ) {
+ alt36=1;
+ }
+ switch (alt36) {
+ case 1 :
+ // InternalRBAModel.g:2024:10: ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )*
+ {
+ // InternalRBAModel.g:2024:10: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:2025:11: ( ruleQualifiedName )
+ {
+ // InternalRBAModel.g:2025:11: ( ruleQualifiedName )
+ // InternalRBAModel.g:2026:12: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getSoundContentRule());
+ }
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getSoundContentAccess().getAllocatableAbstractAllocatableCrossReference_4_2_2_0_0());
+
+ }
+ pushFollow(FOLLOW_31);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // InternalRBAModel.g:2040:10: (otherlv_12= ',' ( ( ruleQualifiedName ) ) )*
+ loop35:
+ do {
+ int alt35=2;
+ int LA35_0 = input.LA(1);
+
+ if ( (LA35_0==27) ) {
+ alt35=1;
+ }
+
+
+ switch (alt35) {
+ case 1 :
+ // InternalRBAModel.g:2041:11: otherlv_12= ',' ( ( ruleQualifiedName ) )
+ {
+ otherlv_12=(Token)match(input,27,FOLLOW_3); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_12, grammarAccess.getSoundContentAccess().getCommaKeyword_4_2_2_1_0());
+
+ }
+ // InternalRBAModel.g:2045:11: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:2046:12: ( ruleQualifiedName )
+ {
+ // InternalRBAModel.g:2046:12: ( ruleQualifiedName )
+ // InternalRBAModel.g:2047:13: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getSoundContentRule());
+ }
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getSoundContentAccess().getAllocatableAbstractAllocatableCrossReference_4_2_2_1_1_0());
+
+ }
+ pushFollow(FOLLOW_31);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop35;
+ }
+ } while (true);
+
+
+ }
+ break;
+
+ }
+
+ otherlv_14=(Token)match(input,46,FOLLOW_27); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_14, grammarAccess.getSoundContentAccess().getRightSquareBracketKeyword_4_2_3());
+
+ }
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getSoundContentAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // InternalRBAModel.g:2073:4: ({...}? => ( ({...}? => ( (lv_states_15_0= ruleSoundContentState ) ) )+ ) )
+ {
+ // InternalRBAModel.g:2073:4: ({...}? => ( ({...}? => ( (lv_states_15_0= ruleSoundContentState ) ) )+ ) )
+ // InternalRBAModel.g:2074:5: {...}? => ( ({...}? => ( (lv_states_15_0= ruleSoundContentState ) ) )+ )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 3) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleSoundContent", "getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 3)");
+ }
+ // InternalRBAModel.g:2074:109: ( ({...}? => ( (lv_states_15_0= ruleSoundContentState ) ) )+ )
+ // InternalRBAModel.g:2075:6: ({...}? => ( (lv_states_15_0= ruleSoundContentState ) ) )+
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 3);
+ // InternalRBAModel.g:2078:9: ({...}? => ( (lv_states_15_0= ruleSoundContentState ) ) )+
+ int cnt37=0;
+ loop37:
+ do {
+ int alt37=2;
+ int LA37_0 = input.LA(1);
+
+ if ( (LA37_0==64) ) {
+ int LA37_2 = input.LA(2);
+
+ if ( ((true)) ) {
+ alt37=1;
+ }
+
+
+ }
+
+
+ switch (alt37) {
+ case 1 :
+ // InternalRBAModel.g:2078:10: {...}? => ( (lv_states_15_0= ruleSoundContentState ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleSoundContent", "true");
+ }
+ // InternalRBAModel.g:2078:19: ( (lv_states_15_0= ruleSoundContentState ) )
+ // InternalRBAModel.g:2078:20: (lv_states_15_0= ruleSoundContentState )
+ {
+ // InternalRBAModel.g:2078:20: (lv_states_15_0= ruleSoundContentState )
+ // InternalRBAModel.g:2079:10: lv_states_15_0= ruleSoundContentState
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getSoundContentAccess().getStatesSoundContentStateParserRuleCall_4_3_0());
+
+ }
+ pushFollow(FOLLOW_27);
+ lv_states_15_0=ruleSoundContentState();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSoundContentRule());
+ }
+ add(
+ current,
+ "states",
+ lv_states_15_0,
+ "rba.tool.editor.RBAModel.SoundContentState");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ if ( cnt37 >= 1 ) break loop37;
+ if (state.backtracking>0) {state.failed=true; return current;}
+ EarlyExitException eee =
+ new EarlyExitException(37, input);
+ throw eee;
+ }
+ cnt37++;
+ } while (true);
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getSoundContentAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 5 :
+ // InternalRBAModel.g:2101:4: ({...}? => ( ({...}? => ( (lv_tags_16_0= ruleTag ) ) )+ ) )
+ {
+ // InternalRBAModel.g:2101:4: ({...}? => ( ({...}? => ( (lv_tags_16_0= ruleTag ) ) )+ ) )
+ // InternalRBAModel.g:2102:5: {...}? => ( ({...}? => ( (lv_tags_16_0= ruleTag ) ) )+ )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 4) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleSoundContent", "getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 4)");
+ }
+ // InternalRBAModel.g:2102:109: ( ({...}? => ( (lv_tags_16_0= ruleTag ) ) )+ )
+ // InternalRBAModel.g:2103:6: ({...}? => ( (lv_tags_16_0= ruleTag ) ) )+
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSoundContentAccess().getUnorderedGroup_4(), 4);
+ // InternalRBAModel.g:2106:9: ({...}? => ( (lv_tags_16_0= ruleTag ) ) )+
+ int cnt38=0;
+ loop38:
+ do {
+ int alt38=2;
+ int LA38_0 = input.LA(1);
+
+ if ( (LA38_0==22) ) {
+ int LA38_2 = input.LA(2);
+
+ if ( ((true)) ) {
+ alt38=1;
+ }
+
+
+ }
+ else if ( (LA38_0==24) ) {
+ int LA38_3 = input.LA(2);
+
+ if ( ((true)) ) {
+ alt38=1;
+ }
+
+
+ }
+
+
+ switch (alt38) {
+ case 1 :
+ // InternalRBAModel.g:2106:10: {...}? => ( (lv_tags_16_0= ruleTag ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleSoundContent", "true");
+ }
+ // InternalRBAModel.g:2106:19: ( (lv_tags_16_0= ruleTag ) )
+ // InternalRBAModel.g:2106:20: (lv_tags_16_0= ruleTag )
+ {
+ // InternalRBAModel.g:2106:20: (lv_tags_16_0= ruleTag )
+ // InternalRBAModel.g:2107:10: lv_tags_16_0= ruleTag
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getSoundContentAccess().getTagsTagParserRuleCall_4_4_0());
+
+ }
+ pushFollow(FOLLOW_27);
+ lv_tags_16_0=ruleTag();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSoundContentRule());
+ }
+ add(
+ current,
+ "tags",
+ lv_tags_16_0,
+ "rba.tool.editor.RBAModel.Tag");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ if ( cnt38 >= 1 ) break loop38;
+ if (state.backtracking>0) {state.failed=true; return current;}
+ EarlyExitException eee =
+ new EarlyExitException(38, input);
+ throw eee;
+ }
+ cnt38++;
+ } while (true);
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getSoundContentAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop39;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().leave(grammarAccess.getSoundContentAccess().getUnorderedGroup_4());
+
+ }
+
+ otherlv_17=(Token)match(input,28,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_17, grammarAccess.getSoundContentAccess().getRightCurlyBracketKeyword_5());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleSoundContent"
+
+
+ // $ANTLR start "entryRuleSize"
+ // InternalRBAModel.g:2144:1: entryRuleSize returns [EObject current=null] : iv_ruleSize= ruleSize EOF ;
+ public final EObject entryRuleSize() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleSize = null;
+
+
+ try {
+ // InternalRBAModel.g:2144:45: (iv_ruleSize= ruleSize EOF )
+ // InternalRBAModel.g:2145:2: iv_ruleSize= ruleSize EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getSizeRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleSize=ruleSize();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleSize;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleSize"
+
+
+ // $ANTLR start "ruleSize"
+ // InternalRBAModel.g:2151:1: ruleSize returns [EObject current=null] : ( () otherlv_1= 'Size' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'width:' ( (lv_width_8_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'height:' ( (lv_height_10_0= ruleEInt ) ) ) ) ) ) )* ) ) ) otherlv_11= '}' ) ;
+ public final EObject ruleSize() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_3=null;
+ Token otherlv_5=null;
+ Token otherlv_7=null;
+ Token otherlv_9=null;
+ Token otherlv_11=null;
+ AntlrDatatypeRuleToken lv_name_2_0 = null;
+
+ AntlrDatatypeRuleToken lv_description_6_0 = null;
+
+ AntlrDatatypeRuleToken lv_width_8_0 = null;
+
+ AntlrDatatypeRuleToken lv_height_10_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:2157:2: ( ( () otherlv_1= 'Size' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'width:' ( (lv_width_8_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'height:' ( (lv_height_10_0= ruleEInt ) ) ) ) ) ) )* ) ) ) otherlv_11= '}' ) )
+ // InternalRBAModel.g:2158:2: ( () otherlv_1= 'Size' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'width:' ( (lv_width_8_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'height:' ( (lv_height_10_0= ruleEInt ) ) ) ) ) ) )* ) ) ) otherlv_11= '}' )
+ {
+ // InternalRBAModel.g:2158:2: ( () otherlv_1= 'Size' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'width:' ( (lv_width_8_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'height:' ( (lv_height_10_0= ruleEInt ) ) ) ) ) ) )* ) ) ) otherlv_11= '}' )
+ // InternalRBAModel.g:2159:3: () otherlv_1= 'Size' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'width:' ( (lv_width_8_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'height:' ( (lv_height_10_0= ruleEInt ) ) ) ) ) ) )* ) ) ) otherlv_11= '}'
+ {
+ // InternalRBAModel.g:2159:3: ()
+ // InternalRBAModel.g:2160:4:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getSizeAccess().getSizeAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,47,FOLLOW_3); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getSizeAccess().getSizeKeyword_1());
+
+ }
+ // InternalRBAModel.g:2170:3: ( (lv_name_2_0= ruleQualifiedName ) )
+ // InternalRBAModel.g:2171:4: (lv_name_2_0= ruleQualifiedName )
+ {
+ // InternalRBAModel.g:2171:4: (lv_name_2_0= ruleQualifiedName )
+ // InternalRBAModel.g:2172:5: lv_name_2_0= ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getSizeAccess().getNameQualifiedNameParserRuleCall_2_0());
+
+ }
+ pushFollow(FOLLOW_15);
+ lv_name_2_0=ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSizeRule());
+ }
+ set(
+ current,
+ "name",
+ lv_name_2_0,
+ "rba.tool.editor.RBAModel.QualifiedName");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_3=(Token)match(input,26,FOLLOW_32); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_3, grammarAccess.getSizeAccess().getLeftCurlyBracketKeyword_3());
+
+ }
+ // InternalRBAModel.g:2193:3: ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'width:' ( (lv_width_8_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'height:' ( (lv_height_10_0= ruleEInt ) ) ) ) ) ) )* ) ) )
+ // InternalRBAModel.g:2194:4: ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'width:' ( (lv_width_8_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'height:' ( (lv_height_10_0= ruleEInt ) ) ) ) ) ) )* ) )
+ {
+ // InternalRBAModel.g:2194:4: ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'width:' ( (lv_width_8_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'height:' ( (lv_height_10_0= ruleEInt ) ) ) ) ) ) )* ) )
+ // InternalRBAModel.g:2195:5: ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'width:' ( (lv_width_8_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'height:' ( (lv_height_10_0= ruleEInt ) ) ) ) ) ) )* )
+ {
+ getUnorderedGroupHelper().enter(grammarAccess.getSizeAccess().getUnorderedGroup_4());
+ // InternalRBAModel.g:2198:5: ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'width:' ( (lv_width_8_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'height:' ( (lv_height_10_0= ruleEInt ) ) ) ) ) ) )* )
+ // InternalRBAModel.g:2199:6: ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'width:' ( (lv_width_8_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'height:' ( (lv_height_10_0= ruleEInt ) ) ) ) ) ) )*
+ {
+ // InternalRBAModel.g:2199:6: ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'width:' ( (lv_width_8_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'height:' ( (lv_height_10_0= ruleEInt ) ) ) ) ) ) )*
+ loop40:
+ do {
+ int alt40=4;
+ int LA40_0 = input.LA(1);
+
+ if ( LA40_0 == 30 && getUnorderedGroupHelper().canSelect(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 0) ) {
+ alt40=1;
+ }
+ else if ( LA40_0 == 48 && getUnorderedGroupHelper().canSelect(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 1) ) {
+ alt40=2;
+ }
+ else if ( LA40_0 == 49 && getUnorderedGroupHelper().canSelect(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 2) ) {
+ alt40=3;
+ }
+
+
+ switch (alt40) {
+ case 1 :
+ // InternalRBAModel.g:2200:4: ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) )
+ {
+ // InternalRBAModel.g:2200:4: ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) )
+ // InternalRBAModel.g:2201:5: {...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleSize", "getUnorderedGroupHelper().canSelect(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 0)");
+ }
+ // InternalRBAModel.g:2201:101: ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) )
+ // InternalRBAModel.g:2202:6: ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 0);
+ // InternalRBAModel.g:2205:9: ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) )
+ // InternalRBAModel.g:2205:10: {...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleSize", "true");
+ }
+ // InternalRBAModel.g:2205:19: (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) )
+ // InternalRBAModel.g:2205:20: otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) )
+ {
+ otherlv_5=(Token)match(input,30,FOLLOW_14); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_5, grammarAccess.getSizeAccess().getDescriptionKeyword_4_0_0());
+
+ }
+ // InternalRBAModel.g:2209:9: ( (lv_description_6_0= ruleEString ) )
+ // InternalRBAModel.g:2210:10: (lv_description_6_0= ruleEString )
+ {
+ // InternalRBAModel.g:2210:10: (lv_description_6_0= ruleEString )
+ // InternalRBAModel.g:2211:11: lv_description_6_0= ruleEString
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getSizeAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+
+ }
+ pushFollow(FOLLOW_32);
+ lv_description_6_0=ruleEString();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSizeRule());
+ }
+ set(
+ current,
+ "description",
+ lv_description_6_0,
+ "rba.tool.editor.RBAModel.EString");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getSizeAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:2234:4: ({...}? => ( ({...}? => (otherlv_7= 'width:' ( (lv_width_8_0= ruleEInt ) ) ) ) ) )
+ {
+ // InternalRBAModel.g:2234:4: ({...}? => ( ({...}? => (otherlv_7= 'width:' ( (lv_width_8_0= ruleEInt ) ) ) ) ) )
+ // InternalRBAModel.g:2235:5: {...}? => ( ({...}? => (otherlv_7= 'width:' ( (lv_width_8_0= ruleEInt ) ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleSize", "getUnorderedGroupHelper().canSelect(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 1)");
+ }
+ // InternalRBAModel.g:2235:101: ( ({...}? => (otherlv_7= 'width:' ( (lv_width_8_0= ruleEInt ) ) ) ) )
+ // InternalRBAModel.g:2236:6: ({...}? => (otherlv_7= 'width:' ( (lv_width_8_0= ruleEInt ) ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 1);
+ // InternalRBAModel.g:2239:9: ({...}? => (otherlv_7= 'width:' ( (lv_width_8_0= ruleEInt ) ) ) )
+ // InternalRBAModel.g:2239:10: {...}? => (otherlv_7= 'width:' ( (lv_width_8_0= ruleEInt ) ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleSize", "true");
+ }
+ // InternalRBAModel.g:2239:19: (otherlv_7= 'width:' ( (lv_width_8_0= ruleEInt ) ) )
+ // InternalRBAModel.g:2239:20: otherlv_7= 'width:' ( (lv_width_8_0= ruleEInt ) )
+ {
+ otherlv_7=(Token)match(input,48,FOLLOW_8); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_7, grammarAccess.getSizeAccess().getWidthKeyword_4_1_0());
+
+ }
+ // InternalRBAModel.g:2243:9: ( (lv_width_8_0= ruleEInt ) )
+ // InternalRBAModel.g:2244:10: (lv_width_8_0= ruleEInt )
+ {
+ // InternalRBAModel.g:2244:10: (lv_width_8_0= ruleEInt )
+ // InternalRBAModel.g:2245:11: lv_width_8_0= ruleEInt
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getSizeAccess().getWidthEIntParserRuleCall_4_1_1_0());
+
+ }
+ pushFollow(FOLLOW_32);
+ lv_width_8_0=ruleEInt();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSizeRule());
+ }
+ set(
+ current,
+ "width",
+ lv_width_8_0,
+ "rba.tool.editor.RBAModel.EInt");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getSizeAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:2268:4: ({...}? => ( ({...}? => (otherlv_9= 'height:' ( (lv_height_10_0= ruleEInt ) ) ) ) ) )
+ {
+ // InternalRBAModel.g:2268:4: ({...}? => ( ({...}? => (otherlv_9= 'height:' ( (lv_height_10_0= ruleEInt ) ) ) ) ) )
+ // InternalRBAModel.g:2269:5: {...}? => ( ({...}? => (otherlv_9= 'height:' ( (lv_height_10_0= ruleEInt ) ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 2) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleSize", "getUnorderedGroupHelper().canSelect(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 2)");
+ }
+ // InternalRBAModel.g:2269:101: ( ({...}? => (otherlv_9= 'height:' ( (lv_height_10_0= ruleEInt ) ) ) ) )
+ // InternalRBAModel.g:2270:6: ({...}? => (otherlv_9= 'height:' ( (lv_height_10_0= ruleEInt ) ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSizeAccess().getUnorderedGroup_4(), 2);
+ // InternalRBAModel.g:2273:9: ({...}? => (otherlv_9= 'height:' ( (lv_height_10_0= ruleEInt ) ) ) )
+ // InternalRBAModel.g:2273:10: {...}? => (otherlv_9= 'height:' ( (lv_height_10_0= ruleEInt ) ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleSize", "true");
+ }
+ // InternalRBAModel.g:2273:19: (otherlv_9= 'height:' ( (lv_height_10_0= ruleEInt ) ) )
+ // InternalRBAModel.g:2273:20: otherlv_9= 'height:' ( (lv_height_10_0= ruleEInt ) )
+ {
+ otherlv_9=(Token)match(input,49,FOLLOW_8); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_9, grammarAccess.getSizeAccess().getHeightKeyword_4_2_0());
+
+ }
+ // InternalRBAModel.g:2277:9: ( (lv_height_10_0= ruleEInt ) )
+ // InternalRBAModel.g:2278:10: (lv_height_10_0= ruleEInt )
+ {
+ // InternalRBAModel.g:2278:10: (lv_height_10_0= ruleEInt )
+ // InternalRBAModel.g:2279:11: lv_height_10_0= ruleEInt
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getSizeAccess().getHeightEIntParserRuleCall_4_2_1_0());
+
+ }
+ pushFollow(FOLLOW_32);
+ lv_height_10_0=ruleEInt();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSizeRule());
+ }
+ set(
+ current,
+ "height",
+ lv_height_10_0,
+ "rba.tool.editor.RBAModel.EInt");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getSizeAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop40;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().leave(grammarAccess.getSizeAccess().getUnorderedGroup_4());
+
+ }
+
+ otherlv_11=(Token)match(input,28,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_11, grammarAccess.getSizeAccess().getRightCurlyBracketKeyword_5());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleSize"
+
+
+ // $ANTLR start "entryRuleSizeReference"
+ // InternalRBAModel.g:2317:1: entryRuleSizeReference returns [EObject current=null] : iv_ruleSizeReference= ruleSizeReference EOF ;
+ public final EObject entryRuleSizeReference() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleSizeReference = null;
+
+
+ try {
+ // InternalRBAModel.g:2317:54: (iv_ruleSizeReference= ruleSizeReference EOF )
+ // InternalRBAModel.g:2318:2: iv_ruleSizeReference= ruleSizeReference EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getSizeReferenceRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleSizeReference=ruleSizeReference();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleSizeReference;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleSizeReference"
+
+
+ // $ANTLR start "ruleSizeReference"
+ // InternalRBAModel.g:2324:1: ruleSizeReference returns [EObject current=null] : ( () otherlv_1= 'sizeReference:' ( ( ruleQualifiedName ) ) ) ;
+ public final EObject ruleSizeReference() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:2330:2: ( ( () otherlv_1= 'sizeReference:' ( ( ruleQualifiedName ) ) ) )
+ // InternalRBAModel.g:2331:2: ( () otherlv_1= 'sizeReference:' ( ( ruleQualifiedName ) ) )
+ {
+ // InternalRBAModel.g:2331:2: ( () otherlv_1= 'sizeReference:' ( ( ruleQualifiedName ) ) )
+ // InternalRBAModel.g:2332:3: () otherlv_1= 'sizeReference:' ( ( ruleQualifiedName ) )
+ {
+ // InternalRBAModel.g:2332:3: ()
+ // InternalRBAModel.g:2333:4:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getSizeReferenceAccess().getSizeReferenceAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,50,FOLLOW_3); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getSizeReferenceAccess().getSizeReferenceKeyword_1());
+
+ }
+ // InternalRBAModel.g:2343:3: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:2344:4: ( ruleQualifiedName )
+ {
+ // InternalRBAModel.g:2344:4: ( ruleQualifiedName )
+ // InternalRBAModel.g:2345:5: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getSizeReferenceRule());
+ }
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getSizeReferenceAccess().getSizeSizeCrossReference_2_0());
+
+ }
+ pushFollow(FOLLOW_2);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleSizeReference"
+
+
+ // $ANTLR start "entryRuleOffset"
+ // InternalRBAModel.g:2363:1: entryRuleOffset returns [EObject current=null] : iv_ruleOffset= ruleOffset EOF ;
+ public final EObject entryRuleOffset() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleOffset = null;
+
+
+ try {
+ // InternalRBAModel.g:2363:47: (iv_ruleOffset= ruleOffset EOF )
+ // InternalRBAModel.g:2364:2: iv_ruleOffset= ruleOffset EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOffsetRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOffset=ruleOffset();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOffset;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOffset"
+
+
+ // $ANTLR start "ruleOffset"
+ // InternalRBAModel.g:2370:1: ruleOffset returns [EObject current=null] : ( () otherlv_1= 'Offset' otherlv_2= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'description:' ( (lv_description_5_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'x:' ( (lv_x_7_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'y:' ( (lv_y_9_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_size_10_0= ruleSizeReference ) ) ) ) ) )* ) ) ) otherlv_11= '}' ) ;
+ public final EObject ruleOffset() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_2=null;
+ Token otherlv_4=null;
+ Token otherlv_6=null;
+ Token otherlv_8=null;
+ Token otherlv_11=null;
+ AntlrDatatypeRuleToken lv_description_5_0 = null;
+
+ AntlrDatatypeRuleToken lv_x_7_0 = null;
+
+ AntlrDatatypeRuleToken lv_y_9_0 = null;
+
+ EObject lv_size_10_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:2376:2: ( ( () otherlv_1= 'Offset' otherlv_2= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'description:' ( (lv_description_5_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'x:' ( (lv_x_7_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'y:' ( (lv_y_9_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_size_10_0= ruleSizeReference ) ) ) ) ) )* ) ) ) otherlv_11= '}' ) )
+ // InternalRBAModel.g:2377:2: ( () otherlv_1= 'Offset' otherlv_2= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'description:' ( (lv_description_5_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'x:' ( (lv_x_7_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'y:' ( (lv_y_9_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_size_10_0= ruleSizeReference ) ) ) ) ) )* ) ) ) otherlv_11= '}' )
+ {
+ // InternalRBAModel.g:2377:2: ( () otherlv_1= 'Offset' otherlv_2= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'description:' ( (lv_description_5_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'x:' ( (lv_x_7_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'y:' ( (lv_y_9_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_size_10_0= ruleSizeReference ) ) ) ) ) )* ) ) ) otherlv_11= '}' )
+ // InternalRBAModel.g:2378:3: () otherlv_1= 'Offset' otherlv_2= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'description:' ( (lv_description_5_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'x:' ( (lv_x_7_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'y:' ( (lv_y_9_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_size_10_0= ruleSizeReference ) ) ) ) ) )* ) ) ) otherlv_11= '}'
+ {
+ // InternalRBAModel.g:2378:3: ()
+ // InternalRBAModel.g:2379:4:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getOffsetAccess().getOffsetAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,51,FOLLOW_15); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getOffsetAccess().getOffsetKeyword_1());
+
+ }
+ otherlv_2=(Token)match(input,26,FOLLOW_33); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_2, grammarAccess.getOffsetAccess().getLeftCurlyBracketKeyword_2());
+
+ }
+ // InternalRBAModel.g:2393:3: ( ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'description:' ( (lv_description_5_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'x:' ( (lv_x_7_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'y:' ( (lv_y_9_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_size_10_0= ruleSizeReference ) ) ) ) ) )* ) ) )
+ // InternalRBAModel.g:2394:4: ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'description:' ( (lv_description_5_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'x:' ( (lv_x_7_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'y:' ( (lv_y_9_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_size_10_0= ruleSizeReference ) ) ) ) ) )* ) )
+ {
+ // InternalRBAModel.g:2394:4: ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'description:' ( (lv_description_5_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'x:' ( (lv_x_7_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'y:' ( (lv_y_9_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_size_10_0= ruleSizeReference ) ) ) ) ) )* ) )
+ // InternalRBAModel.g:2395:5: ( ( ({...}? => ( ({...}? => (otherlv_4= 'description:' ( (lv_description_5_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'x:' ( (lv_x_7_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'y:' ( (lv_y_9_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_size_10_0= ruleSizeReference ) ) ) ) ) )* )
+ {
+ getUnorderedGroupHelper().enter(grammarAccess.getOffsetAccess().getUnorderedGroup_3());
+ // InternalRBAModel.g:2398:5: ( ( ({...}? => ( ({...}? => (otherlv_4= 'description:' ( (lv_description_5_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'x:' ( (lv_x_7_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'y:' ( (lv_y_9_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_size_10_0= ruleSizeReference ) ) ) ) ) )* )
+ // InternalRBAModel.g:2399:6: ( ({...}? => ( ({...}? => (otherlv_4= 'description:' ( (lv_description_5_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'x:' ( (lv_x_7_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'y:' ( (lv_y_9_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_size_10_0= ruleSizeReference ) ) ) ) ) )*
+ {
+ // InternalRBAModel.g:2399:6: ( ({...}? => ( ({...}? => (otherlv_4= 'description:' ( (lv_description_5_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'x:' ( (lv_x_7_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'y:' ( (lv_y_9_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_size_10_0= ruleSizeReference ) ) ) ) ) )*
+ loop41:
+ do {
+ int alt41=5;
+ int LA41_0 = input.LA(1);
+
+ if ( LA41_0 == 30 && getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 0) ) {
+ alt41=1;
+ }
+ else if ( LA41_0 == 52 && getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 1) ) {
+ alt41=2;
+ }
+ else if ( LA41_0 == 53 && getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 2) ) {
+ alt41=3;
+ }
+ else if ( LA41_0 == 50 && getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 3) ) {
+ alt41=4;
+ }
+
+
+ switch (alt41) {
+ case 1 :
+ // InternalRBAModel.g:2400:4: ({...}? => ( ({...}? => (otherlv_4= 'description:' ( (lv_description_5_0= ruleEString ) ) ) ) ) )
+ {
+ // InternalRBAModel.g:2400:4: ({...}? => ( ({...}? => (otherlv_4= 'description:' ( (lv_description_5_0= ruleEString ) ) ) ) ) )
+ // InternalRBAModel.g:2401:5: {...}? => ( ({...}? => (otherlv_4= 'description:' ( (lv_description_5_0= ruleEString ) ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleOffset", "getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 0)");
+ }
+ // InternalRBAModel.g:2401:103: ( ({...}? => (otherlv_4= 'description:' ( (lv_description_5_0= ruleEString ) ) ) ) )
+ // InternalRBAModel.g:2402:6: ({...}? => (otherlv_4= 'description:' ( (lv_description_5_0= ruleEString ) ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 0);
+ // InternalRBAModel.g:2405:9: ({...}? => (otherlv_4= 'description:' ( (lv_description_5_0= ruleEString ) ) ) )
+ // InternalRBAModel.g:2405:10: {...}? => (otherlv_4= 'description:' ( (lv_description_5_0= ruleEString ) ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleOffset", "true");
+ }
+ // InternalRBAModel.g:2405:19: (otherlv_4= 'description:' ( (lv_description_5_0= ruleEString ) ) )
+ // InternalRBAModel.g:2405:20: otherlv_4= 'description:' ( (lv_description_5_0= ruleEString ) )
+ {
+ otherlv_4=(Token)match(input,30,FOLLOW_14); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_4, grammarAccess.getOffsetAccess().getDescriptionKeyword_3_0_0());
+
+ }
+ // InternalRBAModel.g:2409:9: ( (lv_description_5_0= ruleEString ) )
+ // InternalRBAModel.g:2410:10: (lv_description_5_0= ruleEString )
+ {
+ // InternalRBAModel.g:2410:10: (lv_description_5_0= ruleEString )
+ // InternalRBAModel.g:2411:11: lv_description_5_0= ruleEString
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getOffsetAccess().getDescriptionEStringParserRuleCall_3_0_1_0());
+
+ }
+ pushFollow(FOLLOW_33);
+ lv_description_5_0=ruleEString();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getOffsetRule());
+ }
+ set(
+ current,
+ "description",
+ lv_description_5_0,
+ "rba.tool.editor.RBAModel.EString");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getOffsetAccess().getUnorderedGroup_3());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:2434:4: ({...}? => ( ({...}? => (otherlv_6= 'x:' ( (lv_x_7_0= ruleEInt ) ) ) ) ) )
+ {
+ // InternalRBAModel.g:2434:4: ({...}? => ( ({...}? => (otherlv_6= 'x:' ( (lv_x_7_0= ruleEInt ) ) ) ) ) )
+ // InternalRBAModel.g:2435:5: {...}? => ( ({...}? => (otherlv_6= 'x:' ( (lv_x_7_0= ruleEInt ) ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleOffset", "getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 1)");
+ }
+ // InternalRBAModel.g:2435:103: ( ({...}? => (otherlv_6= 'x:' ( (lv_x_7_0= ruleEInt ) ) ) ) )
+ // InternalRBAModel.g:2436:6: ({...}? => (otherlv_6= 'x:' ( (lv_x_7_0= ruleEInt ) ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 1);
+ // InternalRBAModel.g:2439:9: ({...}? => (otherlv_6= 'x:' ( (lv_x_7_0= ruleEInt ) ) ) )
+ // InternalRBAModel.g:2439:10: {...}? => (otherlv_6= 'x:' ( (lv_x_7_0= ruleEInt ) ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleOffset", "true");
+ }
+ // InternalRBAModel.g:2439:19: (otherlv_6= 'x:' ( (lv_x_7_0= ruleEInt ) ) )
+ // InternalRBAModel.g:2439:20: otherlv_6= 'x:' ( (lv_x_7_0= ruleEInt ) )
+ {
+ otherlv_6=(Token)match(input,52,FOLLOW_8); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_6, grammarAccess.getOffsetAccess().getXKeyword_3_1_0());
+
+ }
+ // InternalRBAModel.g:2443:9: ( (lv_x_7_0= ruleEInt ) )
+ // InternalRBAModel.g:2444:10: (lv_x_7_0= ruleEInt )
+ {
+ // InternalRBAModel.g:2444:10: (lv_x_7_0= ruleEInt )
+ // InternalRBAModel.g:2445:11: lv_x_7_0= ruleEInt
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getOffsetAccess().getXEIntParserRuleCall_3_1_1_0());
+
+ }
+ pushFollow(FOLLOW_33);
+ lv_x_7_0=ruleEInt();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getOffsetRule());
+ }
+ set(
+ current,
+ "x",
+ lv_x_7_0,
+ "rba.tool.editor.RBAModel.EInt");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getOffsetAccess().getUnorderedGroup_3());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:2468:4: ({...}? => ( ({...}? => (otherlv_8= 'y:' ( (lv_y_9_0= ruleEInt ) ) ) ) ) )
+ {
+ // InternalRBAModel.g:2468:4: ({...}? => ( ({...}? => (otherlv_8= 'y:' ( (lv_y_9_0= ruleEInt ) ) ) ) ) )
+ // InternalRBAModel.g:2469:5: {...}? => ( ({...}? => (otherlv_8= 'y:' ( (lv_y_9_0= ruleEInt ) ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 2) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleOffset", "getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 2)");
+ }
+ // InternalRBAModel.g:2469:103: ( ({...}? => (otherlv_8= 'y:' ( (lv_y_9_0= ruleEInt ) ) ) ) )
+ // InternalRBAModel.g:2470:6: ({...}? => (otherlv_8= 'y:' ( (lv_y_9_0= ruleEInt ) ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 2);
+ // InternalRBAModel.g:2473:9: ({...}? => (otherlv_8= 'y:' ( (lv_y_9_0= ruleEInt ) ) ) )
+ // InternalRBAModel.g:2473:10: {...}? => (otherlv_8= 'y:' ( (lv_y_9_0= ruleEInt ) ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleOffset", "true");
+ }
+ // InternalRBAModel.g:2473:19: (otherlv_8= 'y:' ( (lv_y_9_0= ruleEInt ) ) )
+ // InternalRBAModel.g:2473:20: otherlv_8= 'y:' ( (lv_y_9_0= ruleEInt ) )
+ {
+ otherlv_8=(Token)match(input,53,FOLLOW_8); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_8, grammarAccess.getOffsetAccess().getYKeyword_3_2_0());
+
+ }
+ // InternalRBAModel.g:2477:9: ( (lv_y_9_0= ruleEInt ) )
+ // InternalRBAModel.g:2478:10: (lv_y_9_0= ruleEInt )
+ {
+ // InternalRBAModel.g:2478:10: (lv_y_9_0= ruleEInt )
+ // InternalRBAModel.g:2479:11: lv_y_9_0= ruleEInt
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getOffsetAccess().getYEIntParserRuleCall_3_2_1_0());
+
+ }
+ pushFollow(FOLLOW_33);
+ lv_y_9_0=ruleEInt();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getOffsetRule());
+ }
+ set(
+ current,
+ "y",
+ lv_y_9_0,
+ "rba.tool.editor.RBAModel.EInt");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getOffsetAccess().getUnorderedGroup_3());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // InternalRBAModel.g:2502:4: ({...}? => ( ({...}? => ( (lv_size_10_0= ruleSizeReference ) ) ) ) )
+ {
+ // InternalRBAModel.g:2502:4: ({...}? => ( ({...}? => ( (lv_size_10_0= ruleSizeReference ) ) ) ) )
+ // InternalRBAModel.g:2503:5: {...}? => ( ({...}? => ( (lv_size_10_0= ruleSizeReference ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 3) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleOffset", "getUnorderedGroupHelper().canSelect(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 3)");
+ }
+ // InternalRBAModel.g:2503:103: ( ({...}? => ( (lv_size_10_0= ruleSizeReference ) ) ) )
+ // InternalRBAModel.g:2504:6: ({...}? => ( (lv_size_10_0= ruleSizeReference ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getOffsetAccess().getUnorderedGroup_3(), 3);
+ // InternalRBAModel.g:2507:9: ({...}? => ( (lv_size_10_0= ruleSizeReference ) ) )
+ // InternalRBAModel.g:2507:10: {...}? => ( (lv_size_10_0= ruleSizeReference ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleOffset", "true");
+ }
+ // InternalRBAModel.g:2507:19: ( (lv_size_10_0= ruleSizeReference ) )
+ // InternalRBAModel.g:2507:20: (lv_size_10_0= ruleSizeReference )
+ {
+ // InternalRBAModel.g:2507:20: (lv_size_10_0= ruleSizeReference )
+ // InternalRBAModel.g:2508:10: lv_size_10_0= ruleSizeReference
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getOffsetAccess().getSizeSizeReferenceParserRuleCall_3_3_0());
+
+ }
+ pushFollow(FOLLOW_33);
+ lv_size_10_0=ruleSizeReference();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getOffsetRule());
+ }
+ set(
+ current,
+ "size",
+ lv_size_10_0,
+ "rba.tool.editor.RBAModel.SizeReference");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getOffsetAccess().getUnorderedGroup_3());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop41;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().leave(grammarAccess.getOffsetAccess().getUnorderedGroup_3());
+
+ }
+
+ otherlv_11=(Token)match(input,28,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_11, grammarAccess.getOffsetAccess().getRightCurlyBracketKeyword_4());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOffset"
+
+
+ // $ANTLR start "entryRuleAreaSet"
+ // InternalRBAModel.g:2545:1: entryRuleAreaSet returns [EObject current=null] : iv_ruleAreaSet= ruleAreaSet EOF ;
+ public final EObject entryRuleAreaSet() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleAreaSet = null;
+
+
+ try {
+ // InternalRBAModel.g:2545:48: (iv_ruleAreaSet= ruleAreaSet EOF )
+ // InternalRBAModel.g:2546:2: iv_ruleAreaSet= ruleAreaSet EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getAreaSetRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleAreaSet=ruleAreaSet();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleAreaSet;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleAreaSet"
+
+
+ // $ANTLR start "ruleAreaSet"
+ // InternalRBAModel.g:2552:1: ruleAreaSet returns [EObject current=null] : ( () otherlv_1= 'AreaSet' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) ) )* ) ) ) otherlv_13= '}' ) ;
+ public final EObject ruleAreaSet() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_3=null;
+ Token otherlv_5=null;
+ Token otherlv_7=null;
+ Token otherlv_8=null;
+ Token otherlv_10=null;
+ Token otherlv_12=null;
+ Token otherlv_13=null;
+ AntlrDatatypeRuleToken lv_name_2_0 = null;
+
+ AntlrDatatypeRuleToken lv_description_6_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:2558:2: ( ( () otherlv_1= 'AreaSet' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) ) )* ) ) ) otherlv_13= '}' ) )
+ // InternalRBAModel.g:2559:2: ( () otherlv_1= 'AreaSet' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) ) )* ) ) ) otherlv_13= '}' )
+ {
+ // InternalRBAModel.g:2559:2: ( () otherlv_1= 'AreaSet' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) ) )* ) ) ) otherlv_13= '}' )
+ // InternalRBAModel.g:2560:3: () otherlv_1= 'AreaSet' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) ) )* ) ) ) otherlv_13= '}'
+ {
+ // InternalRBAModel.g:2560:3: ()
+ // InternalRBAModel.g:2561:4:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getAreaSetAccess().getAreaSetAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,54,FOLLOW_3); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getAreaSetAccess().getAreaSetKeyword_1());
+
+ }
+ // InternalRBAModel.g:2571:3: ( (lv_name_2_0= ruleQualifiedName ) )
+ // InternalRBAModel.g:2572:4: (lv_name_2_0= ruleQualifiedName )
+ {
+ // InternalRBAModel.g:2572:4: (lv_name_2_0= ruleQualifiedName )
+ // InternalRBAModel.g:2573:5: lv_name_2_0= ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getAreaSetAccess().getNameQualifiedNameParserRuleCall_2_0());
+
+ }
+ pushFollow(FOLLOW_15);
+ lv_name_2_0=ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getAreaSetRule());
+ }
+ set(
+ current,
+ "name",
+ lv_name_2_0,
+ "rba.tool.editor.RBAModel.QualifiedName");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_3=(Token)match(input,26,FOLLOW_34); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_3, grammarAccess.getAreaSetAccess().getLeftCurlyBracketKeyword_3());
+
+ }
+ // InternalRBAModel.g:2594:3: ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) ) )* ) ) )
+ // InternalRBAModel.g:2595:4: ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) ) )* ) )
+ {
+ // InternalRBAModel.g:2595:4: ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) ) )* ) )
+ // InternalRBAModel.g:2596:5: ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) ) )* )
+ {
+ getUnorderedGroupHelper().enter(grammarAccess.getAreaSetAccess().getUnorderedGroup_4());
+ // InternalRBAModel.g:2599:5: ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) ) )* )
+ // InternalRBAModel.g:2600:6: ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) ) )*
+ {
+ // InternalRBAModel.g:2600:6: ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) ) )*
+ loop44:
+ do {
+ int alt44=3;
+ int LA44_0 = input.LA(1);
+
+ if ( LA44_0 == 30 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaSetAccess().getUnorderedGroup_4(), 0) ) {
+ alt44=1;
+ }
+ else if ( LA44_0 == 55 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaSetAccess().getUnorderedGroup_4(), 1) ) {
+ alt44=2;
+ }
+
+
+ switch (alt44) {
+ case 1 :
+ // InternalRBAModel.g:2601:4: ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) )
+ {
+ // InternalRBAModel.g:2601:4: ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) )
+ // InternalRBAModel.g:2602:5: {...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getAreaSetAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleAreaSet", "getUnorderedGroupHelper().canSelect(grammarAccess.getAreaSetAccess().getUnorderedGroup_4(), 0)");
+ }
+ // InternalRBAModel.g:2602:104: ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) )
+ // InternalRBAModel.g:2603:6: ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getAreaSetAccess().getUnorderedGroup_4(), 0);
+ // InternalRBAModel.g:2606:9: ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) )
+ // InternalRBAModel.g:2606:10: {...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleAreaSet", "true");
+ }
+ // InternalRBAModel.g:2606:19: (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) )
+ // InternalRBAModel.g:2606:20: otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) )
+ {
+ otherlv_5=(Token)match(input,30,FOLLOW_14); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_5, grammarAccess.getAreaSetAccess().getDescriptionKeyword_4_0_0());
+
+ }
+ // InternalRBAModel.g:2610:9: ( (lv_description_6_0= ruleEString ) )
+ // InternalRBAModel.g:2611:10: (lv_description_6_0= ruleEString )
+ {
+ // InternalRBAModel.g:2611:10: (lv_description_6_0= ruleEString )
+ // InternalRBAModel.g:2612:11: lv_description_6_0= ruleEString
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getAreaSetAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+
+ }
+ pushFollow(FOLLOW_34);
+ lv_description_6_0=ruleEString();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getAreaSetRule());
+ }
+ set(
+ current,
+ "description",
+ lv_description_6_0,
+ "rba.tool.editor.RBAModel.EString");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getAreaSetAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:2635:4: ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) )
+ {
+ // InternalRBAModel.g:2635:4: ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) )
+ // InternalRBAModel.g:2636:5: {...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getAreaSetAccess().getUnorderedGroup_4(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleAreaSet", "getUnorderedGroupHelper().canSelect(grammarAccess.getAreaSetAccess().getUnorderedGroup_4(), 1)");
+ }
+ // InternalRBAModel.g:2636:104: ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) )
+ // InternalRBAModel.g:2637:6: ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getAreaSetAccess().getUnorderedGroup_4(), 1);
+ // InternalRBAModel.g:2640:9: ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) )
+ // InternalRBAModel.g:2640:10: {...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleAreaSet", "true");
+ }
+ // InternalRBAModel.g:2640:19: (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' )
+ // InternalRBAModel.g:2640:20: otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']'
+ {
+ otherlv_7=(Token)match(input,55,FOLLOW_29); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_7, grammarAccess.getAreaSetAccess().getTargetKeyword_4_1_0());
+
+ }
+ otherlv_8=(Token)match(input,45,FOLLOW_30); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_8, grammarAccess.getAreaSetAccess().getLeftSquareBracketKeyword_4_1_1());
+
+ }
+ // InternalRBAModel.g:2648:9: ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )?
+ int alt43=2;
+ int LA43_0 = input.LA(1);
+
+ if ( (LA43_0==RULE_ID) ) {
+ alt43=1;
+ }
+ switch (alt43) {
+ case 1 :
+ // InternalRBAModel.g:2649:10: ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )*
+ {
+ // InternalRBAModel.g:2649:10: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:2650:11: ( ruleQualifiedName )
+ {
+ // InternalRBAModel.g:2650:11: ( ruleQualifiedName )
+ // InternalRBAModel.g:2651:12: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getAreaSetRule());
+ }
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getAreaSetAccess().getTargetAbstractAllocatableCrossReference_4_1_2_0_0());
+
+ }
+ pushFollow(FOLLOW_31);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // InternalRBAModel.g:2665:10: (otherlv_10= ',' ( ( ruleQualifiedName ) ) )*
+ loop42:
+ do {
+ int alt42=2;
+ int LA42_0 = input.LA(1);
+
+ if ( (LA42_0==27) ) {
+ alt42=1;
+ }
+
+
+ switch (alt42) {
+ case 1 :
+ // InternalRBAModel.g:2666:11: otherlv_10= ',' ( ( ruleQualifiedName ) )
+ {
+ otherlv_10=(Token)match(input,27,FOLLOW_3); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_10, grammarAccess.getAreaSetAccess().getCommaKeyword_4_1_2_1_0());
+
+ }
+ // InternalRBAModel.g:2670:11: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:2671:12: ( ruleQualifiedName )
+ {
+ // InternalRBAModel.g:2671:12: ( ruleQualifiedName )
+ // InternalRBAModel.g:2672:13: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getAreaSetRule());
+ }
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getAreaSetAccess().getTargetAbstractAllocatableCrossReference_4_1_2_1_1_0());
+
+ }
+ pushFollow(FOLLOW_31);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop42;
+ }
+ } while (true);
+
+
+ }
+ break;
+
+ }
+
+ otherlv_12=(Token)match(input,46,FOLLOW_34); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_12, grammarAccess.getAreaSetAccess().getRightSquareBracketKeyword_4_1_3());
+
+ }
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getAreaSetAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop44;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().leave(grammarAccess.getAreaSetAccess().getUnorderedGroup_4());
+
+ }
+
+ otherlv_13=(Token)match(input,28,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_13, grammarAccess.getAreaSetAccess().getRightCurlyBracketKeyword_5());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleAreaSet"
+
+
+ // $ANTLR start "entryRuleZoneSet"
+ // InternalRBAModel.g:2713:1: entryRuleZoneSet returns [EObject current=null] : iv_ruleZoneSet= ruleZoneSet EOF ;
+ public final EObject entryRuleZoneSet() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleZoneSet = null;
+
+
+ try {
+ // InternalRBAModel.g:2713:48: (iv_ruleZoneSet= ruleZoneSet EOF )
+ // InternalRBAModel.g:2714:2: iv_ruleZoneSet= ruleZoneSet EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getZoneSetRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleZoneSet=ruleZoneSet();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleZoneSet;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleZoneSet"
+
+
+ // $ANTLR start "ruleZoneSet"
+ // InternalRBAModel.g:2720:1: ruleZoneSet returns [EObject current=null] : ( () otherlv_1= 'ZoneSet' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) ) )* ) ) ) otherlv_13= '}' ) ;
+ public final EObject ruleZoneSet() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_3=null;
+ Token otherlv_5=null;
+ Token otherlv_7=null;
+ Token otherlv_8=null;
+ Token otherlv_10=null;
+ Token otherlv_12=null;
+ Token otherlv_13=null;
+ AntlrDatatypeRuleToken lv_name_2_0 = null;
+
+ AntlrDatatypeRuleToken lv_description_6_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:2726:2: ( ( () otherlv_1= 'ZoneSet' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) ) )* ) ) ) otherlv_13= '}' ) )
+ // InternalRBAModel.g:2727:2: ( () otherlv_1= 'ZoneSet' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) ) )* ) ) ) otherlv_13= '}' )
+ {
+ // InternalRBAModel.g:2727:2: ( () otherlv_1= 'ZoneSet' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) ) )* ) ) ) otherlv_13= '}' )
+ // InternalRBAModel.g:2728:3: () otherlv_1= 'ZoneSet' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) ) )* ) ) ) otherlv_13= '}'
+ {
+ // InternalRBAModel.g:2728:3: ()
+ // InternalRBAModel.g:2729:4:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getZoneSetAccess().getZoneSetAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,56,FOLLOW_3); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getZoneSetAccess().getZoneSetKeyword_1());
+
+ }
+ // InternalRBAModel.g:2739:3: ( (lv_name_2_0= ruleQualifiedName ) )
+ // InternalRBAModel.g:2740:4: (lv_name_2_0= ruleQualifiedName )
+ {
+ // InternalRBAModel.g:2740:4: (lv_name_2_0= ruleQualifiedName )
+ // InternalRBAModel.g:2741:5: lv_name_2_0= ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getZoneSetAccess().getNameQualifiedNameParserRuleCall_2_0());
+
+ }
+ pushFollow(FOLLOW_15);
+ lv_name_2_0=ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getZoneSetRule());
+ }
+ set(
+ current,
+ "name",
+ lv_name_2_0,
+ "rba.tool.editor.RBAModel.QualifiedName");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_3=(Token)match(input,26,FOLLOW_34); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_3, grammarAccess.getZoneSetAccess().getLeftCurlyBracketKeyword_3());
+
+ }
+ // InternalRBAModel.g:2762:3: ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) ) )* ) ) )
+ // InternalRBAModel.g:2763:4: ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) ) )* ) )
+ {
+ // InternalRBAModel.g:2763:4: ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) ) )* ) )
+ // InternalRBAModel.g:2764:5: ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) ) )* )
+ {
+ getUnorderedGroupHelper().enter(grammarAccess.getZoneSetAccess().getUnorderedGroup_4());
+ // InternalRBAModel.g:2767:5: ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) ) )* )
+ // InternalRBAModel.g:2768:6: ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) ) )*
+ {
+ // InternalRBAModel.g:2768:6: ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) ) )*
+ loop47:
+ do {
+ int alt47=3;
+ int LA47_0 = input.LA(1);
+
+ if ( LA47_0 == 30 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneSetAccess().getUnorderedGroup_4(), 0) ) {
+ alt47=1;
+ }
+ else if ( LA47_0 == 55 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneSetAccess().getUnorderedGroup_4(), 1) ) {
+ alt47=2;
+ }
+
+
+ switch (alt47) {
+ case 1 :
+ // InternalRBAModel.g:2769:4: ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) )
+ {
+ // InternalRBAModel.g:2769:4: ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) )
+ // InternalRBAModel.g:2770:5: {...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getZoneSetAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleZoneSet", "getUnorderedGroupHelper().canSelect(grammarAccess.getZoneSetAccess().getUnorderedGroup_4(), 0)");
+ }
+ // InternalRBAModel.g:2770:104: ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) )
+ // InternalRBAModel.g:2771:6: ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getZoneSetAccess().getUnorderedGroup_4(), 0);
+ // InternalRBAModel.g:2774:9: ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) )
+ // InternalRBAModel.g:2774:10: {...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleZoneSet", "true");
+ }
+ // InternalRBAModel.g:2774:19: (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) )
+ // InternalRBAModel.g:2774:20: otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) )
+ {
+ otherlv_5=(Token)match(input,30,FOLLOW_14); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_5, grammarAccess.getZoneSetAccess().getDescriptionKeyword_4_0_0());
+
+ }
+ // InternalRBAModel.g:2778:9: ( (lv_description_6_0= ruleEString ) )
+ // InternalRBAModel.g:2779:10: (lv_description_6_0= ruleEString )
+ {
+ // InternalRBAModel.g:2779:10: (lv_description_6_0= ruleEString )
+ // InternalRBAModel.g:2780:11: lv_description_6_0= ruleEString
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getZoneSetAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+
+ }
+ pushFollow(FOLLOW_34);
+ lv_description_6_0=ruleEString();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getZoneSetRule());
+ }
+ set(
+ current,
+ "description",
+ lv_description_6_0,
+ "rba.tool.editor.RBAModel.EString");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getZoneSetAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:2803:4: ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) )
+ {
+ // InternalRBAModel.g:2803:4: ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) )
+ // InternalRBAModel.g:2804:5: {...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getZoneSetAccess().getUnorderedGroup_4(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleZoneSet", "getUnorderedGroupHelper().canSelect(grammarAccess.getZoneSetAccess().getUnorderedGroup_4(), 1)");
+ }
+ // InternalRBAModel.g:2804:104: ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) )
+ // InternalRBAModel.g:2805:6: ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getZoneSetAccess().getUnorderedGroup_4(), 1);
+ // InternalRBAModel.g:2808:9: ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) )
+ // InternalRBAModel.g:2808:10: {...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleZoneSet", "true");
+ }
+ // InternalRBAModel.g:2808:19: (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' )
+ // InternalRBAModel.g:2808:20: otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']'
+ {
+ otherlv_7=(Token)match(input,55,FOLLOW_29); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_7, grammarAccess.getZoneSetAccess().getTargetKeyword_4_1_0());
+
+ }
+ otherlv_8=(Token)match(input,45,FOLLOW_30); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_8, grammarAccess.getZoneSetAccess().getLeftSquareBracketKeyword_4_1_1());
+
+ }
+ // InternalRBAModel.g:2816:9: ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )?
+ int alt46=2;
+ int LA46_0 = input.LA(1);
+
+ if ( (LA46_0==RULE_ID) ) {
+ alt46=1;
+ }
+ switch (alt46) {
+ case 1 :
+ // InternalRBAModel.g:2817:10: ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )*
+ {
+ // InternalRBAModel.g:2817:10: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:2818:11: ( ruleQualifiedName )
+ {
+ // InternalRBAModel.g:2818:11: ( ruleQualifiedName )
+ // InternalRBAModel.g:2819:12: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getZoneSetRule());
+ }
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getZoneSetAccess().getTargetAbstractAllocatableCrossReference_4_1_2_0_0());
+
+ }
+ pushFollow(FOLLOW_31);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // InternalRBAModel.g:2833:10: (otherlv_10= ',' ( ( ruleQualifiedName ) ) )*
+ loop45:
+ do {
+ int alt45=2;
+ int LA45_0 = input.LA(1);
+
+ if ( (LA45_0==27) ) {
+ alt45=1;
+ }
+
+
+ switch (alt45) {
+ case 1 :
+ // InternalRBAModel.g:2834:11: otherlv_10= ',' ( ( ruleQualifiedName ) )
+ {
+ otherlv_10=(Token)match(input,27,FOLLOW_3); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_10, grammarAccess.getZoneSetAccess().getCommaKeyword_4_1_2_1_0());
+
+ }
+ // InternalRBAModel.g:2838:11: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:2839:12: ( ruleQualifiedName )
+ {
+ // InternalRBAModel.g:2839:12: ( ruleQualifiedName )
+ // InternalRBAModel.g:2840:13: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getZoneSetRule());
+ }
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getZoneSetAccess().getTargetAbstractAllocatableCrossReference_4_1_2_1_1_0());
+
+ }
+ pushFollow(FOLLOW_31);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop45;
+ }
+ } while (true);
+
+
+ }
+ break;
+
+ }
+
+ otherlv_12=(Token)match(input,46,FOLLOW_34); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_12, grammarAccess.getZoneSetAccess().getRightSquareBracketKeyword_4_1_3());
+
+ }
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getZoneSetAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop47;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().leave(grammarAccess.getZoneSetAccess().getUnorderedGroup_4());
+
+ }
+
+ otherlv_13=(Token)match(input,28,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_13, grammarAccess.getZoneSetAccess().getRightCurlyBracketKeyword_5());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleZoneSet"
+
+
+ // $ANTLR start "entryRuleCompositeArea"
+ // InternalRBAModel.g:2881:1: entryRuleCompositeArea returns [EObject current=null] : iv_ruleCompositeArea= ruleCompositeArea EOF ;
+ public final EObject entryRuleCompositeArea() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleCompositeArea = null;
+
+
+ try {
+ // InternalRBAModel.g:2881:54: (iv_ruleCompositeArea= ruleCompositeArea EOF )
+ // InternalRBAModel.g:2882:2: iv_ruleCompositeArea= ruleCompositeArea EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getCompositeAreaRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleCompositeArea=ruleCompositeArea();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleCompositeArea;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleCompositeArea"
+
+
+ // $ANTLR start "ruleCompositeArea"
+ // InternalRBAModel.g:2888:1: ruleCompositeArea returns [EObject current=null] : ( () otherlv_1= 'CompositeArea' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'layout:' ( (lv_layout_8_0= ruleLayoutManager ) ) ) ) ) ) )* ) ) ) otherlv_9= '}' ) ;
+ public final EObject ruleCompositeArea() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_3=null;
+ Token otherlv_5=null;
+ Token otherlv_7=null;
+ Token otherlv_9=null;
+ AntlrDatatypeRuleToken lv_name_2_0 = null;
+
+ AntlrDatatypeRuleToken lv_description_6_0 = null;
+
+ EObject lv_layout_8_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:2894:2: ( ( () otherlv_1= 'CompositeArea' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'layout:' ( (lv_layout_8_0= ruleLayoutManager ) ) ) ) ) ) )* ) ) ) otherlv_9= '}' ) )
+ // InternalRBAModel.g:2895:2: ( () otherlv_1= 'CompositeArea' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'layout:' ( (lv_layout_8_0= ruleLayoutManager ) ) ) ) ) ) )* ) ) ) otherlv_9= '}' )
+ {
+ // InternalRBAModel.g:2895:2: ( () otherlv_1= 'CompositeArea' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'layout:' ( (lv_layout_8_0= ruleLayoutManager ) ) ) ) ) ) )* ) ) ) otherlv_9= '}' )
+ // InternalRBAModel.g:2896:3: () otherlv_1= 'CompositeArea' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'layout:' ( (lv_layout_8_0= ruleLayoutManager ) ) ) ) ) ) )* ) ) ) otherlv_9= '}'
+ {
+ // InternalRBAModel.g:2896:3: ()
+ // InternalRBAModel.g:2897:4:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getCompositeAreaAccess().getCompositeAreaAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,57,FOLLOW_3); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getCompositeAreaAccess().getCompositeAreaKeyword_1());
+
+ }
+ // InternalRBAModel.g:2907:3: ( (lv_name_2_0= ruleQualifiedName ) )
+ // InternalRBAModel.g:2908:4: (lv_name_2_0= ruleQualifiedName )
+ {
+ // InternalRBAModel.g:2908:4: (lv_name_2_0= ruleQualifiedName )
+ // InternalRBAModel.g:2909:5: lv_name_2_0= ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCompositeAreaAccess().getNameQualifiedNameParserRuleCall_2_0());
+
+ }
+ pushFollow(FOLLOW_15);
+ lv_name_2_0=ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getCompositeAreaRule());
+ }
+ set(
+ current,
+ "name",
+ lv_name_2_0,
+ "rba.tool.editor.RBAModel.QualifiedName");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_3=(Token)match(input,26,FOLLOW_35); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_3, grammarAccess.getCompositeAreaAccess().getLeftCurlyBracketKeyword_3());
+
+ }
+ // InternalRBAModel.g:2930:3: ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'layout:' ( (lv_layout_8_0= ruleLayoutManager ) ) ) ) ) ) )* ) ) )
+ // InternalRBAModel.g:2931:4: ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'layout:' ( (lv_layout_8_0= ruleLayoutManager ) ) ) ) ) ) )* ) )
+ {
+ // InternalRBAModel.g:2931:4: ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'layout:' ( (lv_layout_8_0= ruleLayoutManager ) ) ) ) ) ) )* ) )
+ // InternalRBAModel.g:2932:5: ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'layout:' ( (lv_layout_8_0= ruleLayoutManager ) ) ) ) ) ) )* )
+ {
+ getUnorderedGroupHelper().enter(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4());
+ // InternalRBAModel.g:2935:5: ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'layout:' ( (lv_layout_8_0= ruleLayoutManager ) ) ) ) ) ) )* )
+ // InternalRBAModel.g:2936:6: ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'layout:' ( (lv_layout_8_0= ruleLayoutManager ) ) ) ) ) ) )*
+ {
+ // InternalRBAModel.g:2936:6: ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'layout:' ( (lv_layout_8_0= ruleLayoutManager ) ) ) ) ) ) )*
+ loop48:
+ do {
+ int alt48=3;
+ int LA48_0 = input.LA(1);
+
+ if ( LA48_0 == 30 && getUnorderedGroupHelper().canSelect(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4(), 0) ) {
+ alt48=1;
+ }
+ else if ( LA48_0 == 58 && getUnorderedGroupHelper().canSelect(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4(), 1) ) {
+ alt48=2;
+ }
+
+
+ switch (alt48) {
+ case 1 :
+ // InternalRBAModel.g:2937:4: ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) )
+ {
+ // InternalRBAModel.g:2937:4: ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) )
+ // InternalRBAModel.g:2938:5: {...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleCompositeArea", "getUnorderedGroupHelper().canSelect(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4(), 0)");
+ }
+ // InternalRBAModel.g:2938:110: ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) )
+ // InternalRBAModel.g:2939:6: ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4(), 0);
+ // InternalRBAModel.g:2942:9: ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) )
+ // InternalRBAModel.g:2942:10: {...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleCompositeArea", "true");
+ }
+ // InternalRBAModel.g:2942:19: (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) )
+ // InternalRBAModel.g:2942:20: otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) )
+ {
+ otherlv_5=(Token)match(input,30,FOLLOW_14); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_5, grammarAccess.getCompositeAreaAccess().getDescriptionKeyword_4_0_0());
+
+ }
+ // InternalRBAModel.g:2946:9: ( (lv_description_6_0= ruleEString ) )
+ // InternalRBAModel.g:2947:10: (lv_description_6_0= ruleEString )
+ {
+ // InternalRBAModel.g:2947:10: (lv_description_6_0= ruleEString )
+ // InternalRBAModel.g:2948:11: lv_description_6_0= ruleEString
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCompositeAreaAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+
+ }
+ pushFollow(FOLLOW_35);
+ lv_description_6_0=ruleEString();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getCompositeAreaRule());
+ }
+ set(
+ current,
+ "description",
+ lv_description_6_0,
+ "rba.tool.editor.RBAModel.EString");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:2971:4: ({...}? => ( ({...}? => (otherlv_7= 'layout:' ( (lv_layout_8_0= ruleLayoutManager ) ) ) ) ) )
+ {
+ // InternalRBAModel.g:2971:4: ({...}? => ( ({...}? => (otherlv_7= 'layout:' ( (lv_layout_8_0= ruleLayoutManager ) ) ) ) ) )
+ // InternalRBAModel.g:2972:5: {...}? => ( ({...}? => (otherlv_7= 'layout:' ( (lv_layout_8_0= ruleLayoutManager ) ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleCompositeArea", "getUnorderedGroupHelper().canSelect(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4(), 1)");
+ }
+ // InternalRBAModel.g:2972:110: ( ({...}? => (otherlv_7= 'layout:' ( (lv_layout_8_0= ruleLayoutManager ) ) ) ) )
+ // InternalRBAModel.g:2973:6: ({...}? => (otherlv_7= 'layout:' ( (lv_layout_8_0= ruleLayoutManager ) ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4(), 1);
+ // InternalRBAModel.g:2976:9: ({...}? => (otherlv_7= 'layout:' ( (lv_layout_8_0= ruleLayoutManager ) ) ) )
+ // InternalRBAModel.g:2976:10: {...}? => (otherlv_7= 'layout:' ( (lv_layout_8_0= ruleLayoutManager ) ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleCompositeArea", "true");
+ }
+ // InternalRBAModel.g:2976:19: (otherlv_7= 'layout:' ( (lv_layout_8_0= ruleLayoutManager ) ) )
+ // InternalRBAModel.g:2976:20: otherlv_7= 'layout:' ( (lv_layout_8_0= ruleLayoutManager ) )
+ {
+ otherlv_7=(Token)match(input,58,FOLLOW_36); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_7, grammarAccess.getCompositeAreaAccess().getLayoutKeyword_4_1_0());
+
+ }
+ // InternalRBAModel.g:2980:9: ( (lv_layout_8_0= ruleLayoutManager ) )
+ // InternalRBAModel.g:2981:10: (lv_layout_8_0= ruleLayoutManager )
+ {
+ // InternalRBAModel.g:2981:10: (lv_layout_8_0= ruleLayoutManager )
+ // InternalRBAModel.g:2982:11: lv_layout_8_0= ruleLayoutManager
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCompositeAreaAccess().getLayoutLayoutManagerParserRuleCall_4_1_1_0());
+
+ }
+ pushFollow(FOLLOW_35);
+ lv_layout_8_0=ruleLayoutManager();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getCompositeAreaRule());
+ }
+ set(
+ current,
+ "layout",
+ lv_layout_8_0,
+ "rba.tool.editor.RBAModel.LayoutManager");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop48;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().leave(grammarAccess.getCompositeAreaAccess().getUnorderedGroup_4());
+
+ }
+
+ otherlv_9=(Token)match(input,28,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_9, grammarAccess.getCompositeAreaAccess().getRightCurlyBracketKeyword_5());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleCompositeArea"
+
+
+ // $ANTLR start "entryRuleArea"
+ // InternalRBAModel.g:3020:1: entryRuleArea returns [EObject current=null] : iv_ruleArea= ruleArea EOF ;
+ public final EObject entryRuleArea() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleArea = null;
+
+
+ try {
+ // InternalRBAModel.g:3020:45: (iv_ruleArea= ruleArea EOF )
+ // InternalRBAModel.g:3021:2: iv_ruleArea= ruleArea EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getAreaRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleArea=ruleArea();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleArea;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleArea"
+
+
+ // $ANTLR start "ruleArea"
+ // InternalRBAModel.g:3027:1: ruleArea returns [EObject current=null] : ( () otherlv_1= 'Area' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'arbitrationPolicy:' ( (lv_arbitrationPolicy_8_0= ruleArbitrationPolicy ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_size_9_0= ruleSizeIdentifier ) ) )+ ) ) | ({...}? => ( ({...}? => ( (otherlv_10= 'visibility:' | otherlv_11= 'priority:' ) ( (lv_visibility_12_0= ruleVExpression ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_13= 'zorder:' ( (lv_zorder_14_0= ruleVExpression ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_tags_15_0= ruleTag ) ) )+ ) ) )* ) ) ) otherlv_16= '}' ) ;
+ public final EObject ruleArea() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_3=null;
+ Token otherlv_5=null;
+ Token otherlv_7=null;
+ Token otherlv_10=null;
+ Token otherlv_11=null;
+ Token otherlv_13=null;
+ Token otherlv_16=null;
+ AntlrDatatypeRuleToken lv_name_2_0 = null;
+
+ AntlrDatatypeRuleToken lv_description_6_0 = null;
+
+ Enumerator lv_arbitrationPolicy_8_0 = null;
+
+ EObject lv_size_9_0 = null;
+
+ EObject lv_visibility_12_0 = null;
+
+ EObject lv_zorder_14_0 = null;
+
+ EObject lv_tags_15_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:3033:2: ( ( () otherlv_1= 'Area' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'arbitrationPolicy:' ( (lv_arbitrationPolicy_8_0= ruleArbitrationPolicy ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_size_9_0= ruleSizeIdentifier ) ) )+ ) ) | ({...}? => ( ({...}? => ( (otherlv_10= 'visibility:' | otherlv_11= 'priority:' ) ( (lv_visibility_12_0= ruleVExpression ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_13= 'zorder:' ( (lv_zorder_14_0= ruleVExpression ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_tags_15_0= ruleTag ) ) )+ ) ) )* ) ) ) otherlv_16= '}' ) )
+ // InternalRBAModel.g:3034:2: ( () otherlv_1= 'Area' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'arbitrationPolicy:' ( (lv_arbitrationPolicy_8_0= ruleArbitrationPolicy ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_size_9_0= ruleSizeIdentifier ) ) )+ ) ) | ({...}? => ( ({...}? => ( (otherlv_10= 'visibility:' | otherlv_11= 'priority:' ) ( (lv_visibility_12_0= ruleVExpression ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_13= 'zorder:' ( (lv_zorder_14_0= ruleVExpression ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_tags_15_0= ruleTag ) ) )+ ) ) )* ) ) ) otherlv_16= '}' )
+ {
+ // InternalRBAModel.g:3034:2: ( () otherlv_1= 'Area' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'arbitrationPolicy:' ( (lv_arbitrationPolicy_8_0= ruleArbitrationPolicy ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_size_9_0= ruleSizeIdentifier ) ) )+ ) ) | ({...}? => ( ({...}? => ( (otherlv_10= 'visibility:' | otherlv_11= 'priority:' ) ( (lv_visibility_12_0= ruleVExpression ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_13= 'zorder:' ( (lv_zorder_14_0= ruleVExpression ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_tags_15_0= ruleTag ) ) )+ ) ) )* ) ) ) otherlv_16= '}' )
+ // InternalRBAModel.g:3035:3: () otherlv_1= 'Area' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'arbitrationPolicy:' ( (lv_arbitrationPolicy_8_0= ruleArbitrationPolicy ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_size_9_0= ruleSizeIdentifier ) ) )+ ) ) | ({...}? => ( ({...}? => ( (otherlv_10= 'visibility:' | otherlv_11= 'priority:' ) ( (lv_visibility_12_0= ruleVExpression ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_13= 'zorder:' ( (lv_zorder_14_0= ruleVExpression ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_tags_15_0= ruleTag ) ) )+ ) ) )* ) ) ) otherlv_16= '}'
+ {
+ // InternalRBAModel.g:3035:3: ()
+ // InternalRBAModel.g:3036:4:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getAreaAccess().getAreaAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,36,FOLLOW_3); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getAreaAccess().getAreaKeyword_1());
+
+ }
+ // InternalRBAModel.g:3046:3: ( (lv_name_2_0= ruleQualifiedName ) )
+ // InternalRBAModel.g:3047:4: (lv_name_2_0= ruleQualifiedName )
+ {
+ // InternalRBAModel.g:3047:4: (lv_name_2_0= ruleQualifiedName )
+ // InternalRBAModel.g:3048:5: lv_name_2_0= ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getAreaAccess().getNameQualifiedNameParserRuleCall_2_0());
+
+ }
+ pushFollow(FOLLOW_15);
+ lv_name_2_0=ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getAreaRule());
+ }
+ set(
+ current,
+ "name",
+ lv_name_2_0,
+ "rba.tool.editor.RBAModel.QualifiedName");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_3=(Token)match(input,26,FOLLOW_37); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_3, grammarAccess.getAreaAccess().getLeftCurlyBracketKeyword_3());
+
+ }
+ // InternalRBAModel.g:3069:3: ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'arbitrationPolicy:' ( (lv_arbitrationPolicy_8_0= ruleArbitrationPolicy ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_size_9_0= ruleSizeIdentifier ) ) )+ ) ) | ({...}? => ( ({...}? => ( (otherlv_10= 'visibility:' | otherlv_11= 'priority:' ) ( (lv_visibility_12_0= ruleVExpression ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_13= 'zorder:' ( (lv_zorder_14_0= ruleVExpression ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_tags_15_0= ruleTag ) ) )+ ) ) )* ) ) )
+ // InternalRBAModel.g:3070:4: ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'arbitrationPolicy:' ( (lv_arbitrationPolicy_8_0= ruleArbitrationPolicy ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_size_9_0= ruleSizeIdentifier ) ) )+ ) ) | ({...}? => ( ({...}? => ( (otherlv_10= 'visibility:' | otherlv_11= 'priority:' ) ( (lv_visibility_12_0= ruleVExpression ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_13= 'zorder:' ( (lv_zorder_14_0= ruleVExpression ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_tags_15_0= ruleTag ) ) )+ ) ) )* ) )
+ {
+ // InternalRBAModel.g:3070:4: ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'arbitrationPolicy:' ( (lv_arbitrationPolicy_8_0= ruleArbitrationPolicy ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_size_9_0= ruleSizeIdentifier ) ) )+ ) ) | ({...}? => ( ({...}? => ( (otherlv_10= 'visibility:' | otherlv_11= 'priority:' ) ( (lv_visibility_12_0= ruleVExpression ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_13= 'zorder:' ( (lv_zorder_14_0= ruleVExpression ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_tags_15_0= ruleTag ) ) )+ ) ) )* ) )
+ // InternalRBAModel.g:3071:5: ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'arbitrationPolicy:' ( (lv_arbitrationPolicy_8_0= ruleArbitrationPolicy ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_size_9_0= ruleSizeIdentifier ) ) )+ ) ) | ({...}? => ( ({...}? => ( (otherlv_10= 'visibility:' | otherlv_11= 'priority:' ) ( (lv_visibility_12_0= ruleVExpression ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_13= 'zorder:' ( (lv_zorder_14_0= ruleVExpression ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_tags_15_0= ruleTag ) ) )+ ) ) )* )
+ {
+ getUnorderedGroupHelper().enter(grammarAccess.getAreaAccess().getUnorderedGroup_4());
+ // InternalRBAModel.g:3074:5: ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'arbitrationPolicy:' ( (lv_arbitrationPolicy_8_0= ruleArbitrationPolicy ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_size_9_0= ruleSizeIdentifier ) ) )+ ) ) | ({...}? => ( ({...}? => ( (otherlv_10= 'visibility:' | otherlv_11= 'priority:' ) ( (lv_visibility_12_0= ruleVExpression ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_13= 'zorder:' ( (lv_zorder_14_0= ruleVExpression ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_tags_15_0= ruleTag ) ) )+ ) ) )* )
+ // InternalRBAModel.g:3075:6: ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'arbitrationPolicy:' ( (lv_arbitrationPolicy_8_0= ruleArbitrationPolicy ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_size_9_0= ruleSizeIdentifier ) ) )+ ) ) | ({...}? => ( ({...}? => ( (otherlv_10= 'visibility:' | otherlv_11= 'priority:' ) ( (lv_visibility_12_0= ruleVExpression ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_13= 'zorder:' ( (lv_zorder_14_0= ruleVExpression ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_tags_15_0= ruleTag ) ) )+ ) ) )*
+ {
+ // InternalRBAModel.g:3075:6: ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'arbitrationPolicy:' ( (lv_arbitrationPolicy_8_0= ruleArbitrationPolicy ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_size_9_0= ruleSizeIdentifier ) ) )+ ) ) | ({...}? => ( ({...}? => ( (otherlv_10= 'visibility:' | otherlv_11= 'priority:' ) ( (lv_visibility_12_0= ruleVExpression ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_13= 'zorder:' ( (lv_zorder_14_0= ruleVExpression ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_tags_15_0= ruleTag ) ) )+ ) ) )*
+ loop52:
+ do {
+ int alt52=7;
+ int LA52_0 = input.LA(1);
+
+ if ( LA52_0 == 30 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 0) ) {
+ alt52=1;
+ }
+ else if ( LA52_0 == 59 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 1) ) {
+ alt52=2;
+ }
+ else if ( ( LA52_0 == 47 || LA52_0 == 50 ) && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 2) ) {
+ alt52=3;
+ }
+ else if ( LA52_0 >= 60 && LA52_0 <= 61 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 3) ) {
+ alt52=4;
+ }
+ else if ( LA52_0 == 62 && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 4) ) {
+ alt52=5;
+ }
+ else if ( ( LA52_0 == 22 || LA52_0 == 24 ) && getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 5) ) {
+ alt52=6;
+ }
+
+
+ switch (alt52) {
+ case 1 :
+ // InternalRBAModel.g:3076:4: ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) )
+ {
+ // InternalRBAModel.g:3076:4: ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) )
+ // InternalRBAModel.g:3077:5: {...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleArea", "getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 0)");
+ }
+ // InternalRBAModel.g:3077:101: ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) )
+ // InternalRBAModel.g:3078:6: ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 0);
+ // InternalRBAModel.g:3081:9: ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) )
+ // InternalRBAModel.g:3081:10: {...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleArea", "true");
+ }
+ // InternalRBAModel.g:3081:19: (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) )
+ // InternalRBAModel.g:3081:20: otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) )
+ {
+ otherlv_5=(Token)match(input,30,FOLLOW_14); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_5, grammarAccess.getAreaAccess().getDescriptionKeyword_4_0_0());
+
+ }
+ // InternalRBAModel.g:3085:9: ( (lv_description_6_0= ruleEString ) )
+ // InternalRBAModel.g:3086:10: (lv_description_6_0= ruleEString )
+ {
+ // InternalRBAModel.g:3086:10: (lv_description_6_0= ruleEString )
+ // InternalRBAModel.g:3087:11: lv_description_6_0= ruleEString
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getAreaAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+
+ }
+ pushFollow(FOLLOW_37);
+ lv_description_6_0=ruleEString();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getAreaRule());
+ }
+ set(
+ current,
+ "description",
+ lv_description_6_0,
+ "rba.tool.editor.RBAModel.EString");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getAreaAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:3110:4: ({...}? => ( ({...}? => (otherlv_7= 'arbitrationPolicy:' ( (lv_arbitrationPolicy_8_0= ruleArbitrationPolicy ) ) ) ) ) )
+ {
+ // InternalRBAModel.g:3110:4: ({...}? => ( ({...}? => (otherlv_7= 'arbitrationPolicy:' ( (lv_arbitrationPolicy_8_0= ruleArbitrationPolicy ) ) ) ) ) )
+ // InternalRBAModel.g:3111:5: {...}? => ( ({...}? => (otherlv_7= 'arbitrationPolicy:' ( (lv_arbitrationPolicy_8_0= ruleArbitrationPolicy ) ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleArea", "getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 1)");
+ }
+ // InternalRBAModel.g:3111:101: ( ({...}? => (otherlv_7= 'arbitrationPolicy:' ( (lv_arbitrationPolicy_8_0= ruleArbitrationPolicy ) ) ) ) )
+ // InternalRBAModel.g:3112:6: ({...}? => (otherlv_7= 'arbitrationPolicy:' ( (lv_arbitrationPolicy_8_0= ruleArbitrationPolicy ) ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 1);
+ // InternalRBAModel.g:3115:9: ({...}? => (otherlv_7= 'arbitrationPolicy:' ( (lv_arbitrationPolicy_8_0= ruleArbitrationPolicy ) ) ) )
+ // InternalRBAModel.g:3115:10: {...}? => (otherlv_7= 'arbitrationPolicy:' ( (lv_arbitrationPolicy_8_0= ruleArbitrationPolicy ) ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleArea", "true");
+ }
+ // InternalRBAModel.g:3115:19: (otherlv_7= 'arbitrationPolicy:' ( (lv_arbitrationPolicy_8_0= ruleArbitrationPolicy ) ) )
+ // InternalRBAModel.g:3115:20: otherlv_7= 'arbitrationPolicy:' ( (lv_arbitrationPolicy_8_0= ruleArbitrationPolicy ) )
+ {
+ otherlv_7=(Token)match(input,59,FOLLOW_38); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_7, grammarAccess.getAreaAccess().getArbitrationPolicyKeyword_4_1_0());
+
+ }
+ // InternalRBAModel.g:3119:9: ( (lv_arbitrationPolicy_8_0= ruleArbitrationPolicy ) )
+ // InternalRBAModel.g:3120:10: (lv_arbitrationPolicy_8_0= ruleArbitrationPolicy )
+ {
+ // InternalRBAModel.g:3120:10: (lv_arbitrationPolicy_8_0= ruleArbitrationPolicy )
+ // InternalRBAModel.g:3121:11: lv_arbitrationPolicy_8_0= ruleArbitrationPolicy
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getAreaAccess().getArbitrationPolicyArbitrationPolicyEnumRuleCall_4_1_1_0());
+
+ }
+ pushFollow(FOLLOW_37);
+ lv_arbitrationPolicy_8_0=ruleArbitrationPolicy();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getAreaRule());
+ }
+ set(
+ current,
+ "arbitrationPolicy",
+ lv_arbitrationPolicy_8_0,
+ "rba.tool.editor.RBAModel.ArbitrationPolicy");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getAreaAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:3144:4: ({...}? => ( ({...}? => ( (lv_size_9_0= ruleSizeIdentifier ) ) )+ ) )
+ {
+ // InternalRBAModel.g:3144:4: ({...}? => ( ({...}? => ( (lv_size_9_0= ruleSizeIdentifier ) ) )+ ) )
+ // InternalRBAModel.g:3145:5: {...}? => ( ({...}? => ( (lv_size_9_0= ruleSizeIdentifier ) ) )+ )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 2) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleArea", "getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 2)");
+ }
+ // InternalRBAModel.g:3145:101: ( ({...}? => ( (lv_size_9_0= ruleSizeIdentifier ) ) )+ )
+ // InternalRBAModel.g:3146:6: ({...}? => ( (lv_size_9_0= ruleSizeIdentifier ) ) )+
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 2);
+ // InternalRBAModel.g:3149:9: ({...}? => ( (lv_size_9_0= ruleSizeIdentifier ) ) )+
+ int cnt49=0;
+ loop49:
+ do {
+ int alt49=2;
+ int LA49_0 = input.LA(1);
+
+ if ( (LA49_0==50) ) {
+ int LA49_2 = input.LA(2);
+
+ if ( ((true)) ) {
+ alt49=1;
+ }
+
+
+ }
+ else if ( (LA49_0==47) ) {
+ int LA49_3 = input.LA(2);
+
+ if ( ((true)) ) {
+ alt49=1;
+ }
+
+
+ }
+
+
+ switch (alt49) {
+ case 1 :
+ // InternalRBAModel.g:3149:10: {...}? => ( (lv_size_9_0= ruleSizeIdentifier ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleArea", "true");
+ }
+ // InternalRBAModel.g:3149:19: ( (lv_size_9_0= ruleSizeIdentifier ) )
+ // InternalRBAModel.g:3149:20: (lv_size_9_0= ruleSizeIdentifier )
+ {
+ // InternalRBAModel.g:3149:20: (lv_size_9_0= ruleSizeIdentifier )
+ // InternalRBAModel.g:3150:10: lv_size_9_0= ruleSizeIdentifier
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getAreaAccess().getSizeSizeIdentifierParserRuleCall_4_2_0());
+
+ }
+ pushFollow(FOLLOW_37);
+ lv_size_9_0=ruleSizeIdentifier();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getAreaRule());
+ }
+ add(
+ current,
+ "size",
+ lv_size_9_0,
+ "rba.tool.editor.RBAModel.SizeIdentifier");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ if ( cnt49 >= 1 ) break loop49;
+ if (state.backtracking>0) {state.failed=true; return current;}
+ EarlyExitException eee =
+ new EarlyExitException(49, input);
+ throw eee;
+ }
+ cnt49++;
+ } while (true);
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getAreaAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // InternalRBAModel.g:3172:4: ({...}? => ( ({...}? => ( (otherlv_10= 'visibility:' | otherlv_11= 'priority:' ) ( (lv_visibility_12_0= ruleVExpression ) ) ) ) ) )
+ {
+ // InternalRBAModel.g:3172:4: ({...}? => ( ({...}? => ( (otherlv_10= 'visibility:' | otherlv_11= 'priority:' ) ( (lv_visibility_12_0= ruleVExpression ) ) ) ) ) )
+ // InternalRBAModel.g:3173:5: {...}? => ( ({...}? => ( (otherlv_10= 'visibility:' | otherlv_11= 'priority:' ) ( (lv_visibility_12_0= ruleVExpression ) ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 3) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleArea", "getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 3)");
+ }
+ // InternalRBAModel.g:3173:101: ( ({...}? => ( (otherlv_10= 'visibility:' | otherlv_11= 'priority:' ) ( (lv_visibility_12_0= ruleVExpression ) ) ) ) )
+ // InternalRBAModel.g:3174:6: ({...}? => ( (otherlv_10= 'visibility:' | otherlv_11= 'priority:' ) ( (lv_visibility_12_0= ruleVExpression ) ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 3);
+ // InternalRBAModel.g:3177:9: ({...}? => ( (otherlv_10= 'visibility:' | otherlv_11= 'priority:' ) ( (lv_visibility_12_0= ruleVExpression ) ) ) )
+ // InternalRBAModel.g:3177:10: {...}? => ( (otherlv_10= 'visibility:' | otherlv_11= 'priority:' ) ( (lv_visibility_12_0= ruleVExpression ) ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleArea", "true");
+ }
+ // InternalRBAModel.g:3177:19: ( (otherlv_10= 'visibility:' | otherlv_11= 'priority:' ) ( (lv_visibility_12_0= ruleVExpression ) ) )
+ // InternalRBAModel.g:3177:20: (otherlv_10= 'visibility:' | otherlv_11= 'priority:' ) ( (lv_visibility_12_0= ruleVExpression ) )
+ {
+ // InternalRBAModel.g:3177:20: (otherlv_10= 'visibility:' | otherlv_11= 'priority:' )
+ int alt50=2;
+ int LA50_0 = input.LA(1);
+
+ if ( (LA50_0==60) ) {
+ alt50=1;
+ }
+ else if ( (LA50_0==61) ) {
+ alt50=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 50, 0, input);
+
+ throw nvae;
+ }
+ switch (alt50) {
+ case 1 :
+ // InternalRBAModel.g:3178:10: otherlv_10= 'visibility:'
+ {
+ otherlv_10=(Token)match(input,60,FOLLOW_39); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_10, grammarAccess.getAreaAccess().getVisibilityKeyword_4_3_0_0());
+
+ }
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:3183:10: otherlv_11= 'priority:'
+ {
+ otherlv_11=(Token)match(input,61,FOLLOW_39); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_11, grammarAccess.getAreaAccess().getPriorityKeyword_4_3_0_1());
+
+ }
+
+ }
+ break;
+
+ }
+
+ // InternalRBAModel.g:3188:9: ( (lv_visibility_12_0= ruleVExpression ) )
+ // InternalRBAModel.g:3189:10: (lv_visibility_12_0= ruleVExpression )
+ {
+ // InternalRBAModel.g:3189:10: (lv_visibility_12_0= ruleVExpression )
+ // InternalRBAModel.g:3190:11: lv_visibility_12_0= ruleVExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getAreaAccess().getVisibilityVExpressionParserRuleCall_4_3_1_0());
+
+ }
+ pushFollow(FOLLOW_37);
+ lv_visibility_12_0=ruleVExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getAreaRule());
+ }
+ set(
+ current,
+ "visibility",
+ lv_visibility_12_0,
+ "rba.tool.editor.RBAModel.VExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getAreaAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 5 :
+ // InternalRBAModel.g:3213:4: ({...}? => ( ({...}? => (otherlv_13= 'zorder:' ( (lv_zorder_14_0= ruleVExpression ) ) ) ) ) )
+ {
+ // InternalRBAModel.g:3213:4: ({...}? => ( ({...}? => (otherlv_13= 'zorder:' ( (lv_zorder_14_0= ruleVExpression ) ) ) ) ) )
+ // InternalRBAModel.g:3214:5: {...}? => ( ({...}? => (otherlv_13= 'zorder:' ( (lv_zorder_14_0= ruleVExpression ) ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 4) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleArea", "getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 4)");
+ }
+ // InternalRBAModel.g:3214:101: ( ({...}? => (otherlv_13= 'zorder:' ( (lv_zorder_14_0= ruleVExpression ) ) ) ) )
+ // InternalRBAModel.g:3215:6: ({...}? => (otherlv_13= 'zorder:' ( (lv_zorder_14_0= ruleVExpression ) ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 4);
+ // InternalRBAModel.g:3218:9: ({...}? => (otherlv_13= 'zorder:' ( (lv_zorder_14_0= ruleVExpression ) ) ) )
+ // InternalRBAModel.g:3218:10: {...}? => (otherlv_13= 'zorder:' ( (lv_zorder_14_0= ruleVExpression ) ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleArea", "true");
+ }
+ // InternalRBAModel.g:3218:19: (otherlv_13= 'zorder:' ( (lv_zorder_14_0= ruleVExpression ) ) )
+ // InternalRBAModel.g:3218:20: otherlv_13= 'zorder:' ( (lv_zorder_14_0= ruleVExpression ) )
+ {
+ otherlv_13=(Token)match(input,62,FOLLOW_39); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_13, grammarAccess.getAreaAccess().getZorderKeyword_4_4_0());
+
+ }
+ // InternalRBAModel.g:3222:9: ( (lv_zorder_14_0= ruleVExpression ) )
+ // InternalRBAModel.g:3223:10: (lv_zorder_14_0= ruleVExpression )
+ {
+ // InternalRBAModel.g:3223:10: (lv_zorder_14_0= ruleVExpression )
+ // InternalRBAModel.g:3224:11: lv_zorder_14_0= ruleVExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getAreaAccess().getZorderVExpressionParserRuleCall_4_4_1_0());
+
+ }
+ pushFollow(FOLLOW_37);
+ lv_zorder_14_0=ruleVExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getAreaRule());
+ }
+ set(
+ current,
+ "zorder",
+ lv_zorder_14_0,
+ "rba.tool.editor.RBAModel.VExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getAreaAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 6 :
+ // InternalRBAModel.g:3247:4: ({...}? => ( ({...}? => ( (lv_tags_15_0= ruleTag ) ) )+ ) )
+ {
+ // InternalRBAModel.g:3247:4: ({...}? => ( ({...}? => ( (lv_tags_15_0= ruleTag ) ) )+ ) )
+ // InternalRBAModel.g:3248:5: {...}? => ( ({...}? => ( (lv_tags_15_0= ruleTag ) ) )+ )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 5) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleArea", "getUnorderedGroupHelper().canSelect(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 5)");
+ }
+ // InternalRBAModel.g:3248:101: ( ({...}? => ( (lv_tags_15_0= ruleTag ) ) )+ )
+ // InternalRBAModel.g:3249:6: ({...}? => ( (lv_tags_15_0= ruleTag ) ) )+
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getAreaAccess().getUnorderedGroup_4(), 5);
+ // InternalRBAModel.g:3252:9: ({...}? => ( (lv_tags_15_0= ruleTag ) ) )+
+ int cnt51=0;
+ loop51:
+ do {
+ int alt51=2;
+ int LA51_0 = input.LA(1);
+
+ if ( (LA51_0==22) ) {
+ int LA51_2 = input.LA(2);
+
+ if ( ((true)) ) {
+ alt51=1;
+ }
+
+
+ }
+ else if ( (LA51_0==24) ) {
+ int LA51_3 = input.LA(2);
+
+ if ( ((true)) ) {
+ alt51=1;
+ }
+
+
+ }
+
+
+ switch (alt51) {
+ case 1 :
+ // InternalRBAModel.g:3252:10: {...}? => ( (lv_tags_15_0= ruleTag ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleArea", "true");
+ }
+ // InternalRBAModel.g:3252:19: ( (lv_tags_15_0= ruleTag ) )
+ // InternalRBAModel.g:3252:20: (lv_tags_15_0= ruleTag )
+ {
+ // InternalRBAModel.g:3252:20: (lv_tags_15_0= ruleTag )
+ // InternalRBAModel.g:3253:10: lv_tags_15_0= ruleTag
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getAreaAccess().getTagsTagParserRuleCall_4_5_0());
+
+ }
+ pushFollow(FOLLOW_37);
+ lv_tags_15_0=ruleTag();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getAreaRule());
+ }
+ add(
+ current,
+ "tags",
+ lv_tags_15_0,
+ "rba.tool.editor.RBAModel.Tag");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ if ( cnt51 >= 1 ) break loop51;
+ if (state.backtracking>0) {state.failed=true; return current;}
+ EarlyExitException eee =
+ new EarlyExitException(51, input);
+ throw eee;
+ }
+ cnt51++;
+ } while (true);
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getAreaAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop52;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().leave(grammarAccess.getAreaAccess().getUnorderedGroup_4());
+
+ }
+
+ otherlv_16=(Token)match(input,28,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_16, grammarAccess.getAreaAccess().getRightCurlyBracketKeyword_5());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleArea"
+
+
+ // $ANTLR start "entryRuleZone"
+ // InternalRBAModel.g:3290:1: entryRuleZone returns [EObject current=null] : iv_ruleZone= ruleZone EOF ;
+ public final EObject entryRuleZone() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleZone = null;
+
+
+ try {
+ // InternalRBAModel.g:3290:45: (iv_ruleZone= ruleZone EOF )
+ // InternalRBAModel.g:3291:2: iv_ruleZone= ruleZone EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getZoneRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleZone=ruleZone();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleZone;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleZone"
+
+
+ // $ANTLR start "ruleZone"
+ // InternalRBAModel.g:3297:1: ruleZone returns [EObject current=null] : ( () otherlv_1= 'Zone' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'arbitrationPolicy:' ( (lv_arbitrationPolicy_8_0= ruleArbitrationPolicy ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (otherlv_9= 'visibility:' | otherlv_10= 'priority:' ) ( (lv_visibility_11_0= ruleVExpression ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'attenuateValue:' ( (lv_attenuate_13_0= ruleIntegerValue ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_tags_14_0= ruleTag ) ) )+ ) ) )* ) ) ) otherlv_15= '}' ) ;
+ public final EObject ruleZone() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_3=null;
+ Token otherlv_5=null;
+ Token otherlv_7=null;
+ Token otherlv_9=null;
+ Token otherlv_10=null;
+ Token otherlv_12=null;
+ Token otherlv_15=null;
+ AntlrDatatypeRuleToken lv_name_2_0 = null;
+
+ AntlrDatatypeRuleToken lv_description_6_0 = null;
+
+ Enumerator lv_arbitrationPolicy_8_0 = null;
+
+ EObject lv_visibility_11_0 = null;
+
+ EObject lv_attenuate_13_0 = null;
+
+ EObject lv_tags_14_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:3303:2: ( ( () otherlv_1= 'Zone' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'arbitrationPolicy:' ( (lv_arbitrationPolicy_8_0= ruleArbitrationPolicy ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (otherlv_9= 'visibility:' | otherlv_10= 'priority:' ) ( (lv_visibility_11_0= ruleVExpression ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'attenuateValue:' ( (lv_attenuate_13_0= ruleIntegerValue ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_tags_14_0= ruleTag ) ) )+ ) ) )* ) ) ) otherlv_15= '}' ) )
+ // InternalRBAModel.g:3304:2: ( () otherlv_1= 'Zone' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'arbitrationPolicy:' ( (lv_arbitrationPolicy_8_0= ruleArbitrationPolicy ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (otherlv_9= 'visibility:' | otherlv_10= 'priority:' ) ( (lv_visibility_11_0= ruleVExpression ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'attenuateValue:' ( (lv_attenuate_13_0= ruleIntegerValue ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_tags_14_0= ruleTag ) ) )+ ) ) )* ) ) ) otherlv_15= '}' )
+ {
+ // InternalRBAModel.g:3304:2: ( () otherlv_1= 'Zone' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'arbitrationPolicy:' ( (lv_arbitrationPolicy_8_0= ruleArbitrationPolicy ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (otherlv_9= 'visibility:' | otherlv_10= 'priority:' ) ( (lv_visibility_11_0= ruleVExpression ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'attenuateValue:' ( (lv_attenuate_13_0= ruleIntegerValue ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_tags_14_0= ruleTag ) ) )+ ) ) )* ) ) ) otherlv_15= '}' )
+ // InternalRBAModel.g:3305:3: () otherlv_1= 'Zone' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'arbitrationPolicy:' ( (lv_arbitrationPolicy_8_0= ruleArbitrationPolicy ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (otherlv_9= 'visibility:' | otherlv_10= 'priority:' ) ( (lv_visibility_11_0= ruleVExpression ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'attenuateValue:' ( (lv_attenuate_13_0= ruleIntegerValue ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_tags_14_0= ruleTag ) ) )+ ) ) )* ) ) ) otherlv_15= '}'
+ {
+ // InternalRBAModel.g:3305:3: ()
+ // InternalRBAModel.g:3306:4:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getZoneAccess().getZoneAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,37,FOLLOW_3); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getZoneAccess().getZoneKeyword_1());
+
+ }
+ // InternalRBAModel.g:3316:3: ( (lv_name_2_0= ruleQualifiedName ) )
+ // InternalRBAModel.g:3317:4: (lv_name_2_0= ruleQualifiedName )
+ {
+ // InternalRBAModel.g:3317:4: (lv_name_2_0= ruleQualifiedName )
+ // InternalRBAModel.g:3318:5: lv_name_2_0= ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getZoneAccess().getNameQualifiedNameParserRuleCall_2_0());
+
+ }
+ pushFollow(FOLLOW_15);
+ lv_name_2_0=ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getZoneRule());
+ }
+ set(
+ current,
+ "name",
+ lv_name_2_0,
+ "rba.tool.editor.RBAModel.QualifiedName");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_3=(Token)match(input,26,FOLLOW_40); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_3, grammarAccess.getZoneAccess().getLeftCurlyBracketKeyword_3());
+
+ }
+ // InternalRBAModel.g:3339:3: ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'arbitrationPolicy:' ( (lv_arbitrationPolicy_8_0= ruleArbitrationPolicy ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (otherlv_9= 'visibility:' | otherlv_10= 'priority:' ) ( (lv_visibility_11_0= ruleVExpression ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'attenuateValue:' ( (lv_attenuate_13_0= ruleIntegerValue ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_tags_14_0= ruleTag ) ) )+ ) ) )* ) ) )
+ // InternalRBAModel.g:3340:4: ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'arbitrationPolicy:' ( (lv_arbitrationPolicy_8_0= ruleArbitrationPolicy ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (otherlv_9= 'visibility:' | otherlv_10= 'priority:' ) ( (lv_visibility_11_0= ruleVExpression ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'attenuateValue:' ( (lv_attenuate_13_0= ruleIntegerValue ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_tags_14_0= ruleTag ) ) )+ ) ) )* ) )
+ {
+ // InternalRBAModel.g:3340:4: ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'arbitrationPolicy:' ( (lv_arbitrationPolicy_8_0= ruleArbitrationPolicy ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (otherlv_9= 'visibility:' | otherlv_10= 'priority:' ) ( (lv_visibility_11_0= ruleVExpression ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'attenuateValue:' ( (lv_attenuate_13_0= ruleIntegerValue ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_tags_14_0= ruleTag ) ) )+ ) ) )* ) )
+ // InternalRBAModel.g:3341:5: ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'arbitrationPolicy:' ( (lv_arbitrationPolicy_8_0= ruleArbitrationPolicy ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (otherlv_9= 'visibility:' | otherlv_10= 'priority:' ) ( (lv_visibility_11_0= ruleVExpression ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'attenuateValue:' ( (lv_attenuate_13_0= ruleIntegerValue ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_tags_14_0= ruleTag ) ) )+ ) ) )* )
+ {
+ getUnorderedGroupHelper().enter(grammarAccess.getZoneAccess().getUnorderedGroup_4());
+ // InternalRBAModel.g:3344:5: ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'arbitrationPolicy:' ( (lv_arbitrationPolicy_8_0= ruleArbitrationPolicy ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (otherlv_9= 'visibility:' | otherlv_10= 'priority:' ) ( (lv_visibility_11_0= ruleVExpression ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'attenuateValue:' ( (lv_attenuate_13_0= ruleIntegerValue ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_tags_14_0= ruleTag ) ) )+ ) ) )* )
+ // InternalRBAModel.g:3345:6: ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'arbitrationPolicy:' ( (lv_arbitrationPolicy_8_0= ruleArbitrationPolicy ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (otherlv_9= 'visibility:' | otherlv_10= 'priority:' ) ( (lv_visibility_11_0= ruleVExpression ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'attenuateValue:' ( (lv_attenuate_13_0= ruleIntegerValue ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_tags_14_0= ruleTag ) ) )+ ) ) )*
+ {
+ // InternalRBAModel.g:3345:6: ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'arbitrationPolicy:' ( (lv_arbitrationPolicy_8_0= ruleArbitrationPolicy ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (otherlv_9= 'visibility:' | otherlv_10= 'priority:' ) ( (lv_visibility_11_0= ruleVExpression ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'attenuateValue:' ( (lv_attenuate_13_0= ruleIntegerValue ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_tags_14_0= ruleTag ) ) )+ ) ) )*
+ loop55:
+ do {
+ int alt55=6;
+ int LA55_0 = input.LA(1);
+
+ if ( LA55_0 == 30 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 0) ) {
+ alt55=1;
+ }
+ else if ( LA55_0 == 59 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 1) ) {
+ alt55=2;
+ }
+ else if ( LA55_0 >= 60 && LA55_0 <= 61 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 2) ) {
+ alt55=3;
+ }
+ else if ( LA55_0 == 63 && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 3) ) {
+ alt55=4;
+ }
+ else if ( ( LA55_0 == 22 || LA55_0 == 24 ) && getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 4) ) {
+ alt55=5;
+ }
+
+
+ switch (alt55) {
+ case 1 :
+ // InternalRBAModel.g:3346:4: ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) )
+ {
+ // InternalRBAModel.g:3346:4: ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) )
+ // InternalRBAModel.g:3347:5: {...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleZone", "getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 0)");
+ }
+ // InternalRBAModel.g:3347:101: ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) )
+ // InternalRBAModel.g:3348:6: ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 0);
+ // InternalRBAModel.g:3351:9: ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) )
+ // InternalRBAModel.g:3351:10: {...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleZone", "true");
+ }
+ // InternalRBAModel.g:3351:19: (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) )
+ // InternalRBAModel.g:3351:20: otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) )
+ {
+ otherlv_5=(Token)match(input,30,FOLLOW_14); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_5, grammarAccess.getZoneAccess().getDescriptionKeyword_4_0_0());
+
+ }
+ // InternalRBAModel.g:3355:9: ( (lv_description_6_0= ruleEString ) )
+ // InternalRBAModel.g:3356:10: (lv_description_6_0= ruleEString )
+ {
+ // InternalRBAModel.g:3356:10: (lv_description_6_0= ruleEString )
+ // InternalRBAModel.g:3357:11: lv_description_6_0= ruleEString
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getZoneAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+
+ }
+ pushFollow(FOLLOW_40);
+ lv_description_6_0=ruleEString();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getZoneRule());
+ }
+ set(
+ current,
+ "description",
+ lv_description_6_0,
+ "rba.tool.editor.RBAModel.EString");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getZoneAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:3380:4: ({...}? => ( ({...}? => (otherlv_7= 'arbitrationPolicy:' ( (lv_arbitrationPolicy_8_0= ruleArbitrationPolicy ) ) ) ) ) )
+ {
+ // InternalRBAModel.g:3380:4: ({...}? => ( ({...}? => (otherlv_7= 'arbitrationPolicy:' ( (lv_arbitrationPolicy_8_0= ruleArbitrationPolicy ) ) ) ) ) )
+ // InternalRBAModel.g:3381:5: {...}? => ( ({...}? => (otherlv_7= 'arbitrationPolicy:' ( (lv_arbitrationPolicy_8_0= ruleArbitrationPolicy ) ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleZone", "getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 1)");
+ }
+ // InternalRBAModel.g:3381:101: ( ({...}? => (otherlv_7= 'arbitrationPolicy:' ( (lv_arbitrationPolicy_8_0= ruleArbitrationPolicy ) ) ) ) )
+ // InternalRBAModel.g:3382:6: ({...}? => (otherlv_7= 'arbitrationPolicy:' ( (lv_arbitrationPolicy_8_0= ruleArbitrationPolicy ) ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 1);
+ // InternalRBAModel.g:3385:9: ({...}? => (otherlv_7= 'arbitrationPolicy:' ( (lv_arbitrationPolicy_8_0= ruleArbitrationPolicy ) ) ) )
+ // InternalRBAModel.g:3385:10: {...}? => (otherlv_7= 'arbitrationPolicy:' ( (lv_arbitrationPolicy_8_0= ruleArbitrationPolicy ) ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleZone", "true");
+ }
+ // InternalRBAModel.g:3385:19: (otherlv_7= 'arbitrationPolicy:' ( (lv_arbitrationPolicy_8_0= ruleArbitrationPolicy ) ) )
+ // InternalRBAModel.g:3385:20: otherlv_7= 'arbitrationPolicy:' ( (lv_arbitrationPolicy_8_0= ruleArbitrationPolicy ) )
+ {
+ otherlv_7=(Token)match(input,59,FOLLOW_38); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_7, grammarAccess.getZoneAccess().getArbitrationPolicyKeyword_4_1_0());
+
+ }
+ // InternalRBAModel.g:3389:9: ( (lv_arbitrationPolicy_8_0= ruleArbitrationPolicy ) )
+ // InternalRBAModel.g:3390:10: (lv_arbitrationPolicy_8_0= ruleArbitrationPolicy )
+ {
+ // InternalRBAModel.g:3390:10: (lv_arbitrationPolicy_8_0= ruleArbitrationPolicy )
+ // InternalRBAModel.g:3391:11: lv_arbitrationPolicy_8_0= ruleArbitrationPolicy
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getZoneAccess().getArbitrationPolicyArbitrationPolicyEnumRuleCall_4_1_1_0());
+
+ }
+ pushFollow(FOLLOW_40);
+ lv_arbitrationPolicy_8_0=ruleArbitrationPolicy();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getZoneRule());
+ }
+ set(
+ current,
+ "arbitrationPolicy",
+ lv_arbitrationPolicy_8_0,
+ "rba.tool.editor.RBAModel.ArbitrationPolicy");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getZoneAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:3414:4: ({...}? => ( ({...}? => ( (otherlv_9= 'visibility:' | otherlv_10= 'priority:' ) ( (lv_visibility_11_0= ruleVExpression ) ) ) ) ) )
+ {
+ // InternalRBAModel.g:3414:4: ({...}? => ( ({...}? => ( (otherlv_9= 'visibility:' | otherlv_10= 'priority:' ) ( (lv_visibility_11_0= ruleVExpression ) ) ) ) ) )
+ // InternalRBAModel.g:3415:5: {...}? => ( ({...}? => ( (otherlv_9= 'visibility:' | otherlv_10= 'priority:' ) ( (lv_visibility_11_0= ruleVExpression ) ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 2) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleZone", "getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 2)");
+ }
+ // InternalRBAModel.g:3415:101: ( ({...}? => ( (otherlv_9= 'visibility:' | otherlv_10= 'priority:' ) ( (lv_visibility_11_0= ruleVExpression ) ) ) ) )
+ // InternalRBAModel.g:3416:6: ({...}? => ( (otherlv_9= 'visibility:' | otherlv_10= 'priority:' ) ( (lv_visibility_11_0= ruleVExpression ) ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 2);
+ // InternalRBAModel.g:3419:9: ({...}? => ( (otherlv_9= 'visibility:' | otherlv_10= 'priority:' ) ( (lv_visibility_11_0= ruleVExpression ) ) ) )
+ // InternalRBAModel.g:3419:10: {...}? => ( (otherlv_9= 'visibility:' | otherlv_10= 'priority:' ) ( (lv_visibility_11_0= ruleVExpression ) ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleZone", "true");
+ }
+ // InternalRBAModel.g:3419:19: ( (otherlv_9= 'visibility:' | otherlv_10= 'priority:' ) ( (lv_visibility_11_0= ruleVExpression ) ) )
+ // InternalRBAModel.g:3419:20: (otherlv_9= 'visibility:' | otherlv_10= 'priority:' ) ( (lv_visibility_11_0= ruleVExpression ) )
+ {
+ // InternalRBAModel.g:3419:20: (otherlv_9= 'visibility:' | otherlv_10= 'priority:' )
+ int alt53=2;
+ int LA53_0 = input.LA(1);
+
+ if ( (LA53_0==60) ) {
+ alt53=1;
+ }
+ else if ( (LA53_0==61) ) {
+ alt53=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 53, 0, input);
+
+ throw nvae;
+ }
+ switch (alt53) {
+ case 1 :
+ // InternalRBAModel.g:3420:10: otherlv_9= 'visibility:'
+ {
+ otherlv_9=(Token)match(input,60,FOLLOW_39); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_9, grammarAccess.getZoneAccess().getVisibilityKeyword_4_2_0_0());
+
+ }
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:3425:10: otherlv_10= 'priority:'
+ {
+ otherlv_10=(Token)match(input,61,FOLLOW_39); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_10, grammarAccess.getZoneAccess().getPriorityKeyword_4_2_0_1());
+
+ }
+
+ }
+ break;
+
+ }
+
+ // InternalRBAModel.g:3430:9: ( (lv_visibility_11_0= ruleVExpression ) )
+ // InternalRBAModel.g:3431:10: (lv_visibility_11_0= ruleVExpression )
+ {
+ // InternalRBAModel.g:3431:10: (lv_visibility_11_0= ruleVExpression )
+ // InternalRBAModel.g:3432:11: lv_visibility_11_0= ruleVExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getZoneAccess().getVisibilityVExpressionParserRuleCall_4_2_1_0());
+
+ }
+ pushFollow(FOLLOW_40);
+ lv_visibility_11_0=ruleVExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getZoneRule());
+ }
+ set(
+ current,
+ "visibility",
+ lv_visibility_11_0,
+ "rba.tool.editor.RBAModel.VExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getZoneAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // InternalRBAModel.g:3455:4: ({...}? => ( ({...}? => (otherlv_12= 'attenuateValue:' ( (lv_attenuate_13_0= ruleIntegerValue ) ) ) ) ) )
+ {
+ // InternalRBAModel.g:3455:4: ({...}? => ( ({...}? => (otherlv_12= 'attenuateValue:' ( (lv_attenuate_13_0= ruleIntegerValue ) ) ) ) ) )
+ // InternalRBAModel.g:3456:5: {...}? => ( ({...}? => (otherlv_12= 'attenuateValue:' ( (lv_attenuate_13_0= ruleIntegerValue ) ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 3) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleZone", "getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 3)");
+ }
+ // InternalRBAModel.g:3456:101: ( ({...}? => (otherlv_12= 'attenuateValue:' ( (lv_attenuate_13_0= ruleIntegerValue ) ) ) ) )
+ // InternalRBAModel.g:3457:6: ({...}? => (otherlv_12= 'attenuateValue:' ( (lv_attenuate_13_0= ruleIntegerValue ) ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 3);
+ // InternalRBAModel.g:3460:9: ({...}? => (otherlv_12= 'attenuateValue:' ( (lv_attenuate_13_0= ruleIntegerValue ) ) ) )
+ // InternalRBAModel.g:3460:10: {...}? => (otherlv_12= 'attenuateValue:' ( (lv_attenuate_13_0= ruleIntegerValue ) ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleZone", "true");
+ }
+ // InternalRBAModel.g:3460:19: (otherlv_12= 'attenuateValue:' ( (lv_attenuate_13_0= ruleIntegerValue ) ) )
+ // InternalRBAModel.g:3460:20: otherlv_12= 'attenuateValue:' ( (lv_attenuate_13_0= ruleIntegerValue ) )
+ {
+ otherlv_12=(Token)match(input,63,FOLLOW_8); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_12, grammarAccess.getZoneAccess().getAttenuateValueKeyword_4_3_0());
+
+ }
+ // InternalRBAModel.g:3464:9: ( (lv_attenuate_13_0= ruleIntegerValue ) )
+ // InternalRBAModel.g:3465:10: (lv_attenuate_13_0= ruleIntegerValue )
+ {
+ // InternalRBAModel.g:3465:10: (lv_attenuate_13_0= ruleIntegerValue )
+ // InternalRBAModel.g:3466:11: lv_attenuate_13_0= ruleIntegerValue
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getZoneAccess().getAttenuateIntegerValueParserRuleCall_4_3_1_0());
+
+ }
+ pushFollow(FOLLOW_40);
+ lv_attenuate_13_0=ruleIntegerValue();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getZoneRule());
+ }
+ set(
+ current,
+ "attenuate",
+ lv_attenuate_13_0,
+ "rba.tool.editor.RBAModel.IntegerValue");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getZoneAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 5 :
+ // InternalRBAModel.g:3489:4: ({...}? => ( ({...}? => ( (lv_tags_14_0= ruleTag ) ) )+ ) )
+ {
+ // InternalRBAModel.g:3489:4: ({...}? => ( ({...}? => ( (lv_tags_14_0= ruleTag ) ) )+ ) )
+ // InternalRBAModel.g:3490:5: {...}? => ( ({...}? => ( (lv_tags_14_0= ruleTag ) ) )+ )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 4) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleZone", "getUnorderedGroupHelper().canSelect(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 4)");
+ }
+ // InternalRBAModel.g:3490:101: ( ({...}? => ( (lv_tags_14_0= ruleTag ) ) )+ )
+ // InternalRBAModel.g:3491:6: ({...}? => ( (lv_tags_14_0= ruleTag ) ) )+
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getZoneAccess().getUnorderedGroup_4(), 4);
+ // InternalRBAModel.g:3494:9: ({...}? => ( (lv_tags_14_0= ruleTag ) ) )+
+ int cnt54=0;
+ loop54:
+ do {
+ int alt54=2;
+ int LA54_0 = input.LA(1);
+
+ if ( (LA54_0==22) ) {
+ int LA54_2 = input.LA(2);
+
+ if ( ((true)) ) {
+ alt54=1;
+ }
+
+
+ }
+ else if ( (LA54_0==24) ) {
+ int LA54_3 = input.LA(2);
+
+ if ( ((true)) ) {
+ alt54=1;
+ }
+
+
+ }
+
+
+ switch (alt54) {
+ case 1 :
+ // InternalRBAModel.g:3494:10: {...}? => ( (lv_tags_14_0= ruleTag ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleZone", "true");
+ }
+ // InternalRBAModel.g:3494:19: ( (lv_tags_14_0= ruleTag ) )
+ // InternalRBAModel.g:3494:20: (lv_tags_14_0= ruleTag )
+ {
+ // InternalRBAModel.g:3494:20: (lv_tags_14_0= ruleTag )
+ // InternalRBAModel.g:3495:10: lv_tags_14_0= ruleTag
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getZoneAccess().getTagsTagParserRuleCall_4_4_0());
+
+ }
+ pushFollow(FOLLOW_40);
+ lv_tags_14_0=ruleTag();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getZoneRule());
+ }
+ add(
+ current,
+ "tags",
+ lv_tags_14_0,
+ "rba.tool.editor.RBAModel.Tag");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ if ( cnt54 >= 1 ) break loop54;
+ if (state.backtracking>0) {state.failed=true; return current;}
+ EarlyExitException eee =
+ new EarlyExitException(54, input);
+ throw eee;
+ }
+ cnt54++;
+ } while (true);
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getZoneAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop55;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().leave(grammarAccess.getZoneAccess().getUnorderedGroup_4());
+
+ }
+
+ otherlv_15=(Token)match(input,28,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_15, grammarAccess.getZoneAccess().getRightCurlyBracketKeyword_5());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleZone"
+
+
+ // $ANTLR start "entryRuleViewContentState"
+ // InternalRBAModel.g:3532:1: entryRuleViewContentState returns [EObject current=null] : iv_ruleViewContentState= ruleViewContentState EOF ;
+ public final EObject entryRuleViewContentState() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleViewContentState = null;
+
+
+ try {
+ // InternalRBAModel.g:3532:57: (iv_ruleViewContentState= ruleViewContentState EOF )
+ // InternalRBAModel.g:3533:2: iv_ruleViewContentState= ruleViewContentState EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getViewContentStateRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleViewContentState=ruleViewContentState();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleViewContentState;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleViewContentState"
+
+
+ // $ANTLR start "ruleViewContentState"
+ // InternalRBAModel.g:3539:1: ruleViewContentState returns [EObject current=null] : ( () otherlv_1= 'State' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (otherlv_7= 'priority:' | otherlv_8= 'value:' ) ( (lv_value_9_0= ruleVExpression ) ) ) ) ) ) )* ) ) ) otherlv_10= '}' ) ;
+ public final EObject ruleViewContentState() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_3=null;
+ Token otherlv_5=null;
+ Token otherlv_7=null;
+ Token otherlv_8=null;
+ Token otherlv_10=null;
+ AntlrDatatypeRuleToken lv_name_2_0 = null;
+
+ AntlrDatatypeRuleToken lv_description_6_0 = null;
+
+ EObject lv_value_9_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:3545:2: ( ( () otherlv_1= 'State' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (otherlv_7= 'priority:' | otherlv_8= 'value:' ) ( (lv_value_9_0= ruleVExpression ) ) ) ) ) ) )* ) ) ) otherlv_10= '}' ) )
+ // InternalRBAModel.g:3546:2: ( () otherlv_1= 'State' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (otherlv_7= 'priority:' | otherlv_8= 'value:' ) ( (lv_value_9_0= ruleVExpression ) ) ) ) ) ) )* ) ) ) otherlv_10= '}' )
+ {
+ // InternalRBAModel.g:3546:2: ( () otherlv_1= 'State' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (otherlv_7= 'priority:' | otherlv_8= 'value:' ) ( (lv_value_9_0= ruleVExpression ) ) ) ) ) ) )* ) ) ) otherlv_10= '}' )
+ // InternalRBAModel.g:3547:3: () otherlv_1= 'State' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (otherlv_7= 'priority:' | otherlv_8= 'value:' ) ( (lv_value_9_0= ruleVExpression ) ) ) ) ) ) )* ) ) ) otherlv_10= '}'
+ {
+ // InternalRBAModel.g:3547:3: ()
+ // InternalRBAModel.g:3548:4:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getViewContentStateAccess().getViewContentStateAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,64,FOLLOW_3); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getViewContentStateAccess().getStateKeyword_1());
+
+ }
+ // InternalRBAModel.g:3558:3: ( (lv_name_2_0= ruleQualifiedName ) )
+ // InternalRBAModel.g:3559:4: (lv_name_2_0= ruleQualifiedName )
+ {
+ // InternalRBAModel.g:3559:4: (lv_name_2_0= ruleQualifiedName )
+ // InternalRBAModel.g:3560:5: lv_name_2_0= ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getViewContentStateAccess().getNameQualifiedNameParserRuleCall_2_0());
+
+ }
+ pushFollow(FOLLOW_15);
+ lv_name_2_0=ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getViewContentStateRule());
+ }
+ set(
+ current,
+ "name",
+ lv_name_2_0,
+ "rba.tool.editor.RBAModel.QualifiedName");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_3=(Token)match(input,26,FOLLOW_41); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_3, grammarAccess.getViewContentStateAccess().getLeftCurlyBracketKeyword_3());
+
+ }
+ // InternalRBAModel.g:3581:3: ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (otherlv_7= 'priority:' | otherlv_8= 'value:' ) ( (lv_value_9_0= ruleVExpression ) ) ) ) ) ) )* ) ) )
+ // InternalRBAModel.g:3582:4: ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (otherlv_7= 'priority:' | otherlv_8= 'value:' ) ( (lv_value_9_0= ruleVExpression ) ) ) ) ) ) )* ) )
+ {
+ // InternalRBAModel.g:3582:4: ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (otherlv_7= 'priority:' | otherlv_8= 'value:' ) ( (lv_value_9_0= ruleVExpression ) ) ) ) ) ) )* ) )
+ // InternalRBAModel.g:3583:5: ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (otherlv_7= 'priority:' | otherlv_8= 'value:' ) ( (lv_value_9_0= ruleVExpression ) ) ) ) ) ) )* )
+ {
+ getUnorderedGroupHelper().enter(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4());
+ // InternalRBAModel.g:3586:5: ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (otherlv_7= 'priority:' | otherlv_8= 'value:' ) ( (lv_value_9_0= ruleVExpression ) ) ) ) ) ) )* )
+ // InternalRBAModel.g:3587:6: ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (otherlv_7= 'priority:' | otherlv_8= 'value:' ) ( (lv_value_9_0= ruleVExpression ) ) ) ) ) ) )*
+ {
+ // InternalRBAModel.g:3587:6: ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (otherlv_7= 'priority:' | otherlv_8= 'value:' ) ( (lv_value_9_0= ruleVExpression ) ) ) ) ) ) )*
+ loop57:
+ do {
+ int alt57=3;
+ int LA57_0 = input.LA(1);
+
+ if ( LA57_0 == 30 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4(), 0) ) {
+ alt57=1;
+ }
+ else if ( ( LA57_0 == 61 || LA57_0 == 65 ) && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4(), 1) ) {
+ alt57=2;
+ }
+
+
+ switch (alt57) {
+ case 1 :
+ // InternalRBAModel.g:3588:4: ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) )
+ {
+ // InternalRBAModel.g:3588:4: ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) )
+ // InternalRBAModel.g:3589:5: {...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleViewContentState", "getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4(), 0)");
+ }
+ // InternalRBAModel.g:3589:113: ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) )
+ // InternalRBAModel.g:3590:6: ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4(), 0);
+ // InternalRBAModel.g:3593:9: ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) )
+ // InternalRBAModel.g:3593:10: {...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleViewContentState", "true");
+ }
+ // InternalRBAModel.g:3593:19: (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) )
+ // InternalRBAModel.g:3593:20: otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) )
+ {
+ otherlv_5=(Token)match(input,30,FOLLOW_14); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_5, grammarAccess.getViewContentStateAccess().getDescriptionKeyword_4_0_0());
+
+ }
+ // InternalRBAModel.g:3597:9: ( (lv_description_6_0= ruleEString ) )
+ // InternalRBAModel.g:3598:10: (lv_description_6_0= ruleEString )
+ {
+ // InternalRBAModel.g:3598:10: (lv_description_6_0= ruleEString )
+ // InternalRBAModel.g:3599:11: lv_description_6_0= ruleEString
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getViewContentStateAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+
+ }
+ pushFollow(FOLLOW_41);
+ lv_description_6_0=ruleEString();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getViewContentStateRule());
+ }
+ set(
+ current,
+ "description",
+ lv_description_6_0,
+ "rba.tool.editor.RBAModel.EString");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:3622:4: ({...}? => ( ({...}? => ( (otherlv_7= 'priority:' | otherlv_8= 'value:' ) ( (lv_value_9_0= ruleVExpression ) ) ) ) ) )
+ {
+ // InternalRBAModel.g:3622:4: ({...}? => ( ({...}? => ( (otherlv_7= 'priority:' | otherlv_8= 'value:' ) ( (lv_value_9_0= ruleVExpression ) ) ) ) ) )
+ // InternalRBAModel.g:3623:5: {...}? => ( ({...}? => ( (otherlv_7= 'priority:' | otherlv_8= 'value:' ) ( (lv_value_9_0= ruleVExpression ) ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleViewContentState", "getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4(), 1)");
+ }
+ // InternalRBAModel.g:3623:113: ( ({...}? => ( (otherlv_7= 'priority:' | otherlv_8= 'value:' ) ( (lv_value_9_0= ruleVExpression ) ) ) ) )
+ // InternalRBAModel.g:3624:6: ({...}? => ( (otherlv_7= 'priority:' | otherlv_8= 'value:' ) ( (lv_value_9_0= ruleVExpression ) ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4(), 1);
+ // InternalRBAModel.g:3627:9: ({...}? => ( (otherlv_7= 'priority:' | otherlv_8= 'value:' ) ( (lv_value_9_0= ruleVExpression ) ) ) )
+ // InternalRBAModel.g:3627:10: {...}? => ( (otherlv_7= 'priority:' | otherlv_8= 'value:' ) ( (lv_value_9_0= ruleVExpression ) ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleViewContentState", "true");
+ }
+ // InternalRBAModel.g:3627:19: ( (otherlv_7= 'priority:' | otherlv_8= 'value:' ) ( (lv_value_9_0= ruleVExpression ) ) )
+ // InternalRBAModel.g:3627:20: (otherlv_7= 'priority:' | otherlv_8= 'value:' ) ( (lv_value_9_0= ruleVExpression ) )
+ {
+ // InternalRBAModel.g:3627:20: (otherlv_7= 'priority:' | otherlv_8= 'value:' )
+ int alt56=2;
+ int LA56_0 = input.LA(1);
+
+ if ( (LA56_0==61) ) {
+ alt56=1;
+ }
+ else if ( (LA56_0==65) ) {
+ alt56=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 56, 0, input);
+
+ throw nvae;
+ }
+ switch (alt56) {
+ case 1 :
+ // InternalRBAModel.g:3628:10: otherlv_7= 'priority:'
+ {
+ otherlv_7=(Token)match(input,61,FOLLOW_39); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_7, grammarAccess.getViewContentStateAccess().getPriorityKeyword_4_1_0_0());
+
+ }
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:3633:10: otherlv_8= 'value:'
+ {
+ otherlv_8=(Token)match(input,65,FOLLOW_39); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_8, grammarAccess.getViewContentStateAccess().getValueKeyword_4_1_0_1());
+
+ }
+
+ }
+ break;
+
+ }
+
+ // InternalRBAModel.g:3638:9: ( (lv_value_9_0= ruleVExpression ) )
+ // InternalRBAModel.g:3639:10: (lv_value_9_0= ruleVExpression )
+ {
+ // InternalRBAModel.g:3639:10: (lv_value_9_0= ruleVExpression )
+ // InternalRBAModel.g:3640:11: lv_value_9_0= ruleVExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getViewContentStateAccess().getValueVExpressionParserRuleCall_4_1_1_0());
+
+ }
+ pushFollow(FOLLOW_41);
+ lv_value_9_0=ruleVExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getViewContentStateRule());
+ }
+ set(
+ current,
+ "value",
+ lv_value_9_0,
+ "rba.tool.editor.RBAModel.VExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop57;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().leave(grammarAccess.getViewContentStateAccess().getUnorderedGroup_4());
+
+ }
+
+ otherlv_10=(Token)match(input,28,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_10, grammarAccess.getViewContentStateAccess().getRightCurlyBracketKeyword_5());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleViewContentState"
+
+
+ // $ANTLR start "entryRuleSoundContentState"
+ // InternalRBAModel.g:3678:1: entryRuleSoundContentState returns [EObject current=null] : iv_ruleSoundContentState= ruleSoundContentState EOF ;
+ public final EObject entryRuleSoundContentState() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleSoundContentState = null;
+
+
+ try {
+ // InternalRBAModel.g:3678:58: (iv_ruleSoundContentState= ruleSoundContentState EOF )
+ // InternalRBAModel.g:3679:2: iv_ruleSoundContentState= ruleSoundContentState EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getSoundContentStateRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleSoundContentState=ruleSoundContentState();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleSoundContentState;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleSoundContentState"
+
+
+ // $ANTLR start "ruleSoundContentState"
+ // InternalRBAModel.g:3685:1: ruleSoundContentState returns [EObject current=null] : ( () otherlv_1= 'State' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (otherlv_7= 'priority:' | otherlv_8= 'value:' ) ( (lv_value_9_0= ruleVExpression ) ) ) ) ) ) )* ) ) ) otherlv_10= '}' ) ;
+ public final EObject ruleSoundContentState() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_3=null;
+ Token otherlv_5=null;
+ Token otherlv_7=null;
+ Token otherlv_8=null;
+ Token otherlv_10=null;
+ AntlrDatatypeRuleToken lv_name_2_0 = null;
+
+ AntlrDatatypeRuleToken lv_description_6_0 = null;
+
+ EObject lv_value_9_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:3691:2: ( ( () otherlv_1= 'State' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (otherlv_7= 'priority:' | otherlv_8= 'value:' ) ( (lv_value_9_0= ruleVExpression ) ) ) ) ) ) )* ) ) ) otherlv_10= '}' ) )
+ // InternalRBAModel.g:3692:2: ( () otherlv_1= 'State' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (otherlv_7= 'priority:' | otherlv_8= 'value:' ) ( (lv_value_9_0= ruleVExpression ) ) ) ) ) ) )* ) ) ) otherlv_10= '}' )
+ {
+ // InternalRBAModel.g:3692:2: ( () otherlv_1= 'State' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (otherlv_7= 'priority:' | otherlv_8= 'value:' ) ( (lv_value_9_0= ruleVExpression ) ) ) ) ) ) )* ) ) ) otherlv_10= '}' )
+ // InternalRBAModel.g:3693:3: () otherlv_1= 'State' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (otherlv_7= 'priority:' | otherlv_8= 'value:' ) ( (lv_value_9_0= ruleVExpression ) ) ) ) ) ) )* ) ) ) otherlv_10= '}'
+ {
+ // InternalRBAModel.g:3693:3: ()
+ // InternalRBAModel.g:3694:4:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getSoundContentStateAccess().getSoundContentStateAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,64,FOLLOW_3); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getSoundContentStateAccess().getStateKeyword_1());
+
+ }
+ // InternalRBAModel.g:3704:3: ( (lv_name_2_0= ruleQualifiedName ) )
+ // InternalRBAModel.g:3705:4: (lv_name_2_0= ruleQualifiedName )
+ {
+ // InternalRBAModel.g:3705:4: (lv_name_2_0= ruleQualifiedName )
+ // InternalRBAModel.g:3706:5: lv_name_2_0= ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getSoundContentStateAccess().getNameQualifiedNameParserRuleCall_2_0());
+
+ }
+ pushFollow(FOLLOW_15);
+ lv_name_2_0=ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSoundContentStateRule());
+ }
+ set(
+ current,
+ "name",
+ lv_name_2_0,
+ "rba.tool.editor.RBAModel.QualifiedName");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_3=(Token)match(input,26,FOLLOW_41); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_3, grammarAccess.getSoundContentStateAccess().getLeftCurlyBracketKeyword_3());
+
+ }
+ // InternalRBAModel.g:3727:3: ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (otherlv_7= 'priority:' | otherlv_8= 'value:' ) ( (lv_value_9_0= ruleVExpression ) ) ) ) ) ) )* ) ) )
+ // InternalRBAModel.g:3728:4: ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (otherlv_7= 'priority:' | otherlv_8= 'value:' ) ( (lv_value_9_0= ruleVExpression ) ) ) ) ) ) )* ) )
+ {
+ // InternalRBAModel.g:3728:4: ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (otherlv_7= 'priority:' | otherlv_8= 'value:' ) ( (lv_value_9_0= ruleVExpression ) ) ) ) ) ) )* ) )
+ // InternalRBAModel.g:3729:5: ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (otherlv_7= 'priority:' | otherlv_8= 'value:' ) ( (lv_value_9_0= ruleVExpression ) ) ) ) ) ) )* )
+ {
+ getUnorderedGroupHelper().enter(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4());
+ // InternalRBAModel.g:3732:5: ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (otherlv_7= 'priority:' | otherlv_8= 'value:' ) ( (lv_value_9_0= ruleVExpression ) ) ) ) ) ) )* )
+ // InternalRBAModel.g:3733:6: ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (otherlv_7= 'priority:' | otherlv_8= 'value:' ) ( (lv_value_9_0= ruleVExpression ) ) ) ) ) ) )*
+ {
+ // InternalRBAModel.g:3733:6: ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (otherlv_7= 'priority:' | otherlv_8= 'value:' ) ( (lv_value_9_0= ruleVExpression ) ) ) ) ) ) )*
+ loop59:
+ do {
+ int alt59=3;
+ int LA59_0 = input.LA(1);
+
+ if ( LA59_0 == 30 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4(), 0) ) {
+ alt59=1;
+ }
+ else if ( ( LA59_0 == 61 || LA59_0 == 65 ) && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4(), 1) ) {
+ alt59=2;
+ }
+
+
+ switch (alt59) {
+ case 1 :
+ // InternalRBAModel.g:3734:4: ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) )
+ {
+ // InternalRBAModel.g:3734:4: ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) )
+ // InternalRBAModel.g:3735:5: {...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleSoundContentState", "getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4(), 0)");
+ }
+ // InternalRBAModel.g:3735:114: ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) )
+ // InternalRBAModel.g:3736:6: ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4(), 0);
+ // InternalRBAModel.g:3739:9: ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) )
+ // InternalRBAModel.g:3739:10: {...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleSoundContentState", "true");
+ }
+ // InternalRBAModel.g:3739:19: (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) )
+ // InternalRBAModel.g:3739:20: otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) )
+ {
+ otherlv_5=(Token)match(input,30,FOLLOW_14); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_5, grammarAccess.getSoundContentStateAccess().getDescriptionKeyword_4_0_0());
+
+ }
+ // InternalRBAModel.g:3743:9: ( (lv_description_6_0= ruleEString ) )
+ // InternalRBAModel.g:3744:10: (lv_description_6_0= ruleEString )
+ {
+ // InternalRBAModel.g:3744:10: (lv_description_6_0= ruleEString )
+ // InternalRBAModel.g:3745:11: lv_description_6_0= ruleEString
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getSoundContentStateAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+
+ }
+ pushFollow(FOLLOW_41);
+ lv_description_6_0=ruleEString();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSoundContentStateRule());
+ }
+ set(
+ current,
+ "description",
+ lv_description_6_0,
+ "rba.tool.editor.RBAModel.EString");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:3768:4: ({...}? => ( ({...}? => ( (otherlv_7= 'priority:' | otherlv_8= 'value:' ) ( (lv_value_9_0= ruleVExpression ) ) ) ) ) )
+ {
+ // InternalRBAModel.g:3768:4: ({...}? => ( ({...}? => ( (otherlv_7= 'priority:' | otherlv_8= 'value:' ) ( (lv_value_9_0= ruleVExpression ) ) ) ) ) )
+ // InternalRBAModel.g:3769:5: {...}? => ( ({...}? => ( (otherlv_7= 'priority:' | otherlv_8= 'value:' ) ( (lv_value_9_0= ruleVExpression ) ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleSoundContentState", "getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4(), 1)");
+ }
+ // InternalRBAModel.g:3769:114: ( ({...}? => ( (otherlv_7= 'priority:' | otherlv_8= 'value:' ) ( (lv_value_9_0= ruleVExpression ) ) ) ) )
+ // InternalRBAModel.g:3770:6: ({...}? => ( (otherlv_7= 'priority:' | otherlv_8= 'value:' ) ( (lv_value_9_0= ruleVExpression ) ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4(), 1);
+ // InternalRBAModel.g:3773:9: ({...}? => ( (otherlv_7= 'priority:' | otherlv_8= 'value:' ) ( (lv_value_9_0= ruleVExpression ) ) ) )
+ // InternalRBAModel.g:3773:10: {...}? => ( (otherlv_7= 'priority:' | otherlv_8= 'value:' ) ( (lv_value_9_0= ruleVExpression ) ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleSoundContentState", "true");
+ }
+ // InternalRBAModel.g:3773:19: ( (otherlv_7= 'priority:' | otherlv_8= 'value:' ) ( (lv_value_9_0= ruleVExpression ) ) )
+ // InternalRBAModel.g:3773:20: (otherlv_7= 'priority:' | otherlv_8= 'value:' ) ( (lv_value_9_0= ruleVExpression ) )
+ {
+ // InternalRBAModel.g:3773:20: (otherlv_7= 'priority:' | otherlv_8= 'value:' )
+ int alt58=2;
+ int LA58_0 = input.LA(1);
+
+ if ( (LA58_0==61) ) {
+ alt58=1;
+ }
+ else if ( (LA58_0==65) ) {
+ alt58=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 58, 0, input);
+
+ throw nvae;
+ }
+ switch (alt58) {
+ case 1 :
+ // InternalRBAModel.g:3774:10: otherlv_7= 'priority:'
+ {
+ otherlv_7=(Token)match(input,61,FOLLOW_39); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_7, grammarAccess.getSoundContentStateAccess().getPriorityKeyword_4_1_0_0());
+
+ }
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:3779:10: otherlv_8= 'value:'
+ {
+ otherlv_8=(Token)match(input,65,FOLLOW_39); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_8, grammarAccess.getSoundContentStateAccess().getValueKeyword_4_1_0_1());
+
+ }
+
+ }
+ break;
+
+ }
+
+ // InternalRBAModel.g:3784:9: ( (lv_value_9_0= ruleVExpression ) )
+ // InternalRBAModel.g:3785:10: (lv_value_9_0= ruleVExpression )
+ {
+ // InternalRBAModel.g:3785:10: (lv_value_9_0= ruleVExpression )
+ // InternalRBAModel.g:3786:11: lv_value_9_0= ruleVExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getSoundContentStateAccess().getValueVExpressionParserRuleCall_4_1_1_0());
+
+ }
+ pushFollow(FOLLOW_41);
+ lv_value_9_0=ruleVExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSoundContentStateRule());
+ }
+ set(
+ current,
+ "value",
+ lv_value_9_0,
+ "rba.tool.editor.RBAModel.VExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop59;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().leave(grammarAccess.getSoundContentStateAccess().getUnorderedGroup_4());
+
+ }
+
+ otherlv_10=(Token)match(input,28,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_10, grammarAccess.getSoundContentStateAccess().getRightCurlyBracketKeyword_5());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleSoundContentState"
+
+
+ // $ANTLR start "entryRuleProject"
+ // InternalRBAModel.g:3824:1: entryRuleProject returns [EObject current=null] : iv_ruleProject= ruleProject EOF ;
+ public final EObject entryRuleProject() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleProject = null;
+
+
+ try {
+ // InternalRBAModel.g:3824:48: (iv_ruleProject= ruleProject EOF )
+ // InternalRBAModel.g:3825:2: iv_ruleProject= ruleProject EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getProjectRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleProject=ruleProject();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleProject;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleProject"
+
+
+ // $ANTLR start "ruleProject"
+ // InternalRBAModel.g:3831:1: ruleProject returns [EObject current=null] : ( () otherlv_1= 'Project' ( (lv_dummyName_2_0= ruleQualifiedName ) )? otherlv_3= '{' otherlv_4= 'version:' ( (lv_version_5_0= ruleEString ) ) otherlv_6= '}' ) ;
+ public final EObject ruleProject() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_3=null;
+ Token otherlv_4=null;
+ Token otherlv_6=null;
+ AntlrDatatypeRuleToken lv_dummyName_2_0 = null;
+
+ AntlrDatatypeRuleToken lv_version_5_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:3837:2: ( ( () otherlv_1= 'Project' ( (lv_dummyName_2_0= ruleQualifiedName ) )? otherlv_3= '{' otherlv_4= 'version:' ( (lv_version_5_0= ruleEString ) ) otherlv_6= '}' ) )
+ // InternalRBAModel.g:3838:2: ( () otherlv_1= 'Project' ( (lv_dummyName_2_0= ruleQualifiedName ) )? otherlv_3= '{' otherlv_4= 'version:' ( (lv_version_5_0= ruleEString ) ) otherlv_6= '}' )
+ {
+ // InternalRBAModel.g:3838:2: ( () otherlv_1= 'Project' ( (lv_dummyName_2_0= ruleQualifiedName ) )? otherlv_3= '{' otherlv_4= 'version:' ( (lv_version_5_0= ruleEString ) ) otherlv_6= '}' )
+ // InternalRBAModel.g:3839:3: () otherlv_1= 'Project' ( (lv_dummyName_2_0= ruleQualifiedName ) )? otherlv_3= '{' otherlv_4= 'version:' ( (lv_version_5_0= ruleEString ) ) otherlv_6= '}'
+ {
+ // InternalRBAModel.g:3839:3: ()
+ // InternalRBAModel.g:3840:4:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getProjectAccess().getProjectAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,66,FOLLOW_42); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getProjectAccess().getProjectKeyword_1());
+
+ }
+ // InternalRBAModel.g:3850:3: ( (lv_dummyName_2_0= ruleQualifiedName ) )?
+ int alt60=2;
+ int LA60_0 = input.LA(1);
+
+ if ( (LA60_0==RULE_ID) ) {
+ alt60=1;
+ }
+ switch (alt60) {
+ case 1 :
+ // InternalRBAModel.g:3851:4: (lv_dummyName_2_0= ruleQualifiedName )
+ {
+ // InternalRBAModel.g:3851:4: (lv_dummyName_2_0= ruleQualifiedName )
+ // InternalRBAModel.g:3852:5: lv_dummyName_2_0= ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getProjectAccess().getDummyNameQualifiedNameParserRuleCall_2_0());
+
+ }
+ pushFollow(FOLLOW_15);
+ lv_dummyName_2_0=ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getProjectRule());
+ }
+ set(
+ current,
+ "dummyName",
+ lv_dummyName_2_0,
+ "rba.tool.editor.RBAModel.QualifiedName");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ otherlv_3=(Token)match(input,26,FOLLOW_43); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_3, grammarAccess.getProjectAccess().getLeftCurlyBracketKeyword_3());
+
+ }
+ otherlv_4=(Token)match(input,67,FOLLOW_14); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_4, grammarAccess.getProjectAccess().getVersionKeyword_4());
+
+ }
+ // InternalRBAModel.g:3877:3: ( (lv_version_5_0= ruleEString ) )
+ // InternalRBAModel.g:3878:4: (lv_version_5_0= ruleEString )
+ {
+ // InternalRBAModel.g:3878:4: (lv_version_5_0= ruleEString )
+ // InternalRBAModel.g:3879:5: lv_version_5_0= ruleEString
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getProjectAccess().getVersionEStringParserRuleCall_5_0());
+
+ }
+ pushFollow(FOLLOW_44);
+ lv_version_5_0=ruleEString();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getProjectRule());
+ }
+ set(
+ current,
+ "version",
+ lv_version_5_0,
+ "rba.tool.editor.RBAModel.EString");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_6=(Token)match(input,28,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_6, grammarAccess.getProjectAccess().getRightCurlyBracketKeyword_6());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleProject"
+
+
+ // $ANTLR start "entryRuleVExpression"
+ // InternalRBAModel.g:3904:1: entryRuleVExpression returns [EObject current=null] : iv_ruleVExpression= ruleVExpression EOF ;
+ public final EObject entryRuleVExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleVExpression = null;
+
+
+ try {
+ // InternalRBAModel.g:3904:52: (iv_ruleVExpression= ruleVExpression EOF )
+ // InternalRBAModel.g:3905:2: iv_ruleVExpression= ruleVExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getVExpressionRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleVExpression=ruleVExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleVExpression;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleVExpression"
+
+
+ // $ANTLR start "ruleVExpression"
+ // InternalRBAModel.g:3911:1: ruleVExpression returns [EObject current=null] : this_VPlusOperator_0= ruleVPlusOperator ;
+ public final EObject ruleVExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_VPlusOperator_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:3917:2: (this_VPlusOperator_0= ruleVPlusOperator )
+ // InternalRBAModel.g:3918:2: this_VPlusOperator_0= ruleVPlusOperator
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getVExpressionAccess().getVPlusOperatorParserRuleCall());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_VPlusOperator_0=ruleVPlusOperator();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_VPlusOperator_0;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleVExpression"
+
+
+ // $ANTLR start "entryRuleVPlusOperator"
+ // InternalRBAModel.g:3929:1: entryRuleVPlusOperator returns [EObject current=null] : iv_ruleVPlusOperator= ruleVPlusOperator EOF ;
+ public final EObject entryRuleVPlusOperator() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleVPlusOperator = null;
+
+
+ try {
+ // InternalRBAModel.g:3929:54: (iv_ruleVPlusOperator= ruleVPlusOperator EOF )
+ // InternalRBAModel.g:3930:2: iv_ruleVPlusOperator= ruleVPlusOperator EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getVPlusOperatorRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleVPlusOperator=ruleVPlusOperator();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleVPlusOperator;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleVPlusOperator"
+
+
+ // $ANTLR start "ruleVPlusOperator"
+ // InternalRBAModel.g:3936:1: ruleVPlusOperator returns [EObject current=null] : (this_VComparisonAnd_0= ruleVComparisonAnd ( ( ( ( () ruleOpPlus ) )=> ( () ruleOpPlus ) ) ( (lv_operand_3_0= ruleVComparisonAnd ) ) )* ) ;
+ public final EObject ruleVPlusOperator() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_VComparisonAnd_0 = null;
+
+ EObject lv_operand_3_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:3942:2: ( (this_VComparisonAnd_0= ruleVComparisonAnd ( ( ( ( () ruleOpPlus ) )=> ( () ruleOpPlus ) ) ( (lv_operand_3_0= ruleVComparisonAnd ) ) )* ) )
+ // InternalRBAModel.g:3943:2: (this_VComparisonAnd_0= ruleVComparisonAnd ( ( ( ( () ruleOpPlus ) )=> ( () ruleOpPlus ) ) ( (lv_operand_3_0= ruleVComparisonAnd ) ) )* )
+ {
+ // InternalRBAModel.g:3943:2: (this_VComparisonAnd_0= ruleVComparisonAnd ( ( ( ( () ruleOpPlus ) )=> ( () ruleOpPlus ) ) ( (lv_operand_3_0= ruleVComparisonAnd ) ) )* )
+ // InternalRBAModel.g:3944:3: this_VComparisonAnd_0= ruleVComparisonAnd ( ( ( ( () ruleOpPlus ) )=> ( () ruleOpPlus ) ) ( (lv_operand_3_0= ruleVComparisonAnd ) ) )*
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getVPlusOperatorAccess().getVComparisonAndParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_45);
+ this_VComparisonAnd_0=ruleVComparisonAnd();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_VComparisonAnd_0;
+ afterParserOrEnumRuleCall();
+
+ }
+ // InternalRBAModel.g:3952:3: ( ( ( ( () ruleOpPlus ) )=> ( () ruleOpPlus ) ) ( (lv_operand_3_0= ruleVComparisonAnd ) ) )*
+ loop61:
+ do {
+ int alt61=2;
+ int LA61_0 = input.LA(1);
+
+ if ( (LA61_0==68) && (synpred2_InternalRBAModel())) {
+ alt61=1;
+ }
+
+
+ switch (alt61) {
+ case 1 :
+ // InternalRBAModel.g:3953:4: ( ( ( () ruleOpPlus ) )=> ( () ruleOpPlus ) ) ( (lv_operand_3_0= ruleVComparisonAnd ) )
+ {
+ // InternalRBAModel.g:3953:4: ( ( ( () ruleOpPlus ) )=> ( () ruleOpPlus ) )
+ // InternalRBAModel.g:3954:5: ( ( () ruleOpPlus ) )=> ( () ruleOpPlus )
+ {
+ // InternalRBAModel.g:3960:5: ( () ruleOpPlus )
+ // InternalRBAModel.g:3961:6: () ruleOpPlus
+ {
+ // InternalRBAModel.g:3961:6: ()
+ // InternalRBAModel.g:3962:7:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getVPlusOperatorAccess().getPlusOperatorOperandAction_1_0_0_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getVPlusOperatorAccess().getOpPlusParserRuleCall_1_0_0_1());
+
+ }
+ pushFollow(FOLLOW_39);
+ ruleOpPlus();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // InternalRBAModel.g:3977:4: ( (lv_operand_3_0= ruleVComparisonAnd ) )
+ // InternalRBAModel.g:3978:5: (lv_operand_3_0= ruleVComparisonAnd )
+ {
+ // InternalRBAModel.g:3978:5: (lv_operand_3_0= ruleVComparisonAnd )
+ // InternalRBAModel.g:3979:6: lv_operand_3_0= ruleVComparisonAnd
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getVPlusOperatorAccess().getOperandVComparisonAndParserRuleCall_1_1_0());
+
+ }
+ pushFollow(FOLLOW_45);
+ lv_operand_3_0=ruleVComparisonAnd();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getVPlusOperatorRule());
+ }
+ add(
+ current,
+ "operand",
+ lv_operand_3_0,
+ "rba.tool.editor.RBAModel.VComparisonAnd");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop61;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleVPlusOperator"
+
+
+ // $ANTLR start "entryRuleOpPlus"
+ // InternalRBAModel.g:4001:1: entryRuleOpPlus returns [String current=null] : iv_ruleOpPlus= ruleOpPlus EOF ;
+ public final String entryRuleOpPlus() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpPlus = null;
+
+
+ try {
+ // InternalRBAModel.g:4001:46: (iv_ruleOpPlus= ruleOpPlus EOF )
+ // InternalRBAModel.g:4002:2: iv_ruleOpPlus= ruleOpPlus EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpPlusRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpPlus=ruleOpPlus();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpPlus.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpPlus"
+
+
+ // $ANTLR start "ruleOpPlus"
+ // InternalRBAModel.g:4008:1: ruleOpPlus returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '+' ;
+ public final AntlrDatatypeRuleToken ruleOpPlus() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:4014:2: (kw= '+' )
+ // InternalRBAModel.g:4015:2: kw= '+'
+ {
+ kw=(Token)match(input,68,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpPlusAccess().getPlusSignKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpPlus"
+
+
+ // $ANTLR start "entryRuleVComparisonAnd"
+ // InternalRBAModel.g:4023:1: entryRuleVComparisonAnd returns [EObject current=null] : iv_ruleVComparisonAnd= ruleVComparisonAnd EOF ;
+ public final EObject entryRuleVComparisonAnd() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleVComparisonAnd = null;
+
+
+ try {
+ // InternalRBAModel.g:4023:55: (iv_ruleVComparisonAnd= ruleVComparisonAnd EOF )
+ // InternalRBAModel.g:4024:2: iv_ruleVComparisonAnd= ruleVComparisonAnd EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getVComparisonAndRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleVComparisonAnd=ruleVComparisonAnd();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleVComparisonAnd;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleVComparisonAnd"
+
+
+ // $ANTLR start "ruleVComparisonAnd"
+ // InternalRBAModel.g:4030:1: ruleVComparisonAnd returns [EObject current=null] : (this_VRelationalExpression_0= ruleVRelationalExpression ( ( ( ( () ruleOpAnd ) )=> ( () ruleOpAnd ) ) ( (lv_operand_3_0= ruleVRelationalExpression ) ) )* ) ;
+ public final EObject ruleVComparisonAnd() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_VRelationalExpression_0 = null;
+
+ EObject lv_operand_3_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:4036:2: ( (this_VRelationalExpression_0= ruleVRelationalExpression ( ( ( ( () ruleOpAnd ) )=> ( () ruleOpAnd ) ) ( (lv_operand_3_0= ruleVRelationalExpression ) ) )* ) )
+ // InternalRBAModel.g:4037:2: (this_VRelationalExpression_0= ruleVRelationalExpression ( ( ( ( () ruleOpAnd ) )=> ( () ruleOpAnd ) ) ( (lv_operand_3_0= ruleVRelationalExpression ) ) )* )
+ {
+ // InternalRBAModel.g:4037:2: (this_VRelationalExpression_0= ruleVRelationalExpression ( ( ( ( () ruleOpAnd ) )=> ( () ruleOpAnd ) ) ( (lv_operand_3_0= ruleVRelationalExpression ) ) )* )
+ // InternalRBAModel.g:4038:3: this_VRelationalExpression_0= ruleVRelationalExpression ( ( ( ( () ruleOpAnd ) )=> ( () ruleOpAnd ) ) ( (lv_operand_3_0= ruleVRelationalExpression ) ) )*
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getVComparisonAndAccess().getVRelationalExpressionParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_46);
+ this_VRelationalExpression_0=ruleVRelationalExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_VRelationalExpression_0;
+ afterParserOrEnumRuleCall();
+
+ }
+ // InternalRBAModel.g:4046:3: ( ( ( ( () ruleOpAnd ) )=> ( () ruleOpAnd ) ) ( (lv_operand_3_0= ruleVRelationalExpression ) ) )*
+ loop62:
+ do {
+ int alt62=2;
+ int LA62_0 = input.LA(1);
+
+ if ( (LA62_0==78) && (synpred3_InternalRBAModel())) {
+ alt62=1;
+ }
+
+
+ switch (alt62) {
+ case 1 :
+ // InternalRBAModel.g:4047:4: ( ( ( () ruleOpAnd ) )=> ( () ruleOpAnd ) ) ( (lv_operand_3_0= ruleVRelationalExpression ) )
+ {
+ // InternalRBAModel.g:4047:4: ( ( ( () ruleOpAnd ) )=> ( () ruleOpAnd ) )
+ // InternalRBAModel.g:4048:5: ( ( () ruleOpAnd ) )=> ( () ruleOpAnd )
+ {
+ // InternalRBAModel.g:4054:5: ( () ruleOpAnd )
+ // InternalRBAModel.g:4055:6: () ruleOpAnd
+ {
+ // InternalRBAModel.g:4055:6: ()
+ // InternalRBAModel.g:4056:7:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getVComparisonAndAccess().getComparisonAndOperandAction_1_0_0_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getVComparisonAndAccess().getOpAndParserRuleCall_1_0_0_1());
+
+ }
+ pushFollow(FOLLOW_39);
+ ruleOpAnd();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // InternalRBAModel.g:4071:4: ( (lv_operand_3_0= ruleVRelationalExpression ) )
+ // InternalRBAModel.g:4072:5: (lv_operand_3_0= ruleVRelationalExpression )
+ {
+ // InternalRBAModel.g:4072:5: (lv_operand_3_0= ruleVRelationalExpression )
+ // InternalRBAModel.g:4073:6: lv_operand_3_0= ruleVRelationalExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getVComparisonAndAccess().getOperandVRelationalExpressionParserRuleCall_1_1_0());
+
+ }
+ pushFollow(FOLLOW_46);
+ lv_operand_3_0=ruleVRelationalExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getVComparisonAndRule());
+ }
+ add(
+ current,
+ "operand",
+ lv_operand_3_0,
+ "rba.tool.editor.RBAModel.VRelationalExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop62;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleVComparisonAnd"
+
+
+ // $ANTLR start "entryRuleVRelationalExpression"
+ // InternalRBAModel.g:4095:1: entryRuleVRelationalExpression returns [EObject current=null] : iv_ruleVRelationalExpression= ruleVRelationalExpression EOF ;
+ public final EObject entryRuleVRelationalExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleVRelationalExpression = null;
+
+
+ try {
+ // InternalRBAModel.g:4095:62: (iv_ruleVRelationalExpression= ruleVRelationalExpression EOF )
+ // InternalRBAModel.g:4096:2: iv_ruleVRelationalExpression= ruleVRelationalExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getVRelationalExpressionRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleVRelationalExpression=ruleVRelationalExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleVRelationalExpression;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleVRelationalExpression"
+
+
+ // $ANTLR start "ruleVRelationalExpression"
+ // InternalRBAModel.g:4102:1: ruleVRelationalExpression returns [EObject current=null] : (this_VPrimaryExpression_0= ruleVPrimaryExpression | ( () ruleOpMuchGreaterThan ( (lv_operand_3_0= ruleVPrimaryExpression ) ) ) | ( () ruleOpEqualTo ( (lv_operand_6_0= ruleVPrimaryExpression ) ) ) | ( () ruleOpGreaterThan ( (lv_operand_9_0= ruleVPrimaryExpression ) ) ) | ( () ruleOpLowerThan ( (lv_operand_12_0= ruleVPrimaryExpression ) ) ) ) ;
+ public final EObject ruleVRelationalExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_VPrimaryExpression_0 = null;
+
+ EObject lv_operand_3_0 = null;
+
+ EObject lv_operand_6_0 = null;
+
+ EObject lv_operand_9_0 = null;
+
+ EObject lv_operand_12_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:4108:2: ( (this_VPrimaryExpression_0= ruleVPrimaryExpression | ( () ruleOpMuchGreaterThan ( (lv_operand_3_0= ruleVPrimaryExpression ) ) ) | ( () ruleOpEqualTo ( (lv_operand_6_0= ruleVPrimaryExpression ) ) ) | ( () ruleOpGreaterThan ( (lv_operand_9_0= ruleVPrimaryExpression ) ) ) | ( () ruleOpLowerThan ( (lv_operand_12_0= ruleVPrimaryExpression ) ) ) ) )
+ // InternalRBAModel.g:4109:2: (this_VPrimaryExpression_0= ruleVPrimaryExpression | ( () ruleOpMuchGreaterThan ( (lv_operand_3_0= ruleVPrimaryExpression ) ) ) | ( () ruleOpEqualTo ( (lv_operand_6_0= ruleVPrimaryExpression ) ) ) | ( () ruleOpGreaterThan ( (lv_operand_9_0= ruleVPrimaryExpression ) ) ) | ( () ruleOpLowerThan ( (lv_operand_12_0= ruleVPrimaryExpression ) ) ) )
+ {
+ // InternalRBAModel.g:4109:2: (this_VPrimaryExpression_0= ruleVPrimaryExpression | ( () ruleOpMuchGreaterThan ( (lv_operand_3_0= ruleVPrimaryExpression ) ) ) | ( () ruleOpEqualTo ( (lv_operand_6_0= ruleVPrimaryExpression ) ) ) | ( () ruleOpGreaterThan ( (lv_operand_9_0= ruleVPrimaryExpression ) ) ) | ( () ruleOpLowerThan ( (lv_operand_12_0= ruleVPrimaryExpression ) ) ) )
+ int alt63=5;
+ switch ( input.LA(1) ) {
+ case RULE_INT:
+ case 34:
+ case 70:
+ case 72:
+ case 73:
+ case 74:
+ case 75:
+ case 148:
+ {
+ alt63=1;
+ }
+ break;
+ case 23:
+ {
+ alt63=2;
+ }
+ break;
+ case 69:
+ {
+ alt63=3;
+ }
+ break;
+ case 33:
+ {
+ alt63=4;
+ }
+ break;
+ case 32:
+ {
+ alt63=5;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 63, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt63) {
+ case 1 :
+ // InternalRBAModel.g:4110:3: this_VPrimaryExpression_0= ruleVPrimaryExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getVRelationalExpressionAccess().getVPrimaryExpressionParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_VPrimaryExpression_0=ruleVPrimaryExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_VPrimaryExpression_0;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:4119:3: ( () ruleOpMuchGreaterThan ( (lv_operand_3_0= ruleVPrimaryExpression ) ) )
+ {
+ // InternalRBAModel.g:4119:3: ( () ruleOpMuchGreaterThan ( (lv_operand_3_0= ruleVPrimaryExpression ) ) )
+ // InternalRBAModel.g:4120:4: () ruleOpMuchGreaterThan ( (lv_operand_3_0= ruleVPrimaryExpression ) )
+ {
+ // InternalRBAModel.g:4120:4: ()
+ // InternalRBAModel.g:4121:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getVRelationalExpressionAccess().getMuchGreaterThanOperatorAction_1_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getVRelationalExpressionAccess().getOpMuchGreaterThanParserRuleCall_1_1());
+
+ }
+ pushFollow(FOLLOW_47);
+ ruleOpMuchGreaterThan();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+ // InternalRBAModel.g:4134:4: ( (lv_operand_3_0= ruleVPrimaryExpression ) )
+ // InternalRBAModel.g:4135:5: (lv_operand_3_0= ruleVPrimaryExpression )
+ {
+ // InternalRBAModel.g:4135:5: (lv_operand_3_0= ruleVPrimaryExpression )
+ // InternalRBAModel.g:4136:6: lv_operand_3_0= ruleVPrimaryExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getVRelationalExpressionAccess().getOperandVPrimaryExpressionParserRuleCall_1_2_0());
+
+ }
+ pushFollow(FOLLOW_2);
+ lv_operand_3_0=ruleVPrimaryExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getVRelationalExpressionRule());
+ }
+ add(
+ current,
+ "operand",
+ lv_operand_3_0,
+ "rba.tool.editor.RBAModel.VPrimaryExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:4155:3: ( () ruleOpEqualTo ( (lv_operand_6_0= ruleVPrimaryExpression ) ) )
+ {
+ // InternalRBAModel.g:4155:3: ( () ruleOpEqualTo ( (lv_operand_6_0= ruleVPrimaryExpression ) ) )
+ // InternalRBAModel.g:4156:4: () ruleOpEqualTo ( (lv_operand_6_0= ruleVPrimaryExpression ) )
+ {
+ // InternalRBAModel.g:4156:4: ()
+ // InternalRBAModel.g:4157:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getVRelationalExpressionAccess().getEqualToOperatorAction_2_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getVRelationalExpressionAccess().getOpEqualToParserRuleCall_2_1());
+
+ }
+ pushFollow(FOLLOW_47);
+ ruleOpEqualTo();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+ // InternalRBAModel.g:4170:4: ( (lv_operand_6_0= ruleVPrimaryExpression ) )
+ // InternalRBAModel.g:4171:5: (lv_operand_6_0= ruleVPrimaryExpression )
+ {
+ // InternalRBAModel.g:4171:5: (lv_operand_6_0= ruleVPrimaryExpression )
+ // InternalRBAModel.g:4172:6: lv_operand_6_0= ruleVPrimaryExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getVRelationalExpressionAccess().getOperandVPrimaryExpressionParserRuleCall_2_2_0());
+
+ }
+ pushFollow(FOLLOW_2);
+ lv_operand_6_0=ruleVPrimaryExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getVRelationalExpressionRule());
+ }
+ add(
+ current,
+ "operand",
+ lv_operand_6_0,
+ "rba.tool.editor.RBAModel.VPrimaryExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // InternalRBAModel.g:4191:3: ( () ruleOpGreaterThan ( (lv_operand_9_0= ruleVPrimaryExpression ) ) )
+ {
+ // InternalRBAModel.g:4191:3: ( () ruleOpGreaterThan ( (lv_operand_9_0= ruleVPrimaryExpression ) ) )
+ // InternalRBAModel.g:4192:4: () ruleOpGreaterThan ( (lv_operand_9_0= ruleVPrimaryExpression ) )
+ {
+ // InternalRBAModel.g:4192:4: ()
+ // InternalRBAModel.g:4193:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getVRelationalExpressionAccess().getGreaterThanOperatorAction_3_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getVRelationalExpressionAccess().getOpGreaterThanParserRuleCall_3_1());
+
+ }
+ pushFollow(FOLLOW_47);
+ ruleOpGreaterThan();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+ // InternalRBAModel.g:4206:4: ( (lv_operand_9_0= ruleVPrimaryExpression ) )
+ // InternalRBAModel.g:4207:5: (lv_operand_9_0= ruleVPrimaryExpression )
+ {
+ // InternalRBAModel.g:4207:5: (lv_operand_9_0= ruleVPrimaryExpression )
+ // InternalRBAModel.g:4208:6: lv_operand_9_0= ruleVPrimaryExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getVRelationalExpressionAccess().getOperandVPrimaryExpressionParserRuleCall_3_2_0());
+
+ }
+ pushFollow(FOLLOW_2);
+ lv_operand_9_0=ruleVPrimaryExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getVRelationalExpressionRule());
+ }
+ add(
+ current,
+ "operand",
+ lv_operand_9_0,
+ "rba.tool.editor.RBAModel.VPrimaryExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 5 :
+ // InternalRBAModel.g:4227:3: ( () ruleOpLowerThan ( (lv_operand_12_0= ruleVPrimaryExpression ) ) )
+ {
+ // InternalRBAModel.g:4227:3: ( () ruleOpLowerThan ( (lv_operand_12_0= ruleVPrimaryExpression ) ) )
+ // InternalRBAModel.g:4228:4: () ruleOpLowerThan ( (lv_operand_12_0= ruleVPrimaryExpression ) )
+ {
+ // InternalRBAModel.g:4228:4: ()
+ // InternalRBAModel.g:4229:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getVRelationalExpressionAccess().getLowerThanOperatorAction_4_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getVRelationalExpressionAccess().getOpLowerThanParserRuleCall_4_1());
+
+ }
+ pushFollow(FOLLOW_47);
+ ruleOpLowerThan();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+ // InternalRBAModel.g:4242:4: ( (lv_operand_12_0= ruleVPrimaryExpression ) )
+ // InternalRBAModel.g:4243:5: (lv_operand_12_0= ruleVPrimaryExpression )
+ {
+ // InternalRBAModel.g:4243:5: (lv_operand_12_0= ruleVPrimaryExpression )
+ // InternalRBAModel.g:4244:6: lv_operand_12_0= ruleVPrimaryExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getVRelationalExpressionAccess().getOperandVPrimaryExpressionParserRuleCall_4_2_0());
+
+ }
+ pushFollow(FOLLOW_2);
+ lv_operand_12_0=ruleVPrimaryExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getVRelationalExpressionRule());
+ }
+ add(
+ current,
+ "operand",
+ lv_operand_12_0,
+ "rba.tool.editor.RBAModel.VPrimaryExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleVRelationalExpression"
+
+
+ // $ANTLR start "entryRuleOpMuchGreaterThan"
+ // InternalRBAModel.g:4266:1: entryRuleOpMuchGreaterThan returns [String current=null] : iv_ruleOpMuchGreaterThan= ruleOpMuchGreaterThan EOF ;
+ public final String entryRuleOpMuchGreaterThan() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpMuchGreaterThan = null;
+
+
+ try {
+ // InternalRBAModel.g:4266:57: (iv_ruleOpMuchGreaterThan= ruleOpMuchGreaterThan EOF )
+ // InternalRBAModel.g:4267:2: iv_ruleOpMuchGreaterThan= ruleOpMuchGreaterThan EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpMuchGreaterThanRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpMuchGreaterThan=ruleOpMuchGreaterThan();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpMuchGreaterThan.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpMuchGreaterThan"
+
+
+ // $ANTLR start "ruleOpMuchGreaterThan"
+ // InternalRBAModel.g:4273:1: ruleOpMuchGreaterThan returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '>>' ;
+ public final AntlrDatatypeRuleToken ruleOpMuchGreaterThan() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:4279:2: (kw= '>>' )
+ // InternalRBAModel.g:4280:2: kw= '>>'
+ {
+ kw=(Token)match(input,23,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpMuchGreaterThanAccess().getGreaterThanSignGreaterThanSignKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpMuchGreaterThan"
+
+
+ // $ANTLR start "entryRuleOpEqualTo"
+ // InternalRBAModel.g:4288:1: entryRuleOpEqualTo returns [String current=null] : iv_ruleOpEqualTo= ruleOpEqualTo EOF ;
+ public final String entryRuleOpEqualTo() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpEqualTo = null;
+
+
+ try {
+ // InternalRBAModel.g:4288:49: (iv_ruleOpEqualTo= ruleOpEqualTo EOF )
+ // InternalRBAModel.g:4289:2: iv_ruleOpEqualTo= ruleOpEqualTo EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpEqualToRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpEqualTo=ruleOpEqualTo();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpEqualTo.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpEqualTo"
+
+
+ // $ANTLR start "ruleOpEqualTo"
+ // InternalRBAModel.g:4295:1: ruleOpEqualTo returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '=' ;
+ public final AntlrDatatypeRuleToken ruleOpEqualTo() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:4301:2: (kw= '=' )
+ // InternalRBAModel.g:4302:2: kw= '='
+ {
+ kw=(Token)match(input,69,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpEqualToAccess().getEqualsSignKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpEqualTo"
+
+
+ // $ANTLR start "entryRuleOpGreaterThan"
+ // InternalRBAModel.g:4310:1: entryRuleOpGreaterThan returns [String current=null] : iv_ruleOpGreaterThan= ruleOpGreaterThan EOF ;
+ public final String entryRuleOpGreaterThan() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpGreaterThan = null;
+
+
+ try {
+ // InternalRBAModel.g:4310:53: (iv_ruleOpGreaterThan= ruleOpGreaterThan EOF )
+ // InternalRBAModel.g:4311:2: iv_ruleOpGreaterThan= ruleOpGreaterThan EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpGreaterThanRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpGreaterThan=ruleOpGreaterThan();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpGreaterThan.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpGreaterThan"
+
+
+ // $ANTLR start "ruleOpGreaterThan"
+ // InternalRBAModel.g:4317:1: ruleOpGreaterThan returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '>' ;
+ public final AntlrDatatypeRuleToken ruleOpGreaterThan() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:4323:2: (kw= '>' )
+ // InternalRBAModel.g:4324:2: kw= '>'
+ {
+ kw=(Token)match(input,33,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpGreaterThanAccess().getGreaterThanSignKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpGreaterThan"
+
+
+ // $ANTLR start "entryRuleOpLowerThan"
+ // InternalRBAModel.g:4332:1: entryRuleOpLowerThan returns [String current=null] : iv_ruleOpLowerThan= ruleOpLowerThan EOF ;
+ public final String entryRuleOpLowerThan() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpLowerThan = null;
+
+
+ try {
+ // InternalRBAModel.g:4332:51: (iv_ruleOpLowerThan= ruleOpLowerThan EOF )
+ // InternalRBAModel.g:4333:2: iv_ruleOpLowerThan= ruleOpLowerThan EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpLowerThanRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpLowerThan=ruleOpLowerThan();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpLowerThan.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpLowerThan"
+
+
+ // $ANTLR start "ruleOpLowerThan"
+ // InternalRBAModel.g:4339:1: ruleOpLowerThan returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '<' ;
+ public final AntlrDatatypeRuleToken ruleOpLowerThan() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:4345:2: (kw= '<' )
+ // InternalRBAModel.g:4346:2: kw= '<'
+ {
+ kw=(Token)match(input,32,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpLowerThanAccess().getLessThanSignKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpLowerThan"
+
+
+ // $ANTLR start "entryRuleVPrimaryExpression"
+ // InternalRBAModel.g:4354:1: entryRuleVPrimaryExpression returns [EObject current=null] : iv_ruleVPrimaryExpression= ruleVPrimaryExpression EOF ;
+ public final EObject entryRuleVPrimaryExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleVPrimaryExpression = null;
+
+
+ try {
+ // InternalRBAModel.g:4354:59: (iv_ruleVPrimaryExpression= ruleVPrimaryExpression EOF )
+ // InternalRBAModel.g:4355:2: iv_ruleVPrimaryExpression= ruleVPrimaryExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getVPrimaryExpressionRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleVPrimaryExpression=ruleVPrimaryExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleVPrimaryExpression;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleVPrimaryExpression"
+
+
+ // $ANTLR start "ruleVPrimaryExpression"
+ // InternalRBAModel.g:4361:1: ruleVPrimaryExpression returns [EObject current=null] : (this_ThatOfOperator_0= ruleThatOfOperator | this_VValueExpression_1= ruleVValueExpression | (otherlv_2= '(' this_VExpression_3= ruleVExpression otherlv_4= ')' ) ) ;
+ public final EObject ruleVPrimaryExpression() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_2=null;
+ Token otherlv_4=null;
+ EObject this_ThatOfOperator_0 = null;
+
+ EObject this_VValueExpression_1 = null;
+
+ EObject this_VExpression_3 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:4367:2: ( (this_ThatOfOperator_0= ruleThatOfOperator | this_VValueExpression_1= ruleVValueExpression | (otherlv_2= '(' this_VExpression_3= ruleVExpression otherlv_4= ')' ) ) )
+ // InternalRBAModel.g:4368:2: (this_ThatOfOperator_0= ruleThatOfOperator | this_VValueExpression_1= ruleVValueExpression | (otherlv_2= '(' this_VExpression_3= ruleVExpression otherlv_4= ')' ) )
+ {
+ // InternalRBAModel.g:4368:2: (this_ThatOfOperator_0= ruleThatOfOperator | this_VValueExpression_1= ruleVValueExpression | (otherlv_2= '(' this_VExpression_3= ruleVExpression otherlv_4= ')' ) )
+ int alt64=3;
+ switch ( input.LA(1) ) {
+ case 70:
+ {
+ alt64=1;
+ }
+ break;
+ case RULE_INT:
+ case 72:
+ case 73:
+ case 74:
+ case 75:
+ case 148:
+ {
+ alt64=2;
+ }
+ break;
+ case 34:
+ {
+ alt64=3;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 64, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt64) {
+ case 1 :
+ // InternalRBAModel.g:4369:3: this_ThatOfOperator_0= ruleThatOfOperator
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getVPrimaryExpressionAccess().getThatOfOperatorParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_ThatOfOperator_0=ruleThatOfOperator();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_ThatOfOperator_0;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:4378:3: this_VValueExpression_1= ruleVValueExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getVPrimaryExpressionAccess().getVValueExpressionParserRuleCall_1());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_VValueExpression_1=ruleVValueExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_VValueExpression_1;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:4387:3: (otherlv_2= '(' this_VExpression_3= ruleVExpression otherlv_4= ')' )
+ {
+ // InternalRBAModel.g:4387:3: (otherlv_2= '(' this_VExpression_3= ruleVExpression otherlv_4= ')' )
+ // InternalRBAModel.g:4388:4: otherlv_2= '(' this_VExpression_3= ruleVExpression otherlv_4= ')'
+ {
+ otherlv_2=(Token)match(input,34,FOLLOW_39); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_2, grammarAccess.getVPrimaryExpressionAccess().getLeftParenthesisKeyword_2_0());
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getVPrimaryExpressionAccess().getVExpressionParserRuleCall_2_1());
+
+ }
+ pushFollow(FOLLOW_48);
+ this_VExpression_3=ruleVExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_VExpression_3;
+ afterParserOrEnumRuleCall();
+
+ }
+ otherlv_4=(Token)match(input,35,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_4, grammarAccess.getVPrimaryExpressionAccess().getRightParenthesisKeyword_2_2());
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleVPrimaryExpression"
+
+
+ // $ANTLR start "entryRuleVValueExpression"
+ // InternalRBAModel.g:4409:1: entryRuleVValueExpression returns [EObject current=null] : iv_ruleVValueExpression= ruleVValueExpression EOF ;
+ public final EObject entryRuleVValueExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleVValueExpression = null;
+
+
+ try {
+ // InternalRBAModel.g:4409:57: (iv_ruleVValueExpression= ruleVValueExpression EOF )
+ // InternalRBAModel.g:4410:2: iv_ruleVValueExpression= ruleVValueExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getVValueExpressionRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleVValueExpression=ruleVValueExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleVValueExpression;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleVValueExpression"
+
+
+ // $ANTLR start "ruleVValueExpression"
+ // InternalRBAModel.g:4416:1: ruleVValueExpression returns [EObject current=null] : (this_IntegerValue_0= ruleIntegerValue | this_StandardValue_1= ruleStandardValue | this_NoneValue_2= ruleNoneValue | this_MinValue_3= ruleMinValue | this_MaxValue_4= ruleMaxValue ) ;
+ public final EObject ruleVValueExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_IntegerValue_0 = null;
+
+ EObject this_StandardValue_1 = null;
+
+ EObject this_NoneValue_2 = null;
+
+ EObject this_MinValue_3 = null;
+
+ EObject this_MaxValue_4 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:4422:2: ( (this_IntegerValue_0= ruleIntegerValue | this_StandardValue_1= ruleStandardValue | this_NoneValue_2= ruleNoneValue | this_MinValue_3= ruleMinValue | this_MaxValue_4= ruleMaxValue ) )
+ // InternalRBAModel.g:4423:2: (this_IntegerValue_0= ruleIntegerValue | this_StandardValue_1= ruleStandardValue | this_NoneValue_2= ruleNoneValue | this_MinValue_3= ruleMinValue | this_MaxValue_4= ruleMaxValue )
+ {
+ // InternalRBAModel.g:4423:2: (this_IntegerValue_0= ruleIntegerValue | this_StandardValue_1= ruleStandardValue | this_NoneValue_2= ruleNoneValue | this_MinValue_3= ruleMinValue | this_MaxValue_4= ruleMaxValue )
+ int alt65=5;
+ switch ( input.LA(1) ) {
+ case RULE_INT:
+ case 148:
+ {
+ alt65=1;
+ }
+ break;
+ case 72:
+ {
+ alt65=2;
+ }
+ break;
+ case 73:
+ {
+ alt65=3;
+ }
+ break;
+ case 74:
+ {
+ alt65=4;
+ }
+ break;
+ case 75:
+ {
+ alt65=5;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 65, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt65) {
+ case 1 :
+ // InternalRBAModel.g:4424:3: this_IntegerValue_0= ruleIntegerValue
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getVValueExpressionAccess().getIntegerValueParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_IntegerValue_0=ruleIntegerValue();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_IntegerValue_0;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:4433:3: this_StandardValue_1= ruleStandardValue
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getVValueExpressionAccess().getStandardValueParserRuleCall_1());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_StandardValue_1=ruleStandardValue();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_StandardValue_1;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:4442:3: this_NoneValue_2= ruleNoneValue
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getVValueExpressionAccess().getNoneValueParserRuleCall_2());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_NoneValue_2=ruleNoneValue();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_NoneValue_2;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 4 :
+ // InternalRBAModel.g:4451:3: this_MinValue_3= ruleMinValue
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getVValueExpressionAccess().getMinValueParserRuleCall_3());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_MinValue_3=ruleMinValue();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_MinValue_3;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 5 :
+ // InternalRBAModel.g:4460:3: this_MaxValue_4= ruleMaxValue
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getVValueExpressionAccess().getMaxValueParserRuleCall_4());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_MaxValue_4=ruleMaxValue();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_MaxValue_4;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleVValueExpression"
+
+
+ // $ANTLR start "entryRuleThatOfOperator"
+ // InternalRBAModel.g:4472:1: entryRuleThatOfOperator returns [EObject current=null] : iv_ruleThatOfOperator= ruleThatOfOperator EOF ;
+ public final EObject entryRuleThatOfOperator() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleThatOfOperator = null;
+
+
+ try {
+ // InternalRBAModel.g:4472:55: (iv_ruleThatOfOperator= ruleThatOfOperator EOF )
+ // InternalRBAModel.g:4473:2: iv_ruleThatOfOperator= ruleThatOfOperator EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getThatOfOperatorRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleThatOfOperator=ruleThatOfOperator();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleThatOfOperator;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleThatOfOperator"
+
+
+ // $ANTLR start "ruleThatOfOperator"
+ // InternalRBAModel.g:4479:1: ruleThatOfOperator returns [EObject current=null] : ( () otherlv_1= 'That-of' ( (lv_operand_2_0= ruleVMemberFeatureReference ) )? ) ;
+ public final EObject ruleThatOfOperator() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ EObject lv_operand_2_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:4485:2: ( ( () otherlv_1= 'That-of' ( (lv_operand_2_0= ruleVMemberFeatureReference ) )? ) )
+ // InternalRBAModel.g:4486:2: ( () otherlv_1= 'That-of' ( (lv_operand_2_0= ruleVMemberFeatureReference ) )? )
+ {
+ // InternalRBAModel.g:4486:2: ( () otherlv_1= 'That-of' ( (lv_operand_2_0= ruleVMemberFeatureReference ) )? )
+ // InternalRBAModel.g:4487:3: () otherlv_1= 'That-of' ( (lv_operand_2_0= ruleVMemberFeatureReference ) )?
+ {
+ // InternalRBAModel.g:4487:3: ()
+ // InternalRBAModel.g:4488:4:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getThatOfOperatorAccess().getThatOfOperatorAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,70,FOLLOW_49); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getThatOfOperatorAccess().getThatOfKeyword_1());
+
+ }
+ // InternalRBAModel.g:4498:3: ( (lv_operand_2_0= ruleVMemberFeatureReference ) )?
+ int alt66=2;
+ int LA66_0 = input.LA(1);
+
+ if ( (LA66_0==RULE_ID) ) {
+ alt66=1;
+ }
+ switch (alt66) {
+ case 1 :
+ // InternalRBAModel.g:4499:4: (lv_operand_2_0= ruleVMemberFeatureReference )
+ {
+ // InternalRBAModel.g:4499:4: (lv_operand_2_0= ruleVMemberFeatureReference )
+ // InternalRBAModel.g:4500:5: lv_operand_2_0= ruleVMemberFeatureReference
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getThatOfOperatorAccess().getOperandVMemberFeatureReferenceParserRuleCall_2_0());
+
+ }
+ pushFollow(FOLLOW_2);
+ lv_operand_2_0=ruleVMemberFeatureReference();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getThatOfOperatorRule());
+ }
+ add(
+ current,
+ "operand",
+ lv_operand_2_0,
+ "rba.tool.editor.RBAModel.VMemberFeatureReference");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleThatOfOperator"
+
+
+ // $ANTLR start "entryRuleVMemberFeatureReference"
+ // InternalRBAModel.g:4521:1: entryRuleVMemberFeatureReference returns [EObject current=null] : iv_ruleVMemberFeatureReference= ruleVMemberFeatureReference EOF ;
+ public final EObject entryRuleVMemberFeatureReference() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleVMemberFeatureReference = null;
+
+
+ try {
+ // InternalRBAModel.g:4521:64: (iv_ruleVMemberFeatureReference= ruleVMemberFeatureReference EOF )
+ // InternalRBAModel.g:4522:2: iv_ruleVMemberFeatureReference= ruleVMemberFeatureReference EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getVMemberFeatureReferenceRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleVMemberFeatureReference=ruleVMemberFeatureReference();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleVMemberFeatureReference;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleVMemberFeatureReference"
+
+
+ // $ANTLR start "ruleVMemberFeatureReference"
+ // InternalRBAModel.g:4528:1: ruleVMemberFeatureReference returns [EObject current=null] : ( () ( ( ruleValidID ) ) ( () otherlv_3= '.' ( ( ruleValidID ) ) )* ) ;
+ public final EObject ruleVMemberFeatureReference() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_3=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:4534:2: ( ( () ( ( ruleValidID ) ) ( () otherlv_3= '.' ( ( ruleValidID ) ) )* ) )
+ // InternalRBAModel.g:4535:2: ( () ( ( ruleValidID ) ) ( () otherlv_3= '.' ( ( ruleValidID ) ) )* )
+ {
+ // InternalRBAModel.g:4535:2: ( () ( ( ruleValidID ) ) ( () otherlv_3= '.' ( ( ruleValidID ) ) )* )
+ // InternalRBAModel.g:4536:3: () ( ( ruleValidID ) ) ( () otherlv_3= '.' ( ( ruleValidID ) ) )*
+ {
+ // InternalRBAModel.g:4536:3: ()
+ // InternalRBAModel.g:4537:4:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getVMemberFeatureReferenceAccess().getObjectReferenceAction_0(),
+ current);
+
+ }
+
+ }
+
+ // InternalRBAModel.g:4543:3: ( ( ruleValidID ) )
+ // InternalRBAModel.g:4544:4: ( ruleValidID )
+ {
+ // InternalRBAModel.g:4544:4: ( ruleValidID )
+ // InternalRBAModel.g:4545:5: ruleValidID
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getVMemberFeatureReferenceRule());
+ }
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getVMemberFeatureReferenceAccess().getRefObjectRuleObjectCrossReference_1_0());
+
+ }
+ pushFollow(FOLLOW_50);
+ ruleValidID();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // InternalRBAModel.g:4559:3: ( () otherlv_3= '.' ( ( ruleValidID ) ) )*
+ loop67:
+ do {
+ int alt67=2;
+ int LA67_0 = input.LA(1);
+
+ if ( (LA67_0==71) ) {
+ alt67=1;
+ }
+
+
+ switch (alt67) {
+ case 1 :
+ // InternalRBAModel.g:4560:4: () otherlv_3= '.' ( ( ruleValidID ) )
+ {
+ // InternalRBAModel.g:4560:4: ()
+ // InternalRBAModel.g:4561:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getVMemberFeatureReferenceAccess().getMemberFeatureReferenceOperandAction_2_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_3=(Token)match(input,71,FOLLOW_3); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_3, grammarAccess.getVMemberFeatureReferenceAccess().getFullStopKeyword_2_1());
+
+ }
+ // InternalRBAModel.g:4571:4: ( ( ruleValidID ) )
+ // InternalRBAModel.g:4572:5: ( ruleValidID )
+ {
+ // InternalRBAModel.g:4572:5: ( ruleValidID )
+ // InternalRBAModel.g:4573:6: ruleValidID
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getVMemberFeatureReferenceRule());
+ }
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getVMemberFeatureReferenceAccess().getRefObjectRuleObjectCrossReference_2_2_0());
+
+ }
+ pushFollow(FOLLOW_50);
+ ruleValidID();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop67;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleVMemberFeatureReference"
+
+
+ // $ANTLR start "entryRuleIntegerValue"
+ // InternalRBAModel.g:4592:1: entryRuleIntegerValue returns [EObject current=null] : iv_ruleIntegerValue= ruleIntegerValue EOF ;
+ public final EObject entryRuleIntegerValue() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleIntegerValue = null;
+
+
+ try {
+ // InternalRBAModel.g:4592:53: (iv_ruleIntegerValue= ruleIntegerValue EOF )
+ // InternalRBAModel.g:4593:2: iv_ruleIntegerValue= ruleIntegerValue EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getIntegerValueRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleIntegerValue=ruleIntegerValue();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleIntegerValue;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleIntegerValue"
+
+
+ // $ANTLR start "ruleIntegerValue"
+ // InternalRBAModel.g:4599:1: ruleIntegerValue returns [EObject current=null] : ( () ( (lv_value_1_0= ruleEInt ) ) ) ;
+ public final EObject ruleIntegerValue() throws RecognitionException {
+ EObject current = null;
+
+ AntlrDatatypeRuleToken lv_value_1_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:4605:2: ( ( () ( (lv_value_1_0= ruleEInt ) ) ) )
+ // InternalRBAModel.g:4606:2: ( () ( (lv_value_1_0= ruleEInt ) ) )
+ {
+ // InternalRBAModel.g:4606:2: ( () ( (lv_value_1_0= ruleEInt ) ) )
+ // InternalRBAModel.g:4607:3: () ( (lv_value_1_0= ruleEInt ) )
+ {
+ // InternalRBAModel.g:4607:3: ()
+ // InternalRBAModel.g:4608:4:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getIntegerValueAccess().getIntegerValueAction_0(),
+ current);
+
+ }
+
+ }
+
+ // InternalRBAModel.g:4614:3: ( (lv_value_1_0= ruleEInt ) )
+ // InternalRBAModel.g:4615:4: (lv_value_1_0= ruleEInt )
+ {
+ // InternalRBAModel.g:4615:4: (lv_value_1_0= ruleEInt )
+ // InternalRBAModel.g:4616:5: lv_value_1_0= ruleEInt
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getIntegerValueAccess().getValueEIntParserRuleCall_1_0());
+
+ }
+ pushFollow(FOLLOW_2);
+ lv_value_1_0=ruleEInt();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getIntegerValueRule());
+ }
+ set(
+ current,
+ "value",
+ lv_value_1_0,
+ "rba.tool.editor.RBAModel.EInt");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleIntegerValue"
+
+
+ // $ANTLR start "entryRuleStandardValue"
+ // InternalRBAModel.g:4637:1: entryRuleStandardValue returns [EObject current=null] : iv_ruleStandardValue= ruleStandardValue EOF ;
+ public final EObject entryRuleStandardValue() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleStandardValue = null;
+
+
+ try {
+ // InternalRBAModel.g:4637:54: (iv_ruleStandardValue= ruleStandardValue EOF )
+ // InternalRBAModel.g:4638:2: iv_ruleStandardValue= ruleStandardValue EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getStandardValueRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleStandardValue=ruleStandardValue();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleStandardValue;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleStandardValue"
+
+
+ // $ANTLR start "ruleStandardValue"
+ // InternalRBAModel.g:4644:1: ruleStandardValue returns [EObject current=null] : ( () otherlv_1= 'STANDARD_VALUE' ) ;
+ public final EObject ruleStandardValue() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:4650:2: ( ( () otherlv_1= 'STANDARD_VALUE' ) )
+ // InternalRBAModel.g:4651:2: ( () otherlv_1= 'STANDARD_VALUE' )
+ {
+ // InternalRBAModel.g:4651:2: ( () otherlv_1= 'STANDARD_VALUE' )
+ // InternalRBAModel.g:4652:3: () otherlv_1= 'STANDARD_VALUE'
+ {
+ // InternalRBAModel.g:4652:3: ()
+ // InternalRBAModel.g:4653:4:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getStandardValueAccess().getStandardValueAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,72,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getStandardValueAccess().getSTANDARD_VALUEKeyword_1());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleStandardValue"
+
+
+ // $ANTLR start "entryRuleNoneValue"
+ // InternalRBAModel.g:4667:1: entryRuleNoneValue returns [EObject current=null] : iv_ruleNoneValue= ruleNoneValue EOF ;
+ public final EObject entryRuleNoneValue() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleNoneValue = null;
+
+
+ try {
+ // InternalRBAModel.g:4667:50: (iv_ruleNoneValue= ruleNoneValue EOF )
+ // InternalRBAModel.g:4668:2: iv_ruleNoneValue= ruleNoneValue EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getNoneValueRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleNoneValue=ruleNoneValue();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleNoneValue;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleNoneValue"
+
+
+ // $ANTLR start "ruleNoneValue"
+ // InternalRBAModel.g:4674:1: ruleNoneValue returns [EObject current=null] : ( () otherlv_1= 'NONE_VALUE' ) ;
+ public final EObject ruleNoneValue() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:4680:2: ( ( () otherlv_1= 'NONE_VALUE' ) )
+ // InternalRBAModel.g:4681:2: ( () otherlv_1= 'NONE_VALUE' )
+ {
+ // InternalRBAModel.g:4681:2: ( () otherlv_1= 'NONE_VALUE' )
+ // InternalRBAModel.g:4682:3: () otherlv_1= 'NONE_VALUE'
+ {
+ // InternalRBAModel.g:4682:3: ()
+ // InternalRBAModel.g:4683:4:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getNoneValueAccess().getNoneValueAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,73,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getNoneValueAccess().getNONE_VALUEKeyword_1());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleNoneValue"
+
+
+ // $ANTLR start "entryRuleMinValue"
+ // InternalRBAModel.g:4697:1: entryRuleMinValue returns [EObject current=null] : iv_ruleMinValue= ruleMinValue EOF ;
+ public final EObject entryRuleMinValue() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleMinValue = null;
+
+
+ try {
+ // InternalRBAModel.g:4697:49: (iv_ruleMinValue= ruleMinValue EOF )
+ // InternalRBAModel.g:4698:2: iv_ruleMinValue= ruleMinValue EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getMinValueRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleMinValue=ruleMinValue();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleMinValue;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleMinValue"
+
+
+ // $ANTLR start "ruleMinValue"
+ // InternalRBAModel.g:4704:1: ruleMinValue returns [EObject current=null] : ( () otherlv_1= 'MIN_VALUE' ) ;
+ public final EObject ruleMinValue() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:4710:2: ( ( () otherlv_1= 'MIN_VALUE' ) )
+ // InternalRBAModel.g:4711:2: ( () otherlv_1= 'MIN_VALUE' )
+ {
+ // InternalRBAModel.g:4711:2: ( () otherlv_1= 'MIN_VALUE' )
+ // InternalRBAModel.g:4712:3: () otherlv_1= 'MIN_VALUE'
+ {
+ // InternalRBAModel.g:4712:3: ()
+ // InternalRBAModel.g:4713:4:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getMinValueAccess().getMinValueAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,74,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getMinValueAccess().getMIN_VALUEKeyword_1());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleMinValue"
+
+
+ // $ANTLR start "entryRuleMaxValue"
+ // InternalRBAModel.g:4727:1: entryRuleMaxValue returns [EObject current=null] : iv_ruleMaxValue= ruleMaxValue EOF ;
+ public final EObject entryRuleMaxValue() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleMaxValue = null;
+
+
+ try {
+ // InternalRBAModel.g:4727:49: (iv_ruleMaxValue= ruleMaxValue EOF )
+ // InternalRBAModel.g:4728:2: iv_ruleMaxValue= ruleMaxValue EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getMaxValueRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleMaxValue=ruleMaxValue();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleMaxValue;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleMaxValue"
+
+
+ // $ANTLR start "ruleMaxValue"
+ // InternalRBAModel.g:4734:1: ruleMaxValue returns [EObject current=null] : ( () otherlv_1= 'MAX_VALUE' ) ;
+ public final EObject ruleMaxValue() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:4740:2: ( ( () otherlv_1= 'MAX_VALUE' ) )
+ // InternalRBAModel.g:4741:2: ( () otherlv_1= 'MAX_VALUE' )
+ {
+ // InternalRBAModel.g:4741:2: ( () otherlv_1= 'MAX_VALUE' )
+ // InternalRBAModel.g:4742:3: () otherlv_1= 'MAX_VALUE'
+ {
+ // InternalRBAModel.g:4742:3: ()
+ // InternalRBAModel.g:4743:4:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getMaxValueAccess().getMaxValueAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,75,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getMaxValueAccess().getMAX_VALUEKeyword_1());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleMaxValue"
+
+
+ // $ANTLR start "entryRuleCExpression"
+ // InternalRBAModel.g:4757:1: entryRuleCExpression returns [EObject current=null] : iv_ruleCExpression= ruleCExpression EOF ;
+ public final EObject entryRuleCExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleCExpression = null;
+
+
+ try {
+ // InternalRBAModel.g:4757:52: (iv_ruleCExpression= ruleCExpression EOF )
+ // InternalRBAModel.g:4758:2: iv_ruleCExpression= ruleCExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getCExpressionRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleCExpression=ruleCExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleCExpression;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleCExpression"
+
+
+ // $ANTLR start "ruleCExpression"
+ // InternalRBAModel.g:4764:1: ruleCExpression returns [EObject current=null] : this_CImpliesOperator_0= ruleCImpliesOperator ;
+ public final EObject ruleCExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_CImpliesOperator_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:4770:2: (this_CImpliesOperator_0= ruleCImpliesOperator )
+ // InternalRBAModel.g:4771:2: this_CImpliesOperator_0= ruleCImpliesOperator
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCExpressionAccess().getCImpliesOperatorParserRuleCall());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_CImpliesOperator_0=ruleCImpliesOperator();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_CImpliesOperator_0;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleCExpression"
+
+
+ // $ANTLR start "entryRuleCImpliesOperator"
+ // InternalRBAModel.g:4782:1: entryRuleCImpliesOperator returns [EObject current=null] : iv_ruleCImpliesOperator= ruleCImpliesOperator EOF ;
+ public final EObject entryRuleCImpliesOperator() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleCImpliesOperator = null;
+
+
+ try {
+ // InternalRBAModel.g:4782:57: (iv_ruleCImpliesOperator= ruleCImpliesOperator EOF )
+ // InternalRBAModel.g:4783:2: iv_ruleCImpliesOperator= ruleCImpliesOperator EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getCImpliesOperatorRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleCImpliesOperator=ruleCImpliesOperator();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleCImpliesOperator;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleCImpliesOperator"
+
+
+ // $ANTLR start "ruleCImpliesOperator"
+ // InternalRBAModel.g:4789:1: ruleCImpliesOperator returns [EObject current=null] : (this_COrOperator_0= ruleCOrOperator ( ( ( ( () ruleOpImplies ) )=> ( () ruleOpImplies ) ) ( (lv_operand_3_0= ruleCOrOperator ) ) )* ) ;
+ public final EObject ruleCImpliesOperator() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_COrOperator_0 = null;
+
+ EObject lv_operand_3_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:4795:2: ( (this_COrOperator_0= ruleCOrOperator ( ( ( ( () ruleOpImplies ) )=> ( () ruleOpImplies ) ) ( (lv_operand_3_0= ruleCOrOperator ) ) )* ) )
+ // InternalRBAModel.g:4796:2: (this_COrOperator_0= ruleCOrOperator ( ( ( ( () ruleOpImplies ) )=> ( () ruleOpImplies ) ) ( (lv_operand_3_0= ruleCOrOperator ) ) )* )
+ {
+ // InternalRBAModel.g:4796:2: (this_COrOperator_0= ruleCOrOperator ( ( ( ( () ruleOpImplies ) )=> ( () ruleOpImplies ) ) ( (lv_operand_3_0= ruleCOrOperator ) ) )* )
+ // InternalRBAModel.g:4797:3: this_COrOperator_0= ruleCOrOperator ( ( ( ( () ruleOpImplies ) )=> ( () ruleOpImplies ) ) ( (lv_operand_3_0= ruleCOrOperator ) ) )*
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCImpliesOperatorAccess().getCOrOperatorParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_51);
+ this_COrOperator_0=ruleCOrOperator();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_COrOperator_0;
+ afterParserOrEnumRuleCall();
+
+ }
+ // InternalRBAModel.g:4805:3: ( ( ( ( () ruleOpImplies ) )=> ( () ruleOpImplies ) ) ( (lv_operand_3_0= ruleCOrOperator ) ) )*
+ loop68:
+ do {
+ int alt68=2;
+ int LA68_0 = input.LA(1);
+
+ if ( (LA68_0==76) ) {
+ int LA68_2 = input.LA(2);
+
+ if ( (synpred4_InternalRBAModel()) ) {
+ alt68=1;
+ }
+
+
+ }
+
+
+ switch (alt68) {
+ case 1 :
+ // InternalRBAModel.g:4806:4: ( ( ( () ruleOpImplies ) )=> ( () ruleOpImplies ) ) ( (lv_operand_3_0= ruleCOrOperator ) )
+ {
+ // InternalRBAModel.g:4806:4: ( ( ( () ruleOpImplies ) )=> ( () ruleOpImplies ) )
+ // InternalRBAModel.g:4807:5: ( ( () ruleOpImplies ) )=> ( () ruleOpImplies )
+ {
+ // InternalRBAModel.g:4813:5: ( () ruleOpImplies )
+ // InternalRBAModel.g:4814:6: () ruleOpImplies
+ {
+ // InternalRBAModel.g:4814:6: ()
+ // InternalRBAModel.g:4815:7:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getCImpliesOperatorAccess().getImpliesOperatorOperandAction_1_0_0_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCImpliesOperatorAccess().getOpImpliesParserRuleCall_1_0_0_1());
+
+ }
+ pushFollow(FOLLOW_52);
+ ruleOpImplies();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // InternalRBAModel.g:4830:4: ( (lv_operand_3_0= ruleCOrOperator ) )
+ // InternalRBAModel.g:4831:5: (lv_operand_3_0= ruleCOrOperator )
+ {
+ // InternalRBAModel.g:4831:5: (lv_operand_3_0= ruleCOrOperator )
+ // InternalRBAModel.g:4832:6: lv_operand_3_0= ruleCOrOperator
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCImpliesOperatorAccess().getOperandCOrOperatorParserRuleCall_1_1_0());
+
+ }
+ pushFollow(FOLLOW_51);
+ lv_operand_3_0=ruleCOrOperator();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getCImpliesOperatorRule());
+ }
+ add(
+ current,
+ "operand",
+ lv_operand_3_0,
+ "rba.tool.editor.RBAModel.COrOperator");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop68;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleCImpliesOperator"
+
+
+ // $ANTLR start "entryRuleOpImplies"
+ // InternalRBAModel.g:4854:1: entryRuleOpImplies returns [String current=null] : iv_ruleOpImplies= ruleOpImplies EOF ;
+ public final String entryRuleOpImplies() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpImplies = null;
+
+
+ try {
+ // InternalRBAModel.g:4854:49: (iv_ruleOpImplies= ruleOpImplies EOF )
+ // InternalRBAModel.g:4855:2: iv_ruleOpImplies= ruleOpImplies EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpImpliesRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpImplies=ruleOpImplies();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpImplies.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpImplies"
+
+
+ // $ANTLR start "ruleOpImplies"
+ // InternalRBAModel.g:4861:1: ruleOpImplies returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '->' ;
+ public final AntlrDatatypeRuleToken ruleOpImplies() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:4867:2: (kw= '->' )
+ // InternalRBAModel.g:4868:2: kw= '->'
+ {
+ kw=(Token)match(input,76,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpImpliesAccess().getHyphenMinusGreaterThanSignKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpImplies"
+
+
+ // $ANTLR start "entryRuleCOrOperator"
+ // InternalRBAModel.g:4876:1: entryRuleCOrOperator returns [EObject current=null] : iv_ruleCOrOperator= ruleCOrOperator EOF ;
+ public final EObject entryRuleCOrOperator() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleCOrOperator = null;
+
+
+ try {
+ // InternalRBAModel.g:4876:52: (iv_ruleCOrOperator= ruleCOrOperator EOF )
+ // InternalRBAModel.g:4877:2: iv_ruleCOrOperator= ruleCOrOperator EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getCOrOperatorRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleCOrOperator=ruleCOrOperator();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleCOrOperator;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleCOrOperator"
+
+
+ // $ANTLR start "ruleCOrOperator"
+ // InternalRBAModel.g:4883:1: ruleCOrOperator returns [EObject current=null] : (this_CAndOperator_0= ruleCAndOperator ( ( ( ( () ruleOpOr ) )=> ( () ruleOpOr ) ) ( (lv_operand_3_0= ruleCAndOperator ) ) )* ) ;
+ public final EObject ruleCOrOperator() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_CAndOperator_0 = null;
+
+ EObject lv_operand_3_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:4889:2: ( (this_CAndOperator_0= ruleCAndOperator ( ( ( ( () ruleOpOr ) )=> ( () ruleOpOr ) ) ( (lv_operand_3_0= ruleCAndOperator ) ) )* ) )
+ // InternalRBAModel.g:4890:2: (this_CAndOperator_0= ruleCAndOperator ( ( ( ( () ruleOpOr ) )=> ( () ruleOpOr ) ) ( (lv_operand_3_0= ruleCAndOperator ) ) )* )
+ {
+ // InternalRBAModel.g:4890:2: (this_CAndOperator_0= ruleCAndOperator ( ( ( ( () ruleOpOr ) )=> ( () ruleOpOr ) ) ( (lv_operand_3_0= ruleCAndOperator ) ) )* )
+ // InternalRBAModel.g:4891:3: this_CAndOperator_0= ruleCAndOperator ( ( ( ( () ruleOpOr ) )=> ( () ruleOpOr ) ) ( (lv_operand_3_0= ruleCAndOperator ) ) )*
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCOrOperatorAccess().getCAndOperatorParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_53);
+ this_CAndOperator_0=ruleCAndOperator();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_CAndOperator_0;
+ afterParserOrEnumRuleCall();
+
+ }
+ // InternalRBAModel.g:4899:3: ( ( ( ( () ruleOpOr ) )=> ( () ruleOpOr ) ) ( (lv_operand_3_0= ruleCAndOperator ) ) )*
+ loop69:
+ do {
+ int alt69=2;
+ int LA69_0 = input.LA(1);
+
+ if ( (LA69_0==77) ) {
+ int LA69_2 = input.LA(2);
+
+ if ( (synpred5_InternalRBAModel()) ) {
+ alt69=1;
+ }
+
+
+ }
+
+
+ switch (alt69) {
+ case 1 :
+ // InternalRBAModel.g:4900:4: ( ( ( () ruleOpOr ) )=> ( () ruleOpOr ) ) ( (lv_operand_3_0= ruleCAndOperator ) )
+ {
+ // InternalRBAModel.g:4900:4: ( ( ( () ruleOpOr ) )=> ( () ruleOpOr ) )
+ // InternalRBAModel.g:4901:5: ( ( () ruleOpOr ) )=> ( () ruleOpOr )
+ {
+ // InternalRBAModel.g:4907:5: ( () ruleOpOr )
+ // InternalRBAModel.g:4908:6: () ruleOpOr
+ {
+ // InternalRBAModel.g:4908:6: ()
+ // InternalRBAModel.g:4909:7:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOrOperatorAccess().getOrOperatorOperandAction_1_0_0_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCOrOperatorAccess().getOpOrParserRuleCall_1_0_0_1());
+
+ }
+ pushFollow(FOLLOW_52);
+ ruleOpOr();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // InternalRBAModel.g:4924:4: ( (lv_operand_3_0= ruleCAndOperator ) )
+ // InternalRBAModel.g:4925:5: (lv_operand_3_0= ruleCAndOperator )
+ {
+ // InternalRBAModel.g:4925:5: (lv_operand_3_0= ruleCAndOperator )
+ // InternalRBAModel.g:4926:6: lv_operand_3_0= ruleCAndOperator
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCOrOperatorAccess().getOperandCAndOperatorParserRuleCall_1_1_0());
+
+ }
+ pushFollow(FOLLOW_53);
+ lv_operand_3_0=ruleCAndOperator();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getCOrOperatorRule());
+ }
+ add(
+ current,
+ "operand",
+ lv_operand_3_0,
+ "rba.tool.editor.RBAModel.CAndOperator");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop69;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleCOrOperator"
+
+
+ // $ANTLR start "entryRuleOpOr"
+ // InternalRBAModel.g:4948:1: entryRuleOpOr returns [String current=null] : iv_ruleOpOr= ruleOpOr EOF ;
+ public final String entryRuleOpOr() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpOr = null;
+
+
+ try {
+ // InternalRBAModel.g:4948:44: (iv_ruleOpOr= ruleOpOr EOF )
+ // InternalRBAModel.g:4949:2: iv_ruleOpOr= ruleOpOr EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpOrRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpOr=ruleOpOr();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpOr.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpOr"
+
+
+ // $ANTLR start "ruleOpOr"
+ // InternalRBAModel.g:4955:1: ruleOpOr returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'OR' ;
+ public final AntlrDatatypeRuleToken ruleOpOr() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:4961:2: (kw= 'OR' )
+ // InternalRBAModel.g:4962:2: kw= 'OR'
+ {
+ kw=(Token)match(input,77,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpOrAccess().getORKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpOr"
+
+
+ // $ANTLR start "entryRuleCAndOperator"
+ // InternalRBAModel.g:4970:1: entryRuleCAndOperator returns [EObject current=null] : iv_ruleCAndOperator= ruleCAndOperator EOF ;
+ public final EObject entryRuleCAndOperator() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleCAndOperator = null;
+
+
+ try {
+ // InternalRBAModel.g:4970:53: (iv_ruleCAndOperator= ruleCAndOperator EOF )
+ // InternalRBAModel.g:4971:2: iv_ruleCAndOperator= ruleCAndOperator EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getCAndOperatorRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleCAndOperator=ruleCAndOperator();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleCAndOperator;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleCAndOperator"
+
+
+ // $ANTLR start "ruleCAndOperator"
+ // InternalRBAModel.g:4977:1: ruleCAndOperator returns [EObject current=null] : (this_CEqualityExpression_0= ruleCEqualityExpression ( ( ( ( () ruleOpAnd ) )=> ( () ruleOpAnd ) ) ( (lv_operand_3_0= ruleCEqualityExpression ) ) )* ) ;
+ public final EObject ruleCAndOperator() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_CEqualityExpression_0 = null;
+
+ EObject lv_operand_3_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:4983:2: ( (this_CEqualityExpression_0= ruleCEqualityExpression ( ( ( ( () ruleOpAnd ) )=> ( () ruleOpAnd ) ) ( (lv_operand_3_0= ruleCEqualityExpression ) ) )* ) )
+ // InternalRBAModel.g:4984:2: (this_CEqualityExpression_0= ruleCEqualityExpression ( ( ( ( () ruleOpAnd ) )=> ( () ruleOpAnd ) ) ( (lv_operand_3_0= ruleCEqualityExpression ) ) )* )
+ {
+ // InternalRBAModel.g:4984:2: (this_CEqualityExpression_0= ruleCEqualityExpression ( ( ( ( () ruleOpAnd ) )=> ( () ruleOpAnd ) ) ( (lv_operand_3_0= ruleCEqualityExpression ) ) )* )
+ // InternalRBAModel.g:4985:3: this_CEqualityExpression_0= ruleCEqualityExpression ( ( ( ( () ruleOpAnd ) )=> ( () ruleOpAnd ) ) ( (lv_operand_3_0= ruleCEqualityExpression ) ) )*
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCAndOperatorAccess().getCEqualityExpressionParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_46);
+ this_CEqualityExpression_0=ruleCEqualityExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_CEqualityExpression_0;
+ afterParserOrEnumRuleCall();
+
+ }
+ // InternalRBAModel.g:4993:3: ( ( ( ( () ruleOpAnd ) )=> ( () ruleOpAnd ) ) ( (lv_operand_3_0= ruleCEqualityExpression ) ) )*
+ loop70:
+ do {
+ int alt70=2;
+ int LA70_0 = input.LA(1);
+
+ if ( (LA70_0==78) ) {
+ int LA70_2 = input.LA(2);
+
+ if ( (synpred6_InternalRBAModel()) ) {
+ alt70=1;
+ }
+
+
+ }
+
+
+ switch (alt70) {
+ case 1 :
+ // InternalRBAModel.g:4994:4: ( ( ( () ruleOpAnd ) )=> ( () ruleOpAnd ) ) ( (lv_operand_3_0= ruleCEqualityExpression ) )
+ {
+ // InternalRBAModel.g:4994:4: ( ( ( () ruleOpAnd ) )=> ( () ruleOpAnd ) )
+ // InternalRBAModel.g:4995:5: ( ( () ruleOpAnd ) )=> ( () ruleOpAnd )
+ {
+ // InternalRBAModel.g:5001:5: ( () ruleOpAnd )
+ // InternalRBAModel.g:5002:6: () ruleOpAnd
+ {
+ // InternalRBAModel.g:5002:6: ()
+ // InternalRBAModel.g:5003:7:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getCAndOperatorAccess().getAndOperatorOperandAction_1_0_0_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCAndOperatorAccess().getOpAndParserRuleCall_1_0_0_1());
+
+ }
+ pushFollow(FOLLOW_52);
+ ruleOpAnd();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // InternalRBAModel.g:5018:4: ( (lv_operand_3_0= ruleCEqualityExpression ) )
+ // InternalRBAModel.g:5019:5: (lv_operand_3_0= ruleCEqualityExpression )
+ {
+ // InternalRBAModel.g:5019:5: (lv_operand_3_0= ruleCEqualityExpression )
+ // InternalRBAModel.g:5020:6: lv_operand_3_0= ruleCEqualityExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCAndOperatorAccess().getOperandCEqualityExpressionParserRuleCall_1_1_0());
+
+ }
+ pushFollow(FOLLOW_46);
+ lv_operand_3_0=ruleCEqualityExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getCAndOperatorRule());
+ }
+ add(
+ current,
+ "operand",
+ lv_operand_3_0,
+ "rba.tool.editor.RBAModel.CEqualityExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop70;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleCAndOperator"
+
+
+ // $ANTLR start "entryRuleOpAnd"
+ // InternalRBAModel.g:5042:1: entryRuleOpAnd returns [String current=null] : iv_ruleOpAnd= ruleOpAnd EOF ;
+ public final String entryRuleOpAnd() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpAnd = null;
+
+
+ try {
+ // InternalRBAModel.g:5042:45: (iv_ruleOpAnd= ruleOpAnd EOF )
+ // InternalRBAModel.g:5043:2: iv_ruleOpAnd= ruleOpAnd EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpAndRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpAnd=ruleOpAnd();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpAnd.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpAnd"
+
+
+ // $ANTLR start "ruleOpAnd"
+ // InternalRBAModel.g:5049:1: ruleOpAnd returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'AND' ;
+ public final AntlrDatatypeRuleToken ruleOpAnd() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:5055:2: (kw= 'AND' )
+ // InternalRBAModel.g:5056:2: kw= 'AND'
+ {
+ kw=(Token)match(input,78,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpAndAccess().getANDKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpAnd"
+
+
+ // $ANTLR start "entryRuleCEqualityExpression"
+ // InternalRBAModel.g:5064:1: entryRuleCEqualityExpression returns [EObject current=null] : iv_ruleCEqualityExpression= ruleCEqualityExpression EOF ;
+ public final EObject entryRuleCEqualityExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleCEqualityExpression = null;
+
+
+ try {
+ // InternalRBAModel.g:5064:60: (iv_ruleCEqualityExpression= ruleCEqualityExpression EOF )
+ // InternalRBAModel.g:5065:2: iv_ruleCEqualityExpression= ruleCEqualityExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getCEqualityExpressionRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleCEqualityExpression=ruleCEqualityExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleCEqualityExpression;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleCEqualityExpression"
+
+
+ // $ANTLR start "ruleCEqualityExpression"
+ // InternalRBAModel.g:5071:1: ruleCEqualityExpression returns [EObject current=null] : (this_CRelationalExpression_0= ruleCRelationalExpression ( ( ( ( ( () ruleOpObjectCompare ) | ( () ruleOpObjectNotCompare ) | ( () ruleOpEquality ) ) )=> ( ( () ruleOpObjectCompare ) | ( () ruleOpObjectNotCompare ) | ( () ruleOpEquality ) ) ) ( (lv_operand_7_0= ruleCRelationalExpression ) ) )* ) ;
+ public final EObject ruleCEqualityExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_CRelationalExpression_0 = null;
+
+ EObject lv_operand_7_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:5077:2: ( (this_CRelationalExpression_0= ruleCRelationalExpression ( ( ( ( ( () ruleOpObjectCompare ) | ( () ruleOpObjectNotCompare ) | ( () ruleOpEquality ) ) )=> ( ( () ruleOpObjectCompare ) | ( () ruleOpObjectNotCompare ) | ( () ruleOpEquality ) ) ) ( (lv_operand_7_0= ruleCRelationalExpression ) ) )* ) )
+ // InternalRBAModel.g:5078:2: (this_CRelationalExpression_0= ruleCRelationalExpression ( ( ( ( ( () ruleOpObjectCompare ) | ( () ruleOpObjectNotCompare ) | ( () ruleOpEquality ) ) )=> ( ( () ruleOpObjectCompare ) | ( () ruleOpObjectNotCompare ) | ( () ruleOpEquality ) ) ) ( (lv_operand_7_0= ruleCRelationalExpression ) ) )* )
+ {
+ // InternalRBAModel.g:5078:2: (this_CRelationalExpression_0= ruleCRelationalExpression ( ( ( ( ( () ruleOpObjectCompare ) | ( () ruleOpObjectNotCompare ) | ( () ruleOpEquality ) ) )=> ( ( () ruleOpObjectCompare ) | ( () ruleOpObjectNotCompare ) | ( () ruleOpEquality ) ) ) ( (lv_operand_7_0= ruleCRelationalExpression ) ) )* )
+ // InternalRBAModel.g:5079:3: this_CRelationalExpression_0= ruleCRelationalExpression ( ( ( ( ( () ruleOpObjectCompare ) | ( () ruleOpObjectNotCompare ) | ( () ruleOpEquality ) ) )=> ( ( () ruleOpObjectCompare ) | ( () ruleOpObjectNotCompare ) | ( () ruleOpEquality ) ) ) ( (lv_operand_7_0= ruleCRelationalExpression ) ) )*
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCEqualityExpressionAccess().getCRelationalExpressionParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_54);
+ this_CRelationalExpression_0=ruleCRelationalExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_CRelationalExpression_0;
+ afterParserOrEnumRuleCall();
+
+ }
+ // InternalRBAModel.g:5087:3: ( ( ( ( ( () ruleOpObjectCompare ) | ( () ruleOpObjectNotCompare ) | ( () ruleOpEquality ) ) )=> ( ( () ruleOpObjectCompare ) | ( () ruleOpObjectNotCompare ) | ( () ruleOpEquality ) ) ) ( (lv_operand_7_0= ruleCRelationalExpression ) ) )*
+ loop72:
+ do {
+ int alt72=2;
+ switch ( input.LA(1) ) {
+ case 79:
+ {
+ int LA72_2 = input.LA(2);
+
+ if ( (synpred7_InternalRBAModel()) ) {
+ alt72=1;
+ }
+
+
+ }
+ break;
+ case 80:
+ {
+ int LA72_3 = input.LA(2);
+
+ if ( (synpred7_InternalRBAModel()) ) {
+ alt72=1;
+ }
+
+
+ }
+ break;
+ case 69:
+ {
+ int LA72_4 = input.LA(2);
+
+ if ( (synpred7_InternalRBAModel()) ) {
+ alt72=1;
+ }
+
+
+ }
+ break;
+
+ }
+
+ switch (alt72) {
+ case 1 :
+ // InternalRBAModel.g:5088:4: ( ( ( ( () ruleOpObjectCompare ) | ( () ruleOpObjectNotCompare ) | ( () ruleOpEquality ) ) )=> ( ( () ruleOpObjectCompare ) | ( () ruleOpObjectNotCompare ) | ( () ruleOpEquality ) ) ) ( (lv_operand_7_0= ruleCRelationalExpression ) )
+ {
+ // InternalRBAModel.g:5088:4: ( ( ( ( () ruleOpObjectCompare ) | ( () ruleOpObjectNotCompare ) | ( () ruleOpEquality ) ) )=> ( ( () ruleOpObjectCompare ) | ( () ruleOpObjectNotCompare ) | ( () ruleOpEquality ) ) )
+ // InternalRBAModel.g:5089:5: ( ( ( () ruleOpObjectCompare ) | ( () ruleOpObjectNotCompare ) | ( () ruleOpEquality ) ) )=> ( ( () ruleOpObjectCompare ) | ( () ruleOpObjectNotCompare ) | ( () ruleOpEquality ) )
+ {
+ // InternalRBAModel.g:5109:5: ( ( () ruleOpObjectCompare ) | ( () ruleOpObjectNotCompare ) | ( () ruleOpEquality ) )
+ int alt71=3;
+ switch ( input.LA(1) ) {
+ case 79:
+ {
+ alt71=1;
+ }
+ break;
+ case 80:
+ {
+ alt71=2;
+ }
+ break;
+ case 69:
+ {
+ alt71=3;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 71, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt71) {
+ case 1 :
+ // InternalRBAModel.g:5110:6: ( () ruleOpObjectCompare )
+ {
+ // InternalRBAModel.g:5110:6: ( () ruleOpObjectCompare )
+ // InternalRBAModel.g:5111:7: () ruleOpObjectCompare
+ {
+ // InternalRBAModel.g:5111:7: ()
+ // InternalRBAModel.g:5112:8:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getCEqualityExpressionAccess().getObjectCompareOperandAction_1_0_0_0_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCEqualityExpressionAccess().getOpObjectCompareParserRuleCall_1_0_0_0_1());
+
+ }
+ pushFollow(FOLLOW_52);
+ ruleOpObjectCompare();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:5127:6: ( () ruleOpObjectNotCompare )
+ {
+ // InternalRBAModel.g:5127:6: ( () ruleOpObjectNotCompare )
+ // InternalRBAModel.g:5128:7: () ruleOpObjectNotCompare
+ {
+ // InternalRBAModel.g:5128:7: ()
+ // InternalRBAModel.g:5129:8:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getCEqualityExpressionAccess().getObjectCompareNotOperandAction_1_0_0_1_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCEqualityExpressionAccess().getOpObjectNotCompareParserRuleCall_1_0_0_1_1());
+
+ }
+ pushFollow(FOLLOW_52);
+ ruleOpObjectNotCompare();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:5144:6: ( () ruleOpEquality )
+ {
+ // InternalRBAModel.g:5144:6: ( () ruleOpEquality )
+ // InternalRBAModel.g:5145:7: () ruleOpEquality
+ {
+ // InternalRBAModel.g:5145:7: ()
+ // InternalRBAModel.g:5146:8:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getCEqualityExpressionAccess().getIsEqualToOperatorOperandAction_1_0_0_2_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCEqualityExpressionAccess().getOpEqualityParserRuleCall_1_0_0_2_1());
+
+ }
+ pushFollow(FOLLOW_52);
+ ruleOpEquality();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ // InternalRBAModel.g:5162:4: ( (lv_operand_7_0= ruleCRelationalExpression ) )
+ // InternalRBAModel.g:5163:5: (lv_operand_7_0= ruleCRelationalExpression )
+ {
+ // InternalRBAModel.g:5163:5: (lv_operand_7_0= ruleCRelationalExpression )
+ // InternalRBAModel.g:5164:6: lv_operand_7_0= ruleCRelationalExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCEqualityExpressionAccess().getOperandCRelationalExpressionParserRuleCall_1_1_0());
+
+ }
+ pushFollow(FOLLOW_54);
+ lv_operand_7_0=ruleCRelationalExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getCEqualityExpressionRule());
+ }
+ add(
+ current,
+ "operand",
+ lv_operand_7_0,
+ "rba.tool.editor.RBAModel.CRelationalExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop72;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleCEqualityExpression"
+
+
+ // $ANTLR start "entryRuleOpObjectCompare"
+ // InternalRBAModel.g:5186:1: entryRuleOpObjectCompare returns [String current=null] : iv_ruleOpObjectCompare= ruleOpObjectCompare EOF ;
+ public final String entryRuleOpObjectCompare() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpObjectCompare = null;
+
+
+ try {
+ // InternalRBAModel.g:5186:55: (iv_ruleOpObjectCompare= ruleOpObjectCompare EOF )
+ // InternalRBAModel.g:5187:2: iv_ruleOpObjectCompare= ruleOpObjectCompare EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpObjectCompareRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpObjectCompare=ruleOpObjectCompare();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpObjectCompare.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpObjectCompare"
+
+
+ // $ANTLR start "ruleOpObjectCompare"
+ // InternalRBAModel.g:5193:1: ruleOpObjectCompare returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '==' ;
+ public final AntlrDatatypeRuleToken ruleOpObjectCompare() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:5199:2: (kw= '==' )
+ // InternalRBAModel.g:5200:2: kw= '=='
+ {
+ kw=(Token)match(input,79,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpObjectCompareAccess().getEqualsSignEqualsSignKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpObjectCompare"
+
+
+ // $ANTLR start "entryRuleOpObjectNotCompare"
+ // InternalRBAModel.g:5208:1: entryRuleOpObjectNotCompare returns [String current=null] : iv_ruleOpObjectNotCompare= ruleOpObjectNotCompare EOF ;
+ public final String entryRuleOpObjectNotCompare() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpObjectNotCompare = null;
+
+
+ try {
+ // InternalRBAModel.g:5208:58: (iv_ruleOpObjectNotCompare= ruleOpObjectNotCompare EOF )
+ // InternalRBAModel.g:5209:2: iv_ruleOpObjectNotCompare= ruleOpObjectNotCompare EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpObjectNotCompareRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpObjectNotCompare=ruleOpObjectNotCompare();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpObjectNotCompare.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpObjectNotCompare"
+
+
+ // $ANTLR start "ruleOpObjectNotCompare"
+ // InternalRBAModel.g:5215:1: ruleOpObjectNotCompare returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '!=' ;
+ public final AntlrDatatypeRuleToken ruleOpObjectNotCompare() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:5221:2: (kw= '!=' )
+ // InternalRBAModel.g:5222:2: kw= '!='
+ {
+ kw=(Token)match(input,80,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpObjectNotCompareAccess().getExclamationMarkEqualsSignKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpObjectNotCompare"
+
+
+ // $ANTLR start "entryRuleOpEquality"
+ // InternalRBAModel.g:5230:1: entryRuleOpEquality returns [String current=null] : iv_ruleOpEquality= ruleOpEquality EOF ;
+ public final String entryRuleOpEquality() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpEquality = null;
+
+
+ try {
+ // InternalRBAModel.g:5230:50: (iv_ruleOpEquality= ruleOpEquality EOF )
+ // InternalRBAModel.g:5231:2: iv_ruleOpEquality= ruleOpEquality EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpEqualityRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpEquality=ruleOpEquality();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpEquality.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpEquality"
+
+
+ // $ANTLR start "ruleOpEquality"
+ // InternalRBAModel.g:5237:1: ruleOpEquality returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '=' ;
+ public final AntlrDatatypeRuleToken ruleOpEquality() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:5243:2: (kw= '=' )
+ // InternalRBAModel.g:5244:2: kw= '='
+ {
+ kw=(Token)match(input,69,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpEqualityAccess().getEqualsSignKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpEquality"
+
+
+ // $ANTLR start "entryRuleCRelationalExpression"
+ // InternalRBAModel.g:5252:1: entryRuleCRelationalExpression returns [EObject current=null] : iv_ruleCRelationalExpression= ruleCRelationalExpression EOF ;
+ public final EObject entryRuleCRelationalExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleCRelationalExpression = null;
+
+
+ try {
+ // InternalRBAModel.g:5252:62: (iv_ruleCRelationalExpression= ruleCRelationalExpression EOF )
+ // InternalRBAModel.g:5253:2: iv_ruleCRelationalExpression= ruleCRelationalExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getCRelationalExpressionRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleCRelationalExpression=ruleCRelationalExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleCRelationalExpression;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleCRelationalExpression"
+
+
+ // $ANTLR start "ruleCRelationalExpression"
+ // InternalRBAModel.g:5259:1: ruleCRelationalExpression returns [EObject current=null] : (this_CUnaryOperation_0= ruleCUnaryOperation ( ( ( ( ( () ruleOpIsGreaterThanEqual ) | ( () ruleOpIsLowerThanEqual ) | ( () ruleOpIsGreaterThan ) | ( () ruleOpIsLowerThan ) ) )=> ( ( () ruleOpIsGreaterThanEqual ) | ( () ruleOpIsLowerThanEqual ) | ( () ruleOpIsGreaterThan ) | ( () ruleOpIsLowerThan ) ) ) ( (lv_operand_9_0= ruleCUnaryOperation ) ) )* ) ;
+ public final EObject ruleCRelationalExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_CUnaryOperation_0 = null;
+
+ EObject lv_operand_9_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:5265:2: ( (this_CUnaryOperation_0= ruleCUnaryOperation ( ( ( ( ( () ruleOpIsGreaterThanEqual ) | ( () ruleOpIsLowerThanEqual ) | ( () ruleOpIsGreaterThan ) | ( () ruleOpIsLowerThan ) ) )=> ( ( () ruleOpIsGreaterThanEqual ) | ( () ruleOpIsLowerThanEqual ) | ( () ruleOpIsGreaterThan ) | ( () ruleOpIsLowerThan ) ) ) ( (lv_operand_9_0= ruleCUnaryOperation ) ) )* ) )
+ // InternalRBAModel.g:5266:2: (this_CUnaryOperation_0= ruleCUnaryOperation ( ( ( ( ( () ruleOpIsGreaterThanEqual ) | ( () ruleOpIsLowerThanEqual ) | ( () ruleOpIsGreaterThan ) | ( () ruleOpIsLowerThan ) ) )=> ( ( () ruleOpIsGreaterThanEqual ) | ( () ruleOpIsLowerThanEqual ) | ( () ruleOpIsGreaterThan ) | ( () ruleOpIsLowerThan ) ) ) ( (lv_operand_9_0= ruleCUnaryOperation ) ) )* )
+ {
+ // InternalRBAModel.g:5266:2: (this_CUnaryOperation_0= ruleCUnaryOperation ( ( ( ( ( () ruleOpIsGreaterThanEqual ) | ( () ruleOpIsLowerThanEqual ) | ( () ruleOpIsGreaterThan ) | ( () ruleOpIsLowerThan ) ) )=> ( ( () ruleOpIsGreaterThanEqual ) | ( () ruleOpIsLowerThanEqual ) | ( () ruleOpIsGreaterThan ) | ( () ruleOpIsLowerThan ) ) ) ( (lv_operand_9_0= ruleCUnaryOperation ) ) )* )
+ // InternalRBAModel.g:5267:3: this_CUnaryOperation_0= ruleCUnaryOperation ( ( ( ( ( () ruleOpIsGreaterThanEqual ) | ( () ruleOpIsLowerThanEqual ) | ( () ruleOpIsGreaterThan ) | ( () ruleOpIsLowerThan ) ) )=> ( ( () ruleOpIsGreaterThanEqual ) | ( () ruleOpIsLowerThanEqual ) | ( () ruleOpIsGreaterThan ) | ( () ruleOpIsLowerThan ) ) ) ( (lv_operand_9_0= ruleCUnaryOperation ) ) )*
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCRelationalExpressionAccess().getCUnaryOperationParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_55);
+ this_CUnaryOperation_0=ruleCUnaryOperation();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_CUnaryOperation_0;
+ afterParserOrEnumRuleCall();
+
+ }
+ // InternalRBAModel.g:5275:3: ( ( ( ( ( () ruleOpIsGreaterThanEqual ) | ( () ruleOpIsLowerThanEqual ) | ( () ruleOpIsGreaterThan ) | ( () ruleOpIsLowerThan ) ) )=> ( ( () ruleOpIsGreaterThanEqual ) | ( () ruleOpIsLowerThanEqual ) | ( () ruleOpIsGreaterThan ) | ( () ruleOpIsLowerThan ) ) ) ( (lv_operand_9_0= ruleCUnaryOperation ) ) )*
+ loop74:
+ do {
+ int alt74=2;
+ switch ( input.LA(1) ) {
+ case 81:
+ {
+ int LA74_2 = input.LA(2);
+
+ if ( (synpred8_InternalRBAModel()) ) {
+ alt74=1;
+ }
+
+
+ }
+ break;
+ case 82:
+ {
+ int LA74_3 = input.LA(2);
+
+ if ( (synpred8_InternalRBAModel()) ) {
+ alt74=1;
+ }
+
+
+ }
+ break;
+ case 33:
+ {
+ int LA74_4 = input.LA(2);
+
+ if ( (synpred8_InternalRBAModel()) ) {
+ alt74=1;
+ }
+
+
+ }
+ break;
+ case 32:
+ {
+ int LA74_5 = input.LA(2);
+
+ if ( (synpred8_InternalRBAModel()) ) {
+ alt74=1;
+ }
+
+
+ }
+ break;
+
+ }
+
+ switch (alt74) {
+ case 1 :
+ // InternalRBAModel.g:5276:4: ( ( ( ( () ruleOpIsGreaterThanEqual ) | ( () ruleOpIsLowerThanEqual ) | ( () ruleOpIsGreaterThan ) | ( () ruleOpIsLowerThan ) ) )=> ( ( () ruleOpIsGreaterThanEqual ) | ( () ruleOpIsLowerThanEqual ) | ( () ruleOpIsGreaterThan ) | ( () ruleOpIsLowerThan ) ) ) ( (lv_operand_9_0= ruleCUnaryOperation ) )
+ {
+ // InternalRBAModel.g:5276:4: ( ( ( ( () ruleOpIsGreaterThanEqual ) | ( () ruleOpIsLowerThanEqual ) | ( () ruleOpIsGreaterThan ) | ( () ruleOpIsLowerThan ) ) )=> ( ( () ruleOpIsGreaterThanEqual ) | ( () ruleOpIsLowerThanEqual ) | ( () ruleOpIsGreaterThan ) | ( () ruleOpIsLowerThan ) ) )
+ // InternalRBAModel.g:5277:5: ( ( ( () ruleOpIsGreaterThanEqual ) | ( () ruleOpIsLowerThanEqual ) | ( () ruleOpIsGreaterThan ) | ( () ruleOpIsLowerThan ) ) )=> ( ( () ruleOpIsGreaterThanEqual ) | ( () ruleOpIsLowerThanEqual ) | ( () ruleOpIsGreaterThan ) | ( () ruleOpIsLowerThan ) )
+ {
+ // InternalRBAModel.g:5303:5: ( ( () ruleOpIsGreaterThanEqual ) | ( () ruleOpIsLowerThanEqual ) | ( () ruleOpIsGreaterThan ) | ( () ruleOpIsLowerThan ) )
+ int alt73=4;
+ switch ( input.LA(1) ) {
+ case 81:
+ {
+ alt73=1;
+ }
+ break;
+ case 82:
+ {
+ alt73=2;
+ }
+ break;
+ case 33:
+ {
+ alt73=3;
+ }
+ break;
+ case 32:
+ {
+ alt73=4;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 73, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt73) {
+ case 1 :
+ // InternalRBAModel.g:5304:6: ( () ruleOpIsGreaterThanEqual )
+ {
+ // InternalRBAModel.g:5304:6: ( () ruleOpIsGreaterThanEqual )
+ // InternalRBAModel.g:5305:7: () ruleOpIsGreaterThanEqual
+ {
+ // InternalRBAModel.g:5305:7: ()
+ // InternalRBAModel.g:5306:8:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getCRelationalExpressionAccess().getIsGreaterThanEqualOperatorOperandAction_1_0_0_0_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCRelationalExpressionAccess().getOpIsGreaterThanEqualParserRuleCall_1_0_0_0_1());
+
+ }
+ pushFollow(FOLLOW_52);
+ ruleOpIsGreaterThanEqual();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:5321:6: ( () ruleOpIsLowerThanEqual )
+ {
+ // InternalRBAModel.g:5321:6: ( () ruleOpIsLowerThanEqual )
+ // InternalRBAModel.g:5322:7: () ruleOpIsLowerThanEqual
+ {
+ // InternalRBAModel.g:5322:7: ()
+ // InternalRBAModel.g:5323:8:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getCRelationalExpressionAccess().getIsLowerThanEqualOperatorOperandAction_1_0_0_1_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCRelationalExpressionAccess().getOpIsLowerThanEqualParserRuleCall_1_0_0_1_1());
+
+ }
+ pushFollow(FOLLOW_52);
+ ruleOpIsLowerThanEqual();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:5338:6: ( () ruleOpIsGreaterThan )
+ {
+ // InternalRBAModel.g:5338:6: ( () ruleOpIsGreaterThan )
+ // InternalRBAModel.g:5339:7: () ruleOpIsGreaterThan
+ {
+ // InternalRBAModel.g:5339:7: ()
+ // InternalRBAModel.g:5340:8:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getCRelationalExpressionAccess().getIsGreaterThanOperatorOperandAction_1_0_0_2_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCRelationalExpressionAccess().getOpIsGreaterThanParserRuleCall_1_0_0_2_1());
+
+ }
+ pushFollow(FOLLOW_52);
+ ruleOpIsGreaterThan();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // InternalRBAModel.g:5355:6: ( () ruleOpIsLowerThan )
+ {
+ // InternalRBAModel.g:5355:6: ( () ruleOpIsLowerThan )
+ // InternalRBAModel.g:5356:7: () ruleOpIsLowerThan
+ {
+ // InternalRBAModel.g:5356:7: ()
+ // InternalRBAModel.g:5357:8:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getCRelationalExpressionAccess().getIsLowerThanOperatorOperandAction_1_0_0_3_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCRelationalExpressionAccess().getOpIsLowerThanParserRuleCall_1_0_0_3_1());
+
+ }
+ pushFollow(FOLLOW_52);
+ ruleOpIsLowerThan();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ // InternalRBAModel.g:5373:4: ( (lv_operand_9_0= ruleCUnaryOperation ) )
+ // InternalRBAModel.g:5374:5: (lv_operand_9_0= ruleCUnaryOperation )
+ {
+ // InternalRBAModel.g:5374:5: (lv_operand_9_0= ruleCUnaryOperation )
+ // InternalRBAModel.g:5375:6: lv_operand_9_0= ruleCUnaryOperation
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCRelationalExpressionAccess().getOperandCUnaryOperationParserRuleCall_1_1_0());
+
+ }
+ pushFollow(FOLLOW_55);
+ lv_operand_9_0=ruleCUnaryOperation();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getCRelationalExpressionRule());
+ }
+ add(
+ current,
+ "operand",
+ lv_operand_9_0,
+ "rba.tool.editor.RBAModel.CUnaryOperation");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop74;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleCRelationalExpression"
+
+
+ // $ANTLR start "entryRuleOpIsGreaterThanEqual"
+ // InternalRBAModel.g:5397:1: entryRuleOpIsGreaterThanEqual returns [String current=null] : iv_ruleOpIsGreaterThanEqual= ruleOpIsGreaterThanEqual EOF ;
+ public final String entryRuleOpIsGreaterThanEqual() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpIsGreaterThanEqual = null;
+
+
+ try {
+ // InternalRBAModel.g:5397:60: (iv_ruleOpIsGreaterThanEqual= ruleOpIsGreaterThanEqual EOF )
+ // InternalRBAModel.g:5398:2: iv_ruleOpIsGreaterThanEqual= ruleOpIsGreaterThanEqual EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpIsGreaterThanEqualRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpIsGreaterThanEqual=ruleOpIsGreaterThanEqual();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpIsGreaterThanEqual.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpIsGreaterThanEqual"
+
+
+ // $ANTLR start "ruleOpIsGreaterThanEqual"
+ // InternalRBAModel.g:5404:1: ruleOpIsGreaterThanEqual returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '>=' ;
+ public final AntlrDatatypeRuleToken ruleOpIsGreaterThanEqual() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:5410:2: (kw= '>=' )
+ // InternalRBAModel.g:5411:2: kw= '>='
+ {
+ kw=(Token)match(input,81,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpIsGreaterThanEqualAccess().getGreaterThanSignEqualsSignKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpIsGreaterThanEqual"
+
+
+ // $ANTLR start "entryRuleOpIsLowerThanEqual"
+ // InternalRBAModel.g:5419:1: entryRuleOpIsLowerThanEqual returns [String current=null] : iv_ruleOpIsLowerThanEqual= ruleOpIsLowerThanEqual EOF ;
+ public final String entryRuleOpIsLowerThanEqual() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpIsLowerThanEqual = null;
+
+
+ try {
+ // InternalRBAModel.g:5419:58: (iv_ruleOpIsLowerThanEqual= ruleOpIsLowerThanEqual EOF )
+ // InternalRBAModel.g:5420:2: iv_ruleOpIsLowerThanEqual= ruleOpIsLowerThanEqual EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpIsLowerThanEqualRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpIsLowerThanEqual=ruleOpIsLowerThanEqual();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpIsLowerThanEqual.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpIsLowerThanEqual"
+
+
+ // $ANTLR start "ruleOpIsLowerThanEqual"
+ // InternalRBAModel.g:5426:1: ruleOpIsLowerThanEqual returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '<=' ;
+ public final AntlrDatatypeRuleToken ruleOpIsLowerThanEqual() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:5432:2: (kw= '<=' )
+ // InternalRBAModel.g:5433:2: kw= '<='
+ {
+ kw=(Token)match(input,82,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpIsLowerThanEqualAccess().getLessThanSignEqualsSignKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpIsLowerThanEqual"
+
+
+ // $ANTLR start "entryRuleOpIsGreaterThan"
+ // InternalRBAModel.g:5441:1: entryRuleOpIsGreaterThan returns [String current=null] : iv_ruleOpIsGreaterThan= ruleOpIsGreaterThan EOF ;
+ public final String entryRuleOpIsGreaterThan() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpIsGreaterThan = null;
+
+
+ try {
+ // InternalRBAModel.g:5441:55: (iv_ruleOpIsGreaterThan= ruleOpIsGreaterThan EOF )
+ // InternalRBAModel.g:5442:2: iv_ruleOpIsGreaterThan= ruleOpIsGreaterThan EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpIsGreaterThanRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpIsGreaterThan=ruleOpIsGreaterThan();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpIsGreaterThan.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpIsGreaterThan"
+
+
+ // $ANTLR start "ruleOpIsGreaterThan"
+ // InternalRBAModel.g:5448:1: ruleOpIsGreaterThan returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '>' ;
+ public final AntlrDatatypeRuleToken ruleOpIsGreaterThan() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:5454:2: (kw= '>' )
+ // InternalRBAModel.g:5455:2: kw= '>'
+ {
+ kw=(Token)match(input,33,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpIsGreaterThanAccess().getGreaterThanSignKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpIsGreaterThan"
+
+
+ // $ANTLR start "entryRuleOpIsLowerThan"
+ // InternalRBAModel.g:5463:1: entryRuleOpIsLowerThan returns [String current=null] : iv_ruleOpIsLowerThan= ruleOpIsLowerThan EOF ;
+ public final String entryRuleOpIsLowerThan() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpIsLowerThan = null;
+
+
+ try {
+ // InternalRBAModel.g:5463:53: (iv_ruleOpIsLowerThan= ruleOpIsLowerThan EOF )
+ // InternalRBAModel.g:5464:2: iv_ruleOpIsLowerThan= ruleOpIsLowerThan EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpIsLowerThanRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpIsLowerThan=ruleOpIsLowerThan();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpIsLowerThan.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpIsLowerThan"
+
+
+ // $ANTLR start "ruleOpIsLowerThan"
+ // InternalRBAModel.g:5470:1: ruleOpIsLowerThan returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '<' ;
+ public final AntlrDatatypeRuleToken ruleOpIsLowerThan() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:5476:2: (kw= '<' )
+ // InternalRBAModel.g:5477:2: kw= '<'
+ {
+ kw=(Token)match(input,32,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpIsLowerThanAccess().getLessThanSignKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpIsLowerThan"
+
+
+ // $ANTLR start "entryRuleCUnaryOperation"
+ // InternalRBAModel.g:5485:1: entryRuleCUnaryOperation returns [EObject current=null] : iv_ruleCUnaryOperation= ruleCUnaryOperation EOF ;
+ public final EObject entryRuleCUnaryOperation() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleCUnaryOperation = null;
+
+
+ try {
+ // InternalRBAModel.g:5485:56: (iv_ruleCUnaryOperation= ruleCUnaryOperation EOF )
+ // InternalRBAModel.g:5486:2: iv_ruleCUnaryOperation= ruleCUnaryOperation EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getCUnaryOperationRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleCUnaryOperation=ruleCUnaryOperation();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleCUnaryOperation;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleCUnaryOperation"
+
+
+ // $ANTLR start "ruleCUnaryOperation"
+ // InternalRBAModel.g:5492:1: ruleCUnaryOperation returns [EObject current=null] : ( ( () ruleOpNot ( (lv_operand_2_0= ruleCUnaryOperation ) ) ) | this_COperationFeatureCall_3= ruleCOperationFeatureCall ) ;
+ public final EObject ruleCUnaryOperation() throws RecognitionException {
+ EObject current = null;
+
+ EObject lv_operand_2_0 = null;
+
+ EObject this_COperationFeatureCall_3 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:5498:2: ( ( ( () ruleOpNot ( (lv_operand_2_0= ruleCUnaryOperation ) ) ) | this_COperationFeatureCall_3= ruleCOperationFeatureCall ) )
+ // InternalRBAModel.g:5499:2: ( ( () ruleOpNot ( (lv_operand_2_0= ruleCUnaryOperation ) ) ) | this_COperationFeatureCall_3= ruleCOperationFeatureCall )
+ {
+ // InternalRBAModel.g:5499:2: ( ( () ruleOpNot ( (lv_operand_2_0= ruleCUnaryOperation ) ) ) | this_COperationFeatureCall_3= ruleCOperationFeatureCall )
+ int alt75=2;
+ int LA75_0 = input.LA(1);
+
+ if ( (LA75_0==83) ) {
+ alt75=1;
+ }
+ else if ( (LA75_0==RULE_INT||LA75_0==RULE_ID||LA75_0==26||LA75_0==34||(LA75_0>=120 && LA75_0<=128)||(LA75_0>=131 && LA75_0<=132)||LA75_0==148||LA75_0==150) ) {
+ alt75=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 75, 0, input);
+
+ throw nvae;
+ }
+ switch (alt75) {
+ case 1 :
+ // InternalRBAModel.g:5500:3: ( () ruleOpNot ( (lv_operand_2_0= ruleCUnaryOperation ) ) )
+ {
+ // InternalRBAModel.g:5500:3: ( () ruleOpNot ( (lv_operand_2_0= ruleCUnaryOperation ) ) )
+ // InternalRBAModel.g:5501:4: () ruleOpNot ( (lv_operand_2_0= ruleCUnaryOperation ) )
+ {
+ // InternalRBAModel.g:5501:4: ()
+ // InternalRBAModel.g:5502:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getCUnaryOperationAccess().getNotOperatorAction_0_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCUnaryOperationAccess().getOpNotParserRuleCall_0_1());
+
+ }
+ pushFollow(FOLLOW_52);
+ ruleOpNot();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+ // InternalRBAModel.g:5515:4: ( (lv_operand_2_0= ruleCUnaryOperation ) )
+ // InternalRBAModel.g:5516:5: (lv_operand_2_0= ruleCUnaryOperation )
+ {
+ // InternalRBAModel.g:5516:5: (lv_operand_2_0= ruleCUnaryOperation )
+ // InternalRBAModel.g:5517:6: lv_operand_2_0= ruleCUnaryOperation
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCUnaryOperationAccess().getOperandCUnaryOperationParserRuleCall_0_2_0());
+
+ }
+ pushFollow(FOLLOW_2);
+ lv_operand_2_0=ruleCUnaryOperation();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getCUnaryOperationRule());
+ }
+ add(
+ current,
+ "operand",
+ lv_operand_2_0,
+ "rba.tool.editor.RBAModel.CUnaryOperation");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:5536:3: this_COperationFeatureCall_3= ruleCOperationFeatureCall
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCUnaryOperationAccess().getCOperationFeatureCallParserRuleCall_1());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_COperationFeatureCall_3=ruleCOperationFeatureCall();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_COperationFeatureCall_3;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleCUnaryOperation"
+
+
+ // $ANTLR start "entryRuleOpNot"
+ // InternalRBAModel.g:5548:1: entryRuleOpNot returns [String current=null] : iv_ruleOpNot= ruleOpNot EOF ;
+ public final String entryRuleOpNot() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpNot = null;
+
+
+ try {
+ // InternalRBAModel.g:5548:45: (iv_ruleOpNot= ruleOpNot EOF )
+ // InternalRBAModel.g:5549:2: iv_ruleOpNot= ruleOpNot EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpNotRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpNot=ruleOpNot();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpNot.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpNot"
+
+
+ // $ANTLR start "ruleOpNot"
+ // InternalRBAModel.g:5555:1: ruleOpNot returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '!' ;
+ public final AntlrDatatypeRuleToken ruleOpNot() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:5561:2: (kw= '!' )
+ // InternalRBAModel.g:5562:2: kw= '!'
+ {
+ kw=(Token)match(input,83,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpNotAccess().getExclamationMarkKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpNot"
+
+
+ // $ANTLR start "entryRuleCOperationFeatureCall"
+ // InternalRBAModel.g:5570:1: entryRuleCOperationFeatureCall returns [EObject current=null] : iv_ruleCOperationFeatureCall= ruleCOperationFeatureCall EOF ;
+ public final EObject entryRuleCOperationFeatureCall() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleCOperationFeatureCall = null;
+
+
+ try {
+ // InternalRBAModel.g:5570:62: (iv_ruleCOperationFeatureCall= ruleCOperationFeatureCall EOF )
+ // InternalRBAModel.g:5571:2: iv_ruleCOperationFeatureCall= ruleCOperationFeatureCall EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getCOperationFeatureCallRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleCOperationFeatureCall=ruleCOperationFeatureCall();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleCOperationFeatureCall;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleCOperationFeatureCall"
+
+
+ // $ANTLR start "ruleCOperationFeatureCall"
+ // InternalRBAModel.g:5577:1: ruleCOperationFeatureCall returns [EObject current=null] : (this_CPrimaryExpression_0= ruleCPrimaryExpression ( ( ( '.' )=>otherlv_1= '.' ) ( ( ( ( () ruleOpGetProperty ) | ( () ruleOpIsOn ) | ( () ruleOpGetContentsList ) | ( () ruleOpContentValue ) | ( () ruleOpIsActive ) | ( () ruleOpGetAllocatables ) | ( () ruleOpAllocatedContent ) | ( () ruleOpHasComeEarlierThan ) | ( () ruleOpHasComeLaterThan ) | ( () ruleOpStateValue ) | ( () ruleOpActiveContents ) | ( () ruleOpSizeOperator ) | ( () ruleOpHasBeenDisplayed ) | ( () ruleOpActiveState ) | ( () ruleOpIsDisplayed ) | ( () ruleOpIsHidden ) | ( () ruleOpDisplayingContent ) | ( () ruleOpIsVisible ) | ( () ruleOpIsOutputted ) | ( () ruleOpIsMuted ) | ( () ruleOpOutputtingSound ) | ( () ruleOpIsSounding ) | ( () ruleOpIsAllocatedTo ) | ( () ruleOpIsChanged ) | ( () ruleOpIsTranslatedTo ) | ( () ruleOpIsDisplayedOn ) | ( () ruleOpIsChangedDisplay ) | ( () ruleOpIsTranslatedViewTo ) | ( () ruleOpIsOutputtedOn ) | ( () ruleOpIsChangedOutput ) | ( () ruleOpIsTranslatedSoundTo ) | ( () ruleOpIsAttenuated ) ) ( ( ( '(' ( ( ruleCExpression ) )? ')' ) )=> (otherlv_66= '(' ( (lv_operand_67_0= ruleCExpression ) )? otherlv_68= ')' ) ) ) | ( ( () ruleOpIsTypeOf ) ( ( ( '(' ( ( ruleEString ) )? ')' ) )=> (otherlv_71= '(' ( (lv_tagName_72_0= ruleEString ) )? otherlv_73= ')' ) )? ) | ( ( () ruleOpMaxOperator ( ( ( () '{' ) )=> (lv_lambda_76_0= ruleLambdaExpression ) ) ) | ( () ruleOpMinOperator ( ( ( () '{' ) )=> (lv_lambda_79_0= ruleLambdaExpression ) ) ) | ( () ruleOpSelectOperator ( ( ( () '{' ) )=> (lv_lambda_82_0= ruleLambdaExpression ) ) ) ) ) )* ) ;
+ public final EObject ruleCOperationFeatureCall() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_66=null;
+ Token otherlv_68=null;
+ Token otherlv_71=null;
+ Token otherlv_73=null;
+ EObject this_CPrimaryExpression_0 = null;
+
+ EObject lv_operand_67_0 = null;
+
+ AntlrDatatypeRuleToken lv_tagName_72_0 = null;
+
+ EObject lv_lambda_76_0 = null;
+
+ EObject lv_lambda_79_0 = null;
+
+ EObject lv_lambda_82_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:5583:2: ( (this_CPrimaryExpression_0= ruleCPrimaryExpression ( ( ( '.' )=>otherlv_1= '.' ) ( ( ( ( () ruleOpGetProperty ) | ( () ruleOpIsOn ) | ( () ruleOpGetContentsList ) | ( () ruleOpContentValue ) | ( () ruleOpIsActive ) | ( () ruleOpGetAllocatables ) | ( () ruleOpAllocatedContent ) | ( () ruleOpHasComeEarlierThan ) | ( () ruleOpHasComeLaterThan ) | ( () ruleOpStateValue ) | ( () ruleOpActiveContents ) | ( () ruleOpSizeOperator ) | ( () ruleOpHasBeenDisplayed ) | ( () ruleOpActiveState ) | ( () ruleOpIsDisplayed ) | ( () ruleOpIsHidden ) | ( () ruleOpDisplayingContent ) | ( () ruleOpIsVisible ) | ( () ruleOpIsOutputted ) | ( () ruleOpIsMuted ) | ( () ruleOpOutputtingSound ) | ( () ruleOpIsSounding ) | ( () ruleOpIsAllocatedTo ) | ( () ruleOpIsChanged ) | ( () ruleOpIsTranslatedTo ) | ( () ruleOpIsDisplayedOn ) | ( () ruleOpIsChangedDisplay ) | ( () ruleOpIsTranslatedViewTo ) | ( () ruleOpIsOutputtedOn ) | ( () ruleOpIsChangedOutput ) | ( () ruleOpIsTranslatedSoundTo ) | ( () ruleOpIsAttenuated ) ) ( ( ( '(' ( ( ruleCExpression ) )? ')' ) )=> (otherlv_66= '(' ( (lv_operand_67_0= ruleCExpression ) )? otherlv_68= ')' ) ) ) | ( ( () ruleOpIsTypeOf ) ( ( ( '(' ( ( ruleEString ) )? ')' ) )=> (otherlv_71= '(' ( (lv_tagName_72_0= ruleEString ) )? otherlv_73= ')' ) )? ) | ( ( () ruleOpMaxOperator ( ( ( () '{' ) )=> (lv_lambda_76_0= ruleLambdaExpression ) ) ) | ( () ruleOpMinOperator ( ( ( () '{' ) )=> (lv_lambda_79_0= ruleLambdaExpression ) ) ) | ( () ruleOpSelectOperator ( ( ( () '{' ) )=> (lv_lambda_82_0= ruleLambdaExpression ) ) ) ) ) )* ) )
+ // InternalRBAModel.g:5584:2: (this_CPrimaryExpression_0= ruleCPrimaryExpression ( ( ( '.' )=>otherlv_1= '.' ) ( ( ( ( () ruleOpGetProperty ) | ( () ruleOpIsOn ) | ( () ruleOpGetContentsList ) | ( () ruleOpContentValue ) | ( () ruleOpIsActive ) | ( () ruleOpGetAllocatables ) | ( () ruleOpAllocatedContent ) | ( () ruleOpHasComeEarlierThan ) | ( () ruleOpHasComeLaterThan ) | ( () ruleOpStateValue ) | ( () ruleOpActiveContents ) | ( () ruleOpSizeOperator ) | ( () ruleOpHasBeenDisplayed ) | ( () ruleOpActiveState ) | ( () ruleOpIsDisplayed ) | ( () ruleOpIsHidden ) | ( () ruleOpDisplayingContent ) | ( () ruleOpIsVisible ) | ( () ruleOpIsOutputted ) | ( () ruleOpIsMuted ) | ( () ruleOpOutputtingSound ) | ( () ruleOpIsSounding ) | ( () ruleOpIsAllocatedTo ) | ( () ruleOpIsChanged ) | ( () ruleOpIsTranslatedTo ) | ( () ruleOpIsDisplayedOn ) | ( () ruleOpIsChangedDisplay ) | ( () ruleOpIsTranslatedViewTo ) | ( () ruleOpIsOutputtedOn ) | ( () ruleOpIsChangedOutput ) | ( () ruleOpIsTranslatedSoundTo ) | ( () ruleOpIsAttenuated ) ) ( ( ( '(' ( ( ruleCExpression ) )? ')' ) )=> (otherlv_66= '(' ( (lv_operand_67_0= ruleCExpression ) )? otherlv_68= ')' ) ) ) | ( ( () ruleOpIsTypeOf ) ( ( ( '(' ( ( ruleEString ) )? ')' ) )=> (otherlv_71= '(' ( (lv_tagName_72_0= ruleEString ) )? otherlv_73= ')' ) )? ) | ( ( () ruleOpMaxOperator ( ( ( () '{' ) )=> (lv_lambda_76_0= ruleLambdaExpression ) ) ) | ( () ruleOpMinOperator ( ( ( () '{' ) )=> (lv_lambda_79_0= ruleLambdaExpression ) ) ) | ( () ruleOpSelectOperator ( ( ( () '{' ) )=> (lv_lambda_82_0= ruleLambdaExpression ) ) ) ) ) )* )
+ {
+ // InternalRBAModel.g:5584:2: (this_CPrimaryExpression_0= ruleCPrimaryExpression ( ( ( '.' )=>otherlv_1= '.' ) ( ( ( ( () ruleOpGetProperty ) | ( () ruleOpIsOn ) | ( () ruleOpGetContentsList ) | ( () ruleOpContentValue ) | ( () ruleOpIsActive ) | ( () ruleOpGetAllocatables ) | ( () ruleOpAllocatedContent ) | ( () ruleOpHasComeEarlierThan ) | ( () ruleOpHasComeLaterThan ) | ( () ruleOpStateValue ) | ( () ruleOpActiveContents ) | ( () ruleOpSizeOperator ) | ( () ruleOpHasBeenDisplayed ) | ( () ruleOpActiveState ) | ( () ruleOpIsDisplayed ) | ( () ruleOpIsHidden ) | ( () ruleOpDisplayingContent ) | ( () ruleOpIsVisible ) | ( () ruleOpIsOutputted ) | ( () ruleOpIsMuted ) | ( () ruleOpOutputtingSound ) | ( () ruleOpIsSounding ) | ( () ruleOpIsAllocatedTo ) | ( () ruleOpIsChanged ) | ( () ruleOpIsTranslatedTo ) | ( () ruleOpIsDisplayedOn ) | ( () ruleOpIsChangedDisplay ) | ( () ruleOpIsTranslatedViewTo ) | ( () ruleOpIsOutputtedOn ) | ( () ruleOpIsChangedOutput ) | ( () ruleOpIsTranslatedSoundTo ) | ( () ruleOpIsAttenuated ) ) ( ( ( '(' ( ( ruleCExpression ) )? ')' ) )=> (otherlv_66= '(' ( (lv_operand_67_0= ruleCExpression ) )? otherlv_68= ')' ) ) ) | ( ( () ruleOpIsTypeOf ) ( ( ( '(' ( ( ruleEString ) )? ')' ) )=> (otherlv_71= '(' ( (lv_tagName_72_0= ruleEString ) )? otherlv_73= ')' ) )? ) | ( ( () ruleOpMaxOperator ( ( ( () '{' ) )=> (lv_lambda_76_0= ruleLambdaExpression ) ) ) | ( () ruleOpMinOperator ( ( ( () '{' ) )=> (lv_lambda_79_0= ruleLambdaExpression ) ) ) | ( () ruleOpSelectOperator ( ( ( () '{' ) )=> (lv_lambda_82_0= ruleLambdaExpression ) ) ) ) ) )* )
+ // InternalRBAModel.g:5585:3: this_CPrimaryExpression_0= ruleCPrimaryExpression ( ( ( '.' )=>otherlv_1= '.' ) ( ( ( ( () ruleOpGetProperty ) | ( () ruleOpIsOn ) | ( () ruleOpGetContentsList ) | ( () ruleOpContentValue ) | ( () ruleOpIsActive ) | ( () ruleOpGetAllocatables ) | ( () ruleOpAllocatedContent ) | ( () ruleOpHasComeEarlierThan ) | ( () ruleOpHasComeLaterThan ) | ( () ruleOpStateValue ) | ( () ruleOpActiveContents ) | ( () ruleOpSizeOperator ) | ( () ruleOpHasBeenDisplayed ) | ( () ruleOpActiveState ) | ( () ruleOpIsDisplayed ) | ( () ruleOpIsHidden ) | ( () ruleOpDisplayingContent ) | ( () ruleOpIsVisible ) | ( () ruleOpIsOutputted ) | ( () ruleOpIsMuted ) | ( () ruleOpOutputtingSound ) | ( () ruleOpIsSounding ) | ( () ruleOpIsAllocatedTo ) | ( () ruleOpIsChanged ) | ( () ruleOpIsTranslatedTo ) | ( () ruleOpIsDisplayedOn ) | ( () ruleOpIsChangedDisplay ) | ( () ruleOpIsTranslatedViewTo ) | ( () ruleOpIsOutputtedOn ) | ( () ruleOpIsChangedOutput ) | ( () ruleOpIsTranslatedSoundTo ) | ( () ruleOpIsAttenuated ) ) ( ( ( '(' ( ( ruleCExpression ) )? ')' ) )=> (otherlv_66= '(' ( (lv_operand_67_0= ruleCExpression ) )? otherlv_68= ')' ) ) ) | ( ( () ruleOpIsTypeOf ) ( ( ( '(' ( ( ruleEString ) )? ')' ) )=> (otherlv_71= '(' ( (lv_tagName_72_0= ruleEString ) )? otherlv_73= ')' ) )? ) | ( ( () ruleOpMaxOperator ( ( ( () '{' ) )=> (lv_lambda_76_0= ruleLambdaExpression ) ) ) | ( () ruleOpMinOperator ( ( ( () '{' ) )=> (lv_lambda_79_0= ruleLambdaExpression ) ) ) | ( () ruleOpSelectOperator ( ( ( () '{' ) )=> (lv_lambda_82_0= ruleLambdaExpression ) ) ) ) ) )*
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getCPrimaryExpressionParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_50);
+ this_CPrimaryExpression_0=ruleCPrimaryExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_CPrimaryExpression_0;
+ afterParserOrEnumRuleCall();
+
+ }
+ // InternalRBAModel.g:5593:3: ( ( ( '.' )=>otherlv_1= '.' ) ( ( ( ( () ruleOpGetProperty ) | ( () ruleOpIsOn ) | ( () ruleOpGetContentsList ) | ( () ruleOpContentValue ) | ( () ruleOpIsActive ) | ( () ruleOpGetAllocatables ) | ( () ruleOpAllocatedContent ) | ( () ruleOpHasComeEarlierThan ) | ( () ruleOpHasComeLaterThan ) | ( () ruleOpStateValue ) | ( () ruleOpActiveContents ) | ( () ruleOpSizeOperator ) | ( () ruleOpHasBeenDisplayed ) | ( () ruleOpActiveState ) | ( () ruleOpIsDisplayed ) | ( () ruleOpIsHidden ) | ( () ruleOpDisplayingContent ) | ( () ruleOpIsVisible ) | ( () ruleOpIsOutputted ) | ( () ruleOpIsMuted ) | ( () ruleOpOutputtingSound ) | ( () ruleOpIsSounding ) | ( () ruleOpIsAllocatedTo ) | ( () ruleOpIsChanged ) | ( () ruleOpIsTranslatedTo ) | ( () ruleOpIsDisplayedOn ) | ( () ruleOpIsChangedDisplay ) | ( () ruleOpIsTranslatedViewTo ) | ( () ruleOpIsOutputtedOn ) | ( () ruleOpIsChangedOutput ) | ( () ruleOpIsTranslatedSoundTo ) | ( () ruleOpIsAttenuated ) ) ( ( ( '(' ( ( ruleCExpression ) )? ')' ) )=> (otherlv_66= '(' ( (lv_operand_67_0= ruleCExpression ) )? otherlv_68= ')' ) ) ) | ( ( () ruleOpIsTypeOf ) ( ( ( '(' ( ( ruleEString ) )? ')' ) )=> (otherlv_71= '(' ( (lv_tagName_72_0= ruleEString ) )? otherlv_73= ')' ) )? ) | ( ( () ruleOpMaxOperator ( ( ( () '{' ) )=> (lv_lambda_76_0= ruleLambdaExpression ) ) ) | ( () ruleOpMinOperator ( ( ( () '{' ) )=> (lv_lambda_79_0= ruleLambdaExpression ) ) ) | ( () ruleOpSelectOperator ( ( ( () '{' ) )=> (lv_lambda_82_0= ruleLambdaExpression ) ) ) ) ) )*
+ loop82:
+ do {
+ int alt82=2;
+ int LA82_0 = input.LA(1);
+
+ if ( (LA82_0==71) ) {
+ int LA82_2 = input.LA(2);
+
+ if ( (synpred9_InternalRBAModel()) ) {
+ alt82=1;
+ }
+
+
+ }
+
+
+ switch (alt82) {
+ case 1 :
+ // InternalRBAModel.g:5594:4: ( ( '.' )=>otherlv_1= '.' ) ( ( ( ( () ruleOpGetProperty ) | ( () ruleOpIsOn ) | ( () ruleOpGetContentsList ) | ( () ruleOpContentValue ) | ( () ruleOpIsActive ) | ( () ruleOpGetAllocatables ) | ( () ruleOpAllocatedContent ) | ( () ruleOpHasComeEarlierThan ) | ( () ruleOpHasComeLaterThan ) | ( () ruleOpStateValue ) | ( () ruleOpActiveContents ) | ( () ruleOpSizeOperator ) | ( () ruleOpHasBeenDisplayed ) | ( () ruleOpActiveState ) | ( () ruleOpIsDisplayed ) | ( () ruleOpIsHidden ) | ( () ruleOpDisplayingContent ) | ( () ruleOpIsVisible ) | ( () ruleOpIsOutputted ) | ( () ruleOpIsMuted ) | ( () ruleOpOutputtingSound ) | ( () ruleOpIsSounding ) | ( () ruleOpIsAllocatedTo ) | ( () ruleOpIsChanged ) | ( () ruleOpIsTranslatedTo ) | ( () ruleOpIsDisplayedOn ) | ( () ruleOpIsChangedDisplay ) | ( () ruleOpIsTranslatedViewTo ) | ( () ruleOpIsOutputtedOn ) | ( () ruleOpIsChangedOutput ) | ( () ruleOpIsTranslatedSoundTo ) | ( () ruleOpIsAttenuated ) ) ( ( ( '(' ( ( ruleCExpression ) )? ')' ) )=> (otherlv_66= '(' ( (lv_operand_67_0= ruleCExpression ) )? otherlv_68= ')' ) ) ) | ( ( () ruleOpIsTypeOf ) ( ( ( '(' ( ( ruleEString ) )? ')' ) )=> (otherlv_71= '(' ( (lv_tagName_72_0= ruleEString ) )? otherlv_73= ')' ) )? ) | ( ( () ruleOpMaxOperator ( ( ( () '{' ) )=> (lv_lambda_76_0= ruleLambdaExpression ) ) ) | ( () ruleOpMinOperator ( ( ( () '{' ) )=> (lv_lambda_79_0= ruleLambdaExpression ) ) ) | ( () ruleOpSelectOperator ( ( ( () '{' ) )=> (lv_lambda_82_0= ruleLambdaExpression ) ) ) ) )
+ {
+ // InternalRBAModel.g:5594:4: ( ( '.' )=>otherlv_1= '.' )
+ // InternalRBAModel.g:5595:5: ( '.' )=>otherlv_1= '.'
+ {
+ otherlv_1=(Token)match(input,71,FOLLOW_56); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getCOperationFeatureCallAccess().getFullStopKeyword_1_0_0());
+
+ }
+
+ }
+
+ // InternalRBAModel.g:5602:4: ( ( ( ( () ruleOpGetProperty ) | ( () ruleOpIsOn ) | ( () ruleOpGetContentsList ) | ( () ruleOpContentValue ) | ( () ruleOpIsActive ) | ( () ruleOpGetAllocatables ) | ( () ruleOpAllocatedContent ) | ( () ruleOpHasComeEarlierThan ) | ( () ruleOpHasComeLaterThan ) | ( () ruleOpStateValue ) | ( () ruleOpActiveContents ) | ( () ruleOpSizeOperator ) | ( () ruleOpHasBeenDisplayed ) | ( () ruleOpActiveState ) | ( () ruleOpIsDisplayed ) | ( () ruleOpIsHidden ) | ( () ruleOpDisplayingContent ) | ( () ruleOpIsVisible ) | ( () ruleOpIsOutputted ) | ( () ruleOpIsMuted ) | ( () ruleOpOutputtingSound ) | ( () ruleOpIsSounding ) | ( () ruleOpIsAllocatedTo ) | ( () ruleOpIsChanged ) | ( () ruleOpIsTranslatedTo ) | ( () ruleOpIsDisplayedOn ) | ( () ruleOpIsChangedDisplay ) | ( () ruleOpIsTranslatedViewTo ) | ( () ruleOpIsOutputtedOn ) | ( () ruleOpIsChangedOutput ) | ( () ruleOpIsTranslatedSoundTo ) | ( () ruleOpIsAttenuated ) ) ( ( ( '(' ( ( ruleCExpression ) )? ')' ) )=> (otherlv_66= '(' ( (lv_operand_67_0= ruleCExpression ) )? otherlv_68= ')' ) ) ) | ( ( () ruleOpIsTypeOf ) ( ( ( '(' ( ( ruleEString ) )? ')' ) )=> (otherlv_71= '(' ( (lv_tagName_72_0= ruleEString ) )? otherlv_73= ')' ) )? ) | ( ( () ruleOpMaxOperator ( ( ( () '{' ) )=> (lv_lambda_76_0= ruleLambdaExpression ) ) ) | ( () ruleOpMinOperator ( ( ( () '{' ) )=> (lv_lambda_79_0= ruleLambdaExpression ) ) ) | ( () ruleOpSelectOperator ( ( ( () '{' ) )=> (lv_lambda_82_0= ruleLambdaExpression ) ) ) ) )
+ int alt81=3;
+ switch ( input.LA(1) ) {
+ case 84:
+ case 85:
+ case 86:
+ case 87:
+ case 88:
+ case 89:
+ case 90:
+ case 91:
+ case 92:
+ case 93:
+ case 94:
+ case 95:
+ case 96:
+ case 97:
+ case 98:
+ case 99:
+ case 100:
+ case 101:
+ case 102:
+ case 103:
+ case 104:
+ case 105:
+ case 106:
+ case 107:
+ case 108:
+ case 109:
+ case 110:
+ case 111:
+ case 113:
+ case 114:
+ case 115:
+ case 116:
+ {
+ alt81=1;
+ }
+ break;
+ case 112:
+ {
+ alt81=2;
+ }
+ break;
+ case 117:
+ case 118:
+ case 119:
+ {
+ alt81=3;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 81, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt81) {
+ case 1 :
+ // InternalRBAModel.g:5603:5: ( ( ( () ruleOpGetProperty ) | ( () ruleOpIsOn ) | ( () ruleOpGetContentsList ) | ( () ruleOpContentValue ) | ( () ruleOpIsActive ) | ( () ruleOpGetAllocatables ) | ( () ruleOpAllocatedContent ) | ( () ruleOpHasComeEarlierThan ) | ( () ruleOpHasComeLaterThan ) | ( () ruleOpStateValue ) | ( () ruleOpActiveContents ) | ( () ruleOpSizeOperator ) | ( () ruleOpHasBeenDisplayed ) | ( () ruleOpActiveState ) | ( () ruleOpIsDisplayed ) | ( () ruleOpIsHidden ) | ( () ruleOpDisplayingContent ) | ( () ruleOpIsVisible ) | ( () ruleOpIsOutputted ) | ( () ruleOpIsMuted ) | ( () ruleOpOutputtingSound ) | ( () ruleOpIsSounding ) | ( () ruleOpIsAllocatedTo ) | ( () ruleOpIsChanged ) | ( () ruleOpIsTranslatedTo ) | ( () ruleOpIsDisplayedOn ) | ( () ruleOpIsChangedDisplay ) | ( () ruleOpIsTranslatedViewTo ) | ( () ruleOpIsOutputtedOn ) | ( () ruleOpIsChangedOutput ) | ( () ruleOpIsTranslatedSoundTo ) | ( () ruleOpIsAttenuated ) ) ( ( ( '(' ( ( ruleCExpression ) )? ')' ) )=> (otherlv_66= '(' ( (lv_operand_67_0= ruleCExpression ) )? otherlv_68= ')' ) ) )
+ {
+ // InternalRBAModel.g:5603:5: ( ( ( () ruleOpGetProperty ) | ( () ruleOpIsOn ) | ( () ruleOpGetContentsList ) | ( () ruleOpContentValue ) | ( () ruleOpIsActive ) | ( () ruleOpGetAllocatables ) | ( () ruleOpAllocatedContent ) | ( () ruleOpHasComeEarlierThan ) | ( () ruleOpHasComeLaterThan ) | ( () ruleOpStateValue ) | ( () ruleOpActiveContents ) | ( () ruleOpSizeOperator ) | ( () ruleOpHasBeenDisplayed ) | ( () ruleOpActiveState ) | ( () ruleOpIsDisplayed ) | ( () ruleOpIsHidden ) | ( () ruleOpDisplayingContent ) | ( () ruleOpIsVisible ) | ( () ruleOpIsOutputted ) | ( () ruleOpIsMuted ) | ( () ruleOpOutputtingSound ) | ( () ruleOpIsSounding ) | ( () ruleOpIsAllocatedTo ) | ( () ruleOpIsChanged ) | ( () ruleOpIsTranslatedTo ) | ( () ruleOpIsDisplayedOn ) | ( () ruleOpIsChangedDisplay ) | ( () ruleOpIsTranslatedViewTo ) | ( () ruleOpIsOutputtedOn ) | ( () ruleOpIsChangedOutput ) | ( () ruleOpIsTranslatedSoundTo ) | ( () ruleOpIsAttenuated ) ) ( ( ( '(' ( ( ruleCExpression ) )? ')' ) )=> (otherlv_66= '(' ( (lv_operand_67_0= ruleCExpression ) )? otherlv_68= ')' ) ) )
+ // InternalRBAModel.g:5604:6: ( ( () ruleOpGetProperty ) | ( () ruleOpIsOn ) | ( () ruleOpGetContentsList ) | ( () ruleOpContentValue ) | ( () ruleOpIsActive ) | ( () ruleOpGetAllocatables ) | ( () ruleOpAllocatedContent ) | ( () ruleOpHasComeEarlierThan ) | ( () ruleOpHasComeLaterThan ) | ( () ruleOpStateValue ) | ( () ruleOpActiveContents ) | ( () ruleOpSizeOperator ) | ( () ruleOpHasBeenDisplayed ) | ( () ruleOpActiveState ) | ( () ruleOpIsDisplayed ) | ( () ruleOpIsHidden ) | ( () ruleOpDisplayingContent ) | ( () ruleOpIsVisible ) | ( () ruleOpIsOutputted ) | ( () ruleOpIsMuted ) | ( () ruleOpOutputtingSound ) | ( () ruleOpIsSounding ) | ( () ruleOpIsAllocatedTo ) | ( () ruleOpIsChanged ) | ( () ruleOpIsTranslatedTo ) | ( () ruleOpIsDisplayedOn ) | ( () ruleOpIsChangedDisplay ) | ( () ruleOpIsTranslatedViewTo ) | ( () ruleOpIsOutputtedOn ) | ( () ruleOpIsChangedOutput ) | ( () ruleOpIsTranslatedSoundTo ) | ( () ruleOpIsAttenuated ) ) ( ( ( '(' ( ( ruleCExpression ) )? ')' ) )=> (otherlv_66= '(' ( (lv_operand_67_0= ruleCExpression ) )? otherlv_68= ')' ) )
+ {
+ // InternalRBAModel.g:5604:6: ( ( () ruleOpGetProperty ) | ( () ruleOpIsOn ) | ( () ruleOpGetContentsList ) | ( () ruleOpContentValue ) | ( () ruleOpIsActive ) | ( () ruleOpGetAllocatables ) | ( () ruleOpAllocatedContent ) | ( () ruleOpHasComeEarlierThan ) | ( () ruleOpHasComeLaterThan ) | ( () ruleOpStateValue ) | ( () ruleOpActiveContents ) | ( () ruleOpSizeOperator ) | ( () ruleOpHasBeenDisplayed ) | ( () ruleOpActiveState ) | ( () ruleOpIsDisplayed ) | ( () ruleOpIsHidden ) | ( () ruleOpDisplayingContent ) | ( () ruleOpIsVisible ) | ( () ruleOpIsOutputted ) | ( () ruleOpIsMuted ) | ( () ruleOpOutputtingSound ) | ( () ruleOpIsSounding ) | ( () ruleOpIsAllocatedTo ) | ( () ruleOpIsChanged ) | ( () ruleOpIsTranslatedTo ) | ( () ruleOpIsDisplayedOn ) | ( () ruleOpIsChangedDisplay ) | ( () ruleOpIsTranslatedViewTo ) | ( () ruleOpIsOutputtedOn ) | ( () ruleOpIsChangedOutput ) | ( () ruleOpIsTranslatedSoundTo ) | ( () ruleOpIsAttenuated ) )
+ int alt76=32;
+ switch ( input.LA(1) ) {
+ case 84:
+ {
+ alt76=1;
+ }
+ break;
+ case 85:
+ {
+ alt76=2;
+ }
+ break;
+ case 86:
+ {
+ alt76=3;
+ }
+ break;
+ case 87:
+ {
+ alt76=4;
+ }
+ break;
+ case 88:
+ {
+ alt76=5;
+ }
+ break;
+ case 89:
+ {
+ alt76=6;
+ }
+ break;
+ case 90:
+ {
+ alt76=7;
+ }
+ break;
+ case 100:
+ {
+ alt76=8;
+ }
+ break;
+ case 101:
+ {
+ alt76=9;
+ }
+ break;
+ case 102:
+ {
+ alt76=10;
+ }
+ break;
+ case 113:
+ {
+ alt76=11;
+ }
+ break;
+ case 114:
+ {
+ alt76=12;
+ }
+ break;
+ case 115:
+ {
+ alt76=13;
+ }
+ break;
+ case 116:
+ {
+ alt76=14;
+ }
+ break;
+ case 91:
+ {
+ alt76=15;
+ }
+ break;
+ case 92:
+ {
+ alt76=16;
+ }
+ break;
+ case 93:
+ {
+ alt76=17;
+ }
+ break;
+ case 94:
+ {
+ alt76=18;
+ }
+ break;
+ case 95:
+ {
+ alt76=19;
+ }
+ break;
+ case 96:
+ {
+ alt76=20;
+ }
+ break;
+ case 97:
+ {
+ alt76=21;
+ }
+ break;
+ case 98:
+ {
+ alt76=22;
+ }
+ break;
+ case 103:
+ {
+ alt76=23;
+ }
+ break;
+ case 104:
+ {
+ alt76=24;
+ }
+ break;
+ case 105:
+ {
+ alt76=25;
+ }
+ break;
+ case 106:
+ {
+ alt76=26;
+ }
+ break;
+ case 107:
+ {
+ alt76=27;
+ }
+ break;
+ case 108:
+ {
+ alt76=28;
+ }
+ break;
+ case 109:
+ {
+ alt76=29;
+ }
+ break;
+ case 110:
+ {
+ alt76=30;
+ }
+ break;
+ case 111:
+ {
+ alt76=31;
+ }
+ break;
+ case 99:
+ {
+ alt76=32;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 76, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt76) {
+ case 1 :
+ // InternalRBAModel.g:5605:7: ( () ruleOpGetProperty )
+ {
+ // InternalRBAModel.g:5605:7: ( () ruleOpGetProperty )
+ // InternalRBAModel.g:5606:8: () ruleOpGetProperty
+ {
+ // InternalRBAModel.g:5606:8: ()
+ // InternalRBAModel.g:5607:9:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getGetPropertyOperandAction_1_1_0_0_0_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpGetPropertyParserRuleCall_1_1_0_0_0_1());
+
+ }
+ pushFollow(FOLLOW_20);
+ ruleOpGetProperty();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:5622:7: ( () ruleOpIsOn )
+ {
+ // InternalRBAModel.g:5622:7: ( () ruleOpIsOn )
+ // InternalRBAModel.g:5623:8: () ruleOpIsOn
+ {
+ // InternalRBAModel.g:5623:8: ()
+ // InternalRBAModel.g:5624:9:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getIsOnOperandAction_1_1_0_0_1_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpIsOnParserRuleCall_1_1_0_0_1_1());
+
+ }
+ pushFollow(FOLLOW_20);
+ ruleOpIsOn();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:5639:7: ( () ruleOpGetContentsList )
+ {
+ // InternalRBAModel.g:5639:7: ( () ruleOpGetContentsList )
+ // InternalRBAModel.g:5640:8: () ruleOpGetContentsList
+ {
+ // InternalRBAModel.g:5640:8: ()
+ // InternalRBAModel.g:5641:9:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getGetContentsListOperandAction_1_1_0_0_2_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpGetContentsListParserRuleCall_1_1_0_0_2_1());
+
+ }
+ pushFollow(FOLLOW_20);
+ ruleOpGetContentsList();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // InternalRBAModel.g:5656:7: ( () ruleOpContentValue )
+ {
+ // InternalRBAModel.g:5656:7: ( () ruleOpContentValue )
+ // InternalRBAModel.g:5657:8: () ruleOpContentValue
+ {
+ // InternalRBAModel.g:5657:8: ()
+ // InternalRBAModel.g:5658:9:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getContentValueOperandAction_1_1_0_0_3_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpContentValueParserRuleCall_1_1_0_0_3_1());
+
+ }
+ pushFollow(FOLLOW_20);
+ ruleOpContentValue();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 5 :
+ // InternalRBAModel.g:5673:7: ( () ruleOpIsActive )
+ {
+ // InternalRBAModel.g:5673:7: ( () ruleOpIsActive )
+ // InternalRBAModel.g:5674:8: () ruleOpIsActive
+ {
+ // InternalRBAModel.g:5674:8: ()
+ // InternalRBAModel.g:5675:9:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getIsActiveOperandAction_1_1_0_0_4_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpIsActiveParserRuleCall_1_1_0_0_4_1());
+
+ }
+ pushFollow(FOLLOW_20);
+ ruleOpIsActive();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 6 :
+ // InternalRBAModel.g:5690:7: ( () ruleOpGetAllocatables )
+ {
+ // InternalRBAModel.g:5690:7: ( () ruleOpGetAllocatables )
+ // InternalRBAModel.g:5691:8: () ruleOpGetAllocatables
+ {
+ // InternalRBAModel.g:5691:8: ()
+ // InternalRBAModel.g:5692:9:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getGetAllocatablesOperandAction_1_1_0_0_5_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpGetAllocatablesParserRuleCall_1_1_0_0_5_1());
+
+ }
+ pushFollow(FOLLOW_20);
+ ruleOpGetAllocatables();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 7 :
+ // InternalRBAModel.g:5707:7: ( () ruleOpAllocatedContent )
+ {
+ // InternalRBAModel.g:5707:7: ( () ruleOpAllocatedContent )
+ // InternalRBAModel.g:5708:8: () ruleOpAllocatedContent
+ {
+ // InternalRBAModel.g:5708:8: ()
+ // InternalRBAModel.g:5709:9:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getAllocatedContentOperandAction_1_1_0_0_6_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpAllocatedContentParserRuleCall_1_1_0_0_6_1());
+
+ }
+ pushFollow(FOLLOW_20);
+ ruleOpAllocatedContent();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 8 :
+ // InternalRBAModel.g:5724:7: ( () ruleOpHasComeEarlierThan )
+ {
+ // InternalRBAModel.g:5724:7: ( () ruleOpHasComeEarlierThan )
+ // InternalRBAModel.g:5725:8: () ruleOpHasComeEarlierThan
+ {
+ // InternalRBAModel.g:5725:8: ()
+ // InternalRBAModel.g:5726:9:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getHasComeEarlierThanOperandAction_1_1_0_0_7_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpHasComeEarlierThanParserRuleCall_1_1_0_0_7_1());
+
+ }
+ pushFollow(FOLLOW_20);
+ ruleOpHasComeEarlierThan();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 9 :
+ // InternalRBAModel.g:5741:7: ( () ruleOpHasComeLaterThan )
+ {
+ // InternalRBAModel.g:5741:7: ( () ruleOpHasComeLaterThan )
+ // InternalRBAModel.g:5742:8: () ruleOpHasComeLaterThan
+ {
+ // InternalRBAModel.g:5742:8: ()
+ // InternalRBAModel.g:5743:9:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getHasComeLaterThanOperandAction_1_1_0_0_8_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpHasComeLaterThanParserRuleCall_1_1_0_0_8_1());
+
+ }
+ pushFollow(FOLLOW_20);
+ ruleOpHasComeLaterThan();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 10 :
+ // InternalRBAModel.g:5758:7: ( () ruleOpStateValue )
+ {
+ // InternalRBAModel.g:5758:7: ( () ruleOpStateValue )
+ // InternalRBAModel.g:5759:8: () ruleOpStateValue
+ {
+ // InternalRBAModel.g:5759:8: ()
+ // InternalRBAModel.g:5760:9:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getStateValueOperandAction_1_1_0_0_9_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpStateValueParserRuleCall_1_1_0_0_9_1());
+
+ }
+ pushFollow(FOLLOW_20);
+ ruleOpStateValue();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 11 :
+ // InternalRBAModel.g:5775:7: ( () ruleOpActiveContents )
+ {
+ // InternalRBAModel.g:5775:7: ( () ruleOpActiveContents )
+ // InternalRBAModel.g:5776:8: () ruleOpActiveContents
+ {
+ // InternalRBAModel.g:5776:8: ()
+ // InternalRBAModel.g:5777:9:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getActiveContentsOperandAction_1_1_0_0_10_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpActiveContentsParserRuleCall_1_1_0_0_10_1());
+
+ }
+ pushFollow(FOLLOW_20);
+ ruleOpActiveContents();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 12 :
+ // InternalRBAModel.g:5792:7: ( () ruleOpSizeOperator )
+ {
+ // InternalRBAModel.g:5792:7: ( () ruleOpSizeOperator )
+ // InternalRBAModel.g:5793:8: () ruleOpSizeOperator
+ {
+ // InternalRBAModel.g:5793:8: ()
+ // InternalRBAModel.g:5794:9:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getSizeOperatorOperandAction_1_1_0_0_11_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpSizeOperatorParserRuleCall_1_1_0_0_11_1());
+
+ }
+ pushFollow(FOLLOW_20);
+ ruleOpSizeOperator();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 13 :
+ // InternalRBAModel.g:5809:7: ( () ruleOpHasBeenDisplayed )
+ {
+ // InternalRBAModel.g:5809:7: ( () ruleOpHasBeenDisplayed )
+ // InternalRBAModel.g:5810:8: () ruleOpHasBeenDisplayed
+ {
+ // InternalRBAModel.g:5810:8: ()
+ // InternalRBAModel.g:5811:9:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getHasBeenDisplayedOperandAction_1_1_0_0_12_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpHasBeenDisplayedParserRuleCall_1_1_0_0_12_1());
+
+ }
+ pushFollow(FOLLOW_20);
+ ruleOpHasBeenDisplayed();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 14 :
+ // InternalRBAModel.g:5826:7: ( () ruleOpActiveState )
+ {
+ // InternalRBAModel.g:5826:7: ( () ruleOpActiveState )
+ // InternalRBAModel.g:5827:8: () ruleOpActiveState
+ {
+ // InternalRBAModel.g:5827:8: ()
+ // InternalRBAModel.g:5828:9:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getActiveStateOperandAction_1_1_0_0_13_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpActiveStateParserRuleCall_1_1_0_0_13_1());
+
+ }
+ pushFollow(FOLLOW_20);
+ ruleOpActiveState();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 15 :
+ // InternalRBAModel.g:5843:7: ( () ruleOpIsDisplayed )
+ {
+ // InternalRBAModel.g:5843:7: ( () ruleOpIsDisplayed )
+ // InternalRBAModel.g:5844:8: () ruleOpIsDisplayed
+ {
+ // InternalRBAModel.g:5844:8: ()
+ // InternalRBAModel.g:5845:9:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getIsDisplayedOperandAction_1_1_0_0_14_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpIsDisplayedParserRuleCall_1_1_0_0_14_1());
+
+ }
+ pushFollow(FOLLOW_20);
+ ruleOpIsDisplayed();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 16 :
+ // InternalRBAModel.g:5860:7: ( () ruleOpIsHidden )
+ {
+ // InternalRBAModel.g:5860:7: ( () ruleOpIsHidden )
+ // InternalRBAModel.g:5861:8: () ruleOpIsHidden
+ {
+ // InternalRBAModel.g:5861:8: ()
+ // InternalRBAModel.g:5862:9:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getIsHiddenOperandAction_1_1_0_0_15_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpIsHiddenParserRuleCall_1_1_0_0_15_1());
+
+ }
+ pushFollow(FOLLOW_20);
+ ruleOpIsHidden();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 17 :
+ // InternalRBAModel.g:5877:7: ( () ruleOpDisplayingContent )
+ {
+ // InternalRBAModel.g:5877:7: ( () ruleOpDisplayingContent )
+ // InternalRBAModel.g:5878:8: () ruleOpDisplayingContent
+ {
+ // InternalRBAModel.g:5878:8: ()
+ // InternalRBAModel.g:5879:9:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getDisplayingContentOperandAction_1_1_0_0_16_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpDisplayingContentParserRuleCall_1_1_0_0_16_1());
+
+ }
+ pushFollow(FOLLOW_20);
+ ruleOpDisplayingContent();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 18 :
+ // InternalRBAModel.g:5894:7: ( () ruleOpIsVisible )
+ {
+ // InternalRBAModel.g:5894:7: ( () ruleOpIsVisible )
+ // InternalRBAModel.g:5895:8: () ruleOpIsVisible
+ {
+ // InternalRBAModel.g:5895:8: ()
+ // InternalRBAModel.g:5896:9:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getIsVisibleOperandAction_1_1_0_0_17_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpIsVisibleParserRuleCall_1_1_0_0_17_1());
+
+ }
+ pushFollow(FOLLOW_20);
+ ruleOpIsVisible();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 19 :
+ // InternalRBAModel.g:5911:7: ( () ruleOpIsOutputted )
+ {
+ // InternalRBAModel.g:5911:7: ( () ruleOpIsOutputted )
+ // InternalRBAModel.g:5912:8: () ruleOpIsOutputted
+ {
+ // InternalRBAModel.g:5912:8: ()
+ // InternalRBAModel.g:5913:9:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getIsOutputtedOperandAction_1_1_0_0_18_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpIsOutputtedParserRuleCall_1_1_0_0_18_1());
+
+ }
+ pushFollow(FOLLOW_20);
+ ruleOpIsOutputted();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 20 :
+ // InternalRBAModel.g:5928:7: ( () ruleOpIsMuted )
+ {
+ // InternalRBAModel.g:5928:7: ( () ruleOpIsMuted )
+ // InternalRBAModel.g:5929:8: () ruleOpIsMuted
+ {
+ // InternalRBAModel.g:5929:8: ()
+ // InternalRBAModel.g:5930:9:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getIsMutedOperandAction_1_1_0_0_19_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpIsMutedParserRuleCall_1_1_0_0_19_1());
+
+ }
+ pushFollow(FOLLOW_20);
+ ruleOpIsMuted();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 21 :
+ // InternalRBAModel.g:5945:7: ( () ruleOpOutputtingSound )
+ {
+ // InternalRBAModel.g:5945:7: ( () ruleOpOutputtingSound )
+ // InternalRBAModel.g:5946:8: () ruleOpOutputtingSound
+ {
+ // InternalRBAModel.g:5946:8: ()
+ // InternalRBAModel.g:5947:9:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getOutputtingSoundOperandAction_1_1_0_0_20_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpOutputtingSoundParserRuleCall_1_1_0_0_20_1());
+
+ }
+ pushFollow(FOLLOW_20);
+ ruleOpOutputtingSound();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 22 :
+ // InternalRBAModel.g:5962:7: ( () ruleOpIsSounding )
+ {
+ // InternalRBAModel.g:5962:7: ( () ruleOpIsSounding )
+ // InternalRBAModel.g:5963:8: () ruleOpIsSounding
+ {
+ // InternalRBAModel.g:5963:8: ()
+ // InternalRBAModel.g:5964:9:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getIsSoundingOperandAction_1_1_0_0_21_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpIsSoundingParserRuleCall_1_1_0_0_21_1());
+
+ }
+ pushFollow(FOLLOW_20);
+ ruleOpIsSounding();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 23 :
+ // InternalRBAModel.g:5979:7: ( () ruleOpIsAllocatedTo )
+ {
+ // InternalRBAModel.g:5979:7: ( () ruleOpIsAllocatedTo )
+ // InternalRBAModel.g:5980:8: () ruleOpIsAllocatedTo
+ {
+ // InternalRBAModel.g:5980:8: ()
+ // InternalRBAModel.g:5981:9:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getIsAllocatedToOperandAction_1_1_0_0_22_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpIsAllocatedToParserRuleCall_1_1_0_0_22_1());
+
+ }
+ pushFollow(FOLLOW_20);
+ ruleOpIsAllocatedTo();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 24 :
+ // InternalRBAModel.g:5996:7: ( () ruleOpIsChanged )
+ {
+ // InternalRBAModel.g:5996:7: ( () ruleOpIsChanged )
+ // InternalRBAModel.g:5997:8: () ruleOpIsChanged
+ {
+ // InternalRBAModel.g:5997:8: ()
+ // InternalRBAModel.g:5998:9:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getIsChangedOperandAction_1_1_0_0_23_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpIsChangedParserRuleCall_1_1_0_0_23_1());
+
+ }
+ pushFollow(FOLLOW_20);
+ ruleOpIsChanged();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 25 :
+ // InternalRBAModel.g:6013:7: ( () ruleOpIsTranslatedTo )
+ {
+ // InternalRBAModel.g:6013:7: ( () ruleOpIsTranslatedTo )
+ // InternalRBAModel.g:6014:8: () ruleOpIsTranslatedTo
+ {
+ // InternalRBAModel.g:6014:8: ()
+ // InternalRBAModel.g:6015:9:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getIsTranslatedToOperandAction_1_1_0_0_24_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpIsTranslatedToParserRuleCall_1_1_0_0_24_1());
+
+ }
+ pushFollow(FOLLOW_20);
+ ruleOpIsTranslatedTo();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 26 :
+ // InternalRBAModel.g:6030:7: ( () ruleOpIsDisplayedOn )
+ {
+ // InternalRBAModel.g:6030:7: ( () ruleOpIsDisplayedOn )
+ // InternalRBAModel.g:6031:8: () ruleOpIsDisplayedOn
+ {
+ // InternalRBAModel.g:6031:8: ()
+ // InternalRBAModel.g:6032:9:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getIsDisplayedOnOperandAction_1_1_0_0_25_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpIsDisplayedOnParserRuleCall_1_1_0_0_25_1());
+
+ }
+ pushFollow(FOLLOW_20);
+ ruleOpIsDisplayedOn();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 27 :
+ // InternalRBAModel.g:6047:7: ( () ruleOpIsChangedDisplay )
+ {
+ // InternalRBAModel.g:6047:7: ( () ruleOpIsChangedDisplay )
+ // InternalRBAModel.g:6048:8: () ruleOpIsChangedDisplay
+ {
+ // InternalRBAModel.g:6048:8: ()
+ // InternalRBAModel.g:6049:9:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getIsChangedDisplayOperandAction_1_1_0_0_26_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpIsChangedDisplayParserRuleCall_1_1_0_0_26_1());
+
+ }
+ pushFollow(FOLLOW_20);
+ ruleOpIsChangedDisplay();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 28 :
+ // InternalRBAModel.g:6064:7: ( () ruleOpIsTranslatedViewTo )
+ {
+ // InternalRBAModel.g:6064:7: ( () ruleOpIsTranslatedViewTo )
+ // InternalRBAModel.g:6065:8: () ruleOpIsTranslatedViewTo
+ {
+ // InternalRBAModel.g:6065:8: ()
+ // InternalRBAModel.g:6066:9:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getIsTranslatedViewToOperandAction_1_1_0_0_27_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpIsTranslatedViewToParserRuleCall_1_1_0_0_27_1());
+
+ }
+ pushFollow(FOLLOW_20);
+ ruleOpIsTranslatedViewTo();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 29 :
+ // InternalRBAModel.g:6081:7: ( () ruleOpIsOutputtedOn )
+ {
+ // InternalRBAModel.g:6081:7: ( () ruleOpIsOutputtedOn )
+ // InternalRBAModel.g:6082:8: () ruleOpIsOutputtedOn
+ {
+ // InternalRBAModel.g:6082:8: ()
+ // InternalRBAModel.g:6083:9:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getIsOutputtedOnOperandAction_1_1_0_0_28_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpIsOutputtedOnParserRuleCall_1_1_0_0_28_1());
+
+ }
+ pushFollow(FOLLOW_20);
+ ruleOpIsOutputtedOn();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 30 :
+ // InternalRBAModel.g:6098:7: ( () ruleOpIsChangedOutput )
+ {
+ // InternalRBAModel.g:6098:7: ( () ruleOpIsChangedOutput )
+ // InternalRBAModel.g:6099:8: () ruleOpIsChangedOutput
+ {
+ // InternalRBAModel.g:6099:8: ()
+ // InternalRBAModel.g:6100:9:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getIsChangedOutputOperandAction_1_1_0_0_29_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpIsChangedOutputParserRuleCall_1_1_0_0_29_1());
+
+ }
+ pushFollow(FOLLOW_20);
+ ruleOpIsChangedOutput();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 31 :
+ // InternalRBAModel.g:6115:7: ( () ruleOpIsTranslatedSoundTo )
+ {
+ // InternalRBAModel.g:6115:7: ( () ruleOpIsTranslatedSoundTo )
+ // InternalRBAModel.g:6116:8: () ruleOpIsTranslatedSoundTo
+ {
+ // InternalRBAModel.g:6116:8: ()
+ // InternalRBAModel.g:6117:9:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getIsTranslatedSoundToOperandAction_1_1_0_0_30_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpIsTranslatedSoundToParserRuleCall_1_1_0_0_30_1());
+
+ }
+ pushFollow(FOLLOW_20);
+ ruleOpIsTranslatedSoundTo();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 32 :
+ // InternalRBAModel.g:6132:7: ( () ruleOpIsAttenuated )
+ {
+ // InternalRBAModel.g:6132:7: ( () ruleOpIsAttenuated )
+ // InternalRBAModel.g:6133:8: () ruleOpIsAttenuated
+ {
+ // InternalRBAModel.g:6133:8: ()
+ // InternalRBAModel.g:6134:9:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getIsAttenuatedOperandAction_1_1_0_0_31_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpIsAttenuatedParserRuleCall_1_1_0_0_31_1());
+
+ }
+ pushFollow(FOLLOW_20);
+ ruleOpIsAttenuated();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ // InternalRBAModel.g:6149:6: ( ( ( '(' ( ( ruleCExpression ) )? ')' ) )=> (otherlv_66= '(' ( (lv_operand_67_0= ruleCExpression ) )? otherlv_68= ')' ) )
+ // InternalRBAModel.g:6150:7: ( ( '(' ( ( ruleCExpression ) )? ')' ) )=> (otherlv_66= '(' ( (lv_operand_67_0= ruleCExpression ) )? otherlv_68= ')' )
+ {
+ // InternalRBAModel.g:6160:7: (otherlv_66= '(' ( (lv_operand_67_0= ruleCExpression ) )? otherlv_68= ')' )
+ // InternalRBAModel.g:6161:8: otherlv_66= '(' ( (lv_operand_67_0= ruleCExpression ) )? otherlv_68= ')'
+ {
+ otherlv_66=(Token)match(input,34,FOLLOW_57); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_66, grammarAccess.getCOperationFeatureCallAccess().getLeftParenthesisKeyword_1_1_0_1_0_0());
+
+ }
+ // InternalRBAModel.g:6165:8: ( (lv_operand_67_0= ruleCExpression ) )?
+ int alt77=2;
+ int LA77_0 = input.LA(1);
+
+ if ( (LA77_0==RULE_INT||LA77_0==RULE_ID||LA77_0==26||LA77_0==34||LA77_0==83||(LA77_0>=120 && LA77_0<=128)||(LA77_0>=131 && LA77_0<=132)||LA77_0==148||LA77_0==150) ) {
+ alt77=1;
+ }
+ switch (alt77) {
+ case 1 :
+ // InternalRBAModel.g:6166:9: (lv_operand_67_0= ruleCExpression )
+ {
+ // InternalRBAModel.g:6166:9: (lv_operand_67_0= ruleCExpression )
+ // InternalRBAModel.g:6167:10: lv_operand_67_0= ruleCExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOperandCExpressionParserRuleCall_1_1_0_1_0_1_0());
+
+ }
+ pushFollow(FOLLOW_48);
+ lv_operand_67_0=ruleCExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getCOperationFeatureCallRule());
+ }
+ add(
+ current,
+ "operand",
+ lv_operand_67_0,
+ "rba.tool.editor.RBAModel.CExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ otherlv_68=(Token)match(input,35,FOLLOW_50); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_68, grammarAccess.getCOperationFeatureCallAccess().getRightParenthesisKeyword_1_1_0_1_0_2());
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:6192:5: ( ( () ruleOpIsTypeOf ) ( ( ( '(' ( ( ruleEString ) )? ')' ) )=> (otherlv_71= '(' ( (lv_tagName_72_0= ruleEString ) )? otherlv_73= ')' ) )? )
+ {
+ // InternalRBAModel.g:6192:5: ( ( () ruleOpIsTypeOf ) ( ( ( '(' ( ( ruleEString ) )? ')' ) )=> (otherlv_71= '(' ( (lv_tagName_72_0= ruleEString ) )? otherlv_73= ')' ) )? )
+ // InternalRBAModel.g:6193:6: ( () ruleOpIsTypeOf ) ( ( ( '(' ( ( ruleEString ) )? ')' ) )=> (otherlv_71= '(' ( (lv_tagName_72_0= ruleEString ) )? otherlv_73= ')' ) )?
+ {
+ // InternalRBAModel.g:6193:6: ( () ruleOpIsTypeOf )
+ // InternalRBAModel.g:6194:7: () ruleOpIsTypeOf
+ {
+ // InternalRBAModel.g:6194:7: ()
+ // InternalRBAModel.g:6195:8:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getIsTypeOfOperandAction_1_1_1_0_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpIsTypeOfParserRuleCall_1_1_1_0_1());
+
+ }
+ pushFollow(FOLLOW_58);
+ ruleOpIsTypeOf();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+ // InternalRBAModel.g:6209:6: ( ( ( '(' ( ( ruleEString ) )? ')' ) )=> (otherlv_71= '(' ( (lv_tagName_72_0= ruleEString ) )? otherlv_73= ')' ) )?
+ int alt79=2;
+ int LA79_0 = input.LA(1);
+
+ if ( (LA79_0==34) ) {
+ int LA79_1 = input.LA(2);
+
+ if ( (LA79_1==RULE_STRING) && (synpred11_InternalRBAModel())) {
+ alt79=1;
+ }
+ else if ( (LA79_1==35) && (synpred11_InternalRBAModel())) {
+ alt79=1;
+ }
+ }
+ switch (alt79) {
+ case 1 :
+ // InternalRBAModel.g:6210:7: ( ( '(' ( ( ruleEString ) )? ')' ) )=> (otherlv_71= '(' ( (lv_tagName_72_0= ruleEString ) )? otherlv_73= ')' )
+ {
+ // InternalRBAModel.g:6220:7: (otherlv_71= '(' ( (lv_tagName_72_0= ruleEString ) )? otherlv_73= ')' )
+ // InternalRBAModel.g:6221:8: otherlv_71= '(' ( (lv_tagName_72_0= ruleEString ) )? otherlv_73= ')'
+ {
+ otherlv_71=(Token)match(input,34,FOLLOW_59); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_71, grammarAccess.getCOperationFeatureCallAccess().getLeftParenthesisKeyword_1_1_1_1_0_0());
+
+ }
+ // InternalRBAModel.g:6225:8: ( (lv_tagName_72_0= ruleEString ) )?
+ int alt78=2;
+ int LA78_0 = input.LA(1);
+
+ if ( (LA78_0==RULE_STRING) ) {
+ alt78=1;
+ }
+ switch (alt78) {
+ case 1 :
+ // InternalRBAModel.g:6226:9: (lv_tagName_72_0= ruleEString )
+ {
+ // InternalRBAModel.g:6226:9: (lv_tagName_72_0= ruleEString )
+ // InternalRBAModel.g:6227:10: lv_tagName_72_0= ruleEString
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getTagNameEStringParserRuleCall_1_1_1_1_0_1_0());
+
+ }
+ pushFollow(FOLLOW_48);
+ lv_tagName_72_0=ruleEString();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getCOperationFeatureCallRule());
+ }
+ set(
+ current,
+ "tagName",
+ lv_tagName_72_0,
+ "rba.tool.editor.RBAModel.EString");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ otherlv_73=(Token)match(input,35,FOLLOW_50); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_73, grammarAccess.getCOperationFeatureCallAccess().getRightParenthesisKeyword_1_1_1_1_0_2());
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:6252:5: ( ( () ruleOpMaxOperator ( ( ( () '{' ) )=> (lv_lambda_76_0= ruleLambdaExpression ) ) ) | ( () ruleOpMinOperator ( ( ( () '{' ) )=> (lv_lambda_79_0= ruleLambdaExpression ) ) ) | ( () ruleOpSelectOperator ( ( ( () '{' ) )=> (lv_lambda_82_0= ruleLambdaExpression ) ) ) )
+ {
+ // InternalRBAModel.g:6252:5: ( ( () ruleOpMaxOperator ( ( ( () '{' ) )=> (lv_lambda_76_0= ruleLambdaExpression ) ) ) | ( () ruleOpMinOperator ( ( ( () '{' ) )=> (lv_lambda_79_0= ruleLambdaExpression ) ) ) | ( () ruleOpSelectOperator ( ( ( () '{' ) )=> (lv_lambda_82_0= ruleLambdaExpression ) ) ) )
+ int alt80=3;
+ switch ( input.LA(1) ) {
+ case 117:
+ {
+ alt80=1;
+ }
+ break;
+ case 118:
+ {
+ alt80=2;
+ }
+ break;
+ case 119:
+ {
+ alt80=3;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 80, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt80) {
+ case 1 :
+ // InternalRBAModel.g:6253:6: ( () ruleOpMaxOperator ( ( ( () '{' ) )=> (lv_lambda_76_0= ruleLambdaExpression ) ) )
+ {
+ // InternalRBAModel.g:6253:6: ( () ruleOpMaxOperator ( ( ( () '{' ) )=> (lv_lambda_76_0= ruleLambdaExpression ) ) )
+ // InternalRBAModel.g:6254:7: () ruleOpMaxOperator ( ( ( () '{' ) )=> (lv_lambda_76_0= ruleLambdaExpression ) )
+ {
+ // InternalRBAModel.g:6254:7: ()
+ // InternalRBAModel.g:6255:8:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getMaxOperatorOperandAction_1_1_2_0_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpMaxOperatorParserRuleCall_1_1_2_0_1());
+
+ }
+ pushFollow(FOLLOW_15);
+ ruleOpMaxOperator();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+ // InternalRBAModel.g:6268:7: ( ( ( () '{' ) )=> (lv_lambda_76_0= ruleLambdaExpression ) )
+ // InternalRBAModel.g:6269:8: ( ( () '{' ) )=> (lv_lambda_76_0= ruleLambdaExpression )
+ {
+ // InternalRBAModel.g:6275:8: (lv_lambda_76_0= ruleLambdaExpression )
+ // InternalRBAModel.g:6276:9: lv_lambda_76_0= ruleLambdaExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getLambdaLambdaExpressionParserRuleCall_1_1_2_0_2_0());
+
+ }
+ pushFollow(FOLLOW_50);
+ lv_lambda_76_0=ruleLambdaExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getCOperationFeatureCallRule());
+ }
+ set(
+ current,
+ "lambda",
+ lv_lambda_76_0,
+ "rba.tool.editor.RBAModel.LambdaExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:6295:6: ( () ruleOpMinOperator ( ( ( () '{' ) )=> (lv_lambda_79_0= ruleLambdaExpression ) ) )
+ {
+ // InternalRBAModel.g:6295:6: ( () ruleOpMinOperator ( ( ( () '{' ) )=> (lv_lambda_79_0= ruleLambdaExpression ) ) )
+ // InternalRBAModel.g:6296:7: () ruleOpMinOperator ( ( ( () '{' ) )=> (lv_lambda_79_0= ruleLambdaExpression ) )
+ {
+ // InternalRBAModel.g:6296:7: ()
+ // InternalRBAModel.g:6297:8:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getMinOperatorOperandAction_1_1_2_1_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpMinOperatorParserRuleCall_1_1_2_1_1());
+
+ }
+ pushFollow(FOLLOW_15);
+ ruleOpMinOperator();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+ // InternalRBAModel.g:6310:7: ( ( ( () '{' ) )=> (lv_lambda_79_0= ruleLambdaExpression ) )
+ // InternalRBAModel.g:6311:8: ( ( () '{' ) )=> (lv_lambda_79_0= ruleLambdaExpression )
+ {
+ // InternalRBAModel.g:6317:8: (lv_lambda_79_0= ruleLambdaExpression )
+ // InternalRBAModel.g:6318:9: lv_lambda_79_0= ruleLambdaExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getLambdaLambdaExpressionParserRuleCall_1_1_2_1_2_0());
+
+ }
+ pushFollow(FOLLOW_50);
+ lv_lambda_79_0=ruleLambdaExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getCOperationFeatureCallRule());
+ }
+ set(
+ current,
+ "lambda",
+ lv_lambda_79_0,
+ "rba.tool.editor.RBAModel.LambdaExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:6337:6: ( () ruleOpSelectOperator ( ( ( () '{' ) )=> (lv_lambda_82_0= ruleLambdaExpression ) ) )
+ {
+ // InternalRBAModel.g:6337:6: ( () ruleOpSelectOperator ( ( ( () '{' ) )=> (lv_lambda_82_0= ruleLambdaExpression ) ) )
+ // InternalRBAModel.g:6338:7: () ruleOpSelectOperator ( ( ( () '{' ) )=> (lv_lambda_82_0= ruleLambdaExpression ) )
+ {
+ // InternalRBAModel.g:6338:7: ()
+ // InternalRBAModel.g:6339:8:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getCOperationFeatureCallAccess().getSelectOperatorOperandAction_1_1_2_2_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getOpSelectOperatorParserRuleCall_1_1_2_2_1());
+
+ }
+ pushFollow(FOLLOW_15);
+ ruleOpSelectOperator();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+ // InternalRBAModel.g:6352:7: ( ( ( () '{' ) )=> (lv_lambda_82_0= ruleLambdaExpression ) )
+ // InternalRBAModel.g:6353:8: ( ( () '{' ) )=> (lv_lambda_82_0= ruleLambdaExpression )
+ {
+ // InternalRBAModel.g:6359:8: (lv_lambda_82_0= ruleLambdaExpression )
+ // InternalRBAModel.g:6360:9: lv_lambda_82_0= ruleLambdaExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCOperationFeatureCallAccess().getLambdaLambdaExpressionParserRuleCall_1_1_2_2_2_0());
+
+ }
+ pushFollow(FOLLOW_50);
+ lv_lambda_82_0=ruleLambdaExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getCOperationFeatureCallRule());
+ }
+ set(
+ current,
+ "lambda",
+ lv_lambda_82_0,
+ "rba.tool.editor.RBAModel.LambdaExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop82;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleCOperationFeatureCall"
+
+
+ // $ANTLR start "entryRuleOpGetProperty"
+ // InternalRBAModel.g:6385:1: entryRuleOpGetProperty returns [String current=null] : iv_ruleOpGetProperty= ruleOpGetProperty EOF ;
+ public final String entryRuleOpGetProperty() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpGetProperty = null;
+
+
+ try {
+ // InternalRBAModel.g:6385:53: (iv_ruleOpGetProperty= ruleOpGetProperty EOF )
+ // InternalRBAModel.g:6386:2: iv_ruleOpGetProperty= ruleOpGetProperty EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpGetPropertyRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpGetProperty=ruleOpGetProperty();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpGetProperty.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpGetProperty"
+
+
+ // $ANTLR start "ruleOpGetProperty"
+ // InternalRBAModel.g:6392:1: ruleOpGetProperty returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'get' ;
+ public final AntlrDatatypeRuleToken ruleOpGetProperty() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:6398:2: (kw= 'get' )
+ // InternalRBAModel.g:6399:2: kw= 'get'
+ {
+ kw=(Token)match(input,84,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpGetPropertyAccess().getGetKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpGetProperty"
+
+
+ // $ANTLR start "entryRuleOpIsOn"
+ // InternalRBAModel.g:6407:1: entryRuleOpIsOn returns [String current=null] : iv_ruleOpIsOn= ruleOpIsOn EOF ;
+ public final String entryRuleOpIsOn() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpIsOn = null;
+
+
+ try {
+ // InternalRBAModel.g:6407:46: (iv_ruleOpIsOn= ruleOpIsOn EOF )
+ // InternalRBAModel.g:6408:2: iv_ruleOpIsOn= ruleOpIsOn EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpIsOnRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpIsOn=ruleOpIsOn();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpIsOn.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpIsOn"
+
+
+ // $ANTLR start "ruleOpIsOn"
+ // InternalRBAModel.g:6414:1: ruleOpIsOn returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'isOn' ;
+ public final AntlrDatatypeRuleToken ruleOpIsOn() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:6420:2: (kw= 'isOn' )
+ // InternalRBAModel.g:6421:2: kw= 'isOn'
+ {
+ kw=(Token)match(input,85,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpIsOnAccess().getIsOnKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpIsOn"
+
+
+ // $ANTLR start "entryRuleOpGetContentsList"
+ // InternalRBAModel.g:6429:1: entryRuleOpGetContentsList returns [String current=null] : iv_ruleOpGetContentsList= ruleOpGetContentsList EOF ;
+ public final String entryRuleOpGetContentsList() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpGetContentsList = null;
+
+
+ try {
+ // InternalRBAModel.g:6429:57: (iv_ruleOpGetContentsList= ruleOpGetContentsList EOF )
+ // InternalRBAModel.g:6430:2: iv_ruleOpGetContentsList= ruleOpGetContentsList EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpGetContentsListRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpGetContentsList=ruleOpGetContentsList();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpGetContentsList.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpGetContentsList"
+
+
+ // $ANTLR start "ruleOpGetContentsList"
+ // InternalRBAModel.g:6436:1: ruleOpGetContentsList returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'contentsList' ;
+ public final AntlrDatatypeRuleToken ruleOpGetContentsList() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:6442:2: (kw= 'contentsList' )
+ // InternalRBAModel.g:6443:2: kw= 'contentsList'
+ {
+ kw=(Token)match(input,86,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpGetContentsListAccess().getContentsListKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpGetContentsList"
+
+
+ // $ANTLR start "entryRuleOpContentValue"
+ // InternalRBAModel.g:6451:1: entryRuleOpContentValue returns [String current=null] : iv_ruleOpContentValue= ruleOpContentValue EOF ;
+ public final String entryRuleOpContentValue() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpContentValue = null;
+
+
+ try {
+ // InternalRBAModel.g:6451:54: (iv_ruleOpContentValue= ruleOpContentValue EOF )
+ // InternalRBAModel.g:6452:2: iv_ruleOpContentValue= ruleOpContentValue EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpContentValueRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpContentValue=ruleOpContentValue();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpContentValue.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpContentValue"
+
+
+ // $ANTLR start "ruleOpContentValue"
+ // InternalRBAModel.g:6458:1: ruleOpContentValue returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'contentValue' ;
+ public final AntlrDatatypeRuleToken ruleOpContentValue() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:6464:2: (kw= 'contentValue' )
+ // InternalRBAModel.g:6465:2: kw= 'contentValue'
+ {
+ kw=(Token)match(input,87,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpContentValueAccess().getContentValueKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpContentValue"
+
+
+ // $ANTLR start "entryRuleOpIsActive"
+ // InternalRBAModel.g:6473:1: entryRuleOpIsActive returns [String current=null] : iv_ruleOpIsActive= ruleOpIsActive EOF ;
+ public final String entryRuleOpIsActive() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpIsActive = null;
+
+
+ try {
+ // InternalRBAModel.g:6473:50: (iv_ruleOpIsActive= ruleOpIsActive EOF )
+ // InternalRBAModel.g:6474:2: iv_ruleOpIsActive= ruleOpIsActive EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpIsActiveRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpIsActive=ruleOpIsActive();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpIsActive.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpIsActive"
+
+
+ // $ANTLR start "ruleOpIsActive"
+ // InternalRBAModel.g:6480:1: ruleOpIsActive returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'isActive' ;
+ public final AntlrDatatypeRuleToken ruleOpIsActive() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:6486:2: (kw= 'isActive' )
+ // InternalRBAModel.g:6487:2: kw= 'isActive'
+ {
+ kw=(Token)match(input,88,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpIsActiveAccess().getIsActiveKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpIsActive"
+
+
+ // $ANTLR start "entryRuleOpGetAllocatables"
+ // InternalRBAModel.g:6495:1: entryRuleOpGetAllocatables returns [String current=null] : iv_ruleOpGetAllocatables= ruleOpGetAllocatables EOF ;
+ public final String entryRuleOpGetAllocatables() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpGetAllocatables = null;
+
+
+ try {
+ // InternalRBAModel.g:6495:57: (iv_ruleOpGetAllocatables= ruleOpGetAllocatables EOF )
+ // InternalRBAModel.g:6496:2: iv_ruleOpGetAllocatables= ruleOpGetAllocatables EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpGetAllocatablesRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpGetAllocatables=ruleOpGetAllocatables();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpGetAllocatables.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpGetAllocatables"
+
+
+ // $ANTLR start "ruleOpGetAllocatables"
+ // InternalRBAModel.g:6502:1: ruleOpGetAllocatables returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'allocatables' ;
+ public final AntlrDatatypeRuleToken ruleOpGetAllocatables() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:6508:2: (kw= 'allocatables' )
+ // InternalRBAModel.g:6509:2: kw= 'allocatables'
+ {
+ kw=(Token)match(input,89,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpGetAllocatablesAccess().getAllocatablesKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpGetAllocatables"
+
+
+ // $ANTLR start "entryRuleOpAllocatedContent"
+ // InternalRBAModel.g:6517:1: entryRuleOpAllocatedContent returns [String current=null] : iv_ruleOpAllocatedContent= ruleOpAllocatedContent EOF ;
+ public final String entryRuleOpAllocatedContent() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpAllocatedContent = null;
+
+
+ try {
+ // InternalRBAModel.g:6517:58: (iv_ruleOpAllocatedContent= ruleOpAllocatedContent EOF )
+ // InternalRBAModel.g:6518:2: iv_ruleOpAllocatedContent= ruleOpAllocatedContent EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpAllocatedContentRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpAllocatedContent=ruleOpAllocatedContent();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpAllocatedContent.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpAllocatedContent"
+
+
+ // $ANTLR start "ruleOpAllocatedContent"
+ // InternalRBAModel.g:6524:1: ruleOpAllocatedContent returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'allocatedContent' ;
+ public final AntlrDatatypeRuleToken ruleOpAllocatedContent() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:6530:2: (kw= 'allocatedContent' )
+ // InternalRBAModel.g:6531:2: kw= 'allocatedContent'
+ {
+ kw=(Token)match(input,90,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpAllocatedContentAccess().getAllocatedContentKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpAllocatedContent"
+
+
+ // $ANTLR start "entryRuleOpIsDisplayed"
+ // InternalRBAModel.g:6539:1: entryRuleOpIsDisplayed returns [String current=null] : iv_ruleOpIsDisplayed= ruleOpIsDisplayed EOF ;
+ public final String entryRuleOpIsDisplayed() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpIsDisplayed = null;
+
+
+ try {
+ // InternalRBAModel.g:6539:53: (iv_ruleOpIsDisplayed= ruleOpIsDisplayed EOF )
+ // InternalRBAModel.g:6540:2: iv_ruleOpIsDisplayed= ruleOpIsDisplayed EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpIsDisplayedRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpIsDisplayed=ruleOpIsDisplayed();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpIsDisplayed.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpIsDisplayed"
+
+
+ // $ANTLR start "ruleOpIsDisplayed"
+ // InternalRBAModel.g:6546:1: ruleOpIsDisplayed returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'isDisplayed' ;
+ public final AntlrDatatypeRuleToken ruleOpIsDisplayed() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:6552:2: (kw= 'isDisplayed' )
+ // InternalRBAModel.g:6553:2: kw= 'isDisplayed'
+ {
+ kw=(Token)match(input,91,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpIsDisplayedAccess().getIsDisplayedKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpIsDisplayed"
+
+
+ // $ANTLR start "entryRuleOpIsHidden"
+ // InternalRBAModel.g:6561:1: entryRuleOpIsHidden returns [String current=null] : iv_ruleOpIsHidden= ruleOpIsHidden EOF ;
+ public final String entryRuleOpIsHidden() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpIsHidden = null;
+
+
+ try {
+ // InternalRBAModel.g:6561:50: (iv_ruleOpIsHidden= ruleOpIsHidden EOF )
+ // InternalRBAModel.g:6562:2: iv_ruleOpIsHidden= ruleOpIsHidden EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpIsHiddenRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpIsHidden=ruleOpIsHidden();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpIsHidden.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpIsHidden"
+
+
+ // $ANTLR start "ruleOpIsHidden"
+ // InternalRBAModel.g:6568:1: ruleOpIsHidden returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'isHidden' ;
+ public final AntlrDatatypeRuleToken ruleOpIsHidden() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:6574:2: (kw= 'isHidden' )
+ // InternalRBAModel.g:6575:2: kw= 'isHidden'
+ {
+ kw=(Token)match(input,92,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpIsHiddenAccess().getIsHiddenKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpIsHidden"
+
+
+ // $ANTLR start "entryRuleOpDisplayingContent"
+ // InternalRBAModel.g:6583:1: entryRuleOpDisplayingContent returns [String current=null] : iv_ruleOpDisplayingContent= ruleOpDisplayingContent EOF ;
+ public final String entryRuleOpDisplayingContent() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpDisplayingContent = null;
+
+
+ try {
+ // InternalRBAModel.g:6583:59: (iv_ruleOpDisplayingContent= ruleOpDisplayingContent EOF )
+ // InternalRBAModel.g:6584:2: iv_ruleOpDisplayingContent= ruleOpDisplayingContent EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpDisplayingContentRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpDisplayingContent=ruleOpDisplayingContent();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpDisplayingContent.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpDisplayingContent"
+
+
+ // $ANTLR start "ruleOpDisplayingContent"
+ // InternalRBAModel.g:6590:1: ruleOpDisplayingContent returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'displayingContent' ;
+ public final AntlrDatatypeRuleToken ruleOpDisplayingContent() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:6596:2: (kw= 'displayingContent' )
+ // InternalRBAModel.g:6597:2: kw= 'displayingContent'
+ {
+ kw=(Token)match(input,93,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpDisplayingContentAccess().getDisplayingContentKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpDisplayingContent"
+
+
+ // $ANTLR start "entryRuleOpIsVisible"
+ // InternalRBAModel.g:6605:1: entryRuleOpIsVisible returns [String current=null] : iv_ruleOpIsVisible= ruleOpIsVisible EOF ;
+ public final String entryRuleOpIsVisible() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpIsVisible = null;
+
+
+ try {
+ // InternalRBAModel.g:6605:51: (iv_ruleOpIsVisible= ruleOpIsVisible EOF )
+ // InternalRBAModel.g:6606:2: iv_ruleOpIsVisible= ruleOpIsVisible EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpIsVisibleRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpIsVisible=ruleOpIsVisible();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpIsVisible.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpIsVisible"
+
+
+ // $ANTLR start "ruleOpIsVisible"
+ // InternalRBAModel.g:6612:1: ruleOpIsVisible returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'isVisible' ;
+ public final AntlrDatatypeRuleToken ruleOpIsVisible() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:6618:2: (kw= 'isVisible' )
+ // InternalRBAModel.g:6619:2: kw= 'isVisible'
+ {
+ kw=(Token)match(input,94,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpIsVisibleAccess().getIsVisibleKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpIsVisible"
+
+
+ // $ANTLR start "entryRuleOpIsOutputted"
+ // InternalRBAModel.g:6627:1: entryRuleOpIsOutputted returns [String current=null] : iv_ruleOpIsOutputted= ruleOpIsOutputted EOF ;
+ public final String entryRuleOpIsOutputted() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpIsOutputted = null;
+
+
+ try {
+ // InternalRBAModel.g:6627:53: (iv_ruleOpIsOutputted= ruleOpIsOutputted EOF )
+ // InternalRBAModel.g:6628:2: iv_ruleOpIsOutputted= ruleOpIsOutputted EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpIsOutputtedRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpIsOutputted=ruleOpIsOutputted();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpIsOutputted.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpIsOutputted"
+
+
+ // $ANTLR start "ruleOpIsOutputted"
+ // InternalRBAModel.g:6634:1: ruleOpIsOutputted returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'isOutputted' ;
+ public final AntlrDatatypeRuleToken ruleOpIsOutputted() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:6640:2: (kw= 'isOutputted' )
+ // InternalRBAModel.g:6641:2: kw= 'isOutputted'
+ {
+ kw=(Token)match(input,95,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpIsOutputtedAccess().getIsOutputtedKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpIsOutputted"
+
+
+ // $ANTLR start "entryRuleOpIsMuted"
+ // InternalRBAModel.g:6649:1: entryRuleOpIsMuted returns [String current=null] : iv_ruleOpIsMuted= ruleOpIsMuted EOF ;
+ public final String entryRuleOpIsMuted() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpIsMuted = null;
+
+
+ try {
+ // InternalRBAModel.g:6649:49: (iv_ruleOpIsMuted= ruleOpIsMuted EOF )
+ // InternalRBAModel.g:6650:2: iv_ruleOpIsMuted= ruleOpIsMuted EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpIsMutedRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpIsMuted=ruleOpIsMuted();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpIsMuted.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpIsMuted"
+
+
+ // $ANTLR start "ruleOpIsMuted"
+ // InternalRBAModel.g:6656:1: ruleOpIsMuted returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'isMuted' ;
+ public final AntlrDatatypeRuleToken ruleOpIsMuted() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:6662:2: (kw= 'isMuted' )
+ // InternalRBAModel.g:6663:2: kw= 'isMuted'
+ {
+ kw=(Token)match(input,96,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpIsMutedAccess().getIsMutedKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpIsMuted"
+
+
+ // $ANTLR start "entryRuleOpOutputtingSound"
+ // InternalRBAModel.g:6671:1: entryRuleOpOutputtingSound returns [String current=null] : iv_ruleOpOutputtingSound= ruleOpOutputtingSound EOF ;
+ public final String entryRuleOpOutputtingSound() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpOutputtingSound = null;
+
+
+ try {
+ // InternalRBAModel.g:6671:57: (iv_ruleOpOutputtingSound= ruleOpOutputtingSound EOF )
+ // InternalRBAModel.g:6672:2: iv_ruleOpOutputtingSound= ruleOpOutputtingSound EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpOutputtingSoundRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpOutputtingSound=ruleOpOutputtingSound();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpOutputtingSound.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpOutputtingSound"
+
+
+ // $ANTLR start "ruleOpOutputtingSound"
+ // InternalRBAModel.g:6678:1: ruleOpOutputtingSound returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'outputtingSound' ;
+ public final AntlrDatatypeRuleToken ruleOpOutputtingSound() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:6684:2: (kw= 'outputtingSound' )
+ // InternalRBAModel.g:6685:2: kw= 'outputtingSound'
+ {
+ kw=(Token)match(input,97,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpOutputtingSoundAccess().getOutputtingSoundKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpOutputtingSound"
+
+
+ // $ANTLR start "entryRuleOpIsSounding"
+ // InternalRBAModel.g:6693:1: entryRuleOpIsSounding returns [String current=null] : iv_ruleOpIsSounding= ruleOpIsSounding EOF ;
+ public final String entryRuleOpIsSounding() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpIsSounding = null;
+
+
+ try {
+ // InternalRBAModel.g:6693:52: (iv_ruleOpIsSounding= ruleOpIsSounding EOF )
+ // InternalRBAModel.g:6694:2: iv_ruleOpIsSounding= ruleOpIsSounding EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpIsSoundingRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpIsSounding=ruleOpIsSounding();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpIsSounding.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpIsSounding"
+
+
+ // $ANTLR start "ruleOpIsSounding"
+ // InternalRBAModel.g:6700:1: ruleOpIsSounding returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'isSounding' ;
+ public final AntlrDatatypeRuleToken ruleOpIsSounding() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:6706:2: (kw= 'isSounding' )
+ // InternalRBAModel.g:6707:2: kw= 'isSounding'
+ {
+ kw=(Token)match(input,98,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpIsSoundingAccess().getIsSoundingKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpIsSounding"
+
+
+ // $ANTLR start "entryRuleOpIsAttenuated"
+ // InternalRBAModel.g:6715:1: entryRuleOpIsAttenuated returns [String current=null] : iv_ruleOpIsAttenuated= ruleOpIsAttenuated EOF ;
+ public final String entryRuleOpIsAttenuated() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpIsAttenuated = null;
+
+
+ try {
+ // InternalRBAModel.g:6715:54: (iv_ruleOpIsAttenuated= ruleOpIsAttenuated EOF )
+ // InternalRBAModel.g:6716:2: iv_ruleOpIsAttenuated= ruleOpIsAttenuated EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpIsAttenuatedRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpIsAttenuated=ruleOpIsAttenuated();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpIsAttenuated.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpIsAttenuated"
+
+
+ // $ANTLR start "ruleOpIsAttenuated"
+ // InternalRBAModel.g:6722:1: ruleOpIsAttenuated returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'isAttenuated' ;
+ public final AntlrDatatypeRuleToken ruleOpIsAttenuated() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:6728:2: (kw= 'isAttenuated' )
+ // InternalRBAModel.g:6729:2: kw= 'isAttenuated'
+ {
+ kw=(Token)match(input,99,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpIsAttenuatedAccess().getIsAttenuatedKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpIsAttenuated"
+
+
+ // $ANTLR start "entryRuleOpHasComeEarlierThan"
+ // InternalRBAModel.g:6737:1: entryRuleOpHasComeEarlierThan returns [String current=null] : iv_ruleOpHasComeEarlierThan= ruleOpHasComeEarlierThan EOF ;
+ public final String entryRuleOpHasComeEarlierThan() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpHasComeEarlierThan = null;
+
+
+ try {
+ // InternalRBAModel.g:6737:60: (iv_ruleOpHasComeEarlierThan= ruleOpHasComeEarlierThan EOF )
+ // InternalRBAModel.g:6738:2: iv_ruleOpHasComeEarlierThan= ruleOpHasComeEarlierThan EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpHasComeEarlierThanRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpHasComeEarlierThan=ruleOpHasComeEarlierThan();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpHasComeEarlierThan.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpHasComeEarlierThan"
+
+
+ // $ANTLR start "ruleOpHasComeEarlierThan"
+ // InternalRBAModel.g:6744:1: ruleOpHasComeEarlierThan returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'hasComeEarlierThan' ;
+ public final AntlrDatatypeRuleToken ruleOpHasComeEarlierThan() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:6750:2: (kw= 'hasComeEarlierThan' )
+ // InternalRBAModel.g:6751:2: kw= 'hasComeEarlierThan'
+ {
+ kw=(Token)match(input,100,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpHasComeEarlierThanAccess().getHasComeEarlierThanKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpHasComeEarlierThan"
+
+
+ // $ANTLR start "entryRuleOpHasComeLaterThan"
+ // InternalRBAModel.g:6759:1: entryRuleOpHasComeLaterThan returns [String current=null] : iv_ruleOpHasComeLaterThan= ruleOpHasComeLaterThan EOF ;
+ public final String entryRuleOpHasComeLaterThan() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpHasComeLaterThan = null;
+
+
+ try {
+ // InternalRBAModel.g:6759:58: (iv_ruleOpHasComeLaterThan= ruleOpHasComeLaterThan EOF )
+ // InternalRBAModel.g:6760:2: iv_ruleOpHasComeLaterThan= ruleOpHasComeLaterThan EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpHasComeLaterThanRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpHasComeLaterThan=ruleOpHasComeLaterThan();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpHasComeLaterThan.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpHasComeLaterThan"
+
+
+ // $ANTLR start "ruleOpHasComeLaterThan"
+ // InternalRBAModel.g:6766:1: ruleOpHasComeLaterThan returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'hasComeLaterThan' ;
+ public final AntlrDatatypeRuleToken ruleOpHasComeLaterThan() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:6772:2: (kw= 'hasComeLaterThan' )
+ // InternalRBAModel.g:6773:2: kw= 'hasComeLaterThan'
+ {
+ kw=(Token)match(input,101,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpHasComeLaterThanAccess().getHasComeLaterThanKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpHasComeLaterThan"
+
+
+ // $ANTLR start "entryRuleOpStateValue"
+ // InternalRBAModel.g:6781:1: entryRuleOpStateValue returns [String current=null] : iv_ruleOpStateValue= ruleOpStateValue EOF ;
+ public final String entryRuleOpStateValue() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpStateValue = null;
+
+
+ try {
+ // InternalRBAModel.g:6781:52: (iv_ruleOpStateValue= ruleOpStateValue EOF )
+ // InternalRBAModel.g:6782:2: iv_ruleOpStateValue= ruleOpStateValue EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpStateValueRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpStateValue=ruleOpStateValue();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpStateValue.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpStateValue"
+
+
+ // $ANTLR start "ruleOpStateValue"
+ // InternalRBAModel.g:6788:1: ruleOpStateValue returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'stateValue' ;
+ public final AntlrDatatypeRuleToken ruleOpStateValue() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:6794:2: (kw= 'stateValue' )
+ // InternalRBAModel.g:6795:2: kw= 'stateValue'
+ {
+ kw=(Token)match(input,102,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpStateValueAccess().getStateValueKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpStateValue"
+
+
+ // $ANTLR start "entryRuleOpIsAllocatedTo"
+ // InternalRBAModel.g:6803:1: entryRuleOpIsAllocatedTo returns [String current=null] : iv_ruleOpIsAllocatedTo= ruleOpIsAllocatedTo EOF ;
+ public final String entryRuleOpIsAllocatedTo() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpIsAllocatedTo = null;
+
+
+ try {
+ // InternalRBAModel.g:6803:55: (iv_ruleOpIsAllocatedTo= ruleOpIsAllocatedTo EOF )
+ // InternalRBAModel.g:6804:2: iv_ruleOpIsAllocatedTo= ruleOpIsAllocatedTo EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpIsAllocatedToRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpIsAllocatedTo=ruleOpIsAllocatedTo();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpIsAllocatedTo.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpIsAllocatedTo"
+
+
+ // $ANTLR start "ruleOpIsAllocatedTo"
+ // InternalRBAModel.g:6810:1: ruleOpIsAllocatedTo returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'isAllocatedTo' ;
+ public final AntlrDatatypeRuleToken ruleOpIsAllocatedTo() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:6816:2: (kw= 'isAllocatedTo' )
+ // InternalRBAModel.g:6817:2: kw= 'isAllocatedTo'
+ {
+ kw=(Token)match(input,103,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpIsAllocatedToAccess().getIsAllocatedToKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpIsAllocatedTo"
+
+
+ // $ANTLR start "entryRuleOpIsChanged"
+ // InternalRBAModel.g:6825:1: entryRuleOpIsChanged returns [String current=null] : iv_ruleOpIsChanged= ruleOpIsChanged EOF ;
+ public final String entryRuleOpIsChanged() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpIsChanged = null;
+
+
+ try {
+ // InternalRBAModel.g:6825:51: (iv_ruleOpIsChanged= ruleOpIsChanged EOF )
+ // InternalRBAModel.g:6826:2: iv_ruleOpIsChanged= ruleOpIsChanged EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpIsChangedRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpIsChanged=ruleOpIsChanged();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpIsChanged.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpIsChanged"
+
+
+ // $ANTLR start "ruleOpIsChanged"
+ // InternalRBAModel.g:6832:1: ruleOpIsChanged returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'isChanged' ;
+ public final AntlrDatatypeRuleToken ruleOpIsChanged() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:6838:2: (kw= 'isChanged' )
+ // InternalRBAModel.g:6839:2: kw= 'isChanged'
+ {
+ kw=(Token)match(input,104,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpIsChangedAccess().getIsChangedKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpIsChanged"
+
+
+ // $ANTLR start "entryRuleOpIsTranslatedTo"
+ // InternalRBAModel.g:6847:1: entryRuleOpIsTranslatedTo returns [String current=null] : iv_ruleOpIsTranslatedTo= ruleOpIsTranslatedTo EOF ;
+ public final String entryRuleOpIsTranslatedTo() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpIsTranslatedTo = null;
+
+
+ try {
+ // InternalRBAModel.g:6847:56: (iv_ruleOpIsTranslatedTo= ruleOpIsTranslatedTo EOF )
+ // InternalRBAModel.g:6848:2: iv_ruleOpIsTranslatedTo= ruleOpIsTranslatedTo EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpIsTranslatedToRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpIsTranslatedTo=ruleOpIsTranslatedTo();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpIsTranslatedTo.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpIsTranslatedTo"
+
+
+ // $ANTLR start "ruleOpIsTranslatedTo"
+ // InternalRBAModel.g:6854:1: ruleOpIsTranslatedTo returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'isTranslatedTo' ;
+ public final AntlrDatatypeRuleToken ruleOpIsTranslatedTo() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:6860:2: (kw= 'isTranslatedTo' )
+ // InternalRBAModel.g:6861:2: kw= 'isTranslatedTo'
+ {
+ kw=(Token)match(input,105,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpIsTranslatedToAccess().getIsTranslatedToKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpIsTranslatedTo"
+
+
+ // $ANTLR start "entryRuleOpIsDisplayedOn"
+ // InternalRBAModel.g:6869:1: entryRuleOpIsDisplayedOn returns [String current=null] : iv_ruleOpIsDisplayedOn= ruleOpIsDisplayedOn EOF ;
+ public final String entryRuleOpIsDisplayedOn() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpIsDisplayedOn = null;
+
+
+ try {
+ // InternalRBAModel.g:6869:55: (iv_ruleOpIsDisplayedOn= ruleOpIsDisplayedOn EOF )
+ // InternalRBAModel.g:6870:2: iv_ruleOpIsDisplayedOn= ruleOpIsDisplayedOn EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpIsDisplayedOnRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpIsDisplayedOn=ruleOpIsDisplayedOn();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpIsDisplayedOn.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpIsDisplayedOn"
+
+
+ // $ANTLR start "ruleOpIsDisplayedOn"
+ // InternalRBAModel.g:6876:1: ruleOpIsDisplayedOn returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'isDisplayedOn' ;
+ public final AntlrDatatypeRuleToken ruleOpIsDisplayedOn() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:6882:2: (kw= 'isDisplayedOn' )
+ // InternalRBAModel.g:6883:2: kw= 'isDisplayedOn'
+ {
+ kw=(Token)match(input,106,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpIsDisplayedOnAccess().getIsDisplayedOnKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpIsDisplayedOn"
+
+
+ // $ANTLR start "entryRuleOpIsChangedDisplay"
+ // InternalRBAModel.g:6891:1: entryRuleOpIsChangedDisplay returns [String current=null] : iv_ruleOpIsChangedDisplay= ruleOpIsChangedDisplay EOF ;
+ public final String entryRuleOpIsChangedDisplay() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpIsChangedDisplay = null;
+
+
+ try {
+ // InternalRBAModel.g:6891:58: (iv_ruleOpIsChangedDisplay= ruleOpIsChangedDisplay EOF )
+ // InternalRBAModel.g:6892:2: iv_ruleOpIsChangedDisplay= ruleOpIsChangedDisplay EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpIsChangedDisplayRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpIsChangedDisplay=ruleOpIsChangedDisplay();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpIsChangedDisplay.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpIsChangedDisplay"
+
+
+ // $ANTLR start "ruleOpIsChangedDisplay"
+ // InternalRBAModel.g:6898:1: ruleOpIsChangedDisplay returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'isChangedDisplay' ;
+ public final AntlrDatatypeRuleToken ruleOpIsChangedDisplay() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:6904:2: (kw= 'isChangedDisplay' )
+ // InternalRBAModel.g:6905:2: kw= 'isChangedDisplay'
+ {
+ kw=(Token)match(input,107,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpIsChangedDisplayAccess().getIsChangedDisplayKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpIsChangedDisplay"
+
+
+ // $ANTLR start "entryRuleOpIsTranslatedViewTo"
+ // InternalRBAModel.g:6913:1: entryRuleOpIsTranslatedViewTo returns [String current=null] : iv_ruleOpIsTranslatedViewTo= ruleOpIsTranslatedViewTo EOF ;
+ public final String entryRuleOpIsTranslatedViewTo() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpIsTranslatedViewTo = null;
+
+
+ try {
+ // InternalRBAModel.g:6913:60: (iv_ruleOpIsTranslatedViewTo= ruleOpIsTranslatedViewTo EOF )
+ // InternalRBAModel.g:6914:2: iv_ruleOpIsTranslatedViewTo= ruleOpIsTranslatedViewTo EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpIsTranslatedViewToRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpIsTranslatedViewTo=ruleOpIsTranslatedViewTo();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpIsTranslatedViewTo.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpIsTranslatedViewTo"
+
+
+ // $ANTLR start "ruleOpIsTranslatedViewTo"
+ // InternalRBAModel.g:6920:1: ruleOpIsTranslatedViewTo returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'isTranslatedViewTo' ;
+ public final AntlrDatatypeRuleToken ruleOpIsTranslatedViewTo() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:6926:2: (kw= 'isTranslatedViewTo' )
+ // InternalRBAModel.g:6927:2: kw= 'isTranslatedViewTo'
+ {
+ kw=(Token)match(input,108,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpIsTranslatedViewToAccess().getIsTranslatedViewToKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpIsTranslatedViewTo"
+
+
+ // $ANTLR start "entryRuleOpIsOutputtedOn"
+ // InternalRBAModel.g:6935:1: entryRuleOpIsOutputtedOn returns [String current=null] : iv_ruleOpIsOutputtedOn= ruleOpIsOutputtedOn EOF ;
+ public final String entryRuleOpIsOutputtedOn() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpIsOutputtedOn = null;
+
+
+ try {
+ // InternalRBAModel.g:6935:55: (iv_ruleOpIsOutputtedOn= ruleOpIsOutputtedOn EOF )
+ // InternalRBAModel.g:6936:2: iv_ruleOpIsOutputtedOn= ruleOpIsOutputtedOn EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpIsOutputtedOnRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpIsOutputtedOn=ruleOpIsOutputtedOn();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpIsOutputtedOn.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpIsOutputtedOn"
+
+
+ // $ANTLR start "ruleOpIsOutputtedOn"
+ // InternalRBAModel.g:6942:1: ruleOpIsOutputtedOn returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'isOutputtedOn' ;
+ public final AntlrDatatypeRuleToken ruleOpIsOutputtedOn() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:6948:2: (kw= 'isOutputtedOn' )
+ // InternalRBAModel.g:6949:2: kw= 'isOutputtedOn'
+ {
+ kw=(Token)match(input,109,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpIsOutputtedOnAccess().getIsOutputtedOnKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpIsOutputtedOn"
+
+
+ // $ANTLR start "entryRuleOpIsChangedOutput"
+ // InternalRBAModel.g:6957:1: entryRuleOpIsChangedOutput returns [String current=null] : iv_ruleOpIsChangedOutput= ruleOpIsChangedOutput EOF ;
+ public final String entryRuleOpIsChangedOutput() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpIsChangedOutput = null;
+
+
+ try {
+ // InternalRBAModel.g:6957:57: (iv_ruleOpIsChangedOutput= ruleOpIsChangedOutput EOF )
+ // InternalRBAModel.g:6958:2: iv_ruleOpIsChangedOutput= ruleOpIsChangedOutput EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpIsChangedOutputRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpIsChangedOutput=ruleOpIsChangedOutput();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpIsChangedOutput.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpIsChangedOutput"
+
+
+ // $ANTLR start "ruleOpIsChangedOutput"
+ // InternalRBAModel.g:6964:1: ruleOpIsChangedOutput returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'isChangedOutput' ;
+ public final AntlrDatatypeRuleToken ruleOpIsChangedOutput() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:6970:2: (kw= 'isChangedOutput' )
+ // InternalRBAModel.g:6971:2: kw= 'isChangedOutput'
+ {
+ kw=(Token)match(input,110,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpIsChangedOutputAccess().getIsChangedOutputKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpIsChangedOutput"
+
+
+ // $ANTLR start "entryRuleOpIsTranslatedSoundTo"
+ // InternalRBAModel.g:6979:1: entryRuleOpIsTranslatedSoundTo returns [String current=null] : iv_ruleOpIsTranslatedSoundTo= ruleOpIsTranslatedSoundTo EOF ;
+ public final String entryRuleOpIsTranslatedSoundTo() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpIsTranslatedSoundTo = null;
+
+
+ try {
+ // InternalRBAModel.g:6979:61: (iv_ruleOpIsTranslatedSoundTo= ruleOpIsTranslatedSoundTo EOF )
+ // InternalRBAModel.g:6980:2: iv_ruleOpIsTranslatedSoundTo= ruleOpIsTranslatedSoundTo EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpIsTranslatedSoundToRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpIsTranslatedSoundTo=ruleOpIsTranslatedSoundTo();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpIsTranslatedSoundTo.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpIsTranslatedSoundTo"
+
+
+ // $ANTLR start "ruleOpIsTranslatedSoundTo"
+ // InternalRBAModel.g:6986:1: ruleOpIsTranslatedSoundTo returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'isTranslatedSoundTo' ;
+ public final AntlrDatatypeRuleToken ruleOpIsTranslatedSoundTo() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:6992:2: (kw= 'isTranslatedSoundTo' )
+ // InternalRBAModel.g:6993:2: kw= 'isTranslatedSoundTo'
+ {
+ kw=(Token)match(input,111,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpIsTranslatedSoundToAccess().getIsTranslatedSoundToKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpIsTranslatedSoundTo"
+
+
+ // $ANTLR start "entryRuleOpIsTypeOf"
+ // InternalRBAModel.g:7001:1: entryRuleOpIsTypeOf returns [String current=null] : iv_ruleOpIsTypeOf= ruleOpIsTypeOf EOF ;
+ public final String entryRuleOpIsTypeOf() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpIsTypeOf = null;
+
+
+ try {
+ // InternalRBAModel.g:7001:50: (iv_ruleOpIsTypeOf= ruleOpIsTypeOf EOF )
+ // InternalRBAModel.g:7002:2: iv_ruleOpIsTypeOf= ruleOpIsTypeOf EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpIsTypeOfRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpIsTypeOf=ruleOpIsTypeOf();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpIsTypeOf.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpIsTypeOf"
+
+
+ // $ANTLR start "ruleOpIsTypeOf"
+ // InternalRBAModel.g:7008:1: ruleOpIsTypeOf returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'isTypeOf' ;
+ public final AntlrDatatypeRuleToken ruleOpIsTypeOf() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:7014:2: (kw= 'isTypeOf' )
+ // InternalRBAModel.g:7015:2: kw= 'isTypeOf'
+ {
+ kw=(Token)match(input,112,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpIsTypeOfAccess().getIsTypeOfKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpIsTypeOf"
+
+
+ // $ANTLR start "entryRuleOpActiveContents"
+ // InternalRBAModel.g:7023:1: entryRuleOpActiveContents returns [String current=null] : iv_ruleOpActiveContents= ruleOpActiveContents EOF ;
+ public final String entryRuleOpActiveContents() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpActiveContents = null;
+
+
+ try {
+ // InternalRBAModel.g:7023:56: (iv_ruleOpActiveContents= ruleOpActiveContents EOF )
+ // InternalRBAModel.g:7024:2: iv_ruleOpActiveContents= ruleOpActiveContents EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpActiveContentsRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpActiveContents=ruleOpActiveContents();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpActiveContents.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpActiveContents"
+
+
+ // $ANTLR start "ruleOpActiveContents"
+ // InternalRBAModel.g:7030:1: ruleOpActiveContents returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'activeContents' ;
+ public final AntlrDatatypeRuleToken ruleOpActiveContents() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:7036:2: (kw= 'activeContents' )
+ // InternalRBAModel.g:7037:2: kw= 'activeContents'
+ {
+ kw=(Token)match(input,113,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpActiveContentsAccess().getActiveContentsKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpActiveContents"
+
+
+ // $ANTLR start "entryRuleOpSizeOperator"
+ // InternalRBAModel.g:7045:1: entryRuleOpSizeOperator returns [String current=null] : iv_ruleOpSizeOperator= ruleOpSizeOperator EOF ;
+ public final String entryRuleOpSizeOperator() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpSizeOperator = null;
+
+
+ try {
+ // InternalRBAModel.g:7045:54: (iv_ruleOpSizeOperator= ruleOpSizeOperator EOF )
+ // InternalRBAModel.g:7046:2: iv_ruleOpSizeOperator= ruleOpSizeOperator EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpSizeOperatorRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpSizeOperator=ruleOpSizeOperator();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpSizeOperator.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpSizeOperator"
+
+
+ // $ANTLR start "ruleOpSizeOperator"
+ // InternalRBAModel.g:7052:1: ruleOpSizeOperator returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'size' ;
+ public final AntlrDatatypeRuleToken ruleOpSizeOperator() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:7058:2: (kw= 'size' )
+ // InternalRBAModel.g:7059:2: kw= 'size'
+ {
+ kw=(Token)match(input,114,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpSizeOperatorAccess().getSizeKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpSizeOperator"
+
+
+ // $ANTLR start "entryRuleOpHasBeenDisplayed"
+ // InternalRBAModel.g:7067:1: entryRuleOpHasBeenDisplayed returns [String current=null] : iv_ruleOpHasBeenDisplayed= ruleOpHasBeenDisplayed EOF ;
+ public final String entryRuleOpHasBeenDisplayed() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpHasBeenDisplayed = null;
+
+
+ try {
+ // InternalRBAModel.g:7067:58: (iv_ruleOpHasBeenDisplayed= ruleOpHasBeenDisplayed EOF )
+ // InternalRBAModel.g:7068:2: iv_ruleOpHasBeenDisplayed= ruleOpHasBeenDisplayed EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpHasBeenDisplayedRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpHasBeenDisplayed=ruleOpHasBeenDisplayed();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpHasBeenDisplayed.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpHasBeenDisplayed"
+
+
+ // $ANTLR start "ruleOpHasBeenDisplayed"
+ // InternalRBAModel.g:7074:1: ruleOpHasBeenDisplayed returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'hasBeenDisplayed' ;
+ public final AntlrDatatypeRuleToken ruleOpHasBeenDisplayed() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:7080:2: (kw= 'hasBeenDisplayed' )
+ // InternalRBAModel.g:7081:2: kw= 'hasBeenDisplayed'
+ {
+ kw=(Token)match(input,115,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpHasBeenDisplayedAccess().getHasBeenDisplayedKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpHasBeenDisplayed"
+
+
+ // $ANTLR start "entryRuleOpActiveState"
+ // InternalRBAModel.g:7089:1: entryRuleOpActiveState returns [String current=null] : iv_ruleOpActiveState= ruleOpActiveState EOF ;
+ public final String entryRuleOpActiveState() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpActiveState = null;
+
+
+ try {
+ // InternalRBAModel.g:7089:53: (iv_ruleOpActiveState= ruleOpActiveState EOF )
+ // InternalRBAModel.g:7090:2: iv_ruleOpActiveState= ruleOpActiveState EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpActiveStateRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpActiveState=ruleOpActiveState();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpActiveState.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpActiveState"
+
+
+ // $ANTLR start "ruleOpActiveState"
+ // InternalRBAModel.g:7096:1: ruleOpActiveState returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'activeState' ;
+ public final AntlrDatatypeRuleToken ruleOpActiveState() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:7102:2: (kw= 'activeState' )
+ // InternalRBAModel.g:7103:2: kw= 'activeState'
+ {
+ kw=(Token)match(input,116,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpActiveStateAccess().getActiveStateKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpActiveState"
+
+
+ // $ANTLR start "entryRuleOpMaxOperator"
+ // InternalRBAModel.g:7111:1: entryRuleOpMaxOperator returns [String current=null] : iv_ruleOpMaxOperator= ruleOpMaxOperator EOF ;
+ public final String entryRuleOpMaxOperator() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpMaxOperator = null;
+
+
+ try {
+ // InternalRBAModel.g:7111:53: (iv_ruleOpMaxOperator= ruleOpMaxOperator EOF )
+ // InternalRBAModel.g:7112:2: iv_ruleOpMaxOperator= ruleOpMaxOperator EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpMaxOperatorRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpMaxOperator=ruleOpMaxOperator();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpMaxOperator.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpMaxOperator"
+
+
+ // $ANTLR start "ruleOpMaxOperator"
+ // InternalRBAModel.g:7118:1: ruleOpMaxOperator returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'max' ;
+ public final AntlrDatatypeRuleToken ruleOpMaxOperator() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:7124:2: (kw= 'max' )
+ // InternalRBAModel.g:7125:2: kw= 'max'
+ {
+ kw=(Token)match(input,117,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpMaxOperatorAccess().getMaxKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpMaxOperator"
+
+
+ // $ANTLR start "entryRuleOpMinOperator"
+ // InternalRBAModel.g:7133:1: entryRuleOpMinOperator returns [String current=null] : iv_ruleOpMinOperator= ruleOpMinOperator EOF ;
+ public final String entryRuleOpMinOperator() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpMinOperator = null;
+
+
+ try {
+ // InternalRBAModel.g:7133:53: (iv_ruleOpMinOperator= ruleOpMinOperator EOF )
+ // InternalRBAModel.g:7134:2: iv_ruleOpMinOperator= ruleOpMinOperator EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpMinOperatorRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpMinOperator=ruleOpMinOperator();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpMinOperator.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpMinOperator"
+
+
+ // $ANTLR start "ruleOpMinOperator"
+ // InternalRBAModel.g:7140:1: ruleOpMinOperator returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'min' ;
+ public final AntlrDatatypeRuleToken ruleOpMinOperator() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:7146:2: (kw= 'min' )
+ // InternalRBAModel.g:7147:2: kw= 'min'
+ {
+ kw=(Token)match(input,118,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpMinOperatorAccess().getMinKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpMinOperator"
+
+
+ // $ANTLR start "entryRuleOpSelectOperator"
+ // InternalRBAModel.g:7155:1: entryRuleOpSelectOperator returns [String current=null] : iv_ruleOpSelectOperator= ruleOpSelectOperator EOF ;
+ public final String entryRuleOpSelectOperator() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpSelectOperator = null;
+
+
+ try {
+ // InternalRBAModel.g:7155:56: (iv_ruleOpSelectOperator= ruleOpSelectOperator EOF )
+ // InternalRBAModel.g:7156:2: iv_ruleOpSelectOperator= ruleOpSelectOperator EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpSelectOperatorRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleOpSelectOperator=ruleOpSelectOperator();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpSelectOperator.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpSelectOperator"
+
+
+ // $ANTLR start "ruleOpSelectOperator"
+ // InternalRBAModel.g:7162:1: ruleOpSelectOperator returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'select' ;
+ public final AntlrDatatypeRuleToken ruleOpSelectOperator() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:7168:2: (kw= 'select' )
+ // InternalRBAModel.g:7169:2: kw= 'select'
+ {
+ kw=(Token)match(input,119,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpSelectOperatorAccess().getSelectKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpSelectOperator"
+
+
+ // $ANTLR start "entryRuleCPrimaryExpression"
+ // InternalRBAModel.g:7177:1: entryRuleCPrimaryExpression returns [EObject current=null] : iv_ruleCPrimaryExpression= ruleCPrimaryExpression EOF ;
+ public final EObject entryRuleCPrimaryExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleCPrimaryExpression = null;
+
+
+ try {
+ // InternalRBAModel.g:7177:59: (iv_ruleCPrimaryExpression= ruleCPrimaryExpression EOF )
+ // InternalRBAModel.g:7178:2: iv_ruleCPrimaryExpression= ruleCPrimaryExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getCPrimaryExpressionRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleCPrimaryExpression=ruleCPrimaryExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleCPrimaryExpression;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleCPrimaryExpression"
+
+
+ // $ANTLR start "ruleCPrimaryExpression"
+ // InternalRBAModel.g:7184:1: ruleCPrimaryExpression returns [EObject current=null] : (this_CMemberFeatureReference_0= ruleCMemberFeatureReference | this_PreviousModifier_1= rulePreviousModifier | this_AllInstanceOfExpression_2= ruleAllInstanceOfExpression | this_NullExpression_3= ruleNullExpression | this_IntegerValue_4= ruleIntegerValue | this_MuteLowerPriority_5= ruleMuteLowerPriority | this_HideLowerPriority_6= ruleHideLowerPriority | this_SetOfOperator_7= ruleSetOfOperator | this_IfStatement_8= ruleIfStatement | this_ForAllOperator_9= ruleForAllOperator | this_ExistsOperator_10= ruleExistsOperator | (otherlv_11= '(' this_CExpression_12= ruleCExpression otherlv_13= ')' ) ) ;
+ public final EObject ruleCPrimaryExpression() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_11=null;
+ Token otherlv_13=null;
+ EObject this_CMemberFeatureReference_0 = null;
+
+ EObject this_PreviousModifier_1 = null;
+
+ EObject this_AllInstanceOfExpression_2 = null;
+
+ EObject this_NullExpression_3 = null;
+
+ EObject this_IntegerValue_4 = null;
+
+ EObject this_MuteLowerPriority_5 = null;
+
+ EObject this_HideLowerPriority_6 = null;
+
+ EObject this_SetOfOperator_7 = null;
+
+ EObject this_IfStatement_8 = null;
+
+ EObject this_ForAllOperator_9 = null;
+
+ EObject this_ExistsOperator_10 = null;
+
+ EObject this_CExpression_12 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:7190:2: ( (this_CMemberFeatureReference_0= ruleCMemberFeatureReference | this_PreviousModifier_1= rulePreviousModifier | this_AllInstanceOfExpression_2= ruleAllInstanceOfExpression | this_NullExpression_3= ruleNullExpression | this_IntegerValue_4= ruleIntegerValue | this_MuteLowerPriority_5= ruleMuteLowerPriority | this_HideLowerPriority_6= ruleHideLowerPriority | this_SetOfOperator_7= ruleSetOfOperator | this_IfStatement_8= ruleIfStatement | this_ForAllOperator_9= ruleForAllOperator | this_ExistsOperator_10= ruleExistsOperator | (otherlv_11= '(' this_CExpression_12= ruleCExpression otherlv_13= ')' ) ) )
+ // InternalRBAModel.g:7191:2: (this_CMemberFeatureReference_0= ruleCMemberFeatureReference | this_PreviousModifier_1= rulePreviousModifier | this_AllInstanceOfExpression_2= ruleAllInstanceOfExpression | this_NullExpression_3= ruleNullExpression | this_IntegerValue_4= ruleIntegerValue | this_MuteLowerPriority_5= ruleMuteLowerPriority | this_HideLowerPriority_6= ruleHideLowerPriority | this_SetOfOperator_7= ruleSetOfOperator | this_IfStatement_8= ruleIfStatement | this_ForAllOperator_9= ruleForAllOperator | this_ExistsOperator_10= ruleExistsOperator | (otherlv_11= '(' this_CExpression_12= ruleCExpression otherlv_13= ')' ) )
+ {
+ // InternalRBAModel.g:7191:2: (this_CMemberFeatureReference_0= ruleCMemberFeatureReference | this_PreviousModifier_1= rulePreviousModifier | this_AllInstanceOfExpression_2= ruleAllInstanceOfExpression | this_NullExpression_3= ruleNullExpression | this_IntegerValue_4= ruleIntegerValue | this_MuteLowerPriority_5= ruleMuteLowerPriority | this_HideLowerPriority_6= ruleHideLowerPriority | this_SetOfOperator_7= ruleSetOfOperator | this_IfStatement_8= ruleIfStatement | this_ForAllOperator_9= ruleForAllOperator | this_ExistsOperator_10= ruleExistsOperator | (otherlv_11= '(' this_CExpression_12= ruleCExpression otherlv_13= ')' ) )
+ int alt83=12;
+ alt83 = dfa83.predict(input);
+ switch (alt83) {
+ case 1 :
+ // InternalRBAModel.g:7192:3: this_CMemberFeatureReference_0= ruleCMemberFeatureReference
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCPrimaryExpressionAccess().getCMemberFeatureReferenceParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_CMemberFeatureReference_0=ruleCMemberFeatureReference();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_CMemberFeatureReference_0;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:7201:3: this_PreviousModifier_1= rulePreviousModifier
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCPrimaryExpressionAccess().getPreviousModifierParserRuleCall_1());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_PreviousModifier_1=rulePreviousModifier();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_PreviousModifier_1;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:7210:3: this_AllInstanceOfExpression_2= ruleAllInstanceOfExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCPrimaryExpressionAccess().getAllInstanceOfExpressionParserRuleCall_2());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_AllInstanceOfExpression_2=ruleAllInstanceOfExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_AllInstanceOfExpression_2;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 4 :
+ // InternalRBAModel.g:7219:3: this_NullExpression_3= ruleNullExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCPrimaryExpressionAccess().getNullExpressionParserRuleCall_3());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_NullExpression_3=ruleNullExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_NullExpression_3;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 5 :
+ // InternalRBAModel.g:7228:3: this_IntegerValue_4= ruleIntegerValue
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCPrimaryExpressionAccess().getIntegerValueParserRuleCall_4());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_IntegerValue_4=ruleIntegerValue();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_IntegerValue_4;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 6 :
+ // InternalRBAModel.g:7237:3: this_MuteLowerPriority_5= ruleMuteLowerPriority
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCPrimaryExpressionAccess().getMuteLowerPriorityParserRuleCall_5());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_MuteLowerPriority_5=ruleMuteLowerPriority();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_MuteLowerPriority_5;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 7 :
+ // InternalRBAModel.g:7246:3: this_HideLowerPriority_6= ruleHideLowerPriority
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCPrimaryExpressionAccess().getHideLowerPriorityParserRuleCall_6());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_HideLowerPriority_6=ruleHideLowerPriority();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_HideLowerPriority_6;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 8 :
+ // InternalRBAModel.g:7255:3: this_SetOfOperator_7= ruleSetOfOperator
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCPrimaryExpressionAccess().getSetOfOperatorParserRuleCall_7());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_SetOfOperator_7=ruleSetOfOperator();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_SetOfOperator_7;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 9 :
+ // InternalRBAModel.g:7264:3: this_IfStatement_8= ruleIfStatement
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCPrimaryExpressionAccess().getIfStatementParserRuleCall_8());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_IfStatement_8=ruleIfStatement();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_IfStatement_8;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 10 :
+ // InternalRBAModel.g:7273:3: this_ForAllOperator_9= ruleForAllOperator
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCPrimaryExpressionAccess().getForAllOperatorParserRuleCall_9());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_ForAllOperator_9=ruleForAllOperator();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_ForAllOperator_9;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 11 :
+ // InternalRBAModel.g:7282:3: this_ExistsOperator_10= ruleExistsOperator
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCPrimaryExpressionAccess().getExistsOperatorParserRuleCall_10());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_ExistsOperator_10=ruleExistsOperator();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_ExistsOperator_10;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 12 :
+ // InternalRBAModel.g:7291:3: (otherlv_11= '(' this_CExpression_12= ruleCExpression otherlv_13= ')' )
+ {
+ // InternalRBAModel.g:7291:3: (otherlv_11= '(' this_CExpression_12= ruleCExpression otherlv_13= ')' )
+ // InternalRBAModel.g:7292:4: otherlv_11= '(' this_CExpression_12= ruleCExpression otherlv_13= ')'
+ {
+ otherlv_11=(Token)match(input,34,FOLLOW_52); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_11, grammarAccess.getCPrimaryExpressionAccess().getLeftParenthesisKeyword_11_0());
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCPrimaryExpressionAccess().getCExpressionParserRuleCall_11_1());
+
+ }
+ pushFollow(FOLLOW_48);
+ this_CExpression_12=ruleCExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_CExpression_12;
+ afterParserOrEnumRuleCall();
+
+ }
+ otherlv_13=(Token)match(input,35,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_13, grammarAccess.getCPrimaryExpressionAccess().getRightParenthesisKeyword_11_2());
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleCPrimaryExpression"
+
+
+ // $ANTLR start "entryRuleAllInstanceOfExpression"
+ // InternalRBAModel.g:7313:1: entryRuleAllInstanceOfExpression returns [EObject current=null] : iv_ruleAllInstanceOfExpression= ruleAllInstanceOfExpression EOF ;
+ public final EObject entryRuleAllInstanceOfExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleAllInstanceOfExpression = null;
+
+
+ try {
+ // InternalRBAModel.g:7313:64: (iv_ruleAllInstanceOfExpression= ruleAllInstanceOfExpression EOF )
+ // InternalRBAModel.g:7314:2: iv_ruleAllInstanceOfExpression= ruleAllInstanceOfExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getAllInstanceOfExpressionRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleAllInstanceOfExpression=ruleAllInstanceOfExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleAllInstanceOfExpression;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleAllInstanceOfExpression"
+
+
+ // $ANTLR start "ruleAllInstanceOfExpression"
+ // InternalRBAModel.g:7320:1: ruleAllInstanceOfExpression returns [EObject current=null] : ( ( ( ( () 'ALL_AREAS' ) | ( () 'ALL_VIEWCONTENTS' ) | ( () 'ALL_ZONES' ) | ( () 'ALL_SOUNDCONTENTS' ) ) )=> ( ( () otherlv_1= 'ALL_AREAS' ) | ( () otherlv_3= 'ALL_VIEWCONTENTS' ) | ( () otherlv_5= 'ALL_ZONES' ) | ( () otherlv_7= 'ALL_SOUNDCONTENTS' ) ) ) ;
+ public final EObject ruleAllInstanceOfExpression() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_3=null;
+ Token otherlv_5=null;
+ Token otherlv_7=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:7326:2: ( ( ( ( ( () 'ALL_AREAS' ) | ( () 'ALL_VIEWCONTENTS' ) | ( () 'ALL_ZONES' ) | ( () 'ALL_SOUNDCONTENTS' ) ) )=> ( ( () otherlv_1= 'ALL_AREAS' ) | ( () otherlv_3= 'ALL_VIEWCONTENTS' ) | ( () otherlv_5= 'ALL_ZONES' ) | ( () otherlv_7= 'ALL_SOUNDCONTENTS' ) ) ) )
+ // InternalRBAModel.g:7327:2: ( ( ( ( () 'ALL_AREAS' ) | ( () 'ALL_VIEWCONTENTS' ) | ( () 'ALL_ZONES' ) | ( () 'ALL_SOUNDCONTENTS' ) ) )=> ( ( () otherlv_1= 'ALL_AREAS' ) | ( () otherlv_3= 'ALL_VIEWCONTENTS' ) | ( () otherlv_5= 'ALL_ZONES' ) | ( () otherlv_7= 'ALL_SOUNDCONTENTS' ) ) )
+ {
+ // InternalRBAModel.g:7327:2: ( ( ( ( () 'ALL_AREAS' ) | ( () 'ALL_VIEWCONTENTS' ) | ( () 'ALL_ZONES' ) | ( () 'ALL_SOUNDCONTENTS' ) ) )=> ( ( () otherlv_1= 'ALL_AREAS' ) | ( () otherlv_3= 'ALL_VIEWCONTENTS' ) | ( () otherlv_5= 'ALL_ZONES' ) | ( () otherlv_7= 'ALL_SOUNDCONTENTS' ) ) )
+ // InternalRBAModel.g:7328:3: ( ( ( () 'ALL_AREAS' ) | ( () 'ALL_VIEWCONTENTS' ) | ( () 'ALL_ZONES' ) | ( () 'ALL_SOUNDCONTENTS' ) ) )=> ( ( () otherlv_1= 'ALL_AREAS' ) | ( () otherlv_3= 'ALL_VIEWCONTENTS' ) | ( () otherlv_5= 'ALL_ZONES' ) | ( () otherlv_7= 'ALL_SOUNDCONTENTS' ) )
+ {
+ // InternalRBAModel.g:7354:3: ( ( () otherlv_1= 'ALL_AREAS' ) | ( () otherlv_3= 'ALL_VIEWCONTENTS' ) | ( () otherlv_5= 'ALL_ZONES' ) | ( () otherlv_7= 'ALL_SOUNDCONTENTS' ) )
+ int alt84=4;
+ switch ( input.LA(1) ) {
+ case 120:
+ {
+ alt84=1;
+ }
+ break;
+ case 121:
+ {
+ alt84=2;
+ }
+ break;
+ case 122:
+ {
+ alt84=3;
+ }
+ break;
+ case 123:
+ {
+ alt84=4;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 84, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt84) {
+ case 1 :
+ // InternalRBAModel.g:7355:4: ( () otherlv_1= 'ALL_AREAS' )
+ {
+ // InternalRBAModel.g:7355:4: ( () otherlv_1= 'ALL_AREAS' )
+ // InternalRBAModel.g:7356:5: () otherlv_1= 'ALL_AREAS'
+ {
+ // InternalRBAModel.g:7356:5: ()
+ // InternalRBAModel.g:7357:6:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getAllInstanceOfExpressionAccess().getAllInstanceOfAreaAction_0_0_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,120,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getAllInstanceOfExpressionAccess().getALL_AREASKeyword_0_0_1());
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:7369:4: ( () otherlv_3= 'ALL_VIEWCONTENTS' )
+ {
+ // InternalRBAModel.g:7369:4: ( () otherlv_3= 'ALL_VIEWCONTENTS' )
+ // InternalRBAModel.g:7370:5: () otherlv_3= 'ALL_VIEWCONTENTS'
+ {
+ // InternalRBAModel.g:7370:5: ()
+ // InternalRBAModel.g:7371:6:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getAllInstanceOfExpressionAccess().getAllInstanceOfViewContentAction_0_1_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_3=(Token)match(input,121,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_3, grammarAccess.getAllInstanceOfExpressionAccess().getALL_VIEWCONTENTSKeyword_0_1_1());
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:7383:4: ( () otherlv_5= 'ALL_ZONES' )
+ {
+ // InternalRBAModel.g:7383:4: ( () otherlv_5= 'ALL_ZONES' )
+ // InternalRBAModel.g:7384:5: () otherlv_5= 'ALL_ZONES'
+ {
+ // InternalRBAModel.g:7384:5: ()
+ // InternalRBAModel.g:7385:6:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getAllInstanceOfExpressionAccess().getAllInstanceOfZoneAction_0_2_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_5=(Token)match(input,122,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_5, grammarAccess.getAllInstanceOfExpressionAccess().getALL_ZONESKeyword_0_2_1());
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // InternalRBAModel.g:7397:4: ( () otherlv_7= 'ALL_SOUNDCONTENTS' )
+ {
+ // InternalRBAModel.g:7397:4: ( () otherlv_7= 'ALL_SOUNDCONTENTS' )
+ // InternalRBAModel.g:7398:5: () otherlv_7= 'ALL_SOUNDCONTENTS'
+ {
+ // InternalRBAModel.g:7398:5: ()
+ // InternalRBAModel.g:7399:6:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getAllInstanceOfExpressionAccess().getAllInstanceOfSoundContentAction_0_3_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_7=(Token)match(input,123,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_7, grammarAccess.getAllInstanceOfExpressionAccess().getALL_SOUNDCONTENTSKeyword_0_3_1());
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleAllInstanceOfExpression"
+
+
+ // $ANTLR start "entryRuleNullExpression"
+ // InternalRBAModel.g:7415:1: entryRuleNullExpression returns [EObject current=null] : iv_ruleNullExpression= ruleNullExpression EOF ;
+ public final EObject entryRuleNullExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleNullExpression = null;
+
+
+ try {
+ // InternalRBAModel.g:7415:55: (iv_ruleNullExpression= ruleNullExpression EOF )
+ // InternalRBAModel.g:7416:2: iv_ruleNullExpression= ruleNullExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getNullExpressionRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleNullExpression=ruleNullExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleNullExpression;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleNullExpression"
+
+
+ // $ANTLR start "ruleNullExpression"
+ // InternalRBAModel.g:7422:1: ruleNullExpression returns [EObject current=null] : ( ( ( () 'NULL' ) )=> ( () otherlv_1= 'NULL' ) ) ;
+ public final EObject ruleNullExpression() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:7428:2: ( ( ( ( () 'NULL' ) )=> ( () otherlv_1= 'NULL' ) ) )
+ // InternalRBAModel.g:7429:2: ( ( ( () 'NULL' ) )=> ( () otherlv_1= 'NULL' ) )
+ {
+ // InternalRBAModel.g:7429:2: ( ( ( () 'NULL' ) )=> ( () otherlv_1= 'NULL' ) )
+ // InternalRBAModel.g:7430:3: ( ( () 'NULL' ) )=> ( () otherlv_1= 'NULL' )
+ {
+ // InternalRBAModel.g:7436:3: ( () otherlv_1= 'NULL' )
+ // InternalRBAModel.g:7437:4: () otherlv_1= 'NULL'
+ {
+ // InternalRBAModel.g:7437:4: ()
+ // InternalRBAModel.g:7438:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getNullExpressionAccess().getNullExpressionAction_0_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,124,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getNullExpressionAccess().getNULLKeyword_0_1());
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleNullExpression"
+
+
+ // $ANTLR start "entryRulePreviousModifier"
+ // InternalRBAModel.g:7453:1: entryRulePreviousModifier returns [EObject current=null] : iv_rulePreviousModifier= rulePreviousModifier EOF ;
+ public final EObject entryRulePreviousModifier() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_rulePreviousModifier = null;
+
+
+ try {
+ // InternalRBAModel.g:7453:57: (iv_rulePreviousModifier= rulePreviousModifier EOF )
+ // InternalRBAModel.g:7454:2: iv_rulePreviousModifier= rulePreviousModifier EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getPreviousModifierRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_rulePreviousModifier=rulePreviousModifier();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_rulePreviousModifier;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRulePreviousModifier"
+
+
+ // $ANTLR start "rulePreviousModifier"
+ // InternalRBAModel.g:7460:1: rulePreviousModifier returns [EObject current=null] : ( () otherlv_1= '(pre)' ( (lv_objReference_2_0= ruleCMemberFeatureReference ) ) ) ;
+ public final EObject rulePreviousModifier() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ EObject lv_objReference_2_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:7466:2: ( ( () otherlv_1= '(pre)' ( (lv_objReference_2_0= ruleCMemberFeatureReference ) ) ) )
+ // InternalRBAModel.g:7467:2: ( () otherlv_1= '(pre)' ( (lv_objReference_2_0= ruleCMemberFeatureReference ) ) )
+ {
+ // InternalRBAModel.g:7467:2: ( () otherlv_1= '(pre)' ( (lv_objReference_2_0= ruleCMemberFeatureReference ) ) )
+ // InternalRBAModel.g:7468:3: () otherlv_1= '(pre)' ( (lv_objReference_2_0= ruleCMemberFeatureReference ) )
+ {
+ // InternalRBAModel.g:7468:3: ()
+ // InternalRBAModel.g:7469:4:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getPreviousModifierAccess().getPreviousModifierAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,125,FOLLOW_60); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getPreviousModifierAccess().getPreKeyword_1());
+
+ }
+ // InternalRBAModel.g:7479:3: ( (lv_objReference_2_0= ruleCMemberFeatureReference ) )
+ // InternalRBAModel.g:7480:4: (lv_objReference_2_0= ruleCMemberFeatureReference )
+ {
+ // InternalRBAModel.g:7480:4: (lv_objReference_2_0= ruleCMemberFeatureReference )
+ // InternalRBAModel.g:7481:5: lv_objReference_2_0= ruleCMemberFeatureReference
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getPreviousModifierAccess().getObjReferenceCMemberFeatureReferenceParserRuleCall_2_0());
+
+ }
+ pushFollow(FOLLOW_2);
+ lv_objReference_2_0=ruleCMemberFeatureReference();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getPreviousModifierRule());
+ }
+ set(
+ current,
+ "objReference",
+ lv_objReference_2_0,
+ "rba.tool.editor.RBAModel.CMemberFeatureReference");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "rulePreviousModifier"
+
+
+ // $ANTLR start "entryRuleHideLowerPriority"
+ // InternalRBAModel.g:7502:1: entryRuleHideLowerPriority returns [EObject current=null] : iv_ruleHideLowerPriority= ruleHideLowerPriority EOF ;
+ public final EObject entryRuleHideLowerPriority() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleHideLowerPriority = null;
+
+
+ try {
+ // InternalRBAModel.g:7502:58: (iv_ruleHideLowerPriority= ruleHideLowerPriority EOF )
+ // InternalRBAModel.g:7503:2: iv_ruleHideLowerPriority= ruleHideLowerPriority EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getHideLowerPriorityRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleHideLowerPriority=ruleHideLowerPriority();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleHideLowerPriority;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleHideLowerPriority"
+
+
+ // $ANTLR start "ruleHideLowerPriority"
+ // InternalRBAModel.g:7509:1: ruleHideLowerPriority returns [EObject current=null] : ( () otherlv_1= 'HideLowerPriority' otherlv_2= '(' ( (lv_operand_3_0= ruleCExpression ) ) otherlv_4= ',' ( (lv_operand_5_0= ruleCExpression ) ) otherlv_6= ')' ) ;
+ public final EObject ruleHideLowerPriority() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_2=null;
+ Token otherlv_4=null;
+ Token otherlv_6=null;
+ EObject lv_operand_3_0 = null;
+
+ EObject lv_operand_5_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:7515:2: ( ( () otherlv_1= 'HideLowerPriority' otherlv_2= '(' ( (lv_operand_3_0= ruleCExpression ) ) otherlv_4= ',' ( (lv_operand_5_0= ruleCExpression ) ) otherlv_6= ')' ) )
+ // InternalRBAModel.g:7516:2: ( () otherlv_1= 'HideLowerPriority' otherlv_2= '(' ( (lv_operand_3_0= ruleCExpression ) ) otherlv_4= ',' ( (lv_operand_5_0= ruleCExpression ) ) otherlv_6= ')' )
+ {
+ // InternalRBAModel.g:7516:2: ( () otherlv_1= 'HideLowerPriority' otherlv_2= '(' ( (lv_operand_3_0= ruleCExpression ) ) otherlv_4= ',' ( (lv_operand_5_0= ruleCExpression ) ) otherlv_6= ')' )
+ // InternalRBAModel.g:7517:3: () otherlv_1= 'HideLowerPriority' otherlv_2= '(' ( (lv_operand_3_0= ruleCExpression ) ) otherlv_4= ',' ( (lv_operand_5_0= ruleCExpression ) ) otherlv_6= ')'
+ {
+ // InternalRBAModel.g:7517:3: ()
+ // InternalRBAModel.g:7518:4:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getHideLowerPriorityAccess().getHideLowerPriorityAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,126,FOLLOW_20); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getHideLowerPriorityAccess().getHideLowerPriorityKeyword_1());
+
+ }
+ otherlv_2=(Token)match(input,34,FOLLOW_52); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_2, grammarAccess.getHideLowerPriorityAccess().getLeftParenthesisKeyword_2());
+
+ }
+ // InternalRBAModel.g:7532:3: ( (lv_operand_3_0= ruleCExpression ) )
+ // InternalRBAModel.g:7533:4: (lv_operand_3_0= ruleCExpression )
+ {
+ // InternalRBAModel.g:7533:4: (lv_operand_3_0= ruleCExpression )
+ // InternalRBAModel.g:7534:5: lv_operand_3_0= ruleCExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getHideLowerPriorityAccess().getOperandCExpressionParserRuleCall_3_0());
+
+ }
+ pushFollow(FOLLOW_61);
+ lv_operand_3_0=ruleCExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getHideLowerPriorityRule());
+ }
+ add(
+ current,
+ "operand",
+ lv_operand_3_0,
+ "rba.tool.editor.RBAModel.CExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_4=(Token)match(input,27,FOLLOW_52); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_4, grammarAccess.getHideLowerPriorityAccess().getCommaKeyword_4());
+
+ }
+ // InternalRBAModel.g:7555:3: ( (lv_operand_5_0= ruleCExpression ) )
+ // InternalRBAModel.g:7556:4: (lv_operand_5_0= ruleCExpression )
+ {
+ // InternalRBAModel.g:7556:4: (lv_operand_5_0= ruleCExpression )
+ // InternalRBAModel.g:7557:5: lv_operand_5_0= ruleCExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getHideLowerPriorityAccess().getOperandCExpressionParserRuleCall_5_0());
+
+ }
+ pushFollow(FOLLOW_48);
+ lv_operand_5_0=ruleCExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getHideLowerPriorityRule());
+ }
+ add(
+ current,
+ "operand",
+ lv_operand_5_0,
+ "rba.tool.editor.RBAModel.CExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_6=(Token)match(input,35,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_6, grammarAccess.getHideLowerPriorityAccess().getRightParenthesisKeyword_6());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleHideLowerPriority"
+
+
+ // $ANTLR start "entryRuleMuteLowerPriority"
+ // InternalRBAModel.g:7582:1: entryRuleMuteLowerPriority returns [EObject current=null] : iv_ruleMuteLowerPriority= ruleMuteLowerPriority EOF ;
+ public final EObject entryRuleMuteLowerPriority() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleMuteLowerPriority = null;
+
+
+ try {
+ // InternalRBAModel.g:7582:58: (iv_ruleMuteLowerPriority= ruleMuteLowerPriority EOF )
+ // InternalRBAModel.g:7583:2: iv_ruleMuteLowerPriority= ruleMuteLowerPriority EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getMuteLowerPriorityRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleMuteLowerPriority=ruleMuteLowerPriority();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleMuteLowerPriority;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleMuteLowerPriority"
+
+
+ // $ANTLR start "ruleMuteLowerPriority"
+ // InternalRBAModel.g:7589:1: ruleMuteLowerPriority returns [EObject current=null] : ( () otherlv_1= 'MuteLowerPriority' otherlv_2= '(' ( (lv_operand_3_0= ruleCExpression ) ) otherlv_4= ',' ( (lv_operand_5_0= ruleCExpression ) ) otherlv_6= ')' ) ;
+ public final EObject ruleMuteLowerPriority() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_2=null;
+ Token otherlv_4=null;
+ Token otherlv_6=null;
+ EObject lv_operand_3_0 = null;
+
+ EObject lv_operand_5_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:7595:2: ( ( () otherlv_1= 'MuteLowerPriority' otherlv_2= '(' ( (lv_operand_3_0= ruleCExpression ) ) otherlv_4= ',' ( (lv_operand_5_0= ruleCExpression ) ) otherlv_6= ')' ) )
+ // InternalRBAModel.g:7596:2: ( () otherlv_1= 'MuteLowerPriority' otherlv_2= '(' ( (lv_operand_3_0= ruleCExpression ) ) otherlv_4= ',' ( (lv_operand_5_0= ruleCExpression ) ) otherlv_6= ')' )
+ {
+ // InternalRBAModel.g:7596:2: ( () otherlv_1= 'MuteLowerPriority' otherlv_2= '(' ( (lv_operand_3_0= ruleCExpression ) ) otherlv_4= ',' ( (lv_operand_5_0= ruleCExpression ) ) otherlv_6= ')' )
+ // InternalRBAModel.g:7597:3: () otherlv_1= 'MuteLowerPriority' otherlv_2= '(' ( (lv_operand_3_0= ruleCExpression ) ) otherlv_4= ',' ( (lv_operand_5_0= ruleCExpression ) ) otherlv_6= ')'
+ {
+ // InternalRBAModel.g:7597:3: ()
+ // InternalRBAModel.g:7598:4:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getMuteLowerPriorityAccess().getMuteLowerPriorityAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,127,FOLLOW_20); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getMuteLowerPriorityAccess().getMuteLowerPriorityKeyword_1());
+
+ }
+ otherlv_2=(Token)match(input,34,FOLLOW_52); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_2, grammarAccess.getMuteLowerPriorityAccess().getLeftParenthesisKeyword_2());
+
+ }
+ // InternalRBAModel.g:7612:3: ( (lv_operand_3_0= ruleCExpression ) )
+ // InternalRBAModel.g:7613:4: (lv_operand_3_0= ruleCExpression )
+ {
+ // InternalRBAModel.g:7613:4: (lv_operand_3_0= ruleCExpression )
+ // InternalRBAModel.g:7614:5: lv_operand_3_0= ruleCExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getMuteLowerPriorityAccess().getOperandCExpressionParserRuleCall_3_0());
+
+ }
+ pushFollow(FOLLOW_61);
+ lv_operand_3_0=ruleCExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getMuteLowerPriorityRule());
+ }
+ add(
+ current,
+ "operand",
+ lv_operand_3_0,
+ "rba.tool.editor.RBAModel.CExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_4=(Token)match(input,27,FOLLOW_52); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_4, grammarAccess.getMuteLowerPriorityAccess().getCommaKeyword_4());
+
+ }
+ // InternalRBAModel.g:7635:3: ( (lv_operand_5_0= ruleCExpression ) )
+ // InternalRBAModel.g:7636:4: (lv_operand_5_0= ruleCExpression )
+ {
+ // InternalRBAModel.g:7636:4: (lv_operand_5_0= ruleCExpression )
+ // InternalRBAModel.g:7637:5: lv_operand_5_0= ruleCExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getMuteLowerPriorityAccess().getOperandCExpressionParserRuleCall_5_0());
+
+ }
+ pushFollow(FOLLOW_48);
+ lv_operand_5_0=ruleCExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getMuteLowerPriorityRule());
+ }
+ add(
+ current,
+ "operand",
+ lv_operand_5_0,
+ "rba.tool.editor.RBAModel.CExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_6=(Token)match(input,35,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_6, grammarAccess.getMuteLowerPriorityAccess().getRightParenthesisKeyword_6());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleMuteLowerPriority"
+
+
+ // $ANTLR start "entryRuleSetOfOperator"
+ // InternalRBAModel.g:7662:1: entryRuleSetOfOperator returns [EObject current=null] : iv_ruleSetOfOperator= ruleSetOfOperator EOF ;
+ public final EObject entryRuleSetOfOperator() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleSetOfOperator = null;
+
+
+ try {
+ // InternalRBAModel.g:7662:54: (iv_ruleSetOfOperator= ruleSetOfOperator EOF )
+ // InternalRBAModel.g:7663:2: iv_ruleSetOfOperator= ruleSetOfOperator EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getSetOfOperatorRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleSetOfOperator=ruleSetOfOperator();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleSetOfOperator;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleSetOfOperator"
+
+
+ // $ANTLR start "ruleSetOfOperator"
+ // InternalRBAModel.g:7669:1: ruleSetOfOperator returns [EObject current=null] : ( () otherlv_1= '{' ( ( (lv_operand_2_0= ruleCExpression ) ) (otherlv_3= ',' ( (lv_operand_4_0= ruleCExpression ) ) )* )? otherlv_5= '}' ) ;
+ public final EObject ruleSetOfOperator() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_3=null;
+ Token otherlv_5=null;
+ EObject lv_operand_2_0 = null;
+
+ EObject lv_operand_4_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:7675:2: ( ( () otherlv_1= '{' ( ( (lv_operand_2_0= ruleCExpression ) ) (otherlv_3= ',' ( (lv_operand_4_0= ruleCExpression ) ) )* )? otherlv_5= '}' ) )
+ // InternalRBAModel.g:7676:2: ( () otherlv_1= '{' ( ( (lv_operand_2_0= ruleCExpression ) ) (otherlv_3= ',' ( (lv_operand_4_0= ruleCExpression ) ) )* )? otherlv_5= '}' )
+ {
+ // InternalRBAModel.g:7676:2: ( () otherlv_1= '{' ( ( (lv_operand_2_0= ruleCExpression ) ) (otherlv_3= ',' ( (lv_operand_4_0= ruleCExpression ) ) )* )? otherlv_5= '}' )
+ // InternalRBAModel.g:7677:3: () otherlv_1= '{' ( ( (lv_operand_2_0= ruleCExpression ) ) (otherlv_3= ',' ( (lv_operand_4_0= ruleCExpression ) ) )* )? otherlv_5= '}'
+ {
+ // InternalRBAModel.g:7677:3: ()
+ // InternalRBAModel.g:7678:4:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getSetOfOperatorAccess().getSetOfOperatorAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,26,FOLLOW_25); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getSetOfOperatorAccess().getLeftCurlyBracketKeyword_1());
+
+ }
+ // InternalRBAModel.g:7688:3: ( ( (lv_operand_2_0= ruleCExpression ) ) (otherlv_3= ',' ( (lv_operand_4_0= ruleCExpression ) ) )* )?
+ int alt86=2;
+ int LA86_0 = input.LA(1);
+
+ if ( (LA86_0==RULE_INT||LA86_0==RULE_ID||LA86_0==26||LA86_0==34||LA86_0==83||(LA86_0>=120 && LA86_0<=128)||(LA86_0>=131 && LA86_0<=132)||LA86_0==148||LA86_0==150) ) {
+ alt86=1;
+ }
+ switch (alt86) {
+ case 1 :
+ // InternalRBAModel.g:7689:4: ( (lv_operand_2_0= ruleCExpression ) ) (otherlv_3= ',' ( (lv_operand_4_0= ruleCExpression ) ) )*
+ {
+ // InternalRBAModel.g:7689:4: ( (lv_operand_2_0= ruleCExpression ) )
+ // InternalRBAModel.g:7690:5: (lv_operand_2_0= ruleCExpression )
+ {
+ // InternalRBAModel.g:7690:5: (lv_operand_2_0= ruleCExpression )
+ // InternalRBAModel.g:7691:6: lv_operand_2_0= ruleCExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getSetOfOperatorAccess().getOperandCExpressionParserRuleCall_2_0_0());
+
+ }
+ pushFollow(FOLLOW_13);
+ lv_operand_2_0=ruleCExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSetOfOperatorRule());
+ }
+ add(
+ current,
+ "operand",
+ lv_operand_2_0,
+ "rba.tool.editor.RBAModel.CExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // InternalRBAModel.g:7708:4: (otherlv_3= ',' ( (lv_operand_4_0= ruleCExpression ) ) )*
+ loop85:
+ do {
+ int alt85=2;
+ int LA85_0 = input.LA(1);
+
+ if ( (LA85_0==27) ) {
+ alt85=1;
+ }
+
+
+ switch (alt85) {
+ case 1 :
+ // InternalRBAModel.g:7709:5: otherlv_3= ',' ( (lv_operand_4_0= ruleCExpression ) )
+ {
+ otherlv_3=(Token)match(input,27,FOLLOW_52); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_3, grammarAccess.getSetOfOperatorAccess().getCommaKeyword_2_1_0());
+
+ }
+ // InternalRBAModel.g:7713:5: ( (lv_operand_4_0= ruleCExpression ) )
+ // InternalRBAModel.g:7714:6: (lv_operand_4_0= ruleCExpression )
+ {
+ // InternalRBAModel.g:7714:6: (lv_operand_4_0= ruleCExpression )
+ // InternalRBAModel.g:7715:7: lv_operand_4_0= ruleCExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getSetOfOperatorAccess().getOperandCExpressionParserRuleCall_2_1_1_0());
+
+ }
+ pushFollow(FOLLOW_13);
+ lv_operand_4_0=ruleCExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSetOfOperatorRule());
+ }
+ add(
+ current,
+ "operand",
+ lv_operand_4_0,
+ "rba.tool.editor.RBAModel.CExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop85;
+ }
+ } while (true);
+
+
+ }
+ break;
+
+ }
+
+ otherlv_5=(Token)match(input,28,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_5, grammarAccess.getSetOfOperatorAccess().getRightCurlyBracketKeyword_3());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleSetOfOperator"
+
+
+ // $ANTLR start "entryRuleIfStatement"
+ // InternalRBAModel.g:7742:1: entryRuleIfStatement returns [EObject current=null] : iv_ruleIfStatement= ruleIfStatement EOF ;
+ public final EObject entryRuleIfStatement() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleIfStatement = null;
+
+
+ try {
+ // InternalRBAModel.g:7742:52: (iv_ruleIfStatement= ruleIfStatement EOF )
+ // InternalRBAModel.g:7743:2: iv_ruleIfStatement= ruleIfStatement EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getIfStatementRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleIfStatement=ruleIfStatement();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleIfStatement;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleIfStatement"
+
+
+ // $ANTLR start "ruleIfStatement"
+ // InternalRBAModel.g:7749:1: ruleIfStatement returns [EObject current=null] : ( () otherlv_1= 'IF' otherlv_2= '(' ( (lv_condition_3_0= ruleCExpression ) )? otherlv_4= ')' ( ( ( 'THEN' )=>otherlv_5= 'THEN' ) ( (lv_thenExpression_6_0= ruleCExpression ) ) )? ( ( ( 'ELSE' )=>otherlv_7= 'ELSE' ) ( (lv_elseExpression_8_0= ruleCExpression ) ) )? ) ;
+ public final EObject ruleIfStatement() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_2=null;
+ Token otherlv_4=null;
+ Token otherlv_5=null;
+ Token otherlv_7=null;
+ EObject lv_condition_3_0 = null;
+
+ EObject lv_thenExpression_6_0 = null;
+
+ EObject lv_elseExpression_8_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:7755:2: ( ( () otherlv_1= 'IF' otherlv_2= '(' ( (lv_condition_3_0= ruleCExpression ) )? otherlv_4= ')' ( ( ( 'THEN' )=>otherlv_5= 'THEN' ) ( (lv_thenExpression_6_0= ruleCExpression ) ) )? ( ( ( 'ELSE' )=>otherlv_7= 'ELSE' ) ( (lv_elseExpression_8_0= ruleCExpression ) ) )? ) )
+ // InternalRBAModel.g:7756:2: ( () otherlv_1= 'IF' otherlv_2= '(' ( (lv_condition_3_0= ruleCExpression ) )? otherlv_4= ')' ( ( ( 'THEN' )=>otherlv_5= 'THEN' ) ( (lv_thenExpression_6_0= ruleCExpression ) ) )? ( ( ( 'ELSE' )=>otherlv_7= 'ELSE' ) ( (lv_elseExpression_8_0= ruleCExpression ) ) )? )
+ {
+ // InternalRBAModel.g:7756:2: ( () otherlv_1= 'IF' otherlv_2= '(' ( (lv_condition_3_0= ruleCExpression ) )? otherlv_4= ')' ( ( ( 'THEN' )=>otherlv_5= 'THEN' ) ( (lv_thenExpression_6_0= ruleCExpression ) ) )? ( ( ( 'ELSE' )=>otherlv_7= 'ELSE' ) ( (lv_elseExpression_8_0= ruleCExpression ) ) )? )
+ // InternalRBAModel.g:7757:3: () otherlv_1= 'IF' otherlv_2= '(' ( (lv_condition_3_0= ruleCExpression ) )? otherlv_4= ')' ( ( ( 'THEN' )=>otherlv_5= 'THEN' ) ( (lv_thenExpression_6_0= ruleCExpression ) ) )? ( ( ( 'ELSE' )=>otherlv_7= 'ELSE' ) ( (lv_elseExpression_8_0= ruleCExpression ) ) )?
+ {
+ // InternalRBAModel.g:7757:3: ()
+ // InternalRBAModel.g:7758:4:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getIfStatementAccess().getIfStatementAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,128,FOLLOW_20); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getIfStatementAccess().getIFKeyword_1());
+
+ }
+ otherlv_2=(Token)match(input,34,FOLLOW_57); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_2, grammarAccess.getIfStatementAccess().getLeftParenthesisKeyword_2());
+
+ }
+ // InternalRBAModel.g:7772:3: ( (lv_condition_3_0= ruleCExpression ) )?
+ int alt87=2;
+ int LA87_0 = input.LA(1);
+
+ if ( (LA87_0==RULE_INT||LA87_0==RULE_ID||LA87_0==26||LA87_0==34||LA87_0==83||(LA87_0>=120 && LA87_0<=128)||(LA87_0>=131 && LA87_0<=132)||LA87_0==148||LA87_0==150) ) {
+ alt87=1;
+ }
+ switch (alt87) {
+ case 1 :
+ // InternalRBAModel.g:7773:4: (lv_condition_3_0= ruleCExpression )
+ {
+ // InternalRBAModel.g:7773:4: (lv_condition_3_0= ruleCExpression )
+ // InternalRBAModel.g:7774:5: lv_condition_3_0= ruleCExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getIfStatementAccess().getConditionCExpressionParserRuleCall_3_0());
+
+ }
+ pushFollow(FOLLOW_48);
+ lv_condition_3_0=ruleCExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getIfStatementRule());
+ }
+ set(
+ current,
+ "condition",
+ lv_condition_3_0,
+ "rba.tool.editor.RBAModel.CExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ otherlv_4=(Token)match(input,35,FOLLOW_62); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_4, grammarAccess.getIfStatementAccess().getRightParenthesisKeyword_4());
+
+ }
+ // InternalRBAModel.g:7795:3: ( ( ( 'THEN' )=>otherlv_5= 'THEN' ) ( (lv_thenExpression_6_0= ruleCExpression ) ) )?
+ int alt88=2;
+ int LA88_0 = input.LA(1);
+
+ if ( (LA88_0==129) && (synpred17_InternalRBAModel())) {
+ alt88=1;
+ }
+ switch (alt88) {
+ case 1 :
+ // InternalRBAModel.g:7796:4: ( ( 'THEN' )=>otherlv_5= 'THEN' ) ( (lv_thenExpression_6_0= ruleCExpression ) )
+ {
+ // InternalRBAModel.g:7796:4: ( ( 'THEN' )=>otherlv_5= 'THEN' )
+ // InternalRBAModel.g:7797:5: ( 'THEN' )=>otherlv_5= 'THEN'
+ {
+ otherlv_5=(Token)match(input,129,FOLLOW_52); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_5, grammarAccess.getIfStatementAccess().getTHENKeyword_5_0());
+
+ }
+
+ }
+
+ // InternalRBAModel.g:7803:4: ( (lv_thenExpression_6_0= ruleCExpression ) )
+ // InternalRBAModel.g:7804:5: (lv_thenExpression_6_0= ruleCExpression )
+ {
+ // InternalRBAModel.g:7804:5: (lv_thenExpression_6_0= ruleCExpression )
+ // InternalRBAModel.g:7805:6: lv_thenExpression_6_0= ruleCExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getIfStatementAccess().getThenExpressionCExpressionParserRuleCall_5_1_0());
+
+ }
+ pushFollow(FOLLOW_63);
+ lv_thenExpression_6_0=ruleCExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getIfStatementRule());
+ }
+ set(
+ current,
+ "thenExpression",
+ lv_thenExpression_6_0,
+ "rba.tool.editor.RBAModel.CExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ // InternalRBAModel.g:7823:3: ( ( ( 'ELSE' )=>otherlv_7= 'ELSE' ) ( (lv_elseExpression_8_0= ruleCExpression ) ) )?
+ int alt89=2;
+ int LA89_0 = input.LA(1);
+
+ if ( (LA89_0==130) ) {
+ int LA89_1 = input.LA(2);
+
+ if ( (synpred18_InternalRBAModel()) ) {
+ alt89=1;
+ }
+ }
+ switch (alt89) {
+ case 1 :
+ // InternalRBAModel.g:7824:4: ( ( 'ELSE' )=>otherlv_7= 'ELSE' ) ( (lv_elseExpression_8_0= ruleCExpression ) )
+ {
+ // InternalRBAModel.g:7824:4: ( ( 'ELSE' )=>otherlv_7= 'ELSE' )
+ // InternalRBAModel.g:7825:5: ( 'ELSE' )=>otherlv_7= 'ELSE'
+ {
+ otherlv_7=(Token)match(input,130,FOLLOW_52); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_7, grammarAccess.getIfStatementAccess().getELSEKeyword_6_0());
+
+ }
+
+ }
+
+ // InternalRBAModel.g:7831:4: ( (lv_elseExpression_8_0= ruleCExpression ) )
+ // InternalRBAModel.g:7832:5: (lv_elseExpression_8_0= ruleCExpression )
+ {
+ // InternalRBAModel.g:7832:5: (lv_elseExpression_8_0= ruleCExpression )
+ // InternalRBAModel.g:7833:6: lv_elseExpression_8_0= ruleCExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getIfStatementAccess().getElseExpressionCExpressionParserRuleCall_6_1_0());
+
+ }
+ pushFollow(FOLLOW_2);
+ lv_elseExpression_8_0=ruleCExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getIfStatementRule());
+ }
+ set(
+ current,
+ "elseExpression",
+ lv_elseExpression_8_0,
+ "rba.tool.editor.RBAModel.CExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleIfStatement"
+
+
+ // $ANTLR start "entryRuleForAllOperator"
+ // InternalRBAModel.g:7855:1: entryRuleForAllOperator returns [EObject current=null] : iv_ruleForAllOperator= ruleForAllOperator EOF ;
+ public final EObject entryRuleForAllOperator() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleForAllOperator = null;
+
+
+ try {
+ // InternalRBAModel.g:7855:55: (iv_ruleForAllOperator= ruleForAllOperator EOF )
+ // InternalRBAModel.g:7856:2: iv_ruleForAllOperator= ruleForAllOperator EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getForAllOperatorRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleForAllOperator=ruleForAllOperator();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleForAllOperator;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleForAllOperator"
+
+
+ // $ANTLR start "ruleForAllOperator"
+ // InternalRBAModel.g:7862:1: ruleForAllOperator returns [EObject current=null] : ( () otherlv_1= 'For-All' ( (lv_operand_2_0= ruleCExpression ) ) ( ( ( () '{' ) )=> (lv_lambda_3_0= ruleLambdaExpression ) ) ) ;
+ public final EObject ruleForAllOperator() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ EObject lv_operand_2_0 = null;
+
+ EObject lv_lambda_3_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:7868:2: ( ( () otherlv_1= 'For-All' ( (lv_operand_2_0= ruleCExpression ) ) ( ( ( () '{' ) )=> (lv_lambda_3_0= ruleLambdaExpression ) ) ) )
+ // InternalRBAModel.g:7869:2: ( () otherlv_1= 'For-All' ( (lv_operand_2_0= ruleCExpression ) ) ( ( ( () '{' ) )=> (lv_lambda_3_0= ruleLambdaExpression ) ) )
+ {
+ // InternalRBAModel.g:7869:2: ( () otherlv_1= 'For-All' ( (lv_operand_2_0= ruleCExpression ) ) ( ( ( () '{' ) )=> (lv_lambda_3_0= ruleLambdaExpression ) ) )
+ // InternalRBAModel.g:7870:3: () otherlv_1= 'For-All' ( (lv_operand_2_0= ruleCExpression ) ) ( ( ( () '{' ) )=> (lv_lambda_3_0= ruleLambdaExpression ) )
+ {
+ // InternalRBAModel.g:7870:3: ()
+ // InternalRBAModel.g:7871:4:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getForAllOperatorAccess().getForAllOperatorAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,131,FOLLOW_52); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getForAllOperatorAccess().getForAllKeyword_1());
+
+ }
+ // InternalRBAModel.g:7881:3: ( (lv_operand_2_0= ruleCExpression ) )
+ // InternalRBAModel.g:7882:4: (lv_operand_2_0= ruleCExpression )
+ {
+ // InternalRBAModel.g:7882:4: (lv_operand_2_0= ruleCExpression )
+ // InternalRBAModel.g:7883:5: lv_operand_2_0= ruleCExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getForAllOperatorAccess().getOperandCExpressionParserRuleCall_2_0());
+
+ }
+ pushFollow(FOLLOW_15);
+ lv_operand_2_0=ruleCExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getForAllOperatorRule());
+ }
+ add(
+ current,
+ "operand",
+ lv_operand_2_0,
+ "rba.tool.editor.RBAModel.CExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // InternalRBAModel.g:7900:3: ( ( ( () '{' ) )=> (lv_lambda_3_0= ruleLambdaExpression ) )
+ // InternalRBAModel.g:7901:4: ( ( () '{' ) )=> (lv_lambda_3_0= ruleLambdaExpression )
+ {
+ // InternalRBAModel.g:7907:4: (lv_lambda_3_0= ruleLambdaExpression )
+ // InternalRBAModel.g:7908:5: lv_lambda_3_0= ruleLambdaExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getForAllOperatorAccess().getLambdaLambdaExpressionParserRuleCall_3_0());
+
+ }
+ pushFollow(FOLLOW_2);
+ lv_lambda_3_0=ruleLambdaExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getForAllOperatorRule());
+ }
+ set(
+ current,
+ "lambda",
+ lv_lambda_3_0,
+ "rba.tool.editor.RBAModel.LambdaExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleForAllOperator"
+
+
+ // $ANTLR start "entryRuleExistsOperator"
+ // InternalRBAModel.g:7929:1: entryRuleExistsOperator returns [EObject current=null] : iv_ruleExistsOperator= ruleExistsOperator EOF ;
+ public final EObject entryRuleExistsOperator() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleExistsOperator = null;
+
+
+ try {
+ // InternalRBAModel.g:7929:55: (iv_ruleExistsOperator= ruleExistsOperator EOF )
+ // InternalRBAModel.g:7930:2: iv_ruleExistsOperator= ruleExistsOperator EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getExistsOperatorRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleExistsOperator=ruleExistsOperator();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleExistsOperator;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleExistsOperator"
+
+
+ // $ANTLR start "ruleExistsOperator"
+ // InternalRBAModel.g:7936:1: ruleExistsOperator returns [EObject current=null] : ( () otherlv_1= 'Exists' ( (lv_operand_2_0= ruleCExpression ) ) ( ( ( () '{' ) )=> (lv_lambda_3_0= ruleLambdaExpression ) ) ) ;
+ public final EObject ruleExistsOperator() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ EObject lv_operand_2_0 = null;
+
+ EObject lv_lambda_3_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:7942:2: ( ( () otherlv_1= 'Exists' ( (lv_operand_2_0= ruleCExpression ) ) ( ( ( () '{' ) )=> (lv_lambda_3_0= ruleLambdaExpression ) ) ) )
+ // InternalRBAModel.g:7943:2: ( () otherlv_1= 'Exists' ( (lv_operand_2_0= ruleCExpression ) ) ( ( ( () '{' ) )=> (lv_lambda_3_0= ruleLambdaExpression ) ) )
+ {
+ // InternalRBAModel.g:7943:2: ( () otherlv_1= 'Exists' ( (lv_operand_2_0= ruleCExpression ) ) ( ( ( () '{' ) )=> (lv_lambda_3_0= ruleLambdaExpression ) ) )
+ // InternalRBAModel.g:7944:3: () otherlv_1= 'Exists' ( (lv_operand_2_0= ruleCExpression ) ) ( ( ( () '{' ) )=> (lv_lambda_3_0= ruleLambdaExpression ) )
+ {
+ // InternalRBAModel.g:7944:3: ()
+ // InternalRBAModel.g:7945:4:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getExistsOperatorAccess().getExistsOperatorAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,132,FOLLOW_52); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getExistsOperatorAccess().getExistsKeyword_1());
+
+ }
+ // InternalRBAModel.g:7955:3: ( (lv_operand_2_0= ruleCExpression ) )
+ // InternalRBAModel.g:7956:4: (lv_operand_2_0= ruleCExpression )
+ {
+ // InternalRBAModel.g:7956:4: (lv_operand_2_0= ruleCExpression )
+ // InternalRBAModel.g:7957:5: lv_operand_2_0= ruleCExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getExistsOperatorAccess().getOperandCExpressionParserRuleCall_2_0());
+
+ }
+ pushFollow(FOLLOW_15);
+ lv_operand_2_0=ruleCExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getExistsOperatorRule());
+ }
+ add(
+ current,
+ "operand",
+ lv_operand_2_0,
+ "rba.tool.editor.RBAModel.CExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // InternalRBAModel.g:7974:3: ( ( ( () '{' ) )=> (lv_lambda_3_0= ruleLambdaExpression ) )
+ // InternalRBAModel.g:7975:4: ( ( () '{' ) )=> (lv_lambda_3_0= ruleLambdaExpression )
+ {
+ // InternalRBAModel.g:7981:4: (lv_lambda_3_0= ruleLambdaExpression )
+ // InternalRBAModel.g:7982:5: lv_lambda_3_0= ruleLambdaExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getExistsOperatorAccess().getLambdaLambdaExpressionParserRuleCall_3_0());
+
+ }
+ pushFollow(FOLLOW_2);
+ lv_lambda_3_0=ruleLambdaExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getExistsOperatorRule());
+ }
+ set(
+ current,
+ "lambda",
+ lv_lambda_3_0,
+ "rba.tool.editor.RBAModel.LambdaExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleExistsOperator"
+
+
+ // $ANTLR start "entryRuleLambdaExpression"
+ // InternalRBAModel.g:8003:1: entryRuleLambdaExpression returns [EObject current=null] : iv_ruleLambdaExpression= ruleLambdaExpression EOF ;
+ public final EObject entryRuleLambdaExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleLambdaExpression = null;
+
+
+ try {
+ // InternalRBAModel.g:8003:57: (iv_ruleLambdaExpression= ruleLambdaExpression EOF )
+ // InternalRBAModel.g:8004:2: iv_ruleLambdaExpression= ruleLambdaExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getLambdaExpressionRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleLambdaExpression=ruleLambdaExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleLambdaExpression;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleLambdaExpression"
+
+
+ // $ANTLR start "ruleLambdaExpression"
+ // InternalRBAModel.g:8010:1: ruleLambdaExpression returns [EObject current=null] : ( ( ( ( () '{' ) )=> ( () otherlv_1= '{' ) ) ( ( (lv_x_2_0= ruleVariable ) )? otherlv_3= '|' )? ( (lv_letStatements_4_0= ruleLetStatement ) )* ( (lv_bodyText_5_0= ruleCExpression ) ) otherlv_6= '}' ) ;
+ public final EObject ruleLambdaExpression() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_3=null;
+ Token otherlv_6=null;
+ EObject lv_x_2_0 = null;
+
+ EObject lv_letStatements_4_0 = null;
+
+ EObject lv_bodyText_5_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:8016:2: ( ( ( ( ( () '{' ) )=> ( () otherlv_1= '{' ) ) ( ( (lv_x_2_0= ruleVariable ) )? otherlv_3= '|' )? ( (lv_letStatements_4_0= ruleLetStatement ) )* ( (lv_bodyText_5_0= ruleCExpression ) ) otherlv_6= '}' ) )
+ // InternalRBAModel.g:8017:2: ( ( ( ( () '{' ) )=> ( () otherlv_1= '{' ) ) ( ( (lv_x_2_0= ruleVariable ) )? otherlv_3= '|' )? ( (lv_letStatements_4_0= ruleLetStatement ) )* ( (lv_bodyText_5_0= ruleCExpression ) ) otherlv_6= '}' )
+ {
+ // InternalRBAModel.g:8017:2: ( ( ( ( () '{' ) )=> ( () otherlv_1= '{' ) ) ( ( (lv_x_2_0= ruleVariable ) )? otherlv_3= '|' )? ( (lv_letStatements_4_0= ruleLetStatement ) )* ( (lv_bodyText_5_0= ruleCExpression ) ) otherlv_6= '}' )
+ // InternalRBAModel.g:8018:3: ( ( ( () '{' ) )=> ( () otherlv_1= '{' ) ) ( ( (lv_x_2_0= ruleVariable ) )? otherlv_3= '|' )? ( (lv_letStatements_4_0= ruleLetStatement ) )* ( (lv_bodyText_5_0= ruleCExpression ) ) otherlv_6= '}'
+ {
+ // InternalRBAModel.g:8018:3: ( ( ( () '{' ) )=> ( () otherlv_1= '{' ) )
+ // InternalRBAModel.g:8019:4: ( ( () '{' ) )=> ( () otherlv_1= '{' )
+ {
+ // InternalRBAModel.g:8025:4: ( () otherlv_1= '{' )
+ // InternalRBAModel.g:8026:5: () otherlv_1= '{'
+ {
+ // InternalRBAModel.g:8026:5: ()
+ // InternalRBAModel.g:8027:6:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getLambdaExpressionAccess().getLambdaExpressionAction_0_0_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,26,FOLLOW_64); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getLambdaExpressionAccess().getLeftCurlyBracketKeyword_0_0_1());
+
+ }
+
+ }
+
+
+ }
+
+ // InternalRBAModel.g:8039:3: ( ( (lv_x_2_0= ruleVariable ) )? otherlv_3= '|' )?
+ int alt91=2;
+ alt91 = dfa91.predict(input);
+ switch (alt91) {
+ case 1 :
+ // InternalRBAModel.g:8040:4: ( (lv_x_2_0= ruleVariable ) )? otherlv_3= '|'
+ {
+ // InternalRBAModel.g:8040:4: ( (lv_x_2_0= ruleVariable ) )?
+ int alt90=2;
+ int LA90_0 = input.LA(1);
+
+ if ( (LA90_0==RULE_ID) ) {
+ alt90=1;
+ }
+ switch (alt90) {
+ case 1 :
+ // InternalRBAModel.g:8041:5: (lv_x_2_0= ruleVariable )
+ {
+ // InternalRBAModel.g:8041:5: (lv_x_2_0= ruleVariable )
+ // InternalRBAModel.g:8042:6: lv_x_2_0= ruleVariable
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getLambdaExpressionAccess().getXVariableParserRuleCall_1_0_0());
+
+ }
+ pushFollow(FOLLOW_65);
+ lv_x_2_0=ruleVariable();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getLambdaExpressionRule());
+ }
+ set(
+ current,
+ "x",
+ lv_x_2_0,
+ "rba.tool.editor.RBAModel.Variable");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ otherlv_3=(Token)match(input,133,FOLLOW_52); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_3, grammarAccess.getLambdaExpressionAccess().getVerticalLineKeyword_1_1());
+
+ }
+
+ }
+ break;
+
+ }
+
+ // InternalRBAModel.g:8064:3: ( (lv_letStatements_4_0= ruleLetStatement ) )*
+ loop92:
+ do {
+ int alt92=2;
+ int LA92_0 = input.LA(1);
+
+ if ( (LA92_0==134) ) {
+ alt92=1;
+ }
+
+
+ switch (alt92) {
+ case 1 :
+ // InternalRBAModel.g:8065:4: (lv_letStatements_4_0= ruleLetStatement )
+ {
+ // InternalRBAModel.g:8065:4: (lv_letStatements_4_0= ruleLetStatement )
+ // InternalRBAModel.g:8066:5: lv_letStatements_4_0= ruleLetStatement
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getLambdaExpressionAccess().getLetStatementsLetStatementParserRuleCall_2_0());
+
+ }
+ pushFollow(FOLLOW_52);
+ lv_letStatements_4_0=ruleLetStatement();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getLambdaExpressionRule());
+ }
+ add(
+ current,
+ "letStatements",
+ lv_letStatements_4_0,
+ "rba.tool.editor.RBAModel.LetStatement");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop92;
+ }
+ } while (true);
+
+ // InternalRBAModel.g:8083:3: ( (lv_bodyText_5_0= ruleCExpression ) )
+ // InternalRBAModel.g:8084:4: (lv_bodyText_5_0= ruleCExpression )
+ {
+ // InternalRBAModel.g:8084:4: (lv_bodyText_5_0= ruleCExpression )
+ // InternalRBAModel.g:8085:5: lv_bodyText_5_0= ruleCExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getLambdaExpressionAccess().getBodyTextCExpressionParserRuleCall_3_0());
+
+ }
+ pushFollow(FOLLOW_44);
+ lv_bodyText_5_0=ruleCExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getLambdaExpressionRule());
+ }
+ set(
+ current,
+ "bodyText",
+ lv_bodyText_5_0,
+ "rba.tool.editor.RBAModel.CExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_6=(Token)match(input,28,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_6, grammarAccess.getLambdaExpressionAccess().getRightCurlyBracketKeyword_4());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleLambdaExpression"
+
+
+ // $ANTLR start "entryRuleVariable"
+ // InternalRBAModel.g:8110:1: entryRuleVariable returns [EObject current=null] : iv_ruleVariable= ruleVariable EOF ;
+ public final EObject entryRuleVariable() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleVariable = null;
+
+
+ try {
+ // InternalRBAModel.g:8110:49: (iv_ruleVariable= ruleVariable EOF )
+ // InternalRBAModel.g:8111:2: iv_ruleVariable= ruleVariable EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getVariableRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleVariable=ruleVariable();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleVariable;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleVariable"
+
+
+ // $ANTLR start "ruleVariable"
+ // InternalRBAModel.g:8117:1: ruleVariable returns [EObject current=null] : ( () ( (lv_name_1_0= ruleQualifiedName ) ) ) ;
+ public final EObject ruleVariable() throws RecognitionException {
+ EObject current = null;
+
+ AntlrDatatypeRuleToken lv_name_1_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:8123:2: ( ( () ( (lv_name_1_0= ruleQualifiedName ) ) ) )
+ // InternalRBAModel.g:8124:2: ( () ( (lv_name_1_0= ruleQualifiedName ) ) )
+ {
+ // InternalRBAModel.g:8124:2: ( () ( (lv_name_1_0= ruleQualifiedName ) ) )
+ // InternalRBAModel.g:8125:3: () ( (lv_name_1_0= ruleQualifiedName ) )
+ {
+ // InternalRBAModel.g:8125:3: ()
+ // InternalRBAModel.g:8126:4:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getVariableAccess().getVariableAction_0(),
+ current);
+
+ }
+
+ }
+
+ // InternalRBAModel.g:8132:3: ( (lv_name_1_0= ruleQualifiedName ) )
+ // InternalRBAModel.g:8133:4: (lv_name_1_0= ruleQualifiedName )
+ {
+ // InternalRBAModel.g:8133:4: (lv_name_1_0= ruleQualifiedName )
+ // InternalRBAModel.g:8134:5: lv_name_1_0= ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getVariableAccess().getNameQualifiedNameParserRuleCall_1_0());
+
+ }
+ pushFollow(FOLLOW_2);
+ lv_name_1_0=ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getVariableRule());
+ }
+ set(
+ current,
+ "name",
+ lv_name_1_0,
+ "rba.tool.editor.RBAModel.QualifiedName");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleVariable"
+
+
+ // $ANTLR start "entryRuleCMemberFeatureReference"
+ // InternalRBAModel.g:8155:1: entryRuleCMemberFeatureReference returns [EObject current=null] : iv_ruleCMemberFeatureReference= ruleCMemberFeatureReference EOF ;
+ public final EObject entryRuleCMemberFeatureReference() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleCMemberFeatureReference = null;
+
+
+ try {
+ // InternalRBAModel.g:8155:64: (iv_ruleCMemberFeatureReference= ruleCMemberFeatureReference EOF )
+ // InternalRBAModel.g:8156:2: iv_ruleCMemberFeatureReference= ruleCMemberFeatureReference EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getCMemberFeatureReferenceRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleCMemberFeatureReference=ruleCMemberFeatureReference();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleCMemberFeatureReference;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleCMemberFeatureReference"
+
+
+ // $ANTLR start "ruleCMemberFeatureReference"
+ // InternalRBAModel.g:8162:1: ruleCMemberFeatureReference returns [EObject current=null] : ( () ( ( ruleIdOrThis ) ) ( () otherlv_3= '.' ( ( ruleValidID ) ) )* ) ;
+ public final EObject ruleCMemberFeatureReference() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_3=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:8168:2: ( ( () ( ( ruleIdOrThis ) ) ( () otherlv_3= '.' ( ( ruleValidID ) ) )* ) )
+ // InternalRBAModel.g:8169:2: ( () ( ( ruleIdOrThis ) ) ( () otherlv_3= '.' ( ( ruleValidID ) ) )* )
+ {
+ // InternalRBAModel.g:8169:2: ( () ( ( ruleIdOrThis ) ) ( () otherlv_3= '.' ( ( ruleValidID ) ) )* )
+ // InternalRBAModel.g:8170:3: () ( ( ruleIdOrThis ) ) ( () otherlv_3= '.' ( ( ruleValidID ) ) )*
+ {
+ // InternalRBAModel.g:8170:3: ()
+ // InternalRBAModel.g:8171:4:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getCMemberFeatureReferenceAccess().getObjectReferenceAction_0(),
+ current);
+
+ }
+
+ }
+
+ // InternalRBAModel.g:8177:3: ( ( ruleIdOrThis ) )
+ // InternalRBAModel.g:8178:4: ( ruleIdOrThis )
+ {
+ // InternalRBAModel.g:8178:4: ( ruleIdOrThis )
+ // InternalRBAModel.g:8179:5: ruleIdOrThis
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getCMemberFeatureReferenceRule());
+ }
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCMemberFeatureReferenceAccess().getRefObjectRuleObjectCrossReference_1_0());
+
+ }
+ pushFollow(FOLLOW_50);
+ ruleIdOrThis();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // InternalRBAModel.g:8193:3: ( () otherlv_3= '.' ( ( ruleValidID ) ) )*
+ loop93:
+ do {
+ int alt93=2;
+ int LA93_0 = input.LA(1);
+
+ if ( (LA93_0==71) ) {
+ int LA93_1 = input.LA(2);
+
+ if ( (LA93_1==RULE_ID) ) {
+ alt93=1;
+ }
+
+
+ }
+
+
+ switch (alt93) {
+ case 1 :
+ // InternalRBAModel.g:8194:4: () otherlv_3= '.' ( ( ruleValidID ) )
+ {
+ // InternalRBAModel.g:8194:4: ()
+ // InternalRBAModel.g:8195:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndAdd(
+ grammarAccess.getCMemberFeatureReferenceAccess().getMemberFeatureReferenceOperandAction_2_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_3=(Token)match(input,71,FOLLOW_3); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_3, grammarAccess.getCMemberFeatureReferenceAccess().getFullStopKeyword_2_1());
+
+ }
+ // InternalRBAModel.g:8205:4: ( ( ruleValidID ) )
+ // InternalRBAModel.g:8206:5: ( ruleValidID )
+ {
+ // InternalRBAModel.g:8206:5: ( ruleValidID )
+ // InternalRBAModel.g:8207:6: ruleValidID
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getCMemberFeatureReferenceRule());
+ }
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getCMemberFeatureReferenceAccess().getRefObjectRuleObjectCrossReference_2_2_0());
+
+ }
+ pushFollow(FOLLOW_50);
+ ruleValidID();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop93;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleCMemberFeatureReference"
+
+
+ // $ANTLR start "entryRuleLetStatement"
+ // InternalRBAModel.g:8226:1: entryRuleLetStatement returns [EObject current=null] : iv_ruleLetStatement= ruleLetStatement EOF ;
+ public final EObject entryRuleLetStatement() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleLetStatement = null;
+
+
+ try {
+ // InternalRBAModel.g:8226:53: (iv_ruleLetStatement= ruleLetStatement EOF )
+ // InternalRBAModel.g:8227:2: iv_ruleLetStatement= ruleLetStatement EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getLetStatementRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleLetStatement=ruleLetStatement();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleLetStatement;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleLetStatement"
+
+
+ // $ANTLR start "ruleLetStatement"
+ // InternalRBAModel.g:8233:1: ruleLetStatement returns [EObject current=null] : ( () otherlv_1= 'let' ( ( ( ruleVariable ) )=> (lv_variable_2_0= ruleVariable ) ) (otherlv_3= '=' ( (lv_body_4_0= ruleCExpression ) ) )? ) ;
+ public final EObject ruleLetStatement() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_3=null;
+ EObject lv_variable_2_0 = null;
+
+ EObject lv_body_4_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:8239:2: ( ( () otherlv_1= 'let' ( ( ( ruleVariable ) )=> (lv_variable_2_0= ruleVariable ) ) (otherlv_3= '=' ( (lv_body_4_0= ruleCExpression ) ) )? ) )
+ // InternalRBAModel.g:8240:2: ( () otherlv_1= 'let' ( ( ( ruleVariable ) )=> (lv_variable_2_0= ruleVariable ) ) (otherlv_3= '=' ( (lv_body_4_0= ruleCExpression ) ) )? )
+ {
+ // InternalRBAModel.g:8240:2: ( () otherlv_1= 'let' ( ( ( ruleVariable ) )=> (lv_variable_2_0= ruleVariable ) ) (otherlv_3= '=' ( (lv_body_4_0= ruleCExpression ) ) )? )
+ // InternalRBAModel.g:8241:3: () otherlv_1= 'let' ( ( ( ruleVariable ) )=> (lv_variable_2_0= ruleVariable ) ) (otherlv_3= '=' ( (lv_body_4_0= ruleCExpression ) ) )?
+ {
+ // InternalRBAModel.g:8241:3: ()
+ // InternalRBAModel.g:8242:4:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getLetStatementAccess().getLetStatementAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,134,FOLLOW_3); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getLetStatementAccess().getLetKeyword_1());
+
+ }
+ // InternalRBAModel.g:8252:3: ( ( ( ruleVariable ) )=> (lv_variable_2_0= ruleVariable ) )
+ // InternalRBAModel.g:8253:4: ( ( ruleVariable ) )=> (lv_variable_2_0= ruleVariable )
+ {
+ // InternalRBAModel.g:8257:4: (lv_variable_2_0= ruleVariable )
+ // InternalRBAModel.g:8258:5: lv_variable_2_0= ruleVariable
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getLetStatementAccess().getVariableVariableParserRuleCall_2_0());
+
+ }
+ pushFollow(FOLLOW_66);
+ lv_variable_2_0=ruleVariable();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getLetStatementRule());
+ }
+ set(
+ current,
+ "variable",
+ lv_variable_2_0,
+ "rba.tool.editor.RBAModel.Variable");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // InternalRBAModel.g:8275:3: (otherlv_3= '=' ( (lv_body_4_0= ruleCExpression ) ) )?
+ int alt94=2;
+ int LA94_0 = input.LA(1);
+
+ if ( (LA94_0==69) ) {
+ alt94=1;
+ }
+ switch (alt94) {
+ case 1 :
+ // InternalRBAModel.g:8276:4: otherlv_3= '=' ( (lv_body_4_0= ruleCExpression ) )
+ {
+ otherlv_3=(Token)match(input,69,FOLLOW_52); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_3, grammarAccess.getLetStatementAccess().getEqualsSignKeyword_3_0());
+
+ }
+ // InternalRBAModel.g:8280:4: ( (lv_body_4_0= ruleCExpression ) )
+ // InternalRBAModel.g:8281:5: (lv_body_4_0= ruleCExpression )
+ {
+ // InternalRBAModel.g:8281:5: (lv_body_4_0= ruleCExpression )
+ // InternalRBAModel.g:8282:6: lv_body_4_0= ruleCExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getLetStatementAccess().getBodyCExpressionParserRuleCall_3_1_0());
+
+ }
+ pushFollow(FOLLOW_2);
+ lv_body_4_0=ruleCExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getLetStatementRule());
+ }
+ set(
+ current,
+ "body",
+ lv_body_4_0,
+ "rba.tool.editor.RBAModel.CExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleLetStatement"
+
+
+ // $ANTLR start "entryRuleComplexExpression"
+ // InternalRBAModel.g:8304:1: entryRuleComplexExpression returns [EObject current=null] : iv_ruleComplexExpression= ruleComplexExpression EOF ;
+ public final EObject entryRuleComplexExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleComplexExpression = null;
+
+
+ try {
+ // InternalRBAModel.g:8304:58: (iv_ruleComplexExpression= ruleComplexExpression EOF )
+ // InternalRBAModel.g:8305:2: iv_ruleComplexExpression= ruleComplexExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getComplexExpressionRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleComplexExpression=ruleComplexExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleComplexExpression;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleComplexExpression"
+
+
+ // $ANTLR start "ruleComplexExpression"
+ // InternalRBAModel.g:8311:1: ruleComplexExpression returns [EObject current=null] : ( () ( (lv_letStatements_1_0= ruleLetStatement ) )* ( (lv_otherExpression_2_0= ruleCExpression ) ) ) ;
+ public final EObject ruleComplexExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject lv_letStatements_1_0 = null;
+
+ EObject lv_otherExpression_2_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:8317:2: ( ( () ( (lv_letStatements_1_0= ruleLetStatement ) )* ( (lv_otherExpression_2_0= ruleCExpression ) ) ) )
+ // InternalRBAModel.g:8318:2: ( () ( (lv_letStatements_1_0= ruleLetStatement ) )* ( (lv_otherExpression_2_0= ruleCExpression ) ) )
+ {
+ // InternalRBAModel.g:8318:2: ( () ( (lv_letStatements_1_0= ruleLetStatement ) )* ( (lv_otherExpression_2_0= ruleCExpression ) ) )
+ // InternalRBAModel.g:8319:3: () ( (lv_letStatements_1_0= ruleLetStatement ) )* ( (lv_otherExpression_2_0= ruleCExpression ) )
+ {
+ // InternalRBAModel.g:8319:3: ()
+ // InternalRBAModel.g:8320:4:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getComplexExpressionAccess().getComplexExpressionAction_0(),
+ current);
+
+ }
+
+ }
+
+ // InternalRBAModel.g:8326:3: ( (lv_letStatements_1_0= ruleLetStatement ) )*
+ loop95:
+ do {
+ int alt95=2;
+ int LA95_0 = input.LA(1);
+
+ if ( (LA95_0==134) ) {
+ alt95=1;
+ }
+
+
+ switch (alt95) {
+ case 1 :
+ // InternalRBAModel.g:8327:4: (lv_letStatements_1_0= ruleLetStatement )
+ {
+ // InternalRBAModel.g:8327:4: (lv_letStatements_1_0= ruleLetStatement )
+ // InternalRBAModel.g:8328:5: lv_letStatements_1_0= ruleLetStatement
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getComplexExpressionAccess().getLetStatementsLetStatementParserRuleCall_1_0());
+
+ }
+ pushFollow(FOLLOW_52);
+ lv_letStatements_1_0=ruleLetStatement();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getComplexExpressionRule());
+ }
+ add(
+ current,
+ "letStatements",
+ lv_letStatements_1_0,
+ "rba.tool.editor.RBAModel.LetStatement");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop95;
+ }
+ } while (true);
+
+ // InternalRBAModel.g:8345:3: ( (lv_otherExpression_2_0= ruleCExpression ) )
+ // InternalRBAModel.g:8346:4: (lv_otherExpression_2_0= ruleCExpression )
+ {
+ // InternalRBAModel.g:8346:4: (lv_otherExpression_2_0= ruleCExpression )
+ // InternalRBAModel.g:8347:5: lv_otherExpression_2_0= ruleCExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getComplexExpressionAccess().getOtherExpressionCExpressionParserRuleCall_2_0());
+
+ }
+ pushFollow(FOLLOW_2);
+ lv_otherExpression_2_0=ruleCExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getComplexExpressionRule());
+ }
+ set(
+ current,
+ "otherExpression",
+ lv_otherExpression_2_0,
+ "rba.tool.editor.RBAModel.CExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleComplexExpression"
+
+
+ // $ANTLR start "entryRuleLoserTypeExpression"
+ // InternalRBAModel.g:8368:1: entryRuleLoserTypeExpression returns [EObject current=null] : iv_ruleLoserTypeExpression= ruleLoserTypeExpression EOF ;
+ public final EObject entryRuleLoserTypeExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleLoserTypeExpression = null;
+
+
+ try {
+ // InternalRBAModel.g:8368:60: (iv_ruleLoserTypeExpression= ruleLoserTypeExpression EOF )
+ // InternalRBAModel.g:8369:2: iv_ruleLoserTypeExpression= ruleLoserTypeExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getLoserTypeExpressionRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleLoserTypeExpression=ruleLoserTypeExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleLoserTypeExpression;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleLoserTypeExpression"
+
+
+ // $ANTLR start "ruleLoserTypeExpression"
+ // InternalRBAModel.g:8375:1: ruleLoserTypeExpression returns [EObject current=null] : ( () ( (lv_value_1_0= ruleLoserType ) ) ) ;
+ public final EObject ruleLoserTypeExpression() throws RecognitionException {
+ EObject current = null;
+
+ Enumerator lv_value_1_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:8381:2: ( ( () ( (lv_value_1_0= ruleLoserType ) ) ) )
+ // InternalRBAModel.g:8382:2: ( () ( (lv_value_1_0= ruleLoserType ) ) )
+ {
+ // InternalRBAModel.g:8382:2: ( () ( (lv_value_1_0= ruleLoserType ) ) )
+ // InternalRBAModel.g:8383:3: () ( (lv_value_1_0= ruleLoserType ) )
+ {
+ // InternalRBAModel.g:8383:3: ()
+ // InternalRBAModel.g:8384:4:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getLoserTypeExpressionAccess().getLoserTypeExpressionAction_0(),
+ current);
+
+ }
+
+ }
+
+ // InternalRBAModel.g:8390:3: ( (lv_value_1_0= ruleLoserType ) )
+ // InternalRBAModel.g:8391:4: (lv_value_1_0= ruleLoserType )
+ {
+ // InternalRBAModel.g:8391:4: (lv_value_1_0= ruleLoserType )
+ // InternalRBAModel.g:8392:5: lv_value_1_0= ruleLoserType
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getLoserTypeExpressionAccess().getValueLoserTypeEnumRuleCall_1_0());
+
+ }
+ pushFollow(FOLLOW_2);
+ lv_value_1_0=ruleLoserType();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getLoserTypeExpressionRule());
+ }
+ set(
+ current,
+ "value",
+ lv_value_1_0,
+ "rba.tool.editor.RBAModel.LoserType");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleLoserTypeExpression"
+
+
+ // $ANTLR start "entryRuleArbitrationPolicyExpression"
+ // InternalRBAModel.g:8413:1: entryRuleArbitrationPolicyExpression returns [EObject current=null] : iv_ruleArbitrationPolicyExpression= ruleArbitrationPolicyExpression EOF ;
+ public final EObject entryRuleArbitrationPolicyExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleArbitrationPolicyExpression = null;
+
+
+ try {
+ // InternalRBAModel.g:8413:68: (iv_ruleArbitrationPolicyExpression= ruleArbitrationPolicyExpression EOF )
+ // InternalRBAModel.g:8414:2: iv_ruleArbitrationPolicyExpression= ruleArbitrationPolicyExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getArbitrationPolicyExpressionRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleArbitrationPolicyExpression=ruleArbitrationPolicyExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleArbitrationPolicyExpression;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleArbitrationPolicyExpression"
+
+
+ // $ANTLR start "ruleArbitrationPolicyExpression"
+ // InternalRBAModel.g:8420:1: ruleArbitrationPolicyExpression returns [EObject current=null] : ( () ( (lv_value_1_0= ruleArbitrationPolicy ) ) ) ;
+ public final EObject ruleArbitrationPolicyExpression() throws RecognitionException {
+ EObject current = null;
+
+ Enumerator lv_value_1_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:8426:2: ( ( () ( (lv_value_1_0= ruleArbitrationPolicy ) ) ) )
+ // InternalRBAModel.g:8427:2: ( () ( (lv_value_1_0= ruleArbitrationPolicy ) ) )
+ {
+ // InternalRBAModel.g:8427:2: ( () ( (lv_value_1_0= ruleArbitrationPolicy ) ) )
+ // InternalRBAModel.g:8428:3: () ( (lv_value_1_0= ruleArbitrationPolicy ) )
+ {
+ // InternalRBAModel.g:8428:3: ()
+ // InternalRBAModel.g:8429:4:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getArbitrationPolicyExpressionAccess().getArbitrationPolicyExpressionAction_0(),
+ current);
+
+ }
+
+ }
+
+ // InternalRBAModel.g:8435:3: ( (lv_value_1_0= ruleArbitrationPolicy ) )
+ // InternalRBAModel.g:8436:4: (lv_value_1_0= ruleArbitrationPolicy )
+ {
+ // InternalRBAModel.g:8436:4: (lv_value_1_0= ruleArbitrationPolicy )
+ // InternalRBAModel.g:8437:5: lv_value_1_0= ruleArbitrationPolicy
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getArbitrationPolicyExpressionAccess().getValueArbitrationPolicyEnumRuleCall_1_0());
+
+ }
+ pushFollow(FOLLOW_2);
+ lv_value_1_0=ruleArbitrationPolicy();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getArbitrationPolicyExpressionRule());
+ }
+ set(
+ current,
+ "value",
+ lv_value_1_0,
+ "rba.tool.editor.RBAModel.ArbitrationPolicy");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleArbitrationPolicyExpression"
+
+
+ // $ANTLR start "entryRuleViewContentSet"
+ // InternalRBAModel.g:8458:1: entryRuleViewContentSet returns [EObject current=null] : iv_ruleViewContentSet= ruleViewContentSet EOF ;
+ public final EObject entryRuleViewContentSet() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleViewContentSet = null;
+
+
+ try {
+ // InternalRBAModel.g:8458:55: (iv_ruleViewContentSet= ruleViewContentSet EOF )
+ // InternalRBAModel.g:8459:2: iv_ruleViewContentSet= ruleViewContentSet EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getViewContentSetRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleViewContentSet=ruleViewContentSet();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleViewContentSet;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleViewContentSet"
+
+
+ // $ANTLR start "ruleViewContentSet"
+ // InternalRBAModel.g:8465:1: ruleViewContentSet returns [EObject current=null] : ( () otherlv_1= 'ViewContentSet' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_13= 'allocatable:' otherlv_14= '[' ( ( ( ruleQualifiedName ) ) (otherlv_16= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_18= ']' ) ) ) ) )* ) ) ) otherlv_19= '}' ) ;
+ public final EObject ruleViewContentSet() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_3=null;
+ Token otherlv_5=null;
+ Token otherlv_7=null;
+ Token otherlv_8=null;
+ Token otherlv_10=null;
+ Token otherlv_12=null;
+ Token otherlv_13=null;
+ Token otherlv_14=null;
+ Token otherlv_16=null;
+ Token otherlv_18=null;
+ Token otherlv_19=null;
+ AntlrDatatypeRuleToken lv_name_2_0 = null;
+
+ AntlrDatatypeRuleToken lv_description_6_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:8471:2: ( ( () otherlv_1= 'ViewContentSet' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_13= 'allocatable:' otherlv_14= '[' ( ( ( ruleQualifiedName ) ) (otherlv_16= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_18= ']' ) ) ) ) )* ) ) ) otherlv_19= '}' ) )
+ // InternalRBAModel.g:8472:2: ( () otherlv_1= 'ViewContentSet' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_13= 'allocatable:' otherlv_14= '[' ( ( ( ruleQualifiedName ) ) (otherlv_16= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_18= ']' ) ) ) ) )* ) ) ) otherlv_19= '}' )
+ {
+ // InternalRBAModel.g:8472:2: ( () otherlv_1= 'ViewContentSet' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_13= 'allocatable:' otherlv_14= '[' ( ( ( ruleQualifiedName ) ) (otherlv_16= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_18= ']' ) ) ) ) )* ) ) ) otherlv_19= '}' )
+ // InternalRBAModel.g:8473:3: () otherlv_1= 'ViewContentSet' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_13= 'allocatable:' otherlv_14= '[' ( ( ( ruleQualifiedName ) ) (otherlv_16= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_18= ']' ) ) ) ) )* ) ) ) otherlv_19= '}'
+ {
+ // InternalRBAModel.g:8473:3: ()
+ // InternalRBAModel.g:8474:4:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getViewContentSetAccess().getViewContentSetAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,135,FOLLOW_3); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getViewContentSetAccess().getViewContentSetKeyword_1());
+
+ }
+ // InternalRBAModel.g:8484:3: ( (lv_name_2_0= ruleQualifiedName ) )
+ // InternalRBAModel.g:8485:4: (lv_name_2_0= ruleQualifiedName )
+ {
+ // InternalRBAModel.g:8485:4: (lv_name_2_0= ruleQualifiedName )
+ // InternalRBAModel.g:8486:5: lv_name_2_0= ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getViewContentSetAccess().getNameQualifiedNameParserRuleCall_2_0());
+
+ }
+ pushFollow(FOLLOW_15);
+ lv_name_2_0=ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getViewContentSetRule());
+ }
+ set(
+ current,
+ "name",
+ lv_name_2_0,
+ "rba.tool.editor.RBAModel.QualifiedName");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_3=(Token)match(input,26,FOLLOW_67); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_3, grammarAccess.getViewContentSetAccess().getLeftCurlyBracketKeyword_3());
+
+ }
+ // InternalRBAModel.g:8507:3: ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_13= 'allocatable:' otherlv_14= '[' ( ( ( ruleQualifiedName ) ) (otherlv_16= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_18= ']' ) ) ) ) )* ) ) )
+ // InternalRBAModel.g:8508:4: ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_13= 'allocatable:' otherlv_14= '[' ( ( ( ruleQualifiedName ) ) (otherlv_16= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_18= ']' ) ) ) ) )* ) )
+ {
+ // InternalRBAModel.g:8508:4: ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_13= 'allocatable:' otherlv_14= '[' ( ( ( ruleQualifiedName ) ) (otherlv_16= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_18= ']' ) ) ) ) )* ) )
+ // InternalRBAModel.g:8509:5: ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_13= 'allocatable:' otherlv_14= '[' ( ( ( ruleQualifiedName ) ) (otherlv_16= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_18= ']' ) ) ) ) )* )
+ {
+ getUnorderedGroupHelper().enter(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4());
+ // InternalRBAModel.g:8512:5: ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_13= 'allocatable:' otherlv_14= '[' ( ( ( ruleQualifiedName ) ) (otherlv_16= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_18= ']' ) ) ) ) )* )
+ // InternalRBAModel.g:8513:6: ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_13= 'allocatable:' otherlv_14= '[' ( ( ( ruleQualifiedName ) ) (otherlv_16= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_18= ']' ) ) ) ) )*
+ {
+ // InternalRBAModel.g:8513:6: ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_13= 'allocatable:' otherlv_14= '[' ( ( ( ruleQualifiedName ) ) (otherlv_16= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_18= ']' ) ) ) ) )*
+ loop100:
+ do {
+ int alt100=4;
+ int LA100_0 = input.LA(1);
+
+ if ( LA100_0 == 30 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 0) ) {
+ alt100=1;
+ }
+ else if ( LA100_0 == 55 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 1) ) {
+ alt100=2;
+ }
+ else if ( LA100_0 == 44 && getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 2) ) {
+ alt100=3;
+ }
+
+
+ switch (alt100) {
+ case 1 :
+ // InternalRBAModel.g:8514:4: ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) )
+ {
+ // InternalRBAModel.g:8514:4: ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) )
+ // InternalRBAModel.g:8515:5: {...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleViewContentSet", "getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 0)");
+ }
+ // InternalRBAModel.g:8515:111: ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) )
+ // InternalRBAModel.g:8516:6: ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 0);
+ // InternalRBAModel.g:8519:9: ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) )
+ // InternalRBAModel.g:8519:10: {...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleViewContentSet", "true");
+ }
+ // InternalRBAModel.g:8519:19: (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) )
+ // InternalRBAModel.g:8519:20: otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) )
+ {
+ otherlv_5=(Token)match(input,30,FOLLOW_14); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_5, grammarAccess.getViewContentSetAccess().getDescriptionKeyword_4_0_0());
+
+ }
+ // InternalRBAModel.g:8523:9: ( (lv_description_6_0= ruleEString ) )
+ // InternalRBAModel.g:8524:10: (lv_description_6_0= ruleEString )
+ {
+ // InternalRBAModel.g:8524:10: (lv_description_6_0= ruleEString )
+ // InternalRBAModel.g:8525:11: lv_description_6_0= ruleEString
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getViewContentSetAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+
+ }
+ pushFollow(FOLLOW_67);
+ lv_description_6_0=ruleEString();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getViewContentSetRule());
+ }
+ set(
+ current,
+ "description",
+ lv_description_6_0,
+ "rba.tool.editor.RBAModel.EString");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:8548:4: ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) )
+ {
+ // InternalRBAModel.g:8548:4: ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) )
+ // InternalRBAModel.g:8549:5: {...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleViewContentSet", "getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 1)");
+ }
+ // InternalRBAModel.g:8549:111: ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) )
+ // InternalRBAModel.g:8550:6: ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 1);
+ // InternalRBAModel.g:8553:9: ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) )
+ // InternalRBAModel.g:8553:10: {...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleViewContentSet", "true");
+ }
+ // InternalRBAModel.g:8553:19: (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' )
+ // InternalRBAModel.g:8553:20: otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']'
+ {
+ otherlv_7=(Token)match(input,55,FOLLOW_29); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_7, grammarAccess.getViewContentSetAccess().getTargetKeyword_4_1_0());
+
+ }
+ otherlv_8=(Token)match(input,45,FOLLOW_30); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_8, grammarAccess.getViewContentSetAccess().getLeftSquareBracketKeyword_4_1_1());
+
+ }
+ // InternalRBAModel.g:8561:9: ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )?
+ int alt97=2;
+ int LA97_0 = input.LA(1);
+
+ if ( (LA97_0==RULE_ID) ) {
+ alt97=1;
+ }
+ switch (alt97) {
+ case 1 :
+ // InternalRBAModel.g:8562:10: ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )*
+ {
+ // InternalRBAModel.g:8562:10: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:8563:11: ( ruleQualifiedName )
+ {
+ // InternalRBAModel.g:8563:11: ( ruleQualifiedName )
+ // InternalRBAModel.g:8564:12: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getViewContentSetRule());
+ }
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getViewContentSetAccess().getTargetAbstractContentCrossReference_4_1_2_0_0());
+
+ }
+ pushFollow(FOLLOW_31);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // InternalRBAModel.g:8578:10: (otherlv_10= ',' ( ( ruleQualifiedName ) ) )*
+ loop96:
+ do {
+ int alt96=2;
+ int LA96_0 = input.LA(1);
+
+ if ( (LA96_0==27) ) {
+ alt96=1;
+ }
+
+
+ switch (alt96) {
+ case 1 :
+ // InternalRBAModel.g:8579:11: otherlv_10= ',' ( ( ruleQualifiedName ) )
+ {
+ otherlv_10=(Token)match(input,27,FOLLOW_3); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_10, grammarAccess.getViewContentSetAccess().getCommaKeyword_4_1_2_1_0());
+
+ }
+ // InternalRBAModel.g:8583:11: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:8584:12: ( ruleQualifiedName )
+ {
+ // InternalRBAModel.g:8584:12: ( ruleQualifiedName )
+ // InternalRBAModel.g:8585:13: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getViewContentSetRule());
+ }
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getViewContentSetAccess().getTargetAbstractContentCrossReference_4_1_2_1_1_0());
+
+ }
+ pushFollow(FOLLOW_31);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop96;
+ }
+ } while (true);
+
+
+ }
+ break;
+
+ }
+
+ otherlv_12=(Token)match(input,46,FOLLOW_67); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_12, grammarAccess.getViewContentSetAccess().getRightSquareBracketKeyword_4_1_3());
+
+ }
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:8611:4: ({...}? => ( ({...}? => (otherlv_13= 'allocatable:' otherlv_14= '[' ( ( ( ruleQualifiedName ) ) (otherlv_16= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_18= ']' ) ) ) )
+ {
+ // InternalRBAModel.g:8611:4: ({...}? => ( ({...}? => (otherlv_13= 'allocatable:' otherlv_14= '[' ( ( ( ruleQualifiedName ) ) (otherlv_16= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_18= ']' ) ) ) )
+ // InternalRBAModel.g:8612:5: {...}? => ( ({...}? => (otherlv_13= 'allocatable:' otherlv_14= '[' ( ( ( ruleQualifiedName ) ) (otherlv_16= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_18= ']' ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 2) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleViewContentSet", "getUnorderedGroupHelper().canSelect(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 2)");
+ }
+ // InternalRBAModel.g:8612:111: ( ({...}? => (otherlv_13= 'allocatable:' otherlv_14= '[' ( ( ( ruleQualifiedName ) ) (otherlv_16= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_18= ']' ) ) )
+ // InternalRBAModel.g:8613:6: ({...}? => (otherlv_13= 'allocatable:' otherlv_14= '[' ( ( ( ruleQualifiedName ) ) (otherlv_16= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_18= ']' ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4(), 2);
+ // InternalRBAModel.g:8616:9: ({...}? => (otherlv_13= 'allocatable:' otherlv_14= '[' ( ( ( ruleQualifiedName ) ) (otherlv_16= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_18= ']' ) )
+ // InternalRBAModel.g:8616:10: {...}? => (otherlv_13= 'allocatable:' otherlv_14= '[' ( ( ( ruleQualifiedName ) ) (otherlv_16= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_18= ']' )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleViewContentSet", "true");
+ }
+ // InternalRBAModel.g:8616:19: (otherlv_13= 'allocatable:' otherlv_14= '[' ( ( ( ruleQualifiedName ) ) (otherlv_16= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_18= ']' )
+ // InternalRBAModel.g:8616:20: otherlv_13= 'allocatable:' otherlv_14= '[' ( ( ( ruleQualifiedName ) ) (otherlv_16= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_18= ']'
+ {
+ otherlv_13=(Token)match(input,44,FOLLOW_29); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_13, grammarAccess.getViewContentSetAccess().getAllocatableKeyword_4_2_0());
+
+ }
+ otherlv_14=(Token)match(input,45,FOLLOW_30); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_14, grammarAccess.getViewContentSetAccess().getLeftSquareBracketKeyword_4_2_1());
+
+ }
+ // InternalRBAModel.g:8624:9: ( ( ( ruleQualifiedName ) ) (otherlv_16= ',' ( ( ruleQualifiedName ) ) )* )?
+ int alt99=2;
+ int LA99_0 = input.LA(1);
+
+ if ( (LA99_0==RULE_ID) ) {
+ alt99=1;
+ }
+ switch (alt99) {
+ case 1 :
+ // InternalRBAModel.g:8625:10: ( ( ruleQualifiedName ) ) (otherlv_16= ',' ( ( ruleQualifiedName ) ) )*
+ {
+ // InternalRBAModel.g:8625:10: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:8626:11: ( ruleQualifiedName )
+ {
+ // InternalRBAModel.g:8626:11: ( ruleQualifiedName )
+ // InternalRBAModel.g:8627:12: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getViewContentSetRule());
+ }
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getViewContentSetAccess().getAllocatableAbstractAllocatableCrossReference_4_2_2_0_0());
+
+ }
+ pushFollow(FOLLOW_31);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // InternalRBAModel.g:8641:10: (otherlv_16= ',' ( ( ruleQualifiedName ) ) )*
+ loop98:
+ do {
+ int alt98=2;
+ int LA98_0 = input.LA(1);
+
+ if ( (LA98_0==27) ) {
+ alt98=1;
+ }
+
+
+ switch (alt98) {
+ case 1 :
+ // InternalRBAModel.g:8642:11: otherlv_16= ',' ( ( ruleQualifiedName ) )
+ {
+ otherlv_16=(Token)match(input,27,FOLLOW_3); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_16, grammarAccess.getViewContentSetAccess().getCommaKeyword_4_2_2_1_0());
+
+ }
+ // InternalRBAModel.g:8646:11: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:8647:12: ( ruleQualifiedName )
+ {
+ // InternalRBAModel.g:8647:12: ( ruleQualifiedName )
+ // InternalRBAModel.g:8648:13: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getViewContentSetRule());
+ }
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getViewContentSetAccess().getAllocatableAbstractAllocatableCrossReference_4_2_2_1_1_0());
+
+ }
+ pushFollow(FOLLOW_31);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop98;
+ }
+ } while (true);
+
+
+ }
+ break;
+
+ }
+
+ otherlv_18=(Token)match(input,46,FOLLOW_67); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_18, grammarAccess.getViewContentSetAccess().getRightSquareBracketKeyword_4_2_3());
+
+ }
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop100;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().leave(grammarAccess.getViewContentSetAccess().getUnorderedGroup_4());
+
+ }
+
+ otherlv_19=(Token)match(input,28,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_19, grammarAccess.getViewContentSetAccess().getRightCurlyBracketKeyword_5());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleViewContentSet"
+
+
+ // $ANTLR start "entryRuleSoundContentSet"
+ // InternalRBAModel.g:8689:1: entryRuleSoundContentSet returns [EObject current=null] : iv_ruleSoundContentSet= ruleSoundContentSet EOF ;
+ public final EObject entryRuleSoundContentSet() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleSoundContentSet = null;
+
+
+ try {
+ // InternalRBAModel.g:8689:56: (iv_ruleSoundContentSet= ruleSoundContentSet EOF )
+ // InternalRBAModel.g:8690:2: iv_ruleSoundContentSet= ruleSoundContentSet EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getSoundContentSetRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleSoundContentSet=ruleSoundContentSet();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleSoundContentSet;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleSoundContentSet"
+
+
+ // $ANTLR start "ruleSoundContentSet"
+ // InternalRBAModel.g:8696:1: ruleSoundContentSet returns [EObject current=null] : ( () otherlv_1= 'SoundContentSet' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_13= 'allocatable:' otherlv_14= '[' ( ( ( ruleQualifiedName ) ) (otherlv_16= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_18= ']' ) ) ) ) )* ) ) ) otherlv_19= '}' ) ;
+ public final EObject ruleSoundContentSet() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_3=null;
+ Token otherlv_5=null;
+ Token otherlv_7=null;
+ Token otherlv_8=null;
+ Token otherlv_10=null;
+ Token otherlv_12=null;
+ Token otherlv_13=null;
+ Token otherlv_14=null;
+ Token otherlv_16=null;
+ Token otherlv_18=null;
+ Token otherlv_19=null;
+ AntlrDatatypeRuleToken lv_name_2_0 = null;
+
+ AntlrDatatypeRuleToken lv_description_6_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:8702:2: ( ( () otherlv_1= 'SoundContentSet' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_13= 'allocatable:' otherlv_14= '[' ( ( ( ruleQualifiedName ) ) (otherlv_16= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_18= ']' ) ) ) ) )* ) ) ) otherlv_19= '}' ) )
+ // InternalRBAModel.g:8703:2: ( () otherlv_1= 'SoundContentSet' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_13= 'allocatable:' otherlv_14= '[' ( ( ( ruleQualifiedName ) ) (otherlv_16= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_18= ']' ) ) ) ) )* ) ) ) otherlv_19= '}' )
+ {
+ // InternalRBAModel.g:8703:2: ( () otherlv_1= 'SoundContentSet' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_13= 'allocatable:' otherlv_14= '[' ( ( ( ruleQualifiedName ) ) (otherlv_16= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_18= ']' ) ) ) ) )* ) ) ) otherlv_19= '}' )
+ // InternalRBAModel.g:8704:3: () otherlv_1= 'SoundContentSet' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_13= 'allocatable:' otherlv_14= '[' ( ( ( ruleQualifiedName ) ) (otherlv_16= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_18= ']' ) ) ) ) )* ) ) ) otherlv_19= '}'
+ {
+ // InternalRBAModel.g:8704:3: ()
+ // InternalRBAModel.g:8705:4:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getSoundContentSetAccess().getSoundContentSetAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,136,FOLLOW_3); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getSoundContentSetAccess().getSoundContentSetKeyword_1());
+
+ }
+ // InternalRBAModel.g:8715:3: ( (lv_name_2_0= ruleQualifiedName ) )
+ // InternalRBAModel.g:8716:4: (lv_name_2_0= ruleQualifiedName )
+ {
+ // InternalRBAModel.g:8716:4: (lv_name_2_0= ruleQualifiedName )
+ // InternalRBAModel.g:8717:5: lv_name_2_0= ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getSoundContentSetAccess().getNameQualifiedNameParserRuleCall_2_0());
+
+ }
+ pushFollow(FOLLOW_15);
+ lv_name_2_0=ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSoundContentSetRule());
+ }
+ set(
+ current,
+ "name",
+ lv_name_2_0,
+ "rba.tool.editor.RBAModel.QualifiedName");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_3=(Token)match(input,26,FOLLOW_67); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_3, grammarAccess.getSoundContentSetAccess().getLeftCurlyBracketKeyword_3());
+
+ }
+ // InternalRBAModel.g:8738:3: ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_13= 'allocatable:' otherlv_14= '[' ( ( ( ruleQualifiedName ) ) (otherlv_16= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_18= ']' ) ) ) ) )* ) ) )
+ // InternalRBAModel.g:8739:4: ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_13= 'allocatable:' otherlv_14= '[' ( ( ( ruleQualifiedName ) ) (otherlv_16= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_18= ']' ) ) ) ) )* ) )
+ {
+ // InternalRBAModel.g:8739:4: ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_13= 'allocatable:' otherlv_14= '[' ( ( ( ruleQualifiedName ) ) (otherlv_16= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_18= ']' ) ) ) ) )* ) )
+ // InternalRBAModel.g:8740:5: ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_13= 'allocatable:' otherlv_14= '[' ( ( ( ruleQualifiedName ) ) (otherlv_16= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_18= ']' ) ) ) ) )* )
+ {
+ getUnorderedGroupHelper().enter(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4());
+ // InternalRBAModel.g:8743:5: ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_13= 'allocatable:' otherlv_14= '[' ( ( ( ruleQualifiedName ) ) (otherlv_16= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_18= ']' ) ) ) ) )* )
+ // InternalRBAModel.g:8744:6: ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_13= 'allocatable:' otherlv_14= '[' ( ( ( ruleQualifiedName ) ) (otherlv_16= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_18= ']' ) ) ) ) )*
+ {
+ // InternalRBAModel.g:8744:6: ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_13= 'allocatable:' otherlv_14= '[' ( ( ( ruleQualifiedName ) ) (otherlv_16= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_18= ']' ) ) ) ) )*
+ loop105:
+ do {
+ int alt105=4;
+ int LA105_0 = input.LA(1);
+
+ if ( LA105_0 == 30 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 0) ) {
+ alt105=1;
+ }
+ else if ( LA105_0 == 55 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 1) ) {
+ alt105=2;
+ }
+ else if ( LA105_0 == 44 && getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 2) ) {
+ alt105=3;
+ }
+
+
+ switch (alt105) {
+ case 1 :
+ // InternalRBAModel.g:8745:4: ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) )
+ {
+ // InternalRBAModel.g:8745:4: ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) )
+ // InternalRBAModel.g:8746:5: {...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleSoundContentSet", "getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 0)");
+ }
+ // InternalRBAModel.g:8746:112: ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) )
+ // InternalRBAModel.g:8747:6: ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 0);
+ // InternalRBAModel.g:8750:9: ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) )
+ // InternalRBAModel.g:8750:10: {...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleSoundContentSet", "true");
+ }
+ // InternalRBAModel.g:8750:19: (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) )
+ // InternalRBAModel.g:8750:20: otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) )
+ {
+ otherlv_5=(Token)match(input,30,FOLLOW_14); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_5, grammarAccess.getSoundContentSetAccess().getDescriptionKeyword_4_0_0());
+
+ }
+ // InternalRBAModel.g:8754:9: ( (lv_description_6_0= ruleEString ) )
+ // InternalRBAModel.g:8755:10: (lv_description_6_0= ruleEString )
+ {
+ // InternalRBAModel.g:8755:10: (lv_description_6_0= ruleEString )
+ // InternalRBAModel.g:8756:11: lv_description_6_0= ruleEString
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getSoundContentSetAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+
+ }
+ pushFollow(FOLLOW_67);
+ lv_description_6_0=ruleEString();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSoundContentSetRule());
+ }
+ set(
+ current,
+ "description",
+ lv_description_6_0,
+ "rba.tool.editor.RBAModel.EString");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:8779:4: ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) )
+ {
+ // InternalRBAModel.g:8779:4: ({...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) ) )
+ // InternalRBAModel.g:8780:5: {...}? => ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleSoundContentSet", "getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 1)");
+ }
+ // InternalRBAModel.g:8780:112: ( ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) ) )
+ // InternalRBAModel.g:8781:6: ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 1);
+ // InternalRBAModel.g:8784:9: ({...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' ) )
+ // InternalRBAModel.g:8784:10: {...}? => (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleSoundContentSet", "true");
+ }
+ // InternalRBAModel.g:8784:19: (otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']' )
+ // InternalRBAModel.g:8784:20: otherlv_7= 'target:' otherlv_8= '[' ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_12= ']'
+ {
+ otherlv_7=(Token)match(input,55,FOLLOW_29); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_7, grammarAccess.getSoundContentSetAccess().getTargetKeyword_4_1_0());
+
+ }
+ otherlv_8=(Token)match(input,45,FOLLOW_30); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_8, grammarAccess.getSoundContentSetAccess().getLeftSquareBracketKeyword_4_1_1());
+
+ }
+ // InternalRBAModel.g:8792:9: ( ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )* )?
+ int alt102=2;
+ int LA102_0 = input.LA(1);
+
+ if ( (LA102_0==RULE_ID) ) {
+ alt102=1;
+ }
+ switch (alt102) {
+ case 1 :
+ // InternalRBAModel.g:8793:10: ( ( ruleQualifiedName ) ) (otherlv_10= ',' ( ( ruleQualifiedName ) ) )*
+ {
+ // InternalRBAModel.g:8793:10: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:8794:11: ( ruleQualifiedName )
+ {
+ // InternalRBAModel.g:8794:11: ( ruleQualifiedName )
+ // InternalRBAModel.g:8795:12: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getSoundContentSetRule());
+ }
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getSoundContentSetAccess().getTargetAbstractContentCrossReference_4_1_2_0_0());
+
+ }
+ pushFollow(FOLLOW_31);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // InternalRBAModel.g:8809:10: (otherlv_10= ',' ( ( ruleQualifiedName ) ) )*
+ loop101:
+ do {
+ int alt101=2;
+ int LA101_0 = input.LA(1);
+
+ if ( (LA101_0==27) ) {
+ alt101=1;
+ }
+
+
+ switch (alt101) {
+ case 1 :
+ // InternalRBAModel.g:8810:11: otherlv_10= ',' ( ( ruleQualifiedName ) )
+ {
+ otherlv_10=(Token)match(input,27,FOLLOW_3); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_10, grammarAccess.getSoundContentSetAccess().getCommaKeyword_4_1_2_1_0());
+
+ }
+ // InternalRBAModel.g:8814:11: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:8815:12: ( ruleQualifiedName )
+ {
+ // InternalRBAModel.g:8815:12: ( ruleQualifiedName )
+ // InternalRBAModel.g:8816:13: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getSoundContentSetRule());
+ }
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getSoundContentSetAccess().getTargetAbstractContentCrossReference_4_1_2_1_1_0());
+
+ }
+ pushFollow(FOLLOW_31);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop101;
+ }
+ } while (true);
+
+
+ }
+ break;
+
+ }
+
+ otherlv_12=(Token)match(input,46,FOLLOW_67); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_12, grammarAccess.getSoundContentSetAccess().getRightSquareBracketKeyword_4_1_3());
+
+ }
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:8842:4: ({...}? => ( ({...}? => (otherlv_13= 'allocatable:' otherlv_14= '[' ( ( ( ruleQualifiedName ) ) (otherlv_16= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_18= ']' ) ) ) )
+ {
+ // InternalRBAModel.g:8842:4: ({...}? => ( ({...}? => (otherlv_13= 'allocatable:' otherlv_14= '[' ( ( ( ruleQualifiedName ) ) (otherlv_16= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_18= ']' ) ) ) )
+ // InternalRBAModel.g:8843:5: {...}? => ( ({...}? => (otherlv_13= 'allocatable:' otherlv_14= '[' ( ( ( ruleQualifiedName ) ) (otherlv_16= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_18= ']' ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 2) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleSoundContentSet", "getUnorderedGroupHelper().canSelect(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 2)");
+ }
+ // InternalRBAModel.g:8843:112: ( ({...}? => (otherlv_13= 'allocatable:' otherlv_14= '[' ( ( ( ruleQualifiedName ) ) (otherlv_16= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_18= ']' ) ) )
+ // InternalRBAModel.g:8844:6: ({...}? => (otherlv_13= 'allocatable:' otherlv_14= '[' ( ( ( ruleQualifiedName ) ) (otherlv_16= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_18= ']' ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4(), 2);
+ // InternalRBAModel.g:8847:9: ({...}? => (otherlv_13= 'allocatable:' otherlv_14= '[' ( ( ( ruleQualifiedName ) ) (otherlv_16= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_18= ']' ) )
+ // InternalRBAModel.g:8847:10: {...}? => (otherlv_13= 'allocatable:' otherlv_14= '[' ( ( ( ruleQualifiedName ) ) (otherlv_16= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_18= ']' )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleSoundContentSet", "true");
+ }
+ // InternalRBAModel.g:8847:19: (otherlv_13= 'allocatable:' otherlv_14= '[' ( ( ( ruleQualifiedName ) ) (otherlv_16= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_18= ']' )
+ // InternalRBAModel.g:8847:20: otherlv_13= 'allocatable:' otherlv_14= '[' ( ( ( ruleQualifiedName ) ) (otherlv_16= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_18= ']'
+ {
+ otherlv_13=(Token)match(input,44,FOLLOW_29); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_13, grammarAccess.getSoundContentSetAccess().getAllocatableKeyword_4_2_0());
+
+ }
+ otherlv_14=(Token)match(input,45,FOLLOW_30); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_14, grammarAccess.getSoundContentSetAccess().getLeftSquareBracketKeyword_4_2_1());
+
+ }
+ // InternalRBAModel.g:8855:9: ( ( ( ruleQualifiedName ) ) (otherlv_16= ',' ( ( ruleQualifiedName ) ) )* )?
+ int alt104=2;
+ int LA104_0 = input.LA(1);
+
+ if ( (LA104_0==RULE_ID) ) {
+ alt104=1;
+ }
+ switch (alt104) {
+ case 1 :
+ // InternalRBAModel.g:8856:10: ( ( ruleQualifiedName ) ) (otherlv_16= ',' ( ( ruleQualifiedName ) ) )*
+ {
+ // InternalRBAModel.g:8856:10: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:8857:11: ( ruleQualifiedName )
+ {
+ // InternalRBAModel.g:8857:11: ( ruleQualifiedName )
+ // InternalRBAModel.g:8858:12: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getSoundContentSetRule());
+ }
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getSoundContentSetAccess().getAllocatableAbstractAllocatableCrossReference_4_2_2_0_0());
+
+ }
+ pushFollow(FOLLOW_31);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // InternalRBAModel.g:8872:10: (otherlv_16= ',' ( ( ruleQualifiedName ) ) )*
+ loop103:
+ do {
+ int alt103=2;
+ int LA103_0 = input.LA(1);
+
+ if ( (LA103_0==27) ) {
+ alt103=1;
+ }
+
+
+ switch (alt103) {
+ case 1 :
+ // InternalRBAModel.g:8873:11: otherlv_16= ',' ( ( ruleQualifiedName ) )
+ {
+ otherlv_16=(Token)match(input,27,FOLLOW_3); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_16, grammarAccess.getSoundContentSetAccess().getCommaKeyword_4_2_2_1_0());
+
+ }
+ // InternalRBAModel.g:8877:11: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:8878:12: ( ruleQualifiedName )
+ {
+ // InternalRBAModel.g:8878:12: ( ruleQualifiedName )
+ // InternalRBAModel.g:8879:13: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getSoundContentSetRule());
+ }
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getSoundContentSetAccess().getAllocatableAbstractAllocatableCrossReference_4_2_2_1_1_0());
+
+ }
+ pushFollow(FOLLOW_31);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop103;
+ }
+ } while (true);
+
+
+ }
+ break;
+
+ }
+
+ otherlv_18=(Token)match(input,46,FOLLOW_67); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_18, grammarAccess.getSoundContentSetAccess().getRightSquareBracketKeyword_4_2_3());
+
+ }
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop105;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().leave(grammarAccess.getSoundContentSetAccess().getUnorderedGroup_4());
+
+ }
+
+ otherlv_19=(Token)match(input,28,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_19, grammarAccess.getSoundContentSetAccess().getRightCurlyBracketKeyword_5());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleSoundContentSet"
+
+
+ // $ANTLR start "entryRuleScene"
+ // InternalRBAModel.g:8920:1: entryRuleScene returns [EObject current=null] : iv_ruleScene= ruleScene EOF ;
+ public final EObject entryRuleScene() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleScene = null;
+
+
+ try {
+ // InternalRBAModel.g:8920:46: (iv_ruleScene= ruleScene EOF )
+ // InternalRBAModel.g:8921:2: iv_ruleScene= ruleScene EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getSceneRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleScene=ruleScene();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleScene;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleScene"
+
+
+ // $ANTLR start "ruleScene"
+ // InternalRBAModel.g:8927:1: ruleScene returns [EObject current=null] : ( () otherlv_1= 'Scene' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'global:' ( (lv_global_8_0= ruleEBoolean ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_properties_9_0= ruleAbstractProperty ) ) )+ ) ) )* ) ) ) otherlv_10= '}' ) ;
+ public final EObject ruleScene() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_3=null;
+ Token otherlv_5=null;
+ Token otherlv_7=null;
+ Token otherlv_10=null;
+ AntlrDatatypeRuleToken lv_name_2_0 = null;
+
+ AntlrDatatypeRuleToken lv_description_6_0 = null;
+
+ AntlrDatatypeRuleToken lv_global_8_0 = null;
+
+ EObject lv_properties_9_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:8933:2: ( ( () otherlv_1= 'Scene' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'global:' ( (lv_global_8_0= ruleEBoolean ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_properties_9_0= ruleAbstractProperty ) ) )+ ) ) )* ) ) ) otherlv_10= '}' ) )
+ // InternalRBAModel.g:8934:2: ( () otherlv_1= 'Scene' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'global:' ( (lv_global_8_0= ruleEBoolean ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_properties_9_0= ruleAbstractProperty ) ) )+ ) ) )* ) ) ) otherlv_10= '}' )
+ {
+ // InternalRBAModel.g:8934:2: ( () otherlv_1= 'Scene' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'global:' ( (lv_global_8_0= ruleEBoolean ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_properties_9_0= ruleAbstractProperty ) ) )+ ) ) )* ) ) ) otherlv_10= '}' )
+ // InternalRBAModel.g:8935:3: () otherlv_1= 'Scene' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'global:' ( (lv_global_8_0= ruleEBoolean ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_properties_9_0= ruleAbstractProperty ) ) )+ ) ) )* ) ) ) otherlv_10= '}'
+ {
+ // InternalRBAModel.g:8935:3: ()
+ // InternalRBAModel.g:8936:4:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getSceneAccess().getSceneAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,137,FOLLOW_3); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getSceneAccess().getSceneKeyword_1());
+
+ }
+ // InternalRBAModel.g:8946:3: ( (lv_name_2_0= ruleQualifiedName ) )
+ // InternalRBAModel.g:8947:4: (lv_name_2_0= ruleQualifiedName )
+ {
+ // InternalRBAModel.g:8947:4: (lv_name_2_0= ruleQualifiedName )
+ // InternalRBAModel.g:8948:5: lv_name_2_0= ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getSceneAccess().getNameQualifiedNameParserRuleCall_2_0());
+
+ }
+ pushFollow(FOLLOW_15);
+ lv_name_2_0=ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSceneRule());
+ }
+ set(
+ current,
+ "name",
+ lv_name_2_0,
+ "rba.tool.editor.RBAModel.QualifiedName");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_3=(Token)match(input,26,FOLLOW_68); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_3, grammarAccess.getSceneAccess().getLeftCurlyBracketKeyword_3());
+
+ }
+ // InternalRBAModel.g:8969:3: ( ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'global:' ( (lv_global_8_0= ruleEBoolean ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_properties_9_0= ruleAbstractProperty ) ) )+ ) ) )* ) ) )
+ // InternalRBAModel.g:8970:4: ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'global:' ( (lv_global_8_0= ruleEBoolean ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_properties_9_0= ruleAbstractProperty ) ) )+ ) ) )* ) )
+ {
+ // InternalRBAModel.g:8970:4: ( ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'global:' ( (lv_global_8_0= ruleEBoolean ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_properties_9_0= ruleAbstractProperty ) ) )+ ) ) )* ) )
+ // InternalRBAModel.g:8971:5: ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'global:' ( (lv_global_8_0= ruleEBoolean ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_properties_9_0= ruleAbstractProperty ) ) )+ ) ) )* )
+ {
+ getUnorderedGroupHelper().enter(grammarAccess.getSceneAccess().getUnorderedGroup_4());
+ // InternalRBAModel.g:8974:5: ( ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'global:' ( (lv_global_8_0= ruleEBoolean ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_properties_9_0= ruleAbstractProperty ) ) )+ ) ) )* )
+ // InternalRBAModel.g:8975:6: ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'global:' ( (lv_global_8_0= ruleEBoolean ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_properties_9_0= ruleAbstractProperty ) ) )+ ) ) )*
+ {
+ // InternalRBAModel.g:8975:6: ( ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= 'global:' ( (lv_global_8_0= ruleEBoolean ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_properties_9_0= ruleAbstractProperty ) ) )+ ) ) )*
+ loop107:
+ do {
+ int alt107=4;
+ int LA107_0 = input.LA(1);
+
+ if ( LA107_0 == 30 && getUnorderedGroupHelper().canSelect(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 0) ) {
+ alt107=1;
+ }
+ else if ( LA107_0 == 138 && getUnorderedGroupHelper().canSelect(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 1) ) {
+ alt107=2;
+ }
+ else if ( LA107_0 == 20 && getUnorderedGroupHelper().canSelect(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 2) ) {
+ alt107=3;
+ }
+
+
+ switch (alt107) {
+ case 1 :
+ // InternalRBAModel.g:8976:4: ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) )
+ {
+ // InternalRBAModel.g:8976:4: ({...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) ) )
+ // InternalRBAModel.g:8977:5: {...}? => ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleScene", "getUnorderedGroupHelper().canSelect(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 0)");
+ }
+ // InternalRBAModel.g:8977:102: ( ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) ) )
+ // InternalRBAModel.g:8978:6: ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 0);
+ // InternalRBAModel.g:8981:9: ({...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) ) )
+ // InternalRBAModel.g:8981:10: {...}? => (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleScene", "true");
+ }
+ // InternalRBAModel.g:8981:19: (otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) ) )
+ // InternalRBAModel.g:8981:20: otherlv_5= 'description:' ( (lv_description_6_0= ruleEString ) )
+ {
+ otherlv_5=(Token)match(input,30,FOLLOW_14); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_5, grammarAccess.getSceneAccess().getDescriptionKeyword_4_0_0());
+
+ }
+ // InternalRBAModel.g:8985:9: ( (lv_description_6_0= ruleEString ) )
+ // InternalRBAModel.g:8986:10: (lv_description_6_0= ruleEString )
+ {
+ // InternalRBAModel.g:8986:10: (lv_description_6_0= ruleEString )
+ // InternalRBAModel.g:8987:11: lv_description_6_0= ruleEString
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getSceneAccess().getDescriptionEStringParserRuleCall_4_0_1_0());
+
+ }
+ pushFollow(FOLLOW_68);
+ lv_description_6_0=ruleEString();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSceneRule());
+ }
+ set(
+ current,
+ "description",
+ lv_description_6_0,
+ "rba.tool.editor.RBAModel.EString");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getSceneAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:9010:4: ({...}? => ( ({...}? => (otherlv_7= 'global:' ( (lv_global_8_0= ruleEBoolean ) ) ) ) ) )
+ {
+ // InternalRBAModel.g:9010:4: ({...}? => ( ({...}? => (otherlv_7= 'global:' ( (lv_global_8_0= ruleEBoolean ) ) ) ) ) )
+ // InternalRBAModel.g:9011:5: {...}? => ( ({...}? => (otherlv_7= 'global:' ( (lv_global_8_0= ruleEBoolean ) ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleScene", "getUnorderedGroupHelper().canSelect(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 1)");
+ }
+ // InternalRBAModel.g:9011:102: ( ({...}? => (otherlv_7= 'global:' ( (lv_global_8_0= ruleEBoolean ) ) ) ) )
+ // InternalRBAModel.g:9012:6: ({...}? => (otherlv_7= 'global:' ( (lv_global_8_0= ruleEBoolean ) ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 1);
+ // InternalRBAModel.g:9015:9: ({...}? => (otherlv_7= 'global:' ( (lv_global_8_0= ruleEBoolean ) ) ) )
+ // InternalRBAModel.g:9015:10: {...}? => (otherlv_7= 'global:' ( (lv_global_8_0= ruleEBoolean ) ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleScene", "true");
+ }
+ // InternalRBAModel.g:9015:19: (otherlv_7= 'global:' ( (lv_global_8_0= ruleEBoolean ) ) )
+ // InternalRBAModel.g:9015:20: otherlv_7= 'global:' ( (lv_global_8_0= ruleEBoolean ) )
+ {
+ otherlv_7=(Token)match(input,138,FOLLOW_26); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_7, grammarAccess.getSceneAccess().getGlobalKeyword_4_1_0());
+
+ }
+ // InternalRBAModel.g:9019:9: ( (lv_global_8_0= ruleEBoolean ) )
+ // InternalRBAModel.g:9020:10: (lv_global_8_0= ruleEBoolean )
+ {
+ // InternalRBAModel.g:9020:10: (lv_global_8_0= ruleEBoolean )
+ // InternalRBAModel.g:9021:11: lv_global_8_0= ruleEBoolean
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getSceneAccess().getGlobalEBooleanParserRuleCall_4_1_1_0());
+
+ }
+ pushFollow(FOLLOW_68);
+ lv_global_8_0=ruleEBoolean();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSceneRule());
+ }
+ set(
+ current,
+ "global",
+ lv_global_8_0,
+ "rba.tool.editor.RBAModel.EBoolean");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getSceneAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:9044:4: ({...}? => ( ({...}? => ( (lv_properties_9_0= ruleAbstractProperty ) ) )+ ) )
+ {
+ // InternalRBAModel.g:9044:4: ({...}? => ( ({...}? => ( (lv_properties_9_0= ruleAbstractProperty ) ) )+ ) )
+ // InternalRBAModel.g:9045:5: {...}? => ( ({...}? => ( (lv_properties_9_0= ruleAbstractProperty ) ) )+ )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 2) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleScene", "getUnorderedGroupHelper().canSelect(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 2)");
+ }
+ // InternalRBAModel.g:9045:102: ( ({...}? => ( (lv_properties_9_0= ruleAbstractProperty ) ) )+ )
+ // InternalRBAModel.g:9046:6: ({...}? => ( (lv_properties_9_0= ruleAbstractProperty ) ) )+
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getSceneAccess().getUnorderedGroup_4(), 2);
+ // InternalRBAModel.g:9049:9: ({...}? => ( (lv_properties_9_0= ruleAbstractProperty ) ) )+
+ int cnt106=0;
+ loop106:
+ do {
+ int alt106=2;
+ int LA106_0 = input.LA(1);
+
+ if ( (LA106_0==20) ) {
+ int LA106_2 = input.LA(2);
+
+ if ( ((true)) ) {
+ alt106=1;
+ }
+
+
+ }
+
+
+ switch (alt106) {
+ case 1 :
+ // InternalRBAModel.g:9049:10: {...}? => ( (lv_properties_9_0= ruleAbstractProperty ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleScene", "true");
+ }
+ // InternalRBAModel.g:9049:19: ( (lv_properties_9_0= ruleAbstractProperty ) )
+ // InternalRBAModel.g:9049:20: (lv_properties_9_0= ruleAbstractProperty )
+ {
+ // InternalRBAModel.g:9049:20: (lv_properties_9_0= ruleAbstractProperty )
+ // InternalRBAModel.g:9050:10: lv_properties_9_0= ruleAbstractProperty
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getSceneAccess().getPropertiesAbstractPropertyParserRuleCall_4_2_0());
+
+ }
+ pushFollow(FOLLOW_68);
+ lv_properties_9_0=ruleAbstractProperty();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSceneRule());
+ }
+ add(
+ current,
+ "properties",
+ lv_properties_9_0,
+ "rba.tool.editor.RBAModel.AbstractProperty");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ if ( cnt106 >= 1 ) break loop106;
+ if (state.backtracking>0) {state.failed=true; return current;}
+ EarlyExitException eee =
+ new EarlyExitException(106, input);
+ throw eee;
+ }
+ cnt106++;
+ } while (true);
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getSceneAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop107;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().leave(grammarAccess.getSceneAccess().getUnorderedGroup_4());
+
+ }
+
+ otherlv_10=(Token)match(input,28,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_10, grammarAccess.getSceneAccess().getRightCurlyBracketKeyword_5());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleScene"
+
+
+ // $ANTLR start "entryRuleVerticalLayout"
+ // InternalRBAModel.g:9087:1: entryRuleVerticalLayout returns [EObject current=null] : iv_ruleVerticalLayout= ruleVerticalLayout EOF ;
+ public final EObject entryRuleVerticalLayout() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleVerticalLayout = null;
+
+
+ try {
+ // InternalRBAModel.g:9087:55: (iv_ruleVerticalLayout= ruleVerticalLayout EOF )
+ // InternalRBAModel.g:9088:2: iv_ruleVerticalLayout= ruleVerticalLayout EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getVerticalLayoutRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleVerticalLayout=ruleVerticalLayout();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleVerticalLayout;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleVerticalLayout"
+
+
+ // $ANTLR start "ruleVerticalLayout"
+ // InternalRBAModel.g:9094:1: ruleVerticalLayout returns [EObject current=null] : ( () otherlv_1= 'VerticalLayout' otherlv_2= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'basePoint:' ( (lv_basePoint_5_0= ruleBasePoint ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'subarea:' otherlv_7= '[' ( ( ( ruleQualifiedName ) ) (otherlv_9= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_11= ']' ) ) ) ) )* ) ) ) otherlv_12= '}' ) ;
+ public final EObject ruleVerticalLayout() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_2=null;
+ Token otherlv_4=null;
+ Token otherlv_6=null;
+ Token otherlv_7=null;
+ Token otherlv_9=null;
+ Token otherlv_11=null;
+ Token otherlv_12=null;
+ Enumerator lv_basePoint_5_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:9100:2: ( ( () otherlv_1= 'VerticalLayout' otherlv_2= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'basePoint:' ( (lv_basePoint_5_0= ruleBasePoint ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'subarea:' otherlv_7= '[' ( ( ( ruleQualifiedName ) ) (otherlv_9= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_11= ']' ) ) ) ) )* ) ) ) otherlv_12= '}' ) )
+ // InternalRBAModel.g:9101:2: ( () otherlv_1= 'VerticalLayout' otherlv_2= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'basePoint:' ( (lv_basePoint_5_0= ruleBasePoint ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'subarea:' otherlv_7= '[' ( ( ( ruleQualifiedName ) ) (otherlv_9= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_11= ']' ) ) ) ) )* ) ) ) otherlv_12= '}' )
+ {
+ // InternalRBAModel.g:9101:2: ( () otherlv_1= 'VerticalLayout' otherlv_2= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'basePoint:' ( (lv_basePoint_5_0= ruleBasePoint ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'subarea:' otherlv_7= '[' ( ( ( ruleQualifiedName ) ) (otherlv_9= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_11= ']' ) ) ) ) )* ) ) ) otherlv_12= '}' )
+ // InternalRBAModel.g:9102:3: () otherlv_1= 'VerticalLayout' otherlv_2= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'basePoint:' ( (lv_basePoint_5_0= ruleBasePoint ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'subarea:' otherlv_7= '[' ( ( ( ruleQualifiedName ) ) (otherlv_9= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_11= ']' ) ) ) ) )* ) ) ) otherlv_12= '}'
+ {
+ // InternalRBAModel.g:9102:3: ()
+ // InternalRBAModel.g:9103:4:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getVerticalLayoutAccess().getVerticalLayoutAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,139,FOLLOW_15); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getVerticalLayoutAccess().getVerticalLayoutKeyword_1());
+
+ }
+ otherlv_2=(Token)match(input,26,FOLLOW_69); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_2, grammarAccess.getVerticalLayoutAccess().getLeftCurlyBracketKeyword_2());
+
+ }
+ // InternalRBAModel.g:9117:3: ( ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'basePoint:' ( (lv_basePoint_5_0= ruleBasePoint ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'subarea:' otherlv_7= '[' ( ( ( ruleQualifiedName ) ) (otherlv_9= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_11= ']' ) ) ) ) )* ) ) )
+ // InternalRBAModel.g:9118:4: ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'basePoint:' ( (lv_basePoint_5_0= ruleBasePoint ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'subarea:' otherlv_7= '[' ( ( ( ruleQualifiedName ) ) (otherlv_9= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_11= ']' ) ) ) ) )* ) )
+ {
+ // InternalRBAModel.g:9118:4: ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'basePoint:' ( (lv_basePoint_5_0= ruleBasePoint ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'subarea:' otherlv_7= '[' ( ( ( ruleQualifiedName ) ) (otherlv_9= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_11= ']' ) ) ) ) )* ) )
+ // InternalRBAModel.g:9119:5: ( ( ({...}? => ( ({...}? => (otherlv_4= 'basePoint:' ( (lv_basePoint_5_0= ruleBasePoint ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'subarea:' otherlv_7= '[' ( ( ( ruleQualifiedName ) ) (otherlv_9= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_11= ']' ) ) ) ) )* )
+ {
+ getUnorderedGroupHelper().enter(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3());
+ // InternalRBAModel.g:9122:5: ( ( ({...}? => ( ({...}? => (otherlv_4= 'basePoint:' ( (lv_basePoint_5_0= ruleBasePoint ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'subarea:' otherlv_7= '[' ( ( ( ruleQualifiedName ) ) (otherlv_9= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_11= ']' ) ) ) ) )* )
+ // InternalRBAModel.g:9123:6: ( ({...}? => ( ({...}? => (otherlv_4= 'basePoint:' ( (lv_basePoint_5_0= ruleBasePoint ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'subarea:' otherlv_7= '[' ( ( ( ruleQualifiedName ) ) (otherlv_9= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_11= ']' ) ) ) ) )*
+ {
+ // InternalRBAModel.g:9123:6: ( ({...}? => ( ({...}? => (otherlv_4= 'basePoint:' ( (lv_basePoint_5_0= ruleBasePoint ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'subarea:' otherlv_7= '[' ( ( ( ruleQualifiedName ) ) (otherlv_9= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_11= ']' ) ) ) ) )*
+ loop110:
+ do {
+ int alt110=3;
+ int LA110_0 = input.LA(1);
+
+ if ( LA110_0 == 140 && getUnorderedGroupHelper().canSelect(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3(), 0) ) {
+ alt110=1;
+ }
+ else if ( LA110_0 == 141 && getUnorderedGroupHelper().canSelect(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3(), 1) ) {
+ alt110=2;
+ }
+
+
+ switch (alt110) {
+ case 1 :
+ // InternalRBAModel.g:9124:4: ({...}? => ( ({...}? => (otherlv_4= 'basePoint:' ( (lv_basePoint_5_0= ruleBasePoint ) ) ) ) ) )
+ {
+ // InternalRBAModel.g:9124:4: ({...}? => ( ({...}? => (otherlv_4= 'basePoint:' ( (lv_basePoint_5_0= ruleBasePoint ) ) ) ) ) )
+ // InternalRBAModel.g:9125:5: {...}? => ( ({...}? => (otherlv_4= 'basePoint:' ( (lv_basePoint_5_0= ruleBasePoint ) ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleVerticalLayout", "getUnorderedGroupHelper().canSelect(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3(), 0)");
+ }
+ // InternalRBAModel.g:9125:111: ( ({...}? => (otherlv_4= 'basePoint:' ( (lv_basePoint_5_0= ruleBasePoint ) ) ) ) )
+ // InternalRBAModel.g:9126:6: ({...}? => (otherlv_4= 'basePoint:' ( (lv_basePoint_5_0= ruleBasePoint ) ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3(), 0);
+ // InternalRBAModel.g:9129:9: ({...}? => (otherlv_4= 'basePoint:' ( (lv_basePoint_5_0= ruleBasePoint ) ) ) )
+ // InternalRBAModel.g:9129:10: {...}? => (otherlv_4= 'basePoint:' ( (lv_basePoint_5_0= ruleBasePoint ) ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleVerticalLayout", "true");
+ }
+ // InternalRBAModel.g:9129:19: (otherlv_4= 'basePoint:' ( (lv_basePoint_5_0= ruleBasePoint ) ) )
+ // InternalRBAModel.g:9129:20: otherlv_4= 'basePoint:' ( (lv_basePoint_5_0= ruleBasePoint ) )
+ {
+ otherlv_4=(Token)match(input,140,FOLLOW_70); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_4, grammarAccess.getVerticalLayoutAccess().getBasePointKeyword_3_0_0());
+
+ }
+ // InternalRBAModel.g:9133:9: ( (lv_basePoint_5_0= ruleBasePoint ) )
+ // InternalRBAModel.g:9134:10: (lv_basePoint_5_0= ruleBasePoint )
+ {
+ // InternalRBAModel.g:9134:10: (lv_basePoint_5_0= ruleBasePoint )
+ // InternalRBAModel.g:9135:11: lv_basePoint_5_0= ruleBasePoint
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getVerticalLayoutAccess().getBasePointBasePointEnumRuleCall_3_0_1_0());
+
+ }
+ pushFollow(FOLLOW_69);
+ lv_basePoint_5_0=ruleBasePoint();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getVerticalLayoutRule());
+ }
+ set(
+ current,
+ "basePoint",
+ lv_basePoint_5_0,
+ "rba.tool.editor.RBAModel.BasePoint");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:9158:4: ({...}? => ( ({...}? => (otherlv_6= 'subarea:' otherlv_7= '[' ( ( ( ruleQualifiedName ) ) (otherlv_9= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_11= ']' ) ) ) )
+ {
+ // InternalRBAModel.g:9158:4: ({...}? => ( ({...}? => (otherlv_6= 'subarea:' otherlv_7= '[' ( ( ( ruleQualifiedName ) ) (otherlv_9= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_11= ']' ) ) ) )
+ // InternalRBAModel.g:9159:5: {...}? => ( ({...}? => (otherlv_6= 'subarea:' otherlv_7= '[' ( ( ( ruleQualifiedName ) ) (otherlv_9= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_11= ']' ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleVerticalLayout", "getUnorderedGroupHelper().canSelect(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3(), 1)");
+ }
+ // InternalRBAModel.g:9159:111: ( ({...}? => (otherlv_6= 'subarea:' otherlv_7= '[' ( ( ( ruleQualifiedName ) ) (otherlv_9= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_11= ']' ) ) )
+ // InternalRBAModel.g:9160:6: ({...}? => (otherlv_6= 'subarea:' otherlv_7= '[' ( ( ( ruleQualifiedName ) ) (otherlv_9= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_11= ']' ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3(), 1);
+ // InternalRBAModel.g:9163:9: ({...}? => (otherlv_6= 'subarea:' otherlv_7= '[' ( ( ( ruleQualifiedName ) ) (otherlv_9= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_11= ']' ) )
+ // InternalRBAModel.g:9163:10: {...}? => (otherlv_6= 'subarea:' otherlv_7= '[' ( ( ( ruleQualifiedName ) ) (otherlv_9= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_11= ']' )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleVerticalLayout", "true");
+ }
+ // InternalRBAModel.g:9163:19: (otherlv_6= 'subarea:' otherlv_7= '[' ( ( ( ruleQualifiedName ) ) (otherlv_9= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_11= ']' )
+ // InternalRBAModel.g:9163:20: otherlv_6= 'subarea:' otherlv_7= '[' ( ( ( ruleQualifiedName ) ) (otherlv_9= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_11= ']'
+ {
+ otherlv_6=(Token)match(input,141,FOLLOW_29); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_6, grammarAccess.getVerticalLayoutAccess().getSubareaKeyword_3_1_0());
+
+ }
+ otherlv_7=(Token)match(input,45,FOLLOW_30); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_7, grammarAccess.getVerticalLayoutAccess().getLeftSquareBracketKeyword_3_1_1());
+
+ }
+ // InternalRBAModel.g:9171:9: ( ( ( ruleQualifiedName ) ) (otherlv_9= ',' ( ( ruleQualifiedName ) ) )* )?
+ int alt109=2;
+ int LA109_0 = input.LA(1);
+
+ if ( (LA109_0==RULE_ID) ) {
+ alt109=1;
+ }
+ switch (alt109) {
+ case 1 :
+ // InternalRBAModel.g:9172:10: ( ( ruleQualifiedName ) ) (otherlv_9= ',' ( ( ruleQualifiedName ) ) )*
+ {
+ // InternalRBAModel.g:9172:10: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:9173:11: ( ruleQualifiedName )
+ {
+ // InternalRBAModel.g:9173:11: ( ruleQualifiedName )
+ // InternalRBAModel.g:9174:12: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getVerticalLayoutRule());
+ }
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getVerticalLayoutAccess().getSubareaAreaCrossReference_3_1_2_0_0());
+
+ }
+ pushFollow(FOLLOW_31);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // InternalRBAModel.g:9188:10: (otherlv_9= ',' ( ( ruleQualifiedName ) ) )*
+ loop108:
+ do {
+ int alt108=2;
+ int LA108_0 = input.LA(1);
+
+ if ( (LA108_0==27) ) {
+ alt108=1;
+ }
+
+
+ switch (alt108) {
+ case 1 :
+ // InternalRBAModel.g:9189:11: otherlv_9= ',' ( ( ruleQualifiedName ) )
+ {
+ otherlv_9=(Token)match(input,27,FOLLOW_3); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_9, grammarAccess.getVerticalLayoutAccess().getCommaKeyword_3_1_2_1_0());
+
+ }
+ // InternalRBAModel.g:9193:11: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:9194:12: ( ruleQualifiedName )
+ {
+ // InternalRBAModel.g:9194:12: ( ruleQualifiedName )
+ // InternalRBAModel.g:9195:13: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getVerticalLayoutRule());
+ }
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getVerticalLayoutAccess().getSubareaAreaCrossReference_3_1_2_1_1_0());
+
+ }
+ pushFollow(FOLLOW_31);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop108;
+ }
+ } while (true);
+
+
+ }
+ break;
+
+ }
+
+ otherlv_11=(Token)match(input,46,FOLLOW_69); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_11, grammarAccess.getVerticalLayoutAccess().getRightSquareBracketKeyword_3_1_3());
+
+ }
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop110;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().leave(grammarAccess.getVerticalLayoutAccess().getUnorderedGroup_3());
+
+ }
+
+ otherlv_12=(Token)match(input,28,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_12, grammarAccess.getVerticalLayoutAccess().getRightCurlyBracketKeyword_4());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleVerticalLayout"
+
+
+ // $ANTLR start "entryRuleHorizontalLayout"
+ // InternalRBAModel.g:9236:1: entryRuleHorizontalLayout returns [EObject current=null] : iv_ruleHorizontalLayout= ruleHorizontalLayout EOF ;
+ public final EObject entryRuleHorizontalLayout() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleHorizontalLayout = null;
+
+
+ try {
+ // InternalRBAModel.g:9236:57: (iv_ruleHorizontalLayout= ruleHorizontalLayout EOF )
+ // InternalRBAModel.g:9237:2: iv_ruleHorizontalLayout= ruleHorizontalLayout EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getHorizontalLayoutRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleHorizontalLayout=ruleHorizontalLayout();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleHorizontalLayout;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleHorizontalLayout"
+
+
+ // $ANTLR start "ruleHorizontalLayout"
+ // InternalRBAModel.g:9243:1: ruleHorizontalLayout returns [EObject current=null] : ( () otherlv_1= 'HorizontalLayout' otherlv_2= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'basePoint:' ( (lv_basePoint_5_0= ruleBasePoint ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'subarea:' otherlv_7= '[' ( ( ( ruleQualifiedName ) ) (otherlv_9= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_11= ']' ) ) ) ) )* ) ) ) otherlv_12= '}' ) ;
+ public final EObject ruleHorizontalLayout() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_2=null;
+ Token otherlv_4=null;
+ Token otherlv_6=null;
+ Token otherlv_7=null;
+ Token otherlv_9=null;
+ Token otherlv_11=null;
+ Token otherlv_12=null;
+ Enumerator lv_basePoint_5_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:9249:2: ( ( () otherlv_1= 'HorizontalLayout' otherlv_2= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'basePoint:' ( (lv_basePoint_5_0= ruleBasePoint ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'subarea:' otherlv_7= '[' ( ( ( ruleQualifiedName ) ) (otherlv_9= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_11= ']' ) ) ) ) )* ) ) ) otherlv_12= '}' ) )
+ // InternalRBAModel.g:9250:2: ( () otherlv_1= 'HorizontalLayout' otherlv_2= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'basePoint:' ( (lv_basePoint_5_0= ruleBasePoint ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'subarea:' otherlv_7= '[' ( ( ( ruleQualifiedName ) ) (otherlv_9= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_11= ']' ) ) ) ) )* ) ) ) otherlv_12= '}' )
+ {
+ // InternalRBAModel.g:9250:2: ( () otherlv_1= 'HorizontalLayout' otherlv_2= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'basePoint:' ( (lv_basePoint_5_0= ruleBasePoint ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'subarea:' otherlv_7= '[' ( ( ( ruleQualifiedName ) ) (otherlv_9= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_11= ']' ) ) ) ) )* ) ) ) otherlv_12= '}' )
+ // InternalRBAModel.g:9251:3: () otherlv_1= 'HorizontalLayout' otherlv_2= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'basePoint:' ( (lv_basePoint_5_0= ruleBasePoint ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'subarea:' otherlv_7= '[' ( ( ( ruleQualifiedName ) ) (otherlv_9= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_11= ']' ) ) ) ) )* ) ) ) otherlv_12= '}'
+ {
+ // InternalRBAModel.g:9251:3: ()
+ // InternalRBAModel.g:9252:4:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getHorizontalLayoutAccess().getHorizontalLayoutAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,142,FOLLOW_15); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getHorizontalLayoutAccess().getHorizontalLayoutKeyword_1());
+
+ }
+ otherlv_2=(Token)match(input,26,FOLLOW_69); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_2, grammarAccess.getHorizontalLayoutAccess().getLeftCurlyBracketKeyword_2());
+
+ }
+ // InternalRBAModel.g:9266:3: ( ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'basePoint:' ( (lv_basePoint_5_0= ruleBasePoint ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'subarea:' otherlv_7= '[' ( ( ( ruleQualifiedName ) ) (otherlv_9= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_11= ']' ) ) ) ) )* ) ) )
+ // InternalRBAModel.g:9267:4: ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'basePoint:' ( (lv_basePoint_5_0= ruleBasePoint ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'subarea:' otherlv_7= '[' ( ( ( ruleQualifiedName ) ) (otherlv_9= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_11= ']' ) ) ) ) )* ) )
+ {
+ // InternalRBAModel.g:9267:4: ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'basePoint:' ( (lv_basePoint_5_0= ruleBasePoint ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'subarea:' otherlv_7= '[' ( ( ( ruleQualifiedName ) ) (otherlv_9= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_11= ']' ) ) ) ) )* ) )
+ // InternalRBAModel.g:9268:5: ( ( ({...}? => ( ({...}? => (otherlv_4= 'basePoint:' ( (lv_basePoint_5_0= ruleBasePoint ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'subarea:' otherlv_7= '[' ( ( ( ruleQualifiedName ) ) (otherlv_9= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_11= ']' ) ) ) ) )* )
+ {
+ getUnorderedGroupHelper().enter(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3());
+ // InternalRBAModel.g:9271:5: ( ( ({...}? => ( ({...}? => (otherlv_4= 'basePoint:' ( (lv_basePoint_5_0= ruleBasePoint ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'subarea:' otherlv_7= '[' ( ( ( ruleQualifiedName ) ) (otherlv_9= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_11= ']' ) ) ) ) )* )
+ // InternalRBAModel.g:9272:6: ( ({...}? => ( ({...}? => (otherlv_4= 'basePoint:' ( (lv_basePoint_5_0= ruleBasePoint ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'subarea:' otherlv_7= '[' ( ( ( ruleQualifiedName ) ) (otherlv_9= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_11= ']' ) ) ) ) )*
+ {
+ // InternalRBAModel.g:9272:6: ( ({...}? => ( ({...}? => (otherlv_4= 'basePoint:' ( (lv_basePoint_5_0= ruleBasePoint ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'subarea:' otherlv_7= '[' ( ( ( ruleQualifiedName ) ) (otherlv_9= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_11= ']' ) ) ) ) )*
+ loop113:
+ do {
+ int alt113=3;
+ int LA113_0 = input.LA(1);
+
+ if ( LA113_0 == 140 && getUnorderedGroupHelper().canSelect(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3(), 0) ) {
+ alt113=1;
+ }
+ else if ( LA113_0 == 141 && getUnorderedGroupHelper().canSelect(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3(), 1) ) {
+ alt113=2;
+ }
+
+
+ switch (alt113) {
+ case 1 :
+ // InternalRBAModel.g:9273:4: ({...}? => ( ({...}? => (otherlv_4= 'basePoint:' ( (lv_basePoint_5_0= ruleBasePoint ) ) ) ) ) )
+ {
+ // InternalRBAModel.g:9273:4: ({...}? => ( ({...}? => (otherlv_4= 'basePoint:' ( (lv_basePoint_5_0= ruleBasePoint ) ) ) ) ) )
+ // InternalRBAModel.g:9274:5: {...}? => ( ({...}? => (otherlv_4= 'basePoint:' ( (lv_basePoint_5_0= ruleBasePoint ) ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleHorizontalLayout", "getUnorderedGroupHelper().canSelect(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3(), 0)");
+ }
+ // InternalRBAModel.g:9274:113: ( ({...}? => (otherlv_4= 'basePoint:' ( (lv_basePoint_5_0= ruleBasePoint ) ) ) ) )
+ // InternalRBAModel.g:9275:6: ({...}? => (otherlv_4= 'basePoint:' ( (lv_basePoint_5_0= ruleBasePoint ) ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3(), 0);
+ // InternalRBAModel.g:9278:9: ({...}? => (otherlv_4= 'basePoint:' ( (lv_basePoint_5_0= ruleBasePoint ) ) ) )
+ // InternalRBAModel.g:9278:10: {...}? => (otherlv_4= 'basePoint:' ( (lv_basePoint_5_0= ruleBasePoint ) ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleHorizontalLayout", "true");
+ }
+ // InternalRBAModel.g:9278:19: (otherlv_4= 'basePoint:' ( (lv_basePoint_5_0= ruleBasePoint ) ) )
+ // InternalRBAModel.g:9278:20: otherlv_4= 'basePoint:' ( (lv_basePoint_5_0= ruleBasePoint ) )
+ {
+ otherlv_4=(Token)match(input,140,FOLLOW_70); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_4, grammarAccess.getHorizontalLayoutAccess().getBasePointKeyword_3_0_0());
+
+ }
+ // InternalRBAModel.g:9282:9: ( (lv_basePoint_5_0= ruleBasePoint ) )
+ // InternalRBAModel.g:9283:10: (lv_basePoint_5_0= ruleBasePoint )
+ {
+ // InternalRBAModel.g:9283:10: (lv_basePoint_5_0= ruleBasePoint )
+ // InternalRBAModel.g:9284:11: lv_basePoint_5_0= ruleBasePoint
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getHorizontalLayoutAccess().getBasePointBasePointEnumRuleCall_3_0_1_0());
+
+ }
+ pushFollow(FOLLOW_69);
+ lv_basePoint_5_0=ruleBasePoint();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getHorizontalLayoutRule());
+ }
+ set(
+ current,
+ "basePoint",
+ lv_basePoint_5_0,
+ "rba.tool.editor.RBAModel.BasePoint");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:9307:4: ({...}? => ( ({...}? => (otherlv_6= 'subarea:' otherlv_7= '[' ( ( ( ruleQualifiedName ) ) (otherlv_9= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_11= ']' ) ) ) )
+ {
+ // InternalRBAModel.g:9307:4: ({...}? => ( ({...}? => (otherlv_6= 'subarea:' otherlv_7= '[' ( ( ( ruleQualifiedName ) ) (otherlv_9= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_11= ']' ) ) ) )
+ // InternalRBAModel.g:9308:5: {...}? => ( ({...}? => (otherlv_6= 'subarea:' otherlv_7= '[' ( ( ( ruleQualifiedName ) ) (otherlv_9= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_11= ']' ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleHorizontalLayout", "getUnorderedGroupHelper().canSelect(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3(), 1)");
+ }
+ // InternalRBAModel.g:9308:113: ( ({...}? => (otherlv_6= 'subarea:' otherlv_7= '[' ( ( ( ruleQualifiedName ) ) (otherlv_9= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_11= ']' ) ) )
+ // InternalRBAModel.g:9309:6: ({...}? => (otherlv_6= 'subarea:' otherlv_7= '[' ( ( ( ruleQualifiedName ) ) (otherlv_9= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_11= ']' ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3(), 1);
+ // InternalRBAModel.g:9312:9: ({...}? => (otherlv_6= 'subarea:' otherlv_7= '[' ( ( ( ruleQualifiedName ) ) (otherlv_9= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_11= ']' ) )
+ // InternalRBAModel.g:9312:10: {...}? => (otherlv_6= 'subarea:' otherlv_7= '[' ( ( ( ruleQualifiedName ) ) (otherlv_9= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_11= ']' )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleHorizontalLayout", "true");
+ }
+ // InternalRBAModel.g:9312:19: (otherlv_6= 'subarea:' otherlv_7= '[' ( ( ( ruleQualifiedName ) ) (otherlv_9= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_11= ']' )
+ // InternalRBAModel.g:9312:20: otherlv_6= 'subarea:' otherlv_7= '[' ( ( ( ruleQualifiedName ) ) (otherlv_9= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_11= ']'
+ {
+ otherlv_6=(Token)match(input,141,FOLLOW_29); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_6, grammarAccess.getHorizontalLayoutAccess().getSubareaKeyword_3_1_0());
+
+ }
+ otherlv_7=(Token)match(input,45,FOLLOW_30); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_7, grammarAccess.getHorizontalLayoutAccess().getLeftSquareBracketKeyword_3_1_1());
+
+ }
+ // InternalRBAModel.g:9320:9: ( ( ( ruleQualifiedName ) ) (otherlv_9= ',' ( ( ruleQualifiedName ) ) )* )?
+ int alt112=2;
+ int LA112_0 = input.LA(1);
+
+ if ( (LA112_0==RULE_ID) ) {
+ alt112=1;
+ }
+ switch (alt112) {
+ case 1 :
+ // InternalRBAModel.g:9321:10: ( ( ruleQualifiedName ) ) (otherlv_9= ',' ( ( ruleQualifiedName ) ) )*
+ {
+ // InternalRBAModel.g:9321:10: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:9322:11: ( ruleQualifiedName )
+ {
+ // InternalRBAModel.g:9322:11: ( ruleQualifiedName )
+ // InternalRBAModel.g:9323:12: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getHorizontalLayoutRule());
+ }
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getHorizontalLayoutAccess().getSubareaAreaCrossReference_3_1_2_0_0());
+
+ }
+ pushFollow(FOLLOW_31);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // InternalRBAModel.g:9337:10: (otherlv_9= ',' ( ( ruleQualifiedName ) ) )*
+ loop111:
+ do {
+ int alt111=2;
+ int LA111_0 = input.LA(1);
+
+ if ( (LA111_0==27) ) {
+ alt111=1;
+ }
+
+
+ switch (alt111) {
+ case 1 :
+ // InternalRBAModel.g:9338:11: otherlv_9= ',' ( ( ruleQualifiedName ) )
+ {
+ otherlv_9=(Token)match(input,27,FOLLOW_3); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_9, grammarAccess.getHorizontalLayoutAccess().getCommaKeyword_3_1_2_1_0());
+
+ }
+ // InternalRBAModel.g:9342:11: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:9343:12: ( ruleQualifiedName )
+ {
+ // InternalRBAModel.g:9343:12: ( ruleQualifiedName )
+ // InternalRBAModel.g:9344:13: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getHorizontalLayoutRule());
+ }
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getHorizontalLayoutAccess().getSubareaAreaCrossReference_3_1_2_1_1_0());
+
+ }
+ pushFollow(FOLLOW_31);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop111;
+ }
+ } while (true);
+
+
+ }
+ break;
+
+ }
+
+ otherlv_11=(Token)match(input,46,FOLLOW_69); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_11, grammarAccess.getHorizontalLayoutAccess().getRightSquareBracketKeyword_3_1_3());
+
+ }
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop113;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().leave(grammarAccess.getHorizontalLayoutAccess().getUnorderedGroup_3());
+
+ }
+
+ otherlv_12=(Token)match(input,28,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_12, grammarAccess.getHorizontalLayoutAccess().getRightCurlyBracketKeyword_4());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleHorizontalLayout"
+
+
+ // $ANTLR start "entryRuleFixedPositionLayout"
+ // InternalRBAModel.g:9385:1: entryRuleFixedPositionLayout returns [EObject current=null] : iv_ruleFixedPositionLayout= ruleFixedPositionLayout EOF ;
+ public final EObject entryRuleFixedPositionLayout() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleFixedPositionLayout = null;
+
+
+ try {
+ // InternalRBAModel.g:9385:60: (iv_ruleFixedPositionLayout= ruleFixedPositionLayout EOF )
+ // InternalRBAModel.g:9386:2: iv_ruleFixedPositionLayout= ruleFixedPositionLayout EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getFixedPositionLayoutRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleFixedPositionLayout=ruleFixedPositionLayout();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleFixedPositionLayout;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleFixedPositionLayout"
+
+
+ // $ANTLR start "ruleFixedPositionLayout"
+ // InternalRBAModel.g:9392:1: ruleFixedPositionLayout returns [EObject current=null] : ( () otherlv_1= 'FixedPositionLayout' otherlv_2= '{' ( (lv_subAreaPosition_3_0= rulePositionContainer ) )* otherlv_4= '}' ) ;
+ public final EObject ruleFixedPositionLayout() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_2=null;
+ Token otherlv_4=null;
+ EObject lv_subAreaPosition_3_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:9398:2: ( ( () otherlv_1= 'FixedPositionLayout' otherlv_2= '{' ( (lv_subAreaPosition_3_0= rulePositionContainer ) )* otherlv_4= '}' ) )
+ // InternalRBAModel.g:9399:2: ( () otherlv_1= 'FixedPositionLayout' otherlv_2= '{' ( (lv_subAreaPosition_3_0= rulePositionContainer ) )* otherlv_4= '}' )
+ {
+ // InternalRBAModel.g:9399:2: ( () otherlv_1= 'FixedPositionLayout' otherlv_2= '{' ( (lv_subAreaPosition_3_0= rulePositionContainer ) )* otherlv_4= '}' )
+ // InternalRBAModel.g:9400:3: () otherlv_1= 'FixedPositionLayout' otherlv_2= '{' ( (lv_subAreaPosition_3_0= rulePositionContainer ) )* otherlv_4= '}'
+ {
+ // InternalRBAModel.g:9400:3: ()
+ // InternalRBAModel.g:9401:4:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getFixedPositionLayoutAccess().getFixedPositionLayoutAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,143,FOLLOW_15); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getFixedPositionLayoutAccess().getFixedPositionLayoutKeyword_1());
+
+ }
+ otherlv_2=(Token)match(input,26,FOLLOW_71); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_2, grammarAccess.getFixedPositionLayoutAccess().getLeftCurlyBracketKeyword_2());
+
+ }
+ // InternalRBAModel.g:9415:3: ( (lv_subAreaPosition_3_0= rulePositionContainer ) )*
+ loop114:
+ do {
+ int alt114=2;
+ int LA114_0 = input.LA(1);
+
+ if ( (LA114_0==144) ) {
+ alt114=1;
+ }
+
+
+ switch (alt114) {
+ case 1 :
+ // InternalRBAModel.g:9416:4: (lv_subAreaPosition_3_0= rulePositionContainer )
+ {
+ // InternalRBAModel.g:9416:4: (lv_subAreaPosition_3_0= rulePositionContainer )
+ // InternalRBAModel.g:9417:5: lv_subAreaPosition_3_0= rulePositionContainer
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getFixedPositionLayoutAccess().getSubAreaPositionPositionContainerParserRuleCall_3_0());
+
+ }
+ pushFollow(FOLLOW_71);
+ lv_subAreaPosition_3_0=rulePositionContainer();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getFixedPositionLayoutRule());
+ }
+ add(
+ current,
+ "subAreaPosition",
+ lv_subAreaPosition_3_0,
+ "rba.tool.editor.RBAModel.PositionContainer");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop114;
+ }
+ } while (true);
+
+ otherlv_4=(Token)match(input,28,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_4, grammarAccess.getFixedPositionLayoutAccess().getRightCurlyBracketKeyword_4());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleFixedPositionLayout"
+
+
+ // $ANTLR start "entryRulePositionContainer"
+ // InternalRBAModel.g:9442:1: entryRulePositionContainer returns [EObject current=null] : iv_rulePositionContainer= rulePositionContainer EOF ;
+ public final EObject entryRulePositionContainer() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_rulePositionContainer = null;
+
+
+ try {
+ // InternalRBAModel.g:9442:58: (iv_rulePositionContainer= rulePositionContainer EOF )
+ // InternalRBAModel.g:9443:2: iv_rulePositionContainer= rulePositionContainer EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getPositionContainerRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_rulePositionContainer=rulePositionContainer();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_rulePositionContainer;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRulePositionContainer"
+
+
+ // $ANTLR start "rulePositionContainer"
+ // InternalRBAModel.g:9449:1: rulePositionContainer returns [EObject current=null] : ( () otherlv_1= 'PositionContainer' otherlv_2= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'x:' ( (lv_x_5_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'y:' ( (lv_y_7_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'basePoint:' ( (lv_basePoint_9_0= ruleBasePoint ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_10= 'areaReference:' ( ( ruleQualifiedName ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_offset_12_0= ruleOffset ) ) )+ ) ) )* ) ) ) otherlv_13= '}' ) ;
+ public final EObject rulePositionContainer() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_2=null;
+ Token otherlv_4=null;
+ Token otherlv_6=null;
+ Token otherlv_8=null;
+ Token otherlv_10=null;
+ Token otherlv_13=null;
+ AntlrDatatypeRuleToken lv_x_5_0 = null;
+
+ AntlrDatatypeRuleToken lv_y_7_0 = null;
+
+ Enumerator lv_basePoint_9_0 = null;
+
+ EObject lv_offset_12_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:9455:2: ( ( () otherlv_1= 'PositionContainer' otherlv_2= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'x:' ( (lv_x_5_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'y:' ( (lv_y_7_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'basePoint:' ( (lv_basePoint_9_0= ruleBasePoint ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_10= 'areaReference:' ( ( ruleQualifiedName ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_offset_12_0= ruleOffset ) ) )+ ) ) )* ) ) ) otherlv_13= '}' ) )
+ // InternalRBAModel.g:9456:2: ( () otherlv_1= 'PositionContainer' otherlv_2= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'x:' ( (lv_x_5_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'y:' ( (lv_y_7_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'basePoint:' ( (lv_basePoint_9_0= ruleBasePoint ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_10= 'areaReference:' ( ( ruleQualifiedName ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_offset_12_0= ruleOffset ) ) )+ ) ) )* ) ) ) otherlv_13= '}' )
+ {
+ // InternalRBAModel.g:9456:2: ( () otherlv_1= 'PositionContainer' otherlv_2= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'x:' ( (lv_x_5_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'y:' ( (lv_y_7_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'basePoint:' ( (lv_basePoint_9_0= ruleBasePoint ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_10= 'areaReference:' ( ( ruleQualifiedName ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_offset_12_0= ruleOffset ) ) )+ ) ) )* ) ) ) otherlv_13= '}' )
+ // InternalRBAModel.g:9457:3: () otherlv_1= 'PositionContainer' otherlv_2= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'x:' ( (lv_x_5_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'y:' ( (lv_y_7_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'basePoint:' ( (lv_basePoint_9_0= ruleBasePoint ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_10= 'areaReference:' ( ( ruleQualifiedName ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_offset_12_0= ruleOffset ) ) )+ ) ) )* ) ) ) otherlv_13= '}'
+ {
+ // InternalRBAModel.g:9457:3: ()
+ // InternalRBAModel.g:9458:4:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getPositionContainerAccess().getPositionContainerAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,144,FOLLOW_15); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getPositionContainerAccess().getPositionContainerKeyword_1());
+
+ }
+ otherlv_2=(Token)match(input,26,FOLLOW_72); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_2, grammarAccess.getPositionContainerAccess().getLeftCurlyBracketKeyword_2());
+
+ }
+ // InternalRBAModel.g:9472:3: ( ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'x:' ( (lv_x_5_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'y:' ( (lv_y_7_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'basePoint:' ( (lv_basePoint_9_0= ruleBasePoint ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_10= 'areaReference:' ( ( ruleQualifiedName ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_offset_12_0= ruleOffset ) ) )+ ) ) )* ) ) )
+ // InternalRBAModel.g:9473:4: ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'x:' ( (lv_x_5_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'y:' ( (lv_y_7_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'basePoint:' ( (lv_basePoint_9_0= ruleBasePoint ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_10= 'areaReference:' ( ( ruleQualifiedName ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_offset_12_0= ruleOffset ) ) )+ ) ) )* ) )
+ {
+ // InternalRBAModel.g:9473:4: ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'x:' ( (lv_x_5_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'y:' ( (lv_y_7_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'basePoint:' ( (lv_basePoint_9_0= ruleBasePoint ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_10= 'areaReference:' ( ( ruleQualifiedName ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_offset_12_0= ruleOffset ) ) )+ ) ) )* ) )
+ // InternalRBAModel.g:9474:5: ( ( ({...}? => ( ({...}? => (otherlv_4= 'x:' ( (lv_x_5_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'y:' ( (lv_y_7_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'basePoint:' ( (lv_basePoint_9_0= ruleBasePoint ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_10= 'areaReference:' ( ( ruleQualifiedName ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_offset_12_0= ruleOffset ) ) )+ ) ) )* )
+ {
+ getUnorderedGroupHelper().enter(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3());
+ // InternalRBAModel.g:9477:5: ( ( ({...}? => ( ({...}? => (otherlv_4= 'x:' ( (lv_x_5_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'y:' ( (lv_y_7_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'basePoint:' ( (lv_basePoint_9_0= ruleBasePoint ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_10= 'areaReference:' ( ( ruleQualifiedName ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_offset_12_0= ruleOffset ) ) )+ ) ) )* )
+ // InternalRBAModel.g:9478:6: ( ({...}? => ( ({...}? => (otherlv_4= 'x:' ( (lv_x_5_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'y:' ( (lv_y_7_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'basePoint:' ( (lv_basePoint_9_0= ruleBasePoint ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_10= 'areaReference:' ( ( ruleQualifiedName ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_offset_12_0= ruleOffset ) ) )+ ) ) )*
+ {
+ // InternalRBAModel.g:9478:6: ( ({...}? => ( ({...}? => (otherlv_4= 'x:' ( (lv_x_5_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'y:' ( (lv_y_7_0= ruleEInt ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'basePoint:' ( (lv_basePoint_9_0= ruleBasePoint ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_10= 'areaReference:' ( ( ruleQualifiedName ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_offset_12_0= ruleOffset ) ) )+ ) ) )*
+ loop116:
+ do {
+ int alt116=6;
+ int LA116_0 = input.LA(1);
+
+ if ( LA116_0 == 52 && getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 0) ) {
+ alt116=1;
+ }
+ else if ( LA116_0 == 53 && getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 1) ) {
+ alt116=2;
+ }
+ else if ( LA116_0 == 140 && getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 2) ) {
+ alt116=3;
+ }
+ else if ( LA116_0 == 145 && getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 3) ) {
+ alt116=4;
+ }
+ else if ( LA116_0 == 51 && getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 4) ) {
+ alt116=5;
+ }
+
+
+ switch (alt116) {
+ case 1 :
+ // InternalRBAModel.g:9479:4: ({...}? => ( ({...}? => (otherlv_4= 'x:' ( (lv_x_5_0= ruleEInt ) ) ) ) ) )
+ {
+ // InternalRBAModel.g:9479:4: ({...}? => ( ({...}? => (otherlv_4= 'x:' ( (lv_x_5_0= ruleEInt ) ) ) ) ) )
+ // InternalRBAModel.g:9480:5: {...}? => ( ({...}? => (otherlv_4= 'x:' ( (lv_x_5_0= ruleEInt ) ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "rulePositionContainer", "getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 0)");
+ }
+ // InternalRBAModel.g:9480:114: ( ({...}? => (otherlv_4= 'x:' ( (lv_x_5_0= ruleEInt ) ) ) ) )
+ // InternalRBAModel.g:9481:6: ({...}? => (otherlv_4= 'x:' ( (lv_x_5_0= ruleEInt ) ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 0);
+ // InternalRBAModel.g:9484:9: ({...}? => (otherlv_4= 'x:' ( (lv_x_5_0= ruleEInt ) ) ) )
+ // InternalRBAModel.g:9484:10: {...}? => (otherlv_4= 'x:' ( (lv_x_5_0= ruleEInt ) ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "rulePositionContainer", "true");
+ }
+ // InternalRBAModel.g:9484:19: (otherlv_4= 'x:' ( (lv_x_5_0= ruleEInt ) ) )
+ // InternalRBAModel.g:9484:20: otherlv_4= 'x:' ( (lv_x_5_0= ruleEInt ) )
+ {
+ otherlv_4=(Token)match(input,52,FOLLOW_8); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_4, grammarAccess.getPositionContainerAccess().getXKeyword_3_0_0());
+
+ }
+ // InternalRBAModel.g:9488:9: ( (lv_x_5_0= ruleEInt ) )
+ // InternalRBAModel.g:9489:10: (lv_x_5_0= ruleEInt )
+ {
+ // InternalRBAModel.g:9489:10: (lv_x_5_0= ruleEInt )
+ // InternalRBAModel.g:9490:11: lv_x_5_0= ruleEInt
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getPositionContainerAccess().getXEIntParserRuleCall_3_0_1_0());
+
+ }
+ pushFollow(FOLLOW_72);
+ lv_x_5_0=ruleEInt();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getPositionContainerRule());
+ }
+ set(
+ current,
+ "x",
+ lv_x_5_0,
+ "rba.tool.editor.RBAModel.EInt");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:9513:4: ({...}? => ( ({...}? => (otherlv_6= 'y:' ( (lv_y_7_0= ruleEInt ) ) ) ) ) )
+ {
+ // InternalRBAModel.g:9513:4: ({...}? => ( ({...}? => (otherlv_6= 'y:' ( (lv_y_7_0= ruleEInt ) ) ) ) ) )
+ // InternalRBAModel.g:9514:5: {...}? => ( ({...}? => (otherlv_6= 'y:' ( (lv_y_7_0= ruleEInt ) ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "rulePositionContainer", "getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 1)");
+ }
+ // InternalRBAModel.g:9514:114: ( ({...}? => (otherlv_6= 'y:' ( (lv_y_7_0= ruleEInt ) ) ) ) )
+ // InternalRBAModel.g:9515:6: ({...}? => (otherlv_6= 'y:' ( (lv_y_7_0= ruleEInt ) ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 1);
+ // InternalRBAModel.g:9518:9: ({...}? => (otherlv_6= 'y:' ( (lv_y_7_0= ruleEInt ) ) ) )
+ // InternalRBAModel.g:9518:10: {...}? => (otherlv_6= 'y:' ( (lv_y_7_0= ruleEInt ) ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "rulePositionContainer", "true");
+ }
+ // InternalRBAModel.g:9518:19: (otherlv_6= 'y:' ( (lv_y_7_0= ruleEInt ) ) )
+ // InternalRBAModel.g:9518:20: otherlv_6= 'y:' ( (lv_y_7_0= ruleEInt ) )
+ {
+ otherlv_6=(Token)match(input,53,FOLLOW_8); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_6, grammarAccess.getPositionContainerAccess().getYKeyword_3_1_0());
+
+ }
+ // InternalRBAModel.g:9522:9: ( (lv_y_7_0= ruleEInt ) )
+ // InternalRBAModel.g:9523:10: (lv_y_7_0= ruleEInt )
+ {
+ // InternalRBAModel.g:9523:10: (lv_y_7_0= ruleEInt )
+ // InternalRBAModel.g:9524:11: lv_y_7_0= ruleEInt
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getPositionContainerAccess().getYEIntParserRuleCall_3_1_1_0());
+
+ }
+ pushFollow(FOLLOW_72);
+ lv_y_7_0=ruleEInt();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getPositionContainerRule());
+ }
+ set(
+ current,
+ "y",
+ lv_y_7_0,
+ "rba.tool.editor.RBAModel.EInt");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:9547:4: ({...}? => ( ({...}? => (otherlv_8= 'basePoint:' ( (lv_basePoint_9_0= ruleBasePoint ) ) ) ) ) )
+ {
+ // InternalRBAModel.g:9547:4: ({...}? => ( ({...}? => (otherlv_8= 'basePoint:' ( (lv_basePoint_9_0= ruleBasePoint ) ) ) ) ) )
+ // InternalRBAModel.g:9548:5: {...}? => ( ({...}? => (otherlv_8= 'basePoint:' ( (lv_basePoint_9_0= ruleBasePoint ) ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 2) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "rulePositionContainer", "getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 2)");
+ }
+ // InternalRBAModel.g:9548:114: ( ({...}? => (otherlv_8= 'basePoint:' ( (lv_basePoint_9_0= ruleBasePoint ) ) ) ) )
+ // InternalRBAModel.g:9549:6: ({...}? => (otherlv_8= 'basePoint:' ( (lv_basePoint_9_0= ruleBasePoint ) ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 2);
+ // InternalRBAModel.g:9552:9: ({...}? => (otherlv_8= 'basePoint:' ( (lv_basePoint_9_0= ruleBasePoint ) ) ) )
+ // InternalRBAModel.g:9552:10: {...}? => (otherlv_8= 'basePoint:' ( (lv_basePoint_9_0= ruleBasePoint ) ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "rulePositionContainer", "true");
+ }
+ // InternalRBAModel.g:9552:19: (otherlv_8= 'basePoint:' ( (lv_basePoint_9_0= ruleBasePoint ) ) )
+ // InternalRBAModel.g:9552:20: otherlv_8= 'basePoint:' ( (lv_basePoint_9_0= ruleBasePoint ) )
+ {
+ otherlv_8=(Token)match(input,140,FOLLOW_70); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_8, grammarAccess.getPositionContainerAccess().getBasePointKeyword_3_2_0());
+
+ }
+ // InternalRBAModel.g:9556:9: ( (lv_basePoint_9_0= ruleBasePoint ) )
+ // InternalRBAModel.g:9557:10: (lv_basePoint_9_0= ruleBasePoint )
+ {
+ // InternalRBAModel.g:9557:10: (lv_basePoint_9_0= ruleBasePoint )
+ // InternalRBAModel.g:9558:11: lv_basePoint_9_0= ruleBasePoint
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getPositionContainerAccess().getBasePointBasePointEnumRuleCall_3_2_1_0());
+
+ }
+ pushFollow(FOLLOW_72);
+ lv_basePoint_9_0=ruleBasePoint();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getPositionContainerRule());
+ }
+ set(
+ current,
+ "basePoint",
+ lv_basePoint_9_0,
+ "rba.tool.editor.RBAModel.BasePoint");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // InternalRBAModel.g:9581:4: ({...}? => ( ({...}? => (otherlv_10= 'areaReference:' ( ( ruleQualifiedName ) ) ) ) ) )
+ {
+ // InternalRBAModel.g:9581:4: ({...}? => ( ({...}? => (otherlv_10= 'areaReference:' ( ( ruleQualifiedName ) ) ) ) ) )
+ // InternalRBAModel.g:9582:5: {...}? => ( ({...}? => (otherlv_10= 'areaReference:' ( ( ruleQualifiedName ) ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 3) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "rulePositionContainer", "getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 3)");
+ }
+ // InternalRBAModel.g:9582:114: ( ({...}? => (otherlv_10= 'areaReference:' ( ( ruleQualifiedName ) ) ) ) )
+ // InternalRBAModel.g:9583:6: ({...}? => (otherlv_10= 'areaReference:' ( ( ruleQualifiedName ) ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 3);
+ // InternalRBAModel.g:9586:9: ({...}? => (otherlv_10= 'areaReference:' ( ( ruleQualifiedName ) ) ) )
+ // InternalRBAModel.g:9586:10: {...}? => (otherlv_10= 'areaReference:' ( ( ruleQualifiedName ) ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "rulePositionContainer", "true");
+ }
+ // InternalRBAModel.g:9586:19: (otherlv_10= 'areaReference:' ( ( ruleQualifiedName ) ) )
+ // InternalRBAModel.g:9586:20: otherlv_10= 'areaReference:' ( ( ruleQualifiedName ) )
+ {
+ otherlv_10=(Token)match(input,145,FOLLOW_3); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_10, grammarAccess.getPositionContainerAccess().getAreaReferenceKeyword_3_3_0());
+
+ }
+ // InternalRBAModel.g:9590:9: ( ( ruleQualifiedName ) )
+ // InternalRBAModel.g:9591:10: ( ruleQualifiedName )
+ {
+ // InternalRBAModel.g:9591:10: ( ruleQualifiedName )
+ // InternalRBAModel.g:9592:11: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getPositionContainerRule());
+ }
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getPositionContainerAccess().getAreaAreaCrossReference_3_3_1_0());
+
+ }
+ pushFollow(FOLLOW_72);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 5 :
+ // InternalRBAModel.g:9612:4: ({...}? => ( ({...}? => ( (lv_offset_12_0= ruleOffset ) ) )+ ) )
+ {
+ // InternalRBAModel.g:9612:4: ({...}? => ( ({...}? => ( (lv_offset_12_0= ruleOffset ) ) )+ ) )
+ // InternalRBAModel.g:9613:5: {...}? => ( ({...}? => ( (lv_offset_12_0= ruleOffset ) ) )+ )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 4) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "rulePositionContainer", "getUnorderedGroupHelper().canSelect(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 4)");
+ }
+ // InternalRBAModel.g:9613:114: ( ({...}? => ( (lv_offset_12_0= ruleOffset ) ) )+ )
+ // InternalRBAModel.g:9614:6: ({...}? => ( (lv_offset_12_0= ruleOffset ) ) )+
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3(), 4);
+ // InternalRBAModel.g:9617:9: ({...}? => ( (lv_offset_12_0= ruleOffset ) ) )+
+ int cnt115=0;
+ loop115:
+ do {
+ int alt115=2;
+ int LA115_0 = input.LA(1);
+
+ if ( (LA115_0==51) ) {
+ int LA115_2 = input.LA(2);
+
+ if ( ((true)) ) {
+ alt115=1;
+ }
+
+
+ }
+
+
+ switch (alt115) {
+ case 1 :
+ // InternalRBAModel.g:9617:10: {...}? => ( (lv_offset_12_0= ruleOffset ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "rulePositionContainer", "true");
+ }
+ // InternalRBAModel.g:9617:19: ( (lv_offset_12_0= ruleOffset ) )
+ // InternalRBAModel.g:9617:20: (lv_offset_12_0= ruleOffset )
+ {
+ // InternalRBAModel.g:9617:20: (lv_offset_12_0= ruleOffset )
+ // InternalRBAModel.g:9618:10: lv_offset_12_0= ruleOffset
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getPositionContainerAccess().getOffsetOffsetParserRuleCall_3_4_0());
+
+ }
+ pushFollow(FOLLOW_72);
+ lv_offset_12_0=ruleOffset();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getPositionContainerRule());
+ }
+ add(
+ current,
+ "offset",
+ lv_offset_12_0,
+ "rba.tool.editor.RBAModel.Offset");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ if ( cnt115 >= 1 ) break loop115;
+ if (state.backtracking>0) {state.failed=true; return current;}
+ EarlyExitException eee =
+ new EarlyExitException(115, input);
+ throw eee;
+ }
+ cnt115++;
+ } while (true);
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop116;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().leave(grammarAccess.getPositionContainerAccess().getUnorderedGroup_3());
+
+ }
+
+ otherlv_13=(Token)match(input,28,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_13, grammarAccess.getPositionContainerAccess().getRightCurlyBracketKeyword_4());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "rulePositionContainer"
+
+
+ // $ANTLR start "entryRuleEBoolean"
+ // InternalRBAModel.g:9655:1: entryRuleEBoolean returns [String current=null] : iv_ruleEBoolean= ruleEBoolean EOF ;
+ public final String entryRuleEBoolean() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleEBoolean = null;
+
+
+ try {
+ // InternalRBAModel.g:9655:48: (iv_ruleEBoolean= ruleEBoolean EOF )
+ // InternalRBAModel.g:9656:2: iv_ruleEBoolean= ruleEBoolean EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getEBooleanRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleEBoolean=ruleEBoolean();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleEBoolean.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleEBoolean"
+
+
+ // $ANTLR start "ruleEBoolean"
+ // InternalRBAModel.g:9662:1: ruleEBoolean returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= 'true' | kw= 'false' ) ;
+ public final AntlrDatatypeRuleToken ruleEBoolean() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:9668:2: ( (kw= 'true' | kw= 'false' ) )
+ // InternalRBAModel.g:9669:2: (kw= 'true' | kw= 'false' )
+ {
+ // InternalRBAModel.g:9669:2: (kw= 'true' | kw= 'false' )
+ int alt117=2;
+ int LA117_0 = input.LA(1);
+
+ if ( (LA117_0==146) ) {
+ alt117=1;
+ }
+ else if ( (LA117_0==147) ) {
+ alt117=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 117, 0, input);
+
+ throw nvae;
+ }
+ switch (alt117) {
+ case 1 :
+ // InternalRBAModel.g:9670:3: kw= 'true'
+ {
+ kw=(Token)match(input,146,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getEBooleanAccess().getTrueKeyword_0());
+
+ }
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:9676:3: kw= 'false'
+ {
+ kw=(Token)match(input,147,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getEBooleanAccess().getFalseKeyword_1());
+
+ }
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleEBoolean"
+
+
+ // $ANTLR start "entryRuleEInt"
+ // InternalRBAModel.g:9685:1: entryRuleEInt returns [String current=null] : iv_ruleEInt= ruleEInt EOF ;
+ public final String entryRuleEInt() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleEInt = null;
+
+
+ try {
+ // InternalRBAModel.g:9685:44: (iv_ruleEInt= ruleEInt EOF )
+ // InternalRBAModel.g:9686:2: iv_ruleEInt= ruleEInt EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getEIntRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleEInt=ruleEInt();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleEInt.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleEInt"
+
+
+ // $ANTLR start "ruleEInt"
+ // InternalRBAModel.g:9692:1: ruleEInt returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : ( (kw= '-' )? this_INT_1= RULE_INT ) ;
+ public final AntlrDatatypeRuleToken ruleEInt() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+ Token this_INT_1=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:9698:2: ( ( (kw= '-' )? this_INT_1= RULE_INT ) )
+ // InternalRBAModel.g:9699:2: ( (kw= '-' )? this_INT_1= RULE_INT )
+ {
+ // InternalRBAModel.g:9699:2: ( (kw= '-' )? this_INT_1= RULE_INT )
+ // InternalRBAModel.g:9700:3: (kw= '-' )? this_INT_1= RULE_INT
+ {
+ // InternalRBAModel.g:9700:3: (kw= '-' )?
+ int alt118=2;
+ int LA118_0 = input.LA(1);
+
+ if ( (LA118_0==148) ) {
+ alt118=1;
+ }
+ switch (alt118) {
+ case 1 :
+ // InternalRBAModel.g:9701:4: kw= '-'
+ {
+ kw=(Token)match(input,148,FOLLOW_73); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getEIntAccess().getHyphenMinusKeyword_0());
+
+ }
+
+ }
+ break;
+
+ }
+
+ this_INT_1=(Token)match(input,RULE_INT,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(this_INT_1);
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(this_INT_1, grammarAccess.getEIntAccess().getINTTerminalRuleCall_1());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleEInt"
+
+
+ // $ANTLR start "entryRuleEString"
+ // InternalRBAModel.g:9718:1: entryRuleEString returns [String current=null] : iv_ruleEString= ruleEString EOF ;
+ public final String entryRuleEString() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleEString = null;
+
+
+ try {
+ // InternalRBAModel.g:9718:47: (iv_ruleEString= ruleEString EOF )
+ // InternalRBAModel.g:9719:2: iv_ruleEString= ruleEString EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getEStringRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleEString=ruleEString();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleEString.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleEString"
+
+
+ // $ANTLR start "ruleEString"
+ // InternalRBAModel.g:9725:1: ruleEString returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_STRING_0= RULE_STRING ;
+ public final AntlrDatatypeRuleToken ruleEString() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token this_STRING_0=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:9731:2: (this_STRING_0= RULE_STRING )
+ // InternalRBAModel.g:9732:2: this_STRING_0= RULE_STRING
+ {
+ this_STRING_0=(Token)match(input,RULE_STRING,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(this_STRING_0);
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(this_STRING_0, grammarAccess.getEStringAccess().getSTRINGTerminalRuleCall());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleEString"
+
+
+ // $ANTLR start "entryRuleRichString"
+ // InternalRBAModel.g:9742:1: entryRuleRichString returns [String current=null] : iv_ruleRichString= ruleRichString EOF ;
+ public final String entryRuleRichString() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleRichString = null;
+
+
+ try {
+ // InternalRBAModel.g:9742:50: (iv_ruleRichString= ruleRichString EOF )
+ // InternalRBAModel.g:9743:2: iv_ruleRichString= ruleRichString EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getRichStringRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleRichString=ruleRichString();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleRichString.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleRichString"
+
+
+ // $ANTLR start "ruleRichString"
+ // InternalRBAModel.g:9749:1: ruleRichString returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_RICH_STRING_0= RULE_RICH_STRING ;
+ public final AntlrDatatypeRuleToken ruleRichString() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token this_RICH_STRING_0=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:9755:2: (this_RICH_STRING_0= RULE_RICH_STRING )
+ // InternalRBAModel.g:9756:2: this_RICH_STRING_0= RULE_RICH_STRING
+ {
+ this_RICH_STRING_0=(Token)match(input,RULE_RICH_STRING,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(this_RICH_STRING_0);
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(this_RICH_STRING_0, grammarAccess.getRichStringAccess().getRICH_STRINGTerminalRuleCall());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleRichString"
+
+
+ // $ANTLR start "entryRuleQualifiedNameWithWildcard"
+ // InternalRBAModel.g:9766:1: entryRuleQualifiedNameWithWildcard returns [String current=null] : iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF ;
+ public final String entryRuleQualifiedNameWithWildcard() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleQualifiedNameWithWildcard = null;
+
+
+ try {
+ // InternalRBAModel.g:9766:65: (iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF )
+ // InternalRBAModel.g:9767:2: iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getQualifiedNameWithWildcardRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleQualifiedNameWithWildcard=ruleQualifiedNameWithWildcard();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleQualifiedNameWithWildcard.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleQualifiedNameWithWildcard"
+
+
+ // $ANTLR start "ruleQualifiedNameWithWildcard"
+ // InternalRBAModel.g:9773:1: ruleQualifiedNameWithWildcard returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_QualifiedName_0= ruleQualifiedName (kw= '.*' )? ) ;
+ public final AntlrDatatypeRuleToken ruleQualifiedNameWithWildcard() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+ AntlrDatatypeRuleToken this_QualifiedName_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:9779:2: ( (this_QualifiedName_0= ruleQualifiedName (kw= '.*' )? ) )
+ // InternalRBAModel.g:9780:2: (this_QualifiedName_0= ruleQualifiedName (kw= '.*' )? )
+ {
+ // InternalRBAModel.g:9780:2: (this_QualifiedName_0= ruleQualifiedName (kw= '.*' )? )
+ // InternalRBAModel.g:9781:3: this_QualifiedName_0= ruleQualifiedName (kw= '.*' )?
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getQualifiedNameWithWildcardAccess().getQualifiedNameParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_74);
+ this_QualifiedName_0=ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(this_QualifiedName_0);
+
+ }
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+ // InternalRBAModel.g:9791:3: (kw= '.*' )?
+ int alt119=2;
+ int LA119_0 = input.LA(1);
+
+ if ( (LA119_0==149) ) {
+ alt119=1;
+ }
+ switch (alt119) {
+ case 1 :
+ // InternalRBAModel.g:9792:4: kw= '.*'
+ {
+ kw=(Token)match(input,149,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getQualifiedNameWithWildcardAccess().getFullStopAsteriskKeyword_1());
+
+ }
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleQualifiedNameWithWildcard"
+
+
+ // $ANTLR start "entryRuleQualifiedName"
+ // InternalRBAModel.g:9802:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ;
+ public final String entryRuleQualifiedName() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleQualifiedName = null;
+
+
+ try {
+ // InternalRBAModel.g:9802:53: (iv_ruleQualifiedName= ruleQualifiedName EOF )
+ // InternalRBAModel.g:9803:2: iv_ruleQualifiedName= ruleQualifiedName EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getQualifiedNameRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleQualifiedName=ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleQualifiedName.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleQualifiedName"
+
+
+ // $ANTLR start "ruleQualifiedName"
+ // InternalRBAModel.g:9809:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* ) ;
+ public final AntlrDatatypeRuleToken ruleQualifiedName() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token this_ID_0=null;
+ Token kw=null;
+ Token this_ID_2=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:9815:2: ( (this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* ) )
+ // InternalRBAModel.g:9816:2: (this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* )
+ {
+ // InternalRBAModel.g:9816:2: (this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* )
+ // InternalRBAModel.g:9817:3: this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )*
+ {
+ this_ID_0=(Token)match(input,RULE_ID,FOLLOW_50); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(this_ID_0);
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(this_ID_0, grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_0());
+
+ }
+ // InternalRBAModel.g:9824:3: (kw= '.' this_ID_2= RULE_ID )*
+ loop120:
+ do {
+ int alt120=2;
+ int LA120_0 = input.LA(1);
+
+ if ( (LA120_0==71) ) {
+ alt120=1;
+ }
+
+
+ switch (alt120) {
+ case 1 :
+ // InternalRBAModel.g:9825:4: kw= '.' this_ID_2= RULE_ID
+ {
+ kw=(Token)match(input,71,FOLLOW_3); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0());
+
+ }
+ this_ID_2=(Token)match(input,RULE_ID,FOLLOW_50); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(this_ID_2);
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(this_ID_2, grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_1_1());
+
+ }
+
+ }
+ break;
+
+ default :
+ break loop120;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleQualifiedName"
+
+
+ // $ANTLR start "entryRuleIdOrThis"
+ // InternalRBAModel.g:9842:1: entryRuleIdOrThis returns [String current=null] : iv_ruleIdOrThis= ruleIdOrThis EOF ;
+ public final String entryRuleIdOrThis() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleIdOrThis = null;
+
+
+ try {
+ // InternalRBAModel.g:9842:48: (iv_ruleIdOrThis= ruleIdOrThis EOF )
+ // InternalRBAModel.g:9843:2: iv_ruleIdOrThis= ruleIdOrThis EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getIdOrThisRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleIdOrThis=ruleIdOrThis();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleIdOrThis.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleIdOrThis"
+
+
+ // $ANTLR start "ruleIdOrThis"
+ // InternalRBAModel.g:9849:1: ruleIdOrThis returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ValidID_0= ruleValidID | kw= 'this' ) ;
+ public final AntlrDatatypeRuleToken ruleIdOrThis() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+ AntlrDatatypeRuleToken this_ValidID_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:9855:2: ( (this_ValidID_0= ruleValidID | kw= 'this' ) )
+ // InternalRBAModel.g:9856:2: (this_ValidID_0= ruleValidID | kw= 'this' )
+ {
+ // InternalRBAModel.g:9856:2: (this_ValidID_0= ruleValidID | kw= 'this' )
+ int alt121=2;
+ int LA121_0 = input.LA(1);
+
+ if ( (LA121_0==RULE_ID) ) {
+ alt121=1;
+ }
+ else if ( (LA121_0==150) ) {
+ alt121=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 121, 0, input);
+
+ throw nvae;
+ }
+ switch (alt121) {
+ case 1 :
+ // InternalRBAModel.g:9857:3: this_ValidID_0= ruleValidID
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getIdOrThisAccess().getValidIDParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_ValidID_0=ruleValidID();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(this_ValidID_0);
+
+ }
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:9868:3: kw= 'this'
+ {
+ kw=(Token)match(input,150,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getIdOrThisAccess().getThisKeyword_1());
+
+ }
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleIdOrThis"
+
+
+ // $ANTLR start "entryRuleValidID"
+ // InternalRBAModel.g:9877:1: entryRuleValidID returns [String current=null] : iv_ruleValidID= ruleValidID EOF ;
+ public final String entryRuleValidID() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleValidID = null;
+
+
+ try {
+ // InternalRBAModel.g:9877:47: (iv_ruleValidID= ruleValidID EOF )
+ // InternalRBAModel.g:9878:2: iv_ruleValidID= ruleValidID EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getValidIDRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleValidID=ruleValidID();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleValidID.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleValidID"
+
+
+ // $ANTLR start "ruleValidID"
+ // InternalRBAModel.g:9884:1: ruleValidID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_ID_0= RULE_ID ;
+ public final AntlrDatatypeRuleToken ruleValidID() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token this_ID_0=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:9890:2: (this_ID_0= RULE_ID )
+ // InternalRBAModel.g:9891:2: this_ID_0= RULE_ID
+ {
+ this_ID_0=(Token)match(input,RULE_ID,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(this_ID_0);
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(this_ID_0, grammarAccess.getValidIDAccess().getIDTerminalRuleCall());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleValidID"
+
+
+ // $ANTLR start "entryRuleContentOperatorsCommon"
+ // InternalRBAModel.g:9901:1: entryRuleContentOperatorsCommon returns [String current=null] : iv_ruleContentOperatorsCommon= ruleContentOperatorsCommon EOF ;
+ public final String entryRuleContentOperatorsCommon() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleContentOperatorsCommon = null;
+
+
+ try {
+ // InternalRBAModel.g:9901:62: (iv_ruleContentOperatorsCommon= ruleContentOperatorsCommon EOF )
+ // InternalRBAModel.g:9902:2: iv_ruleContentOperatorsCommon= ruleContentOperatorsCommon EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getContentOperatorsCommonRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleContentOperatorsCommon=ruleContentOperatorsCommon();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleContentOperatorsCommon.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleContentOperatorsCommon"
+
+
+ // $ANTLR start "ruleContentOperatorsCommon"
+ // InternalRBAModel.g:9908:1: ruleContentOperatorsCommon returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_OpIsActive_0= ruleOpIsActive | this_OpGetAllocatables_1= ruleOpGetAllocatables | this_OpIsVisible_2= ruleOpIsVisible | this_OpHasComeEarlierThan_3= ruleOpHasComeEarlierThan | this_OpHasComeLaterThan_4= ruleOpHasComeLaterThan | this_OpStateValue_5= ruleOpStateValue | this_OpIsAllocatedTo_6= ruleOpIsAllocatedTo | this_OpIsDisplayedOn_7= ruleOpIsDisplayedOn ) ;
+ public final AntlrDatatypeRuleToken ruleContentOperatorsCommon() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ AntlrDatatypeRuleToken this_OpIsActive_0 = null;
+
+ AntlrDatatypeRuleToken this_OpGetAllocatables_1 = null;
+
+ AntlrDatatypeRuleToken this_OpIsVisible_2 = null;
+
+ AntlrDatatypeRuleToken this_OpHasComeEarlierThan_3 = null;
+
+ AntlrDatatypeRuleToken this_OpHasComeLaterThan_4 = null;
+
+ AntlrDatatypeRuleToken this_OpStateValue_5 = null;
+
+ AntlrDatatypeRuleToken this_OpIsAllocatedTo_6 = null;
+
+ AntlrDatatypeRuleToken this_OpIsDisplayedOn_7 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:9914:2: ( (this_OpIsActive_0= ruleOpIsActive | this_OpGetAllocatables_1= ruleOpGetAllocatables | this_OpIsVisible_2= ruleOpIsVisible | this_OpHasComeEarlierThan_3= ruleOpHasComeEarlierThan | this_OpHasComeLaterThan_4= ruleOpHasComeLaterThan | this_OpStateValue_5= ruleOpStateValue | this_OpIsAllocatedTo_6= ruleOpIsAllocatedTo | this_OpIsDisplayedOn_7= ruleOpIsDisplayedOn ) )
+ // InternalRBAModel.g:9915:2: (this_OpIsActive_0= ruleOpIsActive | this_OpGetAllocatables_1= ruleOpGetAllocatables | this_OpIsVisible_2= ruleOpIsVisible | this_OpHasComeEarlierThan_3= ruleOpHasComeEarlierThan | this_OpHasComeLaterThan_4= ruleOpHasComeLaterThan | this_OpStateValue_5= ruleOpStateValue | this_OpIsAllocatedTo_6= ruleOpIsAllocatedTo | this_OpIsDisplayedOn_7= ruleOpIsDisplayedOn )
+ {
+ // InternalRBAModel.g:9915:2: (this_OpIsActive_0= ruleOpIsActive | this_OpGetAllocatables_1= ruleOpGetAllocatables | this_OpIsVisible_2= ruleOpIsVisible | this_OpHasComeEarlierThan_3= ruleOpHasComeEarlierThan | this_OpHasComeLaterThan_4= ruleOpHasComeLaterThan | this_OpStateValue_5= ruleOpStateValue | this_OpIsAllocatedTo_6= ruleOpIsAllocatedTo | this_OpIsDisplayedOn_7= ruleOpIsDisplayedOn )
+ int alt122=8;
+ switch ( input.LA(1) ) {
+ case 88:
+ {
+ alt122=1;
+ }
+ break;
+ case 89:
+ {
+ alt122=2;
+ }
+ break;
+ case 94:
+ {
+ alt122=3;
+ }
+ break;
+ case 100:
+ {
+ alt122=4;
+ }
+ break;
+ case 101:
+ {
+ alt122=5;
+ }
+ break;
+ case 102:
+ {
+ alt122=6;
+ }
+ break;
+ case 103:
+ {
+ alt122=7;
+ }
+ break;
+ case 106:
+ {
+ alt122=8;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 122, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt122) {
+ case 1 :
+ // InternalRBAModel.g:9916:3: this_OpIsActive_0= ruleOpIsActive
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getContentOperatorsCommonAccess().getOpIsActiveParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_OpIsActive_0=ruleOpIsActive();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(this_OpIsActive_0);
+
+ }
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:9927:3: this_OpGetAllocatables_1= ruleOpGetAllocatables
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getContentOperatorsCommonAccess().getOpGetAllocatablesParserRuleCall_1());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_OpGetAllocatables_1=ruleOpGetAllocatables();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(this_OpGetAllocatables_1);
+
+ }
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:9938:3: this_OpIsVisible_2= ruleOpIsVisible
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getContentOperatorsCommonAccess().getOpIsVisibleParserRuleCall_2());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_OpIsVisible_2=ruleOpIsVisible();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(this_OpIsVisible_2);
+
+ }
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 4 :
+ // InternalRBAModel.g:9949:3: this_OpHasComeEarlierThan_3= ruleOpHasComeEarlierThan
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getContentOperatorsCommonAccess().getOpHasComeEarlierThanParserRuleCall_3());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_OpHasComeEarlierThan_3=ruleOpHasComeEarlierThan();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(this_OpHasComeEarlierThan_3);
+
+ }
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 5 :
+ // InternalRBAModel.g:9960:3: this_OpHasComeLaterThan_4= ruleOpHasComeLaterThan
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getContentOperatorsCommonAccess().getOpHasComeLaterThanParserRuleCall_4());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_OpHasComeLaterThan_4=ruleOpHasComeLaterThan();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(this_OpHasComeLaterThan_4);
+
+ }
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 6 :
+ // InternalRBAModel.g:9971:3: this_OpStateValue_5= ruleOpStateValue
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getContentOperatorsCommonAccess().getOpStateValueParserRuleCall_5());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_OpStateValue_5=ruleOpStateValue();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(this_OpStateValue_5);
+
+ }
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 7 :
+ // InternalRBAModel.g:9982:3: this_OpIsAllocatedTo_6= ruleOpIsAllocatedTo
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getContentOperatorsCommonAccess().getOpIsAllocatedToParserRuleCall_6());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_OpIsAllocatedTo_6=ruleOpIsAllocatedTo();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(this_OpIsAllocatedTo_6);
+
+ }
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 8 :
+ // InternalRBAModel.g:9993:3: this_OpIsDisplayedOn_7= ruleOpIsDisplayedOn
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getContentOperatorsCommonAccess().getOpIsDisplayedOnParserRuleCall_7());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_OpIsDisplayedOn_7=ruleOpIsDisplayedOn();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(this_OpIsDisplayedOn_7);
+
+ }
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleContentOperatorsCommon"
+
+
+ // $ANTLR start "entryRuleSoundOperatorsCommon"
+ // InternalRBAModel.g:10007:1: entryRuleSoundOperatorsCommon returns [String current=null] : iv_ruleSoundOperatorsCommon= ruleSoundOperatorsCommon EOF ;
+ public final String entryRuleSoundOperatorsCommon() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleSoundOperatorsCommon = null;
+
+
+ try {
+ // InternalRBAModel.g:10007:60: (iv_ruleSoundOperatorsCommon= ruleSoundOperatorsCommon EOF )
+ // InternalRBAModel.g:10008:2: iv_ruleSoundOperatorsCommon= ruleSoundOperatorsCommon EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getSoundOperatorsCommonRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleSoundOperatorsCommon=ruleSoundOperatorsCommon();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleSoundOperatorsCommon.getText();
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleSoundOperatorsCommon"
+
+
+ // $ANTLR start "ruleSoundOperatorsCommon"
+ // InternalRBAModel.g:10014:1: ruleSoundOperatorsCommon returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_OpIsActive_0= ruleOpIsActive | this_OpGetAllocatables_1= ruleOpGetAllocatables | this_OpIsSounding_2= ruleOpIsSounding | this_OpHasComeEarlierThan_3= ruleOpHasComeEarlierThan | this_OpHasComeLaterThan_4= ruleOpHasComeLaterThan | this_OpStateValue_5= ruleOpStateValue | this_OpIsAllocatedTo_6= ruleOpIsAllocatedTo | this_OpIsOutputtedOn_7= ruleOpIsOutputtedOn ) ;
+ public final AntlrDatatypeRuleToken ruleSoundOperatorsCommon() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ AntlrDatatypeRuleToken this_OpIsActive_0 = null;
+
+ AntlrDatatypeRuleToken this_OpGetAllocatables_1 = null;
+
+ AntlrDatatypeRuleToken this_OpIsSounding_2 = null;
+
+ AntlrDatatypeRuleToken this_OpHasComeEarlierThan_3 = null;
+
+ AntlrDatatypeRuleToken this_OpHasComeLaterThan_4 = null;
+
+ AntlrDatatypeRuleToken this_OpStateValue_5 = null;
+
+ AntlrDatatypeRuleToken this_OpIsAllocatedTo_6 = null;
+
+ AntlrDatatypeRuleToken this_OpIsOutputtedOn_7 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:10020:2: ( (this_OpIsActive_0= ruleOpIsActive | this_OpGetAllocatables_1= ruleOpGetAllocatables | this_OpIsSounding_2= ruleOpIsSounding | this_OpHasComeEarlierThan_3= ruleOpHasComeEarlierThan | this_OpHasComeLaterThan_4= ruleOpHasComeLaterThan | this_OpStateValue_5= ruleOpStateValue | this_OpIsAllocatedTo_6= ruleOpIsAllocatedTo | this_OpIsOutputtedOn_7= ruleOpIsOutputtedOn ) )
+ // InternalRBAModel.g:10021:2: (this_OpIsActive_0= ruleOpIsActive | this_OpGetAllocatables_1= ruleOpGetAllocatables | this_OpIsSounding_2= ruleOpIsSounding | this_OpHasComeEarlierThan_3= ruleOpHasComeEarlierThan | this_OpHasComeLaterThan_4= ruleOpHasComeLaterThan | this_OpStateValue_5= ruleOpStateValue | this_OpIsAllocatedTo_6= ruleOpIsAllocatedTo | this_OpIsOutputtedOn_7= ruleOpIsOutputtedOn )
+ {
+ // InternalRBAModel.g:10021:2: (this_OpIsActive_0= ruleOpIsActive | this_OpGetAllocatables_1= ruleOpGetAllocatables | this_OpIsSounding_2= ruleOpIsSounding | this_OpHasComeEarlierThan_3= ruleOpHasComeEarlierThan | this_OpHasComeLaterThan_4= ruleOpHasComeLaterThan | this_OpStateValue_5= ruleOpStateValue | this_OpIsAllocatedTo_6= ruleOpIsAllocatedTo | this_OpIsOutputtedOn_7= ruleOpIsOutputtedOn )
+ int alt123=8;
+ switch ( input.LA(1) ) {
+ case 88:
+ {
+ alt123=1;
+ }
+ break;
+ case 89:
+ {
+ alt123=2;
+ }
+ break;
+ case 98:
+ {
+ alt123=3;
+ }
+ break;
+ case 100:
+ {
+ alt123=4;
+ }
+ break;
+ case 101:
+ {
+ alt123=5;
+ }
+ break;
+ case 102:
+ {
+ alt123=6;
+ }
+ break;
+ case 103:
+ {
+ alt123=7;
+ }
+ break;
+ case 109:
+ {
+ alt123=8;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 123, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt123) {
+ case 1 :
+ // InternalRBAModel.g:10022:3: this_OpIsActive_0= ruleOpIsActive
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getSoundOperatorsCommonAccess().getOpIsActiveParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_OpIsActive_0=ruleOpIsActive();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(this_OpIsActive_0);
+
+ }
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:10033:3: this_OpGetAllocatables_1= ruleOpGetAllocatables
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getSoundOperatorsCommonAccess().getOpGetAllocatablesParserRuleCall_1());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_OpGetAllocatables_1=ruleOpGetAllocatables();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(this_OpGetAllocatables_1);
+
+ }
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:10044:3: this_OpIsSounding_2= ruleOpIsSounding
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getSoundOperatorsCommonAccess().getOpIsSoundingParserRuleCall_2());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_OpIsSounding_2=ruleOpIsSounding();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(this_OpIsSounding_2);
+
+ }
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 4 :
+ // InternalRBAModel.g:10055:3: this_OpHasComeEarlierThan_3= ruleOpHasComeEarlierThan
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getSoundOperatorsCommonAccess().getOpHasComeEarlierThanParserRuleCall_3());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_OpHasComeEarlierThan_3=ruleOpHasComeEarlierThan();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(this_OpHasComeEarlierThan_3);
+
+ }
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 5 :
+ // InternalRBAModel.g:10066:3: this_OpHasComeLaterThan_4= ruleOpHasComeLaterThan
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getSoundOperatorsCommonAccess().getOpHasComeLaterThanParserRuleCall_4());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_OpHasComeLaterThan_4=ruleOpHasComeLaterThan();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(this_OpHasComeLaterThan_4);
+
+ }
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 6 :
+ // InternalRBAModel.g:10077:3: this_OpStateValue_5= ruleOpStateValue
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getSoundOperatorsCommonAccess().getOpStateValueParserRuleCall_5());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_OpStateValue_5=ruleOpStateValue();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(this_OpStateValue_5);
+
+ }
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 7 :
+ // InternalRBAModel.g:10088:3: this_OpIsAllocatedTo_6= ruleOpIsAllocatedTo
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getSoundOperatorsCommonAccess().getOpIsAllocatedToParserRuleCall_6());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_OpIsAllocatedTo_6=ruleOpIsAllocatedTo();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(this_OpIsAllocatedTo_6);
+
+ }
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 8 :
+ // InternalRBAModel.g:10099:3: this_OpIsOutputtedOn_7= ruleOpIsOutputtedOn
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getSoundOperatorsCommonAccess().getOpIsOutputtedOnParserRuleCall_7());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_OpIsOutputtedOn_7=ruleOpIsOutputtedOn();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(this_OpIsOutputtedOn_7);
+
+ }
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleSoundOperatorsCommon"
+
+
+ // $ANTLR start "ruleArbitrationPolicy"
+ // InternalRBAModel.g:10113:1: ruleArbitrationPolicy returns [Enumerator current=null] : ( (enumLiteral_0= 'DEFAULT' ) | (enumLiteral_1= 'FIRST_COME_FIRST' ) | (enumLiteral_2= 'LAST_COME_FIRST' ) | (enumLiteral_3= 'PRIORITY_FIRST_COME_FIRST' ) | (enumLiteral_4= 'PRIORITY_LAST_COME_FIRST' ) ) ;
+ public final Enumerator ruleArbitrationPolicy() 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;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:10119:2: ( ( (enumLiteral_0= 'DEFAULT' ) | (enumLiteral_1= 'FIRST_COME_FIRST' ) | (enumLiteral_2= 'LAST_COME_FIRST' ) | (enumLiteral_3= 'PRIORITY_FIRST_COME_FIRST' ) | (enumLiteral_4= 'PRIORITY_LAST_COME_FIRST' ) ) )
+ // InternalRBAModel.g:10120:2: ( (enumLiteral_0= 'DEFAULT' ) | (enumLiteral_1= 'FIRST_COME_FIRST' ) | (enumLiteral_2= 'LAST_COME_FIRST' ) | (enumLiteral_3= 'PRIORITY_FIRST_COME_FIRST' ) | (enumLiteral_4= 'PRIORITY_LAST_COME_FIRST' ) )
+ {
+ // InternalRBAModel.g:10120:2: ( (enumLiteral_0= 'DEFAULT' ) | (enumLiteral_1= 'FIRST_COME_FIRST' ) | (enumLiteral_2= 'LAST_COME_FIRST' ) | (enumLiteral_3= 'PRIORITY_FIRST_COME_FIRST' ) | (enumLiteral_4= 'PRIORITY_LAST_COME_FIRST' ) )
+ int alt124=5;
+ switch ( input.LA(1) ) {
+ case 151:
+ {
+ alt124=1;
+ }
+ break;
+ case 152:
+ {
+ alt124=2;
+ }
+ break;
+ case 153:
+ {
+ alt124=3;
+ }
+ break;
+ case 154:
+ {
+ alt124=4;
+ }
+ break;
+ case 155:
+ {
+ alt124=5;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 124, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt124) {
+ case 1 :
+ // InternalRBAModel.g:10121:3: (enumLiteral_0= 'DEFAULT' )
+ {
+ // InternalRBAModel.g:10121:3: (enumLiteral_0= 'DEFAULT' )
+ // InternalRBAModel.g:10122:4: enumLiteral_0= 'DEFAULT'
+ {
+ enumLiteral_0=(Token)match(input,151,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = grammarAccess.getArbitrationPolicyAccess().getDEFAULTEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_0, grammarAccess.getArbitrationPolicyAccess().getDEFAULTEnumLiteralDeclaration_0());
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:10129:3: (enumLiteral_1= 'FIRST_COME_FIRST' )
+ {
+ // InternalRBAModel.g:10129:3: (enumLiteral_1= 'FIRST_COME_FIRST' )
+ // InternalRBAModel.g:10130:4: enumLiteral_1= 'FIRST_COME_FIRST'
+ {
+ enumLiteral_1=(Token)match(input,152,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = grammarAccess.getArbitrationPolicyAccess().getFIRST_COME_FIRSTEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_1, grammarAccess.getArbitrationPolicyAccess().getFIRST_COME_FIRSTEnumLiteralDeclaration_1());
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:10137:3: (enumLiteral_2= 'LAST_COME_FIRST' )
+ {
+ // InternalRBAModel.g:10137:3: (enumLiteral_2= 'LAST_COME_FIRST' )
+ // InternalRBAModel.g:10138:4: enumLiteral_2= 'LAST_COME_FIRST'
+ {
+ enumLiteral_2=(Token)match(input,153,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = grammarAccess.getArbitrationPolicyAccess().getLAST_COME_FIRSTEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_2, grammarAccess.getArbitrationPolicyAccess().getLAST_COME_FIRSTEnumLiteralDeclaration_2());
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // InternalRBAModel.g:10145:3: (enumLiteral_3= 'PRIORITY_FIRST_COME_FIRST' )
+ {
+ // InternalRBAModel.g:10145:3: (enumLiteral_3= 'PRIORITY_FIRST_COME_FIRST' )
+ // InternalRBAModel.g:10146:4: enumLiteral_3= 'PRIORITY_FIRST_COME_FIRST'
+ {
+ enumLiteral_3=(Token)match(input,154,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = grammarAccess.getArbitrationPolicyAccess().getPRIORITY_FIRST_COME_FIRSTEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_3, grammarAccess.getArbitrationPolicyAccess().getPRIORITY_FIRST_COME_FIRSTEnumLiteralDeclaration_3());
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 5 :
+ // InternalRBAModel.g:10153:3: (enumLiteral_4= 'PRIORITY_LAST_COME_FIRST' )
+ {
+ // InternalRBAModel.g:10153:3: (enumLiteral_4= 'PRIORITY_LAST_COME_FIRST' )
+ // InternalRBAModel.g:10154:4: enumLiteral_4= 'PRIORITY_LAST_COME_FIRST'
+ {
+ enumLiteral_4=(Token)match(input,155,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = grammarAccess.getArbitrationPolicyAccess().getPRIORITY_LAST_COME_FIRSTEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_4, grammarAccess.getArbitrationPolicyAccess().getPRIORITY_LAST_COME_FIRSTEnumLiteralDeclaration_4());
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleArbitrationPolicy"
+
+
+ // $ANTLR start "ruleBasePoint"
+ // InternalRBAModel.g:10164:1: ruleBasePoint returns [Enumerator current=null] : ( (enumLiteral_0= 'LEFT_TOP' ) | (enumLiteral_1= 'LEFT_MIDDLE' ) | (enumLiteral_2= 'LEFT_BOTTOM' ) | (enumLiteral_3= 'RIGHT_TOP' ) | (enumLiteral_4= 'RIGHT_MIDDLE' ) | (enumLiteral_5= 'RIGHT_BOTTOM' ) | (enumLiteral_6= 'CENTER_TOP' ) | (enumLiteral_7= 'CENTER_MIDDLE' ) | (enumLiteral_8= 'CENTER_BOTTOM' ) ) ;
+ public final Enumerator ruleBasePoint() 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;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:10170:2: ( ( (enumLiteral_0= 'LEFT_TOP' ) | (enumLiteral_1= 'LEFT_MIDDLE' ) | (enumLiteral_2= 'LEFT_BOTTOM' ) | (enumLiteral_3= 'RIGHT_TOP' ) | (enumLiteral_4= 'RIGHT_MIDDLE' ) | (enumLiteral_5= 'RIGHT_BOTTOM' ) | (enumLiteral_6= 'CENTER_TOP' ) | (enumLiteral_7= 'CENTER_MIDDLE' ) | (enumLiteral_8= 'CENTER_BOTTOM' ) ) )
+ // InternalRBAModel.g:10171:2: ( (enumLiteral_0= 'LEFT_TOP' ) | (enumLiteral_1= 'LEFT_MIDDLE' ) | (enumLiteral_2= 'LEFT_BOTTOM' ) | (enumLiteral_3= 'RIGHT_TOP' ) | (enumLiteral_4= 'RIGHT_MIDDLE' ) | (enumLiteral_5= 'RIGHT_BOTTOM' ) | (enumLiteral_6= 'CENTER_TOP' ) | (enumLiteral_7= 'CENTER_MIDDLE' ) | (enumLiteral_8= 'CENTER_BOTTOM' ) )
+ {
+ // InternalRBAModel.g:10171:2: ( (enumLiteral_0= 'LEFT_TOP' ) | (enumLiteral_1= 'LEFT_MIDDLE' ) | (enumLiteral_2= 'LEFT_BOTTOM' ) | (enumLiteral_3= 'RIGHT_TOP' ) | (enumLiteral_4= 'RIGHT_MIDDLE' ) | (enumLiteral_5= 'RIGHT_BOTTOM' ) | (enumLiteral_6= 'CENTER_TOP' ) | (enumLiteral_7= 'CENTER_MIDDLE' ) | (enumLiteral_8= 'CENTER_BOTTOM' ) )
+ int alt125=9;
+ switch ( input.LA(1) ) {
+ case 156:
+ {
+ alt125=1;
+ }
+ break;
+ case 157:
+ {
+ alt125=2;
+ }
+ break;
+ case 158:
+ {
+ alt125=3;
+ }
+ break;
+ case 159:
+ {
+ alt125=4;
+ }
+ break;
+ case 160:
+ {
+ alt125=5;
+ }
+ break;
+ case 161:
+ {
+ alt125=6;
+ }
+ break;
+ case 162:
+ {
+ alt125=7;
+ }
+ break;
+ case 163:
+ {
+ alt125=8;
+ }
+ break;
+ case 164:
+ {
+ alt125=9;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 125, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt125) {
+ case 1 :
+ // InternalRBAModel.g:10172:3: (enumLiteral_0= 'LEFT_TOP' )
+ {
+ // InternalRBAModel.g:10172:3: (enumLiteral_0= 'LEFT_TOP' )
+ // InternalRBAModel.g:10173:4: enumLiteral_0= 'LEFT_TOP'
+ {
+ enumLiteral_0=(Token)match(input,156,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = grammarAccess.getBasePointAccess().getLEFT_TOPEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_0, grammarAccess.getBasePointAccess().getLEFT_TOPEnumLiteralDeclaration_0());
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:10180:3: (enumLiteral_1= 'LEFT_MIDDLE' )
+ {
+ // InternalRBAModel.g:10180:3: (enumLiteral_1= 'LEFT_MIDDLE' )
+ // InternalRBAModel.g:10181:4: enumLiteral_1= 'LEFT_MIDDLE'
+ {
+ enumLiteral_1=(Token)match(input,157,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = grammarAccess.getBasePointAccess().getLEFT_MIDDLEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_1, grammarAccess.getBasePointAccess().getLEFT_MIDDLEEnumLiteralDeclaration_1());
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:10188:3: (enumLiteral_2= 'LEFT_BOTTOM' )
+ {
+ // InternalRBAModel.g:10188:3: (enumLiteral_2= 'LEFT_BOTTOM' )
+ // InternalRBAModel.g:10189:4: enumLiteral_2= 'LEFT_BOTTOM'
+ {
+ enumLiteral_2=(Token)match(input,158,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = grammarAccess.getBasePointAccess().getLEFT_BOTTOMEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_2, grammarAccess.getBasePointAccess().getLEFT_BOTTOMEnumLiteralDeclaration_2());
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // InternalRBAModel.g:10196:3: (enumLiteral_3= 'RIGHT_TOP' )
+ {
+ // InternalRBAModel.g:10196:3: (enumLiteral_3= 'RIGHT_TOP' )
+ // InternalRBAModel.g:10197:4: enumLiteral_3= 'RIGHT_TOP'
+ {
+ enumLiteral_3=(Token)match(input,159,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = grammarAccess.getBasePointAccess().getRIGHT_TOPEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_3, grammarAccess.getBasePointAccess().getRIGHT_TOPEnumLiteralDeclaration_3());
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 5 :
+ // InternalRBAModel.g:10204:3: (enumLiteral_4= 'RIGHT_MIDDLE' )
+ {
+ // InternalRBAModel.g:10204:3: (enumLiteral_4= 'RIGHT_MIDDLE' )
+ // InternalRBAModel.g:10205:4: enumLiteral_4= 'RIGHT_MIDDLE'
+ {
+ enumLiteral_4=(Token)match(input,160,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = grammarAccess.getBasePointAccess().getRIGHT_MIDDLEEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_4, grammarAccess.getBasePointAccess().getRIGHT_MIDDLEEnumLiteralDeclaration_4());
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 6 :
+ // InternalRBAModel.g:10212:3: (enumLiteral_5= 'RIGHT_BOTTOM' )
+ {
+ // InternalRBAModel.g:10212:3: (enumLiteral_5= 'RIGHT_BOTTOM' )
+ // InternalRBAModel.g:10213:4: enumLiteral_5= 'RIGHT_BOTTOM'
+ {
+ enumLiteral_5=(Token)match(input,161,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = grammarAccess.getBasePointAccess().getRIGHT_BOTTOMEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_5, grammarAccess.getBasePointAccess().getRIGHT_BOTTOMEnumLiteralDeclaration_5());
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 7 :
+ // InternalRBAModel.g:10220:3: (enumLiteral_6= 'CENTER_TOP' )
+ {
+ // InternalRBAModel.g:10220:3: (enumLiteral_6= 'CENTER_TOP' )
+ // InternalRBAModel.g:10221:4: enumLiteral_6= 'CENTER_TOP'
+ {
+ enumLiteral_6=(Token)match(input,162,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = grammarAccess.getBasePointAccess().getCENTER_TOPEnumLiteralDeclaration_6().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_6, grammarAccess.getBasePointAccess().getCENTER_TOPEnumLiteralDeclaration_6());
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 8 :
+ // InternalRBAModel.g:10228:3: (enumLiteral_7= 'CENTER_MIDDLE' )
+ {
+ // InternalRBAModel.g:10228:3: (enumLiteral_7= 'CENTER_MIDDLE' )
+ // InternalRBAModel.g:10229:4: enumLiteral_7= 'CENTER_MIDDLE'
+ {
+ enumLiteral_7=(Token)match(input,163,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = grammarAccess.getBasePointAccess().getCENTER_MIDDLEEnumLiteralDeclaration_7().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_7, grammarAccess.getBasePointAccess().getCENTER_MIDDLEEnumLiteralDeclaration_7());
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 9 :
+ // InternalRBAModel.g:10236:3: (enumLiteral_8= 'CENTER_BOTTOM' )
+ {
+ // InternalRBAModel.g:10236:3: (enumLiteral_8= 'CENTER_BOTTOM' )
+ // InternalRBAModel.g:10237:4: enumLiteral_8= 'CENTER_BOTTOM'
+ {
+ enumLiteral_8=(Token)match(input,164,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = grammarAccess.getBasePointAccess().getCENTER_BOTTOMEnumLiteralDeclaration_8().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_8, grammarAccess.getBasePointAccess().getCENTER_BOTTOMEnumLiteralDeclaration_8());
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleBasePoint"
+
+
+ // $ANTLR start "ruleLoserType"
+ // InternalRBAModel.g:10247:1: ruleLoserType returns [Enumerator current=null] : ( (enumLiteral_0= 'NEVER_GIVEUP' ) | (enumLiteral_1= 'GOOD_LOSER' ) | (enumLiteral_2= 'DO_NOT_GIVEUP_UNTIL_WIN' ) ) ;
+ public final Enumerator ruleLoserType() throws RecognitionException {
+ Enumerator current = null;
+
+ Token enumLiteral_0=null;
+ Token enumLiteral_1=null;
+ Token enumLiteral_2=null;
+
+
+ enterRule();
+
+ try {
+ // InternalRBAModel.g:10253:2: ( ( (enumLiteral_0= 'NEVER_GIVEUP' ) | (enumLiteral_1= 'GOOD_LOSER' ) | (enumLiteral_2= 'DO_NOT_GIVEUP_UNTIL_WIN' ) ) )
+ // InternalRBAModel.g:10254:2: ( (enumLiteral_0= 'NEVER_GIVEUP' ) | (enumLiteral_1= 'GOOD_LOSER' ) | (enumLiteral_2= 'DO_NOT_GIVEUP_UNTIL_WIN' ) )
+ {
+ // InternalRBAModel.g:10254:2: ( (enumLiteral_0= 'NEVER_GIVEUP' ) | (enumLiteral_1= 'GOOD_LOSER' ) | (enumLiteral_2= 'DO_NOT_GIVEUP_UNTIL_WIN' ) )
+ int alt126=3;
+ switch ( input.LA(1) ) {
+ case 165:
+ {
+ alt126=1;
+ }
+ break;
+ case 166:
+ {
+ alt126=2;
+ }
+ break;
+ case 167:
+ {
+ alt126=3;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 126, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt126) {
+ case 1 :
+ // InternalRBAModel.g:10255:3: (enumLiteral_0= 'NEVER_GIVEUP' )
+ {
+ // InternalRBAModel.g:10255:3: (enumLiteral_0= 'NEVER_GIVEUP' )
+ // InternalRBAModel.g:10256:4: enumLiteral_0= 'NEVER_GIVEUP'
+ {
+ enumLiteral_0=(Token)match(input,165,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = grammarAccess.getLoserTypeAccess().getNEVER_GIVEUPEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_0, grammarAccess.getLoserTypeAccess().getNEVER_GIVEUPEnumLiteralDeclaration_0());
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:10263:3: (enumLiteral_1= 'GOOD_LOSER' )
+ {
+ // InternalRBAModel.g:10263:3: (enumLiteral_1= 'GOOD_LOSER' )
+ // InternalRBAModel.g:10264:4: enumLiteral_1= 'GOOD_LOSER'
+ {
+ enumLiteral_1=(Token)match(input,166,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = grammarAccess.getLoserTypeAccess().getGOOD_LOSEREnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_1, grammarAccess.getLoserTypeAccess().getGOOD_LOSEREnumLiteralDeclaration_1());
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:10271:3: (enumLiteral_2= 'DO_NOT_GIVEUP_UNTIL_WIN' )
+ {
+ // InternalRBAModel.g:10271:3: (enumLiteral_2= 'DO_NOT_GIVEUP_UNTIL_WIN' )
+ // InternalRBAModel.g:10272:4: enumLiteral_2= 'DO_NOT_GIVEUP_UNTIL_WIN'
+ {
+ enumLiteral_2=(Token)match(input,167,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = grammarAccess.getLoserTypeAccess().getDO_NOT_GIVEUP_UNTIL_WINEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+ newLeafNode(enumLiteral_2, grammarAccess.getLoserTypeAccess().getDO_NOT_GIVEUP_UNTIL_WINEnumLiteralDeclaration_2());
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleLoserType"
+
+ // $ANTLR start synpred2_InternalRBAModel
+ public final void synpred2_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:3954:5: ( ( () ruleOpPlus ) )
+ // InternalRBAModel.g:3954:6: ( () ruleOpPlus )
+ {
+ // InternalRBAModel.g:3954:6: ( () ruleOpPlus )
+ // InternalRBAModel.g:3955:6: () ruleOpPlus
+ {
+ // InternalRBAModel.g:3955:6: ()
+ // InternalRBAModel.g:3956:6:
+ {
+ }
+
+ pushFollow(FOLLOW_2);
+ ruleOpPlus();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred2_InternalRBAModel
+
+ // $ANTLR start synpred3_InternalRBAModel
+ public final void synpred3_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:4048:5: ( ( () ruleOpAnd ) )
+ // InternalRBAModel.g:4048:6: ( () ruleOpAnd )
+ {
+ // InternalRBAModel.g:4048:6: ( () ruleOpAnd )
+ // InternalRBAModel.g:4049:6: () ruleOpAnd
+ {
+ // InternalRBAModel.g:4049:6: ()
+ // InternalRBAModel.g:4050:6:
+ {
+ }
+
+ pushFollow(FOLLOW_2);
+ ruleOpAnd();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred3_InternalRBAModel
+
+ // $ANTLR start synpred4_InternalRBAModel
+ public final void synpred4_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:4807:5: ( ( () ruleOpImplies ) )
+ // InternalRBAModel.g:4807:6: ( () ruleOpImplies )
+ {
+ // InternalRBAModel.g:4807:6: ( () ruleOpImplies )
+ // InternalRBAModel.g:4808:6: () ruleOpImplies
+ {
+ // InternalRBAModel.g:4808:6: ()
+ // InternalRBAModel.g:4809:6:
+ {
+ }
+
+ pushFollow(FOLLOW_2);
+ ruleOpImplies();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred4_InternalRBAModel
+
+ // $ANTLR start synpred5_InternalRBAModel
+ public final void synpred5_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:4901:5: ( ( () ruleOpOr ) )
+ // InternalRBAModel.g:4901:6: ( () ruleOpOr )
+ {
+ // InternalRBAModel.g:4901:6: ( () ruleOpOr )
+ // InternalRBAModel.g:4902:6: () ruleOpOr
+ {
+ // InternalRBAModel.g:4902:6: ()
+ // InternalRBAModel.g:4903:6:
+ {
+ }
+
+ pushFollow(FOLLOW_2);
+ ruleOpOr();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred5_InternalRBAModel
+
+ // $ANTLR start synpred6_InternalRBAModel
+ public final void synpred6_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:4995:5: ( ( () ruleOpAnd ) )
+ // InternalRBAModel.g:4995:6: ( () ruleOpAnd )
+ {
+ // InternalRBAModel.g:4995:6: ( () ruleOpAnd )
+ // InternalRBAModel.g:4996:6: () ruleOpAnd
+ {
+ // InternalRBAModel.g:4996:6: ()
+ // InternalRBAModel.g:4997:6:
+ {
+ }
+
+ pushFollow(FOLLOW_2);
+ ruleOpAnd();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred6_InternalRBAModel
+
+ // $ANTLR start synpred7_InternalRBAModel
+ public final void synpred7_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:5089:5: ( ( ( () ruleOpObjectCompare ) | ( () ruleOpObjectNotCompare ) | ( () ruleOpEquality ) ) )
+ // InternalRBAModel.g:5089:6: ( ( () ruleOpObjectCompare ) | ( () ruleOpObjectNotCompare ) | ( () ruleOpEquality ) )
+ {
+ // InternalRBAModel.g:5089:6: ( ( () ruleOpObjectCompare ) | ( () ruleOpObjectNotCompare ) | ( () ruleOpEquality ) )
+ int alt128=3;
+ switch ( input.LA(1) ) {
+ case 79:
+ {
+ alt128=1;
+ }
+ break;
+ case 80:
+ {
+ alt128=2;
+ }
+ break;
+ case 69:
+ {
+ alt128=3;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 128, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt128) {
+ case 1 :
+ // InternalRBAModel.g:5090:6: ( () ruleOpObjectCompare )
+ {
+ // InternalRBAModel.g:5090:6: ( () ruleOpObjectCompare )
+ // InternalRBAModel.g:5091:7: () ruleOpObjectCompare
+ {
+ // InternalRBAModel.g:5091:7: ()
+ // InternalRBAModel.g:5092:7:
+ {
+ }
+
+ pushFollow(FOLLOW_2);
+ ruleOpObjectCompare();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:5096:6: ( () ruleOpObjectNotCompare )
+ {
+ // InternalRBAModel.g:5096:6: ( () ruleOpObjectNotCompare )
+ // InternalRBAModel.g:5097:7: () ruleOpObjectNotCompare
+ {
+ // InternalRBAModel.g:5097:7: ()
+ // InternalRBAModel.g:5098:7:
+ {
+ }
+
+ pushFollow(FOLLOW_2);
+ ruleOpObjectNotCompare();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:5102:6: ( () ruleOpEquality )
+ {
+ // InternalRBAModel.g:5102:6: ( () ruleOpEquality )
+ // InternalRBAModel.g:5103:7: () ruleOpEquality
+ {
+ // InternalRBAModel.g:5103:7: ()
+ // InternalRBAModel.g:5104:7:
+ {
+ }
+
+ pushFollow(FOLLOW_2);
+ ruleOpEquality();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred7_InternalRBAModel
+
+ // $ANTLR start synpred8_InternalRBAModel
+ public final void synpred8_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:5277:5: ( ( ( () ruleOpIsGreaterThanEqual ) | ( () ruleOpIsLowerThanEqual ) | ( () ruleOpIsGreaterThan ) | ( () ruleOpIsLowerThan ) ) )
+ // InternalRBAModel.g:5277:6: ( ( () ruleOpIsGreaterThanEqual ) | ( () ruleOpIsLowerThanEqual ) | ( () ruleOpIsGreaterThan ) | ( () ruleOpIsLowerThan ) )
+ {
+ // InternalRBAModel.g:5277:6: ( ( () ruleOpIsGreaterThanEqual ) | ( () ruleOpIsLowerThanEqual ) | ( () ruleOpIsGreaterThan ) | ( () ruleOpIsLowerThan ) )
+ int alt129=4;
+ switch ( input.LA(1) ) {
+ case 81:
+ {
+ alt129=1;
+ }
+ break;
+ case 82:
+ {
+ alt129=2;
+ }
+ break;
+ case 33:
+ {
+ alt129=3;
+ }
+ break;
+ case 32:
+ {
+ alt129=4;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 129, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt129) {
+ case 1 :
+ // InternalRBAModel.g:5278:6: ( () ruleOpIsGreaterThanEqual )
+ {
+ // InternalRBAModel.g:5278:6: ( () ruleOpIsGreaterThanEqual )
+ // InternalRBAModel.g:5279:7: () ruleOpIsGreaterThanEqual
+ {
+ // InternalRBAModel.g:5279:7: ()
+ // InternalRBAModel.g:5280:7:
+ {
+ }
+
+ pushFollow(FOLLOW_2);
+ ruleOpIsGreaterThanEqual();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalRBAModel.g:5284:6: ( () ruleOpIsLowerThanEqual )
+ {
+ // InternalRBAModel.g:5284:6: ( () ruleOpIsLowerThanEqual )
+ // InternalRBAModel.g:5285:7: () ruleOpIsLowerThanEqual
+ {
+ // InternalRBAModel.g:5285:7: ()
+ // InternalRBAModel.g:5286:7:
+ {
+ }
+
+ pushFollow(FOLLOW_2);
+ ruleOpIsLowerThanEqual();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalRBAModel.g:5290:6: ( () ruleOpIsGreaterThan )
+ {
+ // InternalRBAModel.g:5290:6: ( () ruleOpIsGreaterThan )
+ // InternalRBAModel.g:5291:7: () ruleOpIsGreaterThan
+ {
+ // InternalRBAModel.g:5291:7: ()
+ // InternalRBAModel.g:5292:7:
+ {
+ }
+
+ pushFollow(FOLLOW_2);
+ ruleOpIsGreaterThan();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // InternalRBAModel.g:5296:6: ( () ruleOpIsLowerThan )
+ {
+ // InternalRBAModel.g:5296:6: ( () ruleOpIsLowerThan )
+ // InternalRBAModel.g:5297:7: () ruleOpIsLowerThan
+ {
+ // InternalRBAModel.g:5297:7: ()
+ // InternalRBAModel.g:5298:7:
+ {
+ }
+
+ pushFollow(FOLLOW_2);
+ ruleOpIsLowerThan();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred8_InternalRBAModel
+
+ // $ANTLR start synpred9_InternalRBAModel
+ public final void synpred9_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:5595:5: ( '.' )
+ // InternalRBAModel.g:5595:6: '.'
+ {
+ match(input,71,FOLLOW_2); if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred9_InternalRBAModel
+
+ // $ANTLR start synpred11_InternalRBAModel
+ public final void synpred11_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:6210:7: ( ( '(' ( ( ruleEString ) )? ')' ) )
+ // InternalRBAModel.g:6210:8: ( '(' ( ( ruleEString ) )? ')' )
+ {
+ // InternalRBAModel.g:6210:8: ( '(' ( ( ruleEString ) )? ')' )
+ // InternalRBAModel.g:6211:8: '(' ( ( ruleEString ) )? ')'
+ {
+ match(input,34,FOLLOW_59); if (state.failed) return ;
+ // InternalRBAModel.g:6212:8: ( ( ruleEString ) )?
+ int alt131=2;
+ int LA131_0 = input.LA(1);
+
+ if ( (LA131_0==RULE_STRING) ) {
+ alt131=1;
+ }
+ switch (alt131) {
+ case 1 :
+ // InternalRBAModel.g:6213:9: ( ruleEString )
+ {
+ // InternalRBAModel.g:6213:9: ( ruleEString )
+ // InternalRBAModel.g:6214:10: ruleEString
+ {
+ pushFollow(FOLLOW_48);
+ ruleEString();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ match(input,35,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred11_InternalRBAModel
+
+ // $ANTLR start synpred17_InternalRBAModel
+ public final void synpred17_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:7797:5: ( 'THEN' )
+ // InternalRBAModel.g:7797:6: 'THEN'
+ {
+ match(input,129,FOLLOW_2); if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred17_InternalRBAModel
+
+ // $ANTLR start synpred18_InternalRBAModel
+ public final void synpred18_InternalRBAModel_fragment() throws RecognitionException {
+ // InternalRBAModel.g:7825:5: ( 'ELSE' )
+ // InternalRBAModel.g:7825:6: 'ELSE'
+ {
+ match(input,130,FOLLOW_2); if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred18_InternalRBAModel
+
+ // Delegated rules
+
+ public final boolean synpred3_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred3_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred8_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred8_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred9_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred9_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred2_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred2_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred7_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred7_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred4_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred4_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred11_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred11_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred5_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred5_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred6_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred6_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred18_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred18_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred17_InternalRBAModel() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred17_InternalRBAModel_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+
+
+ protected DFA21 dfa21 = new DFA21(this);
+ protected DFA83 dfa83 = new DFA83(this);
+ protected DFA91 dfa91 = new DFA91(this);
+ static final String dfa_1s = "\21\uffff";
+ static final String dfa_2s = "\1\34\1\uffff\16\0\1\uffff";
+ static final String dfa_3s = "\1\u0089\1\uffff\16\0\1\uffff";
+ static final String dfa_4s = "\1\uffff\1\2\16\uffff\1\1";
+ static final String dfa_5s = "\2\uffff\1\10\1\6\1\0\1\1\1\3\1\7\1\2\1\15\1\11\1\4\1\12\1\5\1\13\1\14\1\uffff}>";
+ static final String[] dfa_6s = {
+ "\1\1\1\2\1\1\1\3\4\uffff\1\11\1\12\1\5\1\4\1\15\1\16\5\uffff\1\17\6\uffff\1\13\1\uffff\1\14\116\uffff\1\6\1\7\1\10",
+ "",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ ""
+ };
+
+ static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s);
+ static final char[] dfa_2 = DFA.unpackEncodedStringToUnsignedChars(dfa_2s);
+ static final char[] dfa_3 = DFA.unpackEncodedStringToUnsignedChars(dfa_3s);
+ static final short[] dfa_4 = DFA.unpackEncodedString(dfa_4s);
+ static final short[] dfa_5 = DFA.unpackEncodedString(dfa_5s);
+ static final short[][] dfa_6 = unpackEncodedStringArray(dfa_6s);
+
+ class DFA21 extends DFA {
+
+ public DFA21(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 21;
+ this.eot = dfa_1;
+ this.eof = dfa_1;
+ this.min = dfa_2;
+ this.max = dfa_3;
+ this.accept = dfa_4;
+ this.special = dfa_5;
+ this.transition = dfa_6;
+ }
+ public String getDescription() {
+ return "()+ loopback of 1043:9: ({...}? => ( (lv_packagableelement_7_0= rulePackagableElement ) ) )+";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA21_4 = input.LA(1);
+
+
+ int index21_4 = input.index();
+ input.rewind();
+ s = -1;
+ if ( ((true)) ) {s = 16;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index21_4);
+ if ( s>=0 ) return s;
+ break;
+ case 1 :
+ int LA21_5 = input.LA(1);
+
+
+ int index21_5 = input.index();
+ input.rewind();
+ s = -1;
+ if ( ((true)) ) {s = 16;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index21_5);
+ if ( s>=0 ) return s;
+ break;
+ case 2 :
+ int LA21_8 = input.LA(1);
+
+
+ int index21_8 = input.index();
+ input.rewind();
+ s = -1;
+ if ( ((true)) ) {s = 16;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index21_8);
+ if ( s>=0 ) return s;
+ break;
+ case 3 :
+ int LA21_6 = input.LA(1);
+
+
+ int index21_6 = input.index();
+ input.rewind();
+ s = -1;
+ if ( ((true)) ) {s = 16;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index21_6);
+ if ( s>=0 ) return s;
+ break;
+ case 4 :
+ int LA21_11 = input.LA(1);
+
+
+ int index21_11 = input.index();
+ input.rewind();
+ s = -1;
+ if ( ((true)) ) {s = 16;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index21_11);
+ if ( s>=0 ) return s;
+ break;
+ case 5 :
+ int LA21_13 = input.LA(1);
+
+
+ int index21_13 = input.index();
+ input.rewind();
+ s = -1;
+ if ( ((true)) ) {s = 16;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index21_13);
+ if ( s>=0 ) return s;
+ break;
+ case 6 :
+ int LA21_3 = input.LA(1);
+
+
+ int index21_3 = input.index();
+ input.rewind();
+ s = -1;
+ if ( ((true)) ) {s = 16;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index21_3);
+ if ( s>=0 ) return s;
+ break;
+ case 7 :
+ int LA21_7 = input.LA(1);
+
+
+ int index21_7 = input.index();
+ input.rewind();
+ s = -1;
+ if ( ((true)) ) {s = 16;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index21_7);
+ if ( s>=0 ) return s;
+ break;
+ case 8 :
+ int LA21_2 = input.LA(1);
+
+
+ int index21_2 = input.index();
+ input.rewind();
+ s = -1;
+ if ( ((true)) ) {s = 16;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index21_2);
+ if ( s>=0 ) return s;
+ break;
+ case 9 :
+ int LA21_10 = input.LA(1);
+
+
+ int index21_10 = input.index();
+ input.rewind();
+ s = -1;
+ if ( ((true)) ) {s = 16;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index21_10);
+ if ( s>=0 ) return s;
+ break;
+ case 10 :
+ int LA21_12 = input.LA(1);
+
+
+ int index21_12 = input.index();
+ input.rewind();
+ s = -1;
+ if ( ((true)) ) {s = 16;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index21_12);
+ if ( s>=0 ) return s;
+ break;
+ case 11 :
+ int LA21_14 = input.LA(1);
+
+
+ int index21_14 = input.index();
+ input.rewind();
+ s = -1;
+ if ( ((true)) ) {s = 16;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index21_14);
+ if ( s>=0 ) return s;
+ break;
+ case 12 :
+ int LA21_15 = input.LA(1);
+
+
+ int index21_15 = input.index();
+ input.rewind();
+ s = -1;
+ if ( ((true)) ) {s = 16;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index21_15);
+ if ( s>=0 ) return s;
+ break;
+ case 13 :
+ int LA21_9 = input.LA(1);
+
+
+ int index21_9 = input.index();
+ input.rewind();
+ s = -1;
+ if ( ((true)) ) {s = 16;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index21_9);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 21, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String dfa_7s = "\15\uffff";
+ static final String dfa_8s = "\1\4\14\uffff";
+ static final String dfa_9s = "\1\u0096\14\uffff";
+ static final String dfa_10s = "\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14";
+ static final String dfa_11s = "\15\uffff}>";
+ static final String[] dfa_12s = {
+ "\1\5\2\uffff\1\1\22\uffff\1\10\7\uffff\1\14\125\uffff\4\3\1\4\1\2\1\7\1\6\1\11\2\uffff\1\12\1\13\17\uffff\1\5\1\uffff\1\1",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ };
+
+ static final short[] dfa_7 = DFA.unpackEncodedString(dfa_7s);
+ static final char[] dfa_8 = DFA.unpackEncodedStringToUnsignedChars(dfa_8s);
+ static final char[] dfa_9 = DFA.unpackEncodedStringToUnsignedChars(dfa_9s);
+ static final short[] dfa_10 = DFA.unpackEncodedString(dfa_10s);
+ static final short[] dfa_11 = DFA.unpackEncodedString(dfa_11s);
+ static final short[][] dfa_12 = unpackEncodedStringArray(dfa_12s);
+
+ class DFA83 extends DFA {
+
+ public DFA83(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 83;
+ this.eot = dfa_7;
+ this.eof = dfa_7;
+ this.min = dfa_8;
+ this.max = dfa_9;
+ this.accept = dfa_10;
+ this.special = dfa_11;
+ this.transition = dfa_12;
+ }
+ public String getDescription() {
+ return "7191:2: (this_CMemberFeatureReference_0= ruleCMemberFeatureReference | this_PreviousModifier_1= rulePreviousModifier | this_AllInstanceOfExpression_2= ruleAllInstanceOfExpression | this_NullExpression_3= ruleNullExpression | this_IntegerValue_4= ruleIntegerValue | this_MuteLowerPriority_5= ruleMuteLowerPriority | this_HideLowerPriority_6= ruleHideLowerPriority | this_SetOfOperator_7= ruleSetOfOperator | this_IfStatement_8= ruleIfStatement | this_ForAllOperator_9= ruleForAllOperator | this_ExistsOperator_10= ruleExistsOperator | (otherlv_11= '(' this_CExpression_12= ruleCExpression otherlv_13= ')' ) )";
+ }
+ }
+ static final String dfa_13s = "\6\uffff";
+ static final String dfa_14s = "\1\4\1\34\2\uffff\1\7\1\34";
+ static final String dfa_15s = "\1\u0096\1\u0085\2\uffff\1\167\1\u0085";
+ static final String dfa_16s = "\2\uffff\1\1\1\2\2\uffff";
+ static final String dfa_17s = "\6\uffff}>";
+ static final String[] dfa_18s = {
+ "\1\3\2\uffff\1\1\22\uffff\1\3\7\uffff\1\3\60\uffff\1\3\44\uffff\11\3\2\uffff\2\3\1\2\1\3\15\uffff\1\3\1\uffff\1\3",
+ "\1\3\3\uffff\2\3\43\uffff\1\3\1\uffff\1\4\4\uffff\7\3\62\uffff\1\2",
+ "",
+ "",
+ "\1\5\114\uffff\44\3",
+ "\1\3\3\uffff\2\3\43\uffff\1\3\1\uffff\1\4\4\uffff\7\3\62\uffff\1\2"
+ };
+
+ static final short[] dfa_13 = DFA.unpackEncodedString(dfa_13s);
+ static final char[] dfa_14 = DFA.unpackEncodedStringToUnsignedChars(dfa_14s);
+ static final char[] dfa_15 = DFA.unpackEncodedStringToUnsignedChars(dfa_15s);
+ static final short[] dfa_16 = DFA.unpackEncodedString(dfa_16s);
+ static final short[] dfa_17 = DFA.unpackEncodedString(dfa_17s);
+ static final short[][] dfa_18 = unpackEncodedStringArray(dfa_18s);
+
+ class DFA91 extends DFA {
+
+ public DFA91(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 91;
+ this.eot = dfa_13;
+ this.eof = dfa_13;
+ this.min = dfa_14;
+ this.max = dfa_15;
+ this.accept = dfa_16;
+ this.special = dfa_17;
+ this.transition = dfa_18;
+ }
+ public String getDescription() {
+ return "8039:3: ( ( (lv_x_2_0= ruleVariable ) )? otherlv_3= '|' )?";
+ }
+ }
+
+
+ public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_2 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x0000000000000080L});
+ public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000020080002L,0x0000000000000004L});
+ public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000020080002L});
+ public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000020000002L});
+ public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000200002L});
+ public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000000000010L,0x0000000000000000L,0x0000000000100000L});
+ public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000800000L});
+ public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000004000002L});
+ public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000002000000L});
+ public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000010000020L});
+ public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000018000000L});
+ public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000000000020L});
+ public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000004000000L});
+ public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x014083F0F0000000L,0x0000000000000000L,0x0000000000000380L});
+ public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000100000000L});
+ public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x000000F000000000L});
+ public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000200000000L});
+ public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000400000000L});
+ public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000800000080L});
+ public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000000808000000L});
+ public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000000000000042L});
+ public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x034483F0F0000000L,0x0000000000000000L,0x0000000000000380L});
+ public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000040454000090L,0xFF00000000080000L,0x0000000000500059L});
+ public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x00000000000C0000L});
+ public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x01449BF0F1400000L,0x0000000000000001L,0x0000000000000380L});
+ public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x000000E000000000L});
+ public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000200000000000L});
+ public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0000400000000080L});
+ public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000400008000000L});
+ public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0003000050000000L});
+ public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0034000050000000L});
+ public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0080000050000000L});
+ public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0400000050000000L});
+ public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x000000000000C800L});
+ public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x79449BF0F1400000L,0x0000000000000001L,0x0000000000000380L});
+ public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x000000000F800000L});
+ public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x0000000700800010L,0x0000000000000F60L,0x0000000000100000L});
+ public static final BitSet FOLLOW_40 = new BitSet(new long[]{0xB9449BF0F1400000L,0x0000000000000001L,0x0000000000000380L});
+ public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x2000000050000000L,0x0000000000000002L});
+ public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x0000000004000080L});
+ public static final BitSet FOLLOW_43 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
+ public static final BitSet FOLLOW_44 = new BitSet(new long[]{0x0000000010000000L});
+ public static final BitSet FOLLOW_45 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000010L});
+ public static final BitSet FOLLOW_46 = new BitSet(new long[]{0x0000000000000002L,0x0000000000004000L});
+ public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x0000000400000010L,0x0000000000000F40L,0x0000000000100000L});
+ public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x0000000800000000L});
+ public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x0000000000000082L});
+ public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000080L});
+ public static final BitSet FOLLOW_51 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001000L});
+ public static final BitSet FOLLOW_52 = new BitSet(new long[]{0x0000040444000090L,0xFF00000000080000L,0x0000000000500059L});
+ public static final BitSet FOLLOW_53 = new BitSet(new long[]{0x0000000000000002L,0x0000000000002000L});
+ public static final BitSet FOLLOW_54 = new BitSet(new long[]{0x0000000000000002L,0x0000000000018020L});
+ public static final BitSet FOLLOW_55 = new BitSet(new long[]{0x0000000300000002L,0x0000000000060000L});
+ public static final BitSet FOLLOW_56 = new BitSet(new long[]{0x0000000000000000L,0x00FFFFFFFFF00000L});
+ public static final BitSet FOLLOW_57 = new BitSet(new long[]{0x0000040C44000090L,0xFF00000000080000L,0x0000000000500059L});
+ public static final BitSet FOLLOW_58 = new BitSet(new long[]{0x0000000400000002L,0x0000000000000080L});
+ public static final BitSet FOLLOW_59 = new BitSet(new long[]{0x0000000800000020L});
+ public static final BitSet FOLLOW_60 = new BitSet(new long[]{0x0000000000000080L,0x0000000000000000L,0x0000000000400000L});
+ public static final BitSet FOLLOW_61 = new BitSet(new long[]{0x0000000008000000L});
+ public static final BitSet FOLLOW_62 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000006L});
+ public static final BitSet FOLLOW_63 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000004L});
+ public static final BitSet FOLLOW_64 = new BitSet(new long[]{0x0000040444000090L,0xFF00000000080000L,0x0000000000500079L});
+ public static final BitSet FOLLOW_65 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000020L});
+ public static final BitSet FOLLOW_66 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000020L});
+ public static final BitSet FOLLOW_67 = new BitSet(new long[]{0x0080100050000000L});
+ public static final BitSet FOLLOW_68 = new BitSet(new long[]{0x0000000050100000L,0x0000000000000000L,0x0000000000000400L});
+ public static final BitSet FOLLOW_69 = new BitSet(new long[]{0x0000000010000000L,0x0000000000000000L,0x0000000000003000L});
+ public static final BitSet FOLLOW_70 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000001FF0000000L});
+ public static final BitSet FOLLOW_71 = new BitSet(new long[]{0x0000000010000000L,0x0000000000000000L,0x0000000000010000L});
+ public static final BitSet FOLLOW_72 = new BitSet(new long[]{0x0038000010000000L,0x0000000000000000L,0x0000000000021000L});
+ public static final BitSet FOLLOW_73 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_74 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000200000L});
+
+}
diff --git a/rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/CTag.java b/rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/CTag.java
new file mode 100644
index 0000000..bd947f0
--- /dev/null
+++ b/rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/CTag.java
@@ -0,0 +1,20 @@
+/**
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.rbaEditorModel;
+
+import rba.core.Tag;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>CTag</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see rba.tool.editor.rbaEditorModel.RbaEditorModelPackage#getCTag()
+ * @model
+ * @generated
+ */
+public interface CTag extends Tag
+{
+} // CTag
diff --git a/rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/Import.java b/rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/Import.java
new file mode 100644
index 0000000..b131454
--- /dev/null
+++ b/rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/Import.java
@@ -0,0 +1,52 @@
+/**
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.rbaEditorModel;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Import</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link rba.tool.editor.rbaEditorModel.Import#getImportedNamespace <em>Imported Namespace</em>}</li>
+ * </ul>
+ *
+ * @see rba.tool.editor.rbaEditorModel.RbaEditorModelPackage#getImport()
+ * @model
+ * @generated
+ */
+public interface Import extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Imported Namespace</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Imported Namespace</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Imported Namespace</em>' attribute.
+ * @see #setImportedNamespace(String)
+ * @see rba.tool.editor.rbaEditorModel.RbaEditorModelPackage#getImport_ImportedNamespace()
+ * @model
+ * @generated
+ */
+ String getImportedNamespace();
+
+ /**
+ * Sets the value of the '{@link rba.tool.editor.rbaEditorModel.Import#getImportedNamespace <em>Imported Namespace</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Imported Namespace</em>' attribute.
+ * @see #getImportedNamespace()
+ * @generated
+ */
+ void setImportedNamespace(String value);
+
+} // Import
diff --git a/rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/MemberFeatureReference.java b/rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/MemberFeatureReference.java
new file mode 100644
index 0000000..abf2570
--- /dev/null
+++ b/rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/MemberFeatureReference.java
@@ -0,0 +1,44 @@
+/**
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.rbaEditorModel;
+
+import org.eclipse.emf.common.util.EList;
+
+import rba.core.ObjectReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Member Feature Reference</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link rba.tool.editor.rbaEditorModel.MemberFeatureReference#getOperand <em>Operand</em>}</li>
+ * </ul>
+ *
+ * @see rba.tool.editor.rbaEditorModel.RbaEditorModelPackage#getMemberFeatureReference()
+ * @model
+ * @generated
+ */
+public interface MemberFeatureReference extends ObjectReference
+{
+ /**
+ * Returns the value of the '<em><b>Operand</b></em>' containment reference list.
+ * The list contents are of type {@link rba.core.ObjectReference}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Operand</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>Operand</em>' containment reference list.
+ * @see rba.tool.editor.rbaEditorModel.RbaEditorModelPackage#getMemberFeatureReference_Operand()
+ * @model containment="true"
+ * @generated
+ */
+ EList<ObjectReference> getOperand();
+
+} // MemberFeatureReference
diff --git a/rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/RbaEditorModelFactory.java b/rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/RbaEditorModelFactory.java
new file mode 100644
index 0000000..43a2beb
--- /dev/null
+++ b/rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/RbaEditorModelFactory.java
@@ -0,0 +1,71 @@
+/**
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.rbaEditorModel;
+
+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 rba.tool.editor.rbaEditorModel.RbaEditorModelPackage
+ * @generated
+ */
+public interface RbaEditorModelFactory extends EFactory
+{
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ RbaEditorModelFactory eINSTANCE = rba.tool.editor.rbaEditorModel.impl.RbaEditorModelFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Top Level</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Top Level</em>'.
+ * @generated
+ */
+ TopLevel createTopLevel();
+
+ /**
+ * Returns a new object of class '<em>Import</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Import</em>'.
+ * @generated
+ */
+ Import createImport();
+
+ /**
+ * Returns a new object of class '<em>CTag</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>CTag</em>'.
+ * @generated
+ */
+ CTag createCTag();
+
+ /**
+ * Returns a new object of class '<em>Member Feature Reference</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Member Feature Reference</em>'.
+ * @generated
+ */
+ MemberFeatureReference createMemberFeatureReference();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ RbaEditorModelPackage getRbaEditorModelPackage();
+
+} //RbaEditorModelFactory
diff --git a/rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/RbaEditorModelPackage.java b/rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/RbaEditorModelPackage.java
new file mode 100644
index 0000000..86efd0b
--- /dev/null
+++ b/rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/RbaEditorModelPackage.java
@@ -0,0 +1,447 @@
+/**
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.rbaEditorModel;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import rba.core.RBACorePackage;
+
+/**
+ * <!-- 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 rba.tool.editor.rbaEditorModel.RbaEditorModelFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface RbaEditorModelPackage extends EPackage
+{
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "rbaEditorModel";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.denso.com/ict/rbatooleditor";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "rbaEditorModel";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ RbaEditorModelPackage eINSTANCE = rba.tool.editor.rbaEditorModel.impl.RbaEditorModelPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link rba.tool.editor.rbaEditorModel.impl.TopLevelImpl <em>Top Level</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.tool.editor.rbaEditorModel.impl.TopLevelImpl
+ * @see rba.tool.editor.rbaEditorModel.impl.RbaEditorModelPackageImpl#getTopLevel()
+ * @generated
+ */
+ int TOP_LEVEL = 0;
+
+ /**
+ * The feature id for the '<em><b>Project</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TOP_LEVEL__PROJECT = 0;
+
+ /**
+ * The feature id for the '<em><b>Imports</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TOP_LEVEL__IMPORTS = 1;
+
+ /**
+ * The feature id for the '<em><b>Packages</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TOP_LEVEL__PACKAGES = 2;
+
+ /**
+ * The number of structural features of the '<em>Top Level</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TOP_LEVEL_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link rba.tool.editor.rbaEditorModel.impl.ImportImpl <em>Import</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.tool.editor.rbaEditorModel.impl.ImportImpl
+ * @see rba.tool.editor.rbaEditorModel.impl.RbaEditorModelPackageImpl#getImport()
+ * @generated
+ */
+ int IMPORT = 1;
+
+ /**
+ * The feature id for the '<em><b>Imported Namespace</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMPORT__IMPORTED_NAMESPACE = 0;
+
+ /**
+ * The number of structural features of the '<em>Import</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMPORT_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link rba.tool.editor.rbaEditorModel.impl.CTagImpl <em>CTag</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.tool.editor.rbaEditorModel.impl.CTagImpl
+ * @see rba.tool.editor.rbaEditorModel.impl.RbaEditorModelPackageImpl#getCTag()
+ * @generated
+ */
+ int CTAG = 2;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CTAG__DESCRIPTION = RBACorePackage.TAG__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CTAG__NAME = RBACorePackage.TAG__NAME;
+
+ /**
+ * The feature id for the '<em><b>Values</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CTAG__VALUES = RBACorePackage.TAG__VALUES;
+
+ /**
+ * The number of structural features of the '<em>CTag</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CTAG_FEATURE_COUNT = RBACorePackage.TAG_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link rba.tool.editor.rbaEditorModel.impl.MemberFeatureReferenceImpl <em>Member Feature Reference</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.tool.editor.rbaEditorModel.impl.MemberFeatureReferenceImpl
+ * @see rba.tool.editor.rbaEditorModel.impl.RbaEditorModelPackageImpl#getMemberFeatureReference()
+ * @generated
+ */
+ int MEMBER_FEATURE_REFERENCE = 3;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MEMBER_FEATURE_REFERENCE__TYPE = RBACorePackage.OBJECT_REFERENCE__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MEMBER_FEATURE_REFERENCE__EXPRESSION = RBACorePackage.OBJECT_REFERENCE__EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Let Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MEMBER_FEATURE_REFERENCE__LET_STATEMENTS = RBACorePackage.OBJECT_REFERENCE__LET_STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Ref Object</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MEMBER_FEATURE_REFERENCE__REF_OBJECT = RBACorePackage.OBJECT_REFERENCE__REF_OBJECT;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MEMBER_FEATURE_REFERENCE__OPERAND = RBACorePackage.OBJECT_REFERENCE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Member Feature Reference</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MEMBER_FEATURE_REFERENCE_FEATURE_COUNT = RBACorePackage.OBJECT_REFERENCE_FEATURE_COUNT + 1;
+
+
+ /**
+ * Returns the meta object for class '{@link rba.tool.editor.rbaEditorModel.TopLevel <em>Top Level</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Top Level</em>'.
+ * @see rba.tool.editor.rbaEditorModel.TopLevel
+ * @generated
+ */
+ EClass getTopLevel();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link rba.tool.editor.rbaEditorModel.TopLevel#getProject <em>Project</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Project</em>'.
+ * @see rba.tool.editor.rbaEditorModel.TopLevel#getProject()
+ * @see #getTopLevel()
+ * @generated
+ */
+ EReference getTopLevel_Project();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link rba.tool.editor.rbaEditorModel.TopLevel#getImports <em>Imports</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Imports</em>'.
+ * @see rba.tool.editor.rbaEditorModel.TopLevel#getImports()
+ * @see #getTopLevel()
+ * @generated
+ */
+ EReference getTopLevel_Imports();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link rba.tool.editor.rbaEditorModel.TopLevel#getPackages <em>Packages</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Packages</em>'.
+ * @see rba.tool.editor.rbaEditorModel.TopLevel#getPackages()
+ * @see #getTopLevel()
+ * @generated
+ */
+ EReference getTopLevel_Packages();
+
+ /**
+ * Returns the meta object for class '{@link rba.tool.editor.rbaEditorModel.Import <em>Import</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Import</em>'.
+ * @see rba.tool.editor.rbaEditorModel.Import
+ * @generated
+ */
+ EClass getImport();
+
+ /**
+ * Returns the meta object for the attribute '{@link rba.tool.editor.rbaEditorModel.Import#getImportedNamespace <em>Imported Namespace</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Imported Namespace</em>'.
+ * @see rba.tool.editor.rbaEditorModel.Import#getImportedNamespace()
+ * @see #getImport()
+ * @generated
+ */
+ EAttribute getImport_ImportedNamespace();
+
+ /**
+ * Returns the meta object for class '{@link rba.tool.editor.rbaEditorModel.CTag <em>CTag</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>CTag</em>'.
+ * @see rba.tool.editor.rbaEditorModel.CTag
+ * @generated
+ */
+ EClass getCTag();
+
+ /**
+ * Returns the meta object for class '{@link rba.tool.editor.rbaEditorModel.MemberFeatureReference <em>Member Feature Reference</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Member Feature Reference</em>'.
+ * @see rba.tool.editor.rbaEditorModel.MemberFeatureReference
+ * @generated
+ */
+ EClass getMemberFeatureReference();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link rba.tool.editor.rbaEditorModel.MemberFeatureReference#getOperand <em>Operand</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Operand</em>'.
+ * @see rba.tool.editor.rbaEditorModel.MemberFeatureReference#getOperand()
+ * @see #getMemberFeatureReference()
+ * @generated
+ */
+ EReference getMemberFeatureReference_Operand();
+
+ /**
+ * 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
+ */
+ RbaEditorModelFactory getRbaEditorModelFactory();
+
+ /**
+ * <!-- 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 rba.tool.editor.rbaEditorModel.impl.TopLevelImpl <em>Top Level</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.tool.editor.rbaEditorModel.impl.TopLevelImpl
+ * @see rba.tool.editor.rbaEditorModel.impl.RbaEditorModelPackageImpl#getTopLevel()
+ * @generated
+ */
+ EClass TOP_LEVEL = eINSTANCE.getTopLevel();
+
+ /**
+ * The meta object literal for the '<em><b>Project</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TOP_LEVEL__PROJECT = eINSTANCE.getTopLevel_Project();
+
+ /**
+ * The meta object literal for the '<em><b>Imports</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TOP_LEVEL__IMPORTS = eINSTANCE.getTopLevel_Imports();
+
+ /**
+ * The meta object literal for the '<em><b>Packages</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TOP_LEVEL__PACKAGES = eINSTANCE.getTopLevel_Packages();
+
+ /**
+ * The meta object literal for the '{@link rba.tool.editor.rbaEditorModel.impl.ImportImpl <em>Import</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.tool.editor.rbaEditorModel.impl.ImportImpl
+ * @see rba.tool.editor.rbaEditorModel.impl.RbaEditorModelPackageImpl#getImport()
+ * @generated
+ */
+ EClass IMPORT = eINSTANCE.getImport();
+
+ /**
+ * The meta object literal for the '<em><b>Imported Namespace</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute IMPORT__IMPORTED_NAMESPACE = eINSTANCE.getImport_ImportedNamespace();
+
+ /**
+ * The meta object literal for the '{@link rba.tool.editor.rbaEditorModel.impl.CTagImpl <em>CTag</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.tool.editor.rbaEditorModel.impl.CTagImpl
+ * @see rba.tool.editor.rbaEditorModel.impl.RbaEditorModelPackageImpl#getCTag()
+ * @generated
+ */
+ EClass CTAG = eINSTANCE.getCTag();
+
+ /**
+ * The meta object literal for the '{@link rba.tool.editor.rbaEditorModel.impl.MemberFeatureReferenceImpl <em>Member Feature Reference</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see rba.tool.editor.rbaEditorModel.impl.MemberFeatureReferenceImpl
+ * @see rba.tool.editor.rbaEditorModel.impl.RbaEditorModelPackageImpl#getMemberFeatureReference()
+ * @generated
+ */
+ EClass MEMBER_FEATURE_REFERENCE = eINSTANCE.getMemberFeatureReference();
+
+ /**
+ * The meta object literal for the '<em><b>Operand</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MEMBER_FEATURE_REFERENCE__OPERAND = eINSTANCE.getMemberFeatureReference_Operand();
+
+ }
+
+} //RbaEditorModelPackage
diff --git a/rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/TopLevel.java b/rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/TopLevel.java
new file mode 100644
index 0000000..fed924f
--- /dev/null
+++ b/rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/TopLevel.java
@@ -0,0 +1,80 @@
+/**
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.rbaEditorModel;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+import rba.core.Project;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Top Level</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link rba.tool.editor.rbaEditorModel.TopLevel#getProject <em>Project</em>}</li>
+ * <li>{@link rba.tool.editor.rbaEditorModel.TopLevel#getImports <em>Imports</em>}</li>
+ * <li>{@link rba.tool.editor.rbaEditorModel.TopLevel#getPackages <em>Packages</em>}</li>
+ * </ul>
+ *
+ * @see rba.tool.editor.rbaEditorModel.RbaEditorModelPackage#getTopLevel()
+ * @model
+ * @generated
+ */
+public interface TopLevel extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Project</b></em>' containment reference list.
+ * The list contents are of type {@link rba.core.Project}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Project</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>Project</em>' containment reference list.
+ * @see rba.tool.editor.rbaEditorModel.RbaEditorModelPackage#getTopLevel_Project()
+ * @model containment="true"
+ * @generated
+ */
+ EList<Project> getProject();
+
+ /**
+ * Returns the value of the '<em><b>Imports</b></em>' containment reference list.
+ * The list contents are of type {@link rba.tool.editor.rbaEditorModel.Import}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Imports</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>Imports</em>' containment reference list.
+ * @see rba.tool.editor.rbaEditorModel.RbaEditorModelPackage#getTopLevel_Imports()
+ * @model containment="true"
+ * @generated
+ */
+ EList<Import> getImports();
+
+ /**
+ * Returns the value of the '<em><b>Packages</b></em>' containment reference list.
+ * The list contents are of type {@link rba.core.Package}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Packages</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>Packages</em>' containment reference list.
+ * @see rba.tool.editor.rbaEditorModel.RbaEditorModelPackage#getTopLevel_Packages()
+ * @model containment="true"
+ * @generated
+ */
+ EList<rba.core.Package> getPackages();
+
+} // TopLevel
diff --git a/rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/impl/CTagImpl.java b/rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/impl/CTagImpl.java
new file mode 100644
index 0000000..a39f3a8
--- /dev/null
+++ b/rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/impl/CTagImpl.java
@@ -0,0 +1,43 @@
+/**
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.rbaEditorModel.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import rba.core.impl.TagImpl;
+
+import rba.tool.editor.rbaEditorModel.CTag;
+import rba.tool.editor.rbaEditorModel.RbaEditorModelPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>CTag</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class CTagImpl extends TagImpl implements CTag
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CTagImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return RbaEditorModelPackage.Literals.CTAG;
+ }
+
+} //CTagImpl
diff --git a/rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/impl/ImportImpl.java b/rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/impl/ImportImpl.java
new file mode 100644
index 0000000..6dbfd2f
--- /dev/null
+++ b/rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/impl/ImportImpl.java
@@ -0,0 +1,178 @@
+/**
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.rbaEditorModel.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import rba.tool.editor.rbaEditorModel.Import;
+import rba.tool.editor.rbaEditorModel.RbaEditorModelPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Import</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link rba.tool.editor.rbaEditorModel.impl.ImportImpl#getImportedNamespace <em>Imported Namespace</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ImportImpl extends MinimalEObjectImpl.Container implements Import
+{
+ /**
+ * The default value of the '{@link #getImportedNamespace() <em>Imported Namespace</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getImportedNamespace()
+ * @generated
+ * @ordered
+ */
+ protected static final String IMPORTED_NAMESPACE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getImportedNamespace() <em>Imported Namespace</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getImportedNamespace()
+ * @generated
+ * @ordered
+ */
+ protected String importedNamespace = IMPORTED_NAMESPACE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ImportImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return RbaEditorModelPackage.Literals.IMPORT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getImportedNamespace()
+ {
+ return importedNamespace;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setImportedNamespace(String newImportedNamespace)
+ {
+ String oldImportedNamespace = importedNamespace;
+ importedNamespace = newImportedNamespace;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RbaEditorModelPackage.IMPORT__IMPORTED_NAMESPACE, oldImportedNamespace, importedNamespace));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case RbaEditorModelPackage.IMPORT__IMPORTED_NAMESPACE:
+ return getImportedNamespace();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case RbaEditorModelPackage.IMPORT__IMPORTED_NAMESPACE:
+ setImportedNamespace((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case RbaEditorModelPackage.IMPORT__IMPORTED_NAMESPACE:
+ setImportedNamespace(IMPORTED_NAMESPACE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case RbaEditorModelPackage.IMPORT__IMPORTED_NAMESPACE:
+ return IMPORTED_NAMESPACE_EDEFAULT == null ? importedNamespace != null : !IMPORTED_NAMESPACE_EDEFAULT.equals(importedNamespace);
+ }
+ 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(" (importedNamespace: ");
+ result.append(importedNamespace);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ImportImpl
diff --git a/rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/impl/MemberFeatureReferenceImpl.java b/rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/impl/MemberFeatureReferenceImpl.java
new file mode 100644
index 0000000..74e0ec2
--- /dev/null
+++ b/rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/impl/MemberFeatureReferenceImpl.java
@@ -0,0 +1,169 @@
+/**
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.rbaEditorModel.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.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import rba.core.ObjectReference;
+
+import rba.core.impl.ObjectReferenceImpl;
+
+import rba.tool.editor.rbaEditorModel.MemberFeatureReference;
+import rba.tool.editor.rbaEditorModel.RbaEditorModelPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Member Feature Reference</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link rba.tool.editor.rbaEditorModel.impl.MemberFeatureReferenceImpl#getOperand <em>Operand</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class MemberFeatureReferenceImpl extends ObjectReferenceImpl implements MemberFeatureReference
+{
+ /**
+ * The cached value of the '{@link #getOperand() <em>Operand</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOperand()
+ * @generated
+ * @ordered
+ */
+ protected EList<ObjectReference> operand;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MemberFeatureReferenceImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return RbaEditorModelPackage.Literals.MEMBER_FEATURE_REFERENCE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<ObjectReference> getOperand()
+ {
+ if (operand == null)
+ {
+ operand = new EObjectContainmentEList<ObjectReference>(ObjectReference.class, this, RbaEditorModelPackage.MEMBER_FEATURE_REFERENCE__OPERAND);
+ }
+ return operand;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case RbaEditorModelPackage.MEMBER_FEATURE_REFERENCE__OPERAND:
+ return ((InternalEList<?>)getOperand()).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 RbaEditorModelPackage.MEMBER_FEATURE_REFERENCE__OPERAND:
+ return getOperand();
+ }
+ 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 RbaEditorModelPackage.MEMBER_FEATURE_REFERENCE__OPERAND:
+ getOperand().clear();
+ getOperand().addAll((Collection<? extends ObjectReference>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case RbaEditorModelPackage.MEMBER_FEATURE_REFERENCE__OPERAND:
+ getOperand().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case RbaEditorModelPackage.MEMBER_FEATURE_REFERENCE__OPERAND:
+ return operand != null && !operand.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //MemberFeatureReferenceImpl
diff --git a/rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/impl/RbaEditorModelFactoryImpl.java b/rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/impl/RbaEditorModelFactoryImpl.java
new file mode 100644
index 0000000..3bcb57c
--- /dev/null
+++ b/rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/impl/RbaEditorModelFactoryImpl.java
@@ -0,0 +1,143 @@
+/**
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.rbaEditorModel.impl;
+
+import org.eclipse.emf.ecore.EClass;
+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 rba.tool.editor.rbaEditorModel.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class RbaEditorModelFactoryImpl extends EFactoryImpl implements RbaEditorModelFactory
+{
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static RbaEditorModelFactory init()
+ {
+ try
+ {
+ RbaEditorModelFactory theRbaEditorModelFactory = (RbaEditorModelFactory)EPackage.Registry.INSTANCE.getEFactory(RbaEditorModelPackage.eNS_URI);
+ if (theRbaEditorModelFactory != null)
+ {
+ return theRbaEditorModelFactory;
+ }
+ }
+ catch (Exception exception)
+ {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new RbaEditorModelFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RbaEditorModelFactoryImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass)
+ {
+ switch (eClass.getClassifierID())
+ {
+ case RbaEditorModelPackage.TOP_LEVEL: return createTopLevel();
+ case RbaEditorModelPackage.IMPORT: return createImport();
+ case RbaEditorModelPackage.CTAG: return createCTag();
+ case RbaEditorModelPackage.MEMBER_FEATURE_REFERENCE: return createMemberFeatureReference();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TopLevel createTopLevel()
+ {
+ TopLevelImpl topLevel = new TopLevelImpl();
+ return topLevel;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Import createImport()
+ {
+ ImportImpl import_ = new ImportImpl();
+ return import_;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CTag createCTag()
+ {
+ CTagImpl cTag = new CTagImpl();
+ return cTag;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MemberFeatureReference createMemberFeatureReference()
+ {
+ MemberFeatureReferenceImpl memberFeatureReference = new MemberFeatureReferenceImpl();
+ return memberFeatureReference;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RbaEditorModelPackage getRbaEditorModelPackage()
+ {
+ return (RbaEditorModelPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static RbaEditorModelPackage getPackage()
+ {
+ return RbaEditorModelPackage.eINSTANCE;
+ }
+
+} //RbaEditorModelFactoryImpl
diff --git a/rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/impl/RbaEditorModelPackageImpl.java b/rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/impl/RbaEditorModelPackageImpl.java
new file mode 100644
index 0000000..d2cb8f2
--- /dev/null
+++ b/rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/impl/RbaEditorModelPackageImpl.java
@@ -0,0 +1,311 @@
+/**
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.rbaEditorModel.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import rba.core.RBACorePackage;
+
+import rba.tool.editor.rbaEditorModel.CTag;
+import rba.tool.editor.rbaEditorModel.Import;
+import rba.tool.editor.rbaEditorModel.MemberFeatureReference;
+import rba.tool.editor.rbaEditorModel.RbaEditorModelFactory;
+import rba.tool.editor.rbaEditorModel.RbaEditorModelPackage;
+import rba.tool.editor.rbaEditorModel.TopLevel;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class RbaEditorModelPackageImpl extends EPackageImpl implements RbaEditorModelPackage
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass topLevelEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass importEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass cTagEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass memberFeatureReferenceEClass = 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 rba.tool.editor.rbaEditorModel.RbaEditorModelPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private RbaEditorModelPackageImpl()
+ {
+ super(eNS_URI, RbaEditorModelFactory.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 RbaEditorModelPackage#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 RbaEditorModelPackage init()
+ {
+ if (isInited) return (RbaEditorModelPackage)EPackage.Registry.INSTANCE.getEPackage(RbaEditorModelPackage.eNS_URI);
+
+ // Obtain or create and register package
+ RbaEditorModelPackageImpl theRbaEditorModelPackage = (RbaEditorModelPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof RbaEditorModelPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new RbaEditorModelPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ RBACorePackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ theRbaEditorModelPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theRbaEditorModelPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theRbaEditorModelPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(RbaEditorModelPackage.eNS_URI, theRbaEditorModelPackage);
+ return theRbaEditorModelPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTopLevel()
+ {
+ return topLevelEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTopLevel_Project()
+ {
+ return (EReference)topLevelEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTopLevel_Imports()
+ {
+ return (EReference)topLevelEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTopLevel_Packages()
+ {
+ return (EReference)topLevelEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getImport()
+ {
+ return importEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getImport_ImportedNamespace()
+ {
+ return (EAttribute)importEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCTag()
+ {
+ return cTagEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getMemberFeatureReference()
+ {
+ return memberFeatureReferenceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getMemberFeatureReference_Operand()
+ {
+ return (EReference)memberFeatureReferenceEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RbaEditorModelFactory getRbaEditorModelFactory()
+ {
+ return (RbaEditorModelFactory)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
+ topLevelEClass = createEClass(TOP_LEVEL);
+ createEReference(topLevelEClass, TOP_LEVEL__PROJECT);
+ createEReference(topLevelEClass, TOP_LEVEL__IMPORTS);
+ createEReference(topLevelEClass, TOP_LEVEL__PACKAGES);
+
+ importEClass = createEClass(IMPORT);
+ createEAttribute(importEClass, IMPORT__IMPORTED_NAMESPACE);
+
+ cTagEClass = createEClass(CTAG);
+
+ memberFeatureReferenceEClass = createEClass(MEMBER_FEATURE_REFERENCE);
+ createEReference(memberFeatureReferenceEClass, MEMBER_FEATURE_REFERENCE__OPERAND);
+ }
+
+ /**
+ * <!-- 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);
+
+ // Obtain other dependent packages
+ RBACorePackage theRBACorePackage = (RBACorePackage)EPackage.Registry.INSTANCE.getEPackage(RBACorePackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ cTagEClass.getESuperTypes().add(theRBACorePackage.getTag());
+ memberFeatureReferenceEClass.getESuperTypes().add(theRBACorePackage.getObjectReference());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(topLevelEClass, TopLevel.class, "TopLevel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getTopLevel_Project(), theRBACorePackage.getProject(), null, "project", null, 0, -1, TopLevel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getTopLevel_Imports(), this.getImport(), null, "imports", null, 0, -1, TopLevel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getTopLevel_Packages(), theRBACorePackage.getPackage(), null, "packages", null, 0, -1, TopLevel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(importEClass, Import.class, "Import", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getImport_ImportedNamespace(), ecorePackage.getEString(), "importedNamespace", null, 0, 1, Import.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(cTagEClass, CTag.class, "CTag", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(memberFeatureReferenceEClass, MemberFeatureReference.class, "MemberFeatureReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getMemberFeatureReference_Operand(), theRBACorePackage.getObjectReference(), null, "operand", null, 0, -1, MemberFeatureReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} //RbaEditorModelPackageImpl
diff --git a/rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/impl/TopLevelImpl.java b/rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/impl/TopLevelImpl.java
new file mode 100644
index 0000000..0707e18
--- /dev/null
+++ b/rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/impl/TopLevelImpl.java
@@ -0,0 +1,246 @@
+/**
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.rbaEditorModel.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 rba.core.Project;
+
+import rba.tool.editor.rbaEditorModel.Import;
+import rba.tool.editor.rbaEditorModel.RbaEditorModelPackage;
+import rba.tool.editor.rbaEditorModel.TopLevel;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Top Level</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link rba.tool.editor.rbaEditorModel.impl.TopLevelImpl#getProject <em>Project</em>}</li>
+ * <li>{@link rba.tool.editor.rbaEditorModel.impl.TopLevelImpl#getImports <em>Imports</em>}</li>
+ * <li>{@link rba.tool.editor.rbaEditorModel.impl.TopLevelImpl#getPackages <em>Packages</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class TopLevelImpl extends MinimalEObjectImpl.Container implements TopLevel
+{
+ /**
+ * The cached value of the '{@link #getProject() <em>Project</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getProject()
+ * @generated
+ * @ordered
+ */
+ protected EList<Project> project;
+
+ /**
+ * The cached value of the '{@link #getImports() <em>Imports</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getImports()
+ * @generated
+ * @ordered
+ */
+ protected EList<Import> imports;
+
+ /**
+ * The cached value of the '{@link #getPackages() <em>Packages</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPackages()
+ * @generated
+ * @ordered
+ */
+ protected EList<rba.core.Package> packages;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TopLevelImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return RbaEditorModelPackage.Literals.TOP_LEVEL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Project> getProject()
+ {
+ if (project == null)
+ {
+ project = new EObjectContainmentEList<Project>(Project.class, this, RbaEditorModelPackage.TOP_LEVEL__PROJECT);
+ }
+ return project;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Import> getImports()
+ {
+ if (imports == null)
+ {
+ imports = new EObjectContainmentEList<Import>(Import.class, this, RbaEditorModelPackage.TOP_LEVEL__IMPORTS);
+ }
+ return imports;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<rba.core.Package> getPackages()
+ {
+ if (packages == null)
+ {
+ packages = new EObjectContainmentEList<rba.core.Package>(rba.core.Package.class, this, RbaEditorModelPackage.TOP_LEVEL__PACKAGES);
+ }
+ return packages;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case RbaEditorModelPackage.TOP_LEVEL__PROJECT:
+ return ((InternalEList<?>)getProject()).basicRemove(otherEnd, msgs);
+ case RbaEditorModelPackage.TOP_LEVEL__IMPORTS:
+ return ((InternalEList<?>)getImports()).basicRemove(otherEnd, msgs);
+ case RbaEditorModelPackage.TOP_LEVEL__PACKAGES:
+ return ((InternalEList<?>)getPackages()).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 RbaEditorModelPackage.TOP_LEVEL__PROJECT:
+ return getProject();
+ case RbaEditorModelPackage.TOP_LEVEL__IMPORTS:
+ return getImports();
+ case RbaEditorModelPackage.TOP_LEVEL__PACKAGES:
+ return getPackages();
+ }
+ 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 RbaEditorModelPackage.TOP_LEVEL__PROJECT:
+ getProject().clear();
+ getProject().addAll((Collection<? extends Project>)newValue);
+ return;
+ case RbaEditorModelPackage.TOP_LEVEL__IMPORTS:
+ getImports().clear();
+ getImports().addAll((Collection<? extends Import>)newValue);
+ return;
+ case RbaEditorModelPackage.TOP_LEVEL__PACKAGES:
+ getPackages().clear();
+ getPackages().addAll((Collection<? extends rba.core.Package>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case RbaEditorModelPackage.TOP_LEVEL__PROJECT:
+ getProject().clear();
+ return;
+ case RbaEditorModelPackage.TOP_LEVEL__IMPORTS:
+ getImports().clear();
+ return;
+ case RbaEditorModelPackage.TOP_LEVEL__PACKAGES:
+ getPackages().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case RbaEditorModelPackage.TOP_LEVEL__PROJECT:
+ return project != null && !project.isEmpty();
+ case RbaEditorModelPackage.TOP_LEVEL__IMPORTS:
+ return imports != null && !imports.isEmpty();
+ case RbaEditorModelPackage.TOP_LEVEL__PACKAGES:
+ return packages != null && !packages.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //TopLevelImpl
diff --git a/rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/util/RbaEditorModelAdapterFactory.java b/rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/util/RbaEditorModelAdapterFactory.java
new file mode 100644
index 0000000..9d65453
--- /dev/null
+++ b/rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/util/RbaEditorModelAdapterFactory.java
@@ -0,0 +1,299 @@
+/**
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.rbaEditorModel.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 rba.core.Expression;
+import rba.core.ModelElement;
+import rba.core.NamedElement;
+import rba.core.ObjectReference;
+import rba.core.Tag;
+
+import rba.tool.editor.rbaEditorModel.*;
+
+/**
+ * <!-- 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 rba.tool.editor.rbaEditorModel.RbaEditorModelPackage
+ * @generated
+ */
+public class RbaEditorModelAdapterFactory extends AdapterFactoryImpl
+{
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static RbaEditorModelPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RbaEditorModelAdapterFactory()
+ {
+ if (modelPackage == null)
+ {
+ modelPackage = RbaEditorModelPackage.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 RbaEditorModelSwitch<Adapter> modelSwitch =
+ new RbaEditorModelSwitch<Adapter>()
+ {
+ @Override
+ public Adapter caseTopLevel(TopLevel object)
+ {
+ return createTopLevelAdapter();
+ }
+ @Override
+ public Adapter caseImport(Import object)
+ {
+ return createImportAdapter();
+ }
+ @Override
+ public Adapter caseCTag(CTag object)
+ {
+ return createCTagAdapter();
+ }
+ @Override
+ public Adapter caseMemberFeatureReference(MemberFeatureReference object)
+ {
+ return createMemberFeatureReferenceAdapter();
+ }
+ @Override
+ public Adapter caseModelElement(ModelElement object)
+ {
+ return createModelElementAdapter();
+ }
+ @Override
+ public Adapter caseNamedElement(NamedElement object)
+ {
+ return createNamedElementAdapter();
+ }
+ @Override
+ public Adapter caseTag(Tag object)
+ {
+ return createTagAdapter();
+ }
+ @Override
+ public Adapter caseExpression(Expression object)
+ {
+ return createExpressionAdapter();
+ }
+ @Override
+ public Adapter caseObjectReference(ObjectReference object)
+ {
+ return createObjectReferenceAdapter();
+ }
+ @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 rba.tool.editor.rbaEditorModel.TopLevel <em>Top Level</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 rba.tool.editor.rbaEditorModel.TopLevel
+ * @generated
+ */
+ public Adapter createTopLevelAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.tool.editor.rbaEditorModel.Import <em>Import</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 rba.tool.editor.rbaEditorModel.Import
+ * @generated
+ */
+ public Adapter createImportAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.tool.editor.rbaEditorModel.CTag <em>CTag</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 rba.tool.editor.rbaEditorModel.CTag
+ * @generated
+ */
+ public Adapter createCTagAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.tool.editor.rbaEditorModel.MemberFeatureReference <em>Member Feature Reference</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 rba.tool.editor.rbaEditorModel.MemberFeatureReference
+ * @generated
+ */
+ public Adapter createMemberFeatureReferenceAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.ModelElement <em>Model 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 rba.core.ModelElement
+ * @generated
+ */
+ public Adapter createModelElementAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.NamedElement <em>Named 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 rba.core.NamedElement
+ * @generated
+ */
+ public Adapter createNamedElementAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.Tag <em>Tag</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 rba.core.Tag
+ * @generated
+ */
+ public Adapter createTagAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.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 rba.core.Expression
+ * @generated
+ */
+ public Adapter createExpressionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link rba.core.ObjectReference <em>Object Reference</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 rba.core.ObjectReference
+ * @generated
+ */
+ public Adapter createObjectReferenceAdapter()
+ {
+ 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;
+ }
+
+} //RbaEditorModelAdapterFactory
diff --git a/rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/util/RbaEditorModelSwitch.java b/rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/util/RbaEditorModelSwitch.java
new file mode 100644
index 0000000..8ee4da5
--- /dev/null
+++ b/rba.tool.editor/src-gen/rba/tool/editor/rbaEditorModel/util/RbaEditorModelSwitch.java
@@ -0,0 +1,280 @@
+/**
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.rbaEditorModel.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import rba.core.Expression;
+import rba.core.ModelElement;
+import rba.core.NamedElement;
+import rba.core.ObjectReference;
+import rba.core.Tag;
+
+import rba.tool.editor.rbaEditorModel.*;
+
+/**
+ * <!-- 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 rba.tool.editor.rbaEditorModel.RbaEditorModelPackage
+ * @generated
+ */
+public class RbaEditorModelSwitch<T> extends Switch<T>
+{
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static RbaEditorModelPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RbaEditorModelSwitch()
+ {
+ if (modelPackage == null)
+ {
+ modelPackage = RbaEditorModelPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param 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 RbaEditorModelPackage.TOP_LEVEL:
+ {
+ TopLevel topLevel = (TopLevel)theEObject;
+ T result = caseTopLevel(topLevel);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case RbaEditorModelPackage.IMPORT:
+ {
+ Import import_ = (Import)theEObject;
+ T result = caseImport(import_);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case RbaEditorModelPackage.CTAG:
+ {
+ CTag cTag = (CTag)theEObject;
+ T result = caseCTag(cTag);
+ if (result == null) result = caseTag(cTag);
+ if (result == null) result = caseNamedElement(cTag);
+ if (result == null) result = caseModelElement(cTag);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case RbaEditorModelPackage.MEMBER_FEATURE_REFERENCE:
+ {
+ MemberFeatureReference memberFeatureReference = (MemberFeatureReference)theEObject;
+ T result = caseMemberFeatureReference(memberFeatureReference);
+ if (result == null) result = caseObjectReference(memberFeatureReference);
+ if (result == null) result = caseExpression(memberFeatureReference);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Top Level</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>Top Level</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTopLevel(TopLevel object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Import</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>Import</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseImport(Import object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>CTag</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>CTag</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCTag(CTag object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Member Feature Reference</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>Member Feature Reference</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseMemberFeatureReference(MemberFeatureReference object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Model 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>Model Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseModelElement(ModelElement object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Named 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>Named Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseNamedElement(NamedElement object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Tag</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>Tag</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTag(Tag 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>Object Reference</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>Object Reference</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseObjectReference(ObjectReference 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;
+ }
+
+} //RbaEditorModelSwitch
diff --git a/rba.tool.editor/src-gen/rba/tool/editor/scoping/AbstractRBAModelScopeProvider.java b/rba.tool.editor/src-gen/rba/tool/editor/scoping/AbstractRBAModelScopeProvider.java
new file mode 100644
index 0000000..913076f
--- /dev/null
+++ b/rba.tool.editor/src-gen/rba/tool/editor/scoping/AbstractRBAModelScopeProvider.java
@@ -0,0 +1,9 @@
+/*
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.scoping;
+
+import org.eclipse.xtext.scoping.impl.DelegatingScopeProvider;
+
+public abstract class AbstractRBAModelScopeProvider extends DelegatingScopeProvider {
+}
diff --git a/rba.tool.editor/src-gen/rba/tool/editor/serializer/RBAModelSemanticSequencer.java b/rba.tool.editor/src-gen/rba/tool/editor/serializer/RBAModelSemanticSequencer.java
new file mode 100644
index 0000000..b1f2262
--- /dev/null
+++ b/rba.tool.editor/src-gen/rba/tool/editor/serializer/RBAModelSemanticSequencer.java
@@ -0,0 +1,5542 @@
+/*
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.serializer;
+
+import com.google.inject.Inject;
+import java.util.Set;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.xtext.Action;
+import org.eclipse.xtext.Parameter;
+import org.eclipse.xtext.ParserRule;
+import org.eclipse.xtext.serializer.ISerializationContext;
+import org.eclipse.xtext.serializer.acceptor.SequenceFeeder;
+import org.eclipse.xtext.serializer.sequencer.AbstractDelegatingSemanticSequencer;
+import org.eclipse.xtext.serializer.sequencer.ITransientValueService.ValueTransient;
+import rba.core.ActiveContents;
+import rba.core.ActiveState;
+import rba.core.AllocatedContent;
+import rba.core.AndOperator;
+import rba.core.ArbitrationPolicyExpression;
+import rba.core.ComparisonAnd;
+import rba.core.ComplexExpression;
+import rba.core.Constraint;
+import rba.core.ContentValue;
+import rba.core.EqualToOperator;
+import rba.core.ExistsOperator;
+import rba.core.ForAllOperator;
+import rba.core.GetAllocatables;
+import rba.core.GetContentsList;
+import rba.core.GetProperty;
+import rba.core.GreaterThanOperator;
+import rba.core.HasBeenDisplayed;
+import rba.core.HasComeEarlierThan;
+import rba.core.HasComeLaterThan;
+import rba.core.IfStatement;
+import rba.core.ImpliesOperator;
+import rba.core.IntegerProperty;
+import rba.core.IntegerValue;
+import rba.core.IsActive;
+import rba.core.IsAllocatedTo;
+import rba.core.IsChanged;
+import rba.core.IsEqualToOperator;
+import rba.core.IsGreaterThanEqualOperator;
+import rba.core.IsGreaterThanOperator;
+import rba.core.IsLowerThanEqualOperator;
+import rba.core.IsLowerThanOperator;
+import rba.core.IsOn;
+import rba.core.IsTranslatedTo;
+import rba.core.IsTypeOf;
+import rba.core.LambdaExpression;
+import rba.core.LetStatement;
+import rba.core.LoserTypeExpression;
+import rba.core.LowerThanOperator;
+import rba.core.MaxOperator;
+import rba.core.MaxValue;
+import rba.core.MinOperator;
+import rba.core.MinValue;
+import rba.core.MuchGreaterThanOperator;
+import rba.core.NoneValue;
+import rba.core.NotOperator;
+import rba.core.NullExpression;
+import rba.core.ObjectCompare;
+import rba.core.ObjectCompareNot;
+import rba.core.ObjectReference;
+import rba.core.OrOperator;
+import rba.core.PlusOperator;
+import rba.core.PreviousModifier;
+import rba.core.Project;
+import rba.core.RBACorePackage;
+import rba.core.Scene;
+import rba.core.SelectOperator;
+import rba.core.SetOfOperator;
+import rba.core.SizeOperator;
+import rba.core.StandardValue;
+import rba.core.StateValue;
+import rba.core.Stereotype;
+import rba.core.Tag;
+import rba.core.ThatOfOperator;
+import rba.core.Variable;
+import rba.sound.AllInstanceOfSoundContent;
+import rba.sound.AllInstanceOfZone;
+import rba.sound.IsAttenuated;
+import rba.sound.IsChangedOutput;
+import rba.sound.IsMuted;
+import rba.sound.IsOutputted;
+import rba.sound.IsOutputtedOn;
+import rba.sound.IsSounding;
+import rba.sound.IsTranslatedSoundTo;
+import rba.sound.MuteLowerPriority;
+import rba.sound.OutputtingSound;
+import rba.sound.RBASoundPackage;
+import rba.sound.SoundContent;
+import rba.sound.SoundContentSet;
+import rba.sound.SoundContentState;
+import rba.sound.Zone;
+import rba.sound.ZoneSet;
+import rba.tool.editor.rbaEditorModel.CTag;
+import rba.tool.editor.rbaEditorModel.Import;
+import rba.tool.editor.rbaEditorModel.MemberFeatureReference;
+import rba.tool.editor.rbaEditorModel.RbaEditorModelPackage;
+import rba.tool.editor.rbaEditorModel.TopLevel;
+import rba.tool.editor.services.RBAModelGrammarAccess;
+import rba.view.AllInstanceOfArea;
+import rba.view.AllInstanceOfViewContent;
+import rba.view.Area;
+import rba.view.AreaSet;
+import rba.view.CompositeArea;
+import rba.view.Display;
+import rba.view.DisplayingContent;
+import rba.view.FixedPositionLayout;
+import rba.view.HideLowerPriority;
+import rba.view.HorizontalLayout;
+import rba.view.IsChangedDisplay;
+import rba.view.IsDisplayed;
+import rba.view.IsDisplayedOn;
+import rba.view.IsHidden;
+import rba.view.IsTranslatedViewTo;
+import rba.view.IsVisible;
+import rba.view.Offset;
+import rba.view.PositionContainer;
+import rba.view.RBAViewPackage;
+import rba.view.Size;
+import rba.view.SizeReference;
+import rba.view.VerticalLayout;
+import rba.view.ViewContent;
+import rba.view.ViewContentSet;
+import rba.view.ViewContentState;
+
+@SuppressWarnings("all")
+public class RBAModelSemanticSequencer extends AbstractDelegatingSemanticSequencer {
+
+ @Inject
+ private RBAModelGrammarAccess grammarAccess;
+
+ @Override
+ public void sequence(ISerializationContext context, EObject semanticObject) {
+ EPackage epackage = semanticObject.eClass().getEPackage();
+ ParserRule rule = context.getParserRule();
+ Action action = context.getAssignedAction();
+ Set<Parameter> parameters = context.getEnabledBooleanParameters();
+ if (epackage == RBACorePackage.eINSTANCE)
+ switch (semanticObject.eClass().getClassifierID()) {
+ case RBACorePackage.ACTIVE_CONTENTS:
+ sequence_COperationFeatureCall(context, (ActiveContents) semanticObject);
+ return;
+ case RBACorePackage.ACTIVE_STATE:
+ sequence_COperationFeatureCall(context, (ActiveState) semanticObject);
+ return;
+ case RBACorePackage.ALLOCATED_CONTENT:
+ sequence_COperationFeatureCall(context, (AllocatedContent) semanticObject);
+ return;
+ case RBACorePackage.AND_OPERATOR:
+ sequence_CAndOperator(context, (AndOperator) semanticObject);
+ return;
+ case RBACorePackage.ARBITRATION_POLICY_EXPRESSION:
+ sequence_ArbitrationPolicyExpression(context, (ArbitrationPolicyExpression) semanticObject);
+ return;
+ case RBACorePackage.COMPARISON_AND:
+ sequence_VComparisonAnd(context, (ComparisonAnd) semanticObject);
+ return;
+ case RBACorePackage.COMPLEX_EXPRESSION:
+ sequence_ComplexExpression(context, (ComplexExpression) semanticObject);
+ return;
+ case RBACorePackage.CONSTRAINT:
+ sequence_Constraint(context, (Constraint) semanticObject);
+ return;
+ case RBACorePackage.CONTENT_VALUE:
+ sequence_COperationFeatureCall(context, (ContentValue) semanticObject);
+ return;
+ case RBACorePackage.EQUAL_TO_OPERATOR:
+ sequence_VRelationalExpression(context, (EqualToOperator) semanticObject);
+ return;
+ case RBACorePackage.EXISTS_OPERATOR:
+ sequence_ExistsOperator(context, (ExistsOperator) semanticObject);
+ return;
+ case RBACorePackage.FOR_ALL_OPERATOR:
+ sequence_ForAllOperator(context, (ForAllOperator) semanticObject);
+ return;
+ case RBACorePackage.GET_ALLOCATABLES:
+ sequence_COperationFeatureCall(context, (GetAllocatables) semanticObject);
+ return;
+ case RBACorePackage.GET_CONTENTS_LIST:
+ sequence_COperationFeatureCall(context, (GetContentsList) semanticObject);
+ return;
+ case RBACorePackage.GET_PROPERTY:
+ sequence_COperationFeatureCall(context, (GetProperty) semanticObject);
+ return;
+ case RBACorePackage.GREATER_THAN_OPERATOR:
+ sequence_VRelationalExpression(context, (GreaterThanOperator) semanticObject);
+ return;
+ case RBACorePackage.HAS_BEEN_DISPLAYED:
+ sequence_COperationFeatureCall(context, (HasBeenDisplayed) semanticObject);
+ return;
+ case RBACorePackage.HAS_COME_EARLIER_THAN:
+ sequence_COperationFeatureCall(context, (HasComeEarlierThan) semanticObject);
+ return;
+ case RBACorePackage.HAS_COME_LATER_THAN:
+ sequence_COperationFeatureCall(context, (HasComeLaterThan) semanticObject);
+ return;
+ case RBACorePackage.IF_STATEMENT:
+ sequence_IfStatement(context, (IfStatement) semanticObject);
+ return;
+ case RBACorePackage.IMPLIES_OPERATOR:
+ sequence_CImpliesOperator(context, (ImpliesOperator) semanticObject);
+ return;
+ case RBACorePackage.INTEGER_PROPERTY:
+ sequence_AbstractProperty(context, (IntegerProperty) semanticObject);
+ return;
+ case RBACorePackage.INTEGER_VALUE:
+ sequence_IntegerValue(context, (IntegerValue) semanticObject);
+ return;
+ case RBACorePackage.IS_ACTIVE:
+ sequence_COperationFeatureCall(context, (IsActive) semanticObject);
+ return;
+ case RBACorePackage.IS_ALLOCATED_TO:
+ sequence_COperationFeatureCall(context, (IsAllocatedTo) semanticObject);
+ return;
+ case RBACorePackage.IS_CHANGED:
+ sequence_COperationFeatureCall(context, (IsChanged) semanticObject);
+ return;
+ case RBACorePackage.IS_EQUAL_TO_OPERATOR:
+ sequence_CEqualityExpression(context, (IsEqualToOperator) semanticObject);
+ return;
+ case RBACorePackage.IS_GREATER_THAN_EQUAL_OPERATOR:
+ sequence_CRelationalExpression(context, (IsGreaterThanEqualOperator) semanticObject);
+ return;
+ case RBACorePackage.IS_GREATER_THAN_OPERATOR:
+ sequence_CRelationalExpression(context, (IsGreaterThanOperator) semanticObject);
+ return;
+ case RBACorePackage.IS_LOWER_THAN_EQUAL_OPERATOR:
+ sequence_CRelationalExpression(context, (IsLowerThanEqualOperator) semanticObject);
+ return;
+ case RBACorePackage.IS_LOWER_THAN_OPERATOR:
+ sequence_CRelationalExpression(context, (IsLowerThanOperator) semanticObject);
+ return;
+ case RBACorePackage.IS_ON:
+ sequence_COperationFeatureCall(context, (IsOn) semanticObject);
+ return;
+ case RBACorePackage.IS_TRANSLATED_TO:
+ sequence_COperationFeatureCall(context, (IsTranslatedTo) semanticObject);
+ return;
+ case RBACorePackage.IS_TYPE_OF:
+ sequence_COperationFeatureCall(context, (IsTypeOf) semanticObject);
+ return;
+ case RBACorePackage.LAMBDA_EXPRESSION:
+ sequence_LambdaExpression(context, (LambdaExpression) semanticObject);
+ return;
+ case RBACorePackage.LET_STATEMENT:
+ sequence_LetStatement(context, (LetStatement) semanticObject);
+ return;
+ case RBACorePackage.LOSER_TYPE_EXPRESSION:
+ sequence_LoserTypeExpression(context, (LoserTypeExpression) semanticObject);
+ return;
+ case RBACorePackage.LOWER_THAN_OPERATOR:
+ sequence_VRelationalExpression(context, (LowerThanOperator) semanticObject);
+ return;
+ case RBACorePackage.MAX_OPERATOR:
+ sequence_COperationFeatureCall(context, (MaxOperator) semanticObject);
+ return;
+ case RBACorePackage.MAX_VALUE:
+ sequence_MaxValue(context, (MaxValue) semanticObject);
+ return;
+ case RBACorePackage.MIN_OPERATOR:
+ sequence_COperationFeatureCall(context, (MinOperator) semanticObject);
+ return;
+ case RBACorePackage.MIN_VALUE:
+ sequence_MinValue(context, (MinValue) semanticObject);
+ return;
+ case RBACorePackage.MUCH_GREATER_THAN_OPERATOR:
+ sequence_VRelationalExpression(context, (MuchGreaterThanOperator) semanticObject);
+ return;
+ case RBACorePackage.NONE_VALUE:
+ sequence_NoneValue(context, (NoneValue) semanticObject);
+ return;
+ case RBACorePackage.NOT_OPERATOR:
+ sequence_CUnaryOperation(context, (NotOperator) semanticObject);
+ return;
+ case RBACorePackage.NULL_EXPRESSION:
+ sequence_NullExpression(context, (NullExpression) semanticObject);
+ return;
+ case RBACorePackage.OBJECT_COMPARE:
+ sequence_CEqualityExpression(context, (ObjectCompare) semanticObject);
+ return;
+ case RBACorePackage.OBJECT_COMPARE_NOT:
+ sequence_CEqualityExpression(context, (ObjectCompareNot) semanticObject);
+ return;
+ case RBACorePackage.OBJECT_REFERENCE:
+ if (rule == grammarAccess.getCExpressionRule()
+ || rule == grammarAccess.getCImpliesOperatorRule()
+ || action == grammarAccess.getCImpliesOperatorAccess().getImpliesOperatorOperandAction_1_0_0_0()
+ || rule == grammarAccess.getCOrOperatorRule()
+ || action == grammarAccess.getCOrOperatorAccess().getOrOperatorOperandAction_1_0_0_0()
+ || rule == grammarAccess.getCAndOperatorRule()
+ || action == grammarAccess.getCAndOperatorAccess().getAndOperatorOperandAction_1_0_0_0()
+ || rule == grammarAccess.getCEqualityExpressionRule()
+ || action == grammarAccess.getCEqualityExpressionAccess().getObjectCompareOperandAction_1_0_0_0_0()
+ || action == grammarAccess.getCEqualityExpressionAccess().getObjectCompareNotOperandAction_1_0_0_1_0()
+ || action == grammarAccess.getCEqualityExpressionAccess().getIsEqualToOperatorOperandAction_1_0_0_2_0()
+ || rule == grammarAccess.getCRelationalExpressionRule()
+ || action == grammarAccess.getCRelationalExpressionAccess().getIsGreaterThanEqualOperatorOperandAction_1_0_0_0_0()
+ || action == grammarAccess.getCRelationalExpressionAccess().getIsLowerThanEqualOperatorOperandAction_1_0_0_1_0()
+ || action == grammarAccess.getCRelationalExpressionAccess().getIsGreaterThanOperatorOperandAction_1_0_0_2_0()
+ || action == grammarAccess.getCRelationalExpressionAccess().getIsLowerThanOperatorOperandAction_1_0_0_3_0()
+ || rule == grammarAccess.getCUnaryOperationRule()
+ || rule == grammarAccess.getCOperationFeatureCallRule()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getGetPropertyOperandAction_1_1_0_0_0_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getIsOnOperandAction_1_1_0_0_1_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getGetContentsListOperandAction_1_1_0_0_2_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getContentValueOperandAction_1_1_0_0_3_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getIsActiveOperandAction_1_1_0_0_4_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getGetAllocatablesOperandAction_1_1_0_0_5_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getAllocatedContentOperandAction_1_1_0_0_6_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getHasComeEarlierThanOperandAction_1_1_0_0_7_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getHasComeLaterThanOperandAction_1_1_0_0_8_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getStateValueOperandAction_1_1_0_0_9_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getActiveContentsOperandAction_1_1_0_0_10_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getSizeOperatorOperandAction_1_1_0_0_11_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getHasBeenDisplayedOperandAction_1_1_0_0_12_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getActiveStateOperandAction_1_1_0_0_13_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getIsDisplayedOperandAction_1_1_0_0_14_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getIsHiddenOperandAction_1_1_0_0_15_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getDisplayingContentOperandAction_1_1_0_0_16_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getIsVisibleOperandAction_1_1_0_0_17_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getIsOutputtedOperandAction_1_1_0_0_18_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getIsMutedOperandAction_1_1_0_0_19_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getOutputtingSoundOperandAction_1_1_0_0_20_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getIsSoundingOperandAction_1_1_0_0_21_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getIsAllocatedToOperandAction_1_1_0_0_22_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getIsChangedOperandAction_1_1_0_0_23_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getIsTranslatedToOperandAction_1_1_0_0_24_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getIsDisplayedOnOperandAction_1_1_0_0_25_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getIsChangedDisplayOperandAction_1_1_0_0_26_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getIsTranslatedViewToOperandAction_1_1_0_0_27_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getIsOutputtedOnOperandAction_1_1_0_0_28_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getIsChangedOutputOperandAction_1_1_0_0_29_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getIsTranslatedSoundToOperandAction_1_1_0_0_30_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getIsAttenuatedOperandAction_1_1_0_0_31_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getIsTypeOfOperandAction_1_1_1_0_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getMaxOperatorOperandAction_1_1_2_0_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getMinOperatorOperandAction_1_1_2_1_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getSelectOperatorOperandAction_1_1_2_2_0()
+ || rule == grammarAccess.getCPrimaryExpressionRule()
+ || rule == grammarAccess.getCMemberFeatureReferenceRule()
+ || action == grammarAccess.getCMemberFeatureReferenceAccess().getMemberFeatureReferenceOperandAction_2_0()) {
+ sequence_CMemberFeatureReference(context, (ObjectReference) semanticObject);
+ return;
+ }
+ else if (rule == grammarAccess.getCObjectReferenceRule()) {
+ sequence_CObjectReference(context, (ObjectReference) semanticObject);
+ return;
+ }
+ else if (rule == grammarAccess.getVMemberFeatureReferenceRule()
+ || action == grammarAccess.getVMemberFeatureReferenceAccess().getMemberFeatureReferenceOperandAction_2_0()) {
+ sequence_VMemberFeatureReference(context, (ObjectReference) semanticObject);
+ return;
+ }
+ else break;
+ case RBACorePackage.OR_OPERATOR:
+ sequence_COrOperator(context, (OrOperator) semanticObject);
+ return;
+ case RBACorePackage.PACKAGE:
+ sequence_Package(context, (rba.core.Package) semanticObject);
+ return;
+ case RBACorePackage.PLUS_OPERATOR:
+ sequence_VPlusOperator(context, (PlusOperator) semanticObject);
+ return;
+ case RBACorePackage.PREVIOUS_MODIFIER:
+ sequence_PreviousModifier(context, (PreviousModifier) semanticObject);
+ return;
+ case RBACorePackage.PROJECT:
+ sequence_Project(context, (Project) semanticObject);
+ return;
+ case RBACorePackage.SCENE:
+ sequence_Scene(context, (Scene) semanticObject);
+ return;
+ case RBACorePackage.SELECT_OPERATOR:
+ sequence_COperationFeatureCall(context, (SelectOperator) semanticObject);
+ return;
+ case RBACorePackage.SET_OF_OPERATOR:
+ sequence_SetOfOperator(context, (SetOfOperator) semanticObject);
+ return;
+ case RBACorePackage.SIZE_OPERATOR:
+ sequence_COperationFeatureCall(context, (SizeOperator) semanticObject);
+ return;
+ case RBACorePackage.STANDARD_VALUE:
+ sequence_StandardValue(context, (StandardValue) semanticObject);
+ return;
+ case RBACorePackage.STATE_VALUE:
+ sequence_COperationFeatureCall(context, (StateValue) semanticObject);
+ return;
+ case RBACorePackage.STEREOTYPE:
+ sequence_Stereotype(context, (Stereotype) semanticObject);
+ return;
+ case RBACorePackage.TAG:
+ sequence_Tag(context, (Tag) semanticObject);
+ return;
+ case RBACorePackage.THAT_OF_OPERATOR:
+ sequence_ThatOfOperator(context, (ThatOfOperator) semanticObject);
+ return;
+ case RBACorePackage.VARIABLE:
+ sequence_Variable(context, (Variable) semanticObject);
+ return;
+ }
+ else if (epackage == RbaEditorModelPackage.eINSTANCE)
+ switch (semanticObject.eClass().getClassifierID()) {
+ case RbaEditorModelPackage.CTAG:
+ sequence_Tag(context, (CTag) semanticObject);
+ return;
+ case RbaEditorModelPackage.IMPORT:
+ sequence_Import(context, (Import) semanticObject);
+ return;
+ case RbaEditorModelPackage.MEMBER_FEATURE_REFERENCE:
+ if (rule == grammarAccess.getCExpressionRule()
+ || rule == grammarAccess.getCImpliesOperatorRule()
+ || action == grammarAccess.getCImpliesOperatorAccess().getImpliesOperatorOperandAction_1_0_0_0()
+ || rule == grammarAccess.getCOrOperatorRule()
+ || action == grammarAccess.getCOrOperatorAccess().getOrOperatorOperandAction_1_0_0_0()
+ || rule == grammarAccess.getCAndOperatorRule()
+ || action == grammarAccess.getCAndOperatorAccess().getAndOperatorOperandAction_1_0_0_0()
+ || rule == grammarAccess.getCEqualityExpressionRule()
+ || action == grammarAccess.getCEqualityExpressionAccess().getObjectCompareOperandAction_1_0_0_0_0()
+ || action == grammarAccess.getCEqualityExpressionAccess().getObjectCompareNotOperandAction_1_0_0_1_0()
+ || action == grammarAccess.getCEqualityExpressionAccess().getIsEqualToOperatorOperandAction_1_0_0_2_0()
+ || rule == grammarAccess.getCRelationalExpressionRule()
+ || action == grammarAccess.getCRelationalExpressionAccess().getIsGreaterThanEqualOperatorOperandAction_1_0_0_0_0()
+ || action == grammarAccess.getCRelationalExpressionAccess().getIsLowerThanEqualOperatorOperandAction_1_0_0_1_0()
+ || action == grammarAccess.getCRelationalExpressionAccess().getIsGreaterThanOperatorOperandAction_1_0_0_2_0()
+ || action == grammarAccess.getCRelationalExpressionAccess().getIsLowerThanOperatorOperandAction_1_0_0_3_0()
+ || rule == grammarAccess.getCUnaryOperationRule()
+ || rule == grammarAccess.getCOperationFeatureCallRule()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getGetPropertyOperandAction_1_1_0_0_0_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getIsOnOperandAction_1_1_0_0_1_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getGetContentsListOperandAction_1_1_0_0_2_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getContentValueOperandAction_1_1_0_0_3_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getIsActiveOperandAction_1_1_0_0_4_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getGetAllocatablesOperandAction_1_1_0_0_5_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getAllocatedContentOperandAction_1_1_0_0_6_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getHasComeEarlierThanOperandAction_1_1_0_0_7_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getHasComeLaterThanOperandAction_1_1_0_0_8_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getStateValueOperandAction_1_1_0_0_9_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getActiveContentsOperandAction_1_1_0_0_10_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getSizeOperatorOperandAction_1_1_0_0_11_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getHasBeenDisplayedOperandAction_1_1_0_0_12_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getActiveStateOperandAction_1_1_0_0_13_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getIsDisplayedOperandAction_1_1_0_0_14_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getIsHiddenOperandAction_1_1_0_0_15_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getDisplayingContentOperandAction_1_1_0_0_16_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getIsVisibleOperandAction_1_1_0_0_17_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getIsOutputtedOperandAction_1_1_0_0_18_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getIsMutedOperandAction_1_1_0_0_19_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getOutputtingSoundOperandAction_1_1_0_0_20_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getIsSoundingOperandAction_1_1_0_0_21_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getIsAllocatedToOperandAction_1_1_0_0_22_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getIsChangedOperandAction_1_1_0_0_23_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getIsTranslatedToOperandAction_1_1_0_0_24_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getIsDisplayedOnOperandAction_1_1_0_0_25_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getIsChangedDisplayOperandAction_1_1_0_0_26_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getIsTranslatedViewToOperandAction_1_1_0_0_27_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getIsOutputtedOnOperandAction_1_1_0_0_28_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getIsChangedOutputOperandAction_1_1_0_0_29_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getIsTranslatedSoundToOperandAction_1_1_0_0_30_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getIsAttenuatedOperandAction_1_1_0_0_31_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getIsTypeOfOperandAction_1_1_1_0_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getMaxOperatorOperandAction_1_1_2_0_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getMinOperatorOperandAction_1_1_2_1_0()
+ || action == grammarAccess.getCOperationFeatureCallAccess().getSelectOperatorOperandAction_1_1_2_2_0()
+ || rule == grammarAccess.getCPrimaryExpressionRule()
+ || rule == grammarAccess.getCMemberFeatureReferenceRule()
+ || action == grammarAccess.getCMemberFeatureReferenceAccess().getMemberFeatureReferenceOperandAction_2_0()) {
+ sequence_CMemberFeatureReference(context, (MemberFeatureReference) semanticObject);
+ return;
+ }
+ else if (rule == grammarAccess.getVMemberFeatureReferenceRule()
+ || action == grammarAccess.getVMemberFeatureReferenceAccess().getMemberFeatureReferenceOperandAction_2_0()) {
+ sequence_VMemberFeatureReference(context, (MemberFeatureReference) semanticObject);
+ return;
+ }
+ else break;
+ case RbaEditorModelPackage.TOP_LEVEL:
+ sequence_TopLevel(context, (TopLevel) semanticObject);
+ return;
+ }
+ else if (epackage == RBASoundPackage.eINSTANCE)
+ switch (semanticObject.eClass().getClassifierID()) {
+ case RBASoundPackage.ALL_INSTANCE_OF_SOUND_CONTENT:
+ sequence_AllInstanceOfExpression(context, (AllInstanceOfSoundContent) semanticObject);
+ return;
+ case RBASoundPackage.ALL_INSTANCE_OF_ZONE:
+ sequence_AllInstanceOfExpression(context, (AllInstanceOfZone) semanticObject);
+ return;
+ case RBASoundPackage.IS_ATTENUATED:
+ sequence_COperationFeatureCall(context, (IsAttenuated) semanticObject);
+ return;
+ case RBASoundPackage.IS_CHANGED_OUTPUT:
+ sequence_COperationFeatureCall(context, (IsChangedOutput) semanticObject);
+ return;
+ case RBASoundPackage.IS_MUTED:
+ sequence_COperationFeatureCall(context, (IsMuted) semanticObject);
+ return;
+ case RBASoundPackage.IS_OUTPUTTED:
+ sequence_COperationFeatureCall(context, (IsOutputted) semanticObject);
+ return;
+ case RBASoundPackage.IS_OUTPUTTED_ON:
+ sequence_COperationFeatureCall(context, (IsOutputtedOn) semanticObject);
+ return;
+ case RBASoundPackage.IS_SOUNDING:
+ sequence_COperationFeatureCall(context, (IsSounding) semanticObject);
+ return;
+ case RBASoundPackage.IS_TRANSLATED_SOUND_TO:
+ sequence_COperationFeatureCall(context, (IsTranslatedSoundTo) semanticObject);
+ return;
+ case RBASoundPackage.MUTE_LOWER_PRIORITY:
+ sequence_MuteLowerPriority(context, (MuteLowerPriority) semanticObject);
+ return;
+ case RBASoundPackage.OUTPUTTING_SOUND:
+ sequence_COperationFeatureCall(context, (OutputtingSound) semanticObject);
+ return;
+ case RBASoundPackage.SOUND_CONTENT:
+ sequence_SoundContent(context, (SoundContent) semanticObject);
+ return;
+ case RBASoundPackage.SOUND_CONTENT_SET:
+ sequence_SoundContentSet(context, (SoundContentSet) semanticObject);
+ return;
+ case RBASoundPackage.SOUND_CONTENT_STATE:
+ sequence_SoundContentState(context, (SoundContentState) semanticObject);
+ return;
+ case RBASoundPackage.ZONE:
+ sequence_Zone(context, (Zone) semanticObject);
+ return;
+ case RBASoundPackage.ZONE_SET:
+ sequence_ZoneSet(context, (ZoneSet) semanticObject);
+ return;
+ }
+ else if (epackage == RBAViewPackage.eINSTANCE)
+ switch (semanticObject.eClass().getClassifierID()) {
+ case RBAViewPackage.ALL_INSTANCE_OF_AREA:
+ sequence_AllInstanceOfExpression(context, (AllInstanceOfArea) semanticObject);
+ return;
+ case RBAViewPackage.ALL_INSTANCE_OF_VIEW_CONTENT:
+ sequence_AllInstanceOfExpression(context, (AllInstanceOfViewContent) semanticObject);
+ return;
+ case RBAViewPackage.AREA:
+ sequence_Area(context, (Area) semanticObject);
+ return;
+ case RBAViewPackage.AREA_SET:
+ sequence_AreaSet(context, (AreaSet) semanticObject);
+ return;
+ case RBAViewPackage.COMPOSITE_AREA:
+ sequence_CompositeArea(context, (CompositeArea) semanticObject);
+ return;
+ case RBAViewPackage.DISPLAY:
+ sequence_Display(context, (Display) semanticObject);
+ return;
+ case RBAViewPackage.DISPLAYING_CONTENT:
+ sequence_COperationFeatureCall(context, (DisplayingContent) semanticObject);
+ return;
+ case RBAViewPackage.FIXED_POSITION_LAYOUT:
+ sequence_FixedPositionLayout(context, (FixedPositionLayout) semanticObject);
+ return;
+ case RBAViewPackage.HIDE_LOWER_PRIORITY:
+ sequence_HideLowerPriority(context, (HideLowerPriority) semanticObject);
+ return;
+ case RBAViewPackage.HORIZONTAL_LAYOUT:
+ sequence_HorizontalLayout(context, (HorizontalLayout) semanticObject);
+ return;
+ case RBAViewPackage.IS_CHANGED_DISPLAY:
+ sequence_COperationFeatureCall(context, (IsChangedDisplay) semanticObject);
+ return;
+ case RBAViewPackage.IS_DISPLAYED:
+ sequence_COperationFeatureCall(context, (IsDisplayed) semanticObject);
+ return;
+ case RBAViewPackage.IS_DISPLAYED_ON:
+ sequence_COperationFeatureCall(context, (IsDisplayedOn) semanticObject);
+ return;
+ case RBAViewPackage.IS_HIDDEN:
+ sequence_COperationFeatureCall(context, (IsHidden) semanticObject);
+ return;
+ case RBAViewPackage.IS_TRANSLATED_VIEW_TO:
+ sequence_COperationFeatureCall(context, (IsTranslatedViewTo) semanticObject);
+ return;
+ case RBAViewPackage.IS_VISIBLE:
+ sequence_COperationFeatureCall(context, (IsVisible) semanticObject);
+ return;
+ case RBAViewPackage.OFFSET:
+ sequence_Offset(context, (Offset) semanticObject);
+ return;
+ case RBAViewPackage.POSITION_CONTAINER:
+ sequence_PositionContainer(context, (PositionContainer) semanticObject);
+ return;
+ case RBAViewPackage.SIZE:
+ sequence_Size(context, (Size) semanticObject);
+ return;
+ case RBAViewPackage.SIZE_REFERENCE:
+ sequence_SizeReference(context, (SizeReference) semanticObject);
+ return;
+ case RBAViewPackage.VERTICAL_LAYOUT:
+ sequence_VerticalLayout(context, (VerticalLayout) semanticObject);
+ return;
+ case RBAViewPackage.VIEW_CONTENT:
+ sequence_ViewContent(context, (ViewContent) semanticObject);
+ return;
+ case RBAViewPackage.VIEW_CONTENT_SET:
+ sequence_ViewContentSet(context, (ViewContentSet) semanticObject);
+ return;
+ case RBAViewPackage.VIEW_CONTENT_STATE:
+ sequence_ViewContentState(context, (ViewContentState) semanticObject);
+ return;
+ }
+ if (errorAcceptor != null)
+ errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context));
+ }
+
+ /**
+ * Contexts:
+ * AbstractProperty returns IntegerProperty
+ *
+ * Constraint:
+ * (name=ValidID value=IntegerValue?)
+ */
+ protected void sequence_AbstractProperty(ISerializationContext context, IntegerProperty semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns AllInstanceOfArea
+ * CImpliesOperator returns AllInstanceOfArea
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns AllInstanceOfArea
+ * COrOperator returns AllInstanceOfArea
+ * COrOperator.OrOperator_1_0_0_0 returns AllInstanceOfArea
+ * CAndOperator returns AllInstanceOfArea
+ * CAndOperator.AndOperator_1_0_0_0 returns AllInstanceOfArea
+ * CEqualityExpression returns AllInstanceOfArea
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns AllInstanceOfArea
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns AllInstanceOfArea
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns AllInstanceOfArea
+ * CRelationalExpression returns AllInstanceOfArea
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns AllInstanceOfArea
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns AllInstanceOfArea
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns AllInstanceOfArea
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns AllInstanceOfArea
+ * CUnaryOperation returns AllInstanceOfArea
+ * COperationFeatureCall returns AllInstanceOfArea
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns AllInstanceOfArea
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns AllInstanceOfArea
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns AllInstanceOfArea
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns AllInstanceOfArea
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns AllInstanceOfArea
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns AllInstanceOfArea
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns AllInstanceOfArea
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns AllInstanceOfArea
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns AllInstanceOfArea
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns AllInstanceOfArea
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns AllInstanceOfArea
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns AllInstanceOfArea
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns AllInstanceOfArea
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns AllInstanceOfArea
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns AllInstanceOfArea
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns AllInstanceOfArea
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns AllInstanceOfArea
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns AllInstanceOfArea
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns AllInstanceOfArea
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns AllInstanceOfArea
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns AllInstanceOfArea
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns AllInstanceOfArea
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns AllInstanceOfArea
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns AllInstanceOfArea
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns AllInstanceOfArea
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns AllInstanceOfArea
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns AllInstanceOfArea
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns AllInstanceOfArea
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns AllInstanceOfArea
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns AllInstanceOfArea
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns AllInstanceOfArea
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns AllInstanceOfArea
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns AllInstanceOfArea
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns AllInstanceOfArea
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns AllInstanceOfArea
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns AllInstanceOfArea
+ * CPrimaryExpression returns AllInstanceOfArea
+ * AllInstanceOfExpression returns AllInstanceOfArea
+ *
+ * Constraint:
+ * {AllInstanceOfArea}
+ */
+ protected void sequence_AllInstanceOfExpression(ISerializationContext context, AllInstanceOfArea semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns AllInstanceOfSoundContent
+ * CImpliesOperator returns AllInstanceOfSoundContent
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns AllInstanceOfSoundContent
+ * COrOperator returns AllInstanceOfSoundContent
+ * COrOperator.OrOperator_1_0_0_0 returns AllInstanceOfSoundContent
+ * CAndOperator returns AllInstanceOfSoundContent
+ * CAndOperator.AndOperator_1_0_0_0 returns AllInstanceOfSoundContent
+ * CEqualityExpression returns AllInstanceOfSoundContent
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns AllInstanceOfSoundContent
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns AllInstanceOfSoundContent
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns AllInstanceOfSoundContent
+ * CRelationalExpression returns AllInstanceOfSoundContent
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns AllInstanceOfSoundContent
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns AllInstanceOfSoundContent
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns AllInstanceOfSoundContent
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns AllInstanceOfSoundContent
+ * CUnaryOperation returns AllInstanceOfSoundContent
+ * COperationFeatureCall returns AllInstanceOfSoundContent
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns AllInstanceOfSoundContent
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns AllInstanceOfSoundContent
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns AllInstanceOfSoundContent
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns AllInstanceOfSoundContent
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns AllInstanceOfSoundContent
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns AllInstanceOfSoundContent
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns AllInstanceOfSoundContent
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns AllInstanceOfSoundContent
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns AllInstanceOfSoundContent
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns AllInstanceOfSoundContent
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns AllInstanceOfSoundContent
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns AllInstanceOfSoundContent
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns AllInstanceOfSoundContent
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns AllInstanceOfSoundContent
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns AllInstanceOfSoundContent
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns AllInstanceOfSoundContent
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns AllInstanceOfSoundContent
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns AllInstanceOfSoundContent
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns AllInstanceOfSoundContent
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns AllInstanceOfSoundContent
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns AllInstanceOfSoundContent
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns AllInstanceOfSoundContent
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns AllInstanceOfSoundContent
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns AllInstanceOfSoundContent
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns AllInstanceOfSoundContent
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns AllInstanceOfSoundContent
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns AllInstanceOfSoundContent
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns AllInstanceOfSoundContent
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns AllInstanceOfSoundContent
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns AllInstanceOfSoundContent
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns AllInstanceOfSoundContent
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns AllInstanceOfSoundContent
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns AllInstanceOfSoundContent
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns AllInstanceOfSoundContent
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns AllInstanceOfSoundContent
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns AllInstanceOfSoundContent
+ * CPrimaryExpression returns AllInstanceOfSoundContent
+ * AllInstanceOfExpression returns AllInstanceOfSoundContent
+ *
+ * Constraint:
+ * {AllInstanceOfSoundContent}
+ */
+ protected void sequence_AllInstanceOfExpression(ISerializationContext context, AllInstanceOfSoundContent semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns AllInstanceOfViewContent
+ * CImpliesOperator returns AllInstanceOfViewContent
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns AllInstanceOfViewContent
+ * COrOperator returns AllInstanceOfViewContent
+ * COrOperator.OrOperator_1_0_0_0 returns AllInstanceOfViewContent
+ * CAndOperator returns AllInstanceOfViewContent
+ * CAndOperator.AndOperator_1_0_0_0 returns AllInstanceOfViewContent
+ * CEqualityExpression returns AllInstanceOfViewContent
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns AllInstanceOfViewContent
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns AllInstanceOfViewContent
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns AllInstanceOfViewContent
+ * CRelationalExpression returns AllInstanceOfViewContent
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns AllInstanceOfViewContent
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns AllInstanceOfViewContent
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns AllInstanceOfViewContent
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns AllInstanceOfViewContent
+ * CUnaryOperation returns AllInstanceOfViewContent
+ * COperationFeatureCall returns AllInstanceOfViewContent
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns AllInstanceOfViewContent
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns AllInstanceOfViewContent
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns AllInstanceOfViewContent
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns AllInstanceOfViewContent
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns AllInstanceOfViewContent
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns AllInstanceOfViewContent
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns AllInstanceOfViewContent
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns AllInstanceOfViewContent
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns AllInstanceOfViewContent
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns AllInstanceOfViewContent
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns AllInstanceOfViewContent
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns AllInstanceOfViewContent
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns AllInstanceOfViewContent
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns AllInstanceOfViewContent
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns AllInstanceOfViewContent
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns AllInstanceOfViewContent
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns AllInstanceOfViewContent
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns AllInstanceOfViewContent
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns AllInstanceOfViewContent
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns AllInstanceOfViewContent
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns AllInstanceOfViewContent
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns AllInstanceOfViewContent
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns AllInstanceOfViewContent
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns AllInstanceOfViewContent
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns AllInstanceOfViewContent
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns AllInstanceOfViewContent
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns AllInstanceOfViewContent
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns AllInstanceOfViewContent
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns AllInstanceOfViewContent
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns AllInstanceOfViewContent
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns AllInstanceOfViewContent
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns AllInstanceOfViewContent
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns AllInstanceOfViewContent
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns AllInstanceOfViewContent
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns AllInstanceOfViewContent
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns AllInstanceOfViewContent
+ * CPrimaryExpression returns AllInstanceOfViewContent
+ * AllInstanceOfExpression returns AllInstanceOfViewContent
+ *
+ * Constraint:
+ * {AllInstanceOfViewContent}
+ */
+ protected void sequence_AllInstanceOfExpression(ISerializationContext context, AllInstanceOfViewContent semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns AllInstanceOfZone
+ * CImpliesOperator returns AllInstanceOfZone
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns AllInstanceOfZone
+ * COrOperator returns AllInstanceOfZone
+ * COrOperator.OrOperator_1_0_0_0 returns AllInstanceOfZone
+ * CAndOperator returns AllInstanceOfZone
+ * CAndOperator.AndOperator_1_0_0_0 returns AllInstanceOfZone
+ * CEqualityExpression returns AllInstanceOfZone
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns AllInstanceOfZone
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns AllInstanceOfZone
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns AllInstanceOfZone
+ * CRelationalExpression returns AllInstanceOfZone
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns AllInstanceOfZone
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns AllInstanceOfZone
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns AllInstanceOfZone
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns AllInstanceOfZone
+ * CUnaryOperation returns AllInstanceOfZone
+ * COperationFeatureCall returns AllInstanceOfZone
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns AllInstanceOfZone
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns AllInstanceOfZone
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns AllInstanceOfZone
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns AllInstanceOfZone
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns AllInstanceOfZone
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns AllInstanceOfZone
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns AllInstanceOfZone
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns AllInstanceOfZone
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns AllInstanceOfZone
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns AllInstanceOfZone
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns AllInstanceOfZone
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns AllInstanceOfZone
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns AllInstanceOfZone
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns AllInstanceOfZone
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns AllInstanceOfZone
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns AllInstanceOfZone
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns AllInstanceOfZone
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns AllInstanceOfZone
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns AllInstanceOfZone
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns AllInstanceOfZone
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns AllInstanceOfZone
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns AllInstanceOfZone
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns AllInstanceOfZone
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns AllInstanceOfZone
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns AllInstanceOfZone
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns AllInstanceOfZone
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns AllInstanceOfZone
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns AllInstanceOfZone
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns AllInstanceOfZone
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns AllInstanceOfZone
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns AllInstanceOfZone
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns AllInstanceOfZone
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns AllInstanceOfZone
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns AllInstanceOfZone
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns AllInstanceOfZone
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns AllInstanceOfZone
+ * CPrimaryExpression returns AllInstanceOfZone
+ * AllInstanceOfExpression returns AllInstanceOfZone
+ *
+ * Constraint:
+ * {AllInstanceOfZone}
+ */
+ protected void sequence_AllInstanceOfExpression(ISerializationContext context, AllInstanceOfZone semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * EnumExpression returns ArbitrationPolicyExpression
+ * ArbitrationPolicyExpression returns ArbitrationPolicyExpression
+ *
+ * Constraint:
+ * value=ArbitrationPolicy
+ */
+ protected void sequence_ArbitrationPolicyExpression(ISerializationContext context, ArbitrationPolicyExpression semanticObject) {
+ if (errorAcceptor != null) {
+ if (transientValues.isValueTransient(semanticObject, RBACorePackage.Literals.ARBITRATION_POLICY_EXPRESSION__VALUE) == ValueTransient.YES)
+ errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, RBACorePackage.Literals.ARBITRATION_POLICY_EXPRESSION__VALUE));
+ }
+ SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+ feeder.accept(grammarAccess.getArbitrationPolicyExpressionAccess().getValueArbitrationPolicyEnumRuleCall_1_0(), semanticObject.getValue());
+ feeder.finish();
+ }
+
+
+ /**
+ * Contexts:
+ * PackagableElement returns AreaSet
+ * RuleObject returns AreaSet
+ * AbstractAllocatable returns AreaSet
+ * AllocatableSet returns AreaSet
+ * AreaSet returns AreaSet
+ *
+ * Constraint:
+ * (name=QualifiedName (description=EString? (target+=[AbstractAllocatable|QualifiedName] target+=[AbstractAllocatable|QualifiedName]*)?)+)
+ */
+ protected void sequence_AreaSet(ISerializationContext context, AreaSet semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * PackagableElement returns Area
+ * RuleObject returns Area
+ * AbstractAllocatable returns Area
+ * Allocatable returns Area
+ * Area returns Area
+ *
+ * Constraint:
+ * (
+ * name=QualifiedName
+ * (
+ * description=EString |
+ * arbitrationPolicy=ArbitrationPolicy |
+ * size+=SizeIdentifier |
+ * visibility=VExpression |
+ * zorder=VExpression |
+ * tags+=Tag
+ * )*
+ * )
+ */
+ protected void sequence_Area(ISerializationContext context, Area semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns AndOperator
+ * CImpliesOperator returns AndOperator
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns AndOperator
+ * COrOperator returns AndOperator
+ * COrOperator.OrOperator_1_0_0_0 returns AndOperator
+ * CAndOperator returns AndOperator
+ * CAndOperator.AndOperator_1_0_0_0 returns AndOperator
+ * CEqualityExpression returns AndOperator
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns AndOperator
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns AndOperator
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns AndOperator
+ * CRelationalExpression returns AndOperator
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns AndOperator
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns AndOperator
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns AndOperator
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns AndOperator
+ * CUnaryOperation returns AndOperator
+ * COperationFeatureCall returns AndOperator
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns AndOperator
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns AndOperator
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns AndOperator
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns AndOperator
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns AndOperator
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns AndOperator
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns AndOperator
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns AndOperator
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns AndOperator
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns AndOperator
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns AndOperator
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns AndOperator
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns AndOperator
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns AndOperator
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns AndOperator
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns AndOperator
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns AndOperator
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns AndOperator
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns AndOperator
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns AndOperator
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns AndOperator
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns AndOperator
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns AndOperator
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns AndOperator
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns AndOperator
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns AndOperator
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns AndOperator
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns AndOperator
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns AndOperator
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns AndOperator
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns AndOperator
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns AndOperator
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns AndOperator
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns AndOperator
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns AndOperator
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns AndOperator
+ * CPrimaryExpression returns AndOperator
+ *
+ * Constraint:
+ * (operand+=CAndOperator_AndOperator_1_0_0_0 operand+=CEqualityExpression)
+ */
+ protected void sequence_CAndOperator(ISerializationContext context, AndOperator semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns IsEqualToOperator
+ * CImpliesOperator returns IsEqualToOperator
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns IsEqualToOperator
+ * COrOperator returns IsEqualToOperator
+ * COrOperator.OrOperator_1_0_0_0 returns IsEqualToOperator
+ * CAndOperator returns IsEqualToOperator
+ * CAndOperator.AndOperator_1_0_0_0 returns IsEqualToOperator
+ * CEqualityExpression returns IsEqualToOperator
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns IsEqualToOperator
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns IsEqualToOperator
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns IsEqualToOperator
+ * CRelationalExpression returns IsEqualToOperator
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns IsEqualToOperator
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns IsEqualToOperator
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns IsEqualToOperator
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns IsEqualToOperator
+ * CUnaryOperation returns IsEqualToOperator
+ * COperationFeatureCall returns IsEqualToOperator
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns IsEqualToOperator
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns IsEqualToOperator
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns IsEqualToOperator
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns IsEqualToOperator
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns IsEqualToOperator
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns IsEqualToOperator
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns IsEqualToOperator
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns IsEqualToOperator
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns IsEqualToOperator
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns IsEqualToOperator
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns IsEqualToOperator
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns IsEqualToOperator
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns IsEqualToOperator
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns IsEqualToOperator
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns IsEqualToOperator
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns IsEqualToOperator
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns IsEqualToOperator
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns IsEqualToOperator
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns IsEqualToOperator
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns IsEqualToOperator
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns IsEqualToOperator
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns IsEqualToOperator
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns IsEqualToOperator
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns IsEqualToOperator
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns IsEqualToOperator
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns IsEqualToOperator
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns IsEqualToOperator
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns IsEqualToOperator
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns IsEqualToOperator
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns IsEqualToOperator
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns IsEqualToOperator
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns IsEqualToOperator
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns IsEqualToOperator
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns IsEqualToOperator
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns IsEqualToOperator
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns IsEqualToOperator
+ * CPrimaryExpression returns IsEqualToOperator
+ *
+ * Constraint:
+ * (operand+=CEqualityExpression_IsEqualToOperator_1_0_0_2_0 operand+=CRelationalExpression)
+ */
+ protected void sequence_CEqualityExpression(ISerializationContext context, IsEqualToOperator semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns ObjectCompare
+ * CImpliesOperator returns ObjectCompare
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns ObjectCompare
+ * COrOperator returns ObjectCompare
+ * COrOperator.OrOperator_1_0_0_0 returns ObjectCompare
+ * CAndOperator returns ObjectCompare
+ * CAndOperator.AndOperator_1_0_0_0 returns ObjectCompare
+ * CEqualityExpression returns ObjectCompare
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns ObjectCompare
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns ObjectCompare
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns ObjectCompare
+ * CRelationalExpression returns ObjectCompare
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns ObjectCompare
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns ObjectCompare
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns ObjectCompare
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns ObjectCompare
+ * CUnaryOperation returns ObjectCompare
+ * COperationFeatureCall returns ObjectCompare
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns ObjectCompare
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns ObjectCompare
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns ObjectCompare
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns ObjectCompare
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns ObjectCompare
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns ObjectCompare
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns ObjectCompare
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns ObjectCompare
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns ObjectCompare
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns ObjectCompare
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns ObjectCompare
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns ObjectCompare
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns ObjectCompare
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns ObjectCompare
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns ObjectCompare
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns ObjectCompare
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns ObjectCompare
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns ObjectCompare
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns ObjectCompare
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns ObjectCompare
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns ObjectCompare
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns ObjectCompare
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns ObjectCompare
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns ObjectCompare
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns ObjectCompare
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns ObjectCompare
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns ObjectCompare
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns ObjectCompare
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns ObjectCompare
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns ObjectCompare
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns ObjectCompare
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns ObjectCompare
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns ObjectCompare
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns ObjectCompare
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns ObjectCompare
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns ObjectCompare
+ * CPrimaryExpression returns ObjectCompare
+ *
+ * Constraint:
+ * (operand+=CEqualityExpression_ObjectCompare_1_0_0_0_0 operand+=CRelationalExpression)
+ */
+ protected void sequence_CEqualityExpression(ISerializationContext context, ObjectCompare semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns ObjectCompareNot
+ * CImpliesOperator returns ObjectCompareNot
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns ObjectCompareNot
+ * COrOperator returns ObjectCompareNot
+ * COrOperator.OrOperator_1_0_0_0 returns ObjectCompareNot
+ * CAndOperator returns ObjectCompareNot
+ * CAndOperator.AndOperator_1_0_0_0 returns ObjectCompareNot
+ * CEqualityExpression returns ObjectCompareNot
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns ObjectCompareNot
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns ObjectCompareNot
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns ObjectCompareNot
+ * CRelationalExpression returns ObjectCompareNot
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns ObjectCompareNot
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns ObjectCompareNot
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns ObjectCompareNot
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns ObjectCompareNot
+ * CUnaryOperation returns ObjectCompareNot
+ * COperationFeatureCall returns ObjectCompareNot
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns ObjectCompareNot
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns ObjectCompareNot
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns ObjectCompareNot
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns ObjectCompareNot
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns ObjectCompareNot
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns ObjectCompareNot
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns ObjectCompareNot
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns ObjectCompareNot
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns ObjectCompareNot
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns ObjectCompareNot
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns ObjectCompareNot
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns ObjectCompareNot
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns ObjectCompareNot
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns ObjectCompareNot
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns ObjectCompareNot
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns ObjectCompareNot
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns ObjectCompareNot
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns ObjectCompareNot
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns ObjectCompareNot
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns ObjectCompareNot
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns ObjectCompareNot
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns ObjectCompareNot
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns ObjectCompareNot
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns ObjectCompareNot
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns ObjectCompareNot
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns ObjectCompareNot
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns ObjectCompareNot
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns ObjectCompareNot
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns ObjectCompareNot
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns ObjectCompareNot
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns ObjectCompareNot
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns ObjectCompareNot
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns ObjectCompareNot
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns ObjectCompareNot
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns ObjectCompareNot
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns ObjectCompareNot
+ * CPrimaryExpression returns ObjectCompareNot
+ *
+ * Constraint:
+ * (operand+=CEqualityExpression_ObjectCompareNot_1_0_0_1_0 operand+=CRelationalExpression)
+ */
+ protected void sequence_CEqualityExpression(ISerializationContext context, ObjectCompareNot semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns ImpliesOperator
+ * CImpliesOperator returns ImpliesOperator
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns ImpliesOperator
+ * COrOperator returns ImpliesOperator
+ * COrOperator.OrOperator_1_0_0_0 returns ImpliesOperator
+ * CAndOperator returns ImpliesOperator
+ * CAndOperator.AndOperator_1_0_0_0 returns ImpliesOperator
+ * CEqualityExpression returns ImpliesOperator
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns ImpliesOperator
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns ImpliesOperator
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns ImpliesOperator
+ * CRelationalExpression returns ImpliesOperator
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns ImpliesOperator
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns ImpliesOperator
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns ImpliesOperator
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns ImpliesOperator
+ * CUnaryOperation returns ImpliesOperator
+ * COperationFeatureCall returns ImpliesOperator
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns ImpliesOperator
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns ImpliesOperator
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns ImpliesOperator
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns ImpliesOperator
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns ImpliesOperator
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns ImpliesOperator
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns ImpliesOperator
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns ImpliesOperator
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns ImpliesOperator
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns ImpliesOperator
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns ImpliesOperator
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns ImpliesOperator
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns ImpliesOperator
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns ImpliesOperator
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns ImpliesOperator
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns ImpliesOperator
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns ImpliesOperator
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns ImpliesOperator
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns ImpliesOperator
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns ImpliesOperator
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns ImpliesOperator
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns ImpliesOperator
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns ImpliesOperator
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns ImpliesOperator
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns ImpliesOperator
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns ImpliesOperator
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns ImpliesOperator
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns ImpliesOperator
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns ImpliesOperator
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns ImpliesOperator
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns ImpliesOperator
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns ImpliesOperator
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns ImpliesOperator
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns ImpliesOperator
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns ImpliesOperator
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns ImpliesOperator
+ * CPrimaryExpression returns ImpliesOperator
+ *
+ * Constraint:
+ * (operand+=CImpliesOperator_ImpliesOperator_1_0_0_0 operand+=COrOperator)
+ */
+ protected void sequence_CImpliesOperator(ISerializationContext context, ImpliesOperator semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns MemberFeatureReference
+ * CImpliesOperator returns MemberFeatureReference
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns MemberFeatureReference
+ * COrOperator returns MemberFeatureReference
+ * COrOperator.OrOperator_1_0_0_0 returns MemberFeatureReference
+ * CAndOperator returns MemberFeatureReference
+ * CAndOperator.AndOperator_1_0_0_0 returns MemberFeatureReference
+ * CEqualityExpression returns MemberFeatureReference
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns MemberFeatureReference
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns MemberFeatureReference
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns MemberFeatureReference
+ * CRelationalExpression returns MemberFeatureReference
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns MemberFeatureReference
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns MemberFeatureReference
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns MemberFeatureReference
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns MemberFeatureReference
+ * CUnaryOperation returns MemberFeatureReference
+ * COperationFeatureCall returns MemberFeatureReference
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns MemberFeatureReference
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns MemberFeatureReference
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns MemberFeatureReference
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns MemberFeatureReference
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns MemberFeatureReference
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns MemberFeatureReference
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns MemberFeatureReference
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns MemberFeatureReference
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns MemberFeatureReference
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns MemberFeatureReference
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns MemberFeatureReference
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns MemberFeatureReference
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns MemberFeatureReference
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns MemberFeatureReference
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns MemberFeatureReference
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns MemberFeatureReference
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns MemberFeatureReference
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns MemberFeatureReference
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns MemberFeatureReference
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns MemberFeatureReference
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns MemberFeatureReference
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns MemberFeatureReference
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns MemberFeatureReference
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns MemberFeatureReference
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns MemberFeatureReference
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns MemberFeatureReference
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns MemberFeatureReference
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns MemberFeatureReference
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns MemberFeatureReference
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns MemberFeatureReference
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns MemberFeatureReference
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns MemberFeatureReference
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns MemberFeatureReference
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns MemberFeatureReference
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns MemberFeatureReference
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns MemberFeatureReference
+ * CPrimaryExpression returns MemberFeatureReference
+ * CMemberFeatureReference returns MemberFeatureReference
+ * CMemberFeatureReference.MemberFeatureReference_2_0 returns MemberFeatureReference
+ *
+ * Constraint:
+ * (operand+=CMemberFeatureReference_MemberFeatureReference_2_0 refObject=[RuleObject|ValidID])
+ */
+ protected void sequence_CMemberFeatureReference(ISerializationContext context, MemberFeatureReference semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns ObjectReference
+ * CImpliesOperator returns ObjectReference
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns ObjectReference
+ * COrOperator returns ObjectReference
+ * COrOperator.OrOperator_1_0_0_0 returns ObjectReference
+ * CAndOperator returns ObjectReference
+ * CAndOperator.AndOperator_1_0_0_0 returns ObjectReference
+ * CEqualityExpression returns ObjectReference
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns ObjectReference
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns ObjectReference
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns ObjectReference
+ * CRelationalExpression returns ObjectReference
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns ObjectReference
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns ObjectReference
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns ObjectReference
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns ObjectReference
+ * CUnaryOperation returns ObjectReference
+ * COperationFeatureCall returns ObjectReference
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns ObjectReference
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns ObjectReference
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns ObjectReference
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns ObjectReference
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns ObjectReference
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns ObjectReference
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns ObjectReference
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns ObjectReference
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns ObjectReference
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns ObjectReference
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns ObjectReference
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns ObjectReference
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns ObjectReference
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns ObjectReference
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns ObjectReference
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns ObjectReference
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns ObjectReference
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns ObjectReference
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns ObjectReference
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns ObjectReference
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns ObjectReference
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns ObjectReference
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns ObjectReference
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns ObjectReference
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns ObjectReference
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns ObjectReference
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns ObjectReference
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns ObjectReference
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns ObjectReference
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns ObjectReference
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns ObjectReference
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns ObjectReference
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns ObjectReference
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns ObjectReference
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns ObjectReference
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns ObjectReference
+ * CPrimaryExpression returns ObjectReference
+ * CMemberFeatureReference returns ObjectReference
+ * CMemberFeatureReference.MemberFeatureReference_2_0 returns ObjectReference
+ *
+ * Constraint:
+ * refObject=[RuleObject|IdOrThis]
+ */
+ protected void sequence_CMemberFeatureReference(ISerializationContext context, ObjectReference semanticObject) {
+ if (errorAcceptor != null) {
+ if (transientValues.isValueTransient(semanticObject, RBACorePackage.Literals.OBJECT_REFERENCE__REF_OBJECT) == ValueTransient.YES)
+ errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, RBACorePackage.Literals.OBJECT_REFERENCE__REF_OBJECT));
+ }
+ SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+ feeder.accept(grammarAccess.getCMemberFeatureReferenceAccess().getRefObjectRuleObjectIdOrThisParserRuleCall_1_0_1(), semanticObject.eGet(RBACorePackage.Literals.OBJECT_REFERENCE__REF_OBJECT, false));
+ feeder.finish();
+ }
+
+
+ /**
+ * Contexts:
+ * CObjectReference returns ObjectReference
+ *
+ * Constraint:
+ * refObject=[RuleObject|IdOrThis]
+ */
+ protected void sequence_CObjectReference(ISerializationContext context, ObjectReference semanticObject) {
+ if (errorAcceptor != null) {
+ if (transientValues.isValueTransient(semanticObject, RBACorePackage.Literals.OBJECT_REFERENCE__REF_OBJECT) == ValueTransient.YES)
+ errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, RBACorePackage.Literals.OBJECT_REFERENCE__REF_OBJECT));
+ }
+ SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+ feeder.accept(grammarAccess.getCObjectReferenceAccess().getRefObjectRuleObjectIdOrThisParserRuleCall_1_0_1(), semanticObject.eGet(RBACorePackage.Literals.OBJECT_REFERENCE__REF_OBJECT, false));
+ feeder.finish();
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns ActiveContents
+ * CImpliesOperator returns ActiveContents
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns ActiveContents
+ * COrOperator returns ActiveContents
+ * COrOperator.OrOperator_1_0_0_0 returns ActiveContents
+ * CAndOperator returns ActiveContents
+ * CAndOperator.AndOperator_1_0_0_0 returns ActiveContents
+ * CEqualityExpression returns ActiveContents
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns ActiveContents
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns ActiveContents
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns ActiveContents
+ * CRelationalExpression returns ActiveContents
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns ActiveContents
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns ActiveContents
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns ActiveContents
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns ActiveContents
+ * CUnaryOperation returns ActiveContents
+ * COperationFeatureCall returns ActiveContents
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns ActiveContents
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns ActiveContents
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns ActiveContents
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns ActiveContents
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns ActiveContents
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns ActiveContents
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns ActiveContents
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns ActiveContents
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns ActiveContents
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns ActiveContents
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns ActiveContents
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns ActiveContents
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns ActiveContents
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns ActiveContents
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns ActiveContents
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns ActiveContents
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns ActiveContents
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns ActiveContents
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns ActiveContents
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns ActiveContents
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns ActiveContents
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns ActiveContents
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns ActiveContents
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns ActiveContents
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns ActiveContents
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns ActiveContents
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns ActiveContents
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns ActiveContents
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns ActiveContents
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns ActiveContents
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns ActiveContents
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns ActiveContents
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns ActiveContents
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns ActiveContents
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns ActiveContents
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns ActiveContents
+ * CPrimaryExpression returns ActiveContents
+ *
+ * Constraint:
+ * (operand+=COperationFeatureCall_ActiveContents_1_1_0_0_10_0 operand+=CExpression?)
+ */
+ protected void sequence_COperationFeatureCall(ISerializationContext context, ActiveContents semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns ActiveState
+ * CImpliesOperator returns ActiveState
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns ActiveState
+ * COrOperator returns ActiveState
+ * COrOperator.OrOperator_1_0_0_0 returns ActiveState
+ * CAndOperator returns ActiveState
+ * CAndOperator.AndOperator_1_0_0_0 returns ActiveState
+ * CEqualityExpression returns ActiveState
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns ActiveState
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns ActiveState
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns ActiveState
+ * CRelationalExpression returns ActiveState
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns ActiveState
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns ActiveState
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns ActiveState
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns ActiveState
+ * CUnaryOperation returns ActiveState
+ * COperationFeatureCall returns ActiveState
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns ActiveState
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns ActiveState
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns ActiveState
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns ActiveState
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns ActiveState
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns ActiveState
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns ActiveState
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns ActiveState
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns ActiveState
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns ActiveState
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns ActiveState
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns ActiveState
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns ActiveState
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns ActiveState
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns ActiveState
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns ActiveState
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns ActiveState
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns ActiveState
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns ActiveState
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns ActiveState
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns ActiveState
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns ActiveState
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns ActiveState
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns ActiveState
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns ActiveState
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns ActiveState
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns ActiveState
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns ActiveState
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns ActiveState
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns ActiveState
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns ActiveState
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns ActiveState
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns ActiveState
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns ActiveState
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns ActiveState
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns ActiveState
+ * CPrimaryExpression returns ActiveState
+ *
+ * Constraint:
+ * (operand+=COperationFeatureCall_ActiveState_1_1_0_0_13_0 operand+=CExpression?)
+ */
+ protected void sequence_COperationFeatureCall(ISerializationContext context, ActiveState semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns AllocatedContent
+ * CImpliesOperator returns AllocatedContent
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns AllocatedContent
+ * COrOperator returns AllocatedContent
+ * COrOperator.OrOperator_1_0_0_0 returns AllocatedContent
+ * CAndOperator returns AllocatedContent
+ * CAndOperator.AndOperator_1_0_0_0 returns AllocatedContent
+ * CEqualityExpression returns AllocatedContent
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns AllocatedContent
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns AllocatedContent
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns AllocatedContent
+ * CRelationalExpression returns AllocatedContent
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns AllocatedContent
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns AllocatedContent
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns AllocatedContent
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns AllocatedContent
+ * CUnaryOperation returns AllocatedContent
+ * COperationFeatureCall returns AllocatedContent
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns AllocatedContent
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns AllocatedContent
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns AllocatedContent
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns AllocatedContent
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns AllocatedContent
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns AllocatedContent
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns AllocatedContent
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns AllocatedContent
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns AllocatedContent
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns AllocatedContent
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns AllocatedContent
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns AllocatedContent
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns AllocatedContent
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns AllocatedContent
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns AllocatedContent
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns AllocatedContent
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns AllocatedContent
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns AllocatedContent
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns AllocatedContent
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns AllocatedContent
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns AllocatedContent
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns AllocatedContent
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns AllocatedContent
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns AllocatedContent
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns AllocatedContent
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns AllocatedContent
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns AllocatedContent
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns AllocatedContent
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns AllocatedContent
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns AllocatedContent
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns AllocatedContent
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns AllocatedContent
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns AllocatedContent
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns AllocatedContent
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns AllocatedContent
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns AllocatedContent
+ * CPrimaryExpression returns AllocatedContent
+ *
+ * Constraint:
+ * (operand+=COperationFeatureCall_AllocatedContent_1_1_0_0_6_0 operand+=CExpression?)
+ */
+ protected void sequence_COperationFeatureCall(ISerializationContext context, AllocatedContent semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns ContentValue
+ * CImpliesOperator returns ContentValue
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns ContentValue
+ * COrOperator returns ContentValue
+ * COrOperator.OrOperator_1_0_0_0 returns ContentValue
+ * CAndOperator returns ContentValue
+ * CAndOperator.AndOperator_1_0_0_0 returns ContentValue
+ * CEqualityExpression returns ContentValue
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns ContentValue
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns ContentValue
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns ContentValue
+ * CRelationalExpression returns ContentValue
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns ContentValue
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns ContentValue
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns ContentValue
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns ContentValue
+ * CUnaryOperation returns ContentValue
+ * COperationFeatureCall returns ContentValue
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns ContentValue
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns ContentValue
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns ContentValue
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns ContentValue
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns ContentValue
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns ContentValue
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns ContentValue
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns ContentValue
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns ContentValue
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns ContentValue
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns ContentValue
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns ContentValue
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns ContentValue
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns ContentValue
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns ContentValue
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns ContentValue
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns ContentValue
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns ContentValue
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns ContentValue
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns ContentValue
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns ContentValue
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns ContentValue
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns ContentValue
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns ContentValue
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns ContentValue
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns ContentValue
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns ContentValue
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns ContentValue
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns ContentValue
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns ContentValue
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns ContentValue
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns ContentValue
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns ContentValue
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns ContentValue
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns ContentValue
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns ContentValue
+ * CPrimaryExpression returns ContentValue
+ *
+ * Constraint:
+ * (operand+=COperationFeatureCall_ContentValue_1_1_0_0_3_0 operand+=CExpression?)
+ */
+ protected void sequence_COperationFeatureCall(ISerializationContext context, ContentValue semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns DisplayingContent
+ * CImpliesOperator returns DisplayingContent
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns DisplayingContent
+ * COrOperator returns DisplayingContent
+ * COrOperator.OrOperator_1_0_0_0 returns DisplayingContent
+ * CAndOperator returns DisplayingContent
+ * CAndOperator.AndOperator_1_0_0_0 returns DisplayingContent
+ * CEqualityExpression returns DisplayingContent
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns DisplayingContent
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns DisplayingContent
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns DisplayingContent
+ * CRelationalExpression returns DisplayingContent
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns DisplayingContent
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns DisplayingContent
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns DisplayingContent
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns DisplayingContent
+ * CUnaryOperation returns DisplayingContent
+ * COperationFeatureCall returns DisplayingContent
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns DisplayingContent
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns DisplayingContent
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns DisplayingContent
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns DisplayingContent
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns DisplayingContent
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns DisplayingContent
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns DisplayingContent
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns DisplayingContent
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns DisplayingContent
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns DisplayingContent
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns DisplayingContent
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns DisplayingContent
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns DisplayingContent
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns DisplayingContent
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns DisplayingContent
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns DisplayingContent
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns DisplayingContent
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns DisplayingContent
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns DisplayingContent
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns DisplayingContent
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns DisplayingContent
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns DisplayingContent
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns DisplayingContent
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns DisplayingContent
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns DisplayingContent
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns DisplayingContent
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns DisplayingContent
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns DisplayingContent
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns DisplayingContent
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns DisplayingContent
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns DisplayingContent
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns DisplayingContent
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns DisplayingContent
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns DisplayingContent
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns DisplayingContent
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns DisplayingContent
+ * CPrimaryExpression returns DisplayingContent
+ *
+ * Constraint:
+ * (operand+=COperationFeatureCall_DisplayingContent_1_1_0_0_16_0 operand+=CExpression?)
+ */
+ protected void sequence_COperationFeatureCall(ISerializationContext context, DisplayingContent semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns GetAllocatables
+ * CImpliesOperator returns GetAllocatables
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns GetAllocatables
+ * COrOperator returns GetAllocatables
+ * COrOperator.OrOperator_1_0_0_0 returns GetAllocatables
+ * CAndOperator returns GetAllocatables
+ * CAndOperator.AndOperator_1_0_0_0 returns GetAllocatables
+ * CEqualityExpression returns GetAllocatables
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns GetAllocatables
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns GetAllocatables
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns GetAllocatables
+ * CRelationalExpression returns GetAllocatables
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns GetAllocatables
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns GetAllocatables
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns GetAllocatables
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns GetAllocatables
+ * CUnaryOperation returns GetAllocatables
+ * COperationFeatureCall returns GetAllocatables
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns GetAllocatables
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns GetAllocatables
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns GetAllocatables
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns GetAllocatables
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns GetAllocatables
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns GetAllocatables
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns GetAllocatables
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns GetAllocatables
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns GetAllocatables
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns GetAllocatables
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns GetAllocatables
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns GetAllocatables
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns GetAllocatables
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns GetAllocatables
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns GetAllocatables
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns GetAllocatables
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns GetAllocatables
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns GetAllocatables
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns GetAllocatables
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns GetAllocatables
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns GetAllocatables
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns GetAllocatables
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns GetAllocatables
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns GetAllocatables
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns GetAllocatables
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns GetAllocatables
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns GetAllocatables
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns GetAllocatables
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns GetAllocatables
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns GetAllocatables
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns GetAllocatables
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns GetAllocatables
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns GetAllocatables
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns GetAllocatables
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns GetAllocatables
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns GetAllocatables
+ * CPrimaryExpression returns GetAllocatables
+ *
+ * Constraint:
+ * (operand+=COperationFeatureCall_GetAllocatables_1_1_0_0_5_0 operand+=CExpression?)
+ */
+ protected void sequence_COperationFeatureCall(ISerializationContext context, GetAllocatables semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns GetContentsList
+ * CImpliesOperator returns GetContentsList
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns GetContentsList
+ * COrOperator returns GetContentsList
+ * COrOperator.OrOperator_1_0_0_0 returns GetContentsList
+ * CAndOperator returns GetContentsList
+ * CAndOperator.AndOperator_1_0_0_0 returns GetContentsList
+ * CEqualityExpression returns GetContentsList
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns GetContentsList
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns GetContentsList
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns GetContentsList
+ * CRelationalExpression returns GetContentsList
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns GetContentsList
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns GetContentsList
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns GetContentsList
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns GetContentsList
+ * CUnaryOperation returns GetContentsList
+ * COperationFeatureCall returns GetContentsList
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns GetContentsList
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns GetContentsList
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns GetContentsList
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns GetContentsList
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns GetContentsList
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns GetContentsList
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns GetContentsList
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns GetContentsList
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns GetContentsList
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns GetContentsList
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns GetContentsList
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns GetContentsList
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns GetContentsList
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns GetContentsList
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns GetContentsList
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns GetContentsList
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns GetContentsList
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns GetContentsList
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns GetContentsList
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns GetContentsList
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns GetContentsList
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns GetContentsList
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns GetContentsList
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns GetContentsList
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns GetContentsList
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns GetContentsList
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns GetContentsList
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns GetContentsList
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns GetContentsList
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns GetContentsList
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns GetContentsList
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns GetContentsList
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns GetContentsList
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns GetContentsList
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns GetContentsList
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns GetContentsList
+ * CPrimaryExpression returns GetContentsList
+ *
+ * Constraint:
+ * (operand+=COperationFeatureCall_GetContentsList_1_1_0_0_2_0 operand+=CExpression?)
+ */
+ protected void sequence_COperationFeatureCall(ISerializationContext context, GetContentsList semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns GetProperty
+ * CImpliesOperator returns GetProperty
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns GetProperty
+ * COrOperator returns GetProperty
+ * COrOperator.OrOperator_1_0_0_0 returns GetProperty
+ * CAndOperator returns GetProperty
+ * CAndOperator.AndOperator_1_0_0_0 returns GetProperty
+ * CEqualityExpression returns GetProperty
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns GetProperty
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns GetProperty
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns GetProperty
+ * CRelationalExpression returns GetProperty
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns GetProperty
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns GetProperty
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns GetProperty
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns GetProperty
+ * CUnaryOperation returns GetProperty
+ * COperationFeatureCall returns GetProperty
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns GetProperty
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns GetProperty
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns GetProperty
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns GetProperty
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns GetProperty
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns GetProperty
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns GetProperty
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns GetProperty
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns GetProperty
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns GetProperty
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns GetProperty
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns GetProperty
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns GetProperty
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns GetProperty
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns GetProperty
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns GetProperty
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns GetProperty
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns GetProperty
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns GetProperty
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns GetProperty
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns GetProperty
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns GetProperty
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns GetProperty
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns GetProperty
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns GetProperty
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns GetProperty
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns GetProperty
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns GetProperty
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns GetProperty
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns GetProperty
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns GetProperty
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns GetProperty
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns GetProperty
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns GetProperty
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns GetProperty
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns GetProperty
+ * CPrimaryExpression returns GetProperty
+ *
+ * Constraint:
+ * (operand+=COperationFeatureCall_GetProperty_1_1_0_0_0_0 operand+=CExpression?)
+ */
+ protected void sequence_COperationFeatureCall(ISerializationContext context, GetProperty semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns HasBeenDisplayed
+ * CImpliesOperator returns HasBeenDisplayed
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns HasBeenDisplayed
+ * COrOperator returns HasBeenDisplayed
+ * COrOperator.OrOperator_1_0_0_0 returns HasBeenDisplayed
+ * CAndOperator returns HasBeenDisplayed
+ * CAndOperator.AndOperator_1_0_0_0 returns HasBeenDisplayed
+ * CEqualityExpression returns HasBeenDisplayed
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns HasBeenDisplayed
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns HasBeenDisplayed
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns HasBeenDisplayed
+ * CRelationalExpression returns HasBeenDisplayed
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns HasBeenDisplayed
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns HasBeenDisplayed
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns HasBeenDisplayed
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns HasBeenDisplayed
+ * CUnaryOperation returns HasBeenDisplayed
+ * COperationFeatureCall returns HasBeenDisplayed
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns HasBeenDisplayed
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns HasBeenDisplayed
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns HasBeenDisplayed
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns HasBeenDisplayed
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns HasBeenDisplayed
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns HasBeenDisplayed
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns HasBeenDisplayed
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns HasBeenDisplayed
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns HasBeenDisplayed
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns HasBeenDisplayed
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns HasBeenDisplayed
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns HasBeenDisplayed
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns HasBeenDisplayed
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns HasBeenDisplayed
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns HasBeenDisplayed
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns HasBeenDisplayed
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns HasBeenDisplayed
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns HasBeenDisplayed
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns HasBeenDisplayed
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns HasBeenDisplayed
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns HasBeenDisplayed
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns HasBeenDisplayed
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns HasBeenDisplayed
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns HasBeenDisplayed
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns HasBeenDisplayed
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns HasBeenDisplayed
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns HasBeenDisplayed
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns HasBeenDisplayed
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns HasBeenDisplayed
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns HasBeenDisplayed
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns HasBeenDisplayed
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns HasBeenDisplayed
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns HasBeenDisplayed
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns HasBeenDisplayed
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns HasBeenDisplayed
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns HasBeenDisplayed
+ * CPrimaryExpression returns HasBeenDisplayed
+ *
+ * Constraint:
+ * (operand+=COperationFeatureCall_HasBeenDisplayed_1_1_0_0_12_0 operand+=CExpression?)
+ */
+ protected void sequence_COperationFeatureCall(ISerializationContext context, HasBeenDisplayed semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns HasComeEarlierThan
+ * CImpliesOperator returns HasComeEarlierThan
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns HasComeEarlierThan
+ * COrOperator returns HasComeEarlierThan
+ * COrOperator.OrOperator_1_0_0_0 returns HasComeEarlierThan
+ * CAndOperator returns HasComeEarlierThan
+ * CAndOperator.AndOperator_1_0_0_0 returns HasComeEarlierThan
+ * CEqualityExpression returns HasComeEarlierThan
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns HasComeEarlierThan
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns HasComeEarlierThan
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns HasComeEarlierThan
+ * CRelationalExpression returns HasComeEarlierThan
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns HasComeEarlierThan
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns HasComeEarlierThan
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns HasComeEarlierThan
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns HasComeEarlierThan
+ * CUnaryOperation returns HasComeEarlierThan
+ * COperationFeatureCall returns HasComeEarlierThan
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns HasComeEarlierThan
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns HasComeEarlierThan
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns HasComeEarlierThan
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns HasComeEarlierThan
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns HasComeEarlierThan
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns HasComeEarlierThan
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns HasComeEarlierThan
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns HasComeEarlierThan
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns HasComeEarlierThan
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns HasComeEarlierThan
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns HasComeEarlierThan
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns HasComeEarlierThan
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns HasComeEarlierThan
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns HasComeEarlierThan
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns HasComeEarlierThan
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns HasComeEarlierThan
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns HasComeEarlierThan
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns HasComeEarlierThan
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns HasComeEarlierThan
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns HasComeEarlierThan
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns HasComeEarlierThan
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns HasComeEarlierThan
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns HasComeEarlierThan
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns HasComeEarlierThan
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns HasComeEarlierThan
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns HasComeEarlierThan
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns HasComeEarlierThan
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns HasComeEarlierThan
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns HasComeEarlierThan
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns HasComeEarlierThan
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns HasComeEarlierThan
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns HasComeEarlierThan
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns HasComeEarlierThan
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns HasComeEarlierThan
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns HasComeEarlierThan
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns HasComeEarlierThan
+ * CPrimaryExpression returns HasComeEarlierThan
+ *
+ * Constraint:
+ * (operand+=COperationFeatureCall_HasComeEarlierThan_1_1_0_0_7_0 operand+=CExpression?)
+ */
+ protected void sequence_COperationFeatureCall(ISerializationContext context, HasComeEarlierThan semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns HasComeLaterThan
+ * CImpliesOperator returns HasComeLaterThan
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns HasComeLaterThan
+ * COrOperator returns HasComeLaterThan
+ * COrOperator.OrOperator_1_0_0_0 returns HasComeLaterThan
+ * CAndOperator returns HasComeLaterThan
+ * CAndOperator.AndOperator_1_0_0_0 returns HasComeLaterThan
+ * CEqualityExpression returns HasComeLaterThan
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns HasComeLaterThan
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns HasComeLaterThan
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns HasComeLaterThan
+ * CRelationalExpression returns HasComeLaterThan
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns HasComeLaterThan
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns HasComeLaterThan
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns HasComeLaterThan
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns HasComeLaterThan
+ * CUnaryOperation returns HasComeLaterThan
+ * COperationFeatureCall returns HasComeLaterThan
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns HasComeLaterThan
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns HasComeLaterThan
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns HasComeLaterThan
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns HasComeLaterThan
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns HasComeLaterThan
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns HasComeLaterThan
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns HasComeLaterThan
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns HasComeLaterThan
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns HasComeLaterThan
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns HasComeLaterThan
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns HasComeLaterThan
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns HasComeLaterThan
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns HasComeLaterThan
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns HasComeLaterThan
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns HasComeLaterThan
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns HasComeLaterThan
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns HasComeLaterThan
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns HasComeLaterThan
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns HasComeLaterThan
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns HasComeLaterThan
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns HasComeLaterThan
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns HasComeLaterThan
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns HasComeLaterThan
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns HasComeLaterThan
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns HasComeLaterThan
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns HasComeLaterThan
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns HasComeLaterThan
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns HasComeLaterThan
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns HasComeLaterThan
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns HasComeLaterThan
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns HasComeLaterThan
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns HasComeLaterThan
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns HasComeLaterThan
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns HasComeLaterThan
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns HasComeLaterThan
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns HasComeLaterThan
+ * CPrimaryExpression returns HasComeLaterThan
+ *
+ * Constraint:
+ * (operand+=COperationFeatureCall_HasComeLaterThan_1_1_0_0_8_0 operand+=CExpression?)
+ */
+ protected void sequence_COperationFeatureCall(ISerializationContext context, HasComeLaterThan semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns IsActive
+ * CImpliesOperator returns IsActive
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns IsActive
+ * COrOperator returns IsActive
+ * COrOperator.OrOperator_1_0_0_0 returns IsActive
+ * CAndOperator returns IsActive
+ * CAndOperator.AndOperator_1_0_0_0 returns IsActive
+ * CEqualityExpression returns IsActive
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns IsActive
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns IsActive
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns IsActive
+ * CRelationalExpression returns IsActive
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns IsActive
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns IsActive
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns IsActive
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns IsActive
+ * CUnaryOperation returns IsActive
+ * COperationFeatureCall returns IsActive
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns IsActive
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns IsActive
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns IsActive
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns IsActive
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns IsActive
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns IsActive
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns IsActive
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns IsActive
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns IsActive
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns IsActive
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns IsActive
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns IsActive
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns IsActive
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns IsActive
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns IsActive
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns IsActive
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns IsActive
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns IsActive
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns IsActive
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns IsActive
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns IsActive
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns IsActive
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns IsActive
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns IsActive
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns IsActive
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns IsActive
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns IsActive
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns IsActive
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns IsActive
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns IsActive
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns IsActive
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns IsActive
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns IsActive
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns IsActive
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns IsActive
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns IsActive
+ * CPrimaryExpression returns IsActive
+ *
+ * Constraint:
+ * (operand+=COperationFeatureCall_IsActive_1_1_0_0_4_0 operand+=CExpression?)
+ */
+ protected void sequence_COperationFeatureCall(ISerializationContext context, IsActive semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns IsAllocatedTo
+ * CImpliesOperator returns IsAllocatedTo
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns IsAllocatedTo
+ * COrOperator returns IsAllocatedTo
+ * COrOperator.OrOperator_1_0_0_0 returns IsAllocatedTo
+ * CAndOperator returns IsAllocatedTo
+ * CAndOperator.AndOperator_1_0_0_0 returns IsAllocatedTo
+ * CEqualityExpression returns IsAllocatedTo
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns IsAllocatedTo
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns IsAllocatedTo
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns IsAllocatedTo
+ * CRelationalExpression returns IsAllocatedTo
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns IsAllocatedTo
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns IsAllocatedTo
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns IsAllocatedTo
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns IsAllocatedTo
+ * CUnaryOperation returns IsAllocatedTo
+ * COperationFeatureCall returns IsAllocatedTo
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns IsAllocatedTo
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns IsAllocatedTo
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns IsAllocatedTo
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns IsAllocatedTo
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns IsAllocatedTo
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns IsAllocatedTo
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns IsAllocatedTo
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns IsAllocatedTo
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns IsAllocatedTo
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns IsAllocatedTo
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns IsAllocatedTo
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns IsAllocatedTo
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns IsAllocatedTo
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns IsAllocatedTo
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns IsAllocatedTo
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns IsAllocatedTo
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns IsAllocatedTo
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns IsAllocatedTo
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns IsAllocatedTo
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns IsAllocatedTo
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns IsAllocatedTo
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns IsAllocatedTo
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns IsAllocatedTo
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns IsAllocatedTo
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns IsAllocatedTo
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns IsAllocatedTo
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns IsAllocatedTo
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns IsAllocatedTo
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns IsAllocatedTo
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns IsAllocatedTo
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns IsAllocatedTo
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns IsAllocatedTo
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns IsAllocatedTo
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns IsAllocatedTo
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns IsAllocatedTo
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns IsAllocatedTo
+ * CPrimaryExpression returns IsAllocatedTo
+ *
+ * Constraint:
+ * (operand+=COperationFeatureCall_IsAllocatedTo_1_1_0_0_22_0 operand+=CExpression?)
+ */
+ protected void sequence_COperationFeatureCall(ISerializationContext context, IsAllocatedTo semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns IsAttenuated
+ * CImpliesOperator returns IsAttenuated
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns IsAttenuated
+ * COrOperator returns IsAttenuated
+ * COrOperator.OrOperator_1_0_0_0 returns IsAttenuated
+ * CAndOperator returns IsAttenuated
+ * CAndOperator.AndOperator_1_0_0_0 returns IsAttenuated
+ * CEqualityExpression returns IsAttenuated
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns IsAttenuated
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns IsAttenuated
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns IsAttenuated
+ * CRelationalExpression returns IsAttenuated
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns IsAttenuated
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns IsAttenuated
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns IsAttenuated
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns IsAttenuated
+ * CUnaryOperation returns IsAttenuated
+ * COperationFeatureCall returns IsAttenuated
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns IsAttenuated
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns IsAttenuated
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns IsAttenuated
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns IsAttenuated
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns IsAttenuated
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns IsAttenuated
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns IsAttenuated
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns IsAttenuated
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns IsAttenuated
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns IsAttenuated
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns IsAttenuated
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns IsAttenuated
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns IsAttenuated
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns IsAttenuated
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns IsAttenuated
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns IsAttenuated
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns IsAttenuated
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns IsAttenuated
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns IsAttenuated
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns IsAttenuated
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns IsAttenuated
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns IsAttenuated
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns IsAttenuated
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns IsAttenuated
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns IsAttenuated
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns IsAttenuated
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns IsAttenuated
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns IsAttenuated
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns IsAttenuated
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns IsAttenuated
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns IsAttenuated
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns IsAttenuated
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns IsAttenuated
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns IsAttenuated
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns IsAttenuated
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns IsAttenuated
+ * CPrimaryExpression returns IsAttenuated
+ *
+ * Constraint:
+ * (operand+=COperationFeatureCall_IsAttenuated_1_1_0_0_31_0 operand+=CExpression?)
+ */
+ protected void sequence_COperationFeatureCall(ISerializationContext context, IsAttenuated semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns IsChanged
+ * CImpliesOperator returns IsChanged
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns IsChanged
+ * COrOperator returns IsChanged
+ * COrOperator.OrOperator_1_0_0_0 returns IsChanged
+ * CAndOperator returns IsChanged
+ * CAndOperator.AndOperator_1_0_0_0 returns IsChanged
+ * CEqualityExpression returns IsChanged
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns IsChanged
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns IsChanged
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns IsChanged
+ * CRelationalExpression returns IsChanged
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns IsChanged
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns IsChanged
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns IsChanged
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns IsChanged
+ * CUnaryOperation returns IsChanged
+ * COperationFeatureCall returns IsChanged
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns IsChanged
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns IsChanged
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns IsChanged
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns IsChanged
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns IsChanged
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns IsChanged
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns IsChanged
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns IsChanged
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns IsChanged
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns IsChanged
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns IsChanged
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns IsChanged
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns IsChanged
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns IsChanged
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns IsChanged
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns IsChanged
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns IsChanged
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns IsChanged
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns IsChanged
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns IsChanged
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns IsChanged
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns IsChanged
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns IsChanged
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns IsChanged
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns IsChanged
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns IsChanged
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns IsChanged
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns IsChanged
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns IsChanged
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns IsChanged
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns IsChanged
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns IsChanged
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns IsChanged
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns IsChanged
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns IsChanged
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns IsChanged
+ * CPrimaryExpression returns IsChanged
+ *
+ * Constraint:
+ * (operand+=COperationFeatureCall_IsChanged_1_1_0_0_23_0 operand+=CExpression?)
+ */
+ protected void sequence_COperationFeatureCall(ISerializationContext context, IsChanged semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns IsChangedDisplay
+ * CImpliesOperator returns IsChangedDisplay
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns IsChangedDisplay
+ * COrOperator returns IsChangedDisplay
+ * COrOperator.OrOperator_1_0_0_0 returns IsChangedDisplay
+ * CAndOperator returns IsChangedDisplay
+ * CAndOperator.AndOperator_1_0_0_0 returns IsChangedDisplay
+ * CEqualityExpression returns IsChangedDisplay
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns IsChangedDisplay
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns IsChangedDisplay
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns IsChangedDisplay
+ * CRelationalExpression returns IsChangedDisplay
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns IsChangedDisplay
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns IsChangedDisplay
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns IsChangedDisplay
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns IsChangedDisplay
+ * CUnaryOperation returns IsChangedDisplay
+ * COperationFeatureCall returns IsChangedDisplay
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns IsChangedDisplay
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns IsChangedDisplay
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns IsChangedDisplay
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns IsChangedDisplay
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns IsChangedDisplay
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns IsChangedDisplay
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns IsChangedDisplay
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns IsChangedDisplay
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns IsChangedDisplay
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns IsChangedDisplay
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns IsChangedDisplay
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns IsChangedDisplay
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns IsChangedDisplay
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns IsChangedDisplay
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns IsChangedDisplay
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns IsChangedDisplay
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns IsChangedDisplay
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns IsChangedDisplay
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns IsChangedDisplay
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns IsChangedDisplay
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns IsChangedDisplay
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns IsChangedDisplay
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns IsChangedDisplay
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns IsChangedDisplay
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns IsChangedDisplay
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns IsChangedDisplay
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns IsChangedDisplay
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns IsChangedDisplay
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns IsChangedDisplay
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns IsChangedDisplay
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns IsChangedDisplay
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns IsChangedDisplay
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns IsChangedDisplay
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns IsChangedDisplay
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns IsChangedDisplay
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns IsChangedDisplay
+ * CPrimaryExpression returns IsChangedDisplay
+ *
+ * Constraint:
+ * (operand+=COperationFeatureCall_IsChangedDisplay_1_1_0_0_26_0 operand+=CExpression?)
+ */
+ protected void sequence_COperationFeatureCall(ISerializationContext context, IsChangedDisplay semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns IsChangedOutput
+ * CImpliesOperator returns IsChangedOutput
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns IsChangedOutput
+ * COrOperator returns IsChangedOutput
+ * COrOperator.OrOperator_1_0_0_0 returns IsChangedOutput
+ * CAndOperator returns IsChangedOutput
+ * CAndOperator.AndOperator_1_0_0_0 returns IsChangedOutput
+ * CEqualityExpression returns IsChangedOutput
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns IsChangedOutput
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns IsChangedOutput
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns IsChangedOutput
+ * CRelationalExpression returns IsChangedOutput
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns IsChangedOutput
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns IsChangedOutput
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns IsChangedOutput
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns IsChangedOutput
+ * CUnaryOperation returns IsChangedOutput
+ * COperationFeatureCall returns IsChangedOutput
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns IsChangedOutput
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns IsChangedOutput
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns IsChangedOutput
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns IsChangedOutput
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns IsChangedOutput
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns IsChangedOutput
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns IsChangedOutput
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns IsChangedOutput
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns IsChangedOutput
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns IsChangedOutput
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns IsChangedOutput
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns IsChangedOutput
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns IsChangedOutput
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns IsChangedOutput
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns IsChangedOutput
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns IsChangedOutput
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns IsChangedOutput
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns IsChangedOutput
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns IsChangedOutput
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns IsChangedOutput
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns IsChangedOutput
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns IsChangedOutput
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns IsChangedOutput
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns IsChangedOutput
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns IsChangedOutput
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns IsChangedOutput
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns IsChangedOutput
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns IsChangedOutput
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns IsChangedOutput
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns IsChangedOutput
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns IsChangedOutput
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns IsChangedOutput
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns IsChangedOutput
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns IsChangedOutput
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns IsChangedOutput
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns IsChangedOutput
+ * CPrimaryExpression returns IsChangedOutput
+ *
+ * Constraint:
+ * (operand+=COperationFeatureCall_IsChangedOutput_1_1_0_0_29_0 operand+=CExpression?)
+ */
+ protected void sequence_COperationFeatureCall(ISerializationContext context, IsChangedOutput semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns IsDisplayed
+ * CImpliesOperator returns IsDisplayed
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns IsDisplayed
+ * COrOperator returns IsDisplayed
+ * COrOperator.OrOperator_1_0_0_0 returns IsDisplayed
+ * CAndOperator returns IsDisplayed
+ * CAndOperator.AndOperator_1_0_0_0 returns IsDisplayed
+ * CEqualityExpression returns IsDisplayed
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns IsDisplayed
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns IsDisplayed
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns IsDisplayed
+ * CRelationalExpression returns IsDisplayed
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns IsDisplayed
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns IsDisplayed
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns IsDisplayed
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns IsDisplayed
+ * CUnaryOperation returns IsDisplayed
+ * COperationFeatureCall returns IsDisplayed
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns IsDisplayed
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns IsDisplayed
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns IsDisplayed
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns IsDisplayed
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns IsDisplayed
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns IsDisplayed
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns IsDisplayed
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns IsDisplayed
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns IsDisplayed
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns IsDisplayed
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns IsDisplayed
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns IsDisplayed
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns IsDisplayed
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns IsDisplayed
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns IsDisplayed
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns IsDisplayed
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns IsDisplayed
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns IsDisplayed
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns IsDisplayed
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns IsDisplayed
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns IsDisplayed
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns IsDisplayed
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns IsDisplayed
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns IsDisplayed
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns IsDisplayed
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns IsDisplayed
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns IsDisplayed
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns IsDisplayed
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns IsDisplayed
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns IsDisplayed
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns IsDisplayed
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns IsDisplayed
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns IsDisplayed
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns IsDisplayed
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns IsDisplayed
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns IsDisplayed
+ * CPrimaryExpression returns IsDisplayed
+ *
+ * Constraint:
+ * (operand+=COperationFeatureCall_IsDisplayed_1_1_0_0_14_0 operand+=CExpression?)
+ */
+ protected void sequence_COperationFeatureCall(ISerializationContext context, IsDisplayed semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns IsDisplayedOn
+ * CImpliesOperator returns IsDisplayedOn
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns IsDisplayedOn
+ * COrOperator returns IsDisplayedOn
+ * COrOperator.OrOperator_1_0_0_0 returns IsDisplayedOn
+ * CAndOperator returns IsDisplayedOn
+ * CAndOperator.AndOperator_1_0_0_0 returns IsDisplayedOn
+ * CEqualityExpression returns IsDisplayedOn
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns IsDisplayedOn
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns IsDisplayedOn
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns IsDisplayedOn
+ * CRelationalExpression returns IsDisplayedOn
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns IsDisplayedOn
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns IsDisplayedOn
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns IsDisplayedOn
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns IsDisplayedOn
+ * CUnaryOperation returns IsDisplayedOn
+ * COperationFeatureCall returns IsDisplayedOn
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns IsDisplayedOn
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns IsDisplayedOn
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns IsDisplayedOn
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns IsDisplayedOn
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns IsDisplayedOn
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns IsDisplayedOn
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns IsDisplayedOn
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns IsDisplayedOn
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns IsDisplayedOn
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns IsDisplayedOn
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns IsDisplayedOn
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns IsDisplayedOn
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns IsDisplayedOn
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns IsDisplayedOn
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns IsDisplayedOn
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns IsDisplayedOn
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns IsDisplayedOn
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns IsDisplayedOn
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns IsDisplayedOn
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns IsDisplayedOn
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns IsDisplayedOn
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns IsDisplayedOn
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns IsDisplayedOn
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns IsDisplayedOn
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns IsDisplayedOn
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns IsDisplayedOn
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns IsDisplayedOn
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns IsDisplayedOn
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns IsDisplayedOn
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns IsDisplayedOn
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns IsDisplayedOn
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns IsDisplayedOn
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns IsDisplayedOn
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns IsDisplayedOn
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns IsDisplayedOn
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns IsDisplayedOn
+ * CPrimaryExpression returns IsDisplayedOn
+ *
+ * Constraint:
+ * (operand+=COperationFeatureCall_IsDisplayedOn_1_1_0_0_25_0 operand+=CExpression?)
+ */
+ protected void sequence_COperationFeatureCall(ISerializationContext context, IsDisplayedOn semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns IsHidden
+ * CImpliesOperator returns IsHidden
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns IsHidden
+ * COrOperator returns IsHidden
+ * COrOperator.OrOperator_1_0_0_0 returns IsHidden
+ * CAndOperator returns IsHidden
+ * CAndOperator.AndOperator_1_0_0_0 returns IsHidden
+ * CEqualityExpression returns IsHidden
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns IsHidden
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns IsHidden
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns IsHidden
+ * CRelationalExpression returns IsHidden
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns IsHidden
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns IsHidden
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns IsHidden
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns IsHidden
+ * CUnaryOperation returns IsHidden
+ * COperationFeatureCall returns IsHidden
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns IsHidden
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns IsHidden
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns IsHidden
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns IsHidden
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns IsHidden
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns IsHidden
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns IsHidden
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns IsHidden
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns IsHidden
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns IsHidden
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns IsHidden
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns IsHidden
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns IsHidden
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns IsHidden
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns IsHidden
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns IsHidden
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns IsHidden
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns IsHidden
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns IsHidden
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns IsHidden
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns IsHidden
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns IsHidden
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns IsHidden
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns IsHidden
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns IsHidden
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns IsHidden
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns IsHidden
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns IsHidden
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns IsHidden
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns IsHidden
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns IsHidden
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns IsHidden
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns IsHidden
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns IsHidden
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns IsHidden
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns IsHidden
+ * CPrimaryExpression returns IsHidden
+ *
+ * Constraint:
+ * (operand+=COperationFeatureCall_IsHidden_1_1_0_0_15_0 operand+=CExpression?)
+ */
+ protected void sequence_COperationFeatureCall(ISerializationContext context, IsHidden semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns IsMuted
+ * CImpliesOperator returns IsMuted
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns IsMuted
+ * COrOperator returns IsMuted
+ * COrOperator.OrOperator_1_0_0_0 returns IsMuted
+ * CAndOperator returns IsMuted
+ * CAndOperator.AndOperator_1_0_0_0 returns IsMuted
+ * CEqualityExpression returns IsMuted
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns IsMuted
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns IsMuted
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns IsMuted
+ * CRelationalExpression returns IsMuted
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns IsMuted
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns IsMuted
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns IsMuted
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns IsMuted
+ * CUnaryOperation returns IsMuted
+ * COperationFeatureCall returns IsMuted
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns IsMuted
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns IsMuted
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns IsMuted
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns IsMuted
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns IsMuted
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns IsMuted
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns IsMuted
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns IsMuted
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns IsMuted
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns IsMuted
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns IsMuted
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns IsMuted
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns IsMuted
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns IsMuted
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns IsMuted
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns IsMuted
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns IsMuted
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns IsMuted
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns IsMuted
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns IsMuted
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns IsMuted
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns IsMuted
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns IsMuted
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns IsMuted
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns IsMuted
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns IsMuted
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns IsMuted
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns IsMuted
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns IsMuted
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns IsMuted
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns IsMuted
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns IsMuted
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns IsMuted
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns IsMuted
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns IsMuted
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns IsMuted
+ * CPrimaryExpression returns IsMuted
+ *
+ * Constraint:
+ * (operand+=COperationFeatureCall_IsMuted_1_1_0_0_19_0 operand+=CExpression?)
+ */
+ protected void sequence_COperationFeatureCall(ISerializationContext context, IsMuted semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns IsOn
+ * CImpliesOperator returns IsOn
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns IsOn
+ * COrOperator returns IsOn
+ * COrOperator.OrOperator_1_0_0_0 returns IsOn
+ * CAndOperator returns IsOn
+ * CAndOperator.AndOperator_1_0_0_0 returns IsOn
+ * CEqualityExpression returns IsOn
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns IsOn
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns IsOn
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns IsOn
+ * CRelationalExpression returns IsOn
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns IsOn
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns IsOn
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns IsOn
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns IsOn
+ * CUnaryOperation returns IsOn
+ * COperationFeatureCall returns IsOn
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns IsOn
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns IsOn
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns IsOn
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns IsOn
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns IsOn
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns IsOn
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns IsOn
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns IsOn
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns IsOn
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns IsOn
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns IsOn
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns IsOn
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns IsOn
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns IsOn
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns IsOn
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns IsOn
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns IsOn
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns IsOn
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns IsOn
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns IsOn
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns IsOn
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns IsOn
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns IsOn
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns IsOn
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns IsOn
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns IsOn
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns IsOn
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns IsOn
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns IsOn
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns IsOn
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns IsOn
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns IsOn
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns IsOn
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns IsOn
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns IsOn
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns IsOn
+ * CPrimaryExpression returns IsOn
+ *
+ * Constraint:
+ * (operand+=COperationFeatureCall_IsOn_1_1_0_0_1_0 operand+=CExpression?)
+ */
+ protected void sequence_COperationFeatureCall(ISerializationContext context, IsOn semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns IsOutputted
+ * CImpliesOperator returns IsOutputted
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns IsOutputted
+ * COrOperator returns IsOutputted
+ * COrOperator.OrOperator_1_0_0_0 returns IsOutputted
+ * CAndOperator returns IsOutputted
+ * CAndOperator.AndOperator_1_0_0_0 returns IsOutputted
+ * CEqualityExpression returns IsOutputted
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns IsOutputted
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns IsOutputted
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns IsOutputted
+ * CRelationalExpression returns IsOutputted
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns IsOutputted
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns IsOutputted
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns IsOutputted
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns IsOutputted
+ * CUnaryOperation returns IsOutputted
+ * COperationFeatureCall returns IsOutputted
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns IsOutputted
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns IsOutputted
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns IsOutputted
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns IsOutputted
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns IsOutputted
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns IsOutputted
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns IsOutputted
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns IsOutputted
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns IsOutputted
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns IsOutputted
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns IsOutputted
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns IsOutputted
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns IsOutputted
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns IsOutputted
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns IsOutputted
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns IsOutputted
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns IsOutputted
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns IsOutputted
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns IsOutputted
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns IsOutputted
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns IsOutputted
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns IsOutputted
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns IsOutputted
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns IsOutputted
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns IsOutputted
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns IsOutputted
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns IsOutputted
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns IsOutputted
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns IsOutputted
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns IsOutputted
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns IsOutputted
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns IsOutputted
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns IsOutputted
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns IsOutputted
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns IsOutputted
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns IsOutputted
+ * CPrimaryExpression returns IsOutputted
+ *
+ * Constraint:
+ * (operand+=COperationFeatureCall_IsOutputted_1_1_0_0_18_0 operand+=CExpression?)
+ */
+ protected void sequence_COperationFeatureCall(ISerializationContext context, IsOutputted semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns IsOutputtedOn
+ * CImpliesOperator returns IsOutputtedOn
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns IsOutputtedOn
+ * COrOperator returns IsOutputtedOn
+ * COrOperator.OrOperator_1_0_0_0 returns IsOutputtedOn
+ * CAndOperator returns IsOutputtedOn
+ * CAndOperator.AndOperator_1_0_0_0 returns IsOutputtedOn
+ * CEqualityExpression returns IsOutputtedOn
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns IsOutputtedOn
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns IsOutputtedOn
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns IsOutputtedOn
+ * CRelationalExpression returns IsOutputtedOn
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns IsOutputtedOn
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns IsOutputtedOn
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns IsOutputtedOn
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns IsOutputtedOn
+ * CUnaryOperation returns IsOutputtedOn
+ * COperationFeatureCall returns IsOutputtedOn
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns IsOutputtedOn
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns IsOutputtedOn
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns IsOutputtedOn
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns IsOutputtedOn
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns IsOutputtedOn
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns IsOutputtedOn
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns IsOutputtedOn
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns IsOutputtedOn
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns IsOutputtedOn
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns IsOutputtedOn
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns IsOutputtedOn
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns IsOutputtedOn
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns IsOutputtedOn
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns IsOutputtedOn
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns IsOutputtedOn
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns IsOutputtedOn
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns IsOutputtedOn
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns IsOutputtedOn
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns IsOutputtedOn
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns IsOutputtedOn
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns IsOutputtedOn
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns IsOutputtedOn
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns IsOutputtedOn
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns IsOutputtedOn
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns IsOutputtedOn
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns IsOutputtedOn
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns IsOutputtedOn
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns IsOutputtedOn
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns IsOutputtedOn
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns IsOutputtedOn
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns IsOutputtedOn
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns IsOutputtedOn
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns IsOutputtedOn
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns IsOutputtedOn
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns IsOutputtedOn
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns IsOutputtedOn
+ * CPrimaryExpression returns IsOutputtedOn
+ *
+ * Constraint:
+ * (operand+=COperationFeatureCall_IsOutputtedOn_1_1_0_0_28_0 operand+=CExpression?)
+ */
+ protected void sequence_COperationFeatureCall(ISerializationContext context, IsOutputtedOn semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns IsSounding
+ * CImpliesOperator returns IsSounding
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns IsSounding
+ * COrOperator returns IsSounding
+ * COrOperator.OrOperator_1_0_0_0 returns IsSounding
+ * CAndOperator returns IsSounding
+ * CAndOperator.AndOperator_1_0_0_0 returns IsSounding
+ * CEqualityExpression returns IsSounding
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns IsSounding
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns IsSounding
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns IsSounding
+ * CRelationalExpression returns IsSounding
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns IsSounding
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns IsSounding
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns IsSounding
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns IsSounding
+ * CUnaryOperation returns IsSounding
+ * COperationFeatureCall returns IsSounding
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns IsSounding
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns IsSounding
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns IsSounding
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns IsSounding
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns IsSounding
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns IsSounding
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns IsSounding
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns IsSounding
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns IsSounding
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns IsSounding
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns IsSounding
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns IsSounding
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns IsSounding
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns IsSounding
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns IsSounding
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns IsSounding
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns IsSounding
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns IsSounding
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns IsSounding
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns IsSounding
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns IsSounding
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns IsSounding
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns IsSounding
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns IsSounding
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns IsSounding
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns IsSounding
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns IsSounding
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns IsSounding
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns IsSounding
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns IsSounding
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns IsSounding
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns IsSounding
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns IsSounding
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns IsSounding
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns IsSounding
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns IsSounding
+ * CPrimaryExpression returns IsSounding
+ *
+ * Constraint:
+ * (operand+=COperationFeatureCall_IsSounding_1_1_0_0_21_0 operand+=CExpression?)
+ */
+ protected void sequence_COperationFeatureCall(ISerializationContext context, IsSounding semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns IsTranslatedSoundTo
+ * CImpliesOperator returns IsTranslatedSoundTo
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns IsTranslatedSoundTo
+ * COrOperator returns IsTranslatedSoundTo
+ * COrOperator.OrOperator_1_0_0_0 returns IsTranslatedSoundTo
+ * CAndOperator returns IsTranslatedSoundTo
+ * CAndOperator.AndOperator_1_0_0_0 returns IsTranslatedSoundTo
+ * CEqualityExpression returns IsTranslatedSoundTo
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns IsTranslatedSoundTo
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns IsTranslatedSoundTo
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns IsTranslatedSoundTo
+ * CRelationalExpression returns IsTranslatedSoundTo
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns IsTranslatedSoundTo
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns IsTranslatedSoundTo
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns IsTranslatedSoundTo
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns IsTranslatedSoundTo
+ * CUnaryOperation returns IsTranslatedSoundTo
+ * COperationFeatureCall returns IsTranslatedSoundTo
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns IsTranslatedSoundTo
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns IsTranslatedSoundTo
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns IsTranslatedSoundTo
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns IsTranslatedSoundTo
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns IsTranslatedSoundTo
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns IsTranslatedSoundTo
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns IsTranslatedSoundTo
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns IsTranslatedSoundTo
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns IsTranslatedSoundTo
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns IsTranslatedSoundTo
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns IsTranslatedSoundTo
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns IsTranslatedSoundTo
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns IsTranslatedSoundTo
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns IsTranslatedSoundTo
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns IsTranslatedSoundTo
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns IsTranslatedSoundTo
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns IsTranslatedSoundTo
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns IsTranslatedSoundTo
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns IsTranslatedSoundTo
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns IsTranslatedSoundTo
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns IsTranslatedSoundTo
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns IsTranslatedSoundTo
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns IsTranslatedSoundTo
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns IsTranslatedSoundTo
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns IsTranslatedSoundTo
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns IsTranslatedSoundTo
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns IsTranslatedSoundTo
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns IsTranslatedSoundTo
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns IsTranslatedSoundTo
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns IsTranslatedSoundTo
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns IsTranslatedSoundTo
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns IsTranslatedSoundTo
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns IsTranslatedSoundTo
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns IsTranslatedSoundTo
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns IsTranslatedSoundTo
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns IsTranslatedSoundTo
+ * CPrimaryExpression returns IsTranslatedSoundTo
+ *
+ * Constraint:
+ * (operand+=COperationFeatureCall_IsTranslatedSoundTo_1_1_0_0_30_0 operand+=CExpression?)
+ */
+ protected void sequence_COperationFeatureCall(ISerializationContext context, IsTranslatedSoundTo semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns IsTranslatedTo
+ * CImpliesOperator returns IsTranslatedTo
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns IsTranslatedTo
+ * COrOperator returns IsTranslatedTo
+ * COrOperator.OrOperator_1_0_0_0 returns IsTranslatedTo
+ * CAndOperator returns IsTranslatedTo
+ * CAndOperator.AndOperator_1_0_0_0 returns IsTranslatedTo
+ * CEqualityExpression returns IsTranslatedTo
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns IsTranslatedTo
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns IsTranslatedTo
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns IsTranslatedTo
+ * CRelationalExpression returns IsTranslatedTo
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns IsTranslatedTo
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns IsTranslatedTo
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns IsTranslatedTo
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns IsTranslatedTo
+ * CUnaryOperation returns IsTranslatedTo
+ * COperationFeatureCall returns IsTranslatedTo
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns IsTranslatedTo
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns IsTranslatedTo
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns IsTranslatedTo
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns IsTranslatedTo
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns IsTranslatedTo
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns IsTranslatedTo
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns IsTranslatedTo
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns IsTranslatedTo
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns IsTranslatedTo
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns IsTranslatedTo
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns IsTranslatedTo
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns IsTranslatedTo
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns IsTranslatedTo
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns IsTranslatedTo
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns IsTranslatedTo
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns IsTranslatedTo
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns IsTranslatedTo
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns IsTranslatedTo
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns IsTranslatedTo
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns IsTranslatedTo
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns IsTranslatedTo
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns IsTranslatedTo
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns IsTranslatedTo
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns IsTranslatedTo
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns IsTranslatedTo
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns IsTranslatedTo
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns IsTranslatedTo
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns IsTranslatedTo
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns IsTranslatedTo
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns IsTranslatedTo
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns IsTranslatedTo
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns IsTranslatedTo
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns IsTranslatedTo
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns IsTranslatedTo
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns IsTranslatedTo
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns IsTranslatedTo
+ * CPrimaryExpression returns IsTranslatedTo
+ *
+ * Constraint:
+ * (operand+=COperationFeatureCall_IsTranslatedTo_1_1_0_0_24_0 operand+=CExpression?)
+ */
+ protected void sequence_COperationFeatureCall(ISerializationContext context, IsTranslatedTo semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns IsTranslatedViewTo
+ * CImpliesOperator returns IsTranslatedViewTo
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns IsTranslatedViewTo
+ * COrOperator returns IsTranslatedViewTo
+ * COrOperator.OrOperator_1_0_0_0 returns IsTranslatedViewTo
+ * CAndOperator returns IsTranslatedViewTo
+ * CAndOperator.AndOperator_1_0_0_0 returns IsTranslatedViewTo
+ * CEqualityExpression returns IsTranslatedViewTo
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns IsTranslatedViewTo
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns IsTranslatedViewTo
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns IsTranslatedViewTo
+ * CRelationalExpression returns IsTranslatedViewTo
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns IsTranslatedViewTo
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns IsTranslatedViewTo
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns IsTranslatedViewTo
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns IsTranslatedViewTo
+ * CUnaryOperation returns IsTranslatedViewTo
+ * COperationFeatureCall returns IsTranslatedViewTo
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns IsTranslatedViewTo
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns IsTranslatedViewTo
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns IsTranslatedViewTo
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns IsTranslatedViewTo
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns IsTranslatedViewTo
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns IsTranslatedViewTo
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns IsTranslatedViewTo
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns IsTranslatedViewTo
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns IsTranslatedViewTo
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns IsTranslatedViewTo
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns IsTranslatedViewTo
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns IsTranslatedViewTo
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns IsTranslatedViewTo
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns IsTranslatedViewTo
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns IsTranslatedViewTo
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns IsTranslatedViewTo
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns IsTranslatedViewTo
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns IsTranslatedViewTo
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns IsTranslatedViewTo
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns IsTranslatedViewTo
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns IsTranslatedViewTo
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns IsTranslatedViewTo
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns IsTranslatedViewTo
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns IsTranslatedViewTo
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns IsTranslatedViewTo
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns IsTranslatedViewTo
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns IsTranslatedViewTo
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns IsTranslatedViewTo
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns IsTranslatedViewTo
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns IsTranslatedViewTo
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns IsTranslatedViewTo
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns IsTranslatedViewTo
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns IsTranslatedViewTo
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns IsTranslatedViewTo
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns IsTranslatedViewTo
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns IsTranslatedViewTo
+ * CPrimaryExpression returns IsTranslatedViewTo
+ *
+ * Constraint:
+ * (operand+=COperationFeatureCall_IsTranslatedViewTo_1_1_0_0_27_0 operand+=CExpression?)
+ */
+ protected void sequence_COperationFeatureCall(ISerializationContext context, IsTranslatedViewTo semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns IsTypeOf
+ * CImpliesOperator returns IsTypeOf
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns IsTypeOf
+ * COrOperator returns IsTypeOf
+ * COrOperator.OrOperator_1_0_0_0 returns IsTypeOf
+ * CAndOperator returns IsTypeOf
+ * CAndOperator.AndOperator_1_0_0_0 returns IsTypeOf
+ * CEqualityExpression returns IsTypeOf
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns IsTypeOf
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns IsTypeOf
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns IsTypeOf
+ * CRelationalExpression returns IsTypeOf
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns IsTypeOf
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns IsTypeOf
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns IsTypeOf
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns IsTypeOf
+ * CUnaryOperation returns IsTypeOf
+ * COperationFeatureCall returns IsTypeOf
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns IsTypeOf
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns IsTypeOf
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns IsTypeOf
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns IsTypeOf
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns IsTypeOf
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns IsTypeOf
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns IsTypeOf
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns IsTypeOf
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns IsTypeOf
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns IsTypeOf
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns IsTypeOf
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns IsTypeOf
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns IsTypeOf
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns IsTypeOf
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns IsTypeOf
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns IsTypeOf
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns IsTypeOf
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns IsTypeOf
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns IsTypeOf
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns IsTypeOf
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns IsTypeOf
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns IsTypeOf
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns IsTypeOf
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns IsTypeOf
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns IsTypeOf
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns IsTypeOf
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns IsTypeOf
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns IsTypeOf
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns IsTypeOf
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns IsTypeOf
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns IsTypeOf
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns IsTypeOf
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns IsTypeOf
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns IsTypeOf
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns IsTypeOf
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns IsTypeOf
+ * CPrimaryExpression returns IsTypeOf
+ *
+ * Constraint:
+ * (operand+=COperationFeatureCall_IsTypeOf_1_1_1_0_0 tagName=EString?)
+ */
+ protected void sequence_COperationFeatureCall(ISerializationContext context, IsTypeOf semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns IsVisible
+ * CImpliesOperator returns IsVisible
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns IsVisible
+ * COrOperator returns IsVisible
+ * COrOperator.OrOperator_1_0_0_0 returns IsVisible
+ * CAndOperator returns IsVisible
+ * CAndOperator.AndOperator_1_0_0_0 returns IsVisible
+ * CEqualityExpression returns IsVisible
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns IsVisible
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns IsVisible
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns IsVisible
+ * CRelationalExpression returns IsVisible
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns IsVisible
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns IsVisible
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns IsVisible
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns IsVisible
+ * CUnaryOperation returns IsVisible
+ * COperationFeatureCall returns IsVisible
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns IsVisible
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns IsVisible
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns IsVisible
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns IsVisible
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns IsVisible
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns IsVisible
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns IsVisible
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns IsVisible
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns IsVisible
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns IsVisible
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns IsVisible
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns IsVisible
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns IsVisible
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns IsVisible
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns IsVisible
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns IsVisible
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns IsVisible
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns IsVisible
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns IsVisible
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns IsVisible
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns IsVisible
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns IsVisible
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns IsVisible
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns IsVisible
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns IsVisible
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns IsVisible
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns IsVisible
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns IsVisible
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns IsVisible
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns IsVisible
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns IsVisible
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns IsVisible
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns IsVisible
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns IsVisible
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns IsVisible
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns IsVisible
+ * CPrimaryExpression returns IsVisible
+ *
+ * Constraint:
+ * (operand+=COperationFeatureCall_IsVisible_1_1_0_0_17_0 operand+=CExpression?)
+ */
+ protected void sequence_COperationFeatureCall(ISerializationContext context, IsVisible semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns MaxOperator
+ * CImpliesOperator returns MaxOperator
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns MaxOperator
+ * COrOperator returns MaxOperator
+ * COrOperator.OrOperator_1_0_0_0 returns MaxOperator
+ * CAndOperator returns MaxOperator
+ * CAndOperator.AndOperator_1_0_0_0 returns MaxOperator
+ * CEqualityExpression returns MaxOperator
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns MaxOperator
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns MaxOperator
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns MaxOperator
+ * CRelationalExpression returns MaxOperator
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns MaxOperator
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns MaxOperator
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns MaxOperator
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns MaxOperator
+ * CUnaryOperation returns MaxOperator
+ * COperationFeatureCall returns MaxOperator
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns MaxOperator
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns MaxOperator
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns MaxOperator
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns MaxOperator
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns MaxOperator
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns MaxOperator
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns MaxOperator
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns MaxOperator
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns MaxOperator
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns MaxOperator
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns MaxOperator
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns MaxOperator
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns MaxOperator
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns MaxOperator
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns MaxOperator
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns MaxOperator
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns MaxOperator
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns MaxOperator
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns MaxOperator
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns MaxOperator
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns MaxOperator
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns MaxOperator
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns MaxOperator
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns MaxOperator
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns MaxOperator
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns MaxOperator
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns MaxOperator
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns MaxOperator
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns MaxOperator
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns MaxOperator
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns MaxOperator
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns MaxOperator
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns MaxOperator
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns MaxOperator
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns MaxOperator
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns MaxOperator
+ * CPrimaryExpression returns MaxOperator
+ *
+ * Constraint:
+ * (operand+=COperationFeatureCall_MaxOperator_1_1_2_0_0 lambda=LambdaExpression)
+ */
+ protected void sequence_COperationFeatureCall(ISerializationContext context, MaxOperator semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns MinOperator
+ * CImpliesOperator returns MinOperator
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns MinOperator
+ * COrOperator returns MinOperator
+ * COrOperator.OrOperator_1_0_0_0 returns MinOperator
+ * CAndOperator returns MinOperator
+ * CAndOperator.AndOperator_1_0_0_0 returns MinOperator
+ * CEqualityExpression returns MinOperator
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns MinOperator
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns MinOperator
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns MinOperator
+ * CRelationalExpression returns MinOperator
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns MinOperator
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns MinOperator
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns MinOperator
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns MinOperator
+ * CUnaryOperation returns MinOperator
+ * COperationFeatureCall returns MinOperator
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns MinOperator
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns MinOperator
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns MinOperator
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns MinOperator
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns MinOperator
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns MinOperator
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns MinOperator
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns MinOperator
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns MinOperator
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns MinOperator
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns MinOperator
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns MinOperator
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns MinOperator
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns MinOperator
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns MinOperator
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns MinOperator
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns MinOperator
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns MinOperator
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns MinOperator
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns MinOperator
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns MinOperator
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns MinOperator
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns MinOperator
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns MinOperator
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns MinOperator
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns MinOperator
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns MinOperator
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns MinOperator
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns MinOperator
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns MinOperator
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns MinOperator
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns MinOperator
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns MinOperator
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns MinOperator
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns MinOperator
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns MinOperator
+ * CPrimaryExpression returns MinOperator
+ *
+ * Constraint:
+ * (operand+=COperationFeatureCall_MinOperator_1_1_2_1_0 lambda=LambdaExpression)
+ */
+ protected void sequence_COperationFeatureCall(ISerializationContext context, MinOperator semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns OutputtingSound
+ * CImpliesOperator returns OutputtingSound
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns OutputtingSound
+ * COrOperator returns OutputtingSound
+ * COrOperator.OrOperator_1_0_0_0 returns OutputtingSound
+ * CAndOperator returns OutputtingSound
+ * CAndOperator.AndOperator_1_0_0_0 returns OutputtingSound
+ * CEqualityExpression returns OutputtingSound
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns OutputtingSound
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns OutputtingSound
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns OutputtingSound
+ * CRelationalExpression returns OutputtingSound
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns OutputtingSound
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns OutputtingSound
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns OutputtingSound
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns OutputtingSound
+ * CUnaryOperation returns OutputtingSound
+ * COperationFeatureCall returns OutputtingSound
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns OutputtingSound
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns OutputtingSound
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns OutputtingSound
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns OutputtingSound
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns OutputtingSound
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns OutputtingSound
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns OutputtingSound
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns OutputtingSound
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns OutputtingSound
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns OutputtingSound
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns OutputtingSound
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns OutputtingSound
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns OutputtingSound
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns OutputtingSound
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns OutputtingSound
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns OutputtingSound
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns OutputtingSound
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns OutputtingSound
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns OutputtingSound
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns OutputtingSound
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns OutputtingSound
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns OutputtingSound
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns OutputtingSound
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns OutputtingSound
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns OutputtingSound
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns OutputtingSound
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns OutputtingSound
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns OutputtingSound
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns OutputtingSound
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns OutputtingSound
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns OutputtingSound
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns OutputtingSound
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns OutputtingSound
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns OutputtingSound
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns OutputtingSound
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns OutputtingSound
+ * CPrimaryExpression returns OutputtingSound
+ *
+ * Constraint:
+ * (operand+=COperationFeatureCall_OutputtingSound_1_1_0_0_20_0 operand+=CExpression?)
+ */
+ protected void sequence_COperationFeatureCall(ISerializationContext context, OutputtingSound semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns SelectOperator
+ * CImpliesOperator returns SelectOperator
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns SelectOperator
+ * COrOperator returns SelectOperator
+ * COrOperator.OrOperator_1_0_0_0 returns SelectOperator
+ * CAndOperator returns SelectOperator
+ * CAndOperator.AndOperator_1_0_0_0 returns SelectOperator
+ * CEqualityExpression returns SelectOperator
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns SelectOperator
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns SelectOperator
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns SelectOperator
+ * CRelationalExpression returns SelectOperator
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns SelectOperator
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns SelectOperator
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns SelectOperator
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns SelectOperator
+ * CUnaryOperation returns SelectOperator
+ * COperationFeatureCall returns SelectOperator
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns SelectOperator
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns SelectOperator
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns SelectOperator
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns SelectOperator
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns SelectOperator
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns SelectOperator
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns SelectOperator
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns SelectOperator
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns SelectOperator
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns SelectOperator
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns SelectOperator
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns SelectOperator
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns SelectOperator
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns SelectOperator
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns SelectOperator
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns SelectOperator
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns SelectOperator
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns SelectOperator
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns SelectOperator
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns SelectOperator
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns SelectOperator
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns SelectOperator
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns SelectOperator
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns SelectOperator
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns SelectOperator
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns SelectOperator
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns SelectOperator
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns SelectOperator
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns SelectOperator
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns SelectOperator
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns SelectOperator
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns SelectOperator
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns SelectOperator
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns SelectOperator
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns SelectOperator
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns SelectOperator
+ * CPrimaryExpression returns SelectOperator
+ *
+ * Constraint:
+ * (operand+=COperationFeatureCall_SelectOperator_1_1_2_2_0 lambda=LambdaExpression)
+ */
+ protected void sequence_COperationFeatureCall(ISerializationContext context, SelectOperator semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns SizeOperator
+ * CImpliesOperator returns SizeOperator
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns SizeOperator
+ * COrOperator returns SizeOperator
+ * COrOperator.OrOperator_1_0_0_0 returns SizeOperator
+ * CAndOperator returns SizeOperator
+ * CAndOperator.AndOperator_1_0_0_0 returns SizeOperator
+ * CEqualityExpression returns SizeOperator
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns SizeOperator
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns SizeOperator
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns SizeOperator
+ * CRelationalExpression returns SizeOperator
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns SizeOperator
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns SizeOperator
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns SizeOperator
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns SizeOperator
+ * CUnaryOperation returns SizeOperator
+ * COperationFeatureCall returns SizeOperator
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns SizeOperator
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns SizeOperator
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns SizeOperator
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns SizeOperator
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns SizeOperator
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns SizeOperator
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns SizeOperator
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns SizeOperator
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns SizeOperator
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns SizeOperator
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns SizeOperator
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns SizeOperator
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns SizeOperator
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns SizeOperator
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns SizeOperator
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns SizeOperator
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns SizeOperator
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns SizeOperator
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns SizeOperator
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns SizeOperator
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns SizeOperator
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns SizeOperator
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns SizeOperator
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns SizeOperator
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns SizeOperator
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns SizeOperator
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns SizeOperator
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns SizeOperator
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns SizeOperator
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns SizeOperator
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns SizeOperator
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns SizeOperator
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns SizeOperator
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns SizeOperator
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns SizeOperator
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns SizeOperator
+ * CPrimaryExpression returns SizeOperator
+ *
+ * Constraint:
+ * (operand+=COperationFeatureCall_SizeOperator_1_1_0_0_11_0 operand+=CExpression?)
+ */
+ protected void sequence_COperationFeatureCall(ISerializationContext context, SizeOperator semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns StateValue
+ * CImpliesOperator returns StateValue
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns StateValue
+ * COrOperator returns StateValue
+ * COrOperator.OrOperator_1_0_0_0 returns StateValue
+ * CAndOperator returns StateValue
+ * CAndOperator.AndOperator_1_0_0_0 returns StateValue
+ * CEqualityExpression returns StateValue
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns StateValue
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns StateValue
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns StateValue
+ * CRelationalExpression returns StateValue
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns StateValue
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns StateValue
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns StateValue
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns StateValue
+ * CUnaryOperation returns StateValue
+ * COperationFeatureCall returns StateValue
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns StateValue
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns StateValue
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns StateValue
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns StateValue
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns StateValue
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns StateValue
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns StateValue
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns StateValue
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns StateValue
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns StateValue
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns StateValue
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns StateValue
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns StateValue
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns StateValue
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns StateValue
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns StateValue
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns StateValue
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns StateValue
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns StateValue
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns StateValue
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns StateValue
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns StateValue
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns StateValue
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns StateValue
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns StateValue
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns StateValue
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns StateValue
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns StateValue
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns StateValue
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns StateValue
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns StateValue
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns StateValue
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns StateValue
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns StateValue
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns StateValue
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns StateValue
+ * CPrimaryExpression returns StateValue
+ *
+ * Constraint:
+ * (operand+=COperationFeatureCall_StateValue_1_1_0_0_9_0 operand+=CExpression?)
+ */
+ protected void sequence_COperationFeatureCall(ISerializationContext context, StateValue semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns OrOperator
+ * CImpliesOperator returns OrOperator
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns OrOperator
+ * COrOperator returns OrOperator
+ * COrOperator.OrOperator_1_0_0_0 returns OrOperator
+ * CAndOperator returns OrOperator
+ * CAndOperator.AndOperator_1_0_0_0 returns OrOperator
+ * CEqualityExpression returns OrOperator
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns OrOperator
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns OrOperator
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns OrOperator
+ * CRelationalExpression returns OrOperator
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns OrOperator
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns OrOperator
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns OrOperator
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns OrOperator
+ * CUnaryOperation returns OrOperator
+ * COperationFeatureCall returns OrOperator
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns OrOperator
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns OrOperator
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns OrOperator
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns OrOperator
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns OrOperator
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns OrOperator
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns OrOperator
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns OrOperator
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns OrOperator
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns OrOperator
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns OrOperator
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns OrOperator
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns OrOperator
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns OrOperator
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns OrOperator
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns OrOperator
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns OrOperator
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns OrOperator
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns OrOperator
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns OrOperator
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns OrOperator
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns OrOperator
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns OrOperator
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns OrOperator
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns OrOperator
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns OrOperator
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns OrOperator
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns OrOperator
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns OrOperator
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns OrOperator
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns OrOperator
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns OrOperator
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns OrOperator
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns OrOperator
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns OrOperator
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns OrOperator
+ * CPrimaryExpression returns OrOperator
+ *
+ * Constraint:
+ * (operand+=COrOperator_OrOperator_1_0_0_0 operand+=CAndOperator)
+ */
+ protected void sequence_COrOperator(ISerializationContext context, OrOperator semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns IsGreaterThanEqualOperator
+ * CImpliesOperator returns IsGreaterThanEqualOperator
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns IsGreaterThanEqualOperator
+ * COrOperator returns IsGreaterThanEqualOperator
+ * COrOperator.OrOperator_1_0_0_0 returns IsGreaterThanEqualOperator
+ * CAndOperator returns IsGreaterThanEqualOperator
+ * CAndOperator.AndOperator_1_0_0_0 returns IsGreaterThanEqualOperator
+ * CEqualityExpression returns IsGreaterThanEqualOperator
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns IsGreaterThanEqualOperator
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns IsGreaterThanEqualOperator
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns IsGreaterThanEqualOperator
+ * CRelationalExpression returns IsGreaterThanEqualOperator
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns IsGreaterThanEqualOperator
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns IsGreaterThanEqualOperator
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns IsGreaterThanEqualOperator
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns IsGreaterThanEqualOperator
+ * CUnaryOperation returns IsGreaterThanEqualOperator
+ * COperationFeatureCall returns IsGreaterThanEqualOperator
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns IsGreaterThanEqualOperator
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns IsGreaterThanEqualOperator
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns IsGreaterThanEqualOperator
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns IsGreaterThanEqualOperator
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns IsGreaterThanEqualOperator
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns IsGreaterThanEqualOperator
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns IsGreaterThanEqualOperator
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns IsGreaterThanEqualOperator
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns IsGreaterThanEqualOperator
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns IsGreaterThanEqualOperator
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns IsGreaterThanEqualOperator
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns IsGreaterThanEqualOperator
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns IsGreaterThanEqualOperator
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns IsGreaterThanEqualOperator
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns IsGreaterThanEqualOperator
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns IsGreaterThanEqualOperator
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns IsGreaterThanEqualOperator
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns IsGreaterThanEqualOperator
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns IsGreaterThanEqualOperator
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns IsGreaterThanEqualOperator
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns IsGreaterThanEqualOperator
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns IsGreaterThanEqualOperator
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns IsGreaterThanEqualOperator
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns IsGreaterThanEqualOperator
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns IsGreaterThanEqualOperator
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns IsGreaterThanEqualOperator
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns IsGreaterThanEqualOperator
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns IsGreaterThanEqualOperator
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns IsGreaterThanEqualOperator
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns IsGreaterThanEqualOperator
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns IsGreaterThanEqualOperator
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns IsGreaterThanEqualOperator
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns IsGreaterThanEqualOperator
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns IsGreaterThanEqualOperator
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns IsGreaterThanEqualOperator
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns IsGreaterThanEqualOperator
+ * CPrimaryExpression returns IsGreaterThanEqualOperator
+ *
+ * Constraint:
+ * (operand+=CRelationalExpression_IsGreaterThanEqualOperator_1_0_0_0_0 operand+=CUnaryOperation)
+ */
+ protected void sequence_CRelationalExpression(ISerializationContext context, IsGreaterThanEqualOperator semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns IsGreaterThanOperator
+ * CImpliesOperator returns IsGreaterThanOperator
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns IsGreaterThanOperator
+ * COrOperator returns IsGreaterThanOperator
+ * COrOperator.OrOperator_1_0_0_0 returns IsGreaterThanOperator
+ * CAndOperator returns IsGreaterThanOperator
+ * CAndOperator.AndOperator_1_0_0_0 returns IsGreaterThanOperator
+ * CEqualityExpression returns IsGreaterThanOperator
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns IsGreaterThanOperator
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns IsGreaterThanOperator
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns IsGreaterThanOperator
+ * CRelationalExpression returns IsGreaterThanOperator
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns IsGreaterThanOperator
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns IsGreaterThanOperator
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns IsGreaterThanOperator
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns IsGreaterThanOperator
+ * CUnaryOperation returns IsGreaterThanOperator
+ * COperationFeatureCall returns IsGreaterThanOperator
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns IsGreaterThanOperator
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns IsGreaterThanOperator
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns IsGreaterThanOperator
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns IsGreaterThanOperator
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns IsGreaterThanOperator
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns IsGreaterThanOperator
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns IsGreaterThanOperator
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns IsGreaterThanOperator
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns IsGreaterThanOperator
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns IsGreaterThanOperator
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns IsGreaterThanOperator
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns IsGreaterThanOperator
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns IsGreaterThanOperator
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns IsGreaterThanOperator
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns IsGreaterThanOperator
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns IsGreaterThanOperator
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns IsGreaterThanOperator
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns IsGreaterThanOperator
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns IsGreaterThanOperator
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns IsGreaterThanOperator
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns IsGreaterThanOperator
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns IsGreaterThanOperator
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns IsGreaterThanOperator
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns IsGreaterThanOperator
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns IsGreaterThanOperator
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns IsGreaterThanOperator
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns IsGreaterThanOperator
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns IsGreaterThanOperator
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns IsGreaterThanOperator
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns IsGreaterThanOperator
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns IsGreaterThanOperator
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns IsGreaterThanOperator
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns IsGreaterThanOperator
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns IsGreaterThanOperator
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns IsGreaterThanOperator
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns IsGreaterThanOperator
+ * CPrimaryExpression returns IsGreaterThanOperator
+ *
+ * Constraint:
+ * (operand+=CRelationalExpression_IsGreaterThanOperator_1_0_0_2_0 operand+=CUnaryOperation)
+ */
+ protected void sequence_CRelationalExpression(ISerializationContext context, IsGreaterThanOperator semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns IsLowerThanEqualOperator
+ * CImpliesOperator returns IsLowerThanEqualOperator
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns IsLowerThanEqualOperator
+ * COrOperator returns IsLowerThanEqualOperator
+ * COrOperator.OrOperator_1_0_0_0 returns IsLowerThanEqualOperator
+ * CAndOperator returns IsLowerThanEqualOperator
+ * CAndOperator.AndOperator_1_0_0_0 returns IsLowerThanEqualOperator
+ * CEqualityExpression returns IsLowerThanEqualOperator
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns IsLowerThanEqualOperator
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns IsLowerThanEqualOperator
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns IsLowerThanEqualOperator
+ * CRelationalExpression returns IsLowerThanEqualOperator
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns IsLowerThanEqualOperator
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns IsLowerThanEqualOperator
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns IsLowerThanEqualOperator
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns IsLowerThanEqualOperator
+ * CUnaryOperation returns IsLowerThanEqualOperator
+ * COperationFeatureCall returns IsLowerThanEqualOperator
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns IsLowerThanEqualOperator
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns IsLowerThanEqualOperator
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns IsLowerThanEqualOperator
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns IsLowerThanEqualOperator
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns IsLowerThanEqualOperator
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns IsLowerThanEqualOperator
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns IsLowerThanEqualOperator
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns IsLowerThanEqualOperator
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns IsLowerThanEqualOperator
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns IsLowerThanEqualOperator
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns IsLowerThanEqualOperator
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns IsLowerThanEqualOperator
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns IsLowerThanEqualOperator
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns IsLowerThanEqualOperator
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns IsLowerThanEqualOperator
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns IsLowerThanEqualOperator
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns IsLowerThanEqualOperator
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns IsLowerThanEqualOperator
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns IsLowerThanEqualOperator
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns IsLowerThanEqualOperator
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns IsLowerThanEqualOperator
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns IsLowerThanEqualOperator
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns IsLowerThanEqualOperator
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns IsLowerThanEqualOperator
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns IsLowerThanEqualOperator
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns IsLowerThanEqualOperator
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns IsLowerThanEqualOperator
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns IsLowerThanEqualOperator
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns IsLowerThanEqualOperator
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns IsLowerThanEqualOperator
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns IsLowerThanEqualOperator
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns IsLowerThanEqualOperator
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns IsLowerThanEqualOperator
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns IsLowerThanEqualOperator
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns IsLowerThanEqualOperator
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns IsLowerThanEqualOperator
+ * CPrimaryExpression returns IsLowerThanEqualOperator
+ *
+ * Constraint:
+ * (operand+=CRelationalExpression_IsLowerThanEqualOperator_1_0_0_1_0 operand+=CUnaryOperation)
+ */
+ protected void sequence_CRelationalExpression(ISerializationContext context, IsLowerThanEqualOperator semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns IsLowerThanOperator
+ * CImpliesOperator returns IsLowerThanOperator
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns IsLowerThanOperator
+ * COrOperator returns IsLowerThanOperator
+ * COrOperator.OrOperator_1_0_0_0 returns IsLowerThanOperator
+ * CAndOperator returns IsLowerThanOperator
+ * CAndOperator.AndOperator_1_0_0_0 returns IsLowerThanOperator
+ * CEqualityExpression returns IsLowerThanOperator
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns IsLowerThanOperator
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns IsLowerThanOperator
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns IsLowerThanOperator
+ * CRelationalExpression returns IsLowerThanOperator
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns IsLowerThanOperator
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns IsLowerThanOperator
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns IsLowerThanOperator
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns IsLowerThanOperator
+ * CUnaryOperation returns IsLowerThanOperator
+ * COperationFeatureCall returns IsLowerThanOperator
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns IsLowerThanOperator
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns IsLowerThanOperator
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns IsLowerThanOperator
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns IsLowerThanOperator
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns IsLowerThanOperator
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns IsLowerThanOperator
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns IsLowerThanOperator
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns IsLowerThanOperator
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns IsLowerThanOperator
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns IsLowerThanOperator
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns IsLowerThanOperator
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns IsLowerThanOperator
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns IsLowerThanOperator
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns IsLowerThanOperator
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns IsLowerThanOperator
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns IsLowerThanOperator
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns IsLowerThanOperator
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns IsLowerThanOperator
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns IsLowerThanOperator
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns IsLowerThanOperator
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns IsLowerThanOperator
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns IsLowerThanOperator
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns IsLowerThanOperator
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns IsLowerThanOperator
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns IsLowerThanOperator
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns IsLowerThanOperator
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns IsLowerThanOperator
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns IsLowerThanOperator
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns IsLowerThanOperator
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns IsLowerThanOperator
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns IsLowerThanOperator
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns IsLowerThanOperator
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns IsLowerThanOperator
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns IsLowerThanOperator
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns IsLowerThanOperator
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns IsLowerThanOperator
+ * CPrimaryExpression returns IsLowerThanOperator
+ *
+ * Constraint:
+ * (operand+=CRelationalExpression_IsLowerThanOperator_1_0_0_3_0 operand+=CUnaryOperation)
+ */
+ protected void sequence_CRelationalExpression(ISerializationContext context, IsLowerThanOperator semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns NotOperator
+ * CImpliesOperator returns NotOperator
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns NotOperator
+ * COrOperator returns NotOperator
+ * COrOperator.OrOperator_1_0_0_0 returns NotOperator
+ * CAndOperator returns NotOperator
+ * CAndOperator.AndOperator_1_0_0_0 returns NotOperator
+ * CEqualityExpression returns NotOperator
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns NotOperator
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns NotOperator
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns NotOperator
+ * CRelationalExpression returns NotOperator
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns NotOperator
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns NotOperator
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns NotOperator
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns NotOperator
+ * CUnaryOperation returns NotOperator
+ * COperationFeatureCall returns NotOperator
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns NotOperator
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns NotOperator
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns NotOperator
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns NotOperator
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns NotOperator
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns NotOperator
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns NotOperator
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns NotOperator
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns NotOperator
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns NotOperator
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns NotOperator
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns NotOperator
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns NotOperator
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns NotOperator
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns NotOperator
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns NotOperator
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns NotOperator
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns NotOperator
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns NotOperator
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns NotOperator
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns NotOperator
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns NotOperator
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns NotOperator
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns NotOperator
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns NotOperator
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns NotOperator
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns NotOperator
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns NotOperator
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns NotOperator
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns NotOperator
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns NotOperator
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns NotOperator
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns NotOperator
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns NotOperator
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns NotOperator
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns NotOperator
+ * CPrimaryExpression returns NotOperator
+ *
+ * Constraint:
+ * operand+=CUnaryOperation
+ */
+ protected void sequence_CUnaryOperation(ISerializationContext context, NotOperator semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * ComplexExpression returns ComplexExpression
+ *
+ * Constraint:
+ * (letStatements+=LetStatement* otherExpression=CExpression)
+ */
+ protected void sequence_ComplexExpression(ISerializationContext context, ComplexExpression semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CompositeArea returns CompositeArea
+ *
+ * Constraint:
+ * (name=QualifiedName (description=EString | layout=LayoutManager)*)
+ */
+ protected void sequence_CompositeArea(ISerializationContext context, CompositeArea semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * PackagableElement returns Constraint
+ * AbstractConstraint returns Constraint
+ * Constraint returns Constraint
+ *
+ * Constraint:
+ * (name=QualifiedName (description=EString | runtime=EBoolean | expression=ComplexExpression)*)
+ */
+ protected void sequence_Constraint(ISerializationContext context, Constraint semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * PackagableElement returns Display
+ * Display returns Display
+ *
+ * Constraint:
+ * (name=QualifiedName (description=EString | size=SizeIdentifier | root=CompositeArea)*)
+ */
+ protected void sequence_Display(ISerializationContext context, Display semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns ExistsOperator
+ * CImpliesOperator returns ExistsOperator
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns ExistsOperator
+ * COrOperator returns ExistsOperator
+ * COrOperator.OrOperator_1_0_0_0 returns ExistsOperator
+ * CAndOperator returns ExistsOperator
+ * CAndOperator.AndOperator_1_0_0_0 returns ExistsOperator
+ * CEqualityExpression returns ExistsOperator
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns ExistsOperator
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns ExistsOperator
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns ExistsOperator
+ * CRelationalExpression returns ExistsOperator
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns ExistsOperator
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns ExistsOperator
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns ExistsOperator
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns ExistsOperator
+ * CUnaryOperation returns ExistsOperator
+ * COperationFeatureCall returns ExistsOperator
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns ExistsOperator
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns ExistsOperator
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns ExistsOperator
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns ExistsOperator
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns ExistsOperator
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns ExistsOperator
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns ExistsOperator
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns ExistsOperator
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns ExistsOperator
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns ExistsOperator
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns ExistsOperator
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns ExistsOperator
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns ExistsOperator
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns ExistsOperator
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns ExistsOperator
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns ExistsOperator
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns ExistsOperator
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns ExistsOperator
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns ExistsOperator
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns ExistsOperator
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns ExistsOperator
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns ExistsOperator
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns ExistsOperator
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns ExistsOperator
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns ExistsOperator
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns ExistsOperator
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns ExistsOperator
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns ExistsOperator
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns ExistsOperator
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns ExistsOperator
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns ExistsOperator
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns ExistsOperator
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns ExistsOperator
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns ExistsOperator
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns ExistsOperator
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns ExistsOperator
+ * CPrimaryExpression returns ExistsOperator
+ * ExistsOperator returns ExistsOperator
+ *
+ * Constraint:
+ * (operand+=CExpression lambda=LambdaExpression)
+ */
+ protected void sequence_ExistsOperator(ISerializationContext context, ExistsOperator semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * LayoutManager returns FixedPositionLayout
+ * FixedPositionLayout returns FixedPositionLayout
+ *
+ * Constraint:
+ * subAreaPosition+=PositionContainer*
+ */
+ protected void sequence_FixedPositionLayout(ISerializationContext context, FixedPositionLayout semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns ForAllOperator
+ * CImpliesOperator returns ForAllOperator
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns ForAllOperator
+ * COrOperator returns ForAllOperator
+ * COrOperator.OrOperator_1_0_0_0 returns ForAllOperator
+ * CAndOperator returns ForAllOperator
+ * CAndOperator.AndOperator_1_0_0_0 returns ForAllOperator
+ * CEqualityExpression returns ForAllOperator
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns ForAllOperator
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns ForAllOperator
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns ForAllOperator
+ * CRelationalExpression returns ForAllOperator
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns ForAllOperator
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns ForAllOperator
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns ForAllOperator
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns ForAllOperator
+ * CUnaryOperation returns ForAllOperator
+ * COperationFeatureCall returns ForAllOperator
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns ForAllOperator
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns ForAllOperator
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns ForAllOperator
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns ForAllOperator
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns ForAllOperator
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns ForAllOperator
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns ForAllOperator
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns ForAllOperator
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns ForAllOperator
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns ForAllOperator
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns ForAllOperator
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns ForAllOperator
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns ForAllOperator
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns ForAllOperator
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns ForAllOperator
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns ForAllOperator
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns ForAllOperator
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns ForAllOperator
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns ForAllOperator
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns ForAllOperator
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns ForAllOperator
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns ForAllOperator
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns ForAllOperator
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns ForAllOperator
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns ForAllOperator
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns ForAllOperator
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns ForAllOperator
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns ForAllOperator
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns ForAllOperator
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns ForAllOperator
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns ForAllOperator
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns ForAllOperator
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns ForAllOperator
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns ForAllOperator
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns ForAllOperator
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns ForAllOperator
+ * CPrimaryExpression returns ForAllOperator
+ * ForAllOperator returns ForAllOperator
+ *
+ * Constraint:
+ * (operand+=CExpression lambda=LambdaExpression)
+ */
+ protected void sequence_ForAllOperator(ISerializationContext context, ForAllOperator semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns HideLowerPriority
+ * CImpliesOperator returns HideLowerPriority
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns HideLowerPriority
+ * COrOperator returns HideLowerPriority
+ * COrOperator.OrOperator_1_0_0_0 returns HideLowerPriority
+ * CAndOperator returns HideLowerPriority
+ * CAndOperator.AndOperator_1_0_0_0 returns HideLowerPriority
+ * CEqualityExpression returns HideLowerPriority
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns HideLowerPriority
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns HideLowerPriority
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns HideLowerPriority
+ * CRelationalExpression returns HideLowerPriority
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns HideLowerPriority
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns HideLowerPriority
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns HideLowerPriority
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns HideLowerPriority
+ * CUnaryOperation returns HideLowerPriority
+ * COperationFeatureCall returns HideLowerPriority
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns HideLowerPriority
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns HideLowerPriority
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns HideLowerPriority
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns HideLowerPriority
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns HideLowerPriority
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns HideLowerPriority
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns HideLowerPriority
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns HideLowerPriority
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns HideLowerPriority
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns HideLowerPriority
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns HideLowerPriority
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns HideLowerPriority
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns HideLowerPriority
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns HideLowerPriority
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns HideLowerPriority
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns HideLowerPriority
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns HideLowerPriority
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns HideLowerPriority
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns HideLowerPriority
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns HideLowerPriority
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns HideLowerPriority
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns HideLowerPriority
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns HideLowerPriority
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns HideLowerPriority
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns HideLowerPriority
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns HideLowerPriority
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns HideLowerPriority
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns HideLowerPriority
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns HideLowerPriority
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns HideLowerPriority
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns HideLowerPriority
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns HideLowerPriority
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns HideLowerPriority
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns HideLowerPriority
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns HideLowerPriority
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns HideLowerPriority
+ * CPrimaryExpression returns HideLowerPriority
+ * HideLowerPriority returns HideLowerPriority
+ *
+ * Constraint:
+ * (operand+=CExpression operand+=CExpression)
+ */
+ protected void sequence_HideLowerPriority(ISerializationContext context, HideLowerPriority semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * LayoutManager returns HorizontalLayout
+ * AlignedLayout returns HorizontalLayout
+ * HorizontalLayout returns HorizontalLayout
+ *
+ * Constraint:
+ * (basePoint=BasePoint? (subarea+=[Area|QualifiedName] subarea+=[Area|QualifiedName]*)?)+
+ */
+ protected void sequence_HorizontalLayout(ISerializationContext context, HorizontalLayout semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns IfStatement
+ * CImpliesOperator returns IfStatement
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns IfStatement
+ * COrOperator returns IfStatement
+ * COrOperator.OrOperator_1_0_0_0 returns IfStatement
+ * CAndOperator returns IfStatement
+ * CAndOperator.AndOperator_1_0_0_0 returns IfStatement
+ * CEqualityExpression returns IfStatement
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns IfStatement
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns IfStatement
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns IfStatement
+ * CRelationalExpression returns IfStatement
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns IfStatement
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns IfStatement
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns IfStatement
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns IfStatement
+ * CUnaryOperation returns IfStatement
+ * COperationFeatureCall returns IfStatement
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns IfStatement
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns IfStatement
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns IfStatement
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns IfStatement
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns IfStatement
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns IfStatement
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns IfStatement
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns IfStatement
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns IfStatement
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns IfStatement
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns IfStatement
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns IfStatement
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns IfStatement
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns IfStatement
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns IfStatement
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns IfStatement
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns IfStatement
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns IfStatement
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns IfStatement
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns IfStatement
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns IfStatement
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns IfStatement
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns IfStatement
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns IfStatement
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns IfStatement
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns IfStatement
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns IfStatement
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns IfStatement
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns IfStatement
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns IfStatement
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns IfStatement
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns IfStatement
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns IfStatement
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns IfStatement
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns IfStatement
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns IfStatement
+ * CPrimaryExpression returns IfStatement
+ * IfStatement returns IfStatement
+ *
+ * Constraint:
+ * (condition=CExpression? thenExpression=CExpression? elseExpression=CExpression?)
+ */
+ protected void sequence_IfStatement(ISerializationContext context, IfStatement semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * Import returns Import
+ *
+ * Constraint:
+ * importedNamespace=QualifiedNameWithWildcard
+ */
+ protected void sequence_Import(ISerializationContext context, Import semanticObject) {
+ if (errorAcceptor != null) {
+ if (transientValues.isValueTransient(semanticObject, RbaEditorModelPackage.Literals.IMPORT__IMPORTED_NAMESPACE) == ValueTransient.YES)
+ errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, RbaEditorModelPackage.Literals.IMPORT__IMPORTED_NAMESPACE));
+ }
+ SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+ feeder.accept(grammarAccess.getImportAccess().getImportedNamespaceQualifiedNameWithWildcardParserRuleCall_1_0(), semanticObject.getImportedNamespace());
+ feeder.finish();
+ }
+
+
+ /**
+ * Contexts:
+ * VExpression returns IntegerValue
+ * VPlusOperator returns IntegerValue
+ * VPlusOperator.PlusOperator_1_0_0_0 returns IntegerValue
+ * VComparisonAnd returns IntegerValue
+ * VComparisonAnd.ComparisonAnd_1_0_0_0 returns IntegerValue
+ * VRelationalExpression returns IntegerValue
+ * VPrimaryExpression returns IntegerValue
+ * VValueExpression returns IntegerValue
+ * IntegerValue returns IntegerValue
+ * CExpression returns IntegerValue
+ * CImpliesOperator returns IntegerValue
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns IntegerValue
+ * COrOperator returns IntegerValue
+ * COrOperator.OrOperator_1_0_0_0 returns IntegerValue
+ * CAndOperator returns IntegerValue
+ * CAndOperator.AndOperator_1_0_0_0 returns IntegerValue
+ * CEqualityExpression returns IntegerValue
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns IntegerValue
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns IntegerValue
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns IntegerValue
+ * CRelationalExpression returns IntegerValue
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns IntegerValue
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns IntegerValue
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns IntegerValue
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns IntegerValue
+ * CUnaryOperation returns IntegerValue
+ * COperationFeatureCall returns IntegerValue
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns IntegerValue
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns IntegerValue
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns IntegerValue
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns IntegerValue
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns IntegerValue
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns IntegerValue
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns IntegerValue
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns IntegerValue
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns IntegerValue
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns IntegerValue
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns IntegerValue
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns IntegerValue
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns IntegerValue
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns IntegerValue
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns IntegerValue
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns IntegerValue
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns IntegerValue
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns IntegerValue
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns IntegerValue
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns IntegerValue
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns IntegerValue
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns IntegerValue
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns IntegerValue
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns IntegerValue
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns IntegerValue
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns IntegerValue
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns IntegerValue
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns IntegerValue
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns IntegerValue
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns IntegerValue
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns IntegerValue
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns IntegerValue
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns IntegerValue
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns IntegerValue
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns IntegerValue
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns IntegerValue
+ * CPrimaryExpression returns IntegerValue
+ *
+ * Constraint:
+ * value=EInt
+ */
+ protected void sequence_IntegerValue(ISerializationContext context, IntegerValue semanticObject) {
+ if (errorAcceptor != null) {
+ if (transientValues.isValueTransient(semanticObject, RBACorePackage.Literals.INTEGER_VALUE__VALUE) == ValueTransient.YES)
+ errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, RBACorePackage.Literals.INTEGER_VALUE__VALUE));
+ }
+ SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+ feeder.accept(grammarAccess.getIntegerValueAccess().getValueEIntParserRuleCall_1_0(), semanticObject.getValue());
+ feeder.finish();
+ }
+
+
+ /**
+ * Contexts:
+ * LambdaExpression returns LambdaExpression
+ *
+ * Constraint:
+ * (x=Variable? letStatements+=LetStatement* bodyText=CExpression)
+ */
+ protected void sequence_LambdaExpression(ISerializationContext context, LambdaExpression semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * LetStatement returns LetStatement
+ *
+ * Constraint:
+ * (variable=Variable body=CExpression?)
+ */
+ protected void sequence_LetStatement(ISerializationContext context, LetStatement semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * EnumExpression returns LoserTypeExpression
+ * LoserTypeExpression returns LoserTypeExpression
+ *
+ * Constraint:
+ * value=LoserType
+ */
+ protected void sequence_LoserTypeExpression(ISerializationContext context, LoserTypeExpression semanticObject) {
+ if (errorAcceptor != null) {
+ if (transientValues.isValueTransient(semanticObject, RBACorePackage.Literals.LOSER_TYPE_EXPRESSION__VALUE) == ValueTransient.YES)
+ errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, RBACorePackage.Literals.LOSER_TYPE_EXPRESSION__VALUE));
+ }
+ SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+ feeder.accept(grammarAccess.getLoserTypeExpressionAccess().getValueLoserTypeEnumRuleCall_1_0(), semanticObject.getValue());
+ feeder.finish();
+ }
+
+
+ /**
+ * Contexts:
+ * VExpression returns MaxValue
+ * VPlusOperator returns MaxValue
+ * VPlusOperator.PlusOperator_1_0_0_0 returns MaxValue
+ * VComparisonAnd returns MaxValue
+ * VComparisonAnd.ComparisonAnd_1_0_0_0 returns MaxValue
+ * VRelationalExpression returns MaxValue
+ * VPrimaryExpression returns MaxValue
+ * VValueExpression returns MaxValue
+ * MaxValue returns MaxValue
+ *
+ * Constraint:
+ * {MaxValue}
+ */
+ protected void sequence_MaxValue(ISerializationContext context, MaxValue semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * VExpression returns MinValue
+ * VPlusOperator returns MinValue
+ * VPlusOperator.PlusOperator_1_0_0_0 returns MinValue
+ * VComparisonAnd returns MinValue
+ * VComparisonAnd.ComparisonAnd_1_0_0_0 returns MinValue
+ * VRelationalExpression returns MinValue
+ * VPrimaryExpression returns MinValue
+ * VValueExpression returns MinValue
+ * MinValue returns MinValue
+ *
+ * Constraint:
+ * {MinValue}
+ */
+ protected void sequence_MinValue(ISerializationContext context, MinValue semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns MuteLowerPriority
+ * CImpliesOperator returns MuteLowerPriority
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns MuteLowerPriority
+ * COrOperator returns MuteLowerPriority
+ * COrOperator.OrOperator_1_0_0_0 returns MuteLowerPriority
+ * CAndOperator returns MuteLowerPriority
+ * CAndOperator.AndOperator_1_0_0_0 returns MuteLowerPriority
+ * CEqualityExpression returns MuteLowerPriority
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns MuteLowerPriority
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns MuteLowerPriority
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns MuteLowerPriority
+ * CRelationalExpression returns MuteLowerPriority
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns MuteLowerPriority
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns MuteLowerPriority
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns MuteLowerPriority
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns MuteLowerPriority
+ * CUnaryOperation returns MuteLowerPriority
+ * COperationFeatureCall returns MuteLowerPriority
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns MuteLowerPriority
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns MuteLowerPriority
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns MuteLowerPriority
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns MuteLowerPriority
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns MuteLowerPriority
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns MuteLowerPriority
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns MuteLowerPriority
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns MuteLowerPriority
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns MuteLowerPriority
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns MuteLowerPriority
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns MuteLowerPriority
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns MuteLowerPriority
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns MuteLowerPriority
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns MuteLowerPriority
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns MuteLowerPriority
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns MuteLowerPriority
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns MuteLowerPriority
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns MuteLowerPriority
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns MuteLowerPriority
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns MuteLowerPriority
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns MuteLowerPriority
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns MuteLowerPriority
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns MuteLowerPriority
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns MuteLowerPriority
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns MuteLowerPriority
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns MuteLowerPriority
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns MuteLowerPriority
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns MuteLowerPriority
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns MuteLowerPriority
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns MuteLowerPriority
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns MuteLowerPriority
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns MuteLowerPriority
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns MuteLowerPriority
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns MuteLowerPriority
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns MuteLowerPriority
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns MuteLowerPriority
+ * CPrimaryExpression returns MuteLowerPriority
+ * MuteLowerPriority returns MuteLowerPriority
+ *
+ * Constraint:
+ * (operand+=CExpression operand+=CExpression)
+ */
+ protected void sequence_MuteLowerPriority(ISerializationContext context, MuteLowerPriority semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * VExpression returns NoneValue
+ * VPlusOperator returns NoneValue
+ * VPlusOperator.PlusOperator_1_0_0_0 returns NoneValue
+ * VComparisonAnd returns NoneValue
+ * VComparisonAnd.ComparisonAnd_1_0_0_0 returns NoneValue
+ * VRelationalExpression returns NoneValue
+ * VPrimaryExpression returns NoneValue
+ * VValueExpression returns NoneValue
+ * NoneValue returns NoneValue
+ *
+ * Constraint:
+ * {NoneValue}
+ */
+ protected void sequence_NoneValue(ISerializationContext context, NoneValue semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns NullExpression
+ * CImpliesOperator returns NullExpression
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns NullExpression
+ * COrOperator returns NullExpression
+ * COrOperator.OrOperator_1_0_0_0 returns NullExpression
+ * CAndOperator returns NullExpression
+ * CAndOperator.AndOperator_1_0_0_0 returns NullExpression
+ * CEqualityExpression returns NullExpression
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns NullExpression
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns NullExpression
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns NullExpression
+ * CRelationalExpression returns NullExpression
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns NullExpression
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns NullExpression
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns NullExpression
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns NullExpression
+ * CUnaryOperation returns NullExpression
+ * COperationFeatureCall returns NullExpression
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns NullExpression
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns NullExpression
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns NullExpression
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns NullExpression
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns NullExpression
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns NullExpression
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns NullExpression
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns NullExpression
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns NullExpression
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns NullExpression
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns NullExpression
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns NullExpression
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns NullExpression
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns NullExpression
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns NullExpression
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns NullExpression
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns NullExpression
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns NullExpression
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns NullExpression
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns NullExpression
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns NullExpression
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns NullExpression
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns NullExpression
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns NullExpression
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns NullExpression
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns NullExpression
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns NullExpression
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns NullExpression
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns NullExpression
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns NullExpression
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns NullExpression
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns NullExpression
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns NullExpression
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns NullExpression
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns NullExpression
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns NullExpression
+ * CPrimaryExpression returns NullExpression
+ * NullExpression returns NullExpression
+ *
+ * Constraint:
+ * {NullExpression}
+ */
+ protected void sequence_NullExpression(ISerializationContext context, NullExpression semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * Offset returns Offset
+ *
+ * Constraint:
+ * (description=EString | x=EInt | y=EInt | size=SizeReference)*
+ */
+ protected void sequence_Offset(ISerializationContext context, Offset semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * PackagableElement returns Package
+ * Package returns Package
+ *
+ * Constraint:
+ * (name=QualifiedName (description=EString | packagableelement+=PackagableElement)*)
+ */
+ protected void sequence_Package(ISerializationContext context, rba.core.Package semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * PositionContainer returns PositionContainer
+ *
+ * Constraint:
+ * (x=EInt | y=EInt | basePoint=BasePoint | area=[Area|QualifiedName] | offset+=Offset)*
+ */
+ protected void sequence_PositionContainer(ISerializationContext context, PositionContainer semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns PreviousModifier
+ * CImpliesOperator returns PreviousModifier
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns PreviousModifier
+ * COrOperator returns PreviousModifier
+ * COrOperator.OrOperator_1_0_0_0 returns PreviousModifier
+ * CAndOperator returns PreviousModifier
+ * CAndOperator.AndOperator_1_0_0_0 returns PreviousModifier
+ * CEqualityExpression returns PreviousModifier
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns PreviousModifier
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns PreviousModifier
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns PreviousModifier
+ * CRelationalExpression returns PreviousModifier
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns PreviousModifier
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns PreviousModifier
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns PreviousModifier
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns PreviousModifier
+ * CUnaryOperation returns PreviousModifier
+ * COperationFeatureCall returns PreviousModifier
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns PreviousModifier
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns PreviousModifier
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns PreviousModifier
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns PreviousModifier
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns PreviousModifier
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns PreviousModifier
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns PreviousModifier
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns PreviousModifier
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns PreviousModifier
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns PreviousModifier
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns PreviousModifier
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns PreviousModifier
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns PreviousModifier
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns PreviousModifier
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns PreviousModifier
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns PreviousModifier
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns PreviousModifier
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns PreviousModifier
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns PreviousModifier
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns PreviousModifier
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns PreviousModifier
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns PreviousModifier
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns PreviousModifier
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns PreviousModifier
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns PreviousModifier
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns PreviousModifier
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns PreviousModifier
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns PreviousModifier
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns PreviousModifier
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns PreviousModifier
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns PreviousModifier
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns PreviousModifier
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns PreviousModifier
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns PreviousModifier
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns PreviousModifier
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns PreviousModifier
+ * CPrimaryExpression returns PreviousModifier
+ * PreviousModifier returns PreviousModifier
+ *
+ * Constraint:
+ * objReference=CMemberFeatureReference
+ */
+ protected void sequence_PreviousModifier(ISerializationContext context, PreviousModifier semanticObject) {
+ if (errorAcceptor != null) {
+ if (transientValues.isValueTransient(semanticObject, RBACorePackage.Literals.PREVIOUS_MODIFIER__OBJ_REFERENCE) == ValueTransient.YES)
+ errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, RBACorePackage.Literals.PREVIOUS_MODIFIER__OBJ_REFERENCE));
+ }
+ SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+ feeder.accept(grammarAccess.getPreviousModifierAccess().getObjReferenceCMemberFeatureReferenceParserRuleCall_2_0(), semanticObject.getObjReference());
+ feeder.finish();
+ }
+
+
+ /**
+ * Contexts:
+ * Project returns Project
+ *
+ * Constraint:
+ * (dummyName=QualifiedName? version=EString)
+ */
+ protected void sequence_Project(ISerializationContext context, Project semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * PackagableElement returns Scene
+ * RuleObject returns Scene
+ * AbstractScene returns Scene
+ * Scene returns Scene
+ *
+ * Constraint:
+ * (name=QualifiedName (description=EString | global=EBoolean | properties+=AbstractProperty)*)
+ */
+ protected void sequence_Scene(ISerializationContext context, Scene semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * CExpression returns SetOfOperator
+ * CImpliesOperator returns SetOfOperator
+ * CImpliesOperator.ImpliesOperator_1_0_0_0 returns SetOfOperator
+ * COrOperator returns SetOfOperator
+ * COrOperator.OrOperator_1_0_0_0 returns SetOfOperator
+ * CAndOperator returns SetOfOperator
+ * CAndOperator.AndOperator_1_0_0_0 returns SetOfOperator
+ * CEqualityExpression returns SetOfOperator
+ * CEqualityExpression.ObjectCompare_1_0_0_0_0 returns SetOfOperator
+ * CEqualityExpression.ObjectCompareNot_1_0_0_1_0 returns SetOfOperator
+ * CEqualityExpression.IsEqualToOperator_1_0_0_2_0 returns SetOfOperator
+ * CRelationalExpression returns SetOfOperator
+ * CRelationalExpression.IsGreaterThanEqualOperator_1_0_0_0_0 returns SetOfOperator
+ * CRelationalExpression.IsLowerThanEqualOperator_1_0_0_1_0 returns SetOfOperator
+ * CRelationalExpression.IsGreaterThanOperator_1_0_0_2_0 returns SetOfOperator
+ * CRelationalExpression.IsLowerThanOperator_1_0_0_3_0 returns SetOfOperator
+ * CUnaryOperation returns SetOfOperator
+ * COperationFeatureCall returns SetOfOperator
+ * COperationFeatureCall.GetProperty_1_1_0_0_0_0 returns SetOfOperator
+ * COperationFeatureCall.IsOn_1_1_0_0_1_0 returns SetOfOperator
+ * COperationFeatureCall.GetContentsList_1_1_0_0_2_0 returns SetOfOperator
+ * COperationFeatureCall.ContentValue_1_1_0_0_3_0 returns SetOfOperator
+ * COperationFeatureCall.IsActive_1_1_0_0_4_0 returns SetOfOperator
+ * COperationFeatureCall.GetAllocatables_1_1_0_0_5_0 returns SetOfOperator
+ * COperationFeatureCall.AllocatedContent_1_1_0_0_6_0 returns SetOfOperator
+ * COperationFeatureCall.HasComeEarlierThan_1_1_0_0_7_0 returns SetOfOperator
+ * COperationFeatureCall.HasComeLaterThan_1_1_0_0_8_0 returns SetOfOperator
+ * COperationFeatureCall.StateValue_1_1_0_0_9_0 returns SetOfOperator
+ * COperationFeatureCall.ActiveContents_1_1_0_0_10_0 returns SetOfOperator
+ * COperationFeatureCall.SizeOperator_1_1_0_0_11_0 returns SetOfOperator
+ * COperationFeatureCall.HasBeenDisplayed_1_1_0_0_12_0 returns SetOfOperator
+ * COperationFeatureCall.ActiveState_1_1_0_0_13_0 returns SetOfOperator
+ * COperationFeatureCall.IsDisplayed_1_1_0_0_14_0 returns SetOfOperator
+ * COperationFeatureCall.IsHidden_1_1_0_0_15_0 returns SetOfOperator
+ * COperationFeatureCall.DisplayingContent_1_1_0_0_16_0 returns SetOfOperator
+ * COperationFeatureCall.IsVisible_1_1_0_0_17_0 returns SetOfOperator
+ * COperationFeatureCall.IsOutputted_1_1_0_0_18_0 returns SetOfOperator
+ * COperationFeatureCall.IsMuted_1_1_0_0_19_0 returns SetOfOperator
+ * COperationFeatureCall.OutputtingSound_1_1_0_0_20_0 returns SetOfOperator
+ * COperationFeatureCall.IsSounding_1_1_0_0_21_0 returns SetOfOperator
+ * COperationFeatureCall.IsAllocatedTo_1_1_0_0_22_0 returns SetOfOperator
+ * COperationFeatureCall.IsChanged_1_1_0_0_23_0 returns SetOfOperator
+ * COperationFeatureCall.IsTranslatedTo_1_1_0_0_24_0 returns SetOfOperator
+ * COperationFeatureCall.IsDisplayedOn_1_1_0_0_25_0 returns SetOfOperator
+ * COperationFeatureCall.IsChangedDisplay_1_1_0_0_26_0 returns SetOfOperator
+ * COperationFeatureCall.IsTranslatedViewTo_1_1_0_0_27_0 returns SetOfOperator
+ * COperationFeatureCall.IsOutputtedOn_1_1_0_0_28_0 returns SetOfOperator
+ * COperationFeatureCall.IsChangedOutput_1_1_0_0_29_0 returns SetOfOperator
+ * COperationFeatureCall.IsTranslatedSoundTo_1_1_0_0_30_0 returns SetOfOperator
+ * COperationFeatureCall.IsAttenuated_1_1_0_0_31_0 returns SetOfOperator
+ * COperationFeatureCall.IsTypeOf_1_1_1_0_0 returns SetOfOperator
+ * COperationFeatureCall.MaxOperator_1_1_2_0_0 returns SetOfOperator
+ * COperationFeatureCall.MinOperator_1_1_2_1_0 returns SetOfOperator
+ * COperationFeatureCall.SelectOperator_1_1_2_2_0 returns SetOfOperator
+ * CPrimaryExpression returns SetOfOperator
+ * SetOfOperator returns SetOfOperator
+ *
+ * Constraint:
+ * (operand+=CExpression operand+=CExpression*)?
+ */
+ protected void sequence_SetOfOperator(ISerializationContext context, SetOfOperator semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * SizeIdentifier returns SizeReference
+ * SizeReference returns SizeReference
+ *
+ * Constraint:
+ * size=[Size|QualifiedName]
+ */
+ protected void sequence_SizeReference(ISerializationContext context, SizeReference semanticObject) {
+ if (errorAcceptor != null) {
+ if (transientValues.isValueTransient(semanticObject, RBAViewPackage.Literals.SIZE_REFERENCE__SIZE) == ValueTransient.YES)
+ errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, RBAViewPackage.Literals.SIZE_REFERENCE__SIZE));
+ }
+ SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+ feeder.accept(grammarAccess.getSizeReferenceAccess().getSizeSizeQualifiedNameParserRuleCall_2_0_1(), semanticObject.eGet(RBAViewPackage.Literals.SIZE_REFERENCE__SIZE, false));
+ feeder.finish();
+ }
+
+
+ /**
+ * Contexts:
+ * PackagableElement returns Size
+ * SizeIdentifier returns Size
+ * Size returns Size
+ *
+ * Constraint:
+ * (name=QualifiedName (description=EString | width=EInt | height=EInt)*)
+ */
+ protected void sequence_Size(ISerializationContext context, Size semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * PackagableElement returns SoundContentSet
+ * RuleObject returns SoundContentSet
+ * AbstractContent returns SoundContentSet
+ * ContentSet returns SoundContentSet
+ * SoundContentSet returns SoundContentSet
+ *
+ * Constraint:
+ * (
+ * name=QualifiedName
+ * (
+ * description=EString?
+ * (target+=[AbstractContent|QualifiedName] target+=[AbstractContent|QualifiedName]*)?
+ * (allocatable+=[AbstractAllocatable|QualifiedName] allocatable+=[AbstractAllocatable|QualifiedName]*)?
+ * )+
+ * )
+ */
+ protected void sequence_SoundContentSet(ISerializationContext context, SoundContentSet semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * SoundContentState returns SoundContentState
+ *
+ * Constraint:
+ * (name=QualifiedName (description=EString | value=VExpression)*)
+ */
+ protected void sequence_SoundContentState(ISerializationContext context, SoundContentState semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * PackagableElement returns SoundContent
+ * RuleObject returns SoundContent
+ * AbstractContent returns SoundContent
+ * Content returns SoundContent
+ * SoundContent returns SoundContent
+ *
+ * Constraint:
+ * (
+ * name=QualifiedName
+ * (
+ * (description=EString | loserType=LoserType | states+=SoundContentState | tags+=Tag)?
+ * (allocatable+=[AbstractAllocatable|QualifiedName] allocatable+=[AbstractAllocatable|QualifiedName]*)?
+ * )+
+ * )
+ */
+ protected void sequence_SoundContent(ISerializationContext context, SoundContent semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * VExpression returns StandardValue
+ * VPlusOperator returns StandardValue
+ * VPlusOperator.PlusOperator_1_0_0_0 returns StandardValue
+ * VComparisonAnd returns StandardValue
+ * VComparisonAnd.ComparisonAnd_1_0_0_0 returns StandardValue
+ * VRelationalExpression returns StandardValue
+ * VPrimaryExpression returns StandardValue
+ * VValueExpression returns StandardValue
+ * StandardValue returns StandardValue
+ *
+ * Constraint:
+ * {StandardValue}
+ */
+ protected void sequence_StandardValue(ISerializationContext context, StandardValue semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * PackagableElement returns Stereotype
+ * Stereotype returns Stereotype
+ *
+ * Constraint:
+ * (targetModelName=StereotypableElementName name=QualifiedName (variables+=Variable variables+=Variable*)? bodyText=RichString?)
+ */
+ protected void sequence_Stereotype(ISerializationContext context, Stereotype semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * Tag returns CTag
+ *
+ * Constraint:
+ * (name=QualifiedName (values+=EString values+=EString*)?)
+ */
+ protected void sequence_Tag(ISerializationContext context, CTag semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * Tag returns Tag
+ *
+ * Constraint:
+ * (name=QualifiedName (values+=EString values+=EString*)?)
+ */
+ protected void sequence_Tag(ISerializationContext context, Tag semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * VExpression returns ThatOfOperator
+ * VPlusOperator returns ThatOfOperator
+ * VPlusOperator.PlusOperator_1_0_0_0 returns ThatOfOperator
+ * VComparisonAnd returns ThatOfOperator
+ * VComparisonAnd.ComparisonAnd_1_0_0_0 returns ThatOfOperator
+ * VRelationalExpression returns ThatOfOperator
+ * VPrimaryExpression returns ThatOfOperator
+ * ThatOfOperator returns ThatOfOperator
+ *
+ * Constraint:
+ * operand+=VMemberFeatureReference?
+ */
+ protected void sequence_ThatOfOperator(ISerializationContext context, ThatOfOperator semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * TopLevel returns TopLevel
+ *
+ * Constraint:
+ * (project+=Project* imports+=Import* packages+=Package*)
+ */
+ protected void sequence_TopLevel(ISerializationContext context, TopLevel semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * VExpression returns ComparisonAnd
+ * VPlusOperator returns ComparisonAnd
+ * VPlusOperator.PlusOperator_1_0_0_0 returns ComparisonAnd
+ * VComparisonAnd returns ComparisonAnd
+ * VComparisonAnd.ComparisonAnd_1_0_0_0 returns ComparisonAnd
+ * VRelationalExpression returns ComparisonAnd
+ * VPrimaryExpression returns ComparisonAnd
+ *
+ * Constraint:
+ * (operand+=VComparisonAnd_ComparisonAnd_1_0_0_0 operand+=VRelationalExpression)
+ */
+ protected void sequence_VComparisonAnd(ISerializationContext context, ComparisonAnd semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * VMemberFeatureReference returns MemberFeatureReference
+ * VMemberFeatureReference.MemberFeatureReference_2_0 returns MemberFeatureReference
+ *
+ * Constraint:
+ * (operand+=VMemberFeatureReference_MemberFeatureReference_2_0 refObject=[RuleObject|ValidID])
+ */
+ protected void sequence_VMemberFeatureReference(ISerializationContext context, MemberFeatureReference semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * VMemberFeatureReference returns ObjectReference
+ * VMemberFeatureReference.MemberFeatureReference_2_0 returns ObjectReference
+ *
+ * Constraint:
+ * refObject=[RuleObject|ValidID]
+ */
+ protected void sequence_VMemberFeatureReference(ISerializationContext context, ObjectReference semanticObject) {
+ if (errorAcceptor != null) {
+ if (transientValues.isValueTransient(semanticObject, RBACorePackage.Literals.OBJECT_REFERENCE__REF_OBJECT) == ValueTransient.YES)
+ errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, RBACorePackage.Literals.OBJECT_REFERENCE__REF_OBJECT));
+ }
+ SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+ feeder.accept(grammarAccess.getVMemberFeatureReferenceAccess().getRefObjectRuleObjectValidIDParserRuleCall_1_0_1(), semanticObject.eGet(RBACorePackage.Literals.OBJECT_REFERENCE__REF_OBJECT, false));
+ feeder.finish();
+ }
+
+
+ /**
+ * Contexts:
+ * VExpression returns PlusOperator
+ * VPlusOperator returns PlusOperator
+ * VPlusOperator.PlusOperator_1_0_0_0 returns PlusOperator
+ * VComparisonAnd returns PlusOperator
+ * VComparisonAnd.ComparisonAnd_1_0_0_0 returns PlusOperator
+ * VRelationalExpression returns PlusOperator
+ * VPrimaryExpression returns PlusOperator
+ *
+ * Constraint:
+ * (operand+=VPlusOperator_PlusOperator_1_0_0_0 operand+=VComparisonAnd)
+ */
+ protected void sequence_VPlusOperator(ISerializationContext context, PlusOperator semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * VExpression returns EqualToOperator
+ * VPlusOperator returns EqualToOperator
+ * VPlusOperator.PlusOperator_1_0_0_0 returns EqualToOperator
+ * VComparisonAnd returns EqualToOperator
+ * VComparisonAnd.ComparisonAnd_1_0_0_0 returns EqualToOperator
+ * VRelationalExpression returns EqualToOperator
+ * VPrimaryExpression returns EqualToOperator
+ *
+ * Constraint:
+ * operand+=VPrimaryExpression
+ */
+ protected void sequence_VRelationalExpression(ISerializationContext context, EqualToOperator semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * VExpression returns GreaterThanOperator
+ * VPlusOperator returns GreaterThanOperator
+ * VPlusOperator.PlusOperator_1_0_0_0 returns GreaterThanOperator
+ * VComparisonAnd returns GreaterThanOperator
+ * VComparisonAnd.ComparisonAnd_1_0_0_0 returns GreaterThanOperator
+ * VRelationalExpression returns GreaterThanOperator
+ * VPrimaryExpression returns GreaterThanOperator
+ *
+ * Constraint:
+ * operand+=VPrimaryExpression
+ */
+ protected void sequence_VRelationalExpression(ISerializationContext context, GreaterThanOperator semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * VExpression returns LowerThanOperator
+ * VPlusOperator returns LowerThanOperator
+ * VPlusOperator.PlusOperator_1_0_0_0 returns LowerThanOperator
+ * VComparisonAnd returns LowerThanOperator
+ * VComparisonAnd.ComparisonAnd_1_0_0_0 returns LowerThanOperator
+ * VRelationalExpression returns LowerThanOperator
+ * VPrimaryExpression returns LowerThanOperator
+ *
+ * Constraint:
+ * operand+=VPrimaryExpression
+ */
+ protected void sequence_VRelationalExpression(ISerializationContext context, LowerThanOperator semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * VExpression returns MuchGreaterThanOperator
+ * VPlusOperator returns MuchGreaterThanOperator
+ * VPlusOperator.PlusOperator_1_0_0_0 returns MuchGreaterThanOperator
+ * VComparisonAnd returns MuchGreaterThanOperator
+ * VComparisonAnd.ComparisonAnd_1_0_0_0 returns MuchGreaterThanOperator
+ * VRelationalExpression returns MuchGreaterThanOperator
+ * VPrimaryExpression returns MuchGreaterThanOperator
+ *
+ * Constraint:
+ * operand+=VPrimaryExpression
+ */
+ protected void sequence_VRelationalExpression(ISerializationContext context, MuchGreaterThanOperator semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * Variable returns Variable
+ *
+ * Constraint:
+ * name=QualifiedName
+ */
+ protected void sequence_Variable(ISerializationContext context, Variable semanticObject) {
+ if (errorAcceptor != null) {
+ if (transientValues.isValueTransient(semanticObject, RBACorePackage.Literals.NAMED_ELEMENT__NAME) == ValueTransient.YES)
+ errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, RBACorePackage.Literals.NAMED_ELEMENT__NAME));
+ }
+ SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+ feeder.accept(grammarAccess.getVariableAccess().getNameQualifiedNameParserRuleCall_1_0(), semanticObject.getName());
+ feeder.finish();
+ }
+
+
+ /**
+ * Contexts:
+ * LayoutManager returns VerticalLayout
+ * AlignedLayout returns VerticalLayout
+ * VerticalLayout returns VerticalLayout
+ *
+ * Constraint:
+ * (basePoint=BasePoint? (subarea+=[Area|QualifiedName] subarea+=[Area|QualifiedName]*)?)+
+ */
+ protected void sequence_VerticalLayout(ISerializationContext context, VerticalLayout semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * PackagableElement returns ViewContentSet
+ * RuleObject returns ViewContentSet
+ * AbstractContent returns ViewContentSet
+ * ContentSet returns ViewContentSet
+ * ViewContentSet returns ViewContentSet
+ *
+ * Constraint:
+ * (
+ * name=QualifiedName
+ * (
+ * description=EString?
+ * (allocatable+=[AbstractAllocatable|QualifiedName] allocatable+=[AbstractAllocatable|QualifiedName]*)?
+ * (target+=[AbstractContent|QualifiedName] target+=[AbstractContent|QualifiedName]*)?
+ * )+
+ * )
+ */
+ protected void sequence_ViewContentSet(ISerializationContext context, ViewContentSet semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * ViewContentState returns ViewContentState
+ *
+ * Constraint:
+ * (name=QualifiedName (description=EString | value=VExpression)*)
+ */
+ protected void sequence_ViewContentState(ISerializationContext context, ViewContentState semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * PackagableElement returns ViewContent
+ * RuleObject returns ViewContent
+ * AbstractContent returns ViewContent
+ * Content returns ViewContent
+ * ViewContent returns ViewContent
+ *
+ * Constraint:
+ * (
+ * name=QualifiedName
+ * (
+ * (description=EString | loserType=LoserType | states+=ViewContentState | size+=SizeIdentifier | tags+=Tag)?
+ * (allocatable+=[AbstractAllocatable|QualifiedName] allocatable+=[AbstractAllocatable|QualifiedName]*)?
+ * )+
+ * )
+ */
+ protected void sequence_ViewContent(ISerializationContext context, ViewContent semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * PackagableElement returns ZoneSet
+ * RuleObject returns ZoneSet
+ * AbstractAllocatable returns ZoneSet
+ * AllocatableSet returns ZoneSet
+ * ZoneSet returns ZoneSet
+ *
+ * Constraint:
+ * (name=QualifiedName (description=EString? (target+=[AbstractAllocatable|QualifiedName] target+=[AbstractAllocatable|QualifiedName]*)?)+)
+ */
+ protected void sequence_ZoneSet(ISerializationContext context, ZoneSet semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * PackagableElement returns Zone
+ * RuleObject returns Zone
+ * AbstractAllocatable returns Zone
+ * Allocatable returns Zone
+ * Zone returns Zone
+ *
+ * Constraint:
+ * (name=QualifiedName (description=EString | arbitrationPolicy=ArbitrationPolicy | visibility=VExpression | attenuate=IntegerValue | tags+=Tag)*)
+ */
+ protected void sequence_Zone(ISerializationContext context, Zone semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+}
diff --git a/rba.tool.editor/src-gen/rba/tool/editor/serializer/RBAModelSyntacticSequencer.java b/rba.tool.editor/src-gen/rba/tool/editor/serializer/RBAModelSyntacticSequencer.java
new file mode 100644
index 0000000..9feb3d3
--- /dev/null
+++ b/rba.tool.editor/src-gen/rba/tool/editor/serializer/RBAModelSyntacticSequencer.java
@@ -0,0 +1,1786 @@
+/*
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.serializer;
+
+import com.google.inject.Inject;
+import java.util.List;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.IGrammarAccess;
+import org.eclipse.xtext.RuleCall;
+import org.eclipse.xtext.nodemodel.INode;
+import org.eclipse.xtext.serializer.analysis.GrammarAlias.AbstractElementAlias;
+import org.eclipse.xtext.serializer.analysis.GrammarAlias.AlternativeAlias;
+import org.eclipse.xtext.serializer.analysis.GrammarAlias.GroupAlias;
+import org.eclipse.xtext.serializer.analysis.GrammarAlias.TokenAlias;
+import org.eclipse.xtext.serializer.analysis.ISyntacticSequencerPDAProvider.ISynNavigable;
+import org.eclipse.xtext.serializer.analysis.ISyntacticSequencerPDAProvider.ISynTransition;
+import org.eclipse.xtext.serializer.sequencer.AbstractSyntacticSequencer;
+import rba.tool.editor.services.RBAModelGrammarAccess;
+
+@SuppressWarnings("all")
+public class RBAModelSyntacticSequencer extends AbstractSyntacticSequencer {
+
+ protected RBAModelGrammarAccess grammarAccess;
+ protected AbstractElementAlias match_AreaSet___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a;
+ protected AbstractElementAlias match_AreaSet___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__p;
+ protected AbstractElementAlias match_AreaSet___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a;
+ protected AbstractElementAlias match_Area_PriorityKeyword_4_3_0_1_or_VisibilityKeyword_4_3_0_0;
+ protected AbstractElementAlias match_COperationFeatureCall___LeftParenthesisKeyword_1_1_1_1_0_0_RightParenthesisKeyword_1_1_1_1_0_2__q;
+ protected AbstractElementAlias match_CPrimaryExpression_LeftParenthesisKeyword_11_0_a;
+ protected AbstractElementAlias match_CPrimaryExpression_LeftParenthesisKeyword_11_0_p;
+ protected AbstractElementAlias match_HorizontalLayout___RightSquareBracketKeyword_3_1_3_SubareaKeyword_3_1_0_LeftSquareBracketKeyword_3_1_1__a;
+ protected AbstractElementAlias match_HorizontalLayout___RightSquareBracketKeyword_3_1_3_SubareaKeyword_3_1_0_LeftSquareBracketKeyword_3_1_1__p;
+ protected AbstractElementAlias match_HorizontalLayout___SubareaKeyword_3_1_0_LeftSquareBracketKeyword_3_1_1_RightSquareBracketKeyword_3_1_3__a;
+ protected AbstractElementAlias match_LambdaExpression_VerticalLineKeyword_1_1_q;
+ protected AbstractElementAlias match_SoundContentSet___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a__a;
+ protected AbstractElementAlias match_SoundContentSet___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a;
+ protected AbstractElementAlias match_SoundContentSet___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a___or_____AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a_RightSquareBracketKeyword_4_2_3__q___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__p_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a___RightSquareBracketKeyword_4_2_3___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__p_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a__a__;
+ protected AbstractElementAlias match_SoundContentSet___RightSquareBracketKeyword_4_1_3___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a;
+ protected AbstractElementAlias match_SoundContentSet___RightSquareBracketKeyword_4_1_3___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__p;
+ protected AbstractElementAlias match_SoundContentSet___RightSquareBracketKeyword_4_2_3___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a;
+ protected AbstractElementAlias match_SoundContentSet___RightSquareBracketKeyword_4_2_3___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__p;
+ protected AbstractElementAlias match_SoundContentSet___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a__a;
+ protected AbstractElementAlias match_SoundContentSet___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a;
+ protected AbstractElementAlias match_SoundContentSet___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a___or_____TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a_RightSquareBracketKeyword_4_1_3__q___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__p_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a___RightSquareBracketKeyword_4_1_3___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__p_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a__a__;
+ protected AbstractElementAlias match_SoundContentSet_____AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3___or___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3____a;
+ protected AbstractElementAlias match_SoundContentState_PriorityKeyword_4_1_0_0_or_ValueKeyword_4_1_0_1;
+ protected AbstractElementAlias match_SoundContent___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a;
+ protected AbstractElementAlias match_SoundContent___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a;
+ protected AbstractElementAlias match_SoundContent___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__p;
+ protected AbstractElementAlias match_Tag___LeftCurlyBracketKeyword_1_0_RightCurlyBracketKeyword_1_2__q;
+ protected AbstractElementAlias match_TopLevel___ModuleKeyword_1_0_QualifiedNameParserRuleCall_1_1__q;
+ protected AbstractElementAlias match_VPrimaryExpression_LeftParenthesisKeyword_2_0_a;
+ protected AbstractElementAlias match_VPrimaryExpression_LeftParenthesisKeyword_2_0_p;
+ protected AbstractElementAlias match_VerticalLayout___RightSquareBracketKeyword_3_1_3_SubareaKeyword_3_1_0_LeftSquareBracketKeyword_3_1_1__a;
+ protected AbstractElementAlias match_VerticalLayout___RightSquareBracketKeyword_3_1_3_SubareaKeyword_3_1_0_LeftSquareBracketKeyword_3_1_1__p;
+ protected AbstractElementAlias match_VerticalLayout___SubareaKeyword_3_1_0_LeftSquareBracketKeyword_3_1_1_RightSquareBracketKeyword_3_1_3__a;
+ protected AbstractElementAlias match_ViewContentSet___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a__a;
+ protected AbstractElementAlias match_ViewContentSet___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a;
+ protected AbstractElementAlias match_ViewContentSet___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a___or_____AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a_RightSquareBracketKeyword_4_2_3__q___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__p_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a___RightSquareBracketKeyword_4_2_3___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__p_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a__a__;
+ protected AbstractElementAlias match_ViewContentSet___RightSquareBracketKeyword_4_1_3___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a;
+ protected AbstractElementAlias match_ViewContentSet___RightSquareBracketKeyword_4_1_3___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__p;
+ protected AbstractElementAlias match_ViewContentSet___RightSquareBracketKeyword_4_2_3___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a;
+ protected AbstractElementAlias match_ViewContentSet___RightSquareBracketKeyword_4_2_3___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__p;
+ protected AbstractElementAlias match_ViewContentSet___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a__a;
+ protected AbstractElementAlias match_ViewContentSet___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a;
+ protected AbstractElementAlias match_ViewContentSet___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a___or_____TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a_RightSquareBracketKeyword_4_1_3__q___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__p_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a___RightSquareBracketKeyword_4_1_3___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__p_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a__a__;
+ protected AbstractElementAlias match_ViewContentSet_____AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3___or___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3____a;
+ protected AbstractElementAlias match_ViewContentState_PriorityKeyword_4_1_0_0_or_ValueKeyword_4_1_0_1;
+ protected AbstractElementAlias match_ViewContent___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a;
+ protected AbstractElementAlias match_ViewContent___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a;
+ protected AbstractElementAlias match_ViewContent___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__p;
+ protected AbstractElementAlias match_ZoneSet___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a;
+ protected AbstractElementAlias match_ZoneSet___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__p;
+ protected AbstractElementAlias match_ZoneSet___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a;
+ protected AbstractElementAlias match_Zone_PriorityKeyword_4_2_0_1_or_VisibilityKeyword_4_2_0_0;
+
+ @Inject
+ protected void init(IGrammarAccess access) {
+ grammarAccess = (RBAModelGrammarAccess) access;
+ match_AreaSet___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getAreaSetAccess().getRightSquareBracketKeyword_4_1_3()), new TokenAlias(false, false, grammarAccess.getAreaSetAccess().getTargetKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getAreaSetAccess().getLeftSquareBracketKeyword_4_1_1()));
+ match_AreaSet___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__p = new GroupAlias(true, false, new TokenAlias(false, false, grammarAccess.getAreaSetAccess().getRightSquareBracketKeyword_4_1_3()), new TokenAlias(false, false, grammarAccess.getAreaSetAccess().getTargetKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getAreaSetAccess().getLeftSquareBracketKeyword_4_1_1()));
+ match_AreaSet___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getAreaSetAccess().getTargetKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getAreaSetAccess().getLeftSquareBracketKeyword_4_1_1()), new TokenAlias(false, false, grammarAccess.getAreaSetAccess().getRightSquareBracketKeyword_4_1_3()));
+ match_Area_PriorityKeyword_4_3_0_1_or_VisibilityKeyword_4_3_0_0 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getAreaAccess().getPriorityKeyword_4_3_0_1()), new TokenAlias(false, false, grammarAccess.getAreaAccess().getVisibilityKeyword_4_3_0_0()));
+ match_COperationFeatureCall___LeftParenthesisKeyword_1_1_1_1_0_0_RightParenthesisKeyword_1_1_1_1_0_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getCOperationFeatureCallAccess().getLeftParenthesisKeyword_1_1_1_1_0_0()), new TokenAlias(false, false, grammarAccess.getCOperationFeatureCallAccess().getRightParenthesisKeyword_1_1_1_1_0_2()));
+ match_CPrimaryExpression_LeftParenthesisKeyword_11_0_a = new TokenAlias(true, true, grammarAccess.getCPrimaryExpressionAccess().getLeftParenthesisKeyword_11_0());
+ match_CPrimaryExpression_LeftParenthesisKeyword_11_0_p = new TokenAlias(true, false, grammarAccess.getCPrimaryExpressionAccess().getLeftParenthesisKeyword_11_0());
+ match_HorizontalLayout___RightSquareBracketKeyword_3_1_3_SubareaKeyword_3_1_0_LeftSquareBracketKeyword_3_1_1__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getHorizontalLayoutAccess().getRightSquareBracketKeyword_3_1_3()), new TokenAlias(false, false, grammarAccess.getHorizontalLayoutAccess().getSubareaKeyword_3_1_0()), new TokenAlias(false, false, grammarAccess.getHorizontalLayoutAccess().getLeftSquareBracketKeyword_3_1_1()));
+ match_HorizontalLayout___RightSquareBracketKeyword_3_1_3_SubareaKeyword_3_1_0_LeftSquareBracketKeyword_3_1_1__p = new GroupAlias(true, false, new TokenAlias(false, false, grammarAccess.getHorizontalLayoutAccess().getRightSquareBracketKeyword_3_1_3()), new TokenAlias(false, false, grammarAccess.getHorizontalLayoutAccess().getSubareaKeyword_3_1_0()), new TokenAlias(false, false, grammarAccess.getHorizontalLayoutAccess().getLeftSquareBracketKeyword_3_1_1()));
+ match_HorizontalLayout___SubareaKeyword_3_1_0_LeftSquareBracketKeyword_3_1_1_RightSquareBracketKeyword_3_1_3__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getHorizontalLayoutAccess().getSubareaKeyword_3_1_0()), new TokenAlias(false, false, grammarAccess.getHorizontalLayoutAccess().getLeftSquareBracketKeyword_3_1_1()), new TokenAlias(false, false, grammarAccess.getHorizontalLayoutAccess().getRightSquareBracketKeyword_3_1_3()));
+ match_LambdaExpression_VerticalLineKeyword_1_1_q = new TokenAlias(false, true, grammarAccess.getLambdaExpressionAccess().getVerticalLineKeyword_1_1());
+ match_SoundContentSet___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getAllocatableKeyword_4_2_0()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getLeftSquareBracketKeyword_4_2_1()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getRightSquareBracketKeyword_4_2_3()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getTargetKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getLeftSquareBracketKeyword_4_1_1()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getRightSquareBracketKeyword_4_1_3())));
+ match_SoundContentSet___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getAllocatableKeyword_4_2_0()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getLeftSquareBracketKeyword_4_2_1()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getRightSquareBracketKeyword_4_2_3()));
+ match_SoundContentSet___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a___or_____AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a_RightSquareBracketKeyword_4_2_3__q___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__p_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a___RightSquareBracketKeyword_4_2_3___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__p_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a__a__ = new AlternativeAlias(false, false, new GroupAlias(false, false, new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getAllocatableKeyword_4_2_0()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getLeftSquareBracketKeyword_4_2_1()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getRightSquareBracketKeyword_4_2_3()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getAllocatableKeyword_4_2_0()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getLeftSquareBracketKeyword_4_2_1())), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getRightSquareBracketKeyword_4_2_3())), new GroupAlias(true, false, new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getTargetKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getLeftSquareBracketKeyword_4_1_1()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getRightSquareBracketKeyword_4_1_3())), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getAllocatableKeyword_4_2_0()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getLeftSquareBracketKeyword_4_2_1()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getRightSquareBracketKeyword_4_2_3()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getAllocatableKeyword_4_2_0()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getLeftSquareBracketKeyword_4_2_1())), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getRightSquareBracketKeyword_4_2_3()), new GroupAlias(true, false, new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getTargetKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getLeftSquareBracketKeyword_4_1_1()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getRightSquareBracketKeyword_4_1_3())), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getAllocatableKeyword_4_2_0()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getLeftSquareBracketKeyword_4_2_1()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getRightSquareBracketKeyword_4_2_3()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getAllocatableKeyword_4_2_0()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getLeftSquareBracketKeyword_4_2_1())))), new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getAllocatableKeyword_4_2_0()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getLeftSquareBracketKeyword_4_2_1()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getRightSquareBracketKeyword_4_2_3()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getAllocatableKeyword_4_2_0()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getLeftSquareBracketKeyword_4_2_1()))));
+ match_SoundContentSet___RightSquareBracketKeyword_4_1_3___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getRightSquareBracketKeyword_4_1_3()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getAllocatableKeyword_4_2_0()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getLeftSquareBracketKeyword_4_2_1()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getRightSquareBracketKeyword_4_2_3())), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getTargetKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getLeftSquareBracketKeyword_4_1_1()));
+ match_SoundContentSet___RightSquareBracketKeyword_4_1_3___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__p = new GroupAlias(true, false, new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getRightSquareBracketKeyword_4_1_3()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getAllocatableKeyword_4_2_0()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getLeftSquareBracketKeyword_4_2_1()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getRightSquareBracketKeyword_4_2_3())), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getTargetKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getLeftSquareBracketKeyword_4_1_1()));
+ match_SoundContentSet___RightSquareBracketKeyword_4_2_3___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getRightSquareBracketKeyword_4_2_3()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getTargetKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getLeftSquareBracketKeyword_4_1_1()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getRightSquareBracketKeyword_4_1_3())), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getAllocatableKeyword_4_2_0()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getLeftSquareBracketKeyword_4_2_1()));
+ match_SoundContentSet___RightSquareBracketKeyword_4_2_3___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__p = new GroupAlias(true, false, new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getRightSquareBracketKeyword_4_2_3()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getTargetKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getLeftSquareBracketKeyword_4_1_1()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getRightSquareBracketKeyword_4_1_3())), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getAllocatableKeyword_4_2_0()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getLeftSquareBracketKeyword_4_2_1()));
+ match_SoundContentSet___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getTargetKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getLeftSquareBracketKeyword_4_1_1()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getRightSquareBracketKeyword_4_1_3()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getAllocatableKeyword_4_2_0()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getLeftSquareBracketKeyword_4_2_1()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getRightSquareBracketKeyword_4_2_3())));
+ match_SoundContentSet___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getTargetKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getLeftSquareBracketKeyword_4_1_1()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getRightSquareBracketKeyword_4_1_3()));
+ match_SoundContentSet___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a___or_____TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a_RightSquareBracketKeyword_4_1_3__q___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__p_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a___RightSquareBracketKeyword_4_1_3___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__p_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a__a__ = new AlternativeAlias(false, false, new GroupAlias(false, false, new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getTargetKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getLeftSquareBracketKeyword_4_1_1()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getRightSquareBracketKeyword_4_1_3()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getTargetKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getLeftSquareBracketKeyword_4_1_1())), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getRightSquareBracketKeyword_4_1_3())), new GroupAlias(true, false, new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getAllocatableKeyword_4_2_0()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getLeftSquareBracketKeyword_4_2_1()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getRightSquareBracketKeyword_4_2_3())), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getTargetKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getLeftSquareBracketKeyword_4_1_1()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getRightSquareBracketKeyword_4_1_3()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getTargetKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getLeftSquareBracketKeyword_4_1_1())), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getRightSquareBracketKeyword_4_1_3()), new GroupAlias(true, false, new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getAllocatableKeyword_4_2_0()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getLeftSquareBracketKeyword_4_2_1()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getRightSquareBracketKeyword_4_2_3())), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getTargetKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getLeftSquareBracketKeyword_4_1_1()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getRightSquareBracketKeyword_4_1_3()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getTargetKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getLeftSquareBracketKeyword_4_1_1())))), new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getTargetKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getLeftSquareBracketKeyword_4_1_1()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getRightSquareBracketKeyword_4_1_3()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getTargetKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getLeftSquareBracketKeyword_4_1_1()))));
+ match_SoundContentSet_____AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3___or___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3____a = new AlternativeAlias(true, true, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getAllocatableKeyword_4_2_0()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getLeftSquareBracketKeyword_4_2_1()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getRightSquareBracketKeyword_4_2_3())), new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getTargetKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getLeftSquareBracketKeyword_4_1_1()), new TokenAlias(false, false, grammarAccess.getSoundContentSetAccess().getRightSquareBracketKeyword_4_1_3())));
+ match_SoundContentState_PriorityKeyword_4_1_0_0_or_ValueKeyword_4_1_0_1 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getSoundContentStateAccess().getPriorityKeyword_4_1_0_0()), new TokenAlias(false, false, grammarAccess.getSoundContentStateAccess().getValueKeyword_4_1_0_1()));
+ match_SoundContent___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getSoundContentAccess().getAllocatableKeyword_4_2_0()), new TokenAlias(false, false, grammarAccess.getSoundContentAccess().getLeftSquareBracketKeyword_4_2_1()), new TokenAlias(false, false, grammarAccess.getSoundContentAccess().getRightSquareBracketKeyword_4_2_3()));
+ match_SoundContent___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getSoundContentAccess().getRightSquareBracketKeyword_4_2_3()), new TokenAlias(false, false, grammarAccess.getSoundContentAccess().getAllocatableKeyword_4_2_0()), new TokenAlias(false, false, grammarAccess.getSoundContentAccess().getLeftSquareBracketKeyword_4_2_1()));
+ match_SoundContent___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__p = new GroupAlias(true, false, new TokenAlias(false, false, grammarAccess.getSoundContentAccess().getRightSquareBracketKeyword_4_2_3()), new TokenAlias(false, false, grammarAccess.getSoundContentAccess().getAllocatableKeyword_4_2_0()), new TokenAlias(false, false, grammarAccess.getSoundContentAccess().getLeftSquareBracketKeyword_4_2_1()));
+ match_Tag___LeftCurlyBracketKeyword_1_0_RightCurlyBracketKeyword_1_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getTagAccess().getLeftCurlyBracketKeyword_1_0()), new TokenAlias(false, false, grammarAccess.getTagAccess().getRightCurlyBracketKeyword_1_2()));
+ match_TopLevel___ModuleKeyword_1_0_QualifiedNameParserRuleCall_1_1__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getTopLevelAccess().getModuleKeyword_1_0()), new TokenAlias(false, false, grammarAccess.getTopLevelAccess().getQualifiedNameParserRuleCall_1_1()));
+ match_VPrimaryExpression_LeftParenthesisKeyword_2_0_a = new TokenAlias(true, true, grammarAccess.getVPrimaryExpressionAccess().getLeftParenthesisKeyword_2_0());
+ match_VPrimaryExpression_LeftParenthesisKeyword_2_0_p = new TokenAlias(true, false, grammarAccess.getVPrimaryExpressionAccess().getLeftParenthesisKeyword_2_0());
+ match_VerticalLayout___RightSquareBracketKeyword_3_1_3_SubareaKeyword_3_1_0_LeftSquareBracketKeyword_3_1_1__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getVerticalLayoutAccess().getRightSquareBracketKeyword_3_1_3()), new TokenAlias(false, false, grammarAccess.getVerticalLayoutAccess().getSubareaKeyword_3_1_0()), new TokenAlias(false, false, grammarAccess.getVerticalLayoutAccess().getLeftSquareBracketKeyword_3_1_1()));
+ match_VerticalLayout___RightSquareBracketKeyword_3_1_3_SubareaKeyword_3_1_0_LeftSquareBracketKeyword_3_1_1__p = new GroupAlias(true, false, new TokenAlias(false, false, grammarAccess.getVerticalLayoutAccess().getRightSquareBracketKeyword_3_1_3()), new TokenAlias(false, false, grammarAccess.getVerticalLayoutAccess().getSubareaKeyword_3_1_0()), new TokenAlias(false, false, grammarAccess.getVerticalLayoutAccess().getLeftSquareBracketKeyword_3_1_1()));
+ match_VerticalLayout___SubareaKeyword_3_1_0_LeftSquareBracketKeyword_3_1_1_RightSquareBracketKeyword_3_1_3__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getVerticalLayoutAccess().getSubareaKeyword_3_1_0()), new TokenAlias(false, false, grammarAccess.getVerticalLayoutAccess().getLeftSquareBracketKeyword_3_1_1()), new TokenAlias(false, false, grammarAccess.getVerticalLayoutAccess().getRightSquareBracketKeyword_3_1_3()));
+ match_ViewContentSet___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getAllocatableKeyword_4_2_0()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getLeftSquareBracketKeyword_4_2_1()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getRightSquareBracketKeyword_4_2_3()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getTargetKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getLeftSquareBracketKeyword_4_1_1()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getRightSquareBracketKeyword_4_1_3())));
+ match_ViewContentSet___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getAllocatableKeyword_4_2_0()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getLeftSquareBracketKeyword_4_2_1()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getRightSquareBracketKeyword_4_2_3()));
+ match_ViewContentSet___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a___or_____AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a_RightSquareBracketKeyword_4_2_3__q___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__p_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a___RightSquareBracketKeyword_4_2_3___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__p_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a__a__ = new AlternativeAlias(false, false, new GroupAlias(false, false, new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getAllocatableKeyword_4_2_0()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getLeftSquareBracketKeyword_4_2_1()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getRightSquareBracketKeyword_4_2_3()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getAllocatableKeyword_4_2_0()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getLeftSquareBracketKeyword_4_2_1())), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getRightSquareBracketKeyword_4_2_3())), new GroupAlias(true, false, new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getTargetKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getLeftSquareBracketKeyword_4_1_1()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getRightSquareBracketKeyword_4_1_3())), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getAllocatableKeyword_4_2_0()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getLeftSquareBracketKeyword_4_2_1()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getRightSquareBracketKeyword_4_2_3()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getAllocatableKeyword_4_2_0()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getLeftSquareBracketKeyword_4_2_1())), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getRightSquareBracketKeyword_4_2_3()), new GroupAlias(true, false, new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getTargetKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getLeftSquareBracketKeyword_4_1_1()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getRightSquareBracketKeyword_4_1_3())), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getAllocatableKeyword_4_2_0()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getLeftSquareBracketKeyword_4_2_1()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getRightSquareBracketKeyword_4_2_3()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getAllocatableKeyword_4_2_0()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getLeftSquareBracketKeyword_4_2_1())))), new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getAllocatableKeyword_4_2_0()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getLeftSquareBracketKeyword_4_2_1()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getRightSquareBracketKeyword_4_2_3()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getAllocatableKeyword_4_2_0()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getLeftSquareBracketKeyword_4_2_1()))));
+ match_ViewContentSet___RightSquareBracketKeyword_4_1_3___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getRightSquareBracketKeyword_4_1_3()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getAllocatableKeyword_4_2_0()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getLeftSquareBracketKeyword_4_2_1()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getRightSquareBracketKeyword_4_2_3())), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getTargetKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getLeftSquareBracketKeyword_4_1_1()));
+ match_ViewContentSet___RightSquareBracketKeyword_4_1_3___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__p = new GroupAlias(true, false, new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getRightSquareBracketKeyword_4_1_3()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getAllocatableKeyword_4_2_0()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getLeftSquareBracketKeyword_4_2_1()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getRightSquareBracketKeyword_4_2_3())), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getTargetKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getLeftSquareBracketKeyword_4_1_1()));
+ match_ViewContentSet___RightSquareBracketKeyword_4_2_3___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getRightSquareBracketKeyword_4_2_3()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getTargetKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getLeftSquareBracketKeyword_4_1_1()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getRightSquareBracketKeyword_4_1_3())), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getAllocatableKeyword_4_2_0()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getLeftSquareBracketKeyword_4_2_1()));
+ match_ViewContentSet___RightSquareBracketKeyword_4_2_3___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__p = new GroupAlias(true, false, new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getRightSquareBracketKeyword_4_2_3()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getTargetKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getLeftSquareBracketKeyword_4_1_1()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getRightSquareBracketKeyword_4_1_3())), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getAllocatableKeyword_4_2_0()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getLeftSquareBracketKeyword_4_2_1()));
+ match_ViewContentSet___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getTargetKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getLeftSquareBracketKeyword_4_1_1()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getRightSquareBracketKeyword_4_1_3()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getAllocatableKeyword_4_2_0()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getLeftSquareBracketKeyword_4_2_1()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getRightSquareBracketKeyword_4_2_3())));
+ match_ViewContentSet___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getTargetKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getLeftSquareBracketKeyword_4_1_1()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getRightSquareBracketKeyword_4_1_3()));
+ match_ViewContentSet___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a___or_____TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a_RightSquareBracketKeyword_4_1_3__q___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__p_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a___RightSquareBracketKeyword_4_1_3___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__p_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a__a__ = new AlternativeAlias(false, false, new GroupAlias(false, false, new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getTargetKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getLeftSquareBracketKeyword_4_1_1()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getRightSquareBracketKeyword_4_1_3()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getTargetKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getLeftSquareBracketKeyword_4_1_1())), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getRightSquareBracketKeyword_4_1_3())), new GroupAlias(true, false, new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getAllocatableKeyword_4_2_0()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getLeftSquareBracketKeyword_4_2_1()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getRightSquareBracketKeyword_4_2_3())), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getTargetKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getLeftSquareBracketKeyword_4_1_1()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getRightSquareBracketKeyword_4_1_3()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getTargetKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getLeftSquareBracketKeyword_4_1_1())), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getRightSquareBracketKeyword_4_1_3()), new GroupAlias(true, false, new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getAllocatableKeyword_4_2_0()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getLeftSquareBracketKeyword_4_2_1()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getRightSquareBracketKeyword_4_2_3())), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getTargetKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getLeftSquareBracketKeyword_4_1_1()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getRightSquareBracketKeyword_4_1_3()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getTargetKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getLeftSquareBracketKeyword_4_1_1())))), new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getTargetKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getLeftSquareBracketKeyword_4_1_1()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getRightSquareBracketKeyword_4_1_3()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getTargetKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getLeftSquareBracketKeyword_4_1_1()))));
+ match_ViewContentSet_____AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3___or___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3____a = new AlternativeAlias(true, true, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getAllocatableKeyword_4_2_0()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getLeftSquareBracketKeyword_4_2_1()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getRightSquareBracketKeyword_4_2_3())), new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getTargetKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getLeftSquareBracketKeyword_4_1_1()), new TokenAlias(false, false, grammarAccess.getViewContentSetAccess().getRightSquareBracketKeyword_4_1_3())));
+ match_ViewContentState_PriorityKeyword_4_1_0_0_or_ValueKeyword_4_1_0_1 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getViewContentStateAccess().getPriorityKeyword_4_1_0_0()), new TokenAlias(false, false, grammarAccess.getViewContentStateAccess().getValueKeyword_4_1_0_1()));
+ match_ViewContent___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getViewContentAccess().getAllocatableKeyword_4_2_0()), new TokenAlias(false, false, grammarAccess.getViewContentAccess().getLeftSquareBracketKeyword_4_2_1()), new TokenAlias(false, false, grammarAccess.getViewContentAccess().getRightSquareBracketKeyword_4_2_3()));
+ match_ViewContent___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getViewContentAccess().getRightSquareBracketKeyword_4_2_3()), new TokenAlias(false, false, grammarAccess.getViewContentAccess().getAllocatableKeyword_4_2_0()), new TokenAlias(false, false, grammarAccess.getViewContentAccess().getLeftSquareBracketKeyword_4_2_1()));
+ match_ViewContent___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__p = new GroupAlias(true, false, new TokenAlias(false, false, grammarAccess.getViewContentAccess().getRightSquareBracketKeyword_4_2_3()), new TokenAlias(false, false, grammarAccess.getViewContentAccess().getAllocatableKeyword_4_2_0()), new TokenAlias(false, false, grammarAccess.getViewContentAccess().getLeftSquareBracketKeyword_4_2_1()));
+ match_ZoneSet___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getZoneSetAccess().getRightSquareBracketKeyword_4_1_3()), new TokenAlias(false, false, grammarAccess.getZoneSetAccess().getTargetKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getZoneSetAccess().getLeftSquareBracketKeyword_4_1_1()));
+ match_ZoneSet___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__p = new GroupAlias(true, false, new TokenAlias(false, false, grammarAccess.getZoneSetAccess().getRightSquareBracketKeyword_4_1_3()), new TokenAlias(false, false, grammarAccess.getZoneSetAccess().getTargetKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getZoneSetAccess().getLeftSquareBracketKeyword_4_1_1()));
+ match_ZoneSet___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getZoneSetAccess().getTargetKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getZoneSetAccess().getLeftSquareBracketKeyword_4_1_1()), new TokenAlias(false, false, grammarAccess.getZoneSetAccess().getRightSquareBracketKeyword_4_1_3()));
+ match_Zone_PriorityKeyword_4_2_0_1_or_VisibilityKeyword_4_2_0_0 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getZoneAccess().getPriorityKeyword_4_2_0_1()), new TokenAlias(false, false, grammarAccess.getZoneAccess().getVisibilityKeyword_4_2_0_0()));
+ }
+
+ @Override
+ protected String getUnassignedRuleCallToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (ruleCall.getRule() == grammarAccess.getOpActiveContentsRule())
+ return getOpActiveContentsToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpActiveStateRule())
+ return getOpActiveStateToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpAllocatedContentRule())
+ return getOpAllocatedContentToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpAndRule())
+ return getOpAndToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpContentValueRule())
+ return getOpContentValueToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpDisplayingContentRule())
+ return getOpDisplayingContentToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpEqualToRule())
+ return getOpEqualToToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpEqualityRule())
+ return getOpEqualityToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpGetAllocatablesRule())
+ return getOpGetAllocatablesToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpGetContentsListRule())
+ return getOpGetContentsListToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpGetPropertyRule())
+ return getOpGetPropertyToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpGreaterThanRule())
+ return getOpGreaterThanToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpHasBeenDisplayedRule())
+ return getOpHasBeenDisplayedToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpHasComeEarlierThanRule())
+ return getOpHasComeEarlierThanToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpHasComeLaterThanRule())
+ return getOpHasComeLaterThanToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpImpliesRule())
+ return getOpImpliesToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpIsActiveRule())
+ return getOpIsActiveToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpIsAllocatedToRule())
+ return getOpIsAllocatedToToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpIsAttenuatedRule())
+ return getOpIsAttenuatedToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpIsChangedRule())
+ return getOpIsChangedToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpIsChangedDisplayRule())
+ return getOpIsChangedDisplayToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpIsChangedOutputRule())
+ return getOpIsChangedOutputToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpIsDisplayedRule())
+ return getOpIsDisplayedToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpIsDisplayedOnRule())
+ return getOpIsDisplayedOnToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpIsGreaterThanRule())
+ return getOpIsGreaterThanToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpIsGreaterThanEqualRule())
+ return getOpIsGreaterThanEqualToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpIsHiddenRule())
+ return getOpIsHiddenToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpIsLowerThanRule())
+ return getOpIsLowerThanToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpIsLowerThanEqualRule())
+ return getOpIsLowerThanEqualToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpIsMutedRule())
+ return getOpIsMutedToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpIsOnRule())
+ return getOpIsOnToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpIsOutputtedRule())
+ return getOpIsOutputtedToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpIsOutputtedOnRule())
+ return getOpIsOutputtedOnToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpIsSoundingRule())
+ return getOpIsSoundingToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpIsTranslatedSoundToRule())
+ return getOpIsTranslatedSoundToToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpIsTranslatedToRule())
+ return getOpIsTranslatedToToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpIsTranslatedViewToRule())
+ return getOpIsTranslatedViewToToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpIsTypeOfRule())
+ return getOpIsTypeOfToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpIsVisibleRule())
+ return getOpIsVisibleToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpLowerThanRule())
+ return getOpLowerThanToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpMaxOperatorRule())
+ return getOpMaxOperatorToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpMinOperatorRule())
+ return getOpMinOperatorToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpMuchGreaterThanRule())
+ return getOpMuchGreaterThanToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpNotRule())
+ return getOpNotToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpObjectCompareRule())
+ return getOpObjectCompareToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpObjectNotCompareRule())
+ return getOpObjectNotCompareToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpOrRule())
+ return getOpOrToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpOutputtingSoundRule())
+ return getOpOutputtingSoundToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpPlusRule())
+ return getOpPlusToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpSelectOperatorRule())
+ return getOpSelectOperatorToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpSizeOperatorRule())
+ return getOpSizeOperatorToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getOpStateValueRule())
+ return getOpStateValueToken(semanticObject, ruleCall, node);
+ else if (ruleCall.getRule() == grammarAccess.getQualifiedNameRule())
+ return getQualifiedNameToken(semanticObject, ruleCall, node);
+ return "";
+ }
+
+ /**
+ * OpActiveContents:
+ * 'activeContents';
+ */
+ protected String getOpActiveContentsToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "activeContents";
+ }
+
+ /**
+ * OpActiveState:
+ * 'activeState';
+ */
+ protected String getOpActiveStateToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "activeState";
+ }
+
+ /**
+ * OpAllocatedContent:
+ * 'allocatedContent';
+ */
+ protected String getOpAllocatedContentToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "allocatedContent";
+ }
+
+ /**
+ * OpAnd:
+ * 'AND';
+ */
+ protected String getOpAndToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "AND";
+ }
+
+ /**
+ * OpContentValue:
+ * 'contentValue';
+ */
+ protected String getOpContentValueToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "contentValue";
+ }
+
+ /**
+ * OpDisplayingContent:
+ * 'displayingContent';
+ */
+ protected String getOpDisplayingContentToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "displayingContent";
+ }
+
+ /**
+ * OpEqualTo:
+ * '=';
+ */
+ protected String getOpEqualToToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "=";
+ }
+
+ /**
+ * OpEquality:
+ * '=';
+ */
+ protected String getOpEqualityToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "=";
+ }
+
+ /**
+ * OpGetAllocatables:
+ * 'allocatables';
+ */
+ protected String getOpGetAllocatablesToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "allocatables";
+ }
+
+ /**
+ * OpGetContentsList:
+ * 'contentsList';
+ */
+ protected String getOpGetContentsListToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "contentsList";
+ }
+
+ /**
+ * OpGetProperty:
+ * 'get';
+ */
+ protected String getOpGetPropertyToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "get";
+ }
+
+ /**
+ * OpGreaterThan:
+ * '>';
+ */
+ protected String getOpGreaterThanToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return ">";
+ }
+
+ /**
+ * OpHasBeenDisplayed:
+ * 'hasBeenDisplayed';
+ */
+ protected String getOpHasBeenDisplayedToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "hasBeenDisplayed";
+ }
+
+ /**
+ * OpHasComeEarlierThan:
+ * 'hasComeEarlierThan';
+ */
+ protected String getOpHasComeEarlierThanToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "hasComeEarlierThan";
+ }
+
+ /**
+ * OpHasComeLaterThan:
+ * 'hasComeLaterThan';
+ */
+ protected String getOpHasComeLaterThanToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "hasComeLaterThan";
+ }
+
+ /**
+ * OpImplies:
+ * '->';
+ */
+ protected String getOpImpliesToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "->";
+ }
+
+ /**
+ * OpIsActive:
+ * 'isActive';
+ */
+ protected String getOpIsActiveToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "isActive";
+ }
+
+ /**
+ * OpIsAllocatedTo:
+ * 'isAllocatedTo';
+ */
+ protected String getOpIsAllocatedToToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "isAllocatedTo";
+ }
+
+ /**
+ * OpIsAttenuated:
+ * 'isAttenuated';
+ */
+ protected String getOpIsAttenuatedToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "isAttenuated";
+ }
+
+ /**
+ * OpIsChanged:
+ * 'isChanged';
+ */
+ protected String getOpIsChangedToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "isChanged";
+ }
+
+ /**
+ * OpIsChangedDisplay:
+ * 'isChangedDisplay';
+ */
+ protected String getOpIsChangedDisplayToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "isChangedDisplay";
+ }
+
+ /**
+ * OpIsChangedOutput:
+ * 'isChangedOutput';
+ */
+ protected String getOpIsChangedOutputToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "isChangedOutput";
+ }
+
+ /**
+ * OpIsDisplayed:
+ * 'isDisplayed';
+ */
+ protected String getOpIsDisplayedToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "isDisplayed";
+ }
+
+ /**
+ * OpIsDisplayedOn:
+ * 'isDisplayedOn';
+ */
+ protected String getOpIsDisplayedOnToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "isDisplayedOn";
+ }
+
+ /**
+ * OpIsGreaterThan:
+ * '>';
+ */
+ protected String getOpIsGreaterThanToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return ">";
+ }
+
+ /**
+ * OpIsGreaterThanEqual:
+ * '>=';
+ */
+ protected String getOpIsGreaterThanEqualToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return ">=";
+ }
+
+ /**
+ * OpIsHidden:
+ * 'isHidden';
+ */
+ protected String getOpIsHiddenToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "isHidden";
+ }
+
+ /**
+ * OpIsLowerThan:
+ * '<';
+ */
+ protected String getOpIsLowerThanToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "<";
+ }
+
+ /**
+ * OpIsLowerThanEqual:
+ * '<=';
+ */
+ protected String getOpIsLowerThanEqualToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "<=";
+ }
+
+ /**
+ * OpIsMuted:
+ * 'isMuted';
+ */
+ protected String getOpIsMutedToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "isMuted";
+ }
+
+ /**
+ * OpIsOn:
+ * 'isOn';
+ */
+ protected String getOpIsOnToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "isOn";
+ }
+
+ /**
+ * OpIsOutputted:
+ * 'isOutputted';
+ */
+ protected String getOpIsOutputtedToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "isOutputted";
+ }
+
+ /**
+ * OpIsOutputtedOn:
+ * 'isOutputtedOn';
+ */
+ protected String getOpIsOutputtedOnToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "isOutputtedOn";
+ }
+
+ /**
+ * OpIsSounding:
+ * 'isSounding';
+ */
+ protected String getOpIsSoundingToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "isSounding";
+ }
+
+ /**
+ * OpIsTranslatedSoundTo:
+ * 'isTranslatedSoundTo';
+ */
+ protected String getOpIsTranslatedSoundToToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "isTranslatedSoundTo";
+ }
+
+ /**
+ * OpIsTranslatedTo:
+ * 'isTranslatedTo';
+ */
+ protected String getOpIsTranslatedToToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "isTranslatedTo";
+ }
+
+ /**
+ * OpIsTranslatedViewTo:
+ * 'isTranslatedViewTo';
+ */
+ protected String getOpIsTranslatedViewToToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "isTranslatedViewTo";
+ }
+
+ /**
+ * OpIsTypeOf:
+ * 'isTypeOf';
+ */
+ protected String getOpIsTypeOfToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "isTypeOf";
+ }
+
+ /**
+ * OpIsVisible:
+ * 'isVisible';
+ */
+ protected String getOpIsVisibleToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "isVisible";
+ }
+
+ /**
+ * OpLowerThan:
+ * '<';
+ */
+ protected String getOpLowerThanToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "<";
+ }
+
+ /**
+ * OpMaxOperator:
+ * 'max';
+ */
+ protected String getOpMaxOperatorToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "max";
+ }
+
+ /**
+ * OpMinOperator:
+ * 'min';
+ */
+ protected String getOpMinOperatorToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "min";
+ }
+
+ /**
+ * OpMuchGreaterThan:
+ * '>>';
+ */
+ protected String getOpMuchGreaterThanToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return ">>";
+ }
+
+ /**
+ * OpNot:
+ * "!";
+ */
+ protected String getOpNotToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "!";
+ }
+
+ /**
+ * OpObjectCompare:
+ * '==';
+ */
+ protected String getOpObjectCompareToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "==";
+ }
+
+ /**
+ * OpObjectNotCompare:
+ * '!=';
+ */
+ protected String getOpObjectNotCompareToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "!=";
+ }
+
+ /**
+ * OpOr:
+ * 'OR';
+ */
+ protected String getOpOrToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "OR";
+ }
+
+ /**
+ * OpOutputtingSound:
+ * 'outputtingSound';
+ */
+ protected String getOpOutputtingSoundToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "outputtingSound";
+ }
+
+ /**
+ * OpPlus:
+ * '+';
+ */
+ protected String getOpPlusToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "+";
+ }
+
+ /**
+ * OpSelectOperator:
+ * 'select';
+ */
+ protected String getOpSelectOperatorToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "select";
+ }
+
+ /**
+ * OpSizeOperator:
+ * 'size';
+ */
+ protected String getOpSizeOperatorToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "size";
+ }
+
+ /**
+ * OpStateValue:
+ * 'stateValue';
+ */
+ protected String getOpStateValueToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "stateValue";
+ }
+
+ /**
+ * QualifiedName:
+ * ID ('.' ID)*;
+ */
+ protected String getQualifiedNameToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "$";
+ }
+
+ @Override
+ protected void emitUnassignedTokens(EObject semanticObject, ISynTransition transition, INode fromNode, INode toNode) {
+ if (transition.getAmbiguousSyntaxes().isEmpty()) return;
+ List<INode> transitionNodes = collectNodes(fromNode, toNode);
+ for (AbstractElementAlias syntax : transition.getAmbiguousSyntaxes()) {
+ List<INode> syntaxNodes = getNodesFor(transitionNodes, syntax);
+ if (match_AreaSet___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a.equals(syntax))
+ emit_AreaSet___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_AreaSet___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__p.equals(syntax))
+ emit_AreaSet___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__p(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_AreaSet___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a.equals(syntax))
+ emit_AreaSet___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_Area_PriorityKeyword_4_3_0_1_or_VisibilityKeyword_4_3_0_0.equals(syntax))
+ emit_Area_PriorityKeyword_4_3_0_1_or_VisibilityKeyword_4_3_0_0(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_COperationFeatureCall___LeftParenthesisKeyword_1_1_1_1_0_0_RightParenthesisKeyword_1_1_1_1_0_2__q.equals(syntax))
+ emit_COperationFeatureCall___LeftParenthesisKeyword_1_1_1_1_0_0_RightParenthesisKeyword_1_1_1_1_0_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_CPrimaryExpression_LeftParenthesisKeyword_11_0_a.equals(syntax))
+ emit_CPrimaryExpression_LeftParenthesisKeyword_11_0_a(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_CPrimaryExpression_LeftParenthesisKeyword_11_0_p.equals(syntax))
+ emit_CPrimaryExpression_LeftParenthesisKeyword_11_0_p(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_HorizontalLayout___RightSquareBracketKeyword_3_1_3_SubareaKeyword_3_1_0_LeftSquareBracketKeyword_3_1_1__a.equals(syntax))
+ emit_HorizontalLayout___RightSquareBracketKeyword_3_1_3_SubareaKeyword_3_1_0_LeftSquareBracketKeyword_3_1_1__a(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_HorizontalLayout___RightSquareBracketKeyword_3_1_3_SubareaKeyword_3_1_0_LeftSquareBracketKeyword_3_1_1__p.equals(syntax))
+ emit_HorizontalLayout___RightSquareBracketKeyword_3_1_3_SubareaKeyword_3_1_0_LeftSquareBracketKeyword_3_1_1__p(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_HorizontalLayout___SubareaKeyword_3_1_0_LeftSquareBracketKeyword_3_1_1_RightSquareBracketKeyword_3_1_3__a.equals(syntax))
+ emit_HorizontalLayout___SubareaKeyword_3_1_0_LeftSquareBracketKeyword_3_1_1_RightSquareBracketKeyword_3_1_3__a(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_LambdaExpression_VerticalLineKeyword_1_1_q.equals(syntax))
+ emit_LambdaExpression_VerticalLineKeyword_1_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_SoundContentSet___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a__a.equals(syntax))
+ emit_SoundContentSet___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a__a(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_SoundContentSet___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a.equals(syntax))
+ emit_SoundContentSet___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_SoundContentSet___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a___or_____AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a_RightSquareBracketKeyword_4_2_3__q___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__p_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a___RightSquareBracketKeyword_4_2_3___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__p_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a__a__.equals(syntax))
+ emit_SoundContentSet___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a___or_____AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a_RightSquareBracketKeyword_4_2_3__q___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__p_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a___RightSquareBracketKeyword_4_2_3___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__p_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a__a__(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_SoundContentSet___RightSquareBracketKeyword_4_1_3___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a.equals(syntax))
+ emit_SoundContentSet___RightSquareBracketKeyword_4_1_3___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_SoundContentSet___RightSquareBracketKeyword_4_1_3___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__p.equals(syntax))
+ emit_SoundContentSet___RightSquareBracketKeyword_4_1_3___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__p(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_SoundContentSet___RightSquareBracketKeyword_4_2_3___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a.equals(syntax))
+ emit_SoundContentSet___RightSquareBracketKeyword_4_2_3___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_SoundContentSet___RightSquareBracketKeyword_4_2_3___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__p.equals(syntax))
+ emit_SoundContentSet___RightSquareBracketKeyword_4_2_3___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__p(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_SoundContentSet___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a__a.equals(syntax))
+ emit_SoundContentSet___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a__a(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_SoundContentSet___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a.equals(syntax))
+ emit_SoundContentSet___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_SoundContentSet___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a___or_____TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a_RightSquareBracketKeyword_4_1_3__q___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__p_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a___RightSquareBracketKeyword_4_1_3___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__p_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a__a__.equals(syntax))
+ emit_SoundContentSet___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a___or_____TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a_RightSquareBracketKeyword_4_1_3__q___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__p_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a___RightSquareBracketKeyword_4_1_3___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__p_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a__a__(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_SoundContentSet_____AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3___or___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3____a.equals(syntax))
+ emit_SoundContentSet_____AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3___or___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3____a(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_SoundContentState_PriorityKeyword_4_1_0_0_or_ValueKeyword_4_1_0_1.equals(syntax))
+ emit_SoundContentState_PriorityKeyword_4_1_0_0_or_ValueKeyword_4_1_0_1(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_SoundContent___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a.equals(syntax))
+ emit_SoundContent___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_SoundContent___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a.equals(syntax))
+ emit_SoundContent___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_SoundContent___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__p.equals(syntax))
+ emit_SoundContent___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__p(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_Tag___LeftCurlyBracketKeyword_1_0_RightCurlyBracketKeyword_1_2__q.equals(syntax))
+ emit_Tag___LeftCurlyBracketKeyword_1_0_RightCurlyBracketKeyword_1_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_TopLevel___ModuleKeyword_1_0_QualifiedNameParserRuleCall_1_1__q.equals(syntax))
+ emit_TopLevel___ModuleKeyword_1_0_QualifiedNameParserRuleCall_1_1__q(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_VPrimaryExpression_LeftParenthesisKeyword_2_0_a.equals(syntax))
+ emit_VPrimaryExpression_LeftParenthesisKeyword_2_0_a(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_VPrimaryExpression_LeftParenthesisKeyword_2_0_p.equals(syntax))
+ emit_VPrimaryExpression_LeftParenthesisKeyword_2_0_p(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_VerticalLayout___RightSquareBracketKeyword_3_1_3_SubareaKeyword_3_1_0_LeftSquareBracketKeyword_3_1_1__a.equals(syntax))
+ emit_VerticalLayout___RightSquareBracketKeyword_3_1_3_SubareaKeyword_3_1_0_LeftSquareBracketKeyword_3_1_1__a(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_VerticalLayout___RightSquareBracketKeyword_3_1_3_SubareaKeyword_3_1_0_LeftSquareBracketKeyword_3_1_1__p.equals(syntax))
+ emit_VerticalLayout___RightSquareBracketKeyword_3_1_3_SubareaKeyword_3_1_0_LeftSquareBracketKeyword_3_1_1__p(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_VerticalLayout___SubareaKeyword_3_1_0_LeftSquareBracketKeyword_3_1_1_RightSquareBracketKeyword_3_1_3__a.equals(syntax))
+ emit_VerticalLayout___SubareaKeyword_3_1_0_LeftSquareBracketKeyword_3_1_1_RightSquareBracketKeyword_3_1_3__a(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_ViewContentSet___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a__a.equals(syntax))
+ emit_ViewContentSet___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a__a(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_ViewContentSet___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a.equals(syntax))
+ emit_ViewContentSet___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_ViewContentSet___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a___or_____AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a_RightSquareBracketKeyword_4_2_3__q___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__p_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a___RightSquareBracketKeyword_4_2_3___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__p_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a__a__.equals(syntax))
+ emit_ViewContentSet___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a___or_____AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a_RightSquareBracketKeyword_4_2_3__q___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__p_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a___RightSquareBracketKeyword_4_2_3___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__p_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a__a__(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_ViewContentSet___RightSquareBracketKeyword_4_1_3___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a.equals(syntax))
+ emit_ViewContentSet___RightSquareBracketKeyword_4_1_3___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_ViewContentSet___RightSquareBracketKeyword_4_1_3___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__p.equals(syntax))
+ emit_ViewContentSet___RightSquareBracketKeyword_4_1_3___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__p(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_ViewContentSet___RightSquareBracketKeyword_4_2_3___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a.equals(syntax))
+ emit_ViewContentSet___RightSquareBracketKeyword_4_2_3___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_ViewContentSet___RightSquareBracketKeyword_4_2_3___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__p.equals(syntax))
+ emit_ViewContentSet___RightSquareBracketKeyword_4_2_3___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__p(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_ViewContentSet___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a__a.equals(syntax))
+ emit_ViewContentSet___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a__a(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_ViewContentSet___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a.equals(syntax))
+ emit_ViewContentSet___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_ViewContentSet___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a___or_____TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a_RightSquareBracketKeyword_4_1_3__q___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__p_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a___RightSquareBracketKeyword_4_1_3___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__p_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a__a__.equals(syntax))
+ emit_ViewContentSet___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a___or_____TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a_RightSquareBracketKeyword_4_1_3__q___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__p_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a___RightSquareBracketKeyword_4_1_3___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__p_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a__a__(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_ViewContentSet_____AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3___or___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3____a.equals(syntax))
+ emit_ViewContentSet_____AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3___or___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3____a(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_ViewContentState_PriorityKeyword_4_1_0_0_or_ValueKeyword_4_1_0_1.equals(syntax))
+ emit_ViewContentState_PriorityKeyword_4_1_0_0_or_ValueKeyword_4_1_0_1(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_ViewContent___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a.equals(syntax))
+ emit_ViewContent___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_ViewContent___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a.equals(syntax))
+ emit_ViewContent___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_ViewContent___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__p.equals(syntax))
+ emit_ViewContent___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__p(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_ZoneSet___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a.equals(syntax))
+ emit_ZoneSet___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_ZoneSet___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__p.equals(syntax))
+ emit_ZoneSet___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__p(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_ZoneSet___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a.equals(syntax))
+ emit_ZoneSet___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_Zone_PriorityKeyword_4_2_0_1_or_VisibilityKeyword_4_2_0_0.equals(syntax))
+ emit_Zone_PriorityKeyword_4_2_0_1_or_VisibilityKeyword_4_2_0_0(semanticObject, getLastNavigableState(), syntaxNodes);
+ else acceptNodes(getLastNavigableState(), syntaxNodes);
+ }
+ }
+
+ /**
+ * Ambiguous syntax:
+ * (']' 'target:' '[')*
+ *
+ * This ambiguous syntax occurs at:
+ * description=EString 'target:' '[' (ambiguity) target+=[AbstractAllocatable|QualifiedName]
+ * name=QualifiedName '{' 'target:' '[' (ambiguity) target+=[AbstractAllocatable|QualifiedName]
+ */
+ protected void emit_AreaSet___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * (']' 'target:' '[')+
+ *
+ * This ambiguous syntax occurs at:
+ * target+=[AbstractAllocatable|QualifiedName] (ambiguity) target+=[AbstractAllocatable|QualifiedName]
+ */
+ protected void emit_AreaSet___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * ('target:' '[' ']')*
+ *
+ * This ambiguous syntax occurs at:
+ * description=EString (ambiguity) 'description:' description=EString
+ * description=EString (ambiguity) '}' (rule end)
+ * name=QualifiedName '{' (ambiguity) 'description:' description=EString
+ * name=QualifiedName '{' (ambiguity) '}' (rule end)
+ * target+=[AbstractAllocatable|QualifiedName] ']' (ambiguity) 'description:' description=EString
+ * target+=[AbstractAllocatable|QualifiedName] ']' (ambiguity) '}' (rule end)
+ */
+ protected void emit_AreaSet___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * 'visibility:' | 'priority:'
+ *
+ * This ambiguous syntax occurs at:
+ * arbitrationPolicy=ArbitrationPolicy (ambiguity) visibility=VExpression
+ * description=EString (ambiguity) visibility=VExpression
+ * name=QualifiedName '{' (ambiguity) visibility=VExpression
+ * size+=SizeIdentifier (ambiguity) visibility=VExpression
+ * tags+=Tag (ambiguity) visibility=VExpression
+ * visibility=VExpression (ambiguity) visibility=VExpression
+ * zorder=VExpression (ambiguity) visibility=VExpression
+ */
+ protected void emit_Area_PriorityKeyword_4_3_0_1_or_VisibilityKeyword_4_3_0_0(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * ('(' ')')?
+ *
+ * This ambiguous syntax occurs at:
+ * {IsTypeOf.operand+=} OpIsTypeOf (ambiguity) ')' (rule end)
+ */
+ protected void emit_COperationFeatureCall___LeftParenthesisKeyword_1_1_1_1_0_0_RightParenthesisKeyword_1_1_1_1_0_2__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * '('*
+ *
+ * This ambiguous syntax occurs at:
+ * (rule start) (ambiguity) '(pre)' objReference=CMemberFeatureReference
+ * (rule start) (ambiguity) 'ALL_AREAS' '.' (rule start)
+ * (rule start) (ambiguity) 'ALL_AREAS' (rule start)
+ * (rule start) (ambiguity) 'ALL_SOUNDCONTENTS' '.' (rule start)
+ * (rule start) (ambiguity) 'ALL_SOUNDCONTENTS' (rule start)
+ * (rule start) (ambiguity) 'ALL_VIEWCONTENTS' '.' (rule start)
+ * (rule start) (ambiguity) 'ALL_VIEWCONTENTS' (rule start)
+ * (rule start) (ambiguity) 'ALL_ZONES' '.' (rule start)
+ * (rule start) (ambiguity) 'ALL_ZONES' (rule start)
+ * (rule start) (ambiguity) 'Exists' operand+=CExpression
+ * (rule start) (ambiguity) 'For-All' operand+=CExpression
+ * (rule start) (ambiguity) 'HideLowerPriority' '(' operand+=CExpression
+ * (rule start) (ambiguity) 'IF' '(' ')' '.' (rule start)
+ * (rule start) (ambiguity) 'IF' '(' ')' 'ELSE' elseExpression=CExpression
+ * (rule start) (ambiguity) 'IF' '(' ')' 'THEN' thenExpression=CExpression
+ * (rule start) (ambiguity) 'IF' '(' ')' (rule start)
+ * (rule start) (ambiguity) 'IF' '(' condition=CExpression
+ * (rule start) (ambiguity) 'MuteLowerPriority' '(' operand+=CExpression
+ * (rule start) (ambiguity) 'NULL' '.' (rule start)
+ * (rule start) (ambiguity) 'NULL' (rule start)
+ * (rule start) (ambiguity) '{' '}' '.' (rule start)
+ * (rule start) (ambiguity) '{' '}' (rule start)
+ * (rule start) (ambiguity) '{' operand+=CExpression
+ * (rule start) (ambiguity) OpNot operand+=CUnaryOperation
+ * (rule start) (ambiguity) refObject=[RuleObject|IdOrThis]
+ * (rule start) (ambiguity) value=EInt
+ * (rule start) (ambiguity) {ActiveContents.operand+=}
+ * (rule start) (ambiguity) {ActiveState.operand+=}
+ * (rule start) (ambiguity) {AllocatedContent.operand+=}
+ * (rule start) (ambiguity) {AndOperator.operand+=}
+ * (rule start) (ambiguity) {ContentValue.operand+=}
+ * (rule start) (ambiguity) {DisplayingContent.operand+=}
+ * (rule start) (ambiguity) {GetAllocatables.operand+=}
+ * (rule start) (ambiguity) {GetContentsList.operand+=}
+ * (rule start) (ambiguity) {GetProperty.operand+=}
+ * (rule start) (ambiguity) {HasBeenDisplayed.operand+=}
+ * (rule start) (ambiguity) {HasComeEarlierThan.operand+=}
+ * (rule start) (ambiguity) {HasComeLaterThan.operand+=}
+ * (rule start) (ambiguity) {ImpliesOperator.operand+=}
+ * (rule start) (ambiguity) {IsActive.operand+=}
+ * (rule start) (ambiguity) {IsAllocatedTo.operand+=}
+ * (rule start) (ambiguity) {IsAttenuated.operand+=}
+ * (rule start) (ambiguity) {IsChanged.operand+=}
+ * (rule start) (ambiguity) {IsChangedDisplay.operand+=}
+ * (rule start) (ambiguity) {IsChangedOutput.operand+=}
+ * (rule start) (ambiguity) {IsDisplayed.operand+=}
+ * (rule start) (ambiguity) {IsDisplayedOn.operand+=}
+ * (rule start) (ambiguity) {IsEqualToOperator.operand+=}
+ * (rule start) (ambiguity) {IsGreaterThanEqualOperator.operand+=}
+ * (rule start) (ambiguity) {IsGreaterThanOperator.operand+=}
+ * (rule start) (ambiguity) {IsHidden.operand+=}
+ * (rule start) (ambiguity) {IsLowerThanEqualOperator.operand+=}
+ * (rule start) (ambiguity) {IsLowerThanOperator.operand+=}
+ * (rule start) (ambiguity) {IsMuted.operand+=}
+ * (rule start) (ambiguity) {IsOn.operand+=}
+ * (rule start) (ambiguity) {IsOutputted.operand+=}
+ * (rule start) (ambiguity) {IsOutputtedOn.operand+=}
+ * (rule start) (ambiguity) {IsSounding.operand+=}
+ * (rule start) (ambiguity) {IsTranslatedSoundTo.operand+=}
+ * (rule start) (ambiguity) {IsTranslatedTo.operand+=}
+ * (rule start) (ambiguity) {IsTranslatedViewTo.operand+=}
+ * (rule start) (ambiguity) {IsTypeOf.operand+=}
+ * (rule start) (ambiguity) {IsVisible.operand+=}
+ * (rule start) (ambiguity) {MaxOperator.operand+=}
+ * (rule start) (ambiguity) {MemberFeatureReference.operand+=}
+ * (rule start) (ambiguity) {MinOperator.operand+=}
+ * (rule start) (ambiguity) {ObjectCompare.operand+=}
+ * (rule start) (ambiguity) {ObjectCompareNot.operand+=}
+ * (rule start) (ambiguity) {OrOperator.operand+=}
+ * (rule start) (ambiguity) {OutputtingSound.operand+=}
+ * (rule start) (ambiguity) {SelectOperator.operand+=}
+ * (rule start) (ambiguity) {SizeOperator.operand+=}
+ * (rule start) (ambiguity) {StateValue.operand+=}
+ */
+ protected void emit_CPrimaryExpression_LeftParenthesisKeyword_11_0_a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * '('+
+ *
+ * This ambiguous syntax occurs at:
+ * (rule start) (ambiguity) OpNot operand+=CUnaryOperation
+ * (rule start) (ambiguity) {ActiveContents.operand+=}
+ * (rule start) (ambiguity) {ActiveState.operand+=}
+ * (rule start) (ambiguity) {AllocatedContent.operand+=}
+ * (rule start) (ambiguity) {AndOperator.operand+=}
+ * (rule start) (ambiguity) {ContentValue.operand+=}
+ * (rule start) (ambiguity) {DisplayingContent.operand+=}
+ * (rule start) (ambiguity) {GetAllocatables.operand+=}
+ * (rule start) (ambiguity) {GetContentsList.operand+=}
+ * (rule start) (ambiguity) {GetProperty.operand+=}
+ * (rule start) (ambiguity) {HasBeenDisplayed.operand+=}
+ * (rule start) (ambiguity) {HasComeEarlierThan.operand+=}
+ * (rule start) (ambiguity) {HasComeLaterThan.operand+=}
+ * (rule start) (ambiguity) {ImpliesOperator.operand+=}
+ * (rule start) (ambiguity) {IsActive.operand+=}
+ * (rule start) (ambiguity) {IsAllocatedTo.operand+=}
+ * (rule start) (ambiguity) {IsAttenuated.operand+=}
+ * (rule start) (ambiguity) {IsChanged.operand+=}
+ * (rule start) (ambiguity) {IsChangedDisplay.operand+=}
+ * (rule start) (ambiguity) {IsChangedOutput.operand+=}
+ * (rule start) (ambiguity) {IsDisplayed.operand+=}
+ * (rule start) (ambiguity) {IsDisplayedOn.operand+=}
+ * (rule start) (ambiguity) {IsEqualToOperator.operand+=}
+ * (rule start) (ambiguity) {IsGreaterThanEqualOperator.operand+=}
+ * (rule start) (ambiguity) {IsGreaterThanOperator.operand+=}
+ * (rule start) (ambiguity) {IsHidden.operand+=}
+ * (rule start) (ambiguity) {IsLowerThanEqualOperator.operand+=}
+ * (rule start) (ambiguity) {IsLowerThanOperator.operand+=}
+ * (rule start) (ambiguity) {IsMuted.operand+=}
+ * (rule start) (ambiguity) {IsOn.operand+=}
+ * (rule start) (ambiguity) {IsOutputted.operand+=}
+ * (rule start) (ambiguity) {IsOutputtedOn.operand+=}
+ * (rule start) (ambiguity) {IsSounding.operand+=}
+ * (rule start) (ambiguity) {IsTranslatedSoundTo.operand+=}
+ * (rule start) (ambiguity) {IsTranslatedTo.operand+=}
+ * (rule start) (ambiguity) {IsTranslatedViewTo.operand+=}
+ * (rule start) (ambiguity) {IsTypeOf.operand+=}
+ * (rule start) (ambiguity) {IsVisible.operand+=}
+ * (rule start) (ambiguity) {MaxOperator.operand+=}
+ * (rule start) (ambiguity) {MinOperator.operand+=}
+ * (rule start) (ambiguity) {ObjectCompare.operand+=}
+ * (rule start) (ambiguity) {ObjectCompareNot.operand+=}
+ * (rule start) (ambiguity) {OrOperator.operand+=}
+ * (rule start) (ambiguity) {OutputtingSound.operand+=}
+ * (rule start) (ambiguity) {SelectOperator.operand+=}
+ * (rule start) (ambiguity) {SizeOperator.operand+=}
+ * (rule start) (ambiguity) {StateValue.operand+=}
+ */
+ protected void emit_CPrimaryExpression_LeftParenthesisKeyword_11_0_p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * (']' 'subarea:' '[')*
+ *
+ * This ambiguous syntax occurs at:
+ * (rule start) 'HorizontalLayout' '{' 'subarea:' '[' (ambiguity) subarea+=[Area|QualifiedName]
+ * basePoint=BasePoint 'subarea:' '[' (ambiguity) subarea+=[Area|QualifiedName]
+ */
+ protected void emit_HorizontalLayout___RightSquareBracketKeyword_3_1_3_SubareaKeyword_3_1_0_LeftSquareBracketKeyword_3_1_1__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * (']' 'subarea:' '[')+
+ *
+ * This ambiguous syntax occurs at:
+ * subarea+=[Area|QualifiedName] (ambiguity) subarea+=[Area|QualifiedName]
+ */
+ protected void emit_HorizontalLayout___RightSquareBracketKeyword_3_1_3_SubareaKeyword_3_1_0_LeftSquareBracketKeyword_3_1_1__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * ('subarea:' '[' ']')*
+ *
+ * This ambiguous syntax occurs at:
+ * (rule start) 'HorizontalLayout' '{' (ambiguity) 'basePoint:' basePoint=BasePoint
+ * (rule start) 'HorizontalLayout' '{' (ambiguity) '}' (rule start)
+ * basePoint=BasePoint (ambiguity) 'basePoint:' basePoint=BasePoint
+ * basePoint=BasePoint (ambiguity) '}' (rule end)
+ * subarea+=[Area|QualifiedName] ']' (ambiguity) 'basePoint:' basePoint=BasePoint
+ * subarea+=[Area|QualifiedName] ']' (ambiguity) '}' (rule end)
+ */
+ protected void emit_HorizontalLayout___SubareaKeyword_3_1_0_LeftSquareBracketKeyword_3_1_1_RightSquareBracketKeyword_3_1_3__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * '|'?
+ *
+ * This ambiguous syntax occurs at:
+ * (rule start) '{' (ambiguity) bodyText=CExpression
+ * (rule start) '{' (ambiguity) letStatements+=LetStatement
+ */
+ protected void emit_LambdaExpression_VerticalLineKeyword_1_1_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * ('allocatable:' '[' ']' ('target:' '[' ']')*)*
+ *
+ * This ambiguous syntax occurs at:
+ * allocatable+=[AbstractAllocatable|QualifiedName] ']' ('target:' '[' ']')* (ambiguity) 'description:' description=EString
+ * allocatable+=[AbstractAllocatable|QualifiedName] ']' ('target:' '[' ']')* (ambiguity) '}' (rule end)
+ */
+ protected void emit_SoundContentSet___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * ('allocatable:' '[' ']')*
+ *
+ * This ambiguous syntax occurs at:
+ * description=EString (ambiguity) 'target:' '[' (']' (ambiguity) 'target:' '[')* target+=[AbstractContent|QualifiedName]
+ * name=QualifiedName '{' (ambiguity) 'target:' '[' (']' (ambiguity) 'target:' '[')* target+=[AbstractContent|QualifiedName]
+ * target+=[AbstractContent|QualifiedName] ']' (ambiguity) ('target:' '[' ']' (ambiguity))* 'description:' description=EString
+ * target+=[AbstractContent|QualifiedName] ']' (ambiguity) ('target:' '[' ']' (ambiguity))* '}' (rule end)
+ */
+ protected void emit_SoundContentSet___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * (
+ * ('allocatable:' '[' (']' 'allocatable:' '[')*) |
+ * (
+ * ('allocatable:' '[' (']' 'allocatable:' '[')* ']')?
+ * ('target:' '[' ']')+
+ * 'allocatable:'
+ * '['
+ * (']' 'allocatable:' '[')*
+ * (']' ('target:' '[' ']')+ 'allocatable:' '[' (']' 'allocatable:' '[')*)*
+ * )
+ * )
+ *
+ * This ambiguous syntax occurs at:
+ * target+=[AbstractContent|QualifiedName] ']' (ambiguity) allocatable+=[AbstractAllocatable|QualifiedName]
+ */
+ protected void emit_SoundContentSet___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a___or_____AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a_RightSquareBracketKeyword_4_2_3__q___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__p_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a___RightSquareBracketKeyword_4_2_3___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__p_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a__a__(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * (']' ('allocatable:' '[' ']')* 'target:' '[')*
+ *
+ * This ambiguous syntax occurs at:
+ * description=EString ('allocatable:' '[' ']')* 'target:' '[' (ambiguity) target+=[AbstractContent|QualifiedName]
+ * name=QualifiedName '{' ('allocatable:' '[' ']')* 'target:' '[' (ambiguity) target+=[AbstractContent|QualifiedName]
+ */
+ protected void emit_SoundContentSet___RightSquareBracketKeyword_4_1_3___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * (']' ('allocatable:' '[' ']')* 'target:' '[')+
+ *
+ * This ambiguous syntax occurs at:
+ * target+=[AbstractContent|QualifiedName] (ambiguity) target+=[AbstractContent|QualifiedName]
+ */
+ protected void emit_SoundContentSet___RightSquareBracketKeyword_4_1_3___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * (']' ('target:' '[' ']')* 'allocatable:' '[')*
+ *
+ * This ambiguous syntax occurs at:
+ * description=EString ('target:' '[' ']')* 'allocatable:' '[' (ambiguity) allocatable+=[AbstractAllocatable|QualifiedName]
+ * name=QualifiedName '{' ('target:' '[' ']')* 'allocatable:' '[' (ambiguity) allocatable+=[AbstractAllocatable|QualifiedName]
+ */
+ protected void emit_SoundContentSet___RightSquareBracketKeyword_4_2_3___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * (']' ('target:' '[' ']')* 'allocatable:' '[')+
+ *
+ * This ambiguous syntax occurs at:
+ * allocatable+=[AbstractAllocatable|QualifiedName] (ambiguity) allocatable+=[AbstractAllocatable|QualifiedName]
+ */
+ protected void emit_SoundContentSet___RightSquareBracketKeyword_4_2_3___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * ('target:' '[' ']' ('allocatable:' '[' ']')*)*
+ *
+ * This ambiguous syntax occurs at:
+ * target+=[AbstractContent|QualifiedName] ']' ('allocatable:' '[' ']')* (ambiguity) 'description:' description=EString
+ * target+=[AbstractContent|QualifiedName] ']' ('allocatable:' '[' ']')* (ambiguity) '}' (rule end)
+ */
+ protected void emit_SoundContentSet___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * ('target:' '[' ']')*
+ *
+ * This ambiguous syntax occurs at:
+ * allocatable+=[AbstractAllocatable|QualifiedName] ']' (ambiguity) ('allocatable:' '[' ']' (ambiguity))* 'description:' description=EString
+ * allocatable+=[AbstractAllocatable|QualifiedName] ']' (ambiguity) ('allocatable:' '[' ']' (ambiguity))* '}' (rule end)
+ * description=EString (ambiguity) 'allocatable:' '[' (']' (ambiguity) 'allocatable:' '[')* allocatable+=[AbstractAllocatable|QualifiedName]
+ * name=QualifiedName '{' (ambiguity) 'allocatable:' '[' (']' (ambiguity) 'allocatable:' '[')* allocatable+=[AbstractAllocatable|QualifiedName]
+ */
+ protected void emit_SoundContentSet___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * (
+ * ('target:' '[' (']' 'target:' '[')*) |
+ * (
+ * ('target:' '[' (']' 'target:' '[')* ']')?
+ * ('allocatable:' '[' ']')+
+ * 'target:'
+ * '['
+ * (']' 'target:' '[')*
+ * (']' ('allocatable:' '[' ']')+ 'target:' '[' (']' 'target:' '[')*)*
+ * )
+ * )
+ *
+ * This ambiguous syntax occurs at:
+ * allocatable+=[AbstractAllocatable|QualifiedName] ']' (ambiguity) target+=[AbstractContent|QualifiedName]
+ */
+ protected void emit_SoundContentSet___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a___or_____TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a_RightSquareBracketKeyword_4_1_3__q___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__p_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a___RightSquareBracketKeyword_4_1_3___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__p_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a__a__(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * (('allocatable:' '[' ']') | ('target:' '[' ']'))*
+ *
+ * This ambiguous syntax occurs at:
+ * description=EString (ambiguity) 'description:' description=EString
+ * description=EString (ambiguity) '}' (rule end)
+ * name=QualifiedName '{' (ambiguity) 'description:' description=EString
+ * name=QualifiedName '{' (ambiguity) '}' (rule end)
+ */
+ protected void emit_SoundContentSet_____AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3___or___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3____a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * 'priority:' | 'value:'
+ *
+ * This ambiguous syntax occurs at:
+ * description=EString (ambiguity) value=VExpression
+ * name=QualifiedName '{' (ambiguity) value=VExpression
+ * value=VExpression (ambiguity) value=VExpression
+ */
+ protected void emit_SoundContentState_PriorityKeyword_4_1_0_0_or_ValueKeyword_4_1_0_1(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * ('allocatable:' '[' ']')*
+ *
+ * This ambiguous syntax occurs at:
+ * allocatable+=[AbstractAllocatable|QualifiedName] ']' (ambiguity) 'description:' description=EString
+ * allocatable+=[AbstractAllocatable|QualifiedName] ']' (ambiguity) 'loserType:' loserType=LoserType
+ * allocatable+=[AbstractAllocatable|QualifiedName] ']' (ambiguity) '}' (rule end)
+ * allocatable+=[AbstractAllocatable|QualifiedName] ']' (ambiguity) states+=SoundContentState
+ * allocatable+=[AbstractAllocatable|QualifiedName] ']' (ambiguity) tags+=Tag
+ * description=EString (ambiguity) 'description:' description=EString
+ * description=EString (ambiguity) 'loserType:' loserType=LoserType
+ * description=EString (ambiguity) '}' (rule end)
+ * description=EString (ambiguity) states+=SoundContentState
+ * description=EString (ambiguity) tags+=Tag
+ * loserType=LoserType (ambiguity) 'description:' description=EString
+ * loserType=LoserType (ambiguity) 'loserType:' loserType=LoserType
+ * loserType=LoserType (ambiguity) '}' (rule end)
+ * loserType=LoserType (ambiguity) states+=SoundContentState
+ * loserType=LoserType (ambiguity) tags+=Tag
+ * name=QualifiedName '{' (ambiguity) 'description:' description=EString
+ * name=QualifiedName '{' (ambiguity) 'loserType:' loserType=LoserType
+ * name=QualifiedName '{' (ambiguity) '}' (rule end)
+ * name=QualifiedName '{' (ambiguity) states+=SoundContentState
+ * name=QualifiedName '{' (ambiguity) tags+=Tag
+ * states+=SoundContentState (ambiguity) 'description:' description=EString
+ * states+=SoundContentState (ambiguity) 'loserType:' loserType=LoserType
+ * states+=SoundContentState (ambiguity) '}' (rule end)
+ * states+=SoundContentState (ambiguity) states+=SoundContentState
+ * states+=SoundContentState (ambiguity) tags+=Tag
+ * tags+=Tag (ambiguity) 'description:' description=EString
+ * tags+=Tag (ambiguity) 'loserType:' loserType=LoserType
+ * tags+=Tag (ambiguity) '}' (rule end)
+ * tags+=Tag (ambiguity) states+=SoundContentState
+ * tags+=Tag (ambiguity) tags+=Tag
+ */
+ protected void emit_SoundContent___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * (']' 'allocatable:' '[')*
+ *
+ * This ambiguous syntax occurs at:
+ * description=EString 'allocatable:' '[' (ambiguity) allocatable+=[AbstractAllocatable|QualifiedName]
+ * loserType=LoserType 'allocatable:' '[' (ambiguity) allocatable+=[AbstractAllocatable|QualifiedName]
+ * name=QualifiedName '{' 'allocatable:' '[' (ambiguity) allocatable+=[AbstractAllocatable|QualifiedName]
+ * states+=SoundContentState 'allocatable:' '[' (ambiguity) allocatable+=[AbstractAllocatable|QualifiedName]
+ * tags+=Tag 'allocatable:' '[' (ambiguity) allocatable+=[AbstractAllocatable|QualifiedName]
+ */
+ protected void emit_SoundContent___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * (']' 'allocatable:' '[')+
+ *
+ * This ambiguous syntax occurs at:
+ * allocatable+=[AbstractAllocatable|QualifiedName] (ambiguity) allocatable+=[AbstractAllocatable|QualifiedName]
+ */
+ protected void emit_SoundContent___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * ('{' '}')?
+ *
+ * This ambiguous syntax occurs at:
+ * name=QualifiedName '>>' (ambiguity) (rule end)
+ * name=QualifiedName '»' (ambiguity) (rule end)
+ */
+ protected void emit_Tag___LeftCurlyBracketKeyword_1_0_RightCurlyBracketKeyword_1_2__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * ('module' QualifiedName)?
+ *
+ * This ambiguous syntax occurs at:
+ * (rule start) (ambiguity) (rule start)
+ * (rule start) (ambiguity) imports+=Import
+ * (rule start) (ambiguity) packages+=Package
+ * (rule start) (ambiguity) project+=Project
+ */
+ protected void emit_TopLevel___ModuleKeyword_1_0_QualifiedNameParserRuleCall_1_1__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * '('*
+ *
+ * This ambiguous syntax occurs at:
+ * (rule start) (ambiguity) 'MAX_VALUE' (rule start)
+ * (rule start) (ambiguity) 'MIN_VALUE' (rule start)
+ * (rule start) (ambiguity) 'NONE_VALUE' (rule start)
+ * (rule start) (ambiguity) 'STANDARD_VALUE' (rule start)
+ * (rule start) (ambiguity) 'That-of' (rule start)
+ * (rule start) (ambiguity) 'That-of' operand+=VMemberFeatureReference
+ * (rule start) (ambiguity) OpEqualTo operand+=VPrimaryExpression
+ * (rule start) (ambiguity) OpGreaterThan operand+=VPrimaryExpression
+ * (rule start) (ambiguity) OpLowerThan operand+=VPrimaryExpression
+ * (rule start) (ambiguity) OpMuchGreaterThan operand+=VPrimaryExpression
+ * (rule start) (ambiguity) value=EInt
+ * (rule start) (ambiguity) {ComparisonAnd.operand+=}
+ * (rule start) (ambiguity) {PlusOperator.operand+=}
+ */
+ protected void emit_VPrimaryExpression_LeftParenthesisKeyword_2_0_a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * '('+
+ *
+ * This ambiguous syntax occurs at:
+ * (rule start) (ambiguity) OpEqualTo operand+=VPrimaryExpression
+ * (rule start) (ambiguity) OpGreaterThan operand+=VPrimaryExpression
+ * (rule start) (ambiguity) OpLowerThan operand+=VPrimaryExpression
+ * (rule start) (ambiguity) OpMuchGreaterThan operand+=VPrimaryExpression
+ * (rule start) (ambiguity) {ComparisonAnd.operand+=}
+ * (rule start) (ambiguity) {PlusOperator.operand+=}
+ */
+ protected void emit_VPrimaryExpression_LeftParenthesisKeyword_2_0_p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * (']' 'subarea:' '[')*
+ *
+ * This ambiguous syntax occurs at:
+ * (rule start) 'VerticalLayout' '{' 'subarea:' '[' (ambiguity) subarea+=[Area|QualifiedName]
+ * basePoint=BasePoint 'subarea:' '[' (ambiguity) subarea+=[Area|QualifiedName]
+ */
+ protected void emit_VerticalLayout___RightSquareBracketKeyword_3_1_3_SubareaKeyword_3_1_0_LeftSquareBracketKeyword_3_1_1__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * (']' 'subarea:' '[')+
+ *
+ * This ambiguous syntax occurs at:
+ * subarea+=[Area|QualifiedName] (ambiguity) subarea+=[Area|QualifiedName]
+ */
+ protected void emit_VerticalLayout___RightSquareBracketKeyword_3_1_3_SubareaKeyword_3_1_0_LeftSquareBracketKeyword_3_1_1__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * ('subarea:' '[' ']')*
+ *
+ * This ambiguous syntax occurs at:
+ * (rule start) 'VerticalLayout' '{' (ambiguity) 'basePoint:' basePoint=BasePoint
+ * (rule start) 'VerticalLayout' '{' (ambiguity) '}' (rule start)
+ * basePoint=BasePoint (ambiguity) 'basePoint:' basePoint=BasePoint
+ * basePoint=BasePoint (ambiguity) '}' (rule end)
+ * subarea+=[Area|QualifiedName] ']' (ambiguity) 'basePoint:' basePoint=BasePoint
+ * subarea+=[Area|QualifiedName] ']' (ambiguity) '}' (rule end)
+ */
+ protected void emit_VerticalLayout___SubareaKeyword_3_1_0_LeftSquareBracketKeyword_3_1_1_RightSquareBracketKeyword_3_1_3__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * ('allocatable:' '[' ']' ('target:' '[' ']')*)*
+ *
+ * This ambiguous syntax occurs at:
+ * allocatable+=[AbstractAllocatable|QualifiedName] ']' ('target:' '[' ']')* (ambiguity) 'description:' description=EString
+ * allocatable+=[AbstractAllocatable|QualifiedName] ']' ('target:' '[' ']')* (ambiguity) '}' (rule end)
+ */
+ protected void emit_ViewContentSet___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * ('allocatable:' '[' ']')*
+ *
+ * This ambiguous syntax occurs at:
+ * description=EString (ambiguity) 'target:' '[' (']' (ambiguity) 'target:' '[')* target+=[AbstractContent|QualifiedName]
+ * name=QualifiedName '{' (ambiguity) 'target:' '[' (']' (ambiguity) 'target:' '[')* target+=[AbstractContent|QualifiedName]
+ * target+=[AbstractContent|QualifiedName] ']' (ambiguity) ('target:' '[' ']' (ambiguity))* 'description:' description=EString
+ * target+=[AbstractContent|QualifiedName] ']' (ambiguity) ('target:' '[' ']' (ambiguity))* '}' (rule end)
+ */
+ protected void emit_ViewContentSet___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * (
+ * ('allocatable:' '[' (']' 'allocatable:' '[')*) |
+ * (
+ * ('allocatable:' '[' (']' 'allocatable:' '[')* ']')?
+ * ('target:' '[' ']')+
+ * 'allocatable:'
+ * '['
+ * (']' 'allocatable:' '[')*
+ * (']' ('target:' '[' ']')+ 'allocatable:' '[' (']' 'allocatable:' '[')*)*
+ * )
+ * )
+ *
+ * This ambiguous syntax occurs at:
+ * target+=[AbstractContent|QualifiedName] ']' (ambiguity) allocatable+=[AbstractAllocatable|QualifiedName]
+ */
+ protected void emit_ViewContentSet___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a___or_____AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a_RightSquareBracketKeyword_4_2_3__q___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__p_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a___RightSquareBracketKeyword_4_2_3___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__p_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a__a__(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * (']' ('allocatable:' '[' ']')* 'target:' '[')*
+ *
+ * This ambiguous syntax occurs at:
+ * description=EString ('allocatable:' '[' ']')* 'target:' '[' (ambiguity) target+=[AbstractContent|QualifiedName]
+ * name=QualifiedName '{' ('allocatable:' '[' ']')* 'target:' '[' (ambiguity) target+=[AbstractContent|QualifiedName]
+ */
+ protected void emit_ViewContentSet___RightSquareBracketKeyword_4_1_3___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * (']' ('allocatable:' '[' ']')* 'target:' '[')+
+ *
+ * This ambiguous syntax occurs at:
+ * target+=[AbstractContent|QualifiedName] (ambiguity) target+=[AbstractContent|QualifiedName]
+ */
+ protected void emit_ViewContentSet___RightSquareBracketKeyword_4_1_3___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * (']' ('target:' '[' ']')* 'allocatable:' '[')*
+ *
+ * This ambiguous syntax occurs at:
+ * description=EString ('target:' '[' ']')* 'allocatable:' '[' (ambiguity) allocatable+=[AbstractAllocatable|QualifiedName]
+ * name=QualifiedName '{' ('target:' '[' ']')* 'allocatable:' '[' (ambiguity) allocatable+=[AbstractAllocatable|QualifiedName]
+ */
+ protected void emit_ViewContentSet___RightSquareBracketKeyword_4_2_3___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * (']' ('target:' '[' ']')* 'allocatable:' '[')+
+ *
+ * This ambiguous syntax occurs at:
+ * allocatable+=[AbstractAllocatable|QualifiedName] (ambiguity) allocatable+=[AbstractAllocatable|QualifiedName]
+ */
+ protected void emit_ViewContentSet___RightSquareBracketKeyword_4_2_3___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * ('target:' '[' ']' ('allocatable:' '[' ']')*)*
+ *
+ * This ambiguous syntax occurs at:
+ * target+=[AbstractContent|QualifiedName] ']' ('allocatable:' '[' ']')* (ambiguity) 'description:' description=EString
+ * target+=[AbstractContent|QualifiedName] ']' ('allocatable:' '[' ']')* (ambiguity) '}' (rule end)
+ */
+ protected void emit_ViewContentSet___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * ('target:' '[' ']')*
+ *
+ * This ambiguous syntax occurs at:
+ * allocatable+=[AbstractAllocatable|QualifiedName] ']' (ambiguity) ('allocatable:' '[' ']' (ambiguity))* 'description:' description=EString
+ * allocatable+=[AbstractAllocatable|QualifiedName] ']' (ambiguity) ('allocatable:' '[' ']' (ambiguity))* '}' (rule end)
+ * description=EString (ambiguity) 'allocatable:' '[' (']' (ambiguity) 'allocatable:' '[')* allocatable+=[AbstractAllocatable|QualifiedName]
+ * name=QualifiedName '{' (ambiguity) 'allocatable:' '[' (']' (ambiguity) 'allocatable:' '[')* allocatable+=[AbstractAllocatable|QualifiedName]
+ */
+ protected void emit_ViewContentSet___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * (
+ * ('target:' '[' (']' 'target:' '[')*) |
+ * (
+ * ('target:' '[' (']' 'target:' '[')* ']')?
+ * ('allocatable:' '[' ']')+
+ * 'target:'
+ * '['
+ * (']' 'target:' '[')*
+ * (']' ('allocatable:' '[' ']')+ 'target:' '[' (']' 'target:' '[')*)*
+ * )
+ * )
+ *
+ * This ambiguous syntax occurs at:
+ * allocatable+=[AbstractAllocatable|QualifiedName] ']' (ambiguity) target+=[AbstractContent|QualifiedName]
+ */
+ protected void emit_ViewContentSet___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a___or_____TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a_RightSquareBracketKeyword_4_1_3__q___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__p_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a___RightSquareBracketKeyword_4_1_3___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__p_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a__a__(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * (('target:' '[' ']') | ('allocatable:' '[' ']'))*
+ *
+ * This ambiguous syntax occurs at:
+ * description=EString (ambiguity) 'description:' description=EString
+ * description=EString (ambiguity) '}' (rule end)
+ * name=QualifiedName '{' (ambiguity) 'description:' description=EString
+ * name=QualifiedName '{' (ambiguity) '}' (rule end)
+ */
+ protected void emit_ViewContentSet_____AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3___or___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3____a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * 'priority:' | 'value:'
+ *
+ * This ambiguous syntax occurs at:
+ * description=EString (ambiguity) value=VExpression
+ * name=QualifiedName '{' (ambiguity) value=VExpression
+ * value=VExpression (ambiguity) value=VExpression
+ */
+ protected void emit_ViewContentState_PriorityKeyword_4_1_0_0_or_ValueKeyword_4_1_0_1(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * ('allocatable:' '[' ']')*
+ *
+ * This ambiguous syntax occurs at:
+ * allocatable+=[AbstractAllocatable|QualifiedName] ']' (ambiguity) 'description:' description=EString
+ * allocatable+=[AbstractAllocatable|QualifiedName] ']' (ambiguity) 'loserType:' loserType=LoserType
+ * allocatable+=[AbstractAllocatable|QualifiedName] ']' (ambiguity) '}' (rule end)
+ * allocatable+=[AbstractAllocatable|QualifiedName] ']' (ambiguity) size+=SizeIdentifier
+ * allocatable+=[AbstractAllocatable|QualifiedName] ']' (ambiguity) states+=ViewContentState
+ * allocatable+=[AbstractAllocatable|QualifiedName] ']' (ambiguity) tags+=Tag
+ * description=EString (ambiguity) 'description:' description=EString
+ * description=EString (ambiguity) 'loserType:' loserType=LoserType
+ * description=EString (ambiguity) '}' (rule end)
+ * description=EString (ambiguity) size+=SizeIdentifier
+ * description=EString (ambiguity) states+=ViewContentState
+ * description=EString (ambiguity) tags+=Tag
+ * loserType=LoserType (ambiguity) 'description:' description=EString
+ * loserType=LoserType (ambiguity) 'loserType:' loserType=LoserType
+ * loserType=LoserType (ambiguity) '}' (rule end)
+ * loserType=LoserType (ambiguity) size+=SizeIdentifier
+ * loserType=LoserType (ambiguity) states+=ViewContentState
+ * loserType=LoserType (ambiguity) tags+=Tag
+ * name=QualifiedName '{' (ambiguity) 'description:' description=EString
+ * name=QualifiedName '{' (ambiguity) 'loserType:' loserType=LoserType
+ * name=QualifiedName '{' (ambiguity) '}' (rule end)
+ * name=QualifiedName '{' (ambiguity) size+=SizeIdentifier
+ * name=QualifiedName '{' (ambiguity) states+=ViewContentState
+ * name=QualifiedName '{' (ambiguity) tags+=Tag
+ * size+=SizeIdentifier (ambiguity) 'description:' description=EString
+ * size+=SizeIdentifier (ambiguity) 'loserType:' loserType=LoserType
+ * size+=SizeIdentifier (ambiguity) '}' (rule end)
+ * size+=SizeIdentifier (ambiguity) size+=SizeIdentifier
+ * size+=SizeIdentifier (ambiguity) states+=ViewContentState
+ * size+=SizeIdentifier (ambiguity) tags+=Tag
+ * states+=ViewContentState (ambiguity) 'description:' description=EString
+ * states+=ViewContentState (ambiguity) 'loserType:' loserType=LoserType
+ * states+=ViewContentState (ambiguity) '}' (rule end)
+ * states+=ViewContentState (ambiguity) size+=SizeIdentifier
+ * states+=ViewContentState (ambiguity) states+=ViewContentState
+ * states+=ViewContentState (ambiguity) tags+=Tag
+ * tags+=Tag (ambiguity) 'description:' description=EString
+ * tags+=Tag (ambiguity) 'loserType:' loserType=LoserType
+ * tags+=Tag (ambiguity) '}' (rule end)
+ * tags+=Tag (ambiguity) size+=SizeIdentifier
+ * tags+=Tag (ambiguity) states+=ViewContentState
+ * tags+=Tag (ambiguity) tags+=Tag
+ */
+ protected void emit_ViewContent___AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1_RightSquareBracketKeyword_4_2_3__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * (']' 'allocatable:' '[')*
+ *
+ * This ambiguous syntax occurs at:
+ * description=EString 'allocatable:' '[' (ambiguity) allocatable+=[AbstractAllocatable|QualifiedName]
+ * loserType=LoserType 'allocatable:' '[' (ambiguity) allocatable+=[AbstractAllocatable|QualifiedName]
+ * name=QualifiedName '{' 'allocatable:' '[' (ambiguity) allocatable+=[AbstractAllocatable|QualifiedName]
+ * size+=SizeIdentifier 'allocatable:' '[' (ambiguity) allocatable+=[AbstractAllocatable|QualifiedName]
+ * states+=ViewContentState 'allocatable:' '[' (ambiguity) allocatable+=[AbstractAllocatable|QualifiedName]
+ * tags+=Tag 'allocatable:' '[' (ambiguity) allocatable+=[AbstractAllocatable|QualifiedName]
+ */
+ protected void emit_ViewContent___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * (']' 'allocatable:' '[')+
+ *
+ * This ambiguous syntax occurs at:
+ * allocatable+=[AbstractAllocatable|QualifiedName] (ambiguity) allocatable+=[AbstractAllocatable|QualifiedName]
+ */
+ protected void emit_ViewContent___RightSquareBracketKeyword_4_2_3_AllocatableKeyword_4_2_0_LeftSquareBracketKeyword_4_2_1__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * (']' 'target:' '[')*
+ *
+ * This ambiguous syntax occurs at:
+ * description=EString 'target:' '[' (ambiguity) target+=[AbstractAllocatable|QualifiedName]
+ * name=QualifiedName '{' 'target:' '[' (ambiguity) target+=[AbstractAllocatable|QualifiedName]
+ */
+ protected void emit_ZoneSet___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * (']' 'target:' '[')+
+ *
+ * This ambiguous syntax occurs at:
+ * target+=[AbstractAllocatable|QualifiedName] (ambiguity) target+=[AbstractAllocatable|QualifiedName]
+ */
+ protected void emit_ZoneSet___RightSquareBracketKeyword_4_1_3_TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * ('target:' '[' ']')*
+ *
+ * This ambiguous syntax occurs at:
+ * description=EString (ambiguity) 'description:' description=EString
+ * description=EString (ambiguity) '}' (rule end)
+ * name=QualifiedName '{' (ambiguity) 'description:' description=EString
+ * name=QualifiedName '{' (ambiguity) '}' (rule end)
+ * target+=[AbstractAllocatable|QualifiedName] ']' (ambiguity) 'description:' description=EString
+ * target+=[AbstractAllocatable|QualifiedName] ']' (ambiguity) '}' (rule end)
+ */
+ protected void emit_ZoneSet___TargetKeyword_4_1_0_LeftSquareBracketKeyword_4_1_1_RightSquareBracketKeyword_4_1_3__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * 'priority:' | 'visibility:'
+ *
+ * This ambiguous syntax occurs at:
+ * arbitrationPolicy=ArbitrationPolicy (ambiguity) visibility=VExpression
+ * attenuate=IntegerValue (ambiguity) visibility=VExpression
+ * description=EString (ambiguity) visibility=VExpression
+ * name=QualifiedName '{' (ambiguity) visibility=VExpression
+ * tags+=Tag (ambiguity) visibility=VExpression
+ * visibility=VExpression (ambiguity) visibility=VExpression
+ */
+ protected void emit_Zone_PriorityKeyword_4_2_0_1_or_VisibilityKeyword_4_2_0_0(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+}
diff --git a/rba.tool.editor/src-gen/rba/tool/editor/services/RBAModelGrammarAccess.java b/rba.tool.editor/src-gen/rba/tool/editor/services/RBAModelGrammarAccess.java
new file mode 100644
index 0000000..811d945
--- /dev/null
+++ b/rba.tool.editor/src-gen/rba/tool/editor/services/RBAModelGrammarAccess.java
@@ -0,0 +1,9097 @@
+/*
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.services;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import java.util.List;
+import org.eclipse.xtext.Action;
+import org.eclipse.xtext.Alternatives;
+import org.eclipse.xtext.Assignment;
+import org.eclipse.xtext.CrossReference;
+import org.eclipse.xtext.EnumLiteralDeclaration;
+import org.eclipse.xtext.EnumRule;
+import org.eclipse.xtext.Grammar;
+import org.eclipse.xtext.GrammarUtil;
+import org.eclipse.xtext.Group;
+import org.eclipse.xtext.Keyword;
+import org.eclipse.xtext.ParserRule;
+import org.eclipse.xtext.RuleCall;
+import org.eclipse.xtext.TerminalRule;
+import org.eclipse.xtext.UnorderedGroup;
+import org.eclipse.xtext.service.AbstractElementFinder.AbstractEnumRuleElementFinder;
+import org.eclipse.xtext.service.AbstractElementFinder.AbstractGrammarElementFinder;
+import org.eclipse.xtext.service.GrammarProvider;
+
+@Singleton
+public class RBAModelGrammarAccess extends AbstractGrammarElementFinder {
+
+ public class TopLevelElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.TopLevel");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cTopLevelAction_0 = (Action)cGroup.eContents().get(0);
+ private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+ private final Keyword cModuleKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
+ private final RuleCall cQualifiedNameParserRuleCall_1_1 = (RuleCall)cGroup_1.eContents().get(1);
+ private final Assignment cProjectAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cProjectProjectParserRuleCall_2_0 = (RuleCall)cProjectAssignment_2.eContents().get(0);
+ private final Assignment cImportsAssignment_3 = (Assignment)cGroup.eContents().get(3);
+ private final RuleCall cImportsImportParserRuleCall_3_0 = (RuleCall)cImportsAssignment_3.eContents().get(0);
+ private final Assignment cPackagesAssignment_4 = (Assignment)cGroup.eContents().get(4);
+ private final RuleCall cPackagesPackageParserRuleCall_4_0 = (RuleCall)cPackagesAssignment_4.eContents().get(0);
+
+ ///* Top Level */ TopLevel:
+ // {TopLevel} ('module' QualifiedName)?
+ // project+=Project*
+ // imports+=Import*
+ // packages+=Package*;
+ @Override public ParserRule getRule() { return rule; }
+
+ //{TopLevel} ('module' QualifiedName)? project+=Project* imports+=Import* packages+=Package*
+ public Group getGroup() { return cGroup; }
+
+ //{TopLevel}
+ public Action getTopLevelAction_0() { return cTopLevelAction_0; }
+
+ //('module' QualifiedName)?
+ public Group getGroup_1() { return cGroup_1; }
+
+ //'module'
+ public Keyword getModuleKeyword_1_0() { return cModuleKeyword_1_0; }
+
+ //QualifiedName
+ public RuleCall getQualifiedNameParserRuleCall_1_1() { return cQualifiedNameParserRuleCall_1_1; }
+
+ //project+=Project*
+ public Assignment getProjectAssignment_2() { return cProjectAssignment_2; }
+
+ //Project
+ public RuleCall getProjectProjectParserRuleCall_2_0() { return cProjectProjectParserRuleCall_2_0; }
+
+ //imports+=Import*
+ public Assignment getImportsAssignment_3() { return cImportsAssignment_3; }
+
+ //Import
+ public RuleCall getImportsImportParserRuleCall_3_0() { return cImportsImportParserRuleCall_3_0; }
+
+ //packages+=Package*
+ public Assignment getPackagesAssignment_4() { return cPackagesAssignment_4; }
+
+ //Package
+ public RuleCall getPackagesPackageParserRuleCall_4_0() { return cPackagesPackageParserRuleCall_4_0; }
+ }
+ public class ImportElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.Import");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cImportKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Assignment cImportedNamespaceAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cImportedNamespaceQualifiedNameWithWildcardParserRuleCall_1_0 = (RuleCall)cImportedNamespaceAssignment_1.eContents().get(0);
+
+ //Import:
+ // 'import' importedNamespace=QualifiedNameWithWildcard;
+ @Override public ParserRule getRule() { return rule; }
+
+ //'import' importedNamespace=QualifiedNameWithWildcard
+ public Group getGroup() { return cGroup; }
+
+ //'import'
+ public Keyword getImportKeyword_0() { return cImportKeyword_0; }
+
+ //importedNamespace=QualifiedNameWithWildcard
+ public Assignment getImportedNamespaceAssignment_1() { return cImportedNamespaceAssignment_1; }
+
+ //QualifiedNameWithWildcard
+ public RuleCall getImportedNamespaceQualifiedNameWithWildcardParserRuleCall_1_0() { return cImportedNamespaceQualifiedNameWithWildcardParserRuleCall_1_0; }
+ }
+ public class PackagableElementElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.PackagableElement");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final RuleCall cPackageParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+ private final RuleCall cStereotypeParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+ private final RuleCall cRuleObjectParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
+ private final RuleCall cDisplayParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
+ private final RuleCall cAbstractConstraintParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
+ private final RuleCall cSizeParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5);
+
+ ///* Abstract Structured Data Type */ PackagableElement rbacore::PackagableElement:
+ // Package | Stereotype | RuleObject | Display | AbstractConstraint | Size;
+ @Override public ParserRule getRule() { return rule; }
+
+ //Package | Stereotype | RuleObject | Display | AbstractConstraint | Size
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //Package
+ public RuleCall getPackageParserRuleCall_0() { return cPackageParserRuleCall_0; }
+
+ //Stereotype
+ public RuleCall getStereotypeParserRuleCall_1() { return cStereotypeParserRuleCall_1; }
+
+ //RuleObject
+ public RuleCall getRuleObjectParserRuleCall_2() { return cRuleObjectParserRuleCall_2; }
+
+ //Display
+ public RuleCall getDisplayParserRuleCall_3() { return cDisplayParserRuleCall_3; }
+
+ //AbstractConstraint
+ public RuleCall getAbstractConstraintParserRuleCall_4() { return cAbstractConstraintParserRuleCall_4; }
+
+ //Size
+ public RuleCall getSizeParserRuleCall_5() { return cSizeParserRuleCall_5; }
+ }
+ public class AbstractConstraintElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.AbstractConstraint");
+ private final RuleCall cConstraintParserRuleCall = (RuleCall)rule.eContents().get(1);
+
+ //AbstractConstraint rbacore::AbstractConstraint:
+ // Constraint;
+ @Override public ParserRule getRule() { return rule; }
+
+ //Constraint
+ public RuleCall getConstraintParserRuleCall() { return cConstraintParserRuleCall; }
+ }
+ public class SizeIdentifierElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.SizeIdentifier");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final RuleCall cSizeReferenceParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+ private final RuleCall cSizeParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+
+ //SizeIdentifier rbaview::SizeIdentifier:
+ // SizeReference | Size;
+ @Override public ParserRule getRule() { return rule; }
+
+ //SizeReference | Size
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //SizeReference
+ public RuleCall getSizeReferenceParserRuleCall_0() { return cSizeReferenceParserRuleCall_0; }
+
+ //Size
+ public RuleCall getSizeParserRuleCall_1() { return cSizeParserRuleCall_1; }
+ }
+ public class RuleObjectElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.RuleObject");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final RuleCall cAbstractContentParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+ private final RuleCall cAbstractSceneParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+ private final RuleCall cAbstractAllocatableParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
+
+ //RuleObject rbacore::RuleObject:
+ // AbstractContent | AbstractScene | AbstractAllocatable;
+ @Override public ParserRule getRule() { return rule; }
+
+ //AbstractContent | AbstractScene | AbstractAllocatable
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //AbstractContent
+ public RuleCall getAbstractContentParserRuleCall_0() { return cAbstractContentParserRuleCall_0; }
+
+ //AbstractScene
+ public RuleCall getAbstractSceneParserRuleCall_1() { return cAbstractSceneParserRuleCall_1; }
+
+ //AbstractAllocatable
+ public RuleCall getAbstractAllocatableParserRuleCall_2() { return cAbstractAllocatableParserRuleCall_2; }
+ }
+ public class AbstractAllocatableElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.AbstractAllocatable");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final RuleCall cAllocatableParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+ private final RuleCall cAllocatableSetParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+
+ //AbstractAllocatable rbacore::AbstractAllocatable:
+ // Allocatable | AllocatableSet;
+ @Override public ParserRule getRule() { return rule; }
+
+ //Allocatable | AllocatableSet
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //Allocatable
+ public RuleCall getAllocatableParserRuleCall_0() { return cAllocatableParserRuleCall_0; }
+
+ //AllocatableSet
+ public RuleCall getAllocatableSetParserRuleCall_1() { return cAllocatableSetParserRuleCall_1; }
+ }
+ public class AllocatableElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.Allocatable");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final RuleCall cAreaParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+ private final RuleCall cZoneParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+
+ //Allocatable rbacore::Allocatable:
+ // Area | Zone;
+ @Override public ParserRule getRule() { return rule; }
+
+ //Area | Zone
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //Area
+ public RuleCall getAreaParserRuleCall_0() { return cAreaParserRuleCall_0; }
+
+ //Zone
+ public RuleCall getZoneParserRuleCall_1() { return cZoneParserRuleCall_1; }
+ }
+ public class AllocatableSetElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.AllocatableSet");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final RuleCall cAreaSetParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+ private final RuleCall cZoneSetParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+
+ //AllocatableSet rbacore::AllocatableSet:
+ // AreaSet | ZoneSet;
+ @Override public ParserRule getRule() { return rule; }
+
+ //AreaSet | ZoneSet
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //AreaSet
+ public RuleCall getAreaSetParserRuleCall_0() { return cAreaSetParserRuleCall_0; }
+
+ //ZoneSet
+ public RuleCall getZoneSetParserRuleCall_1() { return cZoneSetParserRuleCall_1; }
+ }
+ public class AbstractContentElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.AbstractContent");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final RuleCall cContentParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+ private final RuleCall cContentSetParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+
+ //AbstractContent rbacore::AbstractContent:
+ // Content | ContentSet;
+ @Override public ParserRule getRule() { return rule; }
+
+ //Content | ContentSet
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //Content
+ public RuleCall getContentParserRuleCall_0() { return cContentParserRuleCall_0; }
+
+ //ContentSet
+ public RuleCall getContentSetParserRuleCall_1() { return cContentSetParserRuleCall_1; }
+ }
+ public class ContentElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.Content");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final RuleCall cViewContentParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+ private final RuleCall cSoundContentParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+
+ //Content rbacore::Content:
+ // ViewContent | SoundContent;
+ @Override public ParserRule getRule() { return rule; }
+
+ //ViewContent | SoundContent
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //ViewContent
+ public RuleCall getViewContentParserRuleCall_0() { return cViewContentParserRuleCall_0; }
+
+ //SoundContent
+ public RuleCall getSoundContentParserRuleCall_1() { return cSoundContentParserRuleCall_1; }
+ }
+ public class ContentSetElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.ContentSet");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final RuleCall cViewContentSetParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+ private final RuleCall cSoundContentSetParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+
+ //ContentSet rbacore::ContentSet:
+ // ViewContentSet | SoundContentSet;
+ @Override public ParserRule getRule() { return rule; }
+
+ //ViewContentSet | SoundContentSet
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //ViewContentSet
+ public RuleCall getViewContentSetParserRuleCall_0() { return cViewContentSetParserRuleCall_0; }
+
+ //SoundContentSet
+ public RuleCall getSoundContentSetParserRuleCall_1() { return cSoundContentSetParserRuleCall_1; }
+ }
+ public class AbstractSceneElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.AbstractScene");
+ private final RuleCall cSceneParserRuleCall = (RuleCall)rule.eContents().get(1);
+
+ //AbstractScene rbacore::AbstractScene:
+ // Scene;
+ @Override public ParserRule getRule() { return rule; }
+
+ //Scene
+ public RuleCall getSceneParserRuleCall() { return cSceneParserRuleCall; }
+ }
+ public class AbstractPropertyElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.AbstractProperty");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Group cGroup_0 = (Group)cGroup.eContents().get(0);
+ private final Action cIntegerPropertyAction_0_0 = (Action)cGroup_0.eContents().get(0);
+ private final Keyword cIntKeyword_0_1 = (Keyword)cGroup_0.eContents().get(1);
+ private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cNameValidIDParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
+ private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
+ private final Keyword cColonKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
+ private final Assignment cValueAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
+ private final RuleCall cValueIntegerValueParserRuleCall_2_1_0 = (RuleCall)cValueAssignment_2_1.eContents().get(0);
+
+ //AbstractProperty rbacore::AbstractProperty:
+ // ({rbacore::IntegerProperty} 'int') name=ValidID (':' value=IntegerValue)?;
+ @Override public ParserRule getRule() { return rule; }
+
+ //({rbacore::IntegerProperty} 'int') name=ValidID (':' value=IntegerValue)?
+ public Group getGroup() { return cGroup; }
+
+ //{rbacore::IntegerProperty} 'int'
+ public Group getGroup_0() { return cGroup_0; }
+
+ //{rbacore::IntegerProperty}
+ public Action getIntegerPropertyAction_0_0() { return cIntegerPropertyAction_0_0; }
+
+ //'int'
+ public Keyword getIntKeyword_0_1() { return cIntKeyword_0_1; }
+
+ //name=ValidID
+ public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+
+ //ValidID
+ public RuleCall getNameValidIDParserRuleCall_1_0() { return cNameValidIDParserRuleCall_1_0; }
+
+ //(':' value=IntegerValue)?
+ public Group getGroup_2() { return cGroup_2; }
+
+ //':'
+ public Keyword getColonKeyword_2_0() { return cColonKeyword_2_0; }
+
+ //value=IntegerValue
+ public Assignment getValueAssignment_2_1() { return cValueAssignment_2_1; }
+
+ //IntegerValue
+ public RuleCall getValueIntegerValueParserRuleCall_2_1_0() { return cValueIntegerValueParserRuleCall_2_1_0; }
+ }
+ public class LayoutManagerElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.LayoutManager");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final RuleCall cAlignedLayoutParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+ private final RuleCall cFixedPositionLayoutParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+
+ //LayoutManager rbaview::LayoutManager:
+ // AlignedLayout | FixedPositionLayout;
+ @Override public ParserRule getRule() { return rule; }
+
+ //AlignedLayout | FixedPositionLayout
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //AlignedLayout
+ public RuleCall getAlignedLayoutParserRuleCall_0() { return cAlignedLayoutParserRuleCall_0; }
+
+ //FixedPositionLayout
+ public RuleCall getFixedPositionLayoutParserRuleCall_1() { return cFixedPositionLayoutParserRuleCall_1; }
+ }
+ public class AlignedLayoutElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.AlignedLayout");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final RuleCall cVerticalLayoutParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+ private final RuleCall cHorizontalLayoutParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+
+ //AlignedLayout rbaview::AlignedLayout:
+ // VerticalLayout | HorizontalLayout;
+ @Override public ParserRule getRule() { return rule; }
+
+ //VerticalLayout | HorizontalLayout
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //VerticalLayout
+ public RuleCall getVerticalLayoutParserRuleCall_0() { return cVerticalLayoutParserRuleCall_0; }
+
+ //HorizontalLayout
+ public RuleCall getHorizontalLayoutParserRuleCall_1() { return cHorizontalLayoutParserRuleCall_1; }
+ }
+ public class TagElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.Tag");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Group cGroup_0 = (Group)cGroup.eContents().get(0);
+ private final Alternatives cAlternatives_0_0 = (Alternatives)cGroup_0.eContents().get(0);
+ private final Group cGroup_0_0_0 = (Group)cAlternatives_0_0.eContents().get(0);
+ private final Action cTagAction_0_0_0_0 = (Action)cGroup_0_0_0.eContents().get(0);
+ private final Keyword cLessThanSignLessThanSignKeyword_0_0_0_1 = (Keyword)cGroup_0_0_0.eContents().get(1);
+ private final Assignment cNameAssignment_0_0_0_2 = (Assignment)cGroup_0_0_0.eContents().get(2);
+ private final RuleCall cNameQualifiedNameParserRuleCall_0_0_0_2_0 = (RuleCall)cNameAssignment_0_0_0_2.eContents().get(0);
+ private final Keyword cGreaterThanSignGreaterThanSignKeyword_0_0_0_3 = (Keyword)cGroup_0_0_0.eContents().get(3);
+ private final Group cGroup_0_0_1 = (Group)cAlternatives_0_0.eContents().get(1);
+ private final Action cCTagAction_0_0_1_0 = (Action)cGroup_0_0_1.eContents().get(0);
+ private final Keyword cLeftPointingDoubleAngleQuotationMarkKeyword_0_0_1_1 = (Keyword)cGroup_0_0_1.eContents().get(1);
+ private final Assignment cNameAssignment_0_0_1_2 = (Assignment)cGroup_0_0_1.eContents().get(2);
+ private final RuleCall cNameQualifiedNameParserRuleCall_0_0_1_2_0 = (RuleCall)cNameAssignment_0_0_1_2.eContents().get(0);
+ private final Keyword cRightPointingDoubleAngleQuotationMarkKeyword_0_0_1_3 = (Keyword)cGroup_0_0_1.eContents().get(3);
+ private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+ private final Keyword cLeftCurlyBracketKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
+ private final Group cGroup_1_1 = (Group)cGroup_1.eContents().get(1);
+ private final Assignment cValuesAssignment_1_1_0 = (Assignment)cGroup_1_1.eContents().get(0);
+ private final RuleCall cValuesEStringParserRuleCall_1_1_0_0 = (RuleCall)cValuesAssignment_1_1_0.eContents().get(0);
+ private final Group cGroup_1_1_1 = (Group)cGroup_1_1.eContents().get(1);
+ private final Keyword cCommaKeyword_1_1_1_0 = (Keyword)cGroup_1_1_1.eContents().get(0);
+ private final Assignment cValuesAssignment_1_1_1_1 = (Assignment)cGroup_1_1_1.eContents().get(1);
+ private final RuleCall cValuesEStringParserRuleCall_1_1_1_1_0 = (RuleCall)cValuesAssignment_1_1_1_1.eContents().get(0);
+ private final Keyword cRightCurlyBracketKeyword_1_2 = (Keyword)cGroup_1.eContents().get(2);
+
+ ///* Structured Data Type */ Tag rbacore::Tag:
+ // => ({rbacore::Tag} '<<' name=QualifiedName '>>' | {CTag} '«' name=QualifiedName '»') ('{' (values+=EString (','
+ // values+=EString)*)? '}')?;
+ @Override public ParserRule getRule() { return rule; }
+
+ //=> ({rbacore::Tag} '<<' name=QualifiedName '>>' | {CTag} '«' name=QualifiedName '»') ('{' (values+=EString (','
+ //values+=EString)*)? '}')?
+ public Group getGroup() { return cGroup; }
+
+ //=> ({rbacore::Tag} '<<' name=QualifiedName '>>' | {CTag} '«' name=QualifiedName '»')
+ public Group getGroup_0() { return cGroup_0; }
+
+ //{rbacore::Tag} '<<' name=QualifiedName '>>' | {CTag} '«' name=QualifiedName '»'
+ public Alternatives getAlternatives_0_0() { return cAlternatives_0_0; }
+
+ //{rbacore::Tag} '<<' name=QualifiedName '>>'
+ public Group getGroup_0_0_0() { return cGroup_0_0_0; }
+
+ //{rbacore::Tag}
+ public Action getTagAction_0_0_0_0() { return cTagAction_0_0_0_0; }
+
+ //'<<'
+ public Keyword getLessThanSignLessThanSignKeyword_0_0_0_1() { return cLessThanSignLessThanSignKeyword_0_0_0_1; }
+
+ //name=QualifiedName
+ public Assignment getNameAssignment_0_0_0_2() { return cNameAssignment_0_0_0_2; }
+
+ //QualifiedName
+ public RuleCall getNameQualifiedNameParserRuleCall_0_0_0_2_0() { return cNameQualifiedNameParserRuleCall_0_0_0_2_0; }
+
+ //'>>'
+ public Keyword getGreaterThanSignGreaterThanSignKeyword_0_0_0_3() { return cGreaterThanSignGreaterThanSignKeyword_0_0_0_3; }
+
+ //{CTag} '«' name=QualifiedName '»'
+ public Group getGroup_0_0_1() { return cGroup_0_0_1; }
+
+ //{CTag}
+ public Action getCTagAction_0_0_1_0() { return cCTagAction_0_0_1_0; }
+
+ //'«'
+ public Keyword getLeftPointingDoubleAngleQuotationMarkKeyword_0_0_1_1() { return cLeftPointingDoubleAngleQuotationMarkKeyword_0_0_1_1; }
+
+ //name=QualifiedName
+ public Assignment getNameAssignment_0_0_1_2() { return cNameAssignment_0_0_1_2; }
+
+ //QualifiedName
+ public RuleCall getNameQualifiedNameParserRuleCall_0_0_1_2_0() { return cNameQualifiedNameParserRuleCall_0_0_1_2_0; }
+
+ //'»'
+ public Keyword getRightPointingDoubleAngleQuotationMarkKeyword_0_0_1_3() { return cRightPointingDoubleAngleQuotationMarkKeyword_0_0_1_3; }
+
+ //('{' (values+=EString (',' values+=EString)*)? '}')?
+ public Group getGroup_1() { return cGroup_1; }
+
+ //'{'
+ public Keyword getLeftCurlyBracketKeyword_1_0() { return cLeftCurlyBracketKeyword_1_0; }
+
+ //(values+=EString (',' values+=EString)*)?
+ public Group getGroup_1_1() { return cGroup_1_1; }
+
+ //values+=EString
+ public Assignment getValuesAssignment_1_1_0() { return cValuesAssignment_1_1_0; }
+
+ //EString
+ public RuleCall getValuesEStringParserRuleCall_1_1_0_0() { return cValuesEStringParserRuleCall_1_1_0_0; }
+
+ //(',' values+=EString)*
+ public Group getGroup_1_1_1() { return cGroup_1_1_1; }
+
+ //','
+ public Keyword getCommaKeyword_1_1_1_0() { return cCommaKeyword_1_1_1_0; }
+
+ //values+=EString
+ public Assignment getValuesAssignment_1_1_1_1() { return cValuesAssignment_1_1_1_1; }
+
+ //EString
+ public RuleCall getValuesEStringParserRuleCall_1_1_1_1_0() { return cValuesEStringParserRuleCall_1_1_1_1_0; }
+
+ //'}'
+ public Keyword getRightCurlyBracketKeyword_1_2() { return cRightCurlyBracketKeyword_1_2; }
+ }
+ public class PackageElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.Package");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cPackageAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cPackageKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cNameQualifiedNameParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
+ private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
+ private final UnorderedGroup cUnorderedGroup_4 = (UnorderedGroup)cGroup.eContents().get(4);
+ private final Group cGroup_4_0 = (Group)cUnorderedGroup_4.eContents().get(0);
+ private final Keyword cDescriptionKeyword_4_0_0 = (Keyword)cGroup_4_0.eContents().get(0);
+ private final Assignment cDescriptionAssignment_4_0_1 = (Assignment)cGroup_4_0.eContents().get(1);
+ private final RuleCall cDescriptionEStringParserRuleCall_4_0_1_0 = (RuleCall)cDescriptionAssignment_4_0_1.eContents().get(0);
+ private final Assignment cPackagableelementAssignment_4_1 = (Assignment)cUnorderedGroup_4.eContents().get(1);
+ private final RuleCall cPackagableelementPackagableElementParserRuleCall_4_1_0 = (RuleCall)cPackagableelementAssignment_4_1.eContents().get(0);
+ private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
+
+ //Package rbacore::Package:
+ // {rbacore::Package}
+ // 'Package'
+ // name=QualifiedName
+ // '{' (('description:' description=EString)? & packagableelement+=PackagableElement*) '}';
+ @Override public ParserRule getRule() { return rule; }
+
+ //{rbacore::Package} 'Package' name=QualifiedName '{' (('description:' description=EString)? &
+ //packagableelement+=PackagableElement*) '}'
+ public Group getGroup() { return cGroup; }
+
+ //{rbacore::Package}
+ public Action getPackageAction_0() { return cPackageAction_0; }
+
+ //'Package'
+ public Keyword getPackageKeyword_1() { return cPackageKeyword_1; }
+
+ //name=QualifiedName
+ public Assignment getNameAssignment_2() { return cNameAssignment_2; }
+
+ //QualifiedName
+ public RuleCall getNameQualifiedNameParserRuleCall_2_0() { return cNameQualifiedNameParserRuleCall_2_0; }
+
+ //'{'
+ public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }
+
+ //('description:' description=EString)? & packagableelement+=PackagableElement*
+ public UnorderedGroup getUnorderedGroup_4() { return cUnorderedGroup_4; }
+
+ //('description:' description=EString)?
+ public Group getGroup_4_0() { return cGroup_4_0; }
+
+ //'description:'
+ public Keyword getDescriptionKeyword_4_0_0() { return cDescriptionKeyword_4_0_0; }
+
+ //description=EString
+ public Assignment getDescriptionAssignment_4_0_1() { return cDescriptionAssignment_4_0_1; }
+
+ //EString
+ public RuleCall getDescriptionEStringParserRuleCall_4_0_1_0() { return cDescriptionEStringParserRuleCall_4_0_1_0; }
+
+ //packagableelement+=PackagableElement*
+ public Assignment getPackagableelementAssignment_4_1() { return cPackagableelementAssignment_4_1; }
+
+ //PackagableElement
+ public RuleCall getPackagableelementPackagableElementParserRuleCall_4_1_0() { return cPackagableelementPackagableElementParserRuleCall_4_1_0; }
+
+ //'}'
+ public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
+ }
+ public class StereotypeElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.Stereotype");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cStereotypeAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cStereotypeKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Keyword cLessThanSignKeyword_2 = (Keyword)cGroup.eContents().get(2);
+ private final Assignment cTargetModelNameAssignment_3 = (Assignment)cGroup.eContents().get(3);
+ private final RuleCall cTargetModelNameStereotypableElementNameParserRuleCall_3_0 = (RuleCall)cTargetModelNameAssignment_3.eContents().get(0);
+ private final Keyword cGreaterThanSignKeyword_4 = (Keyword)cGroup.eContents().get(4);
+ private final Assignment cNameAssignment_5 = (Assignment)cGroup.eContents().get(5);
+ private final RuleCall cNameQualifiedNameParserRuleCall_5_0 = (RuleCall)cNameAssignment_5.eContents().get(0);
+ private final Keyword cLeftParenthesisKeyword_6 = (Keyword)cGroup.eContents().get(6);
+ private final Group cGroup_7 = (Group)cGroup.eContents().get(7);
+ private final Assignment cVariablesAssignment_7_0 = (Assignment)cGroup_7.eContents().get(0);
+ private final RuleCall cVariablesVariableParserRuleCall_7_0_0 = (RuleCall)cVariablesAssignment_7_0.eContents().get(0);
+ private final Group cGroup_7_1 = (Group)cGroup_7.eContents().get(1);
+ private final Keyword cCommaKeyword_7_1_0 = (Keyword)cGroup_7_1.eContents().get(0);
+ private final Assignment cVariablesAssignment_7_1_1 = (Assignment)cGroup_7_1.eContents().get(1);
+ private final RuleCall cVariablesVariableParserRuleCall_7_1_1_0 = (RuleCall)cVariablesAssignment_7_1_1.eContents().get(0);
+ private final Keyword cRightParenthesisKeyword_8 = (Keyword)cGroup.eContents().get(8);
+ private final Assignment cBodyTextAssignment_9 = (Assignment)cGroup.eContents().get(9);
+ private final RuleCall cBodyTextRichStringParserRuleCall_9_0 = (RuleCall)cBodyTextAssignment_9.eContents().get(0);
+
+ ///* Structured Data Type */ Stereotype rbacore::Stereotype:
+ // {rbacore::Stereotype}
+ // 'Stereotype' '<' targetModelName=StereotypableElementName '>'
+ // name=QualifiedName
+ // '(' (variables+=Variable (',' variables+=Variable)*)? ')'
+ // bodyText=RichString?;
+ @Override public ParserRule getRule() { return rule; }
+
+ //{rbacore::Stereotype} 'Stereotype' '<' targetModelName=StereotypableElementName '>' name=QualifiedName '('
+ //(variables+=Variable (',' variables+=Variable)*)? ')' bodyText=RichString?
+ public Group getGroup() { return cGroup; }
+
+ //{rbacore::Stereotype}
+ public Action getStereotypeAction_0() { return cStereotypeAction_0; }
+
+ //'Stereotype'
+ public Keyword getStereotypeKeyword_1() { return cStereotypeKeyword_1; }
+
+ //'<'
+ public Keyword getLessThanSignKeyword_2() { return cLessThanSignKeyword_2; }
+
+ //targetModelName=StereotypableElementName
+ public Assignment getTargetModelNameAssignment_3() { return cTargetModelNameAssignment_3; }
+
+ //StereotypableElementName
+ public RuleCall getTargetModelNameStereotypableElementNameParserRuleCall_3_0() { return cTargetModelNameStereotypableElementNameParserRuleCall_3_0; }
+
+ //'>'
+ public Keyword getGreaterThanSignKeyword_4() { return cGreaterThanSignKeyword_4; }
+
+ //name=QualifiedName
+ public Assignment getNameAssignment_5() { return cNameAssignment_5; }
+
+ //QualifiedName
+ public RuleCall getNameQualifiedNameParserRuleCall_5_0() { return cNameQualifiedNameParserRuleCall_5_0; }
+
+ //'('
+ public Keyword getLeftParenthesisKeyword_6() { return cLeftParenthesisKeyword_6; }
+
+ //(variables+=Variable (',' variables+=Variable)*)?
+ public Group getGroup_7() { return cGroup_7; }
+
+ //variables+=Variable
+ public Assignment getVariablesAssignment_7_0() { return cVariablesAssignment_7_0; }
+
+ //Variable
+ public RuleCall getVariablesVariableParserRuleCall_7_0_0() { return cVariablesVariableParserRuleCall_7_0_0; }
+
+ //(',' variables+=Variable)*
+ public Group getGroup_7_1() { return cGroup_7_1; }
+
+ //','
+ public Keyword getCommaKeyword_7_1_0() { return cCommaKeyword_7_1_0; }
+
+ //variables+=Variable
+ public Assignment getVariablesAssignment_7_1_1() { return cVariablesAssignment_7_1_1; }
+
+ //Variable
+ public RuleCall getVariablesVariableParserRuleCall_7_1_1_0() { return cVariablesVariableParserRuleCall_7_1_1_0; }
+
+ //')'
+ public Keyword getRightParenthesisKeyword_8() { return cRightParenthesisKeyword_8; }
+
+ //bodyText=RichString?
+ public Assignment getBodyTextAssignment_9() { return cBodyTextAssignment_9; }
+
+ //RichString
+ public RuleCall getBodyTextRichStringParserRuleCall_9_0() { return cBodyTextRichStringParserRuleCall_9_0; }
+ }
+ public class StereotypableElementNameElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.StereotypableElementName");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final Keyword cAreaKeyword_0 = (Keyword)cAlternatives.eContents().get(0);
+ private final Keyword cZoneKeyword_1 = (Keyword)cAlternatives.eContents().get(1);
+ private final Keyword cSoundContentKeyword_2 = (Keyword)cAlternatives.eContents().get(2);
+ private final Keyword cViewContentKeyword_3 = (Keyword)cAlternatives.eContents().get(3);
+
+ //StereotypableElementName:
+ // 'Area' | 'Zone' | 'SoundContent' | 'ViewContent';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'Area' | 'Zone' | 'SoundContent' | 'ViewContent'
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //'Area'
+ public Keyword getAreaKeyword_0() { return cAreaKeyword_0; }
+
+ //'Zone'
+ public Keyword getZoneKeyword_1() { return cZoneKeyword_1; }
+
+ //'SoundContent'
+ public Keyword getSoundContentKeyword_2() { return cSoundContentKeyword_2; }
+
+ //'ViewContent'
+ public Keyword getViewContentKeyword_3() { return cViewContentKeyword_3; }
+ }
+ public class DisplayElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.Display");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cDisplayAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cDisplayKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cNameQualifiedNameParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
+ private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
+ private final UnorderedGroup cUnorderedGroup_4 = (UnorderedGroup)cGroup.eContents().get(4);
+ private final Group cGroup_4_0 = (Group)cUnorderedGroup_4.eContents().get(0);
+ private final Keyword cDescriptionKeyword_4_0_0 = (Keyword)cGroup_4_0.eContents().get(0);
+ private final Assignment cDescriptionAssignment_4_0_1 = (Assignment)cGroup_4_0.eContents().get(1);
+ private final RuleCall cDescriptionEStringParserRuleCall_4_0_1_0 = (RuleCall)cDescriptionAssignment_4_0_1.eContents().get(0);
+ private final Assignment cSizeAssignment_4_1 = (Assignment)cUnorderedGroup_4.eContents().get(1);
+ private final RuleCall cSizeSizeIdentifierParserRuleCall_4_1_0 = (RuleCall)cSizeAssignment_4_1.eContents().get(0);
+ private final Assignment cRootAssignment_4_2 = (Assignment)cUnorderedGroup_4.eContents().get(2);
+ private final RuleCall cRootCompositeAreaParserRuleCall_4_2_0 = (RuleCall)cRootAssignment_4_2.eContents().get(0);
+ private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
+
+ //Display rbaview::Display:
+ // {rbaview::Display}
+ // 'Display'
+ // name=QualifiedName
+ // '{' (('description:' description=EString)? & size=SizeIdentifier? & root=CompositeArea?) '}';
+ @Override public ParserRule getRule() { return rule; }
+
+ //{rbaview::Display} 'Display' name=QualifiedName '{' (('description:' description=EString)? & size=SizeIdentifier? &
+ //root=CompositeArea?) '}'
+ public Group getGroup() { return cGroup; }
+
+ //{rbaview::Display}
+ public Action getDisplayAction_0() { return cDisplayAction_0; }
+
+ //'Display'
+ public Keyword getDisplayKeyword_1() { return cDisplayKeyword_1; }
+
+ //name=QualifiedName
+ public Assignment getNameAssignment_2() { return cNameAssignment_2; }
+
+ //QualifiedName
+ public RuleCall getNameQualifiedNameParserRuleCall_2_0() { return cNameQualifiedNameParserRuleCall_2_0; }
+
+ //'{'
+ public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }
+
+ //('description:' description=EString)? & size=SizeIdentifier? & root=CompositeArea?
+ public UnorderedGroup getUnorderedGroup_4() { return cUnorderedGroup_4; }
+
+ //('description:' description=EString)?
+ public Group getGroup_4_0() { return cGroup_4_0; }
+
+ //'description:'
+ public Keyword getDescriptionKeyword_4_0_0() { return cDescriptionKeyword_4_0_0; }
+
+ //description=EString
+ public Assignment getDescriptionAssignment_4_0_1() { return cDescriptionAssignment_4_0_1; }
+
+ //EString
+ public RuleCall getDescriptionEStringParserRuleCall_4_0_1_0() { return cDescriptionEStringParserRuleCall_4_0_1_0; }
+
+ //size=SizeIdentifier?
+ public Assignment getSizeAssignment_4_1() { return cSizeAssignment_4_1; }
+
+ //SizeIdentifier
+ public RuleCall getSizeSizeIdentifierParserRuleCall_4_1_0() { return cSizeSizeIdentifierParserRuleCall_4_1_0; }
+
+ //root=CompositeArea?
+ public Assignment getRootAssignment_4_2() { return cRootAssignment_4_2; }
+
+ //CompositeArea
+ public RuleCall getRootCompositeAreaParserRuleCall_4_2_0() { return cRootCompositeAreaParserRuleCall_4_2_0; }
+
+ //'}'
+ public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
+ }
+ public class ConstraintElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.Constraint");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cConstraintAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cConstraintKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cNameQualifiedNameParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
+ private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
+ private final UnorderedGroup cUnorderedGroup_4 = (UnorderedGroup)cGroup.eContents().get(4);
+ private final Group cGroup_4_0 = (Group)cUnorderedGroup_4.eContents().get(0);
+ private final Keyword cDescriptionKeyword_4_0_0 = (Keyword)cGroup_4_0.eContents().get(0);
+ private final Assignment cDescriptionAssignment_4_0_1 = (Assignment)cGroup_4_0.eContents().get(1);
+ private final RuleCall cDescriptionEStringParserRuleCall_4_0_1_0 = (RuleCall)cDescriptionAssignment_4_0_1.eContents().get(0);
+ private final Group cGroup_4_1 = (Group)cUnorderedGroup_4.eContents().get(1);
+ private final Keyword cRuntimeKeyword_4_1_0 = (Keyword)cGroup_4_1.eContents().get(0);
+ private final Assignment cRuntimeAssignment_4_1_1 = (Assignment)cGroup_4_1.eContents().get(1);
+ private final RuleCall cRuntimeEBooleanParserRuleCall_4_1_1_0 = (RuleCall)cRuntimeAssignment_4_1_1.eContents().get(0);
+ private final Assignment cExpressionAssignment_4_2 = (Assignment)cUnorderedGroup_4.eContents().get(2);
+ private final RuleCall cExpressionComplexExpressionParserRuleCall_4_2_0 = (RuleCall)cExpressionAssignment_4_2.eContents().get(0);
+ private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
+
+ //Constraint rbacore::Constraint:
+ // {rbacore::Constraint}
+ // 'Constraint'
+ // name=QualifiedName
+ // '{' (('description:' description=EString)? & ('runtime:' runtime=EBoolean)? & expression=ComplexExpression?) '}';
+ @Override public ParserRule getRule() { return rule; }
+
+ //{rbacore::Constraint} 'Constraint' name=QualifiedName '{' (('description:' description=EString)? & ('runtime:'
+ //runtime=EBoolean)? & expression=ComplexExpression?) '}'
+ public Group getGroup() { return cGroup; }
+
+ //{rbacore::Constraint}
+ public Action getConstraintAction_0() { return cConstraintAction_0; }
+
+ //'Constraint'
+ public Keyword getConstraintKeyword_1() { return cConstraintKeyword_1; }
+
+ //name=QualifiedName
+ public Assignment getNameAssignment_2() { return cNameAssignment_2; }
+
+ //QualifiedName
+ public RuleCall getNameQualifiedNameParserRuleCall_2_0() { return cNameQualifiedNameParserRuleCall_2_0; }
+
+ //'{'
+ public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }
+
+ //('description:' description=EString)? & ('runtime:' runtime=EBoolean)? & expression=ComplexExpression?
+ public UnorderedGroup getUnorderedGroup_4() { return cUnorderedGroup_4; }
+
+ //('description:' description=EString)?
+ public Group getGroup_4_0() { return cGroup_4_0; }
+
+ //'description:'
+ public Keyword getDescriptionKeyword_4_0_0() { return cDescriptionKeyword_4_0_0; }
+
+ //description=EString
+ public Assignment getDescriptionAssignment_4_0_1() { return cDescriptionAssignment_4_0_1; }
+
+ //EString
+ public RuleCall getDescriptionEStringParserRuleCall_4_0_1_0() { return cDescriptionEStringParserRuleCall_4_0_1_0; }
+
+ //('runtime:' runtime=EBoolean)?
+ public Group getGroup_4_1() { return cGroup_4_1; }
+
+ //'runtime:'
+ public Keyword getRuntimeKeyword_4_1_0() { return cRuntimeKeyword_4_1_0; }
+
+ //runtime=EBoolean
+ public Assignment getRuntimeAssignment_4_1_1() { return cRuntimeAssignment_4_1_1; }
+
+ //EBoolean
+ public RuleCall getRuntimeEBooleanParserRuleCall_4_1_1_0() { return cRuntimeEBooleanParserRuleCall_4_1_1_0; }
+
+ //expression=ComplexExpression?
+ public Assignment getExpressionAssignment_4_2() { return cExpressionAssignment_4_2; }
+
+ //ComplexExpression
+ public RuleCall getExpressionComplexExpressionParserRuleCall_4_2_0() { return cExpressionComplexExpressionParserRuleCall_4_2_0; }
+
+ //'}'
+ public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
+ }
+ public class ViewContentElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.ViewContent");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cViewContentAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cViewContentKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cNameQualifiedNameParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
+ private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
+ private final UnorderedGroup cUnorderedGroup_4 = (UnorderedGroup)cGroup.eContents().get(4);
+ private final Group cGroup_4_0 = (Group)cUnorderedGroup_4.eContents().get(0);
+ private final Keyword cDescriptionKeyword_4_0_0 = (Keyword)cGroup_4_0.eContents().get(0);
+ private final Assignment cDescriptionAssignment_4_0_1 = (Assignment)cGroup_4_0.eContents().get(1);
+ private final RuleCall cDescriptionEStringParserRuleCall_4_0_1_0 = (RuleCall)cDescriptionAssignment_4_0_1.eContents().get(0);
+ private final Group cGroup_4_1 = (Group)cUnorderedGroup_4.eContents().get(1);
+ private final Keyword cLoserTypeKeyword_4_1_0 = (Keyword)cGroup_4_1.eContents().get(0);
+ private final Assignment cLoserTypeAssignment_4_1_1 = (Assignment)cGroup_4_1.eContents().get(1);
+ private final RuleCall cLoserTypeLoserTypeEnumRuleCall_4_1_1_0 = (RuleCall)cLoserTypeAssignment_4_1_1.eContents().get(0);
+ private final Group cGroup_4_2 = (Group)cUnorderedGroup_4.eContents().get(2);
+ private final Keyword cAllocatableKeyword_4_2_0 = (Keyword)cGroup_4_2.eContents().get(0);
+ private final Keyword cLeftSquareBracketKeyword_4_2_1 = (Keyword)cGroup_4_2.eContents().get(1);
+ private final Group cGroup_4_2_2 = (Group)cGroup_4_2.eContents().get(2);
+ private final Assignment cAllocatableAssignment_4_2_2_0 = (Assignment)cGroup_4_2_2.eContents().get(0);
+ private final CrossReference cAllocatableAbstractAllocatableCrossReference_4_2_2_0_0 = (CrossReference)cAllocatableAssignment_4_2_2_0.eContents().get(0);
+ private final RuleCall cAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_0_0_1 = (RuleCall)cAllocatableAbstractAllocatableCrossReference_4_2_2_0_0.eContents().get(1);
+ private final Group cGroup_4_2_2_1 = (Group)cGroup_4_2_2.eContents().get(1);
+ private final Keyword cCommaKeyword_4_2_2_1_0 = (Keyword)cGroup_4_2_2_1.eContents().get(0);
+ private final Assignment cAllocatableAssignment_4_2_2_1_1 = (Assignment)cGroup_4_2_2_1.eContents().get(1);
+ private final CrossReference cAllocatableAbstractAllocatableCrossReference_4_2_2_1_1_0 = (CrossReference)cAllocatableAssignment_4_2_2_1_1.eContents().get(0);
+ private final RuleCall cAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_1_1_0_1 = (RuleCall)cAllocatableAbstractAllocatableCrossReference_4_2_2_1_1_0.eContents().get(1);
+ private final Keyword cRightSquareBracketKeyword_4_2_3 = (Keyword)cGroup_4_2.eContents().get(3);
+ private final Assignment cStatesAssignment_4_3 = (Assignment)cUnorderedGroup_4.eContents().get(3);
+ private final RuleCall cStatesViewContentStateParserRuleCall_4_3_0 = (RuleCall)cStatesAssignment_4_3.eContents().get(0);
+ private final Assignment cSizeAssignment_4_4 = (Assignment)cUnorderedGroup_4.eContents().get(4);
+ private final RuleCall cSizeSizeIdentifierParserRuleCall_4_4_0 = (RuleCall)cSizeAssignment_4_4.eContents().get(0);
+ private final Assignment cTagsAssignment_4_5 = (Assignment)cUnorderedGroup_4.eContents().get(5);
+ private final RuleCall cTagsTagParserRuleCall_4_5_0 = (RuleCall)cTagsAssignment_4_5.eContents().get(0);
+ private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
+
+ //ViewContent rbaview::ViewContent:
+ // {rbaview::ViewContent}
+ // 'ViewContent'
+ // name=QualifiedName
+ // '{' (('description:' description=EString)? & ('loserType:' loserType=LoserType)? & ('allocatable:' '['
+ // (allocatable+=[rbacore::AbstractAllocatable|QualifiedName] (","
+ // allocatable+=[rbacore::AbstractAllocatable|QualifiedName])*)? ']')? & states+=ViewContentState* &
+ // size+=SizeIdentifier* & tags+=Tag*) '}';
+ @Override public ParserRule getRule() { return rule; }
+
+ //{rbaview::ViewContent} 'ViewContent' name=QualifiedName '{' (('description:' description=EString)? & ('loserType:'
+ //loserType=LoserType)? & ('allocatable:' '[' (allocatable+=[rbacore::AbstractAllocatable|QualifiedName] (","
+ //allocatable+=[rbacore::AbstractAllocatable|QualifiedName])*)? ']')? & states+=ViewContentState* &
+ //size+=SizeIdentifier* & tags+=Tag*) '}'
+ public Group getGroup() { return cGroup; }
+
+ //{rbaview::ViewContent}
+ public Action getViewContentAction_0() { return cViewContentAction_0; }
+
+ //'ViewContent'
+ public Keyword getViewContentKeyword_1() { return cViewContentKeyword_1; }
+
+ //name=QualifiedName
+ public Assignment getNameAssignment_2() { return cNameAssignment_2; }
+
+ //QualifiedName
+ public RuleCall getNameQualifiedNameParserRuleCall_2_0() { return cNameQualifiedNameParserRuleCall_2_0; }
+
+ //'{'
+ public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }
+
+ //('description:' description=EString)? & ('loserType:' loserType=LoserType)? & ('allocatable:' '['
+ //(allocatable+=[rbacore::AbstractAllocatable|QualifiedName] (","
+ //allocatable+=[rbacore::AbstractAllocatable|QualifiedName])*)? ']')? & states+=ViewContentState* &
+ //size+=SizeIdentifier* & tags+=Tag*
+ public UnorderedGroup getUnorderedGroup_4() { return cUnorderedGroup_4; }
+
+ //('description:' description=EString)?
+ public Group getGroup_4_0() { return cGroup_4_0; }
+
+ //'description:'
+ public Keyword getDescriptionKeyword_4_0_0() { return cDescriptionKeyword_4_0_0; }
+
+ //description=EString
+ public Assignment getDescriptionAssignment_4_0_1() { return cDescriptionAssignment_4_0_1; }
+
+ //EString
+ public RuleCall getDescriptionEStringParserRuleCall_4_0_1_0() { return cDescriptionEStringParserRuleCall_4_0_1_0; }
+
+ //('loserType:' loserType=LoserType)?
+ public Group getGroup_4_1() { return cGroup_4_1; }
+
+ //'loserType:'
+ public Keyword getLoserTypeKeyword_4_1_0() { return cLoserTypeKeyword_4_1_0; }
+
+ //loserType=LoserType
+ public Assignment getLoserTypeAssignment_4_1_1() { return cLoserTypeAssignment_4_1_1; }
+
+ //LoserType
+ public RuleCall getLoserTypeLoserTypeEnumRuleCall_4_1_1_0() { return cLoserTypeLoserTypeEnumRuleCall_4_1_1_0; }
+
+ //('allocatable:' '[' (allocatable+=[rbacore::AbstractAllocatable|QualifiedName] (","
+ //allocatable+=[rbacore::AbstractAllocatable|QualifiedName])*)? ']')?
+ public Group getGroup_4_2() { return cGroup_4_2; }
+
+ //'allocatable:'
+ public Keyword getAllocatableKeyword_4_2_0() { return cAllocatableKeyword_4_2_0; }
+
+ //'['
+ public Keyword getLeftSquareBracketKeyword_4_2_1() { return cLeftSquareBracketKeyword_4_2_1; }
+
+ //(allocatable+=[rbacore::AbstractAllocatable|QualifiedName] (","
+ //allocatable+=[rbacore::AbstractAllocatable|QualifiedName])*)?
+ public Group getGroup_4_2_2() { return cGroup_4_2_2; }
+
+ //allocatable+=[rbacore::AbstractAllocatable|QualifiedName]
+ public Assignment getAllocatableAssignment_4_2_2_0() { return cAllocatableAssignment_4_2_2_0; }
+
+ //[rbacore::AbstractAllocatable|QualifiedName]
+ public CrossReference getAllocatableAbstractAllocatableCrossReference_4_2_2_0_0() { return cAllocatableAbstractAllocatableCrossReference_4_2_2_0_0; }
+
+ //QualifiedName
+ public RuleCall getAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_0_0_1() { return cAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_0_0_1; }
+
+ //("," allocatable+=[rbacore::AbstractAllocatable|QualifiedName])*
+ public Group getGroup_4_2_2_1() { return cGroup_4_2_2_1; }
+
+ //","
+ public Keyword getCommaKeyword_4_2_2_1_0() { return cCommaKeyword_4_2_2_1_0; }
+
+ //allocatable+=[rbacore::AbstractAllocatable|QualifiedName]
+ public Assignment getAllocatableAssignment_4_2_2_1_1() { return cAllocatableAssignment_4_2_2_1_1; }
+
+ //[rbacore::AbstractAllocatable|QualifiedName]
+ public CrossReference getAllocatableAbstractAllocatableCrossReference_4_2_2_1_1_0() { return cAllocatableAbstractAllocatableCrossReference_4_2_2_1_1_0; }
+
+ //QualifiedName
+ public RuleCall getAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_1_1_0_1() { return cAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_1_1_0_1; }
+
+ //']'
+ public Keyword getRightSquareBracketKeyword_4_2_3() { return cRightSquareBracketKeyword_4_2_3; }
+
+ //states+=ViewContentState*
+ public Assignment getStatesAssignment_4_3() { return cStatesAssignment_4_3; }
+
+ //ViewContentState
+ public RuleCall getStatesViewContentStateParserRuleCall_4_3_0() { return cStatesViewContentStateParserRuleCall_4_3_0; }
+
+ //size+=SizeIdentifier*
+ public Assignment getSizeAssignment_4_4() { return cSizeAssignment_4_4; }
+
+ //SizeIdentifier
+ public RuleCall getSizeSizeIdentifierParserRuleCall_4_4_0() { return cSizeSizeIdentifierParserRuleCall_4_4_0; }
+
+ //tags+=Tag*
+ public Assignment getTagsAssignment_4_5() { return cTagsAssignment_4_5; }
+
+ //Tag
+ public RuleCall getTagsTagParserRuleCall_4_5_0() { return cTagsTagParserRuleCall_4_5_0; }
+
+ //'}'
+ public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
+ }
+ public class SoundContentElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.SoundContent");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cSoundContentAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cSoundContentKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cNameQualifiedNameParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
+ private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
+ private final UnorderedGroup cUnorderedGroup_4 = (UnorderedGroup)cGroup.eContents().get(4);
+ private final Group cGroup_4_0 = (Group)cUnorderedGroup_4.eContents().get(0);
+ private final Keyword cDescriptionKeyword_4_0_0 = (Keyword)cGroup_4_0.eContents().get(0);
+ private final Assignment cDescriptionAssignment_4_0_1 = (Assignment)cGroup_4_0.eContents().get(1);
+ private final RuleCall cDescriptionEStringParserRuleCall_4_0_1_0 = (RuleCall)cDescriptionAssignment_4_0_1.eContents().get(0);
+ private final Group cGroup_4_1 = (Group)cUnorderedGroup_4.eContents().get(1);
+ private final Keyword cLoserTypeKeyword_4_1_0 = (Keyword)cGroup_4_1.eContents().get(0);
+ private final Assignment cLoserTypeAssignment_4_1_1 = (Assignment)cGroup_4_1.eContents().get(1);
+ private final RuleCall cLoserTypeLoserTypeEnumRuleCall_4_1_1_0 = (RuleCall)cLoserTypeAssignment_4_1_1.eContents().get(0);
+ private final Group cGroup_4_2 = (Group)cUnorderedGroup_4.eContents().get(2);
+ private final Keyword cAllocatableKeyword_4_2_0 = (Keyword)cGroup_4_2.eContents().get(0);
+ private final Keyword cLeftSquareBracketKeyword_4_2_1 = (Keyword)cGroup_4_2.eContents().get(1);
+ private final Group cGroup_4_2_2 = (Group)cGroup_4_2.eContents().get(2);
+ private final Assignment cAllocatableAssignment_4_2_2_0 = (Assignment)cGroup_4_2_2.eContents().get(0);
+ private final CrossReference cAllocatableAbstractAllocatableCrossReference_4_2_2_0_0 = (CrossReference)cAllocatableAssignment_4_2_2_0.eContents().get(0);
+ private final RuleCall cAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_0_0_1 = (RuleCall)cAllocatableAbstractAllocatableCrossReference_4_2_2_0_0.eContents().get(1);
+ private final Group cGroup_4_2_2_1 = (Group)cGroup_4_2_2.eContents().get(1);
+ private final Keyword cCommaKeyword_4_2_2_1_0 = (Keyword)cGroup_4_2_2_1.eContents().get(0);
+ private final Assignment cAllocatableAssignment_4_2_2_1_1 = (Assignment)cGroup_4_2_2_1.eContents().get(1);
+ private final CrossReference cAllocatableAbstractAllocatableCrossReference_4_2_2_1_1_0 = (CrossReference)cAllocatableAssignment_4_2_2_1_1.eContents().get(0);
+ private final RuleCall cAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_1_1_0_1 = (RuleCall)cAllocatableAbstractAllocatableCrossReference_4_2_2_1_1_0.eContents().get(1);
+ private final Keyword cRightSquareBracketKeyword_4_2_3 = (Keyword)cGroup_4_2.eContents().get(3);
+ private final Assignment cStatesAssignment_4_3 = (Assignment)cUnorderedGroup_4.eContents().get(3);
+ private final RuleCall cStatesSoundContentStateParserRuleCall_4_3_0 = (RuleCall)cStatesAssignment_4_3.eContents().get(0);
+ private final Assignment cTagsAssignment_4_4 = (Assignment)cUnorderedGroup_4.eContents().get(4);
+ private final RuleCall cTagsTagParserRuleCall_4_4_0 = (RuleCall)cTagsAssignment_4_4.eContents().get(0);
+ private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
+
+ //SoundContent rbasound::SoundContent:
+ // {rbasound::SoundContent}
+ // 'SoundContent'
+ // name=QualifiedName
+ // '{' (('description:' description=EString)? & ('loserType:' loserType=LoserType)? & ('allocatable:' '['
+ // (allocatable+=[rbacore::AbstractAllocatable|QualifiedName] (","
+ // allocatable+=[rbacore::AbstractAllocatable|QualifiedName])*)? ']')? & states+=SoundContentState* & tags+=Tag*) '}';
+ @Override public ParserRule getRule() { return rule; }
+
+ //{rbasound::SoundContent} 'SoundContent' name=QualifiedName '{' (('description:' description=EString)? & ('loserType:'
+ //loserType=LoserType)? & ('allocatable:' '[' (allocatable+=[rbacore::AbstractAllocatable|QualifiedName] (","
+ //allocatable+=[rbacore::AbstractAllocatable|QualifiedName])*)? ']')? & states+=SoundContentState* & tags+=Tag*) '}'
+ public Group getGroup() { return cGroup; }
+
+ //{rbasound::SoundContent}
+ public Action getSoundContentAction_0() { return cSoundContentAction_0; }
+
+ //'SoundContent'
+ public Keyword getSoundContentKeyword_1() { return cSoundContentKeyword_1; }
+
+ //name=QualifiedName
+ public Assignment getNameAssignment_2() { return cNameAssignment_2; }
+
+ //QualifiedName
+ public RuleCall getNameQualifiedNameParserRuleCall_2_0() { return cNameQualifiedNameParserRuleCall_2_0; }
+
+ //'{'
+ public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }
+
+ //('description:' description=EString)? & ('loserType:' loserType=LoserType)? & ('allocatable:' '['
+ //(allocatable+=[rbacore::AbstractAllocatable|QualifiedName] (","
+ //allocatable+=[rbacore::AbstractAllocatable|QualifiedName])*)? ']')? & states+=SoundContentState* & tags+=Tag*
+ public UnorderedGroup getUnorderedGroup_4() { return cUnorderedGroup_4; }
+
+ //('description:' description=EString)?
+ public Group getGroup_4_0() { return cGroup_4_0; }
+
+ //'description:'
+ public Keyword getDescriptionKeyword_4_0_0() { return cDescriptionKeyword_4_0_0; }
+
+ //description=EString
+ public Assignment getDescriptionAssignment_4_0_1() { return cDescriptionAssignment_4_0_1; }
+
+ //EString
+ public RuleCall getDescriptionEStringParserRuleCall_4_0_1_0() { return cDescriptionEStringParserRuleCall_4_0_1_0; }
+
+ //('loserType:' loserType=LoserType)?
+ public Group getGroup_4_1() { return cGroup_4_1; }
+
+ //'loserType:'
+ public Keyword getLoserTypeKeyword_4_1_0() { return cLoserTypeKeyword_4_1_0; }
+
+ //loserType=LoserType
+ public Assignment getLoserTypeAssignment_4_1_1() { return cLoserTypeAssignment_4_1_1; }
+
+ //LoserType
+ public RuleCall getLoserTypeLoserTypeEnumRuleCall_4_1_1_0() { return cLoserTypeLoserTypeEnumRuleCall_4_1_1_0; }
+
+ //('allocatable:' '[' (allocatable+=[rbacore::AbstractAllocatable|QualifiedName] (","
+ //allocatable+=[rbacore::AbstractAllocatable|QualifiedName])*)? ']')?
+ public Group getGroup_4_2() { return cGroup_4_2; }
+
+ //'allocatable:'
+ public Keyword getAllocatableKeyword_4_2_0() { return cAllocatableKeyword_4_2_0; }
+
+ //'['
+ public Keyword getLeftSquareBracketKeyword_4_2_1() { return cLeftSquareBracketKeyword_4_2_1; }
+
+ //(allocatable+=[rbacore::AbstractAllocatable|QualifiedName] (","
+ //allocatable+=[rbacore::AbstractAllocatable|QualifiedName])*)?
+ public Group getGroup_4_2_2() { return cGroup_4_2_2; }
+
+ //allocatable+=[rbacore::AbstractAllocatable|QualifiedName]
+ public Assignment getAllocatableAssignment_4_2_2_0() { return cAllocatableAssignment_4_2_2_0; }
+
+ //[rbacore::AbstractAllocatable|QualifiedName]
+ public CrossReference getAllocatableAbstractAllocatableCrossReference_4_2_2_0_0() { return cAllocatableAbstractAllocatableCrossReference_4_2_2_0_0; }
+
+ //QualifiedName
+ public RuleCall getAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_0_0_1() { return cAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_0_0_1; }
+
+ //("," allocatable+=[rbacore::AbstractAllocatable|QualifiedName])*
+ public Group getGroup_4_2_2_1() { return cGroup_4_2_2_1; }
+
+ //","
+ public Keyword getCommaKeyword_4_2_2_1_0() { return cCommaKeyword_4_2_2_1_0; }
+
+ //allocatable+=[rbacore::AbstractAllocatable|QualifiedName]
+ public Assignment getAllocatableAssignment_4_2_2_1_1() { return cAllocatableAssignment_4_2_2_1_1; }
+
+ //[rbacore::AbstractAllocatable|QualifiedName]
+ public CrossReference getAllocatableAbstractAllocatableCrossReference_4_2_2_1_1_0() { return cAllocatableAbstractAllocatableCrossReference_4_2_2_1_1_0; }
+
+ //QualifiedName
+ public RuleCall getAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_1_1_0_1() { return cAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_1_1_0_1; }
+
+ //']'
+ public Keyword getRightSquareBracketKeyword_4_2_3() { return cRightSquareBracketKeyword_4_2_3; }
+
+ //states+=SoundContentState*
+ public Assignment getStatesAssignment_4_3() { return cStatesAssignment_4_3; }
+
+ //SoundContentState
+ public RuleCall getStatesSoundContentStateParserRuleCall_4_3_0() { return cStatesSoundContentStateParserRuleCall_4_3_0; }
+
+ //tags+=Tag*
+ public Assignment getTagsAssignment_4_4() { return cTagsAssignment_4_4; }
+
+ //Tag
+ public RuleCall getTagsTagParserRuleCall_4_4_0() { return cTagsTagParserRuleCall_4_4_0; }
+
+ //'}'
+ public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
+ }
+ public class SizeElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.Size");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cSizeAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cSizeKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cNameQualifiedNameParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
+ private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
+ private final UnorderedGroup cUnorderedGroup_4 = (UnorderedGroup)cGroup.eContents().get(4);
+ private final Group cGroup_4_0 = (Group)cUnorderedGroup_4.eContents().get(0);
+ private final Keyword cDescriptionKeyword_4_0_0 = (Keyword)cGroup_4_0.eContents().get(0);
+ private final Assignment cDescriptionAssignment_4_0_1 = (Assignment)cGroup_4_0.eContents().get(1);
+ private final RuleCall cDescriptionEStringParserRuleCall_4_0_1_0 = (RuleCall)cDescriptionAssignment_4_0_1.eContents().get(0);
+ private final Group cGroup_4_1 = (Group)cUnorderedGroup_4.eContents().get(1);
+ private final Keyword cWidthKeyword_4_1_0 = (Keyword)cGroup_4_1.eContents().get(0);
+ private final Assignment cWidthAssignment_4_1_1 = (Assignment)cGroup_4_1.eContents().get(1);
+ private final RuleCall cWidthEIntParserRuleCall_4_1_1_0 = (RuleCall)cWidthAssignment_4_1_1.eContents().get(0);
+ private final Group cGroup_4_2 = (Group)cUnorderedGroup_4.eContents().get(2);
+ private final Keyword cHeightKeyword_4_2_0 = (Keyword)cGroup_4_2.eContents().get(0);
+ private final Assignment cHeightAssignment_4_2_1 = (Assignment)cGroup_4_2.eContents().get(1);
+ private final RuleCall cHeightEIntParserRuleCall_4_2_1_0 = (RuleCall)cHeightAssignment_4_2_1.eContents().get(0);
+ private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
+
+ //Size rbaview::Size:
+ // {rbaview::Size}
+ // 'Size'
+ // name=QualifiedName
+ // '{' (('description:' description=EString)? & ('width:' width=EInt)? & ('height:' height=EInt)?) '}';
+ @Override public ParserRule getRule() { return rule; }
+
+ //{rbaview::Size} 'Size' name=QualifiedName '{' (('description:' description=EString)? & ('width:' width=EInt)? &
+ //('height:' height=EInt)?) '}'
+ public Group getGroup() { return cGroup; }
+
+ //{rbaview::Size}
+ public Action getSizeAction_0() { return cSizeAction_0; }
+
+ //'Size'
+ public Keyword getSizeKeyword_1() { return cSizeKeyword_1; }
+
+ //name=QualifiedName
+ public Assignment getNameAssignment_2() { return cNameAssignment_2; }
+
+ //QualifiedName
+ public RuleCall getNameQualifiedNameParserRuleCall_2_0() { return cNameQualifiedNameParserRuleCall_2_0; }
+
+ //'{'
+ public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }
+
+ //('description:' description=EString)? & ('width:' width=EInt)? & ('height:' height=EInt)?
+ public UnorderedGroup getUnorderedGroup_4() { return cUnorderedGroup_4; }
+
+ //('description:' description=EString)?
+ public Group getGroup_4_0() { return cGroup_4_0; }
+
+ //'description:'
+ public Keyword getDescriptionKeyword_4_0_0() { return cDescriptionKeyword_4_0_0; }
+
+ //description=EString
+ public Assignment getDescriptionAssignment_4_0_1() { return cDescriptionAssignment_4_0_1; }
+
+ //EString
+ public RuleCall getDescriptionEStringParserRuleCall_4_0_1_0() { return cDescriptionEStringParserRuleCall_4_0_1_0; }
+
+ //('width:' width=EInt)?
+ public Group getGroup_4_1() { return cGroup_4_1; }
+
+ //'width:'
+ public Keyword getWidthKeyword_4_1_0() { return cWidthKeyword_4_1_0; }
+
+ //width=EInt
+ public Assignment getWidthAssignment_4_1_1() { return cWidthAssignment_4_1_1; }
+
+ //EInt
+ public RuleCall getWidthEIntParserRuleCall_4_1_1_0() { return cWidthEIntParserRuleCall_4_1_1_0; }
+
+ //('height:' height=EInt)?
+ public Group getGroup_4_2() { return cGroup_4_2; }
+
+ //'height:'
+ public Keyword getHeightKeyword_4_2_0() { return cHeightKeyword_4_2_0; }
+
+ //height=EInt
+ public Assignment getHeightAssignment_4_2_1() { return cHeightAssignment_4_2_1; }
+
+ //EInt
+ public RuleCall getHeightEIntParserRuleCall_4_2_1_0() { return cHeightEIntParserRuleCall_4_2_1_0; }
+
+ //'}'
+ public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
+ }
+ public class SizeReferenceElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.SizeReference");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cSizeReferenceAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cSizeReferenceKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cSizeAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final CrossReference cSizeSizeCrossReference_2_0 = (CrossReference)cSizeAssignment_2.eContents().get(0);
+ private final RuleCall cSizeSizeQualifiedNameParserRuleCall_2_0_1 = (RuleCall)cSizeSizeCrossReference_2_0.eContents().get(1);
+
+ //SizeReference rbaview::SizeReference:
+ // {rbaview::SizeReference}
+ // 'sizeReference:' size=[rbaview::Size|QualifiedName];
+ @Override public ParserRule getRule() { return rule; }
+
+ //{rbaview::SizeReference} 'sizeReference:' size=[rbaview::Size|QualifiedName]
+ public Group getGroup() { return cGroup; }
+
+ //{rbaview::SizeReference}
+ public Action getSizeReferenceAction_0() { return cSizeReferenceAction_0; }
+
+ //'sizeReference:'
+ public Keyword getSizeReferenceKeyword_1() { return cSizeReferenceKeyword_1; }
+
+ //size=[rbaview::Size|QualifiedName]
+ public Assignment getSizeAssignment_2() { return cSizeAssignment_2; }
+
+ //[rbaview::Size|QualifiedName]
+ public CrossReference getSizeSizeCrossReference_2_0() { return cSizeSizeCrossReference_2_0; }
+
+ //QualifiedName
+ public RuleCall getSizeSizeQualifiedNameParserRuleCall_2_0_1() { return cSizeSizeQualifiedNameParserRuleCall_2_0_1; }
+ }
+ public class OffsetElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.Offset");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cOffsetAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cOffsetKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
+ private final UnorderedGroup cUnorderedGroup_3 = (UnorderedGroup)cGroup.eContents().get(3);
+ private final Group cGroup_3_0 = (Group)cUnorderedGroup_3.eContents().get(0);
+ private final Keyword cDescriptionKeyword_3_0_0 = (Keyword)cGroup_3_0.eContents().get(0);
+ private final Assignment cDescriptionAssignment_3_0_1 = (Assignment)cGroup_3_0.eContents().get(1);
+ private final RuleCall cDescriptionEStringParserRuleCall_3_0_1_0 = (RuleCall)cDescriptionAssignment_3_0_1.eContents().get(0);
+ private final Group cGroup_3_1 = (Group)cUnorderedGroup_3.eContents().get(1);
+ private final Keyword cXKeyword_3_1_0 = (Keyword)cGroup_3_1.eContents().get(0);
+ private final Assignment cXAssignment_3_1_1 = (Assignment)cGroup_3_1.eContents().get(1);
+ private final RuleCall cXEIntParserRuleCall_3_1_1_0 = (RuleCall)cXAssignment_3_1_1.eContents().get(0);
+ private final Group cGroup_3_2 = (Group)cUnorderedGroup_3.eContents().get(2);
+ private final Keyword cYKeyword_3_2_0 = (Keyword)cGroup_3_2.eContents().get(0);
+ private final Assignment cYAssignment_3_2_1 = (Assignment)cGroup_3_2.eContents().get(1);
+ private final RuleCall cYEIntParserRuleCall_3_2_1_0 = (RuleCall)cYAssignment_3_2_1.eContents().get(0);
+ private final Assignment cSizeAssignment_3_3 = (Assignment)cUnorderedGroup_3.eContents().get(3);
+ private final RuleCall cSizeSizeReferenceParserRuleCall_3_3_0 = (RuleCall)cSizeAssignment_3_3.eContents().get(0);
+ private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
+
+ //Offset rbaview::Offset:
+ // {rbaview::Offset}
+ // 'Offset'
+ // '{' (('description:' description=EString)? & ('x:' x=EInt)? & ('y:' y=EInt)? & size=SizeReference?) '}';
+ @Override public ParserRule getRule() { return rule; }
+
+ //{rbaview::Offset} 'Offset' '{' (('description:' description=EString)? & ('x:' x=EInt)? & ('y:' y=EInt)? &
+ //size=SizeReference?) '}'
+ public Group getGroup() { return cGroup; }
+
+ //{rbaview::Offset}
+ public Action getOffsetAction_0() { return cOffsetAction_0; }
+
+ //'Offset'
+ public Keyword getOffsetKeyword_1() { return cOffsetKeyword_1; }
+
+ //'{'
+ public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }
+
+ //('description:' description=EString)? & ('x:' x=EInt)? & ('y:' y=EInt)? & size=SizeReference?
+ public UnorderedGroup getUnorderedGroup_3() { return cUnorderedGroup_3; }
+
+ //('description:' description=EString)?
+ public Group getGroup_3_0() { return cGroup_3_0; }
+
+ //'description:'
+ public Keyword getDescriptionKeyword_3_0_0() { return cDescriptionKeyword_3_0_0; }
+
+ //description=EString
+ public Assignment getDescriptionAssignment_3_0_1() { return cDescriptionAssignment_3_0_1; }
+
+ //EString
+ public RuleCall getDescriptionEStringParserRuleCall_3_0_1_0() { return cDescriptionEStringParserRuleCall_3_0_1_0; }
+
+ //('x:' x=EInt)?
+ public Group getGroup_3_1() { return cGroup_3_1; }
+
+ //'x:'
+ public Keyword getXKeyword_3_1_0() { return cXKeyword_3_1_0; }
+
+ //x=EInt
+ public Assignment getXAssignment_3_1_1() { return cXAssignment_3_1_1; }
+
+ //EInt
+ public RuleCall getXEIntParserRuleCall_3_1_1_0() { return cXEIntParserRuleCall_3_1_1_0; }
+
+ //('y:' y=EInt)?
+ public Group getGroup_3_2() { return cGroup_3_2; }
+
+ //'y:'
+ public Keyword getYKeyword_3_2_0() { return cYKeyword_3_2_0; }
+
+ //y=EInt
+ public Assignment getYAssignment_3_2_1() { return cYAssignment_3_2_1; }
+
+ //EInt
+ public RuleCall getYEIntParserRuleCall_3_2_1_0() { return cYEIntParserRuleCall_3_2_1_0; }
+
+ //size=SizeReference?
+ public Assignment getSizeAssignment_3_3() { return cSizeAssignment_3_3; }
+
+ //SizeReference
+ public RuleCall getSizeSizeReferenceParserRuleCall_3_3_0() { return cSizeSizeReferenceParserRuleCall_3_3_0; }
+
+ //'}'
+ public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
+ }
+ public class AreaSetElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.AreaSet");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cAreaSetAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cAreaSetKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cNameQualifiedNameParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
+ private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
+ private final UnorderedGroup cUnorderedGroup_4 = (UnorderedGroup)cGroup.eContents().get(4);
+ private final Group cGroup_4_0 = (Group)cUnorderedGroup_4.eContents().get(0);
+ private final Keyword cDescriptionKeyword_4_0_0 = (Keyword)cGroup_4_0.eContents().get(0);
+ private final Assignment cDescriptionAssignment_4_0_1 = (Assignment)cGroup_4_0.eContents().get(1);
+ private final RuleCall cDescriptionEStringParserRuleCall_4_0_1_0 = (RuleCall)cDescriptionAssignment_4_0_1.eContents().get(0);
+ private final Group cGroup_4_1 = (Group)cUnorderedGroup_4.eContents().get(1);
+ private final Keyword cTargetKeyword_4_1_0 = (Keyword)cGroup_4_1.eContents().get(0);
+ private final Keyword cLeftSquareBracketKeyword_4_1_1 = (Keyword)cGroup_4_1.eContents().get(1);
+ private final Group cGroup_4_1_2 = (Group)cGroup_4_1.eContents().get(2);
+ private final Assignment cTargetAssignment_4_1_2_0 = (Assignment)cGroup_4_1_2.eContents().get(0);
+ private final CrossReference cTargetAbstractAllocatableCrossReference_4_1_2_0_0 = (CrossReference)cTargetAssignment_4_1_2_0.eContents().get(0);
+ private final RuleCall cTargetAbstractAllocatableQualifiedNameParserRuleCall_4_1_2_0_0_1 = (RuleCall)cTargetAbstractAllocatableCrossReference_4_1_2_0_0.eContents().get(1);
+ private final Group cGroup_4_1_2_1 = (Group)cGroup_4_1_2.eContents().get(1);
+ private final Keyword cCommaKeyword_4_1_2_1_0 = (Keyword)cGroup_4_1_2_1.eContents().get(0);
+ private final Assignment cTargetAssignment_4_1_2_1_1 = (Assignment)cGroup_4_1_2_1.eContents().get(1);
+ private final CrossReference cTargetAbstractAllocatableCrossReference_4_1_2_1_1_0 = (CrossReference)cTargetAssignment_4_1_2_1_1.eContents().get(0);
+ private final RuleCall cTargetAbstractAllocatableQualifiedNameParserRuleCall_4_1_2_1_1_0_1 = (RuleCall)cTargetAbstractAllocatableCrossReference_4_1_2_1_1_0.eContents().get(1);
+ private final Keyword cRightSquareBracketKeyword_4_1_3 = (Keyword)cGroup_4_1.eContents().get(3);
+ private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
+
+ //AreaSet rbaview::AreaSet:
+ // {rbaview::AreaSet}
+ // 'AreaSet'
+ // name=QualifiedName
+ // '{' (('description:' description=EString)? & ('target:' '[' (target+=[rbacore::AbstractAllocatable|QualifiedName]
+ // ("," target+=[rbacore::AbstractAllocatable|QualifiedName])*)? ']')?) '}';
+ @Override public ParserRule getRule() { return rule; }
+
+ //{rbaview::AreaSet} 'AreaSet' name=QualifiedName '{' (('description:' description=EString)? & ('target:' '['
+ //(target+=[rbacore::AbstractAllocatable|QualifiedName] ("," target+=[rbacore::AbstractAllocatable|QualifiedName])*)?
+ //']')?) '}'
+ public Group getGroup() { return cGroup; }
+
+ //{rbaview::AreaSet}
+ public Action getAreaSetAction_0() { return cAreaSetAction_0; }
+
+ //'AreaSet'
+ public Keyword getAreaSetKeyword_1() { return cAreaSetKeyword_1; }
+
+ //name=QualifiedName
+ public Assignment getNameAssignment_2() { return cNameAssignment_2; }
+
+ //QualifiedName
+ public RuleCall getNameQualifiedNameParserRuleCall_2_0() { return cNameQualifiedNameParserRuleCall_2_0; }
+
+ //'{'
+ public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }
+
+ //('description:' description=EString)? & ('target:' '[' (target+=[rbacore::AbstractAllocatable|QualifiedName] (","
+ //target+=[rbacore::AbstractAllocatable|QualifiedName])*)? ']')?
+ public UnorderedGroup getUnorderedGroup_4() { return cUnorderedGroup_4; }
+
+ //('description:' description=EString)?
+ public Group getGroup_4_0() { return cGroup_4_0; }
+
+ //'description:'
+ public Keyword getDescriptionKeyword_4_0_0() { return cDescriptionKeyword_4_0_0; }
+
+ //description=EString
+ public Assignment getDescriptionAssignment_4_0_1() { return cDescriptionAssignment_4_0_1; }
+
+ //EString
+ public RuleCall getDescriptionEStringParserRuleCall_4_0_1_0() { return cDescriptionEStringParserRuleCall_4_0_1_0; }
+
+ //('target:' '[' (target+=[rbacore::AbstractAllocatable|QualifiedName] (","
+ //target+=[rbacore::AbstractAllocatable|QualifiedName])*)? ']')?
+ public Group getGroup_4_1() { return cGroup_4_1; }
+
+ //'target:'
+ public Keyword getTargetKeyword_4_1_0() { return cTargetKeyword_4_1_0; }
+
+ //'['
+ public Keyword getLeftSquareBracketKeyword_4_1_1() { return cLeftSquareBracketKeyword_4_1_1; }
+
+ //(target+=[rbacore::AbstractAllocatable|QualifiedName] ("," target+=[rbacore::AbstractAllocatable|QualifiedName])*)?
+ public Group getGroup_4_1_2() { return cGroup_4_1_2; }
+
+ //target+=[rbacore::AbstractAllocatable|QualifiedName]
+ public Assignment getTargetAssignment_4_1_2_0() { return cTargetAssignment_4_1_2_0; }
+
+ //[rbacore::AbstractAllocatable|QualifiedName]
+ public CrossReference getTargetAbstractAllocatableCrossReference_4_1_2_0_0() { return cTargetAbstractAllocatableCrossReference_4_1_2_0_0; }
+
+ //QualifiedName
+ public RuleCall getTargetAbstractAllocatableQualifiedNameParserRuleCall_4_1_2_0_0_1() { return cTargetAbstractAllocatableQualifiedNameParserRuleCall_4_1_2_0_0_1; }
+
+ //("," target+=[rbacore::AbstractAllocatable|QualifiedName])*
+ public Group getGroup_4_1_2_1() { return cGroup_4_1_2_1; }
+
+ //","
+ public Keyword getCommaKeyword_4_1_2_1_0() { return cCommaKeyword_4_1_2_1_0; }
+
+ //target+=[rbacore::AbstractAllocatable|QualifiedName]
+ public Assignment getTargetAssignment_4_1_2_1_1() { return cTargetAssignment_4_1_2_1_1; }
+
+ //[rbacore::AbstractAllocatable|QualifiedName]
+ public CrossReference getTargetAbstractAllocatableCrossReference_4_1_2_1_1_0() { return cTargetAbstractAllocatableCrossReference_4_1_2_1_1_0; }
+
+ //QualifiedName
+ public RuleCall getTargetAbstractAllocatableQualifiedNameParserRuleCall_4_1_2_1_1_0_1() { return cTargetAbstractAllocatableQualifiedNameParserRuleCall_4_1_2_1_1_0_1; }
+
+ //']'
+ public Keyword getRightSquareBracketKeyword_4_1_3() { return cRightSquareBracketKeyword_4_1_3; }
+
+ //'}'
+ public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
+ }
+ public class ZoneSetElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.ZoneSet");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cZoneSetAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cZoneSetKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cNameQualifiedNameParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
+ private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
+ private final UnorderedGroup cUnorderedGroup_4 = (UnorderedGroup)cGroup.eContents().get(4);
+ private final Group cGroup_4_0 = (Group)cUnorderedGroup_4.eContents().get(0);
+ private final Keyword cDescriptionKeyword_4_0_0 = (Keyword)cGroup_4_0.eContents().get(0);
+ private final Assignment cDescriptionAssignment_4_0_1 = (Assignment)cGroup_4_0.eContents().get(1);
+ private final RuleCall cDescriptionEStringParserRuleCall_4_0_1_0 = (RuleCall)cDescriptionAssignment_4_0_1.eContents().get(0);
+ private final Group cGroup_4_1 = (Group)cUnorderedGroup_4.eContents().get(1);
+ private final Keyword cTargetKeyword_4_1_0 = (Keyword)cGroup_4_1.eContents().get(0);
+ private final Keyword cLeftSquareBracketKeyword_4_1_1 = (Keyword)cGroup_4_1.eContents().get(1);
+ private final Group cGroup_4_1_2 = (Group)cGroup_4_1.eContents().get(2);
+ private final Assignment cTargetAssignment_4_1_2_0 = (Assignment)cGroup_4_1_2.eContents().get(0);
+ private final CrossReference cTargetAbstractAllocatableCrossReference_4_1_2_0_0 = (CrossReference)cTargetAssignment_4_1_2_0.eContents().get(0);
+ private final RuleCall cTargetAbstractAllocatableQualifiedNameParserRuleCall_4_1_2_0_0_1 = (RuleCall)cTargetAbstractAllocatableCrossReference_4_1_2_0_0.eContents().get(1);
+ private final Group cGroup_4_1_2_1 = (Group)cGroup_4_1_2.eContents().get(1);
+ private final Keyword cCommaKeyword_4_1_2_1_0 = (Keyword)cGroup_4_1_2_1.eContents().get(0);
+ private final Assignment cTargetAssignment_4_1_2_1_1 = (Assignment)cGroup_4_1_2_1.eContents().get(1);
+ private final CrossReference cTargetAbstractAllocatableCrossReference_4_1_2_1_1_0 = (CrossReference)cTargetAssignment_4_1_2_1_1.eContents().get(0);
+ private final RuleCall cTargetAbstractAllocatableQualifiedNameParserRuleCall_4_1_2_1_1_0_1 = (RuleCall)cTargetAbstractAllocatableCrossReference_4_1_2_1_1_0.eContents().get(1);
+ private final Keyword cRightSquareBracketKeyword_4_1_3 = (Keyword)cGroup_4_1.eContents().get(3);
+ private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
+
+ //ZoneSet rbasound::ZoneSet:
+ // {rbasound::ZoneSet}
+ // 'ZoneSet'
+ // name=QualifiedName
+ // '{' (('description:' description=EString)? & ('target:' '[' (target+=[rbacore::AbstractAllocatable|QualifiedName]
+ // ("," target+=[rbacore::AbstractAllocatable|QualifiedName])*)? ']')?) '}';
+ @Override public ParserRule getRule() { return rule; }
+
+ //{rbasound::ZoneSet} 'ZoneSet' name=QualifiedName '{' (('description:' description=EString)? & ('target:' '['
+ //(target+=[rbacore::AbstractAllocatable|QualifiedName] ("," target+=[rbacore::AbstractAllocatable|QualifiedName])*)?
+ //']')?) '}'
+ public Group getGroup() { return cGroup; }
+
+ //{rbasound::ZoneSet}
+ public Action getZoneSetAction_0() { return cZoneSetAction_0; }
+
+ //'ZoneSet'
+ public Keyword getZoneSetKeyword_1() { return cZoneSetKeyword_1; }
+
+ //name=QualifiedName
+ public Assignment getNameAssignment_2() { return cNameAssignment_2; }
+
+ //QualifiedName
+ public RuleCall getNameQualifiedNameParserRuleCall_2_0() { return cNameQualifiedNameParserRuleCall_2_0; }
+
+ //'{'
+ public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }
+
+ //('description:' description=EString)? & ('target:' '[' (target+=[rbacore::AbstractAllocatable|QualifiedName] (","
+ //target+=[rbacore::AbstractAllocatable|QualifiedName])*)? ']')?
+ public UnorderedGroup getUnorderedGroup_4() { return cUnorderedGroup_4; }
+
+ //('description:' description=EString)?
+ public Group getGroup_4_0() { return cGroup_4_0; }
+
+ //'description:'
+ public Keyword getDescriptionKeyword_4_0_0() { return cDescriptionKeyword_4_0_0; }
+
+ //description=EString
+ public Assignment getDescriptionAssignment_4_0_1() { return cDescriptionAssignment_4_0_1; }
+
+ //EString
+ public RuleCall getDescriptionEStringParserRuleCall_4_0_1_0() { return cDescriptionEStringParserRuleCall_4_0_1_0; }
+
+ //('target:' '[' (target+=[rbacore::AbstractAllocatable|QualifiedName] (","
+ //target+=[rbacore::AbstractAllocatable|QualifiedName])*)? ']')?
+ public Group getGroup_4_1() { return cGroup_4_1; }
+
+ //'target:'
+ public Keyword getTargetKeyword_4_1_0() { return cTargetKeyword_4_1_0; }
+
+ //'['
+ public Keyword getLeftSquareBracketKeyword_4_1_1() { return cLeftSquareBracketKeyword_4_1_1; }
+
+ //(target+=[rbacore::AbstractAllocatable|QualifiedName] ("," target+=[rbacore::AbstractAllocatable|QualifiedName])*)?
+ public Group getGroup_4_1_2() { return cGroup_4_1_2; }
+
+ //target+=[rbacore::AbstractAllocatable|QualifiedName]
+ public Assignment getTargetAssignment_4_1_2_0() { return cTargetAssignment_4_1_2_0; }
+
+ //[rbacore::AbstractAllocatable|QualifiedName]
+ public CrossReference getTargetAbstractAllocatableCrossReference_4_1_2_0_0() { return cTargetAbstractAllocatableCrossReference_4_1_2_0_0; }
+
+ //QualifiedName
+ public RuleCall getTargetAbstractAllocatableQualifiedNameParserRuleCall_4_1_2_0_0_1() { return cTargetAbstractAllocatableQualifiedNameParserRuleCall_4_1_2_0_0_1; }
+
+ //("," target+=[rbacore::AbstractAllocatable|QualifiedName])*
+ public Group getGroup_4_1_2_1() { return cGroup_4_1_2_1; }
+
+ //","
+ public Keyword getCommaKeyword_4_1_2_1_0() { return cCommaKeyword_4_1_2_1_0; }
+
+ //target+=[rbacore::AbstractAllocatable|QualifiedName]
+ public Assignment getTargetAssignment_4_1_2_1_1() { return cTargetAssignment_4_1_2_1_1; }
+
+ //[rbacore::AbstractAllocatable|QualifiedName]
+ public CrossReference getTargetAbstractAllocatableCrossReference_4_1_2_1_1_0() { return cTargetAbstractAllocatableCrossReference_4_1_2_1_1_0; }
+
+ //QualifiedName
+ public RuleCall getTargetAbstractAllocatableQualifiedNameParserRuleCall_4_1_2_1_1_0_1() { return cTargetAbstractAllocatableQualifiedNameParserRuleCall_4_1_2_1_1_0_1; }
+
+ //']'
+ public Keyword getRightSquareBracketKeyword_4_1_3() { return cRightSquareBracketKeyword_4_1_3; }
+
+ //'}'
+ public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
+ }
+ public class CompositeAreaElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.CompositeArea");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cCompositeAreaAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cCompositeAreaKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cNameQualifiedNameParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
+ private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
+ private final UnorderedGroup cUnorderedGroup_4 = (UnorderedGroup)cGroup.eContents().get(4);
+ private final Group cGroup_4_0 = (Group)cUnorderedGroup_4.eContents().get(0);
+ private final Keyword cDescriptionKeyword_4_0_0 = (Keyword)cGroup_4_0.eContents().get(0);
+ private final Assignment cDescriptionAssignment_4_0_1 = (Assignment)cGroup_4_0.eContents().get(1);
+ private final RuleCall cDescriptionEStringParserRuleCall_4_0_1_0 = (RuleCall)cDescriptionAssignment_4_0_1.eContents().get(0);
+ private final Group cGroup_4_1 = (Group)cUnorderedGroup_4.eContents().get(1);
+ private final Keyword cLayoutKeyword_4_1_0 = (Keyword)cGroup_4_1.eContents().get(0);
+ private final Assignment cLayoutAssignment_4_1_1 = (Assignment)cGroup_4_1.eContents().get(1);
+ private final RuleCall cLayoutLayoutManagerParserRuleCall_4_1_1_0 = (RuleCall)cLayoutAssignment_4_1_1.eContents().get(0);
+ private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
+
+ //CompositeArea rbaview::CompositeArea:
+ // {rbaview::CompositeArea}
+ // 'CompositeArea'
+ // name=QualifiedName
+ // '{' (('description:' description=EString)? & ('layout:' layout=LayoutManager)?) '}';
+ @Override public ParserRule getRule() { return rule; }
+
+ //{rbaview::CompositeArea} 'CompositeArea' name=QualifiedName '{' (('description:' description=EString)? & ('layout:'
+ //layout=LayoutManager)?) '}'
+ public Group getGroup() { return cGroup; }
+
+ //{rbaview::CompositeArea}
+ public Action getCompositeAreaAction_0() { return cCompositeAreaAction_0; }
+
+ //'CompositeArea'
+ public Keyword getCompositeAreaKeyword_1() { return cCompositeAreaKeyword_1; }
+
+ //name=QualifiedName
+ public Assignment getNameAssignment_2() { return cNameAssignment_2; }
+
+ //QualifiedName
+ public RuleCall getNameQualifiedNameParserRuleCall_2_0() { return cNameQualifiedNameParserRuleCall_2_0; }
+
+ //'{'
+ public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }
+
+ //('description:' description=EString)? & ('layout:' layout=LayoutManager)?
+ public UnorderedGroup getUnorderedGroup_4() { return cUnorderedGroup_4; }
+
+ //('description:' description=EString)?
+ public Group getGroup_4_0() { return cGroup_4_0; }
+
+ //'description:'
+ public Keyword getDescriptionKeyword_4_0_0() { return cDescriptionKeyword_4_0_0; }
+
+ //description=EString
+ public Assignment getDescriptionAssignment_4_0_1() { return cDescriptionAssignment_4_0_1; }
+
+ //EString
+ public RuleCall getDescriptionEStringParserRuleCall_4_0_1_0() { return cDescriptionEStringParserRuleCall_4_0_1_0; }
+
+ //('layout:' layout=LayoutManager)?
+ public Group getGroup_4_1() { return cGroup_4_1; }
+
+ //'layout:'
+ public Keyword getLayoutKeyword_4_1_0() { return cLayoutKeyword_4_1_0; }
+
+ //layout=LayoutManager
+ public Assignment getLayoutAssignment_4_1_1() { return cLayoutAssignment_4_1_1; }
+
+ //LayoutManager
+ public RuleCall getLayoutLayoutManagerParserRuleCall_4_1_1_0() { return cLayoutLayoutManagerParserRuleCall_4_1_1_0; }
+
+ //'}'
+ public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
+ }
+ public class AreaElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.Area");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cAreaAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cAreaKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cNameQualifiedNameParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
+ private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
+ private final UnorderedGroup cUnorderedGroup_4 = (UnorderedGroup)cGroup.eContents().get(4);
+ private final Group cGroup_4_0 = (Group)cUnorderedGroup_4.eContents().get(0);
+ private final Keyword cDescriptionKeyword_4_0_0 = (Keyword)cGroup_4_0.eContents().get(0);
+ private final Assignment cDescriptionAssignment_4_0_1 = (Assignment)cGroup_4_0.eContents().get(1);
+ private final RuleCall cDescriptionEStringParserRuleCall_4_0_1_0 = (RuleCall)cDescriptionAssignment_4_0_1.eContents().get(0);
+ private final Group cGroup_4_1 = (Group)cUnorderedGroup_4.eContents().get(1);
+ private final Keyword cArbitrationPolicyKeyword_4_1_0 = (Keyword)cGroup_4_1.eContents().get(0);
+ private final Assignment cArbitrationPolicyAssignment_4_1_1 = (Assignment)cGroup_4_1.eContents().get(1);
+ private final RuleCall cArbitrationPolicyArbitrationPolicyEnumRuleCall_4_1_1_0 = (RuleCall)cArbitrationPolicyAssignment_4_1_1.eContents().get(0);
+ private final Assignment cSizeAssignment_4_2 = (Assignment)cUnorderedGroup_4.eContents().get(2);
+ private final RuleCall cSizeSizeIdentifierParserRuleCall_4_2_0 = (RuleCall)cSizeAssignment_4_2.eContents().get(0);
+ private final Group cGroup_4_3 = (Group)cUnorderedGroup_4.eContents().get(3);
+ private final Alternatives cAlternatives_4_3_0 = (Alternatives)cGroup_4_3.eContents().get(0);
+ private final Keyword cVisibilityKeyword_4_3_0_0 = (Keyword)cAlternatives_4_3_0.eContents().get(0);
+ private final Keyword cPriorityKeyword_4_3_0_1 = (Keyword)cAlternatives_4_3_0.eContents().get(1);
+ private final Assignment cVisibilityAssignment_4_3_1 = (Assignment)cGroup_4_3.eContents().get(1);
+ private final RuleCall cVisibilityVExpressionParserRuleCall_4_3_1_0 = (RuleCall)cVisibilityAssignment_4_3_1.eContents().get(0);
+ private final Group cGroup_4_4 = (Group)cUnorderedGroup_4.eContents().get(4);
+ private final Keyword cZorderKeyword_4_4_0 = (Keyword)cGroup_4_4.eContents().get(0);
+ private final Assignment cZorderAssignment_4_4_1 = (Assignment)cGroup_4_4.eContents().get(1);
+ private final RuleCall cZorderVExpressionParserRuleCall_4_4_1_0 = (RuleCall)cZorderAssignment_4_4_1.eContents().get(0);
+ private final Assignment cTagsAssignment_4_5 = (Assignment)cUnorderedGroup_4.eContents().get(5);
+ private final RuleCall cTagsTagParserRuleCall_4_5_0 = (RuleCall)cTagsAssignment_4_5.eContents().get(0);
+ private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
+
+ //Area rbaview::Area:
+ // {rbaview::Area}
+ // 'Area'
+ // name=QualifiedName
+ // '{' (('description:' description=EString)? & ('arbitrationPolicy:' arbitrationPolicy=ArbitrationPolicy)? &
+ // size+=SizeIdentifier* & (('visibility:' | 'priority:') visibility=VExpression)? & ('zorder:' zorder=VExpression)? &
+ // tags+=Tag*) '}';
+ @Override public ParserRule getRule() { return rule; }
+
+ //{rbaview::Area} 'Area' name=QualifiedName '{' (('description:' description=EString)? & ('arbitrationPolicy:'
+ //arbitrationPolicy=ArbitrationPolicy)? & size+=SizeIdentifier* & (('visibility:' | 'priority:')
+ //visibility=VExpression)? & ('zorder:' zorder=VExpression)? & tags+=Tag*) '}'
+ public Group getGroup() { return cGroup; }
+
+ //{rbaview::Area}
+ public Action getAreaAction_0() { return cAreaAction_0; }
+
+ //'Area'
+ public Keyword getAreaKeyword_1() { return cAreaKeyword_1; }
+
+ //name=QualifiedName
+ public Assignment getNameAssignment_2() { return cNameAssignment_2; }
+
+ //QualifiedName
+ public RuleCall getNameQualifiedNameParserRuleCall_2_0() { return cNameQualifiedNameParserRuleCall_2_0; }
+
+ //'{'
+ public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }
+
+ //('description:' description=EString)? & ('arbitrationPolicy:' arbitrationPolicy=ArbitrationPolicy)? &
+ //size+=SizeIdentifier* & (('visibility:' | 'priority:') visibility=VExpression)? & ('zorder:' zorder=VExpression)? &
+ //tags+=Tag*
+ public UnorderedGroup getUnorderedGroup_4() { return cUnorderedGroup_4; }
+
+ //('description:' description=EString)?
+ public Group getGroup_4_0() { return cGroup_4_0; }
+
+ //'description:'
+ public Keyword getDescriptionKeyword_4_0_0() { return cDescriptionKeyword_4_0_0; }
+
+ //description=EString
+ public Assignment getDescriptionAssignment_4_0_1() { return cDescriptionAssignment_4_0_1; }
+
+ //EString
+ public RuleCall getDescriptionEStringParserRuleCall_4_0_1_0() { return cDescriptionEStringParserRuleCall_4_0_1_0; }
+
+ //('arbitrationPolicy:' arbitrationPolicy=ArbitrationPolicy)?
+ public Group getGroup_4_1() { return cGroup_4_1; }
+
+ //'arbitrationPolicy:'
+ public Keyword getArbitrationPolicyKeyword_4_1_0() { return cArbitrationPolicyKeyword_4_1_0; }
+
+ //arbitrationPolicy=ArbitrationPolicy
+ public Assignment getArbitrationPolicyAssignment_4_1_1() { return cArbitrationPolicyAssignment_4_1_1; }
+
+ //ArbitrationPolicy
+ public RuleCall getArbitrationPolicyArbitrationPolicyEnumRuleCall_4_1_1_0() { return cArbitrationPolicyArbitrationPolicyEnumRuleCall_4_1_1_0; }
+
+ //size+=SizeIdentifier*
+ public Assignment getSizeAssignment_4_2() { return cSizeAssignment_4_2; }
+
+ //SizeIdentifier
+ public RuleCall getSizeSizeIdentifierParserRuleCall_4_2_0() { return cSizeSizeIdentifierParserRuleCall_4_2_0; }
+
+ //(('visibility:' | 'priority:') visibility=VExpression)?
+ public Group getGroup_4_3() { return cGroup_4_3; }
+
+ //'visibility:' | 'priority:'
+ public Alternatives getAlternatives_4_3_0() { return cAlternatives_4_3_0; }
+
+ //'visibility:'
+ public Keyword getVisibilityKeyword_4_3_0_0() { return cVisibilityKeyword_4_3_0_0; }
+
+ //'priority:'
+ public Keyword getPriorityKeyword_4_3_0_1() { return cPriorityKeyword_4_3_0_1; }
+
+ //visibility=VExpression
+ public Assignment getVisibilityAssignment_4_3_1() { return cVisibilityAssignment_4_3_1; }
+
+ //VExpression
+ public RuleCall getVisibilityVExpressionParserRuleCall_4_3_1_0() { return cVisibilityVExpressionParserRuleCall_4_3_1_0; }
+
+ //('zorder:' zorder=VExpression)?
+ public Group getGroup_4_4() { return cGroup_4_4; }
+
+ //'zorder:'
+ public Keyword getZorderKeyword_4_4_0() { return cZorderKeyword_4_4_0; }
+
+ //zorder=VExpression
+ public Assignment getZorderAssignment_4_4_1() { return cZorderAssignment_4_4_1; }
+
+ //VExpression
+ public RuleCall getZorderVExpressionParserRuleCall_4_4_1_0() { return cZorderVExpressionParserRuleCall_4_4_1_0; }
+
+ //tags+=Tag*
+ public Assignment getTagsAssignment_4_5() { return cTagsAssignment_4_5; }
+
+ //Tag
+ public RuleCall getTagsTagParserRuleCall_4_5_0() { return cTagsTagParserRuleCall_4_5_0; }
+
+ //'}'
+ public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
+ }
+ public class ZoneElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.Zone");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cZoneAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cZoneKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cNameQualifiedNameParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
+ private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
+ private final UnorderedGroup cUnorderedGroup_4 = (UnorderedGroup)cGroup.eContents().get(4);
+ private final Group cGroup_4_0 = (Group)cUnorderedGroup_4.eContents().get(0);
+ private final Keyword cDescriptionKeyword_4_0_0 = (Keyword)cGroup_4_0.eContents().get(0);
+ private final Assignment cDescriptionAssignment_4_0_1 = (Assignment)cGroup_4_0.eContents().get(1);
+ private final RuleCall cDescriptionEStringParserRuleCall_4_0_1_0 = (RuleCall)cDescriptionAssignment_4_0_1.eContents().get(0);
+ private final Group cGroup_4_1 = (Group)cUnorderedGroup_4.eContents().get(1);
+ private final Keyword cArbitrationPolicyKeyword_4_1_0 = (Keyword)cGroup_4_1.eContents().get(0);
+ private final Assignment cArbitrationPolicyAssignment_4_1_1 = (Assignment)cGroup_4_1.eContents().get(1);
+ private final RuleCall cArbitrationPolicyArbitrationPolicyEnumRuleCall_4_1_1_0 = (RuleCall)cArbitrationPolicyAssignment_4_1_1.eContents().get(0);
+ private final Group cGroup_4_2 = (Group)cUnorderedGroup_4.eContents().get(2);
+ private final Alternatives cAlternatives_4_2_0 = (Alternatives)cGroup_4_2.eContents().get(0);
+ private final Keyword cVisibilityKeyword_4_2_0_0 = (Keyword)cAlternatives_4_2_0.eContents().get(0);
+ private final Keyword cPriorityKeyword_4_2_0_1 = (Keyword)cAlternatives_4_2_0.eContents().get(1);
+ private final Assignment cVisibilityAssignment_4_2_1 = (Assignment)cGroup_4_2.eContents().get(1);
+ private final RuleCall cVisibilityVExpressionParserRuleCall_4_2_1_0 = (RuleCall)cVisibilityAssignment_4_2_1.eContents().get(0);
+ private final Group cGroup_4_3 = (Group)cUnorderedGroup_4.eContents().get(3);
+ private final Keyword cAttenuateValueKeyword_4_3_0 = (Keyword)cGroup_4_3.eContents().get(0);
+ private final Assignment cAttenuateAssignment_4_3_1 = (Assignment)cGroup_4_3.eContents().get(1);
+ private final RuleCall cAttenuateIntegerValueParserRuleCall_4_3_1_0 = (RuleCall)cAttenuateAssignment_4_3_1.eContents().get(0);
+ private final Assignment cTagsAssignment_4_4 = (Assignment)cUnorderedGroup_4.eContents().get(4);
+ private final RuleCall cTagsTagParserRuleCall_4_4_0 = (RuleCall)cTagsAssignment_4_4.eContents().get(0);
+ private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
+
+ //Zone rbasound::Zone:
+ // {rbasound::Zone}
+ // 'Zone'
+ // name=QualifiedName
+ // '{' (('description:' description=EString)? & ('arbitrationPolicy:' arbitrationPolicy=ArbitrationPolicy)? &
+ // (('visibility:' | 'priority:') visibility=VExpression)? & ('attenuateValue:' attenuate=IntegerValue)? & tags+=Tag*)
+ // '}';
+ @Override public ParserRule getRule() { return rule; }
+
+ //{rbasound::Zone} 'Zone' name=QualifiedName '{' (('description:' description=EString)? & ('arbitrationPolicy:'
+ //arbitrationPolicy=ArbitrationPolicy)? & (('visibility:' | 'priority:') visibility=VExpression)? & ('attenuateValue:'
+ //attenuate=IntegerValue)? & tags+=Tag*) '}'
+ public Group getGroup() { return cGroup; }
+
+ //{rbasound::Zone}
+ public Action getZoneAction_0() { return cZoneAction_0; }
+
+ //'Zone'
+ public Keyword getZoneKeyword_1() { return cZoneKeyword_1; }
+
+ //name=QualifiedName
+ public Assignment getNameAssignment_2() { return cNameAssignment_2; }
+
+ //QualifiedName
+ public RuleCall getNameQualifiedNameParserRuleCall_2_0() { return cNameQualifiedNameParserRuleCall_2_0; }
+
+ //'{'
+ public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }
+
+ //('description:' description=EString)? & ('arbitrationPolicy:' arbitrationPolicy=ArbitrationPolicy)? & (('visibility:' |
+ //'priority:') visibility=VExpression)? & ('attenuateValue:' attenuate=IntegerValue)? & tags+=Tag*
+ public UnorderedGroup getUnorderedGroup_4() { return cUnorderedGroup_4; }
+
+ //('description:' description=EString)?
+ public Group getGroup_4_0() { return cGroup_4_0; }
+
+ //'description:'
+ public Keyword getDescriptionKeyword_4_0_0() { return cDescriptionKeyword_4_0_0; }
+
+ //description=EString
+ public Assignment getDescriptionAssignment_4_0_1() { return cDescriptionAssignment_4_0_1; }
+
+ //EString
+ public RuleCall getDescriptionEStringParserRuleCall_4_0_1_0() { return cDescriptionEStringParserRuleCall_4_0_1_0; }
+
+ //('arbitrationPolicy:' arbitrationPolicy=ArbitrationPolicy)?
+ public Group getGroup_4_1() { return cGroup_4_1; }
+
+ //'arbitrationPolicy:'
+ public Keyword getArbitrationPolicyKeyword_4_1_0() { return cArbitrationPolicyKeyword_4_1_0; }
+
+ //arbitrationPolicy=ArbitrationPolicy
+ public Assignment getArbitrationPolicyAssignment_4_1_1() { return cArbitrationPolicyAssignment_4_1_1; }
+
+ //ArbitrationPolicy
+ public RuleCall getArbitrationPolicyArbitrationPolicyEnumRuleCall_4_1_1_0() { return cArbitrationPolicyArbitrationPolicyEnumRuleCall_4_1_1_0; }
+
+ //(('visibility:' | 'priority:') visibility=VExpression)?
+ public Group getGroup_4_2() { return cGroup_4_2; }
+
+ //'visibility:' | 'priority:'
+ public Alternatives getAlternatives_4_2_0() { return cAlternatives_4_2_0; }
+
+ //'visibility:'
+ public Keyword getVisibilityKeyword_4_2_0_0() { return cVisibilityKeyword_4_2_0_0; }
+
+ //'priority:'
+ public Keyword getPriorityKeyword_4_2_0_1() { return cPriorityKeyword_4_2_0_1; }
+
+ //visibility=VExpression
+ public Assignment getVisibilityAssignment_4_2_1() { return cVisibilityAssignment_4_2_1; }
+
+ //VExpression
+ public RuleCall getVisibilityVExpressionParserRuleCall_4_2_1_0() { return cVisibilityVExpressionParserRuleCall_4_2_1_0; }
+
+ //('attenuateValue:' attenuate=IntegerValue)?
+ public Group getGroup_4_3() { return cGroup_4_3; }
+
+ //'attenuateValue:'
+ public Keyword getAttenuateValueKeyword_4_3_0() { return cAttenuateValueKeyword_4_3_0; }
+
+ //attenuate=IntegerValue
+ public Assignment getAttenuateAssignment_4_3_1() { return cAttenuateAssignment_4_3_1; }
+
+ //IntegerValue
+ public RuleCall getAttenuateIntegerValueParserRuleCall_4_3_1_0() { return cAttenuateIntegerValueParserRuleCall_4_3_1_0; }
+
+ //tags+=Tag*
+ public Assignment getTagsAssignment_4_4() { return cTagsAssignment_4_4; }
+
+ //Tag
+ public RuleCall getTagsTagParserRuleCall_4_4_0() { return cTagsTagParserRuleCall_4_4_0; }
+
+ //'}'
+ public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
+ }
+ public class ViewContentStateElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.ViewContentState");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cViewContentStateAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cStateKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cNameQualifiedNameParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
+ private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
+ private final UnorderedGroup cUnorderedGroup_4 = (UnorderedGroup)cGroup.eContents().get(4);
+ private final Group cGroup_4_0 = (Group)cUnorderedGroup_4.eContents().get(0);
+ private final Keyword cDescriptionKeyword_4_0_0 = (Keyword)cGroup_4_0.eContents().get(0);
+ private final Assignment cDescriptionAssignment_4_0_1 = (Assignment)cGroup_4_0.eContents().get(1);
+ private final RuleCall cDescriptionEStringParserRuleCall_4_0_1_0 = (RuleCall)cDescriptionAssignment_4_0_1.eContents().get(0);
+ private final Group cGroup_4_1 = (Group)cUnorderedGroup_4.eContents().get(1);
+ private final Alternatives cAlternatives_4_1_0 = (Alternatives)cGroup_4_1.eContents().get(0);
+ private final Keyword cPriorityKeyword_4_1_0_0 = (Keyword)cAlternatives_4_1_0.eContents().get(0);
+ private final Keyword cValueKeyword_4_1_0_1 = (Keyword)cAlternatives_4_1_0.eContents().get(1);
+ private final Assignment cValueAssignment_4_1_1 = (Assignment)cGroup_4_1.eContents().get(1);
+ private final RuleCall cValueVExpressionParserRuleCall_4_1_1_0 = (RuleCall)cValueAssignment_4_1_1.eContents().get(0);
+ private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
+
+ //ViewContentState rbaview::ViewContentState:
+ // {rbaview::ViewContentState}
+ // 'State'
+ // name=QualifiedName
+ // '{' (('description:' description=EString)? & (('priority:' | 'value:') value=VExpression)?) '}';
+ @Override public ParserRule getRule() { return rule; }
+
+ //{rbaview::ViewContentState} 'State' name=QualifiedName '{' (('description:' description=EString)? & (('priority:' |
+ //'value:') value=VExpression)?) '}'
+ public Group getGroup() { return cGroup; }
+
+ //{rbaview::ViewContentState}
+ public Action getViewContentStateAction_0() { return cViewContentStateAction_0; }
+
+ //'State'
+ public Keyword getStateKeyword_1() { return cStateKeyword_1; }
+
+ //name=QualifiedName
+ public Assignment getNameAssignment_2() { return cNameAssignment_2; }
+
+ //QualifiedName
+ public RuleCall getNameQualifiedNameParserRuleCall_2_0() { return cNameQualifiedNameParserRuleCall_2_0; }
+
+ //'{'
+ public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }
+
+ //('description:' description=EString)? & (('priority:' | 'value:') value=VExpression)?
+ public UnorderedGroup getUnorderedGroup_4() { return cUnorderedGroup_4; }
+
+ //('description:' description=EString)?
+ public Group getGroup_4_0() { return cGroup_4_0; }
+
+ //'description:'
+ public Keyword getDescriptionKeyword_4_0_0() { return cDescriptionKeyword_4_0_0; }
+
+ //description=EString
+ public Assignment getDescriptionAssignment_4_0_1() { return cDescriptionAssignment_4_0_1; }
+
+ //EString
+ public RuleCall getDescriptionEStringParserRuleCall_4_0_1_0() { return cDescriptionEStringParserRuleCall_4_0_1_0; }
+
+ //(('priority:' | 'value:') value=VExpression)?
+ public Group getGroup_4_1() { return cGroup_4_1; }
+
+ //'priority:' | 'value:'
+ public Alternatives getAlternatives_4_1_0() { return cAlternatives_4_1_0; }
+
+ //'priority:'
+ public Keyword getPriorityKeyword_4_1_0_0() { return cPriorityKeyword_4_1_0_0; }
+
+ //'value:'
+ public Keyword getValueKeyword_4_1_0_1() { return cValueKeyword_4_1_0_1; }
+
+ //value=VExpression
+ public Assignment getValueAssignment_4_1_1() { return cValueAssignment_4_1_1; }
+
+ //VExpression
+ public RuleCall getValueVExpressionParserRuleCall_4_1_1_0() { return cValueVExpressionParserRuleCall_4_1_1_0; }
+
+ //'}'
+ public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
+ }
+ public class SoundContentStateElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.SoundContentState");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cSoundContentStateAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cStateKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cNameQualifiedNameParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
+ private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
+ private final UnorderedGroup cUnorderedGroup_4 = (UnorderedGroup)cGroup.eContents().get(4);
+ private final Group cGroup_4_0 = (Group)cUnorderedGroup_4.eContents().get(0);
+ private final Keyword cDescriptionKeyword_4_0_0 = (Keyword)cGroup_4_0.eContents().get(0);
+ private final Assignment cDescriptionAssignment_4_0_1 = (Assignment)cGroup_4_0.eContents().get(1);
+ private final RuleCall cDescriptionEStringParserRuleCall_4_0_1_0 = (RuleCall)cDescriptionAssignment_4_0_1.eContents().get(0);
+ private final Group cGroup_4_1 = (Group)cUnorderedGroup_4.eContents().get(1);
+ private final Alternatives cAlternatives_4_1_0 = (Alternatives)cGroup_4_1.eContents().get(0);
+ private final Keyword cPriorityKeyword_4_1_0_0 = (Keyword)cAlternatives_4_1_0.eContents().get(0);
+ private final Keyword cValueKeyword_4_1_0_1 = (Keyword)cAlternatives_4_1_0.eContents().get(1);
+ private final Assignment cValueAssignment_4_1_1 = (Assignment)cGroup_4_1.eContents().get(1);
+ private final RuleCall cValueVExpressionParserRuleCall_4_1_1_0 = (RuleCall)cValueAssignment_4_1_1.eContents().get(0);
+ private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
+
+ //SoundContentState rbasound::SoundContentState:
+ // {rbasound::SoundContentState}
+ // 'State'
+ // name=QualifiedName
+ // '{' (('description:' description=EString)? & (('priority:' | 'value:') value=VExpression)?) '}';
+ @Override public ParserRule getRule() { return rule; }
+
+ //{rbasound::SoundContentState} 'State' name=QualifiedName '{' (('description:' description=EString)? & (('priority:' |
+ //'value:') value=VExpression)?) '}'
+ public Group getGroup() { return cGroup; }
+
+ //{rbasound::SoundContentState}
+ public Action getSoundContentStateAction_0() { return cSoundContentStateAction_0; }
+
+ //'State'
+ public Keyword getStateKeyword_1() { return cStateKeyword_1; }
+
+ //name=QualifiedName
+ public Assignment getNameAssignment_2() { return cNameAssignment_2; }
+
+ //QualifiedName
+ public RuleCall getNameQualifiedNameParserRuleCall_2_0() { return cNameQualifiedNameParserRuleCall_2_0; }
+
+ //'{'
+ public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }
+
+ //('description:' description=EString)? & (('priority:' | 'value:') value=VExpression)?
+ public UnorderedGroup getUnorderedGroup_4() { return cUnorderedGroup_4; }
+
+ //('description:' description=EString)?
+ public Group getGroup_4_0() { return cGroup_4_0; }
+
+ //'description:'
+ public Keyword getDescriptionKeyword_4_0_0() { return cDescriptionKeyword_4_0_0; }
+
+ //description=EString
+ public Assignment getDescriptionAssignment_4_0_1() { return cDescriptionAssignment_4_0_1; }
+
+ //EString
+ public RuleCall getDescriptionEStringParserRuleCall_4_0_1_0() { return cDescriptionEStringParserRuleCall_4_0_1_0; }
+
+ //(('priority:' | 'value:') value=VExpression)?
+ public Group getGroup_4_1() { return cGroup_4_1; }
+
+ //'priority:' | 'value:'
+ public Alternatives getAlternatives_4_1_0() { return cAlternatives_4_1_0; }
+
+ //'priority:'
+ public Keyword getPriorityKeyword_4_1_0_0() { return cPriorityKeyword_4_1_0_0; }
+
+ //'value:'
+ public Keyword getValueKeyword_4_1_0_1() { return cValueKeyword_4_1_0_1; }
+
+ //value=VExpression
+ public Assignment getValueAssignment_4_1_1() { return cValueAssignment_4_1_1; }
+
+ //VExpression
+ public RuleCall getValueVExpressionParserRuleCall_4_1_1_0() { return cValueVExpressionParserRuleCall_4_1_1_0; }
+
+ //'}'
+ public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
+ }
+ public class ProjectElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.Project");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cProjectAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cProjectKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cDummyNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cDummyNameQualifiedNameParserRuleCall_2_0 = (RuleCall)cDummyNameAssignment_2.eContents().get(0);
+ private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
+ private final Keyword cVersionKeyword_4 = (Keyword)cGroup.eContents().get(4);
+ private final Assignment cVersionAssignment_5 = (Assignment)cGroup.eContents().get(5);
+ private final RuleCall cVersionEStringParserRuleCall_5_0 = (RuleCall)cVersionAssignment_5.eContents().get(0);
+ private final Keyword cRightCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6);
+
+ //Project rbacore::Project:
+ // {rbacore::Project}
+ // 'Project'
+ // dummyName=QualifiedName?
+ // '{'
+ // 'version:' version=EString
+ // '}';
+ @Override public ParserRule getRule() { return rule; }
+
+ //{rbacore::Project} 'Project' dummyName=QualifiedName? '{' 'version:' version=EString '}'
+ public Group getGroup() { return cGroup; }
+
+ //{rbacore::Project}
+ public Action getProjectAction_0() { return cProjectAction_0; }
+
+ //'Project'
+ public Keyword getProjectKeyword_1() { return cProjectKeyword_1; }
+
+ //dummyName=QualifiedName?
+ public Assignment getDummyNameAssignment_2() { return cDummyNameAssignment_2; }
+
+ //QualifiedName
+ public RuleCall getDummyNameQualifiedNameParserRuleCall_2_0() { return cDummyNameQualifiedNameParserRuleCall_2_0; }
+
+ //'{'
+ public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }
+
+ //'version:'
+ public Keyword getVersionKeyword_4() { return cVersionKeyword_4; }
+
+ //version=EString
+ public Assignment getVersionAssignment_5() { return cVersionAssignment_5; }
+
+ //EString
+ public RuleCall getVersionEStringParserRuleCall_5_0() { return cVersionEStringParserRuleCall_5_0; }
+
+ //'}'
+ public Keyword getRightCurlyBracketKeyword_6() { return cRightCurlyBracketKeyword_6; }
+ }
+ public class VExpressionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.VExpression");
+ private final RuleCall cVPlusOperatorParserRuleCall = (RuleCall)rule.eContents().get(1);
+
+ ///* #######################################
+ // * Sort Value Expression(VExpression)
+ // * ####################################### */ VExpression rbacore::Expression:
+ // VPlusOperator;
+ @Override public ParserRule getRule() { return rule; }
+
+ //VPlusOperator
+ public RuleCall getVPlusOperatorParserRuleCall() { return cVPlusOperatorParserRuleCall; }
+ }
+ public class VPlusOperatorElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.VPlusOperator");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final RuleCall cVComparisonAndParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
+ private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+ private final Group cGroup_1_0 = (Group)cGroup_1.eContents().get(0);
+ private final Group cGroup_1_0_0 = (Group)cGroup_1_0.eContents().get(0);
+ private final Action cPlusOperatorOperandAction_1_0_0_0 = (Action)cGroup_1_0_0.eContents().get(0);
+ private final RuleCall cOpPlusParserRuleCall_1_0_0_1 = (RuleCall)cGroup_1_0_0.eContents().get(1);
+ private final Assignment cOperandAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+ private final RuleCall cOperandVComparisonAndParserRuleCall_1_1_0 = (RuleCall)cOperandAssignment_1_1.eContents().get(0);
+
+ //VPlusOperator rbacore::Expression:
+ // VComparisonAnd (=> ({rbacore::PlusOperator.operand+=current} OpPlus) operand+=VComparisonAnd)*;
+ @Override public ParserRule getRule() { return rule; }
+
+ //VComparisonAnd (=> ({rbacore::PlusOperator.operand+=current} OpPlus) operand+=VComparisonAnd)*
+ public Group getGroup() { return cGroup; }
+
+ //VComparisonAnd
+ public RuleCall getVComparisonAndParserRuleCall_0() { return cVComparisonAndParserRuleCall_0; }
+
+ //(=> ({rbacore::PlusOperator.operand+=current} OpPlus) operand+=VComparisonAnd)*
+ public Group getGroup_1() { return cGroup_1; }
+
+ //=> ({rbacore::PlusOperator.operand+=current} OpPlus)
+ public Group getGroup_1_0() { return cGroup_1_0; }
+
+ //{rbacore::PlusOperator.operand+=current} OpPlus
+ public Group getGroup_1_0_0() { return cGroup_1_0_0; }
+
+ //{rbacore::PlusOperator.operand+=current}
+ public Action getPlusOperatorOperandAction_1_0_0_0() { return cPlusOperatorOperandAction_1_0_0_0; }
+
+ //OpPlus
+ public RuleCall getOpPlusParserRuleCall_1_0_0_1() { return cOpPlusParserRuleCall_1_0_0_1; }
+
+ //operand+=VComparisonAnd
+ public Assignment getOperandAssignment_1_1() { return cOperandAssignment_1_1; }
+
+ //VComparisonAnd
+ public RuleCall getOperandVComparisonAndParserRuleCall_1_1_0() { return cOperandVComparisonAndParserRuleCall_1_1_0; }
+ }
+ public class OpPlusElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpPlus");
+ private final Keyword cPlusSignKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpPlus:
+ // '+';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'+'
+ public Keyword getPlusSignKeyword() { return cPlusSignKeyword; }
+ }
+ public class VComparisonAndElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.VComparisonAnd");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final RuleCall cVRelationalExpressionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
+ private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+ private final Group cGroup_1_0 = (Group)cGroup_1.eContents().get(0);
+ private final Group cGroup_1_0_0 = (Group)cGroup_1_0.eContents().get(0);
+ private final Action cComparisonAndOperandAction_1_0_0_0 = (Action)cGroup_1_0_0.eContents().get(0);
+ private final RuleCall cOpAndParserRuleCall_1_0_0_1 = (RuleCall)cGroup_1_0_0.eContents().get(1);
+ private final Assignment cOperandAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+ private final RuleCall cOperandVRelationalExpressionParserRuleCall_1_1_0 = (RuleCall)cOperandAssignment_1_1.eContents().get(0);
+
+ //VComparisonAnd rbacore::Expression:
+ // VRelationalExpression (=> ({rbacore::ComparisonAnd.operand+=current} OpAnd) operand+=VRelationalExpression)*;
+ @Override public ParserRule getRule() { return rule; }
+
+ //VRelationalExpression (=> ({rbacore::ComparisonAnd.operand+=current} OpAnd) operand+=VRelationalExpression)*
+ public Group getGroup() { return cGroup; }
+
+ //VRelationalExpression
+ public RuleCall getVRelationalExpressionParserRuleCall_0() { return cVRelationalExpressionParserRuleCall_0; }
+
+ //(=> ({rbacore::ComparisonAnd.operand+=current} OpAnd) operand+=VRelationalExpression)*
+ public Group getGroup_1() { return cGroup_1; }
+
+ //=> ({rbacore::ComparisonAnd.operand+=current} OpAnd)
+ public Group getGroup_1_0() { return cGroup_1_0; }
+
+ //{rbacore::ComparisonAnd.operand+=current} OpAnd
+ public Group getGroup_1_0_0() { return cGroup_1_0_0; }
+
+ //{rbacore::ComparisonAnd.operand+=current}
+ public Action getComparisonAndOperandAction_1_0_0_0() { return cComparisonAndOperandAction_1_0_0_0; }
+
+ //OpAnd
+ public RuleCall getOpAndParserRuleCall_1_0_0_1() { return cOpAndParserRuleCall_1_0_0_1; }
+
+ //operand+=VRelationalExpression
+ public Assignment getOperandAssignment_1_1() { return cOperandAssignment_1_1; }
+
+ //VRelationalExpression
+ public RuleCall getOperandVRelationalExpressionParserRuleCall_1_1_0() { return cOperandVRelationalExpressionParserRuleCall_1_1_0; }
+ }
+ public class VRelationalExpressionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.VRelationalExpression");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final RuleCall cVPrimaryExpressionParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+ private final Group cGroup_1 = (Group)cAlternatives.eContents().get(1);
+ private final Action cMuchGreaterThanOperatorAction_1_0 = (Action)cGroup_1.eContents().get(0);
+ private final RuleCall cOpMuchGreaterThanParserRuleCall_1_1 = (RuleCall)cGroup_1.eContents().get(1);
+ private final Assignment cOperandAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2);
+ private final RuleCall cOperandVPrimaryExpressionParserRuleCall_1_2_0 = (RuleCall)cOperandAssignment_1_2.eContents().get(0);
+ private final Group cGroup_2 = (Group)cAlternatives.eContents().get(2);
+ private final Action cEqualToOperatorAction_2_0 = (Action)cGroup_2.eContents().get(0);
+ private final RuleCall cOpEqualToParserRuleCall_2_1 = (RuleCall)cGroup_2.eContents().get(1);
+ private final Assignment cOperandAssignment_2_2 = (Assignment)cGroup_2.eContents().get(2);
+ private final RuleCall cOperandVPrimaryExpressionParserRuleCall_2_2_0 = (RuleCall)cOperandAssignment_2_2.eContents().get(0);
+ private final Group cGroup_3 = (Group)cAlternatives.eContents().get(3);
+ private final Action cGreaterThanOperatorAction_3_0 = (Action)cGroup_3.eContents().get(0);
+ private final RuleCall cOpGreaterThanParserRuleCall_3_1 = (RuleCall)cGroup_3.eContents().get(1);
+ private final Assignment cOperandAssignment_3_2 = (Assignment)cGroup_3.eContents().get(2);
+ private final RuleCall cOperandVPrimaryExpressionParserRuleCall_3_2_0 = (RuleCall)cOperandAssignment_3_2.eContents().get(0);
+ private final Group cGroup_4 = (Group)cAlternatives.eContents().get(4);
+ private final Action cLowerThanOperatorAction_4_0 = (Action)cGroup_4.eContents().get(0);
+ private final RuleCall cOpLowerThanParserRuleCall_4_1 = (RuleCall)cGroup_4.eContents().get(1);
+ private final Assignment cOperandAssignment_4_2 = (Assignment)cGroup_4.eContents().get(2);
+ private final RuleCall cOperandVPrimaryExpressionParserRuleCall_4_2_0 = (RuleCall)cOperandAssignment_4_2.eContents().get(0);
+
+ //VRelationalExpression rbacore::Expression:
+ // VPrimaryExpression | {rbacore::MuchGreaterThanOperator} OpMuchGreaterThan operand+=VPrimaryExpression |
+ // {rbacore::EqualToOperator} OpEqualTo operand+=VPrimaryExpression | {rbacore::GreaterThanOperator} OpGreaterThan
+ // operand+=VPrimaryExpression | {rbacore::LowerThanOperator} OpLowerThan operand+=VPrimaryExpression;
+ @Override public ParserRule getRule() { return rule; }
+
+ //VPrimaryExpression | {rbacore::MuchGreaterThanOperator} OpMuchGreaterThan operand+=VPrimaryExpression |
+ //{rbacore::EqualToOperator} OpEqualTo operand+=VPrimaryExpression | {rbacore::GreaterThanOperator} OpGreaterThan
+ //operand+=VPrimaryExpression | {rbacore::LowerThanOperator} OpLowerThan operand+=VPrimaryExpression
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //VPrimaryExpression
+ public RuleCall getVPrimaryExpressionParserRuleCall_0() { return cVPrimaryExpressionParserRuleCall_0; }
+
+ //{rbacore::MuchGreaterThanOperator} OpMuchGreaterThan operand+=VPrimaryExpression
+ public Group getGroup_1() { return cGroup_1; }
+
+ //{rbacore::MuchGreaterThanOperator}
+ public Action getMuchGreaterThanOperatorAction_1_0() { return cMuchGreaterThanOperatorAction_1_0; }
+
+ //OpMuchGreaterThan
+ public RuleCall getOpMuchGreaterThanParserRuleCall_1_1() { return cOpMuchGreaterThanParserRuleCall_1_1; }
+
+ //operand+=VPrimaryExpression
+ public Assignment getOperandAssignment_1_2() { return cOperandAssignment_1_2; }
+
+ //VPrimaryExpression
+ public RuleCall getOperandVPrimaryExpressionParserRuleCall_1_2_0() { return cOperandVPrimaryExpressionParserRuleCall_1_2_0; }
+
+ //{rbacore::EqualToOperator} OpEqualTo operand+=VPrimaryExpression
+ public Group getGroup_2() { return cGroup_2; }
+
+ //{rbacore::EqualToOperator}
+ public Action getEqualToOperatorAction_2_0() { return cEqualToOperatorAction_2_0; }
+
+ //OpEqualTo
+ public RuleCall getOpEqualToParserRuleCall_2_1() { return cOpEqualToParserRuleCall_2_1; }
+
+ //operand+=VPrimaryExpression
+ public Assignment getOperandAssignment_2_2() { return cOperandAssignment_2_2; }
+
+ //VPrimaryExpression
+ public RuleCall getOperandVPrimaryExpressionParserRuleCall_2_2_0() { return cOperandVPrimaryExpressionParserRuleCall_2_2_0; }
+
+ //{rbacore::GreaterThanOperator} OpGreaterThan operand+=VPrimaryExpression
+ public Group getGroup_3() { return cGroup_3; }
+
+ //{rbacore::GreaterThanOperator}
+ public Action getGreaterThanOperatorAction_3_0() { return cGreaterThanOperatorAction_3_0; }
+
+ //OpGreaterThan
+ public RuleCall getOpGreaterThanParserRuleCall_3_1() { return cOpGreaterThanParserRuleCall_3_1; }
+
+ //operand+=VPrimaryExpression
+ public Assignment getOperandAssignment_3_2() { return cOperandAssignment_3_2; }
+
+ //VPrimaryExpression
+ public RuleCall getOperandVPrimaryExpressionParserRuleCall_3_2_0() { return cOperandVPrimaryExpressionParserRuleCall_3_2_0; }
+
+ //{rbacore::LowerThanOperator} OpLowerThan operand+=VPrimaryExpression
+ public Group getGroup_4() { return cGroup_4; }
+
+ //{rbacore::LowerThanOperator}
+ public Action getLowerThanOperatorAction_4_0() { return cLowerThanOperatorAction_4_0; }
+
+ //OpLowerThan
+ public RuleCall getOpLowerThanParserRuleCall_4_1() { return cOpLowerThanParserRuleCall_4_1; }
+
+ //operand+=VPrimaryExpression
+ public Assignment getOperandAssignment_4_2() { return cOperandAssignment_4_2; }
+
+ //VPrimaryExpression
+ public RuleCall getOperandVPrimaryExpressionParserRuleCall_4_2_0() { return cOperandVPrimaryExpressionParserRuleCall_4_2_0; }
+ }
+ public class OpMuchGreaterThanElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpMuchGreaterThan");
+ private final Keyword cGreaterThanSignGreaterThanSignKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpMuchGreaterThan:
+ // '>>';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'>>'
+ public Keyword getGreaterThanSignGreaterThanSignKeyword() { return cGreaterThanSignGreaterThanSignKeyword; }
+ }
+ public class OpEqualToElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpEqualTo");
+ private final Keyword cEqualsSignKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpEqualTo:
+ // '=';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'='
+ public Keyword getEqualsSignKeyword() { return cEqualsSignKeyword; }
+ }
+ public class OpGreaterThanElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpGreaterThan");
+ private final Keyword cGreaterThanSignKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpGreaterThan:
+ // '>';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'>'
+ public Keyword getGreaterThanSignKeyword() { return cGreaterThanSignKeyword; }
+ }
+ public class OpLowerThanElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpLowerThan");
+ private final Keyword cLessThanSignKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpLowerThan:
+ // '<';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'<'
+ public Keyword getLessThanSignKeyword() { return cLessThanSignKeyword; }
+ }
+ public class VPrimaryExpressionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.VPrimaryExpression");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final RuleCall cThatOfOperatorParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+ private final RuleCall cVValueExpressionParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+ private final Group cGroup_2 = (Group)cAlternatives.eContents().get(2);
+ private final Keyword cLeftParenthesisKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
+ private final RuleCall cVExpressionParserRuleCall_2_1 = (RuleCall)cGroup_2.eContents().get(1);
+ private final Keyword cRightParenthesisKeyword_2_2 = (Keyword)cGroup_2.eContents().get(2);
+
+ //VPrimaryExpression rbacore::Expression:
+ // ThatOfOperator | VValueExpression |
+ // '(' VExpression ')';
+ @Override public ParserRule getRule() { return rule; }
+
+ //ThatOfOperator | VValueExpression | '(' VExpression ')'
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //ThatOfOperator
+ public RuleCall getThatOfOperatorParserRuleCall_0() { return cThatOfOperatorParserRuleCall_0; }
+
+ //VValueExpression
+ public RuleCall getVValueExpressionParserRuleCall_1() { return cVValueExpressionParserRuleCall_1; }
+
+ //'(' VExpression ')'
+ public Group getGroup_2() { return cGroup_2; }
+
+ //'('
+ public Keyword getLeftParenthesisKeyword_2_0() { return cLeftParenthesisKeyword_2_0; }
+
+ //VExpression
+ public RuleCall getVExpressionParserRuleCall_2_1() { return cVExpressionParserRuleCall_2_1; }
+
+ //')'
+ public Keyword getRightParenthesisKeyword_2_2() { return cRightParenthesisKeyword_2_2; }
+ }
+ public class VValueExpressionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.VValueExpression");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final RuleCall cIntegerValueParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+ private final RuleCall cStandardValueParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+ private final RuleCall cNoneValueParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
+ private final RuleCall cMinValueParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
+ private final RuleCall cMaxValueParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
+
+ //VValueExpression rbacore::Expression:
+ // IntegerValue | StandardValue | NoneValue | MinValue | MaxValue;
+ @Override public ParserRule getRule() { return rule; }
+
+ //IntegerValue | StandardValue | NoneValue | MinValue | MaxValue
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //IntegerValue
+ public RuleCall getIntegerValueParserRuleCall_0() { return cIntegerValueParserRuleCall_0; }
+
+ //StandardValue
+ public RuleCall getStandardValueParserRuleCall_1() { return cStandardValueParserRuleCall_1; }
+
+ //NoneValue
+ public RuleCall getNoneValueParserRuleCall_2() { return cNoneValueParserRuleCall_2; }
+
+ //MinValue
+ public RuleCall getMinValueParserRuleCall_3() { return cMinValueParserRuleCall_3; }
+
+ //MaxValue
+ public RuleCall getMaxValueParserRuleCall_4() { return cMaxValueParserRuleCall_4; }
+ }
+ public class ThatOfOperatorElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.ThatOfOperator");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cThatOfOperatorAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cThatOfKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cOperandAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cOperandVMemberFeatureReferenceParserRuleCall_2_0 = (RuleCall)cOperandAssignment_2.eContents().get(0);
+
+ //ThatOfOperator rbacore::Expression:
+ // {rbacore::ThatOfOperator} 'That-of' operand+=VMemberFeatureReference?;
+ @Override public ParserRule getRule() { return rule; }
+
+ //{rbacore::ThatOfOperator} 'That-of' operand+=VMemberFeatureReference?
+ public Group getGroup() { return cGroup; }
+
+ //{rbacore::ThatOfOperator}
+ public Action getThatOfOperatorAction_0() { return cThatOfOperatorAction_0; }
+
+ //'That-of'
+ public Keyword getThatOfKeyword_1() { return cThatOfKeyword_1; }
+
+ //operand+=VMemberFeatureReference?
+ public Assignment getOperandAssignment_2() { return cOperandAssignment_2; }
+
+ //VMemberFeatureReference
+ public RuleCall getOperandVMemberFeatureReferenceParserRuleCall_2_0() { return cOperandVMemberFeatureReferenceParserRuleCall_2_0; }
+ }
+ public class VMemberFeatureReferenceElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.VMemberFeatureReference");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cObjectReferenceAction_0 = (Action)cGroup.eContents().get(0);
+ private final Assignment cRefObjectAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final CrossReference cRefObjectRuleObjectCrossReference_1_0 = (CrossReference)cRefObjectAssignment_1.eContents().get(0);
+ private final RuleCall cRefObjectRuleObjectValidIDParserRuleCall_1_0_1 = (RuleCall)cRefObjectRuleObjectCrossReference_1_0.eContents().get(1);
+ private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
+ private final Action cMemberFeatureReferenceOperandAction_2_0 = (Action)cGroup_2.eContents().get(0);
+ private final Keyword cFullStopKeyword_2_1 = (Keyword)cGroup_2.eContents().get(1);
+ private final Assignment cRefObjectAssignment_2_2 = (Assignment)cGroup_2.eContents().get(2);
+ private final CrossReference cRefObjectRuleObjectCrossReference_2_2_0 = (CrossReference)cRefObjectAssignment_2_2.eContents().get(0);
+ private final RuleCall cRefObjectRuleObjectValidIDParserRuleCall_2_2_0_1 = (RuleCall)cRefObjectRuleObjectCrossReference_2_2_0.eContents().get(1);
+
+ //VMemberFeatureReference rbacore::ObjectReference:
+ // {rbacore::ObjectReference} refObject=[rbacore::RuleObject|ValidID] ({MemberFeatureReference.operand+=current} '.'
+ // refObject=[rbacore::RuleObject|ValidID])*;
+ @Override public ParserRule getRule() { return rule; }
+
+ //{rbacore::ObjectReference} refObject=[rbacore::RuleObject|ValidID] ({MemberFeatureReference.operand+=current} '.'
+ //refObject=[rbacore::RuleObject|ValidID])*
+ public Group getGroup() { return cGroup; }
+
+ //{rbacore::ObjectReference}
+ public Action getObjectReferenceAction_0() { return cObjectReferenceAction_0; }
+
+ //refObject=[rbacore::RuleObject|ValidID]
+ public Assignment getRefObjectAssignment_1() { return cRefObjectAssignment_1; }
+
+ //[rbacore::RuleObject|ValidID]
+ public CrossReference getRefObjectRuleObjectCrossReference_1_0() { return cRefObjectRuleObjectCrossReference_1_0; }
+
+ //ValidID
+ public RuleCall getRefObjectRuleObjectValidIDParserRuleCall_1_0_1() { return cRefObjectRuleObjectValidIDParserRuleCall_1_0_1; }
+
+ //({MemberFeatureReference.operand+=current} '.' refObject=[rbacore::RuleObject|ValidID])*
+ public Group getGroup_2() { return cGroup_2; }
+
+ //{MemberFeatureReference.operand+=current}
+ public Action getMemberFeatureReferenceOperandAction_2_0() { return cMemberFeatureReferenceOperandAction_2_0; }
+
+ //'.'
+ public Keyword getFullStopKeyword_2_1() { return cFullStopKeyword_2_1; }
+
+ //refObject=[rbacore::RuleObject|ValidID]
+ public Assignment getRefObjectAssignment_2_2() { return cRefObjectAssignment_2_2; }
+
+ //[rbacore::RuleObject|ValidID]
+ public CrossReference getRefObjectRuleObjectCrossReference_2_2_0() { return cRefObjectRuleObjectCrossReference_2_2_0; }
+
+ //ValidID
+ public RuleCall getRefObjectRuleObjectValidIDParserRuleCall_2_2_0_1() { return cRefObjectRuleObjectValidIDParserRuleCall_2_2_0_1; }
+ }
+ public class IntegerValueElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.IntegerValue");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cIntegerValueAction_0 = (Action)cGroup.eContents().get(0);
+ private final Assignment cValueAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cValueEIntParserRuleCall_1_0 = (RuleCall)cValueAssignment_1.eContents().get(0);
+
+ //IntegerValue rbacore::IntegerValue:
+ // {rbacore::IntegerValue} value=EInt;
+ @Override public ParserRule getRule() { return rule; }
+
+ //{rbacore::IntegerValue} value=EInt
+ public Group getGroup() { return cGroup; }
+
+ //{rbacore::IntegerValue}
+ public Action getIntegerValueAction_0() { return cIntegerValueAction_0; }
+
+ //value=EInt
+ public Assignment getValueAssignment_1() { return cValueAssignment_1; }
+
+ //EInt
+ public RuleCall getValueEIntParserRuleCall_1_0() { return cValueEIntParserRuleCall_1_0; }
+ }
+ public class StandardValueElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.StandardValue");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cStandardValueAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cSTANDARD_VALUEKeyword_1 = (Keyword)cGroup.eContents().get(1);
+
+ //StandardValue rbacore::StandardValue:
+ // {rbacore::StandardValue}
+ // 'STANDARD_VALUE';
+ @Override public ParserRule getRule() { return rule; }
+
+ //{rbacore::StandardValue} 'STANDARD_VALUE'
+ public Group getGroup() { return cGroup; }
+
+ //{rbacore::StandardValue}
+ public Action getStandardValueAction_0() { return cStandardValueAction_0; }
+
+ //'STANDARD_VALUE'
+ public Keyword getSTANDARD_VALUEKeyword_1() { return cSTANDARD_VALUEKeyword_1; }
+ }
+ public class NoneValueElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.NoneValue");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cNoneValueAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cNONE_VALUEKeyword_1 = (Keyword)cGroup.eContents().get(1);
+
+ //NoneValue rbacore::NoneValue:
+ // {rbacore::NoneValue}
+ // 'NONE_VALUE';
+ @Override public ParserRule getRule() { return rule; }
+
+ //{rbacore::NoneValue} 'NONE_VALUE'
+ public Group getGroup() { return cGroup; }
+
+ //{rbacore::NoneValue}
+ public Action getNoneValueAction_0() { return cNoneValueAction_0; }
+
+ //'NONE_VALUE'
+ public Keyword getNONE_VALUEKeyword_1() { return cNONE_VALUEKeyword_1; }
+ }
+ public class MinValueElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.MinValue");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cMinValueAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cMIN_VALUEKeyword_1 = (Keyword)cGroup.eContents().get(1);
+
+ //MinValue rbacore::MinValue:
+ // {rbacore::MinValue}
+ // 'MIN_VALUE';
+ @Override public ParserRule getRule() { return rule; }
+
+ //{rbacore::MinValue} 'MIN_VALUE'
+ public Group getGroup() { return cGroup; }
+
+ //{rbacore::MinValue}
+ public Action getMinValueAction_0() { return cMinValueAction_0; }
+
+ //'MIN_VALUE'
+ public Keyword getMIN_VALUEKeyword_1() { return cMIN_VALUEKeyword_1; }
+ }
+ public class MaxValueElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.MaxValue");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cMaxValueAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cMAX_VALUEKeyword_1 = (Keyword)cGroup.eContents().get(1);
+
+ //MaxValue rbacore::MaxValue:
+ // {rbacore::MaxValue}
+ // 'MAX_VALUE';
+ @Override public ParserRule getRule() { return rule; }
+
+ //{rbacore::MaxValue} 'MAX_VALUE'
+ public Group getGroup() { return cGroup; }
+
+ //{rbacore::MaxValue}
+ public Action getMaxValueAction_0() { return cMaxValueAction_0; }
+
+ //'MAX_VALUE'
+ public Keyword getMAX_VALUEKeyword_1() { return cMAX_VALUEKeyword_1; }
+ }
+ public class CExpressionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.CExpression");
+ private final RuleCall cCImpliesOperatorParserRuleCall = (RuleCall)rule.eContents().get(1);
+
+ ///* #######################################
+ // * Constraint Expression(CExpression)
+ // * ####################################### */ CExpression rbacore::Expression:
+ // CImpliesOperator;
+ @Override public ParserRule getRule() { return rule; }
+
+ //CImpliesOperator
+ public RuleCall getCImpliesOperatorParserRuleCall() { return cCImpliesOperatorParserRuleCall; }
+ }
+ public class CImpliesOperatorElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.CImpliesOperator");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final RuleCall cCOrOperatorParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
+ private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+ private final Group cGroup_1_0 = (Group)cGroup_1.eContents().get(0);
+ private final Group cGroup_1_0_0 = (Group)cGroup_1_0.eContents().get(0);
+ private final Action cImpliesOperatorOperandAction_1_0_0_0 = (Action)cGroup_1_0_0.eContents().get(0);
+ private final RuleCall cOpImpliesParserRuleCall_1_0_0_1 = (RuleCall)cGroup_1_0_0.eContents().get(1);
+ private final Assignment cOperandAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+ private final RuleCall cOperandCOrOperatorParserRuleCall_1_1_0 = (RuleCall)cOperandAssignment_1_1.eContents().get(0);
+
+ //CImpliesOperator rbacore::Expression:
+ // COrOperator (=> ({rbacore::ImpliesOperator.operand+=current} OpImplies) operand+=COrOperator)*;
+ @Override public ParserRule getRule() { return rule; }
+
+ //COrOperator (=> ({rbacore::ImpliesOperator.operand+=current} OpImplies) operand+=COrOperator)*
+ public Group getGroup() { return cGroup; }
+
+ //COrOperator
+ public RuleCall getCOrOperatorParserRuleCall_0() { return cCOrOperatorParserRuleCall_0; }
+
+ //(=> ({rbacore::ImpliesOperator.operand+=current} OpImplies) operand+=COrOperator)*
+ public Group getGroup_1() { return cGroup_1; }
+
+ //=> ({rbacore::ImpliesOperator.operand+=current} OpImplies)
+ public Group getGroup_1_0() { return cGroup_1_0; }
+
+ //{rbacore::ImpliesOperator.operand+=current} OpImplies
+ public Group getGroup_1_0_0() { return cGroup_1_0_0; }
+
+ //{rbacore::ImpliesOperator.operand+=current}
+ public Action getImpliesOperatorOperandAction_1_0_0_0() { return cImpliesOperatorOperandAction_1_0_0_0; }
+
+ //OpImplies
+ public RuleCall getOpImpliesParserRuleCall_1_0_0_1() { return cOpImpliesParserRuleCall_1_0_0_1; }
+
+ //operand+=COrOperator
+ public Assignment getOperandAssignment_1_1() { return cOperandAssignment_1_1; }
+
+ //COrOperator
+ public RuleCall getOperandCOrOperatorParserRuleCall_1_1_0() { return cOperandCOrOperatorParserRuleCall_1_1_0; }
+ }
+ public class OpImpliesElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpImplies");
+ private final Keyword cHyphenMinusGreaterThanSignKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpImplies:
+ // '->';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'->'
+ public Keyword getHyphenMinusGreaterThanSignKeyword() { return cHyphenMinusGreaterThanSignKeyword; }
+ }
+ public class COrOperatorElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.COrOperator");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final RuleCall cCAndOperatorParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
+ private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+ private final Group cGroup_1_0 = (Group)cGroup_1.eContents().get(0);
+ private final Group cGroup_1_0_0 = (Group)cGroup_1_0.eContents().get(0);
+ private final Action cOrOperatorOperandAction_1_0_0_0 = (Action)cGroup_1_0_0.eContents().get(0);
+ private final RuleCall cOpOrParserRuleCall_1_0_0_1 = (RuleCall)cGroup_1_0_0.eContents().get(1);
+ private final Assignment cOperandAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+ private final RuleCall cOperandCAndOperatorParserRuleCall_1_1_0 = (RuleCall)cOperandAssignment_1_1.eContents().get(0);
+
+ //COrOperator rbacore::Expression:
+ // CAndOperator (=> ({rbacore::OrOperator.operand+=current} OpOr) operand+=CAndOperator)*;
+ @Override public ParserRule getRule() { return rule; }
+
+ //CAndOperator (=> ({rbacore::OrOperator.operand+=current} OpOr) operand+=CAndOperator)*
+ public Group getGroup() { return cGroup; }
+
+ //CAndOperator
+ public RuleCall getCAndOperatorParserRuleCall_0() { return cCAndOperatorParserRuleCall_0; }
+
+ //(=> ({rbacore::OrOperator.operand+=current} OpOr) operand+=CAndOperator)*
+ public Group getGroup_1() { return cGroup_1; }
+
+ //=> ({rbacore::OrOperator.operand+=current} OpOr)
+ public Group getGroup_1_0() { return cGroup_1_0; }
+
+ //{rbacore::OrOperator.operand+=current} OpOr
+ public Group getGroup_1_0_0() { return cGroup_1_0_0; }
+
+ //{rbacore::OrOperator.operand+=current}
+ public Action getOrOperatorOperandAction_1_0_0_0() { return cOrOperatorOperandAction_1_0_0_0; }
+
+ //OpOr
+ public RuleCall getOpOrParserRuleCall_1_0_0_1() { return cOpOrParserRuleCall_1_0_0_1; }
+
+ //operand+=CAndOperator
+ public Assignment getOperandAssignment_1_1() { return cOperandAssignment_1_1; }
+
+ //CAndOperator
+ public RuleCall getOperandCAndOperatorParserRuleCall_1_1_0() { return cOperandCAndOperatorParserRuleCall_1_1_0; }
+ }
+ public class OpOrElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpOr");
+ private final Keyword cORKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpOr:
+ // 'OR';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'OR'
+ public Keyword getORKeyword() { return cORKeyword; }
+ }
+ public class CAndOperatorElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.CAndOperator");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final RuleCall cCEqualityExpressionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
+ private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+ private final Group cGroup_1_0 = (Group)cGroup_1.eContents().get(0);
+ private final Group cGroup_1_0_0 = (Group)cGroup_1_0.eContents().get(0);
+ private final Action cAndOperatorOperandAction_1_0_0_0 = (Action)cGroup_1_0_0.eContents().get(0);
+ private final RuleCall cOpAndParserRuleCall_1_0_0_1 = (RuleCall)cGroup_1_0_0.eContents().get(1);
+ private final Assignment cOperandAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+ private final RuleCall cOperandCEqualityExpressionParserRuleCall_1_1_0 = (RuleCall)cOperandAssignment_1_1.eContents().get(0);
+
+ //CAndOperator rbacore::Expression:
+ // CEqualityExpression (=> ({rbacore::AndOperator.operand+=current} OpAnd) operand+=CEqualityExpression)*;
+ @Override public ParserRule getRule() { return rule; }
+
+ //CEqualityExpression (=> ({rbacore::AndOperator.operand+=current} OpAnd) operand+=CEqualityExpression)*
+ public Group getGroup() { return cGroup; }
+
+ //CEqualityExpression
+ public RuleCall getCEqualityExpressionParserRuleCall_0() { return cCEqualityExpressionParserRuleCall_0; }
+
+ //(=> ({rbacore::AndOperator.operand+=current} OpAnd) operand+=CEqualityExpression)*
+ public Group getGroup_1() { return cGroup_1; }
+
+ //=> ({rbacore::AndOperator.operand+=current} OpAnd)
+ public Group getGroup_1_0() { return cGroup_1_0; }
+
+ //{rbacore::AndOperator.operand+=current} OpAnd
+ public Group getGroup_1_0_0() { return cGroup_1_0_0; }
+
+ //{rbacore::AndOperator.operand+=current}
+ public Action getAndOperatorOperandAction_1_0_0_0() { return cAndOperatorOperandAction_1_0_0_0; }
+
+ //OpAnd
+ public RuleCall getOpAndParserRuleCall_1_0_0_1() { return cOpAndParserRuleCall_1_0_0_1; }
+
+ //operand+=CEqualityExpression
+ public Assignment getOperandAssignment_1_1() { return cOperandAssignment_1_1; }
+
+ //CEqualityExpression
+ public RuleCall getOperandCEqualityExpressionParserRuleCall_1_1_0() { return cOperandCEqualityExpressionParserRuleCall_1_1_0; }
+ }
+ public class OpAndElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpAnd");
+ private final Keyword cANDKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpAnd:
+ // 'AND';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'AND'
+ public Keyword getANDKeyword() { return cANDKeyword; }
+ }
+ public class CEqualityExpressionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.CEqualityExpression");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final RuleCall cCRelationalExpressionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
+ private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+ private final Group cGroup_1_0 = (Group)cGroup_1.eContents().get(0);
+ private final Alternatives cAlternatives_1_0_0 = (Alternatives)cGroup_1_0.eContents().get(0);
+ private final Group cGroup_1_0_0_0 = (Group)cAlternatives_1_0_0.eContents().get(0);
+ private final Action cObjectCompareOperandAction_1_0_0_0_0 = (Action)cGroup_1_0_0_0.eContents().get(0);
+ private final RuleCall cOpObjectCompareParserRuleCall_1_0_0_0_1 = (RuleCall)cGroup_1_0_0_0.eContents().get(1);
+ private final Group cGroup_1_0_0_1 = (Group)cAlternatives_1_0_0.eContents().get(1);
+ private final Action cObjectCompareNotOperandAction_1_0_0_1_0 = (Action)cGroup_1_0_0_1.eContents().get(0);
+ private final RuleCall cOpObjectNotCompareParserRuleCall_1_0_0_1_1 = (RuleCall)cGroup_1_0_0_1.eContents().get(1);
+ private final Group cGroup_1_0_0_2 = (Group)cAlternatives_1_0_0.eContents().get(2);
+ private final Action cIsEqualToOperatorOperandAction_1_0_0_2_0 = (Action)cGroup_1_0_0_2.eContents().get(0);
+ private final RuleCall cOpEqualityParserRuleCall_1_0_0_2_1 = (RuleCall)cGroup_1_0_0_2.eContents().get(1);
+ private final Assignment cOperandAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+ private final RuleCall cOperandCRelationalExpressionParserRuleCall_1_1_0 = (RuleCall)cOperandAssignment_1_1.eContents().get(0);
+
+ //CEqualityExpression rbacore::Expression:
+ // CRelationalExpression (=> ({rbacore::ObjectCompare.operand+=current} OpObjectCompare |
+ // {rbacore::ObjectCompareNot.operand+=current} OpObjectNotCompare | {rbacore::IsEqualToOperator.operand+=current}
+ // OpEquality) operand+=CRelationalExpression)*;
+ @Override public ParserRule getRule() { return rule; }
+
+ //CRelationalExpression (=> ({rbacore::ObjectCompare.operand+=current} OpObjectCompare |
+ //{rbacore::ObjectCompareNot.operand+=current} OpObjectNotCompare | {rbacore::IsEqualToOperator.operand+=current}
+ //OpEquality) operand+=CRelationalExpression)*
+ public Group getGroup() { return cGroup; }
+
+ //CRelationalExpression
+ public RuleCall getCRelationalExpressionParserRuleCall_0() { return cCRelationalExpressionParserRuleCall_0; }
+
+ //(=> ({rbacore::ObjectCompare.operand+=current} OpObjectCompare | {rbacore::ObjectCompareNot.operand+=current}
+ //OpObjectNotCompare | {rbacore::IsEqualToOperator.operand+=current} OpEquality) operand+=CRelationalExpression)*
+ public Group getGroup_1() { return cGroup_1; }
+
+ //=> ({rbacore::ObjectCompare.operand+=current} OpObjectCompare | {rbacore::ObjectCompareNot.operand+=current}
+ //OpObjectNotCompare | {rbacore::IsEqualToOperator.operand+=current} OpEquality)
+ public Group getGroup_1_0() { return cGroup_1_0; }
+
+ //{rbacore::ObjectCompare.operand+=current} OpObjectCompare | {rbacore::ObjectCompareNot.operand+=current}
+ //OpObjectNotCompare | {rbacore::IsEqualToOperator.operand+=current} OpEquality
+ public Alternatives getAlternatives_1_0_0() { return cAlternatives_1_0_0; }
+
+ //{rbacore::ObjectCompare.operand+=current} OpObjectCompare
+ public Group getGroup_1_0_0_0() { return cGroup_1_0_0_0; }
+
+ //{rbacore::ObjectCompare.operand+=current}
+ public Action getObjectCompareOperandAction_1_0_0_0_0() { return cObjectCompareOperandAction_1_0_0_0_0; }
+
+ //OpObjectCompare
+ public RuleCall getOpObjectCompareParserRuleCall_1_0_0_0_1() { return cOpObjectCompareParserRuleCall_1_0_0_0_1; }
+
+ //{rbacore::ObjectCompareNot.operand+=current} OpObjectNotCompare
+ public Group getGroup_1_0_0_1() { return cGroup_1_0_0_1; }
+
+ //{rbacore::ObjectCompareNot.operand+=current}
+ public Action getObjectCompareNotOperandAction_1_0_0_1_0() { return cObjectCompareNotOperandAction_1_0_0_1_0; }
+
+ //OpObjectNotCompare
+ public RuleCall getOpObjectNotCompareParserRuleCall_1_0_0_1_1() { return cOpObjectNotCompareParserRuleCall_1_0_0_1_1; }
+
+ //{rbacore::IsEqualToOperator.operand+=current} OpEquality
+ public Group getGroup_1_0_0_2() { return cGroup_1_0_0_2; }
+
+ //{rbacore::IsEqualToOperator.operand+=current}
+ public Action getIsEqualToOperatorOperandAction_1_0_0_2_0() { return cIsEqualToOperatorOperandAction_1_0_0_2_0; }
+
+ //OpEquality
+ public RuleCall getOpEqualityParserRuleCall_1_0_0_2_1() { return cOpEqualityParserRuleCall_1_0_0_2_1; }
+
+ //operand+=CRelationalExpression
+ public Assignment getOperandAssignment_1_1() { return cOperandAssignment_1_1; }
+
+ //CRelationalExpression
+ public RuleCall getOperandCRelationalExpressionParserRuleCall_1_1_0() { return cOperandCRelationalExpressionParserRuleCall_1_1_0; }
+ }
+ public class OpObjectCompareElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpObjectCompare");
+ private final Keyword cEqualsSignEqualsSignKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpObjectCompare:
+ // '==';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'=='
+ public Keyword getEqualsSignEqualsSignKeyword() { return cEqualsSignEqualsSignKeyword; }
+ }
+ public class OpObjectNotCompareElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpObjectNotCompare");
+ private final Keyword cExclamationMarkEqualsSignKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpObjectNotCompare:
+ // '!=';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'!='
+ public Keyword getExclamationMarkEqualsSignKeyword() { return cExclamationMarkEqualsSignKeyword; }
+ }
+ public class OpEqualityElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpEquality");
+ private final Keyword cEqualsSignKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpEquality:
+ // '=';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'='
+ public Keyword getEqualsSignKeyword() { return cEqualsSignKeyword; }
+ }
+ public class CRelationalExpressionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.CRelationalExpression");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final RuleCall cCUnaryOperationParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
+ private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+ private final Group cGroup_1_0 = (Group)cGroup_1.eContents().get(0);
+ private final Alternatives cAlternatives_1_0_0 = (Alternatives)cGroup_1_0.eContents().get(0);
+ private final Group cGroup_1_0_0_0 = (Group)cAlternatives_1_0_0.eContents().get(0);
+ private final Action cIsGreaterThanEqualOperatorOperandAction_1_0_0_0_0 = (Action)cGroup_1_0_0_0.eContents().get(0);
+ private final RuleCall cOpIsGreaterThanEqualParserRuleCall_1_0_0_0_1 = (RuleCall)cGroup_1_0_0_0.eContents().get(1);
+ private final Group cGroup_1_0_0_1 = (Group)cAlternatives_1_0_0.eContents().get(1);
+ private final Action cIsLowerThanEqualOperatorOperandAction_1_0_0_1_0 = (Action)cGroup_1_0_0_1.eContents().get(0);
+ private final RuleCall cOpIsLowerThanEqualParserRuleCall_1_0_0_1_1 = (RuleCall)cGroup_1_0_0_1.eContents().get(1);
+ private final Group cGroup_1_0_0_2 = (Group)cAlternatives_1_0_0.eContents().get(2);
+ private final Action cIsGreaterThanOperatorOperandAction_1_0_0_2_0 = (Action)cGroup_1_0_0_2.eContents().get(0);
+ private final RuleCall cOpIsGreaterThanParserRuleCall_1_0_0_2_1 = (RuleCall)cGroup_1_0_0_2.eContents().get(1);
+ private final Group cGroup_1_0_0_3 = (Group)cAlternatives_1_0_0.eContents().get(3);
+ private final Action cIsLowerThanOperatorOperandAction_1_0_0_3_0 = (Action)cGroup_1_0_0_3.eContents().get(0);
+ private final RuleCall cOpIsLowerThanParserRuleCall_1_0_0_3_1 = (RuleCall)cGroup_1_0_0_3.eContents().get(1);
+ private final Assignment cOperandAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+ private final RuleCall cOperandCUnaryOperationParserRuleCall_1_1_0 = (RuleCall)cOperandAssignment_1_1.eContents().get(0);
+
+ //CRelationalExpression rbacore::Expression:
+ // CUnaryOperation (=> ({rbacore::IsGreaterThanEqualOperator.operand+=current} OpIsGreaterThanEqual |
+ // {rbacore::IsLowerThanEqualOperator.operand+=current} OpIsLowerThanEqual |
+ // {rbacore::IsGreaterThanOperator.operand+=current} OpIsGreaterThan | {rbacore::IsLowerThanOperator.operand+=current}
+ // OpIsLowerThan) operand+=CUnaryOperation)*;
+ @Override public ParserRule getRule() { return rule; }
+
+ //CUnaryOperation (=> ({rbacore::IsGreaterThanEqualOperator.operand+=current} OpIsGreaterThanEqual |
+ //{rbacore::IsLowerThanEqualOperator.operand+=current} OpIsLowerThanEqual |
+ //{rbacore::IsGreaterThanOperator.operand+=current} OpIsGreaterThan | {rbacore::IsLowerThanOperator.operand+=current}
+ //OpIsLowerThan) operand+=CUnaryOperation)*
+ public Group getGroup() { return cGroup; }
+
+ //CUnaryOperation
+ public RuleCall getCUnaryOperationParserRuleCall_0() { return cCUnaryOperationParserRuleCall_0; }
+
+ //(=> ({rbacore::IsGreaterThanEqualOperator.operand+=current} OpIsGreaterThanEqual |
+ //{rbacore::IsLowerThanEqualOperator.operand+=current} OpIsLowerThanEqual |
+ //{rbacore::IsGreaterThanOperator.operand+=current} OpIsGreaterThan | {rbacore::IsLowerThanOperator.operand+=current}
+ //OpIsLowerThan) operand+=CUnaryOperation)*
+ public Group getGroup_1() { return cGroup_1; }
+
+ //=> ({rbacore::IsGreaterThanEqualOperator.operand+=current} OpIsGreaterThanEqual |
+ //{rbacore::IsLowerThanEqualOperator.operand+=current} OpIsLowerThanEqual |
+ //{rbacore::IsGreaterThanOperator.operand+=current} OpIsGreaterThan | {rbacore::IsLowerThanOperator.operand+=current}
+ //OpIsLowerThan)
+ public Group getGroup_1_0() { return cGroup_1_0; }
+
+ //{rbacore::IsGreaterThanEqualOperator.operand+=current} OpIsGreaterThanEqual |
+ //{rbacore::IsLowerThanEqualOperator.operand+=current} OpIsLowerThanEqual |
+ //{rbacore::IsGreaterThanOperator.operand+=current} OpIsGreaterThan | {rbacore::IsLowerThanOperator.operand+=current}
+ //OpIsLowerThan
+ public Alternatives getAlternatives_1_0_0() { return cAlternatives_1_0_0; }
+
+ //{rbacore::IsGreaterThanEqualOperator.operand+=current} OpIsGreaterThanEqual
+ public Group getGroup_1_0_0_0() { return cGroup_1_0_0_0; }
+
+ //{rbacore::IsGreaterThanEqualOperator.operand+=current}
+ public Action getIsGreaterThanEqualOperatorOperandAction_1_0_0_0_0() { return cIsGreaterThanEqualOperatorOperandAction_1_0_0_0_0; }
+
+ //OpIsGreaterThanEqual
+ public RuleCall getOpIsGreaterThanEqualParserRuleCall_1_0_0_0_1() { return cOpIsGreaterThanEqualParserRuleCall_1_0_0_0_1; }
+
+ //{rbacore::IsLowerThanEqualOperator.operand+=current} OpIsLowerThanEqual
+ public Group getGroup_1_0_0_1() { return cGroup_1_0_0_1; }
+
+ //{rbacore::IsLowerThanEqualOperator.operand+=current}
+ public Action getIsLowerThanEqualOperatorOperandAction_1_0_0_1_0() { return cIsLowerThanEqualOperatorOperandAction_1_0_0_1_0; }
+
+ //OpIsLowerThanEqual
+ public RuleCall getOpIsLowerThanEqualParserRuleCall_1_0_0_1_1() { return cOpIsLowerThanEqualParserRuleCall_1_0_0_1_1; }
+
+ //{rbacore::IsGreaterThanOperator.operand+=current} OpIsGreaterThan
+ public Group getGroup_1_0_0_2() { return cGroup_1_0_0_2; }
+
+ //{rbacore::IsGreaterThanOperator.operand+=current}
+ public Action getIsGreaterThanOperatorOperandAction_1_0_0_2_0() { return cIsGreaterThanOperatorOperandAction_1_0_0_2_0; }
+
+ //OpIsGreaterThan
+ public RuleCall getOpIsGreaterThanParserRuleCall_1_0_0_2_1() { return cOpIsGreaterThanParserRuleCall_1_0_0_2_1; }
+
+ //{rbacore::IsLowerThanOperator.operand+=current} OpIsLowerThan
+ public Group getGroup_1_0_0_3() { return cGroup_1_0_0_3; }
+
+ //{rbacore::IsLowerThanOperator.operand+=current}
+ public Action getIsLowerThanOperatorOperandAction_1_0_0_3_0() { return cIsLowerThanOperatorOperandAction_1_0_0_3_0; }
+
+ //OpIsLowerThan
+ public RuleCall getOpIsLowerThanParserRuleCall_1_0_0_3_1() { return cOpIsLowerThanParserRuleCall_1_0_0_3_1; }
+
+ //operand+=CUnaryOperation
+ public Assignment getOperandAssignment_1_1() { return cOperandAssignment_1_1; }
+
+ //CUnaryOperation
+ public RuleCall getOperandCUnaryOperationParserRuleCall_1_1_0() { return cOperandCUnaryOperationParserRuleCall_1_1_0; }
+ }
+ public class OpIsGreaterThanEqualElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpIsGreaterThanEqual");
+ private final Keyword cGreaterThanSignEqualsSignKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpIsGreaterThanEqual:
+ // '>=';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'>='
+ public Keyword getGreaterThanSignEqualsSignKeyword() { return cGreaterThanSignEqualsSignKeyword; }
+ }
+ public class OpIsLowerThanEqualElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpIsLowerThanEqual");
+ private final Keyword cLessThanSignEqualsSignKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpIsLowerThanEqual:
+ // '<=';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'<='
+ public Keyword getLessThanSignEqualsSignKeyword() { return cLessThanSignEqualsSignKeyword; }
+ }
+ public class OpIsGreaterThanElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpIsGreaterThan");
+ private final Keyword cGreaterThanSignKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpIsGreaterThan:
+ // '>';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'>'
+ public Keyword getGreaterThanSignKeyword() { return cGreaterThanSignKeyword; }
+ }
+ public class OpIsLowerThanElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpIsLowerThan");
+ private final Keyword cLessThanSignKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpIsLowerThan:
+ // '<';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'<'
+ public Keyword getLessThanSignKeyword() { return cLessThanSignKeyword; }
+ }
+ public class CUnaryOperationElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.CUnaryOperation");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0);
+ private final Action cNotOperatorAction_0_0 = (Action)cGroup_0.eContents().get(0);
+ private final RuleCall cOpNotParserRuleCall_0_1 = (RuleCall)cGroup_0.eContents().get(1);
+ private final Assignment cOperandAssignment_0_2 = (Assignment)cGroup_0.eContents().get(2);
+ private final RuleCall cOperandCUnaryOperationParserRuleCall_0_2_0 = (RuleCall)cOperandAssignment_0_2.eContents().get(0);
+ private final RuleCall cCOperationFeatureCallParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+
+ //CUnaryOperation rbacore::Expression:
+ // {rbacore::NotOperator} OpNot operand+=CUnaryOperation | COperationFeatureCall;
+ @Override public ParserRule getRule() { return rule; }
+
+ //{rbacore::NotOperator} OpNot operand+=CUnaryOperation | COperationFeatureCall
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //{rbacore::NotOperator} OpNot operand+=CUnaryOperation
+ public Group getGroup_0() { return cGroup_0; }
+
+ //{rbacore::NotOperator}
+ public Action getNotOperatorAction_0_0() { return cNotOperatorAction_0_0; }
+
+ //OpNot
+ public RuleCall getOpNotParserRuleCall_0_1() { return cOpNotParserRuleCall_0_1; }
+
+ //operand+=CUnaryOperation
+ public Assignment getOperandAssignment_0_2() { return cOperandAssignment_0_2; }
+
+ //CUnaryOperation
+ public RuleCall getOperandCUnaryOperationParserRuleCall_0_2_0() { return cOperandCUnaryOperationParserRuleCall_0_2_0; }
+
+ //COperationFeatureCall
+ public RuleCall getCOperationFeatureCallParserRuleCall_1() { return cCOperationFeatureCallParserRuleCall_1; }
+ }
+ public class OpNotElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpNot");
+ private final Keyword cExclamationMarkKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpNot:
+ // "!";
+ @Override public ParserRule getRule() { return rule; }
+
+ //"!"
+ public Keyword getExclamationMarkKeyword() { return cExclamationMarkKeyword; }
+ }
+ public class COperationFeatureCallElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.COperationFeatureCall");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final RuleCall cCPrimaryExpressionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
+ private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+ private final Group cGroup_1_0 = (Group)cGroup_1.eContents().get(0);
+ private final Keyword cFullStopKeyword_1_0_0 = (Keyword)cGroup_1_0.eContents().get(0);
+ private final Alternatives cAlternatives_1_1 = (Alternatives)cGroup_1.eContents().get(1);
+ private final Group cGroup_1_1_0 = (Group)cAlternatives_1_1.eContents().get(0);
+ private final Alternatives cAlternatives_1_1_0_0 = (Alternatives)cGroup_1_1_0.eContents().get(0);
+ private final Group cGroup_1_1_0_0_0 = (Group)cAlternatives_1_1_0_0.eContents().get(0);
+ private final Action cGetPropertyOperandAction_1_1_0_0_0_0 = (Action)cGroup_1_1_0_0_0.eContents().get(0);
+ private final RuleCall cOpGetPropertyParserRuleCall_1_1_0_0_0_1 = (RuleCall)cGroup_1_1_0_0_0.eContents().get(1);
+ private final Group cGroup_1_1_0_0_1 = (Group)cAlternatives_1_1_0_0.eContents().get(1);
+ private final Action cIsOnOperandAction_1_1_0_0_1_0 = (Action)cGroup_1_1_0_0_1.eContents().get(0);
+ private final RuleCall cOpIsOnParserRuleCall_1_1_0_0_1_1 = (RuleCall)cGroup_1_1_0_0_1.eContents().get(1);
+ private final Group cGroup_1_1_0_0_2 = (Group)cAlternatives_1_1_0_0.eContents().get(2);
+ private final Action cGetContentsListOperandAction_1_1_0_0_2_0 = (Action)cGroup_1_1_0_0_2.eContents().get(0);
+ private final RuleCall cOpGetContentsListParserRuleCall_1_1_0_0_2_1 = (RuleCall)cGroup_1_1_0_0_2.eContents().get(1);
+ private final Group cGroup_1_1_0_0_3 = (Group)cAlternatives_1_1_0_0.eContents().get(3);
+ private final Action cContentValueOperandAction_1_1_0_0_3_0 = (Action)cGroup_1_1_0_0_3.eContents().get(0);
+ private final RuleCall cOpContentValueParserRuleCall_1_1_0_0_3_1 = (RuleCall)cGroup_1_1_0_0_3.eContents().get(1);
+ private final Group cGroup_1_1_0_0_4 = (Group)cAlternatives_1_1_0_0.eContents().get(4);
+ private final Action cIsActiveOperandAction_1_1_0_0_4_0 = (Action)cGroup_1_1_0_0_4.eContents().get(0);
+ private final RuleCall cOpIsActiveParserRuleCall_1_1_0_0_4_1 = (RuleCall)cGroup_1_1_0_0_4.eContents().get(1);
+ private final Group cGroup_1_1_0_0_5 = (Group)cAlternatives_1_1_0_0.eContents().get(5);
+ private final Action cGetAllocatablesOperandAction_1_1_0_0_5_0 = (Action)cGroup_1_1_0_0_5.eContents().get(0);
+ private final RuleCall cOpGetAllocatablesParserRuleCall_1_1_0_0_5_1 = (RuleCall)cGroup_1_1_0_0_5.eContents().get(1);
+ private final Group cGroup_1_1_0_0_6 = (Group)cAlternatives_1_1_0_0.eContents().get(6);
+ private final Action cAllocatedContentOperandAction_1_1_0_0_6_0 = (Action)cGroup_1_1_0_0_6.eContents().get(0);
+ private final RuleCall cOpAllocatedContentParserRuleCall_1_1_0_0_6_1 = (RuleCall)cGroup_1_1_0_0_6.eContents().get(1);
+ private final Group cGroup_1_1_0_0_7 = (Group)cAlternatives_1_1_0_0.eContents().get(7);
+ private final Action cHasComeEarlierThanOperandAction_1_1_0_0_7_0 = (Action)cGroup_1_1_0_0_7.eContents().get(0);
+ private final RuleCall cOpHasComeEarlierThanParserRuleCall_1_1_0_0_7_1 = (RuleCall)cGroup_1_1_0_0_7.eContents().get(1);
+ private final Group cGroup_1_1_0_0_8 = (Group)cAlternatives_1_1_0_0.eContents().get(8);
+ private final Action cHasComeLaterThanOperandAction_1_1_0_0_8_0 = (Action)cGroup_1_1_0_0_8.eContents().get(0);
+ private final RuleCall cOpHasComeLaterThanParserRuleCall_1_1_0_0_8_1 = (RuleCall)cGroup_1_1_0_0_8.eContents().get(1);
+ private final Group cGroup_1_1_0_0_9 = (Group)cAlternatives_1_1_0_0.eContents().get(9);
+ private final Action cStateValueOperandAction_1_1_0_0_9_0 = (Action)cGroup_1_1_0_0_9.eContents().get(0);
+ private final RuleCall cOpStateValueParserRuleCall_1_1_0_0_9_1 = (RuleCall)cGroup_1_1_0_0_9.eContents().get(1);
+ private final Group cGroup_1_1_0_0_10 = (Group)cAlternatives_1_1_0_0.eContents().get(10);
+ private final Action cActiveContentsOperandAction_1_1_0_0_10_0 = (Action)cGroup_1_1_0_0_10.eContents().get(0);
+ private final RuleCall cOpActiveContentsParserRuleCall_1_1_0_0_10_1 = (RuleCall)cGroup_1_1_0_0_10.eContents().get(1);
+ private final Group cGroup_1_1_0_0_11 = (Group)cAlternatives_1_1_0_0.eContents().get(11);
+ private final Action cSizeOperatorOperandAction_1_1_0_0_11_0 = (Action)cGroup_1_1_0_0_11.eContents().get(0);
+ private final RuleCall cOpSizeOperatorParserRuleCall_1_1_0_0_11_1 = (RuleCall)cGroup_1_1_0_0_11.eContents().get(1);
+ private final Group cGroup_1_1_0_0_12 = (Group)cAlternatives_1_1_0_0.eContents().get(12);
+ private final Action cHasBeenDisplayedOperandAction_1_1_0_0_12_0 = (Action)cGroup_1_1_0_0_12.eContents().get(0);
+ private final RuleCall cOpHasBeenDisplayedParserRuleCall_1_1_0_0_12_1 = (RuleCall)cGroup_1_1_0_0_12.eContents().get(1);
+ private final Group cGroup_1_1_0_0_13 = (Group)cAlternatives_1_1_0_0.eContents().get(13);
+ private final Action cActiveStateOperandAction_1_1_0_0_13_0 = (Action)cGroup_1_1_0_0_13.eContents().get(0);
+ private final RuleCall cOpActiveStateParserRuleCall_1_1_0_0_13_1 = (RuleCall)cGroup_1_1_0_0_13.eContents().get(1);
+ private final Group cGroup_1_1_0_0_14 = (Group)cAlternatives_1_1_0_0.eContents().get(14);
+ private final Action cIsDisplayedOperandAction_1_1_0_0_14_0 = (Action)cGroup_1_1_0_0_14.eContents().get(0);
+ private final RuleCall cOpIsDisplayedParserRuleCall_1_1_0_0_14_1 = (RuleCall)cGroup_1_1_0_0_14.eContents().get(1);
+ private final Group cGroup_1_1_0_0_15 = (Group)cAlternatives_1_1_0_0.eContents().get(15);
+ private final Action cIsHiddenOperandAction_1_1_0_0_15_0 = (Action)cGroup_1_1_0_0_15.eContents().get(0);
+ private final RuleCall cOpIsHiddenParserRuleCall_1_1_0_0_15_1 = (RuleCall)cGroup_1_1_0_0_15.eContents().get(1);
+ private final Group cGroup_1_1_0_0_16 = (Group)cAlternatives_1_1_0_0.eContents().get(16);
+ private final Action cDisplayingContentOperandAction_1_1_0_0_16_0 = (Action)cGroup_1_1_0_0_16.eContents().get(0);
+ private final RuleCall cOpDisplayingContentParserRuleCall_1_1_0_0_16_1 = (RuleCall)cGroup_1_1_0_0_16.eContents().get(1);
+ private final Group cGroup_1_1_0_0_17 = (Group)cAlternatives_1_1_0_0.eContents().get(17);
+ private final Action cIsVisibleOperandAction_1_1_0_0_17_0 = (Action)cGroup_1_1_0_0_17.eContents().get(0);
+ private final RuleCall cOpIsVisibleParserRuleCall_1_1_0_0_17_1 = (RuleCall)cGroup_1_1_0_0_17.eContents().get(1);
+ private final Group cGroup_1_1_0_0_18 = (Group)cAlternatives_1_1_0_0.eContents().get(18);
+ private final Action cIsOutputtedOperandAction_1_1_0_0_18_0 = (Action)cGroup_1_1_0_0_18.eContents().get(0);
+ private final RuleCall cOpIsOutputtedParserRuleCall_1_1_0_0_18_1 = (RuleCall)cGroup_1_1_0_0_18.eContents().get(1);
+ private final Group cGroup_1_1_0_0_19 = (Group)cAlternatives_1_1_0_0.eContents().get(19);
+ private final Action cIsMutedOperandAction_1_1_0_0_19_0 = (Action)cGroup_1_1_0_0_19.eContents().get(0);
+ private final RuleCall cOpIsMutedParserRuleCall_1_1_0_0_19_1 = (RuleCall)cGroup_1_1_0_0_19.eContents().get(1);
+ private final Group cGroup_1_1_0_0_20 = (Group)cAlternatives_1_1_0_0.eContents().get(20);
+ private final Action cOutputtingSoundOperandAction_1_1_0_0_20_0 = (Action)cGroup_1_1_0_0_20.eContents().get(0);
+ private final RuleCall cOpOutputtingSoundParserRuleCall_1_1_0_0_20_1 = (RuleCall)cGroup_1_1_0_0_20.eContents().get(1);
+ private final Group cGroup_1_1_0_0_21 = (Group)cAlternatives_1_1_0_0.eContents().get(21);
+ private final Action cIsSoundingOperandAction_1_1_0_0_21_0 = (Action)cGroup_1_1_0_0_21.eContents().get(0);
+ private final RuleCall cOpIsSoundingParserRuleCall_1_1_0_0_21_1 = (RuleCall)cGroup_1_1_0_0_21.eContents().get(1);
+ private final Group cGroup_1_1_0_0_22 = (Group)cAlternatives_1_1_0_0.eContents().get(22);
+ private final Action cIsAllocatedToOperandAction_1_1_0_0_22_0 = (Action)cGroup_1_1_0_0_22.eContents().get(0);
+ private final RuleCall cOpIsAllocatedToParserRuleCall_1_1_0_0_22_1 = (RuleCall)cGroup_1_1_0_0_22.eContents().get(1);
+ private final Group cGroup_1_1_0_0_23 = (Group)cAlternatives_1_1_0_0.eContents().get(23);
+ private final Action cIsChangedOperandAction_1_1_0_0_23_0 = (Action)cGroup_1_1_0_0_23.eContents().get(0);
+ private final RuleCall cOpIsChangedParserRuleCall_1_1_0_0_23_1 = (RuleCall)cGroup_1_1_0_0_23.eContents().get(1);
+ private final Group cGroup_1_1_0_0_24 = (Group)cAlternatives_1_1_0_0.eContents().get(24);
+ private final Action cIsTranslatedToOperandAction_1_1_0_0_24_0 = (Action)cGroup_1_1_0_0_24.eContents().get(0);
+ private final RuleCall cOpIsTranslatedToParserRuleCall_1_1_0_0_24_1 = (RuleCall)cGroup_1_1_0_0_24.eContents().get(1);
+ private final Group cGroup_1_1_0_0_25 = (Group)cAlternatives_1_1_0_0.eContents().get(25);
+ private final Action cIsDisplayedOnOperandAction_1_1_0_0_25_0 = (Action)cGroup_1_1_0_0_25.eContents().get(0);
+ private final RuleCall cOpIsDisplayedOnParserRuleCall_1_1_0_0_25_1 = (RuleCall)cGroup_1_1_0_0_25.eContents().get(1);
+ private final Group cGroup_1_1_0_0_26 = (Group)cAlternatives_1_1_0_0.eContents().get(26);
+ private final Action cIsChangedDisplayOperandAction_1_1_0_0_26_0 = (Action)cGroup_1_1_0_0_26.eContents().get(0);
+ private final RuleCall cOpIsChangedDisplayParserRuleCall_1_1_0_0_26_1 = (RuleCall)cGroup_1_1_0_0_26.eContents().get(1);
+ private final Group cGroup_1_1_0_0_27 = (Group)cAlternatives_1_1_0_0.eContents().get(27);
+ private final Action cIsTranslatedViewToOperandAction_1_1_0_0_27_0 = (Action)cGroup_1_1_0_0_27.eContents().get(0);
+ private final RuleCall cOpIsTranslatedViewToParserRuleCall_1_1_0_0_27_1 = (RuleCall)cGroup_1_1_0_0_27.eContents().get(1);
+ private final Group cGroup_1_1_0_0_28 = (Group)cAlternatives_1_1_0_0.eContents().get(28);
+ private final Action cIsOutputtedOnOperandAction_1_1_0_0_28_0 = (Action)cGroup_1_1_0_0_28.eContents().get(0);
+ private final RuleCall cOpIsOutputtedOnParserRuleCall_1_1_0_0_28_1 = (RuleCall)cGroup_1_1_0_0_28.eContents().get(1);
+ private final Group cGroup_1_1_0_0_29 = (Group)cAlternatives_1_1_0_0.eContents().get(29);
+ private final Action cIsChangedOutputOperandAction_1_1_0_0_29_0 = (Action)cGroup_1_1_0_0_29.eContents().get(0);
+ private final RuleCall cOpIsChangedOutputParserRuleCall_1_1_0_0_29_1 = (RuleCall)cGroup_1_1_0_0_29.eContents().get(1);
+ private final Group cGroup_1_1_0_0_30 = (Group)cAlternatives_1_1_0_0.eContents().get(30);
+ private final Action cIsTranslatedSoundToOperandAction_1_1_0_0_30_0 = (Action)cGroup_1_1_0_0_30.eContents().get(0);
+ private final RuleCall cOpIsTranslatedSoundToParserRuleCall_1_1_0_0_30_1 = (RuleCall)cGroup_1_1_0_0_30.eContents().get(1);
+ private final Group cGroup_1_1_0_0_31 = (Group)cAlternatives_1_1_0_0.eContents().get(31);
+ private final Action cIsAttenuatedOperandAction_1_1_0_0_31_0 = (Action)cGroup_1_1_0_0_31.eContents().get(0);
+ private final RuleCall cOpIsAttenuatedParserRuleCall_1_1_0_0_31_1 = (RuleCall)cGroup_1_1_0_0_31.eContents().get(1);
+ private final Group cGroup_1_1_0_1 = (Group)cGroup_1_1_0.eContents().get(1);
+ private final Group cGroup_1_1_0_1_0 = (Group)cGroup_1_1_0_1.eContents().get(0);
+ private final Keyword cLeftParenthesisKeyword_1_1_0_1_0_0 = (Keyword)cGroup_1_1_0_1_0.eContents().get(0);
+ private final Assignment cOperandAssignment_1_1_0_1_0_1 = (Assignment)cGroup_1_1_0_1_0.eContents().get(1);
+ private final RuleCall cOperandCExpressionParserRuleCall_1_1_0_1_0_1_0 = (RuleCall)cOperandAssignment_1_1_0_1_0_1.eContents().get(0);
+ private final Keyword cRightParenthesisKeyword_1_1_0_1_0_2 = (Keyword)cGroup_1_1_0_1_0.eContents().get(2);
+ private final Group cGroup_1_1_1 = (Group)cAlternatives_1_1.eContents().get(1);
+ private final Group cGroup_1_1_1_0 = (Group)cGroup_1_1_1.eContents().get(0);
+ private final Action cIsTypeOfOperandAction_1_1_1_0_0 = (Action)cGroup_1_1_1_0.eContents().get(0);
+ private final RuleCall cOpIsTypeOfParserRuleCall_1_1_1_0_1 = (RuleCall)cGroup_1_1_1_0.eContents().get(1);
+ private final Group cGroup_1_1_1_1 = (Group)cGroup_1_1_1.eContents().get(1);
+ private final Group cGroup_1_1_1_1_0 = (Group)cGroup_1_1_1_1.eContents().get(0);
+ private final Keyword cLeftParenthesisKeyword_1_1_1_1_0_0 = (Keyword)cGroup_1_1_1_1_0.eContents().get(0);
+ private final Assignment cTagNameAssignment_1_1_1_1_0_1 = (Assignment)cGroup_1_1_1_1_0.eContents().get(1);
+ private final RuleCall cTagNameEStringParserRuleCall_1_1_1_1_0_1_0 = (RuleCall)cTagNameAssignment_1_1_1_1_0_1.eContents().get(0);
+ private final Keyword cRightParenthesisKeyword_1_1_1_1_0_2 = (Keyword)cGroup_1_1_1_1_0.eContents().get(2);
+ private final Alternatives cAlternatives_1_1_2 = (Alternatives)cAlternatives_1_1.eContents().get(2);
+ private final Group cGroup_1_1_2_0 = (Group)cAlternatives_1_1_2.eContents().get(0);
+ private final Action cMaxOperatorOperandAction_1_1_2_0_0 = (Action)cGroup_1_1_2_0.eContents().get(0);
+ private final RuleCall cOpMaxOperatorParserRuleCall_1_1_2_0_1 = (RuleCall)cGroup_1_1_2_0.eContents().get(1);
+ private final Assignment cLambdaAssignment_1_1_2_0_2 = (Assignment)cGroup_1_1_2_0.eContents().get(2);
+ private final RuleCall cLambdaLambdaExpressionParserRuleCall_1_1_2_0_2_0 = (RuleCall)cLambdaAssignment_1_1_2_0_2.eContents().get(0);
+ private final Group cGroup_1_1_2_1 = (Group)cAlternatives_1_1_2.eContents().get(1);
+ private final Action cMinOperatorOperandAction_1_1_2_1_0 = (Action)cGroup_1_1_2_1.eContents().get(0);
+ private final RuleCall cOpMinOperatorParserRuleCall_1_1_2_1_1 = (RuleCall)cGroup_1_1_2_1.eContents().get(1);
+ private final Assignment cLambdaAssignment_1_1_2_1_2 = (Assignment)cGroup_1_1_2_1.eContents().get(2);
+ private final RuleCall cLambdaLambdaExpressionParserRuleCall_1_1_2_1_2_0 = (RuleCall)cLambdaAssignment_1_1_2_1_2.eContents().get(0);
+ private final Group cGroup_1_1_2_2 = (Group)cAlternatives_1_1_2.eContents().get(2);
+ private final Action cSelectOperatorOperandAction_1_1_2_2_0 = (Action)cGroup_1_1_2_2.eContents().get(0);
+ private final RuleCall cOpSelectOperatorParserRuleCall_1_1_2_2_1 = (RuleCall)cGroup_1_1_2_2.eContents().get(1);
+ private final Assignment cLambdaAssignment_1_1_2_2_2 = (Assignment)cGroup_1_1_2_2.eContents().get(2);
+ private final RuleCall cLambdaLambdaExpressionParserRuleCall_1_1_2_2_2_0 = (RuleCall)cLambdaAssignment_1_1_2_2_2.eContents().get(0);
+
+ //COperationFeatureCall rbacore::Expression:
+ // CPrimaryExpression (=> (".") (({rbacore::GetProperty.operand+=current} OpGetProperty |
+ // {rbacore::IsOn.operand+=current} OpIsOn | {rbacore::GetContentsList.operand+=current} OpGetContentsList |
+ // {rbacore::ContentValue.operand+=current} OpContentValue | {rbacore::IsActive.operand+=current} OpIsActive |
+ // {rbacore::GetAllocatables.operand+=current} OpGetAllocatables | {rbacore::AllocatedContent.operand+=current}
+ // OpAllocatedContent | {rbacore::HasComeEarlierThan.operand+=current} OpHasComeEarlierThan |
+ // {rbacore::HasComeLaterThan.operand+=current} OpHasComeLaterThan | {rbacore::StateValue.operand+=current} OpStateValue
+ // | {rbacore::ActiveContents.operand+=current} OpActiveContents | {rbacore::SizeOperator.operand+=current}
+ // OpSizeOperator | {rbacore::HasBeenDisplayed.operand+=current} OpHasBeenDisplayed |
+ // {rbacore::ActiveState.operand+=current} OpActiveState | {rbaview::IsDisplayed.operand+=current} OpIsDisplayed |
+ // {rbaview::IsHidden.operand+=current} OpIsHidden | {rbaview::DisplayingContent.operand+=current} OpDisplayingContent |
+ // {rbaview::IsVisible.operand+=current} OpIsVisible | {rbasound::IsOutputted.operand+=current} OpIsOutputted |
+ // {rbasound::IsMuted.operand+=current} OpIsMuted | {rbasound::OutputtingSound.operand+=current} OpOutputtingSound |
+ // {rbasound::IsSounding.operand+=current} OpIsSounding | {rbacore::IsAllocatedTo.operand+=current} OpIsAllocatedTo |
+ // {rbacore::IsChanged.operand+=current} OpIsChanged | {rbacore::IsTranslatedTo.operand+=current} OpIsTranslatedTo |
+ // {rbaview::IsDisplayedOn.operand+=current} OpIsDisplayedOn | {rbaview::IsChangedDisplay.operand+=current}
+ // OpIsChangedDisplay | {rbaview::IsTranslatedViewTo.operand+=current} OpIsTranslatedViewTo |
+ // {rbasound::IsOutputtedOn.operand+=current} OpIsOutputtedOn | {rbasound::IsChangedOutput.operand+=current}
+ // OpIsChangedOutput | {rbasound::IsTranslatedSoundTo.operand+=current} OpIsTranslatedSoundTo |
+ // {rbasound::IsAttenuated.operand+=current} OpIsAttenuated) => ('(' operand+=CExpression? ')') |
+ // ({rbacore::IsTypeOf.operand+=current} OpIsTypeOf) => ('(' tagName=EString? ')')?
+ // | ({rbacore::MaxOperator.operand+=current} OpMaxOperator lambda=LambdaExpression |
+ // {rbacore::MinOperator.operand+=current} OpMinOperator lambda=LambdaExpression |
+ // {rbacore::SelectOperator.operand+=current} OpSelectOperator lambda=LambdaExpression)))*;
+ @Override public ParserRule getRule() { return rule; }
+
+ //CPrimaryExpression (=> (".") (({rbacore::GetProperty.operand+=current} OpGetProperty | {rbacore::IsOn.operand+=current}
+ //OpIsOn | {rbacore::GetContentsList.operand+=current} OpGetContentsList | {rbacore::ContentValue.operand+=current}
+ //OpContentValue | {rbacore::IsActive.operand+=current} OpIsActive | {rbacore::GetAllocatables.operand+=current}
+ //OpGetAllocatables | {rbacore::AllocatedContent.operand+=current} OpAllocatedContent |
+ //{rbacore::HasComeEarlierThan.operand+=current} OpHasComeEarlierThan | {rbacore::HasComeLaterThan.operand+=current}
+ //OpHasComeLaterThan | {rbacore::StateValue.operand+=current} OpStateValue | {rbacore::ActiveContents.operand+=current}
+ //OpActiveContents | {rbacore::SizeOperator.operand+=current} OpSizeOperator |
+ //{rbacore::HasBeenDisplayed.operand+=current} OpHasBeenDisplayed | {rbacore::ActiveState.operand+=current}
+ //OpActiveState | {rbaview::IsDisplayed.operand+=current} OpIsDisplayed | {rbaview::IsHidden.operand+=current}
+ //OpIsHidden | {rbaview::DisplayingContent.operand+=current} OpDisplayingContent | {rbaview::IsVisible.operand+=current}
+ //OpIsVisible | {rbasound::IsOutputted.operand+=current} OpIsOutputted | {rbasound::IsMuted.operand+=current} OpIsMuted
+ //| {rbasound::OutputtingSound.operand+=current} OpOutputtingSound | {rbasound::IsSounding.operand+=current}
+ //OpIsSounding | {rbacore::IsAllocatedTo.operand+=current} OpIsAllocatedTo | {rbacore::IsChanged.operand+=current}
+ //OpIsChanged | {rbacore::IsTranslatedTo.operand+=current} OpIsTranslatedTo | {rbaview::IsDisplayedOn.operand+=current}
+ //OpIsDisplayedOn | {rbaview::IsChangedDisplay.operand+=current} OpIsChangedDisplay |
+ //{rbaview::IsTranslatedViewTo.operand+=current} OpIsTranslatedViewTo | {rbasound::IsOutputtedOn.operand+=current}
+ //OpIsOutputtedOn | {rbasound::IsChangedOutput.operand+=current} OpIsChangedOutput |
+ //{rbasound::IsTranslatedSoundTo.operand+=current} OpIsTranslatedSoundTo | {rbasound::IsAttenuated.operand+=current}
+ //OpIsAttenuated) => ('(' operand+=CExpression? ')') | ({rbacore::IsTypeOf.operand+=current} OpIsTypeOf) => ('('
+ //tagName=EString? ')')? | ({rbacore::MaxOperator.operand+=current} OpMaxOperator lambda=LambdaExpression |
+ //{rbacore::MinOperator.operand+=current} OpMinOperator lambda=LambdaExpression |
+ //{rbacore::SelectOperator.operand+=current} OpSelectOperator lambda=LambdaExpression)))*
+ public Group getGroup() { return cGroup; }
+
+ //CPrimaryExpression
+ public RuleCall getCPrimaryExpressionParserRuleCall_0() { return cCPrimaryExpressionParserRuleCall_0; }
+
+ //(=> (".") (({rbacore::GetProperty.operand+=current} OpGetProperty | {rbacore::IsOn.operand+=current} OpIsOn |
+ //{rbacore::GetContentsList.operand+=current} OpGetContentsList | {rbacore::ContentValue.operand+=current}
+ //OpContentValue | {rbacore::IsActive.operand+=current} OpIsActive | {rbacore::GetAllocatables.operand+=current}
+ //OpGetAllocatables | {rbacore::AllocatedContent.operand+=current} OpAllocatedContent |
+ //{rbacore::HasComeEarlierThan.operand+=current} OpHasComeEarlierThan | {rbacore::HasComeLaterThan.operand+=current}
+ //OpHasComeLaterThan | {rbacore::StateValue.operand+=current} OpStateValue | {rbacore::ActiveContents.operand+=current}
+ //OpActiveContents | {rbacore::SizeOperator.operand+=current} OpSizeOperator |
+ //{rbacore::HasBeenDisplayed.operand+=current} OpHasBeenDisplayed | {rbacore::ActiveState.operand+=current}
+ //OpActiveState | {rbaview::IsDisplayed.operand+=current} OpIsDisplayed | {rbaview::IsHidden.operand+=current}
+ //OpIsHidden | {rbaview::DisplayingContent.operand+=current} OpDisplayingContent | {rbaview::IsVisible.operand+=current}
+ //OpIsVisible | {rbasound::IsOutputted.operand+=current} OpIsOutputted | {rbasound::IsMuted.operand+=current} OpIsMuted
+ //| {rbasound::OutputtingSound.operand+=current} OpOutputtingSound | {rbasound::IsSounding.operand+=current}
+ //OpIsSounding | {rbacore::IsAllocatedTo.operand+=current} OpIsAllocatedTo | {rbacore::IsChanged.operand+=current}
+ //OpIsChanged | {rbacore::IsTranslatedTo.operand+=current} OpIsTranslatedTo | {rbaview::IsDisplayedOn.operand+=current}
+ //OpIsDisplayedOn | {rbaview::IsChangedDisplay.operand+=current} OpIsChangedDisplay |
+ //{rbaview::IsTranslatedViewTo.operand+=current} OpIsTranslatedViewTo | {rbasound::IsOutputtedOn.operand+=current}
+ //OpIsOutputtedOn | {rbasound::IsChangedOutput.operand+=current} OpIsChangedOutput |
+ //{rbasound::IsTranslatedSoundTo.operand+=current} OpIsTranslatedSoundTo | {rbasound::IsAttenuated.operand+=current}
+ //OpIsAttenuated) => ('(' operand+=CExpression? ')') | ({rbacore::IsTypeOf.operand+=current} OpIsTypeOf) => ('('
+ //tagName=EString? ')')? | ({rbacore::MaxOperator.operand+=current} OpMaxOperator lambda=LambdaExpression |
+ //{rbacore::MinOperator.operand+=current} OpMinOperator lambda=LambdaExpression |
+ //{rbacore::SelectOperator.operand+=current} OpSelectOperator lambda=LambdaExpression)))*
+ public Group getGroup_1() { return cGroup_1; }
+
+ //=> (".")
+ public Group getGroup_1_0() { return cGroup_1_0; }
+
+ //"."
+ public Keyword getFullStopKeyword_1_0_0() { return cFullStopKeyword_1_0_0; }
+
+ //({rbacore::GetProperty.operand+=current} OpGetProperty | {rbacore::IsOn.operand+=current} OpIsOn |
+ //{rbacore::GetContentsList.operand+=current} OpGetContentsList | {rbacore::ContentValue.operand+=current}
+ //OpContentValue | {rbacore::IsActive.operand+=current} OpIsActive | {rbacore::GetAllocatables.operand+=current}
+ //OpGetAllocatables | {rbacore::AllocatedContent.operand+=current} OpAllocatedContent |
+ //{rbacore::HasComeEarlierThan.operand+=current} OpHasComeEarlierThan | {rbacore::HasComeLaterThan.operand+=current}
+ //OpHasComeLaterThan | {rbacore::StateValue.operand+=current} OpStateValue | {rbacore::ActiveContents.operand+=current}
+ //OpActiveContents | {rbacore::SizeOperator.operand+=current} OpSizeOperator |
+ //{rbacore::HasBeenDisplayed.operand+=current} OpHasBeenDisplayed | {rbacore::ActiveState.operand+=current}
+ //OpActiveState | {rbaview::IsDisplayed.operand+=current} OpIsDisplayed | {rbaview::IsHidden.operand+=current}
+ //OpIsHidden | {rbaview::DisplayingContent.operand+=current} OpDisplayingContent | {rbaview::IsVisible.operand+=current}
+ //OpIsVisible | {rbasound::IsOutputted.operand+=current} OpIsOutputted | {rbasound::IsMuted.operand+=current} OpIsMuted
+ //| {rbasound::OutputtingSound.operand+=current} OpOutputtingSound | {rbasound::IsSounding.operand+=current}
+ //OpIsSounding | {rbacore::IsAllocatedTo.operand+=current} OpIsAllocatedTo | {rbacore::IsChanged.operand+=current}
+ //OpIsChanged | {rbacore::IsTranslatedTo.operand+=current} OpIsTranslatedTo | {rbaview::IsDisplayedOn.operand+=current}
+ //OpIsDisplayedOn | {rbaview::IsChangedDisplay.operand+=current} OpIsChangedDisplay |
+ //{rbaview::IsTranslatedViewTo.operand+=current} OpIsTranslatedViewTo | {rbasound::IsOutputtedOn.operand+=current}
+ //OpIsOutputtedOn | {rbasound::IsChangedOutput.operand+=current} OpIsChangedOutput |
+ //{rbasound::IsTranslatedSoundTo.operand+=current} OpIsTranslatedSoundTo | {rbasound::IsAttenuated.operand+=current}
+ //OpIsAttenuated) => ('(' operand+=CExpression? ')') | ({rbacore::IsTypeOf.operand+=current} OpIsTypeOf) => ('('
+ //tagName=EString? ')')? | ({rbacore::MaxOperator.operand+=current} OpMaxOperator lambda=LambdaExpression |
+ //{rbacore::MinOperator.operand+=current} OpMinOperator lambda=LambdaExpression |
+ //{rbacore::SelectOperator.operand+=current} OpSelectOperator lambda=LambdaExpression)
+ public Alternatives getAlternatives_1_1() { return cAlternatives_1_1; }
+
+ //({rbacore::GetProperty.operand+=current} OpGetProperty | {rbacore::IsOn.operand+=current} OpIsOn |
+ //{rbacore::GetContentsList.operand+=current} OpGetContentsList | {rbacore::ContentValue.operand+=current}
+ //OpContentValue | {rbacore::IsActive.operand+=current} OpIsActive | {rbacore::GetAllocatables.operand+=current}
+ //OpGetAllocatables | {rbacore::AllocatedContent.operand+=current} OpAllocatedContent |
+ //{rbacore::HasComeEarlierThan.operand+=current} OpHasComeEarlierThan | {rbacore::HasComeLaterThan.operand+=current}
+ //OpHasComeLaterThan | {rbacore::StateValue.operand+=current} OpStateValue | {rbacore::ActiveContents.operand+=current}
+ //OpActiveContents | {rbacore::SizeOperator.operand+=current} OpSizeOperator |
+ //{rbacore::HasBeenDisplayed.operand+=current} OpHasBeenDisplayed | {rbacore::ActiveState.operand+=current}
+ //OpActiveState | {rbaview::IsDisplayed.operand+=current} OpIsDisplayed | {rbaview::IsHidden.operand+=current}
+ //OpIsHidden | {rbaview::DisplayingContent.operand+=current} OpDisplayingContent | {rbaview::IsVisible.operand+=current}
+ //OpIsVisible | {rbasound::IsOutputted.operand+=current} OpIsOutputted | {rbasound::IsMuted.operand+=current} OpIsMuted
+ //| {rbasound::OutputtingSound.operand+=current} OpOutputtingSound | {rbasound::IsSounding.operand+=current}
+ //OpIsSounding | {rbacore::IsAllocatedTo.operand+=current} OpIsAllocatedTo | {rbacore::IsChanged.operand+=current}
+ //OpIsChanged | {rbacore::IsTranslatedTo.operand+=current} OpIsTranslatedTo | {rbaview::IsDisplayedOn.operand+=current}
+ //OpIsDisplayedOn | {rbaview::IsChangedDisplay.operand+=current} OpIsChangedDisplay |
+ //{rbaview::IsTranslatedViewTo.operand+=current} OpIsTranslatedViewTo | {rbasound::IsOutputtedOn.operand+=current}
+ //OpIsOutputtedOn | {rbasound::IsChangedOutput.operand+=current} OpIsChangedOutput |
+ //{rbasound::IsTranslatedSoundTo.operand+=current} OpIsTranslatedSoundTo | {rbasound::IsAttenuated.operand+=current}
+ //OpIsAttenuated) => ('(' operand+=CExpression? ')')
+ public Group getGroup_1_1_0() { return cGroup_1_1_0; }
+
+ //{rbacore::GetProperty.operand+=current} OpGetProperty | {rbacore::IsOn.operand+=current} OpIsOn |
+ //{rbacore::GetContentsList.operand+=current} OpGetContentsList | {rbacore::ContentValue.operand+=current}
+ //OpContentValue | {rbacore::IsActive.operand+=current} OpIsActive | {rbacore::GetAllocatables.operand+=current}
+ //OpGetAllocatables | {rbacore::AllocatedContent.operand+=current} OpAllocatedContent |
+ //{rbacore::HasComeEarlierThan.operand+=current} OpHasComeEarlierThan | {rbacore::HasComeLaterThan.operand+=current}
+ //OpHasComeLaterThan | {rbacore::StateValue.operand+=current} OpStateValue | {rbacore::ActiveContents.operand+=current}
+ //OpActiveContents | {rbacore::SizeOperator.operand+=current} OpSizeOperator |
+ //{rbacore::HasBeenDisplayed.operand+=current} OpHasBeenDisplayed | {rbacore::ActiveState.operand+=current}
+ //OpActiveState | {rbaview::IsDisplayed.operand+=current} OpIsDisplayed | {rbaview::IsHidden.operand+=current}
+ //OpIsHidden | {rbaview::DisplayingContent.operand+=current} OpDisplayingContent | {rbaview::IsVisible.operand+=current}
+ //OpIsVisible | {rbasound::IsOutputted.operand+=current} OpIsOutputted | {rbasound::IsMuted.operand+=current} OpIsMuted
+ //| {rbasound::OutputtingSound.operand+=current} OpOutputtingSound | {rbasound::IsSounding.operand+=current}
+ //OpIsSounding | {rbacore::IsAllocatedTo.operand+=current} OpIsAllocatedTo | {rbacore::IsChanged.operand+=current}
+ //OpIsChanged | {rbacore::IsTranslatedTo.operand+=current} OpIsTranslatedTo | {rbaview::IsDisplayedOn.operand+=current}
+ //OpIsDisplayedOn | {rbaview::IsChangedDisplay.operand+=current} OpIsChangedDisplay |
+ //{rbaview::IsTranslatedViewTo.operand+=current} OpIsTranslatedViewTo | {rbasound::IsOutputtedOn.operand+=current}
+ //OpIsOutputtedOn | {rbasound::IsChangedOutput.operand+=current} OpIsChangedOutput |
+ //{rbasound::IsTranslatedSoundTo.operand+=current} OpIsTranslatedSoundTo | {rbasound::IsAttenuated.operand+=current}
+ //OpIsAttenuated
+ public Alternatives getAlternatives_1_1_0_0() { return cAlternatives_1_1_0_0; }
+
+ //{rbacore::GetProperty.operand+=current} OpGetProperty
+ public Group getGroup_1_1_0_0_0() { return cGroup_1_1_0_0_0; }
+
+ //{rbacore::GetProperty.operand+=current}
+ public Action getGetPropertyOperandAction_1_1_0_0_0_0() { return cGetPropertyOperandAction_1_1_0_0_0_0; }
+
+ //OpGetProperty
+ public RuleCall getOpGetPropertyParserRuleCall_1_1_0_0_0_1() { return cOpGetPropertyParserRuleCall_1_1_0_0_0_1; }
+
+ //{rbacore::IsOn.operand+=current} OpIsOn
+ public Group getGroup_1_1_0_0_1() { return cGroup_1_1_0_0_1; }
+
+ //{rbacore::IsOn.operand+=current}
+ public Action getIsOnOperandAction_1_1_0_0_1_0() { return cIsOnOperandAction_1_1_0_0_1_0; }
+
+ //OpIsOn
+ public RuleCall getOpIsOnParserRuleCall_1_1_0_0_1_1() { return cOpIsOnParserRuleCall_1_1_0_0_1_1; }
+
+ //{rbacore::GetContentsList.operand+=current} OpGetContentsList
+ public Group getGroup_1_1_0_0_2() { return cGroup_1_1_0_0_2; }
+
+ //{rbacore::GetContentsList.operand+=current}
+ public Action getGetContentsListOperandAction_1_1_0_0_2_0() { return cGetContentsListOperandAction_1_1_0_0_2_0; }
+
+ //OpGetContentsList
+ public RuleCall getOpGetContentsListParserRuleCall_1_1_0_0_2_1() { return cOpGetContentsListParserRuleCall_1_1_0_0_2_1; }
+
+ //{rbacore::ContentValue.operand+=current} OpContentValue
+ public Group getGroup_1_1_0_0_3() { return cGroup_1_1_0_0_3; }
+
+ //{rbacore::ContentValue.operand+=current}
+ public Action getContentValueOperandAction_1_1_0_0_3_0() { return cContentValueOperandAction_1_1_0_0_3_0; }
+
+ //OpContentValue
+ public RuleCall getOpContentValueParserRuleCall_1_1_0_0_3_1() { return cOpContentValueParserRuleCall_1_1_0_0_3_1; }
+
+ //{rbacore::IsActive.operand+=current} OpIsActive
+ public Group getGroup_1_1_0_0_4() { return cGroup_1_1_0_0_4; }
+
+ //{rbacore::IsActive.operand+=current}
+ public Action getIsActiveOperandAction_1_1_0_0_4_0() { return cIsActiveOperandAction_1_1_0_0_4_0; }
+
+ //OpIsActive
+ public RuleCall getOpIsActiveParserRuleCall_1_1_0_0_4_1() { return cOpIsActiveParserRuleCall_1_1_0_0_4_1; }
+
+ //{rbacore::GetAllocatables.operand+=current} OpGetAllocatables
+ public Group getGroup_1_1_0_0_5() { return cGroup_1_1_0_0_5; }
+
+ //{rbacore::GetAllocatables.operand+=current}
+ public Action getGetAllocatablesOperandAction_1_1_0_0_5_0() { return cGetAllocatablesOperandAction_1_1_0_0_5_0; }
+
+ //OpGetAllocatables
+ public RuleCall getOpGetAllocatablesParserRuleCall_1_1_0_0_5_1() { return cOpGetAllocatablesParserRuleCall_1_1_0_0_5_1; }
+
+ //{rbacore::AllocatedContent.operand+=current} OpAllocatedContent
+ public Group getGroup_1_1_0_0_6() { return cGroup_1_1_0_0_6; }
+
+ //{rbacore::AllocatedContent.operand+=current}
+ public Action getAllocatedContentOperandAction_1_1_0_0_6_0() { return cAllocatedContentOperandAction_1_1_0_0_6_0; }
+
+ //OpAllocatedContent
+ public RuleCall getOpAllocatedContentParserRuleCall_1_1_0_0_6_1() { return cOpAllocatedContentParserRuleCall_1_1_0_0_6_1; }
+
+ //{rbacore::HasComeEarlierThan.operand+=current} OpHasComeEarlierThan
+ public Group getGroup_1_1_0_0_7() { return cGroup_1_1_0_0_7; }
+
+ //{rbacore::HasComeEarlierThan.operand+=current}
+ public Action getHasComeEarlierThanOperandAction_1_1_0_0_7_0() { return cHasComeEarlierThanOperandAction_1_1_0_0_7_0; }
+
+ //OpHasComeEarlierThan
+ public RuleCall getOpHasComeEarlierThanParserRuleCall_1_1_0_0_7_1() { return cOpHasComeEarlierThanParserRuleCall_1_1_0_0_7_1; }
+
+ //{rbacore::HasComeLaterThan.operand+=current} OpHasComeLaterThan
+ public Group getGroup_1_1_0_0_8() { return cGroup_1_1_0_0_8; }
+
+ //{rbacore::HasComeLaterThan.operand+=current}
+ public Action getHasComeLaterThanOperandAction_1_1_0_0_8_0() { return cHasComeLaterThanOperandAction_1_1_0_0_8_0; }
+
+ //OpHasComeLaterThan
+ public RuleCall getOpHasComeLaterThanParserRuleCall_1_1_0_0_8_1() { return cOpHasComeLaterThanParserRuleCall_1_1_0_0_8_1; }
+
+ //{rbacore::StateValue.operand+=current} OpStateValue
+ public Group getGroup_1_1_0_0_9() { return cGroup_1_1_0_0_9; }
+
+ //{rbacore::StateValue.operand+=current}
+ public Action getStateValueOperandAction_1_1_0_0_9_0() { return cStateValueOperandAction_1_1_0_0_9_0; }
+
+ //OpStateValue
+ public RuleCall getOpStateValueParserRuleCall_1_1_0_0_9_1() { return cOpStateValueParserRuleCall_1_1_0_0_9_1; }
+
+ //{rbacore::ActiveContents.operand+=current} OpActiveContents
+ public Group getGroup_1_1_0_0_10() { return cGroup_1_1_0_0_10; }
+
+ //{rbacore::ActiveContents.operand+=current}
+ public Action getActiveContentsOperandAction_1_1_0_0_10_0() { return cActiveContentsOperandAction_1_1_0_0_10_0; }
+
+ //OpActiveContents
+ public RuleCall getOpActiveContentsParserRuleCall_1_1_0_0_10_1() { return cOpActiveContentsParserRuleCall_1_1_0_0_10_1; }
+
+ //{rbacore::SizeOperator.operand+=current} OpSizeOperator
+ public Group getGroup_1_1_0_0_11() { return cGroup_1_1_0_0_11; }
+
+ //{rbacore::SizeOperator.operand+=current}
+ public Action getSizeOperatorOperandAction_1_1_0_0_11_0() { return cSizeOperatorOperandAction_1_1_0_0_11_0; }
+
+ //OpSizeOperator
+ public RuleCall getOpSizeOperatorParserRuleCall_1_1_0_0_11_1() { return cOpSizeOperatorParserRuleCall_1_1_0_0_11_1; }
+
+ //{rbacore::HasBeenDisplayed.operand+=current} OpHasBeenDisplayed
+ public Group getGroup_1_1_0_0_12() { return cGroup_1_1_0_0_12; }
+
+ //{rbacore::HasBeenDisplayed.operand+=current}
+ public Action getHasBeenDisplayedOperandAction_1_1_0_0_12_0() { return cHasBeenDisplayedOperandAction_1_1_0_0_12_0; }
+
+ //OpHasBeenDisplayed
+ public RuleCall getOpHasBeenDisplayedParserRuleCall_1_1_0_0_12_1() { return cOpHasBeenDisplayedParserRuleCall_1_1_0_0_12_1; }
+
+ //{rbacore::ActiveState.operand+=current} OpActiveState
+ public Group getGroup_1_1_0_0_13() { return cGroup_1_1_0_0_13; }
+
+ //{rbacore::ActiveState.operand+=current}
+ public Action getActiveStateOperandAction_1_1_0_0_13_0() { return cActiveStateOperandAction_1_1_0_0_13_0; }
+
+ //OpActiveState
+ public RuleCall getOpActiveStateParserRuleCall_1_1_0_0_13_1() { return cOpActiveStateParserRuleCall_1_1_0_0_13_1; }
+
+ //{rbaview::IsDisplayed.operand+=current} OpIsDisplayed
+ public Group getGroup_1_1_0_0_14() { return cGroup_1_1_0_0_14; }
+
+ //{rbaview::IsDisplayed.operand+=current}
+ public Action getIsDisplayedOperandAction_1_1_0_0_14_0() { return cIsDisplayedOperandAction_1_1_0_0_14_0; }
+
+ //OpIsDisplayed
+ public RuleCall getOpIsDisplayedParserRuleCall_1_1_0_0_14_1() { return cOpIsDisplayedParserRuleCall_1_1_0_0_14_1; }
+
+ //{rbaview::IsHidden.operand+=current} OpIsHidden
+ public Group getGroup_1_1_0_0_15() { return cGroup_1_1_0_0_15; }
+
+ //{rbaview::IsHidden.operand+=current}
+ public Action getIsHiddenOperandAction_1_1_0_0_15_0() { return cIsHiddenOperandAction_1_1_0_0_15_0; }
+
+ //OpIsHidden
+ public RuleCall getOpIsHiddenParserRuleCall_1_1_0_0_15_1() { return cOpIsHiddenParserRuleCall_1_1_0_0_15_1; }
+
+ //{rbaview::DisplayingContent.operand+=current} OpDisplayingContent
+ public Group getGroup_1_1_0_0_16() { return cGroup_1_1_0_0_16; }
+
+ //{rbaview::DisplayingContent.operand+=current}
+ public Action getDisplayingContentOperandAction_1_1_0_0_16_0() { return cDisplayingContentOperandAction_1_1_0_0_16_0; }
+
+ //OpDisplayingContent
+ public RuleCall getOpDisplayingContentParserRuleCall_1_1_0_0_16_1() { return cOpDisplayingContentParserRuleCall_1_1_0_0_16_1; }
+
+ //{rbaview::IsVisible.operand+=current} OpIsVisible
+ public Group getGroup_1_1_0_0_17() { return cGroup_1_1_0_0_17; }
+
+ //{rbaview::IsVisible.operand+=current}
+ public Action getIsVisibleOperandAction_1_1_0_0_17_0() { return cIsVisibleOperandAction_1_1_0_0_17_0; }
+
+ //OpIsVisible
+ public RuleCall getOpIsVisibleParserRuleCall_1_1_0_0_17_1() { return cOpIsVisibleParserRuleCall_1_1_0_0_17_1; }
+
+ //{rbasound::IsOutputted.operand+=current} OpIsOutputted
+ public Group getGroup_1_1_0_0_18() { return cGroup_1_1_0_0_18; }
+
+ //{rbasound::IsOutputted.operand+=current}
+ public Action getIsOutputtedOperandAction_1_1_0_0_18_0() { return cIsOutputtedOperandAction_1_1_0_0_18_0; }
+
+ //OpIsOutputted
+ public RuleCall getOpIsOutputtedParserRuleCall_1_1_0_0_18_1() { return cOpIsOutputtedParserRuleCall_1_1_0_0_18_1; }
+
+ //{rbasound::IsMuted.operand+=current} OpIsMuted
+ public Group getGroup_1_1_0_0_19() { return cGroup_1_1_0_0_19; }
+
+ //{rbasound::IsMuted.operand+=current}
+ public Action getIsMutedOperandAction_1_1_0_0_19_0() { return cIsMutedOperandAction_1_1_0_0_19_0; }
+
+ //OpIsMuted
+ public RuleCall getOpIsMutedParserRuleCall_1_1_0_0_19_1() { return cOpIsMutedParserRuleCall_1_1_0_0_19_1; }
+
+ //{rbasound::OutputtingSound.operand+=current} OpOutputtingSound
+ public Group getGroup_1_1_0_0_20() { return cGroup_1_1_0_0_20; }
+
+ //{rbasound::OutputtingSound.operand+=current}
+ public Action getOutputtingSoundOperandAction_1_1_0_0_20_0() { return cOutputtingSoundOperandAction_1_1_0_0_20_0; }
+
+ //OpOutputtingSound
+ public RuleCall getOpOutputtingSoundParserRuleCall_1_1_0_0_20_1() { return cOpOutputtingSoundParserRuleCall_1_1_0_0_20_1; }
+
+ //{rbasound::IsSounding.operand+=current} OpIsSounding
+ public Group getGroup_1_1_0_0_21() { return cGroup_1_1_0_0_21; }
+
+ //{rbasound::IsSounding.operand+=current}
+ public Action getIsSoundingOperandAction_1_1_0_0_21_0() { return cIsSoundingOperandAction_1_1_0_0_21_0; }
+
+ //OpIsSounding
+ public RuleCall getOpIsSoundingParserRuleCall_1_1_0_0_21_1() { return cOpIsSoundingParserRuleCall_1_1_0_0_21_1; }
+
+ //{rbacore::IsAllocatedTo.operand+=current} OpIsAllocatedTo
+ public Group getGroup_1_1_0_0_22() { return cGroup_1_1_0_0_22; }
+
+ //{rbacore::IsAllocatedTo.operand+=current}
+ public Action getIsAllocatedToOperandAction_1_1_0_0_22_0() { return cIsAllocatedToOperandAction_1_1_0_0_22_0; }
+
+ //OpIsAllocatedTo
+ public RuleCall getOpIsAllocatedToParserRuleCall_1_1_0_0_22_1() { return cOpIsAllocatedToParserRuleCall_1_1_0_0_22_1; }
+
+ //{rbacore::IsChanged.operand+=current} OpIsChanged
+ public Group getGroup_1_1_0_0_23() { return cGroup_1_1_0_0_23; }
+
+ //{rbacore::IsChanged.operand+=current}
+ public Action getIsChangedOperandAction_1_1_0_0_23_0() { return cIsChangedOperandAction_1_1_0_0_23_0; }
+
+ //OpIsChanged
+ public RuleCall getOpIsChangedParserRuleCall_1_1_0_0_23_1() { return cOpIsChangedParserRuleCall_1_1_0_0_23_1; }
+
+ //{rbacore::IsTranslatedTo.operand+=current} OpIsTranslatedTo
+ public Group getGroup_1_1_0_0_24() { return cGroup_1_1_0_0_24; }
+
+ //{rbacore::IsTranslatedTo.operand+=current}
+ public Action getIsTranslatedToOperandAction_1_1_0_0_24_0() { return cIsTranslatedToOperandAction_1_1_0_0_24_0; }
+
+ //OpIsTranslatedTo
+ public RuleCall getOpIsTranslatedToParserRuleCall_1_1_0_0_24_1() { return cOpIsTranslatedToParserRuleCall_1_1_0_0_24_1; }
+
+ //{rbaview::IsDisplayedOn.operand+=current} OpIsDisplayedOn
+ public Group getGroup_1_1_0_0_25() { return cGroup_1_1_0_0_25; }
+
+ //{rbaview::IsDisplayedOn.operand+=current}
+ public Action getIsDisplayedOnOperandAction_1_1_0_0_25_0() { return cIsDisplayedOnOperandAction_1_1_0_0_25_0; }
+
+ //OpIsDisplayedOn
+ public RuleCall getOpIsDisplayedOnParserRuleCall_1_1_0_0_25_1() { return cOpIsDisplayedOnParserRuleCall_1_1_0_0_25_1; }
+
+ //{rbaview::IsChangedDisplay.operand+=current} OpIsChangedDisplay
+ public Group getGroup_1_1_0_0_26() { return cGroup_1_1_0_0_26; }
+
+ //{rbaview::IsChangedDisplay.operand+=current}
+ public Action getIsChangedDisplayOperandAction_1_1_0_0_26_0() { return cIsChangedDisplayOperandAction_1_1_0_0_26_0; }
+
+ //OpIsChangedDisplay
+ public RuleCall getOpIsChangedDisplayParserRuleCall_1_1_0_0_26_1() { return cOpIsChangedDisplayParserRuleCall_1_1_0_0_26_1; }
+
+ //{rbaview::IsTranslatedViewTo.operand+=current} OpIsTranslatedViewTo
+ public Group getGroup_1_1_0_0_27() { return cGroup_1_1_0_0_27; }
+
+ //{rbaview::IsTranslatedViewTo.operand+=current}
+ public Action getIsTranslatedViewToOperandAction_1_1_0_0_27_0() { return cIsTranslatedViewToOperandAction_1_1_0_0_27_0; }
+
+ //OpIsTranslatedViewTo
+ public RuleCall getOpIsTranslatedViewToParserRuleCall_1_1_0_0_27_1() { return cOpIsTranslatedViewToParserRuleCall_1_1_0_0_27_1; }
+
+ //{rbasound::IsOutputtedOn.operand+=current} OpIsOutputtedOn
+ public Group getGroup_1_1_0_0_28() { return cGroup_1_1_0_0_28; }
+
+ //{rbasound::IsOutputtedOn.operand+=current}
+ public Action getIsOutputtedOnOperandAction_1_1_0_0_28_0() { return cIsOutputtedOnOperandAction_1_1_0_0_28_0; }
+
+ //OpIsOutputtedOn
+ public RuleCall getOpIsOutputtedOnParserRuleCall_1_1_0_0_28_1() { return cOpIsOutputtedOnParserRuleCall_1_1_0_0_28_1; }
+
+ //{rbasound::IsChangedOutput.operand+=current} OpIsChangedOutput
+ public Group getGroup_1_1_0_0_29() { return cGroup_1_1_0_0_29; }
+
+ //{rbasound::IsChangedOutput.operand+=current}
+ public Action getIsChangedOutputOperandAction_1_1_0_0_29_0() { return cIsChangedOutputOperandAction_1_1_0_0_29_0; }
+
+ //OpIsChangedOutput
+ public RuleCall getOpIsChangedOutputParserRuleCall_1_1_0_0_29_1() { return cOpIsChangedOutputParserRuleCall_1_1_0_0_29_1; }
+
+ //{rbasound::IsTranslatedSoundTo.operand+=current} OpIsTranslatedSoundTo
+ public Group getGroup_1_1_0_0_30() { return cGroup_1_1_0_0_30; }
+
+ //{rbasound::IsTranslatedSoundTo.operand+=current}
+ public Action getIsTranslatedSoundToOperandAction_1_1_0_0_30_0() { return cIsTranslatedSoundToOperandAction_1_1_0_0_30_0; }
+
+ //OpIsTranslatedSoundTo
+ public RuleCall getOpIsTranslatedSoundToParserRuleCall_1_1_0_0_30_1() { return cOpIsTranslatedSoundToParserRuleCall_1_1_0_0_30_1; }
+
+ //{rbasound::IsAttenuated.operand+=current} OpIsAttenuated
+ public Group getGroup_1_1_0_0_31() { return cGroup_1_1_0_0_31; }
+
+ //{rbasound::IsAttenuated.operand+=current}
+ public Action getIsAttenuatedOperandAction_1_1_0_0_31_0() { return cIsAttenuatedOperandAction_1_1_0_0_31_0; }
+
+ //OpIsAttenuated
+ public RuleCall getOpIsAttenuatedParserRuleCall_1_1_0_0_31_1() { return cOpIsAttenuatedParserRuleCall_1_1_0_0_31_1; }
+
+ //=> ('(' operand+=CExpression? ')')
+ public Group getGroup_1_1_0_1() { return cGroup_1_1_0_1; }
+
+ //'(' operand+=CExpression? ')'
+ public Group getGroup_1_1_0_1_0() { return cGroup_1_1_0_1_0; }
+
+ //'('
+ public Keyword getLeftParenthesisKeyword_1_1_0_1_0_0() { return cLeftParenthesisKeyword_1_1_0_1_0_0; }
+
+ //operand+=CExpression?
+ public Assignment getOperandAssignment_1_1_0_1_0_1() { return cOperandAssignment_1_1_0_1_0_1; }
+
+ //CExpression
+ public RuleCall getOperandCExpressionParserRuleCall_1_1_0_1_0_1_0() { return cOperandCExpressionParserRuleCall_1_1_0_1_0_1_0; }
+
+ //')'
+ public Keyword getRightParenthesisKeyword_1_1_0_1_0_2() { return cRightParenthesisKeyword_1_1_0_1_0_2; }
+
+ //({rbacore::IsTypeOf.operand+=current} OpIsTypeOf) => ('(' tagName=EString? ')')?
+ public Group getGroup_1_1_1() { return cGroup_1_1_1; }
+
+ //{rbacore::IsTypeOf.operand+=current} OpIsTypeOf
+ public Group getGroup_1_1_1_0() { return cGroup_1_1_1_0; }
+
+ //{rbacore::IsTypeOf.operand+=current}
+ public Action getIsTypeOfOperandAction_1_1_1_0_0() { return cIsTypeOfOperandAction_1_1_1_0_0; }
+
+ //OpIsTypeOf
+ public RuleCall getOpIsTypeOfParserRuleCall_1_1_1_0_1() { return cOpIsTypeOfParserRuleCall_1_1_1_0_1; }
+
+ //=> ('(' tagName=EString? ')')?
+ public Group getGroup_1_1_1_1() { return cGroup_1_1_1_1; }
+
+ //'(' tagName=EString? ')'
+ public Group getGroup_1_1_1_1_0() { return cGroup_1_1_1_1_0; }
+
+ //'('
+ public Keyword getLeftParenthesisKeyword_1_1_1_1_0_0() { return cLeftParenthesisKeyword_1_1_1_1_0_0; }
+
+ //tagName=EString?
+ public Assignment getTagNameAssignment_1_1_1_1_0_1() { return cTagNameAssignment_1_1_1_1_0_1; }
+
+ //EString
+ public RuleCall getTagNameEStringParserRuleCall_1_1_1_1_0_1_0() { return cTagNameEStringParserRuleCall_1_1_1_1_0_1_0; }
+
+ //')'
+ public Keyword getRightParenthesisKeyword_1_1_1_1_0_2() { return cRightParenthesisKeyword_1_1_1_1_0_2; }
+
+ //({rbacore::MaxOperator.operand+=current} OpMaxOperator lambda=LambdaExpression | {rbacore::MinOperator.operand+=current}
+ //OpMinOperator lambda=LambdaExpression | {rbacore::SelectOperator.operand+=current} OpSelectOperator
+ //lambda=LambdaExpression)
+ public Alternatives getAlternatives_1_1_2() { return cAlternatives_1_1_2; }
+
+ //{rbacore::MaxOperator.operand+=current} OpMaxOperator lambda=LambdaExpression
+ public Group getGroup_1_1_2_0() { return cGroup_1_1_2_0; }
+
+ //{rbacore::MaxOperator.operand+=current}
+ public Action getMaxOperatorOperandAction_1_1_2_0_0() { return cMaxOperatorOperandAction_1_1_2_0_0; }
+
+ //OpMaxOperator
+ public RuleCall getOpMaxOperatorParserRuleCall_1_1_2_0_1() { return cOpMaxOperatorParserRuleCall_1_1_2_0_1; }
+
+ //lambda=LambdaExpression
+ public Assignment getLambdaAssignment_1_1_2_0_2() { return cLambdaAssignment_1_1_2_0_2; }
+
+ //LambdaExpression
+ public RuleCall getLambdaLambdaExpressionParserRuleCall_1_1_2_0_2_0() { return cLambdaLambdaExpressionParserRuleCall_1_1_2_0_2_0; }
+
+ //{rbacore::MinOperator.operand+=current} OpMinOperator lambda=LambdaExpression
+ public Group getGroup_1_1_2_1() { return cGroup_1_1_2_1; }
+
+ //{rbacore::MinOperator.operand+=current}
+ public Action getMinOperatorOperandAction_1_1_2_1_0() { return cMinOperatorOperandAction_1_1_2_1_0; }
+
+ //OpMinOperator
+ public RuleCall getOpMinOperatorParserRuleCall_1_1_2_1_1() { return cOpMinOperatorParserRuleCall_1_1_2_1_1; }
+
+ //lambda=LambdaExpression
+ public Assignment getLambdaAssignment_1_1_2_1_2() { return cLambdaAssignment_1_1_2_1_2; }
+
+ //LambdaExpression
+ public RuleCall getLambdaLambdaExpressionParserRuleCall_1_1_2_1_2_0() { return cLambdaLambdaExpressionParserRuleCall_1_1_2_1_2_0; }
+
+ //{rbacore::SelectOperator.operand+=current} OpSelectOperator lambda=LambdaExpression
+ public Group getGroup_1_1_2_2() { return cGroup_1_1_2_2; }
+
+ //{rbacore::SelectOperator.operand+=current}
+ public Action getSelectOperatorOperandAction_1_1_2_2_0() { return cSelectOperatorOperandAction_1_1_2_2_0; }
+
+ //OpSelectOperator
+ public RuleCall getOpSelectOperatorParserRuleCall_1_1_2_2_1() { return cOpSelectOperatorParserRuleCall_1_1_2_2_1; }
+
+ //lambda=LambdaExpression
+ public Assignment getLambdaAssignment_1_1_2_2_2() { return cLambdaAssignment_1_1_2_2_2; }
+
+ //LambdaExpression
+ public RuleCall getLambdaLambdaExpressionParserRuleCall_1_1_2_2_2_0() { return cLambdaLambdaExpressionParserRuleCall_1_1_2_2_2_0; }
+ }
+ public class OpGetPropertyElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpGetProperty");
+ private final Keyword cGetKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpGetProperty:
+ // 'get';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'get'
+ public Keyword getGetKeyword() { return cGetKeyword; }
+ }
+ public class OpIsOnElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpIsOn");
+ private final Keyword cIsOnKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpIsOn:
+ // 'isOn';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'isOn'
+ public Keyword getIsOnKeyword() { return cIsOnKeyword; }
+ }
+ public class OpGetContentsListElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpGetContentsList");
+ private final Keyword cContentsListKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpGetContentsList:
+ // 'contentsList';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'contentsList'
+ public Keyword getContentsListKeyword() { return cContentsListKeyword; }
+ }
+ public class OpContentValueElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpContentValue");
+ private final Keyword cContentValueKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpContentValue:
+ // 'contentValue';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'contentValue'
+ public Keyword getContentValueKeyword() { return cContentValueKeyword; }
+ }
+ public class OpIsActiveElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpIsActive");
+ private final Keyword cIsActiveKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpIsActive:
+ // 'isActive';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'isActive'
+ public Keyword getIsActiveKeyword() { return cIsActiveKeyword; }
+ }
+ public class OpGetAllocatablesElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpGetAllocatables");
+ private final Keyword cAllocatablesKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpGetAllocatables:
+ // 'allocatables';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'allocatables'
+ public Keyword getAllocatablesKeyword() { return cAllocatablesKeyword; }
+ }
+ public class OpAllocatedContentElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpAllocatedContent");
+ private final Keyword cAllocatedContentKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpAllocatedContent:
+ // 'allocatedContent';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'allocatedContent'
+ public Keyword getAllocatedContentKeyword() { return cAllocatedContentKeyword; }
+ }
+ public class OpIsDisplayedElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpIsDisplayed");
+ private final Keyword cIsDisplayedKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpIsDisplayed:
+ // 'isDisplayed';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'isDisplayed'
+ public Keyword getIsDisplayedKeyword() { return cIsDisplayedKeyword; }
+ }
+ public class OpIsHiddenElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpIsHidden");
+ private final Keyword cIsHiddenKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpIsHidden:
+ // 'isHidden';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'isHidden'
+ public Keyword getIsHiddenKeyword() { return cIsHiddenKeyword; }
+ }
+ public class OpDisplayingContentElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpDisplayingContent");
+ private final Keyword cDisplayingContentKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpDisplayingContent:
+ // 'displayingContent';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'displayingContent'
+ public Keyword getDisplayingContentKeyword() { return cDisplayingContentKeyword; }
+ }
+ public class OpIsVisibleElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpIsVisible");
+ private final Keyword cIsVisibleKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpIsVisible:
+ // 'isVisible';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'isVisible'
+ public Keyword getIsVisibleKeyword() { return cIsVisibleKeyword; }
+ }
+ public class OpIsOutputtedElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpIsOutputted");
+ private final Keyword cIsOutputtedKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpIsOutputted:
+ // 'isOutputted';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'isOutputted'
+ public Keyword getIsOutputtedKeyword() { return cIsOutputtedKeyword; }
+ }
+ public class OpIsMutedElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpIsMuted");
+ private final Keyword cIsMutedKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpIsMuted:
+ // 'isMuted';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'isMuted'
+ public Keyword getIsMutedKeyword() { return cIsMutedKeyword; }
+ }
+ public class OpOutputtingSoundElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpOutputtingSound");
+ private final Keyword cOutputtingSoundKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpOutputtingSound:
+ // 'outputtingSound';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'outputtingSound'
+ public Keyword getOutputtingSoundKeyword() { return cOutputtingSoundKeyword; }
+ }
+ public class OpIsSoundingElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpIsSounding");
+ private final Keyword cIsSoundingKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpIsSounding:
+ // 'isSounding';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'isSounding'
+ public Keyword getIsSoundingKeyword() { return cIsSoundingKeyword; }
+ }
+ public class OpIsAttenuatedElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpIsAttenuated");
+ private final Keyword cIsAttenuatedKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpIsAttenuated:
+ // 'isAttenuated';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'isAttenuated'
+ public Keyword getIsAttenuatedKeyword() { return cIsAttenuatedKeyword; }
+ }
+ public class OpHasComeEarlierThanElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpHasComeEarlierThan");
+ private final Keyword cHasComeEarlierThanKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpHasComeEarlierThan:
+ // 'hasComeEarlierThan';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'hasComeEarlierThan'
+ public Keyword getHasComeEarlierThanKeyword() { return cHasComeEarlierThanKeyword; }
+ }
+ public class OpHasComeLaterThanElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpHasComeLaterThan");
+ private final Keyword cHasComeLaterThanKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpHasComeLaterThan:
+ // 'hasComeLaterThan';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'hasComeLaterThan'
+ public Keyword getHasComeLaterThanKeyword() { return cHasComeLaterThanKeyword; }
+ }
+ public class OpStateValueElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpStateValue");
+ private final Keyword cStateValueKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpStateValue:
+ // 'stateValue';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'stateValue'
+ public Keyword getStateValueKeyword() { return cStateValueKeyword; }
+ }
+ public class OpIsAllocatedToElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpIsAllocatedTo");
+ private final Keyword cIsAllocatedToKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpIsAllocatedTo:
+ // 'isAllocatedTo';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'isAllocatedTo'
+ public Keyword getIsAllocatedToKeyword() { return cIsAllocatedToKeyword; }
+ }
+ public class OpIsChangedElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpIsChanged");
+ private final Keyword cIsChangedKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpIsChanged:
+ // 'isChanged';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'isChanged'
+ public Keyword getIsChangedKeyword() { return cIsChangedKeyword; }
+ }
+ public class OpIsTranslatedToElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpIsTranslatedTo");
+ private final Keyword cIsTranslatedToKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpIsTranslatedTo:
+ // 'isTranslatedTo';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'isTranslatedTo'
+ public Keyword getIsTranslatedToKeyword() { return cIsTranslatedToKeyword; }
+ }
+ public class OpIsDisplayedOnElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpIsDisplayedOn");
+ private final Keyword cIsDisplayedOnKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpIsDisplayedOn:
+ // 'isDisplayedOn';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'isDisplayedOn'
+ public Keyword getIsDisplayedOnKeyword() { return cIsDisplayedOnKeyword; }
+ }
+ public class OpIsChangedDisplayElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpIsChangedDisplay");
+ private final Keyword cIsChangedDisplayKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpIsChangedDisplay:
+ // 'isChangedDisplay';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'isChangedDisplay'
+ public Keyword getIsChangedDisplayKeyword() { return cIsChangedDisplayKeyword; }
+ }
+ public class OpIsTranslatedViewToElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpIsTranslatedViewTo");
+ private final Keyword cIsTranslatedViewToKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpIsTranslatedViewTo:
+ // 'isTranslatedViewTo';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'isTranslatedViewTo'
+ public Keyword getIsTranslatedViewToKeyword() { return cIsTranslatedViewToKeyword; }
+ }
+ public class OpIsOutputtedOnElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpIsOutputtedOn");
+ private final Keyword cIsOutputtedOnKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpIsOutputtedOn:
+ // 'isOutputtedOn';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'isOutputtedOn'
+ public Keyword getIsOutputtedOnKeyword() { return cIsOutputtedOnKeyword; }
+ }
+ public class OpIsChangedOutputElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpIsChangedOutput");
+ private final Keyword cIsChangedOutputKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpIsChangedOutput:
+ // 'isChangedOutput';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'isChangedOutput'
+ public Keyword getIsChangedOutputKeyword() { return cIsChangedOutputKeyword; }
+ }
+ public class OpIsTranslatedSoundToElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpIsTranslatedSoundTo");
+ private final Keyword cIsTranslatedSoundToKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpIsTranslatedSoundTo:
+ // 'isTranslatedSoundTo';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'isTranslatedSoundTo'
+ public Keyword getIsTranslatedSoundToKeyword() { return cIsTranslatedSoundToKeyword; }
+ }
+ public class OpIsTypeOfElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpIsTypeOf");
+ private final Keyword cIsTypeOfKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpIsTypeOf:
+ // 'isTypeOf';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'isTypeOf'
+ public Keyword getIsTypeOfKeyword() { return cIsTypeOfKeyword; }
+ }
+ public class OpActiveContentsElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpActiveContents");
+ private final Keyword cActiveContentsKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpActiveContents:
+ // 'activeContents';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'activeContents'
+ public Keyword getActiveContentsKeyword() { return cActiveContentsKeyword; }
+ }
+ public class OpSizeOperatorElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpSizeOperator");
+ private final Keyword cSizeKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpSizeOperator:
+ // 'size';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'size'
+ public Keyword getSizeKeyword() { return cSizeKeyword; }
+ }
+ public class OpHasBeenDisplayedElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpHasBeenDisplayed");
+ private final Keyword cHasBeenDisplayedKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpHasBeenDisplayed:
+ // 'hasBeenDisplayed';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'hasBeenDisplayed'
+ public Keyword getHasBeenDisplayedKeyword() { return cHasBeenDisplayedKeyword; }
+ }
+ public class OpActiveStateElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpActiveState");
+ private final Keyword cActiveStateKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpActiveState:
+ // 'activeState';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'activeState'
+ public Keyword getActiveStateKeyword() { return cActiveStateKeyword; }
+ }
+ public class OpGetStateElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpGetState");
+ private final Keyword cStateKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpGetState:
+ // 'state';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'state'
+ public Keyword getStateKeyword() { return cStateKeyword; }
+ }
+ public class OpMaxOperatorElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpMaxOperator");
+ private final Keyword cMaxKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpMaxOperator:
+ // 'max';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'max'
+ public Keyword getMaxKeyword() { return cMaxKeyword; }
+ }
+ public class OpMinOperatorElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpMinOperator");
+ private final Keyword cMinKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpMinOperator:
+ // 'min';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'min'
+ public Keyword getMinKeyword() { return cMinKeyword; }
+ }
+ public class OpSelectOperatorElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpSelectOperator");
+ private final Keyword cSelectKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpSelectOperator:
+ // 'select';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'select'
+ public Keyword getSelectKeyword() { return cSelectKeyword; }
+ }
+ public class OpStartOpratorElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpStartOprator");
+ private final Keyword cStartKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpStartOprator:
+ // 'start';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'start'
+ public Keyword getStartKeyword() { return cStartKeyword; }
+ }
+ public class OpStopOpratorElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpStopOprator");
+ private final Keyword cStopKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpStopOprator:
+ // 'stop';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'stop'
+ public Keyword getStopKeyword() { return cStopKeyword; }
+ }
+ public class OpActivateOpratorElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.OpActivateOprator");
+ private final Keyword cActivateKeyword = (Keyword)rule.eContents().get(1);
+
+ //OpActivateOprator:
+ // 'activate';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'activate'
+ public Keyword getActivateKeyword() { return cActivateKeyword; }
+ }
+ public class CPrimaryExpressionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.CPrimaryExpression");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final RuleCall cCMemberFeatureReferenceParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+ private final RuleCall cPreviousModifierParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+ private final RuleCall cAllInstanceOfExpressionParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
+ private final RuleCall cNullExpressionParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
+ private final RuleCall cIntegerValueParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
+ private final RuleCall cMuteLowerPriorityParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5);
+ private final RuleCall cHideLowerPriorityParserRuleCall_6 = (RuleCall)cAlternatives.eContents().get(6);
+ private final RuleCall cSetOfOperatorParserRuleCall_7 = (RuleCall)cAlternatives.eContents().get(7);
+ private final RuleCall cIfStatementParserRuleCall_8 = (RuleCall)cAlternatives.eContents().get(8);
+ private final RuleCall cForAllOperatorParserRuleCall_9 = (RuleCall)cAlternatives.eContents().get(9);
+ private final RuleCall cExistsOperatorParserRuleCall_10 = (RuleCall)cAlternatives.eContents().get(10);
+ private final Group cGroup_11 = (Group)cAlternatives.eContents().get(11);
+ private final Keyword cLeftParenthesisKeyword_11_0 = (Keyword)cGroup_11.eContents().get(0);
+ private final RuleCall cCExpressionParserRuleCall_11_1 = (RuleCall)cGroup_11.eContents().get(1);
+ private final Keyword cRightParenthesisKeyword_11_2 = (Keyword)cGroup_11.eContents().get(2);
+
+ //CPrimaryExpression rbacore::Expression:
+ // CMemberFeatureReference | PreviousModifier | AllInstanceOfExpression | NullExpression | IntegerValue |
+ // MuteLowerPriority | HideLowerPriority | SetOfOperator | IfStatement | ForAllOperator | ExistsOperator |
+ // '(' CExpression ')';
+ @Override public ParserRule getRule() { return rule; }
+
+ //CMemberFeatureReference | PreviousModifier | AllInstanceOfExpression | NullExpression | IntegerValue | MuteLowerPriority
+ //| HideLowerPriority | SetOfOperator | IfStatement | ForAllOperator | ExistsOperator | '(' CExpression ')'
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //CMemberFeatureReference
+ public RuleCall getCMemberFeatureReferenceParserRuleCall_0() { return cCMemberFeatureReferenceParserRuleCall_0; }
+
+ //PreviousModifier
+ public RuleCall getPreviousModifierParserRuleCall_1() { return cPreviousModifierParserRuleCall_1; }
+
+ //AllInstanceOfExpression
+ public RuleCall getAllInstanceOfExpressionParserRuleCall_2() { return cAllInstanceOfExpressionParserRuleCall_2; }
+
+ //NullExpression
+ public RuleCall getNullExpressionParserRuleCall_3() { return cNullExpressionParserRuleCall_3; }
+
+ //IntegerValue
+ public RuleCall getIntegerValueParserRuleCall_4() { return cIntegerValueParserRuleCall_4; }
+
+ //MuteLowerPriority
+ public RuleCall getMuteLowerPriorityParserRuleCall_5() { return cMuteLowerPriorityParserRuleCall_5; }
+
+ //HideLowerPriority
+ public RuleCall getHideLowerPriorityParserRuleCall_6() { return cHideLowerPriorityParserRuleCall_6; }
+
+ //SetOfOperator
+ public RuleCall getSetOfOperatorParserRuleCall_7() { return cSetOfOperatorParserRuleCall_7; }
+
+ //IfStatement
+ public RuleCall getIfStatementParserRuleCall_8() { return cIfStatementParserRuleCall_8; }
+
+ //ForAllOperator
+ public RuleCall getForAllOperatorParserRuleCall_9() { return cForAllOperatorParserRuleCall_9; }
+
+ //ExistsOperator
+ public RuleCall getExistsOperatorParserRuleCall_10() { return cExistsOperatorParserRuleCall_10; }
+
+ //'(' CExpression ')'
+ public Group getGroup_11() { return cGroup_11; }
+
+ //'('
+ public Keyword getLeftParenthesisKeyword_11_0() { return cLeftParenthesisKeyword_11_0; }
+
+ //CExpression
+ public RuleCall getCExpressionParserRuleCall_11_1() { return cCExpressionParserRuleCall_11_1; }
+
+ //')'
+ public Keyword getRightParenthesisKeyword_11_2() { return cRightParenthesisKeyword_11_2; }
+ }
+ public class AllInstanceOfExpressionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.AllInstanceOfExpression");
+ 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 Action cAllInstanceOfAreaAction_0_0_0 = (Action)cGroup_0_0.eContents().get(0);
+ private final Keyword cALL_AREASKeyword_0_0_1 = (Keyword)cGroup_0_0.eContents().get(1);
+ private final Group cGroup_0_1 = (Group)cAlternatives_0.eContents().get(1);
+ private final Action cAllInstanceOfViewContentAction_0_1_0 = (Action)cGroup_0_1.eContents().get(0);
+ private final Keyword cALL_VIEWCONTENTSKeyword_0_1_1 = (Keyword)cGroup_0_1.eContents().get(1);
+ private final Group cGroup_0_2 = (Group)cAlternatives_0.eContents().get(2);
+ private final Action cAllInstanceOfZoneAction_0_2_0 = (Action)cGroup_0_2.eContents().get(0);
+ private final Keyword cALL_ZONESKeyword_0_2_1 = (Keyword)cGroup_0_2.eContents().get(1);
+ private final Group cGroup_0_3 = (Group)cAlternatives_0.eContents().get(3);
+ private final Action cAllInstanceOfSoundContentAction_0_3_0 = (Action)cGroup_0_3.eContents().get(0);
+ private final Keyword cALL_SOUNDCONTENTSKeyword_0_3_1 = (Keyword)cGroup_0_3.eContents().get(1);
+
+ //AllInstanceOfExpression rbacore::Expression:
+ // => ({rbaview::AllInstanceOfArea} 'ALL_AREAS' | {rbaview::AllInstanceOfViewContent} 'ALL_VIEWCONTENTS' |
+ // {rbasound::AllInstanceOfZone} 'ALL_ZONES' | {rbasound::AllInstanceOfSoundContent} 'ALL_SOUNDCONTENTS');
+ @Override public ParserRule getRule() { return rule; }
+
+ //=> ({rbaview::AllInstanceOfArea} 'ALL_AREAS' | {rbaview::AllInstanceOfViewContent} 'ALL_VIEWCONTENTS' |
+ //{rbasound::AllInstanceOfZone} 'ALL_ZONES' | {rbasound::AllInstanceOfSoundContent} 'ALL_SOUNDCONTENTS')
+ public Group getGroup() { return cGroup; }
+
+ //{rbaview::AllInstanceOfArea} 'ALL_AREAS' | {rbaview::AllInstanceOfViewContent} 'ALL_VIEWCONTENTS' |
+ //{rbasound::AllInstanceOfZone} 'ALL_ZONES' | {rbasound::AllInstanceOfSoundContent} 'ALL_SOUNDCONTENTS'
+ public Alternatives getAlternatives_0() { return cAlternatives_0; }
+
+ //{rbaview::AllInstanceOfArea} 'ALL_AREAS'
+ public Group getGroup_0_0() { return cGroup_0_0; }
+
+ //{rbaview::AllInstanceOfArea}
+ public Action getAllInstanceOfAreaAction_0_0_0() { return cAllInstanceOfAreaAction_0_0_0; }
+
+ //'ALL_AREAS'
+ public Keyword getALL_AREASKeyword_0_0_1() { return cALL_AREASKeyword_0_0_1; }
+
+ //{rbaview::AllInstanceOfViewContent} 'ALL_VIEWCONTENTS'
+ public Group getGroup_0_1() { return cGroup_0_1; }
+
+ //{rbaview::AllInstanceOfViewContent}
+ public Action getAllInstanceOfViewContentAction_0_1_0() { return cAllInstanceOfViewContentAction_0_1_0; }
+
+ //'ALL_VIEWCONTENTS'
+ public Keyword getALL_VIEWCONTENTSKeyword_0_1_1() { return cALL_VIEWCONTENTSKeyword_0_1_1; }
+
+ //{rbasound::AllInstanceOfZone} 'ALL_ZONES'
+ public Group getGroup_0_2() { return cGroup_0_2; }
+
+ //{rbasound::AllInstanceOfZone}
+ public Action getAllInstanceOfZoneAction_0_2_0() { return cAllInstanceOfZoneAction_0_2_0; }
+
+ //'ALL_ZONES'
+ public Keyword getALL_ZONESKeyword_0_2_1() { return cALL_ZONESKeyword_0_2_1; }
+
+ //{rbasound::AllInstanceOfSoundContent} 'ALL_SOUNDCONTENTS'
+ public Group getGroup_0_3() { return cGroup_0_3; }
+
+ //{rbasound::AllInstanceOfSoundContent}
+ public Action getAllInstanceOfSoundContentAction_0_3_0() { return cAllInstanceOfSoundContentAction_0_3_0; }
+
+ //'ALL_SOUNDCONTENTS'
+ public Keyword getALL_SOUNDCONTENTSKeyword_0_3_1() { return cALL_SOUNDCONTENTSKeyword_0_3_1; }
+ }
+ public class NullExpressionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.NullExpression");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Group cGroup_0 = (Group)cGroup.eContents().get(0);
+ private final Action cNullExpressionAction_0_0 = (Action)cGroup_0.eContents().get(0);
+ private final Keyword cNULLKeyword_0_1 = (Keyword)cGroup_0.eContents().get(1);
+
+ //NullExpression rbacore::Expression:
+ // => ({rbacore::NullExpression} 'NULL');
+ @Override public ParserRule getRule() { return rule; }
+
+ //=> ({rbacore::NullExpression} 'NULL')
+ public Group getGroup() { return cGroup; }
+
+ //{rbacore::NullExpression} 'NULL'
+ public Group getGroup_0() { return cGroup_0; }
+
+ //{rbacore::NullExpression}
+ public Action getNullExpressionAction_0_0() { return cNullExpressionAction_0_0; }
+
+ //'NULL'
+ public Keyword getNULLKeyword_0_1() { return cNULLKeyword_0_1; }
+ }
+ public class PreviousModifierElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.PreviousModifier");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cPreviousModifierAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cPreKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cObjReferenceAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cObjReferenceCMemberFeatureReferenceParserRuleCall_2_0 = (RuleCall)cObjReferenceAssignment_2.eContents().get(0);
+
+ //PreviousModifier rbacore::PreviousModifier:
+ // {rbacore::PreviousModifier}
+ // '(pre)' objReference=CMemberFeatureReference;
+ @Override public ParserRule getRule() { return rule; }
+
+ //{rbacore::PreviousModifier} '(pre)' objReference=CMemberFeatureReference
+ public Group getGroup() { return cGroup; }
+
+ //{rbacore::PreviousModifier}
+ public Action getPreviousModifierAction_0() { return cPreviousModifierAction_0; }
+
+ //'(pre)'
+ public Keyword getPreKeyword_1() { return cPreKeyword_1; }
+
+ //objReference=CMemberFeatureReference
+ public Assignment getObjReferenceAssignment_2() { return cObjReferenceAssignment_2; }
+
+ //CMemberFeatureReference
+ public RuleCall getObjReferenceCMemberFeatureReferenceParserRuleCall_2_0() { return cObjReferenceCMemberFeatureReferenceParserRuleCall_2_0; }
+ }
+ public class HideLowerPriorityElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.HideLowerPriority");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cHideLowerPriorityAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cHideLowerPriorityKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Keyword cLeftParenthesisKeyword_2 = (Keyword)cGroup.eContents().get(2);
+ private final Assignment cOperandAssignment_3 = (Assignment)cGroup.eContents().get(3);
+ private final RuleCall cOperandCExpressionParserRuleCall_3_0 = (RuleCall)cOperandAssignment_3.eContents().get(0);
+ private final Keyword cCommaKeyword_4 = (Keyword)cGroup.eContents().get(4);
+ private final Assignment cOperandAssignment_5 = (Assignment)cGroup.eContents().get(5);
+ private final RuleCall cOperandCExpressionParserRuleCall_5_0 = (RuleCall)cOperandAssignment_5.eContents().get(0);
+ private final Keyword cRightParenthesisKeyword_6 = (Keyword)cGroup.eContents().get(6);
+
+ //HideLowerPriority rbaview::HideLowerPriority:
+ // {rbaview::HideLowerPriority}
+ // 'HideLowerPriority' '(' operand+=CExpression ',' operand+=CExpression ')';
+ @Override public ParserRule getRule() { return rule; }
+
+ //{rbaview::HideLowerPriority} 'HideLowerPriority' '(' operand+=CExpression ',' operand+=CExpression ')'
+ public Group getGroup() { return cGroup; }
+
+ //{rbaview::HideLowerPriority}
+ public Action getHideLowerPriorityAction_0() { return cHideLowerPriorityAction_0; }
+
+ //'HideLowerPriority'
+ public Keyword getHideLowerPriorityKeyword_1() { return cHideLowerPriorityKeyword_1; }
+
+ //'('
+ public Keyword getLeftParenthesisKeyword_2() { return cLeftParenthesisKeyword_2; }
+
+ //operand+=CExpression
+ public Assignment getOperandAssignment_3() { return cOperandAssignment_3; }
+
+ //CExpression
+ public RuleCall getOperandCExpressionParserRuleCall_3_0() { return cOperandCExpressionParserRuleCall_3_0; }
+
+ //','
+ public Keyword getCommaKeyword_4() { return cCommaKeyword_4; }
+
+ //operand+=CExpression
+ public Assignment getOperandAssignment_5() { return cOperandAssignment_5; }
+
+ //CExpression
+ public RuleCall getOperandCExpressionParserRuleCall_5_0() { return cOperandCExpressionParserRuleCall_5_0; }
+
+ //')'
+ public Keyword getRightParenthesisKeyword_6() { return cRightParenthesisKeyword_6; }
+ }
+ public class MuteLowerPriorityElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.MuteLowerPriority");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cMuteLowerPriorityAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cMuteLowerPriorityKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Keyword cLeftParenthesisKeyword_2 = (Keyword)cGroup.eContents().get(2);
+ private final Assignment cOperandAssignment_3 = (Assignment)cGroup.eContents().get(3);
+ private final RuleCall cOperandCExpressionParserRuleCall_3_0 = (RuleCall)cOperandAssignment_3.eContents().get(0);
+ private final Keyword cCommaKeyword_4 = (Keyword)cGroup.eContents().get(4);
+ private final Assignment cOperandAssignment_5 = (Assignment)cGroup.eContents().get(5);
+ private final RuleCall cOperandCExpressionParserRuleCall_5_0 = (RuleCall)cOperandAssignment_5.eContents().get(0);
+ private final Keyword cRightParenthesisKeyword_6 = (Keyword)cGroup.eContents().get(6);
+
+ //MuteLowerPriority rbasound::MuteLowerPriority:
+ // {rbasound::MuteLowerPriority}
+ // 'MuteLowerPriority' '(' operand+=CExpression ',' operand+=CExpression ')';
+ @Override public ParserRule getRule() { return rule; }
+
+ //{rbasound::MuteLowerPriority} 'MuteLowerPriority' '(' operand+=CExpression ',' operand+=CExpression ')'
+ public Group getGroup() { return cGroup; }
+
+ //{rbasound::MuteLowerPriority}
+ public Action getMuteLowerPriorityAction_0() { return cMuteLowerPriorityAction_0; }
+
+ //'MuteLowerPriority'
+ public Keyword getMuteLowerPriorityKeyword_1() { return cMuteLowerPriorityKeyword_1; }
+
+ //'('
+ public Keyword getLeftParenthesisKeyword_2() { return cLeftParenthesisKeyword_2; }
+
+ //operand+=CExpression
+ public Assignment getOperandAssignment_3() { return cOperandAssignment_3; }
+
+ //CExpression
+ public RuleCall getOperandCExpressionParserRuleCall_3_0() { return cOperandCExpressionParserRuleCall_3_0; }
+
+ //','
+ public Keyword getCommaKeyword_4() { return cCommaKeyword_4; }
+
+ //operand+=CExpression
+ public Assignment getOperandAssignment_5() { return cOperandAssignment_5; }
+
+ //CExpression
+ public RuleCall getOperandCExpressionParserRuleCall_5_0() { return cOperandCExpressionParserRuleCall_5_0; }
+
+ //')'
+ public Keyword getRightParenthesisKeyword_6() { return cRightParenthesisKeyword_6; }
+ }
+ public class SetOfOperatorElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.SetOfOperator");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cSetOfOperatorAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cLeftCurlyBracketKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
+ private final Assignment cOperandAssignment_2_0 = (Assignment)cGroup_2.eContents().get(0);
+ private final RuleCall cOperandCExpressionParserRuleCall_2_0_0 = (RuleCall)cOperandAssignment_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 cOperandAssignment_2_1_1 = (Assignment)cGroup_2_1.eContents().get(1);
+ private final RuleCall cOperandCExpressionParserRuleCall_2_1_1_0 = (RuleCall)cOperandAssignment_2_1_1.eContents().get(0);
+ private final Keyword cRightCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
+
+ //SetOfOperator rbacore::SetOfOperator:
+ // {rbacore::SetOfOperator}
+ // '{' (operand+=CExpression (',' operand+=CExpression)*)? '}';
+ @Override public ParserRule getRule() { return rule; }
+
+ //{rbacore::SetOfOperator} '{' (operand+=CExpression (',' operand+=CExpression)*)? '}'
+ public Group getGroup() { return cGroup; }
+
+ //{rbacore::SetOfOperator}
+ public Action getSetOfOperatorAction_0() { return cSetOfOperatorAction_0; }
+
+ //'{'
+ public Keyword getLeftCurlyBracketKeyword_1() { return cLeftCurlyBracketKeyword_1; }
+
+ //(operand+=CExpression (',' operand+=CExpression)*)?
+ public Group getGroup_2() { return cGroup_2; }
+
+ //operand+=CExpression
+ public Assignment getOperandAssignment_2_0() { return cOperandAssignment_2_0; }
+
+ //CExpression
+ public RuleCall getOperandCExpressionParserRuleCall_2_0_0() { return cOperandCExpressionParserRuleCall_2_0_0; }
+
+ //(',' operand+=CExpression)*
+ public Group getGroup_2_1() { return cGroup_2_1; }
+
+ //','
+ public Keyword getCommaKeyword_2_1_0() { return cCommaKeyword_2_1_0; }
+
+ //operand+=CExpression
+ public Assignment getOperandAssignment_2_1_1() { return cOperandAssignment_2_1_1; }
+
+ //CExpression
+ public RuleCall getOperandCExpressionParserRuleCall_2_1_1_0() { return cOperandCExpressionParserRuleCall_2_1_1_0; }
+
+ //'}'
+ public Keyword getRightCurlyBracketKeyword_3() { return cRightCurlyBracketKeyword_3; }
+ }
+ public class IfStatementElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.IfStatement");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cIfStatementAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cIFKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Keyword cLeftParenthesisKeyword_2 = (Keyword)cGroup.eContents().get(2);
+ private final Assignment cConditionAssignment_3 = (Assignment)cGroup.eContents().get(3);
+ private final RuleCall cConditionCExpressionParserRuleCall_3_0 = (RuleCall)cConditionAssignment_3.eContents().get(0);
+ private final Keyword cRightParenthesisKeyword_4 = (Keyword)cGroup.eContents().get(4);
+ private final Group cGroup_5 = (Group)cGroup.eContents().get(5);
+ private final Keyword cTHENKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0);
+ private final Assignment cThenExpressionAssignment_5_1 = (Assignment)cGroup_5.eContents().get(1);
+ private final RuleCall cThenExpressionCExpressionParserRuleCall_5_1_0 = (RuleCall)cThenExpressionAssignment_5_1.eContents().get(0);
+ private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
+ private final Keyword cELSEKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0);
+ private final Assignment cElseExpressionAssignment_6_1 = (Assignment)cGroup_6.eContents().get(1);
+ private final RuleCall cElseExpressionCExpressionParserRuleCall_6_1_0 = (RuleCall)cElseExpressionAssignment_6_1.eContents().get(0);
+
+ //IfStatement rbacore::IfStatement:
+ // {rbacore::IfStatement}
+ // 'IF' '(' condition=CExpression? ')' (=> 'THEN' thenExpression=CExpression)? (=> 'ELSE' elseExpression=CExpression)?;
+ @Override public ParserRule getRule() { return rule; }
+
+ //{rbacore::IfStatement} 'IF' '(' condition=CExpression? ')' (=> 'THEN' thenExpression=CExpression)? (=> 'ELSE'
+ //elseExpression=CExpression)?
+ public Group getGroup() { return cGroup; }
+
+ //{rbacore::IfStatement}
+ public Action getIfStatementAction_0() { return cIfStatementAction_0; }
+
+ //'IF'
+ public Keyword getIFKeyword_1() { return cIFKeyword_1; }
+
+ //'('
+ public Keyword getLeftParenthesisKeyword_2() { return cLeftParenthesisKeyword_2; }
+
+ //condition=CExpression?
+ public Assignment getConditionAssignment_3() { return cConditionAssignment_3; }
+
+ //CExpression
+ public RuleCall getConditionCExpressionParserRuleCall_3_0() { return cConditionCExpressionParserRuleCall_3_0; }
+
+ //')'
+ public Keyword getRightParenthesisKeyword_4() { return cRightParenthesisKeyword_4; }
+
+ //(=> 'THEN' thenExpression=CExpression)?
+ public Group getGroup_5() { return cGroup_5; }
+
+ //=> 'THEN'
+ public Keyword getTHENKeyword_5_0() { return cTHENKeyword_5_0; }
+
+ //thenExpression=CExpression
+ public Assignment getThenExpressionAssignment_5_1() { return cThenExpressionAssignment_5_1; }
+
+ //CExpression
+ public RuleCall getThenExpressionCExpressionParserRuleCall_5_1_0() { return cThenExpressionCExpressionParserRuleCall_5_1_0; }
+
+ //(=> 'ELSE' elseExpression=CExpression)?
+ public Group getGroup_6() { return cGroup_6; }
+
+ //=> 'ELSE'
+ public Keyword getELSEKeyword_6_0() { return cELSEKeyword_6_0; }
+
+ //elseExpression=CExpression
+ public Assignment getElseExpressionAssignment_6_1() { return cElseExpressionAssignment_6_1; }
+
+ //CExpression
+ public RuleCall getElseExpressionCExpressionParserRuleCall_6_1_0() { return cElseExpressionCExpressionParserRuleCall_6_1_0; }
+ }
+ public class ForAllOperatorElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.ForAllOperator");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cForAllOperatorAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cForAllKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cOperandAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cOperandCExpressionParserRuleCall_2_0 = (RuleCall)cOperandAssignment_2.eContents().get(0);
+ private final Assignment cLambdaAssignment_3 = (Assignment)cGroup.eContents().get(3);
+ private final RuleCall cLambdaLambdaExpressionParserRuleCall_3_0 = (RuleCall)cLambdaAssignment_3.eContents().get(0);
+
+ //ForAllOperator rbacore::ForAllOperator:
+ // {rbacore::ForAllOperator}
+ // 'For-All' operand+=CExpression lambda=LambdaExpression;
+ @Override public ParserRule getRule() { return rule; }
+
+ //{rbacore::ForAllOperator} 'For-All' operand+=CExpression lambda=LambdaExpression
+ public Group getGroup() { return cGroup; }
+
+ //{rbacore::ForAllOperator}
+ public Action getForAllOperatorAction_0() { return cForAllOperatorAction_0; }
+
+ //'For-All'
+ public Keyword getForAllKeyword_1() { return cForAllKeyword_1; }
+
+ //operand+=CExpression
+ public Assignment getOperandAssignment_2() { return cOperandAssignment_2; }
+
+ //CExpression
+ public RuleCall getOperandCExpressionParserRuleCall_2_0() { return cOperandCExpressionParserRuleCall_2_0; }
+
+ //lambda=LambdaExpression
+ public Assignment getLambdaAssignment_3() { return cLambdaAssignment_3; }
+
+ //LambdaExpression
+ public RuleCall getLambdaLambdaExpressionParserRuleCall_3_0() { return cLambdaLambdaExpressionParserRuleCall_3_0; }
+ }
+ public class ExistsOperatorElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.ExistsOperator");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cExistsOperatorAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cExistsKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cOperandAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cOperandCExpressionParserRuleCall_2_0 = (RuleCall)cOperandAssignment_2.eContents().get(0);
+ private final Assignment cLambdaAssignment_3 = (Assignment)cGroup.eContents().get(3);
+ private final RuleCall cLambdaLambdaExpressionParserRuleCall_3_0 = (RuleCall)cLambdaAssignment_3.eContents().get(0);
+
+ //ExistsOperator rbacore::ExistsOperator:
+ // {rbacore::ExistsOperator}
+ // 'Exists' operand+=CExpression lambda=LambdaExpression;
+ @Override public ParserRule getRule() { return rule; }
+
+ //{rbacore::ExistsOperator} 'Exists' operand+=CExpression lambda=LambdaExpression
+ public Group getGroup() { return cGroup; }
+
+ //{rbacore::ExistsOperator}
+ public Action getExistsOperatorAction_0() { return cExistsOperatorAction_0; }
+
+ //'Exists'
+ public Keyword getExistsKeyword_1() { return cExistsKeyword_1; }
+
+ //operand+=CExpression
+ public Assignment getOperandAssignment_2() { return cOperandAssignment_2; }
+
+ //CExpression
+ public RuleCall getOperandCExpressionParserRuleCall_2_0() { return cOperandCExpressionParserRuleCall_2_0; }
+
+ //lambda=LambdaExpression
+ public Assignment getLambdaAssignment_3() { return cLambdaAssignment_3; }
+
+ //LambdaExpression
+ public RuleCall getLambdaLambdaExpressionParserRuleCall_3_0() { return cLambdaLambdaExpressionParserRuleCall_3_0; }
+ }
+ public class LambdaExpressionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.LambdaExpression");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Group cGroup_0 = (Group)cGroup.eContents().get(0);
+ private final Group cGroup_0_0 = (Group)cGroup_0.eContents().get(0);
+ private final Action cLambdaExpressionAction_0_0_0 = (Action)cGroup_0_0.eContents().get(0);
+ private final Keyword cLeftCurlyBracketKeyword_0_0_1 = (Keyword)cGroup_0_0.eContents().get(1);
+ private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+ private final Assignment cXAssignment_1_0 = (Assignment)cGroup_1.eContents().get(0);
+ private final RuleCall cXVariableParserRuleCall_1_0_0 = (RuleCall)cXAssignment_1_0.eContents().get(0);
+ private final Keyword cVerticalLineKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1);
+ private final Assignment cLetStatementsAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cLetStatementsLetStatementParserRuleCall_2_0 = (RuleCall)cLetStatementsAssignment_2.eContents().get(0);
+ private final Assignment cBodyTextAssignment_3 = (Assignment)cGroup.eContents().get(3);
+ private final RuleCall cBodyTextCExpressionParserRuleCall_3_0 = (RuleCall)cBodyTextAssignment_3.eContents().get(0);
+ private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
+
+ //// Other
+ //LambdaExpression rbacore::LambdaExpression:
+ // => ({rbacore::LambdaExpression}
+ // '{') (x=Variable? '|')?
+ // letStatements+=LetStatement*
+ // bodyText=CExpression
+ // '}';
+ @Override public ParserRule getRule() { return rule; }
+
+ //=> ({rbacore::LambdaExpression} '{') (x=Variable? '|')? letStatements+=LetStatement* bodyText=CExpression '}'
+ public Group getGroup() { return cGroup; }
+
+ //=> ({rbacore::LambdaExpression} '{')
+ public Group getGroup_0() { return cGroup_0; }
+
+ //{rbacore::LambdaExpression} '{'
+ public Group getGroup_0_0() { return cGroup_0_0; }
+
+ //{rbacore::LambdaExpression}
+ public Action getLambdaExpressionAction_0_0_0() { return cLambdaExpressionAction_0_0_0; }
+
+ //'{'
+ public Keyword getLeftCurlyBracketKeyword_0_0_1() { return cLeftCurlyBracketKeyword_0_0_1; }
+
+ //(x=Variable? '|')?
+ public Group getGroup_1() { return cGroup_1; }
+
+ //x=Variable?
+ public Assignment getXAssignment_1_0() { return cXAssignment_1_0; }
+
+ //Variable
+ public RuleCall getXVariableParserRuleCall_1_0_0() { return cXVariableParserRuleCall_1_0_0; }
+
+ //'|'
+ public Keyword getVerticalLineKeyword_1_1() { return cVerticalLineKeyword_1_1; }
+
+ //letStatements+=LetStatement*
+ public Assignment getLetStatementsAssignment_2() { return cLetStatementsAssignment_2; }
+
+ //LetStatement
+ public RuleCall getLetStatementsLetStatementParserRuleCall_2_0() { return cLetStatementsLetStatementParserRuleCall_2_0; }
+
+ //bodyText=CExpression
+ public Assignment getBodyTextAssignment_3() { return cBodyTextAssignment_3; }
+
+ //CExpression
+ public RuleCall getBodyTextCExpressionParserRuleCall_3_0() { return cBodyTextCExpressionParserRuleCall_3_0; }
+
+ //'}'
+ public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
+ }
+ public class VariableElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.Variable");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cVariableAction_0 = (Action)cGroup.eContents().get(0);
+ private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cNameQualifiedNameParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
+
+ //Variable rbacore::Variable:
+ // {rbacore::Variable} name=QualifiedName;
+ @Override public ParserRule getRule() { return rule; }
+
+ //{rbacore::Variable} name=QualifiedName
+ public Group getGroup() { return cGroup; }
+
+ //{rbacore::Variable}
+ public Action getVariableAction_0() { return cVariableAction_0; }
+
+ //name=QualifiedName
+ public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+
+ //QualifiedName
+ public RuleCall getNameQualifiedNameParserRuleCall_1_0() { return cNameQualifiedNameParserRuleCall_1_0; }
+ }
+ public class CObjectReferenceElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.CObjectReference");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cObjectReferenceAction_0 = (Action)cGroup.eContents().get(0);
+ private final Assignment cRefObjectAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final CrossReference cRefObjectRuleObjectCrossReference_1_0 = (CrossReference)cRefObjectAssignment_1.eContents().get(0);
+ private final RuleCall cRefObjectRuleObjectIdOrThisParserRuleCall_1_0_1 = (RuleCall)cRefObjectRuleObjectCrossReference_1_0.eContents().get(1);
+
+ //CObjectReference rbacore::ObjectReference:
+ // {rbacore::ObjectReference} refObject=[rbacore::RuleObject|IdOrThis];
+ @Override public ParserRule getRule() { return rule; }
+
+ //{rbacore::ObjectReference} refObject=[rbacore::RuleObject|IdOrThis]
+ public Group getGroup() { return cGroup; }
+
+ //{rbacore::ObjectReference}
+ public Action getObjectReferenceAction_0() { return cObjectReferenceAction_0; }
+
+ //refObject=[rbacore::RuleObject|IdOrThis]
+ public Assignment getRefObjectAssignment_1() { return cRefObjectAssignment_1; }
+
+ //[rbacore::RuleObject|IdOrThis]
+ public CrossReference getRefObjectRuleObjectCrossReference_1_0() { return cRefObjectRuleObjectCrossReference_1_0; }
+
+ //IdOrThis
+ public RuleCall getRefObjectRuleObjectIdOrThisParserRuleCall_1_0_1() { return cRefObjectRuleObjectIdOrThisParserRuleCall_1_0_1; }
+ }
+ public class CMemberFeatureReferenceElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.CMemberFeatureReference");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cObjectReferenceAction_0 = (Action)cGroup.eContents().get(0);
+ private final Assignment cRefObjectAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final CrossReference cRefObjectRuleObjectCrossReference_1_0 = (CrossReference)cRefObjectAssignment_1.eContents().get(0);
+ private final RuleCall cRefObjectRuleObjectIdOrThisParserRuleCall_1_0_1 = (RuleCall)cRefObjectRuleObjectCrossReference_1_0.eContents().get(1);
+ private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
+ private final Action cMemberFeatureReferenceOperandAction_2_0 = (Action)cGroup_2.eContents().get(0);
+ private final Keyword cFullStopKeyword_2_1 = (Keyword)cGroup_2.eContents().get(1);
+ private final Assignment cRefObjectAssignment_2_2 = (Assignment)cGroup_2.eContents().get(2);
+ private final CrossReference cRefObjectRuleObjectCrossReference_2_2_0 = (CrossReference)cRefObjectAssignment_2_2.eContents().get(0);
+ private final RuleCall cRefObjectRuleObjectValidIDParserRuleCall_2_2_0_1 = (RuleCall)cRefObjectRuleObjectCrossReference_2_2_0.eContents().get(1);
+
+ //CMemberFeatureReference rbacore::ObjectReference:
+ // {rbacore::ObjectReference} refObject=[rbacore::RuleObject|IdOrThis] ({MemberFeatureReference.operand+=current} '.'
+ // refObject=[rbacore::RuleObject|ValidID])*;
+ @Override public ParserRule getRule() { return rule; }
+
+ //{rbacore::ObjectReference} refObject=[rbacore::RuleObject|IdOrThis] ({MemberFeatureReference.operand+=current} '.'
+ //refObject=[rbacore::RuleObject|ValidID])*
+ public Group getGroup() { return cGroup; }
+
+ //{rbacore::ObjectReference}
+ public Action getObjectReferenceAction_0() { return cObjectReferenceAction_0; }
+
+ //refObject=[rbacore::RuleObject|IdOrThis]
+ public Assignment getRefObjectAssignment_1() { return cRefObjectAssignment_1; }
+
+ //[rbacore::RuleObject|IdOrThis]
+ public CrossReference getRefObjectRuleObjectCrossReference_1_0() { return cRefObjectRuleObjectCrossReference_1_0; }
+
+ //IdOrThis
+ public RuleCall getRefObjectRuleObjectIdOrThisParserRuleCall_1_0_1() { return cRefObjectRuleObjectIdOrThisParserRuleCall_1_0_1; }
+
+ //({MemberFeatureReference.operand+=current} '.' refObject=[rbacore::RuleObject|ValidID])*
+ public Group getGroup_2() { return cGroup_2; }
+
+ //{MemberFeatureReference.operand+=current}
+ public Action getMemberFeatureReferenceOperandAction_2_0() { return cMemberFeatureReferenceOperandAction_2_0; }
+
+ //'.'
+ public Keyword getFullStopKeyword_2_1() { return cFullStopKeyword_2_1; }
+
+ //refObject=[rbacore::RuleObject|ValidID]
+ public Assignment getRefObjectAssignment_2_2() { return cRefObjectAssignment_2_2; }
+
+ //[rbacore::RuleObject|ValidID]
+ public CrossReference getRefObjectRuleObjectCrossReference_2_2_0() { return cRefObjectRuleObjectCrossReference_2_2_0; }
+
+ //ValidID
+ public RuleCall getRefObjectRuleObjectValidIDParserRuleCall_2_2_0_1() { return cRefObjectRuleObjectValidIDParserRuleCall_2_2_0_1; }
+ }
+ public class LetStatementElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.LetStatement");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cLetStatementAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cLetKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cVariableAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cVariableVariableParserRuleCall_2_0 = (RuleCall)cVariableAssignment_2.eContents().get(0);
+ private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
+ private final Keyword cEqualsSignKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
+ private final Assignment cBodyAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
+ private final RuleCall cBodyCExpressionParserRuleCall_3_1_0 = (RuleCall)cBodyAssignment_3_1.eContents().get(0);
+
+ //LetStatement rbacore::LetStatement:
+ // {rbacore::LetStatement} 'let' => variable=Variable ('=' body=CExpression)?;
+ @Override public ParserRule getRule() { return rule; }
+
+ //{rbacore::LetStatement} 'let' => variable=Variable ('=' body=CExpression)?
+ public Group getGroup() { return cGroup; }
+
+ //{rbacore::LetStatement}
+ public Action getLetStatementAction_0() { return cLetStatementAction_0; }
+
+ //'let'
+ public Keyword getLetKeyword_1() { return cLetKeyword_1; }
+
+ //=> variable=Variable
+ public Assignment getVariableAssignment_2() { return cVariableAssignment_2; }
+
+ //Variable
+ public RuleCall getVariableVariableParserRuleCall_2_0() { return cVariableVariableParserRuleCall_2_0; }
+
+ //('=' body=CExpression)?
+ public Group getGroup_3() { return cGroup_3; }
+
+ //'='
+ public Keyword getEqualsSignKeyword_3_0() { return cEqualsSignKeyword_3_0; }
+
+ //body=CExpression
+ public Assignment getBodyAssignment_3_1() { return cBodyAssignment_3_1; }
+
+ //CExpression
+ public RuleCall getBodyCExpressionParserRuleCall_3_1_0() { return cBodyCExpressionParserRuleCall_3_1_0; }
+ }
+ public class ComplexExpressionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.ComplexExpression");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cComplexExpressionAction_0 = (Action)cGroup.eContents().get(0);
+ private final Assignment cLetStatementsAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cLetStatementsLetStatementParserRuleCall_1_0 = (RuleCall)cLetStatementsAssignment_1.eContents().get(0);
+ private final Assignment cOtherExpressionAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cOtherExpressionCExpressionParserRuleCall_2_0 = (RuleCall)cOtherExpressionAssignment_2.eContents().get(0);
+
+ //ComplexExpression rbacore::ComplexExpression:
+ // {rbacore::ComplexExpression} letStatements+=LetStatement*
+ // otherExpression=CExpression;
+ @Override public ParserRule getRule() { return rule; }
+
+ //{rbacore::ComplexExpression} letStatements+=LetStatement* otherExpression=CExpression
+ public Group getGroup() { return cGroup; }
+
+ //{rbacore::ComplexExpression}
+ public Action getComplexExpressionAction_0() { return cComplexExpressionAction_0; }
+
+ //letStatements+=LetStatement*
+ public Assignment getLetStatementsAssignment_1() { return cLetStatementsAssignment_1; }
+
+ //LetStatement
+ public RuleCall getLetStatementsLetStatementParserRuleCall_1_0() { return cLetStatementsLetStatementParserRuleCall_1_0; }
+
+ //otherExpression=CExpression
+ public Assignment getOtherExpressionAssignment_2() { return cOtherExpressionAssignment_2; }
+
+ //CExpression
+ public RuleCall getOtherExpressionCExpressionParserRuleCall_2_0() { return cOtherExpressionCExpressionParserRuleCall_2_0; }
+ }
+ public class EnumExpressionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.EnumExpression");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0);
+ private final Keyword cLoserTypeKeyword_0_0 = (Keyword)cGroup_0.eContents().get(0);
+ private final RuleCall cLoserTypeExpressionParserRuleCall_0_1 = (RuleCall)cGroup_0.eContents().get(1);
+ private final Group cGroup_1 = (Group)cAlternatives.eContents().get(1);
+ private final Keyword cArbitrationPolicyKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
+ private final RuleCall cArbitrationPolicyExpressionParserRuleCall_1_1 = (RuleCall)cGroup_1.eContents().get(1);
+
+ //EnumExpression rbacore::EnumExpression:
+ // 'LoserType::' => LoserTypeExpression | 'ArbitrationPolicy::' => ArbitrationPolicyExpression;
+ @Override public ParserRule getRule() { return rule; }
+
+ //'LoserType::' => LoserTypeExpression | 'ArbitrationPolicy::' => ArbitrationPolicyExpression
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //'LoserType::' => LoserTypeExpression
+ public Group getGroup_0() { return cGroup_0; }
+
+ //'LoserType::'
+ public Keyword getLoserTypeKeyword_0_0() { return cLoserTypeKeyword_0_0; }
+
+ //=> LoserTypeExpression
+ public RuleCall getLoserTypeExpressionParserRuleCall_0_1() { return cLoserTypeExpressionParserRuleCall_0_1; }
+
+ //'ArbitrationPolicy::' => ArbitrationPolicyExpression
+ public Group getGroup_1() { return cGroup_1; }
+
+ //'ArbitrationPolicy::'
+ public Keyword getArbitrationPolicyKeyword_1_0() { return cArbitrationPolicyKeyword_1_0; }
+
+ //=> ArbitrationPolicyExpression
+ public RuleCall getArbitrationPolicyExpressionParserRuleCall_1_1() { return cArbitrationPolicyExpressionParserRuleCall_1_1; }
+ }
+ public class LoserTypeExpressionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.LoserTypeExpression");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cLoserTypeExpressionAction_0 = (Action)cGroup.eContents().get(0);
+ private final Assignment cValueAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cValueLoserTypeEnumRuleCall_1_0 = (RuleCall)cValueAssignment_1.eContents().get(0);
+
+ //LoserTypeExpression rbacore::LoserTypeExpression:
+ // {rbacore::LoserTypeExpression} value=LoserType;
+ @Override public ParserRule getRule() { return rule; }
+
+ //{rbacore::LoserTypeExpression} value=LoserType
+ public Group getGroup() { return cGroup; }
+
+ //{rbacore::LoserTypeExpression}
+ public Action getLoserTypeExpressionAction_0() { return cLoserTypeExpressionAction_0; }
+
+ //value=LoserType
+ public Assignment getValueAssignment_1() { return cValueAssignment_1; }
+
+ //LoserType
+ public RuleCall getValueLoserTypeEnumRuleCall_1_0() { return cValueLoserTypeEnumRuleCall_1_0; }
+ }
+ public class ArbitrationPolicyExpressionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.ArbitrationPolicyExpression");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cArbitrationPolicyExpressionAction_0 = (Action)cGroup.eContents().get(0);
+ private final Assignment cValueAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cValueArbitrationPolicyEnumRuleCall_1_0 = (RuleCall)cValueAssignment_1.eContents().get(0);
+
+ //ArbitrationPolicyExpression rbacore::ArbitrationPolicyExpression:
+ // {rbacore::ArbitrationPolicyExpression} value=ArbitrationPolicy;
+ @Override public ParserRule getRule() { return rule; }
+
+ //{rbacore::ArbitrationPolicyExpression} value=ArbitrationPolicy
+ public Group getGroup() { return cGroup; }
+
+ //{rbacore::ArbitrationPolicyExpression}
+ public Action getArbitrationPolicyExpressionAction_0() { return cArbitrationPolicyExpressionAction_0; }
+
+ //value=ArbitrationPolicy
+ public Assignment getValueAssignment_1() { return cValueAssignment_1; }
+
+ //ArbitrationPolicy
+ public RuleCall getValueArbitrationPolicyEnumRuleCall_1_0() { return cValueArbitrationPolicyEnumRuleCall_1_0; }
+ }
+ public class ViewContentSetElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.ViewContentSet");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cViewContentSetAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cViewContentSetKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cNameQualifiedNameParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
+ private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
+ private final UnorderedGroup cUnorderedGroup_4 = (UnorderedGroup)cGroup.eContents().get(4);
+ private final Group cGroup_4_0 = (Group)cUnorderedGroup_4.eContents().get(0);
+ private final Keyword cDescriptionKeyword_4_0_0 = (Keyword)cGroup_4_0.eContents().get(0);
+ private final Assignment cDescriptionAssignment_4_0_1 = (Assignment)cGroup_4_0.eContents().get(1);
+ private final RuleCall cDescriptionEStringParserRuleCall_4_0_1_0 = (RuleCall)cDescriptionAssignment_4_0_1.eContents().get(0);
+ private final Group cGroup_4_1 = (Group)cUnorderedGroup_4.eContents().get(1);
+ private final Keyword cTargetKeyword_4_1_0 = (Keyword)cGroup_4_1.eContents().get(0);
+ private final Keyword cLeftSquareBracketKeyword_4_1_1 = (Keyword)cGroup_4_1.eContents().get(1);
+ private final Group cGroup_4_1_2 = (Group)cGroup_4_1.eContents().get(2);
+ private final Assignment cTargetAssignment_4_1_2_0 = (Assignment)cGroup_4_1_2.eContents().get(0);
+ private final CrossReference cTargetAbstractContentCrossReference_4_1_2_0_0 = (CrossReference)cTargetAssignment_4_1_2_0.eContents().get(0);
+ private final RuleCall cTargetAbstractContentQualifiedNameParserRuleCall_4_1_2_0_0_1 = (RuleCall)cTargetAbstractContentCrossReference_4_1_2_0_0.eContents().get(1);
+ private final Group cGroup_4_1_2_1 = (Group)cGroup_4_1_2.eContents().get(1);
+ private final Keyword cCommaKeyword_4_1_2_1_0 = (Keyword)cGroup_4_1_2_1.eContents().get(0);
+ private final Assignment cTargetAssignment_4_1_2_1_1 = (Assignment)cGroup_4_1_2_1.eContents().get(1);
+ private final CrossReference cTargetAbstractContentCrossReference_4_1_2_1_1_0 = (CrossReference)cTargetAssignment_4_1_2_1_1.eContents().get(0);
+ private final RuleCall cTargetAbstractContentQualifiedNameParserRuleCall_4_1_2_1_1_0_1 = (RuleCall)cTargetAbstractContentCrossReference_4_1_2_1_1_0.eContents().get(1);
+ private final Keyword cRightSquareBracketKeyword_4_1_3 = (Keyword)cGroup_4_1.eContents().get(3);
+ private final Group cGroup_4_2 = (Group)cUnorderedGroup_4.eContents().get(2);
+ private final Keyword cAllocatableKeyword_4_2_0 = (Keyword)cGroup_4_2.eContents().get(0);
+ private final Keyword cLeftSquareBracketKeyword_4_2_1 = (Keyword)cGroup_4_2.eContents().get(1);
+ private final Group cGroup_4_2_2 = (Group)cGroup_4_2.eContents().get(2);
+ private final Assignment cAllocatableAssignment_4_2_2_0 = (Assignment)cGroup_4_2_2.eContents().get(0);
+ private final CrossReference cAllocatableAbstractAllocatableCrossReference_4_2_2_0_0 = (CrossReference)cAllocatableAssignment_4_2_2_0.eContents().get(0);
+ private final RuleCall cAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_0_0_1 = (RuleCall)cAllocatableAbstractAllocatableCrossReference_4_2_2_0_0.eContents().get(1);
+ private final Group cGroup_4_2_2_1 = (Group)cGroup_4_2_2.eContents().get(1);
+ private final Keyword cCommaKeyword_4_2_2_1_0 = (Keyword)cGroup_4_2_2_1.eContents().get(0);
+ private final Assignment cAllocatableAssignment_4_2_2_1_1 = (Assignment)cGroup_4_2_2_1.eContents().get(1);
+ private final CrossReference cAllocatableAbstractAllocatableCrossReference_4_2_2_1_1_0 = (CrossReference)cAllocatableAssignment_4_2_2_1_1.eContents().get(0);
+ private final RuleCall cAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_1_1_0_1 = (RuleCall)cAllocatableAbstractAllocatableCrossReference_4_2_2_1_1_0.eContents().get(1);
+ private final Keyword cRightSquareBracketKeyword_4_2_3 = (Keyword)cGroup_4_2.eContents().get(3);
+ private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
+
+ //// ################################################################################################ //
+ //ViewContentSet rbaview::ViewContentSet:
+ // {rbaview::ViewContentSet}
+ // 'ViewContentSet'
+ // name=QualifiedName
+ // '{' (('description:' description=EString)? & ('target:' '[' (target+=[rbacore::AbstractContent|QualifiedName] (","
+ // target+=[rbacore::AbstractContent|QualifiedName])*)? ']')? & ('allocatable:' '['
+ // (allocatable+=[rbacore::AbstractAllocatable|QualifiedName] (","
+ // allocatable+=[rbacore::AbstractAllocatable|QualifiedName])*)? ']')?) '}';
+ @Override public ParserRule getRule() { return rule; }
+
+ //{rbaview::ViewContentSet} 'ViewContentSet' name=QualifiedName '{' (('description:' description=EString)? & ('target:'
+ //'[' (target+=[rbacore::AbstractContent|QualifiedName] ("," target+=[rbacore::AbstractContent|QualifiedName])*)? ']')?
+ //& ('allocatable:' '[' (allocatable+=[rbacore::AbstractAllocatable|QualifiedName] (","
+ //allocatable+=[rbacore::AbstractAllocatable|QualifiedName])*)? ']')?) '}'
+ public Group getGroup() { return cGroup; }
+
+ //{rbaview::ViewContentSet}
+ public Action getViewContentSetAction_0() { return cViewContentSetAction_0; }
+
+ //'ViewContentSet'
+ public Keyword getViewContentSetKeyword_1() { return cViewContentSetKeyword_1; }
+
+ //name=QualifiedName
+ public Assignment getNameAssignment_2() { return cNameAssignment_2; }
+
+ //QualifiedName
+ public RuleCall getNameQualifiedNameParserRuleCall_2_0() { return cNameQualifiedNameParserRuleCall_2_0; }
+
+ //'{'
+ public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }
+
+ //('description:' description=EString)? & ('target:' '[' (target+=[rbacore::AbstractContent|QualifiedName] (","
+ //target+=[rbacore::AbstractContent|QualifiedName])*)? ']')? & ('allocatable:' '['
+ //(allocatable+=[rbacore::AbstractAllocatable|QualifiedName] (","
+ //allocatable+=[rbacore::AbstractAllocatable|QualifiedName])*)? ']')?
+ public UnorderedGroup getUnorderedGroup_4() { return cUnorderedGroup_4; }
+
+ //('description:' description=EString)?
+ public Group getGroup_4_0() { return cGroup_4_0; }
+
+ //'description:'
+ public Keyword getDescriptionKeyword_4_0_0() { return cDescriptionKeyword_4_0_0; }
+
+ //description=EString
+ public Assignment getDescriptionAssignment_4_0_1() { return cDescriptionAssignment_4_0_1; }
+
+ //EString
+ public RuleCall getDescriptionEStringParserRuleCall_4_0_1_0() { return cDescriptionEStringParserRuleCall_4_0_1_0; }
+
+ //('target:' '[' (target+=[rbacore::AbstractContent|QualifiedName] (","
+ //target+=[rbacore::AbstractContent|QualifiedName])*)? ']')?
+ public Group getGroup_4_1() { return cGroup_4_1; }
+
+ //'target:'
+ public Keyword getTargetKeyword_4_1_0() { return cTargetKeyword_4_1_0; }
+
+ //'['
+ public Keyword getLeftSquareBracketKeyword_4_1_1() { return cLeftSquareBracketKeyword_4_1_1; }
+
+ //(target+=[rbacore::AbstractContent|QualifiedName] ("," target+=[rbacore::AbstractContent|QualifiedName])*)?
+ public Group getGroup_4_1_2() { return cGroup_4_1_2; }
+
+ //target+=[rbacore::AbstractContent|QualifiedName]
+ public Assignment getTargetAssignment_4_1_2_0() { return cTargetAssignment_4_1_2_0; }
+
+ //[rbacore::AbstractContent|QualifiedName]
+ public CrossReference getTargetAbstractContentCrossReference_4_1_2_0_0() { return cTargetAbstractContentCrossReference_4_1_2_0_0; }
+
+ //QualifiedName
+ public RuleCall getTargetAbstractContentQualifiedNameParserRuleCall_4_1_2_0_0_1() { return cTargetAbstractContentQualifiedNameParserRuleCall_4_1_2_0_0_1; }
+
+ //("," target+=[rbacore::AbstractContent|QualifiedName])*
+ public Group getGroup_4_1_2_1() { return cGroup_4_1_2_1; }
+
+ //","
+ public Keyword getCommaKeyword_4_1_2_1_0() { return cCommaKeyword_4_1_2_1_0; }
+
+ //target+=[rbacore::AbstractContent|QualifiedName]
+ public Assignment getTargetAssignment_4_1_2_1_1() { return cTargetAssignment_4_1_2_1_1; }
+
+ //[rbacore::AbstractContent|QualifiedName]
+ public CrossReference getTargetAbstractContentCrossReference_4_1_2_1_1_0() { return cTargetAbstractContentCrossReference_4_1_2_1_1_0; }
+
+ //QualifiedName
+ public RuleCall getTargetAbstractContentQualifiedNameParserRuleCall_4_1_2_1_1_0_1() { return cTargetAbstractContentQualifiedNameParserRuleCall_4_1_2_1_1_0_1; }
+
+ //']'
+ public Keyword getRightSquareBracketKeyword_4_1_3() { return cRightSquareBracketKeyword_4_1_3; }
+
+ //('allocatable:' '[' (allocatable+=[rbacore::AbstractAllocatable|QualifiedName] (","
+ //allocatable+=[rbacore::AbstractAllocatable|QualifiedName])*)? ']')?
+ public Group getGroup_4_2() { return cGroup_4_2; }
+
+ //'allocatable:'
+ public Keyword getAllocatableKeyword_4_2_0() { return cAllocatableKeyword_4_2_0; }
+
+ //'['
+ public Keyword getLeftSquareBracketKeyword_4_2_1() { return cLeftSquareBracketKeyword_4_2_1; }
+
+ //(allocatable+=[rbacore::AbstractAllocatable|QualifiedName] (","
+ //allocatable+=[rbacore::AbstractAllocatable|QualifiedName])*)?
+ public Group getGroup_4_2_2() { return cGroup_4_2_2; }
+
+ //allocatable+=[rbacore::AbstractAllocatable|QualifiedName]
+ public Assignment getAllocatableAssignment_4_2_2_0() { return cAllocatableAssignment_4_2_2_0; }
+
+ //[rbacore::AbstractAllocatable|QualifiedName]
+ public CrossReference getAllocatableAbstractAllocatableCrossReference_4_2_2_0_0() { return cAllocatableAbstractAllocatableCrossReference_4_2_2_0_0; }
+
+ //QualifiedName
+ public RuleCall getAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_0_0_1() { return cAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_0_0_1; }
+
+ //("," allocatable+=[rbacore::AbstractAllocatable|QualifiedName])*
+ public Group getGroup_4_2_2_1() { return cGroup_4_2_2_1; }
+
+ //","
+ public Keyword getCommaKeyword_4_2_2_1_0() { return cCommaKeyword_4_2_2_1_0; }
+
+ //allocatable+=[rbacore::AbstractAllocatable|QualifiedName]
+ public Assignment getAllocatableAssignment_4_2_2_1_1() { return cAllocatableAssignment_4_2_2_1_1; }
+
+ //[rbacore::AbstractAllocatable|QualifiedName]
+ public CrossReference getAllocatableAbstractAllocatableCrossReference_4_2_2_1_1_0() { return cAllocatableAbstractAllocatableCrossReference_4_2_2_1_1_0; }
+
+ //QualifiedName
+ public RuleCall getAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_1_1_0_1() { return cAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_1_1_0_1; }
+
+ //']'
+ public Keyword getRightSquareBracketKeyword_4_2_3() { return cRightSquareBracketKeyword_4_2_3; }
+
+ //'}'
+ public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
+ }
+ public class SoundContentSetElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.SoundContentSet");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cSoundContentSetAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cSoundContentSetKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cNameQualifiedNameParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
+ private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
+ private final UnorderedGroup cUnorderedGroup_4 = (UnorderedGroup)cGroup.eContents().get(4);
+ private final Group cGroup_4_0 = (Group)cUnorderedGroup_4.eContents().get(0);
+ private final Keyword cDescriptionKeyword_4_0_0 = (Keyword)cGroup_4_0.eContents().get(0);
+ private final Assignment cDescriptionAssignment_4_0_1 = (Assignment)cGroup_4_0.eContents().get(1);
+ private final RuleCall cDescriptionEStringParserRuleCall_4_0_1_0 = (RuleCall)cDescriptionAssignment_4_0_1.eContents().get(0);
+ private final Group cGroup_4_1 = (Group)cUnorderedGroup_4.eContents().get(1);
+ private final Keyword cTargetKeyword_4_1_0 = (Keyword)cGroup_4_1.eContents().get(0);
+ private final Keyword cLeftSquareBracketKeyword_4_1_1 = (Keyword)cGroup_4_1.eContents().get(1);
+ private final Group cGroup_4_1_2 = (Group)cGroup_4_1.eContents().get(2);
+ private final Assignment cTargetAssignment_4_1_2_0 = (Assignment)cGroup_4_1_2.eContents().get(0);
+ private final CrossReference cTargetAbstractContentCrossReference_4_1_2_0_0 = (CrossReference)cTargetAssignment_4_1_2_0.eContents().get(0);
+ private final RuleCall cTargetAbstractContentQualifiedNameParserRuleCall_4_1_2_0_0_1 = (RuleCall)cTargetAbstractContentCrossReference_4_1_2_0_0.eContents().get(1);
+ private final Group cGroup_4_1_2_1 = (Group)cGroup_4_1_2.eContents().get(1);
+ private final Keyword cCommaKeyword_4_1_2_1_0 = (Keyword)cGroup_4_1_2_1.eContents().get(0);
+ private final Assignment cTargetAssignment_4_1_2_1_1 = (Assignment)cGroup_4_1_2_1.eContents().get(1);
+ private final CrossReference cTargetAbstractContentCrossReference_4_1_2_1_1_0 = (CrossReference)cTargetAssignment_4_1_2_1_1.eContents().get(0);
+ private final RuleCall cTargetAbstractContentQualifiedNameParserRuleCall_4_1_2_1_1_0_1 = (RuleCall)cTargetAbstractContentCrossReference_4_1_2_1_1_0.eContents().get(1);
+ private final Keyword cRightSquareBracketKeyword_4_1_3 = (Keyword)cGroup_4_1.eContents().get(3);
+ private final Group cGroup_4_2 = (Group)cUnorderedGroup_4.eContents().get(2);
+ private final Keyword cAllocatableKeyword_4_2_0 = (Keyword)cGroup_4_2.eContents().get(0);
+ private final Keyword cLeftSquareBracketKeyword_4_2_1 = (Keyword)cGroup_4_2.eContents().get(1);
+ private final Group cGroup_4_2_2 = (Group)cGroup_4_2.eContents().get(2);
+ private final Assignment cAllocatableAssignment_4_2_2_0 = (Assignment)cGroup_4_2_2.eContents().get(0);
+ private final CrossReference cAllocatableAbstractAllocatableCrossReference_4_2_2_0_0 = (CrossReference)cAllocatableAssignment_4_2_2_0.eContents().get(0);
+ private final RuleCall cAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_0_0_1 = (RuleCall)cAllocatableAbstractAllocatableCrossReference_4_2_2_0_0.eContents().get(1);
+ private final Group cGroup_4_2_2_1 = (Group)cGroup_4_2_2.eContents().get(1);
+ private final Keyword cCommaKeyword_4_2_2_1_0 = (Keyword)cGroup_4_2_2_1.eContents().get(0);
+ private final Assignment cAllocatableAssignment_4_2_2_1_1 = (Assignment)cGroup_4_2_2_1.eContents().get(1);
+ private final CrossReference cAllocatableAbstractAllocatableCrossReference_4_2_2_1_1_0 = (CrossReference)cAllocatableAssignment_4_2_2_1_1.eContents().get(0);
+ private final RuleCall cAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_1_1_0_1 = (RuleCall)cAllocatableAbstractAllocatableCrossReference_4_2_2_1_1_0.eContents().get(1);
+ private final Keyword cRightSquareBracketKeyword_4_2_3 = (Keyword)cGroup_4_2.eContents().get(3);
+ private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
+
+ //SoundContentSet rbasound::SoundContentSet:
+ // {rbasound::SoundContentSet}
+ // 'SoundContentSet'
+ // name=QualifiedName
+ // '{' (('description:' description=EString)? & ('target:' '[' (target+=[rbacore::AbstractContent|QualifiedName] (","
+ // target+=[rbacore::AbstractContent|QualifiedName])*)? ']')? & ('allocatable:' '['
+ // (allocatable+=[rbacore::AbstractAllocatable|QualifiedName] (","
+ // allocatable+=[rbacore::AbstractAllocatable|QualifiedName])*)? ']')?) '}';
+ @Override public ParserRule getRule() { return rule; }
+
+ //{rbasound::SoundContentSet} 'SoundContentSet' name=QualifiedName '{' (('description:' description=EString)? & ('target:'
+ //'[' (target+=[rbacore::AbstractContent|QualifiedName] ("," target+=[rbacore::AbstractContent|QualifiedName])*)? ']')?
+ //& ('allocatable:' '[' (allocatable+=[rbacore::AbstractAllocatable|QualifiedName] (","
+ //allocatable+=[rbacore::AbstractAllocatable|QualifiedName])*)? ']')?) '}'
+ public Group getGroup() { return cGroup; }
+
+ //{rbasound::SoundContentSet}
+ public Action getSoundContentSetAction_0() { return cSoundContentSetAction_0; }
+
+ //'SoundContentSet'
+ public Keyword getSoundContentSetKeyword_1() { return cSoundContentSetKeyword_1; }
+
+ //name=QualifiedName
+ public Assignment getNameAssignment_2() { return cNameAssignment_2; }
+
+ //QualifiedName
+ public RuleCall getNameQualifiedNameParserRuleCall_2_0() { return cNameQualifiedNameParserRuleCall_2_0; }
+
+ //'{'
+ public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }
+
+ //('description:' description=EString)? & ('target:' '[' (target+=[rbacore::AbstractContent|QualifiedName] (","
+ //target+=[rbacore::AbstractContent|QualifiedName])*)? ']')? & ('allocatable:' '['
+ //(allocatable+=[rbacore::AbstractAllocatable|QualifiedName] (","
+ //allocatable+=[rbacore::AbstractAllocatable|QualifiedName])*)? ']')?
+ public UnorderedGroup getUnorderedGroup_4() { return cUnorderedGroup_4; }
+
+ //('description:' description=EString)?
+ public Group getGroup_4_0() { return cGroup_4_0; }
+
+ //'description:'
+ public Keyword getDescriptionKeyword_4_0_0() { return cDescriptionKeyword_4_0_0; }
+
+ //description=EString
+ public Assignment getDescriptionAssignment_4_0_1() { return cDescriptionAssignment_4_0_1; }
+
+ //EString
+ public RuleCall getDescriptionEStringParserRuleCall_4_0_1_0() { return cDescriptionEStringParserRuleCall_4_0_1_0; }
+
+ //('target:' '[' (target+=[rbacore::AbstractContent|QualifiedName] (","
+ //target+=[rbacore::AbstractContent|QualifiedName])*)? ']')?
+ public Group getGroup_4_1() { return cGroup_4_1; }
+
+ //'target:'
+ public Keyword getTargetKeyword_4_1_0() { return cTargetKeyword_4_1_0; }
+
+ //'['
+ public Keyword getLeftSquareBracketKeyword_4_1_1() { return cLeftSquareBracketKeyword_4_1_1; }
+
+ //(target+=[rbacore::AbstractContent|QualifiedName] ("," target+=[rbacore::AbstractContent|QualifiedName])*)?
+ public Group getGroup_4_1_2() { return cGroup_4_1_2; }
+
+ //target+=[rbacore::AbstractContent|QualifiedName]
+ public Assignment getTargetAssignment_4_1_2_0() { return cTargetAssignment_4_1_2_0; }
+
+ //[rbacore::AbstractContent|QualifiedName]
+ public CrossReference getTargetAbstractContentCrossReference_4_1_2_0_0() { return cTargetAbstractContentCrossReference_4_1_2_0_0; }
+
+ //QualifiedName
+ public RuleCall getTargetAbstractContentQualifiedNameParserRuleCall_4_1_2_0_0_1() { return cTargetAbstractContentQualifiedNameParserRuleCall_4_1_2_0_0_1; }
+
+ //("," target+=[rbacore::AbstractContent|QualifiedName])*
+ public Group getGroup_4_1_2_1() { return cGroup_4_1_2_1; }
+
+ //","
+ public Keyword getCommaKeyword_4_1_2_1_0() { return cCommaKeyword_4_1_2_1_0; }
+
+ //target+=[rbacore::AbstractContent|QualifiedName]
+ public Assignment getTargetAssignment_4_1_2_1_1() { return cTargetAssignment_4_1_2_1_1; }
+
+ //[rbacore::AbstractContent|QualifiedName]
+ public CrossReference getTargetAbstractContentCrossReference_4_1_2_1_1_0() { return cTargetAbstractContentCrossReference_4_1_2_1_1_0; }
+
+ //QualifiedName
+ public RuleCall getTargetAbstractContentQualifiedNameParserRuleCall_4_1_2_1_1_0_1() { return cTargetAbstractContentQualifiedNameParserRuleCall_4_1_2_1_1_0_1; }
+
+ //']'
+ public Keyword getRightSquareBracketKeyword_4_1_3() { return cRightSquareBracketKeyword_4_1_3; }
+
+ //('allocatable:' '[' (allocatable+=[rbacore::AbstractAllocatable|QualifiedName] (","
+ //allocatable+=[rbacore::AbstractAllocatable|QualifiedName])*)? ']')?
+ public Group getGroup_4_2() { return cGroup_4_2; }
+
+ //'allocatable:'
+ public Keyword getAllocatableKeyword_4_2_0() { return cAllocatableKeyword_4_2_0; }
+
+ //'['
+ public Keyword getLeftSquareBracketKeyword_4_2_1() { return cLeftSquareBracketKeyword_4_2_1; }
+
+ //(allocatable+=[rbacore::AbstractAllocatable|QualifiedName] (","
+ //allocatable+=[rbacore::AbstractAllocatable|QualifiedName])*)?
+ public Group getGroup_4_2_2() { return cGroup_4_2_2; }
+
+ //allocatable+=[rbacore::AbstractAllocatable|QualifiedName]
+ public Assignment getAllocatableAssignment_4_2_2_0() { return cAllocatableAssignment_4_2_2_0; }
+
+ //[rbacore::AbstractAllocatable|QualifiedName]
+ public CrossReference getAllocatableAbstractAllocatableCrossReference_4_2_2_0_0() { return cAllocatableAbstractAllocatableCrossReference_4_2_2_0_0; }
+
+ //QualifiedName
+ public RuleCall getAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_0_0_1() { return cAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_0_0_1; }
+
+ //("," allocatable+=[rbacore::AbstractAllocatable|QualifiedName])*
+ public Group getGroup_4_2_2_1() { return cGroup_4_2_2_1; }
+
+ //","
+ public Keyword getCommaKeyword_4_2_2_1_0() { return cCommaKeyword_4_2_2_1_0; }
+
+ //allocatable+=[rbacore::AbstractAllocatable|QualifiedName]
+ public Assignment getAllocatableAssignment_4_2_2_1_1() { return cAllocatableAssignment_4_2_2_1_1; }
+
+ //[rbacore::AbstractAllocatable|QualifiedName]
+ public CrossReference getAllocatableAbstractAllocatableCrossReference_4_2_2_1_1_0() { return cAllocatableAbstractAllocatableCrossReference_4_2_2_1_1_0; }
+
+ //QualifiedName
+ public RuleCall getAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_1_1_0_1() { return cAllocatableAbstractAllocatableQualifiedNameParserRuleCall_4_2_2_1_1_0_1; }
+
+ //']'
+ public Keyword getRightSquareBracketKeyword_4_2_3() { return cRightSquareBracketKeyword_4_2_3; }
+
+ //'}'
+ public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
+ }
+ public class SceneElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.Scene");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cSceneAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cSceneKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cNameQualifiedNameParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
+ private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
+ private final UnorderedGroup cUnorderedGroup_4 = (UnorderedGroup)cGroup.eContents().get(4);
+ private final Group cGroup_4_0 = (Group)cUnorderedGroup_4.eContents().get(0);
+ private final Keyword cDescriptionKeyword_4_0_0 = (Keyword)cGroup_4_0.eContents().get(0);
+ private final Assignment cDescriptionAssignment_4_0_1 = (Assignment)cGroup_4_0.eContents().get(1);
+ private final RuleCall cDescriptionEStringParserRuleCall_4_0_1_0 = (RuleCall)cDescriptionAssignment_4_0_1.eContents().get(0);
+ private final Group cGroup_4_1 = (Group)cUnorderedGroup_4.eContents().get(1);
+ private final Keyword cGlobalKeyword_4_1_0 = (Keyword)cGroup_4_1.eContents().get(0);
+ private final Assignment cGlobalAssignment_4_1_1 = (Assignment)cGroup_4_1.eContents().get(1);
+ private final RuleCall cGlobalEBooleanParserRuleCall_4_1_1_0 = (RuleCall)cGlobalAssignment_4_1_1.eContents().get(0);
+ private final Assignment cPropertiesAssignment_4_2 = (Assignment)cUnorderedGroup_4.eContents().get(2);
+ private final RuleCall cPropertiesAbstractPropertyParserRuleCall_4_2_0 = (RuleCall)cPropertiesAssignment_4_2.eContents().get(0);
+ private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
+
+ //Scene rbacore::Scene:
+ // {rbacore::Scene}
+ // 'Scene'
+ // name=QualifiedName
+ // '{' (('description:' description=EString)? & ('global:' global=EBoolean)? & properties+=AbstractProperty*) '}';
+ @Override public ParserRule getRule() { return rule; }
+
+ //{rbacore::Scene} 'Scene' name=QualifiedName '{' (('description:' description=EString)? & ('global:' global=EBoolean)? &
+ //properties+=AbstractProperty*) '}'
+ public Group getGroup() { return cGroup; }
+
+ //{rbacore::Scene}
+ public Action getSceneAction_0() { return cSceneAction_0; }
+
+ //'Scene'
+ public Keyword getSceneKeyword_1() { return cSceneKeyword_1; }
+
+ //name=QualifiedName
+ public Assignment getNameAssignment_2() { return cNameAssignment_2; }
+
+ //QualifiedName
+ public RuleCall getNameQualifiedNameParserRuleCall_2_0() { return cNameQualifiedNameParserRuleCall_2_0; }
+
+ //'{'
+ public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }
+
+ //('description:' description=EString)? & ('global:' global=EBoolean)? & properties+=AbstractProperty*
+ public UnorderedGroup getUnorderedGroup_4() { return cUnorderedGroup_4; }
+
+ //('description:' description=EString)?
+ public Group getGroup_4_0() { return cGroup_4_0; }
+
+ //'description:'
+ public Keyword getDescriptionKeyword_4_0_0() { return cDescriptionKeyword_4_0_0; }
+
+ //description=EString
+ public Assignment getDescriptionAssignment_4_0_1() { return cDescriptionAssignment_4_0_1; }
+
+ //EString
+ public RuleCall getDescriptionEStringParserRuleCall_4_0_1_0() { return cDescriptionEStringParserRuleCall_4_0_1_0; }
+
+ //('global:' global=EBoolean)?
+ public Group getGroup_4_1() { return cGroup_4_1; }
+
+ //'global:'
+ public Keyword getGlobalKeyword_4_1_0() { return cGlobalKeyword_4_1_0; }
+
+ //global=EBoolean
+ public Assignment getGlobalAssignment_4_1_1() { return cGlobalAssignment_4_1_1; }
+
+ //EBoolean
+ public RuleCall getGlobalEBooleanParserRuleCall_4_1_1_0() { return cGlobalEBooleanParserRuleCall_4_1_1_0; }
+
+ //properties+=AbstractProperty*
+ public Assignment getPropertiesAssignment_4_2() { return cPropertiesAssignment_4_2; }
+
+ //AbstractProperty
+ public RuleCall getPropertiesAbstractPropertyParserRuleCall_4_2_0() { return cPropertiesAbstractPropertyParserRuleCall_4_2_0; }
+
+ //'}'
+ public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
+ }
+ public class VerticalLayoutElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.VerticalLayout");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cVerticalLayoutAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cVerticalLayoutKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
+ private final UnorderedGroup cUnorderedGroup_3 = (UnorderedGroup)cGroup.eContents().get(3);
+ private final Group cGroup_3_0 = (Group)cUnorderedGroup_3.eContents().get(0);
+ private final Keyword cBasePointKeyword_3_0_0 = (Keyword)cGroup_3_0.eContents().get(0);
+ private final Assignment cBasePointAssignment_3_0_1 = (Assignment)cGroup_3_0.eContents().get(1);
+ private final RuleCall cBasePointBasePointEnumRuleCall_3_0_1_0 = (RuleCall)cBasePointAssignment_3_0_1.eContents().get(0);
+ private final Group cGroup_3_1 = (Group)cUnorderedGroup_3.eContents().get(1);
+ private final Keyword cSubareaKeyword_3_1_0 = (Keyword)cGroup_3_1.eContents().get(0);
+ private final Keyword cLeftSquareBracketKeyword_3_1_1 = (Keyword)cGroup_3_1.eContents().get(1);
+ private final Group cGroup_3_1_2 = (Group)cGroup_3_1.eContents().get(2);
+ private final Assignment cSubareaAssignment_3_1_2_0 = (Assignment)cGroup_3_1_2.eContents().get(0);
+ private final CrossReference cSubareaAreaCrossReference_3_1_2_0_0 = (CrossReference)cSubareaAssignment_3_1_2_0.eContents().get(0);
+ private final RuleCall cSubareaAreaQualifiedNameParserRuleCall_3_1_2_0_0_1 = (RuleCall)cSubareaAreaCrossReference_3_1_2_0_0.eContents().get(1);
+ private final Group cGroup_3_1_2_1 = (Group)cGroup_3_1_2.eContents().get(1);
+ private final Keyword cCommaKeyword_3_1_2_1_0 = (Keyword)cGroup_3_1_2_1.eContents().get(0);
+ private final Assignment cSubareaAssignment_3_1_2_1_1 = (Assignment)cGroup_3_1_2_1.eContents().get(1);
+ private final CrossReference cSubareaAreaCrossReference_3_1_2_1_1_0 = (CrossReference)cSubareaAssignment_3_1_2_1_1.eContents().get(0);
+ private final RuleCall cSubareaAreaQualifiedNameParserRuleCall_3_1_2_1_1_0_1 = (RuleCall)cSubareaAreaCrossReference_3_1_2_1_1_0.eContents().get(1);
+ private final Keyword cRightSquareBracketKeyword_3_1_3 = (Keyword)cGroup_3_1.eContents().get(3);
+ private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
+
+ //VerticalLayout rbaview::VerticalLayout:
+ // {rbaview::VerticalLayout}
+ // 'VerticalLayout'
+ // '{' (('basePoint:' basePoint=BasePoint)? & ('subarea:' '[' (subarea+=[rbaview::Area|QualifiedName] (","
+ // subarea+=[rbaview::Area|QualifiedName])*)? ']')?) '}';
+ @Override public ParserRule getRule() { return rule; }
+
+ //{rbaview::VerticalLayout} 'VerticalLayout' '{' (('basePoint:' basePoint=BasePoint)? & ('subarea:' '['
+ //(subarea+=[rbaview::Area|QualifiedName] ("," subarea+=[rbaview::Area|QualifiedName])*)? ']')?) '}'
+ public Group getGroup() { return cGroup; }
+
+ //{rbaview::VerticalLayout}
+ public Action getVerticalLayoutAction_0() { return cVerticalLayoutAction_0; }
+
+ //'VerticalLayout'
+ public Keyword getVerticalLayoutKeyword_1() { return cVerticalLayoutKeyword_1; }
+
+ //'{'
+ public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }
+
+ //('basePoint:' basePoint=BasePoint)? & ('subarea:' '[' (subarea+=[rbaview::Area|QualifiedName] (","
+ //subarea+=[rbaview::Area|QualifiedName])*)? ']')?
+ public UnorderedGroup getUnorderedGroup_3() { return cUnorderedGroup_3; }
+
+ //('basePoint:' basePoint=BasePoint)?
+ public Group getGroup_3_0() { return cGroup_3_0; }
+
+ //'basePoint:'
+ public Keyword getBasePointKeyword_3_0_0() { return cBasePointKeyword_3_0_0; }
+
+ //basePoint=BasePoint
+ public Assignment getBasePointAssignment_3_0_1() { return cBasePointAssignment_3_0_1; }
+
+ //BasePoint
+ public RuleCall getBasePointBasePointEnumRuleCall_3_0_1_0() { return cBasePointBasePointEnumRuleCall_3_0_1_0; }
+
+ //('subarea:' '[' (subarea+=[rbaview::Area|QualifiedName] ("," subarea+=[rbaview::Area|QualifiedName])*)? ']')?
+ public Group getGroup_3_1() { return cGroup_3_1; }
+
+ //'subarea:'
+ public Keyword getSubareaKeyword_3_1_0() { return cSubareaKeyword_3_1_0; }
+
+ //'['
+ public Keyword getLeftSquareBracketKeyword_3_1_1() { return cLeftSquareBracketKeyword_3_1_1; }
+
+ //(subarea+=[rbaview::Area|QualifiedName] ("," subarea+=[rbaview::Area|QualifiedName])*)?
+ public Group getGroup_3_1_2() { return cGroup_3_1_2; }
+
+ //subarea+=[rbaview::Area|QualifiedName]
+ public Assignment getSubareaAssignment_3_1_2_0() { return cSubareaAssignment_3_1_2_0; }
+
+ //[rbaview::Area|QualifiedName]
+ public CrossReference getSubareaAreaCrossReference_3_1_2_0_0() { return cSubareaAreaCrossReference_3_1_2_0_0; }
+
+ //QualifiedName
+ public RuleCall getSubareaAreaQualifiedNameParserRuleCall_3_1_2_0_0_1() { return cSubareaAreaQualifiedNameParserRuleCall_3_1_2_0_0_1; }
+
+ //("," subarea+=[rbaview::Area|QualifiedName])*
+ public Group getGroup_3_1_2_1() { return cGroup_3_1_2_1; }
+
+ //","
+ public Keyword getCommaKeyword_3_1_2_1_0() { return cCommaKeyword_3_1_2_1_0; }
+
+ //subarea+=[rbaview::Area|QualifiedName]
+ public Assignment getSubareaAssignment_3_1_2_1_1() { return cSubareaAssignment_3_1_2_1_1; }
+
+ //[rbaview::Area|QualifiedName]
+ public CrossReference getSubareaAreaCrossReference_3_1_2_1_1_0() { return cSubareaAreaCrossReference_3_1_2_1_1_0; }
+
+ //QualifiedName
+ public RuleCall getSubareaAreaQualifiedNameParserRuleCall_3_1_2_1_1_0_1() { return cSubareaAreaQualifiedNameParserRuleCall_3_1_2_1_1_0_1; }
+
+ //']'
+ public Keyword getRightSquareBracketKeyword_3_1_3() { return cRightSquareBracketKeyword_3_1_3; }
+
+ //'}'
+ public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
+ }
+ public class HorizontalLayoutElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.HorizontalLayout");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cHorizontalLayoutAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cHorizontalLayoutKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
+ private final UnorderedGroup cUnorderedGroup_3 = (UnorderedGroup)cGroup.eContents().get(3);
+ private final Group cGroup_3_0 = (Group)cUnorderedGroup_3.eContents().get(0);
+ private final Keyword cBasePointKeyword_3_0_0 = (Keyword)cGroup_3_0.eContents().get(0);
+ private final Assignment cBasePointAssignment_3_0_1 = (Assignment)cGroup_3_0.eContents().get(1);
+ private final RuleCall cBasePointBasePointEnumRuleCall_3_0_1_0 = (RuleCall)cBasePointAssignment_3_0_1.eContents().get(0);
+ private final Group cGroup_3_1 = (Group)cUnorderedGroup_3.eContents().get(1);
+ private final Keyword cSubareaKeyword_3_1_0 = (Keyword)cGroup_3_1.eContents().get(0);
+ private final Keyword cLeftSquareBracketKeyword_3_1_1 = (Keyword)cGroup_3_1.eContents().get(1);
+ private final Group cGroup_3_1_2 = (Group)cGroup_3_1.eContents().get(2);
+ private final Assignment cSubareaAssignment_3_1_2_0 = (Assignment)cGroup_3_1_2.eContents().get(0);
+ private final CrossReference cSubareaAreaCrossReference_3_1_2_0_0 = (CrossReference)cSubareaAssignment_3_1_2_0.eContents().get(0);
+ private final RuleCall cSubareaAreaQualifiedNameParserRuleCall_3_1_2_0_0_1 = (RuleCall)cSubareaAreaCrossReference_3_1_2_0_0.eContents().get(1);
+ private final Group cGroup_3_1_2_1 = (Group)cGroup_3_1_2.eContents().get(1);
+ private final Keyword cCommaKeyword_3_1_2_1_0 = (Keyword)cGroup_3_1_2_1.eContents().get(0);
+ private final Assignment cSubareaAssignment_3_1_2_1_1 = (Assignment)cGroup_3_1_2_1.eContents().get(1);
+ private final CrossReference cSubareaAreaCrossReference_3_1_2_1_1_0 = (CrossReference)cSubareaAssignment_3_1_2_1_1.eContents().get(0);
+ private final RuleCall cSubareaAreaQualifiedNameParserRuleCall_3_1_2_1_1_0_1 = (RuleCall)cSubareaAreaCrossReference_3_1_2_1_1_0.eContents().get(1);
+ private final Keyword cRightSquareBracketKeyword_3_1_3 = (Keyword)cGroup_3_1.eContents().get(3);
+ private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
+
+ //HorizontalLayout rbaview::HorizontalLayout:
+ // {rbaview::HorizontalLayout}
+ // 'HorizontalLayout'
+ // '{' (('basePoint:' basePoint=BasePoint)? & ('subarea:' '[' (subarea+=[rbaview::Area|QualifiedName] (","
+ // subarea+=[rbaview::Area|QualifiedName])*)? ']')?) '}';
+ @Override public ParserRule getRule() { return rule; }
+
+ //{rbaview::HorizontalLayout} 'HorizontalLayout' '{' (('basePoint:' basePoint=BasePoint)? & ('subarea:' '['
+ //(subarea+=[rbaview::Area|QualifiedName] ("," subarea+=[rbaview::Area|QualifiedName])*)? ']')?) '}'
+ public Group getGroup() { return cGroup; }
+
+ //{rbaview::HorizontalLayout}
+ public Action getHorizontalLayoutAction_0() { return cHorizontalLayoutAction_0; }
+
+ //'HorizontalLayout'
+ public Keyword getHorizontalLayoutKeyword_1() { return cHorizontalLayoutKeyword_1; }
+
+ //'{'
+ public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }
+
+ //('basePoint:' basePoint=BasePoint)? & ('subarea:' '[' (subarea+=[rbaview::Area|QualifiedName] (","
+ //subarea+=[rbaview::Area|QualifiedName])*)? ']')?
+ public UnorderedGroup getUnorderedGroup_3() { return cUnorderedGroup_3; }
+
+ //('basePoint:' basePoint=BasePoint)?
+ public Group getGroup_3_0() { return cGroup_3_0; }
+
+ //'basePoint:'
+ public Keyword getBasePointKeyword_3_0_0() { return cBasePointKeyword_3_0_0; }
+
+ //basePoint=BasePoint
+ public Assignment getBasePointAssignment_3_0_1() { return cBasePointAssignment_3_0_1; }
+
+ //BasePoint
+ public RuleCall getBasePointBasePointEnumRuleCall_3_0_1_0() { return cBasePointBasePointEnumRuleCall_3_0_1_0; }
+
+ //('subarea:' '[' (subarea+=[rbaview::Area|QualifiedName] ("," subarea+=[rbaview::Area|QualifiedName])*)? ']')?
+ public Group getGroup_3_1() { return cGroup_3_1; }
+
+ //'subarea:'
+ public Keyword getSubareaKeyword_3_1_0() { return cSubareaKeyword_3_1_0; }
+
+ //'['
+ public Keyword getLeftSquareBracketKeyword_3_1_1() { return cLeftSquareBracketKeyword_3_1_1; }
+
+ //(subarea+=[rbaview::Area|QualifiedName] ("," subarea+=[rbaview::Area|QualifiedName])*)?
+ public Group getGroup_3_1_2() { return cGroup_3_1_2; }
+
+ //subarea+=[rbaview::Area|QualifiedName]
+ public Assignment getSubareaAssignment_3_1_2_0() { return cSubareaAssignment_3_1_2_0; }
+
+ //[rbaview::Area|QualifiedName]
+ public CrossReference getSubareaAreaCrossReference_3_1_2_0_0() { return cSubareaAreaCrossReference_3_1_2_0_0; }
+
+ //QualifiedName
+ public RuleCall getSubareaAreaQualifiedNameParserRuleCall_3_1_2_0_0_1() { return cSubareaAreaQualifiedNameParserRuleCall_3_1_2_0_0_1; }
+
+ //("," subarea+=[rbaview::Area|QualifiedName])*
+ public Group getGroup_3_1_2_1() { return cGroup_3_1_2_1; }
+
+ //","
+ public Keyword getCommaKeyword_3_1_2_1_0() { return cCommaKeyword_3_1_2_1_0; }
+
+ //subarea+=[rbaview::Area|QualifiedName]
+ public Assignment getSubareaAssignment_3_1_2_1_1() { return cSubareaAssignment_3_1_2_1_1; }
+
+ //[rbaview::Area|QualifiedName]
+ public CrossReference getSubareaAreaCrossReference_3_1_2_1_1_0() { return cSubareaAreaCrossReference_3_1_2_1_1_0; }
+
+ //QualifiedName
+ public RuleCall getSubareaAreaQualifiedNameParserRuleCall_3_1_2_1_1_0_1() { return cSubareaAreaQualifiedNameParserRuleCall_3_1_2_1_1_0_1; }
+
+ //']'
+ public Keyword getRightSquareBracketKeyword_3_1_3() { return cRightSquareBracketKeyword_3_1_3; }
+
+ //'}'
+ public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
+ }
+ public class FixedPositionLayoutElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.FixedPositionLayout");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cFixedPositionLayoutAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cFixedPositionLayoutKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
+ private final Assignment cSubAreaPositionAssignment_3 = (Assignment)cGroup.eContents().get(3);
+ private final RuleCall cSubAreaPositionPositionContainerParserRuleCall_3_0 = (RuleCall)cSubAreaPositionAssignment_3.eContents().get(0);
+ private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
+
+ //FixedPositionLayout rbaview::FixedPositionLayout:
+ // {rbaview::FixedPositionLayout}
+ // 'FixedPositionLayout'
+ // '{'
+ // subAreaPosition+=PositionContainer*
+ // '}';
+ @Override public ParserRule getRule() { return rule; }
+
+ //{rbaview::FixedPositionLayout} 'FixedPositionLayout' '{' subAreaPosition+=PositionContainer* '}'
+ public Group getGroup() { return cGroup; }
+
+ //{rbaview::FixedPositionLayout}
+ public Action getFixedPositionLayoutAction_0() { return cFixedPositionLayoutAction_0; }
+
+ //'FixedPositionLayout'
+ public Keyword getFixedPositionLayoutKeyword_1() { return cFixedPositionLayoutKeyword_1; }
+
+ //'{'
+ public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }
+
+ //subAreaPosition+=PositionContainer*
+ public Assignment getSubAreaPositionAssignment_3() { return cSubAreaPositionAssignment_3; }
+
+ //PositionContainer
+ public RuleCall getSubAreaPositionPositionContainerParserRuleCall_3_0() { return cSubAreaPositionPositionContainerParserRuleCall_3_0; }
+
+ //'}'
+ public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
+ }
+ public class PositionContainerElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.PositionContainer");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cPositionContainerAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cPositionContainerKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
+ private final UnorderedGroup cUnorderedGroup_3 = (UnorderedGroup)cGroup.eContents().get(3);
+ private final Group cGroup_3_0 = (Group)cUnorderedGroup_3.eContents().get(0);
+ private final Keyword cXKeyword_3_0_0 = (Keyword)cGroup_3_0.eContents().get(0);
+ private final Assignment cXAssignment_3_0_1 = (Assignment)cGroup_3_0.eContents().get(1);
+ private final RuleCall cXEIntParserRuleCall_3_0_1_0 = (RuleCall)cXAssignment_3_0_1.eContents().get(0);
+ private final Group cGroup_3_1 = (Group)cUnorderedGroup_3.eContents().get(1);
+ private final Keyword cYKeyword_3_1_0 = (Keyword)cGroup_3_1.eContents().get(0);
+ private final Assignment cYAssignment_3_1_1 = (Assignment)cGroup_3_1.eContents().get(1);
+ private final RuleCall cYEIntParserRuleCall_3_1_1_0 = (RuleCall)cYAssignment_3_1_1.eContents().get(0);
+ private final Group cGroup_3_2 = (Group)cUnorderedGroup_3.eContents().get(2);
+ private final Keyword cBasePointKeyword_3_2_0 = (Keyword)cGroup_3_2.eContents().get(0);
+ private final Assignment cBasePointAssignment_3_2_1 = (Assignment)cGroup_3_2.eContents().get(1);
+ private final RuleCall cBasePointBasePointEnumRuleCall_3_2_1_0 = (RuleCall)cBasePointAssignment_3_2_1.eContents().get(0);
+ private final Group cGroup_3_3 = (Group)cUnorderedGroup_3.eContents().get(3);
+ private final Keyword cAreaReferenceKeyword_3_3_0 = (Keyword)cGroup_3_3.eContents().get(0);
+ private final Assignment cAreaAssignment_3_3_1 = (Assignment)cGroup_3_3.eContents().get(1);
+ private final CrossReference cAreaAreaCrossReference_3_3_1_0 = (CrossReference)cAreaAssignment_3_3_1.eContents().get(0);
+ private final RuleCall cAreaAreaQualifiedNameParserRuleCall_3_3_1_0_1 = (RuleCall)cAreaAreaCrossReference_3_3_1_0.eContents().get(1);
+ private final Assignment cOffsetAssignment_3_4 = (Assignment)cUnorderedGroup_3.eContents().get(4);
+ private final RuleCall cOffsetOffsetParserRuleCall_3_4_0 = (RuleCall)cOffsetAssignment_3_4.eContents().get(0);
+ private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
+
+ //PositionContainer rbaview::PositionContainer:
+ // {rbaview::PositionContainer}
+ // 'PositionContainer'
+ // '{' (('x:' x=EInt)? & ('y:' y=EInt)? & ('basePoint:' basePoint=BasePoint)? & ('areaReference:'
+ // area=[rbaview::Area|QualifiedName])? & offset+=Offset*) '}';
+ @Override public ParserRule getRule() { return rule; }
+
+ //{rbaview::PositionContainer} 'PositionContainer' '{' (('x:' x=EInt)? & ('y:' y=EInt)? & ('basePoint:'
+ //basePoint=BasePoint)? & ('areaReference:' area=[rbaview::Area|QualifiedName])? & offset+=Offset*) '}'
+ public Group getGroup() { return cGroup; }
+
+ //{rbaview::PositionContainer}
+ public Action getPositionContainerAction_0() { return cPositionContainerAction_0; }
+
+ //'PositionContainer'
+ public Keyword getPositionContainerKeyword_1() { return cPositionContainerKeyword_1; }
+
+ //'{'
+ public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }
+
+ //('x:' x=EInt)? & ('y:' y=EInt)? & ('basePoint:' basePoint=BasePoint)? & ('areaReference:'
+ //area=[rbaview::Area|QualifiedName])? & offset+=Offset*
+ public UnorderedGroup getUnorderedGroup_3() { return cUnorderedGroup_3; }
+
+ //('x:' x=EInt)?
+ public Group getGroup_3_0() { return cGroup_3_0; }
+
+ //'x:'
+ public Keyword getXKeyword_3_0_0() { return cXKeyword_3_0_0; }
+
+ //x=EInt
+ public Assignment getXAssignment_3_0_1() { return cXAssignment_3_0_1; }
+
+ //EInt
+ public RuleCall getXEIntParserRuleCall_3_0_1_0() { return cXEIntParserRuleCall_3_0_1_0; }
+
+ //('y:' y=EInt)?
+ public Group getGroup_3_1() { return cGroup_3_1; }
+
+ //'y:'
+ public Keyword getYKeyword_3_1_0() { return cYKeyword_3_1_0; }
+
+ //y=EInt
+ public Assignment getYAssignment_3_1_1() { return cYAssignment_3_1_1; }
+
+ //EInt
+ public RuleCall getYEIntParserRuleCall_3_1_1_0() { return cYEIntParserRuleCall_3_1_1_0; }
+
+ //('basePoint:' basePoint=BasePoint)?
+ public Group getGroup_3_2() { return cGroup_3_2; }
+
+ //'basePoint:'
+ public Keyword getBasePointKeyword_3_2_0() { return cBasePointKeyword_3_2_0; }
+
+ //basePoint=BasePoint
+ public Assignment getBasePointAssignment_3_2_1() { return cBasePointAssignment_3_2_1; }
+
+ //BasePoint
+ public RuleCall getBasePointBasePointEnumRuleCall_3_2_1_0() { return cBasePointBasePointEnumRuleCall_3_2_1_0; }
+
+ //('areaReference:' area=[rbaview::Area|QualifiedName])?
+ public Group getGroup_3_3() { return cGroup_3_3; }
+
+ //'areaReference:'
+ public Keyword getAreaReferenceKeyword_3_3_0() { return cAreaReferenceKeyword_3_3_0; }
+
+ //area=[rbaview::Area|QualifiedName]
+ public Assignment getAreaAssignment_3_3_1() { return cAreaAssignment_3_3_1; }
+
+ //[rbaview::Area|QualifiedName]
+ public CrossReference getAreaAreaCrossReference_3_3_1_0() { return cAreaAreaCrossReference_3_3_1_0; }
+
+ //QualifiedName
+ public RuleCall getAreaAreaQualifiedNameParserRuleCall_3_3_1_0_1() { return cAreaAreaQualifiedNameParserRuleCall_3_3_1_0_1; }
+
+ //offset+=Offset*
+ public Assignment getOffsetAssignment_3_4() { return cOffsetAssignment_3_4; }
+
+ //Offset
+ public RuleCall getOffsetOffsetParserRuleCall_3_4_0() { return cOffsetOffsetParserRuleCall_3_4_0; }
+
+ //'}'
+ public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
+ }
+ public class EBooleanElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.EBoolean");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final Keyword cTrueKeyword_0 = (Keyword)cAlternatives.eContents().get(0);
+ private final Keyword cFalseKeyword_1 = (Keyword)cAlternatives.eContents().get(1);
+
+ ///* Primitive Data Type */ EBoolean ecore::EBoolean:
+ // 'true' | 'false';
+ @Override public ParserRule getRule() { return rule; }
+
+ //'true' | 'false'
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //'true'
+ public Keyword getTrueKeyword_0() { return cTrueKeyword_0; }
+
+ //'false'
+ public Keyword getFalseKeyword_1() { return cFalseKeyword_1; }
+ }
+ public class EIntElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.EInt");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cHyphenMinusKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final RuleCall cINTTerminalRuleCall_1 = (RuleCall)cGroup.eContents().get(1);
+
+ //EInt ecore::EInt:
+ // '-'? INT;
+ @Override public ParserRule getRule() { return rule; }
+
+ //'-'? INT
+ public Group getGroup() { return cGroup; }
+
+ //'-'?
+ public Keyword getHyphenMinusKeyword_0() { return cHyphenMinusKeyword_0; }
+
+ //INT
+ public RuleCall getINTTerminalRuleCall_1() { return cINTTerminalRuleCall_1; }
+ }
+ public class EStringElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.EString");
+ private final RuleCall cSTRINGTerminalRuleCall = (RuleCall)rule.eContents().get(1);
+
+ //EString:
+ // STRING;
+ @Override public ParserRule getRule() { return rule; }
+
+ //STRING
+ public RuleCall getSTRINGTerminalRuleCall() { return cSTRINGTerminalRuleCall; }
+ }
+ public class RichStringElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.RichString");
+ private final RuleCall cRICH_STRINGTerminalRuleCall = (RuleCall)rule.eContents().get(1);
+
+ //RichString:
+ // RICH_STRING;
+ @Override public ParserRule getRule() { return rule; }
+
+ //RICH_STRING
+ public RuleCall getRICH_STRINGTerminalRuleCall() { return cRICH_STRINGTerminalRuleCall; }
+ }
+ public class QualifiedNameWithWildcardElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.QualifiedNameWithWildcard");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final RuleCall cQualifiedNameParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
+ private final Keyword cFullStopAsteriskKeyword_1 = (Keyword)cGroup.eContents().get(1);
+
+ //QualifiedNameWithWildcard:
+ // QualifiedName '.*'?;
+ @Override public ParserRule getRule() { return rule; }
+
+ //QualifiedName '.*'?
+ public Group getGroup() { return cGroup; }
+
+ //QualifiedName
+ public RuleCall getQualifiedNameParserRuleCall_0() { return cQualifiedNameParserRuleCall_0; }
+
+ //'.*'?
+ public Keyword getFullStopAsteriskKeyword_1() { return cFullStopAsteriskKeyword_1; }
+ }
+ public class QualifiedNameElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.QualifiedName");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final RuleCall cIDTerminalRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
+ private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+ private final Keyword cFullStopKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
+ private final RuleCall cIDTerminalRuleCall_1_1 = (RuleCall)cGroup_1.eContents().get(1);
+
+ //QualifiedName:
+ // ID ('.' ID)*;
+ @Override public ParserRule getRule() { return rule; }
+
+ //ID ('.' ID)*
+ public Group getGroup() { return cGroup; }
+
+ //ID
+ public RuleCall getIDTerminalRuleCall_0() { return cIDTerminalRuleCall_0; }
+
+ //('.' ID)*
+ public Group getGroup_1() { return cGroup_1; }
+
+ //'.'
+ public Keyword getFullStopKeyword_1_0() { return cFullStopKeyword_1_0; }
+
+ //ID
+ public RuleCall getIDTerminalRuleCall_1_1() { return cIDTerminalRuleCall_1_1; }
+ }
+ public class IdOrThisElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.IdOrThis");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final RuleCall cValidIDParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+ private final Keyword cThisKeyword_1 = (Keyword)cAlternatives.eContents().get(1);
+
+ //IdOrThis:
+ // ValidID | 'this';
+ @Override public ParserRule getRule() { return rule; }
+
+ //ValidID | 'this'
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //ValidID
+ public RuleCall getValidIDParserRuleCall_0() { return cValidIDParserRuleCall_0; }
+
+ //'this'
+ public Keyword getThisKeyword_1() { return cThisKeyword_1; }
+ }
+ public class ValidIDElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.ValidID");
+ private final RuleCall cIDTerminalRuleCall = (RuleCall)rule.eContents().get(1);
+
+ //ValidID:
+ // ID;
+ @Override public ParserRule getRule() { return rule; }
+
+ //ID
+ public RuleCall getIDTerminalRuleCall() { return cIDTerminalRuleCall; }
+ }
+ public class ConfigurationParserRule_OperatorWithMultipleOperandElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.ConfigurationParserRule_OperatorWithMultipleOperand");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final RuleCall cOpHasComeEarlierThanParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+ private final RuleCall cOpHasComeLaterThanParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+ private final RuleCall cOpIsAllocatedToParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
+ private final RuleCall cOpIsTranslatedToParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
+ private final RuleCall cOpIsDisplayedOnParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
+ private final RuleCall cOpIsTranslatedViewToParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5);
+ private final RuleCall cOpIsOutputtedOnParserRuleCall_6 = (RuleCall)cAlternatives.eContents().get(6);
+ private final RuleCall cOpIsTranslatedSoundToParserRuleCall_7 = (RuleCall)cAlternatives.eContents().get(7);
+ private final RuleCall cOpIsTypeOfParserRuleCall_8 = (RuleCall)cAlternatives.eContents().get(8);
+
+ //ConfigurationParserRule_OperatorWithMultipleOperand:
+ // OpHasComeEarlierThan | OpHasComeLaterThan | OpIsAllocatedTo | OpIsTranslatedTo | OpIsDisplayedOn |
+ // OpIsTranslatedViewTo | OpIsOutputtedOn | OpIsTranslatedSoundTo | OpIsTypeOf;
+ @Override public ParserRule getRule() { return rule; }
+
+ //OpHasComeEarlierThan | OpHasComeLaterThan | OpIsAllocatedTo | OpIsTranslatedTo | OpIsDisplayedOn | OpIsTranslatedViewTo
+ //| OpIsOutputtedOn | OpIsTranslatedSoundTo | OpIsTypeOf
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //OpHasComeEarlierThan
+ public RuleCall getOpHasComeEarlierThanParserRuleCall_0() { return cOpHasComeEarlierThanParserRuleCall_0; }
+
+ //OpHasComeLaterThan
+ public RuleCall getOpHasComeLaterThanParserRuleCall_1() { return cOpHasComeLaterThanParserRuleCall_1; }
+
+ //OpIsAllocatedTo
+ public RuleCall getOpIsAllocatedToParserRuleCall_2() { return cOpIsAllocatedToParserRuleCall_2; }
+
+ //OpIsTranslatedTo
+ public RuleCall getOpIsTranslatedToParserRuleCall_3() { return cOpIsTranslatedToParserRuleCall_3; }
+
+ //OpIsDisplayedOn
+ public RuleCall getOpIsDisplayedOnParserRuleCall_4() { return cOpIsDisplayedOnParserRuleCall_4; }
+
+ //OpIsTranslatedViewTo
+ public RuleCall getOpIsTranslatedViewToParserRuleCall_5() { return cOpIsTranslatedViewToParserRuleCall_5; }
+
+ //OpIsOutputtedOn
+ public RuleCall getOpIsOutputtedOnParserRuleCall_6() { return cOpIsOutputtedOnParserRuleCall_6; }
+
+ //OpIsTranslatedSoundTo
+ public RuleCall getOpIsTranslatedSoundToParserRuleCall_7() { return cOpIsTranslatedSoundToParserRuleCall_7; }
+
+ //OpIsTypeOf
+ public RuleCall getOpIsTypeOfParserRuleCall_8() { return cOpIsTypeOfParserRuleCall_8; }
+ }
+ public class ConfigurationParserRule_AreaOperatorForConstraintElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.ConfigurationParserRule_AreaOperatorForConstraint");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final RuleCall cOpAllocatedContentParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+ private final RuleCall cOpContentValueParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+ private final RuleCall cOpGetContentsListParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
+ private final RuleCall cOpIsDisplayedParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
+ private final RuleCall cOpDisplayingContentParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
+ private final RuleCall cOpIsHiddenParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5);
+ private final RuleCall cOpIsChangedParserRuleCall_6 = (RuleCall)cAlternatives.eContents().get(6);
+ private final RuleCall cOpIsTranslatedToParserRuleCall_7 = (RuleCall)cAlternatives.eContents().get(7);
+ private final RuleCall cOpIsChangedDisplayParserRuleCall_8 = (RuleCall)cAlternatives.eContents().get(8);
+ private final RuleCall cOpIsTranslatedViewToParserRuleCall_9 = (RuleCall)cAlternatives.eContents().get(9);
+
+ //ConfigurationParserRule_AreaOperatorForConstraint:
+ // OpAllocatedContent | OpContentValue | OpGetContentsList | OpIsDisplayed | OpDisplayingContent | OpIsHidden |
+ // OpIsChanged | OpIsTranslatedTo | OpIsChangedDisplay | OpIsTranslatedViewTo;
+ @Override public ParserRule getRule() { return rule; }
+
+ //OpAllocatedContent | OpContentValue | OpGetContentsList | OpIsDisplayed | OpDisplayingContent | OpIsHidden | OpIsChanged
+ //| OpIsTranslatedTo | OpIsChangedDisplay | OpIsTranslatedViewTo
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //OpAllocatedContent
+ public RuleCall getOpAllocatedContentParserRuleCall_0() { return cOpAllocatedContentParserRuleCall_0; }
+
+ //OpContentValue
+ public RuleCall getOpContentValueParserRuleCall_1() { return cOpContentValueParserRuleCall_1; }
+
+ //OpGetContentsList
+ public RuleCall getOpGetContentsListParserRuleCall_2() { return cOpGetContentsListParserRuleCall_2; }
+
+ //OpIsDisplayed
+ public RuleCall getOpIsDisplayedParserRuleCall_3() { return cOpIsDisplayedParserRuleCall_3; }
+
+ //OpDisplayingContent
+ public RuleCall getOpDisplayingContentParserRuleCall_4() { return cOpDisplayingContentParserRuleCall_4; }
+
+ //OpIsHidden
+ public RuleCall getOpIsHiddenParserRuleCall_5() { return cOpIsHiddenParserRuleCall_5; }
+
+ //OpIsChanged
+ public RuleCall getOpIsChangedParserRuleCall_6() { return cOpIsChangedParserRuleCall_6; }
+
+ //OpIsTranslatedTo
+ public RuleCall getOpIsTranslatedToParserRuleCall_7() { return cOpIsTranslatedToParserRuleCall_7; }
+
+ //OpIsChangedDisplay
+ public RuleCall getOpIsChangedDisplayParserRuleCall_8() { return cOpIsChangedDisplayParserRuleCall_8; }
+
+ //OpIsTranslatedViewTo
+ public RuleCall getOpIsTranslatedViewToParserRuleCall_9() { return cOpIsTranslatedViewToParserRuleCall_9; }
+ }
+ public class ContentOperatorsCommonElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.ContentOperatorsCommon");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final RuleCall cOpIsActiveParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+ private final RuleCall cOpGetAllocatablesParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+ private final RuleCall cOpIsVisibleParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
+ private final RuleCall cOpHasComeEarlierThanParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
+ private final RuleCall cOpHasComeLaterThanParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
+ private final RuleCall cOpStateValueParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5);
+ private final RuleCall cOpIsAllocatedToParserRuleCall_6 = (RuleCall)cAlternatives.eContents().get(6);
+ private final RuleCall cOpIsDisplayedOnParserRuleCall_7 = (RuleCall)cAlternatives.eContents().get(7);
+
+ //ContentOperatorsCommon:
+ // OpIsActive | OpGetAllocatables | OpIsVisible | OpHasComeEarlierThan | OpHasComeLaterThan | OpStateValue |
+ // OpIsAllocatedTo | OpIsDisplayedOn;
+ @Override public ParserRule getRule() { return rule; }
+
+ //OpIsActive | OpGetAllocatables | OpIsVisible | OpHasComeEarlierThan | OpHasComeLaterThan | OpStateValue |
+ //OpIsAllocatedTo | OpIsDisplayedOn
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //OpIsActive
+ public RuleCall getOpIsActiveParserRuleCall_0() { return cOpIsActiveParserRuleCall_0; }
+
+ //OpGetAllocatables
+ public RuleCall getOpGetAllocatablesParserRuleCall_1() { return cOpGetAllocatablesParserRuleCall_1; }
+
+ //OpIsVisible
+ public RuleCall getOpIsVisibleParserRuleCall_2() { return cOpIsVisibleParserRuleCall_2; }
+
+ //OpHasComeEarlierThan
+ public RuleCall getOpHasComeEarlierThanParserRuleCall_3() { return cOpHasComeEarlierThanParserRuleCall_3; }
+
+ //OpHasComeLaterThan
+ public RuleCall getOpHasComeLaterThanParserRuleCall_4() { return cOpHasComeLaterThanParserRuleCall_4; }
+
+ //OpStateValue
+ public RuleCall getOpStateValueParserRuleCall_5() { return cOpStateValueParserRuleCall_5; }
+
+ //OpIsAllocatedTo
+ public RuleCall getOpIsAllocatedToParserRuleCall_6() { return cOpIsAllocatedToParserRuleCall_6; }
+
+ //OpIsDisplayedOn
+ public RuleCall getOpIsDisplayedOnParserRuleCall_7() { return cOpIsDisplayedOnParserRuleCall_7; }
+ }
+ public class ConfigurationParserRule_ContentOperatorForConstraintElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.ConfigurationParserRule_ContentOperatorForConstraint");
+ private final RuleCall cContentOperatorsCommonParserRuleCall = (RuleCall)rule.eContents().get(1);
+
+ //ConfigurationParserRule_ContentOperatorForConstraint:
+ // ContentOperatorsCommon;
+ @Override public ParserRule getRule() { return rule; }
+
+ //ContentOperatorsCommon
+ public RuleCall getContentOperatorsCommonParserRuleCall() { return cContentOperatorsCommonParserRuleCall; }
+ }
+ public class ConfigurationParserRule_ZoneOperatorForConstraintElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.ConfigurationParserRule_ZoneOperatorForConstraint");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final RuleCall cOpAllocatedContentParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+ private final RuleCall cOpContentValueParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+ private final RuleCall cOpGetContentsListParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
+ private final RuleCall cOpIsOutputtedParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
+ private final RuleCall cOpOutputtingSoundParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
+ private final RuleCall cOpIsMutedParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5);
+ private final RuleCall cOpIsAttenuatedParserRuleCall_6 = (RuleCall)cAlternatives.eContents().get(6);
+ private final RuleCall cOpIsChangedParserRuleCall_7 = (RuleCall)cAlternatives.eContents().get(7);
+ private final RuleCall cOpIsTranslatedToParserRuleCall_8 = (RuleCall)cAlternatives.eContents().get(8);
+ private final RuleCall cOpIsChangedOutputParserRuleCall_9 = (RuleCall)cAlternatives.eContents().get(9);
+ private final RuleCall cOpIsTranslatedSoundToParserRuleCall_10 = (RuleCall)cAlternatives.eContents().get(10);
+
+ //ConfigurationParserRule_ZoneOperatorForConstraint:
+ // OpAllocatedContent | OpContentValue | OpGetContentsList | OpIsOutputted | OpOutputtingSound | OpIsMuted |
+ // OpIsAttenuated | OpIsChanged | OpIsTranslatedTo | OpIsChangedOutput | OpIsTranslatedSoundTo;
+ @Override public ParserRule getRule() { return rule; }
+
+ //OpAllocatedContent | OpContentValue | OpGetContentsList | OpIsOutputted | OpOutputtingSound | OpIsMuted | OpIsAttenuated
+ //| OpIsChanged | OpIsTranslatedTo | OpIsChangedOutput | OpIsTranslatedSoundTo
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //OpAllocatedContent
+ public RuleCall getOpAllocatedContentParserRuleCall_0() { return cOpAllocatedContentParserRuleCall_0; }
+
+ //OpContentValue
+ public RuleCall getOpContentValueParserRuleCall_1() { return cOpContentValueParserRuleCall_1; }
+
+ //OpGetContentsList
+ public RuleCall getOpGetContentsListParserRuleCall_2() { return cOpGetContentsListParserRuleCall_2; }
+
+ //OpIsOutputted
+ public RuleCall getOpIsOutputtedParserRuleCall_3() { return cOpIsOutputtedParserRuleCall_3; }
+
+ //OpOutputtingSound
+ public RuleCall getOpOutputtingSoundParserRuleCall_4() { return cOpOutputtingSoundParserRuleCall_4; }
+
+ //OpIsMuted
+ public RuleCall getOpIsMutedParserRuleCall_5() { return cOpIsMutedParserRuleCall_5; }
+
+ //OpIsAttenuated
+ public RuleCall getOpIsAttenuatedParserRuleCall_6() { return cOpIsAttenuatedParserRuleCall_6; }
+
+ //OpIsChanged
+ public RuleCall getOpIsChangedParserRuleCall_7() { return cOpIsChangedParserRuleCall_7; }
+
+ //OpIsTranslatedTo
+ public RuleCall getOpIsTranslatedToParserRuleCall_8() { return cOpIsTranslatedToParserRuleCall_8; }
+
+ //OpIsChangedOutput
+ public RuleCall getOpIsChangedOutputParserRuleCall_9() { return cOpIsChangedOutputParserRuleCall_9; }
+
+ //OpIsTranslatedSoundTo
+ public RuleCall getOpIsTranslatedSoundToParserRuleCall_10() { return cOpIsTranslatedSoundToParserRuleCall_10; }
+ }
+ public class SoundOperatorsCommonElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.SoundOperatorsCommon");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final RuleCall cOpIsActiveParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+ private final RuleCall cOpGetAllocatablesParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+ private final RuleCall cOpIsSoundingParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
+ private final RuleCall cOpHasComeEarlierThanParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
+ private final RuleCall cOpHasComeLaterThanParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
+ private final RuleCall cOpStateValueParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5);
+ private final RuleCall cOpIsAllocatedToParserRuleCall_6 = (RuleCall)cAlternatives.eContents().get(6);
+ private final RuleCall cOpIsOutputtedOnParserRuleCall_7 = (RuleCall)cAlternatives.eContents().get(7);
+
+ //SoundOperatorsCommon:
+ // OpIsActive | OpGetAllocatables | OpIsSounding | OpHasComeEarlierThan | OpHasComeLaterThan | OpStateValue |
+ // OpIsAllocatedTo | OpIsOutputtedOn;
+ @Override public ParserRule getRule() { return rule; }
+
+ //OpIsActive | OpGetAllocatables | OpIsSounding | OpHasComeEarlierThan | OpHasComeLaterThan | OpStateValue |
+ //OpIsAllocatedTo | OpIsOutputtedOn
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //OpIsActive
+ public RuleCall getOpIsActiveParserRuleCall_0() { return cOpIsActiveParserRuleCall_0; }
+
+ //OpGetAllocatables
+ public RuleCall getOpGetAllocatablesParserRuleCall_1() { return cOpGetAllocatablesParserRuleCall_1; }
+
+ //OpIsSounding
+ public RuleCall getOpIsSoundingParserRuleCall_2() { return cOpIsSoundingParserRuleCall_2; }
+
+ //OpHasComeEarlierThan
+ public RuleCall getOpHasComeEarlierThanParserRuleCall_3() { return cOpHasComeEarlierThanParserRuleCall_3; }
+
+ //OpHasComeLaterThan
+ public RuleCall getOpHasComeLaterThanParserRuleCall_4() { return cOpHasComeLaterThanParserRuleCall_4; }
+
+ //OpStateValue
+ public RuleCall getOpStateValueParserRuleCall_5() { return cOpStateValueParserRuleCall_5; }
+
+ //OpIsAllocatedTo
+ public RuleCall getOpIsAllocatedToParserRuleCall_6() { return cOpIsAllocatedToParserRuleCall_6; }
+
+ //OpIsOutputtedOn
+ public RuleCall getOpIsOutputtedOnParserRuleCall_7() { return cOpIsOutputtedOnParserRuleCall_7; }
+ }
+ public class ConfigurationParserRule_SoundOperatorForConstraintElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.ConfigurationParserRule_SoundOperatorForConstraint");
+ private final RuleCall cSoundOperatorsCommonParserRuleCall = (RuleCall)rule.eContents().get(1);
+
+ //ConfigurationParserRule_SoundOperatorForConstraint:
+ // SoundOperatorsCommon;
+ @Override public ParserRule getRule() { return rule; }
+
+ //SoundOperatorsCommon
+ public RuleCall getSoundOperatorsCommonParserRuleCall() { return cSoundOperatorsCommonParserRuleCall; }
+ }
+ public class ConfigurationParserRule_SceneOperatorForConstraintElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.ConfigurationParserRule_SceneOperatorForConstraint");
+ private final RuleCall cOpIsOnParserRuleCall = (RuleCall)rule.eContents().get(1);
+
+ //ConfigurationParserRule_SceneOperatorForConstraint:
+ // OpIsOn;
+ @Override public ParserRule getRule() { return rule; }
+
+ //OpIsOn
+ public RuleCall getOpIsOnParserRuleCall() { return cOpIsOnParserRuleCall; }
+ }
+ public class ConfigurationParserRule_PropertyOperatorForConstraintElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.ConfigurationParserRule_PropertyOperatorForConstraint");
+ private final RuleCall cOpGetPropertyParserRuleCall = (RuleCall)rule.eContents().get(1);
+
+ //ConfigurationParserRule_PropertyOperatorForConstraint:
+ // OpGetProperty;
+ @Override public ParserRule getRule() { return rule; }
+
+ //OpGetProperty
+ public RuleCall getOpGetPropertyParserRuleCall() { return cOpGetPropertyParserRuleCall; }
+ }
+
+ public class ArbitrationPolicyElements extends AbstractEnumRuleElementFinder {
+ private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.ArbitrationPolicy");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final EnumLiteralDeclaration cDEFAULTEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+ private final Keyword cDEFAULTDEFAULTKeyword_0_0 = (Keyword)cDEFAULTEnumLiteralDeclaration_0.eContents().get(0);
+ private final EnumLiteralDeclaration cFIRST_COME_FIRSTEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+ private final Keyword cFIRST_COME_FIRSTFIRST_COME_FIRSTKeyword_1_0 = (Keyword)cFIRST_COME_FIRSTEnumLiteralDeclaration_1.eContents().get(0);
+ private final EnumLiteralDeclaration cLAST_COME_FIRSTEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+ private final Keyword cLAST_COME_FIRSTLAST_COME_FIRSTKeyword_2_0 = (Keyword)cLAST_COME_FIRSTEnumLiteralDeclaration_2.eContents().get(0);
+ private final EnumLiteralDeclaration cPRIORITY_FIRST_COME_FIRSTEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
+ private final Keyword cPRIORITY_FIRST_COME_FIRSTPRIORITY_FIRST_COME_FIRSTKeyword_3_0 = (Keyword)cPRIORITY_FIRST_COME_FIRSTEnumLiteralDeclaration_3.eContents().get(0);
+ private final EnumLiteralDeclaration cPRIORITY_LAST_COME_FIRSTEnumLiteralDeclaration_4 = (EnumLiteralDeclaration)cAlternatives.eContents().get(4);
+ private final Keyword cPRIORITY_LAST_COME_FIRSTPRIORITY_LAST_COME_FIRSTKeyword_4_0 = (Keyword)cPRIORITY_LAST_COME_FIRSTEnumLiteralDeclaration_4.eContents().get(0);
+
+ //enum ArbitrationPolicy returns rbacore::ArbitrationPolicy:
+ // DEFAULT | FIRST_COME_FIRST | LAST_COME_FIRST |
+ // PRIORITY_FIRST_COME_FIRST | PRIORITY_LAST_COME_FIRST;
+ public EnumRule getRule() { return rule; }
+
+ //DEFAULT | FIRST_COME_FIRST | LAST_COME_FIRST | PRIORITY_FIRST_COME_FIRST | PRIORITY_LAST_COME_FIRST
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //DEFAULT
+ public EnumLiteralDeclaration getDEFAULTEnumLiteralDeclaration_0() { return cDEFAULTEnumLiteralDeclaration_0; }
+
+ //'DEFAULT'
+ public Keyword getDEFAULTDEFAULTKeyword_0_0() { return cDEFAULTDEFAULTKeyword_0_0; }
+
+ //FIRST_COME_FIRST
+ public EnumLiteralDeclaration getFIRST_COME_FIRSTEnumLiteralDeclaration_1() { return cFIRST_COME_FIRSTEnumLiteralDeclaration_1; }
+
+ //'FIRST_COME_FIRST'
+ public Keyword getFIRST_COME_FIRSTFIRST_COME_FIRSTKeyword_1_0() { return cFIRST_COME_FIRSTFIRST_COME_FIRSTKeyword_1_0; }
+
+ //LAST_COME_FIRST
+ public EnumLiteralDeclaration getLAST_COME_FIRSTEnumLiteralDeclaration_2() { return cLAST_COME_FIRSTEnumLiteralDeclaration_2; }
+
+ //'LAST_COME_FIRST'
+ public Keyword getLAST_COME_FIRSTLAST_COME_FIRSTKeyword_2_0() { return cLAST_COME_FIRSTLAST_COME_FIRSTKeyword_2_0; }
+
+ //PRIORITY_FIRST_COME_FIRST
+ public EnumLiteralDeclaration getPRIORITY_FIRST_COME_FIRSTEnumLiteralDeclaration_3() { return cPRIORITY_FIRST_COME_FIRSTEnumLiteralDeclaration_3; }
+
+ //'PRIORITY_FIRST_COME_FIRST'
+ public Keyword getPRIORITY_FIRST_COME_FIRSTPRIORITY_FIRST_COME_FIRSTKeyword_3_0() { return cPRIORITY_FIRST_COME_FIRSTPRIORITY_FIRST_COME_FIRSTKeyword_3_0; }
+
+ //PRIORITY_LAST_COME_FIRST
+ public EnumLiteralDeclaration getPRIORITY_LAST_COME_FIRSTEnumLiteralDeclaration_4() { return cPRIORITY_LAST_COME_FIRSTEnumLiteralDeclaration_4; }
+
+ //'PRIORITY_LAST_COME_FIRST'
+ public Keyword getPRIORITY_LAST_COME_FIRSTPRIORITY_LAST_COME_FIRSTKeyword_4_0() { return cPRIORITY_LAST_COME_FIRSTPRIORITY_LAST_COME_FIRSTKeyword_4_0; }
+ }
+ public class BasePointElements extends AbstractEnumRuleElementFinder {
+ private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.BasePoint");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final EnumLiteralDeclaration cLEFT_TOPEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+ private final Keyword cLEFT_TOPLEFT_TOPKeyword_0_0 = (Keyword)cLEFT_TOPEnumLiteralDeclaration_0.eContents().get(0);
+ private final EnumLiteralDeclaration cLEFT_MIDDLEEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+ private final Keyword cLEFT_MIDDLELEFT_MIDDLEKeyword_1_0 = (Keyword)cLEFT_MIDDLEEnumLiteralDeclaration_1.eContents().get(0);
+ private final EnumLiteralDeclaration cLEFT_BOTTOMEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+ private final Keyword cLEFT_BOTTOMLEFT_BOTTOMKeyword_2_0 = (Keyword)cLEFT_BOTTOMEnumLiteralDeclaration_2.eContents().get(0);
+ private final EnumLiteralDeclaration cRIGHT_TOPEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
+ private final Keyword cRIGHT_TOPRIGHT_TOPKeyword_3_0 = (Keyword)cRIGHT_TOPEnumLiteralDeclaration_3.eContents().get(0);
+ private final EnumLiteralDeclaration cRIGHT_MIDDLEEnumLiteralDeclaration_4 = (EnumLiteralDeclaration)cAlternatives.eContents().get(4);
+ private final Keyword cRIGHT_MIDDLERIGHT_MIDDLEKeyword_4_0 = (Keyword)cRIGHT_MIDDLEEnumLiteralDeclaration_4.eContents().get(0);
+ private final EnumLiteralDeclaration cRIGHT_BOTTOMEnumLiteralDeclaration_5 = (EnumLiteralDeclaration)cAlternatives.eContents().get(5);
+ private final Keyword cRIGHT_BOTTOMRIGHT_BOTTOMKeyword_5_0 = (Keyword)cRIGHT_BOTTOMEnumLiteralDeclaration_5.eContents().get(0);
+ private final EnumLiteralDeclaration cCENTER_TOPEnumLiteralDeclaration_6 = (EnumLiteralDeclaration)cAlternatives.eContents().get(6);
+ private final Keyword cCENTER_TOPCENTER_TOPKeyword_6_0 = (Keyword)cCENTER_TOPEnumLiteralDeclaration_6.eContents().get(0);
+ private final EnumLiteralDeclaration cCENTER_MIDDLEEnumLiteralDeclaration_7 = (EnumLiteralDeclaration)cAlternatives.eContents().get(7);
+ private final Keyword cCENTER_MIDDLECENTER_MIDDLEKeyword_7_0 = (Keyword)cCENTER_MIDDLEEnumLiteralDeclaration_7.eContents().get(0);
+ private final EnumLiteralDeclaration cCENTER_BOTTOMEnumLiteralDeclaration_8 = (EnumLiteralDeclaration)cAlternatives.eContents().get(8);
+ private final Keyword cCENTER_BOTTOMCENTER_BOTTOMKeyword_8_0 = (Keyword)cCENTER_BOTTOMEnumLiteralDeclaration_8.eContents().get(0);
+
+ //enum BasePoint returns rbaview::BasePoint:
+ // LEFT_TOP | LEFT_MIDDLE | LEFT_BOTTOM | RIGHT_TOP |
+ // RIGHT_MIDDLE | RIGHT_BOTTOM | CENTER_TOP | CENTER_MIDDLE |
+ // CENTER_BOTTOM;
+ public EnumRule getRule() { return rule; }
+
+ //LEFT_TOP | LEFT_MIDDLE | LEFT_BOTTOM | RIGHT_TOP | RIGHT_MIDDLE | RIGHT_BOTTOM | CENTER_TOP | CENTER_MIDDLE |
+ //CENTER_BOTTOM
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //LEFT_TOP
+ public EnumLiteralDeclaration getLEFT_TOPEnumLiteralDeclaration_0() { return cLEFT_TOPEnumLiteralDeclaration_0; }
+
+ //'LEFT_TOP'
+ public Keyword getLEFT_TOPLEFT_TOPKeyword_0_0() { return cLEFT_TOPLEFT_TOPKeyword_0_0; }
+
+ //LEFT_MIDDLE
+ public EnumLiteralDeclaration getLEFT_MIDDLEEnumLiteralDeclaration_1() { return cLEFT_MIDDLEEnumLiteralDeclaration_1; }
+
+ //'LEFT_MIDDLE'
+ public Keyword getLEFT_MIDDLELEFT_MIDDLEKeyword_1_0() { return cLEFT_MIDDLELEFT_MIDDLEKeyword_1_0; }
+
+ //LEFT_BOTTOM
+ public EnumLiteralDeclaration getLEFT_BOTTOMEnumLiteralDeclaration_2() { return cLEFT_BOTTOMEnumLiteralDeclaration_2; }
+
+ //'LEFT_BOTTOM'
+ public Keyword getLEFT_BOTTOMLEFT_BOTTOMKeyword_2_0() { return cLEFT_BOTTOMLEFT_BOTTOMKeyword_2_0; }
+
+ //RIGHT_TOP
+ public EnumLiteralDeclaration getRIGHT_TOPEnumLiteralDeclaration_3() { return cRIGHT_TOPEnumLiteralDeclaration_3; }
+
+ //'RIGHT_TOP'
+ public Keyword getRIGHT_TOPRIGHT_TOPKeyword_3_0() { return cRIGHT_TOPRIGHT_TOPKeyword_3_0; }
+
+ //RIGHT_MIDDLE
+ public EnumLiteralDeclaration getRIGHT_MIDDLEEnumLiteralDeclaration_4() { return cRIGHT_MIDDLEEnumLiteralDeclaration_4; }
+
+ //'RIGHT_MIDDLE'
+ public Keyword getRIGHT_MIDDLERIGHT_MIDDLEKeyword_4_0() { return cRIGHT_MIDDLERIGHT_MIDDLEKeyword_4_0; }
+
+ //RIGHT_BOTTOM
+ public EnumLiteralDeclaration getRIGHT_BOTTOMEnumLiteralDeclaration_5() { return cRIGHT_BOTTOMEnumLiteralDeclaration_5; }
+
+ //'RIGHT_BOTTOM'
+ public Keyword getRIGHT_BOTTOMRIGHT_BOTTOMKeyword_5_0() { return cRIGHT_BOTTOMRIGHT_BOTTOMKeyword_5_0; }
+
+ //CENTER_TOP
+ public EnumLiteralDeclaration getCENTER_TOPEnumLiteralDeclaration_6() { return cCENTER_TOPEnumLiteralDeclaration_6; }
+
+ //'CENTER_TOP'
+ public Keyword getCENTER_TOPCENTER_TOPKeyword_6_0() { return cCENTER_TOPCENTER_TOPKeyword_6_0; }
+
+ //CENTER_MIDDLE
+ public EnumLiteralDeclaration getCENTER_MIDDLEEnumLiteralDeclaration_7() { return cCENTER_MIDDLEEnumLiteralDeclaration_7; }
+
+ //'CENTER_MIDDLE'
+ public Keyword getCENTER_MIDDLECENTER_MIDDLEKeyword_7_0() { return cCENTER_MIDDLECENTER_MIDDLEKeyword_7_0; }
+
+ //CENTER_BOTTOM
+ public EnumLiteralDeclaration getCENTER_BOTTOMEnumLiteralDeclaration_8() { return cCENTER_BOTTOMEnumLiteralDeclaration_8; }
+
+ //'CENTER_BOTTOM'
+ public Keyword getCENTER_BOTTOMCENTER_BOTTOMKeyword_8_0() { return cCENTER_BOTTOMCENTER_BOTTOMKeyword_8_0; }
+ }
+ public class LoserTypeElements extends AbstractEnumRuleElementFinder {
+ private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.LoserType");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final EnumLiteralDeclaration cNEVER_GIVEUPEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+ private final Keyword cNEVER_GIVEUPNEVER_GIVEUPKeyword_0_0 = (Keyword)cNEVER_GIVEUPEnumLiteralDeclaration_0.eContents().get(0);
+ private final EnumLiteralDeclaration cGOOD_LOSEREnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+ private final Keyword cGOOD_LOSERGOOD_LOSERKeyword_1_0 = (Keyword)cGOOD_LOSEREnumLiteralDeclaration_1.eContents().get(0);
+ private final EnumLiteralDeclaration cDO_NOT_GIVEUP_UNTIL_WINEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+ private final Keyword cDO_NOT_GIVEUP_UNTIL_WINDO_NOT_GIVEUP_UNTIL_WINKeyword_2_0 = (Keyword)cDO_NOT_GIVEUP_UNTIL_WINEnumLiteralDeclaration_2.eContents().get(0);
+
+ //enum LoserType returns rbacore::LoserType:
+ // NEVER_GIVEUP | GOOD_LOSER | DO_NOT_GIVEUP_UNTIL_WIN;
+ public EnumRule getRule() { return rule; }
+
+ //NEVER_GIVEUP | GOOD_LOSER | DO_NOT_GIVEUP_UNTIL_WIN
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //NEVER_GIVEUP
+ public EnumLiteralDeclaration getNEVER_GIVEUPEnumLiteralDeclaration_0() { return cNEVER_GIVEUPEnumLiteralDeclaration_0; }
+
+ //'NEVER_GIVEUP'
+ public Keyword getNEVER_GIVEUPNEVER_GIVEUPKeyword_0_0() { return cNEVER_GIVEUPNEVER_GIVEUPKeyword_0_0; }
+
+ //GOOD_LOSER
+ public EnumLiteralDeclaration getGOOD_LOSEREnumLiteralDeclaration_1() { return cGOOD_LOSEREnumLiteralDeclaration_1; }
+
+ //'GOOD_LOSER'
+ public Keyword getGOOD_LOSERGOOD_LOSERKeyword_1_0() { return cGOOD_LOSERGOOD_LOSERKeyword_1_0; }
+
+ //DO_NOT_GIVEUP_UNTIL_WIN
+ public EnumLiteralDeclaration getDO_NOT_GIVEUP_UNTIL_WINEnumLiteralDeclaration_2() { return cDO_NOT_GIVEUP_UNTIL_WINEnumLiteralDeclaration_2; }
+
+ //'DO_NOT_GIVEUP_UNTIL_WIN'
+ public Keyword getDO_NOT_GIVEUP_UNTIL_WINDO_NOT_GIVEUP_UNTIL_WINKeyword_2_0() { return cDO_NOT_GIVEUP_UNTIL_WINDO_NOT_GIVEUP_UNTIL_WINKeyword_2_0; }
+ }
+
+ private final TopLevelElements pTopLevel;
+ private final ImportElements pImport;
+ private final PackagableElementElements pPackagableElement;
+ private final AbstractConstraintElements pAbstractConstraint;
+ private final SizeIdentifierElements pSizeIdentifier;
+ private final RuleObjectElements pRuleObject;
+ private final AbstractAllocatableElements pAbstractAllocatable;
+ private final AllocatableElements pAllocatable;
+ private final AllocatableSetElements pAllocatableSet;
+ private final AbstractContentElements pAbstractContent;
+ private final ContentElements pContent;
+ private final ContentSetElements pContentSet;
+ private final AbstractSceneElements pAbstractScene;
+ private final AbstractPropertyElements pAbstractProperty;
+ private final LayoutManagerElements pLayoutManager;
+ private final AlignedLayoutElements pAlignedLayout;
+ private final TagElements pTag;
+ private final PackageElements pPackage;
+ private final StereotypeElements pStereotype;
+ private final StereotypableElementNameElements pStereotypableElementName;
+ private final DisplayElements pDisplay;
+ private final ConstraintElements pConstraint;
+ private final ViewContentElements pViewContent;
+ private final SoundContentElements pSoundContent;
+ private final SizeElements pSize;
+ private final SizeReferenceElements pSizeReference;
+ private final OffsetElements pOffset;
+ private final AreaSetElements pAreaSet;
+ private final ZoneSetElements pZoneSet;
+ private final CompositeAreaElements pCompositeArea;
+ private final AreaElements pArea;
+ private final ZoneElements pZone;
+ private final ViewContentStateElements pViewContentState;
+ private final SoundContentStateElements pSoundContentState;
+ private final ProjectElements pProject;
+ private final VExpressionElements pVExpression;
+ private final VPlusOperatorElements pVPlusOperator;
+ private final OpPlusElements pOpPlus;
+ private final VComparisonAndElements pVComparisonAnd;
+ private final VRelationalExpressionElements pVRelationalExpression;
+ private final OpMuchGreaterThanElements pOpMuchGreaterThan;
+ private final OpEqualToElements pOpEqualTo;
+ private final OpGreaterThanElements pOpGreaterThan;
+ private final OpLowerThanElements pOpLowerThan;
+ private final VPrimaryExpressionElements pVPrimaryExpression;
+ private final VValueExpressionElements pVValueExpression;
+ private final ThatOfOperatorElements pThatOfOperator;
+ private final VMemberFeatureReferenceElements pVMemberFeatureReference;
+ private final IntegerValueElements pIntegerValue;
+ private final StandardValueElements pStandardValue;
+ private final NoneValueElements pNoneValue;
+ private final MinValueElements pMinValue;
+ private final MaxValueElements pMaxValue;
+ private final CExpressionElements pCExpression;
+ private final CImpliesOperatorElements pCImpliesOperator;
+ private final OpImpliesElements pOpImplies;
+ private final COrOperatorElements pCOrOperator;
+ private final OpOrElements pOpOr;
+ private final CAndOperatorElements pCAndOperator;
+ private final OpAndElements pOpAnd;
+ private final CEqualityExpressionElements pCEqualityExpression;
+ private final OpObjectCompareElements pOpObjectCompare;
+ private final OpObjectNotCompareElements pOpObjectNotCompare;
+ private final OpEqualityElements pOpEquality;
+ private final CRelationalExpressionElements pCRelationalExpression;
+ private final OpIsGreaterThanEqualElements pOpIsGreaterThanEqual;
+ private final OpIsLowerThanEqualElements pOpIsLowerThanEqual;
+ private final OpIsGreaterThanElements pOpIsGreaterThan;
+ private final OpIsLowerThanElements pOpIsLowerThan;
+ private final CUnaryOperationElements pCUnaryOperation;
+ private final OpNotElements pOpNot;
+ private final COperationFeatureCallElements pCOperationFeatureCall;
+ private final OpGetPropertyElements pOpGetProperty;
+ private final OpIsOnElements pOpIsOn;
+ private final OpGetContentsListElements pOpGetContentsList;
+ private final OpContentValueElements pOpContentValue;
+ private final OpIsActiveElements pOpIsActive;
+ private final OpGetAllocatablesElements pOpGetAllocatables;
+ private final OpAllocatedContentElements pOpAllocatedContent;
+ private final OpIsDisplayedElements pOpIsDisplayed;
+ private final OpIsHiddenElements pOpIsHidden;
+ private final OpDisplayingContentElements pOpDisplayingContent;
+ private final OpIsVisibleElements pOpIsVisible;
+ private final OpIsOutputtedElements pOpIsOutputted;
+ private final OpIsMutedElements pOpIsMuted;
+ private final OpOutputtingSoundElements pOpOutputtingSound;
+ private final OpIsSoundingElements pOpIsSounding;
+ private final OpIsAttenuatedElements pOpIsAttenuated;
+ private final OpHasComeEarlierThanElements pOpHasComeEarlierThan;
+ private final OpHasComeLaterThanElements pOpHasComeLaterThan;
+ private final OpStateValueElements pOpStateValue;
+ private final OpIsAllocatedToElements pOpIsAllocatedTo;
+ private final OpIsChangedElements pOpIsChanged;
+ private final OpIsTranslatedToElements pOpIsTranslatedTo;
+ private final OpIsDisplayedOnElements pOpIsDisplayedOn;
+ private final OpIsChangedDisplayElements pOpIsChangedDisplay;
+ private final OpIsTranslatedViewToElements pOpIsTranslatedViewTo;
+ private final OpIsOutputtedOnElements pOpIsOutputtedOn;
+ private final OpIsChangedOutputElements pOpIsChangedOutput;
+ private final OpIsTranslatedSoundToElements pOpIsTranslatedSoundTo;
+ private final OpIsTypeOfElements pOpIsTypeOf;
+ private final OpActiveContentsElements pOpActiveContents;
+ private final OpSizeOperatorElements pOpSizeOperator;
+ private final OpHasBeenDisplayedElements pOpHasBeenDisplayed;
+ private final OpActiveStateElements pOpActiveState;
+ private final OpGetStateElements pOpGetState;
+ private final OpMaxOperatorElements pOpMaxOperator;
+ private final OpMinOperatorElements pOpMinOperator;
+ private final OpSelectOperatorElements pOpSelectOperator;
+ private final OpStartOpratorElements pOpStartOprator;
+ private final OpStopOpratorElements pOpStopOprator;
+ private final OpActivateOpratorElements pOpActivateOprator;
+ private final CPrimaryExpressionElements pCPrimaryExpression;
+ private final AllInstanceOfExpressionElements pAllInstanceOfExpression;
+ private final NullExpressionElements pNullExpression;
+ private final PreviousModifierElements pPreviousModifier;
+ private final HideLowerPriorityElements pHideLowerPriority;
+ private final MuteLowerPriorityElements pMuteLowerPriority;
+ private final SetOfOperatorElements pSetOfOperator;
+ private final IfStatementElements pIfStatement;
+ private final ForAllOperatorElements pForAllOperator;
+ private final ExistsOperatorElements pExistsOperator;
+ private final LambdaExpressionElements pLambdaExpression;
+ private final VariableElements pVariable;
+ private final CObjectReferenceElements pCObjectReference;
+ private final CMemberFeatureReferenceElements pCMemberFeatureReference;
+ private final LetStatementElements pLetStatement;
+ private final ComplexExpressionElements pComplexExpression;
+ private final EnumExpressionElements pEnumExpression;
+ private final LoserTypeExpressionElements pLoserTypeExpression;
+ private final ArbitrationPolicyExpressionElements pArbitrationPolicyExpression;
+ private final ViewContentSetElements pViewContentSet;
+ private final SoundContentSetElements pSoundContentSet;
+ private final SceneElements pScene;
+ private final VerticalLayoutElements pVerticalLayout;
+ private final HorizontalLayoutElements pHorizontalLayout;
+ private final FixedPositionLayoutElements pFixedPositionLayout;
+ private final PositionContainerElements pPositionContainer;
+ private final EBooleanElements pEBoolean;
+ private final EIntElements pEInt;
+ private final EStringElements pEString;
+ private final RichStringElements pRichString;
+ private final QualifiedNameWithWildcardElements pQualifiedNameWithWildcard;
+ private final QualifiedNameElements pQualifiedName;
+ private final IdOrThisElements pIdOrThis;
+ private final ValidIDElements pValidID;
+ private final ArbitrationPolicyElements eArbitrationPolicy;
+ private final BasePointElements eBasePoint;
+ private final LoserTypeElements eLoserType;
+ private final TerminalRule tID;
+ private final TerminalRule tIDENTIFIER_START_IMPL;
+ private final TerminalRule tIDENTIFIER_PART_IMPL;
+ private final TerminalRule tIDENTIFIER_DIGITS;
+ private final TerminalRule tHEX_DIGIT;
+ private final TerminalRule tUNICODE_ESCAPE;
+ private final TerminalRule tIDENTIFIER_PART;
+ private final TerminalRule tIDENTIFIER_START;
+ private final TerminalRule tWS;
+ private final TerminalRule tINT;
+ private final TerminalRule tSTRING;
+ private final TerminalRule tRICH_STRING;
+ private final TerminalRule tML_COMMENT;
+ private final TerminalRule tSL_COMMENT;
+ private final ConfigurationParserRule_OperatorWithMultipleOperandElements pConfigurationParserRule_OperatorWithMultipleOperand;
+ private final ConfigurationParserRule_AreaOperatorForConstraintElements pConfigurationParserRule_AreaOperatorForConstraint;
+ private final ContentOperatorsCommonElements pContentOperatorsCommon;
+ private final ConfigurationParserRule_ContentOperatorForConstraintElements pConfigurationParserRule_ContentOperatorForConstraint;
+ private final ConfigurationParserRule_ZoneOperatorForConstraintElements pConfigurationParserRule_ZoneOperatorForConstraint;
+ private final SoundOperatorsCommonElements pSoundOperatorsCommon;
+ private final ConfigurationParserRule_SoundOperatorForConstraintElements pConfigurationParserRule_SoundOperatorForConstraint;
+ private final ConfigurationParserRule_SceneOperatorForConstraintElements pConfigurationParserRule_SceneOperatorForConstraint;
+ private final ConfigurationParserRule_PropertyOperatorForConstraintElements pConfigurationParserRule_PropertyOperatorForConstraint;
+
+ private final Grammar grammar;
+
+ @Inject
+ public RBAModelGrammarAccess(GrammarProvider grammarProvider) {
+ this.grammar = internalFindGrammar(grammarProvider);
+ this.pTopLevel = new TopLevelElements();
+ this.pImport = new ImportElements();
+ this.pPackagableElement = new PackagableElementElements();
+ this.pAbstractConstraint = new AbstractConstraintElements();
+ this.pSizeIdentifier = new SizeIdentifierElements();
+ this.pRuleObject = new RuleObjectElements();
+ this.pAbstractAllocatable = new AbstractAllocatableElements();
+ this.pAllocatable = new AllocatableElements();
+ this.pAllocatableSet = new AllocatableSetElements();
+ this.pAbstractContent = new AbstractContentElements();
+ this.pContent = new ContentElements();
+ this.pContentSet = new ContentSetElements();
+ this.pAbstractScene = new AbstractSceneElements();
+ this.pAbstractProperty = new AbstractPropertyElements();
+ this.pLayoutManager = new LayoutManagerElements();
+ this.pAlignedLayout = new AlignedLayoutElements();
+ this.pTag = new TagElements();
+ this.pPackage = new PackageElements();
+ this.pStereotype = new StereotypeElements();
+ this.pStereotypableElementName = new StereotypableElementNameElements();
+ this.pDisplay = new DisplayElements();
+ this.pConstraint = new ConstraintElements();
+ this.pViewContent = new ViewContentElements();
+ this.pSoundContent = new SoundContentElements();
+ this.pSize = new SizeElements();
+ this.pSizeReference = new SizeReferenceElements();
+ this.pOffset = new OffsetElements();
+ this.pAreaSet = new AreaSetElements();
+ this.pZoneSet = new ZoneSetElements();
+ this.pCompositeArea = new CompositeAreaElements();
+ this.pArea = new AreaElements();
+ this.pZone = new ZoneElements();
+ this.pViewContentState = new ViewContentStateElements();
+ this.pSoundContentState = new SoundContentStateElements();
+ this.pProject = new ProjectElements();
+ this.pVExpression = new VExpressionElements();
+ this.pVPlusOperator = new VPlusOperatorElements();
+ this.pOpPlus = new OpPlusElements();
+ this.pVComparisonAnd = new VComparisonAndElements();
+ this.pVRelationalExpression = new VRelationalExpressionElements();
+ this.pOpMuchGreaterThan = new OpMuchGreaterThanElements();
+ this.pOpEqualTo = new OpEqualToElements();
+ this.pOpGreaterThan = new OpGreaterThanElements();
+ this.pOpLowerThan = new OpLowerThanElements();
+ this.pVPrimaryExpression = new VPrimaryExpressionElements();
+ this.pVValueExpression = new VValueExpressionElements();
+ this.pThatOfOperator = new ThatOfOperatorElements();
+ this.pVMemberFeatureReference = new VMemberFeatureReferenceElements();
+ this.pIntegerValue = new IntegerValueElements();
+ this.pStandardValue = new StandardValueElements();
+ this.pNoneValue = new NoneValueElements();
+ this.pMinValue = new MinValueElements();
+ this.pMaxValue = new MaxValueElements();
+ this.pCExpression = new CExpressionElements();
+ this.pCImpliesOperator = new CImpliesOperatorElements();
+ this.pOpImplies = new OpImpliesElements();
+ this.pCOrOperator = new COrOperatorElements();
+ this.pOpOr = new OpOrElements();
+ this.pCAndOperator = new CAndOperatorElements();
+ this.pOpAnd = new OpAndElements();
+ this.pCEqualityExpression = new CEqualityExpressionElements();
+ this.pOpObjectCompare = new OpObjectCompareElements();
+ this.pOpObjectNotCompare = new OpObjectNotCompareElements();
+ this.pOpEquality = new OpEqualityElements();
+ this.pCRelationalExpression = new CRelationalExpressionElements();
+ this.pOpIsGreaterThanEqual = new OpIsGreaterThanEqualElements();
+ this.pOpIsLowerThanEqual = new OpIsLowerThanEqualElements();
+ this.pOpIsGreaterThan = new OpIsGreaterThanElements();
+ this.pOpIsLowerThan = new OpIsLowerThanElements();
+ this.pCUnaryOperation = new CUnaryOperationElements();
+ this.pOpNot = new OpNotElements();
+ this.pCOperationFeatureCall = new COperationFeatureCallElements();
+ this.pOpGetProperty = new OpGetPropertyElements();
+ this.pOpIsOn = new OpIsOnElements();
+ this.pOpGetContentsList = new OpGetContentsListElements();
+ this.pOpContentValue = new OpContentValueElements();
+ this.pOpIsActive = new OpIsActiveElements();
+ this.pOpGetAllocatables = new OpGetAllocatablesElements();
+ this.pOpAllocatedContent = new OpAllocatedContentElements();
+ this.pOpIsDisplayed = new OpIsDisplayedElements();
+ this.pOpIsHidden = new OpIsHiddenElements();
+ this.pOpDisplayingContent = new OpDisplayingContentElements();
+ this.pOpIsVisible = new OpIsVisibleElements();
+ this.pOpIsOutputted = new OpIsOutputtedElements();
+ this.pOpIsMuted = new OpIsMutedElements();
+ this.pOpOutputtingSound = new OpOutputtingSoundElements();
+ this.pOpIsSounding = new OpIsSoundingElements();
+ this.pOpIsAttenuated = new OpIsAttenuatedElements();
+ this.pOpHasComeEarlierThan = new OpHasComeEarlierThanElements();
+ this.pOpHasComeLaterThan = new OpHasComeLaterThanElements();
+ this.pOpStateValue = new OpStateValueElements();
+ this.pOpIsAllocatedTo = new OpIsAllocatedToElements();
+ this.pOpIsChanged = new OpIsChangedElements();
+ this.pOpIsTranslatedTo = new OpIsTranslatedToElements();
+ this.pOpIsDisplayedOn = new OpIsDisplayedOnElements();
+ this.pOpIsChangedDisplay = new OpIsChangedDisplayElements();
+ this.pOpIsTranslatedViewTo = new OpIsTranslatedViewToElements();
+ this.pOpIsOutputtedOn = new OpIsOutputtedOnElements();
+ this.pOpIsChangedOutput = new OpIsChangedOutputElements();
+ this.pOpIsTranslatedSoundTo = new OpIsTranslatedSoundToElements();
+ this.pOpIsTypeOf = new OpIsTypeOfElements();
+ this.pOpActiveContents = new OpActiveContentsElements();
+ this.pOpSizeOperator = new OpSizeOperatorElements();
+ this.pOpHasBeenDisplayed = new OpHasBeenDisplayedElements();
+ this.pOpActiveState = new OpActiveStateElements();
+ this.pOpGetState = new OpGetStateElements();
+ this.pOpMaxOperator = new OpMaxOperatorElements();
+ this.pOpMinOperator = new OpMinOperatorElements();
+ this.pOpSelectOperator = new OpSelectOperatorElements();
+ this.pOpStartOprator = new OpStartOpratorElements();
+ this.pOpStopOprator = new OpStopOpratorElements();
+ this.pOpActivateOprator = new OpActivateOpratorElements();
+ this.pCPrimaryExpression = new CPrimaryExpressionElements();
+ this.pAllInstanceOfExpression = new AllInstanceOfExpressionElements();
+ this.pNullExpression = new NullExpressionElements();
+ this.pPreviousModifier = new PreviousModifierElements();
+ this.pHideLowerPriority = new HideLowerPriorityElements();
+ this.pMuteLowerPriority = new MuteLowerPriorityElements();
+ this.pSetOfOperator = new SetOfOperatorElements();
+ this.pIfStatement = new IfStatementElements();
+ this.pForAllOperator = new ForAllOperatorElements();
+ this.pExistsOperator = new ExistsOperatorElements();
+ this.pLambdaExpression = new LambdaExpressionElements();
+ this.pVariable = new VariableElements();
+ this.pCObjectReference = new CObjectReferenceElements();
+ this.pCMemberFeatureReference = new CMemberFeatureReferenceElements();
+ this.pLetStatement = new LetStatementElements();
+ this.pComplexExpression = new ComplexExpressionElements();
+ this.pEnumExpression = new EnumExpressionElements();
+ this.pLoserTypeExpression = new LoserTypeExpressionElements();
+ this.pArbitrationPolicyExpression = new ArbitrationPolicyExpressionElements();
+ this.pViewContentSet = new ViewContentSetElements();
+ this.pSoundContentSet = new SoundContentSetElements();
+ this.pScene = new SceneElements();
+ this.pVerticalLayout = new VerticalLayoutElements();
+ this.pHorizontalLayout = new HorizontalLayoutElements();
+ this.pFixedPositionLayout = new FixedPositionLayoutElements();
+ this.pPositionContainer = new PositionContainerElements();
+ this.pEBoolean = new EBooleanElements();
+ this.pEInt = new EIntElements();
+ this.pEString = new EStringElements();
+ this.pRichString = new RichStringElements();
+ this.pQualifiedNameWithWildcard = new QualifiedNameWithWildcardElements();
+ this.pQualifiedName = new QualifiedNameElements();
+ this.pIdOrThis = new IdOrThisElements();
+ this.pValidID = new ValidIDElements();
+ this.eArbitrationPolicy = new ArbitrationPolicyElements();
+ this.eBasePoint = new BasePointElements();
+ this.eLoserType = new LoserTypeElements();
+ this.tID = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.ID");
+ this.tIDENTIFIER_START_IMPL = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.IDENTIFIER_START_IMPL");
+ this.tIDENTIFIER_PART_IMPL = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.IDENTIFIER_PART_IMPL");
+ this.tIDENTIFIER_DIGITS = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.IDENTIFIER_DIGITS");
+ this.tHEX_DIGIT = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.HEX_DIGIT");
+ this.tUNICODE_ESCAPE = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.UNICODE_ESCAPE");
+ this.tIDENTIFIER_PART = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.IDENTIFIER_PART");
+ this.tIDENTIFIER_START = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.IDENTIFIER_START");
+ this.tWS = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.WS");
+ this.tINT = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.INT");
+ this.tSTRING = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.STRING");
+ this.tRICH_STRING = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.RICH_STRING");
+ this.tML_COMMENT = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.ML_COMMENT");
+ this.tSL_COMMENT = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "rba.tool.editor.RBAModel.SL_COMMENT");
+ this.pConfigurationParserRule_OperatorWithMultipleOperand = new ConfigurationParserRule_OperatorWithMultipleOperandElements();
+ this.pConfigurationParserRule_AreaOperatorForConstraint = new ConfigurationParserRule_AreaOperatorForConstraintElements();
+ this.pContentOperatorsCommon = new ContentOperatorsCommonElements();
+ this.pConfigurationParserRule_ContentOperatorForConstraint = new ConfigurationParserRule_ContentOperatorForConstraintElements();
+ this.pConfigurationParserRule_ZoneOperatorForConstraint = new ConfigurationParserRule_ZoneOperatorForConstraintElements();
+ this.pSoundOperatorsCommon = new SoundOperatorsCommonElements();
+ this.pConfigurationParserRule_SoundOperatorForConstraint = new ConfigurationParserRule_SoundOperatorForConstraintElements();
+ this.pConfigurationParserRule_SceneOperatorForConstraint = new ConfigurationParserRule_SceneOperatorForConstraintElements();
+ this.pConfigurationParserRule_PropertyOperatorForConstraint = new ConfigurationParserRule_PropertyOperatorForConstraintElements();
+ }
+
+ protected Grammar internalFindGrammar(GrammarProvider grammarProvider) {
+ Grammar grammar = grammarProvider.getGrammar(this);
+ while (grammar != null) {
+ if ("rba.tool.editor.RBAModel".equals(grammar.getName())) {
+ return grammar;
+ }
+ List<Grammar> grammars = grammar.getUsedGrammars();
+ if (!grammars.isEmpty()) {
+ grammar = grammars.iterator().next();
+ } else {
+ return null;
+ }
+ }
+ return grammar;
+ }
+
+ @Override
+ public Grammar getGrammar() {
+ return grammar;
+ }
+
+
+
+ ///* Top Level */ TopLevel:
+ // {TopLevel} ('module' QualifiedName)?
+ // project+=Project*
+ // imports+=Import*
+ // packages+=Package*;
+ public TopLevelElements getTopLevelAccess() {
+ return pTopLevel;
+ }
+
+ public ParserRule getTopLevelRule() {
+ return getTopLevelAccess().getRule();
+ }
+
+ //Import:
+ // 'import' importedNamespace=QualifiedNameWithWildcard;
+ public ImportElements getImportAccess() {
+ return pImport;
+ }
+
+ public ParserRule getImportRule() {
+ return getImportAccess().getRule();
+ }
+
+ ///* Abstract Structured Data Type */ PackagableElement rbacore::PackagableElement:
+ // Package | Stereotype | RuleObject | Display | AbstractConstraint | Size;
+ public PackagableElementElements getPackagableElementAccess() {
+ return pPackagableElement;
+ }
+
+ public ParserRule getPackagableElementRule() {
+ return getPackagableElementAccess().getRule();
+ }
+
+ //AbstractConstraint rbacore::AbstractConstraint:
+ // Constraint;
+ public AbstractConstraintElements getAbstractConstraintAccess() {
+ return pAbstractConstraint;
+ }
+
+ public ParserRule getAbstractConstraintRule() {
+ return getAbstractConstraintAccess().getRule();
+ }
+
+ //SizeIdentifier rbaview::SizeIdentifier:
+ // SizeReference | Size;
+ public SizeIdentifierElements getSizeIdentifierAccess() {
+ return pSizeIdentifier;
+ }
+
+ public ParserRule getSizeIdentifierRule() {
+ return getSizeIdentifierAccess().getRule();
+ }
+
+ //RuleObject rbacore::RuleObject:
+ // AbstractContent | AbstractScene | AbstractAllocatable;
+ public RuleObjectElements getRuleObjectAccess() {
+ return pRuleObject;
+ }
+
+ public ParserRule getRuleObjectRule() {
+ return getRuleObjectAccess().getRule();
+ }
+
+ //AbstractAllocatable rbacore::AbstractAllocatable:
+ // Allocatable | AllocatableSet;
+ public AbstractAllocatableElements getAbstractAllocatableAccess() {
+ return pAbstractAllocatable;
+ }
+
+ public ParserRule getAbstractAllocatableRule() {
+ return getAbstractAllocatableAccess().getRule();
+ }
+
+ //Allocatable rbacore::Allocatable:
+ // Area | Zone;
+ public AllocatableElements getAllocatableAccess() {
+ return pAllocatable;
+ }
+
+ public ParserRule getAllocatableRule() {
+ return getAllocatableAccess().getRule();
+ }
+
+ //AllocatableSet rbacore::AllocatableSet:
+ // AreaSet | ZoneSet;
+ public AllocatableSetElements getAllocatableSetAccess() {
+ return pAllocatableSet;
+ }
+
+ public ParserRule getAllocatableSetRule() {
+ return getAllocatableSetAccess().getRule();
+ }
+
+ //AbstractContent rbacore::AbstractContent:
+ // Content | ContentSet;
+ public AbstractContentElements getAbstractContentAccess() {
+ return pAbstractContent;
+ }
+
+ public ParserRule getAbstractContentRule() {
+ return getAbstractContentAccess().getRule();
+ }
+
+ //Content rbacore::Content:
+ // ViewContent | SoundContent;
+ public ContentElements getContentAccess() {
+ return pContent;
+ }
+
+ public ParserRule getContentRule() {
+ return getContentAccess().getRule();
+ }
+
+ //ContentSet rbacore::ContentSet:
+ // ViewContentSet | SoundContentSet;
+ public ContentSetElements getContentSetAccess() {
+ return pContentSet;
+ }
+
+ public ParserRule getContentSetRule() {
+ return getContentSetAccess().getRule();
+ }
+
+ //AbstractScene rbacore::AbstractScene:
+ // Scene;
+ public AbstractSceneElements getAbstractSceneAccess() {
+ return pAbstractScene;
+ }
+
+ public ParserRule getAbstractSceneRule() {
+ return getAbstractSceneAccess().getRule();
+ }
+
+ //AbstractProperty rbacore::AbstractProperty:
+ // ({rbacore::IntegerProperty} 'int') name=ValidID (':' value=IntegerValue)?;
+ public AbstractPropertyElements getAbstractPropertyAccess() {
+ return pAbstractProperty;
+ }
+
+ public ParserRule getAbstractPropertyRule() {
+ return getAbstractPropertyAccess().getRule();
+ }
+
+ //LayoutManager rbaview::LayoutManager:
+ // AlignedLayout | FixedPositionLayout;
+ public LayoutManagerElements getLayoutManagerAccess() {
+ return pLayoutManager;
+ }
+
+ public ParserRule getLayoutManagerRule() {
+ return getLayoutManagerAccess().getRule();
+ }
+
+ //AlignedLayout rbaview::AlignedLayout:
+ // VerticalLayout | HorizontalLayout;
+ public AlignedLayoutElements getAlignedLayoutAccess() {
+ return pAlignedLayout;
+ }
+
+ public ParserRule getAlignedLayoutRule() {
+ return getAlignedLayoutAccess().getRule();
+ }
+
+ ///* Structured Data Type */ Tag rbacore::Tag:
+ // => ({rbacore::Tag} '<<' name=QualifiedName '>>' | {CTag} '«' name=QualifiedName '»') ('{' (values+=EString (','
+ // values+=EString)*)? '}')?;
+ public TagElements getTagAccess() {
+ return pTag;
+ }
+
+ public ParserRule getTagRule() {
+ return getTagAccess().getRule();
+ }
+
+ //Package rbacore::Package:
+ // {rbacore::Package}
+ // 'Package'
+ // name=QualifiedName
+ // '{' (('description:' description=EString)? & packagableelement+=PackagableElement*) '}';
+ public PackageElements getPackageAccess() {
+ return pPackage;
+ }
+
+ public ParserRule getPackageRule() {
+ return getPackageAccess().getRule();
+ }
+
+ ///* Structured Data Type */ Stereotype rbacore::Stereotype:
+ // {rbacore::Stereotype}
+ // 'Stereotype' '<' targetModelName=StereotypableElementName '>'
+ // name=QualifiedName
+ // '(' (variables+=Variable (',' variables+=Variable)*)? ')'
+ // bodyText=RichString?;
+ public StereotypeElements getStereotypeAccess() {
+ return pStereotype;
+ }
+
+ public ParserRule getStereotypeRule() {
+ return getStereotypeAccess().getRule();
+ }
+
+ //StereotypableElementName:
+ // 'Area' | 'Zone' | 'SoundContent' | 'ViewContent';
+ public StereotypableElementNameElements getStereotypableElementNameAccess() {
+ return pStereotypableElementName;
+ }
+
+ public ParserRule getStereotypableElementNameRule() {
+ return getStereotypableElementNameAccess().getRule();
+ }
+
+ //Display rbaview::Display:
+ // {rbaview::Display}
+ // 'Display'
+ // name=QualifiedName
+ // '{' (('description:' description=EString)? & size=SizeIdentifier? & root=CompositeArea?) '}';
+ public DisplayElements getDisplayAccess() {
+ return pDisplay;
+ }
+
+ public ParserRule getDisplayRule() {
+ return getDisplayAccess().getRule();
+ }
+
+ //Constraint rbacore::Constraint:
+ // {rbacore::Constraint}
+ // 'Constraint'
+ // name=QualifiedName
+ // '{' (('description:' description=EString)? & ('runtime:' runtime=EBoolean)? & expression=ComplexExpression?) '}';
+ public ConstraintElements getConstraintAccess() {
+ return pConstraint;
+ }
+
+ public ParserRule getConstraintRule() {
+ return getConstraintAccess().getRule();
+ }
+
+ //ViewContent rbaview::ViewContent:
+ // {rbaview::ViewContent}
+ // 'ViewContent'
+ // name=QualifiedName
+ // '{' (('description:' description=EString)? & ('loserType:' loserType=LoserType)? & ('allocatable:' '['
+ // (allocatable+=[rbacore::AbstractAllocatable|QualifiedName] (","
+ // allocatable+=[rbacore::AbstractAllocatable|QualifiedName])*)? ']')? & states+=ViewContentState* &
+ // size+=SizeIdentifier* & tags+=Tag*) '}';
+ public ViewContentElements getViewContentAccess() {
+ return pViewContent;
+ }
+
+ public ParserRule getViewContentRule() {
+ return getViewContentAccess().getRule();
+ }
+
+ //SoundContent rbasound::SoundContent:
+ // {rbasound::SoundContent}
+ // 'SoundContent'
+ // name=QualifiedName
+ // '{' (('description:' description=EString)? & ('loserType:' loserType=LoserType)? & ('allocatable:' '['
+ // (allocatable+=[rbacore::AbstractAllocatable|QualifiedName] (","
+ // allocatable+=[rbacore::AbstractAllocatable|QualifiedName])*)? ']')? & states+=SoundContentState* & tags+=Tag*) '}';
+ public SoundContentElements getSoundContentAccess() {
+ return pSoundContent;
+ }
+
+ public ParserRule getSoundContentRule() {
+ return getSoundContentAccess().getRule();
+ }
+
+ //Size rbaview::Size:
+ // {rbaview::Size}
+ // 'Size'
+ // name=QualifiedName
+ // '{' (('description:' description=EString)? & ('width:' width=EInt)? & ('height:' height=EInt)?) '}';
+ public SizeElements getSizeAccess() {
+ return pSize;
+ }
+
+ public ParserRule getSizeRule() {
+ return getSizeAccess().getRule();
+ }
+
+ //SizeReference rbaview::SizeReference:
+ // {rbaview::SizeReference}
+ // 'sizeReference:' size=[rbaview::Size|QualifiedName];
+ public SizeReferenceElements getSizeReferenceAccess() {
+ return pSizeReference;
+ }
+
+ public ParserRule getSizeReferenceRule() {
+ return getSizeReferenceAccess().getRule();
+ }
+
+ //Offset rbaview::Offset:
+ // {rbaview::Offset}
+ // 'Offset'
+ // '{' (('description:' description=EString)? & ('x:' x=EInt)? & ('y:' y=EInt)? & size=SizeReference?) '}';
+ public OffsetElements getOffsetAccess() {
+ return pOffset;
+ }
+
+ public ParserRule getOffsetRule() {
+ return getOffsetAccess().getRule();
+ }
+
+ //AreaSet rbaview::AreaSet:
+ // {rbaview::AreaSet}
+ // 'AreaSet'
+ // name=QualifiedName
+ // '{' (('description:' description=EString)? & ('target:' '[' (target+=[rbacore::AbstractAllocatable|QualifiedName]
+ // ("," target+=[rbacore::AbstractAllocatable|QualifiedName])*)? ']')?) '}';
+ public AreaSetElements getAreaSetAccess() {
+ return pAreaSet;
+ }
+
+ public ParserRule getAreaSetRule() {
+ return getAreaSetAccess().getRule();
+ }
+
+ //ZoneSet rbasound::ZoneSet:
+ // {rbasound::ZoneSet}
+ // 'ZoneSet'
+ // name=QualifiedName
+ // '{' (('description:' description=EString)? & ('target:' '[' (target+=[rbacore::AbstractAllocatable|QualifiedName]
+ // ("," target+=[rbacore::AbstractAllocatable|QualifiedName])*)? ']')?) '}';
+ public ZoneSetElements getZoneSetAccess() {
+ return pZoneSet;
+ }
+
+ public ParserRule getZoneSetRule() {
+ return getZoneSetAccess().getRule();
+ }
+
+ //CompositeArea rbaview::CompositeArea:
+ // {rbaview::CompositeArea}
+ // 'CompositeArea'
+ // name=QualifiedName
+ // '{' (('description:' description=EString)? & ('layout:' layout=LayoutManager)?) '}';
+ public CompositeAreaElements getCompositeAreaAccess() {
+ return pCompositeArea;
+ }
+
+ public ParserRule getCompositeAreaRule() {
+ return getCompositeAreaAccess().getRule();
+ }
+
+ //Area rbaview::Area:
+ // {rbaview::Area}
+ // 'Area'
+ // name=QualifiedName
+ // '{' (('description:' description=EString)? & ('arbitrationPolicy:' arbitrationPolicy=ArbitrationPolicy)? &
+ // size+=SizeIdentifier* & (('visibility:' | 'priority:') visibility=VExpression)? & ('zorder:' zorder=VExpression)? &
+ // tags+=Tag*) '}';
+ public AreaElements getAreaAccess() {
+ return pArea;
+ }
+
+ public ParserRule getAreaRule() {
+ return getAreaAccess().getRule();
+ }
+
+ //Zone rbasound::Zone:
+ // {rbasound::Zone}
+ // 'Zone'
+ // name=QualifiedName
+ // '{' (('description:' description=EString)? & ('arbitrationPolicy:' arbitrationPolicy=ArbitrationPolicy)? &
+ // (('visibility:' | 'priority:') visibility=VExpression)? & ('attenuateValue:' attenuate=IntegerValue)? & tags+=Tag*)
+ // '}';
+ public ZoneElements getZoneAccess() {
+ return pZone;
+ }
+
+ public ParserRule getZoneRule() {
+ return getZoneAccess().getRule();
+ }
+
+ //ViewContentState rbaview::ViewContentState:
+ // {rbaview::ViewContentState}
+ // 'State'
+ // name=QualifiedName
+ // '{' (('description:' description=EString)? & (('priority:' | 'value:') value=VExpression)?) '}';
+ public ViewContentStateElements getViewContentStateAccess() {
+ return pViewContentState;
+ }
+
+ public ParserRule getViewContentStateRule() {
+ return getViewContentStateAccess().getRule();
+ }
+
+ //SoundContentState rbasound::SoundContentState:
+ // {rbasound::SoundContentState}
+ // 'State'
+ // name=QualifiedName
+ // '{' (('description:' description=EString)? & (('priority:' | 'value:') value=VExpression)?) '}';
+ public SoundContentStateElements getSoundContentStateAccess() {
+ return pSoundContentState;
+ }
+
+ public ParserRule getSoundContentStateRule() {
+ return getSoundContentStateAccess().getRule();
+ }
+
+ //Project rbacore::Project:
+ // {rbacore::Project}
+ // 'Project'
+ // dummyName=QualifiedName?
+ // '{'
+ // 'version:' version=EString
+ // '}';
+ public ProjectElements getProjectAccess() {
+ return pProject;
+ }
+
+ public ParserRule getProjectRule() {
+ return getProjectAccess().getRule();
+ }
+
+ ///* #######################################
+ // * Sort Value Expression(VExpression)
+ // * ####################################### */ VExpression rbacore::Expression:
+ // VPlusOperator;
+ public VExpressionElements getVExpressionAccess() {
+ return pVExpression;
+ }
+
+ public ParserRule getVExpressionRule() {
+ return getVExpressionAccess().getRule();
+ }
+
+ //VPlusOperator rbacore::Expression:
+ // VComparisonAnd (=> ({rbacore::PlusOperator.operand+=current} OpPlus) operand+=VComparisonAnd)*;
+ public VPlusOperatorElements getVPlusOperatorAccess() {
+ return pVPlusOperator;
+ }
+
+ public ParserRule getVPlusOperatorRule() {
+ return getVPlusOperatorAccess().getRule();
+ }
+
+ //OpPlus:
+ // '+';
+ public OpPlusElements getOpPlusAccess() {
+ return pOpPlus;
+ }
+
+ public ParserRule getOpPlusRule() {
+ return getOpPlusAccess().getRule();
+ }
+
+ //VComparisonAnd rbacore::Expression:
+ // VRelationalExpression (=> ({rbacore::ComparisonAnd.operand+=current} OpAnd) operand+=VRelationalExpression)*;
+ public VComparisonAndElements getVComparisonAndAccess() {
+ return pVComparisonAnd;
+ }
+
+ public ParserRule getVComparisonAndRule() {
+ return getVComparisonAndAccess().getRule();
+ }
+
+ //VRelationalExpression rbacore::Expression:
+ // VPrimaryExpression | {rbacore::MuchGreaterThanOperator} OpMuchGreaterThan operand+=VPrimaryExpression |
+ // {rbacore::EqualToOperator} OpEqualTo operand+=VPrimaryExpression | {rbacore::GreaterThanOperator} OpGreaterThan
+ // operand+=VPrimaryExpression | {rbacore::LowerThanOperator} OpLowerThan operand+=VPrimaryExpression;
+ public VRelationalExpressionElements getVRelationalExpressionAccess() {
+ return pVRelationalExpression;
+ }
+
+ public ParserRule getVRelationalExpressionRule() {
+ return getVRelationalExpressionAccess().getRule();
+ }
+
+ //OpMuchGreaterThan:
+ // '>>';
+ public OpMuchGreaterThanElements getOpMuchGreaterThanAccess() {
+ return pOpMuchGreaterThan;
+ }
+
+ public ParserRule getOpMuchGreaterThanRule() {
+ return getOpMuchGreaterThanAccess().getRule();
+ }
+
+ //OpEqualTo:
+ // '=';
+ public OpEqualToElements getOpEqualToAccess() {
+ return pOpEqualTo;
+ }
+
+ public ParserRule getOpEqualToRule() {
+ return getOpEqualToAccess().getRule();
+ }
+
+ //OpGreaterThan:
+ // '>';
+ public OpGreaterThanElements getOpGreaterThanAccess() {
+ return pOpGreaterThan;
+ }
+
+ public ParserRule getOpGreaterThanRule() {
+ return getOpGreaterThanAccess().getRule();
+ }
+
+ //OpLowerThan:
+ // '<';
+ public OpLowerThanElements getOpLowerThanAccess() {
+ return pOpLowerThan;
+ }
+
+ public ParserRule getOpLowerThanRule() {
+ return getOpLowerThanAccess().getRule();
+ }
+
+ //VPrimaryExpression rbacore::Expression:
+ // ThatOfOperator | VValueExpression |
+ // '(' VExpression ')';
+ public VPrimaryExpressionElements getVPrimaryExpressionAccess() {
+ return pVPrimaryExpression;
+ }
+
+ public ParserRule getVPrimaryExpressionRule() {
+ return getVPrimaryExpressionAccess().getRule();
+ }
+
+ //VValueExpression rbacore::Expression:
+ // IntegerValue | StandardValue | NoneValue | MinValue | MaxValue;
+ public VValueExpressionElements getVValueExpressionAccess() {
+ return pVValueExpression;
+ }
+
+ public ParserRule getVValueExpressionRule() {
+ return getVValueExpressionAccess().getRule();
+ }
+
+ //ThatOfOperator rbacore::Expression:
+ // {rbacore::ThatOfOperator} 'That-of' operand+=VMemberFeatureReference?;
+ public ThatOfOperatorElements getThatOfOperatorAccess() {
+ return pThatOfOperator;
+ }
+
+ public ParserRule getThatOfOperatorRule() {
+ return getThatOfOperatorAccess().getRule();
+ }
+
+ //VMemberFeatureReference rbacore::ObjectReference:
+ // {rbacore::ObjectReference} refObject=[rbacore::RuleObject|ValidID] ({MemberFeatureReference.operand+=current} '.'
+ // refObject=[rbacore::RuleObject|ValidID])*;
+ public VMemberFeatureReferenceElements getVMemberFeatureReferenceAccess() {
+ return pVMemberFeatureReference;
+ }
+
+ public ParserRule getVMemberFeatureReferenceRule() {
+ return getVMemberFeatureReferenceAccess().getRule();
+ }
+
+ //IntegerValue rbacore::IntegerValue:
+ // {rbacore::IntegerValue} value=EInt;
+ public IntegerValueElements getIntegerValueAccess() {
+ return pIntegerValue;
+ }
+
+ public ParserRule getIntegerValueRule() {
+ return getIntegerValueAccess().getRule();
+ }
+
+ //StandardValue rbacore::StandardValue:
+ // {rbacore::StandardValue}
+ // 'STANDARD_VALUE';
+ public StandardValueElements getStandardValueAccess() {
+ return pStandardValue;
+ }
+
+ public ParserRule getStandardValueRule() {
+ return getStandardValueAccess().getRule();
+ }
+
+ //NoneValue rbacore::NoneValue:
+ // {rbacore::NoneValue}
+ // 'NONE_VALUE';
+ public NoneValueElements getNoneValueAccess() {
+ return pNoneValue;
+ }
+
+ public ParserRule getNoneValueRule() {
+ return getNoneValueAccess().getRule();
+ }
+
+ //MinValue rbacore::MinValue:
+ // {rbacore::MinValue}
+ // 'MIN_VALUE';
+ public MinValueElements getMinValueAccess() {
+ return pMinValue;
+ }
+
+ public ParserRule getMinValueRule() {
+ return getMinValueAccess().getRule();
+ }
+
+ //MaxValue rbacore::MaxValue:
+ // {rbacore::MaxValue}
+ // 'MAX_VALUE';
+ public MaxValueElements getMaxValueAccess() {
+ return pMaxValue;
+ }
+
+ public ParserRule getMaxValueRule() {
+ return getMaxValueAccess().getRule();
+ }
+
+ ///* #######################################
+ // * Constraint Expression(CExpression)
+ // * ####################################### */ CExpression rbacore::Expression:
+ // CImpliesOperator;
+ public CExpressionElements getCExpressionAccess() {
+ return pCExpression;
+ }
+
+ public ParserRule getCExpressionRule() {
+ return getCExpressionAccess().getRule();
+ }
+
+ //CImpliesOperator rbacore::Expression:
+ // COrOperator (=> ({rbacore::ImpliesOperator.operand+=current} OpImplies) operand+=COrOperator)*;
+ public CImpliesOperatorElements getCImpliesOperatorAccess() {
+ return pCImpliesOperator;
+ }
+
+ public ParserRule getCImpliesOperatorRule() {
+ return getCImpliesOperatorAccess().getRule();
+ }
+
+ //OpImplies:
+ // '->';
+ public OpImpliesElements getOpImpliesAccess() {
+ return pOpImplies;
+ }
+
+ public ParserRule getOpImpliesRule() {
+ return getOpImpliesAccess().getRule();
+ }
+
+ //COrOperator rbacore::Expression:
+ // CAndOperator (=> ({rbacore::OrOperator.operand+=current} OpOr) operand+=CAndOperator)*;
+ public COrOperatorElements getCOrOperatorAccess() {
+ return pCOrOperator;
+ }
+
+ public ParserRule getCOrOperatorRule() {
+ return getCOrOperatorAccess().getRule();
+ }
+
+ //OpOr:
+ // 'OR';
+ public OpOrElements getOpOrAccess() {
+ return pOpOr;
+ }
+
+ public ParserRule getOpOrRule() {
+ return getOpOrAccess().getRule();
+ }
+
+ //CAndOperator rbacore::Expression:
+ // CEqualityExpression (=> ({rbacore::AndOperator.operand+=current} OpAnd) operand+=CEqualityExpression)*;
+ public CAndOperatorElements getCAndOperatorAccess() {
+ return pCAndOperator;
+ }
+
+ public ParserRule getCAndOperatorRule() {
+ return getCAndOperatorAccess().getRule();
+ }
+
+ //OpAnd:
+ // 'AND';
+ public OpAndElements getOpAndAccess() {
+ return pOpAnd;
+ }
+
+ public ParserRule getOpAndRule() {
+ return getOpAndAccess().getRule();
+ }
+
+ //CEqualityExpression rbacore::Expression:
+ // CRelationalExpression (=> ({rbacore::ObjectCompare.operand+=current} OpObjectCompare |
+ // {rbacore::ObjectCompareNot.operand+=current} OpObjectNotCompare | {rbacore::IsEqualToOperator.operand+=current}
+ // OpEquality) operand+=CRelationalExpression)*;
+ public CEqualityExpressionElements getCEqualityExpressionAccess() {
+ return pCEqualityExpression;
+ }
+
+ public ParserRule getCEqualityExpressionRule() {
+ return getCEqualityExpressionAccess().getRule();
+ }
+
+ //OpObjectCompare:
+ // '==';
+ public OpObjectCompareElements getOpObjectCompareAccess() {
+ return pOpObjectCompare;
+ }
+
+ public ParserRule getOpObjectCompareRule() {
+ return getOpObjectCompareAccess().getRule();
+ }
+
+ //OpObjectNotCompare:
+ // '!=';
+ public OpObjectNotCompareElements getOpObjectNotCompareAccess() {
+ return pOpObjectNotCompare;
+ }
+
+ public ParserRule getOpObjectNotCompareRule() {
+ return getOpObjectNotCompareAccess().getRule();
+ }
+
+ //OpEquality:
+ // '=';
+ public OpEqualityElements getOpEqualityAccess() {
+ return pOpEquality;
+ }
+
+ public ParserRule getOpEqualityRule() {
+ return getOpEqualityAccess().getRule();
+ }
+
+ //CRelationalExpression rbacore::Expression:
+ // CUnaryOperation (=> ({rbacore::IsGreaterThanEqualOperator.operand+=current} OpIsGreaterThanEqual |
+ // {rbacore::IsLowerThanEqualOperator.operand+=current} OpIsLowerThanEqual |
+ // {rbacore::IsGreaterThanOperator.operand+=current} OpIsGreaterThan | {rbacore::IsLowerThanOperator.operand+=current}
+ // OpIsLowerThan) operand+=CUnaryOperation)*;
+ public CRelationalExpressionElements getCRelationalExpressionAccess() {
+ return pCRelationalExpression;
+ }
+
+ public ParserRule getCRelationalExpressionRule() {
+ return getCRelationalExpressionAccess().getRule();
+ }
+
+ //OpIsGreaterThanEqual:
+ // '>=';
+ public OpIsGreaterThanEqualElements getOpIsGreaterThanEqualAccess() {
+ return pOpIsGreaterThanEqual;
+ }
+
+ public ParserRule getOpIsGreaterThanEqualRule() {
+ return getOpIsGreaterThanEqualAccess().getRule();
+ }
+
+ //OpIsLowerThanEqual:
+ // '<=';
+ public OpIsLowerThanEqualElements getOpIsLowerThanEqualAccess() {
+ return pOpIsLowerThanEqual;
+ }
+
+ public ParserRule getOpIsLowerThanEqualRule() {
+ return getOpIsLowerThanEqualAccess().getRule();
+ }
+
+ //OpIsGreaterThan:
+ // '>';
+ public OpIsGreaterThanElements getOpIsGreaterThanAccess() {
+ return pOpIsGreaterThan;
+ }
+
+ public ParserRule getOpIsGreaterThanRule() {
+ return getOpIsGreaterThanAccess().getRule();
+ }
+
+ //OpIsLowerThan:
+ // '<';
+ public OpIsLowerThanElements getOpIsLowerThanAccess() {
+ return pOpIsLowerThan;
+ }
+
+ public ParserRule getOpIsLowerThanRule() {
+ return getOpIsLowerThanAccess().getRule();
+ }
+
+ //CUnaryOperation rbacore::Expression:
+ // {rbacore::NotOperator} OpNot operand+=CUnaryOperation | COperationFeatureCall;
+ public CUnaryOperationElements getCUnaryOperationAccess() {
+ return pCUnaryOperation;
+ }
+
+ public ParserRule getCUnaryOperationRule() {
+ return getCUnaryOperationAccess().getRule();
+ }
+
+ //OpNot:
+ // "!";
+ public OpNotElements getOpNotAccess() {
+ return pOpNot;
+ }
+
+ public ParserRule getOpNotRule() {
+ return getOpNotAccess().getRule();
+ }
+
+ //COperationFeatureCall rbacore::Expression:
+ // CPrimaryExpression (=> (".") (({rbacore::GetProperty.operand+=current} OpGetProperty |
+ // {rbacore::IsOn.operand+=current} OpIsOn | {rbacore::GetContentsList.operand+=current} OpGetContentsList |
+ // {rbacore::ContentValue.operand+=current} OpContentValue | {rbacore::IsActive.operand+=current} OpIsActive |
+ // {rbacore::GetAllocatables.operand+=current} OpGetAllocatables | {rbacore::AllocatedContent.operand+=current}
+ // OpAllocatedContent | {rbacore::HasComeEarlierThan.operand+=current} OpHasComeEarlierThan |
+ // {rbacore::HasComeLaterThan.operand+=current} OpHasComeLaterThan | {rbacore::StateValue.operand+=current} OpStateValue
+ // | {rbacore::ActiveContents.operand+=current} OpActiveContents | {rbacore::SizeOperator.operand+=current}
+ // OpSizeOperator | {rbacore::HasBeenDisplayed.operand+=current} OpHasBeenDisplayed |
+ // {rbacore::ActiveState.operand+=current} OpActiveState | {rbaview::IsDisplayed.operand+=current} OpIsDisplayed |
+ // {rbaview::IsHidden.operand+=current} OpIsHidden | {rbaview::DisplayingContent.operand+=current} OpDisplayingContent |
+ // {rbaview::IsVisible.operand+=current} OpIsVisible | {rbasound::IsOutputted.operand+=current} OpIsOutputted |
+ // {rbasound::IsMuted.operand+=current} OpIsMuted | {rbasound::OutputtingSound.operand+=current} OpOutputtingSound |
+ // {rbasound::IsSounding.operand+=current} OpIsSounding | {rbacore::IsAllocatedTo.operand+=current} OpIsAllocatedTo |
+ // {rbacore::IsChanged.operand+=current} OpIsChanged | {rbacore::IsTranslatedTo.operand+=current} OpIsTranslatedTo |
+ // {rbaview::IsDisplayedOn.operand+=current} OpIsDisplayedOn | {rbaview::IsChangedDisplay.operand+=current}
+ // OpIsChangedDisplay | {rbaview::IsTranslatedViewTo.operand+=current} OpIsTranslatedViewTo |
+ // {rbasound::IsOutputtedOn.operand+=current} OpIsOutputtedOn | {rbasound::IsChangedOutput.operand+=current}
+ // OpIsChangedOutput | {rbasound::IsTranslatedSoundTo.operand+=current} OpIsTranslatedSoundTo |
+ // {rbasound::IsAttenuated.operand+=current} OpIsAttenuated) => ('(' operand+=CExpression? ')') |
+ // ({rbacore::IsTypeOf.operand+=current} OpIsTypeOf) => ('(' tagName=EString? ')')?
+ // | ({rbacore::MaxOperator.operand+=current} OpMaxOperator lambda=LambdaExpression |
+ // {rbacore::MinOperator.operand+=current} OpMinOperator lambda=LambdaExpression |
+ // {rbacore::SelectOperator.operand+=current} OpSelectOperator lambda=LambdaExpression)))*;
+ public COperationFeatureCallElements getCOperationFeatureCallAccess() {
+ return pCOperationFeatureCall;
+ }
+
+ public ParserRule getCOperationFeatureCallRule() {
+ return getCOperationFeatureCallAccess().getRule();
+ }
+
+ //OpGetProperty:
+ // 'get';
+ public OpGetPropertyElements getOpGetPropertyAccess() {
+ return pOpGetProperty;
+ }
+
+ public ParserRule getOpGetPropertyRule() {
+ return getOpGetPropertyAccess().getRule();
+ }
+
+ //OpIsOn:
+ // 'isOn';
+ public OpIsOnElements getOpIsOnAccess() {
+ return pOpIsOn;
+ }
+
+ public ParserRule getOpIsOnRule() {
+ return getOpIsOnAccess().getRule();
+ }
+
+ //OpGetContentsList:
+ // 'contentsList';
+ public OpGetContentsListElements getOpGetContentsListAccess() {
+ return pOpGetContentsList;
+ }
+
+ public ParserRule getOpGetContentsListRule() {
+ return getOpGetContentsListAccess().getRule();
+ }
+
+ //OpContentValue:
+ // 'contentValue';
+ public OpContentValueElements getOpContentValueAccess() {
+ return pOpContentValue;
+ }
+
+ public ParserRule getOpContentValueRule() {
+ return getOpContentValueAccess().getRule();
+ }
+
+ //OpIsActive:
+ // 'isActive';
+ public OpIsActiveElements getOpIsActiveAccess() {
+ return pOpIsActive;
+ }
+
+ public ParserRule getOpIsActiveRule() {
+ return getOpIsActiveAccess().getRule();
+ }
+
+ //OpGetAllocatables:
+ // 'allocatables';
+ public OpGetAllocatablesElements getOpGetAllocatablesAccess() {
+ return pOpGetAllocatables;
+ }
+
+ public ParserRule getOpGetAllocatablesRule() {
+ return getOpGetAllocatablesAccess().getRule();
+ }
+
+ //OpAllocatedContent:
+ // 'allocatedContent';
+ public OpAllocatedContentElements getOpAllocatedContentAccess() {
+ return pOpAllocatedContent;
+ }
+
+ public ParserRule getOpAllocatedContentRule() {
+ return getOpAllocatedContentAccess().getRule();
+ }
+
+ //OpIsDisplayed:
+ // 'isDisplayed';
+ public OpIsDisplayedElements getOpIsDisplayedAccess() {
+ return pOpIsDisplayed;
+ }
+
+ public ParserRule getOpIsDisplayedRule() {
+ return getOpIsDisplayedAccess().getRule();
+ }
+
+ //OpIsHidden:
+ // 'isHidden';
+ public OpIsHiddenElements getOpIsHiddenAccess() {
+ return pOpIsHidden;
+ }
+
+ public ParserRule getOpIsHiddenRule() {
+ return getOpIsHiddenAccess().getRule();
+ }
+
+ //OpDisplayingContent:
+ // 'displayingContent';
+ public OpDisplayingContentElements getOpDisplayingContentAccess() {
+ return pOpDisplayingContent;
+ }
+
+ public ParserRule getOpDisplayingContentRule() {
+ return getOpDisplayingContentAccess().getRule();
+ }
+
+ //OpIsVisible:
+ // 'isVisible';
+ public OpIsVisibleElements getOpIsVisibleAccess() {
+ return pOpIsVisible;
+ }
+
+ public ParserRule getOpIsVisibleRule() {
+ return getOpIsVisibleAccess().getRule();
+ }
+
+ //OpIsOutputted:
+ // 'isOutputted';
+ public OpIsOutputtedElements getOpIsOutputtedAccess() {
+ return pOpIsOutputted;
+ }
+
+ public ParserRule getOpIsOutputtedRule() {
+ return getOpIsOutputtedAccess().getRule();
+ }
+
+ //OpIsMuted:
+ // 'isMuted';
+ public OpIsMutedElements getOpIsMutedAccess() {
+ return pOpIsMuted;
+ }
+
+ public ParserRule getOpIsMutedRule() {
+ return getOpIsMutedAccess().getRule();
+ }
+
+ //OpOutputtingSound:
+ // 'outputtingSound';
+ public OpOutputtingSoundElements getOpOutputtingSoundAccess() {
+ return pOpOutputtingSound;
+ }
+
+ public ParserRule getOpOutputtingSoundRule() {
+ return getOpOutputtingSoundAccess().getRule();
+ }
+
+ //OpIsSounding:
+ // 'isSounding';
+ public OpIsSoundingElements getOpIsSoundingAccess() {
+ return pOpIsSounding;
+ }
+
+ public ParserRule getOpIsSoundingRule() {
+ return getOpIsSoundingAccess().getRule();
+ }
+
+ //OpIsAttenuated:
+ // 'isAttenuated';
+ public OpIsAttenuatedElements getOpIsAttenuatedAccess() {
+ return pOpIsAttenuated;
+ }
+
+ public ParserRule getOpIsAttenuatedRule() {
+ return getOpIsAttenuatedAccess().getRule();
+ }
+
+ //OpHasComeEarlierThan:
+ // 'hasComeEarlierThan';
+ public OpHasComeEarlierThanElements getOpHasComeEarlierThanAccess() {
+ return pOpHasComeEarlierThan;
+ }
+
+ public ParserRule getOpHasComeEarlierThanRule() {
+ return getOpHasComeEarlierThanAccess().getRule();
+ }
+
+ //OpHasComeLaterThan:
+ // 'hasComeLaterThan';
+ public OpHasComeLaterThanElements getOpHasComeLaterThanAccess() {
+ return pOpHasComeLaterThan;
+ }
+
+ public ParserRule getOpHasComeLaterThanRule() {
+ return getOpHasComeLaterThanAccess().getRule();
+ }
+
+ //OpStateValue:
+ // 'stateValue';
+ public OpStateValueElements getOpStateValueAccess() {
+ return pOpStateValue;
+ }
+
+ public ParserRule getOpStateValueRule() {
+ return getOpStateValueAccess().getRule();
+ }
+
+ //OpIsAllocatedTo:
+ // 'isAllocatedTo';
+ public OpIsAllocatedToElements getOpIsAllocatedToAccess() {
+ return pOpIsAllocatedTo;
+ }
+
+ public ParserRule getOpIsAllocatedToRule() {
+ return getOpIsAllocatedToAccess().getRule();
+ }
+
+ //OpIsChanged:
+ // 'isChanged';
+ public OpIsChangedElements getOpIsChangedAccess() {
+ return pOpIsChanged;
+ }
+
+ public ParserRule getOpIsChangedRule() {
+ return getOpIsChangedAccess().getRule();
+ }
+
+ //OpIsTranslatedTo:
+ // 'isTranslatedTo';
+ public OpIsTranslatedToElements getOpIsTranslatedToAccess() {
+ return pOpIsTranslatedTo;
+ }
+
+ public ParserRule getOpIsTranslatedToRule() {
+ return getOpIsTranslatedToAccess().getRule();
+ }
+
+ //OpIsDisplayedOn:
+ // 'isDisplayedOn';
+ public OpIsDisplayedOnElements getOpIsDisplayedOnAccess() {
+ return pOpIsDisplayedOn;
+ }
+
+ public ParserRule getOpIsDisplayedOnRule() {
+ return getOpIsDisplayedOnAccess().getRule();
+ }
+
+ //OpIsChangedDisplay:
+ // 'isChangedDisplay';
+ public OpIsChangedDisplayElements getOpIsChangedDisplayAccess() {
+ return pOpIsChangedDisplay;
+ }
+
+ public ParserRule getOpIsChangedDisplayRule() {
+ return getOpIsChangedDisplayAccess().getRule();
+ }
+
+ //OpIsTranslatedViewTo:
+ // 'isTranslatedViewTo';
+ public OpIsTranslatedViewToElements getOpIsTranslatedViewToAccess() {
+ return pOpIsTranslatedViewTo;
+ }
+
+ public ParserRule getOpIsTranslatedViewToRule() {
+ return getOpIsTranslatedViewToAccess().getRule();
+ }
+
+ //OpIsOutputtedOn:
+ // 'isOutputtedOn';
+ public OpIsOutputtedOnElements getOpIsOutputtedOnAccess() {
+ return pOpIsOutputtedOn;
+ }
+
+ public ParserRule getOpIsOutputtedOnRule() {
+ return getOpIsOutputtedOnAccess().getRule();
+ }
+
+ //OpIsChangedOutput:
+ // 'isChangedOutput';
+ public OpIsChangedOutputElements getOpIsChangedOutputAccess() {
+ return pOpIsChangedOutput;
+ }
+
+ public ParserRule getOpIsChangedOutputRule() {
+ return getOpIsChangedOutputAccess().getRule();
+ }
+
+ //OpIsTranslatedSoundTo:
+ // 'isTranslatedSoundTo';
+ public OpIsTranslatedSoundToElements getOpIsTranslatedSoundToAccess() {
+ return pOpIsTranslatedSoundTo;
+ }
+
+ public ParserRule getOpIsTranslatedSoundToRule() {
+ return getOpIsTranslatedSoundToAccess().getRule();
+ }
+
+ //OpIsTypeOf:
+ // 'isTypeOf';
+ public OpIsTypeOfElements getOpIsTypeOfAccess() {
+ return pOpIsTypeOf;
+ }
+
+ public ParserRule getOpIsTypeOfRule() {
+ return getOpIsTypeOfAccess().getRule();
+ }
+
+ //OpActiveContents:
+ // 'activeContents';
+ public OpActiveContentsElements getOpActiveContentsAccess() {
+ return pOpActiveContents;
+ }
+
+ public ParserRule getOpActiveContentsRule() {
+ return getOpActiveContentsAccess().getRule();
+ }
+
+ //OpSizeOperator:
+ // 'size';
+ public OpSizeOperatorElements getOpSizeOperatorAccess() {
+ return pOpSizeOperator;
+ }
+
+ public ParserRule getOpSizeOperatorRule() {
+ return getOpSizeOperatorAccess().getRule();
+ }
+
+ //OpHasBeenDisplayed:
+ // 'hasBeenDisplayed';
+ public OpHasBeenDisplayedElements getOpHasBeenDisplayedAccess() {
+ return pOpHasBeenDisplayed;
+ }
+
+ public ParserRule getOpHasBeenDisplayedRule() {
+ return getOpHasBeenDisplayedAccess().getRule();
+ }
+
+ //OpActiveState:
+ // 'activeState';
+ public OpActiveStateElements getOpActiveStateAccess() {
+ return pOpActiveState;
+ }
+
+ public ParserRule getOpActiveStateRule() {
+ return getOpActiveStateAccess().getRule();
+ }
+
+ //OpGetState:
+ // 'state';
+ public OpGetStateElements getOpGetStateAccess() {
+ return pOpGetState;
+ }
+
+ public ParserRule getOpGetStateRule() {
+ return getOpGetStateAccess().getRule();
+ }
+
+ //OpMaxOperator:
+ // 'max';
+ public OpMaxOperatorElements getOpMaxOperatorAccess() {
+ return pOpMaxOperator;
+ }
+
+ public ParserRule getOpMaxOperatorRule() {
+ return getOpMaxOperatorAccess().getRule();
+ }
+
+ //OpMinOperator:
+ // 'min';
+ public OpMinOperatorElements getOpMinOperatorAccess() {
+ return pOpMinOperator;
+ }
+
+ public ParserRule getOpMinOperatorRule() {
+ return getOpMinOperatorAccess().getRule();
+ }
+
+ //OpSelectOperator:
+ // 'select';
+ public OpSelectOperatorElements getOpSelectOperatorAccess() {
+ return pOpSelectOperator;
+ }
+
+ public ParserRule getOpSelectOperatorRule() {
+ return getOpSelectOperatorAccess().getRule();
+ }
+
+ //OpStartOprator:
+ // 'start';
+ public OpStartOpratorElements getOpStartOpratorAccess() {
+ return pOpStartOprator;
+ }
+
+ public ParserRule getOpStartOpratorRule() {
+ return getOpStartOpratorAccess().getRule();
+ }
+
+ //OpStopOprator:
+ // 'stop';
+ public OpStopOpratorElements getOpStopOpratorAccess() {
+ return pOpStopOprator;
+ }
+
+ public ParserRule getOpStopOpratorRule() {
+ return getOpStopOpratorAccess().getRule();
+ }
+
+ //OpActivateOprator:
+ // 'activate';
+ public OpActivateOpratorElements getOpActivateOpratorAccess() {
+ return pOpActivateOprator;
+ }
+
+ public ParserRule getOpActivateOpratorRule() {
+ return getOpActivateOpratorAccess().getRule();
+ }
+
+ //CPrimaryExpression rbacore::Expression:
+ // CMemberFeatureReference | PreviousModifier | AllInstanceOfExpression | NullExpression | IntegerValue |
+ // MuteLowerPriority | HideLowerPriority | SetOfOperator | IfStatement | ForAllOperator | ExistsOperator |
+ // '(' CExpression ')';
+ public CPrimaryExpressionElements getCPrimaryExpressionAccess() {
+ return pCPrimaryExpression;
+ }
+
+ public ParserRule getCPrimaryExpressionRule() {
+ return getCPrimaryExpressionAccess().getRule();
+ }
+
+ //AllInstanceOfExpression rbacore::Expression:
+ // => ({rbaview::AllInstanceOfArea} 'ALL_AREAS' | {rbaview::AllInstanceOfViewContent} 'ALL_VIEWCONTENTS' |
+ // {rbasound::AllInstanceOfZone} 'ALL_ZONES' | {rbasound::AllInstanceOfSoundContent} 'ALL_SOUNDCONTENTS');
+ public AllInstanceOfExpressionElements getAllInstanceOfExpressionAccess() {
+ return pAllInstanceOfExpression;
+ }
+
+ public ParserRule getAllInstanceOfExpressionRule() {
+ return getAllInstanceOfExpressionAccess().getRule();
+ }
+
+ //NullExpression rbacore::Expression:
+ // => ({rbacore::NullExpression} 'NULL');
+ public NullExpressionElements getNullExpressionAccess() {
+ return pNullExpression;
+ }
+
+ public ParserRule getNullExpressionRule() {
+ return getNullExpressionAccess().getRule();
+ }
+
+ //PreviousModifier rbacore::PreviousModifier:
+ // {rbacore::PreviousModifier}
+ // '(pre)' objReference=CMemberFeatureReference;
+ public PreviousModifierElements getPreviousModifierAccess() {
+ return pPreviousModifier;
+ }
+
+ public ParserRule getPreviousModifierRule() {
+ return getPreviousModifierAccess().getRule();
+ }
+
+ //HideLowerPriority rbaview::HideLowerPriority:
+ // {rbaview::HideLowerPriority}
+ // 'HideLowerPriority' '(' operand+=CExpression ',' operand+=CExpression ')';
+ public HideLowerPriorityElements getHideLowerPriorityAccess() {
+ return pHideLowerPriority;
+ }
+
+ public ParserRule getHideLowerPriorityRule() {
+ return getHideLowerPriorityAccess().getRule();
+ }
+
+ //MuteLowerPriority rbasound::MuteLowerPriority:
+ // {rbasound::MuteLowerPriority}
+ // 'MuteLowerPriority' '(' operand+=CExpression ',' operand+=CExpression ')';
+ public MuteLowerPriorityElements getMuteLowerPriorityAccess() {
+ return pMuteLowerPriority;
+ }
+
+ public ParserRule getMuteLowerPriorityRule() {
+ return getMuteLowerPriorityAccess().getRule();
+ }
+
+ //SetOfOperator rbacore::SetOfOperator:
+ // {rbacore::SetOfOperator}
+ // '{' (operand+=CExpression (',' operand+=CExpression)*)? '}';
+ public SetOfOperatorElements getSetOfOperatorAccess() {
+ return pSetOfOperator;
+ }
+
+ public ParserRule getSetOfOperatorRule() {
+ return getSetOfOperatorAccess().getRule();
+ }
+
+ //IfStatement rbacore::IfStatement:
+ // {rbacore::IfStatement}
+ // 'IF' '(' condition=CExpression? ')' (=> 'THEN' thenExpression=CExpression)? (=> 'ELSE' elseExpression=CExpression)?;
+ public IfStatementElements getIfStatementAccess() {
+ return pIfStatement;
+ }
+
+ public ParserRule getIfStatementRule() {
+ return getIfStatementAccess().getRule();
+ }
+
+ //ForAllOperator rbacore::ForAllOperator:
+ // {rbacore::ForAllOperator}
+ // 'For-All' operand+=CExpression lambda=LambdaExpression;
+ public ForAllOperatorElements getForAllOperatorAccess() {
+ return pForAllOperator;
+ }
+
+ public ParserRule getForAllOperatorRule() {
+ return getForAllOperatorAccess().getRule();
+ }
+
+ //ExistsOperator rbacore::ExistsOperator:
+ // {rbacore::ExistsOperator}
+ // 'Exists' operand+=CExpression lambda=LambdaExpression;
+ public ExistsOperatorElements getExistsOperatorAccess() {
+ return pExistsOperator;
+ }
+
+ public ParserRule getExistsOperatorRule() {
+ return getExistsOperatorAccess().getRule();
+ }
+
+ //// Other
+ //LambdaExpression rbacore::LambdaExpression:
+ // => ({rbacore::LambdaExpression}
+ // '{') (x=Variable? '|')?
+ // letStatements+=LetStatement*
+ // bodyText=CExpression
+ // '}';
+ public LambdaExpressionElements getLambdaExpressionAccess() {
+ return pLambdaExpression;
+ }
+
+ public ParserRule getLambdaExpressionRule() {
+ return getLambdaExpressionAccess().getRule();
+ }
+
+ //Variable rbacore::Variable:
+ // {rbacore::Variable} name=QualifiedName;
+ public VariableElements getVariableAccess() {
+ return pVariable;
+ }
+
+ public ParserRule getVariableRule() {
+ return getVariableAccess().getRule();
+ }
+
+ //CObjectReference rbacore::ObjectReference:
+ // {rbacore::ObjectReference} refObject=[rbacore::RuleObject|IdOrThis];
+ public CObjectReferenceElements getCObjectReferenceAccess() {
+ return pCObjectReference;
+ }
+
+ public ParserRule getCObjectReferenceRule() {
+ return getCObjectReferenceAccess().getRule();
+ }
+
+ //CMemberFeatureReference rbacore::ObjectReference:
+ // {rbacore::ObjectReference} refObject=[rbacore::RuleObject|IdOrThis] ({MemberFeatureReference.operand+=current} '.'
+ // refObject=[rbacore::RuleObject|ValidID])*;
+ public CMemberFeatureReferenceElements getCMemberFeatureReferenceAccess() {
+ return pCMemberFeatureReference;
+ }
+
+ public ParserRule getCMemberFeatureReferenceRule() {
+ return getCMemberFeatureReferenceAccess().getRule();
+ }
+
+ //LetStatement rbacore::LetStatement:
+ // {rbacore::LetStatement} 'let' => variable=Variable ('=' body=CExpression)?;
+ public LetStatementElements getLetStatementAccess() {
+ return pLetStatement;
+ }
+
+ public ParserRule getLetStatementRule() {
+ return getLetStatementAccess().getRule();
+ }
+
+ //ComplexExpression rbacore::ComplexExpression:
+ // {rbacore::ComplexExpression} letStatements+=LetStatement*
+ // otherExpression=CExpression;
+ public ComplexExpressionElements getComplexExpressionAccess() {
+ return pComplexExpression;
+ }
+
+ public ParserRule getComplexExpressionRule() {
+ return getComplexExpressionAccess().getRule();
+ }
+
+ //EnumExpression rbacore::EnumExpression:
+ // 'LoserType::' => LoserTypeExpression | 'ArbitrationPolicy::' => ArbitrationPolicyExpression;
+ public EnumExpressionElements getEnumExpressionAccess() {
+ return pEnumExpression;
+ }
+
+ public ParserRule getEnumExpressionRule() {
+ return getEnumExpressionAccess().getRule();
+ }
+
+ //LoserTypeExpression rbacore::LoserTypeExpression:
+ // {rbacore::LoserTypeExpression} value=LoserType;
+ public LoserTypeExpressionElements getLoserTypeExpressionAccess() {
+ return pLoserTypeExpression;
+ }
+
+ public ParserRule getLoserTypeExpressionRule() {
+ return getLoserTypeExpressionAccess().getRule();
+ }
+
+ //ArbitrationPolicyExpression rbacore::ArbitrationPolicyExpression:
+ // {rbacore::ArbitrationPolicyExpression} value=ArbitrationPolicy;
+ public ArbitrationPolicyExpressionElements getArbitrationPolicyExpressionAccess() {
+ return pArbitrationPolicyExpression;
+ }
+
+ public ParserRule getArbitrationPolicyExpressionRule() {
+ return getArbitrationPolicyExpressionAccess().getRule();
+ }
+
+ //// ################################################################################################ //
+ //ViewContentSet rbaview::ViewContentSet:
+ // {rbaview::ViewContentSet}
+ // 'ViewContentSet'
+ // name=QualifiedName
+ // '{' (('description:' description=EString)? & ('target:' '[' (target+=[rbacore::AbstractContent|QualifiedName] (","
+ // target+=[rbacore::AbstractContent|QualifiedName])*)? ']')? & ('allocatable:' '['
+ // (allocatable+=[rbacore::AbstractAllocatable|QualifiedName] (","
+ // allocatable+=[rbacore::AbstractAllocatable|QualifiedName])*)? ']')?) '}';
+ public ViewContentSetElements getViewContentSetAccess() {
+ return pViewContentSet;
+ }
+
+ public ParserRule getViewContentSetRule() {
+ return getViewContentSetAccess().getRule();
+ }
+
+ //SoundContentSet rbasound::SoundContentSet:
+ // {rbasound::SoundContentSet}
+ // 'SoundContentSet'
+ // name=QualifiedName
+ // '{' (('description:' description=EString)? & ('target:' '[' (target+=[rbacore::AbstractContent|QualifiedName] (","
+ // target+=[rbacore::AbstractContent|QualifiedName])*)? ']')? & ('allocatable:' '['
+ // (allocatable+=[rbacore::AbstractAllocatable|QualifiedName] (","
+ // allocatable+=[rbacore::AbstractAllocatable|QualifiedName])*)? ']')?) '}';
+ public SoundContentSetElements getSoundContentSetAccess() {
+ return pSoundContentSet;
+ }
+
+ public ParserRule getSoundContentSetRule() {
+ return getSoundContentSetAccess().getRule();
+ }
+
+ //Scene rbacore::Scene:
+ // {rbacore::Scene}
+ // 'Scene'
+ // name=QualifiedName
+ // '{' (('description:' description=EString)? & ('global:' global=EBoolean)? & properties+=AbstractProperty*) '}';
+ public SceneElements getSceneAccess() {
+ return pScene;
+ }
+
+ public ParserRule getSceneRule() {
+ return getSceneAccess().getRule();
+ }
+
+ //VerticalLayout rbaview::VerticalLayout:
+ // {rbaview::VerticalLayout}
+ // 'VerticalLayout'
+ // '{' (('basePoint:' basePoint=BasePoint)? & ('subarea:' '[' (subarea+=[rbaview::Area|QualifiedName] (","
+ // subarea+=[rbaview::Area|QualifiedName])*)? ']')?) '}';
+ public VerticalLayoutElements getVerticalLayoutAccess() {
+ return pVerticalLayout;
+ }
+
+ public ParserRule getVerticalLayoutRule() {
+ return getVerticalLayoutAccess().getRule();
+ }
+
+ //HorizontalLayout rbaview::HorizontalLayout:
+ // {rbaview::HorizontalLayout}
+ // 'HorizontalLayout'
+ // '{' (('basePoint:' basePoint=BasePoint)? & ('subarea:' '[' (subarea+=[rbaview::Area|QualifiedName] (","
+ // subarea+=[rbaview::Area|QualifiedName])*)? ']')?) '}';
+ public HorizontalLayoutElements getHorizontalLayoutAccess() {
+ return pHorizontalLayout;
+ }
+
+ public ParserRule getHorizontalLayoutRule() {
+ return getHorizontalLayoutAccess().getRule();
+ }
+
+ //FixedPositionLayout rbaview::FixedPositionLayout:
+ // {rbaview::FixedPositionLayout}
+ // 'FixedPositionLayout'
+ // '{'
+ // subAreaPosition+=PositionContainer*
+ // '}';
+ public FixedPositionLayoutElements getFixedPositionLayoutAccess() {
+ return pFixedPositionLayout;
+ }
+
+ public ParserRule getFixedPositionLayoutRule() {
+ return getFixedPositionLayoutAccess().getRule();
+ }
+
+ //PositionContainer rbaview::PositionContainer:
+ // {rbaview::PositionContainer}
+ // 'PositionContainer'
+ // '{' (('x:' x=EInt)? & ('y:' y=EInt)? & ('basePoint:' basePoint=BasePoint)? & ('areaReference:'
+ // area=[rbaview::Area|QualifiedName])? & offset+=Offset*) '}';
+ public PositionContainerElements getPositionContainerAccess() {
+ return pPositionContainer;
+ }
+
+ public ParserRule getPositionContainerRule() {
+ return getPositionContainerAccess().getRule();
+ }
+
+ ///* Primitive Data Type */ EBoolean ecore::EBoolean:
+ // 'true' | 'false';
+ public EBooleanElements getEBooleanAccess() {
+ return pEBoolean;
+ }
+
+ public ParserRule getEBooleanRule() {
+ return getEBooleanAccess().getRule();
+ }
+
+ //EInt ecore::EInt:
+ // '-'? INT;
+ public EIntElements getEIntAccess() {
+ return pEInt;
+ }
+
+ public ParserRule getEIntRule() {
+ return getEIntAccess().getRule();
+ }
+
+ //EString:
+ // STRING;
+ public EStringElements getEStringAccess() {
+ return pEString;
+ }
+
+ public ParserRule getEStringRule() {
+ return getEStringAccess().getRule();
+ }
+
+ //RichString:
+ // RICH_STRING;
+ public RichStringElements getRichStringAccess() {
+ return pRichString;
+ }
+
+ public ParserRule getRichStringRule() {
+ return getRichStringAccess().getRule();
+ }
+
+ //QualifiedNameWithWildcard:
+ // QualifiedName '.*'?;
+ public QualifiedNameWithWildcardElements getQualifiedNameWithWildcardAccess() {
+ return pQualifiedNameWithWildcard;
+ }
+
+ public ParserRule getQualifiedNameWithWildcardRule() {
+ return getQualifiedNameWithWildcardAccess().getRule();
+ }
+
+ //QualifiedName:
+ // ID ('.' ID)*;
+ public QualifiedNameElements getQualifiedNameAccess() {
+ return pQualifiedName;
+ }
+
+ public ParserRule getQualifiedNameRule() {
+ return getQualifiedNameAccess().getRule();
+ }
+
+ //IdOrThis:
+ // ValidID | 'this';
+ public IdOrThisElements getIdOrThisAccess() {
+ return pIdOrThis;
+ }
+
+ public ParserRule getIdOrThisRule() {
+ return getIdOrThisAccess().getRule();
+ }
+
+ //ValidID:
+ // ID;
+ public ValidIDElements getValidIDAccess() {
+ return pValidID;
+ }
+
+ public ParserRule getValidIDRule() {
+ return getValidIDAccess().getRule();
+ }
+
+ //enum ArbitrationPolicy returns rbacore::ArbitrationPolicy:
+ // DEFAULT | FIRST_COME_FIRST | LAST_COME_FIRST |
+ // PRIORITY_FIRST_COME_FIRST | PRIORITY_LAST_COME_FIRST;
+ public ArbitrationPolicyElements getArbitrationPolicyAccess() {
+ return eArbitrationPolicy;
+ }
+
+ public EnumRule getArbitrationPolicyRule() {
+ return getArbitrationPolicyAccess().getRule();
+ }
+
+ //enum BasePoint returns rbaview::BasePoint:
+ // LEFT_TOP | LEFT_MIDDLE | LEFT_BOTTOM | RIGHT_TOP |
+ // RIGHT_MIDDLE | RIGHT_BOTTOM | CENTER_TOP | CENTER_MIDDLE |
+ // CENTER_BOTTOM;
+ public BasePointElements getBasePointAccess() {
+ return eBasePoint;
+ }
+
+ public EnumRule getBasePointRule() {
+ return getBasePointAccess().getRule();
+ }
+
+ //enum LoserType returns rbacore::LoserType:
+ // NEVER_GIVEUP | GOOD_LOSER | DO_NOT_GIVEUP_UNTIL_WIN;
+ public LoserTypeElements getLoserTypeAccess() {
+ return eLoserType;
+ }
+
+ public EnumRule getLoserTypeRule() {
+ return getLoserTypeAccess().getRule();
+ }
+
+ //terminal ID:
+ // (IDENTIFIER_START | UNICODE_ESCAPE) (IDENTIFIER_PART | UNICODE_ESCAPE)*;
+ public TerminalRule getIDRule() {
+ return tID;
+ }
+
+ //terminal fragment IDENTIFIER_START_IMPL:
+ // '\\u0024'
+ // | '\\u0041'..'\\u005A'
+ // | '\\uff08'..'\\uff09'
+ // | '\\u005F'
+ // | '\\u0061'..'\\u007A'
+ // | '\\u00A2'..'\\u00A5'
+ // | '\\u00AA'
+ // | '\\u00B5'
+ // | '\\u00BA'
+ // | '\\u00C0'..'\\u00D6'
+ // | '\\u00D8'..'\\u00F6'
+ // | '\\u00F8'..'\\u0236'
+ // | '\\u0250'..'\\u02C1'
+ // | '\\u02C6'..'\\u02D1'
+ // | '\\u02E0'..'\\u02E4'
+ // | '\\u02EE'
+ // | '\\u037A'
+ // | '\\u0386'
+ // | '\\u0388'..'\\u038A'
+ // | '\\u038C'
+ // | '\\u038E'..'\\u03A1'
+ // | '\\u03A3'..'\\u03CE'
+ // | '\\u03D0'..'\\u03F5'
+ // | '\\u03F7'..'\\u03FB'
+ // | '\\u0400'..'\\u0481'
+ // | '\\u048A'..'\\u04CE'
+ // | '\\u04D0'..'\\u04F5'
+ // | '\\u04F8'..'\\u04F9'
+ // | '\\u0500'..'\\u050F'
+ // | '\\u0531'..'\\u0556'
+ // | '\\u0559'
+ // | '\\u0561'..'\\u0587'
+ // | '\\u05D0'..'\\u05EA'
+ // | '\\u05F0'..'\\u05F2'
+ // | '\\u0621'..'\\u063A'
+ // | '\\u0640'..'\\u064A'
+ // | '\\u066E'..'\\u066F'
+ // | '\\u0671'..'\\u06D3'
+ // | '\\u06D5'
+ // | '\\u06E5'..'\\u06E6'
+ // | '\\u06EE'..'\\u06EF'
+ // | '\\u06FA'..'\\u06FC'
+ // | '\\u06FF'
+ // | '\\u0710'
+ // | '\\u0712'..'\\u072F'
+ // | '\\u074D'..'\\u074F'
+ // | '\\u0780'..'\\u07A5'
+ // | '\\u07B1'
+ // | '\\u0904'..'\\u0939'
+ // | '\\u093D'
+ // | '\\u0950'
+ // | '\\u0958'..'\\u0961'
+ // | '\\u0985'..'\\u098C'
+ // | '\\u098F'..'\\u0990'
+ // | '\\u0993'..'\\u09A8'
+ // | '\\u09AA'..'\\u09B0'
+ // | '\\u09B2'
+ // | '\\u09B6'..'\\u09B9'
+ // | '\\u09BD'
+ // | '\\u09DC'..'\\u09DD'
+ // | '\\u09DF'..'\\u09E1'
+ // | '\\u09F0'..'\\u09F3'
+ // | '\\u0A05'..'\\u0A0A'
+ // | '\\u0A0F'..'\\u0A10'
+ // | '\\u0A13'..'\\u0A28'
+ // | '\\u0A2A'..'\\u0A30'
+ // | '\\u0A32'..'\\u0A33'
+ // | '\\u0A35'..'\\u0A36'
+ // | '\\u0A38'..'\\u0A39'
+ // | '\\u0A59'..'\\u0A5C'
+ // | '\\u0A5E'
+ // | '\\u0A72'..'\\u0A74'
+ // | '\\u0A85'..'\\u0A8D'
+ // | '\\u0A8F'..'\\u0A91'
+ // | '\\u0A93'..'\\u0AA8'
+ // | '\\u0AAA'..'\\u0AB0'
+ // | '\\u0AB2'..'\\u0AB3'
+ // | '\\u0AB5'..'\\u0AB9'
+ // | '\\u0ABD'
+ // | '\\u0AD0'
+ // | '\\u0AE0'..'\\u0AE1'
+ // | '\\u0AF1'
+ // | '\\u0B05'..'\\u0B0C'
+ // | '\\u0B0F'..'\\u0B10'
+ // | '\\u0B13'..'\\u0B28'
+ // | '\\u0B2A'..'\\u0B30'
+ // | '\\u0B32'..'\\u0B33'
+ // | '\\u0B35'..'\\u0B39'
+ // | '\\u0B3D'
+ // | '\\u0B5C'..'\\u0B5D'
+ // | '\\u0B5F'..'\\u0B61'
+ // | '\\u0B71'
+ // | '\\u0B83'
+ // | '\\u0B85'..'\\u0B8A'
+ // | '\\u0B8E'..'\\u0B90'
+ // | '\\u0B92'..'\\u0B95'
+ // | '\\u0B99'..'\\u0B9A'
+ // | '\\u0B9C'
+ // | '\\u0B9E'..'\\u0B9F'
+ // | '\\u0BA3'..'\\u0BA4'
+ // | '\\u0BA8'..'\\u0BAA'
+ // | '\\u0BAE'..'\\u0BB5'
+ // | '\\u0BB7'..'\\u0BB9'
+ // | '\\u0BF9'
+ // | '\\u0C05'..'\\u0C0C'
+ // | '\\u0C0E'..'\\u0C10'
+ // | '\\u0C12'..'\\u0C28'
+ // | '\\u0C2A'..'\\u0C33'
+ // | '\\u0C35'..'\\u0C39'
+ // | '\\u0C60'..'\\u0C61'
+ // | '\\u0C85'..'\\u0C8C'
+ // | '\\u0C8E'..'\\u0C90'
+ // | '\\u0C92'..'\\u0CA8'
+ // | '\\u0CAA'..'\\u0CB3'
+ // | '\\u0CB5'..'\\u0CB9'
+ // | '\\u0CBD'
+ // | '\\u0CDE'
+ // | '\\u0CE0'..'\\u0CE1'
+ // | '\\u0D05'..'\\u0D0C'
+ // | '\\u0D0E'..'\\u0D10'
+ // | '\\u0D12'..'\\u0D28'
+ // | '\\u0D2A'..'\\u0D39'
+ // | '\\u0D60'..'\\u0D61'
+ // | '\\u0D85'..'\\u0D96'
+ // | '\\u0D9A'..'\\u0DB1'
+ // | '\\u0DB3'..'\\u0DBB'
+ // | '\\u0DBD'
+ // | '\\u0DC0'..'\\u0DC6'
+ // | '\\u0E01'..'\\u0E30'
+ // | '\\u0E32'..'\\u0E33'
+ // | '\\u0E3F'..'\\u0E46'
+ // | '\\u0E81'..'\\u0E82'
+ // | '\\u0E84'
+ // | '\\u0E87'..'\\u0E88'
+ // | '\\u0E8A'
+ // | '\\u0E8D'
+ // | '\\u0E94'..'\\u0E97'
+ // | '\\u0E99'..'\\u0E9F'
+ // | '\\u0EA1'..'\\u0EA3'
+ // | '\\u0EA5'
+ // | '\\u0EA7'
+ // | '\\u0EAA'..'\\u0EAB'
+ // | '\\u0EAD'..'\\u0EB0'
+ // | '\\u0EB2'..'\\u0EB3'
+ // | '\\u0EBD'
+ // | '\\u0EC0'..'\\u0EC4'
+ // | '\\u0EC6'
+ // | '\\u0EDC'..'\\u0EDD'
+ // | '\\u0F00'
+ // | '\\u0F40'..'\\u0F47'
+ // | '\\u0F49'..'\\u0F6A'
+ // | '\\u0F88'..'\\u0F8B'
+ // | '\\u1000'..'\\u1021'
+ // | '\\u1023'..'\\u1027'
+ // | '\\u1029'..'\\u102A'
+ // | '\\u1050'..'\\u1055'
+ // | '\\u10A0'..'\\u10C5'
+ // | '\\u10D0'..'\\u10F8'
+ // | '\\u1100'..'\\u1159'
+ // | '\\u115F'..'\\u11A2'
+ // | '\\u11A8'..'\\u11F9'
+ // | '\\u1200'..'\\u1206'
+ // | '\\u1208'..'\\u1246'
+ // | '\\u1248'
+ // | '\\u124A'..'\\u124D'
+ // | '\\u1250'..'\\u1256'
+ // | '\\u1258'
+ // | '\\u125A'..'\\u125D'
+ // | '\\u1260'..'\\u1286'
+ // | '\\u1288'
+ // | '\\u128A'..'\\u128D'
+ // | '\\u1290'..'\\u12AE'
+ // | '\\u12B0'
+ // | '\\u12B2'..'\\u12B5'
+ // | '\\u12B8'..'\\u12BE'
+ // | '\\u12C0'
+ // | '\\u12C2'..'\\u12C5'
+ // | '\\u12C8'..'\\u12CE'
+ // | '\\u12D0'..'\\u12D6'
+ // | '\\u12D8'..'\\u12EE'
+ // | '\\u12F0'..'\\u130E'
+ // | '\\u1310'
+ // | '\\u1312'..'\\u1315'
+ // | '\\u1318'..'\\u131E'
+ // | '\\u1320'..'\\u1346'
+ // | '\\u1348'..'\\u135A'
+ // | '\\u13A0'..'\\u13F4'
+ // | '\\u1401'..'\\u166C'
+ // | '\\u166F'..'\\u1676'
+ // | '\\u1681'..'\\u169A'
+ // | '\\u16A0'..'\\u16EA'
+ // | '\\u16EE'..'\\u16F0'
+ // | '\\u1700'..'\\u170C'
+ // | '\\u170E'..'\\u1711'
+ // | '\\u1720'..'\\u1731'
+ // | '\\u1740'..'\\u1751'
+ // | '\\u1760'..'\\u176C'
+ // | '\\u176E'..'\\u1770'
+ // | '\\u1780'..'\\u17B3'
+ // | '\\u17D7'
+ // | '\\u17DB'..'\\u17DC'
+ // | '\\u1820'..'\\u1877'
+ // | '\\u1880'..'\\u18A8'
+ // | '\\u1900'..'\\u191C'
+ // | '\\u1950'..'\\u196D'
+ // | '\\u1970'..'\\u1974'
+ // | '\\u1D00'..'\\u1D6B'
+ // | '\\u1E00'..'\\u1E9B'
+ // | '\\u1EA0'..'\\u1EF9'
+ // | '\\u1F00'..'\\u1F15'
+ // | '\\u1F18'..'\\u1F1D'
+ // | '\\u1F20'..'\\u1F45'
+ // | '\\u1F48'..'\\u1F4D'
+ // | '\\u1F50'..'\\u1F57'
+ // | '\\u1F59'
+ // | '\\u1F5B'
+ // | '\\u1F5D'
+ // | '\\u1F5F'..'\\u1F7D'
+ // | '\\u1F80'..'\\u1FB4'
+ // | '\\u1FB6'..'\\u1FBC'
+ // | '\\u1FBE'
+ // | '\\u1FC2'..'\\u1FC4'
+ // | '\\u1FC6'..'\\u1FCC'
+ // | '\\u1FD0'..'\\u1FD3'
+ // | '\\u1FD6'..'\\u1FDB'
+ // | '\\u1FE0'..'\\u1FEC'
+ // | '\\u1FF2'..'\\u1FF4'
+ // | '\\u1FF6'..'\\u1FFC'
+ // | '\\u203F'..'\\u2040'
+ // | '\\u2054'
+ // | '\\u2071'
+ // | '\\u207F'
+ // | '\\u20A0'..'\\u20B1'
+ // | '\\u2102'
+ // | '\\u2107'
+ // | '\\u210A'..'\\u2113'
+ // | '\\u2115'
+ // | '\\u2119'..'\\u211D'
+ // | '\\u2124'
+ // | '\\u2126'
+ // | '\\u2128'
+ // | '\\u212A'..'\\u212D'
+ // | '\\u212F'..'\\u2131'
+ // | '\\u2133'..'\\u2139'
+ // | '\\u213D'..'\\u213F'
+ // | '\\u2145'..'\\u2149'
+ // | '\\u2160'..'\\u2183'
+ // | '\\u3005'..'\\u3007'
+ // | '\\u3021'..'\\u3029'
+ // | '\\u3031'..'\\u3035'
+ // | '\\u3038'..'\\u303C'
+ // | '\\u3041'..'\\u3096'
+ // | '\\u309D'..'\\u309F'
+ // | '\\u30A1'..'\\u30FF'
+ // | '\\u3105'..'\\u312C'
+ // | '\\u3131'..'\\u318E'
+ // | '\\u31A0'..'\\u31B7'
+ // | '\\u31F0'..'\\u31FF'
+ // | '\\u3400'..'\\u4DB5'
+ // | '\\u4E00'..'\\u9FA5'
+ // | '\\uA000'..'\\uA48C'
+ // | '\\uAC00'..'\\uD7A3'
+ // | '\\uF900'..'\\uFA2D'
+ // | '\\uFA30'..'\\uFA6A'
+ // | '\\uFB00'..'\\uFB06'
+ // | '\\uFB13'..'\\uFB17'
+ // | '\\uFB1D'
+ // | '\\uFB1F'..'\\uFB28'
+ // | '\\uFB2A'..'\\uFB36'
+ // | '\\uFB38'..'\\uFB3C'
+ // | '\\uFB3E'
+ // | '\\uFB40'..'\\uFB41'
+ // | '\\uFB43'..'\\uFB44'
+ // | '\\uFB46'..'\\uFBB1'
+ // | '\\uFBD3'..'\\uFD3D'
+ // | '\\uFD50'..'\\uFD8F'
+ // | '\\uFD92'..'\\uFDC7'
+ // | '\\uFDF0'..'\\uFDFC'
+ // | '\\uFE33'..'\\uFE34'
+ // | '\\uFE4D'..'\\uFE4F'
+ // | '\\uFE69'
+ // | '\\uFE70'..'\\uFE74'
+ // | '\\uFE76'..'\\uFEFC'
+ // | '\\uFF04'
+ // | '\\uFF1A'
+ // | '\\uFF21'..'\\uFF3A'
+ // | '\\uFF3F'
+ // | '\\uFF41'..'\\uFF5A'
+ // | '\\uFF65'..'\\uFFBE'
+ // | '\\uFFC2'..'\\uFFC7'
+ // | '\\uFFCA'..'\\uFFCF'
+ // | '\\uFFD2'..'\\uFFD7'
+ // | '\\uFFDA'..'\\uFFDC'
+ // | '\\uFFE0'..'\\uFFE1'
+ // | '\\uFFE5'..'\\uFFE6';
+ public TerminalRule getIDENTIFIER_START_IMPLRule() {
+ return tIDENTIFIER_START_IMPL;
+ }
+
+ //terminal fragment IDENTIFIER_PART_IMPL:
+ // '\\u0000'..'\\u0008'
+ // | '\\u000E'..'\\u001B'
+ // | '\\u007F'..'\\u009F'
+ // | '\\u00AD'
+ // | '\\u3001'..'\\u3002'
+ // | '\\u0300'..'\\u0357'
+ // | '\\u035D'..'\\u036F'
+ // | '\\u0483'..'\\u0486'
+ // | '\\u0591'..'\\u05A1'
+ // | '\\u05A3'..'\\u05B9'
+ // | '\\u05BB'..'\\u05BD'
+ // | '\\u05BF'
+ // | '\\u05C1'..'\\u05C2'
+ // | '\\u05C4'
+ // | '\\u0600'..'\\u0603'
+ // | '\\u0610'..'\\u0615'
+ // | '\\u064B'..'\\u0658'
+ // | '\\u0660'..'\\u0669'
+ // | '\\u0670'
+ // | '\\u06D6'..'\\u06DD'
+ // | '\\u06DF'..'\\u06E4'
+ // | '\\u06E7'..'\\u06E8'
+ // | '\\u06EA'..'\\u06ED'
+ // | '\\u06F0'..'\\u06F9'
+ // | '\\u070F'
+ // | '\\u0711'
+ // | '\\u0730'..'\\u074A'
+ // | '\\u07A6'..'\\u07B0'
+ // | '\\u0901'..'\\u0903'
+ // | '\\u093C'
+ // | '\\u093E'..'\\u094D'
+ // | '\\u0951'..'\\u0954'
+ // | '\\u0962'..'\\u0963'
+ // | '\\u0966'..'\\u096F'
+ // | '\\u0981'..'\\u0983'
+ // | '\\u09BC'
+ // | '\\u09BE'..'\\u09C4'
+ // | '\\u09C7'..'\\u09C8'
+ // | '\\u09CB'..'\\u09CD'
+ // | '\\u09D7'
+ // | '\\u09E2'..'\\u09E3'
+ // | '\\u09E6'..'\\u09EF'
+ // | '\\u0A01'..'\\u0A03'
+ // | '\\u0A3C'
+ // | '\\u0A3E'..'\\u0A42'
+ // | '\\u0A47'..'\\u0A48'
+ // | '\\u0A4B'..'\\u0A4D'
+ // | '\\u0A66'..'\\u0A71'
+ // | '\\u0A81'..'\\u0A83'
+ // | '\\u0ABC'
+ // | '\\u0ABE'..'\\u0AC5'
+ // | '\\u0AC7'..'\\u0AC9'
+ // | '\\u0ACB'..'\\u0ACD'
+ // | '\\u0AE2'..'\\u0AE3'
+ // | '\\u0AE6'..'\\u0AEF'
+ // | '\\u0B01'..'\\u0B03'
+ // | '\\u0B3C'
+ // | '\\u0B3E'..'\\u0B43'
+ // | '\\u0B47'..'\\u0B48'
+ // | '\\u0B4B'..'\\u0B4D'
+ // | '\\u0B56'..'\\u0B57'
+ // | '\\u0B66'..'\\u0B6F'
+ // | '\\u0B82'
+ // | '\\u0BBE'..'\\u0BC2'
+ // | '\\u0BC6'..'\\u0BC8'
+ // | '\\u0BCA'..'\\u0BCD'
+ // | '\\u0BD7'
+ // | '\\u0BE7'..'\\u0BEF'
+ // | '\\u0C01'..'\\u0C03'
+ // | '\\u0C3E'..'\\u0C44'
+ // | '\\u0C46'..'\\u0C48'
+ // | '\\u0C4A'..'\\u0C4D'
+ // | '\\u0C55'..'\\u0C56'
+ // | '\\u0C66'..'\\u0C6F'
+ // | '\\u0C82'..'\\u0C83'
+ // | '\\u0CBC'
+ // | '\\u0CBE'..'\\u0CC4'
+ // | '\\u0CC6'..'\\u0CC8'
+ // | '\\u0CCA'..'\\u0CCD'
+ // | '\\u0CD5'..'\\u0CD6'
+ // | '\\u0CE6'..'\\u0CEF'
+ // | '\\u0D02'..'\\u0D03'
+ // | '\\u0D3E'..'\\u0D43'
+ // | '\\u0D46'..'\\u0D48'
+ // | '\\u0D4A'..'\\u0D4D'
+ // | '\\u0D57'
+ // | '\\u0D66'..'\\u0D6F'
+ // | '\\u0D82'..'\\u0D83'
+ // | '\\u0DCA'
+ // | '\\u0DCF'..'\\u0DD4'
+ // | '\\u0DD6'
+ // | '\\u0DD8'..'\\u0DDF'
+ // | '\\u0DF2'..'\\u0DF3'
+ // | '\\u0E31'
+ // | '\\u0E34'..'\\u0E3A'
+ // | '\\u0E47'..'\\u0E4E'
+ // | '\\u0E50'..'\\u0E59'
+ // | '\\u0EB1'
+ // | '\\u0EB4'..'\\u0EB9'
+ // | '\\u0EBB'..'\\u0EBC'
+ // | '\\u0EC8'..'\\u0ECD'
+ // | '\\u0ED0'..'\\u0ED9'
+ // | '\\u0F18'..'\\u0F19'
+ // | '\\u0F20'..'\\u0F29'
+ // | '\\u0F35'
+ // | '\\u0F37'
+ // | '\\u0F39'
+ // | '\\u0F3E'..'\\u0F3F'
+ // | '\\u0F71'..'\\u0F84'
+ // | '\\u0F86'..'\\u0F87'
+ // | '\\u0F90'..'\\u0F97'
+ // | '\\u0F99'..'\\u0FBC'
+ // | '\\u0FC6'
+ // | '\\u102C'..'\\u1032'
+ // | '\\u1036'..'\\u1039'
+ // | '\\u1040'..'\\u1049'
+ // | '\\u1056'..'\\u1059'
+ // | '\\u1369'..'\\u1371'
+ // | '\\u1712'..'\\u1714'
+ // | '\\u1732'..'\\u1734'
+ // | '\\u1752'..'\\u1753'
+ // | '\\u1772'..'\\u1773'
+ // | '\\u17B4'..'\\u17D3'
+ // | '\\u17DD'
+ // | '\\u17E0'..'\\u17E9'
+ // | '\\u180B'..'\\u180D'
+ // | '\\u1810'..'\\u1819'
+ // | '\\u18A9'
+ // | '\\u1920'..'\\u192B'
+ // | '\\u1930'..'\\u193B'
+ // | '\\u1946'..'\\u194F'
+ // | '\\u200C'..'\\u200F'
+ // | '\\u202A'..'\\u202E'
+ // | '\\u2060'..'\\u2063'
+ // | '\\u206A'..'\\u206F'
+ // | '\\u20D0'..'\\u20DC'
+ // | '\\u20E1'
+ // | '\\u20E5'..'\\u20EA'
+ // | '\\u302A'..'\\u302F'
+ // | '\\u3099'..'\\u309A'
+ // | '\\uFB1E'
+ // | '\\uFE00'..'\\uFE0F'
+ // | '\\uFE20'..'\\uFE23'
+ // | '\\uFEFF'
+ // | '\\uFF10'..'\\uFF19'
+ // | '\\uFFF9'..'\\uFFFB';
+ public TerminalRule getIDENTIFIER_PART_IMPLRule() {
+ return tIDENTIFIER_PART_IMPL;
+ }
+
+ //terminal fragment IDENTIFIER_DIGITS:
+ // '\\u0030'..'\\u0039';
+ public TerminalRule getIDENTIFIER_DIGITSRule() {
+ return tIDENTIFIER_DIGITS;
+ }
+
+ //terminal fragment HEX_DIGIT:
+ // '0'..'9' | 'a'..'f' | 'A'..'F';
+ public TerminalRule getHEX_DIGITRule() {
+ return tHEX_DIGIT;
+ }
+
+ //terminal fragment UNICODE_ESCAPE:
+ // '\\' 'u' (HEX_DIGIT (HEX_DIGIT (HEX_DIGIT HEX_DIGIT?)?)?)?;
+ public TerminalRule getUNICODE_ESCAPERule() {
+ return tUNICODE_ESCAPE;
+ }
+
+ //terminal fragment IDENTIFIER_PART:
+ // IDENTIFIER_START_IMPL | IDENTIFIER_DIGITS | IDENTIFIER_PART_IMPL;
+ public TerminalRule getIDENTIFIER_PARTRule() {
+ return tIDENTIFIER_PART;
+ }
+
+ //terminal fragment IDENTIFIER_START:
+ // IDENTIFIER_START_IMPL | IDENTIFIER_PART_IMPL;
+ public TerminalRule getIDENTIFIER_STARTRule() {
+ return tIDENTIFIER_START;
+ }
+
+ //terminal WS:
+ // ' ' | '\t' | '\r' | '\n'+;
+ public TerminalRule getWSRule() {
+ return tWS;
+ }
+
+ //terminal INT returns ecore::EInt:
+ // '0'..'9'+;
+ public TerminalRule getINTRule() {
+ return tINT;
+ }
+
+ //terminal STRING:
+ // '"' ('\\' . | !('\\' | '"' | "'" | '\n' | '\r'))* '"';
+ public TerminalRule getSTRINGRule() {
+ return tSTRING;
+ }
+
+ //terminal RICH_STRING:
+ // '@BEGIN@'->'@END@';
+ public TerminalRule getRICH_STRINGRule() {
+ return tRICH_STRING;
+ }
+
+ //terminal ML_COMMENT:
+ // '/*'->'*/';
+ public TerminalRule getML_COMMENTRule() {
+ return tML_COMMENT;
+ }
+
+ //terminal SL_COMMENT:
+ // '//' !('\n' | '\r')* ('\r'? '\n')?;
+ public TerminalRule getSL_COMMENTRule() {
+ return tSL_COMMENT;
+ }
+
+ //ConfigurationParserRule_OperatorWithMultipleOperand:
+ // OpHasComeEarlierThan | OpHasComeLaterThan | OpIsAllocatedTo | OpIsTranslatedTo | OpIsDisplayedOn |
+ // OpIsTranslatedViewTo | OpIsOutputtedOn | OpIsTranslatedSoundTo | OpIsTypeOf;
+ public ConfigurationParserRule_OperatorWithMultipleOperandElements getConfigurationParserRule_OperatorWithMultipleOperandAccess() {
+ return pConfigurationParserRule_OperatorWithMultipleOperand;
+ }
+
+ public ParserRule getConfigurationParserRule_OperatorWithMultipleOperandRule() {
+ return getConfigurationParserRule_OperatorWithMultipleOperandAccess().getRule();
+ }
+
+ //ConfigurationParserRule_AreaOperatorForConstraint:
+ // OpAllocatedContent | OpContentValue | OpGetContentsList | OpIsDisplayed | OpDisplayingContent | OpIsHidden |
+ // OpIsChanged | OpIsTranslatedTo | OpIsChangedDisplay | OpIsTranslatedViewTo;
+ public ConfigurationParserRule_AreaOperatorForConstraintElements getConfigurationParserRule_AreaOperatorForConstraintAccess() {
+ return pConfigurationParserRule_AreaOperatorForConstraint;
+ }
+
+ public ParserRule getConfigurationParserRule_AreaOperatorForConstraintRule() {
+ return getConfigurationParserRule_AreaOperatorForConstraintAccess().getRule();
+ }
+
+ //ContentOperatorsCommon:
+ // OpIsActive | OpGetAllocatables | OpIsVisible | OpHasComeEarlierThan | OpHasComeLaterThan | OpStateValue |
+ // OpIsAllocatedTo | OpIsDisplayedOn;
+ public ContentOperatorsCommonElements getContentOperatorsCommonAccess() {
+ return pContentOperatorsCommon;
+ }
+
+ public ParserRule getContentOperatorsCommonRule() {
+ return getContentOperatorsCommonAccess().getRule();
+ }
+
+ //ConfigurationParserRule_ContentOperatorForConstraint:
+ // ContentOperatorsCommon;
+ public ConfigurationParserRule_ContentOperatorForConstraintElements getConfigurationParserRule_ContentOperatorForConstraintAccess() {
+ return pConfigurationParserRule_ContentOperatorForConstraint;
+ }
+
+ public ParserRule getConfigurationParserRule_ContentOperatorForConstraintRule() {
+ return getConfigurationParserRule_ContentOperatorForConstraintAccess().getRule();
+ }
+
+ //ConfigurationParserRule_ZoneOperatorForConstraint:
+ // OpAllocatedContent | OpContentValue | OpGetContentsList | OpIsOutputted | OpOutputtingSound | OpIsMuted |
+ // OpIsAttenuated | OpIsChanged | OpIsTranslatedTo | OpIsChangedOutput | OpIsTranslatedSoundTo;
+ public ConfigurationParserRule_ZoneOperatorForConstraintElements getConfigurationParserRule_ZoneOperatorForConstraintAccess() {
+ return pConfigurationParserRule_ZoneOperatorForConstraint;
+ }
+
+ public ParserRule getConfigurationParserRule_ZoneOperatorForConstraintRule() {
+ return getConfigurationParserRule_ZoneOperatorForConstraintAccess().getRule();
+ }
+
+ //SoundOperatorsCommon:
+ // OpIsActive | OpGetAllocatables | OpIsSounding | OpHasComeEarlierThan | OpHasComeLaterThan | OpStateValue |
+ // OpIsAllocatedTo | OpIsOutputtedOn;
+ public SoundOperatorsCommonElements getSoundOperatorsCommonAccess() {
+ return pSoundOperatorsCommon;
+ }
+
+ public ParserRule getSoundOperatorsCommonRule() {
+ return getSoundOperatorsCommonAccess().getRule();
+ }
+
+ //ConfigurationParserRule_SoundOperatorForConstraint:
+ // SoundOperatorsCommon;
+ public ConfigurationParserRule_SoundOperatorForConstraintElements getConfigurationParserRule_SoundOperatorForConstraintAccess() {
+ return pConfigurationParserRule_SoundOperatorForConstraint;
+ }
+
+ public ParserRule getConfigurationParserRule_SoundOperatorForConstraintRule() {
+ return getConfigurationParserRule_SoundOperatorForConstraintAccess().getRule();
+ }
+
+ //ConfigurationParserRule_SceneOperatorForConstraint:
+ // OpIsOn;
+ public ConfigurationParserRule_SceneOperatorForConstraintElements getConfigurationParserRule_SceneOperatorForConstraintAccess() {
+ return pConfigurationParserRule_SceneOperatorForConstraint;
+ }
+
+ public ParserRule getConfigurationParserRule_SceneOperatorForConstraintRule() {
+ return getConfigurationParserRule_SceneOperatorForConstraintAccess().getRule();
+ }
+
+ //ConfigurationParserRule_PropertyOperatorForConstraint:
+ // OpGetProperty;
+ public ConfigurationParserRule_PropertyOperatorForConstraintElements getConfigurationParserRule_PropertyOperatorForConstraintAccess() {
+ return pConfigurationParserRule_PropertyOperatorForConstraint;
+ }
+
+ public ParserRule getConfigurationParserRule_PropertyOperatorForConstraintRule() {
+ return getConfigurationParserRule_PropertyOperatorForConstraintAccess().getRule();
+ }
+}
diff --git a/rba.tool.editor/src-gen/rba/tool/editor/validation/AbstractRBAModelValidator.java b/rba.tool.editor/src-gen/rba/tool/editor/validation/AbstractRBAModelValidator.java
new file mode 100644
index 0000000..98b6a03
--- /dev/null
+++ b/rba.tool.editor/src-gen/rba/tool/editor/validation/AbstractRBAModelValidator.java
@@ -0,0 +1,23 @@
+/*
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.validation;
+
+import java.util.ArrayList;
+import java.util.List;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.xtext.validation.AbstractDeclarativeValidator;
+
+public abstract class AbstractRBAModelValidator extends AbstractDeclarativeValidator {
+
+ @Override
+ protected List<EPackage> getEPackages() {
+ List<EPackage> result = new ArrayList<EPackage>();
+ result.add(rba.tool.editor.rbaEditorModel.RbaEditorModelPackage.eINSTANCE);
+ result.add(EPackage.Registry.INSTANCE.getEPackage("http://www.denso.com/ict/rba/core"));
+ result.add(EPackage.Registry.INSTANCE.getEPackage("http://www.denso.com/ict/rba/view"));
+ result.add(EPackage.Registry.INSTANCE.getEPackage("http://www.denso.com/ict/rba/sound"));
+ return result;
+ }
+
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/GenerateRBAModel.mwe2 b/rba.tool.editor/src/rba/tool/editor/GenerateRBAModel.mwe2
new file mode 100644
index 0000000..c1354f5
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/GenerateRBAModel.mwe2
@@ -0,0 +1,74 @@
+module rba.tool.editor.GenerateRBAModel
+
+import org.eclipse.emf.mwe.utils.*
+import org.eclipse.xtext.xtext.generator.*
+import org.eclipse.xtext.xtext.generator.model.project.*
+
+var rootPath = ".."
+
+Workflow {
+
+ bean = StandaloneSetup {
+ scanClassPath = true
+ platformUri = "../"
+ registerGeneratedEPackage="rba.core.RBACorePackage"
+ registerGenModelFile="platform:/resource/rba.model.core/model/rbacore.genmodel"
+ registerGeneratedEPackage="rba.view.RBAViewPackage"
+ registerGenModelFile="platform:/resource/rba.model.view/model/rbaview.genmodel"
+ registerGeneratedEPackage="rba.sound.RBASoundPackage"
+ registerGenModelFile="platform:/resource/rba.model.sound/model/rbasound.genmodel"
+ }
+
+ component = XtextGenerator {
+ configuration = {
+ project = StandardProjectConfig {
+ baseName = "rba.tool.editor"
+ rootPath = rootPath
+ runtimeTest = {
+ enabled = false
+ }
+ eclipsePlugin = {
+ enabled = true
+ }
+ eclipsePluginTest = {
+ enabled = false
+ }
+ createEclipseMetaData = true
+ }
+ code = {
+ encoding = "UTF-8"
+ lineDelimiter = "\r\n"
+ fileHeader = "/*\n * generated by Xtext \${version}\n */"
+ }
+ }
+ language = StandardLanguage {
+ name = "rba.tool.editor.RBAModel"
+ fileExtensions = "rba"
+ grammarUri = "platform:/resource/rba.tool.editor/src/rba/tool/editor/RBAModel.xtext"
+
+ fragment = exporting.SimpleNamesFragment2 auto-inject {}
+ fragment = builder.BuilderIntegrationFragment2 auto-inject {}
+ fragment = scoping.ImportNamespacesScopingFragment2 auto-inject {}
+
+ serializer = {
+ generateStub = false
+ }
+ formatter = {
+ generateStub = true
+ }
+ validator = {
+ generateStub = true
+ }
+ // ジェネレーター機能
+ generator = {
+ generateStub = false
+ }
+ // ウィザード
+ newProjectWizardForEclipse = {
+ generate = true
+ pluginProject = false
+ }
+ }
+ }
+}
+
diff --git a/rba.tool.editor/src/rba/tool/editor/RBAModel.xtext b/rba.tool.editor/src/rba/tool/editor/RBAModel.xtext
new file mode 100644
index 0000000..a9022c1
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/RBAModel.xtext
@@ -0,0 +1,1196 @@
+grammar rba.tool.editor.RBAModel hidden(WS, ML_COMMENT, SL_COMMENT)
+
+import "http://www.eclipse.org/emf/2002/Ecore" as ecore
+import "http://www.denso.com/ict/rba/core" as rbacore
+import "http://www.denso.com/ict/rba/view" as rbaview
+import "http://www.denso.com/ict/rba/sound" as rbasound
+
+generate rbaEditorModel "http://www.denso.com/ict/rbatooleditor"
+
+/* Top Level */
+TopLevel:
+ {TopLevel} ('module' QualifiedName)?
+ (project+=Project)*
+ (imports+=Import)*
+ (packages+=Package)*;
+
+Import:
+ 'import' importedNamespace=QualifiedNameWithWildcard;
+
+/* Abstract Structured Data Type */
+
+PackagableElement returns rbacore::PackagableElement:
+ Package | Stereotype | RuleObject | Display | AbstractConstraint | Size;
+
+AbstractConstraint returns rbacore::AbstractConstraint:
+ Constraint;
+
+SizeIdentifier returns rbaview::SizeIdentifier:
+ SizeReference | Size;
+
+RuleObject returns rbacore::RuleObject:
+ AbstractContent | AbstractScene | AbstractAllocatable;
+
+AbstractAllocatable returns rbacore::AbstractAllocatable:
+ Allocatable | AllocatableSet;
+
+Allocatable returns rbacore::Allocatable:
+ Area | Zone;
+
+AllocatableSet returns rbacore::AllocatableSet:
+ AreaSet | ZoneSet;
+
+AbstractContent returns rbacore::AbstractContent:
+ Content | ContentSet;
+
+Content returns rbacore::Content:
+ ViewContent | SoundContent;
+
+ContentSet returns rbacore::ContentSet:
+ ViewContentSet | SoundContentSet;
+
+AbstractScene returns rbacore::AbstractScene:
+ Scene;
+
+AbstractProperty returns rbacore::AbstractProperty:
+ ({rbacore::IntegerProperty} 'int') name=ValidID (':' value=IntegerValue)?;
+
+LayoutManager returns rbaview::LayoutManager:
+ AlignedLayout | FixedPositionLayout;
+
+AlignedLayout returns rbaview::AlignedLayout:
+ VerticalLayout | HorizontalLayout;
+
+/* Structured Data Type */
+Tag returns rbacore::Tag:
+ =>(
+ ({rbacore::Tag} '<<' name=QualifiedName '>>') |
+ ({CTag} '«' name=QualifiedName '»')
+ ) ('{' (values+=EString (',' values+=EString)*)? '}')?;
+
+Package returns rbacore::Package:
+ {rbacore::Package}
+ 'Package'
+ name=QualifiedName
+ '{' (
+ ('description:' description=EString)? &
+ (packagableelement+=PackagableElement)*
+ ) '}';
+
+/* Structured Data Type */
+Stereotype returns rbacore::Stereotype:
+ {rbacore::Stereotype}
+ 'Stereotype' '<' targetModelName=StereotypableElementName '>'
+ name=QualifiedName
+ '(' (variables+=Variable (',' variables+=Variable)*)? ')'
+ (bodyText=RichString)?;
+
+StereotypableElementName:
+ 'Area' | 'Zone' | 'SoundContent' | 'ViewContent'
+;
+
+Display returns rbaview::Display:
+ {rbaview::Display}
+ 'Display'
+ name=QualifiedName
+ '{' (
+ ('description:' description=EString)? &
+ (size=SizeIdentifier)? &
+ (root=CompositeArea)?
+ ) '}';
+
+Constraint returns rbacore::Constraint:
+ {rbacore::Constraint}
+ 'Constraint'
+ name=QualifiedName
+ '{' (
+ ('description:' description=EString)? &
+ ('runtime:' runtime=EBoolean)? &
+ (expression=ComplexExpression)?
+ ) '}';
+
+ViewContent returns rbaview::ViewContent:
+ {rbaview::ViewContent}
+ 'ViewContent'
+ name=QualifiedName
+ '{' (
+ ('description:' description=EString)? &
+ ('loserType:' loserType=LoserType)? &
+ ('allocatable:' '[' (allocatable+=[rbacore::AbstractAllocatable|QualifiedName] ("," allocatable+=[rbacore::AbstractAllocatable|QualifiedName])*)? ']')? &
+ (states+=ViewContentState)* &
+ (size+=SizeIdentifier)* &
+ (tags+=Tag)*
+ ) '}';
+
+SoundContent returns rbasound::SoundContent:
+ {rbasound::SoundContent}
+ 'SoundContent'
+ name=QualifiedName
+ '{' (
+ ('description:' description=EString)? &
+ ('loserType:' loserType=LoserType)? &
+ ('allocatable:' '[' (allocatable+=[rbacore::AbstractAllocatable|QualifiedName] ("," allocatable+=[rbacore::AbstractAllocatable|QualifiedName])*)? ']')? &
+ (states+=SoundContentState)* &
+ (tags+=Tag)*
+ ) '}';
+
+Size returns rbaview::Size:
+ {rbaview::Size}
+ 'Size'
+ name=QualifiedName
+ '{' (
+ ('description:' description=EString)? &
+ ('width:' width=EInt)? &
+ ('height:' height=EInt)?
+ ) '}';
+
+SizeReference returns rbaview::SizeReference:
+ {rbaview::SizeReference}
+ 'sizeReference:' size=[rbaview::Size|QualifiedName];
+
+Offset returns rbaview::Offset:
+ {rbaview::Offset}
+ 'Offset'
+ '{' (
+ ('description:' description=EString)? &
+ ('x:' x=EInt)? &
+ ('y:' y=EInt)? &
+ (size=SizeReference)?
+ ) '}';
+
+AreaSet returns rbaview::AreaSet:
+ {rbaview::AreaSet}
+ 'AreaSet'
+ name=QualifiedName
+ '{' (
+ ('description:' description=EString)? &
+ ('target:' '[' (target+=[rbacore::AbstractAllocatable|QualifiedName] ("," target+=[rbacore::AbstractAllocatable|QualifiedName])*)? ']')?
+ ) '}';
+
+ZoneSet returns rbasound::ZoneSet:
+ {rbasound::ZoneSet}
+ 'ZoneSet'
+ name=QualifiedName
+ '{' (
+ ('description:' description=EString)? &
+ ('target:' '[' (target+=[rbacore::AbstractAllocatable|QualifiedName] ("," target+=[rbacore::AbstractAllocatable|QualifiedName])*)? ']')?
+ ) '}';
+
+CompositeArea returns rbaview::CompositeArea:
+ {rbaview::CompositeArea}
+ 'CompositeArea'
+ name=QualifiedName
+ '{' (
+ ('description:' description=EString)? &
+ ('layout:' layout=LayoutManager)?
+ ) '}';
+
+Area returns rbaview::Area:
+ {rbaview::Area}
+ 'Area'
+ name=QualifiedName
+ '{' (
+ ('description:' description=EString)? &
+ ('arbitrationPolicy:' arbitrationPolicy=ArbitrationPolicy)? &
+ (size+=SizeIdentifier)* &
+ (('visibility:' | 'priority:') visibility=VExpression)? &
+ ('zorder:' zorder=VExpression)? &
+ (tags+=Tag)*
+ ) '}';
+
+Zone returns rbasound::Zone:
+ {rbasound::Zone}
+ 'Zone'
+ name=QualifiedName
+ '{' (
+ ('description:' description=EString)? &
+ ('arbitrationPolicy:' arbitrationPolicy=ArbitrationPolicy)? &
+ (('visibility:' | 'priority:') visibility=VExpression)? &
+ ('attenuateValue:' attenuate=IntegerValue)? &
+ (tags+=Tag)*
+ ) '}';
+
+ViewContentState returns rbaview::ViewContentState:
+ {rbaview::ViewContentState}
+ 'State'
+ name=QualifiedName
+ '{' (
+ ('description:' description=EString)? &
+ (('priority:' | 'value:') value=VExpression)?
+ ) '}';
+
+SoundContentState returns rbasound::SoundContentState:
+ {rbasound::SoundContentState}
+ 'State'
+ name=QualifiedName
+ '{' (
+ ('description:' description=EString)? &
+ (('priority:' | 'value:') value=VExpression)?
+ ) '}';
+
+Project returns rbacore::Project:
+ {rbacore::Project}
+ 'Project'
+ (dummyName=QualifiedName)?
+ '{'
+ 'version:' version=EString
+ '}';
+
+/* #######################################
+ * Sort Value Expression(VExpression)
+ * ####################################### */
+VExpression returns rbacore::Expression:
+ VPlusOperator;
+
+VPlusOperator returns rbacore::Expression:
+ VComparisonAnd (=>({rbacore::PlusOperator.operand+=current} OpPlus) operand+=VComparisonAnd)*;
+
+OpPlus:
+ '+';
+
+VComparisonAnd returns rbacore::Expression:
+ VRelationalExpression (=>({rbacore::ComparisonAnd.operand+=current} OpAnd) operand+=VRelationalExpression)*;
+
+VRelationalExpression returns rbacore::Expression:
+ VPrimaryExpression |
+ ({rbacore::MuchGreaterThanOperator} OpMuchGreaterThan operand+=VPrimaryExpression) |
+ ({rbacore::EqualToOperator} OpEqualTo operand+=VPrimaryExpression) |
+ ({rbacore::GreaterThanOperator} OpGreaterThan operand+=VPrimaryExpression) |
+ ({rbacore::LowerThanOperator} OpLowerThan operand+=VPrimaryExpression);
+
+OpMuchGreaterThan:
+ '>>';
+OpEqualTo:
+ '=';
+OpGreaterThan:
+ '>';
+OpLowerThan:
+ '<';
+
+VPrimaryExpression returns rbacore::Expression:
+ ThatOfOperator |
+ VValueExpression |
+ '(' VExpression ')';
+
+VValueExpression returns rbacore::Expression:
+ IntegerValue |
+ StandardValue |
+ NoneValue |
+ MinValue |
+ MaxValue;
+
+ThatOfOperator returns rbacore::Expression:
+ ({rbacore::ThatOfOperator} 'That-of' operand+=VMemberFeatureReference?);
+
+VMemberFeatureReference returns rbacore::ObjectReference:
+ {rbacore::ObjectReference} refObject=[rbacore::RuleObject|ValidID]
+ ({MemberFeatureReference.operand+=current} '.' refObject=[rbacore::RuleObject|ValidID])*;
+
+IntegerValue returns rbacore::IntegerValue:
+ {rbacore::IntegerValue}
+ (value=EInt);
+StandardValue returns rbacore::StandardValue:
+ {rbacore::StandardValue}
+ 'STANDARD_VALUE';
+NoneValue returns rbacore::NoneValue:
+ {rbacore::NoneValue}
+ 'NONE_VALUE';
+MinValue returns rbacore::MinValue:
+ {rbacore::MinValue}
+ 'MIN_VALUE';
+MaxValue returns rbacore::MaxValue:
+ {rbacore::MaxValue}
+ 'MAX_VALUE';
+
+/* #######################################
+ * Constraint Expression(CExpression)
+ * ####################################### */
+CExpression returns rbacore::Expression:
+ CImpliesOperator;
+
+CImpliesOperator returns rbacore::Expression:
+ COrOperator (=>({rbacore::ImpliesOperator.operand+=current} OpImplies) operand+=COrOperator)*;
+
+OpImplies:
+ '->';
+
+COrOperator returns rbacore::Expression:
+ CAndOperator (=>({rbacore::OrOperator.operand+=current} OpOr) operand+=CAndOperator)*;
+
+OpOr:
+ 'OR';
+
+CAndOperator returns rbacore::Expression:
+ CEqualityExpression (=>({rbacore::AndOperator.operand+=current} OpAnd) operand+=CEqualityExpression)*;
+
+OpAnd:
+ 'AND';
+
+CEqualityExpression returns rbacore::Expression:
+ CRelationalExpression (
+ =>(
+ ({rbacore::ObjectCompare.operand+=current} OpObjectCompare) |
+ ({rbacore::ObjectCompareNot.operand+=current} OpObjectNotCompare) |
+ ({rbacore::IsEqualToOperator.operand+=current} OpEquality)
+ ) operand+=CRelationalExpression)*;
+
+OpObjectCompare:
+ '==';
+OpObjectNotCompare:
+ '!=';
+OpEquality:
+ '=';
+
+CRelationalExpression returns rbacore::Expression:
+ CUnaryOperation (
+ =>(
+ ({rbacore::IsGreaterThanEqualOperator.operand+=current} OpIsGreaterThanEqual) |
+ ({rbacore::IsLowerThanEqualOperator.operand+=current} OpIsLowerThanEqual) |
+ ({rbacore::IsGreaterThanOperator.operand+=current} OpIsGreaterThan) |
+ ({rbacore::IsLowerThanOperator.operand+=current} OpIsLowerThan)
+ ) operand+=CUnaryOperation)*;
+
+OpIsGreaterThanEqual:
+ '>=';
+OpIsLowerThanEqual:
+ '<=';
+OpIsGreaterThan:
+ '>';
+OpIsLowerThan:
+ '<';
+
+CUnaryOperation returns rbacore::Expression:
+ ({rbacore::NotOperator} OpNot operand+=CUnaryOperation)
+ | COperationFeatureCall;
+
+OpNot:
+ "!";
+
+COperationFeatureCall returns rbacore::Expression:
+ CPrimaryExpression
+ (=>(".")
+ (
+ ((
+ //({MemberFeatureReference.operand+=current} refObject=[rbacore::RuleObject|ValidID]) |
+ ({rbacore::GetProperty.operand+=current} OpGetProperty) |
+ ({rbacore::IsOn.operand+=current} OpIsOn) |
+ ({rbacore::GetContentsList.operand+=current} OpGetContentsList) |
+ ({rbacore::ContentValue.operand+=current} OpContentValue) |
+ ({rbacore::IsActive.operand+=current} OpIsActive) |
+ ({rbacore::GetAllocatables.operand+=current} OpGetAllocatables) |
+ ({rbacore::AllocatedContent.operand+=current} OpAllocatedContent) |
+ ({rbacore::HasComeEarlierThan.operand+=current} OpHasComeEarlierThan) |
+ ({rbacore::HasComeLaterThan.operand+=current} OpHasComeLaterThan) |
+ ({rbacore::StateValue.operand+=current} OpStateValue) |
+ ({rbacore::ActiveContents.operand+=current} OpActiveContents) |
+ ({rbacore::SizeOperator.operand+=current} OpSizeOperator) |
+ ({rbacore::HasBeenDisplayed.operand+=current} OpHasBeenDisplayed) |
+ ({rbacore::ActiveState.operand+=current} OpActiveState) |
+ ({rbaview::IsDisplayed.operand+=current} OpIsDisplayed) |
+ ({rbaview::IsHidden.operand+=current} OpIsHidden) |
+ ({rbaview::DisplayingContent.operand+=current} OpDisplayingContent) |
+ ({rbaview::IsVisible.operand+=current} OpIsVisible) |
+ ({rbasound::IsOutputted.operand+=current} OpIsOutputted) |
+ ({rbasound::IsMuted.operand+=current} OpIsMuted) |
+ ({rbasound::OutputtingSound.operand+=current} OpOutputtingSound) |
+ ({rbasound::IsSounding.operand+=current} OpIsSounding) |
+ ({rbacore::IsAllocatedTo.operand+=current} OpIsAllocatedTo) |
+ ({rbacore::IsChanged.operand+=current} OpIsChanged) |
+ ({rbacore::IsTranslatedTo.operand+=current} OpIsTranslatedTo) |
+ ({rbaview::IsDisplayedOn.operand+=current} OpIsDisplayedOn) |
+ ({rbaview::IsChangedDisplay.operand+=current} OpIsChangedDisplay) |
+ ({rbaview::IsTranslatedViewTo.operand+=current} OpIsTranslatedViewTo) |
+ ({rbasound::IsOutputtedOn.operand+=current} OpIsOutputtedOn) |
+ ({rbasound::IsChangedOutput.operand+=current} OpIsChangedOutput) |
+ ({rbasound::IsTranslatedSoundTo.operand+=current} OpIsTranslatedSoundTo) |
+ ({rbasound::IsAttenuated.operand+=current} OpIsAttenuated)
+ ) =>('(' (operand+=CExpression)? ')')
+ ) |
+ (
+ (
+ ({rbacore::IsTypeOf.operand+=current} OpIsTypeOf)
+ ) =>('(' (tagName=EString)? ')')?
+ ) |
+ (
+ (
+ ({rbacore::MaxOperator.operand+=current} OpMaxOperator lambda=LambdaExpression) |
+ ({rbacore::MinOperator.operand+=current} OpMinOperator lambda=LambdaExpression) |
+ ({rbacore::SelectOperator.operand+=current} OpSelectOperator lambda=LambdaExpression)
+ )
+ )
+ )
+ )*;
+
+OpGetProperty:
+ 'get';
+OpIsOn:
+ 'isOn';
+OpGetContentsList:
+ 'contentsList';
+OpContentValue:
+ 'contentValue';
+OpIsActive:
+ 'isActive';
+OpGetAllocatables:
+ 'allocatables';
+OpAllocatedContent:
+ 'allocatedContent';
+OpIsDisplayed:
+ 'isDisplayed';
+OpIsHidden:
+ 'isHidden';
+OpDisplayingContent:
+ 'displayingContent';
+OpIsVisible:
+ 'isVisible';
+OpIsOutputted:
+ 'isOutputted';
+OpIsMuted:
+ 'isMuted';
+OpOutputtingSound:
+ 'outputtingSound';
+OpIsSounding:
+ 'isSounding';
+OpIsAttenuated:
+ 'isAttenuated';
+OpHasComeEarlierThan:
+ 'hasComeEarlierThan';
+OpHasComeLaterThan:
+ 'hasComeLaterThan';
+OpStateValue:
+ 'stateValue';
+OpIsAllocatedTo:
+ 'isAllocatedTo';
+OpIsChanged:
+ 'isChanged';
+OpIsTranslatedTo:
+ 'isTranslatedTo';
+OpIsDisplayedOn:
+ 'isDisplayedOn';
+OpIsChangedDisplay:
+ 'isChangedDisplay';
+OpIsTranslatedViewTo:
+ 'isTranslatedViewTo';
+OpIsOutputtedOn:
+ 'isOutputtedOn';
+OpIsChangedOutput:
+ 'isChangedOutput';
+OpIsTranslatedSoundTo:
+ 'isTranslatedSoundTo';
+OpIsTypeOf:
+ 'isTypeOf';
+OpActiveContents:
+ 'activeContents';
+OpSizeOperator:
+ 'size';
+OpHasBeenDisplayed:
+ 'hasBeenDisplayed';
+OpActiveState:
+ 'activeState';
+OpGetState:
+ 'state';
+OpMaxOperator:
+ 'max';
+OpMinOperator:
+ 'min';
+OpSelectOperator:
+ 'select';
+OpStartOprator:
+ 'start';
+OpStopOprator:
+ 'stop';
+OpActivateOprator:
+ 'activate';
+
+CPrimaryExpression returns rbacore::Expression:
+ CMemberFeatureReference |
+ PreviousModifier |
+ AllInstanceOfExpression |
+ NullExpression |
+ IntegerValue |
+ MuteLowerPriority |
+ HideLowerPriority |
+ SetOfOperator |
+ IfStatement |
+ ForAllOperator |
+ ExistsOperator |
+ '(' CExpression ')';
+
+AllInstanceOfExpression returns rbacore::Expression:
+ =>(
+ ({rbaview::AllInstanceOfArea} 'ALL_AREAS') |
+ ({rbaview::AllInstanceOfViewContent} 'ALL_VIEWCONTENTS') |
+ ({rbasound::AllInstanceOfZone} 'ALL_ZONES') |
+ ({rbasound::AllInstanceOfSoundContent} 'ALL_SOUNDCONTENTS')
+ );
+
+NullExpression returns rbacore::Expression:
+ =>({rbacore::NullExpression} 'NULL');
+
+PreviousModifier returns rbacore::PreviousModifier:
+ {rbacore::PreviousModifier}
+ '(pre)' (objReference=CMemberFeatureReference);
+
+HideLowerPriority returns rbaview::HideLowerPriority:
+ {rbaview::HideLowerPriority}
+ 'HideLowerPriority' '(' (operand+=CExpression) ',' (operand+=CExpression) ')';
+
+MuteLowerPriority returns rbasound::MuteLowerPriority:
+ {rbasound::MuteLowerPriority}
+ 'MuteLowerPriority' '(' (operand+=CExpression) ',' (operand+=CExpression) ')';
+
+SetOfOperator returns rbacore::SetOfOperator:
+ {rbacore::SetOfOperator}
+ '{' (operand+=CExpression (',' operand+=CExpression)*)? '}';
+IfStatement returns rbacore::IfStatement:
+ {rbacore::IfStatement}
+ 'IF' '(' condition=CExpression? ')'
+ (=>'THEN' thenExpression=CExpression)?
+ (=>'ELSE' elseExpression=CExpression)?;
+ForAllOperator returns rbacore::ForAllOperator:
+ {rbacore::ForAllOperator}
+ 'For-All' (operand+=CExpression) (lambda=LambdaExpression);
+ExistsOperator returns rbacore::ExistsOperator:
+ {rbacore::ExistsOperator}
+ 'Exists' (operand+=CExpression) (lambda=LambdaExpression);
+
+// Other
+LambdaExpression returns rbacore::LambdaExpression:
+ =>({rbacore::LambdaExpression}
+ '{')
+ (x=Variable? '|')?
+ (letStatements+=LetStatement)*
+ bodyText=CExpression
+ '}';
+Variable returns rbacore::Variable:
+ {rbacore::Variable}
+ name=QualifiedName;
+
+CObjectReference returns rbacore::ObjectReference:
+ {rbacore::ObjectReference} refObject=[rbacore::RuleObject|IdOrThis];
+
+CMemberFeatureReference returns rbacore::ObjectReference:
+ {rbacore::ObjectReference} refObject=[rbacore::RuleObject|IdOrThis]
+ ({MemberFeatureReference.operand+=current} '.' refObject=[rbacore::RuleObject|ValidID])*;
+
+LetStatement returns rbacore::LetStatement:
+ {rbacore::LetStatement}
+ ('let') (=>variable=Variable) ('=' body=CExpression)?;
+
+ComplexExpression returns rbacore::ComplexExpression:
+ {rbacore::ComplexExpression}
+ (letStatements+=LetStatement)*
+ otherExpression=CExpression;
+
+EnumExpression returns rbacore::EnumExpression:
+ ('LoserType::' =>LoserTypeExpression) | ('ArbitrationPolicy::' =>ArbitrationPolicyExpression);
+
+LoserTypeExpression returns rbacore::LoserTypeExpression:
+ {rbacore::LoserTypeExpression}
+ value=LoserType;
+
+ArbitrationPolicyExpression returns rbacore::ArbitrationPolicyExpression:
+ {rbacore::ArbitrationPolicyExpression}
+ value=ArbitrationPolicy;
+
+// ################################################################################################ //
+
+ViewContentSet returns rbaview::ViewContentSet:
+ {rbaview::ViewContentSet}
+ 'ViewContentSet'
+ name=QualifiedName
+ '{' (
+ ('description:' description=EString)? &
+ ('target:' '[' (target+=[rbacore::AbstractContent|QualifiedName] ("," target+=[rbacore::AbstractContent|QualifiedName])*)? ']')? &
+ ('allocatable:' '[' (allocatable+=[rbacore::AbstractAllocatable|QualifiedName] ("," allocatable+=[rbacore::AbstractAllocatable|QualifiedName])*)? ']')?
+ ) '}';
+
+SoundContentSet returns rbasound::SoundContentSet:
+ {rbasound::SoundContentSet}
+ 'SoundContentSet'
+ name=QualifiedName
+ '{' (
+ ('description:' description=EString)? &
+ ('target:' '[' (target+=[rbacore::AbstractContent|QualifiedName] ("," target+=[rbacore::AbstractContent|QualifiedName])*)? ']')? &
+ ('allocatable:' '[' (allocatable+=[rbacore::AbstractAllocatable|QualifiedName] ("," allocatable+=[rbacore::AbstractAllocatable|QualifiedName])*)? ']')?
+ ) '}';
+
+Scene returns rbacore::Scene:
+ {rbacore::Scene}
+ 'Scene'
+ name=QualifiedName
+ '{' (
+ ('description:' description=EString)? &
+ ('global:' global=EBoolean)? &
+ (properties+=AbstractProperty)*
+ ) '}';
+
+VerticalLayout returns rbaview::VerticalLayout:
+ {rbaview::VerticalLayout}
+ 'VerticalLayout'
+ '{' (
+ ('basePoint:' basePoint=BasePoint)? &
+ ('subarea:' '[' (subarea+=[rbaview::Area|QualifiedName] ("," subarea+=[rbaview::Area|QualifiedName])*)? ']')?
+ ) '}';
+
+HorizontalLayout returns rbaview::HorizontalLayout:
+ {rbaview::HorizontalLayout}
+ 'HorizontalLayout'
+ '{' (
+ ('basePoint:' basePoint=BasePoint)? &
+ ('subarea:' '[' (subarea+=[rbaview::Area|QualifiedName] ("," subarea+=[rbaview::Area|QualifiedName])*)? ']')?
+ ) '}';
+
+FixedPositionLayout returns rbaview::FixedPositionLayout:
+ {rbaview::FixedPositionLayout}
+ 'FixedPositionLayout'
+ '{'
+ (subAreaPosition+=PositionContainer)*
+ '}';
+
+PositionContainer returns rbaview::PositionContainer:
+ {rbaview::PositionContainer}
+ 'PositionContainer'
+ '{' (
+ ('x:' x=EInt)? &
+ ('y:' y=EInt)? &
+ ('basePoint:' basePoint=BasePoint)? &
+ ('areaReference:' area=[rbaview::Area|QualifiedName])? &
+ (offset+=Offset)*
+ ) '}';
+
+/* Primitive Data Type */
+EBoolean returns ecore::EBoolean:
+ 'true' | 'false';
+
+EInt returns ecore::EInt:
+ '-'? INT;
+
+EString returns ecore::EString:
+ STRING;
+
+RichString returns ecore::EString:
+ RICH_STRING;
+
+QualifiedNameWithWildcard:
+ QualifiedName '.*'?;
+
+QualifiedName:
+ ID ('.' ID)*;
+
+IdOrThis:
+ ValidID | 'this';
+
+ValidID:
+ ID;
+
+/* Enum */
+enum ArbitrationPolicy returns rbacore::ArbitrationPolicy:
+ DEFAULT='DEFAULT' | FIRST_COME_FIRST='FIRST_COME_FIRST' | LAST_COME_FIRST='LAST_COME_FIRST' |
+ PRIORITY_FIRST_COME_FIRST='PRIORITY_FIRST_COME_FIRST' | PRIORITY_LAST_COME_FIRST='PRIORITY_LAST_COME_FIRST';
+
+enum BasePoint returns rbaview::BasePoint:
+ LEFT_TOP='LEFT_TOP' | LEFT_MIDDLE='LEFT_MIDDLE' | LEFT_BOTTOM='LEFT_BOTTOM' | RIGHT_TOP='RIGHT_TOP' |
+ RIGHT_MIDDLE='RIGHT_MIDDLE' | RIGHT_BOTTOM='RIGHT_BOTTOM' | CENTER_TOP='CENTER_TOP' | CENTER_MIDDLE='CENTER_MIDDLE' |
+ CENTER_BOTTOM='CENTER_BOTTOM';
+
+enum LoserType returns rbacore::LoserType:
+ NEVER_GIVEUP='NEVER_GIVEUP' | GOOD_LOSER='GOOD_LOSER' | DO_NOT_GIVEUP_UNTIL_WIN='DO_NOT_GIVEUP_UNTIL_WIN';
+
+/* Terminal */
+terminal ID:
+ (IDENTIFIER_START | UNICODE_ESCAPE) (IDENTIFIER_PART | UNICODE_ESCAPE)*;
+
+terminal fragment IDENTIFIER_START_IMPL:
+ '\u0024'
+ | '\u0041'..'\u005A'
+ | '\uff08'..'\uff09'
+ | '\u005F'
+ | '\u0061'..'\u007A'
+ | '\u00A2'..'\u00A5'
+ | '\u00AA'
+ | '\u00B5'
+ | '\u00BA'
+ | '\u00C0'..'\u00D6'
+ | '\u00D8'..'\u00F6'
+ | '\u00F8'..'\u0236'
+ | '\u0250'..'\u02C1'
+ | '\u02C6'..'\u02D1'
+ | '\u02E0'..'\u02E4'
+ | '\u02EE'
+ | '\u037A'
+ | '\u0386'
+ | '\u0388'..'\u038A'
+ | '\u038C'
+ | '\u038E'..'\u03A1'
+ | '\u03A3'..'\u03CE'
+ | '\u03D0'..'\u03F5'
+ | '\u03F7'..'\u03FB'
+ | '\u0400'..'\u0481'
+ | '\u048A'..'\u04CE'
+ | '\u04D0'..'\u04F5'
+ | '\u04F8'..'\u04F9'
+ | '\u0500'..'\u050F'
+ | '\u0531'..'\u0556'
+ | '\u0559'
+ | '\u0561'..'\u0587'
+ | '\u05D0'..'\u05EA'
+ | '\u05F0'..'\u05F2'
+ | '\u0621'..'\u063A'
+ | '\u0640'..'\u064A'
+ | '\u066E'..'\u066F'
+ | '\u0671'..'\u06D3'
+ | '\u06D5'
+ | '\u06E5'..'\u06E6'
+ | '\u06EE'..'\u06EF'
+ | '\u06FA'..'\u06FC'
+ | '\u06FF'
+ | '\u0710'
+ | '\u0712'..'\u072F'
+ | '\u074D'..'\u074F'
+ | '\u0780'..'\u07A5'
+ | '\u07B1'
+ | '\u0904'..'\u0939'
+ | '\u093D'
+ | '\u0950'
+ | '\u0958'..'\u0961'
+ | '\u0985'..'\u098C'
+ | '\u098F'..'\u0990'
+ | '\u0993'..'\u09A8'
+ | '\u09AA'..'\u09B0'
+ | '\u09B2'
+ | '\u09B6'..'\u09B9'
+ | '\u09BD'
+ | '\u09DC'..'\u09DD'
+ | '\u09DF'..'\u09E1'
+ | '\u09F0'..'\u09F3'
+ | '\u0A05'..'\u0A0A'
+ | '\u0A0F'..'\u0A10'
+ | '\u0A13'..'\u0A28'
+ | '\u0A2A'..'\u0A30'
+ | '\u0A32'..'\u0A33'
+ | '\u0A35'..'\u0A36'
+ | '\u0A38'..'\u0A39'
+ | '\u0A59'..'\u0A5C'
+ | '\u0A5E'
+ | '\u0A72'..'\u0A74'
+ | '\u0A85'..'\u0A8D'
+ | '\u0A8F'..'\u0A91'
+ | '\u0A93'..'\u0AA8'
+ | '\u0AAA'..'\u0AB0'
+ | '\u0AB2'..'\u0AB3'
+ | '\u0AB5'..'\u0AB9'
+ | '\u0ABD'
+ | '\u0AD0'
+ | '\u0AE0'..'\u0AE1'
+ | '\u0AF1'
+ | '\u0B05'..'\u0B0C'
+ | '\u0B0F'..'\u0B10'
+ | '\u0B13'..'\u0B28'
+ | '\u0B2A'..'\u0B30'
+ | '\u0B32'..'\u0B33'
+ | '\u0B35'..'\u0B39'
+ | '\u0B3D'
+ | '\u0B5C'..'\u0B5D'
+ | '\u0B5F'..'\u0B61'
+ | '\u0B71'
+ | '\u0B83'
+ | '\u0B85'..'\u0B8A'
+ | '\u0B8E'..'\u0B90'
+ | '\u0B92'..'\u0B95'
+ | '\u0B99'..'\u0B9A'
+ | '\u0B9C'
+ | '\u0B9E'..'\u0B9F'
+ | '\u0BA3'..'\u0BA4'
+ | '\u0BA8'..'\u0BAA'
+ | '\u0BAE'..'\u0BB5'
+ | '\u0BB7'..'\u0BB9'
+ | '\u0BF9'
+ | '\u0C05'..'\u0C0C'
+ | '\u0C0E'..'\u0C10'
+ | '\u0C12'..'\u0C28'
+ | '\u0C2A'..'\u0C33'
+ | '\u0C35'..'\u0C39'
+ | '\u0C60'..'\u0C61'
+ | '\u0C85'..'\u0C8C'
+ | '\u0C8E'..'\u0C90'
+ | '\u0C92'..'\u0CA8'
+ | '\u0CAA'..'\u0CB3'
+ | '\u0CB5'..'\u0CB9'
+ | '\u0CBD'
+ | '\u0CDE'
+ | '\u0CE0'..'\u0CE1'
+ | '\u0D05'..'\u0D0C'
+ | '\u0D0E'..'\u0D10'
+ | '\u0D12'..'\u0D28'
+ | '\u0D2A'..'\u0D39'
+ | '\u0D60'..'\u0D61'
+ | '\u0D85'..'\u0D96'
+ | '\u0D9A'..'\u0DB1'
+ | '\u0DB3'..'\u0DBB'
+ | '\u0DBD'
+ | '\u0DC0'..'\u0DC6'
+ | '\u0E01'..'\u0E30'
+ | '\u0E32'..'\u0E33'
+ | '\u0E3F'..'\u0E46'
+ | '\u0E81'..'\u0E82'
+ | '\u0E84'
+ | '\u0E87'..'\u0E88'
+ | '\u0E8A'
+ | '\u0E8D'
+ | '\u0E94'..'\u0E97'
+ | '\u0E99'..'\u0E9F'
+ | '\u0EA1'..'\u0EA3'
+ | '\u0EA5'
+ | '\u0EA7'
+ | '\u0EAA'..'\u0EAB'
+ | '\u0EAD'..'\u0EB0'
+ | '\u0EB2'..'\u0EB3'
+ | '\u0EBD'
+ | '\u0EC0'..'\u0EC4'
+ | '\u0EC6'
+ | '\u0EDC'..'\u0EDD'
+ | '\u0F00'
+ | '\u0F40'..'\u0F47'
+ | '\u0F49'..'\u0F6A'
+ | '\u0F88'..'\u0F8B'
+ | '\u1000'..'\u1021'
+ | '\u1023'..'\u1027'
+ | '\u1029'..'\u102A'
+ | '\u1050'..'\u1055'
+ | '\u10A0'..'\u10C5'
+ | '\u10D0'..'\u10F8'
+ | '\u1100'..'\u1159'
+ | '\u115F'..'\u11A2'
+ | '\u11A8'..'\u11F9'
+ | '\u1200'..'\u1206'
+ | '\u1208'..'\u1246'
+ | '\u1248'
+ | '\u124A'..'\u124D'
+ | '\u1250'..'\u1256'
+ | '\u1258'
+ | '\u125A'..'\u125D'
+ | '\u1260'..'\u1286'
+ | '\u1288'
+ | '\u128A'..'\u128D'
+ | '\u1290'..'\u12AE'
+ | '\u12B0'
+ | '\u12B2'..'\u12B5'
+ | '\u12B8'..'\u12BE'
+ | '\u12C0'
+ | '\u12C2'..'\u12C5'
+ | '\u12C8'..'\u12CE'
+ | '\u12D0'..'\u12D6'
+ | '\u12D8'..'\u12EE'
+ | '\u12F0'..'\u130E'
+ | '\u1310'
+ | '\u1312'..'\u1315'
+ | '\u1318'..'\u131E'
+ | '\u1320'..'\u1346'
+ | '\u1348'..'\u135A'
+ | '\u13A0'..'\u13F4'
+ | '\u1401'..'\u166C'
+ | '\u166F'..'\u1676'
+ | '\u1681'..'\u169A'
+ | '\u16A0'..'\u16EA'
+ | '\u16EE'..'\u16F0'
+ | '\u1700'..'\u170C'
+ | '\u170E'..'\u1711'
+ | '\u1720'..'\u1731'
+ | '\u1740'..'\u1751'
+ | '\u1760'..'\u176C'
+ | '\u176E'..'\u1770'
+ | '\u1780'..'\u17B3'
+ | '\u17D7'
+ | '\u17DB'..'\u17DC'
+ | '\u1820'..'\u1877'
+ | '\u1880'..'\u18A8'
+ | '\u1900'..'\u191C'
+ | '\u1950'..'\u196D'
+ | '\u1970'..'\u1974'
+ | '\u1D00'..'\u1D6B'
+ | '\u1E00'..'\u1E9B'
+ | '\u1EA0'..'\u1EF9'
+ | '\u1F00'..'\u1F15'
+ | '\u1F18'..'\u1F1D'
+ | '\u1F20'..'\u1F45'
+ | '\u1F48'..'\u1F4D'
+ | '\u1F50'..'\u1F57'
+ | '\u1F59'
+ | '\u1F5B'
+ | '\u1F5D'
+ | '\u1F5F'..'\u1F7D'
+ | '\u1F80'..'\u1FB4'
+ | '\u1FB6'..'\u1FBC'
+ | '\u1FBE'
+ | '\u1FC2'..'\u1FC4'
+ | '\u1FC6'..'\u1FCC'
+ | '\u1FD0'..'\u1FD3'
+ | '\u1FD6'..'\u1FDB'
+ | '\u1FE0'..'\u1FEC'
+ | '\u1FF2'..'\u1FF4'
+ | '\u1FF6'..'\u1FFC'
+ | '\u203F'..'\u2040'
+ | '\u2054'
+ | '\u2071'
+ | '\u207F'
+ | '\u20A0'..'\u20B1'
+ | '\u2102'
+ | '\u2107'
+ | '\u210A'..'\u2113'
+ | '\u2115'
+ | '\u2119'..'\u211D'
+ | '\u2124'
+ | '\u2126'
+ | '\u2128'
+ | '\u212A'..'\u212D'
+ | '\u212F'..'\u2131'
+ | '\u2133'..'\u2139'
+ | '\u213D'..'\u213F'
+ | '\u2145'..'\u2149'
+ | '\u2160'..'\u2183'
+ | '\u3005'..'\u3007'
+ | '\u3021'..'\u3029'
+ | '\u3031'..'\u3035'
+ | '\u3038'..'\u303C'
+ | '\u3041'..'\u3096'
+ | '\u309D'..'\u309F'
+ | '\u30A1'..'\u30FF'
+ | '\u3105'..'\u312C'
+ | '\u3131'..'\u318E'
+ | '\u31A0'..'\u31B7'
+ | '\u31F0'..'\u31FF'
+ | '\u3400'..'\u4DB5'
+ | '\u4E00'..'\u9FA5'
+ | '\uA000'..'\uA48C'
+ | '\uAC00'..'\uD7A3'
+ | '\uF900'..'\uFA2D'
+ | '\uFA30'..'\uFA6A'
+ | '\uFB00'..'\uFB06'
+ | '\uFB13'..'\uFB17'
+ | '\uFB1D'
+ | '\uFB1F'..'\uFB28'
+ | '\uFB2A'..'\uFB36'
+ | '\uFB38'..'\uFB3C'
+ | '\uFB3E'
+ | '\uFB40'..'\uFB41'
+ | '\uFB43'..'\uFB44'
+ | '\uFB46'..'\uFBB1'
+ | '\uFBD3'..'\uFD3D'
+ | '\uFD50'..'\uFD8F'
+ | '\uFD92'..'\uFDC7'
+ | '\uFDF0'..'\uFDFC'
+ | '\uFE33'..'\uFE34'
+ | '\uFE4D'..'\uFE4F'
+ | '\uFE69'
+ | '\uFE70'..'\uFE74'
+ | '\uFE76'..'\uFEFC'
+ | '\uFF04'
+ | '\uFF1A'
+ | '\uFF21'..'\uFF3A'
+ | '\uFF3F'
+ | '\uFF41'..'\uFF5A'
+ | '\uFF65'..'\uFFBE'
+ | '\uFFC2'..'\uFFC7'
+ | '\uFFCA'..'\uFFCF'
+ | '\uFFD2'..'\uFFD7'
+ | '\uFFDA'..'\uFFDC'
+ | '\uFFE0'..'\uFFE1'
+ | '\uFFE5'..'\uFFE6';
+
+terminal fragment IDENTIFIER_PART_IMPL:
+ '\u0000'..'\u0008'
+ | '\u000E'..'\u001B'
+ | '\u007F'..'\u009F'
+ | '\u00AD'
+ | '\u3001'..'\u3002'
+ | '\u0300'..'\u0357'
+ | '\u035D'..'\u036F'
+ | '\u0483'..'\u0486'
+ | '\u0591'..'\u05A1'
+ | '\u05A3'..'\u05B9'
+ | '\u05BB'..'\u05BD'
+ | '\u05BF'
+ | '\u05C1'..'\u05C2'
+ | '\u05C4'
+ | '\u0600'..'\u0603'
+ | '\u0610'..'\u0615'
+ | '\u064B'..'\u0658'
+ | '\u0660'..'\u0669'
+ | '\u0670'
+ | '\u06D6'..'\u06DD'
+ | '\u06DF'..'\u06E4'
+ | '\u06E7'..'\u06E8'
+ | '\u06EA'..'\u06ED'
+ | '\u06F0'..'\u06F9'
+ | '\u070F'
+ | '\u0711'
+ | '\u0730'..'\u074A'
+ | '\u07A6'..'\u07B0'
+ | '\u0901'..'\u0903'
+ | '\u093C'
+ | '\u093E'..'\u094D'
+ | '\u0951'..'\u0954'
+ | '\u0962'..'\u0963'
+ | '\u0966'..'\u096F'
+ | '\u0981'..'\u0983'
+ | '\u09BC'
+ | '\u09BE'..'\u09C4'
+ | '\u09C7'..'\u09C8'
+ | '\u09CB'..'\u09CD'
+ | '\u09D7'
+ | '\u09E2'..'\u09E3'
+ | '\u09E6'..'\u09EF'
+ | '\u0A01'..'\u0A03'
+ | '\u0A3C'
+ | '\u0A3E'..'\u0A42'
+ | '\u0A47'..'\u0A48'
+ | '\u0A4B'..'\u0A4D'
+ | '\u0A66'..'\u0A71'
+ | '\u0A81'..'\u0A83'
+ | '\u0ABC'
+ | '\u0ABE'..'\u0AC5'
+ | '\u0AC7'..'\u0AC9'
+ | '\u0ACB'..'\u0ACD'
+ | '\u0AE2'..'\u0AE3'
+ | '\u0AE6'..'\u0AEF'
+ | '\u0B01'..'\u0B03'
+ | '\u0B3C'
+ | '\u0B3E'..'\u0B43'
+ | '\u0B47'..'\u0B48'
+ | '\u0B4B'..'\u0B4D'
+ | '\u0B56'..'\u0B57'
+ | '\u0B66'..'\u0B6F'
+ | '\u0B82'
+ | '\u0BBE'..'\u0BC2'
+ | '\u0BC6'..'\u0BC8'
+ | '\u0BCA'..'\u0BCD'
+ | '\u0BD7'
+ | '\u0BE7'..'\u0BEF'
+ | '\u0C01'..'\u0C03'
+ | '\u0C3E'..'\u0C44'
+ | '\u0C46'..'\u0C48'
+ | '\u0C4A'..'\u0C4D'
+ | '\u0C55'..'\u0C56'
+ | '\u0C66'..'\u0C6F'
+ | '\u0C82'..'\u0C83'
+ | '\u0CBC'
+ | '\u0CBE'..'\u0CC4'
+ | '\u0CC6'..'\u0CC8'
+ | '\u0CCA'..'\u0CCD'
+ | '\u0CD5'..'\u0CD6'
+ | '\u0CE6'..'\u0CEF'
+ | '\u0D02'..'\u0D03'
+ | '\u0D3E'..'\u0D43'
+ | '\u0D46'..'\u0D48'
+ | '\u0D4A'..'\u0D4D'
+ | '\u0D57'
+ | '\u0D66'..'\u0D6F'
+ | '\u0D82'..'\u0D83'
+ | '\u0DCA'
+ | '\u0DCF'..'\u0DD4'
+ | '\u0DD6'
+ | '\u0DD8'..'\u0DDF'
+ | '\u0DF2'..'\u0DF3'
+ | '\u0E31'
+ | '\u0E34'..'\u0E3A'
+ | '\u0E47'..'\u0E4E'
+ | '\u0E50'..'\u0E59'
+ | '\u0EB1'
+ | '\u0EB4'..'\u0EB9'
+ | '\u0EBB'..'\u0EBC'
+ | '\u0EC8'..'\u0ECD'
+ | '\u0ED0'..'\u0ED9'
+ | '\u0F18'..'\u0F19'
+ | '\u0F20'..'\u0F29'
+ | '\u0F35'
+ | '\u0F37'
+ | '\u0F39'
+ | '\u0F3E'..'\u0F3F'
+ | '\u0F71'..'\u0F84'
+ | '\u0F86'..'\u0F87'
+ | '\u0F90'..'\u0F97'
+ | '\u0F99'..'\u0FBC'
+ | '\u0FC6'
+ | '\u102C'..'\u1032'
+ | '\u1036'..'\u1039'
+ | '\u1040'..'\u1049'
+ | '\u1056'..'\u1059'
+ | '\u1369'..'\u1371'
+ | '\u1712'..'\u1714'
+ | '\u1732'..'\u1734'
+ | '\u1752'..'\u1753'
+ | '\u1772'..'\u1773'
+ | '\u17B4'..'\u17D3'
+ | '\u17DD'
+ | '\u17E0'..'\u17E9'
+ | '\u180B'..'\u180D'
+ | '\u1810'..'\u1819'
+ | '\u18A9'
+ | '\u1920'..'\u192B'
+ | '\u1930'..'\u193B'
+ | '\u1946'..'\u194F'
+ | '\u200C'..'\u200F'
+ | '\u202A'..'\u202E'
+ | '\u2060'..'\u2063'
+ | '\u206A'..'\u206F'
+ | '\u20D0'..'\u20DC'
+ | '\u20E1'
+ | '\u20E5'..'\u20EA'
+ | '\u302A'..'\u302F'
+ | '\u3099'..'\u309A'
+ | '\uFB1E'
+ | '\uFE00'..'\uFE0F'
+ | '\uFE20'..'\uFE23'
+ | '\uFEFF'
+ | '\uFF10'..'\uFF19'
+ | '\uFFF9'..'\uFFFB';
+
+terminal fragment IDENTIFIER_DIGITS:
+ '\u0030'..'\u0039';
+
+terminal fragment HEX_DIGIT:
+ '0'..'9' | 'a'..'f' | 'A'..'F';
+
+terminal fragment UNICODE_ESCAPE:
+ '\\' 'u' ( HEX_DIGIT ( HEX_DIGIT ( HEX_DIGIT HEX_DIGIT? )? )? )?;
+
+terminal fragment IDENTIFIER_PART:
+ IDENTIFIER_START_IMPL | IDENTIFIER_DIGITS | IDENTIFIER_PART_IMPL;
+
+terminal fragment IDENTIFIER_START:
+ IDENTIFIER_START_IMPL | IDENTIFIER_PART_IMPL;
+
+terminal WS:
+ (' '|'\t'|'\r'|'\n')+;
+
+terminal INT returns ecore::EInt:
+ ('0'..'9')+;
+
+terminal STRING:
+ '"' ('\\' . /* 'b'|'t'|'n'|'f'|'r'|'u'|'"'|"'"|'\\' */ | !('\\' | '"' | "'" | '\n' | '\r'))* '"';
+
+terminal RICH_STRING:
+ '@BEGIN@' -> '@END@';
+
+terminal ML_COMMENT: '/*' -> '*/';
+
+terminal SL_COMMENT: '//' !('\n'|'\r')* ('\r'? '\n')?;
+
+
+ConfigurationParserRule_OperatorWithMultipleOperand: OpHasComeEarlierThan | OpHasComeLaterThan | OpIsAllocatedTo | OpIsTranslatedTo | OpIsDisplayedOn | OpIsTranslatedViewTo | OpIsOutputtedOn | OpIsTranslatedSoundTo | OpIsTypeOf;
+
+ConfigurationParserRule_AreaOperatorForConstraint: OpAllocatedContent | OpContentValue | OpGetContentsList | OpIsDisplayed | OpDisplayingContent | OpIsHidden | OpIsChanged | OpIsTranslatedTo | OpIsChangedDisplay | OpIsTranslatedViewTo;
+
+ContentOperatorsCommon: OpIsActive | OpGetAllocatables | OpIsVisible | OpHasComeEarlierThan | OpHasComeLaterThan | OpStateValue | OpIsAllocatedTo | OpIsDisplayedOn;
+ConfigurationParserRule_ContentOperatorForConstraint: ContentOperatorsCommon;
+
+ConfigurationParserRule_ZoneOperatorForConstraint: OpAllocatedContent | OpContentValue | OpGetContentsList | OpIsOutputted | OpOutputtingSound | OpIsMuted | OpIsAttenuated | OpIsChanged | OpIsTranslatedTo | OpIsChangedOutput | OpIsTranslatedSoundTo;
+
+SoundOperatorsCommon: OpIsActive | OpGetAllocatables | OpIsSounding | OpHasComeEarlierThan | OpHasComeLaterThan | OpStateValue | OpIsAllocatedTo | OpIsOutputtedOn;
+ConfigurationParserRule_SoundOperatorForConstraint: SoundOperatorsCommon;
+
+ConfigurationParserRule_SceneOperatorForConstraint: OpIsOn;
+
+ConfigurationParserRule_PropertyOperatorForConstraint: OpGetProperty;
+
diff --git a/rba.tool.editor/src/rba/tool/editor/RBAModelRuntimeModule.xtend b/rba.tool.editor/src/rba/tool/editor/RBAModelRuntimeModule.xtend
new file mode 100644
index 0000000..dabff8f
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/RBAModelRuntimeModule.xtend
@@ -0,0 +1,88 @@
+/*
+ * generated by Xtext 2.12.0
+ */
+package rba.tool.editor
+
+import com.google.inject.Binder
+import com.google.inject.Provider
+import com.google.inject.name.Names
+import org.eclipse.xtext.linking.impl.DefaultLinkingService
+import org.eclipse.xtext.scoping.IScopeProvider
+import org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider
+import org.eclipse.xtext.validation.CompositeEValidator
+import rba.tool.editor.generator.RBAModelGeneratorExtensions
+import rba.tool.editor.generator.z3.ConstraintGeneratorImpl
+import rba.tool.editor.generator.z3.IConstraintGenerator
+import rba.tool.editor.generator.z3.ISortValueGenerator
+import rba.tool.editor.generator.z3.SortValueGeneratorImpl
+import rba.tool.editor.linking.RBAModelLinker
+import rba.tool.editor.linking.RBAModelLinkingService
+import rba.tool.editor.naming.RBAModelSimpleNameProvider
+import rba.tool.editor.resource.RBAModelLocationInFileProvider
+import rba.tool.editor.scoping.IExpressionScope
+import rba.tool.editor.scoping.RBAModelExpressionScope
+import rba.tool.editor.scoping.RBAModelImportedNamespaceAwareLocalScopeProvider
+import rba.tool.editor.scoping.internal.RBAModelMemberFieldScopes
+import rba.tool.editor.scoping.internal.RBAModelMemberOperationScopes
+import rba.tool.editor.validation.RBADiagnostician
+import rba.tool.editor.validation.RBAModelCompositeEValidatorProvider
+
+/**
+ * Use this class to register components to be used at runtime / without the Equinox extension registry.
+ */
+class RBAModelRuntimeModule extends AbstractRBAModelRuntimeModule {
+
+ override bindIQualifiedNameProvider() {
+ return RBAModelSimpleNameProvider;
+ }
+
+ override bindILinker() {
+ return RBAModelLinker;
+ }
+
+ def public Class<? extends ISortValueGenerator> bindISortValueGenerator() {
+ return SortValueGeneratorImpl;
+ }
+
+
+ def public Class<? extends IConstraintGenerator> bindIConstraintGenerator() {
+ return ConstraintGeneratorImpl;
+ }
+
+ override bindILocationInFileProvider() {
+ return RBAModelLocationInFileProvider;
+ }
+
+ def public Class<? extends RBAModelGeneratorExtensions> bindRBAModelGeneratorExtensions() {
+ return RBAModelGeneratorExtensions;
+ }
+
+ override bindDiagnostician() {
+ return RBADiagnostician;
+ }
+
+ def public Class<? extends IExpressionScope> bindIExpressionScope() {
+ return RBAModelExpressionScope;
+ }
+
+ def public Class<? extends RBAModelMemberFieldScopes> bindRBAModelMemberFieldScopes() {
+ return RBAModelMemberFieldScopes;
+ }
+
+ def public Class<? extends RBAModelMemberOperationScopes> bindRBAModelMemberOperationScopes() {
+ return RBAModelMemberOperationScopes;
+ }
+
+ def public Class<? extends Provider<CompositeEValidator>> provideRBAModelCompositeEValidatorProvider() {
+ return RBAModelCompositeEValidatorProvider;
+ }
+
+ def public Class<? extends DefaultLinkingService> bindRBAModelLinkingService() {
+ return RBAModelLinkingService;
+ }
+
+ override configureIScopeProviderDelegate(Binder binder) {
+ binder.bind(IScopeProvider).annotatedWith(Names.named(AbstractDeclarativeScopeProvider.NAMED_DELEGATE)).to(RBAModelImportedNamespaceAwareLocalScopeProvider);
+ }
+
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/RBAModelStandaloneSetup.xtend b/rba.tool.editor/src/rba/tool/editor/RBAModelStandaloneSetup.xtend
new file mode 100644
index 0000000..73b8b5f
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/RBAModelStandaloneSetup.xtend
@@ -0,0 +1,15 @@
+/*
+ * generated by Xtext 2.12.0
+ */
+package rba.tool.editor
+
+
+/**
+ * Initialization support for running Xtext languages without Equinox extension registry.
+ */
+class RBAModelStandaloneSetup extends RBAModelStandaloneSetupGenerated {
+
+ def static void doSetup() {
+ new RBAModelStandaloneSetup().createInjectorAndDoEMFRegistration()
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/formatting2/RBAModelFormatter.xtend b/rba.tool.editor/src/rba/tool/editor/formatting2/RBAModelFormatter.xtend
new file mode 100644
index 0000000..1a79638
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/formatting2/RBAModelFormatter.xtend
@@ -0,0 +1,132 @@
+/*
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.formatting2
+
+import com.google.inject.Inject
+import org.eclipse.xtext.formatting2.AbstractFormatter2
+import org.eclipse.xtext.formatting2.IFormattableDocument
+import rba.core.Content
+import rba.core.ContentSet
+import rba.core.ContentState
+import rba.core.PackagableElement
+import rba.core.Package
+import rba.core.Scene
+import rba.core.State
+import rba.tool.editor.rbaEditorModel.TopLevel
+import rba.tool.editor.services.RBAModelGrammarAccess
+import rba.view.Area
+import rba.view.AreaSet
+import rba.view.CompositeArea
+import rba.view.Display
+import rba.view.FixedPositionLayout
+import rba.view.HorizontalLayout
+import rba.view.PositionContainer
+import rba.view.Size
+import rba.view.VerticalLayout
+import rba.view.ViewContent
+
+class RBAModelFormatter extends AbstractFormatter2 {
+
+ @Inject RBAModelGrammarAccess grammarAccess;
+
+ def dispatch void format(TopLevel topLevel, extension IFormattableDocument document) {
+ System.out.println("---------------------------------");
+ System.out.println(document.class.simpleName);
+ System.out.println("---------------------------------");
+
+ for (Package _package : topLevel.getPackages()) {
+ _package.format;
+ }
+ }
+
+ def dispatch void format(Package _package, extension IFormattableDocument document) {
+ for (PackagableElement _packagableElement : _package.packagableelement) {
+ _packagableElement.format;
+ }
+ }
+
+ def dispatch void format(Display _display, extension IFormattableDocument document) {
+ if (_display.size !== null) {
+ _display.size.format
+ }
+ if (_display.root !== null) {
+ _display.root.format
+ }
+ }
+
+ def dispatch void format(CompositeArea _compositeArea, extension IFormattableDocument document) {
+ if (_compositeArea.layout !== null) {
+ _compositeArea.layout.format
+ }
+ }
+
+ def dispatch void format(FixedPositionLayout _fixedPositionLayout, extension IFormattableDocument document) {
+ for (subAreaPosition : _fixedPositionLayout.subAreaPosition) {
+ subAreaPosition.format
+ }
+ }
+
+ def dispatch void format(VerticalLayout _verticalLayout, extension IFormattableDocument document) {
+ for (subarea : _verticalLayout.subarea) {
+ // TODO -> ('subarea:' '[' (subarea+=[rba::AbstractArea|QualifiedName] ("," subarea+=[rba::AbstractArea|QualifiedName])*)? ']')?
+ }
+ }
+
+ def dispatch void format(HorizontalLayout _horizontalLayout, extension IFormattableDocument document) {
+ for (subarea : _horizontalLayout.subarea) {
+ // TODO -> ('subarea:' '[' (subarea+=[rba::AbstractArea|QualifiedName] ("," subarea+=[rba::AbstractArea|QualifiedName])*)? ']')?
+ }
+ }
+
+ def dispatch void format(PositionContainer _positionContainer, extension IFormattableDocument document) {
+ // TODO -> ('areaReference:' area=[rba::AbstractArea|QualifiedName])?
+ // TODO -> x & y
+ }
+
+ def dispatch void format(ContentSet _contentSet, extension IFormattableDocument document) {
+ for (target : _contentSet.target) {
+ // TODO -> ('target:' '[' (target+=[rba::AbstractContent|QualifiedName] ("," target+=[rba::AbstractContent|QualifiedName])*)? ']')?
+ }
+ }
+
+ def dispatch void format(Content _content, extension IFormattableDocument document) {
+ for (allocatable : _content.allocatable) {
+ // TODO -> ('allocatable:' '[' (allocatable+=[rba::Allocatable|QualifiedName] ("," allocatable+=[rba::Allocatable|QualifiedName])*)? ']')? &
+ }
+ for (state : _content.states) {
+ state.format
+ }
+ if (_content instanceof ViewContent) {
+ for (size : (_content as ViewContent).size) {
+ size.format
+ }
+ }
+ }
+
+ def dispatch void format(AreaSet _areaSet, extension IFormattableDocument document) {
+ for (target : _areaSet.target) {
+ // TODO -> ('target:' '[' (target+=[rba::AbstractArea|QualifiedName] ("," target+=[rba::AbstractArea|QualifiedName])*)? ']')?
+ }
+ }
+
+ def dispatch void format(Area _area, extension IFormattableDocument document) {
+ for (size : _area.size) {
+ size.format
+ }
+ // TODO -> visibility[ref Area]
+ // TODO -> zorder[ref Area]
+ }
+
+ def dispatch void format(Size _size, extension IFormattableDocument document) {
+ // TODO -> width & height
+ }
+
+ def dispatch void format(ContentState _contentState, extension IFormattableDocument document) {
+ // TODO -> priority[ref ContentState]
+ }
+
+ def dispatch void format(Scene _scene, extension IFormattableDocument document) {
+ }
+
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/generator/RBAModelGeneratorDelegate.xtend b/rba.tool.editor/src/rba/tool/editor/generator/RBAModelGeneratorDelegate.xtend
new file mode 100644
index 0000000..5d0b582
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/generator/RBAModelGeneratorDelegate.xtend
@@ -0,0 +1,184 @@
+package rba.tool.editor.generator
+
+import com.google.inject.Inject
+import java.util.Set
+import org.eclipse.emf.ecore.resource.Resource
+import org.eclipse.emf.ecore.resource.ResourceSet
+import org.eclipse.xtext.generator.GeneratorContext
+import org.eclipse.xtext.generator.IFileSystemAccess
+import org.eclipse.xtext.generator.IFileSystemAccess2
+import org.eclipse.xtext.generator.IGenerator
+import org.eclipse.xtext.generator.IGenerator2
+import org.eclipse.xtext.generator.IGeneratorContext
+import org.eclipse.xtext.generator.OutputConfiguration
+import org.eclipse.xtext.util.CancelIndicator
+import rba.tool.editor.generator.json.IJSONGenerator
+import rba.tool.editor.generator.rtmodel.IRTModelUpdater
+import rba.tool.editor.generator.z3.IConstraintGenerator
+import rba.tool.editor.generator.z3.ISortValueGenerator
+
+class RBAModelGeneratorDelegate implements IGenerator, IGenerator2 {
+
+ @Inject(optional=true)
+ private ISortValueGenerator sortValueGenerator;
+
+ private ThreadLocal<Boolean> sortValueGeneratorInBuilding = new ThreadLocal<Boolean>() {
+ override protected initialValue() {
+ return false;
+ }
+ };
+
+ @Inject(optional=true)
+ private IRTModelUpdater rtModelUpdater;
+
+ private ThreadLocal<Boolean> rtModelUpdaterInBuilding = new ThreadLocal<Boolean>() {
+ override protected initialValue() {
+ return false;
+ }
+ };
+
+ @Inject(optional=true)
+ private IConstraintGenerator constraintGenerator;
+
+ private ThreadLocal<Boolean> constraintGeneratorInBuilding = new ThreadLocal<Boolean>() {
+ override protected initialValue() {
+ return false;
+ }
+ };
+
+ @Inject(optional=true)
+ private IJSONGenerator jsonGenerator;
+
+ private ThreadLocal<Boolean> jsonGeneratorInBuilding = new ThreadLocal<Boolean>() {
+ override protected initialValue() {
+ return false;
+ }
+ };
+
+ def public void generate(Resource input, IFileSystemAccess2 fsa, IGeneratorContext context) {
+ generate(input.resourceSet, fsa, context);
+ }
+
+ def public void generate(ResourceSet input, IFileSystemAccess2 fsa, IGeneratorContext context) {
+ if (sortValueGenerator !== null && !sortValueGeneratorInBuilding.get.booleanValue) {
+ sortValueGeneratorInBuilding.set(true);
+ }
+ if (rtModelUpdater !== null && !rtModelUpdaterInBuilding.get.booleanValue) {
+ rtModelUpdaterInBuilding.set(true);
+ }
+ if (constraintGenerator !== null && !constraintGeneratorInBuilding.get.booleanValue) {
+ constraintGeneratorInBuilding.set(true);
+ }
+ if (jsonGenerator !== null && !jsonGeneratorInBuilding.get.booleanValue) {
+ jsonGeneratorInBuilding.set(true);
+ }
+
+ try {
+ beforeGenerate(input, fsa, context);
+ doGenerate(input, fsa, context);
+ } finally {
+ afterGenerate(input, fsa, context);
+ }
+ }
+
+ override doGenerate(Resource input, IFileSystemAccess2 fsa, IGeneratorContext context) {
+ doGenerate(input.resourceSet, fsa, context);
+ }
+
+ def void doGenerate(ResourceSet input, IFileSystemAccess2 fsa, IGeneratorContext context) {
+ if (sortValueGenerator !== null && sortValueGeneratorInBuilding.get.booleanValue) {
+ sortValueGenerator.doGenerate(input, fsa, context);
+ }
+ if (rtModelUpdater !== null && rtModelUpdaterInBuilding.get.booleanValue) {
+ rtModelUpdater.doGenerate(input, fsa, context);
+ }
+ if (constraintGenerator !== null && constraintGeneratorInBuilding.get.booleanValue) {
+ constraintGenerator.doGenerate(input, fsa, context);
+ }
+ if (jsonGenerator !== null && jsonGeneratorInBuilding.get.booleanValue) {
+ jsonGenerator.doGenerate(input, fsa, context);
+ }
+ }
+
+ override beforeGenerate(Resource input, IFileSystemAccess2 fsa, IGeneratorContext context) {
+ beforeGenerate(input.resourceSet, fsa, context);
+ }
+
+ def void beforeGenerate(ResourceSet input, IFileSystemAccess2 fsa, IGeneratorContext context) {
+ if (sortValueGenerator !== null && sortValueGeneratorInBuilding.get.booleanValue) {
+ sortValueGenerator.beforeGenerate(input, fsa, context);
+ }
+ if (rtModelUpdater !== null && rtModelUpdaterInBuilding.get.booleanValue) {
+ rtModelUpdater.beforeGenerate(input, fsa, context);
+ }
+ if (constraintGenerator !== null && constraintGeneratorInBuilding.get.booleanValue) {
+ constraintGenerator.beforeGenerate(input, fsa, context);
+ }
+ if (jsonGenerator !== null && jsonGeneratorInBuilding.get.booleanValue) {
+ jsonGenerator.beforeGenerate(input, fsa, context);
+ }
+ }
+
+ override afterGenerate(Resource input, IFileSystemAccess2 fsa, IGeneratorContext context) {
+ afterGenerate(input.resourceSet, fsa, context);
+ }
+
+ def void afterGenerate(ResourceSet input, IFileSystemAccess2 fsa, IGeneratorContext context) {
+ if (sortValueGenerator !== null && sortValueGeneratorInBuilding.get.booleanValue) {
+ sortValueGenerator.afterGenerate(input, fsa, context);
+ }
+ if (rtModelUpdater !== null && rtModelUpdaterInBuilding.get.booleanValue) {
+ rtModelUpdater.afterGenerate(input, fsa, context);
+ }
+ if (constraintGenerator !== null && constraintGeneratorInBuilding.get.booleanValue) {
+ constraintGenerator.afterGenerate(input, fsa, context);
+ }
+ if (jsonGenerator !== null && jsonGeneratorInBuilding.get.booleanValue) {
+ jsonGenerator.afterGenerate(input, fsa, context);
+ }
+ }
+
+ override doGenerate(Resource input, IFileSystemAccess fsa) {
+ doGenerate(input.resourceSet, fsa);
+ }
+
+ def void doGenerate(ResourceSet input, IFileSystemAccess fsa) {
+ val casted = fsa as IFileSystemAccess2;
+ val context = new GeneratorContext();
+ context.setCancelIndicator(CancelIndicator.NullImpl);
+ try {
+ beforeGenerate(input, casted, context);
+ doGenerate(input, casted, context);
+ } finally {
+ afterGenerate(input, casted, context);
+ }
+ }
+
+ def public void setRBAModelInBuilding(boolean value) {
+ sortValueGeneratorInBuilding.set(value);
+ rtModelUpdaterInBuilding.set(value);
+ constraintGeneratorInBuilding.set(value);
+ jsonGeneratorInBuilding.set(value);
+ }
+
+ def public boolean isRBAModelInBuilding() {
+ if (sortValueGeneratorInBuilding.get().booleanValue) {
+ return true;
+ }
+ if (rtModelUpdaterInBuilding.get().booleanValue) {
+ return true;
+ }
+ if (constraintGeneratorInBuilding.get().booleanValue) {
+ return true;
+ }
+ if (jsonGeneratorInBuilding.get().booleanValue) {
+ return true;
+ }
+ return false;
+ }
+
+ def public Set<OutputConfiguration> getRBAModelGeneratorOutputConfigurations() {
+ return newHashSet(IJSONGenerator.OUTPUT_CONFIGURATION);
+ }
+
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/generator/RBAModelGeneratorExtensions.xtend b/rba.tool.editor/src/rba/tool/editor/generator/RBAModelGeneratorExtensions.xtend
new file mode 100644
index 0000000..8666e9b
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/generator/RBAModelGeneratorExtensions.xtend
@@ -0,0 +1,680 @@
+package rba.tool.editor.generator
+
+import java.util.HashMap
+import java.util.Map
+import org.eclipse.emf.ecore.EObject
+import rba.core.AbstractProperty
+import rba.core.AllocatedContent
+import rba.core.AndOperator
+import rba.core.Content
+import rba.core.ContentSet
+import rba.core.ContentValue
+import rba.core.ExistsOperator
+import rba.core.Expression
+import rba.core.ForAllOperator
+import rba.core.GetAllocatables
+import rba.core.GetContentsList
+import rba.core.GetProperty
+import rba.core.IfActionOperator
+import rba.core.IfStatement
+import rba.core.ImpliesOperator
+import rba.core.IntegerValue
+import rba.core.IsActive
+import rba.core.IsCanceled
+import rba.core.IsDisappeared
+import rba.core.IsEqualToOperator
+import rba.core.IsGreaterThanEqualOperator
+import rba.core.IsGreaterThanOperator
+import rba.core.IsLowerThanEqualOperator
+import rba.core.IsLowerThanOperator
+import rba.core.IsOn
+import rba.core.LambdaExpression
+import rba.core.MaxValue
+import rba.core.MinValue
+import rba.core.NoneValue
+import rba.core.NotOperator
+import rba.core.ObjectCompare
+import rba.core.ObjectReference
+import rba.core.OffScene
+import rba.core.OnScene
+import rba.core.OrOperator
+import rba.core.PreviousModifier
+import rba.core.Scene
+import rba.core.SetOfOperator
+import rba.core.SetProperty
+import rba.core.StandardValue
+import rba.core.Variable
+import rba.sound.AllInstanceOfSoundContent
+import rba.sound.AllInstanceOfZone
+import rba.sound.IsAttenuated
+import rba.sound.IsMuted
+import rba.sound.IsOutputted
+import rba.sound.IsSounding
+import rba.sound.OutputtingSound
+import rba.sound.Zone
+import rba.sound.ZoneSet
+import rba.view.AllInstanceOfArea
+import rba.view.AllInstanceOfViewContent
+import rba.view.Area
+import rba.view.AreaSet
+import rba.view.DisplayingContent
+import rba.view.IsDisplayed
+import rba.view.IsHidden
+import rba.view.IsVisible
+import rba.core.ContentState
+import rba.core.State
+
+class RBAModelGeneratorExtensions {
+
+ public int operandIndex = 1;
+
+ public Map<EObject, String> variableNames = new HashMap<EObject, String>();
+
+ def public compile(Expression e, String text) '''
+ «e.compile(null, text, null)»
+ '''
+
+ def public compile(Expression e, LambdaExpression le, String text1, String text2) '''
+ «IF e instanceof IsEqualToOperator »
+ «(e as IsEqualToOperator).compile(text1)»
+ «ELSEIF e instanceof IsGreaterThanOperator »
+ «(e as IsGreaterThanOperator).compile(text1)»
+ «ELSEIF e instanceof IsLowerThanOperator »
+ «(e as IsLowerThanOperator).compile(text1)»
+ «ELSEIF e instanceof IsGreaterThanEqualOperator »
+ «(e as IsGreaterThanEqualOperator).compile(text1)»
+ «ELSEIF e instanceof IsLowerThanEqualOperator »
+ «(e as IsLowerThanEqualOperator).compile(text1)»
+ «ELSEIF e instanceof AndOperator »
+ «(e as AndOperator).compile(text1)»
+ «ELSEIF e instanceof OrOperator»
+ «(e as OrOperator).compile(text1)»
+ «ELSEIF e instanceof NotOperator»
+ «(e as NotOperator).compile(text1)»
+ «ELSEIF e instanceof ImpliesOperator»
+ «(e as ImpliesOperator).compile(text1)»
+ «ELSEIF e instanceof IsActive»
+ «(e as IsActive).compile(text1)»
+ «ELSEIF e instanceof IsVisible»
+ «(e as IsVisible).compile(text1)»
+ «ELSEIF e instanceof GetAllocatables»
+ «(e as GetAllocatables).compile(le, text1, text2)»
+ «ELSEIF e instanceof IsDisplayed»
+ «(e as IsDisplayed).compile(text1)»
+ «ELSEIF e instanceof IsHidden»
+ «(e as IsHidden).compile(text1)»
+ «ELSEIF e instanceof DisplayingContent»
+ «(e as DisplayingContent).compile(le, text1, text2)»
+ «ELSEIF e instanceof AllocatedContent»
+ «(e as AllocatedContent).compile(le, text1, text2)»
+ «ELSEIF e instanceof GetContentsList»
+ «(e as GetContentsList).compile(le, text1, text2)»
+ «ELSEIF e instanceof ContentValue»
+ «(e as ContentValue).compile(le, text1, text2)»
+ «ELSEIF e instanceof ObjectReference»
+ «(e as ObjectReference).compile(le, text1, text2)»
+ «ELSEIF e instanceof PreviousModifier»
+ «(e as PreviousModifier).compile(text1)»
+ «ELSEIF e instanceof ObjectCompare»
+ «(e as ObjectCompare).compile(text1)»
+ «ELSEIF e instanceof ForAllOperator»
+ «(e as ForAllOperator).compile(text1)»
+ «ELSEIF e instanceof ExistsOperator»
+ «(e as ExistsOperator).compile(text1)»
+ «ELSEIF e instanceof AllInstanceOfArea»
+ «(e as AllInstanceOfArea).compile(le, text1, text2)»
+ «ELSEIF e instanceof AllInstanceOfViewContent»
+ «(e as AllInstanceOfViewContent).compile(le, text1, text2)»
+ «ELSEIF e instanceof AllInstanceOfZone»
+ «(e as AllInstanceOfZone).compile(le, text1, text2)»
+ «ELSEIF e instanceof AllInstanceOfSoundContent»
+ «(e as AllInstanceOfSoundContent).compile(le, text1, text2)»
+ «ELSEIF e instanceof SetOfOperator»
+ «(e as SetOfOperator).compile(le, text1, text2)»
+ «ELSEIF e instanceof IfStatement»
+ «(e as IfStatement).compile(le, text1, text2)»
+ «ELSEIF e instanceof IsOn»
+ «(e as IsOn).compile(text1)»
+ «ELSEIF e instanceof IsDisappeared»
+ «(e as IsDisappeared).compile(text1)»
+ «ELSEIF e instanceof IsCanceled»
+ «(e as IsCanceled).compile(text1)»
+ «ELSEIF e instanceof GetProperty»
+ «(e as GetProperty).compile(le, text1, text2)»
+ «ELSEIF e instanceof SetProperty»
+ «(e as SetProperty).compile(le, text1, text2)»
+ «ELSEIF e instanceof OffScene»
+ «(e as OffScene).compile(text1)»
+ «ELSEIF e instanceof OnScene»
+ «(e as OnScene).compile(text1)»
+ «ELSEIF e instanceof IsSounding»
+ «(e as IsSounding).compile(text1)»
+ «ELSEIF e instanceof IsOutputted»
+ «(e as IsOutputted).compile(text1)»
+ «ELSEIF e instanceof IsMuted»
+ «(e as IsMuted).compile(text1)»
+ «ELSEIF e instanceof OutputtingSound»
+ «(e as OutputtingSound).compile(le, text1, text2)»
+ «ELSEIF e instanceof IsAttenuated»
+ «(e as IsAttenuated).compile(text1)»
+ «ELSEIF e instanceof IfActionOperator»
+ «(e as IfActionOperator).compile(le, text1, text2)»
+ «ELSEIF e instanceof MaxValue»
+ «(e as MaxValue).compile(text1)»
+ «ELSEIF e instanceof MinValue»
+ «(e as MinValue).compile(text1)»
+ «ELSEIF e instanceof NoneValue»
+ «(e as NoneValue).compile(text1)»
+ «ELSEIF e instanceof StandardValue»
+ «(e as StandardValue).compile(text1)»
+ «ELSEIF e instanceof IntegerValue»
+ «(e as IntegerValue).compile(text1)»
+ «ENDIF»
+ '''
+
+ def public compile(IsEqualToOperator o, String addExpressionStatement) '''
+ «var name = "isEqualToOperator_" + operandIndex++»
+ ARBIsEqualToOperator «name» = ArbFactory.eINSTANCE.createARBIsEqualToOperator();
+ «IF o.operand !== null && o.operand.size > 0»
+ «FOR op : o.operand»
+ «op.compile(name + ".getOperands().add")»
+ «ENDFOR»
+ «ENDIF»
+ «addExpressionStatement»(«name»);
+ '''
+
+ def public compile(IsGreaterThanOperator o, String addExpressionStatement) '''
+ «var name = "isGreaterThanOperator_" + operandIndex++»
+ ARBIsGreaterThanOperator «name» = ArbFactory.eINSTANCE.createARBIsGreaterThanOperator();
+ «IF o.operand !== null && o.operand.size > 0»
+ «FOR op : o.operand»
+ «op.compile(name + ".getOperands().add")»
+ «ENDFOR»
+ «ENDIF»
+ «addExpressionStatement»(«name»);
+ '''
+
+ def public compile(IsLowerThanOperator o, String addExpressionStatement) '''
+ «var name = "isLowerThanOperator_" + operandIndex++»
+ ARBIsLowerThanOperator «name» = ArbFactory.eINSTANCE.createARBIsLowerThanOperator();
+ «IF o.operand !== null && o.operand.size > 0»
+ «FOR op : o.operand»
+ «op.compile(name + ".getOperands().add")»
+ «ENDFOR»
+ «ENDIF»
+ «addExpressionStatement»(«name»);
+ '''
+
+ def public compile(IsGreaterThanEqualOperator o, String addExpressionStatement) '''
+ «var name = "isGreaterThanEqualOperator_" + operandIndex++»
+ ARBIsGreaterThanEqualOperator «name» = ArbFactory.eINSTANCE.createARBIsGreaterThanEqualOperator();
+ «IF o.operand !== null && o.operand.size > 0»
+ «FOR op : o.operand»
+ «op.compile(name + ".getOperands().add")»
+ «ENDFOR»
+ «ENDIF»
+ «addExpressionStatement»(«name»);
+ '''
+
+ def public compile(IsLowerThanEqualOperator o, String addExpressionStatement) '''
+ «var name = "isLowerThanEqualOperator_" + operandIndex++»
+ ARBIsLowerThanEqualOperator «name» = ArbFactory.eINSTANCE.createARBIsLowerThanEqualOperator();
+ «IF o.operand !== null && o.operand.size > 0»
+ «FOR op : o.operand»
+ «op.compile(name + ".getOperands().add")»
+ «ENDFOR»
+ «ENDIF»
+ «addExpressionStatement»(«name»);
+ '''
+
+ def public compile(AndOperator o, String addExpressionStatement) '''
+ «var name = "andOperator_" + operandIndex++»
+ ARBAndOperator «name» = ArbFactory.eINSTANCE.createARBAndOperator();
+ «IF o.operand !== null && o.operand.size > 0»
+ «FOR op : o.operand»
+ «op.compile(name + ".getOperands().add")»
+ «ENDFOR»
+ «ENDIF»
+ «addExpressionStatement»(«name»);
+ '''
+
+ def public compile(OrOperator o, String addExpressionStatement) '''
+ «var name = "orOperator_" + operandIndex++»
+ ARBOrOperator «name» = ArbFactory.eINSTANCE.createARBOrOperator();
+ «IF o.operand !== null && o.operand.size > 0»
+ «FOR op : o.operand»
+ «op.compile(name + ".getOperands().add")»
+ «ENDFOR»
+ «ENDIF»
+ «addExpressionStatement»(«name»);
+ '''
+
+ def public compile(NotOperator o, String addExpressionStatement) '''
+ «var name = "notOperator_" + operandIndex++»
+ ARBNotOperator «name» = ArbFactory.eINSTANCE.createARBNotOperator();
+ «IF o.operand !== null && o.operand.size > 0»
+ «FOR op : o.operand»
+ «op.compile(name + ".getOperands().add")»
+ «ENDFOR»
+ «ENDIF»
+ «addExpressionStatement»(«name»);
+ '''
+
+ def public compile(ImpliesOperator o, String addExpressionStatement) '''
+ «var name = "impliesOperator_" + operandIndex++»
+ ARBImpliesOperator «name» = ArbFactory.eINSTANCE.createARBImpliesOperator();
+ «IF o.operand !== null && o.operand.size > 0»
+ «FOR op : o.operand»
+ «op.compile(name + ".getOperands().add")»
+ «ENDFOR»
+ «ENDIF»
+ «addExpressionStatement»(«name»);
+ '''
+
+ def public compile(ObjectCompare o, String addExpressionStatement) '''
+ «var name = "objectCompair_" + operandIndex++»
+ ARBObjectCompare «name» = ArbFactory.eINSTANCE.createARBObjectCompare();
+ «IF o.operand !== null && o.operand.size > 0»
+ «FOR op : o.operand»
+ «op.compile(name + ".getOperands().add")»
+ «ENDFOR»
+ «ENDIF»
+ «addExpressionStatement»(«name»);
+ '''
+
+ def public compile(IsActive o, String addExpressionStatement) '''
+ «var name = "isActive_" + operandIndex++»
+ ARBIsActive «name» = ArbFactory.eINSTANCE.createARBIsActive();
+ «IF o.operand !== null && o.operand.size > 0»
+ «(o.operand.get(0)).compile(name + ".getOperands().add")»
+ «ENDIF»
+ «addExpressionStatement»(«name»);
+ '''
+
+ def public compile(IsVisible o, String addExpressionStatement) '''
+ «var name = "isVisible_" + operandIndex++»
+ ARBIsVisible «name» = ArbFactory.eINSTANCE.createARBIsVisible();
+ «IF o.operand !== null && o.operand.size > 0»
+ «(o.operand.get(0)).compile(name + ".getOperands().add")»
+ «ENDIF»
+ «addExpressionStatement»(«name»);
+ '''
+
+ def public compile(GetAllocatables o, LambdaExpression le, String addExpressionStatement, String parentName) '''
+ «var name = "getAllocatables_" + operandIndex++»
+ ARBGetAllocatables «name» = ArbFactory.eINSTANCE.createARBGetAllocatables();
+ «IF o.operand !== null && o.operand.size > 0»
+ «(o.operand.get(0)).compile(name + ".getOperands().add")»
+ «ENDIF»
+ «IF le !== null && parentName !== null && !parentName.empty»
+ «le.compile(parentName + ".setLambda", parentName, name)»
+ «ENDIF»
+ «addExpressionStatement»(«name»);
+ '''
+
+ def public compile(IsDisplayed o, String addExpressionStatement) '''
+ «var name = "isDisplayed_" + operandIndex++»
+ ARBIsDisplayed «name» = ArbFactory.eINSTANCE.createARBIsDisplayed();
+ «IF o.operand !== null && o.operand.size > 0»
+ «(o.operand.get(0)).compile(name + ".getOperands().add")»
+ «ENDIF»
+ «addExpressionStatement»(«name»);
+ '''
+
+ def public compile(IsHidden o, String addExpressionStatement) '''
+ «var name = "isHidden_" + operandIndex++»
+ ARBIsHidden «name» = ArbFactory.eINSTANCE.createARBIsHidden();
+ «IF o.operand !== null && o.operand.size > 0»
+ «(o.operand.get(0)).compile(name + ".getOperands().add")»
+ «ENDIF»
+ «addExpressionStatement»(«name»);
+ '''
+
+ def public compile(DisplayingContent o, LambdaExpression le, String addExpressionStatement, String parentName) '''
+ «var name = "displayingContent_" + operandIndex++»
+ ARBDisplayingContent «name» = ArbFactory.eINSTANCE.createARBDisplayingContent();
+ «IF o.operand !== null && o.operand.size > 0»
+ «(o.operand.get(0)).compile(name + ".getOperands().add")»
+ «ENDIF»
+ «IF le !== null && parentName !== null && !parentName.empty»
+ «le.compile(parentName + ".setLambda", parentName, name)»
+ «ENDIF»
+ «addExpressionStatement»(«name»);
+ '''
+
+ def public compile(AllocatedContent o, LambdaExpression le, String addExpressionStatement, String parentName) '''
+ «var name = "allocatedContent_" + operandIndex++»
+ ARBAllocatedContent «name» = ArbFactory.eINSTANCE.createARBAllocatedContent();
+ «IF o.operand !== null && o.operand.size > 0»
+ «(o.operand.get(0)).compile(name + ".getOperands().add")»
+ «ENDIF»
+ «IF le !== null && parentName !== null && !parentName.empty»
+ «le.compile(parentName + ".setLambda", parentName, name)»
+ «ENDIF»
+ «addExpressionStatement»(«name»);
+ '''
+
+ def public compile(GetContentsList o, LambdaExpression le, String addExpressionStatement, String parentName) '''
+ «var name = "getContentsList_" + operandIndex++»
+ ARBGetContentsList «name» = ArbFactory.eINSTANCE.createARBGetContentsList();
+ «IF o.operand !== null && o.operand.size > 0»
+ «(o.operand.get(0)).compile(name + ".getOperands().add")»
+ «ENDIF»
+ «IF le !== null && parentName !== null && !parentName.empty»
+ «le.compile(parentName + ".setLambda", parentName, name)»
+ «ENDIF»
+ «addExpressionStatement»(«name»);
+ '''
+
+ def public compile(ContentValue o, LambdaExpression le, String addExpressionStatement, String parentName) '''
+ «var name = "contentValue_" + operandIndex++»
+ ARBContentValue «name» = ArbFactory.eINSTANCE.createARBContentValue();
+ «IF o.operand !== null && o.operand.size > 0»
+ «(o.operand.get(0)).compile(name + ".getOperands().add")»
+ «ENDIF»
+ «IF le !== null && parentName !== null && !parentName.empty»
+ «le.compile(parentName + ".setLambda", parentName, name)»
+ «ENDIF»
+ «addExpressionStatement»(«name»);
+ '''
+
+ public static final String DummyIndicateCharacter = "|"; //$NON-NLS-1$
+
+ def public compile(ObjectReference o, LambdaExpression le, String addExpressionStatement, String parentName) '''
+ «var name = "objectReference_" + operandIndex++»
+ ARBObjectReference «name» = ArbFactory.eINSTANCE.createARBObjectReference();
+ «name».setRefObject(«IF o.refObject instanceof Scene »model.getScene("«o.refObject.name»"));«ELSEIF o.refObject instanceof ContentState »model.getContentState("«(o.refObject as ContentState).owner.name»", "«o.refObject.name»"));
+ «ELSEIF o.refObject instanceof AbstractProperty »model.getProperty("«(o.refObject as AbstractProperty).owner.name»", "«o.refObject.name»"));«ELSEIF o.refObject instanceof Zone »model.getAllocatable("«o.refObject.name»"));«ELSEIF o.refObject instanceof ZoneSet»model.getAllocatableSet("«o.refObject.name»"));«ELSEIF o.refObject instanceof Area »model.getAllocatable("«o.refObject.name»"));«ELSEIF o.refObject instanceof Content»model.getContent("«o.refObject.name»"));«ELSEIF o.refObject instanceof AreaSet»model.getAllocatableSet("«o.refObject.name»"));«ELSEIF o.refObject instanceof ContentSet»model.getContentSet("«o.refObject.name»"));«ELSEIF o.refObject instanceof Variable»«IF variableNames.containsKey(o.refObject)»«variableNames.get(o.refObject)»«ELSE»null«ENDIF»);«ENDIF»
+ «IF le !== null && parentName !== null && !parentName.empty»
+ «le.compile(parentName + ".setLambda", parentName, name)»
+ «ENDIF»
+ «addExpressionStatement»(«name»);
+ '''
+
+ def public compile(PreviousModifier o, String addExpressionStatement) '''
+ «var name = "previousModifier_" + operandIndex++»
+ ARBPreviousModifier «name» = ArbFactory.eINSTANCE.createARBPreviousModifier();
+ «IF o.objReference !== null»
+ «o.objReference.compile(name + ".setObjReference")»
+ «ELSE»
+ «name».setObjReference(null);
+ «ENDIF»
+ «addExpressionStatement»(«name»);
+ '''
+
+ def public compile(ForAllOperator o, String addExpressionStatement) '''
+ «var name = "forAllOperator_" + operandIndex++»
+ ARBForAllOperator «name» = ArbFactory.eINSTANCE.createARBForAllOperator();
+ «IF o.operand !== null && o.operand.size > 0 && o.lambda !== null»
+ «(o.operand.get(0)).compile(o.lambda, name + ".getOperands().add", name)»
+ «ENDIF»
+ «addExpressionStatement»(«name»);
+ '''
+
+ def public compile(ExistsOperator o, String addExpressionStatement) '''
+ «var name = "existsOperator_" + operandIndex++»
+ ARBExistsOperator «name» = ArbFactory.eINSTANCE.createARBExistsOperator();
+ «IF o.operand !== null && o.operand.size > 0 && o.lambda !== null»
+ «(o.operand.get(0)).compile(o.lambda, name + ".getOperands().add", name)»
+ «ENDIF»
+ «addExpressionStatement»(«name»);
+ '''
+
+ def public compile(LambdaExpression o, String addExpressionStatement, String refContextObjectName, String setExpressionStatement) '''
+ «var name = "lambdaExpression_" + operandIndex++»
+ ARBLambdaExpression «name» = ArbFactory.eINSTANCE.createARBLambdaExpression();
+ «name».setContext(«refContextObjectName»);
+ «IF o.x !== null && o.bodyText !== null»
+ «(o.x).compile(name + ".setX", setExpressionStatement)»
+ «(o.bodyText).compile(name + ".setBodyText")»
+ «ENDIF»
+ «addExpressionStatement»(«name»);
+ '''
+
+ def public compile(Variable v, String addExpressionStatement, String refExpressionObjectName) '''
+ «var name = "variable_" + operandIndex++»
+ «variableNames.put(v, name)»
+ ARBVariable «name» = ArbFactory.eINSTANCE.createARBVariable();
+ «name».setDescription(«IF v.description === null»""«ELSEIF v.description.empty»""«ELSE»«v.description»«ENDIF»);
+ «name».setName("«v.name»");
+ «name».setType(ARB«v.expressionType.class.simpleName».«v.expressionType.getName»);
+ «name».setExpression(«refExpressionObjectName»);
+ «addExpressionStatement»(«name»);
+ '''
+
+ def public compile(AllInstanceOfArea o, LambdaExpression le, String addExpressionStatement, String parentName) '''
+ «var name = "allInstanceOfArea_" + operandIndex++»
+ ARBAllInstanceOfArea «name» = ArbFactory.eINSTANCE.createARBAllInstanceOfArea();
+ «name».setRefObject(model.getAllArea());
+ «IF le !== null && parentName !== null && !parentName.empty»
+ «le.compile(parentName + ".setLambda", parentName, name)»
+ «ENDIF»
+ «addExpressionStatement»(«name»);
+ '''
+
+ def public compile(AllInstanceOfViewContent o, LambdaExpression le, String addExpressionStatement, String parentName) '''
+ «var name = "allInstanceOfViewContent_" + operandIndex++»
+ ARBAllInstanceOfContent «name» = ArbFactory.eINSTANCE.createARBAllInstanceOfContent();
+ «name».setRefObject(model.getAllViewContent());
+ «IF le !== null && parentName !== null && !parentName.empty»
+ «le.compile(parentName + ".setLambda", parentName, name)»
+ «ENDIF»
+ «addExpressionStatement»(«name»);
+ '''
+
+ def public compile(AllInstanceOfZone o, LambdaExpression le, String addExpressionStatement, String parentName) '''
+ «var name = "allInstanceOfZone_" + operandIndex++»
+ ARBAllInstanceOfZone «name» = ArbFactory.eINSTANCE.createARBAllInstanceOfZone();
+ «name».setRefObject(model.getAllZone());
+ «IF le !== null && parentName !== null && !parentName.empty»
+ «le.compile(parentName + ".setLambda", parentName, name)»
+ «ENDIF»
+ «addExpressionStatement»(«name»);
+ '''
+
+ def public compile(AllInstanceOfSoundContent o, LambdaExpression le, String addExpressionStatement, String parentName) '''
+ «var name = "allInstanceOfSoundContent_" + operandIndex++»
+ ARBAllInstanceOfSoundContent «name» = ArbFactory.eINSTANCE.createARBAllInstanceOfSoundContent();
+ «name».setRefObject(model.getAllSoundContent());
+ «IF le !== null && parentName !== null && !parentName.empty»
+ «le.compile(parentName + ".setLambda", parentName, name)»
+ «ENDIF»
+ «addExpressionStatement»(«name»);
+ '''
+
+ def public compile(SetOfOperator o, LambdaExpression le, String addExpressionStatement, String parentName) '''
+ «var name = "setOfOperator_" + operandIndex++»
+ ARBSetOfOperator «name» = ArbFactory.eINSTANCE.createARBSetOfOperator();
+ «IF o.operand !== null && o.operand.size > 0»
+ «FOR op : o.operand»
+ «op.compile(name + ".getOperands().add")»
+ «ENDFOR»
+ «ENDIF»
+ «IF le !== null && parentName !== null && !parentName.empty»
+ «le.compile(parentName + ".setLambda", parentName, name)»
+ «ENDIF»
+ «addExpressionStatement»(«name»);
+ '''
+
+ def public compile(IfStatement o, LambdaExpression le, String addExpressionStatement, String parentName) '''
+ «var name = "ifStatement_" + operandIndex++»
+ ARBIfStatement «name» = ArbFactory.eINSTANCE.createARBIfStatement();
+ «IF o.condition !== null»
+ «(o.condition).compile(name + ".setCondition")»
+ «ENDIF»
+ «IF o.thenExpression !== null»
+ «(o.thenExpression).compile(name + ".setThenExpression")»
+ «ENDIF»
+ «IF o.elseExpression !== null»
+ «(o.elseExpression).compile(name + ".setElseExpression")»
+ «ENDIF»
+ «IF le !== null && parentName !== null && !parentName.empty»
+ «le.compile(parentName + ".setLambda", parentName, name)»
+ «ENDIF»
+ «addExpressionStatement»(«name»);
+ '''
+
+ def public compile(IsOn o, String addExpressionStatement) '''
+ «var name = "isOn_" + operandIndex++»
+ ARBIsOn «name» = ArbFactory.eINSTANCE.createARBIsOn();
+ «IF o.operand !== null && o.operand.size > 0»
+ «(o.operand.get(0)).compile(name + ".getOperands().add")»
+ «ENDIF»
+ «addExpressionStatement»(«name»);
+ '''
+
+ def public compile(IsDisappeared o, String addExpressionStatement) '''
+ «var name = "isDisappeared_" + operandIndex++»
+ ARBIsDisappeared «name» = ArbFactory.eINSTANCE.createARBIsDisappeared();
+ «IF o.operand !== null && o.operand.size > 0»
+ «(o.operand.get(0)).compile(name + ".getOperands().add")»
+ «ENDIF»
+ «addExpressionStatement»(«name»);
+ '''
+
+ def public compile(IsCanceled o, String addExpressionStatement) '''
+ «var name = "isCanceled_" + operandIndex++»
+ ARBIsCanceled «name» = ArbFactory.eINSTANCE.createARBIsCanceled();
+ «IF o.operand !== null && o.operand.size > 0»
+ «(o.operand.get(0)).compile(name + ".getOperands().add")»
+ «ENDIF»
+ «addExpressionStatement»(«name»);
+ '''
+
+ def public compile(GetProperty o, LambdaExpression le, String addExpressionStatement, String parentName) '''
+ «var name = "getProperty_" + operandIndex++»
+ ARBGetProperty «name» = ArbFactory.eINSTANCE.createARBGetProperty();
+ «IF o.operand !== null && o.operand.size > 0»
+ «(o.operand.get(0)).compile(name + ".getOperands().add")»
+ «ENDIF»
+ «IF le !== null && parentName !== null && !parentName.empty»
+ «le.compile(parentName + ".setLambda", parentName, name)»
+ «ENDIF»
+ «addExpressionStatement»(«name»);
+ '''
+
+ def public compile(SetProperty o, LambdaExpression le, String addExpressionStatement, String parentName) '''
+ «var name = "setProperty_" + operandIndex++»
+ ARBSetProperty «name» = ArbFactory.eINSTANCE.createARBSetProperty();
+ «IF o.operand !== null && o.operand.size > 0»
+ «FOR op : o.operand»
+ «op.compile(name + ".getOperands().add")»
+ «ENDFOR»
+ «ENDIF»
+ «IF le !== null && parentName !== null && !parentName.empty»
+ «le.compile(parentName + ".setLambda", parentName, name)»
+ «ENDIF»
+ «addExpressionStatement»(«name»);
+ '''
+
+ def public compile(OffScene o, String addExpressionStatement) '''
+ «var name = "offScene_" + operandIndex++»
+ ARBOffScene «name» = ArbFactory.eINSTANCE.createARBOffScene();
+ «IF o.operand !== null && o.operand.size > 0»
+ «(o.operand.get(0)).compile(name + ".getOperands().add")»
+ «ENDIF»
+ «addExpressionStatement»(«name»);
+ '''
+
+ def public compile(OnScene o, String addExpressionStatement) '''
+ «var name = "onScene_" + operandIndex++»
+ ARBOnScene «name» = ArbFactory.eINSTANCE.createARBOnScene();
+ «IF o.operand !== null && o.operand.size > 0»
+ «(o.operand.get(0)).compile(name + ".getOperands().add")»
+ «ENDIF»
+ «addExpressionStatement»(«name»);
+ '''
+
+ def public compile(IsSounding o, String addExpressionStatement) '''
+ «var name = "isSounding_" + operandIndex++»
+ ARBIsSounding «name» = ArbFactory.eINSTANCE.createARBIsSounding();
+ «IF o.operand !== null && o.operand.size > 0»
+ «(o.operand.get(0)).compile(name + ".getOperands().add")»
+ «ENDIF»
+ «addExpressionStatement»(«name»);
+ '''
+
+ def public compile(IsOutputted o, String addExpressionStatement) '''
+ «var name = "isOutputted_" + operandIndex++»
+ ARBIsOutputted «name» = ArbFactory.eINSTANCE.createARBIsOutputted();
+ «IF o.operand !== null && o.operand.size > 0»
+ «(o.operand.get(0)).compile(name + ".getOperands().add")»
+ «ENDIF»
+ «addExpressionStatement»(«name»);
+ '''
+
+ def public compile(IsMuted o, String addExpressionStatement) '''
+ «var name = "isMuted_" + operandIndex++»
+ ARBIsMuted «name» = ArbFactory.eINSTANCE.createARBIsMuted();
+ «IF o.operand !== null && o.operand.size > 0»
+ «(o.operand.get(0)).compile(name + ".getOperands().add")»
+ «ENDIF»
+ «addExpressionStatement»(«name»);
+ '''
+
+ def public compile(OutputtingSound o, LambdaExpression le, String addExpressionStatement, String parentName) '''
+ «var name = "outputtingSound_" + operandIndex++»
+ ARBOutputtingSound «name» = ArbFactory.eINSTANCE.createARBOutputtingSound();
+ «IF o.operand !== null && o.operand.size > 0»
+ «(o.operand.get(0)).compile(name + ".getOperands().add")»
+ «ENDIF»
+ «IF le !== null && parentName !== null && !parentName.empty»
+ «le.compile(parentName + ".setLambda", parentName, name)»
+ «ENDIF»
+ «addExpressionStatement»(«name»);
+ '''
+
+ def public compile(IsAttenuated o, String addExpressionStatement) '''
+ «var name = "isAttenuated_" + operandIndex++»
+ ARBIsAttenuated «name» = ArbFactory.eINSTANCE.createARBIsAttenuated();
+ «IF o.operand !== null && o.operand.size > 0»
+ «(o.operand.get(0)).compile(name + ".getOperands().add")»
+ «ENDIF»
+ «addExpressionStatement»(«name»);
+ '''
+
+ def public compile(IfActionOperator o, LambdaExpression le, String addExpressionStatement, String parentName) '''
+ «var name = "ifActionOperator_" + operandIndex++»
+ ARBIfActionOperator «name» = ArbFactory.eINSTANCE.createARBIfActionOperator();
+ «IF o.operand !== null && o.operand.size > 0»
+ «FOR op : o.operand»
+ «op.compile(name + ".getOperands().add")»
+ «ENDFOR»
+ «ENDIF»
+ «IF le !== null && parentName !== null && !parentName.empty»
+ «le.compile(parentName + ".setLambda", parentName, name)»
+ «ENDIF»
+ «addExpressionStatement»(«name»);
+ '''
+
+ def public compile(MaxValue o, String addExpressionStatement) '''
+ «var name = "maxValue_" + operandIndex++»
+ ARBMaxValue «name» = ArbFactory.eINSTANCE.createARBMaxValue();
+ «addExpressionStatement»(«name»);
+ '''
+
+ def public compile(MinValue o, String addExpressionStatement) '''
+ «var name = "minValue_" + operandIndex++»
+ ARBMinValue «name» = ArbFactory.eINSTANCE.createARBMinValue();
+ «addExpressionStatement»(«name»);
+ '''
+
+ def public compile(NoneValue o, String addExpressionStatement) '''
+ «var name = "noneValue_" + operandIndex++»
+ ARBNoneValue «name» = ArbFactory.eINSTANCE.createARBNoneValue();
+ «addExpressionStatement»(«name»);
+ '''
+
+ def public compile(StandardValue o, String addExpressionStatement) '''
+ «var name = "standardValue_" + operandIndex++»
+ ARBStandardValue «name» = ArbFactory.eINSTANCE.createARBStandardValue();
+ «addExpressionStatement»(«name»);
+ '''
+
+ def public compile(IntegerValue o, String addExpressionStatement) '''
+ «var name = "integerValue_" + operandIndex++»
+ ARBIntegerValue «name» = ArbFactory.eINSTANCE.createARBIntegerValue();
+ «name».setValue(«o.value»);
+ «addExpressionStatement»(«name»);
+ '''
+} \ No newline at end of file
diff --git a/rba.tool.editor/src/rba/tool/editor/generator/json/AbstractJSONGenerator.xtend b/rba.tool.editor/src/rba/tool/editor/generator/json/AbstractJSONGenerator.xtend
new file mode 100644
index 0000000..5b5715e
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/generator/json/AbstractJSONGenerator.xtend
@@ -0,0 +1,52 @@
+package rba.tool.editor.generator.json
+
+import java.util.List
+import org.eclipse.emf.ecore.resource.Resource
+import org.eclipse.emf.ecore.resource.ResourceSet
+import org.eclipse.emf.workspace.util.WorkspaceSynchronizer
+import org.eclipse.xtext.generator.AbstractFileSystemAccess
+import org.eclipse.xtext.generator.AbstractGenerator
+import org.eclipse.xtext.generator.IFileSystemAccess2
+import org.eclipse.xtext.generator.IGeneratorContext
+import rba.tool.editor.model.manager.ResourceManager
+import rba.view.Display
+
+abstract class AbstractJSONGenerator extends AbstractGenerator implements IJSONGenerator {
+
+ override doGenerate(Resource input, IFileSystemAccess2 fsa, IGeneratorContext context) {
+ doGenerate(input.resourceSet, fsa, context);
+ }
+
+ override beforeGenerate(ResourceSet input, IFileSystemAccess2 fsa, IGeneratorContext context) {
+ }
+
+ override afterGenerate(ResourceSet input, IFileSystemAccess2 fsa, IGeneratorContext context) {
+ }
+
+ override doGenerate(ResourceSet resourceSet, IFileSystemAccess2 fsa, IGeneratorContext context) {
+ if (resourceSet.resources.empty) {
+ return;
+ }
+ val resource = resourceSet.resources.get(0);
+ val file = WorkspaceSynchronizer.getFile(resource);
+ if (!file.exists) {
+ return;
+ }
+
+ val project = file.project;
+ if (project === null) {
+ return;
+ }
+
+ if (!(fsa instanceof AbstractFileSystemAccess)) {
+ return;
+ }
+
+ val allDisplays = ResourceManager.INSTANCE.getRbaDisplays(resourceSet);
+
+ fsa.generateFile("data.js", OUTPUT_CONFIGURATION.name, createJSONFile(allDisplays));
+ }
+
+ def abstract public String createJSONFile(List<Display> displays);
+
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/generator/json/IJSONGenerator.xtend b/rba.tool.editor/src/rba/tool/editor/generator/json/IJSONGenerator.xtend
new file mode 100644
index 0000000..e65c130
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/generator/json/IJSONGenerator.xtend
@@ -0,0 +1,18 @@
+package rba.tool.editor.generator.json
+
+import org.eclipse.emf.ecore.resource.ResourceSet
+import org.eclipse.xtext.generator.IFileSystemAccess2
+import org.eclipse.xtext.generator.IGenerator2
+import org.eclipse.xtext.generator.IGeneratorContext
+import org.eclipse.xtext.generator.OutputConfiguration
+
+interface IJSONGenerator extends IGenerator2 {
+
+ static OutputConfiguration OUTPUT_CONFIGURATION = new JSONGeneratorOutputConfiguration();
+
+ def void doGenerate(ResourceSet input, IFileSystemAccess2 fsa, IGeneratorContext context);
+
+ def void beforeGenerate(ResourceSet input, IFileSystemAccess2 fsa, IGeneratorContext context);
+
+ def void afterGenerate(ResourceSet input, IFileSystemAccess2 fsa, IGeneratorContext context);
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/generator/json/JSONGeneratorOutputConfiguration.xtend b/rba.tool.editor/src/rba/tool/editor/generator/json/JSONGeneratorOutputConfiguration.xtend
new file mode 100644
index 0000000..fc6a73c
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/generator/json/JSONGeneratorOutputConfiguration.xtend
@@ -0,0 +1,18 @@
+package rba.tool.editor.generator.json
+
+import org.eclipse.xtext.generator.OutputConfiguration
+
+class JSONGeneratorOutputConfiguration extends OutputConfiguration {
+
+ new() {
+ super("RBAMODEL_JSONGENERATOR_OUTPUT");
+ setDescription("Output Folder");
+ setOutputDirectory("./.RBATool/graphicalview/data");
+ setOverrideExistingResources(true);
+ setCreateOutputDirectory(true);
+ setCleanUpDerivedResources(true);
+ setSetDerivedProperty(true);
+ setKeepLocalHistory(true);
+ }
+
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/generator/rtmodel/AbstractRTModelUpdater.xtend b/rba.tool.editor/src/rba/tool/editor/generator/rtmodel/AbstractRTModelUpdater.xtend
new file mode 100644
index 0000000..4435813
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/generator/rtmodel/AbstractRTModelUpdater.xtend
@@ -0,0 +1,23 @@
+package rba.tool.editor.generator.rtmodel
+
+import org.eclipse.emf.ecore.resource.Resource
+import org.eclipse.emf.ecore.resource.ResourceSet
+import org.eclipse.xtext.generator.AbstractGenerator
+import org.eclipse.xtext.generator.IFileSystemAccess2
+import org.eclipse.xtext.generator.IGeneratorContext
+
+abstract class AbstractRTModelUpdater extends AbstractGenerator implements IRTModelUpdater {
+
+ override doGenerate(Resource input, IFileSystemAccess2 fsa, IGeneratorContext context) {
+ doGenerate(input.resourceSet, fsa, context);
+ }
+
+ override beforeGenerate(ResourceSet input, IFileSystemAccess2 fsa, IGeneratorContext context) {
+ }
+
+ override afterGenerate(ResourceSet input, IFileSystemAccess2 fsa, IGeneratorContext context) {
+ }
+
+// override doGenerate(ResourceSet resourceSet, IFileSystemAccess2 fsa, IGeneratorContext context) {
+// }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/generator/rtmodel/IRTModelUpdater.xtend b/rba.tool.editor/src/rba/tool/editor/generator/rtmodel/IRTModelUpdater.xtend
new file mode 100644
index 0000000..010e508
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/generator/rtmodel/IRTModelUpdater.xtend
@@ -0,0 +1,15 @@
+package rba.tool.editor.generator.rtmodel
+
+import org.eclipse.emf.ecore.resource.ResourceSet
+import org.eclipse.xtext.generator.IFileSystemAccess2
+import org.eclipse.xtext.generator.IGenerator2
+import org.eclipse.xtext.generator.IGeneratorContext
+
+interface IRTModelUpdater extends IGenerator2 {
+
+ def void doGenerate(ResourceSet input, IFileSystemAccess2 fsa, IGeneratorContext context);
+
+ def void beforeGenerate(ResourceSet input, IFileSystemAccess2 fsa, IGeneratorContext context);
+
+ def void afterGenerate(ResourceSet input, IFileSystemAccess2 fsa, IGeneratorContext context);
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/generator/z3/ConstraintCodeGenerationSupporter.java b/rba.tool.editor/src/rba/tool/editor/generator/z3/ConstraintCodeGenerationSupporter.java
new file mode 100644
index 0000000..b587cc7
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/generator/z3/ConstraintCodeGenerationSupporter.java
@@ -0,0 +1,1599 @@
+package rba.tool.editor.generator.z3;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+import rba.core.AbstractAllocatable;
+import rba.core.AbstractConstraint;
+import rba.core.AbstractContent;
+import rba.core.ActiveContents;
+import rba.core.Allocatable;
+import rba.core.AllocatableSet;
+import rba.core.AllocatedContent;
+import rba.core.AndOperator;
+import rba.core.ComplexExpression;
+import rba.core.Constraint;
+import rba.core.Content;
+import rba.core.ContentSet;
+import rba.core.ContentValue;
+import rba.core.ExistsOperator;
+import rba.core.Expression;
+import rba.core.ExpressionType;
+import rba.core.ForAllOperator;
+import rba.core.GetAllocatables;
+import rba.core.GetContentsList;
+import rba.core.GetProperty;
+import rba.core.HasBeenDisplayed;
+import rba.core.HasComeEarlierThan;
+import rba.core.HasComeLaterThan;
+import rba.core.IfStatement;
+import rba.core.ImpliesOperator;
+import rba.core.IntegerProperty;
+import rba.core.IntegerValue;
+import rba.core.IsActive;
+import rba.core.IsCanceled;
+import rba.core.IsDisappeared;
+import rba.core.IsEqualToOperator;
+import rba.core.IsGreaterThanEqualOperator;
+import rba.core.IsGreaterThanOperator;
+import rba.core.IsLowerThanEqualOperator;
+import rba.core.IsLowerThanOperator;
+import rba.core.IsOn;
+import rba.core.LambdaContext;
+import rba.core.LambdaExpression;
+import rba.core.NotOperator;
+import rba.core.ObjectCompare;
+import rba.core.ObjectReference;
+import rba.core.OrOperator;
+import rba.core.PreviousModifier;
+import rba.core.RuleObject;
+import rba.core.Scene;
+import rba.core.SetOfOperator;
+import rba.core.SugarExpression;
+import rba.core.Variable;
+import rba.sound.AllInstanceOfSoundContent;
+import rba.sound.AllInstanceOfZone;
+import rba.sound.IsAttenuated;
+import rba.sound.IsMuted;
+import rba.sound.IsOutputted;
+import rba.sound.IsSounding;
+import rba.sound.OutputtingSound;
+import rba.sound.SoundContent;
+import rba.sound.SoundContentSet;
+import rba.sound.Zone;
+import rba.sound.ZoneSet;
+import rba.view.AllInstanceOfArea;
+import rba.view.AllInstanceOfViewContent;
+import rba.view.Area;
+import rba.view.AreaSet;
+import rba.view.DisplayingContent;
+import rba.view.IsDisplayed;
+import rba.view.IsHidden;
+import rba.view.IsVisible;
+import rba.view.ViewContent;
+import rba.view.ViewContentSet;
+
+public class ConstraintCodeGenerationSupporter implements GeneratorConstants {
+
+ static ConstraintCodeTemplate template = new ConstraintCodeTemplate();
+
+ private List<Allocatable> allocatableList = new ArrayList<Allocatable>();
+
+ private int areaListEndIndex;
+
+ private List<Content> contentList = new ArrayList<Content>();
+
+ private int viewContentListEndIndex;
+
+ private int soundContentListEndIndex;
+
+ private List<ContentSet> contentSetList = new ArrayList<ContentSet>();
+
+ private int viewContentSetListEndIndex;
+
+ private List<AllocatableSet> allocatableSetList = new ArrayList<AllocatableSet>();
+
+ private int areaSetListEndIndex;
+
+ private List<Variable> variableList;
+
+ private List<Constraint> constraintList;
+
+ private List<Scene> sceneList;
+
+ private List<SetOfOperator> setOfOpeList;
+
+ private Map<Variable, String> variableNameMap = new HashMap<Variable, String>();
+
+ private Map<AllocatableSet, String> allocatableSetNameMap = new HashMap<AllocatableSet, String>();
+
+ private Map<ContentSet, String> contentSetNameMap = new HashMap<ContentSet, String>();
+
+ private Map<String, String> SetOfNameMap = new HashMap<String, String>();
+
+ private List<ImpliseConstraintInfo> impliseMethodList = new ArrayList<ImpliseConstraintInfo>();
+
+ private List<ImpliseConstraintInfo> postImpliseMethodList = new ArrayList<ImpliseConstraintInfo>();
+
+ public String generate(List<ViewContent> viewContentList, List<SoundContent> soundContentList, List<Area> areaList, List<Zone> zoneList,
+ List<ViewContentSet> viewContentSetList, List<SoundContentSet> soundContentSetList, List<AreaSet> areaSetList, List<ZoneSet> zoneSetList, List<Variable> variables,
+ List<Constraint> constraints, List<Scene> scenes, List<SetOfOperator> setOfOperators) {
+ this.variableList = variables;
+ this.constraintList = constraints;
+ this.sceneList = scenes;
+ this.setOfOpeList = setOfOperators;
+
+ variableNameMap.clear();
+ allocatableSetNameMap.clear();
+ contentSetNameMap.clear();
+ SetOfNameMap.clear();
+ impliseMethodList.clear();
+ postImpliseMethodList.clear();
+
+ allocatableList.clear();
+ contentList.clear();
+ allocatableSetList.clear();
+ contentSetList.clear();
+
+ areaListEndIndex = areaList.size();
+ allocatableList.addAll(areaList);
+ allocatableList.addAll(zoneList);
+
+ viewContentListEndIndex = viewContentList.size();
+ soundContentListEndIndex = viewContentListEndIndex + soundContentList.size();
+ contentList.addAll(viewContentList);
+ contentList.addAll(soundContentList);
+
+ areaSetListEndIndex = areaSetList.size();
+ allocatableSetList.addAll(areaSetList);
+ allocatableSetList.addAll(zoneSetList);
+
+ viewContentSetListEndIndex = viewContentSetList.size();
+ contentSetList.addAll(viewContentSetList);
+ contentSetList.addAll(soundContentSetList);
+
+ StringBuilder setupList_Adding = new StringBuilder();
+ StringBuilder init_Adding = new StringBuilder();
+ StringBuilder fieldVariableAdding = new StringBuilder();
+ StringBuilder allocatable_content_sizeAdding = new StringBuilder();
+
+ StringBuilder constraintList_Adding = new StringBuilder();
+ StringBuilder impliesConstraintMethodList_Adding = new StringBuilder();
+ StringBuilder impliesConstraintMethodCallList_Adding = new StringBuilder();
+
+ setAllocatableContext(allocatableList.subList(0, areaListEndIndex), init_Adding, "Area");
+ setAllocatableContext(allocatableList.subList(areaListEndIndex, allocatableList.size()), init_Adding, "Zone");
+ setContetContext(contentList.subList(0, viewContentListEndIndex), init_Adding, "ViewContent");
+ setContetContext(contentList.subList(viewContentListEndIndex, soundContentListEndIndex), init_Adding, "SoundContent");
+
+ setAllocatableSetContext(AREASET_VAR_NAME, allocatableSetList.subList(0, areaSetListEndIndex), init_Adding, fieldVariableAdding, setupList_Adding);
+ setAllocatableSetContext(ZONESET_VAR_NAME, allocatableSetList.subList(areaSetListEndIndex, allocatableSetList.size()), init_Adding, fieldVariableAdding, setupList_Adding);
+ setContentSetContext(VIEW_CONTENTSET_VAR_NAME, contentSetList.subList(0, viewContentSetListEndIndex), init_Adding, fieldVariableAdding, setupList_Adding);
+ setContentSetContext(SOUND_CONTENTSET_VAR_NAME, contentSetList.subList(viewContentSetListEndIndex, contentSetList.size()), init_Adding, fieldVariableAdding,
+ setupList_Adding);
+
+ allocatable_content_sizeAdding.append(_8SPACES + "allocatableSize = ctx.mkInt(" + allocatableList.size() + ");" + NL);
+ allocatable_content_sizeAdding.append(_8SPACES + "contentSize = ctx.mkInt(" + contentList.size() + ");");
+
+ for (int i = 0; i < variableList.size(); i++) {
+ Variable variable = variableList.get(i);
+ String varName = VARIABLE_VAR_NAME + (i + 1);
+ String define = String.format(VARIABLE_DEFINE, varName);
+
+ constraintList_Adding.append(_8SPACES + VARIABLE_CMT + variable.getName() + NL);
+ constraintList_Adding.append(_8SPACES + define + NL);
+ constraintList_Adding.append(_8SPACES + varName + ARRAY_TOP + String.format(SET_VARIABLE_VALUE, variable.getName()) + NL);
+
+ variableNameMap.put(variable, varName);
+ }
+
+ for (int i = 0; i < setOfOpeList.size(); i++) {
+ SetOfOperator setOfOp = setOfOpeList.get(i);
+
+ String varName = SETOF_OP_VAR_NAME + (i + 1);
+ String expressionText = setOfOp.getExpressionText();
+ String string = SetOfNameMap.get(expressionText);
+ if (string != null) {
+ continue;
+ }
+ SetOfNameMap.put(expressionText, varName);
+
+ String label = STR_QUOTE + CONSTRAINT_PREFIX + varName + STR_QUOTE;
+ String storeStr = getStoreExpr(setOfOp);
+
+ fieldVariableAdding.append(_4SPACES + ARRAY_EXPR_SORT + varName + END + NL);
+
+ setupList_Adding
+ .append(_8SPACES + varName + EQUAL + EX_CTX_MK_ARRAY_CONST + OPEN + STR_QUOTE + varName + STR_QUOTE + COMMA + INT_TYPE + COMMA + BOOL_TYPE + CLOSE + END + NL);
+
+ init_Adding.append(_8SPACES + SL_COMMENT + varName + EQUAL + expressionText + NL);
+ init_Adding.append(_8SPACES + CONSTR_LIST_ADD + OPEN + EX_CTX_MK_EQ + OPEN + varName + COMMA + storeStr + CLOSE + CLOSE + END + NL);
+ init_Adding.append(_8SPACES + CONSTR_LABEL_LIST_ADD + OPEN + EX_CTX_MK_BOOL_CONST + OPEN + label + CLOSE + CLOSE + END + NL);
+ }
+
+ constraintList_Adding.append(NL);
+
+ for (int i = 0; i < constraintList.size(); i++) {
+ Constraint constraint = constraintList.get(i);
+ if (constraint.getExpression() == null) {
+ continue;
+ }
+
+ setConstraintList(constraintList_Adding, impliesConstraintMethodList_Adding, constraint, constraint.isRuntime(), i);
+ }
+
+ for (ImpliseConstraintInfo info : impliseMethodList) {
+ setImpliesConstraintMethod(impliesConstraintMethodCallList_Adding, info);
+ }
+
+ String invarianceConstraintStr = getInvarianceConstraintStr(false);
+ String invariancePreConstraintStr = getInvarianceConstraintStr(true);
+
+ template.allocatable_content_set_code = fieldVariableAdding.toString();
+ template.allocatable_content_size_code = allocatable_content_sizeAdding.toString();
+ template.setup_code = setupList_Adding.toString();
+ template.init_code = init_Adding.toString();
+ template.constraints_code = constraintList_Adding.toString();
+ template.implies_constraints_call_code = impliesConstraintMethodCallList_Adding.toString();
+ template.implies_constraints_method_code = impliesConstraintMethodList_Adding.toString();
+ template.invariance_constr_code = invarianceConstraintStr;
+ template.invariance_pre_constr_code = invariancePreConstraintStr;
+
+ return template.getCompleteCode();
+ }
+
+ private void setAllocatableContext(List<Allocatable> list, StringBuilder init_Adding, String elementId) {
+ if (list.isEmpty()) {
+ return;
+ }
+
+ for (int i = 0; i < list.size(); i++) {
+ Allocatable area = list.get(i);
+
+ String contents = getContents(area);
+ String storeStr = getStoreExpr(area);
+
+ int index = allocatableList.indexOf(area);
+
+ init_Adding.append(_8SPACES + SL_COMMENT + area.getName() + " = { " + contents + " }" + NL);
+
+ String selectLeft = EX_CTX_MK_SELECT + OPEN + OP_CONTENTS_LIST + COMMA + EX_CTX_MK_INT + OPEN + (index + 1) + CLOSE + CLOSE;
+ init_Adding.append(_8SPACES + CONSTR_LIST_ADD + OPEN + EX_CTX_MK_EQ + OPEN + selectLeft + COMMA + storeStr + CLOSE + CLOSE + END + NL);
+ String labelContentList = STR_QUOTE + CONSTRAINT_PREFIX + area.getName() + DOT + OP_CONTENTS_LIST + STR_QUOTE;
+ init_Adding.append(_8SPACES + CONSTR_LABEL_LIST_ADD + OPEN + EX_CTX_MK_BOOL_CONST + OPEN + labelContentList + CLOSE + CLOSE + END + NL);
+ }
+ init_Adding.append(NL);
+ }
+
+ private void setContetContext(List<Content> list, StringBuilder init_Adding, String elementId) {
+ if (list.isEmpty()) {
+ return;
+ }
+
+ for (int i = 0; i < list.size(); i++) {
+ Content content = list.get(i);
+
+ String allocatable = getAllocatables(content);
+ String storeStr = getStoreExpr(content);
+
+ int index = contentList.indexOf(content);
+
+ init_Adding.append(_8SPACES + SL_COMMENT + content.getName() + " = { " + allocatable + " }" + NL);
+
+ String selectLeft = EX_CTX_MK_SELECT + OPEN + OP_ALLOCATABLE + COMMA + EX_CTX_MK_INT + OPEN + (index + 1) + CLOSE + CLOSE;
+ init_Adding.append(_8SPACES + CONSTR_LIST_ADD + OPEN + EX_CTX_MK_EQ + OPEN + selectLeft + COMMA + storeStr + CLOSE + CLOSE + END + NL);
+ String labelContentList = STR_QUOTE + CONSTRAINT_PREFIX + content.getName() + DOT + OP_ALLOCATABLE + STR_QUOTE;
+ init_Adding.append(_8SPACES + CONSTR_LABEL_LIST_ADD + OPEN + EX_CTX_MK_BOOL_CONST + OPEN + labelContentList + CLOSE + CLOSE + END + NL);
+ }
+ init_Adding.append(NL);
+ }
+
+ private void setAllocatableSetContext(String name, List<AllocatableSet> list, StringBuilder init_Adding, StringBuilder fieldVariableAdding, StringBuilder setupList_Adding) {
+ if (list.isEmpty()) {
+ return;
+ }
+
+ for (int i = 0; i < list.size(); i++) {
+ AllocatableSet set = list.get(i);
+ String varName = name + (i + 1);
+ String label = STR_QUOTE + CONSTRAINT_PREFIX + set.getName() + STR_QUOTE;
+ String areas = getAreas(set);
+ String storeStr = getStoreExpr(set);
+
+ fieldVariableAdding.append(_4SPACES + ARRAY_EXPR_SORT + varName + END + NL);
+
+ setupList_Adding
+ .append(_8SPACES + varName + EQUAL + EX_CTX_MK_ARRAY_CONST + OPEN + STR_QUOTE + varName + STR_QUOTE + COMMA + INT_TYPE + COMMA + BOOL_TYPE + CLOSE + END + NL);
+
+ init_Adding.append(_8SPACES + SL_COMMENT + set.getName() + " = { " + areas + " }" + NL);
+ init_Adding.append(_8SPACES + CONSTR_LIST_ADD + OPEN + EX_CTX_MK_EQ + OPEN + varName + COMMA + storeStr + CLOSE + CLOSE + END + NL);
+ init_Adding.append(_8SPACES + CONSTR_LABEL_LIST_ADD + OPEN + EX_CTX_MK_BOOL_CONST + OPEN + label + CLOSE + CLOSE + END + NL);
+
+ allocatableSetNameMap.put(set, varName);
+ }
+ setupList_Adding.append(NL);
+ init_Adding.append(NL);
+ }
+
+ private void setContentSetContext(String name, List<ContentSet> list, StringBuilder init_Adding, StringBuilder fieldVariableAdding, StringBuilder setupList_Adding) {
+ if (list.isEmpty()) {
+ return;
+ }
+
+ for (int i = 0; i < list.size(); i++) {
+ ContentSet contentSet = list.get(i);
+ String varName = name + (i + 1);
+ String label = STR_QUOTE + CONSTRAINT_PREFIX + contentSet.getName() + STR_QUOTE;
+ String contents = getContents(contentSet);
+ String storeStr = getStoreExpr(contentSet);
+
+ fieldVariableAdding.append(_4SPACES + ARRAY_EXPR_SORT + varName + END + NL);
+
+ setupList_Adding
+ .append(_8SPACES + varName + EQUAL + EX_CTX_MK_ARRAY_CONST + OPEN + STR_QUOTE + varName + STR_QUOTE + COMMA + INT_TYPE + COMMA + BOOL_TYPE + CLOSE + END + NL);
+
+ init_Adding.append(_8SPACES + SL_COMMENT + contentSet.getName() + " = { " + contents + " }" + NL);
+ init_Adding.append(_8SPACES + CONSTR_LIST_ADD + OPEN + EX_CTX_MK_EQ + OPEN + varName + COMMA + storeStr + CLOSE + CLOSE + END + NL);
+ init_Adding.append(_8SPACES + CONSTR_LABEL_LIST_ADD + OPEN + EX_CTX_MK_BOOL_CONST + OPEN + label + CLOSE + CLOSE + END + NL);
+
+ contentSetNameMap.put(contentSet, varName);
+ }
+ init_Adding.append(NL);
+ }
+
+ private void setConstraintList(StringBuilder constraintList_Adding, StringBuilder impliesConstraintMethodList_Adding, AbstractConstraint constraint, boolean runtime,
+ int index) {
+
+ String label = STR_QUOTE + NUMBER + String.valueOf(index + 1) + ":" + constraint.getName() + STR_QUOTE;
+ String expressionText = constraint.getExpression().getExpressionText();
+ constraintList_Adding.append(_8SPACES + SL_COMMENT + expressionText + NL);
+ String constraintContextString = "";
+
+ try {
+ constraintContextString = getContextString(constraint.getExpression());
+ } catch (Exception e) {
+ constraintList_Adding.append(NL);
+ e.printStackTrace();
+ return;
+ }
+
+ Expression targetExpression = constraint.getExpression() instanceof ComplexExpression ? ((ComplexExpression)constraint.getExpression()).getOtherExpression() : constraint.getExpression();
+
+ if (isBoolOperator(targetExpression)) {
+ constraintContextString = EX_BOOL_EXPR + constraintContextString;
+ }
+
+ String indent = "";
+ if (!runtime) {
+ indent = _4SPACES;
+ constraintList_Adding.append(_8SPACES + IF_OFFLINE + NL);
+ }
+ constraintList_Adding.append(indent + _8SPACES + CONSTR_LIST_ADD + OPEN + constraintContextString + CLOSE + END + NL);
+ constraintList_Adding.append(indent + _8SPACES + CONSTR_LABEL_LIST_ADD + OPEN + EX_CTX_MK_BOOL_CONST + OPEN + label + CLOSE + CLOSE + END + NL);
+ if (!runtime) {
+ constraintList_Adding.append(_8SPACES + BLOCK_CLOSE + NL);
+ }
+ constraintList_Adding.append(NL);
+
+ if (isImplieseOperator(targetExpression)) {
+ impliesConstraintMethodList_Adding.append(getimpliesConstraintMethodsStr(constraint, index));
+ }
+ }
+
+ private void setImpliesConstraintMethod(StringBuilder impliesConstraintMethodCallList_Adding, ImpliseConstraintInfo info) {
+ int index = info.getIndex() + 1;
+ String indent = "";
+ if (!info.isRuntime()) {
+ indent = _4SPACES;
+ impliesConstraintMethodCallList_Adding.append(_8SPACES + IF_OFFLINE + NL);
+ }
+ String methodName = info.getMethodName();
+
+ impliesConstraintMethodCallList_Adding.append(indent + _8SPACES + String.format(IMPLIES_CONSTRAINT_METHOD_DETAIL1, index) + methodName + END + NL);
+ impliesConstraintMethodCallList_Adding.append(indent + _8SPACES + String.format(IMPLIES_CONSTRAINT_METHOD_DETAIL2, index, index) + NL);
+ impliesConstraintMethodCallList_Adding
+ .append(indent + _4SPACES + _8SPACES + String.format(IMPLIES_CONSTRAINT_METHOD_DETAIL3, index, info.getConstraint().getName(), index) + END + NL);
+ impliesConstraintMethodCallList_Adding.append(indent + _4SPACES + _8SPACES + String.format(IMPLIES_CONSTRAINT_METHOD_DETAIL4, index) + NL);
+ impliesConstraintMethodCallList_Adding.append(indent + _8SPACES + _8SPACES + IMPLIES_CONSTRAINT_METHOD_DETAIL5 + END + NL);
+ impliesConstraintMethodCallList_Adding.append(indent + _4SPACES + _8SPACES + BLOCK_CLOSE + NL);
+ impliesConstraintMethodCallList_Adding.append(indent + _8SPACES + BLOCK_CLOSE + NL);
+ if (!info.isRuntime()) {
+ impliesConstraintMethodCallList_Adding.append(_8SPACES + BLOCK_CLOSE + NL);
+ }
+ impliesConstraintMethodCallList_Adding.append(NL);
+ }
+
+ private String getimpliesConstraintMethodsStr(AbstractConstraint constraint, int index) {
+ StringBuilder methodsCommentList_Adding = new StringBuilder();
+ StringBuilder constraintList_Adding = new StringBuilder();
+
+ Expression targetExpression = constraint.getExpression() instanceof ComplexExpression ? ((ComplexExpression)constraint.getExpression()).getOtherExpression() : constraint.getExpression();
+ Expression leftExpression = ((ImpliesOperator) targetExpression).getOperand().get(0);
+
+ ImpliseConstraintInfo info = new ImpliseConstraintInfo();
+ info.setIndex(index);
+ info.setConstraint(constraint);
+ String methodName = "";
+ String allConstMethodName = "";
+
+ if (constraint instanceof Constraint) {
+ // method name
+ methodName = String.format(IMPLIES_CONSTRAINT_METHOD_NAME, (index + 1));
+ allConstMethodName = "setAllConstraintContext";
+ info.setMethodName(methodName);
+ impliseMethodList.add(info);
+ }
+
+ // comment
+ methodsCommentList_Adding.append(_4SPACES + CMT_CONTENT_IMPLIES_METHOD1 + NL);
+ String leftText = leftExpression.getExpressionText();
+ methodsCommentList_Adding.append(_4SPACES + String.format(CMT_CONTENT_IMPLIES_METHOD2, leftText) + NL);
+ methodsCommentList_Adding.append(_4SPACES + CMT_CONTENT_IMPLIES_METHOD3 + constraint.getName() + NL);
+ methodsCommentList_Adding.append(_4SPACES + CMT_CONTENT_IMPLIES_METHOD4 + constraint.getExpression().getExpressionText());
+
+ if (isIncludeLambdaExpression(leftExpression)) {
+ List<Variable> list = getVariables(leftExpression);
+
+ for (int i = 0; i < list.size(); i++) {
+ Variable variable = list.get(i);
+ String varName = variableNameMap.get(variable);
+ String define = String.format(VARIABLE_DEFINE, varName);
+
+ constraintList_Adding.append(_8SPACES + VARIABLE_CMT + variable.getName() + NL);
+ constraintList_Adding.append(_8SPACES + define + NL);
+ constraintList_Adding.append(_8SPACES + varName + ARRAY_TOP + String.format(SET_VARIABLE_VALUE, variable.getName()) + NL);
+ }
+ constraintList_Adding.append(NL);
+ }
+
+ // constraint
+ String expression = getContextString(leftExpression);
+ String label = STR_QUOTE + NUMBER_ZERO + constraint.getName() + STR_QUOTE;
+ constraintList_Adding.append(_8SPACES + CONSTR_LIST_ADD + OPEN + EX_CTX_MK_EQ + OPEN + expression + COMMA + EX_CTX_MK_TRUE + CLOSE + CLOSE + END + NL);
+ constraintList_Adding.append(_8SPACES + CONSTR_LABEL_LIST_ADD + OPEN + EX_CTX_MK_BOOL_CONST + OPEN + label + CLOSE + CLOSE + END + NL);
+
+ template.implies_constrName = label;
+ template.implies_constraints_comment_code = methodsCommentList_Adding.toString();
+ template.implies_constraints_methodName_code = _4SPACES + String.format(IMPLIES_CONSTRAINT_METHOD, methodName);
+ template.implies_constraints_true_code = constraintList_Adding.toString();
+
+ return template.getImpliesConstraintMethodCode(allConstMethodName);
+ }
+
+ private String getInvarianceConstraintStr(boolean isPre) {
+ StringBuilder invariance_constr_Adding = new StringBuilder();
+
+ invariance_constr_Adding.append(getInvarianceConstraintStr_IN01(isPre));
+ invariance_constr_Adding.append(NL);
+ invariance_constr_Adding.append(getInvarianceConstraintStr_IN02(isPre));
+ invariance_constr_Adding.append(NL);
+ invariance_constr_Adding.append(getInvarianceConstraintStr_IN03(isPre));
+
+ return invariance_constr_Adding.toString();
+ }
+
+ private String getInvarianceConstraintStr_IN01(boolean isPre) {
+ String preLabel = "";
+ String opDisplayingContent = OP_DISPLAYING_CONTENT;
+ if (isPre) {
+ opDisplayingContent = OP_PRE_DISPLAYING_CONTENT;
+ preLabel = "(pre)";
+ }
+ return getInvarianceConstraintStr_IN01_IN03_Impl(preLabel, opDisplayingContent, "IN01");
+ }
+
+ private String getInvarianceConstraintStr_IN01_IN03_Impl(String preLabel, String expr, String inKind) {
+ StringBuilder invariance_constr_Adding = new StringBuilder();
+
+ invariance_constr_Adding.append(_8SPACES + "// Area." + expr + " == contentsList.get(n) OR Area." + expr + " == contentsList.get(n+1) ...)");
+ invariance_constr_Adding.append(NL);
+
+ for (int i = 0; i < allocatableList.size(); i++) {
+ Allocatable mainArea = allocatableList.get(i);
+ String leftLabel = mainArea.getName() + "." + expr + " == ";
+ String areaMkInt = EX_CTX_MK_INT + OPEN + String.valueOf(i + 1) + CLOSE;
+ String leftconstr = EX_CTX_MK_EQ + OPEN + EX_CTX_MK_SELECT + OPEN + expr + COMMA + areaMkInt + CLOSE + COMMA;
+
+ StringBuffer constrLabel = new StringBuffer();
+ StringBuffer constr = new StringBuffer();
+
+ constrLabel.append(STR_QUOTE + inKind +":Constraint " + preLabel + "_" + String.valueOf(i + 1) + " - (" + leftLabel);
+
+ List<Content> mainContents = mainArea.getContentsList();
+
+ int childSize = mainContents.size();
+ if (childSize == 0) {
+ constrLabel.append("NULL");
+ constr.append(leftconstr + "defNull" + CLOSE);
+ } else {
+ for (int k = 0; k < mainContents.size(); k++) {
+ Content content = mainContents.get(k);
+ String contentName = content.getName();
+
+ int index = contentList.indexOf(content);
+ String contentMkInt = EX_CTX_MK_INT + OPEN + String.valueOf(index + 1) + CLOSE;
+ String subConstr = "";
+ if (k == 0 && k != mainContents.size() - 1) {
+ subConstr = EX_CTX_MK_OR + OPEN;
+ }
+
+ constrLabel.append(contentName);
+ constr.append(subConstr + leftconstr + contentMkInt + CLOSE);
+
+ if (k != mainContents.size() - 1) {
+ constrLabel.append(" OR ");
+ constr.append(COMMA);
+ } else {
+ if (mainContents.size() != 1) {
+ constr.append(CLOSE);
+ }
+ }
+ }
+ }
+ constrLabel.append(")" + STR_QUOTE);
+
+ invariance_constr_Adding.append(_8SPACES + CONSTR_LIST_ADD + OPEN + constr.toString() + CLOSE + END + NL);
+ invariance_constr_Adding.append(_8SPACES + CONSTR_LABEL_LIST_ADD + OPEN + EX_CTX_MK_BOOL_CONST + OPEN + constrLabel.toString() + CLOSE + CLOSE + END + NL);
+ }
+
+ return invariance_constr_Adding.toString();
+ }
+
+ private String getInvarianceConstraintStr_IN02(boolean isPre) {
+
+ int constNum = 1;
+ StringBuilder invariance_constr_Adding = new StringBuilder();
+ String opIsDisplayed = OP_IS_DISPLAYED;
+ String opIsVisible = OP_IS_VISIBLE;
+ String preLabel = "";
+ if (isPre) {
+ opIsDisplayed = OP_PRE_IS_DISPLAYED;
+ opIsVisible = OP_PRE_IS_VISIBLE;
+ preLabel = "(pre)";
+ }
+
+ invariance_constr_Adding.append(_8SPACES + "// a." + opIsDisplayed + "->c." + opIsVisible + " AND c." + opIsVisible + "->a." + opIsDisplayed);
+ invariance_constr_Adding.append(NL);
+
+ for (int i = 0; i < allocatableList.size(); i++) {
+ Allocatable mainArea = allocatableList.get(i);
+ String areaIsDisplayed = mainArea.getName() + "." + opIsDisplayed;
+ String areaMkInt = EX_CTX_MK_INT + OPEN + String.valueOf(i + 1) + CLOSE;
+
+ List<Content> mainContents = mainArea.getContentsList();
+
+ if (mainContents.size() != 1) {
+ continue;
+ }
+
+ for (int j = 0; j < mainContents.size(); j++) {
+ StringBuffer constrLabel = new StringBuffer();
+ StringBuffer constr = new StringBuffer();
+ Content mainContent = mainContents.get(j);
+
+ if (mainContent.getAllocatableList().size() != 1) {
+ continue;
+ }
+
+ int index = contentList.indexOf(mainContent);
+ String contentIsVisible = mainContent.getName() + "." + opIsVisible;
+ String mainContentMkInt = EX_CTX_MK_INT + OPEN + String.valueOf(index + 1) + CLOSE;
+
+ constrLabel.append(STR_QUOTE + "IN02:Constraint" + preLabel + "_" + String.valueOf(constNum) + " - " + areaIsDisplayed + " -> " + contentIsVisible + " AND "
+ + contentIsVisible + " -> " + areaIsDisplayed + STR_QUOTE);
+ constNum++;
+
+ constr.append(EX_CTX_MK_AND + OPEN);
+ constr.append(EX_CTX_MK_IMPLIES + OPEN + EX_BOOL_EXPR + EX_CTX_MK_SELECT + OPEN + opIsDisplayed + COMMA + areaMkInt + CLOSE + COMMA + EX_BOOL_EXPR
+ + EX_CTX_MK_SELECT + OPEN + opIsVisible + COMMA + mainContentMkInt + CLOSE + CLOSE);
+ constr.append(COMMA);
+ constr.append(EX_CTX_MK_IMPLIES + OPEN + EX_BOOL_EXPR + EX_CTX_MK_SELECT + OPEN + opIsVisible + COMMA + mainContentMkInt + CLOSE + COMMA + EX_BOOL_EXPR
+ + EX_CTX_MK_SELECT + OPEN + opIsDisplayed + COMMA + areaMkInt + CLOSE + CLOSE);
+ constr.append(CLOSE);
+
+ invariance_constr_Adding.append(_8SPACES + CONSTR_LIST_ADD + OPEN + constr.toString() + CLOSE + END + NL);
+ invariance_constr_Adding.append(_8SPACES + CONSTR_LABEL_LIST_ADD + OPEN + EX_CTX_MK_BOOL_CONST + OPEN + constrLabel.toString() + CLOSE + CLOSE + END + NL);
+ }
+ }
+
+ return invariance_constr_Adding.toString();
+ }
+
+ private String getInvarianceConstraintStr_IN03(boolean isPre) {
+ String preLabel = "";
+ String opAllocatedContent = OP_ALLOCATED_CONTENT;
+ if (isPre) {
+ opAllocatedContent = OP_PRE_ALLOCATED_CONTENT;
+ preLabel = "(pre)";
+ }
+ return getInvarianceConstraintStr_IN01_IN03_Impl(preLabel, opAllocatedContent, "IN03");
+ }
+
+ private boolean isIncludeLambdaExpression(Expression expression) {
+
+ for (Iterator<EObject> iterator = expression.eAllContents(); iterator.hasNext();) {
+ EObject object = iterator.next();
+ if (object instanceof LambdaContext | object instanceof LambdaExpression) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private List<Variable> getVariables(Expression expression) {
+ List<Variable> list = new ArrayList<Variable>();
+
+ for (Iterator<EObject> iterator = expression.eAllContents(); iterator.hasNext();) {
+ EObject object = iterator.next();
+ if (object instanceof Variable) {
+ list.add((Variable) object);
+ }
+ }
+ return list;
+ }
+
+ private boolean isImplieseOperator(Expression expression) {
+ if (expression instanceof ImpliesOperator) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean isBoolOperator(Expression expression) {
+ if (expression instanceof IsVisible) {
+ return true;
+ } else if (expression instanceof IsDisplayed) {
+ return true;
+ } else if (expression instanceof IsActive) {
+ return true;
+ } else if (expression instanceof IsHidden) {
+ return true;
+ } else if (expression instanceof IfStatement) {
+ return true;
+ } else if (expression instanceof IsDisappeared) {
+ return true;
+ } else if (expression instanceof IsCanceled) {
+ return true;
+ } else if (expression instanceof IsMuted) {
+ return true;
+ } else if (expression instanceof IsOutputted) {
+ return true;
+ } else if (expression instanceof IsAttenuated) {
+ return true;
+ } else if (expression instanceof IsSounding) {
+ return true;
+ } else if (expression instanceof IsOn) {
+ return true;
+ } else if (expression instanceof HasBeenDisplayed) {
+ return true;
+ } else if (expression instanceof HasComeEarlierThan) {
+ return true;
+ } else if (expression instanceof HasComeLaterThan) {
+ return true;
+ }
+ return false;
+ }
+
+ private String getStoreExpr(Allocatable allocatable) {
+ String context = EMP_ARRAY_CONST;
+
+ List<Content> contentsList = allocatable.getContentsList();
+
+ for (int i = 0; i < contentList.size(); i++) {
+ Content content = contentList.get(i);
+ if (contentsList.contains(content)) {
+ context = String.format(STORE_TEMPLATE, context, (i + 1));
+ }
+ }
+
+ return context;
+ }
+
+ private String getStoreExpr(Content content) {
+ String context = EMP_ARRAY_CONST;
+
+ for (int i = 0; i < allocatableList.size(); i++) {
+ Allocatable area = allocatableList.get(i);
+ if (content.getAllocatableList().contains(area)) {
+ context = String.format(STORE_TEMPLATE, context, (i + 1));
+ }
+ }
+
+ return context;
+ }
+
+ private String getStoreExpr(AllocatableSet allocatableSet) {
+ String context = EMP_ARRAY_CONST;
+ List<RuleObject> set = getRuleObjectsBySet(allocatableSet, new ArrayList<RuleObject>());
+
+ for (int i = 0; i < allocatableList.size(); i++) {
+ Allocatable area = allocatableList.get(i);
+ if (set.contains(area)) {
+ context = String.format(STORE_TEMPLATE, context, (i + 1));
+ }
+ }
+
+ return context;
+ }
+
+ private String getStoreExpr(ContentSet contentSet) {
+ String context = EMP_ARRAY_CONST;
+ List<RuleObject> set = getRuleObjectsBySet(contentSet, new ArrayList<RuleObject>());
+
+ for (int i = 0; i < contentList.size(); i++) {
+ Content content = contentList.get(i);
+ if (set.contains(content)) {
+ context = String.format(STORE_TEMPLATE, context, (i + 1));
+ }
+ }
+
+ return context;
+ }
+
+ private String getStoreExpr(SetOfOperator op) {
+ String context = EMP_ARRAY_CONST;
+
+ List<RuleObject> objects = new ArrayList<RuleObject>();
+ EList<Expression> operand = op.getOperand();
+ if (operand.isEmpty()) {
+ return context;
+ }
+
+ for (Expression expression : operand) {
+ if (!(expression instanceof ObjectReference)) {
+ continue;
+ }
+
+ RuleObject refObject = ((ObjectReference) expression).getRefObject();
+ if (refObject instanceof Content || refObject instanceof Allocatable) {
+ objects.add(refObject);
+ } else if (refObject instanceof ContentSet | refObject instanceof AllocatableSet) {
+ objects.addAll(getRuleObjectsBySet(refObject, new ArrayList<RuleObject>()));
+ }
+ }
+
+ if (objects.isEmpty()) {
+ return context;
+ }
+
+ if (objects.get(0) instanceof Area) {
+ for (int i = 0; i < allocatableList.size(); i++) {
+ Allocatable area = allocatableList.get(i);
+ if (objects.contains(area)) {
+ context = String.format(STORE_TEMPLATE, context, (i + 1));
+ }
+ }
+ } else if (objects.get(0) instanceof Zone) {
+ for (int i = 0; i < allocatableList.size(); i++) {
+ Allocatable zone = allocatableList.get(i);
+ if (objects.contains(zone)) {
+ context = String.format(STORE_TEMPLATE, context, (i + 1));
+ }
+ }
+ } else if (objects.get(0) instanceof ViewContent) {
+ for (int i = 0; i < contentList.size(); i++) {
+ Content content = contentList.get(i);
+ if (objects.contains(content)) {
+ context = String.format(STORE_TEMPLATE, context, (i + 1));
+ }
+ }
+ } else if (objects.get(0) instanceof SoundContent) {
+ for (int i = 0; i < contentList.size(); i++) {
+ Content content = contentList.get(i);
+ if (objects.contains(content)) {
+ context = String.format(STORE_TEMPLATE, context, (i + 1));
+ }
+ }
+ }
+
+ return context;
+ }
+
+ private List<RuleObject> getRuleObjectsBySet(RuleObject refObject, List<RuleObject> elementSetList) {
+ Set<RuleObject> sets = new HashSet<RuleObject>();
+
+ if (refObject instanceof AllocatableSet) {
+ AllocatableSet set = (AllocatableSet) refObject;
+ for (AbstractAllocatable abst : set.getTarget()) {
+ if (abst instanceof Allocatable) {
+ sets.add(abst);
+ } else if (abst instanceof AllocatableSet) {
+ if (!elementSetList.contains(abst)) {
+ elementSetList.add(abst);
+ sets.addAll(getRuleObjectsBySet(abst, elementSetList));
+ }
+ }
+ }
+ }
+ if (refObject instanceof ContentSet) {
+ ContentSet set = (ContentSet) refObject;
+ for (AbstractContent abst : set.getTarget()) {
+ if (abst instanceof Content) {
+ sets.add(abst);
+ } else if (abst instanceof ContentSet) {
+ if (!elementSetList.contains(abst)) {
+ elementSetList.add(abst);
+ sets.addAll(getRuleObjectsBySet(abst, elementSetList));
+ }
+ }
+ }
+ }
+
+ return new ArrayList<RuleObject>(sets);
+ }
+
+ private String getContents(Allocatable allocatable) {
+ String contentStr = "";
+ List<Content> contents = allocatable.getContentsList();
+
+ for (Content content : contents) {
+ contentStr += content.getName();
+ if (contents.indexOf(content) != contents.size() - 1) {
+ contentStr += COMMA + " ";
+ }
+ }
+ return contentStr;
+ }
+
+ private String getAllocatables(Content content) {
+ String areas = "";
+ EList<Allocatable> allocatables = content.getAllocatableList();
+ for (AbstractAllocatable allocatable : allocatables) {
+ areas += allocatable.getName();
+ if (allocatables.indexOf(allocatable) != allocatables.size() - 1) {
+ areas += COMMA + " ";
+ }
+ }
+ return areas;
+ }
+
+ private String getAreas(AllocatableSet set) {
+ String areas = "";
+
+ for (AbstractAllocatable area : set.getTarget()) {
+ areas += area.getName();
+ if (set.getTarget().indexOf(area) != set.getTarget().size() - 1) {
+ areas += COMMA + " ";
+ }
+ }
+ return areas;
+ }
+
+ private String getContents(ContentSet contentSet) {
+ String contents = "";
+
+ for (AbstractContent content : contentSet.getTarget()) {
+ contents += content.getName();
+ if (contentSet.getTarget().indexOf(content) != contentSet.getTarget().size() - 1) {
+ contents += COMMA + " ";
+ }
+ }
+ return contents;
+ }
+
+ private String getContextString(Expression expression) {
+ String contextString = null;
+
+ if (expression instanceof ComplexExpression) {
+ contextString = getContextString(((ComplexExpression) expression).getOtherExpression());
+ } else if (expression instanceof AndOperator) {
+ contextString = resolveExpression((AndOperator) expression);
+ } else if (expression instanceof OrOperator) {
+ contextString = resolveExpression((OrOperator) expression);
+ } else if (expression instanceof NotOperator) {
+ contextString = resolveExpression((NotOperator) expression);
+ } else if (expression instanceof ImpliesOperator) {
+ contextString = resolveExpression((ImpliesOperator) expression);
+ } else if (expression instanceof ObjectCompare) {
+ contextString = resolveExpression((ObjectCompare) expression);
+ } else if (expression instanceof IsEqualToOperator) {
+ contextString = resolveExpression((IsEqualToOperator) expression);
+ } else if (expression instanceof IsGreaterThanOperator) {
+ contextString = resolveExpression((IsGreaterThanOperator) expression);
+ } else if (expression instanceof IsGreaterThanEqualOperator) {
+ contextString = resolveExpression((IsGreaterThanEqualOperator) expression);
+ } else if (expression instanceof IsLowerThanOperator) {
+ contextString = resolveExpression((IsLowerThanOperator) expression);
+ } else if (expression instanceof IsLowerThanEqualOperator) {
+ contextString = resolveExpression((IsLowerThanEqualOperator) expression);
+ } else if (expression instanceof IsDisplayed) {
+ contextString = resolveExpression((IsDisplayed) expression);
+ } else if (expression instanceof DisplayingContent) {
+ contextString = resolveExpression((DisplayingContent) expression);
+ } else if (expression instanceof AllocatedContent) {
+ contextString = resolveExpression((AllocatedContent) expression);
+ } else if (expression instanceof GetContentsList) {
+ System.out.println("GetContentsList is not supported yet!");
+ } else if (expression instanceof IsHidden) {
+ contextString = resolveExpression((IsHidden) expression);
+ } else if (expression instanceof IsActive) {
+ contextString = resolveExpression((IsActive) expression);
+ } else if (expression instanceof IsVisible) {
+ contextString = resolveExpression((IsVisible) expression);
+ } else if (expression instanceof GetAllocatables) {
+ System.out.println("GetAllocatables is not supported yet!");
+ } else if (expression instanceof ContentValue) {
+ contextString = resolveExpression((ContentValue) expression);
+ } else if (expression instanceof ExistsOperator) {
+ contextString = resolveExpression((ExistsOperator) expression);
+ } else if (expression instanceof ForAllOperator) {
+ contextString = resolveExpression((ForAllOperator) expression);
+ } else if (expression instanceof IfStatement) {
+ contextString = resolveExpression((IfStatement) expression);
+ } else if (expression instanceof IsOn) {
+ contextString = resolveExpression((IsOn) expression);
+ } else if (expression instanceof ObjectReference) {
+ contextString = resolveExpression((ObjectReference) expression);
+ } else if (expression instanceof PreviousModifier) {
+ contextString = resolveExpression((PreviousModifier) expression);
+ } else if (expression instanceof IsDisappeared) {
+ contextString = resolveExpression((IsDisappeared) expression);
+ } else if (expression instanceof IsCanceled) {
+ contextString = resolveExpression((IsCanceled) expression);
+ } else if (expression instanceof IsMuted) {
+ contextString = resolveExpression((IsMuted) expression);
+ } else if (expression instanceof IsSounding) {
+ contextString = resolveExpression((IsSounding) expression);
+ } else if (expression instanceof OutputtingSound) {
+ contextString = resolveExpression((OutputtingSound) expression);
+ } else if (expression instanceof IsAttenuated) {
+ contextString = resolveExpression((IsAttenuated) expression);
+ } else if (expression instanceof IsOutputted) {
+ contextString = resolveExpression((IsOutputted) expression);
+ } else if (expression instanceof GetProperty) {
+ contextString = resolveExpression((GetProperty) expression);
+ } else if (expression instanceof IntegerValue) {
+ contextString = resolveExpression((IntegerValue) expression);
+ } else if (expression instanceof HasComeEarlierThan) {
+ contextString = resolveExpression((HasComeEarlierThan) expression);
+ } else if (expression instanceof HasComeLaterThan) {
+ contextString = resolveExpression((HasComeLaterThan) expression);
+ } else if (expression instanceof HasBeenDisplayed) {
+ contextString = resolveExpression((HasBeenDisplayed) expression);
+ } else if (expression instanceof SugarExpression) {
+ contextString = getContextString(((SugarExpression) expression).getExpanded());
+ } else {
+ // TODO Specification not found
+ throw new RuntimeException("Expected Expression type is not supported yet! : " + expression.getExpressionText());
+ }
+
+ return contextString;
+ }
+
+ private String resolveExpression(AndOperator expression) {
+ List<Expression> operand = expression.getOperand();
+ String context = EX_CTX_MK_AND + OPEN;
+ for (int i = 0; i < operand.size(); i++) {
+ Expression op = operand.get(i);
+ String opContext = getContextString(op);
+ context += EX_BOOL_EXPR + opContext;
+
+ if (i != operand.size() - 1) {
+ context += COMMA;
+ }
+ }
+
+ return context + CLOSE;
+ }
+
+ private String resolveExpression(OrOperator expression) {
+ List<Expression> operand = expression.getOperand();
+
+ String context = EX_CTX_MK_OR + OPEN;
+ for (int i = 0; i < operand.size(); i++) {
+ Expression op = operand.get(i);
+ String opContext = getContextString(op);
+ context += EX_BOOL_EXPR + opContext;
+
+ if (i != operand.size() - 1) {
+ context += COMMA;
+ }
+ }
+
+ return context + CLOSE;
+ }
+
+ private String resolveExpression(NotOperator expression) {
+ List<Expression> operand = ((NotOperator) expression).getOperand();
+ String context = getContextString(operand.get(0));
+
+ return EX_CTX_MK_NOT + OPEN + EX_BOOL_EXPR + context + CLOSE;
+ }
+
+ private String resolveExpression(ImpliesOperator expression) {
+ List<Expression> operand = ((ImpliesOperator) expression).getOperand();
+ String leftContext = getContextString(operand.get(0));
+ String rightContext = getContextString(operand.get(1));
+
+ return EX_CTX_MK_IMPLIES + OPEN + EX_BOOL_EXPR + leftContext + COMMA + EX_BOOL_EXPR + rightContext + CLOSE;
+ }
+
+ private String resolveExpression(ObjectCompare expression) {
+ List<Expression> operand = expression.getOperand();
+ String leftCast = EX_BOOL_EXPR;
+ String rightCast = EX_BOOL_EXPR;
+ if ((operand.get(0) instanceof ContentValue) || (operand.get(0) instanceof DisplayingContent) || (operand.get(0) instanceof AllocatedContent)
+ || (operand.get(0) instanceof OutputtingSound) || (operand.get(0) instanceof GetProperty) || (operand.get(0) instanceof ObjectReference)) {
+ leftCast = EX_INT_EXPR;
+ }
+ if ((operand.get(1) instanceof ContentValue) || (operand.get(1) instanceof DisplayingContent) || (operand.get(1) instanceof AllocatedContent)
+ || (operand.get(1) instanceof OutputtingSound) || (operand.get(1) instanceof GetProperty) || (operand.get(1) instanceof ObjectReference)) {
+ rightCast = EX_INT_EXPR;
+ }
+
+ String leftContext = getContextString(operand.get(0));
+ String rightContext = getContextString(operand.get(1));
+
+ return EX_CTX_MK_EQ + OPEN + leftCast + leftContext + COMMA + rightCast + rightContext + CLOSE;
+ }
+
+ private String resolveExpression(IsLowerThanEqualOperator expression) {
+ List<Expression> operand = expression.getOperand();
+ String leftContext = getContextString(operand.get(0));
+ String rightContext = getContextString(operand.get(1));
+
+ return EX_CTX_MK_LE + OPEN + EX_INT_EXPR + leftContext + COMMA + EX_INT_EXPR + rightContext + CLOSE;
+ }
+
+ private String resolveExpression(IsLowerThanOperator expression) {
+ List<Expression> operand = expression.getOperand();
+ String leftContext = getContextString(operand.get(0));
+ String rightContext = getContextString(operand.get(1));
+
+ return EX_CTX_MK_LT + OPEN + EX_INT_EXPR + leftContext + COMMA + EX_INT_EXPR + rightContext + CLOSE;
+ }
+
+ private String resolveExpression(IsGreaterThanEqualOperator expression) {
+ List<Expression> operand = expression.getOperand();
+ String leftContext = getContextString(operand.get(0));
+ String rightContext = getContextString(operand.get(1));
+
+ return EX_CTX_MK_GE + OPEN + EX_INT_EXPR + leftContext + COMMA + EX_INT_EXPR + rightContext + CLOSE;
+ }
+
+ private String resolveExpression(IsGreaterThanOperator expression) {
+ List<Expression> operand = expression.getOperand();
+ String leftContext = getContextString(operand.get(0));
+ String rightContext = getContextString(operand.get(1));
+
+ return EX_CTX_MK_GT + OPEN + EX_INT_EXPR + leftContext + COMMA + EX_INT_EXPR + rightContext + CLOSE;
+ }
+
+ private String resolveExpression(IsEqualToOperator expression) {
+ List<Expression> operand = expression.getOperand();
+ String cast = EX_INT_EXPR;
+
+ String leftContext = getContextString(operand.get(0));
+ String rightContext = getContextString(operand.get(1));
+
+ return EX_CTX_MK_EQ + OPEN + cast + leftContext + COMMA + cast + rightContext + CLOSE;
+ }
+
+ private String resolveExpression(ExistsOperator expression) {
+ return resolveExpression(expression, EX_CTX_MK_EXISTS, "");
+ }
+
+ private String resolveExpression(ForAllOperator expression) {
+ return resolveExpression(expression, EX_CTX_MK_FORALL, EX_CTX_MK_IMPLIES);
+ }
+
+ private String resolveExpression(LambdaContext expression, String mkMethod, String implies) {
+ LambdaExpression lambda = expression.getLambda();
+ Variable x = lambda.getX();
+
+ EList<Expression> operand = expression.getOperand();
+
+ String size = "";
+ String setName = "";
+ String variableName = variableNameMap.get(x);
+ if (operand.get(0) instanceof ObjectReference) {
+ ObjectReference ref = (ObjectReference) operand.get(0);
+ if (ref.getUnderlyingType() == ExpressionType.SET_OF_AREA || ref.getUnderlyingType() == ExpressionType.SET_OF_ZONE) {
+ size = ALLOCATABLE_SIZE;
+ } else if (ref.getUnderlyingType() == ExpressionType.SET_OF_CONTENT || ref.getUnderlyingType() == ExpressionType.SET_OF_SOUND) {
+ size = CONTENT_SIZE;
+ }
+
+ setName = resolveExpression((ObjectReference) operand.get(0));
+
+ } else if (operand.get(0) instanceof GetAllocatables) {
+ size = CONTENT_SIZE;
+
+ GetAllocatables getAllocatable = (GetAllocatables) operand.get(0);
+ if (getAllocatable.getOperand().get(0) instanceof PreviousModifier) {
+ PreviousModifier pre = (PreviousModifier) getAllocatable.getOperand().get(0);
+ String select = resolveExpression(pre.getObjReference());
+ setName = EX_ARRAY_EXPR_CATS + EX_CTX_MK_SELECT + OPEN + OP_PRE_ALLOCATABLE + COMMA + select + CLOSE;
+ } else {
+ String select = resolveExpression((ObjectReference) getAllocatable.getOperand().get(0));
+ setName = EX_ARRAY_EXPR_CATS + EX_CTX_MK_SELECT + OPEN + OP_ALLOCATABLE + COMMA + select + CLOSE;
+ }
+
+ } else if (operand.get(0) instanceof GetContentsList) {
+ size = ALLOCATABLE_SIZE;
+
+ GetContentsList getContentsList = (GetContentsList) operand.get(0);
+ if (getContentsList.getOperand().get(0) instanceof PreviousModifier) {
+ PreviousModifier pre = (PreviousModifier) getContentsList.getOperand().get(0);
+ String select = resolveExpression(pre.getObjReference());
+ setName = EX_ARRAY_EXPR_CATS + EX_CTX_MK_SELECT + OPEN + OP_PRE_CONTENTS_LIST + COMMA + select + CLOSE;
+ } else {
+ String select = resolveExpression((ObjectReference) getContentsList.getOperand().get(0));
+ setName = EX_ARRAY_EXPR_CATS + EX_CTX_MK_SELECT + OPEN + OP_CONTENTS_LIST + COMMA + select + CLOSE;
+ }
+
+ } else if (operand.get(0) instanceof AllInstanceOfArea) {
+ size = ALLOCATABLE_SIZE;
+ setName = ALL_AREA_CONST;
+ } else if (operand.get(0) instanceof AllInstanceOfZone) {
+ size = ALLOCATABLE_SIZE;
+ setName = ALL_ZONE_CONST;
+ } else if (operand.get(0) instanceof AllInstanceOfViewContent) {
+ size = CONTENT_SIZE;
+ setName = ALL_VIEWCONTENT_CONST;
+ } else if (operand.get(0) instanceof AllInstanceOfSoundContent) {
+ size = CONTENT_SIZE;
+ setName = ALL_SOUNDCONTENT_CONST;
+ } else if (operand.get(0) instanceof SetOfOperator) {
+ SetOfOperator setOfOp = (SetOfOperator) operand.get(0);
+ if (setOfOp.getUnderlyingType() == ExpressionType.SET_OF_AREA || setOfOp.getUnderlyingType() == ExpressionType.SET_OF_ZONE) {
+ size = ALLOCATABLE_SIZE;
+ } else if (setOfOp.getUnderlyingType() == ExpressionType.SET_OF_CONTENT || setOfOp.getUnderlyingType() == ExpressionType.SET_OF_SOUND) {
+ size = CONTENT_SIZE;
+ }
+
+ String expressionText = setOfOp.getExpressionText();
+ setName = SetOfNameMap.get(expressionText);
+ } else if (operand.get(0) instanceof ActiveContents) {
+ size = CONTENT_SIZE;
+ ActiveContents activeContents = (ActiveContents) operand.get(0);
+ if (activeContents.getOperand().get(0) instanceof PreviousModifier) {
+ PreviousModifier pre = (PreviousModifier) activeContents.getOperand().get(0);
+ String select = resolveExpression(pre.getObjReference());
+ setName = EX_ARRAY_EXPR_CATS + EX_CTX_MK_SELECT + OPEN + OP_PRE_ACTIVE_CONTENTS + COMMA + select + CLOSE;
+ } else {
+ String select = resolveExpression((ObjectReference) activeContents.getOperand().get(0));
+ setName = EX_ARRAY_EXPR_CATS + EX_CTX_MK_SELECT + OPEN + OP_ACTIVE_CONTENTS + COMMA + select + CLOSE;
+ }
+ }
+
+ String setContext = EX_CTX_MK_SELECT + OPEN + setName + COMMA + variableName + ARRAY_TOP + CLOSE;
+ String expContext = getContextString(lambda.getBodyText());
+ String rangeContext = EX_CTX_MK_AND + OPEN + EX_CTX_MK_LE + OPEN + EX_CTX_MK_INT + OPEN + 1 + CLOSE + COMMA + EX_ARITH_EXPR + variableName + ARRAY_TOP + CLOSE + COMMA
+ + EX_CTX_MK_LE + OPEN + EX_ARITH_EXPR + variableName + ARRAY_TOP + COMMA + size + CLOSE + CLOSE;
+ String bodyContext = EX_CTX_MK_AND + OPEN + rangeContext + COMMA + EX_BOOL_EXPR + setContext;
+
+ if (!implies.isEmpty()) {
+ bodyContext = implies + OPEN + bodyContext + CLOSE + COMMA + EX_BOOL_EXPR + expContext + CLOSE;
+ } else {
+ bodyContext += COMMA + EX_BOOL_EXPR + expContext + CLOSE;
+ }
+
+ String context = mkMethod + OPEN + variableName + COMMA + bodyContext + COMMA + 1 + COMMA + NULL_STRING + COMMA + NULL_STRING + COMMA + NULL_STRING + COMMA + NULL_STRING
+ + CLOSE;
+ return context;
+ }
+
+ private String resolveExpression(IsDisplayed expression) {
+ EList<Expression> operand = expression.getOperand();
+
+ if (operand.get(0) instanceof PreviousModifier) {
+ PreviousModifier pre = (PreviousModifier) operand.get(0);
+ String context = resolveExpression(pre.getObjReference());
+ return EX_CTX_MK_SELECT + OPEN + OP_PRE_IS_DISPLAYED + COMMA + context + CLOSE;
+ }
+
+ String context = resolveExpression((ObjectReference) operand.get(0));
+ return EX_CTX_MK_SELECT + OPEN + OP_IS_DISPLAYED + COMMA + context + CLOSE;
+ }
+
+ private String resolveExpression(IsVisible expression) {
+ EList<Expression> operand = expression.getOperand();
+
+ if (operand.get(0) instanceof PreviousModifier) {
+ PreviousModifier pre = (PreviousModifier) operand.get(0);
+ String context = resolveExpression(pre.getObjReference());
+ return EX_CTX_MK_SELECT + OPEN + OP_PRE_IS_VISIBLE + COMMA + context + CLOSE;
+ }
+
+ String context = getContextString(operand.get(0));
+ return EX_CTX_MK_SELECT + OPEN + OP_IS_VISIBLE + COMMA + context + CLOSE;
+ }
+
+ private String resolveExpression(IsHidden expression) {
+ EList<Expression> operand = expression.getOperand();
+
+ if (operand.get(0) instanceof PreviousModifier) {
+ PreviousModifier pre = (PreviousModifier) operand.get(0);
+ String context = resolveExpression(pre.getObjReference());
+ return EX_CTX_MK_SELECT + OPEN + OP_PRE_IS_HIDDEN + COMMA + context + CLOSE;
+ }
+
+ String context = resolveExpression((ObjectReference) operand.get(0));
+ return EX_CTX_MK_SELECT + OPEN + OP_IS_HIDDEN + COMMA + context + CLOSE;
+ }
+
+ private String resolveExpression(IsActive expression) {
+ EList<Expression> operand = expression.getOperand();
+
+ if (operand.get(0) instanceof PreviousModifier) {
+ PreviousModifier pre = (PreviousModifier) operand.get(0);
+ String context = resolveExpression(pre.getObjReference());
+ return EX_CTX_MK_SELECT + OPEN + OP_PRE_IS_ACTIVE + COMMA + context + CLOSE;
+ }
+
+ String context = getContextString(operand.get(0));
+ return EX_CTX_MK_SELECT + OPEN + OP_IS_ACTIVE + COMMA + context + CLOSE;
+ }
+
+ private String resolveExpression(DisplayingContent expression) {
+ EList<Expression> operand = expression.getOperand();
+
+ if (operand.get(0) instanceof PreviousModifier) {
+ PreviousModifier pre = (PreviousModifier) operand.get(0);
+ String context = resolveExpression(pre.getObjReference());
+ return EX_CTX_MK_SELECT + OPEN + OP_PRE_DISPLAYING_CONTENT + COMMA + context + CLOSE;
+ }
+
+ String context = resolveExpression((ObjectReference) operand.get(0));
+ return EX_CTX_MK_SELECT + OPEN + OP_DISPLAYING_CONTENT + COMMA + context + CLOSE;
+ }
+
+ private String resolveExpression(AllocatedContent expression) {
+ EList<Expression> operand = expression.getOperand();
+
+ if (operand.get(0) instanceof PreviousModifier) {
+ PreviousModifier pre = (PreviousModifier) operand.get(0);
+ String context = resolveExpression(pre.getObjReference());
+ return EX_CTX_MK_SELECT + OPEN + OP_PRE_ALLOCATED_CONTENT + COMMA + context + CLOSE;
+ }
+
+ String context = resolveExpression((ObjectReference) operand.get(0));
+ return EX_CTX_MK_SELECT + OPEN + OP_ALLOCATED_CONTENT + COMMA + context + CLOSE;
+ }
+
+ private String resolveExpression(ContentValue expression) {
+ EList<Expression> operand = expression.getOperand();
+
+ if (operand.get(0) instanceof PreviousModifier) {
+ PreviousModifier pre = (PreviousModifier) operand.get(0);
+ String context = resolveExpression(pre.getObjReference());
+ return EX_CTX_MK_SELECT + OPEN + OP_PRE_CONTENT_VALUE + COMMA + context + CLOSE;
+ }
+
+ String context = resolveExpression((ObjectReference) operand.get(0));
+ return EX_CTX_MK_SELECT + OPEN + OP_CONTENT_VALUE + COMMA + context + CLOSE;
+ }
+
+ private String resolveExpression(IsMuted expression) {
+ EList<Expression> operand = expression.getOperand();
+
+ if (operand.get(0) instanceof PreviousModifier) {
+ PreviousModifier pre = (PreviousModifier) operand.get(0);
+ String context = resolveExpression(pre.getObjReference());
+ return EX_CTX_MK_SELECT + OPEN + OP_PRE_IS_MUTED + COMMA + context + CLOSE;
+ }
+
+ String context = resolveExpression((ObjectReference) operand.get(0));
+ return EX_CTX_MK_SELECT + OPEN + OP_IS_MUTED + COMMA + context + CLOSE;
+ }
+
+ private String resolveExpression(IsOutputted expression) {
+ EList<Expression> operand = expression.getOperand();
+
+ if (operand.get(0) instanceof PreviousModifier) {
+ PreviousModifier pre = (PreviousModifier) operand.get(0);
+ String context = resolveExpression(pre.getObjReference());
+ return EX_CTX_MK_SELECT + OPEN + OP_PRE_IS_OUTPUTTED + COMMA + context + CLOSE;
+ }
+
+ String context = resolveExpression((ObjectReference) operand.get(0));
+ return EX_CTX_MK_SELECT + OPEN + OP_IS_OUTPUTTED + COMMA + context + CLOSE;
+ }
+
+ private String resolveExpression(IsAttenuated expression) {
+ EList<Expression> operand = expression.getOperand();
+
+ if (operand.get(0) instanceof PreviousModifier) {
+ PreviousModifier pre = (PreviousModifier) operand.get(0);
+ String context = resolveExpression(pre.getObjReference());
+ return EX_CTX_MK_SELECT + OPEN + OP_PRE_IS_ATTENUATED + COMMA + context + CLOSE;
+ }
+
+ String context = resolveExpression((ObjectReference) operand.get(0));
+ return EX_CTX_MK_SELECT + OPEN + OP_IS_ATTENUATED + COMMA + context + CLOSE;
+ }
+
+ private String resolveExpression(OutputtingSound expression) {
+ EList<Expression> operand = expression.getOperand();
+
+ if (operand.get(0) instanceof PreviousModifier) {
+ PreviousModifier pre = (PreviousModifier) operand.get(0);
+ String context = resolveExpression(pre.getObjReference());
+ return EX_CTX_MK_SELECT + OPEN + OP_PRE_OUTPUTTING_SOUND + COMMA + context + CLOSE;
+ }
+
+ String context = resolveExpression((ObjectReference) operand.get(0));
+ return EX_CTX_MK_SELECT + OPEN + OP_OUTPUTTING_SOUND + COMMA + context + CLOSE;
+ }
+
+ private String resolveExpression(IsSounding expression) {
+ EList<Expression> operand = expression.getOperand();
+
+ if (operand.get(0) instanceof PreviousModifier) {
+ PreviousModifier pre = (PreviousModifier) operand.get(0);
+ String context = resolveExpression(pre.getObjReference());
+ return EX_CTX_MK_SELECT + OPEN + OP_PRE_IS_SOUNDING + COMMA + context + CLOSE;
+ }
+
+ String context = getContextString(operand.get(0));
+ return EX_CTX_MK_SELECT + OPEN + OP_IS_SOUNDING + COMMA + context + CLOSE;
+ }
+
+ private String resolveExpression(GetProperty expression) {
+ EList<Expression> operand = expression.getOperand();
+
+ if (operand.get(0) instanceof PreviousModifier) {
+ PreviousModifier pre = (PreviousModifier) operand.get(0);
+ String context = resolveExpression(pre.getObjReference());
+ return String.format(context, OP_PRE_GET_PROPERTY);
+ }
+
+ String context = resolveExpression((ObjectReference) operand.get(0));
+ return String.format(context, OP_GET_PROPERTY);
+ }
+
+ private String resolveExpression(IntegerValue expression) {
+ int value = expression.getValue();
+ return EX_CTX_MK_INT + OPEN + String.valueOf(value) + CLOSE;
+ }
+
+ private String resolveExpression(IfStatement expression) {
+
+ Expression condition = expression.getCondition();
+ Expression thenExpression = expression.getThenExpression();
+ Expression elseExpression = expression.getElseExpression();
+
+ String conditionContext = getContextString(condition);
+ String thenContext = getContextString(thenExpression);
+ String elseContext = getContextString(elseExpression);
+
+ String context = EX_CTX_MK_ITE + OPEN + EX_BOOL_EXPR + conditionContext + COMMA + thenContext + COMMA + elseContext + CLOSE;
+ return context;
+ }
+
+ private String resolveExpression(IsOn expression) {
+ EList<Expression> operand = expression.getOperand();
+
+ if (operand.get(0) instanceof PreviousModifier) {
+ PreviousModifier pre = (PreviousModifier) operand.get(0);
+ String context = resolveExpression(pre.getObjReference());
+ return EX_CTX_MK_SELECT + OPEN + OP_PRE_IS_ON + COMMA + context + CLOSE;
+ } else if (!(operand.get(0) instanceof ObjectReference)) {
+ String context = getContextString(operand.get(0));
+ return EX_CTX_MK_SELECT + OPEN + OP_IS_ON + COMMA + context + CLOSE;
+ }
+
+ String context = resolveExpression((ObjectReference) operand.get(0));
+ return EX_CTX_MK_SELECT + OPEN + OP_IS_ON + COMMA + context + CLOSE;
+ }
+
+ private String resolveExpression(ObjectReference expression) {
+ if (expression.getRefObject() instanceof Area) {
+ Area target = (Area) expression.getRefObject();
+ for (int i = 0; i < allocatableList.size(); i++) {
+ Allocatable area = allocatableList.get(i);
+ if (target == area) {
+ return EX_CTX_MK_INT + OPEN + (i + 1) + CLOSE;
+ }
+ }
+ } else if (expression.getRefObject() instanceof Zone) {
+ Zone target = (Zone) expression.getRefObject();
+ for (int i = 0; i < allocatableList.size(); i++) {
+ Allocatable allocatable = allocatableList.get(i);
+ if (target == allocatable) {
+ return EX_CTX_MK_INT + OPEN + (i + 1) + CLOSE;
+ }
+ }
+ } else if (expression.getRefObject() instanceof ViewContent) {
+ Content target = (Content) expression.getRefObject();
+ for (int i = 0; i < contentList.size(); i++) {
+ Content content = contentList.get(i);
+ if (target == content) {
+ return EX_CTX_MK_INT + OPEN + (i + 1) + CLOSE;
+ }
+ }
+ } else if (expression.getRefObject() instanceof SoundContent) {
+ Content target = (Content) expression.getRefObject();
+ for (int i = 0; i < contentList.size(); i++) {
+ Content content = contentList.get(i);
+ if (target == content) {
+ return EX_CTX_MK_INT + OPEN + (i + 1) + CLOSE;
+ }
+ }
+ } else if (expression.getRefObject() instanceof Variable) {
+ Variable target = (Variable) expression.getRefObject();
+
+ if ((expression.eContainer() instanceof GetAllocatables) || (expression.eContainer() instanceof GetContentsList)) {
+ return EX_CTX_MK_INT_CONST + OPEN + EX_CTX_MK_SYMBOL + OPEN + STR_QUOTE + target.getName() + STR_QUOTE + CLOSE + CLOSE;
+ }
+
+ return variableNameMap.get(target) + ARRAY_TOP;
+ } else if (expression.getRefObject() instanceof AllocatableSet) {
+ AllocatableSet target = (AllocatableSet) expression.getRefObject();
+ return allocatableSetNameMap.get(target);
+ } else if (expression.getRefObject() instanceof ContentSet) {
+ ContentSet target = (ContentSet) expression.getRefObject();
+ return contentSetNameMap.get(target);
+ } else if (expression.getRefObject() instanceof Scene) {
+ Scene target = (Scene) expression.getRefObject();
+ for (int i = 0; i < sceneList.size(); i++) {
+ Scene scene = sceneList.get(i);
+ if (target == scene) {
+ return EX_CTX_MK_INT + OPEN + (i + 1) + CLOSE;
+ }
+ }
+ } else if (expression.getRefObject() instanceof IntegerProperty) {
+ IntegerProperty target = (IntegerProperty) expression.getRefObject();
+ Scene parent = (Scene) target.eContainer();
+
+ for (int i = 0; i < sceneList.size(); i++) {
+ Scene scene = sceneList.get(i);
+ if (parent == scene) {
+ int propIndex = scene.getProperties().indexOf(target) + 1;
+
+ String propContext = EX_CTX_MK_SELECT + OPEN + "%s" + COMMA + EX_CTX_MK_INT + OPEN + propIndex + CLOSE + CLOSE;
+ return EX_CTX_MK_SELECT + OPEN + EX_ARRAY_EXPR_CATS + propContext + COMMA + EX_CTX_MK_INT + OPEN + (i + 1) + CLOSE + CLOSE;
+ }
+ }
+ }
+ return null;
+ }
+
+ private String resolveExpression(PreviousModifier expression) {
+ String context = resolveExpression(expression.getObjReference());
+ return context;
+ }
+
+ private String resolveExpression(IsDisappeared expression) {
+ EList<Expression> operand = expression.getOperand();
+
+ String context = "";
+ if (operand.get(0) instanceof PreviousModifier) {
+ PreviousModifier pre = (PreviousModifier) operand.get(0);
+ context = resolveExpression(pre.getObjReference());
+ return EX_CTX_MK_SELECT + OPEN + OP_PRE_IS_DISAPPEARED + COMMA + context + CLOSE;
+ }
+
+ context = getContextString(operand.get(0));
+ return EX_CTX_MK_SELECT + OPEN + OP_IS_DISAPPEARED + COMMA + context + CLOSE;
+ }
+
+ private String resolveExpression(IsCanceled expression) {
+ EList<Expression> operand = expression.getOperand();
+
+ String context = "";
+ if (operand.get(0) instanceof PreviousModifier) {
+ PreviousModifier pre = (PreviousModifier) operand.get(0);
+ context = resolveExpression(pre.getObjReference());
+ return EX_CTX_MK_SELECT + OPEN + OP_PRE_IS_CANCELED + COMMA + context + CLOSE;
+ }
+
+ context = getContextString(operand.get(0));
+ return EX_CTX_MK_SELECT + OPEN + OP_IS_CANCELED + COMMA + context + CLOSE;
+ }
+
+ private String resolveExpression(HasBeenDisplayed expression) {
+ EList<Expression> operand = expression.getOperand();
+
+ String context = "";
+ if (operand.get(0) instanceof PreviousModifier) {
+ PreviousModifier pre = (PreviousModifier) operand.get(0);
+ context = resolveExpression(pre.getObjReference());
+ return EX_CTX_MK_SELECT + OPEN + OP_PRE_HAS_BEEN_DISPLAYED + COMMA + context + CLOSE;
+ }
+
+ context = getContextString(operand.get(0));
+ return EX_CTX_MK_SELECT + OPEN + OP_HAS_BEEN_DISPLAYED + COMMA + context + CLOSE;
+ }
+ private String resolveExpression(HasComeEarlierThan expression) {
+ String context = "";
+ String leftContext = "";
+ String rightContext = "";
+
+ EList<Expression> operand = expression.getOperand();
+
+ if (operand.get(0) instanceof PreviousModifier) {
+ PreviousModifier pre = (PreviousModifier) operand.get(0);
+ leftContext = resolveExpression(pre.getObjReference());
+ } else {
+ leftContext = getContextString(operand.get(0));
+ }
+
+ if (operand.get(1) instanceof PreviousModifier) {
+ PreviousModifier pre = (PreviousModifier) operand.get(1);
+ rightContext = resolveExpression(pre.getObjReference());
+ } else {
+ rightContext = getContextString(operand.get(1));
+ }
+
+ String context1 = EX_ARRAY_EXPR_CATS + EX_CTX_MK_SELECT + OPEN + OP_HAS_COME_EARLIER_THAN + COMMA + leftContext + CLOSE;
+ context = EX_CTX_MK_SELECT + OPEN + context1 + COMMA + rightContext + CLOSE;
+
+ return context;
+ }
+
+ private String resolveExpression(HasComeLaterThan expression) {
+ String context = "";
+ String leftContext = "";
+ String rightContext = "";
+
+ EList<Expression> operand = expression.getOperand();
+
+ if (operand.get(0) instanceof PreviousModifier) {
+ PreviousModifier pre = (PreviousModifier) operand.get(0);
+ leftContext = resolveExpression(pre.getObjReference());
+ } else {
+ leftContext = getContextString(operand.get(0));
+ }
+
+ if (operand.get(1) instanceof PreviousModifier) {
+ PreviousModifier pre = (PreviousModifier) operand.get(1);
+ rightContext = resolveExpression(pre.getObjReference());
+ } else {
+ rightContext = getContextString(operand.get(1));
+ }
+
+ String context1 = EX_ARRAY_EXPR_CATS + EX_CTX_MK_SELECT + OPEN + OP_HAS_COME_LATER_THAN + COMMA + leftContext + CLOSE;
+ context = EX_CTX_MK_SELECT + OPEN + context1 + COMMA + rightContext + CLOSE;
+
+ return context;
+ }
+
+ class ImpliseConstraintInfo {
+ int index;
+
+ AbstractConstraint constraint;
+
+ String methodName;
+
+ public int getIndex() {
+ return index;
+ }
+
+ public String getMethodName() {
+ return methodName;
+ }
+
+ public boolean isRuntime() {
+ if (constraint instanceof Constraint) {
+ return ((Constraint) constraint).isRuntime();
+ }
+ return true;
+ }
+
+ public void setMethodName(String methodName) {
+ this.methodName = methodName;
+ }
+
+ public void setIndex(int index) {
+ this.index = index;
+ }
+
+ public AbstractConstraint getConstraint() {
+ return constraint;
+ }
+
+ public void setConstraint(AbstractConstraint constraint) {
+ this.constraint = constraint;
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/generator/z3/ConstraintCodeTemplate.java b/rba.tool.editor/src/rba/tool/editor/generator/z3/ConstraintCodeTemplate.java
new file mode 100644
index 0000000..1f96853
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/generator/z3/ConstraintCodeTemplate.java
@@ -0,0 +1,315 @@
+package rba.tool.editor.generator.z3;
+
+public class ConstraintCodeTemplate {
+
+ String allocatable_content_set_code;
+ String allocatable_content_size_code;
+ String init_code;
+ String setup_code;
+ String constraints_code;
+ String implies_constraints_call_code;
+ String implies_constraints_method_code;
+ String implies_constraints_comment_code;
+ String implies_constraints_methodName_code;
+ String implies_constraints_true_code;
+ String implies_constrName;
+ String invariance_constr_code;
+ String invariance_pre_constr_code;
+
+ private static final String NL = "\r\n";
+
+ String getCompleteCode() {
+ return "import groovy.transform.CompileStatic;" + NL + NL
+ + "import java.util.ArrayList;" + NL
+ + "import java.util.LinkedHashMap;" + NL
+ + "import java.util.List;" + NL
+ + "import java.util.Map;" + NL + NL
+
+ + "import com.microsoft.z3.ArithExpr;" + NL
+ + "import com.microsoft.z3.ArrayExpr;" + NL
+ + "import com.microsoft.z3.BoolExpr;" + NL
+ + "import com.microsoft.z3.Context;" + NL
+ + "import com.microsoft.z3.Expr;" + NL
+ + "import com.microsoft.z3.IntExpr;" + NL
+ + "import com.microsoft.z3.Quantifier;" + NL
+ + "import com.microsoft.z3.Solver;" + NL
+ + "import com.microsoft.z3.Sort;" + NL
+ + "import com.microsoft.z3.Status;" + NL + NL
+ + "import com.microsoft.z3.IntNum;" + NL + NL
+
+ + "import rba.tool.core.z3.Z3CodeManager;" + NL + NL
+
+ + "@CompileStatic" + NL
+ + "public class ConstraintCalculation implements rba.tool.core.constraint.IConstraintCalculation {" + NL + NL
+ + " boolean onlyOnline;" + NL
+ + " IntNum defNull;" + NL
+ + " IntNum allocatableSize;" + NL
+ + " IntNum contentSize;" + NL
+ + " Context ctx;" + NL
+ + " Sort int_type;" + NL
+ + " Sort bool_type;" + NL
+ + " Sort array_int_bool_type;" + NL
+ + " Sort array_int_int_type;" + NL
+ + " ArrayExpr displayingContent;" + NL
+ + " ArrayExpr allocatedContent;" + NL
+ + " ArrayExpr isDisplayed;" + NL
+ + " ArrayExpr isHidden;" + NL
+ + " ArrayExpr contentsList;" + NL
+ + " ArrayExpr contentValue;" + NL
+ + " ArrayExpr isVisible;" + NL
+ + " ArrayExpr isActive;" + NL
+ + " ArrayExpr allocatable;" + NL
+ + " ArrayExpr preDisplayingContent;" + NL
+ + " ArrayExpr preAllocatedContent;" + NL
+ + " ArrayExpr preIsDisplayed;" + NL
+ + " ArrayExpr preIsHidden;" + NL
+ + " ArrayExpr preContentsList;" + NL
+ + " ArrayExpr preContentValue;" + NL
+ + " ArrayExpr preIsVisible;" + NL
+ + " ArrayExpr preIsActive;" + NL
+ + " ArrayExpr preAllocatable;" + NL
+ + " ArrayExpr isMuted;" + NL
+ + " ArrayExpr isOutputted;" + NL
+ + " ArrayExpr isAttenuated;" + NL
+ + " ArrayExpr outputtingSound;" + NL
+ + " ArrayExpr isSounding;" + NL
+ + " ArrayExpr preIsMuted;" + NL
+ + " ArrayExpr preIsOutputted;" + NL
+ + " ArrayExpr preIsAttenuated;" + NL
+ + " ArrayExpr preOutputtingSound;" + NL
+ + " ArrayExpr preIsSounding;" + NL
+ + " ArrayExpr isOn;" + NL
+ + " ArrayExpr getProperty;" + NL
+ + " ArrayExpr preIsOn;" + NL
+ + " ArrayExpr preGetProperty;" + NL
+ + " ArrayExpr isDefeatedBy;" + NL
+ + " ArrayExpr defeats;" + NL
+ + " ArrayExpr isDisappeared;" + NL
+ + " ArrayExpr isCanceled;" + NL
+
+ + " ArrayExpr hasBeenDisplayed;" + NL
+ + " ArrayExpr hasComeEarlierThan;" + NL
+ + " ArrayExpr hasComeLaterThan;" + NL
+
+ + " ArrayExpr preIsDefeatedBy;" + NL
+ + " ArrayExpr preDefeats;" + NL
+ + " ArrayExpr preIsDisappeared;" + NL
+ + " ArrayExpr preIsCanceled;" + NL + NL
+
+ + " ArrayExpr activeContents;" + NL
+ + " ArrayExpr preActiveContents;" + NL
+ + " ArrayExpr preHasBeenDisplayed;" + NL
+
+ + " ArrayExpr emp;" + NL
+ + " ArrayExpr empArrayConst;" + NL
+ + " ArrayExpr allInstanceOfArea;" + NL
+ + " ArrayExpr allInstanceOfAreaConst;" + NL
+ + " ArrayExpr allInstanceOfZone;" + NL
+ + " ArrayExpr allInstanceOfZoneConst;" + NL
+ + " ArrayExpr allInstanceOfViewContent;" + NL
+ + " ArrayExpr allInstanceOfViewContentConst;" + NL + NL
+ + " ArrayExpr allInstanceOfSoundContent;" + NL
+ + " ArrayExpr allInstanceOfSoundContentConst;" + NL + NL
+
+ + allocatable_content_set_code + NL
+
+ + " public void setUp(boolean onlyOnline) {" + NL
+ + " this.onlyOnline = onlyOnline;" + NL
+ + " ctx = new Context();" + NL
+ + " defNull = ctx.mkInt(0);" + NL
+ + allocatable_content_size_code + NL
+ + " int_type = ctx.getIntSort();" + NL
+ + " bool_type = ctx.getBoolSort();" + NL
+ + " array_int_bool_type = ctx.mkArraySort(int_type, bool_type);" + NL
+ + " array_int_int_type = ctx.mkArraySort(int_type, int_type);" + NL + NL
+
+ + " displayingContent = ctx.mkArrayConst(\"displayingContent\", int_type, int_type);" + NL
+ + " allocatedContent = ctx.mkArrayConst(\"allocatedContent\", int_type, int_type);" + NL
+ + " isDisplayed = ctx.mkArrayConst(\"isDisplayed\", int_type, bool_type);" + NL
+ + " contentsList = ctx.mkArrayConst(\"contentsList\", int_type, array_int_bool_type);" + NL
+ + " contentValue = ctx.mkArrayConst(\"contentValue\", int_type, int_type);" + NL
+ + " isHidden = ctx.mkArrayConst(\"isHidden\", int_type, bool_type);" + NL
+ + " isVisible = ctx.mkArrayConst(\"isVisible\", int_type, bool_type);" + NL
+ + " isActive = ctx.mkArrayConst(\"isActive\", int_type, bool_type);" + NL
+ + " allocatable = ctx.mkArrayConst(\"allocatable\", int_type, array_int_bool_type);" + NL + NL
+ + " outputtingSound = ctx.mkArrayConst(\"outputtingSound\", int_type, int_type);" + NL
+ + " isOutputted = ctx.mkArrayConst(\"isOutputted\", int_type, bool_type);" + NL
+ + " isMuted = ctx.mkArrayConst(\"isMuted\", int_type, bool_type);" + NL
+ + " isAttenuated = ctx.mkArrayConst(\"isAttenuated\", int_type, bool_type);" + NL
+ + " isSounding = ctx.mkArrayConst(\"isSounding\", int_type, bool_type);" + NL
+
+ + " preDisplayingContent = ctx.mkArrayConst(\"preDisplayingContent\", int_type, int_type);" + NL
+ + " preAllocatedContent = ctx.mkArrayConst(\"preAllocatedContent\", int_type, int_type);" + NL
+ + " preIsDisplayed = ctx.mkArrayConst(\"preIsDisplayed\", int_type, bool_type);" + NL
+ + " preContentsList = ctx.mkArrayConst(\"preContentsList\", int_type, array_int_bool_type);" + NL
+ + " preContentValue = ctx.mkArrayConst(\"preContentValue\", int_type, int_type);" + NL
+ + " preIsHidden = ctx.mkArrayConst(\"preIsHidden\", int_type, bool_type);" + NL
+ + " preIsVisible = ctx.mkArrayConst(\"preIsVisible\", int_type, bool_type);" + NL
+ + " preIsActive = ctx.mkArrayConst(\"preIsActive\", int_type, bool_type);" + NL
+ + " preAllocatable = ctx.mkArrayConst(\"preAllocatable\", int_type, array_int_bool_type);" + NL +NL
+ + " preOutputtingSound = ctx.mkArrayConst(\"preOutputtingSound\", int_type, int_type);" + NL
+ + " preIsOutputted = ctx.mkArrayConst(\"preIsOutputted\", int_type, bool_type);" + NL
+ + " preIsMuted = ctx.mkArrayConst(\"preIsMuted\", int_type, bool_type);" + NL
+ + " preIsAttenuated = ctx.mkArrayConst(\"preIsAttenuated\", int_type, bool_type);" + NL
+ + " preIsSounding = ctx.mkArrayConst(\"preIsSounding\", int_type, bool_type);" + NL
+
+ + " isOn = ctx.mkArrayConst(\"isOn\", int_type, bool_type);" + NL
+ + " getProperty = ctx.mkArrayConst(\"getProperty\", int_type, array_int_int_type);" + NL
+ + " preIsOn = ctx.mkArrayConst(\"preIsOn\", int_type, bool_type);" + NL
+ + " preGetProperty = ctx.mkArrayConst(\"preGetProperty\", int_type, array_int_int_type);" + NL
+ + " isDefeatedBy = ctx.mkArrayConst(\"isDefeatedBy\", int_type, array_int_bool_type);" + NL
+ + " defeats = ctx.mkArrayConst(\"defeats\", int_type, array_int_bool_type);" + NL
+ + " isDisappeared = ctx.mkArrayConst(\"isDisappeared\", int_type, bool_type);" + NL
+ + " isCanceled = ctx.mkArrayConst(\"isCanceled\", int_type, bool_type);" + NL
+
+ + " hasBeenDisplayed = ctx.mkArrayConst(\"hasBeenDisplayed\", int_type, bool_type);" + NL
+ + " hasComeEarlierThan = ctx.mkArrayConst(\"hasComeEarlierThan\", int_type, array_int_bool_type);" + NL
+ + " hasComeLaterThan = ctx.mkArrayConst(\"hasComeLaterThan\", int_type, array_int_bool_type);" + NL
+
+ + " preIsDefeatedBy = ctx.mkArrayConst(\"preIsDefeatedBy\", int_type, array_int_bool_type);" + NL
+ + " preDefeats = ctx.mkArrayConst(\"preDefeats\", int_type, array_int_bool_type);" + NL
+ + " preIsDisappeared = ctx.mkArrayConst(\"preIsDisappeared\", int_type, bool_type);" + NL
+ + " preIsCanceled = ctx.mkArrayConst(\"preIsCanceled\", int_type, bool_type);" + NL + NL
+
+ + " preHasBeenDisplayed = ctx.mkArrayConst(\"preHasBeenDisplayed\", int_type, bool_type);" + NL
+
+ + " activeContents = ctx.mkArrayConst(\"activeContents\", int_type, array_int_bool_type);" + NL
+ + " preActiveContents = ctx.mkArrayConst(\"preActiveContents\", int_type, array_int_bool_type);" + NL
+
+ + " emp = ctx.mkArrayConst(\"emp\", int_type, bool_type);" + NL
+ + " empArrayConst = ctx.mkConstArray(int_type, ctx.mkFalse());" + NL
+ + " allInstanceOfArea = ctx.mkArrayConst(\"allInstanceOfArea\", int_type, bool_type);" + NL
+ + " allInstanceOfAreaConst = ctx.mkConstArray(int_type, ctx.mkTrue());" + NL
+ + " allInstanceOfZone = ctx.mkArrayConst(\"allInstanceOfZone\", int_type, bool_type);" + NL
+ + " allInstanceOfZoneConst = ctx.mkConstArray(int_type, ctx.mkTrue());" + NL
+ + " allInstanceOfViewContent = ctx.mkArrayConst(\"allInstanceOfViewContent\", int_type, bool_type);" + NL
+ + " allInstanceOfViewContentConst = ctx.mkConstArray(int_type, ctx.mkTrue());" + NL +NL
+ + " allInstanceOfSoundContent = ctx.mkArrayConst(\"allInstanceOfSoundContent\", int_type, bool_type);" + NL
+ + " allInstanceOfSoundContentConst = ctx.mkConstArray(int_type, ctx.mkTrue());" + NL +NL
+
+ + setup_code + NL
+ + " }" + NL + NL
+
+ + " public void close() {" + NL
+ + " ctx.close();" + NL
+ + " }" + NL + NL
+
+ + " /**" + NL
+ + " * Initialization of constraint list" + NL
+ + " */" + NL
+ + " private void initConstraintList(List<BoolExpr> constrList, List<BoolExpr> constrLabelList) {" + NL
+ + " constrList.add(ctx.mkEq(emp, empArrayConst));" + NL
+ + " constrLabelList.add(ctx.mkBoolConst(\"Constraint : Emp \"));" + NL
+ + " constrList.add(ctx.mkEq(allInstanceOfArea, allInstanceOfAreaConst));" + NL
+ + " constrLabelList.add(ctx.mkBoolConst(\"Constraint : AllInstanceOfArea \"));" + NL
+ + " constrList.add(ctx.mkEq(allInstanceOfZone, allInstanceOfZoneConst));" + NL
+ + " constrLabelList.add(ctx.mkBoolConst(\"Constraint : AllInstanceOfZone \"));" + NL
+ + " constrList.add(ctx.mkEq(allInstanceOfViewContent, allInstanceOfViewContentConst));" + NL
+ + " constrLabelList.add(ctx.mkBoolConst(\"Constraint : AllInstanceOfViewContent \"));" + NL + NL
+ + " constrList.add(ctx.mkEq(allInstanceOfSoundContent, allInstanceOfSoundContentConst));" + NL
+ + " constrLabelList.add(ctx.mkBoolConst(\"Constraint : AllInstanceOfSoundContent \"));" + NL + NL
+
+ + init_code + NL
+
+ + " }" + NL + NL
+
+ + " /**" + NL
+ + " * Contradiction verification of all constraints" + NL
+ + " */" + NL
+ + " public List<String> calculateAllConstraint() {" + NL
+ + " Solver s = ctx.mkSolver();" + NL
+ + " s.push();" + NL + NL
+
+ + " List<BoolExpr> constrList = new ArrayList<BoolExpr>();" + NL
+ + " List<BoolExpr> constrLabelList = new ArrayList<BoolExpr>();" + NL + NL
+
+ + " setAllConstraintContext(constrList, constrLabelList);" + NL + NL
+
+ + " for (int i = 0; i < constrList.size(); i++) {" + NL
+// + " s.assertAndTrack(constrList.get(i), constrLabelList.get(i));" + NL
+ + " s.assertAndTrack((BoolExpr) constrList.get(i).simplify(), constrLabelList.get(i));" + NL
+ + " }" + NL + NL
+
+ + " Status st = s.check();" + NL
+ + " List<String> list = Z3CodeManager.INSTNACE.getErrors(ctx, s, st,\"allConstr\" ,constrList, constrLabelList);" + NL
+ + " s.pop();" + NL
+ + " return list;" + NL
+ + " }" + NL + NL
+
+ + " /**" + NL
+ + " * Contradiction verification execution" + NL
+ + " */" + NL
+ + " public void setAllConstraintContext(List<BoolExpr> constrList, List<BoolExpr> constrLabelList) {" + NL
+ + " initConstraintList(constrList, constrLabelList);" + NL
+
+ + constraints_code + NL
+
+ + " setInvarianceConstraintContext(constrList, constrLabelList);" + NL
+ + " setInvariancePreConstraintContext(constrList, constrLabelList);" + NL
+
+ + " }" + NL + NL
+
+ + " /**" + NL
+ + " * Model invariant constraints" + NL
+ + " */" + NL
+ + " public void setInvarianceConstraintContext(List<BoolExpr> constrList, List<BoolExpr> constrLabelList) {" + NL
+
+ + invariance_constr_code + NL
+
+ + " }" + NL + NL
+
+ + " /**" + NL
+ + " * Model invariant constraint (pre constraint)" + NL
+ + " */" + NL
+ + " public void setInvariancePreConstraintContext(List<BoolExpr> constrList, List<BoolExpr> constrLabelList) {" + NL
+
+ + invariance_pre_constr_code + NL
+
+ + " }" + NL + NL
+
+ + " /**" + NL
+ + " * Contradiction verification of implication partial constraints" + NL
+ + " */" + NL
+ + " public Map<String, List<String>> calculateImpliesConstraints() {" + NL
+ + " Map<String, List<String>> map = new LinkedHashMap<String, List<String>>();" + NL
+
+ + implies_constraints_call_code + NL
+
+ + " return map;" + NL
+ + " }" + NL + NL
+
+ + implies_constraints_method_code + NL
+
+ + "}" + NL;
+
+ }
+
+ String getImpliesConstraintMethodCode(String allConstMethodName) {
+ return " /**" + NL
+ + implies_constraints_comment_code + NL
+ + " */" + NL
+ + implies_constraints_methodName_code + NL
+ + " System.out.println(\"Calculate:\" + "+implies_constrName+");" + NL + NL
+
+ + " Solver s = ctx.mkSolver();" + NL
+ + " s.push();" + NL + NL
+
+ + " List<BoolExpr> constrList = new ArrayList<BoolExpr>();" + NL
+ + " List<BoolExpr> constrLabelList = new ArrayList<BoolExpr>();" + NL + NL
+
+ + implies_constraints_true_code + NL
+
+ + " "+allConstMethodName+"(constrList, constrLabelList);" + NL + NL
+
+ + " for (int i = 0; i < constrList.size(); i++) {" + NL
+ + " s.assertAndTrack((BoolExpr) constrList.get(i).simplify(), constrLabelList.get(i));" + NL
+ + " }" + NL + NL
+
+ + " Status st = s.check();" + NL
+ + " List<String> list = Z3CodeManager.INSTNACE.getErrors(ctx, s, st, "+implies_constrName+",constrList, constrLabelList);" + NL
+ + " s.pop();" + NL
+ + " return list;" + NL
+ + " }" + NL;
+ }
+
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/generator/z3/ConstraintGeneratorImpl.xtend b/rba.tool.editor/src/rba/tool/editor/generator/z3/ConstraintGeneratorImpl.xtend
new file mode 100644
index 0000000..907f8df
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/generator/z3/ConstraintGeneratorImpl.xtend
@@ -0,0 +1,48 @@
+package rba.tool.editor.generator.z3
+
+import org.eclipse.emf.ecore.resource.Resource
+import org.eclipse.emf.ecore.resource.ResourceSet
+import org.eclipse.xtext.generator.AbstractGenerator
+import org.eclipse.xtext.generator.IFileSystemAccess2
+import org.eclipse.xtext.generator.IGeneratorContext
+import rba.tool.editor.model.manager.ResourceManager
+
+/**
+ * Generates code from your model files on save.
+ *
+ * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#code-generation
+ */
+class ConstraintGeneratorImpl extends AbstractGenerator implements IConstraintGenerator {
+
+ private static ConstraintCodeGenerationSupporter generationSupporter = new ConstraintCodeGenerationSupporter();
+
+ override doGenerate(Resource input, IFileSystemAccess2 fsa, IGeneratorContext context) {
+ doGenerate(input.resourceSet, fsa, context);
+ }
+
+ override beforeGenerate(ResourceSet input, IFileSystemAccess2 fsa, IGeneratorContext context) {
+ }
+
+ override afterGenerate(ResourceSet input, IFileSystemAccess2 fsa, IGeneratorContext context) {
+ }
+
+ override void doGenerate(ResourceSet resourceSet, IFileSystemAccess2 fsa, IGeneratorContext context) {
+ fsa.generateFile("ConstraintCalculation.java", resourceSet.compile);
+ }
+
+ def compile(ResourceSet resourceSet) '''
+ «val allAreas = ResourceManager.INSTANCE.getRbaAreas(resourceSet)»
+ «val allZones = ResourceManager.INSTANCE.getRbaZones(resourceSet)»
+ «val allVContents = ResourceManager.INSTANCE.getRbaViewContents(resourceSet)»
+ «val allSContents = ResourceManager.INSTANCE.getRbaSoundContents(resourceSet)»
+ «val allAreaSets = ResourceManager.INSTANCE.getRbaAreaSets(resourceSet)»
+ «val allZoneSets = ResourceManager.INSTANCE.getRbaZoneSets(resourceSet)»
+ «val allVContentSets = ResourceManager.INSTANCE.getRbaViewContentSets(resourceSet)»
+ «val allSContentSets = ResourceManager.INSTANCE.getRbaSoundContentSets(resourceSet)»
+ «val allValiables = ResourceManager.INSTANCE.getRbaVariables(resourceSet)»
+ «val allConstraints = ResourceManager.INSTANCE.getRbaConstraints(resourceSet)»
+ «val allScenes = ResourceManager.INSTANCE.getRbaScenes(resourceSet)»
+ «val allSetOfOperators = ResourceManager.INSTANCE.getRbaSetOfOperators(resourceSet)»
+ «generationSupporter.generate(allVContents,allSContents, allAreas,allZones, allVContentSets,allSContentSets, allAreaSets,allZoneSets, allValiables, allConstraints, allScenes, allSetOfOperators)»
+ '''
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/generator/z3/GeneratorConstants.java b/rba.tool.editor/src/rba/tool/editor/generator/z3/GeneratorConstants.java
new file mode 100644
index 0000000..7ca3b74
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/generator/z3/GeneratorConstants.java
@@ -0,0 +1,320 @@
+package rba.tool.editor.generator.z3;
+
+interface GeneratorConstants {
+
+ static final String CMT_AREA_LIST = "// Area definition";
+
+ static final String CMT_AREA_VISIBILITY_LABEL_LIST = "// Visibility-constrained labeling";
+
+ static final String CMT_AREA_ZORDER_LABEL_LIST = "// Constraint expression labeling";
+
+ static final String CMT_CONTENT_STATE_LIST = "// Content definition";
+
+ static final String CMT_CONTENT_STATE_LABEL_LIST = "// Labeling Priority Constraint Expressions";
+
+ static final String CMT_CONTENT_STATE_PRIORITY_COMMENT_CONNECTOR = "Priority conditional expression";
+
+ static final String CMT_CONTENT_MULTI_START = "/**";
+
+ static final String CMT_CONTENT_MULTI_END = " */";
+
+ static final String CMT_CONTENT_IMPLIES_METHOD1 = " * Contradiction verification of implication partial constraints";
+
+ static final String CMT_CONTENT_IMPLIES_METHOD2 = " * %s == TRUE holds";
+
+ static final String CMT_CONTENT_IMPLIES_METHOD3 = " * target name : ";
+
+ static final String CMT_CONTENT_IMPLIES_METHOD4 = " * expression text : ";
+
+ static final String CMT_NAME_CLOSE = "]";
+
+ static final String CMT_NAME_OPEN = "[";
+
+ static final String EX_NON = "non";
+
+ static final String EX_STD = "std";
+
+ static final String EX_MAX = "max";
+
+ static final String EX_MIN = "min";
+
+ static final String FUNC_ALLO_LIST = "createAlloList";
+
+ static final String FUNC_ALLO_VIS_CONSTR = "createAlloVisConstrList";
+
+ static final String FUNC_ALLO_VIS_CONSTR_LBL = "createAlloVisConstrLbl";
+
+ static final String FUNC_AREA_LIST = "createAreaList";
+
+ static final String FUNC_AREA_ZORDR_CONSTR = "createAreaZorderConstrList";
+
+ static final String FUNC_AREA_ZORDR_CONSTR_LBL = "createAreaZorderConstrLbl";
+
+ static final String FUNC_CST_LIST = "createContentList";
+
+ static final String FUNC_CST_CONSTR = "createConstrList";
+
+ static final String FUNC_CST_CONSTR_LBL = "createConstrLabelList";
+
+ static final String EX_CTX_MK_EQ = "ctx.mkEq";
+
+ static final String EX_CTX_MK_GT = "ctx.mkGt";
+
+ static final String EX_CTX_MK_LT = "ctx.mkLt";
+
+ static final String EX_CTX_MK_AND = "ctx.mkAnd";
+
+ static final String EX_CTX_MK_ADD = "ctx.mkAdd";
+
+ static final String EX_CTX_MK_INT = "ctx.mkInt";
+
+ static final String EX_CTX_MK_OR = "ctx.mkOr";
+
+ static final String EX_CTX_MK_XOR = "ctx.mkXor";
+
+ static final String EX_CTX_MK_NOT = "ctx.mkNot";
+
+ static final String EX_CTX_MK_IMPLIES = "ctx.mkImplies";
+
+ static final String EX_CTX_MK_GE = "ctx.mkGe";
+
+ static final String EX_CTX_MK_LE = "ctx.mkLe";
+
+ static final String EX_CTX_MK_SELECT = "ctx.mkSelect";
+
+ static final String EX_CTX_MK_STORE = "ctx.mkStore";
+
+ static final String EX_CTX_MK_EXISTS = "ctx.mkExists";
+
+ static final String EX_CTX_MK_FORALL = "ctx.mkForall";
+
+ static final String EX_CTX_MK_SYMBOL = "ctx.mkSymbol";
+
+ static final String EX_CTX_MK_ITE = "ctx.mkITE";
+
+ static final String EX_CTX_MK_TRUE = "ctx.mkTrue()";
+
+ static final String EX_CTX_MK_FALSE = "ctx.mkFalse()";
+
+ static final String EX_INT_EXPR = "(IntExpr) ";
+
+ static final String EX_BOOL_EXPR = "(BoolExpr) ";
+
+ static final String EX_ARITH_EXPR = "(ArithExpr) ";
+
+ static final String EX_ARRAY_EXPR_CATS = "(ArrayExpr) ";
+
+ static final String EX_CTX_MK_BOOL_CONST = "ctx.mkBoolConst";
+
+ static final String EX_CTX_MK_INT_CONST = "ctx.mkIntConst";
+
+ static final String EX_CTX_MK_ARRAY_CONST = "ctx.mkArrayConst";
+
+ static final String AREA_LIST_NAME = "areaList";
+
+ static final String CONSTR_LIST_NAME = "constrList";
+
+ static final String CONSTR_LABEL_LIST_NAME = "constrLabelList";
+
+ static final String CONTENT_LIST_NAME = "contentList";
+
+ static final String CONTENT_LIST_ADD = "contentList.add";
+
+ static final String CONSTR_LIST_ADD = "constrList.add";
+
+ static final String AREA_LIST_ADD = "areaList.add";
+
+ static final String CONSTR_LABEL_LIST_ADD = "constrLabelList.add";
+
+ static final String VISIBILITY = " Visibility : ";
+
+ static final String ZORDER = " Zorder : ";
+
+ static final String GET = ".get";
+
+ static final String CONST_ADDED_VALUE = "10";
+
+ static final String STR_QUOTE = "\"";
+
+ static final String _4SPACES = " ";
+
+ static final String _8SPACES = " ";
+
+ static final String OPEN = "(";
+
+ static final String CLOSE = ")";
+
+ static final String NAME_SEPARATOR = "_";
+
+ static final String COMMA = ", ";
+
+ static final String DOT = ".";
+
+ static final String NULL_STRING = "null";
+
+ static final String SL_COMMENT = "//";
+
+ static final String NL = "\r\n";
+
+ static final String END = ";";
+
+ static final String NUMBER = "#";
+
+ static final String NUMBER_ZERO = "#0:";
+
+ static final String VARIABLE_CMT = "// Variable ";
+
+ static final String VARIABLE_DEFINE = "Expr[] %s = new Expr[1];";
+
+ static final String VARIABLE_VAR_NAME = "variable_";
+
+ static final String AREASET_VAR_NAME = "areaSet_";
+
+ static final String ZONESET_VAR_NAME = "zoneSet_";
+
+ static final String VIEW_CONTENTSET_VAR_NAME = "vcontentSet_";
+
+ static final String SOUND_CONTENTSET_VAR_NAME = "scontentSet_";
+
+ static final String SETOF_OP_VAR_NAME = "setOfOperator_";
+
+ static final String ARRAY_TOP = "[0]";
+
+ static final String SET_VARIABLE_VALUE = " = ctx.mkConst(ctx.mkSymbol(\"%s\"), ctx.getIntSort());";
+
+ static final String OP_IS_DISPLAYED = "isDisplayed";
+
+ static final String OP_DISPLAYING_CONTENT = "displayingContent";
+
+ static final String OP_ALLOCATED_CONTENT = "allocatedContent";
+
+ static final String OP_CONTENTS_LIST = "contentsList";
+
+ static final String OP_IS_HIDDEN = "isHidden";
+
+ static final String OP_IS_ACTIVE = "isActive";
+
+ static final String OP_IS_VISIBLE = "isVisible";
+
+ static final String OP_ALLOCATABLE = "allocatable";
+
+ static final String OP_CONTENT_VALUE = "contentValue";
+
+ static final String OP_PRE_IS_DISPLAYED = "preIsDisplayed";
+
+ static final String OP_PRE_DISPLAYING_CONTENT = "preDisplayingContent";
+
+ static final String OP_PRE_ALLOCATED_CONTENT = "preAllocatedContent";
+
+ static final String OP_PRE_CONTENTS_LIST = "preContentsList";
+
+ static final String OP_PRE_IS_HIDDEN = "preIsHidden";
+
+ static final String OP_PRE_IS_ACTIVE = "preIsActive";
+
+ static final String OP_PRE_IS_VISIBLE = "preIsVisible";
+
+ static final String OP_PRE_ALLOCATABLE = "preAllocatable";
+
+ static final String OP_PRE_CONTENT_VALUE = "preContentValue";
+
+ static final String OP_IS_MUTED = "isMuted";
+
+ static final String OP_PRE_IS_MUTED = "preIsMuted";
+
+ static final String OP_IS_ATTENUATED = "isAttenuated";
+
+ static final String OP_PRE_IS_ATTENUATED = "preIsAttenuated";
+
+ static final String OP_IS_SOUNDING = "isSounding";
+
+ static final String OP_PRE_IS_SOUNDING = "preIsSounding";
+
+ static final String OP_OUTPUTTING_SOUND = "outputtingSound";
+
+ static final String OP_PRE_OUTPUTTING_SOUND = "preOutputtingSound";
+
+ static final String OP_IS_OUTPUTTED = "isOutputted";
+
+ static final String OP_PRE_IS_OUTPUTTED = "preIsOutputted";
+
+ static final String OP_GET_PROPERTY = "getProperty";
+
+ static final String OP_PRE_GET_PROPERTY = "preGetProperty";
+
+ static final String OP_IS_ON = "isOn";
+
+ static final String OP_PRE_IS_ON = "preIsOn";
+
+ static final String OP_IS_DEFEATED_BY = "isDefeatedBy";
+
+ static final String OP_PRE_IS_DEFEATED_BY = "preIsDefeatedBy\"";
+
+ static final String OP_DEFEATS = "defeats";
+
+ static final String OP_PRE_DEFEATS = "preDefeats";
+
+ static final String OP_IS_DISAPPEARED = "isDisappeared";
+
+ static final String OP_PRE_IS_DISAPPEARED = "preIsDisappeared";
+
+ static final String OP_IS_CANCELED = "isCanceled";
+
+ static final String OP_PRE_IS_CANCELED = "preIsCanceled";
+
+ static final String OP_HAS_BEEN_DISPLAYED = "hasBeenDisplayed";
+
+ static final String OP_PRE_HAS_BEEN_DISPLAYED = "preHasBeenDisplayed";
+
+ static final String OP_HAS_COME_EARLIER_THAN = "hasComeEarlierThan";
+
+ static final String OP_HAS_COME_LATER_THAN = "hasComeLaterThan";
+
+ static final String OP_ACTIVE_CONTENTS = "activeContents";
+
+ static final String OP_PRE_ACTIVE_CONTENTS = "preActiveContents";
+
+ static final String EMP_ARRAY_CONST = "empArrayConst";
+
+ static final String ALL_AREA_CONST = "allInstanceOfAreaConst";
+
+ static final String ALL_ZONE_CONST = "allInstanceOfZoneConst";
+
+ static final String ALL_SOUNDCONTENT_CONST = "allInstanceOfSoundContentConst";
+
+ static final String ALL_VIEWCONTENT_CONST = "allInstanceOfViewContentConst";
+
+ static final String ALLOCATABLE_SIZE = "allocatableSize";
+
+ static final String CONTENT_SIZE = "contentSize";
+
+ static final String ARRAY_EXPR_SORT = "ArrayExpr ";
+
+ static final String CONSTRAINT_PREFIX = "Constraint:";
+
+ static final String EQUAL = " = ";
+
+ static final String INT_TYPE = "int_type";
+
+ static final String BOOL_TYPE = "bool_type";
+
+ static final String IMPLIES_CONSTRAINT_METHOD_NAME = "doCalculateImpliesConstraint_%s()";
+
+ static final String IMPLIES_CONSTRAINT_METHOD = "private List<String> %s {";
+
+ static final String IMPLIES_CONSTRAINT_METHOD_DETAIL1 = "List<String> constraint_%s" + EQUAL;
+
+ static final String IMPLIES_CONSTRAINT_METHOD_DETAIL2 = "if(!constraint_%s.isEmpty() && !constraint_%s.get(0).equals(\"SAT\")) {";
+
+ static final String IMPLIES_CONSTRAINT_METHOD_DETAIL3 = "map.put(\"#%s:%s\", constraint_%s)";
+
+ static final String IMPLIES_CONSTRAINT_METHOD_DETAIL4 = "if(constraint_%s.get(0).equals(\"UNSAT\")) {";
+
+ static final String IMPLIES_CONSTRAINT_METHOD_DETAIL5 = "return map";
+
+ static final String BLOCK_CLOSE = "}";
+
+ static final String IF_OFFLINE = "if(!onlyOnline) {";
+
+ static final String STORE_TEMPLATE = EX_CTX_MK_STORE + OPEN + "%s" + COMMA + EX_CTX_MK_INT + OPEN + "%s" + CLOSE + COMMA + EX_CTX_MK_TRUE + CLOSE;;
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/generator/z3/IConstraintGenerator.xtend b/rba.tool.editor/src/rba/tool/editor/generator/z3/IConstraintGenerator.xtend
new file mode 100644
index 0000000..b1e01a9
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/generator/z3/IConstraintGenerator.xtend
@@ -0,0 +1,15 @@
+package rba.tool.editor.generator.z3
+
+import org.eclipse.emf.ecore.resource.ResourceSet
+import org.eclipse.xtext.generator.IFileSystemAccess2
+import org.eclipse.xtext.generator.IGenerator2
+import org.eclipse.xtext.generator.IGeneratorContext
+
+interface IConstraintGenerator extends IGenerator2 {
+
+ def void doGenerate(ResourceSet input, IFileSystemAccess2 fsa, IGeneratorContext context);
+
+ def void beforeGenerate(ResourceSet input, IFileSystemAccess2 fsa, IGeneratorContext context);
+
+ def void afterGenerate(ResourceSet input, IFileSystemAccess2 fsa, IGeneratorContext context);
+} \ No newline at end of file
diff --git a/rba.tool.editor/src/rba/tool/editor/generator/z3/ISortValueGenerator.xtend b/rba.tool.editor/src/rba/tool/editor/generator/z3/ISortValueGenerator.xtend
new file mode 100644
index 0000000..044ceae
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/generator/z3/ISortValueGenerator.xtend
@@ -0,0 +1,15 @@
+package rba.tool.editor.generator.z3
+
+import org.eclipse.emf.ecore.resource.ResourceSet
+import org.eclipse.xtext.generator.IFileSystemAccess2
+import org.eclipse.xtext.generator.IGenerator2
+import org.eclipse.xtext.generator.IGeneratorContext
+
+interface ISortValueGenerator extends IGenerator2 {
+
+ def void doGenerate(ResourceSet input, IFileSystemAccess2 fsa, IGeneratorContext context);
+
+ def void beforeGenerate(ResourceSet input, IFileSystemAccess2 fsa, IGeneratorContext context);
+
+ def void afterGenerate(ResourceSet input, IFileSystemAccess2 fsa, IGeneratorContext context);
+} \ No newline at end of file
diff --git a/rba.tool.editor/src/rba/tool/editor/generator/z3/SortValueCodeGenerationSupporter.java b/rba.tool.editor/src/rba/tool/editor/generator/z3/SortValueCodeGenerationSupporter.java
new file mode 100644
index 0000000..b6e872a
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/generator/z3/SortValueCodeGenerationSupporter.java
@@ -0,0 +1,555 @@
+package rba.tool.editor.generator.z3;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.function.Consumer;
+
+import org.eclipse.emf.common.util.EList;
+
+import rba.core.Allocatable;
+import rba.core.ComparisonAnd;
+import rba.core.ComparisonOperator;
+import rba.core.Content;
+import rba.core.ContentState;
+import rba.core.EqualToOperator;
+import rba.core.Expression;
+import rba.core.GreaterThanOperator;
+import rba.core.IfStatement;
+import rba.core.IntegerValue;
+import rba.core.LowerThanOperator;
+import rba.core.MaxValue;
+import rba.core.MinValue;
+import rba.core.MuchGreaterThanOperator;
+import rba.core.NoneValue;
+import rba.core.ObjectReference;
+import rba.core.Operator;
+import rba.core.PlusOperator;
+import rba.core.RuleObject;
+import rba.core.StandardValue;
+import rba.core.ThatOfOperator;
+import rba.core.ValueExpression;
+import rba.tool.editor.util.RBAModelEditorToolUtil;
+import rba.view.Area;
+
+public class SortValueCodeGenerationSupporter implements GeneratorConstants {
+
+ static final int LIST_LIMIT = 1000;
+
+ static SortValueCodeTemplate template = new SortValueCodeTemplate();
+
+ private List<Area> areaList;
+
+ private List<Allocatable> allocatableList;
+
+ private List<Content> contentList;
+
+ private List<ContentState> contentStateList;
+
+ public String generate(List<Content> contents, List<Allocatable> allocatables, List<Area> areas) {
+ this.contentList = contents;
+ this.allocatableList = allocatables;
+ this.areaList = areas;
+ this.contentStateList = new ArrayList<ContentState>();
+
+ // for common
+ StringBuilder method_code_Adding = new StringBuilder();
+
+ // for calculateArea_zorder
+ StringBuilder area_zorder_code = new StringBuilder();
+ StringBuilder areaListZorder_Adding = new StringBuilder();
+ StringBuilder zorder_comment = new StringBuilder();
+ StringBuilder zorderConstrList_Adding = new StringBuilder();
+ StringBuilder areaConstrLabelListZorder_Adding = new StringBuilder();
+ StringBuilder calculateArea_zorder_Method = new StringBuilder();
+ List<StringBuilder> calculateAreaZorderMethidList = new ArrayList<StringBuilder>();
+
+ // for calculateAllocatable_visibility
+ StringBuilder allocatable_visibility_code = new StringBuilder();
+ StringBuilder allocatableList_Adding = new StringBuilder();
+ StringBuilder visibility_comment = new StringBuilder();
+ StringBuilder visibilityConstrList_Adding = new StringBuilder();
+ StringBuilder allocatableConstrLabelList_Adding = new StringBuilder();
+ List<StringBuilder> calculateAllocatableVisibilityMethidList = new ArrayList<StringBuilder>();
+
+ // for calculateContentState_priority
+ StringBuilder content_state_priority_code = new StringBuilder();
+ List<StringBuilder> contentStateMethidList = new ArrayList<StringBuilder>();
+ StringBuilder content_state_priority_method_code = new StringBuilder();
+
+ area_zorder_code.append(_8SPACES + CMT_AREA_LIST + NL);
+ allocatable_visibility_code.append(_8SPACES + CMT_AREA_LIST + NL);
+ content_state_priority_code.append(_8SPACES + CMT_CONTENT_STATE_LIST + NL);
+
+ /////////////////// Area/Zone Visibility Code Prepare @Start
+ List<List<Allocatable>> limitedAlloList = new ArrayList<>();
+ ListHelper.extract(allocatableList, LIST_LIMIT, _list -> {
+ limitedAlloList.add(_list);
+ });
+
+ int visMethodNum = 0;
+ for (List<Allocatable> _list : limitedAlloList) {
+ method_code_Adding.append(getAllocatableVisibilityMethodString(_list, visMethodNum));
+ allocatable_visibility_code.append(getAllocatableVisibilityMethodCallString(visMethodNum));
+ visMethodNum++;
+ }
+ /////////////////// Area/Zone Visibility Code Prepare @End
+
+ /////////////////// Area Zorder Code Prepare @Start
+ List<List<Area>> limitedAreaList = new ArrayList<>();
+ ListHelper.extract(areaList, LIST_LIMIT, _list -> {
+ limitedAreaList.add(_list);
+ });
+
+ int zoMethodNum = 0;
+ for (List<Area> _list : limitedAreaList) {
+ method_code_Adding.append(getAreaZorderMethodString(_list, zoMethodNum));
+ area_zorder_code.append(getAreaZorderMethodCallString(zoMethodNum));
+ zoMethodNum++;
+ }
+ /////////////////// Area Zorder Code Prepare @End
+
+ /////////////////// Content State Priority Code Prepare @Start
+ for (int i = 0; i < contentList.size(); i++) {
+ Content content = contentList.get(i);
+ for (ContentState cState : content.getStates()) {
+ contentStateList.add(cState);
+ }
+ }
+ List<List<ContentState>> limitedContentList = new ArrayList<>();
+ ListHelper.extract(contentStateList, LIST_LIMIT, _list -> {
+ limitedContentList.add(_list);
+ });
+
+ int ctMethodNum = 0;
+ for (List<ContentState> _list : limitedContentList) {
+ method_code_Adding.append(getContentStateMethodString(_list, ctMethodNum));
+ content_state_priority_code.append(getContentStateMethodCallString(ctMethodNum));
+ ctMethodNum++;
+ }
+
+
+// int num = 0;
+// StringBuilder content_state_priority_code_main = new StringBuilder();
+// for (int i = 0; i < contentStateList.size(); i += LIST_LIMIT) {
+// int toIdx = ((i + LIST_LIMIT) >= contentStateList.size() ? contentStateList.size() : (i + LIST_LIMIT));
+// StringBuilder contentStateMethod = getContentStateMethodString(contentStateList.subList(i, toIdx), num, content_state_priority_code_main);
+// contentStateMethidList.add(contentStateMethod);
+// num++;
+// }
+//
+// content_state_priority_code.append(content_state_priority_code_main).append(NL);
+//
+// for (int j = 0; j < num; j++) {
+// content_state_priority_code.append(_8SPACES + "createContentList" + j + "(contentList);" + NL);
+// }
+// for (int j = 0; j < num; j++) {
+// content_state_priority_code.append(_8SPACES + "createConstrList" + j + "(contentList, constrList);" + NL);
+// }
+// for (int j = 0; j < num; j++) {
+// content_state_priority_code.append(_8SPACES + "createConstrLabelList" + j + "(constrLabelList);" + NL);
+// }
+// for (StringBuilder method : contentStateMethidList) {
+// method_code_Adding.append(method);
+// }
+//
+ /////////////////// Content State Priority Code Prepare @End
+
+ template.area_zorder_code = area_zorder_code.toString();
+ template.area_visibility_code = allocatable_visibility_code.toString();
+ template.content_state_priority_code = content_state_priority_code.toString();
+ template.method_code = method_code_Adding.toString();
+
+ // calculateAllocatableVisibilityMethidList
+ return template.getCompleteCode();
+ }
+
+ private String getContextString(Expression expression, int index, String listName, Class<?> clazz, Expression eContainer) {
+ String contextString = null;
+ if (expression instanceof MinValue) {
+ contextString = resolveExpression((MinValue) expression, index, listName, eContainer);
+ } else if (expression instanceof MaxValue) {
+ contextString = resolveExpression((MaxValue) expression, index, listName, eContainer);
+ } else if (expression instanceof StandardValue) {
+ contextString = resolveExpression((StandardValue) expression, index, listName, eContainer);
+ } else if (expression instanceof NoneValue) {
+ contextString = resolveExpression((NoneValue) expression, index, listName, eContainer);
+ } else if (expression instanceof IntegerValue) {
+ contextString = resolveExpression((IntegerValue) expression, index, listName, eContainer);
+ } else if (expression instanceof EqualToOperator) {
+ contextString = resolveExpression((EqualToOperator) expression, index, listName, clazz);
+ } else if (expression instanceof GreaterThanOperator) {
+ contextString = resolveExpression((GreaterThanOperator) expression, index, listName, clazz);
+ } else if (expression instanceof MuchGreaterThanOperator) {
+ contextString = resolveExpression((MuchGreaterThanOperator) expression, index, listName, clazz);
+ } else if (expression instanceof LowerThanOperator) {
+ contextString = resolveExpression((LowerThanOperator) expression, index, listName, clazz);
+ } else if (expression instanceof ThatOfOperator) {
+ contextString = resolveExpression((ThatOfOperator) expression, index, listName, clazz);
+ } else if (expression instanceof PlusOperator) {
+ contextString = resolveExpression((PlusOperator) expression, index, listName, clazz);
+ } else if (expression instanceof ComparisonAnd) {
+ contextString = resolveExpression((ComparisonAnd) expression, index, listName, clazz);
+ } else if (expression instanceof ObjectReference) {
+ contextString = resolveExpression((ObjectReference) expression, listName, clazz);
+ } else {
+ // TODO Specification not found
+ System.out.println("Expected Expression type is not supported yet!");
+ }
+ return contextString;
+ }
+
+ private StringBuilder getAllocatableVisibilityMethodCallString(int num) {
+ StringBuilder ret = new StringBuilder();
+ ret.append(_8SPACES + FUNC_ALLO_LIST + num + OPEN + AREA_LIST_NAME + CLOSE + END + NL);
+ ret.append(_8SPACES + FUNC_ALLO_VIS_CONSTR + num + OPEN + AREA_LIST_NAME + COMMA + CONSTR_LIST_NAME + CLOSE + END + NL);
+ ret.append(_8SPACES + FUNC_ALLO_VIS_CONSTR_LBL + num + OPEN + CONSTR_LABEL_LIST_NAME + CLOSE + END + NL);
+ return ret;
+ }
+
+ private StringBuilder getAllocatableVisibilityMethodString(List<Allocatable> allocatableLimitedList, int num) {
+ StringBuilder createAlloVisListMethod = new StringBuilder();
+ String createAlloVisListMethodName = FUNC_ALLO_LIST + num;
+ StringBuilder createConstrListMethod = new StringBuilder();
+ String createConstrListMethodName = FUNC_ALLO_VIS_CONSTR + num;
+ StringBuilder createConstrLabelListMethod = new StringBuilder();
+ String createConstrLabelListMethodName = FUNC_ALLO_VIS_CONSTR_LBL + num;
+
+ createAlloVisListMethod.append(_4SPACES + "private void " + createAlloVisListMethodName + "(List<Expr> " + AREA_LIST_NAME + ") {" + NL);
+ createConstrListMethod
+ .append(_4SPACES + "private void " + createConstrListMethodName + "(List<Expr> " + AREA_LIST_NAME + ", List<BoolExpr> " + CONSTR_LIST_NAME + ") {" + NL);
+ createConstrLabelListMethod.append(_4SPACES + "private void " + createConstrLabelListMethodName + "(List<BoolExpr> " + CONSTR_LABEL_LIST_NAME + ") {" + NL);
+
+ int i = num * 1000;
+ for (Allocatable allocatable : allocatableLimitedList) {
+ /////////////////// Area List & Label List @Start
+ createAlloVisListMethod.append(_8SPACES + AREA_LIST_ADD + OPEN + EX_CTX_MK_INT_CONST + OPEN + STR_QUOTE + allocatable.getName() + STR_QUOTE + CLOSE + CLOSE + END + NL);
+ createConstrLabelListMethod
+ .append(_8SPACES + CONSTR_LABEL_LIST_ADD + OPEN + EX_CTX_MK_BOOL_CONST + OPEN + STR_QUOTE + allocatable.getName() + STR_QUOTE + CLOSE + CLOSE + END + NL);
+
+ /////////////////// Area/Zone Visibility Code Prepare @Start
+ createConstrListMethod.append(_8SPACES + SL_COMMENT + allocatable.getName() + VISIBILITY + RBAModelEditorToolUtil.getExpressionText(allocatable.getVisibility()) + NL);
+ String visibilityContextString = getContextString(allocatable.getVisibility(), i, AREA_LIST_NAME, Allocatable.class, null);
+ if (visibilityContextString != null) {
+ createConstrListMethod.append(_8SPACES + CONSTR_LIST_ADD + OPEN + visibilityContextString + CLOSE + END + NL);
+ }
+ i++;
+ }
+
+ createAlloVisListMethod.append(_4SPACES + "}" + NL + NL);
+ createConstrListMethod.append(_4SPACES + "}" + NL + NL);
+ createConstrLabelListMethod.append(_4SPACES + "}" + NL + NL);
+
+ StringBuilder ret = new StringBuilder();
+ ret.append(createAlloVisListMethod);
+ ret.append(createConstrListMethod);
+ ret.append(createConstrLabelListMethod);
+
+ return ret;
+ }
+
+ private StringBuilder getAreaZorderMethodCallString(int num) {
+ StringBuilder ret = new StringBuilder();
+ ret.append(_8SPACES + FUNC_AREA_LIST + num + OPEN + AREA_LIST_NAME + CLOSE + END + NL);
+ ret.append(_8SPACES + FUNC_AREA_ZORDR_CONSTR + num + OPEN + AREA_LIST_NAME + COMMA + CONSTR_LIST_NAME + CLOSE + END + NL);
+ ret.append(_8SPACES + FUNC_AREA_ZORDR_CONSTR_LBL + num + OPEN + CONSTR_LABEL_LIST_NAME + CLOSE + END + NL);
+ return ret;
+ }
+
+ private StringBuilder getAreaZorderMethodString(List<Area> areaLimitedList, int num) {
+ StringBuilder createAreaZodrListMethod = new StringBuilder();
+ String createAreaZodrListMethodName = FUNC_AREA_LIST + num;
+ StringBuilder createConstrListMethod = new StringBuilder();
+ String createConstrListMethodName = FUNC_AREA_ZORDR_CONSTR + num;
+ StringBuilder createConstrLabelListMethod = new StringBuilder();
+ String createConstrLabelListMethodName = FUNC_AREA_ZORDR_CONSTR_LBL + num;
+
+ createAreaZodrListMethod.append(_4SPACES + "private void " + createAreaZodrListMethodName + "(List<Expr> " + AREA_LIST_NAME + ") {" + NL);
+ createConstrListMethod
+ .append(_4SPACES + "private void " + createConstrListMethodName + "(List<Expr> " + AREA_LIST_NAME + ", List<BoolExpr> " + CONSTR_LIST_NAME + ") {" + NL);
+ createConstrLabelListMethod.append(_4SPACES + "private void " + createConstrLabelListMethodName + "(List<BoolExpr> " + CONSTR_LABEL_LIST_NAME + ") {" + NL);
+
+ int i = num * 1000;
+ for (Area area : areaLimitedList) {
+ /////////////////// Area List & Label List @Start
+ createAreaZodrListMethod.append(_8SPACES + AREA_LIST_ADD + OPEN + EX_CTX_MK_INT_CONST + OPEN + STR_QUOTE + area.getName() + STR_QUOTE + CLOSE + CLOSE + END + NL);
+ createConstrLabelListMethod
+ .append(_8SPACES + CONSTR_LABEL_LIST_ADD + OPEN + EX_CTX_MK_BOOL_CONST + OPEN + STR_QUOTE + area.getName() + STR_QUOTE + CLOSE + CLOSE + END + NL);
+
+ /////////////////// Area Zorder Code Prepare @Start
+ createConstrListMethod.append(_8SPACES + SL_COMMENT + area.getName() + ZORDER + RBAModelEditorToolUtil.getExpressionText(area.getZorder()) + NL);
+ String zorderContextString = getContextString(area.getZorder(), i, AREA_LIST_NAME, Area.class, null);
+ if (zorderContextString != null) {
+ createConstrListMethod.append(_8SPACES + CONSTR_LIST_ADD + OPEN + zorderContextString + CLOSE + END + NL);
+ }
+ i++;
+ }
+
+ createAreaZodrListMethod.append(_4SPACES + "}" + NL + NL);
+ createConstrListMethod.append(_4SPACES + "}" + NL + NL);
+ createConstrLabelListMethod.append(_4SPACES + "}" + NL + NL);
+
+ StringBuilder ret = new StringBuilder();
+ ret.append(createAreaZodrListMethod);
+ ret.append(createConstrListMethod);
+ ret.append(createConstrLabelListMethod);
+
+ return ret;
+ }
+
+ private StringBuilder getContentStateMethodCallString(int num) {
+ StringBuilder ret = new StringBuilder();
+ ret.append(_8SPACES + FUNC_CST_LIST + num + OPEN + CONTENT_LIST_NAME + CLOSE + END + NL);
+ ret.append(_8SPACES + FUNC_CST_CONSTR + num + OPEN + CONTENT_LIST_NAME + COMMA + CONSTR_LIST_NAME + CLOSE + END + NL);
+ ret.append(_8SPACES + FUNC_CST_CONSTR_LBL + num + OPEN + CONSTR_LABEL_LIST_NAME + CLOSE + END + NL);
+ return ret;
+ }
+
+ private StringBuilder getContentStateMethodString(List<ContentState> contentStateLimitedList, int num) {
+ StringBuilder createContentListMethod = new StringBuilder();
+ String createContentListMethodName = "createContentList" + num;
+ StringBuilder createConstrListMethod = new StringBuilder();
+ String createConstrListMethodName = "createConstrList" + num;
+ StringBuilder createConstrLabelListMethod = new StringBuilder();
+ String createConstrLabelListMethodName = "createConstrLabelList" + num;
+
+ createContentListMethod.append(_4SPACES + "private void " + createContentListMethodName + "(List<Expr> contentList) {" + NL);
+ createConstrListMethod.append(_4SPACES + "private void " + createConstrListMethodName + "(List<Expr> contentList, List<BoolExpr> constrList) {" + NL);
+ createConstrLabelListMethod.append(_4SPACES + "private void " + createConstrLabelListMethodName + "(List<BoolExpr> constrLabelList) {" + NL);
+
+ int i = num * 1000;
+ for (ContentState contentState: contentStateLimitedList) {
+ Content content = (Content) contentState.eContainer();
+ String content_cState_Name = content.getName() + NAME_SEPARATOR + contentState.getName();
+
+ /////////////////// ContentState List & Label List @Start
+ createContentListMethod.append(_8SPACES + CONTENT_LIST_ADD + OPEN + EX_CTX_MK_INT_CONST + OPEN + STR_QUOTE + content_cState_Name + STR_QUOTE + CLOSE + CLOSE + END + NL);
+ createConstrLabelListMethod.append(_8SPACES + CONSTR_LABEL_LIST_ADD + OPEN + EX_CTX_MK_BOOL_CONST + OPEN + STR_QUOTE + content_cState_Name + STR_QUOTE + CLOSE + CLOSE + END + NL);
+
+ /////////////////// ContentState Code Prepare @Start
+ createConstrListMethod.append(_8SPACES + SL_COMMENT + content_cState_Name + CMT_CONTENT_STATE_PRIORITY_COMMENT_CONNECTOR + CMT_NAME_OPEN + contentState.getValue().getExpression()
+ + CMT_NAME_CLOSE + NL);
+ String contentContextString = getContextString(contentState.getValue(), i, CONTENT_LIST_NAME, Content.class, null);
+ if (contentContextString != null) {
+ createConstrListMethod.append(_8SPACES + CONSTR_LIST_ADD + OPEN + contentContextString + CLOSE + END + NL);
+ }
+ i++;
+ }
+
+ createContentListMethod.append(_4SPACES + "}" + NL);
+ createConstrListMethod.append(_4SPACES + "}" + NL);
+ createConstrLabelListMethod.append(_4SPACES + "}" + NL);
+
+ StringBuilder ret = new StringBuilder();
+ ret.append(createContentListMethod);
+ ret.append(createConstrListMethod);
+ ret.append(createConstrLabelListMethod);
+
+ return ret;
+ }
+
+ private String resolveExpression(MinValue expression, int index, String listName, Expression eContainer) {
+ if ((eContainer instanceof ComparisonOperator && !(eContainer instanceof ComparisonAnd)) || eContainer instanceof PlusOperator) {
+ return EX_MIN;
+ }
+ return EX_CTX_MK_EQ + OPEN + EX_INT_EXPR + getListString(listName, index) + COMMA + EX_MIN + CLOSE;
+ }
+
+ private String resolveExpression(MaxValue expression, int index, String listName, Expression eContainer) {
+ if ((eContainer instanceof ComparisonOperator && !(eContainer instanceof ComparisonAnd)) || eContainer instanceof PlusOperator) {
+ return EX_MAX;
+ }
+ return EX_CTX_MK_EQ + OPEN + EX_INT_EXPR + getListString(listName, index) + COMMA + EX_MAX + CLOSE;
+ }
+
+ private String resolveExpression(StandardValue expression, int index, String listName, Expression eContainer) {
+ if ((eContainer instanceof ComparisonOperator && !(eContainer instanceof ComparisonAnd)) || eContainer instanceof PlusOperator) {
+ return EX_STD;
+ }
+ return EX_CTX_MK_EQ + OPEN + EX_INT_EXPR + getListString(listName, index) + COMMA + EX_STD + CLOSE;
+ }
+
+ private String resolveExpression(NoneValue expression, int index, String listName, Expression eContainer) {
+ if ((eContainer instanceof ComparisonOperator && !(eContainer instanceof ComparisonAnd)) || eContainer instanceof PlusOperator) {
+ return EX_NON;
+ }
+ return EX_CTX_MK_EQ + OPEN + EX_INT_EXPR + getListString(listName, index) + COMMA + EX_NON + CLOSE;
+ }
+
+ private String resolveExpression(IntegerValue expression, int index, String listName, Expression eContainer) {
+ String context = null;
+ if ((eContainer instanceof ComparisonOperator && !(eContainer instanceof ComparisonAnd)) || eContainer instanceof PlusOperator) {
+ context = EX_INT_EXPR + EX_CTX_MK_INT + OPEN + ((IntegerValue) expression).getValue() + CLOSE;
+ } else if (eContainer == null) {
+ // TODO may be mismatch with specification. need confirmation
+ context = EX_CTX_MK_EQ + OPEN + EX_INT_EXPR + getListString(listName, index) + COMMA + EX_INT_EXPR + EX_CTX_MK_INT + OPEN + ((IntegerValue) expression).getValue()
+ + CLOSE + CLOSE;
+ } else {
+ // TODO may be new feature that was not specified yet for SortValueGeneration
+ System.out.println("Not supported yet.");
+ }
+ return context;
+ }
+
+ private String resolveExpression(EqualToOperator expression, int index, String listName, Class<?> clazz) {
+ EList<Expression> operand = ((EqualToOperator) expression).getOperand();
+ String context = null;
+ if (operand.get(0) instanceof Operator) {
+ context = getContextString(operand.get(0), index, listName, clazz, expression);
+ } else if (operand.get(0) instanceof ObjectReference) {
+ context = resolveExpression((ObjectReference) operand.get(0), listName, clazz);
+ } else if (operand.get(0) instanceof ValueExpression) {
+ // TODO To confirm, specification not found
+ context = getContextString(operand.get(0), index, listName, clazz, expression);
+ } else if (operand.get(0) instanceof IfStatement) {
+ // TODO To confirm, specification not found
+ System.out.println("Not supported yet");
+ }
+ context = (context == null) ? null : EX_CTX_MK_EQ + OPEN + EX_INT_EXPR + getListString(listName, index) + COMMA + context + CLOSE;
+ return context;
+ }
+
+ private String resolveExpression(GreaterThanOperator expression, int index, String listName, Class<?> clazz) {
+ EList<Expression> operand = ((GreaterThanOperator) expression).getOperand();
+ String context = null;
+ if (operand.get(0) instanceof Operator) {
+ context = getContextString(operand.get(0), index, listName, clazz, expression);
+ } else if (operand.get(0) instanceof ObjectReference) {
+ context = resolveExpression((ObjectReference) operand.get(0), listName, clazz);
+ } else if (operand.get(0) instanceof ValueExpression) {
+ // TODO To confirm, specification not found
+ context = getContextString(operand.get(0), index, listName, clazz, expression);
+ } else if (operand.get(0) instanceof IfStatement) {
+ // TODO To confirm, specification not found
+ }
+ context = (context == null) ? null : EX_CTX_MK_GT + OPEN + EX_INT_EXPR + getListString(listName, index) + COMMA + context + CLOSE;
+ return context;
+ }
+
+ private String resolveExpression(MuchGreaterThanOperator expression, int index, String listName, Class<?> clazz) {
+ EList<Expression> operand = ((MuchGreaterThanOperator) expression).getOperand();
+ String context = null;
+ if (operand.get(0) instanceof Operator) {
+ context = getContextString(operand.get(0), index, listName, clazz, expression);
+ } else if (operand.get(0) instanceof ObjectReference) {
+ context = resolveExpression((ObjectReference) operand.get(0), listName, clazz);
+ } else if (operand.get(0) instanceof ValueExpression) {
+ // TODO To confirm, specification not found
+ context = getContextString(operand.get(0), index, listName, clazz, expression);
+ } else if (operand.get(0) instanceof IfStatement) {
+ // TODO To confirm, specification not found
+ }
+ context = (context == null) ? null
+ : EX_CTX_MK_GT + OPEN + EX_INT_EXPR + getListString(listName, index) + COMMA + EX_INT_EXPR + EX_CTX_MK_ADD + OPEN + context + COMMA + EX_CTX_MK_INT + OPEN
+ + CONST_ADDED_VALUE + CLOSE + CLOSE + CLOSE;
+ return context;
+ }
+
+ private String resolveExpression(LowerThanOperator expression, int index, String listName, Class<?> clazz) {
+ EList<Expression> operand = ((LowerThanOperator) expression).getOperand();
+ String context = null;
+ if (operand.get(0) instanceof Operator) {
+ context = getContextString(operand.get(0), index, listName, clazz, expression);
+ } else if (operand.get(0) instanceof ObjectReference) {
+ context = resolveExpression((ObjectReference) operand.get(0), listName, clazz);
+ } else if (operand.get(0) instanceof ValueExpression) {
+ // TODO To confirm, specification not found
+ context = getContextString(operand.get(0), index, listName, clazz, expression);
+ } else if (operand.get(0) instanceof IfStatement) {
+ // TODO To confirm, specification not found
+ }
+ context = (context == null) ? null : EX_CTX_MK_LT + OPEN + EX_INT_EXPR + getListString(listName, index) + COMMA + context + CLOSE;
+ return context;
+ }
+
+ private String resolveExpression(ThatOfOperator expression, int index, String listName, Class<?> clazz) {
+ EList<Expression> operand = ((ThatOfOperator) expression).getOperand();
+ if (operand.get(0) instanceof ObjectReference) {
+ if (expression.eContainer() instanceof RuleObject) { // Area, Content
+ return EX_CTX_MK_EQ + OPEN + EX_INT_EXPR + getListString(listName, index) + COMMA + resolveExpression((ObjectReference) operand.get(0), listName, clazz) + CLOSE;
+ } else {
+ return resolveExpression((ObjectReference) operand.get(0), listName, clazz);
+ }
+ }
+ return null;
+ }
+
+ private String resolveExpression(ObjectReference expression, String listName, Class<?> clazz) {
+ if ((clazz == Allocatable.class && expression.getRefObject() instanceof Allocatable)) {
+ return EX_INT_EXPR + getListString(listName, allocatableList.indexOf(expression.getRefObject()));
+ } else if ((clazz == Area.class && expression.getRefObject() instanceof Area)) {
+ return EX_INT_EXPR + getListString(listName, areaList.indexOf(expression.getRefObject()));
+ } else if ((clazz == Content.class && expression.getRefObject() instanceof ContentState)) {
+ return EX_INT_EXPR + getListString(listName, contentStateList.indexOf(expression.getRefObject()));
+ }
+ return null;
+ }
+
+ private String resolveExpression(PlusOperator expression, int index, String listName, Class<?> clazz) {
+ EList<Expression> operand = ((PlusOperator) expression).getOperand();
+ StringBuilder builder = new StringBuilder();
+ StringBuilder context = new StringBuilder();
+ String operandContext = null;
+
+ for (int i = 0; i < operand.size(); i++) {
+ if (i != 0) {
+ builder.append(EX_CTX_MK_ADD);
+ builder.append(OPEN);
+ context.append(COMMA);
+ if ((operandContext = getContextString(operand.get(i), index, listName, clazz, expression)) == null) {
+ return null;
+ }
+ context.append(operandContext);
+ context.append(CLOSE);
+ } else {
+ if ((operandContext = getContextString(operand.get(i), index, listName, clazz, expression)) == null) {
+ return null;
+ }
+ context.append(operandContext);
+ }
+ }
+ builder.append(context);
+ if (expression.eContainer() instanceof RuleObject) { // Area, Content
+ return EX_CTX_MK_EQ + OPEN + EX_INT_EXPR + getListString(listName, index) + COMMA + builder.toString() + CLOSE;
+ } else {
+ return builder.toString();
+ }
+ }
+
+ private String resolveExpression(ComparisonAnd expression, int index, String listName, Class<?> clazz) {
+ EList<Expression> operand = ((ComparisonAnd) expression).getOperand();
+ if (operand.size() >= 2) {
+ StringBuilder beginContext = new StringBuilder();
+ StringBuilder endContext = new StringBuilder();
+ for (int i = 0; i < operand.size(); i++) {
+ String context = getContextString(operand.get(i), index, listName, clazz, null);
+ if (i == 0) {
+ beginContext.append(EX_CTX_MK_AND + OPEN);
+ endContext.append(context);
+ } else if (i == operand.size() - 1) {
+ endContext.append(COMMA).append(" ") // Include space or not, it is ok
+ .append(context).append(CLOSE);
+ } else {
+ beginContext.append(EX_CTX_MK_AND + OPEN);
+ endContext.append(COMMA).append(" ") // Include space or not, it is ok
+ .append(context).append(CLOSE);
+ }
+ }
+ return beginContext.toString() + endContext.toString();
+ }
+ return null; // It may be rba model problem.
+ }
+
+ private String getListString(String listName, int index) {
+ return listName + GET + OPEN + index + CLOSE;
+ }
+
+ private interface ListHelper<T> extends Iterable<T> {
+
+ public static <T> void extract(List<T> list, int size, Consumer<? super List<T>> bulkList) {
+ for (int i = 0; i < list.size(); i += size) {
+ List<T> _list = new ArrayList<>(list.subList(i, Integer.min(i + size, list.size())));
+ bulkList.accept(_list);
+ }
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/generator/z3/SortValueCodeTemplate.java b/rba.tool.editor/src/rba/tool/editor/generator/z3/SortValueCodeTemplate.java
new file mode 100644
index 0000000..011c684
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/generator/z3/SortValueCodeTemplate.java
@@ -0,0 +1,148 @@
+package rba.tool.editor.generator.z3;
+
+public class SortValueCodeTemplate {
+
+ String area_zorder_code;
+
+ String area_visibility_code;
+
+ String content_state_priority_code;
+
+ String method_code;
+
+ private static final String NL = "\r\n";
+
+ String getCompleteCode() {
+ return "import groovy.transform.CompileStatic;" + NL + NL
+ + "import java.util.ArrayList;" + NL
+ + "import java.util.HashMap;" + NL
+ + "import java.util.List;" + NL
+ + "import java.util.Map;" + NL + NL
+
+ + "import com.microsoft.z3.BoolExpr;" + NL
+ + "import com.microsoft.z3.Context;" + NL
+ + "import com.microsoft.z3.Expr;" + NL
+ + "import com.microsoft.z3.IntExpr;" + NL
+ + "import com.microsoft.z3.Solver;" + NL
+ + "import com.microsoft.z3.Status;" + NL + NL
+
+ + "import rba.tool.core.z3.Z3CodeManager;" + NL + NL
+
+ + "@CompileStatic" + NL
+ + "public class SortValueCalculation implements rba.tool.core.sort.ISortValueCalculation {" + NL + NL
+ + " Context ctx;" + NL
+ + " IntExpr std;" + NL
+ + " IntExpr min;" + NL
+ + " IntExpr max;" + NL
+ + " IntExpr non;" + NL + NL
+ + " BoolExpr stdConstr;" + NL
+ + " BoolExpr minConstr;" + NL
+ + " BoolExpr maxConstr;" + NL
+ + " BoolExpr nonConstr;" + NL + NL
+
+ + " public void setUp() {" + NL
+ + " ctx = new Context();" + NL
+ + " std = ctx.mkIntConst(\"STANDARD\");" + NL
+ + " stdConstr = ctx.mkEq(std, ctx.mkInt(10));" + NL + NL
+
+ + " min = ctx.mkIntConst(\"MIN_VALUE\");" + NL
+ + " minConstr = ctx.mkEq(min, ctx.mkInt(0));" + NL + NL
+
+ + " max = ctx.mkIntConst(\"MAX_VALUE\");" + NL
+ + " maxConstr = ctx.mkEq(max, ctx.mkInt(9999));" + NL + NL
+
+ + " non = ctx.mkIntConst(\"NONE_VALUE\");" + NL
+ + " nonConstr = ctx.mkEq(non, ctx.mkInt(-1));" + NL
+ + " }" + NL + NL
+ + " public void close() {" + NL
+ + " ctx.close();" + NL
+ + " }" + NL + NL
+
+ + " /**" + NL
+ + " * Derived the value of Zorder" + NL
+ + " */" + NL
+ + " public Map<String, Integer> calculateArea_zorder() {" + NL
+ + " Solver s = ctx.mkSolver();" + NL
+ + " s.push();" + NL + NL
+ + " List<Expr> areaList = new ArrayList<Expr>();" + NL
+ + " List<BoolExpr> constrList = new ArrayList<BoolExpr>();" + NL
+ + " List<BoolExpr> constrLabelList = new ArrayList<BoolExpr>();" + NL + NL
+
+ + area_zorder_code + NL
+
+ + " s.add(stdConstr);" + NL
+ + " s.add(minConstr);" + NL
+ + " s.add(maxConstr);" + NL
+ + " s.add(nonConstr);" + NL + NL
+
+ + " for (int i = 0; i < constrList.size(); i++) {" + NL
+ + " s.assertAndTrack(constrList.get(i), constrLabelList.get(i));" + NL
+ + " }" + NL + NL
+ + " Status st = s.check();" + NL
+ + " Map<String, Integer> map = Z3CodeManager.INSTNACE.setModel(s, areaList, st);" + NL
+ + " s.pop();" + NL
+ + " return map;" + NL
+ + " }" + NL + NL
+
+ + " /**" + NL
+ + " * Derivation of Visibility value" + NL
+ + " */" + NL
+ + " public Map<String, Integer> calculateAllocatable_visibility() {" + NL
+ + " Solver s = ctx.mkSolver();" + NL
+ + " s.push();" + NL + NL
+
+ + " List<Expr> areaList = new ArrayList<Expr>();" + NL
+ + " List<BoolExpr> constrList = new ArrayList<BoolExpr>();" + NL
+ + " List<BoolExpr> constrLabelList = new ArrayList<BoolExpr>();" + NL + NL
+
+ + area_visibility_code + NL
+
+ + " s.add(stdConstr);" + NL
+ + " s.add(minConstr);" + NL
+ + " s.add(maxConstr);" + NL
+ + " s.add(nonConstr);" + NL + NL
+
+ + " for (int i = 0; i < constrList.size(); i++) {" + NL
+ + " s.assertAndTrack(constrList.get(i), constrLabelList.get(i));" + NL
+ + " }" + NL + NL
+
+ + " Status st = s.check();" + NL
+ + " Map<String, Integer> map = Z3CodeManager.INSTNACE.setModel(s, areaList, st); \r\n" + NL
+ + " s.pop();" + NL
+ + " return map;" + NL
+ + " }" + NL + NL
+
+ + " /**" + NL
+ + " * Derived the value of priority" + NL
+ + " */" + NL
+ + " public Map<String, Integer> calculateContentState_priority() {" + NL
+ + " Solver s = ctx.mkSolver();" + NL
+ + " s.push();" + NL + NL
+
+ + " List<Expr> contentList = new ArrayList<Expr>();" + NL
+ + " List<BoolExpr> constrList = new ArrayList<BoolExpr>();" + NL
+ + " List<BoolExpr> constrLabelList = new ArrayList<BoolExpr>();" + NL + NL
+
+ + content_state_priority_code + NL
+
+ + " s.add(stdConstr);" + NL
+ + " s.add(minConstr);" + NL
+ + " s.add(maxConstr);" + NL
+ + " s.add(nonConstr);" + NL + NL
+
+ + " for (int i = 0; i < constrList.size(); i++) {" + NL
+ + " s.assertAndTrack(constrList.get(i), constrLabelList.get(i));" + NL
+ + " }" + NL + NL
+
+ + " Status st = s.check();" + NL
+ + " Map<String, Integer> map = Z3CodeManager.INSTNACE.setModel(s, contentList, st);" + NL
+ + " s.pop();" + NL
+ + " return map;" + NL
+ + " }" + NL
+
+ + method_code + NL
+
+
+ + "}" + NL;
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/generator/z3/SortValueGeneratorImpl.xtend b/rba.tool.editor/src/rba/tool/editor/generator/z3/SortValueGeneratorImpl.xtend
new file mode 100644
index 0000000..0ef3691
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/generator/z3/SortValueGeneratorImpl.xtend
@@ -0,0 +1,46 @@
+package rba.tool.editor.generator.z3
+
+import org.eclipse.emf.ecore.resource.Resource
+import org.eclipse.emf.ecore.resource.ResourceSet
+import org.eclipse.xtext.generator.AbstractGenerator
+import org.eclipse.xtext.generator.IFileSystemAccess2
+import org.eclipse.xtext.generator.IGeneratorContext
+import rba.tool.editor.model.manager.ResourceManager
+
+/**
+ * Generates code from your model files on save.
+ *
+ * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#code-generation
+ */
+class SortValueGeneratorImpl extends AbstractGenerator implements ISortValueGenerator {
+
+ private static SortValueCodeGenerationSupporter generationSupporter = new SortValueCodeGenerationSupporter();
+
+ override doGenerate(Resource input, IFileSystemAccess2 fsa, IGeneratorContext context) {
+ doGenerate(input.resourceSet, fsa, context);
+ }
+
+ override beforeGenerate(ResourceSet input, IFileSystemAccess2 fsa, IGeneratorContext context) {
+ }
+
+ override afterGenerate(ResourceSet input, IFileSystemAccess2 fsa, IGeneratorContext context) {
+ }
+
+ override void doGenerate(ResourceSet resourceSet, IFileSystemAccess2 fsa, IGeneratorContext context) {
+ fsa.generateFile("SortValueCalculation.java", resourceSet.compile);
+ }
+
+ def compile(ResourceSet resourceSet) '''
+ «val allAllocatables = ResourceManager.INSTANCE.getRbaAllocatables(resourceSet)»
+
+ «val allAreas = ResourceManager.INSTANCE.getRbaAreas(resourceSet)»
+««« «FOR area : allAreas»
+««« «area.name» : [ «FOR content : area.contents»«content.name», «ENDFOR»]
+««« «ENDFOR»
+ «val allContents = ResourceManager.INSTANCE.getRbaContents(resourceSet)»
+««« «FOR content : allContents»
+««« «content.name» : [ «FOR area : content.allocatable»«area.name», «ENDFOR»]
+««« «ENDFOR»
+ «generationSupporter.generate(allContents, allAllocatables, allAreas)»
+ '''
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/linking/RBAModelLinker.xtend b/rba.tool.editor/src/rba/tool/editor/linking/RBAModelLinker.xtend
new file mode 100644
index 0000000..2ceaf15
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/linking/RBAModelLinker.xtend
@@ -0,0 +1,87 @@
+package rba.tool.editor.linking
+
+import java.util.ArrayList
+import java.util.Iterator
+import java.util.List
+import javax.inject.Inject
+import org.eclipse.emf.common.util.AbstractTreeIterator
+import org.eclipse.emf.common.util.URI
+import org.eclipse.emf.ecore.EObject
+import org.eclipse.emf.ecore.EReference
+import org.eclipse.emf.ecore.resource.Resource
+import org.eclipse.emf.ecore.util.EcoreUtil
+import org.eclipse.xtext.EcoreUtil2
+import org.eclipse.xtext.linking.impl.DefaultLinkingService
+import org.eclipse.xtext.linking.lazy.LazyLinker
+import org.eclipse.xtext.nodemodel.INode
+import rba.core.ObjectReference
+import rba.tool.editor.rbaEditorModel.MemberFeatureReference
+import rba.tool.editor.util.RBAModelEditorToolUtil
+
+class RBAModelLinker extends LazyLinker {
+
+ @Inject extension DefaultLinkingService linkingService
+
+ override protected clearReference(EObject obj, EReference ref) {
+ if(RBAModelEditorToolUtil.isSkippedSyntax(obj, ref)) {
+ return;
+ }
+ super.clearReference(obj, ref);
+ }
+
+ override protected createProxy(EObject obj, INode node, EReference eRef) {
+ val EObject result = getLinkedObject(obj, node, eRef);
+ if(eRef.EOpposite !== null && (result !== null && result.eClass.EAllSuperTypes.contains(eRef.EReferenceType))) {
+ val Resource objResource = obj.eResource();
+ val Resource rslResource = result.eResource();
+ if(!equals(objResource.URI, rslResource.URI)) {
+ return result;
+ }
+ }
+
+ return super.createProxy(obj, node, eRef);
+ }
+
+ override protected getAllLinkableContents(EObject model) {
+ val AbstractTreeIterator<EObject> result = new AbstractTreeIterator<EObject>(model) {
+ override public Iterator<EObject> getChildren(Object object) {
+ val List<EObject> contents = new ArrayList<EObject>();
+ if(object instanceof MemberFeatureReference) {
+ // do nothing
+ } else {
+ val temp = (object as EObject).eContents();
+ for (eObject : temp) {
+ if(eObject instanceof MemberFeatureReference) {
+ contents.addAll(EcoreUtil2.getAllContentsOfType(eObject, ObjectReference));
+ }
+ contents.add(eObject);
+ }
+ }
+ return contents.iterator();
+ }
+ };
+
+ return result;
+ }
+
+ def private EObject getLinkedObject(EObject obj, INode node, EReference eRef) {
+ val linkedObjects = linkingService.getLinkedObjects(obj, eRef, node);
+ if(linkedObjects.size == 1) {
+ val linkedObject = linkedObjects.get(0);
+ if(linkedObject.eIsProxy) {
+ return EcoreUtil.resolve(linkedObject, obj.eResource);
+ } else {
+ return linkedObject;
+ }
+ }
+ return null;
+ }
+
+ def private boolean equals(URI uri1, URI uri2) {
+ if(uri1 === null || uri2 === null) {
+ return false;
+ }
+
+ return uri1.equals(uri2);
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/linking/RBAModelLinkingService.xtend b/rba.tool.editor/src/rba/tool/editor/linking/RBAModelLinkingService.xtend
new file mode 100644
index 0000000..f3d6a52
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/linking/RBAModelLinkingService.xtend
@@ -0,0 +1,66 @@
+package rba.tool.editor.linking
+
+import com.google.inject.Inject
+import java.util.Collections
+import org.apache.log4j.Logger
+import org.eclipse.emf.ecore.EObject
+import org.eclipse.emf.ecore.EReference
+import org.eclipse.xtext.EcoreUtil2
+import org.eclipse.xtext.linking.impl.DefaultLinkingService
+import org.eclipse.xtext.linking.impl.IllegalNodeException
+import org.eclipse.xtext.naming.IQualifiedNameConverter
+import org.eclipse.xtext.nodemodel.INode
+import rba.core.ObjectReference
+import rba.core.Package
+import rba.core.RBACorePackage
+import rba.core.RuleObject
+
+class RBAModelLinkingService extends DefaultLinkingService {
+
+ private static final Logger logger = Logger.getLogger(RBAModelLinkingService);
+
+ @Inject
+ private IQualifiedNameConverter qualifiedNameConverter;
+
+ override getLinkedObjects(EObject context, EReference ref, INode node) throws IllegalNodeException {
+ val requiredType = ref.getEReferenceType();
+ if(requiredType === null) {
+ return Collections.<EObject>emptyList();
+ }
+ val crossRefString = getCrossRefNodeAsString(node);
+ if(crossRefString === null || crossRefString.equals("")) {
+ return Collections.<EObject>emptyList();
+ }
+ if(logger.isDebugEnabled()) {
+ logger.debug("before getLinkedObjects: node: '" + crossRefString + "'");
+ }
+
+ if(context instanceof ObjectReference && ref === RBACorePackage.Literals.OBJECT_REFERENCE__REF_OBJECT && crossRefString.equals("this")) {
+ val containers = EcoreUtil2.getAllContainers(context).filter [ c |
+ c instanceof RuleObject && c.eContainer instanceof Package
+ ].toList;
+ if(containers !== null && containers.size === 1) {
+ return Collections.singletonList(containers.get(0));
+ } else {
+ return Collections.emptyList();
+ }
+ }
+
+ val scope = getScope(context, ref);
+ if(scope === null) {
+ throw new AssertionError(
+ "Scope provider " + scopeProvider.getClass().getName() + " must not return null for context " + context + ", reference " + ref + "! Consider to return IScope.NULLSCOPE instead.");
+ }
+ val qualifiedLinkName = qualifiedNameConverter.toQualifiedName(crossRefString);
+ val eObjectDescription = scope.getSingleElement(qualifiedLinkName);
+ if(logger.isDebugEnabled()) {
+ logger.debug("after getLinkedObjects: node: '" + crossRefString + "' result: " + eObjectDescription);
+ }
+ if(eObjectDescription === null) {
+ return Collections.emptyList();
+ }
+ val result = eObjectDescription.getEObjectOrProxy();
+ return Collections.singletonList(result);
+ }
+
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/messages/Messages.java b/rba.tool.editor/src/rba/tool/editor/messages/Messages.java
new file mode 100644
index 0000000..10f0394
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/messages/Messages.java
@@ -0,0 +1,415 @@
+package rba.tool.editor.messages;
+
+import org.eclipse.osgi.util.NLS;
+
+public class Messages extends NLS {
+
+ private static final String BUNDLE_NAME = "rba.tool.editor.messages.messages";
+
+ public static String CONDITION_BOOLEAN_TYPE_CHECK;
+
+ public static String CONDITION_TPYE_EQUAL_CHECK;
+
+ public static String PACKAGE_CHILD_EXISTENCE_CHECK;
+
+ public static String DISPLAY_AREA_SIZE_CHECK;
+
+ public static String DISPLAY_ROOT_CHECK;
+
+ public static String COMPOSITE_AREA_CHECK;
+
+ public static String VERTICAL_LAYOUT_CHECK;
+
+ public static String HORIZONTAL_LAYOUT_CHECK;
+
+ public static String FIXEDPOSITION_LAYOUT_CHECK;
+
+ public static String POSITION_CONTAINER_COORDINATE_CHECK;
+
+ public static String AREA_VISIBILITY_TYPE;
+
+ public static String AREA_ZORDER_TYPE;
+
+ public static String ALLOCATABLE_SIZE;
+
+ public static String CONTENT_ALLOCATABLE_SIZE;
+
+ public static String CONTENT_ALLOCATABLE_INVALID_TYPE;
+
+ public static String CONTENT_ALLOCATABLE_DUPLICATE;
+
+ public static String CONTENT_DISPLAY_SIZE_CHECK;
+
+ public static String VISIBILITY_IS_REQUIRED;
+
+ public static String HAS_AT_LEAST_ONE_STATE;
+ public static String ZORDER_IS_REQUIRED;
+
+ public static String HAS_AT_LEAST_ONE_SIZE;
+
+ public static String ORDER_IS_REQUIRED;
+
+ public static String QUEUE_IS_REQUIRED;
+
+ public static String MESSAGEAPP_ALLOCATABLE_SIZE;
+
+ public static String MESSAGEAPP_STATES_SIZE;
+
+ public static String CONTENTSTATE_TYPE;
+
+ public static String CONSTRAINT_EXPRESSION_TYPE;
+
+ public static String THATOF_OPERAND_SIZE;
+
+ public static String THATOF_OPERAND_OBJECTREFERENCE;
+
+ public static String THATOF_OPERAND_OBJECTREFERENCE_EQUAL;
+
+ public static String THATOF_OPERAND_EXPRESSIONTYPE;
+
+ public static String EQUALTO_OPERAND_SIZE_NULL;
+
+ public static String EQUALTO_OPERAND_SIZE;
+
+ public static String EQUALTO_OPERAND_TYPE;
+
+ public static String GREATERTHAN_OPERAND_SIZE_NULL;
+
+ public static String GREATERTHAN_OPERAND_SIZE;
+
+ public static String GREATERTHAN_OPERAND_TYPE;
+
+ public static String MUCHGREATERTHAN_OPERAND_SIZE_NULL;
+
+ public static String MUCHGREATERTHAN_OPERAND_SIZE;
+
+ public static String MUCHGREATERTHAN_OPERAND_TYPE;
+
+ public static String LOWERTHAN_OPERAND_SIZE_NULL;
+
+ public static String LOWERTHAN_OPERAND_SIZE;
+
+ public static String LOWERTHAN_OPERAND_TYPE;
+
+ public static String COMPARISONAND_OPERAND_SIZE;
+
+ public static String COMPARISONAND_OPERAND_TYPE;
+
+ public static String PLUS_OPERAND_SIZE;
+
+ public static String PLUS_OPERAND_TYPE;
+
+ public static String PLUS_OPERAND_TYPE_NOT_OPERATOR;
+
+ public static String AND_OPERAND_SIZE;
+
+ public static String AND_OPERAND_TYPE;
+
+ public static String OR_OPERAND_SIZE;
+
+ public static String OR_OPERAND_TYPE;
+
+ public static String IMPLIES_OPERAND_SIZE;
+
+ public static String IMPLIES_OPERAND_TYPE;
+
+ public static String NOT_OPERAND_SIZE;
+
+ public static String NOT_OPERAND_TYPE;
+
+ public static String OPERANDS_MUST_BE_OBJECT;
+
+ public static String FIRST_OPERAND_MUST_BE_OBJECT;
+
+ public static String ISDISPLAYED_SIZE;
+
+ public static String ISDISPLAYED_TYPE;
+
+ public static String DISPLAYINGCONTENT_SIZE;
+
+ public static String DISPLAYINGCONTENT_TYPE;
+
+ public static String GETCONTENTSLIST_SIZE;
+
+ public static String GETCONTENTSLIST_TYPE;
+
+ public static String ISACTIVE_SIZE;
+
+ public static String ISACTIVE_TYPE;
+
+ public static String ISVISIBLE_SIZE;
+
+ public static String ISVISIBLE_TYPE;
+
+ public static String GETALLOCATABLES_SIZE;
+
+ public static String GETALLOCATABLES_TYPE;
+
+ public static String LAMBDAEXPRESSION_TYPE;
+
+ public static String FORALL_OPERAND_SIZE;
+
+ public static String FORALL_OPERAND_TYPE;
+
+ public static String FORALL_LAMBDA_TYPE;
+
+ public static String EXISTS_OPERAND_SIZE;
+
+ public static String EXISTS_OPERAND_TYPE;
+
+ public static String NAMEDELEMENT_NAME_DUPLICATE;
+
+ public static String CIRCULAR_CONTAINMENT_DETECTE;
+
+ public static String ISEQUALTO_OPERAND_SIZE;
+
+ public static String ISEQUALTO_OPERAND_TYPE;
+
+ public static String ISGREATERTHAN_OPERAND_SIZE;
+
+ public static String ISGREATERTHAN_OPERAND_TYPE;
+
+ public static String ISGREATERTHANEQUAL_OPERAND_SIZE;
+
+ public static String ISGREATERTHANEQUAL_OPERAND_TYPE;
+
+ public static String ISLOWERTHAN_OPERAND_SIZE;
+
+ public static String ISLOWERTHAN_OPERAND_TYPE;
+
+ public static String ISLOWERTHANEQUAL_OPERAND_SIZE;
+
+ public static String ISLOWERTHANEQUAL_OPERAND_TYPE;
+
+ public static String EXCLUSIVEOR_OPERAND_SIZE;
+
+ public static String EXCLUSIVEOR_OPERAND_TYPE;
+
+ public static String ISHIDDEN_SIZE;
+
+ public static String ISHIDDEN_TYPE;
+
+ public static String CONTENTVALUE_SIZE;
+
+ public static String CONTENTVALUE_TYPE;
+
+ public static String SET_OF_OPERAND_TYPE;
+
+ public static String SET_OF_OPERAND_DUPLICATE;
+
+ public static String ISON_SIZE;
+
+ public static String ISON_TYPE;
+
+ public static String ISDEFEATEDBY_OEPRAND_SIZE;
+
+ public static String ISDEFEATEDBY_OEPRAND_0_TYPE;
+
+ public static String ISDEFEATEDBY_OPERAND_0_CHECK;
+
+ public static String ISDEFEATEDBY_OPERAND_1_CHECK;
+
+ public static String DEFEATS_OPERAND_SIZE;
+
+ public static String DEFEATS_OPERAND_0_TYPE;
+
+ public static String DEFEATS_OPERAND_0_CHECK;
+
+ public static String DEFEATS_OPERAND_1_CHECK;
+
+ public static String ISDISAPPEARED_OPERAND_SIZE;
+
+ public static String ISDISAPPEARED_OPERAND_0_TYPE;
+
+ public static String ISDISAPPEARED_OPERAND_0_CHECK;
+
+ public static String ISCANCELED_OPERAND_SIZE;
+
+ public static String ISCANCELED_OPERAND_0_TYPE;
+
+ public static String ISCANCELED_OPERAND_0_CHECK;
+
+ public static String OFFSET_SIZE_DUPLICATE;
+
+ public static String OFFSET_SIZE_AREA_REF;
+
+ public static String AREASET_TARGET_SIZE;
+
+ public static String AREASET_TARGET_DUPLICATE;
+
+ public static String AREASET_TARGET_INCLUDE_SELF;
+
+ public static String ALLOCATEDCONTENT_TYPE;
+
+ public static String ONSCENE_OPERAND_SIZE_CHECK;
+
+ public static String ONSCENE_OPERAND_TYPE_CHECK;
+
+ public static String ONSCENE_ISGLOBALSCENE;
+
+ public static String OFFSCENE_OPERAND_SIZE_CHECK;
+
+ public static String OFFSCENE_OPERAND_TYPE_CHECK;
+
+ public static String OFFSCENE_ISGLOBALSCENE;
+
+ public static String SETPROPERTY_OPERAND_SIZE_CHECK;
+
+ public static String SETPROPERTY_OPERAND_0_TYPE_CHECK;
+
+ public static String SETPROPERTY_OPERAND_ISGLOBALSCENE;
+
+ public static String SETPROPERTY_OPERAND_1_TYPE_CHECK;
+
+ public static String SETPROPERTY_PROPERTY_NEGATIVE;
+
+ public static String GETPROPERTY_OPERAND_SIZE_CHECK;
+
+ public static String GETPROPERTY_OPERAND_TYPE_CHECK;
+
+ public static String GETPROPERTY_OPERAND_ISGLOBALSCENE;
+
+ public static String SCENE_GLOBAL;
+
+ public static String SCENE_PROPERTY_NEGATIVE;
+
+ public static String SOUND_ALLOCATABLE_SIZE;
+
+ public static String SOUND_ALLOCATABLE_INVALID_TYPE;
+
+ public static String SOUND_ALLOCATABLE_DUPLICATE;
+
+ public static String ZONESET_TARGET_SIZE;
+
+ public static String ZONESET_TARGET_INCLUDE_SELF;
+
+ public static String ZONESET_TARGET_DUPLICATE;
+
+ public static String ISSOUNDING_SIZE;
+
+ public static String ISSOUNDING_TYPE;
+
+ public static String ISOUTPUTTED_SIZE;
+
+ public static String ISOUTPUTTED_TYPE;
+
+ public static String ISMUTED_SIZE;
+
+ public static String ISMUTED_TYPE;
+
+ public static String ISATTENUATED_SIZE;
+
+ public static String ISATTENUATED_TYPE;
+
+ public static String OUTPUTTINGSOUND_SIZE;
+
+ public static String OUTPUTTINGSOUND_TYPE;
+
+ public static String VIEWCONTENTSET_TARGET_SIZE;
+
+ public static String VIEWCONTENTSET_TARGET_DUPLICATE;
+
+ public static String VIEWCONTENTSET_TARGET_INCLUDE_SELF;
+
+ public static String VIEWCONTENTSET_ALLOCATABLE_INVALID_TYPE;
+
+ public static String VIEWCONTENTSET_ALLOCATABLE_DUPLICATE;
+
+ public static String SOUNDCONTENTSET_TARGET_SIZE;
+
+ public static String SOUNDCONTENTSET_TARGET_DUPLICATE;
+
+ public static String SOUNDCONTENTSET_TARGET_INCLUDE_SELF;
+
+ public static String SOUNDCONTENTSET_ALLOCATABLE_INVALID_TYPE;
+
+ public static String SOUNDCONTENTSET_ALLOCATABLE_DUPLICATE;
+
+ public static String AREASET_TARGET_INVALID_TYPE;
+
+ public static String VIEWCONTENTSET_TARGET_INVALID_TYPE;
+
+ public static String ZONESET_TARGET_INVALID_TYPE;
+
+ public static String SOUNDCONTENTSET_TARGET_INVALID_TYPE;
+
+ public static String OPERAND_SIZE_ONE;
+
+ public static String OPERAND_SIZE_TWO;
+
+ public static String FIRST_OPERAND_MUST_CONTENT;
+
+ public static String ARGUMENT_MUST_CONTENT;
+
+ public static String OPERAND_CANNOT_USE_PRE;
+
+ public static String ARGUMENT_CANNOT_USE_PRE;
+
+ public static String ARGUMENT_MUST_ALLOCATABLE;
+
+ public static String COMBINATION_OPERAND_ARGUMENT;
+
+ public static String FIRST_OPERAND_MUST_ALLOCATABLE;
+
+ public static String FIRST_OPERAND_MUST_VIEWCONTENT;
+
+ public static String ARGUMENT_MUST_AREA;
+
+ public static String FIRST_OPERAND_MUST_AREA;
+
+ public static String ARGUMENT_MUST_VIEWCONTENT;
+
+ public static String FIRST_OPERAND_MUST_SOUNDCONTENT;
+
+ public static String ARGUMENT_MUST_ZONE;
+
+ public static String FIRST_OPERAND_MUST_ZONE;
+
+ public static String ARGUMENT_MUST_SOUNDCONTENT;
+
+ public static String TARGET_MODEL_NAME_MISMATCH;
+
+ public static String MIN_OP_OPERAND_SIZE;
+
+ public static String MIN_OP_OPERAND_TYPE;
+
+ public static String MAX_OP_OPERAND_SIZE;
+
+ public static String MAX_OP_OPERAND_TYPE;
+
+ public static String SELECT_OPERAND_SIZE;
+
+ public static String SELECT_OPERAND_TYPE;
+
+ public static String FIRST_OPERAND_MUST_FOR_ISTYPEOF;
+
+ public static String SIZE_OPERAND_TYPE;
+
+ public static String NAME_RESTRICTION;
+
+ public static String PROJECT_SIZE_CHECK;
+
+ public static String PROJECT_NAME_CHECK;
+
+ public static String FIRST_OPERAND_MUST_CONTENT_OR_CONTENTSTATE;
+
+ public static String BODY_MUST_OBJECT;
+
+ public static String OPERANDS_CANNOT_USE_PRE;
+
+ public static String MUST_BE_USE_IN;
+
+ public static String SIZE_NEGATIVE;
+
+ public static String ZONE_VISIBILITY_NEGATIVE;
+
+ public static String ZONE_ATTENUATE_NEGATIVE;
+
+ static {
+ // initialize resource bundle
+ NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+ }
+
+ private Messages() {
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/messages/messages.properties b/rba.tool.editor/src/rba/tool/editor/messages/messages.properties
new file mode 100644
index 0000000..e1e6962
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/messages/messages.properties
@@ -0,0 +1,201 @@
+
+CONDITION_BOOLEAN_TYPE_CHECK=[IfStatement]: condition expression type is not BOOLEAN type.
+CONDITION_TPYE_EQUAL_CHECK=[IfStatement]: The types of the then and else expressions do not match. Please define same type for then and else expressions.
+PACKAGE_CHILD_EXISTENCE_CHECK=[Package '%s']: Child element is not defined
+DISPLAY_AREA_SIZE_CHECK=[Display '%s' ]: A size exceeding the size of Display is defined in the Area below.
+DISPLAY_ROOT_CHECK=[Display '%s']: Route area is not defined. Please describe CompositeArea.
+COMPOSITE_AREA_CHECK=[CompositeArea '%s']: Layout is not defined. Please describe the layout
+VERTICAL_LAYOUT_CHECK=[VerticalLayout]: Sub-Area is not defined. Please describe Sub-Area.
+HORIZONTAL_LAYOUT_CHECK=[HorizontalLayout]: Sub-Area is not defined. Please describe subarea.
+FIXEDPOSITION_LAYOUT_CHECK=[FixedPositionLayout]: Sub-Area is not defined. Please describe PositionContainer.
+POSITION_CONTAINER_COORDINATE_CHECK=[PositionContainer]: The definition of PositionContainer's coordinates exceeds the size of Display.
+AREA_VISIBILITY_TYPE=[Area '%s']: The type of constraint expression of visibility is invalid. Please return the value.
+AREA_ZORDER_TYPE=[Area '%s']: The type of constraint expression of Z order is invalid. Please return the value.
+CONTENT_ALLOCATABLE_SIZE=[ViewContent '%s']: \u00a0\u00a0 Displayable area is not defined. Please describe allocatable.
+CONTENT_ALLOCATABLE_INVALID_TYPE=[ViewContent '%s']: The allocatable in allocatables is not a Area/AreaSet.
+CONTENT_ALLOCATABLE_DUPLICATE=[ViewContent '%s']: The area in allocatables is duplicated.
+CONTENT_DISPLAY_SIZE_CHECK=[ViewContent '%s']: A size exceeding the size of Display is defined.
+VISIBILITY_IS_REQUIRED=[%s '%s']: visibility is required.
+HAS_AT_LEAST_ONE_STATE=[%s '%s']: Must define at least one State.
+ZORDER_IS_REQUIRED=[%s '%s]: zorder is required.
+HAS_AT_LEAST_ONE_SIZE=[%s '%s']: Size or sizeReference must be defined at least one.
+ORDER_IS_REQUIRED=[%s '%s']: order is required.
+QUEUE_IS_REQUIRED=[%s '%s']: queue is required.
+MESSAGEAPP_ALLOCATABLE_SIZE=[MessageApp '%s']: \u00a0 Displayable area is not defined. Please describe allocatable.
+MESSAGEAPP_STATES_SIZE=[MessageApp '%s']: Content state is not defined. Please describe ContentState.
+CONTENTSTATE_TYPE=[ContentState '%s']: Value type constraint expression is illegal. Please return the value.
+CONSTRAINT_EXPRESSION_TYPE=[Constraint]: Constraint expression type is not BOOLEAN type.
+THATOF_OPERAND_SIZE=[ThatOfOperator]: The number of operands is invalid. Only one operand can be defined.
+THATOF_OPERAND_OBJECTREFERENCE=[ThatOfOperator]: The type of the operand is not an ObjectReference.
+THATOF_OPERAND_OBJECTREFERENCE_EQUAL=[ThatOfOperator]: Operand type is invalid. Please specify the same type as the parent model element.
+THATOF_OPERAND_EXPRESSIONTYPE=[ThatOfOperator]: You can only define[AREA / CONTENT_STATE\u300das the operand constraint expression type.
+EQUALTO_OPERAND_SIZE_NULL=[EqualToOperator]: Operand is not defined.
+EQUALTO_OPERAND_SIZE=[EqualToOperator]: The number of operands is invalid. Only one operand can be defined.
+EQUALTO_OPERAND_TYPE=[EqualToOperator]: The operand constraint expression type is invalid. Write a constraint expression that returns a value.
+GREATERTHAN_OPERAND_SIZE_NULL=[GreaterThanOperator]: Operand is not defined
+GREATERTHAN_OPERAND_SIZE=[GreaterThanOperator]: The number of operands is invalid. Only one operand can be defined.
+GREATERTHAN_OPERAND_TYPE=[GreaterThanOperator]: The operand constraint expression type is invalid. Please describe a constraint expression that returns a value.
+MUCHGREATERTHAN_OPERAND_SIZE_NULL=[MuchGreaterThanOperator]: Operand is not defined.
+MUCHGREATERTHAN_OPERAND_SIZE=[MuchGreaterThanOperator]: The number of operands is invalid. Only one operand can be defined.
+MUCHGREATERTHAN_OPERAND_TYPE=[MuchGreaterThanOperator]: The operand constraint expression type is invalid. Please describe a constraint expression that returns a value.
+LOWERTHAN_OPERAND_SIZE_NULL=[LowerThanOperator]: Operand is not defined.
+LOWERTHAN_OPERAND_SIZE=[LowerThanOperator]: The number of operands is invalid. Only one operand can be defined.
+LOWERTHAN_OPERAND_TYPE=[LowerThanOperator]: The operand constraint expression type is invalid. Please describe a constraint expression that returns a value.
+COMPARISONAND_OPERAND_SIZE=[ComparisonAnd]: The number of operands is invalid. Define two or more operands.
+COMPARISONAND_OPERAND_TYPE=[ComparisonAnd]: The type of the operand is invalid. Please use the comparison operator.
+PLUS_OPERAND_SIZE=[PlusOperator]: The number of operands is invalid. Define two or more operands.
+PLUS_OPERAND_TYPE=[PlusOperator]: The operand constraint expression type is invalid. Please describe a constraint expression that returns a value.
+PLUS_OPERAND_TYPE_NOT_OPERATOR=[PlusOperator]: The operand constraint expression type is invalid.The operator can not be use. Please describe a constraint expression that returns a value.
+AND_OPERAND_SIZE=[AndOperator]: The number of operands is invalid. Define two or more operands.
+AND_OPERAND_TYPE=[AndOperator]: The operand constraint expression type is invalid. Please describe a constraint expression that returns BOOLEAN type.
+OR_OPERAND_SIZE=[OrOperator]: The number of operands is invalid. Define two or more operands.
+OR_OPERAND_TYPE=[OrOperator]: The operand constraint expression type is invalid. Please describe a constraint expression that returns BOOLEAN type.
+IMPLIES_OPERAND_SIZE=[ImpliesOperator]: The number of operands is invalid. Define two or more operands.
+IMPLIES_OPERAND_TYPE=[ImpliesOperator]: The operand constraint expression type is invalid. Please describe a constraint expression that returns BOOLEAN type.
+NOT_OPERAND_SIZE=[NotOperator]: The number of operands is invalid. Only one operand can be defined.
+NOT_OPERAND_TYPE=[NotOperator]: The operand constraint expression type is invalid. Please describe a constraint expression that returns BOOLEAN type.
+OPERANDS_MUST_BE_OBJECT=[%s]: You can only define [AREA / CONTENT / ZONE / SOUND / CONTENT_STATE] as the operand constraint expression type.
+FIRST_OPERAND_MUST_BE_OBJECT=[%s]: You can not compare values.Please use '=' to compare values.
+ISDISPLAYED_SIZE=[IsDisplayed]: The number of operands is invalid. Only one operand can be defined.
+ISDISPLAYED_TYPE=[IsDisplayed]: The operand constraint expression type is invalid. describe a constraint expression that returns Area.
+DISPLAYINGCONTENT_SIZE=[DisplayingContent]: The number of operands is invalid. Only one operand can be defined.
+DISPLAYINGCONTENT_TYPE=[DisplayingContent]: The operand constraint expression type is invalid. Please describe a constraint expression that returns Area.
+GETCONTENTSLIST_SIZE= [GetContentsList]: The number of operands is invalid. Only one operand can be defined.
+GETCONTENTSLIST_TYPE=[GetContentsList]: The operand constraint expression type is invalid. Please describe a constraint expression that returns Area, Zone.
+ISACTIVE_SIZE=[IsActive]: The number of operands is invalid. Only one operand can be defined.
+ISACTIVE_TYPE=[IsActive]: The operand constraint expression type is invalid. Please describe a constraint expression that returns Content.
+ISVISIBLE_SIZE=[IsVisible]: The number of operands is invalid. Only one operand can be defined.
+ISVISIBLE_TYPE=[IsVisible]: The operand constraint expression type is invalid. Please describe a constraint expression that returns Content
+GETALLOCATABLES_SIZE=[GetAllocatables]: The number of operands is invalid. Only one operand can be defined.
+GETALLOCATABLES_TYPE=[GetAllocatables]: The operand constraint expression type is invalid. Please describe a constraint expression that returns Content
+LAMBDAEXPRESSION_TYPE=[LambdaExpression]: Variable constraint expression type and context constraint expression type: do not match.
+FORALL_OPERAND_SIZE=[ForAllOperator]: The number of operands is invalid. Only one operand can be defined.
+FORALL_OPERAND_TYPE=[ForAllOperator]: The operand type is invalid. Please describe a Set(AreaSet, ViewContentSet, ZoneSet, SoundContentSet), or set of Areas, Contents, Zones, SoundContents.
+FORALL_LAMBDA_TYPE=[ForAllOperator]: Type of The lambda's body expression must be Boolean or Action Expression.
+EXISTS_OPERAND_SIZE=[ExistsOperator]: The number of operands is invalid. Only one operand can be defined.
+EXISTS_OPERAND_TYPE=[ExistsOperator]: The operand type is invalid. Please describe a Set(AreaSet, ViewContentSet, ZoneSet, SoundContentSet), or set of Areas, Contents, Zones, SoundContents.
+NAMEDELEMENT_NAME_DUPLICATE=Duplicate name '%s'
+CIRCULAR_CONTAINMENT_DETECTE=A cycle was detected in the target of '%s'. %s
+ISEQUALTO_OPERAND_SIZE=[IsEqualToOperator]: The number of operands is invalid. Please define two operands.
+ISEQUALTO_OPERAND_TYPE=[IsEqualToOperator]: The operand constraint expression type is invalid. Write a constraint expression that returns a value. Please use '==' to compare objects.
+ISGREATERTHAN_OPERAND_SIZE=[IsGreaterThanOperator]: The number of operands is invalid. Please define two operands.
+ISGREATERTHAN_OPERAND_TYPE=[IsGreaterThanOperator]: The operand constraint expression type is invalid. Write a constraint expression that returns a value.
+ISGREATERTHANEQUAL_OPERAND_SIZE=[IsGreaterThanEqualOperator]: The number of operands is invalid. Please define two operands.
+ISGREATERTHANEQUAL_OPERAND_TYPE=[IsGreaterThanEqualOperator]: The operand constraint expression type is invalid. Write a constraint expression that returns a value.
+ISLOWERTHAN_OPERAND_SIZE=[IsLowerThanOperator]: The number of operands is invalid. Please define two operands.
+ISLOWERTHAN_OPERAND_TYPE=[IsLowerThanOperator]: The operand constraint expression type is invalid. Write a constraint expression that returns a value.
+ISLOWERTHANEQUAL_OPERAND_SIZE=[IsLowerThanEqualOperator]: The number of operands is invalid. Please define two operands.
+ISLOWERTHANEQUAL_OPERAND_TYPE=[IsLowerThanEqualOperator]: The operand constraint expression type is invalid. Write a constraint expression that returns a value.
+EXCLUSIVEOR_OPERAND_SIZE=[ExclusiveOrOperator]: The number of operands is invalid. Define two or more operands.
+EXCLUSIVEOR_OPERAND_TYPE=[ExclusiveOrOperator]: The operand constraint expression type is invalid. Write a constraint expression that returns BOOLEAN type.
+ISHIDDEN_SIZE=[IsHidden]: The number of operands is invalid. Only one operand can be defined.
+ISHIDDEN_TYPE=[IsHidden]: The operand constraint expression type is invalid. Write a constraint expression that returns Area.
+CONTENTVALUE_SIZE=[ContentValue]: The number of operands is invalid. Only one operand can be defined.
+CONTENTVALUE_TYPE=[ContentValue]: The operand constraint expression type is invalid. Write a constraint expression that returns Area, Zone.
+SET_OF_OPERAND_TYPE=[SetOfOperator]: The operand constraint expression type is invalid. Write a constraint expression that returns same elements.
+SET_OF_OPERAND_DUPLICATE=[SetOfOperator]: The element in the target is duplicated.
+ISON_TYPE=[IsOn]: The operand constraint expression type is invalid. Please describe a constraint expression that returns Scene.
+ISDEFEATEDBY_OEPRAND_SIZE=[IsDefeatedBy]: The number of operands is invalid. Please define two operands.
+ISDEFEATEDBY_OEPRAND_0_TYPE=[IsDefeatedBy]: The operand constraint expression type is invalid. Write a constraint expression that returns Content.
+ISDEFEATEDBY_OPERAND_0_CHECK=[IsDefeatedBy]: (pre)can not be used.
+ISDEFEATEDBY_OPERAND_1_CHECK=[IsDefeatedBy]: You can not use (pre) as an argument.
+DEFEATS_OPERAND_SIZE=[Defeats]: The number of operands is invalid. Please define two operands.
+DEFEATS_OPERAND_0_TYPE=[Defeats]: The operand constraint expression type is invalid. Write a constraint expression that returns Content.
+DEFEATS_OPERAND_0_CHECK=[Defeats]: (pre) can not be used.
+DEFEATS_OPERAND_1_CHECK=[Defeats]: You can not use (pre) as an argument.
+ISDISAPPEARED_OPERAND_SIZE=[IsDisappeared]: The number of operands is invalid. Please define one operand.
+ISDISAPPEARED_OPERAND_0_TYPE=[IsDisappeared]: The operand constraint expression type is invalid. Write a constraint expression that returns Content.
+ISDISAPPEARED_OPERAND_0_CHECK=[IsDisappeared]: (pre) can not be used.
+ISCANCELED_OPERAND_SIZE=[IsCanceled]: The number of operands is invalid. Please define one operand.
+ISCANCELED_OPERAND_0_TYPE=[IsCanceled]: The operand constraint expression type is invalid. Write a constraint expression that returns Content.
+ISCANCELED_OPERAND_0_CHECK=[IsCanceled]: (pre) can not be used.
+OFFSET_SIZE_DUPLICATE=[Offset]: The sizeReference has already been referenced from another Offset. Same size can not be used multiple.
+OFFSET_SIZE_AREA_REF=[Offset]: The sizeReference using the Offset is not being referenced from the Area. Please refer to Size between the Offset and the Area.
+AREASET_TARGET_SIZE=[AreaSet '%s']: \u00a0\u00a0 Includes area is not defined. Please describe target.
+AREASET_TARGET_DUPLICATE=[AreaSet '%s']: The area in the target is duplicated.
+AREASET_TARGET_INCLUDE_SELF=[AreaSet '%s']: The target contains iteself.
+ALLOCATEDCONTENT_TYPE=[AllocatedContent]: The operand constraint expression type is invalid. Please describe a constraint expression that returns Area, Zone.
+ONSCENE_OPERAND_SIZE_CHECK=[OnScene]: Please define one operand.
+ONSCENE_OPERAND_TYPE_CHECK=[OnScene]: Describe the scene in the operand.
+ONSCENE_ISGLOBALSCENE=[OnScene]: Please use the global scene.
+OFFSCENE_OPERAND_SIZE_CHECK=[OffScene]: Please define one operand.
+OFFSCENE_OPERAND_TYPE_CHECK=[OffScene]: Describe the scene in the operand.
+OFFSCENE_ISGLOBALSCENE=[OffScene]: Please use the global scene.
+SETPROPERTY_OPERAND_SIZE_CHECK=[SetProperty]: Please specify operand and argument.
+SETPROPERTY_OPERAND_0_TYPE_CHECK=[SetProperty]: Write the scene property in the operand.
+SETPROPERTY_OPERAND_ISGLOBALSCENE=[SetProperty]: Please use the global scene.
+SETPROPERTY_OPERAND_1_TYPE_CHECK=[SetProperty]: Please write a numeric value for the argument.
+SETPROPERTY_PROPERTY_NEGATIVE=[SetProperty]: The property is invalid. Please use a value greater than or equal to 0.
+GETPROPERTY_OPERAND_SIZE_CHECK=[GetProperty]: Please define one operand.
+GETPROPERTY_OPERAND_TYPE_CHECK=[GetProperty]: Describe the scene property in the operand.
+GETPROPERTY_OPERAND_ISGLOBALSCENE=[GetProperty]: Use the global scene.
+SCENE_GLOBAL=[Scene]: To define properties, set global: true.
+SCENE_PROPERTY_NEGATIVE=[Scene]: The property is invalid. Please use a value greater than or equal to 0.
+SOUND_ALLOCATABLE_SIZE=[SoundContent '%s']: \u00a0\u00a0 Displayable zone is not defined. Please describe allocatable.
+SOUND_ALLOCATABLE_INVALID_TYPE=[SoundContent '%s']: The allocatable in allocatables is not a Zone/ZoneSet.
+SOUND_ALLOCATABLE_DUPLICATE=[SoundContent '%s']: The zone in allocatables is duplicated.
+ZONESET_TARGET_SIZE=[ZoneSet '%s']: \u00a0\u00a0 Includes zone is not defined. Please describe target.
+ZONESET_TARGET_INCLUDE_SELF=[ZoneSet '%s']: The target contains iteself.
+ZONESET_TARGET_DUPLICATE=[ZoneSet '%s']: The zone in the target is duplicated.
+ISSOUNDING_SIZE=[IsSounding]: The number of operands is invalid. Only one operand can be defined.
+ISSOUNDING_TYPE=[IsSounding]: The operand constraint expression type is invalid. Write a constraint expression that returns Sound.
+ISOUTPUTTED_SIZE=[IsOutputted]: The number of operands is invalid. Only one operand can be defined.
+ISOUTPUTTED_TYPE=[IsOutputted]: The operand constraint expression type is invalid. Write a constraint expression that returns Zone.
+ISMUTED_SIZE=[IsMuted]: The number of operands is invalid. Only one operand can be defined.
+ISMUTED_TYPE=[IsMuted]: The operand constraint expression type is invalid. Write a constraint expression that returns Zone.
+ISATTENUATED_SIZE=[IsAttenuated]: The number of operands is invalid. Only one operand can be defined.
+ISATTENUATED_TYPE=[IsAttenuated]: The operand constraint expression type is invalid. Write a constraint expression that returns Zone.
+OUTPUTTINGSOUND_SIZE=[OutputtingSound]: The number of operands is invalid. Only one operand can be defined.
+OUTPUTTINGSOUND_TYPE=[OutputtingSound]: The operand constraint expression type is invalid. Write a constraint expression that returns Zone.
+ISON_SIZE=[IsOn]: The number of operands is invalid. Only one operand can be defined.
+VIEWCONTENTSET_TARGET_SIZE=[ViewContentSet '%s']: \u00a0\u00a0 Includes view content is not defined. Please describe target.
+VIEWCONTENTSET_TARGET_DUPLICATE=[ViewContentSet '%s']: The view content in the target is duplicated.
+VIEWCONTENTSET_TARGET_INCLUDE_SELF=[ViewContentSet '%s']: The target contains iteself.
+VIEWCONTENTSET_ALLOCATABLE_INVALID_TYPE=[ViewContentSet '%s']: The allocatable in allocatables is not a Area/AreaSet.
+VIEWCONTENTSET_ALLOCATABLE_DUPLICATE=[ViewContentSet '%s']: The area in allocatables is duplicated.
+SOUNDCONTENTSET_TARGET_SIZE=[SoundContentSet '%s']: \u00a0\u00a0 Includes sound content is not defined. Please describe target.
+SOUNDCONTENTSET_TARGET_DUPLICATE=[SoundContentSet '%s']: The sound content in the target is duplicated.
+SOUNDCONTENTSET_TARGET_INCLUDE_SELF=[SoundContentSet '%s']: The target contains iteself.
+SOUNDCONTENTSET_ALLOCATABLE_INVALID_TYPE=[SoundContentSet '%s']: The allocatable in allocatables is not a Zone/ZoneSet.
+SOUNDCONTENTSET_ALLOCATABLE_DUPLICATE=[SoundContentSet '%s']: The zone in allocatables is duplicated.
+AREASET_TARGET_INVALID_TYPE=[AreaSet '%s']: The area in target is not a Area/AreaSet.
+VIEWCONTENTSET_TARGET_INVALID_TYPE=[ViewContentSet '%s']: The content in target is not a ViewContent/ViewContentSet.
+ZONESET_TARGET_INVALID_TYPE=[ZoneSet '%s']: The zone in target is not a Zone/ZoneSet.
+SOUNDCONTENTSET_TARGET_INVALID_TYPE=[SoundContentSet '%s']: The content in target is not a SoundContent/SoundContentSet.
+OPERAND_SIZE_ONE=[%s]: The number of operands is invalid. The argument can not be specified.
+OPERAND_SIZE_TWO=[%s]: The number of operands is invalid. Please define two operands.
+FIRST_OPERAND_MUST_CONTENT=[%s]: The first operand is invalid. Specify a ViewContent, SoundContent.
+ARGUMENT_MUST_CONTENT=[%s]: The argument operand is invalid. Specify a ViewContent, SoundContent.
+OPERAND_CANNOT_USE_PRE=[%s]: (pre) can not be used to first operand.
+ARGUMENT_CANNOT_USE_PRE=[%s]: (pre) can not be used to the argument.
+ARGUMENT_MUST_ALLOCATABLE=[%s]: The argument operand is invalid. Specify a Area, a Zone.
+COMBINATION_OPERAND_ARGUMENT=[%s]: The operand and the argument are invalid combination. Specify together an Area and a ViewContent, or a Zone and a SoundContent.
+FIRST_OPERAND_MUST_ALLOCATABLE=[%s]: The first operand is invalid. Specify a Area, a Zone.
+FIRST_OPERAND_MUST_VIEWCONTENT=[%s]: The first operand is invalid. Specify a ViewContent.
+ARGUMENT_MUST_AREA=[%s]: The argument operand is invalid. Specify a Area.
+FIRST_OPERAND_MUST_AREA=[%s]: The first operand is invalid. Specify a Area.
+ARGUMENT_MUST_VIEWCONTENT=[%s]: The argument operand is invalid. Specify a ViewContent.
+FIRST_OPERAND_MUST_SOUNDCONTENT=[%s]: The first operand is invalid. Specify a SoundContent.
+ARGUMENT_MUST_ZONE=[%s]: The argument operand is invalid. Specify a Zone.
+FIRST_OPERAND_MUST_ZONE=[%s]: The first operand is invalid. Specify a Zone.
+ARGUMENT_MUST_SOUNDCONTENT=[%s]: The argument operand is invalid. Specify a SoundContent.
+ALLOCATABLE_SIZE=[%s]: allocatable is not defined. Please describe allocatable.
+MIN_OP_OPERAND_SIZE=[MinOperator]: The number of operands is invalid. Only one operand can be defined.
+MIN_OP_OPERAND_TYPE=[MinOperator]: The operand type is invalid. Please describe a Set(AreaSet, ViewContentSet, ZoneSet, SoundContentSet), or set of Areas, Contents, Zones.
+MAX_OP_OPERAND_SIZE=[MaxOperator]: The number of operands is invalid. Only one operand can be defined.
+MAX_OP_OPERAND_TYPE=[MaxOperator]: The operand type is invalid. Please describe a Set(AreaSet, ViewContentSet, ZoneSet, SoundContentSet), or set of Areas, Contents, Zones.
+SELECT_OPERAND_SIZE=[SelectOperator]: The number of operands is invalid. Only one operand can be defined.
+SELECT_OPERAND_TYPE=[SelectOperator]: The operand type is invalid. Please describe a Set(AreaSet, ViewContentSet, ZoneSet, SoundContentSet), or set of Areas, Contents, Zones.
+FIRST_OPERAND_MUST_FOR_ISTYPEOF=[%s]: The first operand is invalid. Specify any of them [ViewContent,SoundContent,Area,Zone].
+SIZE_OPERAND_TYPE=[SizeOperator]: The operand type is invalid. Please describe a Set(AreaSet, ViewContentSet, ZoneSet, SoundContentSet), or set of Areas, Contents, Zones.
+TARGET_MODEL_NAME_MISMATCH=[%s]: [%s] is expected.
+NAME_RESTRICTION=[%s '%s']: This name has been reserved.
+PROJECT_SIZE_CHECK=[Project]: Only one Project can be defined.
+PROJECT_NAME_CHECK=[Project]: No need to define a project name.
+FIRST_OPERAND_MUST_CONTENT_OR_CONTENTSTATE=[%s]: The first operand is invalid. Specify a ViewContent, SoundContent or ContentState.
+BODY_MUST_OBJECT=[%s]: The body statement is invalid. Specify below.\nValue\nBoolean\nArea\nContent\nSet_of_Area\nSet_of_Content\nScene\nZone\nSet_of_Zone\nSound\nSet_of_Sound\nContentState\nTimer
+OPERANDS_CANNOT_USE_PRE=[%s]: (pre) can not be used to operands.
+MUST_BE_USE_IN=[%s]: must be use in %s.
+SIZE_NEGATIVE=[Size]: The width or height is invalid. Please use a value greater than or equal to 0.
+ZONE_VISIBILITY_NEGATIVE=[Zone]: The visibility is invalid. Please use a value greater than or equal to 0.
+ZONE_ATTENUATE_NEGATIVE=[Zone]: The attenuate is invalid. Please use a value greater than or equal to 0. \ No newline at end of file
diff --git a/rba.tool.editor/src/rba/tool/editor/model/manager/GlobalIndexResourceSorter.java b/rba.tool.editor/src/rba/tool/editor/model/manager/GlobalIndexResourceSorter.java
new file mode 100644
index 0000000..559e9d5
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/model/manager/GlobalIndexResourceSorter.java
@@ -0,0 +1,36 @@
+package rba.tool.editor.model.manager;
+
+import java.util.Comparator;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+
+public class GlobalIndexResourceSorter implements Comparator<Resource> {
+
+ int sort(URI o1, URI o2) {
+ /* first compare folder */
+ int size1 = o1.segmentCount() - 1;
+ int size2 = o2.segmentCount() - 1;
+ for (int i = 0; i < size1 && i < size2; i++) {
+ int result = o1.segment(i).toLowerCase().compareTo(o2.segment(i).toLowerCase());
+ if (result != 0) {
+ return result;
+ }
+ }
+
+ if (size1 == size2) {
+ /* order of name that last segment(file). */
+ return o1.lastSegment().toLowerCase().compareTo(o2.lastSegment().toLowerCase());
+ } else if (size1 > size2) {
+ /* prioritize folder over file */
+ return -1;
+ } else {
+ return 1;
+ }
+ }
+
+ @Override
+ public int compare(Resource o1, Resource o2) {
+ return sort(o1.getURI(), o2.getURI());
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/model/manager/ResourceManager.xtend b/rba.tool.editor/src/rba/tool/editor/model/manager/ResourceManager.xtend
new file mode 100644
index 0000000..856eada
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/model/manager/ResourceManager.xtend
@@ -0,0 +1,209 @@
+package rba.tool.editor.model.manager
+
+import com.google.common.collect.Iterables
+import java.util.List
+import org.eclipse.emf.ecore.EObject
+import org.eclipse.emf.ecore.resource.Resource
+import org.eclipse.emf.ecore.resource.ResourceSet
+import org.eclipse.xtext.EcoreUtil2
+import org.eclipse.xtext.xbase.lib.Functions.Function1
+import rba.core.Allocatable
+import rba.core.Constraint
+import rba.core.Content
+import rba.core.Expression
+import rba.core.ExpressionType
+import rba.core.NamedElement
+import rba.core.Package
+import rba.core.Scene
+import rba.core.SetOfOperator
+import rba.core.State
+import rba.core.Variable
+import rba.sound.SoundContent
+import rba.sound.SoundContentSet
+import rba.sound.Zone
+import rba.sound.ZoneSet
+import rba.tool.editor.rbaEditorModel.TopLevel
+import rba.view.Area
+import rba.view.AreaSet
+import rba.view.Display
+import rba.view.PositionContainer
+import rba.view.Size
+import rba.view.ViewContent
+import rba.view.ViewContentSet
+import rba.core.Tag
+import rba.core.Stereotype
+
+class ResourceManager {
+
+ public static ResourceManager INSTANCE = new ResourceManager();
+
+ private Function1<? super Expression, Boolean> pseudoViewConstraintPredicate = [ e |
+ e.type === ExpressionType.CONTENT || e.type === ExpressionType.SET_OF_CONTENT || e.type === ExpressionType.AREA || e.type === ExpressionType.SET_OF_AREA
+ ];
+
+ private Function1<? super Expression, Boolean> pseudoSoundConstraintPredicate = [ e |
+ e.type === ExpressionType.SOUND || e.type === ExpressionType.SET_OF_SOUND || e.type === ExpressionType.ZONE || e.type === ExpressionType.SET_OF_ZONE
+ ];
+
+ private Function1<? super Expression, Boolean> generalConstraintPredicate = [ e |
+ e.type === ExpressionType.SCENE || e.type === ExpressionType.PROPERTY || e.type === ExpressionType.BOOLEAN || e.type === ExpressionType.VALUE ||
+ e.type === ExpressionType.LAMBDA
+ ];
+
+ private new() {
+ }
+
+ def private <T> List<T> filter(ResourceSet set, Class<T> filterClass) {
+ return set.resources.sort.map(r|r.allContents.toIterable.filter(filterClass)).flatten.toList;
+ }
+
+ def private List<Resource> sort(List<Resource> list) {
+ return list.sortWith(new GlobalIndexResourceSorter());
+ }
+
+ def public List<NamedElement> getNamedElement(ResourceSet resourceSet) {
+ val elements = resourceSet.resources.sort.map(r|r.allContents.toIterable.filter(NamedElement)).flatten;
+ return elements.toList;
+ }
+
+ def public List<Allocatable> getRbaAllocatables(ResourceSet resourceSet) {
+ val allAllocatables = resourceSet.resources.sort.map(r|r.allContents.toIterable.filter(Allocatable)).flatten;
+ return allAllocatables.toList;
+ }
+
+ def public List<Area> getRbaAreas(ResourceSet resourceSet) {
+ val allAreas = resourceSet.resources.sort.map(r|r.allContents.toIterable.filter(Area)).flatten;
+ return allAreas.toList;
+ }
+
+ def public List<Zone> getRbaZones(ResourceSet resourceSet) {
+ return filter(resourceSet, Zone);
+ }
+
+ def public List<AreaSet> getRbaAreaSets(ResourceSet resourceSet) {
+ val allAreaSets = resourceSet.resources.sort.map(r|r.allContents.toIterable.filter(AreaSet)).flatten;
+ return allAreaSets.toList;
+ }
+
+ def public List<ZoneSet> getRbaZoneSets(ResourceSet resourceSet) {
+ val allZoneSets = resourceSet.resources.sort.map(r|r.allContents.toIterable.filter(ZoneSet)).flatten;
+ return allZoneSets.toList;
+ }
+
+ def public List<Content> getRbaContents(ResourceSet resourceSet) {
+ val allContents = resourceSet.resources.sort.map(r|r.allContents.toIterable.filter(Content)).flatten;
+ return allContents.toList;
+ }
+
+ def public List<ViewContent> getRbaViewContents(ResourceSet resourceSet) {
+ val allContents = resourceSet.resources.sort.map(r|r.allContents.toIterable.filter(ViewContent)).flatten;
+ return allContents.toList;
+ }
+
+ def public List<ViewContentSet> getRbaViewContentSets(ResourceSet resourceSet) {
+ val allContentSets = resourceSet.resources.sort.map(r|r.allContents.toIterable.filter(ViewContentSet)).flatten;
+ return allContentSets.toList;
+ }
+
+ def public List<SoundContentSet> getRbaSoundContentSets(ResourceSet resourceSet) {
+ val allContentSets = resourceSet.resources.sort.map(r|r.allContents.toIterable.filter(SoundContentSet)).flatten;
+ return allContentSets.toList;
+ }
+
+ def public List<SoundContent> getRbaSoundContents(ResourceSet resourceSet) {
+ return filter(resourceSet, SoundContent);
+ }
+
+ def public List<State> getRbaState(ResourceSet resourceSet) {
+ val allStates = resourceSet.resources.sort.map(r|r.allContents.toIterable.filter(State)).flatten;
+ return allStates.toList;
+ }
+
+ def public List<Scene> getRbaScenes(ResourceSet resourceSet) {
+ val allScenes = resourceSet.resources.sort.map(r|r.allContents.toIterable.filter(Scene)).flatten;
+ return allScenes.toList;
+ }
+
+ def public List<Size> getRbaSizes(ResourceSet resourceSet) {
+ val allSizes = resourceSet.resources.sort.map(r|r.allContents.toIterable.filter(Size)).flatten;
+ return allSizes.toList;
+ }
+
+ def public List<Display> getRbaDisplays(ResourceSet resourceSet) {
+ val allDisplays = resourceSet.resources.sort.map(r|r.allContents.toIterable.filter(Display)).flatten;
+ return allDisplays.toList;
+ }
+
+ def public List<PositionContainer> getRbaPositionContainers(ResourceSet resourceSet) {
+ val allPositionContainers = resourceSet.resources.sort.map(r|r.allContents.toIterable.filter(PositionContainer)).flatten;
+ return allPositionContainers.toList;
+ }
+
+ def public List<Package> getRbaPackages(ResourceSet resourceSet) {
+ val allPackages = resourceSet.resources.sort.map(r|r.allContents.toIterable.filter(Package)).flatten;
+ return allPackages.toList;
+ }
+
+ def public List<Package> getRbaRootPackages(ResourceSet resourceSet) {
+ val allPackages = resourceSet.resources.sort.map(r|r.allContents.toIterable.filter(Package).filter(package|package.eContainer instanceof TopLevel)).flatten;
+ return allPackages.toList;
+ }
+
+ def public List<Constraint> getRbaConstraints(ResourceSet resourceSet) {
+ val allConstraints = resourceSet.resources.sort.map(r|r.allContents.toIterable.filter(Constraint)).flatten;
+ return allConstraints.toList;
+ }
+
+ def public List<Constraint> getRbaOnlineConstraints(ResourceSet resourceSet) {
+ val allOnlineConstraints = getRbaConstraints(resourceSet).filter(c|c.runtime === true);
+ return allOnlineConstraints.toList;
+ }
+
+ def public List<Constraint> getRbaOfflineConstraints(ResourceSet resourceSet) {
+ val allOfflineConstraints = getRbaConstraints(resourceSet).reject(c|c.runtime === true);
+ return allOfflineConstraints.toList;
+ }
+
+ def public List<Constraint> getRbaViewConstraints(ResourceSet resourceSet) {
+ val allOnlineconstraints = getRbaOnlineConstraints(resourceSet);
+ val allPseudoViewConstraints = allOnlineconstraints.filter(c|EcoreUtil2.getAllContentsOfType(c, Expression).exists(pseudoViewConstraintPredicate));
+ val allGeneralConstraints = allOnlineconstraints.filter(c|EcoreUtil2.getAllContentsOfType(c, Expression).forall(generalConstraintPredicate));
+ val allViewConstraints = Iterables.concat(allPseudoViewConstraints, allGeneralConstraints).toList;
+ val allOrderedViewConstraints = allOnlineconstraints.filter(c|allViewConstraints.contains(c));
+ return allOrderedViewConstraints.toList;
+ }
+
+ def public List<Constraint> getRbaSoundConstraints(ResourceSet resourceSet) {
+ val allOnlineconstraints = getRbaOnlineConstraints(resourceSet);
+ val allPseudoSoundConstraints = allOnlineconstraints.filter(c|EcoreUtil2.getAllContentsOfType(c, Expression).exists(pseudoSoundConstraintPredicate));
+ val allGeneralConstraints = allOnlineconstraints.filter(c|EcoreUtil2.getAllContentsOfType(c, Expression).forall(generalConstraintPredicate));
+ val allSoundConstraints = Iterables.concat(allPseudoSoundConstraints, allGeneralConstraints).toList;
+ val allOrderedSoundConstraints = allOnlineconstraints.filter(c|allSoundConstraints.contains(c));
+ return allOrderedSoundConstraints.toList;
+ }
+
+ def public List<Variable> getRbaVariables(ResourceSet resourceSet) {
+ val allVariables = resourceSet.resources.sort.map(r|r.allContents.toIterable.filter(Variable)).flatten;
+ return allVariables.toList;
+ }
+
+ def public List<SetOfOperator> getRbaSetOfOperators(ResourceSet resourceSet) {
+ val allSetOfOperators = resourceSet.resources.sort.map(r|r.allContents.toIterable.filter(SetOfOperator)).flatten;
+ return allSetOfOperators.toList;
+ }
+
+ def public List<Tag> getRbaTags(ResourceSet resourceSet) {
+ val allSetOfOperators = resourceSet.resources.sort.map(r|r.allContents.toIterable.filter(Tag)).flatten;
+ return allSetOfOperators.toList;
+ }
+
+ def public List<Stereotype> getRbaStereotypes(ResourceSet resourceSet) {
+ val allSetOfOperators = resourceSet.resources.sort.map(r|r.allContents.toIterable.filter(Stereotype)).flatten;
+ return allSetOfOperators.toList;
+ }
+
+ def public List<EObject> getRbaAllContents(ResourceSet resourceSet) {
+ val allContents = resourceSet.resources.sort.map(r|r.allContents.toIterable.filter(EObject)).flatten;
+ return allContents.toList;
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/naming/RBAModelSimpleNameProvider.xtend b/rba.tool.editor/src/rba/tool/editor/naming/RBAModelSimpleNameProvider.xtend
new file mode 100644
index 0000000..325d4d5
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/naming/RBAModelSimpleNameProvider.xtend
@@ -0,0 +1,62 @@
+package rba.tool.editor.naming
+
+import com.google.inject.Inject
+import org.eclipse.emf.ecore.EObject
+import org.eclipse.xtext.naming.IQualifiedNameConverter
+import org.eclipse.xtext.naming.IQualifiedNameProvider
+import org.eclipse.xtext.naming.QualifiedName
+import org.eclipse.xtext.util.SimpleAttributeResolver
+import rba.core.AbstractProperty
+import rba.core.ContentState
+import rba.core.Package
+import rba.core.State
+import rba.view.Size
+
+class RBAModelSimpleNameProvider extends IQualifiedNameProvider.AbstractImpl {
+
+ @Inject private IQualifiedNameConverter qualifiedNameConverter
+
+ override getFullyQualifiedName(EObject obj) {
+ val String name = SimpleAttributeResolver.NAME_RESOLVER.apply(obj);
+ if (name === null || name.length() === 0)
+ return null;
+ val QualifiedName qualifiedName = qualifiedNameConverter.toQualifiedName(name);
+
+ if (obj instanceof ContentState || obj instanceof State) {
+ val EObject parent = obj.eContainer;
+ if (parent === null) {
+ return null;
+ }
+ val QualifiedName parentQualifiedName = getFullyQualifiedName(obj.eContainer);
+ if (parentQualifiedName === null || parentQualifiedName.empty) {
+ return null;
+ }
+ return parentQualifiedName.append(qualifiedName);
+ } else if (obj instanceof Size) {
+ val EObject parent = obj.eContainer;
+ if (parent === null) {
+ return null;
+ }
+ if (!(parent instanceof Package)) {
+ val QualifiedName parentQualifiedName = getFullyQualifiedName(obj.eContainer);
+ if (parentQualifiedName === null || parentQualifiedName.empty) {
+ return null;
+ }
+ return parentQualifiedName.append(qualifiedName);
+ }
+ } else if (obj instanceof AbstractProperty) {
+ val EObject parent = obj.eContainer;
+ if (parent === null) {
+ return null;
+ }
+ val QualifiedName parentQualifiedName = getFullyQualifiedName(obj.eContainer);
+ if (parentQualifiedName === null || parentQualifiedName.empty) {
+ return null;
+ }
+ return parentQualifiedName.append(qualifiedName);
+ }
+
+ return qualifiedName;
+ }
+
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/resource/IRBAModelResourceLoader.xtend b/rba.tool.editor/src/rba/tool/editor/resource/IRBAModelResourceLoader.xtend
new file mode 100644
index 0000000..8f7812d
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/resource/IRBAModelResourceLoader.xtend
@@ -0,0 +1,11 @@
+package rba.tool.editor.resource
+
+import org.eclipse.core.resources.IProject
+import org.eclipse.emf.common.util.URI
+import org.eclipse.emf.ecore.resource.ResourceSet
+
+interface IRBAModelResourceLoader {
+
+ def void loadAndResolveResource(ResourceSet resourceSet, URI[] URIs, IProject project);
+
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/resource/RBAModelEObjectDescription.xtend b/rba.tool.editor/src/rba/tool/editor/resource/RBAModelEObjectDescription.xtend
new file mode 100644
index 0000000..d9d5d8e
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/resource/RBAModelEObjectDescription.xtend
@@ -0,0 +1,24 @@
+package rba.tool.editor.resource
+
+import java.util.Map
+import org.eclipse.emf.ecore.EObject
+import org.eclipse.xtext.naming.QualifiedName
+import org.eclipse.xtext.resource.EObjectDescription
+
+class RBAModelEObjectDescription extends EObjectDescription {
+
+ private final int[] additionalInfo;
+
+ new(QualifiedName qualifiedName, EObject element, Map<String, String> userData) {
+ this(qualifiedName, element, userData, newIntArrayOfSize(2));
+ }
+
+ new(QualifiedName qualifiedName, EObject element, Map<String, String> userData, int[] additionalInfo) {
+ super(qualifiedName, element, userData);
+ this.additionalInfo = additionalInfo ?: newIntArrayOfSize(2);
+ }
+
+ def public int[] getAdditionalInfo() {
+ return this.additionalInfo;
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/resource/RBAModelLocationInFileProvider.xtend b/rba.tool.editor/src/rba/tool/editor/resource/RBAModelLocationInFileProvider.xtend
new file mode 100644
index 0000000..6deab29
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/resource/RBAModelLocationInFileProvider.xtend
@@ -0,0 +1,17 @@
+package rba.tool.editor.resource
+
+import org.eclipse.emf.ecore.EObject
+import org.eclipse.emf.ecore.EStructuralFeature
+import org.eclipse.xtext.resource.DefaultLocationInFileProvider
+import rba.tool.editor.util.RBAModelEditorToolUtil
+
+class RBAModelLocationInFileProvider extends DefaultLocationInFileProvider {
+
+ override getFullTextRegion(EObject owner, EStructuralFeature feature, int indexInList) {
+ if (RBAModelEditorToolUtil.isSkippedSyntax(owner, feature)) {
+ return null;
+ }
+ super.getFullTextRegion(owner, feature, indexInList);
+ }
+
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/scoping/IExpressionScope.xtend b/rba.tool.editor/src/rba/tool/editor/scoping/IExpressionScope.xtend
new file mode 100644
index 0000000..12f7ca4
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/scoping/IExpressionScope.xtend
@@ -0,0 +1,22 @@
+package rba.tool.editor.scoping
+
+import org.eclipse.emf.ecore.EObject
+import org.eclipse.xtext.scoping.IScope
+
+interface IExpressionScope {
+
+ enum Anchor {
+ UNKNOWN,
+ CONSTRAINT
+ }
+
+ def IScope getFeatureScope(EObject model, IExpressionScope.Anchor anchor);
+
+ IExpressionScope NULL = new NullExpressionScope();
+
+ class NullExpressionScope implements IExpressionScope {
+ override getFeatureScope(EObject model, IExpressionScope.Anchor anchor) {
+ return IScope.NULLSCOPE;
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/scoping/RBAModelExpressionScope.xtend b/rba.tool.editor/src/rba/tool/editor/scoping/RBAModelExpressionScope.xtend
new file mode 100644
index 0000000..90bdf3b
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/scoping/RBAModelExpressionScope.xtend
@@ -0,0 +1,22 @@
+package rba.tool.editor.scoping
+
+import com.google.inject.Inject
+import com.google.inject.Singleton
+import org.eclipse.emf.ecore.EObject
+import org.eclipse.xtext.scoping.IScope
+import rba.tool.editor.scoping.internal.RBAModelMemberFieldScopes
+import rba.tool.editor.scoping.internal.RBAModelMemberOperationScopes
+
+@Singleton
+class RBAModelExpressionScope implements IExpressionScope {
+
+ @Inject private RBAModelMemberFieldScopes filedScopeCreator;
+ @Inject private RBAModelMemberOperationScopes operationScopeCreator;
+
+ override getFeatureScope(EObject model, IExpressionScope.Anchor anchor) {
+ var IScope result = filedScopeCreator.createFeatureScope(model);
+ result = operationScopeCreator.createFeatureScope(model, anchor, result);
+ return result;
+ }
+
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/scoping/RBAModelImportedNamespaceAwareLocalScopeProvider.xtend b/rba.tool.editor/src/rba/tool/editor/scoping/RBAModelImportedNamespaceAwareLocalScopeProvider.xtend
new file mode 100644
index 0000000..3dad349
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/scoping/RBAModelImportedNamespaceAwareLocalScopeProvider.xtend
@@ -0,0 +1,42 @@
+package rba.tool.editor.scoping
+
+import java.util.Iterator
+import org.eclipse.emf.ecore.EObject
+import org.eclipse.emf.ecore.EReference
+import org.eclipse.emf.ecore.resource.Resource
+import org.eclipse.emf.ecore.util.EcoreUtil
+import org.eclipse.xtext.resource.IEObjectDescription
+import org.eclipse.xtext.scoping.Scopes
+import org.eclipse.xtext.scoping.impl.ImportedNamespaceAwareLocalScopeProvider
+import org.eclipse.xtext.scoping.impl.MultimapBasedSelectable
+import org.eclipse.xtext.xbase.lib.Functions.Function1
+import rba.core.RBACorePackage
+import rba.core.Variable
+
+class RBAModelImportedNamespaceAwareLocalScopeProvider extends ImportedNamespaceAwareLocalScopeProvider {
+
+ private Function1<? super IEObjectDescription, Boolean> variableFilter = [ description |
+ description.EClass !== RBACorePackage.Literals.VARIABLE
+ ];
+
+ override protected getResourceScope(Resource res, EReference reference) {
+ val context = res.getContents().get(0);
+ var globalScope = getGlobalScope(res, reference, variableFilter);
+ val normalizers = getImplicitImports(isIgnoreCase(reference));
+ if(!normalizers.isEmpty()) {
+ globalScope = createImportScope(globalScope, normalizers, null, reference.getEReferenceType(), isIgnoreCase(reference));
+ }
+ return getResourceScope(globalScope, context, reference);
+ }
+
+ override protected internalGetAllDescriptions(Resource resource) {
+ val allContents = new Iterable<EObject>() {
+ override Iterator<EObject> iterator() {
+ return EcoreUtil.getAllContents(resource, false).filter(c|!(c instanceof Variable));
+ }
+ };
+ val allDescriptions = Scopes.scopedElementsFor(allContents, qualifiedNameProvider);
+ return new MultimapBasedSelectable(allDescriptions);
+ }
+
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/scoping/RBAModelScopeProvider.xtend b/rba.tool.editor/src/rba/tool/editor/scoping/RBAModelScopeProvider.xtend
new file mode 100644
index 0000000..8fe190f
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/scoping/RBAModelScopeProvider.xtend
@@ -0,0 +1,85 @@
+/*
+ * generated by Xtext 2.12.0
+ */
+package rba.tool.editor.scoping
+
+import java.util.ArrayList
+import org.eclipse.emf.ecore.EObject
+import org.eclipse.emf.ecore.EReference
+import org.eclipse.xtext.EcoreUtil2
+import org.eclipse.xtext.scoping.IScope
+import org.eclipse.xtext.scoping.Scopes
+import rba.core.AbstractProperty
+import rba.core.ComplexExpression
+import rba.core.Content
+import rba.core.ContentState
+import rba.core.Expression
+import rba.core.LambdaExpression
+import rba.core.ObjectReference
+import rba.core.RBACorePackage
+import rba.core.Scene
+import rba.core.State
+import rba.tool.editor.rbaEditorModel.MemberFeatureReference
+
+/**
+ * This class contains custom scoping description.
+ *
+ * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#scoping
+ * on how and when to use it.
+ */
+class RBAModelScopeProvider extends AbstractRBAModelScopeProvider {
+
+ override getScope(EObject context, EReference reference) {
+ val scope = super.getScope(context, reference);
+
+ if(reference == RBACorePackage.Literals.OBJECT_REFERENCE__REF_OBJECT) {
+ if(context instanceof MemberFeatureReference) {
+ var Expression expression = (context as MemberFeatureReference).operand.get(0);
+ if(expression !== null) {
+ if(!(expression instanceof ObjectReference)) {
+ return IScope.NULLSCOPE;
+ }
+ val rootElement = (expression as ObjectReference).refObject;
+ if(rootElement instanceof Scene) {
+ val candidates = EcoreUtil2.getAllContentsOfType(rootElement, AbstractProperty);
+ return Scopes.scopeFor(candidates);
+ } else if(rootElement instanceof Content) {
+ val candidates = #[ContentState].map(clazz|EcoreUtil2.getAllContentsOfType(rootElement, clazz).filter(c|c.eContainer === rootElement)).flatten;
+ return Scopes.scopeFor(candidates);
+ } else if(rootElement instanceof State) {
+ val candidates = EcoreUtil2.getAllContentsOfType(rootElement, State).filter(c|c.eContainer === rootElement);
+ return Scopes.scopeFor(candidates);
+ }
+ }
+ } else if(context instanceof ObjectReference) {
+ val candidates = EcoreUtil2.getAllContainers(context).filter(Expression).map [ container |
+ val list = new ArrayList<EObject>();
+ if(container instanceof LambdaExpression) {
+ val lambda = container as LambdaExpression;
+ if(lambda.x !== null)
+ list.add(lambda.x);
+ if(lambda.letStatements !== null && lambda.letStatements.size > 0)
+ list.addAll(lambda.letStatements.map(l|l.variable));
+ if(lambda.bodyText !== null && lambda.bodyText.letStatements !== null && lambda.bodyText.letStatements.size > 0)
+ list.addAll(lambda.bodyText.letStatements.map(l|l.variable));
+ } else if(container instanceof ComplexExpression) {
+ val complex = container as ComplexExpression;
+ if(complex.letStatements !== null && complex.letStatements.size > 0)
+ list.addAll(complex.letStatements.map(l|l.variable));
+ } else {
+ if(container.letStatements !== null && container.letStatements.size > 0)
+ list.addAll(container.letStatements.map(l|l.variable));
+ }
+ return list;
+ ].flatten
+
+ if(candidates.size > 0) {
+ return Scopes.scopeFor(candidates, scope);
+ }
+ }
+ }
+
+ return scope;
+ }
+
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/scoping/internal/IMemberFeatureScopes.xtend b/rba.tool.editor/src/rba/tool/editor/scoping/internal/IMemberFeatureScopes.xtend
new file mode 100644
index 0000000..5d6bba7
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/scoping/internal/IMemberFeatureScopes.xtend
@@ -0,0 +1,12 @@
+package rba.tool.editor.scoping.internal
+
+import org.eclipse.emf.ecore.EObject
+import org.eclipse.xtext.scoping.IScope
+import rba.tool.editor.scoping.IExpressionScope
+
+interface IMemberFeatureScopes {
+
+ def IScope createFeatureScope(EObject model);
+
+ def IScope createFeatureScope(EObject model, IExpressionScope.Anchor anchor, IScope outer);
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/scoping/internal/RBAModelMemberFieldScopes.xtend b/rba.tool.editor/src/rba/tool/editor/scoping/internal/RBAModelMemberFieldScopes.xtend
new file mode 100644
index 0000000..a2c9b6f
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/scoping/internal/RBAModelMemberFieldScopes.xtend
@@ -0,0 +1,31 @@
+package rba.tool.editor.scoping.internal
+
+import org.eclipse.emf.ecore.EObject
+import org.eclipse.xtext.EcoreUtil2
+import org.eclipse.xtext.scoping.IScope
+import org.eclipse.xtext.scoping.Scopes
+import rba.core.AbstractProperty
+import rba.core.Content
+import rba.core.ContentState
+import rba.core.Scene
+import rba.core.State
+import rba.tool.editor.scoping.IExpressionScope
+
+class RBAModelMemberFieldScopes implements IMemberFeatureScopes {
+
+ override createFeatureScope(EObject model) {
+ createFeatureScope(model, IExpressionScope.Anchor.UNKNOWN, IScope.NULLSCOPE);
+ }
+
+ override createFeatureScope(EObject model, IExpressionScope.Anchor anchor, IScope outer) {
+ if (model instanceof Scene) {
+ return Scopes.scopeFor(EcoreUtil2.getAllContentsOfType(model, AbstractProperty), outer);
+ } else if (model instanceof Content) {
+ return Scopes.scopeFor(EcoreUtil2.getAllContentsOfType(model, ContentState), outer);
+ } else if (model instanceof State) {
+ return Scopes.scopeFor(EcoreUtil2.getAllContentsOfType(model, State), outer);
+ } else {
+ return outer;
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/scoping/internal/RBAModelMemberOperationRegistry.xtend b/rba.tool.editor/src/rba/tool/editor/scoping/internal/RBAModelMemberOperationRegistry.xtend
new file mode 100644
index 0000000..b641362
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/scoping/internal/RBAModelMemberOperationRegistry.xtend
@@ -0,0 +1,68 @@
+package rba.tool.editor.scoping.internal
+
+import com.google.inject.Inject
+import com.google.inject.Singleton
+import java.util.Collections
+import java.util.Map
+import java.util.Set
+import java.util.regex.Matcher
+import java.util.regex.Pattern
+import org.eclipse.emf.ecore.EObject
+import org.eclipse.xtext.GrammarUtil
+import org.eclipse.xtext.IGrammarAccess
+import org.eclipse.xtext.Keyword
+import org.eclipse.xtext.generator.parser.antlr.FirstSetComputer
+import org.eclipse.xtext.naming.QualifiedName
+import org.eclipse.xtext.resource.IEObjectDescription
+import rba.core.ExpressionType
+import rba.core.Operator
+import rba.core.RuleObject
+import rba.tool.editor.resource.RBAModelEObjectDescription
+import rba.tool.editor.scoping.IExpressionScope
+
+@Singleton
+class RBAModelMemberOperationRegistry {
+
+ private static Map<String, String> EMPTY_USERDATA = Collections.<String, String>emptyMap();
+ private static Pattern pattern = Pattern.compile("^ConfigurationParserRule_([A-Za-z]+)OperatorFor([A-Za-z]+)$");
+ private static String DESCRIPTION_KEY = "%s_%s";
+ private static String QUALIFIED_NAME = "%s()";
+
+ private final Map<String, Set<IEObjectDescription>> operations = newLinkedHashMap();
+
+ @Inject
+ public new(IGrammarAccess grammarAccess) {
+ registerOperations(grammarAccess);
+ }
+
+ def protected void registerOperations(IGrammarAccess grammarAccess) {
+ val multipleOperandParserRule = GrammarUtil.findRuleForName(grammarAccess.getGrammar(), "ConfigurationParserRule_OperatorWithMultipleOperand");
+ val multipleOperandConfiguration = FirstSetComputer.getFirstSet(multipleOperandParserRule.alternatives).filter(Keyword).toList;
+ val allConfigurations = GrammarUtil.allRules(grammarAccess.getGrammar()).filter(r|pattern.matcher(r.name).find);
+ for (configuration : allConfigurations) {
+ val Matcher matcher = pattern.matcher(configuration.name);
+ if (matcher.find) {
+ val descriptionKey = String.format(DESCRIPTION_KEY, matcher.group(1), matcher.group(2)).toUpperCase;
+ val descriptionEntries = newHashSet();
+ val keywords = FirstSetComputer.getFirstSet(configuration.alternatives).filter(Keyword);
+ for (keyword : keywords) {
+ descriptionEntries.add(
+ new RBAModelEObjectDescription(QualifiedName.create(String.format(QUALIFIED_NAME, keyword.value)), null, EMPTY_USERDATA,
+ #[if (multipleOperandConfiguration.contains(keyword)) -1 else 0, -50]));
+ }
+ operations.put(descriptionKey, descriptionEntries);
+ }
+ }
+ }
+
+ def public Set<IEObjectDescription> getOperations(EObject model, IExpressionScope.Anchor anchor) {
+ var ExpressionType expressionType = ExpressionType.BOOLEAN;
+ if (model instanceof RuleObject) {
+ expressionType = (model as RuleObject).expressionType;
+ } else if (model instanceof Operator) {
+ expressionType = (model as Operator).underlyingType;
+ }
+ return operations.get(String.format(DESCRIPTION_KEY, expressionType.getName(), anchor.name));
+ }
+
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/scoping/internal/RBAModelMemberOperationScopes.xtend b/rba.tool.editor/src/rba/tool/editor/scoping/internal/RBAModelMemberOperationScopes.xtend
new file mode 100644
index 0000000..da833ec
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/scoping/internal/RBAModelMemberOperationScopes.xtend
@@ -0,0 +1,27 @@
+package rba.tool.editor.scoping.internal
+
+import com.google.inject.Inject
+import org.eclipse.emf.ecore.EObject
+import org.eclipse.xtext.scoping.IScope
+import org.eclipse.xtext.scoping.impl.SimpleScope
+import rba.tool.editor.scoping.IExpressionScope
+
+class RBAModelMemberOperationScopes implements IMemberFeatureScopes {
+
+ private RBAModelMemberOperationRegistry operationRegistry;
+
+ @Inject
+ new(RBAModelMemberOperationRegistry operationRegistry) {
+ this.operationRegistry = operationRegistry;
+ }
+
+ override createFeatureScope(EObject model) {
+ return createFeatureScope(model, IExpressionScope.Anchor.UNKNOWN, IScope.NULLSCOPE);
+ }
+
+ override createFeatureScope(EObject model, IExpressionScope.Anchor anchor, IScope outer) {
+ val descriptions = operationRegistry.getOperations(model, anchor);
+ return new SimpleScope(outer, descriptions ?: newHashSet());
+ }
+
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/util/ExtensionModuleManager.java b/rba.tool.editor/src/rba/tool/editor/util/ExtensionModuleManager.java
new file mode 100644
index 0000000..966acf0
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/util/ExtensionModuleManager.java
@@ -0,0 +1,63 @@
+package rba.tool.editor.util;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtension;
+import org.eclipse.core.runtime.IExtensionPoint;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.Platform;
+
+import com.google.inject.Module;
+
+public class ExtensionModuleManager {
+ public static final ExtensionModuleManager INSTANCE = new ExtensionModuleManager();
+
+ private static final String EXTENSION_POINT = "rba.tool.editor.rbaToolEditorExtensionModule"; //$NON-NLS-1$
+
+ private static final String EXTENSION_POINT_ELEMENT = "extensionModule"; //$NON-NLS-1$
+
+ private static final String EXTENSION_POINT_ELEMENT_ATTRIBUTE = "class"; //$NON-NLS-1$
+
+ private List<Module> constraintProviders;
+
+ private ExtensionModuleManager() {
+ }
+
+ public List<Module> getExtensionModules() {
+ if (constraintProviders == null) {
+ constraintProviders = new ArrayList<Module>();
+ init();
+ }
+ return constraintProviders;
+ }
+
+ private void init() {
+ IExtensionRegistry registry = Platform.getExtensionRegistry();
+ IExtensionPoint extensionPoint = registry.getExtensionPoint(EXTENSION_POINT); // $NON-NLS-1$
+ IExtension[] extensions = extensionPoint.getExtensions();
+
+ List<Module> providerList = new ArrayList<Module>();
+ for (int i = 0; i < extensions.length; i++) {
+ IConfigurationElement[] elements = extensions[i].getConfigurationElements();
+ for (int j = 0; j < elements.length; j++) {
+ IConfigurationElement element = elements[j];
+ String elementName = element.getName();
+ if (elementName.equalsIgnoreCase(EXTENSION_POINT_ELEMENT)) { // $NON-NLS-1$
+ try {
+ Object provider = element.createExecutableExtension(EXTENSION_POINT_ELEMENT_ATTRIBUTE); // $NON-NLS-1$
+ if (provider instanceof Module) {
+ Module factory = (Module) provider;
+ providerList.add(factory);
+ }
+ } catch (CoreException e) {
+ // do nothing
+ }
+ }
+ }
+ }
+ constraintProviders.addAll(providerList);
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/util/RBAModelEditorNameUtil.xtend b/rba.tool.editor/src/rba/tool/editor/util/RBAModelEditorNameUtil.xtend
new file mode 100644
index 0000000..e7b7321
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/util/RBAModelEditorNameUtil.xtend
@@ -0,0 +1,11 @@
+package rba.tool.editor.util
+
+class RBAModelEditorNameUtil {
+ public static val MODEL_FOLDER_NAME = "model"
+ public static val BUILD_FOLDER_NAME = ".applied"
+ public static val BUILD_TEMP_FOLDER_NAME = "temp"
+ public static val TEMPLATE_FOLDER_NAME = "extension"
+
+ public static val MODEL_FILE_EXT = "rba"
+ public static val TEMPLATE_FILE_EXT = "ext"
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/util/RBAModelEditorToolUtil.xtend b/rba.tool.editor/src/rba/tool/editor/util/RBAModelEditorToolUtil.xtend
new file mode 100644
index 0000000..1055423
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/util/RBAModelEditorToolUtil.xtend
@@ -0,0 +1,40 @@
+package rba.tool.editor.util
+
+import java.util.Collection
+import org.eclipse.emf.ecore.EObject
+import org.eclipse.emf.ecore.EStructuralFeature
+import org.eclipse.emf.ecore.EValidator
+import rba.core.AbstractAllocatable
+import rba.core.AbstractContent
+import rba.core.Expression
+import rba.core.RBACorePackage
+
+class RBAModelEditorToolUtil {
+
+ def public static String getExpressionText(Expression expression) {
+ return if (expression !== null) expression.getExpressionText() else "[Invalid_Expression]";
+ }
+
+ def public static boolean isSkippedSyntax(EObject obj, EStructuralFeature feature) {
+ // AbstractAllocatable -> contents
+ if (obj instanceof AbstractAllocatable && feature == RBACorePackage.Literals.ABSTRACT_ALLOCATABLE__CONTENTS) {
+ return true;
+ }
+ // AbstractAllocatable -> group
+ if (obj instanceof AbstractAllocatable && feature == RBACorePackage.Literals.ABSTRACT_ALLOCATABLE__ALLOCATABLE_GROUP) {
+ return true;
+ }
+ // AbstractContent -> group
+ if (obj instanceof AbstractContent && feature == RBACorePackage.Literals.ABSTRACT_CONTENT__CONTENT_GROUP) {
+ return true;
+ }
+ return false;
+ }
+
+ def public static boolean isValidated(Object context, EValidator validator) {
+ if (context instanceof Collection<?>) {
+ return (context as Collection<?>).contains(validator);
+ }
+ return false;
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/CircularContainmentValidationHelper.xtend b/rba.tool.editor/src/rba/tool/editor/validation/CircularContainmentValidationHelper.xtend
new file mode 100644
index 0000000..ba4205a
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/CircularContainmentValidationHelper.xtend
@@ -0,0 +1,294 @@
+package rba.tool.editor.validation
+
+import com.google.common.collect.Maps
+import com.google.common.collect.Sets
+import com.google.inject.Inject
+import java.util.LinkedHashSet
+import java.util.Map
+import java.util.Set
+import org.eclipse.emf.ecore.EClass
+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.xtext.EcoreUtil2
+import org.eclipse.xtext.naming.QualifiedName
+import org.eclipse.xtext.resource.IEObjectDescription
+import org.eclipse.xtext.resource.IResourceServiceProvider
+import org.eclipse.xtext.resource.impl.EObjectDescriptionLookUp
+import org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider
+import org.eclipse.xtext.service.OperationCanceledManager
+import org.eclipse.xtext.util.CancelIndicator
+import org.eclipse.xtext.validation.ValidationMessageAcceptor
+import org.eclipse.xtext.xbase.lib.Functions.Function1
+import rba.core.AbstractAllocatable
+import rba.core.AbstractContent
+import rba.core.AllocatableSet
+import rba.core.ContentSet
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.model.manager.ResourceManager
+
+class CircularContainmentValidationHelper {
+
+ private final static Function1<? super IEObjectDescription, Boolean> containmentPredicate = [ d |
+ d.EObjectOrProxy instanceof AbstractAllocatable || d.EObjectOrProxy instanceof AbstractContent
+ ];
+
+ private final static Function1<? super EObject, Boolean> containerPredicate = [ eObject |
+ eObject instanceof AllocatableSet || eObject instanceof ContentSet
+ ];
+
+ @Inject
+ private IResourceServiceProvider.Registry resourceServiceProviderRegistry = IResourceServiceProvider.Registry.INSTANCE;
+
+ @Inject
+ private ResourceDescriptionsProvider resourceDescriptionsProvider;
+
+ @Inject
+ private OperationCanceledManager operationCanceledManager = new OperationCanceledManager();
+
+ private String CIRCULAR_CONTAINMENT_DETECTE = Messages.CIRCULAR_CONTAINMENT_DETECTE;
+
+ def public void checkCircularContainment(Resource resource, CancelIndicator cancelIndicator, ValidationMessageAcceptor acceptor) {
+ val resourceServiceProvider = resourceServiceProviderRegistry.getResourceServiceProvider(resource.getURI());
+ if (resourceServiceProvider === null) {
+ return;
+ }
+
+ val clusterToNames = Maps.newHashMap();
+ val resourceDescriptions = resourceDescriptionsProvider.getResourceDescriptions(resource.resourceSet);
+ var descriptionLookUp = new EObjectDescriptionLookUp(resourceDescriptions.exportedObjects.filter(containmentPredicate).toList);
+
+ val descriptions = getAllObjectDescriptions(resource, descriptionLookUp);
+ val currentIter = descriptions.iterator();
+ if (!currentIter.hasNext()) {
+ return;
+ }
+
+ initDescriptionForCircularContainment(resource.resourceSet, descriptionLookUp, clusterToNames, acceptor);
+
+ while (currentIter.hasNext()) {
+ val objectDescription = currentIter.next();
+ checkDescriptionForCircularContainment(resource.resourceSet, descriptionLookUp, objectDescription, clusterToNames, acceptor);
+ operationCanceledManager.checkCanceled(cancelIndicator);
+ }
+ }
+
+ def private Iterable<IEObjectDescription> getAllObjectDescriptions(Resource resource, EObjectDescriptionLookUp descriptionLookUp) {
+ val allObjectDescriptions = resource.allContents.toIterable.filter(containerPredicate).map(o|findEObjectDescription(o, descriptionLookUp));
+ return allObjectDescriptions;
+ }
+
+ def protected void initDescriptionForCircularContainment(ResourceSet resourceSet, EObjectDescriptionLookUp descriptionLookUp,
+ Map<EClass, Map<QualifiedName, Set<IEObjectDescription>>> clusterTypeToName, ValidationMessageAcceptor acceptor) {
+ initDescriptionForAllocatableSet(resourceSet, descriptionLookUp, clusterTypeToName, acceptor);
+ initDescriptionForContentSet(resourceSet, descriptionLookUp, clusterTypeToName, acceptor);
+ }
+
+ def protected void initDescriptionForAllocatableSet(ResourceSet resourceSet, EObjectDescriptionLookUp descriptionLookUp,
+ Map<EClass, Map<QualifiedName, Set<IEObjectDescription>>> clusterTypeToName, ValidationMessageAcceptor acceptor) {
+ val allocatableSetDescriptionsMap = Maps.newHashMap();
+ clusterTypeToName.put(RBACorePackage.Literals.ALLOCATABLE_SET, allocatableSetDescriptionsMap);
+
+ ResourceManager.INSTANCE.getRbaAreaSets(resourceSet).forEach [ areaSet |
+ if (!areaSet.target.isEmpty) {
+ val IEObjectDescription eObjectDescription = findEObjectDescription(areaSet, descriptionLookUp);
+ if (eObjectDescription !== null) {
+ val targets = Sets.newLinkedHashSet();
+ var IEObjectDescription targetDescription;
+ for (target : areaSet.target) {
+ targetDescription = findEObjectDescription(target, descriptionLookUp);
+ if (targetDescription !== null) {
+ targets.add(targetDescription);
+ }
+ }
+ allocatableSetDescriptionsMap.put(eObjectDescription.qualifiedName, targets);
+ }
+ }
+ ];
+ ResourceManager.INSTANCE.getRbaZoneSets(resourceSet).forEach [ zoneSet |
+ if (!zoneSet.target.isEmpty) {
+ val IEObjectDescription eObjectDescription = findEObjectDescription(zoneSet, descriptionLookUp);
+ if (eObjectDescription !== null) {
+ val targets = Sets.newLinkedHashSet();
+ var IEObjectDescription targetDescription;
+ for (target : zoneSet.target) {
+ targetDescription = findEObjectDescription(target, descriptionLookUp);
+ if (targetDescription !== null) {
+ targets.add(targetDescription);
+ }
+ }
+ allocatableSetDescriptionsMap.put(eObjectDescription.qualifiedName, targets);
+ }
+ }
+ ];
+ }
+
+ def protected void initDescriptionForContentSet(ResourceSet resourceSet, EObjectDescriptionLookUp descriptionLookUp,
+ Map<EClass, Map<QualifiedName, Set<IEObjectDescription>>> clusterTypeToName, ValidationMessageAcceptor acceptor) {
+ val allocatableSetDescriptionsMap = Maps.newHashMap();
+ clusterTypeToName.put(RBACorePackage.Literals.CONTENT_SET, allocatableSetDescriptionsMap);
+
+ ResourceManager.INSTANCE.getRbaViewContentSets(resourceSet).forEach [ viewContentSet |
+ if (!viewContentSet.target.isEmpty) {
+ val IEObjectDescription eObjectDescription = findEObjectDescription(viewContentSet, descriptionLookUp);
+ if (eObjectDescription !== null) {
+ val targets = Sets.newLinkedHashSet();
+ var IEObjectDescription targetDescription;
+ for (target : viewContentSet.target) {
+ targetDescription = findEObjectDescription(target, descriptionLookUp);
+ if (targetDescription !== null) {
+ targets.add(targetDescription);
+ }
+ }
+ allocatableSetDescriptionsMap.put(eObjectDescription.qualifiedName, targets);
+ }
+ }
+ ];
+ ResourceManager.INSTANCE.getRbaSoundContentSets(resourceSet).forEach [ soundContentSet |
+ if (!soundContentSet.target.isEmpty) {
+ val IEObjectDescription eObjectDescription = findEObjectDescription(soundContentSet, descriptionLookUp);
+ if (eObjectDescription !== null) {
+ val targets = Sets.newLinkedHashSet();
+ var IEObjectDescription targetDescription;
+ for (target : soundContentSet.target) {
+ targetDescription = findEObjectDescription(target, descriptionLookUp);
+ if (targetDescription !== null) {
+ targets.add(targetDescription);
+ }
+ }
+ allocatableSetDescriptionsMap.put(eObjectDescription.qualifiedName, targets);
+ }
+ }
+ ];
+ }
+
+ def private IEObjectDescription findEObjectDescription(EObject eObject, EObjectDescriptionLookUp descriptionLookUp) {
+ val candidates = descriptionLookUp.getExportedObjectsByObject(eObject);
+ if (!candidates.isEmpty) {
+ return candidates.get(0);
+ }
+ return null;
+ }
+
+ def protected void checkDescriptionForCircularContainment(ResourceSet resourceSet, EObjectDescriptionLookUp descriptionLookUp, IEObjectDescription description,
+ Map<EClass, Map<QualifiedName, Set<IEObjectDescription>>> clusterTypeToName, ValidationMessageAcceptor acceptor) {
+ val object = description.getEObjectOrProxy();
+ val eClass = object.eClass();
+ val qualifiedName = description.getName();
+ val clusterType = getAssociatedClusterType(eClass);
+ if (clusterType === null) {
+ return;
+ }
+
+ val nameToDescription = clusterTypeToName.get(clusterType);
+ if (nameToDescription.containsKey(qualifiedName)) {
+ val targetsDescription = nameToDescription.get(qualifiedName);
+
+ val filtedTargets = targetsDescription.filter(d|!description.qualifiedName.equals(d.qualifiedName) && nameToDescription.containsKey(d.qualifiedName));
+ for (target : filtedTargets) {
+ val index = filtedTargets.toList.indexOf(target);
+ val cycleConsistsElement = Sets.newLinkedHashSet(#[target.qualifiedName.toString]);
+ checkCircularContainment(resourceSet, description, target, nameToDescription, cycleConsistsElement, acceptor, index);
+ }
+ }
+ }
+
+ def protected void checkCircularContainment(ResourceSet resourceSet, IEObjectDescription rootDescription, IEObjectDescription description,
+ Map<QualifiedName, Set<IEObjectDescription>> nameToDescription, LinkedHashSet<String> cycleConsistsElement, ValidationMessageAcceptor acceptor, int index) {
+ val targetsDescription = nameToDescription.get(description.qualifiedName);
+ val filtedTargets = targetsDescription.filter(d|!description.qualifiedName.equals(d.qualifiedName) && nameToDescription.containsKey(d.qualifiedName));
+ if (filtedTargets === null) {
+ return;
+ }
+
+ for (target : filtedTargets.filter(d|d.qualifiedName.equals(rootDescription.qualifiedName))) {
+ createCircularContainmentError(resourceSet, rootDescription, index, acceptor, appendCycleConsists(cycleConsistsElement, target.qualifiedName.toString()));
+ }
+
+ for (target : filtedTargets.filter(d|!d.qualifiedName.equals(rootDescription.qualifiedName))) {
+ val subCycleConsistsElement = Sets.newLinkedHashSet(cycleConsistsElement);
+ if (!subCycleConsistsElement.add(target.qualifiedName.toString())) {
+ return;
+ }
+
+ checkCircularContainment(resourceSet, rootDescription, target, nameToDescription, subCycleConsistsElement, acceptor, index);
+ }
+ }
+
+ def protected void createCircularContainmentError(ResourceSet resourceSet, IEObjectDescription description, int index, ValidationMessageAcceptor acceptor,
+ LinkedHashSet<String> cycleConsists) {
+ var object = description.getEObjectOrProxy();
+ if (object.eIsProxy) {
+ object = EcoreUtil2.resolve(object, resourceSet);
+ if (object.eIsProxy) {
+ return;
+ }
+ }
+
+ val feature = getContainmentFeature(object);
+ if (feature !== null) {
+ acceptor.acceptError(getCircularContainmentErrorMessage(description, cycleConsists), object, feature, index, getErrorCode());
+ }
+ }
+
+ def private LinkedHashSet<String> appendCycleConsists(LinkedHashSet<String> cycleConsists, String... args) {
+ val LinkedHashSet<String> newCycleConsists = Sets.newLinkedHashSet(cycleConsists);
+ if (args !== null && args.length > 0) {
+ newCycleConsists.addAll(args);
+ }
+ return newCycleConsists;
+ }
+
+ def String getCircularContainmentErrorMessage(IEObjectDescription description, LinkedHashSet<String> cycleConsists) {
+ val qualifiedName = description.getQualifiedName().toString();
+ val shortName = String.valueOf(if (qualifiedName !== null && qualifiedName !== "") qualifiedName else "<unnamed>");
+ return String.format(CIRCULAR_CONTAINMENT_DETECTE, shortName, cycleConsists.toString());
+ }
+
+ def protected boolean isContainerInformationHelpful(IEObjectDescription description, EObject container, String containerTypeLabel, EStructuralFeature containerNameFeature) {
+ return containerTypeLabel !== null && containerNameFeature !== null;
+ }
+
+ def protected boolean isContainerInformationHelpful(IEObjectDescription description, String shortName) {
+ return true;
+ }
+
+ def protected EObject getContainerForErrorMessage(EObject object) {
+ return object.eContainer();
+ }
+
+ def protected String getTypeLabel(EClass eClass) {
+ return eClass.getName();
+ }
+
+ def protected EStructuralFeature getContainmentFeature(EObject object) {
+ switch (object) {
+ AllocatableSet:
+ return RBACorePackage.Literals.ALLOCATABLE_SET__TARGET
+ ContentSet:
+ return RBACorePackage.Literals.CONTENT_SET__TARGET
+ default:
+ return null
+ }
+ }
+
+ def protected EClass getAssociatedClusterType(EClass eClass) {
+ val superTypes = eClass.getESuperTypes();
+ if (superTypes.isEmpty()) {
+ return null;
+ }
+ if (superTypes.contains(RBACorePackage.Literals.ALLOCATABLE_SET)) {
+ return RBACorePackage.Literals.ALLOCATABLE_SET;
+ }
+ if (superTypes.contains(RBACorePackage.Literals.CONTENT_SET)) {
+ return RBACorePackage.Literals.CONTENT_SET;
+ }
+ return null;
+ }
+
+ def protected String getErrorCode() {
+ return null;
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/ContentAllocatableListValidationHelper.xtend b/rba.tool.editor/src/rba/tool/editor/validation/ContentAllocatableListValidationHelper.xtend
new file mode 100644
index 0000000..d9f1911
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/ContentAllocatableListValidationHelper.xtend
@@ -0,0 +1,105 @@
+package rba.tool.editor.validation
+
+import com.google.inject.Inject
+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.impl.ResourceSetImpl
+import org.eclipse.xtext.resource.IResourceServiceProvider
+import org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider
+import org.eclipse.xtext.service.OperationCanceledManager
+import org.eclipse.xtext.util.CancelIndicator
+import org.eclipse.xtext.validation.ValidationMessageAcceptor
+import rba.core.AbstractContent
+import rba.core.RBACorePackage
+import rba.sound.SoundContent
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.resource.IRBAModelResourceLoader
+import rba.view.ViewContent
+
+class ContentAllocatableListValidationHelper {
+
+ @Inject
+ private IResourceServiceProvider.Registry resourceServiceProviderRegistry = IResourceServiceProvider.Registry.INSTANCE;
+
+ @Inject
+ private ResourceDescriptionsProvider resourceDescriptionsProvider;
+
+ @Inject
+ private IRBAModelResourceLoader resourceLoader;
+
+ @Inject
+ private ResourceSetImpl resourceSet;
+
+ @Inject
+ private OperationCanceledManager operationCanceledManager = new OperationCanceledManager();
+
+ private String CONTENT_ALLOCATABLE_SIZE = Messages.CONTENT_ALLOCATABLE_SIZE;
+
+ private String SOUND_ALLOCATABLE_SIZE = Messages.SOUND_ALLOCATABLE_SIZE;
+
+ def public void checkCrossReferenceEmpty(Resource resource, CancelIndicator cancelIndicator, ValidationMessageAcceptor acceptor) {
+ val resourceServiceProvider = resourceServiceProviderRegistry.getResourceServiceProvider(resource.getURI());
+ if (resourceServiceProvider === null) {
+ return;
+ }
+
+ demandGetResources(resource.getURI());
+ if (resourceSet === null) {
+ return;
+ }
+
+ val loadedResource = resourceSet.getResource(resource.getURI(), false);
+ if (loadedResource !== null) {
+ checkForAbstractContent_getAllocatableList(loadedResource, cancelIndicator, acceptor);
+ }
+ }
+
+ def private void demandGetResources(URI uri) {
+ if (!resourceSet.resources.isEmpty()) {
+ resourceSet.resources.clear();
+ }
+
+ val projectName = if (uri.segmentCount > 2) URI.decode(uri.segment(1)) else "";
+ val resourceDescriptions = resourceDescriptionsProvider.createResourceDescriptions();
+ val URIs = resourceDescriptions.allResourceDescriptions.map(d|d.URI).filter(u|projectName.equals(if (u.segmentCount > 2) URI.decode(u.segment(1)) else null));
+ resourceLoader.loadAndResolveResource(resourceSet, URIs, null);
+ }
+
+ def protected void checkForAbstractContent_getAllocatableList(Resource resource, CancelIndicator cancelIndicator, ValidationMessageAcceptor acceptor) {
+ resource.allContents.toIterable.filter(ViewContent).forEach [ viewContent |
+ if (viewContent.allocatableList.isEmpty) {
+ val feature = getContainmentFeature(viewContent);
+ if (feature !== null) {
+ acceptor.acceptError(String.format(CONTENT_ALLOCATABLE_SIZE, viewContent.name), viewContent, feature, ValidationMessageAcceptor.INSIGNIFICANT_INDEX,
+ getErrorCode());
+ }
+ }
+ operationCanceledManager.checkCanceled(cancelIndicator);
+ ];
+ resource.allContents.toIterable.filter(SoundContent).forEach [ soundContent |
+ if (soundContent.allocatableList.isEmpty) {
+ val feature = getContainmentFeature(soundContent);
+ if (feature !== null) {
+ acceptor.acceptError(String.format(SOUND_ALLOCATABLE_SIZE, soundContent.name), soundContent, feature, ValidationMessageAcceptor.INSIGNIFICANT_INDEX,
+ getErrorCode());
+ }
+ }
+ operationCanceledManager.checkCanceled(cancelIndicator);
+ ];
+ }
+
+ def protected EStructuralFeature getContainmentFeature(EObject object) {
+ switch (object) {
+ AbstractContent:
+ return RBACorePackage.Literals.ABSTRACT_CONTENT__ALLOCATABLE
+ default:
+ return null
+ }
+ }
+
+ def protected String getErrorCode() {
+ return null;
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/RBADiagnostician.java b/rba.tool.editor/src/rba/tool/editor/validation/RBADiagnostician.java
new file mode 100644
index 0000000..de1685e
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/RBADiagnostician.java
@@ -0,0 +1,22 @@
+package rba.tool.editor.validation;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.Diagnostician;
+
+import rba.core.NamedElement;
+import rba.core.RBACorePackage;
+
+public class RBADiagnostician extends Diagnostician {
+
+ @Override
+ public String getObjectLabel(EObject eObject) {
+
+ EClass eClass = eObject.eClass();
+ if (RBACorePackage.Literals.NAMED_ELEMENT.isSuperTypeOf(eClass)) {
+ return ((NamedElement)eObject).getName();
+ } else {
+ return eClass.getName();
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/RBAModelCompositeEValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/RBAModelCompositeEValidator.xtend
new file mode 100644
index 0000000..d9c71d8
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/RBAModelCompositeEValidator.xtend
@@ -0,0 +1,39 @@
+package rba.tool.editor.validation
+
+import java.util.Map
+import org.eclipse.emf.common.util.DiagnosticChain
+import org.eclipse.emf.ecore.EObject
+import org.eclipse.emf.ecore.EReference
+import org.eclipse.emf.ecore.util.EObjectValidator
+import org.eclipse.xtext.validation.CompositeEValidator
+
+class RBAModelCompositeEValidator extends CompositeEValidator {
+
+ override protected initDefaults() {
+ if (isUseEObjectValidator()) {
+ this.addValidator(new EObjectValidator() {
+ override validate_EveryProxyResolves(EObject eObject, DiagnosticChain diagnostics, Map<Object, Object> context) {
+ // don't check, we have our own implementation, which creates nicer messages
+ return true;
+ }
+
+ override validate_NoCircularContainment(EObject eObject, DiagnosticChain diagnostics, Map<Object, Object> context) {
+ // don't check
+ return true;
+ }
+
+ override validate_EveryBidirectionalReferenceIsPaired(EObject eObject, DiagnosticChain diagnostics, Map<Object, Object> context) {
+ // don't check
+ return true;
+ }
+
+ override validate_BidirectionalReferenceIsPaired(EObject eObject, EReference eReference, EReference eOpposite, DiagnosticChain diagnostics,
+ Map<Object, Object> context) {
+ // don't check
+ return true;
+ }
+ });
+ }
+ }
+
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/RBAModelCompositeEValidatorProvider.xtend b/rba.tool.editor/src/rba/tool/editor/validation/RBAModelCompositeEValidatorProvider.xtend
new file mode 100644
index 0000000..c6cfd32
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/RBAModelCompositeEValidatorProvider.xtend
@@ -0,0 +1,25 @@
+package rba.tool.editor.validation
+
+import com.google.inject.Inject
+import com.google.inject.Provider
+import org.eclipse.xtext.service.OperationCanceledManager
+import org.eclipse.xtext.validation.CompositeEValidator
+import org.eclipse.xtext.validation.CompositeEValidator.EValidatorEqualitySupport
+import org.eclipse.xtext.xbase.lib.util.ReflectExtensions
+
+class RBAModelCompositeEValidatorProvider implements Provider<CompositeEValidator> {
+
+ @Inject extension ReflectExtensions;
+
+ @Inject private Provider<EValidatorEqualitySupport> equalitySupportProvider;
+
+ @Inject private OperationCanceledManager operationCanceledManager;
+
+ override get() {
+ val CompositeEValidator compositeValidator = new RBAModelCompositeEValidator()
+ compositeValidator.equalitySupportProvider = equalitySupportProvider;
+ compositeValidator.set("operationCanceledManager", operationCanceledManager)
+ return compositeValidator;
+ }
+
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/RBAModelValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/RBAModelValidator.xtend
new file mode 100644
index 0000000..ea1f815
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/RBAModelValidator.xtend
@@ -0,0 +1,194 @@
+/*
+ * generated by Xtext 2.12.0
+ */
+package rba.tool.editor.validation
+
+import org.eclipse.xtext.validation.ComposedChecks
+import rba.tool.editor.validation.validators.AllocatedContentValidator
+import rba.tool.editor.validation.validators.AndOperatorValidator
+import rba.tool.editor.validation.validators.AreaSetValidator
+import rba.tool.editor.validation.validators.AreaValidator
+import rba.tool.editor.validation.validators.ComparisonAndOperatorValidator
+import rba.tool.editor.validation.validators.CompositeAreaValidator
+import rba.tool.editor.validation.validators.ConstraintValidator
+import rba.tool.editor.validation.validators.ContentStateValidator
+import rba.tool.editor.validation.validators.ContentValueValidator
+import rba.tool.editor.validation.validators.DisplayValidator
+import rba.tool.editor.validation.validators.DisplayingContentValidator
+import rba.tool.editor.validation.validators.EqualToOperatorValidatior
+import rba.tool.editor.validation.validators.ExistsOperatorValidator
+import rba.tool.editor.validation.validators.FixedPositionLayoutValidator
+import rba.tool.editor.validation.validators.ForAllOperatorValidator
+import rba.tool.editor.validation.validators.GetAllocatablesValidator
+import rba.tool.editor.validation.validators.GetContentsListValidator
+import rba.tool.editor.validation.validators.GetPropertyValidator
+import rba.tool.editor.validation.validators.GreaterThanOperatorValidator
+import rba.tool.editor.validation.validators.HasComeEarlierThanValidator
+import rba.tool.editor.validation.validators.HasComeLaterThanValidator
+import rba.tool.editor.validation.validators.HorizontalLayoutValidator
+import rba.tool.editor.validation.validators.IfStatementValidator
+import rba.tool.editor.validation.validators.ImpliesOperatorValidator
+import rba.tool.editor.validation.validators.IntegerPropertyValidator
+import rba.tool.editor.validation.validators.IsActiveValidator
+import rba.tool.editor.validation.validators.IsAttenuatedValidator
+import rba.tool.editor.validation.validators.IsCanceledValidator
+import rba.tool.editor.validation.validators.IsDisappearedValidator
+import rba.tool.editor.validation.validators.IsEqualToOperatorValidator
+import rba.tool.editor.validation.validators.IsGreaterThanEqualOperatorValidator
+import rba.tool.editor.validation.validators.IsGreaterThanOperatorValidator
+import rba.tool.editor.validation.validators.IsHiddenValidator
+import rba.tool.editor.validation.validators.IsLowerThanEqualOperatorValidator
+import rba.tool.editor.validation.validators.IsLowerThanOperatorValidator
+import rba.tool.editor.validation.validators.IsMutedValidator
+import rba.tool.editor.validation.validators.IsOnValidator
+import rba.tool.editor.validation.validators.IsOutputtedValidator
+import rba.tool.editor.validation.validators.IsSoundingValidator
+import rba.tool.editor.validation.validators.IsVisibleValidator
+import rba.tool.editor.validation.validators.LambdaExpressionValidator
+import rba.tool.editor.validation.validators.LowerThanOperatorValidator
+import rba.tool.editor.validation.validators.MuchGreaterThanOperatorValidator
+import rba.tool.editor.validation.validators.NamedElementValidator
+import rba.tool.editor.validation.validators.NotOperatorValidator
+import rba.tool.editor.validation.validators.ObjectCompareValidator
+import rba.tool.editor.validation.validators.OffSceneValidator
+import rba.tool.editor.validation.validators.OffsetValidator
+import rba.tool.editor.validation.validators.OnSceneValidator
+import rba.tool.editor.validation.validators.OrOperatorValidator
+import rba.tool.editor.validation.validators.OutputtingSoundValidator
+import rba.tool.editor.validation.validators.PackageValidator
+import rba.tool.editor.validation.validators.PlusOperatorValidator
+import rba.tool.editor.validation.validators.PositionContainerValidator
+import rba.tool.editor.validation.validators.SceneValidator
+import rba.tool.editor.validation.validators.SetOfOperatorValidator
+import rba.tool.editor.validation.validators.SetPropertyValidator
+import rba.tool.editor.validation.validators.SoundContentSetValidator
+import rba.tool.editor.validation.validators.SoundContentValidator
+import rba.tool.editor.validation.validators.StateValueValidator
+import rba.tool.editor.validation.validators.ThatOfOperatorValidator
+import rba.tool.editor.validation.validators.VerticalLayoutValidator
+import rba.tool.editor.validation.validators.ViewContentSetValidator
+import rba.tool.editor.validation.validators.ViewContentValidator
+import rba.tool.editor.validation.validators.ZoneSetValidator
+import rba.tool.editor.validation.validators.ObjectCompareNotValidator
+import rba.tool.editor.validation.validators.IsAllocatedToValidator
+import rba.tool.editor.validation.validators.IsChangedValidator
+import rba.tool.editor.validation.validators.IsTranslatedToValidator
+import rba.tool.editor.validation.validators.IsDisplayedOnValidator
+import rba.tool.editor.validation.validators.IsChangedDisplayValidator
+import rba.tool.editor.validation.validators.IsTranslatedViewToValidator
+import rba.tool.editor.validation.validators.IsOutputtedOnValidator
+import rba.tool.editor.validation.validators.IsChangedOutputValidator
+import rba.tool.editor.validation.validators.IsTranslatedSoundToValidator
+import rba.tool.editor.validation.validators.HideLowerPriorityValidator
+import rba.tool.editor.validation.validators.MuteLowerPriorityValidator
+import rba.tool.editor.validation.validators.MinOperatorValidator
+import rba.tool.editor.validation.validators.MaxOperatorValidator
+import rba.tool.editor.validation.validators.SelectOperatorValidator
+import rba.tool.editor.validation.validators.IsTypeOfValidator
+import rba.tool.editor.validation.validators.SizeOperatorValidator
+import rba.tool.editor.validation.validators.ActiveStateValidator
+import rba.tool.editor.validation.validators.ZoneValidator
+import rba.tool.editor.validation.validators.ProjectValidator
+import rba.tool.editor.validation.validators.ContentValidator
+import rba.tool.editor.validation.validators.ActiveContentsValidator
+import rba.tool.editor.validation.validators.LetStatementValidator
+import rba.tool.editor.validation.validators.SizeValidator
+
+/**
+ * This class contains custom validation rules.
+ *
+ * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#validation
+ */
+@ComposedChecks(validators=#[
+ NamedElementValidator,
+ IfStatementValidator,
+ PackageValidator,
+ DisplayValidator,
+ CompositeAreaValidator,
+ FixedPositionLayoutValidator,
+ PositionContainerValidator,
+ AreaValidator,
+ VerticalLayoutValidator,
+ HorizontalLayoutValidator,
+ ViewContentValidator,
+ ContentStateValidator,
+ ComparisonAndOperatorValidator,
+ ConstraintValidator,
+ ThatOfOperatorValidator,
+ EqualToOperatorValidatior,
+ GreaterThanOperatorValidator,
+ MuchGreaterThanOperatorValidator,
+ LowerThanOperatorValidator,
+ PlusOperatorValidator,
+ AndOperatorValidator,
+ OrOperatorValidator,
+ ImpliesOperatorValidator,
+ NotOperatorValidator,
+ ObjectCompareValidator,
+ DisplayingContentValidator,
+ GetContentsListValidator,
+ IsActiveValidator,
+ IsVisibleValidator,
+ GetAllocatablesValidator,
+ LambdaExpressionValidator,
+ ForAllOperatorValidator,
+ ExistsOperatorValidator,
+ IsEqualToOperatorValidator,
+ IsGreaterThanOperatorValidator,
+ IsGreaterThanEqualOperatorValidator,
+ IsLowerThanOperatorValidator,
+ IsLowerThanEqualOperatorValidator,
+ IsHiddenValidator,
+ ContentValueValidator,
+ SetOfOperatorValidator,
+ IsOnValidator,
+ IsDisappearedValidator,
+ IsCanceledValidator,
+ OffsetValidator,
+ AreaSetValidator,
+ ViewContentSetValidator,
+ SoundContentSetValidator,
+ AllocatedContentValidator,
+ OnSceneValidator,
+ OffSceneValidator,
+ SetPropertyValidator,
+ GetPropertyValidator,
+ SceneValidator,
+ IntegerPropertyValidator,
+ SoundContentValidator,
+ ContentValidator,
+ ZoneSetValidator,
+ IsSoundingValidator,
+ IsOutputtedValidator,
+ IsMutedValidator,
+ IsAttenuatedValidator,
+ OutputtingSoundValidator,
+ HasComeEarlierThanValidator,
+ HasComeLaterThanValidator,
+ StateValueValidator,
+ ObjectCompareNotValidator,
+ IsAllocatedToValidator,
+ IsChangedValidator,
+ IsTranslatedToValidator,
+ IsDisplayedOnValidator,
+ IsChangedDisplayValidator,
+ IsTranslatedViewToValidator,
+ IsOutputtedOnValidator,
+ IsChangedOutputValidator,
+ IsTranslatedSoundToValidator,
+ HideLowerPriorityValidator,
+ MuteLowerPriorityValidator,
+ ActiveContentsValidator,
+ MinOperatorValidator,
+ MaxOperatorValidator,
+ SelectOperatorValidator,
+ IsTypeOfValidator,
+ SizeOperatorValidator,
+ ActiveStateValidator,
+ ZoneValidator,
+ ProjectValidator,
+ LetStatementValidator,
+ SizeValidator
+])
+class RBAModelValidator extends AbstractRBAModelValidator {
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/UniqueNameValidationHelper.xtend b/rba.tool.editor/src/rba/tool/editor/validation/UniqueNameValidationHelper.xtend
new file mode 100644
index 0000000..dc5ef18
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/UniqueNameValidationHelper.xtend
@@ -0,0 +1,211 @@
+package rba.tool.editor.validation
+
+import com.google.common.collect.Maps
+import com.google.inject.Inject
+import java.util.Map
+import org.eclipse.emf.ecore.EClass
+import org.eclipse.emf.ecore.EObject
+import org.eclipse.emf.ecore.EStructuralFeature
+import org.eclipse.emf.ecore.resource.Resource
+import org.eclipse.xtext.naming.QualifiedName
+import org.eclipse.xtext.resource.IEObjectDescription
+import org.eclipse.xtext.resource.IResourceDescriptionsProvider
+import org.eclipse.xtext.resource.IResourceServiceProvider
+import org.eclipse.xtext.service.OperationCanceledManager
+import org.eclipse.xtext.util.CancelIndicator
+import org.eclipse.xtext.util.SimpleAttributeResolver
+import org.eclipse.xtext.validation.ValidationMessageAcceptor
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.rbaEditorModel.RbaEditorModelPackage
+import java.util.List
+import java.util.Arrays
+import rba.core.impl.ProjectImpl
+
+class UniqueNameValidationHelper {
+
+ @Inject
+ private IResourceServiceProvider.Registry resourceServiceProviderRegistry = IResourceServiceProvider.Registry.INSTANCE;
+
+ @Inject
+ private IResourceDescriptionsProvider resourceDescriptionsProvider;
+
+ @Inject
+ private OperationCanceledManager operationCanceledManager = new OperationCanceledManager();
+
+ private static final List<String> RESTRICTED_NAMES = Arrays.asList(
+ "AnyAreasOfContent",
+ "AnyContentsOfArea",
+ "NullExpression"
+ );
+
+ private String NAMEDELEMENT_NAME_DUPLICATE = Messages.NAMEDELEMENT_NAME_DUPLICATE;
+
+ def public void checkUniqueNames(Resource resource, CancelIndicator cancelIndicator, ValidationMessageAcceptor acceptor) {
+ val resourceServiceProvider = resourceServiceProviderRegistry.getResourceServiceProvider(resource.getURI());
+ if(resourceServiceProvider === null) {
+ return;
+ }
+
+ val manager = resourceServiceProvider.getResourceDescriptionManager();
+ if(manager !== null) {
+ val description = manager.getResourceDescription(resource);
+ if(description !== null) {
+ val descriptions = description.getExportedObjects();
+ val currentIter = descriptions.iterator();
+ if(!currentIter.hasNext()) {
+ return;
+ }
+ val clusterToNames = Maps.newHashMap();
+
+ val containerManager = resourceServiceProvider.getContainerManager();
+ val resourceDescriptions = resourceDescriptionsProvider.getResourceDescriptions(resource.getResourceSet());
+ for (container : containerManager.getVisibleContainers(description, resourceDescriptions)) {
+ val siblingsResourceDescriptions = container.resourceDescriptions.filter(r|r.URI.toString !== description.URI.toString);
+ val siblingsObjectDescriptions = siblingsResourceDescriptions.map(srd|srd.exportedObjects.filter[obj|
+ obj.EClass !== RBACorePackage.Literals.TAG && obj.EClass !== RbaEditorModelPackage.Literals.CTAG
+ ]).flatten;
+ for (siblingsObjectDescription : siblingsObjectDescriptions) {
+ initDescriptionForDuplicatedName(siblingsObjectDescription, clusterToNames, acceptor);
+ }
+ }
+
+ while(currentIter.hasNext()) {
+ val objectDescription = currentIter.next();
+ checkDescriptionForDuplicatedName(objectDescription, clusterToNames, acceptor);
+ operationCanceledManager.checkCanceled(cancelIndicator);
+ }
+ }
+ }
+ }
+
+ def protected void initDescriptionForDuplicatedName(IEObjectDescription description, Map<EClass, Map<QualifiedName, IEObjectDescription>> clusterTypeToName, ValidationMessageAcceptor acceptor) {
+ val object = description.getEObjectOrProxy();
+ val eClass = object.eClass();
+ val qualifiedName = description.getName();
+ val clusterType = getAssociatedClusterType(eClass);
+ if(clusterType === null) {
+ return;
+ }
+
+ val nameToDescription = clusterTypeToName.get(clusterType);
+ if(nameToDescription === null) {
+ val newNameToDescription = Maps.newHashMap();
+ newNameToDescription.put(qualifiedName, description);
+ clusterTypeToName.put(clusterType, newNameToDescription);
+ } else if(!nameToDescription.containsKey(qualifiedName)) {
+ nameToDescription.put(qualifiedName, description);
+ }
+ }
+
+ def protected void checkDescriptionForDuplicatedName(IEObjectDescription description, Map<EClass, Map<QualifiedName, IEObjectDescription>> clusterTypeToName, ValidationMessageAcceptor acceptor) {
+ val object = description.getEObjectOrProxy();
+ val eClass = object.eClass();
+ if(eClass === RBACorePackage.Literals.VARIABLE) {
+ return;
+ }
+
+ if(eClass === RBACorePackage.Literals.TAG || eClass === RbaEditorModelPackage.Literals.CTAG) {
+ return;
+ }
+
+ val qualifiedName = description.getName();
+ val clusterType = getAssociatedClusterType(eClass);
+ if(clusterType === null) {
+ return;
+ }
+
+ val nameToDescription = clusterTypeToName.get(clusterType);
+ if(nameToDescription === null) {
+ val newNameToDescription = Maps.newHashMap();
+ newNameToDescription.put(qualifiedName, description);
+ clusterTypeToName.put(clusterType, newNameToDescription);
+ } else {
+ if(nameToDescription.containsKey(qualifiedName)) {
+ val prevDescription = nameToDescription.get(qualifiedName);
+
+ if(prevDescription !== null && !(prevDescription.getEObjectOrProxy() instanceof ProjectImpl)) {
+ createDuplicateNameError(prevDescription, clusterType, acceptor);
+ nameToDescription.put(qualifiedName, null);
+ }
+ createDuplicateNameError(description, clusterType, acceptor);
+ } else if(isNamingRestricted(qualifiedName)){
+ createNamingRestrictionError(description, clusterType, acceptor, qualifiedName)
+ } else {
+ nameToDescription.put(qualifiedName, description);
+ }
+ }
+ }
+
+ def protected void createDuplicateNameError(IEObjectDescription description, EClass clusterType, ValidationMessageAcceptor acceptor) {
+ val object = description.getEObjectOrProxy();
+ if(object.eIsProxy) {
+ return;
+ }
+
+ val feature = getNameFeature(object);
+ acceptor.acceptError(getDuplicateNameErrorMessage(description), object, feature, ValidationMessageAcceptor.INSIGNIFICANT_INDEX, getErrorCode());
+ }
+
+ def String getDuplicateNameErrorMessage(IEObjectDescription description) {
+ val qualifiedName = description.getQualifiedName().toString();
+ val shortName = String.valueOf(if(qualifiedName !== null && qualifiedName !== "") qualifiedName else "<unnamed>");
+ return String.format(NAMEDELEMENT_NAME_DUPLICATE, shortName);
+ }
+
+ def protected boolean isContainerInformationHelpful(IEObjectDescription description, EObject container, String containerTypeLabel, EStructuralFeature containerNameFeature) {
+ return containerTypeLabel !== null && containerNameFeature !== null;
+ }
+
+ def protected boolean isContainerInformationHelpful(IEObjectDescription description, String shortName) {
+ return true;
+ }
+
+ def protected EObject getContainerForErrorMessage(EObject object) {
+ return object.eContainer();
+ }
+
+ def protected String getTypeLabel(EClass eClass) {
+ return eClass.getName();
+ }
+
+ def protected EStructuralFeature getNameFeature(EObject object) {
+ return SimpleAttributeResolver.NAME_RESOLVER.getAttribute(object);
+ }
+
+ def protected EClass getAssociatedClusterType(EClass eClass) {
+ val superTypes = eClass.getESuperTypes();
+ if(superTypes.isEmpty()) {
+ return null;
+ }
+ if(superTypes.contains(RBACorePackage.Literals.NAMED_ELEMENT)) {
+ return RBACorePackage.Literals.NAMED_ELEMENT;
+ }
+ return getAssociatedClusterType(superTypes.get(0));
+ }
+
+ def protected String getErrorCode() {
+ return null;
+ }
+
+ def protected boolean isNamingRestricted(QualifiedName qualifiedName){
+ if ( qualifiedName.getSegments().size() > 0 ) {
+ val i = qualifiedName.getSegments().size() - 1;
+ if( RESTRICTED_NAMES.contains(qualifiedName.getSegments().get(i).toString) ) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ def protected void createNamingRestrictionError(IEObjectDescription description, EClass clusterType,
+ ValidationMessageAcceptor acceptor, QualifiedName qualifiedName) {
+ val object = description.getEObjectOrProxy();
+ if (object.eIsProxy) {
+ return;
+ }
+ val feature = getNameFeature(object);
+ val errorMessage = String.format(Messages.NAME_RESTRICTION, object.eClass.name, qualifiedName.toString)
+ acceptor.acceptError(errorMessage, object, feature, ValidationMessageAcceptor.INSIGNIFICANT_INDEX,getErrorCode());
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/AbstractContentOperatorValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/AbstractContentOperatorValidator.xtend
new file mode 100644
index 0000000..7ed88f3
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/AbstractContentOperatorValidator.xtend
@@ -0,0 +1,7 @@
+package rba.tool.editor.validation.validators
+
+import rba.tool.editor.validation.AbstractRBAModelValidator
+
+abstract class AbstractContentOperatorValidator extends AbstractRBAModelValidator {
+
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/AbstractContentValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/AbstractContentValidator.xtend
new file mode 100644
index 0000000..3fc2a1a
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/AbstractContentValidator.xtend
@@ -0,0 +1,59 @@
+package rba.tool.editor.validation.validators
+
+import com.google.common.collect.Sets
+import com.google.inject.Inject
+import java.util.Set
+import org.eclipse.emf.ecore.EObject
+import org.eclipse.emf.ecore.resource.Resource
+import org.eclipse.xtext.util.CancelIndicator
+import org.eclipse.xtext.validation.CancelableDiagnostician
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.AbstractContent
+import rba.tool.editor.util.RBAModelEditorToolUtil
+import rba.tool.editor.validation.AbstractRBAModelValidator
+import rba.tool.editor.validation.ContentAllocatableListValidationHelper
+
+abstract class AbstractContentValidator extends AbstractRBAModelValidator {
+
+ @Inject private ContentAllocatableListValidationHelper helper;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def public void checkCircularContainment(AbstractContent abstractContent) {
+ val context = getContext();
+ val resource = abstractContent.eResource();
+ if(resource === null) {
+ return;
+ }
+
+ if(context !== null) {
+ var Object contextValue;
+ if(context.containsKey(resource)) {
+ contextValue = context.get(resource);
+ }
+ if(!(contextValue instanceof Set<?>)) {
+ context.put(resource, Sets.newHashSet());
+ }
+ if(RBAModelEditorToolUtil.isValidated((contextValue), this)) {
+ return; // resource was already validated
+ }
+
+ (contextValue as Set).add(this);
+ docheckCrossReferenceEmpty(resource, context.get(CancelableDiagnostician.CANCEL_INDICATOR) as CancelIndicator);
+ return;
+ }
+ docheckCrossReferenceEmpty(resource, null);
+ }
+
+ def public void docheckCrossReferenceEmpty(Resource resource, CancelIndicator cancelIndicator) {
+ helper.checkCrossReferenceEmpty(resource, cancelIndicator, this);
+ }
+
+ override protected checkIsFromCurrentlyCheckedResource(EObject object) {
+ // do nothing
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/ActiveContentsValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/ActiveContentsValidator.xtend
new file mode 100644
index 0000000..e250efa
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/ActiveContentsValidator.xtend
@@ -0,0 +1,33 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ActiveContents
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+import rba.core.ExpressionType
+
+class ActiveContentsValidator extends AbstractRBAModelValidator {
+
+ private String OPERAND_SIZE_ONE = Messages.OPERAND_SIZE_ONE;
+ private String FIRST_OPERAND_MUST_ALLOCATABLE = Messages.FIRST_OPERAND_MUST_ALLOCATABLE;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkActivateContent(ActiveContents op) {
+ if (op.operand.size != 1) {
+ error(String.format(OPERAND_SIZE_ONE, op.symbol), RBACorePackage.Literals.OPERATOR__OPERAND, 1)
+ return;
+ }
+ var firstOperand = op.operand.get(0)
+ if (firstOperand.type != ExpressionType::AREA && firstOperand.type != ExpressionType::ZONE) {
+ error(String.format(FIRST_OPERAND_MUST_ALLOCATABLE, op.symbol),
+ RBACorePackage.Literals.OPERATOR__OPERAND, 0)
+ return;
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/ActiveStateValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/ActiveStateValidator.xtend
new file mode 100644
index 0000000..4522163
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/ActiveStateValidator.xtend
@@ -0,0 +1,32 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+import rba.core.ExpressionType
+import rba.core.ActiveState
+
+class ActiveStateValidator extends AbstractRBAModelValidator {
+
+ private String OPERAND_SIZE_ONE = Messages.OPERAND_SIZE_ONE;
+ private String FIRST_OPERAND_MUST_CONTENT = Messages.FIRST_OPERAND_MUST_CONTENT;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkActiveState(ActiveState op) {
+ if (op.operand.size < 1) {
+ error(String.format(OPERAND_SIZE_ONE, op.symbol), RBACorePackage.Literals.OPERATOR__OPERAND, 1)
+ return;
+ }
+ var operand = op.operand.get(0)
+ if (operand.type != ExpressionType.CONTENT && operand.type != ExpressionType.SOUND) {
+ error(String.format(FIRST_OPERAND_MUST_CONTENT, op.symbol), RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/AllocatableSetValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/AllocatableSetValidator.xtend
new file mode 100644
index 0000000..d408d23
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/AllocatableSetValidator.xtend
@@ -0,0 +1,59 @@
+package rba.tool.editor.validation.validators
+
+import com.google.common.collect.Sets
+import com.google.inject.Inject
+import java.util.Set
+import org.eclipse.emf.ecore.EObject
+import org.eclipse.emf.ecore.resource.Resource
+import org.eclipse.xtext.util.CancelIndicator
+import org.eclipse.xtext.validation.CancelableDiagnostician
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.AllocatableSet
+import rba.tool.editor.util.RBAModelEditorToolUtil
+import rba.tool.editor.validation.AbstractRBAModelValidator
+import rba.tool.editor.validation.CircularContainmentValidationHelper
+
+abstract class AllocatableSetValidator extends AbstractRBAModelValidator {
+
+ @Inject private CircularContainmentValidationHelper helper;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def public void checkCircularContainment(AllocatableSet allocatableSet) {
+ val context = getContext();
+ val resource = allocatableSet.eResource();
+ if (resource === null) {
+ return;
+ }
+
+ if (context !== null) {
+ var Object contextValue;
+ if (context.containsKey(resource)) {
+ contextValue = context.get(resource);
+ }
+ if (!(contextValue instanceof Set<?>)) {
+ context.put(resource, Sets.newHashSet());
+ }
+ if (RBAModelEditorToolUtil.isValidated((contextValue), this)) {
+ return; // resource was already validated
+ }
+
+ (contextValue as Set).add(this);
+ doCheckCircularContainment(resource, context.get(CancelableDiagnostician.CANCEL_INDICATOR) as CancelIndicator);
+ return;
+ }
+ doCheckCircularContainment(resource, null);
+ }
+
+ def public void doCheckCircularContainment(Resource resource, CancelIndicator cancelIndicator) {
+ helper.checkCircularContainment(resource, cancelIndicator, this);
+ }
+
+ override protected checkIsFromCurrentlyCheckedResource(EObject object) {
+ // do nothing
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/AllocatedContentValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/AllocatedContentValidator.xtend
new file mode 100644
index 0000000..5e07e8e
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/AllocatedContentValidator.xtend
@@ -0,0 +1,36 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.AllocatedContent
+import rba.core.ExpressionType
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+
+class AllocatedContentValidator extends AbstractRBAModelValidator {
+
+ private String ALLOCATEDCONTENT_TYPE = Messages.ALLOCATEDCONTENT_TYPE;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkAllocatedContent(AllocatedContent allocatedContent) {
+ for (operand : allocatedContent.operand) {
+ switch (operand.type) {
+ case ExpressionType.AREA,
+ case ExpressionType.SET_OF_AREA,
+ case ExpressionType.ZONE,
+ case ExpressionType.SET_OF_ZONE: {
+ return;
+ }
+ default: {
+ error(ALLOCATEDCONTENT_TYPE, RBACorePackage.Literals.OPERATOR__OPERAND);
+ return;
+ }
+ }
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/AndOperatorValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/AndOperatorValidator.xtend
new file mode 100644
index 0000000..8bea0d5
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/AndOperatorValidator.xtend
@@ -0,0 +1,35 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.AndOperator
+import rba.core.ExpressionType
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+
+class AndOperatorValidator extends AbstractRBAModelValidator {
+
+ private String AND_OPERAND_SIZE = Messages.AND_OPERAND_SIZE;
+
+ private String AND_OPERAND_TYPE = Messages.AND_OPERAND_TYPE;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkAndOperator(AndOperator andOperator) {
+ if (andOperator.operand.size < 2) {
+ error(AND_OPERAND_SIZE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ for (var i = 0; i < andOperator.operand.size; i++) {
+ var operand = andOperator.operand.get(i)
+ if (operand.type != ExpressionType.BOOLEAN) {
+ error(AND_OPERAND_TYPE, RBACorePackage.Literals.OPERATOR__OPERAND, i, null)
+ return;
+ }
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/AreaSetValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/AreaSetValidator.xtend
new file mode 100644
index 0000000..b87dcb6
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/AreaSetValidator.xtend
@@ -0,0 +1,47 @@
+package rba.tool.editor.validation.validators
+
+import java.util.HashSet
+import org.eclipse.xtext.validation.Check
+import rba.core.AbstractAllocatable
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.view.Area
+import rba.view.AreaSet
+
+class AreaSetValidator extends AllocatableSetValidator {
+
+ private String AREASET_TARGET_SIZE = Messages.AREASET_TARGET_SIZE;
+
+ private String AREASET_TARGET_INVALID_TYPE = Messages.AREASET_TARGET_INVALID_TYPE;
+
+ private String AREASET_TARGET_INCLUDE_SELF = Messages.AREASET_TARGET_INCLUDE_SELF;
+
+ private String AREASET_TARGET_DUPLICATE = Messages.AREASET_TARGET_DUPLICATE;
+
+ @Check(NORMAL)
+ def checkContent(AreaSet areaSet) {
+ if (areaSet.target.size === 0) {
+ warning(String.format(AREASET_TARGET_SIZE, areaSet.name), RBACorePackage.Literals.ALLOCATABLE_SET__TARGET);
+ }
+
+ if (areaSet.target.contains(areaSet)) {
+ error(String.format(AREASET_TARGET_INCLUDE_SELF, areaSet.name), RBACorePackage.Literals.ALLOCATABLE_SET__TARGET, areaSet.target.indexOf(areaSet));
+ return;
+ }
+
+ var hash = new HashSet<AbstractAllocatable>
+ for (var index = 0; index < areaSet.target.size; index.operator_plusPlus()) {
+ val AbstractAllocatable abstractAllocatable = areaSet.target.get(index);
+ if (!(abstractAllocatable instanceof Area || abstractAllocatable instanceof AreaSet)) {
+ error(String.format(AREASET_TARGET_INVALID_TYPE, areaSet.name), RBACorePackage.Literals.ALLOCATABLE_SET__TARGET, index);
+ return;
+ }
+ if (hash.contains(abstractAllocatable)) {
+ error(String.format(AREASET_TARGET_DUPLICATE, areaSet.name), RBACorePackage.Literals.ALLOCATABLE_SET__TARGET, index);
+ return;
+ } else {
+ hash.add(abstractAllocatable)
+ }
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/AreaValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/AreaValidator.xtend
new file mode 100644
index 0000000..9df27ec
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/AreaValidator.xtend
@@ -0,0 +1,74 @@
+package rba.tool.editor.validation.validators
+
+import java.util.function.Consumer
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ExpressionType
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.rbaEditorModel.CTag
+import rba.tool.editor.validation.AbstractRBAModelValidator
+import rba.view.Area
+import rba.view.RBAViewPackage
+
+class AreaValidator extends AbstractRBAModelValidator {
+
+
+ private String AREA_VISIBILITY_TYPE = Messages.AREA_VISIBILITY_TYPE;
+
+ private String AREA_ZORDER_TYPE = Messages.AREA_ZORDER_TYPE;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ private Consumer<String> errorToName = [msg|error(msg, RBACorePackage.Literals.NAMED_ELEMENT__NAME, 0)];
+
+ @Check(NORMAL)
+ def checkArea(Area area) {
+// for (var index = 0; index < area.tags.size; index.operator_plusPlus()) {
+// val Tag tag = area.tags.get(index);
+// if (!tag.stereotype.targetModelName.equals(Area.simpleName)) {
+// error(String.format(TARGET_MODEL_NAME_MISMATCH, Area.simpleName, tag.stereotype.targetModelName), RBACorePackage.Literals.TAG__STEREOTYPE);
+// return;
+// }
+// }
+ }
+
+ @Check(NORMAL)
+ def check0RequiredFields(Area area) {
+// println(this.class.simpleName)
+ val tags = area.tags;
+
+ if(tags.isNullOrEmpty || !tags.filter(CTag).isEmpty) {
+ if(!doRequiredFieldsCheck(area)) return;
+ }
+ }
+
+ def protected doRequiredFieldsCheck(Area area) {
+ var passed = false;
+ passed = ValidatorUtils.mustHaveVisibility(area, errorToName)
+ if(!passed) {
+ return false;
+ }
+ if(area.visibility.type != ExpressionType.VALUE) {
+ error(String.format(AREA_VISIBILITY_TYPE, area.name), RBACorePackage.Literals.ALLOCATABLE__VISIBILITY);
+ return false;
+ }
+ passed = ValidatorUtils.mustHaveZorder(area, errorToName);
+ if(!passed) {
+ return false;
+ }
+ if(area.zorder.type != ExpressionType.VALUE) {
+ error(String.format(AREA_ZORDER_TYPE, area.name), RBAViewPackage.Literals.AREA__ZORDER);
+ return false;
+ }
+ passed = ValidatorUtils.mustHaveLeastOneSize(area, errorToName);
+ if(!passed) {
+ return false;
+ }
+
+ return true;
+ }
+
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/ComparisonAndOperatorValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/ComparisonAndOperatorValidator.xtend
new file mode 100644
index 0000000..945ce88
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/ComparisonAndOperatorValidator.xtend
@@ -0,0 +1,39 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ComparisonAnd
+import rba.core.ComparisonOperator
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+
+class ComparisonAndOperatorValidator extends AbstractRBAModelValidator {
+
+ private String COMPARISONAND_OPERAND_SIZE = Messages.COMPARISONAND_OPERAND_SIZE;
+
+ private String COMPARISONAND_OPERAND_TYPE = Messages.COMPARISONAND_OPERAND_TYPE;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(FAST)
+ def checkComparisonOperatorFast(ComparisonAnd comparisonAnd) {
+ if (comparisonAnd.operand.size < 2) {
+ error(COMPARISONAND_OPERAND_SIZE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ }
+
+ @Check(NORMAL)
+ def checkComparisonOperatorNormal(ComparisonAnd comparisonAnd) {
+ for (operand : comparisonAnd.operand) {
+ if (operand instanceof ComparisonOperator) {
+ } else {
+ error(COMPARISONAND_OPERAND_TYPE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/CompositeAreaValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/CompositeAreaValidator.xtend
new file mode 100644
index 0000000..03a9d5b
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/CompositeAreaValidator.xtend
@@ -0,0 +1,26 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+import rba.view.CompositeArea
+import rba.view.RBAViewPackage
+
+class CompositeAreaValidator extends AbstractRBAModelValidator {
+
+ private String COMPOSITE_AREA_CHECK = Messages.COMPOSITE_AREA_CHECK;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkCompositeArea(CompositeArea compositeArea) {
+ if (compositeArea.layout === null) {
+ error(String.format(COMPOSITE_AREA_CHECK, compositeArea.name),
+ RBAViewPackage.Literals.COMPOSITE_AREA__LAYOUT);
+ return;
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/ConstraintValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/ConstraintValidator.xtend
new file mode 100644
index 0000000..1625897
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/ConstraintValidator.xtend
@@ -0,0 +1,27 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.Constraint
+import rba.core.ExpressionType
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+
+class ConstraintValidator extends AbstractRBAModelValidator {
+
+ private String CONSTRAINT_EXPRESSION_TYPE = Messages.CONSTRAINT_EXPRESSION_TYPE;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkConstraint(Constraint constraint) {
+ if (constraint.expression.type !== ExpressionType.BOOLEAN) {
+ error(CONSTRAINT_EXPRESSION_TYPE, RBACorePackage.Literals.ABSTRACT_CONSTRAINT__EXPRESSION);
+ return;
+ }
+ }
+
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/ContentSetValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/ContentSetValidator.xtend
new file mode 100644
index 0000000..701e445
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/ContentSetValidator.xtend
@@ -0,0 +1,59 @@
+package rba.tool.editor.validation.validators
+
+import com.google.common.collect.Sets
+import com.google.inject.Inject
+import java.util.Set
+import org.eclipse.emf.ecore.EObject
+import org.eclipse.emf.ecore.resource.Resource
+import org.eclipse.xtext.util.CancelIndicator
+import org.eclipse.xtext.validation.CancelableDiagnostician
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ContentSet
+import rba.tool.editor.util.RBAModelEditorToolUtil
+import rba.tool.editor.validation.AbstractRBAModelValidator
+import rba.tool.editor.validation.CircularContainmentValidationHelper
+
+abstract class ContentSetValidator extends AbstractRBAModelValidator {
+
+ @Inject private CircularContainmentValidationHelper helper;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def public void checkCircularContainment(ContentSet contentSet) {
+ val context = getContext();
+ val resource = contentSet.eResource();
+ if (resource === null) {
+ return;
+ }
+
+ if (context !== null) {
+ var Object contextValue;
+ if (context.containsKey(resource)) {
+ contextValue = context.get(resource);
+ }
+ if (!(contextValue instanceof Set<?>)) {
+ context.put(resource, Sets.newHashSet());
+ }
+ if (RBAModelEditorToolUtil.isValidated((contextValue), this)) {
+ return; // resource was already validated
+ }
+
+ (contextValue as Set).add(this);
+ doCheckCircularContainment(resource, context.get(CancelableDiagnostician.CANCEL_INDICATOR) as CancelIndicator);
+ return;
+ }
+ doCheckCircularContainment(resource, null);
+ }
+
+ def public void doCheckCircularContainment(Resource resource, CancelIndicator cancelIndicator) {
+ helper.checkCircularContainment(resource, cancelIndicator, this);
+ }
+
+ override protected checkIsFromCurrentlyCheckedResource(EObject object) {
+ // do nothing
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/ContentStateValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/ContentStateValidator.xtend
new file mode 100644
index 0000000..2dd45a3
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/ContentStateValidator.xtend
@@ -0,0 +1,26 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ContentState
+import rba.core.ExpressionType
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+
+class ContentStateValidator extends AbstractRBAModelValidator {
+
+ private String CONTENTSTATE_TYPE = Messages.CONTENTSTATE_TYPE;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkContentState(ContentState contentState) {
+ if (contentState.value.type != ExpressionType.VALUE) {
+ error(String.format(CONTENTSTATE_TYPE, contentState.name), RBACorePackage.Literals.CONTENT_STATE__VALUE)
+ return;
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/ContentValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/ContentValidator.xtend
new file mode 100644
index 0000000..885698e
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/ContentValidator.xtend
@@ -0,0 +1,20 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ExpressionType
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+import rba.core.Content
+
+class ContentValidator extends AbstractRBAModelValidator {
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkContent(Content content) {
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/ContentValueValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/ContentValueValidator.xtend
new file mode 100644
index 0000000..fc97945
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/ContentValueValidator.xtend
@@ -0,0 +1,34 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ContentValue
+import rba.core.ExpressionType
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+
+class ContentValueValidator extends AbstractRBAModelValidator {
+
+ private String CONTENTVALUE_SIZE = Messages.CONTENTVALUE_SIZE;
+
+ private String CONTENTVALUE_TYPE = Messages.CONTENTVALUE_TYPE;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkContentValue(ContentValue contentValue) {
+ if (contentValue.operand.size > 1) {
+ error(CONTENTVALUE_SIZE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ for (operand : contentValue.operand) {
+ if (operand.type != ExpressionType.AREA && operand.type != ExpressionType.ZONE) {
+ error(CONTENTVALUE_TYPE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/DisplayValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/DisplayValidator.xtend
new file mode 100644
index 0000000..5e7225d
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/DisplayValidator.xtend
@@ -0,0 +1,91 @@
+package rba.tool.editor.validation.validators
+
+import java.util.HashSet
+import java.util.Set
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+import rba.view.AlignedLayout
+import rba.view.Area
+import rba.view.CompositeArea
+import rba.view.Display
+import rba.view.FixedPositionLayout
+import rba.view.PositionContainer
+import rba.view.RBAViewPackage
+import rba.view.Size
+import rba.view.SizeIdentifier
+import rba.view.SizeReference
+
+class DisplayValidator extends AbstractRBAModelValidator {
+
+ private String DISPLAY_AREA_SIZE_CHECK = Messages.DISPLAY_AREA_SIZE_CHECK
+
+ private String DISPLAY_ROOT_CHECK = Messages.DISPLAY_ROOT_CHECK;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkDisplay(Display display) {
+ if (display.root === null) {
+ error(String.format(DISPLAY_ROOT_CHECK, display.name), RBAViewPackage.Literals.DISPLAY__ROOT);
+ return;
+ }
+ var size = display.size as SizeIdentifier
+ var displaySize = getSize(size);
+ var displayWidth = displaySize.width
+ var displayHeight = displaySize.height
+
+ if (display.root !== null && display.root.eContainer !== null) {
+ var Set<Area> areaList = new HashSet
+ getAreas(display.root, areaList)
+ for (a : areaList) {
+ var area = a as Area
+ for (sizeIdentifier : area.size) {
+ var areaSize = getSize(sizeIdentifier)
+ var areaWidth = areaSize.width
+ var areaHeight = areaSize.height
+
+ if (areaWidth > displayWidth || areaHeight > displayHeight) {
+ warning(String.format(DISPLAY_AREA_SIZE_CHECK, display.name), RBAViewPackage.Literals.DISPLAY__ROOT)
+ return;
+ }
+ }
+ }
+ }
+ }
+
+ // get all areas from display
+ def void getAreas(CompositeArea compositeArea, Set<Area> areaList) {
+ if (compositeArea !== null) {
+ var layout = compositeArea.layout
+ if (layout instanceof AlignedLayout) {
+ var aliginedLayout = layout as AlignedLayout
+ for (subArea : aliginedLayout.subarea) {
+ areaList.addAll(subArea);
+ }
+ } else if (layout instanceof FixedPositionLayout) {
+ var fixedPositionLayout = layout as FixedPositionLayout
+ var positions = fixedPositionLayout.subAreaPosition
+ for (position : positions) {
+ if (position instanceof PositionContainer) {
+ var pos = position as PositionContainer
+ areaList.add(pos.area);
+ }
+ }
+ }
+ }
+ }
+
+ // get Size from SizeIdentifier
+ def Size getSize(SizeIdentifier size) {
+ if (size instanceof Size) {
+ return size as Size
+ } else if (size instanceof SizeReference) {
+ var sizeRef = size as SizeReference
+ return sizeRef.size as Size
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/DisplayingContentValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/DisplayingContentValidator.xtend
new file mode 100644
index 0000000..9b2cac6
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/DisplayingContentValidator.xtend
@@ -0,0 +1,34 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ExpressionType
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+import rba.view.DisplayingContent
+
+class DisplayingContentValidator extends AbstractRBAModelValidator {
+
+ private String DISPLAYINGCONTENT_SIZE = Messages.DISPLAYINGCONTENT_SIZE;
+
+ private String DISPLAYINGCONTENT_TYPE = Messages.DISPLAYINGCONTENT_TYPE;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkDisplayingContent(DisplayingContent displayingContent) {
+ if (displayingContent.operand.size > 1) {
+ error(DISPLAYINGCONTENT_SIZE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ for (operand : displayingContent.operand) {
+ if (operand.type != ExpressionType.AREA) {
+ error(DISPLAYINGCONTENT_TYPE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/EqualToOperatorValidatior.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/EqualToOperatorValidatior.xtend
new file mode 100644
index 0000000..0786662
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/EqualToOperatorValidatior.xtend
@@ -0,0 +1,42 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.EqualToOperator
+import rba.core.ExpressionType
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+
+class EqualToOperatorValidatior extends AbstractRBAModelValidator {
+
+ private String EQUALTO_OPERAND_SIZE_NULL = Messages.EQUALTO_OPERAND_SIZE_NULL;
+
+ private String EQUALTO_OPERAND_SIZE = Messages.EQUALTO_OPERAND_SIZE;
+
+ private String EQUALTO_OPERAND_TYPE = Messages.EQUALTO_OPERAND_TYPE;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkEqualToOperator(EqualToOperator equalToOperator) {
+
+ if (equalToOperator.operand.size == 0) {
+ error(EQUALTO_OPERAND_SIZE_NULL, RBACorePackage.Literals.OPERATOR__OPERAND);
+ return;
+ }
+ if (equalToOperator.operand.size != 1) {
+ error(EQUALTO_OPERAND_SIZE, RBACorePackage.Literals.OPERATOR__OPERAND);
+ return;
+ }
+ for (operand : equalToOperator.operand) {
+ if (operand.type != ExpressionType.VALUE) {
+ error(EQUALTO_OPERAND_TYPE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ }
+
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/ExistsOperatorValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/ExistsOperatorValidator.xtend
new file mode 100644
index 0000000..ea86433
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/ExistsOperatorValidator.xtend
@@ -0,0 +1,48 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ExistsOperator
+import rba.core.Expression
+import rba.core.ExpressionType
+import rba.core.RBACorePackage
+import rba.core.SetOfOperator
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+
+class ExistsOperatorValidator extends AbstractRBAModelValidator {
+
+ private String EXISTS_OPERAND_SIZE = Messages.EXISTS_OPERAND_SIZE;
+
+ private String EXISTS_OPERAND_TYPE = Messages.EXISTS_OPERAND_TYPE;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkExistsOperator(ExistsOperator existsOperator) {
+ if (existsOperator.operand.size > 1) {
+ error(EXISTS_OPERAND_SIZE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ var operand = existsOperator.operand.get(0)
+ if (operand.type != ExpressionType.SET_OF_CONTENT && operand.type != ExpressionType.SET_OF_AREA &&
+ operand.type != ExpressionType.SET_OF_ZONE && operand.type != ExpressionType.SET_OF_SOUND &&
+ isInvalidSetOfOperator(operand)) {
+ error(EXISTS_OPERAND_TYPE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ }
+
+ // check whether operator is SetOfOperator and operand type is not type of Area,Content,Zone,Sound or Animation
+ def isInvalidSetOfOperator(Expression operand) {
+ if (operand instanceof SetOfOperator) {
+ if (operand.type == ExpressionType.AREA || operand.type == ExpressionType.CONTENT ||
+ operand.type == ExpressionType.ZONE || operand.type == ExpressionType.SOUND) {
+ return false
+ }
+ }
+ return true
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/FixedPositionLayoutValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/FixedPositionLayoutValidator.xtend
new file mode 100644
index 0000000..718f135
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/FixedPositionLayoutValidator.xtend
@@ -0,0 +1,25 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+import rba.view.FixedPositionLayout
+import rba.view.RBAViewPackage
+
+class FixedPositionLayoutValidator extends AbstractRBAModelValidator {
+
+ private String FIXEDPOSITION_LAYOUT_CHECK = Messages.FIXEDPOSITION_LAYOUT_CHECK;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkFixedPositionLayout(FixedPositionLayout fixedPositionLayout) {
+ if (fixedPositionLayout.subAreaPosition.size == 0) {
+ error(FIXEDPOSITION_LAYOUT_CHECK, RBAViewPackage.Literals.FIXED_POSITION_LAYOUT__SUB_AREA_POSITION);
+ return;
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/ForAllOperatorValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/ForAllOperatorValidator.xtend
new file mode 100644
index 0000000..2e05f33
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/ForAllOperatorValidator.xtend
@@ -0,0 +1,58 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.Expression
+import rba.core.ExpressionType
+import rba.core.ForAllOperator
+import rba.core.RBACorePackage
+import rba.core.SetOfOperator
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+
+class ForAllOperatorValidator extends AbstractRBAModelValidator {
+
+ private String FORALL_OPERAND_SIZE = Messages.FORALL_OPERAND_SIZE;
+
+ private String FORALL_OPERAND_TYPE = Messages.FORALL_OPERAND_TYPE;
+
+ private String FORALL_LAMBDA_TYPE = Messages.FORALL_LAMBDA_TYPE;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkForAllOperator(ForAllOperator forAllOperator) {
+ if (forAllOperator.operand.size > 1) {
+ error(FORALL_OPERAND_SIZE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ var operand = forAllOperator.operand.get(0)
+
+ if (operand.type != ExpressionType.SET_OF_CONTENT && operand.type != ExpressionType.SET_OF_AREA &&
+ operand.type != ExpressionType.SET_OF_SOUND && operand.type != ExpressionType.SET_OF_ZONE &&
+ isInvalidSetOfOperator(operand)) {
+ error(FORALL_OPERAND_TYPE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+
+ var bodytext = forAllOperator.lambda.bodyText;
+ if (bodytext.type != ExpressionType.BOOLEAN) {
+ error(FORALL_LAMBDA_TYPE, RBACorePackage.Literals.LAMBDA_EXPRESSION__BODY_TEXT)
+ return;
+ }
+
+ }
+
+ //check whether operator is SetOfOperator and operand type is not type of Area,Content,Zone,Sound or Animation
+ def isInvalidSetOfOperator(Expression operand) {
+ if (operand instanceof SetOfOperator) {
+ if (operand.type == ExpressionType.AREA || operand.type == ExpressionType.CONTENT ||
+ operand.type == ExpressionType.ZONE || operand.type == ExpressionType.SOUND) {
+ return false
+ }
+ }
+ return true
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/GetAllocatablesValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/GetAllocatablesValidator.xtend
new file mode 100644
index 0000000..a31f2f8
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/GetAllocatablesValidator.xtend
@@ -0,0 +1,34 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ExpressionType
+import rba.core.GetAllocatables
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+
+class GetAllocatablesValidator extends AbstractRBAModelValidator {
+
+ private String GETALLOCATABLES_SIZE = Messages.GETALLOCATABLES_SIZE;
+
+ private String GETALLOCATABLES_TYPE = Messages.GETALLOCATABLES_TYPE;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkGetAllocatable(GetAllocatables getAllocatable) {
+ if (getAllocatable.operand.size > 1) {
+ error(GETALLOCATABLES_SIZE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ for (operand : getAllocatable.operand) {
+ if (operand.type != ExpressionType.CONTENT && operand.type != ExpressionType.SOUND) {
+ error(GETALLOCATABLES_TYPE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/GetContentsListValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/GetContentsListValidator.xtend
new file mode 100644
index 0000000..9912496
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/GetContentsListValidator.xtend
@@ -0,0 +1,34 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ExpressionType
+import rba.core.GetContentsList
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+
+class GetContentsListValidator extends AbstractRBAModelValidator {
+
+ private String GETCONTENTSLIST_SIZE = Messages.GETCONTENTSLIST_SIZE;
+
+ private String GETCONTENTSLIST_TYPE = Messages.GETCONTENTSLIST_TYPE;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkGetContentsList(GetContentsList getContentsList) {
+ if (getContentsList.operand.size > 1) {
+ error(GETCONTENTSLIST_SIZE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ for (operand : getContentsList.operand) {
+ if (operand.type != ExpressionType.AREA && operand.type != ExpressionType.ZONE) {
+ error(GETCONTENTSLIST_TYPE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/GetPropertyValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/GetPropertyValidator.xtend
new file mode 100644
index 0000000..e21fbd7
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/GetPropertyValidator.xtend
@@ -0,0 +1,60 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.emf.ecore.EObject
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.GetProperty
+import rba.core.IntegerProperty
+import rba.core.ObjectReference
+import rba.core.RBACorePackage
+import rba.core.Scene
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+import rba.core.ExpressionType
+
+class GetPropertyValidator extends AbstractRBAModelValidator {
+
+ private String GETPROPERTY_OPERAND_SIZE_CHECK = Messages.GETPROPERTY_OPERAND_SIZE_CHECK;
+
+ private String GETPROPERTY_OPERAND_TYPE_CHECK = Messages.GETPROPERTY_OPERAND_TYPE_CHECK;
+
+ private String GETPROPERTY_OPERAND_ISGLOBALSCENE = Messages.GETPROPERTY_OPERAND_ISGLOBALSCENE;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkGetProperty(GetProperty getProperty) {
+ if (getProperty.operand.size > 1) {
+ error(GETPROPERTY_OPERAND_SIZE_CHECK, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ var operand = getProperty.operand.get(0)
+ if (operand.type != ExpressionType.PROPERTY) {
+ error(GETPROPERTY_OPERAND_TYPE_CHECK, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ if (operand instanceof ObjectReference) {
+ var parent = isParentScene(operand.refObject)
+ if (parent !== null) {
+ var scene = parent as Scene
+ if (!scene.global) {
+ error(GETPROPERTY_OPERAND_ISGLOBALSCENE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ } else {
+ }
+ }
+ }
+
+ def EObject isParentScene(EObject object) {
+ if (object instanceof Scene) {
+ return object as Scene;
+ }
+ if (object instanceof IntegerProperty) {
+ return isParentScene(object.owner)
+ }
+ return null;
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/GreaterThanOperatorValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/GreaterThanOperatorValidator.xtend
new file mode 100644
index 0000000..81adc96
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/GreaterThanOperatorValidator.xtend
@@ -0,0 +1,40 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ExpressionType
+import rba.core.GreaterThanOperator
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+
+class GreaterThanOperatorValidator extends AbstractRBAModelValidator {
+
+ private String GREATERTHAN_OPERAND_SIZE_NULL = Messages.GREATERTHAN_OPERAND_SIZE_NULL;
+
+ private String GREATERTHAN_OPERAND_SIZE = Messages.GREATERTHAN_OPERAND_SIZE;
+
+ private String GREATERTHAN_OPERAND_TYPE = Messages.GREATERTHAN_OPERAND_TYPE;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkGreaterThanOperator(GreaterThanOperator greaterThanOperator) {
+ if (greaterThanOperator.operand.size === 0) {
+ error(GREATERTHAN_OPERAND_SIZE_NULL, RBACorePackage.Literals.OPERATOR__OPERAND);
+ return;
+ }
+ if (greaterThanOperator.operand.size != 1) {
+ error(GREATERTHAN_OPERAND_SIZE, RBACorePackage.Literals.OPERATOR__OPERAND);
+ return;
+ }
+ for (operand : greaterThanOperator.operand) {
+ if (operand.type != ExpressionType.VALUE) {
+ error(GREATERTHAN_OPERAND_TYPE, RBACorePackage.Literals.OPERATOR__OPERAND);
+ return;
+ }
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/HasComeEarlierThanValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/HasComeEarlierThanValidator.xtend
new file mode 100644
index 0000000..16a8c34
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/HasComeEarlierThanValidator.xtend
@@ -0,0 +1,51 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ExpressionType
+import rba.core.HasComeEarlierThan
+import rba.core.PreviousModifier
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+
+class HasComeEarlierThanValidator extends AbstractRBAModelValidator {
+
+ private static final String TargetOperatorName = HasComeEarlierThan.simpleName
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkContentValue(HasComeEarlierThan hasComeEarlierThan) {
+ if (hasComeEarlierThan.operand.size < 2) {
+ error(String.format(Messages.OPERAND_SIZE_TWO, TargetOperatorName),
+ RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ var firstOperand = hasComeEarlierThan.operand.get(0)
+ if (firstOperand.type != ExpressionType::CONTENT && firstOperand.type != ExpressionType::SOUND) {
+ error(String.format(Messages.FIRST_OPERAND_MUST_CONTENT, TargetOperatorName),
+ RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ var argument = hasComeEarlierThan.operand.get(1)
+ if (argument.type != ExpressionType::CONTENT && argument.type != ExpressionType::SOUND) {
+ error(String.format(Messages.ARGUMENT_MUST_CONTENT, TargetOperatorName),
+ RBACorePackage.Literals.OPERATOR__OPERAND, 1)
+ return;
+ }
+ if (firstOperand instanceof PreviousModifier) {
+ error(String.format(Messages.OPERAND_CANNOT_USE_PRE, TargetOperatorName),
+ RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ if (argument instanceof PreviousModifier) {
+ error(String.format(Messages.ARGUMENT_CANNOT_USE_PRE, TargetOperatorName),
+ RBACorePackage.Literals.OPERATOR__OPERAND, 1)
+ return;
+ }
+
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/HasComeLaterThanValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/HasComeLaterThanValidator.xtend
new file mode 100644
index 0000000..3d2d449
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/HasComeLaterThanValidator.xtend
@@ -0,0 +1,51 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ExpressionType
+import rba.core.HasComeLaterThan
+import rba.core.PreviousModifier
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+
+class HasComeLaterThanValidator extends AbstractRBAModelValidator {
+
+ private static final String TargetOperatorName = HasComeLaterThan.simpleName
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkContentValue(HasComeLaterThan hasComeLaterThan) {
+ if (hasComeLaterThan.operand.size < 2) {
+ error(String.format(Messages.OPERAND_SIZE_TWO, TargetOperatorName),
+ RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ var firstOperand = hasComeLaterThan.operand.get(0)
+ if (firstOperand.type != ExpressionType::CONTENT && firstOperand.type != ExpressionType::SOUND) {
+ error(String.format(Messages.FIRST_OPERAND_MUST_CONTENT, TargetOperatorName),
+ RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ var argument = hasComeLaterThan.operand.get(1)
+ if (argument.type != ExpressionType::CONTENT && argument.type != ExpressionType::SOUND) {
+ error(String.format(Messages.ARGUMENT_MUST_CONTENT, TargetOperatorName),
+ RBACorePackage.Literals.OPERATOR__OPERAND, 1)
+ return;
+ }
+ if (firstOperand instanceof PreviousModifier) {
+ error(String.format(Messages.OPERAND_CANNOT_USE_PRE, TargetOperatorName),
+ RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ if (argument instanceof PreviousModifier) {
+ error(String.format(Messages.ARGUMENT_CANNOT_USE_PRE, TargetOperatorName),
+ RBACorePackage.Literals.OPERATOR__OPERAND, 1)
+ return;
+ }
+
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/HideLowerPriorityValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/HideLowerPriorityValidator.xtend
new file mode 100644
index 0000000..294558c
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/HideLowerPriorityValidator.xtend
@@ -0,0 +1,39 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ExpressionType
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+import rba.view.HideLowerPriority
+
+class HideLowerPriorityValidator extends AbstractRBAModelValidator {
+ private static final String OperatorName = HideLowerPriority.simpleName
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkHideLowerPriority(HideLowerPriority hideLowerPriority) {
+ if (hideLowerPriority.operand.size != 2) {
+ error(String.format(Messages.OPERAND_SIZE_TWO, OperatorName), RBACorePackage.Literals.OPERATOR__OPERAND, 0)
+ return;
+ }
+
+ var firstArgument = hideLowerPriority.operand.get(0)
+ if (firstArgument.type != ExpressionType::AREA) {
+ error(String.format(Messages.ARGUMENT_MUST_AREA, OperatorName),
+ RBACorePackage.Literals.OPERATOR__OPERAND, 0)
+ return;
+ }
+
+ var secondArgument = hideLowerPriority.operand.get(1)
+ if (secondArgument.type != ExpressionType::AREA) {
+ error(String.format(Messages.ARGUMENT_MUST_AREA, OperatorName),
+ RBACorePackage.Literals.OPERATOR__OPERAND, 1)
+ return;
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/HorizontalLayoutValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/HorizontalLayoutValidator.xtend
new file mode 100644
index 0000000..e16e33b
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/HorizontalLayoutValidator.xtend
@@ -0,0 +1,25 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+import rba.view.HorizontalLayout
+import rba.view.RBAViewPackage
+
+class HorizontalLayoutValidator extends AbstractRBAModelValidator {
+
+ private String HORIZONTAL_LAYOUT_CHECK = Messages.HORIZONTAL_LAYOUT_CHECK;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkHorizontalLayout(HorizontalLayout horizontalLayout) {
+ if (horizontalLayout.subarea.size == 0) {
+ warning(HORIZONTAL_LAYOUT_CHECK, RBAViewPackage.Literals.ALIGNED_LAYOUT__SUBAREA);
+ return;
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/IfStatementValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/IfStatementValidator.xtend
new file mode 100644
index 0000000..2eefb6b
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/IfStatementValidator.xtend
@@ -0,0 +1,44 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ExpressionType
+import rba.core.IfStatement
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+
+/**
+ * This class contains custom validation rules.
+ *
+ * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#validation
+ */
+class IfStatementValidator extends AbstractRBAModelValidator {
+
+ private String CONDITION_BOOLEAN_TYPE_CHECK = Messages.CONDITION_BOOLEAN_TYPE_CHECK;
+
+ private String CONDITION_TPYE_EQUAL_CHECK = Messages.CONDITION_TPYE_EQUAL_CHECK;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkIfStatement(IfStatement ifStatement) {
+ if (ifStatement.condition.type !== ExpressionType.BOOLEAN) {
+ error(CONDITION_BOOLEAN_TYPE_CHECK, RBACorePackage.Literals.IF_STATEMENT__CONDITION);
+ return;
+ }
+ if (!isExpressionTypeEquals(ifStatement.thenExpression.type, ifStatement.elseExpression.type)) {
+ error(CONDITION_TPYE_EQUAL_CHECK, RBACorePackage.Literals.IF_STATEMENT__ELSE_EXPRESSION);
+ return;
+ }
+ }
+
+ def boolean isExpressionTypeEquals(ExpressionType type1, ExpressionType type2) {
+ if (type1 === type2) {
+ return true;
+ }
+ return false
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/ImpliesOperatorValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/ImpliesOperatorValidator.xtend
new file mode 100644
index 0000000..c625ce2
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/ImpliesOperatorValidator.xtend
@@ -0,0 +1,35 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ExpressionType
+import rba.core.ImpliesOperator
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+
+class ImpliesOperatorValidator extends AbstractRBAModelValidator {
+
+ private String IMPLIES_OPERAND_SIZE = Messages.IMPLIES_OPERAND_SIZE;
+
+ private String IMPLIES_OPERAND_TYPE = Messages.IMPLIES_OPERAND_TYPE;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkImpliesOperator(ImpliesOperator impliesOperator) {
+ if (impliesOperator.operand.size < 2) {
+ error(IMPLIES_OPERAND_SIZE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ for (var i = 0; i < impliesOperator.operand.size; i++) {
+ var operand = impliesOperator.operand.get(i)
+ if (operand.type != ExpressionType.BOOLEAN) {
+ error(IMPLIES_OPERAND_TYPE, RBACorePackage.Literals.OPERATOR__OPERAND, i, null)
+ return;
+ }
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/IntegerPropertyValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/IntegerPropertyValidator.xtend
new file mode 100644
index 0000000..4e3fbfd
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/IntegerPropertyValidator.xtend
@@ -0,0 +1,17 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.IntegerProperty
+import rba.tool.editor.validation.AbstractRBAModelValidator
+
+class IntegerPropertyValidator extends AbstractRBAModelValidator {
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkRequiredValue(IntegerProperty property) {
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/IsActiveValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsActiveValidator.xtend
new file mode 100644
index 0000000..3d552d4
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsActiveValidator.xtend
@@ -0,0 +1,34 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ExpressionType
+import rba.core.IsActive
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+
+class IsActiveValidator extends AbstractRBAModelValidator {
+
+ private String ISACTIVE_SIZE = Messages.ISACTIVE_SIZE;
+
+ private String ISACTIVE_TYPE = Messages.ISACTIVE_TYPE;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkIsActive(IsActive isActive) {
+ if (isActive.operand.size > 1) {
+ error(ISACTIVE_SIZE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ for (operand : isActive.operand) {
+ if (operand.type != ExpressionType.CONTENT && operand.type != ExpressionType.SOUND) {
+ error(ISACTIVE_TYPE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/IsAllocatedToValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsAllocatedToValidator.xtend
new file mode 100644
index 0000000..e2d63cb
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsAllocatedToValidator.xtend
@@ -0,0 +1,48 @@
+package rba.tool.editor.validation.validators
+
+import rba.tool.editor.validation.AbstractRBAModelValidator
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.IsAllocatedTo
+import rba.tool.editor.messages.Messages
+import rba.core.RBACorePackage
+import rba.core.ExpressionType
+import org.eclipse.xtext.validation.Check
+
+class IsAllocatedToValidator extends AbstractRBAModelValidator {
+ private static final String OperatorName = IsAllocatedTo.simpleName
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkIsAllocatedTo(IsAllocatedTo isAllocatedTo) {
+ if (isAllocatedTo.operand.size < 2) {
+ error(String.format(Messages.OPERAND_SIZE_TWO, OperatorName), RBACorePackage.Literals.OPERATOR__OPERAND, 0)
+ return;
+ }
+
+ var firstOperand = isAllocatedTo.operand.get(0)
+ if (firstOperand.type != ExpressionType::CONTENT && firstOperand.type != ExpressionType::SOUND) {
+ error(String.format(Messages.FIRST_OPERAND_MUST_CONTENT, OperatorName),
+ RBACorePackage.Literals.OPERATOR__OPERAND, 0)
+ return;
+ }
+
+ var argument = isAllocatedTo.operand.get(1)
+ if (argument.type != ExpressionType::AREA && argument.type != ExpressionType::ZONE) {
+ error(String.format(Messages.ARGUMENT_MUST_ALLOCATABLE, OperatorName),
+ RBACorePackage.Literals.OPERATOR__OPERAND, 1)
+ return;
+ }
+
+ if ((firstOperand.type == ExpressionType::CONTENT && argument.type == ExpressionType::ZONE) ||
+ (firstOperand.type == ExpressionType::SOUND && argument.type == ExpressionType::AREA ) ||
+ (argument.type == ExpressionType::ZONE ) ||
+ (firstOperand.type == ExpressionType::SOUND )) {
+ error(String.format(Messages.COMBINATION_OPERAND_ARGUMENT, OperatorName),
+ RBACorePackage.Literals.OPERATOR__OPERAND, 1)
+ return;
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/IsAttenuatedValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsAttenuatedValidator.xtend
new file mode 100644
index 0000000..cbdd194
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsAttenuatedValidator.xtend
@@ -0,0 +1,34 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ExpressionType
+import rba.core.RBACorePackage
+import rba.sound.IsAttenuated
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+
+class IsAttenuatedValidator extends AbstractRBAModelValidator {
+
+ private String ISATTENUATED_SIZE = Messages.ISATTENUATED_SIZE;
+
+ private String ISATTENUATED_TYPE = Messages.ISATTENUATED_TYPE;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkIsHidden(IsAttenuated isAttenuated) {
+ if (isAttenuated.operand.size > 1) {
+ error(ISATTENUATED_SIZE, RBACorePackage.Literals.OPERATOR__OPERAND, 1)
+ return;
+ }
+ for (operand : isAttenuated.operand) {
+ if (operand.type != ExpressionType.ZONE) {
+ error(ISATTENUATED_TYPE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/IsCanceledValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsCanceledValidator.xtend
new file mode 100644
index 0000000..daf29bf
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsCanceledValidator.xtend
@@ -0,0 +1,37 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ExpressionType
+import rba.core.IsCanceled
+import rba.core.PreviousModifier
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+
+class IsCanceledValidator extends AbstractContentOperatorValidator {
+ private String ISCANCELED_OPERAND_SIZE = Messages.ISCANCELED_OPERAND_SIZE;
+
+ private String ISCANCELED_OPERAND_0_TYPE = Messages.ISCANCELED_OPERAND_0_TYPE;
+
+ private String ISCANCELED_OPERAND_0_CHECK = Messages.ISCANCELED_OPERAND_0_CHECK;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkIsCanceledOperator(IsCanceled isCanceled) {
+ if (isCanceled.operand.size > 1) {
+ error(ISCANCELED_OPERAND_SIZE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ if (isCanceled.operand.get(0).type != ExpressionType.CONTENT && isCanceled.operand.get(0).type != ExpressionType.SOUND) {
+ error(ISCANCELED_OPERAND_0_TYPE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ if (isCanceled.operand.get(0) instanceof PreviousModifier) {
+ error(ISCANCELED_OPERAND_0_CHECK, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/IsChangedDisplayValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsChangedDisplayValidator.xtend
new file mode 100644
index 0000000..55bd12e
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsChangedDisplayValidator.xtend
@@ -0,0 +1,32 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+import rba.view.IsChangedDisplay
+import rba.core.ExpressionType
+
+class IsChangedDisplayValidator extends AbstractRBAModelValidator {
+ private static final String OperatorName = IsChangedDisplay.simpleName
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkIsChangedDisplay(IsChangedDisplay isChangedDisplay) {
+ if (isChangedDisplay.operand.size > 1) {
+ error(String.format(Messages.OPERAND_SIZE_ONE, OperatorName), RBACorePackage.Literals.OPERATOR__OPERAND, 0)
+ return;
+ }
+
+ var firstOperand = isChangedDisplay.operand.get(0)
+ if (firstOperand.type != ExpressionType::AREA) {
+ error(String.format(Messages.FIRST_OPERAND_MUST_AREA, OperatorName),
+ RBACorePackage.Literals.OPERATOR__OPERAND, 0)
+ return;
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/IsChangedOutputValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsChangedOutputValidator.xtend
new file mode 100644
index 0000000..4186e33
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsChangedOutputValidator.xtend
@@ -0,0 +1,32 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ExpressionType
+import rba.core.RBACorePackage
+import rba.sound.IsChangedOutput
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+
+class IsChangedOutputValidator extends AbstractRBAModelValidator {
+ private static final String OperatorName = IsChangedOutput.simpleName
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkIsChangedOutput(IsChangedOutput isChangedOutput) {
+ if (isChangedOutput.operand.size > 1) {
+ error(String.format(Messages.OPERAND_SIZE_ONE, OperatorName), RBACorePackage.Literals.OPERATOR__OPERAND, 0)
+ return;
+ }
+
+ var firstOperand = isChangedOutput.operand.get(0)
+ if (firstOperand.type != ExpressionType::ZONE) {
+ error(String.format(Messages.FIRST_OPERAND_MUST_ZONE, OperatorName),
+ RBACorePackage.Literals.OPERATOR__OPERAND, 0)
+ return;
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/IsChangedValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsChangedValidator.xtend
new file mode 100644
index 0000000..d807fcc
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsChangedValidator.xtend
@@ -0,0 +1,31 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.IsChanged
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+import rba.core.ExpressionType
+
+class IsChangedValidator extends AbstractRBAModelValidator {
+ private static final String OperatorName = IsChanged.simpleName
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkIsChanged(IsChanged isChanged) {
+ if (isChanged.operand.size > 1) {
+ error(String.format(Messages.OPERAND_SIZE_ONE, OperatorName), RBACorePackage.Literals.OPERATOR__OPERAND, 0)
+ }
+
+ var firstOperand = isChanged.operand.get(0)
+ if (firstOperand.type != ExpressionType::AREA && firstOperand.type != ExpressionType::ZONE) {
+ error(String.format(Messages.FIRST_OPERAND_MUST_ALLOCATABLE, OperatorName),
+ RBACorePackage.Literals.OPERATOR__OPERAND, 0)
+ return;
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/IsDisappearedValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsDisappearedValidator.xtend
new file mode 100644
index 0000000..c303c04
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsDisappearedValidator.xtend
@@ -0,0 +1,37 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ExpressionType
+import rba.core.IsDisappeared
+import rba.core.PreviousModifier
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+
+class IsDisappearedValidator extends AbstractContentOperatorValidator {
+ private String ISDISAPPEARED_OPERAND_SIZE = Messages.ISDISAPPEARED_OPERAND_SIZE;
+
+ private String ISDISAPPEARED_OPERAND_0_TYPE = Messages.ISDISAPPEARED_OPERAND_0_TYPE;
+
+ private String ISDISAPPEARED_OPERAND_0_CHECK = Messages.ISDISAPPEARED_OPERAND_0_CHECK;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkIsDisappearedOperator(IsDisappeared isDisappeared) {
+ if (isDisappeared.operand.size > 1) {
+ error(ISDISAPPEARED_OPERAND_SIZE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ if (isDisappeared.operand.get(0).type != ExpressionType.CONTENT && isDisappeared.operand.get(0).type != ExpressionType.SOUND) {
+ error(ISDISAPPEARED_OPERAND_0_TYPE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ if (isDisappeared.operand.get(0) instanceof PreviousModifier) {
+ error(ISDISAPPEARED_OPERAND_0_CHECK, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/IsDisplayedOnValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsDisplayedOnValidator.xtend
new file mode 100644
index 0000000..fd46da8
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsDisplayedOnValidator.xtend
@@ -0,0 +1,39 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ExpressionType
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+import rba.view.IsDisplayedOn
+
+class IsDisplayedOnValidator extends AbstractRBAModelValidator {
+ private static final String OperatorName = IsDisplayedOn.simpleName
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkIsDisplayedOn(IsDisplayedOn isDisplayedOn) {
+ if (isDisplayedOn.operand.size < 2) {
+ error(String.format(Messages.OPERAND_SIZE_TWO, OperatorName), RBACorePackage.Literals.OPERATOR__OPERAND, 0)
+ return;
+ }
+
+ var firstOperand = isDisplayedOn.operand.get(0)
+ if (firstOperand.type != ExpressionType::CONTENT) {
+ error(String.format(Messages.FIRST_OPERAND_MUST_VIEWCONTENT, OperatorName),
+ RBACorePackage.Literals.OPERATOR__OPERAND, 0)
+ return;
+ }
+
+ var argument = isDisplayedOn.operand.get(1)
+ if (argument.type != ExpressionType::AREA) {
+ error(String.format(Messages.ARGUMENT_MUST_AREA, OperatorName),
+ RBACorePackage.Literals.OPERATOR__OPERAND, 1)
+ return;
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/IsEqualToOperatorValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsEqualToOperatorValidator.xtend
new file mode 100644
index 0000000..25549f3
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsEqualToOperatorValidator.xtend
@@ -0,0 +1,36 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ExpressionType
+import rba.core.IsEqualToOperator
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+
+class IsEqualToOperatorValidator extends AbstractRBAModelValidator {
+
+ private String ISEQUALTO_OPERAND_SIZE = Messages.ISEQUALTO_OPERAND_SIZE;
+
+ private String ISEQUALTO_OPERAND_TYPE = Messages.ISEQUALTO_OPERAND_TYPE;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkIsEqualToOperator(IsEqualToOperator isEqualToOperator) {
+ if (isEqualToOperator.operand.size < 2) {
+ error(ISEQUALTO_OPERAND_SIZE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ for (var i = 0; i < isEqualToOperator.operand.size; i++) {
+ var operand = isEqualToOperator.operand.get(i)
+
+ if (operand.type != ExpressionType.VALUE) {
+ error(ISEQUALTO_OPERAND_TYPE, RBACorePackage.Literals.OPERATOR__OPERAND, i, null)
+ return;
+ }
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/IsGreaterThanEqualOperatorValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsGreaterThanEqualOperatorValidator.xtend
new file mode 100644
index 0000000..52caef5
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsGreaterThanEqualOperatorValidator.xtend
@@ -0,0 +1,36 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ExpressionType
+import rba.core.IsGreaterThanEqualOperator
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+
+class IsGreaterThanEqualOperatorValidator extends AbstractRBAModelValidator {
+
+ private String ISGREATERTHANEQUAL_OPERAND_SIZE = Messages.ISGREATERTHANEQUAL_OPERAND_SIZE;
+
+ private String ISGREATERTHANEQUAL_OPERAND_TYPE = Messages.ISGREATERTHANEQUAL_OPERAND_TYPE;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkIsGreaterThanEqualOperator(IsGreaterThanEqualOperator isGreaterThanEqualOperator) {
+ if (isGreaterThanEqualOperator.operand.size < 2) {
+ error(ISGREATERTHANEQUAL_OPERAND_SIZE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ for (var i = 0; i < isGreaterThanEqualOperator.operand.size; i++) {
+ var operand = isGreaterThanEqualOperator.operand.get(i)
+
+ if (operand.type != ExpressionType.VALUE) {
+ error(ISGREATERTHANEQUAL_OPERAND_TYPE, RBACorePackage.Literals.OPERATOR__OPERAND, i, null)
+ return;
+ }
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/IsGreaterThanOperatorValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsGreaterThanOperatorValidator.xtend
new file mode 100644
index 0000000..e018fd0
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsGreaterThanOperatorValidator.xtend
@@ -0,0 +1,36 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ExpressionType
+import rba.core.IsGreaterThanOperator
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+
+class IsGreaterThanOperatorValidator extends AbstractRBAModelValidator {
+
+ private String ISGREATERTHAN_OPERAND_SIZE = Messages.ISGREATERTHAN_OPERAND_SIZE;
+
+ private String ISGREATERTHAN_OPERAND_TYPE = Messages.ISGREATERTHAN_OPERAND_TYPE;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkIsGreaterThanOperator(IsGreaterThanOperator isGreaterThanOperator) {
+ if (isGreaterThanOperator.operand.size < 2) {
+ error(ISGREATERTHAN_OPERAND_SIZE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ for (var i = 0; i < isGreaterThanOperator.operand.size; i++) {
+ var operand = isGreaterThanOperator.operand.get(i)
+
+ if (operand.type != ExpressionType.VALUE) {
+ error(ISGREATERTHAN_OPERAND_TYPE, RBACorePackage.Literals.OPERATOR__OPERAND, i, null)
+ return;
+ }
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/IsHiddenValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsHiddenValidator.xtend
new file mode 100644
index 0000000..979fee6
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsHiddenValidator.xtend
@@ -0,0 +1,34 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ExpressionType
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+import rba.view.IsHidden
+
+class IsHiddenValidator extends AbstractRBAModelValidator {
+
+ private String ISHIDDEN_SIZE = Messages.ISHIDDEN_SIZE;
+
+ private String ISHIDDEN_TYPE = Messages.ISHIDDEN_TYPE;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkIsHidden(IsHidden IsHidden) {
+ if (IsHidden.operand.size > 1) {
+ error(ISHIDDEN_SIZE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ for (operand : IsHidden.operand) {
+ if (operand.type != ExpressionType.AREA) {
+ error(ISHIDDEN_TYPE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/IsLowerThanEqualOperatorValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsLowerThanEqualOperatorValidator.xtend
new file mode 100644
index 0000000..efd3de4
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsLowerThanEqualOperatorValidator.xtend
@@ -0,0 +1,36 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ExpressionType
+import rba.core.IsLowerThanEqualOperator
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+
+class IsLowerThanEqualOperatorValidator extends AbstractRBAModelValidator {
+
+ private String ISLOWERTHANEQUAL_OPERAND_SIZE = Messages.ISLOWERTHANEQUAL_OPERAND_SIZE;
+
+ private String ISLOWERTHANEQUAL_OPERAND_TYPE = Messages.ISLOWERTHANEQUAL_OPERAND_TYPE;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkIsLowerThanEqualOperator(IsLowerThanEqualOperator isLowerThanEqualOperator) {
+ if (isLowerThanEqualOperator.operand.size < 2) {
+ error(ISLOWERTHANEQUAL_OPERAND_SIZE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ for (var i = 0; i < isLowerThanEqualOperator.operand.size; i++) {
+ var operand = isLowerThanEqualOperator.operand.get(i)
+
+ if (operand.type != ExpressionType.VALUE) {
+ error(ISLOWERTHANEQUAL_OPERAND_TYPE, RBACorePackage.Literals.OPERATOR__OPERAND, i, null)
+ return;
+ }
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/IsLowerThanOperatorValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsLowerThanOperatorValidator.xtend
new file mode 100644
index 0000000..af1b6f4
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsLowerThanOperatorValidator.xtend
@@ -0,0 +1,36 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ExpressionType
+import rba.core.IsLowerThanOperator
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+
+class IsLowerThanOperatorValidator extends AbstractRBAModelValidator {
+
+ private String ISLOWERTHAN_OPERAND_SIZE = Messages.ISLOWERTHAN_OPERAND_SIZE;
+
+ private String ISLOWERTHAN_OPERAND_TYPE = Messages.ISLOWERTHAN_OPERAND_TYPE;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkIsLowerThanOperator(IsLowerThanOperator isLowerThanOperator) {
+ if (isLowerThanOperator.operand.size < 2) {
+ error(ISLOWERTHAN_OPERAND_SIZE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ for (var i = 0; i < isLowerThanOperator.operand.size; i++) {
+ var operand = isLowerThanOperator.operand.get(i)
+
+ if (operand.type != ExpressionType.VALUE) {
+ error(ISLOWERTHAN_OPERAND_TYPE, RBACorePackage.Literals.OPERATOR__OPERAND, i, null)
+ return;
+ }
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/IsMutedValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsMutedValidator.xtend
new file mode 100644
index 0000000..d16b34d
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsMutedValidator.xtend
@@ -0,0 +1,34 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ExpressionType
+import rba.core.RBACorePackage
+import rba.sound.IsMuted
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+
+class IsMutedValidator extends AbstractRBAModelValidator {
+
+ private String ISMUTED_SIZE = Messages.ISMUTED_SIZE;
+
+ private String ISMUTED_TYPE = Messages.ISMUTED_TYPE;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkIsHidden(IsMuted isMuted) {
+ if (isMuted.operand.size > 1) {
+ error(ISMUTED_SIZE, RBACorePackage.Literals.OPERATOR__OPERAND, 1)
+ return;
+ }
+ for (operand : isMuted.operand) {
+ if (operand.type != ExpressionType.ZONE) {
+ error(ISMUTED_TYPE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/IsOnValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsOnValidator.xtend
new file mode 100644
index 0000000..4959161
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsOnValidator.xtend
@@ -0,0 +1,32 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ExpressionType
+import rba.core.IsOn
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+
+class IsOnValidator extends AbstractRBAModelValidator {
+
+ private String ISON_SIZE = Messages.ISON_SIZE;
+
+ private String ISON_TYPE = Messages.ISON_TYPE;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkIsOnOperator(IsOn isOn) {
+ if (isOn.operand.size > 1) {
+ error(ISON_SIZE, RBACorePackage.Literals.OPERATOR__OPERAND, 1)
+ return;
+ }
+ if (isOn.operand.get(0).type != ExpressionType.SCENE) {
+ error(ISON_TYPE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/IsOutputtedOnValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsOutputtedOnValidator.xtend
new file mode 100644
index 0000000..fd72494
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsOutputtedOnValidator.xtend
@@ -0,0 +1,39 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ExpressionType
+import rba.core.RBACorePackage
+import rba.sound.IsOutputtedOn
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+
+class IsOutputtedOnValidator extends AbstractRBAModelValidator {
+ private static final String OperatorName = IsOutputtedOn.simpleName
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkIsOutputtedOn(IsOutputtedOn isOutputtedOn) {
+ if (isOutputtedOn.operand.size < 2) {
+ error(String.format(Messages.OPERAND_SIZE_TWO, OperatorName), RBACorePackage.Literals.OPERATOR__OPERAND, 0)
+ return;
+ }
+
+ var firstOperand = isOutputtedOn.operand.get(0)
+ if (firstOperand.type != ExpressionType::SOUND) {
+ error(String.format(Messages.FIRST_OPERAND_MUST_SOUNDCONTENT, OperatorName),
+ RBACorePackage.Literals.OPERATOR__OPERAND, 0)
+ return;
+ }
+
+ var argument = isOutputtedOn.operand.get(1)
+ if (argument.type != ExpressionType::ZONE) {
+ error(String.format(Messages.ARGUMENT_MUST_ZONE, OperatorName),
+ RBACorePackage.Literals.OPERATOR__OPERAND, 1)
+ return;
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/IsOutputtedValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsOutputtedValidator.xtend
new file mode 100644
index 0000000..fc43966
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsOutputtedValidator.xtend
@@ -0,0 +1,34 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ExpressionType
+import rba.core.RBACorePackage
+import rba.sound.IsOutputted
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+
+class IsOutputtedValidator extends AbstractRBAModelValidator {
+
+ private String ISOUTPUTTED_SIZE = Messages.ISOUTPUTTED_SIZE;
+
+ private String ISOUTPUTTED_TYPE = Messages.ISOUTPUTTED_TYPE;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkIsHidden(IsOutputted isOutputted) {
+ if (isOutputted.operand.size > 1) {
+ error(ISOUTPUTTED_SIZE, RBACorePackage.Literals.OPERATOR__OPERAND, 1)
+ return;
+ }
+ for (operand : isOutputted.operand) {
+ if (operand.type != ExpressionType.ZONE) {
+ error(ISOUTPUTTED_TYPE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/IsSoundingValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsSoundingValidator.xtend
new file mode 100644
index 0000000..fe1fe4b
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsSoundingValidator.xtend
@@ -0,0 +1,34 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ExpressionType
+import rba.core.RBACorePackage
+import rba.sound.IsSounding
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+
+class IsSoundingValidator extends AbstractRBAModelValidator {
+
+ private String ISSOUNDING_SIZE = Messages.ISSOUNDING_SIZE;
+
+ private String ISSOUNDING_TYPE = Messages.ISSOUNDING_TYPE;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkIsHidden(IsSounding isSounding) {
+ if (isSounding.operand.size > 1) {
+ error(ISSOUNDING_SIZE, RBACorePackage.Literals.OPERATOR__OPERAND, 1)
+ return;
+ }
+ for (operand : isSounding.operand) {
+ if (operand.type != ExpressionType.SOUND) {
+ error(ISSOUNDING_TYPE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/IsTranslatedSoundToValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsTranslatedSoundToValidator.xtend
new file mode 100644
index 0000000..87e471a
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsTranslatedSoundToValidator.xtend
@@ -0,0 +1,39 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ExpressionType
+import rba.core.RBACorePackage
+import rba.sound.IsTranslatedSoundTo
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+
+class IsTranslatedSoundToValidator extends AbstractRBAModelValidator {
+ private static final String OperatorName = IsTranslatedSoundTo.simpleName
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkIsTranslatedSoundTo(IsTranslatedSoundTo isTranslatedSoundTo) {
+ if (isTranslatedSoundTo.operand.size < 2) {
+ error(String.format(Messages.OPERAND_SIZE_TWO, OperatorName), RBACorePackage.Literals.OPERATOR__OPERAND, 0)
+ return;
+ }
+
+ var firstOperand = isTranslatedSoundTo.operand.get(0)
+ if (firstOperand.type != ExpressionType::ZONE) {
+ error(String.format(Messages.FIRST_OPERAND_MUST_ZONE, OperatorName),
+ RBACorePackage.Literals.OPERATOR__OPERAND, 0)
+ return;
+ }
+
+ var argument = isTranslatedSoundTo.operand.get(1)
+ if (argument.type != ExpressionType::SOUND) {
+ error(String.format(Messages.ARGUMENT_MUST_SOUNDCONTENT, OperatorName),
+ RBACorePackage.Literals.OPERATOR__OPERAND, 1)
+ return;
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/IsTranslatedToValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsTranslatedToValidator.xtend
new file mode 100644
index 0000000..bd8cf33
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsTranslatedToValidator.xtend
@@ -0,0 +1,48 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ExpressionType
+import rba.core.IsTranslatedTo
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+
+class IsTranslatedToValidator extends AbstractRBAModelValidator {
+ private static final String OperatorName = IsTranslatedTo.simpleName
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkIsTranslatedTo(IsTranslatedTo isTranslatedTo) {
+ if (isTranslatedTo.operand.size < 2) {
+ error(String.format(Messages.OPERAND_SIZE_TWO, OperatorName), RBACorePackage.Literals.OPERATOR__OPERAND, 0)
+ return;
+ }
+
+ var firstOperand = isTranslatedTo.operand.get(0)
+ if (firstOperand.type != ExpressionType::AREA && firstOperand.type != ExpressionType::ZONE) {
+ error(String.format(Messages.FIRST_OPERAND_MUST_ALLOCATABLE, OperatorName),
+ RBACorePackage.Literals.OPERATOR__OPERAND, 0)
+ return;
+ }
+
+ var argument = isTranslatedTo.operand.get(1)
+ if (argument.type != ExpressionType::CONTENT && argument.type != ExpressionType::SOUND) {
+ error(String.format(Messages.ARGUMENT_MUST_CONTENT, OperatorName),
+ RBACorePackage.Literals.OPERATOR__OPERAND, 1)
+ return;
+ }
+
+ if ((firstOperand.type == ExpressionType::AREA && argument.type == ExpressionType::SOUND) ||
+ (firstOperand.type == ExpressionType::ZONE && argument.type == ExpressionType::CONTENT ) ||
+ (firstOperand.type == ExpressionType::ZONE ) ||
+ (argument.type == ExpressionType::SOUND )) {
+ error(String.format(Messages.COMBINATION_OPERAND_ARGUMENT, OperatorName),
+ RBACorePackage.Literals.OPERATOR__OPERAND, 1)
+ return;
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/IsTranslatedViewToValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsTranslatedViewToValidator.xtend
new file mode 100644
index 0000000..c010644
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsTranslatedViewToValidator.xtend
@@ -0,0 +1,39 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+import rba.view.IsTranslatedViewTo
+import rba.core.ExpressionType
+
+class IsTranslatedViewToValidator extends AbstractRBAModelValidator {
+ private static final String OperatorName = IsTranslatedViewTo.simpleName
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkIsTranslatedViewTo(IsTranslatedViewTo isTranslatedViewTo) {
+ if (isTranslatedViewTo.operand.size < 2) {
+ error(String.format(Messages.OPERAND_SIZE_TWO, OperatorName), RBACorePackage.Literals.OPERATOR__OPERAND, 0)
+ return;
+ }
+
+ var firstOperand = isTranslatedViewTo.operand.get(0)
+ if (firstOperand.type != ExpressionType::AREA) {
+ error(String.format(Messages.FIRST_OPERAND_MUST_AREA, OperatorName),
+ RBACorePackage.Literals.OPERATOR__OPERAND, 0)
+ return;
+ }
+
+ var argument = isTranslatedViewTo.operand.get(1)
+ if (argument.type != ExpressionType::CONTENT) {
+ error(String.format(Messages.ARGUMENT_MUST_VIEWCONTENT, OperatorName),
+ RBACorePackage.Literals.OPERATOR__OPERAND, 1)
+ return;
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/IsTypeOfValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsTypeOfValidator.xtend
new file mode 100644
index 0000000..c765268
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsTypeOfValidator.xtend
@@ -0,0 +1,33 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+import rba.core.IsTypeOf
+import rba.core.ExpressionType
+
+class IsTypeOfValidator extends AbstractRBAModelValidator {
+
+ private String OPERAND_SIZE_TWO = Messages.OPERAND_SIZE_TWO;
+ private String FIRST_OPERAND_MUST_FOR_ISTYPEOF = Messages.FIRST_OPERAND_MUST_FOR_ISTYPEOF;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkIsTypeOf(IsTypeOf op) {
+ if (op.operand.size < 1) {
+ error(String.format(OPERAND_SIZE_TWO, op.symbol), RBACorePackage.Literals.OPERATOR__OPERAND, 1)
+ return;
+ }
+ var operand = op.operand.get(0)
+ if (operand.type != ExpressionType.CONTENT && operand.type != ExpressionType.AREA && operand.type != ExpressionType.SOUND &&
+ operand.type != ExpressionType.ZONE) {
+ error(String.format(FIRST_OPERAND_MUST_FOR_ISTYPEOF, op.symbol), RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/IsVisibleValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsVisibleValidator.xtend
new file mode 100644
index 0000000..5d44d34
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/IsVisibleValidator.xtend
@@ -0,0 +1,34 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ExpressionType
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+import rba.view.IsVisible
+
+class IsVisibleValidator extends AbstractRBAModelValidator {
+
+ private String ISVISIBLE_SIZE = Messages.ISVISIBLE_SIZE;
+
+ private String ISVISIBLE_TYPE = Messages.ISVISIBLE_TYPE;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkIsVisible(IsVisible isVisible) {
+ if (isVisible.operand.size > 1) {
+ error(ISVISIBLE_SIZE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ for (operand : isVisible.operand) {
+ if (operand.type != ExpressionType.CONTENT) {
+ error(ISVISIBLE_TYPE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/LambdaExpressionValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/LambdaExpressionValidator.xtend
new file mode 100644
index 0000000..6daad3e
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/LambdaExpressionValidator.xtend
@@ -0,0 +1,25 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.LambdaExpression
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+
+class LambdaExpressionValidator extends AbstractRBAModelValidator {
+
+ private String LAMBDAEXPRESSION_TYPE = Messages.LAMBDAEXPRESSION_TYPE;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkLambdaExpression(LambdaExpression lambdaExpression) {
+ if (lambdaExpression.x.expressionType != lambdaExpression.context.contextType) {
+ error(LAMBDAEXPRESSION_TYPE, RBACorePackage.Literals.LAMBDA_EXPRESSION__CONTEXT)
+ return;
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/LetStatementValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/LetStatementValidator.xtend
new file mode 100644
index 0000000..83102a7
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/LetStatementValidator.xtend
@@ -0,0 +1,35 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ExpressionType
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+import rba.core.LetStatement
+
+class LetStatementValidator extends AbstractRBAModelValidator {
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkIsHidden(LetStatement op) {
+ if (op.body.type != ExpressionType::VALUE &&
+ op.body.type != ExpressionType::BOOLEAN &&
+ op.body.type != ExpressionType::AREA &&
+ op.body.type != ExpressionType::CONTENT &&
+ op.body.type != ExpressionType::SET_OF_AREA &&
+ op.body.type != ExpressionType::SET_OF_CONTENT &&
+ op.body.type != ExpressionType::SCENE &&
+ op.body.type != ExpressionType::ZONE &&
+ op.body.type != ExpressionType::SET_OF_ZONE &&
+ op.body.type != ExpressionType::SOUND &&
+ op.body.type != ExpressionType::SET_OF_SOUND &&
+ op.body.type != ExpressionType::CONTENT_STATE) {
+ error(String.format(Messages.BODY_MUST_OBJECT, "let"), RBACorePackage.Literals.LET_STATEMENT__BODY)
+ return;
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/LowerThanOperatorValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/LowerThanOperatorValidator.xtend
new file mode 100644
index 0000000..1fde1f0
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/LowerThanOperatorValidator.xtend
@@ -0,0 +1,40 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ExpressionType
+import rba.core.LowerThanOperator
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+
+class LowerThanOperatorValidator extends AbstractRBAModelValidator {
+
+ private String LOWERTHAN_OPERAND_SIZE_NULL = Messages.LOWERTHAN_OPERAND_SIZE_NULL;
+
+ private String LOWERTHAN_OPERAND_SIZE = Messages.LOWERTHAN_OPERAND_SIZE;
+
+ private String LOWERTHAN_OPERAND_TYPE = Messages.LOWERTHAN_OPERAND_TYPE;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkLowerThanOperator(LowerThanOperator lowerThanOperator) {
+ if (lowerThanOperator.operand.size == 0) {
+ error(LOWERTHAN_OPERAND_SIZE_NULL, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ if (lowerThanOperator.operand.size != 1) {
+ error(LOWERTHAN_OPERAND_SIZE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ for (operand : lowerThanOperator.operand) {
+ if (operand.type != ExpressionType.VALUE) {
+ error(LOWERTHAN_OPERAND_TYPE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/MaxOperatorValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/MaxOperatorValidator.xtend
new file mode 100644
index 0000000..4927d71
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/MaxOperatorValidator.xtend
@@ -0,0 +1,33 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+import rba.core.ExpressionType
+import rba.core.MaxOperator
+
+class MaxOperatorValidator extends AbstractRBAModelValidator {
+
+ private String MAX_OP_OPERAND_SIZE = Messages.MAX_OP_OPERAND_SIZE;
+ private String MAX_OP_OPERAND_TYPE = Messages.MAX_OP_OPERAND_SIZE;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkMaxOperator(MaxOperator op) {
+ if (op.operand.size == 0) {
+ error(String.format(MAX_OP_OPERAND_SIZE, op.symbol), RBACorePackage.Literals.OPERATOR__OPERAND, 1)
+ return;
+ }
+ var operand = op.operand.get(0)
+ if (operand.type != ExpressionType.SET_OF_CONTENT && operand.type != ExpressionType.SET_OF_AREA && operand.type != ExpressionType.SET_OF_SOUND &&
+ operand.type != ExpressionType.SET_OF_ZONE) {
+ error(String.format(MAX_OP_OPERAND_TYPE, op.symbol), RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/MinOperatorValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/MinOperatorValidator.xtend
new file mode 100644
index 0000000..81417fb
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/MinOperatorValidator.xtend
@@ -0,0 +1,33 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+import rba.core.ExpressionType
+import rba.core.MinOperator
+
+class MinOperatorValidator extends AbstractRBAModelValidator {
+
+ private String MIN_OP_OPERAND_SIZE = Messages.MIN_OP_OPERAND_SIZE;
+ private String MIN_OP_OPERAND_TYPE = Messages.MIN_OP_OPERAND_TYPE;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkMinOperator(MinOperator op) {
+ if (op.operand.size == 0) {
+ error(String.format(MIN_OP_OPERAND_SIZE, op.symbol), RBACorePackage.Literals.OPERATOR__OPERAND, 1)
+ return;
+ }
+ var operand = op.operand.get(0)
+ if (operand.type != ExpressionType.SET_OF_CONTENT && operand.type != ExpressionType.SET_OF_AREA && operand.type != ExpressionType.SET_OF_SOUND &&
+ operand.type != ExpressionType.SET_OF_ZONE) {
+ error(String.format(MIN_OP_OPERAND_TYPE, op.symbol), RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/MuchGreaterThanOperatorValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/MuchGreaterThanOperatorValidator.xtend
new file mode 100644
index 0000000..13de568
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/MuchGreaterThanOperatorValidator.xtend
@@ -0,0 +1,40 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ExpressionType
+import rba.core.MuchGreaterThanOperator
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+
+class MuchGreaterThanOperatorValidator extends AbstractRBAModelValidator {
+
+ private String MUCHGREATERTHAN_OPERAND_SIZE_NULL = Messages.MUCHGREATERTHAN_OPERAND_SIZE_NULL;
+
+ private String MUCHGREATERTHAN_OPERAND_SIZE = Messages.MUCHGREATERTHAN_OPERAND_SIZE;
+
+ private String MUCHGREATERTHAN_OPERAND_TYPE = Messages.MUCHGREATERTHAN_OPERAND_TYPE;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkMuchGreaterThanOperator(MuchGreaterThanOperator muchGreaterThanOperator) {
+ if (muchGreaterThanOperator.operand.size == 0) {
+ error(MUCHGREATERTHAN_OPERAND_SIZE_NULL, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ if (muchGreaterThanOperator.operand.size != 1) {
+ error(MUCHGREATERTHAN_OPERAND_SIZE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ for (operand : muchGreaterThanOperator.operand) {
+ if (operand.type != ExpressionType.VALUE) {
+ error(MUCHGREATERTHAN_OPERAND_TYPE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/MuteLowerPriorityValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/MuteLowerPriorityValidator.xtend
new file mode 100644
index 0000000..fe4dc34
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/MuteLowerPriorityValidator.xtend
@@ -0,0 +1,39 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ExpressionType
+import rba.core.RBACorePackage
+import rba.sound.MuteLowerPriority
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+
+class MuteLowerPriorityValidator extends AbstractRBAModelValidator {
+ private static final String OperatorName = MuteLowerPriority.simpleName
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkMuteLowerPriority(MuteLowerPriority muteLowerPriority) {
+ if (muteLowerPriority.operand.size != 2) {
+ error(String.format(Messages.OPERAND_SIZE_TWO, OperatorName), RBACorePackage.Literals.OPERATOR__OPERAND, 0)
+ return;
+ }
+
+ var firstArgument = muteLowerPriority.operand.get(0)
+ if (firstArgument.type != ExpressionType::ZONE) {
+ error(String.format(Messages.ARGUMENT_MUST_ZONE, OperatorName),
+ RBACorePackage.Literals.OPERATOR__OPERAND, 0)
+ return;
+ }
+
+ var secondArgument = muteLowerPriority.operand.get(1)
+ if (secondArgument.type != ExpressionType::ZONE) {
+ error(String.format(Messages.ARGUMENT_MUST_ZONE, OperatorName),
+ RBACorePackage.Literals.OPERATOR__OPERAND, 1)
+ return;
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/NamedElementValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/NamedElementValidator.xtend
new file mode 100644
index 0000000..19b0e8e
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/NamedElementValidator.xtend
@@ -0,0 +1,60 @@
+package rba.tool.editor.validation.validators
+
+import com.google.common.collect.Sets
+import com.google.inject.Inject
+import java.util.Set
+import org.eclipse.emf.ecore.EObject
+import org.eclipse.emf.ecore.resource.Resource
+import org.eclipse.xtext.util.CancelIndicator
+import org.eclipse.xtext.validation.CancelableDiagnostician
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.NamedElement
+import rba.tool.editor.util.RBAModelEditorToolUtil
+import rba.tool.editor.validation.AbstractRBAModelValidator
+import rba.tool.editor.validation.UniqueNameValidationHelper
+
+class NamedElementValidator extends AbstractRBAModelValidator {
+
+ @Inject private UniqueNameValidationHelper helper;
+
+ override register(EValidatorRegistrar registrar) {
+ // library validator is not registered for a specific language
+ }
+
+ @Check(NORMAL)
+ def public void checkUniqueNamesInResourceOf(NamedElement namedElement) {
+ val context = getContext();
+ val resource = namedElement.eResource();
+ if (resource === null) {
+ return;
+ }
+
+ if (context !== null) {
+ var Object contextValue;
+ if (context.containsKey(resource)) {
+ contextValue = context.get(resource);
+ }
+ if (!(contextValue instanceof Set<?>)) {
+ context.put(resource, Sets.newHashSet());
+ }
+ if (RBAModelEditorToolUtil.isValidated((contextValue), this)) {
+ return; // resource was already validated
+ }
+
+ (contextValue as Set).add(this);
+ doCheckUniqueNames(resource, context.get(CancelableDiagnostician.CANCEL_INDICATOR) as CancelIndicator);
+ return;
+ }
+ doCheckUniqueNames(resource, null);
+ }
+
+ def public void doCheckUniqueNames(Resource resource, CancelIndicator cancelIndicator) {
+ helper.checkUniqueNames(resource, cancelIndicator, this);
+ }
+
+ override protected checkIsFromCurrentlyCheckedResource(EObject object) {
+ // do nothing
+ }
+
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/NotOperatorValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/NotOperatorValidator.xtend
new file mode 100644
index 0000000..1881a22
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/NotOperatorValidator.xtend
@@ -0,0 +1,34 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ExpressionType
+import rba.core.NotOperator
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+
+class NotOperatorValidator extends AbstractRBAModelValidator {
+
+ private String NOT_OPERAND_SIZE = Messages.NOT_OPERAND_SIZE;
+
+ private String NOT_OPERAND_TYPE = Messages.NOT_OPERAND_TYPE;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkNotOperator(NotOperator notOperator) {
+ if (notOperator.operand.size > 1) {
+ error(NOT_OPERAND_SIZE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ for (operand : notOperator.operand) {
+ if (operand.type != ExpressionType.BOOLEAN) {
+ error(NOT_OPERAND_TYPE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/ObjectCompareNotValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/ObjectCompareNotValidator.xtend
new file mode 100644
index 0000000..7700e3a
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/ObjectCompareNotValidator.xtend
@@ -0,0 +1,15 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import rba.core.ObjectCompareNot
+
+class ObjectCompareNotValidator extends ObjectCompareValidator {
+ def override protected getOperatorName() {
+ return ObjectCompareNot.simpleName;
+ }
+
+ @Check(NORMAL)
+ def check(ObjectCompareNot operator) {
+ doCheck(operator.operand);
+ }
+} \ No newline at end of file
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/ObjectCompareValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/ObjectCompareValidator.xtend
new file mode 100644
index 0000000..ba897e1
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/ObjectCompareValidator.xtend
@@ -0,0 +1,71 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ExpressionType
+import rba.core.ObjectCompare
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+import static rba.tool.editor.validation.validators.ValidatorUtils.*;
+import rba.core.Expression
+import java.util.List
+
+class ObjectCompareValidator extends AbstractRBAModelValidator {
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ def protected getOperatorName() {
+ return ObjectCompare.simpleName;
+ }
+
+ @Check(NORMAL)
+ def checkObjectCompare(ObjectCompare objectCompare) {
+ doCheck(objectCompare.operand);
+ }
+
+ /** Check points.
+ * * operand size is 2.
+ * * type of operands are AREA/CONTENT/ZONE/SOUND.
+ */
+ def protected doCheck(List<Expression> operands) {
+ if (!operandSizeMustBeTwo(operands, getOperatorName, [ msg | error(msg, RBACorePackage.Literals.OPERATOR__OPERAND, 0)])) {
+ return;
+ }
+
+ val first = operands.get(0)
+ switch (first.type) {
+ case ExpressionType.VALUE: {
+ val message = String.format(Messages.FIRST_OPERAND_MUST_BE_OBJECT, getOperatorName);
+ error(message, RBACorePackage.Literals.OPERATOR__OPERAND, 0, null)
+ return;
+ }
+ case AREA,
+ case CONTENT,
+ case CONTENT_STATE,
+ case ZONE,
+ case SOUND: {
+ }
+ default: {
+ val message = String.format(Messages.OPERANDS_MUST_BE_OBJECT, getOperatorName);
+ error(message, RBACorePackage.Literals.OPERATOR__OPERAND, 0, null)
+ return;
+ }
+ }
+
+ for (var i = 1; i < operands.size; i++) {
+ var operand = operands.get(i)
+ if (operand.type !== first.type && ObjectsMustBeAreaOrContent(operand.type, first.type)) {
+ val message = String.format(Messages.OPERANDS_MUST_BE_OBJECT, getOperatorName);
+ error(message, RBACorePackage.Literals.OPERATOR__OPERAND, i, null)
+ return;
+ }
+ }
+ }
+
+ def private boolean ObjectsMustBeAreaOrContent(ExpressionType type1, ExpressionType type2) {
+ return true
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/OffSceneValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/OffSceneValidator.xtend
new file mode 100644
index 0000000..f6ecce1
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/OffSceneValidator.xtend
@@ -0,0 +1,33 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ExpressionType
+import rba.core.OffScene
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+
+class OffSceneValidator extends AbstractRBAModelValidator {
+
+ private String OFFSCENE_OPERAND_SIZE_CHECK = Messages.OFFSCENE_OPERAND_SIZE_CHECK;
+
+ private String OFFSCENE_OPERAND_TYPE_CHECK = Messages.OFFSCENE_OPERAND_TYPE_CHECK;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkOffScene(OffScene offScene) {
+ if (offScene.operand.size > 1) {
+ error(OFFSCENE_OPERAND_SIZE_CHECK, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ var operand = offScene.operand.get(0)
+ if (operand.type != ExpressionType.SCENE) {
+ error(OFFSCENE_OPERAND_TYPE_CHECK, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/OffsetValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/OffsetValidator.xtend
new file mode 100644
index 0000000..57ea7b4
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/OffsetValidator.xtend
@@ -0,0 +1,64 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+import rba.view.Area
+import rba.view.Offset
+import rba.view.PositionContainer
+import rba.view.RBAViewPackage
+import rba.view.SizeIdentifier
+import rba.view.SizeReference
+
+class OffsetValidator extends AbstractRBAModelValidator {
+
+ private String OFFSET_SIZE_DUPLICATE = Messages.OFFSET_SIZE_DUPLICATE;
+
+ private String OFFSET_SIZE_AREA_REF = Messages.OFFSET_SIZE_AREA_REF;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkOffset(Offset offset) {
+ var parent = offset.eContainer as PositionContainer
+ for (Offset target : parent.offset) {
+ if (target != offset) {
+ if (target.size.size == offset.size.size) {
+ warning(OFFSET_SIZE_DUPLICATE, RBAViewPackage.Literals.OFFSET__SIZE);
+ return;
+ }
+ }
+ }
+
+ if (!hasSameSizeInArea(parent, offset)) {
+ warning(OFFSET_SIZE_AREA_REF, RBAViewPackage.Literals.OFFSET__SIZE);
+ return;
+ }
+ }
+
+ def hasSameSizeInArea(PositionContainer parent, Offset offset) {
+ var chk = false;
+
+ if (!(parent.area instanceof Area)) {
+ return false
+ }
+
+ var area = parent.area as Area
+ for (SizeIdentifier sizeId : area.size) {
+ if (sizeId instanceof SizeReference) {
+ var sizeRef = sizeId as SizeReference
+ if (sizeRef.size == offset.size.size) {
+ chk = true
+ }
+ }
+ }
+ if (chk == true) {
+ return true;
+ }
+
+ return false;
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/OnSceneValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/OnSceneValidator.xtend
new file mode 100644
index 0000000..d2b3792
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/OnSceneValidator.xtend
@@ -0,0 +1,33 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ExpressionType
+import rba.core.OnScene
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+
+class OnSceneValidator extends AbstractRBAModelValidator {
+
+ private String ONSCENE_OPERAND_SIZE_CHECK = Messages.ONSCENE_OPERAND_SIZE_CHECK;
+
+ private String ONSCENE_OPERAND_TYPE_CHECK = Messages.ONSCENE_OPERAND_TYPE_CHECK;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkOnScene(OnScene onScene) {
+ if (onScene.operand.size > 1) {
+ error(ONSCENE_OPERAND_SIZE_CHECK, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ var operand = onScene.operand.get(0)
+ if (operand.type != ExpressionType.SCENE) {
+ error(ONSCENE_OPERAND_TYPE_CHECK, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/OrOperatorValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/OrOperatorValidator.xtend
new file mode 100644
index 0000000..3afcd05
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/OrOperatorValidator.xtend
@@ -0,0 +1,35 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ExpressionType
+import rba.core.OrOperator
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+
+class OrOperatorValidator extends AbstractRBAModelValidator {
+
+ private String OR_OPERAND_SIZE = Messages.OR_OPERAND_SIZE;
+
+ private String OR_OPERAND_TYPE = Messages.OR_OPERAND_TYPE;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkOrOperator(OrOperator orOperator) {
+ if (orOperator.operand.size < 2) {
+ error(OR_OPERAND_SIZE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ for (var i = 0; i < orOperator.operand.size; i++) {
+ var operand = orOperator.operand.get(i)
+ if (operand.type != ExpressionType.BOOLEAN) {
+ error(OR_OPERAND_TYPE, RBACorePackage.Literals.OPERATOR__OPERAND, i, null)
+ return;
+ }
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/OutputtingSoundValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/OutputtingSoundValidator.xtend
new file mode 100644
index 0000000..7a5f7fa
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/OutputtingSoundValidator.xtend
@@ -0,0 +1,34 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ExpressionType
+import rba.core.RBACorePackage
+import rba.sound.OutputtingSound
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+
+class OutputtingSoundValidator extends AbstractRBAModelValidator {
+
+ private String OUTPUTTINGSOUND_SIZE = Messages.OUTPUTTINGSOUND_SIZE;
+
+ private String OUTPUTTINGSOUND_TYPE = Messages.OUTPUTTINGSOUND_TYPE;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkIsHidden(OutputtingSound outputtingSound) {
+ if (outputtingSound.operand.size > 1) {
+ error(OUTPUTTINGSOUND_SIZE, RBACorePackage.Literals.OPERATOR__OPERAND, 1)
+ return;
+ }
+ for (operand : outputtingSound.operand) {
+ if (operand.type != ExpressionType.ZONE) {
+ error(OUTPUTTINGSOUND_TYPE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/PackageValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/PackageValidator.xtend
new file mode 100644
index 0000000..39f2084
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/PackageValidator.xtend
@@ -0,0 +1,31 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.Package
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+import rba.core.Project
+
+class PackageValidator extends AbstractRBAModelValidator {
+
+ private String PACKAGE_CHILD_EXISTENCE_CHECK = Messages.PACKAGE_CHILD_EXISTENCE_CHECK;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkPackage(Package pack) {
+ if(pack instanceof Project)
+ {
+ return;
+ }
+ if (pack.packagableelement.size == 0) {
+ warning(String.format(PACKAGE_CHILD_EXISTENCE_CHECK, pack.name),
+ RBACorePackage.Literals.PACKAGE__PACKAGABLEELEMENT);
+ return;
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/PlusOperatorValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/PlusOperatorValidator.xtend
new file mode 100644
index 0000000..b98e8f5
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/PlusOperatorValidator.xtend
@@ -0,0 +1,47 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ComparisonOperator
+import rba.core.ExpressionType
+import rba.core.PlusOperator
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+
+class PlusOperatorValidator extends AbstractRBAModelValidator {
+
+ private String PLUS_OPERAND_SIZE = Messages.PLUS_OPERAND_SIZE;
+
+ private String PLUS_OPERAND_TYPE = Messages.PLUS_OPERAND_TYPE;
+
+ private String PLUS_OPERAND_TYPE_NOT_OPERATOR = Messages.PLUS_OPERAND_TYPE_NOT_OPERATOR;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(FAST)
+ def checkPlusOperatorFast(PlusOperator plusOperator) {
+ if (plusOperator.operand.size < 2) {
+ error(PLUS_OPERAND_SIZE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ }
+
+ @Check(NORMAL)
+ def checkPlusOperatorNormal(PlusOperator plusOperator) {
+ for (var i = 0; i < plusOperator.operand.size; i++) {
+ var operand = plusOperator.operand.get(i)
+ if (operand instanceof ComparisonOperator) {
+ error(PLUS_OPERAND_TYPE_NOT_OPERATOR, RBACorePackage.Literals.OPERATOR__OPERAND, i, null)
+ return;
+ }
+
+ if (operand.type != ExpressionType.VALUE) {
+ error(PLUS_OPERAND_TYPE, RBACorePackage.Literals.OPERATOR__OPERAND, i, null)
+ return;
+ }
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/PositionContainerValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/PositionContainerValidator.xtend
new file mode 100644
index 0000000..da27f6c
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/PositionContainerValidator.xtend
@@ -0,0 +1,74 @@
+package rba.tool.editor.validation.validators
+
+import java.util.HashSet
+import java.util.Set
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+import rba.view.Area
+import rba.view.Display
+import rba.view.PositionContainer
+import rba.view.RBAViewPackage
+import rba.view.Size
+import rba.view.SizeIdentifier
+import rba.view.SizeReference
+import rba.view.impl.DisplayImpl
+
+class PositionContainerValidator extends AbstractRBAModelValidator {
+
+ private String POSITION_CONTAINER_COORDINATE_CHECK = Messages.POSITION_CONTAINER_COORDINATE_CHECK;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkPositionContainer(PositionContainer positionContainer) {
+ var display = getDisplay(positionContainer)
+ var displaySizeIden = display.size as SizeIdentifier
+ var displaySize = getSize(displaySizeIden)
+ var displayWidth = displaySize.width
+ var displayHeight = displaySize.height
+
+ var Set<Area> areaList = new HashSet
+ if (positionContainer.area !== null) {
+ areaList.add(positionContainer.area);
+ }
+ for (Area area : areaList) {
+ for (sizeIdentifier : area.size) {
+ var areaSize = getSize(sizeIdentifier)
+ var areaWidth = areaSize.width
+ var areaHeight = areaSize.height
+
+ // warning displays total of position container start point and size exceeds display's size
+ if (positionContainer.x + areaWidth > displayWidth || positionContainer.y + areaHeight > displayHeight) {
+ warning(POSITION_CONTAINER_COORDINATE_CHECK, RBAViewPackage.Literals.POSITION_CONTAINER__X)
+ return;
+ }
+ }
+
+ }
+ }
+
+//get Display from position container
+ def Display getDisplay(PositionContainer positionContainer) {
+ var parent = positionContainer.eContainer
+ while (parent !== null) {
+ if (parent instanceof DisplayImpl) {
+ return parent as Display;
+ }
+ parent = parent.eContainer
+ }
+ }
+
+ // get Size from SizeIdentifier
+ def Size getSize(SizeIdentifier size) {
+ if (size instanceof Size) {
+ return size as Size
+ } else if (size instanceof SizeReference) {
+ var sizeRef = size as SizeReference
+ return sizeRef.size as Size
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/ProjectValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/ProjectValidator.xtend
new file mode 100644
index 0000000..ffe51f6
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/ProjectValidator.xtend
@@ -0,0 +1,34 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.core.Project
+
+class ProjectValidator extends AbstractContentValidator {
+
+ public static String PROJECT_SIZE_CHECK = Messages.PROJECT_SIZE_CHECK;
+ public static String PROJECT_NAME_CHECK = Messages.PROJECT_NAME_CHECK;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkProject(Project project) {
+
+ val allProjects =project.eResource.resourceSet.resources.map(r|r.allContents.toIterable.filter(Project)).flatten;
+ val definedPrjCnts = allProjects.size;
+ if(definedPrjCnts != 1) {
+ error(PROJECT_SIZE_CHECK, RBACorePackage.Literals.NAMED_ELEMENT__NAME);
+ }
+
+ if(project.getDummyName != null){
+ error(PROJECT_NAME_CHECK, RBACorePackage.Literals.NAMED_ELEMENT__NAME);
+ }
+
+ return true;
+ }
+
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/SceneValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/SceneValidator.xtend
new file mode 100644
index 0000000..f6646e5
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/SceneValidator.xtend
@@ -0,0 +1,40 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.RBACorePackage
+import rba.core.Scene
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+
+class SceneValidator extends AbstractRBAModelValidator {
+
+ private String SCENE_GLOBAL = Messages.SCENE_GLOBAL;
+ private String SCENE_PROPERTY_NEGATIVE = Messages.SCENE_PROPERTY_NEGATIVE;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkSceneProperty(Scene scene) {
+
+ if (scene.properties.size > 0 && scene.global == false) {
+ error(SCENE_GLOBAL, RBACorePackage.Literals.SCENE__PROPERTIES);
+ return;
+ }
+ val properties = scene.properties
+ for (var int i = 0; i < properties.size; i++) {
+ var property = properties.get(i)
+ if (property instanceof rba.core.impl.IntegerPropertyImpl) {
+ var value = property.getValue()
+ if (value instanceof rba.core.impl.IntegerValueImpl) {
+ if (value.getValue() < 0) {
+ error(SCENE_PROPERTY_NEGATIVE, RBACorePackage.Literals.SCENE__PROPERTIES, i);
+ return;
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/SelectOperatorValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/SelectOperatorValidator.xtend
new file mode 100644
index 0000000..8bd676e
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/SelectOperatorValidator.xtend
@@ -0,0 +1,33 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+import rba.core.SelectOperator
+import rba.core.ExpressionType
+
+class SelectOperatorValidator extends AbstractRBAModelValidator {
+
+ private String SELECT_OPERAND_SIZE = Messages.SELECT_OPERAND_SIZE;
+ private String SELECT_OPERAND_TYPE = Messages.SELECT_OPERAND_TYPE;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkSelectOperator(SelectOperator op) {
+ if (op.operand.size == 0) {
+ error(String.format(SELECT_OPERAND_SIZE, op.symbol), RBACorePackage.Literals.OPERATOR__OPERAND, 1)
+ return;
+ }
+ var operand = op.operand.get(0)
+ if (operand.type != ExpressionType.SET_OF_CONTENT && operand.type != ExpressionType.SET_OF_AREA && operand.type != ExpressionType.SET_OF_SOUND &&
+ operand.type != ExpressionType.SET_OF_ZONE) {
+ error(String.format(SELECT_OPERAND_TYPE, op.symbol), RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/SetOfOperatorValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/SetOfOperatorValidator.xtend
new file mode 100644
index 0000000..4cede2c
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/SetOfOperatorValidator.xtend
@@ -0,0 +1,106 @@
+package rba.tool.editor.validation.validators
+
+import java.util.HashSet
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ExpressionType
+import rba.core.ObjectReference
+import rba.core.RBACorePackage
+import rba.core.RuleObject
+import rba.core.SetOfOperator
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+import rba.core.PreviousModifier
+
+class SetOfOperatorValidator extends AbstractRBAModelValidator {
+
+ private String SET_OF_OPERAND_TYPE = Messages.SET_OF_OPERAND_TYPE;
+
+ private String SET_OF_OPERAND_DUPLICATE = Messages.SET_OF_OPERAND_DUPLICATE;
+
+ private String OPERANDS_CANNOT_USE_PRE = Messages.OPERANDS_CANNOT_USE_PRE;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkIsEqualToOperator(SetOfOperator setOfOperator) {
+ val notNullOp = setOfOperator.operand.filter(o|o.type != ExpressionType.NULL)
+ if (notNullOp.size == 0) {
+ return;
+ }
+ val firstType = notNullOp.get(0).type
+
+ var hash = new HashSet<RuleObject>
+ for (operand : setOfOperator.operand) {
+
+ if (operand instanceof PreviousModifier) {
+ error(String.format(OPERANDS_CANNOT_USE_PRE, "SetOf"), RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+
+ var opType = operand.type
+
+ switch (firstType) {
+ case ExpressionType.AREA,
+ case ExpressionType.SET_OF_AREA: {
+ if (!(opType === ExpressionType.AREA || opType === ExpressionType.SET_OF_AREA || opType === ExpressionType.NULL)
+ ) {
+ error(SET_OF_OPERAND_TYPE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ }
+ case ExpressionType.CONTENT,
+ case ExpressionType.SET_OF_CONTENT: {
+ if (!(opType === ExpressionType.CONTENT || opType === ExpressionType.SET_OF_CONTENT
+ || opType === ExpressionType.NULL
+ )) {
+ error(SET_OF_OPERAND_TYPE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ }
+ case ExpressionType.ZONE,
+ case ExpressionType.SET_OF_ZONE: {
+ if (!(opType === ExpressionType.ZONE || opType === ExpressionType.SET_OF_ZONE)) {
+ error(SET_OF_OPERAND_TYPE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ }
+ case ExpressionType.SOUND,
+ case ExpressionType.SET_OF_SOUND: {
+ if (!(opType === ExpressionType.SOUND || opType === ExpressionType.SET_OF_SOUND)) {
+ error(SET_OF_OPERAND_TYPE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ }
+ case ExpressionType.SCENE: {
+ if (!(opType === ExpressionType.SCENE)) {
+ error(SET_OF_OPERAND_TYPE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ }
+ case ExpressionType.PROPERTY: {
+ if (!(opType === ExpressionType.PROPERTY)) {
+ error(SET_OF_OPERAND_TYPE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ }
+ default: {
+ error(SET_OF_OPERAND_TYPE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ }
+
+ if (operand instanceof ObjectReference) {
+ var refObj = (operand as ObjectReference).refObject
+ if (hash.contains(refObj)) {
+ error(SET_OF_OPERAND_DUPLICATE, RBACorePackage.Literals.OPERATOR__OPERAND);
+ return;
+ } else {
+ hash.add(refObj)
+ }
+ }
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/SetPropertyValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/SetPropertyValidator.xtend
new file mode 100644
index 0000000..15abc53
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/SetPropertyValidator.xtend
@@ -0,0 +1,83 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.emf.ecore.EObject
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.ExpressionType
+import rba.core.IntegerProperty
+import rba.core.ObjectReference
+import rba.core.RBACorePackage
+import rba.core.Scene
+import rba.core.SetProperty
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+import rba.core.IntegerValue
+import org.eclipse.xtext.EcoreUtil2
+import rba.core.PreviousModifier
+
+class SetPropertyValidator extends AbstractRBAModelValidator {
+
+ private String SETPROPERTY_OPERAND_SIZE_CHECK = Messages.SETPROPERTY_OPERAND_SIZE_CHECK;
+
+ private String SETPROPERTY_OPERAND_0_TYPE_CHECK = Messages.SETPROPERTY_OPERAND_0_TYPE_CHECK;
+
+ private String SETPROPERTY_OPERAND_ISGLOBALSCENE = Messages.SETPROPERTY_OPERAND_ISGLOBALSCENE;
+
+ private String SETPROPERTY_OPERAND_1_TYPE_CHECK = Messages.SETPROPERTY_OPERAND_1_TYPE_CHECK;
+
+ private String SETPROPERTY_PROPERTY_NEGATIVE = Messages.SETPROPERTY_PROPERTY_NEGATIVE
+
+ private String OPERAND_CANNOT_USE_PRE = Messages.OPERAND_CANNOT_USE_PRE;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkSetProperty(SetProperty setProperty) {
+ if (setProperty.operand.size < 2) {
+ error(SETPROPERTY_OPERAND_SIZE_CHECK, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ var operand0 = setProperty.operand.get(0)
+ if (operand0.type != ExpressionType.PROPERTY) {
+ error(SETPROPERTY_OPERAND_0_TYPE_CHECK, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ if (operand0 instanceof PreviousModifier || EcoreUtil2.getAllContentsOfType(operand0, PreviousModifier).size != 0) {
+ error(String.format(OPERAND_CANNOT_USE_PRE, setProperty.symbol), RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ if (operand0 instanceof ObjectReference) {
+ var parent = isParentScene(operand0.refObject)
+ if (parent !== null) {
+ var scene = parent as Scene
+ if (!scene.global) {
+ error(SETPROPERTY_OPERAND_ISGLOBALSCENE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ }
+ }
+ var operand1 = setProperty.operand.get(1)
+ if (!(operand1 instanceof IntegerValue)) {
+ error(SETPROPERTY_OPERAND_1_TYPE_CHECK, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ if (operand1 instanceof IntegerValue) {
+ if(operand1.getValue() < 0) {
+ error(SETPROPERTY_PROPERTY_NEGATIVE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ }
+ }
+
+ def EObject isParentScene(EObject object) {
+ if (object instanceof Scene) {
+ return object as Scene;
+ }
+ if (object instanceof IntegerProperty) {
+ return isParentScene(object.owner)
+ }
+ return null;
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/SizeOperatorValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/SizeOperatorValidator.xtend
new file mode 100644
index 0000000..c1c1f6c
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/SizeOperatorValidator.xtend
@@ -0,0 +1,37 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+import rba.core.ExpressionType
+import rba.core.IfStatement
+import org.eclipse.xtext.EcoreUtil2
+import rba.core.SizeOperator
+
+class SizeOperatorValidator extends AbstractRBAModelValidator {
+
+ private String OPERAND_SIZE_ONE = Messages.OPERAND_SIZE_ONE;
+ private String SIZE_OPERAND_TYPE = Messages.SIZE_OPERAND_TYPE;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkSizeOperator(SizeOperator op) {
+ if (op.operand.size > 1) {
+ error(OPERAND_SIZE_ONE, RBACorePackage.Literals.OPERATOR__OPERAND, 1)
+ return;
+ }
+ var operand = op.operand.get(0)
+ if ((operand instanceof IfStatement) ||
+ (EcoreUtil2.getAllContentsOfType(operand, IfStatement).size != 0) ||
+ operand.type != ExpressionType.SET_OF_CONTENT && operand.type != ExpressionType.SET_OF_AREA && operand.type != ExpressionType.SET_OF_SOUND &&
+ operand.type != ExpressionType.SET_OF_ZONE) {
+ error(String.format(SIZE_OPERAND_TYPE, op.symbol), RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/SizeValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/SizeValidator.xtend
new file mode 100644
index 0000000..203c086
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/SizeValidator.xtend
@@ -0,0 +1,28 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+import rba.view.RBAViewPackage
+
+class SizeValidator extends AbstractRBAModelValidator {
+
+ private String SIZE_NEGATIVE = Messages.SIZE_NEGATIVE;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkSize(rba.view.Size size) {
+ if (size.getWidth() < 0) {
+ error(SIZE_NEGATIVE, RBAViewPackage.Literals.SIZE__WIDTH);
+ return;
+ }
+ if (size.getHeight() < 0) {
+ error(SIZE_NEGATIVE, RBAViewPackage.Literals.SIZE__HEIGHT);
+ return;
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/SoundContentSetValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/SoundContentSetValidator.xtend
new file mode 100644
index 0000000..b12cd3c
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/SoundContentSetValidator.xtend
@@ -0,0 +1,70 @@
+package rba.tool.editor.validation.validators
+
+import java.util.HashSet
+import org.eclipse.xtext.validation.Check
+import rba.core.AbstractAllocatable
+import rba.core.AbstractContent
+import rba.core.RBACorePackage
+import rba.sound.SoundContent
+import rba.sound.SoundContentSet
+import rba.sound.Zone
+import rba.sound.ZoneSet
+import rba.tool.editor.messages.Messages
+
+class SoundContentSetValidator extends ContentSetValidator {
+
+ private String SOUNDCONTENTSET_TARGET_SIZE = Messages.SOUNDCONTENTSET_TARGET_SIZE;
+
+ private String SOUNDCONTENTSET_TARGET_INVALID_TYPE = Messages.SOUNDCONTENTSET_TARGET_INVALID_TYPE;
+
+ private String SOUNDCONTENTSET_TARGET_INCLUDE_SELF = Messages.SOUNDCONTENTSET_TARGET_INCLUDE_SELF;
+
+ private String SOUNDCONTENTSET_TARGET_DUPLICATE = Messages.SOUNDCONTENTSET_TARGET_DUPLICATE;
+
+ private String SOUNDCONTENTSET_ALLOCATABLE_INVALID_TYPE = Messages.SOUNDCONTENTSET_ALLOCATABLE_INVALID_TYPE;
+
+ private String SOUNDCONTENTSET_ALLOCATABLE_DUPLICATE = Messages.SOUNDCONTENTSET_ALLOCATABLE_DUPLICATE;
+
+ @Check(NORMAL)
+ def checkContent(SoundContentSet soundContentSet) {
+ if (soundContentSet.target.size === 0) {
+ warning(String.format(SOUNDCONTENTSET_TARGET_SIZE, soundContentSet.name), RBACorePackage.Literals.CONTENT_SET__TARGET);
+ }
+
+ if (soundContentSet.target.contains(soundContentSet)) {
+ error(String.format(SOUNDCONTENTSET_TARGET_INCLUDE_SELF, soundContentSet.name), RBACorePackage.Literals.CONTENT_SET__TARGET,
+ soundContentSet.target.indexOf(soundContentSet));
+ return;
+ }
+
+ var hash = new HashSet<AbstractContent>
+ for (var index = 0; index < soundContentSet.target.size; index.operator_plusPlus()) {
+ val AbstractContent abstractContent = soundContentSet.target.get(index);
+ if (!(abstractContent instanceof SoundContent || abstractContent instanceof SoundContentSet)) {
+ error(String.format(SOUNDCONTENTSET_TARGET_INVALID_TYPE, soundContentSet.name), RBACorePackage.Literals.CONTENT_SET__TARGET, index);
+ return;
+ }
+ if (hash.contains(abstractContent)) {
+ error(String.format(SOUNDCONTENTSET_TARGET_DUPLICATE, soundContentSet.name), RBACorePackage.Literals.CONTENT_SET__TARGET, index);
+ return;
+ } else {
+ hash.add(abstractContent)
+ }
+ }
+
+ var allocatableSet = new HashSet<AbstractAllocatable>
+ for (var index = 0; index < soundContentSet.allocatable.size; index.operator_plusPlus()) {
+ val AbstractAllocatable abstractAllocatable = soundContentSet.allocatable.get(index);
+ if (!(abstractAllocatable instanceof Zone || abstractAllocatable instanceof ZoneSet)) {
+ error(String.format(SOUNDCONTENTSET_ALLOCATABLE_INVALID_TYPE, soundContentSet.name), RBACorePackage.Literals.ABSTRACT_CONTENT__ALLOCATABLE, index);
+ return;
+ }
+ if (allocatableSet.contains(abstractAllocatable)) {
+ error(String.format(SOUNDCONTENTSET_ALLOCATABLE_DUPLICATE, soundContentSet.name), RBACorePackage.Literals.ABSTRACT_CONTENT__ALLOCATABLE, index);
+ return;
+ } else {
+ allocatableSet.add(abstractAllocatable)
+ }
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/SoundContentValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/SoundContentValidator.xtend
new file mode 100644
index 0000000..68f5d35
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/SoundContentValidator.xtend
@@ -0,0 +1,86 @@
+package rba.tool.editor.validation.validators
+
+import java.util.HashSet
+import java.util.function.Consumer
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.AbstractAllocatable
+import rba.core.RBACorePackage
+import rba.sound.SoundContent
+import rba.sound.Zone
+import rba.sound.ZoneSet
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.rbaEditorModel.CTag
+import rba.sound.RBASoundPackage
+
+class SoundContentValidator extends AbstractContentValidator {
+
+ private String SOUND_ALLOCATABLE_INVALID_TYPE = Messages.SOUND_ALLOCATABLE_INVALID_TYPE;
+
+ private String SOUND_ALLOCATABLE_DUPLICATE = Messages.SOUND_ALLOCATABLE_DUPLICATE;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ private Consumer<String> errorToName = [msg|error(msg, RBACorePackage.Literals.NAMED_ELEMENT__NAME, 0)];
+
+ @Check(NORMAL)
+ def checkSOUND(SoundContent soundContent) {
+ var hash = new HashSet<AbstractAllocatable>
+ for (var index = 0; index < soundContent.allocatable.size; index.operator_plusPlus()) {
+ val AbstractAllocatable abstractAllocatable = soundContent.allocatable.get(index);
+ if(!(abstractAllocatable instanceof Zone || abstractAllocatable instanceof ZoneSet)) {
+ error(String.format(SOUND_ALLOCATABLE_INVALID_TYPE, soundContent.name), RBACorePackage.Literals.ABSTRACT_CONTENT__ALLOCATABLE, index);
+ return;
+ }
+ if(hash.contains(abstractAllocatable)) {
+ error(String.format(SOUND_ALLOCATABLE_DUPLICATE, soundContent.name), RBACorePackage.Literals.ABSTRACT_CONTENT__ALLOCATABLE, index);
+ return;
+ } else {
+ hash.add(abstractAllocatable)
+ }
+ }
+
+// for (var index = 0; index < soundContent.tags.size; index.operator_plusPlus()) {
+// val Tag tag = soundContent.tags.get(index);
+// if (!tag.stereotype.targetModelName.equals(SoundContent.simpleName)) {
+// error(String.format(TARGET_MODEL_NAME_MISMATCH, SoundContent.simpleName, tag.stereotype.targetModelName), RBACorePackage.Literals.TAG__STEREOTYPE);
+// return;
+// }
+// }
+ }
+
+ @Check(NORMAL)
+ def check0RequiredFields(SoundContent soundContent) {
+// println(this.class.simpleName)
+ val tags = soundContent.tags;
+
+ if(tags.isNullOrEmpty || !tags.filter(CTag).isEmpty) {
+ if(!doRequiredFieldsCheck(soundContent)) return;
+ }
+ }
+
+ def protected doRequiredFieldsCheck(SoundContent soundContent) {
+ var passed = false;
+ passed = ValidatorUtils.mustHaveLeastOneState(soundContent, errorToName);
+ if(!passed) {
+ return false;
+ }
+ passed = false;
+ for (var index = 0; index < soundContent.contentGroup.size; index.operator_plusPlus()) {
+ if(!soundContent.contentGroup.get(index).allocatable.empty) {
+ passed = true
+ }
+ }
+ if(!passed) {
+ passed = ValidatorUtils.mustHaveLeastOneAllocatable(soundContent, errorToName);
+ if(!passed) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/StateValueValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/StateValueValidator.xtend
new file mode 100644
index 0000000..598f1c9
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/StateValueValidator.xtend
@@ -0,0 +1,28 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.RBACorePackage
+import rba.core.StateValue
+import rba.tool.editor.validation.AbstractRBAModelValidator
+
+import static rba.tool.editor.validation.validators.ValidatorUtils.*
+
+class StateValueValidator extends AbstractRBAModelValidator {
+
+ private static final String TargetOperatorName = StateValue.simpleName;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkIsActive(StateValue operator) {
+ val passed = operandSizeMustBeOne(operator.operand, TargetOperatorName, [ msg | error(msg, RBACorePackage.Literals.OPERATOR__OPERAND, 0)])
+ if (!passed) {
+ return;
+ }
+ val firstOperand = operator.operand.get(0);
+ firstOperandMustBeContent(firstOperand, TargetOperatorName, [ msg | error(msg, RBACorePackage.Literals.OPERATOR__OPERAND, 0)]);
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/ThatOfOperatorValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/ThatOfOperatorValidator.xtend
new file mode 100644
index 0000000..e6092c4
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/ThatOfOperatorValidator.xtend
@@ -0,0 +1,69 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.emf.ecore.EObject
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.Allocatable
+import rba.core.ContentState
+import rba.core.ExpressionType
+import rba.core.ObjectReference
+import rba.core.RBACorePackage
+import rba.core.ThatOfOperator
+import rba.core.impl.OperatorImpl
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+
+class ThatOfOperatorValidator extends AbstractRBAModelValidator {
+
+ private String THATOF_OPERAND_SIZE = Messages.THATOF_OPERAND_SIZE;
+
+ private String THATOF_OPERAND_OBJECTREFERENCE = Messages.THATOF_OPERAND_OBJECTREFERENCE;
+
+ private String THATOF_OPERAND_OBJECTREFERENCE_EQUAL = Messages.THATOF_OPERAND_OBJECTREFERENCE_EQUAL;
+
+ private String THATOF_OPERAND_EXPRESSIONTYPE = Messages.THATOF_OPERAND_EXPRESSIONTYPE;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkThatOfOperator(ThatOfOperator thatOfOperator) {
+ if (thatOfOperator.operand.size != 1) {
+ error(THATOF_OPERAND_SIZE, RBACorePackage.Literals.OPERATOR__OPERAND);
+ return;
+ }
+ for (operand : thatOfOperator.operand) {
+ if (operand.type != ExpressionType.AREA && operand.type != ExpressionType.CONTENT_STATE && operand.type != ExpressionType.ZONE) {
+ error(THATOF_OPERAND_EXPRESSIONTYPE, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ }
+ var thatOfoperand = thatOfOperator.operand.get(0)
+ if (thatOfoperand instanceof ObjectReference) {
+ var objRef = thatOfoperand as ObjectReference
+ if (objRef.refObject.name !== null) {
+ var parent = getParent(thatOfOperator)
+ if ((parent instanceof ContentState && objRef.refObject instanceof ContentState) || (parent instanceof Allocatable && objRef.refObject instanceof Allocatable)) {
+ } else {
+ error(THATOF_OPERAND_OBJECTREFERENCE_EQUAL, RBACorePackage.Literals.OPERATOR__OPERAND)
+ return;
+ }
+ } else {
+ error(THATOF_OPERAND_OBJECTREFERENCE, RBACorePackage.Literals.OPERATOR__OPERAND);
+ return;
+ }
+ } else {
+ error(THATOF_OPERAND_OBJECTREFERENCE, RBACorePackage.Literals.OPERATOR__OPERAND);
+ return;
+ }
+ }
+
+ def EObject getParent(ThatOfOperator thatOfOperator) {
+ var parent = thatOfOperator.eContainer
+ while (parent instanceof OperatorImpl) {
+ parent = parent.eContainer
+ }
+ return parent;
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/ValidatorUtils.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/ValidatorUtils.xtend
new file mode 100644
index 0000000..2416be7
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/ValidatorUtils.xtend
@@ -0,0 +1,109 @@
+package rba.tool.editor.validation.validators
+
+import java.util.List
+import java.util.function.Consumer
+import rba.core.Expression
+import rba.core.ExpressionType
+import rba.tool.editor.messages.Messages
+import rba.core.Allocatable
+import rba.core.RBACorePackage
+import rba.core.Content
+import rba.view.RBAViewPackage
+import rba.view.Area
+import rba.view.ViewContent
+
+
+class ValidatorUtils {
+
+ def public static boolean isContent(Expression operand) {
+ return (operand.type != ExpressionType.CONTENT && operand.type != ExpressionType.SOUND);
+ }
+ def private static String getModelType(Object obj) {
+ return obj.class.simpleName.replaceAll("Impl", "");
+ }
+
+ /** @return true: Check passed. false: Error occurs. */
+ def public static boolean mustHaveVisibility(Allocatable model, Consumer<String> handling) {
+ if (!model.eIsSet(RBACorePackage.eINSTANCE.allocatable_Visibility)) {
+ handling.accept(String.format(Messages.VISIBILITY_IS_REQUIRED, getModelType(model), model.name));
+ return false;
+ }
+ return true;
+ }
+
+ /** @return true: Check passed. false: Error occurs. */
+ def public static boolean mustHaveZorder(Area model, Consumer<String> handling) {
+ if (!model.eIsSet(RBAViewPackage.eINSTANCE.area_Zorder)) {
+ handling.accept(String.format(Messages.ZORDER_IS_REQUIRED, getModelType(model), model.name));
+ return false;
+ }
+ return true;
+ }
+
+ /** @return true: Check passed. false: Error occurs. */
+ def public static boolean mustHaveLeastOneSize(Area model, Consumer<String> handling) {
+ if (model.size.empty) {
+ handling.accept(String.format(Messages.HAS_AT_LEAST_ONE_SIZE, getModelType(model), model.name));
+ return false;
+ }
+ return true;
+ }
+
+ /** @return true: Check passed. false: Error occurs. */
+ def public static boolean mustHaveLeastOneSize(ViewContent model, Consumer<String> handling) {
+ if (model.size.empty) {
+ handling.accept(String.format(Messages.HAS_AT_LEAST_ONE_SIZE, getModelType(model), model.name));
+ return false;
+ }
+ return true;
+ }
+
+ /** @return true: Check passed. false: Error occurs. */
+ def public static boolean mustHaveLeastOneState(Content model, Consumer<String> handling) {
+ if (model.states.empty) {
+ handling.accept(String.format(Messages.HAS_AT_LEAST_ONE_STATE, getModelType(model), model.name));
+ return false;
+ }
+ return true;
+ }
+
+ /** @return true: Check passed. false: Error occurs. */
+ def public static boolean mustHaveLeastOneAllocatable(Content model, Consumer<String> handling) {
+ if (model.allocatable.empty) {
+ handling.accept(String.format(Messages.ALLOCATABLE_SIZE, getModelType(model), model.name));
+ return false;
+ }
+ return true;
+ }
+
+ /** @return true: Check passed. false: Error occurs. */
+ def public static boolean operandSizeMustBeOne(List<Expression> operands, String operatorName,
+ Consumer<String> handling) {
+ if (operands.size != 1) {
+ handling.accept(String.format(Messages.OPERAND_SIZE_ONE, operatorName));
+ return false;
+ }
+ return true;
+ }
+
+ /** @return true: Check passed. false: Find an error. */
+ def public static boolean operandSizeMustBeTwo(List<Expression> operands, String operatorName,
+ Consumer<String> handling) {
+ if (operands.size != 2) {
+ handling.accept(String.format(Messages.OPERAND_SIZE_TWO, operatorName));
+ return false;
+ }
+ return true;
+ }
+
+ /** @return true: Check passed. false: Error occurs. */
+ def public static boolean firstOperandMustBeContent(Expression firstOperand, String operatorName,
+ Consumer<String> handling) {
+ if (isContent(firstOperand)) {
+ handling.accept(String.format(Messages.FIRST_OPERAND_MUST_CONTENT, operatorName));
+ return false;
+ }
+ return true;
+ }
+
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/VerticalLayoutValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/VerticalLayoutValidator.xtend
new file mode 100644
index 0000000..47efaf2
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/VerticalLayoutValidator.xtend
@@ -0,0 +1,25 @@
+package rba.tool.editor.validation.validators
+
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.validation.AbstractRBAModelValidator
+import rba.view.RBAViewPackage
+import rba.view.VerticalLayout
+
+class VerticalLayoutValidator extends AbstractRBAModelValidator {
+
+ private String VERTICAL_LAYOUT_CHECK = Messages.VERTICAL_LAYOUT_CHECK;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ @Check(NORMAL)
+ def checkVerticalLayout(VerticalLayout verticalLayout) {
+ if (verticalLayout.subarea.size == 0) {
+ warning(VERTICAL_LAYOUT_CHECK, RBAViewPackage.Literals.ALIGNED_LAYOUT__SUBAREA);
+ return;
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/ViewContentSetValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/ViewContentSetValidator.xtend
new file mode 100644
index 0000000..6130d75
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/ViewContentSetValidator.xtend
@@ -0,0 +1,70 @@
+package rba.tool.editor.validation.validators
+
+import java.util.HashSet
+import org.eclipse.xtext.validation.Check
+import rba.core.AbstractAllocatable
+import rba.core.AbstractContent
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.view.Area
+import rba.view.AreaSet
+import rba.view.ViewContent
+import rba.view.ViewContentSet
+
+class ViewContentSetValidator extends ContentSetValidator {
+
+ private String VIEWCONTENTSET_TARGET_SIZE = Messages.VIEWCONTENTSET_TARGET_SIZE;
+
+ private String VIEWCONTENTSET_TARGET_INVALID_TYPE = Messages.VIEWCONTENTSET_TARGET_INVALID_TYPE;
+
+ private String VIEWCONTENTSET_TARGET_INCLUDE_SELF = Messages.VIEWCONTENTSET_TARGET_INCLUDE_SELF;
+
+ private String VIEWCONTENTSET_TARGET_DUPLICATE = Messages.VIEWCONTENTSET_TARGET_DUPLICATE;
+
+ private String VIEWCONTENTSET_ALLOCATABLE_INVALID_TYPE = Messages.VIEWCONTENTSET_ALLOCATABLE_INVALID_TYPE;
+
+ private String VIEWCONTENTSET_ALLOCATABLE_DUPLICATE = Messages.VIEWCONTENTSET_ALLOCATABLE_DUPLICATE;
+
+ @Check(NORMAL)
+ def checkContent(ViewContentSet viewContentSet) {
+ if (viewContentSet.target.size === 0) {
+ warning(String.format(VIEWCONTENTSET_TARGET_SIZE, viewContentSet.name), RBACorePackage.Literals.CONTENT_SET__TARGET);
+ }
+
+ if (viewContentSet.target.contains(viewContentSet)) {
+ error(String.format(VIEWCONTENTSET_TARGET_INCLUDE_SELF, viewContentSet.name), RBACorePackage.Literals.CONTENT_SET__TARGET, viewContentSet.target.indexOf(
+ viewContentSet));
+ return;
+ }
+
+ var hash = new HashSet<AbstractContent>
+ for (var index = 0; index < viewContentSet.target.size; index.operator_plusPlus()) {
+ val AbstractContent abstractContent = viewContentSet.target.get(index);
+ if (!(abstractContent instanceof ViewContent || abstractContent instanceof ViewContentSet)) {
+ error(String.format(VIEWCONTENTSET_TARGET_INVALID_TYPE, viewContentSet.name), RBACorePackage.Literals.CONTENT_SET__TARGET, index);
+ return;
+ }
+ if (hash.contains(abstractContent)) {
+ error(String.format(VIEWCONTENTSET_TARGET_DUPLICATE, viewContentSet.name), RBACorePackage.Literals.CONTENT_SET__TARGET, index);
+ return;
+ } else {
+ hash.add(abstractContent)
+ }
+ }
+
+ var allocatableSet = new HashSet<AbstractAllocatable>
+ for (var index = 0; index < viewContentSet.allocatable.size; index.operator_plusPlus()) {
+ val AbstractAllocatable abstractAllocatable = viewContentSet.allocatable.get(index);
+ if (!(abstractAllocatable instanceof Area || abstractAllocatable instanceof AreaSet)) {
+ error(String.format(VIEWCONTENTSET_ALLOCATABLE_INVALID_TYPE, viewContentSet.name), RBACorePackage.Literals.ABSTRACT_CONTENT__ALLOCATABLE, index);
+ return;
+ }
+ if (allocatableSet.contains(abstractAllocatable)) {
+ error(String.format(VIEWCONTENTSET_ALLOCATABLE_DUPLICATE, viewContentSet.name), RBACorePackage.Literals.ABSTRACT_CONTENT__ALLOCATABLE, index);
+ return;
+ } else {
+ allocatableSet.add(abstractAllocatable)
+ }
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/ViewContentValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/ViewContentValidator.xtend
new file mode 100644
index 0000000..ae4dde2
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/ViewContentValidator.xtend
@@ -0,0 +1,91 @@
+package rba.tool.editor.validation.validators
+
+import java.util.HashSet
+import java.util.function.Consumer
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.AbstractAllocatable
+import rba.core.RBACorePackage
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.rbaEditorModel.CTag
+import rba.view.Area
+import rba.view.AreaSet
+import rba.view.ViewContent
+
+class ViewContentValidator extends AbstractContentValidator {
+
+ private String CONTENT_ALLOCATABLE_INVALID_TYPE = Messages.CONTENT_ALLOCATABLE_INVALID_TYPE;
+
+ private String CONTENT_ALLOCATABLE_DUPLICATE = Messages.CONTENT_ALLOCATABLE_DUPLICATE;
+
+ public static String CONTENT_DISPLAY_SIZE_CHECK = Messages.CONTENT_DISPLAY_SIZE_CHECK;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ private Consumer<String> errorToName = [msg|error(msg, RBACorePackage.Literals.NAMED_ELEMENT__NAME, 0)];
+
+ @Check(NORMAL)
+ def checkContent(ViewContent viewContent) {
+ var hash = new HashSet<AbstractAllocatable>
+ for (var index = 0; index < viewContent.allocatable.size; index.operator_plusPlus()) {
+ val AbstractAllocatable abstractAllocatable = viewContent.allocatable.get(index);
+ if(!(abstractAllocatable instanceof Area || abstractAllocatable instanceof AreaSet)) {
+ error(String.format(CONTENT_ALLOCATABLE_INVALID_TYPE, viewContent.name), RBACorePackage.Literals.ABSTRACT_CONTENT__ALLOCATABLE, index);
+ return;
+ }
+ if(hash.contains(abstractAllocatable)) {
+ error(String.format(CONTENT_ALLOCATABLE_DUPLICATE, viewContent.name), RBACorePackage.Literals.ABSTRACT_CONTENT__ALLOCATABLE, index);
+ return;
+ } else {
+ hash.add(abstractAllocatable)
+ }
+ }
+
+// for (var index = 0; index < viewContent.tags.size; index.operator_plusPlus()) {
+// val Tag tag = viewContent.tags.get(index);
+// if (!tag.stereotype.targetModelName.equals(ViewContent.simpleName)) {
+// error(String.format(TARGET_MODEL_NAME_MISMATCH, ViewContent.simpleName, tag.stereotype.targetModelName), RBACorePackage.Literals.TAG__STEREOTYPE);
+// return;
+// }
+// }
+ }
+
+ @Check(NORMAL)
+ def check0RequiredFields(ViewContent viewContent) {
+// println(this.class.simpleName)
+ val tags = viewContent.tags;
+
+ if(tags.isNullOrEmpty || !tags.filter(CTag).isEmpty) {
+ if(!doRequiredFieldsCheck(viewContent)) return;
+ }
+ }
+
+ def protected doRequiredFieldsCheck(ViewContent viewContent) {
+ var passed = false;
+ passed = ValidatorUtils.mustHaveLeastOneState(viewContent, errorToName);
+ if(!passed) {
+ return false;
+ }
+ passed = ValidatorUtils.mustHaveLeastOneSize(viewContent, errorToName);
+ if(!passed) {
+ return false;
+ }
+ passed = false;
+ for (var index = 0; index < viewContent.contentGroup.size; index.operator_plusPlus()) {
+ if(!viewContent.contentGroup.get(index).allocatable.empty) {
+ passed = true
+ }
+ }
+ if(!passed) {
+ passed = ValidatorUtils.mustHaveLeastOneAllocatable(viewContent, errorToName);
+ if(!passed) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/ZoneSetValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/ZoneSetValidator.xtend
new file mode 100644
index 0000000..0e0ce9f
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/ZoneSetValidator.xtend
@@ -0,0 +1,47 @@
+package rba.tool.editor.validation.validators
+
+import java.util.HashSet
+import org.eclipse.xtext.validation.Check
+import rba.core.AbstractAllocatable
+import rba.core.RBACorePackage
+import rba.sound.Zone
+import rba.sound.ZoneSet
+import rba.tool.editor.messages.Messages
+
+class ZoneSetValidator extends AllocatableSetValidator {
+
+ private String ZONESET_TARGET_SIZE = Messages.ZONESET_TARGET_SIZE;
+
+ private String ZONESET_TARGET_INVALID_TYPE = Messages.ZONESET_TARGET_INVALID_TYPE;
+
+ private String ZONESET_TARGET_INCLUDE_SELF = Messages.ZONESET_TARGET_INCLUDE_SELF;
+
+ private String ZONESET_TARGET_DUPLICATE = Messages.ZONESET_TARGET_DUPLICATE;
+
+ @Check(NORMAL)
+ def checkContent(ZoneSet zoneSet) {
+ if (zoneSet.target.size === 0) {
+ warning(String.format(ZONESET_TARGET_SIZE, zoneSet.name), RBACorePackage.Literals.ALLOCATABLE_SET__TARGET);
+ }
+
+ if (zoneSet.target.contains(zoneSet)) {
+ error(String.format(ZONESET_TARGET_INCLUDE_SELF, zoneSet.name), RBACorePackage.Literals.ALLOCATABLE_SET__TARGET, zoneSet.target.indexOf(zoneSet));
+ return;
+ }
+
+ var hash = new HashSet<AbstractAllocatable>
+ for (var index = 0; index < zoneSet.target.size; index.operator_plusPlus()) {
+ val AbstractAllocatable abstractAllocatable = zoneSet.target.get(index);
+ if (!(abstractAllocatable instanceof Zone || abstractAllocatable instanceof ZoneSet)) {
+ error(String.format(ZONESET_TARGET_INVALID_TYPE, zoneSet.name), RBACorePackage.Literals.ALLOCATABLE_SET__TARGET, index);
+ return;
+ }
+ if (hash.contains(abstractAllocatable)) {
+ error(String.format(ZONESET_TARGET_DUPLICATE, zoneSet.name), RBACorePackage.Literals.ALLOCATABLE_SET__TARGET, index);
+ return;
+ } else {
+ hash.add(abstractAllocatable)
+ }
+ }
+ }
+}
diff --git a/rba.tool.editor/src/rba/tool/editor/validation/validators/ZoneValidator.xtend b/rba.tool.editor/src/rba/tool/editor/validation/validators/ZoneValidator.xtend
new file mode 100644
index 0000000..36a0f80
--- /dev/null
+++ b/rba.tool.editor/src/rba/tool/editor/validation/validators/ZoneValidator.xtend
@@ -0,0 +1,69 @@
+package rba.tool.editor.validation.validators
+
+import java.util.function.Consumer
+import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.EValidatorRegistrar
+import rba.core.RBACorePackage
+import rba.sound.RBASoundPackage
+import rba.sound.Zone
+import rba.tool.editor.messages.Messages
+import rba.tool.editor.rbaEditorModel.CTag
+import rba.tool.editor.validation.AbstractRBAModelValidator
+
+class ZoneValidator extends AbstractRBAModelValidator {
+ private String TARGET_MODEL_NAME_MISMATCH = Messages.TARGET_MODEL_NAME_MISMATCH;
+ private String ZONE_VISIBILITY_NEGATIVE = Messages.ZONE_VISIBILITY_NEGATIVE;
+ private String ZONE_ATTENUATE_NEGATIVE = Messages.ZONE_ATTENUATE_NEGATIVE;
+
+ override register(EValidatorRegistrar registrar) {
+ // not needed for classes used as ComposedCheck
+ }
+
+ private Consumer<String> errorToName = [msg|error(msg, RBACorePackage.Literals.NAMED_ELEMENT__NAME, 0)];
+
+ @Check(NORMAL)
+ def checkZone(Zone zone) {
+ var visibility = zone.getVisibility()
+ if (visibility instanceof rba.core.impl.IntegerValueImpl) {
+ if (visibility.getValue() < 0) {
+ error(ZONE_VISIBILITY_NEGATIVE, RBACorePackage.Literals.ALLOCATABLE__VISIBILITY);
+ return;
+ }
+ }
+ var attenuate = zone.getAttenuate();
+ if (attenuate instanceof rba.core.impl.IntegerValueImpl) {
+ if (attenuate.getValue() < 0) {
+ error(ZONE_ATTENUATE_NEGATIVE, RBASoundPackage.Literals.ZONE__ATTENUATE);
+ return;
+ }
+ }
+
+// for (var index = 0; index < zone.tags.size; index.operator_plusPlus()) {
+// val Tag tag = zone.tags.get(index);
+// if (!tag.stereotype.targetModelName.equals(Zone.simpleName)) {
+// error(String.format(TARGET_MODEL_NAME_MISMATCH, Zone.simpleName, tag.stereotype.targetModelName), RBACorePackage.Literals.TAG__STEREOTYPE);
+// return;
+// }
+// }
+ }
+
+ @Check(NORMAL)
+ def check0RequiredFields(Zone zone) {
+// println(this.class.simpleName)
+ val tags = zone.tags;
+
+ if(tags.isNullOrEmpty || !tags.filter(CTag).isEmpty) {
+ if(!doRequiredFieldsCheck(zone)) return;
+ }
+ }
+
+ def protected doRequiredFieldsCheck(Zone zone) {
+ var passed = ValidatorUtils.mustHaveVisibility(zone, errorToName)
+ if(!passed) {
+ return false;
+ }
+
+ return true;
+ }
+
+}
diff --git a/rba.tool.editor/xtend-gen/rba/tool/editor/.gitignore b/rba.tool.editor/xtend-gen/rba/tool/editor/.gitignore
new file mode 100644
index 0000000..b644488
--- /dev/null
+++ b/rba.tool.editor/xtend-gen/rba/tool/editor/.gitignore
@@ -0,0 +1,10 @@
+/.RBAModelRuntimeModule.java._trace
+/.RBAModelStandaloneSetup.java._trace
+/.RBAModelRuntimeModule.xtendbin
+/.RBAModelStandaloneSetup.xtendbin
+/RBAModelRuntimeModule.java
+/RBAModelStandaloneSetup.java
+/.RBATemplateModelRuntimeModule.java._trace
+/.RBATemplateModelStandaloneSetup.java._trace
+/RBATemplateModelRuntimeModule.java
+/RBATemplateModelStandaloneSetup.java
diff --git a/rba.tool.editor/xtend-gen/rba/tool/editor/formatting2/.gitignore b/rba.tool.editor/xtend-gen/rba/tool/editor/formatting2/.gitignore
new file mode 100644
index 0000000..53e0cb1
--- /dev/null
+++ b/rba.tool.editor/xtend-gen/rba/tool/editor/formatting2/.gitignore
@@ -0,0 +1,5 @@
+/.RBAModelFormatter.java._trace
+/.RBAModelFormatter.xtendbin
+/RBAModelFormatter.java
+/.RBATemplateModelFormatter.java._trace
+/RBATemplateModelFormatter.java
diff --git a/rba.tool.editor/xtend-gen/rba/tool/editor/generator/.gitignore b/rba.tool.editor/xtend-gen/rba/tool/editor/generator/.gitignore
new file mode 100644
index 0000000..727b0d6
--- /dev/null
+++ b/rba.tool.editor/xtend-gen/rba/tool/editor/generator/.gitignore
@@ -0,0 +1,11 @@
+/.RBAModelGenerator.java._trace
+/.RBAModelGenerator.xtendbin
+/RBAModelGenerator.java
+/.RBAModelGenerator2.java._trace
+/.SortCalcCodeGenerator.java._trace
+/.SortValue.java._trace
+/.RBAModelGeneratorDelegate.java._trace
+/RBAModelGeneratorDelegate.java
+/.RBAModelGeneratorExtensions.java._trace
+/.RBAModelGeneratorExtensions.xtendbin
+/RBAModelGeneratorExtensions.java \ No newline at end of file
diff --git a/rba.tool.editor/xtend-gen/rba/tool/editor/generator/java/.gitignore b/rba.tool.editor/xtend-gen/rba/tool/editor/generator/java/.gitignore
new file mode 100644
index 0000000..1dd8780
--- /dev/null
+++ b/rba.tool.editor/xtend-gen/rba/tool/editor/generator/java/.gitignore
@@ -0,0 +1,7 @@
+/.IRBAModelJavaGenerator.java._trace
+/.RBAModelJavaGeneratorImpl.java._trace
+/.RBAModelZ3GeneratorImpl.java._trace
+/.IJavaGenerator.java._trace
+/.JavaGeneratorImpl.java._trace
+/IJavaGenerator.java
+/JavaGeneratorImpl.java
diff --git a/rba.tool.editor/xtend-gen/rba/tool/editor/generator/json/.gitignore b/rba.tool.editor/xtend-gen/rba/tool/editor/generator/json/.gitignore
new file mode 100644
index 0000000..f2aa176
--- /dev/null
+++ b/rba.tool.editor/xtend-gen/rba/tool/editor/generator/json/.gitignore
@@ -0,0 +1,7 @@
+/.IJSONGenerator.java._trace
+/.JSONGeneratorImpl.java._trace
+/.AbstractJSONGenerator.java._trace
+/AbstractJSONGenerator.java
+/IJSONGenerator.java
+/.JSONGeneratorOutputConfiguration.java._trace
+/JSONGeneratorOutputConfiguration.java
diff --git a/rba.tool.editor/xtend-gen/rba/tool/editor/generator/rtmodel/.gitignore b/rba.tool.editor/xtend-gen/rba/tool/editor/generator/rtmodel/.gitignore
new file mode 100644
index 0000000..df9e58f
--- /dev/null
+++ b/rba.tool.editor/xtend-gen/rba/tool/editor/generator/rtmodel/.gitignore
@@ -0,0 +1,6 @@
+/.IRTModelGenerator.java._trace
+/.AbstractRTModelGenerator.java._trace
+/.AbstractRTModelUpdater.java._trace
+/.IRTModelUpdater.java._trace
+/AbstractRTModelUpdater.java
+/IRTModelUpdater.java
diff --git a/rba.tool.editor/xtend-gen/rba/tool/editor/generator/rule/.gitignore b/rba.tool.editor/xtend-gen/rba/tool/editor/generator/rule/.gitignore
new file mode 100644
index 0000000..65e3eb6
--- /dev/null
+++ b/rba.tool.editor/xtend-gen/rba/tool/editor/generator/rule/.gitignore
@@ -0,0 +1,6 @@
+/.IRuleGenerator.java._trace
+/.IRuleGenerator.xtendbin
+/IRuleGenerator.java
+/.RuleGeneratorImpl.java._trace
+/.RuleGeneratorImpl.xtendbin
+/RuleGeneratorImpl.java
diff --git a/rba.tool.editor/xtend-gen/rba/tool/editor/generator/z3/.gitignore b/rba.tool.editor/xtend-gen/rba/tool/editor/generator/z3/.gitignore
new file mode 100644
index 0000000..cb38916
--- /dev/null
+++ b/rba.tool.editor/xtend-gen/rba/tool/editor/generator/z3/.gitignore
@@ -0,0 +1,13 @@
+/.IRBAModelZ3Generator.java._trace
+/.RBAModelZ3GeneratorImpl.java._trace
+/.RBAModeZ3GeneratorImpl.java._trace
+/.IRBAModelSortValueGenerator.java._trace
+/.RBAModelSortValueGeneratorImpl.java._trace
+/.ISortValueGenerator.java._trace
+/.SortValueGeneratorImpl.java._trace
+/.ConstraintGeneratorImpl.java._trace
+/.IConstraintGenerator.java._trace
+/ConstraintGeneratorImpl.java
+/IConstraintGenerator.java
+/ISortValueGenerator.java
+/SortValueGeneratorImpl.java
diff --git a/rba.tool.editor/xtend-gen/rba/tool/editor/linking/.gitignore b/rba.tool.editor/xtend-gen/rba/tool/editor/linking/.gitignore
new file mode 100644
index 0000000..c24f5d9
--- /dev/null
+++ b/rba.tool.editor/xtend-gen/rba/tool/editor/linking/.gitignore
@@ -0,0 +1,4 @@
+/.RBAModelLinker.java._trace
+/.RBAModelLinkingService.java._trace
+/RBAModelLinker.java
+/RBAModelLinkingService.java
diff --git a/rba.tool.editor/xtend-gen/rba/tool/editor/model/manager/.gitignore b/rba.tool.editor/xtend-gen/rba/tool/editor/model/manager/.gitignore
new file mode 100644
index 0000000..13f29e8
--- /dev/null
+++ b/rba.tool.editor/xtend-gen/rba/tool/editor/model/manager/.gitignore
@@ -0,0 +1,3 @@
+/.ResourceManager.java._trace
+/.ResourceManager.xtendbin
+/ResourceManager.java
diff --git a/rba.tool.editor/xtend-gen/rba/tool/editor/naming/.gitignore b/rba.tool.editor/xtend-gen/rba/tool/editor/naming/.gitignore
new file mode 100644
index 0000000..2f4bb64
--- /dev/null
+++ b/rba.tool.editor/xtend-gen/rba/tool/editor/naming/.gitignore
@@ -0,0 +1,4 @@
+/.RBAModelSimpleNameProvider.java._trace
+/.RBAModelSimpleNameProviderextends.java._trace
+/.RBAModelSimpleNameProvider.xtendbin
+/RBAModelSimpleNameProvider.java
diff --git a/rba.tool.editor/xtend-gen/rba/tool/editor/resource/.gitignore b/rba.tool.editor/xtend-gen/rba/tool/editor/resource/.gitignore
new file mode 100644
index 0000000..153157c
--- /dev/null
+++ b/rba.tool.editor/xtend-gen/rba/tool/editor/resource/.gitignore
@@ -0,0 +1,6 @@
+/.RBAModelLocationInFileProvider.java._trace
+/RBAModelLocationInFileProvider.java
+/.RBAModelEObjectDescription.java._trace
+/RBAModelEObjectDescription.java
+/.IRBAModelResourceLoader.java._trace
+/IRBAModelResourceLoader.java
diff --git a/rba.tool.editor/xtend-gen/rba/tool/editor/scoping/.gitignore b/rba.tool.editor/xtend-gen/rba/tool/editor/scoping/.gitignore
new file mode 100644
index 0000000..4a0393b
--- /dev/null
+++ b/rba.tool.editor/xtend-gen/rba/tool/editor/scoping/.gitignore
@@ -0,0 +1,16 @@
+/.RBAModelScopeProvider.java._trace
+/.RBAModelScopeProvider.xtendbin
+/RBAModelScopeProvider.java
+/.RBAModelScopeProviderDelegate.java._trace
+/.IExpressionScope.java._trace
+/.IExpressionScope.xtendbin
+/IExpressionScope.java
+/.RBAModelExpressionScope.java._trace
+/.RBAModelExpressionScope.xtendbin
+/RBAModelExpressionScope.java
+/.NullExpressionScope.java._trace
+/NullExpressionScope.java
+/.RBATemplateModelScopeProvider.java._trace
+/RBATemplateModelScopeProvider.java
+/.RBAModelImportedNamespaceAwareLocalScopeProvider.java._trace
+/RBAModelImportedNamespaceAwareLocalScopeProvider.java
diff --git a/rba.tool.editor/xtend-gen/rba/tool/editor/scoping/internal/.gitignore b/rba.tool.editor/xtend-gen/rba/tool/editor/scoping/internal/.gitignore
new file mode 100644
index 0000000..0ec9c01
--- /dev/null
+++ b/rba.tool.editor/xtend-gen/rba/tool/editor/scoping/internal/.gitignore
@@ -0,0 +1,8 @@
+/.IMemberFeatureScopes.java._trace
+/IMemberFeatureScopes.java
+/.RBAModelMemberFieldScopes.java._trace
+/RBAModelMemberFieldScopes.java
+/.RBAModelMemberOperationScopes.java._trace
+/RBAModelMemberOperationScopes.java
+/.RBAModelMemberOperationRegistry.java._trace
+/RBAModelMemberOperationRegistry.java
diff --git a/rba.tool.editor/xtend-gen/rba/tool/editor/util/.gitignore b/rba.tool.editor/xtend-gen/rba/tool/editor/util/.gitignore
new file mode 100644
index 0000000..dd52767
--- /dev/null
+++ b/rba.tool.editor/xtend-gen/rba/tool/editor/util/.gitignore
@@ -0,0 +1,4 @@
+/.RBAModelEditorToolUtil.java._trace
+/RBAModelEditorToolUtil.java
+/.RBAModelEditorNameUtil.java._trace
+/RBAModelEditorNameUtil.java
diff --git a/rba.tool.editor/xtend-gen/rba/tool/editor/validation/.gitignore b/rba.tool.editor/xtend-gen/rba/tool/editor/validation/.gitignore
new file mode 100644
index 0000000..9fe0a18
--- /dev/null
+++ b/rba.tool.editor/xtend-gen/rba/tool/editor/validation/.gitignore
@@ -0,0 +1,20 @@
+/.RBAModelValidator.java._trace
+/.RBAModelValidator.xtendbin
+/RBAModelValidator.java
+/.AreaValidationHelper.java._trace
+/.RBAModelCompositeEValidator.java._trace
+/RBAModelCompositeEValidator.java
+/.RBAModelCompositeEValidatorProvider.java._trace
+/RBAModelCompositeEValidatorProvider.java
+/.UniqueNameValidationHelper.java._trace
+/.UniqueNameValidationHelper.xtendbin
+/UniqueNameValidationHelper.java
+/.CircularContainmentValidationHelper.java._trace
+/.CircularContainmentValidationHelper.xtendbin
+/CircularContainmentValidationHelper.java
+/.ContentAllocatableListValidationHelper.java._trace
+/.ContentAllocatableListValidationHelper.xtendbin
+/ContentAllocatableListValidationHelper.java
+/.RBATemplateModelValidator.java._trace
+/RBATemplateModelValidator.java
+/.RBAModelValidationManager.java._trace
diff --git a/rba.tool.editor/xtend-gen/rba/tool/editor/validation/validators/.gitignore b/rba.tool.editor/xtend-gen/rba/tool/editor/validation/validators/.gitignore
new file mode 100644
index 0000000..a887dfc
--- /dev/null
+++ b/rba.tool.editor/xtend-gen/rba/tool/editor/validation/validators/.gitignore
@@ -0,0 +1,3 @@
+/*.java._trace
+/*.xtendbin
+/*.java \ No newline at end of file
diff --git a/rba.tool.lib.groovy/.classpath b/rba.tool.lib.groovy/.classpath
new file mode 100644
index 0000000..2e5e482
--- /dev/null
+++ b/rba.tool.lib.groovy/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry exported="true" kind="lib" path="lib/groovy-all-2.4.12-indy.jar"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/rba.tool.lib.groovy/.project b/rba.tool.lib.groovy/.project
new file mode 100644
index 0000000..7f3e7bf
--- /dev/null
+++ b/rba.tool.lib.groovy/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>rba.tool.lib.groovy</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>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/rba.tool.lib.groovy/.settings/org.eclipse.jdt.core.prefs b/rba.tool.lib.groovy/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..0c68a61
--- /dev/null
+++ b/rba.tool.lib.groovy/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/rba.tool.lib.groovy/META-INF/MANIFEST.MF b/rba.tool.lib.groovy/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..18c9fe4
--- /dev/null
+++ b/rba.tool.lib.groovy/META-INF/MANIFEST.MF
@@ -0,0 +1,126 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-SymbolicName: rba.tool.lib.groovy
+Bundle-Version: 1.0.0.qualifier
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-ClassPath: lib/groovy-all-2.4.12-indy.jar,
+ .
+Export-Package: groovy.beans,
+ groovy.grape,
+ groovy.inspect,
+ groovy.inspect.swingui,
+ groovy.io,
+ groovy.jmx.builder,
+ groovy.json,
+ groovy.json.internal,
+ groovy.lang,
+ groovy.mock.interceptor,
+ groovy.model,
+ groovy.security,
+ groovy.servlet,
+ groovy.sql,
+ groovy.swing,
+ groovy.swing.binding,
+ groovy.swing.factory,
+ groovy.swing.impl,
+ groovy.test,
+ groovy.text,
+ groovy.text.markup,
+ groovy.time,
+ groovy.transform,
+ groovy.transform.builder,
+ groovy.transform.stc,
+ groovy.ui,
+ groovy.ui.text,
+ groovy.ui.view,
+ groovy.util,
+ groovy.util.logging,
+ groovy.util.slurpersupport,
+ groovy.xml,
+ groovy.xml.dom,
+ groovy.xml.streamingmarkupsupport,
+ groovyjarjarantlr,
+ groovyjarjarantlr.actions.cpp,
+ groovyjarjarantlr.actions.csharp,
+ groovyjarjarantlr.actions.java,
+ groovyjarjarantlr.actions.python,
+ groovyjarjarantlr.ASdebug,
+ groovyjarjarantlr.build,
+ groovyjarjarantlr.collections,
+ groovyjarjarantlr.collections.impl,
+ groovyjarjarantlr.debug,
+ groovyjarjarantlr.debug.misc,
+ groovyjarjarantlr.preprocessor,
+ groovyjarjarasm.asm,
+ groovyjarjarasm.asm.commons,
+ groovyjarjarasm.asm.signature,
+ groovyjarjarasm.asm.tree,
+ groovyjarjarasm.asm.util,
+ groovyjarjarcommonscli,
+ org.codehaus.groovy,
+ org.codehaus.groovy.ant,
+ org.codehaus.groovy.antlr,
+ org.codehaus.groovy.antlr.java,
+ org.codehaus.groovy.antlr.parser,
+ org.codehaus.groovy.antlr.treewalker,
+ org.codehaus.groovy.ast,
+ org.codehaus.groovy.ast.builder,
+ org.codehaus.groovy.ast.expr,
+ org.codehaus.groovy.ast.stmt,
+ org.codehaus.groovy.ast.tools,
+ org.codehaus.groovy.binding,
+ org.codehaus.groovy.bsf,
+ org.codehaus.groovy.classgen,
+ org.codehaus.groovy.classgen.asm,
+ org.codehaus.groovy.classgen.asm.indy,
+ org.codehaus.groovy.classgen.asm.sc,
+ org.codehaus.groovy.cli,
+ org.codehaus.groovy.control,
+ org.codehaus.groovy.control.customizers,
+ org.codehaus.groovy.control.customizers.builder,
+ org.codehaus.groovy.control.io,
+ org.codehaus.groovy.control.messages,
+ org.codehaus.groovy.groovydoc,
+ org.codehaus.groovy.jsr223,
+ org.codehaus.groovy.plugin,
+ org.codehaus.groovy.reflection,
+ org.codehaus.groovy.reflection.android,
+ org.codehaus.groovy.reflection.stdclasses,
+ org.codehaus.groovy.reflection.v7,
+ org.codehaus.groovy.runtime,
+ org.codehaus.groovy.runtime.callsite,
+ org.codehaus.groovy.runtime.dgmimpl,
+ org.codehaus.groovy.runtime.dgmimpl.arrays,
+ org.codehaus.groovy.runtime.m12n,
+ org.codehaus.groovy.runtime.memoize,
+ org.codehaus.groovy.runtime.metaclass,
+ org.codehaus.groovy.runtime.powerassert,
+ org.codehaus.groovy.runtime.typehandling,
+ org.codehaus.groovy.runtime.wrappers,
+ org.codehaus.groovy.syntax,
+ org.codehaus.groovy.testng,
+ org.codehaus.groovy.tools,
+ org.codehaus.groovy.tools.ast,
+ org.codehaus.groovy.tools.groovydoc,
+ org.codehaus.groovy.tools.groovydoc.gstringTemplates,
+ org.codehaus.groovy.tools.gse,
+ org.codehaus.groovy.tools.javac,
+ org.codehaus.groovy.tools.shell,
+ org.codehaus.groovy.tools.shell.commands,
+ org.codehaus.groovy.tools.shell.completion,
+ org.codehaus.groovy.tools.shell.util,
+ org.codehaus.groovy.tools.xml,
+ org.codehaus.groovy.transform,
+ org.codehaus.groovy.transform.sc,
+ org.codehaus.groovy.transform.sc.transformers,
+ org.codehaus.groovy.transform.stc,
+ org.codehaus.groovy.transform.tailrec,
+ org.codehaus.groovy.transform.trait,
+ org.codehaus.groovy.util,
+ org.codehaus.groovy.vmplugin,
+ org.codehaus.groovy.vmplugin.v5,
+ org.codehaus.groovy.vmplugin.v6,
+ org.codehaus.groovy.vmplugin.v7
diff --git a/rba.tool.lib.groovy/build.properties b/rba.tool.lib.groovy/build.properties
new file mode 100644
index 0000000..f73ee7f
--- /dev/null
+++ b/rba.tool.lib.groovy/build.properties
@@ -0,0 +1,4 @@
+bin.includes = META-INF/,\
+ .,\
+ lib/groovy-all-2.4.12-indy.jar,\
+ plugin.properties
diff --git a/rba.tool.lib.groovy/lib/groovy-all-2.4.12-indy.jar b/rba.tool.lib.groovy/lib/groovy-all-2.4.12-indy.jar
new file mode 100644
index 0000000..bb246a3
--- /dev/null
+++ b/rba.tool.lib.groovy/lib/groovy-all-2.4.12-indy.jar
Binary files differ
diff --git a/rba.tool.lib.groovy/plugin.properties b/rba.tool.lib.groovy/plugin.properties
new file mode 100644
index 0000000..01a0f35
--- /dev/null
+++ b/rba.tool.lib.groovy/plugin.properties
@@ -0,0 +1,2 @@
+pluginName = RBA Tool Lib Groovy
+providerName=DENSO CORPORATION
diff --git a/rba.tool.lib.json/.classpath b/rba.tool.lib.json/.classpath
new file mode 100644
index 0000000..883f450
--- /dev/null
+++ b/rba.tool.lib.json/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry exported="true" kind="lib" path="lib/java-json.jar"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/rba.tool.lib.json/.project b/rba.tool.lib.json/.project
new file mode 100644
index 0000000..b63240e
--- /dev/null
+++ b/rba.tool.lib.json/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>rba.tool.lib.json</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>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/rba.tool.lib.json/.settings/org.eclipse.jdt.core.prefs b/rba.tool.lib.json/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..0c68a61
--- /dev/null
+++ b/rba.tool.lib.json/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/rba.tool.lib.json/META-INF/MANIFEST.MF b/rba.tool.lib.json/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..d60d007
--- /dev/null
+++ b/rba.tool.lib.json/META-INF/MANIFEST.MF
@@ -0,0 +1,11 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-SymbolicName: rba.tool.lib.json
+Bundle-Version: 1.0.0.qualifier
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-ClassPath: lib/java-json.jar
+Export-Package: org.json
+
diff --git a/rba.tool.lib.json/build.properties b/rba.tool.lib.json/build.properties
new file mode 100644
index 0000000..0902b6c
--- /dev/null
+++ b/rba.tool.lib.json/build.properties
@@ -0,0 +1,4 @@
+bin.includes = META-INF/,\
+ .,\
+ lib/java-json.jar,\
+ plugin.properties
diff --git a/rba.tool.lib.json/lib/java-json.jar b/rba.tool.lib.json/lib/java-json.jar
new file mode 100644
index 0000000..2f211e3
--- /dev/null
+++ b/rba.tool.lib.json/lib/java-json.jar
Binary files differ
diff --git a/rba.tool.lib.json/plugin.properties b/rba.tool.lib.json/plugin.properties
new file mode 100644
index 0000000..34aff89
--- /dev/null
+++ b/rba.tool.lib.json/plugin.properties
@@ -0,0 +1,2 @@
+pluginName = RBA Tool Lib JSON
+providerName=DENSO CORPORATION